{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0b86657b",
   "metadata": {
    "id": "p6yklm2xWn9f"
   },
   "source": [
    "## Part I: Data Pre-processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b859d3f7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:13.532204Z",
     "iopub.status.busy": "2026-10-05T11:39:13.532204Z",
     "iopub.status.idle": "2026-10-05T11:39:14.234717Z",
     "shell.execute_reply": "2026-10-05T11:39:14.234717Z"
    },
    "id": "YycoIJomXwqH"
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "071c8355",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:14.234717Z",
     "iopub.status.busy": "2026-10-05T11:39:14.234717Z",
     "iopub.status.idle": "2026-10-05T11:39:15.556848Z",
     "shell.execute_reply": "2026-10-05T11:39:15.556538Z"
    },
    "id": "KKAXuhZIUxD8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "downloaded questions-words.txt\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# Original template comment(s):\n",
    "# Download the Google Analogy dataset\n",
    "# 原本是 `!wget ...`。Windows 沒有 wget，改用 Python 內建的 urllib 下載同一個網址。\n",
    "import urllib.request\n",
    "urllib.request.urlretrieve(\"http://download.tensorflow.org/data/questions-words.txt\", \"questions-words.txt\")\n",
    "print(\"downloaded questions-words.txt\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "44974726",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.556848Z",
     "iopub.status.busy": "2026-10-05T11:39:15.556848Z",
     "iopub.status.idle": "2026-10-05T11:39:15.572622Z",
     "shell.execute_reply": "2026-10-05T11:39:15.572622Z"
    },
    "id": "xue5pVFLVNQQ"
   },
   "outputs": [],
   "source": [
    "# Preprocess the dataset\n",
    "file_name = \"questions-words\"\n",
    "with open(f\"{file_name}.txt\", \"r\") as f:\n",
    "    data = f.read().splitlines()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "bb5ac6b4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.578163Z",
     "iopub.status.busy": "2026-10-05T11:39:15.576696Z",
     "iopub.status.idle": "2026-10-05T11:39:15.580378Z",
     "shell.execute_reply": "2026-10-05T11:39:15.580378Z"
    },
    "id": "h7dOdJOsZzAF"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ": capital-common-countries\n",
      "Athens Greece Baghdad Iraq\n",
      "Athens Greece Bangkok Thailand\n",
      "Athens Greece Beijing China\n",
      "Athens Greece Berlin Germany\n",
      "Athens Greece Bern Switzerland\n",
      "Athens Greece Cairo Egypt\n",
      "Athens Greece Canberra Australia\n",
      "Athens Greece Hanoi Vietnam\n",
      "Athens Greece Havana Cuba\n"
     ]
    }
   ],
   "source": [
    "# check data from the first 10 entries\n",
    "for entry in data[:10]:\n",
    "    print(entry)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ba04fde2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.585381Z",
     "iopub.status.busy": "2026-10-05T11:39:15.585381Z",
     "iopub.status.idle": "2026-10-05T11:39:15.596037Z",
     "shell.execute_reply": "2026-10-05T11:39:15.596037Z"
    },
    "id": "wmYQ0IWZZxf3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "19544 questions\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# TODO1: Write your code here for processing data to pd.DataFrame\n",
    "# Please note that the first five mentions of \": \" indicate `semantic`,\n",
    "# and the remaining nine belong to the `syntatic` category.\n",
    "questions, categories, sub_categories = [], [], []\n",
    "n_headers = 0          # 目前讀到第幾個 \": \" 標題\n",
    "current_sub = None     # 目前所在的小類，例如 \": capital-common-countries\"\n",
    "for line in data:\n",
    "    if line.startswith(\": \"):          # 這一行是小類標題，不是題目\n",
    "        n_headers += 1\n",
    "        current_sub = line\n",
    "        continue\n",
    "    questions.append(line)\n",
    "    categories.append(\"Semantic\" if n_headers <= 5 else \"Syntactic\")\n",
    "    sub_categories.append(current_sub)\n",
    "print(len(questions), \"questions\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "19262ad5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.602733Z",
     "iopub.status.busy": "2026-10-05T11:39:15.602733Z",
     "iopub.status.idle": "2026-10-05T11:39:15.610655Z",
     "shell.execute_reply": "2026-10-05T11:39:15.610655Z"
    },
    "id": "_bKA05rVZb_i"
   },
   "outputs": [],
   "source": [
    "# Create the dataframe\n",
    "df = pd.DataFrame(\n",
    "    {\n",
    "        \"Question\": questions,\n",
    "        \"Category\": categories,\n",
    "        \"SubCategory\": sub_categories,\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a2a862d8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.619358Z",
     "iopub.status.busy": "2026-10-05T11:39:15.619358Z",
     "iopub.status.idle": "2026-10-05T11:39:15.635558Z",
     "shell.execute_reply": "2026-10-05T11:39:15.634591Z"
    },
    "id": "UN2FBcicZmpV"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>Category</th>\n",
       "      <th>SubCategory</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Athens Greece Baghdad Iraq</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Athens Greece Bangkok Thailand</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Athens Greece Beijing China</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Athens Greece Berlin Germany</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Athens Greece Bern Switzerland</td>\n",
       "      <td>Semantic</td>\n",
       "      <td>: capital-common-countries</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         Question  Category                 SubCategory\n",
       "0      Athens Greece Baghdad Iraq  Semantic  : capital-common-countries\n",
       "1  Athens Greece Bangkok Thailand  Semantic  : capital-common-countries\n",
       "2     Athens Greece Beijing China  Semantic  : capital-common-countries\n",
       "3    Athens Greece Berlin Germany  Semantic  : capital-common-countries\n",
       "4  Athens Greece Bern Switzerland  Semantic  : capital-common-countries"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6457ee65",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.640985Z",
     "iopub.status.busy": "2026-10-05T11:39:15.639909Z",
     "iopub.status.idle": "2026-10-05T11:39:15.667114Z",
     "shell.execute_reply": "2026-10-05T11:39:15.666090Z"
    },
    "id": "nMGvoDeiZhbp"
   },
   "outputs": [],
   "source": [
    "df.to_csv(f\"{file_name}.csv\", index=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92df0ba3",
   "metadata": {
    "id": "Zi2SNNuHWiZO"
   },
   "source": [
    "## Part II: Use pre-trained word embeddings\n",
    "- After finish Part I, you can run Part II code blocks only."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "28cd954d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:15.672178Z",
     "iopub.status.busy": "2026-10-05T11:39:15.671116Z",
     "iopub.status.idle": "2026-10-05T11:39:18.236511Z",
     "shell.execute_reply": "2026-10-05T11:39:18.236511Z"
    },
    "id": "yB4rpJymXiSN"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import gensim.downloader\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.manifold import TSNE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "4d8d1a60",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:18.241392Z",
     "iopub.status.busy": "2026-10-05T11:39:18.241392Z",
     "iopub.status.idle": "2026-10-05T11:39:18.264238Z",
     "shell.execute_reply": "2026-10-05T11:39:18.264238Z"
    },
    "id": "-pGLoyKSHXuQ"
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"questions-words.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "8f2d8b5b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:18.269674Z",
     "iopub.status.busy": "2026-10-05T11:39:18.269674Z",
     "iopub.status.idle": "2026-10-05T11:39:50.511351Z",
     "shell.execute_reply": "2026-10-05T11:39:50.510345Z"
    },
    "id": "YWa_1hF3aZHO"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Gensim model loaded successfully!\n"
     ]
    }
   ],
   "source": [
    "MODEL_NAME = \"glove-wiki-gigaword-100\"\n",
    "# You can try other models.\n",
    "# https://radimrehurek.com/gensim/models/word2vec.html#pretrained-models\n",
    "\n",
    "# Load the pre-trained model (using GloVe vectors here)\n",
    "model = gensim.downloader.load(MODEL_NAME)\n",
    "print(\"The Gensim model loaded successfully!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "704bf47e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:39:50.516891Z",
     "iopub.status.busy": "2026-10-05T11:39:50.516891Z",
     "iopub.status.idle": "2026-10-05T11:42:09.622982Z",
     "shell.execute_reply": "2026-10-05T11:42:09.622479Z"
    },
    "id": "YTsqJcP1WSTH"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 0/19544 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 2/19544 [00:00<16:31, 19.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 17/19544 [00:00<03:30, 92.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 31/19544 [00:00<02:54, 112.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 46/19544 [00:00<02:37, 123.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 60/19544 [00:00<02:34, 126.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 73/19544 [00:00<02:38, 123.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 87/19544 [00:00<02:33, 126.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 101/19544 [00:00<02:29, 129.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 115/19544 [00:00<02:28, 130.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 130/19544 [00:01<02:23, 134.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 144/19544 [00:01<02:22, 135.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 159/19544 [00:01<02:19, 138.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 174/19544 [00:01<02:18, 140.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 189/19544 [00:01<02:15, 143.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 205/19544 [00:01<02:13, 145.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 220/19544 [00:01<02:16, 141.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 235/19544 [00:01<02:21, 136.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 249/19544 [00:01<02:25, 132.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 263/19544 [00:02<02:24, 133.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 277/19544 [00:02<02:25, 132.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 292/19544 [00:02<02:21, 135.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 308/19544 [00:02<02:16, 140.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 323/19544 [00:02<02:14, 142.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 338/19544 [00:02<02:13, 144.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 353/19544 [00:02<02:12, 144.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 368/19544 [00:02<02:12, 144.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 383/19544 [00:02<02:11, 145.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 398/19544 [00:02<02:11, 145.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 413/19544 [00:03<02:15, 141.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 428/19544 [00:03<02:17, 138.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 443/19544 [00:03<02:16, 140.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 458/19544 [00:03<02:18, 137.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 472/19544 [00:03<02:20, 135.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 486/19544 [00:03<02:20, 135.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 501/19544 [00:03<02:18, 137.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 516/19544 [00:03<02:16, 139.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 531/19544 [00:03<02:14, 141.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 546/19544 [00:04<02:11, 144.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 561/19544 [00:04<02:10, 145.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 576/19544 [00:04<02:10, 145.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 591/19544 [00:04<02:09, 146.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 606/19544 [00:04<02:09, 146.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 621/19544 [00:04<02:11, 143.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 636/19544 [00:04<02:14, 140.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 651/19544 [00:04<02:16, 138.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 665/19544 [00:04<02:18, 136.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 679/19544 [00:04<02:20, 134.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 693/19544 [00:05<02:19, 135.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 708/19544 [00:05<02:15, 139.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 722/19544 [00:05<02:18, 136.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 738/19544 [00:05<02:14, 140.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 754/19544 [00:05<02:10, 144.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 770/19544 [00:05<02:08, 146.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 785/19544 [00:05<02:08, 146.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 800/19544 [00:05<02:08, 145.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 815/19544 [00:05<02:12, 141.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 830/19544 [00:06<02:10, 143.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 845/19544 [00:06<02:11, 142.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 860/19544 [00:06<02:16, 137.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 874/19544 [00:06<02:18, 135.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 888/19544 [00:06<02:18, 134.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 902/19544 [00:06<02:18, 134.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 916/19544 [00:06<02:22, 130.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 930/19544 [00:06<02:22, 130.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 944/19544 [00:06<02:25, 127.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 957/19544 [00:06<02:25, 127.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 971/19544 [00:07<02:24, 128.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 984/19544 [00:07<02:25, 127.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 997/19544 [00:07<02:38, 117.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1009/19544 [00:07<03:11, 96.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1020/19544 [00:07<03:16, 94.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1031/19544 [00:07<03:09, 97.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1043/19544 [00:07<03:01, 102.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1054/19544 [00:07<03:00, 102.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1066/19544 [00:08<02:55, 105.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1078/19544 [00:08<02:52, 107.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1090/19544 [00:08<02:49, 109.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1101/19544 [00:08<02:52, 106.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1112/19544 [00:08<02:56, 104.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1124/19544 [00:08<02:51, 107.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1135/19544 [00:08<02:50, 108.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1148/19544 [00:08<02:44, 112.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1161/19544 [00:08<02:40, 114.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1174/19544 [00:09<02:35, 117.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1186/19544 [00:09<02:35, 118.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1198/19544 [00:09<02:37, 116.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1210/19544 [00:09<02:40, 114.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1222/19544 [00:09<02:43, 112.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1234/19544 [00:09<02:42, 112.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1247/19544 [00:09<02:36, 116.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1260/19544 [00:09<02:33, 118.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1273/19544 [00:09<02:33, 118.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1285/19544 [00:09<02:38, 115.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1297/19544 [00:10<02:37, 115.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1309/19544 [00:10<02:38, 114.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1321/19544 [00:10<02:40, 113.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1333/19544 [00:10<02:45, 110.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1345/19544 [00:10<02:59, 101.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1356/19544 [00:10<03:05, 98.27it/s] "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1366/19544 [00:10<03:11, 94.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1377/19544 [00:10<03:07, 97.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1390/19544 [00:11<02:54, 103.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1401/19544 [00:11<03:00, 100.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1412/19544 [00:11<03:03, 98.78it/s] "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1424/19544 [00:11<02:53, 104.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1435/19544 [00:11<03:00, 100.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1447/19544 [00:11<02:53, 104.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1461/19544 [00:11<02:41, 112.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1475/19544 [00:11<02:33, 117.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1487/19544 [00:11<02:37, 114.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1499/19544 [00:11<02:36, 115.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1512/19544 [00:12<02:32, 118.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1524/19544 [00:12<02:34, 116.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1536/19544 [00:12<02:37, 114.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1548/19544 [00:12<02:54, 103.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1559/19544 [00:12<03:03, 97.76it/s] "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1570/19544 [00:12<03:00, 99.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1581/19544 [00:12<03:02, 98.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1592/19544 [00:12<02:57, 100.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1604/19544 [00:13<02:50, 105.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1616/19544 [00:13<02:44, 108.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1628/19544 [00:13<02:42, 110.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1641/19544 [00:13<02:35, 115.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1654/19544 [00:13<02:32, 117.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1666/19544 [00:13<02:33, 116.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1678/19544 [00:13<02:36, 114.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1690/19544 [00:13<02:36, 113.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1703/19544 [00:13<02:34, 115.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1717/19544 [00:13<02:25, 122.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1730/19544 [00:14<02:25, 122.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1743/19544 [00:14<02:25, 122.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1756/19544 [00:14<02:23, 124.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1770/19544 [00:14<02:20, 126.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1784/19544 [00:14<02:17, 128.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1798/19544 [00:14<02:17, 129.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1811/19544 [00:14<02:21, 125.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1825/19544 [00:14<02:19, 126.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1838/19544 [00:14<02:19, 126.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1851/19544 [00:15<02:26, 121.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1864/19544 [00:15<02:30, 117.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1876/19544 [00:15<02:42, 108.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1887/19544 [00:15<02:53, 102.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1898/19544 [00:15<02:50, 103.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1910/19544 [00:15<02:46, 105.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1922/19544 [00:15<02:40, 109.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1936/19544 [00:15<02:31, 116.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1950/19544 [00:15<02:23, 122.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1963/19544 [00:16<02:25, 121.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1977/19544 [00:16<02:21, 124.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1990/19544 [00:16<02:29, 117.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2002/19544 [00:16<02:36, 112.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2014/19544 [00:16<02:37, 111.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2026/19544 [00:16<02:41, 108.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2038/19544 [00:16<02:40, 109.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2049/19544 [00:16<02:39, 109.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2062/19544 [00:16<02:34, 112.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2074/19544 [00:17<02:34, 113.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2086/19544 [00:17<02:32, 114.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2098/19544 [00:17<02:36, 111.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2110/19544 [00:17<02:33, 113.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2122/19544 [00:17<02:31, 114.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2135/19544 [00:17<02:27, 117.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2149/19544 [00:17<02:22, 121.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2162/19544 [00:17<02:21, 122.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2175/19544 [00:17<02:23, 120.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2188/19544 [00:17<02:25, 119.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2200/19544 [00:18<02:26, 118.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2212/19544 [00:18<02:29, 115.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2224/19544 [00:18<02:35, 111.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2236/19544 [00:18<02:37, 109.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2248/19544 [00:18<02:36, 110.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2260/19544 [00:18<02:33, 112.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2274/19544 [00:18<02:24, 119.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2287/19544 [00:18<02:21, 121.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2300/19544 [00:18<02:19, 123.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2314/19544 [00:19<02:16, 126.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2327/19544 [00:19<02:16, 126.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2340/19544 [00:19<02:18, 123.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2353/19544 [00:19<02:23, 120.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2366/19544 [00:19<02:28, 115.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2378/19544 [00:19<02:29, 114.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2391/19544 [00:19<02:25, 117.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2404/19544 [00:19<02:22, 120.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2418/19544 [00:19<02:18, 124.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2434/19544 [00:20<02:08, 132.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2449/19544 [00:20<02:05, 135.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2465/19544 [00:20<02:01, 140.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2481/19544 [00:20<01:57, 145.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2496/19544 [00:20<01:57, 144.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2511/19544 [00:20<01:57, 144.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2526/19544 [00:20<01:58, 143.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2541/19544 [00:20<02:03, 138.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2555/19544 [00:20<02:05, 135.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2569/19544 [00:20<02:07, 133.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2583/19544 [00:21<02:11, 129.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2596/19544 [00:21<02:14, 126.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2609/19544 [00:21<02:16, 123.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2622/19544 [00:21<02:16, 123.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2635/19544 [00:21<02:15, 124.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2648/19544 [00:21<02:19, 120.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2661/19544 [00:21<02:18, 121.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2675/19544 [00:21<02:15, 124.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2689/19544 [00:21<02:11, 127.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2704/19544 [00:22<02:07, 132.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2718/19544 [00:22<02:07, 131.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2732/19544 [00:22<02:13, 126.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2745/19544 [00:22<02:14, 124.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2758/19544 [00:22<02:15, 124.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2771/19544 [00:22<02:20, 119.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2784/19544 [00:22<02:26, 114.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2796/19544 [00:22<02:26, 113.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2808/19544 [00:22<02:27, 113.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2820/19544 [00:23<02:32, 109.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2831/19544 [00:23<02:34, 108.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2843/19544 [00:23<02:31, 110.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2855/19544 [00:23<02:32, 109.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2866/19544 [00:23<02:35, 107.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2877/19544 [00:23<02:40, 103.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2888/19544 [00:23<02:51, 97.35it/s] "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2898/19544 [00:23<02:52, 96.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2909/19544 [00:23<02:49, 98.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2919/19544 [00:24<03:02, 91.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2929/19544 [00:24<03:16, 84.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2938/19544 [00:24<03:16, 84.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2947/19544 [00:24<03:17, 84.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2956/19544 [00:24<03:27, 79.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2966/19544 [00:24<03:19, 82.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2975/19544 [00:24<03:17, 84.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2986/19544 [00:24<03:09, 87.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2995/19544 [00:25<03:08, 87.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3005/19544 [00:25<03:04, 89.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3014/19544 [00:25<03:07, 88.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3025/19544 [00:25<02:55, 93.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3036/19544 [00:25<02:51, 96.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3046/19544 [00:25<02:58, 92.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3057/19544 [00:25<02:53, 95.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3067/19544 [00:25<02:59, 91.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3077/19544 [00:25<02:57, 92.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3089/19544 [00:25<02:45, 99.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3102/19544 [00:26<02:35, 106.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3114/19544 [00:26<02:31, 108.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3127/19544 [00:26<02:26, 112.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3139/19544 [00:26<02:25, 112.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3151/19544 [00:26<02:24, 113.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3166/19544 [00:26<02:14, 121.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3179/19544 [00:26<02:13, 122.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3192/19544 [00:26<02:15, 120.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3205/19544 [00:26<02:17, 119.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3217/19544 [00:27<02:19, 116.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3229/19544 [00:27<02:25, 112.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3241/19544 [00:27<02:24, 112.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3253/19544 [00:27<02:21, 114.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3265/19544 [00:27<02:33, 106.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3279/19544 [00:27<02:23, 113.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3293/19544 [00:27<02:16, 119.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3308/19544 [00:27<02:08, 125.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3322/19544 [00:27<02:09, 124.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3335/19544 [00:28<02:09, 125.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3349/19544 [00:28<02:07, 126.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3362/19544 [00:28<02:08, 126.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3377/19544 [00:28<02:03, 130.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3391/19544 [00:28<02:08, 125.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3405/19544 [00:28<02:06, 127.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3418/19544 [00:28<02:06, 127.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3431/19544 [00:28<02:06, 126.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3445/19544 [00:28<02:04, 128.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3460/19544 [00:29<02:02, 131.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3474/19544 [00:29<02:00, 133.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3488/19544 [00:29<01:59, 134.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3502/19544 [00:29<02:01, 132.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3516/19544 [00:29<02:01, 132.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3530/19544 [00:29<02:01, 131.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3544/19544 [00:29<02:03, 129.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3558/19544 [00:29<02:00, 132.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3572/19544 [00:29<02:00, 132.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3587/19544 [00:29<01:57, 135.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3602/19544 [00:30<01:56, 136.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3617/19544 [00:30<01:53, 139.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3632/19544 [00:30<01:53, 140.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3647/19544 [00:30<01:54, 139.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3661/19544 [00:30<01:54, 139.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3676/19544 [00:30<01:51, 141.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3691/19544 [00:30<01:52, 141.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3706/19544 [00:30<01:50, 143.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3721/19544 [00:30<01:51, 142.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3736/19544 [00:31<01:51, 142.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3751/19544 [00:31<01:50, 142.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3766/19544 [00:31<01:50, 142.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3781/19544 [00:31<01:50, 142.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3796/19544 [00:31<01:49, 144.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3812/19544 [00:31<01:45, 148.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3828/19544 [00:31<01:44, 150.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3844/19544 [00:31<01:45, 148.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3859/19544 [00:31<01:50, 141.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3874/19544 [00:31<01:51, 141.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3890/19544 [00:32<01:48, 144.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3905/19544 [00:32<01:46, 146.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3920/19544 [00:32<01:47, 145.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3936/19544 [00:32<01:44, 149.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3951/19544 [00:32<01:44, 148.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3966/19544 [00:32<01:47, 145.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3981/19544 [00:32<01:47, 144.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3996/19544 [00:32<01:47, 145.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4011/19544 [00:32<01:47, 144.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4026/19544 [00:33<01:48, 143.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4041/19544 [00:33<01:49, 141.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4056/19544 [00:33<01:48, 142.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4071/19544 [00:33<01:48, 142.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4086/19544 [00:33<01:49, 140.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4101/19544 [00:33<01:49, 141.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4116/19544 [00:33<01:49, 141.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4131/19544 [00:33<01:50, 139.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4145/19544 [00:33<01:51, 138.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4160/19544 [00:33<01:50, 138.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4175/19544 [00:34<01:49, 139.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4190/19544 [00:34<01:48, 142.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4205/19544 [00:34<01:48, 140.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4220/19544 [00:34<01:48, 141.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4235/19544 [00:34<01:50, 138.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4249/19544 [00:34<02:12, 115.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4262/19544 [00:34<02:16, 112.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4276/19544 [00:34<02:09, 117.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4289/19544 [00:35<02:33, 99.49it/s] "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4300/19544 [00:35<02:59, 85.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4310/19544 [00:35<03:09, 80.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4323/19544 [00:35<02:47, 90.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4338/19544 [00:35<02:25, 104.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4354/19544 [00:35<02:08, 117.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4370/19544 [00:35<01:58, 127.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4386/19544 [00:35<01:52, 134.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4402/19544 [00:36<01:47, 140.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4417/19544 [00:36<01:45, 143.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4433/19544 [00:36<01:43, 145.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4449/19544 [00:36<01:41, 148.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4465/19544 [00:36<01:39, 151.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4481/19544 [00:36<01:39, 151.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4497/19544 [00:36<01:41, 148.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4512/19544 [00:36<01:41, 148.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4528/19544 [00:36<01:39, 151.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4544/19544 [00:36<01:37, 153.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4560/19544 [00:37<01:36, 154.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4576/19544 [00:37<01:36, 154.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4592/19544 [00:37<01:38, 151.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4608/19544 [00:37<01:40, 149.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4623/19544 [00:37<01:40, 148.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4638/19544 [00:37<01:44, 142.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4653/19544 [00:37<01:48, 136.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4669/19544 [00:37<01:44, 141.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4685/19544 [00:37<01:42, 144.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4701/19544 [00:38<01:39, 148.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4717/19544 [00:38<01:37, 151.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4733/19544 [00:38<01:37, 151.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4749/19544 [00:38<01:36, 153.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4765/19544 [00:38<01:37, 152.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4781/19544 [00:38<01:37, 151.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4797/19544 [00:38<01:39, 148.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4812/19544 [00:38<01:39, 147.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4827/19544 [00:38<01:39, 147.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4843/19544 [00:38<01:38, 148.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4859/19544 [00:39<01:38, 149.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4874/19544 [00:39<01:38, 149.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4890/19544 [00:39<01:37, 150.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4906/19544 [00:39<01:37, 149.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4922/19544 [00:39<01:36, 151.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4938/19544 [00:39<01:36, 151.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4954/19544 [00:39<01:37, 149.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4969/19544 [00:39<01:37, 148.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 4984/19544 [00:39<01:37, 149.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5000/19544 [00:40<01:36, 149.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5016/19544 [00:40<01:35, 151.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5032/19544 [00:40<01:34, 153.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5048/19544 [00:40<01:35, 152.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5064/19544 [00:40<01:34, 153.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5080/19544 [00:40<01:36, 149.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5096/19544 [00:40<01:36, 150.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5112/19544 [00:40<01:36, 149.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5128/19544 [00:40<01:35, 150.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5144/19544 [00:40<01:37, 147.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5159/19544 [00:41<01:38, 145.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5174/19544 [00:41<01:40, 143.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5189/19544 [00:41<01:43, 139.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5204/19544 [00:41<01:41, 140.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5220/19544 [00:41<01:39, 144.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5235/19544 [00:41<01:38, 144.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5250/19544 [00:41<01:39, 143.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5265/19544 [00:41<01:39, 143.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5280/19544 [00:41<01:39, 143.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5295/19544 [00:42<01:38, 144.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5310/19544 [00:42<01:38, 145.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5325/19544 [00:42<01:38, 145.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5340/19544 [00:42<01:37, 145.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5355/19544 [00:42<01:38, 144.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5370/19544 [00:42<01:41, 140.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5385/19544 [00:42<01:46, 133.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5399/19544 [00:42<01:50, 127.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5412/19544 [00:42<01:51, 127.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5425/19544 [00:43<01:50, 127.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5439/19544 [00:43<01:48, 129.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5454/19544 [00:43<01:46, 132.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5469/19544 [00:43<01:43, 136.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5485/19544 [00:43<01:39, 140.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5500/19544 [00:43<01:38, 142.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5515/19544 [00:43<01:38, 141.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5530/19544 [00:43<01:41, 137.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5544/19544 [00:43<01:41, 137.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5559/19544 [00:43<01:39, 140.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5574/19544 [00:44<01:39, 140.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5589/19544 [00:44<01:42, 135.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5603/19544 [00:44<01:44, 133.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5617/19544 [00:44<01:43, 134.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5632/19544 [00:44<01:41, 136.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5648/19544 [00:44<01:37, 143.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5664/19544 [00:44<01:33, 147.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5679/19544 [00:44<01:39, 139.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5694/19544 [00:44<01:42, 135.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5708/19544 [00:45<01:43, 133.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5724/19544 [00:45<01:38, 140.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5740/19544 [00:45<01:34, 145.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5756/19544 [00:45<01:33, 146.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5771/19544 [00:45<01:34, 146.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5786/19544 [00:45<01:34, 146.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5802/19544 [00:45<01:32, 147.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5817/19544 [00:45<01:38, 139.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5832/19544 [00:45<01:41, 134.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5846/19544 [00:46<01:41, 135.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5860/19544 [00:46<01:41, 134.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5875/19544 [00:46<01:39, 137.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5889/19544 [00:46<01:39, 137.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5903/19544 [00:46<01:38, 138.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5917/19544 [00:46<01:39, 137.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5933/19544 [00:46<01:35, 142.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5949/19544 [00:46<01:32, 147.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5964/19544 [00:46<01:38, 137.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5978/19544 [00:46<01:38, 138.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5992/19544 [00:47<01:39, 136.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6006/19544 [00:47<01:40, 134.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6020/19544 [00:47<01:40, 134.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6035/19544 [00:47<01:38, 136.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6050/19544 [00:47<01:36, 139.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6065/19544 [00:47<01:34, 142.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6081/19544 [00:47<01:33, 144.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6096/19544 [00:47<01:32, 144.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6111/19544 [00:47<01:31, 146.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6126/19544 [00:48<01:32, 144.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6141/19544 [00:48<01:32, 144.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6156/19544 [00:48<01:32, 144.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6171/19544 [00:48<01:32, 145.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6186/19544 [00:48<01:31, 145.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6201/19544 [00:48<01:34, 141.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6216/19544 [00:48<01:36, 138.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6230/19544 [00:48<01:37, 136.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6244/19544 [00:48<01:39, 133.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6259/19544 [00:48<01:37, 136.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6275/19544 [00:49<01:33, 142.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6291/19544 [00:49<01:30, 147.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6307/19544 [00:49<01:29, 148.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6322/19544 [00:49<01:28, 148.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6338/19544 [00:49<01:28, 149.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6353/19544 [00:49<01:30, 146.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6368/19544 [00:49<01:32, 142.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6383/19544 [00:49<01:36, 136.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6397/19544 [00:49<01:36, 135.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6411/19544 [00:50<01:39, 132.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6425/19544 [00:50<01:42, 128.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6439/19544 [00:50<01:41, 129.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6452/19544 [00:50<01:42, 127.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6466/19544 [00:50<01:41, 129.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6481/19544 [00:50<01:38, 132.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6495/19544 [00:50<01:37, 133.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6510/19544 [00:50<01:34, 137.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6525/19544 [00:50<01:32, 140.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6540/19544 [00:51<01:31, 142.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6555/19544 [00:51<01:30, 144.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6571/19544 [00:51<01:27, 148.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6588/19544 [00:51<01:25, 152.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6604/19544 [00:51<01:27, 148.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6619/19544 [00:51<01:30, 142.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6634/19544 [00:51<01:32, 140.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6649/19544 [00:51<01:31, 141.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6665/19544 [00:51<01:28, 145.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6682/19544 [00:51<01:25, 151.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6699/19544 [00:52<01:22, 155.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6716/19544 [00:52<01:21, 156.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6733/19544 [00:52<01:21, 157.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6750/19544 [00:52<01:20, 159.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6766/19544 [00:52<01:20, 158.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6782/19544 [00:52<01:23, 152.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6798/19544 [00:52<01:28, 144.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6813/19544 [00:52<01:32, 137.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6827/19544 [00:52<01:35, 133.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6841/19544 [00:53<01:42, 124.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6854/19544 [00:53<01:46, 119.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6866/19544 [00:53<01:48, 116.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6878/19544 [00:53<01:49, 115.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6891/19544 [00:53<01:46, 118.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6904/19544 [00:53<01:45, 119.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6918/19544 [00:53<01:42, 123.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6931/19544 [00:53<01:41, 124.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6945/19544 [00:53<01:38, 127.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6958/19544 [00:54<01:39, 126.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6971/19544 [00:54<01:40, 125.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6984/19544 [00:54<01:39, 126.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6997/19544 [00:54<01:38, 126.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7010/19544 [00:54<01:38, 127.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7024/19544 [00:54<01:37, 128.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7037/19544 [00:54<01:39, 126.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7050/19544 [00:54<01:38, 126.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7063/19544 [00:54<01:38, 127.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7076/19544 [00:54<01:37, 128.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7092/19544 [00:55<01:30, 137.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7107/19544 [00:55<01:29, 139.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7122/19544 [00:55<01:27, 141.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7137/19544 [00:55<01:28, 140.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7152/19544 [00:55<01:29, 138.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7166/19544 [00:55<01:33, 132.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7180/19544 [00:55<01:36, 128.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7194/19544 [00:55<01:35, 129.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7207/19544 [00:55<01:37, 126.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7220/19544 [00:56<01:37, 126.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7233/19544 [00:56<01:38, 125.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7246/19544 [00:56<01:37, 126.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7259/19544 [00:56<01:37, 125.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7273/19544 [00:56<01:35, 127.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7287/19544 [00:56<01:35, 128.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7300/19544 [00:56<01:39, 123.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7313/19544 [00:56<01:47, 114.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7325/19544 [00:56<01:49, 111.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7337/19544 [00:57<01:50, 110.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7349/19544 [00:57<01:53, 107.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7361/19544 [00:57<01:51, 109.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7373/19544 [00:57<01:49, 111.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7388/19544 [00:57<01:41, 119.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7403/19544 [00:57<01:35, 127.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7417/19544 [00:57<01:32, 130.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7431/19544 [00:57<01:31, 131.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7445/19544 [00:57<01:31, 132.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7459/19544 [00:58<01:29, 134.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7473/19544 [00:58<01:29, 134.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7487/19544 [00:58<01:34, 128.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7500/19544 [00:58<01:39, 121.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7513/19544 [00:58<01:40, 119.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7526/19544 [00:58<01:44, 114.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7538/19544 [00:58<01:45, 114.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7553/19544 [00:58<01:38, 121.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7568/19544 [00:58<01:33, 127.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7583/19544 [00:59<01:31, 131.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7597/19544 [00:59<01:30, 131.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7611/19544 [00:59<01:32, 129.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7626/19544 [00:59<01:28, 134.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7642/19544 [00:59<01:24, 140.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7657/19544 [00:59<01:23, 142.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7673/19544 [00:59<01:22, 144.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7688/19544 [00:59<01:22, 143.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7703/19544 [00:59<01:26, 137.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7717/19544 [01:00<01:34, 125.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7730/19544 [01:00<01:37, 121.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7743/19544 [01:00<01:38, 119.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7756/19544 [01:00<01:39, 118.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7769/19544 [01:00<01:36, 121.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7783/19544 [01:00<01:34, 124.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7797/19544 [01:00<01:31, 128.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7810/19544 [01:00<01:32, 127.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7823/19544 [01:00<01:32, 127.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7836/19544 [01:00<01:33, 124.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7849/19544 [01:01<01:36, 121.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7862/19544 [01:01<01:39, 117.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7874/19544 [01:01<01:38, 118.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7887/19544 [01:01<01:37, 119.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7900/19544 [01:01<01:37, 119.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7914/19544 [01:01<01:33, 124.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7928/19544 [01:01<01:31, 127.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7943/19544 [01:01<01:27, 131.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7957/19544 [01:01<01:27, 132.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7971/19544 [01:02<01:27, 132.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7985/19544 [01:02<01:26, 134.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7999/19544 [01:02<01:24, 135.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8013/19544 [01:02<01:24, 136.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8028/19544 [01:02<01:23, 138.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8043/19544 [01:02<01:22, 140.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8058/19544 [01:02<01:20, 143.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8073/19544 [01:02<01:21, 141.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8088/19544 [01:02<01:25, 134.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8102/19544 [01:03<01:27, 130.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8116/19544 [01:03<01:28, 129.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8130/19544 [01:03<01:27, 130.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8144/19544 [01:03<01:26, 131.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8158/19544 [01:03<01:25, 133.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8173/19544 [01:03<01:23, 135.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8187/19544 [01:03<01:24, 134.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8201/19544 [01:03<01:26, 130.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8215/19544 [01:03<01:29, 127.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8228/19544 [01:03<01:31, 124.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8241/19544 [01:04<01:31, 123.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8254/19544 [01:04<01:30, 124.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8267/19544 [01:04<01:31, 123.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8280/19544 [01:04<01:31, 123.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8294/19544 [01:04<01:27, 127.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8309/19544 [01:04<01:25, 131.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8324/19544 [01:04<01:23, 134.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8339/19544 [01:04<01:21, 136.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8353/19544 [01:04<01:21, 136.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8367/19544 [01:05<01:22, 134.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8381/19544 [01:05<01:23, 133.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8395/19544 [01:05<01:22, 134.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8409/19544 [01:05<01:23, 133.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8423/19544 [01:05<01:23, 132.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8437/19544 [01:05<01:26, 128.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8450/19544 [01:05<01:27, 127.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8463/19544 [01:05<01:27, 127.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8476/19544 [01:05<01:29, 124.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8490/19544 [01:06<01:26, 127.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8506/19544 [01:06<01:22, 134.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8521/19544 [01:06<01:19, 138.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8537/19544 [01:06<01:17, 142.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8553/19544 [01:06<01:14, 147.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8569/19544 [01:06<01:12, 150.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8585/19544 [01:06<01:12, 151.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8601/19544 [01:06<01:14, 147.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8616/19544 [01:06<01:15, 143.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8631/19544 [01:06<01:16, 142.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8646/19544 [01:07<01:16, 143.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8661/19544 [01:07<01:15, 143.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8676/19544 [01:07<01:15, 144.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8692/19544 [01:07<01:13, 147.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8708/19544 [01:07<01:12, 149.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8723/19544 [01:07<01:12, 148.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8738/19544 [01:07<01:13, 147.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8754/19544 [01:07<01:11, 150.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8770/19544 [01:07<01:10, 152.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8786/19544 [01:07<01:11, 149.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8801/19544 [01:08<01:12, 147.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8816/19544 [01:08<01:13, 145.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8831/19544 [01:08<01:14, 143.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8846/19544 [01:08<01:16, 140.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8861/19544 [01:08<01:15, 141.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8876/19544 [01:08<01:15, 141.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8891/19544 [01:08<01:14, 143.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8907/19544 [01:08<01:12, 146.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8923/19544 [01:08<01:11, 148.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8939/19544 [01:09<01:10, 151.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8955/19544 [01:09<01:09, 152.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8971/19544 [01:09<01:09, 153.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8987/19544 [01:09<01:08, 153.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9003/19544 [01:09<01:10, 149.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9018/19544 [01:09<01:16, 138.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9032/19544 [01:09<01:17, 135.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9047/19544 [01:09<01:16, 138.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9062/19544 [01:09<01:15, 138.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9078/19544 [01:10<01:13, 143.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9094/19544 [01:10<01:11, 146.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9110/19544 [01:10<01:10, 148.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9126/19544 [01:10<01:08, 151.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9142/19544 [01:10<01:08, 151.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9158/19544 [01:10<01:07, 153.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9174/19544 [01:10<01:08, 150.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9190/19544 [01:10<01:10, 147.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9206/19544 [01:10<01:09, 149.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9222/19544 [01:10<01:08, 151.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9238/19544 [01:11<01:07, 151.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9254/19544 [01:11<01:09, 147.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9269/19544 [01:11<01:10, 145.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9284/19544 [01:11<01:11, 143.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9299/19544 [01:11<01:11, 142.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9314/19544 [01:11<01:10, 144.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9330/19544 [01:11<01:09, 146.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9346/19544 [01:11<01:08, 149.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9362/19544 [01:11<01:07, 151.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9378/19544 [01:12<01:06, 152.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9394/19544 [01:12<01:06, 153.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9410/19544 [01:12<01:05, 154.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9426/19544 [01:12<01:06, 152.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9442/19544 [01:12<01:06, 152.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9458/19544 [01:12<01:05, 153.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9474/19544 [01:12<01:05, 154.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9490/19544 [01:12<01:05, 153.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9506/19544 [01:12<01:04, 154.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9522/19544 [01:12<01:04, 154.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9539/19544 [01:13<01:03, 157.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9556/19544 [01:13<01:02, 158.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9572/19544 [01:13<01:03, 157.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9588/19544 [01:13<01:02, 158.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9604/19544 [01:13<01:02, 158.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9621/19544 [01:13<01:02, 159.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9637/19544 [01:13<01:03, 156.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9653/19544 [01:13<01:03, 156.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9669/19544 [01:13<01:02, 157.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9685/19544 [01:13<01:02, 156.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9701/19544 [01:14<01:02, 157.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9717/19544 [01:14<01:03, 154.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9733/19544 [01:14<01:04, 151.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9749/19544 [01:14<01:05, 150.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9765/19544 [01:14<01:05, 149.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9780/19544 [01:14<01:05, 149.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9795/19544 [01:14<01:05, 149.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9810/19544 [01:14<01:05, 147.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9826/19544 [01:14<01:04, 151.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9842/19544 [01:15<01:03, 152.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9858/19544 [01:15<01:02, 154.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9874/19544 [01:15<01:02, 154.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9890/19544 [01:15<01:02, 153.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9906/19544 [01:15<01:02, 155.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9922/19544 [01:15<01:01, 156.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9938/19544 [01:15<01:02, 154.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9954/19544 [01:15<01:02, 152.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9970/19544 [01:15<01:02, 152.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9986/19544 [01:15<01:03, 150.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 10002/19544 [01:16<01:03, 149.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10019/19544 [01:16<01:02, 152.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10035/19544 [01:16<01:01, 154.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10052/19544 [01:16<01:00, 156.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10069/19544 [01:16<00:59, 158.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10086/19544 [01:16<00:59, 158.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10102/19544 [01:16<00:59, 158.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10118/19544 [01:16<00:59, 158.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10135/19544 [01:16<00:58, 159.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10151/19544 [01:17<00:59, 158.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10167/19544 [01:17<00:59, 157.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10183/19544 [01:17<01:00, 155.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10199/19544 [01:17<01:00, 154.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10215/19544 [01:17<01:00, 155.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10231/19544 [01:17<01:00, 152.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10247/19544 [01:17<01:00, 153.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10264/19544 [01:17<00:59, 155.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10280/19544 [01:17<01:00, 154.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10296/19544 [01:17<01:00, 152.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10312/19544 [01:18<01:00, 151.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10328/19544 [01:18<01:01, 150.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10344/19544 [01:18<01:01, 149.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10359/19544 [01:18<01:02, 147.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10374/19544 [01:18<01:02, 147.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10390/19544 [01:18<01:00, 150.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10406/19544 [01:18<01:00, 152.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10422/19544 [01:18<00:59, 154.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10438/19544 [01:18<00:58, 155.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10454/19544 [01:18<00:58, 155.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10471/19544 [01:19<00:57, 157.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10488/19544 [01:19<00:57, 158.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10505/19544 [01:19<00:56, 159.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10521/19544 [01:19<00:57, 157.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10538/19544 [01:19<00:56, 159.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10554/19544 [01:19<00:56, 157.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10570/19544 [01:19<00:57, 156.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10586/19544 [01:19<00:57, 156.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10602/19544 [01:19<00:58, 152.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10618/19544 [01:20<00:58, 153.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10635/19544 [01:20<00:56, 156.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10651/19544 [01:20<00:56, 157.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10667/19544 [01:20<00:56, 157.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10684/19544 [01:20<00:55, 158.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10700/19544 [01:20<00:55, 158.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10717/19544 [01:20<00:55, 159.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10733/19544 [01:20<00:55, 159.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10749/19544 [01:20<00:55, 159.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10765/19544 [01:20<00:55, 157.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10781/19544 [01:21<00:57, 153.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10797/19544 [01:21<00:57, 152.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10813/19544 [01:21<00:56, 153.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10829/19544 [01:21<00:57, 151.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10845/19544 [01:21<00:56, 152.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10861/19544 [01:21<00:56, 154.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10877/19544 [01:21<00:56, 154.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10894/19544 [01:21<00:55, 156.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10911/19544 [01:21<00:54, 157.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10927/19544 [01:22<00:54, 157.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10943/19544 [01:22<00:54, 157.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10959/19544 [01:22<00:55, 154.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10975/19544 [01:22<00:55, 155.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10991/19544 [01:22<00:54, 156.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11007/19544 [01:22<00:54, 156.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11023/19544 [01:22<00:55, 153.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11039/19544 [01:22<00:55, 152.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11056/19544 [01:22<00:54, 154.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11072/19544 [01:22<00:54, 155.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11088/19544 [01:23<00:55, 153.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11104/19544 [01:23<00:55, 152.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11120/19544 [01:23<00:56, 150.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11136/19544 [01:23<00:57, 147.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11151/19544 [01:23<00:58, 143.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11166/19544 [01:23<00:59, 140.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11181/19544 [01:23<00:59, 140.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11196/19544 [01:23<00:58, 142.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11211/19544 [01:23<00:58, 142.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11226/19544 [01:24<00:57, 144.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11242/19544 [01:24<00:56, 148.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11257/19544 [01:24<00:56, 147.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11273/19544 [01:24<00:55, 150.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11289/19544 [01:24<00:54, 152.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11305/19544 [01:24<00:53, 153.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11321/19544 [01:24<00:53, 153.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11337/19544 [01:24<00:54, 151.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11353/19544 [01:24<00:53, 153.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11369/19544 [01:24<00:52, 155.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11385/19544 [01:25<00:53, 151.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11401/19544 [01:25<00:53, 151.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11418/19544 [01:25<00:52, 154.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11434/19544 [01:25<00:52, 154.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11450/19544 [01:25<00:52, 154.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11466/19544 [01:25<00:52, 153.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11482/19544 [01:25<00:51, 155.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11499/19544 [01:25<00:51, 157.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11515/19544 [01:25<00:50, 157.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11531/19544 [01:26<00:51, 156.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11547/19544 [01:26<00:52, 153.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11563/19544 [01:26<01:03, 125.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11577/19544 [01:26<01:11, 112.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11591/19544 [01:26<01:07, 117.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11606/19544 [01:26<01:03, 124.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11620/19544 [01:26<01:02, 127.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11635/19544 [01:26<00:59, 133.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11651/19544 [01:26<00:57, 138.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11667/19544 [01:27<00:55, 141.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11683/19544 [01:27<00:54, 144.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11698/19544 [01:27<00:53, 145.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11713/19544 [01:27<00:53, 146.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11728/19544 [01:27<00:53, 147.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11744/19544 [01:27<00:52, 148.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11760/19544 [01:27<00:52, 149.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11775/19544 [01:27<00:52, 149.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11790/19544 [01:27<00:51, 149.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11806/19544 [01:28<00:51, 150.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11822/19544 [01:28<00:50, 152.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11838/19544 [01:28<00:49, 154.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11854/19544 [01:28<00:51, 149.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11870/19544 [01:28<00:50, 150.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11886/19544 [01:28<00:50, 151.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11902/19544 [01:28<00:51, 149.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11917/19544 [01:28<00:51, 147.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11932/19544 [01:28<00:51, 147.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11948/19544 [01:28<00:50, 150.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11964/19544 [01:29<00:49, 152.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 11980/19544 [01:29<00:49, 152.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 11996/19544 [01:29<00:50, 150.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 12012/19544 [01:29<00:52, 142.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12028/19544 [01:29<00:51, 146.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12044/19544 [01:29<00:50, 148.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12060/19544 [01:29<00:49, 150.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12076/19544 [01:29<00:49, 151.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12092/19544 [01:29<00:48, 153.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12108/19544 [01:30<00:48, 154.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12124/19544 [01:30<00:47, 155.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12140/19544 [01:30<00:48, 151.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12156/19544 [01:30<00:49, 149.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12171/19544 [01:30<00:49, 148.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12187/19544 [01:30<00:48, 150.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12203/19544 [01:30<00:48, 151.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12219/19544 [01:30<00:48, 151.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12235/19544 [01:30<00:48, 152.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12251/19544 [01:30<00:47, 152.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12268/19544 [01:31<00:46, 156.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12285/19544 [01:31<00:45, 158.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12301/19544 [01:31<00:47, 153.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12317/19544 [01:31<00:48, 148.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12333/19544 [01:31<00:47, 150.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12349/19544 [01:31<00:48, 148.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12364/19544 [01:31<00:48, 148.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12380/19544 [01:31<00:47, 149.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12397/19544 [01:31<00:46, 153.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12413/19544 [01:32<00:47, 151.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12429/19544 [01:32<00:46, 153.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12445/19544 [01:32<00:45, 155.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12462/19544 [01:32<00:45, 157.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12478/19544 [01:32<00:46, 150.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12494/19544 [01:32<00:46, 152.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12510/19544 [01:32<00:46, 152.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12526/19544 [01:32<00:46, 151.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12542/19544 [01:32<00:48, 145.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12558/19544 [01:32<00:47, 146.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12573/19544 [01:33<00:48, 144.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12589/19544 [01:33<00:47, 146.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12604/19544 [01:33<00:47, 146.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12619/19544 [01:33<00:47, 145.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12636/19544 [01:33<00:46, 149.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12653/19544 [01:33<00:44, 154.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12669/19544 [01:33<00:44, 155.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12686/19544 [01:33<00:43, 157.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12702/19544 [01:33<00:43, 157.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12719/19544 [01:34<00:42, 159.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12736/19544 [01:34<00:42, 160.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12753/19544 [01:34<00:42, 160.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12770/19544 [01:34<00:42, 159.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12786/19544 [01:34<00:42, 159.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12803/19544 [01:34<00:42, 159.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12820/19544 [01:34<00:41, 160.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12837/19544 [01:34<00:41, 160.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12854/19544 [01:34<00:41, 161.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12871/19544 [01:34<00:41, 160.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12888/19544 [01:35<00:41, 159.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12905/19544 [01:35<00:41, 160.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12922/19544 [01:35<00:40, 162.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12939/19544 [01:35<00:41, 158.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12955/19544 [01:35<00:42, 154.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12971/19544 [01:35<00:42, 155.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12987/19544 [01:35<00:42, 154.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13003/19544 [01:35<00:41, 156.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13019/19544 [01:35<00:41, 157.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13035/19544 [01:36<00:41, 157.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13051/19544 [01:36<00:42, 153.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13067/19544 [01:36<00:42, 152.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13083/19544 [01:36<00:42, 151.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13099/19544 [01:36<00:41, 153.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13115/19544 [01:36<00:41, 153.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13131/19544 [01:36<00:41, 155.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13147/19544 [01:36<00:42, 151.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13163/19544 [01:36<00:41, 152.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13179/19544 [01:36<00:41, 153.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13195/19544 [01:37<00:41, 154.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13211/19544 [01:37<00:40, 154.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13227/19544 [01:37<00:40, 154.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13243/19544 [01:37<00:40, 154.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13259/19544 [01:37<00:40, 153.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13275/19544 [01:37<00:41, 152.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13291/19544 [01:37<00:41, 151.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13307/19544 [01:37<00:42, 148.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13322/19544 [01:37<00:42, 146.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13337/19544 [01:38<00:42, 146.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13352/19544 [01:38<00:42, 146.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13367/19544 [01:38<00:42, 146.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13383/19544 [01:38<00:41, 149.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13399/19544 [01:38<00:40, 152.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13415/19544 [01:38<00:40, 152.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13431/19544 [01:38<00:39, 153.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13447/19544 [01:38<00:39, 155.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13463/19544 [01:38<00:39, 154.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13479/19544 [01:38<00:38, 156.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13495/19544 [01:39<00:38, 157.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13512/19544 [01:39<00:37, 158.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13529/19544 [01:39<00:37, 159.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13546/19544 [01:39<00:37, 159.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13562/19544 [01:39<00:38, 157.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13578/19544 [01:39<00:38, 156.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13595/19544 [01:39<00:37, 158.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13612/19544 [01:39<00:37, 158.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13628/19544 [01:39<00:37, 157.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13644/19544 [01:39<00:37, 157.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13660/19544 [01:40<00:37, 157.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13676/19544 [01:40<00:37, 158.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13692/19544 [01:40<00:37, 157.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13708/19544 [01:40<00:37, 157.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13725/19544 [01:40<00:36, 158.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13741/19544 [01:40<00:38, 151.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13757/19544 [01:40<00:38, 150.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13773/19544 [01:40<00:37, 153.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13790/19544 [01:40<00:36, 155.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13806/19544 [01:41<00:36, 155.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13822/19544 [01:41<00:36, 155.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13838/19544 [01:41<00:36, 156.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13854/19544 [01:41<00:36, 157.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13870/19544 [01:41<00:36, 156.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13886/19544 [01:41<00:37, 151.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13902/19544 [01:41<00:36, 152.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13918/19544 [01:41<00:37, 148.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13933/19544 [01:41<00:38, 146.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13948/19544 [01:41<00:38, 145.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13964/19544 [01:42<00:37, 148.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 13980/19544 [01:42<00:36, 150.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 13996/19544 [01:42<00:36, 152.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14012/19544 [01:42<00:36, 153.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14028/19544 [01:42<00:35, 154.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14044/19544 [01:42<00:35, 153.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14060/19544 [01:42<00:35, 153.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14076/19544 [01:42<00:35, 153.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14092/19544 [01:42<00:36, 149.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14108/19544 [01:43<00:36, 149.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14124/19544 [01:43<00:37, 146.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14139/19544 [01:43<00:37, 142.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14154/19544 [01:43<00:41, 129.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14168/19544 [01:43<00:46, 115.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14180/19544 [01:43<00:49, 109.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14192/19544 [01:43<00:49, 108.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14204/19544 [01:43<00:51, 104.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14215/19544 [01:44<00:51, 103.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14227/19544 [01:44<00:49, 107.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14239/19544 [01:44<00:48, 110.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14252/19544 [01:44<00:46, 114.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14265/19544 [01:44<00:44, 117.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14278/19544 [01:44<00:43, 120.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14291/19544 [01:44<00:43, 121.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14304/19544 [01:44<00:42, 122.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14317/19544 [01:44<00:42, 124.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14331/19544 [01:44<00:41, 126.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14346/19544 [01:45<00:39, 133.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14361/19544 [01:45<00:37, 137.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14376/19544 [01:45<00:36, 140.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14391/19544 [01:45<00:37, 138.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14406/19544 [01:45<00:36, 140.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14421/19544 [01:45<00:36, 141.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14437/19544 [01:45<00:35, 143.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14452/19544 [01:45<00:35, 143.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14468/19544 [01:45<00:34, 146.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14484/19544 [01:45<00:34, 147.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14500/19544 [01:46<00:33, 150.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14516/19544 [01:46<00:33, 152.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14532/19544 [01:46<00:33, 150.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14548/19544 [01:46<00:33, 150.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14564/19544 [01:46<00:32, 151.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14580/19544 [01:46<00:32, 153.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14596/19544 [01:46<00:32, 152.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14612/19544 [01:46<00:31, 154.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14628/19544 [01:46<00:31, 154.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14644/19544 [01:47<00:31, 153.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14660/19544 [01:47<00:32, 151.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14676/19544 [01:47<00:31, 152.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14692/19544 [01:47<00:31, 154.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14708/19544 [01:47<00:31, 155.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14724/19544 [01:47<00:30, 156.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14740/19544 [01:47<00:30, 156.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14756/19544 [01:47<00:30, 154.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14772/19544 [01:47<00:30, 155.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14788/19544 [01:47<00:30, 154.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14804/19544 [01:48<00:30, 153.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14820/19544 [01:48<00:30, 154.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14836/19544 [01:48<00:30, 155.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14852/19544 [01:48<00:30, 156.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14868/19544 [01:48<00:29, 156.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14884/19544 [01:48<00:30, 153.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14900/19544 [01:48<00:30, 152.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14916/19544 [01:48<00:30, 151.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14932/19544 [01:48<00:30, 152.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14948/19544 [01:49<00:29, 153.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14964/19544 [01:49<00:29, 154.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14980/19544 [01:49<00:29, 155.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14996/19544 [01:49<00:29, 155.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15012/19544 [01:49<00:29, 155.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15028/19544 [01:49<00:28, 156.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15045/19544 [01:49<00:28, 157.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15061/19544 [01:49<00:28, 156.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15077/19544 [01:49<00:28, 156.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15093/19544 [01:49<00:28, 156.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15109/19544 [01:50<00:28, 157.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15125/19544 [01:50<00:27, 158.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15141/19544 [01:50<00:27, 158.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15157/19544 [01:50<00:27, 158.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15173/19544 [01:50<00:27, 158.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15189/19544 [01:50<00:27, 157.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15205/19544 [01:50<00:27, 158.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15221/19544 [01:50<00:27, 157.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15237/19544 [01:50<00:27, 156.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15253/19544 [01:50<00:27, 154.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15269/19544 [01:51<00:27, 153.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15285/19544 [01:51<00:27, 154.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15301/19544 [01:51<00:27, 156.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15318/19544 [01:51<00:26, 157.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15334/19544 [01:51<00:26, 157.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15351/19544 [01:51<00:26, 158.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15367/19544 [01:51<00:26, 158.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15383/19544 [01:51<00:26, 158.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15399/19544 [01:51<00:26, 158.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15415/19544 [01:51<00:26, 158.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15431/19544 [01:52<00:25, 158.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15447/19544 [01:52<00:26, 156.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15463/19544 [01:52<00:26, 153.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15479/19544 [01:52<00:26, 154.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15495/19544 [01:52<00:25, 155.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15512/19544 [01:52<00:25, 157.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15528/19544 [01:52<00:25, 157.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15544/19544 [01:52<00:25, 157.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15561/19544 [01:52<00:25, 158.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15577/19544 [01:53<00:25, 158.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15594/19544 [01:53<00:24, 159.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15610/19544 [01:53<00:24, 158.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15626/19544 [01:53<00:25, 156.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15642/19544 [01:53<00:24, 157.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15658/19544 [01:53<00:25, 155.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15674/19544 [01:53<00:24, 154.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15690/19544 [01:53<00:25, 152.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15706/19544 [01:53<00:25, 151.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15722/19544 [01:53<00:24, 153.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15738/19544 [01:54<00:24, 154.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15754/19544 [01:54<00:24, 154.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15770/19544 [01:54<00:24, 155.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15786/19544 [01:54<00:24, 155.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15803/19544 [01:54<00:23, 158.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15820/19544 [01:54<00:23, 159.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15837/19544 [01:54<00:23, 158.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15854/19544 [01:54<00:23, 159.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15870/19544 [01:54<00:23, 158.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15886/19544 [01:54<00:23, 157.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15902/19544 [01:55<00:23, 157.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15918/19544 [01:55<00:23, 157.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15934/19544 [01:55<00:22, 157.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15951/19544 [01:55<00:22, 158.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15967/19544 [01:55<00:22, 157.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15984/19544 [01:55<00:22, 158.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16000/19544 [01:55<00:22, 158.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16017/19544 [01:55<00:22, 159.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16034/19544 [01:55<00:21, 160.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16051/19544 [01:56<00:21, 159.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16067/19544 [01:56<00:22, 155.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16083/19544 [01:56<00:22, 154.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16099/19544 [01:56<00:22, 154.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16115/19544 [01:56<00:22, 154.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16131/19544 [01:56<00:22, 151.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16147/19544 [01:56<00:22, 152.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16163/19544 [01:56<00:21, 154.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16179/19544 [01:56<00:21, 154.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16195/19544 [01:56<00:21, 155.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16211/19544 [01:57<00:21, 154.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16227/19544 [01:57<00:21, 154.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16243/19544 [01:57<00:21, 154.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16259/19544 [01:57<00:21, 153.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16275/19544 [01:57<00:21, 151.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16291/19544 [01:57<00:21, 151.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16308/19544 [01:57<00:20, 154.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16325/19544 [01:57<00:20, 157.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16341/19544 [01:57<00:20, 156.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16357/19544 [01:58<00:20, 156.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16373/19544 [01:58<00:20, 156.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16389/19544 [01:58<00:20, 156.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16405/19544 [01:58<00:20, 155.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16422/19544 [01:58<00:19, 157.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16439/19544 [01:58<00:19, 159.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16455/19544 [01:58<00:19, 159.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16472/19544 [01:58<00:19, 159.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16488/19544 [01:58<00:19, 159.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16504/19544 [01:58<00:19, 155.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16520/19544 [01:59<00:19, 154.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16536/19544 [01:59<00:19, 153.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16552/19544 [01:59<00:19, 151.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16568/19544 [01:59<00:19, 149.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16583/19544 [01:59<00:20, 147.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16599/19544 [01:59<00:19, 150.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16615/19544 [01:59<00:19, 152.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16631/19544 [01:59<00:19, 152.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16647/19544 [01:59<00:18, 153.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16663/19544 [01:59<00:18, 155.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16680/19544 [02:00<00:18, 156.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16697/19544 [02:00<00:17, 158.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16714/19544 [02:00<00:17, 159.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16730/19544 [02:00<00:17, 159.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16747/19544 [02:00<00:17, 159.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16763/19544 [02:00<00:17, 159.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16780/19544 [02:00<00:17, 160.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16797/19544 [02:00<00:17, 160.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16814/19544 [02:00<00:17, 160.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16831/19544 [02:01<00:17, 159.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16847/19544 [02:01<00:17, 157.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16863/19544 [02:01<00:17, 154.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16879/19544 [02:01<00:17, 150.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16895/19544 [02:01<00:17, 150.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16911/19544 [02:01<00:17, 152.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16928/19544 [02:01<00:16, 155.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16944/19544 [02:01<00:16, 154.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16960/19544 [02:01<00:16, 153.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16976/19544 [02:01<00:16, 152.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16992/19544 [02:02<00:16, 152.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17008/19544 [02:02<00:16, 151.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17024/19544 [02:02<00:16, 152.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17040/19544 [02:02<00:16, 152.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17056/19544 [02:02<00:16, 152.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17072/19544 [02:02<00:16, 151.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17088/19544 [02:02<00:15, 153.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17104/19544 [02:02<00:16, 151.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17120/19544 [02:02<00:15, 153.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17137/19544 [02:03<00:15, 155.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17153/19544 [02:03<00:15, 156.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17169/19544 [02:03<00:15, 156.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17185/19544 [02:03<00:15, 157.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17201/19544 [02:03<00:14, 156.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17217/19544 [02:03<00:14, 157.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17233/19544 [02:03<00:14, 157.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17249/19544 [02:03<00:14, 158.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17265/19544 [02:03<00:14, 158.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17282/19544 [02:03<00:14, 159.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17298/19544 [02:04<00:14, 155.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17314/19544 [02:04<00:14, 156.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17330/19544 [02:04<00:14, 156.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17346/19544 [02:04<00:13, 157.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17363/19544 [02:04<00:13, 158.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17380/19544 [02:04<00:13, 158.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17397/19544 [02:04<00:13, 159.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17413/19544 [02:04<00:13, 159.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17429/19544 [02:04<00:13, 159.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17445/19544 [02:04<00:13, 159.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17461/19544 [02:05<00:13, 158.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17477/19544 [02:05<00:13, 158.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17493/19544 [02:05<00:12, 158.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17509/19544 [02:05<00:12, 158.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17525/19544 [02:05<00:12, 158.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17541/19544 [02:05<00:12, 158.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17557/19544 [02:05<00:12, 158.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17573/19544 [02:05<00:12, 158.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17589/19544 [02:05<00:12, 158.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17605/19544 [02:06<00:12, 157.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17622/19544 [02:06<00:12, 158.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17638/19544 [02:06<00:12, 158.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17655/19544 [02:06<00:11, 159.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17671/19544 [02:06<00:11, 158.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17687/19544 [02:06<00:12, 153.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17703/19544 [02:06<00:12, 151.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17719/19544 [02:06<00:11, 152.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17735/19544 [02:06<00:11, 152.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17751/19544 [02:06<00:11, 154.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17767/19544 [02:07<00:11, 153.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17783/19544 [02:07<00:11, 153.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17799/19544 [02:07<00:11, 154.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17816/19544 [02:07<00:11, 156.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17833/19544 [02:07<00:10, 158.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17849/19544 [02:07<00:10, 155.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17865/19544 [02:07<00:11, 151.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17881/19544 [02:07<00:11, 149.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17897/19544 [02:07<00:11, 149.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17912/19544 [02:08<00:10, 148.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17927/19544 [02:08<00:10, 148.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17942/19544 [02:08<00:10, 148.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17957/19544 [02:08<00:10, 147.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17972/19544 [02:08<00:10, 146.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17987/19544 [02:08<00:10, 144.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18002/19544 [02:08<00:10, 145.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18017/19544 [02:08<00:10, 144.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18032/19544 [02:08<00:11, 136.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18048/19544 [02:08<00:10, 141.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18064/19544 [02:09<00:10, 144.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18079/19544 [02:09<00:10, 144.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18094/19544 [02:09<00:10, 144.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18109/19544 [02:09<00:09, 144.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18124/19544 [02:09<00:09, 144.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18139/19544 [02:09<00:09, 142.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18154/19544 [02:09<00:09, 140.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18169/19544 [02:09<00:09, 142.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18184/19544 [02:09<00:09, 143.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18199/19544 [02:10<00:09, 142.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18214/19544 [02:10<00:09, 139.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18229/19544 [02:10<00:09, 142.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18244/19544 [02:10<00:09, 139.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18259/19544 [02:10<00:09, 140.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18274/19544 [02:10<00:08, 142.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18289/19544 [02:10<00:08, 143.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18305/19544 [02:10<00:08, 147.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18322/19544 [02:10<00:08, 151.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18338/19544 [02:10<00:07, 153.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18355/19544 [02:11<00:07, 155.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18371/19544 [02:11<00:07, 154.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18387/19544 [02:11<00:07, 154.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18403/19544 [02:11<00:07, 156.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18419/19544 [02:11<00:07, 157.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18436/19544 [02:11<00:06, 159.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18452/19544 [02:11<00:07, 155.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18468/19544 [02:11<00:06, 154.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18485/19544 [02:11<00:06, 156.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18502/19544 [02:12<00:06, 157.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18519/19544 [02:12<00:06, 160.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18536/19544 [02:12<00:06, 159.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18552/19544 [02:12<00:06, 155.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18568/19544 [02:12<00:06, 155.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18585/19544 [02:12<00:06, 157.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18601/19544 [02:12<00:06, 156.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18618/19544 [02:12<00:05, 158.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18634/19544 [02:12<00:05, 157.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18650/19544 [02:12<00:05, 152.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18666/19544 [02:13<00:05, 154.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18682/19544 [02:13<00:05, 151.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18698/19544 [02:13<00:05, 148.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18713/19544 [02:13<00:05, 145.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18728/19544 [02:13<00:05, 145.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18743/19544 [02:13<00:05, 144.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18758/19544 [02:13<00:05, 145.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18774/19544 [02:13<00:05, 147.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18790/19544 [02:13<00:05, 148.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18805/19544 [02:14<00:04, 149.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18820/19544 [02:14<00:04, 149.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18836/19544 [02:14<00:04, 151.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18852/19544 [02:14<00:04, 147.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18867/19544 [02:14<00:04, 145.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18883/19544 [02:14<00:04, 146.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18898/19544 [02:14<00:04, 145.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18913/19544 [02:14<00:04, 145.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18929/19544 [02:14<00:04, 147.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18944/19544 [02:14<00:04, 148.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18960/19544 [02:15<00:03, 149.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18976/19544 [02:15<00:03, 150.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18992/19544 [02:15<00:03, 150.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19008/19544 [02:15<00:03, 148.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19024/19544 [02:15<00:03, 149.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19039/19544 [02:15<00:03, 148.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19054/19544 [02:15<00:03, 148.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19069/19544 [02:15<00:03, 144.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19085/19544 [02:15<00:03, 146.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19101/19544 [02:16<00:02, 147.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19117/19544 [02:16<00:02, 149.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19133/19544 [02:16<00:02, 150.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19149/19544 [02:16<00:02, 148.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19164/19544 [02:16<00:02, 148.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19180/19544 [02:16<00:02, 150.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19196/19544 [02:16<00:02, 148.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19211/19544 [02:16<00:02, 146.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19226/19544 [02:16<00:02, 143.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19241/19544 [02:16<00:02, 144.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19256/19544 [02:17<00:01, 145.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19271/19544 [02:17<00:01, 145.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19286/19544 [02:17<00:01, 146.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19301/19544 [02:17<00:01, 143.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19316/19544 [02:17<00:01, 143.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19331/19544 [02:17<00:01, 144.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19346/19544 [02:17<00:01, 144.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19361/19544 [02:17<00:01, 143.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19376/19544 [02:17<00:01, 142.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19391/19544 [02:18<00:01, 138.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19405/19544 [02:18<00:01, 137.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19420/19544 [02:18<00:00, 140.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19435/19544 [02:18<00:00, 140.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19450/19544 [02:18<00:00, 140.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19465/19544 [02:18<00:00, 141.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19480/19544 [02:18<00:00, 141.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19495/19544 [02:18<00:00, 141.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19510/19544 [02:18<00:00, 142.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19525/19544 [02:18<00:00, 141.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19540/19544 [02:19<00:00, 143.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 19544/19544 [02:19<00:00, 140.51it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OOV questions: 0\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Do predictions and preserve the gold answers (word_D)\n",
    "preds = []\n",
    "golds = []\n",
    "\n",
    "for analogy in tqdm(data[\"Question\"]):\n",
    "      # TODO2: Write your code here to use pre-trained word embeddings for getting predictions of the analogy task.\n",
    "      # You should also preserve the gold answers during iterations for evaluations later.\n",
    "      \"\"\" Hints\n",
    "      # Unpack the analogy (e.g., \"man\", \"woman\", \"king\", \"queen\")\n",
    "      # Perform vector arithmetic: word_b + word_c - word_a should be close to word_d\n",
    "      # Source: https://github.com/piskvorky/gensim/blob/develop/gensim/models/keyedvectors.py#L776\n",
    "      # Mikolov et al., 2013: big - biggest and small - smallest\n",
    "      # Mikolov et al., 2013: X = vector(”biggest”) − vector(”big”) + vector(”small”).\n",
    "      \"\"\"\n",
    "      # GloVe 的字全部是小寫，所以題目也先轉小寫，否則 \"Athens\" 會查不到。\n",
    "      word_a, word_b, word_c, word_d = analogy.lower().split()\n",
    "      golds.append(word_d)\n",
    "      if all(w in model.key_to_index for w in (word_a, word_b, word_c)):\n",
    "          # b - a + c：most_similar 會自動排除 a、b、c 這三個字本身\n",
    "          preds.append(model.most_similar(positive=[word_b, word_c], negative=[word_a], topn=1)[0][0])\n",
    "      else:\n",
    "          preds.append(None)   # 題目裡有字典沒有的字（OOV），直接算答錯\n",
    "print(\"OOV questions:\", sum(p is None for p in preds))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a2f91037",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:09.659069Z",
     "iopub.status.busy": "2026-10-05T11:42:09.659069Z",
     "iopub.status.idle": "2026-10-05T11:42:09.699637Z",
     "shell.execute_reply": "2026-10-05T11:42:09.699637Z"
    },
    "id": "xG7vcPXAW6uT"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Category: Semantic, Accuracy: 65.3399481339497%\n",
      "Category: Syntactic, Accuracy: 61.255269320843084%\n",
      "Sub-Category: capital-common-countries, Accuracy: 93.87351778656127%\n",
      "Sub-Category: capital-world, Accuracy: 88.94783377541998%\n",
      "Sub-Category: currency, Accuracy: 14.203233256351039%\n",
      "Sub-Category: city-in-state, Accuracy: 30.806647750304013%\n",
      "Sub-Category: family, Accuracy: 81.62055335968378%\n",
      "Sub-Category: gram1-adjective-to-adverb, Accuracy: 24.39516129032258%\n",
      "Sub-Category: gram2-opposite, Accuracy: 20.073891625615765%\n",
      "Sub-Category: gram3-comparative, Accuracy: 79.12912912912913%\n",
      "Sub-Category: gram4-superlative, Accuracy: 54.278074866310156%\n",
      "Sub-Category: gram5-present-participle, Accuracy: 69.50757575757575%\n",
      "Sub-Category: gram6-nationality-adjective, Accuracy: 87.86741713570981%\n",
      "Sub-Category: gram7-past-tense, Accuracy: 55.44871794871795%\n",
      "Sub-Category: gram8-plural, Accuracy: 71.996996996997%\n",
      "Sub-Category: gram9-plural-verbs, Accuracy: 58.39080459770115%\n"
     ]
    }
   ],
   "source": [
    "# Perform evaluations. You do not need to modify this block!!\n",
    "\n",
    "def calculate_accuracy(gold: np.ndarray, pred: np.ndarray) -> float:\n",
    "    return np.mean(gold == pred)\n",
    "\n",
    "golds_np, preds_np = np.array(golds), np.array(preds)\n",
    "data = pd.read_csv(\"questions-words.csv\")\n",
    "\n",
    "# Evaluation: categories\n",
    "for category in data[\"Category\"].unique():\n",
    "    mask = data[\"Category\"] == category\n",
    "    golds_cat, preds_cat = golds_np[mask], preds_np[mask]\n",
    "    acc_cat = calculate_accuracy(golds_cat, preds_cat)\n",
    "    print(f\"Category: {category}, Accuracy: {acc_cat * 100}%\")\n",
    "\n",
    "# Evaluation: sub-categories\n",
    "for sub_category in data[\"SubCategory\"].unique():\n",
    "    mask = data[\"SubCategory\"] == sub_category\n",
    "    golds_subcat, preds_subcat = golds_np[mask], preds_np[mask]\n",
    "    acc_subcat = calculate_accuracy(golds_subcat, preds_subcat)\n",
    "    print(f\"Sub-Category{sub_category}, Accuracy: {acc_subcat * 100}%\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9d62a533",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:09.734139Z",
     "iopub.status.busy": "2026-10-05T11:42:09.734139Z",
     "iopub.status.idle": "2026-10-05T11:42:10.172823Z",
     "shell.execute_reply": "2026-10-05T11:42:10.172823Z"
    },
    "id": "7_z6CybBXKZu"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA98AAAL1CAYAAADes1dUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQAA1fRJREFUeJzs3QWYlOX3//GzS9fSndIhSHeHhI0gioEiggHYLepXFGxRBBUERRQBRQywKFGkpAxKuruWzvlfn9v/M7+ZYYuYzffruubanXlyZmd35zzn3OeO8Pl8PgMAAAAAAGETGb5dAwAAAAAAgm8AAAAAABIBmW8AAAAAAMKM4BsAAAAAgDAj+AYAAAAAIMwIvgEAAAAACDOCbwAAAAAAwozgGwAAAACAMCP4BoAkMnPmTMuVK5f7mtg2btzojj169OgUsd/z8ffff7tz+eqrr5L1eR8+fNjuv/9+q1ChguXOndsee+yxRD+H1Oz11193P9vjx49bapEan9P5mjx5snstFixYkNSnAgDxIvgGkGodPXrUChQoYLfeeutZy7744gv3ga1Dhw5nLZs+fbpbNnz48LCe38mTJ+3AgQPua0I+XHq3vHnzWrly5ey2226zZcuWndexz5w54459Ph/eV61a5c5jzJgxF3W/F9vp06fduZw4cSLedZPyvF944QUX9H/22We2bt06+9///mcpwZYtW+ypp56y+vXrW9GiRa148eLWoEED69Gjh82YMcN8Pp8lB8eOHXM/23Ccz4cffuh+F2rXrm2p5TldKL2HA/9exXVLyIWxhP4dPXXq1EU5fwAIp/Rh3TsAJKEsWbK4IPWHH35wH1IjIiL8y37++WcXaCnQVpCudT1Tp051H+YUSCQH3ofLDz74wG644QZ3/6+//rJ7773XnePixYutdOnSySKoLVGihO3bt8+yZs1qKUlSnrfeb40aNUr0AO5CTJw40V3UqlOnjgvAa9SoYenSpXMXgxSQtmzZ0l1M6Nq1q6Vm7733nmXMmNEWLlxos2bNssaNG1taV7JkSVu/fn3QY1deeaWrRNmwYUPQ49myZUvkswOApEXmG0CqpiBgz549LlgNpKD7rrvucgHk77//ftYyZcwvvfRSS04UGCpblD9/fmvVqpW98847Fh0d7YLy5CIyMtKdowKSlCQpz3vnzp0pKghZsmSJ3XTTTS6gmjZtml199dUu612kSBFr3bq1jR071r7++mvLnDmzpWa66LVo0SIbMmSICzjDXSmT0n6XAm/p06d3Fz9DH8+QIUNSny4AJCqCbwCpmoJUURls4PjetWvXWqdOnaxq1aou2PYcPHjQZbEUtHuOHDlizz33nFWrVs0F5dqmX79+bqxuaKmlyodVJq5MpoLkn376yS3/888/7YorrrDChQu77UeMGHHBz61y5crua2iWSZnpt99+25UDFyxY0MqWLWt9+vRxFyHiokqAwA/Geq7Kxr722mv+0ngFW3Xr1nXfK/PureuVSsc2dlqv65NPPmlVqlRx+73ssstcubXKZ2Mao/3dd9+54xQqVMj9LP7444+zznfYsGHWsGFDV/KsCyW6mBL6Wnji219M5x14PuPGjbOaNWu67du0aWPz5s27oPMR7Vf7V/m2971uy5cvDzq2bvXq1bN8+fK57KoXAHfu3Nll7L2g9/vvvw/av96j2kY/1wcffNBKlSrlxpUrWBRVfOhxVU1ccskl9uyzzyaojFk/a5Xp6z2mQCsm11xzjXXs2DHosYSc87ms98svv1jz5s3dz0TvU2XjNRRCr5uGRsRn06ZN7j2s10TvSb0/9DNMKAXb+llfd9111rNnTzeURRUhobyfg36H9Dug11vPrVevXnbo0KGgdfX+894HGv+vixr6uxH4NyouF/O1+/jjj939mH73JkyY4JYF/l09n6Er3k3noaoBVU0EUin5K6+84s5RfztVYfHQQw/Zrl274ty//jZff/317qJI6MVVAEhSPgBIxY4dO+bLkiWL76qrrvI/NnLkSF/mzJndsr59+/rq1avnXzZp0iRFH75hw4a5+ydOnPA1btzYlydPHt+4ceN8GzZs8H355Ze+fPny+Ro0aOA7fvy4W2/VqlVuu65du/puueUW359//un75ZdffL/++qtv2bJlvuzZs/tatmzpW7Bgge/ff//1PfDAA76bb77ZbTNlypQ4n8PEiRPdeqNHjw56XPvX49qX5/Tp0+656nz1PHW+c+bM8dWtW9dXsWJF38GDB91669atc9sOHz48aJ/79u3z39avX+/7+OOPfVFRUb5HH33ULT958qRv/vz5btshQ4b41z169Gis+9WyWrVq+QoWLOiei85pzJgxvly5crnX5NSpU269xYsXu21vv/1239133+1bunSp7++///Y1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1we9Yz179rSnnnrKradO5cp8796925577jnXLG3+/PlWqVIltzwqKsqqV68etO8iRYq4seEycuRIy5Qpkw0cONA1YQvcN5AcRPi83v3JVHR0tOXMmdMOHDjgfuGAcCpUqJB9+umnbooK0ftOf/jVwCNDhgyu7FxdNXPkyOEfI16sWDHLkiWLbdy40W2fOXPmoH2eOXPG7aNo0aJu7sk1a9a4q7oAAABpQb0BU21H9PGzHi8YlcnmPfXfZy4gLcShZL6BWKxYscJq1aplkyZNcoG3XH755TZz5kz/Oiprevjhh6148eLWokUL1xRkwoQJ/uXTp093AbnmmtTXBx54wC677DJecwAAkGZULBRlkRHBj+m+HgfSEoJvIAYKsBVMa37IJ554Is7XSNNbKAO+bt06GzBggD300EPucXVNv+mmm6xfv362ZcsW27Bhgy1fvpzXGwAApCl9Wpa1iIgIfwCur7rft9V/5eJAWkHwDYQYO3as3XjjjTZ+/Hj3NT5qDuJNe9G+fXtXfq5um3PnzrUTJ0645d68lMqSAwAApCW1S+WxcT3rW5Ny+V2pub6O71XfapXMk9SnBiQqup0DITSlRcGCBf3NPeLjjf8Wrzxd801qTsq8efNaZOT/XeMKnbsSAAAgrQTgo7rXTerTAJIUmW+ked68k2oGcuDoSbvr4X7WpEkTN55727Zt5/36lClTxjZv3mz79u3zP6Y5JwEAydf9999vy5YtS3H7jokqse68885EOx4AIG4E30jTvHknZ63a5bpwnjx9xl78foV1e/h/ds0117ggfP369ee1bzVr0+3mm2+23377zcaNG+fGkGuMEwAgedLf6q1bt6a4fcdk7969NmrUqEQ7HgAgbgTfSNMC552U9HmKWUSGzO5xNU+766677J577nEfYERTjgVONVCxYkX/eG/JmDGjm0YsXbp07r46pWvOyscee8y+/fZb69+//1lTkQEAAABI/RjzjTRtxfZof+Athbq+7H9cHn/8cXfz/PTTT0Hb//LLL0H3ixQpYv/880/QePChQ4f677/55psugAcAAACQthB8I03T/JK7Du6yM77wzDs5aNAg97Vx48b2999/2wsvvGCvv/76Rdk3ACA81DTzgw8+cH+31b9DFVBe1ZLGUOtvedGiRd19DU166aWXbPjw4e6+xnSPGTPGDhw4YA0aNHBT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16lTx43/HD16tD333HPWpk2bi/o8gaSgrK2CzFdeeSXVXrRbvu2Alcx8wh6/voENbNvWBgwYYOXKlbOJEyfaLbfcErSNLq7p91wZ67YxrJspUyZ/FY2ndu3ariRdfxc8Gt+t8nMAqRfdzgEgET+wVqhQwXXeVgOdggUL2p133hlUKq7MkcoVCxQo4Mb/KUgM3f7VV191X4sXL24PP/yw+8AW6Hz3X69ePX8JpPapMuk77rjDv1zjmFPKh219ePYCb8lUsrrl69DXxn3zoyuPffzxx+22226zwoULu+Ua662mR4Fq1qxpJUqUcN/rQ7LKyBWwf/zxx5Y5c2YXZMsll1xil112mX87NUVSt+Njx47ZyJEj3Ry/b7zxBoE3Ug01E/z9998ttV60m7Vql+2IPmbfDLjbWnW63Z55+W1XyaLpAwN/1wODbzVU7Nu3r3344YdnratqmF9//dU1U/O6nb/55pv27rvvutkV1KhNjRo128KqVauS4JkDSCxkvgEgEcdk//vvv67xjprsaByxOmnrw9p9993nShA1xZU+kKnrrda94YYb3BzR1157rX97deSePn267dy5001/pUDwpZde8n8oPt/9K6OrskntU1Pc5MqVy9+dV8eeMmWKC/ZTApWae4G3J2ulZlaw3uU28qnW7n5g5/Hbb7/9rH3oIkcgXdB4++23z1rv5ptvPusxze392muvXchTAC7qWGxdFJo0aZKbz17T7KkDvyo3dHFI720FjFmyZPFvt2LFCndxTt24Nee9Aks1CNP6mrZPHf29YRiB0/jpb4/mtdZx9LfEqxgRBaRaV397NL65T58+VqxYsaDzVBCrpoX58uWz/v37J9lFu4iISCvUbZAd+WeKjf9hhnVuXMXmzp3rLlp6AbXXx0EN2PR3WVMWzp8/3/1NDVz36quvdr0g1NFcFTHqcq7AXH+TR40a5SppVKauxo762yH6+eg1ApC6EHwDQCLS+D8FcGrmpayrPoTpQ5soKFZ22cs268Pngw8+6DKtCo5F233wwQcuMNaHNX047d27tz/4vpD9KzBXFkY0r+ytt97qMuF///23+8AoKqNOCSoWirJdB3fZmYAAPDLiv8eBtDYW+5133nHTYulCkYJC/a7rd/nyyy+366+/3l1oUmCsvy2iYFDVHgrSFThqPLPKpBV46++Olqns/O6773bre80I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ChYsaLfeeqt99NFHljlzZndTLxJlnLdv3+7fp7a54oorrEePHm6/efLksSeffNK/XMHxo48+6j/mAw884M5DtO/27dvbjh073P5r1arlfzy2Y37xxRf2v//9z7777jv/OtpeDh8+HOt5yIcffmiVKlVy21x66aU2adKkoOcR+twBAEDSIPgGAKRob7zxhgs4Z86caatXr7YsWbLYokWLgtb56aefrEGDBrZhwwb77LPPrHv37v4Ms7bJli2b9e7d+6xtmjZtaps3b3bfv/322zZr1iy37K233rIJEybYjBkzXIl5+vTp/cfUvrW+gl3tf8mSJf7HYzummqop+L766qv962j7+M7j448/tueff95daNA489dff926du1qy5cvj/W5AwCApEHwDQAIooDyXMYqJzVNY/n4449blSpVLHv27G7sdN68eYPWqVOnjvXs2dNlh0Plzp3bBb6TJ0/2l6pLkyZN7LbbbnPbaHtl0//880+3bNSoUS4DXbVqVcuRI4e9/PLLZx0zLrEdMyZxncfgwYPdeegxTWfWunVru+qqq1wmPSHPHQAAJB6CbwBAkOPHj9vOnTtTzKuyZcsWK1WqlP++stDFihULWqd48eJB95ctW2Zt27Z15d8ZMmSw8uXL27Fjx2zPnj3+dfLnzx+0jYLXo0eP+o9ZunTpOI8ZKiHHjElc57F+/XpXZu+Vqus2btw4lyWP7bkDAICkQfANAEhxFqzfa91Gzrd6A6aaZctr0+f/7V+msdebNm0KWj8iIiLovsZQa5y05t9WQzSVjktCG50poFXpeFzHDBXfMSMjI+PNgofSRYfhw4f7S9W9m+YYj+25AwCApJE+iY4LAMB5B95dhs1Vi3A77TOLKN/UXn31FatU9TJr36Cavfjii67beFyUOVa2WhnodevW2f33339O53D77be7UnM1U1MAfDGOWbhwYReQaz9RUVFu3fio0ZvKznUxoF69erZt2zZXhq/zuvbaa8/pOQEAgPAi8w0AyYiyotdcc42VK1fONd9SBjNw/LU6a48ZM8Z101bQp+yrlutxBWAtWrSwKVOmBO1Ty8aOHeu6XpctW9YFZRs3bvQvVyCox3RMHTswoyuvvPKKVa9e3SpUqGD33HOP7d+/379M5dfqoK1lCv7eeeedoOxtfMc+H4Onr/YH3pKj9rWWrWJj63lrF6tRo4YL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okVWs2ZNF/zKH3/84YJnBf06poLkdevWBW3/2GOP2cMPP2w+n88F4A0bNnQXBnS+mTJlsrvvvtveffdd/zY6hoLgOXPmWLp06dz2119/vVuWLVs2y5Url/vqnbfWkd9++y3W81yzZo1VqVLFBe5Zs2a10aNHW5MmTezkyZOxvjYAkByR+QYAAEhi/fr1c4Hsq6++6u7feuutVrFixaB1FAD/8ssvliVLFv9jVatW9X/funVr69mzp3Xv3t3/mAJkBc1ellhZ459//tlljp955hnr0aOH63AuN998s1WuXDnomAqUZ8yY4bLx999/vwue77rrLnv66afd8jx58tjnn39uvXv3dvcVBN9www32wQcfuPu9evWyMmXK2E8//WRt27a1+vXr2z///OPPfCfkPB999FEX8A8dOtQte+KJJ6xWrVquOVy3bt1ifW0AILkh+AYAAEhiixcvdlliT9myZV1ZeSCVnwcGlwo4VWatqcGUJT58+LBt2LDBjh07ZpkzZ3brKEj1AlopWbKk7dy5032vMnBltT3ly5c/65jKQCvwluzZs7vgWwG0p3jx4v79ibLW9913n/9+oUKF3D4WLFjggu/YxHWeymyrKiAwYD916pQrU/eC79DXBgCSI4JvAACAJLBg/V4bPH21rdgebYdP+mzZln3WJmC5AsxAXkDtefDBB9248E6dOlmxYsVc8K2A/NChQ/51vbLuQFpHNM479Bih92PaPvQxb39x7dML4GMT13lGRka6ID5wDPidd97pyttje20AIDki+AYAAEiCwLvLsLmKMO20zyyyYHnr99aH1qh5a6tdKo8bj63mYnH59ttv7fXXX/c3PNNY6HOh8dtqYtahQwd3X8cMHPN9PrTPsWPH+s9J48mVYX/ttdf82fOjR4+e0z5btWplx48fD8p8b9q0yY4cOXJB5woAiY3gGwAAIJEp4+0F3pKzya22Y+zTdlX7tta2XhWbN2+eFShQwGV9Y6OgWWOtNZ5aJdpr1649p3MYMGCAtWjRwnVJL1GihDumMswX4uWXX3Zjz9WlXeO2v/vuOzfuW/dFjdKeffZZl7lWw7jAbuex0QUGPVd1Tlf5+bZt21wTNq/TOwCkFATfAAAAiUyl5l7gLRnzl7Qidw6xjDv+sSuuqOECTgWbuXPndsuvuOIK279/f9A+Bg8e7DqUr1q1yk2v1bx5c9ftXNnl2La599577ZJLLnHfq6Hb33//7caNq1xcx9T3l112WazbK1jWePTAhm9q3OZRwK2GamrSpqnGdHFA47k99erVc53SFeirTF7l5vGdZ8GCBV1WXh3R9VyLFCniLhp4Y7xj2h4AkqMIX+BAnWRIU2fkzJnTDhw4YFFRUUl9OgAAABes28j59tuqXXbm/38KO3PskNmJI9aidhUb1b2u6/zdrl0727x5sws+AQApPw4l8w0AAJDI+rQsa7NW77ZI87kAPDIiwrZN6G/bNlW3Lj9lsEmTJrmycAJvAEg9yHwDAAAkcbfzioWirEf9QrZrxQLXrVxjmytVqsTPBQBSUeab4BsAAAAAgDAH37G30AQAAAAAABcFwTcAAAAAAGFG8A0AAAAAQJgRfAMAAAAAEGYE3wAAAAAAhBnBNwAAAAAAYUbwDQAAAABAmBF8AwAAAAAQZgTfAAAAAACEGcE3AAAAYvXXX3/Z6NGjeYUA4AIRfAMAACBW8+fPtyFDhvAKAcAFSn+hOwAAAEDSWbNmjX3xxRfu+1y5clmDBg3ssssu8y+fPXu27dy506699lr/Y19++aUVK1bM6tevb0uWLLGlS5da69atbcqUKXb06FFr3769W75x40b74YcfbOvWrfbyyy+7bbt3724FChRIgmcKACkbmW8AAIAU7OTJk7Z//353W7hwobVs2dKGDh3qXz59+nT79NNPg7b5+OOP7ZdffnHfz5071x577DFr166dC9S//vpru/TSS23z5s126tQpF4yfPn3afwx9DwA4d2S+AQAAUrCKFSv6s9LSq1cvl8XW13Tp0iVoHwcOHLAFCxZY4cKF3X1lz8ePH28PPfSQdezY0fbu3Rt0DADAuSP4BgAASOFWrVplv/32m+3evdvOnDljBw8edJnrkiVLJmj7KlWq+ANvKV++vG3fvj2MZwwAaQ9l5wAApFEfffSRjRkz5ryXX0zKuj755JOJcqzU5sMPP7S6devajBkz3NhulYbLvn373NeIiIiztlE5eaAMGTIE3dc2CuIBABcPwTcAAGnU77//7jpZn+/yi2n9+vU2ceLERDlWarBg/V7rNnK+1Rsw1Z55bajd2fcxNx3Y66+/bp06dQoKnNUcbe3atf77hw4dck3WEipLlix24sSJi/4cACCtoewcAAAke4sWLbJx48bZK6+8YmmdAu8u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hbVr186tr0Bct+effz5ov99++63NmTPHtmzZ4jrF33LLLfEeT8fp0KGDW3f//v329ddf29ChQ23IkCFB+54xY4bNmzfPlcMrgH/22WcT6dUCAAC4+Ai+ASANyJEjh5uW7cyZMy6T3LFjR7v11ltjXX/cuHFWvHhx69Onj9tOGfGnn37axowZE7TeK6+8YoUKFbI8efLYoEGDXMCs4Dqu402YMMFltB944AG3TBlwff/xxx+ftW9l3LWvrl272l9//RWmVwcAACD86HYOAGlAjx49XFa7S5curnS8SZMm9vjjj1v+/PljXF8l3n/++acLugNFRka6gNpTqlQp//clSpRwAbdKz+M6nrLkKlUPVLp0aRe0B1Lg7VGQ7pW8AwAApERkvgEglc+L3m3kfGv4ygxblKOBvf7xV268teauvPPOO/0BdWhjMwXVderUcQF04O3IkSP+9UWl5Z41a9a4fShjni5dOrv//vvtl19+Oet4Wr5q1aqg81y5cqWVLFky7K8HAABAUiH4BoBUHHh3GTbXZq3aZSsnj7TJ4z+x61//zmb8tdY1RFN3c8mbN68brz137lyXXVbjM43R3rRpk/Xr18991XRkKkW/++67g47xyCOPuMB5/fr1rkRdY8QLFy5szz33nH3wwQdu23379gUdT83XlOVWkzWNB582bZorWb/rrruS5HUCAABINcH33r177e+//3aZDwBA4hg8fbXS2XbaZ5aj1pV2fOd62zL6UbuudWMXZCs4FmWp1bVcwbMCcXU7z507t/32228us924cWOrVauWa6722GOPBR1D5eUKpuvWreuaoo0ePdo9rs7oGqOtLuXVq1cPOl7BggVdwD19+nSrXLmy9e3b15555hl/8K3SdV0M0FePzlGPAQAApFQRvjBOoKpdq4mOut5qKhmN81PDHmVSEkoBuz7QHThwwE13AwBImHoDptqO6P+yzYEKRmWyeU+1vqCXUZlrlY8rqx06LhwAACCliw5DHBrWzPfw4cPto48+sgULFrixgD/99JO98MILLnsCAAivioWiLPL/kseO7utxAAAAJK6wB9+dOnWyqlWruvvNmjWzli1b2ocffhjOwwIAzKxPy7KudNsLwPVV9/u2KnvBr09MpeEAAABIguBbDXs0TY265QaqV6+eLVq0KFyHBQD8f7VL5bFxPetbk3L5Xam5vo7vVd9qlcxzwa9R0aJFXfdzlWMBAAAgCef5PnjwoJ08edI17wmdt3XPnj2xbqduuF5HXKFJGwBcWAA+qntdXkIAAIDUmvnOkCGD+xoYSIs63nrLYjJw4ECXSfFuaugDAAAAAEBKFrbgO1u2bJYnTx7bunVr0OO6X6JEiVi3e/LJJ11HOe+mOWIBAAAAAEjJwtpwrVWrVjZ58mT//TNnztj333/vHo+NGviolXvgDQCAc3Hq1Ck3zaWGQCWGb775xpYtW5YoxwIAAClTWIPvZ555xk0z1rdvX5syZYp169bN9u7daw8//HA4DwsASOPUDO6ee+6Js8fIxfTaa6/Zr7/+mijHAgAAKVNYg+9q1arZb7/9Zrt27bLnn3/e0qVLZ7Nnz46z7BwAkLp9++23tnTpUktL0uJzBgAAidTt3FOrVi37/PPPw30YAEAK8eabb1qnTp2sSpUqllakxecMAAASOfgGAKQ9p0+fthkzZti2bdusatWqVr16dff4zJkzXePNWbNmWfr06V1jzhtuuMEt0/hsVUdpeFKdOnWsbNmyQWOqy5UrZxEREbZkyRIrWbKkNWzYMOiYGzZscNsXLlzYfzzP1KlTbfXq1RYZGelm0WjSpIllz57dv3zcuHFWr149K1WqlLt/4sQJGzlypN16662ugaisX7/e5syZ4/avdUeNGmU333yz5ciRw7+fVatWueFW+fPnd/1NdL4X+py1zcKFC61GjRpWsWLFi/pzAgAAiYfgGwBw0ZudNWrUyI4cOeKqn95++21r0aKFGxetGSwOHTpkW7ZscUF00aJF3TZz5851meEKFSpYoUKFXK+Q5557znr37u2Wa1sFxIcPH3aB9bRp06xt27YuAPbKurt27eoCXq2n2TJCA3MdT40/P/nkE3d8jdH2prPUsV5++WV/8K1z15jxK6+80gXfEydOdIF4mzZt3BSa+/btc+fcrl07f/Ctcxk+fLjLbk+fPt2aN29un3766QU955MnT7rx6wrMGbIFAEAK50vmDhw44NNp6isAIPlbsWKFL3369L5jx475H5s5c6b/+2bNmvkGDx7sv3/69GlfuXLlfIMGDfI/tnTpUl+2bNl827Ztc/cbNWrku+yyy/z73LRpk1v+888/+06ePOkrUqSI7/333/dv379/f/e/Y926dTGeY8+ePX19+vTx369QoYJv4sSJ/vv79u1z2+s4J06c8BUuXNg3YsQI//KXXnopaP86v8svv9x35swZd3/ZsmVu+e7duy/oOTdu3Nh36tSpBL/2AAAg+cahZL4BABeVsseVKlWy++67zzp37mwNGjSwpk2bxrq+stIq11bGWtODebJkyWKLFy+29u3bu/val6ajlGLFirlsukq5lRFWWfctt9zi31ZZ6n79+gUdZ9GiRbZixQpX6q3svL5PiLVr17ry+S5duvgfU7n5008/HbTeFVdc4crMRc9fJe7KdufNm/e8n/M111zjmpUCAICUj+AbAHBRKUDWuOeffvrJjft+6KGHXDn4O++8E+P6KvGWf//9NyjQvP7664MC14wZMwZtp/sqAVdptoLeDBkyxLrutdde64JajROPioqyjRs3unHWHi9oDhyz7lGAHN/+Y3pM26jM/UKec+C4dAAAkLIRfAMALooF6/fa4Omr7e81G61CkTz28BWN7OWrrnLBd8GCBe3BBx+0Sy65xDJnzuwCZk/58uUtV65cdt1111mHDh38j2/evNk1Lgtsmvboo4+6748ePeoalSkbXqZMGTcuW+PAvYyx1g3cj5qX7dy507+/J554wiZNmuRfRwGvxmZ75s2b5/9eTdCyZs1qv/zyi11++eXuMR3rXJzvcwYAAKkHwTcA4KIE3l2GzVUjETu6a5f98/6D9sOo2nZn+7q2cuHvLkBWqbioa/fHH3/sungrKFfn7w8++MC6devmmqapbF0l4WqI9scff/hLzf/++2+XGa5fv759+eWXrlmagm9ljp9//nlXdt6nTx+XqZ4wYYL/3AoUKOCanPXq1cuaNWvm9vP999+7ruMeNT7r37+/K0lXVvq7774LKgV/9tln3blp/8q26/gxZcxjc77PGQAApB6RSX0CAJBWqNR55cqVlhop463A+7TPLGO+Elaw68uWLiq//TDnb5eNVkDplW0rkO3Zs6cb8+y9HgpG1f1b47eV/a1bt66bXiuw7Frbab1du3bZbbfd5qbw8kq2H374Yfvss89cRlyZY3UbV7CtTuQqB9cUYQqANX5bY9C/+uqroDHcDzzwgA0dOtSVoitY//HHH9323vEfe+wx1yVd3da1/zFjxrjHVcLulbWHzuGt7fPly3fezzmmfQIAgJQrQl3XLBmLjo62nDlzumljvA85AJASPfPMM26u6bFjx1pqU2/AVNsR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fXt58803L3vu9Jz63OkYdfz6HAAAUo/rynzXrVvXfpKiePHi8sYbb8Tbpt8q64++OTnfFiek87+YAwYAgP+JioqSn376SSpUqGDXn3/+eQuWZ82aJe+++67kypXLglUNRjWo1azy559/bsddi94+JibGgnn9sl9t3brVfr///vu2Tc/tfH7QzPeHH34oAwcOtAy3ZtFfeeUV+/3YY4/Z6io6jW3nzp1y/Phxy4Q793OtcWpmXLPc+fPnt0q+okWL2raZM2fafv0spNV9Q4YMseuacdfEguPZZ5+VcuXKyWuvvebNzmvQrrcvWLCgXdcxTZw40e4fAJA6uDbnW9/I4r4RqeXLl1vgnXA7AADwfxpkOoG30hJ0LfdWq1atsjJ0pwIuU6ZM0qRJEyvTTkrw/csvv0irVq28gbdyyrIXL14sadOmjfel/qlTp7xZdw2+33rrLSuF1+C7e/fuFrjrOTdu3Girreh4kjpOLXnXwFvpcUWKFPEG70qDcc2gaym8U66ulX2agddSdi191x/NnJcvX972a6m6E3g796FZcgBA6uFqwzUAAJByrf4tSobN3yFbD0dL+t075fzF2Hj7NcC8UiWb0qzx1fYnpOe70natitMv8B2afdagWGkJt+5ftGiRrFixwvatXr3astcaFDtzv5M6Tg30E0psmzPecePGWdZd54EvW7ZMcuTIYdt1+pyWtp87d+6qtwcApA7Jss63Q0u0dB4UAADw/8C77WfLZUlEpByJPi/bDp+SQwf2y5ffL/Aeo03LqlWrZpe1yZhe12ywU2atDctq1KiRpPvTeddahh13xROdK+3s0+1a4u70kdFgV+duO9npe++91+ZZ33nnnZItWzYLuP/zn/9YQB43+L7ZcSZm0qRJNgd85MiRdv+a5XYeh8711i8BAABI1sx327ZtecYBAEgBNOMtHo/E/pWcvaRBbqZs8nzXJ2T5I82tvFo7eM+fP9/2axMyndOsJd7aOE3ngWsQqqugJIU2RdNmrRq8ahm4dhDPmzevjBo1Sv7+979bEK0l7/Xr17eMsmaYdc61Hq80wH7mmWe8c6g1mNayby0Lr1Klivd+bnacidEx6Wothw4dssy7ZrudMndt0vbll19654cDAFIvys4BAMBltNTcCbwdabLdJsU7D5Iqpc9Z0Kvdyp15zLfddpt18daltDQw/+CDD6Rp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",
      "text/plain": [
       "<Figure size 1200x900 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Collect words from Google Analogy dataset\n",
    "SUB_CATEGORY = \": family\"\n",
    "\n",
    "# TODO3: Plot t-SNE for the words in the SUB_CATEGORY `: family`\n",
    "family_words = sorted({w for q in data[data[\"SubCategory\"] == SUB_CATEGORY][\"Question\"]\n",
    "                       for w in q.lower().split()})\n",
    "family_words = [w for w in family_words if w in model.key_to_index]\n",
    "vectors = np.array([model[w] for w in family_words])\n",
    "# t-SNE：把 100 維壓成 2 維。字只有幾十個，所以 perplexity 要調小（必須小於樣本數）。\n",
    "points = TSNE(n_components=2, perplexity=15, random_state=42, init=\"pca\").fit_transform(vectors)\n",
    "plt.figure(figsize=(12, 9))\n",
    "plt.scatter(points[:, 0], points[:, 1], s=15)\n",
    "for (x, y), w in zip(points, family_words):\n",
    "    plt.annotate(w, (x, y), fontsize=9)\n",
    "\n",
    "\n",
    "plt.title(\"Word Relationships from Google Analogy Task\")\n",
    "plt.show()\n",
    "plt.savefig(\"word_relationships.png\", bbox_inches=\"tight\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7945139",
   "metadata": {
    "id": "DKRPJxgKXH4j"
   },
   "source": [
    "### Part III: Train your own word embeddings"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f18b21fd",
   "metadata": {
    "id": "VC_0fE1UzL8T"
   },
   "source": [
    "### Get the latest English Wikipedia articles and do sampling.\n",
    "- Usually, we start from Wikipedia dump (https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2). However, the downloading step will take very long. Also, the cleaning step for the Wikipedia corpus ([`gensim.corpora.wikicorpus.WikiCorpus`](https://radimrehurek.com/gensim/corpora/wikicorpus.html#gensim.corpora.wikicorpus.WikiCorpus)) will take much time. Therefore, we provide cleaned files for you."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "210cd691",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:10.209112Z",
     "iopub.status.busy": "2026-10-05T11:42:10.208107Z",
     "iopub.status.idle": "2026-10-05T11:42:10.303671Z",
     "shell.execute_reply": "2026-10-05T11:42:10.303169Z"
    },
    "id": "FkubArwCCYxR"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data\\wiki_texts_part_0.txt.gz 1.51 GB\n",
      "data\\wiki_texts_part_1.txt.gz 0.84 GB\n",
      "data\\wiki_texts_part_2.txt.gz 0.67 GB\n",
      "data\\wiki_texts_part_3.txt.gz 0.60 GB\n",
      "data\\wiki_texts_part_4.txt.gz 0.57 GB\n",
      "data\\wiki_texts_part_5.txt.gz 0.58 GB\n",
      "data\\wiki_texts_part_6.txt.gz 0.56 GB\n",
      "data\\wiki_texts_part_7.txt.gz 0.53 GB\n",
      "data\\wiki_texts_part_8.txt.gz 0.55 GB\n",
      "data\\wiki_texts_part_9.txt.gz 0.55 GB\n",
      "data\\wiki_texts_part_10.txt.gz 0.00 GB\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# Original template comment(s):\n",
    "# Download the split Wikipedia files\n",
    "# Each file contain 562365 lines (articles).\n",
    "# 原本是 11 行 `!gdown --id ...`。改成 Python 迴圈：檔案已經存在就跳過，斷線後可以重跑。\n",
    "# Each file contain 562365 lines (articles), except the last file.\n",
    "import os, gdown\n",
    "DATA_DIR = \"data\"\n",
    "os.makedirs(DATA_DIR, exist_ok=True)\n",
    "WIKI_IDS = [\n",
    "    \"1jiu9E1NalT2Y8EIuWNa1xf2Tw1f1XuGd\", \"1ABblLRd9HXdXvaNv8H9fFq984bhnowoG\",\n",
    "    \"1z2VFNhpPvCejTP5zyejzKj5YjI_Bn42M\", \"1VKjded9BxADRhIoCzXy_W8uzVOTWIf0g\",\n",
    "    \"16mBeG26m9LzHXdPe8UrijUIc6sHxhknz\", \"17JFvxOH-kc-VmvGkhG7p3iSZSpsWdgJI\",\n",
    "    \"19IvB2vOJRGlrYulnTXlZECR8zT5v550P\", \"1sjwO8A2SDOKruv6-8NEq7pEIuQ50ygVV\",\n",
    "    \"1s7xKWJmyk98Jbq6Fi1scrHy7fr_ellUX\", \"17eQXcrvY1cfpKelLbP2BhQKrljnFNykr\",\n",
    "    \"1J5TAN6bNBiSgTIYiPwzmABvGhAF58h62\",\n",
    "]\n",
    "for i, fid in enumerate(WIKI_IDS):\n",
    "    path = os.path.join(DATA_DIR, f\"wiki_texts_part_{i}.txt.gz\")\n",
    "    if not os.path.exists(path):\n",
    "        gdown.download(id=fid, output=path, quiet=True)\n",
    "    print(path, f\"{os.path.getsize(path)/1e9:.2f} GB\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "c5010838",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:10.338774Z",
     "iopub.status.busy": "2026-10-05T11:42:10.338774Z",
     "iopub.status.idle": "2026-10-05T11:42:10.342061Z",
     "shell.execute_reply": "2026-10-05T11:42:10.342061Z"
    },
    "id": "8S3ibNT3C8Xk"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "all parts downloaded\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# Original template comment(s):\n",
    "# Download the split Wikipedia files\n",
    "# Each file contain 562365 lines (articles), except the last file.\n",
    "# 上一格已經把 11 個檔都下載完（模板原本把下載拆成兩格）。\n",
    "print(\"all parts downloaded\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "7abcd7cf",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:10.378091Z",
     "iopub.status.busy": "2026-10-05T11:42:10.377087Z",
     "iopub.status.idle": "2026-10-05T11:42:10.381439Z",
     "shell.execute_reply": "2026-10-05T11:42:10.381439Z"
    },
    "id": "DUg_c79BC7OL"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "11 parts: ['wiki_texts_part_0.txt.gz', 'wiki_texts_part_1.txt.gz', 'wiki_texts_part_2.txt.gz', 'wiki_texts_part_3.txt.gz', 'wiki_texts_part_4.txt.gz', 'wiki_texts_part_5.txt.gz', 'wiki_texts_part_6.txt.gz', 'wiki_texts_part_7.txt.gz', 'wiki_texts_part_8.txt.gz', 'wiki_texts_part_9.txt.gz', 'wiki_texts_part_10.txt.gz']\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# Original template comment(s):\n",
    "# Extract the downloaded wiki_texts_parts files.\n",
    "# 原本是 `!gunzip -k`（解壓縮並保留壓縮檔）＋ 下一格 `!cat`（合併成一個大檔）。\n",
    "# 這樣同一份資料會在硬碟上存三份（壓縮檔＋解壓檔＋合併檔），本機硬碟吃不消。\n",
    "# 改成：不解壓、不合併，下一步直接用 gzip 一行一行讀壓縮檔。結果完全一樣。\n",
    "import glob, gzip, re\n",
    "wiki_parts = sorted(glob.glob(os.path.join(DATA_DIR, \"wiki_texts_part_*.txt.gz\")),\n",
    "                    key=lambda p: int(re.search(r\"part_(\\d+)\", p).group(1)))\n",
    "print(len(wiki_parts), \"parts:\", [os.path.basename(p) for p in wiki_parts])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "06330269",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:10.415988Z",
     "iopub.status.busy": "2026-10-05T11:42:10.415988Z",
     "iopub.status.idle": "2026-10-05T11:42:10.420034Z",
     "shell.execute_reply": "2026-10-05T11:42:10.420034Z"
    },
    "id": "7duk2RbYDB02"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total compressed size: 6.93 GB\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# Original template comment(s):\n",
    "# Combine the extracted wiki_texts_parts files.\n",
    "# 不需要合併：wiki_parts 這個清單按 0 到 10 的順序排好，依序讀就等於讀合併檔。\n",
    "print(\"total compressed size:\", round(sum(os.path.getsize(p) for p in wiki_parts) / 1e9, 2), \"GB\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "6f2b85c2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:10.461341Z",
     "iopub.status.busy": "2026-10-05T11:42:10.461341Z",
     "iopub.status.idle": "2026-10-05T11:42:10.476186Z",
     "shell.execute_reply": "2026-10-05T11:42:10.476186Z"
    },
    "id": "givLH7NrDs6X"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 anarchism is political philosophy and movement that is against all forms of authority and seeks to abolish the institutions it claims maintain unnecessary coercion and hierarchy typically including th ...\n",
      "1 albedo change in greenland the map shows the difference between the amount of sunlight greenland reflected in the summer of versus the average percent it reflected between and some areas reflect close ...\n",
      "2 or is the first letter and the first vowel letter of the latin alphabet used in the modern english alphabet and others worldwide its name in english is pronounced plural aes it is similar in shape to ...\n",
      "3 alabama is state in the southeastern region of the united states it borders tennessee to the north georgia to the east florida and the gulf of mexico to the south and mississippi to the west alabama i ...\n",
      "4 in greek mythology achilles or achilleus was hero of the trojan war who was known as being the greatest of all the greek warriors the central character in homer iliad he was the son of the nereid thet ...\n",
      "5 abraham lincoln february april was an american lawyer politician and statesman who served as the th president of the united states from until his assassination in he led the united states through the ...\n",
      "6 aristotle aristotélēs bc was an ancient greek philosopher and polymath his writings cover broad range of subjects spanning the natural sciences philosophy linguistics economics politics psychology and ...\n",
      "7 an american in paris is jazz influenced symphonic poem or tone poem for orchestra by american composer george gershwin first performed in it was inspired by the time that gershwin had spent in paris a ...\n",
      "8 the academy award for best production design recognizes achievement for art direction in film the category original name was best art direction but was changed to its current name in for the th academ ...\n",
      "9 the academy awards of merit commonly known as the oscars or academy awards are awards for artistic and technical merit given for excellence within the american and international film industry they are ...\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# [Data loading changed] Only the data-loading part is modified (allowed by the assignment rules).\n",
    "# Original template comment(s):\n",
    "# Check the first ten lines of the combined file\n",
    "# 原本是 `!head -n 10`。每一行是一整篇文章，很長，所以每行只印前 200 個字元。\n",
    "with gzip.open(wiki_parts[0], \"rt\", encoding=\"utf-8\") as f:\n",
    "    for i, line in enumerate(f):\n",
    "        print(i, line[:200].strip(), \"...\")\n",
    "        if i == 9:\n",
    "            break\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fb905716",
   "metadata": {
    "id": "Hfwx92QCEhrq"
   },
   "source": [
    "Please note that we used the default parameters of [`gensim.corpora.wikicorpus.WikiCorpus`](https://radimrehurek.com/gensim/corpora/wikicorpus.html#gensim.corpora.wikicorpus.WikiCorpus) for cleaning the Wiki raw file. Thus, words with one character were discarded."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "621fdd1f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:42:10.513442Z",
     "iopub.status.busy": "2026-10-05T11:42:10.513442Z",
     "iopub.status.idle": "2026-10-05T11:45:16.915879Z",
     "shell.execute_reply": "2026-10-05T11:45:16.915879Z"
    },
    "id": "vUAzButoP03w"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 0/11 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1/11 [00:23<03:58, 23.85s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 2/11 [00:39<02:51, 19.00s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 3/11 [01:19<03:49, 28.67s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 4/11 [01:32<02:37, 22.48s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 5/11 [01:48<02:01, 20.19s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 6/11 [02:02<01:30, 18.07s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 7/11 [02:16<01:07, 16.81s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 8/11 [02:36<00:53, 17.69s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 9/11 [02:52<00:34, 17.05s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 10/11 [03:06<00:16, 16.16s/it]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 11/11 [03:06<00:00, 16.94s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "articles: total 5,623,655, sampled 1,124,733 (20.00%)\n",
      "wiki_sampled_5.txt 1.04 GB\n",
      "wiki_sampled_10.txt 2.08 GB\n",
      "wiki_sampled_20.txt 4.16 GB\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Now you need to do sampling because the corpus is too big.\n",
    "# You can further perform analysis with a greater sampling ratio.\n",
    "\n",
    "import random\n",
    "\n",
    "wiki_txt_path = \"wiki_texts_combined.txt\"\n",
    "# wiki_texts_combined.txt is a text file separated by linebreaks (\\n).\n",
    "# Each row in wiki_texts_combined.txt indicates a Wikipedia article.\n",
    "# [Data loading changed] 實際讀的是上面的 wiki_parts（11 個壓縮檔依序讀），內容等同 wiki_texts_combined.txt。\n",
    "\n",
    "SAMPLE_RATIO = 0.20\n",
    "output_path = \"wiki_sampled_20.txt\"\n",
    "random.seed(42)   # 固定亂數種子，重跑會抽到同一批文章\n",
    "\n",
    "# 順便在同一趟裡做出報告第 2 題要的 5%、10%：同一個亂數 r < 0.05 的文章，一定也 < 0.10、< 0.20，\n",
    "# 所以 5% ⊂ 10% ⊂ 20%，只是資料量不同，比較才公平。讀一趟 11 個壓縮檔要幾分鐘，這樣省掉兩趟。\n",
    "extra_outputs = {0.05: open(\"wiki_sampled_5.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\"),\n",
    "                 0.10: open(\"wiki_sampled_10.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\")}\n",
    "n_total = n_kept = 0\n",
    "with open(output_path, \"w\", encoding=\"utf-8\", newline=\"\\n\") as output_file:\n",
    "    # TODO4: Sample `20%` Wikipedia articles\n",
    "    # Write your code here\n",
    "    for part in tqdm(wiki_parts):\n",
    "        with gzip.open(part, \"rt\", encoding=\"utf-8\") as f:\n",
    "            for line in f:                      # 一次只讀一行（一篇文章），記憶體不會爆\n",
    "                n_total += 1\n",
    "                r = random.random()\n",
    "                if r < SAMPLE_RATIO:\n",
    "                    output_file.write(line)\n",
    "                    n_kept += 1\n",
    "                for ratio, fh in extra_outputs.items():\n",
    "                    if r < ratio:\n",
    "                        fh.write(line)\n",
    "for fh in extra_outputs.values():\n",
    "    fh.close()\n",
    "print(f\"articles: total {n_total:,}, sampled {n_kept:,} ({n_kept / n_total:.2%})\")\n",
    "for p in [\"wiki_sampled_5.txt\", \"wiki_sampled_10.txt\", output_path]:\n",
    "    print(p, round(os.path.getsize(p) / 1e9, 2), \"GB\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "4b6ce813",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T11:45:16.953971Z",
     "iopub.status.busy": "2026-10-05T11:45:16.952973Z",
     "iopub.status.idle": "2026-10-05T12:27:09.274588Z",
     "shell.execute_reply": "2026-10-05T12:27:09.273578Z"
    },
    "id": "G7q1Xzunxkdc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki_sampled_20.txt: removed non-[a-z] tokens 4,828,696 of 670,881,822 (0.72%)\n",
      "20% wiki tokens after preprocessing: 666,053,126\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_20_clean.txt: 37.9 min, vocab 299,405, effective min_count 30\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# TODO5: Train your own word embeddings with the sampled articles\n",
    "# https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec\n",
    "# Hint: You should perform some pre-processing before training.\n",
    "import time\n",
    "from gensim.models import Word2Vec\n",
    "\n",
    "# 前處理：助教給的資料已經是小寫、去標點、斷好字（gensim WikiCorpus 預設）。\n",
    "# 這裡只做「只留純英文字母的字」。刻意「不」做的兩件事（理由寫在報告第 1 題）：\n",
    "#   - 不移除停用詞：he / she / his / her 是 family 類的考題答案\n",
    "#   - 不做詞形還原：biggest -> big 會讓比較級、最高級、複數、過去式的答案消失\n",
    "TOKEN_RE = re.compile(r\"^[a-z]+$\")\n",
    "\n",
    "def preprocess_file(src, dst):\n",
    "    n_in = n_tokens = 0\n",
    "    with open(src, encoding=\"utf-8\") as fin, open(dst, \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "        for line in fin:\n",
    "            raw = line.split()\n",
    "            tokens = [w for w in raw if TOKEN_RE.match(w)]\n",
    "            n_in += len(raw)\n",
    "            n_tokens += len(tokens)\n",
    "            fout.write(\" \".join(tokens) + \"\\n\")\n",
    "    print(f\"{src}: removed non-[a-z] tokens {n_in - n_tokens:,} of {n_in:,} ({(n_in - n_tokens) / n_in:.2%})\")\n",
    "    return n_tokens\n",
    "\n",
    "# 超參數：向量長度跟 GloVe 一樣是 100，比較才公平；skip-gram 是老師投影片的重點。\n",
    "# max_final_vocab：只留最常見的 30 萬個字（老師建議的「只保留高頻字」）。\n",
    "#   注意：設了 max_final_vocab 之後，gensim 會自動把 min_count 往上調到剛好留下 30 萬字（實際值印在下面）。\n",
    "# seed：固定初始值；但 workers>1 時多執行緒的計算順序不固定，訓練結果仍會有小幅差異（報告第 5 題 (a) 有量）。\n",
    "W2V_PARAMS = dict(vector_size=100, window=5, sg=1, negative=5, sample=1e-3,\n",
    "                  min_count=5, max_final_vocab=300_000, epochs=5, workers=15, seed=42)\n",
    "\n",
    "def train_w2v(clean_path):\n",
    "    t = time.time()\n",
    "    m = Word2Vec(corpus_file=clean_path, **W2V_PARAMS)\n",
    "    print(f\"trained on {clean_path}: {(time.time() - t) / 60:.1f} min, vocab {len(m.wv.key_to_index):,}, \"\n",
    "          f\"effective min_count {m.effective_min_count}\")\n",
    "    return m\n",
    "\n",
    "clean_path = \"wiki_sampled_20_clean.txt\"\n",
    "n_tokens = preprocess_file(output_path, clean_path)\n",
    "print(f\"20% wiki tokens after preprocessing: {n_tokens:,}\")\n",
    "my_model = train_w2v(clean_path)\n",
    "my_model.save(\"w2v_wiki20.model\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "7a162bbc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:27:09.315308Z",
     "iopub.status.busy": "2026-10-05T12:27:09.315308Z",
     "iopub.status.idle": "2026-10-05T12:27:09.343647Z",
     "shell.execute_reply": "2026-10-05T12:27:09.343647Z"
    },
    "id": "qWiQF70izxP7"
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"questions-words.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "9124ab13",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:27:09.379734Z",
     "iopub.status.busy": "2026-10-05T12:27:09.379734Z",
     "iopub.status.idle": "2026-10-05T12:28:55.099934Z",
     "shell.execute_reply": "2026-10-05T12:28:55.099934Z"
    },
    "id": "q6xpqgdIy5x1"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 0/19544 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 10/19544 [00:00<03:18, 98.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 28/19544 [00:00<02:16, 143.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 46/19544 [00:00<02:03, 157.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 62/19544 [00:00<02:08, 151.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 78/19544 [00:00<02:09, 150.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  0%|          | 94/19544 [00:00<02:08, 151.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 111/19544 [00:00<02:04, 155.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 129/19544 [00:00<01:59, 162.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 146/19544 [00:00<01:59, 161.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 163/19544 [00:01<02:00, 160.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 182/19544 [00:01<01:55, 167.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 200/19544 [00:01<01:53, 170.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 219/19544 [00:01<01:50, 175.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|          | 237/19544 [00:01<01:49, 176.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 256/19544 [00:01<01:48, 178.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏         | 275/19544 [00:01<01:47, 179.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 294/19544 [00:01<01:46, 180.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 313/19544 [00:01<01:46, 180.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 332/19544 [00:01<01:46, 180.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 351/19544 [00:02<01:45, 181.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 370/19544 [00:02<01:44, 182.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 389/19544 [00:02<01:44, 183.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 408/19544 [00:02<01:44, 183.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 427/19544 [00:02<01:45, 180.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 446/19544 [00:02<01:45, 180.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 465/19544 [00:02<01:49, 174.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▏         | 483/19544 [00:02<01:48, 176.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 502/19544 [00:02<01:47, 176.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 520/19544 [00:03<01:51, 170.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 539/19544 [00:03<01:48, 174.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 558/19544 [00:03<01:47, 176.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 576/19544 [00:03<01:48, 175.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 594/19544 [00:03<01:52, 168.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 613/19544 [00:03<01:48, 173.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 632/19544 [00:03<01:47, 175.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 650/19544 [00:03<01:55, 162.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▎         | 669/19544 [00:03<01:51, 168.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 687/19544 [00:04<01:50, 171.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 706/19544 [00:04<01:47, 174.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▎         | 725/19544 [00:04<01:46, 177.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 744/19544 [00:04<01:45, 178.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 763/19544 [00:04<01:44, 180.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 782/19544 [00:04<01:43, 181.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 801/19544 [00:04<01:42, 182.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 820/19544 [00:04<01:42, 183.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 839/19544 [00:04<01:41, 185.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 858/19544 [00:04<01:40, 185.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▍         | 877/19544 [00:05<01:42, 182.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 896/19544 [00:05<01:41, 183.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 915/19544 [00:05<01:41, 182.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 934/19544 [00:05<01:41, 183.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 953/19544 [00:05<01:41, 183.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▍         | 972/19544 [00:05<01:42, 180.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 991/19544 [00:05<01:45, 175.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1009/19544 [00:05<01:45, 175.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1028/19544 [00:05<01:44, 178.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1046/19544 [00:05<01:43, 178.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▌         | 1064/19544 [00:06<01:45, 175.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1082/19544 [00:06<01:45, 174.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1100/19544 [00:06<01:46, 173.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1119/19544 [00:06<01:44, 175.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1137/19544 [00:06<01:47, 171.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1155/19544 [00:06<01:46, 172.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1173/19544 [00:06<01:46, 173.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1191/19544 [00:06<01:45, 173.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▌         | 1210/19544 [00:06<01:43, 177.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1229/19544 [00:07<01:42, 178.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1248/19544 [00:07<01:41, 179.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▋         | 1267/19544 [00:07<01:40, 181.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1287/19544 [00:07<01:39, 183.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1306/19544 [00:07<01:39, 183.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1325/19544 [00:07<01:39, 183.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1345/19544 [00:07<01:38, 185.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1364/19544 [00:07<01:43, 175.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1382/19544 [00:07<01:46, 170.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1400/19544 [00:08<01:47, 168.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1418/19544 [00:08<01:47, 169.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1435/19544 [00:08<01:47, 168.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|▋         | 1454/19544 [00:08<01:44, 172.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1473/19544 [00:08<01:42, 176.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1491/19544 [00:08<01:46, 170.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1509/19544 [00:08<01:47, 167.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1526/19544 [00:08<01:47, 167.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1545/19544 [00:08<01:44, 172.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1564/19544 [00:08<01:42, 176.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1583/19544 [00:09<01:40, 178.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1602/19544 [00:09<01:39, 180.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1621/19544 [00:09<01:39, 179.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1640/19544 [00:09<01:39, 180.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|▊         | 1659/19544 [00:09<01:37, 183.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1678/19544 [00:09<01:36, 184.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▊         | 1697/19544 [00:09<01:36, 185.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1716/19544 [00:09<01:36, 185.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1735/19544 [00:09<01:39, 178.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1753/19544 [00:09<01:39, 178.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1772/19544 [00:10<01:38, 180.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1791/19544 [00:10<01:38, 181.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1810/19544 [00:10<01:37, 181.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1829/19544 [00:10<01:36, 182.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|▉         | 1848/19544 [00:10<01:36, 182.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1867/19544 [00:10<01:36, 183.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1886/19544 [00:10<01:36, 183.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1905/19544 [00:10<01:35, 183.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1924/19544 [00:10<01:36, 182.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|▉         | 1943/19544 [00:11<01:35, 184.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1962/19544 [00:11<01:34, 185.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 1981/19544 [00:11<01:37, 180.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2000/19544 [00:11<01:38, 178.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2019/19544 [00:11<01:36, 180.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█         | 2038/19544 [00:11<01:36, 182.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2057/19544 [00:11<01:35, 182.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2076/19544 [00:11<01:34, 184.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2095/19544 [00:11<01:34, 184.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2114/19544 [00:11<01:37, 178.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2133/19544 [00:12<01:35, 181.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2152/19544 [00:12<01:34, 183.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2171/19544 [00:12<01:35, 182.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█         | 2190/19544 [00:12<01:34, 183.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2209/19544 [00:12<01:34, 183.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2228/19544 [00:12<01:37, 178.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▏        | 2247/19544 [00:12<01:36, 179.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2266/19544 [00:12<01:35, 181.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2285/19544 [00:12<01:34, 182.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2304/19544 [00:13<01:35, 180.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2323/19544 [00:13<01:35, 180.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2342/19544 [00:13<01:35, 179.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2360/19544 [00:13<01:38, 175.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2379/19544 [00:13<01:36, 178.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2398/19544 [00:13<01:34, 180.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2417/19544 [00:13<01:35, 179.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▏        | 2435/19544 [00:13<01:38, 174.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2454/19544 [00:13<01:36, 177.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2473/19544 [00:13<01:35, 179.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2492/19544 [00:14<01:34, 181.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2511/19544 [00:14<01:32, 183.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2530/19544 [00:14<01:32, 183.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2549/19544 [00:14<01:32, 183.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2568/19544 [00:14<01:32, 183.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2587/19544 [00:14<01:33, 181.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2606/19544 [00:14<01:32, 182.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▎        | 2625/19544 [00:14<01:32, 183.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2644/19544 [00:14<01:33, 181.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2663/19544 [00:15<01:32, 182.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▎        | 2682/19544 [00:15<01:31, 183.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2701/19544 [00:15<01:31, 184.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2720/19544 [00:15<01:31, 182.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2739/19544 [00:15<01:31, 183.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2758/19544 [00:15<01:31, 182.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2777/19544 [00:15<01:31, 183.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2796/19544 [00:15<01:31, 183.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|█▍        | 2815/19544 [00:15<01:30, 184.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2834/19544 [00:15<01:30, 183.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2853/19544 [00:16<01:30, 184.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2872/19544 [00:16<01:30, 184.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2891/19544 [00:16<01:30, 184.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2910/19544 [00:16<01:33, 178.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▍        | 2928/19544 [00:16<01:36, 171.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2946/19544 [00:16<01:35, 173.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2964/19544 [00:16<01:35, 173.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 2983/19544 [00:16<01:33, 176.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3002/19544 [00:16<01:32, 178.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|█▌        | 3020/19544 [00:16<01:32, 178.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3039/19544 [00:17<01:31, 180.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3058/19544 [00:17<01:30, 181.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3077/19544 [00:17<01:30, 181.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3096/19544 [00:17<01:31, 180.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3115/19544 [00:17<01:30, 182.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3134/19544 [00:17<01:30, 182.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3153/19544 [00:17<01:29, 183.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▌        | 3172/19544 [00:17<01:29, 183.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3191/19544 [00:17<01:28, 183.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|█▋        | 3210/19544 [00:18<01:28, 184.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3229/19544 [00:18<01:28, 184.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3248/19544 [00:18<01:27, 185.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3268/19544 [00:18<01:27, 186.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3287/19544 [00:18<01:31, 177.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3306/19544 [00:18<01:30, 179.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3325/19544 [00:18<01:29, 181.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3344/19544 [00:18<01:29, 180.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3363/19544 [00:18<01:33, 172.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3382/19544 [00:18<01:32, 175.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3401/19544 [00:19<01:30, 178.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|█▋        | 3420/19544 [00:19<01:29, 181.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3439/19544 [00:19<01:28, 181.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3458/19544 [00:19<01:28, 182.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3477/19544 [00:19<01:27, 183.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3496/19544 [00:19<01:26, 184.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3515/19544 [00:19<01:26, 185.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3534/19544 [00:19<01:26, 185.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3553/19544 [00:19<01:26, 185.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3572/19544 [00:20<01:26, 184.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3591/19544 [00:20<01:26, 183.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|█▊        | 3610/19544 [00:20<01:26, 184.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3629/19544 [00:20<01:26, 183.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▊        | 3648/19544 [00:20<01:26, 183.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3667/19544 [00:20<01:26, 184.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3686/19544 [00:20<01:25, 184.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3705/19544 [00:20<01:26, 183.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3724/19544 [00:20<01:25, 184.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3743/19544 [00:20<01:25, 184.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3762/19544 [00:21<01:25, 184.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3781/19544 [00:21<01:25, 184.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|█▉        | 3800/19544 [00:21<01:25, 184.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3819/19544 [00:21<01:25, 184.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3838/19544 [00:21<01:25, 183.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3857/19544 [00:21<01:27, 178.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3876/19544 [00:21<01:27, 179.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|█▉        | 3895/19544 [00:21<01:26, 180.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3914/19544 [00:21<01:30, 173.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3932/19544 [00:22<01:31, 170.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3951/19544 [00:22<01:29, 174.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3969/19544 [00:22<01:29, 174.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 3987/19544 [00:22<01:28, 176.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██        | 4006/19544 [00:22<01:27, 178.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4024/19544 [00:22<01:28, 175.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4042/19544 [00:22<01:27, 176.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4061/19544 [00:22<01:26, 178.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4080/19544 [00:22<01:26, 178.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4098/19544 [00:22<01:27, 176.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4116/19544 [00:23<01:29, 171.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██        | 4135/19544 [00:23<01:28, 174.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4154/19544 [00:23<01:26, 178.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4173/19544 [00:23<01:24, 181.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|██▏       | 4192/19544 [00:23<01:25, 180.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4211/19544 [00:23<01:29, 172.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4230/19544 [00:23<01:27, 175.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4249/19544 [00:23<01:25, 179.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4267/19544 [00:23<01:26, 175.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4285/19544 [00:24<01:30, 168.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4303/19544 [00:24<01:29, 169.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4322/19544 [00:24<01:27, 173.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4341/19544 [00:24<01:26, 176.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4360/19544 [00:24<01:24, 178.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|██▏       | 4379/19544 [00:24<01:24, 180.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4398/19544 [00:24<01:23, 180.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4417/19544 [00:24<01:22, 182.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4436/19544 [00:24<01:22, 182.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4455/19544 [00:24<01:22, 182.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4474/19544 [00:25<01:22, 181.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4493/19544 [00:25<01:22, 182.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4512/19544 [00:25<01:22, 182.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4531/19544 [00:25<01:22, 182.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4550/19544 [00:25<01:21, 183.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4569/19544 [00:25<01:23, 179.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|██▎       | 4588/19544 [00:25<01:22, 180.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4607/19544 [00:25<01:22, 181.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▎       | 4626/19544 [00:25<01:21, 182.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4645/19544 [00:25<01:21, 182.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4664/19544 [00:26<01:21, 183.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4683/19544 [00:26<01:20, 184.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4702/19544 [00:26<01:20, 185.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4721/19544 [00:26<01:20, 184.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4740/19544 [00:26<01:21, 180.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4759/19544 [00:26<01:23, 177.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|██▍       | 4777/19544 [00:26<01:26, 170.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4796/19544 [00:26<01:25, 172.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4815/19544 [00:26<01:23, 175.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4834/19544 [00:27<01:22, 177.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4853/19544 [00:27<01:22, 179.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▍       | 4872/19544 [00:27<01:21, 179.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4891/19544 [00:27<01:22, 178.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4910/19544 [00:27<01:20, 180.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4929/19544 [00:27<01:21, 180.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4948/19544 [00:27<01:21, 179.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|██▌       | 4967/19544 [00:27<01:20, 181.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 4986/19544 [00:27<01:21, 178.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5004/19544 [00:27<01:21, 177.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5023/19544 [00:28<01:20, 179.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5042/19544 [00:28<01:20, 180.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5061/19544 [00:28<01:20, 179.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5080/19544 [00:28<01:19, 181.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5099/19544 [00:28<01:19, 182.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▌       | 5118/19544 [00:28<01:19, 182.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5137/19544 [00:28<01:21, 176.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5155/19544 [00:28<01:21, 176.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|██▋       | 5173/19544 [00:28<01:21, 175.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5192/19544 [00:29<01:20, 177.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5210/19544 [00:29<01:23, 172.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5229/19544 [00:29<01:21, 174.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5248/19544 [00:29<01:20, 177.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5266/19544 [00:29<01:19, 178.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5284/19544 [00:29<01:20, 177.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5303/19544 [00:29<01:19, 178.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5322/19544 [00:29<01:18, 180.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5341/19544 [00:29<01:18, 180.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|██▋       | 5360/19544 [00:29<01:18, 181.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5379/19544 [00:30<01:19, 177.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5398/19544 [00:30<01:18, 180.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5417/19544 [00:30<01:18, 180.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5436/19544 [00:30<01:18, 178.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5455/19544 [00:30<01:18, 179.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5474/19544 [00:30<01:17, 181.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5493/19544 [00:30<01:19, 176.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5513/19544 [00:30<01:17, 181.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5532/19544 [00:30<01:17, 181.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5551/19544 [00:31<01:16, 182.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|██▊       | 5570/19544 [00:31<01:16, 183.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5589/19544 [00:31<01:15, 184.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▊       | 5608/19544 [00:31<01:15, 184.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5627/19544 [00:31<01:15, 184.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5646/19544 [00:31<01:15, 184.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5665/19544 [00:31<01:15, 184.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5684/19544 [00:31<01:16, 181.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5703/19544 [00:31<01:18, 176.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5722/19544 [00:31<01:17, 178.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5741/19544 [00:32<01:16, 180.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|██▉       | 5760/19544 [00:32<01:15, 182.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5779/19544 [00:32<01:15, 183.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5798/19544 [00:32<01:14, 184.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5817/19544 [00:32<01:14, 185.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5836/19544 [00:32<01:13, 185.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|██▉       | 5855/19544 [00:32<01:17, 176.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5873/19544 [00:32<01:17, 177.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5891/19544 [00:32<01:19, 172.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5909/19544 [00:33<01:18, 173.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5928/19544 [00:33<01:16, 176.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|███       | 5946/19544 [00:33<01:16, 176.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5965/19544 [00:33<01:16, 177.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 5984/19544 [00:33<01:15, 179.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6003/19544 [00:33<01:14, 180.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6022/19544 [00:33<01:13, 183.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6041/19544 [00:33<01:13, 184.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6060/19544 [00:33<01:15, 178.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6078/19544 [00:33<01:15, 177.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███       | 6097/19544 [00:34<01:15, 178.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6116/19544 [00:34<01:14, 180.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6135/19544 [00:34<01:17, 172.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|███▏      | 6153/19544 [00:34<01:17, 173.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6172/19544 [00:34<01:15, 176.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6192/19544 [00:34<01:13, 180.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6211/19544 [00:34<01:13, 181.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6230/19544 [00:34<01:13, 181.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6249/19544 [00:34<01:12, 182.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6268/19544 [00:35<01:12, 182.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6287/19544 [00:35<01:11, 184.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6306/19544 [00:35<01:11, 185.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6325/19544 [00:35<01:11, 185.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|███▏      | 6344/19544 [00:35<01:11, 184.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6363/19544 [00:35<01:11, 183.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6382/19544 [00:35<01:11, 183.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6401/19544 [00:35<01:11, 183.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6420/19544 [00:35<01:11, 183.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6439/19544 [00:35<01:11, 183.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6458/19544 [00:36<01:12, 180.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6477/19544 [00:36<01:11, 182.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6496/19544 [00:36<01:11, 183.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6515/19544 [00:36<01:10, 184.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|███▎      | 6534/19544 [00:36<01:10, 184.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6553/19544 [00:36<01:10, 184.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6572/19544 [00:36<01:12, 178.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▎      | 6591/19544 [00:36<01:11, 180.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6610/19544 [00:36<01:14, 174.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6628/19544 [00:37<01:16, 169.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6647/19544 [00:37<01:14, 174.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6666/19544 [00:37<01:12, 176.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6685/19544 [00:37<01:11, 179.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6705/19544 [00:37<01:10, 182.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|███▍      | 6724/19544 [00:37<01:09, 183.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6743/19544 [00:37<01:10, 182.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6762/19544 [00:37<01:09, 183.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6781/19544 [00:37<01:10, 181.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6800/19544 [00:37<01:10, 180.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6819/19544 [00:38<01:10, 179.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▍      | 6838/19544 [00:38<01:10, 181.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6857/19544 [00:38<01:09, 183.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6876/19544 [00:38<01:08, 185.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6895/19544 [00:38<01:08, 185.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6914/19544 [00:38<01:08, 184.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|███▌      | 6933/19544 [00:38<01:08, 185.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6952/19544 [00:38<01:07, 185.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6971/19544 [00:38<01:07, 185.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 6990/19544 [00:38<01:08, 182.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7009/19544 [00:39<01:09, 179.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7028/19544 [00:39<01:09, 180.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7047/19544 [00:39<01:09, 179.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7065/19544 [00:39<01:10, 176.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▌      | 7083/19544 [00:39<01:11, 175.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7102/19544 [00:39<01:09, 178.09it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|███▋      | 7121/19544 [00:39<01:08, 181.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7140/19544 [00:39<01:08, 181.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7159/19544 [00:39<01:07, 182.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7178/19544 [00:40<01:08, 181.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7197/19544 [00:40<01:08, 180.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7216/19544 [00:40<01:10, 175.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7234/19544 [00:40<01:11, 172.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7252/19544 [00:40<01:12, 170.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7270/19544 [00:40<01:11, 171.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7289/19544 [00:40<01:09, 175.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7308/19544 [00:40<01:08, 179.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|███▋      | 7326/19544 [00:40<01:08, 179.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7345/19544 [00:40<01:07, 180.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7364/19544 [00:41<01:06, 182.99it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7383/19544 [00:41<01:06, 183.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7402/19544 [00:41<01:05, 184.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7421/19544 [00:41<01:05, 185.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7440/19544 [00:41<01:05, 185.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7459/19544 [00:41<01:04, 186.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7478/19544 [00:41<01:04, 186.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7497/19544 [00:41<01:04, 186.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|███▊      | 7516/19544 [00:41<01:05, 184.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7535/19544 [00:42<01:05, 182.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7554/19544 [00:42<01:07, 177.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▊      | 7572/19544 [00:42<01:07, 177.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7591/19544 [00:42<01:06, 180.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7610/19544 [00:42<01:05, 182.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7629/19544 [00:42<01:04, 184.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7648/19544 [00:42<01:04, 184.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7667/19544 [00:42<01:03, 185.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7686/19544 [00:42<01:07, 176.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|███▉      | 7704/19544 [00:42<01:11, 164.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7721/19544 [00:43<01:14, 157.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7739/19544 [00:43<01:12, 162.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7758/19544 [00:43<01:10, 168.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7776/19544 [00:43<01:09, 170.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7795/19544 [00:43<01:07, 174.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|███▉      | 7814/19544 [00:43<01:05, 178.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7832/19544 [00:43<01:05, 178.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7850/19544 [00:43<01:05, 178.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7868/19544 [00:43<01:08, 170.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7886/19544 [00:44<01:10, 165.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|████      | 7903/19544 [00:44<01:10, 164.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7921/19544 [00:44<01:09, 166.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7940/19544 [00:44<01:07, 171.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7959/19544 [00:44<01:06, 175.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7977/19544 [00:44<01:06, 174.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 7995/19544 [00:44<01:06, 173.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8015/19544 [00:44<01:04, 179.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8034/19544 [00:44<01:03, 180.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████      | 8053/19544 [00:44<01:04, 179.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8072/19544 [00:45<01:03, 180.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8091/19544 [00:45<01:02, 181.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|████▏     | 8110/19544 [00:45<01:02, 181.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8129/19544 [00:45<01:05, 173.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8147/19544 [00:45<01:07, 169.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8166/19544 [00:45<01:05, 172.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8185/19544 [00:45<01:04, 176.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8203/19544 [00:45<01:04, 176.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8222/19544 [00:45<01:03, 179.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8241/19544 [00:46<01:02, 179.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8260/19544 [00:46<01:01, 182.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8279/19544 [00:46<01:01, 182.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|████▏     | 8298/19544 [00:46<01:01, 183.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8317/19544 [00:46<01:02, 179.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8336/19544 [00:46<01:01, 180.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8355/19544 [00:46<01:01, 183.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8374/19544 [00:46<01:02, 179.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8393/19544 [00:46<01:01, 180.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8412/19544 [00:47<01:03, 175.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8431/19544 [00:47<01:02, 178.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8450/19544 [00:47<01:01, 180.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8469/19544 [00:47<01:03, 173.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|████▎     | 8488/19544 [00:47<01:02, 176.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8507/19544 [00:47<01:01, 178.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8526/19544 [00:47<01:01, 179.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▎     | 8545/19544 [00:47<01:00, 181.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8564/19544 [00:47<01:00, 181.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8583/19544 [00:47<01:00, 181.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8602/19544 [00:48<01:00, 180.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8621/19544 [00:48<01:00, 181.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8640/19544 [00:48<00:59, 182.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8659/19544 [00:48<00:59, 183.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8678/19544 [00:48<00:59, 183.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|████▍     | 8697/19544 [00:48<00:59, 183.21it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8716/19544 [00:48<00:58, 184.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8735/19544 [00:48<00:58, 184.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8754/19544 [00:48<00:58, 183.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8773/19544 [00:48<00:58, 183.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▍     | 8792/19544 [00:49<00:58, 182.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8811/19544 [00:49<00:58, 183.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8830/19544 [00:49<01:00, 178.29it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8849/19544 [00:49<00:59, 179.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8868/19544 [00:49<00:59, 180.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|████▌     | 8888/19544 [00:49<00:58, 183.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8907/19544 [00:49<01:00, 176.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8925/19544 [00:49<01:00, 176.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8944/19544 [00:49<00:58, 180.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8963/19544 [00:50<00:58, 182.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 8982/19544 [00:50<00:57, 183.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9001/19544 [00:50<00:56, 185.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9020/19544 [00:50<00:56, 185.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▌     | 9039/19544 [00:50<00:56, 185.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9058/19544 [00:50<00:56, 185.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|████▋     | 9077/19544 [00:50<00:56, 184.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9096/19544 [00:50<00:57, 182.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9115/19544 [00:50<00:57, 182.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9134/19544 [00:50<00:56, 184.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9153/19544 [00:51<00:55, 185.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9172/19544 [00:51<00:55, 186.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9191/19544 [00:51<00:55, 185.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9210/19544 [00:51<00:55, 184.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9229/19544 [00:51<00:55, 186.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9249/19544 [00:51<00:54, 188.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|████▋     | 9269/19544 [00:51<00:54, 188.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9288/19544 [00:51<00:54, 187.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9307/19544 [00:51<00:54, 186.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9326/19544 [00:52<00:56, 179.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9345/19544 [00:52<00:58, 173.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9364/19544 [00:52<00:57, 176.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9383/19544 [00:52<00:56, 178.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9401/19544 [00:52<00:59, 170.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9419/19544 [00:52<00:59, 171.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9438/19544 [00:52<00:57, 175.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9457/19544 [00:52<00:56, 178.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|████▊     | 9476/19544 [00:52<00:55, 181.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9495/19544 [00:52<00:54, 183.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▊     | 9514/19544 [00:53<00:56, 178.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9533/19544 [00:53<00:55, 180.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9552/19544 [00:53<00:55, 180.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9571/19544 [00:53<00:54, 182.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9590/19544 [00:53<00:53, 184.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9609/19544 [00:53<00:53, 185.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9628/19544 [00:53<00:53, 185.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9647/19544 [00:53<00:53, 186.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|████▉     | 9666/19544 [00:53<00:52, 187.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9685/19544 [00:53<00:52, 186.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9704/19544 [00:54<00:52, 185.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9723/19544 [00:54<00:53, 184.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9742/19544 [00:54<00:53, 184.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|████▉     | 9761/19544 [00:54<00:53, 183.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9780/19544 [00:54<00:53, 182.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9799/19544 [00:54<00:53, 183.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9818/19544 [00:54<00:54, 180.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9837/19544 [00:54<00:54, 179.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|█████     | 9855/19544 [00:54<00:55, 174.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9875/19544 [00:55<00:53, 179.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9894/19544 [00:55<00:52, 182.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9913/19544 [00:55<00:52, 182.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9932/19544 [00:55<00:52, 183.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9951/19544 [00:55<00:51, 185.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9971/19544 [00:55<00:51, 186.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 9990/19544 [00:55<00:51, 186.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████     | 10009/19544 [00:55<00:51, 185.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10028/19544 [00:55<00:51, 186.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|█████▏    | 10047/19544 [00:55<00:51, 185.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10066/19544 [00:56<00:50, 186.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10085/19544 [00:56<00:50, 187.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10104/19544 [00:56<00:50, 185.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10124/19544 [00:56<00:50, 187.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10144/19544 [00:56<00:49, 189.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10164/19544 [00:56<00:49, 189.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10184/19544 [00:56<00:49, 190.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10204/19544 [00:56<00:49, 190.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10224/19544 [00:56<00:51, 182.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|█████▏    | 10243/19544 [00:57<00:51, 181.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10262/19544 [00:57<00:51, 180.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10281/19544 [00:57<00:51, 178.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10300/19544 [00:57<00:51, 180.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10320/19544 [00:57<00:49, 184.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10339/19544 [00:57<00:50, 181.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10358/19544 [00:57<00:51, 178.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10377/19544 [00:57<00:50, 181.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10396/19544 [00:57<00:49, 183.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10415/19544 [00:57<00:49, 184.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10435/19544 [00:58<00:48, 186.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|█████▎    | 10455/19544 [00:58<00:48, 187.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10474/19544 [00:58<00:49, 184.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▎    | 10493/19544 [00:58<00:49, 182.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10512/19544 [00:58<00:48, 184.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10531/19544 [00:58<00:48, 185.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10550/19544 [00:58<00:48, 186.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10570/19544 [00:58<00:47, 187.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10590/19544 [00:58<00:47, 188.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10609/19544 [00:58<00:47, 188.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10629/19544 [00:59<00:46, 189.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|█████▍    | 10648/19544 [00:59<00:46, 189.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10667/19544 [00:59<00:47, 187.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10687/19544 [00:59<00:46, 188.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10707/19544 [00:59<00:46, 189.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10726/19544 [00:59<00:48, 180.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▍    | 10745/19544 [00:59<00:48, 182.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10764/19544 [00:59<00:48, 182.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10783/19544 [00:59<00:47, 183.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10802/19544 [01:00<00:49, 178.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10821/19544 [01:00<00:48, 180.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|█████▌    | 10840/19544 [01:00<00:48, 181.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10859/19544 [01:00<00:47, 181.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10878/19544 [01:00<00:47, 183.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10897/19544 [01:00<00:47, 183.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10916/19544 [01:00<00:47, 183.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10935/19544 [01:00<00:46, 185.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10955/19544 [01:00<00:46, 186.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▌    | 10974/19544 [01:00<00:45, 187.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 10994/19544 [01:01<00:45, 188.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11013/19544 [01:01<00:45, 186.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|█████▋    | 11032/19544 [01:01<00:46, 184.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11051/19544 [01:01<00:45, 185.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11071/19544 [01:01<00:45, 187.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11090/19544 [01:01<00:44, 188.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11109/19544 [01:01<00:44, 187.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11128/19544 [01:01<00:44, 187.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11147/19544 [01:01<00:44, 187.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11166/19544 [01:02<00:44, 188.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11185/19544 [01:02<00:44, 185.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11204/19544 [01:02<00:44, 185.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|█████▋    | 11223/19544 [01:02<00:46, 180.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11242/19544 [01:02<00:46, 179.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11261/19544 [01:02<00:45, 180.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11280/19544 [01:02<00:45, 182.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11299/19544 [01:02<00:46, 177.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11317/19544 [01:02<00:46, 175.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11335/19544 [01:02<00:46, 175.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11354/19544 [01:03<00:45, 178.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11372/19544 [01:03<00:45, 178.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11390/19544 [01:03<00:46, 176.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11409/19544 [01:03<00:45, 179.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|█████▊    | 11428/19544 [01:03<00:44, 180.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11447/19544 [01:03<00:44, 182.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▊    | 11466/19544 [01:03<00:44, 183.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11485/19544 [01:03<00:43, 183.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11504/19544 [01:03<00:43, 185.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11523/19544 [01:03<00:43, 184.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11542/19544 [01:04<00:43, 183.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11561/19544 [01:04<00:43, 184.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11580/19544 [01:04<00:43, 183.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11599/19544 [01:04<00:43, 184.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|█████▉    | 11618/19544 [01:04<00:43, 183.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11637/19544 [01:04<00:43, 183.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11656/19544 [01:04<00:43, 179.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11674/19544 [01:04<00:44, 176.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11692/19544 [01:04<00:49, 158.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11709/19544 [01:05<00:50, 155.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|█████▉    | 11725/19544 [01:05<00:50, 154.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11742/19544 [01:05<00:49, 157.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11760/19544 [01:05<00:47, 162.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11778/19544 [01:05<00:46, 165.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11796/19544 [01:05<00:46, 167.64it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|██████    | 11813/19544 [01:05<00:46, 167.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11830/19544 [01:05<00:46, 167.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11849/19544 [01:05<00:44, 172.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11867/19544 [01:06<00:44, 173.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11885/19544 [01:06<00:43, 174.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11903/19544 [01:06<00:44, 170.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11921/19544 [01:06<00:48, 158.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11938/19544 [01:06<00:51, 146.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11953/19544 [01:06<00:52, 144.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████    | 11968/19544 [01:06<00:53, 142.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 11984/19544 [01:06<00:52, 144.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 11999/19544 [01:06<00:51, 145.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|██████▏   | 12014/19544 [01:07<00:52, 144.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12030/19544 [01:07<00:50, 148.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12047/19544 [01:07<00:49, 151.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12064/19544 [01:07<00:48, 154.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12080/19544 [01:07<00:48, 153.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12096/19544 [01:07<00:48, 154.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12113/19544 [01:07<00:47, 157.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12130/19544 [01:07<00:46, 159.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12146/19544 [01:07<00:46, 158.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12162/19544 [01:07<00:47, 154.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12178/19544 [01:08<00:47, 155.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12194/19544 [01:08<00:47, 155.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|██████▏   | 12211/19544 [01:08<00:46, 157.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12229/19544 [01:08<00:44, 162.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12248/19544 [01:08<00:42, 169.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12267/19544 [01:08<00:41, 173.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12285/19544 [01:08<00:41, 173.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12304/19544 [01:08<00:40, 178.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12323/19544 [01:08<00:39, 180.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12342/19544 [01:08<00:39, 180.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12361/19544 [01:09<00:39, 180.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12380/19544 [01:09<00:40, 178.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|██████▎   | 12399/19544 [01:09<00:39, 180.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12418/19544 [01:09<00:39, 182.24it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12437/19544 [01:09<00:38, 184.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▎   | 12456/19544 [01:09<00:38, 184.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12475/19544 [01:09<00:38, 185.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12494/19544 [01:09<00:37, 185.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12513/19544 [01:09<00:38, 180.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12532/19544 [01:10<00:38, 180.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12551/19544 [01:10<00:38, 180.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12570/19544 [01:10<00:38, 180.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|██████▍   | 12589/19544 [01:10<00:39, 174.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12607/19544 [01:10<00:39, 174.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12626/19544 [01:10<00:38, 178.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12645/19544 [01:10<00:38, 180.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12664/19544 [01:10<00:37, 182.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12683/19544 [01:10<00:37, 181.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▍   | 12702/19544 [01:10<00:38, 177.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12720/19544 [01:11<00:38, 175.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12738/19544 [01:11<00:38, 177.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12757/19544 [01:11<00:37, 179.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12777/19544 [01:11<00:37, 182.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|██████▌   | 12796/19544 [01:11<00:36, 184.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12815/19544 [01:11<00:36, 184.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12834/19544 [01:11<00:36, 185.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12853/19544 [01:11<00:36, 184.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12872/19544 [01:11<00:37, 180.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12891/19544 [01:12<00:38, 172.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12909/19544 [01:12<00:39, 167.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12928/19544 [01:12<00:38, 171.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▌   | 12947/19544 [01:12<00:37, 176.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12966/19544 [01:12<00:36, 177.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|██████▋   | 12985/19544 [01:12<00:36, 181.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13004/19544 [01:12<00:36, 181.19it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13023/19544 [01:12<00:35, 182.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13042/19544 [01:12<00:35, 183.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13061/19544 [01:12<00:36, 179.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13079/19544 [01:13<00:36, 174.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13098/19544 [01:13<00:36, 178.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13119/19544 [01:13<00:34, 185.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13141/19544 [01:13<00:32, 194.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13163/19544 [01:13<00:31, 199.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|██████▋   | 13185/19544 [01:13<00:31, 203.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13206/19544 [01:13<00:31, 204.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13228/19544 [01:13<00:30, 206.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13249/19544 [01:13<00:30, 206.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13270/19544 [01:14<00:31, 200.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13291/19544 [01:14<00:30, 201.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13312/19544 [01:14<00:30, 203.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13333/19544 [01:14<00:31, 199.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13355/19544 [01:14<00:30, 202.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|██████▊   | 13376/19544 [01:14<00:30, 204.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13397/19544 [01:14<00:29, 204.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▊   | 13418/19544 [01:14<00:30, 204.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13440/19544 [01:14<00:29, 206.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13461/19544 [01:14<00:29, 206.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13482/19544 [01:15<00:30, 199.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13503/19544 [01:15<00:30, 201.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13524/19544 [01:15<00:29, 202.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13545/19544 [01:15<00:29, 204.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|██████▉   | 13566/19544 [01:15<00:30, 197.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13586/19544 [01:15<00:30, 192.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13606/19544 [01:15<00:31, 190.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13626/19544 [01:15<00:31, 187.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13646/19544 [01:15<00:31, 190.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|██████▉   | 13666/19544 [01:16<00:30, 189.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13685/19544 [01:16<00:31, 188.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13705/19544 [01:16<00:30, 189.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13724/19544 [01:16<00:31, 184.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13743/19544 [01:16<00:33, 172.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13761/19544 [01:16<00:35, 164.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|███████   | 13778/19544 [01:16<00:35, 163.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13795/19544 [01:16<00:35, 160.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13812/19544 [01:16<00:35, 161.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13830/19544 [01:17<00:34, 164.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13847/19544 [01:17<00:34, 164.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13864/19544 [01:17<00:34, 164.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13881/19544 [01:17<00:34, 162.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13899/19544 [01:17<00:34, 165.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████   | 13916/19544 [01:17<00:33, 166.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13934/19544 [01:17<00:33, 167.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13951/19544 [01:17<00:33, 166.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|███████▏  | 13969/19544 [01:17<00:33, 167.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 13986/19544 [01:17<00:33, 166.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14003/19544 [01:18<00:33, 167.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14021/19544 [01:18<00:32, 169.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14038/19544 [01:18<00:33, 165.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14056/19544 [01:18<00:32, 169.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14075/19544 [01:18<00:31, 173.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14093/19544 [01:18<00:31, 174.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14111/19544 [01:18<00:31, 173.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14129/19544 [01:18<00:31, 174.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14148/19544 [01:18<00:30, 178.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|███████▏  | 14166/19544 [01:18<00:30, 177.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14186/19544 [01:19<00:29, 183.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14208/19544 [01:19<00:27, 192.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14229/19544 [01:19<00:26, 196.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14250/19544 [01:19<00:26, 200.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14271/19544 [01:19<00:25, 203.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14292/19544 [01:19<00:25, 204.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14313/19544 [01:19<00:25, 205.33it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14334/19544 [01:19<00:25, 202.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|███████▎  | 14355/19544 [01:19<00:25, 204.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14376/19544 [01:20<00:25, 204.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▎  | 14397/19544 [01:20<00:25, 203.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14418/19544 [01:20<00:26, 196.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14438/19544 [01:20<00:26, 194.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14460/19544 [01:20<00:25, 199.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14481/19544 [01:20<00:25, 201.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14502/19544 [01:20<00:25, 195.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14523/19544 [01:20<00:25, 196.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|███████▍  | 14543/19544 [01:20<00:25, 197.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14564/19544 [01:20<00:24, 200.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14585/19544 [01:21<00:24, 201.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14606/19544 [01:21<00:24, 202.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14627/19544 [01:21<00:24, 204.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▍  | 14648/19544 [01:21<00:25, 192.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14669/19544 [01:21<00:24, 197.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14691/19544 [01:21<00:24, 200.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14712/19544 [01:21<00:23, 201.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14733/19544 [01:21<00:23, 203.92it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|███████▌  | 14754/19544 [01:21<00:23, 204.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14775/19544 [01:22<00:25, 188.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14796/19544 [01:22<00:24, 192.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14817/19544 [01:22<00:24, 196.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14838/19544 [01:22<00:23, 197.81it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14860/19544 [01:22<00:23, 202.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▌  | 14882/19544 [01:22<00:22, 205.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14903/19544 [01:22<00:22, 206.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14924/19544 [01:22<00:22, 206.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|███████▋  | 14945/19544 [01:22<00:22, 203.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14966/19544 [01:22<00:22, 201.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 14987/19544 [01:23<00:22, 201.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15008/19544 [01:23<00:22, 202.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15029/19544 [01:23<00:22, 203.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15050/19544 [01:23<00:22, 198.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15070/19544 [01:23<00:23, 194.23it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15091/19544 [01:23<00:22, 197.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15112/19544 [01:23<00:22, 201.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|███████▋  | 15133/19544 [01:23<00:21, 200.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15154/19544 [01:23<00:21, 200.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15175/19544 [01:24<00:22, 198.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15195/19544 [01:24<00:22, 197.08it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15216/19544 [01:24<00:21, 199.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15237/19544 [01:24<00:21, 201.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15258/19544 [01:24<00:21, 202.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15279/19544 [01:24<00:21, 201.27it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15300/19544 [01:24<00:21, 199.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15321/19544 [01:24<00:21, 200.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|███████▊  | 15342/19544 [01:24<00:20, 201.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15363/19544 [01:24<00:20, 201.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▊  | 15384/19544 [01:25<00:20, 203.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15406/19544 [01:25<00:20, 205.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15428/19544 [01:25<00:19, 207.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15449/19544 [01:25<00:20, 199.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15469/19544 [01:25<00:20, 198.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15490/19544 [01:25<00:20, 201.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15511/19544 [01:25<00:19, 202.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████▉  | 15532/19544 [01:25<00:20, 192.66it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15552/19544 [01:25<00:20, 191.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15572/19544 [01:26<00:20, 190.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15592/19544 [01:26<00:20, 191.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15613/19544 [01:26<00:20, 195.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████▉  | 15634/19544 [01:26<00:19, 197.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15655/19544 [01:26<00:19, 200.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15676/19544 [01:26<00:19, 202.16it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15697/19544 [01:26<00:18, 203.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|████████  | 15718/19544 [01:26<00:18, 204.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15739/19544 [01:26<00:18, 204.86it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15760/19544 [01:26<00:18, 205.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15781/19544 [01:27<00:18, 205.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15803/19544 [01:27<00:18, 207.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15824/19544 [01:27<00:18, 206.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15845/19544 [01:27<00:18, 201.42it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████  | 15866/19544 [01:27<00:18, 199.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15887/19544 [01:27<00:18, 199.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|████████▏ | 15909/19544 [01:27<00:17, 203.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15930/19544 [01:27<00:17, 203.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15951/19544 [01:27<00:17, 204.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15972/19544 [01:27<00:17, 204.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 15993/19544 [01:28<00:17, 202.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16014/19544 [01:28<00:17, 202.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16035/19544 [01:28<00:17, 204.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16056/19544 [01:28<00:17, 205.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16077/19544 [01:28<00:16, 206.26it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16098/19544 [01:28<00:17, 198.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|████████▏ | 16119/19544 [01:28<00:17, 200.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16140/19544 [01:28<00:17, 197.85it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16160/19544 [01:28<00:17, 195.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16180/19544 [01:29<00:17, 195.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16202/19544 [01:29<00:16, 199.48it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16223/19544 [01:29<00:16, 202.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16244/19544 [01:29<00:16, 202.67it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16265/19544 [01:29<00:16, 203.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16286/19544 [01:29<00:15, 203.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|████████▎ | 16307/19544 [01:29<00:15, 205.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16328/19544 [01:29<00:15, 205.10it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▎ | 16349/19544 [01:29<00:15, 203.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16370/19544 [01:29<00:15, 203.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16391/19544 [01:30<00:15, 202.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16412/19544 [01:30<00:15, 204.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16434/19544 [01:30<00:15, 206.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16456/19544 [01:30<00:14, 207.75it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16477/19544 [01:30<00:14, 204.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|████████▍ | 16498/19544 [01:30<00:15, 198.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16520/19544 [01:30<00:14, 202.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16542/19544 [01:30<00:14, 205.38it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16563/19544 [01:30<00:14, 203.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16584/19544 [01:31<00:15, 196.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▍ | 16605/19544 [01:31<00:14, 197.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16627/19544 [01:31<00:14, 201.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16649/19544 [01:31<00:14, 204.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16671/19544 [01:31<00:13, 207.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|████████▌ | 16692/19544 [01:31<00:13, 205.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16714/19544 [01:31<00:13, 207.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16735/19544 [01:31<00:13, 206.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16756/19544 [01:31<00:13, 205.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16777/19544 [01:31<00:13, 205.40it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16798/19544 [01:32<00:13, 205.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16819/19544 [01:32<00:13, 204.45it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▌ | 16840/19544 [01:32<00:13, 205.50it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16861/19544 [01:32<00:13, 205.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16882/19544 [01:32<00:12, 204.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████▋ | 16903/19544 [01:32<00:12, 204.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16924/19544 [01:32<00:12, 203.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16945/19544 [01:32<00:12, 204.39it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16966/19544 [01:32<00:12, 204.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 16987/19544 [01:32<00:12, 202.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17008/19544 [01:33<00:12, 199.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17028/19544 [01:33<00:12, 197.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17048/19544 [01:33<00:12, 197.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17069/19544 [01:33<00:12, 200.18it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████▋ | 17090/19544 [01:33<00:12, 202.25it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17111/19544 [01:33<00:11, 204.41it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17132/19544 [01:33<00:11, 201.56it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17153/19544 [01:33<00:12, 196.88it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17174/19544 [01:33<00:11, 199.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17195/19544 [01:34<00:11, 201.76it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17216/19544 [01:34<00:11, 202.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17237/19544 [01:34<00:11, 204.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17258/19544 [01:34<00:11, 205.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████▊ | 17280/19544 [01:34<00:10, 206.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17301/19544 [01:34<00:10, 207.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17322/19544 [01:34<00:10, 207.79it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▊ | 17343/19544 [01:34<00:10, 206.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17364/19544 [01:34<00:10, 206.54it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17385/19544 [01:34<00:10, 207.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17406/19544 [01:35<00:10, 206.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17427/19544 [01:35<00:10, 206.94it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17448/19544 [01:35<00:10, 204.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17469/19544 [01:35<00:10, 201.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████▉ | 17490/19544 [01:35<00:10, 203.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17511/19544 [01:35<00:10, 202.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17532/19544 [01:35<00:10, 197.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17553/19544 [01:35<00:10, 199.04it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|████████▉ | 17574/19544 [01:35<00:09, 201.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17595/19544 [01:35<00:09, 202.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17616/19544 [01:36<00:09, 197.37it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17636/19544 [01:36<00:09, 193.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17656/19544 [01:36<00:09, 192.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|█████████ | 17677/19544 [01:36<00:09, 195.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17698/19544 [01:36<00:09, 198.28it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17719/19544 [01:36<00:09, 200.98it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17740/19544 [01:36<00:08, 202.82it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17762/19544 [01:36<00:08, 205.47it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17783/19544 [01:36<00:08, 206.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17805/19544 [01:37<00:08, 208.49it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████ | 17827/19544 [01:37<00:08, 209.44it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17848/19544 [01:37<00:08, 208.78it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|█████████▏| 17870/19544 [01:37<00:08, 208.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17891/19544 [01:37<00:08, 203.36it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17912/19544 [01:37<00:08, 199.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17932/19544 [01:37<00:08, 195.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17953/19544 [01:37<00:07, 199.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17974/19544 [01:37<00:07, 201.03it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 17995/19544 [01:37<00:07, 202.90it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18017/19544 [01:38<00:07, 205.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18038/19544 [01:38<00:07, 205.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|█████████▏| 18059/19544 [01:38<00:07, 203.95it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18080/19544 [01:38<00:07, 201.93it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18101/19544 [01:38<00:07, 198.74it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18121/19544 [01:38<00:07, 196.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18141/19544 [01:38<00:07, 196.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18162/19544 [01:38<00:06, 198.61it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18182/19544 [01:38<00:07, 192.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18202/19544 [01:39<00:06, 192.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18222/19544 [01:39<00:06, 191.87it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18242/19544 [01:39<00:06, 194.15it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|█████████▎| 18262/19544 [01:39<00:06, 193.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18282/19544 [01:39<00:06, 194.73it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▎| 18302/19544 [01:39<00:06, 194.58it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18323/19544 [01:39<00:06, 197.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18344/19544 [01:39<00:05, 200.62it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18366/19544 [01:39<00:05, 205.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18388/19544 [01:39<00:05, 208.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18409/19544 [01:40<00:05, 199.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18430/19544 [01:40<00:05, 193.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18450/19544 [01:40<00:05, 185.72it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|█████████▍| 18469/19544 [01:40<00:05, 184.65it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18488/19544 [01:40<00:05, 185.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18507/19544 [01:40<00:05, 183.46it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18526/19544 [01:40<00:05, 181.11it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18545/19544 [01:40<00:05, 178.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▍| 18563/19544 [01:40<00:05, 178.60it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18584/19544 [01:41<00:05, 185.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18605/19544 [01:41<00:04, 191.77it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18625/19544 [01:41<00:04, 189.43it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18644/19544 [01:41<00:04, 185.83it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|█████████▌| 18663/19544 [01:41<00:04, 186.69it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18684/19544 [01:41<00:04, 192.35it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18705/19544 [01:41<00:04, 196.80it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18726/19544 [01:41<00:04, 199.51it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18747/19544 [01:41<00:03, 201.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18769/19544 [01:41<00:03, 204.31it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18790/19544 [01:42<00:03, 198.32it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▌| 18811/19544 [01:42<00:03, 199.68it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18833/19544 [01:42<00:03, 202.20it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|█████████▋| 18854/19544 [01:42<00:03, 203.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18875/19544 [01:42<00:03, 205.01it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18897/19544 [01:42<00:03, 207.71it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18918/19544 [01:42<00:03, 202.34it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18939/19544 [01:42<00:02, 201.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18960/19544 [01:42<00:02, 204.13it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 18981/19544 [01:42<00:02, 202.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19003/19544 [01:43<00:02, 205.53it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19025/19544 [01:43<00:02, 207.14it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|█████████▋| 19046/19544 [01:43<00:02, 207.89it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19067/19544 [01:43<00:02, 206.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19088/19544 [01:43<00:02, 206.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19110/19544 [01:43<00:02, 207.55it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19132/19544 [01:43<00:01, 209.52it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19154/19544 [01:43<00:01, 211.02it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19176/19544 [01:43<00:01, 211.07it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19198/19544 [01:44<00:01, 208.06it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19219/19544 [01:44<00:01, 202.70it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|█████████▊| 19240/19544 [01:44<00:01, 204.30it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19261/19544 [01:44<00:01, 205.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▊| 19282/19544 [01:44<00:01, 204.63it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19304/19544 [01:44<00:01, 207.22it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19325/19544 [01:44<00:01, 207.91it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19346/19544 [01:44<00:00, 207.96it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19368/19544 [01:44<00:00, 208.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19390/19544 [01:44<00:00, 209.59it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19412/19544 [01:45<00:00, 210.57it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|█████████▉| 19434/19544 [01:45<00:00, 210.17it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19456/19544 [01:45<00:00, 210.84it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19478/19544 [01:45<00:00, 211.05it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19500/19544 [01:45<00:00, 209.00it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19521/19544 [01:45<00:00, 207.12it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|█████████▉| 19543/19544 [01:45<00:00, 207.97it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|██████████| 19544/19544 [01:45<00:00, 184.92it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OOV questions: 0\n",
      "Category: Semantic, Accuracy: 56.70312323824558%\n",
      "Category: Syntactic, Accuracy: 41.48009367681499%\n",
      "Sub-Category: capital-common-countries, Accuracy: 77.86561264822134%\n",
      "Sub-Category: capital-world, Accuracy: 72.81167108753316%\n",
      "Sub-Category: currency, Accuracy: 10.277136258660507%\n",
      "Sub-Category: city-in-state, Accuracy: 35.508715038508306%\n",
      "Sub-Category: family, Accuracy: 74.30830039525692%\n",
      "Sub-Category: gram1-adjective-to-adverb, Accuracy: 15.92741935483871%\n",
      "Sub-Category: gram2-opposite, Accuracy: 16.00985221674877%\n",
      "Sub-Category: gram3-comparative, Accuracy: 49.0990990990991%\n",
      "Sub-Category: gram4-superlative, Accuracy: 24.331550802139038%\n",
      "Sub-Category: gram5-present-participle, Accuracy: 31.344696969696972%\n",
      "Sub-Category: gram6-nationality-adjective, Accuracy: 80.48780487804879%\n",
      "Sub-Category: gram7-past-tense, Accuracy: 43.84615384615385%\n",
      "Sub-Category: gram8-plural, Accuracy: 41.66666666666667%\n",
      "Sub-Category: gram9-plural-verbs, Accuracy: 40.91954022988506%\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Do predictions and preserve the gold answers (word_D)\n",
    "preds = []\n",
    "golds = []\n",
    "\n",
    "for analogy in tqdm(data[\"Question\"]):\n",
    "      # TODO6: Write your code here to use your trained word embeddings for getting predictions of the analogy task.\n",
    "      # You should also preserve the gold answers during iterations for evaluations later.\n",
    "      \"\"\" Hints\n",
    "      # Unpack the analogy (e.g., \"man\", \"woman\", \"king\", \"queen\")\n",
    "      # Perform vector arithmetic: word_b + word_c - word_a should be close to word_d\n",
    "      # Source: https://github.com/piskvorky/gensim/blob/develop/gensim/models/keyedvectors.py#L776\n",
    "      # Mikolov et al., 2013: big - biggest and small - smallest\n",
    "      # Mikolov et al., 2013: X = vector(”biggest”) − vector(”big”) + vector(”small”).\n",
    "      \"\"\"\n",
    "      my_wv = my_model.wv   # 自己訓練的字典（KeyedVectors）\n",
    "      word_a, word_b, word_c, word_d = analogy.lower().split()\n",
    "      golds.append(word_d)\n",
    "      if all(w in my_wv.key_to_index for w in (word_a, word_b, word_c)):\n",
    "          preds.append(my_wv.most_similar(positive=[word_b, word_c], negative=[word_a], topn=1)[0][0])\n",
    "      else:\n",
    "          preds.append(None)\n",
    "print(\"OOV questions:\", sum(p is None for p in preds))\n",
    "\n",
    "# 模板在 TODO6 後面沒有評分格，所以這裡用 Part II 的 calculate_accuracy 印出成績。\n",
    "golds_np, preds_np = np.array(golds), np.array(preds)\n",
    "for category in data[\"Category\"].unique():\n",
    "    mask = data[\"Category\"] == category\n",
    "    print(f\"Category: {category}, Accuracy: {calculate_accuracy(golds_np[mask], preds_np[mask]) * 100}%\")\n",
    "for sub_category in data[\"SubCategory\"].unique():\n",
    "    mask = data[\"SubCategory\"] == sub_category\n",
    "    print(f\"Sub-Category{sub_category}, Accuracy: {calculate_accuracy(golds_np[mask], preds_np[mask]) * 100}%\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "e5d05a3b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:28:55.162557Z",
     "iopub.status.busy": "2026-10-05T12:28:55.161485Z",
     "iopub.status.idle": "2026-10-05T12:28:55.694913Z",
     "shell.execute_reply": "2026-10-05T12:28:55.694913Z"
    },
    "id": "AjZ14dQL0mhf"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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2rx58/gJAACQirKk5sEBAED6dODAARs7dqxt27bNateubfXq1YtVSlCrVi2rWrVqvM/9/vvv3X16bPPmzVa6dGm75ZZb3GNbtmyxqVOn2p49e+yiiy6y8847L7j/IUOG2IUXXuge+/33361p06Z2zjnnpPhrAABARkHGAAAAOCX79++3GjVqWN++fV0vgf/973/2+OOPBx9/++237bfffkvwubt27bKjR4+6Ab4CAypBEAUKFFQYOXKkzZ4925o0aWIffvhhcP+vv/66CyA8+OCDtmTJEjt8+DA/QQAAzgAZAwAA4JT89ddftn37dlu2bJlFRUW5++bOnXvKz73jjjtcKUHbtm2tXbt27j71JujQoYO999571qZNG3fffffdZ40aNXK38+fP7+4rX768ffPNN/zkAESUK6+80r0f9urVK7VPBRkMgQEAAHBKqlWr5tL+NYC/9tpr3UVqXD0FTuW5smjRItu6dautWrXKZQZ4AoGAyzhQWYF3cQwAkeaHH35I7VNABkUpAQAAOCW5c+e2+fPn26233upq/C+++GLXcPBMnysqC8iUKZPLMlB5gfdxzz33WMGCBWPtFwAAJA0CAwAAIFHmrt5p7QfNsVqPfm53fPirFahU25555hmX0v/OO++4ngGh1q9f75oPtmzZMuxzc+bMaUeOHAk+v3r16pYrVy6XEaCMAe9DGQeVK1fmJwUgQ2vRooXrn3L55Zdbvnz57Oyzz7avvvoq+LjeG19++eXg7UOHDlnv3r2tQoUKFh0d7bZX7xWPyrPU16VixYquFEtlW7t3707UtogslBIAAIBEBQXaDJilnH47sGWr/f1RTxszqIbd1rSG/TlzsltpoECBAidtp9UFmjdvbs2aNbNSpUq5xoL+59atW9f69evnygfUN0BNBfv372833XSTXX/99W4b9SlYvny5W9bQ61MAABnVp59+aqNGjXJlV5988onddddddtlll4XNlOrRo4ctXrzYxowZ494v9X56xRVXuLKs7NmzW7du3Vy21pdffukCACpF0HNvu+22BLdFZIkKqGgvDYuJiXHRMnUsViQLAACkPGUKTFu+zY7//1XD8QN77OCy6VYq2yF7pE0zN4jX7L9oBQL1AvB6CagsQDNeGzdutHPPPTfWczWb9dlnn9nKlStdLwI1GhT1GPjxxx9dwOD888+3q6++2rJk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ly0wd+5c15dg165d7j4AQMrIkkLHAQAAQAagQf9zzz3nZvsVILj22mstEAjYtGnT7NixY1akSBGrXLlyovf31VdfWYMGDVwJgVdGoKwB7fvxxx9Pxu8EAOAhMAAAAIBEq1WrlpvpV2aABu9ffvml7du3z3755RfXMyBctkB8tm/fbgsXLnSlBX7lypXjpwIAKYTAAAAAABI0d/VO6zdxhS3ZHGO5y9ewN94b4JoLVq9e3fbu3WvdunVzjQUffvjhU3o1tX1UVJR99913se7XPgEAKYPAAAAAABIMCrQZMMssELDjAbN9hc+z779631pdfb17vF69erZq1SqLiYmx5s2bn9Kr+dBDD1mNGjWsY8eOdvXVV9vBgwdd34EKFSqclEUAAEgeBAYAAAAQL2UKeEEByVH+AstRuoodLlPv3wvKLFmsU6dOtnHjRitRokRwu/z589tFF10UvJ05c2a7+OKLLUeOHMH7ChUq5EoJ3nnnHRsyZIjlypXLrrjiCmvbti0/FQBIIVEBdYtJwxR5zpcvn1sOJzo6OrVPBwAAIOLU7zPetsQcPun+YtHZbXbvU+spAADpQUyEjUNZrhAAAADxqlw82jJFhVxERv17PwAg/SMwAAAAkAgXXHCBzZs3LyJfq+7NKroGgV5wQJ91u0fziql9agCAJEBgAAAAIBH++ecf1xgvEtUpX9BGdmlgjSsVceUD+vxF1wZWu1zB1D41AEASIDAAAABSjLrXz549O82/4unlPFM6ODC0Qz3XU0CfCQoAQMZBYAAAAKSY9DLrnl7OEwCApEBgAAAAJKnBgwe7JelUk9+jRw/bvXu3u/+mm26yXbt22W233WYVK1a0Bx54wN1/+PBhe/75561JkybWoEEDt3b9kSNHgvvTfkaMGGE333yz1apVy+666y7btm1brMe1zF2bNm2sRo0aduutt7rHBwwYYBdeeKHVr1/fhg4dGuscdU46ft26da1p06b23nvvmbdQU1znKatXr3b7r1mzpjsf3fYk5vv44osv3DJ81atXtz/++IPfPABAmsByhQAAIMnMnDnTWrVqZZ988omdffbZNn36dDf7/tprr9n69evt/PPPt379+rnBet68ea1YsWJ25ZVXukH1U089ZdmyZbNevXpZhQoV7KOPPnL7zJ8/v2XPnt3effddK1++vPXp08cNyNUIMFOmTO7xwoUL2zvvvGNFixa1u+++27Zv3+4G/N27d7elS5da+/bt7c8//7TzzjvPBQAUMNB2zz77rAsi3HPPPdapUyd7+umn4zxPPb9QoUL29ttvW5kyZdxz9+/fb+PHj3fnmZjvQ0te9e3b16pVq2Zly5Z13xcAIO2JibDlCvXPMU3bs2ePwvfuMwAASNvGjh0bKF++fGD//v3B+44dOxb8ulChQoFJkyYFb8+dOzeQPXv2WP/nV69eHciUKVNwH/ny5Qu88cYbwcdjYmICuXPnDkyePDn4+LBhw4KPDxw4MFCgQIHA0aNHg/fVr18/8NFHH7mvp02bFsiWLVtg+/btwcc///zzQHR0dJzn6R3n008/Dd6eM2dOIGfOnKf0fXz44Yen9HoCAFLHnggbh2ZJ7cAEAADIOFq3bu1S8DXTrowBzdp36NAhztmWxYsX2/Hjx12avd+JEydcVkCVKlXcbc3gezSDr8wBZSKoZEHKlSsXfDxPnjxWsmRJy5IlS6z79u7d677Wdprx1+y/RyUImh1S9kCRIkXi/P50XP95qA/BsWPHEv19VK5cOcHXEACAlEZgAAAAnLG5q3dav4krbMnmGKt89tU2+PsHrWimffbyyy9b8+bN7bfffnPPi4qKirWdUvQ1wP7pp59O2qdS7T2bN28Ofq1SgK1bt8Y7gI+PtlMAQAP5zJkzu/s2bdpkWbNmtQIFCoQ9z4Qk9vtQ6UNq6dy5swvaXHLJJelq3+GoVOSWW26x0aNHW+7cuVPkmAAyHpV+qQStW7duFuloPggAAM44KNBmwCybtnybrZo3xX4a853d/MF023oij8scWLFiRfC56gWwYcOG4O2LLrrIChYs6JoLajZezf5y5szp6vJVp+958803befOne5r1ehrJr5x48andb46po6hoIXs27fPNQ285pprglkGoeeZmH0m5vtI7f4P/gBLetl3OIcOHbIJEybY0aNHU+yYOHPjxo2zxx57zDXmDG2+qZ/pwIED7eGHH3b9Qry/d1m1apVrAqoA3htvvGGPPPJI2CAccKqUQaa+MiAwAAAAzpAyBSwQsOMBs2zFKtq+vybZ6rfaWJOa59qjjz5q/fv3Dz5XzQC7dOniygx0oZ8rVy77/vvv3SBPs/XFixe3hg0bWtWqVWMdQ/cpDV8D9ldeecUNwNUU6nRoZn/UqFFupQIN5jXbr0G8mhvGdZ4JSez3AUSqQYMG2e233245cuRwwTI1CZ06dap7TCU5derUcU1L9feohp5q0OkF57Zs2eJWDrnqqqvcc9W088Ybb7Svvvoqlb8rIONgVQIAAHBG6vcZb1tiDse678TRw1Yo2zGb9+KNJ6XP68JeF/oajGsQ4J8xVJ2/0jr91M3/hx9+cLPy2k7b+FP9NZtYokQJN+DwMgC03KD6CHg2btzoUs5Dgwk7duxw56GBfajQ8ww9jmar16xZ47ID/OL6PkK3T2kaaD3xxBMuBT897TsczfDp56ufs34/kPap3ER/f6+//rq7rd4cKglREE0rfSgwp14dKukRlSCde+659v7779usWbPcSiILFixwS33KQw895DIIhg8fnqrfF9K3du3aWenSpYMZZJG8KgE9BgAAwBmpXDzatu3dZicCvguMbNnt/Eqlw9bUa6Dtb+Ln0YA5vkGzggEaRIQ666yzYt1Wo0F9+KkZYTj+BoQJnWfocTSACQ0KxPd9hG6fGhTseOGFF9xSj7oY1pKKpUqVco/dfPPN9vjjj7tGjKKgiPoGKCij72fOnDk2YMAA159Bs7sPPvhgrPp+Ld2oJRwXLlxolSpVcvv2ejYofVx9JvT7oEaRakipgZ5/0Hj99de78wp3buoHoRKSadOmuYCAzhXpi5YDbdu2rRtkqWloixYtgn/PKitQIMALCoiWPf3mm2+Ct/U76AUFRL8HChQg/Zo0aZILCB04cMA1rlWgSEFY1fv/+OOPNmzYMLvhhhtc8EfvNT169LCuXbu6bTVgV6la7969g+/33jZ6f1D2iQb2el/RcrQeZamoVEXvV5dffrnrWePZvXu3vfTSS+69Ttlk+n31+/333+2tt96ytWvX2jnnnOPe17z39cQcO62jxwAAADgj3ZtVdIP2TP8/ia/Put2j+cmDZqQulXaoj8Kdd97pMhiuu+66WBfMmoH3BxFUGqGZXc3MaoUJDeo1iJfQC14FCtT7QcEEBQeaNGnitpU2bdq4gb5meRU00CBAAQB/j4L27dvHeW4aDKhfw0033eRKSm699dZkfZ2QtD1I2g+aYz0m7LWLHhtmF152oysR0KBu5MiR7jkqLThy5Eis7XTb35/DaxTq5x/UIX3R4PuKK65wAUL1jPjzzz/t1VdfDdb7K5tLpSIqQVHZid4/NBj/4IMP3IcG5drG/17gbaOB+X333efeU3r27Gljx451j+s9R+899erVc8ecO3durHKU//3vfy6AqQDpXXfdZYMHDw4+puCVzlXBYAVA9bupVWi83ioJHTs9IGMAAACckTrlC9rILg3+W5WgeLQLCtQuVzBJXlnN0igFH2fOu8AWZQZotkszuAn1a9BATrO5uphWffeVV17pSjb8NPhXE0fRBb+CCFo1QDN+NWvWjDUTrNk0ZR98+OGHCZ6bZhN1ga5gg7fso2YPdeGN9NGYVD1I9v3zu20tV81mrMpmI7t0drPDX3zxhfu9adSokWs6qIaDmqlVOY6CBmoIioxJGUDqOaGfuyiLxOs54dHgW78H/swkZSt5NFBXKZF/mVk99/PPPw8GldSkcsqUKS47QLP9CiTofUwUvFQWkr/k7LLLLnPZLN7j3nujml4qA0CrGIgCpQpuqNTlueeeS/DY6QGBAQAAkCTBgaEd6iXLK5kWUvAzivPOOy/4tRo5irIEEgoM1K5d2w3Ea9Wq5S7gdcHsn9GXBg0axEr71uB+yZIl7vby5ctdIECfFVDQBbhXJpDQua1evdpdcHtBgdBjIX00Jj26Y52t//l9y168ot0wLrPtXDbXPv3002Cdt8oG9Duj3y/N2qoMxRvAIePRajWalfeozMgrY/KolMsfFFAWSb9+/VwJgrfkrKjXixcY0PKw/kwTBQ4UYBS9/ygjyZ+F4g9avvLKK262/7vvvnM9bRTE9CxbtuykHioKUuh+T3zHTg8IDAAAAGTgGVsvk2PDroO2avv+OJ+rNH7vQltUg+tRaYhm+A4fPuwyOJTWr2Zd+trrIxF6AexlIig7QDN7KjFQcEH1wMokCF2uzt9Q0k/7UFmDmj16Nejp6WI7kun3TkEBia5zteU69yI7vH6RZcuV1Zb9MDyYCaTfIQUGZs+e7QZa6keg5Ui98gGtDqLfPz/1JAjX4wPp4/1o/YFMtmDFuliPKx1fpUZxlY8oxV9BAX1Wfwq9Z+n3RBkmiaFsFB3DT5kr3jFr1qxp06dPd+8vmum/4447YvWj0XNDt/UCEhkBPQYAAAAycBr3tOXb3KoR+48cs74Tlrv7w9HsnC6KPart9ag2d/Lkya6MQLP1mlVT4zcN+j1K99+7d6/7WvuZP3++NWvWzM3mqanXs88+67IMNBOn2uDEUqaAGpJpuTpRHwM1D0Pap7Iir/eIZMlbyPJWaWwNW14VtjxIfQeUXn7JJZfEGhRqhY+OHTvGeq4aEaqkBenz/ehQ8Ro28OPB9vPcpe5xpfT/+uuv8e5Dq1boPUXvIwo2KrioYGVi6fdF72tqrCo6nr+U4LXXXnOBAwUj9Vx/tppua4lbrweCgqJaolZLaGYUZAwAAABk8DRuf7M23R+u7EPLDWpteF3sasbMX8urgbkaFyr1VyUAf/31l6sN9i8VqItolQNoBQg9rrRcDeqVhaB6XDUO0/JzKg1QA0FlASSGghFDhgxxjQf1WcEHlTYgfTQmnbZiu2WygFu1hMakkSv0/ShPzdZ2eMMiu+KimnZ2+X9T8OvWreuyAOJy//33u/cBZZeorEAz/AmVQfl16dLFZsyY4TJQtPKJ3lsaNmwYfLxIkSIu4KSlCRXM9C+nqwaoCobqfUwlA1qZQJkLamaYUUQF0ng7z0hbPxIAACAp1O8z3s3MeQ5vWGJZ8hezkiWK2+zeLdyAXWm5avzmLa+o5m9Lly51F866/tJsmgb13uytBvXqD6AUbs3ierTOvAID2o/6Cmj70BRbBQt0sV21alUXFNB+vOCDt713IR7u3NSb4O+//3YX5UoJ1myfZpbjG0ggbaWPJ3VjUqTf9yNPwUwH7OsudV3GkrKR1G9CyxXqvUgd//29RUTNSP/55x/Xg0JBSmUfVahQwZUohdtGA3jR+4Zn69atbj86plZAUVCi1P/3PFFGknoRqLeBxp6h41AFJpU14L3feRJ77LSMwAAAAEAGpCXifl2+zc3UejRj27hSkWRrFAkAiX0/2r/gZ7vshlvtk471XaaSSgQWLVrkZuXTgpgIm6CmxwAAAEAGTeNWQz+vxps0bgBp6f3oyNZVNqbXVS7DSMsIDhw4MM0EBSIRGQMAAAAZFGncANLy+1HF/JldM0Cl5nurjqQVMRGWMUBgAAAAAACACA4MUEoAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAAEAEIzAAAAAAABlM586dbfDgwal9GkgnCAwAAAAAQAazbt0627FjR2qfBtIJAgMAAACpYM+ePXbJJZfYzp07ef0BAKmKwAAAAEAqOHr0qE2ZMsWOHDnC6w8ASFUEBgAAAJLZvn37XHbAtm3beK0BBHsA9OvXzx5++GFr0KCBXXbZZTZz5sxYr85nn31mV1xxhdWrV8/uu+++WKUB2v6dd96xHj16WP369e2GG26wv//+O9b2+/fvP639//bbb3bhhRcGn/fll19a5cqV7a+//nK39V523nnn2e7du/lpZhAEBgAAAJLZsWPHXHbA4cOHea0BBHsA9O7d2ypWrGjvv/++Va9e3a655ho7ePCge7xPnz729NNPW6dOndzjyi5q2bKlnThxIrh9z549rUyZMvbuu+9ahQoV7KKLLrKtW7cGX+HXX3/9tPav5/7xxx/BQMPo0aNt165d9tNPP7nbEyZMsMyZM1v+/Pn5aWYQUYFAIJBcO//nn3/sjTfecP8IlS5Xt25de+aZZ9wvZ2LFxMRYvnz5XB1edHR0cp0qAACAo2sOXTw/99xzNnLkSFu1apU1atTIHnnkERs+fLiNGjXKcuXK5S7IL7jggljXLLoI18V0kSJF7K677nLbiWbkxo4d62btsmfPbrfffrs7hp6nGTzN2uk4derUsUcffdRy5szpttOF+nvvvWfTp0+3bNmy2U033WTXXXddrPPUMYcOHWpLly51s3q6bgKQ9rVu3dqNizSol+PHj7u//blz51qVKlXc2EfvG8o28h4vW7asff7559akSRO3fd68ed3fvUfvITfffLN7vzrT/Tdv3tyuvvpqu//++61kyZL22GOP2ZgxY1xwQMGEPHny2Ntvv20ZVUyEjUOTNWOgffv2Vq1aNRsxYoR9++23dujQIWvcuHGsKBYAAEBarP1XWm3Dhg2tXbt29tZbb7lU3YkTJ1qXLl3cRbIuulUi4G2jtFtdcHfs2NEqVapkrVq1sh9//NE9rlRfefDBB90kSbNmzWKlA2vyRNvpmunJJ59092vuRrN3unC/7bbbXBqwLtAHDhwY6zx1fgpQaOZRAQsA6Uf58uWDX2sGXn/DGpCuWbPGzezr/UEp/PqoWrWqa1a6YsWK4DY1atSItT/dXrlyZZLsv0WLFjZ+/HhXPqAAhMZ2CmQq80kZA3ocGUeW5Nz51KlTLSoqKnj7k08+cdGWcePGuUg5kJHpQu3ll1+20qVLW6TSPw7VqOnCWv9o1q5d6+rRFK1WVFr/aPSecNZZZ5207YEDB2z58uVWvHhxK1asWJLsEwBOhWbZLr74Yvf1vHnz3ABda4Lr2ubyyy+3QYMGuewAZQUoi0A1twoM6P1IM/maZVLWgQb0CiqIggfe/4Xt27e7z6oRbtq0qftaF+wKQsh3333n3geVgZkjRw53n9J2H3jgAXcx71HGwJVXXskPF0gH5q7eaf0mrrAlm2Ns/YY9du7OA2Gfp2wiUYq/SgX8dG3k2bJlS6zHdLtmzZoJnkdi9q+B/0svveQyBPS1rq8UPFCG0vr164Pvj8gYkjVjwB8UEEWlFP32/rkBGZnSQiO9IcumTZtclpBS2nQxrKY4qn/Txe75559vd955p/v80EMPxdpOjXgUDFAA8dxzz3XbqXnOmewTAE7VOeecE/y6QIEC7rZ3baPPSjH13ueXLFniLsa9EgDRe5TuT4hm6jyFChUK7nPBggXu2kmZCUr11ccLL7xgq1evjrWSQWIGAQDSRlCgzYBZNm35NtsSc9h27T9iw2avcfeH0iBcafwKRpYqVcq9TyjN/5tvvgn2CBCVNy1btsx9rdn8n3/+2W2XkMTsv3bt2pYlSxYXrPSyA/T52WefdcFOZREg40jR5oO9evWywoUL26WXXhrnczQbqGi5/wNA+qa0Ns16KbVNg3gN+NXE5vfff7fZs2e7+rSNGze6586fP9+l2mpmThfFqrlV3awuhk93nwCQGLo4bz9ojl361hR3+8/1u+Od8PDTTH5oMFiNurzGXPFtG9djCjwou0ClB97HK6+8Emz65dGFO4C0T5kCFgjY8f/v8OY+Bf7//jA+/vhj97lEiRJWrlw5V8Kk8iUFED0aqKtsSe8VKlHSe4RWGEiMhPafKVMml82kLAQvq0nlTbq+oowg40mx/yRqQvjpp5+6Wrv4muIoXUVRKAAZh+pxvX8wijArQOg1IVXzG0WcFQDQPyQFBNRRV1kB3izd3XffbQMGDHDvD6ezTwCpQ/X4SrFX87z0MpOni/Yj+/9dOaDrp/NsVJFiVqd8wQS318WymhFOnjzZzezr4lrft8oIRE26NJhXCVRiS8xUrqB+A+oQ7vUk0PZfffVVsFkYgPRD5QNeUEAKte5hUVmzu/s9Kpf03iN0baOMAPUT2bx5s5vZ13WPn/qTqEmqMio1oFeTUs9HH310Ut+RU93/hx9+aK+++mowyKlSzsWLF7vnImNJkcCA0oIff/xx+/rrr4PRprio26VmCz3KGAitewESorRypVIVLVrUNUrR759X7//aa6+5gaNmdmbNmuXqMlUnNWnSJDdro+coPV1dXT3aRjVV+n2cNm2aG6yqKZW/xuuHH35wNVg6ptLZ/bS9UuI1ezRnzhz3RqwGUqqj1xuu6lLVsfqqq66KFcWN75zSk9y5c8ea2fLf9u7TPyXRz8UfCZeCBQu61+509wkgdWhWSd300+NMnmjdJt0/tEPCs2/6H9G3b1+XmqsgpZYRU4q/l+2koMAtt9ziZvZUknDHHXe4PgTx0X5Uy6ueNZpU0WoG+n+hGUEgPVKmX9asWWM1xEsOutbSdVdaW6GjcvFo27Z3m534//eZLNGFLVPUv/d71Lg0lF6zhMZDmvUPFS4Iear71zWrPjx6L/OXPyHjSPZSAkXLFUHXjIEi3wnRPz3VvPg/gFOhOih1dtYbnPpZqDbTX++vFEwtIaUmmOrirNQpXdDpeSpz0RueZn406+PxtlFnVtWvK91dQS41u/MaR+kiT2/A+h0OLZfR9goWzJgxw22vzBk9RxeF+qelf5C6YPzll1+C2yR0TukhHffa96a52/PXnFw7Fxf9I9fr6722ogCO7geQtNQ4T+8z+mjTpo0rwfEH1PS/W2tc+7344os2bNgw97Xes9RtX+9NyuJp27atmwQQ1dYrKKrGed4xElNvnxZm8jJlz23F2vaxqBx5gjN5KlcKLWnSCgLqI+C59957XTBEqwaoWaFeHwU2PXrd9Fo9//zzLgNA7/8KAPufo/1pv55rr73WNVnV6k5q4qz+AgoUSLjtgbRM7x/e0nnJSQE6zYynNd2bVXQTPgoGiD7rdo/miV/KHUiXGQMffPCBawCmCwvNhgLJ7dixY64GU4EAr0OzBtih3ZqVeq4LLD+tLe3RjLUukP2pmgoEKCVLbr31VndBpsi3Iq9PPfWUDRkyxF3Aecf0z/6LLoqVHeDVx+viTxeIXkdXLQ2jGnkFALzzSeic0no67uF9/zbHaj/4N/uyW55EpePqtdXFtz4rmKKBiy6ylZEBIGkpgKoO96KsHGX4KTDnvT+qHEcDXD/18fCCBxs2bHDZTWp81aFDB5d9peCAF0TV7LiuAbxjhJvRSoszeVGZs1iOsufHmslTEDmU/z3ao5IBNeyKi4Kc/kBn6Hu63utDs6aUARUuOKpZvrT+PwFIbgoA6FrMS3VPy3QdNLJLg+CqBHp/UVCgdrnTC+6FKxUA0mRg4H//+5+ri1Mqt98jjzziPoCkplkVpft79ekSbikV/wyPKJtAwYRFixa57XWxu3Xr1ljPUXaB/8JPNew7duxwtVxaksp/cRbuQs3fNdorQahVq1as+/zrzibmnNJ6Om5U5myWvVQVC1hUMB1X2RGhaf+6uPbS/fSYlvtSqqzScvW6aJChvgOiLBB97W+8ldA+AYSnAaiClh5lKGlFEM3oJTZjT1lS6mLtdeNX6YBKufQ+rOCAvvYfI63STN60FdstkwVccICZPCB9uO6669wAOT28z3jBgcSUJyVGJC+JjXQWGNDMgZYnDEVkC8m1JuyCZavc7ZnLNlrruv8OCv1Lunj8jVm8gbya1KncRYNJzZjpQtcvtBmL6Pfbuxg+dOhQ8P5wxwy3feh9/r+XxJyTAm8KHGgmSTNHaS0dN3OeAla83avB+0WNBEOFZgNobV2tyx2OAgXq8+CXmH0COJlKdtQYWOno27dvd7eV1qp0dQ3qE+Oss86KtUSf/n5De4KkB0k9kwcg/gxPrTik2nUFI0N7ECibSV/rvUXZOnq+bmtyQJMB3koeCxcudEt3/v33327SRsHO8847L7g/9XJSRpP2F5qJo2suvdfp+k0ZB/7VPbweBToXlUBp9SMmG5DRJWtgIPQPEEju1PXjlseyFChhtz3yqo0b/Ia70NP6rPFRh+c///zTDbp1gSunUsuv1Fg1kho0aJD17t3b3aevz0Riz0n/8KpXr+7SfZO7kc/pNtaR0MY6AFI/kKrB78EZw23/8pnW6+EHXdBNF8ZaSUDvLaLMHH+/D/Ee88S3DF96k5QzeQDCU4mgBuLKSlIZpTKL1ZNM7yXqQaAMSQ3YVRqgnlFqwqm+Grq9d+9eF0jQyhxnn322W7FIWZu61tM1U5MmTaxPnz7uOCrxVImTxiMa3KvE2ctiVonUbbfd5oIKCjbofU1lT14ZkHoUqA/IlClTXGBC5+fP8gQyIha+RboX2km64KX32bZv+9hVly2080pEu1l18aee+6lpk+pgVXKg3gP65xGalp4Q9Q5QfwGveWC47IBTkRTnlFpIxwXSSSA1YLZ10R+Wo1Rtq9XyBjco/uKLL2I1H1TAccGCBe6iWdl+uohXxk5i18jWDJvX+BUAZObMmW5grs72CgBoMK4syZtvvtk9rgxJPa73H5VSarbeW7VMgUr1MVHAQJlO6ouigICyDENLCbSt3rOUJapeKJq8UWBAWZ033nija5yqsmdR+ZSCD8rC9IKdW7Zscdv7M6KAjIzAADLcmrA5y9e0Up0HWM49q+yl+1q6WTD9c/EyWNTfIrQB1tixY93FrtZwVeNADcxnz54dfDzcNopSe82g9A9NKW7aRmm0Wlbw888/Dy79Erq9nqP0XUWpPTfddJOLhCf2nNIq0nGB9BNIzX1+K9sx5i27vMUCKx2dxc3g+cv91LhV61crK0rZS7rQ1uxdYjVq1MgFGnThr/c9NVBlmSsgsmk23nsf0PWZAgJarckLDGjFJi8LUin9GshriWdvkkfXVApO7t+/P95JEwUPvNJRTbRoxRCVDahZ4aZNm9z7kleaqOsslTZomdGyZcu6+7p27UpQABGFwADSvdDU9aPb11mW3NF24SWXWv369VyEWAP4okWLuseVGhZKM/xKP/PzVhiIaxvvH5j+ieiCV4EH/SPTsfSPSw3yvGwFpcyp9k19NzR7puPpH6O/nk0rFagkQLW5BQoUcKl0anio7ULPyTtmKG2vVDt96FhKt/P3U/AfXw1rkmI50L/++sstJ9ipU6fTSscNtz2AlAmk5q7cyHKUqWp5Dm6xIT1autIklRJ4Nbqqr9WFs0qbNItWrVq1YC2vaBWV0G75moXzZtz0Xqb6Xm2voEJaXpUAQMoIXV5T7xOaqQ/3uK5ZlHnkz/rU4+oPoMfiCwz4H/Out9SrwGvk7JV/eho2bGj79u2L8zyBjI7AANK90NT1qKiAbfq0p/3zVzWr23+nrVmzxtWiJTUNaNUJV7Vt+gelNcBVg+bV+2vNa9WlqUO3MgNU86b0OUXFFTDQ4L558+Zu5QHvn5e20bZ6nvap6PbLL78cXOpL/zh1TPUgEKXT+Wl7RbqnTp3q/olu27bN3nzzzWBzPnX5j+/4p1srqBS80x3Yn+n2AM6sB0jWPAWsXq1zgs0G9b7gp/cS/6os/hVWSpUq5T78qlSpEuu23l90wQ2kVePGjXMZefo9D13eODE0C61ldjWTnRQB94zc12TH8u2Wfd+CWI9rBj+u+n0FHpU5qWsWLwtTkwlaGUoNmr0AZmgvlPgowKnrIJUg+CdZEspAADK6MyuEBtJQ6nrjSkWsWHR2a35hbRv/6wx74pEH3aBaKf6h2QBnSoN2DcKvuOIKV4Omf1rhunBrgD9jxgzXI+D666+31157zQUUNMBXGpsi00qtDV0jXNv9888/9vXXX9ujjz7q/ll5x9RFu6Ld2j7c8oWqudMMnwIi6syv2Tt17ZXEHB9Axg6kajZfDUGFJfkQ6YYNG2ZdunRxA8vTXd1HgQE1zVNWDML3NZm2fJttiTlsW2IO2eJFf9uNt3ewn376yR5++GF3zXPfffeFfemUxXTZZZe5a6hvv/3WNRlUXwDN9nuZScrKVH8UNQpcvHhxgj8ClTHccccdbnlW/fwVGNL1YlJfKwLpDYEBZAhe6vrs3i3c5yZVy7nmfRpEJ8fyMmvXrnUz3Y8//rj7x6QZNX0d6q677gpGtD2qt9X2Grh7HW/97rzzzmDZg74HPV/PVbRcDXmeeeYZd0ylxT355JNhj+nV5mn/KmnwL92X0PEBRE4gVZ+/6NqAJfkQsdQP6KGHHrJnn33W/c9NiLrYP/HEEzTVPM2+JlkKlrICl9xpqw/ncVmWWiZVGQDKsBSvn4mfJknUh0krPinr8a233rJevXr9d4x+/dzkydNPP+36N4kaN6us0qPMTV0PeSUJAwcOdEEJ7U/ZlJooUYDAE7o9EAkoJQBOw44dO1ydvn9JznA1/6H3acZeswpKgVO6oZoNhv7j0WMe/QPTcXQhon+eCghozV+PF0DwC71Pt7VtYo+fEP3z1T9Sder1pxR7FHVXDV/27NldCqCyKvy1gQltDyB5sSQf8B9lz4X7/x0X/T/W/1GVvzFwPPW+Jvku/Lc/U+bo7PZ97xYnPT+07l/UK0llGvoIR9can3zySaz7Ro8eHeu2GlF7jQZF11NarlAf4YRuD0QCAgPAadTJ/bVqgwLgNnLcdGt7WWP3mJprxUf1/vqnpkwDNRoUpfF/9NFHiTq21uvVPzItHeYNqLWvUP77NAjX87Vqwpke36O+Boruq3nil19+6fod+NMvDx8+7LIS1BRI/Qt0jAkTJgRT/hLaHgCAlPD888+7prz6X6Smmsq409J4ul//yzQg1aBTaeze/ynNVssbb7zhMhKVfu4t36mgwciRI12vIfUrUKp6aC29ygu1Ly2tp//r/h4FKv2bPHmyKz/U0nz+5sMZqa+JSph0P4C0hcAAcFrrf2ez3FUvsTs7dLBdr79q5QtkD0ayvQFwKM2gK5VNqWqaUVfd/0svvZTomQrNTGj93Q4dOrjlw3QBEi56rjo7DfwbNGjgaueULXDrrbe68zqT44u6lY8ZM8bN9mvFAwUeWrRo4TIoPErl8yhAoCY/qiNUjWBitgcAICXo/7L+N2qgrv+PXnabd7+CAwpu60OzzXpcj3nP0Tb+wLYCCHXr1nUZeVq56LnnnnODfVHqu2a1b7nlFjtw4IArBVRAQiV9Xo8C1dAryOBNBGTEBtH0NUFyU88vZdv6S4nVQ0T9wJTp618qPLEOHjzoPnTtmpERGABOs06uYKvutmfGcHvm6aetcY1KboZBFwXeG47+sfuXutGFglLTNMugGQV1ANfA/Pvvvw8+J3Qb0cA6Z86c7usPPvjAXWho8K20ONXVde/ePdaShHpMjQt1waGaPc1OeG+OCR0/IerarBo9741RFy5aQvHjjz8OPkeZAmPHjnXLLXozLpqJUWAgMdsDAJASFFzXYF2r/WjA7r/fo74+ytJTr55rrrnG7r33XtcUuFu3bsF+Pvq/J5rlV1M77/+5GuUpMKBMAdXTqzGelgoWBQDU20ANhz3atz4yYl8Tb1UCZQr0aF6RviZINmpOqbLb119/3d0eMWKEazCq6/ChQ4eetPJOYowZM8at8qUG3hkZgQHgNOvkLFMmy9+kvWvgNap3C/vuu+/crL5X4x9a7yZKKwxNLVQGgCfcNv7SAA2ylW7oF/ompSCALlrCSej4CdEMf+gshqKyHmUCqGHPhRde6NIvFdDQkkDeRVNC2wNAatLsrQKuVatWTbFjqqZag0iWbE07lMWm/+kqM1CAW7SajwID8fF3tVdJglYtkl9//dX9b1Zw36MyOv3/Vmadp2XLlpYR0dcEqUkBOE2WJaa5qCgzQCuMZPTsgHC4IgcSSVFub4kvObB0uu2e+okV3LfazcBr9qBr164ZJv0vtIyi/aA59snyTDZhyq824Y+Vwcf8Kx6oqaAuqHWfMhOUKum/6KlTp47LYNAFUbjtASA1zZkzxzVlTUnLli1zA1Ck/P+0+n3G24ZdB+2fbftiBbi1/J3+NynFX1mACmDv2bMnwf1qtSA/BcO9z165gvehFYuU4afgucfLDgSQNDTA37hxo+v5cSrZARdffHFE/gjIGABOs04uT+WLLGbvNts6YbANmpfHpR7GtQ5vSglXipCkvRWKVbesparZZc2aWNubb7CNKxe7ZQ9z5crlnqtMgZ49e7qZL/UuUG8BRV49ylZQI0T1P1DqppZf9G8PABmZgqVKJVcQGWmhX5DZ/iPHrO+E5XbpVTvdzPbPP//s1rkfNWqUe74yBvzZfF6gQEGDxGrcuLErA9RyxF4pgagRr3oV+P9PAumdJoT0oWs7f72/fyZeNf+aJNL9W7duddsp1V8ffv5t1B9Lf3fhmnLqMfXe8l9P6rYCr6IG3LpdqlQp9zmuYx49etSdl/angG24QHF85yEKImqf/onCcN/7qfT4SilkDACnuf53k3OL28+DX7d5s6e7hn7KGEjtbAFdvKjhUXL2Vih8/eNW4OI77K/tJ9wawErP6ty5czAjQLWUWoe4QIECNmTIENfBWcEAzzfffGN9+vRxAYzQ7QEgI1u+fLmtW7cutU8jooX+T/Nm9N39ZtaoUSMXtFbTXtUq6/+aBhL+rAD1B9BEwOOPP+4CCQnR87Wv2rVru/936g2kr9UsGMgo9HekSTIN9hUA06y7eneoB5fX50p/X1r9Q32y2rVr51b00mSRPjRoP++881w/Ko+3jSacSpQo4ZoHquRGDTy9Yz722GNuIK7tmzZt6poMivZ91VVXua+1jXpceffHdczly5e7/WnSSo+rQbZHQcK4zkN0zav9qfeIXgP1Jwn9Pvzfe1pExgBwCiKxTi60t0JUVCbLeW4jyxKd3Vq1+vcN01v+UKpXr+4+PP7HRJHjG2+8MdZ9oc8BEFl0cafmbGpcqqChZtSVZu3V+6sOv2zZsm72SfXaCoCqd4maSikgq7RsNX/1r0nubaPZGy0BlzdvXnfRqoGep3///q4Bq4559913xzonba8LOB1z5syZ7kJP56TZIq0Ms2nTJpcFpSwpf68ULdOqAKguGHUhqPpWzQp/+OGHNn78eNfdXp/Vk0ZZVaJ9vvLKK3Ge5y+//OICv7rgrVWrljs3be//Pv2vjWamkbj/aXlrX21Zipzl7hc15tWqPSqN0++lSgVXrlwZa3ZQj3399dfu56ESAZUAaPDj74KuAHloE0MNkqZPn+4GGAoQ6FgSbnsgvdF736effup6Y+n3X3061GDaf02oUh291w4aNCg4meYvpXr33Xfd+/jSpUuDq4RoGzX21PLaep/TgF3ba0Lu888/dw2s582b5wb4eu+94YYbXONurRCiyaoyZcq4Jtjee6buj+uYVapUce/VTzzxhFs2VLP83t9lfOehAKEe00Sh9q8AsCbF1G9Ly3TH9b2nNQQGAMSLNYgBJLdnn33WdYt++eWXXar2/fff72Z1vDROpYNqyThdeGnZNzV202BaF2YavGngplkepYF6g2Jt07dvX9eMVYN3BQC0dvzq1avdIE8DsYEDB7pBvo6pizt/Srd3TF0gantdLGp7BSF0Wxet6iCvdFCviavOX9tonwo26PvSQFA1q1dccYV99dVXwVIC/zJ3yqyK6zx1EanBv85X5WIKEGhWbO7cue4cwr02SPz/tLw1W7v+Qbrfox4D+vBosOCnAUZo4179nvjpZ+UtVRg8duXK7iOUAkeh2wPpjd7f9HehoIBcffXVLjjqp9UC9F4VOjDWe7eW11YgQe+Fq1atsooVK7rHNAt/zz33uK+VjapVBbTChyjrRrP4CgqIylS9zICExHfMcOI7DwUnbrrpJpdNoKCDvj8FaRWo8AIDcX3vaQmBAQDxYg1iAMlJA3stA6XZ/8svv9zdp6VWNTPup7TN0FVZ9Dyvv4lSvDXz458tVxf5p556yn2t2RvN9Gg2WAEFLWU1bNiwYKqpZt2V3u2ni0wNykXpobpo1KyYasZF6acTJkxwF8P6PrQErAII3tJ3mhHWdlqSTt+P0k91canj+8V1nvq+FPB4//333SyYKCigwb+yDrwu2+Fem0inwJEaCColWK+dV9t/Kv/TNMuolQPatGmTCt8BkL6obt+fei8KpPqpxt4/MNZgXO/Z6rehgJsCpqrfV0aWN0j3Zvr9K3Tt27cvzmPqPTY+iTlmOPGdh4IByhpQENjPn/kV+r2nRQQGAMSLNYgBJCelYyszwB8I0IA6tMO7Px1VlKr5zjvvuAG0ygWU8hnaOd6buRKvAZaeo2Pq+f6LNq1VH3pM/6yxl04aep93TC1Np31qyVaPgg0qR1CKamigIzHnqYtefWjQ/9prrwWfo8ZVyhTwAgOhrw3M1fLqdW/YsGGsRoGn8j9NJSQK0hAYAOJu5un9LW09kdemzP7dunX773Et8+lvuBlKmTIK8GpQrcwZldno/U8N+hLjrLPOcsfwO9NjZs6cObiiSGLp/4JWPlD5m59/1ZH0gMAAgARFYm8FAClzQblo3TZN2dqvf62ym0uUcI8pUKAZX7/QQbtmyTWjrrIDXdSpltRrcpUQzfxo5kYDbKV+igb1occ8Fd4+d+zY4S5WRReaGuB7q8Wc6myRGmrpIlWNWkNLBLxsiXCvTXqii3iVjXjptklBJSGqPdbMoOqLE/M/LTnOA4ikFT4OV2hqo0Y+Y8/VqmM3XXaJy8hSxo0XwAxHs/VaTlD190rtV3Nqf7PPhKhmX/tXQFZNPtXjQMdU/5fTPWbZsmVdBoDKtXLnzp2o81AZmDLBlHGgY+v/ybfffuve+/VYesGqBAAAIFUuKKct32bbDprlKFPNOj38jP22aod7XI344qMZHnWPVq3+ZZdd5koAVMufWGr2ppR8zcJ7MzoJHTMh6lPQrFkz11/ACzCoRELLZ3lZBAoeqKb1VPapUgc1u1NGgy48dfGrula9BhnBnDlz7I033kjSfSojREEZpe6m5nkAkbTCR/Yy1a3w5Q/Yu+/3dwE2DbrVZ0Cz8qL3QmVQ+an8SvX6KqdSrwANqvVeF982eh/1gq0q61IAYsCAAe6Yej9X7xcv7V9BU5UW+BvEJnTM2rVru/4g7du3dwHoxJyHmuTOmDHDZRmpwbZWIdExvD4j4bZPi9JviBkAAGSIC8qCl95nW0c9a5fUPs+K5svtBtKa1YlrJlwXcGripIG4uj5rIJjYhlOeDz74wK688ko3o6xaUQ26FTA4E7o4VcMppbGqceD+/fvdzLVXhqDeAxroqzeBBq3eqgQJ7bNLly7uolJZAmvXrnU180m9NG1yU6dydQ73lvnSTJxm7ZTOq3IJNVAULRNYtGhR97VWcFBncP2M1OjL+33wav/189dKDhoMaJ+6SFdPATWVFPWc0M9UDcN0vxqBeRf0+h3zGpbFdR4eZZZMmjTJ/Tw1iAi9wE/oPHWfVoxQwEgNyoCMuMKHaNWq4vVa2OzeLdzfpZptqrmfKEigDz9lbGnlDz8N1j3htvEvAyhakUYf4ehv1b8CQWKO6QUP9OGtSqD+N17vmLjOQyVd6pUTTrjvIy0iMAAAAFL1gjJrodJWsvOHlu/IdpvQ+8rgMnHejK8u0EIH7ZrtV3BAQQGl7nsd+j3htlHHf3WL92pCNfOuzAMNKLW6gMoRvMFi6PYaTGo2SANbzx133OEaFHq0b6Wfqv+BlitUWqm35JZoXW9dpP7zzz/BetaEzlPnpQGtShIUFND36l86L9z2aY0aPeo8dWGswbVWa9BAXFkPyqDQZ63CIPpapQAKoGjAroCPGjrqIlyDc2VR6OegpSO1tKMCOno9tSykggQafG/YsMHtS8EAzdSJ9ukdQwN9zehpFQllncR1HqKfpQIQqh/W1w888IAtWLDABX8Se56aOdQSZvH1mQAywqpV20e/bOddc7stWFDULQer0irNzCN9iAqcaneFFOZFavQPUbV2AAAgfWs/aI79uvy/C8ojW/8xVd+3aFTfBt9Zxy0dOHXqVDfbivRPvSCU9aCGgKKBvIIbygwYMmSIm9lXQMWjwfUvv/xiU6ZMcbPvulRV6YcG4QoAqCGg9qf0f6+BpDIo1MNBASXN3ivAo1TmuLJOdDx1M9+2bZvLTgl3HjpO9+7dXRND1R2LmhlqdlJ9HxJznkprVoNMZbYAGbEkTL/33gofB1f/YWXX/WwxO7ZatWrVXP2+v2FrehMTYeNQMgYAAECKCl0yLkvuArb1q+ds8pS+VuKxve4C7Msvv+SnkkGo9EH1+xqoa13zKlWqxPt8LQGpzAwN1D2a+VcJhkfZGP5VJZTmq0aU8dGMv9L+lR2gjA0tNab7vOyMcBRg8IIC3m1lCCT2PLXiBEEBZERhV/i4+x6rXe7x1D41nCYCAwAAIHUvKM85x3o8PMsKnvh36b/y5cun+fWekXiaXdcs+vjx4+3JJ590M/CjR48+aaUFj5YX1KDdS+sPN8AOzQTQ7fhWlfjss89crwH1CFCJirIEZNeuXfGeu/pP+On30mtYmZjz9Jd9ABkNq1ZlLAQGAABAGrmgPHkteaT/9c2Ln9hhT7Zraffdd5/7uOKKK+yTTz5xvQbUHyF0eTKl62sm32sEKHqO7vOoN4SWI/SWhhw3bpzrAxCXQYMGuXp/pfiLylT69u0bXK883HkkJDHnCQDpBYEBAAAAJNv65gu/esPGf/KWtb+6uWU7tt81CVQWgaghnzIInnjiCStcuLBbDUADeC1Dpm7+qtnXrL4G/i+88EIwy0B1v1pVQl3+FSBQg8aJEyfGeU5a5vGdd95xTSH1oQaP/qyDcOeRkMScJ5AYzz33nFsmT0EzILX8t6gjAAAAkMTLURa54SnLW6O1TVu6yS0VptUfNJD2Uu9VYqB1xpWSr9UAtEqEljfs3Lmzm4HXMoDfffddcNkzr8fAV1995Wr6VfevpRC9ngPaXv0G/GuXa7CuVQi0KoIe1wBeq1p4K1+EOw81TwtdokzLImp1Ce848Z1nuO2BcNRsVVkwQGpiVQIAAAAkmfp9xtuWmH+X+/MrFp3drW9+ptTtXx+zZs06430BaYFWyFAGjJbDRNoRE2GrEpAxAAAAgCSj7uRauizWBWfUv/cDANImAgMAAABI0uUo1b3fCw7os273aF4xSfZPij5Sg8pTVAbjUa+KG2+80Xbu3Olua8WNn376yQYOHGgdO3a0Xr162ebNm2PtQ1kujz76qHXq1Ml++OGHeI83c+ZM69mzp9uX9umthgEkFwIDAAAASPLlKBtXKuLKB/T5i64NrHa5pFl1okGDBqRcI8WpL8WGDRuCt9VXYtSoUS5AIJMmTbI77rjDFi1a5PpQLFiwwFq1ahVc+eLDDz90t7Nnz24XXnihDRgwwDXNDEelMupVoT4WjRo1ssGDB9vtt9+eQt8pIhWrEgAAACBJsb45ItF1111nb731lvv68ssvtyJFitj69eutaNGibqnMIUOGuCwDUSaAl23gp4CDnjty5Ehr3bp1cL+lS5e2JUuWWOXKlVP4u0KkIDAAAAAAAGeoRo0awa+17GXmzJnd4H/37t1uRQxlDPgpIyCUVidQ07sPPvjAZQ54tGKGshEIDCC5EBgAAAAAgBBzV+90y28u2Rxjm/cesWWb9wQfO3jw4Emvl3+JTI9KCfLmzeu+3rdvX/DruGgJTi9LIHfu3MH7tfSltyQnkBzoMQAAAAAAIUGBNgNm2bTl29zym0eyF7CXPh3r7pcRI0Yk+vUqV66cValSxV5++eVgzwE1Jpw7d+5Jzy1fvrxVrVrVNm3a5MoOvI+4MgyApEJgAAAAAAB8lClggYAd/3ccb3nrXmd7fhttV112qWuAOXHixES/XlqVY9iwYTZ27Fg777zz7NJLL7VLLrnEsmbNGva5Cjro+QoQXHHFFVahQgX74osvwj4fSCpRAS9slUapxiZfvny2Z88ei45m/VsAAAAAyat+n/EuU8Dv2N4dlnv/BvvmkWusUqVKNnr0aDdwz5kzp02ePNnKli1rZ599dvD5X3/9tTVv3tyNZbzGglqtQOOa+vXrW548edz9v/76q5UoUcIqVvxvSc9jx47Z33//bRs3bnTZBso6QMqKibBxKIEBAAAAAPBpP2iO/bp8m53wTaFmijK3/ObQDvV4rSJATIQFBiglAAAAAACf7s0qurR+BQPcoCnq3zT/Hs3/m9UHMhICAwAAAADgU6d8QRvZpYHLECgWnd19/qJrA6tdjgaAyJhYrhAAAAAAwgQHKBtApCBjAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAACACEZgAAAAAECyO3z4sE2ePNmOHTuWrMfZtGmTzZ8/P1mPAWQ0BAYAAAAAJLtt27ZZ06ZNbd++fcl6nDFjxti9996brMcAMhoCAwAAAABiOXLkiJvdP3r0aJp+ZTZv3mzz5s1L7dMA0j0CAwAAAABi2blzp5vd37NnT5p+ZX766Sfr2rVrap8GkO4RGAAAAAAi1PHjx+2vv/6yhQsXuq89s2fPdp+nT5/uMgfWrFkTK5tAz1+xYoWdOHEibA8BzeT//vvv7r5wwj3u315lBzq2d056/ty5c2MFKvT1kiVLbO/evW47fehrTyAQsJUrV9qCBQvC9jXQ9tqn9h2uR4G2X7Vqlf3xxx+n/LoC6U2W1D4BAAAAAClv9erV1rx5c/d1vnz57MCBAzZy5EirUaOGvfPOO+7+V1991bJmzWodO3a022+/3b744gtXv1+6dGmLiYmxwoUL27fffmslS5YM9hC45ZZbbNasWZY9e3bbvXu3e7xBgwbB495zzz1hH/e2v+2222zmzJlWpkwZ95iON3bsWKtQoYItXbrUHnnkEXvqqads7dq17vGNGzfaM8884/b94YcfBjMemjRpYvv377etW7dagQIFXKAhOjraDfgffvhh++ijj+ycc86xf/75x66//nobMGCARUVFuR4F+r71vR08eNAaNWpk/fr141cUGRqBAQAAACACDRs2zA2Mf/zxR3dbWQHKApDPPvvMSpQoYaNHj3YDZFm2bJkLEGjgrEG3BthdunSxhx56yD7//PPgfnPlyuUG2xpk9+7d2+688077+++/E/140aJF3Uy/vPLKKy57Yfny5VakSBE3+1+vXj278MILrWXLltarVy979913XbaA59dff3X7//jjj61x48Yuw6FmzZru+1WQQcGD77//3u1Tx1LmQMOGDe2TTz6x9u3bu33oMQUDWrVqlew/ByAtoJQAAAAAiEDnn3++LV682H744Qc3+1+uXLlgBkE4GkyXL1/elQ9oID5lyhSrVauWjR8/PtbzFCjQoF80M69ZfqXkJ/bxbt26Bb9W0KJDhw4uKOCd82WXXeYyCOJz3nnnuaCAZMuWzQUTFCyQUaNGuccWLVrkvg+VNNStWzfW91GpUiWCAogoZAwAAAAAEejqq692M+Zff/21m5mXvn372gUXXBD2+du3b3f1+F7avqdatWqxeg3kz58/+LVS9xUEUMlA8eLFE/V4wYIFg4/rfpUB+Om27o9P7ty5Y93OkiVLsM+Avg+VIXhZCZ46deoEv/afAxAJCAwAAAAAEWTu6p3Wb+IK+3vNZqtarrh1v7eXvfpqQXvppZesR48eNm3aNNdXQPwNCatXr+4G5ZpZ10Dbo4Z/mTL9l4j822+/2TXXXPPvsebOdY9VrFjR9u3bl6jH/SpXruxKCVQCICpf0O077rjD3dZ5+s8xMfR95MmTx95///1Y9/sbFwKRhsAAAAAAEEFBgTYDZmmEbdsnf2pL9++2n76vYz0vq2LfffednXvuue55hQoVch+qx1fa/dlnn20333yza0p41VVXufR+DcpVTrBlyxYbPnx48BgqD9CMvpoLqkng3Xff7bIEvIF/Qo/79ezZ0zX/UyNCNShUL4MdO3a43gaiHgnqffDVV1+5Xgi1a9dO8DV4+umnXelAzpw5XbPDXbt2ue2vuOKK4H6BSEOPAQAAACBCKFNAQYHjAbP8Tdpb9rLn2/4l0+yd/h/ZtddeG2sWXbX4qsN//vnnberUqS5LQIGA1q1bu4H0p59+6gIGQ4YMiXUMNfGbMWOGCxZoBQJvhQMFAi6++GJ3f3yP+7MRNNDXCgZasaB///6u3EA9AbzyAg3wtYKAjqkSB61QoKaJoeUQCngoK0G0uoGaHSqwoZUIJkyYYJ07dw4GBcJtD2R0UQHl46RhaoSi5VPULVQ1SAAAAABOT/0+421LzOGT7i8Wnd1m925xRi/r+vXr3cy+ZuD9fQSA9CgmwsahZAwAAAAAEaJy8WjL9O+CAEG6rfsBRC4CAwAAAECE6N6solsFwAsO6LNu92j+b5r9mQhXCgAgfaCUAAAAAIjAVQmWbI5xmQIKCtQux/J8QCSXEhDOAwAAACJInfIFbWiHeql9GgDSEEoJAAAAAACIYAQGAAAAAACIYMleSrBjxw4bOnSorVmzxipVqmR33nmn5cmTJ7kPCwAAAAAAUjtjYPPmzVarVi377rvvrHjx4jZkyBBr0KCB7d27NzkPCwAAAAAA0kJg4Pnnn3fZAT///LM99thjNnHiRNu6dav17ds3OQ8LAAAAAADSQmBAmQI33nijZcuWzd3WMg9XX321ux8AAAAAAGTgwMChQ4ds/fr1dtZZZ8W6X7dXrFgR53aHDx92a0b6PwAAAAAAQDoLDBw8eNB9zps3b6z7lTVw4MCBOLd76aWXLF++fMGPMmXKJNcpAgAAAAAQ8ZItMKDeApkyZbLdu3fHun/Xrl0uOBAX9SLYs2dP8GPdunUR/0MCAAAAACDdLVeYNWtWtzzhokWLYt2v21WrVo1zu+zZs7sPAAAAAACQzpsP3nLLLTZy5Ejbvn27u71q1SobM2aMux8AAAAAAKS+qEAgEEiunauXQOvWrW3NmjXWoEEDmzJlitWvX99GjRplWbIkLllBzQfVa0BlBfGVIAAAAAAAkBRiImwcmqyBATl+/LhNnjzZ1q5d60oLGjVqdErbR9oPBAAAAACQumIibByabD0GPJkzZ7bmzZsn92EAAAAAAEBa6zEAAAAAAADSNgIDAAAAAABEMAIDAAAAAABEMAIDAJLNo48+at26deMVBgAAANIwAgMAks3hw4ft0KFDvMIAAABAGkZgAAAAAACACEZgAAAAAACACEZgAECy2r9/v3Xu3NnKlStn559/vg0bNiz42PHjx+3VV1+16tWrW6lSpeyaa66xFStWuMeWLFliBQsWtG3btgWfHwgErGrVqvbZZ5/xUwMAAACSCIEBAMlqxIgRds4559isWbPsySefdEGCKVOmuMdeeeUVe/fdd+3999+32bNnu+BAs2bNXDChcuXKLggwePDg4L5+/vlnW79+vV177bX81AAAAIAkQmAAQLKqW7eu9ezZ00qUKGE33XST3X777TZw4ED32IABA+zpp5+2xo0bW+nSpa1v376uWeEPP/zgHr/33nvdc5QpIB988IHdeuutljt3bn5qAAAAQBIhMAAgWZ177rmxbit7YO3atW6wr9l//+NZs2a1s88+29asWeNu33DDDbZv3z775ZdfbOPGjS5goIwDAAAAAEknSxLuCwBs7uqd1m/iCluyOcb2/r3ZcuxZG+tV0aC/ZMmSFhUVZcWLF3e3GzVq5B47ceKECxqopECyZctmHTt2dJkCNWrUcB8XXHABrzIAAACQhMgYAJCkQYE2A2bZtOXbbEvMYduw+6D9/ttMe6HvANdocPr06fbJJ5+4cgBp166dvfjii7Zy5Uo7fPiwPfvss3bkyBG77LLLgvvs2rWrjR071vr370+2AAAAAJAMyBgAkGSUKWCBgB3/tyWAvrRclRrYB4M+sZcff9By5sxpjz/+uF199dXucfUXOHjwoNWvX981HNTqBAoCaDUCT9myZa1Vq1Y2YcIEa9u2LT8tAAAAIIkRGACQZFQ+4AUFpEDTu8wCZsUL5rG1vZpZpkyxk5QUKFDDQX0ooyBz5sxh96uygzZt2lh0dDQ/LQAAACCJERgAkGQqF4+2bXu32Yn/Dw5EZc5qmaL+vT80KBAqrqDAX3/9ZWPGjLHffvuNnxQAAACQDOgxACDJdG9W0c3uKxjg3mCi/p3t79G84mnt77rrrnPNBh9++GGrWbMmPykAAAAgGUQFvAXC06iYmBjLly+f7dmzhzRiIJ2tSqBMAQUFapf7r2fAqTh06JBlyZLFfQAAAAApJSbCxqEEBgAAAAAAiODAAKUEANIkLW24dOnS1D4NAAAAIMMjMAAgTQ76X3rpJfvmm29S7JwAAACASEVgAECK+/XXX23x4sW88gAAAEAaQEcvACmuV69evOoAAABAGkHGAIBksWvXLhs/frwtWLDAjh8/bl999ZXt3bs3bCmBMghWrFhh27Ztc9usXLmSnwoAAACQQsgYSGMmTZpkZ511lpUvXz61TwU4bVOnTrVrr73WKleubCdOnLD8+fPbuHHjXPmA7lP/gEaNGgUzB5599lkXPFi3bp1VrVrV7rnnHl59AAAAIIWQMZDGPPbYY27G1B8oWL16daqeE3AqAoGAde7c2Xr27GkzZsywWbNmWYMGDRLcbvv27fbnn3/a6NGjrXXr1rzoAAAAQAohMJDG/fLLL6RVI13ZsGGDLVu2zDp16hS8r0uXLglud+ONN1ru3LmT+ewAAAAAhKKUII3r06dPap8CcEr279/vPvsH+YkZ8OfLl49XGgAAAEgFBAaSmMoAzjnnHMucObP9/fffVqFCBffhpwZsv//+u0VFRVmtWrUsT548p9Rz4PDhw/bXX3/Z7t27XYq2f9Clx9Tsbc+ePW7fhQoVOuncsmTJ4p5TpkwZV8+tGvA5c+a489L+8ubNG9xGTeI2bdpkmTJlsnLlylmNGjXc9qH7zJYtm9tniRIlrHr16knyWiJ9mbt6p/WbuMIWrd9uWbLlsMGjfrT7br/BPTZt2rTUPj0AAAAAcSAwkMQefvhhK1y4sP3zzz9WsWJFmzlzpv3vf/+z5557LlgacOutt1qlSpVcs7U1a9bYl19+aY0bN461H21z9913u54DSsn20rI1gL/lllssZ86cbhC+ceNG+/rrr11Dt3nz5tnNN9/sGr0pIKDbAwYMsBtuuCF4bgpCqJZbgQYFHR5//HE3uNdgf+fOnS7YMH/+fCtYsGCwW/zcuXPduSrQER0d7Z6vY3j7LFasmK1du9YFMBRIuPfee11zOURWUKDNgFlqMGDHA2Z56t1g99/bxVavXG6lC+S0/v37u+cpGAYAAAAgbaHHQDLQwFsz+j///LObKX355ZfdYFuz+XfeeWewKdvs2bNdk7b27dvbsWPHYu3j008/dTP1/kCB9tm2bVsXGNAgXQN0dXrXfrW9Ag4alCsgoGNreTjt31siTjSw17Y//fSTvf322/b000/bAw88YBMnTnRZDApqDBs2LPh8dY3Xfr755htbsmSJlS5d2vr27RvrXDXYW7hwoY0dO9a+//57e/311905IXIoU8ALCki+i9pawaYd7NsJM2zz5s02dOhQd7+XHaMVCRTM8jRp0sQFy/xCnwMAAAAgeZAxkAzuuOMOy5Url/taqfdKz9fsvMoLNMOvwbunW7du9sILL7gMA6Xkx6V27dpujXc9z1viTVQOoI9Fixa5hm9FixZ1A3mPAgYatDds2NDdvv766915eOeWNWtWt6ycN8A///zzXRaDn9aUX758ue3bt89lByiDILRpnFdeUKdOHXdMfZ/KIEBkWLI5JhgUkBOH91uuKpdYwehW9lLvFjZy5EiXxVKyZEn3uP93WJ566qmT9hn6HAAAAADJg8BAMghttKbbasimDw3KVQYQ+lwNuuPTrl07V5ag7b2gg596Cmhgr6Xe/C699FI3+PfkyJEj+LX6Bqg3gD7771PZgLfs3G233eYyE7xeCCoZ8PcYCLdP8faByFC5eLRt27vNTvx/cODwhiW27/exVrJRC3vhhVkui+TJJ5+klAAAAABIgwgMJGHTNc2art15wEb/NMHN0t9zzz0upX/KlCkuTVoZARq8q4xAPQWUnq+SAQ32E0q9VymBBukalGugrnXetV+VACio0KZNGzfI1yyrZu0nT55sEyZMsJiYmFhBB832HzhwILh83NGjR61Hjx72zjvvuNvqM6C15EVZAprpHTJkiGssqMCAPpYuXRrc3/r1612GgWrIFy9eHEz9VtnBRx995IILKp8477zzgttogKgyCX0vasyoUgplOvizKO677z6bOnWq2+e5557reiz4AxxIW7o3q2jTVmy3TBZwwYHcFWq7r0scWW1bt+a1ESNGuN9ZAAAAAGkPgYEkbrq2//AxG/fTT5bp2EH77LPPXEZAgQIFbMyYMa7WXwN89QgoW7asG2ArIFCvXj1r0aKFDR8+PM7jKIBwzTXX2PPPP+96CVSrVs31BFBqv+qzVZ6gRoB6jgIQGshXqVLFDdBVWvDEE08EZ/TVGNALDCjtf+DAgW4grgG4ShUOHjzoHtNgXUELPXbFFVe4UgX1SvDXgu/atcveeust69ixoytpeOaZZ9z9amqogIBKHC688EJXjuCtkKASBq1woKCEgiQqX1AAQK+TKBChHggqcVCTRO1f36saKSJtqlO+oI3s0iAYIFMGQY+7u1vtcv82sQQAAACQdhEYSOKma/pUsFkH2/nz+65Rn4IAmpHfsmWLm03XgL148eJuEK/HNNOvwfwrr7zi7rvpppti1eY3a9Ys1m01LtSAvUOHDnbddddZ165drWXLlm4wryCDBt3arwbVGpD/8MMPrmmhBvaadddz+/Xr5wbqyl7QrL0aGmq1BAUGVJJwySWXuGOtW7fOLWV49dVXu5l/BSS0/2+//TZ4PgocKJNB5+8FGpQRoEwDL3tAM//KctD36vUk8CirQuc6ePBge/DBB4P3d+/e3e6//373tfZz++23ExhIB8GBoR3qpfZpAAAAADhFBAaSuOmaBDJlMcuU2d588003EJe8efO6WXKl6RcpUsQN9v0ZAnqeygB69+4d7Nwuffr0OfmHliWL25e/yaD6FuhDA3P1INDsu7IFHnroIVfvrwG/UvQ1A68MBQ3U8+XLZ1deeaVL8VZ2gwbfCgZopQL5448/3HH8qxQoY0CDeJUn6DxVvuAN+EVZA8pU8HeT17KKWqnBs2HDBpdavnr1ahfQ0Gc9x69u3brBrxVg8W8PAAAAAEg6BAaSuOma39/rdti/YYF/aUZfjfo0eD9y5Eis5+oxpfknpo5e+/DS/UNp++zZs7uVEPwuuugiFwgQlS14gQF93bx5c5d5oKwBBQ704R0nMefpb14Y7rYo40C0WoGyDhSQuOCCC1wQQ30K/EsqxrUPAAAAAEDSY/SVBE3XlJIf9f+3c5avZVmii6i6wJ54vb/rQSBarlDLDWq2vn79+rZ161bXHNCjWXjdr0F9QrT0oJoK+jMGVBqgmXgFADR414y9Sgf0ofp/lR94NfwKBqhpoYID+lq1/8pgUO8B3fac6XmGo+aHymzQflRioaUddQwAAAAAQOogYyCJmq51/mSu7Tpw1Ao07RB87FjMNrusWRO7+ILKrpmeBt6lSpVyj7322muuR4AG4uo/oHR69QNIDKXdf/jhh67PgD6rwaFWBvjxxx9d/4JBgwa5fWtGXsEANe7TsoXqFSDKJvAyAbxGgiplePXVV+2xxx4LHkcNEs/kPMNR3wOVNuizViT47bffYi13CAAAAABIWVEBL8c7jdLMuFLeVSMfHR1taVX9PuNtS8x/Sw6uffNGK9bmBSsUndOebFLIdd73L9knGmRrBl21+soC8H9/qutXir9Xex96WzTTPmfOHJexoIaBChD4VwvQY3r9ateubWeffXasY3/33Xdu5t7rgaDVCJRFcPPNN5/0Osd3nkOHDrXLL7/c9U3wMhfUYFHBBI9WZFBGgnoPiM5J2QqHDh1yAQItkahSAq/pYeg+9b2MGjXKZT8AAAAAQHKLSSfj0KRCYCCJtB80x35d/l+vAQUGit/ygrW8pDGd2gEAAAAgHYmJsMAAPQaSuNdApihf1CUqyno0r5hUhwAAAAAAIMkRGEjiXgONKxWxYtHZreHtj9jQ+6+02uUKJtUhAAAAAABIcpQSAACQAWzatMn+/vvvWKvLJIU///zTZcCpVw4AAJEihlICAACQ3syePdvuvvvuU9pGTWzHjRsX73P69+9vAwYMOMOzAwAAaRmlBAAARKgNGzbYl19+mdqnAQAAUhmBAQAAIlStWrXso48+Su3TAAAAqYzAAAAAGcjRo0dt/vz5Nn36dDt06FCsHgTjx4+3Y8eO2YIFC2zixIlhSwkCgYB7/Ndff7W9e/eGPYb2NWHCBNfTQM8HAADpW5bUPgEAAJA0NJBv1KiRZcuWzbZt22YnTpywn376yc4++2zXg6Br165WoUIFy5Ili2smeOTIEevUqZOtX78+GFS47rrrbO7cuVa1alVbvXq1FS5c2OrWrRs8xkMPPWSDBw+22rVr28qVK61SpUr27bffWs6cOfkxAgCQTpExAABABqEMgG7durnZ/kWLFlmNGjXcQN7/+GOPPWZTp061d99996TtP/zwQ1u8eLEtWbLEZQQom2DhwoXBx4cNG2ZfffWVe/yXX36xpUuXumDCW2+9lWLfIwAASHpkDAAAkEHkzZvX2rVr577OlCmTW6VAGQAezf5fddVVcW6vYMCtt95q+fPnd7crVqxorVq1Cj7+/fffW82aNW3GjBnB+/ScKVOmWO/evZPpuwIAAMmNwAAAABlE7ty5LSoqKng7T548dvDgQTt+/Li7nS9fvni337dvn9vGz397165druxgyJAhsZ6jsgMAAJB+ERgAACAdm7t6p/WbuMJmTvzTNm/ZYt9OmWfXXlzbPTZt2jQ799xzLXPmzInalwb4alroUUBh1qxZwawBrWKgXgLqKeCnfgYAACD9IjAAAEA6Dgq0GTBLSwnY3gNHLSpzNmvT5mZ79MEHLOfxfdanTx/7+OOPE72/Bx54wPUluOSSS+yff/6xnTt3uh4C6ifw4osv2qOPPuoCDUWLFnXPUUmBVj545JFHbP/+/fb111+7rAM1QHzttdesePHibr9qcqjt43q8Y8eOLtthx44dbp8qidDjap741FNP2caNG61FixbWv39/y5UrV7K9ngAARCqaDwIAkE4pU0BBgeMBs8x5Clruas2sUKv77Itxv7oVA0aNGmU333yze26JEiWsZcuWsbYvVqyYtW7dOni7fPny9uqrr9rMmTNdAOCVV15x2yxbtsyVJBQsWNBeeOEFlyGgpoTNmjWzQYMGueULR44caR999JFbElHP1X69EgYFFOJ7XEEFPaZ+CMpyuPzyy915v/HGG24FBC2tqJUS+vXrl6KvLwAAkSIqkMYXII6JiXE1kXv27LHo6OjUPh0AANKM+n3G25aYwyfdXyw6u83u3eK09nnttdcGgwKeKlWq2PXXX++CAuov8PDDD9vmzZvdsoe6jFAfghEjRgQb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ISFSrVo19hackpKSJDIyUk6dOiU1a9Y0PyPA7ezZs0f27t0rpUuXlrp164qnJ+ds4To0H4TbGDBggEyZMkXuu+8+SUhIMAd6OmvBkCFDXL1pcGNLly6Vp556SsqUKSNBQUESFRUl06ZNkwYNGrh60+DmTp8+LfXr15cjR47IjBkz5IknnnD1JsFNLVq0SAYPHmxCR/0Cv3btWmncuLF88803kj9/fldvHlwsNjZWWrdubX6X1KhRQ3799VfznWbMmDGu3jS4qW3btkmfPn3kwoULJkT6448/pEiRIrJgwQIJDg529ebBooil4BY2bNggkyZNksWLF8uSJUskIiJCJk6cKG+88YbExMS4evPgpjRl79Spk/nC/vvvv5s/qD///LM5cwPcik7I8+STT5ov70B6qgU0hNy0aZN8//33snPnTtm4caOMHj2anQd588035dy5c+bnYtmyZfLjjz/K2LFjZcWKFewdpCkuLk4++ugj2bVrl/mdot9nChYsKC+88AJ7DC5DMAC3oBUCKnlKWrFiRfHw8HCuA1J7//33TaXAq6++6lxWsmRJCQsLY2fhlt577z0TIL300kvsKdzWww8/LBUqVHDe12FuWjGwZcsW9p7Facg4c+ZM6d27t/j5+ZllTZs2NVVrX331las3D25Kf38kr2z08fGR9u3b8zsFLkWPAbgF/SOqJVXdunWTXr16mbHin3zyiYwYMULKli3r6s2Dm/rll1/kwQcflLNnz5rSTX9/f7nnnnukQIECrt40uLH169fLBx98YM7+avgIZFR8fLysW7dOnn76aXaexR07dsyUg2tfgeRq1arFQR4yRCtMUv8cAdmJYABZQs/EzZ0795aP0TMuzZo1c97X5PSnn36S//73v6ZKQEs3a9euzSdkIVpKp0MCbhciOcIiHSN+8OBBM078rrvukkOHDsn58+fNuF9N42ENWuKtX8xvJm/evNK5c2dz22azyeOPPy4ff/yxGSt+/fr1bNxSuAsNE7Xk+1a0uWCdOnXSXNevXz9zpvjll1/Ooi1ETuovoDSYTq5YsWK3/L0EJKfDClavXm0ugKsQDCBL6EH9d999d8vHaJruCAY0ENCKAT3r27BhQ7NMD+70y7x2DK9atSqflAXs37//tj83Ws7rCAby5ctnmlTqz4g2HtQv6tpATpsRahNCWOcsy9GjR2+6XsdtOoKBd955xzSQ0/Bx9uzZzn4Ueva3RIkS0qpVq2zbbriOBoi3+13ToUOHNIOBV155xYwJ1p87HboEa9MScHXx4sUUy/W+/o0Cbkeb3+qQyP/85z/O78CAKxAMIEvkyZPHfOlOr1WrVkm5cuVS/ELUL/J6oKfpKcGANbRp08Zc0qtSpUrmbLCGAkrLwvXnZtasWeYsjmO8J3J/v4CM/Mxo13DHQaH+jlE6rEADA4IBa9Au4Bn5G+WgX96nTp1qqg102BKg3128vb3NjASpp1/WXknArTj6U3z55Zemmg1wJZoPwi3ogZ3O/atncZKXlWvlAT0GcKszelplkLwcXDv8aiDg6+vLjkOaJeB6QOi46Jcy1b9/f6YWwy299tpr8sUXX5hQQIcvAY6KgebNm5sqR4czZ86Y2ZXatWvHTsJNff3116avloaNPXr0YE/B5TzsjtMlgAvpuF89+6IHc88995xpPjhhwgQJCAgwDeY0jQdSu3TpkjRq1EhKlSoljz32mBw4cMA0lRs/frw5AARuR0MlrXDSUk4dhgKk5d1335XXX3/dTI0aGhrqXK7jylu2bMlOszidnUL73+j0ufo3SQMkrWDT4ZGOoQZAcjqEtm3btvLQQw9Jly5dUqyjcgCuQjAAt6Hj8bSUSseLaxCgQUHPnj1NqThwq5+bzz77TLZt22bG+zq+mAHpoT0GunfvLi+++KL5Yg+k5cMPPzR9KNIamjJy5Eh2GkyVowYCWv2oPZQ0nNb+JkBaFi5caIY9puVOhjkBmYFgAAAAAAAAC6PHAAAAAAAAFkYwAAAAAACAhREMAAAAAABgYQQDAAAAAABYGMEAAAAAAAAWRjAAAAAAAICFEQwAAAAAAGBhBAMAAAAAAFgYwQAAAAAAABZGMAAAAAAAgIURDAAAAAAAYGEEAwAAAAAAiHX9P4rhqDwcVmqfAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x900 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# Collect words from Google Analogy dataset\n",
    "SUB_CATEGORY = \": family\"\n",
    "\n",
    "# TODO7: Plot t-SNE for the words in the SUB_CATEGORY `: family`\n",
    "family_words = sorted({w for q in data[data[\"SubCategory\"] == SUB_CATEGORY][\"Question\"]\n",
    "                       for w in q.lower().split()})\n",
    "family_words = [w for w in family_words if w in my_wv.key_to_index]\n",
    "vectors = np.array([my_wv[w] for w in family_words])\n",
    "# t-SNE：把 100 維壓成 2 維。字只有幾十個，所以 perplexity 要調小（必須小於樣本數）。\n",
    "points = TSNE(n_components=2, perplexity=15, random_state=42, init=\"pca\").fit_transform(vectors)\n",
    "plt.figure(figsize=(12, 9))\n",
    "plt.scatter(points[:, 0], points[:, 1], s=15)\n",
    "for (x, y), w in zip(points, family_words):\n",
    "    plt.annotate(w, (x, y), fontsize=9)\n",
    "\n",
    "\n",
    "plt.title(\"Word Relationships from Google Analogy Task\")\n",
    "plt.show()\n",
    "plt.savefig(\"word_relationships.png\", bbox_inches=\"tight\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "231bfb89",
   "metadata": {},
   "source": [
    "Running environment: Local — Windows 11 (10.0.26200), CPU: Intel Core i7-11800H (8 cores / 16 threads), RAM 16 GB\n",
    "\n",
    "Python version: 3.12.3\n",
    "\n",
    "> 說明：除了附出處連結的外部資料（GloVe 規模、論文）與執行環境，以下數字都來自本筆記本的執行輸出（差值與平均字數由輸出數字相減或相除），括號內標出是哪一格的輸出，用 Jupyter 畫面左邊的執行序號表示（例如〔In [23]〕）。比較實驗一律先對照第 5 題 (a) 量到的雜訊範圍；標「（推論）」的是根據原理的解釋，沒有另外用實驗驗證。\n",
    "\n",
    "##### 1. Which embedding model do you use? What are the pre-processing steps? What are the hyperparameter settings? (5%)\n",
    "\n",
    "Answer:\n",
    "\n",
    "**模型**\n",
    "- Part II：`glove-wiki-gigaword-100`（Stanford GloVe，Wikipedia＋Gigaword 約 60 億字訓練，40 萬字、100 維、全部小寫；https://nlp.stanford.edu/projects/glove/ ）。\n",
    "- Part III：Gensim `Word2Vec`（Skip-gram, `sg=1`），用 20% Wikipedia 自己訓練。\n",
    "\n",
    "**抽樣**〔In [20]〕：以「篇」為單位，`random.seed(42)`，每篇擲一個亂數 `r`，`r < 0.2` 就留下，共 1,124,733 / 5,623,655 篇（20.00%）。同一個 `r` 同時產生 5%、10% 樣本，所以 5% ⊂ 10% ⊂ 20%，三份只差在資料量。直接串流讀取 11 個 `.gz` 檔，不解壓、不合併，記憶體裡只放一篇文章。\n",
    "\n",
    "**前處理**〔In [21]〕\n",
    "- 只保留 `[a-z]+` 的字。助教的資料已經是小寫、去標點、斷好字，所以這一步只刪掉 0.72% 的字（4,828,696 / 670,881,822）。\n",
    "- 字典最多保留 30 萬個最常見的字（`max_final_vocab=300000`）。\n",
    "- **刻意不移除停用詞**：考卷有 206 題含 NLTK 停用詞（family 86 題，如 he/she/his/her；currency 58 題，如 Korea won 的 won）〔In [35]〕，移除後這些題目必錯；老師上課講搜尋引擎建索引時也提到，移除停用詞「以前很重要，但現在一點都不重要也不會去做」，而且可能刪掉重要的東西（W2 01:39:50；投影片 W1 p47 \"Avoid to broke the semantics\"）；本作業的實驗結果也支持不刪。第 5 題 (b) 有實驗。\n",
    "- **刻意不做詞形還原**：語法類考的就是字形變化（bigger、biggest、cars、danced），還原成原形會讓答案消失。\n",
    "\n",
    "**超參數**：`vector_size=100`（與 GloVe-100 相同，方便比較）、`window=5`、`sg=1`、`negative=5`、`sample=1e-3`、`min_count=5`、`max_final_vocab=300000`、`epochs=5`、`workers=15`、`seed=42`。\n",
    "- 注意：因為設了 `max_final_vocab`，gensim 會自動把門檻往上調。20% 維基的實際門檻是出現 **30** 次以上才收進字典（`effective min_count 30`）；5%、10% 分別是 9、16〔In [21], In [31]〕。\n",
    "- `seed` 固定初始值，但多執行緒訓練的計算順序不固定，結果仍有小幅變動（第 5 題 (a)）。\n",
    "- 20% 維基處理後 666,053,126 字，訓練 37.9 分鐘，字典 299,405 字〔In [21]〕。\n",
    "\n",
    "**答題方式**：3CosAdd，`most_similar(positive=[b, c], negative=[a])`（gensim 會排除題目的 a、b、c 三個字）；題目先轉小寫；題目的字不在字典裡就算答錯（本次 0 題）。\n",
    "\n",
    "##### 2. What will the performance be like if you sample 5%, 10% and 20% of wiki text in TODO4? (10%, 3% for each)\n",
    "\n",
    "Answer:\n",
    "\n",
    "〔In [21], In [27], In [31]〕\n",
    "\n",
    "| | 5% | 10% | 20% | 5%→20% | 雜訊範圍* |\n",
    "|---|---|---|---|---|---|\n",
    "| 處理後字數 | 166,194,401 | 333,052,711 | 666,053,126 | | |\n",
    "| 實際字典門檻 | 9 | 16 | 30 | | |\n",
    "| 訓練時間 | 9.1 min | 19.7 min | 37.9 min | | |\n",
    "| **Overall** | 46.12 | 47.15 | **48.39** | +2.27 | 1.05 |\n",
    "| Semantic | 55.35 | 55.60 | 56.70 | +1.35 | 1.80 |\n",
    "| Syntactic | 38.45 | 40.13 | 41.48 | +3.03 | 1.26 |\n",
    "| family | 68.77 | 73.32 | 74.31 | +5.54 | 4.74 |\n",
    "| gram4-superlative | 17.02 | 22.37 | 24.33 | +7.31 | 2.76 |\n",
    "| gram2-opposite | 11.82 | 14.29 | 16.01 | +4.19 | 2.22 |\n",
    "| capital-common-countries | 81.82 | 76.48 | 77.87 | −3.95 | 2.77 |\n",
    "| OOV 題數 | 107 | 0 | 0 | | |\n",
    "\n",
    "\\* 雜訊範圍＝同樣用 5% 維基、只換亂數種子訓練 4 次，最高與最低的差（第 5 題 (a)〔In [34]〕）。差距的絕對值大於它，才當作真的有差。\n",
    "\n",
    "觀察：\n",
    "- **整體隨資料量上升，但幅度小**：資料每多一倍（5→10→20%），整體約多 1 分（+1.03、+1.24），訓練時間卻跟著加倍。整體 +2.27 大於雜訊 1.05，是可信的上升。\n",
    "- **語法類的上升明確，語意類加總不明確**：Syntactic +3.03（雜訊 1.26），最高級 +7.31、反義字首 +4.19 都超過雜訊；Semantic 加總只 +1.35，**小於雜訊 1.80，不能下結論**。語意類的五個小類都超過各自的雜訊，但方向不一：family +5.54、capital-world +2.98、currency +2.66 上升，capital-common-countries −3.95、city-in-state −1.86 下降，加總後互相抵消。（推論）biggest、worst、unaware 這類字形比較少見，需要更多出現次數才學得穩。\n",
    "- **5% 有 107 題 OOV，10% 以後沒有**：5% 的資料裡有些考題的字出現次數低於實際門檻（9 次），沒有收進字典。\n",
    "- capital-common-countries（−3.95）、city-in-state（−1.86）的下降超過雜訊，但雜訊只用 4 個種子、在 5% 量的，所以只說「語意類沒有隨資料穩定上升」，不推論成「資料多反而變差」。\n",
    "- 限制：雜訊是在 5% 量的，20% 的雜訊可能不同。\n",
    "\n",
    "##### 3. What is the performance for different categories or sub-categories when trained on different corpora? (15%)\n",
    "\n",
    "3.1. Present your results. (5%)\n",
    "\n",
    "Answer:\n",
    "\n",
    "語料：SemEval 2016/2017 Task 3 的論壇問答（Qatar Living 生活論壇）。為了把「資料量」與「內容種類」分開，另外從 5% 維基依序切出**同樣字數**（72,920,923 字，論壇是 72,919,300 字）的對照組；兩者用相同前處理與相同參數訓練〔In [27], In [28]〕。\n",
    "\n",
    "| | Wiki control | Forum | Forum − Wiki |\n",
    "|---|---|---|---|\n",
    "| **Overall** | **41.46** | 25.78 | −15.68 |\n",
    "| Semantic | 45.77 | 12.84 | −32.93 |\n",
    "| Syntactic | 37.87 | 36.53 | −1.34 |\n",
    "| capital-common-countries | 76.48 | 33.60 | −42.88 |\n",
    "| capital-world | 54.00 | 12.51 | −41.49 |\n",
    "| currency | 6.93 | 1.27 | −5.66 |\n",
    "| city-in-state | 33.81 | 2.92 | −30.89 |\n",
    "| family | 66.21 | 63.24 | −2.97 |\n",
    "| gram1-adjective-to-adverb | 10.28 | 13.10 | +2.82 |\n",
    "| gram2-opposite | 8.87 | 14.04 | +5.17 |\n",
    "| gram3-comparative | 53.08 | 64.94 | +11.86 |\n",
    "| gram4-superlative | 17.20 | 40.55 | +23.35 |\n",
    "| gram5-present-participle | 31.82 | 51.33 | +19.51 |\n",
    "| gram6-nationality-adjective | 76.55 | 21.70 | −54.85 |\n",
    "| gram7-past-tense | 40.96 | 33.78 | −7.18 |\n",
    "| gram8-plural | 36.26 | 41.97 | +5.71 |\n",
    "| gram9-plural-verbs | 32.99 | 41.49 | +8.50 |\n",
    "| OOV 題數 | 169 | 3,510 | |\n",
    "\n",
    "答案覆蓋率（四個字都在字典裡的比例）：capital-world 98.3% vs **48.6%**、currency 86.8% vs **39.0%**、city-in-state 100% vs 68.3%、family 100% vs 91.3%。\n",
    "\n",
    "為了排除「論壇字典比較小、很多字查不到」的影響，另外只算**四個字在兩本字典都查得到**的 15,684 題〔In [28]〕：Overall 42.80 vs 32.12、Semantic 52.80 vs 22.10、Syntactic 37.91 vs 37.01；論壇仍在 superlative（42.90 vs 18.28）、present-participle（51.33 vs 31.82）勝出，在 nationality（22.81 vs 77.12）、past-tense（33.78 vs 40.96）落後。\n",
    "\n",
    "判斷規則：論壇和對照組沒有重跑，所以借用第 5 題 (a) 在 5% 維基量到的各小類雜訊範圍，差距超過該小類的雜訊才判勝負（例如 family −2.97 小於雜訊 4.74，不判勝負；Syntactic −1.34 剛好超過雜訊 1.26：論壇略低，但差距很小）。\n",
    "\n",
    "3.2. Introduce the corpus you selected and explain what are the differences between the Wikipedia corpus and your corpus. (including data size, topic difference, structural difference … ) (5%)\n",
    "\n",
    "Answer:\n",
    "\n",
    "- **來源**：gensim-data 的 `semeval-2016-2017-task3-subtaskA-unannotated`（https://github.com/RaRe-Technologies/gensim-data ；SemEval-2016 Task 3, https://alt.qcri.org/semeval2016/task3/ ）。內容是卡達 Qatar Living 論壇的發問與留言，共 189,941 個討論串〔In [27]〕。只取標題、內文、每則留言三種文字，刪除 HTML 標籤與網址後，用與維基相同的規則斷詞（小寫、2～15 個字母），並刪掉少於 3 個字的段落，最後留下 2,118,254 段文字。\n",
    "- **資料量**：72,919,300 字，約是 20% 維基（666,053,126 字）的 1/9，所以另做同字數的維基對照組。字典大小：論壇 100,310 字、對照組 224,050 字〔In [28]〕。\n",
    "- **主題**：維基涵蓋歷史、地理、人物、科學；論壇集中在簽證、工作、薪水、租屋、購物等在卡達生活的問題。\n",
    "- **文體與結構**：維基是編輯校稿過的長篇說明文，20% 樣本平均每篇約 592 字（666,053,126 / 1,124,733）；論壇是短貼文，平均每段約 34 字（72,919,300 / 2,118,254），口語、問句多、錯字與縮寫多。例如論壇裡 salary 最像的字是 slary、salry、salery、sallary、salaray；visa 最像的是 rp、viza、iqama（卡達居留證）〔In [29]〕。\n",
    "\n",
    "3.3. Explain why the performance increases or decreases. (5%)\n",
    "\n",
    "Answer:\n",
    "\n",
    "在資料量相同的前提下，差異主要來自內容。下表是同一批字在兩份語料中每百萬字的出現次數〔In [30]〕：\n",
    "\n",
    "| 字 | Wiki control | Forum | Forum / Wiki |\n",
    "|---|---|---|---|\n",
    "| cheapest | 0.96 | 27.50 | 28.64 |\n",
    "| biggest | 37.26 | 59.97 | 1.61 |\n",
    "| best | 553.01 | 988.65 | 1.79 |\n",
    "| looking | 56.31 | 680.74 | 12.09 |\n",
    "| cheaper | 7.78 | 80.27 | 10.32 |\n",
    "| going | 104.22 | 914.05 | 8.77 |\n",
    "| better | 116.98 | 990.40 | 8.47 |\n",
    "| goes | 66.47 | 235.33 | 3.54 |\n",
    "| capital | 160.38 | 43.23 | 0.27 |\n",
    "| brazilian | 42.43 | 33.46 | 0.79 |\n",
    "| albanian | 13.37 | 0.75 | 0.06 |\n",
    "| illinois | 90.02 | 1.10 | 0.01 |\n",
    "\n",
    "- **語意類大幅落後**：論壇很少談世界首都、美國州名（capital 只有維基的 0.27 倍、illinois 0.01 倍）。很多答案根本不在論壇字典裡（capital-world 覆蓋率 48.6%）；而且就算只看兩邊都查得到的題目，論壇的 Semantic 仍只有 22.10 vs 52.80，代表這些字即使出現，也很少出現在「首都／國家」的前後文中，關係學不起來。\n",
    "- **比較級、最高級、-ing、第三人稱動詞反而勝出**：網友常寫 cheapest（28.64 倍）、looking（12.09 倍）、better（8.47 倍）、goes（3.54 倍）。（推論）這些字形在論壇中出現得更多、前後文更一致，所以字形關係學得比較好。但頻率不能解釋全部：biggest 只多 1.61 倍、best 1.79 倍，最高級卻大贏 +23.35；brazilian 在論壇也有維基的 0.79 倍，國籍類卻大輸 −54.85。（推論）關鍵可能不只是單字出現次數，而是「國家–國籍」「原級–最高級」這種成對關係有沒有在同樣的前後文裡反覆出現。另一個可能的因素是論壇字典只有對照組的一半大，干擾的候選字比較少；排除查不到的題目後論壇仍在 superlative、present-participle 勝出，但字典大小的影響沒有被完全排除。\n",
    "- **錯字變成「最像的字」**：錯字與正確字出現的前後文高度相似，而詞向量是用前後文學出來的，所以 slary 成了 salary 的近鄰。這也呼應投影片 W1 p94 \"Vector search is not robust to typos\"。\n",
    "- 結論：**語料的主題與文體決定詞向量學到哪些關係**——想讓某類關係學好，語料裡就要有大量該類的用法（投影片 W1 p93 \"What vectors should I use? It depends.\"）。\n",
    "- 限制：第 5 題 (a) 的雜訊是在 5% 維基量的，論壇與對照組沒有重跑；差距小於該小類雜訊的（例如 family −2.97）不下結論。\n",
    "\n",
    "##### 4. Select a few words and use their embeddings to retrieve the five most similar words. What do you observe?  (10%)\n",
    "\n",
    "Answer:\n",
    "\n",
    "挑了 7 個字，各有目的：king（考卷中的字）、cat（老師上課的例子）、apple 與 bank（一字多義）、good（看反義詞）、taiwan（專有名詞）、computer（一般名詞）〔In [32], In [33]〕。\n",
    "\n",
    "| 字 | GloVe | Wiki 20% |\n",
    "|---|---|---|\n",
    "| king | prince, queen, son, brother, monarch | nangklao, chlothar, queen, suryavarman, bodawpaya |\n",
    "| cat | dog, rabbit, cats, monkey, pet | rabbit, dog, sourpuss, mouse, pet |\n",
    "| apple | microsoft, ibm, intel, software, dell | blackberry, iphone, goldieblox, tvos, raspberry |\n",
    "| bank | banks, banking, credit, investment, financial | guaranty, savings, ameriprise, indymac, onewest |\n",
    "| good | better, sure, really, kind, very | sure, decent, lovely, bad, thankful |\n",
    "| taiwan | mainland, china, taiwanese, taipei, hong | taipei, china, guangdong, hainan, fujian |\n",
    "| computer | computers, software, technology, pc, hardware | computing, computers, software, mainframe, hardware |\n",
    "\n",
    "觀察：\n",
    "1. **冷門字效應**：Wiki 20% 的鄰居常是冷門字。king 的鄰居 nangklao（泰國國王）只出現 34 次、suryavarman 53 次、chlothar 76 次；bank 的 onewest 38 次、ameriprise 49 次〔In [33]〕——都只出現幾十次，在 30 萬字的字典裡屬於最冷門的一群（字典門檻是 30 次）。（推論）一個字只出現幾十次、而且幾乎都在國王或銀行的上下文裡，它的向量就被拉到 king、bank 旁邊。改成只在最常見的 5 萬字裡找，king 的鄰居變成 queen, throne, prince, reigned, ruler；bank 變成 savings, bancorp, banking, lenders, jpmorgan，合理得多。GloVe 的鄰居也比較「一般」。\n",
    "2. **反義詞很近**：good 的鄰居有 bad，similarity(good, bad) = 0.70。兩者出現在相似的前後文（\"a ___ movie\"），詞向量分不出正反。\n",
    "3. **一字多義被常見意思主導**：apple 前 15 名全是科技相關（blackberry, iphone, tvos, ipad, android…；raspberry 在這裡是 Raspberry Pi），similarity(apple, banana) = 0.41、(apple, fruit) = 0.37，遠低於 (apple, microsoft) = 0.65。bank 前 5 名都是金融義，但 similarity(bank, river) = 0.49 反而高於 (bank, money) = 0.40。（推論）河岸義可能沒有消失，而是和金融義混在同一個向量裡；不過 money 是很泛用的字，這組比較只是旁證。這是「一個字只有一個向量」的靜態詞向量的限制（投影片 W1 p60 正是用 bank 舉例；W2 p39 上下文詞向量才能解決）。\n",
    "4. **鄰居反映語料內容**：cat 的鄰居 sourpuss 只出現 64 次。回查訓練語料印出的前 5 處上下文〔In [33]〕，有 2 處是卡通角色名單（\"toon characters including … gandy goose sourpuss dinky duck …\"），其餘是字源說明、電視集名、樂團名。（推論）它只出現 64 次，向量容易被少數特定上下文（例如動物卡通角色名單）決定，因此靠近 cat。\n",
    "5. **taiwan 與 computer**：taiwan 在兩個模型的鄰居都是中國的地名與省份（taipei、china、guangdong、fujian），反映語料中的地理與歷史脈絡；computer 的鄰居兩邊都是同類詞（computers、software、hardware），是 7 個字裡最「乖」的一組——一般名詞、用法單一時，詞向量的表現最符合直覺。\n",
    "6. 兩個模型的 cosine 分數尺度不同，只比較各自的排名，不拿分數互相比大小。\n",
    "\n",
    "##### 5. … Anything that can strengthen your report.  (5%)\n",
    "\n",
    "Answer:\n",
    "\n",
    "**(a) 雜訊有多大**〔In [34]〕：同樣用 5% 維基、只換亂數種子訓練 4 次（seed 42, 1, 2, 3），Overall 在 46.05～47.10 之間（範圍 1.05），Semantic 範圍 1.80、Syntactic 1.26，小類範圍 1.50～4.74（family、comparative、present-participle 最大，約 4.7）。之後所有比較都用這個範圍判斷差距是否可信。\n",
    "\n",
    "**(b) 移除停用詞**〔In [35]〕：同一份 5% 維基，只差在有沒有移除 NLTK 停用詞。\n",
    "\n",
    "| | 保留 | 移除 | 差 | 超過雜訊？ |\n",
    "|---|---|---|---|---|\n",
    "| Overall | 46.12 | 45.25 | −0.87 | 否 |\n",
    "| Semantic | 55.35 | 55.41 | +0.06 | 否 |\n",
    "| Syntactic | 38.45 | 36.81 | −1.65 | 是 |\n",
    "| family | 68.77 | 53.95 | −14.82 | 是 |\n",
    "| gram9-plural-verbs | 37.82 | 26.55 | −11.26 | 是 |\n",
    "| gram3-comparative | 44.14 | 37.01 | −7.13 | 是 |\n",
    "| gram8-plural | 38.59 | 41.89 | +3.30 | 是 |\n",
    "| OOV 題數 | 107 | 284 | | |\n",
    "\n",
    "整體分數的變化在雜訊範圍內，但小類有明顯的此消彼長：family 大跌（he/she/his/her 被刪掉，題目必錯），plural-verbs 與 comparative 也下跌。（推論）停用詞（is、has、more、than…）是判斷字形的線索。只看整體分數會以為「刪不刪都沒差」。另外，`sample=1e-3` 本來就會隨機略過高頻字，效果和部分移除停用詞相似，可能也減小了整體差異。這支持不移除停用詞的決定。\n",
    "\n",
    "**(c) 超參數（5% 維基，一次只改一個）**〔In [36]〕\n",
    "\n",
    "| 設定 | Overall | Semantic | Syntactic | Overall 差 |\n",
    "|---|---|---|---|---|\n",
    "| 基準：Skip-gram, window 5, 100 維 | 46.12 | 55.35 | 38.45 | — |\n",
    "| CBOW (`sg=0`) | 52.58 | 58.60 | 47.58 | +6.46 |\n",
    "| `window=10` | 41.75 | 51.22 | 33.87 | −4.37 |\n",
    "| `vector_size=300` | 57.44 | 68.54 | 48.22 | +11.32 |\n",
    "\n",
    "三個 Overall 差距都遠大於雜訊 1.05。\n",
    "- **300 維**：只用 5% 資料就超過 100 維的 20%（48.39），city-in-state +25.78、capital-common-countries +13.64。在本設定下，向量維度的影響比資料量（5%→20%：+2.27）大。但只做了一次，而且老師提醒維度不是越大越好（「設一萬……效果不會比較好」，W3 01:22:17），也不和 GloVe-300 比較，所以不推論到其他設定。\n",
    "- **CBOW**：Overall、Semantic、Syntactic 都較好，語法類大幅領先（comparative +25.00、superlative +20.59）；但 14 個小類裡有 3 類較差，其中 nationality-adjective −1.81 超過雜訊。老師上課以 Skip-gram 為主（W3 01:12:12），原論文（Mikolov et al., 2013, https://arxiv.org/abs/1301.3781 ）也是 Skip-gram 語意類較好；這是「這份資料、這組參數」下的結果。\n",
    "- **window=10**：family −18.18、capital-common-countries −9.29。（推論）一般認為較大的視窗偏向「主題相關」而非「用法相似」；但語意類整體也下降，與這個說法不完全吻合，所以只當作可能的解釋。\n",
    "\n",
    "**(d) Top-k 命中率**〔In [37]〕：Wiki 20% 的 top-1 / 3 / 5 / 10 為 48.39 / 61.53 / 66.32 / 71.74（GloVe：63.11 / 73.68 / 77.73 / 82.01）。正確答案常排在第 2～3 名，呼應老師說的 queen「可能在前三名」。\n",
    "\n",
    "**(e) 錯題分析**〔In [38]〕：Wiki 20% 答錯 10,087 題，其中 0 題是 OOV，4,563 題（45.2%）的正確答案在第 2～10 名。錯法可以分成幾類：\n",
    "- 拼法變體：Argentina → argentinian（考卷答案 argentinean）、Belarus → belarusian（belorussian）、Slovakia → slovak（slovakian）——這些其實是考卷的拼法限制。\n",
    "- 方向相反：large → smaller（larger）、long → shorter（longer）——反義詞在向量空間中太近。\n",
    "- 同類選錯：Baghdad → syria（iraq）、Armenia → hryvnia（dram）、Cambodia → kyat（riel）。\n",
    "- 近親字：father → stepmother（mother）、groom → bridesmaid（bride）。\n",
    "- 被其他詞義帶走：great → britain（greater）、child → childbearing（children）。\n",
    "\n",
    "**(f) 換算答案的公式**〔In [39]〕：同一份 Wiki 20% 向量改用 3CosMul（Levy & Goldberg, 2014, https://aclanthology.org/W14-1618/ ），Overall 48.39 → 44.66，14 個小類全部下降。原因未驗證；（推論）可能與字典中大量冷門字有關（見第 4 題觀察 1）。\n",
    "\n",
    "**(g) PCA 與 t-SNE**〔In [40]〕：PCA 的縱軸只有微弱的性別傾向：he、his、king 在最上，mom、grandma、aunt 在下，但 she、her、queen 也在上半，dad、grandpa、husband 在下半，分不乾淨；t-SNE 則把每一對（boy/girl, groom/bride, dad/mom, king/queen）貼得很近、分群清楚。PCA 是線性投影，較能保留整體方向；t-SNE 是非線性，主要保留局部鄰居。\n",
    "\n",
    "**(h) 覆蓋率**〔In [41]〕：GloVe 與 Wiki 20% 在 14 個小類都是 100%，所以 Wiki 20% 的錯誤都不是「查不到字」造成的。\n",
    "\n",
    "##### 6. Generative AI Usage\n",
    "\n",
    "Answer:\n",
    "\n",
    "I used Claude (Anthropic) through Claude Code on my own computer for this assignment.\n",
    "- **Code**: All code added to the template was generated by Claude — TODO1–TODO7, the data-loading changes, the code for Question 3, all extra experiments below the report, and the section headings below the report. Every AI-generated code cell has a `# [Generative AI]` comment at the top.\n",
    "- **Experiment design**: The choice of the forum corpus, the same-size Wikipedia control, the noise measurement and the other extra experiments were proposed by Claude.\n",
    "- **Execution**: Claude ran the whole notebook on my computer (environment above). All experimental numbers and figures in this report come from the outputs of this notebook.\n",
    "- **Report**: The report text, including the analysis and tables, was written by Claude based on these outputs.\n",
    "- **What I did**: ⟦WHAT_I_DID⟧\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01a559c1",
   "metadata": {},
   "source": [
    "## Code For 3. What is the performance for different categories or sub-categories when trained on different corpora? (15%)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "8691fa4a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:28:55.763691Z",
     "iopub.status.busy": "2026-10-05T12:28:55.763691Z",
     "iopub.status.idle": "2026-10-05T12:32:57.783812Z",
     "shell.execute_reply": "2026-10-05T12:32:57.783812Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "GloVe (pre-trained): overall 63.11%  (OOV questions 0)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 20%: overall 48.39%  (OOV questions 0)\n"
     ]
    }
   ],
   "source": [
    "# Write your code here\n",
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 共用工具：用任何一份詞向量考一次試。\n",
    "# 每題一次拿前 10 名候選字，記下正確答案排第幾名（之後算 top-k、做錯題分析都用得到）。\n",
    "results, details, models = {}, {}, {}\n",
    "\n",
    "def evaluate(wv, name, method=\"add\", max_k=10):\n",
    "    sim = wv.most_similar if method == \"add\" else wv.most_similar_cosmul\n",
    "    ranks, preds, oov = [], [], 0\n",
    "    for q in data[\"Question\"]:\n",
    "        a, b, c, d = q.lower().split()\n",
    "        if all(w in wv.key_to_index for w in (a, b, c)):\n",
    "            cands = [w for w, _ in sim(positive=[b, c], negative=[a], topn=max_k)]\n",
    "            preds.append(cands[0])\n",
    "            ranks.append(cands.index(d) + 1 if d in cands else None)\n",
    "        else:\n",
    "            preds.append(None)\n",
    "            ranks.append(None)\n",
    "            oov += 1\n",
    "    hits = np.array([r == 1 for r in ranks])\n",
    "    res = {\"Overall\": hits.mean() * 100}\n",
    "    for col in [\"Category\", \"SubCategory\"]:\n",
    "        for v in data[col].unique():\n",
    "            res[v] = hits[(data[col] == v).values].mean() * 100\n",
    "    res[\"OOV questions\"] = oov\n",
    "    results[name], details[name] = res, {\"ranks\": ranks, \"preds\": preds}\n",
    "    print(f\"{name}: overall {res['Overall']:.2f}%  (OOV questions {oov})\")\n",
    "    return res\n",
    "\n",
    "def answer_coverage(wv):\n",
    "    # 每個小類裡，四個字全部都在字典裡的題目佔幾 %（答案不在字典裡，再聰明也答不對）\n",
    "    ok = data[\"Question\"].map(lambda q: all(w in wv.key_to_index for w in q.lower().split()))\n",
    "    return ok.groupby(data[\"SubCategory\"], sort=False).mean().mul(100).round(1)\n",
    "\n",
    "models[\"GloVe (pre-trained)\"], models[\"Wiki 20%\"] = model, my_wv\n",
    "_ = evaluate(model, \"GloVe (pre-trained)\")\n",
    "_ = evaluate(my_wv, \"Wiki 20%\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "33d80533",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:32:57.846506Z",
     "iopub.status.busy": "2026-10-05T12:32:57.846506Z",
     "iopub.status.idle": "2026-10-05T12:32:58.486234Z",
     "shell.execute_reply": "2026-10-05T12:32:58.486234Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "keys: ['RelComments', 'RelQuestion', 'THREAD_SEQUENCE'] | question keys: ['RELQ_DATE', 'RELQ_ID', 'RelQSubject', 'RELQ_USERNAME', 'RELQ_USERID', 'RelQBody', 'RELQ_CATEGORY']\n",
      "subject: Thailand:IT Minsitry blocks CNN; Facebook;\n",
      "first comment: have they blocked porn??? <img src=\"http://www.qatarliving.com/files/images/Da.gif\">\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 3 題：換一份「不是維基百科」的語料。\n",
    "# 選的是 SemEval 2016/2017 Task 3 的論壇問答：卡達生活論壇（Qatar Living）網友的發問與留言。\n",
    "# 出處：gensim-data https://github.com/RaRe-Technologies/gensim-data （資料集 semeval-2016-2017-task3-subtaskA-unannotated）\n",
    "#       SemEval-2016 Task 3: Community Question Answering, https://alt.qcri.org/semeval2016/task3/\n",
    "# 注意：gensim 幫這份資料附的讀檔程式用了舊版 smart_open 的寫法，新版會 ImportError。\n",
    "#       所以只用 gensim 下載（return_path=True 只回傳檔案位置），讀檔自己來：每一行是一個討論串的 JSON。\n",
    "import gensim.downloader, itertools, json\n",
    "from gensim.utils import simple_preprocess\n",
    "\n",
    "FORUM_PATH = gensim.downloader.load(\"semeval-2016-2017-task3-subtaskA-unannotated\", return_path=True)\n",
    "\n",
    "def iter_threads():\n",
    "    with gzip.open(FORUM_PATH, \"rt\", encoding=\"utf-8\") as f:\n",
    "        for line in f:\n",
    "            yield json.loads(line)\n",
    "\n",
    "def thread_texts(thread):\n",
    "    # 只拿真正的文字：發問標題、發問內容、每一則留言。使用者名稱、日期、編號都不要。\n",
    "    q = thread.get(\"RelQuestion\", {})\n",
    "    yield q.get(\"RelQSubject\") or \"\"\n",
    "    yield q.get(\"RelQBody\") or \"\"\n",
    "    for c in thread.get(\"RelComments\", []):\n",
    "        yield c.get(\"RelCText\") or \"\"\n",
    "\n",
    "first = next(iter_threads())\n",
    "print(\"keys:\", list(first.keys()), \"| question keys:\", list(first[\"RelQuestion\"].keys()))\n",
    "print(\"subject:\", first[\"RelQuestion\"].get(\"RelQSubject\"))\n",
    "print(\"first comment:\", first[\"RelComments\"][0][\"RelCText\"][:200])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "e8b757af",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:32:58.546655Z",
     "iopub.status.busy": "2026-10-05T12:32:58.546655Z",
     "iopub.status.idle": "2026-10-05T12:35:14.673546Z",
     "shell.execute_reply": "2026-10-05T12:35:14.673546Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "forum: 189,941 threads, 2,118,254 posts, 72,919,300 tokens\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki_sampled_5.txt: removed non-[a-z] tokens 1,211,749 of 167,406,150 (0.72%)\n",
      "5% wiki tokens: 166,194,401\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki control: 72,920,923 tokens\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 用跟維基百科一樣的規則前處理：先拿掉網頁語法和網址，再小寫、只留 2～15 個字母的英文字（WikiCorpus 的預設）。\n",
    "HTML_URL_RE = re.compile(r\"<[^>]+>|https?://\\S+|www\\.\\S+\")\n",
    "forum_tokens = forum_lines = n_threads = 0\n",
    "with open(\"forum_clean.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "    for thread in iter_threads():\n",
    "        n_threads += 1\n",
    "        for text in thread_texts(thread):\n",
    "            text = HTML_URL_RE.sub(\" \", text)\n",
    "            toks = [w for w in simple_preprocess(text, min_len=2, max_len=15) if TOKEN_RE.match(w)]\n",
    "            if len(toks) >= 3:\n",
    "                fout.write(\" \".join(toks) + \"\\n\")\n",
    "                forum_tokens += len(toks)\n",
    "                forum_lines += 1\n",
    "print(f\"forum: {n_threads:,} threads, {forum_lines:,} posts, {forum_tokens:,} tokens\")\n",
    "\n",
    "# 對照組：從維基 5% 裡依序拿文章，拿到「字數跟論壇一樣多」就停。\n",
    "# 這樣兩份資料一樣大，分數的差別就只剩「內容種類」造成的。\n",
    "n5 = preprocess_file(\"wiki_sampled_5.txt\", \"wiki_sampled_5_clean.txt\")\n",
    "print(f\"5% wiki tokens: {n5:,}\")\n",
    "ctrl_tokens = 0\n",
    "with open(\"wiki_sampled_5_clean.txt\", encoding=\"utf-8\") as fin, open(\"wiki_control_clean.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "    for line in fin:\n",
    "        if ctrl_tokens >= forum_tokens:\n",
    "            break\n",
    "        fout.write(line)\n",
    "        ctrl_tokens += len(line.split())\n",
    "print(f\"wiki control: {ctrl_tokens:,} tokens\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "4c0ba87d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:35:14.732911Z",
     "iopub.status.busy": "2026-10-05T12:35:14.732911Z",
     "iopub.status.idle": "2026-10-05T12:44:28.567664Z",
     "shell.execute_reply": "2026-10-05T12:44:28.567131Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on forum_clean.txt: 3.9 min, vocab 100,310, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_control_clean.txt: 3.9 min, vocab 224,050, effective min_count 5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Forum (same size): overall 25.78%  (OOV questions 3510)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki control (same size): overall 41.46%  (OOV questions 169)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki control (same size)</th>\n",
       "      <th>Forum (same size)</th>\n",
       "      <th>Wiki 20%</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>41.46</td>\n",
       "      <td>25.78</td>\n",
       "      <td>48.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>45.77</td>\n",
       "      <td>12.84</td>\n",
       "      <td>56.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>37.87</td>\n",
       "      <td>36.53</td>\n",
       "      <td>41.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>76.48</td>\n",
       "      <td>33.60</td>\n",
       "      <td>77.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>54.00</td>\n",
       "      <td>12.51</td>\n",
       "      <td>72.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>6.93</td>\n",
       "      <td>1.27</td>\n",
       "      <td>10.28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>33.81</td>\n",
       "      <td>2.92</td>\n",
       "      <td>35.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>66.21</td>\n",
       "      <td>63.24</td>\n",
       "      <td>74.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>10.28</td>\n",
       "      <td>13.10</td>\n",
       "      <td>15.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>8.87</td>\n",
       "      <td>14.04</td>\n",
       "      <td>16.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>53.08</td>\n",
       "      <td>64.94</td>\n",
       "      <td>49.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.20</td>\n",
       "      <td>40.55</td>\n",
       "      <td>24.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>31.82</td>\n",
       "      <td>51.33</td>\n",
       "      <td>31.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>76.55</td>\n",
       "      <td>21.70</td>\n",
       "      <td>80.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>40.96</td>\n",
       "      <td>33.78</td>\n",
       "      <td>43.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>36.26</td>\n",
       "      <td>41.97</td>\n",
       "      <td>41.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>32.99</td>\n",
       "      <td>41.49</td>\n",
       "      <td>40.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>169.00</td>\n",
       "      <td>3510.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki control (same size)  Forum (same size)  \\\n",
       "Overall                                           41.46              25.78   \n",
       "Semantic                                          45.77              12.84   \n",
       "Syntactic                                         37.87              36.53   \n",
       ": capital-common-countries                        76.48              33.60   \n",
       ": capital-world                                   54.00              12.51   \n",
       ": currency                                         6.93               1.27   \n",
       ": city-in-state                                   33.81               2.92   \n",
       ": family                                          66.21              63.24   \n",
       ": gram1-adjective-to-adverb                       10.28              13.10   \n",
       ": gram2-opposite                                   8.87              14.04   \n",
       ": gram3-comparative                               53.08              64.94   \n",
       ": gram4-superlative                               17.20              40.55   \n",
       ": gram5-present-participle                        31.82              51.33   \n",
       ": gram6-nationality-adjective                     76.55              21.70   \n",
       ": gram7-past-tense                                40.96              33.78   \n",
       ": gram8-plural                                    36.26              41.97   \n",
       ": gram9-plural-verbs                              32.99              41.49   \n",
       "OOV questions                                    169.00            3510.00   \n",
       "\n",
       "                               Wiki 20%  \n",
       "Overall                           48.39  \n",
       "Semantic                          56.70  \n",
       "Syntactic                         41.48  \n",
       ": capital-common-countries        77.87  \n",
       ": capital-world                   72.81  \n",
       ": currency                        10.28  \n",
       ": city-in-state                   35.51  \n",
       ": family                          74.31  \n",
       ": gram1-adjective-to-adverb       15.93  \n",
       ": gram2-opposite                  16.01  \n",
       ": gram3-comparative               49.10  \n",
       ": gram4-superlative               24.33  \n",
       ": gram5-present-participle        31.34  \n",
       ": gram6-nationality-adjective     80.49  \n",
       ": gram7-past-tense                43.85  \n",
       ": gram8-plural                    41.67  \n",
       ": gram9-plural-verbs              40.92  \n",
       "OOV questions                      0.00  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coverage: wiki control</th>\n",
       "      <th>coverage: forum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SubCategory</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>98.3</td>\n",
       "      <td>48.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>86.8</td>\n",
       "      <td>39.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>100.0</td>\n",
       "      <td>68.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>100.0</td>\n",
       "      <td>91.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>94.1</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>100.0</td>\n",
       "      <td>95.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               coverage: wiki control  coverage: forum\n",
       "SubCategory                                                           \n",
       ": capital-common-countries                      100.0            100.0\n",
       ": capital-world                                  98.3             48.6\n",
       ": currency                                       86.8             39.0\n",
       ": city-in-state                                 100.0             68.3\n",
       ": family                                        100.0             91.3\n",
       ": gram1-adjective-to-adverb                     100.0            100.0\n",
       ": gram2-opposite                                100.0            100.0\n",
       ": gram3-comparative                             100.0            100.0\n",
       ": gram4-superlative                              94.1            100.0\n",
       ": gram5-present-participle                      100.0            100.0\n",
       ": gram6-nationality-adjective                   100.0             95.1\n",
       ": gram7-past-tense                              100.0            100.0\n",
       ": gram8-plural                                  100.0            100.0\n",
       ": gram9-plural-verbs                            100.0            100.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy on questions whose 4 words are in BOTH vocabularies:\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki control (same size)</th>\n",
       "      <th>Forum (same size)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>questions used</th>\n",
       "      <td>15684.00</td>\n",
       "      <td>15684.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>42.80</td>\n",
       "      <td>32.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>52.80</td>\n",
       "      <td>22.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>37.91</td>\n",
       "      <td>37.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>76.48</td>\n",
       "      <td>33.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>62.03</td>\n",
       "      <td>25.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>11.26</td>\n",
       "      <td>3.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>36.34</td>\n",
       "      <td>4.28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>70.13</td>\n",
       "      <td>69.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>10.28</td>\n",
       "      <td>13.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>8.87</td>\n",
       "      <td>14.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>53.08</td>\n",
       "      <td>64.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>18.28</td>\n",
       "      <td>42.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>31.82</td>\n",
       "      <td>51.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>77.12</td>\n",
       "      <td>22.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>40.96</td>\n",
       "      <td>33.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>36.26</td>\n",
       "      <td>41.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>32.99</td>\n",
       "      <td>41.49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki control (same size)  Forum (same size)\n",
       "questions used                                 15684.00           15684.00\n",
       "Overall                                           42.80              32.12\n",
       "Semantic                                          52.80              22.10\n",
       "Syntactic                                         37.91              37.01\n",
       ": capital-common-countries                        76.48              33.60\n",
       ": capital-world                                   62.03              25.74\n",
       ": currency                                        11.26               3.64\n",
       ": city-in-state                                   36.34               4.28\n",
       ": family                                          70.13              69.26\n",
       ": gram1-adjective-to-adverb                       10.28              13.10\n",
       ": gram2-opposite                                   8.87              14.04\n",
       ": gram3-comparative                               53.08              64.94\n",
       ": gram4-superlative                               18.28              42.90\n",
       ": gram5-present-participle                        31.82              51.33\n",
       ": gram6-nationality-adjective                     77.12              22.81\n",
       ": gram7-past-tense                                40.96              33.78\n",
       ": gram8-plural                                    36.26              41.97\n",
       ": gram9-plural-verbs                              32.99              41.49"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "forum_model = train_w2v(\"forum_clean.txt\")\n",
    "ctrl_model = train_w2v(\"wiki_control_clean.txt\")\n",
    "models[\"Forum (same size)\"], models[\"Wiki control (same size)\"] = forum_model.wv, ctrl_model.wv\n",
    "_ = evaluate(forum_model.wv, \"Forum (same size)\")\n",
    "_ = evaluate(ctrl_model.wv, \"Wiki control (same size)\")\n",
    "\n",
    "cols = [\"Wiki control (same size)\", \"Forum (same size)\", \"Wiki 20%\"]\n",
    "display(pd.DataFrame({k: results[k] for k in cols}).round(2))\n",
    "# 答案覆蓋率：題目四個字都在字典裡的比例。覆蓋率低 = 很多題連答的機會都沒有。\n",
    "display(pd.DataFrame({\"coverage: wiki control\": answer_coverage(ctrl_model.wv),\n",
    "                      \"coverage: forum\": answer_coverage(forum_model.wv)}))\n",
    "\n",
    "# 公平一點：只算「四個字在兩本字典裡都查得到」的題目，排除「字典裡沒有這個字」的影響。\n",
    "both = data[\"Question\"].map(lambda q: all(w in forum_model.wv.key_to_index and w in ctrl_model.wv.key_to_index\n",
    "                                          for w in q.lower().split())).values\n",
    "fair = {}\n",
    "for name in [\"Wiki control (same size)\", \"Forum (same size)\"]:\n",
    "    hits = np.array([r == 1 for r in details[name][\"ranks\"]])\n",
    "    row = {\"questions used\": int(both.sum()), \"Overall\": hits[both].mean() * 100}\n",
    "    for col in [\"Category\", \"SubCategory\"]:\n",
    "        for v in data[col].unique():\n",
    "            m = (data[col] == v).values & both\n",
    "            row[v] = hits[m].mean() * 100 if m.sum() else float(\"nan\")\n",
    "    fair[name] = row\n",
    "print(\"Accuracy on questions whose 4 words are in BOTH vocabularies:\")\n",
    "display(pd.DataFrame(fair).round(2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "58d7012b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:44:28.631411Z",
     "iopub.status.busy": "2026-10-05T12:44:28.631411Z",
     "iopub.status.idle": "2026-10-05T12:44:28.676426Z",
     "shell.execute_reply": "2026-10-05T12:44:28.675914Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>word</th>\n",
       "      <th>corpus</th>\n",
       "      <th>top 5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>visa</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>visas, passport, bdtc, passports, zwartendijk</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>visa</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>rp, viza, iqama, residance, vissa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>salary</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>salaries, remuneration, wages, repayment, paid</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>salary</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>slary, salry, salery, sallary, salaray</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>doha</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>qatar, manama, abbasiyyin, dhabi, dubai</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>doha</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>qatar, doah, qata, qatat, qutar</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>family</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>father, relatives, phyllanthaceae, grandparents, parents</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>family</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>familly, fmaily, rescidence, pernament, husbant</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>king</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>queen, prince, monarch, harthacnut, eystein</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>king</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>queen, ypsilanti, edsel, bhumibol, edshel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>paris</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>fontainebleau, marseille, bercy, brussels, reims</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>paris</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>amsterdam, cancun, france, bangkok, london</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>computer</td>\n",
       "      <td>Wiki control (same size)</td>\n",
       "      <td>computers, software, mainframe, hardware, computing</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>computer</td>\n",
       "      <td>Forum (same size)</td>\n",
       "      <td>soundcard, desktop, pc, computers, hardware</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        word                    corpus  \\\n",
       "0       visa  Wiki control (same size)   \n",
       "1       visa         Forum (same size)   \n",
       "2     salary  Wiki control (same size)   \n",
       "3     salary         Forum (same size)   \n",
       "4       doha  Wiki control (same size)   \n",
       "5       doha         Forum (same size)   \n",
       "6     family  Wiki control (same size)   \n",
       "7     family         Forum (same size)   \n",
       "8       king  Wiki control (same size)   \n",
       "9       king         Forum (same size)   \n",
       "10     paris  Wiki control (same size)   \n",
       "11     paris         Forum (same size)   \n",
       "12  computer  Wiki control (same size)   \n",
       "13  computer         Forum (same size)   \n",
       "\n",
       "                                                       top 5  \n",
       "0              visas, passport, bdtc, passports, zwartendijk  \n",
       "1                          rp, viza, iqama, residance, vissa  \n",
       "2             salaries, remuneration, wages, repayment, paid  \n",
       "3                     slary, salry, salery, sallary, salaray  \n",
       "4                    qatar, manama, abbasiyyin, dhabi, dubai  \n",
       "5                            qatar, doah, qata, qatat, qutar  \n",
       "6   father, relatives, phyllanthaceae, grandparents, parents  \n",
       "7            familly, fmaily, rescidence, pernament, husbant  \n",
       "8                queen, prince, monarch, harthacnut, eystein  \n",
       "9                  queen, ypsilanti, edsel, bhumibol, edshel  \n",
       "10          fontainebleau, marseille, bercy, brussels, reims  \n",
       "11                amsterdam, cancun, france, bangkok, london  \n",
       "12       computers, software, mainframe, hardware, computing  \n",
       "13               soundcard, desktop, pc, computers, hardware  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 同一個字，在論壇和維基（一樣大小）學到的鄰居差在哪\n",
    "rows = []\n",
    "for w in [\"visa\", \"salary\", \"doha\", \"family\", \"king\", \"paris\", \"computer\"]:\n",
    "    for name in [\"Wiki control (same size)\", \"Forum (same size)\"]:\n",
    "        wv = models[name]\n",
    "        rows.append({\"word\": w, \"corpus\": name,\n",
    "                     \"top 5\": \", \".join(x for x, _ in wv.most_similar(w, topn=5)) if w in wv.key_to_index else \"(not in vocab)\"})\n",
    "pd.set_option(\"display.max_colwidth\", 200)\n",
    "display(pd.DataFrame(rows))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "b14f1ca1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:44:28.741167Z",
     "iopub.status.busy": "2026-10-05T12:44:28.741167Z",
     "iopub.status.idle": "2026-10-05T12:44:43.239542Z",
     "shell.execute_reply": "2026-10-05T12:44:43.239542Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki control (per 1M): 72,920,923 tokens\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Forum (per 1M): 72,919,300 tokens\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki control (per 1M)</th>\n",
       "      <th>Forum (per 1M)</th>\n",
       "      <th>forum / wiki</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>better</th>\n",
       "      <td>116.98</td>\n",
       "      <td>990.40</td>\n",
       "      <td>8.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>best</th>\n",
       "      <td>553.01</td>\n",
       "      <td>988.65</td>\n",
       "      <td>1.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cheaper</th>\n",
       "      <td>7.78</td>\n",
       "      <td>80.27</td>\n",
       "      <td>10.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cheapest</th>\n",
       "      <td>0.96</td>\n",
       "      <td>27.50</td>\n",
       "      <td>28.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>bigger</th>\n",
       "      <td>13.12</td>\n",
       "      <td>53.58</td>\n",
       "      <td>4.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>biggest</th>\n",
       "      <td>37.26</td>\n",
       "      <td>59.97</td>\n",
       "      <td>1.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>looking</th>\n",
       "      <td>56.31</td>\n",
       "      <td>680.74</td>\n",
       "      <td>12.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>going</th>\n",
       "      <td>104.22</td>\n",
       "      <td>914.05</td>\n",
       "      <td>8.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>working</th>\n",
       "      <td>187.26</td>\n",
       "      <td>583.48</td>\n",
       "      <td>3.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>costs</th>\n",
       "      <td>43.99</td>\n",
       "      <td>77.13</td>\n",
       "      <td>1.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>goes</th>\n",
       "      <td>66.47</td>\n",
       "      <td>235.33</td>\n",
       "      <td>3.54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>wife</th>\n",
       "      <td>212.38</td>\n",
       "      <td>605.50</td>\n",
       "      <td>2.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>husband</th>\n",
       "      <td>104.85</td>\n",
       "      <td>418.87</td>\n",
       "      <td>3.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>he</th>\n",
       "      <td>5122.78</td>\n",
       "      <td>3669.63</td>\n",
       "      <td>0.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>she</th>\n",
       "      <td>1266.80</td>\n",
       "      <td>1885.25</td>\n",
       "      <td>1.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>capital</th>\n",
       "      <td>160.38</td>\n",
       "      <td>43.23</td>\n",
       "      <td>0.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>illinois</th>\n",
       "      <td>90.02</td>\n",
       "      <td>1.10</td>\n",
       "      <td>0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>albanian</th>\n",
       "      <td>13.37</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>brazilian</th>\n",
       "      <td>42.43</td>\n",
       "      <td>33.46</td>\n",
       "      <td>0.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>kwanza</th>\n",
       "      <td>0.19</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           Wiki control (per 1M)  Forum (per 1M)  forum / wiki\n",
       "better                    116.98          990.40          8.47\n",
       "best                      553.01          988.65          1.79\n",
       "cheaper                     7.78           80.27         10.32\n",
       "cheapest                    0.96           27.50         28.64\n",
       "bigger                     13.12           53.58          4.08\n",
       "biggest                    37.26           59.97          1.61\n",
       "looking                    56.31          680.74         12.09\n",
       "going                     104.22          914.05          8.77\n",
       "working                   187.26          583.48          3.12\n",
       "costs                      43.99           77.13          1.75\n",
       "goes                       66.47          235.33          3.54\n",
       "wife                      212.38          605.50          2.85\n",
       "husband                   104.85          418.87          3.99\n",
       "he                       5122.78         3669.63          0.72\n",
       "she                      1266.80         1885.25          1.49\n",
       "capital                   160.38           43.23          0.27\n",
       "illinois                   90.02            1.10          0.01\n",
       "albanian                   13.37            0.75          0.06\n",
       "brazilian                  42.43           33.46          0.79\n",
       "kwanza                      0.19            0.01          0.07"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 3 題補充證據：同樣的字，在兩份一樣大的教材裡各出現幾次（每 100 萬字）。\n",
    "from collections import Counter\n",
    "\n",
    "probe_words = [\"better\", \"best\", \"cheaper\", \"cheapest\", \"bigger\", \"biggest\", \"looking\", \"going\",\n",
    "               \"working\", \"costs\", \"goes\", \"wife\", \"husband\", \"he\", \"she\",\n",
    "               \"capital\", \"illinois\", \"albanian\", \"brazilian\", \"kwanza\"]\n",
    "wanted = set(probe_words)\n",
    "freq = {}\n",
    "for name, path in [(\"Wiki control (per 1M)\", \"wiki_control_clean.txt\"), (\"Forum (per 1M)\", \"forum_clean.txt\")]:\n",
    "    counts, total = Counter(), 0\n",
    "    with open(path, encoding=\"utf-8\") as f:\n",
    "        for line in f:\n",
    "            toks = line.split()\n",
    "            total += len(toks)\n",
    "            counts.update(t for t in toks if t in wanted)\n",
    "    print(f\"{name}: {total:,} tokens\")\n",
    "    freq[name] = {w: counts[w] / total * 1e6 for w in probe_words}\n",
    "table = pd.DataFrame(freq)\n",
    "table[\"forum / wiki\"] = table[\"Forum (per 1M)\"] / table[\"Wiki control (per 1M)\"]\n",
    "display(table.round(2))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ead0f6de",
   "metadata": {},
   "source": [
    "## Extra code for report question 2 (5% / 10% / 20%)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "dfee9c91",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T12:44:43.301335Z",
     "iopub.status.busy": "2026-10-05T12:44:43.301335Z",
     "iopub.status.idle": "2026-10-05T13:18:34.046319Z",
     "shell.execute_reply": "2026-10-05T13:18:34.045278Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wiki_sampled_10.txt: removed non-[a-z] tokens 2,417,608 of 335,470,319 (0.72%)\n",
      "10% wiki tokens: 333,052,711\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_5_clean.txt: 9.1 min, vocab 278,954, effective min_count 9\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5%: overall 46.12%  (OOV questions 107)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_10_clean.txt: 19.7 min, vocab 294,612, effective min_count 16\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 10%: overall 47.15%  (OOV questions 0)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 10%</th>\n",
       "      <th>Wiki 20%</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>46.12</td>\n",
       "      <td>47.15</td>\n",
       "      <td>48.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>55.35</td>\n",
       "      <td>55.60</td>\n",
       "      <td>56.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>38.45</td>\n",
       "      <td>40.13</td>\n",
       "      <td>41.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>81.82</td>\n",
       "      <td>76.48</td>\n",
       "      <td>77.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>69.83</td>\n",
       "      <td>71.07</td>\n",
       "      <td>72.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>7.62</td>\n",
       "      <td>9.58</td>\n",
       "      <td>10.28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>37.37</td>\n",
       "      <td>35.47</td>\n",
       "      <td>35.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>68.77</td>\n",
       "      <td>73.32</td>\n",
       "      <td>74.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>12.70</td>\n",
       "      <td>10.99</td>\n",
       "      <td>15.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>11.82</td>\n",
       "      <td>14.29</td>\n",
       "      <td>16.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>44.14</td>\n",
       "      <td>46.92</td>\n",
       "      <td>49.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.02</td>\n",
       "      <td>22.37</td>\n",
       "      <td>24.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>29.92</td>\n",
       "      <td>34.28</td>\n",
       "      <td>31.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>78.42</td>\n",
       "      <td>76.11</td>\n",
       "      <td>80.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>44.29</td>\n",
       "      <td>44.87</td>\n",
       "      <td>43.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>38.59</td>\n",
       "      <td>40.77</td>\n",
       "      <td>41.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>37.82</td>\n",
       "      <td>41.49</td>\n",
       "      <td>40.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>107.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 10%  Wiki 20%\n",
       "Overall                          46.12     47.15     48.39\n",
       "Semantic                         55.35     55.60     56.70\n",
       "Syntactic                        38.45     40.13     41.48\n",
       ": capital-common-countries       81.82     76.48     77.87\n",
       ": capital-world                  69.83     71.07     72.81\n",
       ": currency                        7.62      9.58     10.28\n",
       ": city-in-state                  37.37     35.47     35.51\n",
       ": family                         68.77     73.32     74.31\n",
       ": gram1-adjective-to-adverb      12.70     10.99     15.93\n",
       ": gram2-opposite                 11.82     14.29     16.01\n",
       ": gram3-comparative              44.14     46.92     49.10\n",
       ": gram4-superlative              17.02     22.37     24.33\n",
       ": gram5-present-participle       29.92     34.28     31.34\n",
       ": gram6-nationality-adjective    78.42     76.11     80.49\n",
       ": gram7-past-tense               44.29     44.87     43.85\n",
       ": gram8-plural                   38.59     40.77     41.67\n",
       ": gram9-plural-verbs             37.82     41.49     40.92\n",
       "OOV questions                   107.00      0.00      0.00"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 2 題：5%、10%、20%（助教說這題不用附程式，這裡附上供參考）\n",
    "n10 = preprocess_file(\"wiki_sampled_10.txt\", \"wiki_sampled_10_clean.txt\")\n",
    "print(f\"10% wiki tokens: {n10:,}\")\n",
    "for pct in [5, 10]:\n",
    "    m = train_w2v(f\"wiki_sampled_{pct}_clean.txt\")\n",
    "    models[f\"Wiki {pct}%\"] = m.wv\n",
    "    _ = evaluate(m.wv, f\"Wiki {pct}%\")\n",
    "display(pd.DataFrame({k: results[k] for k in [\"Wiki 5%\", \"Wiki 10%\", \"Wiki 20%\"]}).round(2))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f4e5782",
   "metadata": {},
   "source": [
    "## Extra code for report question 4 (most similar words)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "820e2535",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T13:18:34.118103Z",
     "iopub.status.busy": "2026-10-05T13:18:34.118103Z",
     "iopub.status.idle": "2026-10-05T13:18:34.281834Z",
     "shell.execute_reply": "2026-10-05T13:18:34.281834Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>word</th>\n",
       "      <th>model</th>\n",
       "      <th>top 5 (similarity)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>king</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>prince (0.77), queen (0.75), son (0.70), brother (0.70), monarch (0.70)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>king</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>nangklao (0.74), chlothar (0.72), queen (0.70), suryavarman (0.70), bodawpaya (0.70)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>cat</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>dog (0.88), rabbit (0.74), cats (0.73), monkey (0.73), pet (0.72)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>cat</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>rabbit (0.73), dog (0.72), sourpuss (0.72), mouse (0.71), pet (0.70)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>apple</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>microsoft (0.74), ibm (0.68), intel (0.68), software (0.68), dell (0.67)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>apple</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>blackberry (0.79), iphone (0.70), goldieblox (0.69), tvos (0.68), raspberry (0.68)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>bank</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>banks (0.81), banking (0.75), credit (0.70), investment (0.69), financial (0.68)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>bank</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>guaranty (0.77), savings (0.77), ameriprise (0.77), indymac (0.76), onewest (0.76)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>good</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>better (0.89), sure (0.83), really (0.83), kind (0.83), very (0.83)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>good</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>sure (0.71), decent (0.71), lovely (0.70), bad (0.70), thankful (0.70)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>taiwan</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>mainland (0.86), china (0.83), taiwanese (0.79), taipei (0.79), hong (0.77)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>taiwan</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>taipei (0.83), china (0.82), guangdong (0.82), hainan (0.79), fujian (0.79)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>computer</td>\n",
       "      <td>GloVe (pre-trained)</td>\n",
       "      <td>computers (0.88), software (0.84), technology (0.76), pc (0.74), hardware (0.73)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>computer</td>\n",
       "      <td>Wiki 20%</td>\n",
       "      <td>computing (0.83), computers (0.79), software (0.79), mainframe (0.77), hardware (0.74)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        word                model  \\\n",
       "0       king  GloVe (pre-trained)   \n",
       "1       king             Wiki 20%   \n",
       "2        cat  GloVe (pre-trained)   \n",
       "3        cat             Wiki 20%   \n",
       "4      apple  GloVe (pre-trained)   \n",
       "5      apple             Wiki 20%   \n",
       "6       bank  GloVe (pre-trained)   \n",
       "7       bank             Wiki 20%   \n",
       "8       good  GloVe (pre-trained)   \n",
       "9       good             Wiki 20%   \n",
       "10    taiwan  GloVe (pre-trained)   \n",
       "11    taiwan             Wiki 20%   \n",
       "12  computer  GloVe (pre-trained)   \n",
       "13  computer             Wiki 20%   \n",
       "\n",
       "                                                                        top 5 (similarity)  \n",
       "0                  prince (0.77), queen (0.75), son (0.70), brother (0.70), monarch (0.70)  \n",
       "1     nangklao (0.74), chlothar (0.72), queen (0.70), suryavarman (0.70), bodawpaya (0.70)  \n",
       "2                        dog (0.88), rabbit (0.74), cats (0.73), monkey (0.73), pet (0.72)  \n",
       "3                     rabbit (0.73), dog (0.72), sourpuss (0.72), mouse (0.71), pet (0.70)  \n",
       "4                 microsoft (0.74), ibm (0.68), intel (0.68), software (0.68), dell (0.67)  \n",
       "5       blackberry (0.79), iphone (0.70), goldieblox (0.69), tvos (0.68), raspberry (0.68)  \n",
       "6         banks (0.81), banking (0.75), credit (0.70), investment (0.69), financial (0.68)  \n",
       "7       guaranty (0.77), savings (0.77), ameriprise (0.77), indymac (0.76), onewest (0.76)  \n",
       "8                      better (0.89), sure (0.83), really (0.83), kind (0.83), very (0.83)  \n",
       "9                   sure (0.71), decent (0.71), lovely (0.70), bad (0.70), thankful (0.70)  \n",
       "10             mainland (0.86), china (0.83), taiwanese (0.79), taipei (0.79), hong (0.77)  \n",
       "11             taipei (0.83), china (0.82), guangdong (0.82), hainan (0.79), fujian (0.79)  \n",
       "12        computers (0.88), software (0.84), technology (0.76), pc (0.74), hardware (0.73)  \n",
       "13  computing (0.83), computers (0.79), software (0.79), mainframe (0.77), hardware (0.74)  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 4 題：挑字，各找 5 個最像的字。同時看現成的 GloVe 和自己訓練的 Wiki 20%。\n",
    "# 挑字的原則：一字多義（apple、bank）、反義詞（good）、專有名詞（taiwan）、一般名詞（cat、computer）、考卷裡的字（king）\n",
    "# 注意：兩個模型的 cosine 分數尺度不同，只能比「同一個模型內的排名」，不能拿分數互相比大小。\n",
    "probe = [\"king\", \"cat\", \"apple\", \"bank\", \"good\", \"taiwan\", \"computer\"]\n",
    "rows = []\n",
    "for w in probe:\n",
    "    for name in [\"GloVe (pre-trained)\", \"Wiki 20%\"]:\n",
    "        wv = models[name]\n",
    "        if w in wv.key_to_index:\n",
    "            rows.append({\"word\": w, \"model\": name,\n",
    "                         \"top 5 (similarity)\": \", \".join(f\"{x} ({s:.2f})\" for x, s in wv.most_similar(w, topn=5))})\n",
    "pd.set_option(\"display.max_colwidth\", 200)\n",
    "display(pd.DataFrame(rows))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "4cf48994",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T13:18:34.376973Z",
     "iopub.status.busy": "2026-10-05T13:18:34.375975Z",
     "iopub.status.idle": "2026-10-05T13:18:35.264063Z",
     "shell.execute_reply": "2026-10-05T13:18:35.264063Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "king -> [('nangklao', np.int64(34)), ('chlothar', np.int64(76)), ('queen', np.int64(92609)), ('suryavarman', np.int64(53)), ('bodawpaya', np.int64(77))]\n",
      "cat -> [('rabbit', np.int64(7844)), ('dog', np.int64(36766)), ('sourpuss', np.int64(64)), ('mouse', np.int64(13524)), ('pet', np.int64(9983))]\n",
      "apple -> [('blackberry', np.int64(1285)), ('iphone', np.int64(2800)), ('goldieblox', np.int64(33)), ('tvos', np.int64(102)), ('raspberry', np.int64(1710))]\n",
      "bank -> [('guaranty', np.int64(330)), ('savings', np.int64(8467)), ('ameriprise', np.int64(49)), ('indymac', np.int64(86)), ('onewest', np.int64(38))]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>word</th>\n",
       "      <th>top 5 among the 50k most frequent words</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>king</td>\n",
       "      <td>queen, throne, prince, reigned, ruler</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>cat</td>\n",
       "      <td>rabbit, dog, mouse, pet, mug</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>apple</td>\n",
       "      <td>blackberry, iphone, raspberry, ipad, android</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>bank</td>\n",
       "      <td>savings, bancorp, banking, lenders, jpmorgan</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>good</td>\n",
       "      <td>sure, decent, lovely, bad, thankful</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>taiwan</td>\n",
       "      <td>taipei, china, guangdong, hainan, fujian</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>computer</td>\n",
       "      <td>computing, computers, software, mainframe, hardware</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       word              top 5 among the 50k most frequent words\n",
       "0      king                queen, throne, prince, reigned, ruler\n",
       "1       cat                         rabbit, dog, mouse, pet, mug\n",
       "2     apple         blackberry, iphone, raspberry, ipad, android\n",
       "3      bank         savings, bancorp, banking, lenders, jpmorgan\n",
       "4      good                  sure, decent, lovely, bad, thankful\n",
       "5    taiwan             taipei, china, guangdong, hainan, fujian\n",
       "6  computer  computing, computers, software, mainframe, hardware"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "apple top 15: ['blackberry', 'iphone', 'goldieblox', 'tvos', 'raspberry', 'xelibri', 'iigs', 'visicalc', 'magix', 'airis', 'cloudflare', 'roxio', 'ipad', 'livescribe', 'android']\n",
      "similarity(apple, banana) = 0.41\n",
      "similarity(apple, fruit) = 0.37\n",
      "similarity(apple, microsoft) = 0.65\n",
      "similarity(bank, river) = 0.49\n",
      "similarity(bank, money) = 0.40\n",
      "similarity(good, bad) = 0.70\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "... of guard dog bushy doozy best friend and hero to tom tom ms lulu the pet psychic sourpuss owner sourpuss owner and friend of millie animals bip and bop two nutty squirrel ...\n",
      "... toon characters including fanny zilch mighty mouse heckle and jeckle gandy goose sourpuss dinky duck little roquefort the terry bears dimwit and luno terry pre existing c ...\n",
      "... k puck in hockey almost certainly from irish poc according to the oed puss as in sourpuss comes from irish pus pouting mouth rapparee an irish highwayman from ropaire sta ...\n",
      "... n year title role notes hangin in episode the princess and the pea today special sourpuss sal episode smiles murielle episode three monkeys of bah roghar part episode thr ...\n",
      "... ack flag discharge and flipper in few days before her th birthday her first band sourpuss played set at australia summersault festival where she met tim armstrong frontma ...\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 4 題補充證據\n",
    "# (1) Wiki 20% 的鄰居裡常有冷門字：印出每個鄰居在 20% 維基裡出現幾次（字典門檻見 TODO5 的 effective min_count）\n",
    "for w in [\"king\", \"cat\", \"apple\", \"bank\"]:\n",
    "    print(w, \"->\", [(x, my_wv.get_vecattr(x, \"count\")) for x, _ in my_wv.most_similar(w, topn=5)])\n",
    "\n",
    "# (2) 只在最常見的 5 萬個字裡找鄰居（restrict_vocab），冷門字就被排除\n",
    "rows = [{\"word\": w, \"top 5 among the 50k most frequent words\":\n",
    "         \", \".join(x for x, _ in my_wv.most_similar(w, topn=5, restrict_vocab=50000))} for w in probe]\n",
    "display(pd.DataFrame(rows))\n",
    "\n",
    "# (3) 一字多義：apple 的前 15 名鄰居，以及幾組相似度\n",
    "print(\"apple top 15:\", [x for x, _ in my_wv.most_similar(\"apple\", topn=15)])\n",
    "for a, b in [(\"apple\", \"banana\"), (\"apple\", \"fruit\"), (\"apple\", \"microsoft\"),\n",
    "             (\"bank\", \"river\"), (\"bank\", \"money\"), (\"good\", \"bad\")]:\n",
    "    print(f\"similarity({a}, {b}) = {my_wv.similarity(a, b):.2f}\")\n",
    "\n",
    "# (4) 回到教材查 cat 的鄰居 sourpuss 是什麼：印出前 5 處上下文\n",
    "found = []\n",
    "with open(\"wiki_sampled_20_clean.txt\", encoding=\"utf-8\") as f:\n",
    "    for line in f:\n",
    "        i = line.find(\" sourpuss \")\n",
    "        if i >= 0:\n",
    "            found.append(line[max(0, i - 80): i + 90].strip())\n",
    "            if len(found) == 5:\n",
    "                break\n",
    "for s in found:\n",
    "    print(\"...\", s, \"...\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41a53ade",
   "metadata": {},
   "source": [
    "## Extra code for report question 5 (anything that strengthens the report)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "593f1378",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T13:18:35.375035Z",
     "iopub.status.busy": "2026-10-05T13:18:35.375035Z",
     "iopub.status.idle": "2026-10-05T13:51:26.573483Z",
     "shell.execute_reply": "2026-10-05T13:51:26.571479Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% seed=1: overall 46.05%  (OOV questions 107)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% seed=2: overall 47.10%  (OOV questions 107)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% seed=3: overall 46.34%  (OOV questions 107)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>seed 42</th>\n",
       "      <th>seed 1</th>\n",
       "      <th>seed 2</th>\n",
       "      <th>seed 3</th>\n",
       "      <th>max - min</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>46.12</td>\n",
       "      <td>46.05</td>\n",
       "      <td>47.10</td>\n",
       "      <td>46.34</td>\n",
       "      <td>1.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>55.35</td>\n",
       "      <td>54.18</td>\n",
       "      <td>55.98</td>\n",
       "      <td>54.72</td>\n",
       "      <td>1.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>38.45</td>\n",
       "      <td>39.30</td>\n",
       "      <td>39.72</td>\n",
       "      <td>39.37</td>\n",
       "      <td>1.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>81.82</td>\n",
       "      <td>80.04</td>\n",
       "      <td>82.81</td>\n",
       "      <td>81.82</td>\n",
       "      <td>2.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>69.83</td>\n",
       "      <td>67.44</td>\n",
       "      <td>69.43</td>\n",
       "      <td>68.21</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>7.62</td>\n",
       "      <td>7.39</td>\n",
       "      <td>8.89</td>\n",
       "      <td>8.31</td>\n",
       "      <td>1.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>37.37</td>\n",
       "      <td>38.27</td>\n",
       "      <td>39.04</td>\n",
       "      <td>37.74</td>\n",
       "      <td>1.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>68.77</td>\n",
       "      <td>67.39</td>\n",
       "      <td>72.13</td>\n",
       "      <td>69.17</td>\n",
       "      <td>4.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>12.70</td>\n",
       "      <td>11.29</td>\n",
       "      <td>14.21</td>\n",
       "      <td>11.19</td>\n",
       "      <td>3.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>11.82</td>\n",
       "      <td>10.84</td>\n",
       "      <td>11.08</td>\n",
       "      <td>13.05</td>\n",
       "      <td>2.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>44.14</td>\n",
       "      <td>46.10</td>\n",
       "      <td>47.82</td>\n",
       "      <td>48.87</td>\n",
       "      <td>4.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.02</td>\n",
       "      <td>17.83</td>\n",
       "      <td>18.98</td>\n",
       "      <td>19.79</td>\n",
       "      <td>2.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>29.92</td>\n",
       "      <td>29.73</td>\n",
       "      <td>31.53</td>\n",
       "      <td>34.47</td>\n",
       "      <td>4.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>78.42</td>\n",
       "      <td>80.11</td>\n",
       "      <td>78.86</td>\n",
       "      <td>78.42</td>\n",
       "      <td>1.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>44.29</td>\n",
       "      <td>44.81</td>\n",
       "      <td>44.55</td>\n",
       "      <td>42.37</td>\n",
       "      <td>2.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>38.59</td>\n",
       "      <td>40.62</td>\n",
       "      <td>39.86</td>\n",
       "      <td>37.99</td>\n",
       "      <td>2.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>37.82</td>\n",
       "      <td>39.77</td>\n",
       "      <td>38.97</td>\n",
       "      <td>37.70</td>\n",
       "      <td>2.07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               seed 42  seed 1  seed 2  seed 3  max - min\n",
       "Overall                          46.12   46.05   47.10   46.34       1.05\n",
       "Semantic                         55.35   54.18   55.98   54.72       1.80\n",
       "Syntactic                        38.45   39.30   39.72   39.37       1.26\n",
       ": capital-common-countries       81.82   80.04   82.81   81.82       2.77\n",
       ": capital-world                  69.83   67.44   69.43   68.21       2.39\n",
       ": currency                        7.62    7.39    8.89    8.31       1.50\n",
       ": city-in-state                  37.37   38.27   39.04   37.74       1.66\n",
       ": family                         68.77   67.39   72.13   69.17       4.74\n",
       ": gram1-adjective-to-adverb      12.70   11.29   14.21   11.19       3.02\n",
       ": gram2-opposite                 11.82   10.84   11.08   13.05       2.22\n",
       ": gram3-comparative              44.14   46.10   47.82   48.87       4.73\n",
       ": gram4-superlative              17.02   17.83   18.98   19.79       2.76\n",
       ": gram5-present-participle       29.92   29.73   31.53   34.47       4.73\n",
       ": gram6-nationality-adjective    78.42   80.11   78.86   78.42       1.69\n",
       ": gram7-past-tense               44.29   44.81   44.55   42.37       2.44\n",
       ": gram8-plural                   38.59   40.62   39.86   37.99       2.63\n",
       ": gram9-plural-verbs             37.82   39.77   38.97   37.70       2.07"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (a)：同樣設定、只換亂數種子，結果會晃多少？——先量雜訊，後面的比較才知道哪些差距算數。\n",
    "# 用 5% 維基（後面的比較實驗都用 5%）：原本的 seed=42 再加 seed=1、2、3，共 4 次。\n",
    "noise_runs = {\"seed 42\": results[\"Wiki 5%\"]}\n",
    "for s in [1, 2, 3]:\n",
    "    m = Word2Vec(corpus_file=\"wiki_sampled_5_clean.txt\", **{**W2V_PARAMS, \"seed\": s})\n",
    "    _ = evaluate(m.wv, f\"Wiki 5% seed={s}\")\n",
    "    noise_runs[f\"seed {s}\"] = results[f\"Wiki 5% seed={s}\"]\n",
    "noise = pd.DataFrame(noise_runs).drop(index=\"OOV questions\")\n",
    "noise[\"max - min\"] = noise.max(axis=1) - noise.min(axis=1)\n",
    "display(noise.round(2))\n",
    "NOISE = noise[\"max - min\"]\n",
    "\n",
    "def compare(base, other):\n",
    "    # 跟 base 比較；差距的絕對值大於「4 次重跑的最大落差」才標 True\n",
    "    t = pd.DataFrame({base: results[base], other: results[other]}).drop(index=\"OOV questions\")\n",
    "    t[\"diff\"] = t[other] - t[base]\n",
    "    t[\"noise (max-min of 4 seeds)\"] = NOISE\n",
    "    t[\"beyond noise?\"] = t[\"diff\"].abs() > t[\"noise (max-min of 4 seeds)\"]\n",
    "    return t.round(2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "3c9f2b91",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T13:51:26.683600Z",
     "iopub.status.busy": "2026-10-05T13:51:26.683218Z",
     "iopub.status.idle": "2026-10-05T14:00:33.289856Z",
     "shell.execute_reply": "2026-10-05T14:00:33.289856Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "questions containing a stop word: 206\n",
      "SubCategory\n",
      ": family                       86\n",
      ": gram1-adjective-to-adverb    62\n",
      ": currency                     58\n",
      "Name: count, dtype: int64\n",
      "['Algeria dinar Korea won', 'Angola kwanza Korea won', 'Argentina peso Korea won', 'Armenia dram Korea won', 'Brazil real Korea won']\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "trained on wiki_sampled_5_nostop.txt: 7.0 min, vocab 278,810, effective min_count 9\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% (stop words removed): overall 45.25%  (OOV questions 284)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 5% (stop words removed)</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>46.12</td>\n",
       "      <td>45.25</td>\n",
       "      <td>-0.87</td>\n",
       "      <td>1.05</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>55.35</td>\n",
       "      <td>55.41</td>\n",
       "      <td>0.06</td>\n",
       "      <td>1.80</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>38.45</td>\n",
       "      <td>36.81</td>\n",
       "      <td>-1.65</td>\n",
       "      <td>1.26</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>81.82</td>\n",
       "      <td>83.99</td>\n",
       "      <td>2.17</td>\n",
       "      <td>2.77</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>69.83</td>\n",
       "      <td>70.87</td>\n",
       "      <td>1.04</td>\n",
       "      <td>2.39</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>7.62</td>\n",
       "      <td>8.89</td>\n",
       "      <td>1.27</td>\n",
       "      <td>1.50</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>37.37</td>\n",
       "      <td>37.82</td>\n",
       "      <td>0.45</td>\n",
       "      <td>1.66</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>68.77</td>\n",
       "      <td>53.95</td>\n",
       "      <td>-14.82</td>\n",
       "      <td>4.74</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>12.70</td>\n",
       "      <td>12.80</td>\n",
       "      <td>0.10</td>\n",
       "      <td>3.02</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>11.82</td>\n",
       "      <td>9.98</td>\n",
       "      <td>-1.85</td>\n",
       "      <td>2.22</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>44.14</td>\n",
       "      <td>37.01</td>\n",
       "      <td>-7.13</td>\n",
       "      <td>4.73</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.02</td>\n",
       "      <td>16.31</td>\n",
       "      <td>-0.71</td>\n",
       "      <td>2.76</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>29.92</td>\n",
       "      <td>30.87</td>\n",
       "      <td>0.95</td>\n",
       "      <td>4.73</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>78.42</td>\n",
       "      <td>80.61</td>\n",
       "      <td>2.19</td>\n",
       "      <td>1.69</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>44.29</td>\n",
       "      <td>41.09</td>\n",
       "      <td>-3.21</td>\n",
       "      <td>2.44</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>38.59</td>\n",
       "      <td>41.89</td>\n",
       "      <td>3.30</td>\n",
       "      <td>2.63</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>37.82</td>\n",
       "      <td>26.55</td>\n",
       "      <td>-11.26</td>\n",
       "      <td>2.07</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% (stop words removed)   diff  \\\n",
       "Overall                          46.12                         45.25  -0.87   \n",
       "Semantic                         55.35                         55.41   0.06   \n",
       "Syntactic                        38.45                         36.81  -1.65   \n",
       ": capital-common-countries       81.82                         83.99   2.17   \n",
       ": capital-world                  69.83                         70.87   1.04   \n",
       ": currency                        7.62                          8.89   1.27   \n",
       ": city-in-state                  37.37                         37.82   0.45   \n",
       ": family                         68.77                         53.95 -14.82   \n",
       ": gram1-adjective-to-adverb      12.70                         12.80   0.10   \n",
       ": gram2-opposite                 11.82                          9.98  -1.85   \n",
       ": gram3-comparative              44.14                         37.01  -7.13   \n",
       ": gram4-superlative              17.02                         16.31  -0.71   \n",
       ": gram5-present-participle       29.92                         30.87   0.95   \n",
       ": gram6-nationality-adjective    78.42                         80.61   2.19   \n",
       ": gram7-past-tense               44.29                         41.09  -3.21   \n",
       ": gram8-plural                   38.59                         41.89   3.30   \n",
       ": gram9-plural-verbs             37.82                         26.55 -11.26   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              1.05          False  \n",
       "Semantic                                             1.80          False  \n",
       "Syntactic                                            1.26           True  \n",
       ": capital-common-countries                           2.77          False  \n",
       ": capital-world                                      2.39          False  \n",
       ": currency                                           1.50          False  \n",
       ": city-in-state                                      1.66          False  \n",
       ": family                                             4.74           True  \n",
       ": gram1-adjective-to-adverb                          3.02          False  \n",
       ": gram2-opposite                                     2.22          False  \n",
       ": gram3-comparative                                  4.73           True  \n",
       ": gram4-superlative                                  2.76          False  \n",
       ": gram5-present-participle                           4.73          False  \n",
       ": gram6-nationality-adjective                        1.69           True  \n",
       ": gram7-past-tense                                   2.44           True  \n",
       ": gram8-plural                                       2.63           True  \n",
       ": gram9-plural-verbs                                 2.07           True  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (b)：為什麼不移除停用詞？先看考卷，再真的做實驗比較。\n",
    "# 停用詞表：NLTK English stopwords（https://www.nltk.org/）\n",
    "import nltk\n",
    "nltk.download(\"stopwords\", quiet=True)\n",
    "from nltk.corpus import stopwords\n",
    "sw = set(stopwords.words(\"english\"))\n",
    "has_sw = data[\"Question\"].map(lambda q: any(w in sw for w in q.lower().split()))\n",
    "print(\"questions containing a stop word:\", int(has_sw.sum()))\n",
    "print(data[has_sw][\"SubCategory\"].value_counts())\n",
    "print(data[has_sw][\"Question\"].head(5).tolist())\n",
    "\n",
    "# 實驗：同樣是 5% 維基、同樣的參數，只差在「有沒有移除停用詞」\n",
    "with open(\"wiki_sampled_5_clean.txt\", encoding=\"utf-8\") as fin, open(\"wiki_sampled_5_nostop.txt\", \"w\", encoding=\"utf-8\", newline=\"\\n\") as fout:\n",
    "    for line in fin:\n",
    "        fout.write(\" \".join(w for w in line.split() if w not in sw) + \"\\n\")\n",
    "m = train_w2v(\"wiki_sampled_5_nostop.txt\")\n",
    "models[\"Wiki 5% (stop words removed)\"] = m.wv\n",
    "_ = evaluate(m.wv, \"Wiki 5% (stop words removed)\")\n",
    "display(compare(\"Wiki 5%\", \"Wiki 5% (stop words removed)\"))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "697699ff",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:00:33.355166Z",
     "iopub.status.busy": "2026-10-05T14:00:33.355166Z",
     "iopub.status.idle": "2026-10-05T14:49:46.977824Z",
     "shell.execute_reply": "2026-10-05T14:49:46.976818Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% CBOW (sg=0): trained in 9.3 min\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% CBOW (sg=0): overall 52.58%  (OOV questions 107)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% window=10: trained in 15.2 min\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% window=10: overall 41.75%  (OOV questions 107)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% vector_size=300: trained in 17.9 min\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 5% vector_size=300: overall 57.44%  (OOV questions 107)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 5% CBOW (sg=0)</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>46.12</td>\n",
       "      <td>52.58</td>\n",
       "      <td>6.46</td>\n",
       "      <td>1.05</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>55.35</td>\n",
       "      <td>58.60</td>\n",
       "      <td>3.25</td>\n",
       "      <td>1.80</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>38.45</td>\n",
       "      <td>47.58</td>\n",
       "      <td>9.12</td>\n",
       "      <td>1.26</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>81.82</td>\n",
       "      <td>79.45</td>\n",
       "      <td>-2.37</td>\n",
       "      <td>2.77</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>69.83</td>\n",
       "      <td>71.86</td>\n",
       "      <td>2.03</td>\n",
       "      <td>2.39</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>7.62</td>\n",
       "      <td>8.43</td>\n",
       "      <td>0.81</td>\n",
       "      <td>1.50</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>37.37</td>\n",
       "      <td>43.66</td>\n",
       "      <td>6.28</td>\n",
       "      <td>1.66</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>68.77</td>\n",
       "      <td>77.87</td>\n",
       "      <td>9.09</td>\n",
       "      <td>4.74</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>12.70</td>\n",
       "      <td>19.15</td>\n",
       "      <td>6.45</td>\n",
       "      <td>3.02</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>11.82</td>\n",
       "      <td>11.45</td>\n",
       "      <td>-0.37</td>\n",
       "      <td>2.22</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>44.14</td>\n",
       "      <td>69.14</td>\n",
       "      <td>25.00</td>\n",
       "      <td>4.73</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.02</td>\n",
       "      <td>37.61</td>\n",
       "      <td>20.59</td>\n",
       "      <td>2.76</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>29.92</td>\n",
       "      <td>40.81</td>\n",
       "      <td>10.89</td>\n",
       "      <td>4.73</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>78.42</td>\n",
       "      <td>76.61</td>\n",
       "      <td>-1.81</td>\n",
       "      <td>1.69</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>44.29</td>\n",
       "      <td>46.03</td>\n",
       "      <td>1.73</td>\n",
       "      <td>2.44</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>38.59</td>\n",
       "      <td>49.55</td>\n",
       "      <td>10.96</td>\n",
       "      <td>2.63</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>37.82</td>\n",
       "      <td>48.16</td>\n",
       "      <td>10.34</td>\n",
       "      <td>2.07</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% CBOW (sg=0)   diff  \\\n",
       "Overall                          46.12                52.58   6.46   \n",
       "Semantic                         55.35                58.60   3.25   \n",
       "Syntactic                        38.45                47.58   9.12   \n",
       ": capital-common-countries       81.82                79.45  -2.37   \n",
       ": capital-world                  69.83                71.86   2.03   \n",
       ": currency                        7.62                 8.43   0.81   \n",
       ": city-in-state                  37.37                43.66   6.28   \n",
       ": family                         68.77                77.87   9.09   \n",
       ": gram1-adjective-to-adverb      12.70                19.15   6.45   \n",
       ": gram2-opposite                 11.82                11.45  -0.37   \n",
       ": gram3-comparative              44.14                69.14  25.00   \n",
       ": gram4-superlative              17.02                37.61  20.59   \n",
       ": gram5-present-participle       29.92                40.81  10.89   \n",
       ": gram6-nationality-adjective    78.42                76.61  -1.81   \n",
       ": gram7-past-tense               44.29                46.03   1.73   \n",
       ": gram8-plural                   38.59                49.55  10.96   \n",
       ": gram9-plural-verbs             37.82                48.16  10.34   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              1.05           True  \n",
       "Semantic                                             1.80           True  \n",
       "Syntactic                                            1.26           True  \n",
       ": capital-common-countries                           2.77          False  \n",
       ": capital-world                                      2.39          False  \n",
       ": currency                                           1.50          False  \n",
       ": city-in-state                                      1.66           True  \n",
       ": family                                             4.74           True  \n",
       ": gram1-adjective-to-adverb                          3.02           True  \n",
       ": gram2-opposite                                     2.22          False  \n",
       ": gram3-comparative                                  4.73           True  \n",
       ": gram4-superlative                                  2.76           True  \n",
       ": gram5-present-participle                           4.73           True  \n",
       ": gram6-nationality-adjective                        1.69           True  \n",
       ": gram7-past-tense                                   2.44          False  \n",
       ": gram8-plural                                       2.63           True  \n",
       ": gram9-plural-verbs                                 2.07           True  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 5% window=10</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>46.12</td>\n",
       "      <td>41.75</td>\n",
       "      <td>-4.37</td>\n",
       "      <td>1.05</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>55.35</td>\n",
       "      <td>51.22</td>\n",
       "      <td>-4.13</td>\n",
       "      <td>1.80</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>38.45</td>\n",
       "      <td>33.87</td>\n",
       "      <td>-4.58</td>\n",
       "      <td>1.26</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>81.82</td>\n",
       "      <td>72.53</td>\n",
       "      <td>-9.29</td>\n",
       "      <td>2.77</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>69.83</td>\n",
       "      <td>68.24</td>\n",
       "      <td>-1.59</td>\n",
       "      <td>2.39</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>7.62</td>\n",
       "      <td>7.85</td>\n",
       "      <td>0.23</td>\n",
       "      <td>1.50</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>37.37</td>\n",
       "      <td>31.01</td>\n",
       "      <td>-6.36</td>\n",
       "      <td>1.66</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>68.77</td>\n",
       "      <td>50.59</td>\n",
       "      <td>-18.18</td>\n",
       "      <td>4.74</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>12.70</td>\n",
       "      <td>11.09</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>3.02</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>11.82</td>\n",
       "      <td>6.90</td>\n",
       "      <td>-4.93</td>\n",
       "      <td>2.22</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>44.14</td>\n",
       "      <td>32.88</td>\n",
       "      <td>-11.26</td>\n",
       "      <td>4.73</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.02</td>\n",
       "      <td>9.80</td>\n",
       "      <td>-7.22</td>\n",
       "      <td>2.76</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>29.92</td>\n",
       "      <td>27.46</td>\n",
       "      <td>-2.46</td>\n",
       "      <td>4.73</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>78.42</td>\n",
       "      <td>78.80</td>\n",
       "      <td>0.38</td>\n",
       "      <td>1.69</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>44.29</td>\n",
       "      <td>39.49</td>\n",
       "      <td>-4.81</td>\n",
       "      <td>2.44</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>38.59</td>\n",
       "      <td>33.56</td>\n",
       "      <td>-5.03</td>\n",
       "      <td>2.63</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>37.82</td>\n",
       "      <td>33.22</td>\n",
       "      <td>-4.60</td>\n",
       "      <td>2.07</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% window=10   diff  \\\n",
       "Overall                          46.12              41.75  -4.37   \n",
       "Semantic                         55.35              51.22  -4.13   \n",
       "Syntactic                        38.45              33.87  -4.58   \n",
       ": capital-common-countries       81.82              72.53  -9.29   \n",
       ": capital-world                  69.83              68.24  -1.59   \n",
       ": currency                        7.62               7.85   0.23   \n",
       ": city-in-state                  37.37              31.01  -6.36   \n",
       ": family                         68.77              50.59 -18.18   \n",
       ": gram1-adjective-to-adverb      12.70              11.09  -1.61   \n",
       ": gram2-opposite                 11.82               6.90  -4.93   \n",
       ": gram3-comparative              44.14              32.88 -11.26   \n",
       ": gram4-superlative              17.02               9.80  -7.22   \n",
       ": gram5-present-participle       29.92              27.46  -2.46   \n",
       ": gram6-nationality-adjective    78.42              78.80   0.38   \n",
       ": gram7-past-tense               44.29              39.49  -4.81   \n",
       ": gram8-plural                   38.59              33.56  -5.03   \n",
       ": gram9-plural-verbs             37.82              33.22  -4.60   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              1.05           True  \n",
       "Semantic                                             1.80           True  \n",
       "Syntactic                                            1.26           True  \n",
       ": capital-common-countries                           2.77           True  \n",
       ": capital-world                                      2.39          False  \n",
       ": currency                                           1.50          False  \n",
       ": city-in-state                                      1.66           True  \n",
       ": family                                             4.74           True  \n",
       ": gram1-adjective-to-adverb                          3.02          False  \n",
       ": gram2-opposite                                     2.22           True  \n",
       ": gram3-comparative                                  4.73           True  \n",
       ": gram4-superlative                                  2.76           True  \n",
       ": gram5-present-participle                           4.73          False  \n",
       ": gram6-nationality-adjective                        1.69          False  \n",
       ": gram7-past-tense                                   2.44           True  \n",
       ": gram8-plural                                       2.63           True  \n",
       ": gram9-plural-verbs                                 2.07           True  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 5% vector_size=300</th>\n",
       "      <th>diff</th>\n",
       "      <th>noise (max-min of 4 seeds)</th>\n",
       "      <th>beyond noise?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>46.12</td>\n",
       "      <td>57.44</td>\n",
       "      <td>11.32</td>\n",
       "      <td>1.05</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>55.35</td>\n",
       "      <td>68.54</td>\n",
       "      <td>13.19</td>\n",
       "      <td>1.80</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>38.45</td>\n",
       "      <td>48.22</td>\n",
       "      <td>9.76</td>\n",
       "      <td>1.26</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>81.82</td>\n",
       "      <td>95.45</td>\n",
       "      <td>13.64</td>\n",
       "      <td>2.77</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>69.83</td>\n",
       "      <td>79.55</td>\n",
       "      <td>9.73</td>\n",
       "      <td>2.39</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>7.62</td>\n",
       "      <td>7.62</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.50</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>37.37</td>\n",
       "      <td>63.15</td>\n",
       "      <td>25.78</td>\n",
       "      <td>1.66</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>68.77</td>\n",
       "      <td>73.72</td>\n",
       "      <td>4.94</td>\n",
       "      <td>4.74</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>12.70</td>\n",
       "      <td>13.51</td>\n",
       "      <td>0.81</td>\n",
       "      <td>3.02</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>11.82</td>\n",
       "      <td>14.90</td>\n",
       "      <td>3.08</td>\n",
       "      <td>2.22</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>44.14</td>\n",
       "      <td>64.11</td>\n",
       "      <td>19.97</td>\n",
       "      <td>4.73</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>17.02</td>\n",
       "      <td>26.74</td>\n",
       "      <td>9.71</td>\n",
       "      <td>2.76</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>29.92</td>\n",
       "      <td>38.35</td>\n",
       "      <td>8.43</td>\n",
       "      <td>4.73</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>78.42</td>\n",
       "      <td>86.05</td>\n",
       "      <td>7.63</td>\n",
       "      <td>1.69</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>44.29</td>\n",
       "      <td>49.81</td>\n",
       "      <td>5.51</td>\n",
       "      <td>2.44</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>38.59</td>\n",
       "      <td>54.28</td>\n",
       "      <td>15.69</td>\n",
       "      <td>2.63</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>37.82</td>\n",
       "      <td>52.53</td>\n",
       "      <td>14.71</td>\n",
       "      <td>2.07</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 5%  Wiki 5% vector_size=300   diff  \\\n",
       "Overall                          46.12                    57.44  11.32   \n",
       "Semantic                         55.35                    68.54  13.19   \n",
       "Syntactic                        38.45                    48.22   9.76   \n",
       ": capital-common-countries       81.82                    95.45  13.64   \n",
       ": capital-world                  69.83                    79.55   9.73   \n",
       ": currency                        7.62                     7.62   0.00   \n",
       ": city-in-state                  37.37                    63.15  25.78   \n",
       ": family                         68.77                    73.72   4.94   \n",
       ": gram1-adjective-to-adverb      12.70                    13.51   0.81   \n",
       ": gram2-opposite                 11.82                    14.90   3.08   \n",
       ": gram3-comparative              44.14                    64.11  19.97   \n",
       ": gram4-superlative              17.02                    26.74   9.71   \n",
       ": gram5-present-participle       29.92                    38.35   8.43   \n",
       ": gram6-nationality-adjective    78.42                    86.05   7.63   \n",
       ": gram7-past-tense               44.29                    49.81   5.51   \n",
       ": gram8-plural                   38.59                    54.28  15.69   \n",
       ": gram9-plural-verbs             37.82                    52.53  14.71   \n",
       "\n",
       "                               noise (max-min of 4 seeds)  beyond noise?  \n",
       "Overall                                              1.05           True  \n",
       "Semantic                                             1.80           True  \n",
       "Syntactic                                            1.26           True  \n",
       ": capital-common-countries                           2.77           True  \n",
       ": capital-world                                      2.39           True  \n",
       ": currency                                           1.50          False  \n",
       ": city-in-state                                      1.66           True  \n",
       ": family                                             4.74           True  \n",
       ": gram1-adjective-to-adverb                          3.02          False  \n",
       ": gram2-opposite                                     2.22           True  \n",
       ": gram3-comparative                                  4.73           True  \n",
       ": gram4-superlative                                  2.76           True  \n",
       ": gram5-present-participle                           4.73           True  \n",
       ": gram6-nationality-adjective                        1.69           True  \n",
       ": gram7-past-tense                                   2.44           True  \n",
       ": gram8-plural                                       2.63           True  \n",
       ": gram9-plural-verbs                                 2.07           True  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (c)：超參數比較（都用 5% 維基，一次只改一個設定，其他跟主模型一樣）\n",
    "variants = {\n",
    "    \"Wiki 5% CBOW (sg=0)\": dict(sg=0),\n",
    "    \"Wiki 5% window=10\": dict(window=10),\n",
    "    \"Wiki 5% vector_size=300\": dict(vector_size=300),\n",
    "}\n",
    "for name, change in variants.items():\n",
    "    t = time.time()\n",
    "    m = Word2Vec(corpus_file=\"wiki_sampled_5_clean.txt\", **{**W2V_PARAMS, **change})\n",
    "    print(f\"{name}: trained in {(time.time() - t) / 60:.1f} min\")\n",
    "    models[name] = m.wv\n",
    "    _ = evaluate(m.wv, name)\n",
    "for name in variants:\n",
    "    display(compare(\"Wiki 5%\", name))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "e622dce1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:49:47.191827Z",
     "iopub.status.busy": "2026-10-05T14:49:47.191827Z",
     "iopub.status.idle": "2026-10-05T14:49:47.225452Z",
     "shell.execute_reply": "2026-10-05T14:49:47.225452Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>top-1</th>\n",
       "      <th>top-3</th>\n",
       "      <th>top-5</th>\n",
       "      <th>top-10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>GloVe (pre-trained)</th>\n",
       "      <td>63.11</td>\n",
       "      <td>73.68</td>\n",
       "      <td>77.73</td>\n",
       "      <td>82.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Wiki 20%</th>\n",
       "      <td>48.39</td>\n",
       "      <td>61.53</td>\n",
       "      <td>66.32</td>\n",
       "      <td>71.74</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     top-1  top-3  top-5  top-10\n",
       "GloVe (pre-trained)  63.11  73.68  77.73   82.01\n",
       "Wiki 20%             48.39  61.53  66.32   71.74"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (d)：前 k 名有猜中就算對，正確率會變多少？（老師說 queen 可能不是第一名，而是第二、三名）\n",
    "rows = {}\n",
    "for name in [\"GloVe (pre-trained)\", \"Wiki 20%\"]:\n",
    "    ranks = details[name][\"ranks\"]\n",
    "    rows[name] = {f\"top-{k}\": np.mean([r is not None and r <= k for r in ranks]) * 100 for k in [1, 3, 5, 10]}\n",
    "display(pd.DataFrame(rows).T.round(2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "853f2bb5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:49:47.301914Z",
     "iopub.status.busy": "2026-10-05T14:49:47.301914Z",
     "iopub.status.idle": "2026-10-05T14:49:47.486495Z",
     "shell.execute_reply": "2026-10-05T14:49:47.486495Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wrong answers: 10087 of 19544\n",
      "  OOV (question word not in vocab): 0\n",
      "  gold answer was 2nd-10th: 4563\n",
      "\n",
      ": capital-world\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>508</th>\n",
       "      <td>Abuja Nigeria Amman Jordan</td>\n",
       "      <td>jordan</td>\n",
       "      <td>kuwait</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>509</th>\n",
       "      <td>Abuja Nigeria Ankara Turkey</td>\n",
       "      <td>turkey</td>\n",
       "      <td>sakarya</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>510</th>\n",
       "      <td>Abuja Nigeria Antananarivo Madagascar</td>\n",
       "      <td>madagascar</td>\n",
       "      <td>senegal</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>511</th>\n",
       "      <td>Abuja Nigeria Apia Samoa</td>\n",
       "      <td>samoa</td>\n",
       "      <td>tonga</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>513</th>\n",
       "      <td>Abuja Nigeria Asmara Eritrea</td>\n",
       "      <td>eritrea</td>\n",
       "      <td>indonesia</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>516</th>\n",
       "      <td>Abuja Nigeria Baghdad Iraq</td>\n",
       "      <td>iraq</td>\n",
       "      <td>syria</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                  Question        gold       pred  rank\n",
       "508             Abuja Nigeria Amman Jordan      jordan     kuwait   NaN\n",
       "509            Abuja Nigeria Ankara Turkey      turkey    sakarya   3.0\n",
       "510  Abuja Nigeria Antananarivo Madagascar  madagascar    senegal   8.0\n",
       "511               Abuja Nigeria Apia Samoa       samoa      tonga   2.0\n",
       "513           Abuja Nigeria Asmara Eritrea     eritrea  indonesia   2.0\n",
       "516             Abuja Nigeria Baghdad Iraq        iraq      syria   2.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": currency\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5030</th>\n",
       "      <td>Algeria dinar Angola kwanza</td>\n",
       "      <td>kwanza</td>\n",
       "      <td>centavos</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5032</th>\n",
       "      <td>Algeria dinar Armenia dram</td>\n",
       "      <td>dram</td>\n",
       "      <td>hryvnia</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5033</th>\n",
       "      <td>Algeria dinar Brazil real</td>\n",
       "      <td>real</td>\n",
       "      <td>peso</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5034</th>\n",
       "      <td>Algeria dinar Bulgaria lev</td>\n",
       "      <td>lev</td>\n",
       "      <td>hryvnia</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5035</th>\n",
       "      <td>Algeria dinar Cambodia riel</td>\n",
       "      <td>riel</td>\n",
       "      <td>kyat</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5036</th>\n",
       "      <td>Algeria dinar Canada dollar</td>\n",
       "      <td>dollar</td>\n",
       "      <td>loonie</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         Question    gold      pred  rank\n",
       "5030  Algeria dinar Angola kwanza  kwanza  centavos   NaN\n",
       "5032   Algeria dinar Armenia dram    dram   hryvnia   NaN\n",
       "5033    Algeria dinar Brazil real    real      peso   NaN\n",
       "5034   Algeria dinar Bulgaria lev     lev   hryvnia   NaN\n",
       "5035  Algeria dinar Cambodia riel    riel      kyat   NaN\n",
       "5036  Algeria dinar Canada dollar  dollar    loonie   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": family\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>8366</th>\n",
       "      <td>boy girl father mother</td>\n",
       "      <td>mother</td>\n",
       "      <td>stepmother</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8376</th>\n",
       "      <td>boy girl nephew niece</td>\n",
       "      <td>niece</td>\n",
       "      <td>granddaughter</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8391</th>\n",
       "      <td>brother sister groom bride</td>\n",
       "      <td>bride</td>\n",
       "      <td>bridesmaid</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8394</th>\n",
       "      <td>brother sister husband wife</td>\n",
       "      <td>wife</td>\n",
       "      <td>widowed</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8396</th>\n",
       "      <td>brother sister man woman</td>\n",
       "      <td>woman</td>\n",
       "      <td>sexless</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8397</th>\n",
       "      <td>brother sister nephew niece</td>\n",
       "      <td>niece</td>\n",
       "      <td>aunt</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         Question    gold           pred  rank\n",
       "8366       boy girl father mother  mother     stepmother   2.0\n",
       "8376        boy girl nephew niece   niece  granddaughter   6.0\n",
       "8391   brother sister groom bride   bride     bridesmaid   2.0\n",
       "8394  brother sister husband wife    wife        widowed   4.0\n",
       "8396     brother sister man woman   woman        sexless  10.0\n",
       "8397  brother sister nephew niece   niece           aunt   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": gram3-comparative\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10677</th>\n",
       "      <td>bad worse cool cooler</td>\n",
       "      <td>cooler</td>\n",
       "      <td>fresher</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10682</th>\n",
       "      <td>bad worse great greater</td>\n",
       "      <td>greater</td>\n",
       "      <td>britain</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10683</th>\n",
       "      <td>bad worse hard harder</td>\n",
       "      <td>harder</td>\n",
       "      <td>aisam</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10686</th>\n",
       "      <td>bad worse hot hotter</td>\n",
       "      <td>hotter</td>\n",
       "      <td>peaking</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10687</th>\n",
       "      <td>bad worse large larger</td>\n",
       "      <td>larger</td>\n",
       "      <td>smaller</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10688</th>\n",
       "      <td>bad worse long longer</td>\n",
       "      <td>longer</td>\n",
       "      <td>shorter</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Question     gold     pred  rank\n",
       "10677    bad worse cool cooler   cooler  fresher   6.0\n",
       "10682  bad worse great greater  greater  britain   7.0\n",
       "10683    bad worse hard harder   harder    aisam   3.0\n",
       "10686     bad worse hot hotter   hotter  peaking   NaN\n",
       "10687   bad worse large larger   larger  smaller   2.0\n",
       "10688    bad worse long longer   longer  shorter   4.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": gram6-nationality-adjective\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>14183</th>\n",
       "      <td>Albania Albanian Argentina Argentinean</td>\n",
       "      <td>argentinean</td>\n",
       "      <td>argentinian</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14186</th>\n",
       "      <td>Albania Albanian Belarus Belorussian</td>\n",
       "      <td>belorussian</td>\n",
       "      <td>belarusian</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14199</th>\n",
       "      <td>Albania Albanian Greece Greek</td>\n",
       "      <td>greek</td>\n",
       "      <td>cypriot</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14217</th>\n",
       "      <td>Albania Albanian Slovakia Slovakian</td>\n",
       "      <td>slovakian</td>\n",
       "      <td>slovak</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14224</th>\n",
       "      <td>Argentina Argentinean Belarus Belorussian</td>\n",
       "      <td>belorussian</td>\n",
       "      <td>russian</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14229</th>\n",
       "      <td>Argentina Argentinean China Chinese</td>\n",
       "      <td>chinese</td>\n",
       "      <td>guangdong</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        Question         gold         pred  \\\n",
       "14183     Albania Albanian Argentina Argentinean  argentinean  argentinian   \n",
       "14186       Albania Albanian Belarus Belorussian  belorussian   belarusian   \n",
       "14199              Albania Albanian Greece Greek        greek      cypriot   \n",
       "14217        Albania Albanian Slovakia Slovakian    slovakian       slovak   \n",
       "14224  Argentina Argentinean Belarus Belorussian  belorussian      russian   \n",
       "14229        Argentina Argentinean China Chinese      chinese    guangdong   \n",
       "\n",
       "       rank  \n",
       "14183   8.0  \n",
       "14186   NaN  \n",
       "14199   2.0  \n",
       "14217   3.0  \n",
       "14224   NaN  \n",
       "14229   2.0  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      ": gram8-plural\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Question</th>\n",
       "      <th>gold</th>\n",
       "      <th>pred</th>\n",
       "      <th>rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17342</th>\n",
       "      <td>banana bananas bird birds</td>\n",
       "      <td>birds</td>\n",
       "      <td>waterfowl</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17344</th>\n",
       "      <td>banana bananas building buildings</td>\n",
       "      <td>buildings</td>\n",
       "      <td>renovating</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17345</th>\n",
       "      <td>banana bananas car cars</td>\n",
       "      <td>cars</td>\n",
       "      <td>truck</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17346</th>\n",
       "      <td>banana bananas cat cats</td>\n",
       "      <td>cats</td>\n",
       "      <td>dogs</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17347</th>\n",
       "      <td>banana bananas child children</td>\n",
       "      <td>children</td>\n",
       "      <td>childbearing</td>\n",
       "      <td>5.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17348</th>\n",
       "      <td>banana bananas cloud clouds</td>\n",
       "      <td>clouds</td>\n",
       "      <td>lidar</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Question       gold          pred  rank\n",
       "17342          banana bananas bird birds      birds     waterfowl   8.0\n",
       "17344  banana bananas building buildings  buildings    renovating   2.0\n",
       "17345            banana bananas car cars       cars         truck   2.0\n",
       "17346            banana bananas cat cats       cats          dogs   9.0\n",
       "17347      banana bananas child children   children  childbearing   5.0\n",
       "17348        banana bananas cloud clouds     clouds         lidar   NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (e)：錯題分析——電腦答錯時，它到底猜了什麼？\n",
    "d20 = details[\"Wiki 20%\"]\n",
    "err = data.assign(pred=d20[\"preds\"], rank=d20[\"ranks\"],\n",
    "                  gold=data[\"Question\"].str.lower().str.split().str[3])\n",
    "wrong = err[err[\"pred\"] != err[\"gold\"]]\n",
    "print(\"wrong answers:\", len(wrong), \"of\", len(err))\n",
    "print(\"  OOV (question word not in vocab):\", int(wrong[\"pred\"].isna().sum()))\n",
    "print(\"  gold answer was 2nd-10th:\", int(wrong[\"rank\"].notna().sum()))\n",
    "for sub in [\": capital-world\", \": currency\", \": family\", \": gram3-comparative\", \": gram6-nationality-adjective\", \": gram8-plural\"]:\n",
    "    print(\"\\n\" + sub)\n",
    "    display(wrong[(wrong[\"SubCategory\"] == sub) & wrong[\"pred\"].notna()][[\"Question\", \"gold\", \"pred\", \"rank\"]].head(6))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "76df2075",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:49:47.560569Z",
     "iopub.status.busy": "2026-10-05T14:49:47.560569Z",
     "iopub.status.idle": "2026-10-05T14:55:08.176617Z",
     "shell.execute_reply": "2026-10-05T14:55:08.175606Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wiki 20% (3CosMul): overall 44.66%  (OOV questions 0)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Wiki 20%</th>\n",
       "      <th>Wiki 20% (3CosMul)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>48.39</td>\n",
       "      <td>44.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>56.70</td>\n",
       "      <td>54.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>41.48</td>\n",
       "      <td>36.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>77.87</td>\n",
       "      <td>77.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>72.81</td>\n",
       "      <td>69.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>10.28</td>\n",
       "      <td>9.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>35.51</td>\n",
       "      <td>33.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>74.31</td>\n",
       "      <td>71.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>15.93</td>\n",
       "      <td>12.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>16.01</td>\n",
       "      <td>13.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>49.10</td>\n",
       "      <td>43.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>24.33</td>\n",
       "      <td>22.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>31.34</td>\n",
       "      <td>24.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>80.49</td>\n",
       "      <td>76.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>43.85</td>\n",
       "      <td>39.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>41.67</td>\n",
       "      <td>34.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>40.92</td>\n",
       "      <td>37.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Wiki 20%  Wiki 20% (3CosMul)\n",
       "Overall                           48.39               44.66\n",
       "Semantic                          56.70               54.12\n",
       "Syntactic                         41.48               36.80\n",
       ": capital-common-countries        77.87               77.27\n",
       ": capital-world                   72.81               69.30\n",
       ": currency                        10.28                9.35\n",
       ": city-in-state                   35.51               33.73\n",
       ": family                          74.31               71.34\n",
       ": gram1-adjective-to-adverb       15.93               12.00\n",
       ": gram2-opposite                  16.01               13.18\n",
       ": gram3-comparative               49.10               43.62\n",
       ": gram4-superlative               24.33               22.19\n",
       ": gram5-present-participle        31.34               24.43\n",
       ": gram6-nationality-adjective     80.49               76.05\n",
       ": gram7-past-tense                43.85               39.55\n",
       ": gram8-plural                    41.67               34.23\n",
       ": gram9-plural-verbs              40.92               37.36\n",
       "OOV questions                      0.00                0.00"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (f)：換一種「算答案」的公式。3CosAdd 是 b - a + c；3CosMul 用乘除。\n",
    "# 出處：Levy & Goldberg (2014), Linguistic Regularities in Sparse and Explicit Word Representations, CoNLL. https://aclanthology.org/W14-1618/\n",
    "# 同一份 Wiki 20% 詞向量，只換公式。\n",
    "_ = evaluate(my_wv, \"Wiki 20% (3CosMul)\", method=\"cosmul\")\n",
    "display(pd.DataFrame({k: results[k] for k in [\"Wiki 20%\", \"Wiki 20% (3CosMul)\"]}).round(2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "2ed58697",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:55:08.272920Z",
     "iopub.status.busy": "2026-10-05T14:55:08.272920Z",
     "iopub.status.idle": "2026-10-05T14:55:09.052343Z",
     "shell.execute_reply": "2026-10-05T14:55:09.050168Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABecAAAKoCAYAAAD9MkTyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjIsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvgI3uAAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QWYlNXbx/F7l6W7uztEGkRCEAVBBEWQDsXAwkQFFVERVFTEQASLUlFEDBAVFEFSQmkpKelaOpZ9r9/5v884O8wuC2zv93NdAzPPPDWzM7vnuc997hMSGRkZaQAAAAAAAAAAIMGEJtyhAAAAAAAAAACAEJwHAAAAAAAAACCBEZwHAAAAAAAAACCBEZwHAAAAAAAAACCBEZwHAAAAAAAAACCBEZwHAAAAAAAAACCBEZwHAAAAAAAAACCBEZwHAAAAAAAAACCBEZwHkCpMnDjRSpUqZceOHYvT/TZp0sRuvfXWKMtq1KhhPXr0uKRtU6qxY8darVq1LE+ePFa+fPkEP36w9/py3v/GjRvbM888E0dnBwAAgLg2fPhwq1atmkVERMTpfitXrmz33ntvlGVFihSxfv36XdK2KdWbb77p3v/cuXNbw4YNE/z4wd7rS33/z549a1dccYW9/fbbcXiGAPA/BOcBxEngO0eOHL6bGmAVKlSwu+66y7Zs2XLe+jt27LD+/ftbnTp1rFChQlayZEm75ppr7Nlnn7Vt27YFPcann37q9l2pUiU7d+7cRZ3fiRMn7IknnrDevXtb5syZ3bLPP//c7W/KlCnnrd+pUyf33AcffHDec/fdd5/lzJnT9u3b5x4fOXLEjh49GmWd8PDwWHUCBNs2mNWrV9sjjzxitWvXdu9X3bp1beDAge44waxfv946duxoxYoVs6JFi7r7GzZsOG+9v/76y5o2berW0zp79+49bx29B1WrVnXv4aVavHix66zQbd26de5xQgv2Xsf2/Q9GP49XX33V/vnnnzg6QwAAgIT31FNPWYECBS56uwULFthtt93mgp2FCxe2q6++2rXvN2/efF6AXO1qBa+99rM/JUoEJm5420R3mzRp0gXPT8d67rnn7MEHH7Q0adK4ZW+99Zbbft68eeetrzaxnvv222/Pe659+/ZWsGBBO3PmjHt8+PBhO378eJR1Dh06dN6yYIJtG8wff/xhffr0cUk/en/r16/v2p4nT54Muv6yZcusTZs27n0uUaKE3X777fbvv/+et97cuXPdz0rr3HHHHa49HGjIkCEuEeVyOjX0Pj700EP25JNPumuTadOmWUIL9l7H9v0PFBYWZvfff7+7Xj1w4EAcniUAmFkkAFymjz76KFK/Tj777LPIgwcPRu7atSvy66+/jixYsGBkvnz53GPPd999F5k1a9bI+vXrR06dOjVy27ZtkVu3bo38/PPPI6+88kq3TTCNGjWKzJs3rzvO9OnTL+r83nnnnch06dJF7t+/37dMx9W+7r333ijrRkRERObIkSMyQ4YMke3btz9vXyVLloysXLmy7/GRI0cijx49GmWd0qVLR7Zr1+6C5xVs20D79u1z59mgQYPIH3/8MXLHjh3uPSxevHhkmTJl3Pvtb+PGjZG5cuWKbN26deTatWsj161b5+7nyZMncvPmzb71dNz8+fNH9uvXL3LTpk2RN9xwQ2TTpk2j7Ovff/9178X3338feTleeukl9xpOnjwZmViCvdc1a9aMbN68+SXt79y5c+5nEPj5AQAASE769u0bmT59+ova5uOPP44MCQmJ7NSpU+Qff/wRuXPnTtc+r127tmvn+xsyZIhrB+r24IMPnrcvtcXUJg22zS+//OLauoG306dPX/Acn3nmGdcmPnXqlG/ZokWL3H6ff/75KOsePnw4Mk2aNK79/8ADD0R57uzZs+41XXvttVHWP3bsWJT1MmfOHHnfffdd8LyCbRto1apV7jzVPv/tt98it2/fHjlp0iR3LaT2a2CbesmSJZGZMmWK7N69u2vX//XXX5ENGzZ0bVVdS3h0TabzfOWVVyLXr18fWbdu3cjOnTtH2dfq1avdvvReXQ79rHUdkZiCvdeFCxeO7NGjxyXt78SJE5HZsmU77/MDAJeL4DyAOAvOf/vtt1GWjxs3zi1XcFbWrFnjGnstW7aMPHPmzHn7UUP7kUceOW+5Aszajy4EKlasGHnLLbdc1PlVrVo16DYKbleoUCHKMq/RrgsVNYAVhPX8888/7rnARnug2AbnY0MN6scff9x1GvibNWuWO5ehQ4dGWd6xY0fXEFYw2qP7WtalSxffsi+//NJdgKiRKQsXLnT727Jli2+dtm3bRtnmUj300EPugiepuZzgvPTv39810C/UwQIAAJCSgvNFixaNLF++/HntU7Xv77///qCB9iZN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TqlDdtWqVdasWTOrU6eO3XzzzdazZ0+rV6+e9e7d2627YMECW7RokRtZlSFDBlfqbObMmW6bBx980HXsKuh+4sQJu/32211wX/uQefPmuXULFizoG6E1f/58K1u2bKK9TwAAAAAAAPEanEfSobINKmOjTFNligZSuYewsLCgJSHSpk2bQGcJILlTJryC6tK/f38rX758lOe8wLwoUL9u3ToXbK9Zs6YLyv/6669WtWrVoPtWsL1AgQLuvrLylX0v33//vX355Zf2+OOP+9ZVhr2nV69evsC86Fh9+vRx59OmTZso5wgAAAAAAJBqJoRF/FIw/u6777bMmTNb8eLFrUSJEnbq1Cnf8x9//LELWqm8g8oOef766y9X9iZnzpyWK1cue+211/hRAQjq5JkIGzNnk01Zut027z3iHotKy4SGhkYpY+ZPz/nXk9f9NGnSuPshISHnHUdB/GDbat3Vq1e7+vHebejQodEe97vvvnOlbjSyq0mTJq6MDgAAAAAAQEIjOJ/CaTJdZaeqDvShQ4fcLX369L7n9XjLli22du1aF4A/ePCgy6Lv0qWLC26pXrTKSbz33nuu7AQA+FMgvt3IeTZ42hqbv2m//bVwjjV68A3b9u8ue/rpp112enSaN2/u1tmzZ4/7PaUgedOmTd1zGuGjOTFUpiZwQthAqmWv+vT6fecF52Oa5FX7UzkcHVvHU2ckAAAAAABAQiM4n8IVKlTIBaK6du1qb775pm9yRo9KO6RLl85l1ZcqVco9rwDXmjVrrF27di7TXjWg9+7da+vXr0+01wEgaRq/YIut3hlumpv1nIVaprL1bNWsKVa5cmWXmT58+HC3njLiA0tkvf3223b8+HFXgkbB9VGjRvkmbe3Ro4dNnz7d8uTJ42rJa1svq1702CvFpWOULl3aBdw12keBfS8bPnA7jRzS87qp3r2Of9999yXIewUAAAAkNrWxDxw4EOM606ZNc4l7AID4FxKpuicpTHh4uGXPnt0OHz5s2bJls9Sazaqg2bYDxy1vhkjLdXCN/T5ntk2aNMlNhFimTBmrUKGCff311+5/US3oMWPGWKZMmVw9ZwXW/EtSAECggVNX2oSFW+3suf/+lISFhliXusVsUJv/6r4DQFyhnZd68bMHgMv37LPPujmZSpYsGe061apVcyVw9T8AJITwVBzLZULYFFxmQtmsoZHn7Myp41Yhf1Yb/kBf++233+yff/5xwfno6LkiRYpY37597dFHH/VNIKsvSbA60ABSr6K5MllEQB+vHms5AAAAgMSh8pCzZ8+2/fv3u7noOnbs6EaeXnXVVe7aPrp1Vq5c6bLmlT2v+y1atHCjWTXKfunSpW6k6tVXX+1L5NN8TvXr13cj7TVKtVGjRvzIAeAiEJxP4WUmjm1fY3u+fN52mNk1b+W23j262LXXXuvWU0+Uf7kHTQqrx/oj++2339oTTzxh11xzjatLL5pwUWVyAMDTtV5xm7Jsh/udkyYkxAXmKxXM5pYDAAAASHgKkivrXUl3BQsWdMvat2/vgvPPPPOMm1Muc+bMQddZt26dHTlyxH7//XcXA1AwX4H6wYMHW9WqVV2QXvPY/fzzz25/Tz75pEvoU3xB800RnAeAi0NZmxSIMhMAEquMljLmFZjPkPa/jj8AiEupechrasfPHgBiR/PIKeN91apVLpDuT+VsFZxXQD26dfzL2ii7vmjRojZkyBDLmDGje/6FF16wd955x835pPmj7rnnHrv//vv58QBxaMKECXbTTTe5RNrUIDwVt/HJnE+BKDMBICEpEN+7YSnedAAAACAJKF26tDVu3NgKFChgNWvWtK5du1rPnj0veh3ZuHGjnT592pW/8dSuXdvNVefRnHUA4pZGrqgDDSkfwfkUiDITAAAAAACk3hGtV/UcYENffc2WLFrgstqLFy9uTZo08a2r+eQ++OADGz58uCth47+Oyt2qBr0oeH/mzBm3nmrPB6PyNgAu3tixY112/Pz5890olVatWvlGslSqVMnSpUvnW1ejXJYtW+a+k02bNvXN++AF8pcsWWLHjh1zpaiuvPLKC26DpIPfoCk0i3Vyn/qUmQAAAAAAIJUE5tuNnOfmgrIT4XZ04xJ7O0dG61Yjtwv6aSJXf3v37rUZM2a4+wcOHIiyTokSJezdd991mfXK3O3Ro4ebu653796+dW6++WZXtx7ApevXr5+NHj3alY7SKJX333/ffvjhB/fcgAED3OTLKmujslKTJk2y6tWru8mXX331VZs+fboLtqvM1Ntvv+3mfNB3skyZMm77mLZB0kJwPoWizAQAAAAAAKmDMuYVmFfC+5njR+zEpiW2ISTEpp0oahMnTnT146Vly5aWO3duO3jwoAsCKoNeAXf/dV577TUX7FPwXlm4I0eOtC+++MJ+++03O3TokFtHQXsFAlu3bu3q1wO4NE888YTdeOONrnxUvnz5XO11/5rrO3fudN/J559/3gXW69Sp4wLyy5cvdxnxw4YNcxnymtw5NtvUqFGDH1USQ3AeAAAAAAAgGVMpmzQhIXY2MtLS5ipseVo/ZmGhIdagbjFr3LiKbz0F6zzjx48Pui9lzivg569Dhw7uFkjZuQAuneZ8EJWwUekodZz5B+fXrl3rSkf99ddfvmXqFMuQIYOtW7fOypcvHyUwf6FtkPQQnAcAAAAAAEjGiubKZBH/Xyfeo8daDiBpzg1x4kyEnTp7Lsrz3nwPHgXeT506Za+88kqUoL2kTZvWNm/ebMePH48ySXNM2yDpITgPAAAAAACQjHWtV9ymLNvhStsog16B+UoFs7nlAJLe3BD6nh49ddZ6f7LYvnuigCtPHUzZsmVd1nujRo2sc+fOvmC75oDQc82aNXMTOWtki0pNeRPCRrcNEzgnPQTnAQAAAAAAkjEF9ib3qe/LyFXGvALz0QX8ACTu3BAqQZWlyrW2/sAZt7x3w1IukK4JYKVLly6++5988ol99dVXtnDhQtu0aZNbFhER4QLtEyZMsE8//dT++OMPN7GzNyFsTNsgaQmJDBwvkQJo8oTs2bPb4cOHGb4BAACQgtDOS7342QMAkqOVK1da165d3WSc8bX/jh07uv+RtA2cutImLNxqZ8/9F4rV3BBd6hazQW3+mxsiNQpPxbHc0MQ+AQAAAAAAACAxaRLNChUqpKgfQkp8TckZc0MgGILzAAAAAAAAABCPVGpKc0GEhPwvY17/MzcECM4DAAAAAAAgVdizZ49de+21lilTJgsJCbEbb7zRLW/RooWtW7fOLStRooRb9sUXX1jFihV9E23++eefbrlKyGj5vffea7ly5bKqVavakiVLfMd49dVXLX/+/Fa6dGlX99uzb98+t3/dcufObb169bIzZ8645+bOnWvXXHONb12VwalVq5bv8dChQy1fvnxun88//7xVq1bN95xqifft29ftU+e1dOnSS35N999/v9vPZ599Fk8/gdTLmxtiQMuKrpSN/tdj5oZI3QjOAwAAAAAAIFX48MMP3aSZ+/fvN03D+N1337nlP/zwg5UvX94t++eff1zQ+o033rDvv//eDh48aP369bPu3btHKRmjoPzWrVvtvvvuc3Xfz507Z/PmzbM333zTfv75ZzcZ54IFC3zb5MmTx+1ft/Xr17sJPMeNG3fBc1bg/t1337VffvnlvH2KAvC1a9e2bdu2We/eve3pp5++5NekDoGdO3e614O4p0C8Jn9VjXn9T2AeBOcBAAAAAACQKlSpUsWmT59uzz33nAteK+s8GAWw58+f7zLV06dPb7fccovLLlcAXgoVKmT33HOPZcmSxe6++247deqUbdmyxQXlFfC+4oorXDD+ySef9O1T69x+++2WN29el53++eef25o1ay54zrNmzbJu3bpZ5cqVz9unlCpVyk06q9EAbdu2tY0bN17SaypWrJj17NnT0qVLd1HvKYBLR3AeAAAAAAAAKdrJMxE2Zs4mWxxRwu54YZRlypzFXnzxRbvhhhvc8yr94k/Z5irx4mW666ZAfmho8FCanr/Q8k8++cT+/fdf++uvv9y+Bg8e7CtrkyZNmigdBcqqv9C+PRkyZPDd99/Pxb6mrFmzxngcAHGP4DwAAAAAAABSdGC+3ch5NnjaGpuwcKt9vPacLcze2Ia+OsxXIiZ79uyuJvzhw4fd45YtW9r48eNtxowZdvr06fP2qSD7e++9Z0ePHrVRo0a5AHnx4sWtWbNmNnbsWJeRrv29/PLLUQLuykpXEHzVqlU2evRo33OqCa9lKlFz4MABV37G07RpU3cuq1evduV4XnnllVi97ot9TQASHsF5AAAAAAAApFjjF2yx1TvDTQnoe2a8a/8MvdGmP9zEbrn1NhdYlwIFCljr1q1duRoFyqtXr24fffSRq8uuYLqy0OvVq+fbZ4UKFVwGvErBvPPOO24CVWWg169f303OqoB6nTp1omzTo0cPF8zXZLEqb6NAvqdgwYL26KOPuvXr1q0bZcLXhg0butI5mjBWteVVmkeB9wu52NcEIOGFRF5obEwyFB4e7n5JqWcwW7ZsiX06AAAAiCO081IvfvYAgEs1cOpKlzF/9tx/IbCw0BDrUreYm5jzYikrXhOm6v+EtmfPHhf8V6eAf1Y+kJyFp+JYLpnzAAAAAAAASLGK5spkEQG5qXqs5cmFMvWV6a7/lWfbv3//xD4lAHEgLC52AgAAAAAAACRFXesVtynLdrjSNmlCQlxgvlLBbG75pVBZmYTOml+7dm2CHg9AwiA4DwAAAAAAgBQrQ9o0NrlPfVd7ftuB4y5jXoF5LQeAxERwHgAAAAAAACmaAvG9G5ZK7NMAgCioOQ8AAAAAAAAAQAIjOA8AAAAAAAAAQAIjOA8AAAAAAAAAQAIjOA8AAAAAAAAASBRnzpyJ8bkjR47E67HDw8MtsRCcBwAAAAAAAAAkipkzZ0b73IwZM6xbt27xdmztv3PnzokWuCc4DwAAAAAAAABAQKdBhw4dLD4RnAcAAACQYMaOHWvVqlWzoUOH8q4DAAAkQadPnz6vpIx/FvmJEyfs7Nmz7rZv3z7bv3+/RURERNmH//qnTp2K8TixfS6m4+kYR48ejbJ9YDmcYK8rcB/+dP5aV8c8fPhwlOf0HvgL9v7EBsF5AAAAAAlizZo1NmDAADt48KBt376ddx0AACAJUYBZJWSyZ89uhQsXtoceeshXUkblX1q2bGnNmjWzokWL2p9//mmrVq2yChUqWPny5S1btmx2xx13WGRkZJT1mzdvbnny5LGSJUu6tqAocN2jRw/fcX766SffOQQ+N336dN9zMR3viy++sPvvv9+37rRp06xXr14XfF1y6NChoOd555132pw5c9wxu3fv7pY999xzljt3bsuXL5/VqFHD1q5dG+37ExsE5wEAAADEu5MnT1rHjh3tjTfesLx58/KOAwAAJDEff/yxbdq0yXbt2uWCzitWrIjy/JIlS9zoR2WS16xZ06688kp3f+fOnW79DRs2uCC1Z/ny5W59Zal37drVXn/9dbf8k08+sXXr1vm2W716tW+bwOf8z+FCx7vU1xXdeX7++efWtGlTd8ypU6fapEmTbOnSpbZs2TLbvHmz9ezZ0wX6o3t/YoPgPAAAAIB498gjj7iLlFtvvZV3GwAAIAmaO3euy0ZXhnnWrFnt7rvvjvL8VVddZbVq1fI9VpC8YcOGbl2VLVy8eLGtX7/e93z9+vWtevXq7n6TJk1s69at7r6y0ZWVniNHDretl+Ee7Dn/c7jQ8S71dUV3noHUEfDLL7+4jHll0z///PMu4B/d+xMbBOcBAAAAxKuvvvrKfvzxRxsxYkSst1HNT9Xt9L8BQHKijEv/+sdxTSUcLvS7Mb7PAUDKcPJMhI2Zs8lW/HvUZq3a4R4Hq8GeKVOmKI+VYa6gtjLOVQe+U6dOUWrBp0uXznc/NDTU91zatGmj7PvkyZO++zE9F9PxwsLCotR5P3bsWLT7DHxd0Z1nSEhIlPV0jP79+7vMeO+mrPvo3p/YIDgPAAAAIN4o8+iee+6x8ePHW5YsWWK93ZAhQ1x2k3dT7U4ASE6eeOIJF7iJLyqrEN0kiwl1DgCSPwXi242cZ4OnrbF/s5a3SZ+8b80GfGwLFy/xlXeJieYSUva4yr6oQzA2WrVqZcOHD3dlYPS77J133on2ucBziO54qkP/66+/2l9//eVuKqXoadGihUsS0f4UTI/N65JcuXLZli1b3FxJmhD2tttuc/v97rvv3Dno92uwiWUvRthlbQ0AAAAAMdBkXMpcUoDe8/fff7sLHQ0xXrRoUZRsJc9TTz3lSuF4lB1KgB5AUqSAzc8//+wmFFSW5e23326///67y1hX4EgTB7Zv3951NOr3n4JDmkjwmmuu8WVlfvrppy54pBINyvzUhILe78Zg+xdlj6ZPnz7Oz0HPKTu0UaNGifae4vJogkzdlAGcHPePhDV+wRZbvTPcNK9q+rL1LdPerbZwzDPWbUYRu/Wmm1wpGdHvJP0O8ffoo4+6uusqNVO7dm03yWrGjBmDrq/sde9x27Zt3aSrnTp1sgIFCliXLl3smWeeCfqcSt4o2H6h4+l3otbV9iVKlLDOnTvbypUr3XPt2rVzde07dOhgBQsWtJtieF3+56mSjLrVq1fP/a8OgZEjR7okko0bN7rf17fccou9//77Qd+f2AiJ9Ka0TUHUcNeboT9OmrkXAAAAKQPtvORHQ463bdsWZZkuwK644gp78skn3cRegUOGg+FnDyApUtyhSpUqrv6wJrtOkyaNjRo1yo0W6tOnj8sA1aihF1980SZOnGgfffSRCyApqKPl06dPdwHOIkWK+G6atFCxjFmzZrmMzGD7lzJlytgPP/zglsfVORQvXtwKFSpkLVu2jFIDGsmLsnrHjBljX3/9dbzt/7333nP/ByJwn/wMnLrSJizcamfP/S9EHHEi3MJCzK4rlsaWfzbM/R6J798H4QkQy1WbVJ9Pb1RnQryu2CBzHgAAAEC8Ubambv6U4ZQnTx43kRcAJGcbNmxwv+OUnZ4hQwbf8q5du9rTTz9tQ4cOdRmce/futZdeeskGDx7sgufKSh80aJAr26DsT1GwSBmh586dszp16rigubJGg+0/vs7hgQcesI4dO8b7+4aUSxNmqiSJOo6QPBTNlcki/HK3d374gEVGnLHv8uWzO7p1tB49elhKcOWVV7pSYOrEVCZ9UnldBOcBAAAAAAAugToZdVMQXf8rCzNYwGfdunVulJDK1niaN2/uK0sjDRo0cP8ri/3qq69226jMzIX2H5fncNVVV/E5SIFUekM/e3XKxJTlHlPWe2wz4tW5pPWiO2Z0+9T/sRlJh7jXtV5xm7JshyttkyYkxIre/4lVKpjNJvepbxnSRv/zS262b99uSRHBeQAAAAAJSmUVMmfOzLsOIFlPoKg6zdsOHLcGdzxrrw0fYUsXL3S13lViRrWJFZRUoFIKFy5sZ86csddeey3amsTKgFepGlFdeNU41j4+/vhjN3fHvHnzouzfE9M6F3sOMQVSkXTpZ/zwww+7z4E6adq0aeN7TiMj6tat6+7r567RGfoMyIQJE9xcBdpOVE9b5ZC+/PJLi4iIsIceesjGjh3r26c+l16pHH3eNDnm999/b2XLlrXJkydbqVKlrHXr1i7QrlEcjRs3tpkzZ7pMek3AqdEb6gD64IMPrGTJkm5bnYtGfvz444/2008/+c4VCUcBeAXivd9pyqRXwD4lBeaTMoLzAAAASJZUk1cXgUh+ypUrl9inAACXFZhvN3Le/yZQPLLPjm5aYiOyZ7RbK2W106dPW65cudx6pUuXtldeecVq1arlJmNVcFMTsGoCQ6+mcvfu3X0Tv/bv399NXrh+/XpbtWqVm7BQc3aoTIjs2bMnyv49Ma1zseeA5NvpPXv2bPe5UQeLPjvqjBF10iiLXXbt2uUC6gqYX3vttTHuU4F7dfZoEk1ltuuzo/kIPAsWLHCTvo8bN87NIfPqq6+6iTIVcPcva/PNN9+4+RO0fs6cOW306NHWt29ft1w0cbH2M2nSpFhNMLt79243ebE6DhB3FIjv3ZB2dWJgWmUAAAAkO7rIrFSpUmKfBgAgFVJ2qQvMR5qdPn7ETu1YZ5vXLLcF63a4gKQygkUTZioYuXDhQjtx4oTLTlYAXqUVFKjUTdnJHgU2lY2cL18+mz9/vhthdPDgQbee9qHJYf3336FDB5cJHdM6F3MOnTt3ZlRTMqXg93333ecm9S1YsKA9+OCDUSbBVDZ71qxZXcB+zpw5tnbt2gvu85dffnHzIGgb7VPzEfhT6aUmTZq4jh1NOqykiWC+/fZbF7AvVqyYO4dHHnnEdSJ4lEnfrFmzWAXmRdn3muwWSCnInAcAAAAAAIgllX1QXeazkZGWLl9Jy33DgxYWGmK16xaz6tWr+NbT6K4hQ4ZE2VbZ67oFoyDowIEDoyyrWrVqtIFITe4qmtwwunUu5hyUYY/kWV5p2daDdibXbut2JsJlQHuljGTYsGGWP39+N8IiR44cdtddd7nyRhIWFhalg+j48eO++6r/rvI0Hv99iv/kw8rW9/YTrG78yy+/bI899ljQ16CAfXQ0IkQdSOpYqly5shvx8dFHH7nseWXra3J57VfPa0JkvUbNu6DOCNm5c6d98cUX1rRpU5edrw4CjRzwzjHY/uXAgQNuf+Hh4XbddddZjRo1ouzv+uuvd5n/KvejiZdj27EABMOnBwAAAJdNFzXK1hP/zKmNGze6/48ePeoudGTz5s2urq6G3gfy1te+lD0Y7DjR0f60361bt56XZa+LuIs9FgAAwagec4Rf0FL0WMsvFVnruNTySoOnrbF/s5Szz8eOsRYvfGFr/95gb7755n/rnTzpgue6qfSNysd4VPZo7ty5ru2k27vvvut7TgFtPVa77Z9//rERI0bE6rw0mmPHjh2u7aeAfdu2be2NN95wx9G5qF0WGOgPRuepEQDqIFCngjdXjf7Xa9EyBfbVNmzYsKELsmu/6ghQ/X1R+2/QoEF27733ukD70KFDfaMKotv/oUOHXIBf75VGHSg4P2XKlCj70ygCvT7V0X/22Wdj+RMDgiM4DwAAgMuiiyDVtlUdcQ1/9srN6OKrfPnyduedd1rFihXdBGOijKUWLVrYlVde6dbVRZ//+n369LEKFSq4TMBRo0ZFyfzyhun7Z1/pIqp27dpu8jvtt1evXr7n3nnnHTecX5mH2nbx4sWxOhYAANHRRImVCmYzJd8qY17/67GWXyplrevvFXAp5ZUylG9oGUvVsjmv3WPNbrjRlZnxJvdVoPrPP/+0okWL2osvvmgtW7b0ZXqr/XTjjTe6YLSC6KpD722nDiMF6OvUqeNq2Ddq1Mg3kbC29588WJno3mPNb1C8eHGXVa4Mc53LCy+8YHfffbcLgivj3stQD9yPP829oNI5CqArS/6WW27xlXNSxryWaZ+asFZBee1bgXod35vgVk6dOuVK6+i1q9a+nlNiRnT7Vw19vS+fffaZ+16qNJTauv60v+eff97ef/99N5EtcDkoawMAAIBL9vfff7uguWqX6kJMGUn+lDFVt25dN/mXZ9GiRS5TXdlHWq7tFUT31lftUdXdXb58ud1www3uwksZ8dq3sqIU1NcFpkcXWioF4AXePdrm6aeftiVLlriOA2V/KXCvyfZiOhYAADFR2ZDJfeq74KhK3ChjXoF5LQcSo7ySguM5r+lleZvebl3qFrNBbf4rr6RSLmo/Reett95yt0AKnGuSVwWolVWvNlSnTp3ccwrw6+Zp3Lixu3mlcr777rso+7r99tvdLVDgfvxL9Rwq1thWz17ssvtLlCjhMtbVSRBIIzbVsaXgvOeJJ57w3Vcdfq9TIXfu3G5OB5WnUUKJJqYN3L9K41xxxRW+7dVx4T8qU21Qr6SPklOUkQ9cDoLzAAAAuGR//PGHy7JSYF4U3H7uued8z+tisXv37r7HylhXtpTqdCpbXTVPddHjfyHYpUsXd1/LVQpHQXQF9HUcXTyJLvC8LCZlSOniSsH1a665xtX+9IL1yvJSYN47t4ceeshlS2XMmDHaY0WXwQUAgEeB+N4NS/GGIEWVVwqkoLYyz9Vma9eund1xxx2WEKV6NCJAHQ8RNe+0q1o+bPeVP2FdO3dykx+nTZs2Sp38smXL2u+//+4C8sHq3Suwvm/fPpdtv2vXLlcGUe1ElbHRqE5l3SvRQxn52r9GWmoCW4/aoJq7AYgvBOcBAABw0bysph//2mNrt+x2jxWo8OrOexQAT5cune/xrFmzXIaTAuHp06e3Tz/91D755JOgw6K9x6oFqmC6/77976tjQBn82vfPP//sJu1S1nzgNprkTPvScWM6FgAAQFKn0RpTlu34L5AdGXnZ5ZUCqa56YpXqCV83z079u85+t3O25dxeV17HGwmg0Zf33XefC6SrLI0midXzqj2vdqeSOZQZL1myZHGle1Sq5ocffrD777/fBea//vprX516lf3x9q8kkuHDh7ukDx1LE8CqvQrEF4LzAAAAuOSsJjtZwLYuX2J1ez5jo/reYsNeGRo0a8mjYcB79+61ZcuWuWC56nV6WfcxUUa8atd7gfynnnrK99zhw4fdPlU7XgF5raMJxzS8WtuonE39+vXd0GxdaOmiTRn8AAAAyVVKLK8UpVRPWDoLzfC/yV8r1braxj9/n1tHbT1NLqtsd7XpdJszZ45Nnz7d1q1bZ6dPn3YTxXoKFSrkguuqDa8SOmoLevtRKRyV4VF7sXXr1r5g/tKlS23q1KmuZM2jjz7qG4WpfWm0pkfZ+HoeuBwE5wEAAHDJWU2WIavlvWWA/T13onVb+ZM9+eA9Nn/+fLeegvRlypSJsq3KzKjsjLKZlI2k7CXVhI9ufdUBdXVUc+Z0k29pwi7R0GNl4IuWq5SOsvQ1+Zgm59Lwa1GG1MCBA90y1b73aqrGdCwAAIDkIKWVV/Iv1ZOxVE13U9OsecuKvpGPUqlSJXfzqA2oiWd1C0YZ9oHzCjVv3tzdglFmvSbEDaR69aq971FwX4F94HKERKbAsbvq2VJdLGVRZcuWLbFPBwAAIEUZOHWlTVi41c6e+18zMuLoQQs9e9KuL5vVji2Z6jKQxo4dGy/Hpp2XevGzBwAgZTuv5vz/l+rRCIFLGRGg+vKqH+8fUEfSFJ6KY7lkzgMAAOCyJiA79PtEO/nPcpuRN6fd2Kyxvfjii7yjAAAASNRSPYGZ7kBSRHAeAAAgGqpbrgmhvFIqCD4BWZ4W911WVhMAAACQEkv1ABdCWRsAAIBoHDp0yEqUKOH+x/nDjhNjArLUPOQ1teNnDwAAkDKFp+I2PpnzAAAAuGhkNQEAAADA5Qm9zO0BAACSTAmaoUOH2s6dO23kyJH28ccf2+nTp33Pnzt3zqZOnWqvvvqqff311+6x/3bbt2+3d9991yZMmGBnz56Nsu+L3efMmTNt3rx57v6///5rzz33nB0/ftw9njZtmi1ZsiRB3hMAAAAAQNJFcB4AAKQICrIrCN65c2fbtGmTvf/++3bXXXe55yIjI+2mm26y8ePH28GDB+2tt95y6/lv16FDB7fdiBEj7Lbbbouy34vd5/79+91j+eabb+y1116zOXPmuMfPP/+82xYAAAAAkLpR1gYAAKQYympX5nuhQoVs165dduWVV/oy2deuXWtdu3Z1jxs0aGAvv/yyq2kop06dso8++sjKly/v7pcsWdLWrVtn+fPnv6R9Nm3a1B588EEXhNd6ffv2df9fddVVtnHjRqtRo0aivUcAAAAAgKSB4DwAAEgRE5Ou37rLMmTOYrny5nfL8+TJ4wu+r1+/3rJkyeLbJiQkxJ588klfBnv69OldYN67X7FiRduyZYsLzmtCIgXmL2afWq9AgQL2119/2YoVK+y9996zG264wQXwdQsNZfAiAAAAAKR2BOcBAECyDsy3GznPVu8MNzt1zE6eOeceT+5T38JC/luvdOnSduzYMevfv7+lS5cuyj4OHTrksuWVKe9lzq9Zs8aKFy8e47Fj2qcoe37YsGFWtWpVy507twvef/7553bttdfG3RsAAACAJE9tRiV+aHRmxowZE/t0ACQhBOcBAECypYx5BeaVAH/u3P+y4PVYy3teVcy33nXXXeey4WvXrm0tWrRwF0XKiH/kkUd82fK9evWy+vXr29y5c135GQXqFbiPzoX2qSC8atJrkllp0qSJmzh2wIAB8fyuAAAAIDFt2LDBihYt6tqYixcvdiMoNSLz008/dYkbAOAhOA8AAJKtbQeOW5qQEDsbGWkhYekse71b3WMtV+mYp59+2q2nrPWpU6faDz/84ErNnDhxIsp+MmTIYJMmTXKTt1arVs06duzoW65SNZ6L2Wfjxo3tmWeesdatW7vH3bt3t6xZs1qlSpXi/X0BAABA4nn88cddUkaZMmVs3Lhx9txzz9n999/PjwTAeUIivWKrKUh4eLhlz57d1YRVBhsAAEiZxszZZIOnrXGZ856QELMBLSta74alYrUPZceXKFEixix5JB2081IvfvYAgMSm9qJK1BQuXNg9Xr16tWtHZsqUyf2d0q1IkSK+zPn9+/db79693YhLjbTUqEs5d+6cbdu2zXLlyuWSN4DULjwVx3KZjQwAACRbXesVt0oFs7mAfFhoiPtfj7U8tgKz4wEAAIBgNEfRbbfd5u4ruF65cmWbOHGiezx8+HD78MMP3f22bdva+vXrbdSoUTZv3jx74403rEePHu65WbNmudrzzZo1s2LFilm/fv14s4FUjLI2AAAg2cqQNo2b/FU15lXKpmiuTC4wr+Wx3gfBeQAAAMRCrVq1bO3atXbkyBH7+eefrU2bNu5/ZcfPnDnTBg8eHGX9QYMGuYD+rbfe6m4nT550677//vsu+15lERXs79y5syutCCD1ITgPAACSNQXiY1vCBgAAALhUadKksfr169tvv/3mgvHKer/99ttdqZuVK1da3bp1Y9xegf2dO3fao48+6lumkjj79u3jhwKkUgTnAQAAAAAAgGicPBPhG6mZqcSV9sOPP9off/zhgvEqbfP222+7+2nTpo3xPcycObO7LVu27ILrAkgdCM4DAAAAAAAA0QTm242cZ6t3hluakBA7cayA7f3sTWve9BqXSX/ttdfa008/bf3797/g+1emTBmrVKmSdevWzR544AE3AaZUqFDBwsII0QGpERPCAgAAAAAAAEEoY16B+chIs7PnIi0sT3ELzVnE8l7R0D1//fXXW6FChax58+a+bcqWLevmNZKiRYv6gvAhISH2zTff+CaC7dixo7sdPnyY9x5IpUIiI/XrJWUJDw93v/j0yy1btmyJfToAAACII7TzUi9+9gCAxDBw6kqbsHCrC8x7wkJDrEvdYjaoTRV+KEAcCE/FsVwy5wEAAAAAAIAgiubKZBEBea16rOUAcLkIzgMAAAAAACDJOXHihM2ePTtRz6FrveJWqWA2Cwn5X8a8/tdjLQeAy0VwHgAAAAAAIBU6deqU/frrr5ZUz2f37t3Wo0ePRD2nDGnT2OQ+9W1Ay4qulI3+12MtB4DLxVTQAAAAAAAAqdDevXuta9eutn37dksKktr5eBSI792wVGKfBoAUiMx5AAAAAACAVDDh4pw5c+yHH36wRYsWuWVLlixx2epaNmvWLN+6Co5r3V27dp1XYub06dP2xx9/2D///HPec2fOnHHPbdq0yS0/duyY/fbbb7Zz587zzufvv/+2+fPn29GjR33Lojsfb78bNmw4bz8xnau20z6TWrAfADxkzgMAAAAAAKRgq1atsiZNmliFChUsU6ZMVrVqVatTp45NmTLFjhw5YsOHD7fs2bNb06ZN7eGHH7bvvvvOihYtamvWrLGBAwfaPffc40rMtG/f3sqWLWshISFun88995z17dvXPXfrrbdayZIlLX369LZ8+XK33SeffGI5c+a0v/76y2bOnGk1a9Z059OpUycXtC9WrJht3rzZvv76a6tXr9555/Pyyy/b8ePH7brrrrNz587ZypUr7aWXXnLnIxc61/Lly1tYWJg9+eSTVqRIkUT+KQDA+UIiIwOmnE4hvcH6JX748GHLli1bYp8OAAAA4gjtvNSLnz0AXDoFu5XNPmLEiCjLlVGuoLiXWf7LL7/YQw895ILisn//frvvvvvs4MGDtmXLFhd8X7hwoQvsK4u9du3aLoNez5cpU8YF7BUQV1BeQft169ZZ/vz57cUXX7Q9e/a440+bNs0ee+wxlwmvjoKRI0fauHHjbN68eeedj/at/a5YscIqVqzoMu3vvvtuF+y/0LmWKlXKdRKoIwJA0haeimO5ZM4DAAAAAACkYK1bt7YWLVpYlSpVXAa9gtjKog+0ePFiFyRTMN+jYLmy1yVfvnwuMC8KmitYv379esuTJ48VKlTIBealdOnSVqlSJReY99ZV4F7+/PNPlwmvwLzccsst9vjjj0d77tqvAvOirH3VpY/NuRYsWJDAPIAkj+A8AAAAAABACnTyTISNX7DFth04Yf0++MGqZjxkv8762Ro1auRqtIeGhpp/QYXcuXO7ALtqvgdSUFxZraojnzlzZouIiHD7UNka0b78BT72jqNjKGveoyz5XLly+bYJLPAQ035iOte0adNe8P1R/XyV6InNurER1/tLrGMAieXcuXPu90qBAgVSzQ8h3oPzmsBj6NChbkiRejhVj6xWrVrRrv/222/bsGHDoizTcAYNWQIAAAAAAEDsAvPtRs6z1TvDLeLAv3bq0E4rljOjtSsVamnSpHHrKONd2ecTJ050wbB27dq5uI0y66+//npXPz5r1qx29dVX+/bbvXt369y5s33zzTeudIyy5P0nh72Qtm3bWv/+/W3QoEEue18xo169egU9H+0/OrE51wt5/vnnLUOGDPb000/HepuE3F90x8iSJYuro59a/frrr648kj4r6qQZPHiwW66Oow8++MC2bdvmSi516NDBt43mItB7NnbsWNe5oc+N1ymEpGPv3r1udE9qmsQ5avdjHFMdMg2batCggX322WfuF/Y111zjhjxF59ChQ67XVV8076bJPQAAAAAAABA7yphXYF6J5se3rbLwxVNt1c+TbPrvy+znn392Genp0qWzjz76yL766isbNWqU5ciRw5YsWeJqP2u5SsaoHrxHAfM77rjDra/ApgL0kjFjRmvcuLFvPcV1VGLGoxIz1apV85XG+f33392krZMnT3Y15DWRqwSeT+B+9bwmrZWYzjVwO6QcKovUrVs3F5TXZ0rlk0QjOfQz11wE+oypE8O/XJI+T3feeacrp6R9+AfugRQ7IWybNm3sxIkT9uOPP/qWVa5c2Ro2bGjvvfde0G00SYiC8QsWLLjk46bmSQQAAABSMtp5qRc/ewC4OAOnrrQJC7fa2XP/hX3CQkOsS91iNqhNlYt+O5Udr4TLi8mST+qU4e5luquchn8JHZWP0eOwsLBoy8ko5qWgsPah9WLa35kzZ+zUqVNu1II6D/z57ztwO4+3XPtOzZnzKmOkzhxlyCvGqPdNlNx77733urkNtEwVPFT2SNn0es+1bPPmzVaiRAn3fqtz5+jRo0Hfa/xHn1m9d/p8a1JnddDps6jONXW66Tugxyp15WW7673VZ9Tjv77mhNDnPLAs0969e12nyt9//31e5rwSufWz0uiYvHnzRtmvlvvHfmNzrKQmXj+Bs2fPtubNm0dZpkx6fWFisnbtWrviiivcEBQNM1GtIaQ+3mQxAAAAAADg4hTNlckiAvIx9VjLL0VKzUbfsGGD1axZ072+Zs2a+SaUfeSRR2zMmDG+9Z599ll788033X1l/Cv4p+xtBSv12KPgYtWqVV2GdqtWrVziqCi7X+tqGwUhlcntUZa3srqDnce+fftc2R7tT88rwJxayzSNmbPJ5p0oZAWq1Ldbb23v3k+VR5J///3XypUr5wvWFy9e3AXlDxw44NuHAvPeCAwF5RWkR/T0mVegvXDhwta3b19fmXIF6fUZV4krTQr9xRdfuOUaLaOb1ld5qf3790dZX+Wr9HPRqJspU6ZE+fwXK1bM3fcvda4ge/Xq1d0xtF+N2vFoPSVmFylSxK2j711sjpWqgvNHjhxxv4ACC/jr8Y4dO6LdTj0tTzzxhKsB9corr9jq1autRo0aUb5MwXpxlEnjf0Pyd+WVV9rZs2cT+zQAAAAAAEh2utYrbpUKZjPFKpUxr//1WMsvRf78+e2TTz6xlGb+/PkueKdYkgK7n3/++QW3UTBx0qRJLoCuzN3bbrvN95zKqmh/Bw8edAF1VYiQu+66y62r4yiZVXXSveBlTOehTHl1BCh7eMKECa4kUWqdP2HwtDU2cfF2+ytfMyt97/s2b+FiN3elOiwUmFeZI2Vyi+4rCK95DHDxNGnzhx9+6EqTK+DtdXp41GmkziclVPfs2dMtU7b7pk2bXLKtAuTvvPNOlPVvuukmlyGvz7bmi/B+TqNGjXL/i/9xvv76a1e6SN8l7dsro7V06VIXM9b8pPq+tGzZ0vr06XPBY6W6CWE1jMAd4P+H/3g0lEBDfqKjnhj/ISXqlVEPyciRI23AgAFBtxkyZIivpwwAAAAAACC1y5A2jU3uU9/Vnt924LjLmFdgXsvxH9Ue97J2VU4jNmV76tSp4zLrFRS88cYbXeUHT8eOHd2ci/Loo4/aAw884O4vXrzYZccrCVVBYwWRFVRWJn1M56FAvjKTVS5HE+i2b98+Vc+fcHTrCju2+lf7TZMLTzzh3j9lait2qDkvlUWtWKJKbCuAGxhURuzMmzfPlStXZrroc6y5IDyafNm/U0qJ05oo+vvvv3dzTmhUgr4bHi27+eab3X39nDRpb7Dj3HXXXb65R5UtrxJG+m7oO6HvlvajOSu0b/3Mve+ZPgNe5fbojpXqMuf1Q1ItIP9eQK/3wr8+0HknFFDrSftRiRv98orOU0895bL0vVtSf9NxcTRqIvBzJOrk0R8yb6hXYDkc9SprCAwAAAAAAKmRAvG9G5ZyNeb1P4H5/8qjqCb/sq0HLU1Y2igxKS+hVMmm/qP5/WMP77//vr366qtuXQUM/TOEVVve/75Kq8hjjz3mSjcrKK8M+ooVK0bZv2Jowc5D9/3X899/aqHOpTT/H2QPzZjN0uUrZRkLlLHK17azZcuWuc4O+fTTT93PRiW11amhzhCPkn79qURRUq9Fnpjfjx/X7rPlm3e7x6La/f40KsSfAvdeXHbnzp1udIl/crb3M/I+015Sd/r06aN8t/yPo4oaige3bdvWFi5c6Mo6aTt1VPlv49Wj9zpiojtWUhVvwXm9eL1p6gHxN3fu3Cg9iheiXg9N4qAaQdHRD0DF//1vSBk0a7s+R6oT5V936rPPPnO9aprTQP97dd+8L6+G1Kgckn4xAwAAAAAA+JdH0WS5v2/cb58u2uoLQPorW7asK6OhQKNiW/7lbhQYVHa2sudVPmPFihW+5yZOnOjW37p1q73wwgsuUCwKsJ88edIlICqYH9t59rS9soeViKqAc2zK7qTk+RPS5SlmWau3tMzVWlizFq3Om1y3UaNG1rVrV9f54e+ee+6J8lj1y72OE5z//VgRWdwW/DLDGtz7ii1d/perZhLTKAR1dOizrTI4Ku302muvxeptbd68ufueffvtt+6xf2UUlazRd61hw4bWrVs3V15HGfmag2HGjBnuu6Dg/UMPPeS+h8lVvE4Iq1mS1XPy228abGKudtacOXOi1AEaPny4q0Pk0VAE/QITveGqP6/HmmQAqY9+qSo7fvny5b46bZrkQ78UvvzyS/f5Ug0q/cHzz67XxBOqc6UvKAAAAAAAgH95lLPnIs1Cw2zv8Qi33Mu49TLYe/ToYVmyZHGJf8qSv/XWW30ZuZUrV3ZzKpYvX97WrVvnK8OsbTt16uRqXKskh5IJFdcSlVhRVrcSEFUrW5PresFhbeef7et/HtqXklDr1q1rL7/8sgs8+6+bGsT1/Am48PcjJHsBy33Dg7biu4+sfdeeLiCucjGiz22hQoWibKsyMvqMtmvXziXXatSCl2gduL4SulWGRooXL+7msnj99dfdY33PNMeCaEJmfY8U49PktJpzQVnz2kalnt599123vubDeOutty54rKQqJNIryBNPFDTVLw+9Oepheemll1zQ3qNfMgrQqwSJlxGtHkGVv9FQBtXT0i/B6667LtbHVM+KZuzVUAqy6JMvDSHT0BR98UQ/U/VYq26Y/kgWLVo0yvqajKVSpUpuO32e9EcUAFIq1fTTxUBsamJeLGU6jB492mX9AEkN7bzUi589AOByqZSNMuZdYP7/KdjbpW4xV/oHSTurm/kTEvb7EXH8sKU5d9ZalM1se2ZPcHE4/8oVcSk8Fcdy421CWM8zzzzjegmV1axa84ETxCqz+fbbb/c9Vq0u3bxZrf1rbiF1/bLVr4Kzkf8NmVHnjupEZc6c2UqUKGF//vlntPvxAvoAkFKpb33Xrl1xsi+NalOmgTo5vcC/hiQCAAAAKbU8ikePtRzJY/4EJNz3Y/+Mt+30zr/tm9y57OaW17kEbCTD4LxouI03JCFQjhw53C2QN1QCqa+2lYbQaKKPc+cirf1782zK/Y2iTFqjmZY1gcqDDz5oXbp0ccF6DVNR1jwA4OIRjAcAAEBqoDIoU5bt8MUdFIikPAoQ/PuR/5YB7vsxuU99JpNOrjXngcup/ZY2b3Fbs+uIr/abgu8qj6TJPn799Vc3mYoC9BppoYkhPFWqVIlxkgoASElUfkYTYdevX9/mz5/vC7ZrhNEHH3zgamSqfJyMGjXK1bjU70nV7NPvUencubPLnlfdzDZt2rhlERER9vjjj7vycq1atXJlxTya70N1/8qUKeNqXu7evdtXDqdDhw5u/hiV3Fm0aFEivCMAAABAcEr8U6BxQMuKrpSN/ifwCPD9SPGZ80BsqJSNeubO/v8QmkK93nK137RcNNu5R5M7aOKHYDR5LACkBgrCKwCuCbIVXNckPBs2bHAl5LZs2WLLli1zz2mCnOnTp7uJtTWJjmr59erVy9Xye+yxx+ydd97xlbXRaDftU52gGp2kSdy1neaM0Tpz5851dQZHjBhhuXPnto8//tjuv/9+NyGPzmfy5Mmuw+Dhhx92xwUAAACSEsqjAHw/khKC80gyqP0GABdv2LBhLthetmxZ+/DDD11gXVn0GkGkCdlV+ku+/fZbF0Rv1KiRezxo0CC3rYLzKiWnoLwy5z1169a1nj17uvvdu3e3wYMHu/sK4KsTVNn0orlA/Of5qFWrVpS5ZAAAAAAAQHAE55FkUPsNAGI/cfbmXQf/V8IrTVrfc5pI/fTp0+6+gu1eYF60XGXB/NdVpnt0smTJ4ruvTPwzZ864+5rzQ5O5K6Peo5JjHuaMAQAAAAAgdgjOI8nVflPQSaVslEmvgL3/ZLAAkJr5T5wdEnHGIiMjrV7Xx2zZF2/Z6hV/2h9//OFqzAejybRVikY14hW0V4mahg0buueyZs1q+/fvd/u70Jwd119/vT311FPWo0cPK1WqVLy8TgAAAAAAUgOC80hSqP0GALGbOPvcuUiXNb9j21ZX+z2NnXO14/Ply2cnT548b1uVplmwYIEVLVrUPW7atKk9/fTT7n61atUsNDTUZb03btw4SlZ8oPbt29vff//tJpZVxryy6lu3bu3qzAMAAAAAgNgLiVSaXAoTHh7u6u8ePnzYTXYHAEBKMHDqSpuwcKudVWDezCKOHbT0WXPZbTUK2PM3XxmlvMzu3buDTsh69uxZd/OvE+85dOiQqyGvkjbHjh3zlahRSZsjR45Yrly5oqy/b98+375y5MjhSuf4bwfEB9p5qRc/ewAAgJQpPBXHcsmcBwAgmU6cnSZzTve4ZP4cUQLzEiwwL8p01y0YBdg9qlnvSZs27XmBecmTJ0+Ux9rGfzsAAAAAABC90BieAwAASYjm4ahUMJupLHxYaIj7X4+1HAAAAAAAJC9kzgMAkEwwcXbimzVrlo0aNcr27NnjJtD94osvLG/evK6czyuvvGJLliyxkiVLuklzCxUq5LZ54IEHrFWrVvb111+7ckN33XWX3XDDDTHuDwAAAACQ8hGcBwAgGWHi7MRz/Phx69Chg73++utWrFgxt8yrh9i1a1cXXL/nnnvsxx9/dBPrrlq1ypX5WbZsmc2ZM8cGDBjgail27tzZNmzYYBkzZox2fwAAAACAlI+yNgAAIMXo2bOnm9hWjh49ak888YTddNNNtnnz5ovez/79+6MsU/A9NDTUTp48aUWKFLFrrrnG0qdP744zbdo0Gz9+vN144402YsQIt3z+/Pm+bZ977jlr37693XHHHXbllVfamjVrot0fAAAAACB1IDgPAABSjJ9//tkFu2X48OEuQ/3OO++03Llzx7idguYqLeO/nxMnTrj7J89E2Jg5m+yVnzdb7xfes7m/z7NmzZpZzZo1XZkadQZkzpzZsmTJ4tu+YMGCvk6CwMlzM2TI4M5R23z77bcuiO+/PwAAAABA6kBwHgAApEgrV6607t27W+vWrS9YLmbmzJmubE0gBebbjZxng6etsQkLt9qn/6S3/TXvsLXrN1r+/PltxowZVrhwYUubNq2rHy9bt261xYsX2xVXXHHBc6xbt6599NFH9s8///j2BwAAAABIHag5DwAA4ty+fftsyJAhduDAAevWrZuNHTvWZbLnyJHDlYzRpKifffaZlSpVyh566CF7+OGHbf369ZYpUyarU6eO3X///S7DXLS+armrbIwmXtW6VatWdc+p9MzQoUPd8XQcz2uvvWa//vqrbdq0ySZNmmQTJkyI9hjvvvuuy5pX9rzqwL/33ntuH8q67/5gf1u8YadlrdXGQtJltP3ThtvOyEgr+MI+O3PiqMuQv/rqq92kripbExISYqdPn7bKlSvbN998415bdFRqp1evXu7+4cOHXT16ZdADAAAAAFKHkEgVPE1hdHGbPXt2d6HLxGoAACQsNS1q167tAujXX3+9C4xrktQtW7ZYgQIFXH314sWL27333mtVqlRxNdjnzp3rysCcOnXKPv/8czdB6rBhw9z+tH7JkiVdgF7B9Q8//NBlmqteuzLPK1asaC1atHDB+59++skdZ9euXdanTx93fAXP9X90x1ixYoULiqszIV++fNakSRMrX768O2be2q3s18UrLPzPn6zgHe/Ymd0b7NBvY61CuXI2oE9Xdx4jR4605cuXu3MtU6aMe20KynuvTRPCqhNCbRP566+/rGjRom6yWGXYK6Cv57R+WBh5ExdCOy/14mcPAACQMoWn4lguV4AAACBOrV692mXMf/DBBy7w3LJly/Nqvr/66qtWv35932M1wBQw37ZtmwugK+Pdn7LuVZNdVAZm586dbj3VaFfNdgXqb7jhBl9t92rVqrkyMeokUGA+pmOo/Iwy5ps2bWolSpSIcsxlx3PasvRXWPhfP1nk6eOWJktuO73nHztXrKB98sknvobkkiVLXFBfAfc333wzymurXr16lNfiZf2LJoEFAAAAAKROBOcBAECcUH328Qu22Nw5iy00c047dfacZUibxgXFs2bNGmVdZa17FCi/7rrrXLa5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PF/B9UhxM94LFizoyTeRlEEfSd8b1KsNmQM15wEgk8iVPauN7tXE+rarYV0alfefmtZ8AMdfa3LQT3/aZ3uq2uCXX/WTcGXDByfca9as8ftqsnzuued6X4fo6GjPptctMriu2vLKilm7dq0PYw0y6jU8VqWg1Ew52L/2p5P3J554wvbt22ffffedZ803adKElxAAAABIBkpoU2KbTuGzZdFIWSPRDUmG4DwAZCIKxHdvXtn6d6zlPwnMAydWa3L/9s22+pkONuGuFla6VEkvMaPa73LTTTfZgAEDwg1h33//fQ/MV6lSJRycV0A9oOGtCq6rQZQavarGpIL7wboa4hq5f+1PdeWLFCniw2TfffddhroCAAAAyYRENySnqFDkOOgMQl+AlbW2c+fOY27KAAAAkJh+Yxd6xvzhI/87dQodifHMma5nV/ILXnGpOatKzkRmyQclZoLmrgrGq+a8fsYVd91joTI6Qd37+KYzAs7zMi9eewAAgIwpOhPHcqk5DwAAcAK1JqOyZLUjUf+bH5/IuvLhE6/jCLQfz7oBXQxIbBoAAAAAkHYQnAcAADjOpspZo6I8UH+yTZUnTJiQobLaAQAAAADHjuA8AADAcdSaVO35ddv2esa8AvMn07uBzHYAAAAAyLwIzgMAABxnU2UAAAAAAE4WhUiRbN555x1bsWIFzzAAAAAAAAAAxEFwHslm5MiRtmrVKp5hAAAAAAAAAIiD4DwS1aBBA1u6dKnfv/nmm+2cc87x+/v377cyZcrYoUOH7ODBg9a7d28rW7asVapUyZ544onw9uPGjbOrr77aLr74YitWrJhdfvnltmDBAjv77LN9+s477wyv+9lnn1muXLksT548VrVqVXv99dfDy3T/hhtusEsvvdRKlChhF110ke3cuZNXDwAAAAAAAEC6RHAeiWratKlNmjTJ70+ZMsV27Nhh0dHRfr927dqWPXt2e+mll2z69Ok2efJkD8a/99579uGHH/o2CtyPHz/eqlSpYl9//bWtXLnSunTpYm+88Ya9/PLLvu6AAQM8yN+xY0ebOXOmDR482Pfz4osv+vrKwF+7dq3P00WAxYsXW7Zs2WzYsGG8egAAAAAAAADSJRrCIlEtW7b0AHqrVq08K7569er2448/2rRp03yZTJw40e6//35fLrfffrvPk9GjR3tGvbLcle3euXNnK168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Pnw4xY4JAJAxKRh/9913W+HCha169epWunRp++ijj1L7sAAAAIBURXAeADKpRx55xHbt2pXoOm3btrUdO3ak2DEByJiGDBlikydPPu5lSfXYP/74Y7LtH8dm8ODB9u6779qMGTP8c+WJJ56wLl262Pz583kKAQAAkGkRnAeATJCtuGTJEg+IzJ49OzxfgZH8+fMnuM6KFSs8a17Z89OnT7eDBw/6/H379tnChQtt69atsR5H28XExNjGjRtt9erViT42gMxl1qxZtmbNmuNellSPHfxNiuv111+3SZMmJdtj4x+vvfaa3XTTTVanTh2LioqyHj16WLVq1ezNN9/kaQIAAECmRUNYAMjAdu/ebc2aNbO9e/dakSJFPBj/7bff+rJ27drZb7/9Zvny5Yt3nffff9/27Nljffv2tWzZstm4cePsu+++s3vvvddKlixpf/75pwdXnnzySd/f+eefb61bt7bFixd7AKZnz54JPjYApAW6aKi/b0he27Zts5UrV1qTJk1izW/atKlfPAEAAAAyK76NAEAGDzwVLFjQg/DHu85jjz1mr776qn399ddWrFgx++uvv+yBBx6wd955xwPtyqC/6qqr7Oabb7YKFSr4Nq1atbJPPvnE76uMxNEeG0DK0mgWZYtrRMw555zjF/CUydy8eXMv/1K5cmWbO3eurV+/3qdHjRpln332mWXPnt2qVq1qt912m1+cEy2vUqWKr798+XK75JJLrH379r4sFAr54+jvix4nUmLLEnu8Z5991v/GKNtatA8Fd3VL7PeSAwcO2MCBA2Mdp0YEKWtef6P0d6579+52wQUX2Pjx4/2WJUsWu/rqq8P7iO/5wbHR54cULVo01vzgsyUhet10C0RHR/OUAwAAIEOhrA0AZGBnnHGGZyzWrVvX7rzzTg8qncg6ogCWAiOqVX/XXXdZnz59rFKlSr5tQEGv490vkN6o3FN6LYXy6KOP2ltvveWjWlRu6qGHHgqXlFEGs0a8KDCukTWi/7+6CNepUycvbXXxxReH96X1b7nlFl//zDPPtOuvv96WLl0avrg3bNgwD5wrCK6AeyCxZYk93tSpU71sVkCB+HXr1h319xIF5uMeZ7ly5fziwllnneWPqaC/Lkgq6H722Wdb7dq17YYbbvBjTOj5wbHRhQ6J22BcTcmzZs2a4HZ63XSRN7jpNQMAAAAy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WVL7AAAAANICmikDAI6VmkcrkAAAAHAyCM4DAAD8fzNlNU+Oivpfxrx+0kwZAAAAAJBcCM4DAABE1Gfv266Gl7LRT01ntPrsAICksWrVKuvatau1bdvWxowZE56vhuD333+/tWjRwq677jpbvny5z587d65PR+rRo4dNmzaNlwQAgEyKhrAAAAD/j2bKAIBj9fzzz/ttz5491rNnTytXrpydddZZXos+S5Ys1q9fP/vpp588SK8yOGoIrkD8kiVL7LTTTrPVq1fbt99+a0OHDuVJBwAgkyI4DwAAAADAcXrwwQetffv2fl/B908++cRq165t48aNs23btln+/PntvPPOs6+++somT55sF154ofXq1cvefPNNGzRokA0bNsxuueUWy5qVEVoAAGRWBOcBAAAAADiK/YdibOT0NbZu217bsGOf5S9YOLysWLFitmnTJs+iz549uwfmA8WLFw83j73pppusTp069vjjj9sHH3xgs2bN4nkHACATo+Y8AAAAAABHCcx3HjrVBkz43UbNWGurtu6xOwYMsX0HD9vBgwc9a/7MM8+0okWLWsmSJe3TTz/17VS6ZsqUKXbGGWf4dKFChbxGvWrPt2zZ0tcHAACZF5nzAAAAAAAkQhnzizdGWyhkdlj/mNnOPXutbPkKli102OvJB81eR4wYYVdddZU9/PDDtmHDBv9ZrVq18L7+85//WP369W3evHk85wAAZHIE5wEAAAAASIRK2WSNigoH5ou0udVy5i9ilzc4xW45u5RVqlQpvK4y4v/8809buXKllSlTxgoUKBBrXwcOHPAmsSpvAwAAMjeC8wAAAAAAJKJckTwW8/+Becle5BQLRZlVK1cyVmA+kCNHDjvttNP+Nb9jx472008/2RdffMHzDQAACM4DAAAAAJCYro0r2Gdz13tpG2XQK1Bfs3QBn388BgwY4M1jS5UqxRMOAAAIzgMAAAAAkJhc2bPa6F5NvPa8Stwok16Bec0/HrVq1eKJBgAAYZS1AQAAAADgKBSI7968Ms8TAABIMlmSblcAAGR8hw4dslWrVtm+ffuOa7t169bZwYMHLTPatGmTrVixIln2vXTpUtu6dWt4eu3atbGmk5r2/9dffyXb/gEAGVtMTExqHwIAAEhDCM4DADK8P//80w4cOHDS+/n999+tXLly1qpVK5s7d+5xPWb79u1t8eLF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UKBetSmDYbtqABv3vmpBjx071jPcFVRThqsC/SpJ8dFHH3kNzt9//91rTGu7oJTFwIEDw8en4ba6QBDQsN2gvI4ab2kfv/76q18AUPBfWbPx7Ue1poPjApC6FwJ3/THLtnw2wFabWcU+Oe3G66/14Hukr776yi655BK/r/JUXbt2Da+jIPyFF17oQXk1hFVt+ttuu80efvjh8OgeleMK6uoCADKvoDGsPod03quMeQXsNR8AAABIClGhoFh3BqLa4QqsqFkSJQmSj0pMqKSN3kGH/l5nW8YMsLI9Xre+7WpQlxlAkuk3dqGNmrHWDh8JWSh0xCzmsGXLksW6Nq1i/SNq/qp3hC606WNN94P68vHRhT0F7oNmsQrMaxsJMui1TkLbA0g9nOdlXrz2ADK6QYMGebLY1VdfnST7Ug82jWQHgLQuOhPHcqk5jxOmzKGapQuYYls58he1wudex1BfACfl3XfftU8//TTBmr9RUVksKlsOO5I1279q/gbBdo28UYBdgfX49idaFgTmJdgmsrTNsQbm9RifffbZcf+uAAAAQCSVXNUozmP16quv+rloQvuKr+8SACBtoawNkm6o7yUNGOoL4KSoXFWhQoUSrPn7T835Aj7/RPaX1PQYQXktAAAAIKWolGPWrJTaAoD0jOA8TjpA3715ZZ5FAMmGmr8AAADILFTSQX2Sli5dah07drQ77rgjXKYmb968tmDBAk8OmTRpko/eVG+266+/3nsqPfnkk97rrVGjRj4dafjw4b6++rlddtlldvPNN6fSbwgAiERwHgCQpugLwzPPPONNm1u3bm033XSTB+gPLvjamlatam2at/H13nrrLc9Y79Chgw/b1ReWVatWWUxMjD3wwAPWvHlzX0+15PVFRV9i2rVrZ126dPH5X3zxhb355puebVSxYkW7/fbbw02jNTxYZXK038jjCAwbNsx+/PFHO+OMM8KNZAEAAICTpVI1Oq9t37693X333V57+YYbbvDz0g8//NBeeOGF8Hnpn3/+GR4l2r9/f/vpp5/sscces0WLFtlLL71kzz77rC/T/mbNmmX33nuvB+379evntZ2pRw8AqY+a80A6sW/fPrv//vuTbF8PPvhgkuwLSI4vJKoBr0D6o48+6kFwmT9/vn8pCSxevNhWrlzp96+99lqvF9+tWze75ZZbrEqVKuH19MVEAfg2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++67w8H5xChIP2HCBDv77LNt69atVq1atVjLGzZsaM8++6zfVwB/6tSp1rp1azvrrLNilbVRUP6OO+6wMmXK+PSLL75oH3/8sd10000+Xb9+fXvppZd4UQEAAAAAqYqICwCkIpWfueyyy6xu3bpWqlQpL+WhjOPKlSv79MUXX+zB9yDIfvnll3s5kEKFCtmNN97ogfTNmzdb//797bPPPrN69eqFg6B//vmnBy2VSVyjRo1ww0xto+BpsWLFfJmyh5V5HBzP1Vdf7WVKFBjVvoG4lLW+bds2D8xL8eLFPeAdUGBcmfBvvPGGffHFF7Zz506/EJQYXQxSIF+BedH7M3KfEjyeVKpUyf7+++9/7UcXuf744w/7+eefPRNfN/1fKliwYHgdXTgAAAAAACC1EZwHgFSmutpffvmlBzAVQLzvvvu8VrYCj6q/rSCjPPfccx54VEaxAu2LFi2yN9980wPsL7zwgl1zzTWeOf/qq6/6+nPnzrVPP/3Ug54KampdUcawSnosWLDAli5dauecc4498sgjsUqSaDsF5rVvpCy9JrrIktyPUatWrePebv+hGBs+eaU9990qOxxzxNau3+jzQ6GQ14EPRmQMGzbMfv/9dxs/fry98sorPk/riEZ26EJTILhopFEaWicIuOu+LjBFijuKI9in5gf3NUpEo0GeeOIJfx8Ht86dO4e3C0adAAAAAACQmihrAwCprE2bNt7AUoLGlUWLFvXpM844w9auXRtunKmMZAU3devZs6d9++239p///Cfe/bZt29YqVKjg95s3b+6NOEXbzJ492wOnAWXYB1TfW1nJSB0KMuviSVJSLfaLLrrIm6me6GMoMN956FRbvDHaskZFWc7TW1m9cy6wZx660yb/9KNt2bLF18uaNauXk1FwXCM23n77bZ8XUGZ8v379PCivOvBqKhsE2Lt27eojSa6//np/v+oC0bGUVdL7/IMPPvDfSftXeZyOHTvanXfeGW4me+6553qGPwAAAAAAaQXBeQBIBQp0jpy+xsbN22C7/97v07myZ/VAZI4cOcLraTooa6P5qgkf2Lt3r+XMmdPvR0VF/esxEtqPsoYHDRrkAdD4RNagR8aQFAF/vV8VmFeC+uFQyAq36mG7fv3C3h3ztd15w+VWs2ZNLx8juvCjERoavfH000/b0KFDwwH6hx56yN+3Cr4rgK7A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AAAAyNi+/fZb+/rrrxNdR3W/4wbnt23b5s051Rz2zTffPGopnN69e8f60qbsaWRc5YrksZg4uWOa1nwAAICMiOA8jknHjh29RBEAAABw1113+e14bN++3XtJqdzIhAkTYvWhik/OnDn9hsyja+MK9tnc9V7KJmtUlAfma5Yu4PMBAAAyIoLzCNPQkWeeecaHGl9zzTX26aef+lDiEiVK2NixY61q1aqWP39+69Wrl1177bU2evRoO+WUU2JlNAEAAAAJBeYVkP/qq6/C9cCBuE3Z1fxVNebXbdvrGfMKzGs+AABARpQltQ8AaYea8K5atcrOO+88e+mll+ydd96xvXv3hsvWBE24NIxZZW5q167ttUJx4hYsWHDUeq0AAADp2aFDh7yUzdq1az3bfsqUKV4SRzfOgxCXAvHdm1f2GvP6mdSB+UceecRefPFFvz9mzBi/YLR161afvuSSS/y7jvz3v/+1mjVrWsmSJe3qq6+2v//+2+evWbPGTj31VLv33nutbNmyVq9ePZs/f75df/31VqRIEf8uFexPjWhz5crlt9KlS3uj2qA5rfajhsjqraD96LvVrFmzeEMAAJDJEJyHW7Fihf3xxx/elKtr165+MpqYp59+2m644QY788wzeQZPwpAhQ2zixIk8hwAAIMM6ePCgBy0bNGhgw4cP98BocFOiApCS1Kj4m2++8fsKxKs3wvfff2+HDx+2yZMnW5MmTWzhwoV2++2329ChQz3wHgqFPDlJdH/58uVWuXJlmzdvngfjmzVr5olO+j6lYL7O8UVlmXbs2OG3uXPn+oUq/R8I9rNs2TL/v6HH6N69u9133328GQAAyGQoa5PJ7T8U48NGp0+fadnzF7FDR8yyZjUfaqwTxYRUqEDdRwAAABydmsIerXkskFIUSFcmvALlv/zyiycdqYSnynXWqFHD36/fffedZ9Gfe+65vs1TTz1ljRo1Cu9DZT9vvfVWv9+pUyf7+eef7bLLLvNpBelVukliYmK8sbHKgf71119+ASCypFPx4sXtjjvu8PtXXXWVPffcc7wRAADIZAjOZ/LAfOehU73hku3PYuvWrLZ2Az+3CX062bLfF9nGjRstM9Hw099//92zZ/78808rVKiQlStXzjO6ChYsaNmyZbOlS5d6doyyXHTTPGXNaGhrIHJ9ZdWcccYZXqs/oCGxixcv9seJFGyXJUsWW716tdWvX9+/HEhijwcAAADg2JKSVMu+WLmqNvK/H3pwXL0QHnjgAS8t06pVK1/3yJEjllUZS/9P5+AKtAdy584dvq/14k4rCC/q4TVz5kzPzFdZmzfffNMWLVoUXjeyKXLkdgAAIPMgOJ+J6eRUgflQSGMu81nBhpfaT0/fZGeMG2wFs8V45ryGYmYGynZR1osC5spqUTC9R48ePrxUw1IVlNf8OnXqeHB+9uzZXvpHJ+lLlizxbQcPHuz70voKymt9nXBv2LDBh6oq2K8aqx06dLDTTz89/DhBaSBtp30F2ymIr6G1yuJJ7PEAAAAAHFtSUtaoKPs7fzW77Z4H7f47bvHvOwqcv/vuu95zS1q0aGEDBw707HjVhR8wYIC1bNnyuJ9i9ezS+b4C/5s2bbIRI0ZY48aNeakAAEAYNeczMWWN6OQ0ULDJlXbKtc9aw0tu9lqIyhgpVaqUL3v55ZfDpWxef/11P4GNFLk8PXrwwQftlVde8SC9GjFt3rw51vICBQp4ZntQi/+aa67xzBc1gho0aJC9/fbbtmfPnvD6Qe3I6dOne+b8hAkTfL6yclRfNaHH0ZcDPY6WXXzxxeGhrUd7PAAAAABHT0o6fCRkOSvUsb1/b7ADJU/35cqYV/A8KF2j8/cnnnjCLrzwQitcuLA3b9X3neOlUjX79+/30bHt2rUjMA8AAP6FzPlMrFyRPBbjafP/s3vh97Z32VSbVSi7NXvuLnvyySct6v+D95GZIhr6GdeJZJKkJWr6pBNmUR3IoL5k5O8cPBeirHVl0CiTXlnuGoKqE/oqVar4cmXXB6pWrerZ8KLAu4LuCT3OBRdc4GVtROs988wzx/R4AAAAABJPSjr8/999cpU93Srd95llL1XVp++//37r3bu35ciRI7zNLbfc4jc1bo38HqCEJI2qDTRt2tTL1gSuuOIK69y5s99X1vyPP/4Y3odGwep+fPspVqyYXwQAAACZC8H5TKxr4wr22dz14eGdOUtXtQqlilq/TnWtft06Xm89s9SdzJG3gK1cvdYaFC7sy9avXx9r3ezZs8eafumll7yB1GmnnebZMGoKFZxoSxBgDwTLlFG/bt06z8AR1baPFPm4Wla0aNFjejwAAAAAx5aU5OfnWbP7/ODcPTIwHykyMB9MR5b+1HTkttpX3O8CwT4i69jH3Y9klpKiAADgHwTnM7Fc2bPa6F5NwgHqckVO84C95me2upOHKzezVp2uspeefNh+X7TAGzeplExCVDdSZXCU+f7+++/boUOHjulxb7zxRr/dc8899ttvv3n5msjH0b7KlCnjQ18feeQRLy90Mo8HAAAAZHZxk5IUqK9ZuoDPBwAASE0E5zM5BeK7N69smbruZChkBZt1sV2/FrDX3vvIru3Yxsv0BPX2VUombj19Bciffvpp++qrr7xprILnefPmjXf9mjVr+jBVUcBdWfPjx4+3Jk2a+D7Kly8fq/b99u3bbc6cOfbqq6+GS+0k9ngAAAAAjicpKU+mSUoCAABpW1QoA9bGiI6O9szjnTt3eiNPIK5+YxfaqBlrvSGUxOzdaYc3LrNzqha2qlm22IgRI7wGpN5HKUU1LevVq+c/AQBA/DjPy7x47QEAADKm6EwcyyVzHplS3LqTMbv/tp1zJ9jSjQWtVIOaXt89JQPzCWXoAwAAAAAAAMiYCM4jU4pbdzKqZGU7744XfLhrag1vvfXWW1PlcQEAAAAAAACkPILzyJRSou7k22+/batWrbLHH388RbYDAAAAAAAAkH4QnEemldzNcPfs2eM1s1JqOwAAAAAAAADpR5bUPgAAAAAAAAAAADIbgvNAEjl8+LA98MADdtppp1n79u1t/fr14WXjx4+3UqVKWZkyZezMM8+0//73v8e0HQAAAAAAAICMibI2QBIZMmSI/fDDD/bxxx/b33//bddcc41deeWVvqx169b222+/WSgUstWrV9t1111nzZo1s/Llyye6HQAAAAAAAICMieA8kESUHd+vXz+rU6eOT3fr1s12797t93fs2GH33nuvzZw50+vJa3rRokUenE9sOwAAAAAAAAAZE2VtgJO0/1CMDZ+80pZt3G7fL9/u05InT57wOn369LECBQrYF198YXPnzrUmTZrYgQMHfNnBgwctd+7c4XUjtwMAAAAAAACQMRGcB06CAvGdh061ARN+t+iCVez1oUPtkld+snUbNtnIkSPD623ZssUz41VXft26dTZ9+vTwMpW3UWkbBen/+uuvWNsBAAAAAAAAyJgIzgMnYeT0NbZ4Y7SFQmb5G3a2Iwf32cQH2ln9Bmd549eAStr07dvXChcubLfddpudccYZ4WX333+/l7EpVKiQNWzYMNZ2AAAAAAAAADImas4DJ2Hdtr2W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rVvH84F0heA8ACDdBuaVfa7Gqlmjoiym9AVW87Yr7MWLy9lZZ9TzrHMF0xVkj4mJ8Xrwp59+ugfbr7rqqnBd9/D+/r9B6fTp061Jkya2d+9ez35XgP54KBj/5JNPer14BdBVHkelXxTA1/6D41Eg/sZmlezuLFHWvXnlf+3naMcajA4AAAAAgMzef0yUaFWuXLlw6Zvly5d74tQvv/zio6LPOuus8DabN2/27cqWLes3rd+mTZtU+x2QeRGcBwCkS8qYV2A+FDLbtfo327tksv1sZp1G7vETMmW2K4Bdp04d69ixo59wqSFs586drVatWtayZUtvrqqa7SqJI9myZbP777/fKlasaLNnz7bzzz/fy+QoGH6smjVrZnXr1rX69ev7TWVugnr0cY8nmB+fhg0bJnqsAAAAAJDZDR482MaOHWufffaZ9/16/fXXvayNEq00mlrfCxWg7927tw0bNsw6depka9assUaNGlnjxo09cUqjlvW9j+A8UgPB+TTg1VdftSVLlvhPAMCxWbdtr2fMHw6FLGuegpajRGXLmiWL1T6jur376M2eKS/ffPONTZw40WvXKTiuv7U333yzzZs3z7PjgzIxom2+/PJL+/777+26666z1q1b+/zs2bPH+hutE7wnnngiVra8TvYCY8aMsR9//NFL3KhprJYHIo9HmfVx//brAkLk50N8xxr3eAAAAAAgM1GPsLvvvtvWr1/v369UhjQujVr+6aefPAnr7bffttGjR3twXt+lunbtGk58uvXWW23btm2p8FsABOfTHAL1AHBsyhXJYzFKm1f99eIV/aZKL+dfUCPWiVmRIkXs6quvjrWtMtt1i4+a0FxyySWx5ilo37179/C0GtRE7rNMmTLWoUOH8LQuApx33nnx7j/u8UTuV3r06HHUY417PAAAAACQmahUjUqILlu2LN7AvGgUsgLzUrp0adu+fbvf/+OPP6xLly7h9VTWdPz48Sl05EBsZM6nMbfddltqHwIApAtqoPrZ3PX/1JwPhaxm6QI+/0SQjQ4AAAAAabvvmMqbTpy11srVbGBXtW9tF1xwgU2YMOFffbokoT5dCtQrqB9QNQsgtWRJtUfOgDQcRlfelC2pzEtlUQZX5fbt2+elCYoWLWqnnHKK9e/fP8HM+SBAf+jQIXvwwQe9drL+oKixoRw+fNjrZmk/+uOjZoHR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tCOhkE/r94xUvXp1K1mypN17772pdqwAAKRXBOcBAAAAADhJCsRHNn/NSE1uFZgXTWt+pAEDBljr1q1t2rRpVrVqVYuKirL27dt701gAAJA4gvMAAAAAACDeJreHQyHLVfEMn6dpzW/fooXt27fP59WuXdt+//13++abb2z9+vVejz5v3rw8mwAAHAOC8wAAAAAAIMEmt7nK1vCfmtb8M8+sFWtd1aC/8soreQYBADhOWY53AwAAAAAAkLGpZr6a2kZFmWXLEuU/M0KTWwAA0hIy5wEAAAAAQIZvcgsAQFpDcB4AAAAAAGT4JrcAAKQ1lLUBAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAAAAAACCFEZwHAAAAACAduP/++2379u2pfRgAACCJEJwHAJw0fUnUl8XkEh0dbffcc0+qHgMAAEBq++9//2t79uyJd9lDDz1kf/31V4ofEwAAOHEE5wEAJ01fEvVlMblkz57dGjRokKrHAAAAkJbVr1/fcubMmdqHAQAAjkO241kZAIDRo0fbzz//7MHw6tWr23333WcvvviiZ653797d8ufPb4MHD7bdu3fbiBEjbOXKlVazZk278cYbLUeOHPb333/bc889Z5dddpl9+umnVqJECbv11lstV65cCe7/0KFD9uuvv9o111yTpMdwxRVX2CeffGIXXXSRNWvWjBcXAACkeZs2bbJ33nnHz4NuueUWq1Chgs+fO3eutWjRwu/PnDnTz3F27NhhWbJksTfeeCOVjxoAAMSHzHkAwDEbO3asPfroo1alShVr3LixB7ylRo0anqmlecpw379/v3853LBhgwfPJ02aFA6s79q1y1555RV78MEHrVSpUjZx4kQPkie2/71799qoUaOS/Bj69u1rZcuWteLFi/MuAAAA6cLtt99uuXPn9qSENm3aWCgU8vkff/yx7dy50899OnToYEWKFLFGjRr5DQAApE1kzgMAjitTq2LFiv5FUAHvqKgon9+2bVvr16+fZ63LyJEjvU68MtR1Uyb7+++/bwcPHvTlyoTXF0h9aezVq5cHyNetW5fg/pPj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",
      "text/plain": [
       "<Figure size 1800x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (g)：同一批 family 字，用 PCA 和 t-SNE 兩種方法壓成 2 維，圖長得不一樣嗎？\n",
    "from sklearn.decomposition import PCA\n",
    "words = sorted({w for q in data[data[\"SubCategory\"] == \": family\"][\"Question\"] for w in q.lower().split()})\n",
    "words = [w for w in words if w in my_wv.key_to_index]\n",
    "vecs = np.array([my_wv[w] for w in words])\n",
    "fig, axes = plt.subplots(1, 2, figsize=(18, 8))\n",
    "for ax, (title, pts) in zip(axes, [\n",
    "        (\"PCA\", PCA(n_components=2, random_state=42).fit_transform(vecs)),\n",
    "        (\"t-SNE\", TSNE(n_components=2, perplexity=15, random_state=42, init=\"pca\").fit_transform(vecs))]):\n",
    "    ax.scatter(pts[:, 0], pts[:, 1], s=12)\n",
    "    for (x, y), w in zip(pts, words):\n",
    "        ax.annotate(w, (x, y), fontsize=8)\n",
    "    ax.set_title(f\"{title} (Wiki 20%, family)\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "e3304cd7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:55:09.147791Z",
     "iopub.status.busy": "2026-10-05T14:55:09.146791Z",
     "iopub.status.idle": "2026-10-05T14:55:09.251897Z",
     "shell.execute_reply": "2026-10-05T14:55:09.250891Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GloVe</th>\n",
       "      <th>Wiki 20%</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SubCategory</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               GloVe  Wiki 20%\n",
       "SubCategory                                   \n",
       ": capital-common-countries     100.0     100.0\n",
       ": capital-world                100.0     100.0\n",
       ": currency                     100.0     100.0\n",
       ": city-in-state                100.0     100.0\n",
       ": family                       100.0     100.0\n",
       ": gram1-adjective-to-adverb    100.0     100.0\n",
       ": gram2-opposite               100.0     100.0\n",
       ": gram3-comparative            100.0     100.0\n",
       ": gram4-superlative            100.0     100.0\n",
       ": gram5-present-participle     100.0     100.0\n",
       ": gram6-nationality-adjective  100.0     100.0\n",
       ": gram7-past-tense             100.0     100.0\n",
       ": gram8-plural                 100.0     100.0\n",
       ": gram9-plural-verbs           100.0     100.0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 第 5 題 (h)：各小類「四個字都在字典裡」的比例：GloVe vs Wiki 20%\n",
    "display(pd.DataFrame({\"GloVe\": answer_coverage(model), \"Wiki 20%\": answer_coverage(my_wv)}))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e5cae87",
   "metadata": {},
   "source": [
    "## Summary of all results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "146d3910",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:55:09.357529Z",
     "iopub.status.busy": "2026-10-05T14:55:09.357529Z",
     "iopub.status.idle": "2026-10-05T14:55:09.386767Z",
     "shell.execute_reply": "2026-10-05T14:55:09.386254Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GloVe (pre-trained)</th>\n",
       "      <th>Wiki 20%</th>\n",
       "      <th>Forum (same size)</th>\n",
       "      <th>Wiki control (same size)</th>\n",
       "      <th>Wiki 5%</th>\n",
       "      <th>Wiki 10%</th>\n",
       "      <th>Wiki 5% seed=1</th>\n",
       "      <th>Wiki 5% seed=2</th>\n",
       "      <th>Wiki 5% seed=3</th>\n",
       "      <th>Wiki 5% (stop words removed)</th>\n",
       "      <th>Wiki 5% CBOW (sg=0)</th>\n",
       "      <th>Wiki 5% window=10</th>\n",
       "      <th>Wiki 5% vector_size=300</th>\n",
       "      <th>Wiki 20% (3CosMul)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Overall</th>\n",
       "      <td>63.11</td>\n",
       "      <td>48.39</td>\n",
       "      <td>25.78</td>\n",
       "      <td>41.46</td>\n",
       "      <td>46.12</td>\n",
       "      <td>47.15</td>\n",
       "      <td>46.05</td>\n",
       "      <td>47.10</td>\n",
       "      <td>46.34</td>\n",
       "      <td>45.25</td>\n",
       "      <td>52.58</td>\n",
       "      <td>41.75</td>\n",
       "      <td>57.44</td>\n",
       "      <td>44.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Semantic</th>\n",
       "      <td>65.34</td>\n",
       "      <td>56.70</td>\n",
       "      <td>12.84</td>\n",
       "      <td>45.77</td>\n",
       "      <td>55.35</td>\n",
       "      <td>55.60</td>\n",
       "      <td>54.18</td>\n",
       "      <td>55.98</td>\n",
       "      <td>54.72</td>\n",
       "      <td>55.41</td>\n",
       "      <td>58.60</td>\n",
       "      <td>51.22</td>\n",
       "      <td>68.54</td>\n",
       "      <td>54.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Syntactic</th>\n",
       "      <td>61.26</td>\n",
       "      <td>41.48</td>\n",
       "      <td>36.53</td>\n",
       "      <td>37.87</td>\n",
       "      <td>38.45</td>\n",
       "      <td>40.13</td>\n",
       "      <td>39.30</td>\n",
       "      <td>39.72</td>\n",
       "      <td>39.37</td>\n",
       "      <td>36.81</td>\n",
       "      <td>47.58</td>\n",
       "      <td>33.87</td>\n",
       "      <td>48.22</td>\n",
       "      <td>36.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-common-countries</th>\n",
       "      <td>93.87</td>\n",
       "      <td>77.87</td>\n",
       "      <td>33.60</td>\n",
       "      <td>76.48</td>\n",
       "      <td>81.82</td>\n",
       "      <td>76.48</td>\n",
       "      <td>80.04</td>\n",
       "      <td>82.81</td>\n",
       "      <td>81.82</td>\n",
       "      <td>83.99</td>\n",
       "      <td>79.45</td>\n",
       "      <td>72.53</td>\n",
       "      <td>95.45</td>\n",
       "      <td>77.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: capital-world</th>\n",
       "      <td>88.95</td>\n",
       "      <td>72.81</td>\n",
       "      <td>12.51</td>\n",
       "      <td>54.00</td>\n",
       "      <td>69.83</td>\n",
       "      <td>71.07</td>\n",
       "      <td>67.44</td>\n",
       "      <td>69.43</td>\n",
       "      <td>68.21</td>\n",
       "      <td>70.87</td>\n",
       "      <td>71.86</td>\n",
       "      <td>68.24</td>\n",
       "      <td>79.55</td>\n",
       "      <td>69.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: currency</th>\n",
       "      <td>14.20</td>\n",
       "      <td>10.28</td>\n",
       "      <td>1.27</td>\n",
       "      <td>6.93</td>\n",
       "      <td>7.62</td>\n",
       "      <td>9.58</td>\n",
       "      <td>7.39</td>\n",
       "      <td>8.89</td>\n",
       "      <td>8.31</td>\n",
       "      <td>8.89</td>\n",
       "      <td>8.43</td>\n",
       "      <td>7.85</td>\n",
       "      <td>7.62</td>\n",
       "      <td>9.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: city-in-state</th>\n",
       "      <td>30.81</td>\n",
       "      <td>35.51</td>\n",
       "      <td>2.92</td>\n",
       "      <td>33.81</td>\n",
       "      <td>37.37</td>\n",
       "      <td>35.47</td>\n",
       "      <td>38.27</td>\n",
       "      <td>39.04</td>\n",
       "      <td>37.74</td>\n",
       "      <td>37.82</td>\n",
       "      <td>43.66</td>\n",
       "      <td>31.01</td>\n",
       "      <td>63.15</td>\n",
       "      <td>33.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: family</th>\n",
       "      <td>81.62</td>\n",
       "      <td>74.31</td>\n",
       "      <td>63.24</td>\n",
       "      <td>66.21</td>\n",
       "      <td>68.77</td>\n",
       "      <td>73.32</td>\n",
       "      <td>67.39</td>\n",
       "      <td>72.13</td>\n",
       "      <td>69.17</td>\n",
       "      <td>53.95</td>\n",
       "      <td>77.87</td>\n",
       "      <td>50.59</td>\n",
       "      <td>73.72</td>\n",
       "      <td>71.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram1-adjective-to-adverb</th>\n",
       "      <td>24.40</td>\n",
       "      <td>15.93</td>\n",
       "      <td>13.10</td>\n",
       "      <td>10.28</td>\n",
       "      <td>12.70</td>\n",
       "      <td>10.99</td>\n",
       "      <td>11.29</td>\n",
       "      <td>14.21</td>\n",
       "      <td>11.19</td>\n",
       "      <td>12.80</td>\n",
       "      <td>19.15</td>\n",
       "      <td>11.09</td>\n",
       "      <td>13.51</td>\n",
       "      <td>12.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram2-opposite</th>\n",
       "      <td>20.07</td>\n",
       "      <td>16.01</td>\n",
       "      <td>14.04</td>\n",
       "      <td>8.87</td>\n",
       "      <td>11.82</td>\n",
       "      <td>14.29</td>\n",
       "      <td>10.84</td>\n",
       "      <td>11.08</td>\n",
       "      <td>13.05</td>\n",
       "      <td>9.98</td>\n",
       "      <td>11.45</td>\n",
       "      <td>6.90</td>\n",
       "      <td>14.90</td>\n",
       "      <td>13.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram3-comparative</th>\n",
       "      <td>79.13</td>\n",
       "      <td>49.10</td>\n",
       "      <td>64.94</td>\n",
       "      <td>53.08</td>\n",
       "      <td>44.14</td>\n",
       "      <td>46.92</td>\n",
       "      <td>46.10</td>\n",
       "      <td>47.82</td>\n",
       "      <td>48.87</td>\n",
       "      <td>37.01</td>\n",
       "      <td>69.14</td>\n",
       "      <td>32.88</td>\n",
       "      <td>64.11</td>\n",
       "      <td>43.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram4-superlative</th>\n",
       "      <td>54.28</td>\n",
       "      <td>24.33</td>\n",
       "      <td>40.55</td>\n",
       "      <td>17.20</td>\n",
       "      <td>17.02</td>\n",
       "      <td>22.37</td>\n",
       "      <td>17.83</td>\n",
       "      <td>18.98</td>\n",
       "      <td>19.79</td>\n",
       "      <td>16.31</td>\n",
       "      <td>37.61</td>\n",
       "      <td>9.80</td>\n",
       "      <td>26.74</td>\n",
       "      <td>22.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram5-present-participle</th>\n",
       "      <td>69.51</td>\n",
       "      <td>31.34</td>\n",
       "      <td>51.33</td>\n",
       "      <td>31.82</td>\n",
       "      <td>29.92</td>\n",
       "      <td>34.28</td>\n",
       "      <td>29.73</td>\n",
       "      <td>31.53</td>\n",
       "      <td>34.47</td>\n",
       "      <td>30.87</td>\n",
       "      <td>40.81</td>\n",
       "      <td>27.46</td>\n",
       "      <td>38.35</td>\n",
       "      <td>24.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram6-nationality-adjective</th>\n",
       "      <td>87.87</td>\n",
       "      <td>80.49</td>\n",
       "      <td>21.70</td>\n",
       "      <td>76.55</td>\n",
       "      <td>78.42</td>\n",
       "      <td>76.11</td>\n",
       "      <td>80.11</td>\n",
       "      <td>78.86</td>\n",
       "      <td>78.42</td>\n",
       "      <td>80.61</td>\n",
       "      <td>76.61</td>\n",
       "      <td>78.80</td>\n",
       "      <td>86.05</td>\n",
       "      <td>76.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram7-past-tense</th>\n",
       "      <td>55.45</td>\n",
       "      <td>43.85</td>\n",
       "      <td>33.78</td>\n",
       "      <td>40.96</td>\n",
       "      <td>44.29</td>\n",
       "      <td>44.87</td>\n",
       "      <td>44.81</td>\n",
       "      <td>44.55</td>\n",
       "      <td>42.37</td>\n",
       "      <td>41.09</td>\n",
       "      <td>46.03</td>\n",
       "      <td>39.49</td>\n",
       "      <td>49.81</td>\n",
       "      <td>39.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram8-plural</th>\n",
       "      <td>72.00</td>\n",
       "      <td>41.67</td>\n",
       "      <td>41.97</td>\n",
       "      <td>36.26</td>\n",
       "      <td>38.59</td>\n",
       "      <td>40.77</td>\n",
       "      <td>40.62</td>\n",
       "      <td>39.86</td>\n",
       "      <td>37.99</td>\n",
       "      <td>41.89</td>\n",
       "      <td>49.55</td>\n",
       "      <td>33.56</td>\n",
       "      <td>54.28</td>\n",
       "      <td>34.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>: gram9-plural-verbs</th>\n",
       "      <td>58.39</td>\n",
       "      <td>40.92</td>\n",
       "      <td>41.49</td>\n",
       "      <td>32.99</td>\n",
       "      <td>37.82</td>\n",
       "      <td>41.49</td>\n",
       "      <td>39.77</td>\n",
       "      <td>38.97</td>\n",
       "      <td>37.70</td>\n",
       "      <td>26.55</td>\n",
       "      <td>48.16</td>\n",
       "      <td>33.22</td>\n",
       "      <td>52.53</td>\n",
       "      <td>37.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OOV questions</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>3510.00</td>\n",
       "      <td>169.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>284.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>107.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               GloVe (pre-trained)  Wiki 20%  \\\n",
       "Overall                                      63.11     48.39   \n",
       "Semantic                                     65.34     56.70   \n",
       "Syntactic                                    61.26     41.48   \n",
       ": capital-common-countries                   93.87     77.87   \n",
       ": capital-world                              88.95     72.81   \n",
       ": currency                                   14.20     10.28   \n",
       ": city-in-state                              30.81     35.51   \n",
       ": family                                     81.62     74.31   \n",
       ": gram1-adjective-to-adverb                  24.40     15.93   \n",
       ": gram2-opposite                             20.07     16.01   \n",
       ": gram3-comparative                          79.13     49.10   \n",
       ": gram4-superlative                          54.28     24.33   \n",
       ": gram5-present-participle                   69.51     31.34   \n",
       ": gram6-nationality-adjective                87.87     80.49   \n",
       ": gram7-past-tense                           55.45     43.85   \n",
       ": gram8-plural                               72.00     41.67   \n",
       ": gram9-plural-verbs                         58.39     40.92   \n",
       "OOV questions                                 0.00      0.00   \n",
       "\n",
       "                               Forum (same size)  Wiki control (same size)  \\\n",
       "Overall                                    25.78                     41.46   \n",
       "Semantic                                   12.84                     45.77   \n",
       "Syntactic                                  36.53                     37.87   \n",
       ": capital-common-countries                 33.60                     76.48   \n",
       ": capital-world                            12.51                     54.00   \n",
       ": currency                                  1.27                      6.93   \n",
       ": city-in-state                             2.92                     33.81   \n",
       ": family                                   63.24                     66.21   \n",
       ": gram1-adjective-to-adverb                13.10                     10.28   \n",
       ": gram2-opposite                           14.04                      8.87   \n",
       ": gram3-comparative                        64.94                     53.08   \n",
       ": gram4-superlative                        40.55                     17.20   \n",
       ": gram5-present-participle                 51.33                     31.82   \n",
       ": gram6-nationality-adjective              21.70                     76.55   \n",
       ": gram7-past-tense                         33.78                     40.96   \n",
       ": gram8-plural                             41.97                     36.26   \n",
       ": gram9-plural-verbs                       41.49                     32.99   \n",
       "OOV questions                            3510.00                    169.00   \n",
       "\n",
       "                               Wiki 5%  Wiki 10%  Wiki 5% seed=1  \\\n",
       "Overall                          46.12     47.15           46.05   \n",
       "Semantic                         55.35     55.60           54.18   \n",
       "Syntactic                        38.45     40.13           39.30   \n",
       ": capital-common-countries       81.82     76.48           80.04   \n",
       ": capital-world                  69.83     71.07           67.44   \n",
       ": currency                        7.62      9.58            7.39   \n",
       ": city-in-state                  37.37     35.47           38.27   \n",
       ": family                         68.77     73.32           67.39   \n",
       ": gram1-adjective-to-adverb      12.70     10.99           11.29   \n",
       ": gram2-opposite                 11.82     14.29           10.84   \n",
       ": gram3-comparative              44.14     46.92           46.10   \n",
       ": gram4-superlative              17.02     22.37           17.83   \n",
       ": gram5-present-participle       29.92     34.28           29.73   \n",
       ": gram6-nationality-adjective    78.42     76.11           80.11   \n",
       ": gram7-past-tense               44.29     44.87           44.81   \n",
       ": gram8-plural                   38.59     40.77           40.62   \n",
       ": gram9-plural-verbs             37.82     41.49           39.77   \n",
       "OOV questions                   107.00      0.00          107.00   \n",
       "\n",
       "                               Wiki 5% seed=2  Wiki 5% seed=3  \\\n",
       "Overall                                 47.10           46.34   \n",
       "Semantic                                55.98           54.72   \n",
       "Syntactic                               39.72           39.37   \n",
       ": capital-common-countries              82.81           81.82   \n",
       ": capital-world                         69.43           68.21   \n",
       ": currency                               8.89            8.31   \n",
       ": city-in-state                         39.04           37.74   \n",
       ": family                                72.13           69.17   \n",
       ": gram1-adjective-to-adverb             14.21           11.19   \n",
       ": gram2-opposite                        11.08           13.05   \n",
       ": gram3-comparative                     47.82           48.87   \n",
       ": gram4-superlative                     18.98           19.79   \n",
       ": gram5-present-participle              31.53           34.47   \n",
       ": gram6-nationality-adjective           78.86           78.42   \n",
       ": gram7-past-tense                      44.55           42.37   \n",
       ": gram8-plural                          39.86           37.99   \n",
       ": gram9-plural-verbs                    38.97           37.70   \n",
       "OOV questions                          107.00          107.00   \n",
       "\n",
       "                               Wiki 5% (stop words removed)  \\\n",
       "Overall                                               45.25   \n",
       "Semantic                                              55.41   \n",
       "Syntactic                                             36.81   \n",
       ": capital-common-countries                            83.99   \n",
       ": capital-world                                       70.87   \n",
       ": currency                                             8.89   \n",
       ": city-in-state                                       37.82   \n",
       ": family                                              53.95   \n",
       ": gram1-adjective-to-adverb                           12.80   \n",
       ": gram2-opposite                                       9.98   \n",
       ": gram3-comparative                                   37.01   \n",
       ": gram4-superlative                                   16.31   \n",
       ": gram5-present-participle                            30.87   \n",
       ": gram6-nationality-adjective                         80.61   \n",
       ": gram7-past-tense                                    41.09   \n",
       ": gram8-plural                                        41.89   \n",
       ": gram9-plural-verbs                                  26.55   \n",
       "OOV questions                                        284.00   \n",
       "\n",
       "                               Wiki 5% CBOW (sg=0)  Wiki 5% window=10  \\\n",
       "Overall                                      52.58              41.75   \n",
       "Semantic                                     58.60              51.22   \n",
       "Syntactic                                    47.58              33.87   \n",
       ": capital-common-countries                   79.45              72.53   \n",
       ": capital-world                              71.86              68.24   \n",
       ": currency                                    8.43               7.85   \n",
       ": city-in-state                              43.66              31.01   \n",
       ": family                                     77.87              50.59   \n",
       ": gram1-adjective-to-adverb                  19.15              11.09   \n",
       ": gram2-opposite                             11.45               6.90   \n",
       ": gram3-comparative                          69.14              32.88   \n",
       ": gram4-superlative                          37.61               9.80   \n",
       ": gram5-present-participle                   40.81              27.46   \n",
       ": gram6-nationality-adjective                76.61              78.80   \n",
       ": gram7-past-tense                           46.03              39.49   \n",
       ": gram8-plural                               49.55              33.56   \n",
       ": gram9-plural-verbs                         48.16              33.22   \n",
       "OOV questions                               107.00             107.00   \n",
       "\n",
       "                               Wiki 5% vector_size=300  Wiki 20% (3CosMul)  \n",
       "Overall                                          57.44               44.66  \n",
       "Semantic                                         68.54               54.12  \n",
       "Syntactic                                        48.22               36.80  \n",
       ": capital-common-countries                       95.45               77.27  \n",
       ": capital-world                                  79.55               69.30  \n",
       ": currency                                        7.62                9.35  \n",
       ": city-in-state                                  63.15               33.73  \n",
       ": family                                         73.72               71.34  \n",
       ": gram1-adjective-to-adverb                      13.51               12.00  \n",
       ": gram2-opposite                                 14.90               13.18  \n",
       ": gram3-comparative                              64.11               43.62  \n",
       ": gram4-superlative                              26.74               22.19  \n",
       ": gram5-present-participle                       38.35               24.43  \n",
       ": gram6-nationality-adjective                    86.05               76.05  \n",
       ": gram7-past-tense                               49.81               39.55  \n",
       ": gram8-plural                                   54.28               34.23  \n",
       ": gram9-plural-verbs                             52.53               37.36  \n",
       "OOV questions                                   107.00                0.00  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "# 全部結果總表（報告引用的數字都來自這裡）\n",
    "pd.set_option(\"display.max_columns\", 40)\n",
    "display(pd.DataFrame(results).round(2))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82cbba80",
   "metadata": {},
   "source": [
    "## Running environment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "2f535ace",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-05T14:55:09.499777Z",
     "iopub.status.busy": "2026-10-05T14:55:09.499777Z",
     "iopub.status.idle": "2026-10-05T14:55:09.507837Z",
     "shell.execute_reply": "2026-10-05T14:55:09.507837Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python 3.12.3 (tags/v3.12.3:f6650f9, Apr  9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)]\n",
      "Windows-11-10.0.26200-SP0 | Intel64 Family 6 Model 141 Stepping 1, GenuineIntel\n",
      "gensim 4.4.0 | numpy 2.5.3 | pandas 3.0.6 | scikit-learn 1.9.1\n"
     ]
    }
   ],
   "source": [
    "# [Generative AI] The code in this cell was generated by Claude (Anthropic).\n",
    "import sys, platform, gensim, sklearn\n",
    "print(\"Python\", sys.version)\n",
    "print(platform.platform(), \"|\", platform.processor())\n",
    "print(\"gensim\", gensim.__version__, \"| numpy\", np.__version__, \"| pandas\", pd.__version__, \"| scikit-learn\", sklearn.__version__)\n"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
