From 1cfa9c6ed006d0fa0dd6d26378f4394b067ce357 Mon Sep 17 00:00:00 2001 From: Luca Lombardo Date: Thu, 9 Feb 2023 16:21:01 +0100 Subject: [PATCH] updated with nice outputs for review --- main.ipynb | 15849 ++++++++++++++++++++++++++++++++++++++++++++++++- src/utils.py | 15 +- 2 files changed, 15791 insertions(+), 73 deletions(-) diff --git a/main.ipynb b/main.ipynb index a8bce4a..05ec0a1 100644 --- a/main.ipynb +++ b/main.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -117,6 +117,7 @@ "One example of a network where these power laws do not hold is the Cayley tree, also known as the Bethe lattice, which is a regular graph of fixed degree $z$ with no loops. An infinite Cayley tree cannot be embedded in a Euclidean space of finite dimensionality. The number of nodes at level $l$ grows as $n(l) \\sim (z - 1)^l$, which is faster than any power law, making Cayley trees infinite-dimensional systems.\n", "\n", "![Photo from [2]](https://i.imgur.com/VLxR3AL.png)\n", + "\n", "_Taken from [2]_\n", "\n", "Many random network models have locally tree-like structure (since most loops occur only when $n(l) \\sim N$), and since the number of nodes grows as $n(l) \\sim \\langle k - 1 \\rangle^l$, they are also infinite dimensional. As a result, the diameter of such graphs (i.e., the shortest path between the most distant nodes) scales as $D \\sim \\ln N$ `[13]`. Many properties of ER networks, including the logarithmic diameter, are also present in Cayley trees. This small diameter is in contrast to that of finite-dimensional lattices, where $D \\sim N^{1/d_l}$.\n", @@ -195,9 +196,58 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Created data folder\n", + "Created brightkite folder\n", + "Created gowalla folder\n", + "Created foursquare folder\n", + "Downloading https://snap.stanford.edu/data/loc-brightkite_edges.txt.gz...\n", + "Downloading https://snap.stanford.edu/data/loc-brightkite_totalCheckins.txt.gz...\n", + "Downloading https://snap.stanford.edu/data/loc-gowalla_edges.txt.gz...\n", + "Downloading https://snap.stanford.edu/data/loc-gowalla_totalCheckins.txt.gz...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading...\n", + "From: https://drive.google.com/uc?id=1PNk3zY8NjLcDiAbzjABzY5FiPAFHq6T8\n", + "To: /home/luke/github/small-worlds/data/foursquare/foursquare_full.zip\n", + "100%|██████████| 2.68G/2.68G [02:04<00:00, 21.5MB/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unzipping loc-brightkite_edges.txt.gz...\n", + "Unzipping loc-brightkite_totalCheckins.txt.gz...\n", + "Unzipping loc-gowalla_edges.txt.gz...\n", + "Unzipping loc-gowalla_totalCheckins.txt.gz...\n", + "Unzipping foursquare_full.zip...\n", + "Archive: data/foursquare/foursquare_full.zip\n", + " creating: data/foursquare/dataset_WWW2019/\n", + " inflating: data/foursquare/dataset_WWW2019/raw_Checkins_anonymized.txt \n", + " inflating: data/foursquare/dataset_WWW2019/.DS_Store \n", + " creating: data/foursquare/__MACOSX/\n", + " creating: data/foursquare/__MACOSX/dataset_WWW2019/\n", + " inflating: data/foursquare/__MACOSX/dataset_WWW2019/._.DS_Store \n", + " inflating: data/foursquare/dataset_WWW2019/raw_POIs.txt \n", + " inflating: data/foursquare/dataset_WWW2019/dataset_WWW_friendship_old.txt \n", + " inflating: data/foursquare/dataset_WWW2019/dataset_WWW_readme.txt \n", + " inflating: data/foursquare/__MACOSX/dataset_WWW2019/._dataset_WWW_readme.txt \n", + " inflating: data/foursquare/dataset_WWW2019/dataset_WWW_Checkins_anonymized.txt \n", + " inflating: data/foursquare/dataset_WWW2019/dataset_WWW_friendship_new.txt \n" + ] + } + ], "source": [ "# this is a long and boring function to automatically download, extract, rename and save the datasets in a clean way. If you want to have a deeper look at the code, you can find it in utils.py\n", "\n", @@ -226,9 +276,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of unique users: 35538\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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beDbIfJUrFr7XeT0ys2fP5++973v0VVXXUU333wzvfbaa0RE9Pzzz8fXcfP2yaWyHSJv66JFi+i2226jmpoaWrhwIf3yl7+kjz76KP4b6hF5m6xAjjqL2traaPHixYbrqHOKVlx33XUUi8Xo888/p/LycgqFQhPuJnlxkfqOOx12blcoFKJ3331X8dzAwACNjo7G05yt7VJLZzt5C9UjR47QtGnTTG2nSMrKyig/P19zv4uYXjOKi4vpqquuoo8//pjuuOMOIpJymxUVFfF13LZ9vBW70XaEQiEaGRmhgYEBRQ701KlT1NDQkN0Ep6iiooIikQh9/PHHROSNbTKCHHUWlZWV0ZVXXmm4TJ48OeXPP3jwIE2ePDne7am+vp7efvttRd3ozp07KRwOp3VDoGbndtXX19Phw4fp5MmTijT7/X6aPXt2VrdLLZ3tPHjwIBFR/OJpZjtFUlhYSLNnz6Zdu3Ypnt+1a5drL4TDw8P0u9/9jioqKmjGjBkUCoUU2zcyMkJvvfWWq7bPzHbMnj2bCgoKFOucPHmSDh8+7JptPX36NB0/fjx+Pnlhmww51owNDPX29rKDBw+yxx57jF1yySXs4MGD7ODBg+zs2bOMMcb+8z//k/3Lv/wL6+npYUeOHGE/+9nPWElJCVu+fHn8M7788ktWXl7OmpubWU9PD3vllVdYSUkJe+qpp5zarKTb9dVXX7Gamhp20003sffff5+98cYb7PLLL2dtbW3xzxBxu+T27t3LNmzYwA4ePMg++eQTtn37dhYOh9ntt98eX8fMdopm27ZtrKCggG3atIl9+OGHbMWKFay4uJgdO3bM6aSZ0t7ezt588032ySefsHfeeYctWLCATZ06NZ7+zs5OVlpayl555RXW09PDmpubWUVFBYvFYg6nXOns2bPx84aI4sdab28vY8zcdrS2trLLL7+cvfHGG+z9999nN954I5s5cyb76quvhNums2fPsvb2drZ371529OhRtnv3blZfX88uu+wyobfJTgjUglqyZAkjognL7t27GWOM/fKXv2SzZs1il1xyCSsqKmI1NTXsn/7pn9jo6Kjic37729+y73znO8zv97NQKMTWrFnjaBemZNvFmBTMb7vtNjZlyhQWDAZZW1uboisWY+Jtl9yBAwfYtddey0pLS9nkyZPZn/3Zn7HVq1ezoaEhxXpmtlM0zz77LItEIqywsJBdffXV7K233nI6SaYtWrSIVVRUsIKCAhYOh9mdd97JPvjgg/jr4+PjbPXq1SwUCjG/38+uv/561tPT42CKte3evVvzHFqyZAljzNx2XLhwgbW1tbFgMMimTJnCFixYwPr6+hzYGonRNp0/f57NnTuXTZ8+nRUUFLCqqiq2ZMmSCekVbZvshGkuAQAABIY6agAAAIEhUAMAAAgMgRoAAEBgCNQAAAACQ6AGAAAQGAI1AACAwBCoAQAABIZADQAAIDAEagAAAIEhUAMAAAgMgRoAAEBgCNQAAAAC+//I5b0716CumAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# It takes about 2 minutes to run this block\n", "\n", @@ -260,9 +338,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of unique users in Europe: 8525\n" + ] + }, + { + "data": { + "image/png": "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/eIXvwjf+c534JlnnoGLL7548fN+eoa2a5So23McHh6GD37wgwAA0G63Yd++ffCHf/iH8OUvfxkAyn1+tRUf559/Ppx//vmZHGvDhg2wY8cOeO211xYfxF/91V/ByMgIfPjDH87kHFmQ5ppffPFFAICeilYXhoeH4cMf/jA8+eST8Nu//duLnz/55JNwww03lFiyfDh16hT87//9v+FXf/VXyy5KLlx66aWwevVqePLJJ+FDH/oQAERxPU8//TTcf//9JZcuH9566y04fPhwbd4/Ywx88YtfhMcffxz27NkDl156ac/3/fAM465Rom7PkWOMgVOnTlXj+RUS1loyBw8eNC+++KK57777zLnnnmtefPFF8+KLL5r5+XljjDHvv/++ufLKK81v/MZvmBdeeMH8j//xP8zFF19s7rrrrpJLnoy9e/ear33ta+bFF180r7zyinnkkUfM2rVrzWc+85myi5aY3bt3m1arZf74j//Y/N3f/Z25++67zfLly82BAwfKLlpqtm7davbs2WNeeeUV8+yzz5pPfepTZsWKFbW+tvn5+cX3DAAW6+PBgweNMcbMzMyYsbEx8+1vf9vMzc2Z6elps2bNGnP8+PGSS+6H6/rm5+fN1q1bzd69e83+/fvNU089ZTZs2GAuuuii2lzfnXfeacbGxsyePXvMa6+9tridPHlycZ+6P8O4a6z7c/zKV75innnmGbN//37zwx/+0Hz1q181zWbT/NVf/ZUxpvznNxDiY/PmzQYAlmxPPfXU4j4HDx40v/Vbv2U+8IEPmImJCXPXXXeZhYWF8gqdgueff9585CMfMWNjY2bZsmXm537u58z27dvNiRMnyi5aKr7+9a+bqakpMzw8bH75l3+5Z0pcnbn55pvNmjVrTKvVMmvXrjU33nijeemll8ouViqeeuop8Z3bvHmzMSaaqrl9+3azevVqMzIyYq699lozNzdXbqEDcF3fyZMnzcaNG80FF1xgWq2WmZycNJs3bzaHDh0qu9jeSNcGAOab3/zm4j51f4Zx11j35/jP/tk/W2wvL7jgAvMbv/Ebi8LDmPKfX8MYYwpxsSiKoiiKosCAZDhVFEVRFKU6qPhQFEVRFKVQVHwoiqIoilIoKj4URVEURSkUFR+KoiiKohSKig9FURRFUQpFxYeiKIqiKIWi4kNRFEVRlEJR8aEoiqIoSqGo+FAURVEUpVBUfCiKoiiKUigqPhRFURRFKZT/B/kiCBFClwELAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "gdf_brightkite = gdf_brightkite[gdf_brightkite['latitude'] < 60]\n", "gdf_brightkite = gdf_brightkite[gdf_brightkite['latitude'] > 35]\n", @@ -288,7 +384,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -325,9 +421,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of unique users: 12611\n" + ] + }, + { + "data": { + "image/png": "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DzweT+ix/LKsYSEiIso8w8PDKCkpibuMaRlsjx07huPHj+O+++5DSUkJOjo68OSTT6Kmpgb/8R//AUAZujx37lxUVFTgueeew8DAAFavXo3ly5cbHrocDAZx4cIFTJ48OWbTkVWGhoYwc+ZM9PX1Zf3IJm6LMG4LBbdDGLeFgtshLBu2hRACw8PD8Pl8yMmJ3yvFtA62Ho8He/fuxdatWzEyMgK/3481a9bghz/8YWgZt9uNN998E3/zN3+Db3zjGygsLER9fT2ef/55w5+Tk5ODGTNmmPEVUmbKlCmO3dkSxW0Rxm2h4HYI47ZQcDuEOX1bjFejIpkWrMybNw/Hjx8fd7mqqir813/9l1nFICIiogzHuYGIiIjI1hismMjj8WDz5s0RHYKzFbdFGLeFgtshjNtCwe0Qxm0RybQOtkRERESpwJoVIiIisjUGK0RERGRrDFaIiIjI1hisEBERka0xWEmRlpYWLF68GEVFRbjtttt0l9Gb9DEQCEQs093djdraWhQWFuL222/Htm3bDM2bYBdGtkNvby+WLVuG4uJilJeXY/369RgdHY1YJtO3g57q6uqo//+GDRsiljGybZxi586dmDVrFgoKCjB//ny89957VhfJVHqTwHq93tDrQghs2bIFPp8PhYWF+OY3v4mTJ09aWOLUOXLkCJYtWwafzweXy4Vf/OIXEa8b+e4jIyP427/9W5SXl6O4uBjf+c538Mknn6TxW0zceNth9erVUfuInFNPcsJ2SAaDlRQZHR3FY489hrVr18ZdbteuXbh48WLo1tDQEHptaGgI999/P3w+Hzo6OvDyyy/j+eefx4svvmh28VNmvO0wNjaGpUuX4vr163j//fexZ88e/Pu//zuam5tDyzhhO8Sybdu2iP//j370o9BrRraNU+zduxdPPPEENm3ahK6uLtxzzz146KGH0Nvba3XRTPXVr3414v/f3d0deu3HP/4xXnzxRezYsQMdHR3wer24//77MTw8bGGJU+P69eu46667sGPHDt3XjXz3J554Am+88Qb27NmD999/H5999hkefvhhjI2NpetrTNh42wEAHnzwwYh95K233op43QnbISmCUmrXrl2ipKRE9zUA4o033oj53p07d4qSkhLxxRdfhJ7bvn278Pl8IhgMprik5oq1Hd566y2Rk5Mjzp8/H3pu9+7dwuPxiMHBQSGEs7aDmt/vFz/5yU9ivm5k2zjFn//5n4vGxsaI577yla+IDRs2WFQi823evFncdddduq8Fg0Hh9XpFa2tr6LkvvvhClJSUiEAgkKYSpof2OGjku1+7dk3k5eWJPXv2hJY5f/68yMnJEb/61a/SVvZU0jsfNDQ0iEceeSTme5y4HYxizUqaNTU1oby8HAsWLEAgEEAwGAy9duzYMdTW1kYkAXrggQdw4cIFnDt3zoLSpt6xY8cwZ84c+Hy+0HMPPPAARkZG0NnZGVrGqdvh2WefxdSpUzF37ly0tLRENPEY2TZOMDo6is7OTixZsiTi+SVLluDo0aMWlSo9Tp06BZ/Ph1mzZmHVqlU4c+YMAODs2bPo7++P2CYejwe1tbWO3yZGvntnZydu3rwZsYzP58OcOXMct30OHz6M6dOnY/bs2VizZg0uXboUei2btoOWaXMDUbRnnnkG3/72t1FYWIj/+Z//QXNzMy5fvhxqCujv70d1dXXEeyoqKkKvzZo1K91FTrn+/v7Qd5JKS0uRn5+P/v7+0DJO3A7f//73MW/ePJSWluI3v/kNNm7ciLNnz+KVV14BYGzbOMHly5cxNjYW9V0rKioc9T21Fi5ciNdffx2zZ8/GH/7wB/z93/89Fi9ejJMnT4a+t9426enpsaK4aWPku/f39yM/Px+lpaVRyzhpn3nooYfw2GOPwe/34+zZs3j66afxrW99C52dnfB4PFmzHfSwZiUOvQ5x2tuJEycMr+9HP/oRFi1ahLlz56K5uRnbtm3Dc889F7GMy+WKeCz+2KlU+3w6pXo76H0XIUTE83bcDnoS2TZPPvkkamtr8bWvfQ3f+973EAgE8Oqrr+LKlSuh9RnZNk6h9z924veUHnroIfzVX/0V7rzzTvzlX/4l3nzzTQDAa6+9Flom27aJWjLf3WnbZ+XKlVi6dCnmzJmDZcuW4e2338bHH38c2ldicdp20MOalTiampqwatWquMtoawAScffdd2NoaAh/+MMfUFFRAa/XGxUdyypA7VVHOqVyO3i9Xvz617+OeO7q1au4efNm6DvadTvomci2kb38T58+jalTpxraNk5QXl4Ot9ut+z920vccT3FxMe68806cOnUKy5cvB6DUIFRWVoaWyYZtIkdExfvuXq8Xo6OjuHr1akStwqVLl7B48eL0FjiNKisr4ff7cerUKQDZux0A1qzEVV5ejq985StxbwUFBUmvv6urCwUFBaEhvosWLcKRI0ci+jEcOHAAPp9vQkHRRKVyOyxatAgfffQRLl68GHruwIED8Hg8mD9/fmgZO24HPRPZNl1dXQAQOkAb2TZOkJ+fj/nz5+PgwYMRzx88eNDxB1y1kZER/O53v0NlZSVmzZoFr9cbsU1GR0fx7rvvOn6bGPnu8+fPR15eXsQyFy9exEcffeTo7XPlyhX09fWFjhHZuh0AcDRQqvT09Iiuri6xdetWMWnSJNHV1SW6urrE8PCwEEKI//zP/xT//M//LLq7u8Xp06fFz372MzFlyhSxfv360DquXbsmKioqRF1dneju7hb79+8XU6ZMEc8//7xVXyth422HW7duiTlz5ohvf/vb4oMPPhCHDh0SM2bMEE1NTaF1OGE7aB09elS8+OKLoqurS5w5c0bs3btX+Hw+8Z3vfCe0jJFt4xR79uwReXl54tVXXxW//e1vxRNPPCGKi4vFuXPnrC6aaZqbm8Xhw4fFmTNnxPHjx8XDDz8sJk+eHPrOra2toqSkROzfv190d3eLuro6UVlZKYaGhiwu+cQNDw+HjgUAQr+Fnp4eIYSx797Y2ChmzJghDh06JD744APxrW99S9x1113i1q1bVn2thMXbDsPDw6K5uVkcPXpUnD17Vrzzzjti0aJF4vbbb3fcdkgGg5UUaWhoEACibu+8844QQoi3335bzJ07V0yaNEkUFRWJOXPmiJdeekncvHkzYj0ffvihuOeee4TH4xFer1ds2bIlo4brjrcdhFACmqVLl4rCwkJRVlYmmpqaIoYpC5H520Grs7NTLFy4UJSUlIiCggLx5S9/WWzevFlcv349Yjkj28Yp/vEf/1H4/X6Rn58v5s2bJ959912ri2SqlStXisrKSpGXlyd8Pp949NFHxcmTJ0OvB4NBsXnzZuH1eoXH4xH33nuv6O7utrDEqfPOO+/oHhcaGhqEEMa+++effy6amppEWVmZKCwsFA8//LDo7e214NskL952uHHjhliyZImYNm2ayMvLE1VVVaKhoSHqOzphOyTDJUSGpwUlIiIiR2OfFSIiIrI1BitERERkawxWiIiIyNYYrBAREZGtMVghIiIiW2OwQkRERLbGYIWIiIhsjcEKERER2RqDFSIiIrI1BitERERkawxWiIiIyNYYrBAREZGt/X9lETeeUsVwyAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "df_gowalla = pd.read_csv(os.path.join('data', 'gowalla', 'gowalla_checkins_full.txt'),\n", " sep='\\t', \n", @@ -357,9 +471,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of unique users in the EU area: 3718\n" + ] + }, + { + "data": { + "image/png": "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hw7RRz7yEbr99ttpeHg46Kb55v3vf7/p/RocHAy6SUWZmJigD3zgA7Rt2zbt9V/4whfoiSeeoG3bttHAwAC1tLTQLbfcMrugZCVweo5ERLfddpvpfX3++efL2MLi7Nu3jx588EF6+eWXac+ePXTx4kVauXIlTUxMzN6m0t9HN8+RqLLfx8svv5z6+vrowIEDdODAAbrpppvorrvumg0wAn8PWcR9/etfZ01NTXmXP//88ywej7PXX3999rIdO3aw+vp6Njo6WsYW+iedTrN///d/D7oZvvmzP/sz1t3dbbrsve99L+vp6QmoRf7atGkT+8AHPhB0M0qGiNizzz47+//MzAxraWlhfX19s5edO3eONTU1sVwuF0ALi6c+R8YYW7NmDbvrrrsCaU8pnDx5khER27dvH2Msmu+j+hwZi977yBhjzc3N7Ktf/Woo3sPIZj6cvPTSS7Rs2TJqa2ubvezWW2+lqakpOnjwYIAtK87nP/95mj9/Pn3wgx+k3t7eiu1GOn/+PB08eJBWrlxpunzlypW0f//+gFrlvyNHjlBbWxstWbKEVq9eTa+99lrQTSqZo0eP0okTJ0zvaX19Pd1www2Rek+JiPbu3UuXXXYZLV26lO6//346efJk0E0q2OjoKBERpVIpIorm+6g+RyEq7+P09DTt3LmTJiYmaPny5aF4D0O3qm25nDhxghYuXGi6rLm5merq6ujEiRMBtao4Dz/8MF1zzTXU3NxMv/zlL+mxxx6jo0eP0le/+tWgm+bZH/7wB5qens57jxYuXFix74/qQx/6EH3zm9+kpUuX0u9//3v63Oc+RytWrKDDhw/T/Pnzg26e78T7pntPh4aGgmhSSdx+++30sY99jNLpNB09epQ+85nP0E033UQHDx6suJLdjDH61Kc+RX/+539Oy5YtI6LovY+650gUjfdxcHCQli9fTufOnaNLLrmEnn32WXrf+943G2AE+R5WVPCxefNm+uxnP2t7m4GBAcpkMq62F4vF8i5jjGkvD4qX5/wv//Ivs5ddddVV1NzcTPfee+9sNqQSqe9F2N6fYtx+++2zf1955ZW0fPlyete73kXf+MY36FOf+lSALSutKL+nRESrVq2a/XvZsmWUyWQonU7T97//fbrnnnsCbJl369ato1/96lf0s5/9LO+6qLyPVs8xCu/je97zHnr11VfprbfeomeeeYbWrFlD+/btm70+yPewooKPdevW0erVq21vs3jxYlfbamlpoV/84hemy86cOUMXLlzIiwaDVMxzFiOz//d//7figo8FCxZQIpHIy3KcPHkyVO+PnxoaGujKK6+kI0eOBN2UkhAzeU6cOEGtra2zl0f5PSUiam1tpXQ6XXHv6yc/+Un63ve+Ry+++CJdfvnls5dH6X20eo46lfg+1tXV0bvf/W4iIspkMjQwMEBPPvkkPfroo0QU7HtYUcHHggULaMGCBb5sa/ny5dTb20vHjx+fffF/9KMfUX19PV177bW+PIYfinnOhw4dIiIyfbgqRV1dHV177bW0Z88euvvuu2cv37NnD911110Btqx0pqam6De/+Q195CMfCbopJbFkyRJqaWmhPXv20NVXX01EfGzPvn376POf/3zArSudU6dO0cjISMV8Dxlj9MlPfpKeffZZ2rt3Ly1ZssR0fRTeR6fnqFNp76MOY4ympqbC8R6WZVhrAIaGhtihQ4fYZz/7WXbJJZewQ4cOsUOHDrHx8XHGGGMXL15ky5YtYzfffDN75ZVX2H/913+xyy+/nK1bty7glhdm//797IknnmCHDh1ir732Gtu1axdra2tjf/3Xfx100wq2c+dOVltby772ta+xX//612z9+vWsoaGBHTt2LOim+WLDhg1s79697LXXXmMvv/wy+6u/+ivW2NhY0c9vfHx89rtGRLOfyaGhIcYYY319faypqYl997vfZYODgyybzbLW1lY2NjYWcMvds3uO4+PjbMOGDWz//v3s6NGj7Cc/+Qlbvnw5+5M/+ZOKeY5r165lTU1NbO/evez48eOzp8nJydnbVPr76PQco/A+PvbYY+zFF19kR48eZb/61a/Ypz/9aRaPx9mPfvQjxljw72Fkg481a9YwIso7/eQnP5m9zdDQELvjjjvY3LlzWSqVYuvWrWPnzp0LrtFFOHjwIPvQhz7Empqa2Jw5c9h73vMetmnTJjYxMRF004rypS99iaXTaVZXV8euueYa01S4Srdq1SrW2trKamtrWVtbG7vnnnvY4cOHg25WUX7yk59ov3dr1qxhjPFpmps2bWItLS2svr6eXX/99WxwcDDYRntk9xwnJyfZypUr2aWXXspqa2tZe3s7W7NmDRseHg662a7pnhsRsa9//euzt6n099HpOUbhffzHf/zH2d/OSy+9lN18882zgQdjwb+HMcYYK0uKBQAAAIAiXOEUAAAAwgnBBwAAAJQVgg8AAAAoKwQfAAAAUFYIPgAAAKCsEHwAAABAWSH4AAAAgLJC8AEAAABlheADAAAAygrBBwAAAJQVgg8AAAAoq/8PbqGeg5r8pNAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "gdf_gowalla = gdf_gowalla[gdf_gowalla['latitude'] < 60]\n", "gdf_gowalla = gdf_gowalla[gdf_gowalla['latitude'] > 35]\n", @@ -384,7 +516,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -421,9 +553,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting to plot\n", + "Number of unique users in Italy: 2555\n" + ] + }, + { + "data": { + "image/png": "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PgouYMi45pIOHw7+zuf1Na7V7FYXGAggUgA0ytiYDgKIS+UD9LXijOuVihb3SkVboDayWaLjx/VxtiwVXAQR9D2YkwIAdI9ajeiyy+rnmCoVHVpOFGSrMEnX0AUSgjkpAED6GRvTrj9Z20qpQKCIdAqlrDFUudZZgb4DIgUASDdjY0Q336xdfNWqFjGuzAv6Hrj7AAAAdBy4+wAAAPQ8ECkAAACpBSIFAAAgtUCkAAAApBaIFAAAgNQCkQIAAJBaIFIAAABSC0QKAABAaoFIAQAASC0QKQAAAKkFIgUAACC1QKQAAACklkQiVa1W6ZxzzqFly5bRsmXL6A1veAP967/+a2ifhx56iC644AJavnw5LV26lF7/+tfT3r17W9ppAAAAg0EikTrttNNoYmKCJicnaXJykt785jfThRdeSA8++CAREf3hD3+g8847j17xilfQ3XffTb/85S/pM5/5DC1atKgtnQcAANDfNF2qo1gs0he/+EX64Ac/SBdddBHl83n653/+54bbQ6kOAADof9peqmN2dpZuvfVWOnToEL3hDW+gubk5+tGPfkQvf/nL6fzzz6eTTz6ZXve619Htt98e2c6xY8doZmYmtAEAAABEDYjUnj176KSTTqKFCxfS2NgY7dy5k84880x66qmn6LnnnqOJiQl6xzveQT/5yU/oPe95D733ve+le+65x9ne9ddfT8uXL5/fVq9e3dQJAQAA6B8Su/uOHz9Oe/fupWeffZa+853v0De+8Q2655576AUveAGdeuqpVKlUaNu2bfP7X3DBBbRkyRLavn27tb1jx47RsWPH5p/PzMzQ6tWr4e4DAIA+xtfdtyBpw0NDQ/Syl72MiIjK5TLt3r2bvva1r9HXv/51WrBgAZ155pmh/V/5ylfSz3/+c2d7CxcupIULFybtBgAAgAGg6XVSSik6duwYDQ0N0dq1a+m3v/1t6P2HH36YSqVSsx8DAABgAElkSX3qU5+iv/mbv6HVq1fTwYMH6dZbb6W7776b7rjjDiIiuuaaa2jTpk20fv16etOb3kR33HEH/eAHP6C77767HX0HAADQ5yQSqT//+c90ySWX0JNPPknLly+nc845h+644w5629veRkRE73nPe6hWq9H1119PV1xxBZ1xxhn0ne98h84777y2dB4AAEB/0/Q6qVaDdVIAAND/tH2dFAAAANBuIFIAAABSC0QKAABAaoFIAQAASC0QKQAAAKkFIgUAACC1QKQASANr1xJlMkRDQ0S1Wrd7A0BqgEgBkAYmJ/XjiRNEExPd7QsAKQIiBUAaKJf1Yz5PND7e3b4AkCISZ0EHALSB3bu73QMAUgksKQAAAKkFIgUAACC1QKQAAACkFogUAACA1AKRAgAAkFogUgAAAFILRAoAAEBqgUgBAABILRApAAAAqQUiBQAAILVApAAAAKQWiBQAAIDUApECAACQWlKXBV0pRUREMzMzXe4JAACAdsFjPI/5LlInUgcPHiQiotWrV3e5JwAAANrNwYMHafny5c73MypOxjrM3NwcPfHEE7R06VLKZDLd7k7LmZmZodWrV9O+ffto2bJl3e5O28B59h+Dcq44z86glKKDBw/SqlWrKJt1zzylzpLKZrN02mmndbsbbWfZsmV9/QNgcJ79x6CcK86z/URZUAwCJwAAAKQWiBQAAIDUApHqMAsXLqRrr72WFi5c2O2utBWcZ/8xKOeK80wXqQucAAAAABhYUgAAAFILRAoAAEBqgUgBAABILRApAAAAqQUi1SGef/55+vSnP00veclLaPHixfTSl76UPve5z9Hc3Fy3u9YU9957L73rXe+iVatWUSaTodtvvz30vlKKPvvZz9KqVato8eLF9MY3vpEefPDB7nS2CaLO88SJE/SJT3yCXvWqV9GSJUto1apVdOmll9ITTzzRvQ43SNz/U/LhD3+YMpkMffWrX+1Y/1qFz3k+9NBDdMEFF9Dy5ctp6dKl9PrXv5727t3b+c42Sdy5Pvfcc3T55ZfTaaedRosXL6ZXvvKVVK1Wu9NZCxCpDvH5z3+earUa3XTTTfTQQw/RF77wBfriF79IX//617vdtaY4dOgQnXvuuXTTTTdZ3//CF75AX/7yl+mmm26i3bt30ymnnEJve9vb5nM09gpR53n48GG6//776TOf+Qzdf//99N3vfpcefvhhuuCCC7rQ0+aI+38yt99+O/33f/83rVq1qkM9ay1x5/mHP/yBzjvvPHrFK15Bd999N/3yl7+kz3zmM7Ro0aIO97R54s716quvpjvuuIO+/e1v00MPPURXX301ffSjH6Xvfe97He6pAwU6wjvf+U71gQ98IPTae9/7XnXxxRd3qUeth4jUzp0755/Pzc2pU045RU1MTMy/dvToUbV8+XJVq9W60MPWYJ6njfvuu08RkZqamupMp9qA6zwfe+wxdeqpp6pf//rXqlQqqa985Ssd71srsZ3npk2b+uq3ydjO9ayzzlKf+9znQq+95jWvUZ/+9Kc72DM3sKQ6xHnnnUf//u//Tg8//DAREf3yl7+kn//85/S3f/u3Xe5Z+3jkkUfoT3/6E7397W+ff23hwoW0YcMG2rVrVxd71n6mp6cpk8nQC17wgm53paXMzc3RJZdcQtdccw2dddZZ3e5OW5ibm6Mf/ehH9PKXv5zOP/98Ovnkk+l1r3tdpOuzlznvvPPo+9//Pj3++OOklKK77rqLHn74YTr//PO73TUigruvY3ziE5+gSqVCr3jFKyifz9OrX/1quuqqq6hSqXS7a23jT3/6ExERvehFLwq9/qIXvWj+vX7k6NGjND4+TqOjo32XoPTzn/88LViwgK644opud6VtPPXUU/Tcc8/RxMQEveMd76Cf/OQn9J73vIfe+9730j333NPt7rWcG2+8kc4880w67bTTaGhoiN7xjnfQLbfcQuedd163u0ZEKcyC3q/cdttt9O1vf5u2bdtGZ511Fj3wwAN01VVX0apVq+h973tft7vXVsySK0qpvizDQqSDKC666CKam5ujW265pdvdaSn/8z//Q1/72tfo/vvv79v/HxHNBzNdeOGFdPXVVxMR0V/91V/Rrl27qFar0YYNG7rZvZZz44030n/913/R97//fSqVSnTvvffSRz7yEXrxi19Mb33rW7vdPYhUp7jmmmtofHycLrroIiIietWrXkVTU1N0/fXX961InXLKKUSkLaoXv/jF868/9dRTddZVP3DixAnauHEjPfLII/TTn/6076yon/3sZ/TUU0/RyMjI/Guzs7P0sY99jL761a/So48+2r3OtZAXvvCFtGDBAjrzzDNDr7/yla+kn//8513qVXs4cuQIfepTn6KdO3fSO9/5TiIiOuecc+iBBx6gL33pS6kQKbj7OsThw4frCnvlcrmeD0GP4iUveQmdcsopdOedd86/dvz4cbrnnnto3bp1XexZ62GB+t3vfkf/9m//RitWrOh2l1rOJZdcQr/61a/ogQcemN9WrVpF11xzDf34xz/udvdaxtDQEK1du5Z++9vfhl5/+OGHqVQqdalX7eHEiRN04sSJVI9NsKQ6xLve9S7aunUrjYyM0FlnnUW/+MUv6Mtf/jJ94AMf6HbXmuK5556j3//+9/PPH3nkEXrggQeoWCzSyMgIXXXVVXTdddfR6aefTqeffjpdd911VCgUaHR0tIu9Tk7Uea5atYr+7u/+ju6//3764Q9/SLOzs/NzbsVikYaGhrrV7cTE/T9N8c3n83TKKafQGWec0emuNkXceV5zzTW0adMmWr9+Pb3pTW+iO+64g37wgx/Q3Xff3b1ON0jcuW7YsIGuueYaWrx4MZVKJbrnnnvoW9/6Fn35y1/uYq8F3Q4vHBRmZmbUlVdeqUZGRtSiRYvUS1/6UrVlyxZ17NixbnetKe666y5FRHXb+973PqWUDkO/9tpr1SmnnKIWLlyo1q9fr/bs2dPdTjdA1Hk+8sgj1veISN11113d7noi4v6fJr0agu5znt/85jfVy172MrVo0SJ17rnnqttvv717HW6CuHN98skn1fvf/361atUqtWjRInXGGWeoG264Qc3NzXW34/8HSnUAAABILZiTAgAAkFogUgAAAFILRAoAAEBqgUgBAABILRApAAAAqQUiBQAAILVApAAAAKQWiBQAAIDUApECAACQWiBSAAAAUgtECgAAQGqBSAEAAEgt/x/qY2bSZUAFiQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "df_foursquare_POIS = pd.read_csv(os.path.join('data', 'foursquare', 'raw_POIs.txt'), \n", " sep='\\t',\n", @@ -466,7 +617,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -499,9 +650,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gowalla\n", + "Number of lines: 83269\n", + "Number of unique elements: 3718\n", + "\n", + "brightkite\n", + "Number of lines: 391220\n", + "Number of unique elements: 8525\n", + "\n", + "foursquare\n", + "Number of lines: 125076\n", + "Number of unique elements: 2555\n", + "\n" + ] + } + ], "source": [ "def count_lines_and_unique_elements(file):\n", " df = pd.read_csv(file, sep='\\t', header=None)\n", @@ -544,9 +714,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Creating the graph for the dataset brightkite...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 84831/84831 [00:00<00:00, 309260.78it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done! The graph has 292973 edges and 6493 nodes\n", + "\n", + "Creating the graph for the dataset gowalla...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 31095/31095 [00:00<00:00, 327048.94it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done! The graph has 62790 edges and 3073 nodes\n", + "\n", + "Creating the graph for the dataset foursquare...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 40650/40650 [00:00<00:00, 139307.73it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done! The graph has 246702 edges and 2324 nodes\n" + ] + } + ], "source": [ "G_brighkite_checkins = create_graph_from_checkins('brightkite')\n", "G_brighkite_checkins.name = 'Brightkite Checkins Graph'\n", @@ -577,9 +802,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computation done for Brightkite friendship graph\n", + "Computation done for Gowalla friendship graph\n", + "Computation done for Foursquare friendship graph\n" + ] + } + ], "source": [ "G_brighkite_friends = create_friendships_graph('brightkite')\n", "print(\"Computation done for Brightkite friendship graph\")\n", @@ -606,9 +841,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Brightkite Friendship Graph\n", + "Number of nodes: 5420\n", + "Number of edges: 14690\n", + "\n", + "Gowalla Friendship Graph\n", + "Number of nodes: 2294\n", + "Number of edges: 5548\n", + "\n", + "Foursquare Friendship Graph\n", + "Number of nodes: 1397\n", + "Number of edges: 5323\n", + "\n" + ] + } + ], "source": [ "for G in [G_brighkite_friends, G_gowalla_friends, G_foursquare_friends]:\n", " print(G.name)\n", @@ -629,9 +883,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The graph has been saved in the folder html_graphs with the name brightkite_friendship_graph.html\n", + "The graph has been saved in the folder html_graphs with the name gowalla_friendship_graph.html\n", + "The graph has been saved in the folder html_graphs with the name foursquare_friendship_graph.html\n" + ] + } + ], "source": [ "friendships_graph = [G_brighkite_friends, G_gowalla_friends, G_foursquare_friends]\n", "\n", @@ -679,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -691,9 +955,149 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GraphNumber of NodesNumber of EdgesAverage DegreeAverage Clustering Coefficientlog NAverage Shortest Path Lengthbetweenness centralityomega-coefficient
0Brightkite Checkins Graph6493292973NaNNaN8.778480NaNNaNNaN
1Gowalla Checkins Graph307362790NaNNaN8.030410NaNNaNNaN
2Foursquare Checkins Graph2324246702NaNNaN7.751045NaNNaNNaN
3Brightkite Friendship Graph15001252NaNNaN7.313220NaNNaNNaN
4Gowalla Friendship Graph15002222NaNNaN7.313220NaNNaNNaN
5Foursquare Friendship Graph13975323NaNNaN7.242082NaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " Graph Number of Nodes Number of Edges Average Degree \\\n", + "0 Brightkite Checkins Graph 6493 292973 NaN \n", + "1 Gowalla Checkins Graph 3073 62790 NaN \n", + "2 Foursquare Checkins Graph 2324 246702 NaN \n", + "3 Brightkite Friendship Graph 1500 1252 NaN \n", + "4 Gowalla Friendship Graph 1500 2222 NaN \n", + "5 Foursquare Friendship Graph 1397 5323 NaN \n", + "\n", + " Average Clustering Coefficient log N Average Shortest Path Length \\\n", + "0 NaN 8.778480 NaN \n", + "1 NaN 8.030410 NaN \n", + "2 NaN 7.751045 NaN \n", + "3 NaN 7.313220 NaN \n", + "4 NaN 7.313220 NaN \n", + "5 NaN 7.242082 NaN \n", + "\n", + " betweenness centrality omega-coefficient \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "5 NaN NaN " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "analysis_results = pd.DataFrame(columns=['Graph', 'Number of Nodes', 'Number of Edges', 'Average Degree', 'Average Clustering Coefficient', 'log N', 'Average Shortest Path Length', 'betweenness centrality', 'omega-coefficient'], index=None)\n", "\n", @@ -720,9 +1124,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GraphAverage Degree
0Brightkite Checkins Graph90.242723
1Gowalla Checkins Graph40.865604
2Foursquare Checkins Graph212.30809
3Brightkite Friendship Graph1.669333
4Gowalla Friendship Graph2.962667
5Foursquare Friendship Graph7.620616
\n", + "
" + ], + "text/plain": [ + " Graph Average Degree\n", + "0 Brightkite Checkins Graph 90.242723\n", + "1 Gowalla Checkins Graph 40.865604\n", + "2 Foursquare Checkins Graph 212.30809\n", + "3 Brightkite Friendship Graph 1.669333\n", + "4 Gowalla Friendship Graph 2.962667\n", + "5 Foursquare Friendship Graph 7.620616" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "for G in graphs_all:\n", " avg_deg = np.mean([d for n, d in G.degree()])\n", @@ -765,9 +1244,114 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing average clustering coefficient for the Brightkite Checkins Graph...\n", + "\tAverage clustering coefficient: 0.7139988006862793\n", + "\tCPU time: 13.7 seconds\n", + "\n", + "Computing average clustering coefficient for the Gowalla Checkins Graph...\n", + "\tAverage clustering coefficient: 0.5483724940778376\n", + "\tCPU time: 1.5 seconds\n", + "\n", + "Computing average clustering coefficient for the Foursquare Checkins Graph...\n", + "\tAverage clustering coefficient: 0.6527297407924693\n", + "\tCPU time: 17.5 seconds\n", + "\n", + "Computing average clustering coefficient for the Brightkite Friendship Graph...\n", + "\tAverage clustering coefficient: 0.10119211009293606\n", + "\tCPU time: 0.0 seconds\n", + "\n", + "Computing average clustering coefficient for the Gowalla Friendship Graph...\n", + "\tAverage clustering coefficient: 0.17457861725067245\n", + "\tCPU time: 0.0 seconds\n", + "\n", + "Computing average clustering coefficient for the Foursquare Friendship Graph...\n", + "\tAverage clustering coefficient: 0.18348521948916247\n", + "\tCPU time: 0.0 seconds\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GraphAverage Clustering Coefficient
0Brightkite Checkins Graph0.713999
1Gowalla Checkins Graph0.548372
2Foursquare Checkins Graph0.65273
3Brightkite Friendship Graph0.101192
4Gowalla Friendship Graph0.174579
5Foursquare Friendship Graph0.183485
\n", + "
" + ], + "text/plain": [ + " Graph Average Clustering Coefficient\n", + "0 Brightkite Checkins Graph 0.713999\n", + "1 Gowalla Checkins Graph 0.548372\n", + "2 Foursquare Checkins Graph 0.65273\n", + "3 Brightkite Friendship Graph 0.101192\n", + "4 Gowalla Friendship Graph 0.174579\n", + "5 Foursquare Friendship Graph 0.183485" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "for graph in graphs_all:\n", " print(\"\\nComputing average clustering coefficient for the {}...\".format(graph.name))\n", @@ -853,9 +1437,132 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing average shortest path length for graph: Brightkite Checkins Graph\n", + "\tNumber of nodes after removing 60.0% of nodes: 2598\n", + "\tNumber of edges after removing 60.0% of nodes: 45614\n", + "\tNumber of connected components with more then 10 nodes: 1 \n", + "\tAverage shortest path length: 3.24ngth of connected component with 2262 nodes and 45540 edges \n", + "\tCPU time: 8.1 seconds\n", + "\n", + "Computing average shortest path length for graph: Gowalla Checkins Graph\n", + "\tNumber of nodes after removing 60.0% of nodes: 1230\n", + "\tNumber of edges after removing 60.0% of nodes: 9839\n", + "\tNumber of connected components with more then 10 nodes: 1 \n", + "\tAverage shortest path length: 3.72ngth of connected component with 1035 nodes and 9798 edges \n", + "\tCPU time: 1.3 seconds\n", + "\n", + "Computing average shortest path length for graph: Foursquare Checkins Graph\n", + "\tNumber of nodes after removing 60.0% of nodes: 930\n", + "\tNumber of edges after removing 60.0% of nodes: 39909\n", + "\tNumber of connected components with more then 10 nodes: 1 \n", + "\tAverage shortest path length: 2.19ngth of connected component with 884 nodes and 39908 edges \n", + "\tCPU time: 2.4 seconds\n", + "\n", + "Computing average shortest path length for graph: Brightkite Friendship Graph\n", + "\tNumber of nodes after removing 60.0% of nodes: 600\n", + "\tNumber of edges after removing 60.0% of nodes: 197\n", + "\tNumber of connected components with more then 10 nodes: 7 \n", + "\tAverage shortest path length: 18.11gth of connected component with 12 nodes and 12 edges \n", + "\tCPU time: 0.0 seconds\n", + "\n", + "Computing average shortest path length for graph: Gowalla Friendship Graph\n", + "\tNumber of nodes after removing 60.0% of nodes: 600\n", + "\tNumber of edges after removing 60.0% of nodes: 390\n", + "\tNumber of connected components with more then 10 nodes: 1 \n", + "\tAverage shortest path length: 7.42ngth of connected component with 183 nodes and 295 edges \n", + "\tCPU time: 0.0 seconds\n", + "\n", + "Computing average shortest path length for graph: Foursquare Friendship Graph\n", + "\tNumber of nodes after removing 60.0% of nodes: 559\n", + "\tNumber of edges after removing 60.0% of nodes: 766\n", + "\tNumber of connected components with more then 10 nodes: 1 \n", + "\tAverage shortest path length: 4.12ngth of connected component with 298 nodes and 704 edges \n", + "\tCPU time: 0.1 seconds\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GraphAverage Shortest Path Length
0Brightkite Checkins Graph3.240467
1Gowalla Checkins Graph3.722806
2Foursquare Checkins Graph2.193105
3Brightkite Friendship Graph18.110258
4Gowalla Friendship Graph7.416622
5Foursquare Friendship Graph4.1225
\n", + "
" + ], + "text/plain": [ + " Graph Average Shortest Path Length\n", + "0 Brightkite Checkins Graph 3.240467\n", + "1 Gowalla Checkins Graph 3.722806\n", + "2 Foursquare Checkins Graph 2.193105\n", + "3 Brightkite Friendship Graph 18.110258\n", + "4 Gowalla Friendship Graph 7.416622\n", + "5 Foursquare Friendship Graph 4.1225" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# if you want just to test it out, leave k = 0.6, it will only take a few seconds. More accurate results will be available to download after\n", "\n", @@ -906,9 +1613,126 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing the approximate betweenness centrality for the Brightkite Checkins Graph...\n", + "\tNumber of nodes after removing 50.0% of nodes: 3247\n", + "\tNumber of edges after removing 50.0% of nodes: 71082\n", + "\tBetweenness centrality: 0.0005558468081400489 \n", + "\tCPU time: 14.7 seconds\n", + "\n", + "Computing the approximate betweenness centrality for the Gowalla Checkins Graph...\n", + "\tNumber of nodes after removing 50.0% of nodes: 1537\n", + "\tNumber of edges after removing 50.0% of nodes: 14279\n", + "\tBetweenness centrality: 0.0014028797974253607 \n", + "\tCPU time: 2.4 seconds\n", + "\n", + "Computing the approximate betweenness centrality for the Foursquare Checkins Graph...\n", + "\tNumber of nodes after removing 50.0% of nodes: 1162\n", + "\tNumber of edges after removing 50.0% of nodes: 64188\n", + "\tBetweenness centrality: 0.0009042649640325027 \n", + "\tCPU time: 5.1 seconds\n", + "\n", + "Computing the approximate betweenness centrality for the Brightkite Friendship Graph...\n", + "\tNumber of nodes after removing 50.0% of nodes: 750\n", + "\tNumber of edges after removing 50.0% of nodes: 271\n", + "\tBetweenness centrality: 8.749872081372905e-05 \n", + "\tCPU time: 0.3 seconds\n", + "\n", + "Computing the approximate betweenness centrality for the Gowalla Friendship Graph...\n", + "\tNumber of nodes after removing 50.0% of nodes: 750\n", + "\tNumber of edges after removing 50.0% of nodes: 594\n", + "\tBetweenness centrality: 0.0011904547715432816 \n", + "\tCPU time: 0.4 seconds\n", + "\n", + "Computing the approximate betweenness centrality for the Foursquare Friendship Graph...\n", + "\tNumber of nodes after removing 50.0% of nodes: 699\n", + "\tNumber of edges after removing 50.0% of nodes: 1318\n", + "\tBetweenness centrality: 0.0018419685581777135 \n", + "\tCPU time: 0.4 seconds\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Graphbetweenness centrality
0Brightkite Checkins Graph0.000556
1Gowalla Checkins Graph0.001403
2Foursquare Checkins Graph0.000904
3Brightkite Friendship Graph0.000087
4Gowalla Friendship Graph0.00119
5Foursquare Friendship Graph0.001842
\n", + "
" + ], + "text/plain": [ + " Graph betweenness centrality\n", + "0 Brightkite Checkins Graph 0.000556\n", + "1 Gowalla Checkins Graph 0.001403\n", + "2 Foursquare Checkins Graph 0.000904\n", + "3 Brightkite Friendship Graph 0.000087\n", + "4 Gowalla Friendship Graph 0.00119\n", + "5 Foursquare Friendship Graph 0.001842" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "for graph in graphs_all:\n", " print(\"\\nComputing the approximate betweenness centrality for the {}...\".format(graph.name))\n", @@ -935,15 +1759,155 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GraphNumber of NodesNumber of EdgesAverage DegreeAverage Clustering Coefficientlog NAverage Shortest Path Lengthbetweenness centralityomega-coefficient
0Brightkite Checkins Graph649329297390.2427230.7139998.7784803.1576260.000533-0.25
1Gowalla Checkins Graph30736279040.8656040.5483728.0304103.8273840.001395-0.20
2Foursquare Checkins Graph2324246702212.308090.652737.7510452.2173190.000964-0.17
3Brightkite Friendship Graph150010441.3920.0800397.3132205.9217530.000039-0.18
4Gowalla Friendship Graph150024913.3213330.1749067.3132208.9751850.001483-0.24
5Foursquare Friendship Graph139753237.6206160.1834857.2420823.8685670.001803-0.05
\n", + "
" + ], + "text/plain": [ + " Graph Number of Nodes Number of Edges Average Degree \\\n", + "0 Brightkite Checkins Graph 6493 292973 90.242723 \n", + "1 Gowalla Checkins Graph 3073 62790 40.865604 \n", + "2 Foursquare Checkins Graph 2324 246702 212.30809 \n", + "3 Brightkite Friendship Graph 1500 1044 1.392 \n", + "4 Gowalla Friendship Graph 1500 2491 3.321333 \n", + "5 Foursquare Friendship Graph 1397 5323 7.620616 \n", + "\n", + " Average Clustering Coefficient log N Average Shortest Path Length \\\n", + "0 0.713999 8.778480 3.157626 \n", + "1 0.548372 8.030410 3.827384 \n", + "2 0.65273 7.751045 2.217319 \n", + "3 0.080039 7.313220 5.921753 \n", + "4 0.174906 7.313220 8.975185 \n", + "5 0.183485 7.242082 3.868567 \n", + "\n", + " betweenness centrality omega-coefficient \n", + "0 0.000533 -0.25 \n", + "1 0.001395 -0.20 \n", + "2 0.000964 -0.17 \n", + "3 0.000039 -0.18 \n", + "4 0.001483 -0.24 \n", + "5 0.001803 -0.05 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "if not os.path.exists(os.path.join('server_results', 'analysis_results.pkl')):\n", - " print(\"Downloading the analysis results file...\")\n", - " wget.download('https://github.com/lukefleed/small-worlds/raw/main/server_results/analysis_results.pkl', out='server_results')\n", + "# if not os.path.exists(os.path.join('server_results', 'analysis_results.pkl')):\n", + "# print(\"Downloading the analysis results file...\")\n", + "# wget.download('https://github.com/lukefleed/small-worlds/raw/main/server_results/analysis_results.pkl', out='server_results')\n", "\n", - "analysis_results = pd.read_pickle('analysis_results.pkl')\n", + "analysis_results = pd.read_pickle('server_results/analysis_results.pkl')\n", "analysis_results" ] }, @@ -970,9 +1934,5568 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 6, + 234, + 29, + 237, + 97, + 255, + 262, + 72, + 309, + 1, + 37, + 17, + 539, + 99, + 10, + 92, + 52, + 815, + 649, + 2, + 140, + 490, + 231, + 101, + 68, + 94, + 267, + 66, + 239, + 354, + 41, + 226, + 657, + 232, + 5, + 540, + 35, + 14, + 483, + 16, + 506, + 26, + 7, + 840, + 450, + 47, + 578, + 58, + 359, + 268, + 95, + 275, + 565, + 59, + 67, + 8, + 150, + 39, + 655, + 177, + 108, + 28, + 128, + 181, + 156, + 148, + 236, + 250, + 383, + 257, + 297, + 260, + 50, + 193, + 201, + 40, + 13, + 80, + 18, + 345, + 43, + 104, + 584, + 102, + 12, + 31, + 138, + 867, + 48, + 55, + 243, + 317, + 85, + 79, + 259, + 76, + 130, + 246, + 238, + 282, + 286, + 266, + 526, + 715, + 3, + 45, + 241, + 89, + 264, + 112, + 42, + 168, + 184, + 20, + 251, + 34, + 466, + 117, + 208, + 82, + 122, + 252, + 303, + 22, + 535, + 179, + 180, + 153, + 69, + 114, + 25, + 746, + 224, + 205, + 149, + 53, + 475, + 195, + 84, + 11, + 24, + 135, + 194, + 103, + 71, + 487, + 1021, + 167, + 220, + 4, + 129, + 107, + 508, + 36, + 788, + 21, + 9, + 162, + 30, + 254, + 273, + 216, + 227, + 113, + 467, + 543, + 51, + 32, + 755, + 93, + 81, + 621, + 320, + 27, + 548, + 49, + 222, + 908, + 219, + 456, + 209, + 54, + 60, + 15, + 170, + 326, + 44, + 160, + 96, + 272, + 707, + 261, + 496, + 477, + 106, + 174, + 61, + 19, + 57, + 90, + 115, + 38, + 73, + 23, + 189, + 462, + 221, + 214, + 469, + 215, + 62, + 109, + 294, + 310, + 468, + 91, + 296, + 290, + 46, + 166, + 199, + 64, + 98, + 88, + 906, + 786, + 87, + 176, + 517, + 182, + 536, + 77, + 498, + 242, + 663, + 528, + 853, + 33, + 280, + 318, + 151, + 116, + 1043, + 110, + 671, + 803, + 480, + 678, + 142, + 738, + 65, + 493, + 321, + 716, + 161, + 126, + 211, + 218, + 292, + 187, + 384, + 674, + 169, + 198, + 197, + 131, + 253, + 591, + 100, + 229, + 311, + 541, + 499, + 173, + 230, + 1004, + 245, + 497, + 63, + 388, + 305, + 228, + 278, + 500, + 491, + 127, + 723, + 365, + 74, + 136, + 247, + 240, + 476, + 516, + 159, + 223, + 277, + 213, + 56, + 553, + 790, + 86, + 323, + 225, + 178, + 433, + 378, + 593, + 212, + 465, + 478, + 601, + 206, + 728, + 346, + 463, + 550, + 461, + 171, + 146, + 158, + 83, + 400, + 521, + 651, + 319, + 335, + 349, + 200, + 484, + 334, + 333, + 549, + 165, + 75, + 256, + 387, + 118, + 376, + 698, + 314, + 472, + 546, + 291, + 190, + 430, + 269, + 350, + 492, + 734, + 298, + 572, + 185, + 157, + 357, + 330, + 235, + 353, + 186, + 137, + 233, + 471, + 258, + 105, + 504, + 154, + 360, + 70, + 544, + 473, + 217, + 510, + 817, + 192, + 495, + 139, + 464, + 204, + 434, + 145, + 327, + 444, + 155, + 210, + 666, + 645, + 397, + 502, + 556, + 152, + 639, + 133, + 124, + 603, + 313, + 271, + 460, + 249, + 527, + 248, + 445, + 665, + 777, + 518, + 656, + 615, + 367, + 596, + 279, + 511, + 316, + 325, + 183, + 175, + 163, + 605, + 144, + 675, + 481, + 567, + 344, + 301, + 524, + 111, + 704, + 302, + 689, + 505, + 332, + 147, + 512, + 509, + 585, + 486, + 660, + 479, + 538, + 580, + 501, + 552, + 520, + 577, + 525, + 751, + 534, + 134, + 607, + 545, + 561, + 485, + 503, + 470, + 547, + 514, + 778, + 630, + 770, + 188, + 125, + 494, + 482, + 610, + 123, + 574, + 489, + 141, + 120, + 616, + 531, + 837, + 754, + 488, + 731, + 783, + 699, + 513, + 474, + 306, + 265, + 274, + 191, + 372, + 389, + 368, + 270, + 132, + 415, + 393, + 288, + 244, + 121 + ], + "y": [ + 166, + 9, + 20, + 4, + 12, + 7, + 4, + 6, + 1, + 619, + 32, + 59, + 2, + 13, + 120, + 13, + 37, + 1, + 1, + 333, + 3, + 2, + 8, + 5, + 17, + 11, + 3, + 18, + 9, + 1, + 19, + 13, + 1, + 6, + 178, + 4, + 31, + 88, + 4, + 62, + 4, + 53, + 146, + 1, + 1, + 44, + 1, + 14, + 1, + 3, + 10, + 2, + 1, + 31, + 36, + 116, + 38, + 27, + 2, + 1, + 5, + 40, + 2, + 4, + 9, + 7, + 14, + 1, + 1, + 1, + 3, + 2, + 41, + 1, + 1, + 32, + 100, + 9, + 88, + 2, + 10, + 5, + 2, + 8, + 90, + 32, + 4, + 1, + 21, + 44, + 3, + 1, + 5, + 40, + 2, + 8, + 5, + 3, + 5, + 2, + 2, + 3, + 3, + 1, + 231, + 12, + 6, + 62, + 2, + 5, + 17, + 1, + 1, + 83, + 2, + 46, + 9, + 7, + 2, + 13, + 4, + 2, + 4, + 48, + 3, + 3, + 3, + 8, + 15, + 6, + 45, + 2, + 15, + 1, + 5, + 63, + 3, + 3, + 9, + 104, + 39, + 2, + 1, + 11, + 10, + 3, + 1, + 3, + 15, + 220, + 5, + 6, + 1, + 44, + 1, + 49, + 122, + 2, + 36, + 2, + 1, + 5, + 17, + 4, + 6, + 1, + 11, + 34, + 2, + 8, + 9, + 1, + 1, + 37, + 4, + 23, + 29, + 1, + 20, + 1, + 2, + 25, + 16, + 61, + 3, + 1, + 33, + 4, + 9, + 3, + 1, + 4, + 2, + 4, + 4, + 2, + 20, + 64, + 12, + 26, + 2, + 38, + 7, + 47, + 3, + 6, + 65, + 9, + 7, + 9, + 10, + 6, + 1, + 1, + 6, + 18, + 2, + 1, + 50, + 5, + 2, + 17, + 9, + 17, + 1, + 1, + 36, + 3, + 3, + 2, + 1, + 11, + 2, + 6, + 2, + 2, + 1, + 18, + 1, + 2, + 12, + 4, + 1, + 5, + 2, + 1, + 2, + 1, + 2, + 1, + 8, + 3, + 1, + 1, + 4, + 2, + 63, + 80, + 2, + 3, + 1, + 1, + 3, + 1, + 3, + 1, + 2, + 1, + 4, + 10, + 1, + 2, + 2, + 1, + 4, + 1, + 4, + 7, + 12, + 1, + 1, + 12, + 2, + 1, + 3, + 3, + 1, + 1, + 8, + 3, + 3, + 5, + 4, + 2, + 3, + 12, + 2, + 12, + 35, + 1, + 1, + 24, + 1, + 12, + 5, + 1, + 1, + 1, + 15, + 6, + 5, + 1, + 1, + 1, + 3, + 11, + 1, + 14, + 2, + 7, + 5, + 6, + 2, + 2, + 5, + 2, + 1, + 1, + 2, + 4, + 3, + 1, + 1, + 5, + 10, + 4, + 1, + 4, + 1, + 1, + 1, + 3, + 1, + 2, + 3, + 2, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 5, + 1, + 1, + 1, + 6, + 4, + 2, + 6, + 2, + 5, + 1, + 5, + 2, + 6, + 2, + 1, + 1, + 2, + 1, + 3, + 11, + 2, + 1, + 4, + 1, + 1, + 5, + 1, + 1, + 1, + 1, + 2, + 2, + 6, + 1, + 3, + 4, + 1, + 1, + 1, + 144, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 3, + 1, + 31, + 3, + 1, + 1, + 1, + 1, + 1, + 4, + 1, + 1, + 1, + 1, + 3, + 5, + 5, + 1, + 1, + 2, + 1, + 5, + 2, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 5, + 1, + 5, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 3, + 1, + 1, + 1, + 1, + 4, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution (log-log scale) of Brightkite Checkins Graph" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + }, + "type": "log" + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + }, + "type": "log" + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 26, + 208, + 59, + 81, + 21, + 146, + 37, + 50, + 4, + 5, + 3, + 77, + 117, + 35, + 28, + 78, + 109, + 76, + 9, + 60, + 186, + 291, + 444, + 8, + 118, + 42, + 54, + 39, + 90, + 134, + 61, + 55, + 63, + 41, + 31, + 16, + 92, + 66, + 91, + 127, + 84, + 303, + 124, + 12, + 103, + 36, + 69, + 53, + 83, + 30, + 49, + 40, + 33, + 67, + 119, + 137, + 231, + 29, + 17, + 6, + 43, + 122, + 94, + 14, + 281, + 93, + 115, + 98, + 145, + 19, + 47, + 7, + 62, + 38, + 20, + 24, + 13, + 120, + 89, + 34, + 48, + 184, + 2, + 409, + 73, + 58, + 157, + 222, + 101, + 25, + 57, + 105, + 74, + 112, + 18, + 171, + 32, + 153, + 159, + 88, + 51, + 149, + 52, + 46, + 106, + 82, + 70, + 202, + 1, + 71, + 22, + 75, + 218, + 44, + 100, + 27, + 107, + 158, + 179, + 110, + 181, + 131, + 264, + 333, + 97, + 199, + 300, + 252, + 474, + 79, + 545, + 15, + 45, + 271, + 212, + 23, + 10, + 56, + 87, + 64, + 68, + 244, + 237, + 11, + 152, + 129, + 148, + 160, + 204, + 245, + 80, + 111, + 196, + 128, + 419, + 170, + 501, + 379, + 164, + 200, + 280, + 256, + 368, + 325, + 235, + 243, + 95, + 448, + 180, + 114, + 143, + 390, + 309, + 85, + 302, + 491, + 133, + 326, + 147, + 177, + 255, + 205, + 217, + 126, + 210, + 113, + 201, + 345, + 266, + 108, + 136, + 99, + 194, + 162, + 139, + 316, + 292, + 173, + 65, + 225, + 240, + 72, + 242, + 161, + 166, + 175, + 192, + 144, + 156, + 183, + 198, + 123, + 168, + 211, + 323, + 265, + 301, + 174, + 287, + 176, + 132, + 172, + 203, + 154, + 277, + 283, + 282, + 214, + 353, + 197, + 190, + 221, + 125, + 261, + 130, + 167, + 234, + 439, + 188, + 238, + 219, + 315, + 272, + 236, + 337, + 278, + 193, + 253, + 305, + 151, + 165, + 140, + 273, + 288, + 215, + 96, + 207, + 86, + 187, + 104, + 182, + 150, + 213, + 121, + 268, + 227 + ], + "y": [ + 22, + 2, + 10, + 5, + 36, + 3, + 22, + 21, + 138, + 91, + 186, + 5, + 5, + 19, + 34, + 7, + 2, + 11, + 78, + 7, + 2, + 3, + 2, + 66, + 1, + 23, + 10, + 18, + 7, + 5, + 10, + 9, + 9, + 23, + 27, + 49, + 6, + 13, + 3, + 7, + 8, + 2, + 3, + 42, + 4, + 22, + 12, + 4, + 8, + 29, + 16, + 27, + 19, + 10, + 4, + 7, + 3, + 28, + 33, + 79, + 17, + 1, + 6, + 30, + 1, + 3, + 4, + 6, + 1, + 30, + 11, + 68, + 7, + 21, + 37, + 26, + 46, + 6, + 5, + 15, + 18, + 2, + 218, + 2, + 14, + 12, + 5, + 2, + 5, + 25, + 14, + 5, + 9, + 3, + 31, + 4, + 22, + 1, + 3, + 2, + 12, + 2, + 6, + 14, + 1, + 6, + 7, + 3, + 358, + 10, + 22, + 3, + 3, + 16, + 5, + 23, + 3, + 4, + 4, + 3, + 2, + 3, + 3, + 3, + 2, + 2, + 1, + 2, + 1, + 3, + 1, + 40, + 8, + 1, + 2, + 28, + 49, + 11, + 3, + 6, + 6, + 2, + 2, + 45, + 4, + 2, + 3, + 4, + 1, + 2, + 9, + 4, + 1, + 2, + 1, + 4, + 1, + 1, + 3, + 1, + 1, + 2, + 1, + 1, + 2, + 3, + 4, + 1, + 3, + 4, + 2, + 1, + 3, + 3, + 1, + 1, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 4, + 1, + 3, + 2, + 1, + 3, + 6, + 2, + 2, + 3, + 3, + 5, + 1, + 1, + 3, + 3, + 2, + 2, + 9, + 1, + 2, + 2, + 1, + 2, + 3, + 2, + 2, + 1, + 3, + 2, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 2, + 2, + 2, + 1, + 2, + 3, + 2, + 4, + 1, + 1, + 5, + 1, + 3, + 2, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 3, + 1, + 3, + 1, + 2, + 1, + 4, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution (log-log scale) of Gowalla Checkins Graph" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + }, + "type": "log" + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + }, + "type": "log" + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 33, + 498, + 158, + 143, + 321, + 376, + 203, + 349, + 286, + 329, + 479, + 710, + 76, + 422, + 289, + 600, + 271, + 793, + 469, + 110, + 333, + 1038, + 434, + 371, + 729, + 556, + 276, + 302, + 728, + 477, + 771, + 320, + 700, + 277, + 461, + 507, + 548, + 283, + 493, + 311, + 294, + 444, + 623, + 673, + 468, + 545, + 879, + 502, + 278, + 492, + 598, + 282, + 524, + 578, + 735, + 394, + 449, + 759, + 308, + 388, + 497, + 722, + 476, + 737, + 421, + 315, + 518, + 855, + 1061, + 313, + 335, + 392, + 620, + 454, + 280, + 828, + 406, + 432, + 381, + 383, + 856, + 544, + 327, + 696, + 512, + 564, + 312, + 346, + 674, + 792, + 796, + 521, + 474, + 443, + 466, + 370, + 712, + 859, + 368, + 340, + 970, + 395, + 606, + 316, + 854, + 345, + 689, + 336, + 781, + 279, + 553, + 360, + 378, + 486, + 653, + 331, + 420, + 314, + 902, + 829, + 299, + 632, + 403, + 355, + 292, + 484, + 570, + 281, + 920, + 409, + 325, + 412, + 431, + 428, + 347, + 440, + 773, + 318, + 941, + 705, + 823, + 485, + 552, + 363, + 362, + 652, + 319, + 875, + 451, + 483, + 359, + 944, + 310, + 585, + 684, + 339, + 334, + 495, + 642, + 893, + 305, + 562, + 467, + 780, + 622, + 789, + 560, + 456, + 288, + 455, + 487, + 337, + 442, + 536, + 969, + 373, + 344, + 768, + 482, + 567, + 624, + 803, + 917, + 475, + 905, + 857, + 1004, + 534, + 372, + 390, + 436, + 908, + 743, + 284, + 457, + 450, + 365, + 341, + 832, + 821, + 549, + 509, + 307, + 1, + 898, + 13, + 6, + 74, + 44, + 825, + 160, + 234, + 489, + 625, + 22, + 60, + 40, + 86, + 88, + 87, + 15, + 3, + 49, + 12, + 211, + 539, + 129, + 244, + 532, + 317, + 107, + 580, + 223, + 348, + 242, + 34, + 119, + 441, + 55, + 42, + 257, + 128, + 437, + 256, + 471, + 132, + 207, + 121, + 84, + 850, + 62, + 293, + 609, + 576, + 295, + 361, + 571, + 701, + 516, + 222, + 7, + 100, + 488, + 915, + 351, + 228, + 894, + 382, + 332, + 739, + 59, + 61, + 117, + 185, + 112, + 718, + 125, + 81, + 188, + 255, + 108, + 174, + 526, + 189, + 235, + 910, + 249, + 517, + 241, + 209, + 681, + 219, + 164, + 72, + 167, + 138, + 176, + 246, + 155, + 480, + 73, + 531, + 473, + 470, + 868, + 396, + 306, + 247, + 672, + 530, + 205, + 196, + 152, + 142, + 141, + 175, + 644, + 101, + 503, + 229, + 140, + 811, + 206, + 105, + 104, + 106, + 102, + 187, + 697, + 27, + 71, + 154, + 550, + 691, + 814, + 192, + 91, + 546, + 41, + 157, + 591, + 21, + 231, + 146, + 172, + 830, + 387, + 841, + 411, + 555, + 145, + 551, + 758, + 791, + 197, + 405, + 183, + 410, + 178, + 151, + 890, + 221, + 193, + 232, + 191, + 268, + 245, + 520, + 889, + 43, + 28, + 201, + 379, + 777, + 285, + 45, + 262, + 10, + 204, + 19, + 755, + 23, + 2, + 137, + 500, + 510, + 9, + 522, + 275, + 572, + 8, + 179, + 4, + 790, + 540, + 590, + 243, + 711, + 265, + 264, + 24, + 356, + 58, + 224, + 70, + 490, + 304, + 236, + 272, + 618, + 523, + 838, + 658, + 296, + 404, + 592, + 880, + 621, + 583, + 513, + 662, + 809, + 690, + 588, + 506, + 352, + 640, + 324, + 757, + 251, + 238, + 706, + 651, + 237, + 797, + 646, + 51, + 358, + 426, + 226, + 323, + 648, + 364, + 163, + 90, + 225, + 17, + 326, + 166, + 584, + 96, + 433, + 139, + 367, + 80, + 230, + 5, + 529, + 111, + 679, + 66, + 423, + 64, + 239, + 472, + 89, + 369, + 415, + 462, + 547, + 525, + 79, + 375, + 582, + 414, + 543, + 274, + 478, + 425, + 126, + 602, + 258, + 671, + 180, + 511, + 148, + 505, + 416, + 393, + 669, + 350, + 215, + 504, + 213, + 36, + 398, + 165, + 427, + 131, + 26, + 494, + 465, + 508, + 665, + 377, + 50, + 254, + 32, + 83, + 16, + 94, + 135, + 54, + 212, + 537, + 724, + 198, + 39, + 557, + 48, + 184, + 496, + 692, + 113, + 635, + 565, + 68, + 639, + 63, + 273, + 47, + 56, + 452, + 69, + 218, + 136, + 46, + 723, + 200, + 354, + 569, + 541, + 297, + 14, + 438, + 248, + 447, + 194, + 181, + 663, + 173, + 617, + 408, + 171, + 208, + 252, + 435, + 153, + 267, + 661, + 134, + 501, + 400, + 633, + 563, + 353, + 118, + 605, + 380, + 424, + 568, + 448, + 499, + 328, + 481, + 417, + 491, + 391, + 459, + 343, + 342, + 397, + 594, + 389, + 558, + 384, + 147, + 168, + 182, + 270, + 322, + 120, + 53, + 233, + 97, + 144, + 210, + 300, + 161, + 85, + 123, + 77, + 150, + 130, + 214, + 199, + 149, + 95, + 162, + 57, + 216, + 115, + 92, + 29, + 114, + 202, + 38, + 122, + 301, + 169, + 303, + 67, + 98, + 99, + 177, + 103, + 30, + 18, + 338, + 31, + 78, + 253, + 266, + 269, + 260, + 330, + 259, + 250, + 93, + 116, + 82, + 25, + 11, + 170, + 156, + 65, + 195, + 35, + 20, + 37, + 75, + 109, + 52 + ], + "y": [ + 7, + 2, + 4, + 14, + 7, + 3, + 6, + 3, + 6, + 5, + 2, + 2, + 4, + 4, + 4, + 1, + 1, + 1, + 3, + 1, + 2, + 1, + 1, + 2, + 1, + 2, + 33, + 4, + 1, + 3, + 1, + 4, + 1, + 6, + 3, + 3, + 1, + 5, + 2, + 3, + 2, + 3, + 1, + 1, + 1, + 3, + 1, + 3, + 5, + 4, + 3, + 3, + 3, + 2, + 2, + 2, + 2, + 1, + 4, + 3, + 1, + 1, + 2, + 1, + 2, + 3, + 1, + 1, + 1, + 5, + 2, + 4, + 4, + 2, + 3, + 1, + 1, + 4, + 5, + 3, + 2, + 3, + 4, + 1, + 1, + 4, + 2, + 4, + 2, + 1, + 1, + 5, + 2, + 3, + 4, + 5, + 1, + 1, + 1, + 2, + 1, + 4, + 1, + 2, + 1, + 3, + 1, + 2, + 2, + 4, + 1, + 2, + 4, + 2, + 2, + 4, + 1, + 2, + 1, + 1, + 4, + 1, + 1, + 1, + 3, + 4, + 1, + 9, + 1, + 4, + 5, + 2, + 3, + 1, + 5, + 4, + 1, + 2, + 1, + 1, + 1, + 2, + 2, + 4, + 3, + 2, + 1, + 1, + 3, + 2, + 2, + 1, + 1, + 1, + 1, + 3, + 2, + 3, + 1, + 1, + 2, + 2, + 4, + 1, + 1, + 2, + 1, + 3, + 2, + 2, + 1, + 1, + 3, + 3, + 1, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 1, + 3, + 1, + 1, + 1, + 5, + 1, + 1, + 3, + 1, + 2, + 3, + 2, + 4, + 2, + 2, + 1, + 1, + 1, + 3, + 4, + 116, + 1, + 13, + 28, + 10, + 12, + 1, + 3, + 3, + 3, + 1, + 12, + 3, + 7, + 8, + 5, + 4, + 12, + 47, + 6, + 13, + 3, + 2, + 4, + 1, + 1, + 3, + 3, + 1, + 6, + 2, + 2, + 23, + 5, + 2, + 6, + 10, + 2, + 4, + 3, + 2, + 2, + 3, + 2, + 3, + 5, + 1, + 13, + 2, + 2, + 2, + 4, + 3, + 2, + 1, + 4, + 1, + 17, + 3, + 2, + 1, + 3, + 3, + 1, + 1, + 1, + 1, + 7, + 7, + 3, + 2, + 2, + 1, + 2, + 9, + 3, + 1, + 4, + 2, + 4, + 4, + 2, + 1, + 1, + 1, + 3, + 3, + 2, + 3, + 5, + 11, + 1, + 1, + 1, + 5, + 3, + 2, + 5, + 2, + 2, + 2, + 1, + 3, + 3, + 2, + 1, + 2, + 5, + 8, + 8, + 6, + 13, + 3, + 3, + 5, + 2, + 1, + 2, + 1, + 3, + 4, + 3, + 6, + 4, + 5, + 1, + 8, + 9, + 4, + 2, + 1, + 1, + 5, + 5, + 2, + 8, + 2, + 1, + 5, + 2, + 5, + 1, + 1, + 2, + 1, + 2, + 3, + 3, + 1, + 2, + 1, + 5, + 1, + 1, + 2, + 4, + 4, + 1, + 4, + 1, + 3, + 4, + 3, + 3, + 2, + 1, + 15, + 7, + 2, + 1, + 1, + 2, + 5, + 2, + 20, + 3, + 17, + 1, + 7, + 60, + 2, + 3, + 2, + 20, + 1, + 3, + 2, + 13, + 3, + 24, + 1, + 1, + 1, + 2, + 1, + 4, + 3, + 9, + 1, + 6, + 3, + 7, + 3, + 3, + 8, + 4, + 1, + 2, + 1, + 2, + 4, + 2, + 1, + 1, + 1, + 1, + 3, + 1, + 1, + 2, + 1, + 1, + 2, + 1, + 5, + 1, + 1, + 2, + 2, + 1, + 2, + 1, + 1, + 2, + 1, + 1, + 3, + 1, + 1, + 3, + 1, + 2, + 3, + 11, + 1, + 13, + 1, + 6, + 4, + 3, + 3, + 12, + 3, + 20, + 2, + 7, + 2, + 3, + 4, + 8, + 2, + 2, + 6, + 3, + 2, + 2, + 2, + 1, + 3, + 3, + 1, + 1, + 1, + 2, + 1, + 2, + 4, + 2, + 1, + 1, + 3, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 2, + 1, + 4, + 1, + 19, + 1, + 1, + 4, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 12, + 5, + 12, + 1, + 8, + 7, + 2, + 1, + 1, + 4, + 4, + 1, + 8, + 3, + 1, + 1, + 3, + 1, + 1, + 5, + 1, + 5, + 3, + 8, + 6, + 2, + 7, + 1, + 3, + 19, + 1, + 2, + 1, + 1, + 1, + 2, + 14, + 1, + 1, + 3, + 2, + 1, + 1, + 3, + 1, + 1, + 1, + 4, + 2, + 1, + 1, + 1, + 1, + 4, + 3, + 1, + 1, + 2, + 3, + 2, + 1, + 1, + 1, + 1, + 1, + 4, + 1, + 2, + 2, + 1, + 2, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 3, + 2, + 3, + 2, + 1, + 3, + 37, + 2, + 2, + 3, + 1, + 2, + 1, + 5, + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 5, + 1, + 7, + 3, + 2, + 3, + 17, + 5, + 2, + 8, + 2, + 1, + 4, + 1, + 7, + 2, + 4, + 2, + 3, + 8, + 6, + 1, + 4, + 2, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 5, + 2, + 5, + 8, + 9, + 2, + 1, + 2, + 1, + 4, + 12, + 6, + 2, + 1, + 2 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution (log-log scale) of Foursquare Checkins Graph" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + }, + "type": "log" + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + }, + "type": "log" + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "for G in checkins_graphs:\n", " degree_distribution(G, log = True) # I suggest to use log = True, it is more readable" @@ -980,9 +7503,2900 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 11, + 1, + 2, + 3, + 65, + 15, + 4, + 8, + 5, + 0, + 13, + 7, + 9, + 19, + 26, + 36, + 55, + 12, + 6, + 10, + 16, + 17, + 27, + 43, + 14, + 22, + 18, + 21 + ], + "y": [ + 4, + 421, + 199, + 95, + 1, + 3, + 56, + 11, + 26, + 608, + 1, + 13, + 7, + 2, + 1, + 1, + 1, + 4, + 31, + 7, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Brightkite Friendship Graph" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 18, + 27, + 7, + 4, + 41, + 20, + 16, + 13, + 2, + 14, + 22, + 15, + 3, + 9, + 0, + 1, + 5, + 29, + 10, + 17, + 11, + 6, + 8, + 12, + 25, + 21, + 43, + 23, + 32, + 31, + 40, + 36, + 19 + ], + "y": [ + 2, + 5, + 41, + 89, + 1, + 2, + 4, + 7, + 271, + 7, + 1, + 4, + 157, + 13, + 212, + 510, + 60, + 2, + 14, + 7, + 8, + 42, + 23, + 4, + 1, + 5, + 1, + 1, + 1, + 2, + 1, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Gowalla Friendship Graph" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 10, + 13, + 9, + 30, + 14, + 25, + 45, + 18, + 56, + 3, + 8, + 12, + 37, + 66, + 1, + 23, + 36, + 40, + 4, + 5, + 6, + 7, + 33, + 42, + 15, + 19, + 27, + 31, + 49, + 11, + 63, + 22, + 24, + 28, + 46, + 2, + 32, + 149, + 58, + 17, + 54, + 16, + 48, + 21, + 20, + 29, + 59, + 26, + 38, + 51, + 44, + 47, + 43, + 52, + 39, + 53, + 34, + 41, + 73, + 57, + 35 + ], + "y": [ + 30, + 19, + 28, + 2, + 18, + 11, + 3, + 8, + 3, + 130, + 37, + 17, + 5, + 1, + 402, + 12, + 7, + 2, + 94, + 69, + 50, + 43, + 2, + 3, + 21, + 8, + 6, + 5, + 1, + 24, + 1, + 8, + 5, + 8, + 2, + 217, + 5, + 1, + 1, + 15, + 2, + 10, + 2, + 6, + 9, + 8, + 1, + 7, + 2, + 1, + 1, + 1, + 2, + 1, + 6, + 1, + 5, + 4, + 1, + 1, + 2 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Foursquare Friendship Graph" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "for graph in friendships_graph:\n", " degree_distribution(graph, log = False)" @@ -1002,9 +10416,3067 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Brightkite Checkins Graph - Watts-Strogatz similarity\n", + "Number of nodes: 2324\n", + "Number of edges: 246344\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 211, + 210, + 229, + 201, + 208, + 221, + 206, + 214, + 218, + 228, + 212, + 204, + 203, + 216, + 225, + 226, + 200, + 209, + 220, + 230, + 227, + 215, + 196, + 205, + 219, + 217, + 223, + 224, + 231, + 207, + 213, + 202, + 233, + 222, + 197, + 198, + 238, + 199, + 243, + 195, + 194, + 234, + 236, + 193, + 190, + 184, + 232, + 188, + 191, + 235, + 187, + 192, + 182, + 189, + 237, + 185, + 186, + 251, + 183, + 240, + 241 + ], + "y": [ + 87, + 110, + 26, + 68, + 87, + 61, + 67, + 83, + 76, + 26, + 96, + 75, + 64, + 89, + 38, + 27, + 42, + 90, + 62, + 15, + 31, + 71, + 19, + 65, + 70, + 102, + 40, + 45, + 21, + 93, + 79, + 47, + 10, + 58, + 29, + 40, + 2, + 40, + 1, + 32, + 17, + 12, + 8, + 10, + 8, + 5, + 20, + 5, + 11, + 7, + 1, + 15, + 1, + 6, + 5, + 2, + 2, + 1, + 1, + 1, + 2 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Brightkite Checkins Graph - Watts-Strogatz similarity" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gowalla Checkins Graph - Watts-Strogatz similarity\n", + "Number of nodes: 2324\n", + "Number of edges: 246344\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 218, + 213, + 203, + 204, + 211, + 207, + 233, + 215, + 226, + 216, + 217, + 206, + 190, + 197, + 209, + 225, + 201, + 196, + 220, + 208, + 214, + 228, + 183, + 200, + 227, + 234, + 210, + 212, + 219, + 224, + 195, + 223, + 189, + 222, + 202, + 205, + 235, + 221, + 229, + 198, + 236, + 237, + 194, + 232, + 230, + 192, + 241, + 187, + 239, + 186, + 231, + 191, + 193, + 199, + 185, + 243, + 179, + 240, + 247, + 244, + 238, + 188, + 242, + 182, + 184, + 245 + ], + "y": [ + 66, + 100, + 59, + 72, + 93, + 74, + 10, + 86, + 25, + 82, + 68, + 86, + 11, + 35, + 95, + 42, + 46, + 26, + 66, + 84, + 100, + 23, + 2, + 48, + 34, + 12, + 102, + 94, + 80, + 49, + 23, + 35, + 6, + 49, + 57, + 68, + 9, + 65, + 22, + 36, + 9, + 5, + 27, + 9, + 16, + 14, + 5, + 4, + 4, + 1, + 13, + 12, + 13, + 31, + 1, + 1, + 1, + 4, + 1, + 1, + 4, + 2, + 2, + 2, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Gowalla Checkins Graph - Watts-Strogatz similarity" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Foursquare Checkins Graph - Watts-Strogatz similarity\n", + "Number of nodes: 2324\n", + "Number of edges: 246344\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 206, + 226, + 207, + 210, + 221, + 215, + 235, + 220, + 205, + 217, + 216, + 213, + 212, + 223, + 208, + 214, + 199, + 211, + 202, + 222, + 228, + 218, + 204, + 203, + 229, + 227, + 225, + 196, + 209, + 198, + 187, + 188, + 200, + 234, + 201, + 219, + 190, + 193, + 192, + 224, + 230, + 183, + 197, + 233, + 195, + 194, + 189, + 231, + 237, + 185, + 191, + 239, + 238, + 242, + 180, + 232, + 240, + 236, + 178, + 186, + 182, + 243, + 244, + 184, + 181 + ], + "y": [ + 69, + 37, + 71, + 108, + 68, + 90, + 10, + 68, + 74, + 73, + 88, + 104, + 92, + 51, + 83, + 101, + 38, + 84, + 65, + 54, + 22, + 73, + 59, + 57, + 25, + 29, + 43, + 30, + 99, + 34, + 10, + 6, + 57, + 6, + 47, + 66, + 5, + 22, + 12, + 41, + 17, + 1, + 21, + 9, + 18, + 17, + 6, + 19, + 6, + 1, + 7, + 2, + 3, + 2, + 1, + 7, + 1, + 5, + 2, + 2, + 1, + 2, + 1, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Foursquare Checkins Graph - Watts-Strogatz similarity" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "for graph in checkins_graphs:\n", "\n", @@ -1022,9 +13494,3065 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Brightkite Friendship Graph - Watts-Strogatz similarity\n", + "Number of nodes: 2324\n", + "Number of edges: 246344\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 212, + 218, + 210, + 222, + 219, + 204, + 215, + 207, + 206, + 231, + 195, + 214, + 220, + 208, + 213, + 196, + 209, + 236, + 237, + 205, + 202, + 216, + 228, + 225, + 189, + 203, + 197, + 200, + 221, + 198, + 224, + 217, + 211, + 201, + 227, + 232, + 235, + 229, + 199, + 191, + 230, + 234, + 193, + 223, + 233, + 250, + 194, + 226, + 187, + 190, + 188, + 183, + 242, + 239, + 192, + 240, + 238, + 180, + 185, + 248, + 186, + 179, + 245, + 244, + 243, + 182, + 184, + 181 + ], + "y": [ + 90, + 81, + 87, + 59, + 94, + 57, + 84, + 74, + 66, + 15, + 19, + 112, + 65, + 91, + 96, + 23, + 83, + 8, + 8, + 85, + 57, + 84, + 18, + 39, + 6, + 46, + 34, + 42, + 48, + 33, + 39, + 86, + 103, + 65, + 23, + 13, + 7, + 22, + 41, + 13, + 16, + 11, + 14, + 40, + 16, + 1, + 24, + 27, + 3, + 7, + 8, + 2, + 2, + 2, + 13, + 4, + 2, + 1, + 3, + 1, + 3, + 1, + 1, + 1, + 2, + 1, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Brightkite Friendship Graph - Watts-Strogatz similarity" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gowalla Friendship Graph - Watts-Strogatz similarity\n", + "Number of nodes: 2324\n", + "Number of edges: 246344\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 203, + 210, + 200, + 201, + 208, + 215, + 204, + 211, + 213, + 206, + 195, + 217, + 212, + 223, + 225, + 214, + 209, + 216, + 198, + 224, + 221, + 229, + 202, + 226, + 205, + 234, + 207, + 218, + 220, + 196, + 231, + 191, + 179, + 219, + 197, + 222, + 199, + 192, + 193, + 233, + 194, + 230, + 188, + 189, + 184, + 235, + 227, + 228, + 185, + 236, + 190, + 237, + 232, + 238, + 186, + 187, + 246, + 183, + 239, + 245, + 243, + 248, + 180 + ], + "y": [ + 51, + 93, + 55, + 55, + 89, + 82, + 76, + 82, + 112, + 71, + 22, + 81, + 90, + 57, + 38, + 79, + 83, + 92, + 31, + 63, + 62, + 21, + 56, + 27, + 64, + 16, + 82, + 71, + 58, + 32, + 18, + 10, + 1, + 81, + 48, + 59, + 37, + 10, + 11, + 4, + 21, + 20, + 2, + 5, + 2, + 7, + 21, + 26, + 2, + 8, + 9, + 3, + 11, + 3, + 3, + 2, + 1, + 2, + 2, + 1, + 1, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Gowalla Friendship Graph - Watts-Strogatz similarity" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Foursquare Friendship Graph - Watts-Strogatz similarity\n", + "Number of nodes: 2324\n", + "Number of edges: 246344\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "Degree Distribution", + "type": "bar", + "x": [ + 202, + 215, + 211, + 201, + 219, + 221, + 222, + 210, + 199, + 220, + 207, + 230, + 217, + 208, + 218, + 212, + 223, + 198, + 216, + 206, + 209, + 213, + 203, + 204, + 186, + 224, + 200, + 214, + 235, + 191, + 233, + 205, + 189, + 195, + 231, + 194, + 227, + 193, + 226, + 232, + 229, + 196, + 197, + 228, + 243, + 225, + 192, + 190, + 234, + 187, + 240, + 239, + 245, + 238, + 241, + 188, + 236, + 242, + 237, + 185 + ], + "y": [ + 61, + 90, + 89, + 48, + 67, + 49, + 68, + 81, + 45, + 67, + 86, + 21, + 81, + 65, + 59, + 100, + 47, + 35, + 89, + 81, + 105, + 94, + 63, + 75, + 4, + 53, + 49, + 97, + 11, + 5, + 14, + 75, + 5, + 24, + 19, + 19, + 25, + 16, + 29, + 7, + 20, + 30, + 35, + 26, + 1, + 37, + 12, + 8, + 7, + 2, + 3, + 4, + 2, + 4, + 1, + 4, + 5, + 3, + 1, + 1 + ] + } + ], + "layout": { + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Degree Distribution of Foursquare Friendship Graph - Watts-Strogatz similarity" + }, + "width": 800, + "xaxis": { + "title": { + "text": "Degree" + } + }, + "yaxis": { + "title": { + "text": "Number of Nodes" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "for graph in friendships_graph:\n", "\n", @@ -1172,8 +16700,30 @@ "\n", "The advantage of using an external script rather then a block in the notebook is the ease of parallelization. You can run more scripts in parallel for different datasets. This can easily be automated with a bash script. I won't report the code since it's note relevant to the topic of this project.\n", "\n", - "In the next section, we will see the results obtained in detail, trying to understand what they mean.\n", - "\n" + "In the next section, we will see the results obtained in detail, trying to understand what they mean. If you want to test it out on small-graphs, I have implemented a notebook version of this function. You can find it in the `utils` module.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph is not connected. Taking the largest connected component\n", + "Number of nodes in the sampled graph: 215\n", + "Number of edges in the sampled graph: 258\n", + "Omega-coefficient: -0.26792275252936604\n" + ] + } + ], + "source": [ + "# it takes about 40 seconds to run this block with this parameters\n", + "\n", + "omega = omega_sampled(G_gowalla_checkins, k = 0.93, niter = 6, nrand = 6)\n", + "print(\"Omega-coefficient: \", omega)" ] }, { @@ -1191,7 +16741,32 @@ "./omega_sampled_parallel.py graph --k --niter --nrand --n_processes --seed\n", "```\n", "\n", - "Where the only difference with the previous script is the `--n_processes` argument that specifies the number of processes to be used. I suggest to use the default option that uses all the available threads. If we use a number of `nrand` that is less then or equal to the number of threads, the time needed to compute the omega coefficient will be the same as choosing `nrand=1` with the previous script. \n" + "Where the only difference with the previous script is the `--n_processes` argument that specifies the number of processes to be used. I suggest to use the default option that uses all the available threads. If we use a number of `nrand` that is less then or equal to the number of threads, the time needed to compute the omega coefficient will be the same as choosing `nrand=1` with the previous script. \n", + "\n", + "If you want to test it out, I have created a notebook version of this function. You can find it in the `utils` module." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph is not connected. Taking the largest connected component\n", + "Number of nodes in the sampled graph: 210\n", + "Number of edges in the sampled graph: 267\n", + "Omega-coefficient: -0.8070891507081057\n" + ] + } + ], + "source": [ + "omega = omega_parallel(G_gowalla_checkins, k = 0.93, niter=6, nrand=6, seed=42)\n", + "print(\"Omega-coefficient: \", omega)\n", + "\n", + "# notice how this function is about ~nrand times faster than the previous one! Check at your cpu usage to see how that it's actually parallel" ] }, { @@ -1230,9 +16805,58 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Creating a random graph with the Erdos-Renyi model Brightkite Checkins Graph\n", + "Random graph created for Brightkite Checkins Graph \n", + "Starting computation of betweenness centrality...\n", + "\tNumber of nodes after removing 40.0% of nodes: 3896\n", + "\tNumber of edges after removing 40.0% of nodes: 105272\n", + "\tBetweenness centrality for Erdos-Renyi random graph: 0.00037288684169552324\n", + "\n", + "Creating a random graph with the Erdos-Renyi model Gowalla Checkins Graph\n", + "Random graph created for Gowalla Checkins Graph \n", + "Starting computation of betweenness centrality...\n", + "\tNumber of nodes after removing 40.0% of nodes: 1844\n", + "\tNumber of edges after removing 40.0% of nodes: 22579\n", + "\tBetweenness centrality for Erdos-Renyi random graph: 0.0009236769065906314\n", + "\n", + "Creating a random graph with the Erdos-Renyi model Foursquare Checkins Graph\n", + "Random graph created for Foursquare Checkins Graph \n", + "Starting computation of betweenness centrality...\n", + "\tNumber of nodes after removing 40.0% of nodes: 1395\n", + "\tNumber of edges after removing 40.0% of nodes: 88443\n", + "\tBetweenness centrality for Erdos-Renyi random graph: 0.0006525814334236733\n", + "\n", + "Creating a random graph with the Erdos-Renyi model Brightkite Friendship Graph\n", + "Random graph created for Brightkite Friendship Graph \n", + "Starting computation of betweenness centrality...\n", + "\tNumber of nodes after removing 40.0% of nodes: 3252\n", + "\tNumber of edges after removing 40.0% of nodes: 5248\n", + "\tBetweenness centrality for Erdos-Renyi random graph: 0.0016756493391306864\n", + "\n", + "Creating a random graph with the Erdos-Renyi model Gowalla Friendship Graph\n", + "Random graph created for Gowalla Friendship Graph \n", + "Starting computation of betweenness centrality...\n", + "\tNumber of nodes after removing 40.0% of nodes: 1377\n", + "\tNumber of edges after removing 40.0% of nodes: 1996\n", + "\tBetweenness centrality for Erdos-Renyi random graph: 0.0036930000721610385\n", + "\n", + "Creating a random graph with the Erdos-Renyi model Foursquare Friendship Graph\n", + "Random graph created for Foursquare Friendship Graph \n", + "Starting computation of betweenness centrality...\n", + "\tNumber of nodes after removing 40.0% of nodes: 839\n", + "\tNumber of edges after removing 40.0% of nodes: 1928\n", + "\tBetweenness centrality for Erdos-Renyi random graph: 0.004204855796250036\n", + "\n" + ] + } + ], "source": [ "# As said before, for a quick testing I suggest to use k=0.6 and at least k=0.4 for accurate results\n", "\n", @@ -1244,7 +16868,7 @@ "for graph in graphs_all:\n", " G = create_random_graphs(graph, model=model_name, save = False)\n", " print(\"Random graph created for \", graph.name, \"\\nStarting computation of betweenness centrality...\")\n", - " betweenness_centrality = np.mean(list(betweenness_centrality_parallel(G, 6, k = 0.4).values()))\n", + " betweenness_centrality = np.mean(list(betweenness_centrality_parallel(G, 8, k = 0.4).values()))\n", " print(\"\\tBetweenness centrality for Erdos-Renyi random graph: \", betweenness_centrality)\n", " random_graphs[graph.name] = betweenness_centrality\n", " print(\"\")" @@ -1252,9 +16876,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABcIAAAPdCAYAAACp3hugAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC/+UlEQVR4nOzdd5RV5bk/8O/QBlBAQWlKs4tYQRESBSwIamJL5EZDQI2KJYolMbZYYokx0cRYCIk1UcTEGoMINq5RVLBHje2ikAgWFLCCwP794eL8HAdwRgZHTz6ftc5annc/+93P3nP2yb1ft++pKIqiCAAAAAAAlKkG9d0AAAAAAACsTIJwAAAAAADKmiAcAAAAAICyJggHAAAAAKCsCcIBAAAAAChrgnAAAAAAAMqaIBwAAAAAgLImCAcAAAAAoKwJwgEAAAAAKGuCcAD4GrnqqqtSUVFR5bXmmmumf//+uf3227/wvJdeemmuuuqqumuUWpk3b17OPvvs9OrVKy1btkxlZWW6du2aAw88MI899thKPfZ1112X3/zmNytt/q5du2b48OGl96+88koqKiqqfN4efPDBnH766ZkzZ85K6+Pz/O53v8t6662XJk2apKKiYpm9LK/Xrl27Zvfdd1+5jdaR/v37p3///l9o39NPPz0VFRV129BSVFRU5PTTT1/px1lZvi6fhyX/u/LKK68st27cuHHL/HtUVFTkyCOPrPvmvoJqer347/pcAPD1IAgHgK+hK6+8MpMnT86DDz6Y0aNHp2HDhvnWt76Vv/3tb19oPkF4/Xn55Zez5ZZb5he/+EUGDBiQMWPGZMKECTnjjDPy+uuvp2fPnpk7d+5KO/7KDsI/q0OHDpk8eXJ222230tiDDz6YM844o96C8CeeeCJHHXVUBgwYkHvuuSeTJ09OixYtllpb373WlUsvvTSXXnrpF9r3hz/8YSZPnlzHHfFVN27cuJxxxhn13QYAwBfWqL4bAABqr0ePHunVq1fp/aBBg7L66qtnzJgx+da3vlWPnVEbixYtyl577ZW33norkydPTo8ePUrb+vXrl2HDhuWOO+5I48aN67HL/2/RokVZuHBhKisrv/AclZWV2XbbbeuwqxX3zDPPJEkOPvjgbLPNNvXczcr1wQcfpHnz5unevfsXnmPttdfO2muvXYdd1Z8l14Ovp6Io8tFHH6VZs2b13crXlnsAgP8mnggHgDLQtGnTNGnSpFpgumDBgpx11lnZaKONUllZmTXXXDMHHHBA3nzzzVJN165d88wzz2TSpEml5Va6du2aoijSrl27HHHEEaXaRYsWZfXVV0+DBg3y+uuvl8YvuOCCNGrUqMpTslOnTs23v/3ttG7dOk2bNs2WW26ZG264oVrvs2bNyqGHHpq11147TZo0Sbdu3XLGGWdk4cKFpZoly2n86le/ygUXXJBu3bpl1VVXTZ8+ffLQQw9VmW/48OFZddVV89JLL2XXXXfNqquumk6dOuW4447L/Pnza319kuSee+5J//7906ZNmzRr1iydO3fOPvvskw8++KBUc9lll2XzzTfPqquumhYtWmSjjTbKSSedtLw/W2655ZY8/fTTOfHEE6uE4J82ePDgKiHFiy++mP322y9t27ZNZWVlNt5441xyySVV9rnvvvtSUVGRMWPG5OSTT07Hjh3TsmXL7LTTTnn++edLdf3798/f//73vPrqq1WW2/n0Nf/lL3+Zs846K926dUtlZWXuvffefPTRRznuuOOyxRZbpFWrVmndunX69OmTW2+9dbnn++l5l/wXCKeffnp+/OMfJ0m6detW6uG+++7LQQcdlNatW1e5zkvssMMO2WSTTT73eFdccUU233zzNG3aNK1bt85ee+2V5557rso1+P73v58k6d27dyoqKqos5fJpy+v108aPH5+tttoqzZo1y0YbbZQrrrii2lw1+dwvy+LFi/PLX/6y9Llt27ZtfvCDH+Tf//53lbr+/funR48e+d///d/07ds3zZs3z4EHHlja9tmlUf7973/nO9/5Tlq0aJHVVlst+++/f6ZMmVJtKZulLY2yZBmQzzv3N998M4cffni6d++eVVddNW3bts0OO+yQ+++//3PPe1lq2veS74ann346AwcOTIsWLbLjjjsmSSZOnJg99tgja6+9dpo2bZr11lsvhx56aN56660qx1py7o8//nj23nvvtGzZMq1atcr3v//9at8bS9Tk87A0Z5xxRnr37p3WrVunZcuW2WqrrXL55ZenKIoqdTW99kny0EMP5Rvf+EaaNm2ajh075sQTT8zHH3/8ub0MHz689D3z6e+Kzy4P8qc//Skbb7xxmjdvns0333ypS3bV5DtsWZYstTFq1KhsvPHGqayszNVXX13v16u29+TkyZPTt2/fNGvWLF27ds2VV16ZJPn73/+erbbaKs2bN8+mm26a8ePH1+i6PPPMMxk4cGCaN2+eNddcM0cccUT+/ve/V/t+Wt53wtixYzNw4MB06NAhzZo1y8Ybb5yf/vSnef/996sca8l99Mwzz2THHXfMKquskjXXXDNHHnnkUr+rk5p9LgDgS1EAAF8bV155ZZGkeOihh4qPP/64WLBgQTFjxoziqKOOKho0aFCMHz++VLto0aJi0KBBxSqrrFKcccYZxcSJE4s//vGPxVprrVV07969+OCDD4qiKIrHHnusWGeddYott9yymDx5cjF58uTiscceK4qiKP7nf/6n2GCDDUpzPvTQQ0WSolmzZsW1115bGh88eHCxzTbblN7fc889RZMmTYrtttuuGDt2bDF+/Phi+PDhRZLiyiuvLNXNnDmz6NSpU9GlS5fi97//fXHXXXcVP//5z4vKyspi+PDhpbpp06YVSYquXbsWgwYNKm655ZbilltuKTbddNNi9dVXL+bMmVOqHTZsWNGkSZNi4403Ln71q18Vd911V/Gzn/2sqKioKM4444xaX59p06YVTZs2LXbeeefilltuKe67777i2muvLYYOHVq88847RVEUxZgxY4okxY9+9KNiwoQJxV133VWMGjWqOOqoo5b79zzkkEOKJMVzzz33uX/7oiiKZ555pmjVqlWx6aabFtdcc00xYcKE4rjjjisaNGhQnH766aW6e++9t3S99t9//+Lvf/97MWbMmKJz587F+uuvXyxcuLA03ze+8Y2iffv2pb/95MmTq1zztdZaqxgwYEDx17/+tZgwYUIxbdq0Ys6cOcXw4cOLP/3pT8U999xTjB8/vjj++OOLBg0aFFdffXWVnrt06VIMGzas2t9yyedgxowZxY9+9KMiSXHTTTeVepg7d27x5JNPFkmKP/zhD9WuQ5LikksuWe71Ouecc4okxfe+973i73//e3HNNdcU66yzTtGqVavihRdeKM11yimnlHqaPHly8dJLLy11vuX1uuRc11577aJ79+7FNddcU9x5553Fd7/73SJJMWnSpNI8Nf3cL8uSz82RRx5ZjB8/vhg1alSx5pprFp06dSrefPPNUl2/fv2K1q1bF506dSp+97vfFffee2+pj379+hX9+vUr1b733nvFeuutV7Ru3bq45JJLijvvvLM45phjim7dulW7b0877bTis/9vRE3P/V//+ldx2GGHFddff31x3333Fbfffntx0EEHFQ0aNCjuvffeKnMmKU477bTlXova9D1s2LCicePGRdeuXYtzzz23uPvuu4s777yzKIqiuOyyy4pzzz23uO2224pJkyYVV199dbH55psXG264YbFgwYJq596lS5fixz/+cXHnnXcWF1xwQbHKKqsUW265ZZXaml6TZRk+fHhx+eWXFxMnTiwmTpxY/PznPy+aNWtW5XusNsd55plniubNmxfdu3cvxowZU9x6663FLrvsUnTu3LlIUkybNm2Zvbz00kvFd77znSJJle+Kjz76qCiKovR9s8022xQ33HBDMW7cuKJ///5Fo0aNipdffrlKDzX5DluWJd9Jm222WXHdddcV99xzT/HPf/6z3q9Xbe7JNm3aFBtuuGFx+eWXF3feeWex++67F0mKM844o9h0002LMWPGFOPGjSu23XbborKysvjPf/6z3Gvy2muvFW3atCk6d+5cXHXVVcW4ceOKoUOHFl27di2SVLmvlved8POf/7y48MILi7///e/FfffdV4waNaro1q1bMWDAgCrHW/K/sZ07dy7OPvvsYsKECcXpp59eNGrUqNh9992r/b1q8rkAgC+LIBwAvkaWBOGffVVWVhaXXnppldol4eyNN95YZXzKlClFkir1m2yySZVQbIk//vGPRZJi+vTpRVEUxVlnnVVstNFGxbe//e3igAMOKIqiKBYsWFCsssoqxUknnVTab6ONNiq23HLL4uOPP64y3+6771506NChWLRoUVEURXHooYcWq666avHqq69WqfvVr35VJCmeeeaZoij+f3i66aablkLcoiiKRx55pEhSjBkzpjQ2bNiwIklxww03VJlz1113LTbccMNaX5+//vWvRZLiiSeeqHZ9ljjyyCOL1VZbbZnbl2XQoEFFklKY9Hl22WWXYu211y4Fr58+ftOmTYu33367KIr/H4TvuuuuVepuuOGGUpC1xG677VZ06dKl2rGWXPN11123Sri3NAsXLiw+/vjj4qCDDiq23HLLKts+LwgviqI4//zzlxnE9evXr9hiiy2qjB122GFFy5Yti3fffXeZPb3zzjtFs2bNql2D6dOnF5WVlcV+++1XGltyX02ZMmW55/l5vXbp0qVo2rRplc/zhx9+WLRu3bo49NBDS2M1/dwvzXPPPVckKQ4//PAq4w8//HCRpMp92K9fvyJJcffdd1eb57NB+CWXXFIkKe64444qdYceemiNg/CanPtnLfns7LjjjsVee+1VZVtNgvDa9L3ku+GKK65Y7pyLFy8uPv744+LVV18tkhS33npraduScz/mmGOq7HPttdcWSYo///nPpbEvek2WZtGiRcXHH39cnHnmmUWbNm2KxYsX1/o4Q4YMKZo1a1bMmjWrNLZw4cJio402+twgvCiK4ogjjqj2d18iSdGuXbti3rx5pbFZs2YVDRo0KM4999zSWE2/w5YlSdGqVavPrfsyr9cXuSenTp1aGps9e3bRsGHDolmzZlVC7yeeeKJIUlx00UXLPdcf//jHRUVFRbXvjV122WWpQfiyvhM+bck9MGnSpCJJ8eSTT5a2LbmPfvvb31bZ5+yzzy6SFP/4xz9KYzX9XADAl8XSKADwNXTNNddkypQpmTJlSu64444MGzYsRxxxRC6++OJSze23357VVlst3/rWt7Jw4cLSa4sttkj79u2rLeewNDvttFOS5K677kryyfIBO++8c3baaadMnDgxSTJ58uS8//77pdqXXnop//rXv7L//vsnSZVj77rrrpk5c2ZpeY7bb789AwYMSMeOHavUDR48OEkyadKkKv3stttuadiwYen9ZpttliR59dVXq9RVVFRUWyt9s802q1JX0+uzxRZbpEmTJjnkkENy9dVX5//+7/+qXadtttkmc+bMyfe+973ceuut1ZZTqAsfffRR7r777uy1115p3rx5tev60UcfVVsm5tvf/na1a5BUv17L8+1vf3upa5T/5S9/yTe+8Y2suuqqadSoURo3bpzLL7+8yrIjdeHoo4/OE088kQceeCBJMm/evPzpT3/KsGHDsuqqqy5zv8mTJ+fDDz+stsxJp06dssMOO+Tuu++u0z6X2GKLLdK5c+fS+6ZNm2aDDTao9tmrzef+0+69994kqXZe22yzTTbeeONq57X66qtnhx12+Ny+J02alBYtWmTQoEFVxr/3ve997r5L1OTck2TUqFHZaqut0rRp09Jn5+677/5Cn50v0vc+++xTbeyNN97IiBEj0qlTp1JPXbp0SZKl9rXk+22JfffdN40aNSr9fZao6TVZmnvuuSc77bRTWrVqlYYNG6Zx48b52c9+ltmzZ+eNN96o9XHuvffe7LjjjmnXrl1prGHDhhkyZMjn9lITAwYMqPIjs+3atUvbtm1LPXyR77Cl2WGHHbL66qtXG6+v61Xbe7JDhw7p2bNn6X3r1q3Ttm3bbLHFFunYsWNpfOONN07y+d/XkyZNSo8ePaqt+7+se2BZ3wn/93//l/322y/t27cvXb9+/folqdk9sN9++yVJtXvg8z4XAPBlEoQDwNfQxhtvnF69eqVXr14ZNGhQfv/732fgwIH5yU9+Ulqn+/XXX8+cOXNKa4d/+jVr1qwahbVdunTJuuuum7vuuisffPBBJk+eXArC//3vf+f555/PXXfdlWbNmqVv376l4ybJ8ccfX+24hx9+eJKUjv3666/nb3/7W7W6JWs/f7bHNm3aVHm/5EcbP/zwwyrjzZs3T9OmTavVfvTRR6X3Nb0+S86/bdu2OeKII7Luuutm3XXXzW9/+9vSXEOHDs0VV1yRV199Nfvss0/atm2b3r17l/5lwbIsCWKmTZu23LokmT17dhYuXJjf/e531frdddddV+h6LU+HDh2qjd10003Zd999s9Zaa+XPf/5zJk+enClTpuTAAw+sco3rwh577JGuXbuW1hC+6qqr8v7771dZu35pZs+evcz+O3bsWNpe1z57zZNPrvunr3ltP/efVtvzWlrdsub9dOC3xNLGlqUm537BBRfksMMOS+/evXPjjTfmoYceypQpUzJo0KBafS6/aN/NmzdPy5Ytq4wtXrw4AwcOzE033ZSf/OQnufvuu/PII4+UQtml9dW+ffsq7xs1apQ2bdpUu/41uSZL88gjj2TgwIFJkj/84Q954IEHMmXKlJx88slL7akmx5k9e3a1vpd2Ll/U5/XwRb7DlmZpn+n6vF61vSdbt25dra5JkybVxps0aZIkn/udWtt7YGl9vvfee9luu+3y8MMP56yzzsp9992XKVOm5KabbkpS/fot+bx/2pLrUlf3AACsDI3quwEAoG5sttlmufPOO/PCCy9km222yRprrJE2bdos88e2Pv2E1vLsuOOOufXWWzNp0qQsXrw4/fv3T4sWLdKxY8dMnDgxd911V7bbbrtSyLrGGmskSU488cTsvffeS51zww03LNVuttlmOfvss5da9+mn4+paba7Pdtttl+222y6LFi3K1KlT87vf/S4jR45Mu3bt8j//8z9JkgMOOCAHHHBA3n///fzv//5vTjvttOy+++554YUXSk+WftYuu+yS0aNH55ZbbslPf/rT5fa7+uqrp2HDhhk6dOgyQ+Bu3brV5NRr5bM/ipgkf/7zn9OtW7eMHTu2yvbP/hhpXWjQoEGOOOKInHTSSfn1r3+dSy+9NDvuuGPpM7QsS8KXmTNnVtv22muvlT6n9WFFPvefPq+11167yralndfS/n7LmveRRx6pNj5r1qwa7V9Tf/7zn9O/f/9cdtllVcbffffdLzRfbfte2vX45z//mSeffDJXXXVVhg0bVhp/6aWXlnncWbNmZa211iq9X7hwYWbPnr3U0O+LuP7669O4cePcfvvtVf6l3i233PKF52zTps1Sr0td/42Xpa6+w5b2N6zP61Xbe7KutWnTpsqPVy9Rm3vgnnvuyWuvvZb77ruv9BR4kio/gP1pS/u8LzleXd0DALAyCMIBoEw88cQTSZI111wzSbL77rvn+uuvz6JFi9K7d+/l7ru8p7N22mmnjB49Or/5zW+y7bbblgLiHXfcMTfffHOmTJmSc845p1S/4YYbZv3118+TTz5ZZXxpdt9994wbNy7rrrvuUv9T95WpNtdniYYNG6Z3797ZaKONcu211+axxx4rBeFLrLLKKhk8eHAWLFiQPffcM88888wyg/A99tgjm266ac4999zsvvvu6dGjR7WaO++8M9ttt12aN2+eAQMG5PHHH89mm21WelpwRX2RJ/MqKirSpEmTKoHKrFmzcuutt37hHpJlP6n+wx/+MKeffnr233//PP/88znvvPM+d84+ffqkWbNm+fOf/5zvfve7pfF///vfueeee/Kd73xnpfRaEyvyuV+ypMGf//znbL311qXxKVOm5Lnnnis9AVtb/fr1yw033JA77rijtERL8knAWJcqKipK13CJp556KpMnT06nTp1qPV9d9L3kc/zZvn7/+98vc59rr722yvIWN9xwQxYuXJj+/fvX+Lif11OjRo2qLAX14Ycf5k9/+tMXnnPAgAG57bbb8vrrr5eeFl60aFHGjh1bo/0//dlv1qxZrY+/sr7Dkvq9Xivrnqypfv365Ve/+lWeffbZKsujfBn3wFFHHVV6f9111yVJnd0DALAyCMIB4Gvon//8ZxYuXJjkk/8M+aabbsrEiROz1157lZ6o+5//+Z9ce+212XXXXXP00Udnm222SePGjfPvf/879957b/bYY4/stddeSZJNN900119/fcaOHZt11lknTZs2zaabbprkk/8nv6KiIhMmTMgZZ5xR6mGnnXYqPT25ZH3wJX7/+99n8ODB2WWXXTJ8+PCstdZaefvtt/Pcc8/lsccey1/+8pckyZlnnpmJEyemb9++Oeqoo7Lhhhvmo48+yiuvvJJx48Zl1KhR1Z6wqys1vT6jRo3KPffck9122y2dO3fORx99lCuuuKLKeR988MFp1qxZvvGNb6RDhw6ZNWtWzj333LRq1apKMPJZDRs2zM0335yBAwemT58+OeywwzJgwICsssoqefXVV/PXv/41f/vb3/LOO+8kSX7729/mm9/8Zrbbbrscdthh6dq1a95999289NJL+dvf/pZ77rmn1tdh0003zU033ZTLLrssPXv2TIMGDdKrV6/l7rP77rvnpptuyuGHH57vfOc7mTFjRn7+85+nQ4cOefHFF79QD0vOb9iwYWncuHE23HDD0r90WW211fKDH/wgl112Wbp06VJt/felWW211XLqqafmpJNOyg9+8IN873vfy+zZs3PGGWekadOmOe2002rdZ016rYkV+dxvuOGGOeSQQ/K73/0uDRo0yODBg/PKK6/k1FNPTadOnXLMMcd8ofMaNmxYLrzwwnz/+9/PWWedlfXWWy933HFH7rzzziSfPJlfF3bffff8/Oc/z2mnnZZ+/frl+eefz5lnnplu3bqVvtO+7L432mijrLvuuvnpT3+aoijSunXr/O1vf1vu0kY33XRTGjVqlJ133jnPPPNMTj311Gy++ebZd999a30OS7PbbrvlggsuyH777ZdDDjkks2fPzq9+9atqQWVtnHLKKbntttuyww475Gc/+1maN2+eSy65JO+//36N9l/y2T/vvPMyePDgNGzYsNaB9sr4Dkvq93qtrHuypkaOHJkrrrgigwcPzplnnpl27drluuuuy7/+9a8kNbsH+vbtm9VXXz0jRozIaaedlsaNG+faa6/Nk08+udT6Jk2a5Ne//nXee++9bL311nnwwQdz1llnZfDgwfnmN79Zp+cHAHWqvn+tEwCouSuvvLJIUuXVqlWrYosttiguuOCC4qOPPqpS//HHHxe/+tWvis0337xo2rRpseqqqxYbbbRRceihhxYvvvhiqe6VV14pBg4cWLRo0aJIUnTp0qXKPFtuuWWRpHjggQdKY//5z3+KJEWbNm2KxYsXV+v1ySefLPbdd9+ibdu2RePGjYv27dsXO+ywQzFq1KgqdW+++WZx1FFHFd26dSsaN25ctG7duujZs2dx8sknF++9915RFEUxbdq0Iklx/vnnVztOkuK0004rvR82bFixyiqrVKs77bTTis/+nz41uT6TJ08u9tprr6JLly5FZWVl0aZNm6Jfv37FbbfdVprn6quvLgYMGFC0a9euaNKkSdGxY8di3333LZ566qlqfSzNnDlzip///OfFVlttVay66qpF48aNi86dOxff//73q1zzJdfiwAMPLNZaa62icePGxZprrln07du3OOuss0o19957b5Gk+Mtf/lJt3yTFlVdeWRp7++23i+985zvFaqutVlRUVJSu0fKueVEUxS9+8Yuia9euRWVlZbHxxhsXf/jDH5Z6jbt06VIMGzZsuT0URVGceOKJRceOHYsGDRoUSYp77723yvb77ruvSFL84he/WN6lrOaPf/xjsdlmmxVNmjQpWrVqVeyxxx7FM888U6VmyX01ZcqUGs25rF67dOlS7LbbbtXq+/XrV/Tr16/KWE0+98uyaNGi4rzzzis22GCDonHjxsUaa6xRfP/73y9mzJhR7bibbLLJUudYWk/Tp08v9t5772LVVVctWrRoUeyzzz7FuHHjiiTFrbfeWqpb1t+5Juc+f/784vjjjy/WWmutomnTpsVWW21V3HLLLcWwYcOqfe989t5elpr2vazvhqIoimeffbbYeeedixYtWhSrr7568d3vfreYPn16tR6WnPujjz5afOtb3yod83vf+17x+uuvf6FrsixXXHFFseGGGxaVlZXFOuusU5x77rnF5ZdfXiQppk2b9oWO88ADDxTbbrttUVlZWbRv37748Y9/XIwePbranEszf/784oc//GGx5pprlr4rluyTpDjiiCOq7fPZ+78oavYdtizLOk5R1O/1WtF7clk9Le98P+2f//xnsdNOOxVNmzYtWrduXRx00EHF1VdfXSQpnnzyyc89flEUxYMPPlj06dOnaN68ebHmmmsWP/zhD4vHHnus2vf1kvvoqaeeKvr37180a9asaN26dXHYYYdV++6qzecCAL4MFUVRFCs1aQcAgBV03HHH5bLLLsuMGTOsQfslOuecc3LKKadk+vTpK+2/zlgZVlbfp59+es4444y8+eab9brOPHyeQw45JGPGjMns2bPrdBma4cOH569//Wvee++9OpsTAL4slkYBAOAr66GHHsoLL7yQSy+9NIceeqgQfCW6+OKLk3yyVMjHH3+ce+65JxdddFG+//3vf6VD8K9r31BXzjzzzHTs2DHrrLNO3nvvvdx+++354x//mFNOOaVOQ3AA+LoThAMA8JXVp0+fNG/ePLvvvnvOOuus+m6nrDVv3jwXXnhhXnnllcyfPz+dO3fOCSeckFNOOaW+W1uur2vfUFcaN26c888/P//+97+zcOHCrL/++rngggty9NFH13drAPCVYmkUAAAAAADKWt38/DsAAAAAAHxFCcIBAAAAAChr1ghfiRYvXpzXXnstLVq0SEVFRX23AwAAAABQVoqiyLvvvpuOHTumQYNlP/ctCF+JXnvttXTq1Km+2wAAAAAAKGszZszI2muvvcztgvCVqEWLFkk++SO0bNmynrsBAAAAACgv8+bNS6dOnUpZ7LIIwleiJcuhtGzZUhAOAAAAALCSfN7S1H4sEwAAAACAsiYIBwAAAACgrAnCAQAAAAAoa9YI/wpYtGhRPv744/pugzLUuHHjNGzYsL7bAAAAAIB6JQivR0VRZNasWZkzZ059t0IZW2211dK+ffvP/cEAAAAAAChXgvB6tCQEb9u2bZo3by6opE4VRZEPPvggb7zxRpKkQ4cO9dwRAAAAANQPQXg9WbRoUSkEb9OmTX23Q5lq1qxZkuSNN95I27ZtLZMCAAAAwH8lP5ZZT5asCd68efN67oRyt+QzZh16AAAAAP5bCcLrmeVQWNl8xgAAAAD4bycIBwAAAACgrAnCAQAAAAAoa34s8yuoV68v71hTp355x0qSV155Jd26dcvjjz+eLbbYokb7XHXVVRk5cmTmzJlTr33Ul65du2bkyJEZOXJkfbcCAAAAAF9Lngin1mbMmJGDDjooHTt2TJMmTdKlS5ccffTRmT179ufu26lTp8ycOTM9evSo8fGGDBmSF154YUVa/sJeeumlHHjggencuXMqKyuz1lprZccdd8y1116bhQsX1ktPAAAAAEDteCKcWvm///u/9OnTJxtssEHGjBmTbt265ZlnnsmPf/zj3HHHHXnooYfSunXrpe67YMGCNGnSJO3bt6/VMZs1a5ZmzZrVRfu18sgjj2SnnXbKJptskksuuSQbbbRR3nvvvTz77LMZNWpUevTokc0333yp+3788cdp3Ljxl9wxAAAAALA0nginVo444og0adIkEyZMSL9+/dK5c+cMHjw4d911V/7zn//k5JNPLtV27do1Z511VoYPH55WrVrl4IMPziuvvJKKioo88cQTpbrbbrst66+/fpo1a5YBAwbk6quvTkVFRWkplKuuuiqrrbZaqf7000/PFltskT/96U/p2rVrWrVqlf/5n//Ju+++W6oZP358vvnNb2a11VZLmzZtsvvuu+fll1+u8XkWRZHhw4dngw02yAMPPJBvfetbWX/99bPllltm//33z/3335/NNtssSUrndMMNN6R///5p2rRp/vznP2f27Nn53ve+l7XXXjvNmzfPpptumjFjxlQ5Tv/+/XPkkUfmyCOPLPV6yimnpCiKKnUffPBBDjzwwLRo0SKdO3fO6NGja3wuAAAAAPDfThBOjb399tu58847c/jhh1d7Qrt9+/bZf//9M3bs2Coh7vnnn58ePXrk0UcfzamnnlptzldeeSXf+c53sueee+aJJ57IoYceWiVMX5aXX345t9xyS26//fbcfvvtmTRpUn7xi1+Utr///vs59thjM2XKlNx9991p0KBB9tprryxevLhG5/rEE0/kueeey/HHH58GDZZ+m1RUVFR5f8IJJ+Soo47Kc889l1122SUfffRRevbsmdtvvz3//Oc/c8ghh2To0KF5+OGHq+x39dVXp1GjRnn44Ydz0UUX5cILL8wf//jHKjW//vWv06tXrzz++OM5/PDDc9hhh+Vf//pXjc4FAAAAAP7bWRqFGnvxxRdTFEU23njjpW7feOON88477+TNN99M27ZtkyQ77LBDjj/++FLNK6+8UmWfUaNGZcMNN8z555+fJNlwww3zz3/+M2efffZye1m8eHGuuuqqtGjRIkkydOjQ3H333aX99tlnnyr1l19+edq2bZtnn322RuuTL1mTfMMNNyyNvfHGG1lnnXVK73/5y1/m8MMPL70fOXJk9t577yrzfPrcf/SjH2X8+PH5y1/+kt69e5fGO3XqlAsvvDAVFRXZcMMN8/TTT+fCCy/MwQcfXKrZddddS8c64YQTcuGFF+a+++7LRhtt9LnnAgAAAAD/7TwRTp1Z8iT4p5+U7tWr13L3ef7557P11ltXGdtmm20+91hdu3YtheBJ0qFDh7zxxhul9y+//HL222+/rLPOOmnZsmW6deuWJJk+ffrnn8infPpc2rRpkyeeeCJPPPFEVltttSxYsKBK7WfPddGiRTn77LOz2WabpU2bNll11VUzYcKEaj1su+22VY7Tp0+fvPjii1m0aFFpbMkyLEt6at++fZXzBQAAAACWTRBOja233nqpqKjIs88+u9Tt//rXv7L66qtnjTXWKI2tssoqy52zKIpqS4x8dn3spfnsD1FWVFRUWfbkW9/6VmbPnp0//OEPefjhh0vLkXw2vF6W9ddfP0mqLD/SsGHDrLfeellvvfXSqFH1/5jis+f661//OhdeeGF+8pOf5J577skTTzyRXXbZpcY9fNrnnS8AAAAAsGyCcGqsTZs22XnnnXPppZfmww8/rLJt1qxZufbaazNkyJBqwfbybLTRRpkyZUqVsalTp65Qn7Nnz85zzz2XU045JTvuuGNpyZba2HLLLbPRRhvlV7/61RcOnO+///7sscce+f73v5/NN98866yzTl588cVqdQ899FC19+uvv34aNmz4hY4LAAAAAFQlCKdWLr744syfPz+77LJL/vd//zczZszI+PHjs/POO2ettdb63LW9P+vQQw/Nv/71r5xwwgl54YUXcsMNN+Sqq65KUv3HKGtq9dVXT5s2bTJ69Oi89NJLueeee3LsscfWao6KiopceeWVef755/ONb3wjt912W1588cU8++yzGTVqVN58883PDarXW2+9TJw4MQ8++GCee+65HHrooZk1a1a1uhkzZuTYY4/N888/nzFjxuR3v/tdjj766Fr1CwAAAAAsmx/L/ApawQeiV6r1118/U6dOzemnn54hQ4Zk9uzZad++ffbcc8+cdtppad26da3m69atW/7617/muOOOy29/+9v06dMnJ598cg477LBUVlZ+oR4bNGiQ66+/PkcddVR69OiRDTfcMBdddFH69+9fq3m23XbbPProoznnnHNyxBFHZNasWVlllVWy+eab58ILL8yBBx643P1PPfXUTJs2LbvsskuaN2+eQw45JHvuuWfmzp1bpe4HP/hBPvzww2yzzTZp2LBhfvSjH+WQQw6p7WkDAAAAAMtQUdRkQWa+kHnz5qVVq1aZO3duWrZsWWXbRx99lGnTpqVbt25p2rRpPXX41XT22Wdn1KhRmTFjRn23stL1798/W2yxRX7zm9+stGP4rAEAAABQrpaXwX6aJ8Kpd5deemm23nrrtGnTJg888EDOP//8HHnkkfXdFgAAAABQJgTh1LsXX3wxZ511Vt5+++107tw5xx13XE488cT6bgsAAAAAKBOWRlmJLI3CV4HPGgAAAADlqqZLozT4EnsCAAAAAIAvnSAcAAAAAICyJggHAAAAAKCsCcIBAAAAAChrgnAAAAAAAMqaIBwAAAAAgLLWqL4boLpeo3t9aceaesjUL+1YdaFr164ZOXJkRo4cWd+t1Ivhw4dnzpw5ueWWW+q7FQAAAAD42vBEOLUyfPjwVFRUpKKiIo0aNUrnzp1z2GGH5Z133qnv1la6efPm5dRTT80mm2ySZs2apU2bNtl6663zy1/+8r/i/AEAAADg68oT4dTaoEGDcuWVV2bhwoV59tlnc+CBB2bOnDkZM2ZMfbe20rz99tv55je/mXnz5uXnP/95evbsmSZNmuSll17Kddddl+uuuy5HHHHEUvddsGBBmjRp8iV3DAAAAAAs4Ylwaq2ysjLt27fP2muvnYEDB2bIkCGZMGFCafuiRYty0EEHpVu3bmnWrFk23HDD/Pa3v60yx/Dhw7PnnnvmV7/6VTp06JA2bdrkiCOOyMcff1yqeeONN/Ktb30rzZo1S7du3XLttddW62X69OnZY489suqqq6Zly5bZd9998/rrr5e2n3766dliiy1yxRVXpHPnzll11VVz2GGHZdGiRfnlL3+Z9u3bp23btjn77LOXe84nnXRSpk+fnocffjgHHHBANttss2y00UbZfffdc9111+Xwww8v1Xbt2jVnnXVWhg8fnlatWuXggw9OkpxwwgnZYIMN0rx586yzzjo59dRTq5zvkl5///vfp1OnTmnevHm++93vZs6cOdX6Wd51AwAAAACq8kQ4K+T//u//Mn78+DRu3Lg0tnjx4qy99tq54YYbssYaa+TBBx/MIYcckg4dOmTfffct1d17773p0KFD7r333rz00ksZMmRItthii1JwPHz48MyYMSP33HNPmjRpkqOOOipvvPFGaf+iKLLnnntmlVVWyaRJk7Jw4cIcfvjhGTJkSO67775S3csvv5w77rgj48ePz8svv5zvfOc7mTZtWjbYYINMmjQpDz74YA488MDsuOOO2Xbbbaud4+LFizN27Nh8//vfz1prrbXU61BRUVHl/fnnn59TTz01p5xySmmsRYsWueqqq9KxY8c8/fTTOfjgg9OiRYv85Cc/KdW89NJLueGGG/K3v/0t8+bNy0EHHZQjjjiiyr8E+LzrBgAAAABUJQin1m6//fasuuqqWbRoUT766KMkyQUXXFDa3rhx45xxxhml9926dcuDDz6YG264oUoQvvrqq+fiiy9Ow4YNs9FGG2W33XbL3XffnYMPPjgvvPBC7rjjjjz00EPp3bt3kuTyyy/PxhtvXNr/rrvuylNPPZVp06alU6dOSZI//elP2WSTTTJlypRsvfXWST4Jsq+44oq0aNEi3bt3z4ABA/L8889n3LhxadCgQTbccMOcd955ue+++5YahL/55puZM2dONtxwwyrjPXv2zPPPP58k+da3vlVlaZgddtghxx9/fJX6T4fiXbt2zXHHHZexY8dWCcI/+uijXH311Vl77bWTJL/73e+y22675de//nXat2//udcNAAAAAKhOEE6tDRgwIJdddlk++OCD/PGPf8wLL7yQH/3oR1VqRo0alT/+8Y959dVX8+GHH2bBggXZYostqtRssskmadiwYel9hw4d8vTTTydJnnvuuTRq1Ci9evUqbd9oo42y2mqrld4/99xz6dSpUykET5Lu3btntdVWy3PPPVcKwrt27ZoWLVqUatq1a5eGDRumQYMGVcY+/bT50nz2qe+bb745CxYsyAknnJAPP/ywyrZP973EX//61/zmN7/JSy+9lPfeey8LFy5My5Ytq9R07ty5FIInSZ8+fbJ48eI8//zzpSB8edcNAAAAAKjOGuHU2iqrrJL11lsvm222WS666KLMnz+/yhPgN9xwQ4455pgceOCBmTBhQp544okccMABWbBgQZV5Pr2cSvJJ0Lx48eIknyx7smRsWYqiWOr2z44v7TjLO/ZnrbnmmllttdXyr3/9q8p4586ds95661UJ2ZdYZZVVqrx/6KGH8j//8z8ZPHhwbr/99jz++OM5+eSTq12Tz1pyHp93PsvqHQAAAADwRDh14LTTTsvgwYNz2GGHpWPHjrn//vvTt2/fKj8g+fLLL9dqzo033jgLFy7M1KlTs8022yRJnn/++So/HNm9e/dMnz49M2bMKD0V/uyzz2bu3LlVllBZUQ0aNMi+++6bP//5zzn11FOXuU748jzwwAPp0qVLTj755NLYq6++Wq1u+vTpee2119KxY8ckyeTJk9OgQYNssMEGX/wEAAAAAL5meo2u/l/bs3xTD5la3y18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d955mTVr1sroDwAAAAAAVkitg/CGDRvm29/+dm666abMmDEjhxxySK699tp07tw53/72t3Prrbdm8eLFK6NXAAAAAACotRX6scy2bdvmG9/4Rvr06ZMGDRrk6aefzvDhw7Puuuvmvvvuq6MWAQAAAADgi/tCQfjrr7+eX/3qV9lkk03Sv3//zJs3L7fffnumTZuW1157LXvvvXeGDRtW170CAAAAAECtNartDt/61rdy5513ZoMNNsjBBx+cH/zgB2ndunVpe7NmzXLcccflwgsvrNNGAQAAAADgi6h1EN62bdtMmjQpffr0WWZNhw4dMm3atBVqDAAAAAAA6kKtl0bp169fttpqq2rjCxYsyDXXXJMkqaioSJcuXVa8OwAAAAAAWEG1DsIPOOCAzJ07t9r4u+++mwMOOKBOmgIAAAAAgLpS6yC8KIpUVFRUG//3v/+dVq1a1UlTAAAAAABQV2q8RviWW26ZioqKVFRUZMcdd0yjRv9/10WLFmXatGkZNGjQSmkSAAAAAAC+qBoH4XvuuWeS5Iknnsguu+ySVVddtbStSZMm6dq1a/bZZ586bxAAAAAAAFZEjYPw0047LUnStWvXDBkyJE2bNl1pTQEAAAAAQF2pcRC+xLBhw1ZGHwAAAAAAsFLUKAhv3bp1XnjhhayxxhpZffXVl/pjmUu8/fbbddYcAAAAAACsqBoF4RdeeGFatGhR+uflBeEAAAAAAPBV0qAmRcOGDUtlZWWSZPjw4Rk2bNgyX7V16aWXplu3bmnatGl69uyZ+++/f7n1kyZNSs+ePdO0adOss846GTVqVLWaG2+8Md27d09lZWW6d++em2++ucr2c889N1tvvXVatGiRtm3bZs8998zzzz9fpWb48OGpqKio8tp2221rfX4AAAAAANSvGgXh8+bNq/GrNsaOHZuRI0fm5JNPzuOPP57tttsugwcPzvTp05daP23atOy6667Zbrvt8vjjj+ekk07KUUcdlRtvvLFUM3ny5AwZMiRDhw7Nk08+maFDh2bffffNww8/XKqZNGlSjjjiiDz00EOZOHFiFi5cmIEDB+b999+vcrxBgwZl5syZpde4ceNqdX4AAAAAANS/iqIois8ratCgwecuh1IURSoqKrJo0aIaH7x3797Zaqutctlll5XGNt544+y5554599xzq9WfcMIJue222/Lcc8+VxkaMGJEnn3wykydPTpIMGTIk8+bNyx133FGqGTRoUFZfffWMGTNmqX28+eabadu2bSZNmpTtt98+ySdPhM+ZMye33HJLjc9n/vz5mT9/fun9vHnz0qlTp8ydOzctW7as8TwAAADAV1Ov0b3qu4WvnamHTK3vFvgacq/V3n/rvTZv3ry0atXqczPYGq0Rfu+999ZZY0ssWLAgjz76aH76059WGR84cGAefPDBpe4zefLkDBw4sMrYLrvskssvvzwff/xxGjdunMmTJ+eYY46pVvOb3/xmmb3MnTs3ySc/Cvpp9913X9q2bZvVVlst/fr1y9lnn522bdsuc55zzz03Z5xxxjK3AwAAAADw5atREN6vX786P/Bbb72VRYsWpV27dlXG27Vrl1mzZi11n1mzZi21fuHChXnrrbfSoUOHZdYsa86iKHLsscfmm9/8Znr06FEaHzx4cL773e+mS5cumTZtWk499dTssMMOefTRR0vrpX/WiSeemGOPPbb0fskT4QAAAAAA1J8aBeFL88EHH2T69OlZsGBBlfHNNtusVvN8dsmVJUus1Kb+s+O1mfPII4/MU089lX/84x9VxocMGVL65x49eqRXr17p0qVL/v73v2fvvfde6lyVlZXLDMkBAAAAAKgftQ7C33zzzRxwwAFV1uD+tJquEb7GGmukYcOG1Z7UfuONN6o90b1E+/btl1rfqFGjtGnTZrk1S5vzRz/6UW677bb87//+b9Zee+3l9tuhQ4d06dIlL7744ueeGwAAAAAAXx0NarvDyJEj88477+Shhx5Ks2bNMn78+Fx99dVZf/31c9ttt9V4niZNmqRnz56ZOHFilfGJEyemb9++S92nT58+1eonTJiQXr16pXHjxsut+fScRVHkyCOPzE033ZR77rkn3bp1+9x+Z8+enRkzZqRDhw41Oj8AAAAAAL4aav1E+D333JNbb701W2+9dRo0aJAuXbpk5513TsuWLXPuuedmt912q/Fcxx57bIYOHZpevXqlT58+GT16dKZPn54RI0Yk+WTN7f/85z+55pprkiQjRozIxRdfnGOPPTYHH3xwJk+enMsvvzxjxowpzXn00Udn++23z3nnnZc99tgjt956a+66664qS58cccQRue6663LrrbemRYsWpSfIW7VqlWbNmuW9997L6aefnn322ScdOnTIK6+8kpNOOilrrLFG9tprr9peMgAAAAAA6lGtg/D3338/bdu2TZK0bt06b775ZjbYYINsuummeeyxx2o115AhQzJ79uyceeaZmTlzZnr06JFx48alS5cuSZKZM2dm+vTppfpu3bpl3LhxOeaYY3LJJZekY8eOueiii7LPPvuUavr27Zvrr78+p5xySk499dSsu+66GTt2bHr37l2queyyy5Ik/fv3r9LPlVdemeHDh6dhw4Z5+umnc80112TOnDnp0KFDBgwYkLFjx6ZFixa1OkcAAAAAAOpXRbHk1yZraOutt85ZZ52VXXbZJXvuuWfpSfCLLroof/3rX/Pyyy+vrF6/dubNm5dWrVpl7ty5admyZX23AwAAAKygXqN71XcLXztTD5la3y3wNeReq73/1nutphlsrZ8IHzlyZGbOnJkkOe2007LLLrvk2muvTZMmTXLVVVd94YYBAAAAAGBlqHUQvv/++5f+ecstt8wrr7ySf/3rX+ncuXPWWGONOm0OAAAAAABWVIPaFH/88cdZZ5118uyzz5bGmjdvnq222koIDgAAAADAV1KtgvDGjRtn/vz5qaioWFn9AAAAAABAnapVEJ4kP/rRj3Leeedl4cKFK6MfAAAAAACoU7VeI/zhhx/O3XffnQkTJmTTTTfNKqusUmX7TTfdVGfNAQAAAADAiqp1EL7aaqtln332WRm9AAAAAABAnat1EH7llVeujD4AAAAAAGClqPUa4TvssEPmzJlTbXzevHnZYYcd6qInAAAAAACoM7UOwu+7774sWLCg2vhHH32U+++/v06aAgAAAACAulLjpVGeeuqp0j8/++yzmTVrVun9okWLMn78+Ky11lp12x0AAAAAAKygGgfhW2yxRSoqKlJRUbHUJVCaNWuW3/3ud3XaHAAAAAAArKgaB+HTpk1LURRZZ5118sgjj2TNNdcsbWvSpEnatm2bhg0brpQmAQAAAADgi6pxEN6lS5ckyeLFi1daMwAAAAAAUNdqHIR/2gsvvJD77rsvb7zxRrVg/Gc/+1mdNAYAAAAAAHWh1kH4H/7whxx22GFZY4010r59+1RUVJS2VVRUCMIBAAAAAPhKqXUQftZZZ+Xss8/OCSecsDL6AQAAAACAOtWgtju88847+e53v7syegEAAAAAgDpX6yD8u9/9biZMmLAyegEAAAAAgDpX66VR1ltvvZx66ql56KGHsummm6Zx48ZVth911FF11hwAAAAAAKyoWgfho0ePzqqrrppJkyZl0qRJVbZVVFQIwgEAAAAA+EqpdRA+bdq0ldEHAAAAAACsFLVeI3yJBQsW5Pnnn8/ChQvrsh8AAAAAAKhTtQ7CP/jggxx00EFp3rx5Ntlkk0yfPj3JJ2uD/+IXv6jzBgEAAAAAYEXUOgg/8cQT8+STT+a+++5L06ZNS+M77bRTxo4dW6fNAQAAAADAiqr1GuG33HJLxo4dm2233TYVFRWl8e7du+fll1+u0+YAAAAAAGBF1fqJ8DfffDNt27atNv7+++9XCcYBAAAAAOCroNZB+NZbb52///3vpfdLwu8//OEP6dOnT911BgAAAAAAdaDWS6Oce+65GTRoUJ599tksXLgwv/3tb/PMM89k8uTJmTRp0sroEQAAAAAAvrBaPxHet2/fPPDAA/nggw+y7rrrZsKECWnXrl0mT56cnj17roweAQAAAADgC6v1E+FJsummm+bqq6+u614AAAAAAKDO1fiJ8Ndeey3HH3985s2bV23b3Llz8+Mf/zivv/56nTYHAAAAAAArqsZB+AUXXJB58+alZcuW1ba1atUq7777bi644II6bQ4AAAAAAFZUjYPw8ePH5wc/+MEyt//gBz/I7bffXidNAQAAAABAXalxED5t2rR07tx5mdvXXnvtvPLKK3XREwAAAAAA1JkaB+HNmjVbbtD9yiuvpFmzZnXREwAAAAAA1JkaB+G9e/fOn/70p2Vuv+aaa7LNNtvUSVMAAAAAAFBXGtW08Pjjj8/OO++cVq1a5cc//nHatWuXJHn99dfzy1/+MldddVUmTJiw0hoFAAAAAIAvosZB+IABA3LJJZfk6KOPzoUXXpiWLVumoqIic+fOTePGjfO73/0uO+yww8rsFQAAAAAAaq3GQXiSHHroodl9991zww035KWXXkpRFNlggw3yne98J2uvvfbK6hEAAAAAAL6wWgXhSbLWWmvlmGOOWRm9AAAAAABAnavxj2UCAAAAAMDXkSAcAAAAAICyJggHAAAAAKCsCcIBAAAAAChrtQ7CZ8yYkX//+9+l94888khGjhyZ0aNH12ljAAAAAABQF2odhO+333659957kySzZs3KzjvvnEceeSQnnXRSzjzzzDpvEAAAAAAAVkStg/B//vOf2WabbZIkN9xwQ3r06JEHH3ww1113Xa666qq67g8AAAAAAFZIrYPwjz/+OJWVlUmSu+66K9/+9reTJBtttFFmzpxZt90BAAAAAMAKqnUQvskmm2TUqFG5//77M3HixAwaNChJ8tprr6VNmzZ13iAAAAAAAKyIWgfh5513Xn7/+9+nf//++d73vpfNN988SXLbbbeVlkwBAAAAAICvika13aF///556623Mm/evKy++uql8UMOOSTNmzev0+YAAAAAAGBF1fqJ8A8//DDz588vheCvvvpqfvOb3+T5559P27Zt67xBAAAAAABYEbUOwvfYY49cc801SZI5c+akd+/e+fWvf50999wzl112WZ03CAAAAAAAK6LWQfhjjz2W7bbbLkny17/+Ne3atcurr76aa665JhdddFGdNwgAAAAAACui1kH4Bx98kBYtWiRJJkyYkL333jsNGjTItttum1dffbXOGwQAAAAAgBVR6yB8vfXWyy233JIZM2bkzjvvzMCBA5Mkb7zxRlq2bFnnDQIAAAAAwIqodRD+s5/9LMcff3y6du2abbbZJn369EnyydPhW265ZZ03CAAAAAAAK6JRbXf4zne+k29+85uZOXNmNt9889L4jjvumL322qtOmwMAAAAAgBVV6yfCk6R9+/Zp0aJFJk6cmA8//DBJsvXWW2ejjTaq0+YAAAAAAGBF1ToInz17dnbcccdssMEG2XXXXTNz5swkyQ9/+MMcd9xxdd4gAAAAAACsiFoH4cccc0waN26c6dOnp3nz5qXxIUOGZPz48XXaHAAAAAAArKharxE+YcKE3HnnnVl77bWrjK+//vp59dVX66wxAAAAAACoC7V+Ivz999+v8iT4Em+99VYqKyvrpCkAAAAAAKgrtQ7Ct99++1xzzTWl9xUVFVm8eHHOP//8DBgwoE6bAwAAAACAFVXrpVHOP//89O/fP1OnTs2CBQvyk5/8JM8880zefvvtPPDAAyujRwAAAAAA+MJq/UR49+7d89RTT2WbbbbJzjvvnPfffz977713Hn/88ay77roro0cAAAAAAPjCav1EeJK0b98+Z5xxRl33AgAAAAAAde4LBeFz5szJI488kjfeeCOLFy+usu0HP/hBnTQGAAAAAAB1odZB+N/+9rfsv//+ef/999OiRYtUVFSUtlVUVAjCAQAAAAD4Sqn1GuHHHXdcDjzwwLz77ruZM2dO3nnnndLr7bffXhk9AgAAAADAF1brIPw///lPjjrqqDRv3nxl9AMAAAAAAHWq1kH4LrvskqlTp66MXgAAAAAAoM7Veo3w3XbbLT/+8Y/z7LPPZtNNN03jxo2rbP/2t79dZ80BAAAAAMCKqnUQfvDBBydJzjzzzGrbKioqsmjRohXvCgAAAAAA6kitg/DFixevjD4AAAAAAGClqPUa4QAAAAAA8HVS6yfCk+Tuu+/O3XffnTfeeKPaE+JXXHFFnTQGAAAAAAB1odZB+BlnnJEzzzwzvXr1SocOHVJRUbEy+gIAAAAAgDpR6yB81KhRueqqqzJ06NCV0Q8AAAAAANSpWq8RvmDBgvTt23dl9AIAAAAAAHWu1kH4D3/4w1x33XUroxcAAAAAAKhztV4a5aOPPsro0aNz1113ZbPNNkvjxo2rbL/gggvqrDkAAAAAAFhRtQ7Cn3rqqWyxxRZJkn/+859VtvnhTAAAAAAAvmpqHYTfe++9K6MPAAAAAABYKWq9RvgSL730Uu688858+OGHSZKiKOqsKQAAAAAAqCu1DsJnz56dHXfcMRtssEF23XXXzJw5M8knP6J53HHH1XmDAAAAAACwImodhB9zzDFp3Lhxpk+fnubNm5fGhwwZkvHjx9dpcwAAAAAAsKJqvUb4hAkTcuedd2bttdeuMr7++uvn1VdfrbPGAAAAAACgLtT6ifD333+/ypPgS7z11luprKysk6YAAAAAAKCu1DoI33777XPNNdeU3ldUVGTx4sU5//zzM2DAgDptDgAAAAAAVlStl0Y5//zz079//0ydOjULFizIT37ykzzzzDN5++2388ADD6yMHgEAAAAA4Aur9RPh3bt3z1NPPZWtt946O++8c95///3svffeefzxx7PuuuvWuoFLL7003bp1S9OmTdOzZ8/cf//9y62fNGlSevbsmaZNm2adddbJqFGjqtXceOON6d69eyorK9O9e/fcfPPNVbafe+652XrrrdOiRYu0bds2e+65Z55//vkqNUVR5PTTT0/Hjh3TrFmz9O/fP88880ytzw8AAAAAgPpV6yA8Sdq3b58zzzwzt99+e8aNG5ezzjorHTp0qPU8Y8eOzciRI3PyySfn8ccfz3bbbZfBgwdn+vTpS62fNm1adt1112y33XZ5/PHHc9JJJ+Woo47KjTfeWKqZPHlyhgwZkqFDh+bJJ5/M0KFDs+++++bhhx8u1UyaNClHHHFEHnrooUycODELFy7MwIED8/7775dqfvnLX+aCCy7IxRdfnClTpqR9+/bZeeed8+6779b6PAEAAAAAqD8VRVEUtd3p/vvvz+9///v83//9X/7yl79krbXWyp/+9Kd069Yt3/zmN2s8T+/evbPVVlvlsssuK41tvPHG2XPPPXPuuedWqz/hhBNy22235bnnniuNjRgxIk8++WQmT56cJBkyZEjmzZuXO+64o1QzaNCgrL766hkzZsxS+3jzzTfTtm3bTJo0Kdtvv32KokjHjh0zcuTInHDCCUmS+fPnp127djnvvPNy6KGHLnWe+fPnZ/78+aX38+bNS6dOnTJ37ty0bNmyxtcFAAAA+GrqNbpXfbfwtTP1kKn13QJfQ+612vtvvdfmzZuXVq1afW4GW+snwm+88cbssssuadasWR577LFS8Pvuu+/mnHPOqfE8CxYsyKOPPpqBAwdWGR84cGAefPDBpe4zefLkavW77LJLpk6dmo8//ni5NcuaM0nmzp2bJGndunWST548nzVrVpV5Kisr069fv+XOc+6556ZVq1alV6dOnZZZCwAAAADAl6PWQfhZZ52VUaNG5Q9/+EMaN25cGu/bt28ee+yxGs/z1ltvZdGiRWnXrl2V8Xbt2mXWrFlL3WfWrFlLrV+4cGHeeuut5dYsa86iKHLsscfmm9/8Znr06FGaY8l+NZ0nSU488cTMnTu39JoxY8YyawEAAAAA+HI0qu0Ozz//fLbffvtq4y1btsycOXNq3UBFRUWV90VRVBv7vPrPjtdmziOPPDJPPfVU/vGPf6xwb5WVlamsrFzmdgAAAAAAvny1fiK8Q4cOeemll6qN/+Mf/8g666xT43nWWGONNGzYsNoT1m+88Ua1J7GXaN++/VLrGzVqlDZt2iy3Zmlz/uhHP8ptt92We++9N2uvvXaV4ySpVW8AAAAAAHw11ToIP/TQQ3P00Ufn4YcfTkVFRV577bVce+21Of7443P44YfXeJ4mTZqkZ8+emThxYpXxiRMnpm/fvkvdp0+fPtXqJ0yYkF69epWWaVlWzafnLIoiRx55ZG666abcc8896datW5X6bt26pX379lXmWbBgQSZNmrTM3gAAAAAA+Gqq9dIoP/nJTzJ37twMGDAgH330UbbffvtUVlbm+OOPz5FHHlmruY499tgMHTo0vXr1Sp8+fTJ69OhMnz49I0aMSPLJmtv/+c9/cs011yRJRowYkYsvvjjHHntsDj744EyePDmXX355xowZU5rz6KOPzvbbb5/zzjsve+yxR2699dbcddddVZY+OeKII3Ldddfl1ltvTYsWLUpPfrdq1SrNmjVLRUVFRo4cmXPOOSfrr79+1l9//Zxzzjlp3rx59ttvv9peMgAAAAAA6lGtg/AkOfvss3PyySfn2WefzeLFi9O9e/esuuqqtZ5nyJAhmT17ds4888zMnDkzPXr0yLhx49KlS5ckycyZMzN9+vRSfbdu3TJu3Lgcc8wxueSSS9KxY8dcdNFF2WeffUo1ffv2zfXXX59TTjklp556atZdd92MHTs2vXv3LtVcdtllSZL+/ftX6efKK6/M8OHDk3wS+H/44Yc5/PDD884776R3796ZMGFCWrRoUevzBAAAAACg/lQUS35tsoYmTpyYb3zjG2nevPnK6qlszJs3L61atcrcuXPTsmXL+m4HAAAAWEG9Rveq7xa+dqYeMrW+W+BryL1We/+t91pNM9haPxG+zz77ZP78+enZs2f69euX/v375xvf+MYXeiIcAAAAAABWtlr/WOY777yT++67L9/+9rfz+OOP57vf/W5at26dbbfdNj/96U9XRo8AAAAAAPCF1ToIb9iwYfr06ZOf/vSnGT9+fB588MHst99+efTRR3P++eevjB4BAAAAAOALq/XSKM8991wmTZqU++67L5MmTcqiRYvyzW9+M7/+9a/Tr1+/ldEjAAAAAAB8YbUOwjfZZJOsueaaGTlyZE499dRssskmK6MvAAAAAACoE7VeGuWoo47KWmutldNPPz0HHnhgTjjhhNxxxx157733VkZ/AAAAAACwQmodhP/mN7/JY489ltdffz2nnHJKFi1alJ/97GdZY401su22266MHgEAAAAA4AurdRC+xOLFi7Nw4cIsWLAg8+fPz8cff5xXXnmlDlsDAAAAAIAV94WWRtl8883Ttm3bHHrooXnttddyyCGH5Mknn8ysWbNWRo8AAAAAAPCF1frHMl977bUcfPDB6d+/f3r06LEyegIAAAAAgDpT6yD8qKOOSt++fdOoUdVdFy5cmAcffDDbb799nTUHAAAAAAArqtZLowwYMCBvv/12tfG5c+dmwIABddIUAAAAAADUlVoH4UVRpKKiotr47Nmzs8oqq9RJUwAAAAAAUFdqvDTK3nvvnSSpqKjI8OHDU1lZWdq2aNGiPPXUU+nbt2/ddwgAAAAAACugxkF4q1atknzyRHiLFi3SrFmz0rYmTZpk2223zcEHH1z3HQIAAAAAwAqocRB+5ZVXJkm6du2a448/3jIoAAAAAAB8LdR6jfDTTjstlZWVueuuu/L73/8+7777bpLktddey3vvvVfnDQIAAAAAwIqo8RPhS7z66qsZNGhQpk+fnvnz52fnnXdOixYt8stf/jIfffRRRo0atTL6BAAAAACAL6TWT4QfffTR6dWrV955550q64Tvtddeufvuu+u0OQAAAAAAWFG1fiL8H//4Rx544IE0adKkyniXLl3yn//8p84aAwAAAACAulDrJ8IXL16cRYsWVRv/97//nRYtWtRJUwAAAAAAUFdqHYTvvPPO+c1vflN6X1FRkffeey+nnXZadt1117rsDQAAAAAAVlitl0a58MILM2DAgHTv3j0fffRR9ttvv7z44otZY401MmbMmJXRIwAAAAAAfGG1DsI7duyYJ554Itdff30effTRLF68OAcddFD233//Kj+eCQAAAAAAXwW1DsKTpFmzZjnggANywAEH1HU/AAAAAABQp2odhM+ePTtt2rRJksyYMSN/+MMf8uGHH+Zb3/pWtt9++zpvEAAAAAAAVkSNfyzz6aefTteuXdO2bdtstNFGeeKJJ7L11lvnwgsvzOjRo7PDDjvklltuWYmtAgAAAABA7dU4CP/JT36STTfdNJMmTUr//v2z++67Z9ddd83cuXPzzjvv5NBDD80vfvGLldkrAAAAAADUWo2XRpkyZUruueeebLbZZtliiy0yevToHH744WnQ4JMs/Uc/+lG23XbbldYoAAAAAAB8ETV+Ivztt99O+/btkySrrrpqVllllbRu3bq0ffXVV8+7775b9x0CAAAAAMAKqHEQniQVFRXLfQ8AAAAAAF81NV4aJUmGDx+eysrKJMlHH32UESNGZJVVVkmSzJ8/v+67AwAAAACAFVTjIHzYsGFV3n//+9+vVvODH/xgxTsCAAAAgDLTq1d9d/A1c0h9N0C5qXEQfuWVV67MPgAAAAAAYKWo1RrhAAAAAADwdSMIBwAAAACgrAnCAQAAAAAoa4JwAAAAAADKmiAcAAAAAICyJggHAAAAAKCsCcIBAAAAAChr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Dh06pKFDh6pevXry9PTULbfcoi5duujtt9/WxYsXr+u6raDgeSz/79ChQ+6uWplz/vx5Pf/882revLkqVaqkGjVqqG3btnr99dd14cIFd1fP7oMPPtAzzzxzXddx+vRpTZ06Vbfffru8vb3l7++vO+64Q88//7x+/vnn67rumxnjRtfqU7A/qlu3rst1KSuu5eu5cuVKde7cWdWqVVOlSpXUpEkTDR06VKmpqddk+Vb0exo3Xsl5/kaM3661oKAgZWVlKTw8/KqXlZqaqpiYGAUGBsrT01PBwcHq3bu31qxZI2PMNaht2cbY8dpYunSp0/34z3/+s8h5bsQY7nrYsWOHRowYcdXLsUrfXd7dFQCuVo8ePfT6669LutQwp0yZot69eyszM7PIeS5cuCBvb295e3vfqGoWq2LFigoICLguy/744481YMAARUdH6+2331bDhg11/Phxvffee5o6daoSExOvy3pL63rug3wvv/yyHn/8cQ0ePFiJiYmqX7++srKytGPHDo0bN047d+50Ol9ubq5sNpvKleOzQ2eOHDmitm3bqmrVqpo5c6aaNm2qixcv6sCBA3rttddUp04d9e3b193VvGaOHj1q397nn39ezZo104ULF7RhwwaNGjVK+/btc3cV7a53m9q+fbu6du2q22+/XQsWLNBtt92mM2fOaO/evVq4cKHCw8PVvHlzp/NeuHBBFSpUuK71KysuP4/lq1mz5nVb382878+fP6+KFSte0XzR0dHavXu3nnnmGbVt21a+vr765ptv9MILL6hly5YOV/m5U/Xq1a/r8n/66SfdfffdOn36tJ555hlFRESoYsWKOnTokN555x298847GjVqlNN5r3T/lyWMG0s2Y8YMDR8+3P7Yw8PDabkLFy7ckPHb9XCtXs8nn3xSc+fO1ZgxY/T000+rbt26yszM1FdffaVJkyZp/fr1Tue7mfvh6+33Nm6UXD/P5/fBZbFNeXh4XJN6r169WgMHDlTXrl31xhtvqGHDhjp58qT27NmjKVOmqF27dk4/+DPGKDc3V+XL/z4iLsaO/+dqxi6+vr7av3+/wzRnH+zmb//1HsNdL9fi2LiavvumO34MUIY98sgjpl+/fg7TvvzySyPJHD9+3BhjTEZGhpFkEhMTTYcOHYynp6d57bXXzOuvv278/Pwc5n3mmWdMzZo1jY+Pjxk2bJh58sknTfPmzQutb86cOSYgIMBUr17djBw50pw/f94YY0yHDh2MJIc/Y0yhdZ04ccLccccdpk+fPubcuXPm888/N5LMzz//bP//5X/Tpk0zxhiTk5NjnnjiCVOnTh1TqVIlc+edd5rPP/+8yP1z9uxZU6NGDdO/f3+nz//888/GGGNf56ZNm0xERITx9vY2UVFRZt++fQ7lP/roI9OqVSvj6elp6tevb6ZPn24uXLjgsLzhw4ebWrVqGU9PT3P77bebNWvWlHofXF7+k08+MbfddpupXLmyiY6ONv/+97/ty/j888/NHXfcYSpVqmT8/PxMmzZtzNGjR51u6/fff28qVKhgxo0b5/T5vLw8+//z171mzRoTGhpqPDw8zJEjR8z27dtN165djb+/v/H19TXt27c3O3fudFiOJPPyyy+bHj16GC8vL3Prrbead9991/58/vG4cuVK07FjR+Pt7W2aNWtmtm7d6rReZUF0dLSpW7euOXPmjNPnL9+333//venbt6+pXLmyqVKlirn//vtNdna2McaYX375xZQrV86kpKTY56tWrZqJjIy0z//OO++YgIAA++OJEyeaRo0aGW9vb1O/fn0zZcoUe3s0xphp06Y5bcP51q9fb9q2bWv8/PxM9erVzR/+8Adz6NChYre3Z8+e5pZbbnG6vfnHrzGXjoXFixeb/v37G29vbxMSEmJWr17tUP67774zPXv2NJUrVza1atUyf/zjH81///tf+/O5ubnmueeeMw0bNjQVK1Y0QUFB5tlnnzXG/N+xlJqaai/76KOPmkaNGtnbgSSzatUqh/LFHXtHjx41vXv3NlWrVjWVKlUyYWFhZu3atU73Q15engkNDTUREREmNze3yDKXr7tgP3zixAnzwAMPmFtuucV4e3ub8PBw88477zgso0OHDmbUqFFm1KhR9tdp8uTJDsdVcHCw+dvf/mb+9Kc/GR8fHxMUFGReffVVp3W62Tg7j13uiy++MHfccYepWLGiCQgIME8++aRDvxscHGxeeuklh3maN29uP28Yc+k4eOWVV0zfvn1NpUqVzFNPPWV++uknM2jQIFOjRg3j5eVlQkJCzGuvvWafZ9u2baZFixbG09PTREREmA8++MDheHN2Dl21apW5fGh56NAh07dvX1OrVi1TuXJlExkZaTZu3OgwT3BwsHnmmWfMI488Ynx9fc3DDz9sjDHm66+/Nu3atTNeXl6mbt26ZvTo0UX2McYYM3v2bFOuXDmza9euQs+dP3/ePm+HDh3M6NGjzRNPPGGqVatmateu7bCvjLnUFw0fPtzUrFnTVKlSxXTq1MmkpaU5lFm9erWJiIgwnp6ext/f39xzzz0O23T5a/Laa68ZX19fk5SUZK/D2LFjHcoXd/zm5OSYUaNGmYCAAOPp6WmCg4PNzJkzi9wXjz32mKlcubL54YcfnD5fsO042/+u9q0LFy40devWNd7e3ua+++5z6ANLGjO5A+PG4seNxjjvU/I560sKjt+MKbn9utJnl9QHFdeHuXK+K7iPXTmmC0pOTjaSzN///nenz1/e1vKXv2TJElO/fn1js9lMXl5eieOQ/G1Zvny5iYqKMp6eniYsLMzhdXR1HH+z+L2NG4s7z+ePccaNG2f8/f1N+/btjTGO4zdjjPnhhx/MwIEDTdWqVU316tVN3759TUZGRqF1FNff/uc//zG9e/e2vz9ZtmxZofY+bdo0ExQUZCpWrGgCAwPN6NGj7c+V1G4Ljkvzj8uPP/7YNGvWzHh6epo777zT7Nmzp8h9debMmULn1ILyj4/85X/yyScmIiLCVKhQwXz22Wcujz1mzJhhHnzwQVO5cmUTGBho5s2b51DGlXG8uzB2vDZjR2f1yVdUn11wDFfSedaVTOPixYtm3Lhx9n7liSeeMA8//LDDa/zee++Z8PBw4+XlZapXr266dOli3zZX2n/B17ykzMKZ0vTdzo6fixcvmqFDh5pbb73VeHl5mcaNG5uEhASHZeRvy/Tp0+3j8BEjRpicnBx7GVfG8iUhCEeZVvAk8Ouvv5rHHnvMhISE2IOZ/JPyrbfealauXGmOHDlifvzxx0Id37Jly4yXl5d57bXXzP79+83TTz9tfH19Cw2GfH19TWxsrElPTzdr1qwxlSpVMosWLTLGGHPy5ElTt25dM2PGDJOVlWWysrKMMY6d7LFjx0xoaKgZPHiw/YR0+ZuInJwck5CQYHx9fe3L+PXXX40xxgwaNMi0adPGfPnll+bQoUNmzpw5xtPT0xw4cMDp/sk/+ZQUsuavv3Xr1uaLL74w3333nWnXrp1p06aNvcwnn3xifH19zdKlS83hw4dNUlKSufXWW8306dONMZdCuLvuusvcfvvtJikpyRw+fNisWbPGrFu3rtT7IL98hQoVTNeuXc2OHTvMzp07TWhoqBk0aJAxxpgLFy4YPz8/85e//MUcOnTI7N271yxdutR8//33TrfxxRdfNJLsr0lx8tfdpk0b8/XXX5t9+/aZM2fOmE8//dS89dZbZu/evWbv3r1m2LBhpnbt2ub06dP2eSUZf39/s3jxYrN//34zZcoU4+HhYfbu3WuM+b/j8bbbbjMff/yx2b9/v7nvvvtMcHCwwwClrDhx4oSx2Wxm1qxZJZbNy8szLVu2NHfffbdJSUkx33zzjWnVqpXp0KGDvUyrVq3MCy+8YIwxJi0tzVSrVs1UrFjRnDp1yhhjzIgRI0xMTIy9/DPPPGO+/vprk5GRYT766CNTu3ZtM3v2bPvzJb2hef/9983KlSvNgQMHTGpqqunTp49p2rRpkcHuyZMnjc1mKzaEyifJ1K1b17zzzjvm4MGDZsyYMcbHx8ecPHnSGGPMv//9b1OjRg0THx9v0tPTza5du0y3bt1Mp06d7MuYOHGiqVatmlm6dKk5dOiQ2bJli1m8eLExxvENR05OjhkwYIBp0aKF+c9//uNQh4JBeHHH3h/+8AfTrVs3s2fPHnsb3rx5s9Pt27Vrl/3NeUmK6od/+OEHM2fOHJOammoOHz5s5s2bZzw8PMw333xjn7dDhw7Gx8fHjB071uzbt88sW7bMod815tLgrnr16mbBggXm4MGDZtasWaZcuXImPT29xLq5W3FvZn744QdTqVIlM3LkSJOenm5WrVplatSo4TDYc/XNTK1atcySJUvM4cOHzdGjR82oUaNMixYtzI4dO0xGRobZuHGj+eijj4wxl96I1qxZ08TExJh//etfZs2aNaZBgwalfjOTlpZmFi5caPbs2WMOHDhgJk+ebLy8vBz66eDgYOPr62vmzJljDh48aA4ePGj27NljfHx8zEsvvWQOHDhgvv76a9OyZUszZMiQIvdjs2bNTPfu3Yve0f9fhw4djK+vr5k+fbo5cOCAeeONN4zNZrOH1Hl5eaZt27amT58+ZseOHebAgQNmwoQJxt/f3952P/74Y+Ph4WGeeuops3fvXpOWlmb+9re/OX1N5syZY6pXr26Sk5Md6lAwCC/u+J0zZ44JCgoyX375pTl69KjZsmVLoQ+M8uXm5pqqVauaxx57rMR9kb/ugvvfGNf61sqVK5vOnTub1NRUs3nzZhMSEmI/RxtT8pjJHRg3Fj9uNKbkILxgX1Jw/OZK+y3pmHelDyquD3PlfOcsCC/pmC4o/7zuyvgtf/nR0dFm165dZvfu3SYvL6/EcUj+ttStW9e8//77Zu/evebRRx81VapUMSdOnDDGuDaOv1n83saNzpZxufwxzhNPPGH27dtnbwOXj9/Onj1rGjVqZIYOHWr27Nlj9u7dawYNGmSaNGliD4dc6W979uxpwsPDzdatW01KSopp06aN8fb2trf39957z/j6+pp169aZ77//3mzbtq1UY62igvDQ0FCTlJRk9uzZY3r37m1uvfXWIj8QzX/vevk5syj5y2/WrJlJSkoyhw4dMidOnHB57FGlShUza9Yss3//fvv4M38skP8aFDeOdyfGjtdm7FhSEO6szy44hivpPFtSpmHMpYs5/Pz87H38sGHDTJUqVeyv8b///W9Tvnx58+KLL5qMjAyzZ88es2DBAvu53pX27ywILy6zKKg0fXf+8gseP+fPnzdPPfWU2b59uzly5Ij9PV1iYqJ9vkceecT4+PjYj6OPP/7Y1KxZ00yaNMlepqSxvEv1c7kkcBN65JFHjIeHh6lcubKpXLmykWQCAwMdrtLNPykX/LSpYMfXunVrM2rUKIcybdu2LTQYCg4ONhcvXrRPu//++x0GWM5OLPnr2r9/v6lXr54ZPXq0wydmRV0NfblDhw4Zm81mfvzxR4fpXbp0MfHx8U73z+zZs40k89NPPzl9vuD6N23aZJ+2du1aI8mcO3fOGGNMu3btCoV/b731lgkMDDTGGLNhwwZTrlw5s3//fqfruJJ9IMnhKosFCxaY2rVrG2MuvXmUZL744otity1fbGys8fX1dZj2/vvv24+dypUr269QyF93wSsAC7p48aKpUqWK/ap3Yy51+rGxsQ7lWrdubf785z8bY/7vePznP/9pf/67774zkspEaFfQN998YySZDz74wGG6v7+/fb9OnDjRGGNMUlKS8fDwMJmZmfZy+du+fft2Y4wx48ePN7179zbGGJOQkGDuu+8+06pVK/tVyY0bNzavvPJKkfV5/vnnTUREhP1xSW9oCjp+/LiRZL799lunz2/bts3p9jojyUyZMsX++MyZM8Zms5n169cbY4yZOnVqoeDu2LFjRpLZv3+/OX36tPH09LQH3wXlH0tbtmwxXbt2NW3btjW//PJLoToUDMKL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RiNHjlTLli0VEhLi9Btqzo4jHx+fUl8QUByCcJR5OTk5ys7OVnZ2ttLT0zV69GidOXNGffr0KdVyRo8erSVLluiNN97QwYMH9eyzz2rPnj2l/irqrbfeqi+//FI//vhjoZDUw8NDb7/9tpo3b67OnTsrOzu7yGWcOXNGn376qU6cOKHffvtNjRs31kMPPaSHH35YH3zwgTIyMrRjxw7Nnj1b69atc7qcypUr65///KfWrl2rvn37atOmTTp69KhSUlI0ceJExcbGurxdTz31lN58801Nnz5d3333ndLT0+1XYUtShw4d1L59ew0YMEAbN260X732ySefXNE+KElGRobi4+OVnJys77//XklJSTpw4IB9YFxQvXr1NHfuXP3973/XI488os8//1xHjx7Vrl277F8lKylUCwkJ0VtvvaX09HRt27ZNDz30kNNPP9977z299tprOnDggKZNm6bt27fr8ccfv6LtLAtefvllXbx4UZGRkUpMTFR6err279+vZcuWad++ffb92rVrVzVr1kwPPfSQdu3ape3bt+vhhx9Whw4dHL461bFjRy1btkwdOnSQzWZTtWrVFBYWpsTERHXs2NFeLiQkRJmZmVqxYoUOHz6sefPmlWpAUK1aNfn7+2vRokU6dOiQPvvsM40fP96l7c3NzdWdd96plStX6uDBg0pPT9e8efNK9RXAUaNG6aefftKDDz6o7du368iRI0pKStLQoUOVm5srLy8vPfnkk5o4caLefPNNHT58WN98842WLFlSaFmjR4/Ws88+q969e+urr75yuQ4FxcXFacOGDcrIyNCuXbv02WefFdmmbDabXn/9de3fv19t27bVRx99pIMHD2rv3r1auHCh/vvf/7rUpvKvcEhPT9djjz3mtE84duyYxo8fr/3792v58uX6xz/+obFjx17xdpYVI0eO1LFjxzR69Gjt27dPq1ev1rRp0zR+/HiVK3dpCNe5c2e99dZb2rJli/71r3/pkUcecekDgqeeekqrV6/WoUOH9N133+njjz+2v9aDBg1SuXLlNGzYMO3du1fr1q1zuMpSklq3bq1KlSpp0qRJOnTokN555x0tXbrUoUxISIg++OADpaWlaffu3Ro0aJBLH5o8+eSTSk5O1qhRo5SWlqaDBw/qo48+cvrNhHxxcXFq27atunTpogULFmj37t06cuSI3n33XbVu3drpByzOdO3aVVFRUerfv782bNigo0ePauvWrZoyZYo9QJg2bZqWL1+uadOmKT09Xd9++63TD5yjoqK0fv16zZgxQy+99JJL63fmpZde0ooVK7Rv3z4dOHBA7733ngICAhy+0n65mTNn6pZbblHr1q312muvac+ePTp8+LBWrVql5ORkl9qlK32rl5eXHnnkEe3evdv+QfHAgQOva8h6LTBuLHrceC1cSfstyJU+qLg+7EqV9piOiorShAkTNGHCBI0fP15fffWVvv/+e/u5Ov9DlqKUZhyyYMECrVq1Svv27dOoUaP0888/a+jQoVe1ve7yexs3Xq2HHnpINWrUUL9+/bRlyxZlZGRo8+bNGjt2rMu3umjSpIl69Oih4cOHa9u2bdq5c6ceffRRh/cxS5cu1ZIlS/Svf/1LR44c0VtvvSVvb28FBwdfVf1nzJihTz/9VP/61780ZMgQ1ahRo8hvVfr4+Njfu/7hD3/Qhg0bdOTIEe3Zs8d+nnXlHObK2OPrr7/W888/rwMHDmjBggV67733LDG2ZOx45eee0rpW59mxY8fqueees/fxI0eOdPiQatu2bZo5c6ZSUlKUmZmpDz74QP/973+v+pxX2szC1b67KCEhIUpJSdGGDRt04MABTZ06VTt27ChU7vz58/bjaP369Zo2bZoef/zxYs+npUUQjjLvk08+UWBgoAIDA9W6dWvt2LFD7733nsPAxxUPPfSQ4uPj9Ze//MX+NeQhQ4bIy8urVMuZMWOGjh49qoYNGzq9p1T58uW1fPly3X777ercubPTexm1adNGsbGxiomJUc2aNe0n/tdff10PP/ywJkyYoCZNmqhv377atm2bw73zCurXr5+2bt2qChUqaNCgQbrtttv04IMP6tSpUw5fAS5JdHS0Pv74Y23cuFF33HGH7rrrLr344osOg6OVK1fqjjvu0IMPPqiwsDBNnDjR6VVOruyDklSqVEn79u3TgAED1LhxY40YMUKPP/64HnvssSLnGT16tJKSkvTf//5X9913nxo1aqRevXopIyNDn3zySYn3cX3ttdf0888/q2XLlho8eLDGjBmjWrVqFSr39NNPa8WKFWrWrJneeOMNvf322woLCyv1NpYVDRs2VGpqqrp27ar4+Hg1b95ckZGR+sc//qG//OUveuaZZyRdCk4//PBDVatWTe3bt1fXrl3VoEEDJSYmOiyvU6dOys3NdWjDHTp0UG5ursOVPf369dO4ceP0+OOPq0WLFtq6daumTp3qcr3LlSunFStWaOfOnQoPD9e4ceNcunKzfv362rVrlzp16qQJEyYoPDxc3bp106effqpXXnnF5fXXqVNHX3/9tXJzcxUdHa3w8HCNHTtWfn5+9hP91KlTNWHCBD311FMKDQ1VTExMke0lLi5OTz/9tHr16uX0XqmuyM3N1ahRoxQaGqoePXqoSZMmxV7pdtddd2nnzp1q0qSJRo0apbCwMLVp00bLly/XSy+9pD//+c/Frm/q1Klq1aqVoqOj1bFjRwUEBDh9c/Twww/r3LlzuvPOOzVq1CiNHj1aI0aMuKJtLEtuueUWrVu3Ttu3b1fz5s0VGxurYcOG2T+AlKT4+Hi1b99evXv3Vq9evdS/f3+H+xAWpWLFioqPj1ezZs3Uvn17eXh4aMWKFZIuvRFds2aN9u7dq5YtW2ry5MmFrs6qXr26li1bpnXr1qlp06Zavny5pk+f7lDmpZdeUrVq1dSmTRv16dNH0dHRatWqVYl1a9asmTZv3qyDBw+qXbt2atmypaZOnWq/560znp6e2rhxoyZOnKhXX31Vd911l+644w7NmzdPY8aMUXh4eInrlS71U+vWrVP79u01dOhQNW7cWA888ICOHj2q2rVrS7oUurz33nv66KOP1KJFC3Xu3LnIr3W2bdtWa9eu1dSpUx3uCVsaPj4+mj17tiIjI3XHHXfo6NGjWrduXZFvCPz9/e2B0Zw5c3TnnXeqadOmmj59uv2q8uK42reGhITo3nvvVa9evdS9e3eFh4df8ZWxNxLjxuLHjVfrStpvQa70QcX1YVfqSo7pF154Qe+8845SU1PVu3dvNWrUSPfff7/y8vKUnJwsX1/fIuctzTjkueee0+zZs9W8eXNt2bJFq1evtn9Lpaz5vY0br1alSpX05Zdfql69err33nsVGhqqoUOH6ty5c8UeXwW9/vrrCgoKUocOHXTvvfdqxIgRDu9jqlatqsWLF6tt27b2bz6tWbNG/v7+V1X/5557TmPHjlVERISysrL00UcfFXuF7j333KOtW7eqUqVKevjhh9WkSRN17txZn332mVasWKHevXsXuz5Xxx4TJkzQzp071bJlSz3zzDOaO3euoqOjr2pbbwaMHa/83HMlrsV5dsKECXr44Yc1ZMgQ+y1D7rnnHvvzvr6++vLLL9WrVy81btxYU6ZM0dy5c9WzZ8+rqntpMwtX++6ixMbG6t5771VMTIxat26tkydPauTIkYXKdenSRY0aNVL79u01cOBA9enTp9BxcrVsprS/pgf8jnTr1k0BAQF666233F0VlBE2m02rVq1y6f7RAErWsWNHtWjRQgkJCe6uyu/a0aNHVb9+faWmptrvCY/fr+nTp+vDDz8s9JXm3zvGjWXXzXpM0/eirPriiy/UqVMn/fzzz0V+g8ldbr31VsXFxSkuLs7dVbE0+q+b182aWQwZMkS//PKLPvzww+u6Hn4sE/j/fvvtNy1cuFDR0dHy8PDQ8uXLtWnTJm3cuNHdVQMAAMBNhHEjAABA2UMQDvx/+V+HfvbZZ5WTk6MmTZpo5cqV6tq1q7urBgAAgJsI40YAAICyh1ujAAAAAAAAAAAsjR/LBAAAAAAAAABYGkE4AAAAAAAAAMDSCMIBAAAAAAAAAJZGEA4AAAAAAAAAsDSCcAAAAAAAAACApRGEAwAAALhqHTt2VFxcnLurAQAAADhFEA4AAABYQHZ2tsaOHauQkBB5eXmpdu3auvvuu7Vw4UL99ttv7q4eAAAA4Fbl3V0BAAAAAFfnyJEjatu2rapWraqZM2eqadOmunjxog4cOKDXXntNderUUd++fQvNd+HCBVWoUMENNQYAAABuLK4IBwAAAMq4kSNHqnz58kpJSdHAgQMVGhqqpk2basCAAVq7dq369OkjSbLZbFq4cKH69eunypUr69lnn1Vubq6GDRum+vXry9vbW02aNNHf//53h+UPGTJE/fv319NPP61atWrJ19dXjz32mM6fP+9QLi8vTxMnTlT16tUVEBCg6dOn36hdAAAAABSLK8IBAACAMuzkyZNKSkrSzJkzVblyZadlbDab/f/Tpk3TrFmz9NJLL8nDw0N5eXmqW7eu3n33XdWoUUNbt27ViBEjFBgYqIEDB9rn+/TTT+Xl5aXPP/9cR48e1Z/+9CfVqFFDf/vb3+xl3njjDY0fP17btm1TcnKyhgwZorZt26pbt27XbwcAAAAALrAZY4y7KwEAAADgymzbtk133XWXPvjgA91zzz326TVq1ND//vc/SdKoUaM0e/Zs2Ww2xcXF6aWXXip2maNGjdJ//vMfvf/++5IuXRG+Zs0aHTt2TJUqVZIkLVy4UE888YROnTqlcuXKqWPHjsrNzdWWLVvsy7nzzjvVuXNnPffcc9d6swEAAIBS4dYoAAAAgAVcftW3JG3fvl1paWm6/fbblZOTY58eGRlZaN6FCxcqMjJSNWvWlI+PjxYvXqzMzEyHMs2bN7eH4JIUFRWlM2fO6NixY/ZpzZo1c5gnMDBQx48fv6rtAgAAAK4FgnAAAACgDAsJCZHNZtO+ffscpjdo0EAhISHy9vZ2mF7w9invvvuuxo0bp6FDhyopKUlpaWn605/+VOj+30W5PIAv+MObNptNeXl5pdkcAAAA4LogCAcAAADKMH9/f3Xr1k3z58/X2bNnSz3/li1b1KZNG40cOVItW7ZUSEiIDh8+XKjc7t27de7cOfvjb775Rj4+Pqpbt+5V1R8AAAC4EQjCAQAAgDLu5Zdf1sWLFxUZGanExESlp6dr//79WrZsmfbt2ycPD48i5w0JCVFKSoo2bNigAwcOaOrUqdqxY0ehcufPn9ewYcO0d+9erV+/XtOmTdPjjz+ucuV4SwEAAICbX3l3VwAAAADA1WnYsKFSU1M1c+ZMxcfH64cffpCnp6fCwsL0l7/8RSNHjixy3tjYWKWlpSkmJkY2m00PPvigRo4cqfXr1zuU69Klixo1aqT27dsrJydHDzzwgKZPn36dtwwAAAC4NmzGGOPuSgAAAAC4eQ0ZMkS//PKLPvzwQ3dXBQAAALgifI8RAAAAAAAAAGBpBOEAAAAAAAAAAEvj1igAAAAAAAAAAEvjinAAAAAAAAAAgKURhAMAAAAAAAAALI0gHAAAAAAAAABgaQThAAAAAAAAAABLIwgHAAAAAAAAAFgaQTgAAAAAAAAAwNIIwgEAAAAAAAAAlkYQDgAAAAAAAACwtP8HJv8bLCQRbzAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "\n", @@ -1317,7 +16952,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -1328,9 +16963,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABcIAAAPdCAYAAACp3hugAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC32UlEQVR4nOzdebxV8/4/8PeuztBMGjUjkorULeWSIkO4cs3dKwlJ19dVMl3zmFmua+oi8zx0DSkZShS3KFxziVBJoRQazlm/Pzw6P8c51dm1j6Pt+Xw89oP9WZ+11nsNe+3T66zzWakkSZIAAAAAAIAsVamiCwAAAAAAgPIkCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHIOv885//jFQqFW3btq3oUn6TCgsL4+6774499tgj6tatGzk5OVG/fv3Yb7/94sknn4zCwsKIiPjkk08ilUrFHXfcUS51zJ07N84///yYMWNGuSz/jjvuiFQqFZ988km5LL8s3nrrrTj66KOjZcuWkZ+fHzVq1Igdd9wxrrjiivj666/Ldd0PPvhgbLfddlG1atVIpVJF+/n666+PrbbaKnJzcyOVSsW3334b/fv3jxYtWqS9jt122y122223jNb9S++++26cf/755XIcn3/++ejUqVNUr149UqlUjB49utR+aztX+/fvHzVq1Mh4beXh/PPPj1QqtV7zTpgwIVKpVEyYMCGzRf3Cr3FOlaeN5Xwo6/V9bZ+/3XbbzfdshqVSqTj//POL3v9an7tf2pBrxW/B6voXLlxY0aUA8BsjCAcg69x+++0REfHOO+/Ea6+9VsHV/Lb8+OOP0bt37zjqqKOifv36cdNNN8ULL7wQN998c2y++eZxyCGHxJNPPvmr1DJ37ty44IILyi0I33fffWPKlCnRqFGjcln+uvz73/+Ojh07xtSpU+PUU0+NsWPHxuOPPx6HHHJI3HzzzXHMMceU27q/+uqrOPLII2PLLbeMsWPHxpQpU2LrrbeOGTNmxEknnRQ9evSIF154IaZMmRI1a9aMc845Jx5//PG013PjjTfGjTfeWA5b8P+9++67ccEFF2Q8CE+SJA499NDIycmJJ554IqZMmRLdu3cvtW95n6u/lmOPPTamTJmyXvPuuOOOMWXKlNhxxx0zXBW/ZeX1+aNsfO4AILOqVHQBAJBJ06ZNizfffDP23XffePrpp+O2226LLl26/Ko1JEkSP/74Y1StWvVXXW9ZDB06NMaNGxd33nln9OvXr9i0P//5z3HqqafGDz/8UEHVZcYPP/wQ+fn5Ua9evahXr16F1DBlypQ44YQTolevXjF69OjIy8srmtarV6845ZRTYuzYseW2/g8//DBWrlwZf/3rX4uFu++8805ERBx33HHRuXPnovYtt9xyvdbTpk2bDSu0As2dOze+/vrrOPDAA2P33Xev6HLK1ffffx/VqlWLJk2aRJMmTdZrGbVq1Yqddtopw5VVjNXXiI35jld++1auXBmpVCqqVFn/f3Jn0+fulzKxfwAgXe4IByCr3HbbbRERcdlll0W3bt3igQceiO+//z4ifvpHV/369ePII48sMd+3334bVatWjaFDhxa1LVmyJIYNGxYtW7aM3NzcaNy4cZx88smxbNmyYvOmUqk48cQT4+abb45tt9028vLy4s4774yIiAsuuCC6dOkSderUiVq1asWOO+4Yt912WyRJUmwZy5cvj1NOOSUaNmwY1apVi1133TVef/31aNGiRfTv379Y3/nz58fxxx8fTZo0idzc3GjZsmVccMEFsWrVqrXum/nz58ett94ae+21V4kQfLVWrVpF+/bt17iMNQ2hUdqfUT/88MPRpUuXqF27dlSrVi222GKLGDBgQET89Ofef/jDHyIi4uijj45UKlXiT8KnTZsWf/rTn6JOnTqRn58fHTp0iIceeqjYOlYPf/Lss8/GgAEDol69elGtWrVYvnx5qUOjrP5T/qlTp8Yuu+xSVNdll11WNCTMau+8807sueeeUa1atahXr1787W9/i6effrpMf6Z+6aWXRiqVipEjRxYLwVfLzc2NP/3pT0XvCwsL44orrojWrVtHXl5e1K9fP/r16xeff/55iXmfe+652H333aNWrVpRrVq12HnnneP5558vmt6/f//44x//GBERhx12WKRSqaLhJv76179GRESXLl0ilUoVnVulHdfCwsK4/vrrY4cddoiqVavGJptsEjvttFM88cQTxfbnL4exWLFiRVx88cVF21KvXr04+uij46uvvirWr0WLFrHffvvF2LFjY8cdd4yqVatG69ati/6iI+Kn43vIIYdERESPHj2KzpN1Defw8ssvx+677x41a9aMatWqRbdu3eLpp58umn7++ecXBcKnn356pFKpNQ4NU5ZzNSJi5syZ0bt376hRo0Y0bdo0TjnllFi+fPl67Zs1eeKJJ6Jr165RrVq1qFmzZvTq1avEHd6rP4tvvPFGHHzwwbHpppsW/aKjtM9pWa89pQ3RsHoYkLJse1mvhWVV1rrXdo2YOXNmHH300dGqVauoVq1aNG7cOPbff/94++23i61r9bbfc889MXTo0GjYsGFUrVo1unfvHtOnTy+1vrLsk9I8+OCDseeee0ajRo2iatWqse2228YZZ5xR4nsnnX0/d+7cOPTQQ6NmzZpRu3btOOyww2L+/PnrrKWsn7+yXE/L+n1amiRJ4tJLL43mzZtHfn5+dOrUKcaPH1/q9Sfd7+277747tt1226hWrVpsv/328dRTT5VY/0cffRR9+/aN+vXrR15eXmy77bZxww03FOuz+hy5++6745RTTonGjRtHXl5ezJw5M7766qsYPHhwtGnTJmrUqBH169ePnj17xqRJk9a57b/83K0e0mZNr59b13fFak8//XTssMMOkZeXFy1btoyrrrpqnXWtVtZjk4n9s3rbr7jiirjkkkuiWbNmRessbbsiIr788ss44ogjonbt2tGgQYMYMGBALF68uMzbB0AWSgAgS3z//fdJ7dq1kz/84Q9JkiTJrbfemkREcscddxT1GTJkSFK1atVk8eLFxea98cYbk4hI3nrrrSRJkmTZsmXJDjvskNStWze55pprkueeey657rrrktq1ayc9e/ZMCgsLi+aNiKRx48ZJ+/btk/vuuy954YUXkv/9739JkiRJ//79k9tuuy0ZP358Mn78+OSiiy5KqlatmlxwwQXF1n/EEUcklSpVSs4444zk2WefTUaMGJE0bdo0qV27dnLUUUcV9Zs3b17StGnTpHnz5sktt9ySPPfcc8lFF12U5OXlJf3791/r/rnvvvuSiEhuuummMu3P2bNnJxGRjBo1qqjtqKOOSpo3b16i73nnnZf8/MeKyZMnJ6lUKjn88MOTMWPGJC+88EIyatSo5Mgjj0ySJEkWL16cjBo1KomI5Oyzz06mTJmSTJkyJfnss8+SJEmSF154IcnNzU122WWX5MEHH0zGjh2b9O/fv0Q9q5fRuHHjZODAgckzzzyTPPLII8mqVauKps2ePbuof/fu3ZPNNtssadWqVXLzzTcn48ePTwYPHpxERHLnnXcW9Zs7d26y2WabJc2aNUvuuOOOZMyYMcmRRx6ZtGjRIomI5MUXX1zjflu1alVSrVq1pEuXLmXaz0mSJAMHDkwiIjnxxBOTsWPHJjfffHNSr169pGnTpslXX31V1O/uu+9OUqlU0qdPn+Sxxx5LnnzyyWS//fZLKleunDz33HNJkiTJzJkzkxtuuCGJiOTSSy9NpkyZkrzzzjvJO++8k5x99tlF+3DKlCnJzJkz13hcjzzyyCSVSiXHHnts8p///Cd55plnkksuuSS57rrriu3P7t27F70vKChI9t5776R69erJBRdckIwfPz659dZbk8aNGydt2rRJvv/++6K+zZs3T5o0aZK0adMmueuuu5Jx48YlhxxySBIRycSJE5MkSZIFCxYkl156aRIRyQ033FB0nixYsGCN+3LChAlJTk5O0rFjx+TBBx9MRo8eney5555JKpVKHnjggSRJkuSzzz5LHnvssSQikv/7v/9LpkyZkrzxxhulLm9d5+pRRx2V5ObmJttuu21y1VVXJc8991xy7rnnJqlUqtjnPJ19U5p77703iYhkzz33TEaPHp08+OCDSceOHZPc3Nxk0qRJRf1WfxabN2+enH766cn48eOT0aNHF5v2c2W99rz44oslzv2ybnuSlP1a+Mtzak3KWvfarhETJ05MTjnllOSRRx5JJk6cmDz++ONJnz59kqpVqybvv/9+iW1v2rRpcsABByRPPvlkcs899yRbbbVVUqtWrWTWrFnrtU9Kc9FFFyXXXntt8vTTTycTJkxIbr755qRly5ZJjx49ivUr63q+//77ZNttt01q166dXH/99cm4ceOSk046KWnWrFmJ6+kvrevzV9braTrfp6U588wzk4hIBg4cmIwdOzb597//nTRr1ixp1KhRsXMl3e/tFi1aJJ07d04eeuihZMyYMcluu+2WVKlSpdjxfOedd5LatWsn7dq1S+66667k2WefTU455ZSkUqVKyfnnn1/Ub/U50rhx4+Tggw9OnnjiieSpp55KFi1alLz//vvJCSeckDzwwAPJhAkTkqeeeio55phjkkqVKpX4LomI5Lzzziux3NX9fvzxx6LjsPr1xBNPJLVq1Uq23XbbovnK8l2RJEny3HPPJZUrV07++Mc/Jo899ljy8MMPJ3/4wx+Kzo91KeuxycT+Wf0zSdOmTZM//vGPyaOPPlpUb05OTjJ58uSivquvddtss01y7rnnJuPHj0+uueaaJC8vLzn66KPXuV0AZC9BOABZ46677koiIrn55puTJEmS7777LqlRo0ayyy67FPV56623kohIRo4cWWzezp07Jx07dix6P3z48KRSpUrJ1KlTi/V75JFHkohIxowZU9QWEUnt2rWTr7/+eq31FRQUJCtXrkwuvPDCZLPNNiv6R/k777yTRERy+umnF+t///33JxFRLNQ5/vjjkxo1aiSffvppsb5XXXVVEhHJO++8s8b1X3bZZUlEJGPHjl1rnattSBC+up5vv/12jcufOnXqGoOY1q1bJx06dEhWrlxZrH2//fZLGjVqlBQUFCRJ8v9Drn79+pVYxpqC8IhIXnvttWJ927Rpk+y1115F70899dQklUqV2J977bXXOoPw+fPnJxGRHH744Wvs83PvvfdeEhHJ4MGDi7W/9tprSUQk//jHP5Ik+SnkqVOnTrL//vsX61dQUJBsv/32SefOnYvaVocODz/8cLG+q/fJL8/rXx7Xl156KYmI5Kyzzlpr7b8MLVefs48++mixfquP9Y033ljU1rx58yQ/P7/YufzDDz8kderUSY4//viitocffnid+/zndtppp6R+/frJd999V9S2atWqpG3btkmTJk2KPnerz+8rr7xynctc27l61FFHJRGRPPTQQ8Xae/funWyzzTZF79PZN79UUFCQbL755km7du2Kzv0k+ekaV79+/aRbt25Fbas/i+eee26J5fzyc5rOtWdNQXhZtr207SntWpgkZQvC06l7bdeIX1q1alWyYsWKpFWrVsmQIUOK2ldv+4477lis1k8++STJyclJjj322KK29d0npSksLExWrlyZTJw4MYmI5M0330x7PTfddFMSEcl//vOfYv2OO+64dQbhSbL2z19Zr6fpfJ/+0tdff53k5eUlhx12WLH2KVOmJBFR7FxJ93u7QYMGyZIlS4ra5s+fn1SqVCkZPnx4Udtee+2VNGnSpMQvz0888cQkPz+/6Ht/9Tmy6667rnFbVlu1alWycuXKZPfdd08OPPDAYtPWFYT/0rJly5LOnTsnjRo1Sj755JOitrJ+V3Tp0iXZfPPNkx9++KGobcmSJUmdOnXWGYSnc2wysX9WX7PXVO8ee+xR1Lb6WnfFFVcUW/bgwYOT/Pz8df7yBYDsZWgUALLGbbfdFlWrVo3DDz88IiJq1KgRhxxySEyaNCk++uijiIho165ddOzYMUaNGlU033vvvRf//e9/i4btiIh46qmnom3btrHDDjvEqlWril577bVXqUNj9OzZMzbddNMSNb3wwguxxx57RO3ataNy5cqRk5MT5557bixatCgWLFgQERETJ06MiIhDDz202LwHH3xwibEzn3rqqejRo0dsvvnmxeraZ599ii2roq0eSuLQQw+Nhx56KL744osyzztz5sx4//334y9/+UtERLHt7N27d8ybNy8++OCDYvMcdNBBZV5+w4YNi42PHRHRvn37+PTTT4veT5w4Mdq2bVtiDOwjjjiizOspqxdffDEiosQQOJ07d45tt9226E++J0+eHF9//XUcddRRxfZJYWFh7L333jF16tQyDTNQFs8880xERPztb39La76nnnoqNtlkk9h///2L1bjDDjtEw4YNS3xudthhh2jWrFnR+/z8/Nh6662LHYt0LFu2LF577bU4+OCDo0aNGkXtlStXjiOPPDI+//zzEudOJqRSqdh///2Ltf3ynEp33/zcBx98EHPnzo0jjzwyKlX6/z++16hRIw466KB49dVXi4aAWq0sn4l0rj1rUpZtjyjbtbCs1qfu0vbHqlWr4tJLL402bdpEbm5uVKlSJXJzc+Ojjz6K9957r0T/vn37Fht+onnz5tGtW7eiz/BqZd0npfn444+jb9++0bBhw6L9tHqc/1/WVJb1vPjii1GzZs1iQzGt3pZMKMv1NN3v05979dVXY/ny5SWO9U477VRiOKN019OjR4+oWbNm0fsGDRpE/fr1i2r/8ccf4/nnn48DDzwwqlWrVuK76Mcff4xXX3212DLX9Lm7+eabY8cdd4z8/PyoUqVK5OTkxPPPP1/qeVZWBQUFcdhhh8V7770XY8aMiebNm0dE2b8rli1bFlOnTo0///nPkZ+fX7TcmjVrljivSpPOsVktE/tnTfW+9NJLUVBQUKzvL8/79u3bx48//pj2NQeA7CEIByArzJw5M1566aXYd999I0mS+Pbbb+Pbb7+Ngw8+OCKi2LjDAwYMiClTpsT7778fERGjRo2KvLy8YiHnl19+GW+99Vbk5OQUe9WsWTOSJImFCxcWW3+jRo1K1PTf//439txzz4iI+Pe//x2vvPJKTJ06Nc4666yIiKKHUi5atCgifvpH+M9VqVIlNttss2JtX375ZTz55JMl6tpuu+0iIkrU9XOrA8fZs2evsU+m7LrrrjF69OhYtWpV9OvXL5o0aRJt27aN+++/f53zfvnllxERMWzYsBLbOXjw4IgouZ2l7f81+eU+jYjIy8sr9pDQRYsWlTgeESWPUWnq1q0b1apVK/N+Xn38S9uGzTffvGj66v1y8MEHl9gvl19+eSRJEl9//XWZ1rkuX331VVSuXDkaNmyY1nxffvllfPvtt5Gbm1uixvnz55c4bmU5Fun45ptvIkmSNe7LiP+/vzOpWrVqxYKZiJ+248cffyx6n+6++bl1nSOFhYXxzTffFGsvy2cinWvPmpRl28t6LSyr9am7tP0xdOjQOOecc6JPnz7x5JNPxmuvvRZTp06N7bffvtSaSvs8NGzYsMQ5VZZ9UpqlS5fGLrvsEq+99lpcfPHFMWHChJg6dWo89thjEVFyP5VlPWu6lqX72V6TsnyG0/0+/bk1HevS2tJdz7pqX7RoUaxatSquv/76Esvs3bt3RJTtu+iaa66JE044Ibp06RKPPvpovPrqqzF16tTYe++9N+jh1IMGDYqxY8fGI488EjvssEOx/RCx7u+Kb775JgoLC9d4Xq9LOsdmtUzsnzXVu2LFili6dGmx9l8e49XP7NjYHwoOwPrziGYAssLtt98eSZLEI488Eo888kiJ6XfeeWdcfPHFUbly5TjiiCNi6NChcccdd8Qll1wSd999d/Tp06fYHd1169aNqlWrFgvQf65u3brF3v/yIVUREQ888EDk5OTEU089VSysGD16dLF+q/+h9uWXX0bjxo2L2letWlUiYKlbt260b98+LrnkklLrWh32laZHjx6Rk5MTo0ePjkGDBq2x39rk5+eX+sC30oKMAw44IA444IBYvnx5vPrqqzF8+PDo27dvtGjRIrp27brGdazet2eeeWb8+c9/LrXPNttsU+x9aft/Q2y22WZFYcLPleUBc5UrV47dd989nnnmmfj888+LHsq4tnVFRMybN69E37lz5xbtj9X/vf7662OnnXYqdVllCerLol69elFQUBDz589P65cMdevWjc022yzGjh1b6vSf331ZHjbddNOoVKlSzJs3r8S0uXPnFtVYETZk3/z8HPmluXPnRqVKlUr8RUpZPhPpXHs2RFmvhWW1PnWXtj/uueee6NevX1x66aXF2hcuXBibbLJJif6lff7nz59f5l8arMsLL7wQc+fOjQkTJhTdBR7x08Oc19dmm20W//3vf0u0l+Valinpfp/+3M+P9S/Nnz+/2J3HG7Ke0my66aZFf02ypr+OadmyZbH3azrPdtttt7jpppuKtX/33Xdp1fNz559/ftx6660xatSool8yrVbW74qVK1dGKpVa43m9Lukcm9UysX/WVG9ubm6xvwQCgNIIwgHY6BUUFMSdd94ZW265Zdx6660lpj/11FNx9dVXxzPPPBP77bdfbLrpptGnT5+46667omvXrjF//vxiw6JEROy3335x6aWXxmabbVbiH7pllUqlokqVKlG5cuWith9++CHuvvvuYv123XXXiIh48MEHY8cddyxqf+SRR2LVqlUl6hozZkxsueWWpQ7FsjYNGzaMY489Nm666aa46667ol+/fiX6zJo1K5YtWxbt27cvdRktWrSIBQsWxJdfflkUuq5YsSLGjRu3xvXm5eVF9+7dY5NNNolx48bF9OnTo2vXrmu8M2ubbbaJVq1axZtvvlkioPq1dO/ePa666qp49913iw2P8sADD5Rp/jPPPDPGjBkTxx13XPznP/+J3NzcYtNXrlwZY8eOjf333z969uwZET+FAauHlImImDp1arz33ntFd83uvPPOsckmm8S7774bJ5544oZu4lrts88+MXz48LjpppviwgsvLPN8++23XzzwwANRUFAQXbp0yUgt6dzBV7169ejSpUs89thjcdVVV0XVqlUjIqKwsDDuueeeaNKkSWy99dblWsOabMi+2WabbaJx48Zx3333xbBhw4rCpGXLlsWjjz4aXbt2jWrVqqVdUzrXng1R1mthWWWq7lQqVXRsV3v66afjiy++iK222qpE//vvvz+GDh1atP8//fTTmDx5cqnX0vWxerm/rOmWW25Z72X26NEjHnrooXjiiSeKDRNx3333lWn+TJ376/t92qVLl8jLy4sHH3yw2C9GX3311fj000+Lha2Z+N7+uWrVqkWPHj1i+vTp0b59+xLX8bIq7Tx76623YsqUKdG0adO0l3fbbbfFBRdcEBdeeGGJIbUiyv5dkZubG507d47HHnssrrzyyqJfUn333Xfx5JNPrrOOdI7N2qS7f9ZU7y677FLsGgMApRGEA7DRe+aZZ2Lu3Llx+eWXx2677VZietu2beNf//pX3HbbbbHffvtFxE/Dozz44INx4oknRpMmTWKPPfYoNs/JJ58cjz76aOy6664xZMiQaN++fRQWFsacOXPi2WefjVNOOWWdYda+++4b11xzTfTt2zcGDhwYixYtiquuuqrEP/i22267OOKII+Lqq6+OypUrR8+ePeOdd96Jq6++OmrXrl1sTOALL7wwxo8fH926dYuTTjopttlmm/jxxx/jk08+iTFjxsTNN9+81juQr7nmmvj444+jf//+MW7cuDjwwAOjQYMGsXDhwhg/fnyMGjUqHnjggTUG4Ycddlice+65cfjhh8epp54aP/74Y/zzn/8sMS7nueeeG59//nnsvvvu0aRJk/j222/juuuuKzbe7ZZbbhlVq1aNe++9N7bddtuoUaNGbL755rH55pvHLbfcEvvss0/stdde0b9//2jcuHF8/fXX8d5778Ubb7wRDz/88Fr3/YY6+eST4/bbb4999tknLrzwwmjQoEHcd999RcPp/PyYlKZr165x0003xeDBg6Njx45xwgknxHbbbRcrV66M6dOnx8iRI6Nt27ax//77xzbbbBMDBw6M66+/PipVqhT77LNPfPLJJ3HOOedE06ZNY8iQIRHx03jQ119/fRx11FHx9ddfx8EHHxz169ePr776Kt5888346quvStxRt7522WWXOPLII+Piiy+OL7/8Mvbbb7/Iy8uL6dOnR7Vq1eL//u//Sp3v8MMPj3vvvTd69+4df//736Nz586Rk5MTn3/+ebz44otxwAEHxIEHHphWLW3bto2IiJEjR0bNmjUjPz8/WrZsuca7cIcPHx69evWKHj16xLBhwyI3NzduvPHG+N///hf333//ev31wNrO1bLakH1TqVKluOKKK+Ivf/lL7LfffnH88cfH8uXL48orr4xvv/02LrvssrS3KSK9a8+GKOu18Neue7/99os77rgjWrduHe3bt4/XX389rrzyyjVeQxcsWBAHHnhgHHfccbF48eI477zzIj8/P84888z12o5f6tatW2y66aYxaNCgOO+88yInJyfuvffeePPNN9d7mf369Ytrr702+vXrF5dcckm0atUqxowZs9ZfXv5cup+/0mzI92mdOnVi6NChMXz48Nh0003jwAMPjM8//zwuuOCCaNSoUbFjnYnv7V+67rrr4o9//GPssssuccIJJ0SLFi3iu+++i5kzZ8aTTz4ZL7zwwjqXsd9++8VFF10U5513XnTv3j0++OCDuPDCC6Nly5Zp/8JpypQpMWjQoNh5552jV69eJcYo32mnndL6rrjoooti7733jl69esUpp5wSBQUFcfnll0f16tXXOdRWOscmk/uncuXK0atXrxg6dGgUFhbG5ZdfHkuWLIkLLrigjHsRgN+1intOJwBkRp8+fZLc3NxkwYIFa+xz+OGHJ1WqVEnmz5+fJEmSFBQUJE2bNk0iIjnrrLNKnWfp0qXJ2WefnWyzzTZJbm5uUrt27aRdu3bJkCFDipaTJEkSEcnf/va3Updx++23J9tss02Sl5eXbLHFFsnw4cOT2267LYmIZPbs2UX9fvzxx2To0KFJ/fr1k/z8/GSnnXZKpkyZktSuXTsZMmRIsWV+9dVXyUknnZS0bNkyycnJSerUqZN07NgxOeuss5KlS5euc3+tWrUqufPOO5OePXsmderUSapUqZLUq1cv2WeffZL77rsvKSgoSJIkSWbPnp1ERDJq1Khi848ZMybZYYcdkqpVqyZbbLFF8q9//Ss577zzkp//WPHUU08l++yzT9K4ceMkNzc3qV+/ftK7d+9k0qRJxZZ1//33J61bt05ycnKSiEjOO++8omlvvvlmcuihhyb169dPcnJykoYNGyY9e/ZMbr755qI+o0aNSiIimTp1aontXD3t5/u5e/fuyXbbbVei71FHHZU0b968WNv//ve/ZI899kjy8/OTOnXqJMccc0xy5513JhGRvPnmm+vazUmSJMmMGTOSo446KmnWrFmSm5ubVK9ePenQoUNy7rnnFjtfCwoKkssvvzzZeuutk5ycnKRu3brJX//61+Szzz4rscyJEycm++67b1KnTp0kJycnady4cbLvvvsmDz/8cFGfF198MYmIYm1r21+lbX9BQUFy7bXXJm3bti06/7t27Zo8+eSTRX26d++edO/evdh8K1euTK666qpk++23T/Lz85MaNWokrVu3To4//vjko48+KurXvHnzZN999y2xfaUtc8SIEUnLli2TypUrl3pO/tKkSZOSnj17JtWrV0+qVq2a7LTTTsXqTpL/f35feeWVa13Wams6V4866qikevXqJfr/8jORJGXfN2syevTopEuXLkl+fn5SvXr1ZPfdd09eeeWVUtf71Vdflammsl57Vp9TL774YlFbOtte1mthace/NGWte23XiG+++SY55phjkvr16yfVqlVL/vjHPyaTJk0qUcPqbb/77ruTk046KalXr16Sl5eX7LLLLsm0adOKLTOdfVKayZMnJ127dk2qVauW1KtXLzn22GOTN954o8R5n856Pv/88+Sggw5KatSokdSsWTM56KCDksmTJ5fps5Qka/78pXM9Lev3aWkKCwuTiy++OGnSpEmSm5ubtG/fPnnqqaeS7bffPjnwwAPXaz1r+t5u3rx5ctRRRxVrmz17djJgwICkcePGSU5OTlKvXr2kW7duycUXX1zUZ03X3CRJkuXLlyfDhg1LGjdunOTn5yc77rhjMnr06FL30y+/B3/5uVt9Pq/p9XNl+a5IkiR54oknkvbt2ye5ublJs2bNkssuu6zM52tZj00m9s/qa/bll1+eXHDBBUXr7NChQzJu3Lhiy1zTdbC0nwsA+H1JJUmSlFPGDgBsgMmTJ8fOO+8c9957b/Tt27eiyyEiBg4cGPfff38sWrRovf9MHn7rNtZrT3nVPWHChOjRo0c8/PDDRQ9gpmLNnj07WrduHeedd1784x//qOhy+JnyOjaffPJJtGzZMq688soYNmxYxpYLwO+LoVEA4Ddg/PjxMWXKlOjYsWNUrVo13nzzzbjsssuiVatWa3xgJOXrwgsvjM033zy22GKLWLp0aTz11FNx6623xtlnny0EJ2tsrNeejbVu0vfmm2/G/fffH926dYtatWrFBx98EFdccUXUqlUrjjnmmIou73fNsQFgYyMIB4DfgFq1asWzzz4bI0aMiO+++y7q1q1b9MDC1Q+E4teVk5MTV155ZXz++eexatWqaNWqVVxzzTXx97//vaJLg4zZWK89G2vdpK969eoxbdq0uO222+Lbb7+N2rVrx2677RaXXHJJ0UObqRiODQAbG0OjAAAAAACQ1TLzKHgAAAAAAPiNEoQDAAAAAJDVfndjhBcWFsbcuXOjZs2akUqlKrocAAAAAADWU5Ik8d1338Xmm28elSqt+b7v310QPnfu3GjatGlFlwEAAAAAQIZ89tln0aRJkzVO/90F4TVr1oyIn3ZMrVq1KrgaAAAAAADW15IlS6Jp06ZFue+a/O6C8NXDodSqVUsQDgAAAACQBdY1DLaHZQIAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWe13N0Y4AAAAAFSUgoKCWLlyZUWXARuNnJycqFy58gYvRxAOAAAAAOUsSZKYP39+fPvttxVdCmx0Ntlkk2jYsOE6H4i5NoJwAAAAAChnq0Pw+vXrR7Vq1TYo0IPfiyRJ4vvvv48FCxZERESjRo3We1mCcAAAAAAoRwUFBUUh+GabbVbR5cBGpWrVqhERsWDBgqhfv/56D5PiYZkAAAAAUI5WjwlerVq1Cq4ENk6rPzsbMr6+IBwAAAAAfgWGQ4H1k4nPjiAcAAAAAICsJggHAAAAACCreVgmAAAAAFSQTp1+3fVNm/brri/TPvnkk2jZsmVMnz49dthhh9/kssuzxkzo379/fPvttzF69OiKLuVX5Y5wAAAAAKBUCxYsiOOPPz6aNWsWeXl50bBhw9hrr71iypQpRX1SqdTvKlSdOXNmHH300dGkSZPIy8uLli1bxhFHHBHTyum3DHfccUdssskmGVveddddF3fccUfGlrexcEc4AAAAAFCqgw46KFauXBl33nlnbLHFFvHll1/G888/H19//XVFl7beVqxYEbm5ues177Rp02L33XePtm3bxi233BKtW7eO7777Lv7zn//EKaecEhMnTsxwtZlTUFAQqVQqateuXdGlVAh3hAMAAAAAJXz77bfx8ssvx+WXXx49evSI5s2bR+fOnePMM8+MfffdNyIiWrRoERERBx54YKRSqaL3s2bNigMOOCAaNGgQNWrUiD/84Q/x3HPPFVt+ixYt4tJLL40BAwZEzZo1o1mzZjFy5Mhiff773/9Ghw4dIj8/Pzp16hTTp08vNr2goCCOOeaYaNmyZVStWjW22WabuO6664r16d+/f/Tp0yeGDx8em2++eWy99dZlWvYvJUkS/fv3j1atWsWkSZNi3333jS233DJ22GGHOO+88+I///lPqfOVdkf36NGjI5VKFb1/8803o0ePHlGzZs2oVatWdOzYMaZNmxYTJkyIo48+OhYvXhypVCpSqVScf/75EfFToH/aaadF48aNo3r16tGlS5eYMGFCifU+9dRT0aZNm8jLy4tPP/20aH+stttuu8VJJ50Up512WtSpUycaNmxYtI7V3n///fjjH/8Y+fn50aZNm3juuec2ur8EcEc4AAAAAFBCjRo1okaNGjF69OjYaaedIi8vr0SfqVOnRv369WPUqFGx9957R+XKlSMiYunSpdG7d++4+OKLIz8/P+68887Yf//944MPPohmzZoVzX/11VfHRRddFP/4xz/ikUceiRNOOCF23XXXaN26dSxbtiz222+/6NmzZ9xzzz0xe/bs+Pvf/15s/YWFhdGkSZN46KGHom7dujF58uQYOHBgNGrUKA499NCifs8//3zUqlUrxo8fH0mSlGnZvzRjxox455134r777otKlUreX7whw5f85S9/iQ4dOsRNN90UlStXjhkzZkROTk5069YtRowYEeeee2588MEHEfHTcYmIOProo+OTTz6JBx54IDbffPN4/PHHY++994633347WrVqFRER33//fQwfPjxuvfXW2GyzzaJ+/fqlrv/OO++MoUOHxmuvvRZTpkyJ/v37x8477xy9evWKwsLC6NOnTzRr1ixee+21+O677+KUU05Z722tKIJwAAAAAKCEKlWqxB133BHHHXdc3HzzzbHjjjtG9+7d4/DDD4/27dtHRES9evUi4qcQuGHDhkXzbr/99rH99tsXvb/44ovj8ccfjyeeeCJOPPHEovbevXvH4MGDIyLi9NNPj2uvvTYmTJgQrVu3jnvvvTcKCgri9ttvj2rVqsV2220Xn3/+eZxwwglF8+fk5MQFF1xQ9L5ly5YxefLkeOihh4oF4dWrV49bb721aEiUkSNHrnPZv/TRRx9FRETr1q3T35nrMGfOnDj11FOLlr06yI6IqF27dqRSqWL7d9asWXH//ffH559/HptvvnlERAwbNizGjh0bo0aNiksvvTQiIlauXBk33nhjsWNRmvbt28d5551XtO5//etf8fzzz0evXr3i2WefjVmzZsWECROKarjkkkuiV69emdsBvwJDowAAAAAApTrooINi7ty58cQTT8Ree+0VEyZMiB133HGdD1tctmxZnHbaadGmTZvYZJNNokaNGvH+++/HnDlzivVbHahHRFHYu2DBgoiIeO+992L77bePatWqFfXp2rVriXXdfPPN0alTp6hXr17UqFEj/v3vf5dYT7t27YqNC17WZf9ckiRFdWba0KFD49hjj4099tgjLrvsspg1a9Za+7/xxhuRJElsvfXWRXfu16hRIyZOnFhs3tzc3GL7eE1+2adRo0ZFx+GDDz6Ipk2bFgviO3funM7m/SYIwgEAAACANcrPz49evXrFueeeG5MnT47+/fsX3T28Jqeeemo8+uijcckll8SkSZNixowZ0a5du1ixYkWxfjk5OcXep1KpKCwsjIj/HzyvzUMPPRRDhgyJAQMGxLPPPhszZsyIo48+usR6qlevXux9WZb9S6vHFn/vvffSmq9SpUol1rdy5cpi788///x45513Yt99940XXngh2rRpE48//vgal1lYWBiVK1eO119/PWbMmFH0eu+994qNkV61atUyBffrOg7lEf7/2gThAAAAAECZtWnTJpYtW1b0PicnJwoKCor1mTRpUvTv3z8OPPDAaNeuXTRs2DA++eSTtNfz5ptvxg8//FDU9uqrr5ZYT7du3WLw4MHRoUOH2GqrrdZ5N3VZl/1LO+ywQ7Rp0yauvvrqopD457799ttS56tXr1589913xfbZjBkzSvTbeuutY8iQIfHss8/Gn//85xg1alRE/HRX9y/3b4cOHaKgoCAWLFgQW221VbHXz+/czoTWrVvHnDlz4ssvvyxqmzp1akbX8WsQhAMAAAAAJSxatKjoYZJvvfVWzJ49Ox5++OG44oor4oADDijq16JFi3j++edj/vz58c0330RExFZbbRWPPfZYzJgxI958883o27dvqeHx2vTt2zcqVaoUxxxzTLz77rsxZsyYuOqqq4r12WqrrWLatGkxbty4+PDDD+Occ84pU0hblmX/UiqVilGjRsWHH34Yu+66a4wZMyY+/vjjeOutt+KSSy4ptk9+rkuXLlGtWrX4xz/+ETNnzoz77ruv2NAyP/zwQ5x44okxYcKE+PTTT+OVV16JqVOnxrbbbhsRP+3fpUuXxvPPPx8LFy6M77//Prbeeuv4y1/+Ev369YvHHnssZs+eHVOnTo3LL788xowZs87tT0evXr1iyy23jKOOOireeuuteOWVV+Kss84q2icbCw/LBAAAAIAKMm1aRVewZjVq1IguXbrEtddeG7NmzYqVK1dG06ZN47jjjot//OMfRf2uvvrqGDp0aPz73/+Oxo0bxyeffBLXXnttDBgwILp16xZ169aN008/PZYsWZL2+p988skYNGhQdOjQIdq0aROXX355HHTQQUV9Bg0aFDNmzIjDDjssUqlUHHHEETF48OB45plnNnjZpencuXNMmzYtLrnkkjjuuONi4cKF0ahRo+jWrVuMGDGi1Hnq1KkT99xzT5x66qkxcuTI2GOPPeL888+PgQMHRkRE5cqVY9GiRdGvX7/48ssvo27duvHnP/+56CGg3bp1i0GDBsVhhx0WixYtivPOOy/OP//8GDVqVFx88cVxyimnxBdffBGbbbZZdO3aNXr37p3GXl63ypUrx+jRo+PYY4+NP/zhD7HFFlvElVdeGfvvv3/k5+dndF3lKZWsz4A4G7ElS5ZE7dq1Y/HixVGrVq2KLgcAAACALPfjjz/G7Nmzo2XLlhtVcAhr8sorr8Qf//jHmDlzZmy55Zblvr61fYbKmve6IxwAAAAAgDV6/PHHo0aNGtGqVauYOXNm/P3vf4+dd975VwnBM0UQDgAAAADAGn333Xdx2mmnxWeffRZ169aNPfbYI66++uqKListgnAAAAAAANaoX79+0a9fv4ouY4NUqugCAAAAAACgPAnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqVSq6AAAAAAD4veo0stOvur5pA6f9quv7LWnRokWcfPLJcfLJJ0dERCqViscffzz69OlTLuubMGFC9OjRI7755pvYZJNNKnw55WW33XaLHXbYIUaMGFHRpayVO8IBAAAAgDWaP39+/P3vf4+tttoq8vPzo0GDBvHHP/4xbr755vj+++8rurz1Nm/evNhnn30quoyYPn16HHLIIdGgQYPIz8+PrbfeOo477rj48MMPy2V9559/fuywww4ZW95jjz0WF110UcaWV14E4QAAAABAqT7++OPo0KFDPPvss3HppZfG9OnT47nnnoshQ4bEk08+Gc8991yF1pckSaxatWq95m3YsGHk5eVluKL0PPXUU7HTTjvF8uXL495774333nsv7r777qhdu3acc845FVrbuqxcuTIiIurUqRM1a9as4GrWTRAOAAAAAJRq8ODBUaVKlZg2bVoceuihse2220a7du3ioIMOiqeffjr233//or6LFy+OgQMHRv369aNWrVrRs2fPePPNN4umr74T+e67744WLVpE7dq14/DDD4/vvvuuqE+SJHHFFVfEFltsEVWrVo3tt98+HnnkkaLpEyZMiFQqFePGjYtOnTpFXl5eTJo0KWbNmhUHHHBANGjQIGrUqBF/+MMf1hnSp1KpGD16dFFtqVSqxOuOO+4oU10REWPGjImtt946qlatGj169IhPPvlkrev//vvv4+ijj47evXvHE088EXvssUe0bNkyunTpEldddVXccsstpc5X2h3dI0aMiBYtWhTbT507d47q1avHJptsEjvvvHN8+umncccdd8QFF1wQb775ZoltLOvxu/3222OLLbaIvLy8SJIkdtttt6LhZiJ+GoLm0ksvjQEDBkTNmjWjWbNmMXLkyGL1Tp48OXbYYYfIz8+PTp06xejRoyOVSsWMGTPWus82hCAcAAAAAChh0aJF8eyzz8bf/va3qF69eql9UqlURPwUFO+7774xf/78GDNmTLz++uux4447xu677x5ff/11Uf9Zs2bF6NGj46mnnoqnnnoqJk6cGJdddlnR9LPPPjtGjRoVN910U7zzzjsxZMiQ+Otf/xoTJ04stt7TTjsthg8fHu+99160b98+li5dGr17947nnnsupk+fHnvttVfsv//+MWfOnDJt67Bhw2LevHlFr6uuuiqqVasWnTp1KlNdn332Wfz5z3+O3r17x4wZM+LYY4+NM844Y63rHDduXCxcuDBOO+20Uqev73jgq1atij59+kT37t3jrbfeiilTpsTAgQMjlUrFYYcdFqecckpst912Rdt62GGHlfn4zZw5Mx566KF49NFH1xpaX3311dGpU6eYPn16DB48OE444YR4//33IyLiu+++i/333z/atWsXb7zxRlx00UVx+umnr9e2psPDMgEAAACAEmbOnBlJksQ222xTrL1u3brx448/RkTE3/72t7j88svjxRdfjLfffjsWLFhQNNzIVVddFaNHj45HHnkkBg4cGBERhYWFcccddxQNpXHkkUfG888/H5dcckksW7YsrrnmmnjhhReia9euERGxxRZbxMsvvxy33HJLdO/evaiGCy+8MHr16lX0frPNNovtt9++6P3FF18cjz/+eDzxxBNx4oknrnNba9SoETVq1IiIiFdffTXOPvvsuPPOO6Nt27Zlquumm26KLbbYIq699tpIpVKxzTbbxNtvvx2XX375Gtf50UcfRURE69at11lfOpYsWRKLFy+O/fbbL7bccsuIiNh2222LbWuVKlWiYcOGRW0vvPBCmY7fihUr4u6774569eqttYbevXvH4MGDIyLi9NNPj2uvvTYmTJgQrVu3jnvvvTdSqVT8+9//jvz8/GjTpk188cUXcdxxx2V0P/ySIBwAAAAAWKPVd32v9t///jcKCwvjL3/5SyxfvjwiIl5//fVYunRpbLbZZsX6/vDDDzFr1qyi9y1atCg2nnSjRo1iwYIFERHx7rvvxo8//lgs4I74KXzt0KFDsbbVd2qvtmzZsrjgggviqaeeirlz58aqVavihx9+KPMd4avNmTMn+vTpE8OGDYtDDz20zHW99957sdNOOxXbV6tD8zVJkiSt2sqqTp060b9//9hrr72iV69esccee8Shhx4ajRo1WuM8ZT1+zZs3X2cIHhHRvn37ov9PpVLRsGHDouP8wQcfRPv27SM/P7+oT+fOncu8fetLEA4AAAAAlLDVVltFKpUqGtJitS222CIiIqpWrVrUVlhYGI0aNYoJEyaUWM7Ph/jIyckpNi2VSkVhYWHRMiIinn766WjcuHGxfr98qOUvh2o59dRTY9y4cXHVVVfFVlttFVWrVo2DDz44VqxYUYYt/cmyZcviT3/6U3Tt2jUuvPDCYtu2rrrWJ9TeeuutIyLi/fffX2do/nOVKlUqsb7VD65cbdSoUXHSSSfF2LFj48EHH4yzzz47xo8fHzvttFOpyyzr8VvTEDm/tLbjnCRJiV+ulNcvBX5OEP479ItfmJGGadMqugIAAACAX8dmm20WvXr1in/961/xf//3f2sNQXfccceYP39+VKlSpdhDG9PRpk2byMvLizlz5hQbBqUsJk2aFP37948DDzwwIiKWLl26zodV/lySJPHXv/41CgsL4+677y4W1JalrjZt2hQ9eHO1V199da3r3HPPPaNu3bpxxRVXxOOPP15i+rffflvqOOH16tWL+fPnFwuUSxuvu0OHDtGhQ4c488wzo2vXrnHffffFTjvtFLm5uVFQUFCsbyaOX1mtHh5l+fLlRb9ImPYrhG4elgkAAAAAlOrGG2+MVatWRadOneLBBx+M9957Lz744IO455574v3334/KlStHRMQee+wRXbt2jT59+sS4cePik08+icmTJ8fZZ59d5pCzZs2aMWzYsBgyZEjceeedMWvWrJg+fXrccMMNceedd6513q222ioee+yxmDFjRrz55pvRt2/fojuQy+L888+P5557Lm655ZZYunRpzJ8/P+bPnx8//PBDmeoaNGhQzJo1K4YOHRoffPBB3HfffXHHHXesdZ3Vq1ePW2+9NZ5++un405/+FM8991x88sknMW3atDjttNNi0KBBpc632267xVdffRVXXHFFzJo1K2644YZ45plniqbPnj07zjzzzJgyZUp8+umn8eyzz8aHH35YNE54ixYtYvbs2TFjxoxYuHBhLF++PCPHr6xWH5uBAwfGe++9V3Qnf0TJYXgyyR3hAAAAAFBBpg38bf/5+ZZbbhnTp0+PSy+9NM4888z4/PPPIy8vL9q0aRPDhg0reiBiKpWKMWPGxFlnnRUDBgyIr776Kho2bBi77rprNGjQoMzru+iii6J+/foxfPjw+Pjjj2OTTTaJHXfcMf7xj3+sdb5rr702BgwYEN26dYu6devG6aefHkuWLCnzeidOnBhLly6Nbt26FWsfNWpU9O/ff511NWvWLB599NEYMmRI3HjjjdG5c+e49NJLY8CAAWtd7wEHHBCTJ0+O4cOHR9++fWPJkiXRtGnT6NmzZ1x88cWlzrPtttvGjTfeGJdeemlcdNFFcdBBB8WwYcNi5MiRERFRrVq1eP/99+POO++MRYsWRaNGjeLEE0+M448/PiIiDjrooHjssceiR48e8e233xZtYyaOX1nUqlUrnnzyyTjhhBNihx12iHbt2sW5554bffv2LTZueKalkl9jAJbfkCVLlkTt2rVj8eLFUatWrYoup0IYGmX9GRoFAAAASNePP/4Ys2fPjpYtW5Zr0Acbq3vvvTeOPvroWLx4cbGx51db22eorHmvO8IBAAAAAPjV3HXXXbHFFltE48aN480334zTTz89Dj300FJD8EwRhAMAAAAA8KuZP39+nHvuuTF//vxo1KhRHHLIIXHJJZeU6zoF4QAAAAAA/GpOO+20OO20037VdVb6VdcGAAAAAAC/MkE4AAAAAPwKCgsLK7oE2Chl4rNjaBQAAAAAKEe5ublRqVKlmDt3btSrVy9yc3MjlUpVdFnwm5ckSaxYsSK++uqrqFSpUuTm5q73sgThAAAAAFCOKlWqFC1btox58+bF3LlzK7oc2OhUq1YtmjVrFpUqrf8AJ4JwAAAAAChnubm50axZs1i1alUUFBRUdDmw0ahcuXJUqVJlg/+KQhAOAAAAAL+CVCoVOTk5kZOTU9GlwO+Oh2UCAAAAAJDVKjwIv/HGG6Nly5aRn58fHTt2jEmTJq2xb//+/SOVSpV4bbfddr9ixQAAAAAAbEwqNAh/8MEH4+STT46zzjorpk+fHrvsskvss88+MWfOnFL7X3fddTFv3ryi12effRZ16tSJQw455FeuHAAAAACAjUUqSZKkolbepUuX2HHHHeOmm24qatt2222jT58+MXz48HXOP3r06Pjzn/8cs2fPjubNm5faZ/ny5bF8+fKi90uWLImmTZvG4sWLo1atWhu+ERuhTp0quoKN17RpFV0BAAAAALDakiVLonbt2uvMeyvsjvAVK1bE66+/HnvuuWex9j333DMmT55cpmXcdtttsccee6wxBI+IGD58eNSuXbvo1bRp0w2qGwAAAACAjUuFBeELFy6MgoKCaNCgQbH2Bg0axPz589c5/7x58+KZZ56JY489dq39zjzzzFi8eHHR67PPPtugugEAAAAA2LhUqegCUqlUsfdJkpRoK80dd9wRm2yySfTp02et/fLy8iIvL29DSgQAAAAAYCNWYXeE161bNypXrlzi7u8FCxaUuEv8l5Ikidtvvz2OPPLIyM3NLc8yAQAAAADYyFVYEJ6bmxsdO3aM8ePHF2sfP358dOvWba3zTpw4MWbOnBnHHHNMeZYIAAAAAEAWqNChUYYOHRpHHnlkdOrUKbp27RojR46MOXPmxKBBgyLip/G9v/jii7jrrruKzXfbbbdFly5dom3bthVRNgAAAAAAG5EKDcIPO+ywWLRoUVx44YUxb968aNu2bYwZMyaaN28eET89EHPOnDnF5lm8eHE8+uijcd1111VEyQAAAAAAbGRSSZIkFV3Er2nJkiVRu3btWLx4cdSqVauiy6kQnTpVdAUbr2nTKroCAPh1dRrpB4f1NW2gHxwAAKC8lTXvrbAxwgEAAAAA4NcgCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKtVqegCAAB+DZ06VXQFG6mBFV0AAADAhnNHOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNWqVHQBsDHpNLJTRZewUZo2cFpFlwAAAADA75g7wgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsVqWiCwCAdek0slNFl7DRmjZwWkWXAAAAABXOHeEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFar8CD8xhtvjJYtW0Z+fn507NgxJk2atNb+y5cvj7POOiuaN28eeXl5seWWW8btt9/+K1ULAAAAAMDGpkpFrvzBBx+Mk08+OW688cbYeeed45Zbbol99tkn3n333WjWrFmp8xx66KHx5Zdfxm233RZbbbVVLFiwIFatWvUrVw4AAAAAwMaiQoPwa665Jo455pg49thjIyJixIgRMW7cuLjpppti+PDhJfqPHTs2Jk6cGB9//HHUqVMnIiJatGix1nUsX748li9fXvR+yZIlmdsAAAAAAAB+8ypsaJQVK1bE66+/HnvuuWex9j333DMmT55c6jxPPPFEdOrUKa644opo3LhxbL311jFs2LD44Ycf1rie4cOHR+3atYteTZs2zeh2AAAAAADw21Zhd4QvXLgwCgoKokGDBsXaGzRoEPPnzy91no8//jhefvnlyM/Pj8cffzwWLlwYgwcPjq+//nqN44SfeeaZMXTo0KL3S5YsEYYDAAAAAPyOVOjQKBERqVSq2PskSUq0rVZYWBipVCruvffeqF27dkT8NLzKwQcfHDfccENUrVq1xDx5eXmRl5eX+cIBAAAAANgoVNjQKHXr1o3KlSuXuPt7wYIFJe4SX61Ro0bRuHHjohA8ImLbbbeNJEni888/L9d6AQAAAADYOFVYEJ6bmxsdO3aM8ePHF2sfP358dOvWrdR5dt5555g7d24sXbq0qO3DDz+MSpUqRZMmTcq1XgAAAAAANk4VFoRHRAwdOjRuvfXWuP322+O9996LIUOGxJw5c2LQoEER8dP43v369Svq37dv39hss83i6KOPjnfffTdeeumlOPXUU2PAgAGlDosCAAAAAAAVOkb4YYcdFosWLYoLL7ww5s2bF23bto0xY8ZE8+bNIyJi3rx5MWfOnKL+NWrUiPHjx8f//d//RadOnWKzzTaLQw89NC6++OKK2gQAAAAAAH7jKvxhmYMHD47BgweXOu2OO+4o0da6desSw6kAAAAAAMCaVOjQKAAAAAAAUN4E4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZrUpFFwDwe9KpU0VXsJEaWNEFAAAAABszd4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZDVBOAAAAAAAWU0QDgAAAABAVhOEAwAAAACQ1QThAAAAAABkNUE4AAAAAABZTRAOAAAAAEBWE4QDAAAAAJDVBOEAAAAAAGQ1QTgAAAAAAFlNEA4AAAAAQFYThAMAAAAAkNUE4QAAAAAAZLUKD8JvvPHGaNmyZeTn50fHjh1j0qRJa+w7YcKESKVSJV7vv//+r1gxAAAAAAAbkwoNwh988ME4+eST46yzzorp06fHLrvsEvvss0/MmTNnrfN98MEHMW/evKJXq1atfqWKAQAAAADY2FRoEH7NNdfEMcccE8cee2xsu+22MWLEiGjatGncdNNNa52vfv360bBhw6JX5cqV19h3+fLlsWTJkmIvAAAAAAB+PyosCF+xYkW8/vrrseeeexZr33PPPWPy5MlrnbdDhw7RqFGj2H333ePFF19ca9/hw4dH7dq1i15Nmzbd4NoBAAAAANh4VFgQvnDhwigoKIgGDRoUa2/QoEHMnz+/1HkaNWoUI0eOjEcffTQee+yx2GabbWL33XePl156aY3rOfPMM2Px4sVFr88++yyj2wEAAAAAwG9blYouIJVKFXufJEmJttW22Wab2GabbYred+3aNT777LO46qqrYtdddy11nry8vMjLy8tcwQAAAAAAbFQq7I7wunXrRuXKlUvc/b1gwYISd4mvzU477RQfffRRpssDAAAAACBLVFgQnpubGx07dozx48cXax8/fnx069atzMuZPn16NGrUKNPlAQAAAACQJSp0aJShQ4fGkUceGZ06dYquXbvGyJEjY86cOTFo0KCI+Gl87y+++CLuuuuuiIgYMWJEtGjRIrbbbrtYsWJF3HPPPfHoo4/Go48+WpGbAQAAAADAb1iFBuGHHXZYLFq0KC688MKYN29etG3bNsaMGRPNmzePiIh58+bFnDlzivqvWLEihg0bFl988UVUrVo1tttuu3j66aejd+/eFbUJAAAAAAD8xlX4wzIHDx4cgwcPLnXaHXfcUez9aaedFqeddtqvUBUAAAAAANmiwsYIBwAAAACAX4MgHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgqwnCAQAAAADIaoJwAAAAAACymiAcAAAAAICsJggHAAAAACCrCcIBAAAAAMhqgnAAAAAAALKaIBwAAAAAgKwmCAcAAAAAIKsJwgEAAAAAyGqCcAAAAAAAspogHAAAAACArCYIBwAAAAAgq6UdhM+ZMyeSJCnRniRJzJkzJyNFAQAAAABApqQdhLds2TK++uqrEu1ff/11tGzZMiNFAQAAAABApqQdhCdJEqlUqkT70qVLIz8/PyNFAQAAAABAplQpa8ehQ4dGREQqlYpzzjknqlWrVjStoKAgXnvttdhhhx0yXiAAAAAA8PvQaWSnii5hozRt4LSKLuE3r8xB+PTp0yPipzvC33777cjNzS2alpubG9tvv30MGzYs8xUCAAAAAMAGKHMQ/uKLL0ZExNFHHx3XXXdd1KpVq9yKAgAAAACATClzEL7aqFGjyqMOAAAAAAAoF2kH4cuWLYvLLrssnn/++ViwYEEUFhYWm/7xxx9nrDgAAAAAANhQaQfhxx57bEycODGOPPLIaNSoUaRSqfKoCwAAAAAAMiLtIPyZZ56Jp59+OnbeeefyqAcAAAAAADKqUrozbLrpplGnTp3yqAUAAAAAADIu7SD8oosuinPPPTe+//778qgHAAAAAAAyKu2hUa6++uqYNWtWNGjQIFq0aBE5OTnFpr/xxhsZKw4AAAAAADZU2kF4nz59yqEMAAAAAAAoH2kH4eedd1551AEAAAAAAOUi7THCIyK+/fbbuPXWW+PMM8+Mr7/+OiJ+GhLliy++yGhxAAAAAACwodK+I/ytt96KPfbYI2rXrh2ffPJJHHfccVGnTp14/PHH49NPP4277rqrPOoEAAAAAID1kvYd4UOHDo3+/fvHRx99FPn5+UXt++yzT7z00ksZLQ4AAAAAADZU2kH41KlT4/jjjy/R3rhx45g/f35GigIAAAAAgExJOwjPz8+PJUuWlGj/4IMPol69ehkpCgAAAAAAMiXtIPyAAw6ICy+8MFauXBkREalUKubMmRNnnHFGHHTQQRkvEAAAAAAANkTaQfhVV10VX331VdSvXz9++OGH6N69e2y11VZRs2bNuOSSS8qjRgAAAAAAWG9V0p2hVq1a8fLLL8cLL7wQb7zxRhQWFsaOO+4Ye+yxR3nUBwAAAAAAGyTtIHy1nj17Rs+ePTNZCwAAAAAAZFyZgvB//vOfMXDgwMjPz49//vOfa+170kknZaQwAAAAAADIhDIF4ddee2385S9/ifz8/Lj22mvX2C+VSgnCAQAAAAD4TSlTED579uxS/x8AAAAAAH7rKlV0AQAAAAAAUJ7SDsIPPvjguOyyy0q0X3nllXHIIYdkpCgAAAAAAMiUtIPwiRMnxr777luife+9946XXnopI0UBAAAAAECmpB2EL126NHJzc0u05+TkxJIlSzJSFAAAAAAAZEraQXjbtm3jwQcfLNH+wAMPRJs2bTJSFAAAAAAAZEqVdGc455xz4qCDDopZs2ZFz549IyLi+eefj/vvvz8efvjhjBcIAAAAAAAbIu0g/E9/+lOMHj06Lr300njkkUeiatWq0b59+3juueeie/fu5VEjAAAAAACst7SD8IiIfffdt9QHZgIAAAAAwG9N2mOEAwAAAADAxqRMd4TXqVMnPvzww6hbt25suummkUql1tj366+/zlhxAAAAAACwocoUhF977bVRs2bNiIgYMWJEedYDAAAAAAAZVaYg/M0334yDDz448vLyomXLltGtW7eoUmW9hhcHAAAAAIBfVZnGCL/++utj6dKlERHRo0cPw58AAAAAALDRKNNt3S1atIh//vOfseeee0aSJDFlypTYdNNNS+276667ZrRAAAAAAADYEGUKwq+88soYNGhQDB8+PFKpVBx44IGl9kulUlFQUJDRAgEAAAAAYEOUKQjv06dP9OnTJ5YuXRq1atWKDz74IOrXr1/etQEAAAAAwAYr0xjhQ4cOjWXLlkWNGjXixRdfjJYtW0bt2rVLfQEAAAAAwG9J2g/L7Nmzp4dlAgAAAACw0fCwTAAAAAAAspqHZQIAAAAAkNU8LBMAAADgZzqN7FTRJWyUpg2cVtElAKxRmYLw1X7+sMwqVdKaFQAAAAAAKkSZHpb5c927d49PP/00zj777DjiiCNiwYIFERExduzYeOeddzJeIAAAAAAAbIi0g/CJEydGu3bt4rXXXovHHnssli5dGhERb731Vpx33nkZLxAAAAAAADZE2kH4GWecERdffHGMHz8+cnNzi9p79OgRU6ZMyWhxAAAAAACwodIOwt9+++048MADS7TXq1cvFi1alJGiAAAAAAAgU9IOwjfZZJOYN29eifbp06dH48aNM1IUAAAAAABkStpBeN++feP000+P+fPnRyqVisLCwnjllVdi2LBh0a9fv/KoEQAAAAAA1lvaQfgll1wSzZo1i8aNG8fSpUujTZs2seuuu0a3bt3i7LPPLo8aAQAAAABgvVVJd4acnJy4995748ILL4zp06dHYWFhdOjQIVq1alUe9QEAAAAAwAZJOwhfbcstt4wtttgiIiJSqVTGCgIAAAAAgExKe2iUiIi77ror2rVrF1WrVo2qVatG+/bt4+677850bQAAAAAAsMHSviP8mmuuiXPOOSdOPPHE2HnnnSNJknjllVdi0KBBsXDhwhgyZEh51AkAAAAAAOsl7SD8+uuvj5tuuin69etX1HbAAQfEdtttF+eff74gHAAAAACA35S0h0aZN29edOvWrUR7t27dYt68eRkpCgAAAAAAMiXtIHyrrbaKhx56qET7gw8+GK1atcpIUQAAAAAAkClpD41ywQUXxGGHHRYvvfRS7LzzzpFKpeLll1+O559/vtSAHAAAAAAAKlLad4QfdNBB8dprr0XdunVj9OjR8dhjj0XdunXjv//9bxx44IHlUSMAAAAAAKy3tO8Ij4jo2LFj3HPPPZmuBQAAAAAAMq7Md4TPnTs3hg0bFkuWLCkxbfHixXHqqafGl19+mdHiAAAAAABgQ5U5CL/mmmtiyZIlUatWrRLTateuHd99911cc801GS0OAAAAAAA2VJmD8LFjx0a/fv3WOL1fv37x1FNPZaQoAAAAAADIlDKPET579uxo1qzZGqc3adIkPvnkk0zUBAAA8LvXaWSnii5hozRt4LSKLgEA+A0q8x3hVatWXWvQ/cknn0TVqlUzURMAAAAAAGRMmYPwLl26xN13373G6XfddVd07tw57QJuvPHGaNmyZeTn50fHjh1j0qRJZZrvlVdeiSpVqsQOO+yQ9joBAAAAAPj9KHMQPmzYsBg1alQMGzYsvvzyy6L2L7/8Mk455ZS44447YtiwYWmt/MEHH4yTTz45zjrrrJg+fXrssssusc8++8ScOXPWOt/ixYujX79+sfvuu6e1PgAAAAAAfn/KHIT36NEjbrjhhvjXv/4Vm2++eWy66aZRp06d2HzzzeOGG26I66+/Pnr27JnWyq+55po45phj4thjj41tt902RowYEU2bNo2bbrpprfMdf/zx0bdv3+jates617F8+fJYsmRJsRcAAAAAAL8fZX5YZsRPAfR+++0XDz30UMycOTOSJImtt946Dj744GjSpElaK16xYkW8/vrrccYZZxRr33PPPWPy5MlrnG/UqFExa9asuOeee+Liiy9e53qGDx8eF1xwQVq1AQAAAACQPdIKwiMiGjduHEOGDNngFS9cuDAKCgqiQYMGxdobNGgQ8+fPL3Wejz76KM4444yYNGlSVKlSttLPPPPMGDp0aNH7JUuWRNOmTde/cAAAAAAANippB+GZlkqlir1PkqREW0REQUFB9O3bNy644ILYeuuty7z8vLy8yMvL2+A6AQAAAADYOFVYEF63bt2oXLlyibu/FyxYUOIu8YiI7777LqZNmxbTp0+PE088MSIiCgsLI0mSqFKlSjz77LNpj1EOAAAAAED2K/PDMjMtNzc3OnbsGOPHjy/WPn78+OjWrVuJ/rVq1Yq33347ZsyYUfQaNGhQbLPNNjFjxozo0qXLr1U6AAAAAAAbkQodGmXo0KFx5JFHRqdOnaJr164xcuTImDNnTgwaNCgifhrf+4svvoi77rorKlWqFG3bti02f/369SM/P79EOwAAAAAArFahQfhhhx0WixYtigsvvDDmzZsXbdu2jTFjxkTz5s0jImLevHkxZ86ciiwRAAAAAICNXNpB+KabblrqwyxTqVTk5+fHVlttFf3794+jjz66TMsbPHhwDB48uNRpd9xxx1rnPf/88+P8888v03oAAAAAAPh9SjsIP/fcc+OSSy6JffbZJzp37hxJksTUqVNj7Nix8be//S1mz54dJ5xwQqxatSqOO+648qgZAAAAAADKLO0g/OWXX46LL764aBzv1W655ZZ49tln49FHH4327dvHP//5T0E4AAAAAAAVrlK6M4wbNy722GOPEu277757jBs3LiIievfuHR9//PGGVwcAAAAAABso7SC8Tp068eSTT5Zof/LJJ6NOnToREbFs2bKoWbPmhlcHAAAAAAAbKO2hUc4555w44YQT4sUXX4zOnTtHKpWK//73vzFmzJi4+eabIyJi/Pjx0b1794wXCwAAAAAA6Uo7CD/uuOOiTZs28a9//Ssee+yxSJIkWrduHRMnToxu3bpFRMQpp5yS8UIBAAAAAGB9pB2ER0TsvPPOsfPOO2e6FgAAAAAAyLj1CsILCwtj5syZsWDBgigsLCw2bdddd81IYQAAAAAAkAlpB+Gvvvpq9O3bNz799NNIkqTYtFQqFQUFBRkrDgAAAAAANlTaQfigQYOiU6dO8fTTT0ejRo0ilUqVR10AAAAAAJARaQfhH330UTzyyCOx1VZblUc9AAAAAACQUZXSnaFLly4xc+bM8qgFAAAAAAAyLu07wv/v//4vTjnllJg/f360a9cucnJyik1v3759xooDAAAAAIANlXYQftBBB0VExIABA4raUqlUJEniYZkAAAAAAPzmpB2Ez549uzzqAAAAAACAcpF2EN68efPyqAMAAAAAAMpFmYLwJ554IvbZZ5/IycmJJ554Yq19//SnP2WkMAAAAAAAyIQyBeF9+vSJ+fPnR/369aNPnz5r7GeMcAAAAAAAfmvKFIQXFhaW+v8AAAAAAPBbVymdzitXrowePXrEhx9+WF71AAAAAABA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Pv/88/KqBwAAAAAAMiqtILxSpUrRqlWrWLRoUXnVAwAAAAAAGZX2GOFXXHFFnHrqqfG///2vPOoBAAAAAICMSmuM8IiIv/71r/H999/H9ttvH7m5uVG1atVi07/++uuMFQcAAAAAABsq7SB8xIgR5VAGAAAAAACUj7SD8KOOOqo86gAAAAAAgHKR9hjhERGzZs2Ks88+O4444ohYsGBBRESMHTs23nnnnYwWBwAAAAAAGyrtIHzixInRrl27eO211+Kxxx6LpUuXRkTEW2+9Feedd17GCwQAAAAAgA2RdhB+xhlnxMUXXxzjx4+P3NzcovYePXrElClTMlocAAAAAABsqLSD8LfffjsOPPDAEu316tWLRYsWZaQoAAAAAADIlLSD8E022STmzZtXon369OnRuHHjjBQFAAAAAACZknYQ3rdv3zj99NNj/vz5kUqlorCwMF555ZUYNmxY9OvXL+0CbrzxxmjZsmXk5+dHx44dY9KkSWvs+/LLL8fOO+8cm222WVStWjVat24d1157bdrrBAAAAADg96NKujNccskl0b9//2jcuHEkSRJt2rSJgoKC6Nu3b5x99tlpLevBBx+Mk08+OW688cbYeeed45Zbbol99tkn3n333WjWrFmJ/tWrV48TTzwx2rdvH9WrV4+XX345jj/++KhevXoMHDgw3U0BAAAAAOB3IO0gPCcnJ+6999648MILY/r06VFYWBgdOnSIVq1apb3ya665Jo455pg49thjIyJixIgRMW7cuLjpppti+PDhJfp36NAhOnToUPS+RYsW8dhjj8WkSZPWGIQvX748li9fXvR+yZIladcJAAAAAMDGK+2hUSZOnBgREVtuuWUcfPDBceihh65XCL5ixYp4/fXXY8899yzWvueee8bkyZPLtIzp06fH5MmTo3v37mvsM3z48Khdu3bRq2nTpmnXCgAAAADAxivtILxXr17RrFmzOOOMM+J///vfeq944cKFUVBQEA0aNCjW3qBBg5g/f/5a523SpEnk5eVFp06d4m9/+1vRHeWlOfPMM2Px4sVFr88++2y9awYAAAAAYOOTdhA+d+7cOO2002LSpEnRvn37aN++fVxxxRXx+eefr1cBqVSq2PskSUq0/dKkSZNi2rRpcfPNN8eIESPi/vvvX2PfvLy8qFWrVrEXAAAAAAC/H2kH4XXr1o0TTzwxXnnllZg1a1Ycdthhcdddd0WLFi2iZ8+eaS2ncuXKJe7+XrBgQYm7xH+pZcuW0a5duzjuuONiyJAhcf7556e7GQAAAAAA/E6kHYT/XMuWLeOMM86Iyy67LNq1a1c0fnhZ5ObmRseOHWP8+PHF2sePHx/dunUr83KSJCn2MEwAAAAAAPi5Kus74yuvvBL33ntvPPLII/Hjjz/Gn/70p7j00kvTWsbQoUPjyCOPjE6dOkXXrl1j5MiRMWfOnBg0aFBE/DS+9xdffBF33XVXRETccMMN0axZs2jdunVERLz88stx1VVXxf/93/+t72YAAAAAAJDl0g7C//GPf8T9998fc+fOjT322CNGjBgRffr0iWrVqqW98sMOOywWLVoUF154YcybNy/atm0bY8aMiebNm0dExLx582LOnDlF/QsLC+PMM8+M2bNnR5UqVWLLLbeMyy67LI4//vi01w0AAAAAwO9D2kH4hAkT/l979x1mRXX/D/yzoCwdpAgoiChFEFEEC6BiQVEjamIhalRiJSCIPUQNWGIvqFExRCSxYq+ooLGgKCiCJNIVRA3EXjB+UeD8/vC3N9zdBZbmwvh6Pc8+z965Z2bOzJ1z5sz7zr03zj777OjZs2fUq1cv77nJkyfHDjvssErL69OnT/Tp06fU50aMGJH3uF+/fu7+BgAAAABglaxyED5u3Li8x1999VXcfffd8de//jXefvvtWLJkyVqrHAAAAAAArKnV/rHMf/zjH/Gb3/wmGjVqFDfddFMceOCB8eabb67NugEAAAAAwBpbpTvCP/zwwxgxYkQMHz48vv322zjyyCPjhx9+iIceeijatGmzruoIAAAAAACrrcx3hB944IHRpk2bmDp1atx0003x73//O2666aZ1WTcAAAAAAFhjZb4jfPTo0dG/f//43e9+Fy1atFiXdQIAAAAAgLWmzHeEjx07Nr755pvo2LFj7LLLLvHnP/85Pvnkk3VZNwAAAAAAWGNlDsI7deoUw4YNi/nz58epp54a9913X2y++eaxdOnSGDNmTHzzzTfrsp4AAAAAALBayhyEF6latWqccMIJ8corr8Q///nPOOuss+KKK66ITTfdNA4++OB1UUcAAAAAAFhtqxyEL6tVq1Zx1VVXxYcffhj33nvv2qoTAAAAAACsNWsUhBepWLFiHHroofH444+vjcUBAAAAAMBas1aCcAAAAAAAWF8JwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmVbuQfgtt9wSzZo1i8qVK0eHDh1i7Nixyy378MMPx7777hv169ePmjVrRqdOneLZZ5/9CWsLAAAAAMCGplyD8JEjR8aAAQPi/PPPj0mTJsXuu+8eBxxwQMybN6/U8i+//HLsu+++MWrUqJg4cWLstdde0aNHj5g0adJPXHMAAAAAADYU5RqEX3fddXHiiSfGSSedFK1bt44hQ4ZEkyZN4tZbby21/JAhQ+Lcc8+NnXbaKVq0aBGXXXZZtGjRIp544omfuOYAAAAAAGwoyi0I//7772PixImx33775U3fb7/9Yty4cWVaxtKlS+Obb76JOnXqLLfMokWL4uuvv877AwAAAADg56PcgvBPP/00lixZEg0aNMib3qBBg1iwYEGZlnHttdfGt99+G0ceeeRyy1x++eVRq1at3F+TJk3WqN4AAAAAAGxYyv3HMgsKCvIep5RKTCvNvffeG4MHD46RI0fGpptuutxyAwcOjK+++ir398EHH6xxnQEAAAAA2HBsVF4rrlevXlSsWLHE3d8ff/xxibvEixs5cmSceOKJ8cADD0S3bt1WWLawsDAKCwvXuL4AAAAAAGyYyu2O8EqVKkWHDh1izJgxedPHjBkTnTt3Xu589957b/Tq1Svuueee+MUvfrGuqwkAAAAAwAau3O4Ij4g488wz49hjj42OHTtGp06d4i9/+UvMmzcvevfuHRE/fq3JRx99FH//+98j4scQ/Ljjjosbbrghdt1119zd5FWqVIlatWqV23YAAAAAALD+KtcgvGfPnvHZZ5/FxRdfHPPnz4+2bdvGqFGjomnTphERMX/+/Jg3b16u/G233RaLFy+Ovn37Rt++fXPTjz/++BgxYsRPXX0AAAAAADYA5RqER0T06dMn+vTpU+pzxcPtF198cd1XCAAAAACATCm37wgHAAAAAICfgiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKZtVN4VAAAAAIAs6dixvGuwATulvCtAVrkjHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATNuovCsAAAAArBsdO5Z3DTZQp5R3BQBY29wRDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwThAMAAAAAkGmCcAAAAAAAMk0QDgAAAABApgnCAQAAAADINEE4AAAAAACZJggHAAAAACDTBOEAAAAAAGSaIBwAAAAAgEwr9yD8lltuiWbNmkXlypWjQ4cOMXbs2OWWnT9/fhx99NHRqlWrqFChQgwYMOCnqygAAAAAABukcg3CR44cGQMGDIjzzz8/Jk2aFLvvvnsccMABMW/evFLLL1q0KOrXrx/nn39+bL/99j9xbQEAAAAA2BCVaxB+3XXXxYknnhgnnXRStG7dOoYMGRJNmjSJW2+9tdTyW265Zdxwww1x3HHHRa1atX7i2gIAAAAAsCEqtyD8+++/j4kTJ8Z+++2XN32//faLcePGrbX1LFq0KL7++uu8PwAAAAAAfj7KLQj/9NNPY8mSJdGgQYO86Q0aNIgFCxastfVcfvnlUatWrdxfkyZN1tqyAQAAAABY/5X7j2UWFBTkPU4plZi2JgYOHBhfffVV7u+DDz5Ya8sGAAAAAGD9t1F5rbhevXpRsWLFEnd/f/zxxyXuEl8ThYWFUVhYuNaWBwAAAADAhqXc7givVKlSdOjQIcaMGZM3fcyYMdG5c+dyqhUAAAAAAFlTbneER0SceeaZceyxx0bHjh2jU6dO8Ze//CXmzZsXvXv3jogfv9bko48+ir///e+5eSZPnhwREQsXLoxPPvkkJk+eHJUqVYo2bdqUxyYAAAAAALCeK9cgvGfPnvHZZ5/FxRdfHPPnz4+2bdvGqFGjomnTphERMX/+/Jg3b17ePO3bt8/9P3HixLjnnnuiadOmMXfu3J+y6gAAAAAAbCDKNQiPiOjTp0/06dOn1OdGjBhRYlpKaR3XCAAAAACALCm37wgHAAAAAICfgiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABkmiAcAAAAAIBME4QDAAAAAJBpgnAAAAAAADJNEA4AAAAAQKYJwgEAAAAAyDRBOAAAAAAAmSYIBwAAAAAg0wThAAAAAABk2kblXQEAACDbOnYs7xpsoE4p7woAAGSHO8IBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZFq5B+G33HJLNGvWLCpXrhwdOnSIsWPHrrD8Sy+9FB06dIjKlSvHVlttFUOHDv2JagoAAAAAwIaoXIPwkSNHxoABA+L888+PSZMmxe677x4HHHBAzJs3r9Tyc+bMiQMPPDB23333mDRpUvzhD3+I/v37x0MPPfQT1xwAAAAAgA1FuQbh1113XZx44olx0kknRevWrWPIkCHRpEmTuPXWW0stP3To0Nhiiy1iyJAh0bp16zjppJPihBNOiGuuueYnrjkAAAAAABuKjcprxd9//31MnDgxfv/73+dN32+//WLcuHGlzvPaa6/Ffvvtlzete/fucfvtt8cPP/wQG2+8cYl5Fi1aFIsWLco9/uqrryIi4uuvv17TTdhgLVlS3jXYgH1n562On3N7K077W03a3mrT/v5H+1tN2t9q0/7+R/tbTdrfatH28ml/q0n7Wy3a3/9oe2tA+1stP+f2V7TtKaUVliu3IPzTTz+NJUuWRIMGDfKmN2jQIBYsWFDqPAsWLCi1/OLFi+PTTz+NRo0alZjn8ssvj4suuqjE9CZNmqxB7fnZGlDeFdgw1RpQq7yrwIZuQHlXYMOl/bHGBpR3BTZc2h9rbEB5V2DDpO2xVgwo7wpsmLQ/1ooB5V2BDZP2F/HNN99ErVrL3w/lFoQXKSgoyHucUioxbWXlS5teZODAgXHmmWfmHi9dujQ+//zzqFu37grXAxuSr7/+Opo0aRIffPBB1KxZs7yrAz8r2h+UD20Pyo/2B+VH+4Pyo/2tv1JK8c0338Rmm222wnLlFoTXq1cvKlasWOLu748//rjEXd9FGjZsWGr5jTbaKOrWrVvqPIWFhVFYWJg3rXbt2qtfcViP1axZU2cM5UT7g/Kh7UH50f6g/Gh/UH60v/XTiu4EL1JuP5ZZqVKl6NChQ4wZMyZv+pgxY6Jz586lztOpU6cS5UePHh0dO3Ys9fvBAQAAAACg3ILwiIgzzzwz/vrXv8bw4cNj2rRpccYZZ8S8efOid+/eEfHj15ocd9xxufK9e/eO999/P84888yYNm1aDB8+PG6//fY4++yzy2sTAAAAAABYz5Xrd4T37NkzPvvss7j44otj/vz50bZt2xg1alQ0bdo0IiLmz58f8+bNy5Vv1qxZjBo1Ks4444y4+eabY7PNNosbb7wxDjvssPLaBFgvFBYWxqBBg0p8DRCw7ml/UD60PSg/2h+UH+0Pyo/2t+ErSEW/NgkAAAAAABlUrl+NAgAAAAAA65ogHAAAAACATBOEAwAAAACQaYJw1msjRoyI2rVrr9I8vXr1ikMPPXStr+vFF1+MgoKC+PLLL1d52WvDT7H+9X0f/FTmzp0bBQUFMXny5PKuys/S4MGDY4cddsg9Xt02vToKCgri0UcfXWfLL8uxta7rsL7YcsstY8iQIeVdDTZAe+65ZwwYMGCdrmNlx+dPUYf1wU/Z/5YXY83yrcuqjLnKUnZ1Xs/11fp0PGRNeY41l/VTjflWZcy1srJZu076uYy7WTM/1bhvVfqispTN0vXW2nwNBOGsc7169YqCgoLcX926dWP//fePKVOmrHTenj17xsyZM9d6nVanQ+jcuXPMnz8/atWqFRFrf6A9adKkOOKII6JBgwZRuXLlaNmyZZx88snrZPtXV/F9sK688MILcdBBB0X9+vWjcuXKsfXWW0fPnj3j5ZdfXqfr/blZsGBBnH766dG8efOoXLlyNGjQIHbbbbcYOnRo/Pe//y3v6q11CxYsiH79+sVWW20VhYWF0aRJk+jRo0c8//zz5V21PPPnz48DDjhgna5j9uzZccIJJ8QWW2wRhYWFsfnmm8c+++wTd999dyxevHidrjuLip/niv5mz55d3lXb4Hz//fdx1VVXxfbbbx9Vq1aNevXqRZcuXeKOO+6IH374obyrl/Pwww/HJZdcsk7X8fXXX8eFF14Y2267bVSpUiXq1q0bO+20U1x11VXxxRdfrNN1b2iMNctWn+J9VOPGjctclw3F2nw9H3roodh7771jk002iapVq0arVq3ihBNOiEmTJq2V5f8c/JzGmqszFvgpxnxrW5MmTWL+/PnRtm3bNV7WpEmTomfPntGoUaMoLCyMpk2bxkEHHRRPPPFEpJTWQm2zxXhz7RgxYkSp+/Gvf/3rcuf5KcZ968Ibb7wRp5xyyhovJ2t9+UblXQF+Hvbff/+44447IuLHRnTBBRfEQQcdFPPmzVvuPD/88ENUqVIlqlSp8lNVc4UqVaoUDRs2XCfLfvLJJ+Owww6L7t27x9133x1bb711fPzxx/HAAw/EhRdeGCNHjlwn611V63IfFLnlllvitNNOi2OPPTZGjhwZzZo1i/nz58cbb7wRZ5xxRkycOLHU+ZYsWRIFBQVRoYL398rivffeiy5dukTt2rXjsssui+222y4WL14cM2fOjOHDh8dmm20WBx98cHlXc62ZO3dubnuvuuqqaNeuXfzwww/x7LPPRt++fWP69OnlXcWcdd3GJkyYEN26dYttt902br755thmm21i4cKFMXXq1Bg6dGi0bds2tt9++1Ln/eGHH2LjjTdep/XbUC17nitSv379dba+9fm1+P7776NSpUqrNV/37t3j7bffjksuuSS6dOkSNWvWjNdffz2uueaaaN++fd4dfOWpTp0663T5n3/+eey2227x9ddfxyWXXBIdOnSISpUqxezZs+Oee+6Je+65J/r27VvqvKu7/zd0xpord/HFF8fJJ5+ce1yxYsVSy/3www8/yZhvXVhbr+d5550X1157bfTv3z8uuuiiaNy4ccybNy9eeeWV+MMf/hBPP/10qfOtz33zT+3nNtaMKPtYoKif3hDbWMWKFddKvR977LE48sgjo1u3bvG3v/0ttt566/jss89iypQpccEFF8Tuu+9e6huBKaVYsmRJbLTRzzPKMt78nzUZ79SsWTNmzJiRN620N36Ltn9dj/vWlbVxbKxJX77eHj8J1rHjjz8+HXLIIXnTXn755RQR6eOPP04ppTRnzpwUEWnkyJGpa9euqbCwMA0fPjzdcccdqVatWnnzXnLJJal+/fqpevXq6cQTT0znnXde2n777Uus7+qrr04NGzZMderUSX369Enff/99Simlrl27pojI+0splVjXp59+mnbaaafUo0eP9N1336UXXnghRUT64osvcv8v+zdo0KCUUkqLFi1K55xzTtpss81S1apV084775xeeOGF5e6fb7/9NtWrVy8deuihpT7/xRdfpJRSbp3PPfdc6tChQ6pSpUrq1KlTmj59el75xx9/PO24446psLAwNWvWLA0ePDj98MMPecs7+eST06abbpoKCwvTtttum5544olV3gfLln/mmWfSNttsk6pVq5a6d++e/v3vf+eW8cILL6SddtopVa1aNdWqVSt17tw5zZ07t9Rtff/999PGG2+czjjjjFKfX7p0ae7/onU/8cQTqXXr1qlixYrpvffeSxMmTEjdunVLdevWTTVr1kx77LFHmjhxYt5yIiLdcsstaf/990+VK1dOW265Zbr//vtzzxcdjw899FDac889U5UqVVK7du3SuHHjSq3Xhqh79+6pcePGaeHChaU+v+y+fv/999PBBx+cqlWrlmrUqJGOOOKItGDBgpRSSl9++WWqUKFCevPNN3PzbbLJJqljx465+e+5557UsGHD3ONzzz03tWjRIlWpUiU1a9YsXXDBBbn2mVJKgwYNKrVNF3n66adTly5dUq1atVKdOnXSL37xizR79uwVbu8BBxyQNt9881K3t+h4TunHY2PYsGHp0EMPTVWqVEnNmzdPjz32WF75d955Jx1wwAGpWrVqadNNN02/+c1v0ieffJJ7fsmSJemKK65IW2+9dapUqVJq0qRJuvTSS1NK/zu2Jk2alCt70kknpRYtWuTaRUSkRx55JK/8io7FuXPnpoMOOijVrl07Va1aNbVp0yY99dRTpe6HpUuXptatW6cOHTqkJUuWLLfMsusu3i9/+umn6de//nXafPPNU5UqVVLbtm3TPffck7eMrl27pr59+6a+ffvmXqfzzz8/77hq2rRp+tOf/pR++9vfpurVq6cmTZqk2267rdQ6re9KO88t68UXX0w77bRTqlSpUmrYsGE677zz8vrlpk2bpuuvvz5vnu233z53Xknpx+Pi1ltvTQcffHCqWrVq+uMf/5g+//zzdPTRR6d69eqlypUrp+bNm6fhw4fn5hk/fnzaYYcdUmFhYerQoUN6+OGH846/0s6xjzzySFp2eDh79ux08MEHp0033TRVq1YtdezYMY0ZMyZvnqZNm6ZLLrkkHX/88almzZrpuOOOSyml9Oqrr6bdd989Va5cOTVu3Dj169dvuX1OSildeeWVqUKFCumtt94q8dz333+fm7dr166pX79+6ZxzzkmbbLJJatCgQd6+SunHvunkk09O9evXTzVq1Eh77bVXmjx5cl6Zxx57LHXo0CEVFhamunXrpl/+8pd527TsazJ8+PBUs2bNNHr06FwdTj/99LzyKzqeFy1alPr27ZsaNmyYCgsLU9OmTdNll1223H1x6qmnpmrVqqUPP/yw1OeLt6XS9n9Z+9qhQ4emxo0bpypVqqTDDz88r09c2ZhqfWGsueKxZkql9zNFSutfio/5Ulp5my5Lv76yfmlF/VpZzonF93FZjvPiXnvttRQR6YYbbij1+WXbX9Hyb7/99tSsWbNUUFCQli5dutKxStG23HvvvalTp06psLAwtWnTJu91LOvYf331cxtrrmgsUDQuOuOMM1LdunXTHnvskVLKH/OllNKHH36YjjzyyFS7du1Up06ddPDBB6c5c+aUWMeK+uT//Oc/6aCDDspd49x1110l2v+gQYNSkyZNUqVKlVKjRo1Sv379cs+trB0XH8sWHadPPvlkateuXSosLEw777xzmjJlynL31cKFC0ucd4srOj6Klv/MM8+kDh06pI033jj94x//KPP45OKLL05HHXVUqlatWmrUqFG68cYb88qUZey/vjDeXDvjzdLqU2R5fXrxcd/KzsNlyUkWL16czjjjjFw/c84556Tjjjsu7zV+4IEHUtu2bVPlypVTnTp10j777JPbtrL0B8Vf85XlIKVZlb68tONn8eLF6YQTTkhbbrllqly5cmrZsmUaMmRI3jKKtmXw4MG5sfspp5ySFi1alCtTlvF/WQnCWeeKd9jffPNNOvXUU1Pz5s1zQUzRCXXLLbdMDz30UHrvvffSRx99VKKTuuuuu1LlypXT8OHD04wZM9JFF12UatasWWIgU7NmzdS7d+80bdq09MQTT6SqVaumv/zlLymllD777LPUuHHjdPHFF6f58+en+fPnp5TyO8QPPvggtW7dOh177LG5k8eyFwSLFi1KQ4YMSTVr1swt45tvvkkppXT00Uenzp07p5dffjnNnj07XX311amwsDDNnDmz1P1TdKJYWchatP5ddtklvfjii+mdd95Ju+++e+rcuXOuzDPPPJNq1qyZRowYkd599900evTotOWWW6bBgwenlH4M3Xbddde07bbbptGjR6d33303PfHEE2nUqFGrvA+Kym+88capW7du6Y033kgTJ05MrVu3TkcffXRKKaUffvgh1apVK5199tlp9uzZaerUqWnEiBHp/fffL3Ubr7vuuhQRuddkRYrW3blz5/Tqq6+m6dOnp4ULF6bnn38+3XnnnWnq1Klp6tSp6cQTT0wNGjRIX3/9dW7eiEh169ZNw4YNSzNmzEgXXHBBqlixYpo6dWpK6X/H4zbbbJOefPLJNGPGjHT44Yenpk2b5g0mNlSffvppKigoSJdffvlKyy5dujS1b98+7bbbbunNN99Mr7/+etpxxx1T165dc2V23HHHdM0116SUUpo8eXLaZJNNUqVKldJXX32VUkrplFNOST179syVv+SSS9Krr76a5syZkx5//PHUoEGDdOWVV+aeX9nFyYMPPpgeeuihNHPmzDRp0qTUo0ePtN122y032P3ss89SQUHBCkOnIhGRGjdunO655540a9as1L9//1S9evX02WefpZRS+ve//53q1auXBg4cmKZNm5beeuuttO+++6a99tort4xzzz03bbLJJmnEiBFp9uzZaezYsWnYsGEppfyLh0WLFqXDDjss7bDDDuk///lPXh2KB+ErOhZ/8YtfpH333TdNmTIl16ZfeumlUrfvrbfeyl14r8zy+uUPP/wwXX311WnSpEnp3XffTTfeeGOqWLFiev3113Pzdu3aNVWvXj2dfvrpafr06emuu+7K64dT+nFgVqdOnXTzzTenWbNmpcsvvzxVqFAhTZs2baV1W9+s6MLkww8/TFWrVk19+vRJ06ZNS4888kiqV69e3sCtrBcmm266abr99tvTu+++m+bOnZv69u2bdthhh/TGG2+kOXPmpDFjxqTHH388pfTjRWb9+vVTz54907/+9a/0xBNPpK222mqVL0wmT56chg4dmqZMmZJmzpyZzj///FS5cuW8frxp06apZs2a6eqrr06zZs1Ks2bNSlOmTEnVq1dP119/fZo5c2Z69dVXU/v27VOvXr2Wux/btWuX9ttvv+Xv6P+va9euqWbNmmnw4MFp5syZ6W9/+1sqKCjIhdRLly5NXbp0ST169EhvvPFGmjlzZjrrrLNS3bp1c235ySefTBUrVkx//OMf09SpU9PkyZPTn/70p1Jfk6uvvjrVqVMnvfbaa3l1KB6Er+h4vvrqq1OTJk3Syy+/nObOnZvGjh1b4g2kIkuWLEm1a9dOp5566kr3RdG6i+//lMrW11arVi3tvffeadKkSemll15KzZs3z53DU1r5mGp9Yay54rFmSisPwov3L8XHfGVp0ytrB2Xpl1bUr5XlnFhaEL6y47y4onN/WcZ8Rcvv3r17euutt9Lbb7+dli5dutKxStG2NG7cOD344INp6tSp6aSTTko1atRIn376aUqpbGP/9dXPbaxZ2jKWVTQuOuecc9L06dNzbWLZMd+3336bWrRokU444YQ0ZcqUNHXq1HT00UenVq1a5cKgsvTJBxxwQGrbtm0aN25cevPNN1Pnzp1TlSpVcu3/gQceSDVr1kyjRo1K77//fho/fvwqjc+WF4S3bt06jR49Ok2ZMiUddNBBacstt1zum6ZF17/LnleXp2j57dq1S6NHj06zZ89On376aZnHJzVq1EiXX355mjFjRm7MWjReKHoNVjT2X58Yb66d8ebKgvDS+vTi476VnYdXlpOk9OMNILVq1cqdA0488cRUo0aN3Gv873//O2200UbpuuuuS3PmzElTpkxJN998c24sUJb+oLQgfEU5SHGr0pcXLb/48fP999+nP/7xj2nChAnpvffey10Xjhw5Mjff8ccfn6pXr547jp588slUv3799Ic//CFXZmXj/1UhCGedO/7441PFihVTtWrVUrVq1VJEpEaNGuXdpVt0Qi3+zlDxTmqXXXZJffv2zSvTpUuXEgOZpk2bpsWLF+emHXHEEXmDo9JOAkXrmjFjRtpiiy1Sv3798t7dWt7d0MuaPXt2KigoSB999FHe9H322ScNHDiw1P1z5ZVXpohIn3/+eanPF1//c889l5v21FNPpYhI3333XUoppd13371E2HfnnXemRo0apZRSevbZZ1OFChXSjBkzSl3H6uyDiMi7Q+Lmm29ODRo0SCn9eCEYEenFF19c4bYV6d27d6pZs2betAcffDB37FSrVi13d0HRuovf4Vfc4sWLU40aNXJ3vaf0Ywfdu3fvvHK77LJL+t3vfpdS+t/x+Ne//jX3/DvvvJMiYoMM6Yp7/fXXU0Skhx9+OG963bp1c/v53HPPTSmlNHr06FSxYsU0b968XLmifTFhwoSUUkpnnnlmOuigg1JKKQ0ZMiQdfvjhaccdd8zdldyyZct06623Lrc+V111VerQoUPu8couTor7+OOPU0Skf/7zn6U+P378+FK3tzQRkS644ILc44ULF6aCgoL09NNPp5RSuvDCC0sEdR988EGKiDRjxoz09ddfp8LCwlzwXVzRsTV27NjUrVu31KVLl/Tll1+WqEPxIHxFx+J2222Xe7NrZe67774UEXl33P7nP//Ja2M333xz3rqL98ulOfDAA9NZZ52Ve9y1a9fUunXrvP7jvPPOS61bt849btq0afrNb36Te7x06dK06aabrvBYWV8VP89Vq1YtHX744SmllP7whz+kVq1a5e2Lm2++OVWvXj13QV3WC5MBAwbklenRo0f67W9/W2qdbrvttlSnTp307bff5qbdeuutq3xhUpo2bdqkm266Kfe4adOmJT7VdOyxx6ZTTjklb9rYsWNThQoVcues4qpUqZL69++/wnWn9OPxtdtuu+VN22mnndJ5552XUkrp+eefTzVr1kz/93//l1dm6623zt3V1qlTp3TMMccsdx1Fr8nvf//71KhRoxJ3tpUWhK/oeO7Xr1/ae++9846D5VmwYEGKiHTdddflTd9xxx1zx9evf/3rvHUv71Nlyyqtr61YsWL64IMPctOefvrpVKFChVxwW5Yx1frAWHPFY82i+lSqVCmvnyq647m0/qV4XcrSplfWDsrSL62oXyvLObG0IHxlx3lx+++/f2rXrl3etGuvvTZv3xWduwcNGpQ23njj3CcPlqf4WKVoW6644opcmR9++CE1btw4F9iWZey/vvq5jTWLlrG8sUDXrl3TDjvsUGKeZcd8t99+e4nxwqJFi1KVKlXSs88+m1vHivqeGTNmpIjIuzlh2rRpKSJy/dG1116bWrZsudyQemXteHlB+H333Zeb57PPPktVqlTJC7qWdcUVV5S4/p0wYULeviu6dita/qOPPlrqspZV2vhk//33zyvTs2fPdMABB+Qer2zsvz4x3lw7482iHGHZ/ViUXyyvT1923FeW8/DKcpKUUmrUqFGp54CivmjixIkpIpb7afrVGYusLAcpblX68qLlFz9+StOnT5902GGH5W1LacfRssfvysb/q8KX6fKT2GuvvWLy5MkxefLkGD9+fOy3335xwAEHxPvvv59XrmPHjitczowZM2LnnXfOm1b8cUTEtttum/e9h40aNYqPP/54pfX87rvvYrfddotDDz00brzxxigoKFjpPMt66623IqUULVu2jOrVq+f+XnrppXj33XdLnSet4g+BtGvXLvd/o0aNIiJy2zZx4sS4+OKL89Z98sknx/z58+O///1vTJ48ORo3bhwtW7Zc7vJXdR9UrVo1tt5667w6FdWnTp060atXr+jevXv06NEjbrjhhpg/f/4Kl1d8fd27d4/JkyfHU089Fd9++20sWbIk91ylSpXy9kfRvujdu3e0bNkyatWqFbVq1YqFCxeW+I7QTp06lXg8bdq0vGkr2tdZUHxfT5gwISZPnhzbbrttLFq0KCIipk2bFk2aNIkmTZrkyrVp0yZq166d21977rlnjB07NpYuXRovvfRS7LnnnrHnnnvGSy+9FAsWLIiZM2dG165dc/M/+OCDsdtuu0XDhg2jevXqceGFF67wO1yLe/fdd+Poo4+OrbbaKmrWrBnNmjWLiFjuMoraWFnb87Kve7Vq1aJGjRp5beyFF17Ia2PbbLNNrl7Tpk2LRYsWxT777LPCdRx11FGxcOHCGD16dJl+iGxFx2L//v3j0ksvjS5dusSgQYPK9ONwy+6LunXr5vrn2rVrx/fff59Xtni/vGTJkvjTn/4U7dq1i7p160b16tVj9OjRJfb/rrvumreeTp06xaxZs/La8LLbVVBQEA0bNtxg29iy57nJkyfHjTfeGBE/tqFOnTrl7YsuXbrEwoUL48MPP1yldRR/LX73u9/FfffdFzvssEOce+65MW7cuNxz06ZNy/3gZJHi/V5ZfPvtt3Huuefm2n316tVj+vTpJV7v4nWbOHFijBgxIq+tdO/ePZYuXRpz5swpdV0ppdVqpxH5556JEyfGwoULc8dn0d+cOXNy5+LJkyevtJ1ee+21cdttt8Urr7wS22233SrVqfjx3KtXr5g8eXK0atUq+vfvH6NHj17p8orvi0ceeSQmT54c3bt3j++++y7vudLGT2Xpa7fYYou8H0zs1KlTLF26NO97M1d3TPVTM9Zc/lizyDnnnJPXTx133HG551a2X8raplfUDsrSL62oXyttHWUZn5XlOC+u+OtywgknxOTJk+O2226Lb7/9Nm/83rRp0xLfw1rWscqy27/RRhtFx44dMzUe/bmMNYssbywQUbY2Nnv27KhRo0aujdWpUyf+7//+L69tr6jvmTZtWu44KrLNNtvkfdf2EUccEd99911stdVWcfLJJ8cjjzxS4ofSV2d8tuyxXKdOnWjVqlWJY3lF2rVrl9tv3377bYk6Fd9/ZR2frOo1X/Gx//rGeHPNx5sRETVq1Mjbj8tuU2l9+rLKeh5eUU7y1Vdfxfz580s9BxTZfvvtY5999ontttsujjjiiBg2bFiJH0tfnbFIWdpEcWXpy4uU1tcNHTo0OnbsGPXr14/q1avHsGHDSry2pR1HCxcujA8++CA3bUXj/1Xx8/yFAX5y1apVi+bNm+ced+jQIWrVqhXDhg2LSy+9NK/cyhRvhKUFycW/kL+goCCWLl260mUXFhZGt27d4qmnnopzzjknb9BcFkuXLo2KFSvGxIkTS/wAUfXq1UudpyiUnj59eplOGstuW9G+KNq2pUuXxkUXXRS/+tWvSsxXuXLlMv140Krug9L29bKvyR133BH9+/ePZ555JkaOHBkXXHBBjBkzJnbdddcSy2rRokV89dVXsWDBgtyPsFSvXj2aN29e6g+iVKlSpcTx0KtXr/jkk09iyJAh0bRp0ygsLIxOnTqVCPdKU3xZK9rXG7LmzZtHQUFBiR+I3GqrrSIi8o6T5QVTy07fY4894ptvvom33norxo4dG5dcckk0adIkLrvssthhhx1i0003jdatW0dExOuvvx6//vWv46KLLoru3btHrVq14r777otrr722zPXv0aNHNGnSJIYNGxabbbZZLF26NNq2bbvc17hFixZRUFAQ06ZNi0MPPXSly19R/7F06dLo0aNHXHnllSXma9SoUbz33ntl2oYDDzww7rrrrnj99ddj7733XqU6FT8WTzrppOjevXs89dRTMXr06Lj88svj2muvjX79+pVYTosWLSLix/6m6EcHK1asmOufS2tnxfvla6+9Nq6//voYMmRIbLfddlGtWrUYMGBAmdrYiraraNs21DZW/DxXpLQ2VPzNmQoVKpQ4l/3www+lrmNZRSHfU089Fc8991zss88+0bdv37jmmmvK9CZrWdZ7zjnnxLPPPhvXXHNNNG/ePKpUqRKHH354ide7eN2WLl0ap556avTv37/EerfYYotS69OyZcsyXzSvrJ02atQoXnzxxRLzFYUBZTkf7r777vHUU0/F/fffH7///e/XqE477rhjzJkzJ55++ul47rnncj8Q9uCDD5ZYTv369aN27dol+uii/VajRo348ssv854rvv9Xt68tOiaXPWY3lHZqrLn8sWaRevXqldpPRax8v5S1Ta9ov5SlX1pRv1baOlZnfFbacb6sFi1axCuvvJL3I1+1a9eO2rVrlxoolbbvVnWsUlr9imyI49Gf21izyPLGAkXPrcjSpUujQ4cOcffdd5d4btlQrixtbEVvsDVp0iRmzJgRY8aMieeeey769OkTV199dbz00ku5Za+tfn9FbSzixzcei64JCwsLl7vvIkruv7KOT8pSrw3lPBdhvLk2xptFdVqTtlqW8/DKcpKVqVixYowZMybGjRsXo0ePjptuuinOP//8GD9+fO7NuXXdVlelLy9SfP/df//9ccYZZ8S1114bnTp1iho1asTVV18d48ePX+W6ra3tdUc45aKgoCAqVKhQ4o6mlWnVqlVMmDAhb9qbb765yuuvVKlS3l2JRSpUqBB33nlndOjQIfbee+/497//vUrLaN++fSxZsiQ+/vjjaN68ed7f8n5de7/99ot69erFVVddVerzxS92V2THHXeMGTNmlFh38+bNo0KFCtGuXbv48MMPY+bMmctdxqrsg7Jq3759DBw4MMaNGxdt27aNe+65p9Ryhx9+eGy88calhoxlNXbs2Ojfv38ceOCBse2220ZhYWF8+umnJcq9/vrrJR4X3dmbdXXr1o199903/vznP8e33367wrJt2rSJefPm5b0TO3Xq1Pjqq69yFxy1atWKHXbYIf785z9HQUFBtGnTJnbfffeYNGlSPPnkk3l36Lz66qvRtGnTOP/886Njx47RokWLEnfrrchnn30W06ZNiwsuuCD22WefaN26dYl3xourU6dOdO/ePW6++eZSt3dV29g777wTW265ZYk2Vq1atWjRokVUqVIlnn/++RUu53e/+11cccUVcfDBB8dLL71U5vUvT5MmTaJ3797x8MMPx1lnnRXDhg0rtVz79u1jm222iWuuuWa1B/hjx46NQw45JH7zm9/E9ttvH1tttVXMmjWrRLnS2liLFi1KDBizrk2bNjFu3Li8ge+4ceOiRo0asfnmm0fEjxe4y35a5uuvv17hXSzLql+/fvTq1SvuuuuuGDJkSPzlL3/Jrfftt9/OO88Wf03q168f33zzTV67mDx5cl6ZsWPHRq9eveKXv/xlbLfddtGwYcOYO3fuSutV1FZKOx9VqlSp1HmOPvroeO6552LSpEklnlu8ePFK+6tl171gwYLYaKONSqy7Xr16EfHjHSUra6c777xzPPPMM3HZZZfF1VdfXaZ1r0jNmjWjZ8+eMWzYsBg5cmQ89NBD8fnnn5coV6FChTjyyCPjrrvuio8++mi11lXWvnbevHl55/nXXnstKlSosMJPjm0ojDXXrtVp08WVpV+KWH6/trpW9Tgv+tTWLbfcslrrW5WxyrLbv3jx4pg4cWImxqM/t7Hm2rDjjjvGrFmzYtNNNy3Rxsry6cGIiNatW8fixYvz+qwZM2aUGOtWqVIlDj744LjxxhvjxRdfjNdeey3++c9/rlH9lz2Wv/jii5g5c+Zyj+X99tsv6tSps8bXfGUZn/xcrvmMN1f/3LSq1sZ5uFatWtGoUaNSzwHLKigoiC5dusRFF10UkyZNikqVKsUjjzyyRvVflTaxKn358owdOzY6d+4cffr0ifbt20fz5s1L/QRbacdR9erVV/mGgbIQhPOTWLRoUSxYsCAWLFgQ06ZNi379+sXChQujR48eq7Scfv36xe233x5/+9vfYtasWXHppZfGlClTVvljpVtuuWW8/PLL8dFHH5UISStWrBh33313bL/99rH33nvHggULlruMhQsXxvPPPx+ffvpp/Pe//42WLVvGMcccE8cdd1w8/PDDMWfOnHjjjTfiyiuvjFGjRpW6nGrVqsVf//rXeOqpp+Lggw+O5557LubOnRtvvvlmnHvuudG7d+8yb9cf//jH+Pvf/x6DBw+Od955J6ZNm5a7CzsiomvXrrHHHnvEYYcdFmPGjMndnfbMM8+s1j5YmTlz5sTAgQPjtddei/fffz9Gjx4dM2fOzA1qi9tiiy3i2muvjRtuuCGOP/74eOGFF2Lu3Lnx1ltv5T72tbIQrXnz5nHnnXfGtGnTYvz48XHMMceU+k7lAw88EMOHD4+ZM2fGoEGDYsKECXHaaaet1nZuiG655ZZYvHhxdOzYMUaOHBnTpk2LGTNmxF133RXTp0/P7edu3bpFu3bt4phjjom33norJkyYEMcdd1x07do172NPe+65Z9x1113RtWvXKCgoiE022STatGkTI0eOjD333DNXrnnz5jFv3ry477774t13340bb7xxlU7mm2yySdStWzf+8pe/xOzZs+Mf//hHnHnmmWXa3iVLlsTOO+8cDz30UMyaNSumTZsWN9544yp9fK9v377x+eefx1FHHRUTJkyI9957L0aPHh0nnHBCLFmyJCpXrhznnXdenHvuufH3v/893n333Xj99dfj9ttvL7Gsfv36xaWXXhoHHXRQvPLKK2WuQ3EDBgyIZ599NubMmRNvvfVW/OMf/1huGysoKIg77rgjZsyYEV26dInHH388Zs2aFVOnTo2hQ4fGJ598UqY2VnR3wrRp0+LUU08ttY/44IMP4swzz4wZM2bEvffeGzfddFOcfvrpq72dG6o+ffrEBx98EP369Yvp06fHY489FoMGDYozzzwzKlT4cRi29957x5133hljx46Nf/3rX3H88ceX6Q2DP/7xj/HYY4/F7Nmz45133oknn3wy99offfTRUaFChTjxxBNj6tSpMWrUqLw7KiMidtlll6hatWr84Q9/iNmzZ8c999wTI0aMyCvTvHnzePjhh2Py5Mnx9ttvx9FHH12mN1HOO++8eO2116Jv374xefLkmDVrVjz++OOlflKhyIABA6JLly6xzz77xM033xxvv/12vPfee3H//ffHLrvsUuobLqXp1q1bdOrUKQ499NB49tlnY+7cuTFu3Li44IILcuHAoEGD4t57741BgwbFtGnT4p///Gepb0h36tQpnn766bj44ovj+uuvL9P6S3P99dfHfffdF9OnT4+ZM2fGAw88EA0bNsz7uPqyLrvssth8881jl112ieHDh8eUKVPi3XffjUceeSRee+21MrXTsvS1lStXjuOPPz7efvvt3BvJRx555DoNVNcVY83ljzXXhtVp08WVpV9aUb+2ulb1OO/UqVOcddZZcdZZZ8WZZ54Zr7zySrz//vu583nRmyzLsypjlZtvvjkeeeSRmD59evTt2ze++OKLOOGEE9Zoe9cXP7ex5po65phjol69enHIIYfE2LFjY86cOfHSSy/F6aefXuavtmjVqlXsv//+cfLJJ8f48eNj4sSJcdJJJ+VdC40YMSJuv/32+Ne//hXvvfde3HnnnVGlSpVo2rTpGtX/4osvjueffz7+9a9/Ra9evaJevXrL/SRm9erVc9e/v/jFL+LZZ5+N9957L6ZMmZI7F5flPFeW8cmrr74aV111VcycOTNuvvnmeOCBBzI5HjXeXP1z06paW+fh008/Pa644orcOaBPnz55b1qNHz8+LrvssnjzzTdj3rx58fDDD8cnn3yyxufEVc1BytqXL0/z5s3jzTffjGeffTZmzpwZF154Ybzxxhslyn3//fe54+jpp5+OQYMGxWmnnbbC8+3qEoTzk3jmmWeiUaNG0ahRo9hll13ijTfeiAceeCBv0FIWxxxzTAwcODDOPvvs3MeMe/XqFZUrV16l5Vx88cUxd+7c2HrrrUv9/qeNNtoo7r333th2221j7733LvV7hzp37hy9e/eOnj17Rv369XMn7TvuuCOOO+64OOuss6JVq1Zx8MEHx/jx4/O+9664Qw45JMaNGxcbb7xxHH300bHNNtvEUUcdFV999VXex3lXpnv37vHkk0/GmDFjYqeddopdd901rrvuuryBzUMPPRQ77bRTHHXUUdGmTZs499xzS71jqSz7YGWqVq0a06dPj8MOOyxatmwZp5xySpx22mlx6qmnLneefv36xejRo+OTTz6Jww8/PFq0aBEHHnhgzJkzJ5555pmVfk/r8OHD44svvoj27dvHscceG/37949NN920RLmLLroo7rvvvmjXrl387W9/i7vvvjvatGmzytu4odp6661j0qRJ0a1btxg4cGBsv/320bFjx7jpppvi7LPPjksuuSQifgxOH3300dhkk01ijz32iG7dusVWW20VI0eOzFveXnvtFUuWLMlr0127do0lS5bk3aVzyCGHxBlnnBGnnXZa7LDDDjFu3Li48MILy1zvChUqxH333RcTJ06Mtm3bxhlnnFGmOzWbNWsWb731Vuy1115x1llnRdu2bWPfffeN559/Pm699dYyr3+zzTaLV199NZYsWRLdu3ePtm3bxumnnx61atXKnaQvvPDCOOuss+KPf/xjtG7dOnr27Lnc9jNgwIC46KKL4sADDyz1e1DLYsmSJdG3b99o3bp17L///tGqVasV3sW26667xsSJE6NVq1bRt2/faNOmTXTu3DnuvffeuP766+N3v/vdCtd34YUXxo477hjdu3ePPffcMxo2bFjqhc5xxx0X3333Xey8887Rt2/f6NevX5xyyimrtY0bss033zxGjRoVEyZMiO233z569+4dJ554Yu4NyoiIgQMHxh577BEHHXRQHHjggXHooYfmfafg8lSqVCkGDhwY7dq1iz322CMqVqwY9913X0T8eJH5xBNPxNSpU6N9+/Zx/vnnl7jzqk6dOnHXXXfFqFGjYrvttot77703Bg8enFfm+uuvj0022SQ6d+4cPXr0iO7du8eOO+640rq1a9cuXnrppZg1a1bsvvvu0b59+7jwwgtz329bmsLCwhgzZkyce+65cdttt8Wuu+4aO+20U9x4443Rv3//aNu27UrXG/FjvzVq1KjYY4894oQTToiWLVvGr3/965g7d240aNAgIn4MVB544IF4/PHHY4cddoi99957uR/R7NKlSzz11FNx4YUX5n3f66qoXr16XHnlldGxY8fYaaedYu7cuTFq1KjlDu7r1q2bC4Ouvvrq2HnnnWO77baLwYMH5+4qX5Gy9rXNmzePX/3qV3HggQfGfvvtF23btl3tu2DLm7Hmiseaa2p12nRxZemXVtSvra7VOc6vueaauOeee2LSpElx0EEHRYsWLeKII46IpUuXxmuvvRY1a9Zc7ryrMla54oor4sorr4ztt98+xo4dG4899ljukysbup/bWHNNVa1aNV5++eXYYost4le/+lW0bt06TjjhhPjuu+9WeLwVd8cdd0STJk2ia9eu8atf/SpOOeWUvGuh2rVrx7Bhw6JLly65T0c98cQTUbdu3TWq/xVXXBGnn356dOjQIebPnx+PP/74Cu/I/eUvfxnjxo2LqlWrxnHHHRetWrWKvffeO/7xj3/EfffdFwcddNAK11fW8clZZ50VEydOjPbt28cll1wS1157bXTv3n2NtnV9ZLy5+uem1bE2zsNnnXVWHHfccdGrV6/cV4b88pe/zD1fs2bNePnll+PAAw+Mli1bxgUXXBDXXnttHHDAAWtU91XNQcraly9P796941e/+lX07Nkzdtlll/jss8+iT58+Jcrts88+0aJFi9hjjz3iyCOPjB49epQ4TtaWgrSqv9QH65l99903GjZsGHfeeWd5V4UNREFBQTzyyCNl+r5oYNXtueeescMOO8SQIUPKuyosY+7cudGsWbOYNGlS7jvi+fkaPHhwPProoyU+nkxJxpobrvX1ONcfkxUvvvhi7LXXXvHFF18s91NO5WXLLbeMAQMGxIABA8q7Kj8r+rf11/qag/Tq1Su+/PLLePTRR3+S9fmxTDYo//3vf2Po0KHRvXv3qFixYtx7773x3HPPxZgxY8q7agAAbOCMNQEAsksQzgal6OPOl156aSxatChatWoVDz30UHTr1q28qwYAwAbOWBMAILt8NQoAAAAAAJnmxzIBAAAAAMg0QTgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAefbcc88YMGBAeVcDAADWGkE4AACsZxYsWBCnn356NG/ePCpXrhwNGjSI3XbbLYYOHRr//e9/y7t6AACwwdmovCsAAAD8z3vvvRddunSJ2rVrx2WXXRbbbbddLF68OGbOnBnDhw+PzTbbLA4++OAS8/3www+x8cYbl0ONAQBg/eeOcAAAWI/06dMnNtpoo3jzzTfjyCOPjNatW8d2220Xhx12WDz11FPRo0ePiIgoKCiIoUOHxiGHHBLVqlWLSy+9NJYsWRInnnhiNGvWLKpUqRKtWrWKG264IW/5vXr1ikMPPTQuuuii2HTTTaNmzZpx6qmnxvfff59XbunSpXHuuedGnTp1omHDhjF48OCfahcAAMBa545wAABYT3z22WcxevTouOyyy6JatWqllikoKMj9P2jQoLj88svj+uuvj4oVK8bSpUujcePGcf/990e9evVi3Lhxccopp0SjRo3iyCOPzM33/PPPR+XKleOFF16IuXPnxm9/+9uoV69e/OlPf8qV+dvf/hZnnnlmjB8/Pl577bXo1atXdOnSJfbdd991twMAAGAdKUgppfKuBAAAEDF+/PjYdddd4+GHH45f/vKXuen16tWL//u//4uIiL59+8aVV14ZBQUFMWDAgLj++utXuMy+ffvGf/7zn3jwwQcj4sc7wp944on44IMPomrVqhERMXTo0DjnnHPiq6++igoVKsSee+4ZS5YsibFjx+aWs/POO8fee+8dV1xxxdrebAAAWOd8NQoAAKxnlr3rOyJiwoQJMXny5Nh2221j0aJFuekdO3YsMe/QoUOjY8eOUb9+/ahevXoMGzYs5s2bl1dm++23z4XgERGdOnWKhQsXxgcffJCb1q5du7x5GjVqFB9//PEabRcAAJQXQTgAAKwnmjdvHgUFBTF9+vS86VtttVU0b948qlSpkje9+Nen3H///XHGGWfECSecEKNHj47JkyfHb3/72xLf/708ywbwxX94s6CgIJYuXboqmwMAAOsNQTgAAKwn6tatG/vuu2/8+c9/jm+//XaV5x87dmx07tw5+vTpE+3bt4/mzZvHu+++W6Lc22+/Hd99913u8euvvx7Vq1ePxo0br1H9AQBgfSUIBwCA9cgtt9wSixcvjo4dO8bIkSNj2rRpMWPGjLjrrrti+vTpUbFixeXO27x583jzzTfj2WefjZkzZ8aFF14Yb7zxRoly33//fZx44okxderUePrpp2PQoEFx2mmnRYUKLg8AAMimjcq7AgAAwP9svfXWMWnSpLjsssti4MCB8eGHH0ZhYWG0adMmzj777OjTp89y5+3du3dMnjw5evbsGQUFBXHUUUdFnz594umnn84rt88++0SLFi1ijz32iEWLFsWvf/3rGDx48DreMgAAKD8FKaVU3pUAAAB+Gr169Yovv/wyHn300fKuCgAA/GR89hEAAAAAgEwThAMAAAAAkGm+GgUAAAAAgExzRzgAAAAAAJkmCAcAAAAAINME4QAAAAAAZJogHAAAAACATBOEAwAAAACQaYJwAAAAAAAyTRAOAAAAAECmCcIBAAAAAMi0/wepdWsYTTXXqwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots(figsize=(15, 10))\n", "index = np.arange(len(generalized_cc))\n", @@ -1379,9 +17025,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Graphomega-coefficient
0Brightkite Checkins Graph-0.25
1Gowalla Checkins Graph-0.20
2Foursquare Checkins Graph-0.17
3Brightkite Friendship Graph-0.18
4Gowalla Friendship Graph-0.24
5Foursquare Friendship Graph-0.05
\n", + "
" + ], + "text/plain": [ + " Graph omega-coefficient\n", + "0 Brightkite Checkins Graph -0.25\n", + "1 Gowalla Checkins Graph -0.20\n", + "2 Foursquare Checkins Graph -0.17\n", + "3 Brightkite Friendship Graph -0.18\n", + "4 Gowalla Friendship Graph -0.24\n", + "5 Foursquare Friendship Graph -0.05" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "analysis_results[['Graph', 'omega-coefficient']]" ] diff --git a/src/utils.py b/src/utils.py index 52018a4..d0f8ee7 100755 --- a/src/utils.py +++ b/src/utils.py @@ -502,8 +502,8 @@ def create_random_graphs(G: nx.Graph, model = None, save = True) -> nx.Graph: if model == "erdos_renyi": G_random = nx.erdos_renyi_graph(G.number_of_nodes(), nx.density(G)) print("Creating a random graph with the Erdos-Renyi model {}" .format(G.name)) - print("Number of edges in the original graph: {}" .format(G.number_of_edges())) - print("Number of edges in the random graph: {}" .format(G_random.number_of_edges())) + # print("Number of edges in the original graph: {}" .format(G.number_of_edges())) + # print("Number of edges in the random graph: {}" .format(G_random.number_of_edges())) G_random.name = G.name + " Erdos-Renyi" if save: @@ -520,8 +520,8 @@ def create_random_graphs(G: nx.Graph, model = None, save = True) -> nx.Graph: p = G.number_of_edges() / (G.number_of_nodes()) avg_degree = int(np.mean([d for n, d in G.degree()])) G_random = nx.watts_strogatz_graph(G.number_of_nodes(), avg_degree, p) - print("Number of edges in the original graph: {}" .format(G.number_of_edges())) - print("Number of edges in the random graph: {}" .format(G_random.number_of_edges())) + # print("Number of edges in the original graph: {}" .format(G.number_of_edges())) + # print("Number of edges in the random graph: {}" .format(G_random.number_of_edges())) G_random.name = G.name + " Watts-Strogatz" if save: @@ -635,7 +635,7 @@ def random_sample(graph: nx.Graph, k: float) -> nx.Graph: The graph to sample `k`: float - The percentage of nodes to sample from the graph. + The percentage of nodes to remove from the graph Returns ------- @@ -644,8 +644,7 @@ def random_sample(graph: nx.Graph, k: float) -> nx.Graph: """ nodes = list(graph.nodes()) - n = int(k*len(nodes)) - nodes_sample = random.sample(nodes, n) + nodes_sample = np.random.choice(nodes, size=int((1-k)*len(nodes)), replace=False) G = graph.subgraph(nodes_sample) @@ -654,8 +653,6 @@ def random_sample(graph: nx.Graph, k: float) -> nx.Graph: connected = max(nx.connected_components(G), key=len) G_connected = graph.subgraph(connected) - print(nx.is_connected(G_connected)) - print("Number of nodes in the sampled graph: ", G.number_of_nodes()) print("Number of edges in the sampled graph: ", G.number_of_edges())