From 1846b7b82b8f790063d0827210380eb4eb1c921c Mon Sep 17 00:00:00 2001 From: David Rusu Date: Mon, 25 Nov 2024 19:28:53 +0400 Subject: [PATCH] cryptarchia fork choice experiments --- cryptarchia/bitcoin.ipynb | 647 +++++++++++ cryptarchia/ghost-cryptarchia.ipynb | 1119 +++++++++++++++++++ cryptarchia/longest-chain-cryptarchia.ipynb | 965 ++++++++++++++++ cryptarchia/slotless-cryptarchia.ipynb | 540 +++++++++ cryptarchia/weighted-cryptarchia.ipynb | 638 +++++++++++ 5 files changed, 3909 insertions(+) create mode 100644 cryptarchia/bitcoin.ipynb create mode 100644 cryptarchia/ghost-cryptarchia.ipynb create mode 100644 cryptarchia/longest-chain-cryptarchia.ipynb create mode 100644 cryptarchia/slotless-cryptarchia.ipynb create mode 100644 cryptarchia/weighted-cryptarchia.ipynb diff --git a/cryptarchia/bitcoin.ipynb b/cryptarchia/bitcoin.ipynb new file mode 100644 index 0000000..e287d3c --- /dev/null +++ b/cryptarchia/bitcoin.ipynb @@ -0,0 +1,647 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "3f485372-2531-4a49-8d15-5b26e9018a6a", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass\n", + "from pyvis.network import Network\n", + "from pyvis.options import Layout\n", + "import networkx as nx" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8ea18f7d-34a8-4de8-b18f-e93329825840", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Block:\n", + " id: int\n", + " t: float\n", + " height: int\n", + " parent: int\n", + " leader: int" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cabf7946-8382-4102-b730-d74ed42ceb38", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class NetworkParams:\n", + " mixnet_delay_mean: int # seconds\n", + " mixnet_delay_var: int\n", + " broadcast_delay_mean: int # second\n", + " pol_proof_time: int # seconds\n", + "\n", + " def sample_mixnet_delay(self):\n", + " scale = self.mixnet_delay_var / self.mixnet_delay_mean\n", + " shape = self.mixnet_delay_mean / scale\n", + " return np.random.gamma(shape=shape, scale=scale)\n", + " \n", + " def sample_broadcast_delay(self, blocks):\n", + " return np.random.exponential(self.broadcast_delay_mean, size=blocks.shape)\n", + "\n", + " def block_arrival_time(self, block_time):\n", + " return self.pol_proof_time + self.sample_mixnet_delay() + self.sample_broadcast_delay(block_time) + block_time" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4e9df29f-fb4a-4dfb-a7b4-b8b4b0a6e6b7", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Params:\n", + " TIME: int\n", + " MEAN_BLOCK_TIME: int\n", + " honest_hash_power: np.array\n", + " adversary_control: float\n", + "\n", + " @property\n", + " def N(self):\n", + " return len(self.hash_power)\n", + "\n", + " @property\n", + " def hash_power(self):\n", + " return np.append(self.honest_hash_power, self.honest_hash_power.sum() / (1/self.adversary_control - 1))\n", + " \n", + " @property\n", + " def relative_hash_power(self):\n", + " return self.hash_power / self.hash_power.sum()\n", + "\n", + " def next_block(self):\n", + " return np.random.exponential(self.MEAN_BLOCK_TIME / self.relative_hash_power)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5616a037-ef12-44a0-915f-ca64e774c549", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rOaZZ57RLbfcIqfTqVtuuUUtLS2XfdxUkYz3s6qqSg6HI2LxeDwx7Vcyxfo9PXr0qO68805NmTJFDodDtbW1MTkuAKQUy2DNzc1WRkaGtWvXLuvYsWPWww8/bGVlZVnvvPPOiPVvv/22NWHCBOvhhx+2jh07Zu3atcvKyMiw/v3f/92uaW9vt9LS0qzq6mrrzTfftKqrq6309HTr4MGDoz5uqkjW+/nII49Yt956q9XT02Mvvb29ce9vIsTjPX3ttdesdevWWT//+c8tj8djbdu27bKPi9Tw3e9+17rqqqusO++8M9lNiYtQKGRNnz7dKikpsYqKiqydO3cmu0lxkZaWZpWUlFglJSXW8uXLk92cmPvf//1fu38lJSXWuHHjrJaWlpgfx+iA8td//dfWQw89FLHupptusjZs2DBi/fr1662bbropYt2KFSus2267zX69ePFi62//9m8jaubNm2fdc889oz5uqkjW+/nII49YJSUll9l6M8XjPf1z11133YgBZaz+jl7pfvvb31rPPffcmA0oH3/8sXX69GnLsizr9OnTVkFBgfX+++8nuVWxl5eXl+wmJEx/f7+Vl5dnDQwMxHzfxp7iOf9o9YqKioj1n/do9f/8z/8cVj9v3jy9/vrrOnv27OfWnN/naI6bCpL1fp53/Phxeb1eFRQU6J577tHbb799uV1Kuni9p/E4LlLDt771LWVnZye7GXGTlpamCRMmSJI++ugjnTt3Tha34kppzz33nObMmaOsrKyY79vYgDKaR6sHAoER6z/++GO9//77n1tzfp+jOW4qSNb7KUkzZszQ008/rZdeekm7du1SIBBQWVmZPvjgg1h0LWni9Z7G47iIv1deeUV33HGHvF6vHA6Hnn322WE1qX7dUCz6+OGHH6qkpETXXHON1q9fr/z8/AS1/tLEoo+hUEilpaX6xje+oba2tgS1/NLF8nf1X//1X3X33XfHpZ3GBpTzonm0+sXqL1x/KfuM9ripIhnvZ2Vlpe68804VFxervLxce/fulSQ1NDSMrhOGicd7Go/jIr5Onz6tkpISbd++fcTtv/jFL+T3+7Vp0yYdOnRIt99+uyorK3Xy5MkEt3T0YtHHq666Sv/93/+trq4uNTU16b333ktU8y9JLPp44sQJdXZ26mc/+5n+/u//XqFQKFHNvySx+l0NhUJ69dVX9e1vfzsu7TQ2oIzm0eoej2fE+vT0dOXl5X1uzfl9jua4qSBZ7+dIsrKyVFxcrOPHj4+mK8aI13saj+Mi/iorK/XYY49p0aJFI27funWrli9frgcffFA333yzamtr5fP5tGPHjgS3dPRi2Ue3262pU6fqlVdeiXezoxKLPnq9XklSUVGRbrnlFv3hD39ISNsvVaz+H3/1q19p3rx5GjduXFzaaWxAGc2j1WfOnDmsft++fZo+fboyMjI+t+b8PsfqI92T9X6OJBwO680339TkyZNH0xVjxOs9jcdxkVxXwnVDl9LH9957z55NCIVCeuWVV3TjjTcmvK2jdSl97OvrUzgcliSdOnVKx44d0/XXX5/wto5WNL+r8Ty9Iyk1vmZcV1dnHTt2zPL7/VZWVpZ14sQJy7Isa8OGDdb9999v15//CucPfvAD69ixY1ZdXd2wr3C++uqrVlpamrV582brzTfftDZv3nzRrxlf7LipKlnv59q1a62XX37Zevvtt62DBw9aCxYssLKzs1P+/bSs+Lyn4XDYOnTokHXo0CFr8uTJ1rp166xDhw5Zx48fv+TjIrkkRXzt8k9/+pMlyXr11Vcj6n7yk59YN9xwg/26oqLCys/Pt8aPH2/95V/+pfXaa68lqslRG00fX3/9daukpMSaOnWqVVxcbD311FOJbHLURtPHV1991SoqKrKmTp1qlZSUxOXrt7E02t/VDz/80Jo0aZIVDofj17a47TlG/uVf/sW67rrrrMzMTOurX/2q1dbWZm9bunSpNWvWrIj6l19+2Zo2bZqVmZlpTZkyxdqxY8ewff7bv/2bdeONN1oZGRnWTTfdZD3zzDNRHTeVJeP9vPvuu63JkydbGRkZltfrtRYtWmQdPXo0Lv1Lhli/p11dXZakYcuF+xmrv6NjwcUG/fb29oi6xx57zLrxxhsT3LrYoI+foY9xaltCjwYAV4ALB/1wOGylpaVZv/zlLyPqvv/971vf/OY3E9y62KCPn6GP8WHsNSgAMFZcCdcN0Uf6GGvpCT0aAIxRAwMD+uMf/2i/7urq0htvvKHc3Fxde+21WrNmje6//35Nnz5dM2fO1M6dO3Xy5Ek99NBDSWx1dOgjfUyohM7XAMAY9bvf/W7Ea4eWLl1q16T6dUP08VP0MTEclsV9hgEAgFm4BgUAABiHgAIAAIxDQAEAAMYhoAAAAOMQUAAAgHEIKAAAwDgEFAAAYBwCCgAAMA4BBQAAGIeAAgAAjENAAQAAxiGgAAAA4/w/rIolILqRbDwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(0)\n", + "\n", + "params = Params(\n", + " TIME=60 * 60, # seconds\n", + " MEAN_BLOCK_TIME=10*60,\n", + " honest_hash_power = np.random.pareto(10, size=1000),\n", + " adversary_control=0.001,\n", + ")\n", + "ax = plt.subplot(121)\n", + "ax.hist(params.relative_hash_power)\n", + "ax = plt.subplot(122)\n", + "next_block_times = params.next_block()\n", + "ax.hist(next_block_times / 60, bins=1000)\n", + "ax.set_xscale(\"log\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "48c54c25-c7b4-47f9-a00a-5f10997cf185", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABjUAAAMWCAYAAAC5gwQ2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADKsklEQVR4nOzdf3zP9f7/8fvbftnY3mzsV82mYn5sJIrhhDC/RlGtWg0ROgoLiTqFc2TooHM4JDlUSKdTzlFqmWIlPxsrJKnjZ20mzXuIbbbX948+Xt/e9sPGtvfe2+16ubwuF6/n6/F6vR/P1969ez3fj/fz9bIYhmEIAAAAAAAAAACgiqvl6AQAAAAAAAAAAABKg6IGAAAAAAAAAABwChQ1AAAAAAAAAACAU6CoAQAAAAAAAAAAnAJFDQAAAAAAAAAA4BQoagAAAAAAAAAAAKdAUQMAAAAAAAAAADgFihoAAAAAAAAAAMApUNQAAAAAAAAAAABOgaIGAKCQI0eOyGKxaMWKFY5ORZK0aNGicsnFYrFo2rRpZd6vqp0PAAAA1BzTpk2TxWLRzz//fNXYrl27qmvXrhWWS1hYmGJiYip938q2YsUKWSwWHTlyxGE5rF69Wi+//HK5HvN63h9hYWEaOnRoueYDANeKogYAoJCgoCBt27ZN/fr1c3QqksqvqAEAAAAAzqAiihoAUF24OjoBAEDV4+HhoQ4dOjg6DQAAAABQXl6eLBaLXF35GgsAwEwNAKiWLk9R//rrr3X//ffLarXK19dX48eP16VLl3Tw4EH17t1b3t7eCgsL05w5c+z2v/J2SxcvXlSbNm10yy23yGazmXEZGRkKDAxU165dlZ+fL0kaOnSo6tatq++//159+/ZV3bp1FRISogkTJignJ8fudXJzczVjxgw1a9ZMHh4eatiwoR599FGdOnXKjAkLC9P+/fuVkpIii8Uii8WisLCwEvufnZ2tESNGyM/PT3Xr1lXv3r313XffFRl76NAhxcXFyd/fXx4eHmrevLn+8Y9/XPUcf//993r00UfVpEkTeXl56YYbblD//v21d+9eM+bcuXOqV6+eRo0aVWj/I0eOyMXFRS+99NJVXwsAAAA4fvy4Bg0aJB8fH1mtVj3yyCN2183F+eWXXzR69GjdcMMNcnd310033aTnnnuu0LV5QUGBFixYoFtvvVWenp6qV6+eOnTooHXr1pV4/EWLFsnV1VVTp04tVT/Wrl2rVq1aqXbt2rrpppv097//3W775s2bZbFY9Oabb2rChAm64YYb5OHhoe+//16S9M9//lOtW7dW7dq15evrq4EDB+rAgQN2x/jyyy/14IMPKiwsTJ6engoLC9NDDz2ko0ePFspn+/bt6tSpk2rXrq3g4GBNmTJFeXl5Rea+evVqRUVFqW7duqpbt65uvfVWLVu2zNyenJysu+++WzfeeKNq166tW265RaNGjSp067BTp05p5MiRCgkJMcdBnTp10saNGyX9dpuo9evX6+jRo+YYyGKxlOr8SpJhGJozZ45CQ0NVu3Zt3Xbbbfroo4+KjM3OztbEiRPVuHFjubu764YbblBCQoLOnz9f4mtcvHhREyZM0K233mqON6OiovTf//7XLq579+5q1qyZDMMolOMtt9xSZe4OAMC5UOIGgGosNjZWjzzyiEaNGqXk5GTNmTNHeXl52rhxo0aPHq2JEydq9erVeuaZZ3TLLbdo0KBBRR6ndu3a+te//qW2bdtq2LBhevfdd1VQUKCHH35YhmHorbfekouLixmfl5enAQMGaPjw4ZowYYI+++wz/eUvf5HVatULL7wg6bdB0913363PP/9ckyZNUseOHXX06FFNnTpVXbt21ZdffilPT0+tXbtW9913n6xWqxYtWiTpt5kkxTEMQ/fcc4+2bt2qF154Qbfffru++OIL9enTp1DsN998o44dO6pRo0aaO3euAgMD9fHHH2vs2LH6+eefSxyY/fTTT/Lz89OsWbPUsGFD/fLLL3r99dfVvn177dmzR+Hh4apbt66GDRumV199VXPmzJHVajX3X7Rokdzd3TVs2LCS/4gAAACApIEDByo2NlaPP/649u/fr+eff17ffPONduzYITc3tyL3uXjxorp166YffvhB06dPV6tWrfT5558rMTFRaWlpWr9+vRk7dOhQrVy5UsOHD9ef//xnubu7a/fu3cU+V8IwDD399NP6+9//rtdee61Uz1tIS0tTQkKCpk2bpsDAQK1atUrjxo1Tbm6uJk6caBc7ZcoURUVF6ZVXXlGtWrXk7++vxMREPfvss3rooYeUmJio06dPa9q0aYqKitKuXbvUpEkTSb/9gCg8PFwPPvigfH19lZ6ersWLF+v222/XN998owYNGkj6bTzQvXt3hYWFacWK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vb3N+Pnz58vV1VWxsbG6cOGCunfvrhUrVsjFxcWMWbVqlcaOHavo6GhJ0oABA7Rw4cKydh8AAADAdSjP8QQAAACAmqfMRY1x48apXbt2+uqrr+Tn52e2Dxw4UI899liZjmUYxlVjLBaLpk2bpmnTphUbU7t2bS1YsEALFiwoNsbX11crV64sU34AAAAAyld5jicAAAAA1DxlLmps2bJFX3zxhdzd3e3aQ0ND9eOPP5ZbYgAAAACqH8YTAAAAAK5HrbLuUFBQoPz8/ELtJ06csLslFAAAAABcifEEAAAAgOtR5qJGz5499fLLL5vrFotF586d09SpU9W3b9/yzA0AAABANcN4AgAAAMD1KHNRY/78+UpJSVGLFi108eJFxcXFKSwsTD/++KNmz55dETkCAAAAqCYqezzx448/6pFHHpGfn5+8vLx06623KjU11dxuGIamTZum4OBgeXp6qmvXrtq/f7/dMXJycjRmzBg1aNBAderU0YABA3TixAm7mKysLMXHx8tqtcpqtSo+Pl5nzpwp9/5Ud2GT1xe7AAAAANI1PFMjODhYaWlpeuutt7R7924VFBRo+PDhevjhh+Xp6VkROQIAAACoJipzPJGVlaVOnTqpW7du+uijj+Tv768ffvhB9erVM2PmzJmjefPmacWKFWratKlmzJihnj176uDBg+btsBISEvT+++9rzZo18vPz04QJExQTE6PU1FS5uLhIkuLi4nTixAklJSVJkkaOHKn4+Hi9//775donAAAAoKazGIZhODoJZ5CdnS2r1SqbzSYfHx9HpwNcN37tBkc7Mqufo1MAAJSBM14PT548WV988YU+//zzIrcbhqHg4GAlJCTomWeekfTbrIyAgADNnj1bo0aNks1mU8OGDfXmm2/qgQcekCT99NNPCgkJ0YcffqhevXrpwIEDatGihbZv36727dtLkrZv366oqCh9++23Cg8PL1W+VeEcV+VrRK4dAAAAqrfSXg+XeabGG2+8UeL2wYMHl/WQAAAAAGqIyhxPrFu3Tr169dL999+vlJQU3XDDDRo9erRGjBghSTp8+LAyMjIUHR1t7uPh4aEuXbpo69atGjVqlFJTU5WXl2cXExwcrIiICG3dulW9evXStm3bZLVazYKGJHXo0EFWq1Vbt24ttqiRk5OjnJwccz07O7vc+g4AAABUV2UuaowbN85uPS8vT7/++qvc3d3l5eVFUQMAAABAsSpzPPG///1Pixcv1vjx4/Xss89q586dGjt2rDw8PDR48GBlZGRIkgICAuz2CwgI0NGjRyVJGRkZcnd3V/369QvFXN4/IyND/v7+hV7f39/fjClKYmKipk+ffl19BAAAAGqaMj8oPCsry245d+6cDh48qM6dO+utt96qiBwBAAAAVBOVOZ4oKCjQbbfdppkzZ6pNmzYaNWqURowYocWLF9vFWSwWu3XDMAq1XenKmKLir3acKVOmyGazmcvx48dL0y0AAACgRitzUaMoTZo00axZswr96goAAAAArqaixhNBQUFq0aKFXVvz5s117NgxSVJgYKAkFZpNkZmZac7eCAwMVG5urrKyskqMOXnyZKHXP3XqVKFZIL/n4eEhHx8fuwUAAABAycp8+6niuLi46KeffiqvwwEoJ1X5YY8AAACXVcR4olOnTjp48KBd23fffafQ0FBJUuPGjRUYGKjk5GS1adNGkpSbm6uUlBTNnj1bktS2bVu5ubkpOTlZsbGxkqT09HTt27dPc+bMkSRFRUXJZrNp586duuOOOyRJO3bskM1mU8eOHcu1TwAAAEBNV+aixrp16+zWDcNQenq6Fi5cqE6dOpVbYgAAAACqn8ocTzz11FPq2LGjZs6cqdjYWO3cuVOvvvqqXn31VUm/3TIqISFBM2fOVJMmTdSkSRPNnDlTXl5eiouLkyRZrVYNHz5cEyZMkJ+fn3x9fTVx4kRFRkaqR48ekn6b/dG7d2+NGDFCS5YskSSNHDlSMTExxT4kHAAAAMC1KXNR45577rFbt1gsatiwoe666y7NnTu3vPICAAAAUA1V5nji9ttv19q1azVlyhT9+c9/VuPGjfXyyy/r4YcfNmMmTZqkCxcuaPTo0crKylL79u21YcMGeXt7mzHz58+Xq6urYmNjdeHCBXXv3l0rVqyQi4uLGbNq1SqNHTtW0dHRkqQBAwZo4cKF5dofAAAAAJLFMAzD0Uk4g+zsbFmtVtlsNu51C6fC7afgbI7M6ufoFAAAReB6uOJVhXNcla8duUYAAACo3kp7PVwuDwoHAAAAAAAAAACoaGW+/dT48eNLHTtv3ryyHh4AAABANcZ4AgAAAMD1KHNRY8+ePdq9e7cuXbpkPvTuu+++k4uLi2677TYzzmKxlF+WAAAAAKoFxhMAAAAArkeZixr9+/eXt7e3Xn/9ddWvX1+SlJWVpUcffVR/+MMfNGHChHJPEgAAAED1wHgCAAAAwPUo8zM15s6dq8TERHMAIkn169fXjBkzNHfu3HJNDgAAAED1wngCAAAAwPUo80yN7OxsnTx5Ui1btrRrz8zM1NmzZ8stMQAAAADVD+MJXKuwyeuLbD8yq18lZwIAAABHKvNMjYEDB+rRRx/Vv//9b504cUInTpzQv//9bw0fPlyDBg2qiBwBAAAAVBOMJwAAAABcjzLP1HjllVc0ceJEPfLII8rLy/vtIK6uGj58uF566aVyTxAAULMU9ytMiV9iAkB1wHgCAAAAwPUoc1HDy8tLixYt0ksvvaQffvhBhmHolltuUZ06dSoiPwAAAADVCOMJAAAAANejzLefuiw9PV3p6elq2rSp6tSpI8MwyjMvAAAAANUY4wkAAAAA16LMMzVOnz6t2NhYbdq0SRaLRYcOHdJNN92kxx57TPXq1dPcuXMrIk8AJSjpdj0AAABVCeMJAAAAANejzDM1nnrqKbm5uenYsWPy8vIy2x944AElJSWVa3IAAAAAqhfGEwAAAACuR5lnamzYsEEff/yxbrzxRrv2Jk2a6OjRo+WWGAAAAIDqh/EEAAAAgOtR5pka58+ft/tF1WU///yzPDw8yiUpAAAAANUT4wkAAAAA16PMRY0777xTb7zxhrlusVhUUFCgl156Sd26dSvX5AAAAABUL4wnAAAAAFyPMt9+6qWXXlLXrl315ZdfKjc3V5MmTdL+/fv1yy+/6IsvvqiIHAEAAABUE4wnAAAAAFyPMs/UaNGihb7++mvdcccd6tmzp86fP69BgwZpz549uvnmmysiRwAAAADVBOMJAAAAANejTEWNvLw8devWTdnZ2Zo+fbo++OADffjhh5oxY4aCgoLK/OKfffaZ+vfvr+DgYFksFv3nP/+x2z506FBZLBa7pUOHDnYxOTk5GjNmjBo0aKA6depowIABOnHihF1MVlaW4uPjZbVaZbVaFR8frzNnzpQ5XwAAAADXrrzHEwAAAABqnjIVNdzc3LRv3z5ZLJZyefHz58+rdevWWrhwYbExvXv3Vnp6url8+OGHdtsTEhK0du1arVmzRlu2bNG5c+cUExOj/Px8MyYuLk5paWlKSkpSUlKS0tLSFB8fXy59AAAAAFA65T2eAAAAAFDzlPmZGoMHD9ayZcs0a9as637xPn36qE+fPiXGeHh4KDAwsMhtNptNy5Yt05tvvqkePXpIklauXKmQkBBt3LhRvXr10oEDB5SUlKTt27erffv2kqSlS5cqKipKBw8eVHh4+HX3AwAAAEDplOd4AgAAAEDNU+aiRm5url577TUlJyerXbt2qlOnjt32efPmlVtykrR582b5+/urXr166tKli1588UX5+/tLklJTU5WXl6fo6GgzPjg4WBEREdq6dat69eqlbdu2yWq1mgUNSerQoYOsVqu2bt1abFEjJydHOTk55np2dna59gsAAACoiSp7PAEAAACgeilVUePrr79WRESEatWqpX379um2226TJH333Xd2ceU9jbxPnz66//77FRoaqsOHD+v555/XXXfdpdTUVHl4eCgjI0Pu7u6qX7++3X4BAQHKyMiQJGVkZJhFkN/z9/c3Y4qSmJio6dOnl2t/AADXJ2zy+iLbj8zqV8mZAADKwlHjCdQMXB8AAADULKUqarRp00bp6eny9/fX0aNHtWvXLvn5+VV0bnrggQfMf0dERKhdu3YKDQ3V+vXrNWjQoGL3MwzDbkBU1ODoypgrTZkyRePHjzfXs7OzFRISUtYuAAAAADWeo8YTAAAAAKqfUj0ovF69ejp8+LAk6ciRIyooKKjQpIoTFBSk0NBQHTp0SJIUGBio3NxcZWVl2cVlZmYqICDAjDl58mShY506dcqMKYqHh4d8fHzsFgAAAABlV1XGEwAAAACcX6lmatx7773q0qWLgoKCZLFY1K5dO7m4uBQZ+7///a9cE/y906dP6/jx4woKCpIktW3bVm5ubkpOTlZsbKwkKT09Xfv27dOcOXMkSVFRUbLZbNq5c6fuuOMOSdKOHTtks9nUsWPHCssVAAAAwG+qyngCAAAAgPMrVVHj1Vdf1aBBg/T9999r7NixGjFihLy9va/7xc+dO6fvv//eXD98+LDS0tLk6+srX19fTZs2Tffee6+CgoJ05MgRPfvss2rQoIEGDhwoSbJarRo+fLgmTJggPz8/+fr6auLEiYqMjFSPHj0kSc2bN1fv3r01YsQILVmyRJI0cuRIxcTEFPuQcAAAAADlp6LGEwAAAABqnlIVNSSpd+/ekqTU1FSNGzeuXAYhX375pbp162auX36GxZAhQ7R48WLt3btXb7zxhs6cOaOgoCB169ZNb7/9tt1rz58/X66uroqNjdWFCxfUvXt3rVixwu6XX6tWrdLYsWMVHR0tSRowYIAWLlx43fkDAAAAKJ2KGE8AAAAAqHkshmEYjk7CGWRnZ8tqtcpms/F8DVQ5YZPXOzoFwKGOzOrn6BQAoNrjerjiVYVzXJ2uK7k+AAAAcC6lvR4u1YPCAQAAAAAAAAAAHI2iBgAAAAAAAAAAcAoUNQAAAAAAAAAAgFMo9YPCAThedbrHMVCeSvpvg/tpAwAAAAAAVB/M1AAAAAAAAAAAAE6BogYAAAAAAAAAAHAKFDUAAAAAAAAAAIBToKgBAAAAAAAAAACcAkUNAAAAAAAAAADgFFwdnQAAAAAAAOUtbPL6YrcdmdWvEjMBAABAeWKmBgAAAAAAAAAAcAoUNQAAAAAAAAAAgFOgqAEAAACgRkhMTJTFYlFCQoLZZhiGpk2bpuDgYHl6eqpr167av3+/3X45OTkaM2aMGjRooDp16mjAgAE6ceKEXUxWVpbi4+NltVpltVoVHx+vM2fOVEKvAAAAgJqFogYAAACAam/Xrl169dVX1apVK7v2OXPmaN68eVq4cKF27dqlwMBA9ezZU2fPnjVjEhIStHbtWq1Zs0ZbtmzRuXPnFBMTo/z8fDMmLi5OaWlpSkpKUlJSktLS0hQfH19p/QMAAABqCooaAAAAAKq1c+fO6eGHH9bSpUtVv359s90wDL388st67rnnNGjQIEVEROj111/Xr7/+qtWrV0uSbDabli1bprlz56pHjx5q06aNVq5cqb1792rjxo2SpAMHDigpKUmvvfaaoqKiFBUVpaVLl+qDDz7QwYMHHdJnAAAAoLqiqAEAAACgWnviiSfUr18/9ejRw6798OHDysjIUHR0tNnm4eGhLl26aOvWrZKk1NRU5eXl2cUEBwcrIiLCjNm2bZusVqvat29vxnTo0EFWq9WMAQAAAFA+XB2dAAB7YZPXOzoFoFop7r+pI7P6VXImAABHWLNmjXbv3q1du3YV2paRkSFJCggIsGsPCAjQ0aNHzRh3d3e7GR6XYy7vn5GRIX9//0LH9/f3N2OKkpOTo5ycHHM9Ozu7lL0CAAAAai5magAAAAColo4fP65x48Zp5cqVql27drFxFovFbt0wjEJtV7oypqj4qx0nMTHRfLC41WpVSEhIia8JAAAAgKIGAAAAgGoqNTVVmZmZatu2rVxdXeXq6qqUlBT9/e9/l6urqzlD48rZFJmZmea2wMBA5ebmKisrq8SYkydPFnr9U6dOFZoF8ntTpkyRzWYzl+PHj19XfwEAAICagNtPAQAAAKiWunfvrr1799q1Pfroo2rWrJmeeeYZ3XTTTQoMDFRycrLatGkjScrNzVVKSopmz54tSWrbtq3c3NyUnJys2NhYSVJ6err27dunOXPmSJKioqJks9m0c+dO3XHHHZKkHTt2yGazqWPHjsXm5+HhIQ8Pj3LvN66O21MCAAA4L4oaAAAAAKolb29vRURE2LXVqVNHfn5+ZntCQoJmzpypJk2aqEmTJpo5c6a8vLwUFxcnSbJarRo+fLgmTJggPz8/+fr6auLEiYqMjDQfPN68eXP17t1bI0aM0JIlSyRJI0eOVExMjMLDwyuxxwAAAED1R1EDAAAAQI01adIkXbhwQaNHj1ZWVpbat2+vDRs2yNvb24yZP3++XF1dFRsbqwsXLqh79+5asWKFXFxczJhVq1Zp7Nixio6OliQNGDBACxcurPT+AAAAANWdxTAMw9FJOIPs7GxZrVbZbDb5+Pg4Oh1UY8VNhQdQvri9BACUDdfDFa8qnOOafi3K9QEAAIDjlPZ6mAeFAwAAAAAAAAAAp0BRAwAAAAAAAAAAOAWKGgAAAAAAAAAAwClQ1AAAAAAAAAAAAE7B1dEJAADgCCU9CJWHhAIAAAAAAFRNzNQAAAAAAAAAAABOgaIGAAAAAAAAAABwChQ1AAAAAAAAAACAU3BoUeOzzz5T//79FRwcLIvFov/85z922w3D0LRp0xQcHCxPT0917dpV+/fvt4vJycnRmDFj1KBBA9WpU0cDBgzQiRMn7GKysrIUHx8vq9Uqq9Wq+Ph4nTlzpoJ7BwAAAAAAAAAAypNDixrnz59X69attXDhwiK3z5kzR/PmzdPChQu1a9cuBQYGqmfPnjp79qwZk5CQoLVr12rNmjXasmWLzp07p5iYGOXn55sxcXFxSktLU1JSkpKSkpSWlqb4+PgK7x8AAAAAAAAAACg/ro588T59+qhPnz5FbjMMQy+//LKee+45DRo0SJL0+uuvKyAgQKtXr9aoUaNks9m0bNkyvfnmm+rRo4ckaeXKlQoJCdHGjRvVq1cvHThwQElJSdq+fbvat28vSVq6dKmioqJ08OBBhYeHV05nAQAAAAAAAADAdXFoUaMkhw8fVkZGhqKjo802Dw8PdenSRVu3btWoUaOUmpqqvLw8u5jg4GBFRERo69at6tWrl7Zt2yar1WoWNCSpQ4cOslqt2rp1K0UNAAAAAIAkKWzy+mK3HZnVrxIzAQAAQHGqbFEjIyNDkhQQEGDXHhAQoKNHj5ox7u7uql+/fqGYy/tnZGTI39+/0PH9/f3NmKLk5OQoJyfHXM/Ozr62jgDFKGnABAAAAAAAAAAozKHP1CgNi8Vit24YRqG2K10ZU1T81Y6TmJhoPljcarUqJCSkjJkDAAAAAAAAAIDyVGWLGoGBgZJUaDZFZmamOXsjMDBQubm5ysrKKjHm5MmThY5/6tSpQrNAfm/KlCmy2Wzmcvz48evqDwAAAAAAAAAAuD5VtqjRuHFjBQYGKjk52WzLzc1VSkqKOnbsKElq27at3Nzc7GLS09O1b98+MyYqKko2m007d+40Y3bs2CGbzWbGFMXDw0M+Pj52CwAAAAAAAAAAcByHPlPj3Llz+v777831w4cPKy0tTb6+vmrUqJESEhI0c+ZMNWnSRE2aNNHMmTPl5eWluLg4SZLVatXw4cM1YcIE+fn5ydfXVxMnTlRkZKR69OghSWrevLl69+6tESNGaMmSJZKkkSNHKiYmhoeEAwAAAAAAAADgRBxa1Pjyyy/VrVs3c338+PGSpCFDhmjFihWaNGmSLly4oNGjRysrK0vt27fXhg0b5O3tbe4zf/58ubq6KjY2VhcuXFD37t21YsUKubi4mDGrVq3S2LFjFR0dLUkaMGCAFi5cWEm9BAAAAAAAAAAA5cFiGIbh6CScQXZ2tqxWq2w2G7eiQrkIm7ze0SkAKKMjs/o5OgUAcBiuhyteVTjHXKMWj+sAAACAilXa6+Eq+0wNAAAAAAAAAACA36OoAQAAAAAAAAAAnIJDn6kBAAAAAIAzKO7WXNyWCgAAoHJR1AAAoJRKus84X2gAAAAAAABUPG4/BQAAAAAAAAAAnAJFDQAAAAAAAAAA4BQoagAAAAAAAAAAAKfAMzWAClTS/fcBAAAAAAAAAGXDTA0AAAAAAAAAAOAUKGoAAAAAAAAAAACnwO2nAAAAAAC4RiXdcvbIrH6VmAkAAEDNQFEDAIByUNwXGnyZAQAAAAAAUH64/RQAAAAAAAAAAHAKFDUAAAAAAAAAAIBToKgBAAAAAAAAAACcAkUNAAAAAAAAAADgFChqAAAAAAAAAAAAp0BRAwAAAAAAAAAAOAWKGgAAAAAAAAAAwCm4OjoBAAAAAACqo7DJ64tsPzKrXyVnAgAAUH1Q1ADKQXGDFQDgywwAAAAAAIDyw+2nAAAAAAAAAACAU6CoAQAAAKBaSkxM1O233y5vb2/5+/vrnnvu0cGDB+1iDMPQtGnTFBwcLE9PT3Xt2lX79++3i8nJydGYMWPUoEED1alTRwMGDNCJEyfsYrKyshQfHy+r1Sqr1ar4+HidOXOmorsIAAAA1DgUNQAAAABUSykpKXriiSe0fft2JScn69KlS4qOjtb58+fNmDlz5mjevHlauHChdu3apcDAQPXs2VNnz541YxISErR27VqtWbNGW7Zs0blz5xQTE6P8/HwzJi4uTmlpaUpKSlJSUpLS0tIUHx9fqf0FAAAAagKLYRiGo5NwBtnZ2bJarbLZbPLx8XF0OqhieKYGgLLimRoAnE11uB4+deqU/P39lZKSojvvvFOGYSg4OFgJCQl65plnJP02KyMgIECzZ8/WqFGjZLPZ1LBhQ7355pt64IEHJEk//fSTQkJC9OGHH6pXr146cOCAWrRooe3bt6t9+/aSpO3btysqKkrffvutwsPDS5VfVTjHXNc6FtcHAACgJivt9TAzNQAAAADUCDabTZLk6+srSTp8+LAyMjIUHR1txnh4eKhLly7aunWrJCk1NVV5eXl2McHBwYqIiDBjtm3bJqvVahY0JKlDhw6yWq1mDAAAAIDy4eroBAAAAACgohmGofHjx6tz586KiIiQJGVkZEiSAgIC7GIDAgJ09OhRM8bd3V3169cvFHN5/4yMDPn7+xd6TX9/fzOmKDk5OcrJyTHXs7Ozr6FnAAAAQM1CUQMAAAco6fYe3HoCAMrfk08+qa+//lpbtmwptM1isditG4ZRqO1KV8YUFX+14yQmJmr69OlXSx0AAADA73D7KQAAAADV2pgxY7Ru3Tpt2rRJN954o9keGBgoSYVmU2RmZpqzNwIDA5Wbm6usrKwSY06ePFnodU+dOlVoFsjvTZkyRTabzVyOHz9+bR0EAAAAahBmagBlwIMTAQAAnIdhGBozZozWrl2rzZs3q3HjxnbbGzdurMDAQCUnJ6tNmzaSpNzcXKWkpGj27NmSpLZt28rNzU3JycmKjY2VJKWnp2vfvn2aM2eOJCkqKko2m007d+7UHXfcIUnasWOHbDabOnbsWGx+Hh4e8vDwKPd+AwAAANUZRQ0AAAAA1dITTzyh1atX67///a+8vb3NGRlWq1Wenp6yWCxKSEjQzJkz1aRJEzVp0kQzZ86Ul5eX4uLizNjhw4drwoQJ8vPzk6+vryZOnKjIyEj16NFDktS8eXP17t1bI0aM0JIlSyRJI0eOVExMjMLDwx3TeTglbk8JAABwdVX69lPTpk2TxWKxWy5PEZd+++XVtGnTFBwcLE9PT3Xt2lX79++3O0ZOTo7GjBmjBg0aqE6dOhowYIBOnDhR2V0BAAAAUMkWL14sm82mrl27KigoyFzefvttM2bSpElKSEjQ6NGj1a5dO/3444/asGGDvL29zZj58+frnnvuUWxsrDp16iQvLy+9//77cnFxMWNWrVqlyMhIRUdHKzo6Wq1atdKbb75Zqf0FAAAAagKLYRiGo5MozrRp0/Tvf/9bGzduNNtcXFzUsGFDSdLs2bP14osvasWKFWratKlmzJihzz77TAcPHjQHIX/84x/1/vvva8WKFfLz89OECRP0yy+/KDU11W4QcjXZ2dmyWq2y2Wzy8fEp347CaXD7KQCOxC80ATgS18MVryqcY653qy6uAwAAQHVX2uvhKn/7KVdXV7vZGZcZhqGXX35Zzz33nAYNGiRJev311xUQEKDVq1dr1KhRstlsWrZsmd58801zavjKlSsVEhKijRs3qlevXpXaFwAAAAAAAAAAcO2q9O2nJOnQoUMKDg5W48aN9eCDD+p///ufJOnw4cPKyMhQdHS0Gevh4aEuXbpo69atkqTU1FTl5eXZxQQHBysiIsKMAQAAAAAAAAAAzqFKz9Ro37693njjDTVt2lQnT57UjBkz1LFjR+3fv998yF9AQIDdPgEBATp69KgkKSMjQ+7u7qpfv36hmMv7FycnJ0c5OTnmenZ2dnl0CQAAAAAAAAAAXKMqXdTo06eP+e/IyEhFRUXp5ptv1uuvv64OHTpIkiwWi90+hmEUartSaWISExM1ffr0a8wcAAAAAIDyU9zzTnjWBgAAqGmq/O2nfq9OnTqKjIzUoUOHzOdsXDnjIjMz05y9ERgYqNzcXGVlZRUbU5wpU6bIZrOZy/Hjx8uxJwAAAAAAAAAAoKycqqiRk5OjAwcOKCgoSI0bN1ZgYKCSk5PN7bm5uUpJSVHHjh0lSW3btpWbm5tdTHp6uvbt22fGFMfDw0M+Pj52CwAAAAAAAAAAcJwqffupiRMnqn///mrUqJEyMzM1Y8YMZWdna8iQIbJYLEpISNDMmTPVpEkTNWnSRDNnzpSXl5fi4uIkSVarVcOHD9eECRPk5+cnX19fTZw4UZGRkerRo4eDewcAAAAAAAAAAMqiShc1Tpw4oYceekg///yzGjZsqA4dOmj79u0KDQ2VJE2aNEkXLlzQ6NGjlZWVpfbt22vDhg3y9vY2jzF//ny5uroqNjZWFy5cUPfu3bVixQq5uLg4qlsAAAAAAAAAAOAaWAzDMBydhDPIzs6W1WqVzWbjVlQ1WHEP5wOAysCDQAE4EtfDFa8qnGOud6sXrh0AAIAzKe31cJWeqQE4AgM5AFVVSZ9PfGkBAAAAAABqAqd6UDgAAAAAAAAAAKi5KGoAAAAAAAAAAACnQFEDAAAAAAAAAAA4BYoaAAAAAAAAAADAKfCgcAAAqoHiHiLOA8QBAKi5uD4AAADVETM1AAAAAAAAAACAU2CmBgAAAAAANUhxMzgkZnEAAICqj6IGaqySLuQBoLrgSwsAAAAAAFCdcPspAAAAAAAAAADgFJipAQAAAAAAJPFwcQAAUPUxUwMAAAAAAAAAADgFZmoAAFBD8UtMAAAAAADgbJipAQAAAAAAAAAAnAIzNQAAAAAAQImKm+EpMcsTAABULooaqNZKuvAGABSNLy0AAAAAAEBVRVEDAAAAAABcM57TBQAAKhNFDQAAUGp8aQEAAAAAAByJogaqBW4zBQAAAABVCz+GAAAAFaGWoxMAAAAAAAAAAAAoDWZqAAAAAACASlPSTHtmcQAAgKuhqAEAAK4bt5cAAAAAAACVgaIGAAAAAACoEvihBAAAuBqeqQEAAAAAAAAAAJwCMzXgNEq67yoAAAAAoPriORwAAOAyihoAAKDC8AUEAAAAAAAoTxQ1AACAQ3DPbAAAUJH4cQUAANUTRQ0AAAAAAOC0ruVWxfy4AgAA50VRA1UOz84AgJrtWv4/wBcQAACgPDC7AwCAqq+WoxMAAAAAAAAAAAAoDWZqwCGYjQEAKE/M7gAAABWtrNcbXGsAAFAxKGoAAAAAAACUM350AQBAxahRRY1FixbppZdeUnp6ulq2bKmXX35Zf/jDHxydFgAAcAAeEAqgIjDmAHA9KIQAAHB1Naao8fbbbyshIUGLFi1Sp06dtGTJEvXp00fffPONGjVq5Oj0qi1uMwUAqE4ohAAoCWMOAI5QnuNurmkAAM7AYhiG4egkKkP79u112223afHixWZb8+bNdc899ygxMfGq+2dnZ8tqtcpms8nHx6ciU3VKFC8AACg/fKGAqojr4aurDmMOrusBlCeuaQAAZVHa6+EaMVMjNzdXqampmjx5sl17dHS0tm7dWuQ+OTk5ysnJMddtNpuk305sdRcx9WNHpwAAQI3W6Kl3Kvw19k3vVeGvgerl8nVwDflNVJlVlzFHQc6vDnttANVPZVzTVBaunQCg4pV2zFEjiho///yz8vPzFRAQYNceEBCgjIyMIvdJTEzU9OnTC7WHhIRUSI4AAACVyfqyozOAszp79qysVquj06hyGHMAQPXGtRMAVJ6rjTlqRFHjMovFYrduGEahtsumTJmi8ePHm+sFBQX65Zdf5OfnV+w+KJ3s7GyFhITo+PHj3LqgEnC+Kx/nvHJxvisf57xycb4rH+e8aIZh6OzZswoODnZ0KlWaM485eO87B/5OzoO/lXPg7+Q8+Fs5B/5OzqMq/q1KO+aoEUWNBg0ayMXFpdAvpDIzMwv9kuoyDw8PeXh42LXVq1evolKskXx8fKrMfzA1Aee78nHOKxfnu/JxzisX57vycc4LY4ZG8arTmIP3vnPg7+Q8+Fs5B/5OzoO/lXPg7+Q8qtrfqjRjjlqVkIfDubu7q23btkpOTrZrT05OVseOHR2UFQAAAIDqgjEHAAAAUDlqxEwNSRo/frzi4+PVrl07RUVF6dVXX9WxY8f0+OOPOzo1AAAAANUAYw4AAACg4tWYosYDDzyg06dP689//rPS09MVERGhDz/8UKGhoY5Orcbx8PDQ1KlTC021R8XgfFc+znnl4nxXPs555eJ8Vz7OOa6Vs485eO87B/5OzoO/lXPg7+Q8+Fs5B/5OzsOZ/1YWwzAMRycBAAAAAAAAAABwNTXimRoAAAAAAAAAAMD5UdQAAAAAAAAAAABOgaIGAAAAAAAAAABwChQ1AAAAAAAAAACAU6CogXI1bdo0WSwWuyUwMLDEfVJSUtS2bVvVrl1bN910k1555ZVKytb5hYWFFTrfFotFTzzxRJHxmzdvLjL+22+/reTMncdnn32m/v37Kzg4WBaLRf/5z3/sthuGoWnTpik4OFienp7q2rWr9u/ff9Xjvvvuu2rRooU8PDzUokULrV27toJ64FxKOt95eXl65plnFBkZqTp16ig4OFiDBw/WTz/9VOIxV6xYUeT7/uLFixXcG+dwtff40KFDC527Dh06XPW4vMeLdrXzXdR71WKx6KWXXir2mLzHi5eYmKjbb79d3t7e8vf31z333KODBw/axfA5Dvxm0aJFaty4sWrXrq22bdvq888/d3RKuEJpPtNQ9SQmJspisSghIcHRqaAIP/74ox555BH5+fnJy8tLt956q1JTUx2dFq5w6dIl/elPf1Ljxo3l6empm266SX/+859VUFDg6NRqtIr6vgTlryK+a3E0ihoody1btlR6erq57N27t9jYw4cPq2/fvvrDH/6gPXv26Nlnn9XYsWP17rvvVmLGzmvXrl125zo5OVmSdP/995e438GDB+32a9KkSWWk65TOnz+v1q1ba+HChUVunzNnjubNm6eFCxdq165dCgwMVM+ePXX27Nlij7lt2zY98MADio+P11dffaX4+HjFxsZqx44dFdUNp1HS+f7111+1e/duPf/889q9e7fee+89fffddxowYMBVj+vj42P3nk9PT1ft2rUrogtO52rvcUnq3bu33bn78MMPSzwm7/HiXe18X/k+/ec//ymLxaJ77723xOPyHi9aSkqKnnjiCW3fvl3Jycm6dOmSoqOjdf78eTOGz3FAevvtt5WQkKDnnntOe/bs0R/+8Af16dNHx44dc3Rq+J3SfKahatm1a5deffVVtWrVytGpoAhZWVnq1KmT3Nzc9NFHH+mbb77R3LlzVa9ePUenhivMnj1br7zyihYuXKgDBw5ozpw5eumll7RgwQJHp1ajVcT3JagYFfVdi0MZQDmaOnWq0bp161LHT5o0yWjWrJld26hRo4wOHTqUc2Y1w7hx44ybb77ZKCgoKHL7pk2bDElGVlZW5SZWTUgy1q5da64XFBQYgYGBxqxZs8y2ixcvGlar1XjllVeKPU5sbKzRu3dvu7ZevXoZDz74YLnn7MyuPN9F2blzpyHJOHr0aLExy5cvN6xWa/kmV00Vdc6HDBli3H333WU6Du/x0inNe/zuu+827rrrrhJjeI+XXmZmpiHJSElJMQyDz3HgsjvuuMN4/PHH7dqaNWtmTJ482UEZoTSu/ExD1XL27FmjSZMmRnJystGlSxdj3Lhxjk4J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oCDNnTu3UExubq4mTZqkG264QXXq1FH79u21efPmYo/5ww8/6O6771ZAQIDq1q2r22+/XRs3bjS3//nPf1ZkZGSh/dq2basXXnih2OOuWbNGAwYMsGv797//rcjISHl6esrPz089evSwmza9fPlyNW/eXLVr11azZs20aNEiu/1PnDihBx98UL6+vqpTp47atWunHTt2mNsXL16sm2++We7u7goPD9ebb75pt7/FYtFrr72mgQMHysvLS02aNNG6devsYj788EM1bdpUnp6e6tatm44cOWK3/ejRo+rfv7/q16+vOnXqqGXLlvrwww/N7b169dLp06eVkpJS7LkBAAAAqirGHIw5AMBRKGoAQDX09NNPa9OmTVq7dq02bNigzZs3KzU11S7m0Ucf1RdffKE1a9bo66+/1v3336/evXvr0KFDRR7z3Llz6tu3rzZu3Kg9e/aoV69e6t+/v44dOyZJGjZsmL755hvt2rXL3Ofrr7/Wnj17NHTo0CKPmZWVpX379qldu3ZmW3p6uh566CENGzZMBw4c0ObNmzVo0CAZhiFJWrp0qZ577jm9+OKLOnDggGbOnKnnn39er7/+uplnly5d9NNPP2ndunX66quvNGnSJBUUFEiS1q5dq3HjxmnChAnat2+fRo0apUcffVSbNm2yy2369OmKjY3V119/rb59++rhhx/WL7/8Ikk6fvy4Bg0apL59+yotLU2PPfaYJk+ebLf/E088oZycHH322Wfau3evZs+erbp165rb3d3d1bp1a33++edF/xEBAACAKowxB2MOAHAYAwBQrZw9e9Zwd3c31qxZY7adPn3a8PT0NMaNG2cYhmF8//33hsViMX788Ue7fbt3725MmTLFMAzDWL58uWG1Wkt8rRYtWhgLFiww1/v06WP88Y9/NNcTEhKMrl27Frv/nj17DEnGsWPHzLbU1FRDknHkyJEi9wkJCTFWr15t1/aXv/zFiIqKMgzDMJYsWWJ4e3sbp0+fLnL/jh07GiNGjLBru//++42+ffua65KMP/3pT+b6uXPnDIvFYnz00UeGYRjGlClTjObNmxsFBQVmzDPPPGNIMrKysgzDMIzIyEhj2rRpxfbdMAxj4MCBxtChQ0uMAQAAAKoaxhyMOQDAkZipAQDVzA8//KDc3FxFRUWZbb6+vgoPDzfXd+/eLcMw1LRpU9WtW9dcUlJS9MMPPxR53PPnz2vSpElq0aKF6tWrp7p16+rbb781fzUlSSNGjNBbb72lixcvKi8vT6tWrdKwYcOKzfXChQuSpNq1a5ttrVu3Vvfu3RUZGan7779fS5cuVVZWliTp1KlTOn78uIYPH26X94wZM8y809LS1KZNG/n6+hb5mgcOHFCnTp3s2jp16qQDBw7YtbVq1cr8d506deTt7a3MzEzzGB06dJDFYjFjfn++JWns2LGaMWOGOnXqpKlTp+rrr78ulIunp6d+/fXXYs8PAAAAUBUx5mDMAQCO5OroBAAA5cv4vynTJSkoKJCLi4tSU1Pl4uJit+3305V/7+mnn9bHH3+sv/71r7rlllvk6emp++67T7m5uWZM//795eHhobVr18rDw0M5OTm69957i82jQYMGkn6bEt6wYUNJkouLi5KTk7V161Zt2LBBCxYs0HPPPacdO3bIy8tL0m/Twdu3b293rMv98PT0vGr/fz8wkH47Z1e2ubm5Fdrn8nTy0pzjxx57TL169dL69eu1YcMGJSYmau7cuRozZowZ88svv+jmm2++6rEAAACAqoQxB2MOAHAkZmoAQDVzyy23yM3NTdu3bzfbsrKy9N1335nrbdq0UX5+vjIzM3XLLbfYLYGBgUUe9/PPP9fQoUM1cOBARUZGKjAwsNCD6lxdXTVkyBAtX75cy5cv14MPPmgOCopy8803y8fHR998841du8ViUadOnTR9+nTt2bNH7u7uWrt2rQICAnTDDTfof//7X6G8GzduLOm3XzulpaWZ96K9UvPmzbVlyxa7tq1bt6p58+bF5nmlFi1a2J1fSYXWJSkkJESPP/643nvvPU2YMEFLly61275v3z61adOm1K8LAAAAVAWMORhzAIAjMVMDAKqZunXravjw4Xr66afl5+engIAAPffcc6pV6//XsZs2baqHH35YgwcP1ty5c9WmTRv9/PPP+vTTTxUZGam+ffsWOu4tt9yi9957T/3795fFYtHzzz9v/oro9x577DHzYv2LL74oMddatWqpR48e2rJly/9r787jvarq/fG/jgyHQTgKCAcUgRQ0BC2HFFNRQRBxxHJWHOprOSSBt8Thil4Dhxwqc+imoGlq5dCAmeB4vaQpzlpmBogJooggiodp//7wx7kdmZHDOR94Ph+Pz+Ph3nvttd7rw3I/9tnvz9orhx56aJLkqaeeykMPPZR+/fqlbdu2eeqpp/Luu+9W1zlixIh85zvfScuWLTNgwIBUVVXlmWeeyaxZszJ06NAcffTRGTlyZA499NCMGjUq7du3z3PPPZcOHTqkV69e+Y//+I8cccQR2XHHHdOnT5/8/ve/zz333JPx48ev8nf8rW99K1deeWWGDh2aU089NRMnTsyYMWNqlBkyZEgGDBiQbt26ZdasWXn44Ydr/BEzefLk/Otf/0rfvn1XuV0AAKgP/M3hbw6AOlV3y3kAUFs+/PDD4rjjjiuaNWtWtGvXrrj88suL3r17Vy/aVxRFMX/+/OI///M/i86dOxeNGjUqKisri8MOO6x48cUXi6JYetG+SZMmFfvss0/RtGnTomPHjsW11167VJ1L7LnnnkX37t1XKdYHHnig2HzzzYtFixYVRVEUr776atG/f/9is802K8rLy4tu3brVWBiwKIri9ttvL770pS8VjRs3LjbddNNir732Ku65557q45MnTy4OP/zwomXLlkWzZs2KnXfeuXjqqaeqj1933XXFF77whaJRo0ZFt27diltvvbVG/UmKe++9t8a+ioqKYvTo0dXbv//974utt966KC8vL/bcc8/i5ptvrrFo3xlnnFFstdVWRXl5ebHZZpsVxx9/fPHee+9Vnz9y5Miif//+q/QdAQBAfeNvDn9zANSVsqJYhZf0AcAqKooi2267bU499dQMHTp0lcrvtttuGTJkSI4++uh1EGHdq6qqSteuXXPHHXcstYAgAACwYv7mWDl/cwDrM2tqALDWzJgxI1dddVX+9a9/5aSTTlqlc8rKyvKzn/0sCxcurOXo6o8pU6bkvPPO88cFAACsJn9zrBp/cwDrMzM1AFhrysrK0qZNm/zoRz/KMcccU9fhAAAA6xl/cwAgqQEAAAAAAJQEr58CAAAAAABKgqQGAAAAAABQEiQ1AAAAAACAkiCpAQAAAAAAlARJDQAAAAAAoCRIagAAAAAAACVBUgMAAAAAACgJkhoAAAAAAEBJkNQAAAAAAABKgqQGAAAAAABQEiQ1AAAAAACAkiCpAQAAAAAAlARJDQAAAAAAoCRIagAAAAAAACVBUgMAgDo3YsSIlJWV5b333ltp2b333jt77713rcXSuXPnHHjggbVW/+dRVlaWESNG1Fr9kydPTllZWcaMGfO56xozZkzKysoyefLk1T73/vvvr9V+Jv/X1x/+8Ie12k599/HHH2fEiBF59NFHV6n82hwjq6Nz58458cQTV/u81e3fEj/5yU+y7bbbpry8PF26dMlFF12UBQsWrHb7AACsfZIaAABQIv785z/nG9/4Rl2HUevuv//+XHTRRXUdxgbh448/zkUXXbTKD/3bt2+fP//5zxk4cGDtBraWrG7/kuQHP/hBzjrrrAwaNCh/+tOfctppp2XkyJE5/fTTay9QAABWWcO6DgAAAPj04WuzZs2W2l8URT755JM0bdo0u+22Wx1EBv+nvLx8vR6HM2fOzCWXXJJvfvObGTlyZJJPZ4ctWLAg559/foYMGZLu3bvXcZQAABs2MzUAAKg3pk6dmkGDBqVly5apqKjIcccdl3fffXel573//vs57bTTsvnmm6dx48b5whe+kPPOOy9VVVU1yi1evDg/+clP8qUvfSlNmzbNJptskt122y2/+93vVlj/ddddl4YNG+bCCy9cYbm77ror/fr1S/v27dO0adN88YtfzDnnnJOPPvqoRrkTTzwxG2+8cV566aX069cvLVq0SJ8+fZJ8+oqpM844IzfccEO++MUvpry8PLfcckv1sSWvZXrhhRdSVlaWm266aak4/vjHP6asrKy6X//4xz9y0kknpWvXrmnWrFk233zzHHTQQXnppZdW2J/lWbx4cS655JJss8021d/j9ttvnx/96EcrPffmm2/ODjvskCZNmqRVq1Y57LDD8te//rXGd/PTn/60ur9LPst7jdVPf/rTbLTRRpkxY0b1viuvvDJlZWU1flm/ePHibLrpphk2bNhSdVx11VXp0qVLNt544/Tq1StPPvnkUmWeeeaZHHzwwWnVqlWaNGmSL3/5y/nVr35Vo8ySV2498sgj+fa3v502bdqkdevWGTRoUN5+++2Vfjf//Oc/c9RRR6VDhw4pLy9Pu3bt0qdPnzz//PM1yt11113p1atXmjdvno033jj9+/fPc889V6PMkjH2j3/8IwcccEA23njjdOzYMcOGDav+/2Ly5MnZbLPNkiQXXXRR9Xe9otc8Lev1U0teH/fKK6/k6KOPTkVFRdq1a5eTTz45s2fPXmm/n3vuuRx44IFp27ZtysvL06FDhwwcODBvvfXWCs978803c9xxx1Wf98UvfjFXXnllFi9evMb9e+CBB/LJJ5/kpJNOqrH/pJNOSlEUue+++1baHwAAapeZGgAA1BuHHXZYjjjiiHzrW9/KK6+8kgsuuCCvvvpqnnrqqTRq1GiZ53zyySfZZ5998sYbb+Siiy7K9ttvn//5n//JqFGj8vzzz2fs2LHVZU888cTcdtttOeWUU3LxxRencePGefbZZ5f7wLwoivzHf/xHfvzjH+fnP//5St/p//rrr+eAAw7IkCFD0rx58/ztb3/LZZddlr/85S95+OGHa5SdP39+Dj744Jx66qk555xzsnDhwupj9913X/7nf/4n//mf/5nKysq0bdt2qbZ22GGHfPnLX87o0aNzyimn1Dg2ZsyYtG3bNgcccECS5O23307r1q1z6aWXZrPNNsv777+fW265Jbvuumuee+65bLPNNivs12ddfvnlGTFiRM4///zstddeWbBgQf72t7/lgw8+WOF5o0aNyrnnnpujjz46o0aNysyZMzNixIj06tUrTz/9dLp27ZoLLrggH330UX7zm9/kz3/+c/W57du3X2adffv2TVEUeeihh3L00UcnScaPH5+mTZtm3Lhx1eWeeeaZfPDBB+nbt2+N83/6059m2223zTXXXJMkueCCC3LAAQdk0qRJqaioSJI88sgj2X///bPrrrvmhhtuSEVFRe68884ceeSR+fjjj5caF9/4xjcycODA/PKXv8zUqVPzH//xHznuuOOWGgOfdcABB2TRokW5/PLLs+WWW+a9997LhAkTanyvI0eOzPnnn5+TTjop559/fubPn58rrrgie+65Z/7yl7/UmEWwYMGCHHzwwTnllFMybNiwPP744/mv//qvVFRU5D//8z/Tvn37PPDAA9l///1zyimnVL/abEkiYHUdfvjhOfLII3PKKafkpZdeyvDhw5N8mshano8++ij77bdfunTpkp/+9Kdp165dpk+fnkceeSQffvjhcs979913s/vuu2f+/Pn5r//6r3Tu3Dl/+MMfcvbZZ+eNN97Iddddt0b9e/nll5MkPXv2rLG/ffv2adOmTfVxAADqUAEAAHXswgsvLJIU3/3ud2vsv/3224skxW233Va9r3fv3kXv3r2rt2+44YYiSfGrX/2qxrmXXXZZkaR48MEHi6Ioiscff7xIUpx33nkrjKVTp07FwIEDi48//rg4/PDDi4qKimL8+PGr3afFixcXCxYsKB577LEiSfHCCy9UHxs8eHCRpLj55puXOi9JUVFRUbz//vvLPHbhhRdWb//4xz8ukhSvvfZa9b7333+/KC8vL4YNG7bc2BYuXFjMnz+/6Nq1a43vfNKkSUWSYvTo0Svs24EHHlh86UtfWmGZ0aNHF0mKSZMmFUVRFLNmzSqaNm1aHHDAATXKvfnmm0V5eXlxzDHHVO87/fTTi9X5U2WLLbYoTj755KIoiqKqqqpo3rx58f3vf79IUkyZMqUoiqL4wQ9+UDRq1KiYO3dujb727NmzWLhwYXVdf/nLX4okxR133FG9b9ttty2+/OUvFwsWLFjqe2jfvn2xaNGiGn0+7bTTapS7/PLLiyTFtGnTltuH9957r0hSXHPNNcst8+abbxYNGzYszjzzzBr7P/zww6KysrI44ogjqvctGWOf/f/igAMOKLbZZpvq7XfffXepcbUiyxojS/7/vfzyy2uUPe2004omTZoUixcvXm59zzzzTJGkuO+++1bYbqdOnYrBgwdXb59zzjlFkuKpp56qUe7b3/52UVZWVv3/xOr275vf/GZRXl6+zGPdunUr+vXrt0r1AABQe7x+CgCAeuPYY4+tsX3EEUekYcOGeeSRR5Z7zsMPP5zmzZvna1/7Wo39S349/9BDDyX59JVMSVZpsd+ZM2dm3333zV/+8pc88cQT1a+GWpl//vOfOeaYY1JZWZkGDRqkUaNG6d27d5LUeMXSEocffvgy69l3332z6aabrrS9Y489NuXl5TVeBXTHHXekqqqqxutzFi5cmJEjR6Z79+5p3LhxGjZsmMaNG+f1119fZlwr85WvfCUvvPBCTjvttPzpT3/KnDlzVnrOn//858ybN2+pWQ0dO3bMvvvuW/3vtCb69OmT8ePHJ0kmTJiQjz/+OEOHDk2bNm2qZ2uMHz+++pVN/27gwIFp0KBB9fb222+fJJkyZUqST1/d9be//a16bC5cuLD6c8ABB2TatGl57bXXatR58MEH19j+bJ3L0qpVq2y11Va54oorctVVV+W5556rfo3SEn/605+ycOHCnHDCCTXiaNKkSXr37r3UYthlZWU56KCDloplRXF8Hsvq9yeffFLj1WCftfXWW2fTTTfN97///dxwww159dVXV6mthx9+ON27d89XvvKVGvtPPPHEFEWx0lkxK1JWVrZGxwAAWDckNQAAqDcqKytrbDds2DCtW7fOzJkzl3vOzJkzU1lZudTDxrZt26Zhw4bV57777rtp0KDBUm0sy9///vc89dRTGTBgQHr06LFKsc+dOzd77rlnnnrqqVxyySV59NFH8/TTT+eee+5JksybN69G+WbNmqVly5bLrGt5r1r6rFatWuXggw/OrbfemkWLFiX59NVTX/nKV7LddttVlxs6dGguuOCCHHroofn973+fp556Kk8//XR22GGHpeJaFcOHD88Pf/jDPPnkkxkwYEBat26dPn365JlnnlnuOUv+HZbVtw4dOqzw33hl+vbtmzfffDOvv/56xo8fny9/+ctp27Zt9t1334wfPz7z5s3LhAkTlnr1VJK0bt26xnZ5eXmS//v3euedd5IkZ599dho1alTjc9pppyVJ3nvvvdWqc1nKysry0EMPpX///rn88suz4447ZrPNNst3vvOd6tcwLYlll112WSqWu+66a6k4mjVrliZNmiwVyyeffLLcOD6PNel3RUVFHnvssXzpS1/Kueeem+222y4dOnTIhRdemAULFiz3vJkzZy53LC05viZat26dTz75JB9//PFSx95///20atVqjeoFAGDtsaYGAAD1xvTp07P55ptXby9cuDAzZ85c6mHpv2vdunWeeuqpFEVRI7ExY8aMLFy4MG3atEny6Xv0Fy1alOnTp680adCrV698/etfr16r4vrrr89GG63490APP/xw3n777Tz66KPVszOSLHedibX1a/CTTjopv/71rzNu3LhsueWWefrpp3P99dfXKHPbbbflhBNOyMiRI2vsf++997LJJpuscltLNGzYMEOHDs3QoUPzwQcfZPz48Tn33HPTv3//TJ06Nc2aNVvqnCX/htOmTVvq2Ntvv13977QmlsykGT9+fMaNG5f99tuvev/555+fxx9/PFVVVctMaqzMkriGDx+eQYMGLbPM6q5JsjydOnWqXvj973//e371q19lxIgRmT9/fm644YbqWH7zm9+kU6dOa6XN+qBnz5658847UxRFXnzxxYwZMyYXX3xxmjZtmnPOOWeZ57Ru3Xq5YynJGo+nJWtpvPTSS9l1112r90+fPj3vvffeKic5AQCoPWZqAABQb9x+++01tn/1q19l4cKF2XvvvZd7Tp8+fTJ37tzcd999Nfbfeuut1ceTZMCAAUmy1AP/5Rk8eHDuvPPOjB49OieccEL1TIjlWZKIWPLr9CVuvPHGVWpvTfXr1y+bb755Ro8endGjR6dJkybVC2b/e2yfjWvs2LH517/+9bnb32STTfK1r30tp59+et5///3lLrreq1evNG3aNLfddluN/W+99VYefvjhGq/4WpVf+P+79u3bp3v37rn77rszceLE6qTGfvvtl3fffTdXXXVVWrZsmV122WW1+7fNNtuka9eueeGFF7Lzzjsv89OiRYvVrndlunXrlvPPPz89e/bMs88+myTp379/GjZsmDfeeGO5sayu1f2ua1NZWVl22GGHXH311dlkk02q+70sffr0yauvvrpUmVtvvTVlZWXZZ599kqx+//bff/80adKkxivdkk9nQJWVleXQQw9d9Q4BAFArzNQAAKDeuOeee9KwYcPst99+eeWVV3LBBRdkhx12yBFHHLHcc0444YT89Kc/zeDBgzN58uT07NkzTzzxREaOHJkDDjig+tf5e+65Z44//vhccskleeedd3LggQemvLw8zz33XJo1a5Yzzzxzqbq/9rWvpVmzZvna176WefPm5Y477kjjxo2XGcfuu++eTTfdNN/61rdy4YUXplGjRrn99tvzwgsvrJ0vZzkaNGiQE044ofrB/aBBg1JRUVGjzIEHHpgxY8Zk2223zfbbb5+JEyfmiiuuyBZbbLFGbR500EHp0aNHdt5552y22WaZMmVKrrnmmnTq1Cldu3Zd5jmbbLJJLrjggpx77rk54YQTcvTRR2fmzJm56KKL0qRJk1x44YXVZZf8Wv6yyy7LgAED0qBBg2y//fbL/e6TTx9y/+QnP0nTpk3z1a9+NUnSpUuXdOnSJQ8++GAOPvjgNGy4Zn/+3HjjjRkwYED69++fE088MZtvvnnef//9/PWvf82zzz6bX//612tU77978cUXc8YZZ+TrX/96unbtmsaNG+fhhx/Oiy++WD1boXPnzrn44otz3nnn5Z///Gf233//bLrppnnnnXfyl7/8Jc2bN89FF120Wu22aNEinTp1ym9/+9v06dMnrVq1Sps2bdK5c+fP3adV8Yc//CHXXXddDj300HzhC19IURS555578sEHH1Qnp5blu9/9bm699dYMHDgwF198cTp16pSxY8fmuuuuy7e//e1069ZtjfrXqlWrnH/++bngggvSqlWr9OvXL08//XRGjBiRb3zjG+nevXttfA0AAKwGSQ0AAOqNe+65JyNGjMj1119fvcjxNddcs8KH2U2aNMkjjzyS8847L1dccUXefffdbL755jn77LNrPChPPv219Y477pibbropY8aMSdOmTdO9e/ece+65y63/gAMOyP3335+DDjoohxxySO655540bdp0qXKtW7fO2LFjM2zYsBx33HFp3rx5DjnkkNx1113Zcccd1/xLWQUnnXRSRo0alXfffbfGAuFL/OhHP0qjRo0yatSozJ07NzvuuGPuueeenH/++WvU3j777JO77747P//5zzNnzpxUVlZmv/32ywUXXJBGjRot97zhw4enbdu2+fGPf5y77rorTZs2zd57752RI0fWSIYcc8wx+d///d9cd911ufjii1MURSZNmrTCB+19+/bNT37yk+yxxx411pHo27dv/vu//3uNXj317/39y1/+kh/84AcZMmRIZs2aldatW6d79+4rTLitjsrKymy11Va57rrrMnXq1JSVleULX/hCrrzyyhoJt+HDh6d79+750Y9+VL0ofGVlZXbZZZd861vfWqO2b7rppvzHf/xHDj744FRVVWXw4MFLzVSoLV27ds0mm2ySyy+/PG+//XYaN26cbbbZJmPGjMngwYOXe95mm22WCRMmZPjw4Rk+fHjmzJmTL3zhC7n88sszdOjQGmVXt3/nnXdeWrRokZ/+9Kf54Q9/mMrKypxzzjk577zz1la3AQD4HMqKoijqOggAAAAAAICVsaYGAAAAAABQEiQ1AAAAAACAkiCpAQAAAAAAlARJDQAAAAAAoCRIagAAAAAAACVBUgMAAAAAACgJkhoAAAAAAEBJaFjXAZSKxYsX5+23306LFi1SVlZW1+EAAAAAAMB6oyiKfPjhh+nQoUM22mj58zEkNVbR22+/nY4dO9Z1GAAAAAAAsN6aOnVqtthii+Uel9RYRS1atEjy6RfasmXLOo4GAAAAAADWH3PmzEnHjh2rn8Uvj6TGKlryyqmWLVtKagAAAAAAQC1Y2fIPFgoHAAAAAABKgqQGAAAAAABQEiQ1AAAAAACAkiCpAQAAAAAAlARJDQAAAAAAoCRIagAAAAAAACVBUgMAAAAAACgJkhoAAAAAAEBJkNQAAAAAAABKgqQGAAAAAABQEiQ1AAAAAACAkiCpAQAAAAAAlISGdR0AAEAp63zO2NU+Z/KlA2shEgAAAFj/makBAAAAAACUBEkNAAAAAACgJEhqAAAAAAAAJUFSAwAAAAAAKAmSGgAAAAAAQEmQ1AAAAAAAAEqCpAYAAAAAAFASJDUAAAAAAICSUK+TGtdff3223377tGzZMi1btkyvXr3yxz/+sfr4iSeemLKyshqf3XbbrUYdVVVVOfPMM9OmTZs0b948Bx98cN5666113RUAAAAAAOBzqtdJjS222CKXXnppnnnmmTzzzDPZd999c8ghh+SVV16pLrP//vtn2rRp1Z/777+/Rh1DhgzJvffemzvvvDNPPPFE5s6dmwMPPDCLFi1a190BAAAAAAA+h4Z1HcCKHHTQQTW2f/CDH+T666/Pk08+me222y5JUl5ensrKymWeP3v27Nx00035xS9+kb59+yZJbrvttnTs2DHjx49P//79a7cDAAAAAADAWlOvZ2r8u0WLFuXOO+/MRx99lF69elXvf/TRR9O2bdt069Yt3/zmNzNjxozqYxMnTsyCBQvSr1+/6n0dOnRIjx49MmHChHUaPwAAAAAA8PnU65kaSfLSSy+lV69e+eSTT7Lxxhvn3nvvTffu3ZMkAwYMyNe//vV06tQpkyZNygUXXJB99903EydOTHl5eaZPn57GjRtn0003rVFnu3btMn369BW2W1VVlaqqqurtOXPmrP3OAQAAAAAAq6zeJzW22WabPP/88/nggw9y9913Z/DgwXnsscfSvXv3HHnkkdXlevTokZ133jmdOnXK2LFjM2jQoOXWWRRFysrKVtjuqFGjctFFF621fgAAAAAAAJ9PvX/9VOPGjbP11ltn5513zqhRo7LDDjvkRz/60TLLtm/fPp06dcrrr7+eJKmsrMz8+fMza9asGuVmzJiRdu3arbDd4cOHZ/bs2dWfqVOnrp0OAQAAAAAAa6TeJzU+qyiKGq+F+nczZ87M1KlT0759+yTJTjvtlEaNGmXcuHHVZaZNm5aXX345u++++wrbKS8vT8uWLWt8AAAAAACAulOvXz917rnnZsCAAenYsWM+/PDD3HnnnXn00UfzwAMPZO7cuRkxYkQOP/zwtG/fPpMnT865556bNm3a5LDDDkuSVFRU5JRTTsmwYcPSunXrtGrVKmeffXZ69uyZvn371nHvAAAAAACA1VGvkxrvvPNOjj/++EybNi0VFRXZfvvt88ADD2S//fbLvHnz8tJLL+XWW2/NBx98kPbt22efffbJXXfdlRYtWlTXcfXV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zDHHJEkqKipyyimnZNiwYXnooYfy3HPP5bjjjkvPnj3Tt2/ftdpvAAAAAACg9tTKQuFXX3119tlnn3Tv3j2ffPJJjjnmmLz++utp06bNMtfEWJ7rr78+SbL33nvX2D969OiceOKJSZLvfe97mTdvXk477bTMmjUru+66ax588MEaM0KuvvrqNGzYMEcccUTmzZuXPn36ZMyYMWnQoMHn7isAAAAAALBulBVFUdRGxfPmzcsdd9yRZ599NosXL86OO+6YY489tsbC4aVkzpw5qaioyOzZs72KCoBa0fmcsXUdAkC9NfnSgXUdAgAAUItW9Rl8rczUSJKmTZvm5JNPzsknn1xbTQAAAAAAABuQWklq3HrrrSs8fsIJJ9RGswAAAAAAwHqsVpIaZ511Vo3tBQsW5OOPP07jxo3TrFkzSQ0AAAAAAGC1bVQblc6aNavGZ+7cuXnttdeyxx57rNZC4QAAAAAAAEvU2poan9W1a9dceumlOe644/K3v/1tXTULAACsBzqfM3a1z7G4OAAArH9qZabG8jRo0CBvv/32umwSAAAAAABYT9TKTI3f/e53NbaLosi0adNy7bXX5qtf/WptNAkAAAAAAKznaiWpceihh9bYLisry2abbZZ99903V155ZW00CQAAAAAArOdqJamxePHi2qgWAABgla3JOhyJtTgAAKA+W6dragAAAAAAAKypWpmpMXTo0FUue9VVV9VGCABQp9b018EAAAAALF+tJDWee+65PPvss1m4cGG22WabJMnf//73NGjQIDvuuGN1ubKystpoHgAAAAAAWA/VSlLjoIMOSosWLXLLLbdk0003TZLMmjUrJ510Uvbcc88MGzasNpoFAAAAAADWY7WypsaVV16ZUaNGVSc0kmTTTTfNJZdckiuvvLI2mgQAAAAAANZztTJTY86cOXnnnXey3Xbb1dg/Y8aMfPjhh7XRJADUCmtjAAAAANQftTJT47DDDstJJ52U3/zmN3nrrbfy1ltv5Te/+U1OOeWUDBo0qDaaBAAAAAAA1nO1MlPjhhtuyNlnn53jjjsuCxYs+LShhg1zyimn5IorrqiNJgEAAAAAgPVcrSQ1mjVrluuuuy5XXHFF3njjjRRFka233jrNmzevjeYAAAAAAIANQK28fmqJadOmZdq0aenWrVuaN2+eoihqszkAAAAAAGA9VitJjZkzZ6ZPnz7p1q1bDjjggEybNi1J8o1vfCPDhg2rjSYBAAAAAID1XK0kNb773e+mUaNGefPNN9OsWbPq/UceeWQeeOCB2mgSAAAAAABYz9XKmhoPPvhg/vSnP2WLLbaosb9r166ZMmVKbTQJAAAAAACs52olqfHRRx/VmKGxxHvvvZfy8vLaaBIAAGCt6HzO2DU6b/KlA9dyJAAAwGfVyuun9tprr9x6663V22VlZVm8eHGuuOKK7LPPPrXRJAAAAAAAsJ6rlZkaV1xxRfbee+8888wzmT9/fr73ve/llVdeyfvvv5///d//rY0mAQAAAACA9VytzNTo3r17XnzxxXzlK1/Jfvvtl48++iiDBg3Kc889l6222qo2mgQAAAAAANZza32mxoIFC9KvX7/ceOONueiii9Z29QAAAAAAwAZqrc/UaNSoUV5++eWUlZWt7aoBAAAAAIANWK28fuqEE07ITTfdVBtVAwAAAAAAG6haWSh8/vz5+fnPf55x48Zl5513TvPmzWscv+qqq2qjWQBYrs7njK3rEAAAAAD4nNbaTI0XX3wxixcvTpK8/PLL2XHHHdOyZcv8/e9/z3PPPVf9ef7551er3scffzwHHXRQOnTokLKystx33301jp944okpKyur8dltt91qlKmqqsqZZ56ZNm3apHnz5jn44IPz1ltvfZ7uAgAAAAAA69ham6nx5S9/OdOmTUvbtm0zZcqUPP3002nduvXnrvejjz7KDjvskJNOOimHH374Msvsv//+GT16dPV248aNaxwfMmRIfv/73+fOO+9M69atM2zYsBx44IGZOHFiGjRo8LljBAAAAAAAat9aS2pssskmmTRpUtq2bZvJkydXz9r4vAYMGJABAwassEx5eXkqKyuXeWz27Nm56aab8otf/CJ9+/ZNktx2223p2LFjxo8fn/79+6+VOAEAAAAAgNq11pIahx9+eHr37p327dunrKwsO++883JnQfzzn/9cW80mSR599NG0bds2m2yySXr37p0f/OAHadu2bZJk4sSJWbBgQfr161ddvkOHDunRo0cmTJggqQEAAKwVa7J+0+RLB9ZCJAAAsP5aa0mNn/3sZxk0aFD+8Y9/5Dvf+U6++c1vpkWLFmur+uUaMGBAvv71r6dTp06ZNGlSLrjgguy7776ZOHFiysvLM3369DRu3DibbrppjfPatWuX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3/pWXYcGAAAAAACsgg0mqXHkkUdm5syZufjiizNt2rT06NEj999/fzp16lTXoQEAAAAAAKtgg0lqJMlpp52W0047rVbbKC8vz4UXXrjUq6tgfWB8sz4zvllfGdusz4xv1mfGN+sz45v1mfHN+qy+jO+yoiiKOo0AAAAAAABgFWxU1wEAAAAAAACsCkkNAAAAAACgJEhqAAAAAAAAJUFSYzWMGDEiZWVlNT6VlZUrPOexxx7LTjvtlCZNmuQLX/hCbrjhhnUULayezp07LzW+y8rKcvrppy+z/KOPPrrM8n/729/WceSwtMcffzwHHXRQOnTokLKystx33301jhdFkREjRqRDhw5p2rRp9t5777zyyisrrffuu+9O9+7dU15enu7du+fee++tpR7A8q1ofC9YsCDf//7307NnzzRv3jwdOnTICSeckLfffnuFdY4ZM2aZ1/RPPvmklnsD/2dl1+4TTzxxqTG62267rbRe127qg5WN72Vdg8vKynLFFVcst07XbuqDUaNGZZdddkmLFi3Stm3bHHrooXnttddqlHHvTala2fh2700pW5Xrd32+/5bUWE3bbbddpk2bVv156aWXllt20qRJOeCAA7Lnnnvmueeey7nnnpvvfOc7ufvuu9dhxLBqnn766Rpje9y4cUmSr3/96ys877XXXqtxXteuXddFuLBCH330UXbYYYdce+21yzx++eWX56qrrsq1116bp59+OpWVldlvv/3y4YcfLrfOP//5zznyyCNz/PHH54UXXsjxxx+fI444Ik899VRtdQOWaUXj++OPP86zzz6bCy64IM8++2zuueee/P3vf8/BBx+80npbtmxZ43o+bdq0NGnSpDa6AMu0smt3kuy///41xuj999+/wjpdu6kvVja+P3v9vfnmm1NWVpbDDz98hfW6dlPXHnvssZx++ul58sknM27cuCxcuDD9+vXLRx99VF3GvTelamXj2703pWxVrt9JPb7/LlhlF154YbHDDjuscvnvfe97xbbbbltj36mnnlrstttuazkyWPvOOuusYquttioWL168zOOPPPJIkaSYNWvWug0MVlOS4t57763eXrx4cVFZWVlceuml1fs++eSToqKiorjhhhuWW88RRxxR7L///jX29e/fvzjqqKPWesywqj47vpflL3/5S5GkmDJlynLLjB49uqioqFi7wcHnsKyxPXjw4OKQQw5ZrXpcu6mPVuXafcghhxT77rvvCsu4dlMfzZgxo0hSPPbYY0VRuPdm/fLZ8b0s7r0pVcsa3/X5/ttMjdX0+uuvp0OHDunSpUuOOuqo/POf/1xu2T//+c/p169fjX39+/fPM888kwULFtR2qLDG5s+fn9tuuy0nn3xyysrKVlj2y1/+ctq3b58+ffrkkUceWUcRwpqbNGlSpk+fXuP6XF5ent69e2fChAnLPW951/QVnQP1wezZs1NWVpZNNtlkheXmzp2bTp06ZYsttsiBBx6Y5557bt0ECKvh0UcfTdu2bdOtW7d885vfzIwZM1ZY3rWbUvTOO+9k7NixOeWUU1Za1rWb+mb27NlJklatWiVx78365bPje3ll3HtTipY3vuvr/bekxmrYddddc+utt+ZPf/pT/vu//zvTp0/P7rvvnpkzZy6z/PTp09OuXbsa+9q1a5eFCxfmvffeWxchwxq577778sEHH+TEE09cbpn27dvnZz/7We6+++7cc8892WabbdKnT588/vjj6y5QWAPTp09PkmVen5ccW955q3sO1LVPPvkk55xzTo455pi0bNlyueW23XbbjBkzJr/73e9yxx13pEmTJvnqV7+a119/fR1GCys2YMCA3H777Xn44Ydz5ZVX5umnn86+++6bqqqq5Z7j2k0puuWWW9KiRYsMGjRoheVcu6lviqLI0KFDs8cee6RHjx5J3Huz/ljW+P4s996UquWN7/p8/91wrda2nhswYED1f/fs2TO9evXKVlttlVtuuSVDhw5d5jmf/ZV7URTL3A/1yU033ZQBAwakQ4cOyy2zzTbbZJtttqne7tWrV6ZOnZof/vCH2WuvvdZFmPC5LOv6vLJr85qcA3VlwYIFOeqoo7J48eJcd911Kyy722671Vjw7atf/Wp23HHH/OQnP8mPf/zj2g4VVsmRRx5Z/d89evTIzjvvnE6dOmXs2LErfPjr2k2pufnmm3Pssceu9N3qrt3UN2eccUZefPHFPPHEE0sdc+9NqVvR+E7ce1Palje+6/P9t5kan0Pz5s3Ts2fP5WZSKysrl8pCzZgxIw0bNkzr1q3XRYiw2qZMmZLx48fnG9/4xmqfu9tuu/llAfVeZWVlkizz+vzZXxN89rzVPQfqyoIFC3LEEUdk0qRJGTdu3Ap/KbYsG220UXbZZRfXdOq19u3bp1OnTiscp67dlJr/+Z//yWuvvbZG9+Ku3dSlM888M7/73e/yyCOPZIsttqje796b9cHyxvcS7r0pZSsb3/+uPt1/S2p8DlVVVfnrX/+a9u3bL/N4r169Mm7cuBr7Hnzwwey8885p1KjRuggRVtvo0aPTtm3bDBw4cLXPfe6555b7/wPUF126dEllZWWN6/P8+fPz2GOPZffdd1/uecu7pq/oHKgLS/6oev311zN+/Pg1+iFFURR5/vnnXdOp12bOnJmpU6eucJy6dlNqbrrppuy0007ZYYcdVvtc127qQlEUOeOMM3LPPffk4YcfTpcuXWocd+9NKVvZ+E7ce1O6VmV8f1Z9uv/2+qnVcPbZZ+eggw7KlltumRkzZuSSSy7JnDlzMnjw4CTJ8OHD869//Su33nprkuRb3/pWrr322gwdOjTf/OY38+c//zk33XRT7rjjjrrsBizX4sWLM3r06AwePDgNG9a8PHx2fF9zzTXp3Llztttuu+qFxe++++7cfffddRE61DB37tz84x//qN6eNGlSnn/++bRq1SpbbrllhgwZkpEjR6Zr167p2rVrRo4cmWbNmuWYY46pPueEE07I5ptvnlGjRiVJzjrrrOy111657LLLcsghh+S3v/1txo8fv9zpx1BbVjS+O3TokK997Wt59tln84c//CGLFi2q/pVMq1at0rhx4yRLj++LLroou+22W7p27Zo5c+bkxz/+cZ5//vn89Kc/XfcdZIO1orHdqlWrjBgxIocffnjat2+fyZMn59xzz02bNm1y2GGHVZ/j2k19tbJ7kySZM2dOfv3rX+fKK69cZh2u3dRHp59+en75y1/mt7/9bVq0aFF931FRUZGmTZumrKzMvTcla2Xje+HChe69KVkrG99z586t3/ffBavsyCOPLNq3b180atSo6NChQzFo0KDilVdeqT4+ePDgonfv3jXOefTRR4svf/nLRePGjYvOnTsX119//TqOGlbdn/70pyJJ8dprry117LPj+7LLLiu22mqrokmTJsWmm25a7LHHHsXYsWPXYbSwfI888kiRZKnP4MGDi6IoisWLFxcXXnhhUVlZWZSXlxd77bVX8dJLL9Woo3fv3tXll/j1r39dbLPNNkWjRo2Kbbfdtrj77rvXUY/g/6xofE+aNGmZx5IUjzzySHUdnx3fQ4YMKbbccsuicePGxWabbVb069evmDBhwrrvHBu0FY3tjz/+uOjXr1+x2WabFY0aNSq23HLLYvDgwcWbb75Zow7Xbuqrld2bFEVR3HjjjUXTpk2LDz74YJl1uHZTHy3vvmP06NHVZdx7U6pWNr7de1PKVja+6/v9d9n/3wkAAAAAAIB6zZoaAAAAAABASZDUAAAAAAAASoKkBgAAAAAAUBIkNQAAAAAAgJIgqQEAAAAAAJQESQ0AAAAAAKAkSGoAAAAAAAAlQVIDAAAAAAAoCZIaAABAvdG5c+dcc801a62+yZMnp6ysLM8///xqnTdmzJhssskmay0OAABg7ZDUAAAA6o2nn346/+///b912uayEilHHnlk/v73v6/TOAAAgJVrWNcBAAAAG5YFCxakUaNGNfbNnz8/jRs3zmabbVZHUdXUtGnTNG3atK7DAAAAPsNMDQAAYI098MAD2WOPPbLJJpukdevWOfDAA/PGG29UH1/y+qdf/epX2XvvvdOkSZPcdtttOfHEE3PooYdm1KhR6dChQ7p165ak5qyJo48+OkcddVSN9hYsWJA2bdpk9OjRq9T+yuy9996ZMmVKvvvd76asrCxlZWVJln791IgRI/KlL30pN998c7bccstsvPHG+fa3v51Fixbl8ssvT2VlZdq2bZsf/OAHNeqfPXt2/t//+39p27ZtWrZsmX333TcvvPDCKscHAADUJKkBAACssY8++ihDhw7N008/nYceeigbbbRRDjvssCxevLhGue9///v5zne+k7/+9a/p379/kuShhx7KX//614wbNy5/+MMflqr72GOPze9+97vMnTu3et+f/vSnfPTRRzn88MNXq/3lueeee7LFFlvk4osvzrRp0zJt2rTlln3jjTfyxz/+MQ888EDuuOOO3HzzzRk4cGDeeuutPPbYY7nsssty/vnn58knn0ySFEWRgQMHZvr06bn//vszceLE7LjjjunTp0/ef//9VYoPAACoyeunAACANbYkubDETTfdlLZt2+bVV19Njx49qvcPGTIkgwYNqlG2efPm+fnPf57GjRsvs+7+/funefPmuffee3P88ccnSX75y1/moIMOSsuWLVer/eVp1apVGjRokBYtWqSysnKFZRcvXpybb745LVq0SPfu3bPPPvvktddey/3335+NNtoo22yzTS677LI8+uij2W233fLII4/kpZdeyowZM1JeXp4k+eEPf5j77rsvv/nNb9b52iEAALA+MFMDAABYY2+88UaOOeaYfOELX0jLli3TpUuXJMmbb75Zo9zOO++81Lk9e/ZcbkIjSRo1apSvf/3ruf3225N8Oivjt7/9bY499tjVbn9t6Ny5c1q0aFG93a5du3Tv3j0bbbRRjX0zZsxIkkycODFz585N69ats/HGG1d/Jk2atFqvyAIAAP6PmRoAAMAaO+igg9KxY8f893//dzp06JDFixenR48emT9/fo1yzZs3X+rcZe37rGOPPTa9e/fOjBkzMm7cuDRp0iQDBgxY7fbXhs8ubl5WVrbMfUtefbV48eK0b98+jz766FJ1/ft6HQAAwKqT1AAAANbIzJkz89e//jU33nhj9txzzyTJE088sVbb2H333dOxY8fcdddd+eMf/5ivf/3r1bM71lb7jRs3zqJFi9Zq3Emy4447Zvr06WnYsGE6d+681usHAIANkaQGAACwRjbddNO0bt06P/vZz9K+ffu8+eabOeecc9ZqG2VlZTnmmGNyww035O9//3seeeSRtd5+586d8/jjj+eoo45KeXl52rRps1Zi79u3b3r16pVDDz00l112WbbZZpu8/fbbuf/++3PooYcu85VcAADAillTAwAAWCMbbbRR7rzzzkycODE9evTId7/73VxxxRVrvZ1jjz02r776ajbffPN89atfXevtX3zxxZk8eXK22mqrbLbZZmst7rKystx///3Za6+9cvLJJ6dbt2456qijMnny5LRr126ttQMAABuSsqIoiroOAgAAAAAAYGXM1AAAAAAAAEqCpAYAAAAAAFASJDUAAAAAAICSIKkBAAAAAACUBEkNAAAAAACgJEhqAAAAAAAAJUFSAwAAAAAAKAmSGgAAAAAAQEmQ1AAAAAAAAEqCpAYAAAAAAFASJDUAAAAAAICSIKkBAAAAAACUhP8PmELSVcGntOEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "network = NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=1, # second\n", + " pol_proof_time=2, # seconds\n", + ")\n", + "\n", + "\n", + "mixnet_delay_data = np.array([network.sample_mixnet_delay() for _ in range(100000)])\n", + "\n", + "plt.figure(figsize=(16,8))\n", + "ax = plt.subplot(221)\n", + "_ = ax.hist(mixnet_delay_data, bins=100)\n", + "ax.set_title(f\"mixnet delay\")\n", + "_ = ax.set_ylabel(\"frequency\")\n", + "_ = ax.set_xlabel(\"delay (seconds)\")\n", + "\n", + "broadcast_delay_data = network.sample_broadcast_delay(np.zeros(100000))\n", + "ax = plt.subplot(222)\n", + "_ = ax.hist(broadcast_delay_data, bins=100)\n", + "ax.set_title(f\"block broadcast_delay\")\n", + "ax.set_ylabel(\"frequency\")\n", + "ax.set_xlabel(\"delay (seconds)\")\n", + "\n", + "BLOCK_TIME = 0\n", + "block_arrival_slots = np.array([network.block_arrival_time(np.array([BLOCK_TIME])) for _ in range(10000)])\n", + "\n", + "ax = plt.subplot(212)\n", + "_ = ax.hist(block_arrival_slots, bins=100)\n", + "ax.set_title(f\"block arrival slot when sent in slot {BLOCK_TIME}\")\n", + "ax.set_ylabel(\"frequency\")\n", + "ax.set_xlabel(\"arrival time\")\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a8eff21e-bbd0-432b-84e4-10da319764b5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "821" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "params.next_block().argmax()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "94cc80de-2c60-495f-a73a-d126717f1007", + "metadata": {}, + "outputs": [], + "source": [ + "class Sim:\n", + " def __init__(self, params: Params, network: NetworkParams):\n", + " self.params = params\n", + " self.network = network\n", + " self.events = {}\n", + " self.blocks = []\n", + " self.block_heights = np.array([], dtype=np.int64)\n", + " self.block_arrivals = np.zeros(shape=(params.N, 0), dtype=np.int64) # arrival time to each leader for each block\n", + "\n", + " def emit_block(self, t, leader, height, parent):\n", + " assert type(t) in [float, np.float64], type(t)\n", + " assert type(leader) in [int, np.int64]\n", + " assert type(height) in [int, np.int64]\n", + " assert type(parent) in [int, np.int64]\n", + " \n", + " block = Block(\n", + " id=len(self.blocks),\n", + " t=t,\n", + " height=height,\n", + " parent=parent,\n", + " leader=leader\n", + " )\n", + " self.blocks.append(block)\n", + " self.block_heights = np.append(self.block_heights, block.height)\n", + " \n", + " # decide when this block will arrive at each node\n", + " self.block_arrivals = np.append(self.block_arrivals, self.network.block_arrival_time(np.repeat(t, self.params.N).reshape((self.params.N, 1))), axis=1)\n", + " return block.id\n", + "\n", + " def emit_leader_block(self, leader, slot, parent):\n", + " assert type(leader) in [int, np.int64], type(leader)\n", + " assert isinstance(slot, int)\n", + " assert type(parent) in [int, np.int64], type(parent)\n", + " \n", + " refs = self.select_refs(leader, parent, slot)\n", + " return self.emit_block(\n", + " leader,\n", + " slot,\n", + " weight=self.blocks[parent].weight + len(refs) + 1,\n", + " height=self.blocks[parent].height + 1,\n", + " parent=parent,\n", + " refs=refs\n", + " )\n", + "\n", + " def select_refs(self, node: int, parent: int, slot: int) -> list[id]:\n", + " assert type(node) in [int, np.int64], node\n", + " assert type(parent) in [int, np.int64], parent\n", + " assert type(slot) in [int, np.int64], slot\n", + " \n", + " if self.blocks[parent].parent >= 0:\n", + " parents_siblings = self.block_siblings(node, self.blocks[parent].parent, slot)\n", + " # we are uniformly sampling from power_set(forks)\n", + " return np.array(parents_siblings)[np.random.uniform(size=len(parents_siblings)) < 0.5]\n", + " else:\n", + " return []\n", + " \n", + " def block_siblings(self, node, block, slot):\n", + " blocks_seen_by_node = self.block_arrivals[node,:] <= slot\n", + " parent = self.blocks[block].parent\n", + " if parent == -1:\n", + " return [block] if blocks_seen_by_node[block] else []\n", + " successor_blocks = self.block_slots > self.blocks[parent].slot\n", + " candidate_siblings = np.nonzero(blocks_seen_by_node & successor_blocks)[0]\n", + " return [b for b in candidate_siblings if self.blocks[b].parent == parent]\n", + "\n", + " def run(self, seed=None):\n", + " if seed is not None:\n", + " np.random.seed(seed)\n", + " \n", + " t = 0.0\n", + " \n", + " # emit the genesis block\n", + " self.emit_block(\n", + " t,\n", + " leader=0,\n", + " height=1,\n", + " parent=-1,\n", + " )\n", + " self.block_arrivals[:,:] = 0 # all nodes see the genesis block immediately\n", + "\n", + " while t < self.params.TIME:\n", + " next_block_times = self.params.next_block()\n", + " leader = next_block_times.argmin()\n", + " t += next_block_times[leader]\n", + "\n", + " seen_blocks = self.block_arrivals[leader] <= t\n", + " seen_heights = self.block_heights * seen_blocks\n", + " fork_heads = (seen_heights == seen_heights.max()) * (seen_heights > 0)\n", + " block_ids = np.nonzero(fork_heads)[0]\n", + " parent = np.random.choice(block_ids)\n", + " \n", + " self.emit_block(\n", + " t,\n", + " leader=leader,\n", + " height=self.blocks[parent].height + 1,\n", + " parent=parent\n", + " )\n", + "\n", + " def plot_spacetime_diagram(self, MAX_T=1 * 60 * 60):\n", + " alpha_index = sorted(range(self.params.N), key=lambda n: self.params.relative_hash_power[n])\n", + " nodes = [f\"$N_{n}$($\\\\alpha$={self.params.relative_hash_power[n]:.2f})\" for n in alpha_index]\n", + " messages = [(nodes[alpha_index.index(self.blocks[b].leader)], nodes[alpha_index.index(node)], self.blocks[b].t, arrival_t, f\"$B_{{{b}}}$\") for b, arrival_ts in enumerate(self.block_arrivals.T) for node, arrival_t in enumerate(arrival_ts) if arrival_t < MAX_T]\n", + " \n", + " fig, ax = plt.subplots(figsize=(8,8))\n", + " \n", + " # Plot vertical lines for each node\n", + " max_slot = max(s for _,_,start_t, end_t,_ in messages for s in [start_t, end_t])\n", + " for i, node in enumerate(nodes):\n", + " ax.plot([i, i], [0, max_slot], 'k-', linewidth=0.1)\n", + " ax.text(i, max_slot + 30 * (0 if i % 2 == 0 else 1), node, ha='center', va='bottom')\n", + " \n", + " # Plot messages\n", + " colors = plt.cm.rainbow(np.linspace(0, 1, len(messages)))\n", + " for (start, end, start_time, end_time, label), color in zip(messages, colors):\n", + " start_idx = nodes.index(start)\n", + " end_idx = nodes.index(end)\n", + " ax.annotate('', xy=(end_idx, end_time), xytext=(start_idx, start_time),\n", + " arrowprops=dict(arrowstyle='->', color=\"black\", lw=0.5))\n", + " placement = 0\n", + " mid_x = start_idx * (1 - placement) + end_idx * placement\n", + " mid_y = start_time * (1 - placement) + end_time * placement\n", + " ax.text(mid_x, mid_y, label, ha='center', va='center', \n", + " bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))\n", + " \n", + " ax.set_xlim(-1, len(nodes))\n", + " ax.set_ylim(0, max_slot + 70)\n", + " ax.set_xticks(range(len(nodes)))\n", + " ax.set_xticklabels([])\n", + " # ax.set_yticks([])\n", + " ax.set_title('Space-Time Diagram')\n", + " ax.set_ylabel('Time')\n", + " \n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + " def honest_chain(self):\n", + " chain_head = max(self.blocks, key=lambda b: b.height)\n", + " honest_chain = {chain_head.id}\n", + " \n", + " curr_block = chain_head\n", + " while curr_block.parent >= 0:\n", + " honest_chain.add(curr_block.parent)\n", + " curr_block = self.blocks[curr_block.parent]\n", + " return sorted(honest_chain, key=lambda b: self.blocks[b].height)\n", + "\n", + " def visualize_chain(self):\n", + " honest_chain = self.honest_chain()\n", + " print(\"Honest chain length\", len(honest_chain))\n", + " honest_chain_set = set(honest_chain)\n", + " \n", + " layout = Layout()\n", + " layout.hierachical = True\n", + " \n", + " G = Network(width=1600, height=800, notebook=True, directed=True, layout=layout, cdn_resources='in_line')\n", + "\n", + " for block in self.blocks:\n", + " # level = slot\n", + " level = block.height\n", + " color = \"lightgrey\"\n", + " if block.id in honest_chain_set:\n", + " color = \"orange\"\n", + "\n", + " G.add_node(int(block.id), level=level, color=color, label=f\"{block.t}\")\n", + " if block.parent >= 0:\n", + " G.add_edge(int(block.id), int(block.parent), width=2, color=color)\n", + " \n", + " return G.show(\"chain.html\")\n", + "\n", + " def adverserial_analysis(self):\n", + " np.random.seed(0)\n", + " adversary = self.params.N - 1\n", + " \n", + " reorg_depths = []\n", + " honest_chain = self.honest_chain()\n", + " print(\"honest_chain length\", len(honest_chain))\n", + " \n", + " for block in self.blocks:\n", + " nearest_honest_block = block\n", + " while nearest_honest_block.height >= len(honest_chain) or honest_chain[nearest_honest_block.height-1] != nearest_honest_block.id:\n", + " nearest_honest_block = self.blocks[nearest_honest_block.parent]\n", + " \n", + " \n", + " adversary_blocks = []\n", + " already_reorged = set()\n", + " t = block.t\n", + " while t < self.params.TIME:\n", + " adversary_block_t = int(self.params.next_block()[adversary])\n", + " t += adversary_block_t\n", + " adversary_blocks.append(t)\n", + " adverserial_height = block.height + len(adversary_blocks)\n", + " honest_chain_up_to_t = [\n", + " b for b in honest_chain\n", + " if self.blocks[b].t <= t\n", + " ]\n", + " last_honest_block = self.blocks[honest_chain_up_to_t[-1]]\n", + " assert last_honest_block.height >= nearest_honest_block.height, (t, last_honest_block, nearest_honest_block)\n", + " if last_honest_block.height < adverserial_height:\n", + " reorg_depths += [last_honest_block.height - nearest_honest_block.height]\n", + " # reorged_blocks = [\n", + " # b for b in honest_chain\n", + " # if b not in already_reorged\n", + " # and self.blocks[b].height > nearest_honest_block.height\n", + " # and self.blocks[b].height < adverserial_height\n", + " # ]\n", + " # already_reorged |= set(reorged_blocks)\n", + " # reorg_depths += [self.blocks[b].height - nearest_honest_block.height for b in reorged_blocks]\n", + " \n", + " \n", + " plt.hist(reorg_depths, bins=max(reorg_depths, default=1))\n", + " plt.xticks(minor=True)\n", + " plt.title(f\"reorg depths with {self.params.adversary_control * 100:.0f}% adversary\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "641d8a34-7549-42fd-ad7c-823c1693ec61", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "blocks 184\n", + "blocks time 0.33m\n", + "honest_chain length 120\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGxCAYAAABIjE2TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzdklEQVR4nO3deXRV1f3+8ecSkpuBEEgoCQlTYqPIIFJAKlAChQQ1WpTiAKio/CwUsKRSGcSWoJAAtRQrgsVWQBFBKyoKVcJg1IIVGRRDi7hkrjGWIQHBBMjn9wffXL0kTOWG7MD7tdZZi7PPPufss3PDfbLP5DEzEwAAgENqVHUDAAAATkZAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAuSdd96Rx+PRO++8U6n7mTFjhubMmXPK/f/tb3+r1P3/LzwejzIzM33zmzdvVmZmprZv316ubteuXdWyZcv/eV9du3aVx+MpN1133XXl6h49elTjx49X06ZN5fV61axZMz355JPl6r377rtq06aNIiMj1aVLF23evLlcnaFDhyolJUUX6uHcmZmZ8ng8F2RfQFWoWdUNAHBuZsyYoXr16umee+6p6qactTVr1qhhw4a++c2bN2v8+PHq2rWrmjZtGvD9JSUl6YUXXvArq1OnTrl6Q4YM0fPPP6/HHntM7du319tvv63hw4fr4MGDevjhhyVJBw4c0C233KKf//znmjJliv70pz+pd+/eysvLU1BQkCTpgw8+0LPPPqsNGzYQGoAAIaCgyh0+fFjh4eEX3b7wnR//+McXdH9hYWFn3GdeXp7++te/auLEiXrooYcknRh92bt3ryZMmKDBgwcrOjpaa9asUXFxsZ566ikFBwerRYsWSkhI0NatW9WsWTMdPXpUv/jFLzRq1Cg1a9bsQhxelTpy5IjCwsIqdR9mpm+//bbS9wO3cYoHF1TZsPT69evVp08f1a1bV5dddpmkE/8pzZgxQ1dffbXCwsJUt25d9enTR1988UW57Tz77LNq3bq1QkNDFR0drVtuuUX/+te//Orcc889qlWrljZt2qS0tDRFRkaqe/fukk78VTxw4EBFR0erVq1aSk9P1xdffFHuVMSp/Pvf/9Z1112n8PBw1atXT4MHD9bBgwcrrLt8+XJ1795dtWvXVnh4uDp16qQVK1ZU2C8bNmxQ7969Vbt2bUVFRenOO+/U119/7avXtGlT5eXlKTc313fq4uQRiKNHj2rs2LGKj49X7dq11aNHD23ZssWvzoYNG3TjjTeqfv368nq9io+PV3p6unbv3n3KY37qqadUo0YNFRQU+Mr+8Ic/yOPxaOjQob6y0tJS1a1bVyNGjPCVfb9f58yZo1tvvVWS1K1bN99xnHzaau3atfrJT36i8PBwJSUladKkSSotLT1l+87Va6+9JjPTvffe61d+77336siRI3rrrbckSd9++628Xq+Cg4MlSbVq1fKVS9Ljjz+ukpISjRkz5pz2n5OTo169eqlhw4YKDQ3VD3/4Qw0aNEj//e9/y9VdsmSJrr76anm9XiUmJurxxx8vV6dNmzb6yU9+Uq78+PHjSkhIUO/evX1lJSUlmjBhgpo1ayav16sf/OAHuvfee/0+a9KJz9uNN96oRYsWqU2bNgoNDdX48eMlSS+//LI6dOigqKgo38/ovvvu86377bffasSIEbr66qsVFRWl6OhoXXvttXr99dfLtdHj8WjYsGF6+umndeWVV8rr9WrOnDlKTk5Wz549y9U/dOiQoqKi/D53uAgZcAGNGzfOJFmTJk1s1KhRlpOTY6+99pqZmd1///0WHBxsI0aMsLfeesvmz59vzZo1s9jYWMvPz/dtIysryyRZ3759bcmSJfbcc89ZUlKSRUVF2WeffearN2DAAAsODramTZtadna2rVixwt5++207fvy4de7c2UJDQ23SpEm2bNkyGz9+vCUnJ5skGzdu3GmPIT8/3+rXr28JCQk2e/ZsW7p0qfXv398aN25skmzVqlW+us8//7x5PB67+eabbdGiRfbGG2/YjTfeaEFBQbZ8+fIK++Whhx6yt99+26ZOnWoRERHWpk0bKykpMTOz9evXW1JSkrVp08bWrFlja9assfXr15uZ2apVq0ySNW3a1Pr3729LliyxF1980Ro3bmzJycl27NgxMzM7dOiQxcTEWLt27eyll16y3NxcW7hwoQ0ePNg2b958yuP+97//bZJs/vz5vrLrrrvOwsLCLDk52Vf2z3/+0yTZ0qVLfWXf79eCggLfz/Cpp57yHUdBQYGZmaWkpFhMTIwlJyfb008/bTk5OTZkyBCTZHPnzj3tz6Zs/dDQUKtbt64FBQVZUlKSPfzww3b48GG/enfccYf94Ac/KLf+oUOHTJKNGTPGzMx27txpwcHBNmPGDNu/f7+NGjXKYmJi7PDhw/b5559beHi45ebmnrFdJ5s5c6ZlZ2fb4sWLLTc31+bOnWutW7e2K664wvfzNjNbvny5BQUFWefOnW3RokX28ssvW/v27X2ftzJPPPGESfL7HTAzW7p0qUmyxYsXm5nZ8ePH7brrrrOIiAgbP3685eTk2F/+8hdLSEiw5s2b+/VTkyZNrEGDBpaUlGTPPvusrVq1yj788ENbvXq1eTweu+OOO2zp0qW2cuVKmz17tt11112+dQ8cOGD33HOPPf/887Zy5Up766237De/+Y3VqFGj3M9RkiUkJNhVV11l8+fPt5UrV9qnn35qTzzxhHk8nnLH9NRTT5kky8vLO+d+R/VBQMEFVfZF/Lvf/c6vfM2aNSbJ/vCHP/iV79q1y8LCwmzkyJFmZrZ//34LCwuzG264wa/ezp07zev1Wr9+/XxlAwYMMEn27LPP+tVdsmSJSbKZM2f6lWdnZ59VQBk1apR5PB7buHGjX3lqaqpfQPnmm28sOjrabrrpJr96x48ft9atW9s111xTrl9+/etf+9V94YUXTJLNmzfPV9aiRQtLSUkp166ygHJy37z00ksmydasWWNmZh999JFJ8gXDc9GwYUO77777zMysuLjYIiIibNSoUSbJduzYYWZmEydOtODgYDt06JBvvZP79eWXXy4X5sqkpKSYJPvnP//pV968eXPr2bPnGds4duxYmzFjhq1cudKWLFliw4YNs5o1a1qXLl3s+PHjvnqpqal2xRVXVLiNkJAQ+8UvfuGbnzFjhoWEhJgki4qKstdff93MzHr06GEDBw48Y5vOpLS01I4ePWo7duwwSb7tm5l16NDB4uPj7ciRI76yoqIii46O9gso//3vfy0kJMQefvhhv23fdtttFhsba0ePHjUzsxdffNEk2SuvvOJXb+3atSbJZsyY4Str0qSJBQUF2ZYtW/zqPv744ybJDhw4cNbHeOzYMTt69KgNHDjQ2rRp47esrF/37dvnV15UVGSRkZE2fPhwv/LmzZtbt27dznrfqJ4IKLigyr6IP/74Y7/ysWPHmsfjsa+++sqOHj3qN/34xz/2fZmX/TX40ksvldv29ddfb7Gxsb75soBSWFjoV2/kyJEmyfbu3etXvn379rMKKNdcc421bNmyXPns2bP9vnRzcnJMkv3tb38rd0xlIafsS7ysXz766CO/bR49etRq1qzp9yV4poDy9NNP+5WXjXwsWLDAzE78ZVu3bl274oorbObMmef0V+iAAQOscePGvv2V/czq1atnf/nLX8zMrFu3btalSxe/9c41oMTFxZUrv+OOO6xZs2Zn3dbvK/tCXbRoka8sNTX1lNsLCQmxQYMG+ZUdOnTI/vWvf9m3335rZmbPPfec1a9f3/bt22d79+61fv36Wb169SwpKalc+K3IV199ZYMGDbKGDRtajRo1TJJvmjRpkm+fNWrUsGHDhpVbv+zz/X0///nPLSEhwRfE9u3bZ16v1x566CFfnf79+1udOnWspKSk3OcyLi7ObrvtNl/dJk2alAsTZma5ubkmydLS0mzhwoW2e/fuCo/xpZdeso4dO1pERITf8YWGhvrVk2S33HJLhdv41a9+ZVFRUb7flRUrVlQYsHDx4RoUVIkGDRr4zX/11VcyM8XGxio4ONhv+uCDD3zn5ffu3Vvh+pIUHx/vW14mPDxctWvX9ivbu3evatasqejoaL/y2NjYs2r73r17FRcXV6785LKvvvpKktSnT59yxzR58mSZmfbt23fabdSsWVMxMTHljut0YmJi/Oa9Xq+kExc3SlJUVJRyc3N19dVX6+GHH1aLFi0UHx+vcePG6ejRo6fddo8ePbRz505t3bpVy5cvV5s2bVS/fn399Kc/1fLly3XkyBGtXr1aPXr0OOv2ns0xlB1H2TGcqzvvvFPSibttvr+Pivr1m2++UUlJSbnPR0REhO+ajb1792rEiBGaNm2a6tatq+HDh2vfvn36/PPPtWDBAv3mN7/RqlWrTtme0tJSpaWladGiRRo5cqRWrFihDz/80Ne+suPcv3+/SktLz+rzJkn33Xef9uzZo5ycHEnSiy++qOLiYr87vr766isdOHBAISEh5T6X+fn55a6Bqeh3rUuXLnrttdd07Ngx3X333WrYsKFatmypF1980Vdn0aJFuu2225SQkKB58+ZpzZo1Wrt2re677z7f9Ttn2o8kPfDAAzp48KDvrqzp06erYcOG6tWrV4X1cfHgLh5UiZNvxaxXr548Ho/ee+893xfq95WVlX1xffnll+Xq/Oc//1G9evVOu5+ybRw7dkz79u3z+xLKz88/q7bHxMRUWPfksrK2PPnkk6e8o+TkUJSfn6+EhATf/LFjx7R3794Kv7DPR6tWrbRgwQKZmT755BPNmTNHjz76qMLCwjR69OhTrld2kfHy5cuVk5Oj1NRUX/kjjzyid999V8XFxecdUCpLjRrf/U1W1gf5+fl+X/abNm2SpNM+i2XEiBFq27at+vbtK0n6+9//rtmzZysqKkrt27dXWlqali5dqm7dulW4/qeffqqPP/5Yc+bM0YABA3zln3/+uV+9unXryuPxnNXnTZJ69uyp+Ph4zZ49Wz179tTs2bPVoUMHNW/e3FenXr16iomJ8V0EfLLIyEi/+VPdNt2rVy/16tVLxcXF+uCDD5Sdna1+/fqpadOmuvbaazVv3jwlJiZq4cKFftsoLi6ucHun2s8Pf/hDXX/99Xrqqad0/fXXa/HixRo/frzvFm9cvBhBgRNuvPFGmZn27Nmjdu3alZtatWolSbr22msVFhamefPm+a2/e/durVy50vcFejopKSmSpIULF/qVL1iw4Kza2q1bN+Xl5enjjz/2K58/f77ffKdOnVSnTh1t3ry5wmNq166dQkJC/NY5+dkdL730ko4dO6auXbv6ys5nJOFkHo9HrVu31h//+EfVqVNH69evP239Bg0aqHnz5nrllVe0bt06X0BJTU3V119/ralTp6p27dpq3779abdz8qhOZZs7d64k/9ude/XqJY/H41tWZs6cOQoLC6vwwW6StGrVKr388suaMWOGr8zM9M033/jmDx06dNoHtpV9GZ8cxv/85z/7zUdEROiaa67RokWL/EYdDh48qDfeeKPcdoOCgnTXXXfptdde03vvvaePPvrI784a6cTv2t69e3X8+PEKP5NXXHHFKdtdEa/Xq5SUFE2ePFnSiTvEyo4xJCTEL3jk5+dXeBfPmQwfPlyffPKJBgwYoKCgIN1///3nvA1UP4ygwAmdOnXSL37xC91777366KOP1KVLF0VEROjLL7/U+++/r1atWumXv/yl6tSpo9/+9rd6+OGHdffdd6tv377au3evxo8fr9DQUI0bN+6M+7ruuuvUqVMnjRgxQkVFRWrbtq3WrFmj5557TpL/X9kVycjI0LPPPqv09HRNmDBBsbGxeuGFF/Tvf//br16tWrX05JNPasCAAdq3b5/69Omj+vXr6+uvv9bHH3+sr7/+WjNnzvRbZ9GiRapZs6ZSU1OVl5en3/72t2rdurVuu+02X52yv/wXLlyopKQkhYaG+gLc2XjzzTc1Y8YM3XzzzUpKSpKZadGiRTpw4IAvcJxO9+7d9eSTTyosLEydOnWSJCUmJioxMVHLli3Tz372M9Wsefr/WspGJ2bNmqXIyEiFhoYqMTHxvEeK3nvvPU2cOFG33HKLkpKS9O233+rvf/+7Zs2apZ/+9Ke66aabfHVbtGihgQMHaty4cQoKClL79u21bNkyzZo1SxMmTCh3ikc68df/oEGDlJmZqcTERF95z5499eijj6p27draunWrVqxYoZEjR56ync2aNdNll12m0aNHy8wUHR2tN954w3dq5vsee+wxXXfddUpNTdWIESN0/PhxTZ48WREREeVOEUonTvNMnjxZ/fr1U1hYmG6//Xa/5XfccYdeeOEF3XDDDRo+fLiuueYaBQcHa/fu3Vq1apV69eqlW2655bT9/Lvf/U67d+9W9+7d1bBhQx04cEBPPPGEgoODfX8AlN2ePGTIEPXp00e7du3SY489pgYNGmjr1q2n3f7JUlNT1bx5c61atUp33nmn6tevf07ro5qqustfcCkquxj066+/rnD5s88+ax06dLCIiAgLCwuzyy67zO6+++5yF4/+5S9/sauuuspCQkIsKirKevXqVe5izwEDBlhERESF+9m3b5/de++9VqdOHQsPD7fU1FT74IMPTJI98cQTZzyOzZs3W2pqqoWGhlp0dLQNHDjQXn/99Qov/MzNzbX09HSLjo624OBgS0hIsPT0dHv55ZfL9cu6devspptuslq1allkZKT17dvXvvrqK7/tbd++3dLS0iwyMtJ3a7LZdxfJfn+7Zmbbtm0zSTZ79mwzO3HRbN++fe2yyy6zsLAwi4qKsmuuucbmzJlzxuM2M99xpqam+pXff//9Jsn+9Kc/lVtHFVx8PG3aNEtMTLSgoCC/9qWkpFiLFi3KbWPAgAG+Yz2VrVu32g033GAJCQnm9XotNDTUWrVqZRMnTvRd3Pp9JSUlNm7cOGvcuLGFhITY5ZdfXmH7yzzyyCPWunVr3x0xZQoKCqxPnz4WFRVljRo1smnTpp22nWbffYYiIyOtbt26duutt9rOnTsr7KvFixf7Pu+NGze2SZMm+T4zFenYsaNJsv79+1e4/OjRo/b4449b69atLTQ01GrVqmXNmjWzQYMG2datW331mjRpYunp6eXWf/PNN+3666+3hIQECwkJsfr169sNN9xg7733nl+9SZMmWdOmTc3r9dqVV15pzzzzTIXtlmRDhw49bX9lZmaaJPvggw9OWw8XD4/ZBXpxBOC4+fPnq3///vrHP/6hjh07XtB9Z2Zmavz48fr666/LXUcDQGrXrp08Ho/Wrl1b1U3BBcIpHlySXnzxRe3Zs0etWrVSjRo19MEHH+j3v/+9unTpcsHDCYCKFRUV6dNPP9Wbb76pdevW6dVXX63qJuECIqDgkhQZGakFCxZowoQJ+uabb9SgQQPdc889mjBhQlU3DcD/Wb9+vbp166aYmBiNGzdON998c1U3CRcQp3gAAIBzuM0YAAA4h4ACAACcQ0ABAADOqZYXyZaWluo///mPIiMjT/l4ZAAA4BYz08GDBxUfH3/Gh2JWy4Dyn//8R40aNarqZgAAgP/Brl271LBhw9PWqZYBpexlVrt27Sr3ploAAOCmoqIiNWrUqNxLKStSLQNK2Wmd2rVrE1AAAKhmzubyDC6SBQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA455wDyrvvvqubbrpJ8fHx8ng8eu211/yWm5kyMzMVHx+vsLAwde3aVXl5eX51iouL9cADD6hevXqKiIjQz372M+3evfu8DgQAAFw8zjmgfPPNN2rdurWmT59e4fIpU6Zo6tSpmj59utauXau4uDilpqbq4MGDvjoZGRl69dVXtWDBAr3//vs6dOiQbrzxRh0/fvx/PxIAAHDR8JiZ/c8rezx69dVXdfPNN0s6MXoSHx+vjIwMjRo1StKJ0ZLY2FhNnjxZgwYNUmFhoX7wgx/o+eef1+233y7pu3frLF26VD179jzjfouKihQVFaXCwkKeJAsAQDVxLt/fAb0GZdu2bcrPz1daWpqvzOv1KiUlRatXr5YkrVu3TkePHvWrEx8fr5YtW/rqnKy4uFhFRUV+EwAAuHgFNKDk5+dLkmJjY/3KY2Njfcvy8/MVEhKiunXrnrLOybKzsxUVFeWbeJMxAAAXt0q5i+fklwCZ2RlfDHS6OmPGjFFhYaFv2rVrV8DaCgAA3BPQgBIXFydJ5UZCCgoKfKMqcXFxKikp0f79+09Z52Rer9f35mLeYAwAwMUvoAElMTFRcXFxysnJ8ZWVlJQoNzdXHTt2lCS1bdtWwcHBfnW+/PJLffrpp746Va3p6CV+EwAAuLBqnusKhw4d0ueff+6b37ZtmzZu3Kjo6Gg1btxYGRkZysrKUnJyspKTk5WVlaXw8HD169dPkhQVFaWBAwdqxIgRiomJUXR0tH7zm9+oVatW6tGjR+CODAAAVFvnHFA++ugjdevWzTf/4IMPSpIGDBigOXPmaOTIkTpy5IiGDBmi/fv3q0OHDlq2bJkiIyN96/zxj39UzZo1ddttt+nIkSPq3r275syZo6CgoAAcEgAAqO7O6zkoVaWyn4Ny8mmd7ZPSA74PAAAuNVX2HBQAAIBAIKAAAADnEFAAAIBzzvki2UsR16QAAHBhMYICAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4p2ZVN6A6ajp6id/89knpVdQSAAAuToygAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcE/CAcuzYMT3yyCNKTExUWFiYkpKS9Oijj6q0tNRXx8yUmZmp+Ph4hYWFqWvXrsrLywt0UwAAQDUV8IAyefJkPf3005o+fbr+9a9/acqUKfr973+vJ5980ldnypQpmjp1qqZPn661a9cqLi5OqampOnjwYKCbAwAAqqGAB5Q1a9aoV69eSk9PV9OmTdWnTx+lpaXpo48+knRi9GTatGkaO3asevfurZYtW2ru3Lk6fPiw5s+fH+jmAACAaijgAaVz585asWKFPvvsM0nSxx9/rPfff1833HCDJGnbtm3Kz89XWlqabx2v16uUlBStXr26wm0WFxerqKjIbwIAABevmoHe4KhRo1RYWKhmzZopKChIx48f18SJE9W3b19JUn5+viQpNjbWb73Y2Fjt2LGjwm1mZ2dr/PjxgW4qAABwVMBHUBYuXKh58+Zp/vz5Wr9+vebOnavHH39cc+fO9avn8Xj85s2sXFmZMWPGqLCw0Dft2rUr0M0GAAAOCfgIykMPPaTRo0frjjvukCS1atVKO3bsUHZ2tgYMGKC4uDhJJ0ZSGjRo4FuvoKCg3KhKGa/XK6/XG+imAgAARwV8BOXw4cOqUcN/s0FBQb7bjBMTExUXF6ecnBzf8pKSEuXm5qpjx46Bbg4AAKiGAj6CctNNN2nixIlq3LixWrRooQ0bNmjq1Km67777JJ04tZORkaGsrCwlJycrOTlZWVlZCg8PV79+/QLdHAAAUA0FPKA8+eST+u1vf6shQ4aooKBA8fHxGjRokH73u9/56owcOVJHjhzRkCFDtH//fnXo0EHLli1TZGRkoJsDAACqIY+ZWVU34lwVFRUpKipKhYWFql27dsC333T0knOqv31SesDbAADAxeZcvr95Fw8AAHAOAQUAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDkBf1Dbpejk56bwXBQAAM4PIygAAMA5BBQAAOAcAgoAAHAOAQUAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADinUgLKnj17dOeddyomJkbh4eG6+uqrtW7dOt9yM1NmZqbi4+MVFhamrl27Ki8vrzKaAgAAqqGAB5T9+/erU6dOCg4O1t///ndt3rxZf/jDH1SnTh1fnSlTpmjq1KmaPn261q5dq7i4OKWmpurgwYOBbg4AAKiGagZ6g5MnT1ajRo00e/ZsX1nTpk19/zYzTZs2TWPHjlXv3r0lSXPnzlVsbKzmz5+vQYMGBbpJAACgmgn4CMrixYvVrl073Xrrrapfv77atGmjZ555xrd827Ztys/PV1pamq/M6/UqJSVFq1evrnCbxcXFKioq8psAAMDFK+AB5YsvvtDMmTOVnJyst99+W4MHD9avfvUrPffcc5Kk/Px8SVJsbKzferGxsb5lJ8vOzlZUVJRvatSoUaCbDQAAHBLwgFJaWqof/ehHysrKUps2bTRo0CDdf//9mjlzpl89j8fjN29m5crKjBkzRoWFhb5p165dgW42AABwSMADSoMGDdS8eXO/siuvvFI7d+6UJMXFxUlSudGSgoKCcqMqZbxer2rXru03AQCAi1fAA0qnTp20ZcsWv7LPPvtMTZo0kSQlJiYqLi5OOTk5vuUlJSXKzc1Vx44dA90cAABQDQX8Lp5f//rX6tixo7KysnTbbbfpww8/1KxZszRr1ixJJ07tZGRkKCsrS8nJyUpOTlZWVpbCw8PVr1+/QDcHAABUQwEPKO3bt9err76qMWPG6NFHH1ViYqKmTZum/v37++qMHDlSR44c0ZAhQ7R//3516NBBy5YtU2RkZKCbAwAAqiGPmVlVN+JcFRUVKSoqSoWFhZVyPUrT0UvOa/3tk9ID1BIAAC4e5/L9zbt4AACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDk1q7oBF6Omo5f4zW+flF5FLQEAoHpiBAUAADiHgAIAAJzDKR4HcEoIAAB/jKAAAADnEFAAAIBzCCgAAMA5XINyAXCNCQAA54YRFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOCcmlXdgEtR09FLqroJAAA4jREUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcniRbDZ38JNrtk9KrqCUAAFQORlAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADiHgAIAAJxT6QElOztbHo9HGRkZvjIzU2ZmpuLj4xUWFqauXbsqLy+vspsCAACqiUp9DsratWs1a9YsXXXVVX7lU6ZM0dSpUzVnzhxdfvnlmjBhglJTU7VlyxZFRkZWZpOqBZ5zAgC41FXaCMqhQ4fUv39/PfPMM6pbt66v3Mw0bdo0jR07Vr1791bLli01d+5cHT58WPPnz6+s5gAAgGqk0gLK0KFDlZ6erh49eviVb9u2Tfn5+UpLS/OVeb1epaSkaPXq1RVuq7i4WEVFRX4TAAC4eFXKKZ4FCxZo/fr1Wrt2bbll+fn5kqTY2Fi/8tjYWO3YsaPC7WVnZ2v8+PGBbygAAHBSwEdQdu3apeHDh2vevHkKDQ09ZT2Px+M3b2blysqMGTNGhYWFvmnXrl0BbTMAAHBLwEdQ1q1bp4KCArVt29ZXdvz4cb377ruaPn26tmzZIunESEqDBg18dQoKCsqNqpTxer3yer2BbioAAHBUwEdQunfvrk2bNmnjxo2+qV27durfv782btyopKQkxcXFKScnx7dOSUmJcnNz1bFjx0A3BwAAVEMBH0GJjIxUy5Yt/coiIiIUExPjK8/IyFBWVpaSk5OVnJysrKwshYeHq1+/foFuDgAAqIYq9TkopzJy5EgdOXJEQ4YM0f79+9WhQwctW7aMZ6AAAABJFyigvPPOO37zHo9HmZmZyszMvBC7BwAA1Qzv4gEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAc6rkZYG4tDUdvcRvfvuk9CpqCQDAVYygAAAA5xBQAACAczjFcwniFAsAwHWMoAAAAOcQUAAAgHMIKAAAwDlcg1INnHzNyIXeH9eoAAAuNEZQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcw23GCDhuUwYAnC9GUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAcwgoAADAOQQUAADgHAIKAABwDgEFAAA4h7cZXwJOfrswAACuYwQFAAA4h4ACAACcQ0ABAADO4RoUnLOTr2nZPim9iloCALhYMYICAACcQ0ABAADO4RTPRehC31bMbcwAgEBjBAUAADiHgAIAAJxDQAEAAM7hGhRUOq5RAQCcK0ZQAACAcwgoAADAOQQUAADgHK5BgXN4lD4AgBEUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOCXhAyc7OVvv27RUZGan69evr5ptv1pYtW/zqmJkyMzMVHx+vsLAwde3aVXl5eYFuCgAAqKYCfptxbm6uhg4dqvbt2+vYsWMaO3as0tLStHnzZkVEREiSpkyZoqlTp2rOnDm6/PLLNWHCBKWmpmrLli2KjIwMdJMuejxKHgBwsQl4QHnrrbf85mfPnq369etr3bp16tKli8xM06ZN09ixY9W7d29J0ty5cxUbG6v58+dr0KBBgW4SAACoZir9GpTCwkJJUnR0tCRp27Ztys/PV1pamq+O1+tVSkqKVq9eXeE2iouLVVRU5DcBAICLV6UGFDPTgw8+qM6dO6tly5aSpPz8fElSbGysX93Y2FjfspNlZ2crKirKNzVq1Kgymw0AAKpYpQaUYcOG6ZNPPtGLL75YbpnH4/GbN7NyZWXGjBmjwsJC37Rr165KaS8AAHBDpb2L54EHHtDixYv17rvvqmHDhr7yuLg4SSdGUho0aOArLygoKDeqUsbr9crr9VZWUwEAgGMCPoJiZho2bJgWLVqklStXKjEx0W95YmKi4uLilJOT4ysrKSlRbm6uOnbsGOjmAACAaijgIyhDhw7V/Pnz9frrrysyMtJ3XUlUVJTCwsLk8XiUkZGhrKwsJScnKzk5WVlZWQoPD1e/fv0C3RxchHjbMQBc/AIeUGbOnClJ6tq1q1/57Nmzdc8990iSRo4cqSNHjmjIkCHav3+/OnTooGXLlvEMFAAAIKkSAoqZnbGOx+NRZmamMjMzA717AABwEai0i2Rx8ajsJ9Weafs8KRcALj28LBAAADiHgAIAAJxDQAEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnMOj7sGj5E9yprcl8zZlAKh8jKAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHAOAQUAADiH24xxyeE2YQBwHyMoAADAOQQUAADgHAIKAABwDtegoNqr7GtKeBUAAFx4jKAAAADnEFAAAIBzOMWDi86FPiXD248BIPAYQQEAAM4hoAAAAOcQUAAAgHMIKAAAwDkEFAAA4BwCCgAAcA63GQMBxpNnAeD8MYICAACcQ0ABAADOIaAAAADncA0KUMV4FD4AlMcICgAAcA4BBQAAOIeAAgAAnENAAQAAziGgAAAA5xBQAACAc7jNGLjAzvQo/O8v55ZjAJcqRlAAAIBzCCgAAMA5BBQAAOAcrkHBJe9M14S4jMfkA7hYMYICAACcQ0ABAADO4RQPgFPiFBKAqsIICgAAcA4BBQAAOIeAAgAAnMM1KIDDzvUaEK4ZAXCxYAQFAAA4h4ACAACcwyke4CJ2plM+F/opupyCurSd6fN2qX8eAv37ca6//671PyMoAADAOQQUAADgnCoNKDNmzFBiYqJCQ0PVtm1bvffee1XZHAAA4IgquwZl4cKFysjI0IwZM9SpUyf9+c9/1vXXX6/NmzercePGVdUswGnne81IoNc/19uecXFz7eft+jUWgXam/j/X5VXdX1U2gjJ16lQNHDhQ/+///T9deeWVmjZtmho1aqSZM2dWVZMAAIAjqmQEpaSkROvWrdPo0aP9ytPS0rR69epy9YuLi1VcXOybLywslCQVFRVVSvtKiw9XynaBi82ZfgfP9LtUWb/DqBrn+39noD8PJ7fH9c/b+bY30N9dldFfZds0szNXtiqwZ88ek2T/+Mc//MonTpxol19+ebn648aNM0lMTExMTExMF8G0a9euM2aFKn0Oisfj8Zs3s3JlkjRmzBg9+OCDvvnS0lLt27dPMTExFdY/H0VFRWrUqJF27dql2rVrB3TblwL67/zQf/87+u780H/nh/47O2amgwcPKj4+/ox1qySg1KtXT0FBQcrPz/crLygoUGxsbLn6Xq9XXq/Xr6xOnTqV2UTVrl2bD9l5oP/OD/33v6Pvzg/9d37ovzOLioo6q3pVcpFsSEiI2rZtq5ycHL/ynJwcdezYsSqaBAAAHFJlp3gefPBB3XXXXWrXrp2uvfZazZo1Szt37tTgwYOrqkkAAMARVRZQbr/9du3du1ePPvqovvzyS7Vs2VJLly5VkyZNqqpJkk6cTho3bly5U0o4O/Tf+aH//nf03fmh/84P/Rd4HrOzudcHAADgwuFdPAAAwDkEFAAA4BwCCgAAcA4BBQAAOIeAAgAAnENA+Z4ZM2YoMTFRoaGhatu2rd57772qbpKTsrOz1b59e0VGRqp+/fq6+eabtWXLFr86ZqbMzEzFx8crLCxMXbt2VV5eXhW12F3Z2dnyeDzKyMjwldF3p7dnzx7deeediomJUXh4uK6++mqtW7fOt5z+O7Vjx47pkUceUWJiosLCwpSUlKRHH31UpaWlvjr033feffdd3XTTTYqPj5fH49Frr73mt/xs+qq4uFgPPPCA6tWrp4iICP3sZz/T7t27L+BRVGPn++K/i8WCBQssODjYnnnmGdu8ebMNHz7cIiIibMeOHVXdNOf07NnTZs+ebZ9++qlt3LjR0tPTrXHjxnbo0CFfnUmTJllkZKS98sortmnTJrv99tutQYMGVlRUVIUtd8uHH35oTZs2tauuusqGDx/uK6fvTm3fvn3WpEkTu+eee+yf//ynbdu2zZYvX26ff/65rw79d2oTJkywmJgYe/PNN23btm328ssvW61atWzatGm+OvTfd5YuXWpjx461V155xSTZq6++6rf8bPpq8ODBlpCQYDk5ObZ+/Xrr1q2btW7d2o4dO3aBj6b6IaD8n2uuucYGDx7sV9asWTMbPXp0FbWo+igoKDBJlpuba2ZmpaWlFhcXZ5MmTfLV+fbbby0qKsqefvrpqmqmUw4ePGjJycmWk5NjKSkpvoBC353eqFGjrHPnzqdcTv+dXnp6ut13331+Zb1797Y777zTzOi/0zk5oJxNXx04cMCCg4NtwYIFvjp79uyxGjVq2FtvvXXB2l5dcYpHUklJidatW6e0tDS/8rS0NK1evbqKWlV9FBYWSpKio6MlSdu2bVN+fr5ff3q9XqWkpNCf/2fo0KFKT09Xjx49/Mrpu9NbvHix2rVrp1tvvVX169dXmzZt9Mwzz/iW03+n17lzZ61YsUKfffaZJOnjjz/W+++/rxtuuEES/Xcuzqav1q1bp6NHj/rViY+PV8uWLenPs1Blj7p3yX//+18dP3683JuUY2Njy71xGf7MTA8++KA6d+6sli1bSpKvzyrqzx07dlzwNrpmwYIFWr9+vdauXVtuGX13el988YVmzpypBx98UA8//LA+/PBD/epXv5LX69Xdd99N/53BqFGjVFhYqGbNmikoKEjHjx/XxIkT1bdvX0l8/s7F2fRVfn6+QkJCVLdu3XJ1+G45MwLK93g8Hr95MytXBn/Dhg3TJ598ovfff7/cMvqzvF27dmn48OFatmyZQkNDT1mPvqtYaWmp2rVrp6ysLElSmzZtlJeXp5kzZ+ruu+/21aP/KrZw4ULNmzdP8+fPV4sWLbRx40ZlZGQoPj5eAwYM8NWj/87e/9JX9OfZ4RSPpHr16ikoKKhcoi0oKCiXjvGdBx54QIsXL9aqVavUsGFDX3lcXJwk0Z8VWLdunQoKCtS2bVvVrFlTNWvWVG5urv70pz+pZs2avv6h7yrWoEEDNW/e3K/syiuv1M6dOyXx2TuThx56SKNHj9Ydd9yhVq1a6a677tKvf/1rZWdnS6L/zsXZ9FVcXJxKSkq0f//+U9bBqRFQJIWEhKht27bKycnxK8/JyVHHjh2rqFXuMjMNGzZMixYt0sqVK5WYmOi3PDExUXFxcX79WVJSotzc3Eu+P7t3765NmzZp48aNvqldu3bq37+/Nm7cqKSkJPruNDp16lTulvbPPvvM9xZ0Pnund/jwYdWo4f/fflBQkO82Y/rv7J1NX7Vt21bBwcF+db788kt9+umn9OfZqLLLcx1TdpvxX//6V9u8ebNlZGRYRESEbd++vaqb5pxf/vKXFhUVZe+88459+eWXvunw4cO+OpMmTbKoqChbtGiRbdq0yfr27XvJ3qp4Jt+/i8eMvjudDz/80GrWrGkTJ060rVu32gsvvGDh4eE2b948Xx3679QGDBhgCQkJvtuMFy1aZPXq1bORI0f66tB/3zl48KBt2LDBNmzYYJJs6tSptmHDBt/jJ86mrwYPHmwNGza05cuX2/r16+2nP/0ptxmfJQLK9zz11FPWpEkTCwkJsR/96Ee+22bhT1KF0+zZs311SktLbdy4cRYXF2der9e6dOlimzZtqrpGO+zkgELfnd4bb7xhLVu2NK/Xa82aNbNZs2b5Laf/Tq2oqMiGDx9ujRs3ttDQUEtKSrKxY8dacXGxrw79951Vq1ZV+H/dgAEDzOzs+urIkSM2bNgwi46OtrCwMLvxxhtt586dVXA01Y/HzKxqxm4AAAAqxjUoAADAOQQUAADgHAIKAABwDgEFAAA4h4ACAACcQ0ABAADOIaAAAADnEFAAAIBzCCgAAMA5BBQAAOAcAgoAAHDO/weVdQJ17BQPZAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(0)\n", + "sim = Sim(\n", + " params=Params(\n", + " TIME=1 * 60 * 60, # seconds\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_hash_power = np.random.pareto(10, size=10),\n", + " adversary_control=0.5,\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=1, # second\n", + " pol_proof_time=2, # seconds\n", + " )\n", + ")\n", + "\n", + "sim.run(seed=1)\n", + "print(\"blocks\", len(sim.blocks))\n", + "print(f\"blocks time {sim.params.TIME / len(sim.blocks) / 60:.2f}m\")\n", + "np.random.seed(0)\n", + "sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e7c9c405-155e-4101-ada6-25b29ca854c7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Honest chain length 120\n", + "chain.html\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.visualize_chain()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37a10d0a-b847-434d-b1b3-69dc52c996cc", + "metadata": {}, + "outputs": [], + "source": [ + "sim = Sim(\n", + " params=Params(\n", + " TIME=25 * 60 * 60, # seconds\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_hash_power = np.random.pareto(10, size=10),\n", + " adversary_control=0.2,\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=1, # second\n", + " pol_proof_time=2, # seconds\n", + " )\n", + ")\n", + "\n", + "sim.run()\n", + "print(\"blocks\", len(sim.blocks))\n", + "print(f\"blocks time {sim.params.TIME / len(sim.blocks) / 60:.2f}m\")\n", + "sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4acf7a9-105d-4dc9-8a42-bcec57d5ff6e", + "metadata": {}, + "outputs": [], + "source": [ + "sim = Sim(\n", + " params=Params(\n", + " TIME=25 * 60 * 60, # seconds\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_hash_power = np.random.pareto(10, size=10),\n", + " adversary_control=0.1,\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=1, # second\n", + " pol_proof_time=2, # seconds\n", + " )\n", + ")\n", + "\n", + "sim.run()\n", + "print(\"blocks\", len(sim.blocks))\n", + "print(f\"blocks time {sim.params.TIME / len(sim.blocks) / 60:.2f}m\")\n", + "sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89bf9a0f-7f47-4216-80e8-5e6e24998f3b", + "metadata": {}, + "outputs": [], + "source": [ + "N = 100\n", + "net_params = [NetworkParams(\n", + " mixnet_delay_mean=0.1, # seconds\n", + " mixnet_delay_var=0.1,\n", + " broadcast_delay_mean=0.1, # second\n", + " pol_proof_time=i/N * 5, # seconds\n", + " ) for i in range(N)]\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " TIME=5 * 60 * 60, # seconds\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_hash_power = np.random.pareto(10, size=10),\n", + " adversary_control=0.1,\n", + " ),\n", + " network=net\n", + ") for net in net_params]\n", + "\n", + "[sim.run() for sim in sims]\n", + "\n", + "\n", + "plt.scatter([sim.network.pol_proof_time / sim.params.MEAN_BLOCK_TIME for sim in sims], [100 - 100 * len(sim.honest_chain()) / len(sim.blocks) for sim in sims])\n", + "plt.ylabel(\"wasted blocks %\")\n", + "plt.xlabel(\"PoL time as fraction of mean block time\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c21cfba-68b3-487b-a273-76776defddca", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "776cc7df-7308-45e8-a8ec-6130824623a7", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb22240b-a5fb-4470-801d-1598922080b2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/cryptarchia/ghost-cryptarchia.ipynb b/cryptarchia/ghost-cryptarchia.ipynb new file mode 100644 index 0000000..4933231 --- /dev/null +++ b/cryptarchia/ghost-cryptarchia.ipynb @@ -0,0 +1,1119 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "ad657d5a-bd36-4329-b134-6745daff7ae9", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass\n", + "from pyvis.network import Network\n", + "from pyvis.options import Layout\n", + "from collections import defaultdict" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a9e0b910-c633-4dbe-827c-4ddb804f7a9a", + "metadata": {}, + "outputs": [], + "source": [ + "def phi(f, alpha):\n", + " return 1 - (1-f)**alpha" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "aa0aadce-a0be-4873-ba23-293be74db313", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Block:\n", + " id: int\n", + " slot: int\n", + " height: int\n", + " parent: int\n", + " leader: int" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a538cf45-d551-4603-b484-dbbc3f3d0a73", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class NetworkParams:\n", + " mixnet_delay_mean: int # seconds\n", + " mixnet_delay_var: int\n", + " broadcast_delay_mean: int # second\n", + " pol_proof_time: int # seconds\n", + " no_network_delay: bool = False\n", + "\n", + " def sample_mixnet_delay(self):\n", + " scale = self.mixnet_delay_var / self.mixnet_delay_mean\n", + " shape = self.mixnet_delay_mean / scale\n", + " return np.random.gamma(shape=shape, scale=scale)\n", + " \n", + " def sample_broadcast_delay(self, blocks):\n", + " return np.random.exponential(self.broadcast_delay_mean, size=blocks.shape)\n", + "\n", + " def block_arrival_slot(self, block_slot):\n", + " if self.no_network_delay:\n", + " return block_slot\n", + " return self.pol_proof_time + self.sample_mixnet_delay() + self.sample_broadcast_delay(block_slot) + block_slot" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "24779de7-284f-4200-9e4a-d2aa6e1b823b", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Params:\n", + " SLOTS: int\n", + " f: float\n", + " honest_stake: np.array\n", + " adversary_control: float\n", + "\n", + " @property\n", + " def N(self):\n", + " return len(self.honest_stake) + 1\n", + "\n", + " @property\n", + " def stake(self):\n", + " return np.append(self.honest_stake, self.honest_stake.sum() / (1/self.adversary_control - 1))\n", + " \n", + " @property\n", + " def relative_stake(self):\n", + " return self.stake / self.stake.sum()\n", + "\n", + " def slot_prob(self):\n", + " return phi(self.f, self.relative_stake)" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "id": "a90495a8-fcda-4e47-92b4-cc5ceaa9ff9c", + "metadata": {}, + "outputs": [], + "source": [ + "class Sim:\n", + " def __init__(self, params: Params, network: NetworkParams):\n", + " self.params = params\n", + " self.network = network\n", + " self.leaders = np.zeros((params.N, params.SLOTS), dtype=np.int64)\n", + " self.blocks = []\n", + " self.block_slots = np.array([], dtype=np.int64)\n", + " self.block_heights = np.array([], dtype=np.int64)\n", + " self.block_arrivals = np.zeros(shape=(params.N, 0), dtype=np.int64) # arrival time to each leader for each block\n", + "\n", + " # emit the genesis block\n", + " self.emit_block(\n", + " leader=0,\n", + " slot=0,\n", + " height=1,\n", + " parent=-1,\n", + " )\n", + " self.block_arrivals[:,:] = 0 # all nodes see the genesis block\n", + "\n", + " def emit_block(self, leader, slot, height, parent):\n", + " assert type(leader) in [int, np.int64]\n", + " assert type(slot) in [int, np.int64]\n", + " assert type(height) in [int, np.int64]\n", + " assert type(parent) in [int, np.int64]\n", + "\n", + " block = Block(\n", + " id=len(self.blocks),\n", + " slot=slot,\n", + " height=height,\n", + " parent=parent,\n", + " leader=leader,\n", + " )\n", + " self.blocks.append(block)\n", + " self.block_slots = np.append(self.block_slots, block.slot)\n", + " self.block_heights = np.append(self.block_heights, block.height)\n", + " \n", + " # decide when this block will arrive at each node\n", + " new_block_arrival_by_node = self.network.block_arrival_slot(np.repeat(block.slot, self.params.N))\n", + "\n", + " if parent != -1:\n", + " # the new block cannot arrive before it's parent\n", + " parent_arrival_by_node = self.block_arrivals[:,parent]\n", + " new_block_arrival_by_node = np.maximum(new_block_arrival_by_node, parent_arrival_by_node)\n", + " \n", + " self.block_arrivals = np.append(self.block_arrivals, new_block_arrival_by_node.reshape((self.params.N, 1)), axis=1)\n", + " return block.id\n", + "\n", + " def emit_leader_block(self, leader, slot):\n", + " assert type(leader) in [int, np.int64], type(leader)\n", + " assert isinstance(slot, int)\n", + "\n", + " parent = self.fork_choice(leader, slot)\n", + "\n", + " return self.emit_block(\n", + " leader,\n", + " slot,\n", + " height=self.blocks[parent].height + 1,\n", + " parent=parent,\n", + " )\n", + "\n", + " def fork_choice(self, node, slot):\n", + " return self.honest_chain(node, slot)[-1]\n", + "\n", + " def honest_chain(self, node, slot):\n", + " seen_blocks = self.block_arrivals[node,:] <= slot\n", + " block_ids = np.nonzero(seen_blocks)[0]\n", + "\n", + " children = defaultdict(list)\n", + " for block in block_ids:\n", + " children[self.blocks[block].parent].append(block)\n", + "\n", + " block_weight = self.block_weight(node, slot)\n", + "\n", + " chain = [self.blocks[0].id]\n", + "\n", + " while len(children[chain[-1]]) > 0:\n", + " next_block = max(children[chain[-1]], key=lambda c: block_weight[c])\n", + " chain.append(next_block)\n", + "\n", + " return chain\n", + "\n", + " def block_weight(self, node, slot, dbg=False):\n", + " seen_blocks = self.block_arrivals[node,:] <= slot\n", + " block_ids = np.nonzero(seen_blocks)[0]\n", + " \n", + " block_weight = {}\n", + "\n", + " children = defaultdict(list)\n", + " if dbg:\n", + " print(\"seen\", seen_blocks)\n", + " print(\"block_ids\", block_ids)\n", + " \n", + " for b in sorted(block_ids, reverse=True):\n", + " if dbg:\n", + " print(f\"block={b} weights={block_weight} children={children}\")\n", + " weight = 1\n", + " for child in children[b]:\n", + " weight += block_weight[child]\n", + "\n", + " block_weight[b] = weight\n", + " children[self.blocks[b].parent].append(b)\n", + " assert self.blocks[b].parent not in block_weight\n", + " # curr = b\n", + " # while self.blocks[curr].parent >= 0:\n", + " # block_weight[self.blocks[curr].parent] += 1\n", + " # curr = self.blocks[curr].parent\n", + "\n", + " return block_weight\n", + " \n", + "\n", + " def plot_spacetime_diagram(self, MAX_SLOT=1000):\n", + " alpha_index = sorted(range(self.params.N), key=lambda n: self.params.relative_stake[n])\n", + " nodes = [f\"$N_{n}$($\\\\alpha$={self.params.relative_stake[n]:.2f})\" for n in alpha_index]\n", + " messages = [(nodes[alpha_index.index(self.blocks[b].leader)], nodes[alpha_index.index(node)], self.blocks[b].slot, arrival_slot, f\"$B_{{{b}}}$\", b) for b, arrival_slots in enumerate(self.block_arrivals.T) for node, arrival_slot in enumerate(arrival_slots) if arrival_slot < MAX_SLOT]\n", + " \n", + " fig, ax = plt.subplots(figsize=(8,4))\n", + " \n", + " # Plot vertical lines for each node\n", + " max_slot = max(s for _,_,start_t, end_t,_,_ in messages for s in [start_t, end_t])\n", + " for i, node in enumerate(nodes):\n", + " ax.plot([i, i], [0, max_slot], 'k-', linewidth=0.1)\n", + " ax.text(i, max_slot + 30 * (0 if i % 2 == 0 else 1), node, ha='center', va='bottom')\n", + " \n", + " # Plot messages\n", + " colors = plt.cm.rainbow(np.linspace(0, 1, len(messages)))\n", + " for (start, end, start_time, end_time, label, b), color in zip(messages, colors):\n", + " start_idx = nodes.index(start)\n", + " end_idx = nodes.index(end)\n", + " ax.annotate('', xy=(end_idx, end_time), xytext=(start_idx, start_time),\n", + " arrowprops=dict(arrowstyle='->', color=\"grey\", lw=0.1))\n", + " placement = 0\n", + " mid_x = start_idx * (1 - placement) + end_idx * placement\n", + " mid_y = start_time * (1 - placement) + end_time * placement\n", + " ax.text(mid_x, mid_y, label, ha='center', va='center', \n", + " bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))\n", + "\n", + " # # draw parent pointers\n", + "\n", + " # block = self.blocks[b]\n", + " # parent = self.blocks[block.parent]\n", + " # parent_t = parent.slot\n", + " # parent_idx = alpha_index.index(parent.leader)\n", + " \n", + " # ax.annotate('', xy=(parent_idx, parent_t), xytext=(end_idx, end_time),\n", + " # arrowprops=dict(arrowstyle='->', color=\"black\", lw=2))\n", + "\n", + " for block in self.blocks:\n", + " if block.parent == -1:\n", + " continue\n", + "\n", + " parent = self.blocks[block.parent]\n", + " parent_t = parent.slot\n", + " parent_idx = alpha_index.index(parent.leader)\n", + "\n", + " child_t = block.slot\n", + " child_idx = alpha_index.index(block.leader)\n", + " \n", + " ax.annotate('', xy=(parent_idx, parent_t), xytext=(child_idx, child_t),\n", + " arrowprops=dict(arrowstyle='-', color=\"black\", lw=2))\n", + " \n", + " \n", + " ax.set_xlim(-1, len(nodes))\n", + " ax.set_ylim(0, max_slot + 70)\n", + " ax.set_xticks(range(len(nodes)))\n", + " ax.set_xticklabels([])\n", + " # ax.set_yticks([])\n", + " ax.set_title('Space-Time Diagram')\n", + " ax.set_ylabel('Slot')\n", + " \n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + " def visualize_chain(self):\n", + " honest_chain = self.honest_chain(0, self.block_arrivals.max())\n", + " print(\"Honest chain length\", len(honest_chain))\n", + " honest_chain_set = set(honest_chain)\n", + " \n", + " layout = Layout()\n", + " layout.hierachical = True\n", + " \n", + " G = Network(width=1600, height=800, notebook=True, directed=True, layout=layout, cdn_resources='in_line')\n", + "\n", + " for block in self.blocks:\n", + " # level = slot\n", + " level = block.height\n", + " color = \"lightgrey\"\n", + " if block.id in honest_chain_set:\n", + " color = \"orange\"\n", + "\n", + " G.add_node(int(block.id), level=level, color=color, label=f\"{block.id}:s={block.slot},h={block.height}\")\n", + " if block.parent >= 0:\n", + " G.add_edge(int(block.id), int(block.parent), width=1, color=color)\n", + "\n", + " \n", + " return G.show(\"chain.html\")\n", + "\n", + " def run(self, seed=None):\n", + " if seed is not None:\n", + " np.random.seed(seed)\n", + " \n", + " for s in range(1, self.params.SLOTS):\n", + " if s > 0 and s % 100000 == 0:\n", + " print(f\"SIM={s}/{self.params.SLOTS}, blocks={len(self.blocks)}\")\n", + " \n", + " # the adversary will not participate in the simulation\n", + " # (implemented by never delivering blocks to the adversary)\n", + " self.block_arrivals[-1,:] = self.params.SLOTS\n", + "\n", + " self.leaders[:,s] = np.random.random(size=self.params.N) < self.params.slot_prob()\n", + " for leader in np.nonzero(self.leaders[:,s])[0]:\n", + " if self.params.adversary_control is not None and leader == self.params.N - 1:\n", + " continue\n", + " self.emit_leader_block(\n", + " leader,\n", + " s,\n", + " )\n", + " \n", + " def adverserial_analysis(self, should_plot=True, seed=0):\n", + " np.random.seed(seed)\n", + "\n", + " adversary = self.params.N-1 # adversary is always the last node in our simulations\n", + "\n", + " self.block_arrivals[adversary,:] = self.block_slots # we will say the adversary receives the blocks immidiately\n", + "\n", + " honest_chain = self.honest_chain(adversary, slot=self.params.SLOTS)\n", + " honest_weight_by_slot = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " honest_height_by_slot = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " for b in honest_chain:\n", + " temp_weight = np.zeros(self.params.SLOTS, dtype=np.int64) + self.block_weight(adversary, self.blocks[b].slot)[0]\n", + " temp_weight[:self.blocks[b].slot] = 0\n", + " honest_weight_by_slot = np.maximum(temp_weight, honest_weight_by_slot)\n", + "\n", + " temp_height = np.zeros(self.params.SLOTS, dtype=np.int64) + self.blocks[b].height\n", + " temp_height[:self.blocks[b].slot] = 0\n", + " honest_height_by_slot = np.maximum(temp_height, honest_height_by_slot)\n", + "\n", + " reorg_hist = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " reorg_depths = np.array([], dtype=np.int64)\n", + "\n", + " if should_plot:\n", + " plt.figure(figsize=(20, 6))\n", + " ax = plt.subplot(121)\n", + " \n", + " adversary_active_slots = np.random.random(size=self.params.SLOTS) < phi(self.params.f, self.params.relative_stake[adversary])\n", + " all_active_slots = (self.leaders.sum(axis=0) + adversary_active_slots) > 0\n", + " \n", + " for block in self.blocks:\n", + " if block.id > 0 and block.id % 1000 == 0:\n", + " print(\"Processing block\", block)\n", + "\n", + " # honest_chain = self.honest_chain(adversary, slot=block.slot)\n", + "\n", + " nearest_honest_block = block\n", + " while nearest_honest_block.height > len(honest_chain) or honest_chain[nearest_honest_block.height-1] != nearest_honest_block.id:\n", + " assert nearest_honest_block.parent != -1\n", + " nearest_honest_block = self.blocks[nearest_honest_block.parent]\n", + "\n", + " adv_init_fork_weight = self.block_weight(adversary, block.slot)[0]\n", + "\n", + " cumulative_rel_height = adversary_active_slots[block.slot+1:].cumsum()\n", + " adverserial_weight_by_slot = adv_init_fork_weight + cumulative_rel_height\n", + " \n", + " adverserial_wins = adverserial_weight_by_slot > honest_weight_by_slot[block.slot + 1:]\n", + " \n", + " reorg_events = adverserial_wins & all_active_slots[block.slot+1:]\n", + " \n", + " reorg_depths = np.append(reorg_depths, honest_height_by_slot[block.slot+1:][reorg_events] - nearest_honest_block.height)\n", + " reorg_hist += np.append(np.zeros(block.slot, dtype=np.int64), adverserial_wins).sum(axis=0)\n", + "\n", + " if should_plot:\n", + " if reorg_events.sum() > 0:\n", + " first_slot = block.slot+1\n", + " last_slot = first_slot + np.nonzero(reorg_events)[0].max() + 1\n", + "\n", + " ax.plot(np.arange(first_slot, last_slot), adverserial_weight_by_slot[:last_slot-first_slot]-honest_weight_by_slot[first_slot:last_slot], lw=\"1\")\n", + " for event in np.nonzero(reorg_events)[0]:\n", + " plt.axvline(x = event + block.slot + 1, ymin = 0, ymax = 1, color ='red', lw=0.01)\n", + "\n", + " if should_plot:\n", + " ax.plot(np.zeros(self.params.SLOTS), color=\"k\", label=f\"honest chain\")\n", + " _ = ax.set_title(f\"max chain weight with adversery controlling {self.params.relative_stake[adversary] * 100:.0f}% of stake\")\n", + " _ = ax.set_ylabel(\"weight advantage\")\n", + " _ = ax.set_xlabel(\"slot\")\n", + " _ = ax.legend()\n", + "\n", + " ax = plt.subplot(122)\n", + " _ = ax.grid(True)\n", + " bins = (reorg_depths.max() if reorg_depths.sum() > 0 else 0) + 1\n", + " _ = ax.hist(reorg_depths, density=False, bins=100)\n", + " _ = ax.set_title(f\"re-org depth with {self.params.relative_stake[adversary] * 100:.0f}% adversary\")\n", + " _ = ax.set_xlabel(\"re-org depth\")\n", + " _ = ax.set_ylabel(\"frequency\")\n", + "\n", + " return reorg_depths" + ] + }, + { + "cell_type": "code", + "execution_count": 231, + "id": "6625ba1b-0039-4dcc-a1ec-eea47ce7e476", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "avg blocks per slot 0.04709\n", + "Number of blocks 4709\n", + "longest chain 2346\n", + "CPU times: user 16.5 s, sys: 7.51 s, total: 24 s\n", + "Wall time: 24.7 s\n" + ] + } + ], + "source": [ + "%%time\n", + "np.random.seed(0)\n", + "sim = Sim(\n", + " params=Params(\n", + " SLOTS=100000,\n", + " f=0.05,\n", + " adversary_control = 0.1,\n", + " honest_stake = np.random.pareto(10, 1000)\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=10, # seconds\n", + " no_network_delay=False\n", + " )\n", + ")\n", + "sim.run(seed=5)\n", + "\n", + "n_blocks_per_slot = len(sim.blocks) / sim.params.SLOTS\n", + "print(\"avg blocks per slot\", n_blocks_per_slot)\n", + "print(\"Number of blocks\", len(sim.blocks))\n", + "print(\"longest chain\", max(b.height for b in sim.blocks))" + ] + }, + { + "cell_type": "code", + "execution_count": 232, + "id": "aabccc4e-8f47-403e-b7f9-7508e93ec18b", + "metadata": {}, + "outputs": [], + "source": [ + "# sim.visualize_chain()" + ] + }, + { + "cell_type": "code", + "execution_count": 233, + "id": "51c90b03-336f-4108-8560-27bd4465a5bb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing block Block(id=1000, slot=21253, height=495, parent=998, leader=935)\n", + "Processing block Block(id=2000, slot=42906, height=991, parent=1999, leader=589)\n", + "Processing block Block(id=3000, slot=64559, height=1499, parent=2998, leader=781)\n", + "Processing block Block(id=4000, slot=85787, height=1996, parent=3998, leader=421)\n" + ] + }, + { + "data": { + "image/png": "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Klu2rAIDA5Wamqro6Gj1799fVapUkd1uV9myZdWqVSstXrzYo43FixerXbt2Cg0NVWBgoFq1apUtRmsdWr9+vXr06KHw8HBdccUVmjZtmmw2W45XPr366qvy9fX1WE9y8s8//+j+++9XuXLlZLfbVbVqVT344IMel7Vv3rxZt99+u8LDw+Xv769rr71WU6dO9WinoNthmzZt9NNPP2n//v0e64yUecn/W2+9pddff101atSQ3W7XL7/8Ikn6/vvv1aJFCwUGBiokJEQdOnQ466u+zuVzxBijN954Q9WqVZO/v7+aNm2qRYsWqU2bNmrTpk2+fVs//PIzd+5cGWOynf320EMPKTk5WfPnz5fk2lbsdrt8fX0lScHBwe5ySXrnnXeUlpamoUOHFqjfrD777DM1bNhQ/v7+ioiIUPfu3bVt2zb38DZt2uiBBx6QJDVv3jzf2yzkt13ktX5I0ogRI9S8eXNFREQoNDRUjRs31qRJkwp067KPPvpIPj4+GjZsmLusINsfAAA4O7ntw0qu/amPPvpI1157rQICAhQeHq4ePXpoz549BW6/MPuo06ZN0+DBg1WpUiXZ7Xbt2rVLkuskl9q1a8tut+vqq6/WF198keMtYnPicDj07LPPun/T3XDDDVq9enWOdaOiovTYY4+pcuXK8vPzU40aNTRixAilp6e762TdFx45cqSqVq3q3tfMun8yfPhw94k2NWrUcO8vZb0VsyTNnz9fjRs3VkBAgOrWrVug21M1a9ZMt956q0dZ/fr1ZbPZtGbNGnfZnDlzZLPZtGnTJknZb/OV3z6d5b333lONGjUUHBysFi1aaNWqVfnGKBV8f/rbb7/VzTff7E6kSK4TBO+880798MMP7vmfkpKioKAgd53g4GD3vrR1YtLzzz+vOnXqFKhfS0H3XQuyLm3cuFE2my3H4y0///yzbDabvv/+e3fZzp071bNnT0VGRsput+uqq65y/3a35LV9JCUlaciQIapRo4b7t0DTpk315Zdfusdfu3at7rvvPlWvXl0BAQGqXr267r//fu3fv9+jn9x+N//+++/u32Bn+vzzz7OtdwDOMwNcJIYNG2YkmTp16pjXXnvNLFq0yDz77LNGknnqqadM3bp1zYcffmgWLVpkHnroISPJfPPNN+7xY2JiTN++fc20adPM0qVLzfz5882QIUOMl5eXmTp1qkdfjz/+uPHz8zNr1qwxxhizZMkS4+XlZV566aV843z55ZeNJHPnnXea2bNnm4ULF5r33nvPvPzyy+46rVu3NqVLlza1atUy48ePN4sWLTIDBgwwkjxiKUzM1apVM3369HG//+WXX4wkU716ddOrVy/z008/mS+//NJUrVrV1KpVy6Snp+c5HRUqVDD9+/d3vx89erQJCAgwkszhw4eNMcY4HA4TGhpqnn32WXe9kSNHGpvNZh5++GHz448/mjlz5pgWLVqYoKAgs2XLFnc9a3lmdf/99xsvLy/z/PPPm4ULF5oxY8aYKlWqmLCwMI9pmzx5spFkatasaf7zn/+YBQsWmE8//dSEh4ebtm3buuutX7/e1KxZ0zRq1MisXLnSrFy50qxfvz7XaR4/fryRZI4cOeKevpCQEBMQEGD69evnrvfmm28aHx8fExcX5zGvf/nlF2OMMbt27TI9evQwktz9rly50qSkpBhjjHu5XHfddearr74y8+bNM23atDE+Pj5m9+7deS6Xgq4TTqfTtG3b1tjtdjNy5EizcOFCM2zYMFOzZk0jyQwbNsw9jZGRkaZXr17Z+rruuutM48aN3e+XLl1q/Pz8zI033mhmzZpl5s+fb/r27WskmcmTJ2dbPpUqVTL9+/c3P//8s/n6669Nenq66dSpkylbtqz55JNPzLJly8zcuXPNK6+8YmbOnOkef9q0acZms5k77rjDzJkzx/zwww+ma9euxtvb2yxevNhdz1qHqlWrZp577jmzaNEiM3fuXJOammrKly+fbZocDoepWLGiufvuu/Ocxxs2bDDBwcGmevXqZvz48WbJkiVm+vTp5p577nEv83/++ceEhISYK664wnz++efmp59+Mvfff7+RZN588013WwXdDrds2WJatWplypcv77HOGGPM3r173fOzbdu25uuvvzYLFy40e/fuNTNmzDCSTMeOHc3cuXPNrFmzTJMmTYyfn5/57bffsi2TvXv3usv69OljqlWr5jHt5/I5MnToUCPJ9O/f38yfP99MnDjRVK1a1VSoUMG0bt06z3l+pieffDLb54PlvvvuM2XLls1WnpCQYCSZoUOHGmOMOXDggPH19TUfffSROX36tHnuuedM6dKlTVJSktm1a5cJDAw0y5cvL1RcxhjzxhtvGEnm/vvvNz/99JP5/PPPTc2aNU1YWJjZsWOHMca1PF966SX3trFy5Uqza9euXNvMb7vIa/0wxpi+ffuaSZMmmUWLFplFixaZ1157zQQEBJgRI0Z49FOtWjVz6623GmNcnxGDBw82vr6+HttvQbc/AABwdnLbhzXGmH79+hlfX18zePBgM3/+fPPFF1+YunXrmnLlypmoqKh82y7sPmqlSpVMjx49zPfff29+/PFHc/LkSTNhwgQjydx1113mxx9/NDNmzDC1a9c21apVy7bvmJM+ffoYm81m/u///s/9W7hSpUomNDTUYz/z6NGjpkqVKqZatWpmwoQJZvHixea1114zdrvd9O3b113P2heuUqWKueGGG8w333xjZs+ebZo1a2Z8fX3NihUrjDHGHDx40PznP/8xksycOXPc+0uxsbHGGNd+UOXKlc3VV19tPv/8c7NgwQJz9913G0n57hM+//zzJjg42KSlpRljjImKijKSTEBAgBk5cqS73hNPPGHKlSvnfn/mPnhB9vmrV69uOnfubObOnWvmzp1r6tevb8LDw01MTEy+8z6roKAgj/ltSUpKci+fM40bN85IMtu3bzfGuI4BVK5c2WzevNns27fP1KtXzzzxxBPGGNfv/rp165rU1NRCxWVMwfddC7ouNWrUyLRq1SpbP/fcc4+JjIw0DofDGOOa/2FhYaZ+/frm888/NwsXLjSDBw82Xl5eZvjw4e7x8to+HnvsMRMYGGjee+8988svv5gff/zRjB492owdO9Y9/uzZs80rr7xivv32W7N8+XIzc+ZM07p1a1O2bFkTHR3trpfX7+bcpqlZs2amWbNmhZ7nAIoOyRRcNKydznfffdej/Nprr3XvMFkcDocpW7asufPOO3NtLz093TgcDvPII4+YRo0aeQxLSUkxjRo1MjVq1DBbt2415cqVM61bt843AbFnzx7j7e2d44HprFq3bm0kmT///NOj/OqrrzadOnU6q5hzOwh6yy23eNT76quv3Af58/LAAw+YmjVrut+3b9/e9OvXz4SHh7sP2v/xxx9Gklm4cKExxnXw0sfHx/znP//xaCs+Pt6UL1/e3HPPPe6yM5MpW7ZsMZLMc8895zHul19+aSTlmEwZMGCAR9233nrLSDJHjx51l11zzTUFPpC7a9cuI8l8/vnnxhhjfv/9dyPJPPvss6ZGjRrueh06dDAtW7Z0vz8zmWJM3geDJZly5cq5D8wb49oh9/LyMqNGjSpQrJbc1omff/7ZSDIffPCBR/2RI0d6JFOMMWbQoEEmICDAYwd969atRpLHTmHdunVNo0aN3Dujlq5du5oKFSqYjIwMY0zm8nnwwQezxRscHGyeeeaZXKcnMTHRREREmNtuu82jPCMjwzRs2NBcd9117jJrHXrllVeytTNs2DDj5+dnjh075i6bNWtWgX4s3XzzzaZUqVLm+PHjuda57777jN1uNwcOHPAo79KliwkMDHTPy8Jsh7feemuOP1CtH1ZXXHGF+wecMa55UrFiRVO/fn33vDfGtb1FRkZ6rKPnmkzJL/5Tp04Zu91u7r33Xo96K1euNJKKNJnSoUMHU6dOnRyH+fn5eSSBP/roI+Pn52ckmbCwMPPdd98ZY1yfZ4888kihYjLGmNOnT5uAgIBs8+PAgQPGbrebnj17ususeW4l5fOS33ZhTO7rx5kyMjKMw+Ewr776qildurRxOp3uYVYyJSkpydx1110mLCzMI0FSmO0PAACcndz2Ya39pjN/7x48eNAEBAR4nMCWm8Luo950000e9TIyMkz58uVN8+bNPcr3799vfH19890X2bZtm5Fk/vvf/3qUWycAZd3PfOyxx0xwcLDZv3+/R9133nnHSHKfiGftC1esWNEkJye768XFxZmIiAjTvn17d9nbb7+dbZ/XUq1aNePv7+/RX3JysomIiDCPPfZYntO1ePFiI8n8+uuvxhhjpk+fbkJCQsyAAQM8TuarVatWjvuDWePJb5+/fv36HscdVq9ebSSZL7/8Ms8Yz5RbMuXw4cNGUo6/O7/44gsjyZ2gSkxMNJ07dzaSjCTTvHlzc+zYMbNz504TGBjonh/nIrd918KsSx9++KFHEsiYzN8ngwcPdpd16tTJVK5c2Z1gszz11FPG39/fnDp1yhiT+/ZhjDH16tUzd9xxR6GmMT093SQkJJigoCCP3+d5/W62hv3111/uMmtdOPPEWgDnF7f5wkWna9euHu+vuuoq2Ww2denSxV3m4+OjK6+8MttllLNnz1arVq0UHBwsHx8f+fr6atKkSR63Z5Eku92ur776SidPnlTjxo1ljNGXX34pb2/vPGNbtGiRMjIy9OSTT+Y7HeXLl892H/0GDRqcdcy56datW7Y+JGXr50zt2rXTnj17tHfvXqWkpOj3339X586d1bZtW/etzhYvXiy73a4bbrhBkrRgwQKlp6frwQcfVHp6uvvl7++v1q1bZ7vEOqvly5dLku655x6P8h49euR6X9KznbbcXHHFFapevbr71jqLFi1S/fr19cADD2jv3r3avXu3UlNT9fvvv6t9+/Zn1Yelbdu2Hg+jLleunCIjIwsUe0HWCesWUL169fIYt2fPntnae/jhh5WcnOy+N64kTZ48WXa73V1/165d+ueff9ztZV2+t9xyi44ePZrttk933XVXtr6uu+46TZkyRa+//rpWrVolh8PhMXzFihU6deqU+vTp49GH0+lU586dtWbNGiUmJubbzxNPPCHJdYsCy7hx41S/fn3ddNNN2epbkpKStHz5ct1zzz153t946dKlateunapUqeJR3rdvXyUlJWW7zVZRrKvdunVz37JKkrZv364jR46od+/eHpf0BwcH66677tKqVauUlJRU4Pbz6zurM+NftWqVUlNTs22/119/fYFuB1FYed1DOOuwJ554QqdOndK2bdt07NgxdevWTdOmTdPff/+tt99+W6dOnVKvXr1UtmxZXXHFFRo/fnye/a5cuVLJycnZbtlVpUoV3XzzzWd9K6z8tov8LF26VO3bt1dYWJi8vb3l6+urV155RSdPntTx48c96p48eVI333yzVq9erd9//13t2rVzDzub7Q8AAJydM/dhf/zxR9lsNj3wwAMe38Ply5dXw4YN3b+ljDEew7PeEquw+6hnxrB9+3ZFRUVl26erWrWqWrVqle805fYb5J577sn2m+7HH39U27ZtVbFiRY9psX7XW78PLXfeeaf8/f3d70NCQnTbbbfp119/VUZGRr6xSdK1116rqlWrut/7+/urdu3a+e6Tt2rVSv7+/h6/E9u0aaPOnTtrxYoVSkpK0sGDB7Vz585z/p146623ehx3ONffuLkpyP50YGCgfv75Zx06dEj79u3TqlWrFBkZqccff1y9evXSjTfeqOXLl6tp06YqVaqUWrdurc2bN+fbd0H2XQuzLvXq1Ut2u11Tpkxxl3355ZdKTU113xo4JSVFS5YsUffu3RUYGJjt92xKSkq226nl9nv2559/1vPPP69ly5YpOTk5W52EhAQ999xzuvLKK+Xj4yMfHx8FBwcrMTExx+M4OfVz//33KzIy0uMWZGPHjlXZsmV17733ZqsP4PwhmYKLTkREhMd7Pz8/BQYGeuxYWeXW/Twl1/1L77nnHlWqVEnTp0/XypUrtWbNGj388MMe9SxXXnmlbrzxRqWkpKhXr16qUKFCvrFFR0dLUoEerF66dOlsZXa73ePLuLAxF6Qf64HVOX3pZ2XtBC5evFi///67HA6Hbr75ZrVv3959wHDx4sVq1aqVAgICJEnHjh2T5LqnrK+vr8dr1qxZOnHiRK79nTx5UpIrqZCVj49PjvPqXKYtL+3atfOYvg4dOqh+/foqV66cFi9erD/++EPJycnnvJNckOWfk4KuEydPnsxx3pUvXz5bm9dcc42aNWumyZMnS3I93Hz69Om6/fbb3dubtWyHDBmSbdkOGDBAkrIt35y2mVmzZqlPnz769NNP1aJFC0VEROjBBx9UVFSURz89evTI1s+bb74pY4xOnTqVbz/lypXTvffeqwkTJigjI0N///23fvvtNz311FN5zF3p9OnTysjIyHcbPnnyZI79VqxY0T08q6JYV8/sz+ojtzicTqdOnz5d4Pbzkl/8uW2/uZWdayxnzl9JSkxMVFpaWrbviKCgINWtW1d2u10nT57U4MGDNWbMGIWHh+vpp5/WqVOntGvXLs2cOVNDhgxx/3DLSX7zPKe4CiK/7SIvq1evVseOHSW5kod//PGH1qxZoxdffFFS9nVsx44d+vPPP9WlSxfVq1fPY9jZbH8AAODsnLk/cezYMRljVK5cuWzfw6tWrXLva0+dOjXbcEth91Fz27882306a/wzf3Pk9Lvk2LFj+uGHH7JNi/UMyzN/W+T0O6Z8+fJKS0tTQkJCvrFJZ/8bzN/f3+N5dkuWLFGHDh3Upk0bZWRk6LfffnOfcFjUvxOL4jduVuHh4bLZbDnut1r7eWfuT1eqVMn9fJXPP/9cmzdv1ptvvqmTJ0/qjjvu0OOPP66jR4/qxhtvVPfu3fM8Maig+66FWZciIiLUrVs3ff755+7E2pQpU3Tddde516eTJ08qPT1dY8eOzbbO3XLLLZIK9nv2ww8/1HPPPae5c+eqbdu2ioiI0B133KGdO3e66/Ts2VPjxo3To48+qgULFmj16tVas2aNypYtm+NyzKkfu92uxx57TF988YViYmIUHR2tr776So8++qh7nQBQMnI+3Ru4BE2fPl01atTQrFmzPM7CyPpA6aw+/fRT/fTTT7ruuus0btw43XvvvWrevHmefVhnsh86dCjb2UDnI+aiVLlyZdWuXVuLFy9W9erV3WebtGvXTgMGDNCff/6pVatWacSIEe5xypQpI0n6+uuvPR5mVxDWDtGxY8dUqVIld3l6evpZH6A8G+3atdOkSZO0evVq/fnnn3rppZckSTfffLMWLVqk/fv3Kzg4WNdff/15iymrgq4TpUuXds+7rDubuR2cfeihhzRgwABt27ZNe/bs0dGjRz0e8G0t26FDh+rOO+/MsY0zHzyY09lOZcqU0ZgxYzRmzBgdOHBA33//vZ5//nkdP35c8+fPd/czduzYXOfxmT/kcjur6umnn9a0adP03Xffaf78+SpVqlS2M5vOFBERIW9vbx06dCjPeqVLl9bRo0ezlVsPtremoyidOZ3Wcs0tDi8vL4WHhxd5HDnJuv2eKSoqqkivTqlfv75mzpypqKgojx9X1oM+z0wQZDV48GA1adJE999/vyTXQyknT56ssLAwNWvWTB07dtS8efPUtm3bHMfPb56f7XLPb7vIy8yZM+Xr66sff/zR46SCuXPn5li/RYsWuvvuu/XII49Ikj7++GP3lU1ns/0BAICzc+a+XZkyZWSz2fTbb7/leLDUKrvttttyffh0YfdRc9u/zG2fLj/W+FFRUfn+pitTpowaNGigkSNH5tiWlQDKq/+oqCj5+fkpODg439jOVbt27fTKK69o9erVOnTokDp06KCQkBA1a9ZMixYt0pEjR1S7du0iOQ5QnAICAnTllVe6952z2rRpkwICAlSzZs0cx7VOTBo7dqzCw8P1448/ysvLS48++qgk6dlnn9XIkSO1Y8cOdxLjTAXddy3MuiS5fs/Onj1bixYtUtWqVbVmzRp9/PHH7uHh4eHy9vZW7969c72TSI0aNTze5/Q7MygoSCNGjNCIESN07Ngx91Uqt912m/755x/Fxsbqxx9/1LBhw/T888+7x0tNTc31pKTcfs8+8cQTGj16tD777DOlpKQoPT1djz/+eI51AZw/JFNw2bDZbPLz8/P4ooqKitJ3332Xre6mTZs0cOBAPfjgg5o4caJatmype++9V3/99VeeByc7duwob29vffzxx2rRosV5jbk4tG/fXl999ZWqVKmiW2+9VZJUu3ZtVa1aVa+88oocDofHmTedOnWSj4+Pdu/eneOlqnmxbr00a9YsNW7c2F3+9ddfe1y6XlgFOdMoq3bt2slms+nll1+Wl5eXO6727dvr//7v/7R//37ddNNNHmeA5dav5DqzxrpypygUdJ1o27at3nrrLc2YMUMDBw50l3/xxRc5tnv//fdr0KBBmjJlivbs2aNKlSq5zxiSXImSWrVqaePGjXrjjTeKZFqqVq2qp556SkuWLNEff/whyXUJfalSpbR169Z8ryLJT5MmTdSyZUu9+eab2rx5s/r376+goKA8xwkICFDr1q01e/ZsjRw5MteD4+3atdO3336rI0eOePzQ+/zzzxUYGHhWybbCrqt16tRRpUqV9MUXX2jIkCHudSIxMVHffPONWrRoocDAwELHcTaaN28uu92uWbNmeSTbVq1apf379xdpMuX222/XSy+9pKlTp+q5555zl0+ZMkUBAQHq3LlzjuP98ssvmj17tsetB4wxHretSkhIkDEm175btGihgIAATZ8+XXfffbe7/NChQ1q6dKl69OhxLpMmKeftQsp9/bDZbPLx8fG4HURycrKmTZuWax99+vRRUFCQevbsqcTERE2dOlXe3t5Fuv0BAIDC6dq1q0aPHq3Dhw9nu81WVqVLl871yv1z3UetU6eOypcvr6+++kqDBg1ylx84cEArVqzIluA4U5s2bSRJM2bMUJMmTdzlX331VbbfdF27dtW8efN0xRVXFOgEoDlz5ujtt992H4CPj4/XDz/8oBtvvNG9H1TUV3Fk1b59e73wwgt6+eWXVblyZdWtW9dd/v333ysqKqpAv4ELu89fHLp3764xY8bo4MGD7uRPfHy85syZo27duuV6m+1BgwapWbNmuu+++yS59qVTU1OVnp4uHx8f9xVCee1PF3TftTDrkuQ6FlOpUiVNnjxZVatWlb+/v/sEKsl1y7K2bdvqr7/+UoMGDeTn55fXLCqQcuXKqW/fvtq4caPGjBmjpKQk2Ww2GWOyJUQ//fTTAt+OzlKhQgXdfffd+uijj5SWlqbbbrvN4zZ1AEoGyRRcNrp27ao5c+ZowIAB6tGjhw4ePKjXXntNFSpU8LgkMzExUffcc49q1Kihjz76SH5+fvrqq6/UuHFjPfTQQ7me7StJ1atX1wsvvKDXXntNycnJuv/++xUWFqatW7fqxIkTHldxFGXMxaVdu3b66KOPdOLECY0ZM8ajfPLkyQoPD/fYsalevbpeffVVvfjii9qzZ486d+6s8PBwHTt2TKtXr3afxZGTa665Rvfff7/effddeXt76+abb9aWLVv07rvvKiwszOOZEIVhncU+a9Ys1axZU/7+/qpfv36u9SMjI1WvXj0tXLhQbdu2dR+Mbt++vU6dOqVTp07pvffeK1C/kvTmm2+qS5cu8vb2LpKdtoKuEx07dtRNN92kZ599VomJiWratKn++OOPXA+wlipVSt27d9eUKVMUExOjIUOGZJvnEyZMUJcuXdSpUyf17dtXlSpVcj+PYv369Zo9e3aescfGxqpt27bq2bOn6tatq5CQEK1Zs0bz5893H4APDg7W2LFj1adPH506dUo9evRQZGSkoqOjtXHjRkVHR3ucYZSfp59+Wvfee69sNpv7dmT5ee+993TDDTeoefPmev7553XllVfq2LFj+v777zVhwgSFhIRo2LBh7vs8v/LKK4qIiNCMGTP0008/6a233lJYWFiBY7TUr19fc+bM0ccff6wmTZrIy8tLTZs2zbW+l5eX3nrrLfXq1Utdu3bVY489ptTUVL399tuKiYnR6NGjCx3D2YqIiNCgQYM0atQohYeHq3v37jp06JBGjBihChUqFGj73b9/v/ssy927d0tyJVMlua+Ok1yfFY888oiGDRsmb29vNWvWTAsXLtQnn3yi119/PdttCSTXmWCPPfaYhg8f7nHGWadOnfTqq68qNDRUO3fu1JIlS/Tss8/mGmOpUqX08ssv64UXXtCDDz6o+++/XydPntSIESPk7++vYcOGFXym/asg24WU+/px66236r333lPPnj3Vv39/nTx5Uu+8806+l//36NFDgYGB6tGjh5KTk/Xll18W+fYHAAAKrlWrVurfv78eeughrV27VjfddJOCgoJ09OhR/f7776pfv777uYC5Odd9VC8vL40YMUKPPfaYevTooYcfflgxMTEF3qe76qqr9MADD2jMmDHy9fVV+/bttXnzZr3zzjsKDQ31qPvqq69q0aJFatmypQYOHKg6deooJSVF+/bt07x58zR+/HiPW+96e3urQ4cOGjRokJxOp958803FxcV5/L60foN98MEH6tOnj3x9fVWnTh2PZ1WerSZNmig8PFwLFy70uIK/ffv2eu2119z/56ew+/yFsXz5cvetxzMyMrR//373/nTr1q3dd9IYMmSIpk2bpltvvVWvvvqq7Ha7Ro8erZSUFA0fPjzHtpcuXapvvvnG48SkFi1a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6ac8/vjj3HHHHYTDYUKhUJcHKW1L5K/5va47tJeF030Ob6gGpohInCTK6VYDU+Kr1/2dISIiIiIiInF3Qg+gX7t2LcuWLWPZsmW89957uN1uJk6c2OJ5JpJAzGiHg3rYE4J6+KQv060iRURERERERETkBHQ6mZKVlYXH42HChAnMmjWLb3zjG5xzzjmkp6d3R3wifYK6Z0VEpGspcR1P+lwXERERERGRo3U6mfKnP/1JyZNeotcNEEjonofeVhndwzAOb6lxRGUnxqaLSC9hJPaHjYiIiIiIiIjESaeTKZdeeml3xCE9qOvvcqPedBHpK0x0zpK+wOh1V0wkGu1/ERERERERackS7wBEpO/RYydERLqZ+vJFREREREREehUlU+QzU8d6olEPn/RhpkamiMjxmTpPiIiIiIiIyFGUTOnDEvlrvjo54kX7XUSkO0UfSWXofBtXuk5EREREREREjqZkSgLq+g4CdfgkEtW29GWGUrEiIiIiIiIiInIClEwRERER6W30APo40/4XERERERGRlmzxDkBO3Il+zTe77eYhPXdTDN1+I04MAzDUxyR9mKkTSB9nqAJFRBJC0QNv4gu1/qNz70OXxCEaERERERGNTBERERHpdTQwJb50Q0ARERERERE5mpIpCamrOwjU4ZB4dGW49FGm2q6IiIiIiIiIiHSekikJyOzq3If6JhOKoculpc9TGxaR49F5QkRERERERFpSMqUP664nn/QFve32G4mST4rudV3cLyLx0rvO/tJf6WNOREREREREjqZkSiLq4h6C3pbYiI9E2wfqZpK+Sm1XREREREREREQ6T8kUEREREZEj6EIREREREREROZqSKX3YiT66ItwPOgh6XSeHkSBXuxsGYCTeQBzpP3SPuj5Pp5/+w9TxKCIiIiIiIn2IkinxZJqxG86YBhgdrI5WnQ/GsW9cc+R0MxxqNdWkdWLiyHmMtiYed00t5mwxxTwiA9SpLpQjt7nVjMdeUovtN9tJwrTToWNiYphtzWe2WofRViyftbPIPHrZx1re4RjNcNvTaSu+yJN3Yi3xeKEe+f4Rq2lz9xxjcZ+96yy6340OLO8Y75pH1l3rMkcfY82vjt2Ne/RSOlbtsafQtLMwo8032u+E7OBeNo+ou6O3OfraNDGP9YSmWLMxW/zfZtHYW0cdhR1MRJomrTLIJhA+KrDP0r6i29wc61H1EwniM67lqHUeXb/HONWYx637NvZ+e1mHVp8jR9f/4RVH/2vjFNH6VBxpK7FTUTurj70ZLXvUgo/3SWEe4+2O1MwxPy9bnGI78Flxgs0gtppW55nIOo9xVmj7pGIetSOPYhzjnSPX3XKT2l5OuL2Nbe/KjuOcGDv6N4bZxm/HXslR02Lne7NFM29zd2KCGT3jHWufHvXZ08b2K0kkIiIiIiLSPymZ0gcYrX7p8BwdeP/YHTCtJxptFzhWT3oHepra7INpp2OmI7vAiM7fTuG2t+9YZY1jFoutq52VxUq0uV2d7XA5ftKqzVCOnnZU3J250ru9soZhPVymA3XfkbXG+glbbcDx5213Xcff7iPrq+3UIK3249Hzda1OLrfNpnGisR19DLTen8dOydJ2Z+Ox92q757wOnQNou+6iXaDGceq/1fTj1ekxF9T2eprX3/n6aLt9tbG9HTtZtpjPOCreY3bqHzXvZx6s1sFj5uhirU9rHUmwRmY83rI6EE3rKZ049mN134FZjFYd8x3JVrVeY/OvR9Z7O59dRgfKdCaE1qvvwBLaX3eL49vSXefeY6ycY2xLW+2gB0MTERERERGR7qNkioiIiIjIETS2RERERERERI6mZEoflsgXOva+To7EqA3j8DNTdAsT6as6MmpKejvVoXS/XvdsNhEREREREYk7JVMSUNd3Q7V7MxgRkd7jiOd/iEi86WAUERERERGRvkPJFBERERGRFjQyRURERERERFpSMiUBdfmtKw5fWNqT3Q697fYbZgJdXWt85qdNi8STiRpw36baExEREREREZF4UDJFREREpJdQsqh3SJxLJERERERERKSjlExJQF09qqO3jRKRbmaok0n6MrVekd7C1OEoIiIiIiIifYiSKSIiIiIiR9CFIiIiIiIiInI0JVP6sBP9mt/1V4LGo8Oht3Vy9LZ4upORUFsr/YypLlIR6QidKURERERERKQlJVNEpNNM3SpJREREREREREREEoiSKSLSKbpWV/o2E7Vikd7B7MUPTem9kYmIiIiIiEi8KJnShxlGL+sQTOCeB7OXVYWISH+l062IiIiIiIiIxIOSKQmoy58YoExCglF9S1+WwFlfEekwPV1JREREREREjqZkSkJSB4F8VuqQlr7JUNMV6UV0QIqIiIiIiEjfoWSKiIiIiMiRdN2JiIiIiIiIHEXJlD7sRL/nd/V1oM23wtAVponAwNDtT6QP03lKRI5Pn3MiIiIiIiJyNCVTRLpEYnW6JNbWioiIiIiIiIiISKJTMiUBdfl12brQW0T6DBOlA0V6B/35ICIiIiIiIn2Jkil9mLoDe5EEqwxTXWAiEicJdroVERERERERkV5CyRTpAuraSiiG6lv6MFNPQhCR49MlAyIiIiIiInI0JVNERERERERERERERETa0eeSKU8++SQjRozA5XIxZcoU3nvvvXiH1AfpuuyulzjXsKr1SN+WOMeqSG9n9uLDUWPYRERERERE5Gh9Kpny0ksvcdddd/HDH/6QtWvX8rnPfY45c+ZQXFwc79Di4kS/5nd5B4GpDofEYtCyQ1r1L32LoTbbpxlKiImIiIiIiIhIHNjiHUBnPProo9xyyy18/etfB+Dxxx/nzTff5KmnnmL+/Plxjq59lZWVvLt0aeQyTLsdLBZ8FW6K1x0ilFbP9voG/lOxguSAHVzJ7DTq2W6sp2KHi7DLySpzD8VN6ZQGc9i0eTMWq5W9Odtx71jD0qCVfckmbrOM92xeSsveIsm2CTMU5pPNmzkYasAIbWJ72iI2bvuUA7X1JO1twNFQRvU6C9sy/bh3JrHOl0Lo/Z3s2OehwmayKr0Cx/4gG4ydvF77FiUNPuqs5Wwp3c0SdzW5b/+HQzt2UWuv5cCBOpIbysl85RVWlexhLyupbCzGs3BhZJtDIT6uaWTHnhIa31/G6/XF7Fu9H29SEwtrF8YuT92+uorUtO1sLH0ZgkHw+cBmo3jNflx7VuBYup+MTRZqdq9jVWUNVp8P62oPeCpZ5fqE6oo0Nvt2Ux6s4NPANrx7qqls3ENKZSPJwVVUuGppsr/Nx9l1ODZ5IByGxkYqqtZTVuemun4hNDZGKs1qpaxsI7vXe6kJHWR9xSrKLFaaDh5iYdl2dn68D5fFSVXxIgLFu/E4POyoc7MwFGJd2X5SfV6qD4YoNj5iiaeerPXrSUlNZfPu3ZTt2Mm6hhTSag7ieOUVsFjAMKjcswdS3iPl3d0kFSeDadLgt7B1314aGj4kfKiWYFIpSWE/6w/sI5xUi+kNUJpRzYqKGhotmXxUvpHavW7Kkyt4bX+AtY0fUu3cy1ajBPeuBpbU15O1ejXlZfvYFWrCsytEfV0dW6u24W9KYp/HQ9n7a3l1R4C6Sjfvp2+jseLf4HBQV+2nYec2Knz7IKWGAX4//upq9oZ346Gcf725hLX7DpJWvY/9y5ZSXVLGhowNOPfUY196EGdxHWVmMZ49K/no3UPYSgZCKBTZfqs1Uh8eD75AgLW7q9np3crC0hC8sRRSN0XKri1nQ+WnVJHOnvq9vHWwBsNmZ9fO5rbWsLqEVWY59cWbaKp084brDbKcGWxd8xF+Gtm3v4Rkx0ZKQsk07d+Dpc5K8muvgS1ySvx4zRrCgQBJr77Kx9vXsSstTKO7gZqSUsI4WBv0srAhBIveoti7k4C/llDqv/Hs2Mii/3jJG5jBoW1V1O48yPbaJLJe2R3ZRpstso3hMBgGa/avppJGygM2POkBFr76KoTDVG3dR7Ith7LALjbt30/16irAwHZwLWwJwMsvs3rtWpwOB9akpMhxAuB0Eg6EWbt1A7XJ6XjqXKyrt+C3mnj9LkoMg2U1ITZt3crCV15h1Y5V7EsOU0sJC0u3wtYgpK6GfSms3bufulWrOdRQSThtN3t3hNlZto/atHqWmpuoLfZSvH83ye4PqUrNZNP2DA7tO8Rbu1bR2FRGxRtvQFISW1fXkZm5nfW7a6h0rqGk2EO6pZwkfPhqtuD8uILi9M14vSZvphkc2LyZgLOO5ZXvsbXaQdar+wDYs34dm3buosTTRIbLRc2Wg2xICpOatJvGkrd5b1s67owU1qzfSH29h322ZJqCDt4r3kRtWhLrPz7E/hIvi5zL2bpnLzXv11MdamChl0h9AE3hMOvW1JKRvJ8dBz2Ur1hBoyWVFXsd1K11s6TaR8q2lewL2Vi4N8hHvE+1H1Kd20nyboy0P9OkYfVqarxeNv373+z/dD8+h8FC517c6/ZT21TPu4EVJG3bgz+5koMHPiG9eg+BV1+lYdNG1hzcR8j7LlVpVQwMVZO1JUhJVTWOzZvZcLAUx/J32V/jpqGmBk+jF/uOlaQ5iknO2snOrV4o3ct/tr/LNruNxoPbcPg9GAsXRtrH4fgwDFi1F39tBQc8G6kpPUjAu5eDFW6CgXeoyrSxyWfhzR317Ggop9TTQHqxyTrzA+z1+6k+2Eiyr4zNq+o5cCDIh9VN7K3YyYC6FNZXVeP4qAnXASv7U9fhPVDLykPbOFB5kNodAeoCVby9ooZglY3iXVtxh/dibwhgSX+D2pJKFpZvZ+3WrdSXezBroeLlV9iwsYFa813WZ2WxMDuVDcXb2b+lEbs/wBusYM/BbZTXWTn4YQB7tRd/k0ng1Vcjn7VHqN15iHX7DlAbtFAZsrNwoSdyvO/YiJtGXnnlZWxbQ2yvqaN23zbKa6wMeLW2+dwEfLpxPXtrK9jxzh48FZuwut2scC+mYftB/vVqI2muw39WhcORfd3UBIbB3u1beI1Kdroa2JryPlWNGbzV6GD77goWvuKB3avYt62OUp8F294t7Evyk/Lvg+wo30VVyMnChVa2b9hA8a4DNJXV4E22EfRY8DS8xeatW/lXXRPrig1YUcL6uo2sLvPgcW2l0QjicHvYshfSXKvZndbI7r2f0LBjNxXVDex+4y02BjLwlNewsGoXK0u24Hekkfzyy2wsqaKxrJp39w6guvEAnh1N7CKVhf4SME0qN2/j07oUXAf2E/J8QNjuYGCgkvrVJYRDcKC4jowGP5lr1pDqcABwcMMOrBlOPNZDpKU1YPPupHJPiFL/OjYcLOXVf/8bV1o6Ww5U8PoWL5tde0hJ8VOR8S4N2z285TqEw+OhZoVB0rYKtob8JJV6qEu18Zr1TZJS86CxkU3rPqG62sNi8z3S1+/DU17M7q0u3quux7tnFxXuMsJvL6a2rp6F7v3s2rWLzVu3UvPmf2jYu4XF9bXs/WALvioPq/aEqKozSN6xmZo6D0vr1pJZ6mavNUigZAf/8ZdQkVTHgN2bCdTVkrFhA46mJioaGhj4wQfsDO3FsNpY2LiQM6ZNY/DgwV3556WIiIiIiIj0IMM0e/NNFpr5/X6Sk5P5+9//zhe/+MXY9DvvvJN169axfPnyVvP4fD580U5GwO12M2TIEOrq6khPT++RuKPee+89zjnnnB5dp4iIiIj0DgsWLOCaa67p8fW63W4yMjLi8vev9E3xbjOBQIA33niDez+24gu1Hk2696FLejwm6Tmq/8QWrf+LL74Y+1EXxkhiUBtIbKr/xBbv+u/o38B9ZmRKZWUloVCIvLy8FtPz8vIoLS1tc5758+czb968ngjvuNLT0zlr+vTIC0vk7mrlO3ZhswZISk/BZzbiCmfiSkklFAwTsLhxWDIoqfWSmZGMEbLhTLVjMUwaGhpITknhQGOAyloPQ71u6i0Gzow0cpKDOJJyY1cgN7o9NIVryMgYRNBv0lBVA6kGFXU1JDWGsabbaTKc1PqSGGCxMLQwncbSdYRMC2baIPxNDaRnFWILWPBZDUoqS3CaBgWZGeBIIhh007i3iqARIjk9haShQ6mtqcSsbSI1Jxt7ekosluJda2hw2MnLO4Vsl4OqhgpSHak47UmxkSn+hlJs9jQsjpTYKAMsFqo8tTjCTlIzkoEw6w7VMKKqGpvfS+rYIWBz0BA0qA8YZKY68ATrSCWJpopyAkaQlJQkbM5MGkJevJYw+ckDsVptsXUEA26wGNicWZF1AhgGgUAt1Y1BQsEwybgIOG0kJSWRarVQ1VBBij2ZJhw0FtfiNIOY4XrM9CRcyUk0uv0EmkwcKS6S8ZOUnYVhteLz+ympKiWzLkzY3kT2yUWRK8WBYGUVWFzYMpOByH4LY6H8YBn2YBCHuw5G5uIK1lFRlQIWC5kFLqrra7B7LNTboGBgNk2V9TSl2AjV12OxZlGQn8Ghhgbq6zzkWE0G5g0kaLrxkozfHcZlq6HRHSQzJRNLOECpvRpnkwfDnk52+lAshhUsFkJBk6YKN64ByVQ1+giWHsCVmo1Z58YSbCJt3Bg82/cTwkvwpLEQqifZ6sLqd5CU5sD0Bmgy66kPWslJS8NqMZqvlDcO/x4MYpomNZ5DYCSRZjGxZ+Q3X1XfWI0v4KIm5CfDYcVq92N1pGG1JsXKhOobacJNbciB02GSk5oDQGNdFT5fLVZLKlZHEn6sBBo8ZCY5saelxerB4/HgtNuxO53UV1bhN6yEU10EmuoIhgLk2hy4MCEtl0CwFovVRRgXNR4fA1KdWG1Wmjx+8IVwptgxHJbmbYRYe6/dsAMHYRg6CJvLjsNuh7BJyBvEkmJnT80+nJ4AyQ4ryZkDcEb3V1ImDfX1OJxO7E5nc5u1WiFsUl9dh8XlxGeCsfcgmEHqhw5lgNOKJejHAFwpKbg3bKPBaSdlxFDS7VbwVEDKALDY8NbW4EpNxdJYjelIx1PVxDarSWq4itGpBTSF62jwhEm3pOLJSCLD5cDjrcJZHcKRnow9JYmwJUzQW4HNnkljUwCnI4XGuga8YQ/JqWlYGg1MuxszJZsgdlJDAWr9fvwEyQy6SE5zYTisAAR8TXgbG0lKTsFhtRJuCOIxTBo9lQSSkilMz8RiGDQ1NWJYLDSGwgQcTgY47FgMA7f7AJagSdiWRahiD032NFw2g6yCobH6CAMNdftx2jMI+ENYU9PxmJBuDePx1JDmMzAcqdRZ/KTTRNDMxBY2saU5MOy25uV4vZiNjVizsqjw+El3WnFaDQKNlbjNIFlphQTd1VgcNhp2lGELeEmZNIHVFfVkN9WSjYuMwmxMvwfTV4MZSCbochEyTZLTM/A2NmKxQM3B3VjtKeQWDsUIN1HXVIPTNQC738bBkJ/UigO4LA0kj57aot0B4C4lbHNRFggTClkwrH4yncn4fTZsLhvBYIhkbxUhi4nNCnhNvFWN2DNchJsaSMktwGt109hokuy0kJQyACNo0FhTBalhqv0WGkwn9VYnY1OTcIZC+OoaabJaGJDqIBA0CAb9+IM+klJT8dsdmOEw6VYL9bU1NDRU43S6yModjM9XSW04jWy7HTsmtd4qgrV7SA+bWDMn0hAMEPT6sOSlUXtwE402k3FDpsQ+a6OCXh9NVXWEMlKx2G2kJUVGS9TvKcMwDZKG51BfXYXT58O0unClpmFJtjefm4Cmeg+WADSluvCGGkk2wjiMZBpDJlmprpYf/NHPMMOgvt5NsL4Ba4aNRnsmyVYrTl8YE3CmOqC+kkDAj9v0Q9BBsjUJZ2YqdQdLsNlTSBuUg7e+nqZwE/ZAiLDfgzMlE7szlSa/H6cZxN8YJik7A8NuY/eeT8imAJ8JoUAV1uxCUpKtWGnA5RrIzoMbCGNy8pDJVAZD2DFItoapK6sixeEiaUAmmCZ1gSAZVguN/npKG8IMzkjHbrUQNk0qGwJkJdkIlFcQCpmkFuRi2KyEGwLgsBAIVmKpC2PLGYhhteIPhaltDJLhshHwewj468hIy8XS5CZoSyMQCJKUnh7ZX02NOBqrqPMECYW8mOlDsFisDMQPoRCh1BC4m/CEoC7QhNNuoTBvVKSugkFqvV4aAvUMSs0h3NRE2B+mCrD66gg0JmGGfaQOzwcT0h02/H4/oVAIHE6qvW5ClcWEUnJw2BrJsaRjM5wEAw3UN+0n01qIdUABNcEwST4vNn+IcJofuyOLcG091rS0w59D9dgyMqgJuElyJONyppKTk9OxPxpFRERERESkV+ozyZQow2h5dYppmq2mRd1///3MnTs39jo6MiUeJkyYwIq3347c+sPlAouFhfMfYM/yt7j6ru8z5PMXQGUl1NZCaiqkp4PXC243ZGZCTk6kY8jvj9z+yuXiDwcreeTd1XzjH49DIMDdv3kmchuhwsJIuXAYHI7I7xZL5HVTEzgcTL73eZIaq5k9NIgnbOdfjSdxxeAMHvr62fDoqeCvhO+vBo8HkpMjPwDr1kXWP3FiZJkWC9vPmUno0CGG/vZ3pMy5KLINwSBkZ0fWHw5DMMhZj5yM0+vj7fuWNm8fRPbH4VuoUF4eWW5OTiRurzeyDJsttt1YLBS98C/+/uPbwW8wbsm7zfFFy9hskW39+OPIMidPhvz8SBmbrfknGIxso98f2e+pqZHX0XJ+f+T3cDgSVzQWaC5nsfDibf+grinIWUvnMXHx2+BysXJpGWvePcjlXxnOkNPym+vBYmHj4gVYf/obdp07kUuffC02nWAwskyHI7L8cDgSU3U15U/8FveyZYz+12sQDvO7e1dCOMitT18Me/fyyN3fImNgLl9/9Pfg9/P61iq+9/eP+eYZI/jul6byepWbOz5Yz10j8vnOmKHN+97tjuwjrzfS1rKzeeuDiVBr4byLNkdiaWqK7GObLRKXw8FTHx3kL8/9hZ9OHMag3/4MfDYK/v5nSs6dw76CdC769+LIvA5Hy07NpqbIdkanB4Mtb4FVXR0pl54eKWuzRfZBMNhcNlpvTU2RctnZzfUUfS+6T6PzR9t/9L3o+qurI9Pz8yPToMVxFqvn1FQoLY20b5crst709Oa2ZLFElmOxRPZV9BiMtrPoOqMxWixsGXMyhs3G2E9WtVyvzQYuF28tGgmVfs4754PIMZGc3NwWvd7mdUWPpehxEN3HFgtbTi2CcJhxK99t3geH9++WU4ugqYlxSxZHtuWINhpri9FpXi9DP9qO3etl5XmTm4+3w+eU2PHudkd+bLbIMisrI2Xz85vPYdH2FN230f0eXWd0nx3ZdqL7MhyOLD9arra2+RxlsUTqKVo+Wia6HeXlvHOwkXNfGgvFbrjtLTj77OayLlekPQSDzcuJ1m309mxNTc3n1uj22GzNdRP98Xoj06PHz5HbFj3nNTWxZeIk8NsZt2QJQ99ZR1J1NRsvOxxTeXlkuenpzcffYaGGej735CSmppzCb25aEFnPEeePTQdqOPU3h895j77bvE+ObD/R8tHtibbP6HHjdsfaY+2biyn54Q9Jv/RHmLW1FDxwFVbL4frPzW0+DqLtxWbj+xt28dfSGl6cdgpFWYeP5/LyyDrS0yPri56vo+fsYDDyfmVlZJtzcyPToudiv5/SshLy/3gaJaF0CuYtbdEGzvzjJGxNQVZ8d2lk2UerrY0sKzMz1u4OfPdfYIYZ/PgXIvslet6J1n203UXbqtvd/FkePWaP/Jw8cl9HzzfhcHOc0bYVXY/LFdne6Pk+Ok/0PBI933g8ze0qup+i7dbhiLTdw2Wn/HE8r275GYuMEL8O13PvRZO44ZLJsWNu8p/PiOynb7/dvH3RdhGNI3rOPfJcFm3DR34mBoORfRKtz2hM0b9hotsb3X/Rc1x0GdG6jc4b3T6vl/995PccrD3Id6/6CulFJzfPk5oKtbUsX7WKZcuWce1llzFmxozIe25387nl6GPOZuNPv/gYd6mbWx//fPN6o8eCxcLmmq3c8Mq1fDHlQn407TuRv6lcLlj3Cvzzepj0Fbj8J81tFprP8cnJkXqO7q9oHJmZkTo8KsEncrQHHnig1YVgR144Zpom8+bN4+mnn6ampoYzzzyT3/3ud5x66qmx8j6fj3vuuYe//vWvNDY2ct555/Hkk0/qFnMiIiIiIl2gz3yry8nJwWq1thqFUl5e3mq0SpTT6SQ9Pb3Fj3QjPdMZo2/cNU9EREREeqFTTz2VkpKS2M+GDRti7/3yl7/k0Ucf5be//S2rVq0iPz+fCy64gPr6+liZu+66i5dffpkFCxawYsUKPB4Pl156aWT0lYiIiIiIfCZ9JpnicDiYMmUKS5YsaTF9yZIlzJgxI05RiYiIiIiIdA2bzUZ+fn7sZ+DAgUBkVMrjjz/OD3/4Q6688kqKiop4/vnn8Xq9/OUvfwGgrq6OZ555hkceeYTzzz+fSZMm8eKLL7JhwwaWLl0az80SEREREekX+tRtvubOncsNN9zA1KlTmT59Ok8//TTFxcV861vfindocdHbBoIc63Zr0s+p3kWkB+mMIyL92Y4dOygsLMTpdHLmmWfyi1/8gpEjR7Jnzx5KS0uZPXt2rKzT6WTmzJl88MEH/Nd//Rdr1qwhEAi0KFNYWEhRUREffPABF154YZvr9Pl8+Hy+2Gv34dtpBgIBAoFAN23psUXX6bS0PeI7HjFJz1H9J7Zo/aqeE5faQGJT/Se2eNd/R9fbp5Ip11xzDVVVVTz44IOUlJRQVFTEG2+8wbBhw+IdmoA61QHQbb5EREREpPPOPPNMXnjhBcaMGUNZWRk/+9nPmDFjBps2bYrd6vjo2xvn5eWxb98+AEpLS3E4HGRlZbUqc/Stko80f/78Vs9qAVi8eDHJRz4Pqof999Rwm9PfeOONHo5E4kH1n9iOviOJJB61gcSm+k9s8ap/b/R5xMfRp5IpAN/5znf4zne+E+8wREREREREusycOXNiv48fP57p06czatQonn/+eaZNmwa0HglumuZxR4cfr8z999/P3LlzY6/dbjdDhgxh9uzZcXnmZCAQYMmSJfx4tQVfuHXcGx9oe4SN9A+q/8QWrf8LLrgAu90e73AkDtQGEpvqP7HFu/6jo7OPp88lU6SZ0dtudpLAI1P04HkRkZ6RuJ80IpJoUlJSGD9+PDt27OCKK64AIqNPCgoKYmXKy8tjo1Xy8/Px+/3U1NS0GJ1SXl7e7jMmnU4nTqez1XS73R7Xjgxf2MAXan3WV+dKYlD9J7Z4n38k/tQGEpvqP7HFq/47us4+8wB6ERERERGRROHz+diyZQsFBQWMGDGC/Pz8Frc98Pv9LF++PJYomTJlCna7vUWZkpISNm7c2G4yRUREREREOkYjU6TrJPDIFBERERGRz+Kee+7hsssuY+jQoZSXl/Ozn/0Mt9vNjTfeiGEY3HXXXfziF7/gpJNO4qSTTuIXv/gFycnJfOUrXwEgIyODW265hbvvvpsBAwaQnZ3NPffcw/jx4zn//PPjvHUiIiIiIn2fkikiIiIiIiJxduDAAa699loqKysZOHAg06ZNY+XKlQwbNgyAe++9l8bGRr7zne9QU1PDmWeeyeLFi0lLS4st47HHHsNms3H11VfT2NjIeeedx3PPPYfVao3XZomIiIiI9BtKpvRhvW8gSK8LSHpC72uIItKf6ZQjIv3UggUL2n3fMAweeOABHnjggWOWcblcPPHEEzzxxBNdHJ2IiIiIiOiZKdJ11MEF6EH0IiIiIiIiIiIiIv2NkikiIiIiIiIiIiIiIiLtUDJFuoyh2z2JiIiIiIiIiIiISD+kZIpIFzJ0ly8RkW6ltL2IiIiIiIiIxIOSKdJ1EnpkirIoIiIiIiIiIiIiIv2VkikiIiIiIiIiIiIiIiLtUDKlD+t140ASeGRK4m45mAm99SLS0wydc0REREREREQkDpRMka6TwMmUZrrdl4iIiIiIiIiIiEh/o2SKiIiIiIiIiIiIiIhIO5RM6cN63ziQ3heR9ABVu4iIiIiIiIiIiPRzSqaIdCnd5ktEpDspfysiIiIiIiIi8aBkinSdhH5mipIoIiIiIiIiIiIiIv2VkikiIiIiIiIiIiIiIiLtUDKlDzO6bCTI0cs5wVEWiTwwpZPME9rHHZjHjMcIGVW8iEhvpDGTnXdin88iIiIiIiKSCJRMiaNoLsToJ53RXZfc6V/a3Sud3Gcnso+PnqWra8lo8bvagEhPiB5rxzrmuv1Y7MS5qKs/G6JLM3W+6bg+/vlsGF3352pHj42+vcdERERERESkOyiZIiIiIiIiIiIiIiIi0g4lU/qwXnfVZB+/8lVOkKpdRERERERERERE+jklU0S6kBGXZ5aIiIiIiIiIiIiISHdSMkW6TkKPTFESRURERERERERERKS/UjJFRERERERERERERESkHUqm9GG9bhxIQo9M0baLiIiIiIiIiIiI9FdKpkgXStxOdT0rRUSkhyTuR42IiIiIiIiIxJGSKSIiIiIiIiIiIiIiIu1QMqUP63UX5/a6gHqQtl1ERERERERERESk31IyRaQrmK1+ERGRbqD8rYiIiIiIiIjEg5Ip0mWMhH4AvZIoIiIiIiIiIiIiIv2VkikiIiIiIiIiIiIiIiLtUDKlD+t1A0F6XUA9KJG3XTfdERERERERERERkX5OyRTpOomcUDB1my8RkZ6QwJ80IiIiIiIiIhJHSqaIiIiIiIiIiIiIiIi0Q8mUPszobdfnJvLIlESmahcREREREREREZF+TskUkS5k6HZfIiIiIiIiIiIiIv2OkinShRJ3iEJ0y02NzhER6VY6y4qIiIiIiIhIPCiZIiIiIiIiIiIiIiIi0g4lU/qwXnd1bq8LSHqCqYoXERERERERERGRfk7JFOkyRkLf4krPShER6QmJ/EkjIiIiIiIiIvHTZ5IpP//5z5kxYwbJyclkZmbGOxwREREREREREREREUkQfSaZ4vf7ueqqq/j2t78d71B6jV53dW5Cj0wRERERERERERERkf7KFu8AOmrevHkAPPfcc/ENREREREREREREREREEkqfSaacCJ/Ph8/ni712u91xjKYPMewnOF/ijkwxeuCZKQ1r12GGQu2WsVh7xyFtJm5T6DTD4Yh3CNKHWYw+M8C0yxi9b1xm79XHP5e7o64t1r69T0RERERERCR+ekfPazeZP39+bERLbzRqypmUrfuEtJyBJzT/6GQn6TYLqWNO5Yyx4zo1b2qak6kDcjn/jMHsLClj0Q6DK6YNi7x5zv3w6d86vKysL32Jun/8A2t2drvlJg+cyNSsok7FeSxXp+/FTIeB0yZ2yfI+q2EH3sHnOpn0WZ+LTRs1NoXdW11kFaS0Kj9o0Bg25NgYOueLHV6Hc8QIzCFDYq/HTRxA9qDU5mUOH8nUOV+IvR6e5SI7yc5pgzMAGJvsZLDTzpmZreM52sEDJxOsCLdbZtZJOaxMT2Lc8IH4RowgZcpkDJeT4hxYOc3FnA5vWeJKnj6NzNmzj/l+bu7FpKXndNv6s75yLRyRcD6eSZY9jEvxAJO7LabuNj4vmX9ZLmRWdhlp8Q4GSJ01i7QJpwEwNT2Zqakd+1g2MBiffSrXnHJNm+8PznSx2RhNxsjLGdQFcSZNnIBjxAhSRmXQtMOHxWkFf6Ddea5Jc/JSKQxzdXHC0OZie7iAvwYu4KdHvTXLTOGUAWM7tbj0aYUEq5q6Lr5e4IIh51F+oIbPjR3HG9vCzBg1oMX7t5x2M5XV5XGKruPOPG0SnvfKcaUltfn+ScOG8WlSErm5uR1e5oxLR7H2P7uO+X5+Uh6DUwcze9jpLd/IGAaOQhhxRofXJSIiIiIiIv1LXJMpDzzwwHGTHatWrWLq1KkntPz777+fuXPnxl673W6GHNEZHW+nnXchp500DiwndmXxGZmprP7caTB+KGRmQlPHO4PevXEGuN0wfDhnZWZyo9/fPP9JF8PJl3Z4WQO/8XUGfulKSE1tt9wT5z/WqRjb85PJX4A/ng453dfR3Bl5WUEyVvyBQf/3TGzawHwXX7mjCMKtkxLZWQXMfHYh5Od3eB2Fd88Flyv2+vP/bxgkJ8def/mGb8Lw4bHXRXkpvH/b2XB45MPoJCfvnnFyh9rbnn1Tj1tX4/LTeP7asyPL+9tL4PVSb7Pxk2stnJk8ssPblciG/eEPEAwe8/3xRY9CZWW7ZY5n3Ecrj1nn+ffdFzkPdNCr485q0eb6opxkO5fd9iSsWBHvUAAY8oufx+p34ZQxUF3dofkMw+AP5/36mO+nu2yc8o1XW5wzPgvnsGGMevUVKC6Gs4aCzQL+9ueZ5LKxZ1w+2KxdEkOMxcaXm+4DB62SKf/z/17r9Gdq+ucKui62XuKhs38GYyvB4eDlC0bFPgeibp3wHfAfpwJ7gaKziig6dfAx67QwN5c7vvOdTi1z+PgBDB+Xccz3B7iyefWLL8OhQy3fyBgGNy497t86IiIiIiIi0n/FNZly22238eUvf7ndMsOP6BzuLKfTidPpPOH5RTqtj99SRURERERERERERERai2syJScnh5xeMrJARERERERERERERESkLX3mmSnFxcVUV1dTXFxMKBRi3bp1AIwePZpU3XJB4szQiBQRERERERERERGRfqvPJFN+8pOf8Pzzz8deT5o0CYB33nmHWbNmxSkqERERERERERERERHp707syedx8Nxzz2GaZqsfJVKkV9EIFREREREREREREZF+p88kU0REREREREREREREROJByRSRrqABKSIiIiIiIiIiIiL9lpIpIl1Jt/kSERERkRMwf/58Tj/9dNLS0sjNzeWKK65g27ZtLcrcdNNNGIbR4mfatGktyvh8Pm6//XZycnJISUnh8ssv58CBAz25KSIiIiIi/ZKSKSIiIiIiInG2fPlybr31VlauXMmSJUsIBoPMnj2bhoaGFuUuuugiSkpKYj9vvPFGi/fvuusuXn75ZRYsWMCKFSvweDxceumlhEKhntwcEREREZF+xxbvAET6B41IEREREZETt2jRohavn332WXJzc1mzZg3nnHNObLrT6SQ/P7/NZdTV1fHMM8/wpz/9ifPPPx+AF198kSFDhrB06VIuvPDC7tsAEREREZF+TskUERERERGRXqaurg6A7OzsFtOXLVtGbm4umZmZzJw5k5///Ofk5uYCsGbNGgKBALNnz46VLywspKioiA8++KDNZIrP58Pn88Veu91uAAKBAIFAoMu363ii63RazHbfl/5J9Z/YovWrek5cagOJTfWf2OJd/x1dr5IpIl1Jz0wRERERkc/INE3mzp3L2WefTVFRUWz6nDlzuOqqqxg2bBh79uzhxz/+MZ///OdZs2YNTqeT0tJSHA4HWVlZLZaXl5dHaWlpm+uaP38+8+bNazV98eLFJCcnd+2GdcJ/Tw23Of3o25pJ/6T6T2xLliyJdwgSZ2oDiU31n9jiVf9er7dD5ZRMERERERER6UVuu+021q9fz4oVK1pMv+aaa2K/FxUVMXXqVIYNG8a///1vrrzyymMuzzRNjGNc9HP//fczd+7c2Gu3282QIUOYPXs26enpn3FLOi8QCLBkyRJ+vNqCL9w65o0P6FZl/ZnqP7FF6/+CCy7AbrfHOxyJA7WBxKb6T2zxrv/o6OzjUTJFpCtoRIqIiIiIdIHbb7+d1157jXfffZfBgwe3W7agoIBhw4axY8cOAPLz8/H7/dTU1LQYnVJeXs6MGTPaXIbT6cTpdLaabrfb49qR4Qsb+EKt/8ZW50piUP0ntniffyT+1AYSm+o/scWr/ju6Tks3xyEiIiIiIiLHYZomt912GwsXLuTtt99mxIgRx52nqqqK/fv3U1BQAMCUKVOw2+0tbo9QUlLCxo0bj5lMERERERGRjtHIFBERERERkTi79dZb+ctf/sKrr75KWlpa7BknGRkZJCUl4fF4eOCBB/jSl75EQUEBe/fu5Qc/+AE5OTl88YtfjJW95ZZbuPvuuxkwYADZ2dncc889jB8/nvPPPz+emyciIiIi0ucpmSIiIiIiIhJnTz31FACzZs1qMf3ZZ5/lpptuwmq1smHDBl544QVqa2spKCjg3HPP5aWXXiItLS1W/rHHHsNms3H11VfT2NjIeeedx3PPPYfVau3JzRERERER6XeUTBHpQsd6sKeIiIiISHtM02z3/aSkJN58883jLsflcvHEE0/wxBNPdFVoIiIiIiKCnpki0jWURBERERERERERERHpt5RMERERERERERERERERaYeSKSJdQSNTRERERERERERERPotJVNEupKSKiIiIiIiIiIiIiL9jpIpIiIiIiIiIiIiIiIi7VAyRUREREREREREREREpB1Kpoh0Jd3mS0RERERERERERKTfUTJFpAsoh9KSgXaIiIiIiIiIiIiI9B9KpoiIiIiIiIiIiIiIiLTDFu8ARPoHjcQQERERERER+ayKHngTX6j1d+y9D10Sh2hERESaaWSKSFfS/b5ERERERERERERE+h0lU0RERERERERERERERNqhZIqIiIiIiIiIiIiIiEg7lEwR6Uq6zZeIiIiIiIiIiIhIv6NkikhXUBJFREREREREREREpN9SMkVERERERERERERERKQdSqaIdCmNUBERERERERERERHpb5RMEekKus2XiIiIiIiIiIiISL+lZIqIiIiIiIiIiIiIiEg7lEwRERERERERERERERFph5IpIl1Id/sSERERERERERER6X+UTBHpCkqiiIiIiIiIiIiIiPRbSqaIiIiIiIiIiIiIiIi0Q8kUka6k+3yJiIiIiIiIiIiI9DtKpoh0BSVRRERERERERERERPotJVNERERERERERERERETaoWSKiIiIiIiIiIiIiIhIO5RMEelKphnvCERERERERERERESkiymZItIFDPTMFBEREREREREREZH+qk8kU/bu3cstt9zCiBEjSEpKYtSoUfz0pz/F7/fHOzQREREREREREREREennbPEOoCO2bt1KOBzmD3/4A6NHj2bjxo184xvfoKGhgYcffjje4YnE6C5fIiIiIiIiIiIiIv1Pn0imXHTRRVx00UWx1yNHjmTbtm089dRTSqZI72DoNl8iIiIiIiIiIiIi/VWfSKa0pa6ujuzs7HbL+Hw+fD5f7LXb7e7usCRBOUeNpAEwLP0nqZJst3d6HqsRuXNgdsaIrg5HRAQA6+EblKa7nPENREREREREREQSSp9MpuzatYsnnniCRx55pN1y8+fPZ968eT0UlSSynK9/nZQhQ7AkJ8c7lC7xX1dfje0EnkmUbEvmoVnzmZx6cjdEJSICyXYrN5wxgnNH58Y7FBERERERERFJIHF9AP0DDzyAYRjt/qxevbrFPIcOHeKiiy7iqquu4utf/3q7y7///vupq6uL/ezfv787N0cSmDUlhdRzzol3GF0mf+BAcgYMOKF5zx0yiwxnRhdHJCLS7LuTBzMxNz3eYYiIiIiIiIhIAonryJTbbruNL3/5y+2WGT58eOz3Q4cOce655zJ9+nSefvrp4y7f6XTidOo2ICIiIiIiIiIiIiIicuLimkzJyckhJyenQ2UPHjzIueeey5QpU3j22WexWOI6qEZERERERERERERERBJEn3hmyqFDh5g1axZDhw7l4YcfpqKiIvZefn5+HCMTEREREREREREREZH+rk8kUxYvXszOnTvZuXMngwcPbvGeaZpxikpERERERERERERERBJBn7hX1k033YRpmm3+iIiIiIiIiIiIiIiIdKc+kUwRERERERERERERERGJFyVTRERERERERERERERE2qFkioiIiIiIiIiIiIiISDuUTBEREREREREREREREWmHkikiIiIiIiIiIiIiIiLtUDJFRERERERERERERESkHUqmiIiIiIiIiIiIiIiItMMW7wBEREREREREREREAIoeeBNfyGgxbe9Dl8QpGhGRZhqZIiIiIiIiIiIiIiIi0g4lU0RERERERERERERERNqhZIqIiIiIiEg/8+STTzJixAhcLhdTpkzhvffei3dIIiIiIiJ9mp6ZIiIi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bVG3TqeTmTNnxup2zZo1BAKBFmUKCwspKiqKlfnwww/JyMjgzDPPjJWZNm0aGRkZLcoUFRVRWFgYK3PhhRfi8/la3HZIut6tt97KJZdcwvnnn99iuuq/f3vttdeYOnUqV111Fbm5uUyaNIk//vGPsfdV//3b2WefzVtvvcX27dsB+PTTT1mxYgUXX3wxoPpPJL2trj/88ENmzpyJ0+lsUebQoUPs3bu363eASA/S9yYRiTr6u7ckjlAoxIIFC2hoaGD69OnxDkd60LH6XqT/27FjB4WFhYwYMYIvf/nL7N69O94htcsW7wD6u8rKSkKhEHl5eS2m5+XlUVpaGqeopLNM02Tu3LmcffbZFBUVAcTqr6263bdvX6yMw+EgKyurVZno/KWlpeTm5rZaZ25ubosyR68nKysLh8OhdtSNFixYwCeffMKqVatavaf67992797NU089xdy5c/nBD37Axx9/zB133IHT6eSrX/2q6r+fu++++6irq2Ps2LFYrVZCoRA///nPufbaawEd/4mkt9V1aWkpw4cPb7We6HsjRow4kc0U6RX0vUlEoO3v3tL/bdiwgenTp9PU1ERqaiovv/wyp5xySrzDkh7SXt+L9G9nnnkmL7zwAmPGjKGsrIyf/exnzJgxg02bNjFgwIB4h9cmJVN6iGEYLV6bptlqmvRet912G+vXr2fFihWt3juRuj26TFvlT6SMdJ39+/dz5513snjxYlwu1zHLqf77p3A4zNSpU/nFL34BwKRJk9i0aRNPPfUUX/3qV2PlVP/900svvcSLL77IX/7yF0499VTWrVvHXXfdRWFhITfeeGOsnOo/cfSmum4rlmPNK9IX6XuTSGJr77u39F8nn3wy69ato7a2ln/+85/ceOONLF++XAmVBNDRvhfpn+bMmRP7ffz48UyfPp1Ro0bx/PPPM3fu3DhGdmy6zVc3y8nJwWq1trqaqry8vNVVV9I73X777bz22mu88847DB48ODY9Pz8foN26zc/Px+/3U1NT026ZsrKyVuutqKhoUebo9dTU1BAIBNSOusmaNWsoLy9nypQp2Gw2bDYby5cv5ze/+Q02m63FlcBHUv33DwUFBa3+cB83blzsAbg6/vu3733ve3z/+9/ny1/+MuPHj+eGG27gu9/9LvPnzwdU/4mkt9V1W2XKy8uB1qNnRPoafW8SkWN995b+z+FwMHr0aKZOncr8+fOZMGECv/71r+MdlvSA4/W9hEKheIcoPSglJYXx48ezY8eOeIdyTEqmdDOHw8GUKVNYsmRJi+lLlixhxowZcYpKOsI0TW677TYWLlzI22+/3erWGSNGjCA/P79F3fr9fpYvXx6r2ylTpmC321uUKSkpYePGjbEy06dPp66ujo8//jhW5qOPPqKurq5FmY0bN1JSUhIrs3jxYpxOJ1OmTOn6jRfOO+88NmzYwLp162I/U6dO5brrrmPdunWMHDlS9d+PnXXWWWzbtq3FtO3btzNs2DBAx39/5/V6sVha/olktVoJh8OA6j+R9La6nj59Ou+++y5+v79FmcLCwla3/xLpa/S9SSRxHe+7tyQe0zTx+XzxDkN6wPH6XqxWa7xDlB7k8/nYsmULBQUF8Q7l2HrmOfeJbcGCBabdbjefeeYZc/PmzeZdd91lpqSkmHv37o13aNKOb3/722ZGRoa5bNkys6SkJPbj9XpjZR566CEzIyPDXLhwoblhwwbz2muvNQsKCky32x0r861vfcscPHiwuXTpUvOTTz4xP//5z5sTJkwwg8FgrMxFF11knnbaaeaHH35ofvjhh+b48ePNSy+9NPZ+MBg0i4qKzPPOO8/85JNPzKVLl5qDBw82b7vttp7ZGWKapmnOnDnTvPPOO2OvVf/918cff2zabDbz5z//ubljxw7zz3/+s5mcnGy++OKLsTKq//7rxhtvNAcNGmS+/vrr5p49e8yFCxeaOTk55r333hsro/rvP+rr6821a9eaa9euNQHz0UcfNdeuXWvu27fPNM3eVde1tbVmXl6eee2115obNmwwFy5caKanp5sPP/xwD+wpke6n702J63jnYunfOvLdW/qv+++/33z33XfNPXv2mOvXrzd/8IMfmBaLxVy8eHG8Q5M4ObrvRfqvu+++21y2bJm5e/duc+XKleall15qpqWl9eq//ZRM6SG/+93vzGHDhpkOh8OcPHmyuXz58niHJMcBtPnz7LPPxsqEw2Hzpz/9qZmfn286nU7znHPOMTds2NBiOY2NjeZtt91mZmdnm0lJSeall15qFhcXtyhTVVVlXnfddWZaWpqZlpZmXnfddWZNTU2LMvv27TMvueQSMykpyczOzjZvu+02s6mpqbs2X9pw9Ae66r9/+9e//mUWFRWZTqfTHDt2rPn000+3eF/133+53W7zzjvvNIcOHWq6XC5z5MiR5g9/+EPT5/PFyqj++4933nmnzc/7G2+80TTN3lfX69evNz/3uc+ZTqfTzM/PNx944AEzHA53+X4RiRd9b0pMxzsXS//Wke/e0n/dfPPNsfP+wIEDzfPOO0+JlASnZEriuOaaa8yCggLTbrebhYWF5pVXXmlu2rQp3mG1yzDNw0+tFBERERERERERERERkVb0zBQREREREREREREREZF2KJkiIiIiIiIiIiIiIiLSDiVTRERERERERERERERE2qFkioiIiIiIiIiIiIiISDuUTBEREREREREREREREWmHkikiIiIiIiIiIiIiIiLtUDJFRERERERERERERESkHUqmiIiIiIiIiIiIiIiItEPJFBER6XI33XQTV1xxRbzDEBERERER6Veee+45MjMze2Rd+l4nItKSkikiIhJ3y5YtwzAMamtr4x2KiIiIiIhIQtm7dy+GYbBu3bp4hyIi0qspmSIiIiIiIiIiIgnD7/f36PoCgUCPrk9ERLqHkikiInLC/vGPfzB+/HiSkpIYMGAA559/Pg0NDa3K+Xw+7rjjDnJzc3G5XJx99tmsWrUKiFwFde655wKQlZWFYRjcdNNNPbkZIiIiIiLSj82aNYvbbruNuXPnkpOTwwUXXADA5s2bufjii0lNTSUvL48bbriBysrKdpcVDod58MEHGTx4ME6nk4kTJ7Jo0aLY+9FRHn/729+YNWsWLpeLF198kWAwyB133EFmZiYDBgzgvvvu48YbbzzubbSee+45hg4dSnJyMl/84hepqqpqVeZf//oXU6ZMweVyMXLkSObNm0cwGIy9bxgGTz31FHPmzCEpKYkRI0bw97//Pfb+iBEjAJg0aRKGYTBr1qwWy3/44YcpKChgwIAB3HrrrUoOiUjCUjJFREROSElJCddeey0333wzW7ZsYdmyZVx55ZWYptmq7L333ss///lPnn/+eT755BNGjx7NhRdeSHV1NUOGDOGf//wnANu2baOkpIRf//rXPb05IiIiIiLSjz3//PPYbDbef/99/vCHP1BSUsLMmTOZOHEiq1evZtGiRZSVlXH11Ve3u5xf//rXPPLIIzz88MOsX7+eCy+8kMsvv5wdO3a0KHffffdxxx13sGXLFi688EL+53/+hz//+c88++yzvP/++7jdbl555ZV21/XRRx9x8803853vfId169Zx7rnn8rOf/axFmTfffJPrr7+eO+64g82bN/OHP/yB5557jp///Octyv34xz/mS1/6Ep9++inXX3891157LVu2bAHg448/BmDp0qWUlJSwcOHC2HzvvPMOu3bt4p133uH555/nueee47nnnms3bhGR/sow2+r1EhEROY5PPvmEKVOmsHfvXoYNG9bivZtuuona2lpeeeUVGhoayMrK4rnnnuMrX/kKEBnmPnz4cO666y6+973vsWzZMs4991xqamp67GGKIiIiIiKSGGbNmkVdXR1r166NTfvJT37CRx99xJtvvhmbduDAAYYMGcK2bdsYM2ZMm8saNGgQt956Kz/4wQ9i08444wxOP/10fve737F3715GjBjB448/zp133hkrk5+fzz333MM999wDQCgUYuTIkUyaNOmYSZWvfOUr1NTU8J///Cc27ctf/jKLFi2KPW/ynHPOYc6cOdx///2xMi+++CL33nsvhw4dAiIjU771rW/x1FNPxcpMmzaNyZMn8+STT8ZiXrt2LRMnToyVuemmm1i2bBm7du3CarUCcPXVV2OxWFiwYEGbMYuI9GcamSIiIidkwoQJnHfeeYwfP56rrrqKP/7xj9TU1LQqt2vXLgKBAGeddVZsmt1u54wzzohdCSUiIiIiItKdpk6d2uL1mjVreOedd0hNTY39jB07Foh8h/nzn//c4r333nsPt9vNoUOHWny3ATjrrLNafbc5cn11dXWUlZVxxhlnxKZZrVamTJnSbsxbtmxh+vTpLaYd/XrNmjU8+OCDLWL9xje+QUlJCV6v95jzTZ8+vUPfx0499dRYIgWgoKCA8vLy484nItIf2eIdgIiI9E1Wq5UlS5bwwQcfsHjxYp544gl++MMf8tFHH7UoFx0AaRhGq+lHTxMREREREekOKSkpLV6Hw2Euu+wy/ud//qdV2YKCAsLhMGeeeWZs2qBBg2LPCunId5uj13es+drTkZvJhMNh5s2bx5VXXtnqPZfL1e68Hfk+ZrfbW80TDoePO5+ISH+kkSkiInLCDMPgrLPOYt68eaxduxaHw8HLL7/coszo0aNxOBysWLEiNi0QCLB69WrGjRsHgMPhACJD3UVERERERLrb5MmT2bRpE8OHD2f06NEtFJ7opQAAA4lJREFUflJSUkhLS2sxLSkpifT0dAoLC1t8twH44IMPYt9t2pKRkUFeXl7s2SQQ+e5z5G3H2nLKKaewcuXKFtOOfj158mS2bdvWahtGjx6NxWI55nwrV66MjcTR9zERkY7RyBQRETkhH330EW+99RazZ88mNzeXjz76iIqKCsaNG8f69etj5VJSUvj2t7/N9773PbKzsxk6dCi//OUv8Xq93HLLLQAMGzYMwzB4/fXXufjii0lKSiI1NTVemyYiIiIiIv3crbfeyh//+EeuvfZavve975GTk8POnTtZsGABf/zjH1vc2upI3/ve9/jpT3/KqFGjmDhxIs8++yzr1q3jz3/+c7vru/3225k/fz6jR49m7NixPPHEE9TU1LQ7OuSOO+5gxowZ/PKXv+SKK65g8eLFLFq0qEWZn/zkJ1x66aUMGTKEq666CovFwvr169mwYUOLh9X//e9/Z+rUqZx99tn8+c9/5uOPP+aZZ54BIDc3l6SkJBYtWsTgwYNxuVxkZGR0dFeKiCQMjUwREZETkp6ezrvvvsvFF1/MmDFj+NGPfsQjjzzCnDlzWpV96KGH+NKXvsQNN9zA5MmT2blzJ2+++SZZWVlAZMj8vHnz+P73v09eXh633XZbT2+OiIiIiIgkkMLCQt5//31CoRAXXnghRUVF3HnnnWRkZLQY0XG0O+64g7vvvpu7776b8ePHs2jRIl577TVOOumkdtd33333ce211/LVr36V6dOnk5qayoUXXtjurbimTZvG//7v//LEE08wceJEFi9ezI9+9KMWZS688EJef/11lixZwumnn860adN49NFHGTZsWIty8+bNY8GCBZz2/9u7Y9uEgTAMw5+Rp2ADKOioKDwCVBSs4w2QGzpTULu32IIBEGPQkGxwoYiVKHmeBf7Tta/uv9Uq5/M5l8sly+UySVLXdY7HY06nU+bzebbb7VfXB/AvVR/vLGAEAAAAAL7F6/XKYrHIfr9P27aTzqqqKsMwZLfbTToH4K+z5gsAAAAAJvR4PDKOY5qmyfP5TNd1ud/vORwOP300AN5kzRcAAAAATGg2m6Xv+6zX62w2m9xut1yv1+LH9QD8LtZ8AQAAAAAAFHiZAgAAAAAAUCCmAAAAAAAAFIgpAAAAAAAABWIKAAAAAABAgZgCAAAAAABQIKYAAAAAAAAUiCkAAAAAAAAFYgoAAAAAAEDBJ5c/pz8NCcGbAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "reorgs = sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "id": "67b6b368-9203-4af6-bab3-dfbc2ef4fb1c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.71% of slots were reorged with depth >= 0\n", + "2.04% of slots were reorged with depth >= 1\n", + "0.22% of slots were reorged with depth >= 2\n", + "0.04% of slots were reorged with depth >= 3\n", + "0.01% of slots were reorged with depth >= 4\n", + "0.00% of slots were reorged with depth >= 5\n", + "0.00% of slots were reorged with depth >= 6\n", + "0.00% of slots were reorged with depth >= 7\n", + "0.00% of slots were reorged with depth >= 8\n", + "0.00% of slots were reorged with depth >= 9\n", + "0.00% of slots were reorged with depth >= 10\n", + "0.00% of slots were reorged with depth >= 11\n", + "0.00% of slots were reorged with depth >= 12\n", + "0.00% of slots were reorged with depth >= 13\n", + "0.00% of slots were reorged with depth >= 14\n", + "0.00% of slots were reorged with depth >= 15\n", + "0.00% of slots were reorged with depth >= 16\n", + "0.00% of slots were reorged with depth >= 17\n", + "0.00% of slots were reorged with depth >= 18\n", + "0.00% of slots were reorged with depth >= 19\n" + ] + } + ], + "source": [ + "for DEPTH in range(20):\n", + " print(f\"{len(reorgs[reorgs >= DEPTH]) / sim.params.SLOTS*100:.2f}% of slots were reorged with depth >= {DEPTH}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "id": "e29f1bfb-042d-4ffa-9981-b6a5dfc88557", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/10\n", + "simulating 2/10\n", + "simulating 3/10\n", + "simulating 4/10\n", + "simulating 5/10\n", + "simulating 6/10\n", + "simulating 7/10\n", + "simulating 8/10\n", + "simulating 9/10\n", + "simulating 10/10\n", + "finished simulation, starting analysis\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=10000,\n", + " f=0.05,\n", + " adversary_control = i,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=10, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in np.linspace(1e-3, 0.3, 10)]\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 236, + "id": "dd417361-b315-4769-9c24-221e231c2458", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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yPz583PzzTenV69eufrqqzNmzJhMmzYtO+ywQ2UTKtn5C/yL8BcAAAAAAKDt9t577+y9996tjo8dO3aFz5MmTcoll1yShx9+OCNHjkyS1NXVZcqUKdl5552TJF/60pdy3nnnZfr06a2GvzU1rRzSWuFuP6DAhL8AAAAAAACrxxtvvJGLL7443bt3z6BBg5r6hw4dmmuvvTb77LNP1l133Vx33XVZvHhxhg8f3mqt2tra1NXVNesvx85fYLlyBc+uVPh733335aKLLsqTTz6Zn//853nf+96XK6+8Mv3798/QoUNXpiQAAAAAAMAa7ZZbbsmhhx6a1157LRtttFGmTp2aXr16NY1fe+21GTNmTHr27Jn27dtnrbXWyg033JDNN9+81Zr/fW9wEzt/gUarc+fv9ddfnyOOOCKHHXZYZsyYkcWLFydJXnnllXzzm9/MrbfeWmlJAAAAAACANd6IESMyc+bMzJs3Lz/60Y9yyCGHpL6+Pr17906y/Jjnl19+OXfccUd69eqVG2+8MR/72Mdy3333Zdttt22xZkNDQ4v95VIp5ZL0F0hFa0ErB8m37qyzzsqFF16YH/3oR+nQoUNT/6677prp06dXWg4AAAAAAOBdoWvXrhkwYEA++MEP5pJLLkn79u1zySWXJEmefPLJXHDBBbn00kszcuTIDBo0KF/96lczZMiQ/PCHP2y15lve+atpmlZKm1W88/fxxx/PsGHDmvWvs846+ec//1lpOQAAAAAAgHelcrncdELqa6+9lqR5mNuuXbtWd/cmb3Lnb8mdv8BylawFFYe/G220UZ544on069dvhf77778/m222WaXlAAAAAAAAqu7VV1/NE0880fT5qaeeysyZM9OjR4/07NkzZ599dvbbb79stNFGefHFFzN58uQ899xz+djHPpYk2WqrrTJgwIB85jOfyXe+85307NkzN954Y6ZOnZpbbrml1fe68xd4S6sz/P3MZz6TE088MZdeemlKpVJmz56durq6nHrqqfnKV75SaTkAAAAAAICqmzZtWkaMGNH0+eSTT06SHHXUUbnwwgvz5z//OZdffnnmzZuXnj17Zqeddsp9992XD3zgA0mSDh065NZbb83pp5+efffdN6+++moGDBiQyy+/PKNHj271va3f+WvnL7Dcat35+/nPfz7z58/PiBEjsmjRogwbNiydOnXKqaeems9+9rOVlgMAAAAAAKi64cOHp1wutzr+i1/84i1rvP/978/111+/aiZk5y/QaHWGv2+88UbOPvvsnHHGGXnsscfS0NCQgQMHZu211868efPSq1evSksCAAAAAAC8J/33HcGN7PwFGlWyFrS8oryJQw45JA0NDVlrrbUyZMiQ7Lzzzll77bXz97//PcOHD6+0HAAAAAAAwHtWbW1tywMlTdO0/2htVHH4O2fOnBx99NHN+oYPH56tttqq0nIAAAAAAADvWfX19S0PVDto0jRtzWptVPGxz7feemuGDRuW8ePH57zzzsvzzz+f3XffPYMGDco111xTaTkAAAAAAID3rIaGhhb7HfsMNKpkLag4/O3Zs2d+85vfZOjQoUmSX/3qV9lxxx3zk5/8pNVz6QEAAAAAAKhAhbv9gAJbneFvkmy88caZOnVqhg4dmg9/+MO58sorUypZgQAAAAAAACrR2sY6O3+BRqt85+96663XYrj72muv5Ze//GV69uzZ1PfSSy+1/e0AAAAAAADvYbW1tamrq2s+YOcv0GhVh7/nn3/+Ss4EAAAAAACA1tTX11d7CkCBtCn8Peqoo1b3PAAAAAAAAN5zGhoaWuwvl0opu3ITSCpaC1bqzt9Gr7/+epYsWbJC3zrrrPN2SgIAAAAAALxntHbnr2OfgSar+tjn/7Rw4cJ84QtfyHXXXZcXX3yx2fiyZcsqLQkAAAAAAPCe5M5f4C2tzvD385//fO66665Mnjw5Rx55ZH74wx/m+eefz0UXXZRzzjmn0nIAAAAAAADvWa3d+VtOUhb+Alm+HrRVxeHvL3/5y1xxxRUZPnx4PvGJT2S33XbLgAED0rdv3/zkJz/JYYcdVmlJAAAAAACA96TW7vy18xdosjp3/r700kvp379/kuX3+7700ktJkqFDh+bYY4+ttBwAAAAAAAD/pVyy8xdYrpK1oJVbxFu32Wab5emnn06SDBw4MNddd12S5TuC11133UrLAQAAAAAArJSnnnqq2lN422pqWolqSpqmaf/R2qji8HfcuHF56KGHkiQTJkzI5MmT06lTp4wfPz6nnXZapeUAAAAAAABWyoABAzJixIhcddVVWbRo0duqde+992bfffdNnz59UiqVcuONN64w/uqrr+azn/1sNt5443Tp0iVbb711pkyZ0mKtcrmcvffeu8U6/622trblgWoHTZqmrVmtjSo+9nn8+PFNfx4xYkT+/Oc/Z9q0adl8880zaNCgSssBAAAAAACslIceeiiXXnppTjnllHz2s5/NmDFjcvTRR2fnnXeuuNbChQszaNCgjBs3LgcffHCz8fHjx+euu+7KVVddlX79+uX222/Pcccdlz59+mT//fdf4dnzzz8/pVLb0pr6+voW+x37DDRarcc+X3HFFVm8eHHT50033TQHHXRQtt5661xxxRWVlgMAAAAAAFgp22yzTSZNmpTnn38+l112WebOnZuhQ4fmAx/4QCZNmpR//OMfba61995756yzzspBBx3U4nhdXV2OOuqoDB8+PP369cunP/3pDBo0KNOmTVvhuYceeiiTJk3KpZde2qb3NjQ0tDxQ7V2GmqatWa2NVurY5/nz5zfrf+WVVzJu3LhKywEAAAAAALwt7du3z4EHHpjrrrsu3/rWt/Lkk0/m1FNPzcYbb5wjjzwyc+bMedvvGDp0aG6++eY8//zzKZfLueuuu/KXv/wle+65Z9Mzr732Wv73f/83F1xwQTbccMO39b7Gnb+apmnlUtvXjorD33K53OJRBc8991y6d+9eaTkAAAAAAIC3Zdq0aTnuuOOy0UYbZdKkSTn11FPz5JNP5s4778zzzz/f7FjmlfH9738/AwcOzMYbb5yOHTtmr732yuTJkzN06NCmZ8aPH59dd921ovfV1LQS1ZQ0TdP+o7VRm+/83WGHHVIqlVIqlTJy5Mi0b//vry5btixPPfVU9tprr7a/GQAAAAAA4G2YNGlSLrvssjz++OMZPXp0rrjiiowePbopUO3fv38uuuiibLXVVm/7Xd///vfzhz/8ITfffHP69u2be++9tylw3mOPPXLzzTfnzjvvzIwZMyqqW1tbm7q6uuYDFQY+QIGtjvD3gAMOSJLMnDkze+65Z9Zee+2msY4dO6Zfv34tXoAOAAAAAACwOkyZMiWf+MQnMm7cuFaPWd50001zySWXvK33vP766/niF7+YG264Ifvss0+SZLvttsvMmTPzne98J3vssUfuvPPOPPnkk1l33XVX+O7BBx+c3XbbLXfffXeLtevr61vsr/SoV6C4KlkL2hz+fvWrX02S9OvXL4ceemg6depU8cQAAAAAAABWlb/+9a9v+UzHjh1z1FFHva33LFmyJEuWLGl2RHO7du3S0NCQJDn99NPzyU9+coXxbbfdNuedd1723XffVms3fr8ZO3+BRqsj/G20++675x//+Ec23njjJMkf//jHXH311Rk4cGA+/elPV1oOAAAAAABgpVx22WVZe+2187GPfWyF/p/97Gd57bXXKgp9X3311TzxxBNNn5966qnMnDkzPXr0yKabbpoPfehDOe2009KlS5f07ds399xzT6644opMmjQpSbLhhhu2uPt40003Tf/+/Vt9b2t3/tr5CzSqZC1o5Rbx1o0dOzZ33XVXkmTu3LnZY4898sc//jFf/OIX841vfKPScgAAAAAAACvlnHPOSa9evZr19+7dO9/85jcrqjVt2rTssMMO2WGHHZIkJ598cnbYYYd85StfSZJcc8012WmnnXLYYYdl4MCBOeecc3L22WfnmGOOeVu/oba29m19H+A/Vbzz99FHH83OO++cJLnuuuuy7bbb5ne/+11uv/32HHPMMU2LIAAAAAAAwOr0zDPPtLirtm/fvpk1a1ZFtYYPH55yudzq+IYbbpjLLrusoppvVq9Ra3f+OvYZaLI6j31esmRJ032/d9xxR/bbb78kyVZbbZU5c+ZUWg4AAAAAAGCl9O7dOw8//HD69eu3Qv9DDz2Unj17VmdSFWrtzl/HPgONKlkLKg5/P/CBD+TCCy/MPvvsk6lTp+bMM89MksyePftds5ACAAAAAADvfoceemhOOOGEdOvWLcOGDUuS3HPPPTnxxBNz6KGHVnl2b5Odv0Cj1Rn+futb38qBBx6Yb3/72znqqKMyaNCgJMnNN9/cdBw0AAAAAADA6nbWWWflmWeeyciRI9O+/fLIo6GhIUceeWTFd/5WS01NTcsDwl+g0eoMf4cPH5558+ZlwYIFWW+99Zr6P/3pT2ettdaqtBwAAAAAAMBK6dixY6699tqceeaZeeihh9KlS5dsu+226du3b7Wn1ma1tbWpq6tr1u/YZ6DRaj32OUnatWu3QvCbpNl5+gAAAAAAAO+ELbbYIltssUW1p7FS6uvrWx8U/gIVWqnwFwAAAAAAoNqWLVuWH//4x/ntb3+bF154IQ0NDSuM33nnnVWaWdv995ybOPYZaLS6d/4CAAAAAABU24knnpgf//jH2WeffbLNNtukVHr3paWt3fnr2Geg0Wo/9hkAAAAAAKDarrnmmlx33XUZPXp0taey0lq78zel8vIGUMFaUHH4+9RTT6V///6Vfg0AAAAAAGCV6tixYwYMGFDtabwtrd75a+cv0KiCtaDlswTexIABAzJixIhcddVVWbRoUaVfBwAAAAAAWCVOOeWUfO9730u5/O7dIfuWd/5qmqaV0mYV7/x96KGHcumll+aUU07JZz/72YwZMyZHH310dt5550pLAQAAAAAArLT7778/d911V37961/nAx/4QDp06LDC+C9+8YsqzWwVqDDwAQpsdYa/22yzTSZNmpRzzz03v/zlL/PjH/84Q4cOzfvf//4cffTROeKII7L++utXWhYAAAAAAKAi6667bg488MBqT+Ntqalp+ZDWcsmxz8BylawFFYe/TV9s3z4HHnhgRo8encmTJ2fChAk59dRTM2HChIwZMybf+ta3stFGG61seQAAAAAAgDd12WWXVXsKb1ttbW3q6uqaD9j5CzSqYC2o+M7fRtOmTctxxx2XjTbaKJMmTcqpp56aJ598MnfeeWeef/757L///itbGgAAAAAAoE2WLl2aO+64IxdddFFeeeWVJMns2bPz6quvVnlmbVNfX9/yQLXvF9U0bc1qbVRx+Dtp0qRsu+222XXXXTN79uxcccUVeeaZZ3LWWWelf//++Z//+Z9cdNFFmT59eqWlAQAAAAAA2uyZZ57Jtttum/333z/HH398/vGPfyRJzj333Jx66qltrjNx4sTstNNO6datW3r37p0DDjggjz/++ArPfO1rX8tWW22Vrl27Zr311ssee+zRLLhdvHhxPve5z6VXr17p2rVr9ttvvzz33HNv+u6GhoYW+8uapmn/0dqq4vB3ypQpGTt2bGbNmpUbb7wxH/nIR5qdR7/pppvmkksuqbQ0AAAAAABAm5144okZMmRIXn755XTp0qWp/8ADD8xvf/vbNte55557cvzxx+cPf/hDpk6dmqVLl2bUqFFZuHBh0zNbbLFFLrjggjzyyCO5//77069fv4waNaopcE6Sk046KTfccEOuueaa3H///Xn11VfzkY98JMuWLav8x1V7l6GmaWtWa6OK7vxdunRpDjvssBx++OHZcMMNW32uY8eOOeqooyopDQAAAAAAUJH7778/v/vd79KxY8cV+vv27Zvnn3++zXVuu+22FT5fdtll6d27dx588MEMGzYsSTJ27NgVnpk0aVIuueSSPPzwwxk5cmTmz5+fSy65JFdeeWX22GOPJMlVV12VTTbZJHfccUf23HPPFt/93xvsmlQY+AAFVsFaUNHO3/bt2+e73/3uyv0NFQAAAAAAgFWooaGhxcziueeeS7du3Va67vz585MkPXr0aHH8jTfeyMUXX5zu3btn0KBBSZIHH3wwS5YsyahRo5qe69OnT7bZZpv8/ve/b/VdtbW1LfaXS5qmaf9ubVXxsc8jR47M3XffXenXAAAAAAAAVqkPf/jDOf/885s+l0qlvPrqq/nqV7+a0aNHr1TNcrmck08+OUOHDs0222yzwtgtt9yStddeO507d855552XqVOnplevXkmSuXPnpmPHjllvvfVW+M4GG2yQuXPntvq+/743+N8/pqxpmvbv1kYVHfucJHvvvXcmTJiQRx99NIMHD07Xrl1XGN9vv/0qLQkAAAAAAFCx8847LyNGjMjAgQOzaNGijB07Nn/961/Tq1ev/PSnP12pmp/97Gfz8MMP5/777282NmLEiMycOTPz5s3Lj370oxxyyCGpr69P7969W61XLpdTKrW+ba+hoaHlgdK/GkAFa0HF4e+xxx6bZPlZ9s3eWyo5EhoAAAAAAHhH9OnTJzNnzsxPf/rTTJ8+PQ0NDTn66KNz2GGHpUuXLhXX+9znPpebb7459957bzbeeONm4127ds2AAQMyYMCAfPCDH8z73//+XHLJJZkwYUI23HDDvPHGG3n55ZdX2P37wgsvZNddd231na3d+VvpUa9AcVWyFlQc/rb6N1AKaEnXmjR0rPhkbOBdblnXjtWeAlXUoZV/2Oa9oaZL52pPgSoqlztVewpU25Il1Z4BVdSwaFG1p0A1vclOHN4Dym0/Qg+ANVOXLl3yiU98Ip/4xCdWuka5XM7nPve53HDDDbn77rvTv3//Nn9v8eLFSZLBgwenQ4cOmTp1ag455JAkyZw5c/Loo4/m3HPPbbVGbW1t6urqmg/Y+Qs0Wp3hLwAAAAAAwJrgiiuueNPxI488sk11jj/++Fx99dW56aab0q1bt6Y7ert3754uXbpk4cKFOfvss7Pffvtlo402yosvvpjJkyfnueeey8c+9rGmZ48++uiccsop6dmzZ3r06JFTTz012267bfbYY49W393qnb8AK2Glwt+FCxfmnnvuyaxZs/LGG2+sMHbCCSeskokBAAAAAAC8mRNPPHGFz0uWLMlrr72Wjh07Zq211mpz+DtlypQkyfDhw1fov+yyy/Lxj3887dq1y5///OdcfvnlmTdvXnr27Jmddtop9913Xz7wgQ80PX/eeeelffv2OeSQQ/L6669n5MiR+fGPf5x27dq1+m53/gJvaXXu/J0xY0ZGjx6d1157LQsXLkyPHj0yb968rLXWWundu7fwFwAAAAAAeEe8/PLLzfr++te/5thjj81pp53W5jrlt7gGoHPnzvnFL37xlnU6d+6cH/zgB/nBD37Q5ne3Oqe48xdYrpKLSioOf8ePH5999903U6ZMybrrrps//OEP6dChQw4//PBmf8MGAAAAAADgnfT+978/55xzTg4//PD8+c9/rvZ03lJNTU3LA6Xy8gZQwVrQyorSupkzZ+aUU05Ju3bt0q5duyxevDibbLJJzj333Hzxi1+stBwAAAAAAMAq1a5du8yePbva02iT2tralgdKmqZp/9HaqOKdvx06dEiptPwNG2ywQWbNmpWtt9463bt3z6xZsyotBwAAAAAAsFJuvvnmFT6Xy+XMmTMnF1xwQf7nf/6nSrOqTH19fcsDFQY+QIGtzvB3hx12yLRp07LFFltkxIgR+cpXvpJ58+blyiuvzLbbbltpOQAAAAAAgJVywAEHrPC5VCpl/fXXz+67757vfve71ZlUhRoaGloeEP4CjVZn+PvNb34zr7zySpLkzDPPzFFHHZVjjz02AwYMyGWXXVZpOQAAAAAAgJXSanBaAOVSOWV3/gJJRWtBxeHvkCFDmv68/vrr59Zbb620BAAAAAAAAElqampaHrDzF2i0Onf+vv766ymXy1lrrbWSJM8880xuuOGGDBw4MKNGjaq0HAAAAAAAwEo5+eST2/zspEmTVuNMVl5tbW3q6uqaDwh/gUarM/zdf//9c9BBB+WYY47JP//5z+y8887p2LFj5s2bl0mTJuXYY4+ttCQAAAAAAEDFZsyYkenTp2fp0qXZcsstkyR/+ctf0q5du+y4445Nz5VKa26KWl9fX+0pAAVScfg7ffr0nHfeeUmSn//859lwww0zY8aMXH/99fnKV74i/AUAAAAAAN4R++67b7p165bLL7886623XpLk5Zdfzrhx47LbbrvllFNOqfIM31qr9xaXyssbwOq88/e1115Lt27dkiS33357DjrooNTU1OSDH/xgnnnmmUrLAQAAAAAArJTvfve7uf3225uC3yRZb731ctZZZ2XUqFHvivDXnb/AW6pgLWhlRWndgAEDcuONN+bZZ5/Nb37zm6Z7fl944YWss846lZYDAAAAAABYKQsWLMjf//73Zv0vvPBCXnnllSrMqHK1tbUtD5Q0TdP+o7VRxTt/v/KVr2Ts2LEZP358Ro4cmV122SXJ8l3AO+ywQ6XlAAAAAAAAVsqBBx6YcePG5bvf/W4++MEPJkn+8Ic/5LTTTstBBx1U5dm1Tat3/jr2GWi0Oo99/uhHP5qhQ4dmzpw5GTRoUFP/yJEjc+CBB1ZaDgAAAAAAYKVceOGFOfXUU3P44YdnyZIlSZL27dvn6KOPzre//e0qz65tWr/zNxXt9gMKbHXt/F26dGk6d+6cmTNnNtvlu/POO1dSCgAAAAAA4G1Za621Mnny5Hz729/Ok08+mXK5nAEDBqRr167VntrbJ/wFGq2u8Ld9+/bp27dvli1bVumUAAAAAAAAVos5c+Zkzpw5GTZsWLp06ZJyuZxS6d2RnNbU1LQ84NhnoFEFa0ErK0rrvvSlL2XChAl56aWXKv0qAAAAAADAKvPiiy9m5MiR2WKLLTJ69OjMmTMnSfLJT34yp5xySpvrTJw4MTvttFO6deuW3r1754ADDsjjjz++wjOlUqnF9t/HS9fV1WX33XdP165ds+6662b48OF5/fXXW313bW1ti/2lkqZp2r9bW1V85+/3v//9PPHEE+nTp0/69u3b7OiE6dOnV1oSAAAAAACgYuPHj0+HDh0ya9asbL311k39Y8aMyfjx4/Pd7363TXXuueeeHH/88dlpp52ydOnSnHHGGRk1alQee+yxphykMVhu9Otf/zpHH310Dj744Ka+urq67LXXXpkwYUJ+8IMfpGPHjnnooYda392bpL6+vuUBO3+BRhWsBRWHvwcccEClXwEAAAAAAFjlbr/99vzmN7/JxhtvvEL/+9///jzzzDNtrnPbbbet8Pmyyy5L79698+CDD2bYsGFJkg033HCFZ2666aaMGDEim222WVPf+PHjc8IJJ+T0009fYS5vpqGhoeWB0r8awOrc+fvVr3610q8AAAAAAACscgsXLsxaa63VrH/evHnp1KnTStedP39+kqRHjx4tjv/973/Pr371q1x++eVNfS+88ELq6+tz2GGHZdddd82TTz6ZrbbaKmeffXaGDh1a8RxKKadk5y+Q5etBW1V852+S/POf/8z//d//rXD37/Tp0/P888+vTDkAAAAAAICKDRs2LFdccUXT51KplIaGhnz729/OiBEjVqpmuVzOySefnKFDh2abbbZp8ZnLL7883bp1y0EHHdTU97e//S1J8rWvfS2f+tSnctttt2XHHXfMyJEj89e//rXV97V6JHRJ0zTtP1obVbzz9+GHH84ee+yR7t275+mnn86nPvWp9OjRIzfccEOeeeaZFRZZAAAAAACA1eXb3/52hg8fnmnTpuWNN97I5z//+fy///f/8tJLL+V3v/vdStX87Gc/m4cffjj3339/q89ceumlOeyww9K5c+emvsbjmz/zmc9k3LhxSZIddtghv/3tb3PppZdm4sSJLdaqra1NXV1ds/5SaXkDqGQtqDj8Pfnkk/Pxj3885557brp169bUv/fee2fs2LGVlgMAAAAAAFgpAwcOzMMPP5wpU6akXbt2WbhwYQ466KAcf/zx2WijjSqu97nPfS4333xz7r333mb3CDe677778vjjj+faa69dob/xfQMHDlyhf+utt86sWbNafWd9fX3LA6Xy8gZQwVpQcfj7wAMP5KKLLmrW/773vS9z586ttBwAAAAAAEDFlixZklGjRuWiiy7K17/+9bdVq1wu53Of+1xuuOGG3H333enfv3+rz15yySUZPHhwBg0atEJ/v3790qdPnzz++OMr9P/lL3/J3nvv3Wq9xh3D/63Ck16BAqtkLag4/O3cuXMWLFjQrP/xxx/P+uuvX2k5AAAAAACAinXo0CGPPvpoSqvgbOTjjz8+V199dW666aZ069atabNb9+7d06VLl6bnFixYkJ/97Gf57ne/26xGqVTKaaedlq9+9asZNGhQtt9++1x++eX585//nJ///Oetvru1O39LpXJKdv4CSUVrQcXh7/77759vfOMbue666/71slJmzZqV008/PQcffHCl5QAAAAAAAFbKkUcemUsuuSTnnHPO26ozZcqUJMnw4cNX6L/sssvy8Y9/vOnzNddck3K5nP/93/9tsc5JJ52URYsWZfz48XnppZcyaNCgTJ06NZtvvnmr727tzl/HPgNNVmf4+53vfCejR49O79698/rrr+dDH/pQ5s6dm1122SVnn312peUAAAAAAABWyhtvvJH/+7//y9SpUzNkyJB07dp1hfFJkya1qU653LZg5dOf/nQ+/elPv+kzp59+ek4//fQ21Utav/O3VFreACpZCyoOf9dZZ53cf//9ufPOOzN9+vQ0NDRkxx13zB577FFpKQAAAAAAgIo8/PDD2WabbVJTU5NHH300O+64Y5Lld+v+p1VxHPQ7obU7f+PYZ6DR6tz5+/TTT6dfv37Zfffds/vuu1f6dQAAAAAAgJW2ww47ZM6cOendu3eeeeaZPPDAA+nZs2e1p7XK2fkLNFqtO38322yz7LrrrjniiCPysY99LD169Ki0BAAAAAAAwEpZd91189RTT6V37955+umnW985+y5RU1PTYn/Jzl/gXypZCyoOf6dNm5af/vSnOeuss3LiiSdmzz33zOGHH5799tsvnTp1qrQcAAAAAABAmx188MH50Ic+lI022iilUilDhgxJu3btWnz2b3/72zs8u8rV1tamrq6uWf/ynb/CX2A17/zdcccds+OOO+bcc8/N3Xffnauvvjqf+cxn8slPfjIHH3xwLr300kpLAgAAAAAAtMnFF1+cgw46KE888UROOOGEfOpTn0q3bt2qPa2VVl9f32K/Y5+BRqs1/P33S0oZMWJERowYkWOPPTZHH310Lr/8cuEvAAAAAACwWu21115JkgcffDAnnnjiuzr8be3Yasc+A41W67HPjZ599tn89Kc/zdVXX51HHnkku+yySy644IKVLQcAAAAAAFCRyy67rNpTWG2Ev0Cj1Rr+XnzxxfnJT36S3/3ud9lyyy1z2GGH5cYbb0y/fv0qLQUAAAAAAPCeVlNT02J/6V8NoJK1oOLw98wzz8yhhx6a733ve9l+++0r/ToAAAAAAAD/Ultbm7q6umb9NaVyauz8BZKUV+fO31mzZqXkhnEAAAAAAIC3rb6+vsV+xz4DjVb5sc8PP/xwmwtut912bX4WAAAAAADgvayhoaHFfuEv0GiVh7/bb799SqVSyuXyv17Q+s7fZcuWtfnlAAAAAAAA72Wt3flbU1reAMoVrAUtryj/5amnnsrf/va3PPXUU/nFL36R/v37Z/LkyZkxY0ZmzJiRyZMnZ/PNN8/111+/snMGAAAAAAB4z6mtra32FIACadPO3759+zb9+WMf+1i+//3vZ/To0U192223XTbZZJN8+ctfzgEHHLDKJwkAAAAAAFBE7vwF3soqP/b5Pz3yyCPp379/s/7+/fvnscceq7QcAAAAAADAe1Zrd/7WpJwa4S+QpJy2rwVtOvb5P2299dY566yzsmjRoqa+xYsX56yzzsrWW29daTkAAAAAAICqmjJlSrbbbruss846WWeddbLLLrvk17/+dZJkyZIl+cIXvpBtt902Xbt2TZ8+fXLkkUdm9uzZTd9/6aWX8rnPfS5bbrll1lprrWy66aY54YQTMn/+/JWeU+POX03TtFJpNe78vfDCC7Pvvvtmk002yaBBg5IkDz30UEqlUm655ZZKywEAAAAAAFTVxhtvnHPOOScDBgxIklx++eXZf//9M2PGjGy88caZPn16vvzlL2fQoEF5+eWXc9JJJ2W//fbLtGnTkiSzZ8/O7Nmz853vfCcDBw7MM888k2OOOSazZ8/Oz3/+8zd9d01Ny/v0SiU7f4HlGipYC0rlcrnileO1117LVVddlT//+c8pl8sZOHBgxo4dm65du1Zaao20YMGCdO/ePTscenbadexc7elQBS/s/ka1p0AVvf//llV7ClRRh7/NrfYUqKLywteqPQWqaCX+sZiiWbKk2jOgihr+43Qr3oNKpWrPgGryzwDwnrS0vCR356bMnz8/66yzTrWnwxqqR48e+fa3v52jjz662dgDDzyQnXfeOc8880w23XTTFr//s5/9LIcffngWLlyY9u1b34s3fvz4nH/++c36d/rFiWnftdNKzx8ojqULF+eBg77Xpv/dqnjnb5KstdZa+fSnP71SkwMAAAAAAFhTLVu2LD/72c+ycOHC7LLLLi0+M3/+/JRKpay77rqt1mkMad4s+E2S+vr6Fvtr7PwF/qWStWClwt8keeyxxzJr1qy88caKOyT322+/lS0JAAAAAABQFY888kh22WWXLFq0KGuvvXZuuOGGDBw4sNlzixYtyumnn56xY8e2ugPvxRdfzJlnnpnPfOYzb/nehoaGFvuFv0Cj1Rr+/u1vf8uBBx6YRx55JKVSqel4vNK/jkhatsxxqQAAAAAAwLvLlltumZkzZ+af//xnrr/++hx11FG55557VgiAlyxZkkMPPTQNDQ2ZPHlyi3UWLFiQffbZJwMHDsxXv/rVlZ5PqVROSfgLJBWtBRWHvyeeeGL69++fO+64I5tttln++Mc/5sUXX8wpp5yS73znO5WWAwAAAAAAqLqOHTtmwIABSZIhQ4bkgQceyPe+971cdNFFSZYHv4ccckieeuqp3HnnnS3u+n3llVey1157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7FD1KHSi7bbbLgsWLGi7PfLII1WPRCd56aWXsttuu2W99dbLT3/60/zHf/xHvvOd72SDDTaoejQ6yaxZs9r973/q1KlJkkMOOaTiyegMF110Ua6++upceeWVmTdvXi6++OL80z/9U6644oqqR6OTHHvssZk6dWpuvPHGPPLII9l3332z995757nnnqt6NN5lb/XznosvvjiXXHJJrrzyysyaNSsDBgzIPvvsk6VLl3bypADAu6FWr9frVQ/B+8fIkSOz8847Z9KkSW1rQ4cOzcEHH5yJEydWOBmdrVar5bbbbsvBBx9c9ShU4A9/+EM23njj3HffffnUpz5V9ThUYKONNso//dM/5Zhjjql6FDrJyy+/nJ133jlXXXVVzjvvvOy000657LLLqh6L99g555yT22+/PXPnzq16FCpw+umn5xe/+IUz/dBm/Pjx+clPfpLf/va3qdVqVY/De+wzn/lM+vfvn2uvvbZt7Qtf+ELWX3/93HjjjRVORmd49dVX07t37/z4xz/OgQce2La+00475TOf+UzOO++8CqfjvfSXP++p1+sZOHBgxo8fn9NOOy1J0tLSkv79++eiiy7KV77ylQqnBQDeDjt/abN8+fLMnj07++67b7v1fffdNw8++GBFUwFVWLx4cZI3AiBdy8qVKzNlypQsW7Yso0aNqnocOtEJJ5yQAw88MHvvvXfVo9DJfvvb32bgwIEZPHhwvvjFL+Z3v/td1SPRSe64446MGDEihxxySDbeeON8/OMfzzXXXFP1WFRk+fLl+cEPfpCjjz5a+O0idt999/zbv/1bHn/88STJr3/96zzwwAM54IADKp6MzrBixYqsXLkyPXr0aLfes2fPPPDAAxVNRRV+//vfZ+HChe1+HtjU1JQ99tjDzwMB4AOqW9UD8P7xwgsvZOXKlenfv3+79f79+2fhwoUVTQV0tnq9ngkTJmT33XfPsGHDqh6HTvLII49k1KhRee211/KhD30ot912W7bddtuqx6KTTJkyJQ8//LBrvHVBI0eOzA033JCPfexjef7553Peeedl9OjRefTRR9O3b9+qx+M99rvf/S6TJk3KhAkT8vWvfz2/+tWvctJJJ6WpqSl/+7d/W/V4dLLbb789f/rTn3LkkUdWPQqd5LTTTsvixYszZMiQNDY2ZuXKlTn//PNz2GGHVT0anaB3794ZNWpU/vEf/zFDhw5N//7988Mf/jAzZ87M1ltvXfV4dKJVP/Nb088Dn3766SpGAgDeIfGX1fzlb3nX63W/+Q1dyIknnph///d/99veXcw222yTuXPn5k9/+lNuueWWHHHEEbnvvvsE4C7gmWeeycknn5x77rlntZ0flG///fdv++ftt98+o0aNypZbbpnrr78+EyZMqHAyOkNra2tGjBiRCy64IEny8Y9/PI8++mgmTZok/nZB1157bfbff/8MHDiw6lHoJDfffHN+8IMf5Kabbsp2222XuXPnZvz48Rk4cGCOOOKIqsejE9x44405+uijs+mmm6axsTE777xzvvSlL+Xhhx+uejQq4OeBAFAO8Zc2/fr1S2Nj42q7fBctWrTab/8BZfrqV7+aO+64I/fff38222yzqsehE3Xv3j1bbbVVkmTEiBGZNWtWLr/88nzve9+reDLea7Nnz86iRYsyfPjwtrWVK1fm/vvvz5VXXpmWlpY0NjZWOCGdqVevXtl+++3z29/+tupR6ASbbLLJar/kM3To0Nxyyy0VTURVnn766dx777259dZbqx6FTnTKKafk9NNPzxe/+MUkb/wS0NNPP52JEyeKv13Elltumfvuuy/Lli3LkiVLsskmm2Ts2LEZPHhw1aPRiQYMGJDkjR3Am2yySdu6nwcCwAeXa/7Spnv37hk+fHimTp3abn3q1KkZPXp0RVMBnaFer+fEE0/Mrbfemp/97Gf+Y5/U6/W0tLRUPQad4NOf/nQeeeSRzJ07t+02YsSIHH744Zk7d67w28W0tLRk3rx57X7wR7l22223PPbYY+3WHn/88WyxxRYVTURVvv/972fjjTfOgQceWPUodKJXXnklDQ3tfyzU2NiY1tbWiiaiKr169comm2ySl156KXfffXfGjBlT9Uh0osGDB2fAgAHtfh64fPny3HfffX4eCAAfUHb+0s6ECRMybty4jBgxIqNGjcrkyZMzf/78HHfccVWPRid4+eWX88QTT7Td//3vf5+5c+dmo402yuabb17hZLzXTjjhhNx000358Y9/nN69e7edAaC5uTk9e/aseDrea1//+tez//77Z9CgQVm6dGmmTJmSadOm5a677qp6NDpB7969V7u+d69evdK3b1/X/e4C/uEf/iEHHXRQNt988yxatCjnnXdelixZYsdXF/G1r30to0ePzgUXXJBDDz00v/rVrzJ58uRMnjy56tHoRK2trfn+97+fI444It26+RFBV3LQQQfl/PPPz+abb57tttsuc+bMySWXXJKjjz666tHoJHfffXfq9Xq22WabPPHEEznllFOyzTbb5Kijjqp6NN5lb/XznvHjx+eCCy7I1ltvna233joXXHBB1l9//XzpS1+qcGoA4O3yX3a0M3bs2Lz44os599xzs2DBggwbNix33nmn3/7vIh566KHstddebfdXXevviCOOyHXXXVfRVHSGSZMmJUn23HPPduvf//73c+SRR3b+QHSq559/PuPGjcuCBQvS3NycHXbYIXfddVf22WefqkcD3mPPPvtsDjvssLzwwgv58Ic/nF133TW//OUv/d2vi/jEJz6R2267LWeccUbOPffcDB48OJdddlkOP/zwqkejE917772ZP3++4NcFXXHFFTn77LNz/PHHZ9GiRRk4cGC+8pWv5Bvf+EbVo9FJFi9enDPOOCPPPvtsNtpoo3zhC1/I+eefn/XWW6/q0XiXvdXPe0499dS8+uqrOf744/PSSy9l5MiRueeee9K7d++qRgYA3oFavV6vVz0EAAAAAAAAAO+Ma/4CAAAAAAAAFED8BQAAAAAAACiA+AsAAAAAAABQAPEXAAAAAAAAoADiLwAAAAAAAEABxF8AAAAAAACAAoi/AAAAAAAAAAUQfwEAgDd1zjnnZKedduqU19pzzz0zfvz4TnktAAAAgNKIvwAAQKebNm1aarVa/vSnP1U9CgAAAEAxxF8AAKjI8uXL35PnrdfrWbFixXvy3AAAAAC8f4m/AADQSfbcc8+ceOKJmTBhQvr165d99tknSfIf//EfOeCAA/KhD30o/fv3z7hx4/LCCy+0Pa6lpSUnnXRSNt544/To0SO77757Zs2a1fb1Vbto77777owYMSJNTU2ZPn16li5dmsMPPzy9evXKJptskksvvXSdTqt84YUXpn///undu3eOOeaYvPbaa6sd8/3vfz9Dhw5Njx49MmTIkFx11VVtX3vqqadSq9UyZcqUjB49Oj169Mh2222XadOmtX19r732SpJsuOGGqdVqOfLII9se39ramlNPPTUbbbRRBgwYkHPOOaeDf9IAAAAAXZP4CwAAnej6669Pt27d8otf/CLf+973smDBguyxxx7Zaaed8tBDD+Wuu+7K888/n0MPPbTtMaeeempuueWWXH/99Xn44Yez1VZbZb/99ssf//jHds996qmnZuLEiZk3b1522GGHTJgwIb/4xS9yxx13ZOrUqZk+fXoefvjhN53vRz/6Ub75zW/m/PPPz0MPPZRNNtmkXdhNkmuuuSZnnnlmzj///MybNy8XXHBBzj777Fx//fXtjjvllFPy93//95kzZ05Gjx6dz372s3nxxRczaNCg3HLLLUmSxx57LAsWLMjll1/e7s+oV69emTlzZi6++OKce+65mTp16tv68wYAAADoSmr1er1e9RAAANAV7Lnnnlm8eHHmzJnTtvaNb3wjM2fOzN1339229uyzz2bQoEF57LHHsummm2bDDTfMddddly996UtJktdffz0f+chHMn78+JxyyimZNm1a9tprr9x+++0ZM2ZMkmTp0qXp27dvbrrppvyP//E/kiSLFy/OwIED8+UvfzmXXXbZGmccPXp0dtxxx0yaNKltbdddd81rr72WuXPnJkk233zzXHTRRTnssMPajjnvvPNy55135sEHH8xTTz2VwYMH58ILL8xpp52WJFmxYkUGDx6cr371qzn11FPbZn7ppZeywQYbtPszWrlyZaZPn962tssuu+Sv/uqvcuGFF76NP3UAAACArqNb1QMAAEBXMmLEiHb3Z8+enZ///Of50Ic+tNqxTz75ZF577bW8/vrr2W233drW11tvveyyyy6ZN2/eWp/7d7/7XV5//fXssssubWvNzc3ZZptt3nS+efPm5bjjjmu3NmrUqPz85z9PkvzhD3/IM888k2OOOSZf/vKX245ZsWJFmpubV3vcKt26dcuIESNWm3lNdthhh3b3N9lkkyxatOgtHwcAAADQ1Ym/AADQiXr16tXufmtraw466KBcdNFFqx27ySab5IknnkiS1Gq1dl+r1+urrf335151gp81Pe6daG1tTfLGqZ9HjhzZ7muNjY1v+fi/nGdN1ltvvdUes+p1AQAAAFg71/wFAIAK7bzzznn00UfzkY98JFtttVW7W69evbLVVlule/fueeCBB9oe8/rrr+ehhx7K0KFD1/q8W265ZdZbb7386le/altbsmRJfvvb377pPEOHDs0vf/nLdmv//X7//v2z6aab5ne/+91q8w4ePHitj1uxYkVmz56dIUOGJEm6d++eJFm5cuWbzgMAAADAurPzFwAAKnTCCSfkmmuuyWGHHZZTTjkl/fr1yxNPPJEpU6bkmmuuSa9evfJ3f/d3OeWUU7LRRhtl8803z8UXX5xXXnklxxxzzFqft3fv3jniiCPaHrfxxhvnm9/8ZhoaGt509+3JJ5+cI444IiNGjMjuu++e//N//k8effTRfPSjH2075pxzzslJJ52UPn36ZP/9909LS0seeuihvPTSS5kwYULbcd/97nez9dZbZ+jQobn00kvz0ksv5eijj06SbLHFFqnVavnJT36SAw44ID179lzjqa8BAAAAWHd2/gIAQIUGDhyYX/ziF1m5cmX222+/DBs2LCeffHKam5vT0PDGX9cvvPDCfOELX8i4ceOy884754knnsjdd9+dDTfc8E2f+5JLLsmoUaPymc98JnvvvXd22223DB06ND169FjrY8aOHZtvfOMbOe200zJ8+PA8/fTT+bu/+7t2xxx77LH5X//rf+W6667L9ttvnz322CPXXXfdajt/L7zwwlx00UXZcccdM3369Pz4xz9Ov379kiSbbrppvvWtb+X0009P//79c+KJJ76dPz4AAAAA/pta/Z1e9AsAAPhAWLZsWTbddNN85zvfedNdw+/UU089lcGDB2fOnDnZaaed3rPXAQAAAKA9p30GAIBCzZkzJ//5n/+ZXXbZJYsXL865556bJBkzZkzFkwEAAADwXhB/AQCgYN/+9rfz2GOPpXv37hk+fHimT5/eduplAAAAAMritM8AAAAAAAAABWioegAAAAAAAAAA3jnxFwAAAAAAAKAA4i8AAAAAAABAAcRfAAAAAAAAgAKIvwAAAAAAAAAFEH8BAAAAAAAACiD+AgAAAAAAABRA/AUAAAAAAAAogPgLAAAAAAAAUID/Bzsm2DaSMMQEAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "max_reorg_depth = max(a.max() if len(a) > 0 else 0 for a in advs)\n", + "\n", + "\n", + "heatmap = np.zeros((len(advs), max_reorg_depth), dtype=np.int64)\n", + "\n", + "for i, adv in enumerate(advs):\n", + " for depth in range(max_reorg_depth):\n", + " heatmap[i][depth] = (adv == depth).sum()\n", + "\n", + "plt.figure(figsize=(40,40))\n", + "ax = plt.subplot(121)\n", + "im = ax.imshow(heatmap)\n", + "\n", + "_ = ax.set_yticks(np.arange(len(sims)), labels=[f\"{s.params.adversary_control:.2f}\" if i % 2 == (len(sims) - 1) % 2 else None for i, s in enumerate(sims)])\n", + "_ = ax.set_xticks(np.arange(max_reorg_depth), labels=[r if r % (max_reorg_depth // 10) == 0 else None for r in range(max_reorg_depth)])\n", + "_ = ax.set_xlabel(\"reorg depth\")\n", + "_ = ax.set_ylabel(\"adversary stake\")\n", + "\n", + "ax = plt.subplot(1,10,6)\n", + "scale = heatmap.max()\n", + "ax.imshow(np.arange(scale+1).reshape((1, scale+1)).T, extent=(1,0,1,0))\n", + "_ = ax.set_yticks(np.arange(scale+1) / scale, labels = [r if r % (scale // 10) == 0 else None for r in range(scale+1)])\n", + "_ = ax.set_xticks([], minor=False)\n", + "_ = ax.set_ylabel(\"frequency\")" + ] + }, + { + "cell_type": "code", + "execution_count": 357, + "id": "6a232e82-2b79-4924-b6fe-b56564c797ea", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/5\n", + "SIM=100000/200000, blocks=4637\n", + "simulating 2/5\n", + "SIM=100000/200000, blocks=4637\n", + "simulating 3/5\n", + "SIM=100000/200000, blocks=4637\n", + "simulating 4/5\n", + "SIM=100000/200000, blocks=4637\n", + "simulating 5/5\n", + "SIM=100000/200000, blocks=4637\n", + "finished simulation, starting analysis\n", + "Processing block Block(id=1000, slot=21112, height=947, parent=999, leader=70)\n", + "Processing block Block(id=2000, slot=43487, height=1905, parent=1999, leader=27)\n", + "Processing block Block(id=3000, slot=64768, height=2860, parent=2998, leader=74)\n", + "Processing block Block(id=4000, slot=86152, height=3827, parent=3999, leader=4)\n", + "Processing block Block(id=5000, slot=107463, height=4788, parent=4999, leader=53)\n", + "Processing block Block(id=6000, slot=129674, height=5754, parent=5999, leader=8)\n", + "Processing block Block(id=7000, slot=150939, height=6696, parent=6999, leader=57)\n", + "Processing block Block(id=8000, slot=172707, height=7644, parent=7999, leader=27)\n", + "Processing block Block(id=9000, slot=194724, height=8608, parent=8999, leader=66)\n", + "Processing block Block(id=1000, slot=21112, height=719, parent=999, leader=70)\n", + "Processing block Block(id=2000, slot=43487, height=1446, parent=1998, leader=27)\n", + "Processing block Block(id=3000, slot=64768, height=2144, parent=2998, leader=74)\n", + "Processing block Block(id=4000, slot=86152, height=2881, parent=3999, leader=4)\n", + "Processing block Block(id=5000, slot=107463, height=3606, parent=4996, leader=53)\n", + "Processing block Block(id=6000, slot=129674, height=4340, parent=5999, leader=8)\n", + "Processing block Block(id=7000, slot=150939, height=5062, parent=6999, leader=57)\n", + "Processing block Block(id=8000, slot=172707, height=5772, parent=7999, leader=27)\n", + "Processing block Block(id=9000, slot=194724, height=6502, parent=8999, leader=66)\n", + "Processing block Block(id=1000, slot=21112, height=579, parent=999, leader=70)\n", + "Processing block Block(id=2000, slot=43487, height=1152, parent=1999, leader=27)\n", + "Processing block Block(id=3000, slot=64768, height=1727, parent=2997, leader=74)\n", + "Processing block Block(id=4000, slot=86152, height=2323, parent=3998, leader=4)\n", + "Processing block Block(id=5000, slot=107463, height=2906, parent=4996, leader=53)\n", + "Processing block Block(id=6000, slot=129674, height=3505, parent=5999, leader=8)\n", + "Processing block Block(id=7000, slot=150939, height=4097, parent=6999, leader=57)\n", + "Processing block Block(id=8000, slot=172707, height=4679, parent=7997, leader=27)\n", + "Processing block Block(id=9000, slot=194724, height=5259, parent=8998, leader=66)\n", + "Processing block Block(id=1000, slot=21112, height=471, parent=999, leader=70)\n", + "Processing block Block(id=2000, slot=43487, height=947, parent=1995, leader=27)\n", + "Processing block Block(id=3000, slot=64768, height=1423, parent=2997, leader=74)\n", + "Processing block Block(id=4000, slot=86152, height=1931, parent=3998, leader=4)\n", + "Processing block Block(id=5000, slot=107463, height=2423, parent=4996, leader=53)\n", + "Processing block Block(id=6000, slot=129674, height=2922, parent=5997, leader=8)\n", + "Processing block Block(id=7000, slot=150939, height=3412, parent=6994, leader=57)\n", + "Processing block Block(id=8000, slot=172707, height=3898, parent=7997, leader=27)\n", + "Processing block Block(id=9000, slot=194724, height=4399, parent=8998, leader=66)\n", + "Processing block Block(id=1000, slot=21112, height=418, parent=999, leader=70)\n", + "Processing block Block(id=2000, slot=43487, height=834, parent=1996, leader=27)\n", + "Processing block Block(id=3000, slot=64768, height=1249, parent=2997, leader=74)\n", + "Processing block Block(id=4000, slot=86152, height=1671, parent=3995, leader=4)\n", + "Processing block Block(id=5000, slot=107463, height=2093, parent=4997, leader=53)\n", + "Processing block Block(id=6000, slot=129674, height=2532, parent=5997, leader=8)\n", + "Processing block Block(id=7000, slot=150939, height=2944, parent=6995, leader=57)\n", + "Processing block Block(id=8000, slot=172707, height=3372, parent=7997, leader=27)\n", + "Processing block Block(id=9000, slot=194724, height=3804, parent=8998, leader=66)\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=200000,\n", + " f=0.05,\n", + " adversary_control = 0.1,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=i, # seconds\n", + " mixnet_delay_var=(i / 5)**2,\n", + " broadcast_delay_mean=1e-6, # second\n", + " pol_proof_time=0, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in np.linspace(1, 30, 5)]\n", + "\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 358, + "id": "b49ce221-5754-4982-a2c1-9fc61e23d0ee", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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MbpmTT4nbyYJluqY/kXv5eWlXn/9dbV582a1Zs0apZRSzz77rDI3N1evvPKK2rhxo1q+fLlq3bq1cnNzU8nJyYY65s6dqwA1cuRI9b///U99++23qkWLFsrBwUGdOnXKUO6pp54y/CF+//331R9//KF+++03VVxcrO6//35lZWWl5s2bpzZt2qTefvtt1apVq2oFS8nJycrV1VU1bdpURUREqPXr16vRo0crT0/PMn+Uv/vuO6XRaNQjjzyiVq9erdauXasGDx6sTE1Njf4wl/65/L//9//Ub7/9pj7++GNla2urAgICVEFBgVJKqf3796sWLVqogIAAtXPnTrVz507DHxb9G9Hb21uNHj1a/e9//1MrVqxQnp6eqlWrVqqoqKjS++rfv79ycXFRX375pYqMjFRr1qxRs2fPVt9///0N34+fn5+aPXu22rx5s/r444+VpaWlUSC0Y8cOpdFo1JNPPqnWr1+v/vzzTxUREaHGjBljKHN9EHPu3Dk1ZcoUBajVq1cbfg4ZGRlKKeNgSSmlXnrpJWVtbW34vt7nn3+uAMOHTE2uc+jQIQWo//73v0Z1/vPPPwpQCxcurPDn/M8//6iePXsqd3d3Q507d+5USimVm5urOnTooGxtbdVHH32kNm3apGbNmqXMzMxUSEhIpb8//b07OzsbgpTffvtNDR48WAHq7bffVu3bt1crVqxQ69evV/fdd5+ytLRUiYmJhvPLCw6+//57BahPP/1UKaULdNzc3FTv3r2NXlNeXl6qWbNmyt/fX3377bfqt99+U0888YQC1NatWw3lkpKSVPPmzZWXl5davHix+v3339U777yjLC0t1bhx45RSSuXl5amNGzcqQI0fP97wMzpz5kyF914f78vyfh6LFi1S77//vvr111/V1q1b1TfffKM6duyo/Pz8DO9TpZQKCAhQPXv2LNPOrl27qq5du1byW9QJDg5Ww4YNUyUlJeV+v6SkxPDznzVrlurQoUOFZSuTnp6uHBwc1KOPPmo4duLEiQpfx6+++qrSaDQqNzdXKaXU+++/r0xNTdVbb72l/vjjD7Vx40a1YMECNWfOnEqvq/971bx5czV06FC1du1atXTpUtWyZUtlb29v9OFfXrD03HPPKUC98MILauPGjeqLL75QLi4uqnnz5kaB61dffaU0Go3q06ePWr58ufr999/V559/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ePq/EWFhYQwcOBBTU1M6dOhQq/84VqS6n5MNomHmld+59KsaSi/tLC08PFzde++9ytbWVllbW6t77rlHjR071milhlK65aAdOnRQFhYWysHBQQ0dOtSwikavvNwZemlpaerpp59Wjo6OysbGRvXr10/9/fffRkukK3Ps2DHVr18/ZWVlpRo1aqTGjx+vfvnll3LzuWzdulUNGjRINWrUSJmbm6umTZuqQYMGqVWrVpX5uezbt08NGTJEabVaZWdnp0aOHKkuXLhgVF9sbKwKDg5WdnZ25eZZKl2vUuWv8rpeXl6emjBhgurQoYMhF4mfn5966623yuQSqsn9XP97vn510bp169TAgQNV06ZNlYWFhXJ1dVUhISFq27ZtVbZ/xowZqkmTJsrExKTCPEulFRcXq+bNmytAvfHGG2W+X9Pr6EVGRipAzZs3r5yfbPnS0tLU448/rhwdHZVGoymTZ2nChAnKw8NDmZmZKS8vLzVjxowa5Vm6nj4H0vUANXnyZMPz638///3vf8v9mZw5c0bZ29urRx55pMprlPf7uHjxopo6daphdVejRo1Uly5d1BtvvGGU0+b3339XAQEBytLSslp5lur6fVneajj9Nezs7JSTk5N64oknVHx8fKUr97y9vVWbNm0qbXtphYWFytfX17D8vqioSD3//POG14qHh4f617/+pQDl4OCgZsyYofLz86ust6IcX/rH9fbu3av69u2rbGxsDL/v69M3zJ8/X/Xo0UM1btxYWVhYKE9PTzV+/HgVGxtbaVtK51maOnWqcnFxUZaWlqpXr15l/t5XlmfJ19dXmZubq8aNG6v/+7//KzfP0vr161Xv3r2Vra2tsrGxUf7+/kar3cr7rEhISFCtW7dW3t7eleYwys/PV88884xycXEx/H6qyrN0/d9o/etsz5495d739X9Hq/s5eTNJsHQX0S/T3759+02/dlVBpLh1vfzyy8ra2lqlpqY2dFPELUifk6uy3Fvl2b59u7K2tlaffPKJ4djly5fVP//8owoKCtSVK1fUqVOnqsyfJsTNIMNwd6gVK1aQmJhI+/btMTEx4e+//+bDDz/kgQceoEePHg3dPHEb+Pvvvzl16hSff/45zz///E2ZhC9uH2fPniUuLo6ZM2fi4eFR4w1Ve/TowS+//MKTTz7Jjz/+yAsvvEDPnj1p0aIFly9f5uDB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for s in range(len(sims)):\n", + " max_depth = advs[s].max()\n", + " count_by_depth = np.zeros(max_depth)\n", + " for d in range(max_depth):\n", + " count_by_depth[d] = (advs[s] == d).sum() / (sims[s].params.SLOTS * sims[s].params.f)\n", + " plt.plot(np.arange(max_depth), count_by_depth, label=f\"E[mixnet_delay]={sims[s].network.mixnet_delay_mean:.1f}s\")\n", + "\n", + "_ = plt.title(f\"reorg depth sensitivity to mixnet delay @ {1/sims[s].params.f:.0f}s block time\")\n", + "_ = plt.xlabel(\"reorg depth\")\n", + "_ = plt.ylabel(\"frequency\")\n", + "_ = plt.legend()\n", + "_ = plt.yscale(\"log\")\n", + "_ = plt.xlim(0, 25)\n", + "_ = plt.ylim(10**-3,10**0)\n", + "# _ = plt." + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "id": "518f75ce-58e1-466c-87b5-57bb59c6dd99", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/5\n", + "SIM=100000/600000, blocks=122\n", + "SIM=200000/600000, blocks=225\n", + "SIM=300000/600000, blocks=326\n", + "SIM=400000/600000, blocks=442\n", + "SIM=500000/600000, blocks=559\n", + "simulating 2/5\n", + "simulating 3/5\n", + "simulating 4/5\n", + "simulating 5/5\n", + "finished simulation, starting analysis\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=int(1000 / i),\n", + " f=i,\n", + " adversary_control = 0.3,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=2, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in np.linspace(1 / 600, 0.05, 5)]\n", + "\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 250, + "id": "070d2a09-a06e-4998-bd67-df3d80c2d482", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for s in range(len(sims)):\n", + " max_depth = advs[s].max()\n", + " count_by_depth = np.zeros(max_depth)\n", + " for d in range(max_depth):\n", + " count_by_depth[d] = (advs[s] == d).sum() / (sims[s].params.SLOTS * sims[s].params.f)\n", + " plt.plot(np.arange(max_depth), count_by_depth, label=f\"E[block_time]={1 / sims[s].params.f:.0f}s\")\n", + "\n", + "_ = plt.title(\"reorg depth sensitivity to block time\")\n", + "_ = plt.xlabel(\"reorg depth\")\n", + "_ = plt.ylabel(\"frequency (per block)\")\n", + "_ = plt.legend()\n", + "_ = plt.yscale(\"log\")" + ] + }, + { + "cell_type": "code", + "execution_count": 335, + "id": "e32a48f7-17c8-47f9-8177-e8ce2117e630", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/4\n", + "SIM=100000/150000, blocks=15539\n", + "simulating 2/4\n", + "SIM=100000/300000, blocks=7454\n", + "SIM=200000/300000, blocks=14913\n", + "simulating 3/4\n", + "SIM=100000/600000, blocks=3648\n", + "SIM=200000/600000, blocks=7251\n", + "SIM=300000/600000, blocks=10815\n", + "SIM=400000/600000, blocks=14462\n", + "SIM=500000/600000, blocks=18038\n", + "simulating 4/4\n", + "SIM=100000/900000, blocks=2368\n", + "SIM=200000/900000, blocks=4745\n", + "SIM=300000/900000, blocks=7051\n", + "SIM=400000/900000, blocks=9482\n", + "SIM=500000/900000, blocks=11815\n", + "SIM=600000/900000, blocks=14139\n", + "SIM=700000/900000, blocks=16637\n", + "SIM=800000/900000, blocks=19004\n", + "finished simulation, starting analysis\n", + "Processing block Block(id=1000, slot=6647, height=331, parent=993, leader=23)\n", + "Processing block Block(id=2000, slot=12979, height=654, parent=1996, leader=72)\n", + "Processing block Block(id=3000, slot=19147, height=970, parent=2996, leader=70)\n", + "Processing block Block(id=4000, slot=25849, height=1301, parent=3994, leader=7)\n", + "Processing block Block(id=5000, slot=32235, height=1620, parent=4995, leader=57)\n", + "Processing block Block(id=6000, slot=38680, height=1938, parent=5996, leader=23)\n", + "Processing block Block(id=7000, slot=45085, height=2265, parent=6997, leader=20)\n", + "Processing block Block(id=8000, slot=51497, height=2591, parent=7999, leader=62)\n", + "Processing block Block(id=9000, slot=57923, height=2912, parent=8997, leader=13)\n", + "Processing block Block(id=10000, slot=64359, height=3240, parent=9995, leader=8)\n", + "Processing block Block(id=11000, slot=70846, height=3554, parent=10996, leader=0)\n", + "Processing block Block(id=12000, slot=77247, height=3868, parent=11997, leader=74)\n", + "Processing block Block(id=13000, slot=83581, height=4187, parent=12996, leader=49)\n", + "Processing block Block(id=14000, slot=90342, height=4523, parent=13997, leader=23)\n", + "Processing block Block(id=15000, slot=96605, height=4847, parent=14995, leader=68)\n", + "Processing block Block(id=16000, slot=103137, height=5175, parent=15994, leader=35)\n", + "Processing block Block(id=17000, slot=109408, height=5485, parent=16996, leader=21)\n", + "Processing block Block(id=18000, slot=116148, height=5814, parent=17994, leader=1)\n", + "Processing block Block(id=19000, slot=122629, height=6133, parent=18996, leader=44)\n", + "Processing block Block(id=20000, slot=128649, height=6436, parent=19992, leader=72)\n", + "Processing block Block(id=21000, slot=134981, height=6766, parent=20992, leader=91)\n", + "Processing block Block(id=22000, slot=141443, height=7084, parent=21993, leader=72)\n", + "Processing block Block(id=23000, slot=147541, height=7391, parent=22996, leader=70)\n", + "Processing block Block(id=1000, slot=13696, height=504, parent=998, leader=19)\n", + "Processing block Block(id=2000, slot=27252, height=994, parent=1996, leader=40)\n", + "Processing block Block(id=3000, slot=40875, height=1486, parent=2995, leader=17)\n", + "Processing block Block(id=4000, slot=53942, height=1974, parent=3997, leader=52)\n", + "Processing block Block(id=5000, slot=66966, height=2468, parent=4997, leader=52)\n", + "Processing block Block(id=6000, slot=80689, height=2983, parent=5998, leader=52)\n", + "Processing block Block(id=7000, slot=94116, height=3481, parent=6998, leader=2)\n", + "Processing block Block(id=8000, slot=107469, height=3988, parent=7999, leader=54)\n", + "Processing block Block(id=9000, slot=120483, height=4498, parent=8997, leader=10)\n", + "Processing block Block(id=10000, slot=134285, height=5011, parent=9998, leader=13)\n", + "Processing block Block(id=11000, slot=147596, height=5514, parent=10998, leader=28)\n", + "Processing block Block(id=12000, slot=160875, height=6009, parent=11997, leader=45)\n", + "Processing block Block(id=13000, slot=174501, height=6513, parent=12998, leader=38)\n", + "Processing block Block(id=14000, slot=187371, height=6986, parent=13996, leader=37)\n", + "Processing block Block(id=15000, slot=201237, height=7499, parent=14997, leader=38)\n", + "Processing block Block(id=16000, slot=214376, height=7992, parent=15995, leader=19)\n", + "Processing block Block(id=17000, slot=227251, height=8483, parent=16996, leader=83)\n", + "Processing block Block(id=18000, slot=240344, height=8983, parent=17995, leader=28)\n", + "Processing block Block(id=19000, slot=254516, height=9501, parent=18999, leader=65)\n", + "Processing block Block(id=20000, slot=268027, height=10003, parent=19998, leader=72)\n", + "Processing block Block(id=21000, slot=281073, height=10489, parent=20998, leader=62)\n", + "Processing block Block(id=22000, slot=294487, height=10990, parent=21998, leader=89)\n", + "Processing block Block(id=1000, slot=28018, height=678, parent=999, leader=13)\n", + "Processing block Block(id=2000, slot=54681, height=1338, parent=1998, leader=37)\n", + "Processing block Block(id=3000, slot=81956, height=2003, parent=2998, leader=2)\n", + "Processing block Block(id=4000, slot=108982, height=2667, parent=3994, leader=68)\n", + "Processing block Block(id=5000, slot=136909, height=3341, parent=4999, leader=18)\n", + "Processing block Block(id=6000, slot=163753, height=4012, parent=5997, leader=13)\n", + "Processing block Block(id=7000, slot=192695, height=4696, parent=6999, leader=5)\n", + "Processing block Block(id=8000, slot=221475, height=5366, parent=7998, leader=6)\n", + "Processing block Block(id=9000, slot=248974, height=6027, parent=8998, leader=17)\n", + "Processing block Block(id=10000, slot=277968, height=6712, parent=9998, leader=42)\n", + "Processing block Block(id=11000, slot=305410, height=7370, parent=10999, leader=18)\n", + "Processing block Block(id=12000, slot=332514, height=8047, parent=11996, leader=13)\n", + "Processing block Block(id=13000, slot=359107, height=8703, parent=12997, leader=93)\n", + "Processing block Block(id=14000, slot=387380, height=9362, parent=13997, leader=28)\n", + "Processing block Block(id=15000, slot=414889, height=10019, parent=14997, leader=5)\n", + "Processing block Block(id=16000, slot=442318, height=10689, parent=15999, leader=31)\n", + "Processing block Block(id=17000, slot=470263, height=11361, parent=16999, leader=0)\n", + "Processing block Block(id=18000, slot=499107, height=12050, parent=17997, leader=56)\n", + "Processing block Block(id=19000, slot=526745, height=12716, parent=18999, leader=44)\n", + "Processing block Block(id=20000, slot=555994, height=13405, parent=19998, leader=60)\n", + "Processing block Block(id=21000, slot=583060, height=14052, parent=20999, leader=48)\n", + "Processing block Block(id=1000, slot=43147, height=756, parent=999, leader=52)\n", + "Processing block Block(id=2000, slot=84935, height=1523, parent=1998, leader=58)\n", + "Processing block Block(id=3000, slot=127256, height=2278, parent=2998, leader=13)\n", + "Processing block Block(id=4000, slot=168543, height=3021, parent=3998, leader=17)\n", + "Processing block Block(id=5000, slot=211612, height=3780, parent=4998, leader=40)\n", + "Processing block Block(id=6000, slot=254555, height=4514, parent=5999, leader=37)\n", + "Processing block Block(id=7000, slot=297433, height=5284, parent=6999, leader=36)\n", + "Processing block Block(id=8000, slot=337608, height=6021, parent=7999, leader=66)\n", + "Processing block Block(id=9000, slot=380081, height=6780, parent=8999, leader=37)\n", + "Processing block Block(id=10000, slot=421828, height=7524, parent=9998, leader=10)\n", + "Processing block Block(id=11000, slot=463502, height=8278, parent=10998, leader=52)\n", + "Processing block Block(id=12000, slot=508372, height=9044, parent=11999, leader=36)\n", + "Processing block Block(id=13000, slot=551404, height=9811, parent=12998, leader=41)\n", + "Processing block Block(id=14000, slot=593238, height=10574, parent=13998, leader=83)\n", + "Processing block Block(id=15000, slot=633488, height=11327, parent=14999, leader=27)\n", + "Processing block Block(id=16000, slot=674922, height=12060, parent=15997, leader=51)\n", + "Processing block Block(id=17000, slot=714860, height=12815, parent=16999, leader=89)\n", + "Processing block Block(id=18000, slot=758063, height=13567, parent=17999, leader=70)\n", + "Processing block Block(id=19000, slot=799852, height=14311, parent=18999, leader=59)\n", + "Processing block Block(id=20000, slot=841279, height=15062, parent=19999, leader=20)\n", + "Processing block Block(id=21000, slot=881497, height=15807, parent=20999, leader=7)\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "mixnet_delay_mean = 10\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=int(30000 * 1 / (1/mixnet_delay_mean / i)),\n", + " f=1/mixnet_delay_mean / i,\n", + " adversary_control = 0.3,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=mixnet_delay_mean, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=2, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in [1/2, 1, 2, 3]]\n", + "\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 344, + "id": "8c716377-7a62-4b2c-9001-910fc07cbb1c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MAX=30\n", + "\n", + "for s in range(len(sims)):\n", + " \n", + " max_depth = advs[s].max() if advs[s].sum() > 0 else 0\n", + " max_depth = min(MAX, max_depth)\n", + " count_by_depth = np.zeros(max_depth)\n", + " for d in range(max_depth):\n", + " count_by_depth[d] = (advs[s] == d).sum() \n", + " block_time = 1 / sims[s].params.f\n", + " expected_blocks = sims[s].params.SLOTS / block_time\n", + " plt.plot(np.arange(max_depth), count_by_depth / expected_blocks, label=f\"{block_time:.0f}s ~ {block_time / sims[s].network.mixnet_delay_mean:.1f}x mix delay\")\n", + "\n", + "_ = plt.title(f\"reorg depth sensitivity to block time @ {mixnet_delay_mean}s mixnet delay\")\n", + "_ = plt.xlabel(\"reorg depth\")\n", + "_ = plt.ylabel(\"frequency\")\n", + "_ = plt.legend()\n", + "_ = plt.yscale(\"log\")\n", + "_ = plt.xlim(0, MAX)\n", + "_ = plt.ylim(10**-4, 4)\n", + "# _ = plt.ylim(0,None)" + ] + }, + { + "cell_type": "code", + "execution_count": 340, + "id": "3ba22221-45d6-4e4c-9cee-9e5cb4855dbe", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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xpAhQ5SWNX/+fCxYsKBUy60pbidmYHFg/uMQ5vZpBmcLQzVXREREVHuo9TlJNZm6n5OUI8/D4PWnceV+KryczbBjYidoaPChkURERMWpEc9Jopez+mgUrtxPhbGuFMuGtGVAIiIiqmAMSTXQxbtP4H/8NgDgy9dawdJYVsIUREREVFYMSTXMs6xczN57GXkCeK19Q/RrY63ukoiIiGolhqQa5vPfIxD3JBPWxjIs4FO1iYiIKg1DUg0SFPEIe87fg0QCfDOsHYx1pSVPREREROXCkFRDPE7PwtyfrwAA/Lwc4OFoWsIURERE9DIYkmoAIQTm/nwFyc+y0czSEO/68qnaRERElY0hqQYIOHcPR28kQltTAytHtIOOlqa6SyIiIqr1GJKqudikZ/j89wgAwPu9mqKZZdU/uJKIiKguYkiqxnLleZi1NxzPc+Rwd6iPya/Yq7skIiKiOoMhqRrzP34H4fdSYCjTwjfD2vGp2kRERFWIIamaunwvBauPRQEAPh/YCg3r6aq5IiIiorqFIakayszOxey94ZDnCbzaxgoD2/Gp2kRERFWNIakaWhwYieikZ7A0kuHLQa0gkfA0GxERUVVjSKpmjt9MxK4zcQCA5UPbop6etporIiIiqpu01F0AKXuRLYehTAtDXBrhFWczdZdDRERUZzEkVTN9WluhjU09mOrzCBIREZE6MSRVQ7yTjYiISP14TRIRERGRCgxJRERERCowJBERERGpwJBEREREpAJDEhEREZEKDElEREREKjAkEREREanAkERERESkAkMSERERkQoMSUREREQqMCQRERERqcCQRERERKQCQxIRERGRClrqLqCmEkIAANLS0tRcCREREZVWwed2wed4cRiSyik5ORkAYGNjo+ZKiIiIqKzS09NhbGxcbB+GpHKqX78+ACAuLq7EQa4L0tLSYGNjg3v37sHIyEjd5agVx0IZx0MZx+P/OBbKOB7KKms8hBBIT0+HtbV1iX0ZkspJQyP/ci5jY2NuzP9iZGTE8fgHx0IZx0MZx+P/OBbKOB7KKmM8SntwgxduExEREanAkERERESkAkNSOeno6GD+/PnQ0dFRdynVAsfj/zgWyjgeyjge/8exUMbxUFYdxkMiSnMPHBEREVEdwyNJRERERCowJBERERGpwJBEREREpAJDEhEREZEKdTYkrVu3Dvb29pDJ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# _ = plt.plot([(1 / s.params.f) / s.network.mixnet_delay_mean for s in sims], [len(s.honest_chain()) / s.params.SLOTS for s in sims])\n", + "_ = plt.plot([s.params.f for s in sims], [len(s.honest_chain(-1, s.params.SLOTS)) / s.params.SLOTS for s in sims])\n", + "\n", + "_ = plt.title(\"chain growth vs. block time multiple of network delay\")\n", + "_ = plt.ylabel(\"blocks/slot\")\n", + "_ = plt.xlabel(\"block time multiple of network delay\")" + ] + }, + { + "cell_type": "code", + "execution_count": 341, + "id": "8bf09039-2bff-40a7-96b4-df55a514c060", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# _ = plt.plot([(1 / s.params.f) / s.network.mixnet_delay_mean for s in sims], [len(s.honest_chain()) / s.params.SLOTS for s in sims])\n", + "_ = plt.plot([s.params.f for s in sims], [len(s.honest_chain(-1, s.params.SLOTS)) / len(s.blocks) for s in sims])\n", + "\n", + "_ = plt.title(\"block efficiency\")\n", + "_ = plt.ylabel(\"% of blocks member of honest chain\")\n", + "_ = plt.xlabel(\"f\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5b360b74-c8f6-4694-b511-7ee4e50275cc", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/cryptarchia/longest-chain-cryptarchia.ipynb b/cryptarchia/longest-chain-cryptarchia.ipynb new file mode 100644 index 0000000..b61b5f6 --- /dev/null +++ b/cryptarchia/longest-chain-cryptarchia.ipynb @@ -0,0 +1,965 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 31, + "id": "ad657d5a-bd36-4329-b134-6745daff7ae9", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass\n", + "from pyvis.network import Network\n", + "from pyvis.options import Layout" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "a9e0b910-c633-4dbe-827c-4ddb804f7a9a", + "metadata": {}, + "outputs": [], + "source": [ + "def phi(f, alpha):\n", + " return 1 - (1-f)**alpha" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "aa0aadce-a0be-4873-ba23-293be74db313", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Block:\n", + " id: int\n", + " slot: int\n", + " height: int\n", + " parent: int\n", + " leader: int" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "a538cf45-d551-4603-b484-dbbc3f3d0a73", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class NetworkParams:\n", + " mixnet_delay_mean: int # seconds\n", + " mixnet_delay_var: int\n", + " broadcast_delay_mean: int # second\n", + " pol_proof_time: int # seconds\n", + " no_network_delay: bool = False\n", + "\n", + " def sample_mixnet_delay(self):\n", + " scale = self.mixnet_delay_var / self.mixnet_delay_mean\n", + " shape = self.mixnet_delay_mean / scale\n", + " return np.random.gamma(shape=shape, scale=scale)\n", + " \n", + " def sample_broadcast_delay(self, blocks):\n", + " return np.random.exponential(self.broadcast_delay_mean, size=blocks.shape)\n", + "\n", + " def block_arrival_slot(self, block_slot):\n", + " if self.no_network_delay:\n", + " return block_slot\n", + " return self.pol_proof_time + self.sample_mixnet_delay() + self.sample_broadcast_delay(block_slot) + block_slot\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "24779de7-284f-4200-9e4a-d2aa6e1b823b", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Params:\n", + " SLOTS: int\n", + " f: float\n", + " honest_stake: np.array\n", + " adversary_control: float\n", + "\n", + " @property\n", + " def N(self):\n", + " return len(self.honest_stake) + 1\n", + "\n", + " @property\n", + " def stake(self):\n", + " return np.append(self.honest_stake, self.honest_stake.sum() / (1/self.adversary_control - 1))\n", + " \n", + " @property\n", + " def relative_stake(self):\n", + " return self.stake / self.stake.sum()\n", + "\n", + " def slot_prob(self):\n", + " return phi(self.f, self.relative_stake)" + ] + }, + { + "cell_type": "code", + "execution_count": 503, + "id": "a90495a8-fcda-4e47-92b4-cc5ceaa9ff9c", + "metadata": {}, + "outputs": [], + "source": [ + "class Sim:\n", + " def __init__(self, params: Params, network: NetworkParams):\n", + " self.params = params\n", + " self.network = network\n", + " self.leaders = np.zeros((params.N, params.SLOTS), dtype=np.int64)\n", + " self.blocks = []\n", + " self.block_slots = np.array([], dtype=np.int64)\n", + " self.block_heights = np.array([], dtype=np.int64)\n", + " self.block_arrivals = np.zeros(shape=(params.N, 0), dtype=np.int64) # arrival time to each leader for each block\n", + "\n", + " def emit_block(self, leader, slot, height, parent):\n", + " assert type(leader) in [int, np.int64]\n", + " assert type(slot) in [int, np.int64]\n", + " assert type(height) in [int, np.int64]\n", + " assert type(parent) in [int, np.int64]\n", + "\n", + " block = Block(\n", + " id=len(self.blocks),\n", + " slot=slot,\n", + " height=height,\n", + " parent=parent,\n", + " leader=leader,\n", + " )\n", + " self.blocks.append(block)\n", + " self.block_slots = np.append(self.block_slots, block.slot)\n", + " self.block_heights = np.append(self.block_heights, block.height)\n", + " \n", + " # decide when this block will arrive at each node\n", + " new_block_arrival_by_node = self.network.block_arrival_slot(np.repeat(block.slot, self.params.N))\n", + "\n", + " if parent != -1:\n", + " # the new block cannot arrive before it's parent\n", + " parent_arrival_by_node = self.block_arrivals[:,parent]\n", + " new_block_arrival_by_node = np.maximum(new_block_arrival_by_node, parent_arrival_by_node)\n", + " \n", + " self.block_arrivals = np.append(self.block_arrivals, new_block_arrival_by_node.reshape((self.params.N, 1)), axis=1)\n", + "\n", + " return block.id\n", + "\n", + " def emit_leader_block(self, leader, slot):\n", + " assert type(leader) in [int, np.int64], type(leader)\n", + " assert isinstance(slot, int)\n", + "\n", + " parent = self.fork_choice(leader, slot)\n", + " return self.emit_block(\n", + " leader,\n", + " slot,\n", + " height=self.blocks[parent].height + 1,\n", + " parent=parent,\n", + " )\n", + "\n", + " def fork_choice(self, leader, slot):\n", + " assert type(leader) in [int, np.int64], type(leader)\n", + " assert isinstance(slot, int)\n", + " arrived_blocks = self.block_arrivals[leader] <= slot\n", + " return (self.block_heights * arrived_blocks).argmax()\n", + "\n", + " def plot_spacetime_diagram(self, MAX_SLOT=1000):\n", + " alpha_index = sorted(range(self.params.N), key=lambda n: self.params.relative_stake[n])\n", + " nodes = [f\"$N_{n}$($\\\\alpha$={self.params.relative_stake[n]:.2f})\" for n in alpha_index]\n", + " messages = [(nodes[alpha_index.index(self.blocks[b].leader)], nodes[alpha_index.index(node)], self.blocks[b].slot, arrival_slot, f\"$B_{{{b}}}$\") for b, arrival_slots in enumerate(self.block_arrivals.T) for node, arrival_slot in enumerate(arrival_slots) if arrival_slot < MAX_SLOT]\n", + " \n", + " fig, ax = plt.subplots(figsize=(8,4))\n", + " \n", + " # Plot vertical lines for each node\n", + " max_slot = max(s for _,_,start_t, end_t,_ in messages for s in [start_t, end_t])\n", + " for i, node in enumerate(nodes):\n", + " ax.plot([i, i], [0, max_slot], 'k-', linewidth=0.1)\n", + " ax.text(i, max_slot + 30 * (0 if i % 2 == 0 else 1), node, ha='center', va='bottom')\n", + " \n", + " # Plot messages\n", + " colors = plt.cm.rainbow(np.linspace(0, 1, len(messages)))\n", + " for (start, end, start_time, end_time, label), color in zip(messages, colors):\n", + " start_idx = nodes.index(start)\n", + " end_idx = nodes.index(end)\n", + " ax.annotate('', xy=(end_idx, end_time), xytext=(start_idx, start_time),\n", + " arrowprops=dict(arrowstyle='->', color=\"black\", lw=0.5))\n", + " placement = 0\n", + " mid_x = start_idx * (1 - placement) + end_idx * placement\n", + " mid_y = start_time * (1 - placement) + end_time * placement\n", + " ax.text(mid_x, mid_y, label, ha='center', va='center', \n", + " bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))\n", + " \n", + " ax.set_xlim(-1, len(nodes))\n", + " ax.set_ylim(0, max_slot + 70)\n", + " ax.set_xticks(range(len(nodes)))\n", + " ax.set_xticklabels([])\n", + " # ax.set_yticks([])\n", + " ax.set_title('Space-Time Diagram')\n", + " ax.set_ylabel('Slot')\n", + " \n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + " def honest_chain(self):\n", + " chain_head = max(self.blocks, key=lambda b: b.height)\n", + " honest_chain = {chain_head.id}\n", + " \n", + " curr_block = chain_head\n", + " while curr_block.parent >= 0:\n", + " honest_chain.add(curr_block.parent)\n", + " curr_block = self.blocks[curr_block.parent]\n", + " return sorted(honest_chain, key=lambda b: self.blocks[b].height)\n", + "\n", + " def visualize_chain(self):\n", + " honest_chain = self.honest_chain()\n", + " print(\"Honest chain length\", len(honest_chain))\n", + " honest_chain_set = set(honest_chain)\n", + " \n", + " layout = Layout()\n", + " layout.hierachical = True\n", + " \n", + " G = Network(width=1600, height=800, notebook=True, directed=True, layout=layout, cdn_resources='in_line')\n", + "\n", + " for block in self.blocks:\n", + " # level = slot\n", + " level = block.height\n", + " color = \"lightgrey\"\n", + " if block.id in honest_chain_set:\n", + " color = \"orange\"\n", + "\n", + " G.add_node(int(block.id), level=level, color=color, label=f\"{block.id},{block.slot}\")\n", + " if block.parent >= 0:\n", + " G.add_edge(int(block.id), int(block.parent), width=2, color=color)\n", + " \n", + " return G.show(\"chain.html\")\n", + "\n", + " def run(self, seed=None):\n", + " if seed is not None:\n", + " np.random.seed(seed)\n", + "\n", + " # emit the genesis block\n", + " self.emit_block(\n", + " leader=0,\n", + " slot=0,\n", + " height=1,\n", + " parent=-1,\n", + " )\n", + " self.block_arrivals[:,:] = 0 # all nodes see the genesis block\n", + " \n", + " for s in range(1, self.params.SLOTS):\n", + " # the adversary will not participate in the simulation\n", + " # (implemented by never delivering blocks to the adversary)\n", + " self.block_arrivals[-1,:] = self.params.SLOTS\n", + "\n", + " self.leaders[:,s] = np.random.random(size=self.params.N) < self.params.slot_prob()\n", + "\n", + " for leader in np.nonzero(self.leaders[:,s])[0]:\n", + " if self.params.adversary_control is not None and leader == self.params.N - 1:\n", + " continue\n", + " self.emit_leader_block(leader, s)\n", + "\n", + " def adverserial_analysis(self, should_plot=True, seed=0):\n", + " np.random.seed(seed)\n", + "\n", + " adversary = self.params.N-1 # adversary is always the last node in our simulations\n", + "\n", + " self.block_arrivals[adversary,:] = self.block_slots # we will say the adversary receives the blocks immidiately\n", + "\n", + " honest_height_by_slot = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " for block in self.blocks:\n", + " block_height = np.zeros(self.params.SLOTS, dtype=np.int64) + block.height\n", + " block_height[:block.slot] = 0\n", + " honest_height_by_slot = np.maximum(block_height, honest_height_by_slot)\n", + " \n", + " for slot in range(1, self.params.SLOTS):\n", + " if honest_height_by_slot[slot] == 0:\n", + " honest_height_by_slot[slot] = honest_height_by_slot[slot-1]\n", + "\n", + " \n", + " honest_chain = self.honest_chain()\n", + " \n", + " reorg_depths = np.array([], dtype=np.int64)\n", + "\n", + " if should_plot:\n", + " plt.figure(figsize=(20, 6))\n", + " ax = plt.subplot(121)\n", + " \n", + " adversary_active_slots = np.random.random(size=self.params.SLOTS) < phi(self.params.f, self.params.relative_stake[adversary])\n", + " all_active_slots = (self.leaders.sum(axis=0) + adversary_active_slots) > 0\n", + "\n", + " for b in range(len(self.blocks)):\n", + " if block.id > 0 and block.id % 1000 == 0:\n", + " print(\"Processing block\", block)\n", + " block = self.blocks[b]\n", + " \n", + " nearest_honest_block = block\n", + " while nearest_honest_block.height >= len(honest_chain) or honest_chain[nearest_honest_block.height-1] != nearest_honest_block.id:\n", + " nearest_honest_block = self.blocks[nearest_honest_block.parent]\n", + "\n", + " remaining_slots = adversary_active_slots[block.slot+1:]\n", + " cumulative_rel_height = remaining_slots.cumsum()\n", + "\n", + " adverserial_height_by_slot = block.height + cumulative_rel_height\n", + "\n", + " honest_height_by_slot_lookahead = honest_height_by_slot[block.slot + 1:]\n", + " \n", + " adverserial_wins = adverserial_height_by_slot > honest_height_by_slot_lookahead\n", + " \n", + " reorg_events = adverserial_wins & all_active_slots[block.slot+1:]\n", + " reorg_depths = np.append(reorg_depths, honest_height_by_slot_lookahead[reorg_events] - nearest_honest_block.height)\n", + "\n", + " if should_plot:\n", + " if reorg_events.sum() > 0:\n", + " first_slot = block.slot+1\n", + " last_slot = first_slot + np.nonzero(reorg_events)[0].max() + 1\n", + "\n", + " ax.plot(np.arange(first_slot, last_slot), adverserial_height_by_slot[:last_slot-first_slot]-honest_height_by_slot[first_slot:last_slot], lw=\"1\")\n", + " for event in np.nonzero(reorg_events)[0]:\n", + " plt.axvline(x = event + block.slot + 1, ymin = 0, ymax = 1, color ='red', lw=0.01)\n", + "\n", + " \n", + " if should_plot:\n", + " ax.plot(np.zeros(self.params.SLOTS), color=\"k\", label=f\"honest chain\")\n", + " _ = ax.set_title(f\"max chain weight with adversery controlling {self.params.relative_stake[adversary] * 100:.0f}% of stake\")\n", + " _ = ax.set_ylabel(\"weight advantage\")\n", + " _ = ax.set_xlabel(\"slot\")\n", + " _ = ax.legend()\n", + "\n", + " ax = plt.subplot(122)\n", + " _ = ax.grid(True)\n", + " _ = ax.hist(reorg_depths, density=False, bins=100)\n", + " _ = ax.set_title(f\"re-org depth with {self.params.relative_stake[adversary] * 100:.0f}% adversary\")\n", + " _ = ax.set_xlabel(\"re-org depth\")\n", + " _ = ax.set_ylabel(\"frequency\")\n", + " return reorg_depths" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "id": "d7eef71a-aa3c-49df-a711-9c9f7f5cb4a8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "avg blocks per slot 0.04708\n", + "Number of blocks 4708\n", + "longest chain 2345\n", + "CPU times: user 6.42 s, sys: 7.49 s, total: 13.9 s\n", + "Wall time: 14.7 s\n" + ] + } + ], + "source": [ + "%%time\n", + "np.random.seed(0)\n", + "sim = Sim(\n", + " params=Params(\n", + " SLOTS=100000,\n", + " f=0.05,\n", + " adversary_control = 0.1,\n", + " honest_stake = np.random.pareto(10, 1000)\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=10, # seconds\n", + " no_network_delay=False\n", + " )\n", + ")\n", + "sim.run(seed=5)\n", + "\n", + "n_blocks_per_slot = len(sim.blocks) / sim.params.SLOTS\n", + "print(\"avg blocks per slot\", n_blocks_per_slot)\n", + "print(\"Number of blocks\", len(sim.blocks))\n", + "print(\"longest chain\", max(b.height for b in sim.blocks))" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "id": "aabccc4e-8f47-403e-b7f9-7508e93ec18b", + "metadata": {}, + "outputs": [], + "source": [ + "#sim.visualize_chain()" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "id": "0b5b4d8d-85af-4252-b12a-f27fef099d29", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 2.95 s, sys: 287 ms, total: 3.24 s\n", + "Wall time: 3.28 s\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABlMAAAIhCAYAAADackygAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADvXklEQVR4nOzdd3xT1fsH8M9Nm6RNF23phNKyZ9lDEBmyZSgIKKCAoKK4EPihiEoR2QooKC5kL1FABUEKCHxZMgSUvTeFQgvdacb5/RFumrTpbpOm/bx9VZqbc+997rmjN+fJOVcSQggQERERERERERERERGRTQpHB0BERERERERERERERFSSMZlCRERERERERERERESUAyZTiIiIiIiIiIiIiIiIcsBkChERERERERERERERUQ6YTCEiIiIiIiIiIiIiIsoBkylEREREREREREREREQ5YDKFiIiIiIiIiIiIiIgoB0ymEBERERERERERERER5YDJFCIiIiIiIiIiIiIiohwwmULkAO3atUO9evWKdJkREREYOnRokS6zOEVFRUGSpALNu3jxYkiShMOHD+da9uuvv8bixYsLtJ682rlzJyRJws6dO83T/vjjD0RFRdksL0kS3nzzzWKNKSeSJGUbGznOypUrMXfu3GJZtnzOXLlyxTxt6NChiIiIsCrnyOvIxo0bMXjwYERGRkKpVOZ4fdDpdJg0aRIiIiKgVqtRq1YtzJs3L0u53bt3o1GjRvDy8kKbNm1w6tSpLGXeeOMNtG3bFkKIIt0eAJg3bx6qVasGlUoFSZLw4MGDAi+rKI6PiIgI9OjRo1DLICIiIioIe9xn7tu3D1FRUTbvuRxxH2TrHjy7e7orV65AkiR89tlnBV7fhx9+iB49eqBChQqQJCnH+r506RL69OmDcuXKwdPTE506dcI///xjVUYIgYkTJ6JChQoIDAzE22+/Da1Wa1Xm4cOHCA0NxY8//ljguPPL2do+iKh0YTKFqJRYv349PvroI0eHkWcvv/wy9u/fX+zrsUcypXHjxti/fz8aN25snvbHH39g0qRJxbpeKl2KM5mSV468jqxfvx4HDhxAnTp10KBBgxzLjhw5EtOmTcMbb7yBP//8E71798Y777yDqVOnmss8ePAAvXv3RrNmzbBu3Tr4+PigT58+MBgM5jIHDhzAjz/+iG+//bbAyd3sHDt2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hcVkChERERERERERERERUQ6YTCEiIiqFhOToCIiIiIiIiIiISg8mU4goexwdiEohy6G9RCk+yKVHmyaE0bGBEBERERERERGVAkymEBERERERERERERER5YDJFCIiKrsMZeEB9OyZQkRERERERERUWEymEBERERERERERERER5YDJFCIiKltE6X1OChERERERERERFQ8mU4goe2xzplJOiNI/zBfPYyIiIiIiIiKiwmMyhYiIiIiIiIiIiIiIKAdMphAREREREREREREREeWAyRQiIipTLIf2MhpL/zBfwmh0dAhERERERERERE6PyRQiIiIiIiIiIiIiIqIcMJlCRERERERERERERESUAyZTiCh7wtEBEBUvYSz9B7kQHOaLiIiIiIiIiKiwmEwhIqIyRYjSn0AhIiIiIiIiIqKixWQKERERERERERERERFRDphMIaJsCY7zRaWcEAZHh1DsBDjMFxERERERERFRYTGZQkRERERERERERERElAMmU4iIqEwRxoyeGmWiZ4qRPcyIiIiIiIiIiAqLyRQiIiIiIiIiIiIiIqIcMJlCRERERERERERERESUAyZTiCh7HB2ISjtj6X84uxClfxuJiIiIiIiIiIobkylEREREREREREREREQ5YDKFiIjKFFEGeqMQEREREREREVHRYjKFiIjKrDIxBJbgeH1ERERERERERIXFZAoREREREREREREREVEOmEwhIiIiIiIiIiIiIiLKAZMpRJQ9jg5EpZCwOLDLwvNTBIf5IiIiIiIiIiIqNCZTiIiIiIiIiIiIiIiIcsBkChERERERUQlw8+ZNvPDCC/D394dGo0HDhg1x5MgR8/tCCERFRSE0NBTu7u5o164dTp48abUMrVaLt956C+XLl4eHhwd69eqFGzdu2HtTiIiIiIhKHSZTiIiozBLC4OgQip0QpX8oMyKi0iA+Ph6PP/44lEolNm/ejFOnTuHzzz9HuXLlzGVmzpyJ2bNnY/78+Th06BCCg4PRqVMnJCYmmsuMGjUK69evx+rVq7Fnzx4kJSWhR48eMBhK/988IiIiIqLi5OroAIiIiOyqDCRQiIjI+cyYMQNhYWFYtGiReVpERIT5dyEE5s6diwkTJqBPnz4AgCVLliAoKAgrV67EiBEj8PDhQyxcuBDLli1Dx44dAQDLly9HWFgYtm3bhi5duth1m4iI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VXKFiIiISgD2viEiIiIiIiIiKrR8J1OaNWuGTZs2mV/LCZTvv/8eLVu2LLrIyClxyByUzIZLYY/npRA5H1EWzo2SeE0iIiIiIiIiInIy+R7ma9q0aejatStOnToFvV6PL774AidPnsT+/fuxa9eu4oix1DI6tIGLvYiKVmlrrOTxQeTMykSSiIiIiIiIiIjIjvLdM6VVq1bYu3cvUlJSULVqVWzduhVBQUHYv38/mjRpUhwxEpEj5SuvwiQMOQGLISmFsSwcs6Ut2UtEREREREREZH/57pkCAJGRkViyZElRx0JUICVvaLGSFo9plB+BAn5TPV+bU/K2nSgnJe/6UfTKwjYSERERERERERW3fCdTEhISbE6XJAlqtRoqlarQQZEdSHDydu+y8G1yIiIiIiIiIiIiIioJ8p1MKVeunPmh87ZUrFgRQ4cOxcSJE6FQ5HsUMSIiIiIiIiIiIiIiohIl38mUxYsXY8KECRg6dCiaN28OIQQOHTqEJUuW4MMPP0RsbCw+++wzqNVqfPDBB8URc+lRCodeccxwMiWgHi23u7TtV3YColLG8gw1lLbz1ZYysIlERERERERERMUt38mUJUuW4PPPP0f//v3N03r16oXIyEh8++232L59OypVqoQpU6YwmVKisYW8LBFGtqYSlVUFfl4SERERERERERGZ5Xscrv3796NRo0ZZpjdq1Aj79+8HALRu3RrXrl0rfHREREREREREREREREQOlu9kSsWKFbFw4cIs0xcuXIiwsDAAwP379+Hr61v46MoIwTFYShnuTyKnIcpCrw1ek4iIiIiIiIiICivfw3x99tln6NevHzZv3oxmzZpBkiQcOnQIZ86cwc8//wwAOHToEJ577rkiD5aIiKiwRBkY5lCUiSQREREREREREZH95LtnSq9evXDu3Dk89dRTiIuLw71799CtWzecOXMGPXr0AAC8/vrrmD17dpEHu3v3bvTs2ROhoaGQJAkbNmwo8nWUHcXTmOiIB9A75qH3OShp8QAABISRjatEmQlDGTgvSuIliYiIiIiIiIjIyeS7ZwoAhIeHY9q0aUUdS66Sk5PRoEEDvPTSS3j22Wftvv6iZuRDwUsR59mXpf87+URkpUQmeImIiIiIiIiInEuBkikAkJKSgmvXriE9Pd1qev369QsdVHa6deuGbt26FdvyiYiIiIiIiIiI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375dl112mTIzM1VQUKAJEybI7XZ3y76jtWnTpskwDE2cODG0jPZPbjt37tSNN96onj17KiMjQ6eccoqWLVsWep72T15er1c/+9nPNGDAAKWnp+voo4/WY489Jr/fHypD+yePjz76SJdddpmKi4tlGIbeeeedsOfjra1XrVqlUaNGKT09XUcccYQee+wxmaYZsfoAYo3vTdFxuHMfIqcj3ysRGS+99JJOOukk5eTkKCcnRyNHjtT7778f67BSRlvfmREZU6ZMkWEYYf+KiopiHVZSO1x/ACKjf//+rY5twzB01113xTq0QyKZEgVvvfWWJk6cqEceeUTLly/Xd77zHV100UXavn17rENDOxYuXKi77rpLn332mebPny+v16tx48apvr4+VOapp57S9OnT9cILL2jJkiUqKirS2LFjVVtbGyozceJEvf3225o9e7YWLVqkuro6XXrppfL5fKEy119/vVasWKE5c+Zozpw5WrFihW666abQ8z6fT5dcconq6+u1aNEizZ49W3//+981efLk6FRGiluyZIleeeUVnXTSSWHLaf/kVVlZqbPPPlt2u13vv/++1q5dq2eeeUY9evQIlaH9k9evf/1r/f73v9cLL7ygdevW6amnntJvfvMbzZgxI1SG9k8e9fX1Ovnkk/XCCy+0+Xw8tXVNTY3Gjh2r4uJiLVmyRDNmzNDTTz+t6dOnd0PNANHH96boOdy5D5HTke+ViIy+ffvqySef1NKlS7V06VJ997vf1RVXXNHqIghE3qG+MyNyTjzxRJWVlYX+rVq1KtYhJa2O9AcgMpYsWRJ2XM+fP1+SdPXVV8c4snaY6HYjRoww77jjjrBlxx13nPnQQw/FKCJ0RUVFhSnJXLhwoWmapun3+82ioiLzySefDJVpamoyc3Nzzd///vemaZpmVVWVabfbzdmzZ4fK7Ny507RYLOacOXNM0zTNtWvXmpLMzz77LFTm008/NSWZX3/9tWmapvnee++ZFovF3LlzZ6jMX/7yF9PpdJrV1dXdt9Mwa2trzUGDBpnz5883R40aZd57772madL+ye7BBx80zznnnEM+T/snt0suucS89dZbw5ZdddVV5o033miaJu2fzCSZb7/9duhxvLX1iy++aObm5ppNTU2hMtOmTTOLi4tNv98fwZoAYoPvTbFx8LkP3evg75XoXnl5eearr74a6zCS2qG+MyNyHn30UfPkk0+OdRgp43D9Aeg+9957r3nMMcfE9XcbRqZ0M7fbrWXLlmncuHFhy8eNG6fFixfHKCp0RXV1tSQpPz9fkrRlyxaVl5eHta3T6dSoUaNCbbts2TJ5PJ6wMsXFxRoyZEiozKeffqrc3FydccYZoTJnnnmmcnNzw8oMGTJExcXFoTIXXHCBXC4Xwwy72V133aVLLrlE559/fthy2j+5vfvuuxo+fLiuvvpqFRYW6tRTT9Uf/vCH0PO0f3I755xz9J///EcbNmyQJH311VdatGiRLr74Ykm0fyqJt7b+9NNPNWrUKDmdzrAyu3bt0tatWyNfAUAU8b0JqeLg75XoHj6fT7Nnz1Z9fb1GjhwZ63CS2qG+MyOyNm7cqOLiYg0YMEDXXnutvvnmm1iHlLQO1x+A7uF2u/XGG2/o1ltvlWEYsQ7nkGyxDiDZ7d27Vz6fT7179w5b3rt3b5WXl8coKnSWaZqaNGmSzjnnHA0ZMkSSQu3XVttu27YtVMbhcCgvL69VmeD65eXlKiwsbLXNwsLCsDIHbycvL08Oh4PjqBvNnj1bX375pZYsWdLqOdo/uX3zzTd66aWXNGnSJP30pz/VF198oQkTJsjpdOqHP/wh7Z/kHnzwQVVXV+u4446T1WqVz+fT448/ruuuu04S7/9UEm9tXV5erv79+7faTvC5AQMGdGU3gbjA9yakgra+VyKyVq1apZEjR6qpqUlZWVl6++23dcIJJ8Q6rKTV3ndmRM4ZZ5yhP/7xjxo8eLB2796tX/3qVzrrrLO0Zs0a9ezZM9bhJZ3D9Qege7zzzjuqqqrSLbfcEutQ2kUyJUoOzqiZphnXWTaEu/vuu7Vy5UotWrSo1XNdaduDy7RVvitlEDk7duzQvffeq3nz5iktLe2Q5Wj/5OT3+zV8+HA98cQTkqRTTz1Va9as0UsvvRT2xxPtn5zeeustvfHGG/rzn/+sE088UStWrNDEiRNVXFysm2++OVSO9k8d8dTWbcVyqHWBRMT3JiSz9r5XIjKOPfZYrVixQlVVVfr73/+um2++WQsXLiSh0g06+p0Z395FF10U+n3o0KEaOXKkjjnmGM2aNUuTJk2KYWTJqaP9AYis1157TRdddFHYSP14xDRf3aygoEBWq7XV1VQVFRWtrrpCfLrnnnv07rvv6sMPP1Tfvn1Dy4uKiiSp3bYtKiqS2+1WZWVlu2V2797dart79uwJK3PwdiorK+XxeDiOusmyZctUUVGhYcOGyWazyWazaeHChfrtb38rm80WdiVwS7R/cujTp0+rL1zHH3986Aa4vP+T2/3336+HHnpI1157rYYOHaqbbrpJP/nJTzRt2jRJtH8qibe2bqtMRUWFpNajZ4BEw/cmJLtDfa9EZDkcDg0cOFDDhw/XtGnTdPLJJ+v555+PdVhJ6XDfmX0+X6xDTFqZmZkaOnSoNm7cGOtQktLh+gMQedu2bdMHH3yg2267LdahHBbJlG7mcDg0bNgwzZ8/P2z5/PnzddZZZ8UoKnSEaZq6++67VVJSov/+97+tps4YMGCAioqKwtrW7XZr4cKFobYdNmyY7HZ7WJmysjKtXr06VGbkyJGqrq7WF198ESrz+eefq7q6OqzM6tWrVVZWFiozb948OZ1ODRs2LPI7D40ZM0arVq3SihUrQv+GDx+uG264QStWrNDRRx9N+yexs88+W+vXrw9btmHDBh111FGSeP8nu4aGBlks4X8iWa1W+f1+SbR/Kom3th45cqQ++ugjud3usDLFxcWtpv8CEg3fm5CsDve9Et3LNE25XK5Yh5GUDved2Wq1xjrEpOVyubRu3Tr16dMn1qEkpcP1ByDyXn/9dRUWFuqSSy6JdSiHF5373Ke22bNnm3a73XzttdfMtWvXmhMnTjQzMzPNrVu3xjo0tOPHP/6xmZubay5YsMAsKysL/WtoaAiVefLJJ83c3FyzpKTEXLVqlXndddeZffr0MWtqakJl7rjjDrNv377mBx98YH755Zfmd7/7XfPkk082vV5vqMyFF15onnTSSeann35qfvrpp+bQoUPNSy+9NPS81+s1hwwZYo4ZM8b88ssvzQ8++MDs27eveffdd0enMmCapmmOGjXKvPfee0OPaf/k9cUXX5g2m818/PHHzY0bN5pvvvmmmZGRYb7xxhuhMrR/8rr55pvNI444wvzXv/5lbtmyxSwpKTELCgrMBx54IFSG9k8etbW15vLly83ly5ebkszp06eby5cvN7dt22aaZny1dVVVldm7d2/zuuuuM1etWmWWlJSYOTk55tNPPx2FmgK6H9+boudw5z5ETke+VyIyHn74YfOjjz4yt2zZYq5cudL86U9/alosFnPevHmxDi1lHPydGZExefJkc8GCBeY333xjfvbZZ+all15qZmdn8/nYTTrSH4DI8fl85pFHHmk++OCDsQ6lQ0imRMnvfvc786ijjjIdDod52mmnmQsXLox1SDgMSW3+e/3110Nl/H6/+eijj5pFRUWm0+k0zz33XHPVqlVhr9PY2GjefffdZn5+vpmenm5eeuml5vbt28PK7Nu3z7zhhhvM7OxsMzs727zhhhvMysrKsDLbtm0zL7nkEjM9Pd3Mz8837777brOpqam7dh9tOPgPQ9o/uf3zn/80hwwZYjqdTvO4444zX3nllbDnaf/kVVNTY957773mkUceaaalpZlHH320+cgjj5gulytUhvZPHh9++GGbn/c333yzaZrx19YrV640v/Od75hOp9MsKioyp0yZYvr9/ojXCxArfG+KjsOd+xA5Hfleici49dZbQ+ePXr16mWPGjCGREmUkU7rHD37wA7NPnz6m3W43i4uLzauuuspcs2ZNrMNKaofrD0DkzJ0715Rkrl+/PtahdIhhmgfuWgkAAAAAAAAAAIBWuGcKAAAAAAAAAABAO0imAAAAAAAAAAAAtINkCgAAAAAAAAAAQDtIpgAAAAAAAAAAALSDZAoAAAAAAAAAAEA7SKYAAAAAAAAAAAC0g2QKAAAAAAAAAABAO0imAAAAAAAAAAAAtINkCgAg4m655RZdeeWVsQ4DAAAAAJLKzJkz1aNHj6hsi+91ABCOZAoAIOYWLFggwzBUVVUV61AAAAAAIKVs3bpVhmFoxYoVsQ4FAOIayRQAAAAAAACkDLfbHdXteTyeqG4PANA9SKYAALrsb3/7m4YOHar09HT17NlT559/vurr61uVc7lcmjBhggoLC5WWlqZzzjlHS5YskRS4Cuq8886TJOXl5ckwDN1yyy3R3A0AAAAASWz06NG6++67NWnSJBUUFGjs2LGSpLVr1+riiy9WVlaWevfurZtuukl79+5t97X8fr8ee+wx9e3bV06nU6eccormzJkTej44yuP//b//p9GjRystLU1vvPGGvF6vJkyYoB49eqhnz5568MEHdfPNNx92Gq2ZM2fqyCOPVEZGhr73ve9p3759rcr885//1LBhw5SWlqajjz5aU6dOldfrDT1vGIZeeuklXXTRRUpPT9eAAQP017/+NfT8gAEDJEmnnnqqDMPQ6NGjw17/6aefVp8+fdSzZ0/dddddJIcApCySKQCALikrK9N1112nW2+9VevWrdOCBQt01VVXyTTNVmUfeOAB/f3vf9esWbP05ZdfauDAgbrgggu0f/9+9evXT3//+98lSevXr1dZWZmef/75aO8OAAAAgCQ2a9Ys2Ww2ffLJJ3r55ZdVVlamUaNG6ZRTTtHSpUs1Z84c7d69W9dcc027r/P888/rmWee0dNPP62VK1fqggsu0OWXX66NGzeGlXvwwQc1YcIErVu3ThdccIF+/etf680339Trr7+uTz75RDU1NXrnnXfa3dbnn3+uW2+9VXfeeadWrFih8847T7/61a/CysydO1c33nijJkyYoLVr1+rll1/WzJkz9fjjj4eV+/nPf67vf//7+uqrr3TjjTfquuuu07p16yRJX3zxhSTpgw8+UFlZmUpKSkLrffjhh9q8ebM+/PBDzZo1SzNnztTMmTPbjRsAkpVhttXrBQDAYXz55ZcaNmyYtm7dqqOOOirsuVtuuUVVVVV65513VF9fr7y8PM2cOVPXX3+9pMAw9/79+2vixIm6//77tWDBAp133nmqrKyM2s0UAQAAAKSG0aNHq7q6WsuXLw8t+8UvfqHPP/9cc+fODS0rLS1Vv379tH79eg0ePLjN1zriiCN011136ac//Wlo2YgRI3T66afrd7/7nbZu3aoBAwboueee07333hsqU1RUpPvuu0/33XefJMnn8+noo4/WqaeeesikyvXXX6/Kykq9//77oWXXXnut5syZE7rf5LnnnquLLrpIDz/8cKjMG2+8oQceeEC7du2SFBiZcscdd+ill14KlTnzzDN12mmn6cUXXwzFvHz5cp1yyimhMrfccosWLFigzZs3y2q1SpKuueYaWSwWzZ49u82YASCZMTIFANAlJ598ssaMGaOhQ4fq6quv1h/+8AdVVla2Krd582Z5PB6dffbZoWV2u10jRowIXQkFAAAAAN1p+PDhYY+XLVumDz/8UFlZWaF/xx13nKTAd5g333wz7LmPP/5YNTU12rVrV9h3G0k6++yzW323abm96upq7d69WyNGjAgts1qtGjZsWLsxr1u3TiNHjgxbdvDjZcuW6bHHHguL9Uc/+pHKysrU0NBwyPVGjhzZoe9jJ554YiiRIkl9+vRRRUXFYdcDgGRki3UAAIDEZLVaNX/+fC1evFjz5s3TjBkz9Mgjj+jzzz8PKxccAGkYRqvlBy8DAAAAgO6QmZkZ9tjv9+uyyy7Tr3/961Zl+/TpI7/frzPOOCO07IgjjgjdK6Qj320O3t6h1mtPRyaT8fv9mjp1qq666qpWz6WlpbW7bke+j9nt9lbr+P3+w64HAMmIkSkAgC4zDENnn322pk6dquXLl8vhcOjtt98OKzNw4EA5HA4tWrQotMzj8Wjp0qU6/vjjJUkOh0NSYKg7AAAAAHS30047TWvWrFH//v01cODAsH+ZmZnKzs4OW5aenq6cnBwVFxeHfbeRpMWLF4e+27QlNzdXvXv3Dt2bRAp892k57VhbTjjhBH322Wdhyw5+fNppp2n9+vWt9mHgwIGyWCyHXO+zzz4LjcTh+xgAdAwjUwAAXfL555/rP//5j8aNG6fCwkJ9/vnn2rNnj44//nitXLkyVC4zM1M//vGPdf/99ys/P19HHnmknnrqKTU0NGj8+PGSpKOOOkqGYehf//qXLr74YqWnpysrKytWuwYAAAAgyd111136wx/+oOuuu07333+/CgoKtGnTJs2ePVt/+MMfwqa2aun+++/Xo48+qmOOOUannHKKXn/9da1YsUJvvvlmu9u75557NG3aNA0cOFDHHXecZsyYocrKynZHh0yYMEFnnXWWnnrqKV155ZWaN2+e5syZE1bmF7/4hS699FL169dPV199tSwWi1auXKlVq1aF3az+r3/9q4YPH65zzjlHb775pr744gu99tprkqTCwkKlp6drzpw56tu3r9LS0pSbm9vRqgSAlMHIFABAl+Tk5Oijjz7SxRdfrMGDB+tnP/uZnnnmGV100UWtyj755JP6/ve/r5tuukmnnXaaNm3apLlz5yovL09SYMj81KlT9dBDD6l37966++67o707AAAAAFJIcXGxPvnkE/l8Pl1wwQUaMmSI7r33XuXm5oaN6DjYhAkTNHnyZE2ePFlDhw7VnDlz9O6772rQoEHtbu/BBx/Uddddpx/+8IcaOXKksrKydMEFF7Q7FdeZZ56pV199VTNmzNApp5yiefPm6Wc/+1lYmQsuuED/+te/NH/+fJ1++uk688wzNX36dB111FFh5aZOnarZs2frpJNO0qxZs/Tmm2/qhBNOkCTZbDb99re/1csvv6zi4mJdccUVh6s+AEhJhtmRCRgBAAAAAAAARITf79fxxx+va665Rr/85S+7dVuGYejtt9/WlVde2a3bAYBkxzRfAAAAAAAAQDfatm2b5s2bp1GjRsnlcumFF17Qli1bdP3118c6NABABzHNFwAAAAAAANCNLBaLZs6cqdNPP11nn322Vq1apQ8++KDdG9cDAOIL03wBAAAAAAAAAAC0g5EpAAAAAAAAAAAA7SCZAgAAAAAAAAAA0A6SKQAAAAAAAAAAAO0gmQIAAAAAAAAAANAOkikAAAAAAAAAAADtIJkCAAAAAAAAAADQDpIpAAAAAAAAAAAA7SCZAgAAAAAAAAAA0I7/H2DV+kt6uv4YAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%time\n", + "reorgs = sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "id": "78567508-a1a3-4b89-abd3-9cd1b4bbb692", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.08% of slots were reorged with depth >= 0\n", + "1.41% of slots were reorged with depth >= 1\n", + "0.68% of slots were reorged with depth >= 2\n", + "0.29% of slots were reorged with depth >= 3\n", + "0.13% of slots were reorged with depth >= 4\n", + "0.06% of slots were reorged with depth >= 5\n", + "0.03% of slots were reorged with depth >= 6\n", + "0.01% of slots were reorged with depth >= 7\n", + "0.00% of slots were reorged with depth >= 8\n", + "0.00% of slots were reorged with depth >= 9\n", + "0.00% of slots were reorged with depth >= 10\n", + "0.00% of slots were reorged with depth >= 11\n", + "0.00% of slots were reorged with depth >= 12\n", + "0.00% of slots were reorged with depth >= 13\n", + "0.00% of slots were reorged with depth >= 14\n", + "0.00% of slots were reorged with depth >= 15\n", + "0.00% of slots were reorged with depth >= 16\n", + "0.00% of slots were reorged with depth >= 17\n", + "0.00% of slots were reorged with depth >= 18\n", + "0.00% of slots were reorged with depth >= 19\n" + ] + } + ], + "source": [ + "for DEPTH in range(20):\n", + " print(f\"{len(reorgs[reorgs >= DEPTH]) / sim.params.SLOTS*100:.2f}% of slots were reorged with depth >= {DEPTH}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "id": "76de5a72-cca5-4b00-9feb-7563cca9c03d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/10\n", + "simulating 2/10\n", + "simulating 3/10\n", + "simulating 4/10\n", + "simulating 5/10\n", + "simulating 6/10\n", + "simulating 7/10\n", + "simulating 8/10\n", + "simulating 9/10\n", + "simulating 10/10\n", + "finished simulation, starting analysis\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=10000,\n", + " f=0.05,\n", + " adversary_control = i,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=10, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in np.linspace(1e-3, 0.3, 10)]\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "id": "52ff4e83-c6f9-4933-9190-564124a479bc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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O1udO3fWrFmz9NJLL12WNp988kktX75cGzduVNWqVd31586d03PPPaclS5aoe/fukqRGjRopOTlZr732mjp16qR9+/Zp2rRp2r17txo0aCBJaty4sTZt2qR//etfmjlzpsc+ExMTPdYbhkuGwY58AGRpLrCc/A0ICPCYHN2zZ48qVqxotblCW6+6XC5T27G+//77GjNmjJYtW6ZKlSoVuBYcHKzk5GSdOXNG//3vfxUTE6Prr79e7du399hWXFzcZfvBAAAAAAAAAAAAip+vr692795t6Yi3orhcLj355JNasmSJ1q9fr8jIyALXs7OzlZ2dLdsfjgq02+1yOp2SpLNn844nvFCMJ0VeM1x5BQCKM/nbs2dPjR07Vh988EFeX4ahlJQUjR49WnfffbfpdipUqCC73V5ole+xY8cKrQb+o0WLFmngwIH68MMP1alTp0LXbTabatWqJUlq0qSJvv32W8XFxRWZ/I2NjVVMTIz7cXp6uqpVq2b6uQAAAAAAAAAAgL/egw8+qDlz5mjChAl/qp0nnnhC7733npYtW6bg4GB37iI0NFSBgYEKCQlRu3btNGrUKAUGBioiIkIbNmzQ/PnzNWnSJElS3bp1VatWLT322GN67bXXVL58eS1dulTx8fH69NNPLY/JMPIKAFiZCywnf1977TV169ZNlSpV0rlz59SuXTsdPXpUrVq10vjx40234+fnp+bNmys+Pl69e/d218fHx6tnz55F3vf+++/r4Ycf1vvvv+/eWuFiXC5XgW2d/8jf31/+/v6mxw4AAAAAAAAAALwvKytLb731luLj4xUVFaWgoKAC1/MTsxczY8YMSSq0iGzu3Ll66KGHJEkLFy5UbGys+vXrp5MnTyoiIkLjx4/X4MGDJeWtRF6xYoVGjx6tO++8U2fOnFGtWrX0zjvvqFu3btafHNs+A8hXnCt/Q0JCtHnzZq1du1Y7duyQ0+lUs2bNPK7AvZiYmBhFR0crKipKrVq10uzZs5WSkuKeKGNjY3X48GHNnz9fUl7i98EHH9Qbb7yhli1buj95ExgYqNDQUEl5WzhHRUWpZs2aysrK0ooVKzR//nz3xA0AAAAAAAAAAK5cX331lRo2bCibzabdu3erWbNmkqTvv/++QJyV7aBdrosnVqpUqaK5c+deMKZ27dpavHix6X6lwttE52PlL4B8xbry98CB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n9fOnTvVtm1bde3alSQMJEkZGRlq3Lixpk2b5vH6DTfcoGnTpmnXrl3avHmzatSooc6dO+uXX375i0eKkmLDhg164okntHXrVsXHxysnJ0edO3dWRkaGO2bfvn1q06aN6tatq/Xr1+vLL7/UCy+8oICAAC+OHN5StWpVTZgwQdu3b9f27dt16623qmfPnvr666/lcrnUq1cv/fjjj1q2bJl27typiIgIderUqcB7ClefBg0aKDU11V127dolSTp79qx27NihF154QTt27NDHH3+s77//Xj169PDyiOEtp06d0s033yxfX1999tln+uabb/T666/r2muvLRB3++23F3hPrVixwjsDhtdt27atwHshPj5eknTPPfdIkkaOHKmVK1dqwYIF+vbbbzVy5Eg9+eSTWrZsmTeHDS8bNGiQ4uPj9e6772rXrl3q3LmzOnXqpMOHD0vK+3fVzTffrAkTJnh5pPCGi/27+tVXX9WkSZM0bdo0bdu2TVWqVNFtt92m06dPF4qdMmWKDMMo7iHDyy72nrnYnFKtWrUCP8tSU1P10ksvKSgoSF27di3OoQOAR06n5xV9+Wf+UigUik3mk7+Gy+Viw/iLcDgcatasWYFPq9erV0+9evVSXFycF0eGksYwDC1ZskS9evUqMiY9PV2hoaFas2aNOnbs+NcNDiXWL7/8okqVKmnDhg265ZZbJEn33nuvfH199e6773p5dCipypUrp3/+859q27at6tSpo927d6tBgwaSpNzcXFWqVEkTJ07UoEGDvDxSeMOYMWO0dOlS06umtm3bphYtWuinn35S9erVi3dwKHFGjx6tzz///II72zz00EP69ddfWUEFj0aMGKFPP/1Ue/fulWEYatiwofr27asXXnjBHdO8eXN169ZNL7/8shdHCm85d+6cgoODtWzZMnXv3t1d36RJE91xxx0aN26cu+7AgQOKjIzUzp071aRJEy+MFt72x39Xu1wuhYeHa8SIEXr22WclSZmZmapcubImTpyoxx57zH3vl19+qTvuuEPbtm1TWFjYRf99jtLhQn+LsTKnNG3aVM2aNdOcOXOKZ6AAcAEtW7b0uPr3gbX3ye8aPy+MCEBJk3UmSwtufV9paWkKCQm5YCwrfy8iKytLSUlJ6ty5c4H6zp07a8uWLV4aFa5UWVlZmj17tkJDQ9W4cWNvDwclRFpa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oKRzOj0neO1yyc62zwAkS3OB543kAQAAAFx27du319ChQxUTE6MKFSrotttukyR988036tatm6655hpVrlxZ0dHROn78uPu+zMxMDRs2TJUqVVJAQIDatGmjbdu2ua+vX79ehmFo1apVioqKkr+/vzZt2qTTp0+rX79+CgoKUlhYmCZPnqz27dtrxIgRFxznhAkTVLlyZQUHB2vgwIE6f/58oZi5c+eqXr16CggIUN26dTV9+nT3tQMHDsgwDC1cuFCtW7dWQECAGjRooPXr17uvd+jQQZJUtmxZGYahhx56yH2/0+nUM888o3LlyqlKlSoaM2aMxVcaAAAAAK58NsNJoVAo7mJ67ijGeQkAAADAH7zzzjvy8fHR559/rlmzZik1NVXt2rVTkyZNtH37dq1cuVI///yz+vTp477nmWee0eLFi/XOO+9ox44dqlWrlrp06aKTJ08WaPuZZ55RXFycvv32WzVq1EgxMTH6/PPPtXz5csXHx2vTpk3asWPHBcf3wQcf6MUXX9T48eO1fft2hYWFFUjsStKbb76p559/XuPHj9e3336rV155RS+88ILeeeedAnGjRo3SU089pZ07d6p169bq0aOHTpw4oWrVqmnx4sWSpD179ig1NVVvvPFGgdcoKChIiYmJevXVVzV27FjFx8df0usNAAAAAFeq/JW/FAqFYpf5lb+Gy+VizwAAAADgL9C+fXulpaVp586d7rp//OMfSkxM1KpVq9x1hw4dUrVq1bRnzx5dd911Klu2rObNm6f7779fkpSdna0aNWpoxIgRGjVqlPv83KVLl6pnz56SpNOnT6t8+fJ677339Le//U2SlJaWpvDwcD3yyCOaMmWKxzG2bt1ajRs31owZM9x1LVu21Pnz55WcnCxJql69uiZOnKj77rvPHTNu3DitWLFCW7Zs0YEDBxQZGakJEybo2WeflSTl5OQoMjJSTz75pJ555pkiz/xt3769cnNztWnTJnddixYtdOutt2rChAmX8KoDAAAAQMnWsmVLj+f+TtzWVoHXcJwPAOncmRw9e9MmpaWlKSQk5IKxzBoAAADAXygqKqrA46SkJK1bt07XXHNNodh9+/bp/Pnzys7O1s033+yu9/X1VYsWLfTtt98W2faPP/6o7OxstWjRwl0XGhqqOnXqXHB83377rQYPHlygrlWrVlq3bp0k6ZdfftHBgwc1cOBAPfLII+6YnJwchYaGFrovn4+Pj6KiogqN2ZNGjRoVeBwWFqZjx45d9D4AAAAAuBLZbJ43abXLKbvMb/UKoPSyMheQ/AUAAAD+QkFBQQUeO51O3XnnnZo4cWKh2LCwMP3www+SJMMwClxzuVyF6n7fdv4GP57u+zOczrx/bLz55ptyOBwFrtnt9ove/8fxeOLr61vonvx+AQAAAKC0cTgcSkhIKFRvM1yyGWzeCkCW5gKSvwAAAIAXNWvWTIsXL1aNGjXk41P41/NatWrJz89PmzdvLrDt8/bt2zVixIgi261Zs6Z8fX31xRdfqFq1apKk9PR07d27V+3atSvyvnr16mnr1q168MEH3XVbt251/3/lypV13XXX6ccff1S/fv0u+Ny2bt2qW265RVLeyuCkpCQNHTpUkuTn5ydJys3NvWAbAAAAAFDaedryWWLlL4D/YeUvAAAAcIV44okn9Oabb+q+++7TqFGjVKFCBf3www9auHCh3nzzTQUFBenxxx/XqFGjVK5cOVWvXl2vvvqqzp49q4EDBxbZbnBwsPr37+++r1KlSnrxxRdls9kuuPp2+PDh6t+/v6KiotSmTRv9+9//1tdff63rr7/eHTNmzBgNGzZMISEh6tq1qzIzM7V9+3adOnVKMTEx7rh//etfql27turVq6fJkyfr1KlTevjhhyVJERERMgxDn376qbp166bAwECPW18DAAAAQGlX1E5HdsMpu0HyF4AszQUkfwEAAAAvCg8P1+eff65nn31WXbp0UWZmpiIiInT77be7z32aMGGCnE6noqOjdfr0aUVFRWnVqlUqW7bsBdueNGmSBg8erDvuuEMhISF65plndPDgQQUEBBR5T9++fbVv3z49++yzOn/+vO6++249/vjjWrVqlTtm0KBBKlOmjP75z3/qmWeeUVBQkG688cZCK5EnTJigiRMnaufOnapZs6aWLVumChUqSJKuu+46vfTSSxo9erQGDBigBx98UPPmzbu0FxEAAAAASiGbnLKx8heAZGkuMFx/9tAvAAAAAFeEjIwMXXfddXr99dcvuGr4zzpw4IAiIyO1c+dONWnSpNj6AQAAAIDSoGXLlh63fp61o7kCr2ENHwDp3JkcPdYsSWlpaQoJCblgLLMGAAAAUErt3LlT3333nVq0aKG0tDSNHTtWktSzZ08vjwwA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "max_reorg_depth = max(a.max() if len(a) > 0 else 0 for a in advs)\n", + "\n", + "\n", + "heatmap = np.zeros((len(advs), max_reorg_depth), dtype=np.int64)\n", + "\n", + "for i, adv in enumerate(advs):\n", + " for depth in range(max_reorg_depth):\n", + " heatmap[i][depth] = (adv == depth).sum()\n", + "\n", + "plt.figure(figsize=(40,40))\n", + "ax = plt.subplot(121)\n", + "im = ax.imshow(heatmap)\n", + "\n", + "_ = ax.set_yticks(np.arange(len(sims)), labels=[f\"{s.params.adversary_control:.2f}\" if i % 2 == (len(sims) - 1) % 2 else None for i, s in enumerate(sims)])\n", + "_ = ax.set_xticks(np.arange(max_reorg_depth), labels=[r if r % (max_reorg_depth // 10) == 0 else None for r in range(max_reorg_depth)])\n", + "_ = ax.set_xlabel(\"reorg depth\")\n", + "_ = ax.set_ylabel(\"adversary stake\")\n", + "\n", + "ax = plt.subplot(1,10,6)\n", + "scale = heatmap.max()\n", + "ax.imshow(np.arange(scale+1).reshape((1, scale+1)).T, extent=(1,0,1,0))\n", + "_ = ax.set_yticks(np.arange(scale+1) / scale, labels = [r if r % (scale // 10) == 0 else None for r in range(scale+1)])\n", + "_ = ax.set_xticks([], minor=False)\n", + "_ = ax.set_ylabel(\"frequency\")" + ] + }, + { + "cell_type": "code", + "execution_count": 542, + "id": "9cca2f57-1083-446c-b083-1dd158e0e7ca", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/5\n", + "simulating 2/5\n", + "simulating 3/5\n", + "simulating 4/5\n", + "simulating 5/5\n", + "finished simulation, starting analysis\n", + "Processing block Block(id=1000, slot=21002, height=953, parent=999, leader=20)\n", + "Processing block Block(id=2000, slot=43475, height=1911, parent=1999, leader=72)\n", + "Processing block Block(id=3000, slot=64765, height=2867, parent=2999, leader=23)\n", + "Processing block Block(id=4000, slot=86142, height=3833, parent=3999, leader=70)\n", + "Processing block Block(id=5000, slot=107452, height=4794, parent=4999, leader=52)\n", + "Processing block Block(id=6000, slot=129648, height=5760, parent=5999, leader=41)\n", + "Processing block Block(id=7000, slot=150919, height=6702, parent=6999, leader=70)\n", + "Processing block Block(id=8000, slot=172689, height=7650, parent=7999, leader=66)\n", + "Processing block Block(id=9000, slot=194671, height=8614, parent=8999, leader=27)\n", + "Processing block Block(id=1000, slot=21002, height=724, parent=999, leader=20)\n", + "Processing block Block(id=2000, slot=43475, height=1451, parent=1997, leader=72)\n", + "Processing block Block(id=3000, slot=64765, height=2150, parent=2999, leader=23)\n", + "Processing block Block(id=4000, slot=86142, height=2886, parent=3999, leader=70)\n", + "Processing block Block(id=5000, slot=107452, height=3612, parent=4997, leader=52)\n", + "Processing block Block(id=6000, slot=129648, height=4345, parent=5998, leader=41)\n", + "Processing block Block(id=7000, slot=150919, height=5067, parent=6998, leader=70)\n", + "Processing block Block(id=8000, slot=172689, height=5777, parent=7998, leader=66)\n", + "Processing block Block(id=9000, slot=194671, height=6507, parent=8999, leader=27)\n", + "Processing block Block(id=1000, slot=21002, height=584, parent=999, leader=20)\n", + "Processing block Block(id=2000, slot=43475, height=1157, parent=1997, leader=72)\n", + "Processing block Block(id=3000, slot=64765, height=1733, parent=2998, leader=23)\n", + "Processing block Block(id=4000, slot=86142, height=2329, parent=3999, leader=70)\n", + "Processing block Block(id=5000, slot=107452, height=2912, parent=4997, leader=52)\n", + "Processing block Block(id=6000, slot=129648, height=3510, parent=5998, leader=41)\n", + "Processing block Block(id=7000, slot=150919, height=4102, parent=6995, leader=70)\n", + "Processing block Block(id=8000, slot=172689, height=4684, parent=7996, leader=66)\n", + "Processing block Block(id=9000, slot=194671, height=5264, parent=8998, leader=27)\n", + "Processing block Block(id=1000, slot=21002, height=476, parent=999, leader=20)\n", + "Processing block Block(id=2000, slot=43475, height=953, parent=1996, leader=72)\n", + "Processing block Block(id=3000, slot=64765, height=1429, parent=2998, leader=23)\n", + "Processing block Block(id=4000, slot=86142, height=1936, parent=3996, leader=70)\n", + "Processing block Block(id=5000, slot=107452, height=2429, parent=4998, leader=52)\n", + "Processing block Block(id=6000, slot=129648, height=2928, parent=5998, leader=41)\n", + "Processing block Block(id=7000, slot=150919, height=3419, parent=6996, leader=70)\n", + "Processing block Block(id=8000, slot=172689, height=3905, parent=7996, leader=66)\n", + "Processing block Block(id=9000, slot=194671, height=4406, parent=8998, leader=27)\n", + "Processing block Block(id=1000, slot=21002, height=421, parent=999, leader=20)\n", + "Processing block Block(id=2000, slot=43475, height=838, parent=1997, leader=72)\n", + "Processing block Block(id=3000, slot=64765, height=1254, parent=2998, leader=23)\n", + "Processing block Block(id=4000, slot=86142, height=1676, parent=3996, leader=70)\n", + "Processing block Block(id=5000, slot=107452, height=2098, parent=4998, leader=52)\n", + "Processing block Block(id=6000, slot=129648, height=2537, parent=5998, leader=41)\n", + "Processing block Block(id=7000, slot=150919, height=2950, parent=6992, leader=70)\n", + "Processing block Block(id=8000, slot=172689, height=3378, parent=7996, leader=66)\n", + "Processing block Block(id=9000, slot=194671, height=3810, parent=8996, leader=27)\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=200000,\n", + " f=0.05,\n", + " adversary_control = 0.1,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=i, # seconds\n", + " mixnet_delay_var=(i / 5)**2,\n", + " broadcast_delay_mean=1e-6, # second\n", + " pol_proof_time=0, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in np.linspace(1, 30, 5)]\n", + "\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 543, + "id": "1ff938f3-6bc4-4b8e-bd9a-492db140d7b9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for s in range(len(sims)):\n", + " max_depth = advs[s].max()\n", + " count_by_depth = np.zeros(max_depth)\n", + " for d in range(max_depth):\n", + " count_by_depth[d] = (advs[s] == d).sum() / (sims[s].params.SLOTS * sims[s].params.f)\n", + " plt.plot(np.arange(max_depth), count_by_depth, label=f\"E[mixnet_delay]={sims[s].network.mixnet_delay_mean:.1f}s\")\n", + "\n", + "_ = plt.title(f\"reorg depth sensitivity to mixnet delay @ {1/sims[s].params.f:.0f}s block time\")\n", + "_ = plt.xlabel(\"reorg depth\")\n", + "_ = plt.ylabel(\"frequency\")\n", + "_ = plt.legend()\n", + "_ = plt.yscale(\"log\")\n", + "_ = plt.xlim(0, 25)\n", + "_ = plt.ylim(10**-3,10**0)\n", + "# _ = plt." + ] + }, + { + "cell_type": "code", + "execution_count": 492, + "id": "8c9a369c-2d55-4c07-8bfe-9e270cfed90a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/4\n", + "simulating 2/4\n", + "simulating 3/4\n", + "simulating 4/4\n", + "finished simulation, starting analysis\n", + "Processing block Block(id=1000, slot=6363, height=320, parent=996, leader=23)\n", + "Processing block Block(id=2000, slot=12555, height=639, parent=1993, leader=84)\n", + "Processing block Block(id=3000, slot=18477, height=952, parent=2996, leader=17)\n", + "Processing block Block(id=4000, slot=25149, height=1282, parent=3996, leader=20)\n", + "Processing block Block(id=5000, slot=31501, height=1599, parent=4998, leader=56)\n", + "Processing block Block(id=6000, slot=37990, height=1919, parent=5991, leader=8)\n", + "Processing block Block(id=7000, slot=44481, height=2251, parent=6997, leader=27)\n", + "Processing block Block(id=8000, slot=50868, height=2578, parent=7992, leader=36)\n", + "Processing block Block(id=9000, slot=57212, height=2896, parent=8996, leader=8)\n", + "Processing block Block(id=10000, slot=63774, height=3230, parent=9996, leader=52)\n", + "Processing block Block(id=11000, slot=70157, height=3546, parent=10993, leader=0)\n", + "Processing block Block(id=12000, slot=76603, height=3862, parent=11988, leader=23)\n", + "Processing block Block(id=13000, slot=82834, height=4181, parent=12995, leader=85)\n", + "Processing block Block(id=14000, slot=89666, height=4523, parent=13994, leader=62)\n", + "Processing block Block(id=15000, slot=95882, height=4848, parent=14996, leader=7)\n", + "Processing block Block(id=16000, slot=102488, height=5177, parent=15997, leader=8)\n", + "Processing block Block(id=17000, slot=108773, height=5491, parent=16995, leader=5)\n", + "Processing block Block(id=18000, slot=115521, height=5820, parent=17993, leader=89)\n", + "Processing block Block(id=19000, slot=121882, height=6133, parent=18994, leader=68)\n", + "Processing block Block(id=20000, slot=128075, height=6448, parent=19990, leader=35)\n", + "Processing block Block(id=21000, slot=134265, height=6774, parent=20996, leader=10)\n", + "Processing block Block(id=22000, slot=140656, height=7092, parent=21995, leader=98)\n", + "Processing block Block(id=23000, slot=146896, height=7405, parent=22997, leader=50)\n", + "Processing block Block(id=1000, slot=13599, height=507, parent=995, leader=38)\n", + "Processing block Block(id=2000, slot=27183, height=999, parent=1999, leader=85)\n", + "Processing block Block(id=3000, slot=40799, height=1491, parent=2995, leader=45)\n", + "Processing block Block(id=4000, slot=53827, height=1978, parent=3995, leader=20)\n", + "Processing block Block(id=5000, slot=66897, height=2473, parent=4994, leader=6)\n", + "Processing block Block(id=6000, slot=80538, height=2985, parent=5999, leader=19)\n", + "Processing block Block(id=7000, slot=94047, height=3485, parent=6996, leader=73)\n", + "Processing block Block(id=8000, slot=107291, height=3990, parent=7999, leader=10)\n", + "Processing block Block(id=9000, slot=120394, height=4502, parent=8998, leader=52)\n", + "Processing block Block(id=10000, slot=134175, height=5014, parent=9999, leader=70)\n", + "Processing block Block(id=11000, slot=147463, height=5517, parent=10997, leader=73)\n", + "Processing block Block(id=12000, slot=160780, height=6014, parent=11998, leader=21)\n", + "Processing block Block(id=13000, slot=174393, height=6517, parent=12999, leader=49)\n", + "Processing block Block(id=14000, slot=187294, height=6991, parent=13999, leader=17)\n", + "Processing block Block(id=15000, slot=201132, height=7503, parent=14999, leader=37)\n", + "Processing block Block(id=16000, slot=214289, height=7998, parent=15997, leader=23)\n", + "Processing block Block(id=17000, slot=227195, height=8491, parent=16999, leader=38)\n", + "Processing block Block(id=18000, slot=240271, height=8990, parent=17997, leader=13)\n", + "Processing block Block(id=19000, slot=254358, height=9507, parent=18998, leader=70)\n", + "Processing block Block(id=20000, slot=267926, height=10010, parent=19996, leader=19)\n", + "Processing block Block(id=21000, slot=281002, height=10497, parent=20999, leader=20)\n", + "Processing block Block(id=22000, slot=294406, height=10999, parent=21999, leader=32)\n", + "Processing block Block(id=1000, slot=27987, height=680, parent=999, leader=42)\n", + "Processing block Block(id=2000, slot=54664, height=1341, parent=1999, leader=8)\n", + "Processing block Block(id=3000, slot=81950, height=2006, parent=2999, leader=38)\n", + "Processing block Block(id=4000, slot=108979, height=2670, parent=3995, leader=38)\n", + "Processing block Block(id=5000, slot=136878, height=3343, parent=4999, leader=40)\n", + "Processing block Block(id=6000, slot=163748, height=4015, parent=5998, leader=70)\n", + "Processing block Block(id=7000, slot=192675, height=4698, parent=6999, leader=68)\n", + "Processing block Block(id=8000, slot=221466, height=5369, parent=7999, leader=1)\n", + "Processing block Block(id=9000, slot=248970, height=6030, parent=8999, leader=93)\n", + "Processing block Block(id=10000, slot=277928, height=6714, parent=9998, leader=66)\n", + "Processing block Block(id=11000, slot=305384, height=7372, parent=10999, leader=42)\n", + "Processing block Block(id=12000, slot=332509, height=8051, parent=11997, leader=92)\n", + "Processing block Block(id=13000, slot=359097, height=8708, parent=12998, leader=19)\n", + "Processing block Block(id=14000, slot=387363, height=9366, parent=13997, leader=33)\n", + "Processing block Block(id=15000, slot=414827, height=10023, parent=14995, leader=17)\n", + "Processing block Block(id=16000, slot=442300, height=10693, parent=15999, leader=89)\n", + "Processing block Block(id=17000, slot=470243, height=11365, parent=16999, leader=8)\n", + "Processing block Block(id=18000, slot=499093, height=12056, parent=17998, leader=83)\n", + "Processing block Block(id=19000, slot=526688, height=12721, parent=18999, leader=89)\n", + "Processing block Block(id=20000, slot=555973, height=13410, parent=19998, leader=38)\n", + "Processing block Block(id=21000, slot=583015, height=14057, parent=20998, leader=70)\n", + "Processing block Block(id=1000, slot=42927, height=756, parent=999, leader=21)\n", + "Processing block Block(id=2000, slot=84798, height=1524, parent=1999, leader=21)\n", + "Processing block Block(id=3000, slot=126990, height=2279, parent=2999, leader=35)\n", + "Processing block Block(id=4000, slot=168468, height=3022, parent=3999, leader=86)\n", + "Processing block Block(id=5000, slot=211518, height=3781, parent=4998, leader=13)\n", + "Processing block Block(id=6000, slot=254462, height=4515, parent=5999, leader=7)\n", + "Processing block Block(id=7000, slot=297291, height=5284, parent=6997, leader=30)\n", + "Processing block Block(id=8000, slot=337460, height=6021, parent=7999, leader=68)\n", + "Processing block Block(id=9000, slot=379964, height=6780, parent=8999, leader=4)\n", + "Processing block Block(id=10000, slot=421773, height=7525, parent=9997, leader=74)\n", + "Processing block Block(id=11000, slot=463452, height=8279, parent=10999, leader=2)\n", + "Processing block Block(id=12000, slot=508227, height=9044, parent=11999, leader=42)\n", + "Processing block Block(id=13000, slot=551336, height=9812, parent=12998, leader=4)\n", + "Processing block Block(id=14000, slot=593129, height=10575, parent=13997, leader=70)\n", + "Processing block Block(id=15000, slot=633453, height=11328, parent=14999, leader=13)\n", + "Processing block Block(id=16000, slot=674863, height=12062, parent=15999, leader=38)\n", + "Processing block Block(id=17000, slot=714726, height=12815, parent=16999, leader=68)\n", + "Processing block Block(id=18000, slot=757976, height=13567, parent=17998, leader=45)\n", + "Processing block Block(id=19000, slot=799790, height=14311, parent=18998, leader=17)\n", + "Processing block Block(id=20000, slot=841233, height=15063, parent=19997, leader=52)\n", + "Processing block Block(id=21000, slot=881361, height=15808, parent=20998, leader=89)\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "mixnet_delay_mean = 10\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=int(30000 * 1 / (1/mixnet_delay_mean / i)),\n", + " f=1/mixnet_delay_mean / i,\n", + " adversary_control = 0.3,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=mixnet_delay_mean, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=2, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in [1/2, 1, 2, 3]]\n", + "\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 501, + "id": "87c8d0b8-c8d2-4c49-a9c4-2eaefd41c254", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MAX=40\n", + "\n", + "for s in range(len(sims)):\n", + " \n", + " max_depth = advs[s].max() if advs[s].sum() > 0 else 0\n", + " max_depth = min(MAX, max_depth)\n", + " count_by_depth = np.zeros(max_depth)\n", + " for d in range(max_depth):\n", + " count_by_depth[d] = (advs[s] == d).sum() \n", + " block_time = 1 / sims[s].params.f\n", + " expected_blocks = sims[s].params.SLOTS / block_time\n", + " plt.plot(np.arange(max_depth), count_by_depth / expected_blocks, label=f\"{block_time:.0f}s ~ {block_time / sims[s].network.mixnet_delay_mean:.1f}x mix delay\")\n", + "\n", + "_ = plt.title(f\"reorg depth sensitivity to block time @ {mixnet_delay_mean}s mixnet delay\")\n", + "_ = plt.xlabel(\"reorg depth\")\n", + "_ = plt.ylabel(\"frequency (per block)\")\n", + "_ = plt.legend()\n", + "_ = plt.yscale(\"log\")\n", + "_ = plt.xlim(0, MAX)\n", + "_ = plt.ylim(10**-4, 4)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 497, + "id": "af11b126-33b6-4b62-868e-b11a0090aa69", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(150000, 5.0), (300000, 10.0), (600000, 20.0), (900000, 30.0)]" + ] + }, + "execution_count": 497, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[(s.params.SLOTS, 1 / s.params.f) for s in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 514, + "id": "23a226b5-b624-4ae9-86bd-2d7201bbb365", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# _ = plt.plot([s.network.mixnet_delay_mean for s in sims], [len(s.honest_chain()) / s.params.SLOTS for s in sims])\n", + "_ = plt.scatter([1 / s.params.f for s in sims], [len(s.honest_chain()) / s.params.SLOTS for s in sims])\n", + "\n", + "_ = plt.title(\"chain growth vs. block time multiple of network delay\")\n", + "_ = plt.ylabel(\"chain growth / slot\")\n", + "_ = plt.xlabel(\"block time multiple of network delay\")" + ] + }, + { + "cell_type": "code", + "execution_count": 499, + "id": "317dd511-6fda-44c3-88ff-622460b36665", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9RklEQVR4nO3deXQUVf7+8aeTzgIxhM2EgBAiDEIIa1AMqEFFdgVRURgRERd0RkDUGRAdFhUQlwFlcUAGZFREFsUFkEVAMUAEgn6BCEJwAhiIJELYIcn9/cGPHtsk0JV0Zyner3P6HPp2LZ++absfq27dchhjjAAAAGzCr7QLAAAA8CbCDQAAsBXCDQAAsBXCDQAAsBXCDQAAsBXCDQAAsBXCDQAAsBXCDQAAsBXCDQAAsBXCDWAzo0aNksPh0OHDhy+5bLt27dSuXTuf1VK3bl1169bNZ9u/4K233lL9+vUVGBgoh8OhI0eOSJKef/551alTR06nU5UrV5ZU9Pdct25dPfjgg16rGYDvOEu7AAAojq1bt2rQoEF6+OGH1a9fPzmdToWGhmrx4sV6+eWXNWLECHXu3FlBQUGSpKlTpxZpPx9//LEqVarkzdIB+AjhBkC5tn37dknSI488ouuuu87Vvm3bNknSoEGDFB4e7mqPiYkp0n5atGhRjCoBlCROSwE2tW/fPvXs2VOVKlVSWFiY7r//fv3666+XXC8rK0tPPPGEatWqpcDAQF199dUaMWKEzpw547ZcXl6e3nrrLTVv3lwVKlRQ5cqVdf311+vTTz+96PanTp0qp9OpkSNHXrKWefPmKT4+XiEhIbriiivUsWNHJScnu15v166d7r//fklS69at5XA49OCDD6pu3bp6/vnnJUkRERFyOBwaNWqUa50/npY6c+aMxowZo0aNGik4OFjVqlXTzTffrMTERNcyBZ2Wys7O1jPPPKPo6GgFBgaqVq1aGjJkiE6cOOG2nMPh0F//+lf95z//UaNGjVSxYkU1a9ZMn3/+eb73/OOPP6p3796KiIhQUFCQ6tSpowceeEBnzpzRzz//LKfTqXHjxuVb7+uvv5bD4dD8+fMv2a+A7RkAtjJy5EgjyURFRZlnn33WfPnll+aNN94wISEhpkWLFubs2bOuZRMSEkxCQoLr+alTp0zTpk1NSEiIee2118zy5cvNCy+8YJxOp+nSpYvbfvr27WscDod5+OGHzeLFi83SpUvNyy+/bCZNmuRaJioqynTt2tUYY0xeXp55+umnTUBAgJk1a9Yl38fLL79sHA6Heeihh8znn39uFi1aZOLj401ISIjZvn27McaY7du3m+eff95IMrNmzTLr1683u3fvNlu2bDEDBgwwksyyZcvM+vXrzb59+wp8z+fOnTM333yzcTqd5plnnjFLliwxn376qXnuuefM3Llz3d5Lv379XM9PnDhhmjdvbqpXr27eeOMNs3LlSjNp0iQTFhZmbrnlFpOXl+daVpKpW7euue6668xHH31klixZYtq1a2ecTqfZs2ePa7mtW7eaK664wtStW9e8/fbbZtWqVea9994zvXr1MtnZ2cYYY+68805Tp04dk5OT49Zf99xzj6lZs6Y5d+7cJfsWsDvCDWAzF8LNU0895db+/vvvG0nmvffec7X98Yf+7bffNpLMRx995LbuK6+8YiSZ5cuXG2OM+frrr40kM2LEiIvWciHcnDx50tx1110mLCzMrFy58pLvIS0tzTidTvPkk0+6tR87dszUqFHD9OrVy9U2a9YsI8l89913BfbDr7/+6tb+x/c8Z84cI8nMmDHjku/l9+Fm3Lhxxs/PL99+FyxYYCSZJUuWuNokmYiICFdAMcaYgwcPGj8/PzNu3DhX2y233GIqV65sMjIyCq1j9erVRpL5+OOPXW0HDhwwTqfTjB49+qLvAbhccFoKsKk///nPbs979eolp9Op1atXF7rOV199pZCQEN19991u7RdOx6xatUqStHTpUknSX/7yl0vWkZmZqVtuuUVJSUlat26dbr311kuu8+WXXyonJ0cPPPCAcnJyXI/g4GAlJCRozZo1l9yGp5YuXarg4GA99NBDltb7/PPPFRsbq+bNm7vV2LFjRzkcjnw13nzzzQoNDXU9j4iIUHh4uP773/9Kkk6ePKm1a9eqV69euvLKKwvdb7t27dSsWTNNmTLF1fb222/L4XDo0UcftfQeALtiQDFgUzVq1HB77nQ6Va1aNWVmZha6TmZmpmrUqCGHw+HWHh4eLqfT6Vr3119/lb+/f759FGTXrl367bff9Mgjjyg2Ntaj2g8dOiRJuvbaawt83c/Pe/9f9uuvv6pmzZqWt3no0CHt3r1bAQEBBb7+x0vxq1Wrlm+ZoKAgnTp1SpL022+/KTc3V1ddddUl933h6rCdO3fq6quv1owZM3T33Xd79PcALgeEG8CmDh48qFq1arme5+TkKDMzs8Af2QuqVaumjRs3yhjjFnAyMjKUk5Oj6tWrS5KuvPJK5ebm6uDBg4qMjLxoHfHx8brnnns0YMAASdK0adMuGSQu7GfBggWKioq6+BstpiuvvFLr1q1TXl6epYBTvXp1VahQQf/+978Lfd2KqlWryt/fX/v377/ksn369NHf//53TZkyRddff70OHjzo0VE04HLBaSnApt5//3235x999JFycnIuOoHdrbfequPHj+uTTz5xa58zZ47rdUnq3LmzpPNBxRP9+vXThx9+qFmzZumBBx5Qbm7uRZfv2LGjnE6n9uzZo1atWhX48JbOnTvr9OnTmj17tqX1unXrpj179qhatWoF1le3bl1L26tQoYISEhI0f/78S07AGBwcrEcffVTvvvuu3njjDTVv3lxt27a1tD/AzjhyA9jUokWL5HQ6ddttt2n79u164YUX1KxZM/Xq1avQdR544AFNmTJF/fr1088//6wmTZpo3bp1Gjt2rLp06aL27dtLkm688Ub17dtXL730kg4dOqRu3bopKChIycnJqlixop588sl827777rtVsWJF3X333Tp16pTmzp2rwMDAAuuoW7euxowZoxEjRig1NVWdOnVSlSpVdOjQISUlJSkkJESjR4/2Sj/17t1bs2bN0sCBA7Vz507dfPPNysvL08aNG9WoUSPdd999Ba43ZMgQLVy4UDfddJOeeuopNW3aVHl5eUpLS9Py5cv19NNPq3Xr1pZqeeONN3TDDTeodevWGjZsmOrXr69Dhw7p008/1b/+9S+3MTtPPPGEJkyYoM2bN+udd94pVh8AdkO4AWxq0aJFGjVqlKZNmyaHw6Hbb79dEydOLDRQSOePCKxevVojRozQq6++ql9//VW1atXSM888k29emtmzZ6tly5aaOXOmZs+erQoVKigmJkbPPfdcodvv0qWLlixZottvv13du3fXokWLVKFChQKXHT58uGJiYjRp0iTNnTtXZ86cUY0aNXTttddq4MCBReuUAjidTi1ZskTjxo3T3LlzNXHiRIWGhqpZs2bq1KlToeuFhITom2++0fjx4zV9+nTt3btXFSpUUJ06ddS+fXvLR24kqVmzZkpKStLIkSM1fPhwHTt2TDVq1NAtt9yS7+9Wq1Yt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Tk6OJk2apO3bt2v9+vVau3atx9s5e/asNm/erGHDhrm1d+jQQYmJiRddt0WLFjp9+rRiYmL0/PPP6+abby502TNnzujMmTOu59nZ2R7XCFxOkvZm5Tti83tGUvrR00ram6X4etVKrjAAsMjykZs2bdro22+/1cmTJ1WvXj0tX75cERERWr9+veLi4jzezuHDh5Wbm5vvHlURERE6ePBggetERkZq+vTpWrhwoRYtWqRrrrlGt956q77++utC9zNu3DiFhYW5HrVr1/a4RuByknGs8GBTlOUAoLRYPnIjSU2aNNG7777rlQL+OE7HGFPo2J1rrrlG11xzjet5fHy89u3bp9dee0033XRTgesMHz5cQ4cOdT3Pzs4m4AAFCA8NvvRCFpYDgNJSpHAjSRkZGcrIyFBeXp5be9OmTT1av3r16vL39893lCYjI8PSHcevv/56vffee4W+HhQUpKCgII+3B1yurouuqsiwYB08errAcTcOSTXCgnVddNWSLg0ALLF8Wmrz5s2KjY1VZGSkmjZtqubNm7seLVq08Hg7gYGBiouL04oVK9zaV6xYoTZt2ni8neTkZEVGRnq8PICC+fs5NPL2GEnng8zvXXg+8vYY+ftZuyoSAEqa5SM3/fv3V4MGDTRz5kxFRERYvvz794YOHaq+ffuqVatWio+P1/Tp05WWlqaBAwdKOn9K6cCBA5ozZ44kaeLEiapbt64aN26ss2fP6r333tPChQu1cOHCItcA4H86xUZq2v0tNfqzHW6Di2uEBWvk7THqFMv/SAAo+4p048xFixapfv36xd75vffeq8zMTI0ZM0bp6emKjY3VkiVLFBUVJUlKT093m/Pm7NmzeuaZZ3TgwAFVqFBBjRs31hdffKEuXboUuxYA53WKjdRtMTWUtDdLGcdOKzz0/KkojtgAKC8cxhhLk1b06NFDffv21V133eWrmnzKyi3TAQBA2WDl99vykZt33nlH/fr107Zt2xQbG6uAgAC31++44w6rmwQAAPAay+EmMTFR69at09KlS/O95nA4lJub65XCAAAAisLy1VKDBg1S3759lZ6erry8PLcHwQYAAJQ2y+EmMzNTTz31lKW5aAAAAEqK5XDTs2dPrV692he1AAAAFJvlMTcNGjTQ8OHDtW7dOjVp0iTfgOJBgwZ5rTgAAACrLF8KHh0dXfjGHA6lpqYWuyhf4lJwAADKH59eCr53794iFwYAAOBrlsfcAAAAlGWEGwAAYCuEGwAAYCuEGwAAYCuEGwAAYCuWw82yZcu0bt061/MpU6aoefPm6tOnj3777TevFgcAAGCV5XDz7LPPKjs7W5L0f//3f3r66afVpUsXpaamaujQoV4vEAAAwIoizXMTExMjSVq4cKG6deumsWPHasuWLerSpYvXCwQAALDC8pGbwMBAnTx5UpK0cuVKdejQQZJUtWpV1xEdAACA0mL5yM0NN9ygoUOHqm3btkpKStK8efMkSbt27dJVV13l9QIBAACssHzkZvLkyXI6nVqwYIGmTZumWrVqSZKWLl2qTp06eb1AAAAAKyzfOPNiTp06pQoVKnhrcz7BjTMBACh/rPx+Wz5y85e//KXA9hMnTqhz585WNwcAAOBVlsPN8uXL9fzzz7u1nThxQp06dVJubq7XCgMAACgKywOKly9frhtuuEHVqlXTU089pWPHjqljx45yOp1aunSpL2oEAADwmOVwEx0drS+//FLt2rWTn5+fPvzwQwUFBemLL75QSEiIL2oEAADwmOVwI0mxsbH6/PPP1b59e7Vu3Vqff/55mR9IDAAALg8ehZsWLVrI4XDkaw8KCtIvv/yitm3butq2bNniveoAAAAs8ijc9OjRw8dlAAAAeIdX57kpD5jnBgCA8sen89x899132rhxY772jRs3atOmTVY3BwAA4FVFmsRv3759+doPHDhQ6AR/AAAAJcVyuNmxY4datmyZr71FixbasWOHV4oCAAAoKsvhJigoSIcOHcrXnp6eLqezSFeWAwAAeI3lcHPbbbdp+PDhOnr0qKvtyJEjeu6553Tbbbd5tTgAAACrLB9qef3113XTTTcpKipKLVq0kCRt3bpVERER+s9//uP1AgEAAKywHG5q1aqlH374Qe+//76+//57VahQQf3791fv3r0VEBDgixoBAAA8VqRBMiEhIXr00Ue9XQsAAECxFSnc7NmzRxMnTlRKSoocDocaNWqkwYMHq169et6uDwAAwBLLA4q//PJLxcTEKCkpSU2bNlVsbKw2btyoxo0ba8WKFb6oEQAAwGOWb7/QokULdezYUePHj3drHzZsmJYvX17mb5zJ7RcAACh/fHr7hZSUFA0YMCBf+0MPPcQkfgAAoNRZDjdXXnmltm7dmq9969atCg8P90ZNAAAARWZ5QPEjjzyiRx99VKmpqWrTpo0cDofWrVunV155RU8//bQvagQAAPCY5TE3xhhNnDhRr7/+un755RdJUs2aNfXss89q0KBBcjgcPinUWxhzAwBA+WPl99tyuPm9Y8eOSZJCQ0OLuokSR7gBAKD8sfL7Xaw7XZanUAMAAC4PHoWbFi1aeHy6qaxfCg4AAOzNo3DTo0cPH5cBAADgHcUac1MeMeYGAIDyp0TG3GzatMnt3lJxcXFF3RQAAIDXWA43+/fvV+/evfXtt9+qcuXKkqQjR46oTZs2mjt3rmrXru3tGgEAADxmeYbihx56SOfOnVNKSoqysrKUlZWllJQUGWMKvC0DAABASbI85qZChQpKTExUixYt3Nq3bNmitm3b6tSpU14t0NsYcwMAQPnj0xtn1qlTR+fOncvXnpOTo1q1alndHAAAgFdZDjcTJkzQk08+qU2bNunCQZ9NmzZp8ODBeu2117xeIAAAgBUenZaqUqWK2yR+J06cUE5OjpzO8+ORL/w7JCREWVlZvqvWCzgtBQBA+eP1S8EnTpzojboAAAB8zqNw069fP1/XAQAA4BWWx9wAAACUZYQbAABgK4QbAABgKx6Fmx9++EF5eXm+rgUAAKDYPAo3LVq00OHDhyVJV199tTIzM31aFAAAQFF5FG4qV66svXv3SpJ+/vlnjuIAAIAyy6NLwe+66y4lJCQoMjJSDodDrVq1kr+/f4HLpqamerVAAAAAKzwKN9OnT1fPnj21e/duDRo0SI888ohCQ0N9XRsAAIBlHoUbSerUqZMkafPmzRo8eDDhBgAAlEkeh5sLZs2a5fr3/v375XA4uBs4AAAoMyzPc5OXl6cxY8YoLCxMUVFRqlOnjipXrqwXX3yxSAONp06dqujoaAUHBysuLk7ffPONR+t9++23cjqdat68ueV9AgAA+7IcbkaMGKHJkydr/PjxSk5O1pYtWzR27Fi99dZbeuGFFyxta968eRoyZIhGjBih5ORk3XjjjercubPS0tIuut7Ro0f1wAMP6NZbb7VaPgAAsDmHMcZYWaFmzZp6++23dccdd7i1L168WE888YQOHDjg8bZat26tli1batq0aa62Ro0aqUePHho3blyh6913333605/+JH9/f33yySfaunWrx/u0cst0AABQNlj5/bZ85CYrK0sNGzbM196wYUNlZWV5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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# _ = plt.plot([(1 / s.params.f) / s.network.mixnet_delay_mean for s in sims], [len(s.honest_chain()) / s.params.SLOTS for s in sims])\n", + "_ = plt.scatter([s.params.f for s in sims], [len(s.honest_chain()) / len(s.blocks) for s in sims])\n", + "\n", + "_ = plt.title(\"block efficiency\")\n", + "_ = plt.ylabel(\"% of blocks member of honest chain\")\n", + "_ = plt.xlabel(\"f\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5818b2d0-ba38-49bd-89c9-e78306f493f1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/cryptarchia/slotless-cryptarchia.ipynb b/cryptarchia/slotless-cryptarchia.ipynb new file mode 100644 index 0000000..5d56332 --- /dev/null +++ b/cryptarchia/slotless-cryptarchia.ipynb @@ -0,0 +1,540 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "3f485372-2531-4a49-8d15-5b26e9018a6a", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass\n", + "from pyvis.network import Network\n", + "from pyvis.options import Layout\n", + "import networkx as nx" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8ea18f7d-34a8-4de8-b18f-e93329825840", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Block:\n", + " id: int\n", + " t: float\n", + " height: int\n", + " parent: int\n", + " leader: int" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cabf7946-8382-4102-b730-d74ed42ceb38", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class NetworkParams:\n", + " mixnet_delay_mean: int # seconds\n", + " mixnet_delay_var: int\n", + " broadcast_delay_mean: int # second\n", + " pol_proof_time: int # seconds\n", + "\n", + " def sample_mixnet_delay(self):\n", + " scale = self.mixnet_delay_var / self.mixnet_delay_mean\n", + " shape = self.mixnet_delay_mean / scale\n", + " return np.random.gamma(shape=shape, scale=scale)\n", + " \n", + " def sample_broadcast_delay(self, blocks):\n", + " return np.random.exponential(self.broadcast_delay_mean, size=blocks.shape)\n", + "\n", + " def block_arrival_time(self, block_time):\n", + " return self.pol_proof_time + self.sample_mixnet_delay() + self.sample_broadcast_delay(block_time) + block_time" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4e9df29f-fb4a-4dfb-a7b4-b8b4b0a6e6b7", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Params:\n", + " CHAIN_HEIGHT: int\n", + " MEAN_BLOCK_TIME: int\n", + " honest_stake: np.array\n", + " adversary_control: float\n", + "\n", + " @property\n", + " def N(self):\n", + " return len(self.stake)\n", + "\n", + " @property\n", + " def stake(self):\n", + " if self.adversary_control:\n", + " adversary_stake = self.honest_stake.sum() / (1/self.adversary_control - 1)\n", + " return np.append(self.honest_stake, adversary_stake)\n", + " else:\n", + " return self.honest_stake\n", + " \n", + " @property\n", + " def relative_stake(self):\n", + " return self.stake / self.stake.sum()\n", + "\n", + " def block_delay_at_height(self):\n", + " return np.random.exponential(self.MEAN_BLOCK_TIME / self.relative_stake, size=(self.CHAIN_HEIGHT, self.N))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ced60818-fab2-49c4-9247-9a31047d40d7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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U93d3erq6jJ9HFaIBQAAQTwej3bt2qV77723v+3ChQt64okntH37dn322WeaMWOGfvKTn2jevHmSpMOHD2vWrFn6zW9+o5tvvnlI5+e2DgAAGNBDDz2kd999Vy+99JL+53/+R9/73vf053/+5/rggw8kSf/+7/+uG264Qa+99pomT56sSZMmqby8XJ9++qnpcxFOAADAFR09elQvvviidu7cqcLCQt1444167LHHdOedd+r555+XJH344Yf66KOPtHPnTr3wwguqqalRU1OTvvvd75o+H3NOAADAFf33f/+3DMPQlClTgtp7e3s1cuRISVJfX596e3v1wgsv9O/33HPPKS8vT++//76pWz2EEwAAcEV9fX1KSUlRU1OTUlJSgr77yle+IkkaM2aMUlNTgwLMtGnTJEnt7e2EEwAAYJ1bbrlFgUBAp06dUmFhYcR97rjjDn3++ec6evSobrzxRknS73//e0lSTk6OqfPxtA4AANDZs2d15MgRSX8KIxs3blRRUZGysrI0ceJE/eVf/qXeffddPfvss7rlllvU1dWlN998UzNnztSiRYvU19enOXPm6Ctf+Yo2bdqkvr4+eb1eZWRkaO/evaZqIZwAAAC9/fbbKioqCmsvKytTTU2NLl68qKeeekovvPCCPv74Y40cOVIFBQVav369Zs6cKUk6ceKE/uZv/kZ79+7Vtddeq5KSEj377LPKysoyVQvhBAAAOAqPEgMAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEchnAAAAEf5/3kbMqEG+rNjAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "params = Params(\n", + " CHAIN_HEIGHT=1000,\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_stake = np.random.pareto(10, size=100),\n", + " adversary_control=None,\n", + ")\n", + "\n", + "_ = plt.hist(params.block_delay_at_height(), stacked=True, bins=100)\n", + "_ = plt.yscale(\"log\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "48c54c25-c7b4-47f9-a00a-5f10997cf185", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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4uLi1KJFC50+fVpPPPFEsQfBlVeTJk3k4+OjlJSUEtd7eXnd0H59fHx05coVnT171qawce0AoXHjxnJyclJcXFypV1w1b9681PdZtWqVhg8frsTERJv2H3/8UY0aNbJpu++++xQeHq6FCxeqQYMG2rdvn1atWlXBngEAAKAuy8rK0i233GJ9XdI577V8fHy0a9cuGYZhU9jIzs7WlStXrM+WaNq0qQoLC5WVlVVi0eDXIiMj9dBDD2n06NGSpMWLF6tevfJdM1vSj/ZX267tx7WFmKvrMzMzi+3jhx9+sPbFYrHogw8+0IwZMzRt2jRrzNVnQFy7z7Jyuqpp06aSpFOnTikoKKjEvh04cEBffvmlkpOTNWLECGv71Qec/1qTJk20YMECLViwQCdOnND69es1bdo0ZWdnlzo+Kq+rx6m0foWEhNjk4e7urr///e8l7uvqMS3JqlWr1Lx5c73zzjs2f6trH0AvSWaz2VrEmTJlipYvX67Y2Nhi4yYAKC9magAAyu3JJ5/UiRMn9P7772vZsmVav3695s+ff0P7io6O1tmzZ1VYWKiOHTsWW379ADs3N7disx9K07NnT0nS6tWrbdqvfdifh4eHevbsqS+++EJt27YtMYeyBogmk6nYA8s3btyo77//vsT4iRMnauPGjZo+fbr8/Pz00EMPlas/AAAAgFT8/PYf//iHrly5oh49epS6Ta9evXThwgX961//sml/6623rOslWW9Pu3jx4nLlMmLECK1du9b6QOjCwsJybXfw4EF9+eWXNm1r1qyRl5fXdWcxR0ZGyt3dvdjFQadOndKnn35q7YvJZJJhGMXO1d98881iefbs2VOffPKJTp8+bW0rLCzUO++8YxMXFRUlJyenMo/P1R/2r33fJUuWlNmvZs2a6emnn1afPn1sbsFVkTHQr3Xu3Fn169cv9nlJS0srdsvh6Ohofffdd/Lx8SlxPPTrAsi1TCaTXF1dbQoaWVlZpV70NnHiRP3444968MEHde7cOW7FC+CmMFMDAFAub775platWqXly5erTZs2atOmjZ5++mk9++yz6tq1q+65554K7e+RRx7R6tWrNWDAAE2aNEn33HOPXFxcdOrUKW3ZskX333+/hgwZIkmKiIjQ2rVr9c477+i2225T/fr1FRERUeJ+o6KidO+992rq1Km6ePGiOnbsqP/85z9auXJlsdi//OUv6tatm37zm9/od7/7nUJCQnT+/Hl9++232rBhgz799NNS84+OjlZycrJatmyptm3bKj09Xa+88kqpU9J/+9vfavr06frss8/0hz/8Qa6urhU6XgAAAKjb3n//fTk7O6tPnz46ePCgXnjhBbVr104xMTGlbjN8+HD97W9/04gRI3Ts2DFFRERo+/btSkxM1IABA9S7d29J0m9+8xvFxcVp9uzZOn36tKKjo+Xm5qYvvvhCHh4emjBhQrF9P/jgg/Lw8NCDDz6oS5cu6e23377uOW5gYKAGDx6smTNnKiAgQKtWrVJqaqpefvlleXh4lLlto0aN9MILL+i5557T8OHD9eijj+rs2bOaNWuW6tevrxkzZkiSGjZsqHvvvVevvPKKmjRpopCQEG3btk3Lli0rNjPgD3/4g9avX6/77rtPf/zjH+Xh4aG//e1vunjxok1cSEiInnvuOb344ou6dOmSHn30UZnNZn399df68ccfNWvWLLVs2VK33367pk2bJsMw5O3trQ0bNlhvQXuVxWJRz549FRsbq5YtW8rLy0t79uxRSkqKhg4dao2LiIjQ+++/r8WLF6tDhw6qV6+eOnbsWOYxkn6ZkT5lyhTNnj1bTzzxhB566CGdPHlSM2fOLHb7qfj4eL333nu699579cwzz6ht27YqKirSiRMntGnTJiUkJKhTp04lvk90dLTef/99jR8/Xg8++KBOnjypF198UQEBATpy5Eix+BYtWqhfv3766KOP1K1bt2LPVgGACrHrY8oBAFVixowZhiTjzJkzNu0jRowwPD09i8V3797daNOmjfX10aNHDUnG8uXLDcMwjK+++spwd3c3RowYYbPd5cuXjQ4dOhghISFGTk5Ome9xNadfKygoMP785z8b7dq1M+rXr280aNDAaNmypTFu3DjjyJEj1rhjx44ZUVFRhpeXlyHJCA4OLrP/586dM0aNGmU0atTI8PDwMPr06WP897//NSQZM2bMsIk9evSoMWrUKOOWW24xXFxcjKZNmxpdunQxZs+eXerxMAzDyMnJMUaPHm34+voaHh4eRrdu3YzPP//c6N69u9G9e/cS8xo5cqTh7OxsnDp1qsz8AQAAgKuunkenp6cbgwYNMho0aGB4eXkZjz76qHH69Gmb2JLORc+ePWs8+eSTRkBAgOHs7GwEBwcb06dPNy5fvmwTV1hYaMyfP98IDw83XF1dDbPZbERGRhobNmywxgQHBxsDBw602W7Lli1GgwYNjH79+hk///xzqf24uu0///lPo02bNoarq6sREhJizJs3r9j+JBnvvvtuift58803jbZt21pzvP/++42DBw/axJw6dcoYNmyY0bhxY8PLy8vo16+fceDAASM4OLjYmOY///mP0blzZ8PNzc3w9/c3fv/73xtvvPGGIck4evSoTexbb71l3H333daxS/v27W3GCF9//bXRp08fw8vLy2jcuLHx0EMPGSdOnLAZh1y+fNl48sknjbZt2xoNGzY03N3djbCwMGPGjBnGxYsXrfv66aefjAcffNBo1KiRYTKZio2lylJUVGQkJSUZQUFBhqurq9G2bVtjw4YNJX4+Lly4YPzhD38wwsLCrMc0IiLCeOaZZ4ysrCxrXEnHbs6cOUZISIjh5uZmtGrVyli6dGmJ476rkpOTDUnG2rVry90XACiJyTAMwy7VFAAA6pD8/HyFhISoW7du+sc//mHvdAAAAACgWg0bNkw7d+7UsWPH5OLiYu90ADgwbj8FAEAVOnPmjA4fPqzly5fr9OnTNg8rBAAAAIDaLC8vT/v27dPu3bu1bt06zZs3j4IGgJtGUQMAgCq0ceNGPf744woICNCiRYuu+wBEAAAAAChJYWGhyrrhislkkpOTUzVmdH2ZmZnq0qWLGjZsqHHjxpX4fBYAqChuPwUAAAAAAADUcD169NC2bdtKXR8cHKxjx45VX0IAYCcUNQAAAAAAAIAa7vDhwzp//nyp693c3BQREVGNGQGAfVDUAAAAAAAAAAAADqGevRMAAAAAgBvx2WefadCgQQoMDJTJZNK//vUv67qCggI9++yzioiIkKenpwIDAzV8+HD98MMPNvvIy8vThAkT1KRJE3l6emrw4ME6deqUTUxOTo7i4uJkNptlNpsVFxenc+fO2cScOHFCgwYNkqenp5o0aaKJEycqPz+/qroOAAAA1Fk8KLycioqK9MMPP8jLy0smk8ne6QAAAADVyjAMnT9/XoGBgapXr2ZcG3Xx4kW1a9dOjz/+uIYNG2az7ueff9a+ffv0wgsvqF27dsrJyVF8fLwGDx6svXv3WuPi4+O1YcMGrV27Vj4+PkpISFB0dLTS09OtD1uNjY3VqVOnlJKSIkkaO3as4uLitGHDBkm/PLh1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qms8sX79evXt21cPPfSQtm3bpltuuUXjx4/XmDFjJElHjx5VVlaWoqKirNu4ubmpe/fuSktL07hx45Senq6CggKbmMDAQIWHhystLU19+/bVjh07ZDabrQUNSercubPMZrPS0tJKLWrk5eUpLy/P+jo3N7eyDwEAAABQ61S4qPHWW2+VuX748OE3nAwAAACA2q06xxP/+9//tHjxYk2ePFnPPfecdu/erYkTJ8rNzU3Dhw9XVlaWJMnPz89mOz8/Px0/flySlJWVJVdXVzVu3LhYzNXts7KySrxtlq+vrzWmJElJSZo1a9ZN9REAAACoaypc1Jg0aZLN64KCAv38889ydXWVh4cHRQ0AAAAAparO8URRUZE6duyoxMRESVL79u118OBBLV682OZ9TCaTzXaGYRRru9a1MSXFX28/06dP1+TJk62vc3NzFRQUVHanAAAAgDquXkU3yMnJsVkuXLigw4cPq1u3bnr77berIkcAAAAAtUR1jicCAgLUunVrm7ZWrVrpxIkTkiR/f39JKjabIjs72zp7w9/fX/n5+crJySkz5vTp08Xe/8yZM8Vmgfyam5ubGjZsaLMAAAAAKFuFixolCQ0N1Zw5c4pddQUAAAAA11NV44muXbvq8OHDNm3ffPONgoODJUnNmzeXv7+/UlNTrevz8/O1bds2denSRZLUoUMHubi42MRkZmbqwIED1pjIyEhZLBbt3r3bGrNr1y5ZLBZrDAAAAIDKcUMPCi+Jk5OTfvjhh8raHQAAAIA6pCrGE88884y6dOmixMRExcTEaPfu3XrjjTf0xhtvSPrlllHx8fFKTExUaGioQkNDlZiYKA8PD8XGxkqSzGazRo8erYSEBPn4+Mjb21tTpkxRRESEevfuLemX2R/9+vXTmDFjtGTJEknS2LFjFR0dXepDwgEAAADcmAoXNdavX2/z2jAMZWZmauHCheratWulJQYAAACg9qnO8cTdd9+tdevWafr06frTn/6k5s2ba8GCBXrsscesMVOnTtWlS5c0fvx45eTkqFOnTtq0aZO8vLysMfPnz5ezs7NiYmJ06dIl9erVS8nJyXJycrLGrF69WhMnTlRUVJQkafDgwVq4cGGl9gcAAACAZDIMw6jIBvXq2d6xymQyqWnTprrvvvv06quvKiAgoFITrClyc3NlNptlsVi41y1qhZBpG+2dAuq4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zJhhtGvXrtzxU6dONVq2bGnTNm7cOKNz586VnFntNmnSJOP22283ioqKSly/ZcsWQ5KRk5NTvYk5OEnGunXrrK+LiooMf39/Y86cOda2y5cvG2az2Xj99ddL3U9MTIzRr18/m7a+ffsajzzySKXn7IiuPc4l2b17tyHJOH78eKkxy5cvN8xmc+UmV4uUdJxHjBhh3H///RXaD5/n6yvPZ/r+++837rvvvjJj+EyXLTs725BkbNu2zTAMvqOBG3XPPfcYTz75pE1by5YtjWnTptkpI5Tl2u8+1Bznz583QkNDjdTUVKN79+7GpEmT7J0S/s+zzz5rdOvWzd5poAwDBw40Ro0aZdM2dOhQ47e//a2dMsKvVdZvI6g6lfW7iqNgpgaqxJEjRxQYGKjmzZvrkUce0f/+979SY3fs2KGoqCibtr59+2rv3r0qKCio6lRrhfz8fK1atUqjRo2SyWQqM7Z9+/YKCAhQr169tGXLlmrKsPY4evSosrKybD6zbm5u6t69u9LS0krdrrTPeVnbwJbFYpHJZLru1VQXLlxQcHCwbr31VkVHR+uLL76ongQd2NatW+Xr66sWLVpozJgxys7OLjOez/PNO336tDZu3KjRo0dfN5bPdOksFoskydvbWxLf0cCNyM/PV3p6erF/A1FRUfwbqKGu/e5DzfHUU09p4MCB6t27t71TwTXWr1+vjh076qGHHpKvr6/at2+vpUuX2jst/Eq3bt30ySef6JtvvpEkffnll9q+fbsGDBhg58xQkhs974Z9lfd3FUdAUQOVrlOnTnrrrbf08ccfa+nSpcrKylKXLl109uzZEuOzsrLk5+dn0+bn56crV67oxx9/rI6UHd6//vUvnTt3TiNHjiw1JiAgQG+88Ybee+89vf/++woLC1OvXr302WefVV+itUBWVpYklfiZvbqutO0qug3+v8uXL2vatGmKjY1Vw4YNS41r2bKlkpOTtX79er399tuqX7++unbtqiNHjlRjto6lf//+Wr16tT799FO9+uqr2rNnj+677z7l5eWVug2f55u3YsUKeXl5aejQoWXG8ZkunWEYmjx5srp166bw8HBJfEcDN+LHH39UYWEh/wYcREnffagZ1q5dq3379ikpKcneqaAE//vf/7R48WKFhobq448/1pNPPqmJEyfqrbfesndq+D/PPvusHn30UbVs2VIuLi5q37694uPj9eijj9o7NZTgRs+7YT/l/V3FUTjbOwHUPv3797f+d0REhCIjI3X77bdrxYoVmjx5conbXDu7wDCMEttRsmXLlql///4KDAwsNSYsLExhYWHW15GRkTp58qT+/Oc/6957762ONGuVkj6z1/u83sg2+OXhVo888oiKioq0aNGiMmM7d+5s85Drrl276q677tJrr72mv/71r1WdqkN6+OGHrf8dHh6ujh07Kjg4WBs3bizzB3c+zzfn73//ux577LHrPhuDz3Tpnn76aX311Vfavn17sXV8RwMVx78Bx1DWdx/s5+TJk5o0aZI2bdpUZ597VdMVFRWpY8eOSkxMlPTLHQwOHjyoxYsXa/jw4XbODtIvz3datWqV1qxZozZt2igjI0Px8fEKDAzUiBEj7J0eSsH5g2OoyO8qjoKZGqhynp6eioiIKPWqUn9//2JV3OzsbDk7O8vHx6c6UnRox48f1+bNm/XEE09UeNvOnTtztW8F+fv7S1KJn9lrr1C4druKboNf/scbExOjo0ePKjU1tcJXE9SrV0933303n/MKCAgIUHBwcJnHjM/zzfn88891+PDhG/re5jP9iwkTJmj9+vXasmWLbr31Vms739FAxTVp0kROTk78G3AApX33wf7S09OVnZ2tDh06yNnZWc7Oztq2bZv++te/ytnZWYWFhfZOsc4LCAhQ69atbdpatWqlEydO2CkjXOv3v/+9pk2bpkceeUQRERGKi4vTM888w+ynGupGz7tR/W72d5WaiqIGqlxeXp4OHTqkgICAEtdHRkYqNTXVpm3Tpk3q2LGjXFxcqiNFh7Z8+XL5+vpq4MCBFd72iy++KPXvgpI1b95c/v7+Np/Z/Px8bdu2TV26dCl1u9I+52VtU9dd/R/vkSNHtHnz5hsqchqGoYyMDD7nFXD27FmdPHmyzGPG5/nmLFu2TB06dFC7du0qvG1d/0wbhqGnn35a77//vj799FM1b97cZj3f0UDFubq6qkOHDsX+DaSmpvJvoIa43ncf7K9Xr17av3+/MjIyrEvHjh312GOPKSMjQ05OTvZOsc7r2rWrDh8+bNP2zTffKDg42E4Z4Vo///yz6tWz/ZnSyclJRUVFdsoIZbnR825Ur8r4XaWm4vZTqHRTpkzRoEGD1KxZM2VnZ2v27NnKzc21ThecPn26vv/+e+u9K5988kktXLhQkydP1pgxY7Rjxw4tW7ZMb7/9tj274RCKioq0fPlyjRgxQs7Otv+crz3OCxYsUEhIiNq0aWN9sPh7772n9957zx6p12gXLlzQt99+a3199OhRZWRkyNvbW82aNVN8fLwSExMVGhqq0NBQJSYmysPDQ7GxsdZthg8frltuucV6VcmkSZN077336uWXX9b999+vf//739q8eXOdvnVAWcc5MDBQDz74oPbt26cPPvhAhYWF1itAvL295erqKqn4cZ41a5Y6d+6s0NBQ5ebm6q9//asyMjL0t7/9rfo7WEOUdZy9vb01c+ZMDRs2TAEBATp27Jiee+45NWnSREOGDLFuw+e5fK733SFJubm5evfdd/Xqq6+WuA8+02V76qmntGbNGv373/+Wl5eX9XvBbDbL3d1dJpOJ72jgBkyePFlxcXHq2LGjIiMj9cYbb+jEiRN68skn7Z0adP3vPtifl5dXsWeceHp6ysfHh2ef1BDPPPOMunTposTERMXExGj37t1644039MYbb9g7NfyfQYMG6aWXXlKzZs3Upk0bffHFF5o3b55GjRpl79TqrMr4bQRVqzJ+V3FYBlDJHn74YSMgIMBwcXExAgMDjaFDhxoHDx60rh8xYoTRvXt3m222bt1qtG/f3nB1dTVCQkKMxYsXV3PWjunjjz82JBmHDx8utu7a4/zyyy8bt99+u1G/fn2jcePGRrdu3YyNGzdWY7aOY8uWLYakYsuIESMMwzCMoqIiY8aMGYa/v7/h5uZm3Hvvvcb+/ftt9tG9e3dr/FXvvvuuERYWZri4uBgtW7Y03nvvvWrqUc1U1nE+evRoieskGVu2bLHu49rjHB8fbzRr1sxwdXU1mjZtakRFRRlpaWnV37kapKzj/PPPPxtRUVFG06ZNDRcXF6NZs2bGiBEjjBMnTtjsg89z+Vzvu8MwDGPJkiWGu7u7ce7cuRL3wWe6bKV9Lyxfvtwaw3c0cGP+9re/GcHBwYarq6tx1113Gdu2bbN3Svg/5fnuQ83TvXt3Y9KkSfZOA7+yYcMGIzw83HBzczNatmxpvPHGG/ZOCb+Sm5trTJo0yWjWrJlRv35947bbbjOef/55Iy8vz96p1VmV8dsIqlZl/K7iqEyG8X9PZAYAAAAAAAAAAKjBeKYGAAAAAAAAAABwCBQ1AAAAAAAAAACAQ6CoAQAAAAAAAAAAHAJFDQAAAAAAAAAA4BAoagAAAAAAAAAAAIdAUQMAAAAAAAAAADgEihoAAAAAAAAAAMAhUNQAgDqiR48eio+PL3d8cnKyGjVqVGX5/NoLL7ygsWPHVst7VZWtW7fKZDLp3Llz143dv3+/br31Vl28eLHqEwMAAACqCWOOqsWYAwB+QVEDAGBXp0+f1l/+8hc999xz9k6l2kREROiee+7R/Pnz7Z0KAAAAUOsx5gCA2oWiBgDArpYtW6bIyEiFhITYO5Vq9fjjj2vx4sUqLCy0dyoAAABArcaYgzEHgNqFogYA1EIXL17U8OHD1aBBAwUEBOjVV18tFpOfn6+pU6fqlltukaenpzp16qStW7eWus/vvvtO999/v/z8/NSgQQPdfffd2rx5s3X9n/70J0VERBTbrkOHDvrjH/9Y6n7Xrl2rwYMH27T985//VEREhNzd3eXj46PevXvbTJtevny5WrVqpfr166tly5ZatGiRzfanTp3SI488Im9vb3l6eqpjx47atWuXdf3ixYt1++23y9XVVWFhYVq5cqXN9iaTSW+++aaGDBkiDw8PhYaGav369TYxH374oVq0aCF3d3f17NlTx44ds1l//PhxDRo0SI0bN5anp6fatGmjDz/80Lq+b9++Onv2rLZt21bqsQEAAABqKsYcjDkAwF4oagBALfT73/9eW7Zs0bp167Rp0yZt3bpV6enpNjGPP/64/vOf/2jt2rX66quv9NBDD6lfv346cuRIifu8cOGCBgwYoM2bN+uLL75Q3759NWjQIJ04cUKSNGrUKH399dfas2ePdZuvvvpKX3zxhUaOHFniPnNycnTgwAF17NjR2paZmalHH31Uo0aN0qFDh7R161YNHTpUhmFIkpYuXarnn39eL730kg4dOqTExES98MILWrFihTXP7t2764cfftD69ev15ZdfaurUqSoqKpIkrVu3TpMmTVJCQoIOHDigcePG6fHHH9eWLVtscps1a5ZiYmL01VdfacCAAXrsscf0008/SZJOnjypoUOHasCAAcrIyNATTzyhadOm2Wz/1FNPKS8vT5999pn279+vl19+WQ0aNLCud3V1Vbt27fT555+X/EcEAAAAajDGHIw5AMBuDABArXL+/HnD1dXVWLt2rbXt7Nmzhru7uzFp0iTDMAzj22+/NUwmk/H999/bbNurVy9j+vTphmEYxvLlyw2z2Vzme7Vu3dp47bXXrK/79+9v/O53v7O+jo+PN3r06FHq9l988YUhyThx4oS1LT093ZBkHDt2rMRtgoKCjDVr1ti0vfjii0ZkZKRhGIaxZMkSw8vLyzh79myJ23fp0sUYM2aMTdtDDz1kDBgwwPpakvGHP/zB+vrChQuGyWQyPvroI8MwDGP69OlGq1atjKKiImvMs88+a0gycnJyDMMwjIiICGPmzJml9t0wDGPIkCHGyJEjy4wBAAAAahrGHIw5AMCemKkBALXMd999p/z8fEVGRlrbvL29FRYWZn29b98+GYahFi1aqEGDBtZl27Zt+u6770rc78WLFzV16lS1bt1ajRo1UoMGDfTf//7XetWUJI0ZM0Zvv/22Ll++rIKCAq1evVqjRo0qNddLly5JkurXr29ta9eunXr16qWIiAg99NBDWrp0qXJyciRJZ86c0cmTJzV69GibvGfPnm3NOyMjQ+3bt5e3t3eJ73no0CF17drVpq1r1646dOiQTVvbtm2t/+3p6SkvLy9lZ2db99G5c2eZTCZrzK+PtyRNnDhRs2fPVteuXTVjxgx99dVXxXJxd3fXzz//XOrxAQAAAGoixhyMOQDAnpztnQAAoHIZ/zdluixFRUVycnJSenq6nJycbNb9erryr/3+97/Xxx9/rD//+c+644475O7urgcffFD5+fnWmEGDBsnNzU3r1q2Tm5ub8vLyNGzYsFLzaNKkiaRfpoQ3bdpUkuTk5KTU1FSlpaVp06ZNeu211/T8889r165d8vDwkPTLdPBOnTrZ7OtqP9zd3a/b/18PDKRfjtm1bS4uLsW2uTqdvDzH+IknnlDfvn21ceNGbdq0SUlJSXr11Vc1YcIEa8xPP/2k22+//br7AgAAAGoSxhyMOQDAnpipAQC1zB133CEXFxft3LnT2paTk6NvvvnG+rp9+/YqLCxUdna27rjjDpvF39+/xP1+/vnnGjlypIYMGaKIiAj5+/sXe1Cds7OzRowYoeXLl2v58uV65JFHrIOCktx+++1q2LChvv76a5t2k8mkrl27atasWfriiy/k6uqqdevWyc/PT7fccov+97//Fcu7efPmkn652ikjI8N6L9prtWrVStu3b7dpS0tLU6tWrUrN81qtW7e2Ob6Sir2WpKCgID355JN6//33lZCQoKVLl9qsP3DggNq3b1/u9/1/7d15vJVVoT/+z5bhMAjIfEARKEEvQqZZDqmoIAqooZampmjUrRyK0AocruA1UEyycuybgmYOdUMbMBUE9ZppiLOWmYFiQjggiAPj8/vDH+d2ZD5yOGx4v1+v/Xq5n2c9azjnPG72/uy1FgAAbA685/CeA6AumakBsIXZdtttM2TIkHznO99J69at0759+5x77rnZZpv/y7G7d++eE088MSeffHIuu+yy7L777nn99dczderU9OrVKwMGDFil3p122ikTJ07MEUcckVKplPPPP7/qW0T/7itf+UrVP9b/+Mc/rrWv22yzTfr27ZsHH3wwgwYNSpI88sgjuffee9OvX7+0a9cujzzySF577bWqOkeOHJlvfvObad68efr375/Fixfn0Ucfzfz58zNs2LAcf/zxGT16dAYNGpQxY8akQ4cOefzxx9OxY8fss88++c53vpNjjz02e+yxR/r06ZPf/e53mThxYqZMmbLeP+Ovf/3rueyyyzJs2LB87Wtfy4wZMzJhwoRqZYYOHZr+/fune/fumT9/fqZOnVrtTcysWbPyz3/+M3379l3vdgEAYHPgPYf3HAB1qu628wCgtrz99tvFl770paJJkyZF+/bti7Fjxxa9e/eu2rSvKIpiyZIlxX/9138VXbp0KRo0aFBUVlYWRx11VPHUU08VRbHqpn0zZ84sDjrooKJx48ZFp06diiuuuGKVOlfaf//9ix49eqxXX++6665i++23L5YvX14URVE899xzxaGHHlq0bdu2qKioKLp3715tY8CiKIpf/OIXxSc/+cmiYcOGRcuWLYsDDjigmDhxYtX5WbNmFcccc0zRvHnzokmTJsWee+5ZPPLII1Xnr7rqquJjH/tY0aBBg6J79+7FjTfeWK3+JMXtt99e7ViLFi2K8ePHVz3/3e9+V+y0005FRUVFsf/++xfXX399tU37zjjjjOLjH/94UVFRUbRt27Y46aSTitdff73q+tGjRxeHHnroev2MAABgc+M9h/ccAHWlVBTrsUgfAKynoiiyyy675Gtf+1qGDRu2XuX33nvvDB06NMcff/wm6GHdW7x4cbp165ZbbrlllQ0EAQCAtfOeY9285wC2ZPbUAGCjmTdvXsaNG5d//vOfOfXUU9frmlKplJ/+9KdZtmxZLfdu8/HSSy/l3HPP9eYCAAA2kPcc68d7DmBLZqYGABtNqVRKmzZt8qMf/SgnnHBCXXcHAADYwnjPAYBQAwAAAAAAKAuWnwIAAAAAAMqCUAMAAAAAACgLQg0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKglADAAAAAAAoC0INAAAAAACgLAg1AAAAAACAsiDUAAAAAAAAyoJQAwAAAAAAKAtCDQAAAAAAoCwINQAAAAAAgLIg1AAAAAAAAMqCUAMAAAAAACgLQg0AAOrcyJEjUyqV8vrrr6+z7IEHHpgDDzyw1vrSpUuXHH744bVW/0dRKpUycuTIWqt/1qxZKZVKmTBhwkeua8KECSmVSpk1a9YGX3vnnXfW6jiT/xvrD37wg1ptZ3P37rvvZuTIkbnvvvvWq/zG/BvZEF26dMkpp5yywddt6PhW+slPfpJddtklFRUV6dq1a0aNGpWlS5ducPsAAGx8Qg0AACgTf/rTn/KVr3ylrrtR6+68886MGjWqrruxVXj33XczatSo9f7Qv0OHDvnTn/6UgQMH1m7HNpINHV+SfP/738+3vvWtHH300bn77rtz2mmnZfTo0Tn99NNrr6MAAKy3+nXdAQAA4IMPX5s0abLK8aIo8v7776dx48bZe++966Bn8H8qKiq26L/DN954IxdddFG++tWvZvTo0Uk+mB22dOnSnHfeeRk6dGh69OhRx70EANi6makBAMBmY/bs2Tn66KPTvHnztGjRIl/60pfy2muvrfO6N998M6eddlq23377NGzYMB/72Mdy7rnnZvHixdXKrVixIj/5yU/yyU9+Mo0bN852222XvffeO7/97W/XWv9VV12V+vXr54ILLlhrudtuuy39+vVLhw4d0rhx4/zHf/xHhg8fnnfeeadauVNOOSXbbrttnn766fTr1y/NmjVLnz59knywxNQZZ5yRa665Jv/xH/+RioqK3HDDDVXnVi7L9OSTT6ZUKuW6665bpR9/+MMfUiqVqsb197//Paeeemq6deuWJk2aZPvtt88RRxyRp59+eq3jWZMVK1bkoosuys4771z1c/zEJz6RH/3oR+u89vrrr89uu+2WRo0apVWrVjnqqKPyl7/8pdrP5sorr6wa78rHmpaxuvLKK7PNNttk3rx5Vccuu+yylEqlat+sX7FiRVq2bJmzzjprlTrGjRuXrl27Ztttt80+++yThx9+eJUyjz76aI488si0atUqjRo1yu67755f/vKX1cqsXHJr2rRp+cY3vpE2bdqkdevWOfroo/Pqq6+u82fzj3/8I1/84hfTsWPHVFRUpH379unTp0+eeOKJauVuu+227LPPPmnatGm23XbbHHrooXn88cerlVn5N/b3v/89AwYMyLbbbptOnTrlrLPOqrovZs2albZt2yZJRo0aVfWzXtsyT6tbfmrl8nHPPvtsjj/++LRo0SLt27fPl7/85SxYsGCd43788cdz+OGHp127dqmoqEjHjh0zcODAvPLKK2u97uWXX86XvvSlquv+4z/+I5dddllWrFhR4/Hdddddef/993PqqadWO37qqaemKIrccccd6xwPAAC1y0wNAAA2G0cddVSOPfbYfP3rX8+zzz6b888/P88991weeeSRNGjQYLXXvP/++znooIPy4osvZtSoUfnEJz6R//3f/82YMWPyxBNPZNKkSVVlTznllNx0000ZMmRILrzwwjRs2DCPPfbYGj8wL4oi3/nOd/LjH/84P/vZz9a5pv8LL7yQAQMGZOjQoWnatGn++te/5pJLLsmf//znTJ06tVrZJUuW5Mgjj8zXvva1DB8+PMuWLas6d8cdd+R///d/81//9V+prKxMu3btVmlrt912y+67757x48dnyJAh1c5NmDAh7dq1y4ABA5Ikr776alq3bp2LL744bdu2zZtvvpkbbrghe+21Vx5//PHsvPPOax3Xh40dOzYjR47MeeedlwMOOCBLly7NX//617z11ltrvW7MmDE555xzcvzxx2fMmDF54403MnLkyOyzzz6ZPn16unXrlvPPPz/vvPNO/ud//id/+tOfqq7t0KHDauvs27dviqLIvffem+OPPz5JMmXKlDRu3DiTJ0+uKvfoo4/mrbfeSt++fatdf+WVV2aXXXbJ5ZdfniQ5//zzM2DAgMycOTMtWrRIkkybNi2HHXZY9tprr1xzzTVp0aJFbr311hx33HF59913V/m7+MpXvpKBAwfm5ptvzuzZs/Od73wnX/rSl1b5G/iwAQMGZPny5Rk7dmx23HHHvP7663nooYeq/VxHjx6d8847L6eeemrOO++8LFmyJJdeemn233///PnPf642i2Dp0qU58sgjM2TIkJx11ll54IEH8t///d9p0aJF/uu//isdOnTIXXfdlcMOOyxDhgypWtpsZRCwoY455pgcd9xxGTJkSJ5++umMGDEiyQdB1pq88847OeSQQ9K1a9dceeWVad++febOnZtp06bl7bffXuN1r732Wvbdd98sWbIk//3f/50uXbrk97//fc4+++y8+OKLueqqq2o0vmeeeSZJ0qtXr2rHO3TokDZt2lSdBwCgDhUAAFDHLrjggiJJ8e1vf7va8V/84hdFkuKmm26qOta7d++id+/eVc+vueaaIknxy1/+stq1l1xySZGkuOeee4qiKIoHHnigSFKce+65a+1L586di4EDBxbvvvtuccwxxxQtWrQopkyZssFjWrFiRbF06dLi/vvvL5IUTz75ZNW5wYMHF0mK66+/fpXrkhQtWrQo3nzzzdWeu+CCC6qe//jHPy6SFM8//3zVsTfffLOoqKgozjrrrDX2bdmyZcWSJUuKbt26VfuZz5w5s0hSjB8/fq1jO/zww4tPfvKTay0zfvz4Ikkxc+bMoiiKYv78+UXjxo2LAQMGVCv38ssvFxUVFcUJJ5xQdez0008vNuStyg477FB8+ctfLoqiKBYvXlw0bdq0+N73vlckKV566aWiKIri+9//ftGgQYNi0aJF1cbaq1evYtmyZVV1/fnPfy6SFLfcckvVsV122aXYfffdi6VLl67yc+jQoUOxfPnyamM+7bTTqpUbO3ZskaSYM2fOGsfw+uuvF0mKyy+/fI1lXn755aJ+/frFmWeeWe3422+/XVRWVhbHHnts1bGVf2Mfvi8GDBhQ7LzzzlXPX3vttVX+rtZmdX8jK+/fsWPHVit72mmnFY0aNSpWrFixxvoeffTRIklxxx13rLXdzp07F4MHD656Pnz48CJJ8cgjj1Qr941vfKMolUpV98SGju+rX/1qUVFRsdpz3bt3L/r167de9QAAUHssPwUAwGbjxBNPrPb82GOPTf369TNt2rQ1XjN16tQ0bdo0n//856sdX/nt+XvvvTfJB0syJVmvzX7feOONHHzwwfnzn/+cBx98sGppqHX5xz/+kRNOOCGVlZWpV69eGjRokN69eydJtSWWVjrmmGNWW8/BBx+cli1brrO9E088MRUVFdWWArrllluyePHiasvnLFu2LKNHj06PHj3SsGHD1K9fPw0bNswLL7yw2n6ty2c+85k8+eSTOe2003L33Xdn4cKF67zmT3/6U957771VZjV06tQpBx98cNXvqSb69OmTKVOmJEkeeuihvPvuuxk2bFjatGlTNVtjypQpVUs2/buBAwemXr16Vc8/8YlPJEleeumlJB8s3fXXv/616m9z2bJlVY8BAwZkzpw5ef7556vVeeSRR1Z7/uE6V6dVq1b5+Mc/nksvvTTjxo3L448/XrWM0kp33313li1blpNPPrlaPxo1apTevXuvshl2qVTKEUccsUpf1taPj2J1437//ferLQ32YTvttFNatmyZ733ve7nmmmvy3HPPrVdbU6dOTY8ePfKZz3ym2vFTTjklRVGsc1bM2pRKpRqdAwBg0xBqAACw2aisrKz2vH79+mndunXeeOONNV7zxhtvpLKycpUPG9u1a5f69etXXfvaa6+lXr16q7SxOn/729/yyCOPpH///unZs+d69X3RokXZf//988gjj+Siiy7Kfffdl+nTp2fixIlJkvfee69a+SZNmqR58+arrWtNSy19WKtWrXLkkUfmxhtvzPLly5N8sPTUZz7zmey6665V5YYNG5bzzz8/gwYNyu9+97s88sgjmT59enbbbbdV+rU+RowYkR/84Ad5+OGH079//7Ru3Tp9+vTJo48+usZrVv4eVje2jh07rvV3vC59+/bNyy+/nBdeeCFTpkzJ7rvvnnbt2uXggw/OlClT8t577+Whhx5aZempJGndunW15xUVFUn+7/f1r3/9K0ly9tlnp0GDBtUep512WpLk9ddf36A6V6dUKuXee+/NoYcemrFjx2aPPfZI27Zt881vfrNqGaaVffn0pz+9Sl9uu+22VfrRpEmTNGrUaJW+vP/++2vsx0dRk3G3aNEi999/fz75yU/mnHPOya677pqOHTvmggsuyNKlS9d43RtvvLHGv6WV52uidevWef/99/Puu++ucu7NN99Mq1atalQvAAAbjz01AADYbMydOzfbb7991fNly5bljTfeWOXD0n/XunXrPPLIIymKolqwMW/evCxbtixt2rRJ8sE6+suXL8/cuXPXGRrss88++cIXvlC1V8XVV1+dbbZZ+/eBpk6dmldffTX33Xdf1eyMJGvcZ2JjfRv81FNPza9+9atMnjw5O+64Y6ZPn56rr766WpmbbropJ598ckaPHl3t+Ouvv57ttttuvdtaqX79+hk2bFiGDRuWt956K1OmTMk555yTQw89NLNnz06TJk1WuWbl73DOnDmrnHv11Verfk81sXImzZQpUzJ58uQccsghVcfPO++8PPDAA1m8ePFqQ411WdmvESNG5Oijj15tmQ3dk2RNOnfuXLXx+9/+9rf88pe/zMiRI7NkyZJcc801VX35n//5n3Tu3HmjtLk56NWrV2699dYURZGnnnoqEyZMyIUXXpjGjRtn+PDhq72mdevWa/xbSlLjv6eVe2k8/fTT2WuvvaqOz507N6+//vp6h5wAANQeMzUAANhs/OIXv6j2/Je//GWWLVuWAw88cI3X9OnTJ4sWLcodd9xR7fiNN95YdT5J+vfvnySrfOC/JoMHD86tt96a8ePH5+STT66aCbEmK4OIld9OX+naa69dr/Zqql+/ftl+++0zfvz4jB8/Po0aNaraMPvf+/bhfk2aNCn//Oc/P3L72223XT7/+c/n9NNPz5tvvrnGTdf32WefNG7cODfddFO146+88kqmTp1abYmv9fmG/7/r0KFDevTokV//+teZMWNGVahxyCGH5LXXXsu4cePSvHnzfPrTn97g8e28887p1q1bnnzyyey5556rfTRr1myD612X7t2757zzzkuvXr3y2GOPJUkOPfTQ1K9fPy+++OIa+7KhNvRnXZtKpVJ22223/PCHP8x2221XNe7V6dOnT5577rlVytx4440plUo56KCDkmz4+A477LA0atSo2pJuyQczoEqlUgYNGrT+AwIAoFaYqQEAwGZj4sSJqV+/fg455JA8++yzOf/887Pbbrvl2GOPXeM1J598cq688soMHjw4s2bNSq9evfLggw9m9OjRGTBgQNW38/fff/+cdNJJueiii/Kvf/0rhx9+eCoqKvL444+nSZMmOfPMM1ep+/Of/3yaNGmSz3/+83nvvfdyyy23pGHDhqvtx7777puWLVvm61//ei644II0aNAgv/jFL/Lkk09unB/OGtSrVy8nn3xy1Qf3Rx99dFq0aFGtzOGHH54JEyZkl112ySc+8YnMmDEjl156aXbYYYcatXnEEUekZ8+e2XPPPdO2bdu89NJLufzyy9O5c+d069Zttddst912Of/883POOefk5JNPzvHHH5833ngjo0aNSqNGjXLBBRdUlV35bflLLrkk/fv3T7169fKJT3xijT/75IMPuX/yk5+kcePG+exnP5sk6dq1a7p27Zp77rknRx55ZOrXr9nbn2uvvTb9+/fPoYcemlNOOSXbb7993nzzzfzlL3/JY489ll/96lc1qvffPfXUUznjjDPyhS98Id26dUvDhg0zderUPPXUU1WzFbp06ZILL7ww5557bv7xj3/ksMMOS8uWLfOvf/0rf/7zn9O0adOMGjVqg9pt1qxZOnfunN/85jfp06dPWrVqlTZt2qRLly4feUzr4/e//32uuuqqDBo0KB/72MdSFEUmTpyYt956qyqcWp1vf/vbufHGGzNw4MBceOGF6dy5cyZNmpSrrroq3/jGN9K9e/caja9Vq1Y577zzcv7556dVq1bp169fpk+fnpEjR+YrX/lKevToURs/BgAANoBQAwCAzcbEiRMzcuTIXH311VWbHF9++eVr/TC7UaNGmTZtWs4999xceumlee2117L99tvn7LPPrvZBefLBt6332GOPXHfddZkwYUIaN26cHj165Jxzzllj/QMGDMidd96ZI444Ip/73OcyceLENG7ceJVyrVu3zqRJk3LWWWflS1/6Upo2bZrPfe5zue2227LHHnvU/IeyHk499dSMGTMmr732WrUNwlf60Y9+lAYNGmTMmDFZtGhR9thjj0ycODHnnXdejdo76KCD8utf/zo/+9nPsnDhwlRWVuaQQw7J+eefnwYNGqzxuhEjRqRdu3b58Y9/nNtuuy2NGzfOgQcemNGjR1cLQ0444YT88Y9/zFVXXZULL7wwRVFk5syZa/2gvW/fvvnJT36S/fbbr9o+En379s3/+3//r0ZLT/37eP/85z/n+9//foYOHZr58+endevW6dGjx1oDtw1RWVmZj3/847nqqqsye/bslEqlfOxjH8tll11WLXAbMWJEevTokR/96EdVm8JXVlbm05/+dL7+9a/XqO3rrrsu3/nOd3LkkUdm8eLFGTx48CozFWpLt27dst1222Xs2LF59dVX07Bhw+y8886ZMGFCBg8evMbr2rZtm4ceeigjRozIiBEjsnDhwnzsYx/L2LFjM2zYsGplN3R85557bpo1a5Yrr7wyP/jBD1JZWZnhw4fn3HPP3VjDBgDgIygVRVHUdScAAAAAAADWxZ4aAAAAAABAWRBqAAAAAAAAZUGoAQAAAAAAlAWhBgAAAAAAUBaEGgAAAAAAQFkQagAAAAAAAGVBqAEAAAAAAJSF+nXdgXKxYsWKvPrqq2nWrFlKpVJddwcAAAAAALYYRVHk7bffTseOHbPNNmuejyHUWE+vvvpqOnXqVNfdAAAAAACALdbs2bOzww47rPG8UGM9NWvWLMkHP9DmzZvXcW8AAAAAAGDLsXDhwnTq1Knqs/g1EWqsp5VLTjVv3lyoAQAAAAAAtWBd2z/YKBwAAAAAACgLQg0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKglADAAAAAAAoC0INAAAAAACgLAg1AAAAAACAsiDUAAAAAAAAyoJQAwAAAAAAKAtCDQAAAAAAoCwINQAAAAAAgLIg1AAAAAAAAMpC/bruAADAmnQZPmmDr5l18cBa6AkAAACwOTBTAwAAAAAAKAtCDQAAAAAAoCwINQAAAAAAgLIg1AAAAAAAAMqCjcIBAMpETTZOT2yeDgAAwJbDTA0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKglADAAAAAAAoC0INAAAAAACgLAg1AAAAAACAsiDUAAAAAAAAyoJQAwAAAAAAKAubdahx9dVX5xOf+ESaN2+e5s2bZ5999skf/vCHqvNFUWTkyJHp2LFjGjdunAMPPDDPPvtstToWL16cM888M23atEnTpk1z5JFH5pVXXtnUQwEAAAAAAD6i+nXdgbXZYYcdcvHFF2ennXZKktxwww353Oc+l8cffzy77rprxo4dm3HjxmXChAnp3r17LrroohxyyCF5/vnn06xZsyTJ0KFD87vf/S633nprWrdunbPOOiuHH354ZsyYkXr16tXl8AAANltdhk+q0XWzLh64kXsCAAAA/2eznqlxxBFHZMCAAenevXu6d++e73//+9l2223z8MMPpyiKXH755Tn33HNz9NFHp2fPnrnhhhvy7rvv5uabb06SLFiwINddd10uu+yy9O3bN7vvvntuuummPP3005kyZUodjw4AAAAAANgQm3Wo8e+WL1+eW2+9Ne+880722WefzJw5M3Pnzk2/fv2qylRUVKR379556KGHkiQzZszI0qVLq5Xp2LFjevbsWVVmTRYvXpyFCxdWewAAAAAAAHVnsw81nn766Wy77bapqKjI17/+9dx+++3p0aNH5s6dmyRp3759tfLt27evOjd37tw0bNgwLVu2XGOZNRkzZkxatGhR9ejUqdNGHBUAAAAAALChNvtQY+edd84TTzyRhx9+ON/4xjcyePDgPPfcc1XnS6VStfJFUaxy7MPWp8yIESOyYMGCqsfs2bNrPggAAAAAAOAj2+xDjYYNG2annXbKnnvumTFjxmS33XbLj370o1RWVibJKjMu5s2bVzV7o7KyMkuWLMn8+fPXWGZNKioq0rx582oPAAAAAACg7tSv6w5sqKIosnjx4nTt2jWVlZWZPHlydt999yTJkiVLcv/99+eSSy5JknzqU59KgwYNMnny5Bx77LFJkjlz5uSZZ57J2LFj62wMAMCWo8vwSRt8zayLB9ZCTwAAAGDLt1mHGuecc0769++fTp065e23386tt96a++67L3fddVdKpVKGDh2a0aNHp1u3bunWrVtGjx6dJk2a5IQTTkiStGjRIkOGDMlZZ52V1q1bp1WrVjn77LPTq1ev9O3bt45HBwAAAAAAbIjNOtT417/+lZNOOilz5sxJixYt8olPfCJ33XVXDjnkkCTJd7/73bz33ns57bTTMn/+/Oy1116555570qxZs6o6fvjDH6Z+/fo59thj895776VPnz6ZMGFC6tWrV1fDAgA2QzWZcQEAAABsWqWiKIq67kQ5WLhwYVq0aJEFCxbYXwMANpFNubTTpgw1yqGPNWVpLQAAAGpifT+D3+w3CgcAAAAAAEiEGgAAAAAAQJkQagAAAAAAAGVBqAEAAAAAAJSF+nXdAQAAqOkm6DYmBwAA2LqYqQEAAAAAAJQFoQYAAAAAAFAWLD8FAGxRarqM0aZUDn0EAACAzZGZGgAAAAAAQFkQagAAAAAAAGVBqAEAAAAAAJQFoQYAAAAAAFAWhBoAAAAAAEBZqF/XHQAAtnxdhk+q6y4AAAAAWwAzNQAAAAAAgLIg1AAAAAAAAMqCUAMAAAAAACgLQg0AAAAAAKAsCDUAAAAAAICyUL+uOwAA1I0uwydt8DWzLh5YCz1hS1KTvysAAABYX2ZqAAAAAAAAZcFMDQAAtiqbejaJGU4AAAAbj5kaAAAAAABAWTBTAwBYb/ZLAAAAAOqSmRoAAAAAAEBZEGoAAAAAAABlQagBAAAAAACUBaEGAAAAAABQFoQaAAAAAABAWRBqAAAAAAAAZUGoAQAAAAAAlAWhBgAAAAAAUBaEGgAAAAAAQFkQagAAAAAAAGVBqAEAAAAAAJQFoQYAAAAAAFAWNutQY8yYMfn0pz+dZs2apV27dhk0aFCef/75amVOOeWUlEqlao+99967WpnFixfnzDPPTJs2bdK0adMceeSReeWVVzblUAAAAAAAgI9osw417r///px++ul5+OGHM3ny5Cxbtiz9+vXLO++8U63cYYcdljlz5lQ97rzzzmrnhw4dmttvvz233nprHnzwwSxatCiHH354li9fvimHAwAAAAAAfAT167oDa3PXXXdVez5+/Pi0a9cuM2bMyAEHHFB1vKKiIpWVlautY8GCBbnuuuvy85//PH379k2S3HTTTenUqVOmTJmSQw89tPYGAACbQJfhk+q6CwAAAACbxGY9U+PDFixYkCRp1apVteP33Xdf2rVrl+7du+erX/1q5s2bV3VuxowZWbp0afr161d1rGPHjunZs2ceeuihNba1ePHiLFy4sNoDAAAAAACoO5v1TI1/VxRFhg0blv322y89e/asOt6/f/984QtfSOfOnTNz5sycf/75OfjggzNjxoxUVFRk7ty5adiwYVq2bFmtvvbt22fu3LlrbG/MmDEZNWpUrY0HAICPzkwlAACArUvZhBpnnHFGnnrqqTz44IPVjh933HFV/92zZ8/sueee6dy5cyZNmpSjjz56jfUVRZFSqbTG8yNGjMiwYcOqni9cuDCdOnX6CCMAAAAAAAA+irJYfurMM8/Mb3/720ybNi077LDDWst26NAhnTt3zgsvvJAkqayszJIlSzJ//vxq5ebNm5f27duvsZ6Kioo0b9682gMAAAAAAKg7m3WoURRFzjjjjEycODFTp05N165d13nNG2+8kdmzZ6dDhw5Jkk996lNp0KBBJk+eXFVmzpw5eeaZZ7LvvvvWWt8BAAAAAICNa7Nefur000/PzTffnN/85jdp1qxZ1R4YLVq0SOPGjbNo0aKMHDkyxxxzTDp06JBZs2blnHPOSZs2bXLUUUdVlR0yZEjOOuustG7dOq1atcrZZ5+dXr16pW/fvnU5PAAAAAAAYANs1qHG1VdfnSQ58MADqx0fP358TjnllNSrVy9PP/10brzxxrz11lvp0KFDDjrooNx2221p1qxZVfkf/vCHqV+/fo499ti899576dOnTyZMmJB69eptyuEAAAAAAAAfQakoiqKuO1EOFi5cmBYtWmTBggX21wBgs9Jl+KS67gKwFrMuHljXXQAAANjsre9n8Jv1nhoAAAAAAAArCTUAAAAAAICyINQAAAAAAADKwma9UTgAbE3sjQFbpprc2/bhAAAAWD0zNQAAAAAAgLIg1AAAAAAAAMqCUAMAAAAAACgLQg0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKglADAAAAAAAoC0INAAAAAACgLAg1AAAAAACAslC/rjsAAFuiLsMn1XUXAAAAALY4ZmoAAAAAAABlQagBAAAAAACUBaEGAAAAAABQFoQaAAAAAABAWRBqAAAAAAAAZUGoAQAAAAAAlAWhBgAAAAAAUBaEGgAAAAAAQFkQagAAAAAAAGVBqAEAAAAAAJQFoQYAAAAAAFAWhBoAAAAAAEBZEGoAAAAAAABlQagBAAAAAACUhfp13QEA2Jx1GT6prrsAAAAAwP/PTA0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKglADAAAAAAAoC0INAAAAAACgLAg1AAAAAACAsrBZhxpjxozJpz/96TRr1izt2rXLoEGD8vzzz1crUxRFRo4cmY4dO6Zx48Y58MAD8+yzz1Yrs3jx4px55plp06ZNmjZtmiOPPDKvvPLKphwKAAAAAADwEW3Wocb999+f008/PQ8//HAmT56cZcuWpV+/fnnnnXeqyowdOzbjxo3LFVdckenTp6eysjKHHHJI3n777aoyQ4cOze23355bb701Dz74YBYtWpTDDz88y5cvr4thAQAAAAAANVAqiqLY2JXOnDkzXbt23djV5rXXXku7du1y//3354ADDkhRFOnYsWOGDh2a733ve0k+mJXRvn37XHLJJfna176WBQsWpG3btvn5z3+e4447Lkny6quvplOnTrnzzjtz6KGHrlfbCxcuTIsWLbJgwYI0b958o48NgM1Tl+GT6roLwFZo1sUD67oLAAAAm9T6fgZfKzM1dtpppxx00EG56aab8v7772+0ehcsWJAkadWqVZIPwpO5c+emX79+VWUqKirSu3fvPPTQQ0mSGTNmZOnSpdXKdOzYMT179qwqAwAAAAAAbP7q10alTz75ZK6//vqcddZZOeOMM3LcccdlyJAh+cxnPlPjOouiyLBhw7LffvulZ8+eSZK5c+cmSdq3b1+tbPv27fPSSy9VlWnYsGFatmy5SpmV16/O4sWLs3jx4qrnCxcurHHfAQBgU6jp7DIzQwAAgHJRK6FGz549M27cuIwdOza/+93vMmHChOy3337p1q1bhgwZkpNOOilt27bdoDrPOOOMPPXUU3nwwQdXOVcqlao9L4pilWMftq4yY8aMyahRozaojwBsviwjBQAAAFD+aiXUqKq8fv0cddRRGTBgQK666qqMGDEiZ599dkaMGJHjjjsul1xySTp06LDOes4888z89re/zQMPPJAddtih6nhlZWWSD2Zj/Hs98+bNq5q9UVlZmSVLlmT+/PnVZmvMmzcv++677xrbHDFiRIYNG1b1fOHChenUqdP6Dx4AAMpETYJfszsAAIC6UCt7aqz06KOP5rTTTkuHDh0ybty4nH322XnxxRczderU/POf/8znPve5tV5fFEXOOOOMTJw4MVOnTl1l8/GuXbumsrIykydPrjq2ZMmS3H///VWBxac+9ak0aNCgWpk5c+bkmWeeWWuoUVFRkebNm1d7AAAAAAAAdadWZmqMGzcu48ePz/PPP58BAwbkxhtvzIABA7LNNh9kKF27ds21116bXXbZZa31nH766bn55pvzm9/8Js2aNavaA6NFixZp3LhxSqVShg4dmtGjR6dbt27p1q1bRo8enSZNmuSEE06oKjtkyJCcddZZad26dVq1apWzzz47vXr1St++fWtj+ADUMktJAQAAAGydaiXUuPrqq/PlL385p556atUSUR+244475rrrrltnPUly4IEHVjs+fvz4nHLKKUmS7373u3nvvfdy2mmnZf78+dlrr71yzz33pFmzZlXlf/jDH6Z+/fo59thj895776VPnz6ZMGFC6tWrV/NBAgAAAAAAm1SpKIqirjtRDhYuXJgWLVpkwYIFlqICqGNmagBbupruV7Ep//9oTw0AAGBjWt/P4GtlT43x48fnV7/61SrHf/WrX+WGG26ojSYBAAAAAIAtXK0sP3XxxRfnmmuuWeV4u3bt8p//+Z8ZPHhwbTQLAABs5mo6m8TMEAAAIKmlmRovvfRSunbtusrxzp075+WXX66NJgEAAAAAgC1crYQa7dq1y1NPPbXK8SeffDKtW7eujSYBAAAAAIAtXK2EGl/84hfzzW9+M9OmTcvy5cuzfPnyTJ06Nd/61rfyxS9+sTaaBAAAAAAAtnC1sqfGRRddlJdeeil9+vRJ/fofNLFixYqcfPLJGT16dG00CQAAW4ya7jsBAACwpauVUKNhw4a57bbb8t///d958skn07hx4/Tq1SudO3eujeYAAAAAAICtQK2EGit179493bt3r80mAACAOmA2CQAAUBdqJdRYvnx5JkyYkHvvvTfz5s3LihUrqp2fOnVqbTQLAAAAAABswWol1PjWt76VCRMmZODAgenZs2dKpVJtNAMAAAAAAGxFaiXUuPXWW/PLX/4yAwYMqI3qAQAAAACArdA2tVFpw4YNs9NOO9VG1QAAAAAAwFaqVkKNs846Kz/60Y9SFEVtVA8AAAAAAGyFamX5qQcffDDTpk3LH/7wh+y6665p0KBBtfMTJ06sjWYBAAAAAIAtWK2EGtttt12OOuqo2qgaAAAAAADYStVKqDF+/PjaqBaALUyX4ZPqugsAAAAAlJFa2VMjSZYtW5YpU6bk2muvzdtvv50kefXVV7No0aLaahIAAAAAANiC1cpMjZdeeimHHXZYXn755SxevDiHHHJImjVrlrFjx+b999/PNddcUxvNAgAAAAAAW7BamanxrW99K3vuuWfmz5+fxo0bVx0/6qijcu+999ZGkwAAAAAAwBauVmZqPPjgg/njH/+Yhg0bVjveuXPn/POf/6yNJgEAAAAAgC1crczUWLFiRZYvX77K8VdeeSXNmjWrjSYBAAAAAIAtXK2EGoccckguv/zyquelUimLFi3KBRdckAEDBtRGkwAAAAAAwBauVpaf+uEPf5iDDjooPXr0yPvvv58TTjghL7zwQtq0aZNbbrmlNpoEAAAAAAC2cLUSanTs2DFPPPFEbrnlljz22GNZsWJFhgwZkhNPPLHaxuEAAAAAAADrq1ZCjSRp3LhxvvzlL+fLX/5ybTUBAAAAAABsRWol1LjxxhvXev7kk0+ujWYBAAAAAIAtWK2EGt/61reqPV+6dGnefffdNGzYME2aNBFqAAAAAAAAG2yb2qh0/vz51R6LFi3K888/n/32289G4QAAAAAAQI3USqixOt26dcvFF1+8yiwOAAAAAACA9bHJQo0kqVevXl599dVN2SQAAAAAALCFqJU9NX77299We14URebMmZMrrrgin/3sZ2ujSQAAAAAAYAtXK6HGoEGDqj0vlUpp27ZtDj744Fx22WW10SQAAAAAALCFq5VQY8WKFbVRLQAAAAAAsBXbpHtqAAAAAAAA1FStzNQYNmzYepcdN25cbXQBAAAAAADYwtRKqPH444/nsccey7Jly7LzzjsnSf72t7+lXr162WOPParKlUql2mgeAAAAAADYAtXK8lNHHHFEevfunVdeeSWPPfZYHnvsscyePTsHHXRQDj/88EybNi3Tpk3L1KlT11nXAw88kCOOOCIdO3ZMqVTKHXfcUe38KaecklKpVO2x9957VyuzePHinHnmmWnTpk2aNm2aI488Mq+88srGHDIAAAAAAFDLaiXUuOyyyzJmzJi0bNmy6ljLli1z0UUX5bLLLtugut55553stttuueKKK9ZY5rDDDsucOXOqHnfeeWe180OHDs3tt9+eW2+9NQ8++GAWLVqUww8/PMuXL9+wgQEAAAAAAHWmVpafWrhwYf71r39l1113rXZ83rx5efvttzeorv79+6d///5rLVNRUZHKysrVnluwYEGuu+66/PznP0/fvn2TJDfddFM6deqUKVOm5NBDD92g/gCwqi7DJ9V1FwAAAADYCtRKqHHUUUfl1FNPzWWXXVa1FNTDDz+c73znOzn66KM3env33Xdf2rVrl+222y69e/fO97///bRr1y5JMmPGjCxdujT9+vWrKt+xY8f07NkzDz30kFADAADKQE0C9FkXD6yFngAAAHWpVkKNa665JmeffXa+9KUvZenSpR80VL9+hgwZkksvvXSjttW/f/984QtfSOfOnTNz5sycf/75OfjggzNjxoxUVFRk7ty5adiwYbWlsJKkffv2mTt37hrrXbx4cRYvXlz1fOHChRu13wAAAAAAwIaplVCjSZMmueqqq3LppZfmxRdfTFEU2WmnndK0adON3tZxxx1X9d89e/bMnnvumc6dO2fSpElrnRVSFEVKpdIaz48ZMyajRo3aqH0FAAAAAABqrlY2Cl9p5cbd3bt3T9OmTVMURW02lyTp0KFDOnfunBdeeCFJUllZmSVLlmT+/PnVys2bNy/t27dfYz0jRozIggULqh6zZ8+u1X4DAAAAAABrVyuhxhtvvJE+ffqke/fuGTBgQObMmZMk+cpXvpKzzjqrNpqs1vbs2bPToUOHJMmnPvWpNGjQIJMnT64qM2fOnDzzzDPZd99911hPRUVFmjdvXu0BAAAAAADUnVoJNb797W+nQYMGefnll9OkSZOq48cdd1zuuuuuDapr0aJFeeKJJ/LEE08kSWbOnJknnngiL7/8chYtWpSzzz47f/rTnzJr1qzcd999OeKII9KmTZscddRRSZIWLVpkyJAhOeuss3Lvvffm8ccfz5e+9KX06tUrffv23WhjBgAAAAAAalet7Klxzz335O67784OO+xQ7Xi3bt3y0ksvbVBdjz76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i6JY5dhKY8aMyahRo1Y53qlTp1rpGwAAAACwZWlx+ZbZVk1t6j76mZSnt99+Oy1atFjj+a0i1GjTpk3q1au3yqyMefPmrTJ7Y6URI0Zk2LBhVc9XrFiRN998M61bt15jEEJ5WbhwYTp16pTZs2enefPmdd0dKBvuHagZ9w7UjHsHasa9AzXn/oGace/wURVFkbfffjsdO3Zca7mtItRo2LBhPvWpT2Xy5Mk56qijqo5Pnjw5n/vc51Z7TUVFRSoqKqod22677Wqzm9SR5s2b+x8t1IB7B2rGvQM1496BmnHvQM25f6Bm3Dt8FGubobHSVhFqJMmwYcNy0kknZc8998w+++yTn/70p3n55Zfz9a9/va67BgAAAAAArIetJtQ47rjj8sYbb+TCCy/MnDlz0rNnz9x5553p3LlzXXcNAAAAAABYD1tNqJEkp512Wk477bS67gabiYqKilxwwQWrLDMGrJ17B2rGvQM1496BmnHvQM25f6Bm3DtsKqWiKIq67gQAAAAAAMC6bFPXHQAAAAAAAFgfQg0AAAAAAKAsCDUAAAAAAICyINRgi9SlS5eUSqVVHqeffvpqy993332rLf/Xv/51E/ccNq0HHnggRxxxRDp27JhSqZQ77rij2vmiKDJy5Mh07NgxjRs3zoEHHphnn312nfX++te/To8ePVJRUZEePXrk9ttvr6URQN1Y272zdOnSfO9730uvXr3StGnTdOzYMSeffHJeffXVtdY5YcKE1b4Wvf/++7U8Gth01vW6c8opp6xyD+y9997rrNfrDluDdd0/q3sNKZVKufTSS9dYp9cetnRjxozJpz/96TRr1izt2rXLoEGD8vzzz1cr4z0PrGpd9473PNQ1oQZbpOnTp2fOnDlVj8mTJydJvvCFL6z1uueff77add26ddsU3YU6884772S33XbLFVdcsdrzY8eOzbhx43LFFVdk+vTpqayszCGHHJK33357jXX+6U9/ynHHHZeTTjopTz75ZE466aQce+yxeeSRR2prGLDJre3eeffdd/PYY4/l/PPPz2OPPZaJEyfmb3/7W4488sh11tu8efNqr0Nz5sxJo0aNamMIUCfW9bqTJIcddli1e+DOO+9ca51ed9harOv++fDrx/XXX59SqZRjjjlmrfV67WFLdv/99+f000/Pww8/nMmTJ2fZsmXp169f3nnnnaoy3vPAqtZ173jPQ10rFUVR1HUnoLYNHTo0v//97/PCCy+kVCqtcv6+++7LQQcdlPnz52e77bbb9B2EzUCpVMrtt9+eQYMGJfngG0sdO3bM0KFD873vfS9Jsnjx4rRv3z6XXHJJvva1r622nuOOOy4LFy7MH/7wh6pjhx12WFq2bJlbbrml1scBm9qH753VmT59ej7zmc/kpZdeyo477rjaMhMmTMjQoUPz1ltv1U5HYTOzunvnlFNOyVtvvbXKN9DXxusOW6P1ee0ZNGhQ3n777dx7771rLOO1h63Na6+9lnbt2uX+++/PAQcc4D0PrKcP3zur4z0Pm5KZGmzxlixZkptuuilf/vKXVxto/Lvdd989HTp0SJ8+fTJt2rRN1EPYPM2cOTNz585Nv379qo5VVFSkd+/eeeihh9Z43Z/+9Kdq1yTJoYceutZrYEu3YMGClEqldQbnixYtSufOnbPDDjvk8MMPz+OPP75pOgibkfvuuy/t2rVL9+7d89WvfjXz5s1ba3mvO7Cqf/3rX5k0aVKGDBmyzrJee9iaLFiwIEnSqlWrJN7zwPr68L2zpjLe87CpCDXY4t1xxx156623csopp6yxTIcOHfLTn/40v/71rzNx4sTsvPPO6dOnTx544IFN11HYzMydOzdJ0r59+2rH27dvX3VuTddt6DWwJXv//fczfPjwnHDCCWnevPkay+2yyy6ZMGFCfvvb3+aWW25Jo0aN8tnPfjYvvPDCJuwt1K3+/fvnF7/4RaZOnZrLLrss06dPz8EHH5zFixev8RqvO7CqG264Ic2aNcvRRx+91nJee9iaFEWRYcOGZb/99kvPnj2TeM8D62N1986Hec/Dpla/rjsAte26665L//7907FjxzWW2XnnnbPzzjtXPd9nn30ye/bs/OAHP1jjtDrYWnx4hlNRFOuc9VSTa2BLtHTp0nzxi1/MihUrctVVV6217N57711tQ+TPfvaz2WOPPfKTn/wkP/7xj2u7q7BZOO6446r+u2fPntlzzz3TuXPnTJo0aa0fznrdgequv/76nHjiietco9xrD1uTM844I0899VQefPDBVc55zwNrtrZ7J/Geh7phpgZbtJdeeilTpkzJV77ylQ2+du+995YUs1WrrKxMklW+bTRv3rxVvpX04es29BrYEi1dujTHHntsZs6cmcmTJ6/1G0urs8022+TTn/601yK2ah06dEjnzp3Xeh943YHq/vd//zfPP/98jd4Dee1hS3XmmWfmt7/9baZNm5Yddtih6rj3PLB2a7p3VvKeh7oi1GCLNn78+LRr1y4DBw7c4Gsff/zxdOjQoRZ6BeWha9euqayszOTJk6uOLVmyJPfff3/23XffNV63zz77VLsmSe655561XgNbmpX/uH/hhRcyZcqUtG7deoPrKIoiTzzxhNcitmpvvPFGZs+evdb7wOsOVHfdddflU5/6VHbbbbcNvtZrD1uaoihyxhlnZOLEiZk6dWq6du1a7bz3PLB667p3Eu95qFuWn2KLtWLFiowfPz6DBw9O/frV/9RHjBiRf/7zn7nxxhuTJJdffnm6dOmSXXfdtWpj8V//+tf59a9/XRddh01m0aJF+fvf/171fObMmXniiSfSqlWr7Ljjjhk6dGhGjx6dbt26pVu3bhk9enSaNGmSE044oeqak08+Odtvv33GjBmTJPnWt76VAw44IJdcckk+97nP5Te/+U2mTJmyxqmqUI7Wdu907Ngxn//85/PYY4/l97//fZYvX171Tb5WrVqlYcOGSVa9d0aNGpW999473bp1y8KFC/PjH/84TzzxRK688spNP0CoJWu7d1q1apWRI0fmmGOOSYcOHTJr1qycc845adOmTY466qiqa7zusLVa17/bkmThwoX51a9+lcsuu2y1dXjtYWtz+umn5+abb85vfvObNGvWrOrfZC1atEjjxo1TKpW854HVWNe9s2zZMu95qFsFbKHuvvvuIknx/PPPr3Ju8ODBRe/evaueX3LJJcXHP/7xolGjRkXLli2L/fbbr5g0adIm7C3UjWnTphVJVnkMHjy4KIqiWLFiRXHBBRcUlZWVRUVFRXHAAQcUTz/9dLU6evfuXVV+pV/96lfFzjvvXDRo0KDYZZddil//+tebaESwaazt3pk5c+ZqzyUppk2bVlXHh++doUOHFjvuuGPRsGHDom3btkW/fv2Khx56aNMPDmrR2u6dd999t+jXr1/Rtm3bokGDBsWOO+5YDB48uHj55Zer1eF1h63Vuv7dVhRFce211xaNGzcu3nrrrdXW4bWHrc2a/k02fvz4qjLe88Cq1nXveM9DXSsVRVHUSloCAAAAAACwEdlTAwAAAAAAKAtCDQAAAAAAoCwINQAAAAAAgLIg1AAAAAAAAMqCUAMAAAAAACgLQg0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKglADAADYbHTp0iWXX375Rqtv1qxZKZVKeeKJJzbougkTJmS77bbbaP0AAAA2DqEGAACw2Zg+fXr+8z//c5O2ubog5bjjjsvf/va3TdoPAABg3erXdQcAAICty9KlS9OgQYNqx5YsWZKGDRumbdu2ddSr6ho3bpzGjRvXdTcAAIAPMVMDAACosbvuuiv77bdftttuu7Ru3TqHH354XnzxxarzK5d/+uUvf5kDDzwwjRo1yk033ZRTTjklgwYNypgxY9KxY8d07949SfVZE8cff3y++MUvVmtv6dKladOmTcaPH79e7a/LgQcemJdeeinf/va3UyqVUiqVkqy6/NTIkSPzyU9+Mtdff3123HHHbLvttvnGN76R5cuXZ+zYsamsrEy7du3y/e9/v1r9CxYsyH/+53+mXbt2ad68eQ4++OA8+eST690/AACgOqEGAABQY++8806GDRuW6dOn5957780222yTo446KitWrKhW7nvf+16++c1v5i9/+UsOPfTQJMm9996bv/zlL5k8eXJ+//vfr1L3iSeemN/+9rdZtGhR1bG7774777zzTo455pgNan9NJk6cmB122CEXXnhh5syZkzlz5qyx7Isvvpg//OEPueuuu3LLLbfk+uuvz8CBA/PKK6/k/vvvzyWXXJLzzjsvDz/8cJKkKIoMHDgwc+fOzZ133pkZM2Zkjz32SJ8+ffLmm2+uV/8AAIDqLD8FAADU2MpwYaXrrrsu7dq1y3PPPZeePXtWHR86dGiOPvroamWbNm2an/3sZ2nYsOFq6z700EPTtGnT3H777TnppJOSJDfffHOOOOKING/efIPaX5NWrVqlXr16adasWSorK9dadsWKFbn++uvTrFmz9OjRIwcddFCef/753Hnnndlmm22y884755JLLsl9992XvffeO9OmTcvTTz+defPmpaKiIknygx/8IHfccUf+53/+Z5PvHQIAAFsCMzUAAIAae/HFF3PCCSfkYx/7WJo3b56uXbsmSV5++eVq5fbcc89Vru3Vq9caA40kadCgQb7whS/kF7/4RZIPZmX85je/yYknnrjB7W8MXbp0SbNmzaqet2/fPj169Mg222xT7di8efOSJDNmzMiiRYvSunXrbLvttlWPmTNnbtASWQAAwP8xUwMAAKixI444Ip06dcr/+3//Lx07dsyKFSvSs2fPLFmypFq5pk2brnLt6o592IknnpjevXtn3rx5mTx5cho1apT+/ftvcPsbw4c3Ny+VSqs9tnLpqxUrVqRDhw657777Vqnr3/frAAAA1p9QAwAAqJE33ngjf/nLX3Lttddm//33T5I8+OCDG7WNfffdN506dcptt92WP/zhD/nCF75QNbtjY7XfsGHDLF++fKP2O0n22GOPzJ07N/Xr10+XLl02ev0AALA1EmoAAAA10rJly7Ru3To//elP06FDh7z88ssZPnz4Rm2jVCrlhBNOyDXXXJO//e1vmTZt2kZvv0uXLnnggQfyxS9+MRUVFWnTps1G6Xvfvn2zzz77ZNCgQbnkkkuy884759VXX82dd96ZQYMGrXZJLgAAYO3sqQEAANTINttsk1tvvTUzZsxIz5498+1vfzuXXnrpRm/nxBNPzHPPPZftt98+n/3sZzd6+xdeeGFmzZqVj3/842nbtu1G63epVMqdd96ZAw44IF/+8pfTvXv3fPGLX8ysWbPSvn37jdYOAABsTUpFURR13QkAAAAAAIB1MVMDAAAAAAAoC0INAAAAAACgLAg1AAAAAACAsiDUAAAAAAAAyoJQAwAAAAAAKAtCDQAAAAAAoCwINQAAAAAAgLIg1AAAAAAAAMqCUAMAAAAAACgLQg0AAAAAAKAsCDUAAAAAAICyINQAAAAAAADKwv8HcIV5PuDuPwEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "network = NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=1, # second\n", + " pol_proof_time=2, # seconds\n", + ")\n", + "\n", + "\n", + "mixnet_delay_data = np.array([network.sample_mixnet_delay() for _ in range(100000)])\n", + "\n", + "plt.figure(figsize=(16,8))\n", + "ax = plt.subplot(221)\n", + "_ = ax.hist(mixnet_delay_data, bins=100)\n", + "ax.set_title(f\"mixnet delay\")\n", + "_ = ax.set_ylabel(\"frequency\")\n", + "_ = ax.set_xlabel(\"delay (seconds)\")\n", + "\n", + "broadcast_delay_data = network.sample_broadcast_delay(np.zeros(100000))\n", + "ax = plt.subplot(222)\n", + "_ = ax.hist(broadcast_delay_data, bins=100)\n", + "ax.set_title(f\"block broadcast_delay\")\n", + "ax.set_ylabel(\"frequency\")\n", + "ax.set_xlabel(\"delay (seconds)\")\n", + "\n", + "BLOCK_TIME = 0\n", + "block_arrival_slots = np.array([network.block_arrival_time(np.array([BLOCK_TIME])) for _ in range(10000)])\n", + "\n", + "ax = plt.subplot(212)\n", + "_ = ax.hist(block_arrival_slots, bins=100)\n", + "ax.set_title(f\"block arrival slot when sent in slot {BLOCK_TIME}\")\n", + "ax.set_ylabel(\"frequency\")\n", + "ax.set_xlabel(\"arrival time\")\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "94cc80de-2c60-495f-a73a-d126717f1007", + "metadata": {}, + "outputs": [], + "source": [ + "class Sim:\n", + " def __init__(self, params: Params, network: NetworkParams):\n", + " self.params = params\n", + " self.network = network\n", + " self.events = {}\n", + " self.blocks = []\n", + " self.block_heights = np.array([], dtype=np.int64)\n", + " self.block_arrivals = np.zeros(shape=(params.N, 0), dtype=np.int64) # arrival time to each leader for each block\n", + "\n", + " def emit_block(self, t, leader, height, parent):\n", + " assert type(t) in [float, np.float64], type(t)\n", + " assert type(leader) in [int, np.int64]\n", + " assert type(height) in [int, np.int64]\n", + " assert type(parent) in [int, np.int64]\n", + " \n", + " block = Block(\n", + " id=len(self.blocks),\n", + " t=t,\n", + " height=height,\n", + " parent=parent,\n", + " leader=leader\n", + " )\n", + " self.blocks.append(block)\n", + " self.block_heights = np.append(self.block_heights, block.height)\n", + " \n", + " # decide when this block will arrive at each node\n", + " self.block_arrivals = np.append(self.block_arrivals, self.network.block_arrival_time(np.repeat(t, self.params.N).reshape((self.params.N, 1))), axis=1)\n", + " return block.id\n", + "\n", + " def plot_spacetime_diagram(self, MAX_T=1 * 60 * 60):\n", + " alpha_index = sorted(range(self.params.N), key=lambda n: self.params.relative_stake[n])\n", + " nodes = [f\"$N_{n}$($\\\\alpha$={self.params.relative_stake[n]:.2f})\" for n in alpha_index]\n", + " messages = [(nodes[alpha_index.index(self.blocks[b].leader)], nodes[alpha_index.index(node)], self.blocks[b].t, arrival_t, f\"$B_{{{b}}}$\") for b, arrival_ts in enumerate(self.block_arrivals.T) for node, arrival_t in enumerate(arrival_ts) if arrival_t < MAX_T]\n", + " \n", + " fig, ax = plt.subplots(figsize=(8,8))\n", + " \n", + " # Plot vertical lines for each node\n", + " max_slot = max(s for _,_,start_t, end_t,_ in messages for s in [start_t, end_t])\n", + " for i, node in enumerate(nodes):\n", + " ax.plot([i, i], [0, max_slot], 'k-', linewidth=0.1)\n", + " ax.text(i, max_slot + 30 * (0 if i % 2 == 0 else 1), node, ha='center', va='bottom')\n", + " \n", + " # Plot messages\n", + " colors = plt.cm.rainbow(np.linspace(0, 1, len(messages)))\n", + " for (start, end, start_time, end_time, label), color in zip(messages, colors):\n", + " start_idx = nodes.index(start)\n", + " end_idx = nodes.index(end)\n", + " ax.annotate('', xy=(end_idx, end_time), xytext=(start_idx, start_time),\n", + " arrowprops=dict(arrowstyle='->', color=\"black\", lw=0.5))\n", + " placement = 0\n", + " mid_x = start_idx * (1 - placement) + end_idx * placement\n", + " mid_y = start_time * (1 - placement) + end_time * placement\n", + " ax.text(mid_x, mid_y, label, ha='center', va='center', \n", + " bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))\n", + " \n", + " ax.set_xlim(-1, len(nodes))\n", + " ax.set_ylim(0, max_slot + 70)\n", + " ax.set_xticks(range(len(nodes)))\n", + " ax.set_xticklabels([])\n", + " # ax.set_yticks([])\n", + " ax.set_title('Space-Time Diagram')\n", + " ax.set_ylabel('Time')\n", + " \n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + " def honest_chain(self):\n", + " chain_head = max(self.blocks, key=lambda b: b.height)\n", + " honest_chain = {chain_head.id}\n", + " \n", + " curr_block = chain_head\n", + " while curr_block.parent >= 0:\n", + " honest_chain.add(curr_block.parent)\n", + " curr_block = self.blocks[curr_block.parent]\n", + " return sorted(honest_chain, key=lambda b: self.blocks[b].height)\n", + "\n", + " def visualize_chain(self):\n", + " honest_chain = self.honest_chain()\n", + " print(\"Honest chain length\", len(honest_chain))\n", + " honest_chain_set = set(honest_chain)\n", + " \n", + " layout = Layout()\n", + " layout.hierachical = True\n", + " \n", + " G = Network(width=1600, height=800, notebook=True, directed=True, layout=layout, cdn_resources='in_line')\n", + "\n", + " for block in self.blocks:\n", + " # level = slot\n", + " level = block.height\n", + " color = \"lightgrey\"\n", + " if block.id in honest_chain_set:\n", + " color = \"orange\"\n", + "\n", + " G.add_node(int(block.id), level=block.height, color=color, label=f\"{block.t:.2f}\")\n", + " # G.add_node(int(block.id), level=block.t * 0.1, color=color, label=f\"{block.height}\")\n", + "\n", + " if block.parent >= 0:\n", + " G.add_edge(int(block.id), int(block.parent), width=2, color=color)\n", + " \n", + " return G.show(\"chain.html\")\n", + "\n", + " def adverserial_analysis(self):\n", + " np.random.seed(0)\n", + " adversary = self.params.N - 1\n", + " \n", + " reorg_depths = []\n", + " honest_chain = self.honest_chain()\n", + " print(\"honest_chain length\", len(honest_chain))\n", + "\n", + " adversary_delays = self.delays.T[adversary]\n", + "\n", + " for block in self.blocks:\n", + " if block.id % 100 == 0:\n", + " print(\"processing\", block)\n", + " nearest_honest_block = block\n", + " while nearest_honest_block.height >= len(honest_chain) or honest_chain[nearest_honest_block.height-1] != nearest_honest_block.id:\n", + " nearest_honest_block = self.blocks[nearest_honest_block.parent]\n", + " \n", + " \n", + " adversary_blocks = []\n", + " t = block.t\n", + " for h in range(block.height + 1, self.params.CHAIN_HEIGHT):\n", + " t += adversary_delays[h-1]\n", + " adversary_blocks.append(t)\n", + " adverserial_height = block.height + len(adversary_blocks)\n", + " \n", + " honest_chain_up_to_t = [\n", + " b for b in honest_chain\n", + " if self.blocks[b].t <= t\n", + " ]\n", + " last_honest_block = self.blocks[honest_chain_up_to_t[-1]]\n", + " assert last_honest_block.height >= nearest_honest_block.height, (t, last_honest_block, nearest_honest_block)\n", + " if last_honest_block.height < adverserial_height:\n", + " reorg_depths += [last_honest_block.height - nearest_honest_block.height]\n", + " \n", + " plt.hist(reorg_depths, bins=60)\n", + " plt.grid(True)\n", + " plt.title(f\"reorg depths with {self.params.adversary_control * 100:.0f}% adversary\")\n", + " plt.show()\n", + "\n", + " def run(self, seed=None):\n", + " if seed is not None:\n", + " np.random.seed(seed)\n", + "\n", + " \n", + " # emit the genesis block\n", + " \n", + " \n", + " t = 0.0\n", + " self.emit_block(\n", + " t=t,\n", + " leader=0,\n", + " height=1,\n", + " parent=-1,\n", + " )\n", + " self.block_arrivals[:,:] = 0 # all nodes see the genesis block immediately\n", + " \n", + " self.delays = self.params.block_delay_at_height()\n", + "\n", + " for h in range(1, self.params.CHAIN_HEIGHT):\n", + " for leader, block_delay in enumerate(self.delays[h-1]):\n", + " if self.params.adversary_control and leader == self.params.N-1:\n", + " continue\n", + " leader_arrivals = self.block_arrivals[leader]\n", + " \n", + " parent = (leader_arrivals == leader_arrivals[self.block_heights == h].min()).argmax()\n", + " assert parent is not None\n", + " assert self.blocks[parent].height == h, (self.blocks[parent], h)\n", + " self.emit_block(\n", + " t=self.blocks[parent].t + block_delay,\n", + " leader=leader,\n", + " height=self.blocks[parent].height + 1,\n", + " parent=parent,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "617a5279-43cb-4fb2-ae65-33fa3a5355fc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "avg blocks per sec 0.21317693308797184\n", + "Number of blocks 2441\n", + "longest chain 245\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "\n", + "sim = Sim(\n", + " params=Params(\n", + " CHAIN_HEIGHT=245,\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_stake = np.random.pareto(10, size=10),\n", + " adversary_control=0.3,\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=2, # seconds\n", + " )\n", + ")\n", + "sim.run(seed=5)\n", + "# sim.visualize_chain()\n", + "# sim.plot_spacetime_diagram()\n", + "\n", + "n_blocks_per_s = len(sim.blocks) / max(b.t for b in sim.blocks)\n", + "print(\"avg blocks per sec\", n_blocks_per_s)\n", + "print(\"Number of blocks\", len(sim.blocks))\n", + "print(\"longest chain\", max(b.height for b in sim.blocks))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "d6ecc3ce-9206-4e0b-9118-55cc01aea8fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "honest_chain length 245\n", + "processing Block(id=0, t=0.0, height=1, parent=-1, leader=0)\n", + "processing Block(id=100, t=1231.1825397618154, height=11, parent=81, leader=9)\n", + "processing Block(id=200, t=643.888657267845, height=21, parent=189, leader=9)\n", + "processing Block(id=300, t=2018.0763488312223, height=31, parent=286, leader=9)\n", + "processing Block(id=400, t=1652.7268466796731, height=41, parent=390, leader=9)\n", + "processing Block(id=500, t=2166.111823344706, height=51, parent=483, leader=9)\n", + "processing Block(id=600, t=2309.4070586513462, height=61, parent=588, leader=9)\n", + "processing Block(id=700, t=1975.9198897321473, height=71, parent=689, leader=9)\n", + "processing Block(id=800, t=2166.04768532737, height=81, parent=787, leader=9)\n", + "processing Block(id=900, t=2480.0230869739353, height=91, parent=882, leader=9)\n", + "processing Block(id=1000, t=4488.3970031230565, height=101, parent=986, leader=9)\n", + "processing Block(id=1100, t=3511.4998241967496, height=111, parent=1083, leader=9)\n", + "processing Block(id=1200, t=5101.30605009875, height=121, parent=1189, leader=9)\n", + "processing Block(id=1300, t=4461.73775749359, height=131, parent=1288, leader=9)\n", + "processing Block(id=1400, t=4971.418138581639, height=141, parent=1388, leader=9)\n", + "processing Block(id=1500, t=5558.756693373566, height=151, parent=1488, leader=9)\n", + "processing Block(id=1600, t=5666.4009766452255, height=161, parent=1582, leader=9)\n", + "processing Block(id=1700, t=5619.044916466169, height=171, parent=1689, leader=9)\n", + "processing Block(id=1800, t=5806.723632336016, height=181, parent=1788, leader=9)\n", + "processing Block(id=1900, t=8114.93522758204, height=191, parent=1889, leader=9)\n", + "processing Block(id=2000, t=6222.034399400075, height=201, parent=1987, leader=9)\n", + "processing Block(id=2100, t=6611.0363127282435, height=211, parent=2089, leader=9)\n", + "processing Block(id=2200, t=6841.239918856918, height=221, parent=2189, leader=9)\n", + "processing Block(id=2300, t=7713.936866630708, height=231, parent=2288, leader=9)\n", + "processing Block(id=2400, t=8046.790543317015, height=241, parent=2385, leader=9)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGxCAYAAABIjE2TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8VUlEQVR4nO3de1yUZf7/8feIw3AQUEQEFBHN1k2NTMvSSq1AycxDdpAOaG7mZj1y1e24fhl2Te1cX81OW2opaf1WrU03w1SsVXcVa/NQLW6ahyQTD4jYOOL1+6Mv007DUZjhRl/Px2MeD+/rvu7rvu4Pt/DmvudmbMYYIwAAAAtp0tATAAAA+CUCCgAAsBwCCgAAsBwCCgAAsBwCCgAAsBwCCgAAsBwCCgAAsBwCCgAAsBwCCgAAsBwCClBP1qxZI5vNpjVr1vh1P7Nnz9bcuXMr3f//+3//z6/7PxM2m01Op9OzvH37djmdTu3atcunb79+/dS1a9cz3tdjjz2m7t27Kzo6WiEhIerQoYPGjh2rb7/91qev2+1Wdna22rdvL4fDoc6dO2vmzJk+/dauXavu3bsrIiJCV111lbZv3+7TZ/z48erbt68C9ce5nU6nbDZbQPYFNAQCCtDIVBZQrGz9+vX6zW9+41nevn27srOzKwwodXXkyBGNHDlS8+bN04cffqjJkyfrgw8+UK9evVRUVOTV995779X06dM1fvx4rVixQsOGDdMDDzygadOmeY03bNgwXXLJJVq8eLGioqI0fPhwlZWVefps2LBBb7zxhl555RVCA1BPmjb0BIDS0lKFhYWddfvCzy677LKA7evFF1/0Wu7Xr5+Sk5N13XXX6b333tNdd90lSdq2bZtef/11Pf744/r973/v6VtUVKSpU6dq3Lhxio6O1vr16+VyufTiiy/KbrerS5cuatOmjQoKCtS5c2e53W6NHTtWDz30kDp37hyw42woJ06cUGhoqF/3YYzRjz/+6Pf9wNq4goKAKr8svXnzZo0YMUItWrRQx44dJf30TWn27Nm66KKLFBoaqhYtWmjEiBH65ptvfMZ54403lJKSopCQEEVHR2vYsGH68ssvvfqMGjVKzZo105YtW5SWlqaIiAhdc801kn76rXjMmDGKjo5Ws2bNNGjQIH3zzTc+tyIq89VXX2ngwIEKCwtTTEyMxo0bp2PHjlXYd+XKlbrmmmsUGRmpsLAw9enTRx9//HGFdfnss880fPhwRUZGKioqSrfffrt++OEHT7/27dtr27ZtysvLk81mk81mU/v27b3Gcrvdeuyxx5SQkKDIyEhde+21+vrrr736fPbZZ7r++usVGxsrh8OhhIQEDRo0SHv37q30mF988UU1adJEBw4c8LQ988wzstlsGj9+vKft9OnTatGihSZNmuRp+++6zp07VzfddJMkqX///p7j+OVVoY0bN+rKK69UWFiYOnTooBkzZuj06dOVzq8qrVq1kiQ1bfrz72RLly6VMUajR4/26jt69GidOHFCH374oSTpxx9/lMPhkN1ulyQ1a9bM0y5JTz/9tE6ePKlHHnmkVnPKzc3VkCFD1LZtW4WEhOi8887TPffco4MHD/r0XbZsmS666CI5HA4lJyfr6aef9unTvXt3XXnllT7tZWVlatOmjYYPH+5pO3nypKZOnarOnTvL4XCoVatWGj16tNe5Jv10vl1//fVavHixunfvrpCQEGVnZ0uS3n33XfXq1UtRUVGer1F5+Cuvz6RJk3TRRRcpKipK0dHRuvzyy/Xee+/5zNFms+m+++7Tyy+/rF//+tdyOByaO3euOnXqpAEDBvj0LykpUVRUlNd5h7OQAQIoKyvLSDJJSUnmoYceMrm5uWbp0qXGGGPuvvtuY7fbzaRJk8yHH35ocnJyTOfOnU3r1q1NYWGhZ4xp06YZSWbkyJFm2bJl5s033zQdOnQwUVFR5t///renX2ZmprHb7aZ9+/Zm+vTp5uOPPzYrVqwwZWVl5oorrjAhISFmxowZ5qOPPjLZ2dmmU6dORpLJysqq8hgKCwtNbGysadOmjZkzZ45Zvny5ue2220y7du2MJLN69WpP37feesvYbDYzdOhQs3jxYvPXv/7VXH/99SYoKMisXLmywrr8/ve/NytWrDDPPvusCQ8PN927dzcnT540xhizefNm06FDB9O9e3ezfv16s379erN582ZjjDGrV682kkz79u3NbbfdZpYtW2befvtt065dO9OpUydz6tQpY4wxJSUlpmXLlqZnz57mnXfeMXl5eWbRokVm3LhxZvv27ZUe91dffWUkmZycHE/bwIEDTWhoqOnUqZOn7R//+IeRZJYvX+5p+++6HjhwwPM1fPHFFz3HceDAAWOMMX379jUtW7Y0nTp1Mi+//LLJzc019957r5Fk5s2bV+XX5r+53W5TWlpqNm/ebPr06WPOP/98c+zYMc/6W2+91bRq1cpnu5KSEiPJPPLII8YYY3bv3m3sdruZPXu2OXz4sHnooYdMy5YtTWlpqdmxY4cJCwszeXl5NZ5XuZdeeslMnz7dvP/++yYvL8/MmzfPpKSkmF/96leer7cxxqxcudIEBQWZK664wixevNi8++675pJLLvGcb+VeeOEFI8nr/4AxxixfvtxIMu+//74xxpiysjIzcOBAEx4ebrKzs01ubq7585//bNq0aWMuuOACU1pa6tk2KSnJxMfHmw4dOpg33njDrF692vzzn/8069atMzabzdx6661m+fLlZtWqVWbOnDnmjjvu8Gx75MgRM2rUKPPWW2+ZVatWmQ8//NBMnjzZNGnSxOfrKMm0adPGXHjhhSYnJ8esWrXKbN261bzwwgvGZrP5HNOLL75oJJlt27bVuu5oPAgoCKjyH8T/8z//49W+fv16I8k888wzXu179uwxoaGh5sEHHzTGGHP48GETGhpqrrvuOq9+u3fvNg6Hw2RkZHjaMjMzjSTzxhtvePVdtmyZkWReeuklr/bp06fXKKA89NBDxmazmc8//9yrPTU11SugHD9+3ERHR5vBgwd79SsrKzMpKSnm0ksv9anL7373O6++CxYsMJLM/PnzPW1dunQxffv29ZlXeUD5ZW3eeecdI8msX7/eGGPMpk2bjCRPMKyNtm3bmrvuussYY4zL5TLh4eHmoYceMpLMt99+a4wx5vHHHzd2u92UlJR4tvtlXd99912fMFeub9++RpL5xz/+4dV+wQUXmAEDBtRonvv37zeSPK9evXqZffv2efVJTU01v/rVryrcPjg42IwdO9azPHv2bBMcHGwkmaioKPPee+8ZY4y59tprzZgxY2o0p6qcPn3auN1u8+233xpJnvGNMaZXr14mISHBnDhxwtNWXFxsoqOjvQLKwYMHTXBwsHn00Ue9xr755ptN69atjdvtNsYY8/bbbxtJ5i9/+YtXv40bNxpJZvbs2Z62pKQkExQUZL7++muvvk8//bSRZI4cOVLjYzx16pRxu91mzJgxpnv37l7ryut66NAhr/bi4mITERFhHnjgAa/2Cy64wPTv37/G+0bjxC0eNIgbb7zRa/mDDz6QzWbT7bffrlOnTnlecXFxSklJ8TwZs379ep04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RcrOzlZISIiysrKq3dfAgQPVp08fTZo0ScXFxerRo4fWr1+vN998U5LUpEnVuX3ChAl64403NGjQIE2dOlWtW7fWggUL9NVXX3n1a9asmWbOnKnMzEwdOnRII0aMUGxsrH744Qf961//0g8//KCXXnrJa5vFixeradOmSk1N1bZt2zRlyhSlpKR4vV+m/Df/RYsWqUOHDgoJCfEEuJr44IMPNHv2bA0dOlQdOnSQMUaLFy/WkSNHPIGjKtdcc41mzpyp0NBQ9enTR5KUnJys5ORkffTRR7rhhhu8HuetSPnViVdffVUREREKCQlRcnJyna8UffHFF/rd736nESNGqEOHDmrSpIm2bNmi5557Ti1bttTkyZM9fbt06aIxY8YoKytLQUFBuuSSS/TRRx/p1Vdf1dSpU31u8Ug//fZ/zz33yOl0Kjk52dM+YMAA/fGPf1RkZKQKCgr08ccf68EHH6x0np07d1bHjh318MMPyxij6Oho/fWvf/Xcmvlvf/rTnzRw4EClpqZq0qRJKisr0xNPPKHw8HCfW4TST7d5nnjiCWVkZCg0NFS33HKL1/pbb71VCxYs0HXXXacHHnhAl156qex2u/bu3avVq1dryJAhGjZsWJV1/p//+R/t3btX11xzjdq2basjR47ohRdekN1u9/wCUP548r333qsRI0Zoz549+tOf/qT4+HgVFBRUOf4vpaam6oILLtDq1at1++23KzY2tlbbo5FquPfn4lxU/rTKDz/8UOH6N954w/Tq1cuEh4eb0NBQ07FjR3PnnXeaTZs2efX785//bC688EITHBxsoqKizJAhQ3weOczMzDTh4eEV7ufQoUNm9OjRpnnz5iYsLMykpqaaDRs2GEnmhRdeqPY4tm/fblJTU01ISIiJjo42Y8aMMe+9916FT6bk5eWZQYMGmejoaGO3202bNm3MoEGDzLvvvutTl/z8fDN48GDTrFkzExERYUaOHGm+//57r/F27dpl0tLSTEREhOfRZGN+fornv8c1xpidO3caSWbOnDnGmJ8eFx45cqTp2LGjCQ0NNVFRUebSSy81c+fOrfa4jTGe40xNTfVqv/vuu40k87//+78+26iCp6Oef/55k5ycbIKCgrzm17dvX9OlSxefMTIzMz3HWpnCwkJz++23m44dO5qwsDATHBxsOnToYMaNG2d2797t0//kyZMm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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "89bf9a0f-7f47-4216-80e8-5e6e24998f3b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, 'PoL time as fraction of mean block time')" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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3l2TJ0+Wj4+PwsPDtX37dn3wwQd66623XFk6AACoJlx6mCkvL08zZszQ+vXrdfbsWYWEhGjIkCH685//LC8vL0nSmTNnNH36dCUkJOjcuXMKDw/X2LFj9fzzz8tisdx0HhxmAgDAfOzZfrs0zFQFwgwAAOZjmnNmAAAAbhVhBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmBphBgAAmJpLw0xhYaFefvllNWrUSD4+Prr77rv12muvqbi4uES7jIwMPfzwwwoICJCfn586duyoEydOuKhqAABQnXi4cubz5s3T0qVLtWLFCjVv3lzJycmKiYlRQECAJk2aJEk6cuSIunbtqtGjR2vmzJkKCAhQRkaGatSo4crSAQBANWExDMNw1cwHDBigwMBAvf/++9ZpjzzyiGrWrKmVK1dKkp544gl5enpa39srNzdXAQEBysnJkb+/v0PqBgAAzmXP9tulh5m6du2qLVu2KDMzU5J04MABJSYmql+/fpKk4uJi/fOf/1STJk0UFRWlevXqqUOHDvr000/L7TM/P1+5ubklXgAA4Pbl0jAzdepUDRkyRE2bNpWnp6ciIyMVGxurIUOGSJLOnj2rCxcuaO7cuerbt68SEhL0hz/8QYMGDdL27dvL7HPOnDkKCAiwvsLCwqpykQAAQBVz6WGmNWvWaPLkyfrLX/6i5s2bKy0tTbGxsXrrrbc0YsQIZWVlKTQ0VEOGDNFHH31k/d7DDz8sX19frV69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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "N = 100\n", + "net_params = [NetworkParams(\n", + " mixnet_delay_mean=0.1, # seconds\n", + " mixnet_delay_var=0.1,\n", + " broadcast_delay_mean=0.1, # second\n", + " pol_proof_time=i/N * 5, # seconds\n", + " ) for i in range(N)]\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " CHAIN_HEIGHT=1000, # seconds\n", + " MEAN_BLOCK_TIME=20,\n", + " honest_stake = np.random.pareto(10, size=10),\n", + " adversary_control=0.1,\n", + " ),\n", + " network=net\n", + ") for net in net_params]\n", + "\n", + "[sim.run() for sim in sims]\n", + "\n", + "\n", + "plt.scatter([sim.network.pol_proof_time / sim.params.MEAN_BLOCK_TIME for sim in sims], [100 - 100 * len(sim.honest_chain()) / len(sim.blocks) for sim in sims])\n", + "plt.ylabel(\"wasted blocks %\")\n", + "plt.xlabel(\"PoL time as fraction of mean block time\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c21cfba-68b3-487b-a273-76776defddca", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/cryptarchia/weighted-cryptarchia.ipynb b/cryptarchia/weighted-cryptarchia.ipynb new file mode 100644 index 0000000..5c66546 --- /dev/null +++ b/cryptarchia/weighted-cryptarchia.ipynb @@ -0,0 +1,638 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 27, + "id": "ad657d5a-bd36-4329-b134-6745daff7ae9", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass\n", + "from pyvis.network import Network\n", + "from pyvis.options import Layout" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "a9e0b910-c633-4dbe-827c-4ddb804f7a9a", + "metadata": {}, + "outputs": [], + "source": [ + "def phi(f, alpha):\n", + " return 1 - (1-f)**alpha" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "id": "aa0aadce-a0be-4873-ba23-293be74db313", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Block:\n", + " id: int\n", + " slot: int\n", + " height: int\n", + " weight: int\n", + " parent: int\n", + " refs: list[int]\n", + " leader: int" + ] + }, + { + "cell_type": "code", + "execution_count": 247, + "id": "a538cf45-d551-4603-b484-dbbc3f3d0a73", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class NetworkParams:\n", + " mixnet_delay_mean: int # seconds\n", + " mixnet_delay_var: int\n", + " broadcast_delay_mean: int # second\n", + " pol_proof_time: int # seconds\n", + " no_network_delay: bool = False\n", + "\n", + " def sample_mixnet_delay(self):\n", + " scale = self.mixnet_delay_var / self.mixnet_delay_mean\n", + " shape = self.mixnet_delay_mean / scale\n", + " return np.random.gamma(shape=shape, scale=scale)\n", + " \n", + " def sample_broadcast_delay(self, blocks):\n", + " return np.random.exponential(self.broadcast_delay_mean, size=blocks.shape)\n", + "\n", + " def block_arrival_slot(self, block_slot):\n", + " if self.no_network_delay:\n", + " return block_slot\n", + " return self.pol_proof_time + self.sample_mixnet_delay() + self.sample_broadcast_delay(block_slot) + block_slot" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "id": "24779de7-284f-4200-9e4a-d2aa6e1b823b", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass\n", + "class Params:\n", + " SLOTS: int\n", + " f: float\n", + " honest_stake: np.array\n", + " adversary_control: float\n", + "\n", + " @property\n", + " def N(self):\n", + " return len(self.honest_stake) + 1\n", + "\n", + " @property\n", + " def stake(self):\n", + " return np.append(self.honest_stake, self.honest_stake.sum() / (1/self.adversary_control - 1))\n", + " \n", + " @property\n", + " def relative_stake(self):\n", + " return self.stake / self.stake.sum()\n", + "\n", + " def slot_prob(self):\n", + " return phi(self.f, self.relative_stake)" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "id": "a90495a8-fcda-4e47-92b4-cc5ceaa9ff9c", + "metadata": {}, + "outputs": [], + "source": [ + "class Sim:\n", + " def __init__(self, params: Params, network: NetworkParams):\n", + " self.params = params\n", + " self.network = network\n", + " self.leaders = np.zeros((params.N, params.SLOTS), dtype=np.int64)\n", + " self.blocks = []\n", + " self.block_slots = np.array([], dtype=np.int64)\n", + " self.block_weights = np.array([], dtype=np.int64)\n", + " self.block_heights = np.array([], dtype=np.int64)\n", + " self.block_arrivals = np.zeros(shape=(params.N, 0), dtype=np.int64) # arrival time to each leader for each block\n", + "\n", + " # emit the genesis block\n", + " self.emit_block(\n", + " leader=0,\n", + " slot=0,\n", + " height=1,\n", + " weight=1,\n", + " parent=-1,\n", + " refs=[]\n", + " )\n", + " self.block_arrivals[:,:] = 0 # all nodes see the genesis block\n", + "\n", + " def emit_block(self, leader, slot, weight, height, parent, refs):\n", + " assert type(leader) in [int, np.int64]\n", + " assert type(slot) in [int, np.int64]\n", + " assert type(weight) in [int, np.int64]\n", + " assert type(height) in [int, np.int64]\n", + " assert type(parent) in [int, np.int64]\n", + " assert all(type(r) in [int, np.int64] for r in refs)\n", + "\n", + " block = Block(\n", + " id=len(self.blocks),\n", + " slot=slot,\n", + " weight=weight,\n", + " height=height,\n", + " parent=parent,\n", + " refs=refs,\n", + " leader=leader,\n", + " )\n", + " self.blocks.append(block)\n", + " self.block_slots = np.append(self.block_slots, block.slot)\n", + " self.block_weights = np.append(self.block_weights, block.weight)\n", + " self.block_heights = np.append(self.block_heights, block.height)\n", + " \n", + " # decide when this block will arrive at each node\n", + " new_block_arrival_by_node = self.network.block_arrival_slot(np.repeat(block.slot, self.params.N))\n", + "\n", + " if parent != -1:\n", + " # the new block cannot arrive before it's parent\n", + " parent_arrival_by_node = self.block_arrivals[:,parent]\n", + " new_block_arrival_by_node = np.maximum(new_block_arrival_by_node, parent_arrival_by_node)\n", + " \n", + " self.block_arrivals = np.append(self.block_arrivals, new_block_arrival_by_node.reshape((self.params.N, 1)), axis=1)\n", + " return block.id\n", + "\n", + " def emit_leader_block(self, leader, slot):\n", + " assert type(leader) in [int, np.int64], type(leader)\n", + " assert isinstance(slot, int)\n", + "\n", + " parent = self.fork_choice(leader, slot)\n", + " \n", + " refs = self.select_refs(leader, parent, slot)\n", + " return self.emit_block(\n", + " leader,\n", + " slot,\n", + " weight=self.blocks[parent].weight + len(refs) + 1,\n", + " height=self.blocks[parent].height + 1,\n", + " parent=parent,\n", + " refs=refs\n", + " )\n", + "\n", + " def fork_choice(self, node, slot) -> id:\n", + " assert type(node) in [int, np.int64], type(node)\n", + " assert isinstance(slot, int)\n", + "\n", + " arrived_blocks = self.block_arrivals[node] <= slot\n", + " return (self.block_weights*arrived_blocks).argmax()\n", + "\n", + " def select_refs(self, node: int, parent: int, slot: int) -> list[id]:\n", + " assert type(node) in [int, np.int64], node\n", + " assert type(parent) in [int, np.int64], parent\n", + " assert type(slot) in [int, np.int64], slot\n", + " assert parent != -1\n", + "\n", + " parents_siblings = [s for s in self.block_siblings(node, parent, slot) if s != parent]\n", + " # we are uniformly sampling from power_set(forks)\n", + " return list(np.array(parents_siblings)[np.random.uniform(size=len(parents_siblings)) < 0.5])\n", + "\n", + " \n", + " def block_siblings(self, node, block, slot):\n", + " blocks_seen_by_node = self.block_arrivals[node,:] <= slot\n", + " parent = self.blocks[block].parent\n", + " if parent == -1:\n", + " return [block]\n", + " successor_blocks = self.block_slots > self.blocks[parent].slot\n", + " candidate_siblings = np.nonzero(blocks_seen_by_node & successor_blocks)[0]\n", + " return [b for b in candidate_siblings if self.blocks[b].parent == parent]\n", + "\n", + " def plot_spacetime_diagram(self, MAX_SLOT=1000):\n", + " alpha_index = sorted(range(self.params.N), key=lambda n: self.params.relative_stake[n])\n", + " nodes = [f\"$N_{{{n}}}$($\\\\alpha$={self.params.relative_stake[n]:.2f})\" for n in alpha_index]\n", + " messages = [(nodes[alpha_index.index(self.blocks[b].leader)], nodes[alpha_index.index(node)], self.blocks[b].slot, arrival_slot, f\"$B_{{{b}}}$\") for b, arrival_slots in enumerate(self.block_arrivals[:-1,:].T) for node, arrival_slot in enumerate(arrival_slots) if arrival_slot < MAX_SLOT]\n", + " \n", + " fig, ax = plt.subplots(figsize=(8,4))\n", + " \n", + " # Plot vertical lines for each node\n", + " max_slot = max(s for _,_,start_t, end_t,_ in messages for s in [start_t, end_t])\n", + " for i, node in enumerate(nodes):\n", + " ax.plot([i, i], [0, max_slot], 'k-', linewidth=0.1)\n", + " ax.text(i, max_slot + 30 * (0 if i % 2 == 0 else 1), node, ha='center', va='bottom')\n", + " \n", + " # Plot messages\n", + " colors = plt.cm.rainbow(np.linspace(0, 1, len(messages)))\n", + " for (start, end, start_time, end_time, label), color in zip(messages, colors):\n", + " start_idx = nodes.index(start)\n", + " end_idx = nodes.index(end)\n", + " ax.annotate('', xy=(end_idx, end_time), xytext=(start_idx, start_time),\n", + " arrowprops=dict(arrowstyle='->', color=\"black\", lw=0.5))\n", + " placement = 0\n", + " mid_x = start_idx * (1 - placement) + end_idx * placement\n", + " mid_y = start_time * (1 - placement) + end_time * placement\n", + " ax.text(mid_x, mid_y, label, ha='center', va='center', \n", + " bbox=dict(facecolor='white', edgecolor='none', alpha=0.7))\n", + " \n", + " ax.set_xlim(-1, len(nodes))\n", + " ax.set_ylim(0, max_slot + 70)\n", + " ax.set_xticks(range(len(nodes)))\n", + " ax.set_xticklabels([])\n", + " # ax.set_yticks([])\n", + " ax.set_title('Space-Time Diagram')\n", + " ax.set_ylabel('Slot')\n", + " \n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + "\n", + " def honest_chain(self):\n", + " chain_head = max(self.blocks, key=lambda b: b.weight)\n", + " honest_chain = {chain_head.id}\n", + " \n", + " curr_block = chain_head\n", + " while curr_block.parent >= 0:\n", + " honest_chain.add(curr_block.parent)\n", + " curr_block = self.blocks[curr_block.parent]\n", + " return sorted(honest_chain, key=lambda b: self.blocks[b].weight)\n", + "\n", + " def visualize_chain(self):\n", + " honest_chain = self.honest_chain()\n", + " print(\"Honest chain length\", len(honest_chain))\n", + " honest_chain_set = set(honest_chain)\n", + " \n", + " layout = Layout()\n", + " layout.hierachical = True\n", + " \n", + " G = Network(width=1600, height=800, notebook=True, directed=True, layout=layout, cdn_resources='in_line')\n", + "\n", + " for block in self.blocks:\n", + " # level = slot\n", + " level = block.weight\n", + " color = \"lightgrey\"\n", + " if block.id in honest_chain_set:\n", + " color = \"orange\"\n", + "\n", + " G.add_node(int(block.id), level=level, color=color, label=f\"{block.id}:s={block.slot},w={block.weight},refs={block.refs}\")\n", + " if block.parent >= 0:\n", + " G.add_edge(int(block.id), int(block.parent), width=2, color=color)\n", + " for ref in block.refs:\n", + " G.add_edge(int(block.id), int(ref), width=1, color=\"blue\")\n", + " \n", + " \n", + " return G.show(\"chain.html\")\n", + "\n", + " def run(self, seed=None):\n", + " if seed is not None:\n", + " np.random.seed(seed)\n", + " \n", + " for s in range(1, self.params.SLOTS):\n", + " if s > 0 and s % 100000 == 0:\n", + " print(f\"SIM={s}/{self.params.SLOTS}, blocks={len(self.blocks)}\")\n", + " \n", + " # the adversary will not participate in the simulation\n", + " # (implemented by never delivering blocks to the adversary)\n", + " self.block_arrivals[-1,:] = self.params.SLOTS\n", + "\n", + " self.leaders[:,s] = np.random.random(size=self.params.N) < self.params.slot_prob()\n", + " for leader in np.nonzero(self.leaders[:,s])[0]:\n", + " if self.params.adversary_control is not None and leader == self.params.N - 1:\n", + " continue\n", + " self.emit_leader_block(\n", + " leader,\n", + " s,\n", + " )\n", + "\n", + " def adverserial_analysis(self, should_plot=True, seed=0):\n", + " np.random.seed(seed)\n", + "\n", + " adversary = self.params.N-1 # adversary is always the last node in our simulations\n", + "\n", + " self.block_arrivals[adversary,:] = self.block_slots # we will say the adversary receives the blocks immidiately\n", + "\n", + "\n", + " \n", + " honest_weight_by_slot = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " honest_height_by_slot = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " for block in self.blocks:\n", + " block_weight = np.zeros(self.params.SLOTS, dtype=np.int64) + block.weight\n", + " block_weight[:block.slot] = 0\n", + " honest_weight_by_slot = np.maximum(block_weight, honest_weight_by_slot)\n", + " \n", + " block_height = np.zeros(self.params.SLOTS, dtype=np.int64) + block.height\n", + " block_height[:block.slot] = 0\n", + " honest_height_by_slot = np.maximum(block_height, honest_height_by_slot)\n", + " \n", + " for slot in range(1, self.params.SLOTS):\n", + " if honest_weight_by_slot[slot] == 0:\n", + " honest_weight_by_slot[slot] = honest_weight_by_slot[slot-1]\n", + " if honest_height_by_slot[slot] == 0:\n", + " honest_height_by_slot[slot] = honest_height_by_slot[slot-1]\n", + "\n", + " \n", + " honest_chain = self.honest_chain()\n", + " \n", + " reorg_hist = np.zeros(self.params.SLOTS, dtype=np.int64)\n", + " reorg_depths = np.array([], dtype=np.int64)\n", + "\n", + " if should_plot:\n", + " plt.figure(figsize=(20, 6))\n", + " ax = plt.subplot(121)\n", + " \n", + " adversary_active_slots = np.random.random(size=self.params.SLOTS) < phi(self.params.f, self.params.relative_stake[adversary])\n", + " all_active_slots = (self.leaders.sum(axis=0) + adversary_active_slots) > 0\n", + "\n", + " for block in self.blocks:\n", + " if block.id > 0 and block.id % 1000 == 0:\n", + " print(\"Processing block\", block)\n", + "\n", + " nearest_honest_block = block\n", + " while nearest_honest_block.height >= len(honest_chain) or honest_chain[nearest_honest_block.height-1] != nearest_honest_block.id:\n", + " nearest_honest_block = self.blocks[nearest_honest_block.parent]\n", + "\n", + " cumulative_rel_height = adversary_active_slots[block.slot+1:].cumsum()\n", + " refs = self.select_refs(adversary, block.id, slot=self.params.SLOTS)\n", + "\n", + " assert len(refs) == 0\n", + "\n", + " adverserial_weight_by_slot = block.weight + len(refs) + cumulative_rel_height\n", + " \n", + " adverserial_wins = adverserial_weight_by_slot > honest_weight_by_slot[block.slot + 1:]\n", + " \n", + " reorg_events = adverserial_wins & all_active_slots[block.slot+1:]\n", + " reorg_depths = np.append(reorg_depths, honest_height_by_slot[block.slot + 1:][reorg_events] - nearest_honest_block.height)\n", + " reorg_hist += np.append(np.zeros(block.slot, dtype=np.int64), adverserial_wins).sum(axis=0)\n", + "\n", + " if should_plot:\n", + " if reorg_events.sum() > 0:\n", + " first_slot = block.slot+1\n", + " last_slot = first_slot + np.nonzero(reorg_events)[0].max() + 1\n", + "\n", + " ax.plot(np.arange(first_slot, last_slot), adverserial_weight_by_slot[:last_slot-first_slot]-honest_weight_by_slot[first_slot:last_slot], lw=\"1\")\n", + " for event in np.nonzero(reorg_events)[0]:\n", + " plt.axvline(x = event + block.slot + 1, ymin = 0, ymax = 1, color ='red', lw=0.01)\n", + " \n", + "\n", + " if should_plot:\n", + " ax.plot(np.zeros(self.params.SLOTS), color=\"k\", label=f\"honest chain\")\n", + " _ = ax.set_title(f\"max chain weight with adversery controlling {self.params.relative_stake[adversary] * 100:.0f}% of stake\")\n", + " _ = ax.set_ylabel(\"weight advantage\")\n", + " _ = ax.set_xlabel(\"slot\")\n", + " _ = ax.legend()\n", + " \n", + " ax = plt.subplot(122)\n", + " _ = ax.grid(True)\n", + " _ = ax.hist(reorg_depths, density=False, bins=100)\n", + " _ = ax.set_title(f\"re-org depth with {self.params.relative_stake[adversary] * 100:.0f}% adversary\")\n", + " _ = ax.set_xlabel(\"re-org depth\")\n", + " _ = ax.set_ylabel(\"frequency\")\n", + "\n", + " return reorg_depths" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "id": "d7eef71a-aa3c-49df-a711-9c9f7f5cb4a8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "avg blocks per slot 0.03625\n", + "Number of blocks 3625\n", + "longest chain 3625\n", + "CPU times: user 4.24 s, sys: 3.48 s, total: 7.72 s\n", + "Wall time: 7.95 s\n" + ] + } + ], + "source": [ + "%%time\n", + "np.random.seed(0)\n", + "sim = Sim(\n", + " params=Params(\n", + " SLOTS=100000,\n", + " f=0.05,\n", + " adversary_control = 0.3,\n", + " honest_stake = np.random.pareto(10, 1000)\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=2, # seconds\n", + " no_network_delay=True\n", + " )\n", + ")\n", + "sim.run(seed=5)\n", + "\n", + "n_blocks_per_slot = len(sim.blocks) / sim.params.SLOTS\n", + "print(\"avg blocks per slot\", n_blocks_per_slot)\n", + "print(\"Number of blocks\", len(sim.blocks))\n", + "print(\"longest chain\", max(b.height for b in sim.blocks))" + ] + }, + { + "cell_type": "code", + "execution_count": 271, + "id": "6680bc4d-39b9-4c9c-909f-da52f78295eb", + "metadata": {}, + "outputs": [], + "source": [ + "# sim.plot_spacetime_diagram()" + ] + }, + { + "cell_type": "code", + "execution_count": 272, + "id": "aabccc4e-8f47-403e-b7f9-7508e93ec18b", + "metadata": {}, + "outputs": [], + "source": [ + "# sim.visualize_chain()" + ] + }, + { + "cell_type": "code", + "execution_count": 274, + "id": "c5e14de5-7ff2-44e8-b825-8e6aa97f6e99", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing block Block(id=1000, slot=27702, height=1001, weight=1001, parent=999, refs=[], leader=453)\n", + "Processing block Block(id=2000, slot=55437, height=2001, weight=2001, parent=1999, refs=[], leader=316)\n", + "Processing block Block(id=3000, slot=82902, height=3001, weight=3001, parent=2999, refs=[], leader=595)\n" + ] + }, + { + "data": { + "image/png": "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r776KlasWIEePXogKioK9957L06ePKkuM2LECMyaNQtPPPEE1q5di927d2PPnj2oWrWq3fNobz86nQ5PPfUUvvvuO6SmpiIpKQk//vgjnnjiCbVMEFHpsf+zcKIKaMmSJahXrx6WLVtm9WsOy0GwLX3zzTdYvXo12rVrh1mzZuGBBx5A+/btC92H8ov4S5cu2fyqqCTS7E01a9ZEo0aNsH79etStW1f91UrPnj3x7LPPYteuXdi5cycmT56srlOlShUAwE8//WQ1AJ8zlIemq1evokaNGup0g8HgdiWmO3r27Il58+Zh9+7d2LVrF958800AwJ133on4+HicP38eoaGh6NChQ4mlyZKzZaJy5cpq3lk+kDqqwH300Ufx7LPP4ujRozhz5gwSEhKsBiVXzu2ECRMwZMgQu9soOFiivV9NValSBTNmzMCMGTNw4cIFrFy5Eq+99hquXbuGNWvWqPuZOXOmwzwu+GXP0a+zXnzxRSxevBi//fYb1qxZg0qVKtn8QqqgqKgo+Pn54dKlS4UuV7lyZZtWFwBw5coV9Ti9reBxKufVUTo0Gg0iIyO9ng57LK/fghITE11q5WKpZs2aqF69Ok6cOKFOa968OX744QckJiZafQFTBictGESwNG7cOLRu3RrDhw8HIA+k+e233yIiIgJt27ZFnz598Mcff6BHjx521y8qz90970VdF4X54YcfEBAQgFWrVln98GDFihV2l+/YsSOGDRuGxx9/HADw5Zdfqi2k3Ln+iIiIyD0Fn+2qVKkCSZKwdetWuxWqyrS7777b4YDZrj6jOnq+dPRMVxRl/cTExCK/01WpUgUtWrTA1KlT7W5LCRIVtv/ExERotVqEhoYWmTZP9ezZE2+//TZ2796NS5cuoXfv3ggLC0Pbtm0RHx+PK1euoFGjRl6pB/AmpVeNEydOIC4uDkFBQbjlllvUZ2dL//33H4KCglC/fn2721J+vDRz5kxERkZi1apV0Gg0eOKJJwAAr7zyCqZOnYoTJ06ogY6CnH12daUsAfL32eXLlyM+Ph61a9fGnj178OWXX6rzIyMj4efnh4cffthhjyT16tWzem/ve2ZISAgmT56MyZMn4+rVq2prl7vvvhvHjh1DWloaVq1ahYkTJ+K1115T18vLy3P4wyVH32efeeYZTJ8+HfPnz0dubi4MBgOefvppu8sSUcli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GDVqFBYsWIBXXnkFOTk5ePbZZ5GSkoL27dtj3bp1CAsLK60kExERERERERERERFRBVCmAi7du3eHEI5/hy1JEiZNmoRJkyaVXKKIiMoBtnAhIiIiIiIiIiLyTLkZw4WIiNzHgAsREREREREREZFnGHAhIiIGXIiIiIiIiIiIiDzEgAsREREREVEp27JlC+6++25Ur14dkiRhxYoVVvMlSbL79+GHH6rLdO/e3Wb+gw8+aLWdlJQUPPzww4iIiEBERAQefvhhpKamlsAREhERERGVfwy4EBERW7gQERGVsqysLLRs2RKzZs2yOz8hIcHqb/78+ZAkCffdd5/Vck8++aTVcnPmzLGaP2LECOzfvx9r1qzBmjVrsH//fjz88MPFdlxERERERBWJf2kngIiIiIiIqKLr378/+vfv73B+TEyM1fvffvsNPXr0QP369a2mBwcH2yyrOHr0KNasWYOdO3eiffv2AIC5c+eiY8eOOH78OBo3buzhURARERERVWwMuBAREVu4EBERlSFXr17F6tWrsXDhQpt5S5cuxZIlS1CtWjX0798fEydORFhYGABgx44diIiIUIMtANChQwdERERg+/btDgMueXl5yMvLU9+np6cDAPR6PfR6vTcPzSnKPnUa+08wpZEmKh7KueQ5Lf94risWnu+Kg+e64qgI59rZY2PAhYiIiIiIqAxZuHAhwsLCMGTIEKvpI0eORL169RATE4NDhw5hwoQJOHDgAOLj4wEAiYmJiI6OttledHQ0EhMTHe5v2rRpmDx5ss30devWITg42MOjcd+UNia70//4448STgkVN6UMU/nHc12x8HxXHDzXFUd5PtfZ2dlOLceACxERsYULERFRGTJ//nyMHDkSgYGBVtOffPJJ9XWzZs3QsGFDtGnTBvv27UOrVq0AAJIk2WxPCGF3umLChAkYO3as+j49PR21atVCnz59EB4e7unhuEyv1yM+Ph5v7dUgz2Sb7kOT+pZ4mqh4KOe6d+/eCAgIKO3kUDHiua5YeL4rDp7riqMinGullXdRGHAhIiIGXIiIiMqIrVu34vjx41i2bFmRy7Zq1QoBAQE4efIkWrVqhZiYGFy9etVmuaSkJFSrVs3hdnQ6HXQ6nc30gICAUv1CnWeSkGe0DbiU1y/5FVlplzUqOTzXFQvPd8XBc11xlOdz7exxaYo5HUREVAYw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7O2ji1a8q/3s7Byi3/4Cq2sqGNiwm8qBAbp2rKWTUtb6e3E1L6fP0YWra4BtrKWfNrb7B3i1swn3ltfYXLKDYb/g3R176MTPluZtVPR2U/nqEE0bg7zas46NoVbKdg/T1ttF++bVPOkI807bDjR/CGd7N0NtNlZ27KVpdQmunl281umgzfEGZZ0dDHXtwecNM7inn7Z+gaPsSd7Z/C59kWbULa2829MMw68Q9O5h69YBhNpCz5sreGX3MLv2bGBgsIueSCfbd2yid6Cft/aECbftoNPeRwgfXZvfY3lrNwShx6sytDPAe10t9Hn7eb5TsNW+nu7X99K2513Wt+yix2+j3NOCT3mVl/p87GjugO5XIbyb4faXWNm8hfJeD83L9zDc9Qor/H467P2807waZVU7OyIb8KvD+Hq6eW5gmHU7XsMjtuIJCIZ6OxgaXsd7e7vpfn8jJV1tbHa+hV3ZQ4fDzdCeAbztu+lZ14XP+ypKX4gXO/1sD66mx7+XQdcQG7dtYmAognOVj01NNgZVGAr0UaF66bFXsGbrEEpgOQOdm/E7uxkYcPNu2wCIvTjWrKRD9PJm6046XD24//sS1bPnUV1dPda/kkosoqpW/SklEolEIpFIJBLJBxWhWTluDtTX1/Piiy+yYMECFi5cyG233cZ5553H6tWrOfbYYxkcHBwtWXMSDAbxer385S9/4cILL4xdv/7661m1ahUvv/xyWp1AIEAgEIh97u/vZ8qUKfT19VFeXr5P5I7y+9//niuuuGKf9imRSCQSiUQiGR+8+eabHHnkkfu83/7+fioqKsbk91/J/slYr5lQKMTTTz/N11bYCETSveV23n62pfamf+NfGb+z2lY+/RSzjw8a0bk+66yzcDgcYy2OZBSRc31gIef7wEHO9YHDgTDXZn8HtuzhctRRR/H666+zYMECzj77bG688Ubef/99nnzySY466qiChC6Uzs5OIpEIEydOTLo+ceJEWltbDevcdttt3HrrrftCvJzU1taydNmRtLSswa468DrKUIVgSAGXz4ZLFTgI4qmfQMQZRmvdyvBgNarXRsirUtYeIiQEWqkXtVRgK69F27oRXKXsslVSFumj1l2C021nONhFnwb24X5cWgV2m41he4RIWOANOxiwa5QFQvhrNSI+DW+wEpsaJOgKUTaxApq3ENQaiZT30xWowKWG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deGFF2rLli2SXL+mGjFihCSpXbt2slgsmjJlSig3AwAAAEAMGz58uKZNm6aZM2cqKytLo0aNkiTt3LlTl156qdq0aaOcnBxNmjRJ33//fYvLcjqdevDBB9W5c2fZ7Xb16dNHK1eu9LzvHi3y17/+VcOHD1dycrKWLVumkydPavr06Wrbtq06dOige+65R5MnTz7tJbuWLFmirl27KjU1VT/5yU906NChRmXeeOMN9e/fX8nJyerevbvmzp2rkydPet63WCx65plnNHbsWKWkpKiwsFB/+9vfPO8XFhZKkvr27SuLxaLhw4d7Lf+xxx5TXl6eOnTooKlTp5JAAhC3SLgAAIKmtLRUEydO1I033qhdu3Zp/fr1mjBhggzDaFT27rvv1ssvv6ylS5fqo48+Uo8ePTRmzBj98MMP6tKli15++WVJ0u7du1VaWqrf//73od4cAAAAADFs6dKlSkxM1Lvvvqtnn31WpaWlKi4uVp8+ffThhx9q5cqV+vbbb3X11Ve3uJzf//73evzxx/XYY4/pk08+0ZgxY3T55Zdrz549XuXuueceTZ8+Xbt27dKYMWP0yCOP6MUXX9TixYv17rvvqrKyUq+99lqL63r//fd144036rbbbtO2bds0YsQIPfTQQ15lVq1apRtuuEHTp0/Xzp079eyzz2rJkiWaN2+eV7n7779fV155pT7++GPdcMMNmjhxonbt2iVJ+uCDDyRJa9euVWlpqV555RXPfOvWrdPnn3+udevWaenSpVqyZImWLFnSYtwAEKssRlO9XgAAmOCjjz5S//79tW/fPhUUFHi9N2XKFB0+fFivvfaajh07pnbt2mnJkiW67rrrJLmG1Hfr1k0zZszQXXfdpfXr12vEiBEqLy8P2Q0gAQAAAMSH4cOHq6KiQlu3bvVM+/Wvf633339fq1at8kz76quv1KVLF+3evVtnnXVWk8vq1KmTpk6dql/+8peeaRdccIHOP/98/fGPf9S+fftUWFioJ598UnfccYenTG5uru68807deeedkqTa2lp1795dffv2bTbxct1116m8vFz/+Mc/PNOuvfZarVy50nP/y2HDhmns2LG69957PWWWLVumu+++W998840k1wiXW2+9Vc8884ynzKBBg9SvXz89/fTTnpi3bt2qPn36eMpMmTJF69ev1+eff66EhARJ0tVXXy2r1arly5c3GTMAxDJGuAAAgqZ37966+OKL1atXL1111VV67rnnVF5e3qjc559/rpqaGg0dOtQzzWaz6YILLvD8ogoAAAAAgmnAgAFer0tKSrRu3Tq1adPG8zj77LMlub7DvPjii17vvfPOO6qsrNQ333zj9d1GkoYOHdrou0399VVUVOjbb7/VBRdc4JmWkJCg/v37txjzrl27NHjwYK9pDV+XlJTowQcf9Ir15ptvVmlpqaqqqpqdb/Dgwa36Pnbuued6ki2SlJeXp4MHD552PgCIRYnhDgAAELsSEhK0Zs0abdq0SatXr9bChQt133336f333/cq5x5sabFYGk1vOA0AAAAAgiEtLc3rtdPp1GWXXaZHHnmkUdm8vDw5nU4NHDjQM61Tp06ee5e05rtNw/U1N19LWnPhGqfTqblz52rChAmN3ktOTm5x3tZ8H7PZbI3mcTqdp50PAGIRI1wAAEFlsVg0dOhQzZ07V1u3blVSUpJeffVVrzI9evRQUlKSNm7c6JlWU1OjDz/8UD179pQkJSUlSXINqwcAAACAYOvXr58+/fRTdevWTT169PB6pKWlKT093WtaSkqKMjIylJ+f7/XdRpI2bdrk+W7TlMzMTOXk5HjulSK5vvvUv8RZU8455xxt3rzZa1rD1/369dPu3bsbbUOPHj1ktVqbnW/z5s2eET18HwOA1mGECwAgaN5//33985//1OjRo5Wdna33339f3333nXr27KlPPvnEUy4tLU0///nPddddd6l9+/bq2rWrHn30UVVVVemmm26SJBUUFMhisejNN9/UpZdeqpSUFLVp0yZcmwYAAAAgxk2dOlXPPfecJk6cqLvuuktZWVn67LPPtHz5cj333HNel9Gq76677tIDDzygM844Q3369NHixYu1bds2vfjiiy2u7/bbb9f8+fPVo0cPnX322Vq4cKHKy8tbHGUyffp0DRkyRI8++qiuuOIKrV69WitXrvQq8+tf/1rjx49Xly5ddNVVV8lqteqTTz7R9u3b9dBDD3nK/e1vf9OAAQN04YUX6sUXX9QHH3ygRYsWSZKys7OVkpKilStXqnPnzkpOTlZmZmZrdyUAxA1GuAAAgiYjI0Nvv/22Lr30Up111ln61a9+pccff1xjx45tVHbBggW68sorNWnSJPXr10+fffaZVq1apXbt2klyDc+fO3euZs+erZycHE2bNi3UmwMAAAAgjuTn5+vdd99VbW2txowZo6KiIt1xxx3KzMz0GhnS0PTp0zVr1izNmjVLvXr10sqVK/X666/rzDPPbHF999xzjyZOnKif/vSnGjx4sNq0aaMxY8a0eNmvQYMG6b//+7+1cOFC9enTR6tXr9avfvUrrzJjxozRm2++qTVr1uj888/XoEGD9MQTT6igoMCr3Ny5c7V8+XKdd955Wrp0qV588UWdc845kqTExET94Q9/0LPPPqv8/Hz9+Mc/Pt3uA4C4ZDFac7FHAAAAAAAAACHjdDrVs2dPXX311frNb34T1HVZLBa9+uqruuKKK4K6HgCIdVxSDAAAAAAAAAizL7/8UqtXr1ZxcbEcDoeeeuop7d27V9ddd124QwMAtBKXFAMAAAAAAADCzGq1asmSJTr//PM1dOhQbd++XWvXrlXPnj3DHRoAoJW4pBgAAAAAAAAAAECAGOECAAAAAAAAAAAQIBIuAAAAAAAAAAAAASLhAgAAAAAAAAAAECASLgAAAAAAAAAAAAEi4QIAAAAAAAAAABAgEi4AAAAAAAAAAAABIuECAAAAAAAAAAAQIBIuAAAAAAAAAAAAAfr/AWky4VquJMNSAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "reorgs = sim.adverserial_analysis()" + ] + }, + { + "cell_type": "code", + "execution_count": 277, + "id": "0bdf3ada-059a-4145-bb12-8a15d022bb9f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.01013\n" + ] + } + ], + "source": [ + "print(len(reorgs[reorgs > 10]) / sim.params.SLOTS)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "467972af-de30-4a5d-9e62-f8e17a7f9813", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating 1/10\n", + "simulating 2/10\n", + "simulating 3/10\n", + "simulating 4/10\n", + "simulating 5/10\n", + "simulating 6/10\n", + "simulating 7/10\n", + "simulating 8/10\n", + "simulating 9/10\n", + "simulating 10/10\n", + "finished simulation, starting analysis\n" + ] + } + ], + "source": [ + "np.random.seed(0)\n", + "stake = np.random.pareto(10, 100)\n", + "\n", + "sims = [Sim(\n", + " params=Params(\n", + " SLOTS=100000,\n", + " f=0.05,\n", + " adversary_control = i,\n", + " honest_stake = stake\n", + " ),\n", + " network=NetworkParams(\n", + " mixnet_delay_mean=10, # seconds\n", + " mixnet_delay_var=4,\n", + " broadcast_delay_mean=2, # second\n", + " pol_proof_time=10, # seconds\n", + " no_network_delay=False\n", + " )\n", + ") for i in np.linspace(1e-3, 0.3, 10)]\n", + "\n", + "for i, sim in enumerate(sims):\n", + " print(f\"simulating {i+1}/{len(sims)}\")\n", + " sim.run(seed=0)\n", + "\n", + "print(\"finished simulation, starting analysis\")\n", + "advs = [sim.adverserial_analysis(should_plot=False) for sim in sims]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a8a2f501-aa97-4a80-8206-1a5862006ebc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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W2+9DBgwIOPGjcubb765wufW1NR0fqHKMAzjbaOLdP4CAAAAAADrvEWLFmWHHXbISSedlKOOOqrD9a222irXXHNNNt9887z55pu56qqrMn78+PzpT3/KxhtvnGR58HvggQdm8uTJ+eY3v5kePXrkiSeeSFXVipObhoaGTueLhUKKOn+BpKS9QPgLAAAAAACs8w466KAcdNBBK7z+iU98ot3PU6dOzfXXX58nn3wy++67b5Jk4sSJOfPMM3P++ee33bfllluuXEGFvw+AEvaCEpqEAQAAAAAAWLx4caZPn57+/ftnhx12SJLMnz8/v/3tbzNo0KDstttuGTx4cPbee+888MAD77hWbW3tmigZWEfo/AUAAAAAAOiCn/70p/nYxz6WN954I7W1tZk1a1Y22mijJMmf//znJMlFF12UK6+8MjvuuGNmzJiRfffdN08//fQKO4AbGxs7nXfsM9CqlL1A5y8AAAAAAEAX7LPPPpkzZ04efPDBHHjggTnmmGMyf/78JElLS0uS5JRTTslJJ52U0aNH56qrrsrWW2+d73znOytcs6ampvMLBcMwjLeNLtL5CwAAAAAA0AXrrbdetthii2yxxRb553/+52y55Za5/vrrM3ny5Lbjm0eOHNnuMyNGjMi8efNWuGZDQ0On88XC8gFQyl4g/AUAAAAAAFgJxWIxzc3NSZLNNtssQ4YMydy5c9vd88wzz+Sggw4qffGqwvIBUMJeIPwFAAAAAADWea+//nr+9Kc/tf383HPPZc6cOdlwww0zcODAXHrppfnIRz6S2travPLKK7n22mvz0ksv5eijj06SFAqFnHfeefnSl76UHXbYITvuuGNuuumm/OEPf8gPfvCDFT63trY29fX1HeZ1/gKtdP4CAAAAAACU4NFHH80+++zT9vOkSZOSJCeeeGK+9a1v5Q9/+ENuuummvPzyyxk4cGA++MEP5v7778+2227b9pmzzz47b731ViZOnJhXX301O+ywQ2bNmpUPfOADK3zuio59TgpJQfoLJKW89Ff4CwAAAAAArPPGjRuXYrG4wus//OEPu7TO+eefn/PPP/8916PzF2il8xcAAAAAAOB9YEXHPqeQUpr9gEom/AUAAAAAAFj7NTY2dn5B+Au0Ev4CAAAAAACs/WpqalJXV9dhvlgopOidv0BS0l4g/AUAAAAAACiThoaGzi/o/AVa6fwFAAAAAAB4/ypWLR8ApewFwl8AAAAAAIAyqa2tTX19fccLOn+BVjp/AQAAAAAA1n6NjY2dznvnL9DKO38BAAAAAADeB2pqalJXV9fxgs5foJXOXwAAAAAAgLVfQ0NDp/PFwvIBUMpeIPwFAAAAAABY2+j8BVoJf1eNxUOWpKp3dbnLWGMKS3uUu4SyaOnXu9wlrHHV/fqWu4Q1bx19N0Zx8ZJyl7DGFZctK3cJa16xpdwVrHnFYrkrAAAAAFglamtrU19f32Fe5y/QSucvAAAAAADA+0BjY2PnFwqFdbapBfgHJewFwl8AAAAAAIAyqampSV1dXYd5nb9AK52/AAAAAAAA7wMNDQ2dX/DOX6CV8BcAAAAAAOB9TOcv0KqEvaBq9VUBAAAAAACw9psyZUo++MEPpm/fvhk0aFAOP/zwzJ07t909xWIxF110UYYMGZLevXtn3Lhx+d3vftfpesViMQcddFAKhUJ+9KMfveOza2trO79QMAzDeNvoIuEvAAAAAACwTrvvvvty+umn5ze/+U1mzZqVpUuXZvz48Vm0aFHbPVdccUWmTp2aa665Jo888khqamqy//77Z+HChR3Wu/rqq1ModC2taWxs7HS+mP97769hGOv4KGE/c+wzAAAAAACwTvvv//7vdj/fcMMNGTRoUGbPnp299torxWIxV199dS688MIceeSRSZKbbropgwcPzi233JJTTjml7bNPPPFEpk6dmkceeWTFXb1vU1NTk7q6uo4XCimp2w+oYCXsBSsV/t5///257rrr8uyzz+YHP/hB/umf/inf/e53M3z48Oyxxx4rsyQAAAAAAMBaYcGCBUmSDTfcMEny3HPPpbGxMePHj2+7p2fPntl7773z4IMPtoW/b7zxRj7+8Y/nmmuuSU1NTZee1dDQ0Ol8sVBIsYvdw0BlK2UvKPnY5zvuuCMHHHBAevfunccffzzNzc1JkoULF+ayyy4rdTkAAAAAAIC1RrFYzKRJk7LHHntk1KhRSf7vaObBgwe3u3fw4MHtjm2eOHFidttttxx22GHvvZCCYRjG20YXldz5e8kll+Rb3/pWTjjhhNx2221t87vttlsuvvjiUpcDAAAAAABYa5xxxhl58skn88ADD3S49o/v8S0Wi21zM2fOzD333JPHH3+8pOfV1tamvr6+w3zruz4BStkLSg5/586dm7322qvDfL9+/fK3v/2t1OUAAAAAAADWCp///Oczc+bM/PrXv84mm2zSNt96hHNjY2O79/jOnz+/rRv4nnvuybPPPpsBAwa0W/Ooo47KnnvumXvvvbfTZ67o2OdSu/2ACrY6w9/a2tr86U9/ymabbdZu/oEHHsjmm29e6nIAAAAAAABlVSwW8/nPfz533nln7r333gwfPrzd9eHDh6empiazZs3K6NGjkySLFy/Offfdl8svvzxJcv755+fTn/50u89tt912ueqqq3LooYeWXpPOX+DvVmvn7ymnnJKzzjor3/nOd1IoFFJfX5+HHnoo5557br74xS+WuhwAAAAAAEBZnX766bnlllvy4x//OH379m17j2///v3Tu3fvFAqFnH322bnsssuy5ZZbZsstt8xll12WPn365BOf+ESS5d3BrR3Cb7fpppt2CJPfbkXHPuv8BdqszvD3X/7lX7JgwYLss88+eeutt7LXXnulZ8+eOffcc3PGGWeUuhwAAAAAAEBZTZs2LUkybty4dvM33HBDPvnJTyZZno+8+eabOe200/Laa69ll112yd13352+ffu+p2e3Bs3/SOcv0Gq1dv4uXrw4l156aS688ML8/ve/T0tLS0aOHJn1118/L7/8cjbaaKNSlwQAAAAAACibYrH4rvcUCoVcdNFFueiii1bpujU1Namrq+vkgdH5Cyy3OsPfY445Jj/84Q/Tp0+fjB07tm3+L3/5S/bdd988/fTTpS4JAAAAAACwTmpoaOj8gvAXaLU6w9+GhoacfPLJueGGG9rNfehDH8q2225b6nIAAAAAAAD8A8c+A61K2QuqSl38rrvuysMPP5yJEycmSerq6jJu3Lhst912+d73vlfqcgAAAAAAAOus2trazi8UDMMw3ja6qOTO34EDB+bnP/959thjjyTJf/3Xf2WnnXbKf/7nf6aqquQsGQAAAAAAYJ3V2NjY6bzOX6BVKXtByeFvkmyyySaZNWtW9thjj+y///757ne/m0LBDgQAAAAAAFCKmpqa1NXVdbxQYrcfUMFWdfi7wQYbdBruvvHGG/nJT36SgQMHts29+uqrXX86AAAAAADAOqyhoaHT+WKhkKLGOyApaS/oUvh79dVXr2wtAAAAAAAAAKwBXQp/TzzxxNVdBwAAAAAAwDqntrY29fX1HS849hlotbrf+dvqzTffzJIlS9rN9evX770sCQAAAAAAsM5obGzs/ILwF2i1OsPfRYsW5V//9V/zve99L6+88kqH68uWLSt1SQAAAAAAgHVSTU1N6urqOswXkxSFv0CW7wddVVXq4v/yL/+Se+65J9dee2169uyZb3/72/nyl7+cIUOGZMaMGaUuBwAAAAAAsM5qaGjo/ELBMAzjbaOLSu78/clPfpIZM2Zk3Lhx+dSnPpU999wzW2yxRYYNG5b//M//zHHHHVfqkgAAAAAAALxNsaDzF1iulL2g5PD31VdfzfDhw5Msf7/vq6++miTZY4898rnPfa7U5QAAAAAAANZZtbW1qa+v73ihxG4/oIKVsBeUfOzz5ptvnueffz5JMnLkyHzve99LsrwjeMCAAaUuBwAAAAAAsFKee+65cpfwnjU2NnZ+odxHzBqGsXaNLiq58/ekk07KE088kb333juTJ0/OIYcckm9+85tZunRppk6dWupya4Xm5uY0Nze3/dzU1FTGagAAAAAAgK7YYoststdee+Xkk0/ORz/60fTq1avcJZWspqYmdXV1HeYd+wy0KmUvKLnzd+LEiTnzzDOTJPvss0/+8Ic/5NZbb81jjz2Ws846q9Tl1gpTpkxJ//7928bQoUPLXRIAAAAAAPAunnjiiYwePTrnnHNOampqcsopp+Thhx8ueZ0pU6bkgx/8YPr27ZtBgwbl8MMPz9y5c9vdUygUOh1f/epXkyx/bebnP//5bL311unTp0823XTTnHnmmVmwYME7PruhoaHzC+XuMjQMY+0aXVRy+Dtjxox2XbKbbrppjjzyyIwYMSIzZswodbm1wuTJk7NgwYK28eKLL5a7JAAAAAAA4F2MGjUqU6dOTV1dXW644YY0NjZmjz32yLbbbpupU6fmr3/9a5fWue+++3L66afnN7/5TWbNmpWlS5dm/PjxWbRoUds9DQ0N7cZ3vvOdFAqFHHXUUUmS+vr61NfX58orr8xTTz2VG2+8Mf/93/+dk08+eaW+W2vnr2EYRrHQ9b2jUCwWi6VsNtXV1WloaMigQYPazb/yyisZNGhQli1bVspya6Wmpqb0798/m/z7Ranq/f47ImJl9XqhR7lLKIthP1tY7hLWuOoX55e7hDWuZeHr5S6hLIqLl5S7hDWuWAF/HypZsaXcFax5pf3PFwAAAGhnaXFJ7s2Ps2DBgvTr16/c5bAKNTc359prr83kyZOzePHidO/ePccee2wuv/zy1NbWdnmdv/71rxk0aFDuu+++7LXXXp3ec/jhh2fhwoX55S9/ucJ1vv/97+f444/PokWL0q1b52/iHDt2bGbPnt1hfuuzLkt1z3UnowBWbFnzW5n79Qu69Petkjt/i8ViCoWO8fJLL72U/v37l7ocAAAAAADAe/Loo4/mtNNOS21tbaZOnZpzzz03zz77bO65557U1dXlsMMOK2m91qOaN9xww06v/+Uvf8l//dd/vWtXb2tQs6LgN0kaGxs7v1AwDMN42+iiFe82/2D06NFt59fvu+++7TaqZcuW5bnnnsuBBx7Y9ScDAAAAAAC8B1OnTs0NN9yQuXPn5uCDD86MGTNy8MEHp6pqee/b8OHDc91112Wbbbbp8prFYjGTJk3KHnvskVGjRnV6z0033ZS+ffvmyCOPXOE6r7zySr7yla/klFNOecfn1dTUpK6urmMdhdKOegUqVyl7QZfD38MPPzxJMmfOnBxwwAFZf/3126716NEjm222Wdu59gAAAAAAAKvbtGnT8qlPfSonnXRSampqOr1n0003zfXXX9/lNc8444w8+eSTeeCBB1Z4z3e+850cd9xx6dWr82OZm5qacsghh2TkyJH50pe+9I7Pa2ho6PxCid1+QAVbHeFv6+a02Wab5WMf+1h69uxZcl0AAAAAAACryh//+Md3vadHjx458cQTu7Te5z//+cycOTO//vWvs8kmm3R6z/3335+5c+fm9ttv7/T6woULc+CBB2b99dfPnXfeme7du3fp2f9I5y/QqpS9oOR3/n7oQx/KX//617afH3744Zx99tmZPn16qUsBAAAAAACstBtuuCHf//73O8x///vfz0033dTldYrFYs4444z88Ic/zD333JPhw4ev8N7rr78+Y8aMyQ477NDhWlNTU8aPH58ePXpk5syZK+wMfrva2tou1wnwbkoOfz/xiU/kV7/6VZLlLyHfb7/98vDDD+eCCy7IxRdfvMoLBAAAAAAA6My//du/ZaONNuowP2jQoFx22WVdXuf000/PzTffnFtuuSV9+/ZNY2NjGhsb8+abb7a7r6mpKd///vfz6U9/usMaCxcuzPjx47No0aJcf/31aWpqaltn2bJlK3z2ux77bBiGUUiXdfnY51ZPP/10dt555yTJ9773vWy33Xb5n//5n9x999059dRT88UvfrHUJQEAAAAAAEr2wgsvdNqlO2zYsMybN6/L60ybNi1JMm7cuHbzN9xwQz75yU+2/XzbbbelWCzm4x//eIc1Zs+end/+9rdJki222KLdteeeey6bbbZZl+tJHPsM/J9S9oKSw98lS5a0ve/3F7/4RT7ykY8kSbbZZpsV/+kUAAAAAACAVWzQoEF58sknOwSrTzzxRAYOHNjldYrFYpfu++xnP5vPfvaznV4bN25cl9d5u9ra2tTX13e8UGK3H1DBVmf4u+222+Zb3/pWDjnkkMyaNStf+cpXkiT19fUlbaQAAAAAAADvxcc+9rGceeaZ6du3b/baa68kyX333ZezzjorH/vYx8pcXdc0NjZ2fkH4C7RaneHv5ZdfniOOOCJf/epXc+KJJ7a90HzmzJltx0EDAAAAAACsbpdcckleeOGF7LvvvunWbXnk0dLSkhNOOKGkd/6WU01NTerq6jrMO/YZaLVaj30eN25cXn755TQ1NWWDDTZom//sZz+bPn36lLocAAAAAADASunRo0duv/32fOUrX8kTTzyR3r17Z7vttsuwYcPKXVqXveMrNYW/QIlKDn+TpLq6ul3wm6TkF5UDAAAAAACsCltttVW22mqrcpexajn2GWi1Ojt/AQAAAAAA1gbLli3LjTfemF/+8peZP39+Wlpa2l2/5557ylRZ19XW1qa+vr7DvGOfgVar9dhnAAAAAACAtcFZZ52VG2+8MYccckhGjRqVQuH9l5Y2NjZ2fqFQXD4AStgLhL8AAAAAAMD70m233Zbvfe97Ofjgg8tdykqrqalJXV1dxws6f4FWq7Pz97nnnsvw4cNL/RgAAAAAAMAq1aNHj2yxxRblLuM9aWho6PyCd/4CrUrYC6pKXXuLLbbIPvvsk5tvvjlvvfVWqR8HAAAAAABYJc4555x8/etfT7FYgccjFwzDMN42uqjkzt8nnngi3/nOd3LOOefkjDPOyLHHHpuTTz45O++8c6lLAQAAAAAArLQHHnggv/rVr/Kzn/0s2267bbp3797u+g9/+MMyVdZ1tbW1qa+v7zBfLDj2GViulL2g5PB31KhRmTp1aq644or85Cc/yY033pg99tgjW265ZU4++eRMmDAhG2+8canLAgAAAAAAlGTAgAE54ogjyl3Ge9LY2Nj5hRK7/YAKtjrD37YPduuWI444IgcffHCuvfbaTJ48Oeeee24mT56cY489Npdffnlqa2tXdnkAAAAAAIB3dMMNN5S7hPespqYmdXV1HS8If4FWJewFJb/zt9Wjjz6a0047LbW1tZk6dWrOPffcPPvss7nnnntSV1eXww47bGWXBgAAAAAA6JKlS5fmF7/4Ra677rosXLgwSVJfX5/XX3+9zJV1TUNDQ6fzRcMwjLeNriq583fq1Km54YYbMnfu3Bx88MGZMWNGDj744FRVLc+Rhw8fnuuuuy7bbLNNqUsDAAAAAAB02QsvvJADDzww8+bNS3Nzc/bff//07ds3V1xxRd56661861vfKneJK0/nL9BqdR77PG3atHzqU5/KSSedlJqamk7v2XTTTXP99deXujQAAAAAAECXnXXWWRk7dmyeeOKJDBw4sG3+iCOOyKc//ekyVtZ1tbW1qa+v73hB+Au0Wl3HPi9dujTHHXdcjj/++BUGv0nSo0ePnHjiiaUsDQAAAAAAUJIHHnggX/jCF9KjR49288OGDev8PborMG3atGy//fbp169f+vXrl1133TU/+9nPOr33lFNOSaFQyNVXX91uvrm5OZ///Oez0UYbZb311stHPvKRvPTSS+/67MbGxk7niwXDMIz/G11VUvjbrVu3fO1rX8uyZctK+RgAAAAAAMAq19LS0mlm8dJLL6Vv375dXmeTTTbJv/3bv+XRRx/No48+mg996EM57LDD8rvf/a7dfT/60Y/y29/+NkOGDOmwxtlnn50777wzt912Wx544IG8/vrr+fCHP/yumcoKm+0KRcMwjP8bXVRS+Jsk++67b+69995SPwYAAAAAALBK7b///u06cAuFQl5//fV86UtfysEHH9zldQ499NAcfPDB2WqrrbLVVlvl0ksvzfrrr5/f/OY3bffU1dXljDPOyH/+53+me/fu7T6/YMGCXH/99fna176W/fbbL6NHj87NN9+cp556Kr/4xS/e8dkNDQ2dXygYhmG8bXRRye/8PeiggzJ58uQ8/fTTGTNmTNZbb7121z/ykY+UuiQAAAAAAEDJrrrqquyzzz4ZOXJk3nrrrXziE5/IH//4x2y00Ua59dZbV2rNZcuW5fvf/34WLVqUXXfdNcnyDuMJEybkvPPOy7bbbtvhM7Nnz86SJUsyfvz4trkhQ4Zk1KhRefDBB3PAAQeUXEepR70ClauUvaDk8Pdzn/tckmTq1KkdrhUKhYo6EnrzTeen23o9y13GGvNst43LXUJZvD6sT7lLWOPWX7pRuUtY46r/4U/irSuKry8qdwlrXrGl3BWscS1vvlXuEta8CvrfG6UotnT9eJeKsQ7+d3qdVVwHf38DAADv2ZAhQzJnzpzceuuteeyxx9LS0pKTTz45xx13XHr37l3SWk899VR23XXXvPXWW1l//fVz5513ZuTIkUmSyy+/PN26dcuZZ57Z6WcbGxvTo0ePbLDBBu3mBw8evMJ3+raqra1NfX19xwsldvsBFWx1hr8tLf4FHAAAAAAAsHbo3bt3PvWpT+VTn/rUe1pn6623zpw5c/K3v/0td9xxR0488cTcd999efPNN/P1r389jz32WAqF0tLYYrH4rp95t3AYoBQlh78AAAAAAABrgxkzZrzj9RNOOKHLa/Xo0SNbbLFFkmTs2LF55JFH8vWvfz0jRozI/Pnzs+mmm7bdu2zZspxzzjm5+uqr8/zzz6empiaLFy/Oa6+91q77d/78+dltt93e8bk1NTWpq6vreEHnL9BqdXb+JsmiRYty3333Zd68eVm8eHG7ays68gAAAAAAAGBVOuuss9r9vGTJkrzxxhvp0aNH+vTpU1L4+4+KxWKam5szYcKE7Lfffu2uHXDAAZkwYUJOOumkJMmYMWPSvXv3zJo1K8ccc0ySpKGhIU8//XSuuOKKd3xOQ0ND58+Pd/4Cy5XysqySw9/HH388Bx98cN54440sWrQoG264YV5++eX06dMngwYNEv4CAAAAAABrxGuvvdZh7o9//GM+97nP5bzzzuvyOhdccEEOOuigDB06NAsXLsxtt92We++9N//93/+dgQMHZuDAge3u7969e2pqarL11lsnSfr375+TTz4555xzTgYOHJgNN9ww5557brbbbrsOwXGXFYrLB0AJe0HJ4e/EiRNz6KGHZtq0aRkwYEB+85vfpHv37jn++OM7/AkbAAAAAACANWnLLbfMv/3bv+X444/PH/7why595i9/+UsmTJiQhoaG9O/fP9tvv33++7//O/vvv3+Xn3vVVVelW7duOeaYY/Lmm29m3333zY033pjq6up3/FxtbW3q6+s7XnDsM9BqdR77PGfOnFx33XWprq5OdXV1mpubs/nmm+eKK67IiSeemCOPPLLUJQEAAAAAAFaZ6urqzgPVFbj++utLWv/555/vMNerV69885vfzDe/+c2S1lrRsc/CX6DN6gx/u3fvnkJh+RMGDx6cefPmZcSIEenfv3/mzZtX6nIAAAAAAAArZebMme1+LhaLaWhoyDXXXJPdd9+9TFWtIsJfoNXqDH9Hjx6dRx99NFtttVX22WeffPGLX8zLL7+c7373u9luu+1KXQ4AAAAAAGClHH744e1+LhQK2XjjjfOhD30oX/va18pTVIlWdOxzsVBM0Tt/gaSkvaDk8Peyyy7LwoULkyRf+cpXcuKJJ+Zzn/tctthii9xwww2lLgcAAAAAALBSWlpayl3Ce9bY2Nj5BZ2/QKvV2fk7duzYtl9vvPHGueuuu0pdAgAAAAAAgCQ1NTWpq6vreEH4C7RaneHvm2++mWKxmD59+iRJXnjhhdx5550ZOXJkxo8fX+pyAAAAAAAAK2XSpEldvnfq1KmrsZKV19DQUO4SgApScvh72GGH5cgjj8ypp56av/3tb9l5553To0ePvPzyy5k6dWo+97nPrY46AQAAAAAA2nn88cfz2GOPZenSpdl6662TJM8880yqq6uz0047td1XKLwPW2gLxeUDYHW+8/exxx7LVVddlST5wQ9+kJqamjz++OO544478sUvflH4CwAAAAAArBGHHnpo+vbtm5tuuikbbLBBkuS1117LSSedlD333DPnnHNOmSt8d7W1tamvr+94wbHPQKvVeezzG2+8kb59+yZJ7r777hx55JGpqqrKP//zP+eFF14odTkAAAAAAICV8rWvfS133313W/CbJBtssEEuueSSjB8//n0R/jY2NnZ+QfgLtFqd4e8WW2yRH/3oRzniiCPy85//PBMnTkySzJ8/P/369St1OQAAAAAAgJXS1NSUv/zlL9l2223bzc+fPz8LFy4sU1WlqampSV1dXccLjn0GWpWwF1SVuvYXv/jFnHvuudlss82yyy67ZNddd02yvAt49OjRpS4HAAAAAACwUo444oicdNJJ+cEPfpCXXnopL730Un7wgx/k5JNPzpFHHlnu8rqkoaGh8wsFwzCMt40uKrnz96Mf/Wj22GOPNDQ0ZIcddmib33fffXPEEUeUuhwAAAAAAMBK+da3vpVzzz03xx9/fJYsWZIk6datW04++eR89atfLXN171GJgQ9QwVZX+Lt06dL06tUrc+bM6dDlu/POO5eyFAAAAAAAwHvSp0+fXHvttfnqV7+aZ599NsViMVtssUXWW2+9cpfWZbW1tamvr+94wbHPQKsS9oKSwt9u3bpl2LBhWbZsWck1AQAAAAAArA4NDQ1paGjIXnvtld69e6dYLKZQeH+0zTY2NnY6XygsHwCl7AUlH/v8hS98IZMnT87NN9+cDTfcsNSPAwAAAAAArBKvvPJKjjnmmPzqV79KoVDIH//4x2y++eb59Kc/nQEDBuRrX/tauUt8VzU1Namrq+t4Qecv0Gp1df4myTe+8Y386U9/ypAhQzJs2LAORyc89thjpS4JAAAAAABQsokTJ6Z79+6ZN29eRowY0TZ/7LHHZuLEie+L8LehoaHzC975C7RanZ2/hx9+eKkfAQAAAAAAWOXuvvvu/PznP88mm2zSbn7LLbfMCy+8sNLrTpkyJRdccEHOOuusXH311UmSYrGYL3/5y5k+fXpee+217LLLLvn3f//3bLvttm2fa2xszHnnnZdZs2Zl4cKF2XrrrXPBBRfkox/9aMk1FFJMQecvkOX7QVeVHP5+6UtfKvUjAAAAAAAAq9yiRYvSp0+fDvMvv/xyevbsuVJrPvLII5k+fXq23377dvNXXHFFpk6dmhtvvDFbbbVVLrnkkuy///6ZO3du+vbtmySZMGFCFixYkJkzZ2ajjTbKLbfckmOPPTaPPvpoRo8e3enzamtrU19f3/GCzl+gVQl7QdXKrP+3v/0t3/72tzN58uS8+uqrSZYf99zpmfQAAAAAAACrwV577ZUZM2a0/VwoFNLS0pKvfvWr2WeffUpe7/XXX89xxx2X//iP/8gGG2zQNl8sFnP11VfnwgsvzJFHHplRo0blpptuyhtvvJFbbrml7b6HHnoon//857Pzzjtn8803zxe+8IUMGDDgHV+Z2djY2Ol8oWAYhvF/o6tK7vx98skns99++6V///55/vnn85nPfCYbbrhh7rzzzrzwwgvtNlkAAAAAAIDV5atf/WrGjRuXRx99NIsXL86//Mu/5He/+11effXV/M///E/J651++uk55JBDst9+++WSSy5pm3/uuefS2NiY8ePHt8317Nkze++9dx588MGccsopSZI99tgjt99+ew455JAMGDAg3/ve99Lc3Jxx48at8Jk1NTWdN9cVissHQAl7Qcnh76RJk/LJT34yV1xxRdsxBkly0EEH5ROf+ESpywEAAAAAAKyUkSNH5sknn8y0adNSXV2dRYsW5cgjj8zpp5+e2trakta67bbb8thjj+WRRx7pcK21O3fw4MHt5gcPHtzu3cK33357jj322AwcODDdunVLnz59cuedd+YDH/jACp/b0NDQ6Xzh7wOglL2g5GOfH3nkkbY/wfJ2//RP/7TCowneybXXXpvhw4enV69eGTNmTO6///4V3tvQ0JBPfOIT2XrrrVNVVZWzzz67wz3jxo1LoVDoMA455JCSawMAAAAAANZOS5YsyT777JOmpqZ8+ctfzk9/+tPcddddueSSS0oOfl988cWcddZZufnmm9OrV68V3lf4h7NXi8Viu7kvfOELee211/KLX/wijz76aCZNmpSjjz46Tz31VGlfLkmhUDQMw2gbXVVy52+vXr3S1NTUYX7u3LnZeOONS1rr9ttvz9lnn51rr702u+++e6677rocdNBB+f3vf59NN920w/3Nzc3ZeOONc+GFF+aqq67qdM0f/vCHWbx4cdvPr7zySnbYYYccffTRJdUGAAAAAACsvbp3756nn346/xjIrozZs2dn/vz5GTNmTNvcsmXL8utf/zrXXHNN5s6dm2R5B/Dbg+X58+e3dQM/++yzueaaa/L0009n2223TZLssMMOuf/++/Pv//7v+da3vtXps2tra1NfX9/xQsGxz8DflbAXlNz5e9hhh+Xiiy/OkiVLlj+rUMi8efNy/vnn56ijjippralTp+bkk0/Opz/96YwYMSJXX311hg4dmmnTpnV6/2abbZavf/3rOeGEE9K/f/9O79lwww1TU1PTNmbNmpU+ffoIfwEAAAAAoMKccMIJuf7669/zOvvuu2+eeuqpzJkzp22MHTs2xx13XObMmZPNN9+8LXNotXjx4tx3333ZbbfdkiRvvPFGkqSqqn30Ul1dnZaWlhU+e0WnqhYKhmEY/ze6quTO3yuvvDIHH3xwBg0alDfffDN77713Ghsbs+uuu+bSSy/t8jqLFy/O7Nmzc/7557ebHz9+fB588MFSy1qh66+/Ph/72Mey3nrrrfCe5ubmNDc3t/3cWWczAAAAAACwdlm8eHG+/e1vZ9asWRk7dmyHLGDq1KldWqdv374ZNWpUu7n11lsvAwcObJs/++yzc9lll2XLLbfMlltumcsuuyx9+vTJJz7xiSTJNttsky222CKnnHJKrrzyygwcODA/+tGPMmvWrPz0pz9d4bNrampSV1fX8UKJR70CFWx1Hvvcr1+/PPDAA7nnnnvy2GOPpaWlJTvttFP222+/ktZ5+eWXs2zZsk5fjr4y7w7uzMMPP5ynn376Xf/Uz5QpU/LlL395lTwTAAAAAABYfZ588smMGjUqVVVVefrpp7PTTjslSZ555pl2962K46Df7l/+5V/y5ptv5rTTTstrr72WXXbZJXfffXf69u2bZPkx1HfddVfOP//8HHrooXn99dezxRZb5KabbsrBBx+8wnUbGho6nS+12w+oXKu18/f555/PZpttlg996EP50Ic+VOrHO3i3l6O/F9dff31GjRqVnXfe+R3vmzx5ciZNmtT2c1NTU4YOHbpKagAAAAAAAFad0aNHp6GhIYMGDcoLL7yQRx55JAMHDlzlz7n33nvb/VwoFHLRRRfloosuWuFnttxyy9xxxx2r5PkFnb/A35WyF5Qc/m6++ebZbbfdMmHChBx99NHZcMMNS10iSbLRRhulurq6Q5fv21+O/l688cYbue2223LxxRe/6709e/ZMz5493/MzAQAAAACA1WvAgAF57rnnMmjQoDz//PPv+D7d94Pa2trU19d3mF/e+Sv8BVZz5++jjz6aW2+9NZdccknOOuusHHDAATn++OPzkY98pKQAtUePHhkzZkxmzZqVI444om1+1qxZOeyww0otq4Pvfe97aW5uzvHHH/+e1wIAAAAAANYORx11VPbee+/U1tamUChk7Nixqa6u7vTeP//5z2u4utI59hl4N6s1/N1pp52y00475Yorrsi9996bW265Jaeccko+/elP56ijjsp3vvOdLq81adKkTJgwIWPHjs2uu+6a6dOnZ968eTn11FOTLD+Oua6uLjNmzGj7zJw5c5Ikr7/+ev76179mzpw56dGjR0aOHNlu7euvvz6HH374ajnqAQAAAAAAKI/p06fnyCOPzJ/+9KeceeaZ+cxnPtP23t1K4thnoNVqPfb5/x5SyD777JN99tknn/vc53LyySfnpptuKin8PfbYY/PKK6/k4osvTkNDQ0aNGpW77rorw4YNS7L8T7vMmzev3WdGjx7d9uvZs2fnlltuybBhw/L888+3zT/zzDN54IEHcvfdd6/s1wMAAAAAANZSBx54YJLlOcFZZ531vg5/V3zss/AXWG6NhL8vvvhibr311txyyy156qmnsuuuu+aaa64peZ3TTjstp512WqfXbrzxxg5zxeK7f7mtttqqS/cBAAAAAADvXzfccEO5S3jPGhsbO50v/H0AlLIXlBz+Tp8+Pf/5n/+Z//mf/8nWW2+d4447Lj/60Y+y2WablboUAAAAAADAOq2mpiZ1dXUd5qsKxVTp/AWSFFdn5+9XvvKVfOxjH8vXv/717LjjjqV+HAAAAAAAgL9raGjodN6xz0Cr1Xrs87x581IoOGgAAAAAAAAAYG3SpfD3ySef7PKC22+//UoXAwAAAAAAsC6pra1NfX19h3mdv0CrVd75u+OOO6ZQKKRYLP79ASvu/F22bFmXHw4AAAAAALAua2xs7HS+qrB8ABRL2Au6FP4+99xzbb9+/PHHc+655+a8887LrrvumiR56KGH8rWvfS1XXHFFaZUCAAAAAACsw2pqalJXV9dhXucv0GqVd/4OGzas7ddHH310vvGNb+Tggw9um9t+++0zdOjQ/L//9/9y+OGHd71SAAAAAACAdVhDQ0On81Uppkr4CyQpZhWHv2/31FNPZfjw4R3mhw8fnt///velLgcAAAAAAMA/0PkLtFrlnb9vN2LEiFxyySW5/vrr06tXryRJc3NzLrnkkowYMaLU5QAAAAAAANZZtbW1qa+v7zBfKOj8BZZrWZ3h77e+9a0ceuihGTp0aHbYYYckyRNPPJFCoZCf/vSnpS4HAAAAAACwzmpsbOx0vvD3AVDKXlBV6uI777xznnvuuVx66aXZfvvts9122+Wyyy7Lc889l5133rnU5QAAAAAAANYqU6ZMSaFQyNlnn902VygUOh1f/epX2332oYceyoc+9KGst956GTBgQMaNG5c333xzhc+qqanpdL7q752/hmEYVYXV2PmbJH369MlnP/vZlfkoAAAAAADAWuuRRx7J9OnTs/3227ebb2hoaPfzz372s5x88sk56qij2uYeeuihHHjggZk8eXK++c1vpkePHnniiSdSVbXiXrx/XLdVqYEPULlWe/ibJL///e8zb968LF68uN38Rz7ykZVdEgAAAAAAoGxef/31HHfccfmP//iPXHLJJe2u/WOH7o9//OPss88+2XzzzdvmJk6cmDPPPDPnn39+29yWW265UrUUCsUUhL9AUtJeUHL4++c//zlHHHFEnnrqqRQKhRSLxb8/dPlp08uWLSt1SQAAAAAAgLI7/fTTc8ghh2S//fbrEP6+3V/+8pf813/9V2666aa2ufnz5+e3v/1tjjvuuOy222559tlns8022+TSSy/NHnvsscK1amtrU19f32Fe5y/QarV2/p511lkZPnx4fvGLX2TzzTfPww8/nFdeeSXnnHNOrrzyylKXAwAAAAAAKLvbbrstjz32WB555JF3vfemm25K3759c+SRR7bN/fnPf06SXHTRRbnyyiuz4447ZsaMGdl3333z9NNPr7ADuLGxsdN54S/QarWGvw899FDuueeebLzxxqmqqkpVVVX22GOPTJkyJWeeeWYef/zxUpcEAAAAAAAomxdffDFnnXVW7r777vTq1etd7//Od76T4447rt29LS0tSZJTTjklJ510UpJk9OjR+eUvf5nvfOc7mTJlSqdr1dTUpK6ursN8VYqpivAXSEl7Qcnh77Jly7L++usnSTbaaKPU19dn6623zrBhwzJ37txSlwMAAAAAACir2bNnZ/78+RkzZkzb3LJly/LrX/8611xzTZqbm1NdXZ0kuf/++zN37tzcfvvt7daora1NkowcObLd/IgRIzJv3rwVPruhoaHTee/8BVqt1nf+jho1Kk8++WQ233zz7LLLLrniiivSo0ePTJ8+vd1LzQEAAAAAAN4P9t133zz11FPt5k466aRss802+dd//de24DdJrr/++owZMyY77LBDu/s322yzDBkypEOj3DPPPJODDjqo5Joc+wy0Wq3HPn/hC1/IokWLkiSXXHJJPvzhD2fPPffMwIEDO/wpFwAAAAAAgLVd3759M2rUqHZz6623XgYOHNhuvqmpKd///vfzta99rcMahUIh5513Xr70pS9lhx12yI477pibbropf/jDH/KDH/xghc+ura1NfX19J+uVFvgAlatQ6Pq9JYe/BxxwQNuvN9988/z+97/Pq6++mg022CCFUp4MAAAAAADwPnLbbbelWCzm4x//eKfXzz777Lz11luZOHFiXn311eywww6ZNWtWPvCBD6xwzcbGxk7ndf4CrVZr529nNtxww1WxDAAAAAAAwFrh3nvv7TD32c9+Np/97Gff8XPnn39+zj///C4/p6amJnV1dR3mq1JMVYS/QEraC1ZJ+AsAAAAAAEDpGhoaOp2vKrSkqtCyhqsB1kal7AXCXwAAAAAAgLWMY5+BVmv82GcAAAAAAABKV1tbm/r6+g7zwl+glfB3Fdm2f0N6rt+93GWwmv11yNByl7DGdVvUp9wlrHF9mpeUu4SyKCxZ9753y8LXy10Ca0CxZR39B5/iOnjUU6Gq3BWwxvj9TQVrWVbuCgAAWIut+Nhn4S+wnPAXAAAAAADgfawqxVRF+AukpL1A+AsAAAAAAFAmjn0G3o3OXwAAAAAAgPeBxsbGTuerCi2pKqyDr8gBOihlLxD+AgAAAAAAlElNTU3q6uo6zFelmGqdv0CSZY59BgAAAAAAWPs1NDR0Ou+dv0Ar7/wFAAAAAAB4H/POX6CVd/4CAAAAAAC8D9TW1qa+vr7DvHf+Aq288xcAAAAAAOB9oLGxsdP56oJ3/gLLlbIXCH8BAAAAAADKpKamJnV1dR3mq1Laez6BylVVwr3CXwAAAAAAgDJpaGjodN6xz0Arxz4DAAAAAAC8j1UViqly7DOQlLQXlNIlDAAAAAAAUHEuuuiiFAqFdqOmpqbTe0855ZQUCoVcffXVnV4vFos56KCDUigU8qMf/ehdn11bW9vpfFVaUm0YhpGWVEXnLwAAAAAAQJdtu+22+cUvftH2c3V1dYd7fvSjH+W3v/1thgwZssJ1rr766hQKhS4/t7GxsdN5nb9Aq1L2AuEvAAAAAACwzuvWrdsKu32TpK6uLmeccUZ+/vOf55BDDun0nieeeCJTp07NI488ssKO3n9UU1OTurq6DvPCX6CV8BcAAAAAAKAEf/zjHzNkyJD07Nkzu+yySy677LJsvvnmSZKWlpZMmDAh5513XrbddttOP//GG2/k4x//eK655pp3DJH/UUNDQ6fzrce9ApSyFwh/AQAAAACAddouu+ySGTNmZKuttspf/vKXXHLJJdltt93yu9/9LgMHDszll1+ebt265cwzz1zhGhMnTsxuu+2Www47bJXUpPMXaKXzFwAAAAAAoIsOOuigtl9vt9122XXXXfOBD3wgN910U/bee+98/etfz2OPPbbCd/nOnDkz99xzTx5//PGSn11bW5v6+voO89WFllQXdP4CKWkvqFqNdQAAAAAAALzvrLfeetluu+3yxz/+Mffff3/mz5+fTTfdNN26dUu3bt3ywgsv5Jxzzslmm22WJLnnnnvy7LPPZsCAAW33JMlRRx2VcePGveOzGhsbV/O3AdYlOn8BAAAAAADeprm5Of/7v/+bPffcMxMmTMh+++3X7voBBxyQCRMm5KSTTkqSnH/++fn0pz/d7p7tttsuV111VQ499NB3fFZNTU3q6uo6zFelmKo49hlISXuB8BcAAAAAAFinnXvuuTn00EOz6aabZv78+bnkkkvS1NSUE088MQMHDszAgQPb3d+9e/fU1NRk6623TrI8wK2pqemw7qabbprhw4e/47MbGho6na9y7DPwd1Ul7AXCXwAAAAAAYJ320ksv5eMf/3hefvnlbLzxxvnnf/7n/OY3v8mwYcPKVpPOX6CVzl8AAAAAAIAuuu2220q6//nnn3/Xe4rFroU1tbW1qa+v7zBfrfMX+LtS9gLhLwAAAAAAQJms+NjnYklHvQKVq6qg8xcAAAAAAOB9qzrFVDv2GUhK2guEvwAAAAAAAGWyomOfqwotOn+BJClpLxD+AgAAAAAAlEljY2On8zp/gVY6fwEAAAAAAN4HampqUldX12G+oPMX+LuCzl8AAAAAAIC1X0NDQ6fz1WlJdYS/QEraC4S/SZqbm9Pc3Nz2c1NTUxmrAQAAAAAA1nVVhWKqCo59BlLSXiD8TTJlypR8+ctfLncZAAAAAADAOqa2tjb19fUd5nX+Aq10/pZo8uTJmTRpUtvPTU1NGTp0aBkrAgAAAAAA1gWNjY2dzlcXWlLtnb9AUtJeIPxN0rNnz/Ts2bPcZQAAAAAAAOuYmpqa1NXVdZivSkuqdP4CSUl7gfAXAAAAAACgTBoaGjqdry4UU+2dv0BS0l4g/AUAAAAAAFjLVKXonb9AkuX7QVcJfwEAAAAAAMqktrY29fX1Hear0pKqQqEMFQFrG8c+AwAAAAAAvA80NjZ2Ol+dYqpL6PYDKlcpe4HwFwAAAAAAoExqampSV1fXYb660JJqnb9Alu8HXVW1GusAAAAAAAB4X6irq8vxxx+fgQMHpk+fPtlxxx0ze/bstus//OEPc8ABB2SjjTZKoVDInDlz2n3+1Vdfzec///lsvfXW6dOnTzbddNOceeaZWbBgwTs+t6GhodP5qrQYhmG0ja7S+QsAAAAAAKzTXnvttey+++7ZZ5998rOf/SyDBg3Ks88+mwEDBrTds2jRouy+++45+uij85nPfKbDGvX19amvr8+VV16ZkSNH5oUXXsipp56a+vr6/OAHPyi5Jp2/QKtSOn+FvwAAAAAAwDrt8ssvz9ChQ3PDDTe0zW222Wbt7pkwYUKS5Pnnn+90jVGjRuWOO+5o+/kDH/hALr300hx//PFZunRpunXrPJKpra1NfX19h3nv/AVaeecvAAAAAABAF82cOTMHHHBAjj766Nx33335p3/6p5x22mmddviWYsGCBenXr98Kg98kaWxs7HS+kJZURecvsHw/6CrhLwAAAAAAsE7785//nGnTpmXSpEm54IIL8vDDD+fMM89Mz549c8IJJ6zUmq+88kq+8pWv5JRTTnnH+2pqalJXV9dh3rHPQCvHPgMAAAAAAHRRS0tLxo4dm8suuyxJMnr06Pzud7/LtGnTVir8bWpqyiGHHJKRI0fmS1/60jve29DQ0Om8Y5+BVo59BgAAAAAA6KLa2tqMHDmy3dyIESPavcO3qxYuXJgDDzww66+/fu6888507959pWqqKhRTVUK3H1C5qgrCXwAAAAAAgC7ZfffdM3fu3HZzzzzzTIYNG1bSOk1NTTnggAPSs2fPzJw5M7169XrXz9TW1qa+vr7DfHVaUl3S04FKVe2dvwAAAAAAAF0zceLE7LbbbrnssstyzDHH5OGHH8706dMzffr0tnteffXVzJs3ry2obQ2La2pqUlNTk4ULF2b8+PF54403cvPNN6epqSlNTU1Jko033jjV1Z1HuY2NjZ3OO/YZaOXYZwAAAAAAgC764Ac/mDvvvDOTJ0/OxRdfnOHDh+fqq6/Occcd13bPzJkzc9JJJ7X9/LGPfSxJ8qUvfSkXXXRRZs+end/+9rdJki222KLd+s8991w222yzTp9dU1OTurq6DvNVhZZUFd7rNwMqQSlHwAt/AQAAAACAdd6HP/zhfPjDH17h9U9+8pP55Cc/ucLr48aNS7FYeqduQ0NDp/NVOn+Bv6vS+QsAAAAAAPD+5dhnoJVjnwEAAAAAAN4Hamtr294j/HZVhWKqCsJfICXtBcJfAAAAAACAMlnRsc86f4FWOn8BAAAAAADex6pSLOk9n0Dl8s5fAAAAAACA94EVHftcXSim2rHPQFLSXiD8BQAAAAAAKJPGxsZO5x37DLRy7DMAAAAAAMD7QE1NTerq6jrMF5JUrflygLVQoYR7hb8AAAAAAABl0tDQ0Ol8dWH5AChlLxD+AgAAAAAArGWqovMXWK6UvcC+AQAAAAAAUCa1tbXlLgGoIDp/AQAAAAAAyqSxsbHT+eq/D4BS9gLhLwAAAAAAQJnU1NSkrq6uw3x1oZDqgpf+AilpLxD+voNt16tL7/XWnf8XDey+qNwllMW3txhS7hLWuMLS7uUuYY0rtPQrdwll0XvpsnKXsMati+8zKL71VrlLWONasu595yQpLlla7hLWvGJLuStY8wrr4k6WdfN7r4u/v4vFclcAAABrnYaGhk7nvfMXaFXKXrDuJJsAAAAAAADvE9UppDo6f4GUtBcIfwEAAAAAAMqktrY29fX1HeYLhUKqHPsMZPl+0FVODAAAAAAAANZ5dXV1Of744zNw4MD06dMnO+64Y2bPnt12/fXXX88ZZ5yRTTbZJL17986IESMybdq0dms0Nzfn85//fDbaaKOst956+chHPpKXXnrpHZ/b2NjY6Xxr569hGEZ1dP4CAAAAAAB0yWuvvZbdd989++yzT372s59l0KBBefbZZzNgwIC2eyZOnJhf/epXufnmm7PZZpvl7rvvzmmnnZYhQ4bksMMOS5KcffbZ+clPfpLbbrstAwcOzDnnnJMPf/jDmT17dqqrqzt9dk1NTerq6jrMV/39LwDv/AUAAAAAAOiiyy+/PEOHDs0NN9zQNrfZZpu1u+ehhx7KiSeemHHjxiVJPvvZz+a6667Lo48+msMOOywLFizI9ddfn+9+97vZb7/9kiQ333xzhg4dml/84hc54IADOn12Q0NDp/PVhUKqHfsMJCXtBf7ICAAAAAAAsE6bOXNmxo4dm6OPPjqDBg3K6NGj8x//8R/t7tljjz0yc+bM1NXVpVgs5le/+lWeeeaZtlB39uzZWbJkScaPH9/2mSFDhmTUqFF58MEHS66pyl/+8pe/3vZXV+n8BQAAAAAA1ml//vOfM23atEyaNCkXXHBBHn744Zx55pnp2bNnTjjhhCTJN77xjXzmM5/JJptskm7duqWqqirf/va3s8ceeyRZ/u7eHj16ZIMNNmi39uDBg1f4Xt8kqa2tTX19fYf5qhRSVcJ7PoHKVcpeIPwFAAAAAADWaS0tLRk7dmwuu+yyJMno0aPzu9/9LtOmTWsX/v7mN7/JzJkzM2zYsPz617/Oaaedltra2rZjnjtTLBZTeIcjW//yl790Or9oUVIt+wWyfD9Ilu8n70b4CwAAAAAArNNqa2szcuTIdnMjRozIHXfckSR58803c8EFF+TOO+/MIYcckiTZfvvtM2fOnFx55ZXZb7/9UlNTk8WLF+e1115r1/07f/787Lbbbit89sc+9rFceeWVHeaH7fT8KvhmQCVZuHBh+vfv/473CH8BAAAAAIB12u677565c+e2m3vmmWcybNiwJMmSJUuyZMmSVFW1f+9mdXV1WlpakiRjxoxJ9+7dM2vWrBxzzDFJkoaGhjz99NO54oorVvjsSy65JP/v//2/tp9bWlry6quvZuDAge/YMQysO4rFYhYuXJghQ4a8673CXwAAAAAAYJ02ceLE7LbbbrnssstyzDHH5OGHH8706dMzffr0JEm/fv2y995757zzzkvv3r0zbNiw3HfffZkxY0amTp2aJOnfv39OPvnknHPOORk4cGA23HDDnHvuudluu+3e8Vjonj17pmfPnu3mBgwYsNq+K/D+9G4dv62EvwAAAAAAwDrtgx/8YO68885Mnjw5F198cYYPH56rr746xx13XNs9t912WyZPnpzjjjsur776aoYNG5ZLL700p556ats9V111Vbp165Zjjjkmb775Zvbdd9/ceOONqa6uLsfXAtZBhWJX3gy8jmlqakr//v1zzeyd03v9dScfr1+8wbvfVIG+fe+4cpewxvX/w7r3PzQGPLu43CWURe/nXit3CWtcoen1cpewxhXfeqvcJaxxLW+ue985SYpLlpa7hDWv2FLuCta8QtW730NlWBd/f/vHTwBgLbG0uCT35sdZsGBB+vXrV+5yAGCV8W+WAAAAAAAAACqA8BcAAAAAAACgAgh/AQAAAAAAACqA8BcAAAAAAACgAgh/AQAAAAAAACqA8BcAAAAAAACgAgh/AQAAAAAAACqA8BcAAAAAAACgAgh/AQAAAAAAACqA8BcAAAAAAACgAgh/AQAAAAAAACqA8BcAAAAAAACgAgh/AQAAAAAAACpA2cPfa6+9NsOHD0+vXr0yZsyY3H///Su894c//GH233//bLzxxunXr1923XXX/PznP+9wz9ixYzNgwICst9562XHHHfPd7353dX8NAAAAAAAAgLIqa/h7++235+yzz86FF16Yxx9/PHvuuWcOOuigzJs3r9P7f/3rX2f//ffPXXfdldmzZ2efffbJoYcemscff7ztng033DAXXnhhHnrooTz55JM56aSTctJJJ3UIiQEAAAAAAAAqSaFYLBbL9fBddtklO+20U6ZNm9Y2N2LEiBx++OGZMmVKl9bYdtttc+yxx+aL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ufjii1NfX58+ffpk9913z+WXX562traio7ENHnrooRx//PGpq6tLqVTK3Xff3eH5crmcyy67LHV1denTp08OP/zwPPXUU8WEZZtsbqybm5tzwQUXZP/9909tbW3q6uryhS98Ia+++mpxgdkqW/qZ/nNnnnlmSqVSrrvuui7LR+d5L2O9fPnynHDCCenfv3/69u2bj3/843nppZe6PixbbUvjvG7dukyePDm77rpr+vTpk5EjR+bGG28sJixb7b2cJzEnqwxbGmtzMgDoPJq/HxB33HFHGhsbc9FFF2Xp0qX5xCc+kWOOOcYfpxVmwYIFOfvss/Poo49m3rx5aWlpyZFHHpk333yz6GhsJ48//njmzJmTAw44oOgobAdvvPFGDj300PTs2TM/+clP8utf/zpXX311PvKRjxQdjU42a9asfOc738n111+f5cuX58orr8w//dM/5Z//+Z+LjsY2ePPNN3PggQfm+uuv3+TzV155Za655ppcf/31efzxxzNkyJB86lOfytq1a7s4Kdtqc2P91ltvZcmSJbnkkkuyZMmS/PCHP8wzzzyTE044oYCkbIst/Uy/7e67785jjz2Wurq6LkpGZ9vSWP/mN7/J+PHjM2LEiMyfPz9PPvlkLrnkkvTu3buLk7IttjTO5513Xu6///784Ac/yPLly3PeeeflnHPOyT333NPFSdkW7+U8iTlZZdjSWJuTAUDnKZXL5XLRIUjGjh2b0aNHd/gv1ZEjR+akk07KjBkzCkzG9vT73/8+gwYNyoIFC3LYYYcVHYdOtm7duowePTqzZ8/ON7/5zYwaNcrVJRXmwgsvzMMPP+xODVXg05/+dAYPHpzvfve77cs++9nPZocddsj3v//9ApPRWUqlUu66666cdNJJSf50hUldXV0aGxtzwQUXJEmampoyePDgzJo1K2eeeWaBadkW7xzrTXn88cdz8MEH58UXX8ywYcO6Lhyd5t3G+ZVXXsnYsWMzd+7cHHfccWlsbHR3lg+5TY31Kaeckp49e/odXUE2Nc777bdfJk6cmEsuuaR92ZgxY3LsscfmH//xHwtISWd453kSc7LK9V7OiZmTAcDWceXvB8CGDRuyePHiHHnkkR2WH3nkkXnkkUcKSkVXWL16dZJk5513LjgJ28PZZ5+d4447Lp/85CeLjsJ2cu+996ahoSF/8zd/k0GDBuWg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CwAAAAAAAFABNH8BAAAAAAAAKoDmLwAAAAAAAEAF0PwFAAAAAAAAqACavwAAAAAAAAAVQPMXAAAAAAAAoAJo/gIAAAAAAABUAM1fAABgsy677LKMGjWqS17r8MMPT2NjY5e8FgAAAECl0fwFAAC63Pz581MqlfK///u/RUcBAAAAqBiavwAAUJANGzZsl/2Wy+W0tLRsl30DAAAA8MGl+QsAAF3k8MMPz+TJkzN16tQMHDgwn/rUp5Ikv/71r3Psscdmxx13zODBgzNp0qS8/vrr7ds1NTXl3HPPzaBBg9K7d++MHz8+jz/+ePvzb19FO3fu3DQ0NKSmpiYLFy7M2rVr8/nPfz61tbUZOnRorr322vd0W+WZM2dm8ODB6du3b84444ysX79+o3W+973vZeTIkendu3dGjBiR2bNntz/3wgsvpFQq5fbbb8+4cePSu3fv7Lvvvpk/f37780cccUSSZKeddkqpVMoXv/jF9u3b2tpy/vnnZ+edd86QIUNy2WWXvc/vNAAAAEB10vwFAIAudMstt6RHjx55+OGH8y//8i9ZuXJlJkyYkFGjRuWJJ57I/fffn9/97nc5+eST27c5//zzc+edd+aWW27JkiVLsueee+aoo47K//zP/3TY9/nnn58ZM2Zk+fLlOeCAAzJ16tQ8/PDDuffeezNv3rwsXLgwS5Ys2Wy+//iP/8ill16aK664Ik888USGDh3aobGbJDfddFMuuuiiXHHFFVm+fHmmT5+eSy65JLfcckuH9aZNm5avfe1rWbp0acaNG5cTTjghf/jDH7LbbrvlzjvvTJI8/fTTWblyZb71rW91+B7V1tbmsccey5VXXpnLL7888+bN26rvNwAAAEA1KZXL5XLRIQAAoBocfvjhWb16dZYuXdq+7Bvf+EYee+yxzJ07t33Zb3/72+y22255+umns8suu2SnnXbKzTffnNNOOy1J0tzcnI9+9KNpbGzMtGnTMn/+/BxxxBG5++67c+KJJyZJ1q5dmwEDBuS2227L5z73uSTJ6tWrU1dXl6985Su57rrrNplx3LhxOfDAA3PjjTe2L/v4xz+e9evXZ9myZUmSYcOGZdasWTn11FPb1/nmN7+Z++67L4888kheeOGF1NfXZ+bMmbnggguSJC0tLamvr88555yT888/vz3zG2+8kY985CMdvketra1ZuHBh+7KDDz44f/mXf5mZM2duxXcdAAAAoHr0KDoAAABUk4aGhg6PFy9enAcffDA77rjjRuv+5je/yfr169Pc3JxDDz20fXnPnj1z8MEHZ/ny5e+67+effz7Nzc05+OCD25f1798/e++992bzLV++PGeddVaHZYccckgefPDBJMnvf//7vPzyyznjjDPyla98pX2dlpaW9O/ff6Pt3tajR480NDRslHlTDjjggA6Phw4dmlWrVm1xOwAAAIBqp/kLAABdqLa2tsPjtra2HH/88Zk1a9ZG6w4dOjTPPfdckqRUKnV4rlwub7Tsz/f99g1+NrXdtmhra0vyp1s/jx07tsNz3bt33+L278yzKT179txom7dfFwAAAIB35zN/AQCgQKNHj85TTz2Vj370o9lzzz07fNXW1mbPPfdMr169smjRovZtmpub88QTT2TkyJHvut899tgjPXv2zC9+8Yv2ZWvWrMmzzz672TwjR47Mo48+2mHZnz8ePHhwdtlllzz//PMb5a2vr3/X7VpaWrJ48eKMGDEiSdKrV68kSWtr62bzAAAAAPDeufIXAAAKdPbZZ+emm27KqaeemmnTpmXgwIF57rnncvvtt+emm25KbW1tvvrVr2batGnZeeedM2zYsFx55ZV56623csYZZ7zrfvv27ZvTTz+9fbtBgwbl0ksvTbdu3TZ79e2UKVNy+umnp6GhIePHj8+//du/5amnnsruu+/evs5ll12Wc889N/369csxxxyTpqamPPHEE3njjTcyderU9vVuuOGG7LXXXhk5cmSuvfbavPHGG/nSl76UJBk+fHhKpVJ+/OMf59hjj02fPn02eetrAAAAAN47V/4CAECB6urq8vDDD6e1tTVHHXVU9ttvv0yZMiX9+/dPt25/mq7PnDkzn/3sZzNp0qSMHj06zz33XObOnZuddtpps/u+5pprcsghh+TTn/50PvnJT+bQQw/NyJEj07t373fdZuLEifnGN76RCy64IGPGjMmLL76Yr371qx3W+fKXv5x//dd/zc0335z9998/EyZMyM0337zRlb8zZ87MrFmzcuCBB2bhwoW55557MnDgwCTJLrvskn/4h3/IhRdemMGDB2fy5Mlb8+0DAAAA4M+Uytv6oV8AAMCHwptvvplddtklV1999WavGt5WL7zwQurr67N06dKMGjVqu70OAAAAAB257TMAAFSopUuX5r//+79z8MEHZ/Xq1bn88suTJCeeeGLByQAAAADYHjR/AQCggl111VV5+umn06tXr4wZMyYLFy5sv/UyAAAAAJXFbZ8BAAAAAAAAKkC3ogMAAAAAAAAAsO00fwEAAAAAAAAqgOYvAAAAAAAAQAXQ/AUAAAAAAACoAJq/AAAAAAAAABVA8xcAAAAAAACgAmj+AgAAAAAAAFQAzV8AAAAAAACACvB/AZI4T20uoW5pAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "max_reorg_depth = max(a.max() if len(a) > 0 else 0 for a in advs)\n", + "\n", + "\n", + "heatmap = np.zeros((len(advs), max_reorg_depth), dtype=np.int64)\n", + "\n", + "for i, adv in enumerate(advs):\n", + " for depth in range(max_reorg_depth):\n", + " heatmap[i][depth] = (adv == depth).sum()\n", + "\n", + "plt.figure(figsize=(40,40))\n", + "ax = plt.subplot(121)\n", + "im = ax.imshow(heatmap)\n", + "\n", + "_ = ax.set_yticks(np.arange(len(sims)), labels=[f\"{s.params.adversary_control:.2f}\" if i % 2 == (len(sims) - 1) % 2 else None for i, s in enumerate(sims)])\n", + "_ = ax.set_xticks(np.arange(max_reorg_depth), labels=[r if r % (max_reorg_depth // 10) == 0 else None for r in range(max_reorg_depth)])\n", + "_ = ax.set_xlabel(\"reorg depth\")\n", + "_ = ax.set_ylabel(\"adversary stake\")\n", + "\n", + "ax = plt.subplot(1,10,6)\n", + "scale = heatmap.max()\n", + "ax.imshow(np.arange(scale+1).reshape((1, scale+1)).T, extent=(1,0,1,0))\n", + "_ = ax.set_yticks(np.arange(scale+1) / scale, labels = [r if r % (scale // 10) == 0 else None for r in range(scale+1)])\n", + "_ = ax.set_xticks([], minor=False)\n", + "_ = ax.set_ylabel(\"frequency\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9b9cf70-3849-4b3d-9110-a6779df8c83f", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36dd222a-cdf6-4fc9-8ca5-6d7acffa153f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}