diff --git a/assets/qtt-output.png b/assets/qtt-output.png index b655f96..6115c4a 100644 Binary files a/assets/qtt-output.png and b/assets/qtt-output.png differ diff --git a/assets/rsa-threat-over-time.png b/assets/rsa-threat-over-time.png index bc7dcd1..17affae 100644 Binary files a/assets/rsa-threat-over-time.png and b/assets/rsa-threat-over-time.png differ diff --git a/notebooks/development/demo_plots.ipynb b/notebooks/development/demo_plots.ipynb index 15b4587..114271c 100644 --- a/notebooks/development/demo_plots.ipynb +++ b/notebooks/development/demo_plots.ipynb @@ -10,20 +10,41 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "id": "2e1c0c84", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/javascript": "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// This file provides CodeMirror syntax highlighting for Q# magic cells\n// in classic Jupyter Notebooks. It does nothing in other (Jupyter Notebook 7,\n// VS Code, Azure Notebooks, etc.) environments.\n\n// Detect the prerequisites and do nothing if they don't exist.\nif (window.require && window.CodeMirror && window.Jupyter) {\n // The simple mode plugin for CodeMirror is not loaded by default, so require it.\n window.require([\"codemirror/addon/mode/simple\"], function defineMode() {\n let rules = [\n {\n token: \"comment\",\n regex: /(\\/\\/).*/,\n beginWord: false,\n },\n {\n token: \"string\",\n regex: String.raw`^\\\"(?:[^\\\"\\\\]|\\\\[\\s\\S])*(?:\\\"|$)`,\n beginWord: false,\n },\n {\n token: \"keyword\",\n regex: String.raw`(namespace|open|as|operation|function|body|adjoint|newtype|controlled|internal)\\b`,\n beginWord: true,\n },\n {\n token: \"keyword\",\n regex: String.raw`(if|elif|else|repeat|until|fixup|for|in|return|fail|within|apply)\\b`,\n beginWord: true,\n },\n {\n token: \"keyword\",\n regex: String.raw`(Adjoint|Controlled|Adj|Ctl|is|self|auto|distribute|invert|intrinsic)\\b`,\n beginWord: true,\n },\n {\n token: \"keyword\",\n regex: String.raw`(let|set|use|borrow|mutable)\\b`,\n beginWord: true,\n },\n {\n token: \"operatorKeyword\",\n regex: String.raw`(not|and|or)\\b|(w/)`,\n beginWord: true,\n },\n {\n token: \"operatorKeyword\",\n regex: String.raw`(=)|(!)|(<)|(>)|(\\+)|(-)|(\\*)|(/)|(\\^)|(%)|(\\|)|(&&&)|(~~~)|(\\.\\.\\.)|(\\.\\.)|(\\?)`,\n beginWord: false,\n },\n {\n token: \"meta\",\n regex: String.raw`(Int|BigInt|Double|Bool|Qubit|Pauli|Result|Range|String|Unit)\\b`,\n beginWord: true,\n },\n {\n token: \"atom\",\n regex: String.raw`(true|false|Pauli(I|X|Y|Z)|One|Zero)\\b`,\n beginWord: true,\n },\n ];\n let simpleRules = [];\n for (let rule of rules) {\n simpleRules.push({\n token: rule.token,\n regex: new RegExp(rule.regex, \"g\"),\n sol: rule.beginWord,\n });\n if (rule.beginWord) {\n // Need an additional rule due to the fact that CodeMirror simple mode doesn't work with ^ token\n simpleRules.push({\n token: rule.token,\n regex: new RegExp(String.raw`\\W` + rule.regex, \"g\"),\n sol: false,\n });\n }\n }\n\n // Register the mode defined above with CodeMirror\n window.CodeMirror.defineSimpleMode(\"qsharp\", { start: simpleRules });\n window.CodeMirror.defineMIME(\"text/x-qsharp\", \"qsharp\");\n\n // Tell Jupyter to associate %%qsharp magic cells with the qsharp mode\n window.Jupyter.CodeCell.options_default.highlight_modes[\"qsharp\"] = {\n reg: [/^%%qsharp/],\n };\n\n // Force re-highlighting of all cells the first time this code runs\n for (const cell of window.Jupyter.notebook.get_cells()) {\n cell.auto_highlight();\n }\n });\n}\n", + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from quantumthreattracker.lifespan_estimator import HardwareRoadmap\n", "\n", "hardware_roadmap = HardwareRoadmap()\n", "\n", - "for i in range(8):\n", - " max_qubits = int(1e7 * (2**i))\n", - " error_rate = 1e-3 * 0.8**i\n", - " measurement_time = str(100 * 0.9**i) + \" ns\"\n", - " gate_time = str(50 * 0.9**i) + \" ns\"\n", + "# Baseline hardware assumed to be available in 2025.\n", + "baseline_qubit_count = 1000\n", + "baseline_error_rate = 1e-3\n", + "baseline_measurement_time = 100 # ns\n", + "baseline_gate_time = 50 # ns\n", + "\n", + "# The following are all percentages used for building the hardware roadmap.\n", + "yearly_qubit_count_increase = 75\n", + "yearly_error_rate_decrease = 20\n", + "yearly_measurement_time_decrease = 10\n", + "yearly_gate_time_decrease = 10\n", + "\n", + "for i in range(20):\n", + " max_qubits = int(baseline_qubit_count * ((1 + yearly_qubit_count_increase / 100)**i))\n", + " error_rate = baseline_error_rate * ((1 - yearly_error_rate_decrease / 100)**i)\n", + " measurement_time = str(baseline_measurement_time * (1 - yearly_measurement_time_decrease / 100)**i) + \" ns\"\n", + " gate_time = str(baseline_gate_time * (1 - yearly_gate_time_decrease / 100)**i) + \" ns\"\n", " params = {\n", " \"qubitParams\": {\n", " \"name\": \"Custom\",\n", @@ -41,12 +62,12 @@ " \"maxPhysicalQubits\": max_qubits\n", " }\n", " }\n", - " hardware_roadmap.add(timestamp=2051308800 + 31536000 * 2 * i, estimator_params=params)" + " hardware_roadmap.add(timestamp=1735689600 + 31536000 * i, estimator_params=params)" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 2, "id": "89619699", "metadata": {}, "outputs": [], @@ -58,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 3, "id": "dacd0841", "metadata": {}, "outputs": [], @@ -72,14 +93,14 @@ " {\"algorithm\": \"DH-SP\", \"keySize\": 4096},\n", " {\"algorithm\": \"DH-SP\", \"keySize\": 8192},\n", " {\"algorithm\": \"ECDH\", \"keySize\": 256},\n", - " # {\"algorithm\": \"ECDH\", \"keySize\": 384},\n", + " {\"algorithm\": \"ECDH\", \"keySize\": 384},\n", " {\"algorithm\": \"ECDH\", \"keySize\": 512},\n", " ]" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 4, "id": "cbe0249b", "metadata": {}, "outputs": [ @@ -95,6 +116,7 @@ "Estimating threats for DH-SP-4096\n", "Estimating threats for DH-SP-8192\n", "Estimating threats for ECDH-256\n", + "Estimating threats for ECDH-384\n", "Estimating threats for ECDH-512\n" ] } @@ -105,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 5, "id": "7dd58235", "metadata": {}, "outputs": [ @@ -113,26 +135,28 @@ "data": { "text/plain": [ "[{'protocol': 'RSA-1024',\n", - " 'threats': [{'timestamp': 2051308800, 'runtime': 11104517428800}]},\n", + " 'threats': [{'timestamp': 2082585600, 'runtime': 4573800000000}]},\n", " {'protocol': 'RSA-2048',\n", - " 'threats': [{'timestamp': 2114380800, 'runtime': 79980435612000}]},\n", + " 'threats': [{'timestamp': 2114121600, 'runtime': 24024000000000}]},\n", " {'protocol': 'RSA-4096',\n", - " 'threats': [{'timestamp': 2177452800, 'runtime': 496748688024420}]},\n", + " 'threats': [{'timestamp': 2177193600, 'runtime': 118800000000000}]},\n", " {'protocol': 'RSA-8192',\n", - " 'threats': [{'timestamp': 2240524800, 'runtime': 2357044050338640}]},\n", + " 'threats': [{'timestamp': 2208729600, 'runtime': 863460000000000}]},\n", " {'protocol': 'DH-SP-2048',\n", - " 'threats': [{'timestamp': 2114380800, 'runtime': 19827909000000}]},\n", + " 'threats': [{'timestamp': 2208729600, 'runtime': 3871252611072}]},\n", " {'protocol': 'DH-SP-4096',\n", - " 'threats': [{'timestamp': 2177452800, 'runtime': 139788085284120}]},\n", + " 'threats': [{'timestamp': 2240265600, 'runtime': 10272821370636}]},\n", " {'protocol': 'DH-SP-8192',\n", - " 'threats': [{'timestamp': 2240524800, 'runtime': 808757968896000}]},\n", + " 'threats': [{'timestamp': 2271801600, 'runtime': 175545601228800}]},\n", " {'protocol': 'ECDH-256',\n", - " 'threats': [{'timestamp': 2051308800, 'runtime': 56530581120000}]},\n", + " 'threats': [{'timestamp': 2145657600, 'runtime': 12436267477920}]},\n", + " {'protocol': 'ECDH-384',\n", + " 'threats': [{'timestamp': 2177193600, 'runtime': 10834183968300}]},\n", " {'protocol': 'ECDH-512',\n", - " 'threats': [{'timestamp': 2114380800, 'runtime': 259793928918000}]}]" + " 'threats': [{'timestamp': 2208729600, 'runtime': 25594294419892}]}]" ] }, - "execution_count": 49, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -143,13 +167,13 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 6, "id": "d95ff1db", "metadata": {}, "outputs": [ { "data": { - "image/png": "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wsHBAaNGjcLLly+1lnn8+HEYGxtrHI9CocCECRPg5uYGCwsLVK9eHd988w3e4qbFRGTgjEs7ACIqvODgYKxcuRIKhQL379/H3r17MWzYMGzevBk7duyAsXHR3uKdO3dGZmYmVq1ahWrVquH+/fs4cOAAHj9+rLbe1KlT0bdvX6SkpOCHH35At27dUKlSJQQEBGiUee/ePdy7dw+zZ8+Gh4cHbt26hQEDBuDevXvYvHkzACkha9euHZycnBAdHY34+Hj07NkTJiYmmD59ulp5SUlJ6NmzJ1q0aIH79++rLZs5cyYWLVqEVatWoW7dujh9+jTCw8Nha2uLoUOHFuncEBG9jpjYEb3BlLVoAFCpUiX4+vqiSZMmaNGiBSIjI9GnT59Cl52UlISjR48iKioKgYGBAICqVavCz89PY10bGxs4OTnByckJERERWLNmDXbu3Kk1satXrx62bNmimq5evTqmTZuGHj164OXLlzA2NsYff/yBS5cuYf/+/XB0dISPjw+++eYbjBkzBpMnT4apqalq+wEDBqB79+6Qy+XYvn272r6io6PRsWNHtGvXDoBUu/jrr7/i5MmThT4vRESvM96KJTIwQUFB8Pb2xtatW4tUjrW1NaytrbF9+3ZkZGTovJ2xsTFMTEyQmZmp8zbKLoeUNYwnTpyAp6cnHB0dVeu0adMGKSkpuHjxomreypUrcePGDUyaNElruQEBAThw4ACuXLkCADh//jyOHTuGkJAQnWMjInqTvJU1dhEREYiIiIBCoSjtUIhKRO3atfH333+rpseMGYPx48errZOZmQkPD488yzA2NkZkZCT69u2LxYsXw9fXF4GBgfj444/h5eWldZvMzEz88MMPSE5ORlBQkE6xPnr0CN988w369eunmpeQkKCW1AFQTSckJAAArl69irFjx+Lo0aN53nIeO3YsUlJSULt2bcjlcigUCkybNg2ffvqpTrEREb1p3soau8GDB+PSpUs4depUaYdCpDNFlsCJ64/xv5i7OHH9MfJr/y+EgEwmU02PGjUKMTExaj8DBgxQLT969Kiqhs7a2hpr164FILWxu3fvHnbs2IHg4GBERUXB19cXkZGRavsbM2YMrK2tYWlpiZkzZ+K7775Du3btMH36dLVyb9++rbZdSkoK2rVrBw8PD0yePFn3c6FQoHv37pgyZQpq1qyZ53obN27E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", + "image/png": "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K/j5+eGTTz7R2KP7m4w1d0T6RfG0LACVBE/xuNey/g3hX99JbT0iIn2hdXKX07Nnz3D37l28fPkSdnZ2qFGjxlv7pCyTOyL9sz8mHrN3X1V5uMLJ2gwzu7gxsSMivVeo5E6fMLkj0k/yLIEzsYl4lJoOeyvpVqyhwdv5JZSISBdatbnTR6GhoQgNDeWYi0R6ytBAxocmiOidxJo71twRERGRHmE/d0RERER6hMkdERERkR4pVHL3+vVrHDx4ECtWrEBqaioA4MGDB3j+/HmxBkdEREREutH5gYo7d+7A398fd+/eRUZGBtq1awcrKyvMmzcPGRkZWL58eUnESURERERa0LnmbuzYsWjcuDGePXsGc3Nz5fRu3brh0KFDxRocEREREelG55q7EydOIDIyEiYmJirTXVxccP/+/WILjIiIiIh0p3PNXVZWlsa+4e7duwcrK6tiCYqIiIiICkfn5K59+/ZYtGiR8rVMJsPz588xc+ZMdOzYsThjIyIiIiId6dyJ8b1799ChQwcIIXDjxg00btwYN27cgJ2dHY4fPw57e/uSirVEsBNjIiIi0ieFGqHi9evX2Lx5My5duoTnz5+jYcOG6Nevn8oDFm8LJndERESkTzj8GJM7IiIi0iM6Py0LSB0Wnzx5Eo8ePUJWVpbKvDFjxhRLYERERESkO51r7sLCwjB8+HCYmJigfPnykMlk2YXJZLh9+3axB1mSWHNHRERE+kTn5M7Z2RkjRozAl19+CQODt39oWiZ3REREpE90zs7S0tLw0Ucf6UViR0RERKRvdM7QhgwZgq1bt5ZELERERERURDrflpXL5ejcuTNevnwJd3d3GBsbq8xfuHBhsQZY0nhbloiIiPSJzk/Lzp07F7///jtq164NAGoPVBARERFR6dG55s7GxgYhISEYNGhQCYX032LNHREREekTndvcmZqaokWLFiURCxEREREVkc7J3dixY7FkyZKSiIWIiIiIikjnNndnzpzB4cOHsWfPHtSrV0/tgYodO3YUW3BEREREpBudk7ty5cqhe/fuJRELERERERWRzg9U6IvQ0FCEhoZCLpfj+vXrfKCCiIiI9MI7m9wp8GlZIiIi0ida3ZZt2LAhDh06BBsbGzRo0CDf/uwuXLhQbMERERERkW60Su66du0KU1NT5d/srJiIiIjozcTbsrwtS0RERHpE537u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", "text/plain": [ "
" ] @@ -171,13 +195,13 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 7, "id": "be192916", "metadata": {}, "outputs": [ { "data": { - "image/png": "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37+PyMhITJgwAYCsNQSAF198scA27t27h/r162P+/Pl48803ERMTA0AmyXkJIaBSqYrt6JPImHhpj6gCGzx4MO7du6ezzUxaWhpSUlIA5NbA5K19SExM1HnJpEqVKjp7s46Li9OadnBwQKNGjXRe4snLwsKiQK3Hxo0bce/ePa15PXv2xL1797B9+3bNvPT09AL7pmtfhBBYuHBhkXHoQ6VSFbhE6ObmBk9PT639rVKlSokuJRbn3XffRVxcnNa+Hj58GFlZWQXW3blzJwDA29sbAHD37l38999/GDx4MAYOHFjgb/To0bh+/TpOnDgBDw8PdOvWTesvR3R0NHr06AGlUol//vkHrq6uOmNt3rw5mjZtihUrVmglPkuXLoVCodB0LtulSxds3bq1wJ+rqyvatGmDrVu3ol+/fgCguRT9+++/a73W9u3bkZKSgpYtW+pdpkSGwhopogpsxIgR+OOPPzBx4kQcOHAAHTt2hEqlwuXLl/HHH3/gn3/+QZs2bdCjRw9YW1ujX79+eO211/D48WP8+OOPcHNz06rZAIDWrVtj6dKl+Pzzz9GoUSO4ubmhS5cu8PHxQadOndC6dWu4uLggJCRE0z1AUZ577jnMmTMHo0ePRocOHRAaGop169ahQYMGWuu99tprWLx4MYYOHYpp06bBw8MD69at0/RKnlP707RpUzRs2BAzZ87EvXv3NJeG8rcpexLJycmoXbs2Bg4cCH9/fzg4OGDv3r04deqU1qWz1q1bY8OGDZgxYwbatm0LBwcHTXKgj969e8PX1xfz5s3DlClTYGVlha+//hqnT5/Giy++iBYtWgAAzpw5g19++QUuLi548803AchG4UKIApfFcvTp0weWlpZYt24d2rVrV2gMvXr1ws2bN/HOO+8gODgYwcHBmmXu7u5aXVx8++236N+/P3r06IEhQ4YgLCwMixcvxrhx49CsWTMAsh2arrZob775Jtzd3TFgwADNvH79+qF58+aYM2cObt++jaeeegrXr1/H4sWL4eHhgbFjx5a4LIkMzkR3CxKRKF3P5hEREQKAWL16tWZeUFCQaN68uc7tZGZmiq+//lo0b95c2NjYiGrVqonWrVuL2bNni8TERM1627dvFy1atBC2trbCy8tLfP3112LVqlUCgIiIiNCsFx0dLfr27SscHR0FAE1XCJ9//rkIDAwUVatWFXZ2dqJp06biiy++EJmZmUWWQXp6unjrrbeEh4eHsLOzEx07dhTHjh0TQUFBBbpZuHnzpujbt6+ws7MTrq6u4q233hKbN28WAMTx48c164WHh4tu3boJBwcHUaNGDTF+/HhNFwZ5y62w7g90dWtQr149MXLkSCGEEBkZGeLtt98W/v7+wtHRUVSpUkX4+/uLH374Qes5jx8/Fq+88oqoWrWqAFBsVwiF3fovhBBr1qzRiv/IkSNiypQpwtfXVzg7OwsrKytRt25dMWrUKHHjxg3N8/z8/ETdunWLfN1OnToJNzc3rZ7I80Oebgfy/+nqDmPr1q0iICBA2NjYiNq1a4uPPvqo2GOhqDKIj48X06dPF02aNBE2NjaiRo0aYsiQIeLmzZvFbpPImDjWHhGZtQULFmD69OmIjIxErVq1TB0OEVUyTKSIyGykpaVp3Z2Ynp6Oli1bQqVSaW7hJyIqS2wjRURm48UXX0TdunUREBCAxMRE/Prrr7h8+XKpO5UkInpSTKSIyGz07NkTK1euxLp166BSqeDj44Pff/8dL7/8sqlDI6JKipf2iIiIiEqJ/UgRERERlRITKSIiIqJSYiJFREREVEpMpIiIiIhKiYkUERERUSkxkSIiIiIqJSZSRERERKXERIqIiIiolJhIEREREZUSEykiIiKiUmIiRURERFRKTKTMlZcX4O0N+PsDjRoBzz8PHD2au3zZMuDbb0u37U8/Bd58s/j1nuQ1DOHRI+B//9Oe16kTsG2b7vU/+QRYt84wr33wIBAQUPx6584Bv/9e+PLSlOHy5UDTpvL14+L0e25RwsLkcVWerVkDXL5c+ucvWABERxsqGiqpoj6XxrZ4MTBqlGG3+emnQHq67mW6zkv6bLck596i3L8PPPNMydYtL5+HJ/lcG+P91RMTKXO2YQNw/jxw/TowciTQpw9w4oRcNnEi8Pbbxn19Y79GdnbRy/U9Yc2ZAwwb9kQh6a24RKo0ZbhgAbB6tdx29eolf55Kpd/rlEfFnXCL28fSfnEUdywagylek0pm9mzjJFKG4OkJHD5csnXL6vNQ3PpP+gPJxJhIVRQvvii/lL/7Tk7n/WVz/DjQurWswfD1BZYulfMTE4Fx4+Q8f39gzJiC2w0NBZ5+GmjVCvDxAT7/PHdZ3tdYswbo1g0YOlSu16EDEB4OvPAC0KwZ0KMH8PixXDcrC3jvPSAwUMY0eDCQkCCXjRol43j2WRlXUSZOBJKT5TbatMmdHxwsf5E1bCjXyTFqlDxxAMCOHUCLFrll8uefBbd/8KBc9uqr8n/r1jJ50WXtWrm9Fi2Avn2Be/eA2FhZC3bggHydvLHoKsPC3qe8Bg4EbtyQ+zJwYOGvDcj3pHNn4KWXAD8/4ORJ3a/fuLF83fwJ3z//yPe+dWv5Xh04oF0ukybJ1/TzAy5ckDH5+QHt2uXGoFLJRNHXV/698QaQmSmXjRoFvPYa0LUr0KSJPIZzlul6f1auBEJCgOnT5fydO3Xv47x5QNu2cp22bYFjx+Q258yRv9ZfflkuO3dOHpNjxuTGN3t27v536gRMnQq0by+P39dfB778Mnf5lStAnTq6vyQUCuCjj4CWLeW+5a0JVSjkl22OGjWAW7fkYy8v4N13ZXmPHFn8Mfjtt0Dz5nLfhw2Tn+nCyg+QX5qDB8vt+/nJGAFArZb716yZPBe0bq07UYiNle+Tn5/c7vLlucu8vOTx3r49UL++9rkix/37gLs7kJqaO++VV3Qf6/v2yW21bCn38aefcpcVdewkJ8v32NtbHr+hoQW3XZKYr1+X57SccsypUcv5HD/zjJwfG6u9TV3npcK2pcvdu0CXLrLWuV+/3Frnos6bed26BVStmjutUMjjNjBQ7uPq1XK+rs+Dvufm4o7zWbPkZ/D992WZjB8vt92iBTBhgnzPdH2uAfldFhgov3t69QJu35bz9Xl/y4og81SvnhBnz2rP27JFiGbN5ONZs4SYNk0+7t9fiPXrc9eLj5f/R40SYtIkIVQqOR0bW/C5SUlCpKfLx6mpQgQECHHsWMH1Vq8WwslJiNu35fTw4UI0aCBEdLSc7ttXiMWL5eMvvhBizpzceObMEWLyZPl45EghWrSQr5vD31+Ie/cKlkFEhBDOztrzgoKEGDBAiKwsGa+XlxBHj+Zue/58+bhFi9z5KpUQCQkFt3/ggBCAEHv3yukNG4Tw9hZCrZbL/P3l/NBQIdzdhYiMlNOffy5Er1655fL88wW3naMk71N+ed/74l7bzk6Iy5d1b+evv4Tw8REiMVHu07BhcttCCHHjhhBPPSWXCSHEtWtC1Kwpj4UDB4SwsBAiJEQu++gjIapXF+LSJTk9ebIQM2fKxz/8IN+T9HT5nvTuLcT//ieXjRwpRGCgECkpQmRnC9GhQ+7+F/b+BAUJsXVr7j7o2sec41gIeax6e+suOyGEeOcdIV55Rb7G48fy+P7999zX6tlTiMxMOX35snx+dracnjpV+zjOC5DlklOW1arJ4zVnWd7jrXr13GX16gkxdqx8P4Qo+hjcuVOIpk1ztzV+vBATJ8rHhZVfjx5CHDwoH2dlyf374w8hzpyR28o5Fzx6lPs4r8GDhXjvPfk4JkaI2rVzzwf16gnxxhvy8YMH8nyQc1zmfd9eeUWI5cvl4+hoIVxdhUhOLvha8fG5ZR0XJ0TdukLcvSunizp2Zs4UYsQIWUaPHsn9Gjmy4PaLizkwUIhly+Tjq1eFcHER4tYtOZ3/PcxL13mpqG3lNWuWLI+oKDk9aZJ8X4Uo+rxZ1OsDQnz3nXx86ZIQDg7yvc/Z/7yfB33PzcUd57Nn5647frwQP/8sH6vV8jj/5hs5nf9zvW6dEOPG5b7/v/wiRJ8+8rE+728ZsTR1IkcGJITu+Z07A599Bly7Jn/pPP20nP/XX/JSoPL/KyZdXQs+Ny0NmDxZ/lpRKuWvpXPngKeeKrhu+/ZA3brycZs28teNu7ucbttWvj4gf40lJgKbN8vpzEzttjmDBgGOjrnThdUCFebllwFLS/kXECBrcNq3116na1dg2jRZq9OjR+Htnby85LqA/HU2YYIsg7wOHJC/mGrVktOTJ8tfe/peSivsfSpKca/doYP85abLvn1yn5yc5PRrr8naPADYvVv+in722dz1lUrgzh35uFEjWWsByPe6USP5CxqQvyK3bpWP9+6Vv2RtbOT0+PHAkiWy1gWQNZb29rnPu3FDPi7p+6NrH8+eBb74Qv6St7SUNUdpaYCdXcHn7t0LzJ0r961KFVnzs2ePPIYAYPhwwMpKPvb2lrWtf/4J9OwJ/PZb0b+Gx42T/xs0kOX4338la4M2apT8NZ+jsGNw714ZZ07tw6RJ8rMD6C6/lBT5nsfE5G778WNZPj16yJq1MWPkcdi3b+55IX95nT4tH7u5yZqgvXtzzwevvCL/16gh9zsiIvfYzDFtmjwOJkwAfvxR1mI7OBR8rbg4YOxY4OpV+T7Gxcl2fLVry+WFHTv79gHz58sydHaWMeUs00VXzE5OwJkzwJEjclnjxvLzePgwUK9e4dvSJTlZv2317QvUrCkfT5ggyxgo/rxZlJwmDU2byrKMjs4tx7z0PTcDRR/nea9ybNsma4fnzZPTaWmAhYXueLdtA06dyj3H5D2X6vv+lgEmUhXJqVO6L4e9+aZsjL53L/DBB3KdH34o2TY/+ECeYM6elR/AF18svG2ArW3uYwuLgtM5l0CEABYtkidvXXSdVPVR2OvmNW8ecPGiTERGjpQnmnfeKX7bCoX2l1xh65TGk7xPhb22PmWZ97lCAN27A+vXF1zv3r2Sv9fFxVfY8/R5f/LuY2amPEYPHJDJe1KSPNlmZOhOpIqLL3/5TZsGfP018OCBLJ+cHwolkbNtCwvtL4b8n6fi3rPCjsG883SV3+TJctnx49rlniMsDDh0SD7n/fflF2KjRiXbpxwlOQ4CA2UCdOAAsGKFPN51mThRtvvcvFm+TqtW2mVV2mMuP0NtRx/6bCtn3eLOm0Up6T4a4tycd9/yri+EfC+bNCl+G0LIY3DCBP1ez0TYRqqi+PNP2c7grbcKLrtyRV4bHz9efkEfPy7n9+8vr0Or1XL6wYOCz01IkL9ccn7Z79nz5LEOGCB/UeS0k0hNlSd9fTk5yV81OW0j9HH5smx38frr8pd8Tpnkd+tWbtugTZvkF2f+X3KdO8sanPv35fSyZbJGwMJCxpjTbqU4hb1PRSnqtYvTrRuwcaP8xSyE/FLL0bOn/IK7cCF3nq42ViV5jV9+ke9RdrZsD1GSL4LC3p/iyjM9Xb5WTs3ookXay/M/v1s32fZGCFljs3Zt0fH16CF/zX/+uYytKDltUW7dkrUPOXdSNWqUe1PIli3ydYtS2DHYrRvwxx8yWQRke6Wc2HWVn4ODPF7yNoS+fx+IjJSf/ZQU+fwvv5Q1CuHhBWPp1k3WIgHyOVu2yIRSX9Omydq/Zs0K/2JNSJA1NgqFTOrOny/Ztrt1k2UvhCyb337TPz5HR5m45byH16/L2tqcGlpHx8KPw/znpeK2ld/Onbm1hitXyv0BDHfezB9r3v0ozWsUdpznN2CA/BGSk8QlJMiyKCyOZcuA+Hg5nZUlf8wDhnl/DYw1Uubs5ZflL42UFHnJYedO2dA3v8WLgf37AWtr+QU7d66cP3++bODn5ycvX7Rtm3uSzPHRR8CIEcDPP8vG2126PHnc774rawjatcv9NfHuu/LEr0tOA0RPT+35Li7yZNyihfySCAkpeQwffCATF2tr+etYV2NXQMa0Zo1sdGxtLT+0+X8B+frKRr+9esnpOnVyy7FrV5mstmghL0EtW1Z4TIW9T0Up6rWL06ePTI5atZInst69c5c1aiRro157TZ5MMzNlg1JdNVRFmTBBVru3aiWnO3Uq2e3dhb0/EybIHwvz52s3/M7h5CSTnMBAWZM6ZIj28qlTZaJqby/f148/lvP8/OTyQYPk5bPCKBTyctP69QUvF+enUskyS0kBvv8+93LH/PnyNT/6SF7GKe7Oy8KOwd69ZS1S+/byMlyLFrk1mIWV37p1wIwZ8rhRKOTlzOXLZazjx8svLJUK6NhR+3jI8f33MjHz85NfZB9+qPucU5yBA+V2ikpG//c/WYv22WfyHFDS1/n4Y3m5qWlT2Vzh6afl+UZf69bJWrHFi2VZrVyZm6C/9ZZMIO3tgX//lZc5c+g6LxW1rfyeeUZerrp3T14GXLNGztf3vFkS+T8PpXmNwo7z/ObPlw3ZAwLk8WppCXzzjTzX5P9cDxsmL+V27iyfm3PZuWVLw72/BqQQorCGNUSV3MGD8ktf3zZaVLE995z8ETNiROHrKBTyF3feu6dKo6IegyEhMlm4fFl3WywyD4Y6zs0cj2AiopIICZG/npXK3AbKpL9x42Q7tsWLmURRhcAaKSIiIqJS4s8BIkMxdY/Gujx+rN2mKyBANi4vSv5ehrdvl23pKpuSDgNUUvoOUXTrVtFt6oyhqPfa0EMIFTXMSnEM+VkbNy63MX9p5e1UtTT69JFt2opSks8umQRrpIhKKjtbNpAszK1b8mSXt9dqY1CpSnZXHiATKUfHwvsY0yWnQfiAAaUIrpwp7j0riqnbJ5n69fMLC5Ptw54kYcirqPY15eWzVlI1ashLv+V9rEoyCtZIkWkMGyY7cswZ1iRnvKcHD+Qt2H5+ctno0bqfP3Nm7jAgzz6r/Wvu2DF5J4e/v9xGzvAYly7J2/pzhlPJ+bWff0DVgQNz75TRNSxCYbHrGhqisCE58luzRt4R2b+/vAPz2Wdzv7B0DYNy6pRcv00beSfLxo2521q+XN7t07KlvAsmr7zDk+gqj8KGYcmbVBU2LMmnn8pG2P36yX3o0iX39uWSDH+TX1HDgOgztEt+69fLu5JatpTHyI4dhceQna17eJboaPmetG6d281ATjcihe2rvkMUTZwoj+uAAHlcAPK96dBBPjcwMLeTx/yiouS++/jI/0OGyPcHKDgwbt5BX/O/16UZQii/zz+X3RwEBMi/27d1D7NizM/a0aNyXT8/+Rr+/jJRBbQ//yUZNguQNXfNmsm48vdvdu2ajLVtW7l88eLcZYWdm7y8co8tXeUFaH92CzsOcoaHmTVLvi+NGuUOuZKWJj+fPj7y9UvTHxXpZspu1akSyzuMx1dfCfHaa/LxvHlCTJiQuywurvjn//abHOoiZ303NyH++09Oq1RyXlaWEI0baw/B8uCB/J9/eIKXXpJDjwihe1iEwmLXNTREYUNy5Ld6tRDW1kKEh8vpr78Wonv33GV5h0FJSJBDmdy/n7sfderIoS1yhozJWfb++3Kohhw5Q1voUx55h7kpaliSWbPkkBMPH8rpl18W4ssv5eOSDn+TV1HDgOgztEt+Dx/mDsESESHLK2cYpLyKGp4lLS13WJPsbDkE0m+/Fb2vpRmiKGcYIiGEyMiQ7/Pu3XL68GEZu67hVQYOFOKTT+TjqCi53qxZcjrvsERCCLFoUe4QG3nf69IOIZRXfLz8TKSmyumUFFl2QhQcZsVYn7WMDDmUzf79ctn+/fK1DxyQ03mP98KGzcorJkYO8XLxopxevlxuLyJCHgutW+cOl5SSIoSfnxAnTxZ+bhIid6iWkpRXUcdBRIRcb9MmuWzXLiGaNJGPt2yRZZSjsHMr6Y39SJFprF8vOz9MT5d/NWrI+U89JWtR3npL/jLN6R8pvz17ZGeLycmyJiCn5uPYMTmUR06ncEql7Nfl4kX5OkOH5m4j5zWLk39YhMJiz6+oITl06dBB/hIFZL8qH32ke6iXo0eBmzcL9vNz5Yq8/NK7N+DhIedNmgR89VXB17pypXTlUdSwJIB8v3L6RWrfPncIldIMfwMUPgyIPkO75BcRIWs6IiPl5aP4eDkvZ4ibvAobnqVGDdm/TnCwvGwaGytrMYYMKdm+6jMETo4rV+T+9uwpp59+WnbOee5cwdfYty93APOaNeUlOX2Vdgihxo1z5zk5yenhw+V+9u2re2iSHMb4rF2+LN/nnD6JOneWfeLpUpJhs44flzVBPj5yeuxYORg3IF/v4kXt/suSk2XnprGxus9NeZWkvIo6DmrXln0L5gwr07597mfG31/WQk+eDAQFyXZZZBBMpKjsBQfLjtuOHZMd2W3fLhviAvKDf+6c/KLcskV2vnb2rHaboDt35KWUU6fkCfHChcJ7CS4JS8uSD9lRVOz55bRLKmxIDn3kH2qheXOZUOUXFqY9bezhE0o6REhph78p7fAdRQ1lMWSIbKg8cKCcdnEpeaPnnOFZ5s2TX4wnTsgYZ8zI3UZJ9rW0QxTpikff9Yo73kuyjaKGEMrLwkIe/0ePyktpTz0lOxQtrPdrY3zW8vbOr2tfnlT+cnFx0d2u7e+/i9+WvuWlKwYbG93DETVoIBO6/fvlsfnOOzLOatWKj4uKxDZSVPYSEuSvzurVZZuX5ctzl0VEyJPp4MGyxunqVfnLMq/ERFnb4OEhT1x52yB06CBrAg4fltM5tVXe3rJmI+9wAg8fyv95h+yIiMj91a1v7PmHhihqSA5djh3LvVtu5Ur5XF2Nyjt0kHHmHaPs3Dn5ul26yNqCnLYkhd31VVR5FDUMS1HDkhSlsOFvtm6VtUn60ndol7wSEmQsAPDrr3K6MIUNz5KQIGt6bG1lWedto1aSoX5KMkRR/vfB21sezznDNB09Kl9bV21Wly657fxiYmRNS45GjWQbG5VK9lqfM0BtfoYYQig5Wb7+M8/IH0VPP5071EdRw6wAhvuseXvLHtsPHZLzDx3KHZokv5IMm9W+vdzvnM/qqlW5cXh7y9hyhk0B5GvFxxd+bippeeXQ5zjIKzJSJlg5+yhEwQHYqVSYSFHZ69VLngxyqrnzngAOHsxtqNuhg2zY7Oys/Xw/P1mr0Ly5bNCZd6iFatXkl/N778nq91atZENMS0vZsHP1avl8f//cL5B33pFfln5+cqDMooaiKCr2vEND5DSAXbdOnkh9feX2X3xRDn2gS4cOucMxbN+u/cWRV7Vq8tftl1/K/fDxkfurVsvX+fRTGVvLlvLXqS5FlceECXLbOY3N8+rdW94A0L69fF5Sku5Lh/ktXiz3q2VLeckyZ/iba9dyLx3p4+OPZTLt5yffr/79ix7aJa+FC2VtVMuW8kuqsKE6gNzhWfz85H7mDM8ybZpMvps3lz2c54yHVtS+5vXBB7nrrF2b2xA8rxYt5Dq+vnL/rK1lLe2sWXLZm2/K5E5X7dvChfIL28dH1na1a5d7OfbFF+VwS82ayUt+LVvq3vc+fWQ5tWolj+e85ZR3CCF/f7mtnIb0eSUmytfLuXkkK0vWwAG5w6zkNDbPz1CfNRsb2VA+Zyig1avlNnXdLTh/vhxuxM9Pvt4HHxRcx9VVJk8vvCD3/dq13MvZlpYyad2yJff9GztWJn2FnZtKWl459DkO8goNlUP/+PvL93zECPl8QO5rznidpDd2f0BUHqxZI+8cynv3YGUwYID8AuZt44aVliYTTUtLmUw89ZSsfSvNuHgVQXJybturU6dkYnrjRm77O6InwDZSRGQ6lS1xLCvXrskaGyHkZafJkytvEgXI2tb582V5WFrKWkAmUWQgrJEiIiIiKiW2kSIiIiIqJSZSRERERKXERIqIiIiolJhIEREREZUS79ozIrVajfv378PR0REKY/cwTURERAYhhEBycjI8PT2hVBZd58REyoju37+POnXqmDoMIiIiKoW7d++idlHjQ4KJlFE5/n8HcHfv3oVTaXpvJiIiojKXlJSEOnXqaL7Hi8JEyohyLuc5OTkxkSIiIjIzJWmWw8bmRERERKXERIqIiIiolJhIEREREZUSEykiIiKiUmIiRURERFRKTKSIiIiISomJFBEREVEpMZEiIiIiKiUmUkRERESlxJ7NzZBKLXAyIh6xyelwc7RFYH0XWCg5KDIREVFZYyJlZnaHRWH2jnBEJaZr5nk422JWPx/08vUwYWRERESVDy/tmZHdYVGY9OsZrSQKAKIT0zHp1zPYHRZlosiIiIgqJyZSZkKlFpi9IxxCx7KcebN3hEOl1rUGERERGQMTKTNxMiK+QE1UXgJAVGI6TkbEl11QRERElRwTKTMRm1x4ElWa9YiIiOjJMZEyE26OtgZdj4iIiJ4cEykzEVjfBR7OtiiqkwN7awsE1KlaViERERFVekykzISFUoFZ/XwAoNBkKjVTheE/neDlPSIiojLCRMqM9PL1wNLhrVDTWfvynYezLaZ0bghHW0tEPUqDUsHOOYmIiMoCO+Q0M718PdDdp6bOns0Htq6D1Mxs1HCwMXWYRERElQITKTNkoVSgfcPqBebXr1FFa3rz6UhciHyEj57zgZUFKx+JiIgMjYlUBRWbnI4Pt4UiPUuNy9HJ+GFYK1RnTRUREZFBsZqignJztMX3Q1qiirUFTkTEo//iIwi7l2jqsIiIiCoUJlIVWI/mNbFtSkfUr1EF9x6l4aWlR7Ht7D1Th0VERFRhMJGq4Bq7O2LblI7o5O2KjGw13txwDl/uvAQhOCYfERHRk2IiVQk421nhp5FtMaVzQwCAraUSCnaRQERE9MTY2LySsFAq8HbPpni2sSvaerlo5gshmFQRERGVEmukKpl2DapDqZSJU3qWCkNWHMfO0CgTR0VERGSemEhVYr8cu4UTEfGYvO4Mvv3nMlRqtpsiIiLSBxOpSmxMx/oY/0x9AMCSAzcw/pcQJKZlmTgqIiIi88FEqhKztFDiw74+WPByAGwsldh/ORYvLDmC67HJpg6NiIjILDCRIgxoWQubJ3WAp7Mtbj5MwYAlR3Hk+kNTh0VERFTuMZEiAIBvLWdsf+NptKvvAisLBeq62Js6JCIionKP3R+QRg0HG/w6rh1ux6WgTp5EKlulhiUHPSYiIiqA346kxcpCiUZujprpfZdi0Pf7YEQ8TDFhVEREROUTEykqlEot8NWuy7gSk4z+i4Nx4EqsqUMiIiIqV5hIUaEslAqsH9cOrepWRXJ6NsasOYUfDl7nOH1ERET/j4kUFcnNyRa/TXgKQwPrQgjgm91X8PpvZ5GamW3q0IiIiEyOiRQVy8bSAl+96IcvXvCFlYUCf1+Iwos/HMXjDCZTRERUuTGRohIb1q4e1o9/CjUcbNDGqxocbHjTJxERVW78JiS9tPVywd9Tn0Y1e2vNvLRMFWytlFAoFCaMjIiIqOyxRor05u5kC2tLeehkq9QY98spzPjjPNKzVCaOjIiIqGyxRoqeyOnbCTh+Mx4qtcC12GQsH9EGtaramTosIiKiMsEaKXoi7RpUx9qxgahmb4Wwe0novygYJ27GmTosIiKiMsFEip5Yh4Y1sP31p+Hj4YS4lEwMW3kCvxy7xf6miIiowmMiRQZRx8Uemyd1QH9/T2SrBT758yLm77lq6rCIiIiMiokUGYydtQUWDgnAB32awtHGEn1beJo6JCIiIqNiY3MyKIVCgQnPNsSg1nVQrUpuFwkJKZla00RERBUBa6TIKPImTaduxaPj1/vx+8k7JoyIiIjI8JhIkdFtO3sPqZkqvLclFB9vC0NmttrUIRERERkEEykyus8H+GJmjyZQKIC1x29j+MoTeJCcYeqwiIiInhgTKTI6hUKB17s0xspX28DRxhInb8Wj/+JgXIh8ZOrQiIiInggTKSozXZu5Y9vrHdHAtQqiEtMxcNkxXI5OMnVYREREpca79qhMNXR1wLYpHTFjwznYWFnA293R1CERERGVGhMpKnNOtlZYMaINMlVqKBQKAEBKRjYystVwYRcJRERkRnhpj0xCqVTA1soCACCEwNubzqPfomBcvJ9o4siIiIhKjokUmVxcSibC7yfh3qM0vLT0KLafv2/qkIiIiEqEiRSZXA0HG/w55WkENXFFepYaU387i692XYJKzUGPiYiofGMiReWCs70VVo1qi4lBDQEAyw/dxOg1p5CYmmXiyIiIiArHRIrKDQulAu/1bopFQ1vC1kqJ/64+wLhfTkEI1kwREVH5xESKyp1+/p7YPKkD6teognd7NdXc2UdERFTesPsDKpeaezpjz/RnYWmRm+tfjk5CEzdHKJVMrIiIqHxgjRSVW3mTqEtRSXhhyVGM/yUESelsN0VEROUDEykyC7cepkAlBPZdjsWAJUdw48FjU4dERETERIrMQ28/D2ya2B4ezra4+SAFAxYfwb5LMaYOi4iIKjkmUmQ2WtSuiu2vP422XtWQnJGNcb+EYNG+a1CzvykiIjIRJlJkVlwdbbBu3FMY8VQ9CAHM3XMVW87eM3VYRERUSfGuPTI71pZKfDbAF809nfBveAwGBHiaOiQiIqqkWCNFZmtIYF38NLKN5u6+zGw1Qm7FmzgqIiKqTJhIkVnL21nn7B0XMXj5MSw/dEPTG7pKLXDsRhz+PHcPx27Ecfw+IiIyKF7aowpBpRbIVgmoBfDVrssIu5+Ebs3c8L9dlxGVmK5Zz8PZFrP6+aCXr4cJoyUioopCITiQmdEkJSXB2dkZiYmJcHJyMnU4FZ4QAr8ev43ZO8KRXUjNU0791dLhrZhMERGRTvp8f/PSHlUYCoUCI9p7Ye2YQBQ2ikxOejV7Rzgv8xER0RNjIkUVj0KBonIkASAqMR0nI9gwnYiIngwTKapwYpPTi19Jj/WIiIgKw0SKKhw3R9sSredka2XkSIiIqKJjIkUVTmB9F3g426KQZlIaM/44hx8OXsfjjOwyiYuIiCoeJlJU4VgoFZjVzwcACiRTOdOuDtZISM3CN7uv4Omv92PJgetITs8q0ziJiMj8MZGiCqmXrweWDm+Fms7al/lqOtti2fBWOPZ+V8wb7I8GNargUWoWvv3nCt7ZdMFE0RIRkbliP1JGxH6kTE+lFjgZEY/Y5HS4OdoisL4LLPL0jaBSC+w4fx/f77+Gbwe2QOt6LgCAxNQsQAE427EdFRFRZaPP9zcTKSNiImU+1GoBZZ4E67O/wvFHyF2M7lgfYzvWh7M9EyoiosqCHXIS6SlvEqVWC4TcTkByeja+33cNT3+9H3P/vYJHqZkmjJCIiMoj1kgZEWukzJdaLbD7YjS+33cNl6OTAQBVrC0wsoMXxj3TAC5VrE0cIRERGQtrpIiekFKpQB8/D+yc+gyWDW+FZh5OSMlU4YeDN7DkwHVTh0dEROWEpakDICrPlEoFevl6oIdPTey5FIPlh25gwrMNNMvvxKXC3sYCNRxsTBglERGZChMpohJQKhXo2bwmejavqTV/1vYwHLsZh+Ht6mFCUIMS96pOREQVAy/tEZVSWqYKCalZSM9SY2VwBJ75+gDm7AhHbBLH8CMiqizY2NyI2Ni84hNC4NDVB1i47xrO3nkEALCxVGJoYF1M6tQQ7k6soSIiMjdsbE5URhQKBTp5u2HLpA5YOzYQbepVQ0a2GmuO3sK/4TGmDo+IiIyMbaSIDEChUOCZxq54ulENHL0Rh3UnbmNwm9qa5WfuJMDdyRa1qtqZMEoiIjI0JlJEBqRQKNCxUQ10bFRDMy9bpcZbf5xHZEIqBraug8mdGqKOi70JoyQiIkPhpT0iI0tIzYKHsy2yVAK/nbyDzt8dxLubLuBOXKqpQyMioifExuZGxMbmlNepW/FYuPcagq8/BABYKBV4sWUtTO3amDVURETlSJk1Ns/IyHiSpxNVKm29XPDruHbYPKk9nmlcAyq1wMbTkbgbz5opIiJzpVcitWvXLowcORINGjSAlZUV7O3t4eTkhKCgIHzxxRe4f/++seIkqjBa13PB2rHtsGVyB7wW1ADtG1bXLNsVGoUbDx6bMDoiItJHiS7tbd26Fe+++y6Sk5PRp08fBAYGwtPTE3Z2doiPj0dYWBgOHz6MY8eOYdSoUfjss8/g6upaFvGXa7y0R/p4lJqJp78+gNTMbPTz98QbXRqhkZujqcMiIqp09Pn+LlEi1b59e3z00Ufo3bs3lMrCK7Hu3buHRYsWwd3dHdOnT9c/8gqGiRTpIzIhFZ9uv4i9l2IBAAoF8FwLT0zt0giN3ZlQERGVFYMnUlQ6TKSoNMLuJeL7fdc0HXoqFEAfXw+817spG6UTEZWBMu3ZXKVS4dy5c0hISHjSTRERAN9azljxahv8PfVp9GpeE0IA/1yMNnVYRESkg96J1JtvvomffvoJgEyigoKC0KpVK9SpUwcHDx40dHxElVZzT2csG9Eau6Y9gznP+2rVRq347wbC7iWaMDoiIgJKkUht2rQJ/v7+AIAdO3YgIiICly9fxvTp0/Hhhx8aPECiyq6ZhxNeaVdXM30pKglf7ryM5xYFY9zPIQiNZEJFRGQqeidSDx8+RM2aNQEAO3fuxKBBg9CkSROMGTMGoaGhBg+QiLRVsbZEf39PKBTA3ksx6Lc4GGPXnMKFyEemDo2IqNLRO5Fyd3dHeHg4VCoVdu/eje7duwMAUlNTYWFhYfAAiUhb3er2+H5oS+yZHoQBAZ5QKoB9l2PRf/ERjF59ElGJaaYOkYio0tA7kRo9ejQGDx4MX19fKBQKdOvWDQBw4sQJNG3a1OABEpFujdwcsGBIS+ydEYQXW9WCUgGE3ktEVTtrU4dGRFRplKr7g82bN+POnTsYNGgQateuDQD4+eefUbVqVTz//PMGD9JcsfsDKku3HqbgVlwKOnm7AQDUaoGP/gzDiy1roY2Xi4mjIyIyH0brRyorKwu9evXCsmXL0Lhx4ycOtKJjIkWmtCs0CpPWnQEAdGxUHdO6NkFgfSZURETFMVo/UlZWVrhw4cITBUdEZcO3ljOGBtaBpVKBI9fjMHj5MQxdcRzHb8aZOjQiogpD70t706dPh42NDf73v/8ZK6YKgzVSVB5EJqTih4M3sDHkLrJU8uMeWN8FK0a0RlX73PZUKrXAyYh4xCanw83RFoH1XWChVJgqbCIik9Hn+9tS341nZ2dj1apV2Lt3L1q3bo0qVapoLZ83b56+myQiI6pdzR5fvuCHKZ0bYenB6/jjVCTSs1RwtrPSrLM7LAqzd4QjKjFdM8/D2Raz+vmgl6+HKcImIjILetdIde7cufCNKRTYv3//EwdVUbBGisqjqMQ0JKRkwcdTHpNbz0Ri+h/nC6yXUxe1dHgrJlNEVKlw0OJygokUlXcqtYD/7H/xOCNb53IFgJrOtgh+twsv8xFRpVGmgxYTkfk6GRFfaBIFAAJAVGI6TkbEl11QRERmRO82Up07d4ZCUfgvU17aIzIfscnpxa+kx3pERJWN3olUQECA1nRWVhbOnTuHsLAwjBw50lBxEVEZcHO0Neh6RESVjd6J1Pz583XO//TTT/H48eMnDoiIyk5gfRd4ONsiOjEduhpL5rSRYkeeRES6GayN1PDhw7Fq1SpDbY6IyoCFUoFZ/XwA5N6llyNnelY/H1goFQi5xXZSRET5GSyROnbsGGxtWf1PZG56+Xpg6fBWqOms/fmt6Wyr6fpg/Yk7GLjsGGb9GYYsldpEkRIRlT96X9p78cUXtaaFEIiKikJISAg+/vhjgwVGRGWnl68HuvvULLRn88S0LADAz8du41rsYyx5pRWqVbEuapNERJWC3v1IjR49WmtaqVTC1dUVXbp0QY8ePQwanLljP1JUkfx7MRrTN5xDSqYKdV3ssXJkGzRxdzR1WEREBscOOcsJJlJU0VyOTsK4n0MQmZAGBxtLLHg5AN183E0dFhGRQZVJInX69GlcunQJANC8eXO0bNmyNJup0JhIUUUUn5KJSb+exomIeFgoFdj/VhDqVa9S/BOJiMyEUQctjo2NxZAhQ3Dw4EFUrVoVAPDo0SN07twZv//+O1xdXUsVNBGZB5cq1vh1XDvM3nERHs52TKKIqFLT+669N954A8nJybh48SLi4+MRHx+PsLAwJCUlYerUqcaIkYjKGSsLJT4f4IfJnRpq5t17lIboRPaATkSVi96X9pydnbF37160bdtWa/7JkyfRo0cPPHr0yJDxmTVe2qPKIiUjGy8tPYr4lEwsH9EaLetWM3VIRESlZtRBi9VqNaysrArMt7KyglrN/mWIKqOk9CwIAcQmZ+DlFcex5UykqUMiIioTeidSXbp0wbRp03D//n3NvHv37mH69Ono2rWrQYMjIvPg4WyHzZM7oLuPOzKz1Zjxx3l8tfMSVGreFExEFZveidTixYuRlJQELy8vNGzYEA0bNkT9+vWRlJSERYsWGSNGIjIDDjaWWD68NV7v3AgAsPy/mxj78ykkpWeZODIiIuMpVfcHQgjs3bsXly9fBgA0a9YM3bp1M3hw5o5tpKiy2nH+Pt7edB7pWWr09/fE90PZPQoRmQ92yFlOMJGiyiw0MhEfbQvFshGt4eFsZ+pwiIhKzKj9SAHAvn37sG/fPsTGxhZoYL5q1arSbJKIKhi/2s7YNqUjFAqFZt7ZOwkIqFNVax4RkTnTu43U7Nmz0aNHD+zbtw8PHz5EQkKC1h8RUY68CdOu0Ci88MNRvLc5FBnZKhNGRURkOHrXSC1btgxr1qzBiBEjjBEPEVVQsckZUCqADSF3cePBYywd3hqujjamDouI6InoXSOVmZmJDh06GCMWIqrARnbwwurRgXC0tUTI7QQ8vzgYYfcSTR0WEdET0TuRGjduHNavX2+MWIioggtq4optUzqiQY0quJ+YjkHLjuHvC1GmDouIqNRKdNfejBkzNI/VajV+/vlntGjRAi1atCjQy/m8efMMH6WZ4l17RLolpmXhjd/O4r+rDwAAf099Gs09nU0cFRGRZPC79s6ePas1HRAQAAAICwvTms87cYioJJztrLBqZBv8b5fsi45JFBGZK/YjZUSskSIqnhBC8yMs7nEGUjNVqONib+KoiKgyM+qgxUREhpSTRGVmqzHp1zN4fskRnLgZZ+KoiIhKpkSJ1MSJExEZWbLR3Dds2IB169Y9UVBEVPkkpWchNSsb8SmZGLbyBNafuGPqkIiIilWiNlKurq5o3rw5OnbsiH79+qFNmzbw9PSEra0tEhISEB4ejuDgYPz+++/w9PTEihUrjB03EVUwNRxssPG1Dnh703n8dSEKH2wNxZXoJHz0nA+sLFh5TkTlU4nbSMXExGDlypX4/fffER4errXM0dER3bp1w7hx49CrVy+jBGqO2EaKSH9CCCw5cB3f/XsVANChYXUseaUVqlWxNnFkRFRZGH3Q4oSEBNy5cwdpaWmoUaMGGjZsyDv2dGAiRVR6/16MxvQN55CSqUInb1esGR1o6pCIqJIw+qDF1apVQ7Vq1UoVHBFRSfRoXhObJ3fAW3+cx8fP+Zg6HCIindjwgIjKraY1nfDXG0+joauDZl5oZCLYawsRlRdMpIioXMvbbODI9YcY8MMRTPv9HNKzVCaMiohIYiJFRGbj3qM0KABsP38fg5YdQ3RiuqlDIqJKjokUEZmNwW3qYO3Ydqhmb4XQe4notzgYZ+8kmDosIqrESpVIZWdnY+/evVi+fDmSk5MBAPfv38fjx48NGhwRUX7tG1bHn1Oehre7Ix4kZ+DlFcex5UzJOgwmIjI0vROp27dvw8/PD88//zymTJmCBw/k6O1ff/01Zs6cafAAiYjyq1vdHpsnd0B3H3dkZqsx44/zOM5hZYjIBPROpKZNm4Y2bdogISEBdnZ2mvkvvPAC9u3bZ9DgiIgK42BjieXDW+P1zo3wUqvaaFffxdQhEVElpHc/UocPH8bRo0dhba3dy7CXlxfu3btnsMCIiIqjVCows6c31GqhubsvOT0LcY8z4VWjiomjI6LKQO8aKbVaDZWq4G3HkZGRcHR0NEhQRET6UCplEqVWC0zfcA79Fwfjv6sPTBwVEVUGeidSPXr0wIIFCzTTCoUCjx8/xqxZs9CnTx9DxkZEpJfkjGzEp2QiKT0bo1afxKrgCHbeSURGpfdYe5GRkejZsyeEELh27RratGmDa9euoUaNGvjvv//g5uZmrFjNDsfaIyp7GdkqfLg1DJtOyzv5Brepjc8G+MLG0sLEkRGRuTD6oMXZ2dn4/fffceHCBTx+/BitWrXCsGHDtBqfExMpIlMRQuCn4Ah8ufMS1AJoU68alg5vDVdHG1OHRkRmwOiJFJUMEyki0zp09QFeX38GyenZaFW3KjZP6qA15AwRkS76fH/rfdceIDvfDA4ORmxsLNRqtdayqVOnlmaTREQGF9TEFX9O6YjX15/FrH7NmUQRkcHpXSO1Zs0avPbaa7C2tkb16tW1TkwKhQI3b940eJDmijVSROWDWi00d/YBwKWoJHi7O2rNIyLKYdRLe3Xq1MHEiRPx/vvvQ6nkUH1FYSJFVP6ERiZi4LKj6OzthrmD/VHFplQV80RUgenz/a13JpSamoohQ4YwiSIis3Q7PgVCALsvRuOlpUdxNz7V1CERkRnTOxsaO3YsNm7caIxYiIiM7rkWnvhtwlOo4WCDy9HJeH7JEZzgOH1EVEp6X9pTqVR47rnnkJaWBj8/P1hZWWktnzdvnkEDNGe8tEdUfkUlpmH8LyEIu5cES6UCc573xSvt6po6LCIqB4x6195XX32Ff/75B97e3gBQoLE5EZE58HC2w8bXOuDtTefx14UofLA1FK6ONuju427q0IjIjOidSM2dOxerVq3CqFGjjBAOEVHZsbO2wKKhLdHMwwln7zxCl6YcmYGI9KN3ImVjY4OOHTsaIxYiojKnUCgwpXMjrS4SMrJViExIQ0NXBxNHR0Tlnd6NzadNm4ZFixYZIxYiIpPJSaKEEPhwaxj6LwrG3vAYE0dFROWd3jVSJ0+exP79+/HXX3+hefPmBRqbb9myxWDBERGVtfQsNSITUpGSqcL4tSF4u6c3JgU1ZBtQItJJ70SqatWqePHFF40RCxGRydlZW2Dt2HaYveMifj1+B9/svoLLUcn4ZmAL2FpZmDo8IipnOGixEbH7AyLztvb4bczefhHZagG/Ws5Y8WpreDjbQaUWOBkRj9jkdLg52iKwvgssONwMUYVh1CFiqOSYSBGZv2M34jB53WkkpGahsZsDpndrgs/+DkdUYrpmHQ9nW8zq54Nevh4mjJSIDMXgiVSrVq2wb98+VKtWDS1btiyyrcCZM2f0j7iCYiJFVDHcjU/FxF9Po3szdyzcdw35T5o5Z8Slw1sxmSKqAAzeIefzzz8PGxsbzWM2uiSiyqSOiz22Te6IZ789UCCJAgABmUzN3hGO7j41eZmPqBLhpT0jYo0UUcVx7EYchv54vNj1fhv/FNo3rF4GERGRsejz/a13P1INGjRAXFzBAT4fPXqEBg0a6Ls5IiKzEJucXvxKeqxHRBWD3onUrVu3oFKpCszPyMhAZGSkQYIiIipv3BxtDboeEVUMJe5Havv27ZrH//zzD5ydnTXTKpUK+/btQ/369Q0bHRFRORFY3wUezraITkzX2U4KAFwdbBBY36VM4yIi0ypxIjVgwAAAclyqkSNHai2zsrKCl5cX5s6da9DgiIjKCwulArP6+WDSr2egAHQmU8kZWbgSnQwfT7aJJKosSpxIqdVqAED9+vVx6tQp1KhRw2hBERGVR718PbB0eCvM3qHdj5S7kw0cbCxRw8EGDVyrmDBCIiprvGvPiHjXHlHFpKtn8yyVGpkqNZxsrYrfABGVawbvRyq/ffv2Yd++fYiNjdXUVOVYtWpVaTZJRGQ2LJSKAl0cWCgttMbi+2rXJTjZWmFyJw54TFSR6Z1IzZ49G3PmzEGbNm3g4eHBEwQRUT6nbsVj+aGbAIAHyRn45DkfKNlJJ1GFpPelPQ8PD3zzzTcYMWKEsWKqMHhpj6jyWhUcgTl/hQMA+vt74rtB/rC21LvHGSIyAaN2yJmZmYkOHTqUOjgiospgzNP1sXBIACyVCmw/fx9jfz6FlIxsU4dFRAamdyI1btw4rF+/3hixEBFVKM8H1MKqUW1hb22Bw9ce4pUfjyPucYapwyIiA9K7jVR6ejpWrFiBvXv3okWLFrCy0r5DZd68eQYLjojI3D3bxBXrxz+F0atP4nxkIkJuJ6Bn85qmDouIDETvROrChQsICAgAAISFhWktY8NzIqKCAupUxaZJHXD6FpMooopG70TqwIEDxoiDiKhCa+jqgIauDprp6MR03HuUitb1OKQMkTnjLSRERGUsMTULI1edxCs/nsCe8BhTh0NET0DvGqnOnTsXeQlv//79TxQQEVFFZ22pRB0XO1yJScbEX0/jqxf8MLhtHVOHRUSloHeNVEBAAPz9/TV/Pj4+yMzMxJkzZ+Dn52eMGImIKhQ7awssG94ag1rXhkot8M7mC/jh4HVwxC4i86N3jdT8+fN1zv/000/x+PHjJw6IiKgysLRQ4puBLVDD0QZLD97AN7uv4GFyJj7q24y9oBOZEYO1kRo+fHiFHGfvhRdeQLVq1TBw4EBTh0JEFYxCocC7vZri4+d8AACrjkRg7p4rJo6KiPRhsETq2LFjsLW1NdTmyo1p06bhl19+MXUYRFSBjX26Pha8HIB61e0x/Kl6pg6HiPSg96W9F198UWtaCIGoqCiEhITg448/Nlhg5UWnTp1w8OBBU4dBRBXcgJa10NuvJmwsLTTzMrPVHJ+PqJzT+xPq7Oys9efi4oJOnTph586dmDVrljFiLLX//vsP/fr1g6enJxQKBbZt21ZgnSVLlsDLywu2trZo164dTp48WfaBEhEBWknUXxfuo8/3hxGZkGrCiIioOHrVSKlUKowePRp+fn6oVq2asWIymJSUFPj7+2PMmDEFatIAYMOGDZgxYwaWLVuGdu3aYcGCBejZsyeuXLkCNzc3E0RMRCRror775wpuxaVi4NJj+HlMILxrOpo6LCLSQa8aKQsLC/To0QOPHj0yUjiG1bt3b3z++ed44YUXdC6fN28exo8fj9GjR8PHxwfLli2Dvb19qRvNZ2RkICkpSeuPiEhf1pZK/DbhKTR2c0B0UjoGLTuKkFvxpg6LiHTQ+9Ker68vbt68aYxYylRmZiZOnz6Nbt26aeYplUp069YNx44dK9U2v/rqK63LnnXqsIM9IiodD2c7bJzYHq3rVUNSejaGrTyBfZfYCzpReaN3IvX5559j5syZ+OuvvxAVFWW2NTAPHz6ESqWCu7u71nx3d3dER0drprt164ZBgwZh586dqF27dpFJ1vvvv4/ExETN3927d40WPxFVfFXtrfHr2Hbo0tQNGdlqTFh7GhtDeF4hKk/0vmuvT58+AID+/ftrDRUjhIBCoYBKpTJcdOXA3r17S7yujY0NbGxsjBgNEVU2dtYWWD6iNd7bHIrNZyJxLZYdHxOVJ3onUgcOHDBGHGWuRo0asLCwQEyMdlV5TEwMatasaaKoiIgKsrJQ4rtBLdDJ2xV9/TxMHQ4R5aF3IhUUFGSMOMqctbU1WrdujX379mHAgAEAALVajX379uH11183bXBERPkoFAr08/fUTKdnqbD6yC2Me6Y+rCzY1xSRqeidSJmTx48f4/r165rpiIgInDt3Di4uLqhbty5mzJiBkSNHok2bNggMDMSCBQuQkpKC0aNHmzBqIqLivbPpArafv4/jN+OwdHgr2FtX6NM5UblVoT95ISEh6Ny5s2Z6xowZAICRI0dizZo1ePnll/HgwQN88skniI6ORkBAAHbv3l2gAToRUXnzQqta+Dc8GoeuPsArP57A6lFtUa2KtanDIqp0FEIIYeogKqqkpCQ4OzsjMTERTk5Opg6HiCqY07cTMGbNKSSmZaGhaxX8MrYdalW1M3VYRGZPn+9vXlgnIjJTretVw6aJ7eHhbIsbD1IwcOlRXItJNnVYRJUKEykiIjPW2N0Rmyd1QCM3B0QlpmPcLyHIVqlNHRZRpaF3IhUXF4cpU6bAx8cHNWrUgIuLi9YfERGVLc+qdtj4Wnt0aFgd3w3yhyXv4iMqM3o3Nh8xYgSuX7+OsWPHwt3dXatTTiIiMo1qVayxblw7rXNyfEomXNgAncio9E6kDh8+jODgYPj7+xsjHiIiKqW8SVT4/SQMWXEMr3dphAnPNjRhVEQVm971v02bNkVaWpoxYiEiIgPZdykGSenZ+HLnZXy18xJ4gzaRceidSP3www/48MMPcejQIcTFxZntoMVERBXZG10b4/3eTQEAy/+7iZkbLyCLjdCJDE7vS3tVq1ZFUlISunTpojW/og5aTERkrl4LaojqDjZ4d/MFbD4TiYTUTCx5pRXsrC1MHRpRhaF3IjVs2DBYWVlh/fr1bGxORFTODWxdG9XsrTBl/RnsvxyLYSuPY/XoQDjbWZk6NKIKQe9EKiwsDGfPnoW3t7cx4iEiIgPr2swd68a1w5g1IbC3toStFbtHIDIUvROpNm3a4O7du0ykiIjMSOt6Ltg8qQNqOtvCxpKX9ogMRe9E6o033sC0adPw9ttvw8/PD1ZW2tXDLVq0MFhwRERkOI3cHDSPhRCYv+cqOjV1Q6u61UwYFZF503vQYqWyYJWwQqFgY3MdOGgxEZVXf4TcxTubLsDOygI/DG+Fzt5upg6JqNzQ5/tb7xqpiIiIUgdGRETlw3MtPPD3hSgcuvoA438OwbeDWuCFlrVNHRaR2dG7RopKjjVSRFSeZanUeHvjeWw7dx8A8FHfZhj3TAMTR0VkekatkQKAa9eu4cCBA4iNjYVard3B2yeffFKaTRIRURmzslBi3uAAVHewwU/BEfj870t48DgD7/Vqyq5tiEpI7xqpH3/8EZMmTUKNGjVQs2ZNrQ+bQqHAmTNnDB6kuWKNFBGZAyEElv93E//bdRkKBbB1ckcE1Klq6rCITMaoNVKff/45vvjiC7z77rulDpCIiMoPhUKBiUEN4VLFGlkqNZMoIj3onUglJCRg0KBBxoiFiIhMaHCbOlrTUYlpsLOyQFV7axNFRFT+6d297aBBg/Dvv/8aIxYiIionElIyMXzlCQxefgxRiWmmDoeo3CpRjdT333+vedyoUSN8/PHHOH78uM4OOadOnWrYCImIqMzFpWTicUY2YpIy8NIPR/HL2HZaHXoSkVSixub169cv2cYUCty8efOJg6oo2NiciMxZZEIqXv3pJG4+TEE1eyusGtUWLdkLOlUC+nx/sx8pI2IiRUTmLu5xBsasOYXzkYmws7LA0uGt0Im9oFMFp8/3t95tpObMmYPU1NQC89PS0jBnzhx9N0dEROVYdQcbrB//FJ5pXANpWSqM+zkEe8JjTB0WUbmhd42UhYUFoqKi4Oam/YskLi4Obm5uHGsvD9ZIEVFFkZmtxsyN53H2bgI2T+wANydbU4dEZDRG7UcqZ3Di/M6fPw8XFxd9N1chLVmyBEuWLGFSSUQVhrWlEgteDsDDlAy4OTKJIspR4hqpatWqQaFQaLKzvMmUSqXC48ePMXHiRCxZssRowZob1kgRUUW27ew9HLsRhy9e8IWlhd4tRYjKLaPUSC1YsABCCIwZMwazZ8+Gs7OzZpm1tTW8vLzQvn370kdNRERmIzYpHe9uvoCMbDXiUjKx+JWWsLWyMHVYRGVO7zZShw4dQocOHQr0H0UFsUaKiCqyfy9G443fziIjW422XtWw8tW2cLbndwOZP4N3f5CUlKTZUFJSUpHrMmHIxUSKiCq6kxHxGPvzKSSnZ8Pb3RG/jA2EOxuik5kzeCKV9049pVKps7F5TiN0NrDOxUSKiCqDS1FJGLnqJGKTM1Crqh3Wjg1EA1f2gk7my+BtpPbv36+5I+/AgQNPHiEREVUYzTycsHlSB7y66iQiHqZgZ2gUXu/S2NRhEZWJEiVSQUFBAIDs7GwcOnQIY8aMQe3atY0aGBERmY86LvbYOLE9/gi5i0lBDTXzVWqBkxHxiE1Oh5ujLQLru8BCWfCqBpG50ruxuaOjI0JDQ+Hl5WWkkCoOXtojosps+7l7mLU9HAmpmZp5Hs62mNXPB718PUwYGVHRjDpETJcuXXDo0KFSB0dERBXf3xfuY+rv57SSKACITkzHpF/PYHdYlIkiIzIsvXs27927N9577z2EhoaidevWqFKlitby/v37Gyw4IiIyPyq1wGd/XdK5TABQAJi9IxzdfWryMh+ZPb0v7SmVhVdi8a49bby0R0SV0bEbcRj64/Fi1/tt/FNo37B6GUREpB+jjrWnVqtLHRgREVV8scnpBl2PqDzj4EhERGRQJR3UOGe9pPQsY4ZDZFSlSqQOHTqEfv36oVGjRmjUqBH69++Pw4cPGzo2IiIyQ4H1XeDhbIuiWj95OMuuEDKz1eg+7xBGrjqJ4GsPoWdrEyKT0zuR+vXXX9GtWzfY29tj6tSpmDp1Kuzs7NC1a1esX7/eGDESEZEZsVAqMKufDwAUSKYU//83q58PLJQKhNyOx4PkDBy6+gDDfzqB3gsPY/PpSGRmsxkJmQe9G5s3a9YMEyZMwPTp07Xmz5s3Dz/++CMuXdJ9p0ZlxMbmRFSZ7Q6Lwuwd4YhKzG0LpasfqTtxqVh1JAJ/hNxFaqa8YcndyQYjO3hhWLt6cLbjQMhUtgw+1l5eNjY2uHjxIho1aqQ1//r16/D19UV6OhsP5mAiRUSVnT49myemZmHdydtYc+QWYpMzAAB/T30azT2dyzJkIuPetVenTh3s27evQCK1d+9e1KlTR9/NERFRBWahVJS4iwNneytM7tQI455ugO3n7+Pc3QStJGr9iTto5uGIlnWrGStcIr3pnUi99dZbmDp1Ks6dO4cOHToAAI4cOYI1a9Zg4cKFBg+QiIgqF2tLJQa2ro2BrXPHdI1NTsen2y8iU6VGm3rVMO6ZBuju484OPcnk9E6kJk2ahJo1a2Lu3Ln4448/AMh2Uxs2bMDzzz9v8ACJiIhUaoH+AZ7489w9hNxOQMjt0/Cqbo8xT9fHwNa1YW+t99cZkUHo3UaKSo5tpIiIDCsmKR0/H72FdSfuIDFN9j9V1d4KP7zSCh0a1TBxdFRRGHXQYiIiIlNxd7LFO72a4tj7XTC7f3PUdbFHWqYK3jUdNeukZ3GoMio7eteFVqtWDQpFwWvSCoUCtra2aNSoEUaNGoXRo0cbJEAiIqL87K0tMbKDF4Y/VQ+XopJQ3cFGs2zkqpOwtbLA+GcaoGOj6jq/s4gMRe9E6pNPPsEXX3yB3r17IzAwEABw8uRJ7N69G1OmTEFERAQmTZqE7OxsjB8/3uABExER5bBQKuBbK/fOvjtxqTh1Kx5qARy6+gDNPJww7un66OfvCWtLXoQhw9O7jdRLL72E7t27Y+LEiVrzly9fjn///RebN2/GokWLsGLFCoSGhho0WHPDNlJERGWvyA4+A+vB2Z4dfFLRjNohp4ODA86dO6ezQ86AgAA8fvwYN27cQIsWLZCSkqJ/9BUIEykiItPR1cHnwiEBeD6glokjo/LOqI3NXVxcsGPHjgLzd+zYARcXFwBASkoKHB0dC6xDRERUVnI6+Ax+twu+G+SPTt6u6OOXOzTN/ssxOHsnwYQRUkWgdxupjz/+GJMmTcKBAwc0baROnTqFnTt3YtmyZQCAPXv2ICgoyLCREhERlYKuDj6zVGp8vO0i7j1KYwef9ERK1Y/UkSNHsHjxYly5cgUA4O3tjTfeeEPT0zlJvLRHRFQ+JaZm4bO/w/HnuXvIUsmvQXbwSTmM2kaKSo6JFBFR+VZYB5+fPe+Lfv6eJo6OTMXggxYnJSWV+MWZMBARkbnI6eDz9S6NsDEkEj8FR+BOfCrquNhr1lGpBS/5UaFKVCOlVCqL7dBMCAGFQgGVij3K5mCNFBGReVGpBY7fjEPHPMPNfLwtDHfiU9nBZyVi8BqpAwcOGCQwIiKi8sxCqdBKolIzs7HlTCRSMlXs4JN0MmgbqbCwMPj6+hpqc2aPNVJEROYvp4PPDafuIi2LHXxWBmU6aHFycjJWrFiBwMBA+Pv7P+nmiIiIypW61e3xaf/mOPZ+F7zd0xtujjaIScrAN7uv4Kfgm6YOj0ys1InUf//9h5EjR8LDwwPfffcdunTpguPHjxsyNiIionKjqr01pnRuhMPvdsZ3g/zRorYzhrevp1kedi+RHXxWQnp1lBEdHY01a9bgp59+QlJSEgYPHoyMjAxs27YNPj4+xoqRiIio3LCxtCjQwScAfL37Mg5fe8gOPiuZEtdI9evXD97e3rhw4QIWLFiA+/fvY9GiRcaMzWwtWbIEPj4+aNu2ralDISKiMpCtUqOmky2sLBQIuZ2Aib+eRte5B/HLsVtIzcw2dXhkRCVubG5paYmpU6di0qRJaNy4sWa+lZUVzp8/zxopHdjYnIiocimsg8+ZPbwx/Kl6xTybygujNDYPDg5GcnIyWrdujXbt2mHx4sV4+PDhEwdLRERUUeR08Hns/S6Y3b856rrY41FqFmzydJXAAUUqFr27P0hJScGGDRuwatUqnDx5EiqVCvPmzcOYMWPg6OhorDjNEmukiIgqN5VaYO+lGHTydoWNpQUA4Jdjt7DvUqzODj5VaoGTEfGITU6Hm6MtAuu7sJ2VCZTZWHtXrlzBTz/9hLVr1+LRo0fo3r07tm/fXtrNVThMpIiIKC8hBLrMPYSIhykAoNXB5/7LMZi9IxxRiema9T2cbTGrnw96+XqYKuRKqcwHLVapVNixYwdWrVrFRCoPJlJERJTf7bgUrAqOwB8hkZoOPp3tLJGYVrBRek5d1NLhrZhMlaEyT6RINyZSRERUmEepmVh34g7WHInAg8eZha6nAFDT2RbB73bhZb4yUqY9mxMREZH+cjr4nDu46FFBBICoxHScjIgvm8BIL0ykiIiITCghNatE68Umpxe/EpU5JlJEREQm5OZoa9D1qGwxkSIiIjKhwPou8HC2RVGtn9ydbBBY36XMYqKSYyJFRERkQhZKBWb1k6ODFJZMCQE8SM4ou6CoxJhIERERmVgvXw8sHd4KNZ21L9+5OdrAxd4asckZGLLiGKIS00wUIRWG3R8YEbs/ICIifejq2fz+ozQM/fE4IhPSUNfFHjveeBrOdlamDrVC0+f727KMYiIiIqJiWCgVaN+wuta8Oi722PBaewxdcRz9/T3hZMuv7vKE7wYREVE5V6uqHXa88TScbC21xuYj02MbKSIiIjPgbGelSaLSMlWY8cc53IlLNXFUxESKiIjIzMz5KxxbztzDkBXHcDsuxdThVGpMpIiIiMzM9G6N0dC1Cu4npuPl5cdx6yGTKVNhIkVERGRm3Jxs8duEp9DYzQHRSel4ecUx3Hzw2NRhVUpMpIiIiMyQm6NMppq4OyAmKQNDVhzH9VgmU2WNiRQREZGZquFgg9/GP4WmNR0Rm5yBib+ehkrN7iHLEhMpIiIiM1bdwQbrxz+FdvVdMH9wACyU7B6hLLEfKSIiIjPnUsUav094SquPqWyVGpYWrC8xNpYwERFRBZA3iTpzJwFd5x3CpagkE0ZUOTCRIiIiqkCEEJj77xXcjkvFKz8eR/h9JlPGxESKiIioAlEoFPhhWGv413ZGQmoWXll5HGH3Ek0dVoXFRIqIiKiCcbazwtpx7RBQpyoepWZh2MoTCI1kMmUMTKSIiIgqICdbK6wdG4hWdasiMS0Lw1Yex/m7j0wdVoXDRIqIiKiCcrS1wi9j26FNvWpISs/GyuAIU4dU4bD7AyIiogrMwcYSa8YEYsmB65jWtbGpw6lwWCNFRERUwTnYWOLdXk1ha2UBQN7Zdzc+1cRRVQxMpIiIiCoRIQS+2nUZvRb8h1O34k0djtljIkVERFSJZKkELt5PREqmCiNXncSJm3GmDsmsMZEiIiKqRKwtlfhpZFs807gGUjNVGLX6FI7dYDJVWkykiIiIKhlbKwv8+GobPNvEFWlZKoxecxJHrz80dVhmiYkUERFRJWRrZYEVI1qjk7cr0rPUGL3mFIKvMZnSFxMpIiKiSsrWygLLR7RGl6ZuyFSpEZucbuqQzA77kSIiIqrEbCwtsHR4K5y4GY9nm7iaOhyzwxopIiKiSs7G0kIriYpNTudlvhJiIkVEREQaCSmZeOXHExi95iT2hseYOpxyj4kUERERaTjYWsLb3RFZKoFJ607j34vRpg6pXGMiZQRLliyBj48P2rZta+pQiIiI9GJlocTCIQF4roUHslQCk9edwe4wJlOFUQghhKmDqKiSkpLg7OyMxMREODk5mTocIiKiEstWqfHWxvP489x9WCoVWDS0JXr7eZg6rDKhz/c3a6SIiIioAEsLJeYNDsALLWshWy3w+m9nsYdtpgpg9wdERESkk4VSge8G+UOpUODUrXg09+TVlfyYSBEREVGhLJQKfDOwBRJSM1HDwcbU4ZQ7vLRHRERERbJQKrSSqL8u3MfWs5EmjKj8YI0UERERldiFyEeY9vs5qIWASg0MbF3b1CGZFGukiIiIqMR8PZ0xpG0dCAG8vek8/gi5a+qQTIqJFBEREZWYUqnA5wN8MeKpehACeHfzBWw4dcfUYZkMEykiIiLSi0KhwJznm2NUB6//T6ZCsf5E5UymmEgRERGR3hQKBWb188GYjvUBAB9sDcWJm3EmjqrssbE5ERERlYpCocDHzzWDUgGkZ6sQWN/F1CGVOSZSREREVGoKhQIf9m2meQwAarWAUqkwZVhlhpf2iIiI6IkoFApNEpWlUmPSutNYefimiaMqG6yRIiIiIoPZGRqFfy7G4J+LMRACGP9sA1OHZFSskSIiIiKD6e/vialdGwMAvth5CcsO3TBxRMbFRIqIiIgMRqFQYEb3Jnizm0ym/rfrMpYcuG7iqIyHiRQREREZ3JvdmmBG9yYAgG//uYJF+66ZOCLjYCJFRERERjG1a2O83dMbAPDDwRuITEg1cUSGx8bmREREZDRTOjeCtYUSvrWcUbuavanDMTgmUkRERGRU+e/ci01Oh6uDjabLBHPGS3tERERUZq5EJ6PXgsP49p8rEEKYOpwnxkSKiIiIykzI7XjEp2Tih4M38PVu80+mmEgRERFRmRnWrh4+7ecDAFh26Aa+2nXZrJMpJlJERERUpkZ1rI85zzcHAKz47yY+//uS2SZTTKSIiIiozL3a3gufD/AFAPwUHIE5f4WbZTLFRIqIiIhMYvhT9fDlC34AgAuRicjIVps4Iv2x+wMiIiIymVfa1UV1B2t0aFgdtlYWpg5Hb6yRIiIiIpPq2bwmHG2tNNMHrsRCrTaPy3xMpIiIiKjcWHboBkavPoUPtoaaRTLFRIqIiIjKDXcnGygVwO+n7uK9LRfKfTLFRIqIiIjKjRda1sb8lwOgVAB/hETinc0XoCrHyRQTKSIiIipXng+ohYVDWsJCqcCm05F4e+P5cptM8a49IiIiKnf6+XtCqVBg6u9nseXsPQgA8wb7l7uBjplIERERUbnUt4UHlArgjd/OwreWc7lLogAmUkRERFSO9fbzwD5PJ9SrXkVrvkotcDIiHrHJ6XBztEVgfRdYKMs+0WIiRUREROVa3iQqMS0L722+gLN3HiE6KV0z38PZFrP6+aCXr0eZxsbG5kRERGQWhBB46Yej2BUWrZVEAUB0Yjom/XoGu8OiyjQmJlJERERkFtQCiEvJ0Lks556+2TvCy/QOPyZSREREZBZORsQjITWr0OUCQFRiOk5GxJdZTEykiIiIyCzEJqcXv5Ie6xkCEykiIiIyC26OtgZdzxCYSBEREZFZCKzvAg9nWxTWyYEC8u69wPouZRYTEykiIiIyCxZKBWb18wGAAslUzvSsfj5l2p8UEyk9/PXXX/D29kbjxo2xcuVKU4dDRERU6fTy9cDS4a1Q01n78l1NZ1ssHd6qzPuRUgghyucogOVMdnY2fHx8cODAATg7O6N169Y4evQoqlevXuhzkpKS4OzsjMTERDg5OZVhtERERBWbMXs21+f7mz2bl9DJkyfRvHlz1KpVCwDQu3dv/Pvvvxg6dKiJIyMiIqp8LJQKtG9YeGVGWSkXl/bu3buH4cOHo3r16rCzs4Ofnx9CQkIMtv3//vsP/fr1g6enJxQKBbZt26ZzvSVLlsDLywu2trZo164dTp48qVl2//59TRIFALVq1cK9e/cMFiMRERGZH5MnUgkJCejYsSOsrKywa9cuhIeHY+7cuahWrZrO9Y8cOYKsrIKdcYWHhyMmJkbnc1JSUuDv748lS5YUGseGDRswY8YMzJo1C2fOnIG/vz969uyJ2NjY0u0YERERVXgmT6S+/vpr1KlTB6tXr0ZgYCDq16+PHj16oGHDhgXWVavVmDJlCl555RWoVCrN/CtXrqBLly74+eefdb5G79698fnnn+OFF14oNI558+Zh/PjxGD16NHx8fLBs2TLY29tj1apVAABPT0+tGqh79+7B09NT57aWLFkCHx8ftG3btkRlQERERObJ5InU9u3b0aZNGwwaNAhubm5o2bIlfvzxR53rKpVK7Ny5E2fPnsWrr74KtVqNGzduoEuXLhgwYADeeeedUsWQmZmJ06dPo1u3blqv1a1bNxw7dgwAEBgYiLCwMNy7dw+PHz/Grl270LNnT53bmzJlCsLDw3Hq1KlSxUNERETmweSJ1M2bN7F06VI0btwY//zzDyZNmoSpU6cWWrvk6emJ/fv3Izg4GK+88gq6dOmCbt26YenSpaWO4eHDh1CpVHB3d9ea7+7ujujoaACApaUl5s6di86dOyMgIABvvfVWkXfsERERUcVn8rv21Go12rRpgy+//BIA0LJlS4SFhWHZsmUYOXKkzufUrVsXa9euRVBQEBo0aICffvoJCoXxO9/q378/+vfvb/TXISIiIvNg8hopDw8P+Pj4aM1r1qwZ7ty5U+hzYmJiMGHCBPTr1w+pqamYPn36E8VQo0YNWFhYFGisHhMTg5o1az7RtomIiKjiMnki1bFjR1y5ckVr3tWrV1GvXj2d6z98+BBdu3ZFs2bNsGXLFuzbtw8bNmzAzJkzSx2DtbU1WrdujX379mnmqdVq7Nu3D+3bty/1domIiKhiM/mlvenTp6NDhw748ssvMXjwYJw8eRIrVqzAihUrCqyrVqvRu3dv1KtXDxs2bIClpSV8fHywZ88edOnSBbVq1dJZO/X48WNcv35dMx0REYFz587BxcUFdevWBQDMmDEDI0eORJs2bRAYGIgFCxYgJSUFo0ePNt7OExERkVkrF0PE/PXXX3j//fdx7do11K9fHzNmzMD48eN1rrtnzx4888wzsLXVHmPn7NmzcHV1Re3atQs85+DBg+jcuXOB+SNHjsSaNWs004sXL8a3336L6OhoBAQE4Pvvv0e7du1KvV+JiYmoWrUq7t69yyFiiIiIzERSUhLq1KmDR48ewdnZuch1y0UiVVFFRkaiTp06pg6DiIiISuHu3bs6K2jyYiJlRGq1Gvfv34ejo2OZ3FVoajkZPGvgisey0g/Lq+RYViXHsiq5ylZWQggkJyfD09MTSmXRzclN3kaqIlMqlcVmshWRk5NTpfigGQLLSj8sr5JjWZUcy6rkKlNZFXdJL4fJ79ojIiIiMldMpIiIiIhKiYkUGYyNjQ1mzZoFGxsbU4dS7rGs9MPyKjmWVcmxrEqOZVU4NjYnIiIiKiXWSBERERGVEhMpIiIiolJiIkVERERUSkykiIiIiEqJiRRp+eqrr9C2bVs4OjrCzc0NAwYMwJUrV7TWSU9Px5QpU1C9enU4ODjgpZdeQkxMjGZ5XFwcevXqBU9PT9jY2KBOnTp4/fXXkZSUpLWddevWwd/fH/b29vDw8MCYMWMQFxdXJvtpCIYoq7zi4uJQu3ZtKBQKPHr0SGvZwYMH0apVK9jY2KBRo0ZaY0Sag7Iqqy1btqB79+5wdXWFk5MT2rdvj3/++ceYu2ZwZXlc5Thy5AgsLS0REBBg4L0xvrIsr4yMDHz44YeoV68ebGxs4OXlhVWrVhlr1wyuLMvK3M/vehFEefTs2VOsXr1ahIWFiXPnzok+ffqIunXrisePH2vWmThxoqhTp47Yt2+fCAkJEU899ZTo0KGDZnl8fLz44YcfxKlTp8StW7fE3r17hbe3txg6dKhmneDgYKFUKsXChQvFzZs3xeHDh0Xz5s3FCy+8UKb7+yQMUVZ5Pf/886J3794CgEhISNDMv3nzprC3txczZswQ4eHhYtGiRcLCwkLs3r3b2LtoMGVVVtOmTRNff/21OHnypLh69ap4//33hZWVlThz5oyxd9FgyqqsciQkJIgGDRqIHj16CH9/fyPtlfGUZXn1799ftGvXTuzZs0dERESIo0ePiuDgYGPunkGVVVlVhPO7PphIUZFiY2MFAHHo0CEhhBCPHj0SVlZWYuPGjZp1Ll26JACIY8eOFbqdhQsXitq1a2umv/32W9GgQQOtdb7//ntRq1YtA+9B2XmSsvrhhx9EUFCQ2LdvX4GT0jvvvCOaN2+utf7LL78sevbsabydMTJjlZUuPj4+Yvbs2Qbfh7Ji7LJ6+eWXxUcffSRmzZpllolUfsYqr127dglnZ2cRFxdXJvtRFoxVVhXx/F4UXtqjIiUmJgIAXFxcAACnT59GVlYWunXrplmnadOmqFu3Lo4dO6ZzG/fv38eWLVsQFBSkmde+fXvcvXsXO3fuhBACMTEx2LRpE/r06WPEvTGu0pZVeHg45syZg19++UXn4JjHjh3T2gYA9OzZs9DyNgfGKqv81Go1kpOTNa9jjoxZVqtXr8bNmzcxa9YsI+5B2TJWeW3fvh1t2rTBN998g1q1aqFJkyaYOXMm0tLSjLxHxmOssqqI5/eiMJGiQqnVarz55pvo2LEjfH19AQDR0dGwtrZG1apVtdZ1d3dHdHS01ryhQ4fC3t4etWrVgpOTE1auXKlZ1rFjR6xbtw4vv/wyrK2tUbNmTTg7O2PJkiVG3y9jKG1ZZWRkYOjQofj2229Rt25dnduOjo6Gu7t7gW0kJSWZ5UncmGWV33fffYfHjx9j8ODBBt2HsmLMsrp27Rree+89/Prrr7C0rBjj1xuzvG7evIng4GCEhYVh69atWLBgATZt2oTJkycbdZ+MxZhlVdHO78VhIkWFmjJlCsLCwvD777+X6vnz58/HmTNn8Oeff+LGjRuYMWOGZll4eDimTZuGTz75BKdPn8bu3btx69YtTJw40VDhl6nSltX777+PZs2aYfjw4UaKrPwpq7Jav349Zs+ejT/++ANubm6lCdXkjFVWKpUKr7zyCmbPno0mTZoYItRywZjHllqthkKhwLp16xAYGIg+ffpg3rx5+Pnnn83yB40xy6qind+LZepri1Q+TZkyRdSuXVvcvHlTa35hbS3q1q0r5s2bV+j2Dh8+LACI+/fvCyGEGD58uBg4cGCR65iLJykrf39/oVQqhYWFhbCwsBBKpVIAEBYWFuKTTz4RQgjxzDPPiGnTpmltY9WqVcLJyclo+2Qsxi6rHL/99puws7MTf/31l1H3x5iMWVYJCQma6Zw/hUKhmbdv376y2k2DMfax9eqrr4qGDRtqbSM8PFwAEFevXjXejhmBscuqIp3fS4KJFGlRq9ViypQpwtPTU+fJIacx4qZNmzTzLl++XGxj80OHDgkAIiIiQgghxIsvvigGDx6stc7Ro0cFAHHv3j3D7IyRGaKsrl+/LkJDQzV/q1atEgDE0aNHRUxMjBBCNjb39fXV2vbQoUPNqrF5WZWVEEKsX79e2Nraim3bthl/x4ygLMpKpVJpLQ8NDRWTJk0S3t7eIjQ0VOsurvKurI6t5cuXCzs7O5GcnKzZzrZt24RSqRSpqalG3kvDKKuyqgjnd30wkSItkyZNEs7OzuLgwYMiKipK85f3RDFx4kRRt25dsX//fhESEiLat28v2rdvr1n+999/i1WrVonQ0FAREREh/vrrL9GsWTPRsWNHzTqrV68WlpaW4ocffhA3btwQwcHBok2bNiIwMLBM9/dJGKKs8jtw4ECh3R+8/fbb4tKlS2LJkiVm1/1BWZXVunXrhKWlpViyZInW6zx69MiYu2dQZVVW+ZnrXXtlVV7Jycmidu3aYuDAgeLixYvi0KFDonHjxmLcuHHG3D2DKquyqgjnd30wkSItAHT+rV69WrNOWlqamDx5sqhWrZqwt7cXL7zwgoiKitIs379/v2jfvr1wdnYWtra2onHjxuLdd98tcBL//vvvhY+Pj7CzsxMeHh5i2LBhIjIysoz29MkZoqzyK+wL78CBAyIgIEBYW1uLBg0aaL2GOSirsgoKCtL5OiNHjjTezhlYWR5XeZlrIlWW5XXp0iXRrVs3YWdnJ2rXri1mzJhhNrVRQpRtWZn7+V0fCiGE0LddFRERERHxrj0iIiKiUmMiRURERFRKTKSIiIiISomJFBEREVEpMZEiIiIiKiUmUkRERESlxESKiIiIqJSYSBGR2Rs1ahQGDBhg6jCIqBKyNHUARERFUSgURS6fNWsWFi5cCFP3LTxq1Cg8evQI27ZtM2kcRFS2mEgRUbkWFRWlebxhwwZ88sknuHLlimaeg4MDHBwcTBEaEREv7RFR+VazZk3Nn7OzMxQKhdY8BweHApf2OnXqhDfeeANvvvkmqlWrBnd3d/z4449ISUnB6NGj4ejoiEaNGmHXrl1arxUWFobevXvDwcEB7u7uGDFiBB4+fKhZvmnTJvj5+cHOzg7Vq1dHt27dkJKSgk8//RQ///wz/vzzTygUCigUChw8eBAA8O6776JJkyawt7dHgwYN8PHHHyMrK0uzzU8//RQBAQFYtWoV6tatCwcHB0yePBkqlQrffPMNatasCTc3N3zxxRdasSoUCixduhS9e/eGnZ0dGjRogE2bNhn+DSCiIjGRIqIK6eeff0aNGjVw8uRJvPHGG5g0aRIGDRqEDh064MyZM+jRowdGjBiB1NRUAMCjR4/QpUsXtGzZEiEhIdi9ezdiYmIwePBgALJmbOjQoRgzZgwuXbqEgwcP4sUXX4QQAjNnzsTgwYPRq1cvREVFISoqCh06dAAAODo6Ys2aNQgPD8fChQvx448/Yv78+Vqx3rhxA7t27cLu3bvx22+/4aeffkLfvn0RGRmJQ4cO4euvv8ZHH32EEydOaD3v448/xksvvYTz589j2LBhGDJkCC5dulQGpUtEGqYdM5mIqORWr14tnJ2dC8wfOXKkeP755zXTQUFB4umnn9ZMZ2dniypVqogRI0Zo5kVFRQkA4tixY0IIIT777DPRo0cPre3evXtXABBXrlwRp0+fFgDErVu3dMaWP4bCfPvtt6J169aa6VmzZgl7e3uRlJSkmdezZ0/h5eUlVCqVZp63t7f46quvNNMAxMSJE7W23a5dOzFp0qRiYyAiw2EbKSKqkFq0aKF5bGFhgerVq8PPz08zz93dHQAQGxsLADh//jwOHDigs73VjRs30KNHD3Tt2hV+fn7o2bMnevTogYEDB6JatWpFxrFhwwZ8//33uHHjBh4/fozs7Gw4OTlprePl5QVHR0et2CwsLKBUKrXm5cSao3379gWmz507V2Q8RGRYvLRHRBWSlZWV1rRCodCal3M3oFqtBgA8fvwY/fr1w7lz57T+rl27hmeffRYWFhbYs2cPdu3aBR8fHyxatAje3t6IiIgoNIZjx45h2LBh6NOnD/766y+cPXsWH374ITIzM/WKNWdeTqxEVH4wkSIiAtCqVStcvHgRXl5eaNSokdZflSpVAMhkpmPHjpg9ezbOnj0La2trbN26FQBgbW0NlUqltc2jR4+iXr16+PDDD9GmTRs0btwYt2/fNljMx48fLzDdrFkzg22fiIrHRIqICMCUKVMQHx+PoUOH4tSpU7hx4wb++ecfjB49GiqVCidOnMCXX36JkJAQ3LlzB1u2bMGDBw80iYuXlxcuXLiAK1eu4OHDh8jKykLjxo1x584d/P7777hx4wa+//57TeJlCBs3bsSqVatw9epVzJo1CydPnsTrr79usO0TUfGYSBERAfD09MSRI0egUqnQo0cP+Pn54c0330TVqlWhVCrh5OSE//77D3369EGTJk3w0UcfYe7cuejduzcAYPz48fD29kabNm3g6uqKI0eOoH///pg+fTpef/11BAQE4OjRo/j4448NFvPs2bPx+++/o0WLFvjll1/w22+/wcfHx2DbJ6LiKYQwcXfARESkN4VCga1bt3JoHCITY40UERERUSkxkSIiIiIqJfYjRURkhtgqg6h8YI0UERERUSkxkSIiIiIqJSZSRERERKXERIqIiIiolJhIEREREZUSEykiIiKiUmIiRURERFRKTKSIiIiISomJFBEREVEp/R8ixggD8A+GtwAAAABJRU5ErkJggg==", + "image/png": "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wNtvv42zZ8/W+DyFQoH58+ejffv2MDc3h5OTE1q0aIGzZ8+q7PfGjRto165dpTZNZYlBRTdv3sRLL70ER0dHWFtbo0WLFggLC6t1WR4+5oB03Cse8//85z9ISEhAq1atEBoaio8//rhScquN7t27Y9euXdi5cye+/vpr2Nvb4969e5VeWwDo0KEDVq9ejczMTJw9exaff/45TExMMGnSJOzevVu5XnZ2NrZv346wsDBcuXJF+derVy+cOHECly5dAiAlQWlpaSp/6hw4cACvvPIKBg0aVKldU1kS+3AbPEDqwqBikjt9+nT07NkTTz/9dLXHJCcnB71790aPHj3wxRdf4KmnnsKbb76J3377DQcPHsTKlSurfT6RPrGNFFE9Z2xsrHa+eKjnEnUNbhUKBQICAjBv3jy122jVqhUAqeFy//790bFjR8ybNw+tWrWCmZkZtm/fjvnz50OhUNQYZ58+fXD16lX8/vvv+Pvvv7F8+XLMnz8fy5Ytw4QJE6p83ueff44PP/wQL7/8Mv7973/D0dERRkZGmDFjRq32+zC5XI4BAwbg7t27eOedd9CxY0c0a9YMycnJeOmll2q1zdoc85EjR6J3797YvHkz/v77b3z11Vf48ssvsWnTJkRGRmocdxknJydEREQAAAYNGoSOHTviySefxMKFCxEdHV1lvAEBAQgICECPHj3Qr18/rFmzRrmdDRs2oKioCHPnzsXcuXMrPX/NmjWYM2cO1q9fX6lW8+Hz7MyZMxg6dCg6deqEjRs3qjQoB8obgKempirPrzKpqakIDQ0FAOzZswc7d+7Epk2bVLqHKC0txYMHD3D9+nU4OjrC1tYWv/32G9LT01VqIwEgLCwMtra2OHToECZPnqz22BDpGxMpokasXbt2OHPmDPr3719tD95bt25FUVER/vjjD5XaGHUNuavbjqOjI8aPH4/x48cjPz8fffr0wccff1xtIrVx40b069cPP/74o8r87OxslUbMrVu3RmJiIoQQKjE8fAdjfHw8Ll26hJ9++gkvvviicn5Ndw9qw83NDVOmTMGUKVOQkZGBLl264LPPPlMmUrroNX3IkCEICwvD559/jldffRXNmjWrdv2yRt6pqanKeWvWrEGnTp3UdtT53XffYe3atZgzZw4GDRpU7XG6evUqnnjiCTg7O2P79u1qG88HBwcDkPqFKkua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", "text/plain": [ "
" ] @@ -198,7 +222,7 @@ ], "metadata": { "kernelspec": { - "display_name": "quantumthreattracker (3.12.9)", + "display_name": "quantumthreattracker (3.12.7)", "language": "python", "name": "python3" }, @@ -212,7 +236,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.9" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/notebooks/development/gidney_basic.ipynb b/notebooks/development/gidney_basic.ipynb new file mode 100644 index 0000000..2863980 --- /dev/null +++ b/notebooks/development/gidney_basic.ipynb @@ -0,0 +1,1541 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 12, + "id": "060dc26a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " Physical resource estimates\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Runtime2 days\n", + " Total runtime\n", + "
\n", + " This is a runtime estimate for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (10,000 nanosecs) multiplied by the 19,500,000,000 logical cycles to run the algorithm. If however the duration of a single T factory (here: 128,800 nanosecs) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\n", + "
rQOPS290.50M\n", + " Reliable quantum operations per second\n", + "
\n", + " The value is computed as the number of logical qubits after layout (2,905) (with a logical error rate of 4.41e-15) multiplied by the clock frequency (100,000.00), which is the number of logical cycles per second.\n", + "
Physical qubits4.23M\n", + " Number of physical qubits\n", + "
\n", + " This value represents the total number of physical qubits, which is the sum of 3,631,250 physical qubits to implement the algorithm logic, and 599,760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\n", + "
\n", + "
\n", + " \n", + " Resource estimates breakdown\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Logical algorithmic qubits2.90k\n", + " Number of logical qubits for the algorithm after layout\n", + "
\n", + " Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\rm alg} = 1,399$ logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 2,905$ logical qubits.\n", + "
Algorithmic depth19.50G\n", + " Number of logical cycles for the algorithm\n", + "
\n", + " To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6,500,000,000 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\n", + "
Logical depth19.50G\n", + " Number of logical cycles performed\n", + "
\n", + " This number is usually equal to the logical depth of the algorithm, which is 19,500,000,000. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\n", + "
Clock frequency100.00k\n", + " Number of logical cycles per second\n", + "
\n", + " This is the number of logical cycles that can be performed within one second. The logical cycle time is 10 microsecs.\n", + "
Number of T states26.00G\n", + " Number of T states consumed by the algorithm\n", + "
\n", + " To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 6,500,000,000 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\n", + "
Number of T factories18\n", + " Number of T factories capable of producing the demanded 26,000,000,000 T states during the algorithm's runtime\n", + "
\n", + " The total number of T factories 18 that are executed in parallel is computed as $\\left\\lceil\\dfrac{\\text{T states}\\cdot\\text{T factory duration}}{\\text{T states per T factory}\\cdot\\text{algorithm runtime}}\\right\\rceil = \\left\\lceil\\dfrac{26,000,000,000 \\cdot 128,800\\;\\text{ns}}{1 \\cdot 195,000,000,000,000\\;\\text{ns}}\\right\\rceil$\n", + "
Number of T factory invocations1.44G\n", + " Number of times all T factories are invoked\n", + "
\n", + " In order to prepare the 26,000,000,000 T states, the 18 copies of the T factory are repeatedly invoked 1,444,444,445 times.\n", + "
Physical algorithmic qubits3.63M\n", + " Number of physical qubits for the algorithm after layout\n", + "
\n", + " The 3,631,250 are the product of the 2,905 logical qubits after layout and the 1,250 physical qubits that encode a single logical qubit.\n", + "
Physical T factory qubits599.76k\n", + " Number of physical qubits for the T factories\n", + "
\n", + " Each T factory requires 33,320 physical qubits and we run 18 in parallel, therefore we need $599,760 = 33,320 \\cdot 18$ qubits.\n", + "
Required logical qubit error rate4.41e-15\n", + " The minimum logical qubit error rate required to run the algorithm within the error budget\n", + "
\n", + " The minimum logical qubit error rate is obtained by dividing the logical error probability 2.50e-1 by the product of 2,905 logical qubits and the total cycle count 19,500,000,000.\n", + "
Required logical T state error rate9.62e-12\n", + " The minimum T state error rate required for distilled T states\n", + "
\n", + " The minimum T state error rate is obtained by dividing the T distillation error probability 2.50e-1 by the total number of T states 26,000,000,000.\n", + "
Number of T states per rotationNo rotations in algorithm\n", + " Number of T states to implement a rotation with an arbitrary angle\n", + "
\n", + " The number of T states to implement a rotation with an arbitrary angle is $\\lceil 0.53 \\log_2(0 / 0) + 4.86\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\n", + "
\n", + "
\n", + " \n", + " Logical qubit parameters\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
QEC schemesurface_code\n", + " Name of QEC scheme\n", + "
\n", + " You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\n", + "
Code distance25\n", + " Required code distance for error correction\n", + "
\n", + " The code distance is the smallest odd integer greater or equal to $\\dfrac{2\\log(0.03 / 0.000000000000004413257425305618)}{\\log(0.01/0.001)} - 1$\n", + "
Physical qubits1.25k\n", + " Number of physical qubits per logical qubit\n", + "
\n", + " The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\n", + "
Logical cycle time10 microsecs\n", + " Duration of a logical cycle in nanoseconds\n", + "
\n", + " The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\n", + "
Logical qubit error rate3.00e-15\n", + " Logical qubit error rate\n", + "
\n", + " The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{25 + 1}{2}$\n", + "
Crossing prefactor0.03\n", + " Crossing prefactor used in QEC scheme\n", + "
\n", + " The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\n", + "
Error correction threshold0.01\n", + " Error correction threshold used in QEC scheme\n", + "
\n", + " The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\n", + " QEC scheme formula used to compute logical cycle time\n", + "
\n", + " This is the formula that is used to compute the logical cycle time 10,000 ns.\n", + "
Physical qubits formula2 * codeDistance * codeDistance\n", + " QEC scheme formula used to compute number of physical qubits per logical qubit\n", + "
\n", + " This is the formula that is used to compute the number of physical qubits per logical qubits 1,250.\n", + "
\n", + "
\n", + " \n", + " T factory parameters\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Physical qubits33.32k\n", + " Number of physical qubits for a single T factory\n", + "
\n", + " This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\n", + "
Runtime129 microsecs\n", + " Runtime of a single T factory\n", + "
\n", + " The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\n", + "
Number of output T states per run1\n", + " Number of output T states produced in a single run of T factory\n", + "
\n", + " The T factory takes as input 255 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.47e-12.\n", + "
Number of input T states per run255\n", + " Number of physical input T states consumed in a single run of a T factory\n", + "
\n", + " This value includes the physical input T states of all copies of the distillation unit in the first round.\n", + "
Distillation rounds2\n", + " The number of distillation rounds\n", + "
\n", + " This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\n", + "
Distillation units per round17, 1\n", + " The number of units in each round of distillation\n", + "
\n", + " This is the number of copies for the distillation units per round.\n", + "
Distillation units15-to-1 space efficient, 15-to-1 RM prep\n", + " The types of distillation units\n", + "
\n", + " These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\n", + "
Distillation code distances7, 21\n", + " The code distance in each round of distillation\n", + "
\n", + " This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\n", + "
Number of physical qubits per round33.32k, 27.34k\n", + " The number of physical qubits used in each round of distillation\n", + "
\n", + " The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\n", + "
Runtime per round36 microsecs, 92 microsecs\n", + " The runtime of each distillation round\n", + "
\n", + " The runtime of the T factory is the sum of the runtimes in all rounds.\n", + "
Logical T state error rate2.47e-12\n", + " Logical T state error rate\n", + "
\n", + " This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.62e-12.\n", + "
\n", + "
\n", + " \n", + " Pre-layout logical resources\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Logical qubits (pre-layout)1.40k\n", + " Number of logical qubits in the input quantum program\n", + "
\n", + " We determine 2,905 algorithmic logical qubits from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\n", + "
T gates0\n", + " Number of T gates in the input quantum program\n", + "
\n", + " This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\n", + "
Rotation gates0\n", + " Number of rotation gates in the input quantum program\n", + "
\n", + " This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\n", + "
Rotation depth0\n", + " Depth of rotation gates in the input quantum program\n", + "
\n", + " This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\n", + "
CCZ gates6.50G\n", + " Number of CCZ-gates in the input quantum program\n", + "
\n", + " This is the number of CCZ gates.\n", + "
CCiX gates0\n", + " Number of CCiX-gates in the input quantum program\n", + "
\n", + " This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\n", + "
Measurement operations0\n", + " Number of single qubit measurements in the input quantum program\n", + "
\n", + " This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\n", + "
\n", + "
\n", + " \n", + " Assumed error budget\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Total error budget5.00e-1\n", + " Total error budget for the algorithm\n", + "
\n", + " The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}$ is uniformly distributed and applies to errors $\\epsilon_{\\log}$ to implement logical qubits, an error budget $\\epsilon_{\\rm dis}$ to produce T states through distillation, and an error budget $\\epsilon_{\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\epsilon_{\\rm dis}$ and $\\epsilon_{\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\n", + "
Logical error probability2.50e-1\n", + " Probability of at least one logical error\n", + "
\n", + " This is one third of the total error budget 5.00e-1 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\n", + "
T distillation error probability2.50e-1\n", + " Probability of at least one faulty T distillation\n", + "
\n", + " This is one third of the total error budget 5.00e-1 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\n", + "
Rotation synthesis error probability0.00e0\n", + " Probability of at least one failed rotation synthesis\n", + "
\n", + " This is one third of the total error budget 5.00e-1.\n", + "
\n", + "
\n", + " \n", + " Physical qubit parameters\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Qubit namequbit_gate_ns_e3\n", + " Some descriptive name for the qubit model\n", + "
\n", + " You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\n", + "
Instruction setGateBased\n", + " Underlying qubit technology (gate-based or Majorana)\n", + "
\n", + " When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\n", + "
Single-qubit measurement time100 ns\n", + " Operation time for single-qubit measurement (t_meas) in ns\n", + "
\n", + " This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\n", + "
Single-qubit gate time50 ns\n", + " Operation time for single-qubit gate (t_gate) in ns\n", + "
\n", + " This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\n", + "
Two-qubit gate time50 ns\n", + " Operation time for two-qubit gate in ns\n", + "
\n", + " This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\n", + "
T gate time50 ns\n", + " Operation time for a T gate\n", + "
\n", + " This is the operation time in nanoseconds to execute a T gate.\n", + "
Single-qubit measurement error rate0.001\n", + " Error rate for single-qubit measurement\n", + "
\n", + " This is the probability in which a single-qubit measurement in the Pauli basis may fail.\n", + "
Single-qubit error rate0.001\n", + " Error rate for single-qubit Clifford gate (p)\n", + "
\n", + " This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\n", + "
Two-qubit error rate0.001\n", + " Error rate for two-qubit Clifford gate\n", + "
\n", + " This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\n", + "
T gate error rate0.001\n", + " Error rate to prepare single-qubit T state or apply a T gate (p_T)\n", + "
\n", + " This is the probability in which executing a single T gate may fail.\n", + "
\n", + "
\n", + " \n", + " Constraints\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Logical depth factorconstraint not set\n", + " Factor the initial number of logical cycles is multiplied by\n", + "
\n", + " This is the factor takes into account a potential overhead to the initial number of logical cycles.\n", + "
Maximum number of T factoriesconstraint not set\n", + " The maximum number of T factories can be utilized during the algorithm's runtime\n", + "
\n", + " This is the maximum number of T factories used for producing the demanded T states, which can be created and executed by the algorithm in parallel.\n", + "
Maximum runtime durationconstraint not set\n", + " The maximum runtime duration allowed for the algorithm runtime\n", + "
\n", + " This is the maximum time allowed to the algorithm. If specified, the estimator targets to minimize the number of physical qubits consumed by the algorithm for runtimes under the maximum allowed.\n", + "
Maximum number of physical qubitsconstraint not set\n", + " The maximum number of physical qubits allowed for utilization to the algorith\n", + "
\n", + " This is the maximum number of physical qubits available to the algorithm. If specified, the estimator targets to minimize the runtime of the algorithm with number of physical qubits consumed not exceeding this maximum.\n", + "
Assumptions
    " + ], + "text/plain": [ + "{'status': 'success',\n", + " 'jobParams': {'qecScheme': {'name': 'surface_code',\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'crossingPrefactor': 0.03,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance',\n", + " 'maxCodeDistance': 50},\n", + " 'errorBudget': 0.5,\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'twoQubitGateTime': '50 ns',\n", + " 'tGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'tGateErrorRate': 0.001,\n", + " 'idleErrorRate': 0.001},\n", + " 'constraints': {'maxDistillationRounds': 3},\n", + " 'estimateType': 'frontier'},\n", + " 'logicalCounts': {'numQubits': 1399,\n", + " 'tCount': 0,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'cczCount': 6500000000,\n", + " 'ccixCount': 0,\n", + " 'measurementCount': 0},\n", + " 'reportData': {'groups': [{'title': 'Physical resource estimates',\n", + " 'alwaysVisible': True,\n", + " 'entries': [{'path': 'physicalCountsFormatted/runtime',\n", + " 'label': 'Runtime',\n", + " 'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (10,000 nanosecs) multiplied by the 19,500,000,000 logical cycles to run the algorithm. If however the duration of a single T factory (here: 128,800 nanosecs) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.'},\n", + " {'path': 'physicalCountsFormatted/rqops',\n", + " 'label': 'rQOPS',\n", + " 'description': 'Reliable quantum operations per second',\n", + " 'explanation': 'The value is computed as the number of logical qubits after layout (2,905) (with a logical error rate of 4.41e-15) multiplied by the clock frequency (100,000.00), which is the number of logical cycles per second.'},\n", + " {'path': 'physicalCountsFormatted/physicalQubits',\n", + " 'label': 'Physical qubits',\n", + " 'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 3,631,250 physical qubits to implement the algorithm logic, and 599,760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.'}]},\n", + " {'title': 'Resource estimates breakdown',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'physicalCountsFormatted/algorithmicLogicalQubits',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 1,399$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 2,905$ logical qubits.'},\n", + " {'path': 'physicalCountsFormatted/algorithmicLogicalDepth',\n", + " 'label': 'Algorithmic depth',\n", + " 'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6,500,000,000 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.'},\n", + " {'path': 'physicalCountsFormatted/logicalDepth',\n", + " 'label': 'Logical depth',\n", + " 'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 19,500,000,000. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\"},\n", + " {'path': 'physicalCountsFormatted/clockFrequency',\n", + " 'label': 'Clock frequency',\n", + " 'description': 'Number of logical cycles per second',\n", + " 'explanation': 'This is the number of logical cycles that can be performed within one second. The logical cycle time is 10 microsecs.'},\n", + " {'path': 'physicalCountsFormatted/numTstates',\n", + " 'label': 'Number of T states',\n", + " 'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 6,500,000,000 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.'},\n", + " {'path': 'physicalCountsFormatted/numTfactories',\n", + " 'label': 'Number of T factories',\n", + " 'description': \"Number of T factories capable of producing the demanded 26,000,000,000 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 18 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{\\\\text{T states}\\\\cdot\\\\text{T factory duration}}{\\\\text{T states per T factory}\\\\cdot\\\\text{algorithm runtime}}\\\\right\\\\rceil = \\\\left\\\\lceil\\\\dfrac{26,000,000,000 \\\\cdot 128,800\\\\;\\\\text{ns}}{1 \\\\cdot 195,000,000,000,000\\\\;\\\\text{ns}}\\\\right\\\\rceil$'},\n", + " {'path': 'physicalCountsFormatted/numTfactoryRuns',\n", + " 'label': 'Number of T factory invocations',\n", + " 'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 26,000,000,000 T states, the 18 copies of the T factory are repeatedly invoked 1,444,444,445 times.'},\n", + " {'path': 'physicalCountsFormatted/physicalQubitsForAlgorithm',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 3,631,250 are the product of the 2,905 logical qubits after layout and the 1,250 physical qubits that encode a single logical qubit.'},\n", + " {'path': 'physicalCountsFormatted/physicalQubitsForTfactories',\n", + " 'label': 'Physical T factory qubits',\n", + " 'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 33,320 physical qubits and we run 18 in parallel, therefore we need $599,760 = 33,320 \\\\cdot 18$ qubits.'},\n", + " {'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 2.50e-1 by the product of 2,905 logical qubits and the total cycle count 19,500,000,000.'},\n", + " {'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate',\n", + " 'label': 'Required logical T state error rate',\n", + " 'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 2.50e-1 by the total number of T states 26,000,000,000.'},\n", + " {'path': 'physicalCountsFormatted/numTsPerRotation',\n", + " 'label': 'Number of T states per rotation',\n", + " 'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 4.86\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.'}]},\n", + " {'title': 'Logical qubit parameters',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'jobParams/qecScheme/name',\n", + " 'label': 'QEC scheme',\n", + " 'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.'},\n", + " {'path': 'logicalQubit/codeDistance',\n", + " 'label': 'Code distance',\n", + " 'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000000000004413257425305618)}{\\\\log(0.01/0.001)} - 1$'},\n", + " {'path': 'physicalCountsFormatted/physicalQubitsPerLogicalQubit',\n", + " 'label': 'Physical qubits',\n", + " 'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.'},\n", + " {'path': 'physicalCountsFormatted/logicalCycleTime',\n", + " 'label': 'Logical cycle time',\n", + " 'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.'},\n", + " {'path': 'physicalCountsFormatted/logicalErrorRate',\n", + " 'label': 'Logical qubit error rate',\n", + " 'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{25 + 1}{2}$'},\n", + " {'path': 'jobParams/qecScheme/crossingPrefactor',\n", + " 'label': 'Crossing prefactor',\n", + " 'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.'},\n", + " {'path': 'jobParams/qecScheme/errorCorrectionThreshold',\n", + " 'label': 'Error correction threshold',\n", + " 'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.'},\n", + " {'path': 'jobParams/qecScheme/logicalCycleTime',\n", + " 'label': 'Logical cycle time formula',\n", + " 'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 10,000 ns.'},\n", + " {'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit',\n", + " 'label': 'Physical qubits formula',\n", + " 'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 1,250.'}]},\n", + " {'title': 'T factory parameters',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'physicalCountsFormatted/tfactoryPhysicalQubits',\n", + " 'label': 'Physical qubits',\n", + " 'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.'},\n", + " {'path': 'physicalCountsFormatted/tfactoryRuntime',\n", + " 'label': 'Runtime',\n", + " 'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.'},\n", + " {'path': 'tfactory/numTstates',\n", + " 'label': 'Number of output T states per run',\n", + " 'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 255 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.47e-12.'},\n", + " {'path': 'physicalCountsFormatted/numInputTstates',\n", + " 'label': 'Number of input T states per run',\n", + " 'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.'},\n", + " {'path': 'tfactory/numRounds',\n", + " 'label': 'Distillation rounds',\n", + " 'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.'},\n", + " {'path': 'physicalCountsFormatted/numUnitsPerRound',\n", + " 'label': 'Distillation units per round',\n", + " 'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.'},\n", + " {'path': 'physicalCountsFormatted/unitNamePerRound',\n", + " 'label': 'Distillation units',\n", + " 'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.'},\n", + " {'path': 'physicalCountsFormatted/codeDistancePerRound',\n", + " 'label': 'Distillation code distances',\n", + " 'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.'},\n", + " {'path': 'physicalCountsFormatted/physicalQubitsPerRound',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.'},\n", + " {'path': 'physicalCountsFormatted/tfactoryRuntimePerRound',\n", + " 'label': 'Runtime per round',\n", + " 'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.'},\n", + " {'path': 'physicalCountsFormatted/tstateLogicalErrorRate',\n", + " 'label': 'Logical T state error rate',\n", + " 'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.62e-12.'}]},\n", + " {'title': 'Pre-layout logical resources',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'physicalCountsFormatted/logicalCountsNumQubits',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 2,905 algorithmic logical qubits from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.'},\n", + " {'path': 'physicalCountsFormatted/logicalCountsTCount',\n", + " 'label': 'T gates',\n", + " 'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.'},\n", + " {'path': 'physicalCountsFormatted/logicalCountsRotationCount',\n", + " 'label': 'Rotation gates',\n", + " 'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.'},\n", + " {'path': 'physicalCountsFormatted/logicalCountsRotationDepth',\n", + " 'label': 'Rotation depth',\n", + " 'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.'},\n", + " {'path': 'physicalCountsFormatted/logicalCountsCczCount',\n", + " 'label': 'CCZ gates',\n", + " 'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.'},\n", + " {'path': 'physicalCountsFormatted/logicalCountsCcixCount',\n", + " 'label': 'CCiX gates',\n", + " 'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].'},\n", + " {'path': 'physicalCountsFormatted/logicalCountsMeasurementCount',\n", + " 'label': 'Measurement operations',\n", + " 'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.'}]},\n", + " {'title': 'Assumed error budget',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'physicalCountsFormatted/errorBudget',\n", + " 'label': 'Total error budget',\n", + " 'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\"},\n", + " {'path': 'physicalCountsFormatted/errorBudgetLogical',\n", + " 'label': 'Logical error probability',\n", + " 'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 5.00e-1 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.'},\n", + " {'path': 'physicalCountsFormatted/errorBudgetTstates',\n", + " 'label': 'T distillation error probability',\n", + " 'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 5.00e-1 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.'},\n", + " {'path': 'physicalCountsFormatted/errorBudgetRotations',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 5.00e-1.'}]},\n", + " {'title': 'Physical qubit parameters',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'jobParams/qubitParams/name',\n", + " 'label': 'Qubit name',\n", + " 'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).'},\n", + " {'path': 'jobParams/qubitParams/instructionSet',\n", + " 'label': 'Instruction set',\n", + " 'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.'},\n", + " {'path': 'jobParams/qubitParams/oneQubitMeasurementTime',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.'},\n", + " {'path': 'jobParams/qubitParams/oneQubitGateTime',\n", + " 'label': 'Single-qubit gate time',\n", + " 'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.'},\n", + " {'path': 'jobParams/qubitParams/twoQubitGateTime',\n", + " 'label': 'Two-qubit gate time',\n", + " 'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.'},\n", + " {'path': 'jobParams/qubitParams/tGateTime',\n", + " 'label': 'T gate time',\n", + " 'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.'},\n", + " {'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.'},\n", + " {'path': 'jobParams/qubitParams/oneQubitGateErrorRate',\n", + " 'label': 'Single-qubit error rate',\n", + " 'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.'},\n", + " {'path': 'jobParams/qubitParams/twoQubitGateErrorRate',\n", + " 'label': 'Two-qubit error rate',\n", + " 'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.'},\n", + " {'path': 'jobParams/qubitParams/tGateErrorRate',\n", + " 'label': 'T gate error rate',\n", + " 'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.'}]},\n", + " {'title': 'Constraints',\n", + " 'alwaysVisible': False,\n", + " 'entries': [{'path': 'physicalCountsFormatted/logicalDepthFactor',\n", + " 'label': 'Logical depth factor',\n", + " 'description': 'Factor the initial number of logical cycles is multiplied by',\n", + " 'explanation': 'This is the factor takes into account a potential overhead to the initial number of logical cycles.'},\n", + " {'path': 'physicalCountsFormatted/maxTFactories',\n", + " 'label': 'Maximum number of T factories',\n", + " 'description': \"The maximum number of T factories can be utilized during the algorithm's runtime\",\n", + " 'explanation': 'This is the maximum number of T factories used for producing the demanded T states, which can be created and executed by the algorithm in parallel.'},\n", + " {'path': 'physicalCountsFormatted/maxDuration',\n", + " 'label': 'Maximum runtime duration',\n", + " 'description': 'The maximum runtime duration allowed for the algorithm runtime',\n", + " 'explanation': 'This is the maximum time allowed to the algorithm. If specified, the estimator targets to minimize the number of physical qubits consumed by the algorithm for runtimes under the maximum allowed.'},\n", + " {'path': 'physicalCountsFormatted/maxPhysicalQubits',\n", + " 'label': 'Maximum number of physical qubits',\n", + " 'description': 'The maximum number of physical qubits allowed for utilization to the algorith',\n", + " 'explanation': 'This is the maximum number of physical qubits available to the algorithm. If specified, the estimator targets to minimize the runtime of the algorithm with number of physical qubits consumed not exceeding this maximum.'}]}],\n", + " 'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.']},\n", + " 'frontierEntries': [{'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4231010,\n", + " 'runtime': 195000000000000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 19500000000,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 18,\n", + " 'numTfactoryRuns': 1444444445,\n", + " 'physicalQubitsForTfactories': 599760,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '2 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.23M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '19.50G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '18',\n", + " 'numTfactoryRuns': '1.44G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '599.76k',\n", + " 'physicalQubitsForTfactoriesPercentage': '14.18 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}},\n", + " {'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4197690,\n", + " 'runtime': 196988235340000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 19698823534,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 17,\n", + " 'numTfactoryRuns': 1529411765,\n", + " 'physicalQubitsForTfactories': 566440,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '2 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.20M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '19.70G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '17',\n", + " 'numTfactoryRuns': '1.53G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '566.44k',\n", + " 'physicalQubitsForTfactoriesPercentage': '13.49 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}},\n", + " {'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4164370,\n", + " 'runtime': 209300000000000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 20930000000,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 16,\n", + " 'numTfactoryRuns': 1625000000,\n", + " 'physicalQubitsForTfactories': 533120,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '2 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.16M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '20.93G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '16',\n", + " 'numTfactoryRuns': '1.62G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '533.12k',\n", + " 'physicalQubitsForTfactoriesPercentage': '12.80 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}},\n", + " {'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4131050,\n", + " 'runtime': 223253333420000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 22325333342,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 1733333334,\n", + " 'physicalQubitsForTfactories': 499800,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '3 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.13M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '22.33G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '15',\n", + " 'numTfactoryRuns': '1.73G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '499.80k',\n", + " 'physicalQubitsForTfactoriesPercentage': '12.10 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}},\n", + " {'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4097730,\n", + " 'runtime': 239200000120000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 23920000012,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 1857142858,\n", + " 'physicalQubitsForTfactories': 466480,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '3 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.10M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '23.92G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '14',\n", + " 'numTfactoryRuns': '1.86G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '466.48k',\n", + " 'physicalQubitsForTfactoriesPercentage': '11.38 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}},\n", + " {'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4064410,\n", + " 'runtime': 257600000000000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 25760000000,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 13,\n", + " 'numTfactoryRuns': 2000000000,\n", + " 'physicalQubitsForTfactories': 433160,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '3 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.06M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '25.76G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '13',\n", + " 'numTfactoryRuns': '2.00G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '433.16k',\n", + " 'physicalQubitsForTfactoriesPercentage': '10.66 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}},\n", + " {'logicalQubit': {'codeDistance': 25,\n", + " 'physicalQubits': 1250,\n", + " 'logicalCycleTime': 10000,\n", + " 'logicalErrorRate': 3.000000000000004e-15},\n", + " 'tfactory': {'physicalQubits': 33320,\n", + " 'runtime': 128800,\n", + " 'numTstates': 1,\n", + " 'numInputTstates': 255,\n", + " 'numRounds': 2,\n", + " 'numUnitsPerRound': [17, 1],\n", + " 'unitNamePerRound': ['15-to-1 space efficient', '15-to-1 RM prep'],\n", + " 'codeDistancePerRound': [7, 21],\n", + " 'physicalQubitsPerRound': [33320, 27342],\n", + " 'runtimePerRound': [36400, 92400],\n", + " 'logicalErrorRate': 2.4698959469631274e-12},\n", + " 'errorBudget': {'logical': 0.25, 'tstates': 0.25, 'rotations': 0.0},\n", + " 'physicalCounts': {'physicalQubits': 4031090,\n", + " 'runtime': 279066666710000,\n", + " 'rqops': 290500000,\n", + " 'breakdown': {'algorithmicLogicalQubits': 2905,\n", + " 'algorithmicLogicalDepth': 19500000000,\n", + " 'logicalDepth': 27906666671,\n", + " 'numTstates': 26000000000,\n", + " 'clockFrequency': 100000.0,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 2166666667,\n", + " 'physicalQubitsForTfactories': 399840,\n", + " 'physicalQubitsForAlgorithm': 3631250,\n", + " 'requiredLogicalQubitErrorRate': 4.413257425305618e-15,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384615e-12,\n", + " 'numTsPerRotation': None,\n", + " 'cliffordErrorRate': 0.001}},\n", + " 'physicalCountsFormatted': {'runtime': '3 days',\n", + " 'rqops': '290.50M',\n", + " 'physicalQubits': '4.03M',\n", + " 'algorithmicLogicalQubits': '2.90k',\n", + " 'algorithmicLogicalDepth': '19.50G',\n", + " 'logicalDepth': '27.91G',\n", + " 'numTstates': '26.00G',\n", + " 'numTfactories': '12',\n", + " 'numTfactoryRuns': '2.17G',\n", + " 'physicalQubitsForAlgorithm': '3.63M',\n", + " 'physicalQubitsForTfactories': '399.84k',\n", + " 'physicalQubitsForTfactoriesPercentage': '9.92 %',\n", + " 'requiredLogicalQubitErrorRate': '4.41e-15',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-12',\n", + " 'physicalQubitsPerLogicalQubit': '1.25k',\n", + " 'logicalCycleTime': '10 microsecs',\n", + " 'clockFrequency': '100.00k',\n", + " 'logicalErrorRate': '3.00e-15',\n", + " 'tfactoryPhysicalQubits': '33.32k',\n", + " 'tfactoryRuntime': '129 microsecs',\n", + " 'numInputTstates': '255',\n", + " 'numUnitsPerRound': '17, 1',\n", + " 'unitNamePerRound': '15-to-1 space efficient, 15-to-1 RM prep',\n", + " 'codeDistancePerRound': '7, 21',\n", + " 'physicalQubitsPerRound': '33.32k, 27.34k',\n", + " 'tfactoryRuntimePerRound': '36 microsecs, 92 microsecs',\n", + " 'tstateLogicalErrorRate': '2.47e-12',\n", + " 'logicalCountsNumQubits': '1.40k',\n", + " 'logicalCountsTCount': '0',\n", + " 'logicalCountsRotationCount': '0',\n", + " 'logicalCountsRotationDepth': '0',\n", + " 'logicalCountsCczCount': '6.50G',\n", + " 'logicalCountsCcixCount': '0',\n", + " 'logicalCountsMeasurementCount': '0',\n", + " 'errorBudget': '5.00e-1',\n", + " 'errorBudgetLogical': '2.50e-1',\n", + " 'errorBudgetTstates': '2.50e-1',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'logicalDepthFactor': 'constraint not set',\n", + " 'maxTFactories': 'constraint not set',\n", + " 'maxDuration': 'constraint not set',\n", + " 'maxPhysicalQubits': 'constraint not set'}}]}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qsharp_widgets import EstimatesOverview\n", + "\n", + "from quantumthreattracker.algorithms import CryptParams\n", + "from quantumthreattracker.algorithms.rsa import GidneyBasic, GidneyBasicParams\n", + "\n", + "crypt_params = CryptParams(key_size=2048, protocol=\"RSA\")\n", + "alg_params = GidneyBasicParams()\n", + "algorithm = GidneyBasic(crypt_params, alg_params)\n", + "\n", + "result = algorithm.estimate_resources_azure(estimator_params={\"estimateType\": \"frontier\"})\n", + "\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "ff340a21", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "565b34f05bf947b1b5d1db6efe5e64ec", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "EstimatesOverview(estimates={'status': 'success', 'jobParams': {'qecScheme': {'name': 'surface_code', 'errorCo…" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "EstimatesOverview(result)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "quantumthreattracker (3.12.7)", + "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.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/quantumthreattracker/algorithms/algorithm_lister.py b/src/quantumthreattracker/algorithms/algorithm_lister.py index 9e84b53..47fc675 100644 --- a/src/quantumthreattracker/algorithms/algorithm_lister.py +++ b/src/quantumthreattracker/algorithms/algorithm_lister.py @@ -9,6 +9,7 @@ CryptParams, QuantumAlgorithm, ) +from .rsa.gidney_basic import GidneyBasic from .rsa.gidney_ekera import GidneyEkera @@ -38,9 +39,12 @@ def list_algorithms( If the protocol is not recognized. """ if crypt_params.protocol == "RSA": - algorithms = [GidneyEkera(crypt_params)] + algorithms = [GidneyBasic(crypt_params), GidneyEkera(crypt_params)] elif crypt_params.protocol == "DH-SP": - algorithms = [DLogSafePrimeEH(crypt_params), DLogSafePrimeShor(crypt_params)] + algorithms = [ + DLogSafePrimeEH(crypt_params), + DLogSafePrimeShor(crypt_params), + ] elif crypt_params.protocol == "DH-SCH": algorithms = [DLogSchnorrEH(crypt_params), DLogSchnorrShor(crypt_params)] elif crypt_params.protocol == "ECDH": diff --git a/src/quantumthreattracker/algorithms/rsa/__init__.py b/src/quantumthreattracker/algorithms/rsa/__init__.py index cbde63e..47b1469 100644 --- a/src/quantumthreattracker/algorithms/rsa/__init__.py +++ b/src/quantumthreattracker/algorithms/rsa/__init__.py @@ -2,16 +2,19 @@ from .baseline_shor import BaselineShor, BaselineShorParams from .chevignard import Chevignard, ChevignardParams +from .gidney_basic import GidneyBasic, GidneyBasicParams from .gidney_ekera import GidneyEkera, GidneyEkeraParams from .gidney_ekera_basic import GidneyEkeraBasic, GidneyEkeraBasicParams __all__ = [ - 'BaselineShor', - 'BaselineShorParams', - 'Chevignard', - 'ChevignardParams', - 'GidneyEkera', - 'GidneyEkeraBasic', - 'GidneyEkeraBasicParams', - 'GidneyEkeraParams', + "BaselineShor", + "BaselineShorParams", + "Chevignard", + "ChevignardParams", + "GidneyBasic", + "GidneyBasicParams", + "GidneyEkera", + "GidneyEkeraBasic", + "GidneyEkeraBasicParams", + "GidneyEkeraParams", ] diff --git a/src/quantumthreattracker/algorithms/rsa/gidney_basic.py b/src/quantumthreattracker/algorithms/rsa/gidney_basic.py new file mode 100644 index 0000000..3a92657 --- /dev/null +++ b/src/quantumthreattracker/algorithms/rsa/gidney_basic.py @@ -0,0 +1,121 @@ +"""Class for a parameterised implementation of Gidney (2025)'s implementation. + +[1] https://arxiv.org/abs/2505.15917 +""" + +from dataclasses import dataclass +from typing import Optional + +from qualtran.resource_counting import GateCounts +from qualtran.surface_code import AlgorithmSummary + +from quantumthreattracker.algorithms.quantum_algorithm import ( + AlgParams, + CryptParams, + QuantumAlgorithm, +) + + +@dataclass +class GidneyBasicParams(AlgParams): + """(No tunable parameters for this basic implementation; placeholder.).""" + + pass + + +class GidneyBasic(QuantumAlgorithm): + """Class for a basic implementation of Gidney.""" + + def __init__( + self, + crypt_params: CryptParams, + alg_params: Optional[GidneyBasicParams] = None, + ): + """Initialize the quantum algorithm. + + Parameters + ---------- + crypt_params : CryptParams + Cryptographic parameters. + alg_params : Optional[GidneyEkeraBasicParams], optional + Algorithmic parameters. For the basic implementation, these have no effect + but are included for API consistency. + """ + super().__init__(crypt_params, alg_params) + + def get_algorithm_summary( + self, alg_params: Optional[AlgParams] = None + ) -> AlgorithmSummary: + """Compute logical resource estimates for the circuit. + + Parameters + ---------- + alg_params : Optional[AlgParams], optional + Algorithm parameters (not used in this basic implementation) + + Returns + ------- + AlgorithmSummary + Logical resource estimates. + + Raises + ------ + NameError + If the protocol is not "RSA". + ValueError + If the key_size is not supported. + """ + if self._crypt_params.protocol != "RSA": + raise NameError( + 'The protocol for this class must be "RSA". ' + + f'"{self._crypt_params.protocol}" was given.' + ) + + key_size = self._crypt_params.key_size + + # Table mapping key_size (n) to Toffolis and Qubits + resource_table = { + 1024: {"qubit_count": 742, "toffoli_count": 1.1e9}, + 1536: {"qubit_count": 1074, "toffoli_count": 3.1e9}, + 2048: {"qubit_count": 1399, "toffoli_count": 6.5e9}, + 3072: {"qubit_count": 2043, "toffoli_count": 1.9e10}, + 4096: {"qubit_count": 2692, "toffoli_count": 4.0e10}, + 6144: {"qubit_count": 3978, "toffoli_count": 1.2e11}, + 8192: {"qubit_count": 5261, "toffoli_count": 2.7e11}, + } + + sorted_keys = sorted(resource_table.keys()) + key_size_rounded_up = None + for k in sorted_keys: + if key_size <= k: + key_size_rounded_up = k + break + + if key_size_rounded_up is None: + raise ValueError( + f"Unsupported key_size: {key_size} exceeds maximum supported ({sorted_keys[-1]})" + ) + + key_size = key_size_rounded_up + + qubits = int(resource_table[key_size]["qubit_count"]) + toffolis = int(resource_table[key_size]["toffoli_count"]) + + return AlgorithmSummary( + n_algo_qubits=int(qubits), + n_logical_gates=GateCounts(toffoli=toffolis), + ) + + @staticmethod + def generate_search_space() -> list[GidneyBasicParams]: + """Generate a search space for algorithm parameters. + + Since GidneyBasic doesn't have configurable parameters, this returns + a list with a single set of default parameters. + + Returns + ------- + list[GidneyBasicParams] + Single-element list containing default parameters. + """ + return [GidneyBasicParams()] diff --git a/src/quantumthreattracker/lifespan_estimator/lifespan_estimator.py b/src/quantumthreattracker/lifespan_estimator/lifespan_estimator.py index b382ace..1fee121 100644 --- a/src/quantumthreattracker/lifespan_estimator/lifespan_estimator.py +++ b/src/quantumthreattracker/lifespan_estimator/lifespan_estimator.py @@ -5,6 +5,7 @@ from datetime import datetime from pathlib import Path +import matplotlib.dates as mdates import matplotlib.pyplot as plt from matplotlib.axes import Axes from qsharp.estimator import EstimatorError @@ -225,30 +226,44 @@ def plot_threats(self, protocol: str | None = None) -> Axes: timestamps = [] runtimes = [] + ax = plt.subplot(111) + ax.set_yscale("log") + ax.set_xlabel("Timestamp") + ax.set_ylabel("Algorithm runtime (hours)") + ax.xaxis.set_major_locator(mdates.YearLocator()) + ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y")) + if protocol is not None: report = self.get_report(detail_level=1) report = [entry for entry in report if entry["protocol"] == protocol] threats = report[0]["threats"] - # Remove threats that are dominated by other threats - for threat in threats: - for alt_threat in threats: + # Pareto frontier: keep only threats not dominated by another + # (sooner & shorter runtime) + filtered_threats = [] + for i, t1 in enumerate(threats): + dominated = False + for j, t2 in enumerate(threats): + if j == i: + continue if ( - threat["timestamp"] >= alt_threat["timestamp"] - and threat["runtime"] >= alt_threat["runtime"] + t2["timestamp"] <= t1["timestamp"] + and t2["runtime"] <= t1["runtime"] + ) and ( + t2["timestamp"] < t1["timestamp"] + or t2["runtime"] < t1["runtime"] ): - threats.remove(threat) + dominated = True break + if not dominated: + filtered_threats.append(t1) + threats = filtered_threats for entry in threats: timestamps.append(datetime.fromtimestamp(entry["timestamp"])) runtimes.append(entry["runtime"] / 3.6e12) - ax = plt.subplot(111) ax.plot(timestamps, runtimes, "o--") - ax.set_yscale("log") - ax.set_xlabel("Timestamp") - ax.set_ylabel("Algorithm runtime (hours)") ax.set_title("Threats against " + protocol) return ax @@ -258,13 +273,9 @@ def plot_threats(self, protocol: str | None = None) -> Axes: timestamps.append(datetime.fromtimestamp(entry["threats"][0]["timestamp"])) runtimes.append(entry["threats"][0]["runtime"] / 3.6e12) - ax = plt.subplot(111) ax.scatter(timestamps, runtimes) for i, txt in enumerate(labels): ax.annotate(txt, (timestamps[i], runtimes[i])) - ax.set_yscale("log") - ax.set_xlabel("Timestamp") - ax.set_ylabel("Algorithm runtime (hours)") ax.set_title("Estimates of when cryptographic protocols will be broken") ax.spines[["right", "top"]].set_visible(False) return ax diff --git a/tests/algorithms/test_algorithm_lister.py b/tests/algorithms/test_algorithm_lister.py index 3f4189f..6a533e6 100644 --- a/tests/algorithms/test_algorithm_lister.py +++ b/tests/algorithms/test_algorithm_lister.py @@ -8,7 +8,7 @@ @pytest.mark.parametrize( "crypt_params, expected_algorithms", [ - (CryptParams("RSA", 1024), ["GidneyEkera"]), + (CryptParams("RSA", 1024), ["GidneyBasic", "GidneyEkera"]), (CryptParams("DH-SP", 1024), ["DLogSafePrimeEH", "DLogSafePrimeShor"]), (CryptParams("DH-SCH", 1024), ["DLogSchnorrEH", "DLogSchnorrShor"]), (CryptParams("ECDH", 256), ["LitinskiECC"]), diff --git a/tests/algorithms/test_gidney_basic.py b/tests/algorithms/test_gidney_basic.py new file mode 100644 index 0000000..9bb09d1 --- /dev/null +++ b/tests/algorithms/test_gidney_basic.py @@ -0,0 +1,44 @@ +"""Tests for the `GidneyBasic` class.""" + +import pytest + +from quantumthreattracker.algorithms.quantum_algorithm import CryptParams +from quantumthreattracker.algorithms.rsa.gidney_basic import ( + GidneyBasic, + GidneyBasicParams, +) + + +def test_gidney_basic_rsa_supported_key_sizes() -> None: + """Test key size support and algorithm summary generation.""" + key_sizes = [1024, 1536, 2048, 3072, 4096, 6144, 8192] + for key_size in key_sizes: + crypt_params = CryptParams(protocol="RSA", key_size=key_size) + algo = GidneyBasic(crypt_params) + summary = algo.get_algorithm_summary() + assert summary.n_algo_qubits > 0 + assert summary.n_logical_gates.toffoli > 0 + + +def test_gidney_basic_rsa_unsupported_key_size_raises() -> None: + """Test that GidneyBasic raises ValueError for unsupported RSA key sizes.""" + crypt_params = CryptParams(protocol="RSA", key_size=10000) + algo = GidneyBasic(crypt_params) + with pytest.raises(ValueError): + algo.get_algorithm_summary() + + +def test_gidney_basic_non_rsa_protocol_raises() -> None: + """Test that GidneyBasic raises NameError when a non-RSA protocol is provided.""" + crypt_params = CryptParams(protocol="ECC", key_size=2048) + algo = GidneyBasic(crypt_params) + with pytest.raises(NameError): + algo.get_algorithm_summary() + + +def test_gidney_basic_generate_search_space() -> None: + """Test search space generation.""" + params_list = GidneyBasic.generate_search_space() + assert isinstance(params_list, list) + assert len(params_list) == 1 + assert isinstance(params_list[0], GidneyBasicParams)