diff --git a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb index 11852458..e84aa41c 100644 --- a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb +++ b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb @@ -16,7 +16,22 @@ "cell_type": "markdown", "id": "4ea73db3", "metadata": {}, - "source": [] + "source": [ + "The model includes:\n", + "\n", + "Stage 1: Creating a fixed population of 1,000 individuals, with 200 attending weddings and 800 attending brunches.\n", + "\n", + "Stage 2: Randomly selecting 10% percent of the whole population (independent of event type) and marking them as infected using np.random.choice. This stage implements simple random sampling without replacement from a uniform distribution over the population. The sampling frame is the whole population (1000), and the outcome sample size is 100.\n", + "\n", + "Stage 3: Each infected individual (independent of event types) is independently assigned a 20% chance of being traced using np.random.rand compared to 0.2, which implements Bernoulli sampling with a Bernoulli(p=0.2) distribution. The sampling frame is all infected individuals, and the outcome sample size is not fixed.\n", + "\n", + "Stage 4: Counting the number of traced individuals from each event type.\n", + "\n", + "Stage 5: Selecting events with at least 2 traced individuals, and marking all infected individuals in those events as traced. This is a non-probability sampling without any randomness.\n", + "\n", + "Stage 6: Counting Infected and traced individuals by event type, calculating proportions, and finally plotting the results.\n", + "\n" + ] }, { "cell_type": "markdown", @@ -30,7 +45,9 @@ "cell_type": "markdown", "id": "4cf5d993", "metadata": {}, - "source": [] + "source": [ + "The 10-times simulation is strongly variable, indicating very bad reproducibility. The 100-times simulation, by contrast, shows relatively small fluctuations across simulations, indicating a more stable, reproducible result." + ] }, { "cell_type": "markdown", @@ -44,7 +61,9 @@ "cell_type": "markdown", "id": "77613cc3", "metadata": {}, - "source": [] + "source": [ + "I included a random seed before the simulation. The random seed code lock the randomness, i.e., initializing the random number generator to a fixed starting state, so that all subsequent random draws follow the same deterministic sequence, without undermining the simulation procedure itself." + ] }, { "cell_type": "markdown", @@ -56,10 +75,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "ab8587a0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW9lJREFUeJzt3QeYVOXdN+CH3kRRUBDFroi9RSUaY8cSX1sSYzSiMWrsNUZjFHvvPTHWmFijxsQuscSu2JVgRTSAXUGQPt/1f95v9p1ddnGBPVvY+76ucZkzZ848p8x4fucpp02pVColAAAAoMG1bfhFAgAAAEHoBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGaGB//vOf04orrpg6dOiQevTo0dTFYQ61adMmnXjiiU1dDGrYc88901JLLdXij4mmXI/aTJs2LR199NGpX79+qW3btmmHHXZotM8eOXJk3rbXXXddo30mQGMSuoF6ixOiODF64YUXUkt37733FhKo/vOf/+ST6WWXXTZdddVV6Y9//ON3vufll19Ou+++ez7Z7dSpU1pooYXS5ptvnq699to0ffr0VJSnnnoqb4OvvvoqFemvf/1ruvDCC79zvihLHF/f9dh4440LLW9r8eijj1bbrnGRaJlllkl77LFHeu+995q6eC1WOUDW9lh//fUL35+33377HL3/mmuuSeecc0768Y9/nK6//vp0+OGHN9lvQWP7xz/+kX74wx+mRRZZJHXt2jV/D37605+m+++/v6mLBswj2jd1AQCaKnRfdtllDR6848R3xowZ6aKLLkrLLbfcd87/pz/9Kf36179OvXv3Tr/4xS/S8ssvn8aPH5+GDh2a9t577zRmzJj0u9/9LhUVuk866aR8kaDIGvk40X799dfTYYcdNsv5dtppp2rb7Jtvvkn7779/2nHHHfNrZbGtGsO3336b2ref9/83ecghh6Tvfe97aerUqenFF1/MF4ruueee9Nprr6W+ffum5iYuZsV3rLnbdddd0zbbbFNt2sILL5yaq3/9619pscUWSxdccEGj/xYsueSS+fsWF34a27nnnpt+85vf5NB97LHH5tD9zjvvpIcffjjdfPPNaauttmr0MgHznnn/bAKgEX3yySf5b31C7DPPPJMD98CBA/NFgO7d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PX78+NS3b998h5JWG7ojcBspFgAAgCJ8+OGHafHFF2+9oTtquENsiPnnn7+piwMAAMA8YNy4cbmCt5w5W23oLjcpj8AtdAMAANCQvqsbs4HUAAAAoCBCNwAAABRE6AYAAICCzPN9ugEAoCWbPn16mjp1alMXA1qdDh06pHbt2s31coRuAABopvcAHjt2bPrqq6+auijQavXo0SP16dPnOwdLmxWhGwAAmqFy4F5kkUVS165d5+qkH5j9i14TJ05Mn3zySX6+6KKLpjkldAMAQDNsUl4O3D179mzq4kCr1KVLl/w3gnd8F+e0qbmB1AAAoJkp9+GOGm6g6ZS/g3MzroLQDQAAzZQm5dDyv4NCNwAAABREn24AAGhBRo0alT777LNG+7xevXqlJZZYovBB437xi1+kp556Kt+mqagR26+77rp02GGHNemI8DFA13777Zduv/329OWXX6aXXnoprbHGGqk1uK4e2//EE09Md911V3r55Zfz8z333DPPH9NaKqEbAABaUODu339AmjRpYqN9ZufOXdOIEcPrHbznJCRdcMEFacyYMTloLbDAAqkhLLXUUjngxaNsl112Sdtss01qSvfff38On48++mhaZpll8kWNpnTMMcfkffWf//ynalr8e8CAAWnw4MG5rGXx77hgEPu3PMhY0S666KJ8oaIlE7oBAKCFiBruCNwDBtyYunYdUPjnTZw4PA0fvnv+3CJru99999209tprp+WXXz4VKYJiY4XFWa1r3H7q+9//fp3zTJkyJXXs2LFRyrPJJpuks846K7c2iPtRh0ceeST169cvXxioFNPXX3/9Rt2GCzTQRZimpE83AAC0MBG4u3dfq/BHQwT7jTfeOB1yyCHp6KOPTgsttFAOdtGEuLJG+m9/+1u64YYb8qBVUVMeojb1V7/6VVp44YXT/PPPnzbddNP0yiuvVFv2P/7xj/S9730vde7cOdcY77jjjlWf+cEHH6TDDz88L7M8GFbU1Pbo0aPaMq644oq07LLL5pDbv3//9Oc//7na6/HeP/3pT3nZMZJ1XBi4++67q16PJuK77bZbLmeE0Xj92muvrXVbxLodfPDBucVCLDfWvVzegw46KNfKx3oMGjQoT3/sscfSuuuumzp16pSDetRKT5s2rdq2jeXF+xZccMHUu3fvdNVVV6UJEyakvfbaK3Xv3j0tt9xy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UfbYX2VR0xx9wKMvfAyetvPOO+c+8hHQ51Q0d48B9+J2c3GRIAL8Oeeck7bbbrs8EFyI1gIRyGOk9Zg/5ottXcTFjNCmVNvRNw8ZN25cHiXw66+/zl9EAGjtInD37z8gTZpU++1joC6dO3dNI0YMF7wbQQSQ6HMaIbAcFJrq+2u/09I9+eSTeXC4d955J1+EaYjv4uxkTTXdANDKRA13nLAPGHBj6tp17ptA0jpEjefw4bvn40f4ajqx7SMAN2ZLFS0caGnuvPPOPKBb3BYsgna0Yojm67MbuBuK0A0ArVQE7u7d/6/fHtAyRAAWgqFu0Y87+vZHy5C4aBRN26PveVMRugEAAJhn7LHHHvnRXLhlGAAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiIW4YBAEALEvce/uyzzxrt8+I+x/PifcE33njjtMYaa6QLL7wwzSv23HPP9NVXX6W77rqr3uu91FJLpcMOOyw/KIbQDQAALShwD+jfP02cNKnRPrNr585p+IgR9Qrebdq0meXrQ4YMSSeeeGJqCaKcEV5ffvnluVrO+uuvn0PulVdeWTUt/r3//vuna6+9Ngflsvj3u+++m/7973+nxvL888+nbt26NdrntUZCNwAAtBBRwx2B+8YBA9KArl0L/7zhEyem3YcPz59bn9A9ZsyYqn/fcsst6YQTTkgjRoyomjbffPNV/btUKqXp06en9u3n7UiyySabpDvvvLPatEceeST169cvPfroo9VCdzwfPHhwo5Zv4YUXbtTPa4306QYAgBYmAvda3bsX/pjdYN+nT5+qxwILLJBrvsvP//Of/6Tu3bun++67L6299tqpU6dO6Yknnsg1u9tvv33q3bt3DuXf+9730sMPP1xtuZMnT06//e1vc1CN9y233HLp6quvrnr99ddfT1tvvXV+fyznF7/4RbUm+BMmTEh77LFHfn3RRRdN55133izX47rrrksnnXRSeuWVV/I6xCOmlVsbRHljWfPPP3/66U9/mj7++ONZhu648DB27NiqaY899lg65phjcsgue//999MHH3yQ5w8ffvhhXnaPHj3SQgstlD9z5MiRVfPHBYsjjjgiv96zZ8909NFH5wsZleqz3tG8vLKJfazrn/70p7Tjjjumrl27puWXXz7dfffd1d4Tz2N6586dc3mvv/76/L5o2h5iPbbbbru04IIL5lr0lVdeOd17772ptRK6AQCARhNh88wzz0zDhw9Pq622Wvrmm2/SNttsk4YOHZpeeumltNVWW+XAFuG2LILjTTfdlC6++OL8vj/84Q9VteYR9DbddNO05pprphdeeCHdf//9OQRHYC37zW9+k4Pu3//+9/Tggw/msPviiy/WWcZddtklHXnkkTksRu19PGLajBkzcvj94osv8vIeeuih9N577+XX6rLBBhukDh065Nrt8Oabb6Zvv/027b333unzzz/PYTvE6xFiBw4cmKZOnZoGDRqUL1JEU/Mnn3wyr29smylTpuT5I0DHhYBrrrkmX7yIMtWsUZ/d9S6LCw6x/V599dW8b3bbbbe8/BDl/fGPf5x22GGHfFFiv/32S8cdd1y19x944IH5Qsnjjz+eXnvttXTWWWdVa+XQ2szbbTkAAIBm5eSTT05bbLFF1fOoxV199dWrnp9yyik5PEZt6kEHHZTeeuutdOutt+aAu/nmm+d5lllmmar5L7300hy4Tz/99KppEUSjVjze27dv31wrfuONN6bNNtssvx41s4svvnidZezSpUsOidH0PWrpy6IMESIjeMbyww033JDDefSNjlr6mqKmd911182Bd9ddd81/N9xww1xj//3vfz8/X3rppfPfCNwxPcoaAT9qnMv95KP/d9Rqx3xbbrllrp0+9thj00477VTVT/yBBx6o+ty4mDG7610WTd6jrCG2a1zseO6553Lojwse/fv3T+ecc05+Pf4dLQ1OO+20qvfHBZOdd945rbrqqjPtr9ZITTcAANBo1llnnWrPIxweddRRacCAATlURtiN2uxyTXcMZNauXbv0wx/+sNblRW1r1BLH+8qPFVdcMb8WTdfjEbXD6623XrWgH2FxdkW5ImyXA3dYaaWVcrnjtVmNGF5uSh5/43mIdaqcXm5aHuv0zjvv5Jru8jpFmSdNmpTX5+uvv86175XrFBcIKrft3Kx3tECovGgQzeg/+eST/Dyayte8uBAXFSodcsgh6dRTT821/EOGDMk15q2Z0A0AADSamiNlR+COmu2oUY2m1BGyo4a03Iw6ap1nJUJ7NEeP91U+3n777bTRRhul5iDCdNS6//e//83hunwBoRy6IyBHH+5oJl9ep+j3XnOdYhk///nPCy9vNIevFLXtUfNeX7/61a9ys/voW//aa6/liwGXXHJJaq2EbgAAoMlEf+VozhwDd0XYjubclQOGxbQIfNE3uTZrrbVWeuONN/KAYDHAWuUjAv6yyy6bQ+Szzz5b9Z4vv/wyB9hZ6dixYx6srFLUxkc4jkdZ9NGOfuVR412XaEYey7v88stzbXUE6hA1xp9++mluDl9uhl5ep7hosMgii8y0TjFAXTxiYLTKdZo2bVoaNmxY1fM5Xe/vEjXl0Xe+UjStrylaA/z6179Od9xxR+4ff9VVV6XWSugGAACaTIyCHcEsanKjWXXU5FbWqkaYjtto/fKXv8z3zY7+1FE7HP28y4N2xSBf0Qc5wl/UGkff5r322iuH5miaHYOWxaBi//rXv3L/4wj5bdvOOgrF58ZnRbliJPQYGCz6lMdFgBhYLAYki37OMchb1FjXbDZfKWrr437dUdsbTa6juXyIIF45vVzDHMvv1atXHrQtav/L6xzNtj/66KM8z6GHHpoHpIttEiPDH3DAAVWjh4c5Xe/vEgOnxefFaPLl/vblkd3L/c8PO+ywvA+i3C+++GJu/h8XLForA6kBAEALE/fPnlc+5/zzz8+BOmqDI2hGmBs3bly1ea644or0u9/9LgfLGPE77hkez0MMlBa15fG+GGAswvGSSy6ZB/0qB8wY9KvcDD36SUfNa/SLnpUYCCwuBkTT8AizMZBZhNYYCfzggw/OTddj+fE59Wk6HcuJ0bzL/bnLIrBHKC335w5xq66YN9YpBkobP358WmyxxfKAaNG/OsQ6RL/uuCAR5YhtGK0FKtdrTtb7u8Sgb7fffnte1kUXXZQHf4vRy/fff/88CFyIix1xMSQuEMw///x5G11wwQWptWpTqnkzt3lMfGGj+UUcXOUDFABas6h1iKaNa689LHXvvla11yZNGpWmTv2/e9tC2cSJw9Pw4bvnkZDLNVYRkCL80PCiCXLUEkbAidtIlcXgYgP6908TJ01qtLJ07dw5DR8xwr6mTjFyeYyeXtnsfl7/Ls5O1lTTDQBUBe4Xnuufps1ovJN5Wp7dd9+96t/CWOOLbR3bPJo7NxYXV6gp+qZHf/SePXvmVgZRox63d6N2QjcAkEUNdwTuU7sOSEu37drUxaGZmTF9Yprw7fC00oABqVvXrrnZ8e7Dh+fwJ5A1rtjetjlNKQZ5i1uCRV/6OBajqXncM5zaCd0AQDURuAe0797UxaCZiTGcx6eU1ujaNfcNBVqv6J/dmvtozy6jlwMAAEBBhG4AAAAoiNANAADNVOX9qoGW+R3UpxsAAJqZjh075nsvjx49Oi288ML5eZs2bZq6WNBqlEqlNGXKlPTpp5/m72J8B+eU0A0AAM1MnOTHfYHHjBmTgzfQNLp27ZpHaI/v5JwSugEAoBmKmrU42Z82bVqaPj3GjwcaU7t27VL79u3nupWJ0A0AAM1UnOx36NAhP4CWyUBqAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAIB5PXSfeeaZqU2bNumwww6rmjZp0qR04IEHpp49e6b55psv7bzzzunjjz9u0nICAABAiwrdzz//fPrDH/6QVltttWrTDz/88PSPf/wj3Xbbbemxxx5Lo0ePTjvttFOTlRMAAABaVOj+5ptv0m677ZauuuqqtOCCC1ZN//rrr9PVV1+dzj///LTpppumtddeO1177bXpqaeeSs8880yTlhkAAADqo31qYtF8fNttt02bb755OvXUU6umDxs2LE2dOjVPL1txxRXTEksskZ5++um0/vrr17q8yZMn50fZuHHjCl4DAIDWY8LEidX+Dh8+vIlLRHPXq1evfA4PrVWThu6bb745vfjii7l5eU1jx45NHTt2TD169Kg2vXfv3vm1upxxxhnppJNOKqS8AACt1YzSlGoh+63/P3333XdvwlLREnTu3DWNGDFc8KbVarLQ/eGHH6ZDDz00PfTQQ6lz584Nttxjjz02HXHEEdVquvv169dgywcAaI1KpWn5b+fO/VOH9vOlbtMnpvTt8DRgwI2pa9cBTV08mqmJE4en4cN3T5999pnQTavVZKE7mo9/8sknaa211qqaNn369PT444+nSy+9ND3wwANpypQp6auvvqpW2x2jl/fp06fO5Xbq1Ck/AABoeG3bdk3t2nevGhgoAnf37v93PgdAMwndm222WXrttdeqTdtrr71yv+3f/va3uXa6Q4cOaejQoflWYWHEiBFp1KhRaeDAgU1UagAAAGgBobt79+5plVVWqTatW7du+Z7c5el77713biq+0EILpfnnnz8dfPDBOXDXNYgaAAAANCdNPnr5rFxwwQWpbdu2uaY7RiQfNGhQuvzyy5u6WAAAANDyQvejjz5a7XkMsHbZZZflBwAAALQ05TEwAAAAgAYmdAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFKR9UQsGAGDeN3Hi8KYuAi3g+Bg+fHjq1atXWmKJJZq6SNDohG4AAGbbZzOm5CaTw4fv3tRFoQXYfffdU9fOndPwESMEb1odoRsAgNk2vjQtzUgpndxpqbRsh55NXRyaqRnTJ6YJ3w5P7ZZaKu0zcmT67LPPhG5aHaEbAIA5tnTbLmlA++5NXQyaqelxgSZCR5cuTV0UaDIGUgMAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAzIuh+4orrkirrbZamn/++fNj4MCB6b777qt6fdKkSenAAw9MPXv2TPPNN1/aeeed08cff9yURQYAAICWEboXX3zxdOaZZ6Zhw4alF154IW266aZp++23T2+88UZ+/fDDD0//+Mc/0m233ZYee+yxNHr06LTTTjs1ZZEBAACg3to35Ydvt9121Z6fdtppufb7mWeeyYH86quvTn/9619zGA/XXnttGjBgQH59/fXXb6JSAwAAQAvr0z19+vR08803pwkTJuRm5lH7PXXq1LT55ptXzbPiiiumJZZYIj399NN1Lmfy5Mlp3Lhx1R4AAADQKkP3a6+9lvtrd+rUKf36179Od955Z1pppZXS2LFjU8eOHVOPHj2qzd+7d+/8Wl3OOOOMtMACC1Q9+vXr1whrAQAAAM0wdPfv3z+9/PLL6dlnn037779/Gjx4cHrzzTfneHnHHnts+vrrr6seH374YYOWFwAAAFpEn+4QtdnLLbdc/vfaa6+dnn/++XTRRRelXXbZJU2ZMiV99dVX1Wq7Y/TyPn361Lm8qDGPBwAAAKTWXtNd04wZM3K/7AjgHTp0SEOHDq16bcSIEWnUqFG5zzcAAAA0d01a0x1Nwbfeeus8ONr48ePzSOWPPvpoeuCBB3J/7L333jsdccQRaaGFFsr38T744INz4DZyOQAAAC1Bk4buTz75JO2xxx5pzJgxOWSvttpqOXBvscUW+fULLrggtW3bNu2888659nvQoEHp8ssvb8oiAwAAQMsI3XEf7lnp3Llzuuyyy/IDAAAAWppm16cbAAAA5hVCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgOYUut97772GLwkAAADMY+YodC+33HJpk002STfeeGOaNGlSw5cKAAAAWmvofvHFF9Nqq62WjjjiiNSnT5+03377peeee67hSwcAAACtLXSvscYa6aKLLkqjR49O11xzTRozZkzacMMN0yqrrJLOP//89OmnnzZ8SQEAAKA1DaTWvn37tNNOO6XbbrstnXXWWemdd95JRx11VOrXr1/aY489chgHAACA1mquQvcLL7yQDjjggLTooovmGu4I3O+++2566KGHci349ttv33AlBQAAgBam/Zy8KQL2tddem0aMGJG22WabdMMNN+S/bdv+b4Zfeuml03XXXZeWWmqphi4vAAAAzNuh+4orrki//OUv05577plruWuzyCKLpKuvvnpuywcAAACtK3S//fbb3zlPx44d0+DBg+dk8QAAANB6+3RH0/IYPK2mmHb99dc3RLkAAACgdYbuM844I/Xq1avWJuWnn356Q5QLAAAAWmfoHjVqVB4sraYll1wyvwYAAADMYeiOGu1XX311pumvvPJK6tmzZ0OUCwAAAFpn6N51113TIYcckh555JE0ffr0/PjXv/6VDj300PSzn/2s4UsJAAAArWX08lNOOSWNHDkybbbZZql9+/9dxIwZM9Iee+yhTzcAAADMTeiO24HdcsstOXxHk/IuXbqkVVddNffpBgAAAOYidJetsMIK+QEAAAA0UOiOPtzXXXddGjp0aPrkk09y0/JK0b8bAAAAWrs5Ct0xYFqE7m233TatssoqqU2bNg1fMgAAAGiNofvmm29Ot956a9pmm20avkQAAADQmm8ZFgOpLbfccg1fGgAAAGjtofvII49MF110USqVSg1fIgAAAGjNzcufeOKJ9Mgjj6T77rsvrbzyyqlDhw7VXr/jjjsaqnwAAADQukJ3jx490o477tjwpQEAAIDWHrqvvfbahi8JAAAAzGPmqE93mDZtWnr44YfTH/7whzR+/Pg8bfTo0embb75pyPIBAABA66rp/uCDD9JWW22VRo0alSZPnpy22GKL1L1793TWWWfl51deeWXDlxQAAABaQ033oYcemtZZZ5305Zdfpi5dulRNj37eQ4cObcjyAQAAQOuq6f73v/+dnnrqqXy/7kpLLbVU+u9//9tQZQMAAIDWV9M9Y8aMNH369Jmmf/TRR7mZOQAAADCHoXvLLbdMF154YdXzNm3a5AHUhgwZkrbZZpuGLB8AAAC0rubl5513Xho0aFBaaaWV0qRJk9LPf/7z9Pbbb6devXqlm266qeFLCQAAAK0ldC+++OLplVdeSTfffHN69dVXcy333nvvnXbbbbdqA6sBAABAa9Z+jt/Yvn3afffdG7Y0AAAA0NpD9w033DDL1/fYY485LQ8AAAC07tAd9+muNHXq1DRx4sR8C7GuXbsK3QAAADCno5d/+eWX1R7Rp3vEiBFpww03NJAaAAAAzE3ors3yyy+fzjzzzJlqwQEAAKC1arDQXR5cbfTo0Q25SAAAAGhdfbrvvvvuas9LpVIaM2ZMuvTSS9MGG2zQUGUDAACA1he6d9hhh2rP27RpkxZeeOG06aabpvPOO6+hygYAAACtL3TPmDGj4UsCAAAA85gG7dMNAAAAzGVN9xFHHFHvec8///w5+QgAAABonaH7pZdeyo+pU6em/v3752lvvfVWateuXVprrbWq9fUGAACA1mqOQvd2222Xunfvnq6//vq04IIL5mlffvll2muvvdIPfvCDdOSRRzZ0OQEAAKB19OmOEcrPOOOMqsAd4t+nnnqq0csBAABgbkL3uHHj0qeffjrT9Jg2fvz4OVkkAAAAzHPmKHTvuOOOuSn5HXfckT766KP8+Nvf/pb23nvvtNNOOzV8KQEAAKC19Om+8sor01FHHZV+/vOf58HU8oLat8+h+5xzzmnoMgIAAEDrCd1du3ZNl19+eQ7Y7777bp627LLLpm7dujV0+QAAAKB1NS8vGzNmTH4sv/zyOXCXSqWGKxkAAAC0xtD9+eefp8022yytsMIKaZtttsnBO0TzcrcLAwAAgLkI3Ycffnjq0KFDGjVqVG5qXrbLLruk+++/f04WCQAAAPOcOerT/eCDD6YHHnggLb744tWmRzPzDz74oKHKBgAAAK2vpnvChAnVarjLvvjii9SpU6eGKBcAAAC0ztD9gx/8IN1www1Vz9u0aZNmzJiRzj777LTJJps0ZPkAAACgdTUvj3AdA6m98MILacqUKenoo49Ob7zxRq7pfvLJJxu+lAAAANBaarpXWWWV9NZbb6UNN9wwbb/99rm5+U477ZReeumlfL9uAAAAYA5quqdOnZq22mqrdOWVV6bjjjuumFIBAABAa6zpjluFvfrqq8WUBgAAAFp78/Ldd989XX311Q1fGgAAAGjtA6lNmzYtXXPNNenhhx9Oa6+9durWrVu1188///yGKh8AAAC0jpru9957L98a7PXXX09rrbVW6t69ex5QLQZQKz9efvnlei/vjDPOSN/73vfychZZZJG0ww47pBEjRlSbZ9KkSenAAw9MPXv2TPPNN1/aeeed08cffzw7xQYAAIDmX9O9/PLLpzFjxqRHHnkkP99ll13SxRdfnHr37j1HH/7YY4/lQB3BO2rPf/e736Utt9wyvfnmm1W154cffni655570m233ZYWWGCBdNBBB+WR0t2aDAAAgHkqdJdKpWrP77vvvny7sDl1//33V3t+3XXX5RrvYcOGpY022ih9/fXXue/4X//617Tpppvmea699to0YMCA9Mwzz6T1119/jj8bAAAAmuVAanWF8LkVITsstNBC+W+E77hF2eabb141z4orrpiWWGKJ9PTTT9e6jMmTJ6dx48ZVewAAAECzD91t2rTJj5rTGkL0FT/ssMPSBhtskFZZZZU8bezYsaljx46pR48e1eaN5uzxWl39xKMZevnRr1+/BikfAAAAFN68fM8990ydOnWqGuTs17/+9Uyjl99xxx2zXZDo2x0DtD3xxBNpbhx77LHpiCOOqHoeNd2CNwAAAM0+dA8ePHim+3U3hBgc7Z///Gd6/PHH0+KLL141vU+fPmnKlCnpq6++qlbbHaOXx2u1iQsC5YsCAAAA0GJCdwxi1pCi5vzggw9Od955Z3r00UfT0ksvXe31uAd4hw4d0tChQ/OtwkLcUmzUqFFp4MCBDVoWAAAAaNLQ3dCiSXmMTP73v/8936u73E87+mJ36dIl/917771zc/EYXG3++efPIT0Ct5HLAQAAaO6aNHRfccUV+e/GG288U4169B0PF1xwQWrbtm2u6Y6RyQcNGpQuv/zyJikvAAAAtJjQXZ9bjnXu3Dlddtll+QEAAACt5j7dAAAAQN2EbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAAJgXQ/fjjz+etttuu9S3b9/Upk2bdNddd1V7vVQqpRNOOCEtuuiiqUuXLmnzzTdPb7/9dpOVFwAAAFpM6J4wYUJaffXV02WXXVbr62effXa6+OKL05VXXpmeffbZ1K1btzRo0KA0adKkRi8rAAAAzK72qQltvfXW+VGbqOW+8MIL0+9///u0/fbb52k33HBD6t27d64R/9nPftbIpQUAAIB5pE/3+++/n8aOHZublJctsMACab311ktPP/10k5YNAAAAmn1N96xE4A5Rs10pnpdfq83kyZPzo2zcuHEFlhKg6Y0aNSp99tlnTV0MWpDhw4c3dREAoNVotqF7Tp1xxhnppJNOaupiADRa4O7ff0CaNGliUxeFFmjKlP+7SA0AtLLQ3adPn/z3448/zqOXl8XzNdZYo873HXvssemII46oVtPdr1+/gksL0DSihjsC94ABN6auXQc0dXFoIT7//N40cuTxadq0aU1dFACY5zXb0L300kvn4D106NCqkB0BOkYx33///et8X6dOnfIDoDWJwN29+1pNXQxaiIkTNS8HgFYRur/55pv0zjvvVBs87eWXX04LLbRQWmKJJdJhhx2WTj311LT88svnEH788cfne3rvsMMOTVlsAAAAaP6h+4UXXkibbLJJ1fNys/DBgwen6667Lh199NH5Xt777rtv+uqrr9KGG26Y7r///tS5c+cmLDUAAAC0gNC98cYb5/tx16VNmzbp5JNPzg8AAABoaZrtfboBAACgpRO6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABWlf1IIBaD4mTRqVpk79rKmLQTPx7bfv//+/I9L48d2qpk+cOLwJSwUA8yahG6AVBO4Xnuufps2Y1NRFoZkZOXKfNHLkzNNLpSlNURwAmCcJ3QDzuKjhjsB9atcBaem2XZu6ODQDU6d9niZNGpk6d+6fOrSfr2r6k9M+T5dPGplKM6Y1afkAYF4idAO0EhG4B7Tv3tTFoBmYMmNimphS6tq2a+pYcUy8Pz2mAgANyUBqAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABTEfbqbkVGjRqXPPvusqYtBC9GrV6+0xBJLNHUxAAC+07fffpv/3nvvvWn48OFNXRxagGWWWSYNHDgwzQuE7mYUuAf0758mTprU1EWhhejauXMaPmKE4A0ANFszSlPy32EjR+Ymtscff3xTF4kWom1K6YmnnpongrfQ3UxEDXcE7hsHDEgDunZt6uLQzA2fODHtPnx4Pm6EbgCguSqVpuW/k9v3STOmjU0nduyblm23QFMXi2bu3elfpxOnjE7vvfee0E3Di8C9VvfuTV0MAABoMG3adsp/I3Cv3Kl3UxeH5m5y/Gd0mlcYSA0AAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKEj7ohYMFG/48OFNXQSayTEwcWLdx8KsXgMAoFhCN7RAY6ZMyc1Udt9996YuCs3E8OHffSyUSlMapSwAAPwfoRtaoK+mTUszUkpXLbVUWqtnz6YuDk1owsSJ6c3hw1O3LgNS23Zda53nyWmfp8snjUylGdMavXwAAK2d0A0tWP8uXdJa3bs3dTFoQuNTShGlu7frmtq1r/1YeH/6xEYvFwAA/8tAagAAAFAQoRsAAAAKInQDAABAaw7dl112WVpqqaVS586d03rrrZeee+65pi4SAAAAtPzQfcstt6QjjjgiDRkyJL344otp9dVXT4MGDUqffPJJUxcNAAAAWnboPv/889M+++yT9tprr7TSSiulK6+8MnXt2jVdc801TV00AAAAaLmhe8qUKWnYsGFp8803r5rWtm3b/Pzpp59u0rIBAABAi75P92effZamT5+eevfuXW16PP/Pf/5T63smT56cH2Vff/11/jtu3LjUnH3zzTf577Dx49M306c3dXFo5oZPmJD/vjxhQip99VVTF4cmNHHixBS/hp2nfpraTYu7ds/svWn/+zv4xrQv07clvy+kNG36uBT/p+w09bPUfsb//p4Exwqzc9w4Xpid42bk9P/9f5Tjhfp4b/q4qvOc5pzjymUrlUqznK9N6bvmaEKjR49Oiy22WHrqqafSwIEDq6YfffTR6bHHHkvPPvvsTO858cQT00knndTIJQUAAKA1+vDDD9Piiy/eMmu6e/Xqldq1a5c+/vjjatPjeZ8+fWp9z7HHHpsHXiubMWNG+uKLL1LPnj1TmzZtUnO+StKvX7+8w+aff/6mLg7NiGODWXF8UBfHBnVxbDArjg/q4tiYWdRfjx8/PvXt2zfNSrMO3R07dkxrr712Gjp0aNphhx2qQnQ8P+igg2p9T6dOnfKjUo8ePVJLEQewg5jaODaYFccHdXFsUBfHBrPi+KAujo3qFlhggfRdmnXoDlFrPXjw4LTOOuukddddN1144YVpwoQJeTRzAAAAaM6afejeZZdd0qeffppOOOGENHbs2LTGGmuk+++/f6bB1QAAAKC5afahO0RT8rqak88rokn8kCFDZmoaD44NZsXxQV0cG9TFscGsOD6oi2NjzjXr0csBAACgJWvb1AUAAACAeZXQDQAAAAURugEAAKAgQndBLrvssrTUUkulzp07p/XWWy8999xzs5z/tttuSyuuuGKef9VVV0333ntvtdej632M4L7oooumLl26pM033zy9/fbbBa8FLeX42HPPPVObNm2qPbbaaquC14KmPjbeeOONtPPOO+f5Y5/HLRXndpm0nmPjxBNPnOl3I35nmPePj6uuuir94Ac/SAsuuGB+xDlFzfmdd8w7GvrYcM7Reo+PO+64I9/GuUePHqlbt275rlJ//vOfq83jt6N2QncBbrnllnx/8Rjd78UXX0yrr756GjRoUPrkk09qnf+pp55Ku+66a9p7773TSy+9lHbYYYf8eP3116vmOfvss9PFF1+crrzyyvTss8/mAz2WOWnSpEZcM5rr8RHif3hjxoypetx0002NtEY01bExceLEtMwyy6Qzzzwz9enTp0GWSes5NsLKK69c7XfjiSeeKHAtaC7Hx6OPPpr/v/LII4+kp59+OvXr1y9tueWW6b///W/VPM475g1FHBvBOUfrPD4WWmihdNxxx+Vj49VXX0177bVXfjzwwANV8/jtqEOMXk7DWnfddUsHHnhg1fPp06eX+vbtWzrjjDNqnf+nP/1padttt602bb311ivtt99++d8zZswo9enTp3TOOedUvf7VV1+VOnXqVLrpppsKWw9axvERBg8eXNp+++0LLDXN8diotOSSS5YuuOCCBl0m8/axMWTIkNLqq6/e4GWl8c3t93zatGml7t27l66//vr83HnHvKOhj43gnGPe0RDnCGuuuWbp97//ff633466qeluYFOmTEnDhg3LTSnK2rZtm5/HVaHaxPTK+UNcESrP//7776exY8dWm2eBBRbITUDqWiat5/iovDq9yCKLpP79+6f9998/ff755wWtBc3l2GiKZdL4ityP0eSvb9++uVZ8t912S6NGjWqAEtPSjo9oGTF16tRcixWcd8wbijg2ypxztHxze3xEM/KhQ4emESNGpI022ihP89tRN6G7gX322Wdp+vTpqXfv3tWmx/M4CGsT02c1f/nv7CyT1nN8lJt53XDDDfnH76yzzkqPPfZY2nrrrfNnMe8eG02xTBpfUfsxToKuu+66dP/996crrrginyxFX87x48c3QKlpScfHb3/723zxpXyi7Lxj3lDEsRGcc7Tu4+Prr79O8803X+rYsWPadttt0yWXXJK22GKL/Jrfjrq1n8VrQAvxs5/9rOrfMdDaaqutlpZddtl8JXqzzTZr0rIBzVOcJJfFb0aE8CWXXDLdeuuteQwJWofo93/zzTfn/1/EQErwXceGc47WrXv37unll19O33zzTb7wEn3Co7XUxhtv3NRFa9bUdDewXr16pXbt2qWPP/642vR4XtdgNjF9VvOX/87OMmk9x0dt4scvPuudd95poJLTHI+Nplgmja+x9mOMRrvCCiv43WhFx8e5556bg9WDDz6Yg1OZ8455QxHHRm2cc7Su4yOaoC+33HJ55PIjjzwy/fjHP05nnHFGfs1vR92E7gYWTS3WXnvtfOWnbMaMGfn5wIEDa31PTK+cPzz00ENV8y+99NL5QK2cZ9y4cXlEwLqWSes5Pmrz0Ucf5f5VcbsG5t1joymWSeNrrP0YtRbvvvuu341WcnzECMOnnHJK7l4QtwCq5Lxj3lDEsVEb5xyt+/8t8Z7Jkyfnf/vtmIVZDLLGHLr55pvzKH3XXXdd6c033yztu+++pR49epTGjh2bX//FL35ROuaYY6rmf/LJJ0vt27cvnXvuuaXhw4fnEWU7dOhQeu2116rmOfPMM/My/v73v5deffXVPGrk0ksvXfr222+bZB1pPsfH+PHjS0cddVTp6aefLr3//vulhx9+uLTWWmuVll9++dKkSZOabD0p/tiYPHly6aWXXsqPRRddNB8H8e+333673suk9R4bRx55ZOnRRx/NvxvxO7P55puXevXqVfrkk0+aZB1pvOMjzik6duxYuv3220tjxoypesT/Tyrncd7R8jX0seGco3UfH6effnrpwQcfLL377rt5/jg3jXPUq666qmoevx21E7oLcskll5SWWGKJ/MMVw/E/88wzVa/98Ic/zLdbqHTrrbeWVlhhhTz/yiuvXLrnnnuqvR5D8B9//PGl3r175y/HZpttVhoxYkSjrQ/N9/iYOHFiacsttywtvPDCOYzH7YH22WcfoaoVHBtxwhPXTms+Yr76LpPWe2zssssuOZDH8hZbbLH8/J133mn09aLxj4/4/0Rtx0dc1C1z3jHvaMhjwzlH6z4+jjvuuNJyyy1X6ty5c2nBBRcsDRw4MAf3Sn47atcm/jOrmnAAAABgzujTDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAPOgNm3apLvuuqupi5HGjh2btthii9StW7fUo0ePpi4OADQ6oRsA/r8999wzh9V4dOzYMS233HLp5JNPTtOmTUvN1YknnpjWWGONmaaPGTMmbb311qmpXXDBBbksL7/8cnrrrbeaujgA0OjaN/5HAkDztdVWW6Vrr702TZ48Od17773pwAMPTB06dEjHHnvsTPNOmTIlh/OmUCqV0vTp0+t8vU+fPqk5ePfdd9Paa6+dll9++aYuCgA0CTXdAFChU6dOObAuueSSaf/990+bb755uvvuu6tqwnfYYYd02mmnpb59+6b+/fvn6a+99lradNNNU5cuXVLPnj3Tvvvum7755puqZZbfd9JJJ6WFF144zT///OnXv/51Du1lEfIPOeSQtMgii6TOnTunDTfcMD3//PNVrz/66KO5Bv6+++7LITbKeeONN+ZlvvLKK1U19Nddd12tzcvrW8Zzzz03LbroonmeuOAwderUWW6vK664Ii277LL54kNsjz//+c9Vry211FLpb3/7W7rhhhtyeeIz6nLNNdeklVdeOa9XfP5BBx1U9dr555+fVl111dxEvV+/fumAAw6oVvYPPvggbbfddmnBBRfM88Ry4oJJ2euvv55r/eebb77Uu3fv9Itf/CJ99tlnVa/ffvvtefnlbRP7fMKECbNcbwCoL6EbAGYhglhlOB46dGgaMWJEeuihh9I///nPHM4GDRqUA1+E5Ntuuy09/PDD1UJj+X3Dhw/P4fmmm25Kd9xxRw7MZUcffXQOqNdff3168cUXc9P2WO4XX3xRbTnHHHNMOvPMM/Oyoq/0kUcemUNmNOGOxy677DLTOtS3jI888kiumY6/UY4I8OUQX5s777wzHXroobkMEWz322+/tNdee+X3h/isaDnw05/+NJftoosuqjO4R8CPCwFxcSAucsT6l7Vt2zZdfPHF6Y033sjl+te//pW3V1m8Ny5aPP744/n9Z511Vg7Y4auvvsoXG9Zcc830wgsvpPvvvz99/PHHuUwhyrXrrrumX/7yl1X7Z6eddsotCQCgQZQAgGzw4MGl7bffPv97xowZpYceeqjUqVOn0lFHHVX1eu/evUuTJ0+ues8f//jH0oILLlj65ptvqqbdc889pbZt25bGjh1b9b6FFlqoNGHChKp5rrjiitJ8881Xmj59en5vhw4dSn/5y1+qXp8yZUqpb9++pbPPPjs/f+SRRyIFlu66665qZR4yZEhp9dVXn2ldYt4777xztsq45JJLlqZNm1Y1z09+8pPSLrvsUuf2+v73v1/aZ599qk2L92yzzTZVz2N7xrJnJdbzuOOOK9XXbbfdVurZs2fV81VXXbV04okn1jrvKaecUtpyyy2rTfvwww/z9hkxYkRp2LBh+d8jR46s9+cDwOxQ0w0AFaL2OmpJo4l3NEmOmuMYrKwsmiFX9uOO2tHVV189N2su22CDDdKMGTNyjXhZzNO1a9eq5wMHDsxNpD/88MNcuxzNuON9ZdGPfN11183Lr7TOOuvM9jrVt4xRY96uXbuq59HM+5NPPpnlcivLXF5uzTLPSix/9OjRabPNNqtznqiVj9cXW2yx1L1799w8/PPPP08TJ07Mr0ez/FNPPTV/9pAhQ9Krr75a9d5oeh8177FPy48VV1wxvxbbPbZLLDv2609+8pN01VVXpS+//LLe5QeA7yJ0A0CFTTbZJI+0/fbbb6dvv/02N2euDKuV/24KRX5+BP1K0Q87gnnRzfdnZeTIkelHP/pRWm211XLz+2HDhqXLLrssv1Zu9v+rX/0qvffeezmMR/PyuDBxySWX5Nfiwkb09459WvmI/bvRRhvliwzRVSD6yq+00kr5fdE3/f333y90vQFoPYRuAKgRaqM/8RJLLJHat//um3wMGDAg16ZWDrz15JNP5n7I5YHWQswTIb7smWeeybWuMTBYeSCyeF9Z1HxHn+gIgrMS75vVKOazU8bZFcutLHN5ud9V5kpRcx0DrkWf99pEyI7gf95556X1118/rbDCCrlmvKbYjjE4XfSVjz7mUWMd1lprrdwXPD4j9mvlo3wBIy4uRC159LF/6aWX8jaN/uoA0BCEbgCYC7vttltuij548OA8mFg0ZT744INzrWuMlF0WtbJ77713evPNN/PI2tEMOgYyi+Ab4S9GSv/Nb36TB/qKefbZZ5/cfDreMysRJqNWNmpvY0TuGFBsTss4u6K8MdBaDIQWNccxyniE3qOOOmq2lhPN9yNUx2BpsZwYSK5cUx3hOC5AxPOozY7R0a+88spq7z/ssMPSAw88kLdDvDfWLy4IlAdZi8HoYrC0uIgRTcpj3hjwLS5WPPvss+n000/Pg6yNGjUql//TTz+tej8AzC2hGwDmQvTTjhAXwe573/te+vGPf5z7CF966aXV5otpca/qaNIc/cT/53/+p1pf8RiRfOedd85BOGpn33nnnbzcGHF8VuI9MUJ4NIuP25HFyOhzWsbZFbcYixHJ4zZj0R/8D3/4Q77H+cYbbzxby4mLARdeeGG6/PLL83KiOXmE7xB9riPMx4jkq6yySvrLX/6SzjjjjGrvj/Ac4TqCcmyLqA2PZYW4tVvUvsc8W265Ze67HSG9R48e+YJH3L4tRj3fZptt8vt+//vf5wsA0Z8fABpCmxhNrUGWBADUKu5PHbeuqrxvNgDQOqjpBgAAgIII3QAAAFAQzcsBAACgIGq6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAAAgFeP/AZpmiLcIW8jLAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Import necessary libraries\n", "import pandas as pd\n", @@ -80,6 +110,10 @@ "TRACE_SUCCESS = 0.20\n", "SECONDARY_TRACE_THRESHOLD = 2\n", "\n", + "# Include a random seed to ensure the reproducibility of the simulation\n", + "np.random.seed(25)\n", + "\n", + "\n", "def simulate_event(m):\n", " \"\"\"\n", " Simulates the infection and tracing process for a series of events.\n", @@ -131,7 +165,7 @@ " return p_wedding_infections, p_wedding_traces\n", "\n", "# Run the simulation 1000 times\n", - "results = [simulate_event(m) for m in range(1000)]\n", + "results = [simulate_event(m) for m in range(100)]\n", "props_df = pd.DataFrame(results, columns=[\"Infections\", \"Traces\"])\n", "\n", "# Plotting the results\n", @@ -193,7 +227,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "sampling-env", "language": "python", "name": "python3" }, @@ -207,7 +241,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.0" + "version": "3.11.13" } }, "nbformat": 4, diff --git a/uv.lock b/uv.lock index 467e0b9c..1745642f 100644 --- a/uv.lock +++ b/uv.lock @@ -1,11 +1,29 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.11" resolution-markers = [ "python_full_version >= '3.12'", "python_full_version < '3.12'", ] +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + [[package]] name = "cffi" version = "2.0.0" @@ -103,6 +121,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "comm" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, +] + [[package]] name = "contourpy" version = "1.3.3" @@ -253,6 +280,49 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] +[[package]] +name = "debugpy" +version = "1.8.19" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/73/75/9e12d4d42349b817cd545b89247696c67917aab907012ae5b64bbfea3199/debugpy-1.8.19.tar.gz", hash = "sha256:eea7e5987445ab0b5ed258093722d5ecb8bb72217c5c9b1e21f64efe23ddebdb", size = 1644590, upload-time = "2025-12-15T21:53:28.044Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/e2/48531a609b5a2aa94c6b6853afdfec8da05630ab9aaa96f1349e772119e9/debugpy-1.8.19-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:c5dcfa21de1f735a4f7ced4556339a109aa0f618d366ede9da0a3600f2516d8b", size = 2207620, upload-time = "2025-12-15T21:53:37.1Z" }, + { url = "https://files.pythonhosted.org/packages/1b/d4/97775c01d56071969f57d93928899e5616a4cfbbf4c8cc75390d3a51c4a4/debugpy-1.8.19-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:806d6800246244004625d5222d7765874ab2d22f3ba5f615416cf1342d61c488", size = 3170796, upload-time = "2025-12-15T21:53:38.513Z" }, + { url = "https://files.pythonhosted.org/packages/8d/7e/8c7681bdb05be9ec972bbb1245eb7c4c7b0679bb6a9e6408d808bc876d3d/debugpy-1.8.19-cp311-cp311-win32.whl", hash = "sha256:783a519e6dfb1f3cd773a9bda592f4887a65040cb0c7bd38dde410f4e53c40d4", size = 5164287, upload-time = "2025-12-15T21:53:40.857Z" }, + { url = "https://files.pythonhosted.org/packages/f2/a8/aaac7ff12ddf5d68a39e13a423a8490426f5f661384f5ad8d9062761bd8e/debugpy-1.8.19-cp311-cp311-win_amd64.whl", hash = "sha256:14035cbdbb1fe4b642babcdcb5935c2da3b1067ac211c5c5a8fdc0bb31adbcaa", size = 5188269, upload-time = "2025-12-15T21:53:42.359Z" }, + { url = "https://files.pythonhosted.org/packages/4a/15/d762e5263d9e25b763b78be72dc084c7a32113a0bac119e2f7acae7700ed/debugpy-1.8.19-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:bccb1540a49cde77edc7ce7d9d075c1dbeb2414751bc0048c7a11e1b597a4c2e", size = 2549995, upload-time = "2025-12-15T21:53:43.773Z" }, + { url = "https://files.pythonhosted.org/packages/a7/88/f7d25c68b18873b7c53d7c156ca7a7ffd8e77073aa0eac170a9b679cf786/debugpy-1.8.19-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:e9c68d9a382ec754dc05ed1d1b4ed5bd824b9f7c1a8cd1083adb84b3c93501de", size = 4309891, upload-time = "2025-12-15T21:53:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/c5/4f/a65e973aba3865794da65f71971dca01ae66666132c7b2647182d5be0c5f/debugpy-1.8.19-cp312-cp312-win32.whl", hash = "sha256:6599cab8a783d1496ae9984c52cb13b7c4a3bd06a8e6c33446832a5d97ce0bee", size = 5286355, upload-time = "2025-12-15T21:53:46.763Z" }, + { url = "https://files.pythonhosted.org/packages/d8/3a/d3d8b48fec96e3d824e404bf428276fb8419dfa766f78f10b08da1cb2986/debugpy-1.8.19-cp312-cp312-win_amd64.whl", hash = "sha256:66e3d2fd8f2035a8f111eb127fa508469dfa40928a89b460b41fd988684dc83d", size = 5328239, upload-time = "2025-12-15T21:53:48.868Z" }, + { url = "https://files.pythonhosted.org/packages/71/3d/388035a31a59c26f1ecc8d86af607d0c42e20ef80074147cd07b180c4349/debugpy-1.8.19-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:91e35db2672a0abaf325f4868fcac9c1674a0d9ad9bb8a8c849c03a5ebba3e6d", size = 2538859, upload-time = "2025-12-15T21:53:50.478Z" }, + { url = "https://files.pythonhosted.org/packages/4a/19/c93a0772d0962294f083dbdb113af1a7427bb632d36e5314297068f55db7/debugpy-1.8.19-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:85016a73ab84dea1c1f1dcd88ec692993bcbe4532d1b49ecb5f3c688ae50c606", size = 4292575, upload-time = "2025-12-15T21:53:51.821Z" }, + { url = "https://files.pythonhosted.org/packages/5c/56/09e48ab796b0a77e3d7dc250f95251832b8bf6838c9632f6100c98bdf426/debugpy-1.8.19-cp313-cp313-win32.whl", hash = "sha256:b605f17e89ba0ecee994391194285fada89cee111cfcd29d6f2ee11cbdc40976", size = 5286209, upload-time = "2025-12-15T21:53:53.602Z" }, + { url = "https://files.pythonhosted.org/packages/fb/4e/931480b9552c7d0feebe40c73725dd7703dcc578ba9efc14fe0e6d31cfd1/debugpy-1.8.19-cp313-cp313-win_amd64.whl", hash = "sha256:c30639998a9f9cd9699b4b621942c0179a6527f083c72351f95c6ab1728d5b73", size = 5328206, upload-time = "2025-12-15T21:53:55.433Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b9/cbec520c3a00508327476c7fce26fbafef98f412707e511eb9d19a2ef467/debugpy-1.8.19-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:1e8c4d1bd230067bf1bbcdbd6032e5a57068638eb28b9153d008ecde288152af", size = 2537372, upload-time = "2025-12-15T21:53:57.318Z" }, + { url = "https://files.pythonhosted.org/packages/88/5e/cf4e4dc712a141e10d58405c58c8268554aec3c35c09cdcda7535ff13f76/debugpy-1.8.19-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d40c016c1f538dbf1762936e3aeb43a89b965069d9f60f9e39d35d9d25e6b809", size = 4268729, upload-time = "2025-12-15T21:53:58.712Z" }, + { url = "https://files.pythonhosted.org/packages/82/a3/c91a087ab21f1047db328c1d3eb5d1ff0e52de9e74f9f6f6fa14cdd93d58/debugpy-1.8.19-cp314-cp314-win32.whl", hash = "sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b", size = 5286388, upload-time = "2025-12-15T21:54:00.687Z" }, + { url = "https://files.pythonhosted.org/packages/17/b8/bfdc30b6e94f1eff09f2dc9cc1f9cd1c6cde3d996bcbd36ce2d9a4956e99/debugpy-1.8.19-cp314-cp314-win_amd64.whl", hash = "sha256:8e19a725f5d486f20e53a1dde2ab8bb2c9607c40c00a42ab646def962b41125f", size = 5327741, upload-time = "2025-12-15T21:54:02.148Z" }, + { url = "https://files.pythonhosted.org/packages/25/3e/e27078370414ef35fafad2c06d182110073daaeb5d3bf734b0b1eeefe452/debugpy-1.8.19-py2.py3-none-any.whl", hash = "sha256:360ffd231a780abbc414ba0f005dad409e71c78637efe8f2bd75837132a41d38", size = 5292321, upload-time = "2025-12-15T21:54:16.024Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + [[package]] name = "fancyimpute" version = "0.7.0" @@ -325,6 +395,76 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, ] +[[package]] +name = "ipykernel" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/a4/4948be6eb88628505b83a1f2f40d90254cab66abf2043b3c40fa07dfce0f/ipykernel-7.1.0.tar.gz", hash = "sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db", size = 174579, upload-time = "2025-10-27T09:46:39.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/17/20c2552266728ceba271967b87919664ecc0e33efca29c3efc6baf88c5f9/ipykernel-7.1.0-py3-none-any.whl", hash = "sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c", size = 117968, upload-time = "2025-10-27T09:46:37.805Z" }, +] + +[[package]] +name = "ipython" +version = "9.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, + { name = "typing-extensions", marker = "python_full_version < '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/dd/fb08d22ec0c27e73c8bc8f71810709870d51cadaf27b7ddd3f011236c100/ipython-9.9.0.tar.gz", hash = "sha256:48fbed1b2de5e2c7177eefa144aba7fcb82dac514f09b57e2ac9da34ddb54220", size = 4425043, upload-time = "2026-01-05T12:36:46.233Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/92/162cfaee4ccf370465c5af1ce36a9eacec1becb552f2033bb3584e6f640a/ipython-9.9.0-py3-none-any.whl", hash = "sha256:b457fe9165df2b84e8ec909a97abcf2ed88f565970efba16b1f7229c283d252b", size = 621431, upload-time = "2026-01-05T12:36:44.669Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + [[package]] name = "jinja2" version = "3.1.6" @@ -346,6 +486,35 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241", size = 308396, upload-time = "2025-08-27T12:15:45.188Z" }, ] +[[package]] +name = "jupyter-client" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/27/d10de45e8ad4ce872372c4a3a37b7b35b6b064f6f023a5c14ffcced4d59d/jupyter_client-8.7.0.tar.gz", hash = "sha256:3357212d9cbe01209e59190f67a3a7e1f387a4f4e88d1e0433ad84d7b262531d", size = 344691, upload-time = "2025-12-09T18:37:01.953Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/f5/fddaec430367be9d62a7ed125530e133bfd4a1c0350fe221149ee0f2b526/jupyter_client-8.7.0-py3-none-any.whl", hash = "sha256:3671a94fd25e62f5f2f554f5e95389c2294d89822378a5f2dd24353e1494a9e0", size = 106215, upload-time = "2025-12-09T18:37:00.024Z" }, +] + +[[package]] +name = "jupyter-core" +version = "5.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, +] + [[package]] name = "kiwisolver" version = "1.4.9" @@ -558,6 +727,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/16/53/8d8fa0ea32a8c8239e04d022f6c059ee5e1b77517769feccd50f1df43d6d/matplotlib-3.10.6-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d6ca6ef03dfd269f4ead566ec6f3fb9becf8dab146fb999022ed85ee9f6b3eb", size = 8693933, upload-time = "2025-08-30T00:14:22.942Z" }, ] +[[package]] +name = "matplotlib-inline" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, +] + [[package]] name = "missingno" version = "0.5.2" @@ -573,6 +754,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/22/cd5cf999af21c2f97486622c551ac3d07361ced8125121e907f588ff5f24/missingno-0.5.2-py3-none-any.whl", hash = "sha256:55782621ce09ba0f0a1d08e5bd6d6fe1946469fb03951fadf7d209911ca5b072", size = 8704, upload-time = "2023-02-26T20:10:26.042Z" }, ] +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" }, +] + [[package]] name = "nose" version = "1.3.7" @@ -740,6 +930,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cd/d7/612123674d7b17cf345aad0a10289b2a384bff404e0463a83c4a3a59d205/pandas-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d2c3554bd31b731cd6490d94a28f3abb8dd770634a9e06eb6d2911b9827db370", size = 13186141, upload-time = "2025-08-21T10:28:05.377Z" }, ] +[[package]] +name = "parso" +version = "0.8.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205, upload-time = "2025-08-23T15:15:28.028Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668, upload-time = "2025-08-23T15:15:25.663Z" }, +] + [[package]] name = "patsy" version = "1.0.1" @@ -752,6 +951,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/2b/b50d3d08ea0fc419c183a84210571eba005328efa62b6b98bc28e9ead32a/patsy-1.0.1-py2.py3-none-any.whl", hash = "sha256:751fb38f9e97e62312e921a1954b81e1bb2bcda4f5eeabaf94db251ee791509c", size = 232923, upload-time = "2024-11-12T14:10:52.85Z" }, ] +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + [[package]] name = "pillow" version = "11.3.0" @@ -836,6 +1047,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/34/e7/ae39f538fd6844e982063c3a5e4598b8ced43b9633baa3a85ef33af8c05c/pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8", size = 6984598, upload-time = "2025-07-01T09:16:27.732Z" }, ] +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + [[package]] name = "pluggy" version = "1.6.0" @@ -845,6 +1065,64 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/73/cb/09e5184fb5fc0358d110fc3ca7f6b1d033800734d34cac10f4136cfac10e/psutil-7.2.1.tar.gz", hash = "sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3", size = 490253, upload-time = "2025-12-29T08:26:00.169Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/8e/f0c242053a368c2aa89584ecd1b054a18683f13d6e5a318fc9ec36582c94/psutil-7.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d", size = 129624, upload-time = "2025-12-29T08:26:04.255Z" }, + { url = "https://files.pythonhosted.org/packages/26/97/a58a4968f8990617decee234258a2b4fc7cd9e35668387646c1963e69f26/psutil-7.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49", size = 130132, upload-time = "2025-12-29T08:26:06.228Z" }, + { url = "https://files.pythonhosted.org/packages/db/6d/ed44901e830739af5f72a85fa7ec5ff1edea7f81bfbf4875e409007149bd/psutil-7.2.1-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc", size = 180612, upload-time = "2025-12-29T08:26:08.276Z" }, + { url = "https://files.pythonhosted.org/packages/c7/65/b628f8459bca4efbfae50d4bf3feaab803de9a160b9d5f3bd9295a33f0c2/psutil-7.2.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf", size = 183201, upload-time = "2025-12-29T08:26:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/fb/23/851cadc9764edcc18f0effe7d0bf69f727d4cf2442deb4a9f78d4e4f30f2/psutil-7.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f", size = 139081, upload-time = "2025-12-29T08:26:12.483Z" }, + { url = "https://files.pythonhosted.org/packages/59/82/d63e8494ec5758029f31c6cb06d7d161175d8281e91d011a4a441c8a43b5/psutil-7.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672", size = 134767, upload-time = "2025-12-29T08:26:14.528Z" }, + { url = "https://files.pythonhosted.org/packages/05/c2/5fb764bd61e40e1fe756a44bd4c21827228394c17414ade348e28f83cd79/psutil-7.2.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679", size = 129716, upload-time = "2025-12-29T08:26:16.017Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d2/935039c20e06f615d9ca6ca0ab756cf8408a19d298ffaa08666bc18dc805/psutil-7.2.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f", size = 130133, upload-time = "2025-12-29T08:26:18.009Z" }, + { url = "https://files.pythonhosted.org/packages/77/69/19f1eb0e01d24c2b3eacbc2f78d3b5add8a89bf0bb69465bc8d563cc33de/psutil-7.2.1-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129", size = 181518, upload-time = "2025-12-29T08:26:20.241Z" }, + { url = "https://files.pythonhosted.org/packages/e1/6d/7e18b1b4fa13ad370787626c95887b027656ad4829c156bb6569d02f3262/psutil-7.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a", size = 184348, upload-time = "2025-12-29T08:26:22.215Z" }, + { url = "https://files.pythonhosted.org/packages/98/60/1672114392dd879586d60dd97896325df47d9a130ac7401318005aab28ec/psutil-7.2.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79", size = 140400, upload-time = "2025-12-29T08:26:23.993Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7b/d0e9d4513c46e46897b46bcfc410d51fc65735837ea57a25170f298326e6/psutil-7.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266", size = 135430, upload-time = "2025-12-29T08:26:25.999Z" }, + { url = "https://files.pythonhosted.org/packages/c5/cf/5180eb8c8bdf6a503c6919f1da28328bd1e6b3b1b5b9d5b01ae64f019616/psutil-7.2.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42", size = 128137, upload-time = "2025-12-29T08:26:27.759Z" }, + { url = "https://files.pythonhosted.org/packages/c5/2c/78e4a789306a92ade5000da4f5de3255202c534acdadc3aac7b5458fadef/psutil-7.2.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1", size = 128947, upload-time = "2025-12-29T08:26:29.548Z" }, + { url = "https://files.pythonhosted.org/packages/29/f8/40e01c350ad9a2b3cb4e6adbcc8a83b17ee50dd5792102b6142385937db5/psutil-7.2.1-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8", size = 154694, upload-time = "2025-12-29T08:26:32.147Z" }, + { url = "https://files.pythonhosted.org/packages/06/e4/b751cdf839c011a9714a783f120e6a86b7494eb70044d7d81a25a5cd295f/psutil-7.2.1-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6", size = 156136, upload-time = "2025-12-29T08:26:34.079Z" }, + { url = "https://files.pythonhosted.org/packages/44/ad/bbf6595a8134ee1e94a4487af3f132cef7fce43aef4a93b49912a48c3af7/psutil-7.2.1-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8", size = 148108, upload-time = "2025-12-29T08:26:36.225Z" }, + { url = "https://files.pythonhosted.org/packages/1c/15/dd6fd869753ce82ff64dcbc18356093471a5a5adf4f77ed1f805d473d859/psutil-7.2.1-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67", size = 147402, upload-time = "2025-12-29T08:26:39.21Z" }, + { url = "https://files.pythonhosted.org/packages/34/68/d9317542e3f2b180c4306e3f45d3c922d7e86d8ce39f941bb9e2e9d8599e/psutil-7.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17", size = 136938, upload-time = "2025-12-29T08:26:41.036Z" }, + { url = "https://files.pythonhosted.org/packages/3e/73/2ce007f4198c80fcf2cb24c169884f833fe93fbc03d55d302627b094ee91/psutil-7.2.1-cp37-abi3-win_arm64.whl", hash = "sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442", size = 133836, upload-time = "2025-12-29T08:26:43.086Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + [[package]] name = "pycparser" version = "2.23" @@ -909,12 +1187,71 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, ] +[[package]] +name = "pyzmq" +version = "27.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload-time = "2025-09-08T23:07:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload-time = "2025-09-08T23:07:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload-time = "2025-09-08T23:07:49.436Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload-time = "2025-09-08T23:07:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload-time = "2025-09-08T23:07:52.795Z" }, + { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload-time = "2025-09-08T23:07:55.047Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload-time = "2025-09-08T23:07:57.172Z" }, + { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload-time = "2025-09-08T23:07:59.05Z" }, + { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload-time = "2025-09-08T23:08:00.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload-time = "2025-09-08T23:08:02.15Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, + { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload-time = "2025-09-08T23:09:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload-time = "2025-09-08T23:09:51.073Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload-time = "2025-09-08T23:09:52.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload-time = "2025-09-08T23:09:54.563Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" }, +] + [[package]] name = "sampling-env" version = "0.1.0" source = { virtual = "." } dependencies = [ { name = "fancyimpute" }, + { name = "ipykernel" }, { name = "matplotlib" }, { name = "missingno" }, { name = "numpy" }, @@ -925,6 +1262,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "fancyimpute", specifier = ">=0.7.0" }, + { name = "ipykernel", specifier = ">=6.30.1" }, { name = "matplotlib", specifier = ">=3.10.6" }, { name = "missingno", specifier = ">=0.5.2" }, { name = "numpy", specifier = ">=2.3.3" }, @@ -1116,6 +1454,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + [[package]] name = "statsmodels" version = "0.14.5" @@ -1147,6 +1499,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1e/48/973da1ee8bc0743519759e74c3615b39acdc3faf00e0a0710f8c856d8c9d/statsmodels-0.14.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a085d47c8ef5387279a991633883d0e700de2b0acc812d7032d165888627bef", size = 10453538, upload-time = "2025-07-07T14:24:06.959Z" }, { url = "https://files.pythonhosted.org/packages/c7/d6/18903fb707afd31cf1edaec5201964dbdacb2bfae9a22558274647a7c88f/statsmodels-0.14.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9f866b2ebb2904b47c342d00def83c526ef2eb1df6a9a3c94ba5fe63d0005aec", size = 10681584, upload-time = "2025-07-07T14:24:21.038Z" }, { url = "https://files.pythonhosted.org/packages/44/d6/80df1bbbfcdc50bff4152f43274420fa9856d56e234d160d6206eb1f5827/statsmodels-0.14.5-cp313-cp313-win_amd64.whl", hash = "sha256:2a06bca03b7a492f88c8106103ab75f1a5ced25de90103a89f3a287518017939", size = 9604641, upload-time = "2025-07-07T12:08:36.23Z" }, + { url = "https://files.pythonhosted.org/packages/fd/6c/0fb40a89d715412160097c6f3387049ed88c9bd866c8838a8852c705ae2f/statsmodels-0.14.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:07c4dad25bbb15864a31b4917a820f6d104bdc24e5ddadcda59027390c3bed9e", size = 10211256, upload-time = "2025-10-30T13:46:58.591Z" }, + { url = "https://files.pythonhosted.org/packages/88/4a/e36fe8b19270ab3e80df357da924c6c029cab0fb9a0fbd28aaf49341707d/statsmodels-0.14.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:babb067c852e966c2c933b79dbb5d0240919d861941a2ef6c0e13321c255528d", size = 10110933, upload-time = "2025-10-30T13:47:11.774Z" }, + { url = "https://files.pythonhosted.org/packages/8a/bf/1b7e7b1a6c09a88a9c5c9e60622c050dfd08af11c2e6d4a42dbc71b32ee1/statsmodels-0.14.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:110194b137286173cc676d7bad0119a197778de6478fc6cbdc3b33571165ac1e", size = 10253981, upload-time = "2025-10-30T16:32:22.399Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d0/f95da95524bdd99613923ca61a3036d1308cee1290e5e8acb89f51736a8c/statsmodels-0.14.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c8a9c384a60c80731b278e7fd18764364c8817f4995b13a175d636f967823d1", size = 10460450, upload-time = "2025-10-30T16:32:44.985Z" }, + { url = "https://files.pythonhosted.org/packages/28/bb/59e7be0271be264b7b541baf3973f97747740950bfd5115de731f63da8ab/statsmodels-0.14.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:557df3a870a57248df744fdfcc444ecbc5bdbf1c042b8a8b5d8e3e797830dc2a", size = 10694060, upload-time = "2025-10-30T16:33:07.656Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c0/b28d0fd0347ea38d3610052f479e4b922eb33bb8790817f93cd89e6e08ba/statsmodels-0.14.5-cp314-cp314-win_amd64.whl", hash = "sha256:95af7a9c4689d514f4341478b891f867766f3da297f514b8c4adf08f4fa61d03", size = 9648961, upload-time = "2025-10-30T13:47:24.303Z" }, ] [[package]] @@ -1158,6 +1516,43 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, ] +[[package]] +name = "tornado" +version = "6.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/1d/0a336abf618272d53f62ebe274f712e213f5a03c0b2339575430b8362ef2/tornado-6.5.4.tar.gz", hash = "sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7", size = 513632, upload-time = "2025-12-15T19:21:03.836Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/a9/e94a9d5224107d7ce3cc1fab8d5dc97f5ea351ccc6322ee4fb661da94e35/tornado-6.5.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9", size = 443909, upload-time = "2025-12-15T19:20:48.382Z" }, + { url = "https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843", size = 442163, upload-time = "2025-12-15T19:20:49.791Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b5/206f82d51e1bfa940ba366a8d2f83904b15942c45a78dd978b599870ab44/tornado-6.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17", size = 445746, upload-time = "2025-12-15T19:20:51.491Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9d/1a3338e0bd30ada6ad4356c13a0a6c35fbc859063fa7eddb309183364ac1/tornado-6.5.4-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335", size = 445083, upload-time = "2025-12-15T19:20:52.778Z" }, + { url = "https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f", size = 445315, upload-time = "2025-12-15T19:20:53.996Z" }, + { url = "https://files.pythonhosted.org/packages/27/07/2273972f69ca63dbc139694a3fc4684edec3ea3f9efabf77ed32483b875c/tornado-6.5.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84", size = 446003, upload-time = "2025-12-15T19:20:56.101Z" }, + { url = "https://files.pythonhosted.org/packages/d1/83/41c52e47502bf7260044413b6770d1a48dda2f0246f95ee1384a3cd9c44a/tornado-6.5.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f", size = 445412, upload-time = "2025-12-15T19:20:57.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/c7/bc96917f06cbee182d44735d4ecde9c432e25b84f4c2086143013e7b9e52/tornado-6.5.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8", size = 445392, upload-time = "2025-12-15T19:20:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1a/d7592328d037d36f2d2462f4bc1fbb383eec9278bc786c1b111cbbd44cfa/tornado-6.5.4-cp39-abi3-win32.whl", hash = "sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1", size = 446481, upload-time = "2025-12-15T19:21:00.008Z" }, + { url = "https://files.pythonhosted.org/packages/d6/6d/c69be695a0a64fd37a97db12355a035a6d90f79067a3cf936ec2b1dc38cd/tornado-6.5.4-cp39-abi3-win_amd64.whl", hash = "sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc", size = 446886, upload-time = "2025-12-15T19:21:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/50/49/8dc3fd90902f70084bd2cd059d576ddb4f8bb44c2c7c0e33a11422acb17e/tornado-6.5.4-cp39-abi3-win_arm64.whl", hash = "sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1", size = 445910, upload-time = "2025-12-15T19:21:02.571Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + [[package]] name = "tzdata" version = "2025.2" @@ -1166,3 +1561,12 @@ sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be76 wheels = [ { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, ] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload-time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload-time = "2025-09-22T16:29:51.641Z" }, +]