\"\n ],\n \"text/plain\": [\n \"\"\n ]\n },\n \"metadata\": {},\n \"output_type\": \"display_data\"\n },\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"Saving easy21.txt to easy21.txt\\n\"\n ]\n }\n ],\n \"source\": [\n \"from google.colab import files\\n\",\n \"uploaded = files.upload()\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {\n \"id\": \"VQxg1mw552i0\"\n },\n \"source\": [\n \"All puzzles in file \\\"easy21.txt\\\", except for the last one, are solvable. \\n\",\n \"\\n\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 11,\n \"metadata\": {\n \"colab\": {\n \"base_uri\": \"https://localhost:8080/\"\n },\n \"id\": \"txLda6em3uhn\",\n \"outputId\": \"acf9998a-b81e-4230-97e9-57de2c60f519\"\n },\n \"outputs\": [\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"21 strings read\\n\",\n \"Initial:\\n\",\n \" ..3.2.6..9..3.5..1..18.64....81.29..7.......8..67.82....26.95..8..2.3..9..5.1.3..\\n\",\n \"After executing solve():\\n\",\n \" 483921657967345821251876493548132976729564138136798245372689514814253769695417382\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" 9.42....7.1..........7.65.....8...9..2.9.4.6..4...2.....16.7..........3.3....57.2\\n\",\n \"After executing solve():\\n\",\n \" 9.42....7.1..........7.65.....8...9..2.9.4.6..4...2.....16.7..........3.3....57.2\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .2.81.74.7....31...9...28.5..9.4..874..2.8..316..3.2..3.27...6...56....8.76.51.9.\\n\",\n \"After executing solve():\\n\",\n \" 523816749784593126691472835239145687457268913168937254342789561915624378876351492\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" 48...69.2..2..8..19..37..6.84..1.2....37.41....1.6..49.2..85..77..9..6..6.92...18\\n\",\n \"After executing solve():\\n\",\n \" 487156932362498751915372864846519273593724186271863549124685397738941625659237418\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .8.....4....469...4.......7..59.46...7.6.8.3...85.21..9.......5...781....6.....1.\\n\",\n \"After executing solve():\\n\",\n \" .8.....4....469...4.......7..59.46..27.618.3...85.21..9.......5...781....6.....1.\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .6234.75.1....56..57.....4.....948..4.......6..583.....3.....91..64....7.59.8326.\\n\",\n \"After executing solve():\\n\",\n \" 962341758148975623573268149321694875487512936695837412834726591216459387759183264\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .....3.17.15..9..8.6.......1....7.....9...2.....5....4.......2.5..6..34.34.2.....\\n\",\n \"After executing solve():\\n\",\n \" .....3.17.15..9..8.6.......1....7.....9...2.....5....4.......2.5..6..34.34.2.....\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" 361.259...8.96..1.4......57..8...471...6.3...259...8..74......5.2..18.6...547.329\\n\",\n \"After executing solve():\\n\",\n \" 361725948587964213492831657638259471174683592259147836746392185923518764815476329\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .5.8.7.2.6...1..9.7.254...6.7..2.3.15.4...9.81.3.8..7.9...762.5.6..9...3.8.1.3.4.\\n\",\n \"After executing solve():\\n\",\n \" 359867124648312597712549836876924351524731968193685472931476285465298713287153649\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ..35.29......4....1.6...3.59..251..8.7.4.8.3.8..763..13.8...1.4....2......51.48..\\n\",\n \"After executing solve():\\n\",\n \" 743512986589346217126987345934251768671498532852763491398675124417829653265134879\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ....8....27.....54.95...81...98.64...2.4.3.6...69.51...17...62.46.....38....9....\\n\",\n \"After executing solve():\\n\",\n \" ....8..9.27....354.95...81...98.647..2.4.3.6...69.518..17...62.462....38....9..4.\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ...........98.51...519.742.29.4.1.65.........14.5.8.93.267.958...51.36...........\\n\",\n \"After executing solve():\\n\",\n \" 782614359439825176651937428293471865568392714147568293326749581975183642814256937\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .5..1..4.1.7...6.2...9.5...2.8.3.5.1.4..7..2.9.1.8.4.6...4.1...3.4...7.9.2..6..1.\\n\",\n \"After executing solve():\\n\",\n \" 852716943197843652463925187278634591645179328931582476786491235314258769529367814\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" 3..2........1.7...7.6.3.5...7...9.8.9...2...4.1.8...5...9.4.3.1...7.2........8..6\\n\",\n \"After executing solve():\\n\",\n \" 3..2........1.7...7.69345...7...9.8.9...2...4.1.8...5...9.4.3.1...7.2........8..6\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ..6.8.3...49.7.25....4.5...6..317..4..7...8..1..826..9...7.2....75.4.19...3.9.6..\\n\",\n \"After executing solve():\\n\",\n \" 516289347849173256732465918698317524327954861154826739961732485275648193483591672\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ...9..8..128..64...7.8...6.8..43...75.......96...79..8.9...4.1...36..284..1..7...\\n\",\n \"After executing solve():\\n\",\n \" 365942871128756493974813562819435627537268149642179358296384715753691284481527936\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .53...79...97534..1.......2.9..8..1....9.7....8..3..7.5.......3..76412...61...94.\\n\",\n \"After executing solve():\\n\",\n \" .53...79..297534..17......2.9..8..1..1.9.7....8..3..7.54......3.376412...61...94.\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ...6.2...4...5...1.85.1.62..382.671...........194.735..26.4.53.9...2...7...8.9...\\n\",\n \"After executing solve():\\n\",\n \" 193672485462358971785914623538296714674135298219487356826741539941523867357869142\\n\",\n \"1\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" ...9....2.5.1234...3....16.9.8.......7.....9.......2.5.91....5...7439.2.4....7...\\n\",\n \"After executing solve():\\n\",\n \" ...9....2.5.1234...3....16.9.8.......7.....9.......2.5.91....5...7439.2.4....7...\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" .1.5..2..9....1.....2..8.3.5...3...7..8...5..6...8...4.4.1..7.....7....6..3..4.5.\\n\",\n \"After executing solve():\\n\",\n \" .1.5..2..9....1.....2..8.3.5...3...7..8...5..6...8...4.4.1..7.....7....6..3..4.5.\\n\",\n \"0\\n\",\n \"\\n\",\n \"Initial:\\n\",\n \" 7..6.2...4...5...1.85.1.62..382.671...........194.735..26.4.53.9...2...7...8.9...\\n\",\n \"After executing solve():\\n\",\n \" 79163248546..58971.85914623538296714647...29821948735682674153995432.86737.869142\\n\",\n \"-1\\n\",\n \"\\n\",\n \"solved puzzles: 12\\n\",\n \"unsolved puzzles: 8\\n\",\n \"unsolvable puzzles: 1\\n\"\n ]\n }\n ],\n \"source\": [\n \"f = open(\\\"easy21.txt\\\", \\\"r\\\")\\n\",\n \"count = [0,0,0]\\n\",\n \"ss = [s for s in f.read().split('\\\\n')]\\n\",\n \"print(len(ss), 'strings read')\\n\",\n \"for s in ss:\\n\",\n \" print('Initial:\\\\n',s)\\n\",\n \" S = Sudoku(s)\\n\",\n \" sol = S.solve()\\n\",\n \" print('After executing solve():\\\\n',S.to_string())\\n\",\n \" print(sol)\\n\",\n \" print()\\n\",\n \" count[sol]+=1\\n\",\n \"\\n\",\n \"print('solved puzzles:',count[1])\\n\",\n \"print('unsolved puzzles:',count[0])\\n\",\n \"print('unsolvable puzzles:',count[-1])\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {\n \"id\": \"taLaDyEqE2hL\"\n },\n \"source\": [\n \"### Part 3\\n\",\n \"In this part you will implement a strategy for solving all solvable puzzles using backtracking.\\n\",\n \"\\n\",\n \"If there are no cells with a single valid value, we have to guess among the valid values in a given cell; if the guess works, we return the result, otherwise we backtrack. \"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {\n \"id\": \"piX9Lad6DKLC\"\n },\n \"source\": [\n \"For example, consider the following attempted solution:\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 12,\n \"metadata\": {\n \"colab\": {\n \"base_uri\": \"https://localhost:8080/\",\n \"height\": 952\n },\n \"id\": \"a1LjFTnWCjer\",\n \"outputId\": \"ed5f43ec-5f82-4398-a72a-8f6d6ec674e5\"\n },\n \"outputs\": [\n {\n \"data\": {\n \"image/png\": \"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0tJSSZLb7VZMTIxKSkpUUlKi/Px8jR49WldddZXZoLhgy5cv19NPPx147fF4FB0drcOHD2vLli3asmWLFi9erL/85S+69tprDSZFcwoLC1N8fPw510dFRQUxDWCeowvfoUOHvnP9E088oenTp0uS7r777mBEQhBs3rxZv/rVr1RbW6ubbrpJjzzyiPr37y+Xy6Wamhp99tlnWrt2rS699FLTUdEMUlNT1a1bNw0cOFBJSUmKi4uTJFVXV+uNN97Q9OnTVV5ertGjR2vXrl3sd0t07txZe/fuNR0DCBmOLnzf54UXXpAkDRw4UH369DGcBs2hpqZG48ePV21trR588EE9+eSTTdbHxMTommuuYUbXIuPHjz/r+5dcconGjx+vxMREXX/99SorK9O6des0bty4ICcEgJbn6Gv4vsuWLVtUWFgoSZo4caLhNGguL730koqKipSYmKgFCxaYjoMQ8LOf/Syw/OWXXxpMAgAth8J3Do2ze5deeqluueUWw2nQXF588UVJ0i233CKPx2M4DULBpk2bAss9e/Y0mAQAWg6F7yyqq6u1atUqSdLYsWMVExNjOBGaw8mTJ/Xxxx9Lkvr376/9+/fr3nvvVefOneV2u9W+fXuNHDlSb731luGkaGknT57U3r179dRTT+n222+XJPXq1UsjR440nAzNpby8XP3799cll1yi6Oho9ejRQxkZGcrPzzcdDTCCwncWr776qqqrqyVxOtcme/fuldfrlSQVFRXpxz/+sZ5//nmVlZUpNjY2cA3XiBEjdM8998jv9xtOjObm8Xjkcrnk8XjUvXt3Pfjgg6qsrFRaWpo2btzIJzctUlNTo4KCArndbvl8PhUXF+vll1/W4MGDNWHCBNXX15uOCAQVhe8sli1bJknq16+f+vfvbzgNmktlZWVged68eYqMjNTq1atVXV2tyspK7du3L3D6ftmyZVq0aJGpqGghiYmJat++vWJjYwPvDR48WIsXL1aXLl0MJkNz6dChgx599FHt3LlTJ06c0OHDh1VTU6PNmzfruuuukyStWLFCU6dONZwUCC4K37d89tln2rp1qyRm92zj8/maLL/wwgtKT09XZGSkJKlLly569dVX1a9fP0nS/PnzmQWwzN69e3Xo0CFVV1ertLRU2dnZ2rFjh1JTUzV79mzT8dAMhg0bpjlz5ujKK68MzNiGh4drwIABeueddzRq1ChJ0jPPPKPdu3ebjAoEFYXvWxpn9zwejzIyMgynQXNq1apVYLl3794aPXr0GduEhYUF7r349ddfa/v27cGKhyBLSEjQtGnTtH79erlcLv3xj3/UunXrTMdCCwoLC1N2drakU3/0/fWvfzWcCAgeCt9pvF6vcnNzJUk333xz4AatsEPHjh0Dy0lJSefcrm/fvoHlffv2tWgmmJeamqqBAwdKkp577jnDadDSevXqpXbt2kk6dS0v4BQUvtOsXbtWFRUVkjida6PLLrusSek7l9M/rOFyuVoyEkJE43GxZ88ew0kAoGVQ+E7TeDq3V69e+sUvfmE4DVrCsGHDJClwU+2z+c9//hNY7t69e4tngnmNMz2nn/aHnb744ovAH/b8fMNJKHz/b//+/crLy5MkTZgwgZkdS911112STs3kvPnmm2es9/l8gWt8OnbsqJSUlGDGQzNraGj43tvrbNy4Udu2bZMk/fKXvwxCKrSU79vXfr9fM2bMkHTqer4RI0YEIxYQEih8/2/58uXy+XyKiIjQnXfeaToOWsigQYOUnp4u6dRp+9dffz3wSdz9+/dr7Nix+uSTTyRJjz32mMLC+BG5mB04cEBXX321li5dqqKioiaF4MCBA3r88cc1atQo+f1+XXbZZdyq4yK3b98+paamnrG/fT6f/vnPf+rGG2/UmjVrJEn33Xcf35EOR4kwHSAU+Hw+rVixQpI0fPhwXX755YYToSXl5OSorKxM77//vtLT0xUVFaWYmJgm9+l79NFHdccddxhMieayc+dOTZo0SZLkdrvVunVr1dbW6vjx44Ftunfvrtdff12JiYmmYqKZfPTRR/roo48kSVFRUWrVqpWOHTumkydPBra566679OSTT5qKCBhB4ZOUl5en/fv3S+LDGk4QGxur9957T8uXL9dLL72kTz/9VMeOHVPHjh01aNAgPfjggxowYIDpmGgGHTp00OrVq5Wfn6+tW7fqq6++UkVFhcLDw9WlSxf169dPo0aN0m9/+1tFR0ebjosL1L59ey1ZskQffvihduzYofLyclVWVga+WWXAgAGaMGGC0tLSTEcFgo7Cp1MX8vM1Ws4SFhamiRMnUvAt53a7lZ6eHjiND7tFR0frgQce0AMPPGA6ChByuEAJAADAchQ+AAAAy1H4AAAALEfhAwAAsByFDwAAwHIU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rLdlaGhoCJz2bdOmjfr06RPUjADOn9/v/971M2bMkHTqD8ARI0YEIxZCCIXPwSorK1VRURF4+Hw+Sac+zXn6+3zN1sUvOjpaEydOlCQVFBRo5MiR+ve//y2fzyefz6dPPvlEw4cP15YtWySdun0LX78HXDz27dun1NRULV26VEVFRYEC6PP59M9//lM33nij1qxZI0m67777+IPOgc78Qk04xtVXX33W03tZWVnKysoKvL7jjjuUk5MTxGRoCZmZmdq9e7fWr18feDTeuuHkyZOB7caOHatZs2aZigngPH300Uf66KOPJElRUVFq1aqVjh071uTn+6677tKTTz5pKiIMovABDhEdHa2//e1vev3115Wbm6vt27errKxMLpdLnTt3Vmpqqu666y796le/Mh0VwA/Uvn17LVmyRB9++KF27Nih8vJyVVZWyuPxqHv37howYIAmTJigtLQ001FhCIXPwfbu3Ws6AoLM5XIpPT1d6enppqMAaEaNt1VqvLUS8G1cwwcAAGA5Ch8AAIDlKHwAAACWo/ABAABYjsIHAABgOQofAACA5Sh8AAAAlqPwAQAAWI7CBwAAYDkKHwAAgOUofAAAAJaj8AEAAFiOwgcAAGA5Ch8AAIDlKHwAAACWo/ABAABYjsIHAABgOQofAACA5Sh8AAAAlqPwAQAAWI7CBwAAYDkKHwAAgOVcfr/fbzrEt0VGRqq+vl4ul0vt2rUzHSdo6urqVFVVpbi4OEVGRpqOEzROHbcklZeXB5bj4+MNJgkup+5zp47bqce55Nx97tRxV1RUyO/3KyIiQnV1dabjNBGShS8sLEwhGAsAAOB7uVwu+Xw+0zGaiDAd4GzCw8OZ4XPQX0ROHbfk3JkPp+5zp47bqce55Nx97tRxN87whYeHm45yhpCc4evUqZNKSkrUsWNHffnll6bjBE1BQYH69++v7du3KyUlxXScoHHquCUpISFB5eXlio+PV1lZmek4QePUfe7UcTv1OJecu8+dOu5Q7i98aAMAAMByFD4AAADLUfgAAAAsR+EDAACwHIUPAADAchQ+AAAAy1H4AAAALEfhAwAAsByFDwAAwHIUPgAAAMtR+AAAACxH4QMAALAchQ8AAMByFD4AAADLUfgAAAAsR+EDAACwHIUPAADAchQ+ONKmTZt06623qlOnToqKilJCQoKGDh2qlStXmo6GIHj88cflcrkCD9ijoKBAc+fO1a9//WslJSWpbdu2ioyMVNu2bZWWlqbHHntMhw8fNh0TzaimpkZvv/225s2bp5tuukldu3YN/GzPmTPHdLyQEWE6ABBsM2fOVGZmZuB1XFycqqqqlJeXp7y8PK1evVqrVq1SRAQ/Hjb6/PPPNXfuXNMx0EKWL1+up59+OvDa4/EoOjpahw8f1pYtW7RlyxYtXrxYf/nLX3TttdcaTIrmsm3bNg0fPtx0jJDHDB8cZenSpYGyd9ttt+nAgQOqrKzUsWPHlJOTo9jYWK1Zs0YPP/yw4aRoCT6fTxMmTNCJEyf4x95SqampysrK0ocffqjKykrV1tbq6NGjOnbsmP785z8rPj5eFRUVGj16tI4cOWI6LppJmzZtNGTIEM2YMUMrV65UYmKi6UghhykMOEZ9fb0effRRSVJKSopefvllhYWd+psnKipKd9xxh2prazV58mQtWbJEDzzwgHr06GEyMprZkiVLtGXLFo0bN069evXShx9+aDoSmtn48ePP+v4ll1yi8ePHKzExUddff73Kysq0bt06jRs3LsgJ0dwGDRp0xmn6mTNnGkoTupjhg2Ns375dpaWlkqRp06YFyt7p7rnnHsXFxam+vl65ubnBjogWVFxcrFmzZqlt27ZatGiR6Tgw5Gc/+1lg+csvvzSYBM0lPDzcdISLAoUPjrFv377Act++fc+6TXh4uK644gpJ0oYNG4KSC8Fxzz336Pjx41q4cKHi4+NNx4EhmzZtCiz37NnTYBIguDilC0dqaGj43nWffvppsOKghT3//PPauHGjrrvuunOe8oO9Tp48qYMHD2rdunWaPXu2JKlXr14aOXKk4WRA8FD44BjdunULLH/66afq37//Gdt4vV7t3r1bknTkyBEdP35csbGxwYqIFlBSUqIZM2YoOjpaS5cuNR0HQeTxeHTy5Mkz3k9LS9Mrr7yiqKgoA6kAMzilC8dISUlR+/btJUmZmZmqr68/Y5slS5bo6NGjgdenL+PidN999+nIkSOaM2cOH8JxmMTERLVv377JH22DBw/W4sWL1aVLF4PJgOCj8MExIiIiAqdzCgsLNWLECBUUFMjr9erQoUPKysrSI488osjIyMB/c7YPduDikZubq7feektXXXWVfv/735uOgyDbu3evDh06pOrqapWWlio7O1s7duxQampq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gm3evFm/+tWvVFpaqptuukkfffSRTpw4ocrKSh0/flzbtm3TrFmzdOmll5qOagwzfABgoRdffFGS1KtXL61cuVIREd/8uu/Tp49Wr16tpKQkFRUVadWqVfrNb35jKipwQWpqajR+/HjV1tbqwQcf1JNPPtlkfUxMjK655hpdc801hhKGBmb4AMBCBw8elCT169evSdlrFBkZGTi1VV1dHcxoQLN66aWXVFRUpMTERC1YsMB0nJBF4QMAC/Xo0UOStHPnTtXX15+xvq6uTjt27JAk/fSnPw1mNKBZNc5m33LLLfJ4PIbThC4KHwBYaPLkyZKkPXv2aOzYsdqzZ09g3eeff64xY8aoqKhIPXv21NSpU03FBC7IyZMn9fHHH0uS+vfvr/379+vee+9V586d5Xa71b59e40cOVJvvfWW4aTmUfgAwEIjR47UokWL5Ha79dprr6l3796KiYlRTEyMkpKSlJ+fr8mTJ2vbtm1q3bq16bjAedm7d6+8Xq8kqaioSD/+8Y/1/PPPq6ysTLGxsSorK9O6des0YsQI3XPPPfL7/YYTm0PhAwBLTZkyRW+88YYSEhIkSbW1taqtrZUkeb1eVVdX68iRIyYjAheksrIysDxv3jxFRkZq9erVqq6uVmVlpfbt26dbbrlFkrRs2TItWrTIVFTjKHwAYKGamhrdeuutGjFihLp06aINGzaovLxc5eXl2rBhg/r27auXXnpJqamp+uSTT0zHBc6Lz+drsvzCCy8oPT1dkZGRkqQuXbro1VdfVb9+/SRJ8+fPP+s1rU5A4QMAC82YMUOrVq1Snz59tGnTJg0dOlTt2rVTu3btNHToUL3//vu64oorVFFRofvvv990XOC8tGrVKrDcu3dvjR49+oxtwsLCNH36dEnS119/re3btwcrXkih8AGAZY4dO6bnnntOknT//fef9ZOL0dHReuCBByRJH3zwgcrKyoKaEWgOHTt2DCwnJSWdc7u+ffsGlvft29eimUIVhQ8ALLNr167AaauePXuec7vevXsHlouLi1s8F9DcLrvssial71xO/7CGy+VqyUghi8IHAJYJC/vmV/t3zWY0fueo1PTUGHAxGTZsmCSpsLDwnNv85z//CSx37969xTOFIgofAFgmKSlJ0dHRkk59MvFsF6k3NDQETvu2adNGffr0CWpGoLncddddkk7dc/LNN988Y73P51N2drakU6eAU1JSghkvZFD4AMAy0dHRmjhxoiSpoKBAI0eO1L///W/5fD75fD598sknGj58uLZs2SLp1O1bwsPDTUYGztugQYOUnp4uSZo4caJef/31wB85+/fv19ixYwOfRH/ssceazIA7yZlfsAgAuOhlZmZq9+7dWr9+feARFRUl6dS3EzQaO3asZs2aZSom0CxycnJUVlam999/X+np6YqKilJMTEyT+/Q9+uijuuOOOwymNMuZNRcALBcdHa2//e1vWr16tUaNGqVOnToFLlzv3Lmzbr75Zq1bt06vvPIKs3u46MXGxuq9997T888/r5///OeKjY1VdXW1OnbsqNtuu02bN2/WnDlzTMc0ihk+ALCUy+VSenp64HQXYLOwsDBNnDgxcDkDmmKGDwAAwHIUPgAAAMtR+AAAACxH4QMAALAchQ8AAMByFD4AAADLUfgAAAAsR+EDAACwHIUPAADAchQ+AAAAy1H4AAAALEfhAwAAsByFDwAAwHIUPgAAAMtR+AAAACxH4QMAALAchQ8AAMByFD4AAADLUfgAAAAsR+EDAACwHIUPAADAchQ+AAAAy7n8fr/fdIhvc7vdqqurU1hYmC6//HLTcYLG6/WqvLxc8fHxcrvdpuMEjVPHLUlfffWV/H6/XC6XOnToYDpO0Dh1nzt13E49ziXn7nOnjvvgwYPy+XyKjIyU1+s1HaeJkCx84eHh8vl8pmMAAAD8YGFhYWpoaDAdo4kI0wHOxuPx6MSJEwoPD1dCQoLpOEHj8/lUX1+viIgIhYU552y7U8ctSaWlpWpoaFB4eLjat29vOk7QOHWfO3XcTj3OJefuc6eOu6ysTA0NDfJ4PKajnCEkZ/gAAADQfJxTuwEAAByKwgcAAGA5Ch8AAIDlKHwAAACWo/ABAABYjsIHAABgOQofAACA5Sh8AAAAlqPwAQAAWI7CBwAAYDkKHwAAgOUofAAAAJaj8AEAAFiOwgcAAGA5Ch8AAIDlKHwAAACWo/ABAABYjsIHAABgOQofAACA5Sh8AAAAlqPwAQAAWI7CBwAAYDkKHwAAgOUofAAAAJaj8AEAAFiOwgcAAGA5Ch8AAIDlKHwAAACWo/ABAABYjsIHAABgOQofAACA5Sh8AAAAlqPwAQAAWI7CBwAAYDkKHwAAgOX+DzYGOZDKitwpAAAAAElFTkSuQmCC\\n\",\n \"text/plain\": [\n \"