diff --git a/IPython/frontend/html/notebook/handlers.py b/IPython/frontend/html/notebook/handlers.py index c006e46..7aa3c81 100644 --- a/IPython/frontend/html/notebook/handlers.py +++ b/IPython/frontend/html/notebook/handlers.py @@ -281,7 +281,7 @@ class NotebookHandler(web.RequestHandler): last_mod, name, data = nbm.get_notebook(notebook_id, format) if format == u'json': self.set_header('Content-Type', 'application/json') - self.set_header('Content-Disposition','attachment; filename="%s.json"' % name) + self.set_header('Content-Disposition','attachment; filename="%s.ipynb"' % name) elif format == u'py': self.set_header('Content-Type', 'application/x-python') self.set_header('Content-Disposition','attachment; filename="%s.py"' % name) diff --git a/docs/examples/newparallel/helloworld.ipynb b/docs/examples/newparallel/helloworld.ipynb index b7d16db..8327a90 100644 --- a/docs/examples/newparallel/helloworld.ipynb +++ b/docs/examples/newparallel/helloworld.ipynb @@ -1,68 +1,63 @@ - - - helloworld - 2 - - - - - # Distributed hello world - -Originally by Ken Kinder (ken at kenkinder dom com) - - - from IPython.parallel import Client - python - 3 - 1 - - - - rc = Client() -view = rc.load_balanced_view() - python - 4 - 1 - - - - def sleep_and_echo(t, msg): - import time - time.sleep(t) - return msg - python - 5 - 1 - - - - world = view.apply_async(sleep_and_echo, 3, 'World!') -hello = view.apply_async(sleep_and_echo, 2, 'Hello') - - python - 6 - 1 - - - - print "Submitted tasks:", hello.msg_ids, world.msg_ids -print hello.get(), world.get() - python - 7 - 0 - - - stream - Submitted tasks: [&apos;9e533683-d54e-4588-929e-984dd3eb6dc4&apos;] [&apos;90395f15-723f-44df-a743-a5d88cdeb6a0&apos;] -Hello - - - stream - World! - - - - - - - +{ + "nbformat": 2, + "name": "helloworld", + "worksheets": [ + { + "cells": [ + { + "source": "# Distributed hello world\n\nOriginally by Ken Kinder (ken at kenkinder dom com)", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "from IPython.parallel import Client" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "rc = Client()\nview = rc.load_balanced_view()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "def sleep_and_echo(t, msg):\n import time\n time.sleep(t)\n return msg" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 6, + "input": "world = view.apply_async(sleep_and_echo, 3, 'World!')\nhello = view.apply_async(sleep_and_echo, 2, 'Hello')\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Submitted tasks: ['9e533683-d54e-4588-929e-984dd3eb6dc4'] ['90395f15-723f-44df-a743-a5d88cdeb6a0']\nHello" + }, + { + "output_type": "stream", + "text": "World!" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "print \"Submitted tasks:\", hello.msg_ids, world.msg_ids\nprint hello.get(), world.get()" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/newparallel/options/mcpricer.ipynb b/docs/examples/newparallel/options/mcpricer.ipynb index 7a68887..059ef8a 100644 --- a/docs/examples/newparallel/options/mcpricer.ipynb +++ b/docs/examples/newparallel/options/mcpricer.ipynb @@ -1,2054 +1,241 @@ - - - mcpricer - 2 - - - - - # Parallel Monto-Carlo options pricing - - - ## Problem setup - - - import sys -import time -from IPython.parallel import Client -import numpy as np -from mckernel import price_options -from matplotlib import pyplot as plt - python - 1 - 1 - - - - cluster_profile = "default" -price = 100.0 # Initial price -rate = 0.05 # Interest rate -days = 260 # Days to expiration -paths = 10000 # Number of MC paths -n_strikes = 5 # Number of strike values -min_strike = 90.0 # Min strike price -max_strike = 110.0 # Max strike price -n_sigmas = 5 # Number of volatility values -min_sigma = 0.1 # Min volatility -max_sigma = 0.4 # Max volatility - python - 2 - 1 - - - - strike_vals = np.linspace(min_strike, max_strike, n_strikes) -sigma_vals = np.linspace(min_sigma, max_sigma, n_sigmas) - python - 3 - 1 - - - - ## Parallel computation across strike prices and volatilities - - - The Client is used to setup the calculation and works with all engines. - - - c = Client(profile=cluster_profile) - python - 4 - 1 - - - - A LoadBalancedView is an interface to the engines that provides dynamic load -balancing at the expense of not knowing which engine will execute the code. - - - view = c.load_balanced_view() - python - 5 - 1 - - - - print "Strike prices: ", strike_vals -print "Volatilities: ", sigma_vals - python - 6 - 0 - - - stream - Strike prices: [ 90. 95. 100. 105. 110.] -Volatilities: [ 0.1 0.175 0.25 0.325 0.4 ] - - - - - Submit tasks for each (strike, sigma) pair. - - - t1 = time.time() -async_results = [] -for strike in strike_vals: - for sigma in sigma_vals: - ar = view.apply_async(price_options, price, strike, sigma, rate, days, paths) - async_results.append(ar) - python - 7 - 1 - - - - print "Submitted tasks: ", len(async_results) - python - 8 - 0 - - - stream - Submitted tasks: 25 - - - - - Block until all tasks are completed. - - - c.wait(async_results) -t2 = time.time() -t = t2-t1 - -print "Parallel calculation completed, time = %s s" % t - python - 9 - 0 - - - stream - Parallel calculation completed, time = 2.57819604874 s - - - - - ## Process and visualize results - - - Get the results using the `get` method: - - - results = [ar.get() for ar in async_results] - - python - 10 - 1 - - - - Assemble the result into a structured NumPy array. - - - prices = np.empty(n_strikes*n_sigmas, - dtype=[('ecall',float),('eput',float),('acall',float),('aput',float)] -) - -for i, price in enumerate(results): - prices[i] = tuple(price) - -prices.shape = (n_strikes, n_sigmas) -strike_mesh, sigma_mesh = np.meshgrid(strike_vals, sigma_vals) - python - 11 - 1 - - - - Plot the value of the European call in (volatility, strike) space. - - - plt.contourf(sigma_mesh, strike_mesh, prices['ecall']) -plt.axis('tight') -plt.colorbar() -plt.title('European Call') -plt.xlabel("Volatility") -plt.ylabel("Strike Price") - python - 12 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x2c54750&gt; - 12 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdjQUFBRWFDQVlBQUFETkJKYVNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6czNYZDBW -SFgrLy9Ibm5abk1wUGRPR2hCcWVrSUtoRlNLdEFpc3FMQkhYWVhkClZYQVY2Mzczck4vZmQ4SHZy -cTZ1KzdVZ1NuSEJnb2h0RlJSQlFFM29DU1doaHA3UU5RUklTRWdqeWYzOWdXUkJVbWFTbWJsVFBv -OXoKY2s2bTNEdnYzQ1N2dWZPNW55TEpzaXdqQ0lJZ1dCU1YwZ1VJZ2lBSXR4UGhMQWlDWUlGRU9B -dUNJRmdnRWM2Q0lBZ1dTSVN6SUFpQwpCUkxoTEFpQ1lJRkVPQXVDRVVWRVJQRDk5OThETUdmT0hP -Ni8vMzZGS3hLc2xRaG5vVU1SRVJFNE96dmo1dWJXOXZYNDQ0OHJYWmJKCkZSWVdjc2NkZHhBVUZJ -U2ZueC9aMmRsODlkVlhlbTByU1ZLNzN3dUNvVVE0Q3gyU0pJbXZ2LzZhbXBxYXRxODMzbmpENFAz -SXNveTEKakhWYXUzWXRvMGFOb20vZnZxeGR1NVpUcDA3eDV6Ly9tWTgvL3RqZ2ZWbkx6eXhZSmhI -T1FyZjg4aU43ZVhrNUtwV0sxdFpXQUxLegpzM25oaFJjWVBYbzBIaDRlbEpXVmNlVElFUjUvL0hI -Q3dzS1lQWHMyUjQ4ZWJkcytPenVidi8zdGIrVG01aElTRXNMZi8vNTNybDY5CjJ2YjQ4ZVBIK2VN -Zi8waDRlRGkvKzkzdk9IandZTnRqUzVjdVpmRGd3WGg2ZWpKcDBxUmJ6bkx6OC9NSkNRbGgwYUpG -OU9uVGgvVDAKZE5hc1dkUGh6L1hZWTQ4eGJkbzAzbnJyTGVMaTRuQnljbUwwNk5Fc1c3YXNyWTdj -M0Z4OGZYMkpqWTNscFpkZW9yYTJ0dWNIVkJCKwpRWVN6MEttT3p2NzArY2crZi81OFpzK2V6YVZM -bHdnTkRXWDA2TkVFQkFSUVhGeE1VRkFRbzBlUHZ1WDViNzc1Sms4KytTUUZCUVZzCjJMQ0J2Lzcx -cndDMHRMUXdiTmd3Qmc4ZXpQNzkrOG5JeU9DT08rNW8yeTRnSUlEVnExZHo0Y0lGcGs2ZHlyMzMz -a3RkWFYzYjR4VVYKRlpTVWxGQllXTWhERHozRTczLy8rM2JyUFgvK1BNZVBIK2ZPTysvczlPZDY3 -cm5uT0gvK1BNdVdMZU9UVHo1aHhZb1ZYUjRMUVRDVQpDR2VoUTdJc00yblNKTHk4dk5xKy92V3Zm -N1U5MWhsSmtoZ3paZ3pqeDQ5SG85R3dmLzkrbXBxYWVPNjU1L0R4OGVGUGYvb1QxNjVkCm83aTR1 -RzJiVWFOR2taZVhSOSsrZmZuakgvL0kxMTkvRGNEMzMzOVBYRndjRHo3NElHNXVianp3d0FQNCt2 -cXlZOGNPQU1hTkcwZnYKM3IxeGNIQmc2dFNwSkNVbDNYSjIzTnJheXZQUFA0K2ZueDhQUHZnZ1ZW -VlZIRDU4K0xhYVQ1OCtEY0N3WWNNNi9MbjY5dTNMaUJFagpjSEJ3SURZMmxwa3paN0p5NVVvOWo2 -Z2c2RStFczlBaFNaSll1WElsbHk5ZmJ2dWFNV05HMjJOZFNVMU5iZnQreTVZdEpDWW0zdkw0CmtD -RkQyTHg1Yzl2KzR1UGoyeDVMU0VqZ3dJRUQxTmJXc21IREJqWnQyblRMbThTeFk4Zll1SEVqQUpz -M2IyYmF0R21FaDRmajZlbEoKVVZFUmUvZnViZHRYVUZBUXZyNitBR2cwR254OWZUbDc5dXh0OVlh -R2hnS3dkZXZXRG4rbTJ0cGFacytlVFhKeU1oNGVIano1NUpPMwp2SllnR0lzSVo2RmJldlhxeFU4 -Ly9kUjIrK1l6NEJzMEdrM2I5OE9IRDJmMzd0MjNQTDVyMXk0eU1qS0E2MmZpTis5ajkrN2RSRVZG -CjRlcnFTbTV1THRuWjJiZThTZFRVMVBEMDAwOGp5eklQUC93d1dWbFo3TjY5bTZxcUtsSlNVcnAx -TVM0b0tJakl5RWhXclZyVjRYUG0KejUvUDRjT0grZVNUVDZpcXF1TFZWMTl0YTJjWEJHTVM0U3gw -cXFPUXk4M05aZnYyN2V6ZXZadkRodzh6Zi83OFRyZU5qNDlIcTlYeQo0b3N2VWxsWnljc3Z2NHhH -bzdubGJQbTc3NzVqOWVyVm5EaHhnbGRlZVlXOHZEd0FSbzRjeWI1OSszai8vZmU1ZlBreURRME41 -T2ZuCmMvYnNXWnFhbXJodzRRSUJBUUU0T2pxeWRPbFNDZ3NMdS8zenpwczNqeFVyVnZEWVk0K3hk -KzllNnV2citlNjc3OW91ZnA0N2R3NHYKTHkvOC9mM1pzV01IYjc3NVpyZGZTeEE2SThKWjZGUmVY -dDR0L1p6dnV1c3VBUHIwNmNPY09YTzQ1NTU3bURadEdyLzk3Vzl2YStyNAo1ZTIxYTlkeTl1eFpF -aElTT0gzNk5HdlhycjNsdVk4Kytpai85My8vUjBaR0JqazVPVHozM0hNQXFOVnE4dlB6T1h6NE1F -bEpTWVNGCmhmSFBmLzRUV1piUjZYUzgvdnJyUFAvODgwUkdSckp6NTA2bVRwM2FhUjJkdWVPT08x -aS9majFIamh4aDlPalJoSWFHOHJlLy9ZMWYKLy9yWEFEejU1SlBVMTljVEhoN08wMDgvemF4WnN6 -cmN2eVJKb3ErejBHMlNtR3hmc0FRNU9UbmNmLy85VEo4K1hlbFNCTUVpaURObgp3V0tJOHdSQitB -OFJ6b0xGRUUwQWd2QWZvbGxERUFUQkFobjl6SG42OU9rRUJBUVFFeFBUZHQrbm4zNUtWRlFVYXJY -NnR1NVViN3p4CkJ2MzY5V1B3NE1GdGZWNEZRUkNzMWVuVHA4bkp5U0VxS29yczdHeVdMMTkreStQ -Ly9PYy9VYWxVWExwMHFkUDlHRDJjSDNyb29WdXUKd2dQRXhNVHd4UmRma0ptWmVjdjlGUlVWdlBY -V1czejMzWGU4L2ZiYmRqSGptU0FJdHMzQndZRlhYMzJWQXdjTzhObG5uL0hmLy8zZgoxTlRVQU5l -RGUvMzY5WVNIaDNlNUg2T0hjMFpHQmw1ZVhyZmNOM0RnUVByMzczL2Jjd3NMQ3hrelpneGhZV0Zr -WldVaHkzTGJEeUVJCmdtQ05BZ01EMi9ydisvcjZFaFVWeGM2ZE93RjQ2cW1uZVBubGwvWGFqNklY -Qkl1S2loZzBhRkRiN1FFREJsQlVWS1JnUllJZ0NNWnoKN05neERodzRRRXBLQ2l0WHJpUWtKSVRZ -MkZpOXR0VjAvUlRUYWU5YVpIdFg3TVZWZkVFUUROSFRmZzd1a29TK24rRmRYVjNiL2NSZgpVMVBE -dmZmZXk2dXZ2b29rU2J6d3dndXNYNzllN3hvVkRlZlUxRlEyYk5qUWR2dlFvVU1rSnllMysxeHJ1 -MVM0QkREMmNBcS9POUlKCkR6aUc3dHBQWFQrNUcrYnNnemt4WFQvUDdDSUd3NFJxY0xsMXNxSTVD -MkRPSXdyVjFFMjJYck9zOXFIU0w1TTlQdGVvMHpTWnRyQU8KVEpUVzlYZ2ZOZWlmT2NQYm1jLzcy -clZyM0hYWFhkeC8vLzFNbkRpUmZmdjJVVjVlVGx4Y0hBQm56cHdoS1NtSm9xSWkvUDM5Mjkydgoy -Y1A1NW5lTGxKUVVubjMyV1U2ZE9zV0pFeWRRcVZTNHVibVp1eVNMNTVFU1Q4VGdPbHdidDhBMXBh -c3hzOHdNU05rRzZtYWxLeEU2CjBhb041NXhmQ251OWEybFdYZTE2QXhzbXl6SXpac3dnT2pxYUo1 -NTRBcmplS2VMbWljSjY5KzdOcmwyNzhQYjI3bkEvUmcvbmFkT20KVVZCUVFHVmxKYUdob2N5ZE94 -ZHZiMjhlZSt3eEtpc3JHVDkrUEFrSkNheFpzNGFBZ0FCbXpweEpibTR1V3EyV2hRc1hHcnNjcSti -VQpyeThSNlo1NE5leENhbFM2R2pOemNvZkpneUIwazlLVkNKMW9kb3FpM0QrYWd4NlhRYXBXdWh5 -THNHWExGcFl0VzBac2JDd0pDUWtBCnZQRENDNHdkTzdidE9mbzAxVnJGSUJSSmtxeXVXYU1ZU09q -bXRnNytmb1RkTVlDQWExdVFKUFA5ZXZKL2d1d0FzNzFjeDBJSHdKMTEKNEhxNjA2Zmw3NFRzSVdh -cXlVaHNwZVpHdDZFYzhRK2x6T1V5V05nMW9ZblN1aDYzT1J1U09jTXh6ZFFESXB3dGlNclptVjRU -a3VubApVSVM2dFY3cGNwU1JuZ0ZEdDRQYTN0cHZMSitNaGpxdkxBNzRlZktqaytWMmViV1ZjRmIw -Z3FEd001V0tnREhEQ1BNOWpQWmFBZGpqCjNPMk9yakFwR3NKRk00YWxrVlV1Vkh0bnM5ZFBRNVcy -SHZUdXh5RDBoQWhuaFhtbER5RzgzeVZjR2pmYjM4VytHMEw2UVY0VHVHOVgKdWhMaEpyTEdqd3Ur -R2V6MWFmcTU1NFc5L29FcVE0U3pRbHdHRHlBaXhRblB4cDFnYnhmN2JqWjBPQXpiQVJwN1BnaVdw -VlhibTdQKwp5ZXp6dWtLejZ2WnVZb0o1aUhBMk0yMXdFT0VqZStQWHROWCtlbURjVE9jTUUrT2h0 -ejFjVGJBT3pjNHhsUGtOcHRUak1raFZTcGRqCjkwUTRtNG5helkyUThZa0VxYmFodm5ZZUxPc0N0 -M2tGOVlGSk1yaDN2TXExWUQ0TmJ1a2M4ZTlGdWN0bGtDNHJYWTd3TXhIT3BxWlcKRXpndW5WRFAv -V2liQzhEaSs4YVlXRW82RE44RkRnMUtWMkxYWkRSYzljcmhvSi83enowdnFyRHZNd2JMSThMWmhM -eXpVb21JK0JHbgpwbzFnN3dQY0hCemh6aVRvdTBWa2dJSmtsU3RWUGpuczlWVlJMWHBlV0RRUnpp -YmdHanVZaUVRVkhvMkZvTXowQXBZbE1BSW1hY0JqCmk5S1YyQzFaRTBDRmJ6cDdmQnRwVU52enhR -N3JJY0xaaUhTaElZVG5odURidU4yK0wvYmRiTWhReU53RERuVktWMktYV25SOU9ldVgKeEQ2dmFs -cEV6d3VySXNMWkNOU2VIb1NPalNPSXJhaWF6b2lQN1FBT09waVFEUDAyaStPaGdHdk84WlQ1RCtD -USt5WFI4OEpLaVhEdQpBVW1ySldoY0dpR3VKVGkwYkZTNkhNdmhId2FUSE1GTGRKTXp0d2IzNFJ6 -MkQrYWtTeFZ3R2ZIT2FMMUVPSGVUNzRpaGhJZWN3ckZwCkk3UW9YWTBGU1VpRDdQMmdGUitoemFu -V2F5VDcvZDJwY0t6bGVzOEx3ZHFKY0RhUWUySU1FWEhOdURWc0V4ZjdicVoyZ0FscE1HQ1QKT0Zr -em8xWnRPQWRDVXlsenJRTEVHNkl0RWVHc0o4ZmVFVVJrK2VQZFVJUWt1dWpleWpjRUpydUN0NWkw -eUZ4a0pLcDl4N0U5c0pVbQp0VGhUdGtVaW5MdWc4ZkVoYk14Z0FscTNvR29zRjJlRnZ4U1hBam1I -UUhkRzZVcnNScXUyTi90Q2gzRFNWVXh1Yjh0RU9IZEE1ZWhJCjhQaFVlam50UXRNaXpnaHZvOWJB -dUdFd2FLTjR3eklUR1lrcXZ3bHNDMnltV1NXQzJkYUpjUDRsU2NKdjlMQ2ZGMUl0RUJmNzJ1TWQK -REwveUJCL1JROFZjV25SOTJSdWF5R2tYRWNyMlFvVHpUVHhTRTRnWWZCWFhCanRjU0ZWZjBVTmc1 -RkhRblZPNkVyc2dvK0t5L3dTMgpCelNKczJVN28xSzZBRXZnM0QrU3dROGxFZFc3R05lR0kwcVhZ -NWxVYWhpZkJlTjJnazZFaERtME9QYW51Tit2MkJ6VVFMUEtIcGZICnNVNm5UNThtSnllSHFLZ29z -ck96V2I1OE9RQ2Zmdm9wVVZGUnFOVnFkdS9lM2VWKzdQck0yU0hBbjdEUi9hOHZwTm9naTdiVGpu -Z0cKd0svOHdLOUE2VXJzZ295YWkvNTVGQWJVMDZLNm9uUTVnb0VjSEJ4NDlkVlhpWStQcDdLeWtw -U1VGUEx5OG9pSmllR0xMNzdnNFljZgoxbXMvZGhuT0toY1hlbzFMb3BkMkIrcG1NYnk0VTRNVFlW -UVpPTzVYdWhLNzBPSTRrT0xRYU00NWkxQzJWb0dCZ1FRR0JnTGc2K3RMClZGUVVPM2Z1SkNjbng2 -RDkyRmM0MzFoSTFlY1EydWFOOXJtUXFyNGtGZHd4SEdKRmJ3eHprTkZRR1pCSG9YOGRyZUpzMldZ -Y08zYU0KQXdjT2tKS1NZdkMyZGhQT1hzT0hFQkY1Q2VmR3pXSnU1YTU0K01Qa0lBZ1F2VEhNb2Rs -cE1NV2hnem52SkVMWmtxUlBhLy8rL0o4Zwp2K0ttT3pyNFVGbFRVOE85OTk3THE2Kytpb3VMaThH -dmIvUGhmSDBoVlVleGtLcStCc1REbU5QZ3VFZnBTbXllTERsd0lTQ1BJdjlhCldpVVJ6TllpTytE -NjF3MXoyd25uYTlldWNkZGRkM0gvL2ZjemNlTEVicjJPellheldFalZRSklFb3pJaHJrRDA0VEdE -WnFkb2RvY08KK0htSktNR1d5TExNakJremlJNk81b2tubnVqd09WMlJaSDJlcFRCSmt0QjM4a20x -dXpzaDQrSUpVbTFITFl1WmlmVGk1Z08vQ29YQQpFcVVyc1hteXBPT253UEhzOEt0RkZtMzVKakZS -V3FkWCtIVkdraVRrRHBvMWJudnVSN2VHN2ViTm04bk16Q1EyTmhaSnV2NUxmdUdGCkYyaHNiT1N4 -eHg2anNySVNEdzhQRWhJU1dMTm1UY2Y3dFpWd2xqUWFBc2NPSmRSalB3NHRZZ1ZodmZXTGhiSG53 -ZW1DMHBYWXZHdk8KY2V3Szdmdnp0SjZDcVNnZHpzWmlFODBhM3RtcFJJU2Z4Nmxwa3hodWJZaVJX -WkN3RVZRVy8vNXMxV1RKa1IrREpyREQ5d3BJSXBnRgovVmgxT0x2R1JkRTdVY0s5UVN5a2FoQlhi -L2hWQkFTSlFTV21kczBsa1IyaDRWVHF4QVUvd1RCV0djNjZzRkFpY25yaDA3aGR6SzFzCnFMN1JN -TzRDT0hjOWZGVG9QbGx5NG56UWVIYjZWb04wVmVseUJDdGtWZUdzOGZJa1pHd3NRZkpXVkUybnhl -QUlRK1ZrUXRKbVVJdlIKTjZaMHpXVUlSYUdoWE5SZFFmeVJDdDFsTmVFY1BEbVRVSmNTTkdJaFZj -TzVlTUxrU09nbGpwMHB5U29YemdhTlpiZVBPRnNXZXM1cQp3cm0zbzFoSXRWdDZENGJ4VmVDeVUr -bEtiRnFUYXdxRm9jRmMxb3F6WmNFNHJDYWNoVzdJeW9Ua0xhQVc3MnFtSXF2Y09CTThobUx2Cktw -RHFsQzdIcm1tSm80QTRZSjNTcFJpRkNHZGI1T1FPa3dkQ3FHakdNS1ZHdHpRS1F3S28wbFlqenBh -Vm8yTXcyMGlpQ0dlbFN6RXEKRWM2Mkpud2dUS2dGMXlLbEs3Rlpzc3FEVTczdVlJL1haWkRxbFM3 -SGJqa1N5VTVTMll5cjBxV1loQWhuVzVLUkFhbmJRUzNXMkRLVgpCcmQwdG9mNmNNV2hDbkcyckF4 -SEl0akhVTDdERFZ2K0hZaHd0Z1dPcmpBcEdzTEZLdUdtSXFzOU9SazhtcjFlbHhHZDY1V2hJNFFq -CkRHTU5udGh5S044Z3d0bmFoZlNIT3h2QWJidlNsZGlzQnZjTXRvVjRVU1BPbGhXaEk0QnlNdmdL -TDFydGFNcEVFYzdXYk5od0dGb0UKR2pGMjNSUmt0VGRsdlVheTMxT2NMU3RCaXcvbnlPUUxmR214 -bzFDK1FZU3pOZEk1dzhRNDZLM3ZSS3FDb2VvOXN0ald5NTFhY2JacwpkZzU0VUVrVy95YUFSanNN -NVJ0RU9GdWI0RWlZMkF6dTI1U3V4Q2JKR2wrTzk4cmxvR2NWWXVrYzg5TGdTaldaL0p0ZVhMWGpV -TDVCCmhMTzFjSFNGM0VRWXZCWFVZaEZFVTZqenpHVmJMeGV1YXFxVUxzV3VxSEdpaml5V0U4SVYx -RXFYWXpGRU9GdUR0SFJJT1F4T1lsQ0oKS2NnYWY0NkZaRlBxSWM2V3pVbUZqaWFHOHhtOXFSU2hm -QnNSenBhc2R4U01iQVh2TFVwWFlyT3VlbzFnVzdBVGRlSnMyV3drTkxTUwp6aGRFY2w1RVVJZU0z -ckF6ZmZwMEFnSUNpSW1KYWJ1dnBxYUdpUk1uRWhZV3hxUkprNml0dmI0YVJIbDVPVTVPVGlRa0pK -Q1FrTUNzCldiT01YWTUxOGd5QWU0YkIzUWZBdTFUcGFteVNyQW5rY01ROWZCZW1wazcwZGpFTENS -VXEwdm1HQjFqSVFCSE1YVEI2T0QvMDBFT3MKWGJ2Mmx2dmVmdnR0d3NMQ09IcjBLQ0VoSVN4WXNL -RHRzY2pJU0lxTGl5a3VMdWF0dDk0eWRqbldSYU85dm5UVTlCcm92VlYwRWpDUgpXcTlSckIrUXhH -RVBjYlpzSGhJYVVsblBiM2lMYUU3aW9IUkJKdFhlQ2VyQmd3ZVpNR0VDOGZIeDVPWGxVVnJhOVVt -WDBjTTVJeU1ECkx5K3ZXKzRyS2lwaXhvd1o2SFE2cGsrZlRtRmhvYkZmMXZyRnBjREQvcEJVQUE1 -aWRqTlRhSFVJcHJUM3ZYd2ZKdEdnRVVQY3pjR0IKSkRieUc5NGtubU5vbFM3SExObzdRWDMrK2Vk -NTRJRUhLQ2twNGRlLy9qWFBQLzk4bC9zeHkrZUtIVHQyTUhEZ1FBQUdEaHhJVWRGLwpKdVVwS3lz -alBqNmUxTlJVWnMyYVJWeGNuRGxLc2h6QmZXR1VHd1NLaVlwTXFjYjdEcllGYTJoUWk1WFp6VUZI -REFVa1VvS2owcVdZClhVWkdCdVhsNWJmYzUrSGh3Y1dMRjJsdGJlWGl4WXUzbmNDMnh5emgzTkd5 -NGNIQndadytmUm92THkvV3JGbkQvZmZmejk2OWU5dDkKN3B4OS8vaysyeCt5QTB4UnFabU56b0k0 -c2ZxMUtiVnF3eWdOU2VPNFd4VWd6cFpOelpGSXRwRkdJUzVtZTgyTCtmdTVsSC9BK0R2Vwp0WDkz -L28vWHZ3enhqMy84ZzVTVUZQNzBwejhSSEJ4OHl3bHFSOHdTenNuSnlaU1dscEtRa0VCcGFTbkp5 -Y2tBYUxWYXROcnJIM1hHCmpoM0xjODg5eDdGang0aU1qTHh0SDNOaWJydkx1dVZtUW9KWS9kcFVa -RFJjOGg5UFlVQVR6U3JSdG14cU92dzVTamJmS0RBcGtVOTIKTkQ3WjBXMjNqODM5eERnN2ZxTDl1 -N04vL3JwaGJuelh1NW8rZlRxUFBmWVlEei84TVBQbnoyZkdqQmw4OGtubmRacGxHRTVxYWlwTAps -aXlodnI2ZUpVdVdrSmFXQmtCbFpTVXRMZGRYNmRpOWV6ZjE5Zlh0QnJQTlNVdUhJYUxQc3FsY2M0 -NW5SLytKYkFtcXAxa2xWb0V4CkpRMHUxRENCdDVuSU4zZ2hybUszYi9QbXpVeWZQaDJOUnNPTUdU -UFl1TEhyLzMramgvTzBhZE1ZTm13WVI0NGNJVFEwbEtWTGx6SnoKNWt4T25UckZnQUVET0h2MkxJ -ODg4Z2dBR3pkdUpDNHVqdmo0ZUY1NDRRVVdMbHhvN0hJc1Qxd0taSWllR0tZZ3F6dzRIWElQYXlM -OQorTkdwUnVseWJKcUVHcGxzVmpDTkQrbEZreGh1M2FtY25CeFdyVm9Gd01xVkt4azFhbFNYMjBo -eVJ3M0NGa1NTSk9ScFNsZGhCUDNpCjRNNVNNWXVjQ2RSNTVsQVk3RXFOZ3hqaFoycGFFbGxESEVj -dHRQZkZHdW11RHE5ejZVdVNKT1FTUFo4YmYrdDF0V25UcGxGUVVFQmwKWlNVQkFRRTgvL3p6cEtT -azhOZS8vcFdEQnc4U0hSM04vL3QvLzYrdGswU0greFhoYkNhaEEyREtXZERXS2wySlRXblZobks0 -MXpDTwp1b3RlR0tibVNCK0tHTXBXQzE4V1N1bHdOaFl4Uk1jYy9NUGdWNVVpbUkzc3NsOGVoUUhO -TkludWNTYWx4WWR5Y2xpRk42STl6bnhFCk9KdWFad0RjMHdLT0Y1V3V4R2JJS25lT2hJMFJJL3hN -VEkwVE5XVHpMaUUwaURabHN4UGhiRXJPSGpEVkZWeU9LMTJKeldoeDdNLzIKaUdndTZrUXdtNDRL -aVhRK1pRQVZZclk0eFlod05oV3RFMHdMQVE4VGRJNjNVM1dldVd3TTBkR2tGczFEcHFJbGx2VWtV -dHJSQ0F6QgpiRVE0bTRKS0RmY09CdDlkU2xkaUUyUTBuQStleEU3ZmFwQkV2MlZUMEJGR0NjTXB3 -RTNwVW9TZmlYQTJoU2twRUN5V2tUSUdXUlBBCjN2Qk1UcnBXSXk1R0daOERYcHdsaHkveHNhdVZy -YTJCQ0dkanV6TURlbTlTdWdxYmNNMGxrYzNoSWRRNFZDdGRpczFSb2FPZWJENGcKVEt6WFo2RkVP -QnZUeUV3WUpJWmxHME9WNzNnMkIxK2pWV3BRdWhRYkk2RW1qUzhaekZueDcyL1J4Ry9IV0lZTmgw -UVJ6RDBscTV3cApDNW5BZmkvUkc4UFlkQXptQjVMWmE0ZlRlRm9qRWM3R2tKQUs2WnRGazJnUHRX -b2oyQm1SeEk5T0lwaU5TVWN2OXBQSmQ3Z2gva2l0Cmh3am5uaG9ZRHlOMm1XbCtQOXZWNEQ2Y2pX -RWVOS2pGaEVYRzRvQUhQNUhENS9qUkl2NUFyWTRJNTU0SUh3VGpqb0M2V2VsS3JKYU0KeElYQXlX -ejNyd0ZKVEladkRDb2NhQ1NMNVVSd1JRd2lzVm9pbkxzck1BSW0vU2pXKytzQldlMUZhZGdvanJs -WElUNXVHNGVHVkw0aQp5dVlYVWJVSElweTd3eXNRcGpTQ281aHdwN3VhbmFMWUZ0R1B5MXJSdm13 -TU92cXptVlIyNGF4MEtZS1JpSEEybEtzWFRIVUNsektsCks3RmF0VjZqMlJpaW9sa2xQblgwbEFa -WHpqS2FML0JGZlBxd0xTS2NEYUZ6aHFsQjRINVE2VXFza2l4cE9kMXJJaVhlVlNDMUtsMk8KMWRP -UXdzZkVjRUg4RzlzazhWdlZsOW9CN2gwQVBzVktWMktWV2gxNnNTZGlHS2VkeFREc250TGl4MzVH -OGIyWUI4T21pWERXaHlUQgpsQ1FJMnE1MEpWYXB5VFdaVGVHQlhOV0lZZGc5bzZLRmJQNUZYekhr -Mmc2STM3QStKZzZIQ0JITTNYSEovMDYrN2VQRlZZMVkyNjhuCkhPbk5OdTVqTWYxRU1GdTQ2ZE9u -RXhBUVFFeE1UTnQ5YytiTUlTUWtoSVNFQkJJU0VsaTdkbTJYK3hHLzVhN2NrUVVEeEVSR2hwSlYK -Ymh3TnY1Zk5RUTNJb2hXajIxVG9xQ0dQZVl4a0QwNUtseVBvNGFHSEhyb3RmQ1ZKNHFtbm5xSzR1 -SmppNG1MR2pCblQ1WDVFczBabgpNaklncmtEcEtxeE9peTZTb29oWUxvaXVoajJpSTRhVkpGTXUr -aXhibFl5TURNckx5Mis3MzlCRllNV1pjMGVTaHNMUVRlTGFsWUhxClBMSlozNjhmRnh6RmFpWGQ1 -WUFIWjdpYjF4a3FndG1HekpzM2o3UzBORjU2NlNWcWFycWVwa0NjT2JkbmNDTGtGSWxnTm9DTW1o -K0QKSnJIRDc0cFlyYVFIVktUeklZTzRKSVpkSys2cXR2MEJQWnVLV3RpMDQrYXVvRjFQT3pCejVr -eis1My8raHl0WHJ2RHNzOCt5Y09GQwpubm5tbVU2MzZUS2NHeHNiK2ZMTEw5bTRjU1B6NTgvbjZO -R2pIRDU4bUFrVEpuUlprRlhxSFFWalMwRXRBa1pmc3NhUC9lRTVsTG1LCllkamRwU09ZbmVTeUJS -ZWxTeEYrOXQyZzRlMC9NQWhTZjNQVDdmbnJ1dHlYdjc4L0FCNGVIano2NktQTW1qV3I1K0g4bDcv -OEJWbVcKeWMvUEJ5QTRPSmdwVTZiWVpqZ0g5WUdKWjBCVHIzUWxWdU9hY3h4Ynd5T29Gc093dTBW -Q1F5TzVMQ1djUnRIS2FMUE9uejlQVUZBUQp6YzNOTEYrK25ISGp4blc1VFpmaC9NTVBQMUJZV01p -NmRkZmZIVnhjWEF4dTJMWUtQcjFneWxYUWliNjQrcnJpTTQ2TndTMjBxc1NiCldYYzQwcDl2R1Na -V3VyWXgwNlpObzZDZ2dNcktTa0pEUTVrN2R5NzUrZm1VbEpTZzFXckp6TXhrNXN5WlhlNm55M0Fl -TUdBQTFkWC8KQ2F6dDI3ZVRrSkRRcytvdGpac1AzS01CNTdOS1YySVZaTW1Sa3lGM3N0ZGJuQzEz -aHhwbkxqQ2FUL0JITkFQWm5vOCsrdWkyKzZaUApuMjd3ZnJvTTU4Y2VlNHhKa3laeDVzd1pjbkp5 -K09tbm4vamdndzhNZmlHTDVlZ0swM3pCL2JEU2xWaUZWbTA0dXlPR2NFNnNWdEl0CkRpVHhiK0xG -K24xQ2w3cjhDMGxPVHVhSEgzNWcxNjVkdExhMmtweWNiSTY2ekVPamhhbDl3V3VQMHBWWWhRYTNZ -V3dNODZKQkkxWXIKTVpRV0h3NHppbS94VUxvVXdVcDBlUVhpMy8vK04xVlZWU1FsSlpHY25FeFZW -UlZmZnZtbE9Xb3pMVW1DZXhJZ1FBUnpWMlFrTGdSTQpabDF2RnhvMFlyVVN3MGhBRnUveUt4SE1n -a0c2RE9lNWMrZmk2ZW5aZHR2VDA1TTVjK2FZc2liem1Kd09vWVZLVjJIeFpMVW5oM3ZmCnpiYkFx -OWZmMEFTOTZRaGxGL2V4Z0lGY0VUMHh6Q0tnMVhabTZ1dXlXY1BSMFpHNnVqcWNuYTkzeUs2cnEw -T3R0dklPOG1Nem9kOUcKcGF1d2VDMk9nOWdlTVlDTE90RytiQWdWRHRReWluZm9SYk1JWmJOd2wz -V29LZ2J6d2VGd3BVc3htaTdEK2U2NzcyYm16Sm5NbkRrVApXWlpac0dBQlU2ZE9OVWR0cHBHVkNU -RWltTHR5MVdza0JTRU9ZclVTQStrWXpHcFNPWVpXNlZMc2dsWlc0WGVsSDUrVzlxZTZ5YmFHCnVu -Y1p6ck5temVLVFR6N2hyMy85SzdJc00yWEtGT3NONStSaGtMcFI5RjdxaEN3NWNEWjRJcnQ5cXNV -d2JBTm9jT01Nby9rU0g4UWYKbUhtRTE0Znk3YUVveW1wc2M5MUVTYmFDRVNXU0pDRlA2K0ZPb29m -QW1OMmdGc3NqZFVUV0JMSW5Jb05UTG1JZ2ppRTBwUEl4MFdLNQpLRE1KYmZhbDVGZ01SUlZlN1Q4 -aFMrcnhRRGxKa2xncGo5YnJ1Uk9sZFNZWm1OZmhYOVBzMmJONS9mWFh5Y3ZMdSsweFNaSll0V3FW -CjBZc3htYjdSY01jK0VjeWR1T1l5aEUzaFFkUTZpR0RXbHc1LzlqQ1NmTEZjbEZuNHRicHk2VXcw -aThxRHNJZFBKeDJHOHdNUFBBREEKTTg4OGM5dTdnbVJOVisxN1JVTGVLUkFyY1hUb3NsOGVtNE1h -a1NWeGpQUWhvYUtaSE42aGoxaVZ4QXhjWlMyNnlvRjhkTGdQMTFydAo1M2gzR001SlNVazBOemV6 -YU5FaVB2endRM1BXWkR5K0lYQlhOZWl1S0YySlJaSlZMaHdQSGM5QlQ5RWJRMStPOU9FSE10aURv -OUtsCjJEeU5yQ0tvcGkrZkhSekFwU2I3dThEYWFTT1pScU9odkx5Y0N4Y3U0T2ZuWjY2YWpNUGRG -KzZWd09tQzBwVllwRlpkSDRvaTRxbHcKRk1Hc0R6V09YR0lVaXdta1Jad3RtMXg0UXkrK094VE5W -MWZzZHdyVkxxOWdSRVZGa1pHUndZUUpFd2dLQ2dMK3N4Nld4WEp5aDZuZQo0SHBFNlVvc1VyMUhK -aHREWFdsVWk5Vks5S0VsbHBVTTRhUllsY1RrZWpWN1Uzb2loZ1UvK2loZGl1SzZET2ZnNEdDbVRw -MktKRW5VCjFsckJQN09ERHFhRmc5YytwU3V4T0RJcWZncWFSSkZmRFVqTlNwZGo4Unp3NUFTaldZ -MG45bkFCU2trK3JjN1Vub3ZtblJPOUVNZjYKdWs3RCtmTGx5NlNscFpHWm1kazJRdENpU1NxNEp4 -YjhkaWhkaWNXUjFUNGNEQi9CY1RleFdvaytKSWF6aklGY0ZzdEZtWlN6N0lEcgpwUUY4WE5xWGhs -WnhyRy9XWWVQWjRzV0xpWTJOWmY3OCtmVHYzOTg2Smp2NjFWQUlFY0g4UzgxT01XenFQL3puWUJZ -Nm95T1lQZHpICjIwU0pZRFlodFN3UlZ0dUhUVHRHODk2Qi9pS1kyOUhobWZONzc3M0huajE3OFBi -MjVzU0pFOHllUFp0Smt5YVpzemJEak0rRVNERXMKKzVkcWZNYXdNVmltUmF4VzBpa0pEUTJNWUNs -aFlya29Fd3R2REdMamtXaSt2aXo2aDNlbXczQytldlVxM3Q3ZUFQVHAwNGV6WnkxNApsWkNjVEln -alJ3UVZBQUFnQUVsRVFWUVd3WHd6V2RKeEttUWllOFJxSlYzUzBaOTFZcmtva3d0cThlUkVXUXdM -emxsWnp5K0ZkQmpPCkowNmN1R1YwNE0yM0xXcUVZRm82Skl0Z3ZsbXJRd2pGRVdtY2RSYkIzQmsx -emxRd21rL0ZjbEVtNVNrNzBudytpaVhId2hESFdYOGQKaHZQS2xTdHZ1ZjMwMDArM2ZkL1pDTUhw -MDZlemV2VnEvUDM5MmJmdmVvK0ptcG9hN3J2dlBvcUxpMGxNVEdUWnNtVzR1cm9DOE1ZYgpiekJ2 -M2p3Y0hCeFl0R2dSdzRkM3NCeDVlMkpUSUdPcitIM2ZwTkV0alUxaHZ0UnB4TUNiempnd2hNK0k0 -N3lZRDhOa2RMSWE3OHNECldIRW9rcnBtK3puTzdXWGdzODgreTlkZmY0MlRreE9abVptOCtPS0xP -RGs1ZGJvZm8wOTh0R25USmx4ZFhYbmdnUWZhQ252NTVaYzUKZmZvMHI3enlDazgvL1RRUkVSRTg4 -OHd6VkZSVWtKbVp5YnAxNnlncksrUEpKNTlrOSs3ZHR4Zlozc1JIL2VMZ3psTFFOQm16Zkt0Vwo2 -VCtKcllGMTRzMnFFMXA4S0dVVTY4V3FKQ2Fqa2lHMFBvSlZCd2R6cms2QmtaUUtUM3pVWGdhdVg3 -K2VFU05HQVBEd3d3K1RscGJHCmpCa3pPdDJ2MGE5OFpHUms0T1YxNjJ4UlJVVkZ6Smd4QTUxT3gv -VHAweWtzdkw0Q1NXRmhJV1BHakNFc0xJeXNyQ3hrV2FhbVJvLzEKNlVMN3c0VGpJcGgvSnF2Y09S -eHhEMXVEUkRCM1RFSW1teVZNRnNGc1F1Rk5BWnc1TUlJRk94T1ZDV1lMMEY0R2pobzFDcFZLaFVx -bAo0bzQ3N3FDZ29LREwvWmpsczhhT0hUc1lPSEFnQUFNSERxU29xQWk0SHM2REJnMXFlOTZBQVFN -b0tpcHFlNGRwbDM4WS9Pb2lhSzFnClFJd1p0RGoyWjN0RXRGaXRwQk02d3RsTUpydXdncjc2Vmlx -Z3haMnpKMk5ZY0NaQTZWSXMzdUxGaS9udGIzL2I1ZlAwRHVlR2hnWWMKSGJ2M1RtaklSNHlPMnJQ -bjdBTTBEdUJZVGZiK2FyS0hkS3NVbTlMZ1BwejhNRGVheEREc0RxaG9aQ1NMQ1JmellaaUlzK3lB -N2tJVQo3eDNxamF6VXg3YmlmQ2pKTi9wdWZ5S28zZnNQNS8vSWtmd2ZBVEMwOGVUNTU1L0h6YzJO -dSsrK3U4dm5kaG5PSlNVbFBQZmNjeHc4CmVKQ3lzakpLU2twWXRHZ1JiNzMxbHQ0RkpTY25VMXBh -U2tKQ0FxV2xwU1FuSndPUW1wcktoZzBiMnA1MzZOQ2h0c2QrYVU0TWNIY0sKOU5taTkrdmFzbXJm -Y1JRRU40dlZTanFneFpjaXhyQWQrNTA0eDlUQzY4TDU4a0FVUDlZcjNIeVJrSDM5NjRaMzV4cGx0 -MTl3Wi9zUApaUC84ZGNQY3UvVGEzN3Z2dnN1MzMzN0xkOTk5cDlmenV6eWQrTnZmL3NaTEw3M1V0 -Z0ozZkh5OFh1MGxOMHROVFdYSmtpWFUxOWV6ClpNa1MwdExTQUVoSlNlSGJiNy9sMUtsVDVPZm5v -MUtwY0hQcm9HTjYwbERvTFlKWlJ1Sjg4RjBVQkY4VDdjc2RjR0FJSHpCSkJMT0oKQkxhNFUzczBr -d1U3azVRUFppdXhkdTFhL3ZHUGY3QnExU3E5V3lDNlBITStkKzRjMGRIUmJiY2JHeHM3bldkajJy -UnBGQlFVY1BIaQpSVUpEUTNuKytlZVpPWE1tOTkxM0h3TUdEQ0F4TVpHWFhub0pnSUNBQUdiT25F -bHViaTVhclphRkN4ZDJYRWptZmhGR1FIbllQZXp6CnVvdzRHTGRUNDhnNXh2T0ZXTWZQSkJ4bERX -NFhCL0grd2I2aW1hZ1ROekt3c3JLUzBOQlE1czZkeTRzdnZraFRVeE1qUjQ0RVlPalEKb1YyMlBu -VFpsVzd1M0xuRXg4Y3paODRjVnE1Y3lieDU4L0R3OE9DLy8vdS9qZmZUZEVHU0pPUVNzNzJjeGJv -UU1KbHRnVmVWTHNNaQpPZEtIMVdSeFZLeDZiUkxoRFNGOGZTQ0dNMWM3NzV0ckVZelVsVzZzL0xs -ZXoxMGozV1dTTlFTN2ZQdWJQWHMyeGNYRnRMUzBNSGJzCldEdzlQWG5zc2NlTVhvalF1VHJQSExZ -RmlBdC83V2xoQlBNWklZTFpCUHhiWFdrNlBwd0ZSU25XRWN3MnBNc3o1elZyMWpCMjdOaGIKN2x1 -d1lBR1BQUEtJU1F1N21iMmZPVGM3UmJNdU1wUm1sYmo0ZHpNSHZOakxXQXJFQXF0R3A1WFZlRjhl -eUxLRC9heHYzVDU3T1hQKwozLy85MzF1dUxyNzg4c3ZXTVgyb2paQTFBV3p1M1VjRTh5ODQwb2RQ -K1pVSVpoTUlid3hpWDhrb2x1NGZZSDNCYkVPNnZDQzRhdFVxCkpreVlnRmFyWmUzYXRSdzZkTWh5 -SmoyeWNiTGtTSEh2REs0NGlIa3licVlsbnNVa2k1V3ZqY3luMVlXTHAySlpjS3I5L3IyQ2VYVVoK -enI2K3ZxeGF0WW9SSTBZd1pNZ1FQdnZzczA0blBoS001MFRZUk00NFgxYTZEQXVUeFp2MHAxVUVz -OUU0eUNyOHF3Znc0WUgrMUxlSQpTZTh0UllmaDdPcnFla3NJTnpVMVVWWlcxaGJPVjY2SXN6bFRx -Z3lZeEFGUEVjdzNxMkVDSHhLTTZDWm5QR0ZOQWVTWHhyR3EybFhwClVvUmY2RENjcldJeFZ4dFY3 -NUhGMW9DcmlCQzZUb1VEWlV4bURWNWRQMW5RaTVmc1JPM3BXQmFXaXpjN1M5VmhPQjg2ZElpQkF3 -ZTIKTzRVblFHSmlvc21Lc21mTlRsSDhFT1lzaG1YL1RJTWJPNWhFb1ppMHlDalVza1JRVFQ4KzJq -K1FXanVhWTlrYWRmamIrZWMvLzhuaQp4WXQ1NnFtbjJtMWovdUdISDB4YW1EMlNOUUZzaVlpa1dh -ejNCNENPUUZZemxtT2kvN0pSaEY3elpkdWhlTDYrN0s1MEtZSWVPdTNuCjNOcmF5clp0MjBoUFR6 -ZG5UYmV4aDM3T3N1UklTV1FlcDUycmxTN0ZJamdTeVlka2MwR3NnTjFqN3JLTzVuT3hmSDQ4Qkx0 -b3dyQ1IKZnM2ZGZxNVJxVlE4K3VpamxKVFllREphZ0xMUU96a3QxdndEd0lFa0ZwQklnK2lSMFNN -cUdVSnErL0x4Z2NGVU5Ua29YWTVnb0M3LwordlB5OG5qampUZEU3d3dUcXZTZnlINHZFY3dBcmVR -d1h3UnpqL1ZxOXViSDBsd1dGc2VKWUxaU1hRN2ZkblYxcGE2dURwVksxYllnCm9ibTcwdGx5czBh -OVJ5YnJ3M1ZnOTMzSEphcklZMFVIRTV3TCtuR1Z0YWgrak9iam8rSFlSUk5HZSt5aFdRTkVsenBU -YW5ZY1JFR28KaTkzM3pGQ2g0emlUK1ZhczdkZHRrZ3hoZFJGOGZpQ0tDdzA2cGNzUmpLREx6NDd0 -cmVmWDZScC9nbDVralQ5YmV2ZW5TVzNmd2V5QQpCNFhjSTRLNUIzeGJYYWc2a3MyQ1hZa2ltRzFJ -aDJmTzlmWDExTlhWY2VIQ0JTNWR1dFIyZjBWRmhYNHJaQXNka2lVZEpSRlpWR3Z0CnUyZUdqbUJX -Y1FkbG9xdGN0MFhVaC9GaFNSeFhyb2wyWlZ2VFlUZ3ZYTGlRMTE5L25YUG56cEdVbE5SMmYzaDRP -RTg4OFlSWmlyTlYKNWFHVE9PMWkzME96ZFF6Z0F6SzRKTHJLZFl1VHJFRTZGOC9ieDhPVUxrVXdr -UzR2Q0w3eHhoczgvdmpqNXFxblhiWjBRZkNpLzBTMgpCTm4zSUJNTnlTd21ua2JSSTZOYmVqVjdz -ZkZBTWtmRWZCanRzNUVMZ2gzK2QrellzWVB6NTgrM0JmTTMzM3pEL2ZmZno5dHZ2MDFkClhaM1JD -N0VIRGU0WmJBbTA3MlBYekFqZUpFRUVjemRJTW9SVTkrZmRiVmtpbU8xQWgvOGh2Ly85NzlGcXI3 -Y0ZIanQyakljZWVvZ1IKSTBhd1o4OGUvdnpuUDV1dFFGdlI0amlJL0RCWE8rNHlwK0lpazNpSFNP -eTJpMWNQZU1pT05KNFl6dUk5MFRUTDRvM04waTFmdnB5cwpyQ3lpb3FKNDU1MTN1cldQRHR1Y1cx -cGE4UEh4QWE0M2JUejQ0SU04K09DRDNIZmZmWW9QNTdZMnNzYnY1NTRaOXRtY29jYVJRMHptCk84 -U2NEdDBSM2hUSUZ5VkovQ1I2WWxpRjZ1cHE1czZkeS9idDIzRndjQ0EzTjVlNzc3NGJEdy9EZWlS -MStCYnM1ZVhWMW55eGN1VksKcGt5WkFvQkdveEY5bncwZ1MxcjJSR1JUcGJYUFlIYkFpeTNjSzRL -NUd4eGtGVDRYNGxpd2ZhZ0laaXV5ZGV0V0VoTVQ4Zkx5d3RYVgpsWnljSExadDIyYndmam84Yzc3 -dnZ2dElTMHZEMzkrZnZuMzdrcHljRE1EUm8wZng5UFRzZnVWMjVtVElKRTY1Mk9mUWJCMGhmTWxv -ClRpSzZlUm5LdjlXTnZhVXBGRjhVL2IrdFRXWm1Kbi80d3g4b0t5dkQwZEdSYjc3NUJwMU94NWd4 -WXd6YVQ0ZmgvTHZmL1k3eDQ4ZHoKNU1nUnNyS3kydTZYWlpsNTgrWjF2M0k3Y3NuL1R2WjYyMnN3 -RCtKZDBxa1dYZVVNRm40MWd2ZjN4RkluNWx0VzFJOFZvZTNlWDdObApGN1ZiMjUvbkhzREZ4WVhY -WG51TlJ4OTlsT3JxYW1KaVluQjBkRFQ0OWJ2c1NtY0pyTEVyWFlQN2NOWkZPTm5sQlVBMXFTd21s -aWJSCkk4TWd6cklEMTA0bnNxcThsOUtsV0RjamRhV2pRTTk5ZFBGNlU2ZE81WTkvL0tQQkM1U0l0 -MllUYUhFY1FINllPMGpOU3BkaWRrMk0KWmdrUmlCNFpoZ2xwOW1IRHZtVEthc1NLTDdhZ29xSUNm -MzkvTm16WXdMNTkrN3ExY3BRSVp5T1ROYjVzN1QySUpyVjk5V2VXVVBFVAprL2czZmtxWFlsVlVN -Z1JXRFdMSnZnRzBpRThhTm1QS2xDbFVWRlRnNXViRzBxVkx1N1VQRWM1R0pFc083QTNQNGJLZHpa -bWh4b2tEClRDWWZONlZMc1NyZXNoT25qaVd6K3J5djBxVUlSclp4NDhZZTcwT0VzeEdkREpuTVNW -Zjd1Z0NveFljZm1NQStETC9nWWMvQ0czdngKU1hFQ2w1ckVwRTlDKzBRNEc4bGx2enk3NjVtaEk0 -elBHY2taMFZWT2IxcFpqZE5Qc1N3NEVvRm9seGM2SThMWkNCcmMwOWtVMUtoMApHV2FsSTVxbHBI -RkZkSlhUVzJDTEJ6c09Kck5mckg0dDZFR0VjdysxT1BhbklNekRybnBtcUJqR20wU0pDMWdHQ0t2 -cHkzdDdvbWxvCkZXOW1nbjVFT1BlQXJQWmhhMFFVamVxclNwZGlOdldNNFQzQ0VCL0o5ZU1tYTZr -NW1jVENVMkp0Uk1Fd0lweTdTWlljMkJjeGdzczYKKzJobmxsQnpqa21zUlBRczBGZllOWCsrM3BQ -RTJUb25wVXV4Q3hJd3ZBRTJLVjJJa1lodzdxWlRJWk1wdDVPZUdScGNLR0VTbXhGegpDT3RETFV2 -NFhvcGk0WUYraUU4WTVoR2xnZWF2WUZPaDBwVVlqd2puYnJqc040RTlkdEl6UTRzdjY1bEFLV0pX -TkgzNHRycHc1RWdLClgxZDRLVjJLWGZCV3crQ2pzUGtEd09Jbm9qQ01DR2NETmJnTlkxTlFrOUps -bUlVakVYek1DTTZMUHhPOWhOZUhzVndzdG1vV0VqQzgKRWZZc2hzMlZTbGRqR3VLL3pnQXR1bjRV -aEh2YVJjOE1MYkVzSnBXcm9rZEdseHhsRGFyejhTdzRKaFpiTllmQkdtaXhzU2FNOW9odwoxcE9z -OW1aNzd5Z2E3V0RPRElrTTVqTlFkSlhUZzFoczFYeTgxVERvR0d4NUg1dHJ3bWlQQ0djOXlHallI -ekdTaTNiUU0rTXE0L21BClhvZ0xXWjJUWk9oMXBUOUw5dzRXYS9xWjJJMG1qTDN2d0pZTFNsZGpQ -aUtjOVhBNlpESmxOdDR6UTBMRGFTYnpOZDVLbDJMeFBHUkgKTHB3WXd1S3ova3FYWXZNR2FVRCtH -alp0VjdvUzh4UGgzSVVxMy9HVStOajJMSE1hWE5uRkpMYmhvblFwRms4c3Rtb2VYbXFJT2c2Ygoz -d2RhbGE1R0dTS2NPOUhvbHNhbTRHdEtsMkZTV3Z6NWx2RWNSc3lPMWhrSFdZVjdaUXdMU3ZzZ21u -eE1Sd0xTbTJEL083QzVRdWxxCmxDWEN1UU10dXI0VWhQc2dTN1liem83MFpUazVWSWpKaXpybDMr -ckd2a1BKN0s0VUN4dWIwaUFOOEExczNxcDBKWlpCaEhNN1pMVVgKMjN2SDBtRERjMlpvU1dBeFEw -Ulh1UzZJeFZaTnoxTU4wU2RnODN2WWJSTkdlOFJmM0M5Yzc1a3h5cVo3WnNoazhTYjlhUlhCM0tF -YgppNjB1RUl1dG10UncwWVRSSVJIT3YzREdwbnRtU0Z4aEFzc0pRclNiZGt3c3RtcDZBelNnWGdP -YnR5aGRpZVV5NjZuVDh1WEx5Y3JLCklpb3FpbmZlZVFlQU9YUG1FQklTUWtKQ0Fna0pDYXhkdTlh -Y0pkMmkybmNjeFRiYU0wT0ZBeWU1bStVRUk0SzVmU29aZ2k4UFlzblcKREJITUp1S2hob3lUY1Bo -LzRLQU5CL1BWcTFmNXpXOStRLy8rL1JrOGVERGJ0eHZlRjFDU1pka3NZMjJxcTZ0SlNVbGgrL2J0 -T0RnNAprSnVieS9yMTYzbnR0ZGR3YzNQanFhZWU2cmhJU1VJdU1XMTlqVzVwck92dGpteUR1YVhC -alNJbVVZUUluSTdjV0d4MWsxaHMxV1NHClg0TUQ3OERsbjB6OFFqOUk5RFRXSkVtQ0FqMzNrWFg3 -NnozenpETTRPVG54M0hQUG9kRm91SHIxS2g0ZUhnYlZZTFptamExYnQ1S1kKbUlpWDEvWFp1bkp5 -Y3RpMmJSdEFqdzlrVDlseXp3d2RnYXhtTE1kRVY3a09pY1ZXVFd1QUJ0UnJZZk5tcFNzeG53MGJO -ckJ0MnpZYwpIYTh2Zkd4b01JTVptelV5TXpNcEtpcWlyS3lNOCtmUDg4MDMzN0IxNi9VK00vUG16 -U010TFkyWFhucUptcG9hYzVVRWdLejJaSHZ2Ck9CclV0aGZNamtTeW5Ba2ltRHVnbGRWNC9KakFn -c0lVRWN3bTRLNkdqTk0vTjJIWVVUQ2ZPWE9HaG9ZR1pzNmNTV3BxS2krOTlCSU4KRFEwRzc4ZHN6 -Um9BWDMzMUZXKy8vVGJWMWRXRWg0Y1RIUjNONzM3M08zeDlmYmx5NVFyUFB2c3MvZnYzNTVsbm5y -bTFTRW5pTDQvOAo1M2Iya090ZnhuQXE1QjVLZkd6dkFxQWpmVmxNcnVncTF3SC9WamVLRDZheTk1 -SlliTlhZdEJLazFjTGU5NkRLSEwwd0x1ZERWZjUvCmJwZlBOVTZ6eHR3TzlsR1dEK1UzdlY3K3Jh -OTM3Tmd4K3Zmdno4cVZLeGs1Y2lRUFAvd3dJMGVPNUlFSEhqQ3NCbk9HODgybVRwM0sKSC8vNFJ4 -SVRFOXZ1MjdObkQ3Tm16V0xMbGx1dkZKaXF6YmxGMTQ5dkJ2UzJ1WFptSGNGOHlEZ3F4ZUNTZG9Y -WGgvRkJjVHhYUmQ5bApvNUtBWVMxUTloR2NPNlpnSWNacWM4N1JjeC90dk42Z1FZTW9MUzBGWU0y -YU5iei8vdnQ4OU5GSEJ0VmcxdE9xaW9ycmI2TWJObXhnCjM3NTlKQ1ltY3Y3OGVRQ2FtNXRadm53 -NTQ4YU5NMXM5eDRJVGJTNll0Zmp3SldORU1MZERLNnR3L3pHUkJUdVNSREFiMlJBVjlQMEsKdHZ5 -dndzRnNJZnIxNjBkaFlTR3RyYTJzWHIyYWtTTkhHcndQcy82RlRwa3loWXFLQ3R6YzNGaTZkQ2tB -Ly9WZi8wVkpTUWxhclpiTQp6RXhtenB4cGxscXV1U1J4Mk8wU3R0U3RUSU1MRzhqakpHSWxqbC95 -YTNWbFgya3F4UmNOdnpBamRHeXdCaHgrZ0ozZktWMkpaWG5sCmxWZDQ0SUVIYUdob1lPVElrVXlk -T3RYZ2ZTaldyR0VJVXpSckZQZTdtOVBPdHRPbldZV1dYZHhEb1poWjdqYmg5U0VzTDBrUXkwY1oK -VVlRR0FvcWg4SE9sSzJtSEJUUnJHSU5kZnJhcjg4aTJxV0NXVUhHVVg0bGcvZ1VIV1lWclJSd0xE -a2RnUzUrUWxPU25nWUhIWWNzSApVRzc3cTdVcHl1N0NXVVpEY1pBWFlEdVRHdjNJSk5ZalBxN2Z6 -TGZWaFlPSFV0a2xacEl6Q2pjVkpGWkE0YnV3cVZicGF1eUQzWVh6CkZkL1JYTlRaVGpEWE1ZNHY4 -Rk82RElzUzN0aUxGY1dKVkRXSlpveWVjcEJnNkZYWTl4NFVtSHBrbjNBTHV3cG5XZVhLTG44MVlC -dWYKeDJTeWVaOFFwY3V3R0JwWnd1TkNMQXNPaVFueGUwb0NocmJBeVk5Z28raDlvUWk3Q3VjTC9x -T29kYkNOczJZTktieEpmMFFJWGVmVAo2c3lSSTZsOFZlR2xkQ2xXTDBtQ0s2dGc2eTZsSzdGdmRo -UE9zaWFBM2I2R0Q2RzBSRHFpZVlzNFJEQmZGOTRZeENmRlNXSUlkZzhOCjBvQTJIM1p0VUxnUUFi -Q2pjRDRkbUVtVDJ2cDdhRGpTaDNkSTQ1b1lsbzFhbHZDK0dNT0NnMzBSYjFUZEY2NkJvQkxZL3Bu -U2xRZzMKczR0d2J0SDFaWSszOVFlekNpMWZrazJ0R1AySFRsWno2Vmc2WDRzcFBydnQ1bTV4SjIz -ak1veE5zWXR3UGhZMEJGbTZySFFaUFhhVgpFWlNMMFg5b1pSVlZ4NGV4VVFSenQ3aXFJT2tDRkww -TG04dzdDYVJnQUpzUDUyc3VpUngydC81aDJqcUNXQ0o2WnFDUkplckwwOGcvCko3b1BHa3AwaTdN -dU5oL08rNFA2Z21UOVRScDd5S0hKenR1WlZiSUVwMU5aZHpwUTZWS3N6akRSTGM3cTJIUTQxM3Rr -Y2RyRitvUFoKZ1NIazQ2WjBHWXFTWk5DZEc4Sy95NE9WTHNXcUpLbWdaaFZzM2FsMEpZS2hiRGFj -WmRRVUIzbGo3Y08wMVRqeUJiRktsNkU0OTU4UwpXSEU4Vk9reXJJYm9GbWY5YkRhY2EzeEdVMmtE -dzdTckdNa1pPNzhJNkhNaGxtVkhlaXRkaGxVSTAwQndDV3ovSExENCtTYUZ6dGhrCk9Nc3FWM1lH -YUlBV3BVdnBFUjJoTENaSTZUSVVGWGdwaXFXbGtVcVhZZkY4MVRDb0RMYThENmRFdHppYllKUGhY -T2xuRzhPMGQ1QkoKaXgxZkJPeFZOWUIzOWc5UXVneUxsd29jK0Nkc3NyMmxNTzJhellXenJQRm5s -NS8xRDlOV2s4cFdYSlV1UXpGaE5aRXMzRHRZNlRJcwpta2FDWVdkaDR5S2xLeEZNd2ViQytVeGdO -azFxNno2RlVPUE01MFFyWFlaaXdxOUdzS0E0Qm12dm0yNUtnUnJ3K1JZMmJsSzZFc0ZVCmJDcWNX -M1I5S2ZHMjdtQUdxR1FVUDlyV3IwWnY0ZldoTE5pVmdBam1qaVdxb0d3ZUhCQURTV3lhVFNYQWNS -c1lwdTFJQkovaXIzUVoKaWdodkRHYnhqaVJFTUxkUEFqSXZRY0diUUt2UzFRZ2RhV2hvSUNzcmk4 -YkdSaHdkSGJuMzNudDU4c2tuRGQ2UHpZVHpOZWQ0RHRuQQpNTzB0Wk5CcWh4Y0J3NXNDK2RlT0ZM -dStBTm9aSHpXRWJZR0N0VXBYSW5URjBkR1JIMzc0QVdkblp4b2JHMGxLU2lJdkw0L0lTTU42Ckhk -bE1PQjhJN21mMXc3UWwwdG1CczlKbG1GM29OVC9lTFVybFdxc0k1dlpFYStEQ1lpZytxWFFsZ3I2 -Y25hLy9IOWZXMXRMYzNJeE8KcHpONEh6WVJ6dlVlbVp5eThtSGFHdHhZemtDbHl6QzdrR1p2bHU4 -WVNrT3JtQWExUFpsWFlmT3IwQ3I2THB1ZFdvKzJJNW4yVzVoYQpXMXRKU0VqZ3dJRUR2UGJhYTRT -R0dqNjYxZXJEV1VaTlNhQXZZTjFMQXA5bkpKZXMvOWRoa09BV1R6N2RtVTV0czMzOTNQcHdWOEhB -Cll0ajRoZEtWMksrV1ErWHRQOUM0SFpvS085MVdwVkt4Wjg4ZXlzdkxHVGR1SE9ucDZTUWtKQmow -K2xiL1gxSGpNNW9ManRZZHpJNUUKOHJtZHJhQWQwT0xPcWwzcFlvWHNkdlRYUVAwSFVIUlk2VXJz -M1BrTEhUelE5K2V2Rzk3b2NCY1JFUkdNR3plT3dzSkNnOFBacWh2NQpaSlVMdXdLcy9mMUZ4UStr -WSswWE1nM2gxK3JLdXVMaFhHZ3d2QjNPMWcxdmd2Sy93V2tSekZhcnNyS1NxcXJyWFhvdlhyekl1 -blhyCm1EaHhvc0g3c2Vwa3UrZzNtaG9ySDZZdGs4RWVISlV1dzJ5OFpXYzJsZ3puWEozOS9NejZj -RkpCd21IWS9LSFNsUWc5ZGY3OGVYN3oKbTkvUTB0SkNZR0Fnenp6ekRFRkJocytSWTdYaExHdjgy -T25YcUhRWlBlS0FKKy9UVCtreXpNWlRkcVJvVHdibHRmYlhJNlV6RVJwUQpmd1piUzVTdVJEQ0dt -SmdZZHUvZTNlUDlXRzA0bnczSW9rbDlSZWt5ZXVRa0k2bTJrOFZhM1dRZGUvZG5jUFNLaTlLbFdK -UzBWdGozCkQ3aHEzWjJOQkJPd3luQnUxZmFteE1lNmcxbkhJRmJoclhRWlp1RWlPM0NzTkowRGwr -MTdOWmViT1VpUWRobzJ2YU4wSllLbHNzcHcKUGg2VVFxc1ZEOU9XVUxPT1ZPemhJcUNUck9ITTRY -UjJWM29xWFlyRkNOYUE1eHJZdEVYcFNnUkxablhoZk0wNWpsSVA2eDZtM1V3MgpwZGgrVHdXdHJL -YnkyREMyVjlqSEp3UjlKRWx3L0EwNFY2RjBKWUtsczdwd1BoalUzNnFIYVd2eDRWLzBVYm9NazlQ -SUt1ckswdGg0CjNsZnBVaXlDQ2hoZUNSdm5JNWFQRXZSaVZlSGM0SjdCU1ZmckRXYUFvNHpncW5W -M0wrK1NXcFpvUFpYSytqTUJTcGRpRVh6VjBLc0EKTm9yRlZnVURXRTFLeUtnb0NiTHVVWFE2b2xt -RGJiZTlxbVRRbkUxbTlVbjdYdnZ3aGhnMVNJdGdqd2htd1VCV0U4NjEzcU9wc09KaAoyaElhVnBP -TU5iZVY2OFBseHlTK1BCR2lkQmtXSWFzV0RzeUZDNmVWcnNSKzlBKzI3a1dkYjJZMXpSbzdBN1dB -OWE0TjJFZ3V4OUFxClhZWkplVmZFOCtIUmNLWExVSnk3R2dic2dJSlZTbGRpUC9vRXRPSi85U2Uy -ZjNoSzZWS014bXJDdWNiQmVvTlpoei92WXR1aDVWOFoKelh1SGJQOUNaMWNHYUtEMlBkaHhWT2xL -N0VPb2J5dWhMUmZZK25FNUoyenNRcXZWaExNMU84QUlHcXluQmNsZ3daY0g4YStEL1pVdQpRM0hE -RzZIdzczRE5lczhqckVhZ2wweWtwcEt0L3k3amRMT05wZkxQUkRpYm1KWUVOdUN1ZEJrbUUzcWxI -NHYyMmQ4aUFUZHpWa0ZjCktXeitTT2xLYkordnU4eGdsMHRzKy93RVB6YmE5a0tLSXB4TlNJV09W -UmcyaDZzMUNhdnR3OEtTYUd6OUltZG5lbXRBK2hTMjdWRzYKRXR2bTZTb1Q1MWxOMFJmSDJWaHJI -OHZDaUhBMm9WcEdVSTV0VGlZZlhoZk9ndDF4MkhNd0QyMkZQUzlEblhWUDgyTFJYQjFsa2dKcQoy -TDN5T0FXWG01UXV4NnhFT0p1SWptQ1cwRXZwTWt3aXZDR0VoVHNUc2RkZ2RwQWc3U1JzV3FKMEpi -YkxTU3VUSEh5VnZWOGZvK0NDCmRVOE4zRjBpbkUya21CeWFiUEFpWUhoakVPL3NHSUpzcDhIY1N3 -UHVxMkhUTnFVcnNVME9HcG0wc0RwSzF4NW40N2YxU3BlaktCSE8KSnVCQU1odHhWYm9Nb3d1NzVz -KzdPMUpvbG0zdlRVY2ZReVE0OGhxY3JWUzZFdHVqVnNrTWpXamcrUGZIMmJUZXVsYzNNaFlSemth -bQp4b2wvRTZ0MEdVWVgwdXpEQnp2U2FHaTFqOFVCYnFZQ01pNUF3VnVJU1l1TVRKSmswbm8zY21i -ekNUWi9WNk4wT1JaRmhMT1JWVEdTCnN6WjJXSHMxZS9ISnptSFVOZHZXejZVUFB3MEVmUThGM3l0 -ZGllMUo3ZFBFaGFJeXRuMWZwWFFwRnNtc24wK1hMMTlPVmxZV1VWRlIKdlBQTzlTVWdhbXBxbURo -eEltRmhZVXlhTkluYVd1dWRQME5IS0NzSUJPQmkvbjZGcXpGY2V6VUh0bmp3NWU1MHFwc3NzTmRK -Y2I1SgpkeCtuQnZsdDJHdk1ZTDZjYjhTZG1ZbVJheDdTK3hvRGFvNVMrSzlpVHV5enpXRGV1SEVq -Z3dZTm9sKy9mc3liTjY5Yit6QmJPRmRYClZ6TjM3bHkrL1BKTENnc0xXYlJvRWRYVjFiejk5dHVF -aFlWeDlPaFJRa0pDV0xCZ2dibEtNcnBDc21qNStaQmV5aitnY0RXRysyWE4KL3ExdXJObWRUbVdE -aGM0SlVwSnZzbDFuWFlHOWM2RHlySkYzWEpWdjVCMmFnWkZxamd0dkpycXBqSjFMZG5ONDV5V2o3 -Tk5Telo0OQptNFVMRjdKaHd3Ym16NTlQWmFYaEZ5ck1GczVidDI0bE1URVJMeTh2WEYxZHljbkpZ -ZHUyYlJRVkZURmp4Z3gwT2gzVHAwK25zTERRClhDVVpsWnFoYk1kMkZpLzFhWFhoaCtMaC9GanZx -SFFwWnVXaGhpRTdvZUQvUUxhZENjNFVGUlhhUWp3bjJmUHVMdlp2c2YwbFlLcXIKcjg4NW41bVpT -WGg0T0tOSGorNVdycG10RVRFek01TS8vT0VQbEpXVjRlam95RGZmZklOT3AyUEhqaDBNSEhoOStP -L0FnUU1wS2lwcQpkM3NQSXMxVmFqZG95R2Nva1RjTk9MbUlJNUZXTm5mempabzFzcHF5WTBQd2xa -end0ZUJPSitlMUVHVEUrandBN2Jkd29Sd1MreGx2CnZ6Yzdmd1dDVExSdlUrbHV6YzY2VmtKYUwz -RjQyM2trSURIUjJlaTF0V2YzYnVQc3g4T2o2NHZmMTY3SjFOWGRldC9ObVFZd2VQQmcKdG0vZnp2 -ang0dzE2ZmJPRnM0dUxDNis5OWhxUFB2b28xZFhWeE1URW9OUHBrR1g5TG45blMyK1p1TUtlZXVP -MmU0cm12cTlBSFQxagpiVFdmWHpSWDZSSU1kbjZYcU5rYVZGY242L1U4VjFmVG5NR1k5Zko3WGw0 -ZWVYbDVBRXlkT3BVeFk4YXdlL2R1U2t0TFNVaElvTFMwCmxPVGsydytJdmdFdUNJSmdERDNKbk9U -a1pKNTk5dG0yMndjT0hHRE1tREVHNzhlc3ZUVXFLcTYzTjIzWXNJSDkrL2VUbUpoSWFtb3EKUzVZ -c29iNituaVZMbHBDV2xtYk9rZ1JCRUl6S3c4TUR1TjVqbzd5OG5QWHIxNU9hbW1yd2ZpVFpqS2Vs -bVptWlZGUlU0T2JteHZ6NQo4MGxKU2FHbXBvYjc3cnVQNHVKaUVoTVRXYlpzbWNrK0pnaUNJSmhE -UVVFQmp6enlDTmV1WGVQeHh4L244Y2NmTjN3bnNvSUtDZ3JrCmdRTUh5cEdSa2ZJYmI3eHgyK09s -cGFWeVdscWFyTlBwNUZkZWVjV2diVTJsSnpXSGg0ZkxNVEV4Y254OHZKeWNuR3l1a3J1c2VkbXkK -WlhKc2JLd2NHeHNyVDVzMlRUNTgrTERlMjFwYXZaWjZqTC84OGtzNU5qWldqb3VMazhlTkd5Y1hG -UlhwdmEwbDFxekVjZGIzT0JVVgpGY2xxdFZyKzdMUFBETjdXa2lnYXp2SHg4WEpCUVlGY1hsNHVE -eGd3UUw1dzRjSXRqMWRVVk1nN2R1eVFuM3Z1dWR1Q3JxdHRMYkhtCmlJZ0krZUxGaTJhcDgyWmQx -YngxNjFhNXFxcEtsbVZaZnZmZGQrWDc3cnRQNzIwdHJWNUxQY2ExdGJWdDMrZm41OHNaR1JsNmIy -dUoKTlN0eG5QVTVUczNOelhKT1RvNDhmdno0VzhKWnFXUGNFNHJOWUtOUFgwQS9QeitHREJtQ2c0 -T0R3ZHRhV3MwM3lHYSt1S2xQelVPSApEcXp1aHBJQUFBWFRTVVJCVkcxckp4cy9mandGQlFWNmIy -dEo5ZDVnaWNmWXhjWGxsdWM3T2pycXZhMmwxWHlET1krenZzZHAzcng1ClRKa3lCVDgvUDRPM3RU -U0toWE5IZlFGTnZXMVA5UFIxSlVraU56ZVhTWk1tc1dxVmVaWm1OclRtUllzV3RmV29VZUk0OTZS -ZXNPeGoKL01VWFh4QVJFY0gwNmROWnZIaXhRZHRhUXMyTEZpMXF1OS9jeDFtZmVzK2VQY3ZLbFN1 -Wk9YTm1XNDM2Ym11SjdHOG1Hd1Z0MmJLRgpvS0FnU2t0THljdkxJeVVsaGNEQVFLWExhck5od3dh -V0xWdkcxcTFibFM1RkwrM1ZhOG5IZVBMa3lVeWVQSm1QUC82WVNaTW1VVnhjCnJIUkpYYnE1NXNt -VEo3ZlZiSW5IK1lrbm51RHZmLzg3a2lRaFgyK3lWYlNlbmxMc3pEazVPWmxEaHc2MTNUNXc0SURl -M2VoNnNtMVAKOVBSMWc0S0NBQmcwYUJCMzNua25YMzMxbGRGci9DVjlhOTY3ZHkrUFBQSUlxMWF0 -d3RQVDA2QnRMYVZlc094amZNTzk5OTdMdVhQbgpxSyt2WjhpUUlWYnh0M3h6eldEKzQ2eFB2YnQy -N1dMcTFLbjA3dDJienovL25GbXpackZxMVNyRjhxTEhsR3p3dnRGSVgxWlcxbWtqCi9WLys4cGNP -THdoMnRhMnhkYmZtcTFldnlsZXVYSkZsK2ZwRnc4R0RCOHVuVHAyeWlKcFBuandwUjBaR3l0dTNi -emQ0VzB1cTE1S1AKOGJGangrVFcxbFpabG1WNTllclY4dGl4WS9YZTF0SnFWdW80RzNLY0huendR -Zm56enovdjFyYVdRdEZ3enMvUGx3Y09IQ2ozN2R0WApmdjMxMTJWWmx1VUZDeGJJQ3hZc2tHVlps -cytmUHkrSGhJVEk3dTd1c3FlbnB4d2FHaXJYMU5SMHVLMGwxM3o4K0hFNUxpNU9qb3VMCmszTnpj -K1YvL2V0ZkZsUHpqQmt6Wkc5dmJ6aytQdjYycmxGS0hPZnUxbXZKeC9pbGwxNlNvNktpNVBqNGVQ -bWhoeDZTOSszYjErbTIKbGx5elVzZTVxM3B2OXN0d1Z1b1k5NFJaQjZFSWdpQUkrckhQeGVBRVFS -QXNuQWhuUVJBRUN5VENXUkFFd1FLSmNCWUVRYkJBSXB3RgprOHZOeldYZHVuVzMzUGZhYTY4eGE5 -YXNkcDhmRVJIQnBVdWRyekgzd2dzdjNISTdQVDBkZ1BMeWNtSmlZZ0RZdVhNbnMyZlBCcTdQCkVy -WnQyN1p1MVM4SVNoRGhMSmpjdEduVFdMRml4UzMzZmZ6eHgvejYxNzl1OS9rM2h0MTI1c1VYWDd6 -bDlwWXRXMjU3enBBaFEzajkKOWRjQitPR0hINnhtNUtNZ2dBaG53UXp1dXVzdVZxOWVUWE56TTNE -OTdQYmN1WE0wTlRVeGJ0dzQwdFBUZWVlZGQ5cmRkdkxreVNRbApKWkdibThzWFgzd0J3Si8rOUNm -cTYrdEpTRWpnL3Z2dkI5cGZLaWcvUDUrOHZEeE9uanpKd29VTGVmWFZWMGxNVEdUejVzMzA2ZE9u -CnJaNHJWNjdRcDA4ZldsckVpcTZDNVJCemF3Z201KzN0VFVwS0N0OTg4dzEzM25rbksxYXNZTXFV -S2Z6Kzk3OW43ZHExK1BqNE1HYk0KR05MVDB4azBhTkF0Mnk1WnNnUXZMeSt1WExsQ2RuWTJreWRQ -NXU5Ly96dno1OCsvWlc2S3pzNjJ3OFBEZWVTUlIzQnpjK09wcDU0QwpJRHM3bTlXclZ6Tng0a1JX -ckZqQlhYZmRoVnJkOVlLZWdtQXU0c3haTUl1Ym16WSsvdmhqN3JyckxnWU5Ha1JrWkNSZVhsNU1t -VEtsCjNkbk5WcXhZd1lnUkkwaFBUK2ZFaVJQczI3ZXZXNjh2LzJJaW5OLys5cmNzWGJvVWdIZmZm -WmVISG5xb1cvc1ZCRk1SNFN5WXhaMTMKM3NsMzMzMUhjWEV4ZFhWMXQ1M3B5cko4MjMwblRwemc3 -YmZmNXROUFAyWGZ2bjMwN3QyYnk1Y3ZkK3YxZjdudlljT0dVVjVlVG41KwpQaTB0TFF6Ky8rM2Rv -YytDUUJ6RzhZZHVZaU9UdGRFTUdOeWN4WTErc0xHQitmNFhxLytBMVdJMzBTeU1RcUZhRERUeW0x -NzJ1aG5lCitVN2YyL3grMGczR2NWZWUvWGJjanRuc3FYNkJWeUdjOFJhVHlVVEw1VkpGVVNoTlU4 -M25jN1Z0cTY3cjFQZTlqc2Vqa2lTNWUrWjYKdlNvSUF2bStyNnFxVk5mMWVDOElBZzNEOE92M2gy -R28yKzEyZHkzUGMyVlpwcklzL3pZNTRBVUlaN3lOTVVaTjA4Z1lJOC96dE4vdgpaYTNWWnJQUmRy -c2REMFQvcm5Mak9GWVlocHBPcDlydGRscXRWbU5mMWxvdEZvdnhnK0RQeXZoUmU3MWU2M0s1S0lx -aWNXZEhtcWJxCisxN0dtTmRPSEhnQ0J4L2hZeDBPQjUzUDUvR3ZKSUJMMksyQmoyU3RWVlZWT3Ax -Ty96MFU0Q0VxWndCd0VHdk9BT0Fnd2hrQUhFUTQKQTRDRENHY0FjQkRoREFBT0lwd0J3RUZmRnpK -Z250aDhxdm9BQUFBQVNVVk9SSzVDWUlJPQo= - - - - - - Plot the value of the Asian call in (volatility, strike) space. - - - plt.contourf(sigma_mesh, strike_mesh, prices['acall']) -plt.axis('tight') -plt.colorbar() -plt.title("Asian Call") -plt.xlabel("Volatility") -plt.ylabel("Strike Price") - python - 13 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x2e14610&gt; - 13 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdjQUFBRVhDQVlBQUFCeG1vVk1BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6c25YbDhW -T1c5Lzk5blpyS3ZrejBoQzRRQUNSQ3lRQmFXaE1VTlJSU0szb3BWCnEyQnZ4V3ExM3ZiMnZ0cmVY -OEhiMnVKeVZieVdUUU1peGJWVnFBZ3FhZ2dFU01JV0lBUlp3eTVoVFVKV2twemZINVNVSldGbWtw -bDUKenBsNTNxOFhyMWN5Yzg1elBwek1mT2FaNS9rdWlxcXFLaEtKUkNMUkZBYlJBaVFTaVVSeUk5 -S2NKUktKUklOSWM1WklKQklOSXMxWgpJcEZJTklnMFo0bEVJdEVnMHB3bEVvbEVnMGh6bGdobjNi -cDFKQ2NuaTViUktRYURnWU1IRHdMdzZLT1A4dC8vL2QrQ0ZVbmNCV25PCkVyc3pac3dZUWtKQ2FH -bHBzZXI0dkx3ODl1elo0ekE5cTFhdFl2VG8wWVNIaHhNVkZjVmRkOTFGY1hHeHplTW9pb0tpS0E1 -UUtKSGMKaURSbmlWMnBxcXFpdExTVWlJZ0lWcXhZSVZvT0N4Y3U1RWMvK2hHNXVibHMyclNKZmZ2 -Mk1XM2FORDc0NElOdWpTZHp0aVRPUXBxegp4SzRzV2JLRVcyKzlsWWNmZnBoMzNubm5tdWZXcjEv -UG5YZmVTVWhJQ0xHeHNienl5aXNBRkJZV0VoY1gxM0hjbi8vOFo1S1NrZ2dOCkRlVkhQL29SNjlh -dDYzaHU4ZUxGakJvMWl1ZWZmNTVldlhveGZ2eDRObTdjMkttV3VybzZmdjNyWC9PclgvMksyYk5u -MDdkdlh3SUMKQXJqdnZ2dVlNMmNPQUtXbHBRd2ZQaHl6MmN6dzRjUDV2Ly83UDFwYlcrMTlXeVFT -bTVIbUxMRXJTNVlzNFljLy9DSC85bS8veGhkZgpmRUYxZFhYSGM3LzR4Uy80NlU5L3lwa3paNmlv -cUdEY3VIR2RqcEdVbE1UNjllczVkdXdZdzRZTjQ4RUhIN3ptK2JLeU1nQjI3ZHBGCmJtNHUvL21m -LzlucE9MdDI3ZUxDaFF2Y2M4ODlYZW8xbVV5OC92cnJuRGx6aGxkZWVZV1hYMzZad3NKQ0cvL1hF -b245a2VZc3NSdnIKMTYvbitQSGozSFBQUGZUcjE0K0JBd2V5Yk5teWp1ZmIyOXM1Y09BQXRiVzFC -QVVGa1pHUjBlazQ5OTEzSDFGUlVmajQrUERzczgraQpLQXBidG16cGVON1B6NC9mL2U1M21NMW1m -dnJUbjFKU1VrSjlmZjBONHh3OWVwU0FnQUFHRFJyVXBlYk16RXl5czdNeEdvMk1HREdDCmh4NTZp -T1hMbC9mZ0xrZ2s5a0dhczhSdXZQUE9POXgrKyswRUJBUUFjUC85OTErenRMRmt5UkxLeTh0SlRF -emsvdnZ2cDd5OHZOTngKVnF4WXdROSs4QU5pWW1JSUNRbmg1TW1UN05peG8rUDVRWU1HWVRCY2Z1 -bEdSMGZUMnRyS3FWT25iaGduTGk2T3VybzZLaW9xdXRSOAovUGh4bm5qaUNZWU1HVUpnWUNDdnZ2 -cnFOZGVTU0VRaHpWbGlGeG9iRy9ud3d3LzU1cHR2aUk2T0pqbzZtbGRlZVlYeTh2SU9zeHMwCmFC -QkxsaXpoNU1tVHBLYW04dmpqajk4d1RuMTlQVC81eVUvNDhZOS96SjQ5ZXpoMzdoeTlldlhxMWti -YzRNR0RNWnZOTjkyWS9NTWYKL3NDbFM1ZjQvUFBQcWFtcDRSZS8rQVh0N2UwMlgwc2lzVGZTbkNW -MjRkTlBQOFZrTWxGWldVbDVlVG5sNWVWVVZsYVNsNWZIa2lWTAp1SFRwRW4vOTYxK3BxYWtCd05m -WHQyT0dmVFYxZFhWY3ZIaVI2T2hvMnR2YitkT2Yvc1NKRXllNnBTa2dJSURaczJmenlpdXY4SnZm -Ci9LWmpTZVdUVHo3aG1XZWVBZURFaVJPRWhJUVFHaHBLWVdFaFM1WXM2WEk4R2FraGNTYlNuQ1Yy -WWNtU0pVeWJObzNZMkZnaUlpS0kKaUlnZ01qS1NwNTU2cW1QZGVlblNwZlRwMDRmNCtIaEtTa3A0 -N2JYWE9zNi9FajhjRlJYRm4vNzBKeDUrK0dIUzB0Sm9hV2xoMUtoUgoxeHgzZmF6eHpXS1BIMy84 -Y1pZdVhVcHhjVEU1T1RuMDc5K2Znb0lDcGs2ZENzRE1tVFBadm4wN3NiR3h2UFRTU3p6MTFGUFhq -SGY5Cnp6TE9XZUlzRkZsc1h5S1JTTFNIM1dmTzA2Wk5Jekl5a3RUVTFJN0hQdnJvSXdZTkdvVFJh -R1RyMXEzWEhEOW56cHlPbmYzMTY5ZmIKVzQ1RUlwRTRsYzQ4RUdEUm9rV2twS1F3YU5BZ2Z2M3JY -MXNjeCs3bS9OaGpqN0Y2OWVwckhrdE5UZVdUVHo0aFB6Ly9tc2VycTZ2NQp5MS8rd3RkZmY4M2N1 -WFA1K2M5L2JtODVFb2xFNGxRNjg4QmR1M2F4WU1FQ1ZxeFlRVVZGQmIvODVTOHRqbU95dDdDOHZE -eXFxcXF1CmVheXJvallsSlNXTUh6K2UrUGg0NHVQalVWV1Z1cnE2VGplS0pCS0pSQTkwNW9HclZx -MWkrdlRwOU92WEQ0RHc4SENMNHdqZEVDd3QKTFNVbEphWGo5d0VEQmxCYVdpcFFrVVFpa2RpZkw3 -LzhrbDI3ZGpGczJEQWVmL3h4ZHUvZWJmRWN1OCtjYmFHenZjak9kc1BsRHJsRQpJckdGbnNZNUJD -b0tkVlllNisvdlQxM2R6WTl1YW1yaTNMbHpyRnUzampWcjF2RFVVMC94elRmZjNQUWNvZWFjazVQ -RG1qVnJPbjdmCnMyY1BXVmxablI2cjlhM0N3S3cwQnZjdDU4cm55TXlkTURQMTV1ZG9ob2VIUXN3 -V1pzNkRtVStJRnRNMXFrYzBYdzdJb05sNHVURFIKZXpNUE1IVm1YOEdxYk1NUm1qMEpZd1gzVUlX -SFhjZTl3cjZaSDlCdjVnOGRNcllqV0tWTTZmRVlkVmp2T2FNdVhyUjRURzV1TG1QRwpqTUhIeDRl -SkV5ZnkwNS8rbEthbUpyeTl2YnM4eCtuTEdsZC9vbVZuWi9QRkYxOXc1TWdSQ2dzTE1SZ011bHh2 -TnZqNzAyL2dhWFE1CndSK2REekZiTEIrbkFmYjJ5dXN3WnNsbFBERHpPUk1kWnN3Uyt6QjgrSEJX -clZxRnFxcVVsSlRRdDIvZm14b3pPR0RtUEhYcVZOYXUKWGN1Wk0yZUlpNHRqMXF4WmhJU0U4UFRU -VDNQbXpCa21USmhBUmtZR3ExYXRJakl5a2hrelpqQnUzRGc4UFQyWlAzKyt2ZVU0aGNUSgphWGkz -MkY2OFhUaHhBeUJyZzJnVlZ0RVFQSmJ2Z2k2SWxxRXBUQVN3aG52Wmo2ZG9LWktydU9LQlo4K2VK -UzR1anVlZmY1NUhIbm1FCkw3Lzhrb0VEQjVLY25Nei8vdS8vV2h4SEYwa29pcUpvZGxuRG5KZEZT -cSt5RzJiTmhhZGdUS1FZVFZiaDVRdlRJeUNncXVPaHdzMHcKWnBnNFNWMmhHczE4TzJBVUZ6MmFy -M2w4WitFNVVzZUVDRkxWUGV5bDJZZ3Y2N21QY256c29Pcm1uQzNjUmVpWXdRNi9qcjFZcFV6cAo4 -WnF6TFo0ekNzZWs5a3R6N2dHbWtCQXlKaWg0dHA0VkxjVjJwb3lFSkgzTTlxdmkvbzBkSVhMV2ZB -VWozcFJ4UDZYNGlwYWlTVnpGCm5HVnRqUjdRZDJJL2ZScnowT0hRVngvRzNCeVF5dzd6ZWRFeU5J -TUJEOHFaSW8zWkRaRG0zRTNDYmh0QldFdUphQm0yRXhZTCtidEEKQjV1WHFzR1AwdGhJOUxuVGFu -OFVUT3poUHRiakwxcUt4QWxJYys0R25sR1I5STNjSlZxRzdSaU1NQ2tRUEsyTjRCVEx5YWc3T2Uv -WgpLRnFHUmpCUXhRLzRoa0RSUWlST1FwcHpOMGdhSDRPcHJWYTBETnU1WXhTRVdzNU0wZ0tYZk5Q -WkhLYkRlK3dRRkU3eUExWmhGaTFFCjRrU2tPZHRJMU4xNW1KdTNpWlpoT3dQU1lmQmEwU3FzUWxV -ODJSS1hxSXVsRjJkd2hudFpUcWhvR1JJbkk4M1pCcng3eDlNN2FMTm8KR2Jiakh3SjNuTkROWC90 -TXhBU3F2UzFuWGJrRHRVemtZN1Fja3lseEZEcDV1Mm9BUmFIZm1BQ003VHBjQTUyVUNEN1ZvbFZZ -Ulp0MwpmMG9pR2tUTDBBU05qR2NaTWFKbFNBUWh6ZGxLZWszT0k3QzU2eTdPbWlVL0gzcnBZN2F2 -WW1CSFhCcnRCczJIM2p1Y1M5ektPOFNMCmxpRVJpRFJuSy9BZGtFUzhsejdTbks4aHRqOWtieFN0 -d21vdWhOM0ZVZDhhMFRLRW96S0d0MGxFTHJyYmpsbDFmTWFrczVEbWJBSEYKdzROK3d4VU02S3pn -anFjUFRHd0I0eVhSU3F5aTNUT2VrcWcyMFRLRVkyQUU4K21QTkdiYmlXK0o1S3V5Y2FKbDJBMXB6 -aGFJKzhFSQovSnYzaVpaaE94T0hRbUNWYUJWV1V4bWJTNHZSdmMzWlJEYnpHSVEwWnRzd3FCQjFi -aUR6TjQzZ2RKT1hhRGwyUTJnOVo2MFRrRDZJCldLVkl0QXpieWN5RnZscXNSdEk1RjgyM2NTREF2 -V3RuZUpMQm02VFJMdWRMTmhHb2VuSDZZQmFMamtlSWxtSjNwRGwzZ2NISGgzNXAKZFNndE90dWND -dTBGb3l0ME0vbFNUUkZzaXZFQ1drUkxFWVlYZzVuTE1OcWtNZHRFYkdzb3E4cXpPVmJ2T3V2TVZ5 -UE51UXQ2LzJBWQpQaTNyUk11d0RZTVJKZ1dENTNIUlNxem1RSzh4TkpqY2Q5YnN4UUFXa0V1TE5H -YWJpS3Z0UjBINUlGcFYxNzF2MHB3N0lTZ25nNmkyCmRicVpmWFp3K3lnSTAwY1dJRUJUWUI2N2c4 -Nmp2eHR0SDd6cFN3SDVORXBqdGhwZjFZT21JME5aY05qMTQ3K2xPVitITVNpUWZnTk8Kb09nanlP -RmY5RStEVlAwWXMyb0lZbE5zQ0NnNlRPcXhBMTRrc0lTeDFFcGp0cHJvdG1EVzdjeGhYNjJmYUNs -T1FacnpkU1RlT3hpdgpTenFMYWZZM3d4M2Y2eXIyNW1qTUhkUjZ1T2R5aGhjeExPTld6bUVVTFVV -M0pOVDNadkcyTkpyYTNlZWVTWE8raXBBeE9ZUzNiTkRmCnQreDdrOEMzVExRS3Eybnh6Mko3aUhz -dVozZ1J3Y2ZjeVduNTFyTUtUOVdJNThsMDV1MVBFQzNGNmVob3J1VllQTUpDU1lyZHE3KzYKN25u -NUVLc2ZZMVlWYjhwaVk5MnlnTDRub1N6bmJvNUxZN2FLaUhaL3Fpckc4SkhPakhuYXRHbEVSa2FT -bXBwNnczT3Z2UElLQm9PQgpjK2ZPV1J4SG12TS82WHQzSWg1dE9tdUhGTnNQc2plSlZtRVRwNklt -Y05hclhyUU1wK05CRUt1NWh5bzhSRXZSQlFsTnZmaWtaQ3psCjU0SkVTN0daeHg1N2pOV3JWOS93 -K05HalIvbnFxNjlJU0xEdXcwYWFNeEF4ZmlTaHpmcVpmUUwvVE05dUJaTis0b05iZlFaUkZxNlAK -TGl6MnhJUS8zekNadlhpS2xxSjVUS3BDNk9rMDVwVm1VM3RKbng5a2VYbDVtTTAzTmtaNDdybm5l -UEhGRjYwZXgrMi9YM24yaXFGUApXRG5vTFhQNDdxRVFxSjhzUUJVVDIrSlNVQlgzNm01aXhJY04v -SUFLWENldDJGR0VxRDRjM0p2RFAwNkZpSlppZDVZdlgwNXNiQ3hECmhneXgraHkzTitkK3Q0Vmph -ajRoV29adFpPUkFrbjZNR2VCY3hBUk8rcmlYTVJ2d1lqTlQySXByWnJEWmsvaVdTUDYrZlppbWFt -T00Kbk5yNTQ0V25vUERxOHVnVzJvazJORFR3d2dzdjhOVlhYM1U4cHFxV000L2QycHlqNzhranVG -bG5XWUFoTVRDNlVsZUJEbTFlZlNtSgpiQll0dzZrWThHQVg5MUdDZThUa2RoZURDcEhuQnpKLzF3 -RDA4cUllRTNuNTN4Vm1XVERuQXdjT1VGVlZSVnBhR2dESGpoMWo2TkNoCmxKYVdFaEhSZFUwUXR6 -Vm43OFRlSlBpWGdwNUtaeGlNTU5rTVh2cWE2VmZFRHFYVjRENHh6UXBHOWpHRkl2eEZTOUUwZ2Fv -WFp3NW0KVWVDQ1JZdXVKalUxbFZPblRuWDgzcWRQSDdaczJVSkl5TTJYYjl4elE5QmdvUDlvSDR5 -cXptWno0MGRCbUw2NnNkU0cza21Wdi9zWQpNeGc0ekJTK1FuOVJCczRrdGpXVTRxM2orTm9Galhu -cTFLbU1HREdDdlh2M0VoY1h4NkpGaTY1NVhyRXlqTlF0Wjg2eGswY1IwS1N6ClVxQ0RodW1tZS9Z -VjJqMWkyQml0ajYrcTl1SjdKdk01Tis3VVMvNkZxeGN0ZXUrOTkyNzYvTUdEQjYwYXgrM00yVy9n -QU9JOGkwWEwKc0ExekZOeDZRQzlMY2gzc2pSMUZzOUY5WnMzbnVKZFBDUk10UTdQNHFoNDBIeDNL -Z2lyWEwxcGtEOXpLbkJWUFQvcGxYOExRcktPNApPWU1SZmhBRzNoWjJIVFJHUS9BNDlnYTZqekhY -Y1RjZkVpVmFobWFKYmd0bS9hNXM5dGJJZFhocmNTdHpUcGlTaTErenpwWXp4dXVyCkRDaUFhZ3ho -WXk4L1FHZHIrdDJrbVR2NEs3MUV5OUFzQ1EyOVdielZ2WW9XMlFPM01lZkF6RlJpMUNKOUxRME1I -S3E3ZFdhQXFsNjMKVVcvU1dTcDhOMm5qRmhhaHI5b1B6c0tkaXhiWkE3Y3daNE9mSDBtcDUxSDBr -K2tNd1pGdzJ5RjlmWmdBelFIRDJSbDhEdDBKN3hiNQpMS1F2N3ZGL3RZM3dkbjkyVk9hdy9heU1X -dWt1cnJsZGVoMTlKbWZnMDNKTXRBenJVUXp3Z3dqd3RseTVTa3VvQm45S1lpUGNvdUtjCmtlSE1J -eGxwekRlUzBOU0xUMHZHU21QdUlTNC9jdzRlT1pUSTF2WDZlZytOejROdy9TMW5uSWdlendWUDEw -L1I5bUFZZjJFdytucFIKT1I2VHFoQjBaZ2p6S2hPUjk2Ym51TFE1bTh6QkpDVWVSV2tWcmNRR1Vq -SjExVzdxQ3BmOE10Z1NXb09ydnlrOVNXY3VHYkpUOW5XWQpWUjhPdVdqUklsRzR0RGtuM3BPTVY0 -dU82aDBIUjhMdFZicnpOMVh4WkhOc0gxQXVpcGJpVUx3WXhEeXl1Q1NOK1JxMFdMVElGWEJaCmN3 -NGJsMHRZOHliOUdKMWlnTW1SNEwxRHRCS2JPUjA1Z2RQZXJtN00vWG1MRVRSTFkrNUFVU0hxd2tE -bTc5UlAwU0k5NFpMbTdCRVoKUVdKTUpZcU9jazI0SXc4aTlMZWMwZVk5Z05Md0J0RXlISW8zaVJT -UVQ3MDA1ZzRDVkMvT0hzcWk0SmpyMWNiUUNpNXB6a2wzeHVIUgp2RVcwRE90Snp0RGxPck9LZ2ZL -NFZOb05ycnNKNkVVY1N4aExyZXlVM1VGc2F5aGZsR2R6cEY3V3FYWWtMbWZPa1hlTklxUlpSNFhv -Cmd5TGdqaU82REdxOEVENkJZNzZ1Yk13eHZNY2RuSlBHM0lHckZ5M1NFaTVsemw1eHNmUXhiNFYy -MFVxc1JGRmdjalI0bDR0V1lqUHQKbmdsc2pOSlRHSXh0ZUJMTzN4aFB0VFJtQUh4VUV5MUhoOG1p -UlU3RWRjeFpVZWgzcXhsams0NlNUVzdQaDBqOUxXY0FWTWJtdUd3QgpmVTlDK0FkM2MweDJ5Z1ln -dWkySTlidHlaTkVpSitNeTVoeHpieDVCZXFyUm5Kd09RL1JwekJkRGJ1ZEFnR3Nhc3dkQmZNRzlI -SktkCnNvSExSWXZlMlpaR1k1djhCdUZzWE1LY2ZmcjFKY0YzbzM1YVRnV0Z3eDNIZExuT3JKb2ky -UkR0QVZ3U0xjWHVtUENqa0VsOEo0MVoKRmkzU0FMbzNaOFZrb3Y5SUU0Wm1uWmlGb3NEa0dGMnVN -d1BzN3pXR0poZXNPR2ZFaDAxTVlTZmVvcVVJUnhZdDBnYTZOK2ZZeVNQdwoxMU9ONXR2MHU4N2NH -SlJQWmJEckdiTUJMN1l5aGMzSTBMQ0VwbDY4dHoyVG1oYTUzaTRhdTMreG5qWnRHcEdSa2FTbXBu -WThWbGRYCng3MzMza3Q4ZkR5VEprM2k0c1hMMldSVlZWWDQrUGlRa1pGQlJrWUdUejc1cEUzWDhr -OU5JZGFrbzdDNS9tbVFwazlqVm8zQmJPb1YKTEZxRzNWRXdzWnNwYk1SUHRCU2htRlNGc05OcHpD -dk5sc2JjUXpyendGLzk2bGVrcEtTUW1abkpzODgrUzJOam84Vng3RzdPanozMgpHS3RYcjc3bXNi -bHo1eElmSDgrK2ZmdUlqWTFsM3J4NUhjOGxKU1d4YmRzMnRtM2J4bC8rOGhlcnI2TjRlZEV2c3hH -RFh1TG1Bc05nCi9IRmRyak1ESEltK2pUcVBKdEV5N0lxQ2dRTk1vWkFBMFZLRVlsWjlPTHQzTk85 -V3l0clU5cUF6RDd6OTl0dXBxS2hnOCtiTjFOZlgKczJ6Wk1vdmoyTjBxOHZMeU1KdXY3VDVjV2xy -SzlPblQ4Zkx5WXRxMGFaU1VsUFQ0T3IybjVPRGJVdFhqY1p5Q29zRGtXUEE1STFwSgp0Mmp4ejZJ -OHhOV2lNeFNPTW9VdmNiMXZBN1lRM3hMSm1ySnhiSkRWNU94R1p4NTQyMjIzWVRBWU1CZ00zSEhI -SGF4ZGEva2J0RlBXCm5Ndkt5a2hPVGdZZ09UbVowdExTanVjT0hUcEVlbm82T1RrNVBQbmtrNlNs -cFhVNlJzRlZQdy92SGNlSWRoMjFuTW9iQlZIclJLdm8KRnFyaVExbHNMQ2oxb3FYWWxUTk00alBj -MjVCaUxpUXpmMGNLK25ramRjRzJRdGhlYVA5eHV5aXlWL2o5NVgvZFplSENoVHorK09NVwpqM09L -T2F0cTV6RnVNVEV4SEQxNkZMUFp6S3BWcTNqNDRZZlpzYVB6cW16VHJ2cTU3NmdFbExhakRsRHFB -QXhHU05zbldrVzMrVDc2CkxzNTYxWW1XWVZlYUdNL0h1Ry9CSGcvVmdPbkVVTjQrRUNkYWluM0lH -SFA1M3hVV3o3TFB1TTkyL3ZDWWYvNjd3cXgwNjRkOC92bm4KQ1FnSTRQNzc3N2Q0ckZOV1FMT3lz -cWlzckFTZ3NyS1NyS3dzQUR3OVBUdW0vM2ZlZVNjbWs0bjkrL2ZmZEN5RHR6ZGhxbzdDMERLeQp3 -YmNISDdNQ2FmVWRRbG1ZYXhtendpZ1dFeTlhaGpBQ1ZDL083c3ZqNzY1aXpEcGk4ZUxGZlBIRkZ5 -eGR1dFNxNDUxaXpqazVPUlFVCkZORFkyRWhCUVFHNXVia0FuRGx6aHJhMnkzVTl0MjdkU21Oakkw -bEpTVGNkSzJSVUJxWjJIUmxHcGo3WGFsWEZneTF4L1hUL2pmZHEKUEVsbkFTN3dOYjZiUkxZSHNM -VjhETVhmaDRxVzRuYXNYcjJhbDE1NmlSVXJWdUR0YlYwc3ZkM05lZXJVcVl3WU1ZSzllL2NTRnhm -SApva1dMbURGakJrZU9IR0hBZ0FFY1AzNmNKNTU0QW9DaW9pTFMwdEpJVDAvbmhSZGVZUDc4K1Ji -SGo0eXpISUtpR1pKU0lhUlN0SXB1CmNTYnliazU1NitoRDBBTGVKUEUyV1c3YlhpcitVZ1NmbG81 -aGY2MTdod3c2Z3lzZStOMTMzeEVYRjBkQlFRRlBQLzAwRnk5ZTVOWmIKYjdVNmJGaFJ1MW9RMWhD -S29yQWU4T3dWdzdDOEUvcHA3dnhnTnNTVldqNU9ZN1I1SjdPcWZ6enRlcm5QRnZBaW1tVk00TFNi -VnBoTApxTy9Ed2kxcDd2UEJORnJwY3AvTFdoUkZRZDF1NWJIcFhlK3I5UVJkL2JVaWhpZnB4NWpE -NDZDWC9veFp4Y0QydU1FdVk4d2VCTEdDCjhXNXB6SW9LWWFlSE1HOUx1dnNZc3d1aHE3OVloTjlC -MFJLc1ozZ2ZuZDNkeTV3UHY1dmpMbEpBMzRnMzY1amtsaFhtdkZRajZwSGgKdkZ1WmhMdXVzZXNk -M2RUV0NCeVdoaytMVHFJMGZBSWhhYk5vRlRiVDd0bUhUVkV0b21YWUJRVWpGZnlBN1c1WXlNaXMr -ckNuY2poYgp6N2gzZ28zZTBjM2NMaUpGUnhzWnVlbmdvYittcDd2aXNtZzE2Q1FkM2dJbm1PU1dh -ZGt4YmNHczNUSkdHck1Mb0p1WmMxajdOdEVTCnJNTmdoRUg2U3pxcENiMkxLbjk5aHYxZFR3TjNz -Wnd3MFRLY1RrSnpERXUyREtPaFZUZHZhOGxOME0xZjBkaXVreEM2OUN6dzJ5UmEKaFUyMGUvUmlZ -N1JvRmZZaW55WEVpaGJoZE9KcSt6RnYrMkRrK3JMcm9KdGxEZDJRV1NOYWdjM3NpUjFKaTFIL3pW -bzl5V0FCQTNBMwpnNHEvbU1nQ2Fjd3VoelJuZTlJM0ZVTDFsWFJ5MFh3Yit3UDF2NXpoVFg4V01J -eDJOM3RKSnpUSHNHQnJHdEtZWFEvM2VpVTdtaHhmCjBRcHNRalZGc0NtbWk5SmJPc0tMWGl3aGp5 -WTNlem5IdFlheHVDd0xWUnF6UytKZXIyWkhFaGFydTZTVC9iM0cwbURTZCtpY0IyWSsKNVE3TzZX -Zjd4QzVFdGdYeTBlWmNtdHJkTDduR1haRG1iQzlHSklKQjg1bndIVFFHamRaOVAwQWpQcXpsSGc3 -alhtMlZ6S29QMzJ3Zgp5ZmtXOTB1dWNTZWtPZHNEN3dCSTJpSmFoZFZjN2djWUtGcEdqNmxrRWp2 -Y0xNbkVYL1ZreDY2UkhLbVh6V2hkSFduTzlpQTNBenowCjB5bmtjTXp0MUhrMGk1YlJRL0w1QnYx -L3dOaUNwMnJreE43aDdEcnZYdjl2ZDBXYWMwOVJEREJZUDBrbnpRSEQyV0hXOTNLR0Y1RzgKeXdE -Uk1weUtRVlc0ZENTYjRsT3lGck83SU0yNXAyUmtnOTlKMFNxc1FqWDRVeEliZ1g1SyszV0d3aVp1 -bzk3Tlhycitwekw0L0xETApaQXBKck1DOVh1R09JRk0vRmR5T1I0L25ncWRPTWkyN29JMXhsS0Nq -T2l0MklQcjhRRDdZMjF1MERJbVRrZWJjRS9vT2h0RGRvbFZZCnhTVy9vV3dOMVYvMjR0VjRFY3NT -RWtYTGNDcnhGeE1wMk9sZVN6aVN5MGh6N2duWitwakJxWW8zcFhFSnVsN09VREN5bGx0b2RxT1gK -ck16K3N3MGZBMlJiMmIxRUQ3alBLOTNlaFBhQ1dIMGtuWnlLbXNCWnI0dWlaZlNJUm01enE5ck1N -dnZQTmlKTkVMOFNTajhWclFTbQpUWnRHWkdRa3FhbXBIWS9WMWRWeDc3MzNFaDhmejZSSms3aDQw -Zkw3VVpwemR4blJWeGRKSjYwK2d5Z0wxM2VqVm04U2VaYzQwVEtjCmhzeitzNDMrSm1BaGZGY2lX -c2xsSG52c01WYXZYbjNOWTNQbnppVStQcDU5Ky9ZUkd4dkx2SG56TEk0anpiazdlQWRBUCswbm5h -aVkKMkJxWGpLcmp5WmNCRDc0ZzMyMTY0TW5zUDl2SVV1RG9iRGgxV0xTU2Y1R1hsNGZaYkw3bXNk -TFNVcVpQbjQ2WGx4ZlRwazJqcE1UeQpKNGw3dk9MdGpVNlNUczVHM3MzM1B2cWVOZGR3QjVYb3Z6 -aVROY2pzUDl2SXI0ZXlXZENvZzVkNFdWa1p5Y25KQUNRbkoxTmFhbmxKCjFMMnF4ZGdEeFFDRDk0 -dFdZWkUyNy82VVJPZzdiTTZMQVN6QVBXSjdaZmFmOVJpQjRWVlF0Tml4MTZuMzdMeks1THJTTnRh -VlhkM08KN1pMRnNWVFY5aVZRaStiYzNOek1wNTkrU2xGUkVXKysrU2I3OXUzanUrKys0KzY3Nzdi -NVlpNUJlcmJtTzUyb0dOZ1JtMGFiUWIraApjMGE4K1FjajNLSStzOHorczU1QUl5U3VoL1ZmT1A1 -YVg2ZU02dnlKRk1qNThWVy92L21seGJHeXNyS29yS3drSXlPRHlzcEtzckt5CkxKNWo4WlgvKzkv -L25xMWJ0MUpZV0FoQVRFd012LzN0YnkwTzdMSU0xZjUzcUF2aGQzSFVUNy9HREZETmVBN2lIdXV1 -TXZ2UE91Sk0KRVBvUmJIZUNNZHVibkp3Y0Nnb0thR3hzcEtDZ2dOemNYSXZuV0RUbmI3LzlsdG16 -WitQcGVmbU40dWZuMTYwcHVrdVFPQmhDSzBTcgp1Q250bnIzWkdOVW1Xa2FQOEdJd0h4RWhXb1pU -aUQ0bnMvK3NZYkFSTHI0QmgzYUlWbUtacVZPbk1tTEVDUGJ1M1V0Y1hCeUxGaTFpCnhvd1pIRGx5 -aEFFREJuRDgrSEdlZU9JSmkrTllYTllZTUdBQU5UWC9tb1Z0MnJTSmpJeU1ucW5YS3pwSU9xbUl5 -NmJWb04rMlV5YjgKK0J2WnVFUGlSZnpGUk9idmt0bC9saGplQnB2L0RKZWFSQ3V4anZmZWU2L1R4 -NWN2WDI3VE9CYk4rZW1ubjJiU3BFa2NPM2FNc1dQSApjdXJVS2Q1OTkxMmJMdUlTaFBhQ09HMG5u -ZFNGak9lUXYzNk5HZUFJZDNMTURZcm5KelRITUY5bS8xa2sveHdVelJHdFFnd1d6VGtyCks0dHZ2 -LzJXTFZ1MjBON2VidFZDdGtzeW9pOFlqb3RXMFNXcVJ6UWJZNHhBdThWanRZb0hRMWxCaUdnWkRr -ZG0vMW5HVTRHaHU2SG8KQTlGS3hHRnh6Zm52Zi84N0Z5NWNZT2pRb1dSbFpYSGh3Z1UrL1ZRRE9a -TE94TnNma3JhS1ZuRlR2b3ZObzhsb09hUkhxM2dReFB0awo0T296U1puOVo1bFFJL1JiQXh2ZDJK -akJDbk9lTldzV3djSEJIYjhIQndjemMrWk1SMnJTSHJtWjRLbmQyaFQxd2Jld04xRGZ5eGw3CnVa -UFR1TFpoaGNqc1A0djBOWUgzTzFDeFRyUVM4VmcwWjI5dmJ4b2FHanArYjJob3dHaDA3VGZSTlNn -R0dIeEF0SW91VVUxaGJPeWwKNzR3eUk3bDhRWkJvR1E3RlgvV2tYR2IvM1pSTUE1eDZHWTVyUDhm -TEtWaGNjNzcvL3Z1Wk1XTUdNMmJNUUZWVjVzMmJ4d01QUE9BTQpiZG9nUFF2OE5GSlJwUk1POXJx -RkJwTisyMDU1RXNvN0RCWXR3NkhJN0QvTDVEVkQ4VXZRM2lwYWlYYXdhTTVQUHZra0gzNzRJWC80 -Cnd4OVFWWlg3N3J2UHZjdzVVN3MxTkpvQzg2Z0lPb2VlMTJsM2NBYzFMcnljSWJQL2JvNEM1SjJB -b2dXaWxXZ1BpK2JzNit2TG80OCsKeXFPUFB1b0VPUnFqenlBSTNTVmFSYWVvaGlBMnhZYUFvdWY2 -R2ZrVUVpQmFoRVB4UDVYQkJ6TDdyMVA4REpCU0JrWC9FSzFFbTNScAp6czg4OHd5dnYvNDZFeWRP -dk9FNVJWRllzV0tGUTRWcGdwd0F6VTVLai9TNmcxb1AvVzRDZWhISld5N2VRVHY2M0VBS1pQWmZw -MFNiCndQOFQyS3o5eXJ2QzZOS2NIM25rRVFCKytjdGYzcEN1cmVpNDNaSFZoUGFDT0cydU5iZjRa -MU51UG85bVB6a3M0dm9kdEdYMlg5ZWsKbU9ETWZOaDNWTFFTYmRPbE9ROGRPcFRXMWxZV0xGakFY -Ly82VjJkcTBnWWFUVHBSRGI2VXhQWUNSYnRyNFpadzlRN2FNdnV2YTNKVQpLUDh6TkdrM01sVXoz -SFRxWWpLWnFLcXE0dlRwMDg3U293MDBuSFR5ZmVTZG5QZlNyekY3RWVmU0hiUmw5bC9YNU5kQ3lm -UFNtSzNGCjRvYmdvRUdEeU12TDQrNjc3eVk2K3ZMR2hxSW9QUGZjY3c0WEo0eWNUUEFzRXEzaUJs -UlRKTnZDOUd2TWx6dG9qM1BaRHRveSs2OXoKVEFyazdJT2lwYUtWNkF1TDVod1RFOE1ERHp5QW9p -aFdkWXpWUFlvQlVyV1pkUEo5eENoYURkcXZKOTBWcnR4QlcyYi9kVTZ3RVJJSwpvZmhyMFVyMHgw -M04rZno1OCtUbTVwS2ZuNCt2YitjdFcxeU9ORzBtbmFqR1VNcERHaXdmcUZHOFNXU2hpM2JRbHRs -L25aTmdBcFpCCitXN1JTdlJKbDk4dkZ5NWN5SkFoUTNqenpUZnAzNysvK3hRN0dxck5aWVBxOE5H -MEdQVlpSTitWTzJqTDdML09TVFBDaGRmaHNEVG0KYnRQbHpQbWRkOTZodkx5Y2tKQVFEaDQ4eURQ -UFBNT2tTWk9jcWMzNTlCbW95YVFUMVdobVc1aE9LbzEzZ3F0MjBEYW9DaTB5Kys4RwpSclpDeVo5 -dWsrUVlBQUFnQUVsRVFWU2d0Vm0wRW4zVDVWU212cjZla0pETHRYVVRFeE01Zmx4N1lXVjJKenRR -azlGUFo4TEgwR0xVClo5RUJMd2J3bm90MjBQWS9sY0VxbWYxM0RmbW5vZmdQMHBqdFFaY3o1NE1I -RDE2VEhYajE3eTZaSVJnU284bE9KNm9oa0cxaExhSmwKZEFzajNxeHcwUTdhTXZ2dldyd1ZTQ3VI -b3IrTFZ1STZkR25PMS9lNytvLy8rSStPbjIrV0lUaHQyalJXcmx4SlJFUUVPM2Z1QktDdQpybzZI -SG5xSWJkdTJrWm1aeWRLbFMvSDM5d2RnenB3NXZQSEdHM2g0ZUxCZ3dRSkdqZXFpSGJtakdaRUV4 -aE5pcm4wVHpvYVBvOG1vCno0M0Fhc1p6eUFVN2FNdnN2MnNKTjBIWVNpalpLRnFKZGxpNGNDR0xG -aTJpdWJtWnZMdzhYbnZ0Tlp2SFVGUTd0OUpldDI0ZC92NysKUFBMSUl4M20vT0tMTDNMMDZGRmVm -dmxsL3VNLy9vUGV2WHZ6eTEvK2t1cnFhdkx6OC9ueXl5ODVkT2dRdi9qRkw5aTY5Y2JrRDBWUgpV -S2ZhVStWMWVQdkREQVU4dFJXbXBocjgrVHBsREEwbS9jMmN2VWpsZFlhanlYV2lIcERRSE1QOGto -eVpaUEpQK3BtZzdtMzQvcEJvCkpWZnhyWEpEeVFsYlVSU0Y1ZXJ0VmgxN3IvTGxOZGM3ZCs0Y1E0 -Y09aZGV1WGZqNCtIRDMzWGZ6ekRQUGNNY2RkOWlrd2U3Zk4vUHkKOGpDYnpkYzhWbHBheXZUcDAv -SHk4bUxhdEdtVWxGd09WU3NwS1dIOCtQSEV4OGN6ZXZSb1ZGV2xyazZBUVdabmFzNllBYzZIamRP -bApNWnZ3NDJNWDdLQXRzLyt1WlpnQ0oxN1NtREZyQUI4ZkgxUlZwYWFtaHNiR1Job2FHbTd3Ukd0 -d3ltSmdXVmtaeWNuSkFDUW5KMU5hCmVubHR0NlNraEpTVWxJN2pCZ3dZMFBHYzAxQVVHS0s5cEJQ -VjRNdjJNTHQrcVhFYVI3aVQ0NWJ6bTNSRmxNeit1NGI4QnRqeVBOVFgKaUZhaVBYeDhmSmc3ZHk2 -OWUvY21LaXFLa1NOSGtwMmRiZk00VnIrRG1wcWE4UGJ1WG5hWExWOHh1bHJQbnJuelh6K1BpWUF4 -a2QyUwpjaU1EMHNCdnU1MEdzeDhYemZsYzlORGZscmNYcVM3WFFUdFk5ZVpybWYwSGdCRVljUVNL -Q2tRcnVZcnpoWENoME83RG51b2l5dWk3Cnd1L1pXL2c5QUowNTIrblRwNWt4WXdhN2QrL0diRFp6 -Ly8zM3MzTGxTaVpNbUdEVDlTMmE4L2J0Mi9udGIzL0w3dDI3T1hUb0VOdTMKYjJmQmdnWDg1Uzkv -c2ZvaVdWbFpWRlpXa3BHUlFXVmxKVmxaV1FEazVPU3daczJhanVQMjdOblQ4ZHoxekV5MStuSzJr -YWpONUlFRAo1a0JBWC9XYUZZeXNaaGl1dEp6aHJacjRybktFelA0REFvM1F0eGpXclJhdDVEck1Z -eTcvdTBMVkxMc00rd24zZFA3RW1ILyt1OEtzCktkYzhYVnBhU201dUxrbEpTY0RsVm45RlJVVTJt -N1BGWlkwLy92R1B6SjQ5dTZNRGQzcDZPbXZYcnJYcElqazVPUlFVRk5EWTJFaEIKUVFHNXVia0Fa -R2RuODhVWFgzRGt5QkVLQ3dzeEdBd0VCRGk1TTBiY0tlZGV6d3JhUFh0enhGZC9mUUhieU9NN0Y0 -ck9NS2pRVUpYTgoxalBCbGc5MmNlSk1FUElCYk5PYU1XdVF2THc4Tm0vZXpMbHo1Mmh1Ym1iVnFs -WGNmcnQxbTR0WFkzSG1mT0xFQ1FZUC9sY0R6dWJtCjVwdlcyWmc2ZFNwcjE2N2w3Tm16eE1YRjhm -enp6ek5qeGd3ZWV1Z2hCZ3dZUUdabUpyTm56d1lnTWpLU0dUTm1NRzdjT0R3OVBaay8KZjc3Ti80 -RWU0UjhDUWQ4NTk1cFdjTmFjb2J0NnpTWUMrQ3RKb21YWWxhRFQ2U3c3R2lWYWhuQ0dHT0hJSExo -UUxWcUpQZ2dNRE9SMwp2L3Nka3lkUHBxR2hnZkhqeHpOMjdGaWJ4N0VZU2pkcjFpelMwOU9aT1hN -bXk1Y3Y1NDAzM2lBb0tJamYvZTUzM1Jadkt3NExwY3NjCkRyZHBMeml6T0hrU1o3MzBGZHQ4am52 -NUVOY3hzcmphZml6WTdxaTFOUDB3OGhLVXZLeXpqRDg3aGRMZHFmN05xbU5YS1ZONmZMM08Kc0xp -czhjd3p6N0J0MnpiYTJ0cTQ4ODQ3Q1E0TzV1bW5uN2E3RUNIMDFsN20yaVcvVE4wWnN4ZHgvSTBJ -MFRMc1JrSnpEQXUyRDdaOApvQXVqQVBtbm9QaVBPak5tRjhLaU8yM2N1SkdaTTJleVk4Y09LaW9x -K08xdmY4dDc3NzNuREcyT0owWjdBWm9uelgxRlM3Q1piUzVVCmNhNVhxNWtsVzF4clU5TldmQTB3 -YkJzVXpSV3R4TDJ4K0k3Nm4vLzVINzcrK2wrVnNsOTg4VVhYS0I4YUVROSsya3JYVmhVdjlnVHIK -YTlic1NRWkYrSXVXWVJkQzIzMVp1WDA0RGEydUZhTnRDOUVtaUYwQlpjc3RIeXR4TEJaZmhTdFdy -T0R1dSsvRzA5T1QxYXRYczJmUApIdGNvZXRRdkFUZ2lXc1UxTkFZT3A4bDRTYlFNcTFFdzhUbnBv -bVhZQlYvVmcvS0tFWnhzY00xT0xkWXcwQVRWYzJHdkd4U2cxQU1XCnpUa3NMSXdWSzFad3l5MjNN -R3pZTUQ3KytPT2JGajdTRFFuYVcwZzdhbzVBVDdITnJlU3ozd1ZDNTR5cXdvV0RPZXgwNDRMNXVl -MncKN1FWbzF0Y1hONWVtUzNQMjkvZS94b1JiV2xvNGRPaFFoem5YMXRZNlJhQkRVQlNJMkNOYXhU -V294bEQyQmVySG1EMElZcG1MZE5IMgovVDZUejQ2N3pvYW1yWXcrRDJ2bjBIbTZtMFFZWFpxelN6 -ZHpUVWdCTDIzMXo2azE1OUN1NktlZy9rbkdVWXYrNjB6MHVwRE1XL3NTClJNc1FncGNDbVpXdzlu -M1JTaVNkMGFVNTc5bXpoK1RrNUU1TGVBSmtabVk2VEpURFNRb1RyZUFHOXB2OUFIMVVrZkVtZ2Ir -anZYdG8KS3dtTnNjemJrV0w1UUJja3pBZ1JYOERHOWFLVlNMcWlTM04rNVpWWFdMaHdJYzg5OTF5 -bmE4emZmdnV0UTRVNWxEaHRtV0NiVnhMSApmUzZnbC9DdE12SjAzOTBrdGpXVXhWdUdvcGQ3Ymsr -U1RGQmZBTHNQaWxZaXVSbGRtdlBDaFF0cGIyL25qMy84SXlOSGpuU21Kc2ZpCjVRdWhGYUpWWE1N -Wjh4QlE5TEdNNU1GUWl2RVRMYU5IaExYN3NYeXJlNWIvSEtiQTdoZWhRY2RiUnU3Q1RhYy9Cb09C -bi8zc1o4N1MKNGh5U1VrQkR6VkpWRkw0enQ0bVdZUlVLSmo1amlHZ1pQY0pmOWFSczUwaXFtMXl2 -RzdnbDh1dGg4eXhwekhyQjRuZlRpUk1uTW1mTwpISDFIWjF4TkgyM04raTc1RCtPQ1o2Tm9HVmJS -d2xoZDl3UTBxUWErMzUvTG5oclhTSnF4RnBNQ0l3OUIwVXRBdTJnMUVtdXhHT2Y4CjZxdXYwdERR -d0hQUFBZZVB6K1dhdHJvT3BZdlZWbGJnU1hNZjlCRGI3RUV3UzlGM1ZJUEhpYUdzTzZuL2pVeGJD -RFpDd2xvb1htUDUKV0ltMnNHak9MaFZTRnhnR2dmdEZxK2hBVlh5b0ROTEgvVDNHT0M3cU9IUXU2 -dHhBRmgySUV5M0RxZlEyUWZ0Zm9ieFN0QkpKZDdDNApySEhMTGJkWTlaZ3U2TjlmVTV2empVRWph -TkhRK25kWGVOT0hUM1FjT3BmUWtNQ2lYUU5FeTNBcTZVWTQ5eG9ja2Nhc1c3cWNPVi9wCkdudjY5 -R25PblR2WDhYaDFkYldZRHRuMm9MZUduQms0YkE1RkQwc2FteGlKcGo3VmJDRHVVamh2YjgxQXIv -cTd3NmdXMlBBaXRHdi8KYzE5eUU3bzA1L256NS9QNjY2OXo0c1FKaGc0ZDJ2RjRRa0lDeno3N3JG -UEUyWjFvRFMxcG1DTFpINkI5WS9ZZ2kwMDZEWjJMYkEvZwpveTA1WEdyWGQweTJ0U2hBM2drb1dp -QmFpY1FlZEduT3p6NzdMTTgrK3l4ejVzemg1ei8vdVRNMU9ZYW9QdUNybmZyTkY4eFpxRXFMCmFC -azN4WUFuSzlCbk41QkExWXQxNVNQY3BtTzJ2d0dTUzZIb005RktKUGFpeXlsRldWa1pKMCtlN0RE -bXp6Ly9uSWNmZnBpNWMrZlMKMEtERDBsWDl0TFVadE4rcy9kS1VUWXpoTUI2aVpkaU1wMnJrOEhm -RE9WQ256eG0vclFRWUlPWWZzRmthczB2UnBUbi8rNy8vTzU2ZQpsMmNkKy9mdjU3SEhIdU9XVzI2 -aHZMeWMzL3ptTjA0VGFEZml0Uk5MM09hZHpFa2ZiWWNpZWhMQ0J6b01uVk5VYUQrYXhhYnFFTkZT -Cm5JSVJTTm9BZTh0RUs1RmNUWDE5UFQvKzhZL3AzNzgvQXdjT1pOT21UVGFQMGVXeVJsdGJHNkdo -b1FETW1UT0hSeDk5bEVjZmZaU0gKSG5wSWYrbmNCaU5FYUdmYityUjVFS0R0VGRYRGpLTmVoL1V6 -d3MrbThrNVZqR2daVGlQM0lCU3ZGcTFDY2oyLy8vM3ZpWStQWi83OAorWmhNSnVycjYyMGVvMHR6 -TnB2Tk5EUTA0T3ZyeS9MbHkvbjQ0NDh2bjJBeTZTLzJ1VThLZU80U3JRSUFGUU43ek5yZVJ2ZW1M -OHZSCjM4d3pvYjRQODNZbmlaYmhORWJYd05vbG9sVklPbVBObWpWczNMZ1JiKy9MeTVkQlFVRTJq -OUhsMU9paGh4NGlOemVYVzIrOWxiNTkKKzVLVmxRWEF2bjM3Q0E0TzdxWmtRZlFORmEyZ2c1YUFi -R285dExQRTBobkZqRUJ2b1dmeExaRXMzSktHM25SM2wrRnRzUFkxMFNvawpuWEhzMkRHYW1wcVlN -V01HT1RrNXpKNDltNmFtSnB2SDZYTG0vSk9mL0lRSkV5YXdkKzllUm84ZTNmRzRxcXE4OGNZYjNW -TXRpcml6Cm9oVjBjTUtjQUp3WExhTkxUT1JRaHE5b0dUWVIxUmJFZTF1eVhhWUR1Q1dHR0dIem41 -R2RTeHpNOTlXZEJ4SFVGVy9oNG9iTzY5d0QKTkRVMXNYZnZYbDU2NlNWdXZmVldmdnJUbi9MaGh4 -L3l5Q09QMkhSOVJWVlZ6ZitKRlVWQm5kck5rNzM5NGFrR01JcXYrS0lhL1BoaQpZRDR0Um0xV29U -UGd4UXAreERFZFJXZ0VxOTVzMkRhV3d4ZDlSRXR4Q24xTWNQWTFxRDBqV29tRytWYWhwN2FtS0Fx -c3RYS00wVGRlCkx5VWxoY3JLeS90Y3ExYXRZc21TSmJ6MzNuczJhWEQ5cVVaU3NpYU1HYUErYUlS -bWpSbWdnYkc2TW1ZdjFjamV5aEZ1WTh5aFJtaDUKUnhxekh1alhyeDhsSlNXMHQ3ZXpjdVZLYnIz -MVZwdkhjSDF6VHRUT1YvVERack5vQ1YzaVNSZ2ZFQ3RhaGsyMEh4M0dsak02Mi8vbwpKdDRLUks2 -RzQvdEVLNUZZdzhzdnY4d3p6enhEWm1ZbTN0N2VQUERBQXphUFliRXFuZTZKT1NaYUFRRHRIakVj -OE5kdXV2WkJ4dEtvCm82cHpDYzNSekt2cUpWcUdVMUNBSWR1aHRGaTBFb20xOU8vZnYxdXh6VmZq -MmpQbjRFZ0kxRWFqdEF2bVlab05KUENtUDUraDNWbjkKOVhpcFJyN1luU1phaHRQSU93R2xuNGhX -SVhFMnJtM08vZnRxeGhEM21iVzdsbHRFTHBxNVVWWVFkSFlnaCtxMHMxemxTUElhWkNFagpkOFcx -emJtM2FBR1hhZlVaekNsdmJXWUVHaG5PVnZTem9SYlZGc1JmSy91S2x1RVVzb0IxTDR0V0lSR0Zh -NXR6bERaMlQ2ck55YUlsCmRJb1JiLzdPUU5FeWJHTHZnWFJhVmRkKzJRS2ttR0RueThpZWYyNk02 -NzdLWTVMQTU3Um9GYWdZMlJQY0xGcEdwOVF4bHBNNjJoTk8KYU9oTjhmZmF5ZlowRkwxTVVEMFht -blJXSlVGaVgxelhuUHRwby9oTmMwQXVGejIwWjg2ZWhQT2hqa0xuQWxSUFB0NDFXTFFNaHhObwpC -TThQNGV4eDBVcjBTWDZDdHFzOTJvTHJtbk84Tm1wT0h3L1JwZ0h1WXl4Tk92cnpxeWRUT2RQazJv -WHpQUlRvVXdpSGRvaFdvajg4ClRTckRnNytuYUxGMnFrLzJGUDI4TzIzQmFJTHczYUpWb0JvQytT -NndSclNNRy9CaUFLdlFUL0pHWEdzWUgrMlBGeTNENFF6YkErVmYKaTFhaFAwSURWZnJWSDJMako0 -ZEZTN0Vycm1uT2lRUEJRL3pNK1dMd2NGb05XdHZSVVNqVVVlaWNTVlhZVUptT1h2UjJsOUhuWUtO -dApwUmNrUUZKVU8xNDdkMU94UWZ6K2tyMXhVWFBXeHF6d2tObjJHcTZPeHNBSXl0RitpNndyUk5Y -MFo5ZjVRTkV5SE1ySVM3QjJqbWdWCittTlluMHVjWExtTkV3ZGRjK2RVUDF2MXRxQ0JFcUh0bm5G -VStaMUhTek0rSXo1OFJJcG9HVllUMnU3SDBncHRoaUhhaXd3RGJIcFIKdEFyOWtkK25ubldMZDZG -cTdZdXBIWEU5Yy9ZSkJMUDQ5ZVp6d1ptZ2FLdW9mZzNqcU5aUi9ZenF3MmswdHVsSHI2MGttV0Qv -LzBMYgpKZEZLOUlQUm9ESTg5Q3hGQlFkRVMzRTRycmVzMFQ4WkRPSkxWTzhOMGRhdDlTS0tEOUZH -ZUtFMTlHN3F4WmRIbzBUTGNCZ1JKcmo0Ck50U2RFNjFFUHdUNnFxUzJIMkg5aDY1dnpPQ0tNK2Zl -WHFJVmNNazNqVE5ldGpkMGRDUjdHRU9MVGo2TGZWUVRLeXVHaUpiaE1Qd00KRUx3YzloNFNyVVEv -eEllM1k5aTFsKzI3dFJmOTVDajA4VzYxaFY1SFJTdmdsTG1mYUFuWDRNVkF2a0EvbTJwK1p3Wnlw -RjQvOVQ1cwp3UUNrbE1MZU10Rks5RU5hUWlzMTM1UlQ1VWJHREs0MmN3NkpCdjhxb1JKVXhZTTl3 -YlkzYzNRY0JyNG1DeTF0VE42TTZMWmczcWxNCkZDM0RZWXc0QXVzL0U2MUNQNHhNYkdUVGtsMjBY -WExobmI4dWNLMlpzd1pLaERZSDVOSmdhaEVyNGlvVVJySkxKNkZ6aWdvVit6SmMKdGxIcjZJdXd2 -a0MwQ24yZ0tDcjV2YzVUL1BZT3R6Um1jRFZ6VGhEZm4rOW9pSFkyM1V6NDhURURSTXV3bXZqNlJF -cXE5VlAwM3haeQpWVmo3aW1nVitzRFBXMldvNTNHS2x1NFZMVVVvcnJXc0VTWDJqNmthZzlrYm9K -MVdWT2NZeDJtZGhNNEZxZDY4djJ1UWFCa09ZYkFKCnR2NFJFQjlFcEhtaVExVDhEKzVuOHpZWnh1 -TFVtZk95WmNzWVBYbzBnd1lONHEyMzNnSmc1c3laeE1iR2twR1JRVVpHQnF0WHIrN2UKNExIOXdW -dHM4a2xkOEhEYU5CREdCK0JGREIraG4xQzBsaE9wWEdqUmJyZVk3aEp2Z3VOdlFJdTJRdDQxeWNE -WU5pNXQyc2srRnpIbQp0clkyTWpJeW1EaHhZcmZPZDlyTXVhYW1obG16WnJGcDB5WThQRHdZTjI0 -Yzk5OS9QNHFpOE54enovSGNjOC8xN0FMOW9nQ3hNK2VEClpuOUFHenZLRll6bWtrNVdyZUl2UlRE -L2dEYXI5L1VFc3hINEs1dy9KVnFKOXNsTmJHYnJzaDIwTkxyTyt2THJyNy9Pd0lFRHFhdnIKWGhj -a3A3MTdOMnpZUUdabUptYXpHWDkvZjhhT0hjdkdqUnNCVUZVN3pEYmp4T2JYdDN2MjVvaXZOcFkw -dkJqTUdnSkV5N0FLRDlYQQoydDJ1VjlqSVM0R1lyK0NJNjFTd2RCaWpFMnJaOVBaMmx6TG1ZOGVP -OGZubm4vUDQ0NDkzMjkrY1pzNzUrZm1VbHBaeTZOQWhUcDQ4CnllZWZmODZHRFJzQWVPT05OOGpO -eldYMjdObmQrNVF4ZVVLWTJKVHRzK1lNVU1RYmpJS0JMeG1HWHN3dS9NSUE5dFQ0aTVaaGR6SjIK -UVVXUmFCWGF4c3REWlhqUTk2eDFvUnJNVi9qRkwzN0JTeSs5aE1IUWZZdDEycktHbjU4ZnI3MzJH -ai83MmMrb3Fha2hOVFVWYjI5dgpmdktUbi9ELy90Ly9vN2EybGwvOTZsZk1ueitmWC83eWx6ZWNQ -M1BudjM0ZUV3RmpJcTk2c2xkZjhCRDdCejRTcUkyTk54T1pWQ0krClM5SWFBbFV2M3F2VVZzS09Q -Y2l2aHFLUFJLdlFOZ25oN1hnZE9NREdMKzJ4dnJ6MW4vL3NUR0VYang4cWhLcXVub1RQUHZ1TWlJ -Z0kKTWpJeUtDenMramhMS0twZDFoUnM1NEVISHVBLy8vTS95Y3pNN0hpc3ZMeWNKNTk4a3VMaTRt -dU9WUlFGZGVwTkJzc2VDV09MYjNLQQpZMUVWSDFhbTV0R3VnY25xSGg2a1VDZExHcEZuQjdHNFFq -K2hmdFl3cWhuVy8wbTBDbTB6UExHSkhSOVZVRi9iNnFBcjVQWjRxVlJSCkZCaHI1UmpmS3RkYzd6 -ZS8rUTN2dnZzdUpwT0pwcVltYW10cm1USmxDa3VXTExGSmcxTjNqS3FycXdGWXMyWU5PM2Z1SkRN -ems1TW4KVHdMUTJ0cktzbVhMdU91dXUyd2ZPRXhzUkdDcmI0b21qTm1UY0FyUnh4S0JuK3JCSi90 -Y0t4TndtQUxGc3Z4bmwvaDRxb3dNUGMzRwp0OHNkYU16aWVlR0ZGemg2OUNpSERoM2kvZmZmWjl5 -NGNUWWJNemc1enZtKysrNmp1cnFhZ0lBQUZpMWFCTUN2Zi8xcnRtL2ZqcWVuCkovbjUrY3lZTWNQ -MmdVUEVkajI1Nk5zTEVOL0V0VVpIYTgxQk5VblV1RkRvM0FBVDdINFJWUEY1VUpxa2IxUTc2cTU5 -Rk8vVXhxYTUKTTFHNnVSY2xiRm5ERml3dWEvd3NEdnpGRlR6YWwvQkRLb1BQQzd2K1pReDh4cU1j -US91RzU2MmFXRmMyM21VYXRrYWJvSFUrbkJaZgpjMHVUak9yYlNObXlDcG9iblBYSkpYWlp3MTdv -UDBQUXd4dDh4YjRyanZ1SkwzVGt5V0JkR0ROQVdGMml5eGh6b0FGOFA0WUQwcGh2CndOOWJaYkRu -OTZ4LzY0aG9LYnBFSDFrS055TXFRZWovb3Qwamxsb1A4ZWxmM3pGUXRBU3I4RlFOZkxZM1NiUU11 -MkJTSUhFZEhOZ3UKV29uMlNPN1ZodmxBSlp1V1MyUHVMdnFmT1VlRkNyMThrNi80VURBUGduV1Rk -QkpWMzRlVERmcW9rbWVKbkgxUS9KVm9GZG9qdjA4OQpHNWJ1cHJYRmRaSktSS0IvY3c0VCsxVyt4 -aThFNkY1NnByMW9ZSmd1eW15YVZJVXY5b3IvTUxNSG95L0EycVdpVldpTFlIK1ZmcTBuCktDbzRK -bHFLUzZEOWQ3UWxRc1F1S1p6eUZYOEwxeEluV29KVjlHcE1vT3FpcjJnWlBXWkVHNng5VGJRS2JU -RTRyZzN2blJXVXJaTEcKYkMvMFAzTU9FbGRWUmxVOE9lRWpkdGJzUlFyNzBmN21ta0dGYi9mMUZ5 -Mmp4NlFab2VTUG9sVm9pOUc5NjFqM2JpWHRyWm9QL05JVgo0cWQ5UGNIa0NYN2lOaHphZkpKcE5Z -aGRWenVJUG1vZ3h6ZkY4WjNPYTJna211RFFxOUIyU2JRU2JSQVdxSkpoT01MYVJidWxNVHNBCmZa -dHpWTUxsS1prZ0x2cUtYVTR3NGMrWDZLTnpTUEVCZmFkcGh4bWhhVEhVdWthcDRSNlRudEFLbTNl -eTdldVRvcVc0TFBvMjU4Z3cKb1pjLzZ5ZDJKbmlKWVRUcjRFL1l1em1HSGVmMDAvMzdlbndORUxZ -U1R1d1hyVVE4Qm9QSzZMZ2F0cit6aFRQSHhZZVF1akw2WG5NTwpGN3ZXZXNKWGJNcDJNUWxDcjI4 -dG13L3FkOWFzQUFNM3crWk5vcFdJSjhxc0VuNzZNR3VYeU80QnprRDcwNjZiRVNJdU0wODFSWExl -Cm8xN1k5YjNwcTR1dTJna3RrWlNkMXNmU1MyZU1PZ2FiVjRoV0laNWhmVnBvV2xmT3puWFNtSjJG -dm1mT1FkWENMdDNzMjE5b2NmMWoKREJGMmJWdllkVGhadElSdWsxOFBSVytKVmlFV0Q1UEs4SWp6 -RkJYc0V5M0Y3ZER2ek5sb0FyL0R3aTUvd1M5QzJMV05lTE1hc1ptUgoxaERYR3NiNms5clgyUms1 -UU5Fcm9sV0lKUzZzbmFTYWd4VDlWUnF6Q1BScnpwRUpZQlFYeGxidEs2N3ppY3BRTHFLTnppczM0 -K0FSCmZjNmFCNWxnKzR1QUcyY2Y1eVkyYy82cmNpcEx6NGlXNHJibzJKekRoVjFheFNnMCthUU03 -UmVwNzlWcVpzMHhjWCtqN2hKbmdwUC8KQjgxaVM0UUx3OHREWlZURUdUYTl2WjJMRjFwRXkzRnI5 -THZtSENHdVQxNmJ6d0JhakdLcXFuc1JSeGsrUXE1dEN5ZVBKNk9Yd3Y5WApDRGFDNFQwNDk3MW9K -V0pJakd6SFVMbWY5VitLcmswdUFUMmJzMWxjR0Z1RGJ3SWd4cHpQa0liV1RTK3FMWWhGaDZORXk3 -QUpUd1ZpCnY0WmRGYUtWaUdGa1loTmJQNmlnOGFMcnRvL1NHem8yNTlQQ0xuM09OeEFRTTd2WWl2 -YVhDczZmSElEV1AwQ3VKN01DTmhXS1Z1RjgKL0x4VmhuaFhVL3gybFdncGt1dlFwemtiakVJak5V -NzRpU211NEVrSWxScnZkaExSN3MrU2c3MUV5N0NKL05OUTlLRm9GYzZuZjB3Ygp6VnYzc2JHeVJy -UVVTU2ZvYzBNd0loNk1ZcjUrcVVZelp6ekZiQWEyMFIrdHowZ2JUdzFBMWJqR3F4blZBa1Z2aWxi -aGZQSVNHNmo2CisxWU9TMk8yTzBlUEhtWHMyTEVNR2pTSU1XUEdzR3pac202Tm84K1pjMVFFY0Vq -SXBadDlVNFFsbnh3alZzaDFyU1ZFOWVXRC9mcW8KTFEwd1ZJRU5MNHBXNFZ3Q2ZWVlNsSk9zZTFz -MlBYUVVIaDRldlBycXE2U25wM1BtekJteXM3T1pPSEVpQVFHMmRTdlM1OHc1WEZ5awpScTFmcExC -cmJ5WkkyTFd0UVQzZG4xWlZIeStwL2lhb2ZBWGEzV2ovYTJCc0d3RjdkbFB5bVRSbVJ4SVZGVVY2 -ZWpvQVlXRmhEQm8wCmlNMmJOOXM4amo1bnpxSGlDdXFlOXZVRW5GOVR3NHRZam12NHp4V2tldlAz -dmZvb3hCUmxnZ3NMb0tGV3RCTG5rZC9uSXNYdlZ0SjIKeVkwemEyekVhRVVXa3NyTmM1WDI3OTlQ -UlVVRjJkblpObDlmdSsvMm14RWtKbXRKUmVHNDcwVWgxMjVDMngyclBjLzJvNmxkKzFtTApBUWJ3 -L3p2c2Q1T20wQ0VCS24yYWpsRlVjRUswRk4zUnRxZXE4eWVhTjBGTGljWHo2K3JxK09FUGY4aXJy -NzZLbjUrZnpkZlhuemtyCkJ2QVhFNm5SN3QyUEpxT1lXZnRCdEJzMzdLOTY4cmU5ZlVUTHNJZ1JT -Tm9BMjdhS1Z1SWMwaEphK2Y2YlNyWWNjZE4weDU1eXNxdHcKM2I3Ly9IZUZPVGNjY2VuU0phWk1t -Y0xERHovTXZmZmUyNjNMNjgrY3crUEFKTWFjRzN6N2NQbUxqTE14VUlKMld6ejVuMCtpdmxYNwpM -NlhjQTFDOFdyUUt4Nk1vS3ZueGRSUXRxVVNWcXhoT1IxVlZwaytmenVEQmczbjIyV2U3UFk0K2Rt -K3VKa3JjaHR4NVh6RWJjdDRrClVxdlJRa2UrcWdlZjdPMXIrVURCakw0QXhlK0tWdUY0SW9KVmhy -UWZadTFpYWN5aUtDNHVadW5TcFh6enpUZGtaR1NRa1pIQjZ0VzIKendxMFA5MjVubkJ4QmVaUCtv -bDV0ZGRxdU5DUnVTYVJDeTNhVG93WjNnWnJYeE90d3ZGazlyNUUxZWU3S1Q4bHJnbUZCRWFOR2tW -NwplOCs5UW4vbUhDb28rY1FReUNtdkdrUWtnZXhCWE8zb20rR2xHbG14VjlzYmxXbEdLUHVUYUJX -T0p6K3VocUpGZTBUTGtOZ1IvUzFyCm1NOEt1V3lMb09RVEExNXMxbWdWdXNpTGZhaHVFaGR6Ym9r -K0pqajBPclNLYmZYb2NFYjNycU5vaVRSbVYwTmY1cXdvNEY4bDVOSjEKZnRGQ3J1dEJmMW8wK0dj -eXFRWlc3dTBuV2thWGhCbWhaVEhVdW5pdCtCR0pUYXhkdEZ1MERJa0QwTjY3L21hRXhZSkp6RFRv -aksrWQpHZUlaalhiWTd0V1F3TEY2YmM3b2ZRd1EvamtjM3k5YWlXTkpUMmlsWk1sTzBUSWtEa0pm -NWh3bEx0YjNtSytZVHR1N05OZ3IwS0FxCmZMVzN2MmdabmFJQWc3ZEE1VWJSU2h4THYraDI5bis2 -VTJiOHVURDZNdWR3WHlHWGJmZnNRNFBKK1MxN1BBaWtITzJ0NmNZM3huT2cKenZhTUoyY3c2amlV -TFJldHdyRkVtVlZxMTFmSU5sSXVqcjdNV1ZCTmpVWS9VUkVKMml0YXI2aXc5b0EyWjgzNURiQnVv -V2dWamlYUQpWOFZ2L3o1T3lhdy9sMGRmNWh3c3B2dkllZDlnSWRjOWdmYktieVkweDdMN3ZHMmxE -NTFCTmxEMHNtZ1Zqc1hEcE5Lbi9qQUhkc2dlCmYrNkF2c3c1UUV6YTl2ZCtJbEsyWVF0aVBoUnV4 -cVlEQTBSTHVJR0JKaWgva1p1WEIzTUJodm1kb3J6d2xHZ1pFaWVoSDNNTzdRVWUKenY4cXB4cDhP -ZW50L05xU1hrUlNwYkdXVkFuTlVXdzdxNjJhMG5FbU9QVVhhSGJ4Yi9tall5K3c4Vk54cmRra3pr -Yy81aXdvVXFQVgpaeUNxZ0dYZkZyUzNybHRlbFN4YXdqVUVHY0g0SHB4MThXcVllWWtOckgzM085 -RXlKRTVHUCtZY0xpWTZvTTR2UnNoMUR5TW02YVVyCjRpOUZzUEZVaUdnWjE5Q3ZCS29xUkt0d0xO -bDlXbGhYSUdPWjNSSDltSE5vbTVETG52RVZrV2loVUVxZ2dPdDJ6WGVIdGJYV25HYUUKelorSlZ1 -RllCc1cxVWY3K0RqRlZhaVhDMFk4NW04WHNVQi8zZGY1aXBqZTlPYU9oRXFHeHJhRVVuZ2dUTGVN -YUxuMGhXb0ZqU1Fodgo1OFRxWFRRM2lKbVVTTVNqSDNNT2NINWZvWGJQT09vOG5KOHVmbEZqSlVL -UEhOVld2SFVXc0h1OWFCV09JelJBcFgzN0hzNVh5OUtmCjdveCt6Tm5UK2IzN21uekZGUGJaajdp -R0F0Y1QweGJNRjBlMW8wY0J6bjBxV29YajhQRlVpVGgxa0tONzYwUkxrUWhHUCtZc2dBdSsKenQ4 -QVV6QlJncGcwOWM2b1BxNnRXZlB3Tmppd1hiUUt4MkF3cUF4U2psTlo0dUtsOUNSV0ljMzVKcHp5 -ZGI0cGVkS2ZSbzJzTjBlMgpCL0NQS2pIUktwMWhVdUR3KzZKVk9JNFJZV2ZadlBxNGFCa1NqU0RO -dVF0VXhZdmpQczVQUGpsUGI2ZGZzeXZxVG1wczF0d0l4L2VKClZ1RVlSdmV1WS8wSEIwVExrR2dJ -cDVyenNtWExHRDE2TklNR0RlS3R0OTRDb0s2dWpudnZ2WmY0K0hnbVRackV4WXZPWDF2dWpGYWYK -Rk5vTjNZOWgybGw0cmx2blZTQXVLdUpzNGE2T244UGEvZmowUUt3d0xkZmpZNERLNnh1MG5pOFVJ -YVZuZEtKWit3WHp0NG9Xb0R1Swppb3BJU1VtaFg3OSt2UEhHRzkwYXcybm1YRk5UdzZ4WnMvajAw -MDhwS1NsaHdZSUYxTlRVTUhmdVhPTGo0OW0zYngreHNiSE1temZQCldaSnVTcjF2ejR4cFY2SHRv -WDhtL05nbXNFVG91Y0ovWlhSY3F1NVBtNGErV0dWZGdEUFhmK08vVUNoQ1NzKzRUck0rQ3VaTGM3 -YVYKWjU1NWh2bno1N05telJyZWZQTk56cHl4ZlIvQmFlKytEUnMya0ptWmlkbHN4dC9mbjdGang3 -Sng0MFpLUzB1WlBuMDZYbDVlVEpzMgpqYlYwbm1NQUFBa0xTVVJCVkpLU0VtZEp1aWxuL1p5ZmtX -aGdBTzBhTUVTejZzUGY5bXVuQTB1UUViWXZGcTNDL3NpQythNUpUVTBOCkFQbjUrU1FrSkhENzdi -ZDN5OWVjMW4wN1B6K2ZwNTU2aWtPSER1SHQ3YzNubjMrT2w1Y1haV1ZsSkNkZnJ0bVFuSnhNYVds -cDV3UDQKWkRwTEtnQjF2dEVFOWFBTGlUZm5DY0syT3REbkdFeVN3RXAwWi9FbWlXQjhMaVNTNml2 -K1ErSUt5V2RoVHloYy8rYzRXUXZSMm0xagoyQ2xYTkh0N3FQaFdIU0lnMFlRVDM0YmQ0dVJKRDZL -anRSTkJaSW10ZHByb0J3VlozcGkvZEVtbDRibzh0YXM5RFdEZ3dJRnMyclNKCkNSTW0ySFI5cDcw -cS9QejhlTzIxMS9qWnozNUdUVTBOcWFtcGVIbDVvYXJXcmVzcUE1ejkxYXJuMTFzOHE4ekdNLzdT -NDJ2MmxOSloKUzBSTHVJR2IvU1ZPYnBubE5CMzJRcGVhVDg0VkxjSHAxTlJrV1hXY3Y3Ky9RNjd2 -MUkvc2lSTW5NbkhpUkFBZWVPQUJ4bzhmejlhdApXNm1zckNRakk0UEt5a3F5c202OElkWWF1RVFp -a2RpRG5uaE9WbFlXdi9yVnJ6cCtyNmlvWVB6NDhUYVA0OVR2cnRYVjFRQ3NXYk9HClhidDJrWm1a -U1U1T0RnVUZCVFEyTmxKUVVFQnVicTR6SlVra0VvbGRDUXE2WFBPOHFLaUlxcW9xdnZycUszSnlj -bXdlUjFHZE9DM04KejgrbnVycWFnSUFBM256elRiS3pzNm1ycStPaGh4NWkyN1p0WkdabXNuVHBV -b2Q5VFpCSUpCSm5zSGJ0V3A1NDRna3VYYnJFejMvKwpjMzcrODUvYlBvZ3FrTFZyMTZySnljbHFV -bEtTT21mT25CdWVyNnlzVkhOemMxVXZMeS8xNVpkZnR1bGNSOUVUelFrSkNXcHFhcXFhCm5wNnVa -bVZsT1V1eVJjMUxseTVWaHd3Wm9nNFpNa1NkT25XcSt0MTMzMWw5cnRiMGF2VWVmL3JwcCtxUUlV -UFV0TFEwOWE2NzdsSkwKUzB1dFBsZUxta1hjWjJ2dlUybHBxV28wR3RXUFAvN1k1bk8xaEZCelRr -OVBWOWV1WGF0V1ZWV3BBd1lNVUUrZlBuM044OVhWMVdwWgpXWm42MjkvKzlnYWpzM1N1RmpYMzd0 -MWJQWHYyckZOMFhvMGx6UnMyYkZBdlhMaWdxcXFxTGw2OFdIM29vWWVzUGxkcmVyVjZqeTllCnZO -anhjMkZob1pxWGwyZjF1VnJVTE9JK1czT2ZXbHRiMWJGang2b1RKa3k0eHB4RjNlT2VJQ3hleXBw -WXdQRHdjSVlORzRhSGg0Zk4KNTJwTjh4VlVKMjl1V3FONStQRGhIZXRrRXlaTVlPM2F0VmFmcXlX -OVY5RGlQZmE3S202K3BxWUdiMjl2cTgvVm11WXJPUE0rVzN1ZgozbmpqRGU2Nzd6N0N3OE50UGxk -ckNEUG5ybUlCSFgxdVQranBkUlZGWWR5NGNVeWFOSWtWSzFZNFF1SU4yS3A1d1lJRkhSRTFJdTV6 -ClQvU0N0dS94SjU5OFF1L2V2WmsyYlJvTEZ5NjA2Vnd0YUY2d1lFSEg0ODYrejlib1BYNzhPTXVY -TDJmR2pCa2RHcTA5VjR0b08vcmQKeFNndUxpWTZPcHJLeWtvbVRweElkblkyVVlJYTEzYkdtalZy -V0xwMEtSczJiQkF0eFNvNjA2dmxleng1OG1RbVQ1N01CeDk4d0tSSgprOWkyYlp0b1NSYTVXdlBr -eVpNN05HdnhQai83N0xQOCtjOS9SbEVVMU10THRrTDE5QlJoTStlc3JDejI3Tm5UOFh0RlJZWFZZ -WFE5Ck9iY245UFM2MGRHWG03YW1wS1J3enozMzhJOS8vTVB1R3EvSFdzMDdkdXpnaVNlZVlNV0tG -UVFIQjl0MHJsYjBncmJ2OFJWKytNTWYKY3VMRUNSb2JHeGsyYkpndVhzdFhhd2JuMzJkcjlHN1pz -b1VISG5pQVBuMzY4TGUvL1kwbm4zeVNGU3RXQ1BPTEhpTnl3ZnZLSXYyaApRNGR1dWtqLys5Ly92 -c3NOUVV2bjJwdnVhcTZ2cjFkcmEydFZWYjI4YVRodzRFRDF5SkVqbXRCOCtQQmhOU2twU2QyMGFa -UE41MnBKCnI1YnY4Zjc5KzlYMjluWlZWVlYxNWNxVjZwMTMzbW4xdVZyVExPbysyM0tmSG4zMFVm -VnZmL3RidDg3VkNrTE51YkN3VUUxT1RsYjcKOXUycnZ2NzY2NnFxcXVxOGVmUFVlZlBtcWFxcXFp -ZFBubFJqWTJQVndNQkFOVGc0V0kyTGkxUHI2dXE2UEZmTG1nOGNPS0NtcGFXcAphV2xwNnJoeDQ5 -UzMzMzViTTVxblQ1K3Vob1NFcU9ucDZUZUVSb200ejkzVnErVjdQSHYyYkhYUW9FRnFlbnE2K3Ro -amo2azdkKzY4CjZibGExaXpxUGx2U2V6WFhtN09vZTl3VG5KcUVJcEZJSkJMcjBFN3BNWWxFSXBG -MElNMVpJcEZJTklnMFo0bEVJdEVnMHB3bEVvbEUKZzBoemxqaWNjZVBHOGVXWFgxN3oyR3V2dmNh -VFR6N1o2Zkc5ZS9mbTNMbWJOOGg5NFlVWHJ2bDk1TWlSQUZSVlZaR2FtZ3JBNXMyYgplZWFaWjRE -TFZjSTJidHpZTGYwU2lRaWtPVXNjenRTcFUzbi8vZmV2ZWV5RER6N2d3UWNmN1BUNEsybTNOK05Q -Zi9yVE5iOFhGeGZmCmNNeXdZY040L2ZYWEFmajIyMjkxay9rb2tZQTBaNGtUbURKbENpdFhycVMx -dFJXNFBMczljZUlFTFMwdDNIWFhYWXdjT1pLMzNucXIKMDNNblQ1N00wS0ZER1RkdUhKOTg4Z2tB -Ly9WZi8wVmpZeU1aR1JrOC9QRERRT2V0Z2dvTEM1azRjU0tIRHg5bS92ejV2UHJxcTJSbQpackor -L1hvU0V4TTc5TlRXMXBLWW1FaGJXNXNqL3ZzU1NiZVF0VFVrRGlja0pJVHM3R3crLy94ejdybm5I -dDUvLzMzdXUrOCsvdjNmCi81M1ZxMWNUR2hySytQSGpHVGx5SkNrcEtkZWNXMUJRZ05sc3ByYTJs -akZqeGpCNThtVCsvT2MvOCthYmIxNVRtK0ptcysyRWhBU2UKZU9JSkFnSUNlTzY1NXdBWU0yWU1L -MWV1NU41NzcrWDk5OTlueXBRcEdJMldHM3BLSk01Q3pwd2xUdUhxcFkwUFB2aUFLVk9ta0pLUwpR -bEpTRW1hem1mdnV1Ni9UNm1idnYvOCt0OXh5Q3lOSGp1VGd3WVBzM0xtelc5ZFhyeXVFOC9qamo3 -Tm8wU0lBRmk5ZXpHT1BQZGF0CmNTVVNSeUhOV2VJVTdybm5IcjcrK211MmJkdEdRMFBERFROZFZW -VnZlT3pnd1lQTW5UdVhqejc2aUowN2Q5S25UeC9PbnovZnJldGYKUC9hSUVTT29xcXFpc0xDUXRy -WTJCZzRjMksxeEpSSkhJYzFaNGhUOC9mMFpPM1lzanozMkdBOCsrQ0M1dWJuczJiT0hBd2NPY1A3 -OAplVDc1NUJQdXVlZWVhODQ1Y2VJRTRlSGhoSVNFVUZ4Y1RIbDVlY2R6NGVIaE5EUTBXSDM5aElR -RVRwOCtmYzFqanp6eUNELzYwWStZCk5tMWF6LzV6RW9rRGtPWXNjUnBUcDA1bDU4NmRUSjA2RlVW -Um1EOS9QazgvL1RRVEpreGcrdlRwSFFYUnI4eHlSNDBhUlVKQ0Fpa3AKS2J6MjJtdmNldXV0SFdN -OS9mVFQ1T1hsZFd3SVhqMHo3dXpuMjIrL25jMmJONU9Sa2RFUjJmSGdndzl5L3Z4NXBrNmQ2dGov -dUVUUwpEV1RoSTRuYnNtelpNcjc5OXR1T3JpUVNpWmFRMFJvU3QrVHBwNSttdUxpWXp6NzdUTFFV -aWFSVDVNeFpJcEZJTkloY2M1WklKQklOCklzMVpJcEZJTklnMFo0bEVJdEVnMHB3bEVvbEVnMGh6 -bGtna0VnM3kvemRhT0krQ1VUQUtSc0VnQkFEUHVEZDBmV0ZIWGdBQUFBQkoKUlU1RXJrSmdnZz09 -Cg== - - - - - - Plot the value of the European put in (volatility, strike) space. - - - plt.contourf(sigma_mesh, strike_mesh, prices['eput']) -plt.axis('tight') -plt.colorbar() -plt.title("European Put") -plt.xlabel("Volatility") -plt.ylabel("Strike Price") - python - 14 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x32ee190&gt; - 14 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVhFQUFBRVpDQVlBQUFCaElCV1RBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6czNYbDgx -Tlc5Ly9IWGQ3SnZaQ0dRaFd3UVFnaVFrQUJKMkxLd2lDQWlJSWdFCmhWWXNJbmlMRnRIYi91eTEy -R3U5MTdiWGlwU3lxRkJiaTNWSEJBRkJEV0hMbnJCbVljdENOaElnK3pxWitmMFJpQ0RaTTVudlRM -N24KK1hqazhTQXozL2wrUHduSk8yZk9PZDl6SksxV3EwVVFCRUV3U2lxNUN4QUVRUkI2VG9TNElB -aUNFUk1oTGdpQ1lNUkVpQXVDSUJneApFZUtDSUFoR1RJUzRJQWlDRVJNaExuVEl4OGNIYTJ0cjdP -enNXai9XclZzbmQxbDlLam82R2lzcksrenM3QWdNREdURGhnM2N2SG16CjA5ZkZ4c2JpNmVtcGh3 -b0Y0VWNpeElVT1NaTEV2bjM3cUtxcWF2MTQ1NTEzdW4wZXJWYUxzZHlTSUVrU1c3WnNvYXFxaWkr -KytJTFkKMkZoMjdOZ2hkMW1DMENZUjRrS1BiZHk0a2VYTGw3ZCtucE9UZzBxbFFxUFJBQzB0Mmpm -ZWVJTlpzMlpoYjIvUDFhdFh5YzdPWnQyNgpkWGg1ZWZIODg4OXo4ZUxGMXRkSFIwZnpoei84Z2Vu -VHArUGg0Y0gvL3UvL1VsTlQwL3I4NWN1WGVmbmxsL0gyOW1iVnFsVmN1SENoCjlibGR1M1l4YXRR -b0hCd2NXTEJnQVY5Ly9YWHJjN0d4c1hoNGVMQmp4dzZHRFJ2R2xDbFRPSERnUUplK1JqOC9QeFl0 -V3NUKy9mc0IKVUtsVVhMbHlwZlg1bi8vODUvelhmLzBYdGJXMXpKa3poOExDUXV6czdCZ3dZQURG -eGNYZC9JNEtRdmVKRUJjNjFWNExXcEtrVGwrNwpaY3NXbm4vK2VXN2V2SW1ucHllelpzM0N4Y1dG -dExRMDNOemNtRFZyMWozSC8vV3ZmK1ZYdi9vVlI0OGU1Y2lSSTd6Kyt1c0FORGMzCk0zbnlaRWFO -R3NXNWMrZUlpSWpnd1FjZmJIMmRpNHNMKy9mdnA3UzBsS1ZMbC9MNDQ0OVRXMXZiK3Z6MTY5ZEpU -MDhuSVNHQnA1NTYKaW1lZWVhWkxYM05XVmhhZmZmWVpDeGN1YlBkN0lFa1MxdGJXSER4NEVIZDNk -NnFxcXFpc3JNVFYxYlhUNzQ4ZzlKWUljYUZEV3EyVwpCUXNXNE9qbzJQcngvdnZ2dHo3WEVVbVNt -RDE3Tm5QbnpzWFUxSlJ6NTg3UjJOaklLNis4d3NDQkEvbjFyMzlOVTFNVGFXbHByYTk1CjRJRUht -RGR2SHI2K3Zyejg4c3ZzMjdjUGdPKy8vNTZ4WThmeTg1Ly9IRHM3TzFhc1dJR3pzek5KU1VrQVBQ -VFFRd3dkT2hRek16T1cKTGwzSytQSGo3Mmx0YXpRYWZ2Lzczek5vMENCKy92T2ZVMTVlVGxaV1Zy -dGY4N3AxNjNCMGRPVEpKNTlrN3R5NS9PSVh2K2p3ZTlTVgo3NGNnOUFWVHVRc1FESnNrU1h6MTFW -ZE1uejY5emVjNkV4NGUzdnJ2RXlkT01HN2N1SHVlbnpCaEFzZVBIeWNrSkFSSmtnZ09EbTU5Ckxp -UWtoUFBuejFOZFhjMlJJMGM0ZHV3WWpvNk9yYytyMVdyaTR1SUlEUTNsK1BIamJObXloWk1uVDFK -UlVVRmRYUjFuenB4aDBhSkYKQUxpNXVlSHM3QXlBcWFrcHpzN09GQlFVNE8vdjMrYlh0WG56Wmxh -dVhObnAxeWNJY2hNdGNhSEhoZ3daUWtsSlNldm5kN2VvN3pBMQovYkdkTUhYcVZGSlRVKzk1UGlV -bGhZaUlDS0NsSlh2M09WSlRVeGs5ZWpTMnRyWk1uejZkNk9ob2J0MjYxZnBSVlZYRml5KytpRmFy -ClpmWHExVVJGUlpHYW1rcDVlVGxoWVdGOTBqSjJkM2UvcDY4N05UVzE5WStaaVltSmFJMExlaWRD -WE9oVWU4RTBmZnAwNHVQalNVMU4KSlNzcml5MWJ0blQ0MnVEZ1lNek56Zm1mLy9rZnlzcksrT01m -LzRpcHFlazlyZS92dnZ1Ty9mdjNjK1hLRmY3ODV6OHpiOTQ4QUdiTwpuTW5aczJmNXh6Lyt3YTFi -dDZpdnJ5YzJOcGFDZ2dJYUd4c3BMUzNGeGNVRlMwdExkdTNhUlVKQ1FwOTh6VE5tekdEWHJsMlVs -NWZ6Ci92dnZrNW1aMmZyYzJMRmpLU3NybzZpb3FGZlhGb1R1RUNFdWRHcmV2SG4zekJPLzAwVXhi -Tmd3Tm03Y3lKSWxTNGlKaWVFWHYvakYKZlYwc1AvMzg0TUdERkJRVUVCSVNRbjUrUGdjUEhyem4y -T2VlZTQ2MzNucUxpSWdJcGsyYnhpdXZ2QUswdEhKalkyUEp5c3BpL1BqeAplSGw1OFgvLzkzOW90 -Vm9zTEN6WXRHa1R2Ly85N3hrK2ZEakp5Y2tzWGJxMHd6bzYwOTd4di83MXJ5a3ZMMmZreUpHa3Bx -YmVjNTBCCkF3Ync4c3N2RXhrWmlaT1RrNWlkSXVpRkpOWVRGd3pGdEduVFdMNTh1ZWlMRm9SdUVD -MXh3YUNJTm9VZ2RJOEljY0dnZExmYlF4Q1UKVG5TbkNJSWdHREdkdDhSWHJseUppNHNMZ1lHQnJZ -OTkrdW1uakI0OUdoTVRrL3VtbUwzenpqdjQrZmt4YXRRb2poOC9ydXR5QkVFUQo5Q28vUDU5cDA2 -WXhldlJvb3FPajJiMTdOd0JWVlZYTW56OGZMeTh2Rml4WVFIVjFkWnV2ajR1TEl5QWdBRDgvUHpa -djN0ejVCYlU2CkZoY1hwMDFOVGRXT0dUT205YkdNakF4dFZsYVdOam82V3B1U2t0TDZlRWxKaWRi -ZjMxK2JtNXVyalkyTjFZYUVoT2k2SEVFUUJMMHEKS2lyU3BxV2xhYlZhcmJhMHRGUTdkT2hRYldW -bHBmYk5OOS9VL3NkLy9JZTJ2cjVlKzl4enoybi85S2MvdGZuNjRPQmc3ZEdqUjdVNQpPVGxhZjM5 -L2JXbHBhWWZYMDNsTFBDSWk0cDY3NmdCR2poekppQkVqN2pzMklTR0IyYk5uNCtYbFJWUlVGRnF0 -bHFxcUtsMlhKQWlDCm9EZXVycTZ0OXo0NE96c3pldlJva3BLU1NFeE01T21ubjhiQ3dvS1ZLMWUy -ZVM5RFJVVUZBSkdSa1hoN2V6TnIxcXhPNzNtUWRXQXoKTVRHUmdJQ0Excy85L2YxSlRFeVVzU0pC -RUFUZHVYVHBFdWZQbnljc0xJeWtwQ1JHamh3SnREUnMyOHE2dTQ4QkdEVnFGUEh4OFIxZQpROWEx -VTdSdGpLbTJOVHRCekZnUUJLRTcyc3FXN2hnZ1NYUzFUOERXMXJiTkhvU3FxaW9lZi94eC92S1h2 -MkJyYTl0bjAyZGxEZkh3CjhIQ09IRG5TK25sbVppYWhvYUZ0SGp0SCs3bSt5dEtKaXhzL1p0Ykdo -VHhDUEExa3lGMU9sM3kwOFRJeEczMzc3UHltR2hWVGlsVFkKbDMyamsvTnQzQVlibjlYSnFmU21T -elhYdXNCUmJ6aGpHTzlLTjU2RmpZR2RIOWVaV290aG5EOVlRMk54U2VjSDk4SlVIWnlqQ3VqcQpO -SXVwYlF4UU5qVTFzV2pSSXBZdlg4NzgrZk1CQ0EwTkpTTWpnNUNRRURJeU10ck11dERRVUY1NjZh -WFd6OCtmUDgvczJiTTd2TDdlCnUxUHUvbXNVRmhiR29VT0h5TXZMSXpZMkZwVktoWjJkbmI1TDZq -TlhNV2NURWR4a0FTWll5bDJPN05RcURVZUhxTW55V1lMV3hFbnUKY2d5WGRRbk1Ub1JsNFdBL1NP -NXFkTWE2NFFxQkQ1cGdPZFJiN2xMNmxGYXI1ZW1ubjJiTW1ERzg4TUlMclkrSGg0ZXpjK2RPNnVy -cQoyTGx6SnhNblRyenZ0ZmIyOWtETERKV2NuQndPSHo1OHowcWdiZEY1aU1mRXhEQjU4bVN5c3JM -dzlQUms1ODZkN05tekIwOVBUK0xqCjQ1azdkeTV6NXN3QldoYnlYN05tRGRPblQyZnQyclZzMnJS -SjErVVlBSWxQY0dFL3k3QmdsTnpGR0lRcyszS08raytsMFdhQzNLVVkKTGdud1RJQ25HbUNTTHRx -V2hzR3lzWkRBcWRYWUJOdy8wYUcvT0hIaUJCOSsrQ0hmZi84OUlTRWhoSVNFY1BEZ1FkYXNXVU5l -WGg3KwovdjRVRkJUdzdMTXRiOGtLQ3d1Wk8zZHU2K3ZmZnZ0dFZxOWV6Y3laTTFtN2RtM3JFc3J0 -TVlxYmZTUkpNcnJ1bEJ1eDV4Z1lQZVluCmoycDVqT3NNNWhETjFNbFNWMGZPeHQ0a01GcVBMV1F0 -VEx4dXc2RGl2VWcwZC92bHNja1FiV1IvQjNwY2M4bFkrT1lXWE0vVGVVMmQKaVMyQmFCZmRubE90 -c2lNanc0ZksxTE82UFRFdDNTbTlqVFZKa3JyZW5hS0Q2L1dHQ0hFWitOREVmT0pwNEVMbkJ5dUFk -NDA5Z2JrbgpVVFVWeUYyS1lWT2JRL29rK09FNGFMci9SOC9RTkVzV1pPVUZjdXQ0c2s3UHE3UVFG -MnVueUNBSE16WXhsUnNzd0FRcnVjdVJYYTVOCkJVZEdCRk5uSHlWM0tZYk50QkVtSElWZitJTDN5 -TTZQTjNBbTJnWkdlcWJpL01Ba3VVc3hhaUxFWlNQeEtTN3NKd1lMUnN0ZGpPenEKVFpzNDdHMU92 -c2RqYUNVeENOd2h4MnhZa2dVUFI0SzVjVGNDVkdnWU1mQVVidk1pNUM3RmFJa1FsMWxMcTN3S1pT -d1VyWEpKSW0xZwpCWWtqNXRKczJYOEh2blJDcFlYUmNiQnFJSXdNa2J1YVhwRWtHR3B6RE04bDRw -MVlUNGdRTndnU256R1lmY1Jnd1U4SFE1V254TEtLClEzN0RxQnc0Uis1U0RKL3ROWGdrRGVaRnls -MUpyMGdTZUprY1plZ1Rva1hlWFNMRURVZ3VabXhpc21pVjB6S25QTmFqbVlzK1M5Q2EKT01oZGpt -R1RnRkZ4OE5oa2tJejdWOXBkYzR3Ukt5YUJpWW5jcFJnTjQvNGY3NWRhV3VWN1Jhc2NnQXo3Y282 -TmlLTEpacHpjcFJpKwpZU2NoWmdLWW1zdGRTYThNYWpwRndQSVFWSlppYktRclJJZ2JxUHpicmZK -U0hsVjhxN3pjdkk2RHZzNlV1U3hFSzM1a08rYVpDRStPCkFnc2J1U3ZwRmFlR1pFYkYrR0V5WUlE -Y3BSZzg4UnRoMENRK1o5RHRWcmtPRnE4d1lsb0pUcnJXY05aM0VSb3pkN25MTVd3dTZiRGMKRzZ6 -dDVhNmtWK3pyenpKbWtTdG1nenErWTFIcFJJZ2JnWlpXK1NTdTh5Z21XTXRkanF4eWJDdjRmc1E0 -NmdlSUFiQU9EYndBS3dZWgovZG9ydHZYWkJENWtoWVhuRUxsTE1WZ2l4STJHeEJjTVloOUxzY0Jm -N21Ka1ZXdmF5TGMrbGkxenlsWDlaOEUwbmJPL0JFOWF3a0RqCkRrQ3J4bndDbzV1dzh1dTdGVGFO -bVFoeEk1T0xHWnVKcEk0NVNFcis3N3M5cC95WS8zUWE3TVFkZisyeXpZZGxhbkFiSm5jbHZXS2gK -dms1Z2VCbTJRV0lSdVo5U2NBb1lMdzBxUHNDTEpKN0VBbGU1eTVGVnVYa2RoNGJha3VNcHBpSzJ5 -N29FbHR3Qzc0RE9qelZnWnMwVgpqQW04aXYxRTQ3NjVTZGRFaUJ1eFpLeDRuNGN4WWJMY3BjaExr -ampqVkU2c2Y2VG9LMitQNVMxWWxBZCtZK1d1cEZkTU5IV01HbnFXCmdkTTZYbU5iU1VTSUc3bHFU -TmhDSUxrc3dSVGpubGJXVzFWbTlYenJZOGxsNzhmUm1neVV1eHpEWTFZRGoyVEFHQ05idi9jblZL -angKZDBuQTVhSCtzODU2YjRnUTd5Y080TWdlSHNjQzQzN0wzR3VTeEhtSFczdy9jaksxRHRQbHJz -YndtRGJDN0ZTWVlOempDSklFdmdPTwpNK1JSc2Q2S0NQRis1QnBtYkdZcU5UeUVoTEp2VzY0eGJl -Q0l0Mm5MVm5DbU90N1J3TmlaYUdEYUtaaGkzRjFQa2dRK0ZrZnhYbXJjCjY4YjBsZ2p4ZmthRGlu -L2lTVHhQWUlHYjNPWElMc3Urbk1NakoxRHRORXZ1VWd5TENwaHlER1lZZjB2V1E0cGorUElwb0ZK -bW5DbnoKcTFhQU5LeDRqNGRSTVVYdVVtUlhiOUxFOTU1d1lkZ1NOR2JHUFdkYXB5UmFOcGw0eVBo -YnNpN3FFNHhjUGdISjNMalhqZWtKbzltZQpiYkZtTHpWU2s5eWxHS1habERPYy9haXBscnNVMlpr -M216SzVTTXVBR3dma0xzV3daRStGUFNmQThPT2dRK1VXd1RqK1BWM1c3ZGxXCnJsekovdjM3R1R4 -NE1HZlB0dXdodW5UcFVyS3lzbHBxTEMvSHdjR0J0TFMwKzg3bDQrUERnQUVETURFeHdjek1qTVRF -eE01ck5aWVEKSDVKVXk3ekFkSEl0aXVRdXh5aDUwTVFpc2E5bks1OXFlOGJrSjZGcXpKRzdGTU9S -T3hFK1RZWm10ZHlWOUlyMGtieDdiQjQ3ZGd4YgpXMXRXckZqUkd1SjMyN0JoQXc0T0R2ejJ0Nys5 -NzdtaFE0ZVNrcEtDazFQWE55dzNtdTZVZ2xvcnRpVk14S29nRkZ1dDh0NHk5ZGExCjIvdDZWdk13 -RXFaeWx5TzdITnNLRHZvSGNHdlFQTEV5NGgzZThiQnNMSmlKSldCN0l5SWlBa2RIeHphZjAycTFm -UExKSjhURXhMVDcKK3U3K0FUS3luMTZKTHk1N2NqeGxKdDROWWlXNzdwUDRrQ0djWkJrV2lPK2ZX -dFhNTWZjRzBvY3ZvdGxpdU56bEdBYjNGRmp1QjVaaQpUWnErY096WU1WeGNYUEQxYlhzZEdFbVNt -RDU5T2dzV0xHRHYzcjFkT3FkUk5zbUthaTNabGhET2dtRUZtQTlKcDBwcWxMc2tvM0lhCkt5NHhs -eFZrb3VXWTNPWElMdCttZ3NJUnZvU1hqR0hnOWErUmFKYTdKSGtOT2dzci9HRjNLVlRmbExzYTJV -eHBwN0VjV3dLeDErOTYKNEZ6WHovblJSeCt4Yk5teWRwOC9jZUlFYm01dVpHUmtNRy9lUE1MQ3du -QjE3WGhwRGFQcEUrZG8yMlc2V3RXek1QQTBPWllGZXE2cQpmNWhGT1NQNEJqVlZjcGRpRU56ckJo -Q2NkeDdUK2d5NVM1RmY1VkQ0ZHgzY0twYTdrbTdSVlorNHR2MGVqMDZ2bDVPVHc3eDU4KzdwCkUx -ZXIxWGg0ZUpDYW1vcTdlK2Z2aE5ldlgwOUFRQUNyVnEzcThEZ2o2MDY1WDNHZEpWc1R3ekhQRDhO -T2F5RjNPVWJuV3h6NG5DVmkKSzdqYkNxMHFPVGpDayt1dWo2S1ZGRDcyTXVBcVBLR0N3VjV5VjlJ -dkhEbHloSUNBZ0hZRHZMYTJscXFxbHNaVWFXa3BodzRkWXZicwoyWjJlMStoRC9JNnZybnB3Tkdr -bVB2VWVjcGRpZElvd1pST1RxV1NlR1BRRU5CTEV1MVNUTU9KaDFOWkJjcGNqTDV0Q2lLa0JEeis1 -Ckt6RWFNVEV4VEo0OG1lenNiRHc5UGRtMWF4Y0FIMy84OFgwRG1vV0ZoY3lkT3hlQTR1SmlJaUlp -Q0E0T1p1blNwYno0NG90NGVucDIKZWoyajcwNXB5enlmQXF3OTA2bVVHdnF3cXY0cGlIcW04UjBO -WEpPN0ZNT2doZEN5QWJnVzdVUFMxc3Rkalh3YUI4QlhubkRsdk55VgpkTW9RdWxQMHFkKzB4Ty8y -ZGM0UXZrK2FpVTlkNTMvRmhIdWR3WklkekFhTS95NCtuWkFnYVZBbEovM24wR1JqM0t2LzlZcDVK -U3k4CkFpUEZXdDZHcGwrR09FQnB2UVZiazBKUjVVN0VYaXZtdlhaSEhTWnNJNEJMeEdDRzJHMGM0 -SVpGRFFkOEhiazI1REcwS2x1NXk1R0gKYVIwOGZCYUN4VnJlaHFUZmh2Z2QrM1BkT1pJMEU1ODZN -VGpUWFVjWXdLYzhoZ1dCY3BkaUdDU0pWT2NLanZ2UG9NRnVvdHpWeU1ORQpEUThrUXJoWWs4ZFE5 -UHNRQnlpck4yZHIwZ1NrM0VtaVZkNU54Wml5aVVsVThBZ3F6T1F1eHlEY01xL2owRkE3Y2oyWG9G -WFp5MTJPCi9xbTBFSFVDSWtXWG15RlFSSWpmOFUydUc5OG16TVNuMWx2dVVveU14RWU0Y1pRbnNF -Q01Nd0FnU1p4Mkt1Zm95R2pxQnlod2h4a0oKbUJnSER4ci9VcmJHVGxFaERuQ3owWnl0eWVQUjVr -ekdRYlRLdStVOEZteG5ObHFpNVM3RllGU2ExZkd0anhXWHZSNUhhOUwxUll2NgpCUWtJUGdxUEdQ -Zm1Fc1pPY1NGK3g4RThWdzZLVm5tMzFhTmlPLzVrc3d3ekZOaVYwQlpKNHJ6akxYN3duMEt0d3pT -NXE5Ry9nR093CmVBcElpbzBUV1NuNnUzN3JkcXU4K2Vwa0hMVldjcGRqVkw3SGpuK3pHSE1VZmpQ -TVhhck5HamppYlVhMnorUEsyeExPOXdURVRBQVQKTVc2aWI0b084VHUrelhmbG00U1plTmY2eUYy -S1VTbkZsSGVZeUMzbW8wTGh0NmpmSmRQK0ZvZjlKMUR0K0lEY3BlaVhaeUk4T1FZcwpyT1d1UkZG -RWlOOVczbWpHdHVSeHFLOU1FYTN5YnBINEdGZCtZQmtXaUs2cE8rcE5tL2plU3lKanFNSzJoSE5O -Z3llSGdyWG9hdE1YCkVlSS9jZmlhQy9zVFp1SmRNMVR1VW94S0JoWnNZeFlhRk5nbjNJR0xBOG81 -N0QrV3lvRno1QzVGZjV6UHcvSkJNTUJaN2tvVVFZUjQKR3lvYXpkaVdFa0xqbGFrNGFjVmJ3NjVx -UU1VT1JwREpNc3hvZTJjVEpXb3dVUlByMGN4WjN5Vm96Qlh5YnNYaEVqeHBCUU1WOUM1RQpKaUxF -Ty9EZHRjRjhIVDhENzVwaGNwZGlWR0t4NDk4c3doeXh6c2JkcnRxVzgrMklVZHh5ZmhndGt0emw5 -RDI3ZkZpbUJsZnhycll2CmlSRHZSR1dUR2R0U2dxbS9GTUZBaldpVmQxVXBKcnhES0RkWWdBcXh6 -dnNkalNiTkhCdlN5T25oaTJtMmFIdUxybjdGdWdRZUx3ZnYKa1hKWDBtK0pFTytpSHdvSHNTZCtK -dDdWb2xYZWRSS2Y0c0wzeEdDSmo5ekZHSlE4bXdvT2pmRGp4dUQ1YURHUnU1eStaWGtMSHIwRwpm -bUk2YWw4UUlkNE4xV3BUdHFVR1Uzc3Bnb0VhRzduTE1ScVpXUEEzSHFDWkdYS1hZbERVS2cwbjNP -cEk4VnRJczJVL2I2bWFWOE1qCldUQmF3Y3Y1OWhFUjRqMXd0SEFRWDhiUHdLdktGOG5ndDlRd0RJ -Mm9lSmZoWE9BSnpGSFk3ZW1kS0xTdTVJQ2ZONld1QzlGSy9maG0KR2RNR21KTUc0eWZKWFVtL0lr -SzhoMnJVcG14UEcwdjFwVWljUmF1OHkrS3c1VU1XaWtIUG45Q290Snh5cVNISjd4SFVWdjE0NlYr -VApacGgrQ2lZcmNOR3dQcUx6RUYrNWNpVXVMaTRFQnY3NGcxaFZWY1g4K2ZQeDh2Sml3WUlGVkZk -WEF5MDdRbHRaV1JFU0VrSklTQWhyCjE2N1ZkVGw5THE3SW1jL2paK0JaTlZ5MHlydm9KcWE4UXlo -bExCU0RuajlSYkZYRkFUODNpdDBXb1pYNjZRSnRLbURxY1pndWxyTFYKQloySCtGTlBQY1hCZ3dm -dmVXenIxcTE0ZVhseDhlSkZQRHc4MkxadFcrdHp3NGNQSnkwdGpiUzBOUDcydDcvcHVoeTlxRldi -c2lNdAppSXFMVVF6U0tIVFhsMjZUK0l6QkhHRVpsb2pCNHJ0cEpVZ2NYTVVwL3prMDJZeVR1NXkr -SVFHaGNmQlEvMXZLdHEyRzdNYU5HL0h3CjhHaHRzUDQwSSsrSWk0c2pJQ0FBUHo4L05tL2UzS1hy -NlR6RUl5SWljSFM4OTBhUHhNUkVubjc2YVN3c0xGaTVjaVVKQ1FtNnZxeEIKT0ZFOGtFOVB6Y0N6 -MGcrVmFKVjNTVGJtYkdFR1Rjd0VKY3lkN29ZeWl4b08rQTZrWU1oamFGWDl0TXN1OENnc2pBQ3Av -L3pmdDlXUQpsU1NKOWV2WHR6WllaOCtlM2Vacm4zLytlYlp2Mzg2UkkwZllzbVVMWldWbG5WNVBM -MzNpU1VsSmpCelpNdm8rY3VSSUVoTVRXNSs3CmV2VXF3Y0hCckY2OW10T25UK3VqbkQ1VjEyekNq -dlJBYm1WSE0xaGpKM2M1UnFFSkZlL2p5MW1XWWM1QXVjc3hMSkpFaW5NRngvMGYKb05FMlRPNXEr -c2FJWTdCa0lxajZ4MVRMdGhxeUFGcHR4eTI3aW9vS0FDSWpJL0gyOW1iV3JGbGRhdkNhOXF6TTdt -bXZlSGQzZC9Mego4M0YwZE9UQWdRTXNYNzZjTTJmT3RIMlNYUnQvL0hkd05JUkU2N3BNblRwWjRr -UnE2WFNXQjJaUU9PQWlHdEZoM3FrVDJKTEJRbUk0ClN6UDk4OTFhVDkweXIrWGdNSHVDYno2R1or -RitKRTJ0M0NYcGxzOHBlR0k4ZkpvTjlWWGRlbWxzQ2NSZTc0T2EyaG11aVMxdStlaXUKelpzMzgr -bW5uN0p3NFVMV3JsMkxuZDI5amJ5N0c3c0FvMGFOSWo0K25ybHo1M1o0WHIyRWVHaG9LQmtaR1lT -RWhKQ1JrVUZvYUNnQQo1dWJtbUp1M0xHRTZaODRjWG5ubEZTNWR1c1R3NGNQdlA4bFRHL1ZScWs3 -VmEweDQ5L1FZeGp0N01OWS9sU0tUY3JsTE1uZzNNV0VMCndVUXluQkMrbzRFZS9MYjBWNUpFK3NB -S3J0aytTRmp1UlV6cnpzbGRrVzY1cDhCS0gvaHlFQlJkNmZMTG9sMWFQdTU0VFZmZmxoZmEKdWQ3 -dGo5YnJCWGQrcWpWcjF2RHFxNjlTV1ZuSlN5Kzl4UGJ0Mjltd1lVUHZhMFJQM1NuaDRlSHMzTG1U -dXJvNmR1N2N5Y1NKTFR1RgpsNVdWMGR6Y0RFQnFhaXAxZFhWdEI3aVJTeWx6NElNVDBRd3VDOFJj -MnovZU12YTFPR3paemp3YW1ZWFUzKzlvN0tZeWl4b09EaC9DCnpjR1A5TDgxV094eUlLWUV4dmF2 -cnFQQmd3Y2pTUkwyOXZZODk5eHpmUG5sbC9jZEV4b2FTbVptWnV2bjU4K2ZiODNLanVnOHhHTmkK -WXBnOGVUTFoyZGw0ZW5xeWE5Y3UxcXhaUTE1ZUh2NysvaFFVRlBEc3M4OENMU094WThlT0pUZzRt -RGZlZUlQdDI3ZnJ1aHlEMFl5SwpEeTc0Y2VIMFRMeWFCc3RkamxHb1I4Vk9oaExMY2l3WklYYzVC -a1dqMG5MY3JaNXp2bytoTVhPWHV4emRNcXVCQnhQaHdmNHpCYkdvCnFBZ0F0VnJON3QyN2VlaWho -KzQ3eHQ2K1pRMzJ1TGc0Y25KeU9IejRNT0hoNFoyZVc5SjIxdHR1QUNSSmdxTUdYMlkzYUZuaWw0 -ZkcKOVF3MVVwUGN4UmdKTFlzcHhaVnZVVk1qZHpFR3hWcHR6dFQ4Q2l3cmo4bGRpdTRWVElEUHM2 -R3Vzc3N2a1Q3cWZCQ3gwM05JRXRyMApMaDRiZk8vMVltSmlPSHIwS0dWbFpiaTR1UERhYTY4Ukd4 -dExlbm82NXVibVJFWkc4dHZmL2hZbkp5Y0tDd3RadFdvVisvZnZCK0RvCjBhTTgrK3l6TkRVMXNX -N2RPdGF0VzlmNTlVV0l5OGZOdXA3NVk4NlFhM2xON2xLTWhpdHFGbk1XTlltZEg2d2tXaTNoMSsw -WVhQd2wKRXYzc2Q2WEtDNzQwN1hJL3Vkd2hybThpeEEzQVE5NUZPSGlsYzB1cWs3c1VvekdOU2dM -NWprYjZZbHFDOFJwZTVVQkE3cmRJemYxcwpFTDNKR3I0UGhQVE9aeTJKRURkQS9UM0VBZXpObTRn -WmM1NDhteXRvKzlsWVZWOFpnSWJsbktXWmVMbExNU2lPRFRaTXpzbkVwRDVECjdsSjBTd3VjallT -RHg2Q0QyQkloYm9DVUVPSjNUSFc3Z2E5dkt0ZFYzWnNycTJTUGNBTlA5dE9NZUNkemg2bkdoS2o4 -Um16S3Y1TzcKRk4wckhBK2ZYNFRhdHZ2SlJZZ2JJQ1dGT0lDNXFwa1ZZN0lwc2M5RUxXNFM2cEpo -TlBJSXg2am5rdHlsR0E2dGxnbGw5cmdWZm9sRQpzOXpWNkZhVkord3hoOExMOXowbFF0d0FLUzNF -N3doeXFpUnNaQ29GcGpmbExzVW9tS0RoWitSaXptSG9iNE43dmVCVDdVQmc3ZzlJCjZsSzVTOUd0 -Sm12NElSRFM3dTBuRnlGdWdKUWE0Z0FTV3A0SXVFS044M25xSmJYYzVSaUZLZFF3bmdNMGNrUHVV -Z3lHZmFNVlUzS3YKWWxyYnpySVd4a29Mbkl1Q0EzR3QvZVFpeEEyUWtrUDhqcUYydFR3NE9wMWNj -M0ViZWxjNDBjd1RwTkpFcXR5bEdBd1RqVVJrZ1lUZAp6YmFYUVRWcVJlUGdzOHRRV3lGQzNCQ0pF -TDlEeTBMZmExaTRuNlZDcXBlN0dDUFFjb1BRWUw1QlE0UGN4UmlNNEJ2MmVCWjhoYVJ0CmxMc1Uz -YXIyaEQwV1NIKytKRUxjMElnUXY1ZTllUk5MUjJkd3pmWVNHakVkc1ZNamFXQTJQMUJQcnR5bEdB -elBHbnVDYzQ4ak5SWEoKWFlwdXFhMlFKdFNKRURjMElzVGJOczY1blBFajBya21CajQ3Wlk2R24z -TUpGVC9JWFlyQnNHMnlJQ0szRUxPYUZMbEwwU2xkaEtvSQpjUjBUSWQ0UkxZLzc1YUp4UFVlMTFN -L2VIdmVCNlZReG12MDBVU0YzS1FaQnBZV3BoV1k0bE8yWHV4U2RFU0Z1Z0VTSWQyNlFaUU9MClJw -OG56enBIM1BIWmljRTBFME1DRFp5VnV4U0RNZWFXQTBQenYwYlNHdjhOVXlMRURaQUk4YTZiNUhL -VGdPSHBZZ09LVG1tSm9RZ0gKRHFCRlROMEVjS3Nid1BpY1JGU05lWEtYMGlzaXhBMlFDUEh1a2RE -eXhNZ3IxQTI2UUsxWTZyWkRRZFF6alNNMFVDQjNLUWJCV20xTwpSRjRaRmxYR3V4Nk5DSEVESkVL -OFo5eXQ2M2xrOUZseXJmTGxMc1dnMmFCaEJabG82WWZyY2ZlRUZxWVVXekh3K2xkeVY5SWpJc1FO -CmtBangzb2wyTDhWbldEb2xZbEd0RHMybW5PSHNSMDIxM0tVWWhJQUtCNGJuSFVEU0dOZlBqUWh4 -QXlSQ3ZQZk1WQnFlQ0xoRXVWTUcKRFZJL1d3eEpoenhvWWhHbmFLQ2ZMZVBhUTRQcWJRbkxPWTFK -dy8wTFRSa3FFZUlHU0lTNDdneTFxK1hCVVdmSXRTaVV1eFNEcFVMRApreFJndzBHMGFPUXVSM1lX -emFaRTVWVVp6Zlp2U2d0eHZleDJMeGlPcTFYV2JFdVlpT2JxWkp3MU5uS1hZNUEwcVBnSG5pVHhK -QmFJClRhMGJUTlI4NjJQSmRkZEgwU0xtcjNabTVjcVZ1TGk0RUJnWTJQcllTeSs5UkVCQUFPUEdq -ZU9GRjE2Z3JxN3RxWncrUGo0RUJRVVIKRWhKQ1dGaFlsNjVuTkNFK3ptZ3FOUTZIOGwzNTlPUk0z -RzhGWUtZVjM5eTJKR1BGTHVaandrUzVTNUdmSkJIdlVrM20wTWZRbWpqSQpYWTFCZStxcHB6aDQ4 -TjVGeG1iTm1zWDU4K2RKVGs2bXBxYUczYnQzdC9sYVNaS0lqWTBsTFMyTnhNU3U3U05yTkwrOXFh -L0NwQXh3Ck5wRzdrdjZqWG1QQysyY0R5RG96RTY5R0Y3bkxNVWlWcU5qQ1dBcFpqQWxXY3BjanU0 -c0R5am5wRjAyelpZRGNwUmlzaUlnSUhCMGQKNzNuc2dRY2VRS1ZTb1ZLcGVQREJCemw2OUdpN3Ir -OXUxNHpSaERqQXFZK2g4Uzh3VlN4SXAxTlpGYlpzajUrTVdWNDRqbG9SVkczWgp5MEFPc0JSTGhz -dGRpdXh1V05SeXlNK0hHb2ZwY3BkaWxONTk5MTNtelp2WDVuT1NKREY5K25RV0xGakEzcjE3dTNR -K1UxMFdwdytWCk4rSDQvOENvcWFDZURkbmlaanNka2RpYk13VGJheTRzRzVOSm9kMUZtc1hXY1Bl -NGdqbWJtY2JQR0tiNDNZUFVxbWErOHpKaGd2WGkKL3JuOUcxQmpidDNtNDhjU216bVdkUGVBZDlk -dnFQdjk3MytQblowZGp6MzJXSnZQbnpoeEFqYzNOekl5TXBnM2J4NWhZV0c0dXJwMgplTTVPWjZl -V1JaRk1BQUFnQUVsRVFWUTBORFN3Wjg4ZTR1TGkyTEpsQ3hjdlhpUXJLNHVISDM2NHk0WDNsaVJK -TU8zK01sV21NUFVYCmtPd090V0lTZ1U0Rk9WVXljV1E2K2FabGNwZGlrQ1pUelFRT2l0MkRBSjlx -ZXdKell3MW0remRkelU3NVNqdXJTOGZPbDc2OTczbzUKT1RuTW16ZVBzMmQvWEovbjczLy9PKysr -K3k3ZmZmY2RscGFXblo1My9mcjFCQVFFc0dyVnFnNlA2N1E3NVhlLyt4MnBxYW5FeHNZQwo0Tzd1 -eml1dnZOSnBBZnFnVVVQY05yRC9PNFRLWFV3L2MrYm1BSGFjak1DNmNBSUR0Qlp5bDJOd1RtTExo -eXpFalBGeWx5SzdITnNLCjR2d21vN1lPN1B4Z2hUcDQ4Q0IvK3RPZjJMdDNiN3NCWGx0YlMxVlZ5 -NDFWcGFXbEhEcDBpTm16WjNkNjdrNUQvSWNmZnVETk45L0UKM053Y0FCc2JHMW5uUkxhbDZBb2ti -WVN3ZEhBMXVnNGlReWJ4K1NVdnZrMTRBSy9xWWFnTTY3OWRkamN4WVRQaktXTWhLcFQ5aDY3Qwp2 -STVEdnU1VU9UMG9keW15aTRtSllmTGt5V1JsWmVIcDZjbk9uVHY1NVM5L1NYVjFOVE5uemlRa0pJ -UzFhOWNDVUZoWXlOeTVjd0VvCkxpNG1JaUtDNE9CZ2xpNWR5b3N2dm9pbnAyZW4xK3UwTzJYRmlo -VnMzcnlaNk9obzB0TFNpSStQWit2V3JYend3UWM2K0hLN3ByM3UKbExaWUQ0QUp6OEp4YThSdEdq -bzJ3ZmtXd1NQU0tUQzlKWGNwQmtmc0h2UWp1YmQvTTRUdUZIM3FOTVNUa3BKNCtlV1hPWGZ1SEdQ -RwpqS0drcElSLy92T2ZqQit2djdlUjNRbnhPMGFFZ3NsOHlCQURuenFtSmNZL2g2YkI1NmdSS3lU -ZVErd2U5Q001dDM4VElkNk9sSlFVCk5Cb05vYUg2NzMzdVNZZ0RvSUtJbFpEdUJWV2lXYTVUTHBZ -TkxCeHpqbHhyMGZMOEtiRjdVQXU1dG45VFdvaDMyaWYreFJkZlVGNWUKenZqeDR3a05EYVc4dkp3 -OWUvYm9vN2JlMDhDeDk4RHlYWmdvUWx5blN1b3QySlk4bnNyc0tGeWI3ZVV1eDZCOGp4MGY4eGdX -S0h1ZwpyOXFzZ1VPK0F5bDNuaXQzS2YxYXB5M3hzV1BIY3ZyMDZYc2VDdzRPSmoyOWk2dkQ2RUNQ -VytJL01YNHVsRXlDYTZLTFJhZE0wTEFzCjRBbzF6aGVvazhRMzkwZGk5NkE3QW04NTRLT243ZDlF -Uy93bkxDMHRxYTJ0YmYyOHRyWVdFeFBqdlBjOVpUK1V2Z0dSbFdBcTF2SFIKbVdaVS9ETmpPSW1w -RCtCVDd5RjNPUVpFNGlQY09jRVRXREJFN21Ka2RkYXhuQlMvaDlDWWU4bGRTci9UYVlnLzl0aGpy -Rm16aHZqNAplRTZkT3NXYU5XdFl1blNwUG1yckV3MjFFUGNXZUgwQlk0enpiNUhCdWxaanhkYkVN -Qm92VDJXd3hsYnVjZ3pHR1N6WndSd2twc3BkCmlxd0tyYXI0M2krSUJqdXhvSmd1ZGRxZFVsdGJ5 -eWVmZk1Kbm4zMkdWcXRsOGVMRkxGMjZGQ3NyL2EyeG9hdnVsUHRQREZOWHdMbmgKVU43LzdocVds -Ym1xbVNkR1hlS21ZeWFOWWhPS1ZtTDNJUHA4K3plbGRhY1l6NllRZlJIaXR6bTV3c2hmd0VseG81 -RE8rZHJWOE1DbwpNK1JhNkgrcW1hRVN1d2UxQ0NoM1pIaitmaVNOYnYrZ2lSQy83Zm5ubjJmVHBr -MXRycllsU1ZLWFY5alNoYjRPOFR2R3pvU0thTWhSCjloaFVuM2pJdXdnbno5UGNVTlYyZnJBQ2lO -MkRXZ3l1dHlWVXg5dS9pUkMvTFNVbGhmSGp4M1AwNk5IN0NwUWtpYWlvS0wwVWVPZDYKK2doeEFE -TkxtUFFNeEErRVJvTi9qMkpjckUzVkxCdVZUWWw5Tm1wSnVjRjF0d25VTVlWRE5GQWlkeW15MGZY -MmJ5TEU3NkpXcS9uWgp6MzdHdi83MUwzM1dkQjk5aHZnZFhnSGdGQVBwSW10MExzQ2hpc2lBMCtT -WlhaZTdGSU13QUEzTE9VTXpDWEtYSWgrdGxvblg3UmhVCi9DVlNMNWY0VlZxSWR6Zzd4ZFRVbEp5 -Y0hFcExEV09KU1gzS3k0RDBWMkZTRmd3VXMxaDBLcVBjanUybnBtQnhMUXdIYmVkTGN2WjMKTGJz -SEJTdDc5NkRXN2QrV2lPM2Z1cW5UZ2Mxbm5ubUd1TGc0SG43NFlkemMzRnBlSkVtc1g3OWVMd1hl -dVo2K1crSjNHK0FNUWMvQQpjWFBaU3VpM0JwZzFzWFIwQmdWMmw5R0lUU2dZU2lQek9VWTlsK1F1 -UlRZREcyeVltSE1Cay9xc0hyMWV0TVIvd3QzZG5hVkxsMkpuClowZDFkVFhWMWRXdGE5NHFSV1Va -SEg4RFJuOFB3OFVNRnAycWJESmpSM29RQlJlbTQ2RWVLSGM1c3J0NmUvZWdSbWFCUW5lV3YyRlIK -dytIaHc2Z1YyNzkxU1ljdDhWdTNicEdRa0VCa1pDVFcxbTF2VmFRUGNyZkU3Nll5aGFuUFFKSXIx -SW4rY2gzVHNzUXZEMXpQVWlYSgpzNHlwSVZIODdrRmFMYUZsQTNBdDNOT3Q3ZDlFUy95MmQ5OTls -NkNnSUxaczJjS0lFU09NWjlHclBxWlJROXpmd09rZk1FR1pEYVUrCkpQSEpSVysrVDVxRmQ4MVFs -TjY3b3ZqZGd5U0pwRUZWblBOZGhOYlVXZTVxREZhN0lmN0JCeDl3K3ZScHZ2NzZhK0xpNG5qLy9m -ZjEKV1pmQks3Z0V5YitEOExQZ0lycFlkS3FzM3B4dEtTSGN6SnFHZTdPeUI3bkU3a0Z3MWJhY09M -OHBxSzJVdlNwa2U5b044WnFhR3B5YwpuQUFZTm13WUJRVUZlaXZLbUNSOER0Vi9nb2hhcGZaZzlw -MzQ2NDdzUERFTnArdkJXR3ZONUM1SFJoS2ZNWmp2V0lZbFBuSVhJNHNLCjh6cStIVDVFYlAvV2hu -Yjd4TzN0N1ltTWpHejkvTml4WTBSRVJMUzhxSi9lc2RsYi91RWd6WU5NY2NlbnpybFoxek4vOURs -eXJmTGsKTGtWV1l2Y2dDTGxoajBmQkhpUnQyenRMS2ExUHZOMFF2N083ZlpzdjZ1Q096WlVyVjdK -Ly8zNEdEeDdNMmJObkFhaXFxdUxKSjU4awpMUzJOY2VQRzhlR0hIMkpyMjdMSzNUdnZ2TVBtelpz -eE16Tmp4NDRkVEoxNi8wcHZ4aExpQUpJSlRGMEphWjVRTFFZK2RTN0tyWXloCnZ1bVVxQ3JsTGtW -VzA2aGtETjhvZHZjZ3p4cDdnbk9PSWFtTDczdE83aER2YmdiZUxTNHVqdFdyVjZOV3ExbTNiaDIv -L09Vdk82OVYKMXd0Z0hUdDJERnRiVzFhc1dOSDZCZnp4ajM4a1B6K2ZQLy81ejd6NDRvdjQrUGl3 -WWNNR3JsKy9UbVJrSk45Kyt5MVhyMTdsVjcvNgpGYW1wcWZjWGFVUWhmb2VMTi9qOEhCSkVINHZP -bVVvYW5naTRSTVhBREJvVXZFTGlZSnFKSVlFR3pzcGRpaXpzbWl5WW1sdUFXYzI5Cm1TRjNpSGNu -QTM4cUpDU0VUWnMyNGUzdHpZTVBQc2p4NDhkeGR1NTRVTGZUZWVMZEZSRVJnYU9qNHoyUEpTWW04 -dlRUVDJOaFljSEsKbFN0SlNHaTV2VGdoSVlIWnMyZmo1ZVZGVkZRVVdxMjIzOHhCTDhtRmhOZGdR -aklNRVFPZk9xWFdxdmpnd2dqT241N0pFTFZqNXkvbwpwNjVqd2lZbVVjRThKSlQzUTFabDFzQWhY -MmVEMi82dE94bDR0NHFLbG5kVmtaR1JlSHQ3TTJ2V3JEYVAreW1kaDNoYmtwS1NHRGx5CkpBQWpS -NDRrTVRFUmFBbnhnSUNBMXVQOC9mMWJuK3N2a3ZmQmpmK0Z5R29RZCsvcjFzVktHLzUrS29vaDVm -NEtubzdZc252UUtaN0EKbkVGeUY2TjNHZ25paGpSeDFXc0pXc2x3bDNCb0x3UGJPd1pnMUtoUnhN -ZkhkM3J1THYvNXJxK3Z4OUt5WjkrazdyeTFrYVIyK2grdQpidnp4M3c3UjRCamRvMXJrVUY4TmNY -K0c0ZVBBZWlHY1VXNFBnTTZwdFNyZU96T2FLRGNYUEgyVEZidlViVHFXWEdNK1R5aXdlK1ZzCjdF -MCtpcjJNblhvb2J1VkZRTGxPemx1Q1c1dVBaOFVXa3gzYjBoZmYxV1RyeTRIUFRrTThQVDJkVjE1 -NWhRc1hMbkQxNmxYUzA5UFoKc1dNSGYvdmIzN3A4a2REUVVESXlNZ2dKQ1NFakk0UFEwRkFBd3NQ -RE9YTGtTT3R4bVptWnJjL2RaK2pHTGwvUFVGMUtCVkpoOGxLNApOQWF1aTFrc09uTzB5SmtCWlRO -WU52WXN1ZFk1Y3Bjamk3TGIzU3ZMOGNSV1FldVVCMFk3RVJqZE1oM2FvbmtvYlBsR0orZjlra2Zh -CmZpTDY5c2NkcnkzcTlGenRaZUJQajNucHBaZGFQejkvL2p5elo4L3U5TnlkZHFmODRROS80TTAz -MzhUQm9lV21pK0RnWUk0ZVBkcnAKaWU4V0hoN096cDA3cWF1clkrZk9uVXljMkxMSFhsaFlHSWNP -SFNJdkw0L1kyRmhVS2hWMmRuYmRPcmN4T3ZsdnFQa1RSTmFJTGhaZApxbXd5WTF2eU9NaVpoTDFp -VjBlVStDZWVwTEVNYzVTM0ZrMkRpV0cyak5yTHdMdloyOXNETFROVWNuSnlPSHo0TU9IaDRaMmV1 -OU1RCkx5d3NaTXlZTWEyZk56UTBkTGlPU2t4TURKTW5UeVk3T3h0UFQwOTI3ZHJGbWpWcnlNdkx3 -OS9mbjRLQ0FwNTk5bGtBWEZ4Y1dMTm0KRGRPblQyZnQyclZzMnJTcDA0TDdpNW9LaVBzVGVIOEpZ -MFdTNjlTQlBEZStTNXFCZDcxeWQ1aVB4NGFQV0lnRjRpNUhmZXRPQmhZVwpGakozN284RHMyKy8v -VGFyVjY5bTVzeVpyRjI3dHRPWktkQ0ZLWWF2dmZZYXdjSEJiTnk0a2ErKytvck5temRqYjIvUGIz -LzcyMTUrCnFWMW5qRk1NdTJ2U0VyZ1NCQ1dHMlpBd1dvLzY1cU55VDZkR2F2dkdrUDVQeTNLdUth -cDdSUmMzMzBpU3hCenQ1MTA2OW9DMHlEQVgKd0xyaitlZWZKeTB0amVibVp1Yk1tWU9EZzBPWEpx -QUwzWFBxRTZqNkkwUlZnNm1ZVzY0elgxejJKRDUxSmw2TkxuS1hJcE83dTFlYwo1QzVHNkFPZHRz -UVBIRGpBbkRsejdubHMyN1p0clc4SDlFRUpMZkc3K1l3Qnh5V1Fwb3lHazU1b2lmSFBvVzd3R2NY -ZUlEU0lacFlwCllQYUthSW4veEgvLzkzL3ozWGZmdFg3K3h6LytVU3hMMjhkeXprSGFxeTBySkxv -cDd4Nk9QaUx4VWRaUUxweVpvZGpOSjBwdnoxNnAKNVNIMGRJdUlvQWVkUnNUZXZYdDUrT0dITVRj -MzUrREJnMlJtWnVwMThTc2xTL2djckw2RnlGVnd5aDZhbFBObXBNOWtWOWh5OFdRawpLMFpmNUti -VEJkU1MwdDd1U1B3RFR5YXhqRkMrb1pHYmNoY2s5RktuZjQ2ZG5aM1p1M2N2YTlldXBiQ3drTTgr -K3d4emM3SFpwTDdVClZVSGNXK0QrQ1l3VGpTZWQwQ0x4d2ZrUjVKMmZocHRDMXlzL2hRMGY4YWlZ -dmRJUHROc25ibXRyZTgvZGs0Mk5qWmlabVNGSkVwSWsKVVZtcHYxWGtsTlluM3BIUVIrQldHRndT -czFoMHdreWw0V2RqTWlteXoxTG9SczFhVm5BTmF3NUNQNW05b3JRK2NaMnZZdGdYUklqLwpoQW9t -UFFZRmdaQW53bHduSnJuY3hNOHZtVkpWdGR5bHlHSVNOZjJtZTBXRStHMlptWm1NSERteXphVmhB -Y2FORzllbmhkMU5oSGpiClZLWXcrUW00N0FkRklzeDd6ZHBVemZMQTgrVFpYWmE3RkZrTVFuMTc5 -c281dVV2cEZSSGl0NjFhdFlwMzMzMlg2T2pvTmhlbCt1RUgKL2Uwc0lrSzhZMmFXTUhFRlhQQ0VH -OHFjUGFkVDA0ZGN4M1ZZQ3Jla09ybExrWUh4ZDYrSUVMK0xScVBoMUtsVFRKa3lSWjgxM1VlRQpl -TmRZMlVIWXp5RE5CU3BGbVBlS2cza1RNVUZueUxIT2xic1VXVXlpaGduc3A0bGJjcGZTYlVvTDhR -N25PNmhVS3A1NzdqbDkxU0wwClVsMFZIUDByOEJlSXJBQWJNWnVseDhvYnpkaWFQQjVWN2tUc3RN -cmJaZjRVTnZ5YlI3RmdUT2NIQzdMcTlOZDgzcng1dlBQT08zcWQKalNMMFR1Vk5pUHNMV0c2RHlG -b3dGN2Z4OTlqK1hIZmlrbWZnM2VBdWR5bDZWNG9wbTVoTUhYTVFOd2Nacms1bnA5amEybEpiVzR0 -SwpwY0xLeXFybFJXS0tvVkZ4OFFHL1pYREtIRVF2UzA5cFdUdzhINjNiYVdvVnVKaldaS29aenpk -RzBiMGl1bE4rb3JxNkdvMUdnMXF0CnBxcXFpcXFxS3RFcU56SWxPWEQ4RFhEL04weHFCdEV3N3dt -Snp5NTVrWkkyQTYrbXdYSVhvM2Nuc1JYZEt3YXEweENmTVdOR2x4NFQKREY5K0pwejZieGkyQjhM -a0xzWkk1VlJicy8zVUZBWmVINHU1VmxrTHdZdnVGY1BVN3Y5RVhWMGROMjdjb0xTMGxKczNiN1or -WkdabQo5cHNkNlpYcWNqb2tib1NBUStKVy9wNlIrRERUbCt5ejB4bWlWdHJ5cmhJZjRNVVpZakRE -c2ZQRGhUN1g3Z0pZMjdkdlo5T21UUlFXCkZqSisvUGpXeDcyOXZYbmhoUmYwVXB6UXR6Sk9BYWNn -Y0Rvd0RjNktEdk51eVNpM0kvdGtKQ3ZHWEtUTThRSnFCZDIyZnhKYkx2Sm8KdjdnNXlOaDFPckQ1 -emp2dnNHN2RPbjNWMHlZeHNLa2Y0K2RDOVNUSUVuZC9kdHM0NTNMRytpZFRiS0swOFNJdFB5TWZL -dzVoS0RjSAppWUhOMjVLU2tpZ3FLbW9OOEcrKytZYmx5NWV6ZGV0V2FtdHI5VmFnb0Q4cCt5SHJ2 -eUQ4REF3VDY1aDNTMnFaQS84Nk5RMlBpaEdvCkZOWGVhT2xlT2NzeTBiMGlrM1pEL0psbm5tbGRj -dmJTcFVzODlkUlR6Smd4ZzlPblQvUC8vdC8vMDF1QmdwNXBJZUVMdVBJcVRNNEcKRHhIbVhkYW9N -ZUhkMDJNb3Z4aUZzOFpHN25MMDZnUTJmTXdpTEJndGR5bXl5OHJLSWlRa3BQWEQzdDZlZDk1NTU1 -NWpZbU5qc2JlMwpiejNtOWRkZjcvSDEydTFPQ1FvSzRzeVpNd0NzVzdjT0t5c3Izbnp6VGRScU5W -T21UQ0VoSWFISEYrMTJrYUk3UlRZbVpqQnBPVndjCkpqWng3ZzViVXpWUGpqMUxyczFWdVV2Ukt4 -VWFsbk5OMXU0VlErcE8wV2cwREJreWhNVEVSRHc5UFZzZmo0Mk41YTIzM3RMSkJqdnQKdHNRZEhS -MWJ1MDIrK3VvckZpOWVESUNwcVNuVjFjcGNybE9KbXB2ZytFNG9md01paThGSldiUHFlcXhhYmNx -MmxCRFVWNmJnb0xXVQp1eHk5MGFBUzNTdDNPWExrQ0w2K3Z2Y0UrQjI2Nmtkdk44U2ZmUEpKSms2 -Y3lNeVpNL0gxOVNVME5CU0FpeGN2NHVDZ3pOMVFsS3loCkZ1SzJRY09mSWVvbTJJbXBpVjF5K0pv -TGh4Sm00bDEzL3k5eGZ5YTZWMXI4KzkvL1p0bXlaZmM5TGtrU0owK2VKRGc0bVBYcjEzUDUKY3Mr -WFArNXdka3BoWVNIWjJkbEVSVVcxTGtlYm5aMU5kWFcxV0U5YzRld0h3ZGpsa09RQWRZWXhLY0hn -elI5YWdMbEhHdFZTbzl5bAo2STBjM1N1NjZrNEpLVWxzODdtcUV5bFVuL3h4bjRYaVA3L2I1dlVh -R3hzWk1tUUlGeTVjWU5DZ1FmZWVvNm9LRXhNVHpNek0rT0NECkQ5aXpady83OXUzcldhMWlaeCto -TjV5SFFNQ1RFRzh0Tm5MdUNuZnJlaDRKVENYWG9sanVVdlJxQ2pXTTA5UFN0cm9LY1k1MjhSeFIK -VXB2WCsrcXJyOWk2ZFNzSER4N3M4T1ZhclJaWFYxZnk4dkt3c09qK2lwbmlUYkhRSzJVRmNPeE5H -UFJQbU5va2ZxQTZVMWhyeWJhRQpTUXdvR29lVlZqbFRmNVRZdmZMUlJ4OFJFeFBUNW5NbEpTV3R3 -Zi8xMTE4VEZCVFVvd0FIMFJJWGRNeG5OTGd1Z25pUjVwM3l0YXRoCnhwZ1U4czNLNUM1RmIvVFJ2 -V0lJTGZHYW1ocTh2YjI1ZXZVcWRuWjJRTXRkOEFDclY2OW15NVl0Yk4yNkZWTlRVNEtDZ3Rpd1lR -TkIKUVVFOXE5VllRdHoxVVEzRnQ4VDZlOGJDYnp3NFBBSkpCdi9USlRjdHl3TXVVK2w4amtaSk9Z -TUxVNmhtWEI4dGJXc0lJYTVQUnROZQp1bmtnbVNpUFc5amJpRlF3QmhkVElPbDNNT29JQkl0cGlS -MlErR2ZHY0M2Zm00NTdzM0ptZlozQVZuSGRLMzNGYUZyaUVBL0FnSUhtCmhNd2ZUa0tCTGZXTm9t -VnVMTWJPQkhVMG5CYzNETFhMVk5Ld1lrd1cxeDB5YVZiSVlsb3FOS3dnSDBzT0FicjVtcFhXRWpl -NkVML0QKeGNzYXYxbkRPWG5WRW8xR2hMbXhtUEFJVklUQlJSSG03UW9kZEl2Ui9zbVVxSlN6NVBO -VXFnbGhQMDJVOS9wY0lzUU5VRnNoZnNmUQpNZllNRGg5R3doVnovUllsOUp3RWt4NkRvaURJRVdI -ZUprdFZNeXVDTG5ETjdpSmFoYlJSWEZIek9QRTBjTDVYNXhFaGJvQTZDdkU3ClJrOGVoSW1mRjJm -eWxETnR5OWhKSmpCNUdWejFoMElSNW0yS2NpdkQwemVaR3lwbHJCeXFpKzRWRWVJR3FDc2hmc2VF -QjRkUVB0Q2QKUzBWR00yYXJlS1lXTFl0c1pYaERtZGlZNGo0RHpKcFlOdllzdWRZNWNwZWlONzNw -WGhFaGJvQzZFK0l0TDRESkMzM0lWUTJtNElaQwozb3YyQTVhMkVMWUN6cmhCdVFqeis4enhLc0xl -TzQwS3FWN3VVdlNpcDkwcklzUU5VTGREL0RZekN4V1RGdnR5dHRLUlc5VWl6STJGCm5ST0VySUFV -SjZoUnp0VHBMaGxrMmNEaW9OUGtXRjZUdXhTOTZFbjNpZ2h4QTlUVEVML0R6c0dja0FYRFNTcXlw -VTVNU3pRYWppNFEKdUFJU2JLSEI0SDlLOVd1aGJ6NG03dW5VU0UxeWw2SVgzZWxlRVNGdWdIb2I0 -bmNNOHJCbTVJTytuTXl4b2xsTVN6UWFMdDdndHd6aQpMVUZ0OEQrdCt1TmhVOGZjd0ZUeXpFdmtM -a1V2V3JwWFR0SEFoUTZQRXlGdWdIUVY0bmQ0Qjlqak5ua284VmQ2dHVDTUlBOFBmL0JlCkFpZE5k -SFZiU0grZ0pjWS9oN3JCWjJpUSt2OUFRbGU2VjBTSUd5QmRoL2dkQVdIT21JL3k1blN1bUpab1RJ -YU5oVUVMSUVHOG1XbzEKeXJHSzhGRUpGSnRVeWwyS1hrUlFUWEE3M1NzaXhBMVFYNFg0SGVObXVs -UHQ0azUyb1Zqa3c1aU1pWVNxV1pBcjVwZ0RZR1hTek05QwpUaXRtS21KNzNTc2l4QTFRWDRmNEha -TVdlSFBOYkRENVpXS091Ykd3dElYUXRYRE1XdTVLRE1maTRYbW8zZElVMjcwaVF0d0E2U3ZFCkFV -ek1WRXhaUEl6ek5VN2NxQkx2MTQzRjJKbFFGZzBGb2xVT1FLQmpKZU5HSjNCZElldXYzTjI5SWtM -Y0FPa3p4Tyt3R1dES2hJVisKSkYrM282WmVoTGt4c0xHSGtPZmd1RmhHQndBYlV6WExROUxKdGNx -VHV4UzljRVBORWs0eFczcGJoTGloa1NQRTd4am9hc21vdWNNNQpsV3VOdWxtRXVURVk5eEFVVElZ -UzBTb0h0RHcrSXBkNmwzUkZiRHFoUXNOKzZURkZoYmpvL08zRWplSjZqcjEvRHJlOERDWU5hNUM3 -CkhLRUxVcitCdXJkZ2N2L3ZFdTRDaVkremZjaTdNSTFCR2x1NWkrbHpHZ1ZHbXZLKzRoN0t6Njdp -MVB2cGpLaTh5RGdmWmR3bFo4d3EKYjhMSi80YXdkQmdvSmgyUmRzT2VQUW5UOEs3M2tMc1VRY2Yw -R3VLN2QrOG1LaXFLMGFOSDg5NTc3d0d3Y2VOR1BEdzhDQWtKSVNRawpoSU1IRCtxenBHN0xUcmxK -NnE1VWdza2xZSWhvNmhtNnhEMmcrU3VFRzN5bllkK3JiREpqVzJJb2p0ZURNZFdLOWx0Zjh2SHhJ -U2dvCmlKQ1FFTUxDd3RvODVqZS8rUTNEaGcxai9QanhaR1ptOXZoYWV1c1RyNmlvSUN3c2pQajRl -TXpNekpnK2ZUcUhEeC9tN2JmZnhzN08KanZYcjE3ZGZwSXg5NHAyWitJZ1hoWll1NUpXS1h3cERO -M0VKWkFhS0ZSSUJKampmWXVUSVJHNm9hdVF1UmVjT1NJdGs3eE1mT25RbwpLU2twT0RrNXRmbVN4 -TVJFMXE5Zno5NjllemwwNkJELyt0ZS8yTGR2WDQ5cTFWdnluRHg1a25Ianh1SG82SWl0clMzVHBr -M2oxS2xUCkFMSU9DdlJXL040OHJuMlJ6TlRCWlF5eU45NnZRd25pUHdIVGJSQXF4cWRKTG5Oa1gr -SjB2QnZjNVM2bDMrb28xeElTRWxpOGVERk8KVGs3RXhNU1FrWkhSNCt2b0xjUWpJeU5KVEV6azZ0 -V3JGQlVWOGMwMzMzRHk1RWtBTm0vZXpNU0pFM256elRlcHFqSytlYTBhdFpiagpIMSttK2tncVVa -NFYyRm1KTURkVVpRV1E5RHVZY2drR0tQek5VM21qR2RzU3dobFlHb1NwVXZhQTB4TkprcGcrZlRv -TEZpeGc3OTY5Cjl6MmZtSmpJcUZHaldqOGZOR2dRbHk5Zjd0RzE5TFpvaUkyTkRXKy8vVGJQUGZj -Y0ZSVVZCQVlHWW1scHlhcFZxM2oxMVZlcHJLemsKcFpkZVl2djI3V3pZc0tHTk03eDMxNy9IM2Y0 -d0xIWFZhbzcrSXhON1ozT2k1ZzBucGRpV2FqSEgzQ0NkK0JEY2hvSDNVM0JXMGQwcgpFaDltRENm -Q3pRRzM0ZkZVU1kxeUY5UnROMkxQY1RPMmQvdHl0aW0ybmNldnhrSk9lMCsyT0hIaUJHNXVibVJr -WkRCdjNqekN3c0p3CmRYVnRmVjZyMWQ3WFVtL3BOdTQrMmVhSkwxMjZsSmRmZnBseDQzNE00OU9u -VDdOMjdWcE9uRGh4ejdHRzNDZmVFWHRuYzRKRm1CczAKeVFRaTFzS0pnYURvTEFkODdXcUlDRHBG -aVpFdm9xV3pQdkZwWFR6SER4M1BFMSsvZmowQkFRR3NXcldxOWJITm16ZWpWcXY1MWE5KwpCWUN2 -cjIrUFcrSjZmVU41L2ZwMUFJNGNPY0xaczJjWk4yNGNSVVZGQUtqVmFuYnYzczFERHoya3o1TDZW -RVZaSTBkM1hjQWtLWjBvCm55cHNMVVUzaTZIUk5rUGNadkEvREo0S1g4enljcFVOWHlSRzRkM2cy -dm5CUXJ0cWEydGJ1NFZMUzBzNWRPZ1FzMmZQdnVlWThQQncKUHYvOGMyN2N1TUh1M2JzSkNBam84 -ZlgwK21PN2VQRmlybCsvanAyZEhidDI3UUxnUC8velAwbFBUOGZjM0p6SXlFaldyRm1qejVMMAo0 -azZZaTI0V3czWGhCTmljZ3ltL2hCTUtEdlBLSmpPMkoweGlWZkI1OGdka3kxMk9VU29wS1dIaHdv -VUFEQnc0a0JkZmZCRlBUMCsyCmI5OE93T3JWcXdrTEMyUHExS2xNbURBQkp5Y25Qdnp3d3g1ZlQ5 -eDJMd1BSeldMWUpqNEdGNEtnVXVIOUswdjhjcWx6VFVOdFpMZnIKRzFwM1NsOVQrUGk4UE83cFp2 -R3VGTjBzQmliK1U3RGVDVUVLdjlQems0dmUzTG9VZ1oxVzdJQmx5RVNJeTZpaXJKR2pmODhRWVc2 -QQppcS9DbWQ5QlpCa29PY3VQRncwa0pUMGExK1lCY3BjaXRFT0V1QUVRWVc2Z05CRDNWeGp4TFhn -cHVKLzhjcFVObnlkRzRkM2dKbmNwClFodEVpQnVRbjRhNXVHbklNR1NjaExJL3doUUZyM3ZXTXVB -NUVZK0tFWEtYSXZ5RUNIRURkQ2ZNVllraXpBMUZiU1djK0FPRW53TjcKaGZhdmFKRjQ5L1FZYkF2 -SGl3VzBESWo0bnpCZ0lzd05UOEpuWUxVVHhpbzB5QUUrdmVUTnpZc1JEQkFEbmdaQmhMZ1J1QlBt -VWtJNgprZDZWRExBV1lTNm40cXR3K25jUVdRcW1DcDBoZXFKNElFbnAwM0J0dHBlN0ZNVVRJVzVF -S204MEV2ZjNERFFuMG9uMEtHZmdBQkhtCnN0RkEzQllZZmdDOEZUcm9lYVhLbWs4VHhJQ24zRVNJ -RzZIcThrYmkvcGxGOWVFVUlseHY0T29vd2x3dW1mRncvVTJZcXRCQnoycTEKS2R2RWdLZXNSSWdi -c1liYVpvNTlkSW15ZmNsTWNTN0ZhNUJ4M1ZuWFg5UlZ3ZkUvUVBoWnBRNTZ0Z3g0MmhST0VBT2VN -aERmOFg1QQozYWpoeEtkWHlQOHNpVWtEaWhudUtzSmNEZ21mZytYN3loMzAvT3lTRnplenhZQ252 -b2tRNzBlMEdqajFWUzZYUGtvaTFMS0FBQStGCkwvNGhnNUtjMjRPZTE1VTU2SG1pUkF4NDZwdFlB -S3VmQzVuaGhzYlRuZE81Q2gxOWs1Ri9PRFRNZ3h5MTNKWG9uNjJwbWlmSEo1RnIKVWFUM2E0c0Zz -SVIrSmUyN0lrNy9QWVV4alZlWk1GU2hvMjh5eVVxQWtqZGhxdkZ0bHROclB3NTQrc3RkU3I4blFs -d2h6cDI0VHZMTwpWRVpVWGlSOFdBT1NaUEJ2d1BxRnVpbzQvZ2FFblFFSHhmV1ZTN3g3ZWpUV2hS -TXdFd09lZlVaOFp4VW1PK1VtQ2UrbjQxMlN4ZVJoCjlaaW9SSmpyUStJWFlQRWVCQ3N1eU9IelMx -NlVaVWVLQWM4K0lrSmNvWExPVjNEeS9kTzQ1bVl3ZFZndDVxWWl6UHRhU1M2ay93NmkKU3BRMzZI -bXl4SWxFTWVEWkowU0lLMXpCcFNxT3YzOFdoOHh6UkE2dHh0cENoSG1mMHNEUnJlRDdEZmdvYkt6 -NWF1c2RudTV5bDlLdgppQkFYQUxpZVgwdmN6dk9ZcDV3VzY3UG9RVllDRlArdjhnWTlXd1k4dy9F -b0Z3T2V1aUpDWExoSGVXbURXSjlGVCtxcmJ3OTZwb09qCm92cktKZDQ5TXhycmd2NDU0Sm1mbjgr -MGFkTVlQWG8wMGRIUjdONjkrNzVqWW1OanNiZTNKeVFraEpDUUVGNS8vZlVlWDAvTUV4YzYKWkdG -dFF0ajhvVnhzY0tMNGxzSTZjdlZvc0JlNC93TFNGWGF6N1dTWG0zaU9PRVdsMUtDemM4bzlUN3k0 -dUpqaTRtS0NnNE1wS3lzagpMQ3lNMDZkUFkyZG4xM3BNYkd3c2I3MzFGbnYzN3UxVm5TQmE0a0lu -eFBvcytuRTlyMlhRTTdJRXpCVDB0L0praVJNSmFkTnc2MGNECm5xNnVyZ1FIQndQZzdPek02Tkdq -U1U1T3Z1ODRYYldmUllnTFhTTFdaOUVETGNSdGhhSDdZS2lDQmoxenFxMzUyQUFIUEUzUWRQcWgK -b3VQZmcwdVhMbkgrL0huQ3dzTHVlVnlTSkU2ZVBFbHdjRERyMTYvbjh1WExQYTVUZEtjSVBSWTZ4 -NE5xWjFjeXJpbXFRMWN2TEcwaAo5SmR3VEZGVHE3WDhJdWdDQlE1WnZUcUx6cnBUM05vSjFvWjRh -RXo0OGZQcWQ5cThYbFZWRmRIUjBiejY2cXZNbnovL3Z1ZE1URXd3Ck16UGpndzgrWU0rZVBlemJ0 -NjludFlvUUYzcExyTS9TZDBMbncrVUpjRk5CYTVrOTZwdVAyajJGSnFsbjcvWjBGdUpkenB5Sjkx -MnYKcWFtSnVYUG44dEJERC9IQ0N5OTArR3F0Vm91cnF5dDVlWGxZV0hUL3I3Ym9UaEY2VGF6UDBu -ZVN2Z0tUSFJDaW9OL1VMeTU3VXBvZAppYzdVZkF3QUFBMW5TVVJCVkwzV1V1NVNla1NyMWZMMDAw -OHpac3lZZGdPOHBLU2tOZmkvL3ZwcmdvS0NlaFRnSUZyaVFoOFlNZDRKCngyQXZFcSthbzlVcWFK -U3VMMGtRdVJwT3VVR1R3Zi9HNm9hUGJTM1R4OFpUWkZMZXJkZkozUkkvZnZ3NGtaR1JCQVVGM1Q0 -UHZQSEcKRytUbDVRR3dldlZxdG16Wnd0YXRXekUxTlNVb0tJZ05HellRRkJUVXMxcEZpQXQ5eFdl -MFBlNFRmVWpJc2FCWkk4SmNGMFpNQVBVQwp1S0tRNVcxdFROVXNINTlNcmtWaGwxOGpkNGpybTRM -ZXBBbjZKdFpuMGIzc1pDaDRBeUowTjYzYW9OWGN2c056U1BsSXVVc3hXQ0xFCmhUNG4xbWZSclla -YU9QWS9FSm9LVG9xWUdDVHgzcGxSV0JXRTlzczdQSHRMZkVjRXZSSHJzK2hXMGw1UWJZTnhDdmt0 -L3VLeUo5ZXoKakhmQXM2OG81TDlmTUNSaWZSYmRLU3VBMU45QlpDa29ZZFFoL3JvVHA5S200ZGJz -SUhjcEJrT0V1Q0NiNnZKRzR2NlpSZlhoRkNKYwpiK0RxS01LOFI3UVF0d1VtcElLTkFuNmpjNnV0 -K0RnaEV1K0dJWEtYWWhBVThGOHVHRHF4UG90dUpPMEZ0ejB3UkFIM1hMVU1lSWJoCkxnWThSWWdM -aGtPc3o5SjdsMUtoL204d1JpRURudStmR1lYbHRURE1GVHpncWR5dlhEQllXZzJjK2lxWFN4OGxF -V3BaUUlDSGd1NDUKMTRFYmhaRDVPa3hSeUZ6eUw2OTRVSndWcGRnQlR4SGlna0ZMT25DTmpIOG1F -NkxLWTZ5M1FsSkpCOVFOY09MMWxxVnRsVERnbVhEZAprWk9wMDNCWDRJQ251R05UTUNwanBnekcw -dCtENUt0bWNwZGlOQ1k4QXBrVG9Gb0J2VlBXcG1wcXA1Z3A2bzVORWVLQ1VSb3gzZ203CnNUNmtp -RER2a3VIam9PNVJLRkRDbTVrb1NWRWhMcnBUQktPVW5YS1RsSjJwVEIxVWlvMmx3YmREWkhjcEZl -citDb0dLR1BCVUZoSGkKZ2xFNy9za1ZuQzVuTU5wVERINTI1bVl4WkNob3dGTXBSSWdMUmk4L3U0 -b0xIeVlUNVZtQnFZbG9sWGRFYVFPZVNpQkNYT2dYdEJvNAorbzlNZkNzdU05UkZBU040dlJTM0Zj -YW5nSzFJQUtNbi9ndUZmaVVyNlFhRmUxT0pIRllqZHlrR0wvbHJjUGtDUEJSd2gyZC9Ka0pjCjZI -Y2FhcHVKZS84Y0lhcDhYQnhFOTBwSExxZER6V1l4NEduTVJJZ0wvVmJhZDRYVUgwdG40akNGN0tE -UVE3ZEtiZzk0aXUxUmpaSUkKY2FGZnF5aHJKUDc5ZENZN0ZJdjF5enVnYm9BVGY0RElZakhnYVd6 -MEd1SzdkKzhtS2lxSzBhTkg4OTU3N3dGUVZWWEYvUG56OGZMeQpZc0dDQlZSWFYrdXpwRDZVS25j -QlBXQnNOWGU5M3BOZjVtSjkvcno4dCs3ZmlwWDMrcDJJMndiamszOHk0SmtXSzFjNVJpc3VMbzZB -CmdBRDgvUHpZdkhsem04Zjg1amUvWWRpd1lZd2ZQNTdNek13ZVgwdHZJVjVSVWNGcnI3M0duajE3 -U0VoSVlNZU9IVlJVVkxCMTYxYTgKdkx5NGVQRWlIaDRlYk51MlRWOGw5VEZqQzBRd3ZwcTdWMjl4 -VGcybi81NUNwUHROK2ZiN0xJK1Y1N3Jka0x3UEJuOSsxNEJuZXF5Ywo1UmlsNTU5L251M2J0M1Br -eUJHMmJObENXVm5aUGM4bkppWnk3Tmd4a3BPVDJiQmhBeHMyYk9qeHRmUVc0aWRQbm1UY3VIRTRP -anBpCmEydkx0R25UK1AvdDNXMUlVMzhiQi9EdjZCL3pmNXVscTBGQ01aLys2QXgxMm53b1M5U2l6 -TEhWY053NXMwaU5UTXVLSUFoNkVmZWIKVWdqU0l0SWV6QmZlTWlteExDUEswTjNrUTh1S1dyWGlu -MDlCeXEyWWFhWGNQZjN1RjlGd2FiazVkODVaWFo5WDduaXVuYThYY1huYQorWGxPYTJzclRDWVRj -bkp5SUJhTGtaMmRqVHQzN25BVmlmeW0vdlB2djdINHYzL2pMMTlhaXZnam5RKy9YdkFNcHd1ZURo -c2VIZ1lBCkpDUWtRQ2FUWWMyYU5SUG0ycDA3ZDZEVDZTQ1JTS0RYNjJHeFdLWjlQTTRXRnlVa0pH -RFhybDNvNnVxQ2g0Y0hybDI3QnJGWWpMdDMKN3lJazVPdU4zVU5DUW1BeW1TYXRqNHI2QjFkUlow -UmYzMno0K2xKbVYzSXU3Ly93Uitjei9ETXBFQzhHeFRPYTYyZjZSZ0RmdnpnNwpuTk5tR1FENUg4 -Q2ZjL2hPWXIrWit2L2t2SGxUL3diNytKRmhkTlIyMi9pWkJnQ2hvYUZvYTJ1RFNxV3liak9aVE5p -OGViUDF0VlFxClJVZEhCd0lEQXgzT3lka1E5L1QwUkhGeE1YYnUzSW5oNFdHRWhZVkJMQmJiZmVP -WSsvZkRYWnh3NXZYMW5lSTdnc1BjTGJPemVVMDgKM0ZldDc5Ni91RCtvczg2NllXWW5EUTlIMjdY -Zm5EbU8vNFpqakUyWWZWOXZ1dVU0VHBmNXE5VnFxTlZxQUVCNmVqcFNVbEp3Ly81OQpXQ3dXUkVa -R3dtS3hJRHA2WXVQYzRFYUxoSkJmaURNekp6bzZHdnYzNzdlK2Z2TGtDVkpTVW16MmlZMk54ZE9u -VDdGMjdWb0F3TURBCkFBSUNBcVoxUEU1WHAvVDM5d01BR2hvYThQanhZMFJGUlNFMk5oYmw1ZVVZ -R3h0RGVYazU0dUxpdUl4RUNDRXphdDY4ZVFDK3JsRHAKN3U3R3paczNFUnNiYTdOUGJHd3NhbXBx -TURnNGlLcXFLc2psOG1rZmo5TXpjWjFPaC83K2ZuaDVlYUc4dkJ3aWtRaDVlWG5Jek14RQpjSEF3 -b3FLaVVGUlV4R1VrUWdpWmNjWEZ4Y2pOemNYSGp4K3hlL2R1TEZpd0FHVmxaUUNBM054Y3hNVEVZ -TVdLRlZBcWxaQklKS2lzCnJKeit3UmlQakVZakN3a0pZVUZCUWV6NDhlTVR2bSt4V0ZoY1hCd1Rp -OFhzNk5HakR0VzZpak9aWlRJWkN3c0xZd3FGZ2tWSFIzTVYKZWNyTWxaV1ZMRHc4bklXSGh6TzlY -cytlUDM5dWQ2M1E4Z3ExeDVjdVhXTGg0ZUVzSWlLQ3BhYW1NcFBKWkhldEVEUHowV2Q3KzJReQpt -ZGlzV2JQWXhZc1hIYTUxUjd3T2NZVkN3WXhHSSt2dTdtYkJ3Y0ZzWUdEQTV2djkvZjNzN3QyNzdP -REJneE1HNGxTMVFzenM1K2ZICkJnY0hPY2s1M2xTWlcxcGEySnMzYnhoampGVlVWTERNekV5N2E0 -V1dWNmc5ZnZmdW5mWHJwcVltdG5MbFNydHJoWmlaano3YjA2ZFAKbno2eHBLUWtwbEtwYklZNFh6 -M21BbTkvZG0vUFdrcXBWQXFsVW9uWnMyYzdYQ3Uwek44d2ppL1MycE41MmJKbDFzL3hWQ29WakVh -agozYlZDeXZ1TkVIdnM2ZWxwczcrSGg0ZmR0VUxML0EyWGZiYTNUeWRPbklCT3A0TlVLblc0MWwz -eE5zUi90SmJTMWJYT2NQYTRJcEVJCnljbkoyTEJoQStycTZsd1JjUUpITTU4K2ZkcTZnb2lQUGp1 -VEZ4QjJqMnRyYStIbjU0ZnM3R3ljT1hQR29Wb2haRDU5K3JSMU85ZDkKdGlmdnExZXZjUG55WmVU -bDVWa3oybHZyenVoT3doeHFibTZHcjY4dkxCWUwxR28xWW1KaXNIRGhRcjVqV1RVME5LQ3lzaEl0 -TFMxOApSN0hMWkhtRjNHT3RWZ3V0Vm92cTZtcHMyTEFCRHg0ODREdlNsTVpuMW1xMTFzeEM3UFBl -dlh0UldGZ0lrVWcwNlRyc1h4VnZaK0xSCjBkRTJOMzE1OHVTSjNjc0xuYWwxaHJQSDlmWDFCUURJ -NVhKb05CcGN1WEpseGpOK3o5N01qeDQ5d280ZE8xQlhWd2R2YjIrSGFvV1MKRnhCMmo3L1p1SEVq -ZW50N01UWTJCcVZTNlJiL2xzZG5Ccmp2c3oxNTc5MjdoL1QwZFBqNys2T21wZ2I1K2Ztb3E2dmpi -VjV3aHM4UAo1TDlkYk9qcTZ2cnB4WVpEaHc3OThNTG1WTFV6YmJxWjM3OS96MFpHUmhoalh5OSto -b2FHc3Bjdlh3b2ljMDlQRHdzS0NtSnRiVzBPCjF3b3ByNUI3L09MRkMvYmx5eGZHR0dQMTlmVnMz -YnAxZHRjS0xUTmZmWGFrVDF1M2JtVTFOVFhUcW5VM3ZBN3hwcVltRmhJU3dnSUQKQTFsSlNRbGpq -TEhTMGxKV1dscktHR09zcjYrUExWcTBpTTJkTzVkNWUzdXp4WXNYczdkdjMvNndWc2laT3pvNldF -UkVCSXVJaUdESgp5Y25zM0xsemdzbWNrNVBESkJJSlV5Z1VFNWFNOGRIbjZlWVZjbytMaW9yWWtp -VkxtRUtoWUZsWldjeHNOdiswVnNpWitlcnpWSG5ICiszNkk4OVZqTG9nWSswMCtPQ0tFa0Y4UVBk -bUhFRUxjR0ExeFFnaHhZelRFQ1NIRWpkRVFKNFFRTjBaRG5MaGNjbkl5YnR5NFliT3QKdUxnWStm -bjVrKzd2NStlSDE2OWYvL1E5RHg4K2JQTTZQajRlQU5EZDNZMndzREFBUUh0N08vYnMyUU1BTUJx -TmFHMXRuVlorUW9TTQpoamh4T2IxZUQ0UEJZTE90dXJvYUdSa1prKzV2enhOT2podzVZdk82dWJs -NXdqNUtwUklsSlNVQWdNYkdScmY1UzFSQ0hFRkRuTGhjCldsb2E2dXZyOGVuVEp3QmZ6NVo3ZTN2 -eDRjTUhwS2FtSWo0K0htZlBucDIwVnF2Vll1blNwVWhPVGtadGJTMEE0TUNCQXhnYkcwTmsKWktU -MU9ZV1RQU0tycWFrSmFyVWFQVDA5S0Nzcnc3Rmp4eEFWRllYYnQyOGpJQ0RBbW1ka1pBUUJBUUg0 -L1BtekszNThRbHlLN3AxQwpYRTRpa1NBbUpnYlhybDJEUnFPQndXQ0FUcWZEOXUzYmNmMzZkY3lm -UHg4cEtTbUlqNCtmOElTVDh2SnkrUGo0WUdSa0JJbUppZEJxCnRTZ3NMTVRKa3lkdDdqM3lzN04z -bVV5R0hUdDJ3TXZMQy92MjdRTUFKQ1ltb3I2K0h1dlhyNGZCWUVCYVdocG16YUpIdXhQM1EyZmkK -aEJQalAxS3BycTVHV2xvYTVISTVnb0tDNE9QakE1MU9OK25kOEF3R0ExYXRXb1g0K0hoMGRuYkNi -RFpQNi9qc3V4c2liZHUyRGVmUApud2NBVkZSVUlDc3JhMXJ2U3dqZmFJZ1RUbWcwR3R5NmRRc1BI -anpBNk9qb2hETm54dGlFYloyZG5UaDE2aFF1WExnQXM5a01mMzkvCkRBME5UZXY0MzcvMzh1WEww -ZDNkamFhbUpueisvQm1ob2FIVGVsOUMrRVpEbkhCaXpwdzVTRXBLUWxaV0ZqSXlNaEFYRjRkbno1 -NmgKbzZNRFEwTkRxSzJ0aFVhanNhbnA3ZTJGVkNxRlJDSkJjM016SGo1OGFQMmVWQ3JGNk9pbzNj -ZVh5V1FZR0JpdzJiWmx5eFpzMnJRSgoyZG5aenYxd2hQQ0loampoakY2dmg5bHNobDZ2aDBna1Fs -bFpHUW9LQ3FCU3FaQ1RrMk85Y2YrM3MrWVZLMVpBSnBOQkxwZWp1TGdZCnExZXZ0cjVYUVVFQlZx -NWNhYjJ3T2Y1TWU3S3YxNnhaZy9iMmRrUkdSbHBYc21Sa1pHQm9hQWg2dmQ2MVB6Z2hMa1Ezd0NL -L3JhcXEKS2pRMk5scWZza09JTzZMVktlUzNWRkJRZ09ibVpseTllcFh2S0lRNGhjN0VDU0hFamRG -bjRvUVE0c1pvaUJOQ2lCdWpJVTRJSVc2TQpoamdoaExneEd1S0VFT0xHYUlnVFFvZ2IrejlSck1B -ZGgrc2ZSUUFBQUFCSlJVNUVya0pnZ2c9PQo= - - - - - - Plot the value of the Asian put in (volatility, strike) space. - - - plt.contourf(sigma_mesh, strike_mesh, prices['aput']) -plt.axis('tight') -plt.colorbar() -plt.title("Asian Put") -plt.xlabel("Volatility") -plt.ylabel("Strike Price") - - python - 15 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x3487c50&gt; - 15 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdjQUFBRVhDQVlBQUFCeG1vVk1BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW -T1grQi9EUGM0WnQyRUZsY2NNdEJVbFpGRUVSWERKenlWMHJ1OVV0CnJYdlZydG05ZGUvdjNtdjlz -bFV0TFpmSzFGSXpzODF5U2MzU2tsVTJSWEZEY01NRlVGQVVCbVpnbURuUDd3OS9raWJMekRBenp6 -bG4KbnZmcnhlc2xNM1BPZkRqQ2w4T3pFa29wQmNkeEhDY3BBdXNBSE1keDNMMTRjZVk0anBNZ1hw -dzVqdU1raUJkbmp1TTRDZUxGbWVNNApUb0o0Y2VZNGpwTWdYcHc1U1VoTlRVVm9hQ2pyR0J3bkdi -dzRjell4ZE9oUStQdjdRNi9YbS9UNmhJUUVuRHAxeWlaWnVuVHBBbmQzCmQzaDVlU0VtSmdhdnZ2 -cXFTYmsyYk5pQWhJUUVtMlRpdUpidzRzeFpYVkZSRWJLenN4RVFFSUFkTzNhd2pnTkNDSGJ1M0Ft -TlJvTlAKUC8wVW4zLytPWDc0NFFmV3NUaXVXYnc0YzFhM2NlTkdqQmd4QWs4KytTUSsvL3p6dTU1 -TFMwdkQ2TkdqNGUvdmo0NGRPMkxwMHFVQQpnS1NrSkhUcTFLbmhkWXNXTFVLUEhqM1FwazBiL09s -UGYwSnFhbXJEY3hzMmJNRGd3WVB4eGh0dm9FT0hEaGcxYWhReU1qSk15aFlSCkVZSFJvMGRqMTY1 -ZHVIRGhBZ1JCZ0NpS0RjOFBIVG9VbjMzMkdVNmRPb1ZaczJZaEl5TURYbDVlOFBmM2I4MGw0VGl6 -OGVMTVdkM0cKalJ2eDZLT1A0cEZISHNIUFAvK01zckt5aHVmKy92ZS80NjkvL1N1dVhidUdFeWRP -WVBqdzRZMmVvMGVQSGtoTFM4UGx5NWZSdjM5LwpQUDc0NDNjOW41T1RBd0E0ZnZ3NDR1TGk4Szkv -L2F2WlRMZFhLVGg4K0RCKyt1a25USm8wQ1kydFhFQUlBU0VFb2FHaFdMMTZOUVlPCkhBaU5Sb09L -aWdxenJnSEh0Ull2enB4VnBhV2xvYmk0R09QSGo4ZDk5OTJIM3IxN1kvUG16UTNQaTZLSXMyZlBv -cXFxQ2o0K1BvaUsKaW1yMFBGT25Ua1ZRVUJEVWFqVmVmUEZGRUVKdzZOQ2hodWM5UER6d3lpdXZ3 -TS9QRDMvOTYxK1JsWldGbXBxYVJzOUZLY1hFaVJQaAo3KytQZWZQbVljNmNPWmc0Y1dLTFh3dGZk -b1pqaVJkbnpxbysvL3h6akJ3NUVsNWVYZ0NBYWRPbTNkVzBzWEhqUnVUbDVhRmJ0MjZZCk5tMGE4 -dkx5R2ozUGpoMDdNSG55WkxSdjN4NysvdjRvTFMzRjBhTkhHNTRQRHcrSElOejY5ZzBPRG9iQllN -RFZxMWNiUFJjaEJOdTMKYjBkRlJRVlNVbEx3NzMvL3UrRllqcE1xL2gzS1dZMU9wOE8zMzM2TDMz -NzdEY0hCd1FnT0RzYlNwVXVSbDVmWFVGakR3OE94Y2VORwpsSmFXb2srZlBuajIyV2Z2T1U5TlRR -MmVlKzQ1L1BuUGY4YXBVNmRRVVZHQkRoMDZXUDFPdGwyN2RuQjJkc2FWSzFjQUFBYURBY2VPCkhX -dDRYcVZTOGJ0bmpobGVuRG1yMmJadEc1eWNuSkNmbjQrOHZEems1ZVVoUHo4ZkNRa0oyTGh4SSty -cjYvSGxsMStpc3JJU0FCcUcKdC8yUlJxTkJkWFUxZ29PRElZb2lGaTVjaUpLU0Vxdm45ZkR3UUZ4 -Y0hOYXNXWU9LaWdvc1hMZ1FHbzJtNGZsKy9mcmg5T25UcUs2dQp0dnA3YzF4TGVISG1yR2JqeG8y -WU1XTUdPbmJzaUlDQUFBUUVCQ0F3TUJCLys5dmZHdHFkTjIzYWhLNWR1Nkp6NTg3SXlzckNzbVhM -CkdvNG5oQUFBZ29LQ3NIRGhRano1NUpPSWlJaUFYcS9INE1HRDczcmQ3ZGYrOFZoekxWcTBDQmta -R2VqVHB3OUVVVVI4Zkh6RGM3MTcKOThiRWlSTVJIaDZPZ0lBQWk4N1BjWllpZkxGOWp1TTQ2Ykg2 -bmZPTUdUTVFHQmlJUG4zNk5EejIzWGZmSVR3OEhDcVZDcm01dVhlOQpmc1dLRlEyOSttbHBhZGFP -dzNFY1oxZU4xY0RibGk1ZENrRVFUQnFhYWZYaS9Nd3p6MkRQbmoxM1BkYW5UeDlzM2JvVmlZbUpk -ejFlClZsYUdqei8rR0wvKytpdFdyVnFGRjE1NHdkcHhPSTdqN0txeEdnZ0FseTVkd3Q2OWV4RVNF -bUxTZWF4ZW5CTVNFdURuNTNmWFk2R2gKb2VqWnMrYzlyODNLeXNLb1VhUFF1WE5uREJreUJKVFN1 -enBrT0k3ajVLYXhHZ2dBLy9qSFAvRHV1KythZkI2bUhZTFoyZGtJQ3d0cgorTHhYcjE3SXpzNW1t -SWpqT003NnRtL2ZqbzRkTzZKdjM3NG1IK05rd3p3dGFtcjZyQ21QY1J6SE5hVzE0eHg4Q0VHVmlh -LzE5UFJzCjlpOStyVmFMZDk1NUIzdjM3alVySDlQaUhCc2JpMzM3OWpWOGZ1clVLY1RFeERUKzR1 -a3RmekYrZ1NJNi9GZUxRcFhZNG10dHpiaDQKSVZULzh4L1dNZTRTS09qd2dzOVhxQ0xsalQ2ZnZD -QVZReGJJWjRuTTV2SjJweUltaVdzQVNHdU04c0kzalBqUC82cGFkeEtSd25OagpKSVQ4SE91RWFz -R0NBOENDUWVZZmQ3VjhDSzV1VExaK29CWkVXT0VjVlFBYW43dmF5UHUxTUE3KzdObXpLQ29xUWtU -RXJXU1hMMTlHCnYzNzlHbFp1YklyZG16WHUvSTB4WU1BQS9Qenp6N2g0OFNLU2twSWdDRUtqa3hK -TWRlT3FnQXNMUE5DN3ZwWGYvQXAxVlZSalErVTAKZUZCdjFsRnM3aXdSY0ZENE0rc1l0aUVRVkQ5 -NkZyUk5aOVpKbXRXdTdRRzRkSkYyUm52bzA2Y1BybDY5aXZQbnorUDgrZlBvMkxFagpjbk56V3h3 -N2IvWGlQSDM2ZEF3YU5BZ0ZCUVhvMUtrVDFxMWJoMjNidHFGVHAwN0l6TXpFMkxGak1YcjBhQUJB -WUdBZ1pzK2VqZUhECmgyUE9uRGxZdm54NXE5OWZjNE9nNEgvZEVWSExDM1JqVG90ZStGSHpDRnlw -Rytzb05wZEUxQ2dsMDFuSHNBMTFOWFJQdW9NNnExa24KYVpKQTZ0RitYRHZXTWV6dWRnMHNMQ3hF -cDA2ZHNINzkrcnVlTjdXWlZoYVRVQWdoSmpWcjNNbkZqYUxmR3pvY2NqZllLRlh6eExSVQpDSU9s -MjBRdzByVUVNZTVmd1VCK3Z6NUZTUmZRWmFocHczeWt3SlM4QXFXWUkyYkREYW5OdnM1ZVVwTkZK -QXl4M2oyUjYrRVl1SDZkCmJyWHpOU2JwRWpDMFU4dXZhOHI1Z3pIUUpOdW5DUWE0MWF6UjJySkdD -REc5V2NNSzc5ZG9CcVVXWndCd2NxR0lXNkJEdGplYkFpMTEKajdxZFExZjFGbEFpK1crQlZ2R2lG -SDhSZndEQmVkWlJiTUo5eDBBNHBkdS9iZGRVZGJRakNqOHNBelZ4eTdMV1VrcHhWdlRhR2dZOQpR -Zm9yYWd5c2NHWWRSWksrcWUyR1N2MFkxakZzVGtNSXRnc1RBWGl5am1JVDJqSFpvSjNEV2Nkb2tp -dTVqSFpUQjdLT0lUdUtMczRBClFFV0M1TmZjRUgvRmhYVVVTVnBWY3orSWZnanJHRFozaHFod1NL -a2RoRTVHNkNaU1VBa1BPUTBJeW9Senh3NnNZOGlLNG9zekFJQVMKN0gvTEZZTXY4Z0xkbUVYVnNY -QTM5R2NkdytiMkV6V3VrTWRZeDdBSlE0Y3pFQWNNYnZtRmpBaWtEdTBuZG1RZFExWWNvemdEQUFo -KwplOWNOZzArN3NnNGlRUVN2VncyRGp4alc4a3RsYmpQcGdGcEl0NGkxaG01a0FhaWJkSWRKZXJ0 -a3dYTlE0OXVTY2ZkeW9PSjh5Mi9MClhUSHdtUEtIa1psTGhJQTNiNDZCcnlpZjBScVdFQW5CRjBJ -c0tMcXdqbUoxb3VkTkdCNlVidkVqQkdnZmR3TndZanIzVFRZY3JqZ0QKUVBKcUY4Um11em5tRjk4 -TUhaeXd0R29pZkdnZzZ5ZzJWVWtJZGdpVEFYaXdqbUoxdW9GWm9BSGRXTWRva2hzcFF0dkpGa3cz -ZEVBTwpXNTlTTjdvZ09rWE5kdjY2QkYwVDNiQzJjaW84cUEvcktEWjFtZ2pJVldJSG9VcEUzY050 -V0tkb1ZtQ25RM0FLNUR2THRNUmhpek1BCkhQaldHZmYvb2dadmhiN2JlZEVUV3pXUHdvMUtkL2Fa -TmZ4RzNIRlZnUjJFK2w1NUVNTUdzSTdSSkJWcUVEeTVCK3NZa3VmUXhSa0EKc25jNG84ZDJkd1gr -Z2RzNmh3MStTS3Q1QkU1VTJXUEV2eVFkVUlmNGxsOG9NN3F4MTBCVjB2Mi84MVVmZ0h2L2UzY0s0 -WDduOE1VWgpBQTd2ZFVLSGI5d2gzWDV1Tm43VkI2RlFOd21FS3ZmYlJDUUVHNFU0VUNpckk5VFk3 -aktNZzZYYnRrc0kwQ0doRmhDVSs3M1ZXdnpLCi9ML2pxVTVvODdrSC9DSGRnZndzZkZmYkZSVjFZ -MW5Ic0tsS1F2Q2pBanNJdGNPUGducTJaUjJqU1dyaE5OcE1WT2F3Um12Z3hma08KQlRrcXVLOXhS -d0F2MEhkWm8rME5VVCtNZFF5YktpUXE1WFVRdXRXZ2ZuUnYxaW1hRmRqMUNGUnRwTjJCeVFvdnpu -OXc3cWdLWktVSApPbEJlb08vMFhuVU0xQWJwZGpKWnc2ME93a2RaeDdDcTJ1Z00wSTdTblZ6a2hD -b0VUNUZ1UHBaNGNXN0VwUUlCMmlVZTZDTHl5L003CmdnVlZRK0Z0bE80Q085YndKZW1JT2tpM3Jk -WnNBa0h0T0drdlcrRG5tUVoxaExUdjhGbmcxYWNKVnk4SXVQYU9PM29ZK1NYNkhjR2IKbGFQZ0sz -WmxIY1JtYm5VUURsUlVCMkY5bDN3WW82VDdDNGNRb01Nd1pTOWJhd2xlZVpwUmNVVkE4WnNlQ09Q -YlhqV29oUk9XVkU2QQpEdzFpSGNWbWJuVVFUZ0hnempxSzFlaEdYd1IxbHU3WDQ2N0toOTg0NVEx -cGJBMWVuRnRRZVkzZzlHdnU2RnZIQy9SdDE2a3IxbFJPCmhTZjFaUjNGWmdxSmdNUGthZFl4ckVi -MEtZTmh1TFQ3RElKNzVrUHc0UU5hYitQRjJRVGFLb0tqcjdvaldzY25lOTlXSkhwZ2krWlIKdUZI -cDNvMjExcStDTzhySUk2eGpXSTB1NFNDb24zU1g3WFJDQllLbVJyS09JUm04T0p0SXJ5VTRPRitO -R0EwdjBMZmxHWHlSWERNTgp6bFRhSFU2dHNZbDBRaDBVc291SHN4NzZzZExlRGJ1TlR5cmN3dTVq -SFVNU2VIRTJnMEZQa1BHS0duRTNwRHN0MXQ2UzlFRTRxWjBNClFhR3pDRzkxRUE0Q2hiU0xtcW5x -N3MrQjJGMjZkNmVFVUxSL2lDL3BDL0RpYkRiUlNKRHl2MjRZVk1ZTDlHMC8xSVdnck81aDFqRnMK -cHBJUTdCS21BRkRBUWxDRW9IWmNMU2lSN28rK3Arb1lmRWRKZDNTSnZVajNmMGpLS0VIU0cyNkl2 -NnpjUCtmTjlaazJEQWI5Q05ZeApiT1lVVWVHSVFqb0lEY0huSU1aSmU5cDBjUGhwQ0o3SzNKRFhW -THc0VzR4Zy95SlhERDdERnh5OWJXbDFOTnpxNDFqSHNKbDlnZ2ZLCnlEVFdNYXhDOStBcFVMVjAx -K3gyUmprQ3BrYXpqbUdSR1RObUlEQXdFSDM2L0w3cTNqLy8rVStFaFlVaE9qb2FMNzc0SW5RNlhZ -dm4KNGNXNVZRaCtXK2FLUWNkNWdiNkY0SFZOSXJ5TnlsMEtjaFBwREQzay93dEk5TGlKK3BIUzNk -SUtBTnI2cDhPMWgvd21QRDN6ekRQWQpzMmZQWFkrTkhEa1NKMDZjd01HREIxRlRVNFBObXplM2VC -NWVuSzBnNlJOWHhCMTA0OHNsQVFBSVhxOThDTDVpZDlaQmJPSldCMkU4CktEcXhqdEpxdGJHWm9J -SFMvWDhTaUJIdHg4aHZMSDFDUWdMOC9QenVldXpCQngrRUlBZ1FCQUVQUGZRUWtwT1RXendQTDg1 -V2tyTEIKQmYzUzFPQlRWUUE5VkZoOGN4eDhhSHZXVVd6aUppSFlKVXlGN0RzSVZTSnF4L20xL0Rx -R3ZKd1B3L3VCV05ZeDdwSURZTlVkSCtaYQp1M1l0eG8wYjErTHIrS0JkS3pyd3RUTmlhNEVUSTNU -UXN3N0QyRTI0NHVQS0taamw4eVUwcElKMUhLczdSVlRvUko1R0JMWGt4MU02CjZ1ODdDdGZ3V0Fn -bnNsaEhhVkw3aUV2UXBMdUIxdGJhOVgzN3Z0VEU0d0JtM3ZINUowdE5QK2NiYjd3Qkx5OHZUSnZX -Y3Q4RnYzTzIKc3F4dHp1aTUwMTFCcXpKWTdyTG9qcTgxMDZDbXlsckUvcmE5Z2dmS3lWVFdNVnBO -TzZZY1ZDWGRrVWN1cEFRQlU2VjE5MnlKRFJzMgo0T2VmZjhhbVRadE1lajB2emphUXU4Y0puYjV6 -aHhmcklCSnczT0NMWDZzZlVld3N3aTlJQ1BTUWQrRVEyMTZHTVVIYTQ0cmJCV1RBCkpVUys3Zng3 -OXV6QmUrKzloeDA3ZHNETnpiUkpOcnc0MjhpeFpDZTArOElEdnJ5YkVLbjFBVGltblFLQktxOUZY -aVFFWHdpRFFTSGQKTlN0TW9SMStCTlFyZ0hXTUpnbEVqK0R4OGxnSmNmcjA2UmcwYUJBS0NnclFx -Vk1uckZ1M0RuUG56a1YxZFRWR2pCaUJxS2dvekpregpwOFh6RUVxcDVCZFNKWVFBMHlVZnMxSGRJ -NHlvZlU2TGNzZ3p2elU5N1Y2QVFMZHRyR1BZUkJnMVlxeTRDb0I5MjBXdHllMVFMRnkrClRXVWRv -MG1VQWtVNS9hRkpQZGpzNnlJQXRMYXNFVUpBbTJoenZ1ZTFTMXYvZm8zaGQ4NDJkalpQQmRWS0Q3 -VG4yMTVoZzdZWDZ1cEcKc281aEUvbEVoYU15bjBGWUc1VUoya202TzVJUUFyU1B1UXJpb3N3bXNq -L2l4ZGtPTGhZSXFIdmZBeUY4Mnlzc3E0bUNTNzIwMnpjdAo5WXZnaVd0eTdpQVVDR3JIUzNzQWx5 -dTVoTFpURkxKS1lBdDR0YkNUMHZNQ2JpeHlSM2UrN1JYZTFBeUdsekdDZFF5YjJDanpEc0w2Cnpx -ZGdqSmIyamlTQndWbHdiaC9NT29iTjhVcGhSOWRLQkpTKzVZNVFnNk5mZG9MWEt4K0VyNmk4ZFh0 -RlFyQko1aDJFdXRIblFWMmsKTy94UklMVUlucVNjUFI2YjR1aFZ3dTV1bGdzNCs1b0grdWlWTjNM -QkhQVlE0WjJiRDhPWGRtQWR4ZW9xQ01GdVlSb0FlYTVMTEhwZgpnMkY0RE9zWXpmSnh6WVJIbkhU -WHBiWUdYcHdacUtra09QNktPNkowamwyZ05YREJoNVZUNEVYYnNJNWlkZmxFaFdQa3o2eGpXRXcz -Ck9BZTBqWFRIRlJNQ2RCaFlCYWlVK3pQRWl6TWpkVnFDM1BudWlLbVdkZ2VNclJXTGFteldUSU03 -VmQ3YXZUOExYcmhHcHJDT1lSbm4KZXVqSFNydHB4azA0aDdhVHBOMCszaHE4T0ROVXJ5ZkltSzlH -M0UzSDNsWGxwTUVIZTZvZmdRdFYzdEtybTBnWDZDSHRYYStiVXRmNwpJTVFlMGw1V05MQnpMcHph -dFdVZHd5WjRjV1pNTkJLa3ZPcUdRZVdPWGFBejZ0c2hWenNWS29YTklqUVFnaStGQkZESXNHMmRF -TlNPCnF3RVZwUHQvb2lMVkNKclNpM1VNbStERldRb29RZExyYm9ndmRvekI5VTNaVmRjUkYyc25B -QXFic0hPZEVPd1JwZ0dRMzE4R2hxQWkKeVc5cDVlZWVEdmZvKzFuSHNEcGVuQ1dEWVA5Q1Z3dytK -NzhmWUd2YXBMc1BXdjFEckdOWTNRbmloT015blVGWTgrQUpVSGZwcnZ0TQpDTkJoaVA3V1B4U0VG -MmRKSWZqdGZWY01PdW5ZQlhwbFRRU2M2aE5ZeDdDNlBZSVhycFBKckdPWXo3MEs5U1A3c2s3UkxM -VlFDUDhKCjByN0ROeGN2emhLVTlMRXI0bklkZTl1cnR6VUQ0V21RZG1lVUpiNGdYVkVQYVk4aGJr -enRnRXpRb0I2c1l6UXJxTnRScVB5bGU0ZHYKTGw2Y0pTcGxuUXY2SDNCejRHMnZDQlpVallDdjJK -TjFFS3N5RUlKTlFpSW9aTGFGbDRxaWRweDBkK3NHQUNkU2lhQ3A0YXhqV0Ewdgp6aEtXdnRrRmZY -OVZ3MUhIY1JnaDRPMmJEOE5YbE81a0NFdmM2aUI4RkhMcklLenZjUXhpSDJudlBPN3ZtY1k2Z3RW -WXZUalBtREVECmdZR0I2Tk9uVDhOakdvMEdFeVpNUU9mT25URng0a1JVVjFjREFJcUtpcUJXcXhF -VkZXWHlBdFNPSm11ck0wSjN1Y3Q5SzFHTFZjTVoKeTZzbXdadTJZeDNGcWs0UUZVN0lzSU5RTytZ -S3FKTjBmNmtvcVUvUTZzWDVtV2Vld1o0OWUrNTZiTldxVmVqY3VUTk9uejZOamgwNwo0cE5QUG1s -NHJrZVBIamg4K0RBT0h6Nk1qei8rMk5weEZPSFFUMDRJK2Q0ZHlwdERaNW9yb2hxZlYwMkZCL1Zt -SGNXcWZoSzhVRUVtCnNZNWhGdEcvQk1aRXgxaXlreldyRitlRWhBVDQrZDNkS0orZG5ZMlpNMmZD -MWRVVk0yYk1RRmFXZEhmNmxhcWorNTBRdU1rRHZxeUQKTUZKbzlNYk82a2ZnU3VXNW1GQlROcEp1 -cUVkLzFqSE1vaDE2R05RN2tIVU14YlBMd2c0NU9Ua0lEUTBGQUlTR2hpSTdPN3ZodWZQbgp6eU15 -TWhLeHNiR1lNMmNPSWlLYVdPZjMySUxmL3gwd0ZBZ2Nhck84VXBXZnFVSVlQS0Ivb2daYTFtRVl5 -SzV2QXovdE5QUjMveG9HClVzODZqbFhjbWtFNEJFK0xGd0dVc1k1akdsY2Q5QS9mRDlmTlYxa25B -UUFrWGJyMW9UUjJLYzVON2EvVnZuMTdYTHAwQ1g1K2Z2anAKcDUvdzVKTlA0dWpSbzQyZnBNOEMy -d1dVa2Z4TUZmcjd1K1BrR0MwTXJNTXc4SE5kZTNoaU1ucTZiNEZJakt6aldNVTFRcEFxUElZRQpj -U1VnazcwbTYvcG13L2xRUHdnRmgxaEh3ZEJPdHo1dWV6MkRYUlpyc3N0b2paaVlHT1RuNXdNQTh2 -UHpFUk56YTV5bmk0dExReFBJCjZOR2o0ZVRraERObnp0Z2prcXdkM08yRTZBeGwvWGx2anUvcnV1 -QlM3UVFRQlUzenppSXV1RW9lWVIzRGRJUkFPL0VhcUxNNzZ5U0sKWlpmaUhCc2JpM1hyMWtHbjAy -SGR1bldJaTdzMUhPZmF0V3N3R20vZC9lVG01a0tuMDZGSEQya1BkSmVLdEM5ZEVGOGczVjV6Vzl1 -awp1dzg2L1lPc1kxalZWNlFqREpEUDlsMmlmeWtNRDhsenhUMDVzSHB4bmo1OU9nWU5Hb1RDd2tK -MDZ0UUo2OWV2eCt6WnMzSHg0a1gwCjZ0VUx4Y1hGbURWckZnQWdKU1VGRVJFUmlJeU14RHZ2dklQ -VnExZGJPNDZpN1YvcGd2aFN4MTBzYVhsTkpIekVNTll4ck1aQUNINFEKSGdEZ3hUcUt5WFNETWtB -N0t1Zi93QnJNR1U3Y0hFS2JhaENXRUVJSU1GM3lNZGtnRkFsdjY1RGw3WWd0MEVCYm9SYnpmRDVI -TmJuSgpPb3JWakJTcjBaZCswdklMSmNLcHVBZlVIeGFBaU5Mb0F5QkxtKzduTXZrY2hJQytaTm43 -cGFhbXd0UFRFMDg5OVJTT0hUc0dBSGozCjNYZHg2ZElsTEZteUJDKzk5Qks2ZE9tQ2wxOSt1ZG56 -OGhtQ2NrY0pNaGVvRVZIcm1CTzlyNGx1MkY4ekFRSlZ6cmZ5TDRJbk5HUTAKNnhnbU0zUTRBMk9D -c2hZZGFnMXJEU2RXem5lMEE2dlhFNXg4MHgwOWpZNzUzL21iUGdpMStnZFl4N0NxVGFRM0tMcXlq -bUV5N1loYwpVSDlsVGJPM3B1YUdFemZGTVgrYUZhaW1rdURLWW5kMFZOQUlCbk44VUJNRlgxRTVP -MkxVRUlJOXdrUkFMaXVydU5TaGJsSVE2eFJXCkpYcVFSajkrS3dkZU8vajdoeWtzYVdaeDdOMUZG -ZVphaVFEM2o5M2gvN3dXRlRJWkwyczlCTXVxSHNMelBsZFFReXBaaDdHS0UwU0YKTVBJbmRLRWJX -RWN4aWI1bkhweWo0NkhLVFdjZHhTcXEvN2Z4WDR6OS8vL2p0amVjOUMyZTYvWnc0cWlvcUx1R0V6 -ZUgzemtyek1WOApGZncydWNPRGRSQUdyb3BxcEdvbmdDaW8vWGtMYVlNNkRHSWR3MlM2c2FkQjNm -MVp4NUNjcG9ZVE4wYzUzOFZjZy94TUZicnZkbmZJClA0djIxZ1hEVUQrVWRRenJJUVJmQ1FNQnlH -TlZQdEh6SnVySDlXWWRneWx6aGhNM2h3K2xVN0RCZjlJamUyQXQ2eGdNVUN6MDNZcWIKd21uV1Fh -eG1FSzNESUhFbDZ4aW1vUlNlNi9wQUtNeGw4dmJXR2twWGFUQnREb0dQazc3Vjc5Y1lmdWVzWUds -ZnVpRCtsQ1BPSWlUNApzR28wM0tsOEpuTzA1QUJ4UlRtWnlqcUdhUWlCZG1JRnFMT2pya0p1SGJ3 -NEs5eitEeDF6Rm1HeHFFYW1WbG5yYjN4RlFtREUvYXhqCm1FUnNVd0xEZzdHc1k4Z2FMODZLUjdE -L0hWZkVWanBlQy9SUGRSMUE2NGV3am1FMWVrS3dWUmdKeUtTN1Z6YzRBN1M5Y29ZMzJoc3YKem82 -QUVtUys3cGl6Q04rcmpvR3YySTExREtzcElnSk9rQ2RZeHpDTmlrSTN4UW1VOERKakNYN1ZIRVRE -TEVLRFkvMlhpeER3Y2RWWQp1RlBsYlBMMUUvRkVOUm5KT29aSkRCMVB3emc0Z1hVTVdYS3NuMVFI -VjFOSmNPVmR4NXRGZUVsMHgwSHRlRUFwWHpjaCtKTDBBVVZuCjFrbE1vbjN3Q0toZkI5WXhaSWNY -WndkenJVU0E0V04zdElGQ0NwV0pmcXpyQk1HZ25EczREU0hZSzB5QkxDYjV1dXBRTjVFWFozUHgK -NHV5QUx1YXI0T3VBc3dnWGEyTGhLM1poSGNOcWpoSVZMcExwckdPWVJCOTZCR0trZkdZNlNvRnNp -bk4wc0dPdVYyd3JqamlMVUlTQQpOVlZqb2FiSytiVzBoUVJBRDNrTVdkT09Pd3VxZHRUOTQ4MG5t -K0o4Zk5VcDlHdlBDN1ExT2VKZWhPZEZUK1JweHltbS9Wa2tCRjhMCmd3RzBZUjJsUmFMbkRkUS8z -S2ZsRjNJQVpGU2M5VG9SUno4NmhmN3Q2MWxIVVJSSG5FVzR0UzRFVG9aNDFqR3Nwb3dRSENQVFdN -Y3cKU1cyL1RJamRJMW5Ia0FYWkZHY0FxSzhWY2VUREFnemdCZHFxSEhFVzRTTE5RUGlLSWF4aldN -M1B4QVAxZHkxa0tWR0VRRHRaQStyawpXRGNFbHBCVmNRWUFRNTJJUXl0T0laWVhhQ3R5dkZtRVJn -ajRyR29zM0tnNzZ5aldRUWgrRWhJQVNIK2lrZGoyRWd3akJyS09JWG15Cks4NEFZS3lueUZtZWo3 -ajJMUzl5elpuSUFXY1JuaEc5Y0VMM01Pc1lWbE5JVkxoR0pyR09ZUkpkWWlabzBIMnNZMGlhTElz -ekFJZ0cKSUd2WktRemtCZHBxSEhFVzRaYmFybkNwVjg0UXJ5MGtCRUFBNnhndFU0blFUWEVESmNy -b21MVUZXZjhVVWlPUXVld1VCcmF2WXgxRgpNUnh4RnVFaXpTRDRpc3JZbkxTYUVPU1JLYXhqbU1U -UXVRREdRWW1zWTBoV2k4VzVycTRPMzN6ekRaNS8vbmtBd09uVHA3Rno1MDZiCkJ6TVZOUUlaSHhS -Z0VDL1FWdU5vc3dqcm9jSjZ6Y053cGNwWWYzZ3ZjVWM5V3Q2alRncTBEK1dCK3JabkhVT1NXaXpP -cjczMkduSnoKYzVHVWxBUUFhTisrUGViUG4yL3JYT1lSZ1FNZkZDQSttQmRvYTNHMFdZU0ZSbThV -S0tYOW1SRHNFZ1pERHAyRGNOV2libUpIMWlrawpxY1hpdkgvL2ZpeGV2Qmd1THJlR1dubDRlTmhr -UzVaV0U0SDA5d3N3T05nUnQyV3lqZnhNRmJydGNweFpoTi9VZG9PYlFSNno3VnB5CmhxaFFMcFBP -UVgzWUVZaDkrZWlOUDJxeE9QZnExUXVWbGI5dk5aK1ptWW1vcUNpYmhtcU50UGNMa1JDa1l4MURN -UTc5NUZpekNCZFcKSmNDWEttT1JudTlKQ0lCQTFqRk1vaDFmQktyMllSMURVbG9zem5QbnpzWEVp -Uk54K2ZKbERCczJERE5tek1BTEw3eGdqMndXUy8zZwpOQy9RVnVSSXN3ajFVT0VMelRpNFV2bi9R -cnJWT1RpWmRReVRpRjdYVVQ4MmduVU1TVEY1OSsxRGh3NUJGRVhFeE5pL280RVFBaURQCjdPTVNY -K3lCbEtzS21XVEFITVd3LzlZaDNVR0dMdjVKZlFZZDFkK3pqdEY2bE9JRk1SVXV5R2FkcEdXVXdt -dE5iNUJ6NXYrczM4bGgKZHQvKzRZY2ZjUFBtVGZUcjF3OHhNVEc0ZWZNbXRtM2JadlVndHBDeTdB -d1NBN1NzWXlnRXdmNkZqak9MOEV0ZEQ2Z05BMWpIYUQxQwpzRnVJaHl6V2ZTWUUyc25WZkdyMy8y -dXhPTC8rK3V2dzlmMTltVDlmWDE4c1dMREFscG1zS21YNUdTUzJxMkVkUXhrb1FjYnJha1E2CnlD -ekN4VlVKOEtIQnJHTzAyaG1pUXBsTU9nZU43UzdCOElEOE93ZlhybDJMUVlNR29WKy9mbmp4eFJj -dE9rZUx4ZG5OelExYTdlOTMKbjFxdEZpcVZ2SDQ0VTFhY1JXTGJhdFl4Rk1HZ0p6amhJTE1JZFhE -Q1Y1cnhjS0h5djVQN25uUUdSUkRyR0NiUkpXYUJCdlpnSGNOaQpGUlVWZU9lZGQ3QjM3MTdrNU9T -Z3NMQVFQLy84czlubmFmRW5iTnEwYVpnOWV6WXlNek9Sa1pHQjJiTm40N0hISHJNb05Fc3BLODlo -CmlEOHYwTlpRVTBsUStxNDdPam5BTE1KakJsOWNyQnZET2thcjFjaW9jeEJPUnRST2NaZnQxRzYx -V2cxS0tTb3JLNkhUNmFEVmF1SG4KNTJmMmVWb3N6blBtek1Hd1ljUHcxbHR2NGEyMzNzTFFvVVB4 -dDcvOXphTFFyQ1YvZEE2SmZocldNUlRoZW9tQWVnZVpSZmk1dGlmYwpEZjFZeDJpMWZVUXRtMTFU -NmtOT1FSd296ejBmMVdvMVZxMWFoUzVkdWlBb0tBang4ZkVZTU1EOC9ndVRSMnV3Wk9sb2phWWt6 -dTZLCmxKdGVWanVmSXd1TE0rTEtFelZRZXF1K08rcnhpdCtYcUNSWFdVZHBsZTVVeENSeEJRQVo3 -Q3BVNndHdjkxMUJLcStZZFppMVJtdWMKTlRRK2N6RXp1UTVaeWJkbkkxT3NlRU56MS91Vmw1Y2pK -aVlHKy9idGc1K2ZINlpObTRhWFhub0pZOGVPTlN0RGsxMjQ4K2JOdy9MbAp5ekZ1M0xoR2crL1lz -Y09zTjVLU2xGWG5rZmpYTGtpcDhtWWRSZmJ5TTFYbzUrZU8vTEZhT2Z5NFcwd0xaM3lybVlDSHZU -YWduc2gzCk9PRlpJcUNNVEVZQS9aWjFsSmE1MVVBL29SZGNONXBYbksxbGcrcXB4cDhZRHZnTXYr -UHpOOTY1NituczdHekV4Y1doUjQ5YjdlYlQKcGsxRFNrcUs5WXJ6VTAvZEN2Ynl5eS9mODF1SXlM -UXQ2RTRwcTR1UStKY1FwR2o0cktUV092U1RFK0w5M0pBelNObFQ1NDhZL05DdgpiaFRhdXNuM3hn -UUF0cEJPbUUyRFFWREtPa3FMNnNKejRkd25Ec0t4VE5aUlRKYVFrSUI1OCthaG9xSUNIaDRlK09t -bm56QnYzanl6Cno5TmtjZTdYcng4TUJnUFdyRm1ETDcvOHNsVmhwU3BselFVa1BOc1pxVFY4UitE -V1N0L3NnbUgrRk9taHlsNTg2ak50R041MHVvUnEKcDhPc28xaE1Td2lPQ0pNUUpYN01Pb3BKdE9N -dnd1TzBOMGh0RmVzb0p2SDI5c1lycjd5Q1NaTW1RYXZWWXRTb1VSZzJiSmpaNTJtMgpROURKeVFs -eGdaL1pBQUFnQUVsRVFWUkZSVVVvTHkrM09LalVwWDU2RVFucW02eGpLTUwrRDEwUVg2TDh2UWdY -VncyRE41WEJndmJOCitCVnE2Q0dQOGNTaTl6WFVqNUh1ZWo2TmVmcnBwNUdjbkl5Y25CeTgrZWFi -RUFUemg1NjJlRVI0ZURnU0VoTHc4c3N2WStuU3BWaTYKZENuZWYvOTlpd0pMVmVxNml4anNlb04x -REFWd2pGbUUxWERHVnMwRU9GRm4xbEVzUndoMkNnTUJ5T05ycUkwNUFOcTFMK3NZZHRWaQpjVzdm -dmowZWUrd3hlSGw1b2JxNkd0WFYxZEJvbERjY0xXM0RKY1M3VkxDT0lYOE9Nb3Z3b01FZjVYV2pX -TWRvbFhORXdGVzVqSDBXCkNMU1R0YUFxNWY5bGRsdXp0emczYnR4QVhGd2NFaE1UNGU2dS9BV0Uw -aisvalBnbmdRTkdQMUFIbUdCaEt3WTl3ZkUzM05IcmpSb1UKT0ltczQ5ak1HbTBZM25LK0FJM3FL -T3NvRnZ1ZWRNUnMyaDRFSmF5anRNZ1ljQkdHNGZGdzNydWZkUlM3YVBMT2VlM2F0ZWpidHk4Kwor -dWdqOU96WlV6YUxIYlZXK2hlWE1SQVZJRVR5dzc4bFRWdEZVS0w0V1lRRTcxVStBRy9hbG5VUWky -a0p3V0ZoSXVzWUp0TU56UUlOCjZNWTZobDAwV1p3Ly8veHo1T1hsNGNjZmYwUktTZ28rKyt3emUr -Wmk2c0RtWXNUUjZ4QjRnVzZWNnlVQzZqLzBVUFFzd2txNFlFZjEKQkRoUitiYXovd1kxNm1UU09R -Z25BMm9uTzhiOGhDYUxjMDFORGZ6OS9RRUEzYnAxUTNGeHNkMUNTVUhHVnlVWVlMZ0dsY0FMZEd0 -YwpMQkFVdnhkaFZuMWIzTkEveERxRzVXVFdPVmpmOVNTTWNmS2MybTJPSm4vZG56dDM3cTdaZ1hk -K0x2Y1pncWJLL0xZVXNWT0JnNjV0CllSU1ZlL2RuYS9tWkt2VHpkVWYrdzhxZFJmaHhUVGplZHJx -QUt0VngxbEVzY3A0SXVFcW1JSkIrelRxS1NXcEdIWWZYeVVDUUtubFAKcDI5T2s4VjUrL2J0ZDMz -KzBrc3ZOZnk3dVJtQ00yYk13SzVkdXhBUUVJQmp4NDRCQURRYURaNTQ0Z2tjUG53WTBkSFIyTFJw -RXp3OQpQUUVBSzFhc3dNcVZLK0hzN0l3MWE5Wmc4T0RCcmZxQ3JDMXJTeWtHVEtiSWRXOEhnNUVY -YUVzZDJ1T0VlSDhsenlJa1dGSTVBaS81CmxVQkQ1RG5xWnd2cGdEbTBBd2hrOEZleXVnYjZDYUZ3 -L1VLNXhkbnFDeCtscHFiQzA5TVRUejMxVkVOeGZ2ZmRkM0hwMGlVc1diSUUKTDczMEVycDA2WUtY -WDM0WlpXVmxTRXhNeEMrLy9JTHo1OC9qNzMvL08zSnpjKzhOYWVXRmp5d1JNekVRUnp3RFVNOExk -S3NNZTc0Two2V0hLblVVWTcxeUdJWjRiWVNSRzFsRXNNb3pxMEUvOGlIVU0wMUFLenkraUlaekl1 -dXRoYXkxODlDcjlyMG12ZlpPOHcyYWJLbk1sCkpDVGNzM1pwZG5ZMlpzNmNDVmRYVjh5WU1RTlpX -YmN1WmxaV0ZrYU5Hb1hPblR0anlKQWhvSlJLZGd4MXpyYXJpS2k2Q2hjbjNnYmQKR3ZzL2NzVmdC -YzhpVEs4UGdFYi9JT3NZRnRzUE45UWhublVNMHhBQzdZUmlVRmRscmpCcGwrMHNjbkp5RUJvYUNn -QUlEUTFGZHZhdAp6U2F6c3JJUUZoYlc4THBldlhvMVBDZEZCM2VVNGY0YlYrREtDM1NyL0tid1dZ -UXJhL3JDeDlpYmRRekxFSUlmaFZnQTh2Z0ZLdnFVCm9YNTBOT3NZTm1GeWNhNnR0Ynl0MEp4Yi9x -YmJzMWZkOFpGamNaYld5dDFaamw2bEpmQjE1d1hhWXY4L2kxQzVCWnBnYWRWSWVOTjIKcklOWXBJ -Z0lLQ0ZUV2NjdzJkN2FOQ3c0MFE0TERnQUxEckJPWXowdEZ1Y2pSNDVnN05peERYZTRSNDRjd1p3 -NWM4eDZrNWlZR09Ubgo1d01BOHZQekVSTVRBd0NJalkzRnlaTW5HMTUzNnRTcGh1ZnVOZnVPajZa -ZVl4OUg5MTJIVjhZNWRHbWozTmx2dG1iUUU2VE9WMk53CmtUenUwTXgxbmJyaUs4MWt1RkY1enF6 -ZFFvSkIwWlYxREpNa0RGUGhYNnZiNGJWNEFRc0dzVTVqUFMwVzU3ZmZmaHVMRnk5dTJJRTcKTWpJ -U3ljbkpacjFKYkd3czFxMWJCNTFPaDNYcjFpRXVMZzRBTUdEQUFQejg4OCs0ZVBFaWtwS1NJQWdD -dkx6azBYNTA2V1FOS3I0NgpoYWhncFE0T3N3ZUMzNWE0SVRiYnJmbDFCR1RxdU1FWFdkckpFS2o4 -MWhuUkU0SlU0ZDZOTnFUSzBPRU14SUhTR3VuVldpMFc1NUtTCkV0eC8vLzBObjlmVjFUVzd6c2Iw -NmRNeGFOQWdGQllXb2xPblRsaS9majFtejU2Tml4Y3ZvbGV2WGlndUxzYXNXYk1BQUlHQmdaZzkK -ZXphR0R4K09PWFBtWVBueTVWYjRrdXluNnJvQmVTdE9JaUZJeHpxS3JLVnVkRUhvRG5mSTQ5ZXll -ZmJVZGNCMW1XNFFtMDFjVUVYawprNzFtNUhGUVQvbE9wZitqRm9mU3ZmNzY2NGlNak1TQ0JRdXdm -ZnQyckZ5NUVqNCtQbmpsbFZmc2xWRVNRK2xha2pDek05SjFQaEFWCnZaYUViWFdQTU1MNHJCWWxD -cHcyLzZwWEt2VE84bXNROWFNVU04WDFBT1F4ZHRzdGR3QmNCNlE1eGxDNmVmUG00ZkRod3pBYWpS -ZzkKZWpSOGZYMHhkKzVjcXdlUnU5VFBMaUt5NmdxODNKUlhXT3psYko0S05ZczgwTXRnbDBGRWR2 -V21aakI4eEZEV01jeDJneEFjSjlOWQp4ekJaYlZSV3l5K1NpUlovQ2pJeU1yQmd3UUljUFhvVUow -NmN3UHo1OC9IVlYxL1pJNXZzNU80c1I3c2pSZWpreHd1MHBjcUxCWngrCnhRUDlhcFRXQ2sydytP -Wm8rTkFnMWtITXRvZDRRbzlZMWpGTW80RDlUVzlyc1RpLytlYWIrUFhYWHhzK2YvZmRkeDFtK1ZC -TG5EdXMKUWZVUEJlZ1RKTThaWWxKUVcwMlErUjgxNHE4b2F5UkhKVnl3dm5JeTNLa242eWptSVFR -N2hIZ0FycXlUT0pRV2kvT09IVHN3Zi81OApwS2FtWXY3OCtjakt5bktJUlk5YTQ4WVZQZkkvemtk -OHNIS25LZHNhRlFuMnYrV0dRY2RkRmJYZzZHblJDMGsxVTJTM3hHZ1JFWEJaClJzMGJTdEJpY1c3 -YnRpMTI3TmlCT1hQbW9LU2tCRnUyYklHTGk3THVhR3pCVUNjaS9mMENKSHBYOFlYN1d5SHBFMWRF -N2xORHpUcUkKRmUzWEIrRnluWHlHcWQyMmhRUkN4SDJzWXppTUpvdXpwNmNudkx5ODRPWGxoZTdk -dTZPd3NCRGZmZmNkdkwyOTRlM3RHSXRkVzBQSwo2aUwwMTVYRDNZVVhhRXRsYlhORyswMGVhS2Vn -ZStqUHRUMUI5SW1zWTVqRlFBajJDL0laV2lkM1RSYm4yeHU1M3Y2b3E2dHJlS3lxCnFzcWVHV1V2 -WitzVmRNaS9pR0FmWHFBdGxaK3BBcFo1b0p1b25KRWNpNnJqNEcyOHYrVVhTc2hoNG95YlpEenJH -QTZoeWUvMFU2ZE8KQVFCeWMzTWIvZURNY3pxN0V2VzdUcU4zSU84b3RGVHhHUUhGcjNrZ1FqRTdl -eE84WFRrU3ZtSkgxa0hNOGgyNUQ0QTgxdzJ4bDVxYQpHdno1ejM5R3o1NDkwYnQzYjJSbVpwcDlq -aVlub1R6MzNITll1M1l0aGc0ZDJ1aGlSUHYzMjI4SFhEbE1RakdWaTFwQXZ6azlrYUhnClpUTnR6 -Y21GSXY2VldtVDQxN09PWWhVaFFnMW0rbnlCR2xMSk9vckpIaFJyRUVGWHNZN1JLQjhuUGZOSktD -Ky8vRExVYWpYbXo1OFAKSnljbjFOVFV3TWZIeDd3TXpjMFFGRVVSR1JrWmlJOW51NzZya29yemJV -T2U3NGJrQ3BrTnFaSVVpbUgvcVVONkJ6M3JJRll4MExrYwpEM2h1UWoyUnlkZERLZWFLbVhCRk91 -c2s5NUJDY1k2TWpFUkdSZ2JVYXN1N3NwdHR3Qk1FQWM4Ly83ekZKK2VhbHZ6Uk9jU0o1WEJ6CjV1 -M1FsaUhZdjhoVk1aTlZNdXJiNGJSdUFpQ1g2ZitFWUpzUUJ5aHFISTExWEw1OEdiVzF0Wmc5ZXpa -aVkyT3hlUEZpaTVaY2JyRjMKWmR5NGNWaXhZZ1h2QkxTQnpHOUswZlhjSmJUejRnWGFJcFRnNkR0 -cWREY3FvNVB3bTlwdU1OUVBaeDNEWkpjSXdRVUZqMzArcisvZQo2RWZtM25wc2YvVTR0cjk2SE50 -ZXZYZEQzOXJhV2hRV0ZtTEtsQ2xJU2tyQ2lSTW44TzIzMzVyOS9pMHVmT1RwNlFtdFZndEJFQnB1 -CjBRa2hkaTNXU216V3VGTmdOelY4SHU2T3duSmxGQmw3NjlSTFJOM2NHdHlFRW43SlVienA4d3Vx -VlVkWUJ6R0pFNldZSys2R0N2bXMKb3pTd1ZyT0d5M1hUK2dEMGJYenVlYit3c0xDR05leC8rdWtu -Yk55NDBleGxMMXFzQnRYVjFSQkZFUWFEb1dGWUhiK0x0cTZyNTNTNAp0RDRmQTlvcm80UEwzaTRW -Q09pd1hRMWxqT0VnZUxOeUJIekZFTlpCVEdJZ0JMOEtEd0VLR29OdURmZmRkeCt5c3JJZ2lpSjI3 -ZHFGCkVTTkdtSDJPRm92ekF3ODhZTkpqWE92b05FWmtMODFIWXJzYTFsRms2ZkJlSjhUbXViR09Z -UlY2cUxDaWFnSThxVi9MTDVhQW84UUoKRldRQzZ4aVNzbVRKRXN5Yk53L1IwZEZ3YzNQRFk0ODla -dlk1bXV4TjBlbDAwR3ExS0M4dlIwWEY3MnU1bHBXVlNYYUhiQ1ZJV1hFVwpnNTdvZ0J6NG85N0k3 -MGJNa2JUV0dVTmZNK0pBTy9uL0JWSXFxckZWTXhVUGUzMkJPbUw1L3AzMjhoM3Bqci9TUUFCWFdV -ZVJoSjQ5CmUxbzB0dmxPVGQ0NXIxNjlHdjM3OTBkQlFRSDY5ZXZYOERGcjFpeTgrT0tMclhwVHJu -a0hOaFdqVjBreC9EMlUwSVpxVHdScEM5M1EKdDA0WkRSeTVCbjhjMDA0RW9kTHZpOUFRZ2tQQ0ZO -WXhGS1hGRHNFVksxYmdoUmRlc0ZlZVJpbTlRN0FwSFhxNXcyMWtONXk5SnYwZgpUaW54Q3hUaCsw -b05paFd5NE5SY2p6eTR1KzVoSGFObGxPSjU4U0RVTUcrUFVXdVRRb2VnTlRUNVU1K1RrNFBTMHRL -R3dyeDc5MjQ4CitlU1RXTFZxRmJSYXJkV0RjUGNxTHREaTZxWlQ2TmVlYnlKcmpodFhCVGl0ZDRj -SDZ5QldzckltQW1vRDJ4M25UVUlJZmhENkE0cTUKOG13MVdaei84cGUvTkN3TmV1Yk1HVHp6ekRO -NDRJRUhrSmVYaC8vKzE3U1pNMXpyVmQ4d0lIZlpTU1FHOGwrSTVqaWRxMExQWDVVegpRZUxOcXFI -d0ZidXpqdEdpVWtKd2pqekNPb1lpTkZtY2pVWWoyclJwQStCVzA4YlRUeitOcDU5K0doOSsrQ0V5 -TWpMc0ZwQURxQkZJCldYWUdnMTF2UUNVbzQwOTFlOGphNm96NE04cll2Y01JQVV1ckhvWTNsZjd1 -MHR1SVA0eVExMnA3VXRSa2NmYno4MnRvdnRpK2ZUdW0KVHAwS0FIQnlja0oxZGJWOTBuRjNTZHR3 -Q1gydTgwMWt6YkYvbVF0aXE1UXh4ZnVhNklhdk5GUGdSdDFaUjJtV1NBaCtFVWJBaEpHNgpYRE9h -dkhwUFBQRUU0dUxpTUdMRUNIVHYzaDB4TWJmYXZFNmZQZzFmWDErN0JlVHVkbVJQT1FLUFhVQ1FO -eS9RcGlISWZrdXRtQjI5Cmp4dDhrYTJkRElGS2UwVEtDZUtFYTJRUzZ4aXkxdXhvalpLU0VoUVdG -bUxJa0NFTnk0WVdGaGFpdXJvYTBkSFI5Z3Zwb0tNMW1oTVEKNGdiZkNUMzRsRzhUQlhVUm9YcTVC -dVdLbU9JTi9NWDlKUHpjZm1RZG8xbnVsR0syK0RVSWl1MzZ2a29acmRIaVVEb3A0TVc1Y1I2KwpU -Z2lkMlJPSFNwVHhaN3V0M1QvWWdLTEh0SkRKb3B3dGV0VXJGWHJuQTZ4ak5DdUIxaUpXL05DdTc2 -bVU0c3h2dTJTczVxWUJoNWVmCnhPQmc2YzhnazRMamFVNkl6RlRHRkc4QWVGc1REMSt4RitzWXpV -b2xidEJDUGl2dFNRa3Z6akluR29DMDl3dVI2TWVuMUpzaWJaTUwKNG91VnNRdU5DQUdMYm82QkR3 -MWlIYVZaM3d0UkFMeFl4NUFkWHB3Vkl1WGo4eGlJYTNCV1NiNlZpcm1reGE2STBrbTdRODFVbFhE -QgpocXBKVUZQcDdxcHpsUkNjNW1PZnpjYUxzNEprZkZXQzNsZEw0SzNtQmJvNVZDUTQrWTQ3UWhT -eWszZWgwUnZIZEdOWngyaldqOFFYCkJrU3dqaUVyeXZqdTVCcms3YjJPdG9lTDBNR1hGK2ptYUc0 -UTFIK2loamZySUZieWZXMFhlQm1sVy94RVFyQmJlQUJReUtyYjlzQ0wKc3dLZE82eEIzYzdUQ0Ew -UVdVZVJ0S0tUS29Uc2NsZk1EOEZ5elZDNFUrbTI3UllTQVdXRXIxeG5LcVY4WDNKL2NPMVNMUzZz -eTBkLwp2cnRLc3c3OTVJUzRFOHFZNGwwdXV1R2tiaFRyR00zNmxuUUNSV2ZXTVdTQkYyY0YwMm1N -T0xRc0h3bEJPdFpSSkMxcGxRc0dWaml6CmptRVYzOVIyZzdleEQrc1lUYW9sQkJrQzN6WEZGTHc0 -S3h3MUFxa2ZuRWFpTjkvM3NXa0VCOTV5UTNpOU10cERWMnFHUVUybHUyem4KQWVLS2FqS1NkUXpK -NDhYWlFhU3NMa0tjc1J3dVRyeWpzREgxZW9LTDc2a1JST1cvTmRnVlVZM1R0ZEp1M3RoQytnRHdZ -UjFEMG5oeApkaUNaMzVhaVozRXhmTjE1Z1c3TTlSSUI2bzN1VU1JcTBGL3Flc0RIR000NlJwT3VF -WUpUZk94enMzaHhkakRIZjZ1QVQ5WjVkUExqCkJib3hCVGtxOUU1V1Fua0dQdFlNbC9UeW9qdUpO -K3JSajNVTXllTEYyUUZkT0Y0TjdmWUM5QTQwc280aVNSbmZPV053a2Z5bmVGOFcKM1hHaFRzSnR1 -NFJncHpBRWdESTZZNjJORjJjSGRiMVlqN05yOHpHQUQ3VnIxRzlMWFJGVExmL1YvalpvZThKSERH -VWRvMGxuaVlCUwpNcFYxREVuaXhkbUIxZFdJeVA0Z24rOVAyQmhLa1B1MkdqMk1jdjhSSVZoZE5R -S3VWTHBOTmQrUjlxRG95anFHMVJtTlJrUkZSV0hjCnVIRVdIUy8zN3p5dXRjUmIreE1tZWxhQ0VO -NE9mU2VkaHFCeXBUdjhJZThSSEJkRUR4VFhQY2c2UnBQMGhDQlZzS3lBU2RueTVjdlIKdTNmdmhv -MUt6TVdMTXdjQVNGbDdBVEYxNVhCejVnWDZUc1ZuQkFSOHI0YmNHemcrMDRiQ1YrekpPa2FUc29r -TE5HUTA2eGhXYy9ueQpaZXpldlJ2UFB2dXN4UXZ4OCtMTU5jaisvZ3E2RlJXampRY3YwSGM2dXQ4 -Si9YUGx2a2cvd2RxcUIrRktwZnQxZkV0NkEvQm5IY01xCi92NzN2K085OTk2RElGaGVZdVYrUThC -WjJjbVVDblFxcjRQbjhLNjRVTUYvZDkrV3NzNEZ3em9Za1I0bzN3N1VjNklucnRhTmdLL2IKVHRa -UkduV0RFSndnMHhCT1Y3T09BZ0FROXpVK1lvZWVTQUU5bVhMcjM0MDh2M1BuVGdRRUJDQXFLZ3BK -U1VrV3Z6L2ZRNUJybEcrZwpDem8rZmgrT1gxSEdsR1pyVURsUlJDL1NJczlOemtNUUtSYjYvb0Ni -d2huV1FScEhLVjRRMCtDQ0xJdFBZYTA5QkRIZHhITjhSZTU2CnYvLys5Ny80NG9zdjRPVGtoTnJh -V2xSVlZXSEtsQ25ZdUhHamVSbDRjZWFhNHFJV0VEV25KN0pLNUQvbTExcDgyNGxvODc4MXVDVGoK -enRPZXFpbzg2cjBPZWxMSE9rcWp1bEFSVThXUEFGaVdqM1Z4dmxOeWNqS1dMRm1DSDM4MGY2ZDAv -bmNyMXlTOVRrVFcwbE5JRE9CRAo3VzY3V1M2QXJuV0hkRGVGYWxtaDBSc1YrZ2RZeDJoU0VSRndt -VXhqSGNOcVpERmFZL1BtelJneVpBakN3OFB4NmFlZkFnQVdMRmlBCmpoMDdJaW9xQ2xGUlVkaXpa -NDg5STNFbVNGbCtCZ25xbXhCa2ZMZG9UZWVPcXREOVo3V3NCOWg5VkhNL2ZFWHBqaTMrZ1FSQ3hI -MnMKWTdUYWtDRkRzR1BIRG91T3RWdXpSbVZsSlFZTUdJRE16RXc0T3p0aitQRGgyTHQzTDVZdFd3 -WXZMeS84NHgvL2FEb2tiOWFRaFA0VApBbkhDTndBNnZaekxrdlVNbTF1SDlGN1NiQm93UlcrblNr -ejJXb2Q2b21jZHBWSFJ0QjdEeGVWbUh5ZWxabzNXc051ZDg0RURCeEFkCkhRMC9Qejk0ZW5waTJM -Qmh5TWpJQUFDYmZHR2M5UjNjZmhVaHB5K2hyU2YvL3dLQS9TdGRFSGRUdnV0Q25EVDRvRW8vakhX -TUp1VVMKWjFRUzVVMU9NWlhkaW5OaVlpS3lzN054L3Z4NWxKYVdZdmZ1M1RodzRBQUFZT1hLbFlp -TGk4UGl4WXVoMFdqc0ZZbXp3S2tETitHYQpmQlpkMi9EOUNRR0N6SGZjRUdxUWI5Zk5pcG9JK0lv -aHJHTTA2VnZTRTBBNzFqR1lzT3RvalI5Ly9CR3JWcTFDWldVbFFrSkNjUC85CjkrTzU1NTVEMjda -dFVWVlZoWC8rODUvbzJiTW5Ybjc1NWJ0REVnSmcxaDJQOUFjUVk2L1lYQ084MnppaDI1OTc0a2dw -SHlvZjNGV0UKOGFWcTNHUWR4RUtKemxjeDBHc0Q2eGhObWlxV293djl2TW5uVTVORnBDWC9Yc1lX -dldGVVJMTUdzNkYwanozMkdQNzFyMzhoT2pxNgo0Ykc4dkR6TW1UTUg2ZW5wZDcyV3R6bExrK0FF -REpyYkUybFhwRHZyekY3aUp0Y2pkN2g4OTJwYzZQc2RiZ3JuV01kb2xCK2xtQ2wrCkNGT0gxdkUy -Wnd1VWxaVUJBUGJ0MjRkang0NGhPam9hcGFXbEFBQ0R3WURObXpkanpKZ3g5b3pFdFlKb0FOSStL -RVNDQngvSmtmbUQKTXdhVnk3ZjlPVnNYeXpwQ2syNFFBZzJSYnR1NHJkaTFPRStkT2hXaG9hSDR6 -My8rZy9YcjF3TUEvdWQvL2dkOSsvWkZYRndjNnV2cgpNWHYyYkh0RzRxd2c5ZE9MaUtxNkNpODN4 -eTdRQjk1elEzZVpMakc2dGE0VGZHZ3c2eGhOeWlUU1haUGFWdmdNUWM1cXVrVjdvUzYyCkM0cHZP -dTVRdSs0UlJwUS9WNE5hMWtFczhMUjdBUUxkdHJHTzBUaEs4WGR4TjFUSWIvR2x2Rm1ENC83Z1hL -NEd1bTBGdUQ5SXptdFAKdE03WlBCV2laTHFDM1JmYSsrQkovVmpIYUJ3aE9FUGlXYWV3SzE2Y09h -dXFLTldqWUZVK0JyV1g3K1NNMWtwZTU0d1lqZnhHc1JnaApvRnd2M2Jiblg0a1BBQy9XTWV5R0Yy -Zk82dXByUlJ4WVdvQkVYMGNkczA1d2JJa2F3VlIrelR2cmFucExkc2R1TFNHb0lDTll4N0FiClhw -dzVtMGxaZFI2eDlXVlF1MGkrVzhQcXFxNFRlRzlSeSs0SHJCck9xS3VYN2h5Q0ZOS0ZkUVM3a2R2 -M0RpY3pXVnV1b0hQaEpRUjYKTzE2QlBwYnNoRUZuWFZuSE1Oc0diUVNjcVRTSEJaNGhLdFNqUCtz -WWRzR0xNMmR6QlJrM2daOVBvMWVBNDAzNTNyL2NCWDNyNUxWaAp3UlZSRFNkakZPc1lUVHBKcEh0 -bmIwMjhPSE4yY2JXb0ZoYytPNG5ZOXZMZDVza1NWQ1M0dEVJTlg1a3RNUHBWVFQ4UUtzM3lrRXpj -CjRRanJiVWp6Nm5PS1ZGc3RJbXRwUGhMYjFyQ09ZbGRYTHdqb3VrOWV3K3NLak43d0VzTlp4MmlV -bmhCY0lkTGRMTUJhZUhIbTdDNWwKNVZrTUl0ZmhySEtjZHVpc2JjNkl2eXJOZHR5bS9LZ2R3RHBD -ay9hVERvRE0vaG94RnkvT0hCTUhOaGVqVjNFeDJuZzRUb0ZPZjg4TgpQV1EwdlR1enZpMTh4UjZz -WXpTcW1CRFVZakRyR0RZbG4rOFVUbkdPNzYrQVcrcFpkRy9yR0IyRitsb0MzVm8xMUt5RG1DRk53 -Z3NpCkhSWWlXVWV3S1Y2Y09hYUtDN1M0dXVrVStyVTNzSTVpRitlUHF4QnhVRDd0ejd2cU9zQ1hk -bUFkbzFFWmNBRkZKOVl4YklZWFo0NjUKNmhzRzVDNDdpY1JBK2E2SGJJNlVEYzRZVUNXWDZkMEV4 -MnZqV0lkb2xFZ0lMaWw0S1ZGZW5EbEpvRVlnWmRscERIYTdBWldnOUhabwpncnozMU9nZ2srbmRY -K202d1l1MllSMmpVYitTZGdEazFkRnFLbDZjT1VsSlczOEpmYTVmZ2JkYTJRVmFjNFBBNHhzMTVE -QTlSWVNBCkVva3VpSFNkRUZTVDRheGoyQVF2enB6a0hObFREditjSW5UMlYzYUJQcDdtaExqVDhw -amV2YjRtREdycXlUcEdvN0lrdGhEL3BVdVgKTUd6WU1JU0hoMlBvMEtIWXZIbXpSZWZoeFptVHBL -SmpHbFIrVjRDSVlHV3ZEWjIwMGdVUnRkSy9mOWJCQ1RVU1hSRHBNSndnb2hmcgpHQTJjblozeHdR -Y2Y0TVNKRTlpeVpRdGVlZVVWYURUbXI5RElpek1uV1pWbGVoeGZlUkx4d2NwZEc1cUtCQmVXcStF -dmd3a1Y2N1Y5CjRVeGRXTWU0RnlFNFM2UXo1amtvS0FpUmtiZUcrYlZ0MnhiaDRlRTRlUENnMmVm -aHhabVROR005UmZyN0JVajByZ1JSNkNheVpaY0UKZE5vai9lRjExMFEzQ0laK3JHTTA2bGZpQzhD -NnpTNHFpQzErQ0dqK2UvTE1tVE00Y2VJRUJnd3dmN2FsWE1iemNBNHVaZlVGOUo4UQppSHkvQU5U -VVNmOHUwMXc1TzUweExNS0k5R0E5NnlqTjJsUVRqVWQ5c2lFU2FUVTNWUk9DRytRQitOSHRWanVu -TWFlMDhTZDBHYmMrCldxRFJhUERvbzQvaWd3OCtnSWVIaDludnp6ZDQ1V1NsUjR3M3RQMUNVRktw -dkFMdDdFTFI2NzBhRktxa1BXUHlMWitmb1ZFZFlSM2oKSGoycGlQSGkrOWJiNE5Ya21oTnh6L3ZW -MTlkajdOaXhHRE5tREY1ODhVV0xNdkJtRFU1V3p1UlVvVzVuSVhvSFN1dk96UnJxOVFUVgpxOVdR -NWlaUnYvdWhScG9kZzRWRWdBSFJyR09BVW9xWk0yZmkvdnZ2dDdnd0E3dzRjekowL1hJZHpxek9S -MzhGcmcxZGRGS0ZQdG5TCmJuL09OZmpEVjVUTzZJZzduU1RzeDJPbnA2ZGowNlpOK08yMzN4QVZG -WVdvcUNqczJiUEg3UFB3WmcxT3RyemJ1Y0JqU2krVUtxNkoKZ3lMaGJSMnlmS1M3M3NoSTF4SkVl -WHpCT3NZOVhDakZxOEpDNXMwYTFzRHZuRG5acWlyWEkrQnNpUUpIY1JBY1hxSkdSd2xQNy82bApy -ajE4eGM2c1k5eERUNlI3emN6Rml6TW5hM2w3cnlPeHJaWjFES3VydmtIZzlyVmEwc09wanRTeWIw -SlFNbDZjT2RsTFczVU9vUXJjClBQWmt1aE5pQzZRN3ZmdWIycTd3cHNyZnk0OFZYcHc1MlRQV1Ur -aCtMWUxhUlduTkc4RCtEMTBRS2RucDNRUVg2cVM1bktnUzhPTE0KS2NLRjQ5WG9SMjZ5am1GOWxP -RDhCMnEwa2VqMDdnM2FYdkNnM3F4aktCSXZ6cHhpcEcyNGhBRUtIRjVYWGl5Z3cwL1MzTnhLRHhW -dQoxa3QzSTFnNTQ4V1pVNVRUWDU1RmdKZnltamNPN25KQ2ZMRUVGeDBDc0w3NmZyaFNhWS9ObGlO -ZW5EbEZ1WEZGanc2WHI3Q09ZUk9wClMxM1J5eUM5SDlrYmNJVm82TTg2aHVKSTczK2E0MXJwOE81 -eUpBWXFiM2lkUVU5UXVWb044NWZRc2IwdmFpS2hvbEllK0NjL3ZEaHoKaXBUeHlUbmMxMDU1dytz -dTVxc1FuaUc5Sm9RTG9nZmNqQkdzWXlnS0w4NmNJdFhYaWpDbVhZQ3JrL0xhbjlPK2RFSGNUZWx0 -YXZxOQp0aDhnNFZtTmNzT0xNNmRZNTNJMWlIV3BaQjNESmc2KzY0Yk9vclIrZlBNTWZ2Q2hZYXhq -S0lhMC9uYzV6c3BTUHJ1SWZ1Mmx1NENRCnBiUlZCTTZiMVpEYS9mTXZXbWt1SnlwSHZEaHppbGYw -elZtMDhWUmU4MForcGdvRDhxVTF2VHRKSHdSZnNRdnJHSXJBaXpPbmVOY3YKMTZIcjFhdXNZOWpF -L285ZEVLV1QxdlR1ZzN4QkpLdmd4Wmx6Q0FkM2xDRWhTTWM2aHZWUmdqTWZxTkZPUXRPN3Y2OE5n -UThOWkIxRAo5bmh4NWh4RzlwcXo2TlpXZWNQcnJwY0k2SkVycGVZTmdyTjhRYVJXNDhXWmN4aDFO -U0pVV1pmZ3JGSmUrL09CVGM0SWx0QXd0bzNhCisrQkJmVmpIa0RWZW5EbUhjanE3RWdNOXFsakhz -THA2UFVHWG85SzVlNjZIQ3RmMXZPMjVOWGh4NWh4T3l1b0xpQXhXM3ZDNmpDK2MKRVNDaHR1ZDFO -ZUZ3bzlKY1RVOE9lSEhtSEZMSjkrZmc2NjZzNWcxOUxVR1A0OUpadVU0REYrZ05mTnl6cFhoeDVo -eFMyWVZhOUx4Wgp6anFHMVdWc2RFRmJDZDA5YjZ5SmhCT1YybFFaZWVERm1YTlkyZDlmd2VEZ1d0 -WXhyS3BPUzlEcmxIVHVub3RGTlp5TmtheGp5SkpkCmkvUG16WnN4Wk1nUWhJZUg0OU5QUHdVQWFE -UWFUSmd3QVowN2Q4YkVpUk5SWFYxdHowZzJsTU02Z0FYa2xybjFlUSt0UFlzUWZ6c08Kcjd1YVpQ -TzN5UHpjQmY1V3ZIc1cwMUpiZGZ5MzJuNGdFaHBKWWc4cEtTa0lDd3ZEZmZmZGg1VXJWMXAwRHJz -VjU4cktTcnorK3V2WQp0bTBic3JLeXNHYk5HbFJXVm1MVnFsWG8zTGt6VHA4K2pZNGRPK0tUVHo2 -eFZ5UWJPOGc2Z0FYa2xybjFlWFVhSTlTSEw4UEpYc1ByCnlwSnMvaFk2RFVGWW9mWHVubWw2V3F1 -T1AybndnWmNZYnFVMDhqQnYzanlzWHIwYSsvYnR3MGNmZllScjE2NlpmUTY3RmVjREJ3NGcKT2pv -YWZuNSs4UFQweExCaHc1Q1JrWUhzN0d6TW5Ea1RycTZ1bURGakJyS3lzdXdWaWVNQUFLY08zRVM4 -bDRaMURLdksvdHdGdnF4RAozR0czQXkySVZGbDVheVhFeE1SRWhJU0VZT1RJa1JiVk5idHRYWkNZ -bUlpLy9lMXZPSC8rUE56YzNMQjc5MjY0dXJvaUp5Y0hvYUdoCkFJRFEwRkJrWjJjM2VueDB0THlH -NUpTV09pTTRtR2UySld2bXJjNjVpakVUUFhCRmE5dDFLa292QThGZGJmb1cvNDhndk5RVmhSMWIK -ditIdFpZR2dvNnAxOTNGYU1RZ2hZaFQwZ256V09QSHhhZmxycnErbjBQNWgwNTA3YXhvQTlPN2RH -NW1abVJnN2RxeFo3MiszNHV6aAo0WUZseTViaCtlZWZSMlZsSmZyMDZRTlhWMWRRYXRxZms3bTVQ -VzJjMFBwS1N5MXJhMkpKYnBtdG10ZE9yVHFscWEvYjVYMXkzN0hlCnVZb1hMV3oxT2VUMk4zRmxa -UitUWHVmcDZXbVQ5N2ZycGwvanhvM0R1SEhqQUFDUFBmWVlSbzBhaGR6Y1hPVG41eU1xS2dyNStm -bUkKaWJuM3p4OVRDempIY1p3MXRLYm14TVRFNEovLy9HZkQ1eWRPbk1Db1VhUE1QbzlkUjJ1VWxa -VUJBUGJ0MjRmang0OGpPam9hc2JHeApXR0pJNjNjQUFBZGhTVVJCVkxkdUhYUTZIZGF0VzRlNE9M -NWdDc2R4OHVYamMydE5rWlNVRkJRVkZXSHYzcjJJalRWL0tqdWhkcnd0ClRVeE1SRmxaR2J5OHZQ -RFJSeDlod0lBQjBHZzBlT0tKSjNENDhHRkVSMGRqMDZaTk52c3pnZU00emg2U2s1TXhhOVlzMU5m -WDQ0VVgKWHNBTEw3eGcva2tvUThuSnlUUTBOSlQyNk5HRHJsaXg0cDduOC9QemFWeGNISFYxZGFW -TGxpd3g2MWhiYVUzbWtKQVEycWRQSHhvWgpHVWxqWW1Mc0ZibkZ6SnMyYmFKOSsvYWxmZnYycGRP -blQ2Y0ZCUVVtSHl1MXZGSzl4dHUyYmFOOSsvYWxFUkVSZE15WU1UUTdPOXZrClk2V1ltY1YxTnZV -NlpXZG5VNVZLUmJkczJXTDJzVkxDdERoSFJrYlM1T1JrV2xSVVJIdjE2a1hMeTh2dmVyNnNySXpt -NU9UUStmUG4KMzFQb1dqcFdpcG03ZE9sQ3IxKy9icGVjZDJvcDg0RURCK2pObXpjcHBaUnUyTENC -UHZIRUV5WWZLN1c4VXIzRzFkWFZEZjlPU2txaQpDUWtKSmg4cnhjd3Nyck1wMThsZ01OQmh3NGJS -c1dQSDNsV2NXVjNqMW1BMmZkdVVzWUR0MnJWRC8vNzk0ZXpzYlBheFVzdDhHN1Z6CjU2WXBtUWNP -SE5qUVRqWjI3RmdrSnllYmZLeVU4dDRteFd2czRlRngxK3ZkM054TVBsWnFtVyt6NTNVMjlUcXRY -TGtTVTZkT1JidDIKN2N3K1ZtcVlGZWVteGdMYSt0aldhTzM3RWtJd2ZQaHdUSnc0RVR0MjdMQkZ4 -SHVZbTNuTm1qVU5JMnBZWE9mVzVBV2tmWTIzYnQySwpMbDI2WU1hTUdWaTdkcTFaeDBvaDg1bzFh -eG9ldC9kMU5pVnZjWEV4dG0vZmp0bXpaemRrTlBWWUtiTHJVRHBIbDU2ZWp1RGdZT1RuCjUyUGN1 -SEVZTUdBQWdvS0NXTWRxc0cvZlBtemF0QWtIRGh4Z0hjVWtqZVdWOGpXZU5Ha1NKazJhaEcrKytR -WVRKMDdFNGNPSFdVZHEKMFoyWkowMmExSkJaaXRmNXhSZGZ4S0pGaTBBSUFiM1ZaTXMwVDJzeHUz -T09pWW5CcVZPbkdqNC9jZUtFeWNQb1duTnNhN1QyZllPRApnd0VBWVdGaEdEOStQSDc4OFVlclov -d2pVek1mUFhvVXMyYk53bzRkTytEcjYydldzVkxKQzBqN0d0LzI2S09Qb3FTa0JEcWREdjM3Cjk1 -ZkY5L0tkbVFIN1gyZFQ4aDQ2ZEFpUFBmWVl1bmJ0aXUrLy94NXo1c3pCamgwN21OV0xWbVBaNEgy -N2tmNzgrZlBOTnRLLzl0cHIKVFhZSXRuU3N0Vm1hdWFhbWhsWlZWVkZLYjNVYTl1N2RtMTY4ZUZF -U21TOWN1RUI3OU9oQk16TXp6VDVXU25tbGZJM1BuRGxEUlZHawpsRks2YTljdU9ucjBhSk9QbFZw -bVZ0ZlpuT3YwOU5OUDArKy8vOTZpWTZXQ2FYRk9Ta3Fpb2FHaHRIdjM3blQ1OHVXVVVrby8rZVFU -Citza25uMUJLS1MwdExhVWRPM2FrM3Q3ZTFOZlhsM2JxMUlscU5Kb21qNVZ5NXJObno5S0lpQWdh -RVJGQmh3OGZUai83N0RQSlpKNDUKY3liMTkvZW5rWkdSOXd5TlluR2RMYzByNVd1OGVQRmlHaDRl -VGlNakkra3p6enhEangwNzF1eXhVczdNNmpxM2xQZE9meXpPcks1eAphOWgxRWdySGNSeG5HcjRU -Q3NkeG5BVHg0c3h4SENkQnZEaHpITWRKRUMvT0hNZHhFc1NMTTJkenc0Y1B4eSsvL0hMWFk4dVdM -Y09jCk9YTWFmWDJYTGwxUVVWSFI3RG5mZWVmdWxlVGo0K01CQUVWRlJlalQ1OVlpNlFjUEhzUzhl -Zk1BM0ZvbExDTWp3Nkw4SE1jQ0w4NmMKelUyZlBoMWZmLzMxWFk5OTg4MDNlUHp4eHh0OS9lMXB0 -ODFadVBEdW5UblMwOVB2ZVUzLy92MnhmUGx5QU1EKy9mdGxNL09SNHdCZQpuRGs3bURKbENuYnQy -Z1dEd1FEZzF0MXRTVWtKOUhvOXhvd1pnL2o0ZUh6NjZhZU5IanRwMGlUMDY5Y1B3NGNQeDlhdFd3 -RUEvLzczCnY2SFQ2UkFWRllVbm4zd1NRT05iQlNVbEpXSGN1SEc0Y09FQ1ZxOWVqUTgrK0FEUjBk -RklTMHREdDI3ZEd2SlVWVldoVzdkdU1CcU4KdHZqeU9jNGlmRzBOenViOC9mMHhZTUFBN042OUcr -UEhqOGZYWDMrTnFWT240aTkvK1F2MjdObURObTNhWU5Tb1VZaVBqMGRZV05oZAp4NjVidHc1K2Zu -Nm9xcXJDMEtGRE1XblNKQ3hhdEFnZmZmVFJYV3RUTkhlM0hSSVNnbG16WnNITHl3di8rTWMvQUFC -RGh3N0ZybDI3Ck1HSENCSHo5OWRlWU1tVUtWQ3JiYnU3S2NlYmdkODZjWGR6WnRQSE5OOTlneXBR -cENBc0xRNDhlUGVEbjU0ZXBVNmMydXJyWjExOS8KalFjZWVBRHg4ZkU0ZCs0Y2poMDdadEg3MHo4 -c2hQUHNzODlpL2ZyMUFJQU5HemJnbVdlZXNlaThIR2NydkRoemRqRisvSGo4K3V1dgpPSHo0TUxS -YTdUMTN1cFRTZXg0N2QrNGNWcTFhaGUrKyt3N0hqaDFEMTY1ZGNlUEdEWXZlLzQvbkhqUm9FSXFL -aXBDVWxBU2owWWplCnZYdGJkRjZPc3hWZW5EbTc4UFQweExCaHcvRE1NOC9nOGNjZlIxeGNIRTZk -T29Xelo4L2l4bzBiMkxwMUs4YVBIMy9YTVNVbEpXalgKcmgzOC9mMlJucDZPdkx5OGh1ZmF0V3NI -clZacjh2dUhoSVNndkx6OHJzZWVldW9wL09sUGY4S01HVE5hOThWeG5BM3c0c3paemZUcAowM0hz -MkRGTW56NGRoQkNzWHIwYWMrZk94ZGl4WXpGejVzeUdCZEZ2MytVT0hqd1lJU0VoQ0FzTHc3Smx5 -ekJpeElpR2M4MmRPeGNKCkNRa05IWUozM2hrMzl1K1JJMGZpNE1HRGlJcUthaGpaOGZqamorUEdq -UnVZUG4yNmJiOXdqck1BWC9pSWMxaWJOMi9HL3YzN0czWWwKNFRncDRhTTFPSWMwZCs1Y3BLZW5Z -K2ZPbmF5amNGeWorSjB6eDNHY0JQRTJaNDdqT0FuaXhabmpPRTZDZUhIbU9JNlRJRjZjT1k3agpK -SWdYWjQ3ak9Bbml4Wm5qT0U2Qy9nOThaRERrMHdkQ3pRQUFBQUJKUlU1RXJrSmdnZz09Cg== - - - - - - - - +{ + "nbformat": 2, + "name": "mcpricer", + "worksheets": [ + { + "cells": [ + { + "source": "# Parallel Monto-Carlo options pricing", + "cell_type": "markdown" + }, + { + "source": "## Problem setup", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "import sys\nimport time\nfrom IPython.parallel import Client\nimport numpy as np\nfrom mckernel import price_options\nfrom matplotlib import pyplot as plt" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "cluster_profile = \"default\"\nprice = 100.0 # Initial price\nrate = 0.05 # Interest rate\ndays = 260 # Days to expiration\npaths = 10000 # Number of MC paths\nn_strikes = 5 # Number of strike values\nmin_strike = 90.0 # Min strike price\nmax_strike = 110.0 # Max strike price\nn_sigmas = 5 # Number of volatility values\nmin_sigma = 0.1 # Min volatility\nmax_sigma = 0.4 # Max volatility" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "strike_vals = np.linspace(min_strike, max_strike, n_strikes)\nsigma_vals = np.linspace(min_sigma, max_sigma, n_sigmas)" + }, + { + "source": "## Parallel computation across strike prices and volatilities", + "cell_type": "markdown" + }, + { + "source": "The Client is used to setup the calculation and works with all engines.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "c = Client(profile=cluster_profile)" + }, + { + "source": "A LoadBalancedView is an interface to the engines that provides dynamic load \nbalancing at the expense of not knowing which engine will execute the code.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "view = c.load_balanced_view()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Strike prices: [ 90. 95. 100. 105. 110.]\nVolatilities: [ 0.1 0.175 0.25 0.325 0.4 ]" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "print \"Strike prices: \", strike_vals\nprint \"Volatilities: \", sigma_vals" + }, + { + "source": "Submit tasks for each (strike, sigma) pair.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 7, + "input": "t1 = time.time()\nasync_results = []\nfor strike in strike_vals:\n for sigma in sigma_vals:\n ar = view.apply_async(price_options, price, strike, sigma, rate, days, paths)\n async_results.append(ar)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Submitted tasks: 25" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "print \"Submitted tasks: \", len(async_results)" + }, + { + "source": "Block until all tasks are completed.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Parallel calculation completed, time = 2.57819604874 s" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "c.wait(async_results)\nt2 = time.time()\nt = t2-t1\n\nprint \"Parallel calculation completed, time = %s s\" % t" + }, + { + "source": "## Process and visualize results", + "cell_type": "markdown" + }, + { + "source": "Get the results using the `get` method:", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 10, + "input": "results = [ar.get() for ar in async_results]\n" + }, + { + "source": "Assemble the result into a structured NumPy array.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 11, + "input": "prices = np.empty(n_strikes*n_sigmas,\n dtype=[('ecall',float),('eput',float),('acall',float),('aput',float)]\n)\n\nfor i, price in enumerate(results):\n prices[i] = tuple(price)\n \nprices.shape = (n_strikes, n_sigmas)\nstrike_mesh, sigma_mesh = np.meshgrid(strike_vals, sigma_vals)" + }, + { + "source": "Plot the value of the European call in (volatility, strike) space.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 12, + "text": "<matplotlib.text.Text at 0x2c54750>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 12, + "input": "plt.contourf(sigma_mesh, strike_mesh, prices['ecall'])\nplt.axis('tight')\nplt.colorbar()\nplt.title('European Call')\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")" + }, + { + "source": "Plot the value of the Asian call in (volatility, strike) space.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 13, + "text": "<matplotlib.text.Text at 0x2e14610>" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAWcAAAEXCAYAAABxmoVMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8VOW9/99nZrKvkz0hC4QACRCyQBaWhMUNRRSK3opV\nq2BvxWq13vb2vtreX8Hb2uJyVbyWTQMixbVVqAgqaggESMIWIARZwy5hTUJWkpzfH5SUJWFmkpl5\nzpl53q8Xr1cyc85zPpzMfOaZ5/kuiqqqKhKJRCLRFAbRAiQSiURyI9KcJRKJRINIc5ZIJBINIs1Z\nIpFINIg0Z4lEItEg0pwlEolEg0hzlghn3bp1JCcni5bRKQaDgYMHDwLw6KOP8t///d+CFUncBWnO\nErszZswYQkJCaGlpser4vLw89uzZ4zA9q1atYvTo0YSHhxMVFcVdd91FcXGxzeMoioKiKA5QKJHc\niDRniV2pqqqitLSUiIgIVqxYIVoOCxcu5Ec/+hG5ubls2rSJffv2MW3aND744INujSdztiTOQpqz\nxK4sWbKEW2+9lYcffph33nnnmufWr1/PnXfeSUhICLGxsbzyyisAFBYWEhcX13Hcn//8Z5KSkggN\nDeVHP/oR69at63hu8eLFjBo1iueff55evXoxfvx4Nm7c2KmWuro6fv3rX/OrX/2K2bNn07dvXwIC\nArjvvvuYM2cOAKWlpQwfPhyz2czw4cP5v//7P1pbW+19WyQSm5HmLLErS5Ys4Yc//CH/9m//xhdf\nfEF1dXXHc7/4xS/46U9/ypkzZ6ioqGDcuHGdjpGUlMT69es5duwYw4YN48EHH7zm+bKyMgB27dpF\nbm4u//mf/9npOLt27eLChQvcc889Xeo1mUy8/vrrnDlzhldeeYWXX36ZwsJCG//XEon9keYssRvr\n16/n+PHj3HPPPfTr14+BAweybNmyjufb29s5cOAAtbW1BAUFkZGR0ek49913H1FRUfj4+PDss8+i\nKApbtmzpeN7Pz4/f/e53mM1mfvrTn1JSUkJ9ff0N4xw9epSAgAAGDRrUpebMzEyys7MxGo2MGDGC\nhx56iOXLl/fgLkgk9kGas8RuvPPOO9x+++0EBAQAcP/991+ztLFkyRLKy8tJTEzk/vvvp7y8vNNx\nVqxYwQ9+8ANiYmIICQnh5MmT7Nixo+P5QYMGYTBcfulGR0fT2trKqVOnbhgnLi6Ouro6KioqutR8\n/PhxnnjiCYYMGUJgYCCvvvrqNdeSSEQhzVliFxobG/nwww/55ptviI6OJjo6mldeeYXy8vIOsxs0\naBBLlizh5MmTpKam8vjjj98wTn19PT/5yU/48Y9/zJ49ezh37hy9evXq1kbc4MGDMZvNN92Y/MMf\n/sClS5f4/PPPqamp4Re/+AXt7e02X0sisTfSnCV24dNPP8VkMlFZWUl5eTnl5eVUVlaSl5fHkiVL\nuHTpEn/961+pqakBwNfXt2OGfTV1dXVcvHiR6Oho2tvb+dOf/sSJEye6pSkgIIDZs2fzyiuv8Jvf\n/KZjSeWTTz7hmWeeAeDEiROEhIQQGhpKYWEhS5Ys6XI8GakhcSbSnCV2YcmSJUybNo3Y2FgiIiKI\niIggMjKSp556qmPdeenSpfTp04f4+HhKSkp47bXXOs6/Ej8cFRXFn/70Jx5++GHS0tJoaWlh1KhR\n1xx3fazxzWKPH3/8cZYuXUpxcTE5OTn079+fgoICpk6dCsDMmTPZvn07sbGxvPTSSzz11FPXjHf9\nzzLOWeIsFFlsXyKRSLSH3WfO06ZNIzIyktTU1I7HPvroIwYNGoTRaGTr1q3XHD9nzpyOnf3169fb\nW45EIpE4lc48EGDRokWkpKQwaNAgfv3rX1scx+7m/Nhjj7F69eprHktNTeWTTz4hPz//mserq6v5\ny1/+wtdff83cuXP5+c9/bm85EolE4lQ688Bdu3axYMECVqxYQUVFBb/85S8tjmOyt7C8vDyqqqqu\neayrojYlJSWMHz+e+Ph44uPjUVWVurq6TjeKJBKJRA905oGrVq1i+vTp9OvXD4Dw8HCL4wjdECwt\nLSUlJaXj9wEDBlBaWipQkUQikdifL7/8kl27djFs2DAef/xxdu/ebfEcu8+cbaGzvcjOdsPlDrlE\nIrGFnsY5BCoKdVYe6+/vT13dzY9uamri3LlzrFu3jjVr1vDUU0/xzTff3PQcoeack5PDmjVrOn7f\ns2cPWVlZnR6r9a3CwKw0Bvct58rnyMydMDP15udohoeHQswWZs6DmU+IFtM1qkc0Xw7IoNl4uTDR\nezMPMHVmX8GqbMMRmj0JYwX3UIWHXce9wr6ZH9Bv5g8dMrYjWKVM6fEYdVjvOaMuXrR4TG5uLmPG\njMHHx4eJEyfy05/+lKamJry9vbs8x+nLGld/omVnZ/PFF19w5MgRCgsLMRgMulxvNvj702/gaXQ5\nwR+dDzFbLB+nAfb2yuswZsllPDDzORMdZswS+zB8+HBWrVqFqqqUlJTQt2/fmxozOGDmPHXqVNau\nXcuZM2eIi4tj1qxZhISE8PTTT3PmzBkmTJhARkYGq1atIjIykhkzZjBu3Dg8PT2ZP3++veU4hcTJ\naXi32F68XThxAyBrg2gVVtEQPJbvgi6IlqEpTASwhnvZj6doKZKruOKBZ8+eJS4ujueff55HHnmE\nL7/8koEDB5KcnMz//u//WhxHF0koiqJodlnDnJdFSq+yG2bNhadgTKQYTVbh5QvTIyCgquOhws0w\nZpg4SV2hGs18O2AUFz2ar3l8Z+E5UseECFLVPeyl2Ygv67mPcnzsoOrmnC3cReiYwQ6/jr1YpUzp\n8ZqzLZ4zCsek9ktz7gGmkBAyJih4tp4VLcV2poyEJH3M9qvi/o0dIXLWfAUj3pRxP6X4ipaiSVzF\nnGVtjR7Qd2I/fRrz0OHQVx/G3ByQyw7zedEyNIMBD8qZIo3ZDZDm3E3CbhtBWEuJaBm2ExYL+btA\nB5uXqsGP0thI9LnTan8UTOzhPtbjL1qKxAlIc+4GnlGR9I3cJVqG7RiMMCkQPK2N4BTLyag7Oe/Z\nKFqGRjBQxQ/4hkDRQiROQppzN0gaH4OprVa0DNu5YxSEWs5M0gKXfNPZHKbDe+wQFE7yA1ZhFi1E\n4kSkOdtI1N15mJu3iZZhOwPSYfBa0SqsQlU82RKXqIulF2dwhntZTqhoGRInI83ZBrx7x9M7aLNo\nGbbjHwJ3nNDNX/tMxASqvS1nXbkDtUzkY7QckylxFDp5u2oARaHfmACM7TpcA52UCD7VolVYRZt3\nf0oiGkTL0ASNjGcZMaJlSAQhzdlKek3OI7C56y7OmiU/H3rpY7avYmBHXBrtBs2H3jucS9zKO8SL\nliERiDRnK/AdkES8lz7SnK8htj9kbxStwmouhN3FUd8a0TKEozKGt0lELrrbjll1fMaks5DmbAHF\nw4N+wxUM6KzgjqcPTGwB4yXRSqyi3TOekqg20TKEY2AE8+mPNGbbiW+J5KuycaJl2A1pzhaI+8EI\n/Jv3iZZhOxOHQmCVaBVWUxmbS4vRvc3ZRDbzGIQ0ZtswqBB1biDzN43gdJOXaDl2Q2g9Z60TkD6I\nWKVItAzbycyFvlqsRtI5F823cSDAvWtneJLBm6TRLudLNhGoenH6YBaLjkeIlmJ3pDl3gcHHh35p\ndSgtOtucCu0Foyt0M/lSTRFsivECWkRLEYYXg5nLMNqkMdtEbGsoq8qzOVbvOuvMVyPNuQt6/2AY\nPi3rRMuwDYMRJgWD53HRSqzmQK8xNJjcd9bsxQAWkEuLNGabiKvtR0H5IFpV171v0pw7ISgng6i2\ndbqZfXZw+ygI00cWIEBTYB67g86jvxttH7zpSwH5NEpjthpf1YOmI0NZcNj147+lOV+HMSiQfgNO\noOgjyOFf9E+DVP0Ys2oIYlNsCCg6TOqxA14ksISx1EpjtprotmDW7cxhX62faClOQZrzdSTeOxiv\nSzqLafY3wx3f6yr25mjMHdR6uOdyhhcxLONWzmEULUU3JNT3ZvG2NJra3eeeSXO+ipAxOYS3bNDf\nt+x7k8C3TLQKq2nxz2J7iHsuZ3gRwcfcyWn51rMKT9WI58l05u1PEC3F6ehoruVYPMJCSYrdq7+6\n7nn5EKsfY1YVb8piY92ygL4noSznbo5LY7aKiHZ/qirG8JHOjHnatGlERkaSmpp6w3OvvPIKBoOB\nc+fOWRxHmvM/6Xt3Ih5tOmuHFNsPsjeJVmETp6ImcNarXrQMp+NBEKu5hyo8REvRBQlNvfikZCzl\n54JES7GZxx57jNWrV9/w+NGjR/nqq69ISLDuw0aaMxAxfiShzfqZfQL/TM9uBZN+4oNbfQZRFq6P\nLiz2xIQ/3zCZvXiKlqJ5TKpC6Ok05pVmU3tJnx9keXl5mM03NkZ47rnnePHFF60ex+2/X3n2iqFP\nWDnoLXP47qEQqJ8sQBUT2+JSUBX36m5ixIcN/IAKXCet2FGEqD4c3JvDP06FiJZid5YvX05sbCxD\nhgyx+hy3N+d+t4Vjaj4hWoZtZORAkn6MGeBcxARO+riXMRvwYjNT2IprZrDZk/iWSP6+fZimamOM\nnNr544WnoPDq8ugW2ok2NDTwwgsv8NVXX3U8pqqWM4/d2pyj78kjuFlnWYAhMTC6UleBDm1efSmJ\nbBYtw6kY8GAX91GCe8TkdheDCpHnBzJ/1wD08qIeE3n53xVmWTDnAwcOUFVVRVpaGgDHjh1j6NCh\nlJaWEhHRdU0QtzVn78TeJPiXgp5KZxiMMNkMXvqa6VfEDqXV4D4xzQpG9jGFIvxFS9E0gaoXZw5m\nUeCCRYuuJjU1lVOnTnX83qdPH7Zs2UJIyM2Xb9xzQ9BgoP9oH4yqzmZz40dBmL66sdSG3kmVv/sY\nMxg4zBS+Qn9RBs4ktjWU4q3j+NoFjXnq1KmMGDGCvXv3EhcXx6JFi655XrEyjNQtZ86xk0cR0KSz\nUqCDhumme/YV2j1i2Bitj6+q9uJ7JvM5N+7US/6Fqxcteu+99276/MGDB60ax+3M2W/gAOI8i0XL\nsA1zFNx6QC9Lch3sjR1Fs9F9Zs3nuJdPCRMtQ7P4qh40Hx3KgirXL1pkD9zKnBVPT/plX8LQrKO4\nOYMRfhAG3hZ2HTRGQ/A49ga6jzHXcTcfEiVahmaJbgtm/a5s9tbIdXhrcStzTpiSi1+zzpYzxuur\nDCiAagxhYy8/QGdr+t2kmTv4K71Ey9AsCQ29WbzVvYoW2QO3MefAzFRi1CJ9LQ0MHKq7dWaAql63\nUW/SWSp8N2njFhahr9oPzsKdixbZA7cwZ4OfH0mp51H0k+kMwZFw2yF9fZgAzQHD2Rl8Dt0J7xb5\nLKQv7vF/tY3wdn92VOaw/ayMWukurrldeh19Jmfg03JMtAzrUQzwgwjwtly5SkuoBn9KYiPcouKc\nkeHMIxlpzDeS0NSLT0vGSmPuIS4/cw4eOZTI1vX6eg+Nz4Nw/S1nnIgezwVP10/R9mAYf2Ew+npR\nOR6TqhB0ZgjzKhOR96bnuLQ5m8zBJCUeRWkVrcQGUjJ11W7qCpf8MtgSWoOrvyk9SWcuGbJT9nWY\nVR8OuWjRIlG4tDkn3pOMV4uO6h0HR8LtVbrzN1XxZHNsH1AuipbiULwYxDyyuCSN+Rq0WLTIFXBZ\ncw4bl0tY8yb9GJ1igMmR4L1DtBKbOR05gdPerm7M/XmLETRLY+5AUSHqwkDm79RP0SI94ZLm7BEZ\nQWJMJYqOck24Iw8i9Lec0eY9gNLwBtEyHIo3iRSQT7005g4CVC/OHsqi4Jjr1cbQCi5pzkl3xuHR\nvEW0DOtJztDlOrOKgfK4VNoNrrsJ6EUcSxhLreyU3UFsayhflGdzpF7WqXYkLmfOkXeNIqRZR4Xo\ngyLgjiO6DGq8ED6BY76ubMwxvMcdnJPG3IGrFy3SEi5lzl5xsfQxb4V20UqsRFFgcjR4l4tWYjPt\nnglsjNJTGIxteBLO3xhPtTRmAHxUEy1Hh8miRU7EdcxZUeh3qxljk46STW7Ph0j9LWcAVMbmuGwB\nfU9C+Ad3c0x2ygYgui2I9btyZNEiJ+My5hxzbx5BeqrRnJwOQ/RpzBdDbudAgGsaswdBfMG9HJKd\nsoHLRYve2ZZGY5v8BuFsXMKcffr1JcF3o35aTgWFwx3HdLnOrJoi2RDtAVwSLcXumPCjkEl8J41Z\nFi3SALo3Z8Vkov9IE4ZmnZiFosDkGF2uMwPs7zWGJhesOGfEh01MYSfeoqUIRxYt0ga6N+fYySPw\n11ON5tv0u87cGJRPZbDrGbMBL7Yyhc3I0LCEpl68tz2Tmha53i4au3+xnjZtGpGRkaSmpnY8VldX\nx7333kt8fDyTJk3i4sXL2WRVVVX4+PiQkZFBRkYGTz75pE3X8k9NIdako7C5/mmQpk9jVo3BbOoV\nLFqG3VEwsZspbMRPtBShmFSFsNNpzCvNlsbcQzrzwF/96lekpKSQmZnJs88+S2Njo8Vx7G7Ojz32\nGKtXr77msblz5xIfH8++ffuIjY1l3rx5Hc8lJSWxbds2tm3bxl/+8herr6N4edEvsxGDXuLmAsNg\n/HFdrjMDHIm+jTqPJtEy7IqCgQNMoZAA0VKEYlZ9OLt3NO9WytrU9qAzD7z99tupqKhg8+bN1NfX\ns2zZMovj2N0q8vLyMJuv7T5cWlrK9OnT8fLyYtq0aZSUlPT4Or2n5ODbUtXjcZyCosDkWPA5I1pJ\nt2jxz6I8xNWiMxSOMoUvcb1vA7YQ3xLJmrJxbJDV5OxGZx542223YTAYMBgM3HHHHaxda/kbtFPW\nnMvKykhOTgYgOTmZ0tLSjucOHTpEeno6OTk5PPnkk6SlpXU6RsFVPw/vHceIdh21nMobBVHrRKvo\nFqriQ1lsLCj1oqXYlTNM4jPc25BiLiQzf0cK+nkjdcG2QtheaP9xuyiyV/j95X/dZeHChTz++OMW\nj3OKOatq5zFuMTExHD16FLPZzKpVq3j44YfZsaPzqmzTrvq576gElLajDlDqAAxGSNsnWkW3+T76\nLs561YmWYVeaGM/HuG/BHg/VgOnEUN4+ECdain3IGHP53xUWz7LPuM92/vCYf/67wqx064d8/vnn\nCQgI4P7777d4rFNWQLOysqisrASgsrKSrKwsADw9PTum/3feeScmk4n9+/ffdCyDtzdhqo7C0DKy\nwbcHH7MCafUdQlmYaxmzwigWEy9ahjACVC/O7svj765izDpi8eLFfPHFFyxdutSq451izjk5ORQU\nFNDY2EhBQQG5ubkAnDlzhra2y3U9t27dSmNjI0lJSTcdK2RUBqZ2HRlGpj7XalXFgy1x/XT/jfdq\nPElnAS7wNb6bRLYHsLV8DMXfh4qW4nasXr2al156iRUrVuDtbV0svd3NeerUqYwYMYK9e/cSFxfH\nokWLmDFjBkeOHGHAgAEcP36cJ554AoCioiLS0tJIT0/nhRdeYP78+RbHj4yzHIKiGZJSIaRStIpu\ncSbybk556+hD0ALeJPE2WW7bXir+UgSflo5hf617hww6gyse+N133xEXF0dBQQFPP/00Fy9e5NZb\nb7U6bFhRu1oQ1hCKorAe8OwVw7C8E/pp7vxgNsSVWj5OY7R5J7OqfzzternPFvAimmVM4LSbVphL\nqO/Dwi1p7vPBNFrpcp/LWhRFQd1u5bHpXe+r9QRd/bUihifpx5jD46CX/oxZxcD2uMEuY8weBLGC\n8W5pzIoKYaeHMG9LuvsYswuhq79YhN9B0RKsZ3gfnd3dy5wPv5vjLlJA34g365jklhXmvFQj6pHh\nvFuZhLuusesd3dTWCByWhk+LTqI0fAIhabNoFTbT7tmHTVEtomXYBQUjFfyA7W5YyMis+rCncjhb\nz7h3go3e0c3cLiJFRxsZuengob+mp7vismg16CQd3gInmOSWadkxbcGs3TJGGrMLoJuZc1j7NtES\nrMNghEH6SzqpCb2LKn99hv1dTwN3sZww0TKcTkJzDEu2DKOhVTdva8lN0M1f0diukxC69Czw2yRa\nhU20e/RiY7RoFfYinyXEihbhdOJq+zFv+2Dk+rLroJtlDd2QWSNagc3siR1Ji1H/zVo9yWABA3A3\ng4q/mMgCacwuhzRne9I3FUL1lXRy0Xwb+wP1v5zhTX8WMIx2N3tJJzTHsGBrGtKYXQ/3eiU7mhxf\n0QpsQjVFsCmmi9JbOsKLXiwhjyY3eznHtYaxuCwLVRqzS+Jer2ZHEharu6ST/b3G0mDSd+icB2Y+\n5Q7O6Wf7xC5EtgXy0eZcmtrdL7nGXZDmbC9GJIJB85nwHTQGjdZ9P0AjPqzlHg7jXm2VzKoP32wf\nyfkW90uucSekOdsD7wBI2iJahdVc7gcYKFpGj6lkEjvcLMnEX/Vkx66RHKmXzWhdHWnO9iA3Azz0\n0ynkcMzt1Hk0i5bRQ/L5Bv1/wNiCp2rkxN7h7DrvXv9vd0Wac09RDDBYP0knzQHD2WHW93KGF5G8\nywDRMpyKQVW4dCSb4lOyFrO7IM25p2Rkg99J0SqsQjX4UxIbgX5K+3WGwiZuo97NXrr+pzL4/LDL\nZApJrMC9XuGOIFM/FdyOR4/ngqdOMi27oI1xlKCjOit2IPr8QD7Y21u0DImTkebcE/oOhtDdolVY\nxSW/oWwN1V/24tV4EcsSEkXLcCrxFxMp2OleSziSy0hz7gnZ+pjBqYo3pXEJul7OUDCylltodqOX\nrMz+sw0fA2Rb2b1ED7jPK93ehPaCWH0knZyKmsBZr4uiZfSIRm5zq9rMMvvPNiJNEL8SSj8VrQSm\nTZtGZGQkqampHY/V1dVx7733Eh8fz6RJk7h40fL7UZpzdxnRVxdJJ60+gygL13ejVm8SeZc40TKc\nhsz+s43+JmAhfFciWsllHnvsMVavXn3NY3PnziU+Pp59+/YRGxvLvHnzLI4jzbk7eAdAP+0nnaiY\n2BqXjKrjyZcBD74g32164MnsP9vIUuDobDh1WLSSf5GXl4fZbL7msdLSUqZPn46XlxfTpk2jpMTy\nJ4l7vOLtjU6STs5G3s33PvqeNddwB5XovziTNcjsP9vIr4eyWdCog5d4WVkZycnJACQnJ1NaanlJ\n1L2qxdgDxQCD94tWYZE27/6UROg7bM6LASzAPWJ7Zfaf9RiB4VVQtNix16n37LzK5LrSNtaVXd3O\n7ZLFsVTV9iVQi+bc3NzMp59+SlFREW+++Sb79u3ju+++4+6777b5Yi5BerbmO52oGNgRm0abQb+h\nc0a8+Qcj3KI+s8z+s55AIySuh/VfOP5aX6eM6vyJFMj58VW/v/mlxbGysrKorKwkIyODyspKsrKy\nLJ5j8ZX/+9//nq1bt1JYWAhATEwMv/3tby0O7LIM1f53qAvhd3HUT7/GDFDNeA7iHuuuMvvPOuJM\nEPoRbHeCMdubnJwcCgoKaGxspKCggNzcXIvnWDTnb7/9ltmzZ+PpefmN4ufn160pukuQOBhCK0Sr\nuCntnr3ZGNUmWkaP8GIwHxEhWoZTiD4ns/+sYbARLr4Bh3aIVmKZqVOnMmLECPbu3UtcXByLFi1i\nxowZHDlyhAEDBnD8+HGeeOIJi+NYXNYYMGAANTX/moVt2rSJjIyMnqnXKzpIOqmIy6bVoN+2Uyb8\n+BvZuEPiRfzFRObvktl/lhjeBpv/DJeaRCuxjvfee6/Tx5cvX27TOBbN+emnn2bSpEkcO3aMsWPH\ncurUKd59912bLuIShPaCOG0nndSFjOeQv36NGeAId3LMDYrnJzTHMF9m/1kk/xwUzRGtQgwWzTkr\nK4tvv/2WLVu20N7ebtVCtksyoi8YjotW0SWqRzQbY4xAu8VjtYoHQ1lBiGgZDkdm/1nGU4Ghu6Ho\nA9FKxGFxzfnvf/87Fy5cYOjQoWRlZXHhwgU+/VQDOZLOxNsfkraKVnFTvovNo8loOaRHq3gQxPtk\n4OozSZn9Z5lQI/RbAxvd2JjBCnOeNWsWwcHBHb8HBwczc+ZMR2rSHrmZ4Knd2hT1wbewN1Dfyxl7\nuZPTuLZhhcjsP4v0NYH3O1CxTrQS8Vg0Z29vbxoaGjp+b2howGh07TfRNSgGGHxAtIouUU1hbOyl\n74wyI7l8QZBoGQ7FX/WkXGb/3ZRMA5x6GY5rP8fLKVhcc77//vuZMWMGM2bMQFVV5s2bxwMPPOAM\nbdogPQv8NFJRpRMO9rqFBpN+2055Eso7DBYtw6HI7D/L5DVD8UvQ3ipaiXawaM5PPvkkH374IX/4\nwx9QVZX77rvPvcw5U7s1NJoC86gIOoee12l3cAc1LrycIbP/bo4C5J2AogWilWgPi+bs6+vLo48+\nyqOPPuoEORqjzyAI3SVaRaeohiA2xYaAouf6GfkUEiBahEPxP5XBBzL7r1P8DJBSBkX/EK1Em3Rp\nzs888wyvv/46EydOvOE5RVFYsWKFQ4VpgpwAzU5Kj/S6g1oP/W4CehHJWy7eQTv63EAKZPZfp0Sb\nwP8T2Kz9yrvC6NKcH3nkEQB++ctf3pCurei43ZHVhPaCOG2uNbf4Z1NuPo9mPzks4vodtGX2X9ek\nmODMfNh3VLQSbdOlOQ8dOpTW1lYWLFjAX//6V2dq0gYaTTpRDb6UxPYCRbtr4ZZw9Q7aMvuva3JU\nKP8zNGk3MlUz3HTqYjKZqKqq4vTp087Sow00nHTyfeSdnPfSrzF7EefSHbRl9l/X5NdCyfPSmK3F\n4obgoEGDyMvL4+677yY6+vLGhqIoPPfccw4XJ4ycTPAsEq3iBlRTJNvC9GvMlztoj3PZDtoy+69z\nTArk7IOipaKV6AuL5hwTE8MDDzyAoihWdYzVPYoBUrWZdPJ9xChaDdqvJ90VrtxBW2b/dU6wERIK\nofhr0Ur0x03N+fz58+Tm5pKfn4+vb+ctW1yONG0mnajGUMpDGiwfqFG8SWShi3bQltl/nZNgApZB\n+W7RSvRJl98vFy5cyJAhQ3jzzTfp37+/+xQ7GqrNZYPq8NG0GPVZRN+VO2jL7L/OSTPChdfhsDTm\nbtPlzPmdd96hvLyckJAQDh48yDPPPMOkSZOcqc359BmoyaQT1WhmW5hOKo13gqt20DaoCi0y++8G\nRrZCyZ9uk+QYAAAgAElEQVSgtVm0En3T5VSmvr6ekJDLtXUTExM5flx7YWV2JztQk9FPZ8LH0GLU\nZ9EBLwbwnot20PY/lcEqmf13DfmnofgP0pjtQZcz54MHD16THXj17y6ZIRgSo8lOJ6ohkG1hLaJl\ndAsj3qxw0Q7aMvvvWrwVSCuHor+LVuI6dGnO1/e7+o//+I+On2+WITht2jRWrlxJREQEO3fuBKCu\nro6HHnqIbdu2kZmZydKlS/H39wdgzpw5vPHGG3h4eLBgwQJGjeqiHbmjGZEExhNirn0TzoaPo8mo\nz43AasZzyAU7aMvsv2sJN0HYSijZKFqJdli4cCGLFi2iubmZvLw8XnvtNZvHUFQ7t9Jet24d/v7+\nPPLIIx3m/OKLL3L06FFefvll/uM//oPevXvzy1/+kurqavLz8/nyyy85dOgQv/jFL9i69cbkD0VR\nUKfaU+V1ePvDDAU8tRWmphr8+TplDA0m/c2cvUjldYajyXWiHpDQHMP8khyZZPJP+pmg7m34/pBo\nJVfxrXJDyQlbURSF5ertVh17r/LlNdc7d+4cQ4cOZdeuXfj4+HD33XfzzDPPcMcdd9ikwe7fN/Py\n8jCbzdc8VlpayvTp0/Hy8mLatGmUlFwOVSspKWH8+PHEx8czevRoVFWlrk6AQWZnas6YAc6HjdOl\nMZvw42MX7KAts/+uZZgCJ17SmDFrAB8fH1RVpaamhsbGRhoaGm7wRGtwymJgWVkZycnJACQnJ1Na\nenltt6SkhJSUlI7jBgwY0PGc01AUGKK9pBPV4Mv2MLt+qXEaR7iT45bzm3RFlMz+u4b8BtjyPNTX\niFaiPXx8fJg7dy69e/cmKiqKkSNHkp2dbfM4Vr+Dmpqa8PbuXnaXLV8xulrPnrnzXz+PiYAxkd2S\nciMD0sBvu50Gsx8Xzflc9NDflrcXqS7XQTtY9eZrmf0HgBEYcQSKCkQruYrzhXCh0O7Dnuoiyui7\nwu/ZW/g9AJ052+nTp5kxYwa7d+/GbDZz//33s3LlSiZMmGDT9S2a8/bt2/ntb3/L7t27OXToENu3\nb2fBggX85S9/sfoiWVlZVFZWkpGRQWVlJVlZWQDk5OSwZs2ajuP27NnT8dz1zEy1+nK2kajN5IED\n5kBAX/WaFYysZhiutJzhrZr4rnKEzP4DAo3QtxjWrRat5DrMYy7/u0LVLLsM+wn3dP7EmH/+u8Ks\nKdc8XVpaSm5uLklJScDlVn9FRUU2m7PFZY0//vGPzJ49u6MDd3p6OmvXrrXpIjk5ORQUFNDY2EhB\nQQG5ubkAZGdn88UXX3DkyBEKCwsxGAwEBDi5M0bcKedezwraPXtzxFd/fQHbyOM7F4rOMKjQUJXN\n1jPBlg92ceJMEPIBbNOaMWuQvLw8Nm/ezLlz52hubmbVqlXcfrt1m4tXY3HmfOLECQYP/lcDzubm\n5pvW2Zg6dSpr167l7NmzxMXF8fzzzzNjxgweeughBgwYQGZmJrNnzwYgMjKSGTNmMG7cODw9PZk/\nf77N/4Ee4R8CQd8595pWcNacobt6zSYC+CtJomXYlaDT6Sw7GiVahnCGGOHIHLhQLVqJPggMDOR3\nv/sdkydPpqGhgfHjxzN27Fibx7EYSjdr1izS09OZOXMmy5cv54033iAoKIjf/e533RZvKw4Lpcsc\nDrdpLzizOHkSZ730Fdt8jnv5ENcxsrjafizY7qi1NP0w8hKUvKyzjD87hdLdqf7NqmNXKVN6fL3O\nsLis8cwzz7Bt2zba2tq48847CQ4O5umnn7a7ECH01l7m2iW/TN0Zsxdx/I0I0TLsRkJzDAu2D7Z8\noAujAPmnoPiPOjNmF8KiO23cuJGZM2eyY8cOKioq+O1vf8t7773nDG2OJ0Z7AZonzX1FS7CZbS5U\nca5Xq5klW1xrU9NWfA0wbBsUzRWtxL2x+I76n//5H77++l+Vsl988UXXKB8aEQ9+2krXVhUv9gTr\na9bsSQZF+IuWYRdC231ZuX04Da2uFaNtC9EmiF0BZcstHytxLBZfhStWrODuu+/G09OT1atXs2fP\nHtcoetQvATgiWsU1NAYOp8l4SbQMq1Ew8TnpomXYBV/Vg/KKEZxscM1OLdYw0ATVc2GvGxSg1AMW\nzTksLIwVK1Zwyy23MGzYMD7++OObFj7SDQnaW0g7ao5AT7HNreSz3wVC54yqwoWDOex044L5ue2w\n7QVo1tcXN5emS3P29/e/xoRbWlo4dOhQhznX1tY6RaBDUBSI2CNaxTWoxlD2BerHmD0IYpmLdNH2\n/T6Tz467zoamrYw+D2vn0Hm6m0QYXZqzSzdzTUgBL231z6k159Cu6Keg/knGUYv+60z0upDMW/sS\nRMsQgpcCmZWw9n3RSiSd0aU579mzh+Tk5E5LeAJkZmY6TJTDSQoTreAG9pv9AH1UkfEmgb+jvXto\nKwmNsczbkWL5QBckzAgRX8DG9aKVSLqiS3N+5ZVXWLhwIc8991yna8zffvutQ4U5lDhtmWCbVxLH\nfS6gl/CtMvJ0390ktjWUxVuGopd7bk+STFBfALsPilYiuRldmvPChQtpb2/nj3/8IyNHjnSmJsfi\n5QuhFaJVXMMZ8xBQ9LGM5MFQivETLaNHhLX7sXyre5b/HKbA7hehQcdbRu7CTac/BoOBn/3sZ87S\n4hySUkBDzVJVFL4zt4mWYRUKJj5jiGgZPcJf9aRs50iqm1yvG7gl8uth8yxpzHrB4nfTiRMnMmfO\nHH1HZ1xNH23N+i75D+OCZ6NoGVbRwlhd9wQ0qQa+35/LnhrXSJqxFpMCIw9B0UtAu2g1EmuxGOf8\n6quv0tDQwHPPPYePz+WatroOpYvVVlbgSXMf9BDb7EEwS9F3VIPHiaGsO6n/jUxbCDZCwlooXmP5\nWIm2sGjOLhVSFxgGgftFq+hAVXyoDNLH/T3GOC7qOHQu6txAFh2IEy3DqfQ2QftfobxStBJJd7C4\nrHHLLbdY9Zgu6N9fU5vzjUEjaNHQ+ndXeNOHT3QcOpfQkMCiXQNEy3Aq6UY49xockcasW7qcOV/p\nGnv69GnOnTvX8Xh1dbWYDtn2oLeGnBk4bA5FD0samxiJpj7VbCDuUjhvb81Ar/q7w6gW2PAitGv/\nc19yE7o05/nz5/P6669z4sQJhg4d2vF4QkICzz77rFPE2Z1oDS1pmCLZH6B9Y/Ygi006DZ2LbA/g\noy05XGrXd0y2tShA3gkoWiBaicQedGnOzz77LM8++yxz5szh5z//uTM1OYaoPuCrnfrNF8xZqEqL\naBk3xYAnK9BnN5BA1Yt15SPcpmO2vwGSS6HoM9FKJPaiyylFWVkZJ0+e7DDmzz//nIcffpi5c+fS\n0KDD0lX9tLUZtN+s/dKUTYzhMB6iZdiMp2rk8HfDOVCnzxm/rQQYIOYfsFkas0vRpTn/+7//O56e\nl2cd+/fv57HHHuOWW26hvLyc3/zmN04TaDfitRNL3OadzEkfbYciehLCBzoMnVNUaD+axabqENFS\nnIIRSNoAe8tEK5FcTX19PT/+8Y/p378/AwcOZNOmTTaP0eWyRltbG6GhoQDMmTOHRx99lEcffZSH\nHnpIf+ncBiNEaGfb+rR5EKDtTdXDjKNeh/Uzws+m8k5VjGgZTiP3IBSvFq1Ccj2///3viY+PZ/78\n+ZhMJurr620eo0tzNpvNNDQ04Ovry/Lly/n4448vn2Ay6S/2uU8KeO4SrQIAFQN7zNreRvemL8vR\n38wzob4P83YniZbhNEbXwNololVIOmPNmjVs3LgRb+/Ly5dBQUE2j9Hl1Oihhx4iNzeXW2+9lb59\n+5KVlQXAvn37CA4O7qZkQfQNFa2gg5aAbGo9tLPE0hnFjEBvoWfxLZEs3JKG3nR3l+FtsPY10Sok\nnXHs2DGampqYMWMGOTk5zJ49m6amJpvH6XLm/JOf/IQJEyawd+9eRo8e3fG4qqq88cYb3VMtiriz\nohV0cMKcAJwXLaNLTORQhq9oGTYR1RbEe1uyXaYDuCWGGGHzn5GdSxzM99WdBxHUFW/h4obO69wD\nNDU1sXfvXl566SVuvfVWfvrTn/Lhhx/yyCOP2HR9RVVVzf+JFUVBndrNk7394akGMIqv+KIa/Phi\nYD4tRm1WoTPgxQp+xDEdRWgEq95s2DaWwxd9REtxCn1McPY1qD0jWomG+Vahp7amKAqstXKM0Tde\nLyUlhcrKy/tcq1atYsmSJbz33ns2aXD9qUZSsiaMGaA+aIRmjRmggbG6MmYv1cjeyhFuY8yhRmh5\nRxqzHujXrx8lJSW0t7ezcuVKbr31VpvHcH1zTtTOV/TDZrNoCV3iSRgfECtahk20Hx3GljM62//o\nJt4KRK6G4/tEK5FYw8svv8wzzzxDZmYm3t7ePPDAAzaPYbEqne6JOSZaAQDtHjEc8NduuvZBxtKo\no6pzCc3RzKvqJVqGU1CAIduhtFi0Eom19O/fv1uxzVfj2jPn4EgI1EajtAvmYZoNJPCmP5+h3Vn9\n9XipRr7YnSZahtPIOwGln4hWIXE2rm3O/ftqxhD3mbW7lltELpq5UVYQdHYgh+q0s1zlSPIaZCEj\nd8W1zbm3aAGXafUZzClvbWYEGhnOVvSzoRbVFsRfK/uKluEUsoB1L4tWIRGFa5tzlDZ2T6rNyaIl\ndIoRb/7OQNEybGLvgXRaVdd+2QKkmGDny8ief26M677KY5LA57RoFagY2RPcLFpGp9QxlpM62hNO\naOhN8ffayfZ0FL1MUD0XmnRWJUFiX1zXnPtpo/hNc0AuFz20Z86ehPOhjkLnAlRPPt41WLQMhxNo\nBM8P4exx0Ur0SX6Ctqs92oLrmnO8NmpOHw/RpgHuYyxNOvrzqydTOdPk2oXzPRToUwiHdohWoj88\nTSrDg7+naLF2qk/2FP28O23BaILw3aJVoBoC+S6wRrSMG/BiAKvQT/JGXGsYH+2PFy3D4QzbA+Vf\ni1ahP0IDVfrVH2LjJ4dFS7ErrmnOiQPBQ/zM+WLwcFoNWtvRUSjUUeicSVXYUJmOXvR2l9HnYKNt\npRckQFJUO147d1OxQfz+kr1xUXPWxqzwkNn2Gq6OxsAIytF+i6wrRNX0Z9f5QNEyHMrIS7B2jmgV\n+mNYn0ucXLmNEwddc+dUP1v1tqCBEqHtnnFU+Z1HSzM+Iz58RIpoGVYT2u7H0gpthiHaiwwDbHpR\ntAr9kd+nnnWLd6Fq7YupHXE9c/YJBLP49eZzwZmgaKuofg3jqNZR/Yzqw2k0tulHr60kmWD//0Lb\nJdFK9IPRoDI89CxFBQdES3E4rres0T8ZDOJLVO8N0dat9SKKD9FGeKE19G7qxZdHo0TLcBgRJrj4\nNtSdE61EPwT6qqS2H2H9h65vzOCKM+feXqIVcMk3jTNetjd0dCR7GEOLTj6LfVQTKyuGiJbhMPwM\nELwc9h4SrUQ/xIe3Y9i1l+27tRf95Cj08W61hV5HRSvglLmfaAnX4MVAvkA/m2p+ZwZypF4/9T5s\nwQCklMLeMtFK9ENaQis135RT5UbGDK42cw6JBv8qoRJUxYM9wbY3c3QcBr4mCy1tTN6M6LZg3qlM\nFC3DYYw4Aus/E61CP4xMbGTTkl20XXLhnb8ucK2ZswZKhDYH5NJgahEr4ioURrJLJ6FzigoV+zJc\ntlHr6IuwvkC0Cn2gKCr5vc5T/PYOtzRmcDVzThDfn+9oiHY23Uz48TEDRMuwmvj6REqq9VP03xZy\nVVj7imgV+sDPW2Wo53GKlu4VLUUorrWsESX2j6kag9kboJ1WVOcYx2mdhM4Fqd68v2uQaBkOYbAJ\ntv4REB9EpHmiQ1T8D+5n8zYZxuLUmfOyZcsYPXo0gwYN4q233gJg5syZxMbGkpGRQUZGBqtXr+7e\n4LH9wVts8kld8HDaNBDGB+BFDB+hn1C0lhOpXGjRbreY7hJvguNvQIu2Qt41ycDYNi5t2sk+FzHm\ntrY2MjIymDhxYrfOd9rMuaamhlmzZrFp0yY8PDwYN24c999/P4qi8Nxzz/Hcc8/17AL9ogCxM+eD\nZn9AGzvKFYzmkk5WreIvRTD/gDar9/UEsxH4K5w/JVqJ9slNbGbrsh20NLrO+vLrr7/OwIEDqavr\nXhckp717N2zYQGZmJmazGX9/f8aOHcvGjRsBUFU7zDbjxObXt3v25oivNpY0vBjMGgJEy7AKD9XA\n2t2uV9jIS4GYr+CI61SwdBijE2rZ9PZ2lzLmY8eO8fnnn/P4449329+cZs75+fmUlpZy6NAhTp48\nyeeff86GDRsAeOONN8jNzWX27Nnd+5QxeUKY2JTts+YMUMQbjIKBLxmGXswu/MIA9tT4i5ZhdzJ2\nQUWRaBXaxstDZXjQ96x1oRrMV/jFL37BSy+9hMHQfYt12rKGn58fr732Gj/72c+oqakhNTUVb29v\nfvKTn/D//t//o7a2ll/96lfMnz+fX/7ylzecP3Pnv34eEwFjIq96sldf8BD7Bz4SqI2NNxOZVCI+\nS9IaAlUv3qvUVsKOPcivhqKPRKvQNgnh7XgdOMDGL+2xvrz1n//sTGEXjx8qhKqunoTPPvuMiIgI\nMjIyKCzs+jhLKKpd1hRs54EHHuA///M/yczM7HisvLycJ598kuLi4muOVRQFdepNBsseCWOLb3KA\nY1EVH1am5tGugcnqHh6kUCdLGpFnB7G4Qj+hftYwqhnW/0m0Cm0zPLGJHR9VUF/b6qAr5PZ4qVRR\nFBhr5RjfKtdc7ze/+Q3vvvsuJpOJpqYmamtrmTJlCkuWLLFJg1N3jKqrqwFYs2YNO3fuJDMzk5Mn\nTwLQ2trKsmXLuOuuu2wfOExsRGCrb4omjNmTcArRxxKBn+rBJ/tcKxNwmALFsvxnl/h4qowMPc3G\nt8sdaMzieeGFFzh69CiHDh3i/fffZ9y4cTYbMzg5zvm+++6jurqagIAAFi1aBMCvf/1rtm/fjqen\nJ/n5+cyYMcP2gUPEdj256NsLEN/EtUZHa81BNUnUuFDo3AAT7H4RVPF5UJqkb1Q76q59FO/Uxqa5\nM1G6uRclbFnDFiwua/wsDvzFFTzal/BDKoPPC7v+ZQx8xqMcQ/uG562aWFc23mUatkaboHU+nBZf\nc0uTjOrbSNmyCpobnPXJJXZZw17oP0PQwxt8xb4rjvuJL3TkyWBdGDNAWF2iyxhzoAF8P4YD0phv\nwN9bZbDn96x/64hoKbpEH1kKNyMqQej/ot0jlloP8elf3zFQtASr8FQNfLY3SbQMu2BSIHEdHNgu\nWon2SO7VhvlAJZuWS2PuLvqfOUeFCr18k6/4UDAPgnWTdBJV34eTDfqokmeJnH1Q/JVoFdojv089\nG5buprXFdZJKRKB/cw4T+1W+xi8E6F56pr1oYJguymyaVIUv9or/MLMHoy/A2qWiVWiLYH+Vfq0n\nKCo4JlqKS6D9d7QlQsQuKZzyFX8L1xInWoJV9GpMoOqir2gZPWZEG6x9TbQKbTE4rg3vnRWUrZLG\nbC/0P3MOEldVRlU8OeEjdtbsRQr70f7mmkGFb/f1Fy2jx6QZoeSPolVoi9G961j3biXtrZoP/NIV\n4qd9PcHkCX7iNhzafJJpNYhdVzuIPmogxzfF8Z3Oa2gkmuDQq9B2SbQSbRAWqJJhOMLaRbulMTsA\nfZtzVMLlKZkgLvqKXU4w4c+X6KNzSPEBfadphxmhaTHUukap4R6TntAKm3ey7euToqW4LPo258gw\noZc/6yd2JniJYTTr4E/YuzmGHef00/37enwNELYSTuwXrUQ8BoPK6Lgatr+zhTPHxYeQujL6XnMO\nF7vWesJXbMp2MQlCr28tmw/qd9asAAM3w+ZNopWIJ8qsEn76MGuXyO4BzkD7066bESIuM081RXLe\no17Y9b3pq4uu2gktkZSd1sfSS2eMOgabV4hWIZ5hfVpoWlfOznXSmJ2FvmfOQdXCLt3s219ocf1j\nDBF2bVvYdThZtIRuk18PRW+JViEWD5PK8IjzFBXsEy3F7dDvzNloAr/Dwi5/wS9C2LWNeLMasZmR\n1hDXGsb6k9rX2Rk5QNErolWIJS6snaSagxT9VRqzCPRrzpEJYBQXxlbtK67zicpQLqKNzis34+AR\nfc6aB5lg+4uAG2cf5yY2c/6rcipLz4iW4rbo2JzDhV1axSg0+aQM7Rep79VqZs0xcX+j7hJngpP/\nB81iS4QLw8tDZVTEGTa9vZ2LF1pEy3Fr9LvmHCGuT16bzwBajGKqqnsRRxk+Qq5tCyePJ6OXwv9X\nCDaC4T04971oJWJIjGzHULmf9V+Krk0uAT2bs1lcGFuDbwIgxpzPkIbWTS+qLYhFh6NEy7AJTwVi\nv4ZdFaKViGFkYhNbP6ig8aLrto/SGzo259PCLn3ONxAQM7vYivaXCs6fHIDWP0CuJ7MCNhWKVuF8\n/LxVhnhXU/x2lWgpkuvQpzkbjEIjNU74iSmu4EkIlRrvdhLR7s+Sg71Ey7CJ/NNQ9KFoFc6nf0wb\nzVv3sbGyRrQUSSfoc0MwIh6MYr5+qUYzZzzFbAa20R+tz0gbTw1A1bjGqxnVAkVvilbhfPISG6j6\n+1YOS2O2O0ePHmXs2LEMGjSIMWPGsGzZsm6No8+Zc1QEcEjIpZt9U4QlnxwjVsh1rSVE9eWD/fqo\nLQ0wVIENL4pW4VwCfVVSlJOse1s2PXQUHh4evPrqq6Snp3PmzBmys7OZOHEiAQG2dSvS58w5XFyk\nRq1fpLBrbyZI2LWtQT3dn1ZVHy+p/iaofAXa3Wj/a2BsGwF7dlPymTRmRxIVFUV6ejoAYWFhDBo0\niM2bN9s8jj5nzqHiCuqe9vUEnF9Tw4tYjmv4zxWkevP3vfooxBRlggsLoKFWtBLnkd/nIsXvVtJ2\nyY0za2zEaEUWksrNc5X2799PRUUF2dnZNl9fu+/2mxEkJmtJReG470Uh125C2x2rPc/2o6ld+1mL\nAQbw/zvsd5Om0CEBKn2ajlFUcEK0FN3Rtqeq8yeaN0FLicXz6+rq+OEPf8irr76Kn5+fzdfXnzkr\nBvAXE6nR7t2PJqOYWftBtBs37K968re9fUTLsIgRSNoA27aKVuIc0hJa+f6bSrYccdN0x55ysqtw\n3b7//HeFOTcccenSJaZMmcLDDz/Mvffe263L68+cw+PAJMacG3z7cPmLjLMxUIJ2Wzz5n0+ivlX7\nL6XcA1C8WrQKx6MoKvnxdRQtqUSVqxhOR1VVpk+fzuDBg3n22We7PY4+dm+uJkrchtx5XzEbct4k\nUqvRQke+qgef7O1r+UDBjL4Axe+KVuF4IoJVhrQfZu1iacyiKC4uZunSpXzzzTdkZGSQkZHB6tW2\nzwq0P925nnBxBeZP+ol5tddquNCRuSaRCy3aTowZ3gZrXxOtwvFk9r5E1ee7KT8lrgmFBEaNGkV7\ne8+9Qn/mHCoo+cQQyCmvGkQkgexBXO3om+GlGlmxV9sblWlGKPuTaBWOJz+uhqJFe0TLkNgR/S1r\nmM8KuWyLoOQTA15s1mgVusiLfahuEhdzbok+Jjj0OrSKbfXocEb3rqNoiTRmV0Nf5qwo4F8l5NJ1\nftFCrutBf1o0+GcyqQZW7u0nWkaXhBmhZTHUunit+BGJTaxdtFu0DIkD0N67/maExYJJzDTojK+Y\nGeIZjXbY7tWQwLF6bc7ofQwQ/jkc3y9aiWNJT2ilZMlO0TIkDkJf5hwlLtb3mK+YTtu7NNgr0KAq\nfLW3v2gZnaIAg7dA5UbRShxLv+h29n+6U2b8uTD6MudwXyGXbffsQ4PJ+S17PAikHO2t6cY3xnOg\nzvaMJ2cw6jiULRetwrFEmVVq11fINlIujr7MWVBNjUY/UREJ2itar6iw9oA2Z835DbBuoWgVjiXQ\nV8Vv/z5Oyaw/l0df5hwspvvIed9gIdc9gfbKbyY0x7L7vG2lD51BNlD0smgVjsXDpNKn/jAHdsge\nf+6Avsw5QEza9vd+IlK2YQtiPhRuxqYDA0RLuIGBJih/kZuXB3MBhvmdorzwlGgZEiehH3MO7QUe\nzv8qpxp8Oent/NqSXkRSpbGWVAnNUWw7q62a0nEmOPUXaHbxb/mjYy+w8VNxrdkkzkc/5iwoUqPV\nZyCqgGXfFrS3rltelSxawjUEGcH4Hpx18WqYeYkNrH33O9EyJE5GP+YcLiY6oM4vRsh1DyMm6aUr\n4i9FsPFUiGgZ19CvBKoqRKtwLNl9WlhXIGOZ3RH9mHNom5DLnvEVkWihUEqggOt2zXeHtbXWnGaE\nzZ+JVuFYBsW1Uf7+DjFVaiXC0Y85m8XsUB/3df5ipje9OaOhEqGxraEUnggTLeMaLn0hWoFjSQhv\n58TqXTQ3iJmUSMSjH3MOcH5foXbPOOo8nJ8uflFjJUKPHNVWvHUWsHu9aBWOIzRApX37Hs5Xy9Kf\n7ox+zNnT+b37mnzFFPbZj7iGAtcT0xbMF0e1o0cBzn0qWoXj8PFUiTh1kKN760RLkQhGP+YsgAu+\nzt8AUzBRgpg09c6oPq6tWfPwNjiwXbQKx2AwqAxSjlNZ4uKl9CRWIc35Jpzydb4pedKfRo2sN0e2\nB/CPKjHRKp1hUuDw+6JVOI4RYWfZvPq4aBkSjSDNuQtUxYvjPs5PPjlPb6dfsyvqTmps1twIx/eJ\nVuEYRveuY/0HB0TLkGgIp5rzsmXLGD16NIMGDeKtt94CoK6ujnvvvZf4+HgmTZrExYvOX1vujFaf\nFNoN3Y9h2ll4rlvnVSAuKuJs4a6On8Pa/fj0QKwwLdfjY4DK6xu0ni8UIaVndKJZ+wXzt4oWoDuK\niopISUmhX79+vPHGG90aw2nmXFNTw6xZs/j0008pKSlhwYIF1NTUMHfuXOLj49m3bx+xsbHMmzfP\nWZJuSr1vz4xpV6HtoX8m/NgmsEToucJ/ZXRcqu5Pm4a+WGVdgDPXf+O/UChCSs+4TrM+CuZLc7aV\nZ555hvnz57NmzRrefPNNzpyxfR/Bae++DRs2kJmZidlsxt/fn7Fjx7Jx40ZKS0uZPn06Xl5eTJs2\njbV0nmMAAAkLSURBVJKSEmdJuiln/ZyfkWhgAO0aMESz6sPf9munA0uQEbYvFq3C/siC+a5JTU0N\nAPn5+SQkJHD77bd3y9ec1n07Pz+fp556ikOHDuHt7c3nn3+Ol5cXZWVlJCdfrtmQnJxMaWlp5wP4\nZDpLKgB1vtEE9aALiTfnCcK2OtDnGEySwEp0Z/EmiWB8LiSS6iv+Q+IKyWdhTyhc/+c4WQvR2m1j\n2ClXNHt7qPhWHSIg0YQT34bd4uRJD6KjtRNBZImtdproBwVZ3pi/dEml4bo8tas9DWDgwIFs2rSJ\nCRMm2HR9p70q/Pz8eO211/jZz35GTU0NqampeHl5oarWresqA5z91arn11s8q8zGM/7S42v2lNJZ\nS0RLuIGb/SVObpnlNB32QpeaT84VLcHp1NRkWXWcv7+/Q67v1I/siRMnMnHiRAAeeOABxo8fz9at\nW6msrCQjI4PKykqysm68IdYauEQikdiDnnhOVlYWv/rVrzp+r6ioYPz48TaP49TvrtXV1QCsWbOG\nXbt2kZmZSU5ODgUFBTQ2NlJQUEBubq4zJUkkEoldCQq6XPO8qKiIqqoqvvrqK3JycmweR1GdOC3N\nz8+nurqagIAA3nzzTbKzs6mrq+Ohhx5i27ZtZGZmsnTpUod9TZBIJBJnsHbtWp544gkuXbrEz3/+\nc37+85/bPogqkLVr16rJyclqUlKSOmfOnBuer6ysVHNzc1UvLy/15ZdftulcR9ETzQkJCWpqaqqa\nnp6uZmVlOUuyRc1Lly5VhwwZog4ZMkSdOnWq+t1331l9rtb0avUef/rpp+qQIUPUtLQ09a677lJL\nS0utPleLmkXcZ2vvU2lpqWo0GtWPP/7Y5nO1hFBzTk9PV9euXatWVVWpAwYMUE+fPn3N89XV1WpZ\nWZn629/+9gajs3SuFjX37t1bPXv2rFN0Xo0lzRs2bFAvXLigqqqqLl68WH3ooYesPldrerV6jy9e\nvNjxc2FhoZqXl2f1uVrULOI+W3OfWltb1bFjx6oTJky4xpxF3eOeICxeyppYwPDwcIYNG4aHh4fN\n52pN8xVUJ29uWqN5+PDhHetkEyZMYO3atVafqyW9V9DiPfa7Km6+pqYGb29vq8/VmuYrOPM+W3uf\n3njjDe677z7Cw8NtPldrCDPnrmIBHX1uT+jpdRVFYdy4cUyaNIkVK1Y4QuIN2Kp5wYIFHRE1Iu5z\nT/SCtu/xJ598Qu/evZk2bRoLFy606VwtaF6wYEHH486+z9boPX78OMuXL2fGjBkdGq09V4toO/rd\nxSguLiY6OprKykomTpxIdnY2UYIa13bGmjVrWLp0KRs2bBAtxSo606vlezx58mQmT57MBx98wKRJ\nk9i2bZtoSRa5WvPkyZM7NGvxPj/77LP8+c9/RlEU1MtLtkL19BRhM+esrCz27NnT8XtFRYXVYXQ9\nObcn9PS60dGXm7ampKRwzz338I9//MPuGq/HWs07duzgiSeeYMWKFQQHB9t0rlb0grbv8RV++MMf\ncuLECRobGxk2bJguXstXawbn32dr9G7ZsoUHHniAPn368Le//Y0nn3ySFStWCPOLHiNywfvKIv2h\nQ4duukj/+9//vssNQUvn2pvuaq6vr1dra2tVVb28aThw4ED1yJEjmtB8+PBhNSkpSd20aZPN52pJ\nr5bv8f79+9X29nZVVVV15cqV6p133mn1uVrTLOo+23KfHn30UfVvf/tbt87VCkLNubCwUE1OTlb7\n9u2rvv7666qqquq8efPUefPmqaqqqidPnlRjY2PVwMBANTg4WI2Li1Pr6uq6PFfLmg8cOKCmpaWp\naWlp6rhx49S3335bM5qnT5+uhoSEqOnp6TeERom4z93Vq+V7PHv2bHXQoEFqenq6+thjj6k7d+68\n6bla1izqPlvSezXXm7Ooe9wTnJqEIpFIJBLr0E7pMYlEIpF0IM1ZIpFINIg0Z4lEItEg0pwlEolE\ng0hzljiccePG8eWXX17z2GuvvcaTTz7Z6fG9e/fm3LmbN8h94YUXrvl95MiRAFRVVZGamgrA5s2b\neeaZZ4DLVcI2btzYLf0SiQikOUscztSpU3n//feveeyDDz7gwQcf7PT4K2m3N+NPf/rTNb8XFxff\ncMywYcN4/fXXAfj22291k/kokYA0Z4kTmDJlCitXrqS1tRW4PLs9ceIELS0t3HXXXYwcOZK33nqr\n03MnT57M0KFDGTduHJ988gkA//Vf/0VjYyMZGRk8/PDDQOetggoLC5k4cSKHDx9m/vz5vPrqq2Rm\nZrJ+/XoSExM79NTW1pKYmEhbW5sj/vsSSbeQtTUkDickJITs7Gw+//xz7rnnHt5//33uu+8+/v3f\n/53Vq1cTGhrK+PHjGTlyJCkpKdecW1BQgNlspra2ljFjxjB58mT+/Oc/8+abb15Tm+Jms+2EhASe\neOIJAgICeO655wAYM2YMK1eu5N577+X9999nypQpGI2WG3pKJM5CzpwlTuHqpY0PPviAKVOmkJKS\nQlJSEmazmfvuu6/T6mbvv/8+t9xyCyNHjuTgwYPs3LmzW9dXryuE8/jjj7No0SIAFi9ezGOPPdat\ncSUSRyHNWeIU7rnnHr7++mu2bdtGQ0PDDTNdVVVveOzgwYPMnTuXjz76iJ07d9KnTx/Onz/fretf\nP/aIESOoqqqisLCQtrY2Bg4c2K1xJRJHIc1Z4hT8/f0ZO3Ysjz32GA8++CC5ubns2bOHAwcOcP78\neT755BPuueeea845ceIE4eHhhISEUFxcTHl5ecdz4eHhNDQ0WH39hIQETp8+fc1jjzzyCD/60Y+Y\nNm1az/5zEokDkOYscRpTp05l586dTJ06FUVRmD9/Pk8//TQTJkxg+vTpHQXRr8xyR40aRUJCAikp\nKbz22mvceuutHWM9/fTT5OXldWwIXj0z7uzn22+/nc2bN5ORkdER2fHggw9y/vx5pk6d6tj/uETS\nDWThI4nbsmzZMr799tuOriQSiZaQ0RoSt+Tpp5+muLiYzz77TLQUiaRT5MxZIpFINIhcc5ZIJBIN\nIs1ZIpFINIg0Z4lEItEg0pwlEolEg0hzlkgkEg3y/zdaOI+CUTAKRsEgBADPuDd0fWFHXgAAAABJ\nRU5ErkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 13, + "input": "plt.contourf(sigma_mesh, strike_mesh, prices['acall'])\nplt.axis('tight')\nplt.colorbar()\nplt.title(\"Asian Call\")\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")" + }, + { + "source": "Plot the value of the European put in (volatility, strike) space.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 14, + "text": "<matplotlib.text.Text at 0x32ee190>" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAEZCAYAAABhIBWTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl81NW9//HXd7JvZCGQhWwQQgiQkABJ2LKwiCAiIIgE\nhVYsIniLFtHb/uy12Gu917bXipSyqFBbi3VHBAFBDWHLnrBmYctCNhIg+zqZ+f0RiCDZM5nvTL7n\n+Xjk8SAz3/l+PwnJO2fOOd9zJK1Wq0UQBEEwSiq5CxAEQRB6ToS4IAiCERMhLgiCYMREiAuCIBgx\nEeKCIAhGTIS4IAiCERMhLnTIx8cHa2tr7OzsWj/WrVsnd1l9Kjo6GisrK+zs7AgMDGTDhg3cvHmz\n09fFxsbi6emphwoF4UcixIUOSZLEvn37qKqqav145513un0erVaLsdySIEkSW7Zsoaqqii+++ILY\n2Fh27Nghd1mC0CYR4kKPbdy4keXLl7d+npOTg0qlQqPRAC0t2jfeeINZs2Zhb2/P1atXyc7OZt26\ndXh5efH8889z8eLF1tdHR0fzhz/8genTp+Ph4cH//u//UlNT0/r85cuXefnll/H29mbVqlVcuHCh\n9bldu3YxatQoHBwcWLBgAV9//XXrc7GxsXh4eLBjxw6GDRvGlClTOHDgQJe+Rj8/PxYtWsT+/fsB\nUKlUXLlypfX5n//85/zXf/0XtbW1zJkzh8LCQuzs7BgwYADFxcXd/I4KQveJEBc61V4LWpKkTl+7\nZcsWnn/+eW7evImnpyezZs3CxcWFtLQ03NzcmDVr1j3H//Wvf+VXv/oVR48e5ciRI7z++usANDc3\nM3nyZEaNGsW5c+eIiIjgwQcfbH2di4sL+/fvp7S0lKVLl/L4449TW1vb+vz169dJT08nISGBp556\nimeeeaZLX3NWVhafffYZCxcubPd7IEkS1tbWHDx4EHd3d6qqqqisrMTV1bXT748g9JYIcaFDWq2W\nBQsW4Ojo2Prx/vvvtz7XEUmSmD17NnPnzsXU1JRz587R2NjIK6+8wsCBA/n1r39NU1MTaWlpra95\n4IEHmDdvHr6+vrz88svs27cPgO+//56xY8fy85//HDs7O1asWIGzszNJSUkAPPTQQwwdOhQzMzOW\nLl3K+PHj72ltazQafv/73zNo0CB+/vOfU15eTlZWVrtf87p163B0dOTJJ59k7ty5/OIXv+jwe9SV\n74cg9AVTuQsQDJskSXz11VdMnz69zec6Ex4e3vrvEydOMG7cuHuenzBhAsePHyckJARJkggODm59\nLiQkhPPnz1NdXc2RI0c4duwYjo6Orc+r1Wri4uIIDQ3l+PHjbNmyhZMnT1JRUUFdXR1nzpxh0aJF\nALi5ueHs7AyAqakpzs7OFBQU4O/v3+bXtXnzZlauXNnp1ycIchMtcaHHhgwZQklJSevnd7eo7zA1\n/bGdMHXqVFJTU+95PiUlhYiICKClJXv3OVJTUxk9ejS2trZMnz6d6Ohobt261fpRVVXFiy++iFar\nZfXq1URFRZGamkp5eTlhYWF90jJ2d3e/p687NTW19Y+ZiYmJaI0LeidCXOhUe8E0ffp04uPjSU1N\nJSsriy1btnT42uDgYMzNzfmf//kfysrK+OMf/4ipqek9re/vvvuO/fv3c+XKFf785z8zb948AGbO\nnMnZs2f5xz/+wa1bt6ivryc2NpaCggIaGxspLS3FxcUFS0tLdu3aRUJCQp98zTNmzGDXrl2Ul5fz\n/vvvk5mZ2frc2LFjKSsro6ioqFfXFoTuECEudGrevHn3zBO/00UxbNgwNm7cyJIlS4iJieEXv/jF\nfV0sP/384MGDFBQUEBISQn5+PgcPHrzn2Oeee4633nqLiIgIpk2bxiuvvAK0tHJjY2PJyspi/Pjx\neHl58X//939otVosLCzYtGkTv//97xk+fDjJycksXbq0wzo6097xv/71rykvL2fkyJGkpqbec50B\nAwbw8ssvExkZiZOTk5idIuiFJNYTFwzFtGnTWL58ueiLFoRuEC1xwaCINoUgdI8IccGgdLfbQxCU\nTnSnCIIgGDGdt8RXrlyJi4sLgYGBrY99+umnjB49GhMTk/ummL3zzjv4+fkxatQojh8/rutyBEEQ\n9Co/P59p06YxevRooqOj2b17NwBVVVXMnz8fLy8vFixYQHV1dZuvj4uLIyAgAD8/PzZv3tz5BbU6\nFhcXp01NTdWOGTOm9bGMjAxtVlaWNjo6WpuSktL6eElJidbf31+bm5urjY2N1YaEhOi6HEEQBL0q\nKirSpqWlabVarba0tFQ7dOhQbWVlpfbNN9/U/sd//Ie2vr5e+9xzz2n/9Kc/tfn64OBg7dGjR7U5\nOTlaf39/bWlpaYfX03lLPCIi4p676gBGjhzJiBEj7js2ISGB2bNn4+XlRVRUFFqtlqqqKl2XJAiC\noDeurq6t9z44OzszevRokpKSSExM5Omnn8bCwoKVK1e2eS9DRUUFAJGRkXh7ezNr1qxO73mQdWAz\nMTGRgICA1s/9/f1JTEyUsSJBEATduXTpEufPnycsLIykpCRGjhwJtDRs28q6u48BGDVqFPHx8R1e\nQ9a1U7RtjKm2NTtBzFgQBKE72sqW7hggSXS1T8DW1rbNHoSqqioef/xx/vKXv2Bra9tn02dlDfHw\n8HCOHDnS+nlmZiahoaFtHjtH+7m+ytKJixs/ZtbGhTxCPA1kyF1Ol3y08TIxG3377PymGhVTilTY\nl32jk/Nt3AYbn9XJqfSmSzXXusBRbzhjGO9KN56FjYGdH9eZWothnD9YQ2NxSecH98JUHZyjCujq\nNIupbQxQNjU1sWjRIpYvX878+fMBCA0NJSMjg5CQEDIyMtrMutDQUF566aXWz8+fP8/s2bM7vL7e\nu1Pu/msUFhbGoUOHyMvLIzY2FpVKhZ2dnb5L6jNXMWcTEdxkASZYyl2O7NQqDUeHqMnyWYLWxEnu\ncgyXdQnMToRl4WA/SO5qdMa64QqBD5pgOdRb7lL6lFar5emnn2bMmDG88MILrY+Hh4ezc+dO6urq\n2LlzJxMnTrzvtfb29kDLDJWcnBwOHz58z0qgbdF5iMfExDB58mSysrLw9PRk586d7NmzB09PT+Lj\n45k7dy5z5swBWhbyX7NmDdOnT2ft2rVs2rRJ1+UYAIlPcGE/y7BglNzFGIQs+3KO+k+l0WaC3KUY\nLgnwTICnGmCSLtqWhsGysZDAqdXYBNw/0aG/OHHiBB9++CHff/89ISEhhISEcPDgQdasWUNeXh7+\n/v4UFBTw7LMtb8kKCwuZO3du6+vffvttVq9ezcyZM1m7dm3rEsrtMYqbfSRJMrrulBux5xgYPeYn\nj2p5jOsM5hDN1MlSV0fOxt4kMFqPLWQtTLxuw6DivUg0d/vlsckQbWR/B3pcc8lY+OYWXM/TeU2d\niS2BaBfdnlOtsiMjw4fK1LO6PTEt3Sm9jTVJkrrenaKD6/WGCHEZ+NDEfOJp4ELnByuAd409gbkn\nUTUVyF2KYVObQ/ok+OE4aLr/R8/QNEsWZOUFcut4sk7Pq7QQF2unyCAHMzYxlRsswAQrucuRXa5N\nBUdGBFNnHyV3KYbNtBEmHIVf+IL3yM6PN3Am2gZGeqbi/MAkuUsxaiLEZSPxKS7sJwYLRstdjOzq\nTZs47G1OvsdjaCUxCNwhx2xYkgUPR4K5cTcCVGgYMfAUbvMi5C7FaIkQl1lLq3wKZSwUrXJJIm1g\nBYkj5tJs2X8HvnRCpYXRcbBqIIwMkbuaXpEkGGpzDM8l4p1YT4gQNwgSnzGYfcRgwU8HQ5WnxLKK\nQ37DqBw4R+5SDJ/tNXgkDeZFyl1Jr0gSeJkcZegTokXeXSLEDUguZmxismiV0zKnPNajmYs+S9Ca\nOMhdjmGTgFFx8NhkkIz7V9pdc4wRKyaBiYncpRgN4/4f75daWuV7RascgAz7co6NiKLJZpzcpRi+\nYSchZgKYmstdSa8MajpFwPIQVJZibKQrRIgbqPzbrfJSHlV8q7zcvI6Dvs6UuSxEK35kO+aZCE+O\nAgsbuSvpFaeGZEbF+GEyYIDcpRg88Rth0CQ+Z9DtVrkOFq8wYloJTrrWcNZ3ERozd7nLMWwu6bDc\nG6zt5a6kV+zrzzJmkStmgzq+Y1HpRIgbgZZW+SSu8ygmWMtdjqxybCv4fsQ46geIAbAODbwAKwYZ\n/dortvXZBD5khYXnELlLMVgixI2GxBcMYh9LscBf7mJkVWvayLc+li1zylX9Z8E0nbO/BE9awkDj\nDkCrxnwCo5uw8uu7FTaNmQhxI5OLGZuJpI45SEr+77s9p/yY/3Qa7MQdf+2yzYdlanAbJnclvWKh\nvk5geBm2QWIRuZ9ScAoYLw0qPsCLJJ7EAle5y5FVuXkdh4bakuMppiK2y7oEltwC74DOjzVgZs0V\njAm8iv1E4765SddEiBuxZKx4n4cxYbLcpchLkjjjVE6sf6ToK2+P5S1YlAd+Y+WupFdMNHWMGnqW\ngdM6XmNbSUSIG7lqTNhCILkswRTjnlbWW1Vm9XzrY8ll78fRmgyUuxzDY1YDj2TAGCNbv/cnVKjx\nd0nA5aH+s856b4gQ7ycO4MgeHscC437L3GuSxHmHW3w/cjK1DtPlrsbwmDbC7FSYYNzjCJIEvgOO\nM+RRsd6KCPF+5BpmbGYqNTyEhLJvW64xbeCIt2nLVnCmOt7RwNiZaGDaKZhi3F1PkgQ+FkfxXmrc\n68b0lgjxfkaDin/iSTxPYIGb3OXILsu+nMMjJ1DtNEvuUgyLCphyDGYYf0vWQ4pj+PIpoFJmnCnz\nq1aANKx4j4dRMUXuUmRXb9LE955wYdgSNGbGPWdapyRaNpl4yPhbsi7qE4xcPgHJ3LjXjekJo9me\nbbFmLzVSk9ylGKXZlDOc/aiplrsU2Zk3mzK5SMuAGwfkLsWwZE+FPSfA8OOgQ+UWwTj+PV3W7dlW\nrlzJ/v37GTx4MGfPtuwhunTpUrKyslpqLC/HwcGBtLS0+87l4+PDgAEDMDExwczMjMTExM5rNZYQ\nH5JUy7zAdHItiuQuxyh50MQisa9nK59qe8bkJ6FqzJG7FMOROxE+TYZmtdyV9Ir0kbx7bB47dgxb\nW1tWrFjRGuJ327BhAw4ODvz2t7+977mhQ4eSkpKCk1PXNyw3mu6UglortiVMxKogFFut8t4y9da1\n2/t6VvMwEqZylyO7HNsKDvoHcGvQPLEy4h3e8bBsLJiJJWB7IyIiAkdHxzaf02q1fPLJJ8TExLT7\n+u7+ATKyn16JLy57cjxlJt4NYiW77pP4kCGcZBkWiO+fWtXMMfcG0ocvotliuNzlGAb3FFjuB5Zi\nTZq+cOzYMVxcXPD1bXsdGEmSmD59OgsWLGDv3r1dOqdRNsmKai3ZlhDOgmEFmA9Jp0pqlLsko3Ia\nKy4xlxVkouWY3OXILt+mgsIRvoSXjGHg9a+RaJa7JHkNOgsr/GF3KVTflLsa2Uxpp7EcWwKx1+96\n4FzXz/nRRx+xbNmydp8/ceIEbm5uZGRkMG/ePMLCwnB17XhpDaPpE+do22W6WtWzMPA0OZYFeq6q\nf5hFOSP4BjVVcpdiENzrBhCcdx7T+gy5S5Ff5VD4dx3cKpa7km7RVZ+4tv0ej06vl5OTw7x58+7p\nE1er1Xh4eJCamoq7e+fvhNevX09AQACrVq3q8Dgj6065X3GdJVsTwzHPD8NOayF3OUbnWxz4nCVi\nK7jbCq0qOTjCk+uuj6KVFD72MuAqPKGCwV5yV9IvHDlyhICAgHYDvLa2lqqqlsZUaWkphw4dYvbs\n2Z2e1+hD/I6vrnpwNGkmPvUecpdidIowZROTqWSeGPQENBLEu1STMOJh1NZBcpcjL5tCiKkBDz+5\nKzEaMTExTJ48mezsbDw9Pdm1axcAH3/88X0DmoWFhcydOxeA4uJiIiIiCA4OZunSpbz44ot4enp2\nej2j705pyzyfAqw906mUGvqwqv4piHqm8R0NXJO7FMOghdCyAbgW7UPS1stdjXwaB8BXnnDlvNyV\ndMoQulP0qd+0xO/2dc4Qvk+aiU9d53/FhHudwZIdzAaM/y4+nZAgaVAlJ/3n0GRj3Kv/9Yp5JSy8\nAiPFWt6Gpl+GOEBpvQVbk0JR5U7EXivmvXZHHSZsI4BLxGCG2G0c4IZFDQd8Hbk25DG0Klu5y5GH\naR08fBaCxVrehqTfhvgd+3PdOZI0E586MTjTXUcYwKc8hgWBcpdiGCSJVOcKjvvPoMFuotzVyMNE\nDQ8kQrhYk8dQ9PsQByirN2dr0gSk3EmiVd5NxZiyiUlU8AgqzOQuxyDcMq/j0FA7cj2XoFXZy12O\n/qm0EHUCIkWXmyFQRIjf8U2uG98mzMSn1lvuUoyMxEe4cZQnsECMMwAgSZx2KufoyGjqByhwhxkJ\nmBgHDxr/UrbGTlEhDnCz0ZytyePR5kzGQbTKu+U8FmxnNlqi5S7FYFSa1fGtjxWXvR5Ha9L1RYv6\nBQkIPgqPGPfmEsZOcSF+x8E8Vw6KVnm31aNiO/5kswwzFNiV0BZJ4rzjLX7wn0KtwzS5q9G/gGOw\neApIio0TWSn6u37rdqu8+epkHLVWcpdjVL7Hjn+zGHMUfjPMXarNGjjibUa2z+PK2xLO9wTETAAT\nMW6ib4oO8Tu+zXflm4SZeNf6yF2KUSnFlHeYyC3mo0Lht6jfJdP+Fof9J1Dt+IDcpeiXZyI8OQYs\nrOWuRFFEiN9W3mjGtuRxqK9MEa3ybpH4GFd+YBkWiK6pO+pNm/jeSyJjqMK2hHNNgyeHgrXoatMX\nEeI/cfiaC/sTZuJdM1TuUoxKBhZsYxYaFNgn3IGLA8o57D+WyoFz5C5Ff5zPw/JBMMBZ7koUQYR4\nGyoazdiWEkLjlak4acVbw65qQMUORpDJMsxoe2cTJWowURPr0cxZ3yVozBXybsXhEjxpBQMV9C5E\nJiLEO/DdtcF8HT8D75phcpdiVGKx498swhyxzsbdrtqW8+2IUdxyfhgtktzl9D27fFimBlfxrrYv\niRDvRGWTGdtSgqm/FMFAjWiVd1UpJrxDKDdYgAqxzvsdjSbNHBvSyOnhi2m2aHuLrn7FugQeLwfv\nkXJX0m+JEO+iHwoHsSd+Jt7VolXedRKf4sL3xGCJj9zFGJQ8mwoOjfDjxuD5aDGRu5y+ZXkLHr0G\nfmI6al8QId4N1WpTtqUGU3spgoEaG7nLMRqZWPA3HqCZGXKXYlDUKg0n3OpI8VtIs2U/b6maV8Mj\nWTBawcv59hER4j1wtHAQX8bPwKvKF8ngt9QwDI2oeJfhXOAJzFHY7emdKLSu5ICfN6WuC9FK/fhm\nGdMGmJMG4yfJXUm/IkK8h2rUpmxPG0v1pUicRau8y+Kw5UMWikHPn9CotJxyqSHJ7xHUVv146V+T\nZph+CiYrcNGwPqLzEF+5ciUuLi4EBv74g1hVVcX8+fPx8vJiwYIFVFdXAy07QltZWRESEkJISAhr\n167VdTl9Lq7Imc/jZ+BZNVy0yrvoJqa8QyhlLBSDnj9RbFXFAT83it0WoZX66QJtKmDqcZgulrLV\nBZ2H+FNPPcXBgwfveWzr1q14eXlx8eJFPDw82LZtW+tzw4cPJy0tjbS0NP72t7/puhy9qFWbsiMt\niIqLUQzSKHTXl26T+IzBHGEZlojB4rtpJUgcXMUp/zk02YyTu5y+IQGhcfBQ/1vKtq2G7MaNG/Hw\n8GhtsP40I++Ii4sjICAAPz8/Nm/e3KXr6TzEIyIicHS890aPxMREnn76aSwsLFi5ciUJCQm6vqxB\nOFE8kE9PzcCz0g+VaJV3STbmbGEGTcwEJcyd7oYyixoO+A6kYMhjaFX9tMsu8CgsjACp//zft9WQ\nlSSJ9evXtzZYZ8+e3eZrn3/+ebZv386RI0fYsmULZWVlnV5PL33iSUlJjBzZMvo+cuRIEhMTW5+7\nevUqwcHBrF69mtOnT+ujnD5V12zCjvRAbmVHM1hjJ3c5RqEJFe/jy1mWYc5AucsxLJJEinMFx/0f\noNE2TO5q+saIY7BkIqj6x1TLthqyAFptxy27iooKACIjI/H29mbWrFldavCa9qzM7mmveHd3d/Lz\n83F0dOTAgQMsX76cM2fOtH2SXRt//HdwNIRE67pMnTpZ4kRq6XSWB2ZQOOAiGtFh3qkT2JLBQmI4\nSzP9891aT90yr+XgMHuCbz6GZ+F+JE2t3CXpls8peGI8fJoN9VXdemlsCcRe74Oa2hmuiS1u+eiu\nzZs38+mnn7Jw4ULWrl2Lnd29jby7G7sAo0aNIj4+nrlz53Z4Xr2EeGhoKBkZGYSEhJCRkUFoaCgA\n5ubmmJu3LGE6Z84cXnnlFS5dusTw4cPvP8lTG/VRqk7Va0x49/QYxjt7MNY/lSKTcrlLMng3MWEL\nwUQynBC+o4Ee/Lb0V5JE+sAKrtk+SFjuRUzrzsldkW65p8BKH/hyEBRd6fLLol1aPu54TVfflhfa\nud7tj9brBXd+qjVr1vDqq69SWVnJSy+9xPbt29mwYUPva0RP3Snh4eHs3LmTuro6du7cycSJLTuF\nl5WV0dzcDEBqaip1dXVtB7iRSylz4IMT0QwuC8Rc2z/eMva1OGzZzjwamYXU3+9o7KYyixoODh/C\nzcGP9L81WOxyIKYExvavrqPBgwcjSRL29vY899xzfPnll/cdExoaSmZmZuvn58+fb83Kjug8xGNi\nYpg8eTLZ2dl4enqya9cu1qxZQ15eHv7+/hQUFPDss88CLSOxY8eOJTg4mDfeeIPt27fruhyD0YyK\nDy74ceH0TLyaBstdjlGoR8VOhhLLciwZIXc5BkWj0nLcrZ5zvo+hMXOXuxzdMquBBxPhwf4zBbGo\nqAgAtVrN7t27eeihh+47xt6+ZQ32uLg4cnJyOHz4MOHh4Z2eW9J21ttuACRJgqMGX2Y3aFnil4fG\n9Qw1UpPcxRgJLYspxZVvUVMjdzEGxVptztT8Ciwrj8ldiu4VTIDPs6GusssvkT7qfBCx03NIEtr0\nLh4bfO/1YmJiOHr0KGVlZbi4uPDaa68RGxtLeno65ubmREZG8tvf/hYnJycKCwtZtWoV+/fvB+Do\n0aM8++yzNDU1sW7dOtatW9f59UWIy8fNup75Y86Qa3lN7lKMhitqFnMWNYmdH6wkWi3h1+0YXPwl\nEv3sd6XKC7407XI/udwhrm8ixA3AQ95FOHilc0uqk7sUozGNSgL5jkb6YlqC8Rpe5UBA7rdIzf1s\nEL3JGr4PhPTOZy2JEDdA/T3EAezNm4gZc548myto+9lYVV8ZgIblnKWZeLlLMSiODTZMzsnEpD5D\n7lJ0SwucjYSDx6CD2BIhboCUEOJ3THW7ga9vKtdV3Zsrq2SPcANP9tOMeCdzh6nGhKj8RmzKv5O7\nFN0rHA+fX4TatvvJRYgbICWFOIC5qpkVY7Ipsc9ELW4S6pJhNPIIx6jnktylGA6tlgll9rgVfolE\ns9zV6FaVJ+wxh8LL9z0lQtwAKS3E7whyqiRsZCoFpjflLsUomKDhZ+RizmHob4N7veBT7UBg7g9I\n6lK5S9GtJmv4IRDS7u0nFyFugJQa4gASWp4IuEKN83nqJbXc5RiFKdQwngM0ckPuUgyGfaMVU3Kv\nYlrbzrIWxkoLnIuCA3Gt/eQixA2QkkP8jqF2tTw4Op1cc3Ebelc40cwTpNJEqtylGAwTjURkgYTd\nzbaXQTVqRePgs8tQWyFC3BCJEL9Dy0Lfa1i4n6VCqpe7GCPQcoPQYL5BQ4PcxRiM4Bv2eBZ8haRt\nlLsU3ar2hD0WSH++JELc0IgQv5e9eRNLR2dwzfYSGjEdsVMjaWA2P1BPrtylGAzPGnuCc48jNRXJ\nXYpuqa2QJtSJEDc0IsTbNs65nPEj0rkmBj47ZY6Gn3MJFT/IXYrBsG2yICK3ELOaFLlL0SldhKoI\ncR0TId4RLY/75aJxPUe11M/eHveB6VQxmv00USF3KQZBpYWphWY4lO2XuxSdESFugESId26QZQOL\nRp8nzzpH3PHZicE0E0MCDZyVuxSDMeaWA0Pzv0bSGv8NUyLEDZAI8a6b5HKTgOHpYgOKTmmJoQgH\nDqBFTN0EcKsbwPicRFSNeXKX0isixA2QCPHukdDyxMgr1A26QK1Y6rZDQdQzjSM0UCB3KQbBWm1O\nRF4ZFlXGux6NCHEDJEK8Z9yt63lk9FlyrfLlLsWg2aBhBZlo6YfrcfeEFqYUWzHw+ldyV9IjIsQN\nkAjx3ol2L8VnWDolYlGtDs2mnOHsR0213KUYhIAKB4bnHUDSGNfPjQhxAyRCvPfMVBqeCLhEuVMG\nDVI/WwxJhzxoYhGnaKCfLePaQ4PqbQnLOY1Jw/0LTRkqEeIGSIS47gy1q+XBUWfItSiUuxSDpULD\nkxRgw0G0aOQuR3YWzaZE5VUZzfZvSgtxvex2LxiOq1XWbEuYiObqZJw1NnKXY5A0qPgHniTxJBaI\nTa0bTNR862PJdddH0SLmr3Zm5cqVuLi4EBgY2PrYSy+9REBAAOPGjeOFF16grq7tqZw+Pj4EBQUR\nEhJCWFhYl65nNCE+zmgqNQ6H8l359ORM3G8FYKYV39y2JGPFLuZjwkS5S5GfJBHvUk3m0MfQmjjI\nXY1Be+qppzh48N5FxmbNmsX58+dJTk6mpqaG3bt3t/laSZKIjY0lLS2NxMSu7SNrNL+9qa/CpAxw\nNpG7kv6jXmPC+2cDyDozE69GF7nLMUiVqNjCWApZjAlWcpcju4sDyjnpF02zZYDcpRisiIgIHB0d\n73nsgQceQKVSoVKpePDBBzl69Gi7r+9u14zRhDjAqY+h8S8wVSxIp1NZFbZsj5+MWV44jloRVG3Z\ny0AOsBRLhstdiuxuWNRyyM+HGofpcpdilN59913mzZvX5nOSJDF9+nQWLFjA3r17u3Q+U10Wpw+V\nN+H4/8CoqaCeDdniZjsdkdibMwTbay4sG5NJod1FmsXWcPe4gjmbmcbPGKb43YPUqma+8zJhgvXi\n/rn9G1Bjbt3m48cSmzmWdPeAd9dvqPv973+PnZ0djz32WJvPnzhxAjc3NzIyMpg3bx5hYWG4urp2\neM5OZ6eWRZFMAAAgAElEQVQ0NDSwZ88e4uLi2LJlCxcvXiQrK4uHH364y4X3liRJMO3+MlWmMPUX\nkOwOtWISgU4FOVUycWQ6+aZlcpdikCZTzQQOit2DAJ9qewJzYw1m+zddzU75SjurS8fOl76973o5\nOTnMmzePs2d/XJ/n73//O++++y7fffcdlpaWnZ53/fr1BAQEsGrVqg6P67Q75Xe/+x2pqanExsYC\n4O7uziuvvNJpAfqgUUPcNrD/O4TKXUw/c+bmAHacjMC6cAIDtBZyl2NwTmLLhyzEjPFylyK7HNsK\n4vwmo7YO7PxghTp48CB/+tOf2Lt3b7sBXltbS1VVy41VpaWlHDp0iNmzZ3d67k5D/IcffuDNN9/E\n3NwcABsbG1nnRLal6AokbYSwdHA1ug4iQybx+SUvvk14AK/qYagM679ddjcxYTPjKWMhKpT9h67C\nvI5Dvu5UOT0odymyi4mJYfLkyWRlZeHp6cnOnTv55S9/SXV1NTNnziQkJIS1a9cCUFhYyNy5cwEo\nLi4mIiKC4OBgli5dyosvvoinp2en1+u0O2XFihVs3ryZ6Oho0tLSiI+PZ+vWrXzwwQc6+HK7pr3u\nlLZYD4AJz8Jxa8RtGjo2wfkWwSPSKTC9JXcpBkfsHvQjubd/M4TuFH3qNMSTkpJ4+eWXOXfuHGPG\njKGkpIR//vOfjB+vv7eR3QnxO0aEgsl8yBADnzqmJcY/h6bB56gRKyTeQ+we9CM5t38TId6OlJQU\nNBoNoaH6733uSYgDoIKIlZDuBVWiWa5TLpYNLBxzjlxr0fL8KbF7UAu5tn9TWoh32if+xRdfUF5e\nzvjx4wkNDaW8vJw9e/boo7be08Cx98DyXZgoQlynSuot2JY8nsrsKFyb7eUux6B8jx0f8xgWKHug\nr9qsgUO+Ayl3nit3Kf1apy3xsWPHcvr06XseCw4OJj29i6vD6ECPW+I/MX4ulEyCa6KLRadM0LAs\n4Ao1zheok8Q390di96A7Am854KOn7d9ES/wnLC0tqa2tbf28trYWExPjvPc9ZT+UvgGRlWAq1vHR\nmWZU/DNjOImpD+BT7yF3OQZE4iPcOcETWDBE7mJkddaxnBS/h9CYe8ldSr/TaYg/9thjrFmzhvj4\neE6dOsWaNWtYunSpPmrrEw21EPcWeH0BY4zzb5HBulZjxdbEMBovT2WwxlbucgzGGSzZwRwkpspd\niqwKrar43i+IBjuxoJguddqdUltbyyeffMJnn32GVqtl8eLFLF26FCsr/a2xoavulPtPDFNXwLnh\nUN7/7hqWlbmqmSdGXeKmYyaNYhOKVmL3IPp8+zeldacYz6YQfRHitzm5wshfwElxo5DO+drV8MCo\nM+Ra6H+qmaESuwe1CCh3ZHj+fiSNbv+giRC/7fnnn2fTpk1trrYlSVKXV9jShb4O8TvGzoSKaMhR\n9hhUn3jIuwgnz9PcUNV2frACiN2DWgyutyVUx9u/iRC/LSUlhfHjx3P06NH7CpQkiaioKL0UeOd6\n+ghxADNLmPQMxA+ERoN/j2JcrE3VLBuVTYl9NmpJucF1twnUMYVDNFAidymy0fX2byLE76JWq/nZ\nz37Gv/71L33WdB99hvgdXgHgFAPpImt0LsChisiA0+SZXZe7FIMwAA3LOUMzCXKXIh+tlonX7RhU\n/CVSL5f4VVqIdzg7xdTUlJycHEpLDWOJSX3Ky4D0V2FSFgwUs1h0KqPcju2npmBxLQwHbedLcvZ3\nLbsHBSt796DW7d+WiO3fuqnTgc1nnnmGuLg4Hn74Ydzc3FpeJEmsX79eLwXeuZ6+W+J3G+AMQc/A\ncXPZSui3Bpg1sXR0BgV2l9GITSgYSiPzOUY9l+QuRTYDG2yYmHMBk/qsHr1etMR/wt3dnaVLl2Jn\nZ0d1dTXV1dWta94qRWUZHH8DRn8Pw8UMFp2qbDJjR3oQBRem46EeKHc5srt6e/egRmaBQneWv2FR\nw+Hhw6gV2791SYct8Vu3bpGQkEBkZCTW1m1vVaQPcrfE76YyhanPQJIr1In+ch3TssQvD1zPUiXJ\ns4ypIVH87kFaLaFlA3At3NOt7d9ES/y2d999l6CgILZs2cKIESOMZ9GrPqZRQ9zfwOkfMEGZDaU+\nJPHJRW++T5qFd81QlN67ovjdgySJpEFVnPNdhNbUWe5qDFa7If7BBx9w+vRpvv76a+Li4nj//ff1\nWZfBK7gEyb+D8LPgIrpYdKqs3pxtKSHczJqGe7OyB7nE7kFw1bacOL8pqK2UvSpke9oN8ZqaGpyc\nnAAYNmwYBQUFeivKmCR8DtV/gohapfZg9p34647sPDENp+vBWGvN5C5HRhKfMZjvWIYlPnIXI4sK\n8zq+HT5EbP/Whnb7xO3t7YmMjGz9/NixY0RERLS8qJ/esdlb/uEgzYNMccenzrlZ1zN/9DlyrfLk\nLkVWYvcgCLlhj0fBHiRt2ztLKa1PvN0Qv7O7fZsv6uCOzZUrV7J//34GDx7M2bNnAaiqquLJJ58k\nLS2NcePG8eGHH2Jr27LK3TvvvMPmzZsxMzNjx44dTJ16/0pvxhLiAJIJTF0JaZ5QLQY+dS7KrYyh\nvumUqCrlLkVW06hkDN8odvcgzxp7gnOOIamL73tO7hDvbgbeLS4ujtWrV6NWq1m3bh2//OUvO69V\n1wtgHTt2DFtbW1asWNH6Bfzxj38kPz+fP//5z7z44ov4+PiwYcMGrl+/TmRkJN9++y1Xr17lV7/6\nFampqfcXaUQhfoeLN/j8HBJEH4vOmUoangi4RMXADBoUvELiYJqJIYEGzspdiizsmiyYmluAWc29\nmSF3iHcnA38qJCSETZs24e3tzYMPPsjx48dxdu54ULfTeeLdFRERgaOj4z2PJSYm8vTTT2NhYcHK\nlStJSGi5vTghIYHZs2fj5eVFVFQUWq2238xBL8mFhNdgQjIMEQOfOqXWqvjgwgjOn57JELVj5y/o\np65jwiYmUcE8JJT3Q1Zl1sAhX2eD2/6tOxl4t4qKlndVkZGReHt7M2vWrDaP+ymdh3hbkpKSGDly\nJAAjR44kMTERaAnxgICA1uP8/f1bn+svkvfBjf+FyGoQd+/r1sVKG/5+Kooh5f4Kno7YsnvQKZ7A\nnEFyF6N3GgnihjRx1WsJWslwl3BoLwPbOwZg1KhRxMfHd3ruLv/5rq+vx9KyZ9+k7ry1kaR2+h+u\nbvzx3w7R4Bjdo1rkUF8NcX+G4ePAeiGcUW4PgM6ptSreOzOaKDcXPH2TFbvUbTqWXGM+Tyiwe+Vs\n7E0+ir2MnXoobuVFQLlOzluCW5uPZ8UWkx3b0hff1WTry4HPTkM8PT2dV155hQsXLnD16lXS09PZ\nsWMHf/vb37p8kdDQUDIyMggJCSEjI4PQ0FAAwsPDOXLkSOtxmZmZrc/dZ+jGLl/PUF1KBVJh8lK4\nNAaui1ksOnO0yJkBZTNYNvYsudY5cpcji7Lb3SvL8cRWQeuUB0Y7ERjdMh3aonkobPlGJ+f9kkfa\nfiL69scdry3q9FztZeBPj3nppZdaPz9//jyzZ8/u9Nyddqf84Q9/4M0338TBoeWmi+DgYI4ePdrp\nie8WHh7Ozp07qaurY+fOnUyc2LLHXlhYGIcOHSIvL4/Y2FhUKhV2dnbdOrcxOvlvqPkTRNaILhZd\nqmwyY1vyOMiZhL1iV0eU+CeepLEMc5S3Fk2DiWG2jNrLwLvZ29sDLTNUcnJyOHz4MOHh4Z2eu9MQ\nLywsZMyYMa2fNzQ0dLiOSkxMDJMnTyY7OxtPT0927drFmjVryMvLw9/fn4KCAp599lkAXFxcWLNm\nDdOnT2ft2rVs2rSp04L7i5oKiPsTeH8JY0WS69SBPDe+S5qBd71yd5iPx4aPWIgF4i5HfetOBhYW\nFjJ37o8Ds2+//TarV69m5syZrF27ttOZKdCFKYavvfYawcHBbNy4ka+++orNmzdjb2/Pb3/7215+\nqV1njFMMu2vSErgSBCWG2ZAwWo/65qNyT6dGavvGkP5Py3KuKap7RRc330iSxBzt51069oC0yDAX\nwLrj+eefJy0tjebmZubMmYODg0OXJqAL3XPqE6j6I0RVg6mYW64zX1z2JD51Jl6NLnKXIpO7u1ec\n5C5G6AOdtsQPHDjAnDlz7nls27ZtrW8H9EEJLfG7+YwBxyWQpoyGk55oifHPoW7wGcXeIDSIZpYp\nYPaKaIn/xH//93/z3XfftX7+xz/+USxL28dyzkHaqy0rJLop7x6OPiLxUdZQLpyZodjNJ0pvz16p\n5SH0dIuIoAedRsTevXt5+OGHMTc35+DBg2RmZup18SslS/gcrL6FyFVwyh6alPNmpM9kV9hy8WQk\nK0Zf5KbTBdSS0t7uSPwDTyaxjFC+oZGbchck9FKnf46dnZ3Zu3cva9eupbCwkM8++wxzc7HZpL7U\nVUHcW+D+CYwTjSed0CLxwfkR5J2fhptC1ys/hQ0f8aiYvdIPtNsnbmtre8/dk42NjZiZmSFJEpIk\nUVmpv1XklNYn3pHQR+BWGFwSs1h0wkyl4WdjMimyz1LoRs1aVnANaw5CP5m9orQ+cZ2vYtgXRIj/\nhAomPQYFgZAnwlwnJrncxM8vmVJVtdylyGISNf2me0WE+G2ZmZmMHDmyzaVhAcaNG9enhd1NhHjb\nVKYw+Qm47AdFIsx7zdpUzfLA8+TZXZa7FFkMQn179so5uUvpFRHit61atYp3332X6OjoNhel+uEH\n/e0sIkK8Y2aWMHEFXPCEG8qcPadT04dcx3VYCrekOrlLkYHxd6+IEL+LRqPh1KlTTJkyRZ813UeE\neNdY2UHYzyDNBSpFmPeKg3kTMUFnyLHOlbsUWUyihgnsp4lbcpfSbUoL8Q7nO6hUKp577jl91SL0\nUl0VHP0r8BeIrAAbMZulx8obzdiaPB5V7kTstMrbZf4UNvybR7FgTOcHC7Lq9Nd83rx5vPPOO3qd\njSL0TuVNiPsLWG6DyFowF7fx99j+XHfikmfg3eAudyl6V4opm5hMHXMQNwcZrk5np9ja2lJbW4tK\npcLKyqrlRWKKoVFx8QG/ZXDKHEQvS09pWTw8H63baWoVuJjWZKoZzzdG0b0iulN+orq6Go1Gg1qt\npqqqiqqqKtEqNzIlOXD8DXD/N0xqBtEw7wmJzy55kZI2A6+mwXIXo3cnsRXdKwaq0xCfMWNGlx4T\nDF9+Jpz6bxi2B8LkLsZI5VRbs/3UFAZeH4u5VlkLwYvuFcPU7v9EXV0dN27coLS0lJs3b7Z+ZGZm\n9psd6ZXqcjokboSAQ+JW/p6R+DDTl+yz0xmiVtryrhIf4MUZYjDDsfPDhT7X7gJY27dvZ9OmTRQW\nFjJ+/PjWx729vXnhhRf0UpzQtzJOAacgcDowDc6KDvNuySi3I/tkJCvGXKTM8QJqBd22fxJbLvJo\nv7g5yNh1OrD5zjvvsG7dOn3V0yYxsKkf4+dC9STIEnd/dts453LG+idTbKK08SItPyMfKw5hKDcH\niYHN25KSkigqKmoN8G+++Ybly5ezdetWamtr9VagoD8p+yHrvyD8DAwT65h3S2qZA/86NQ2PihGo\nFNXeaOleOcsy0b0ik3ZD/JlnnmldcvbSpUs89dRTzJgxg9OnT/P//t//01uBgp5pIeELuPIqTM4G\nDxHmXdaoMeHd02MovxiFs8ZG7nL06gQ2fMwiLBgtdymyy8rKIiQkpPXD3t6ed955555jYmNjsbe3\nbz3m9ddf7/H12u1OCQoK4syZMwCsW7cOKysr3nzzTdRqNVOmTCEhIaHHF+12kaI7RTYmZjBpOVwc\nJjZx7g5bUzVPjj1Lrs1VuUvRKxUalnNN1u4VQ+pO0Wg0DBkyhMTERDw9PVsfj42N5a233tLJBjvt\ntsQdHR1bu02++uorFi9eDICpqSnV1cpcrlOJmpvg+E4ofwMii8FJWbPqeqxabcq2lBDUV6bgoLWU\nuxy90aAS3St3OXLkCL6+vvcE+B266kdvN8SffPJJJk6cyMyZM/H19SU0NBSAixcv4uCgzN1QlKyh\nFuK2QcOfIeom2ImpiV1y+JoLhxJm4l13/y9xfya6V1r8+9//ZtmyZfc9LkkSJ0+eJDg4mPXr13P5\ncs+XP+5wdkphYSHZ2dlERUW1LkebnZ1NdXW1WE9c4ewHwdjlkOQAdYYxKcHgzR9agLlHGtVSo9yl\n6I0c3Su66k4JKUls87mqEylUn/xxn4XiP7/b5vUaGxsZMmQIFy5cYNCgQfeeo6oKExMTzMzM+OCD\nD9izZw/79u3rWa1iZx+hN5yHQMCTEG8tNnLuCnfreh4JTCXXoljuUvRqCjWM09PStroKcY528RxR\nUpvX++qrr9i6dSsHDx7s8OVarRZXV1fy8vKwsOj+ipniTbHQK2UFcOxNGPRPmNokfqA6U1hrybaE\nSQwoGoeVVjlTf5TYvfLRRx8RExPT5nMlJSWtwf/1118TFBTUowAH0RIXdMxnNLgugniR5p3ytath\nxpgU8s3K5C5Fb/TRvWIILfGamhq8vb25evUqdnZ2QMtd8ACrV69my5YtbN26FVNTU4KCgtiwYQNB\nQUE9q9VYQtz1UQ3Ft8T6e8bCbzw4PAJJBv/TJTctywMuU+l8jkZJOYMLU6hmXB8tbWsIIa5PRtNe\nunkgmSiPW9jbiFQwBhdTIOl3MOoIBItpiR2Q+GfGcC6fm457s3JmfZ3AVnHdK33FaFriEA/AgIHm\nhMwfTkKBLfWNomVuLMbOBHU0nBc3DLXLVNKwYkwW1x0yaVbIYloqNKwgH0sOAbr5mpXWEje6EL/D\nxcsav1nDOXnVEo1GhLmxmPAIVITBRRHm7QoddIvR/smUqJSz5PNUqglhP02U9/pcIsQNUFshfsfQ\nMfYMDh9GwhVz/RYl9JwEkx6DoiDIEWHeJktVMyuCLnDN7iJahbRRXFHzOPE0cL5X5xEhboA6CvE7\nRk8ehImfF2fylDNty9hJJjB5GVz1h0IR5m2KcivD0zeZGyplrByqi+4VEeIGqCshfseEB4dQPtCd\nS0VGM2areKYWLYtsZXhDmdiY4j4DzJpYNvYsudY5cpeiN73pXhEhboC6E+ItL4DJC33IVQ2m4IZC\n3ov2A5a2ELYCzrhBuQjz+8zxKsLeO40KqV7uUvSip90rIsQNULdD/DYzCxWTFvtyttKRW9UizI2F\nnROErIAUJ6hRztTpLhlk2cDioNPkWF6TuxS96En3ighxA9TTEL/DzsGckAXDSSqypU5MSzQaji4Q\nuAISbKHB4H9K9Wuhbz4m7unUSE1yl6IX3eleESFugHob4ncM8rBm5IO+nMyxollMSzQaLt7gtwzi\nLUFt8D+t+uNhU8fcwFTyzEvkLkUvWrpXTtHAhQ6PEyFugHQV4nd4B9jjNnko8Vd6tuCMIA8Pf/Be\nAidNdHVbSH+gJcY/h7rBZ2iQ+v9AQle6V0SIGyBdh/gdAWHOmI/y5nSumJZoTIaNhUELIEG8mWo1\nyrGK8FEJFJtUyl2KXkRQTXA73SsixA1QX4X4HeNmulPt4k52oVjkw5iMiYSqWZAr5pgDYGXSzM9C\nTitmKmJ73SsixA1QX4f4HZMWeHPNbDD5ZWKOubGwtIXQtXDMWu5KDMfi4Xmo3dIU270iQtwA6SvE\nAUzMVExZPIzzNU7cqBLv143F2JlQFg0FolUOQKBjJeNGJ3BdIeuv3N29IkLcAOkzxO+wGWDKhIV+\nJF+3o6ZehLkxsLGHkOfguFhGBwAbUzXLQ9LJtcqTuxS9cEPNEk4xW3pbhLihkSPE7xjoasmoucM5\nlWuNulmEuTEY9xAUTIYS0SoHtDw+Ipd6l3RFbDqhQsN+6TFFhbjo/O3EjeJ6jr1/Dre8DCYNa5C7\nHKELUr+Burdgcv/vEu4CiY+zfci7MI1BGlu5i+lzGgVGmvK+4h7Kz67i1PvpjKi8yDgfZdwlZ8wq\nb8LJ/4awdBgoJh2RdsOePQnT8K73kLsUQcf0GuK7d+8mKiqK0aNH89577wGwceNGPDw8CAkJISQk\nhIMHD+qzpG7LTrlJ6q5UgsklYIho6hm6xD2g+SuEG3ynYd+rbDJjW2IojteDMdWK9ltf8vHxISgo\niJCQEMLCwto85je/+Q3Dhg1j/PjxZGZm9vhaeusTr6ioICwsjPj4eMzMzJg+fTqHDx/m7bffxs7O\njvXr17dfpIx94p2Z+IgXhZYu5JWKXwpDN3EJZAaKFRIBJjjfYuTIRG6oauQuRecOSItk7xMfOnQo\nKSkpODk5tfmSxMRE1q9fz969ezl06BD/+te/2LdvX49q1VvynDx5knHjxuHo6IitrS3Tpk3j1KlT\nALIOCvRW/N48rn2RzNTBZQyyN96vQwniPwHTbRAqxqdJLnNkX+J0vBvc5S6l3+oo1xISEli8eDFO\nTk7ExMSQkZHR4+voLcQjIyNJTEzk6tWrFBUV8c0333Dy5EkANm/ezMSJE3nzzTepqjK+ea0atZbj\nH1+m+kgqUZ4V2FmJMDdUZQWQ9DuYcgkGKPzNU3mjGdsSwhlYGoSpUvaA0xNJkpg+fToLFixg7969\n9z2fmJjIqFGjWj8fNGgQly9f7tG19LZoiI2NDW+//TbPPfccFRUVBAYGYmlpyapVq3j11VeprKzk\npZdeYvv27WzYsKGNM7x317/H3f4wLHXVao7+IxN7Z3Oi5g0npdiWajHH3CCd+BDchoH3U3BW0d0r\nEh9mDCfCzQG34fFUSY1yF9RtN2LPcTO2d/tytim2ncevxkJOe0+2OHHiBG5ubmRkZDBv3jzCwsJw\ndXVtfV6r1d7XUm/pNu4+2eaJL126lJdffplx434M49OnT7N27VpOnDhxz7GG3CfeEXtnc4JFmBs0\nyQQi1sKJgaDoLAd87WqICDpFiZEvoqWzPvFpXTzHDx3PE1+/fj0BAQGsWrWq9bHNmzejVqv51a9+\nBYCvr2+PW+J6fUN5/fp1AI4cOcLZs2cZN24cRUVFAKjVanbv3s1DDz2kz5L6VEVZI0d3XcAkKZ0o\nnypsLUU3i6HRNkPcZvA/DJ4KX8zycpUNXyRG4d3g2vnBQrtqa2tbu4VLS0s5dOgQs2fPvueY8PBw\nPv/8c27cuMHu3bsJCAjo8fX0+mO7ePFirl+/jp2dHbt27QLgP//zP0lPT8fc3JzIyEjWrFmjz5L0\n4k6Yi24Ww3XhBNicgym/hBMKDvPKJjO2J0xiVfB58gdky12OUSopKWHhwoUADBw4kBdffBFPT0+2\nb98OwOrVqwkLC2Pq1KlMmDABJycnPvzwwx5fT9x2LwPRzWLYJj4GF4KgUuH9K0v8cqlzTUNtZLfr\nG1p3Sl9T+Pi8PO7pZvGuFN0sBib+U7DeCUEKv9Pzk4ve3LoUgZ1W7IBlyESIy6iirJGjf88QYW6A\niq/Cmd9BZBkoOcuPFw0kJT0a1+YBcpcitEOEuAEQYW6gNBD3VxjxLXgpuJ/8cpUNnydG4d3gJncp\nQhtEiBuQn4a5uGnIMGSchLI/whQFr3vWMuA5EY+KEXKXIvyECHEDdCfMVYkizA1FbSWc+AOEnwN7\nhfavaJF49/QYbAvHiwW0DIj4nzBgIswNT8JnYLUTxio0yAE+veTNzYsRDBADngZBhLgRuBPmUkI6\nkd6VDLAWYS6n4qtw+ncQWQqmCp0heqJ4IEnp03Bttpe7FMUTIW5EKm80Evf3DDQn0on0KGfgABHm\nstFA3BYYfgC8FTroeaXKmk8TxICn3ESIG6Hq8kbi/plF9eEUIlxv4OoowlwumfFw/U2YqtBBz2q1\nKdvEgKesRIgbsYbaZo59dImyfclMcS7Fa5Bx3VnXX9RVwfE/QPhZpQ56tgx42hROEAOeMhDf8X5A\n3ajhxKdXyP8siUkDihnuKsJcDgmfg+X7yh30/OySFzezxYCnvokQ70e0Gjj1VS6XPkoi1LKAAA+F\nL/4hg5Kc24Oe15U56HmiRAx46ptYAKufC5nhhsbTndO5Ch19k5F/ODTMgxy13JXon62pmifHJ5Fr\nUaT3a4sFsIR+Je27Ik7/PYUxjVeZMFSho28yyUqAkjdhqvFtltNrPw54+stdSr8nQlwhzp24TvLO\nVEZUXiR8WAOSZPBvwPqFuio4/gaEnQEHxfWVS7x7ejTWhRMwEwOefUZ8ZxUmO+UmCe+n412SxeRh\n9ZioRJjrQ+IXYPEeBCsuyOHzS16UZUeKAc8+IkJcoXLOV3Dy/dO45mYwdVgt5qYizPtaSS6k/w6i\nSpQ36HmyxIlEMeDZJ0SIK1zBpSqOv38Wh8xzRA6txtpChHmf0sDRreD7DfgobKz5ausdnu5yl9Kv\niBAXALieX0vczvOYp5wW67PoQVYCFP+v8gY9WwY8w/EoFwOeuiJCXLhHeWmDWJ9FT+qrbw96poOj\novrKJd49Mxrrgv454Jmfn8+0adMYPXo00dHR7N69+75jYmNjsbe3JyQkhJCQEF5//fUeX0/MExc6\nZGFtQtj8oVxscKL4lsI6cvVosBe4/wLSFXaz7WSXm3iOOEWl1KCzc8o9T7y4uJji4mKCg4MpKysj\nLCyM06dPY2dn13pMbGwsb731Fnv37u1VnSBa4kInxPos+nE9r2XQM7IEzBT0t/JkiRMJadNw60cD\nnq6urgQHBwPg7OzM6NGjSU5Ovu84XbWfRYgLXSLWZ9EDLcRthaH7YKiCBj1zqq352AAHPE3QdPqh\nouPfg0uXLnH+/HnCwsLueVySJE6ePElwcDDr16/n8uXLPa5TdKcIPRY6x4NqZ1cyrimqQ1cvLG0h\n9JdwTFFTq7X8IugCBQ5ZvTqLzrpT3NoJ1oZ4aEz48fPqd9q8XlVVFdHR0bz66qvMnz//vudMTEww\nMzPjgw8+YM+ePezbt69ntYoQF3pLrM/Sd0Lnw+UJcFNBa5k96puP2j2FJqln7/Z0FuJdzpyJ912v\nqamJuXPn8tBDD/HCCy90+GqtVourqyt5eXlYWHT/r7boThF6TazP0neSvgKTHRCioN/ULy57Upod\nic7UfAwAAA1nSURBVL3WUu5SekSr1fL0008zZsyYdgO8pKSkNfi//vprgoKCehTgIFriQh8YMd4J\nx2AvEq+ao9UqaJSuL0kQuRpOuUGTwf/G6oaPbS3Tx8ZTZFLerdfJ3RI/fvw4kZGRBAUF3T4PvPHG\nG+Tl5QGwevVqtmzZwtatWzE1NSUoKIgNGzYQFBTUs1pFiAt9xWe0Pe4TfUjIsaBZI8JcF0ZMAPUC\nuKKQ5W1tTNUsH59MrkVhl18jd4jrm4LepAn6JtZn0b3sZCh4AyJ0N63aoNXcvsNzSPlIuUsxWCLE\nhT4n1mfRrYZaOPY/EJoKToqYGCTx3plRWBWE9ss7PHtLfEcEvRHrs+hW0l5QbYNxCvkt/uKyJ9ez\njHfAs68o5L9fMCRifRbdKSuA1N9BZCkoYdQh/roTp9Km4dbsIHcpBkOEuCCb6vJG4v6ZRfXhFCJc\nb+DqKMK8R7QQtwUmpIKNAn6jc6ut+DghEu+GIXKXYhAU8F8uGDqxPotuJO0Ftz0wRAH3XLUMeIbh\nLgY8RYgLhkOsz9J7l1Kh/m8wRiEDnu+fGYXltTDMFTzgqdyvXDBYWg2c+iqXSx8lEWpZQICHgu45\n14EbhZD5OkxRyFzyL694UJwVpdgBTxHigkFLOnCNjH8mE6LKY6y3QlJJB9QNcOL1lqVtlTDgmXDd\nkZOp03BX4ICnuGNTMCpjpgzG0t+D5KtmcpdiNCY8ApkToFoBvVPWpmpqp5gp6o5NEeKCURox3gm7\nsT6kiDDvkuHjoO5RKFDCm5koSVEhLrpTBKOUnXKTlJ2pTB1Uio2lwbdDZHcpFer+CoGKGPBUFhHi\nglE7/skVnC5nMNpTDH525mYxZChowFMpRIgLRi8/u4oLHyYT5VmBqYlolXdEaQOeSiBCXOgXtBo4\n+o9MfCsuM9RFASN4vRS3FcangK1IAKMn/guFfiUr6QaFe1OJHFYjdykGL/lrcPkCPBRwh2d/JkJc\n6HcaapuJe/8cIap8XBxE90pHLqdDzWYx4GnMRIgL/Vbad4XUH0tn4jCF7KDQQ7dKbg94iu1RjZII\ncaFfqyhrJP79dCY7FIv1yzugboATf4DIYjHgaWz0GuK7d+8mKiqK0aNH89577wFQVVXF/Pnz8fLy\nYsGCBVRXV+uzpD6UKncBPWBsNXe93pNf5mJ9/rz8t+7fipX3+p2I2wbjk38y4JkWK1c5RisuLo6A\ngAD8/PzYvHlzm8f85je/YdiwYYwfP57MzMweX0tvIV5RUcFrr73Gnj17SEhIYMeOHVRUVLB161a8\nvLy4ePEiHh4ebNu2TV8l9TFjC0Qwvpq7V29xTg2n/55CpPtN+fb7LI+V57rdkLwPBn9+14Bneqyc\n5Ril559/nu3bt3PkyBG2bNlCWVnZPc8nJiZy7NgxkpOT2bBhAxs2bOjxtfQW4idPnmTcuHE4Ojpi\na2vLtGnT+P/t3W1IU38bB/Dv6B/zf5ulq0FCMZ/+6Ax12nwoS9SizLHVcNw5s0iNTMuKIAh6Efeb\nUgjSItIezBfeMimxLCPK0N3kQ8uKWrXin09Byq2YaaXcPf3uF9Fwabk5d85ZXZ9X7niuna8XcXna\n+XlOa2srTCYTcnJyIBaLkZ2djTt37nAVifym/vPvv7H4v3/jL19aivgjnQ+/XvAMpwueDhseHgYA\nJCQkQCaTYc2aNRPm2p07d6DT6SCRSKDX62GxWKZ9PM4WFyUkJGDXrl3o6uqCh4cHrl27BrFYjLt3\n7yIk5OuN3UNCQmAymSatj4r6B1dRZ0Rf32z4+lJmV3Iu7//wR+cz/DMpEC8GxTOa62f6RgDfvzg7\nnNNmGQD5H8Cfc/hOYr+Z+v/kvHlT/wb7+JFhdNR22/iZBgChoaFoa2uDSqWybjOZTNi8ebP1tVQq\nRUdHBwIDAx3OydkQ9/T0RHFxMXbu3Inh4WGEhYVBLBbbfeOY+/fDXZxw5vX1neI7gsPcLbOzeU08\n3Fet796/uD+os866YWYnDQ9H27XfnDmO/4ZjjE2YfV9vuuU4Tpf5q9VqqNVqAEB6ejpSUlJw//59\nWCwWREZGwmKxIDp6YuPc4EaLhJBfiDMzJzo6Gvv377e+fvLkCVJSUmz2iY2NxdOnT7F27VoAwMDA\nAAICAqZ1PE5Xp/T39wMAGhoa8PjxY0RFRSE2Nhbl5eUYGxtDeXk54uLiuIxECCEzat68eQC+rlDp\n7u7GzZs3ERsba7NPbGwsampqMDg4iKqqKsjl8mkfj9MzcZ1Oh/7+fnh5eaG8vBwikQh5eXnIzMxE\ncHAwoqKiUFRUxGUkQgiZccXFxcjNzcXHjx+xe/duLFiwAGVlZQCA3NxcxMTEYMWKFVAqlZBIJKis\nrJz+wRiPjEYjCwkJYUFBQez48eMTvm+xWFhcXBwTi8Xs6NGjDtW6ijOZZTIZCwsLYwqFgkVHR3MV\necrMlZWVLDw8nIWHhzO9Xs+eP39ud63Q8gq1x5cuXWLh4eEsIiKCpaamMpPJZHetEDPz0Wd7+2Qy\nmdisWbPYxYsXHa51R7wOcYVCwYxGI+vu7mbBwcFsYGDA5vv9/f3s7t277ODBgxMG4lS1Qszs5+fH\nBgcHOck53lSZW1pa2Js3bxhjjFVUVLDMzEy7a4WWV6g9fvfunfXrpqYmtnLlSrtrhZiZjz7b06dP\nnz6xpKQkplKpbIY4Xz3mAm9/dm/PWkqpVAqlUonZs2c7XCu0zN8wji/S2pN52bJl1s/xVCoVjEaj\n3bVCyvuNEHvs6elps7+Hh4fdtULL/A2Xfba3TydOnIBOp4NUKnW41l3xNsR/tJbS1bXOcPa4IpEI\nycnJ2LBhA+rq6lwRcQJHM58+fdq6goiPPjuTFxB2j2tra+Hn54fs7GycOXPGoVohZD59+rR1O9d9\ntifvq1evcPnyZeTl5Vkz2lvrzuhOwhxqbm6Gr68vLBYL1Go1YmJisHDhQr5jWTU0NKCyshItLS18\nR7HLZHmF3GOtVgutVovq6mps2LABDx484DvSlMZn1mq11sxC7PPevXtRWFgIkUg06TrsXxVvZ+LR\n0dE2N3158uSJ3csLnal1hrPH9fX1BQDI5XJoNBpcuXJlxjN+z97Mjx49wo4dO1BXVwdvb2+HaoWS\nFxB2j7/ZuHEjent7MTY2BqVS6Rb/lsdnBrjvsz157927h/T0dPj7+6Ompgb5+fmoq6vjbV5whs8P\n5L9dbOjq6vrpxYZDhw798MLmVLUzbbqZ379/z0ZGRhhjXy9+hoaGspcvXwoic09PDwsKCmJtbW0O\n1wopr5B7/OLFC/blyxfGGGP19fVs3bp1dtcKLTNffXakT1u3bmU1NTXTqnU3vA7xpqYmFhISwgID\nA1lJSQljjLHS0lJWWlrKGGOsr6+PLVq0iM2dO5d5e3uzxYsXs7dv3/6wVsiZOzo6WEREBIuIiGDJ\nycns3Llzgsmck5PDJBIJUygUE5aM8dHn6eYVco+LiorYkiVLmEKhYFlZWcxsNv+0VsiZ+erzVHnH\n+36I89VjLogY+00+OCKEkF8QPdmHEELcGA1xQghxYzTECSHEjdEQJ4QQN0ZDnLhccnIybty4YbOt\nuLgY+fn5k+7v5+eH169f//Q9Dx8+bPM6Pj4eANDd3Y2wsDAAQHt7O/bs2QMAMBqNaG1tnVZ+QoSM\nhjhxOb1eD4PBYLOturoaGRkZk+5vzxNOjhw5YvO6ubl5wj5KpRIlJSUAgMbGRrf5S1RCHEFDnLhc\nWloa6uvr8enTJwBfz5Z7e3vx4cMHpKamIj4+HmfPnp20VqvVYunSpUhOTkZtbS0A4MCBAxgbG0Nk\nZKT1OYWTPSKrqakJarUaPT09KCsrw7FjxxAVFYXbt28jICDAmmdkZAQBAQH4/PmzK358QlyK7p1C\nXE4ikSAmJgbXrl2DRqOBwWCATqfD9u3bcf36dcyfPx8pKSmIj4+f8IST8vJy+Pj4YGRkBImJidBq\ntSgsLMTJkydt7j3ys7N3mUyGHTt2wMvLC/v27QMAJCYmor6+HuvXr4fBYEBaWhpmzaJHuxP3Q2fi\nhBPjP1Kprq5GWloa5HI5goKC4OPjA51ON+nd8AwGA1atWoX4+Hh0dnbCbDZP6/jsuxsibdu2DefP\nnwcAVFRUICsra1rvSwjfaIgTTmg0Gty6dQsPHjzA6OjohDNnxtiEbZ2dnTh16hQuXLgAs9kMf39/\nDA0NTev437/38uXL0d3djaamJnz+/BmhoaHTel9C+EZDnHBizpw5SEpKQlZWFjIyMhAXF4dnz56h\no6MDQ0NDqK2thUajsanp7e2FVCqFRCJBc3MzHj58aP2eVCrF6Oio3ceXyWQYGBiw2bZlyxZs2rQJ\n2dnZzv1whPCIhjjhjF6vh9lshl6vh0gkQllZGQoKCqBSqZCTk2O9cf+3s+YVK1ZAJpNBLpejuLgY\nq1evtr5XQUEBVq5cab2wOf5Me7Kv16xZg/b2dkRGRlpXsmRkZGBoaAh6vd61PzghLkQ3wCK/raqq\nKjQ2NlqfskOIO6LVKeS3VFBQgObmZly9epXvKIQ4hc7ECSHEjdFn4oQQ4sZoiBNCiBujIU4IIW6M\nhjghhLgxGuKEEOLGaIgTQogb+z9RrMAdh+sfRQAAAABJRU5ErkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 14, + "input": "plt.contourf(sigma_mesh, strike_mesh, prices['eput'])\nplt.axis('tight')\nplt.colorbar()\nplt.title(\"European Put\")\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")" + }, + { + "source": "Plot the value of the Asian put in (volatility, strike) space.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 15, + "text": "<matplotlib.text.Text at 0x3487c50>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 15, + "input": "plt.contourf(sigma_mesh, strike_mesh, prices['aput'])\nplt.axis('tight')\nplt.colorbar()\nplt.title(\"Asian Put\")\nplt.xlabel(\"Volatility\")\nplt.ylabel(\"Strike Price\")\n" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/newparallel/rmt/rmt.ipynb b/docs/examples/newparallel/rmt/rmt.ipynb index e5f8e60..c13c736 100644 --- a/docs/examples/newparallel/rmt/rmt.ipynb +++ b/docs/examples/newparallel/rmt/rmt.ipynb @@ -1,1270 +1,226 @@ - - - rmt - 2 - - - - - # Eigenvalue distribution of Gaussian orthogonal random matrices - - - The eigenvalues of random matrices obey certain statistical laws. Here we construct random matrices -from the Gaussian Orthogonal Ensemble (GOE), find their eigenvalues and then investigate the nearest -neighbor eigenvalue distribution $\rho(s)$. - - - from rmtkernel import ensemble_diffs, normalize_diffs, GOE -import numpy as np -from IPython.parallel import Client - python - 1 - 0 - - - - ## Wigner's nearest neighbor eigenvalue distribution - - - The Wigner distribution gives the theoretical result for the nearest neighbor eigenvalue distribution -for the GOE: - -$$\rho(s) = \frac{\pi s}{2} \exp(-\pi s^2/4)$$ - - - def wigner_dist(s): - """Returns (s, rho(s)) for the Wigner GOE distribution.""" - return (np.pi*s/2.0) * np.exp(-np.pi*s**2/4.) - python - 2 - 1 - - - - def generate_wigner_data(): - s = np.linspace(0.0,4.0,400) - rhos = wigner_dist(s) - return s, rhos - python - 3 - 1 - - - - s, rhos = generate_wigner_data() - python - 4 - 0 - - - - plot(s, rhos) -xlabel('Normalized level spacing s') -ylabel('Probability $\rho(s)$') - python - 17 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x3828790&gt; - 17 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVl3QUFBRU1DQVlBQUFEWGlZR1NBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW -UFgreC9IWHFMaW1tS0pwcVNCSkFTSXdLcUJwT3FVQ1NtWm1wZGF2ClRLM3dkaE8xckt4cmliYWJG -cVpvWkxmRjFKdG1wVWxkRVV0RU14Q0ZjczhWbHpTdml1REM0aWpuOThlSkNRUmtCbWJtekF5ZjUr -UEIKUTRZNW52UG05R2crbnUrcVV4UkZRUWdoaEtoQ0hhMERDQ0dFY0E1U01JUVFRcGhGQ29ZUVFn -aXpTTUVRUWdoaEZpa1lRZ2doekNJRgpRd2doaEZrMEtSaXBxYW40K2ZuaDQrUEQzTGx6eTcxZlVG -REFxRkdqME92MTlPM2JsMVdyVm1tUVVnZ2hSR2s2TGVaaDZQVjY1c3laCmc2ZW5KeEVSRVd6YXRB -a1BEdy9UK3g5KytDSGJ0MjluL3Z6NUhEbHloTHZ2dnBzREJ3NmcwK25zSFZVSUljUmY3UDZFa1pl -WEIwQ2YKUG4zdzlQUWtQRHljOVBUME1zZTR1N3R6NGNJRmpFWWpPVGs1Tkc3Y1dJcUZFRUpvek80 -Rkl5TWpBMTlmWDlOcmYzOS8wdExTeWh3egpjdVJJcmw2OWlvZUhCNzE3OTJiSmtpWDJqaW1FRU9J -YTliUU9VSkY1OCtaUnIxNDlUcDQ4eVk0ZE80aUtpdUxJa1NQVXFWTzJ2c2xUCmh4QkNWRTkxZWlQ -cy9vUVJFaExDM3IxN1RhOTM3ZHBGang0OXloeVRtcHJLSTQ4OFF1UEdqUWtMQytQbW0yOW0zNzU5 -Rlo1UFVSU0gKLzVvMmJacm1HU1NuWkpTY2tyUGtxN3JzWGpEYzNkMEJ0U2hrWjJlVG5KeE1XRmhZ -bVdQNjlldkg2dFdyS1M0dTV0Q2hRK1RrNUpScAp4aEpDQ0dGL21qUkp4Y1hGRVIwZGpkRm9KQ1lt -Qmc4UER4SVNFZ0NJam81bXhJZ1I3TjY5bSs3ZHU5T3FWU3ZtekptalJVd2hoQkNsCmFGSXcrdmJ0 -eTU0OWU4cjhMRG82MnZTOXU3dTdTeFVKZzhHZ2RRU3pTRTdyY1lhTUlEbXR6Vmx5VnBjbTh6Q3NS -YWZUMWFnOVRnZ2gKYXFQcWZuYkswaUJDQ0NITUlnVkRDQ0dFV2FSZ0NDR0VNSXNVRENHRUVHWnh5 -Sm5lNHZxS2lpQTlIZGF2aDh4TXVId1ppb3VoUXdlNAo0dzdvMnhlOHZiVk9LWVJ3TlRKS3lva1VG -RUJDQXN5Y0NiZmNBbmZkQldGaDBMZ3g2SFJ3NEFEOC9EUDg5QlBvOVRCNU12VHJwNzRuCmhCQWxx -dnZaS1FYRFNheGJCNk5HUVdnb1RKc0d3Y0dWSDF0VUJFdVd3T3paY1BQTjhPbW4wSzZkL2JJS0lS -eWJES3QxVVlvQzc3MEgKano0S2l4ZkR0OTlldjFnQU5HZ0FZOGJBYjcrcHpWUGR1c0h5NWZiSks0 -UndYZktFNGNBS0N1REpKMkgzYnJWUWVIcFc3enhidHNELwovUi8wN3EwMmFibTVXVGVuRU1LNXlC -T0dpekVhNGI3NzFEODNiYXArc1FDMUdTc3JDLzczUDNqb0liWEpTZ2doTENVRnd3RXBDano5Ck5O -U3JwL1pGTkc1YzgzTTJhUUxmZkFOMTZxaUZxS0NnNXVjVVF0UXVVakFjME15WnNIVXJmUG1sV2pT -c3BYNTlXTFlNYnJ3Ujdya0gKOHZPdGQyNGhoT3VUUGd3SDg5Vlg4Tnh6OE1zdjZ0QlpXN2g2RlI1 -NUJPcldWVHZTWmRpdEVMV0xES3QxQVljT3FmTXFrcE9ySGdsVgpVL241Y09lZE1IS2tPbDlEQ0ZG -N1NNRndjb3FpVHJJYk5NaCtIK0JIajZvRjZyUFBJQ0xDUHRjVVFtaFBSa2s1dVlVTDRkSWxtRFRK -CmZ0ZnMwRUdkbi9IWVkrb3NjU0dFdUI1NXduQUFSNCtxayt0U1VxQnpaL3RmZjhFQ21EY1AwdEtn -YVZQN1gxOElZVi9TSk9Xa0ZFVnQKaHVyZEcvNzFMKzB5UFBHRTJ2bjk4Y2ZhWkJCQzJJOVROVW1s -cHFiaTUrZUhqNDhQYytmT0xmZityRm16ME92MTZQVjZ1blRwUXIxNgo5Y2pOemRVZ3FlMTkvVFdj -T0FFdnZLQmRCcDBPNHVMZ3h4OWh6UnJ0Y2dnaEhKc21UeGg2dlo0NWMrYmc2ZWxKUkVRRW16WnR3 -c1BECm84SmpFeE1UaVl1TFk5MjZkZVhlYy9ZbmpDdFgxQ2FvdVhNaFBGenJOR3JCR0QwYWR1d0Fk -M2V0MHdnaGJNVnBuakR5OHZJQTZOT24KRDU2ZW5vU0hoNU9lbmw3cDhVdVhMbVhreUpIMmltZFhu -MzJtenJVWU1FRHJKQ3A3ajlJU1FqZ1h1eGVNakl3TWZIMTlUYS85L2YxSgpTMHVyOE5qOC9IeVNr -cElZTm15WXZlTFpUVUVCVEo4T2I3M2xXQlBuWnM1VTU0R3NYYXQxRWlHRW8zSG9IZmRXcjE1Tjc5 -NjlhZDY4CmVhWEh4TWJHbXI0M0dBd1lEQWJiQjdPQytIZ0lDVkhuUVRpU1pzM1VJYjVQUEFIYnQw -dlRsQkN1SUNVbGhaU1VsQnFmeCs1OUdIbDUKZVJnTUJyS3lzZ0FZUDM0OGtaR1JSRVZGbFR0MjZO -Q2hEQjgrbkJFalJsUjRMbWZ0dzhqTmhkdHVVNGZSK3Z0cm5hWmlUejJsTG9NZQpINjkxRWlHRXRU -bE5INGI3WC85a1RVMU5KVHM3bStUa1pNSXErR2QyWGw0ZXFhbXBEQmt5eE40UmJlNzk5eUVxeW5H -TEJjRGJiNnZyCld1M2NxWFVTSVlTajBLUkpLaTR1anVqb2FJeEdJekV4TVhoNGVKQ1FrQUJBZEhR -MEFDdFhyaVFpSW9KR2pScHBFZEZtQ2dyVWlYS2IKTm1tZDVQcGF0SUJYWGxGbm5xOWQ2MWo5TEVJ -SWJjakVQVHY3K0dOWXVSSVNFN1ZPVWpXakVRSUQ0ZDEzMWVYUWhSQ3V3V21hcEdvegpSWUU1YzJE -aVJLMlRtTWZOVGQxUC9Mbm40UEpscmRNSUliUW1CY09PZnZycDcxVnBuY1hBZ2VEdERmUG5hNTFF -Q0tFMWFaS3lvOEdECjRkNTc0Y2tudFU1aW1kMjdvVzlmMkxNSEtwbVFMNFJ3SXJMNG9JUGJ2eDk2 -OVlJalI4QVorL0hIajFlZmp1Yk4wenFKRUtLbXBHQTQKdUpnWWRlbndOOTdRT2tuMW5EMEx2cjdh -TGNFdWhMQWVLUmdPTERkWDdRZllzY04yKzNUYlE4bUt0cXRYYTUxRUNGRVRNa3JLZ1gzeQppZHA1 -N016RkFtRGNPTWpLZ293TXJaTUlJYlFnVHhnMnBpanFNaUJmZkFFOWVtaWRwdWJpNCtHSEgrRDc3 -N1ZPSW9Tb0xubkNjRkJwCmFWQ3ZudU10TWxoZEpZc1NYbWRGZWlHRWk1S0NZV05mZkFHUFB1bzZT -MnMwYUFBdnZ3eWxGZ2tXUXRRUzBpUmxRMFZGYXI5RlppWjAKNktCMUd1c3BLbEtiMlpZdGM0MW1O -aUZxRzJtU2NrRGZmdzlkdXJoV3NRQjV5aENpdHBLQ1lVT0xGc0ZqajJtZHdqWkdqMVpuZnYveQpp -OVpKaEJEMklrMVNObkxtREhUcUJFZVBxcnZZdWFLUFBvSVZLMlE3VnlHY2pUUkpPWmhseTJEUUlO -Y3RGZ0NQUDY0dWVmTHp6MW9uCkVVTFlneFFNRzNIbDVxZ1M5ZXZEdi80RjA2WnBuVVFJWVE5U01H -emc5OS9WcHFqKy9iVk9ZbnVqUnNHaFE3QnhvOVpKaEJDMkpnWEQKQnI3NEFoNStXSjJ3NStyYzNP -Q2xsK0N0dDdST0lvU3dOZW4wdGpKRmdZNGQxVzFZZzRPMVRtTWZoWVhxNzV5Y0RBRUJXcWNSUWxU -RgpxVHE5VTFOVDhmUHp3OGZIaDdsejUxWjRURVpHQmlFaElmajUrV0V3R093YnNBWXlNOVY1Q2tG -QldpZXhuNFlONFpsbllOWXNyWk1JCklXeEpreWNNdlY3UG5EbHo4UFQwSkNJaWdrMmJOdUZSYWlz -M1JWRUlEQXprL2ZmZnAzLy8vcHc1YzZiTSt5VWM4UW5qbFZmVS9hL2YKZVVmckpQYVZrNk1PSTNi -MkpkeUZxQTJjNWdrakx5OFBnRDU5K3VEcDZVbDRlRGpwMTZ4a3QzWHJWZ0lEQStuL1Y2OXhSY1hD -VWExYwpDZmZkcDNVSysydlJRbDB6YTg0Y3JaTUlJV3pGN3QyeUdSa1orUHI2bWw3NysvdVRscFpH -VkZTVTZXZEpTVW5vZERydXZQTk9tamR2CnpqUFBQRU5FUkVTRjU0c3R0VDZGd1dEUXRQbnF3QUYx -d3A2cnJFeHJxVW1Ub0ZzM21EclZ0ZWVmQ09Gc1VsSlNTRWxKcWZGNUhISWMKVDJGaEliLysraXZy -MXEwalB6K2ZBUU1Hc0hQblRocFZzQmwyckFNdGFMUnFGUXdlREhWcTZkZ3pMeThJRDFkbmdFK2Vy -SFVhSVVTSgphLzh4UFgzNjlHcWR4KzRmYlNFaEllemR1OWYwZXRldVhmUzRac25UbmoxN01uRGdR -TnEwYVlPM3R6ZmR1M2NuTlRYVjNsRXRWbHViCm8wcDcvbm0xV2VyeVphMlRDQ0dzemU0Rnc5M2RI -VkJIU21Wblo1T2NuRXpZTlcwNFBYcjBZTU9HRGVUbjU1T1RrME5XVmhhOWV2V3kKZDFTTC9POS9h -b2Z2M1hkcm5VUmJYYnVxUzU5LythWFdTWVFRMXFaSmsxUmNYQnpSMGRFWWpVWmlZbUx3OFBBZ0lT -RUJnT2pvYUZxMgpiTW5vMGFQcDNyMDdyVnExWXNhTUdkeHd3dzFhUkRYYjZ0VnFjMHpEaGxvbjBk -N3p6OE1MTDdqV3hsRkNDSm00WnpXREI4UElrZW9NCjc5cE9VZFI1S0ROblFtU2sxbW1FRU5lcTdt -ZW5GQXdydUhnUmJyNVpYVCtxZVhPdDB6aUdSWXZnODgvaHh4KzFUaUtFdUpiVHpNTncKUld2WHFs -dVZTckg0MjRnUnNHK2ZPdk5kQ09FYXBHQllnWXlPS3E5K2ZaZ3dBZDU5Vitza1FnaHJrU2FwR2pJ -YW9VMGIrTzAzYU5kTwoweWdPNS94NWRWSENiZHZVT1JwQ0NNY2dUVklhMmJnUmJyMVZpa1ZGbWpX -RHNXUGgvZmUxVGlLRXNBWXBHRFVrelZIWE4yR0N1ajlJClRvN1dTWVFRTlNVRm93WVVSUzBZUTRa -b25jUngzWEtMT3VSNDRVS3Rrd2doYWtvS1JnM3MyYU91RytYdnIzVVN4elpwRXN5ZEs4dUYKQ09I -c3BHRFVRSEl5REJnZ3M1bXJFaHlzTGhmeTFWZGFKeEZDMUlRVWpCb29LUmlpYXM4K0MrKzlwemJq -Q1NHY2t4U01hcnA4R1ZKVApaYkZCY3cwYXBNNklkNEpGaDRVUWxaQ0NVVTFwYWVEakEwNjBHYUNt -NnRSUit6TGVlMC9ySkVLSTZwS0NVVTNyMWtsemxLVWVld3cyCmI0YjkrN1ZPSW9Tb0Rvc0x4b1VM -RjlpMWF4Y3BLU244OXR0dkZCUVUyQ0tYdzVQK0M4czFiZ3pSMGJMdnR4RE95dXlsUVZhc1dNSHUK -M2JzNWNlSUVYbDVldEduVGh1UEhqM1AwNkZHYU5XdkdnQUVES3QxMzIxYTBXaG9rTnhmYXQ0ZlRw -MlgvQzB1ZFBBbWRPNnY3bjdkbwpvWFVhSVdvbm15MXZmdm55WlQ3NTVCT0NnNFBMYmFWYVdtSmlJ -c2VQSDJmY3VIRVdoNmd1clFyR3Q5L0NoeDlDVXBMZEwrMFNSbzBDClB6K1lNa1hySkVMVVRnNnhI -NGFpS09qc09DbEJxNEx4OU5QZzdRMlRKOXY5MGk3aDExOGhLZ29PSDFaWHRSVkMySmZkRmgrOGNP -RUMKZS9mdUJkU25qMnREMUFiU2YxRXp3Y0hnNnd2TGwydWRSQWhoQ1lzTHhyZmZmc3Zldlh2cDBh -TUhFeVpNWU9YS2xSWmZORFUxRlQ4LwpQM3g4ZkpnN2QyNjU5MU5TVW5CM2QwZXYxNlBYNjNuOTlk -Y3R2b2F0WkdkRFhoNTA2YUoxRXVjbUUvbUVjRDRXRjR5aW9pTGMzTnhvCjFxd1pDeFlzNElZYmJy -RDRvaE1tVENBaElZRjE2OVlSSHgvUG1UTm55aDNUdDI5ZnNyS3l5TXJLWXVyVXFSWmZ3MWJXcllQ -Ky9kVjUKQmFMNkJnNkUvSHpZc0VIckpFSUljMVg1c1ZkVVZNUzVjK2RNcnlNaUl0aTVjeWZ4OGZI -TW1qV0xyS3dzMDN0SGpoeXA4b0o1ZVhrQQo5T25UQjA5UFQ4TER3MGxQVHk5M25OWWJJMVZHbXFP -c1F5YnlDZUY4cWl3WURSbzBZTU9HRGF4WXNRS2owVWlIRGgxNDhjVVg4Zkh4Cm9WKy9mb3dkTzVi -YzNGeGlZMlBadFd0WGxSZk15TWpBMTlmWDlOcmYzNSswdExReXgraDBPalp2M2t4d2NERFBQdnNz -Qnc4ZXJNYXYKWm4zRnhmRGpqMUl3ck9YUlI5VVo4L3YyYVoxRUNHR09ldVljZE45OTkzSGt5Qkhl -ZnZ0dHpwNDlTMkZoSVVhamtYUG56dEd3WVVQOAovZjE1NXBsbjhMRFNPaGxkdTNibDJMRmp1TG01 -OGZubm56Tmh3Z1FTRXhNclBEWTJOdGIwdmNGZ3dHQXdXQ1ZEUmJLeW9GVXIyVjNQCldrcFA1SXVQ -MXpxTkVLNHJKU1dGbEpTVUdwK24yc05xaTR1THFWT05odnk4dkR3TUJvT3BLV3Y4K1BGRVJrWVNG -UlZWNGZHS290Q20KVFJ1T0hqMUtnd1lOeXJ4bjcyRzFiNzhOSjA3QUJ4L1k3Wkl1NytSSmRUK1Jn -d2RsSXA4UTltSzNZYlY1ZVhuOCs5Ly9adVhLbGVUbgo1MXQ4UVhkM2QwQWRLWldkblUxeWNqSmhZ -V0ZsampsMTZwVHBsMW05ZWpXQmdZSGxpb1VXWlAwbzYydmJWdDJ4TUNGQjZ5UkNpS3BZClhERGVl -dXN0R2pWcXhPKy8vODZERHo1b1ZyL0Z0ZUxpNG9pT2pxWi8vLzQ4L2ZUVGVIaDRrSkNRUU1KZm54 -b3JWcXlnUzVjdUJBY0gKczJMRkNtYlBubTN4TmF5dG9BRFMwNkZ2WDYyVHVKNUprMkRlUE5tUlR3 -aEhaM0dUMUpJbFMzamtrVWNBdFZscTNyeDV4TVRFMkNSYwpWZXpaSkxWMkxjeVlBWnMyMmVWeXRV -Ny8vdXFTSVk4K3FuVVNJVnlmM1pxazZ0YXR5MnV2dmNheFk4Y0FxRmZQckg1enB5ZkRhVzFMCkp2 -SUo0ZmdzTGhnalJvd2dORFNVRjE5OGtZRURCOUt4WTBkYjVISTQwbjloVzVHUlVGZ0lWaGpJSVlT -d0Vhc3VQbWh2OW1xU0tsbk8KUENjSDNOeHNmcmxhNjZPUElERVJ2dnRPNnlSQ3VEYTdOVWxkdkhp -UkF3Y09VRnhjek1hTkcxbS9mcjNGRjNVMm16ZERhS2dVQzF1VAppWHhDT0RhTE95QmVmLzExR2pk -dXpPN2R1d0h3OFBEZ3JydnVzbm93UjdKeEkvVHVyWFVLMTllb2tUcVJMeTRPNXMvWE9vMFE0bHBt -Ck5Vbjk1ei8vSVRRMGxGdHZ2WldNakF4Q1FrSUE5V21qVHAwNk5HN2MyT1pCSzJLdkpxbmV2U0Uy -VmgzSkkyenJ6ei9WelpVT0hJQ1cKTGJWT0k0UnJzdWtHU2dNSERzVGIyNXZmZi8rZG5Kd2NRa0pD -R0Rac0dEMTc5cVJwMDZiVkNtd045aWdZaFlYZzRhRitrRlZqWVY1UgpEYU5IZzQ4UHZQeXkxa21F -Y0UwMkxSaVhMbDJpU1pNbUFPVG41N04xNjFhMmJObENSa1lHRFJvMFlOR2lSWlludGdKN0ZJeU5H -K0c1CjUyRExGcHRlUnBTeWZiczZhdXJ3WVhDQUNmNUN1QnlIMktMVjN1eFJNTjU4RTg2Y2tXVzQ3 -VzNBQUxVVC9MSEh0RTRpaE91eDJ5aXAKMm1ialJyanpUcTFUMUQ0eWtVOEl4eU1GNHpxdVhvVmZm -cEVSVWxxSWlGRFhscEtKZkVJNERvc0t4aDkvL0dHckhBNXArM1oxTmRWVwpyYlJPVXZ2SWpueENP -QjZMQ3NhQUFRTVlPSEFneTVjdngyZzAyaXFUdzlpMFNacWp0UFIvLzZldUVQejc3MW9uRVVLQWhR -Vmo5KzdkCnZQTEtLNnhkdXhZZkh4L0dqeDlQWm1hbXJiSnBUaWJzYWF0Ukl4ZzNUcDNJSjRUUVhy -VkhTYTFaczRZeFk4Wnc5ZXBWT25YcXhPeloKcytuUm80ZTE4MTJYTFVkSktRcmNmTE82TEVndFdW -L1JJWlZNNU51L1g1MFBJNFNvT2J1TWtqcCsvRGh2dlBFR0FRRUJmUExKSjN6MgoyV2VjUEhtUytm -UG5NMmJNR0lzdjdzZ09Ib1M2ZGNITFMrc2t0VnViTmpCMHFPeklKNFFqc0toZ0RCdzRrRWFOR3BH -U2tzTHk1Y3NKCkR3K25UcDA2QkFVRk1XN2NPRnRsMUVUSmNGcWRUdXNrWXRJa2lJK0hvaUt0a3do -UnUxblVKTFZseXhaQ1EwT3IvSm05MkxKSmF1eFkKNk5vVi92bFBtNXhlV0NnOFhPMEVsNGw4UXRT -Y1hacWtLbnFLaUk2T3R2aWl6a0FtN0RrV21jZ25oUGJNS2hnWkdSbkV4OGR6K3ZScAo1cytmVDN4 -OFBQSHg4Y1RHeG5MampUZGFmTkhVMUZUOC9Qenc4ZkZoN3R5NTE3MXV2WHIxK09hYmJ5eStSazM4 -K1NlY1BnMEJBWGE5CnJMaU9pQWd3R3FFV2JMOGloTU15cTJEazVlVng3Tmd4akVZang0NGQ0L2p4 -NHh3L2ZwdzJiZHJ3NmFlZlduelJDUk1ta0pDUXdMcDEKNjRpUGorZk1tVFBsanJsNjlTb3Z2dmdp -a1pHUmRsbkN2TFJObTZCWEwzWHltSEFNT2gxTW5DZ1QrWVRRa2tWOUdQdjI3ZU8yMjI2cgowUVh6 -OHZJd0dBeGtaV1VCRUJNVFEwUkVCRkZSVVdXT2k0dUxvMzc5K21Sa1pIRFBQZmN3Yk5pdzh1RnQx -SWN4Y2FJNk9tZktGS3VmCld0UkFRWUU2YW0zREJ2RDExVHFORU03THBuMFlKUi9tNGVIaGRPellz -Y3lYdDdlM1JSZk15TWpBdDlULzdmNysvcVNscFpVNTVvOC8KL21EVnFsWDg0eC8vQU5SZnpwNmsv -OEl4eVVRK0liUmwxaGF0UzVZc0FXRHIxcTAyRFZOaTRzU0p2UDMyMjZZcWVMMUtHQnNiYS9yZQpZ -REJnTUJocWRPM3o1OVdsS0xwM3I5RnBoSTA4L2JUNmRQSDY2ektSVHdoenBhU2trR0tGbFR6dHZo -L0d0VTFTNDhlUEp6SXlza3lUCmxMZTN0NmxJbkRsemhzYU5HN053NFVMdXZmZmVNdWV5UlpOVVVw -SzZCOGFHRFZZOXJiQ2lzV1BWMmZkVHAycWRSQWpuWk5NTmxFNmQKT2xWaHM1Q2lLT2gwT2xxM2Jt -M1JSZlY2UFhQbXpLRkRodzVFUmtheWFkTW1QQ3I1NStMbzBhTVpQSGd3OTk5L2YvbndOaWdZVTZl -cQpRemZmZU1PcXB4Vld0SE9uT2k5RGR1UVRvbnFxKzlscFZwTlU3NzlXNEx1MmFKUVVqSDM3OWxs -MDBiaTRPS0tqb3pFYWpjVEV4T0RoCjRVSENYMnMvYUQydjQrZWY0WVVYTkkwZ3FoQVFBRjI2d0pk -ZndxaFJXcWNSb3ZZdzZ3a2pLaXFLNzcvL0hpOHZyM0tWU2FmVGNmancKWVp1R3JJeTFuekN1WG9Y -bXplSElFV2pSd21xbkZUYVFsS1FXOWw5L2xlVmJoTENVVFp1azh2THljSGQzcjNDK2hFNm5vMlhM -bGhaZgoyQnFzWFRCMjdJQmh3OERDQnlhaEFVVlJuelErK0FENjlkTTZqUkRPeGFaTlV1N3U3Z0NW -OWpPNGl2UjBDQXZUT29Vd2gwNzM5NDU4ClVqQ0VzQStMNXpLZk9YT0dKVXVXc0hUcFVzNmVQV3VM -VEpxUmd1RmNIbmtFdG02RlBYdTBUaUpFN1dCUndWaXlaQWs5ZS9ia2wxOSsKWWZQbXpmVHMyZE0w -UjhNVmJOa2lCY09aTkdvRS8vaUhUT1FUd2w0c21vY1JIQnpNbWpWcmFOT21EYUFPdDQySWlPRFhY -MysxV2NEcgpzV1lmeHNXTGNOTk5jTzRjMUs5dmxWTUtPemgxU3AzSUp6dnlDV0UrdXl4djNxSkZD -d29LQ2t5dkN3b0thT0VpdzRtMmJWT0hha3F4CmNDNDMzYVFPVlBqd1E2MlRDT0g2ek9yMEhqOStQ -QUN0V3JXaVc3ZHUzSG5ublNpS3dxWk5teGd3WUlCTkE5cUw5Rjg0cjBtVG9IOS8KZVA1NW1jZ25o -QzJaVlRDNmRldG1tclEzY09CQTA4L3Z2LzkrdXk4TWFDdGJ0a0FGazhtRkUramNHWUtDNEQvL2dj -Y2YxenFORUs3TAo3bXRKV1pNMSt6RGF0NGVVRkxqMVZxdWNUdGhaVXBMNmhQSGJiektSVDRpcTJI -VGlYb21DZ2dMV3JsMUxVbElTNTg2ZE16MWRMRjI2CjFPSUxXNE8xQ3NhSkV4QVlxTzZ5Sng4Mnpx -bGtJdCtjT1dyemxCQ2ljbmJwOUo0NmRTb2JOMjRrS1NrSmc4SEE4ZVBIOGZMeXN2aWkKamlZOUhV -SkRwVmc0TTUzdTczMi9oUkMyWWRFVFJ0ZXVYY25NektSejU4N3MycldMdkx3OCt2ZnZUMFpHaGkw -elZzcGFUeGhUcHFoagorcWROczBJb29abkNRblZIdnA5K0FuOS9yZE1JNGJqczhvVGg1dVlHUVBm -dTNVbE1UT1RVcVZNVUZoWmFmRkZISXhQMlhFUERoaktSClR3aGJzdWdKWTlHaVJRd2VQSmdqUjQ0 -d1pjb1UvdmpqRDJiTW1NSFFvVU50bWJGUzFuakN1SG9WYnJ3UnNyTmxoVnBYOEwvL3dlMjMKcXd0 -SXRtcWxkUm9oSEpOZE9yMUJYVXNxS1NrSmdJaUlDRTBYSkxSR3dkaTVVeDFPS3l2VXVvNG5uNFFP -SGVDVlY3Uk9Jb1Jqc2t1VApWT20xcE5MUzByampqanVjZmkycGtnNXY0VG9tVG9UNTg5VStEU0dF -OWRUNnRhU2lvOVhobUg5TlpoY3VZdUJBZU9naEdEMWE2eVJDCk9CNVpTNnFhWkVrUTExU3lWNGJ6 -VGtzVnd2RlVheTJwa2oyK25YMHRxVXVYMUZWT2c0SzBUaUtzYmNBQXRWaXNXNmQrTDRTb3VXcXQK -SlZYeWZYWFhra3BOVFNVNk9wb3JWNjRRRXhOaktrZ2xWcTFheGF1dnZvcE9wK09XVzI0aE5qYVdr -SkFRaTY5VGxXM2IxT1lvV2JETwo5WlNleUNjRlF3anJxTlphVXR1MmJVT24wOUcxYTlkcVhWU3Yx -ek5uemh3OFBUMkppSWhnMDZaTlpVWmJYYnAwaVNaTm1nQ3dZY01HClhubmxGVkpUVTh1SHIyRWZ4 -cXhaY1BTb3VpKzBjRDB5a1UrSWl0bWxEeU0xTlpYYmJydU5sMTkrbVpkZWVvbmJicnVOalJzM1du -VEIKdkx3OEFQcjA2WU9ucHlmaDRlR2twNmVYT2Fha1dKUWMzN0JoUTR1dVlTN3B2M0J0RFJ2QzAw -L0xSRDRock1XaWdqRno1a3krKys0NwprcEtTU0VwS1l2WHExYnp6empzV1hUQWpJd05mWDEvVGEz -OS9mOUxTMHNvZDkrMjMzK0xsNWNXWU1XTll1SENoUmRjd2x4UU0xL2VQCmY4RFhYNnRQa2tLSW1q -R3JENk5FVGs0T045OThzK2wxMjdadHljbkpzWG9vZ0tGRGh6SjA2RkNXTFZ2R2ZmZmRSMVpXVm9Y -SHhjYkcKbXI0M0dBd1lEQWF6em4veXBOcnBMY3VadTdaV3JkU2gwNis5QmpiNmQ0Y1FEaThsSllX -VWxKUWFuOGVpUG93RkN4YXdkT2xTSG56dwpRUlJGNFp0dnZtSGt5SkdNR3pmTzdBdm01ZVZoTUJo -TUJXRDgrUEZFUmtZU0ZSVlY2ZCs1NmFhYnlNN09wbEdqUm1YRDE2QVBZOVVxCmRWdlAvLzYzV245 -ZE9KRno1K0MyMjJEelp2RHgwVHFORU5xemVSK0dvaWdNR1RLRU9YUG1rSnVieS9uejU0bUxpN09v -V0FDNHU3c0QKYW45SWRuWTJ5Y25KaEYzVExuVHc0RUhUTC9QRER6L1FyVnUzY3NXaXBxUTVxdmE0 -OFVaMTlyZXNSaXhFelZqVUpCVWVIczdPblR1cgpQVHFxUkZ4Y0hOSFIwUmlOUm1KaVl2RHc4Q0Fo -SVFHQTZPaG92djc2YXhZdFdvU2JteHQ2dlo2Wk0yZlc2SG9WU1UrSHlaT3RmbHJoCm9DWk1nRTZk -WVB0MmRiTXNJWVRsTEdxU0dqdDJMUGZmZi85MW00L3NxYnFQVlZldnFpdlRIam9FTFZ2YUlKaHdT -SEZ4c0g2OTJod3AKUkcxbWw5VnFBd0lDMkwxN042MWJ0Nlp0MjdhbUMyZG1abHA4WVd1bzdpKzll -emNNR2FMTzhoYTFSMkdoMnBleGZEbjA2S0YxR2lHMApVOTNQVG91YXBGYXRXbVdWSGU2MEppdlUx -azRORzhLcnI4Sy8vZ1UvL3FoMUdpR2NqMW1kM2thamtjVEVSQll1WE1peFk4Znc5dmFtClU2ZE9w -aTluSXgzZXRkZW9VZXFjRENrWVFsak9ySUx4OHNzdnMyREJBbHExYXNXTUdUT0ljL0twczFJd2Fp -ODNONWd4UTMzS2NJR0gKWlNIc3lxdytqRzdkdXBHV2xvYWJteHU1dWJrTUdUS0VEUnMyMkNQZmRW -V25IUzQvWDUzTWxaTWppdzdXVnNYRkVCd01yNzhPOTk2cgpkUm9oN00rbTh6Q0tpNHR4YzNNRG9I -bno1cHcvZjk3aUN6bUt6RXpvM0ZtS1JXMVdwNDVhTEtaT1ZZdUhFTUk4WmhXTTdkdTMwN1JwClU5 -UFhqaDA3VE44M2E5Yk0xaG10YXRzMnNNRks2Y0xKREI0TWpSdkRzbVZhSnhIQ2VaZzFTdXJxMWF1 -MnptRTNtWm5RcDQvV0tZVFcKZERwNDR3MFlOdzRlZUVEdDJ4QkNYSjlGcTlXNmdzeE1xT0ZFZGVF -aSt2V0REaDNnazArMFRpS0VjNmpXQmtxT3d0S09tL3g4OFBDQQozRnlvWDkrR3dZVFR5TXlFUVlO -ZzcxNW8zbHpyTkVMWWgxMDJVSEoyTzNhQW41OFVDL0czcmwzVi9venAwN1ZPSW9UanExVUZRNXFq -ClJFWGVlQU1XTDRZOWU3Uk9Jb1JqazRJaGFyM1dyZFdKZkJNbnltUStJYTVIQ29ZUXdELy9DY2VP -UVdLaTFrbUVjRnkxcHRQNzhtVzEKVS9Qc1diRHlYa3pDUmF4ZHF4YU9uVHRsWXFkd2JkTHBYWVZk -dTlUOXU2VllpTXFFaDRPL3Y3cHZoaENpdkZwVE1LUTVTcGpqdmZmZwozWGZoNUVtdGt3amhlS1Jn -Q0ZIS3JiZkNrMC9DbENsYUp4SEM4VWpCRU9JYUw3K3M3cGVSbnE1MUVpRWNpeVlGSXpVMUZUOC9Q -M3g4CmZKZzdkMjY1OTVjc1dVSlFVQkJCUVVFOC9QREQ3TnUzcjBiWHUzSkZuYlFYSEZ5ajA0aGFv -bWxUZU9zdEdEOWVWck1Wb2pSTkNzYUUKQ1JOSVNFaGczYnAxeE1mSGMrYk1tVEx2ZTN0N2s1cWF5 -bSsvL1VaRVJBU3Z2ZlphamE3MysrOXd5eTNxQjRFUTVuamtFWFZCd2c4LwoxRHFKRUk3RDdnVWpM -eThQZ0Q1OSt1RHA2VWw0ZURqcDF6ejc5K3paRTNkM2R3Q2lvcUpxdkZtVE5FY0pTOVdwQS8vK04w -eWJCa2VPCmFKMUdDTWRnOTRLUmtaR0JyNit2NmJXL3Z6OXBhV21WSHYvUlJ4OHhlUERnR2wxVENv -YW9EbDlmZU80NXRSUGNlV2NyQ1dFOVp1MkgKb1pWMTY5YXhlUEZpTm0vZVhPa3hzYkd4cHU4TkJn -TUdnNkhjTVptWmNNODlOZ2dvWE43a3liQmlCWHo2S1l3Wm8zVWFJYW9uSlNXRgpsSlNVR3AvSDdq -Tzk4L0x5TUJnTVpHVmxBVEIrL0hnaUl5T0ppb29xYzl6MjdkdTUvLzc3V2JObURaMDZkYXJ3WE9i -TVZpd3VoaHR2CmhNT0hvVVVMNi93T29uYlp2aDM2OTRlc0xMVXZUQWhuNXpRenZVdjZKbEpUVThu -T3ppWTVPWm13c0xBeXh4dzllcFJodzRheFpNbVMKU291RnVRNGVWQXVGRkF0UlhZR0I4UFRUNnU1 -ODBqUWxhak5ObXFUaTR1S0lqbzdHYURRU0V4T0RoNGNIQ1FrSkFFUkhSek5qeGd4eQpjbklZTjI1 -WEd1S3RBQUFWUjBsRVFWUWNBRzV1Ym16WnNxVmExNUwrQzJFTkw3OE0zYnJCMHFYcUNDb2hhaU9Y -WDN6d3hSZWhXVE4xCitXb2hhbUxyVm9pS1VwdW9icnBKNnpSQ1ZKL1RORW5abXp4aENHdnAzbDN0 -K0g3bUdhMlRDS0VObHk0WWlpSUZRMWpYdEducXFnRXIKVm1pZFJBajdjK21DY2ZRb05Hd296UWZD -ZWhvMmhFOCtVWmNOT1hGQzZ6UkMySmRMRnd4NXVoQzJjTWNkOEk5L3dNaVI2anBsUXRRVwpVakNF -cUlaLy9RdnExMWVicUlTb0xhUmdDRkVOZGV2Q2tpWHcrZWV3Wm8zV2FZU3dENWN0R0lvQzI3Wkp3 -UkMyMDdxMVdqUWVmeHlPCkg5YzZqUkMyNTdJRjQrUkp1SG9WMnJYVE9vbHdaWDM3UWt3TWpCZ0JS -cVBXYVlTd0xaY3RHQ1hOVVRxZDFrbUVxNXN5UmQxclplcFUKclpNSVlWc3VYVEM2ZGRNNmhhZ042 -dFNCTDc2QS8vd0hFaE8xVGlPRTdiaDB3WkQrQzJFdkhoNXF3Umc3VnAzL0k0UXJrb0loaEpYMAo2 -Z1hQUHc5RGg4TEZpMXFuRWNMNlhITHh3ZE9uNGJiYklDZEgrakNFZlNtS3VrUGZuMy9DeXBWUXo2 -RzNLQk8xbFN3K1dFcFdGdWoxClVpeUUvZWwwc0dDQk9tSXFKa2IyenhDdXhTVUxoalJIQ1MyNXVj -RlhYOEdtVFRCcmx0WnBoTEFlS1JoQzJFQ3padkRERC9EQkIycngKRU1JVlNNRVF3a2JhdFlQVnEr -R2YvNFNmZjlZNmpSQTE1M0tkM3JtNTBMNjkrbWZkdWhvRkU2S1VwQ1FZTlFwU1U5WEJHRUpvVFRx -OQovL0xycnhBVUpNVkNPSTZJQ0hqckxlamZIL2J2MXpxTkVOV25TY0ZJVFUzRno4OFBIeDhmNXM2 -ZFcrNzl2WHYzMHJOblR4bzJiTWpzCjJiTXRPcmMwUndsSE5IbzB2UG9xM0gyM0ZBM2h2RFFaSlQ1 -aHdnUVNFaEx3OVBRa0lpS0NrU05INHVIaFlYcS9aY3VXekowN2w1VXIKVjFwODdzeE05Vjl5UWpp -YUo1NVFoOTNlZFJmODlKTTBUd25uWS9jbmpMeThQQUQ2OU9tRHA2Y240ZUhocEtlbmx6bW1WYXRX -ZE8vZQpIVGMzTjR2UEwwOFl3cEdOSFFzelpxaFBHci8vcm5VYUlTeGo5NEtSa1pHQnI2K3Y2Ylcv -dno5cGFXbFdPZmVsUzNEa0NQajVXZVYwClF0akVtREh3K3V0cTBkaTdWK3MwUXBqUDZSY3VpSTJO -TlgzdjRXR2djMmNEMVhnd0VjS3VIbjljYlo3cTEwOGRSUlVRb0hVaTRjcFMKVWxKSVNVbXA4WG5z -WGpCQ1FrSjQvdm5uVGE5MzdkcEZaR1JrdGM5WHVtRE1teWZOVWNKNWpCb0ZEUnFvVHhxTEZrRU4v -amNRNHJvTQpCZ01HZzhIMGV2cjA2ZFU2ajkyYnBOemQzUUYxcEZSMmRqYkp5Y21FaFlWVmVLeWw0 -NFNsLzBJNG14RWo0SnR2MUZGVThmRmFweEhpCitqU1p1TGRod3diR2pSdUgwV2drSmlhR21KZ1lF -aElTQUlpT2p1YlBQLzhrSkNTRTgrZlBVNmRPSFpvMmJjcnUzYnU1NFlZYnlvYS8KWnZKSmNEQjgv -REYwNzI3WFgwZUlHanQwQ0tLaVlNQUFlTzg5V2VWVzJGWjFKKzY1ekV6dndrSm8wVUpkMHJ4aFE0 -MkRDVkVOdWJudwo0SU5Rdno1OCthVzY3YXNRdGxEclozcnYzS21PYTVkaUlaeFY4K2JxZ29YdDI2 -dWJNUjA0b0hVaUljcHltWUloL1JmQ0ZiaTVxZnRwClJFZER6NTVxWjdqenRnRUlWeU1GUXdnSG85 -T3BLOXorK0NPODh3NDg4Z2o4TmQ5VkNFMUp3UkRDUVFVR3d0YXRhdDljY0xBc2tTNjAKNXhLZDNr -YWoydjc3di85Qmt5WmFweExDK2xhdlZ2Y0tIemNPWG41WjdSZ1hvcnBxZGFmM25qM2c2U25GUXJp -dXdZUFZ2ZXEzYmxXWAo3MDlPMWpxUnFJMWNvbUJJYzVTb0RkcTJWWjgwWnM1VU84V0hEVlBYVGhQ -Q1hxUmdDT0ZFZERyMWFXUDNiclZmbzFzM2RmWGJnZ0t0Cms0bmFRQXFHRUU2b1lVTjQ1UlhZdGcy -MmI0Zk9uZFVsUm9xTHRVNG1YSm5UZDNwZnVhTFF2RGtjTzZaMmZBdFJHNjFiQnkrOEFFWWoKdlBR -U1BQU1FMQzhpS2xkck83MzM3NGViYnBKaUlXcTMvdjNWcDQxMzM0VVBQNFRiYjRlUFBvS2lJcTJU -Q1ZmaTlBVkRtcU9FVU9sMAo2aExwcWFudytlZXdhaFY0ZThQczJYRGhndGJwaEN1UWdpR0VDK3Jk -Rzc3L0hoSVRZY3NXZFgycVVhUFV2Y1NsbjBOVWx4UU1JVnlZClhnL0xscW43aHdjSHc3UFBRc2VP -YW9lNUxHNG9MT1gwbmQ3dTdncjc5ME9yVmxxbkVjSTUvUHFyMm1TMWRDbjQrS2hQSHZmY284N3oK -RUxWRHJkMFBvMzE3aGFOSHRVNGloUE14R21ITkdsaThXSjA1M3I0OVJFU28vU0M5ZXFuYnh3clhW -R3NMeHBBaENpdFhhcDFFQ09kMgo1UXBrWkVCU2tscEVkdStHUG4zK0xpQ2RPcW1kNnNJMTFOcUNN -WDI2d3F1dmFwMUVDTmVTazZQTzdTZ3BJTVhGYWw5aHQyNS8vOW11Cm5SUVJaMVZyQzhicTFRcjMz -S04xRWlGY2w2S29FMk8zYlZNSG1XemJwbjRwaWxvOFNncElseTdnNVNVcjZUb0RwNXE0bDVxYWlw -K2YKSHo0K1BzeWRPN2ZDWTE1NjZTVzh2YjNwMXEwYmUvZnVyZlJjempCQ0tpVWxSZXNJWnBHYzF1 -TU1HY0c4bkRvZGRPZ0FRNGZDYTYrcAoyOGorK2FlNmV1NC8vNmtXaU04L1Y1dXVtalpWaiszYkYw -YVBWdGU1K3VJTGRTK1BFeWVxUDZUWGxlNm5NOU5rOFlBSkV5YVFrSkNBCnA2Y25FUkVSakJ3NUVn -OFBEOVA3Vzdac1llUEdqV3pkdXBXa3BDUW1UNTVNWW1KaWhlZHlocEVkS1NrcEdBd0dyV05VU1hK -YWp6TmsKaE9ybjFPbmdsbHZVcjhHRC8vNzVsU3ZxMDhqaHczRG9rUHJuZi8vNzkvZm56NnRQSWUz -YWdZY0h0R3haL3MvUzN6ZHBvbDdMMWUrbgpzN0I3d2NqN2E2L0pQbjM2QUJBZUhrNTZlanBSVVZH -bVk5TFQwM25nZ1FkbzBhSUZJMGVPWk9yVXFaV2VUOXBRaFhBYzllcXA4enc2CmRvUzc3eTcvL3NX -TGtKME5mL3dCWjgrcVgyZk9xUE5FZnY3NTc5Y2w3MTI5cWhhT3ExZGh3d2ExZ0RScVZQRlg0OGFW -djNmdGNmWHIKUTUwNlVMZnUzMytXL2w0K1Z5cG05NEtSa1pHQnI2K3Y2Ylcvdno5cGFXbGxDc2FX -TFZ0NDlORkhUYTlidFdyRndZTUh1ZlhXVysyYQpWUWhoWFRmY0FBRUI2cGM1Q2dyVXd2SDY2K3FD -aXZuNTZzOEtDc3ArWDFDZ05wTlY5bDdwci94OGRVangxYXZxVjNGeCtUOTF1b29MClNlbnZLL3Ba -YnE0NlVmSjZmMCtuKzdzZ2xTNU05dnhaZFRua2VwYUtvcFRya05GVjhwdFc5bk5ITTMzNmRLMGpt -RVZ5V284elpBVG4KeVptUVlMK2NpdkozUWJIVTJiUE9jVCtydys0Rkl5UWtoT2VmZjk3MGV0ZXVY -VVJHUnBZNUppd3NqTjI3ZHhNUkVRSEE2ZE9uOGZiMgpMbmN1Sng3Z0pZUVFUc2Z1bzZUYzNkMEJk -YVJVZG5ZMnljbkpoSVdGbFRrbUxDeU1yNy8rbXJObno3SjA2Vkw4L1B6c0hWTUlJY1ExCk5HbVNp -b3VMSXpvNkdxUFJTRXhNREI0ZUhpUWtKQUFRSFIxTmFHZ292WHYzcG52MzdyUm8wWUxGaXhkckVW -TUlJVVJwaW9QYnNHR0QKNHV2cnEzVHExRW41NElNUEtqeG15cFFwU3NlT0haV3VYYnNxZS9ic3NY -TkNWVlU1MTY5ZnJ6UnIxa3dKRGc1V2dvT0RsZGRlZTgzdQpHVWVQSHEyMGJ0MWFDUWdJcVBRWVI3 -aVhWZVYwaEh1cEtJcHk5T2hSeFdBd0tQNysva3Jmdm4yVkpVdVdWSGljMXZmVW5KeGEzOU9DCmdn -SWxORFJVQ1FvS1VzTEN3cFQzM251dnd1TzB2cGZtNU5UNlhwWjI1Y29WSlRnNFdMbm5ubnNxZk4v -UysrbndCU000T0ZqWnNHR0QKa3AyZHJkeCsrKzNLNmRPbnk3eWZucDZ1OU9yVlN6bDc5cXl5ZE9s -U0pTb3F5aUZ6cmwrL1hoazhlTEFtMlVxa3BxWXFtWm1abFg0UQpPOHE5ckNxbkk5eExSVkdVa3lk -UEtsbFpXWXFpS01ycDA2ZVZqaDA3S3VmUG55OXpqQ1BjVTNOeU9zSTl2WFRwa3FJb2lsSllXS2gw -Cjd0eFoyYjkvZjVuM0hlRmVLa3JWT1IzaFhwYVlQWHUyOHZEREQxZVlwenIzMDZIM3d5ZzlaOFBU -MDlNMFo2TzBhK2RzN05tenh5RnoKZ3ZhZDlIZmVlU2MzM25oanBlODd3cjJFcW5PQzl2Y1NvRTJi -TmdRSEJ3UGc0ZUZCNTg2ZDJicDFhNWxqSE9HZW1wTVR0TCtualJzMwpCdURpeFl0Y3VYS0ZCdGNz -bCtzSTl4S3F6Z25hMzB1QTQ4ZVA4OE1QUC9ERUUwOVVtS2M2OTlPaEMwWmxjelpLMjdKbEMvNysv -cWJYCkpYTTI3TW1jbkRxZGpzMmJOeE1jSE15enp6NXI5NHptY0lSN2FRNUh2SmNIRGh4ZzE2NWRo -SWFHbHZtNW85M1R5bkk2d2owdExpNG0KS0NpSW0yNjZpV2VlZVliMjdkdVhlZDlSN21WVk9SM2hY -Z0pNbWpTSmQ5OTlsenAxS3Y2WXI4NzlkT2lDWVE3Rmdqa2JXdXJhdFN2SApqaDBqSXlNRGYzOS9K -a3lZb0hXa2N1UmVWcytGQ3hjWVBudzQ3Ny8vUGsyYU5DbnpuaVBkMCt2bGRJUjdXcWRPSFg3NzdU -Y09IRGpBCi9Qbnp5Y3JLS3ZPK285ekxxbkk2d3IxTVRFeWtkZXZXNlBYNlNwOTJxbk0vSGJwZ2hJ -U0VsRmw0Y05ldVhmVG8wYVBNTVNWek5rcFUKTm1mRGxzekoyYlJwVXhvM2JveWJteHRqeDQ0bEl5 -T0RvcUlpdSthc2lpUGNTM000MHIwMEdvME1HemFNUng5OWxDRkRocFI3MzFIdQphVlU1SGVtZWVu -bDVNV2pRb0hMTnVvNXlMMHRVbHRNUjd1WG16WnY1N3J2djZOaXhJeU5IanVTbm4zN2lzY2NlSzNO -TWRlNm5ReGNNClo1bXpZVTdPVTZkT21hcjU2dFdyQ1F3TXJMRHRVMHVPY0MvTjRTajNVbEVVeG80 -ZFMwQkFBQk1uVHF6d0dFZTRwK2JrMVBxZW5qbHoKaHR6Y1hBRE9uajNMMnJWcnl4VTJSN2lYNXVU -VStsNEN2UG5tbXh3N2RvekRody96NVpkZmN2ZmRkN05vMGFJeXgxVG5manJrMGlDbApPY3VjamFw -eXJsaXhnZ1VMRmxDdlhqMENBd09aUFh1MjNUT09IRG1TRFJzMmNPYk1HZHEzYjgvMDZkTXhHbzJt -akk1eUw2dks2UWozCkV1RG5uMzltOGVMRkJBWUdvdGZyQWZWLzFLTi83Um5zS1BmVW5KeGEzOU9U -SjA4eWF0UW9ybDY5U3BzMmJaZzhlVEp0MjdaMXVQL1gKemNtcDliMnNTRWxUVTAzdnAxTnZvQ1NF -RU1KK0hMcEpTZ2doaE9PUWdpR0VFTUlzVWpDRUVFS1lSUXFHRUVJSXMwakJFRlpWcDA0ZApKaytl -YkhvOWE5WXN1Mi9RWXpBWXlNek1CQ0FxS29yejU4L1g2SHdwS1NrTUxyMXhkUlUvdDhXMWJPbkVp -Uk04K09DRGRyMm1jRTVTCk1JUlYxYTlmbjIrLy9aYXpaODhDbHMvRXZWcWRMYzZ1VWZxYTMzLy9Q -YzJhTmF2eE9WM1p6VGZmekZkZmZhVjFET0VFcEdBSXEzSnoKYytPcHA1N2kvZmZmTC9mZWlSTW5t -REJoQWtGQlFVeWFOSWxUcDA0QjhQampqL1Bzczg4U0ZoYkdpeSsreU9qUm8zbnV1ZWNJRFEzbAo5 -dHR2Snlzcmk2ZWVlb3JPblRzVEd4dHJPdC9UVHo5TlNFZ0lkOXh4QndzWExxd3dqNWVYRjJmUG51 -WEREejlFcjllajErdnAyTEVqCmQ5OTlONkN1QS9iWVk0OFJGaGJHbENsVFRETnlNekl5Nk5ldkgz -cTlucVNrcENwLzc0S0NBdDU3N3ozNjl1MUxWRlFVS1NrcEFQVHMKMmJQTWJOcVNwNS9Dd3NJS2o2 -L01zV1BIR0Rod0lNSEJ3UVFGQlhIdzRFR3lzN1B4OS9kbjdOaXgrUG41TVgzNmRGUCsxMTU3amRE -UQpVRUpDUW5qenpUZkxuT2U1NTU1RHI5ZlRyVnMzRGg4K1RIWjJObDI2ZEFIZ3M4OCtZOFNJRVF3 -YU5JaUFnQUErK09BRDA5OWRzMllOClBYdjJKRFEwbElrVEp6SisvUGh5T1gvOTlWZjY5ZXRIY0hB -d1hidDI1ZUxGaTFYZU8rRkVhckowcmhEWHV1R0dHNVR6NTg4clhsNWUKU2w1ZW5qSnIxaXdsTmpa -V1VSUkZtVFJwa2pKejVreEZVUlRselRmZlZGNTQ0UVZGVVJSbDFLaFJTdCsrZlUxTGJqLysrT1BL -d0lFRApsYUtpSXVXenp6NVRicmpoQmlVbEpVVXBLaXBTL1B6OFRFdkg1K1RrS0lxaUtFVkZSVXBZ -V0poeThlSkZSVkVVeFdBd0tOdTJiVk1VClJWRzh2THlVczJmUG12SVpqVWJsemp2dlZCSVRFMDNI -NXVibUtvcWlLQys4OElMeTVaZGZLb3FpS0lHQmdVcDZlcnB5OGVKRkpUSXkKc3NMbG9kZXZYMi9h -WitEVFR6OVY1c3lab3lpS292ejU1NTlLYUdpb29paUs4djc3N3l2VHBrMVRGRVZSVHB3NG9keCsr -KzNYUGI3MApPVXViTm0yYTh2SEhINXQraDRLQ0F1WHc0Y09LVHFkVHZ2bm1HNld3c0ZDNS8vNzds -UlVyVnBTNU4xZXVYRkVHRHg2czdOMjcxM1N2CjQrUGpUZmN0UHo5Zk9YejRzR2twK1U4Ly9WUnAz -YnExY3VMRUNlWDgrZk5LdTNidGxNdVhMeXRHbzFIeDh2SlNEaDgrckp3OWUxYnAKMnJXck1uNzgr -SEk1UjQwYXBheGJ0MDVSRkhVWjhDdFhycFE3UmpndmVjSVFWdGUwYVZNZWUreXhNdjg2QmZqdmYv -L0xtREZqQUJnNwpkaXlyVjY4RzFDYWtCeDU0Z0taTm01cU9mZUNCQjZoZnZ6NDllL2FrZWZQbTlP -M2JsL3IxNjZQWDYwMHJBU2NuSnhNVkZZVmVyK2ZRCm9VUDg5Tk5QVldhTGlZbWhYNzkrUkVWRnNX -M2JObmJ1M0luQllFQ3YxNU9ZbUVocWFpcC8vUEVIaXFJUUdocEtreVpOR0Q1OGVKWEwKVlgvOTlk -Y3NYTGdRdlY1UFpHUWtwMDZkNHZEaHd6ejAwRU9zV0xFQ2dPWExsNXY2Q2lvNi90Q2hRNVdlUHlR -a2hMaTRPTjU1NXgxeQpjbkpvMkxBaG9DNUxNM1RvVUJvMGFNRElrU05aczJZTkFGdTNibVhZc0dF -RUJnYVNtWm5KMnJWcnVYejVNdXZYcitmSko1OEUxT2JEClJvMGFsYnRXZUhnNGJkdTJwV25UcHZq -Nys1T1ptVWxhV2hwZHVuVEJ5OHVMRmkxYWNPKzk5MVo0VDNyMjdNbVVLVk9ZTjI4ZVY2NWMKb1c3 -ZHVsWCtOeEhPdytHWEJoSE9hZUxFaVhUdDJwWFJvMGVYK1hsbEg3eHQyN1l0ODdwa2ZhNzY5ZXZU -dkhsejA4L3IxNi9QNWN1WAp1WERoQWxPbVRHSGp4bzNjY3NzdERCMDZsSFBuemwwMzAyZWZmY2F4 -WThlWVAzOCtvQzVUSFJBUXdQcjE2OHNjZC96NGNmTit5VktLCmk0dUpqNCtuVDU4KzVkNXIyYkls -TzNic1lQbnk1YWFsR1NvN3ZtUzVqbXRGUlVYUnJWczNGaTllVEs5ZXZmanFxNi9LM0pjU0pmMDMK -NDhlUFo4V0tGUVFFQkRCcDBpVE9uVHVIVHFlcmNJWFNhMTE3dndzTEM2bFhyMTZadnFIS3poRWRI -YzJBQVFOTVM1R2twNmR6MDAwMwpYZmQ2d25uSUU0YXdpUnR2dkpHSEhucUlmLy83MzZZUG1rR0RC -dkg1NTU5VFhGek1KNTk4d3IzMzNsdXRjeXVLUW01dUxtNXViclJwCjA0WjkrL2J4NDQ4L1h2ZnZi -TnUyamRtelovUEZGMStZZmhZU0VzS3BVNmRNVHl5WExsMWkvLzc5dEd2WGpycDE2NUtSa2NHbFM1 -ZFkKdm54NWxaa2VmdmhoRWhJU3VIRGhBa0NaSmErSER4L09PKys4dy9uejV3a0lDS2p5K0lvY1Bu -ell0SFpSdjM3OVRQMGllWGw1ckZ5NQprcUtpSXBZdFcwWmtaQ1NGaFlWY3VIQUJMeTh2L3ZqakQx -YXRXZ1dvL1V0MzNYVVhDeGN1UkZFVWlvcUtLQ2dvcVBKMzArbDA5T2pSCmd4MDdkcENkblUxT1Rn -NkppWWtWRG1nNGVQQWczdDdldlBycXEvajYranJFWGlYQ2VxUmdDS3NxL1NIeTNIUFBjZWJNR2RQ -cnlaTW4KYy9Ub1VmUjZQYWRPbmVMWlo1K3Q4TzlkKzdxaTk5cTNiOCt3WWNNSUNBamdtV2VlcVhR -b2FzbS9xdVBqNHpsMzdoeDMzWFVYZXIyZQpwNTU2Q29BdnZ2aUNCUXNXRUJnWXlCMTMzTUh2di84 -T3dFY2ZmY1JMTDcxRTc5NjlDUW9LcXZERFVhZlRtWDcrd0FNUEVCb2FTa1JFCkJBRUJBVXliTnMx -MDNBTVBQTUN5WmN0NDZLR0h5dnlzb3VOTG43TzA1Y3VYRXhBUVFFaElDUG41K2FaeitmcjY4dDEz -M3hFY0hFeEEKUUFCUlVWRTBiTmlRS1ZPbUVCb2F5dkRod3hrMGFKRHBQRys4OFFZSERod2dLQ2lJ -WHIxNm1RWWVsRnl6c3V2WHJWdVhlZlBtTVh6NApjQ0lqSStuU3BRc2RPM1lzZDl5Y09YUG8wcVVM -b2FHaCtQcjZjc2NkZDFUNDMwVTRKMWw4VUFnbmxaMmR6ZURCZzlteFk0ZGRybmZwCjBpV2FOR2xD -WGw0ZTk5eHpEeDkvL0RHMzMzNjdYYTR0SElQMFlRamh4T3k1NDF4c2JDenIxcTNEemMyTi8vdS8v -NU5pVVF2SkU0WVEKUWdpelNCK0dFRUlJczBqQkVFSUlZUllwR0VJSUljd2lCVU1JSVlSWnBHQUlJ -WVF3aXhRTUlZUVFadmwvQ0hyZjBuUWF1Ym9BQUFBQQpTVVZPUks1Q1lJST0K - - - - - - ## Serial calculation of nearest neighbor eigenvalue distribution - - - In this section we numerically construct and diagonalize a large number of GOE random matrices -and compute the nerest neighbor eigenvalue distribution. This comptation is done on a single core. - - - def serial_diffs(num, N): - """Compute the nearest neighbor distribution for num NxX matrices.""" - diffs = ensemble_diffs(num, N) - normalized_diffs = normalize_diffs(diffs) - return normalized_diffs - python - 6 - 1 - - - - serial_nmats = 1000 -serial_matsize = 50 - python - 7 - 1 - - - - %timeit -r1 -n1 serial_diffs(serial_nmats, serial_matsize) - python - 8 - 0 - - - stream - 1 loops, best of 1: 1.19 s per loop - - - - - serial_diffs = serial_diffs(serial_nmats, serial_matsize) - python - 9 - 0 - - - - The numerical computation agrees with the predictions of Wigner, but it would be nice to get more -statistics. For that we will do a parallel computation. - - - hist_data = hist(serial_diffs, bins=30, normed=True) -plot(s, rhos) -xlabel('Normalized level spacing s') -ylabel('Probability $P(s)$') - python - 10 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x3475bd0&gt; - 10 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVl3QUFBRU1DQVlBQUFEWGlZR1NBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW -UFgreC9IWGdHaHVxQWh1cFNKcEFxS0FKcmhEdWFDaWxXbHV2M0xOCjhONWNzcmhtM2ZxcDljdmJj -czFkSTF0dmFxbFptVmd1bUlBYmkxdmxsaXNxYnJFb0lMTHovZjJCekpVQW1XR1pNek44bnZjeGo4 -dk0KK2M0NTcva1M4L0djN3puZm8xTktLWVFRUW9neTJHZ2RRQWdoaEdXUWdpR0VFTUlnVWpDRUVF -SVlSQXFHRUVJSWcwakJFRUlJWVJBcApHRUlJSVF4aThvSXhhZElrbWpadFNzZU9IVXR0ODlwcnIr -SGk0a0tYTGwwNGRlcVVDZE1KSVlRb2pja0x4c1NKRTltMmJWdXB5Mk5pCll0aXpadzhIRHg0a09E -aVk0T0JnRTZZVFFnaFJHcE1Yak42OWU5T29VYU5TbDBkSFJ6Tml4QWdjSEJ3WU0yWU1KMCtlTkdF -NklZUVEKcFRHN01ZeVltQmpjM2QzMXo1MmNuRGgzN3B5R2lZUVFRZ0RVMERyQVh5bWwrT3RzSlRx -ZHJzUzJwYjB1aEJEaS9zb3pLNVRaN1dINAordnB5NHNRSi9mT0VoQVJjWEZ4S2JWOVlZTXo1TVhm -dVhNMHpTRTdKS0RrbForR2p2TXl5WUd6YXRJbWtwQ1RXclZ1SG01dWIxcEdFCkVFS2d3U0dwTVdQ -R0VCRVJRV0ppSWkxYnRtVCsvUG5rNU9RQUVCUVVoSStQRDcxNjllTFJSeC9Gd2NHQk5XdldtRHFp -RUVLSUVwaTgKWUh6OTlkZGx0bm4zM1hkNTk5MTNUWkRHTlB6OS9iV09ZQkRKV1hrc0lTTkl6c3Bt -S1RuTFM2Y3Fja0JMWXpxZHJrTEg0NFFRb2pvcQo3M2VuMlkxaENDR0VNRTlTTUlRUVFoaEVDb1lR -UWdpRFNNRVFRZ2hoRUNrWVFnZ2hEQ0lGUXdnaGhFR2tZQWdoaERDSUZBd2hoQkFHCmtZSWhoQkRD -SUZJd2hCQkNHRVFLaGhCQ0NJTkl3YkJ3OXZZTzZIUzZNaDQxeTJ4amIrK2c5VWNSUXBnNW1YelF3 -aFhjZGJDc1BqQ3MKVFhYdlN5R3FDNWw4VUFnaFJKV1NnaUdFRU1JZ1VqQ0VFRUlZUkFxR0VFSUln -MGpCRUVJSVlSQXBHRUlJSVF3aUJVTUlJWVJCcEdBSQpJWVF3aUJRTUlZUVFCcEdDSVlRUXdpQlNN -SVFRUWhoRUNvWVFRZ2lEU01FUVFnaGhFQ2tZNHE0YU12MjVFT0srWkhwekMxZVowNXZmCnY0MzB0 -UkRXUXFZM0YwSUlVYVdrWUFnaGhEQ0lGQXdoaEJBR2tZSWhoQkRDSUZJd2hCQkNHRVFLaGhCQ0NJ -Tm9VakFpSXlOeGMzT2oKWGJ0MkxGdTJyTmp5akl3TXhvOGZqN2UzTjM1K2ZtemV2Rm1EbEVJSUll -Nmx5WFVZM3Q3ZUxGbXloTmF0V3hNUUVNRGV2WHR4ZEhUVQpMLy9vbzQvNDdiZmZXTGx5SlJjdlh1 -VHh4eC9uN05temQ2ODV1Q2U4WEljaDEyRUlJWXhtTWRkaHBLU2tBTkNuVHg5YXQyN05nQUVECmlJ -Nk9MdEttUVlNR3BLV2xrWk9UUTNKeU1uWHExQ2xXTElRUVFwaVd5UXRHYkd3c3JxNnUrdWZ1N3U1 -RVJVVVZhVE5tekJqeTh2SncKZEhTa1Y2OWVyRjI3MXRReGhSQkMvRVVOclFPVVpQbnk1ZFNvVVlO -cjE2N3grKysvRXhnWXlNV0xGN0d4S1Y3ZjVzMmJwLy9aMzk4ZgpmMzkvMHdVVlFnZ0xFQjRlVG5o -NGVJWFhZL0l4akpTVUZQejkvVGx5NUFnQTA2ZFBaK0RBZ1FRR0J1cmJqQnc1a3NtVEp4TVFFQUNB -CnI2OHZYMzc1WlpFOUU1QXhESkF4RENHRThTeG1ES05CZ3daQXdabFNjWEZ4N055NUUxOWYzeUp0 -K3ZidHk1WXRXOGpQeitmOCtmTWsKSnljWEt4WkNDQ0ZNUzVORFVvc1hMeVlvS0lpY25CeG16SmlC -bzZNaklTRWhBQVFGQlRGNjlHaE9uRGpCbzQ4K2lwT1RFMHVXTE5FaQpwaEJDaUh2STlPWVdUZzVK -Q1NHTVpUR0hwSVFRUWxnbUtSaENDQ0VNSWdWRENDR0VRY3p5T2d4aG1QalVlR2dMcU8yUVZ3dHlh -MEZDCkI4aXkxenFhRU1JS1NjR3dJRW9wUWsrSHN2NzRldlplMmt0NlRqcDBCMWdJdHRsZ2R3Y2NU -OEoxTHpnM0FFNE9od1IzcldNTElheUUKbkNWbEFaUlNiRDJ6bFhuaDg4ak56K1h2WGYrT1gycy9I -bW44eU4ycjMrL3BBN3M3MEdvUFBMd0RPcTJGT0QrSTJBQUpjcGFVRUtKQQplYjg3cFdDWXVmalVl -TVpzR3NPdHpGdk04NXZITUxkaDJPaitPL1IwMzlOcTdkTEJad1gwZUJYT2pZVnRpK0dPVXlsYmtv -SWhSSFVoCnA5VmFvZDBYZHROMWRWZUd0QnZDcjFOL1piajc4Q0xGb2t3NWRXSGZiRmdDcExXQXFW -N2dFbFpsZVlVUTFrMzJNTXlRVW9xRkJ4YXkKOE1CQzFneGJRMStYdnFXMk5lckNQWmN3ZUdvQy9E -NFdmdmsveUt0WnZNMTkxbUdOZlMxRWRTU0hwS3pJYTd0ZVk5dlpiV3dldlpsVwpEVnJkdDYzUlYz -clhTWUJoNHd0KzN2QXQ1TlFwM3FhVWRWaGpYd3RSSGNraEtTdngvcjczK2ZHUEg5bjUzTTR5aTBX -NTNIR0NyMytFCk80N3c3RUNvbFZyNTJ4QkNXQ1VwR0daazlhSFZyRHE0aWgzUDdzQ3hqbVBaYnlp -di9Ccnd3eGR3b3lPTWZ4enFKRmJkdG9RUVZrTUsKaHBuNDd1UjN6SXVZeDg3bmR2S2cvWU5WdjBG -bEF6OHRoM1A5WVlJZjFLLzZUUW9oTEpzVURETnc0ZVlGZ2tLRDJEeDZNMjBkMnBwdwp5enJZOWEr -Q1FmQm5rY05UUW9qN2trRnZqZVhtNStMM2hSL0RYSWNSM0NQWTZQZFh6dlRtQ2diYmdNTUFXQmNL -K1hZbHJzUFMrMW9JClVVQUd2UzNVTzVIdlVNZXVEaTkzZjduWU1udDdCM1E2M1gwZmxVTUgyd0Js -QzRPblVYWUJFa0pVUjFJd05MVHYwajVXSFZ6RmwwOTkKV2VJRmVXbHBOeW40OHI3Zm81TGtBeHZY -dzBQUjBPUGZsYmRlSVlUVmtJS2hrWlRNRko3OS9sbENob1RRb240THJlTVV5SzVmY0VqSwpkeW00 -ZjZ0MUdpR0VtWkV4REkxTStHRUN0ZTFxc3lwd1ZhbHRUSGY3MWIrMGFYNFluZzJBVC9kRGNqdjlj -a3Z0YXlGRVVUS0dZVUdpCjRxUFllWDRuSC9UL1FPc29KYnZXR2NMbndZalJZSnVsZFJvaGhKbVFn -bUZpU2lsbWJaL0Znc2NYVUs5bVBhM2psQzcyNzVEU0N2cTkKcG5VU0lZU1prSUpoWXQ4Yys0YWN2 -QnllODN4TzZ5aGwwTUdQbjRMYkptajNrOVpoaEJCbVFBcUdDZDNKdWNPcllhK3lLR0NSY2RPVQph -eVhEQWI1YkEwOU1saXZCaFJCU01FenB3d01mNHZ1UUw3MWI5OVk2aXVFdTlZYURmNE5oa0plZnAz -VWFJWVNHcEdDWXlOVzBxeXlLCldzUjcvZDdUdjFiV2hYbG1JL0tmWUFQdjdYdXY3TFpDQ0tzbEJj -TkUvdm5MUDVuU2VRb3VqVnowcjVWOVlaNlpVTGJ3SFN5S1dzVHgKUDQ5cm5VWUlvUkVwR0Nad0p1 -a01vYWREZWIzMzYxcEhLYjlVZVB1eHQ1bXlaUXI1S2wvck5FSUlEUmgxNFY1K2ZqNEhEaHdnTGk2 -TwpoSVFFR2pac1NJY09IZWpTcFFzMk5xYXZQWlp5NGQ2VUxWTm9VYjhGOC8zbkYzbTk3QXZ6Tkxw -d3I1VGxlZmw1K0gzaHgrZ09vM25SCjU4VXkxaWVFTUZkVmVvdlc3T3hzRmkxYVJGNWVIZzBiTnNU -RnhZVm16Wm9SSHgvUHVYUG51SGJ0R2syYU5HSG16Sm5ZMnRxVzZ3T1UKaHlVVWpDdXBWK2k0cWlO -bnBwK2hjWjNHUlpaWldzRlFTbkV5NFNSOXZ1akQ0UmNPMDdKQnl6TFdLWVF3UjFWV01MS3lzbGkz -YmgxRApoZ3pCeWNtcDFIYm56NTluMTY1ZFRKa3l4ZWdRNVdVSkJlT1ZIYStRci9KWkZMQ28yREpM -TEJnQWIwZThUY3pWR0g0Yy9hTjVEYzRMCklReFNwWHNZNXNyY0MwYlNuU1RhTFd2SGIzLzdqWWZz -SHlxMjNMSUtoaDJRVy9DakxSQUVSQUQzaklIWHI5K0kxTlRrTXJZamhOQ2EKeWVhU09uWHFGRC85 -OUJQSnljbWNQSG5TNkExV0o4dGpsalBNYlZpSnhjTHk1S0kvZXl0UHdZLzdZV0F6cUoya2Y3M2dy -QzhoaExVcQpWOEZvMXF3WjNicDFZK3ZXclh6MTFWZFZrY3ZpM2M2K3pZcllGY3p1TVZ2cktGVWp2 -anVjR0FFRGpMOUxvQkRDTWhsZE1LNWV2Y3J1CjNidng5dlltT0RpWXBrMmJWa1V1aTdmNjBHcjhu -UDFvNzloZTZ5aFZaOWNDY0FtRE5ydTBUaUtFTUFHakM4YjQ4ZU54ZFhWbDFhcFYKdlBqaWl4dzll -clFxY2xtMDdMeHNGaDVZeUd1OXJIeW0xK3o2OE5OeUNId1JiSEswVGlPRXFHSVZHdlMrZWZNbURS -czIxT3hNR1hNZAo5RjUvYkQwZkhmcUkzZU4zMzdlZFpRMTZsN1pjd2JPRDRPeEFpSnBsbHI4UElV -UlJWVGJvblpXVnhSOS8vRkhpc2thTkdoVXBGbnYyCjdERm9vNUdSa2JpNXVkR3VYVHVXTFZ0V1lw -dlkyRmk2ZHUyS201c2IvdjcrQnEzWFhJUWNDbUZxbDZsYXh6QVJIV3hiQkwzZmdUcGEKWnhGQ1ZL -VXlDMGF0V3JWSVNrcGkrZkxsSlo0VmxacWF5cDQ5ZTVneFl3YU5HalV5YUtNelo4NGtKQ1NFc0xB -d1ZxeFlRV0ppWXBIbApTaWttVFpyRXYvNzFMMDZlUE1tMzMxck8vYVZQSjUzbTJKL0hlTDczMVB0 -T0xHaFYxeThrdXNIdlkrRXhyWU1JSWFxU1FXTVlwMDZkCjRzMDMzOFRUMDVONjllb3hkZXBVSmt5 -WXdOTlBQODJjT1hOSVRrNW15WklsZUhoNGxMbXVsSlFVQVByMDZVUHIxcTBaTUdBQTBkSFIKUmRv -Y1BIaVFUcDA2MGE5ZlB3QWNIUjJOL1Z5YVdYMTROUk84Sm5ENzFpM3VQN0dnbFIyNkNaOEhidkRi -amQrMFRpS0VxQ0kxREdsMAo5T2hSYnR5NFFWcGFHa3VYTHFWZnYzNzA3bDIrZXpyRXhzYmk2dXFx -Zis3dTdrNVVWQlNCZ1lINjE3WnYzNDVPcDZOMzc5NDBiTmlRCmFkT21FUkFRVUs3dG1WSldiaFpm -SHYyU2ZaUDI4UUZtZXIvdXFwTFpDQ0xnSlkrWDJEVnVsM1h0UVFraEFBTUxScWRPbmFoWnN5YU4K -R3pkbTd0eTVMRisrdk53Rnd4Q1ptWmtjUFhxVXNMQXc3dHk1US8vKy9UbDI3QmkxYTljdTFuYmV2 -SG42bi8zOS9UVWQ3L2orMVBkMApiTnFSZG8zYmFaWkJVNGNnNFU0QzM1LzZucWZkbnRZNmpSRGly -dkR3Y01MRHd5dStJbVdBU1pNbXFaTW5UK3FmLy9EREQ0YThyVVMzCmJ0MVNYbDVlK3VmVHBrMVRv -YUdoUmRxRWhvYXE0T0JnL2ZPUkkwZXFiZHUyRlZ1WGdmRk54djhMZjdYKzJIcWxsTHA3ekVtVjhT -aXIKVFdXc3c3Ulp3czZGcVRhTDI2aU1uQXlOZnh0Q2lOS1U5N3ZUb0RHTWMrZk9FUndjVEpzMmJl -alpzeWNmZi93eGE5ZXU1Y0tGQzJ6Ywp1TkdvQXRXZ1FRT2c0RXlwdUxnNGR1N2NpYSt2YjVFMjNi -cDFJeUlpZ2p0MzdwQ2NuTXlSSTBmbzJiT25VZHN4dGROSnB6bVJjSUtuClhKL1NPb3FtK3JyMHhi -T1pKNHNPRko5c1VRaGgyUXk2RHVQNDhlTjA2TkFCS0ppVk5qbzZtdGpZV0tLam8vbjk5OTlKVFUw -MWFxTVIKRVJGTW5UcVZuSndjWnN5WXdZd1pNd2dKQ1FFZ0tDZ0lnRldyVnJGczJUS2NuSno0Mjkv -K3h1alJvNHVITjZQck1JSjNCR05yWTZ1LwpCV3ZaMTFoQSthOTkwS0tOWWV0UVNuRXUrUnkrbi9q -eTI5OStvMFg5Rm1XOFJ3aGhhcHJOVnJ0bzBTSm16WnBWa1ZXVW03a1VqTXpjClRGb3Rhc1greWZ0 -cDY5QVdxTjRGQStDMVhhOXhOZTBxWHo3MVpSbnZFVUtZbXNsbXEvMnJHVE5tVkhRVkZ1LzdrOS9q -MmN4VFh5d0UKdk43cmRYYWUyMG5NbFJpdG93Z2hLa21GQzRZcDc3Qm5ya0lPaGZCQzV4ZTBqbUZX -NnRlcXo0SytDNWp4OHd5NUI3Z1FWc0wwTitLMgpNbWVTem5BeThTUlB1ajZwZFJTek04NXpITG41 -dVd3NHZrSHJLRUtJU21CVXdiaHk1VXBWNWJCWTN4ejdobEVkUmxIVHRxYldVY3lPCmpjNkc5L3Uv -enh1L3ZFRjJYcmJXY1lRUUZXUlV3ZWpmdnorREJnMWl3NFlONU9USWROWktLYjQrOWpXalBZcWZ3 -VlU5MVNnMlgxWmYKbDc2Y2l6bEhyUjYxME9sMDJOczdhQjFTQ0ZGT1JoV01FeWRPOE9hYmI3Smp4 -dzdhdFd2SDlPblRPWHo0Y0ZWbE0zdkgvanhHZWs0NgozUjdxcG5VVU0zSFBiVnp2ZllRZGhUNU5v -V2FxM01aVkNBdFc3dE5xdDIzYnhxUkprOGpMeTZOdDI3WXNYTGlRYnQxTSs4V3A5V20xCmhZZGEz -dS8vZnJGbDFmVzAybExiREhzT2JqNE00ZlBONGxSb0lhb3prNXhXR3g4Znp6dnZ2SU9IaHdlZmZm -WVpYM3p4QmRldVhXUGwKeXBWTW1qVEo2STFiTXFXVWZ2eENHR0QzMitDekRPcHFIVVFJVVY0R1RU -NVlhTkNnUVV5Y09KSHc4UEFpVTQ1N2Vub3lkV3AxdVdGUQpnVVBYRHFIVDZlamN2TFBXVVN6RExX -ZjRkUno0TGRZNmlSQ2luSXc2SkJVVEU0T1BqMCtacjVtS2xvZWtnbmNFVTl1dU5tOC85bmFKCnkr -V1FWQW5xSk1JMEowN1BQbDE5Wi9RVndneVk1SkJVU1hzUmhYTS9WU2Y1S3AvMXg5Y3p1b09jSFdX -VU80NXdBTjdZL1liV1NZUVEKNVdEUUlhblkyRmhpWW1KSVNFaGc1Y3FWK3NxVWtKQmc4RzFacmNt -Qnl3ZG9VS3NCSFpwMDBEcUs1WW1DdlUvdEpmWktMRjBmN0twMQpHaUdFRVF6YXcwaEpTZUh5NWN2 -azVPUncrZkpsNHVQamlZK1BwMW16Wm56KytlZFZuZEhzZkhQOEc3bjJvcnh5WUs3ZlhGNE5lMVhP -CmxoTEN3aGcxaG5INjlHa2VlZVNScXN4akZDM0dNSEx6YzNub3c0ZllNM0hQZlkvRHl4aEc2VzF5 -OG5Mb3NMSURTd2N1SmFDdCtkOTYKVndoclU2VmpHSVgzMng0d1lBQnQyclFwOG5CeGNURjZvNVlz -SWk2Q2grd2Zra0hiQ3FoaFU0Ti85ZjBYcjRhOUtoTVRDbUZCRE5yRAp1SFhyRmcwYk5pUXhNYkhF -NWZlZVltdEtXdXhoVE5reWhmYU4yeFBjSS9pKzdXUVBvL1EyU2ltVVVuVC90RHZUZktieGJLZG55 -M2lQCkVLSXlhWFlESlMyWnVtQms1MlhUWW1FTERnY2RwbFdEVnZkdEt3V2o5RGFGdjdQSWk1R00r -MzRjZjB6N2cxbzFhcFh4UGlGRVpTbnYKZDZkQlowbmR1SEhqN2hkZ1VVb3BkRG9kVFpvME1YckRs -aWpzZkJqdEhkdmowZEpMNWtRcXR4cEYvMXNhQXcvMGZnQ2lDcDdXcjkrSQoxTlJrYmFJSkllN0xv -SUxScTFjdmdHSkZvN0JnbkQ1OXV2S1RtYUZ2am4zRDZBNmoyWjgyQThQK3RTMktLNXlnOEs1ZHgy -QmNYemh5CkdySWFrSlltL1NhRXVUSm8wUHVSUng3aHpKa3paR2RuazVPVFEzWjJ0djduNmpMTmVW -WnVGbHRPYjJHRSt3aXRvMWlYUHozZ3pHRG8KK1lIV1NZUVFaVEJvRDJQZHVuVUFIRHg0c05peWtn -NVZXYVB3dUhEY25keHBYcis1MWxHc1QvaDhDUEtHbUJmaHR0WmhoQkNsTWFoZwpOR2pRQU5EdWJD -aHpzT1gwRm9ZK01sVHJHTllwcFJVY21RVCs4eUJVNnpCQ2lOSVlOVnN0UUdKaUl0dTNiMGVuMHhF -UUVFRGp4bzJyCklwZFpVVW9SZWpxVXJXTzNhaDNGZXUxOURhYTExdzkrQ3lITWoxR1RENjVkdTVi -dTNidHo0TUFCOXUvZlQvZnUzVm03ZG0xVlpUTWIKeC80OGhrNm53OTNKWGVzbzFpdkRBZllIdytO -YUJ4RkNsTWFvNnpDOHZMell0bTBielpvMUF3cE90dzBJQ09EbzBhTlZGdkIrVEhVZAp4b0k5Qzdo -Kyt6cExCeTNWYjlmU3JuMndpQ3cxTW1CNkhRNjhmRUJ1ZXl0RUZUTEo5T1lPRGc1a1pHVG9uMmRr -Wk9EZzRHRDBSaTFOCjZPbFFoand5Uk9zWTFpKzNOb1REN0oyelpXSkNJY3lRUVdNWTA2ZFBCOERK -eVlrdVhiclF1M2R2bEZMczNidVgvdjM3VjJsQXJmMloKL2ljbkVrN2cxOXBQNnlqVnc2K1FsSkhF -VDJkK0l2Q1JRSzNUQ0NIdVlWREI2TktsaS83MDJVR0RCdWxmZi9ycHA2Myt0TnFmei94TQpQNWQr -TW5XRnFlVER2L3IraXptNzVqQ3c3VUJzYld5MVRpU0V1RXZta2lyRGlBMGpHUExJRUNaNFRTaXlY -YXNaTnpDN0xEcnk4L1BwCi9YbHZudS84ZkpGK0YwSlVEcE5NUHBpUmtjR09IVHZZdm4wN04yL2Ux -TzlkRkY3WVoycFZYVEN5ODdKcDhrRVRUazgvVFpPNi81MHYKU3dwRzFXNUhLY1crUy9zWXMya01m -MHo3ZzlwMnRjdFlweERDR0NZWjlIN2pqVGZZczJjUDI3ZHZ4OS9mbi9qNGVKeWRuWTNlcUtXSQpp -SXZBemNtdFNMRVFwdEd6VlUrNnRPakMwdWlsV2tjUlF0eGwxQjVHNTg2ZE9YejRNQjA2ZE9ENDhl -T2twS1RRcjE4L1ltTmpxekpqCnFhcDZEMlBHenpOb1ZxOFpyL2QrdmRoMnJldGY5ZWFVNWIrLzA5 -TkpwK254YVE5T3ZuZ1NwN3BPWmF4WENHRW9rK3hoMk5uWkFmRG8KbzQ4U0docktqUnMzeU16TU5I -cWpscUR3Nm02WkRzVFVDcVkvMStsMHRIZHNUMUo0RWsyZWFhSi9UYWZUWVc5di9hZHlDMkdPakNv -WQpMNzc0SWpkdjNtVFdyRmtzWDc2YzRjT0g4OVpiYjFWVk5rMmRTRGhCbnNyRG80bUgxbEdxbWNM -cHorOCtJaEtnWTJOb2ZFci9tdHlMClJBaHRHSDJXVk9GY1VnQUJBUUdhVGtoWWxZZWszdHY3SHBk -VEw3Tjg4UElTdDJ0ZGg0SE1LVXNKeTN1K0R5MzN3VGViOVcwcytPUSsKSVRSbmtrTlM5ODRsRlJV -VlJZOGVQYXgyTHFrdHA3ZkkxZDNtSW5vR05QME5uTU8xVGlKRTlhYU00T25wcWE1ZHU2Wi9mdjM2 -ZGVYcAo2V25NS3BSU1NrVkVSQ2hYVjFmVnRtMWJ0WFRwMGxMYnhjVEVLRnRiVzdWcDA2WVNseHNa -MzJBSjZRbksvbC8yS2lNbm85VHRnaXJqClVSbHRUTFVkYzhwU3luS1ByeFV2ZEZibzhxcnM5eTVF -ZFZIZXZ5Rk41cEthT1hNbUlTRWhoSVdGc1dMRkNoSVRFNHUxeWN2TDQ5VlgKWDJYZ3dJRW1QL3p3 -ODVtZmViek40enhRNHdHVGJsZmN4N0ZSa0Y4RE9tcHp6WThRb3B4elNSWGU0N3M4YzBtbHBLUUEw -S2RQSHdBRwpEQmhBZEhRMGdZRkY1dzFhdG13WkkwYU0wT1NVWGJsWmtqblN3WTZGTUh3c25OQTZp -eERWVTdubWtpcjh1VHh6U2NYR3h1THE2cXAvCjd1N3VUbFJVVkpHQ2NlWEtGVFp2M3N3dnYveENi -R3lzU2VlcnlzN0xadVBoYjlrNGNTT1QweWViYkx2Q0FKZDZ3Wld1MFAyeTFrbUUKcUpZTUtoZ1RK -a3dvOHZ6UW9VUG9kRG82ZCs1Y0ZabDQ2YVdYZVBmZGQvVWorZmM3SkRWdjNqejl6LzcrL3ZqNysx -ZG8yM3N1N29GRQpCZWxsbmNrak5CSDJIanovSFRkdTM2QnB2YVphcHhIQ0lvU0hoeE1lSGw3eEZS -a3o0QkVSRWFIYXRXdW5CZ3dZb0FZTUdLRGF0V3VuCklpTWpqUm8wdVhYcmx2THk4dEkvbnpadG1n -b05EUzNTcGsyYk5zcloyVms1T3p1cmV2WHFxU1pObXFqTm16Y1hXNWVSOFEzeTByYVgKRkgzTWZB -RFlxck1Zc0k0QTFOVFFxWlgrdXhlaXVpanZkNmRSN3dvTURGUW5UNTdVUHo5MTZwUUtEQXcwZXFO -ZVhsNHFJaUpDWGJodwpRYlZ2MzE0bEpDU1UybmJDaEFrbVBVdXEvYkwyaXVZVzlPVnBkVmtNV0Vk -dGxPUDdqdXI0bjhjci9mY3ZSSFZRM3U5T284NlNTazVPCnBrV0xGdnJuelpzM0p6azUyZWk5bXNX -TEZ4TVVGRVMvZnYzNCs5Ly9qcU9qSXlFaElZU0VoQmk5cnNwME9lVXlTUmxKY0YzVEdLSXMKR2ZC -YXI5ZVl2WE8yMWttRXFGYU11dEo3MWFwVnJGdTNqbWVlZVFhbEZOOTk5eDFqeG94aDZ0U3BWWm14 -VkpWOXBmZm5SejVuKzdudApySDltUFpqclZjOVduOFd3ZFdUbVpPSyswcDJQaDN4TVg1ZStaYlFY -UXR5cnl1K0hvWlRpMnJWclhMOStuZERRVUhRNkhVT0dETUhiCjI5dm9qVmFXeWk0WVl6ZU41ZkUy -anpPbHl4UXM2Y3ZUdXJJWXRnNmxGQnVQYitTZFBlOXc2SVZEY21jK0lZeGdrb0xSc1dOSGpoMDcK -WnZSR3FrcGxGb3g4bFUvemhjMkplVDRHNTBiT1dOS1hwM1ZsTWJ4Z0tLWG8rVmxQWHVqeWd0eVpU -d2dqVlBsY1VqcWREbDlmWDdadQozV3IwUml6QnNUK1BZVi9MbnRZTlcyc2RSUmhJcDlPeGNNQkMz -dmpsRGRLejA3V09JNFRWTTJyUU96bzZtcUZEaDlLc1dUTzh2YjN4Cjl2YXVzbXN4VEczbnVaMzBk -ekh1cW5XaHZlNHR1OU96VlU4K1BQQ2gxbEdFc0hwR0RYcWZPM2V1eE4yWXRtM2JWbW9vUTFYbUlh -bEIKYXdjeHBmTVVublo3Mm9EcHk4M3I4SXgxWlRGa0hYWVUzRGZqcmtiQUZHQWxjTHZncGZyMUc1 -R2FhdndaZkVKVUIxVTZocEdUazhQMgo3ZHZadTNjdkFRRUIrUG41WVdOajFNNUpsYWlzZ3BHVm00 -WFRCMDVjZk9raWpXbzNrb0poaWRzWkVBeTFVbUhMeC9vMmxYbENoQkRXCnBFckhNRjUvL1hWV3JW -cUZrNU1UYjczMUZvc1hMelo2UStic1FQd0IzSnpjYUZTN2tkWlJSSGxGL2hQYWI0Ym1oN1ZPSW9U -Vk1tZ1AKbzB1WExrUkZSV0ZuWjhldFc3ZDQ4c2tuaVlpSU1FVysrNnFzUFl4Ly92SlBkT2o0djhm -L1Q3OWVpLzdYdGtWbnFjQTZ2RCtGTHF2aAowLzJnYkdVUFE0aFNWT2tlUm41K1BuWjJkZ0EwYk5p -UTFOUlVvemRrenNMT2g5SFBwWi9XTVVSRkhaMEl5cWFnY0FnaEtwMUJleGkyCnRyYlVxVk5IL3p3 -akk0UGF0V3NYckVDbjA2eUFWTVlleHMyTW03UmUzSnFFZnlSUXEwWXQvWG90L2wvYkZwdWxndXRv -K2l1TTZ3OHIKa3VGTzNuM1hJZ1Bqb3JvcTczZW5RZE9iNStYZC93L1BrdTJPMjAzUFZqMzF4VUpZ -dUJ1ZThOdi9RTC9GOE9QOS95RFMwbVNhZWlHTQpvZjJwVGhyYmVYNG4vZHJJNFNpckVqNGYyZ0l0 -OTJtZFJBaXJVdTBMUnRqNU1Qby9MQmZzV1pVc2U5Z09EUGtiMk9TVzJWd0lZWmhxClhURGlic1dS -bXBXS1J4TVByYU9JeW5ZY3VOMFVmSlpwblVRSXExR3RDMGJoMlZFMnVtcmREZGJycHhYUTV4Mm9m -MFhySkVKWWhXcjkKVFNuakYxWXU2UkU0T0JVQ1h0WTZpUkJXb2RvV2pIeVZ6Njd6dStUNkMydTM1 -M1Y0TUFZZTNxRjFFaUVzWHJVdEdMOWUveFhIT282MApiTkJTNnlpaUt1WFVnWitYd2VBWG9VYW0x -bW1Fc0dqVnRtRHNQTDlUem82cUxrNFBnWVFPME9NRHJaTUlZZEdxYmNFSU94OG00eGZWCnljOUxv -TnNTYUhSZTZ5UkNXS3hxV1RBeWN6TTVFSDhBZjJkL3JhTUlVMGxwRFh0ZmhTZWVCMTIrMW1tRXNF -alZzbURzdTdTUGprMDYKMHVDQkJscEhFYVowNEdXb2tRRmRWMnFkUkFpTFZDMExob3hmVkZQS0Zu -NzRBdnpuZ2NNWnJkTUlZWEdxWmNHUThZdHFMS2s5Ukw0QgpUMDBvbVBSV0NHR3dhbGN3a3U0a2NT -YjVETDRQK1dvZFJXZ2xlZ2JrMTREdVdnY1J3ckpVdTRLeE8yNDN2VnIxb3FadFRhMmpDSzBvCkc5 -ajhPZlNDRXdrbnRFNGpoTVdvZGdVajhtSWsvcTM5dFk0aHRIYlRCWDZ4b2NNL082Q3oxYUhURlgv -WTJ6dG9uVklJczFMdENrYkUKeFFqNnRPNmpkUXhoRGc3bVEyWi82UGwvRk56QnIrZ2pMZTJtcHZH -RU1EZlZxbUFrWnlSejRlWUZPamZ2ckhVVVlTNDJmd3JkRmhmYwoybFVJY1YvVnFtRHN2YlNYYmc5 -MXc4N1dUdXNvd2x5a3RvU2Q3OE93OFdDYnJYVWFJY3hhdFNvWUVSY2o4R3Z0cDNVTVlXNk9Ub0NV -Cmx0RG5iYTJUQ0dIV3FsWEJpTHdZS2VNWG9nUTYyUEl4ZEZrTnJTTzFEaU9FMmFvMkJTTTFLNVdU -Q1NmeGVkQkg2eWpDSE4xdURqOTgKRHNQSFF0MGJXcWNSd2l4Vm00S3gvL0orSG0zeEtMVnExTkk2 -aWpCWFp3Y1ZISjRhL2orZ3k5TTZqUkJtcDlvVWpJaUxFZmc1KzJGdgo3MURpT2ZmM1BrUTF0bnQr -d1d5MmZtOXBuVVFJczZOSndZaU1qTVROelkxMjdkcXhiTm15WXN2WHJsMkxwNmNubnA2ZWpCMDds -dE9uClQxZDhteGNqNmRPcXo5MXo2NHVmYzEvMElhb3RaUXViMWtIblQrQmhyY01JWVY0MEtSZ3pa -ODRrSkNTRXNMQXdWcXhZUVdKaVlwSGwKTGk0dVJFWkc4dXV2dnhJUUVNRGJiMWZzN0pVN09YZjQ5 -ZnF2ZEc4cGt3Y0pBOXh1QnQrdGhhY2dQalZlNnpSQ21BMlRGNHlVbEJRQQordlRwUSt2V3JSa3dZ -QURSMGRGRjJuVHYzcDBHRFFydVZSRVlHRWhFUkVTRnRoa1ZIMFducHAyb1kxZW5RdXNSMVVpY1A4 -VFkwSEpXCnkxS25EcEhwUTBSMVkvS0NFUnNiaTZ1cnEvNjV1N3M3VVZGUnBiYi8rT09QR1RwMGFJ -VzJXVGgrSVlSUjl1WkQxaURvRzB4cGh5OWwKK2hCUm5kVFFPc0Q5aElXRnNXYk5HdmJ2MzE5cW0z -bno1dWwvOXZmM3g5L2Z2MWlieUl1UnpPNHh1d29TQ3F1bWdPKytncURPY0trWAovUEdrMW9tRUtK -Znc4SERDdzhNcnZCNmRVc3Frbzd3cEtTbjQrL3R6NU1nUkFLWlBuODdBZ1FNSkRBd3MwdTYzMzM3 -ajZhZWZadHUyCmJiUnQyN2JFZGVsME9zcUtuNVdiaGVNSGpseDUrUXIydGV6dm5nVlYxa2N1cTAx -bHJNT2N0bU5PV2N6d016OFlEV09Id245MndnM1AKWW0xTS9DY2tSSVVaOHQxWkVwTWZraW9jbTRp -TWpDUXVMbzZkTzNmaTYxdjBaa2FYTGwxaStQRGhyRjI3dHRSaVlhaVlLekc0T3JwaQpYOHUrUXVz -Ylh5WTFBQUFXSjBsRVFWUVIxZGdWWC9ocGVVSFJxSDlGNnpSQ2FFYVRRMUtMRnk4bUtDaUluSndj -WnN5WWdhT2pJeUVoCklRQUVCUVh4MWx0dmtaeWN6TlNwVXdHd3M3TWpKaWFtWE51UzZVQkVwVGcr -RWhxZGg3RkQ0UE5JeUs2dmRTSWhUTTdraDZRcWt5RzcKVlFPK0dzQTBuMms4MGY0Si9Yc3M1N0NK -R1I2ZXNacnRsQ2VMZ3FFdlFQMnI4TTNtZ3R1OHlpRXBZWUVzNXBDVUtlWGs1UkFWSDBXdgpWcjIw -amlLc2dnNjJyZ1NiWEJnNEU3bklVMVEzVmwwd0RsODdUSnRHYlhDb0xlZktpMHFTYndjYk54VE1h -dHQ5a2RacGhEQXBzejZ0CnRxSmsvRUpVaWF3R3NHNHJUTzRCY2htR3FFYXNlZzlEYnBna3FreEtL -L2g2TXd5RkE1Y1BhSjFHQ0pPdzJvS1JsNS9IdnN2NzZOMnEKdDlaUmhMVzYxZ1craHllL2VaTG8r -T2l5Mnd0aDRheTJZUHgyNHplYTFXdEcwM3BOdFk0aXJObForUHpKenhuNjlWQmlycFR2MUc4aApM -SVhWRmd3WnZ4Q21FdmhJSUo4OStSbER2eDVLN0pWWXJlTUlVV1dzdG1ESStJVXdwU0dQRE9IVEp6 -NWx5TmREcEdnSXEyVlZGKzdaCjJ6djhkL2JRZndBaFFHcEo3N1NVaTh2TStTSTJTOTlPNVdXNTk3 -L0JMWDlzWWZLUGs5azZkaXRkSCt4YXhudUYwSVpjdUFmL3ZadWUKMHpISWNvRlV1WnVlTUsyaDdZ -Znl5Uk9mTU9UcklSeThlbERyT0VKVUt1dThEcU4xSkZ5VThRdWhqU2ZhUDRGU2lzQjFnV3g4WnFP -TQpwUW1yWVZWN0dIck9FWEJSeGkrRWRwNTBmWkkxdzlZd1lzTUkxdnkyUnVzNFFsUUtLeXdZQ2xw -SFFKd1VES0d0L2cvM1ovZjQzYnk1CiswM21oYytUU1FxRnhiTytndUZ3dG1BVzBWdk9XaWNSZ2c1 -Tk9oQTFPWXFmei83TXVCL0drWldicFhVa0ljck5xczZTMHVsMDBIazEKT0lmRGQ2VWRCckNrTTNr -czc0d2h5OWxPNVdVcDYwL0kzdDZCdE15Yk1BeW9DM3dEWlB4M2VmMzZqVWhOVFM1ak8wSlVIamxM -cXBBTQplQXN6azVaMkUzSVViTXlEeTYvQzgyMmg4UjhVbnJtblB4VmNDRE5uaFFWRHhpK0VtVkky -RVBZdTdIc1ZKdldDRGh1MFRpU0VVYXpyCnROb0dRSTBzU0hwRTZ5UkNsTzd3ODNEZEM0YVBoYmJi -NEdldEF3bGhHT3ZhdzNEbTd1RW9uY1pCUlBWUkE1MU9kOTlIaWE0K0NpR0gKUWVrZ0NMbklUMWdF -NnlvWXJaSHhDMkZpdVJTZlRjREEyUVd5NjhHUG44SXZNSGp0WU43Zjl6NzVLci9xSXd0UlR0WlhN -R1Q4UWxpYQo0eEE3SlpZdHA3Y3c0S3NCWEVtOW9uVWlJVXBrTlFYamF0cFZxQTBrZE5BNmloQkdh -OTJ3TmJ2SDc4YXZ0UitlSDNueTcvMy9KaWN2ClIrdFlRaFJoTlFVajhtSWtYS0xnVEJRaExGQU5t -eHE4NmZjbSt5ZnZKK3g4R0o0ZmViTHIvQzZ0WXdtaFp6WGZycEVYSStHaTFpbUUKcUxoSEdqL0N6 -Ly96TXd2NkxtRHlqNU1adVhFa2wxTXVheDFMQ09zcEdCRVhJeUJPNnhSQ1ZBNmRUc2RUcms5eDRz -VVR1RG01NFJYaQp4WUk5QzhqSXlTajd6VUpVRWFzb0dBbnBDY1NueHNNTnJaTUlVYm5xMk5WaHZ2 -OThZcWZFRW5zMWxvZVhQc3pDL1F0SnowN1hPcHFvCmhxeWlZT3k1dEllZUxYdUNuSkVvckpSTEl4 -ZStIL1U5UC8zUFQwUmRpY0pscVFzTDlpd2dOYXZFVzBvS1VTV3NvbURJL2J1RlpTdjcKNGo5N2V3 -Y0F2SnA1c2ZHWmpld2V2NXVUaVNkeFdlTEMzUEM1SkdmSTVJV2k2bGxGd1lpOEdDbDNOUk1Xck95 -TC8vNDZRYUc3a3p0ZgpEZnVLcU9lanVKSjZoWWVYUHN5a3paUFlkMm1mM0hkRFZCbUxuOTQ4K1U0 -eXJSYTNJbWwyRXJWcTFNS2NwcjIybk8yWVV4YjV6S1cxCnVkK2Y2dlhiMS9uUHIvL2gweU9mWXFP -ellaTFhKTVo1anFOcHZhWmxyRmRVUjlWMmV2TjlsL2ZoKzZBdk5XMXJhaDFGQ00wMHE5ZU0KMlQx -bmMrckZVNndldXBvVGlTZG92N3c5dzlZUEkvUjBLTG41dVZwSEZGYkE0dmN3Z25jRVkxL1RuamY5 -M3J3NzBadjUvSXZRY3JaagpUbG5rTTVmV3h0Zy8xYlNzTk5ZZlg4K25SejdsVE5JWkF0b0dFTmd1 -a0lGdEIrSlEyOEdvZFFuclV0NDlESXN2R0Q2cmZYaS8zL3Y0Ck9mdEp3YkNLTFBLWlMydFRrVC9W -K05SNGZqcnpFMXZQYkNVOExweE9UVHNSMkM2UXdIYUJlRFR4S0gxV1hXR1ZxbTNCcVB0T1hSSm4K -Si9KQWpRZWtZRmhGRnZuTUpiT2pZSEM4ZEliZTZqVXpONVB3dUhDMm50bksxdE5ieVZONURHdzdr -TzRQZGNmM1FWL2FPN2JIUm1meApSNnZGZlZUYmd0SDdzOTVFVG96VVB6ZWZQM0JMMm80NVpaSFBY -SkUyeHY0NUs2VTRsWGlLSGVkMkVIMGxtcGdyTVNUZVNlVFJGby9pCjg2QVBQZy82NFB1Z0w4M3JO -emRxdmNLOGxiZGdXUHdkOS95Yy9iU09JSVRGMHVsMHVEbTU0ZWJrcG44dDhVNGlzVmRpaWI0U3pj -ZUgKUHViNUg1K250bDF0ZkI3MHdjM1JqYllPYldubjBJNTJqZHZoVk1kSkRtZFZJNXJzWVVSR1Jo -SVVGRVJ1Ymk0elpzeGcrdlRweGRxOAo5dHByckYrL25rYU5HckYyN1ZwY1hWMkx0ZEhwZE93NHU0 -UCtEL2ZYUHpmUGZ4R0dBLzRtMkU1RjIreW01SnltekdJdGV4amgvTGN2CnpYY1BJenc4SEg5Ly8v -dTJVVXB4L3VaNVlxL0c4a2ZpSDV5OWVaWXpTV2M0bTN5V25Qd2MyanEwL1c4UmNXaW5mKzVVMTZu -U0RtMFoKa3RNY1dFcE9pOXJEbURsekppRWhJYlJ1M1pxQWdBREdqQm1EbzZPamZubE1UQXg3OXV6 -aDRNR0RiTisrbmVEZ1lFSkRRMHRjVjQrVwpQVXdWdXdMQ0tmMkwySnlFWXhrNUxVRTRsdENYaG56 -QjZYUTZIblo0bUljZEhpNjI3R2JHVGM0a0Z4U1BNMGxuQ0xzUXhxcURxemgzCjh4eTNNbS9SdUha -am10UnRRcE82VFdoYXIybkJ6M1h1K2Jsd1dkMm0xTGFyWGFHYzVzQlNjcGFYeVF0R1Nrb0tBSDM2 -RkZ5WlBXREEKQUtLam93a01ETlMzaVk2T1pzU0lFVGc0T0RCbXpCamVlT09OVXRkWHQyYmRxZzBz -aE1Xb1ljRGhJVHVnNkkyWjVzK2ZmOS9saHF6agpyK3JYYjhTZG0zZEl2SlBJbitsLzZoODMwbS93 -Wi9xZm5FaytvLy81ei9RL3VYSDdCanFkam5vMTYxSFhyaTUxYTliVi8xeXZaajB1Cm5MekFsUzFY -OU04TC8zLzJyRGxrcHQ2QjdMdVJjaW1ZVSs2ZVI5M2E5aHo3N1ZkcTJOUW85V0dyczVWRGF3WXdl -Y0dJalkwdGNuakoKM2QyZHFLaW9JZ1VqSmlhRzU1NTdUdi9jeWNtSmMrZk84ZkREeGYrRkk0UW9W -RGpGeVAzODlkRFd2THVQMHBZYnNvN2kwdEowMk5uYQowYngrYzRNR3pKVlNaT1Jta0o2ZFRucE9P -cmV6YjVPZWZmZi9jOUw1ejU3LzROUENSNzhzTlR1VnE3ZXZrdG5rRGp3NEVtcmVMbmpZClpvTk5i -cEZIdXMwcEh2dnlNWEx5Y3NqTnp5M3hrYWZ5c05YWkZpa2lkcloycFJhWXdrTnRPZ3FLakU2blE0 -ZU9hNGV1c2VYakxmcGwKaFVYb3IrMEtmOWF5WFhtWTVhQzNVcXJZOGJYU1BtVHgxdzNwak1wb1kr -dzY1aHZRcGpLMlU1RTI4eWs5cHltem1QSXpWMldXK1FhMApxWXp0VkxUTlgzL25sYk9keXY0WCs2 -WlZtMHBac3FITTk4WVpjTE9jdkx2L3l5TEx1R0IvY1QzMGVvWGViODVNWGpDNmR1M0tQLzd4CkQv -M3o0OGVQTTNEZ3dDSnRmSDE5T1hIaUJBRUJBUUFrSkNUZzR1SlNiRjBXZkVhd0VFSllISk5mbmRP -Z1FRT2c0RXlwdUxnNGR1N2MKaWErdmI1RTJ2cjYrYk5xMGlhU2tKTmF0VzRlYm0xdEpxeEpDQ0dG -Q21oeVNXcng0TVVGQlFlVGs1REJqeGd3Y0hSMEpDUWtCSUNnbwpDQjhmSDNyMTZzV2pqejZLZzRN -RGE5YXMwU0ttRUVLSWV5a3pGeEVSb1Z4ZFhWWGJ0bTNWMHFWTFMyd3paODRjMWFaTkc5VzVjMmQx -Cjh1UkpFeWNzVUZiTzNidDNLM3Q3ZStYbDVhVzh2THpVMjIrL2JmS01FeWRPVkUyYU5GRWVIaDZs -dGpHSHZpd3Jwem4wcFZKS1hicDAKU2ZuNyt5dDNkM2ZsNStlbjFxNWRXMkk3cmZ2VWtKeGE5MmxH -Um9ieThmRlJucDZleXRmWFYzMzQ0WWNsdHRPNkx3M0pxWFZmM2lzMwpOMWQ1ZVhtcElVT0dsTGpj -MlA0MCs0TGg1ZVdsSWlJaVZGeGNuR3JmdnIxS1NFZ29zanc2T2xyMTdObFRKU1VscVhYcjFxbkF3 -RUN6CnpMbDc5MjQxZE9oUVRiSVZpb3lNVkljUEh5NzFpOWhjK3JLc25PYlFsMG9wZGUzYU5YWGt5 -QkdsbEZJSkNRbXFUWnMyS2pVMXRVZ2IKYytoVFEzS2FRNSttcDZjcnBaVEt6TXhVSFRwMFVHZk9u -Q215M0J6NlVxbXljNXBEWHhaYXVIQ2hHanQyYklsNXl0T2ZaajNEMkwzWApiTFJ1M1ZwL3pjYTkv -bnJOeHNtVEo4MHlKMmcvU04rN2QyOGFOV3BVNm5KejZFc29PeWRvMzVjQXpabzF3OHZMQ3dCSFIw -YzZkT2pBCndZTUhpN1F4aHo0MUpDZG8zNmQxNnRRQjRQYnQyK1RtNWxLclZxMGl5ODJoTDZIc25L -QjlYd0xFeDhmejAwOC84Znp6ejVlWXB6ejkKYWRZRm83UnJOdTRWRXhPRHU3dTcvbm5oTlJ1bVpF -aE9uVTdIL3YzNzhmTHk0dVdYWHpaNVJrT1lRMThhd2h6Nzh1elpzeHcvZmh3ZgpINThpcjV0Ym41 -YVcweHo2TkQ4L0gwOVBUNW8yYmNxMGFkTm8yYkpsa2VYbTBwZGw1VFNIdmdTWU5Xc1dIM3p3QVRZ -MkpYL05sNmMvCnpicGdHRUlaY2MyR2xqcDM3c3pseTVlSmpZM0YzZDJkbVRObmFoMnBHT25MOGts -TFMyUFVxRkVzV3JTSXVuV0x6anhnVG4xNnY1em0KMEtjMk5qYjgrdXV2bkQxN2xwVXJWM0xreUpF -aXk4MmxMOHZLYVE1OUdSb2FTcE1tVGZEMjlpNTFiNmM4L1duV0JhTnIxNjZjT25WSwovL3o0OGVO -MDY5YXRTSnZDYXpZS2xYYk5SbFV5SkdmOSt2V3BVNmNPZG5aMlRKNDhtZGpZV0xLeUtuYUJVR1V6 -aDc0MGhEbjFaVTVPCkRzT0hEK2U1NTU3anlTZWZMTGJjWFBxMHJKem0xS2ZPenM0TUhqeTQyR0Zk -YytuTFFxWGxOSWUrM0w5L1B6LysrQ050MnJSaHpKZ3gKL1BMTEw0d2JONjVJbS9MMHAxa1hERXU1 -WnNPUW5EZHUzTkJYOHkxYnR0Q3BVNmNTajMxcXlSejYwaERtMHBkS0tTWlBub3lIaHdjdgp2ZlJT -aVczTW9VOE55YWwxbnlZbUpuTHIxaTBBa3BLUzJMRmpSN0hDWmc1OWFVaE9yZnNTWU1HQ0JWeStm -SmtMRnk3d3pUZmY4UGpqCmovT2YvL3luU0p2eTlLZFpUZzF5TDB1NVpxT3NuTjkrK3kyclZxMmlS -bzBhZE9yVWlZVUxGNW84NDVneFk0aUlpQ0F4TVpHV0xWc3kKZi81OGNuSnk5Qm5OcFMvTHlta09m -UW13Yjk4KzFxeFpRNmRPbmZEMjlnWUsvbEF2WGJxa3oyb09mV3BJVHEzNzlOcTFhNHdmUDU2OAp2 -RHlhTld0R2NIQXd6WnMzTjd1L2RVTnlhdDJYSlNrODFGVFIvclRvTys0SklZUXdIYk0rSkNXRUVN -SjhTTUVRUWdoaEVDa1lRZ2doCkRDSUZRd2doaEVHa1lJaEtaV05qUTNCd3NQNzV2Ly85NzcvY0Fy -VHErZnY3Yy9qd1lRQUNBd05KVFUydDBQckN3OE1aT25Tb3dhOVgKeGJhcTB0V3JWM25tbVdkTXVr -MWhtYVJnaUVwVnMyWk52di8rZTVLU2tnRGpyOFROeTh1cmNJWjd0N2wxNjFiczdlMHJ2RTVyMXFK -RgpDelp1M0toMURHRUJwR0NJU21Wblo4Y0xMN3pBb2tXTGlpMjdldlVxTTJmT3hOUFRrMW16Wm5I -anhnMEFKa3lZd01zdnY0eXZyeSt2CnZ2b3FFeWRPNUpWWFhzSEh4NGYyN2R0ejVNZ1JYbmpoQlRw -MDZNQzhlZlAwNi92NzMvOU8xNjVkNmRHakI2dFhyeTR4ajdPek0wbEoKU1h6MDBVZDRlM3ZqN2Ux -Tm16WnRlUHp4eDRHQ2VjREdqUnVIcjY4dmMrYk0wVitSR3hzYlM5KytmZkgyOW1iNzl1MWxmdTZN -akF3KwovUEJEL1B6OENBd01KRHc4SElEdTNic1h1WnEyY084bk16T3p4UGFsdVh6NU1vTUdEY0xM -eXd0UFQwL09uVHRIWEZ3Yzd1N3VUSjQ4CkdUYzNOK2JQbjYvUC8vYmJiK1BqNDBQWHJsMVpzR0JC -a2ZXODhzb3JlSHQ3MDZWTEZ5NWN1RUJjWEJ3ZE8zWUU0SXN2dm1EMDZORU0KSGp3WUR3OFBsaTVk -cW4vdnRtM2I2TjY5T3o0K1ByejAwa3RNbno2OVdNNmpSNC9TdDI5ZnZMeTg2Tnk1TTdkdjN5Nno3 -NFFGcWNqVQp1VUw4VmIxNjlWUnFhcXB5ZG5aV0tTa3A2dC8vL3JlYU4yK2VVa3FwV2JObXFmZmZm -MThwcGRTQ0JRdlU3Tm16bFZKS2pSOC9Ydm41CitlbW4zSjR3WVlJYU5HaVF5c3JLVWw5ODhZV3FW -NitlQ2c4UFYxbFpXY3JOelUwL2RYeHljckpTU3Ftc3JDemw2K3VyYnQrK3JaUlMKeXQvZlh4MDZk -RWdwcFpTenM3TktTa3JTNTh2SnlWRzllL2RXb2FHaCtyYTNidDFTU2lrMWUvWnM5YzAzM3lpbGxP -clVxWk9Lam81Vwp0Mi9mVmdNSERpeHhldWpkdTNmcjd6UHcrZWVmcXlWTGxpaWxsTHArL2JyeThm -RlJTaW0xYU5FaU5YZnVYS1dVVWxldlhsWHQyN2UvCmIvdDcxM212dVhQbnFrOCsrVVQvR1RJeU10 -U0ZDeGVVVHFkVDMzMzNuY3JNekZSUFAvMjArdmJiYjR2MFRXNXVyaG82ZEtnNmRlcVUKdnE5WHJG -aWg3N2M3ZCs2b0N4Y3U2S2VTLy96enoxV1RKazNVMWF0WFZXcHFxbnJvb1lkVWRuYTJ5c25KVWM3 -T3p1ckNoUXNxS1NsSgpkZTdjV1UyZlByMVl6dkhqeDZ1d3NEQ2xWTUUwNExtNXVjWGFDTXNsZXhp -aTB0V3ZYNTl4NDhZVitkY3B3TTgvLzh5a1NaTUFtRHg1Ck1sdTJiQUVLRGlHTkdER0MrdlhyNjl1 -T0dER0NtalZyMHIxN2R4bzJiSWlmbng4MWE5YkUyOXRiUHhQd3pwMDdDUXdNeE52Ym0vUG4Kei9Q -TEw3K1VtVzNHakJuMDdkdVh3TUJBRGgwNnhMRmp4L0QzOThmYjI1dlEwRkFpSXlPNWN1VUtTaWw4 -Zkh5b1c3Y3VvMGFOS25PNgo2azJiTnJGNjlXcTh2YjBaT0hBZ04yN2M0TUtGQzR3Y09aSnZ2LzBX -Z0EwYk51akhDa3BxZi83OCtWTFgzN1ZyVnhZdlhzeDc3NzFICmNuSXlEenp3QUZBd0xjMndZY09v -VmFzV1k4YU1ZZHUyYlFBY1BIaVE0Y09IMDZsVEp3NGZQc3lPSFR2SXpzNW05KzdkVEpreUJTZzQK -ZkZpN2R1MWkyeG93WUFETm16ZW5mdjM2dUx1N2MvandZYUtpb3VqWXNTUE96czQ0T0Rqd3hCTlBs -TmduM2J0M1o4NmNPU3hmdnB6YwozRnhzYlczTC9KMEl5MkgyVTRNSXkvVFNTeS9SdVhObkprNmNX -T1QxMHI1NG16ZHZYdVI1NGZ4Y05XdldwR0hEaHZyWGE5YXNTWFoyCk5tbHBhY3laTTRjOWUvYnc0 -SU1QTW16WU1HN2V2SG5mVEY5ODhRV1hMMTltNWNxVlFNRTAxUjRlSHV6ZXZidEl1L2o0ZU1NKzVE -M3kKOC9OWnNXSUZmZnIwS2Jhc2NlUEcvUDc3NzJ6WXNFRS9OVU5wN1F1bjYvaXJ3TUJBdW5UcHdw -bzFhK2pac3ljYk4yNHMwaStGQ3NkdgpwaytmenJmZmZvdUhod2V6WnMzaTVzMmI2SFM2RW1jby9h -dS85bmRtWmlZMWF0UW9NalpVMmpxQ2dvTG8zNysvZmlxUzZPaG9talp0CmV0L3RDY3NoZXhpaVNq -UnExSWlSSTBmeTZhZWY2cjlvQmc4ZXpKZGZma2wrZmo2ZmZmWVpUenp4UkxuV3JaVGkxcTFiMk5u -WjBheFoKTTA2ZlBzMnVYYnZ1KzU1RGh3NnhjT0ZDdnZycUsvMXJYYnQyNWNhTkcvbzlsdlQwZE02 -Y09jTkREejJFcmEwdHNiR3hwS2VuczJIRApoakl6alIwN2xwQ1FFTkxTMGdDS1RIazlhdFFvM252 -dlBWSlRVL0h3OENpemZVa3VYTGlnbjd1b2I5KysrbkdSbEpRVWZ2amhCN0t5CnNsaS9majBEQnc0 -a016T1R0TFEwbkoyZHVYTGxDcHMzYndZS3hwY2VlK3d4VnE5ZWpWS0tyS3dzTWpJeXl2eHNPcDJP -YnQyNjhmdnYKdnhNWEYwZHljaktob2FFbG50Qnc3dHc1WEZ4YytOLy8vVjljWFYzTjRsNGxvdkpJ -d1JDVjZ0NHZrVmRlZVlYRXhFVDk4K0RnWUM1ZAp1b1MzdHpjM2J0emc1WmRmTHZGOWYzMWUwcktX -TFZzeWZQaHdQRHc4bURadFdxbW5vaGIrcTNyRmloWGN2SG1UeHg1N0RHOXZiMTU0CjRRVUF2dnJx -SzFhdFdrV25UcDNvMGFNSGYvenhCd0FmZi93eHI3MzJHcjE2OWNMVDA3UEVMMGVkVHFkL2ZjU0lF -Zmo0K0JBUUVJQ0gKaHdkejU4N1Z0eHN4WWdUcjE2OW41TWlSUlY0cnFmMjk2N3pYaGcwYjhQRHdv -R3ZYcnR5NWMwZS9MbGRYVjM3ODhVZTh2THp3OFBBZwpNRENRQng1NGdEbHo1dURqNDhPb1VhTVlQ -SGl3ZmozdnZQTU9aOCtleGRQVGs1NDllK3BQUENqY1ptbmJ0N1cxWmZueTVZd2FOWXFCCkF3ZlNz -V05IMnJScFU2emRraVZMNk5peEl6NCtQcmk2dXRLalI0OFNmeS9DTXNua2cwSllxTGk0T0lZT0hj -cnZ2Lzl1a3UybHA2ZFQKdDI1ZFVsSlNHREprQ0o5ODhnbnQyN2MzeWJhRmVaQXhEQ0VzbUNudk9E -ZHYzanpDd3NLd3M3UGoyV2VmbFdKUkRja2VoaEJDQ0lQSQpHSVlRUWdpRFNNRVFRZ2hoRUNrWVFn -Z2hEQ0lGUXdnaGhFR2tZQWdoaERDSUZBd2hoQkFHK1g4TEF4UDFCZTVmQkFBQUFBQkpSVTVFCnJr -SmdnZz09Cg== - - - - - - ## Parallel calculation of nearest neighbor eigenvalue distribution - - - Here we perform a parallel computation, where each process constructs and diagonalizes a subset of -the overall set of random matrices. - - - def parallel_diffs(rc, num, N): - nengines = len(rc.targets) - num_per_engine = num/nengines - print "Running with", num_per_engine, "per engine." - ar = rc.apply_async(ensemble_diffs, num_per_engine, N) - diffs = np.array(ar.get()).flatten() - normalized_diffs = normalize_diffs(diffs) - return normalized_diffs - python - 11 - 1 - - - - client = Client() -view = client[:] -view.run('rmtkernel.py') -view.block = False - python - 12 - 1 - - - - parallel_nmats = 40*serial_nmats -parallel_matsize = 50 - python - 13 - 1 - - - - %timeit -r1 -n1 parallel_diffs(view, parallel_nmats, parallel_matsize) - python - 14 - 0 - - - stream - Running with 10000 per engine. -1 loops, best of 1: 14 s per loop - - - stream - - - - - - pdiffs = parallel_diffs(view, parallel_nmats, parallel_matsize) - python - 15 - 0 - - - stream - Running with 10000 per engine. - - - - - Again, the agreement with the Wigner distribution is excellent, but now we have better -statistics. - - - hist_data = hist(pdiffs, bins=30, normed=True) -plot(s, rhos) -xlabel('Normalized level spacing s') -ylabel('Probability $P(s)$') - python - 16 - 0 - - - pyout - &lt;matplotlib.text.Text at 0x376c950&gt; - 16 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVl3QUFBRU1DQVlBQUFEWGlZR1NBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW -UFgreC9IWElMZ2pMcWhvRm1xaGdDZ01Db2dtVG01Z3FOMVNNNjFjCjZoWmxpcmxVMXErdVdyZHVk -YStwbVJyWnRWVXJ5OHF0TWt6SDBRVEVMWGROQlJPM0ZCVlEyVG0vUDRpNWptd3pNTXlaWVQ3UCs1 -aEgKek16WDcvZk40VElmenZtZTh6MGFSVkVVaEJCQ2lFcTRxQjFBQ0NHRVk1Q0NJWVFRd2l4U01J -UVFRcGhGQ29ZUVFnaXpTTUVRUWdoaApGaWtZUWdnaHpLSkt3VEFZRFBqNStlSGo0OFBDaFF0THZa -K1ZsY1gwNmRNSkNnb2lQRHljRXlkT3FKQlNDQ0hFelZRcEdGT21UQ0V1CkxvNk5HemV5YU5FaUxs -MjZaUEwrRjE5OFFYNStQbnYzN3VXZGQ5N2grZWVmVnlPbUVFS0ltOWk4WUdSa1pBQVFFUkdCdDdj -M2d3WU4KSWlrcHlhVE5wazJiaUk2T0JpQThQSnpqeDQvYk9xWVFRb2hiMkx4Z0pDY240K3ZyYTN6 -dTcrOVBZbUtpU1p2SXlFaSsrT0lMc3JPegpXYk5tRGZ2Mzd5Y2xKY1hXVVlVUVF0ekVWZTBBWlJr -MWFoUnBhV24wN2R1WHpwMDc0K1BqUTcxNjlVcTEwMmcwS3FRVFFnakhWNlZWCm9SUWJ1M3IxcWhJ -VUZHUjhQbW5TSkdYZHVuWGx0cy9LeWxJQ0F3UExmRStGK0ZVeWE5WXN0U09ZUlhKYWp5TmtWQlRK -YVcyT2tyT3EKbjUwMlB5VGw0ZUVCRko4cGxacWFTbng4UEdGaFlTWnRNakl5eU12TDQ4YU5HL3py -WC85aTRNQ0J0bzRwaEJEaUZxb2NrcG8vZno0eApNVEhrNStjVEd4dUxwNmNuY1hGeEFNVEV4SERv -MENIR2p4OVBVVkVSNGVIaHZQLysrMnJFRkVJSWNSTlZDa2Jmdm4wNWZQaXd5V3N4Ck1USEdyOFBE -d3psNjlLaXRZOVVZblU2bmRnU3pTRTdyY1lTTUlEbXR6VkZ5VnBYbXIrTlpEa21qMFZSdDRrWUlJ -WnhZVlQ4N1pXa1EKSVlRUVpwR0NJWVFRd2l4U01JUVFRcGhGQ29ZUVFnaXpTTUVRUWdoaEZpa1lR -Z2doekNJRlF3Z2hoRm1rWUFnaGhEQ0xGQXdoaEJCbQprWUloaEJEQ0xGSXdoQkJDbUVVS2hnTnEw -cVE1R28ybTBrZVRKczNWamlxRXFFVms4VUVIVkh5blFYTytiK2ZjUGtLSWlzbmlnMElJCklXcVVG -QXdoaEJCbVVhVmdHQXdHL1B6ODhQSHhZZUhDaGFYZXo4N09adHk0Y1dpMVd2cjI3Y3ZxMWF0VlND -bUVFT0ptcXN4aGFMVmEKRml4WWdMZTNONUdSa1d6YnRnMVBUMC9qKysrLy96Nzc5dTFqOGVMRm5E -cDFpbjc5K25IOCtQRy9qdDNmRkY3bU1DcHI2WlRiUndoUgpNWWVadzhqSXlBQWdJaUlDYjI5dkJn -MGFSRkpTa2trYkR3OFBzckt5eU0vUDUvTGx5elJzMkxCVXNSQkNDR0ZiTnIrbmQzSnlNcjYrCnZz -Ym4vdjcrSkNZbUVoMGRiWHh0OU9qUnJGMjdGazlQVHdvS0NraElTQ2kzdjltelp4dS8xdWwwdGY2 -ZXVrSUlZU205WG85ZXI2OTIKUHpZdkdPWjQ3NzMzY0hWMTVkeTVjK3pmdjUvbzZHaE9uVHFGaTB2 -cEhhS2JDNFlRUW9qU2J2MWplczZjT1ZYcXgrYUhwRUpDUWpoeQo1SWp4K2NHREIrblpzNmRKRzRQ -QndNTVBQMHpEaGcwSkN3dWpiZHUySER0MnpOWlJhd0ZYdWNCUENHRTFOaThZSGg0ZVFIRlJTRTFO -CkpUNCtuckN3TUpNMi9mdjNaKzNhdFJRVkZYSHk1RWt1WDc1c2NoaExtS3VBNHNueGloOVpXVmRV -U3lpRWNCeXFISkthUDM4K01URXgKNU9mbkV4c2JpNmVuSjNGeGNRREV4TVR3MEVNUGNlalFJWHIw -NkVITGxpMVpzR0NCR2pHRkVFTGNSSllHc1JOTm1qUzM4Qzk5ODA2cgpsZE52aFJDM3F1cG5weFFN -TzJIK3RSVmdTU0dRZ2lHRXVKWERYSWNoaEJEQ01VbkJFRUlJWVJhN3ZBNURtRXVCSm1lZzBaK1E0 -d0U1CnpTQzdHY1dIb29RUXdycWtZRGlhQnVrUUFIVHREVjYvUWE0N1hHOE45VEtoNFNXNDVnVkho -OEhSb1hBYUtES25VMWV6bGw1eGQyOUcKWnVibGFuNERRZ2hISlpQZWRxTFNTVyszNjNEUExBaitF -SDdQZ045K2dOTzlJTmZqcGtZS3ROa0RuZGRBNTlWUWJ5OXMvQm9PRGFmaQp2UTZaSEJmQ21jaFpV -ZzZ1d29KeDU4OHc1Q2s0SFE0YjVoWHZVWmp6QWQ5QkE1R0JrTmNZTnJ3RFowTExHOTI4L3FSZ0NG -RXJTTUZ3CmNHVVdERTBoREk2RlR1dGgzUkk0UHJqa2pkSnR5KzRWTkFVUStDbjBmd2tTbjRWZm42 -ZjAzb1lVRENHY2lSUU1CMWVxWUxqa3d3T1AKUXNPTDhPWDNrT2QrYzJzc3ZnNmp5V2tZTlJ5dWRJ -RFZ5eUMvVVpYNnF5M2JXd2huSnRkaDFDYXVPY1VmN203WFljWDZXNHBGRldYZQpEaDhaSUw4aC9E -MGNQUDZvZnA5Q0NLY2lCY1BlMU1tRjBjTWd2d0Y4OVMwVTFMZGUzd1gxaS9jdWZoc0w0L3BCNDNQ -VzYxc0lVZXZKCmFiWDJKdXJaNHIyQVZTdEFxVk1EQTJoZys0emlRMTVqQjhESGVyaFJBOE1JSVdv -ZEtSajJKT2dqNkxBSmxpYlhVTEc0eWJZWG9lNDEKZURRU1BnRnlhblk0SVlUamswTlM5cUlOTVBC -NStPbzd5RzFpbXpFMy9STk85WUdIS1M0ZVFnaFJBU2tZZGlEOVJqbzhDS3hmQWhmOQpiVGl5cHZp -NmpvdkE4REdnTWV1eWNDR0VrMUtsWUJnTUJ2ejgvUER4OFdIaHdvV2wzdi9QZi82RFZxdEZxOVhT -dFd0WFhGMWR1WHIxCnFncEpiU1AycDFnNEFod2FZZnZCRlJkWVQvR1NJM2UvYWZ2eGhSQU9RNVhy -TUxSYUxRc1dMTURiMjV2SXlFaTJiZHVHcDZkbm1XM1gKclZ2SC9QbnoyYmh4WTZuM2FzTjFHQnVP -YitEcDlVK1Q4bHdLNUt0M1B3emMwK0RKSHZEZFozQnlRTG50SEgxN0N5RWM2RHFNakl3TQpBQ0lp -SXZEMjltYlFvRUVrSlNXVjIzN0ZpaFdNSGozYVZ2RnM2a2IrRFNiK01KRkY5eTZDZkpYRFpOMEcz -eTZIK3g4dHZzaFBDQ0Z1CllmT0NrWnljaksrdnIvRzV2NzgvaVltSlpiYTljZU1HR3pac1lQanc0 -YmFLWjFPdkdWNGpwRzBJZzMwR1Y5N1lGbEw2UWRJVWVIQWsKMU1sVE80MFF3czdZOVdtMWE5ZXU1 -ZTY3NzZacDA2Ymx0cGs5ZTdieGE1MU9oMDZucS9sZ1ZyRC93bjcrdS91LzdIdDZuOXBSVEcxNwpB -ZG9sd3NEbjRLY0ZhcWNSUWxpQlhxOUhyOWRYdXgrYnoyRmtaR1NnMCtuWXMyY1BBSk1uVHlZcUtv -cm82T2hTYmUrLy8zNUdqUnJGClF3ODlWR1pmampxSG9TZ0t1azkwakFrWVEweVBHRUQ5ZTNxYnRL -dC9CU1oyaFc4L2gxU2RTVHRIM041Q0NGTU9NNGZoNFZGOC93YUQKd1VCcWFpcng4ZkdFaFlXVmFw -ZVJrWUhCWU9DKysrNnpkY1FhRjM4eW5ndlhMdkQzNEwrckhhVnNPYzFnL1dJWTl2Zmk5YXlNaW0r -MApaTTZqU1pQbXFzVVhRdFFNVlU2cm5UOS9QakV4TVF3WU1JQ0pFeWZpNmVsSlhGd2NjWEZ4eGpi -ZmYvODlrWkdSTkdqUVFJMklOVVpSCkZGN1ovQXF6ZGJPcDQxTERWM05YeDlGaGtCWUcvVjY1NmNV -Q2l2ZEVLbjlrWlYyeGNXQWhSRTJUNWMxdGJQMng5Y3o4WlNhL1BmVWIKTHByLzFXdTdPaVJWb3VF -bGVMb3JyRnhWZkhjL3Mvc3I3dFBSZmpaQ09BdUhPU1RsekJSRjRSLzZmekJITjhla1dOaXRHNTd3 -NDBLNAo3N0hpSmRlRkVFN05BVDYxYW8vdmozeVBvaWpjNzN1LzJsSE1kMmdFL0JrQWZlZW9uVVFJ -b1RJcEdEWlNwQlR4RC8wL2VQV2VWLzg2Ci9PUkExaThDN1RKb3EzWVFJWVNhcEdEWXlOY0h2NmFS -V3lPaWZVcWZQbXozcnJlR24rZkNNSXJ2TXk2RWNFb3k2VjNEbWpScFR0YTEKS3pBUitBazRVVkZy -TzV2ME5xSEFCQmZZRndlN25qU3JUM3YvMlFqaHJHVFMyMDVsWlYyQk8zK0VnaUE0VVVUNXA2TGFP -dzM4Q056egpENmhmZTFjT0ZrS1VUd3FHTFlRdWhCMlRLZjVMM29HZEI0NE9oWWpYMUU0aWhGQ0JG -SXlhMWh5NExSbjIxNUlWZHpmOUU0SStnUmJICjFFNGloTEF4S1JnMUxRVFk4eGdVMUpJcjFxKzNM -bDZnY05CMHRaTUlJV3hNQ2tZTnVwWjNEUUtCNUtmVmptSmRTYkhnZVFUdTNLQjIKRWlHRURVbkJx -RUdmNy9zY1RnRVozbXBIc2E3Q2VzV24yVVpOQlJlMTcvd2toTEFWS1JnMVJGRVUzdHZ4SHBSL00w -SEhkblFvWkxhRApIdStyblVRSVlTTlNNR3JJNXRUTnhWK2txaHFqQm1uZ3AzblE5elZva0s1MkdD -R0VEVWpCcUNFTGR5eGtVdWdrdFdQVXJJdGQ0T0NECm9KTjFwb1J3QmxJd2FrQmFaaHFHVXdZZTZm -YUkybEZxbm40V2RGME9IcWZVVGlLRXFHRlNNR3JBOG4zTEdlRS9nc1oxRzZzZHBlYmQKYUFuSkU2 -SHZxMm9uRVVMVU1GVUtoc0Znd00vUER4OGZIeFl1WEZobW0rVGtaRUpDUXZEejgwT24wOWsyWURV -b2lzSm4rejdqa2E1TwpzSGRSSW1FNmRGNGpGL01KVWN1cHN2aWdWcXRsd1lJRmVIdDdFeGtaeWJa -dDIvRDA5RFMrcnlnSzNicDFZOTY4ZVF3WU1JQkxseTZaCnZGL0NIaGNmL08zOGI5ejM1WDJjbkhJ -U0Y0MkxCWGZTczhNNzdsblNyczhiMEdvL3JQckMyTmJlZmpaQ2lHSU9zL2hnUmtZR0FCRVIKRVho -N2V6Tm8wQ0NTa2t6UFBkMjVjeWZkdW5WandJQUJBR1VXQzN2MTJiN1BlS1RiSTQ1eFJ6MXJTb3FG -RHB1aDlUNjFrd2doYW9qTgpQOVdTazVQeDlmVTFQdmYzOXljeE1kR2t6WVlORzlCb05QVHAwNGVo -UTRleVlZTmpYRkZjV0ZUSWl2MHJlTGpydzJwSHNiMjh4ckJ0Ckp0enppdHBKaEJBMXhGWHRBR1hK -eWNsaDc5NjliTnk0a1JzM2JqQnc0RUFPSERoQWd3YWwxMk9hUFh1MjhXdWRUcWZxZk1lbWxFMjAK -ZFcrTFgwcy8xVEtvYXVkVEVENFhia3VDTTJxSEVVS1UwT3YxNlBYNmF2ZGo4NElSRWhMQ2M4ODla -M3grOE9CQm9xS2lUTnFFaDRlVAptNXVMbDVjWEFEMTY5TUJnTUJBWkdWbXF2NXNMaHRvKzMvKzVj -NXhLVzU2QyttQjRCZnE5REorcEhVWUlVZUxXUDZibnpLbmF0Vk1XClRYb1hGUldSa0pCQWFtb3FG -eTllcEduVHBuVHAwb1h1M2J2ajRtTCswYTJTU2U4NzdyaURxS2lvVXBQZTZlbnBEQjQ4R0wxZVQw -NU8KRGoxNzltVDM3dDAwYm14Nm1xbzlUWHBmejd0T3UzbnRPUExNRVZvM2JtMTgzV2ttdlV1NDVN -TWtYMWh6Q2xJcnY1MnJ1M3N6TWpNdgptekcyRU1KYXF2clphZFllUmw1ZUh2UG16YU93c0pDbVRa -dlNzV05IdW5UcFFscGFHdHUzYjJmVnFsVzBhdFdLS1ZPbVVLZE9uVXI3Cm16OS9QakV4TWVUbjV4 -TWJHNHVucHlkeGNYRUF4TVRFMEtKRkN5Wk1tRUNQSGoxbzJiSWxyNzc2YXFsaVlXOVdIMTFOejNZ -OVRZcUYKVXlweUEvMXM2RGNXbGhWUjJVMmpzckljL0taU1FqaVJTdmN3Y25OeldiRmlCVU9HREtG -bHk1Ymx0anQ1OGlTLy9QSUxUenp4aE5WRApsc2VlOWpEdVhYNHZEM2Q5bUllN21VNTRPOTBlQm9D -bUVKNTJoZmoxOFB1OWxmWnBMejlESVp4RlZUODdWYmtPdzFyc3BXQmN1SGFCCnp1OTE1c3kwTXpT -cTI4amtQYWNzR0FCK0dvalFRdHd1S3Q3THNJK2ZvUkRPeEdiWFlSdzVjb1FmZnZpQnk1Y3ZjL2p3 -WVlzSHJJMisKUFBBbHd6b1BLMVVzbk5waFFOR0EzN2RxSnhGQ1dFbVZDb2FYbHhjOWUvWmsvZnIx -ZlBhWm5BN2o5R2RIbFdmVFA2SGZLOFdIcUlRUQpEcy9pZ25IMjdGazJiOTZNVnF0bHhvd1p0Rzd0 -M0pPOHY2Zi9UbHBtR3YwNjlGTTdpdjA1SGdYWnpTRGdLN1dUQ0NHc3dPS0NNVzdjCk9IeDlmVm15 -WkFuUFBQTU1lL2Z1cllsY0R1UDdJOTl6WCtmN2NIV3h5MnNnVmFZcHZpNmp6eHVnS1ZJN2pCQ2lt -cW8xNlgzbHloV2EKTm0zNjE4U3U3ZG5EcEhmdlpiMTV1Yy9MRFBZWlhPYjdUanZwYld5cndCT2hz -TzFGT1B4QW1lM1UvaGtLNFd4cWJOSTdOemVYbzBlUApsdmxlczJiTlRJckYxcTFiTFE3Z3lDNWN1 -OENCUHcvSTRhZ0thY0R3TWtUOEUvT0xqUkRDSGxWYU1PclZxMGQ2ZWpydnZmZGVtV2RGClpXWm1z -blhyVm1KalkybldyRm1OaExSWDY0NnRZOUNkZzZqbldrL3RLUGJ0MkZCd0tRQ2ZIOVZPSW9Tb0Jy -TU92Qjg1Y29SWFhubUYKYWRPbVViZHVYUjU1NUJGeWNuTEl6TXpFeTh1THlNaElGaXhZb05xaEti -V3NQcnFhQjdzOHFIWU0rNmU0Z09IL0lPSTErSDB3bFYzOQpMWVN3VDJZVmpMMTc5M0xod2dXeXNy -SjQ5OTEzR1RCZ0FIMzY5S25wYkhidGV0NTE5S2w2UHZuYkoycEhjUXlIUnNBOXM2RERKa2pwCnIz -WWFJVVFWbUhXV1ZMZHUzYWhidHk0dFdyUmcxcXhaN05tenA2WnoyYjM0ay9HRTNCWkNzd2JPZFJp -dXlwUTZzUFdsditZeWhCQ08KeUt5Q2taQ1F3SkVqUjRyL2dZc0wzdDdlTlJyS0Vhdyt1cHI3T3Qr -bmRnekhzbjgwTkQwRmQyeFRPNGtRb2dyTU9xMVdwOVBSdUhGagpEaDQ4U051MmJXbmF0Q2xqeG95 -aFY2OWU3Tnk1azVFalI5b2lheWxxblZaYldGU0kxMXd2ZGo2eEUrK21GUmRQT2EzMkZzRkx3WDhW -CmZQNlRzWjJjVml1RWJkWG80b01IRHg2a1M1Y3VRUEdxdEVsSlNTUW5KNU9VbE1UKy9mdkp6TXkw -UExFVnFGVXd0cDdheXVRZko3UDMKcWNvdldwU0NjWXM2dVJEckExK3Rnck1oU01FUXd2WlVXNjEy -M3J4NVRKMDZ0VHBkVkpsYUJXUEd6ek5ZT0hjUmVUL25tUGt2cEdDWQpDSDBQT3NiRGw2dVJnaUdF -N2FsV01Bb0xDODI2YVZKTlVLTmdLSXBDcC9jNmNmeGZ4K0djSFg0WTIwVzdTdHE2WnNPVWpzV0hw -UzRFClNjRVF3c1pzdHJ6NXJhcFNMQXdHQTM1K2Z2ajQrTEJ3NGNKUzcrdjFlanc4UE5CcXRXaTFX -djc1VC9zNXMrYndwY1BrRnVUQ09iV1QKT0xDQ0JwQXd2WGlOS1NHRXcxQmx4YndwVTZZUUZ4ZUh0 -N2Mza1pHUmpCNDkydVNlM2dCOSsvWmx6Wm8xYXNTcjBPb2pxeG5XZVJpTApXS1IyRk1lMjh5bVk4 -alo0VnQ1VUNHRWZMTnJET0hQbVRMVUh6TWpJQUNBaUlnSnZiMjhHRFJwRVVsSlNxWGIyZXBoQ1Rx -ZTFrcnpHCmtEZ0ZuUHY2VHlFY2lrVUZZK0RBZ1F3ZVBKaVZLMWVTbjU5ZnBRR1RrNVB4OWZVMVB2 -ZjM5eWN4TWRHa2pVYWpZZnYyN1FRRkJURnQKMmpST25EaFJwYkdzN1Z6V09ZNm1INlZ2Kzc1cVI2 -a2Rka3dDSHpoeDJUNSt2a0tJaWxsMFNPclFvVU5zMzc2ZFpjdVc4Znp6enpOMAo2RkFtVEpoQWNI -Q3dWVU1GQndkeit2UnAzTnpjK09TVFQ1Z3laUXJyMXEwcnMrM3MyYk9OWCt0ME9uUTZuVld6M0d6 -dHNiVkUzUlZGCjNUcDFhMndNcDVMckFjbnc1cTl2c25Ub1VyWFRDRkZyNmZWNjlIcDk5VHRTcXVq -SEgzOVUyclJwbzdScTFVcnAxYXVYa3BDUVlOYS8KdTNyMXFoSVVGR1I4UG1uU0pHWGR1blhsdGk4 -cUtsSmF0V3FsNU9Ua2xIcXZHdkdyNU43bDl5cGY3UC9DT0RZb1pqeXMzVTdOc1dzZwpZNE02Q2kr -ZzRGRnk4NHl5SCs3dXpXejZzeGFpTnF2cVo2ZEZoNlRTMHRKNC9mWFhDUWdJWU5teVpYejg4Y2Vj -TzNlT3hZc1g4OWhqCmo1blZoNGVIQjFCOHBsUnFhaXJ4OGZHRWhZV1p0TGx3NFlKeERtUHQyclYw -NjlhTmV2WFVYVUw4ZXQ1MXRwN2F5dUM3eXI1UmtxaWkKN0VMWS9SejBta1FGOVlLc3JDc3FoaFJD -Z0lXSHBBWVBIc3lFQ1JQUTYvVW1aelVGQmdieTFGTlBtZDNQL1BuemlZbUpJVDgvbjlqWQpXRHc5 -UFltTGl3TWdKaWFHYjc3NWhpVkxsdURxNmtxM2J0MllPM2V1SlRGcmhPR1VBVzBiTFI3MVBkU09V -dnRzbnc2VC9Jb1hKN3pXClJ1MDBRb2h5V0hUaDNvNGRPd2dORGEzME5WdXg1WVY3MHpaTW8xbjla -cnpTOXhYajJIWjVVWnhkdEt0Q24xRlRvTWdOZnY1UHVlMXMKOWJNV29yYXp5WVY3WmUxRnhNVEVX -RHlvSTlwNGNpTUQ3eHlvZG96YWEvdHpvRjBHRFMrcG5VUUlVUTZ6RGtrbEp5ZXpZOGNPTGw2OAp5 -T0xGaTQyVjZlTEZpMDV4VzliejE4NXpPdk0wUGRyMlVEdEs3WlhaRGc0K0NEM253YWJYMVU0amhD -aURXWHNZR1JrWm5ENTltdno4CmZFNmZQazFhV2hwcGFXbDRlWG54MFVjZjFYUkcxVzA4dVpGNzJ0 -K0RxNHNxRjhZN2oyMHZRSS8zb2I1TWNBdGhqeXlhd3poMjdCaWQKT25XcXlUd1dzZFVjeHJqdng5 -SHp0cDQ4SGZLMHlkZ09NejlnODNiVjZQTnY0K0h5bldCNHBWUTdtY01Rd2pwcWRMWGE2T2hvMXE5 -ZgpUL3YyN2YvNm9EUWQrT1RKa3hZUGJBMjJLQmlLb25EYk83ZGhtR0RncnVaM21ZenRjQi9HTm10 -WGpUNWJISVBIZXNPQ2s1RG5idEpPCkNvWVExbEhWejA2empyRXNYNzRjZ0owN2QxbzhnS003ZFBF -UTlWenJjV2V6TzlXTzRoelNPOEhKQVJDeUJINTlYdTAwUW9pYm1GVXcKbWpadENsQnFSVmxuRUg4 -eW5vRWRCNWJhc3hJMWFPdExNSFpnOFZwVCtRM1ZUaU9FK0l0WkJlUENoUXRsZm1BcWlvSkdvNkZW -cTFaVwpEMll2NGsvR016NXd2Tm94bk11ZlhlRjBMK2orQVNRK3EzWWFJY1JmekpyRDhQSHhLVzU4 -UzlFb0tSakhqaDJybVhTVnFPazVqTHpDClBEemY5aVJsU2dvdEdyWW9OYmJEelEvWXJKMFYrdlRh -QXc5SHc0SVR4VGRja2prTUlheW1SaS9jNjlTcEU3Ly8vanQ1ZVhuazUrZVQKbDVkbi9McXF5NXc3 -Z29UVENYVDI3RnlxV0FnYk9LK0ZNNkhRWFZheEZjSmVtTFdIa1pHUmdZZUhCNWN1bGI0S1Y2UFIw -S0tGT2grbwpOYjJIOGZLbWx5bFNpbmlqZitsYmljb2VoZzM2YkxNYlJnK0ZkNDlEUVVQWnd4RENT -bXIwTEttU0ZXYWRiZEk3L21ROGIvWi9VKzBZCnp1dGNNSnp0VWJ5WFVmcW1qRUlJRzdQNDB1Vkxs -eTZ4WWNNR05Cb05rWkdScXUxZDFMUXIyVmM0ZlBFd3ZXN3ZwWFlVNTdabFZ2RmUKeGk2MWd3Z2hM -RnA4Y1BueTVZU0hoNU9Ra01EMjdkc0pEdzgzWHFOUjIyeEsyVVR2TzNwVHoxWGQrM0E0dlpLOURP -dmUxRkVJVVFVVwo3V0g4KzkvL1p1dldyWGg1ZVFIRnA5dEdSa2J5OE1NUDEwZzROVzFNMmNqQWpy -STZyVjNZOGc4WXZZYWNnaHpxdTlaWE80MFFUc3VpClBZem16WnVUbloxdGZKNmRuVTN6NXMydEhz -b2V4SitJWjBESEFXckhFQURudXNNNVdMcEx6cGdTUWsxbUZZekpreWN6ZWZKa1dyWnMKU2ZmdTNi -bnZ2dnNZTm13WXdjSEJ0R3paMHVKQkRRWURmbjUrK1BqNHNIRGh3bkxiSlNjbjQrcnF5cmZmZm12 -eEdOV1JjaVdGYTNuWAo2TnFxcTAzSEZSWFF3MXUvdmtWT1FZN2FTWVJ3V21ZZGt1cmV2YnZ4b3Iz -QmcvOTNUK3NISG5pZ1NrdG1USmt5aGJpNE9MeTl2WW1NCmpHVDA2TkdsenNBcUxDemtoUmRlSUNv -cXl1YW5VOGFmTE42N2tPVkE3TWc1MExiUjh1SHVENWtVT2tudE5FSTRKYk1LeHZqeDQ2MDIKWUVa -R0JnQVJFUkVBREJvMGlLU2tKS0tqbzAzYUxWeTRrQkVqUnBDY25HeTFzYzBWZnpLZUlUNURiRDZ1 -cU5pc3ZyUDQyNWQvNCsvQgpmNWU1RENGVVlORWNSbloyTnF0WHIyYml4SW1NSGoyYU1XUEdNR2JN -R0lzR1RFNU94dGZYMS9qYzM5K2Z4TVJFa3pabnpweGg5ZXJWClBQMTA4ZjBuYlBtWGZtRlJJWnRT -TnNuOGhSM3EwYllIMmpaYS9ydjd2MnBIRWNJcFdYU1cxTXN2djR4R28ySERoZzA4Ly96ekxGKysK -bkx2dnZ0dnFvWjU5OWxuZWZQTk40OVdJRlIyU21qMTd0dkZyblU2SFRxZXIxdGk3eiszR3E3RVh0 -elc1clZyOWlKcFJzcGZ4ZVBEagpzcGNoaEpuMGVqMTZ2YjdhL1ZoMHg3M2c0R0IyNzk1Tmx5NWRP -SGp3SUJrWkdRd1lNTUNpdzBZWkdSbm9kRHIyN05rREZFK29SMFZGCm1SeVM2dGl4bzdGSVhMcDBp -WVlORzdKMDZWS0dEUnRtR3I0R2xnWjVZK3NiL0huOVQrWkh6YSt3blN3Tll2dXhTMzdXUTFZTVlm -QmQKZzNrbTlCa3pzd2doYmxhaml3K1djSE56QTZCSGp4NnNXN2VPQ3hjdWtKTmoyVmtySmN1TUdB -d0dVbE5UaVkrUEp5d3N6S1ROeVpNbgpTVWxKSVNVbGhSRWpSckJreVpKU3hhS21iRHk1VVE1SDJT -VlhOQm9OR28yRzljK3RaOUtYazlDNGFveXZsVHlhTkttZHAza0xZUThzCk9pVDF6RFBQY09YS0Zh -Wk9uY3JNbVRNNWMrWU1yNzc2cXNXRHpwOC9uNWlZR1BMejg0bU5qY1hUMDVPNHVEZ0FZbUppTE83 -UFd2SUsKODloeFpnZDk3dWlqV2daUm5nS01leUpuZ1F2UkVCd055Uk5OV21WbHlabHRRdFFVaXc1 -SndmL1drZ0tJakl4VWRVRkNheCtTU2ppZAp3RE0vUE1QdW1OMW1qVjJiRHZjNFhNYmJkc0NEdzR0 -WHNpMnNaOUpPVnJVVm9tSTJPU1IxODFwU2lZbUo5T3JWcTFhdEpXVTRaYUNQCnQreGRPSVF6b1hD -aEcyaVhxWjFFQ0tkaDBSNUdVRkFRUC8zMFU2bTFwUGJ1M1Z0akFTdGk3VDJNNkJYUlBCYjBHTVA5 -aDVzMWRxMzkKNjczYTdXdzBkcGw3R2JLSElVUmxiTEtIVVp2WGtpb3NLdVRYUDM3bDdqdXNmNXF3 -cUNGblFvdnYveTE3R1VMWWhGbVQzcE1uVHdZdwpyaVZWY3UzRnRtM2JHRGl3ZHF6b3V2L1AvWGcx -OXFKMTQ5WnFSeEdXME0rQ0IwZkNuc2R1bWNzUVFsaGJsZGFTS3ZtNnFtdEoyYU90CnA3WVM0UjFC -a3liTnljcTZvblljWWE0ellmQm5GOUIrQkR1ZlVqdU5FTFdheFdkSkFlemF0UXVOUmtOd3NMcDN0 -YkhtSE1iSXIwY3kKck5Nd3hnYU5SZVlIcXR2T3htTzNTNFNSRDhLN3YwTmhmWm5ERUtJU05wbkRN -QmdNZE9yVWlaZGVlb2tYWDN5UlRwMDZzWFhyVm9zSAp0VGVLb21BNFpTRENPMEx0S0tJcTBuckNu -d0hRSTA3dEpFTFVhaFpkdVBmMjIyK3paczBhNCtLQlI0OGVaZnIwNmZUcDQ5aW5vdjUrCitYZnF1 -OWJIdTZtMzJsRkVWVzE4RXg0ZENPcWNzQ2VFVTdCb0QrUHk1Y3UwYmR2VytMeE5telpjdm56WjZx -RnN6WERLSUZkM083b0wKM2VCNEZQUldPNGdRdFpkRmV4aVBQdm9vMGRIUmpCdzVFa1ZSK1BiYmJ4 -azdkbXhOWmJNWk9SeFZTMngrRFdJKzVXeldXZHE2dDYyOAp2UkRDSW1aUGVpdUt3cmx6NXpoLy9q -enIxcTFEbzlFd1pNZ1F0RnB0VFdjc2w3VW12VHNzNk1BUFkzN0FyNldmaWhmazJlbUVjcFhhCnFU -ajJRQTFQVEg2Q0Q0WitZRWFmUWppbnFuNTJXbFF3dW5idHlvRURCeXdlcEtaWW8yQ2N6amhOOEFm -Qi9EbmpUK09LcC9KaFhOMTIKS281ZFgwUExWMXV5WmZ3Vy9GcjZtZEd2RU02bnhzK1MwbWcwaElX -RnNYNzllb3NIc1dkYi95aSsvcUsyWEUvaTlITGcrZDdQOCtJdgpMNnFkUkloYXg2Sko3NlNrSklZ -T0hZcVhseGRhclJhdFZxdjZ0UmpWSlJQZXRjK2swRW5zT2IrSFgvLzRWZTBvUXRRcUZrMTZyMTY5 -CnV0WmRGR1U0WmVESjdrK3FIVU5ZVVgzWCtyeDJ6MnM4Ri84Y3Z6NzJxK3c5Q21FbFp1MWg1T2Zu -czI3ZE9wWXVYY3JwMDZmcDJMRWoKZDkxMWwvSGhxQzVldjhpWnJETUV0ZzVVTzRxd3NvZTdQc3ox -L090OGYrUjd0YU1JVVd1WVZUQmVldWtsbGl4WlFzdVdMWG4xMVZlWgpQNy9pKzExWHhtQXc0T2Zu -aDQrUER3c1hMaXoxL3VyVnF3a01EQ1FvS0lqbzZHaUw3aGx1aVcxL2JLUFg3YjJvNDFLblJ2b1g2 -cW5qClVvZTNCcnpGaTcrOFNFRlJnZHB4aEtnZEZETUVCd2NyZVhsNWlxSW95cFVyVjVTSWlBaHov -bG01Z29LQ2xDMWJ0aWlwcWFsSzU4NmQKbFlzWEw1cThmKzNhTmVQWGVyMWU2ZE9uVDVuOW1CbS9Y -TS8rOUt6eWh1R05VbjJDWXNaRHJYYVNzYkoySllxS2lwUituL1JUM2s5Kwp2MXIvUHhHaXRxbnFa -NmRaZXhoRlJVVzR1YmtCMExScFV6SXpNNnRjb0RJeU1nQ0lpSWpBMjl1YlFZTUdrWlNVWk5LbVVh -TkdKdTNyCjE2OWY1ZkVxc3ZYVVZybkRYaTJtMFdoNGU4RGJ6Tmt5aCt0NTE5V09JNFRETTJ2U2U5 -KytmYmk3dXh1ZloyZG5HNTlyTkJxTENraHkKY3JKeExTb0FmMzkvRWhNVGlZNk9ObW4zM1hmZk1Y -WHFWSzVkdThhdVhidks3Vy8yN05uR3IzVTZIVHFkenF3Y21ibVpITGwwaEpDMgpJV1puRjQ3QXRm -UWs5M0JvdktZeEdFeGZkbmR2Um1hbTR5OXRJMFJsOUhvOWVyMisydjJZVlRBS0N3dXJQWkNsN3Iv -L2Z1Ni8vMzYrCit1b3IvdmEzdjdGbno1NHkyOTFjTUN5eC9mUjJ1cmZ0VGoxWHVlbE83VkpBcVF2 -OE5wMkVKMEpoMXlHNDNzcjRjbGFXbkQwbG5NT3QKZjB6UG1UT25TdjFZZEIyR05ZU0VoSERreUJI -ajg0TUhEOUt6Wjg5eTI0OGFOWXF6WjgrYTNCcldHa291MkJOTzRFcEgyUGN3NkdhcgpuVVFJaDJi -aTNkZEpBQUFjV1VsRVFWVHpndUhoNFFFVW55bVZtcHBLZkh3OFlXRmhKbTFPbkRoaHZON2poeDkr -b0h2MzdqUm8wTUNxCk9ReW5ERVRjSVFYRGFXeVpCWDdmUXB2ZGFpY1J3bUZaZE9HZXRjeWZQNStZ -bUJqeTgvT0pqWTNGMDlPVHVMamltOS9FeE1Td2F0VXEKUHYzMFU5emMzTkJxdGJ6OTl0dFdIVCtu -SUljOTUvWVFmbnU0VmZzVmRpeTdPZnp5QnR6N0RDejdGY3c3MzBNSWNaTXEzYUxWWGxSMQpBUzNE -S1FNemZwN0JqaWQybE5tbkxPeFgzWFpxamwxQk8wMFJQTlliZGo4QmV4NERySGVMWHlFY2lVMXUw -VnBiR0U0WjVIUmFaNlM0CndBK0xvUDlMMEVET2poTENVazVaTUxiK3NWWG1MNXpWdVdBNE5BTDZ2 -YXgyRWlFY2p0TVZqSUtpQWhKT0ozRDNIWGVySFVXb1pkTnIKNFBzZHRGRTdpQkNPeGVrS3hwNXpl -N2pENHc1YU5HeWhkaFNobHB4bThNdS9JQnFLbENLMTB3amhNSnl1WUNTa0pkRDdqdDVxeHhCcQor -MjBzRk1HeVBjdlVUaUtFdzNES2doSGVUazZuZFhxS0Mvd0EvN2ZwLzBpL2thNTJHaUVjZ3RNVmpN -UzBSSHEySy8vS2N1RkV6c09vCkxxUDR2MDMvcDNZU0lSeUNVeFdNODlmT2s1R1RRYWNXbmRTT0l1 -ekVxL2U4eXVxanEwaytVelAzWEJHaU5uR3FncEdVbGtSWXV6QmMKTkU3MWJZc0tOSzNmbExjR3ZN -WEVIeVpTV0dUN1JUYUZjQ1JPOWNtWmtKWkF6OXZrY0pRdzlXaTNSMm5vMXBCM2s5NVZPNG9RZHMy -cApDb2JNWDRpeWFEUWFsZzFieHV0YlgrZm9wYU5xeHhIQ2JqbE53U2dvS21EWHVWMkUzaGFxZGhS -aGgrNXNmaWR6ZEhNWXYzcThISm9TCm9oeE9VVENhTkdtTzIyMXVYRHR6amVZTm02UFJhTXA5Q09m -MWRNalROSEJ0d055RXVXcEhFY0l1T1VYQnlNcTZBdTBXUTlvRWlsY3kKcmVnaG5KV0x4b1ZsOXkz -ajM5di96Y0UvRDZvZFJ3aTc0eFFGQTRCMmlaQW04eGVpWXUyYnR1ZjFmcTh6N3Z0eDVCZm1xeDFI -Q0x1aQpTc0V3R0F6NCtmbmg0K1BEd29VTFM3Mi9mUGx5QWdNRENRd01aTXlZTVJ3N2RxejZnMHJC -RUdaNkl2Z0pXalJzd1Z1L3ZxVjJGQ0hzCmlpbzNVTkpxdFN4WXNBQnZiMjhpSXlQWnRtMGJucDZl -eHZjVEVoTHc5L2ZIdzhPRFR6NzVoSTBiTi9MWlo1K1Y2c2ZjbTRCb0dtcmcKV1hkNDh3b29kU3By -amQzZCtNZHV4cTV0R2QyQWdyTGZhZ0xFQUorQys0MW1aR2JLL1RORTdlRXdOMURLeU1nQUlDSWlB -bTl2YndZTgpHa1JTVXBKSm0vRHdjT085djZPam85bXlaVXYxQm0wSG5Ba3hvMWdJNTFKQXVYTlpt -UXJFZndUM0I1SjE0NHFhSVlXd0d6WXZHTW5KCnlmajYraHFmKy92N2s1aVlXRzc3RHo3NGdLRkRo -MVp2MEhiSTRTaGh1YjNqSU9OMmtIdHRDUUdBcTlvQktySng0MFkrLy94enRtL2YKWG02YjJiTm5H -Ny9XNlhUb2RMclNqZG9CU2JKQ3JiQ1VCdForQURGdDBhZnEwYlhYcVIxSWlDclI2L1hvOWZwcTky -UHpPWXlNakF4MApPaDE3OXV3QllQTGt5VVJGUlJFZEhXM1NidCsrZlR6d3dBUDg5Tk5QM0hYWFhX -WDJaYzV4dUNLbGlEb3YxWUYzLzRRYkxjMUk2QWpICjNpVmo5ZHRaMExhamhqWVQyN0RyeVYyMGNa -ZmI5QW5INXpCekdDVnpFd2FEZ2RUVVZPTGo0d2tMQ3pOcDg4Y2ZmekI4K0hDV0wxOWUKYnJFdzEr -R0xoK0VHWmhZTEljcHdFbUs2eHpCNjFXZ0tpc3FaSkJmQ0NhaHlXdTM4K2ZPSmlZbGh3SUFCVEp3 -NEVVOVBUK0xpNG9pTAppd1BnMVZkZjVmTGx5enoxMUZOb3RWcENRNnUrbkVkaVdpS2tXU3U1Y0ZZ -dlI3eE0zVHAxZVdYeksycEhFVUkxcXB4V2F5M203Rlk5CnNmWUpQbnp0UTBoMndrTXBrdEZxZlNx -S3dzWHJGK24rUVhjV1J5OW1TS2NoWm80aGhQMXhtRU5TdHBad09rSDJNSVJWdEd6VWtpOUgKZk1u -amF4NG45V3FxMm5HRXNMbGFYVEF5Y2pLS2Y3RXZxSjFFMUJhOWJ1L0ZDNzFmWU9UWEk4a3R5RlU3 -amhBMlZhc0xSdkxaWklMYgpCRU9SMmtsRWJUSzE1MVJ1YjNJNzAzNmVwbllVSVd5cVZoZU1oTk1K -Y3NNa1lRV3VKa3ZndTdpNDhOMjQ3MWk4WVRHYXdQKzkzcVJKCmM3V0RDbEdqYW5YQlNEd2pkOWdU -MWxER0VpSzVDbnk1RHlKYmd2Y1dRQ2xlUmwrSVdxeldGZ3hGVWVTV3JLSm0vZGtWVmkySGtTT2gK -NVNHMTB3aFI0MnB0d1RoKytUaU42emFtclh0YnRhT0kydXprUUloL0d4NitGeHFySFVhSW1sVnJD -MFpDbXN4ZkNCdjViUnpzZmh3ZQpocXpjTExYVENGRmphbTNCU0V4THBPZHRVakNFalJoZWhyUHc0 -RGNQeXAzNlJLMVZ1d3VHN0dFSW05SEFldENnNGVuMVQxZnBLbG9oCjdGMnRMQmpYODY1ek5QMW84 -VFVZUXRoS0Vhd2N1Wkk5NS9md1Q4TS8xVTRqaE5YVnlvS3g4K3hPdXJicVNqM1hlbXBIRVU2bWNk -M0cKckIrem5tVjdsN0ZveHlLMTR3aGhWWFo5QTZXcWtzTlJRazFlamIzWU5IWVQvVDd0UjE1aEhs -UERwNm9kU1FpcnFKVjdHSWxuRWdsdgpKM2ZZRStycDBLd0RXOFp2WWZIT3hmeHI2Ny9VamlPRVZk -UzZnaUVYN0FsN2NZZkhIV3dadjRWUDkzM0tMUDBzbVFnWERxL1dGWXhUCkdhZUE0bDlXSWRUVzFy -MHQrbkY2dmozOExTLys4cUlVRGVIUVZDa1lCb01CUHo4L2ZIeDhXTGh3WWFuM2p4dzVRbmg0T1BY -cjEyZnUKM0xrVzlWMnlkNkhSYUt3VlY0aHFhZDI0Tlp2SGJXYkRpUTFNKzNtYUZBM2hzRlFwR0ZP -bVRDRXVMbzZOR3pleWFORWlMbDI2WlBKKwppeFl0V0xod0lUTm16TEM0NzhRMG1iOFE5c2V6b1Nl -YnhtN2kxejkrWmVJUEV5a3NLbFE3a2hBV3MzbkJ5TWpJQUNBaUlnSnZiMjhHCkRScEVVbEtTU1p1 -V0xWdlNvMGNQM056Y0xPNWZsZ1FSNmpGZEJ2M1dSL09HelVtZW5NelNWUjh5NUlzaFhNMjVxblpn -SVN4aTg0S1IKbkp5TXI2K3Y4Ym0vdnorSmlZbFc2VHVuSUljRGZ4NmdlNXZ1VnVsUENNdVVzUXg2 -R2N1aUYzNVN3RjNON3lMc3d6Q09YanFxWGx3aApMT1R3MTJITW5qM2IrSFZMLzViNGV2clNxRzRq -OVFJSlVaa2lXRGg0SVV0M0xhWFBSMzM0NUcrZk1OaG5zTnFwUkMybTErdlI2L1hWCjdzZm1CU01r -SklUbm5udk8rUHpnd1lORVJVVlZ1YitiQzhhOGhIbjBiQ3lIbzRSamVLTDdFL2kxOUdQazF5T1pI -ajZkNmVIVDVXUU4KVVNOME9oMDZuYzc0Zk02Y09WWHF4K2FIcER3OFBJRGlNNlZTVTFPSmo0OG5M -Q3lzekxhV25rMlNrSllnSzlRS2gzTDNIWGVUOVBjawpWdXhmd2Rqdng1SlRrS04ySkNIS3BWRlVP -TWR2eTVZdFBQWFVVK1RuNXhNYkcwdHNiQ3h4Y1hFQXhNVEVjUDc4ZVVKQ1Fzak16TVRGCnhRVjNk -M2NPSFRwRTQ4YW1kNmpSYURRbVJlV09lWGZ3eTloZjhHbmhVNnBkOFRGa2M1amJWcTEyYW80dEdh -M1Y3dFpmdXh2NU4zaHMKOVdNY1N6L0dwL2QvU2tDckFEUDZFYUpxYnYzc05QdmZxVkV3ck9YbWIv -cE01aGtDM3cvazRuTVhTKzNXUzhHd2RUczF4M2FNakdYOQoyaW1Ld29lN1ArU2xUUzh4STN3R00z -ck5vSTVMSFRQNkU4SXlUbHN3alB3QUxiQ2l2TmIyL3lFaUdXM1pUczJ4Sy81bFRiMmF5b1RWCkU4 -Z3R5T1hqdjMxTXB4YWR6T2hUQ1BOVnRXRFVncVZCL2pwZHNkME1TSHZ0Zjg5TkhrSTRqdlpOMi9Q -TDJGOTRLT0FoZXYyM0YrOG0KdlV1UlVxUjJMQ0ZxUThINFM3dEVTSk1KYjFFN3VHaGNpQTJMWmZ2 -ajIvbnl3SmYwLzdRL3h5OGZWenVXY0hLMW8yQzQ1RU9iUFhBbQpWTzBrUWxoVnB4YWQyRHBoSzlF -KzBmVDhzQ2RUTjB6bGN2Wmx0V01KSjFVN0NrYnJmWENsQStRMlVUdUpFR2FvZUFtUm14OU5talNu -Cmprc2RadlNhd2NHSkI4a3R5S1h6ZTUxNUorRWRjZ3R5MWY1R2hKT3BIUVhqOWdRNUhDVWNpQmxM -aVB6MXlNcTZZdnhYclJ1M1puSDAKWWd6akRlaFQ5Zmd0OG1QbHdaV3krcTJ3bVZwd2xwUUNEendD -S2YxZ3oyUGx0Y1FSenB5UmpMWnNwK2JZbG1VczcxZDBjOHBtWnNUUAp3TTNGamYvcjgzOUVkNHJH -UlZNNy9nWVVOY3VKVDZ0VklQWXUrR0lOWFBRdnJ5VzE3VU5FTWxhM25acGpXNmRnQUJRcFJhdzh1 -SkovCmIvODMxL091TTdYblZCNE5mSlNHYmczTjdGODRvNm9XRElkZmZKQkdmMExEUzNESnQvSzJR -amdjVjdQV2wycnMzcFIxKzc1bmJzSmMKWHRuOENrLzFlSXBuUXA2aGRlUFdOc2dvbklYajc3L2Vs -bFI4ZHBUaStOK0tFS1daTjk5eExlc3FmZHYzWmMzb05XeWRzSldMTnk3aQp1OGlYOGQrUFoxUEtK -cmxoazdBS3h6OGsxZThsS0hJRmZVV3JMOWErd3hTU3NicnQxQnk3WmpMZStxdDg2Y1lsUHQ3N01W -OGMrSUp6CldlY1lGVENLTVFGajZORzJoNnlLNitTY2R3NWpiRC9ZUGdPT1YzUS9BZWY5RUpHTTlq -aTJiUXJHelk1Y09zSVhCNzVneGY3aXRYUEcKZEIzRDZJRFIrSHJLb1Z4bjVMd0Y0MFYzbUo4SzJj -MHJhb216Zm9oSVJuc2MyL1lGbzRTaUtPdzh1NU12RG56Qmx3ZStwRW05Smd6bwpPSUQrSGZxamE2 -K2pXWU5tWnVZU2pzeDVDOGFrenZEZWtjcGE0cXdmSXBMUkhzZXVpWXh1Rk05M1ZNemR2Um1abWNW -WGloY3BSZngyCi9qYzJudHpJTHltLzhPdnBYL0h6OURNV2tONTM5S2ErYTMwemN3cEg0cndGNDIv -ajRQdVBLMnVKYzM2SVNFYjdIRnZkak9YOXl1Y1cKNUpLWWxzakdsSTM4Y3ZJWDl2KzVuKzV0dWhQ -Y0pwZ2dyeUNDdklMdzgvVERyWTZibWRtRnZYTGVndEZqQ2V4OHFyS1d5SWVJTGR1cApPYlprckt5 -ZHViL3ltYm1aSkp4T1lPLzV2ZXk5c0plOTUvZHk2dW9wZkQxOWpRVWt5Q3VJd05hQmVOVDNNS3RQ -WVI4Y3FtQVlEQVppClltSW9LQ2dnTmphV3laTW5sMnJ6NG9zdjh0VlhYOUdzV1RPV0wxK09yMi9w -eVRtTlJnTmVlK0I4VUNVanF2MGhzaG5RV2FrL1M4ZTIKcEoyZWluUGFRMGFvT0tka3JKamxoNjV1 -ZGozdk9nZitQR0JTUlBaZjJFOTkxL3A0Ti9XbWZkUDJ4UStQNHYrV3ZOYWtYdlhXZWRQcgo5U2Iz -cExaWGpwTFRvUzdjbXpKbENuRnhjWGg3ZXhNWkdjbm8wYVB4OVBRMHZyOWp4dzYyYnQzS3pwMDcy -YkJoQXpObXpHRGR1blZsCmQvYW5JOXpLVWsvbEJjTWU2SkdjMXFMSFBqT1dYTmRSWXZaZkQxTlpX -V1dmZHR1b2JpUEMyb1VSMWk3TStKcWlLRnk4Y1pIVXE2bWMKdW5xSzFLdXBIRWsvd2s4bmZqSytW -cmRPWGRvM2JjL3RIcmZqMmRDVEZnMWEwS0pCQzVvM2FFNkxocVcvcnVkYXoyUmNSL2tnZHBTYwpW -V1h6Z3BHUmtRRkFSRVFFQUlNR0RTSXBLWW5vNkdoam02U2tKRWFNR0VIejVzMFpQWG8wTDcvOGN2 -a2RGam4reGVwQzJCL3pyakF2CjVnYmtWOWppZXNQcjVMWXQ0T1UxTDVOK0k1MzA3T0xIc2N2SFNM -K1J6dVhzeThXdi9mVzFXeDIzNHFMU3NMaVFuRGx3aHFPcmpsTGYKdFQ0TlhCdlF3SzFCOFg5di92 -cXYvOVozclYvcXRaTC8xbk90UngxTkhlcTQxTUZGNDBJZHpWLy8vZXU1cUpqTlAyMlRrNU5ORGkv -NQorL3VUbUpob1VqQjI3TmpCbzQ4K2FuemVzbVZMVHB3NHdaMTMzbW5UckVJNHIxdjNSQ3BpeHVH -d0czRGp1QnZEL1lkWDJsdGo5NmFjCnZmZ0g2ZGwvRlpJYjZmeDN4MzhaMm1rbzJmblpaQmRrazUy -ZlRVNUJEdGZ6cjNNcCs1TEo2emUvZit0cnVZVzVGQllWVXFRVVVhajgKOWQraVFncVY0aXZoeXlv -aVpUMHY3NzMwNUhTK1hmSnRtVzFkTkM1b0tDN0NOeGRqdFY2ckNydjg4MXhSbEZMSDE4ci9SczNk -QUpacwpLR3YzT2Vldmg3WDZzNlN0cGUwcXkya1BHYUhpbkpMUnNuYmw1YXlKakpXN2xuV1ZKdlZM -ejNsOHRlZ3JxNDFSbnFLLy9sY2RGMys0CmFLVTA5c2ZtQlNNa0pJVG5ubnZPK1B6Z3dZTkVSVVda -dEFrTEMrUFFvVU5FUmtZQ2NQSGlSVHAyN0ZpcUx3Yyt3VXNJSVJ5T3pRL2EKZVhnVW4zNW5NQmhJ -VFUwbFBqNmVzTEF3a3paaFlXR3NXcldLOVBSMFZxeFlnWitmbjYxakNpR0V1SVVxaDZUbXo1OVBU -RXdNK2ZuNQp4TWJHNHVucFNWeGNIQUF4TVRHRWhvWnk5OTEzMDZOSEQ1bzNiODdubjMrdVJrd2ho -QkEzVSt6Y2xpMWJGRjlmWCtXdXUrNVMzbjMzCjNUTGJ6Snc1VStuUW9ZTVNIQnlzSEQ1ODJNWUpp -MVdXYy9QbXpVcVRKazJVb0tBZ0pTZ29TSG50dGRkc25uSENoQWxLcTFhdGxJQ0EKZ0hMYjJNTzJy -Q3luUFd4TFJWR1VQLzc0UTlIcGRJcS92Ny9TdDI5Zlpmbnk1V1cyVTN1Ym1wTlQ3VzJhbloydGhJ -YUdLb0dCZ1VwWQpXSmp5emp2dmxObE83VzFwVGs2MXQrWE5DZ29LbEtDZ0lHWElrQ0Zsdm0vcDly -VDdnaEVVRktSczJiSkZTVTFOVlRwMzdxeGN2SGpSCjVQMmtwQ1NsZCsvZVNucDZ1ckppeFFvbE9q -cmFMbk51M3J4WkdUcDBxQ3JaU2hnTUJtWDM3dDNsZmhEYnk3YXNMS2M5YkV0RlVaUnoKNTg0cGUv -YnNVUlJGVVM1ZXZLaDA2TkJCeWN6TU5HbGpEOXZVbkp6MnNFMnZYNyt1S0lxaTVPVGtLRjI2ZEZG -Ky8vMTNrL2Z0WVZzcQpTdVU1N1dGYmxwZzdkNjR5WnN5WU12TlVaWHZhOVluSE4xK3o0ZTN0YmJ4 -bTQyYTNYck54K1BCaHU4d0o2ay9TOStuVGgyYk55bCtOCjFCNjJKVlNlRTlUZmxnQmVYbDRFQlJX -dk11RHA2VW1YTGwzWXVYT25TUnQ3MktibTVBVDF0Mm5EaHNXM2xiMTI3Um9GQlFYVXEyZDYKOFo0 -OWJFdW9QQ2VvdnkwQjB0TFMrT0dISC9qNzMvOWVacDZxYkUrN0xoamxYYk54c3gwN2R1RHYvNzk3 -ZVpkY3MyRkw1dVRVYURScwozNzZkb0tBZ3BrMmJadk9NNXJDSGJXa09lOXlXeDQ4ZjUrREJnNFNH -aHBxOGJtL2J0THljOXJCTmk0cUtDQXdNcEhYcjFreWFOSW5iCmI3L2Q1SDE3MlphVjViU0hiUWt3 -ZGVwVS92M3ZmK1BpVXZiSGZGVzJwMTBYREhNb0ZsMnpvWjdnNEdCT256NU5jbkl5L3Y3K1RKa3kK -UmUxSXBjaTJySnFzckN4R2pSckZ2SG56YU5Tb2tjbDc5clJOSzhwcEQ5dlV4Y1dGMzM3N2plUEhq -N040OFdMMjdObGo4cjY5Yk12SwpjdHJEdGx5M2JoMnRXclZDcTlXV3U3ZFRsZTFwMXdVakpDU0VJ -MGYrZDYrTGd3Y1Awck5uVDVNMkpkZHNsQ2p2bW8yYVpFNU9kM2QzCkdqWnNpSnViRzQ4Ly9qakp5 -Y25rNXViYU5HZGw3R0ZibXNPZXRtVitmajdEaHcvbjBVY2Y1Yjc3N2l2MXZyMXMwOHB5MnRNMmJk -KysKUGZmZWUyK3B3N3Iyc2kxTGxKZlRIcmJsOXUzYldiTm1EUjA2ZEdEMDZORnMyclNKc1dQSG1y -U3B5dmEwNjRMaEtOZHNtSlB6d29VTAp4bXErZHUxYXVuWHJWdWF4VHpYWnc3WTBoNzFzUzBWUmVQ -enh4d2tJQ09EWlo1OHRzNDA5YkZOemNxcTlUUzlkdXNUVnExY0JTRTlQCjUrZWZmeTVWMk94aFc1 -cVRVKzF0Q2ZER0cyOXcrdlJwVWxKUytQTExMK25YcngrZmZ2cXBTWnVxYkUrN1hCcmtabzV5elVa -bE9iLzUKNWh1V0xGbUNxNnNyM2JwMVkrN2N1VGJQT0hyMGFMWnMyY0tsUzVlNC9mYmJtVE5uRHZu -NStjYU05ckl0Szh0cEQ5c1M0TmRmZitYegp6eituVzdkdWFMVmFvUGdYOVk4Ly9qQm10WWR0YWs1 -T3RiZnB1WFBuR0RkdUhJV0ZoWGg1ZVRGanhnemF0R2xqZDcvcjV1UlVlMXVXCnBlUlFVM1czcDBQ -ZlFFa0lJWVR0MlBVaEtTR0VFUFpEQ29ZUVFnaXpTTUVRUWdoaEZpa1lRZ2doekNJRlExaVZpNHNM -TTJiTU1ENy8KejMvK3c1dzU1dHc4eW5wME9oMjdkKzhHSURvNm1zek16R3IxcDlmckdUcDBxTm12 -MThSWU5lbnMyYk9NSERuU3BtTUt4eVFGUTFoVgozYnAxK2U2NzcwaFBUd2NzdnhLM3NMQ3cyaGx1 -SG5QOSt2VTBhVkw2N20zaWY5cTJiY3ZYWDMrdGRnemhBS1JnQ0t0eWMzUGp5U2VmClpONjhlYVhl -TzN2MkxGT21UQ0V3TUpDcFU2ZHk0Y0lGQU1hUEg4KzBhZE1JQ3d2amhSZGVZTUtFQ1V5ZlBwM1Ew -RkE2ZCs3TW5qMTcKZVBMSkorblNwUXV6Wjg4MjlqZHg0a1JDUWtMbzFhc1hTNWN1TFROUCsvYnRT -VTlQNS8zMzMwZXIxYUxWYXVuUW9RUDkrdlVEaXRjQgpHenQyTEdGaFljeWNPZE40Ulc1eWNqTDkr -L2RIcTlXeVljT0dTci92N094czNubm5IZnIyN1V0MGREUjZ2UjZBOFBCd2s2dHBTL1orCmNuSnl5 -bXhmbnRPblR6TjQ4R0NDZ29JSURBemt4SWtUcEthbTR1L3Z6K09QUDQ2Zm54OXo1c3d4NW4vdHRk -Y0lEUTBsSkNTRU45NTQKdzZTZjZkT25vOVZxNmQ2OU95a3BLYVNtcHRLMWExY0FQdjc0WXg1NjZD -SHV2ZmRlQWdJQ2VQZmRkNDMvOXFlZmZpSThQSnpRMEZDZQpmZlpaSmsrZVhDcm4zcjE3NmQrL1Aw -RkJRUVFIQjNQdDJyVkt0NTF3SU5WWk9sZUlXelZ1M0ZqSnpNeFUycmR2cjJSa1pDai8rYzkvCmxO -bXpaeXVLb2loVHAwNVYzbjc3YlVWUkZPV05OOTVRbm4vK2VVVlJGR1hjdUhGSzM3NTlqVXR1ang4 -L1hoazhlTENTbTV1cmZQengKeDByanhvMFZ2VjZ2NU9ibUtuNStmc2FsNHk5ZnZxd29pcUxrNXVZ -cVlXRmh5clZyMXhSRlVSU2RUcWZzMnJWTFVSUkZhZCsrdlpLZQpubTdNbDUrZnIvVHAwMGRadDI2 -ZHNlM1ZxMWNWUlZHVTU1OS9Ydm55eXk4VlJWR1VidDI2S1VsSlNjcTFhOWVVcUtpb01wZUgzcng1 -CnMvRStBeDk5OUpHeVlNRUNSVkVVNWZ6NTgwcG9hS2lpS0lveWI5NDhaZGFzV1lxaUtNclpzMmVW -enAwN1Y5ais1ajV2Tm12V0xPWEQKRHo4MGZnL1oyZGxLU2txS290Rm9sRysvL1ZiSnljbFJIbmpn -QWVXYmI3NHgyVFlGQlFYSzBLRkRsU05IamhpMzlhSkZpNHpiN2NhTgpHMHBLU29weEtmbVBQdnBJ -YWRXcWxYTDI3RmtsTXpOVGFkZXVuWktYbDZmazUrY3I3ZHUzVjFKU1VwVDA5SFFsT0RoWW1UeDVj -cW1jCjQ4YU5Velp1M0tnb1N2RXk0QVVGQmFYYUNNY2xleGpDNnR6ZDNSazdkcXpKWDZjQVAvNzRJ -NDg5OWhnQWp6LytPR3ZYcmdXS0R5R04KR0RFQ2QzZDNZOXNSSTBaUXQyNWR3c1BEYWRxMEtYMzc5 -cVZ1M2Jwb3RWcmpTc0R4OGZGRVIwZWoxV281ZWZJa216WnRxalJiYkd3cwovZnYzSnpvNm1sMjdk -bkhnd0FGME9oMWFyWloxNjlaaE1CZzRjK1lNaXFJUUdocEtvMGFOR0RWcVZLWExWYTlhdFlxbFM1 -ZWkxV3FKCmlvcml3b1VMcEtTazhPQ0REL0xOTjk4QXNITGxTdU5jUVZudFQ1NDhXVzcvSVNFaHpK -OC9uN2ZlZW92TGx5OVR2MzU5b0hoWm12dnYKdjU5Njllb3hldlJvZnZycEp3QjI3dHpKOE9IRDZk -YXRHN3QzNytibm4zOG1MeStQelpzMzg4UVRUd0RGaHc4Yk5HaFFhcXhCZ3diUgpwazBiM04zZDhm -ZjNaL2Z1M1NRbUp0SzFhMWZhdDI5UDgrYk5HVFpzV0puYkpEdzhuSmt6Wi9MZWUrOVJVRkJBblRw -MUt2MlpDTWRoCjkwdURDTWYwN0xQUEVod2N6SVFKRTB4ZUwrK0R0MDJiTmliUFM5Ym5xbHUzTGsy -Yk5qVytYcmR1WGZMeThzakt5bUxtekpsczNicVYKMjI2N2pmdnZ2NThyVjY1VW1Pbmpqei9tOU9u -VExGNjhHQ2hlcGpvZ0lJRE5temVidEV0TFN6UHZtN3hKVVZFUml4WXRJaUlpb3RSNwpMVnEwWVAv -Ky9heGN1ZEs0TkVONTdVdVc2N2hWZEhRMDNidDM1L1BQUDZkMzc5NTgvZlhYSnR1bFJNbjh6ZVRK -ay9ubW0yOElDQWhnCjZ0U3BYTGx5QlkxR1UrWUtwYmU2ZFh2bjVPVGc2dXBxTWpkVVhoOHhNVEVN -SERqUXVCUkpVbElTclZ1M3JuQTg0VGhrRDBQVWlHYk4KbXZIZ2d3L3kzLy8rMS9oQmMrKzk5L0xK -SjU5UVZGVEVzbVhMR0Rac1dKWDZWaFNGcTFldjR1Ym1ocGVYRjhlT0hlT1hYMzZwOE4vcwoycldM -dVhQbjh0bG5ueGxmQ3drSjRjS0ZDOFk5bHV2WHIvUDc3Ny9UcmwwNzZ0U3BRM0p5TXRldlgyZmx5 -cFdWWmhvelpneHhjWEZrClpXVUJtQ3g1UFdyVUtONTY2eTB5TXpNSkNBaW90SDFaVWxKU2pHc1g5 -ZS9mM3pndmtwR1J3ZmZmZjA5dWJpNWZmZlVWVVZGUjVPVGsKa0pXVlJmdjI3VGx6NWd5clY2OEdp -dWVYN3JubkhwWXVYWXFpS09UbTVwS2RuVjNwOTZiUmFPalpzeWY3OSs4bk5UV1Z5NWN2czI3ZAp1 -akpQYURoeDRnUWRPM2JrSC8vNEI3Nit2blp4cnhKaFBWSXdoRlhkL0NFeWZmcDBMbDI2Wkh3K1k4 -WU0vdmpqRDdSYUxSY3VYR0RhCnRHbGwvcnRibjVmMTN1MjMzODd3NGNNSkNBaGcwcVJKNVo2S1d2 -Slg5YUpGaTdoeTVRcjMzSE1QV3EyV0o1OThFb0RQUHZ1TUpVdVcKMEsxYk4zcjE2c1hSbzBjQitP -Q0REM2p4eFJlNSsrNjdDUXdNTFBQRFVhUFJHRjhmTVdJRW9hR2hSRVpHRWhBUXdLeFpzNHp0Um93 -WQp3VmRmZmNXRER6NW84bHBaN1cvdTgyWXJWNjRrSUNDQWtKQVFidHk0WWV6TDE5ZVhOV3ZXRUJR -VVJFQkFBTkhSMGRTdlg1K1pNMmNTCkdocktxRkdqdVBmZWU0Mzl2UDc2Nnh3L2ZwekF3RUI2OSs1 -dFBQR2daTXp5eHE5VHB3N3Z2ZmNlbzBhTklpb3FpcTVkdTlLaFE0ZFMKN1JZc1dFRFhybDBKRFEz -RjE5ZVhYcjE2bGZsekVZNUpGaDhVd2tHbHBxWXlkT2hROXUvZmI1UHhybCsvVHFOR2pjakl5R0RJ -a0NGOAorT0dIZE83YzJTWmpDL3NnY3hoQ09EQmIzbkZ1OXV6WmJOeTRFVGMzTng1NTVCRXBGazVJ -OWpDRUVFS1lSZVl3aEJCQ21FVUtoaEJDCkNMTkl3UkJDQ0dFV0tSaENDQ0hNSWdWRENDR0VXYVJn -Q0NHRU1Ndi9BMkdrMllXcWd3ZTFBQUFBQUVsRlRrU3VRbUNDCg== - - - - - - - - +{ + "nbformat": 2, + "name": "rmt", + "worksheets": [ + { + "cells": [ + { + "source": "# Eigenvalue distribution of Gaussian orthogonal random matrices", + "cell_type": "markdown" + }, + { + "source": "The eigenvalues of random matrices obey certain statistical laws. Here we construct random matrices \nfrom the Gaussian Orthogonal Ensemble (GOE), find their eigenvalues and then investigate the nearest\nneighbor eigenvalue distribution $\\rho(s)$.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": false, + "prompt_number": 1, + "input": "from rmtkernel import ensemble_diffs, normalize_diffs, GOE\nimport numpy as np\nfrom IPython.parallel import Client" + }, + { + "source": "## Wigner's nearest neighbor eigenvalue distribution", + "cell_type": "markdown" + }, + { + "source": "The Wigner distribution gives the theoretical result for the nearest neighbor eigenvalue distribution\nfor the GOE:\n\n$$\\rho(s) = \\frac{\\pi s}{2} \\exp(-\\pi s^2/4)$$", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "def wigner_dist(s):\n \"\"\"Returns (s, rho(s)) for the Wigner GOE distribution.\"\"\"\n return (np.pi*s/2.0) * np.exp(-np.pi*s**2/4.)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "def generate_wigner_data():\n s = np.linspace(0.0,4.0,400)\n rhos = wigner_dist(s)\n return s, rhos" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": false, + "prompt_number": 4, + "input": "s, rhos = generate_wigner_data()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 17, + "text": "<matplotlib.text.Text at 0x3828790>" + }, + { + "output_type": "display_data", + "png": "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\nSUVORK5CYII=\n" + } + ], + "collapsed": false, + "prompt_number": 17, + "input": "plot(s, rhos)\nxlabel('Normalized level spacing s')\nylabel('Probability $\\rho(s)$')" + }, + { + "source": "## Serial calculation of nearest neighbor eigenvalue distribution", + "cell_type": "markdown" + }, + { + "source": "In this section we numerically construct and diagonalize a large number of GOE random matrices\nand compute the nerest neighbor eigenvalue distribution. This comptation is done on a single core.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 6, + "input": "def serial_diffs(num, N):\n \"\"\"Compute the nearest neighbor distribution for num NxX matrices.\"\"\"\n diffs = ensemble_diffs(num, N)\n normalized_diffs = normalize_diffs(diffs)\n return normalized_diffs" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 7, + "input": "serial_nmats = 1000\nserial_matsize = 50" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "1 loops, best of 1: 1.19 s per loop" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "%timeit -r1 -n1 serial_diffs(serial_nmats, serial_matsize)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": false, + "prompt_number": 9, + "input": "serial_diffs = serial_diffs(serial_nmats, serial_matsize)" + }, + { + "source": "The numerical computation agrees with the predictions of Wigner, but it would be nice to get more\nstatistics. For that we will do a parallel computation.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 10, + "text": "<matplotlib.text.Text at 0x3475bd0>" + }, + { + "output_type": "display_data", + "png": "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\nvDyaNWtGcHAwzZs3N7u/dUNyat2XJSk81FTR/rToO+4JIYQwHbM+JCWEEMJ8SMEQQghhECkYQggh\nDCIFQwghhEGkYIhKZWNjQ3BwsP75v//977/cArTq+fv7c/jwYQACAwNJTU2t0PrCw8MZOnSowa9X\nxbaq0tWrV3nmmWdMuk1hmaRgiEpVs2ZNvv/+e5KSkgDjr8TNy8urcIZ7t7l161bs7e0rvE5r1qJF\nCzZu3Kh1DGEBpGCISmVnZ8cLL7zAokWLii27evUqM2fOxNPTk1mzZnHjxg0AJkyYwMsvv4yvry+v\nvvoqEydO5JVXXsHHx4f27dtz5MgRXnjhBTp06MC8efP06/v73/9O165d6dGjB6tXry4xj7OzM0lJ\nSXz00Ud4e3vj7e1NmzZtePzxx4GCecDGjRuHr68vc+bM0V+RGxsbS9++ffH29mb79u1lfu6MjAw+\n/PBD/Pz8CAwMJDw8HIDu3bsXuZq2cO8nMzOzxPaluXz5MoMGDcLLywtPT0/OnTtHXFwc7u7uTJ48\nGTc3N+bPn6/P//bbb+Pj40PXrl1ZsGBBkfW88soreHt706VLFy5cuEBcXBwdO3YE4IsvvmD06NEM\nHjwYDw8Pli5dqn/vtm3b6N69Oz4+Prz00ktMnz69WM6jR4/St29fvLy86Ny5M7dv3y6z74QFqcjU\nuUL8Vb169VRqaqpydnZWKSkp6t///reaN2+eUkqpWbNmqffff18ppdSCBQvU7NmzlVJKjR8/Xvn5\n+emn3J4wYYIaNGiQysrKUl988YWqV6+eCg8PV1lZWcrNzU0/dXxycrJSSqmsrCzl6+urbt++rZRS\nyt/fXx06dEgppZSzs7NKSkrS58vJyVG9e/dWoaGh+ra3bt1SSik1e/Zs9c033yillOrUqZOKjo5W\nt2/fVgMHDixxeujdu3fr7zPw+eefqyVLliillLp+/bry8fFRSim1aNEiNXfuXKWUUlevXlXt27e/\nb/t713mvuXPnqk8++UT/GTIyMtSFCxeUTqdT3333ncrMzFRPP/20+vbbb4v0TW5urho6dKg6deqU\nvq9XrFih77c7d+6oCxcu6KeS//zzz1WTJk3U1atXVWpqqnrooYdUdna2ysnJUc7OzurChQsqKSlJ\nde7cWU2fPr1YzvHjx6uwsDClVME04Lm5ucXaCMslexii0tWvX59x48YV+dcpwM8//8ykSZMAmDx5\nMlu2bAEKDiGNGDGC+vXr69uOGDGCmjVr0r17dxo2bIifnx81a9bE29tbPxPwzp07CQwMxNvbm/Pn\nz/PLL7+UmW3GjBn07duXwMBADh06xLFjx/D398fb25vQ0FAiIyO5cuUKSil8fHyoW7cuo0aNKnO6\n6k2bNrF69Wq8vb0ZOHAgN27c4MKFC4wcOZJvv/0WgA0bNujHCkpqf/78+VLX37VrVxYvXsx7771H\ncnIyDzzwAFAwLc2wYcOoVasWY8aMYdu2bQAcPHiQ4cOH06lTJw4fPsyOHTvIzs5m9+7dTJkyBSg4\nfFi7du1i2xowYADNmzenfv36uLu7c/jwYaKioujYsSPOzs44ODjwxBNPlNgn3bt3Z86cOSxfvpzc\n3FxsbW3L/J0Iy2H2U4MIy/TSSy/RuXNnJk6cWOT10r54mzdvXuR54fxcNWvWpGHDhvrXa9asSXZ2\nNmlpacyZM4c9e/bw4IMPMmzYMG7evHnfTF988QWXL19m5cqVQME01R4eHuzevbtIu/j4eMM+5D3y\n8/NZsWIFffr0KbascePG/P7772zYsEE/NUNp7Qun6/irwMBAunTpwpo1a+jZsycbN24s0i+FCsdv\npk+fzrfffouHhwezZs3i5s2b6HS6Emco/au/9ndmZiY1atQoMjZU2jqCgoLo37+/fiqS6OhomjZt\net/tCcshexiiSjRq1IiRI0fy6aef6r9oBg8ezJdffkl+fj6fffYZTzzxRLnWrZTi1q1b2NnZ0axZ\nM06fPs2uXbvu+55Dhw6xcOFCvvrqK/1rXbt25caNG/o9lvT0dM6cOcNDDz2Era0tsbGxpKens2HD\nhjIzjR07lpCQENLS0gCKTHk9atQo3nvvPVJTU/Hw8CizfUkuXLign7uob9+++nGRlJQUfvjhB7Ky\nsli/fj0DBw4kMzOTtLQ0nJ2duXLlCps3bwYKxpcee+wxVq9ejVKKrKwsMjIyyvxsOp2Obt268fvv\nvxMXF0dycjKhoaElntBw7tw5XFxc+N///V9cXV3N4l4lovJIwRCV6t4vkVdeeYXExET98+DgYC5d\nuoS3tzc3btzg5ZdfLvF9f31e0rKWLVsyfPhwPDw8mDZtWqmnohb+q3rFihXcvHmTxx57DG9vb154\n4QUAvvrqK1atWkWnTp3o0aMHf/zxBwAff/wxr732Gr169cLT07PEL0edTqd/fcSIEfj4+BAQEICH\nhwdz587VtxsxYgTr169n5MiRRV4rqf2967zXhg0b8PDwoGvXrty5c0e/LldXV3788Ue8vLzw8PAg\nMDCQBx54gDlz5uDj48OoUaMYPHiwfj3vvPMOZ8+exdPTk549e+pPPCjcZmnbt7W1Zfny5YwaNYqB\nAwfSsWNH2rRpU6zdkiVL6NixIz4+Pri6utKjR48Sfy/CMsnkg0JYqLi4OIYOHcrvv/9uku2lp6dT\nt25dUlJSGDJkCJ988gnt27c3ybaFeZAxDCEsmCnvODdv3jzCwsKws7Pj2WeflWJRDckehhBCCIPI\nGIYQQgiDSMEQQghhECkYQgghDCIFQwghhEGkYAghhDCIFAwhhBAG+X8LAxP1Be5fBAAAAABJRU5E\nrkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 10, + "input": "hist_data = hist(serial_diffs, bins=30, normed=True)\nplot(s, rhos)\nxlabel('Normalized level spacing s')\nylabel('Probability $P(s)$')" + }, + { + "source": "## Parallel calculation of nearest neighbor eigenvalue distribution", + "cell_type": "markdown" + }, + { + "source": "Here we perform a parallel computation, where each process constructs and diagonalizes a subset of\nthe overall set of random matrices.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 11, + "input": "def parallel_diffs(rc, num, N):\n nengines = len(rc.targets)\n num_per_engine = num/nengines\n print \"Running with\", num_per_engine, \"per engine.\"\n ar = rc.apply_async(ensemble_diffs, num_per_engine, N)\n diffs = np.array(ar.get()).flatten()\n normalized_diffs = normalize_diffs(diffs)\n return normalized_diffs" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 12, + "input": "client = Client()\nview = client[:]\nview.run('rmtkernel.py')\nview.block = False" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 13, + "input": "parallel_nmats = 40*serial_nmats\nparallel_matsize = 50" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Running with 10000 per engine.\n1 loops, best of 1: 14 s per loop" + }, + { + "output_type": "stream" + } + ], + "collapsed": false, + "prompt_number": 14, + "input": "%timeit -r1 -n1 parallel_diffs(view, parallel_nmats, parallel_matsize)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Running with 10000 per engine." + } + ], + "collapsed": false, + "prompt_number": 15, + "input": "pdiffs = parallel_diffs(view, parallel_nmats, parallel_matsize)" + }, + { + "source": "Again, the agreement with the Wigner distribution is excellent, but now we have better\nstatistics.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 16, + "text": "<matplotlib.text.Text at 0x376c950>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 16, + "input": "hist_data = hist(pdiffs, bins=30, normed=True)\nplot(s, rhos)\nxlabel('Normalized level spacing s')\nylabel('Probability $P(s)$')" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/newparallel/task1.ipynb b/docs/examples/newparallel/task1.ipynb index d768ea1..fb4c48e 100644 --- a/docs/examples/newparallel/task1.ipynb +++ b/docs/examples/newparallel/task1.ipynb @@ -1,78 +1,87 @@ - - - task_1 - 2 - - - - - # Simple task farming example - - - from IPython.parallel import Client - python - 3 - 1 - - - - A `Client.load_balanced_view` is used to get the object used for working with load balanced tasks. - - - rc = Client() -v = rc.load_balanced_view() - python - 4 - 1 - - - - Set the variable `d` on all engines: - - - rc[:]['d'] = 30 - python - 5 - 1 - - - - Define a function that will be our task: - - - def task(a): - return a, 10*d, a*10*d - python - 6 - 1 - - - - Run the task once: - - - ar = v.apply(task, 5) - python - 7 - 1 - - - - Print the results: - - - print "a, b, c: ", ar.get() - python - 8 - 0 - - - stream - a, b, c: [5, 300, 1500] - - - - - - - +{ + "nbformat": 2, + "name": "task_1", + "worksheets": [ + { + "cells": [ + { + "source": "# Simple task farming example", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "from IPython.parallel import Client" + }, + { + "source": "A `Client.load_balanced_view` is used to get the object used for working with load balanced tasks.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "rc = Client()\nv = rc.load_balanced_view()" + }, + { + "source": "Set the variable `d` on all engines:", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "rc[:]['d'] = 30" + }, + { + "source": "Define a function that will be our task:", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 6, + "input": "def task(a):\n return a, 10*d, a*10*d" + }, + { + "source": "Run the task once:", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 7, + "input": "ar = v.apply(task, 5)" + }, + { + "source": "Print the results:", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "a, b, c: [5, 300, 1500]" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "print \"a, b, c: \", ar.get()" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/newparallel/taskmap.ipynb b/docs/examples/newparallel/taskmap.ipynb index 7270162..9fe882f 100644 --- a/docs/examples/newparallel/taskmap.ipynb +++ b/docs/examples/newparallel/taskmap.ipynb @@ -1,74 +1,69 @@ - - - taskmap - 2 - - - - - # Load balanced map and parallel function decorator - - - from IPython.parallel import Client - python - 4 - 1 - - - - rc = Client() -v = rc.load_balanced_view() - python - 5 - 1 - - - - result = v.map(lambda x: 2*x, range(10)) -print "Simple, default map: ", list(result) - python - 6 - 0 - - - stream - Simple, default map: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] - - - - - ar = v.map_async(lambda x: 2*x, range(10)) -print "Submitted tasks, got ids: ", ar.msg_ids -result = ar.get() -print "Using a mapper: ", result - python - 7 - 0 - - - stream - Submitted tasks, got ids: [&apos;2a25ff3f-f0d0-4428-909a-3fe808ca61f9&apos;, &apos;edd42168-fac2-4b3f-a696-ce61b37aa71d&apos;, &apos;8a548908-7812-44e6-a8b1-68e941bee608&apos;, &apos;26435a77-fe86-49b6-b59f-de864d59c99f&apos;, &apos;6750c7b4-2168-49ec-bcc4-feb1e17c5e53&apos;, &apos;117240d1-5dfc-4783-948f-e9523b2b2f6a&apos;, &apos;6de16d46-f2e2-49bd-8180-e43d1d875529&apos;, &apos;3d372b84-0c68-4315-92c8-a080c68478b7&apos;, &apos;43acedae-e35c-4a17-87f0-9e5e672500f7&apos;, &apos;eb71dd1f-9500-4375-875d-c2c42999848c&apos;] -Using a mapper: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] - - - - - @v.parallel(block=True) -def f(x): return 2*x - -result = f.map(range(10)) -print "Using a parallel function: ", result - python - 8 - 0 - - - stream - Using a parallel function: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] - - - - - - - +{ + "nbformat": 2, + "name": "taskmap", + "worksheets": [ + { + "cells": [ + { + "source": "# Load balanced map and parallel function decorator", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "from IPython.parallel import Client" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "rc = Client()\nv = rc.load_balanced_view()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Simple, default map: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "result = v.map(lambda x: 2*x, range(10))\nprint \"Simple, default map: \", list(result)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Submitted tasks, got ids: ['2a25ff3f-f0d0-4428-909a-3fe808ca61f9', 'edd42168-fac2-4b3f-a696-ce61b37aa71d', '8a548908-7812-44e6-a8b1-68e941bee608', '26435a77-fe86-49b6-b59f-de864d59c99f', '6750c7b4-2168-49ec-bcc4-feb1e17c5e53', '117240d1-5dfc-4783-948f-e9523b2b2f6a', '6de16d46-f2e2-49bd-8180-e43d1d875529', '3d372b84-0c68-4315-92c8-a080c68478b7', '43acedae-e35c-4a17-87f0-9e5e672500f7', 'eb71dd1f-9500-4375-875d-c2c42999848c']\nUsing a mapper: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "ar = v.map_async(lambda x: 2*x, range(10))\nprint \"Submitted tasks, got ids: \", ar.msg_ids\nresult = ar.get()\nprint \"Using a mapper: \", result" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Using a parallel function: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "@v.parallel(block=True)\ndef f(x): return 2*x\n\nresult = f.map(range(10))\nprint \"Using a parallel function: \", result" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/basic_quantum.ipynb b/docs/examples/notebooks/basic_quantum.ipynb index f60692a..847e583 100644 --- a/docs/examples/notebooks/basic_quantum.ipynb +++ b/docs/examples/notebooks/basic_quantum.ipynb @@ -1,606 +1,280 @@ - - - basic_quantum - 2 - - - - - <h1>Basic Symbolic Quantum Mechanics</h1> - - - %load_ext sympyprinting - python - 18 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 19 - 1 - - - - <h2>Bras and Kets</h2> - - - Create symbolic states - - - phi, psi = Ket('phi'), Ket('psi') -alpha, beta = symbols('alpha beta', complex=True) - python - 20 - 1 - - - - Create a superposition - - - state = alpha*psi + beta*phi; state - - python - 21 - 0 - - - pyout - α⋅❘ψ⟩ + β⋅❘φ⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUY4QUFBQVhDQVlBQUFCdFI1UDBBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCSEJKUkVGVQphSUh0MlZtc1hXTVVCL0RmdmIwZHFCWXRqWkNyV3ZkQk9pRFZs -bXBUTFRXMFVpU0drSGpScG9aRVRTVWtUUXlKc2VhSUd6RlVFU1hFCkEwcnd3SldLNFVFMFNqd2dh -Rk5xbmtyYTRQS3c5czdaZDkrOTl6Mm5kMEJ5L3kvbmZHdDlhNTMxLzc3MXJXL3RmUmpFL3hMM1k4 -eS8KSFVRL28xODVOdmZDZGpTR05URC9KZ3pOeVM3SGhGN0UwRmVZaG5ZUjQxcGNpeWFOY2J3VUIr -UmtsZnhhR2d5eU54aUpQM0t5cDdBYwpWd3hnSEhrc3hWKzRXTVRYakMvd1NZTisydkI1VGxiSnJ6 -ZVozd2pHNHRzQytTYnNnVkc5OUQ5dEorMk93NTlZbzVZWW5mZ05oelhnCnAxbHNZQjZWL0FacThZ -OUNSNGx1TlpiMDB2OGRPMkV6Q3ZQeFNFNCtYbVR4MnczNG1vcjNTM1NsL0FacThXY29KL01XWmc1 -Z0xDbk8Kd21NRjhodnhpaWdaOVdLdTh1UXE1VmRVOHljbWdiVmlITDdHbGZnbDBUZmg3d0s3WVRn -UFIySURic25vaHFvZDY5dkZ4WFJxUnI4TwppL0ZzQ1lIK3dIalJ6WXpHUTlndVl2OEtSeXZtbUVV -clZ1QjduSVNEc0F0dXdLZTV1WFh4TzFqVXFVWEp1Qm4zSmNicHp0MmRmRDZKCmZUSzJsMkNTMk9Y -dDJDMlI3NlhyaGJNYXYrZCt0MFZ4RnRhTGpnYm5qOHJFTkVwc3dtcVI3WjFZa09qeUhGTmNoSmV4 -djFpWGV4UDUKNGRpaWU5ZlRJNzgyc2V0WDUrUW5paXlZaWYweStteGdRM0ZYOG4wRmZsRGJyTk5F -MlVreFZ2Zk1nS3R3U0ZXQUZlaG9jUDRpd1NlUAo0ZmhPY0tONDhjL0JSMnJKTlEzTE12cm44R0NC -NzBwK2E4WGlqOHpKVzhYaUx4Y0x2MjlCWU1QRnhzQkdjVnBTWEk4aG1mRVFrV1Y1CmpGSExvRWJS -MGVEOGxibVlzdGlJVjVQditjV2ZnQjFZbUpHdEVJbWI0Z0hGOTFzM2Ztbk5iOGF4ZUVHMFdWbHNU -ajZQRUgzc2x3V08KZDRqak5obFRSTStjb2tuWE5tdzZIaTd3a2M0dHd3UThvL2hpYmhQM1RCNWJ4 -TW5ObzBWeGE5aUNBL0ZTU1F3TDhWTk8zNmJyTThGMAp2Rk5pMzRWZnV2aVRSVzMrb01TSWFLZVdW -dWhoamlDMVBobnZMUzdzTENiaWlRTGJjMFhXbE9FejVmMThCK2IxRUZ1SzBVbGNSVGhaClhKcnJT -dlNUOGJIYVpkd2luaE5TdElua1cxbGcyNDFmbWtXYkVvZjVoU0pxVzZmWTdlMGxRYVhveERhMXJK -cUgxekw2WmJseGloYXgKdWUvMTRMOHZNQmZINjM2Q1drUUpXWVBYUzJ6WHE1VmQ0a0hzM2VSN2sr -aWEydkZpZ2U5dS9OSUFmaFpIK3ZpYzBRTGNLbzdSdUdUKwpLU1dCd2ZPaWxwNlFqQ2VKMHpRQ3E4 -U2RzclhBN25ROFhlRzNMekVEMTRpMk9LMzdhY2Z5bzY0bE00OTE0a245ekdROFh5VFRXSEdhCk4r -Q3lBcnRDZnRrKy8yemNKaTZaelVsQWIrSUMwWUxlSTE0OFBWNFIzRlpSODY3RExORlJyRXAwN2FK -MEZHRng4dnNEZ1JHaXVWaUsKUjBYaTdZazNjTDdxL240YmpoRk54R3hSWnNkZ1Y5eXMrTjZoSC9p -VjljQXBwdUxDT3Z6TVVwMXQ5YUNqem5tN0s2N0haYWppT0VTdAp2YTVDS2IvK2ZLU2ZyNzVGV2FL -NDlXd0UzOVE1YjY0NHpYMkJRNVcvejhtaWxGOXZGcjlUY2J1V1lnbys3TUZIcTZpenYvWWlEamlq -CnpubXpOZmJDcklyakhGR3FxdEJYL0xxaHA5ZkE3WFg0R09nL1V4cDkrMW5GOGM0NjdQOHJmeFlO -WWhDREdBVDhBKzB3M1dzNWRhbkkKQUFBQUFFbEZUa1N1UW1DQwo= - - $$\alpha {\left|\psi\right\rangle } + \beta {\left|\phi\right\rangle }$$ - 21 - - - - - Dagger the superposition and multiply the original - - - ip = Dagger(state)*state; ip - - python - 22 - 0 - - - pyout - ⎛⎽ ⎽ ⎞ -⎝α⋅⟨ψ❘ + β⋅⟨φ❘⎠⋅(α⋅❘ψ⟩ + β⋅❘φ⟩) - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5vQUFBQWFDQVlBQUFEUjlVSnZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDSHBKUkVGVQplSnp0bkhlTVZFVWN4ejkzUjBmZ3dEdWFvaWg0b0lKS1FNQ1du -RjFBTUVyVTJFQVRRVVFsRmpSZzdCcERiSW1DR3ZWTUVLT29JV0pzCkpOWTFGaXlnU0FtaWxOaUFp -RmhqUWVYT1AzN3p2TGV6TS9ObTN0dTdOYnFmNUxLN00vTm1mci85dmpmbE4zTmJRWms0aHdHekxY -bmYKQStlMG9pMWwva2RNQVhxVzJvai9LYk9CTHFVMm9reHhxSFRrblEzc0FuelRTcmFVeWVjTllE -SFF2dFNHbEdrNURnS2VCeXBLYlVpTQpXMHR0UUF0ajh1OVJZRjZKYmZpdjhhL3k4VG1ndm9qMXpj -RC9vWjFoU2M4Vng1UlU3QWJNQXVZQURjQ1JoaksrUGw1dVNjOFowdm9BCjI0RTlQZW85Rk9qblVj -NkZ5UVlYSnEwT0FvN09hRWRXWEhybEF1b3hhZVh5cnhZNHlwVFJ4cEIyTUREUVlGRGFRRUUxVUFj -MFdmTGoKVkFIOVBjcTFKbU9Bb2NDVHdDYms1bCtQM05nZnF6SWhQZzRNYUhzTGNDZHdOWENCbzl3 -SVplZTFBWFZueGFiVmFtQSs4R29yMmhMSApSeTlmVEZxNS9Oc0duQTU4QzZ4TXF2dzY0T1pBZzF4 -Y0NSem9XWFlFc2pZMGtjdGdRN2VVMXgwR1hHVkkzNnFsKy9wWUE5eGd5Y3RaCjBrY0JuenZxckFa -ZXhOeHBobUt6d1lSTHExbEl6NStGTkpyNTZKWHpyTXVsbGN1L1hzQXFaRlIxOGlSd2txY3hTYlFC -SGdrb1B4UG8KYThuTHBiU2hPK0pUS0YyQld3enAvWkdSNjJUMU9jVEhVekJQTzhIdTM2NnFQVnNF -OGk1VmJ6R3cyV0RDcFZVUDRONE1kcVRSekZldgpuR2Q5THEyUy9KdWk1NXVpamtPQVpaN0dKREVS -ZURxZ2ZCOWdjNUhhanFoU2Y2R2NCVHhtU0o4TnZBTThxejZIK0RnU1dCcG94M2JnCkIyQi9RMTR0 -TUI1NEpyRE9ZdURTNmp2Z1Q2UjNUME1helh6MThzV2xWWkovRGNEaFNOUWVLSnh1dEFVRzRMN1pP -d0RIQWtjZ1QvYnIKbUIwRXVRa21hV2tWd0JucStnWmd1VXF2VXNaSHpFSG11WTg3YkdsSitnRnJn -YzdJT3FrUzJWUHNCcHdJN0ZUbFREN0c2UTVNVnZVYwpvNjUvSDVubis2enBRTllZK3dQdmF1bGpr -SnVvMFhGdGlGNDZXYlI2QUpnRzNPalpWbFo4OVhJUm9wWEx2eWJnUytUaGZ3QUtSN1E2CllJZWgw -b2c5Z0JYQUlOWEE5Y0NGNUFkSnJsQ3ZvNEVQS0x3SlppTTN6a2ZBUGJIMDRUU1BwSlhLeUFzdGRy -UTB0VWdnQW1CMzlWY0wKREVZVzJwMVVuczNIaUVuQUU4Q2J5QmUrQkpnTzdJZU1RcjZSMkEyWVI3 -UXh1RWZJRUwxTVpORnFMYkEzcmJNUDZLdVhpMUN0a3Z4YgpoMzNxeVVUZ0swdGVUM1d4dmc4eERl -a3RlaUVPWHFQU0g2UndYZEdONWtETFhFVEFpSm5JZWlUaU5HU1JINUd6R1oxQURiQW84SnBUCmtT -bTB6bDdJUXhYNVlQSXhZaXJTeTBjaW4wcHpXTGdDaVV5ZEdTdWZjOWh6Sy9uZlJjUnk1R0V6RWFx -WGJrTVdyU0tPQjg2ejJPY2kKVkROZnZjRDhQWWRxRmVIeWJ5cXhUbEFmMGJZaFRwcldibmNqVTQ4 -NVd2cEtWWDQwRXVKZmdBemozd00vYTJWcmtDbElXeVFNR3Y4eQpkMFhXSXhITGtkNjRGT3lMaEhG -MU5pRVJyRHJzUG9MMCtQT0FjNEZmVmRxaHdOdnFmUlB3R1RLUDk2RWRvbzFPVDJXRGlSQzlUQlJE -CnE1ZVFhV3RMNDZPWGpTeGF1ZnhiUjJ6L1UxK2pyVUdHd243a2g1U3JnQk9BaGNCUDJqWHJZOFpW -QWw4Z3ZjRjZDdG1nWHNjaFEvdkMKbUIxL2FHV0h4L0o5R0lyMDN2b1EzeFk0QURucG9yTUp1Q1Nn -alU1QWIrUjdxc1BzSThpNlpnWHdZU3l0SS9DN2VsK0JUQVVYZTdaYgpxOW8wMldPYXRvYnFaYUlZ -V2pXcHNoMW85ajFPUzJzVzE4dEdGcTFjL24yTGRIUkE0WU8ySGVrQkJwTC9vSTFFOW10V0dScUxo -QjRQCkhLTGV2d2FjRHp4a0tBL05EK0pHOVhrRXN0YUpxRVNtTjZiMmJLeEJwa1c2YU4yUlhuMmE0 -WnBmRFdtdVNOazRWZi9yd0Z2WWZUeUUKL0I1ZWo5QWRqRXc1WDNhMEZhY0djNCs5SGRnSFdiREhD -ZFhMUlJhdCtpRWpzZWtoZytKbzVxdVhqU3hhdWZ6YkIzbllBUE1tNXhyawpRWXZ2ZlAraVhqY1VG -djhubWpNZitGRzliMExtd2tkaWRyS2EvSjcwY0dTOUV6RVovOTQrb2hINDJwRCtPL0FiOXJXblRq -MHlyZEtwClFIclNwNUFGTTloOVhJbEVyaUxpWmRvQTl5R1JzWS93WXpmTXZmSldKTkNoRTZxWGl5 -eGFUUWZ1ZDlSZERNM3E4ZGZMUkJhdFhQNE4KUnZRQnpHdXgxUlFlUFZtTjlHZ2p0ZlE2NERZazRs -T3Qwb2FyMXdYWVR3NHNRWHFTNkpvdXlCU25EWEl5WlJ1eWQxUUtoaUMrNnZQNgpXNUJOMFl0amFU -WWY1eU1oOGQ3cTh5amdQVVRRQnVTaE1aMWdNTkVMMlhRMW5RNVppZ2lxazBZdkcybTE2b3lzSVRj -YThvcEppRjRtCjVwTk9xeVQvQmhFTGhwaEd0R1hJdkRWT0kzQ2NNcW9yTWlUMlJBUzdDT2tCcmxM -bGxxaHJma09HNEFFVTlxeUxrTkR6NDhERHlEQjcKQXhMcGVvVFNCVUZBMWdlWEl5SGVDbVJLTkFy -eGRUVDUwd1Niais4aGkrc0daSjlyQ0hKVERrRDhmU1hBbnJIWXY0OFhNSi91VDZPWApqYlJhVGNZ -ZWFDa21JWHFaU0t0VmtuK0RnWnRjRGJkSEZweTJucTRQc21iUXFhWnd2Nkl2Y0llanJVcEUrS2sw -OTVnMmNnbjVOa0pDCnhiM0pQN0hkRHRrcmNaSGs0ekRnZHBMM2szS1c5RVhBQkV0ZUZUSjY5WGZV -RzZLWHpRWUkwNnFDc0VDV2pxOW1hZlRLT2ZKOHRVcnkKcncvd1Nid2UwOVJ4QnhJSnVnZnpodW9X -WW91OEdEOVF1RkRkakF5eFhTMEdOU0pmekVKYWJxcllpUHZrUkp4Njh1ZnpmNUE4OVVueQpzUTc1 -dDZNZG5qYkVHWVk4eUxialF6dVJUV2pYT2loRUx4Y2hXbzBsZWFSTWFzdEhzM3JDOVhMaHExV1Nm -M09SWUU2aTVsVklhTFVZCnY1RXhITGpNa1crTFRPcmtNdGhnNnRGTjNFbTZVL0F1SCs5QXdyOUo1 -TFRQN1pESXBzOHArR2N3YjZpR290dWc0NnZWQXNUK0xQaG8KbGthdm5DUFBWeXVYZnhPUXFIdmVJ -R2I3S1lPZHlPNzRCTEwvYnNWeTdEZExEZWJlMXNTbEdXendiYU1kOEZlSytsMCt4dmRrWE9qKwp6 -VUpPYmZpc1YwOUhUb2owU0NvWWFFTWNYNjMyQXo2bGNLOHRGSisyMHVqbDh0RkhLNWQvWFpEamFC -UHduMFVCY3ZxNGMyS3BaR3h6Cit2Wmt2em1LU2Uva0lsWnNQcWF0TS9TNkRyVHNqL240YXRXSjdL -T1pMMW4wU2x1Znk3K094RTdzbHlsVHBreVpNbVhLbENtVGdyOEIKMktjNjJRN3k0RTRBQUFBQVNV -Vk9SSzVDWUlJPQo= - - $$\left(\overline{\alpha} {\left\langle \psi\right|} + \overline{\beta} {\left\langle \phi\right|}\right) \left(\alpha {\left|\psi\right\rangle } + \beta {\left|\phi\right\rangle }\right)$$ - 22 - - - - - Distribute - - - qapply(expand(ip)) - - python - 23 - 0 - - - pyout - ⎽ ⎽ ⎽ ⎽ -α⋅α⋅⟨ψ❘ψ⟩ + α⋅β⋅⟨φ❘ψ⟩ + β⋅α⋅⟨ψ❘φ⟩ + β⋅β⋅⟨φ❘φ⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVU4QUFBQWFDQVlBQUFBMytkNENBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCOVZKUkVGVQplSnp0bkh1SUZWVWN4eiticm1CcFdxMWFtcGJQM0hWVnhDaWwx -S3NVb2VoS3BSbEZVWmxaVmhROW9LeklIb2daU0JtOUpEVjZVV1FVClBmNm9QMng3UDZDM1VsU1E5 -dEswN0tFRitjaisrTTJ3czNOblpzL3ZuSm01c3pKZldOZzc4enUvTS9kenZuZG16bS9PdlhXVTZn -eXEKQjU1UDJIODE4RzFPeDFLcWxGYWxmMHVWS2xXcVZLbFNwVXFWc2xhWFdoK0FveTRDZGdJN2Fu -MGdCN0JLeHRtclpKeU5NdVY2VUJaSgpEVFVaR0djWU94YzRLbUw3Q0tCQjBXZFVubGxlbnM2a091 -QnM0QzdnZnVCbW9HdE1yQ25uNFFpTHNBNEV4aHBlV3VYdDQ2aHhxalZmCjBERTJqYzNUdTJxdXJp -ZlBldURsaEw5aENXMHZCRFlZOW5NeXNNWCtNQlB6ZkFoY25rTHV2SFFFY0Nmd0czQVRjdXpOd01x -WWVGUE8KcHdDYlVqaStvakUyNGRXWmZCdzFUclgyc01hVG10Zzh2YXZtNm5yMTNRUE10R2pYQkh6 -anRUZlJmeFo5bU9iNUJmbndISTdiN1gwdgo0RStIOWlicUNpd0ZGaVBtODdVQnVBUllGSXJYY0c0 -Q0hrcmhHTE5pYk1QWGxGZG44bkhVT05YU3d4cFBhbUx6OXE2YWE2Mm03UXVCClZZYXhqY0NYS2ZT -WmxHY1ZzTUF4L3pySDlpYTZIcmlWOXNZRG1JQVlMU3dONS8zZW40dXlaR3pEVjh0THExcjRPRzZj -YXVWaERXTk4KYk43ZVZYT3R4Y216QWFsNS9Hb1lYd0hXcDlCdlVwNVBrYW1EeTUxNHZVTmJFeDBD -OUFTMmhyYVBCVTVGcGtCQmFUZ1BJNTJUU1lYcwpHR3Y1YW5scFZRc2ZKNDFUTFR5c1lheUp6ZHU3 -Vmx5alFOY0QwNENweUp0NEQzZ1UyQmVUWEJ1L0VIZzRZdnQ0NU9uWUI4QmpnZTFECmFGdEFPeHVw -VFZ3Wms5c2x6M1BBSE9EcGhOeHBTOE51THJEVysvOENwSDdXQlppRVREbmZEOFhIY1E1cUpsS1FQ -eDdZQlF3Q1Z0QngKWGE0ek1OYnlLcHFQZ3pJZHA3dzlyR0dzaWMzU3V6WTVJcm1HN3p3YmdJK0JF -NEZsd0EzQW1jRHlRTXkxRHZIMXlOT3JqYUYrS3dqTQpwY0FqUU4vQXZtQ2RhQVp3QlZLYmlaSkxu -aGVCbHBpOFdVakxiaWh0VjhjSnlCUmpKSEFzTUNhVU80NnpyeUhJK3gyS1BQSDhFVGdQCmVBb3g4 -ZWlFNDY3UU9SaHJlQlhOeDc2MDQ1UzNoeldNVFdPejlLNXRqZzY1SGdwOFJIV2RZUTd5Umh1OW1P -V1c4WGdIT0NPaTc1WEkKYmZwcFh0c0IzdlltNFB4QVhBT3lic3VmWGl4REJzSTFqNityZ0lrUngy -ZWlWa1dzRGJzbE1ibGVRcVkzd1F0aEhHZUFmc0RtMFA0SApBLy9mRHJ3YmVGMFV4cTNLK0NVeDI4 -TzhpdWhqMEkrVHI3dzhERHBQbXNabTZWMmJITDRTdWQ0SC9FMzFPclFSaUJIbUkwL0R4bGpHCkF6 -eUptQ3VvT21TcUJQQUVNbDN5dFFnNE9oVC9UT0QvSUJ5WFBMNTZZbDZrRHF0VkVhdGwxd2ljRlpO -cnNkZW1UMkJiRkdkZmJ3SnIKQXErYmFEOTlQQmQ1d3RuTmUxMFV4cTJLV0Eydm92bllsM2FjZk9Y -bFlRMWpUV3hXM3JYTjRhdUthN0RtT1JONGhlcjV2bCtuR1l0YwpLUit3ak8rRzFJL0NUN1QyQTY4 -RDNZSFRnUnNEK3dZZ3Q5UytEa1BXWGtVcGpUdzdrYnVNT1BWQVBoaFJ0ZUxSeUpyQXNQWWdDNEwv -CkRXelRzcXNRL3lSMENMRGQrNE40emlCVHBFbkFkWUZ0VXhGdXdmZXhCZGdkMFQ1cnhtbnhyV0RP -cTJnK0JyZHh5c3ZERmN3Wm04Wm0KNlYzWEhGVmNmWUREdmNScnFKWmZxMm1oN1N5dWpjYzdtQzFl -dTAwUjdTWUNCd092ZXEvcnFDN1dUMGJ1RkpMa2ttY2F5VmZmWGNDbApSQnZ2V1c5ZldIdHBiem9i -ZHMyMG4xcjQ2Z3BNcC8zZ0ozR2VpQmp6czhDMlViU2RHRURNOUZwRVgrRThXVEJPZ3krWTh5cXFq -MTNHCktROFBnODZUcHJGWmV6Y1RydjI5cE9mRWRMcVA5alVmYmJ5dlk1QUNiWlRPOEhKMjkxNDMw -LzVXZnh3d0pkUW02cmJjSm8rdnRZangKYmRScUdHZkRiaXRTM0E1ckh2SmhHQnphSHNkNUZISlM2 -TzI5cnFPOWNSWWc5YURnZzQ2aU1HNVZ4SnJ5S3FxUGJjYkpWeDRlQnAwbgpOYkZaZWpkVnJuNlI5 -bWVrYUg1Q3FNRkFaTlg5NWtDSDR5M2lmVzFHcGl3OUlnNXVQWExsbWU2OW5rTGJGV2syY2dmd1Jr -Uzd0UElNCkEzNEMvakhvdzBWYWRxT0F4NEdMUS9HTndEM0lnSDhYMmhmSGVTUHdObEtVQjVtU2Z1 -NzkzNExVZmxxQWJSMjhoeUl6MXZBcXFvOXQKeHlrdkQyc1lhLzJicFhkVDVScThkWitGRkd0WEly -Zk0vWkd2SkYyRDFDeFdBTGNnU3pwczRuMnRSYjZ6R3A2Mi9JR3NmYnNEV1cvbApMeGNZaVJUZmI4 -Tk10bmt1ODQ0NUQybllIUXZjaTlScVhrQnFaUU9RSy9RTTRKT1lQdUk0VDBlVzBReEZUTG9ES1lS -dlE2N1NKaCs4CklqT3VvT05WVkIvYmpGTmVIcTVnemxnVDZ5dEw3MmJLdFE5d1pNVDJIa1FYb3JY -eElBWHJwRzgzRFVPdVZnTVRZaUI2U21tVHB4Y2QKTDhydFNLMFdiVXpZM1IzYU53anphVmtTNTI3 -SVNTT3EvNkNLd3JqVk1NNldWMUY5YkRwT2VYcFl3OWgyUExMMnJqUFhxSVBiVHZWWApxRUJxRTMr -bEVBL3lSQy9waHhnR0l3dFRmMGlJTVpGcG52bkFhc2UrNHI2SmtxU08yTlZSdld6amU4eW5aVW1j -ZHdPL3gvU3ZVVjZNClRmaTY4Q3FxajAzSEtTOFBheGk3akVmVzNuWG1XcXNmQmxtSGZJTWpUaFhz -N3VSczhuUkI2bGxKUzBkTU5NK3hmWlNhZ2E4YzJpZHgKUGc3NDJpRzNyd3I1TURiaDY4cExxeng4 -YkRKT2VYcFl3OWhsUExMMnJqUFhXcDA4OXlMRjIrYVkvZjFvV3lPV3BOWEFGd243VGZLMApJTFVZ -VjVuK1FJUkdVNEMzSE5vbmNUNEplTWNnUjFFWW0vQjE1YVZWSGo0MkdhYzhQYXhoN0RJZVdYczNU -NjZwcTU3NDJrZlVyMjNiCnlDUlBiK0svMFZCcjlVc2hSeHpudnFSejhTd1M0elI0YVpXMWowM0dL -VThQYXhpN2prZVczaTBhMTFLbFNwVXFWYXBVcVZLbFNwVXEKVmFwVWV2b2Z6NFNPd3VmaXE1Z0FB -QUFBU1VWT1JLNUNZSUk9Cg== - - $$\alpha \overline{\alpha} \left\langle \psi \right. {\left|\psi\right\rangle } + \alpha \overline{\beta} \left\langle \phi \right. {\left|\psi\right\rangle } + \beta \overline{\alpha} \left\langle \psi \right. {\left|\phi\right\rangle } + \beta \overline{\beta} \left\langle \phi \right. {\left|\phi\right\rangle }$$ - 23 - - - - - <h2>Operators</h2> - - - Create symbolic operators - - - A = Operator('A') -B = Operator('B') -C = Operator('C') - python - 24 - 1 - - - - Test commutativity - - - A*B == B*A - - python - 25 - 0 - - - pyout - False - 25 - - - - - Distribute A+B squared - - - expand((A+B)**2) - python - 26 - 0 - - - pyout - 2 2 -A⋅B + A + B⋅A + B - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU1BQUFBQVpDQVlBQUFCbjdTSGdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCT05KUkVGVQplSnp0Mmx1b0ZWVWN4L0ZQNmpuWnNkTk5LelZGS0xzWDFFT1Jw -R1lJS1JrRlJnUkpENzBvRkJSRm1sUXYwa3NQUVVWWVBZWFJUY1RxCklTcUtvdWhDRDBZU2RDVUt0 -SXRkMEpKU3V1bnBZZTNOMlU0emU2ODFNL3NjT2N3WERwczlhODNNLy9mL25UWHJ2OVpzR2hvYUdo -STUKRW1kZ3luZ0gwdENUcmw1Tkh0dFlKZ1Fyc0JMSFlDT21ZdHU0UnRSUVJPTlZ6UXpncGRZbm5J -NFJYRGh1RVRVVTBYalZCMDdBbjFqUQpjZXdQckJtZmNCcTZFT1ZWYWcyN0VvUFkzS1hQUnN3cmFQ -c0hPMXZuZjVCNDcxUUc4WGRDL3p4dDJXdnN3Ykg0cS9WOVBvN1NmeTFGCjlDUFhNUjdYVFpGWEtm -cjY3dFdKcllzKzFxUGZJTTRYcHB2bk1TUU10Q21ZZzRkYmJldktCaExCTEt4TzZGK2s3VjZqVTJn -ZVc3RSsKTGJSYXFUdlhzUjdYU1RldlV2VDEzYXNuV2pkN01hTHZpbGJmNjNQYUJ2QXo5Z2tDWTBo -WnJFOFNERXc1cDBqYm1YaTg0SnkxdUNYaApIdDJvc2hsUlo2NVRQQzZpYnE5aTlaWHlhbEprb0pj -SzA4c0laa2IwWDl6NmZEdW43VURyT2tkRTNuOHBib3ZvMStZbXZONjZUd3pkCnRIMHBKUGk4elBG -VitFeVlvZ2V3TUNHK0xLbjZzdFNWNjFTUDgraUhWN0g2ZGlqaFZjdy80QlRjaDd1eFcvd0ErQncv -NWJRdHhVbDQKVmxpazlHSkEvRXdCTndpci94aGl0TDNnMEtmSGRUaEhTUHBWZ3VGSEo4U1hKVlZm -bGpweVhjYmpQUHJoVllxK3ZuaDF1OUdWOHlmWQozNlAva1BBa2VUU25iYUZRWTI0UlhsREVzRng4 -N1hZODNvenNTNXkySVdHeEJkUHhQajdNL00xT3VHZVdGSDE1c2RXUjYxU1BpNmpiCnExUjl5Vjcx -MmdXYWphdUZrUVkvNGx4aGRiMjM0SndGd3BQZ1pLUEpHRzRGdkEvWDRxMGU5eTNMcWRnVjJUZFcy -MzRjRko1c3U0VlMKNFhDaGpseVg4YmdPWXJ4SzFaZnNWYThCOElBd0xSNXNmVzlQUXpNVko2ZGRz -NjBWUm1pYnJYZ1FHL0FWdnVzVlhBbW1DNG1KSVVYYgpUbUczWWtmVkFHdW1qbHlYOGJnT1lyd3Fv -eS9KcTI1cmdLWENYbXZudm1sbmNvcFloQy93RFg3citOc3UxSHlMOEhSTWNDWFlpN2tSCi9WSzF6 -Y0x2MVVMckMxVnpYZGJqT29qeHFveStKSytLWm9CQllkVzhIUTkxSEwrNDR5WjVET0FTUEZQUS9v -TWdZTEV3bFhVR3VreFkKdEdTWkk3elZtNS9UOWg0MmRYemZLZnp3cVJ1cDJnWXhBNy8ydUc0djZ0 -RFhTWlZjVTk1anhzYXJNdnFTdlNvYUFIY0tLK3N0bWVQZgpDblZaMGRQaEl1RnQyN3NGN1dmak9H -RlVadzNaSnRSdFdSWUlpWG95cHkxYlErNFM2c0J1YjRGVHRaMG0xSmtqQmRlTHBRNTluVlRKCk5l -VTlabXk4S3FNdjJhdThBVEFQbHd1ai9HQ21iV2JtTTB1N1ppc0src2JXNTFNNWJYc2NXdWUxbVlG -cHdnbytoczNDMUppM3cxQkcKMnhMRlQ2RVU2dExYcGtxdXEzak0ySGhWUnQ4U0ZiMGF4anZDVzdV -ODVndWphMU5CK3l1S0YxeXJXK2MrSnlRcGx0UnR3aUc4NXYrdgp4Y3RvbTRGWGhYM2tmbEYyRzdS -c3JxdDYzSTI2dkNKZFh5bXYyalBBTU83Qk5UaEwyQlBlNE5CZGdEWENDQ004UGRiaFpYeU5tNFZW -Ci9SWENOdHA2L05zUjJKV0MyRnZ4U0VxQUpkZ3Y3R3FzRm1yY0t0cFdDZHFxbGo5MU1WWDVYRmZK -dzZlMUt3bGt2YXFpN3c0bHZHcVAKbG1GYzFuRjhCRzhZL1NVZFlick1qdFNQOEVzcjJLS1Jkd0Fm -QzR1V01pekhCYmcvOGJ4VDhMMXEyaVlMTlhFL1NkRTNvSHl1cStRaAoxcnVxWGxYUk4xZi92Um9Y -bHVHdThRNmlqMHdrZlJOSnkySEROUDNma3g1UEpwSytpYVNsb2FHaG9hR2hvV0dpOGgrc1pjTHdo -djBRCnV3QUFBQUJKUlU1RXJrSmdnZz09Cg== - - $$A B + \left(A\right)^{2} + B A + \left(B\right)^{2}$$ - 26 - - - - - Create a commutator - - - comm = Commutator(A,B); comm - - python - 27 - 0 - - - pyout - [A,B] - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUM0QUFBQVdDQVlBQUFDL2tLNzNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBa2hKUkVGVQpTSW50MTgyTFRXRWNCL0RQdk9XbEpwVEdZTEt3VUZNenpZWm1N -ek5KaVdsMi9nSEZRbFptNHlVYlk0V3RRc3FVRlJZaVNvUTRhSXBTCjhyS1FST1JkU1pFTU0xZzh6 -K1hPblhQbW5udG5aa0crZFh2Ty9YM1A3L3Y3M3Q5em51YzhsNzhVTlNYZkwrQXJMdUZBbWR3OXFN -TzIKS3VvT1lDMDY4UU5EK0JLNVJpekIyWGpmK3hqdngwbzBvSzlVTU1sWnVCM2ZjYXdLMHdVMENH -WlBwWEJ0VWY4ZWFrdTRSRW93RDJxdwpEL1ZvcmlLL2dPV1loWXNwM0FOY0ZoclVscFpjamZIMXNk -aG5relBlRThlckdYd3JSdkU4ajFoU2hwOFhDOVhqTVQ3a0VjM0FPYnpLCjROYmhwekN6cFVqU0Vs -S0RSVGlFVmZGNktJclBLT2N3QmJYNGlPTWw4ZG5ZSExudHhtOGV2ejNXVjFCc2hkRHhLL0g3Mnpn -MjQxa0YKT3RDQk9aaUx2VEUyRTZ1RlhXME5ibFVpbUdURWEzRk4yS1lLT0NoMHZMT1NBaEZiWXU2 -eUZHNGp2bUhEUkI3ekxzNU53dDVldkZDSwpPMTRwZXZBT2oxSzRRYndXR3RPWUpaRG5VV25Demxp -a3F5amVFc2RxakhmaitnVDhKMkYybCtKdUhzRWtKWFlVdlNueFBtRzZkK1VSCkxrSnJ6T3ZQNEJk -Ry9xa0pGbWU1UjZWTGVJT2RUK0ZleERHdDQ0c20wQ3pzM3pjeStJRTRIaEYrUUM0a1JkZnRlSU1G -R2ZjdWpzS24KUytJZHd2bGpNQ1B2cFBEeXFpdUpOMkUvUnJBanA4Y3h3Zm5DR1dFMEdudm96L05j -d0FtOGpQeXcwTDNDd2FjRlQzRGYyS2srZzVzeApaeVJlSi9Gelczak5IeloySFZWa2ZLcXdld3Ex -aXBGUTNWa2xMNlpUZTlyRWUzRm5tclF4M3ZpSThHY2lhNnZLcTlrdC9adzlHV3dWCnZBMVBzZTUv -L052NEJmcHZkNXROTFJsdUFBQUFBRWxGVGtTdVFtQ0MK - - $$\left[A,B\right]$$ - 27 - - - - - Carry out the commutator - - - comm.doit() - python - 28 - 0 - - - pyout - A⋅B - B⋅A - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUU0QUFBQVNDQVlBQUFEMTV1aVJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBaTVKUkVGVQpXSVh0MXp0b1ZFRVlCZURQR0VHTGxRUU1haFFpcEJVRjBTcVl3 -bWRockN4Rk8rMEYwVUt4VVZTMEVMRU5hV09oUWhvckZmR0JsWStnCklwcE9nbURBS2tyVXFMR1lR -ZGRrN3U1OUpBRmhEeXgzZHM0L2M4N1p1WFBuTGkyVXdwS0M5VmN3aVRNTmFnYXhEWnZ3RlUvd1BY -S3IKMEluck9JZXBndnFOc0JDNmVmSTJ4VmI4eEZDTzJnMll3YVVFdHk5eUkxWE1MSUp1a2J5WmFN -UGRLSHc3Ui8yaFdMc3JneCtMcG1wVgpUQzJnYnRPOGJUa05IY1VOVEdOTmp2cCtZWnM4VG5BMXJN -Y0VQdWZVejR2NTBpMmFONGt1NGRkdnd6Zys1Qmp6Rmc4enVCUENTaDRwCmEyaUJkY3ZrVFdJSWZi -SDlGRDgwdmxOWFI0Tm5aL1YzeEw0SkhDNXJaaEYwYytWdGJ6SkpINWI2ZSt0L2pOKzdZanVGL25q -dHhjWFkKcm1FQTcrS2NZMDN0RjhkODZKYkpPd2Z0ZUlTMWRYMUR3cXB1YmpEdUdyNWhlWUk3THh6 -dnUvT2FLSUNxdW1YenpzRXhISi9WZHlGTwp0TGZCdUZIcGh6T3NFQjY0NzRzWXlZbXF1b1h5Wm0z -VjdqakpHLzhlN1QzeG1uWFNkR0FqTG1mdzA4SmRzVTdZUnBQQ1ZqcWRVWi9DCmlCQ29xbTQ5eXVh -ZGcySHNTUFFmRUZiZ1pNYTQvWkVmeU9DM1IvNU9YaU01VVZXM2NON1U2YmdUbjNBdndZM0hhOVlL -OUVlaDFKWloKaGxPeFBaZ3h2aXlxNkZiSit3ZGJoTk9qTTRQdmpRYUhNL2puZUpubzc4Rk5mTUhC -WmlaS29LeHUxYnk2OFFxL1l1RnI0YjJvSHJlRQpsOEVaNFUvMEErekJTbUcxWGtSdVNqaWQ3c2ZQ -S0o3aHF2QWNtaTlVMGEyU3Q0VVdXdmgvOEJ0MXY4VEcwN0FDaFFBQUFBQkpSVTVFCnJrSmdnZz09 -Cg== - - $$A B - B A$$ - 28 - - - - - Create a more fancy commutator - - - comm = Commutator(A*B,B+C); comm - python - 29 - 0 - - - pyout - [A⋅B,B + C] - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdBQUFBQVdDQVlBQUFBLzQ1bmtBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBM3RKUkVGVQphSUh0MkUyc1hWTVVCL0RmZXhxdlV2cjBReFhGUUkyazhkbjRh -dCtBMXdnbGtmaUltUkloRWhFRERCclZDTkxHTTJxakhSQTZFTVNFCmdmaElrU3Q5alU3RTkwY0lT -YVdFcEJKYURhckZZTzNiM2w3bjNMUFA2NzMzVGU1L3NzL1phKzMvWHVmc3RkWmVlelBBdEdLbzdm -MU4KL0ltdGVLcGk3RG9jZ3djNzZHekNwVGdQZitIOTFNSmNuSVNYOFNoK3IyRjNyM2lQQmlPNElk -bDFydmlQSTlpTWw3QVdEK0ZqWEliOQpSU1NOek1tVzRHKzhrS0c3RVA5aVE0SHN5aVI3SzNQZWZ2 -Qk9CUmZoYzJ6QkZlTEhTKzNqMklqZk1DNmNmR1laVVNOanNpRzhMajd3CjNRejltNUx1dFNYeVQ1 -TjhYZ1pYTDNubjRZeWFOaENldlY5NUpoakNKUDRRUC82b0YyQVY3c05lZkpHaHZ4RUhNTHRBTmpQ -eC9JTGgKREs1ZThsNHZ2cXNPYmhlTGZFZUYzaHE4azU2UFdJQVpOU2VjZzF1eEF2ZUlORkNGTVh5 -SVBRV3lPM0U4N3NVL05XM3BGVzh1emhicApid2VlcWREOVRqaExKUm9WOHMwaXg4RjJzZm9qNWVw -T3hFRk10UFdQQ3EvWXJkcDcrc1ZiTndLMmllOGZ6OUM5RUl2VDg1UWpZS21JCmdHYmUvem0xQzdH -elpNeHlrUUxPeFByVU4wdms3WjFKL21VTkczck5tNHM1dUJ5ZjRPME0vUTl5aVJzbC9jTjR6NUdi -MUNiaEFSZDMKNEpzUW9YZENnZXhoN01QS1hPTjZ6RnNuQWxhS2IzK3U1aHkwUlVEdUJuV1hPQnQ4 -MzlMWEdnRmxHQk4xNzk0QzJibzAvN1ArZng2cApRcTk0YzlGMHVzOHlkT2ZxVUlubHBLQUZXSTJ2 -c2F5bGYxRnF5eFpnRmk1UWZxQTdLRXF6QmNuQTNSbTJkSU4zbFdKUEg4V3hTZDZPCjUvRmt5M3N6 -NWY2WVllOXFQSmFoaCtJVXRBVlhGL1EzdzNCdENkZUtKTCt4Ukw0MHlTZHpqZXN4YjUwVWRGYWE0 -NGtLdmNXNHY2MnYKVmdwYUprNjhieFRJZHFXMkxBTEdVcnV0UURaRFZDdndkTW40VTN2RTJ3MThL -NnJBNnhUdlE4UWlyUkY3WlRZYUxjOUw4Qk5PTHRFOQpUWGpCS3lYeUhmaW1vSDhSWGhScDRyYVNz -YzFUN2dOZDV1MkV1bVhvYkxFSWt6aTlwWDhVdDRoQ29haEVyeXhENTR0Uzh4eUhxNTl4Cmh6MmV1 -RnhhbnA2dkVkNjRQbzE3VFpScDU0c0xzdTBpaW9qNnZaa2VMaEViYVJGMjRRY1JnUk00cmt1ODNj -UWVYQ1VPZlJ1RUEzeUYKWDBYQlV1UThsV2gweWJodTRaRSt6aldWcTRpcFlFcGw2SFJnV0hoMXY3 -QlAvNjZ1RDZIdVhWQS9jVGRlN2VOOFcvczQxeUcwUjhBQgpFU0w5Q01WT21DL3kva2ZUYkVjM2Ni -UDR0NmZvM1FYaEFBTU1NRUFkL0FmM1FPSkhTbklZTndBQUFBQkpSVTVFcmtKZ2dnPT0K - - $$\left[A B,B + C\right]$$ - 29 - - - - - Expand the commutator - - - comm.expand(commutator=True) - python - 30 - 0 - - - pyout - [A,B]⋅B + [A,C]⋅B + A⋅[B,C] - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU44QUFBQVdDQVlBQUFCQUhrbFFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCT1ZKUkVGVQplSnp0bTB0b1hVVVl4MytKQ1duRitLclUra1lMWXRIYWhZK2dK -S1dJcjlxNkVWeXBGSFJSeFlBRm4zUmpYRm5CallLSzFFZ0VVUmMrClVOQ0lRaDBmUVZ4cGl3dVJn -TzgzaWxJdGF1dGo4YzNoM2h4bnpwazU4ODI5dDNKK0VFNHkzOHgzdnU5LzU4eWNPek9CbHBhV3Zq -QlUKK3Z0VjRIZmdkZUNobXJiM0FvY0FkelM0N3d4d09UQUIvQTBzQVB1c2JSdzRHWGpKMXZ2Qmxt -OEROZ0Nqd0NZbG56bUkwUkRTZEN3WQpBcTRFSm9GemtmekhnT2VBQjRIVndBYzJwa0hYcjQ0NnZY -ejZ6NUF2UHczOU1ZRTNXd3ZzQjU2S0RMS2JVU1Q1NXgyMnM2ei9QY0J3CnlXWXkrTlRFUk5UVjBQ -RlVlODk1cEFPTTIvSmg0SHJnU2VCVFlEb2d2a0hRcjRvUXZVeUZMVWQrYXZwN0RWME1BYThBL3dD -N0lvSXMKYzRIMWNhUEhQbS90WjVmS1RRYWZQbzRHVGdtc1cyQUM2Mm5vdUFYWUN6eUt6QVl1SHJm -M09DTWdQbTM5b0ptR0xrTDFNaFUyN2Z5Uwo5Rzh5Z20wQlhnTitCVlkxYUYrdzNsN2Y4TmpYQUg4 -Qm4vZlI1NFhBMVJIM2p5RlZ4eWxnRnZuZ3R5SjV1WmdIdmdJK0N2Q1o0elBSCjBsQ2ozMm5tcDY2 -L3FiRWZoUVErQWl3Q1B3VUU2ZU5sNEd1UDdTcGt0TGpQWVRNWmZQcllETndXVVIvQ1pyNVVIWThF -UGtOeVhWNVQKOXh6Z2ljRDR0UFdEWmhxV2lkSExWTmkwOHN1aXY5ZGdlUVM0eVA2K2dBUTdWdFBH -eFREd00vQjBxZnhRNENacnU1UC9MZ2hWeFpqaQowMGV1aHk5Vng1MjJ6WFJkUmVBa1pQYXBpeStI -ZnFEejhNWG9aVHpsbXZtcDZEOFMwTGpnUEdRRUt0NjN2N1BYVmNnb0VNTTY0QWhrCkJObGh5NVlC -bHlBclZaY0I3dzJBenh4bzZMZ1orYTZ4TTZEdUYvYW5qa0hWVDZ2ZmFlYVhRLy9LVWVOTlpEbTI0 -R0hrNlo4SWNWemkKRnR2MmRJZnRCdUJQWktVb0pzWVVuejYwWno0TkhWZmIrdTlHeGxWZ1BPVTU5 -SU8wbWErSlhzWlRycFdmbXY2aEN5NWJrVDJLN2kraQozU05RTE91Qjc0R1BIYlpaNEJ0RTVIR0h2 -WmMrdGRIUXNlaDBId2JVSFdOcHg2MWlFUFhUN0hkYSthbnBIL0xhdVJMWWpnUTkyVlYrCm9yMDJY -YWw3cThLK0Z3bjZOR0IzRDN4ZUI5enFhSE00SXVDMUR0c3pkRjVmUXREU3NYalY4aTBjZEhNenN1 -a2NRdXBub3EyaGRyL1QKNm5PNTlIZE8yWFBBUmtmNUptVDZ2VHZVdVdXTmJiZk5Zei9PMmo4aGZN -RWwxYWNQemRmT09YUjBIQVYrUTA1alZIRVljTCtqM0RqSwpjdWtIelY4NzUyaW1sM0dVYWVhbnBu -L2RhK2Nrc3VzLzc3QjlhYSt1RWVqNENwL0ZYc3ZiSHZ1TXZUNkdDQkpDRHArYWFPcTRINWt4CnBw -Q1ZOQmNya0dOTkR3VEdOMmo2TmRYTFI5UDhlcVUvc0hUVVdBdDhDeHpycVh1Q0RmU0ZVdms2NUd6 -YnJLZmRzOGhHYWZsRXdFb2sKNEFQQVhZRXhhdm4wb1RIejVkQnhCT2tBaThpeHFJTGx3S1hJMHZ5 -S3dQZ2duMzRRcjJGVHZRcU1vNnhKZnRuMWQzM25Pd1paMWoyVAp6bXJUeFhSR0hPZzgrUUJYSUNQ -S0RtUVQ4MGZrTE52NXlCUmVqQ1F2SW9KT0lLY0JGcEFsWHBBcGVwa3Qyd0M4NHdtOFRBNmZXdVRT -CkVhU3pYSU9zem0xSFZ2QVdnVitRZktmeG43am9acEQwUzlYTFJVcCt2ZEIvQ1NhMlFRWDNLUHJx -eG1UeTZ5TFhKbnNNMmpvYVpYOTEKYUd5eXgyQ1UvV1hUUCtmcDlINmRmTmRrSC9LNjBrOE9kaDBI -UWNNVXN1a2ZjOElsaG8zQSs1bDg5NUpkcFAzblJpci9CeDM3cldFSwpXZlV2UDlVSGtIMEozNUpz -cU04cDNQOHpsY0x0U0d4L0tQdlZSa05EME5meFlORXZsVmIvbHBhV2xwYVdscGFXbGc3L0FwMkpD -c0NZCkVCSG1BQUFBQUVsRlRrU3VRbUNDCg== - - $$\left[A,B\right] B + \left[A,C\right] B + A \left[B,C\right]$$ - 30 - - - - - Carry out and expand the commutators - - - _.doit().expand() - - python - 31 - 0 - - - pyout - 2 -A⋅B⋅C + A⋅B - B⋅A⋅B - C⋅A⋅B - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU84QUFBQVpDQVlBQUFEWnUzbTlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCYlJKUkVGVQplSnp0bTNsb0hVVWN4ejgyaHpIeXZHdmFSQnN4MFZvUFBHdGJQ -R093aWhWRkJTc2VVQlFNRkd5MUZxMFhLdjVURmRPb3FNVzdGUThDClZnUVZFVk9Mb2tYVVJNRnFL -R28xYXFnVlJJMHRhbHZqSDc5WnN0bnN2SjNaMmJmN3JQT0I1ZTB4TS92N3p2eDJkK1kzODhEajhY -ZzgKdWRBRU5CZHRoS2Q0ZGl2YUFJOHhOY0R0d0RBd0ZiZ0F1QXo0cWtpalBCNVBNbGNEVjRhT0h3 -VGVMOGdXVHhVd3FXZ0RQTVljQ0Z3ZgpPaDRBVHNLMzRmOFcyMjd6eFVBOThGS1pOSThBclpwcjI0 -RWhsWDk5bVRKcWdLT0JPY0FzNEUvZ1ZlQk5kWDB4OHVYSm15VDk5Y0RmCm1tczI5YUlyWjNmZ0w3 -WGZBeHdMZENSYTdVWVc3UmtsTHo5eUpTcy9MRnp2Wk9BWDRMR0VkUFhBTWNBbzhETFFDTlNxN1NC -RTdDaHcKa3liL3VjQTNRQy9RQmJRQmh3RjNJQUtYQU8rbEVlQklrdjZ6Z05QTDVMZXBsK09RQnRm -UkJud050SnVibnhyWDlveVNseCs1a3BVZgpWb1hlcDFYbVZ3elN6bE5wNThkY3F3TzJBRnVWd1FF -bDRISGdONkJUVSs1eVZlNWRCamJVR0tTeG9aeitOdUJXZ3pKczZtVTU4cmFQCnNnL1N1RzBHOTh1 -S05PMnBvOUorNUVyV2ZsaTQzbE9BbGNBL21IMjI3MVZHTk1WY213VDhCR3dER2tMbitvRE55RmRI -eHlHcTNOTU0KYkxnZk9OSWduUWxKK2xjRCt4bVVZMU12SldCVkpFMGpjQit3cnpydUlKOFpBOXYy -MUZGcFAzSWxhejhzWEc4dHNCWnh6cCtCVFFaNQoxZ05mYUs2ZHJReDhNblR1Wm5YdUNvT3loNUcz -VUJJOWxHOEFVNUwwN3crc01Tekx0bDZlQVk1USsvWHErRkxnZkxVOVlYaGZWMnp0CmppTVBQM0ls -U3orc0NyMDNJSDErZ00rUko3OGNqVWl3NWRHWWE2Y2kvZjllSlBnQ2NJSkt2d0d6eUtscG9DcXJo -emRKLzN4Z21VRTUKdHZVQ2NBdXdWTzFmQTN3YzJYb003dXRLR3J2anFMUWZ1WksxSDFaY2IyMUNn -YzNJWW9DZzc3OFpPQXJZR3hrVHhERUhlU00xTWViVQpKV1hBVnVBUzRKMVErZ1VxL1QxSTl5S0p4 -UVpwc3NKRWZ6dnduVUZadHZVQ3NKR3hhUEpUYXN1Yk5IWkh5Y09QWEZsQWRuNVlGWHBmClVJVUdQ -STk4dXFlWHlYTzNTbk1vRWx3SnR1T0JkY0M3U1BRc29GK2xuMkpqbUFGWmZIbE45SGNERnhtVVpW -c3ZJRjhEazBCSEpVbGoKZDVROC9NaVZMUDJ3Y0wyZFRBeVlkS3NibkZFbTMxcmdTODIxWnBWL25U -b3VBVHVRTVVIV3VENjhwdnJ2QkJZWmxHZFRMd0h6a0dCWQprYVN4TzB3ZWZ1UktsbjZZbTE1ZHQ3 -a2VtY3NhWVB5NDZtVDFPMVdUcnc2WWpieHA0aGdHZmtYbVEwdWg4eHMxNmNOTUJoWWliNmd3Ck53 -SXpZdExQQnFZaFk0VW9LNUV4b3c0Yi9VUEFpV1hLQXZ0NkdWSG5wMlBXSlE5VEE2ekFmRHBoQnpK -M0dEY21TMnQzUUY1K3RJMXMKTkx2NEllU25kd1QwRCs5UzVOUGZHem4vUGRJZDBIVXRaZ0o3b0or -OG5vRjBCUVlaYStoK0pQU2V4SFZJeFVSWmcwUjhvelFDcnhIZgpJSU1KOTdMUjN3ZGNubEJlbW5v -QmVYaDFEYXBqSi9KeXNuRmtYVEFscmQwQmVmcVJpK1lSM1AwUTh0VWIrL0MySWtHU2M1ZzRjSjhT -CitZMFNyRERTR1hHVituMHVkTzR0NERiZ2NQUnZ2azdnRDJTZUs4b200c1B3VzVDdys2ZWFNblhZ -Nmg5U3R1MEYvSzRwTTAyOTFBQXQKd0FmSkprOUFOOTFnU3hxN0EvTDJJMWZOcm42WXQ5NEpsSkNC -c1c1ZzNZNzB2Wi9WWEg4RCtFRno3VnFWOTBWZ3o5RDVPaVFvTTBpOAp1QzdHTDhnM0pjMllONjMr -V2NCRFpjcE5VeTlMTUp0dnJDUnA3SVppL01nVkZ6OHNSRy93NVMwaGI1MExrVVVCWFVpZlBoelc3 -Z0xPClZQc2R5SmpoZFdTTjdVS2s2em9YQ1lzdlE3b21BQWNBNXlIZDJFWEF3eEhqdGlNTER4NVFJ -cjRGUGtHNk1BMUtjSjlHV0ZhNDZOOEEKZkloRWhtY0NINmswRGFTdmw0T1JLWVB1Yk9SWjRXSjNr -WDdrU2hvL0xGUnZzTFN1eFBoSTJDandObVAvWUFIcERrUlhsUFFqRWJxNQo2SmZwN1FRK1F3YmRK -clFpYjc0QjlQL1FNYUVIcVhDVGJyT0wvckN1RnVCSHRWOUgrbnBwVWVkSERXelBHaGU3cThtUFhE -SHh3MTFKCmIxV3hBdm5Mbk1maitZOHhEYk0xMEI2UHgrUHhlRHdlajhmajJUWDVGN1NTV0xra1du -SzdBQUFBQUVsRlRrU3VRbUNDCg== - - $$A B C + A \left(B\right)^{2} - B A B - C A B$$ - 31 - - - - - Take the dagger - - - Dagger(_) - python - 32 - 0 - - - pyout - 2 - † † † † † † ⎛ †⎞ † † † † -- B ⋅A ⋅B - B ⋅A ⋅C + ⎝B ⎠ ⋅A + C ⋅B ⋅A - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVd3QUFBQWFDQVlBQUFDVGsyYlJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCd1pKUkVGVQplSnp0blhtSVZWVVl3SDh6NHpLbUpZV2FXMlhtVXBKbVdZcWhF -bEdSTFdwa0N5MDZ4UmoxUndXYWxRU2xMWnFwYmYrMENiYUlCZGtDCnRraUxtVVVGWlNsYUZsbVVS -WVlsV0VHN1RuOTg5ekhYTy9lK2Q5Wjc1MDduQjQ4Mzk1eHp6M2UrNzV6djNIUFA4Z1lDZ1VBZ0VG -Q2sKRWRnVVpIaW43RFlvMnI1ZGdjVkFuYVA4VlBRNUZ6ak5rVHhUaXJhN0NiN0xYSmd2ZGZJc1ZJ -Vy9nTitERE8rVTNRWkYycmNCZUJSWQpBTFE0eWxORm56WEFhbUFuOEdsSy9DamdyRmphdERTMnRQ -ZDJuWWJ2TWhmbVMvV2VoYXJRQXJ3VFpIaW43RFlvMHI2emdQZUFyeDNtCnFhclBQT0E1b0hzaWZB -SndLckFFZUFsNEE1anNzSHdWMm51N1RzTjNtUXZ6SlZldmQ2YXNBNzVGUnZxOWdNK0FPVUdHYzhw -dWd5THQKMndQcHJNY0NmenJLVTFlZlc1RlI5bU94c0tlaWNqMFVYVDhDREFaT2QxUkdrM0syQjN5 -WHVleSt0QjlkZ1lFWm53RzBIU1ZVV09CSQpmbmV5M3hwVVpaanFvQ1BEbG81ZzV5eDZwb1IxYzVT -M0NVM0FBelhTK0s2UFFjREhpYkJMZ0N0ajEvY0Q3eXZtbDRiUE92VkJ0WFlDCi92MjlFRjl5UFlj -OUJyZ1dtSWdvdXdINE1vcXJSeFpRZmtGR0RDL0U3aHZoUVBhQndEYmdZdURkbEhoVkdhWTY2TWl3 -cFNQWXVVSXYKb0JrWUQvUUR2Z0VPQTU1Qk9zcExnZjdJcTM5ZTlvMXpOaklsVVEzZjliRURPQVk0 -Z2RhT2UxVXN2Z3N3TmNyZkJOZDE2Z09kZGdMKwovYjA5K3BJeHp5Tktka21FTndCcmdiMklnU3JZ -akF3cTNJZk0rMXlRRWE4clExY0hFeG0ybE4zTzA1QlgvZHVBSVltNE9jaUMyei9BCmlRWjUxK0lV -MnRvdGpkMjBMVnNXUHV0akN6QXpJMjRaNXAwMXVQZWRhcHlDbXQzajZMWVQ4Ty92aGZpU3IwWEhD -Y2dUNCs5RStGN2sKaVZnUG5Ca0x0NTFMSHdWY0ZQM2ROeU9Ocmd4ZEhVeGsyRkpXT3pjQVR5Qmx2 -QTU1OWR1ZVNMTU1HVlg5UnV1bzBxVjltNEUrTmRJMApBb2NBUHlubTZiTSt2Z0NPU0FtZkJXd0Zi -dGZJSzQ0UDM2bUdpdDBybUxZVDhPL3ZoZmlTanc1N0JOQWJlQ3NqZm16MHZkV1J2RHBrCmYreTg2 -RHBMZVIzeTFzR0VNdHY1Rm1BR01BVjR0a3E2OVloKyt5eGsyZEE3a3YyclFscmY5WkhXWVU5RHBn -WldSTmMzYWVicHczZGMKa2xjN0tZMHYrZGlIUFNuNlhwOFNkelJ3WVJRWG54ZTAyZHZhaEt5cWZo -SmRaeW12SThORUIxMFp0cFRWenVPUjEvYzF3R3MxMG40SAo3TkxJMnpVdHlLQ21CektDcTRidit1 -akUvZ09zYzRCRndGZkE5VWduc0VNalAvRGpPNjZ3YVNmZzM5L2JneTg1WVJXd0IzbWRxZEFUCm1h -ZlppY3piOUVqYzg3YWhySU9SUllMT3lHdFdDL0J5UmxvZEdTWTY2TXF3cGF4MjNvYU1oSTVUa0hz -c2NLaEczanFzUkhZQ1ZLTUwKb3VzWWhmeDgxOGVMeUtpc3dtUmtlaUgrVVNsbkJWKytVd3NWdTRO -ZE93SC8vbDZJTC9rWVlVOEVmZ1R1aW9VTlFlWnNsZ0FQQXY4bQo3dm5CVU5aQzRFNWt3ZUZuWkw0 -cDYybWxJOE5FQjEwWnRwVFJ6b2NqSTVZTndHWUZ1Y2xYMER6dEN6S2Z1UXNZRG15c2tkWjNmUXdI -ClhvOWR2NnB4YnhxK2ZNY0Z0dTBFL1B0N0liN2t1c01lakR3OTV3SkxFM0c5a1VZL0hWa3Bqay91 -YnpHUWRSTHloS3E4THUxRERKQ2wKdktvTVV4MTBaTmhTVmp0UGlMNVZuRkEzN3l6cVNWK3JxVU5H -VkVrZmFFR2NxTUk2WUZnTkdiN3JveE53RkhLYTBRVytmQ2VPamQxdAoyd240OS9laWZZbVJ5RGFT -RHhRL0Q2ZmswWVFZZmx5R2pFVlJmSE8xZ2loUWp4emJQRElSdmdsNWN0bXM0RGJoVHdjWE52WmR4 -aml1CjdidzBLdGRWQ21rSG9iNmJvQnBQQWgrbGZIWWpIVUl5L0VOZ2RPeit5NEduYThob3dtOTlE -RVhtcWwzZzAzZmkyTmc5ejNiU1JJbDgKS2Y2VTI0Sk05TnN3Q2ZuQmt1U3ByQ1FETE9WY0RSeEU2 -N0hjQ3Yxb1BjNnB1aFVyaVU4ZFhOZ1l5bXZuejZQdjNRcHBiOEROY2R3WgpHZUVyZ1p1QjcydmN2 -eHBaelI5WUphM3YrcmdHdU5mdzNpUStmU2VPamQzemJDZGw5U1VuYkFmZXJCSy9FWGxhMlp6ZzZZ -T01QcnVsCnhDMlA4aDlwa1g4ZU90aFNWanNQamU1YlhDUGRPT0FLemJ4MVVWMzhBam13a2p6Vkdz -ZG5mUnlQZEdDZERlNU40dHQzVkZDeGU1N3QKcEt5K1pFMy9TUEQ4alBpWnlKeE5OZU9vc0lMc1Vl -cjhxQXltUDRDVGx3NDJsTjNPYXhFbjZaVVJmekl5Q21uSWlIZUZUb2RkaC96WQowcFNVT0ovMVVS -L2RON1pXUWtWOCtvNHFxbmJQbzUyVTNaZXNhSTRFbjVFSTd3dk1SbFpabHlPbngweG9CTzVHVm82 -enVERXFRNU9oCkROODZ1S0RzZG01RWRqaHNSanFpeXNoeEJMTHdNNWQ4VG96cWROZ2dIY05DMnBi -TlozMU1wWFdQc0ExNStJNHFxbmJQbzUyVXpwZGMKT01aczVNVFZRR1RmNmg1azVSTmtoSEFBOGpP -UWE0RlhER1djRDl5RC9MSldDN0kvOGJKWS9ERGdjV1NlcVFINEEvbDV3dWxSZWRxRApEclowQkR0 -WDZBcWNoMnluR28wc3FHMURIRFN2LzI2aU9vZWRSUm5hRE9SWHA2cm8yTjFYTytsSXZoUUkvQys0 -QXpuRUVNaVhZUGRBCklCQUlCQUtCUUNBUUNBUUNnVUFnRUFnRUFvRkFJQkFvaXY4QUxKRDhNYVAw -U3pRQUFBQUFTVVZPUks1Q1lJST0K - - $$- B^{\dagger} A^{\dagger} B^{\dagger} - B^{\dagger} A^{\dagger} C^{\dagger} + \left(B^{\dagger}\right)^{2} A^{\dagger} + C^{\dagger} B^{\dagger} A^{\dagger}$$ - 32 - - - - - - - +{ + "nbformat": 2, + "name": "basic_quantum", + "worksheets": [ + { + "cells": [ + { + "source": "

Basic Symbolic Quantum Mechanics

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 18, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 19, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "source": "

Bras and Kets

", + "cell_type": "markdown" + }, + { + "source": "Create symbolic states", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 20, + "input": "phi, psi = Ket('phi'), Ket('psi')\nalpha, beta = symbols('alpha beta', complex=True)" + }, + { + "source": "Create a superposition", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\alpha {\\left|\\psi\\right\\rangle } + \\beta {\\left|\\phi\\right\\rangle }$$", + "prompt_number": 21, + "png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAXCAYAAABtR5P0AAAABHNCSVQICAgIfAhkiAAABHBJREFU\naIHt2VmsXWMUB/Dfvb0dqBYtjZCrWvdBOiDVlmpTLTW0UiSGkHjRpoZETSUkTQyJseaIGzFUESXE\nA0rwwJWK4UE0SjwgaFNqnkra4PKw9s7Zd9+99z2nd0By/y/nfGt9a531/771rW/tfRjE/xL3Y8y/\nHUQ/o185NvfCdjSGNTD/JgzNyS7HhF7E0FeYhnYR41pciyaNcbwUB+RklfxaGgyyNxiJP3Kyp7Ac\nVwxgHHksxV+4WMTXjC/wSYN+2vB5TlbJrzeZ3wjG4tsC+SbsgVG99D9tJ+2Ow59Yo5YYnfgNhzXg\np1lsYB6V/AZq8Y9CR4luNZb00v8dO2EzCvPxSE4+XmTx2w34mor3S3Sl/AZq8WcoJ/MWZg5gLCnO\nwmMF8hvxiigZ9WKu8uQq5VdU8ycmgbViHL7Glfgl0Tfh7wK7YTgPR2IDbsnohqod69vFxXRqRr8O\ni/FsCYH+wHjRzYzGQ9guYv8KRyvmmEUrVuB7nISDsAtuwKe5uXXxO1jUqUXJuBn3Jcbpzt2dfD6J\nfTK2l2CS2OXt2C2R76XrhbMav+d+t0VxFtaLjgbnj8rENEpswmqR7Z1YkOjyHFNchJexv1iXexP5\n4diie9fTI782setX5+QniiyYif0y+mxgQ3FX8n0FflDbrNNE2UkxVvfMgKtwSFWAFehocP4iwSeP\n4fhOcKN48c/BR2rJNQ3LMvrn8GCB70p+a8Xij8zJW8XiLxcLv29BYMPFxsBGcVpSXI8hmfEQkWV5\njFHLoEbR0eD8lbmYstiIV5Pv+cWfgB1YmJGtEImb4gHF91s3fmnNb8axeEG0WVlsTj6PEH3slwWO\nd4jjNhlTRM+coknXNmw6Hi7wkc4twwQ8o/hibhP3TB5bxMnNo0Vxa9iCA/FSSQwL8VNO36brM8F0\nvFNi34VfuviTRW3+oMSIaKeWVuhhjiC1PhnvLS7sLCbiiQLbc0XWlOEz5f18B+b1EFuK0UlcRThZ\nXJrrSvST8bHaZdwinhNStInkW1lg241fmkWbEof5hSJqW6fY7e0lQaXoxDa1rJqH1zL6Zblxihax\nue/14L8vMBfH636CWkQJWYPXS2zXq5Vd4kHs3eR7k+ia2vFige9u/NIAfhZH+vic0QLcKo7RuGT+\nKSWBwfOilp6QjCeJ0zQCq8SdsrXA7nQ8XeG3LzED14i2OK37acfyo64lM4914kn9zGQ8XyTTWHGa\nN+CyArtCftk+/2zcJi6ZzUlAb+IC0YLeI148PV4R3FZR867DLNFRrEp07aJ0FGFx8vsDgRGiuViK\nR0Xi7Yk3cL7q/n4bjhFNxGxRZsdgV9ys+N6hH/iV9cAppuLCOvzMUp1t9aCjznm7K67HZajiOESt\nva5CKb/+fKSfr75FWaK49WwE39Q5b644zX2BQ5W/z8milF9vFr9TcbuWYgo+7MFHq6izv/YiDjij\nznmzNfbCrIrjHFGqqtBX/Lqhp9fA7XX4GOg/Uxp9+1nF8c467P8rfxYNYhCDGAT8A+0w3Ws5danI\nAAAAAElFTkSuQmCC\n", + "text": "\u03b1\u22c5\u2758\u03c8\u27e9 + \u03b2\u22c5\u2758\u03c6\u27e9" + } + ], + "collapsed": false, + "prompt_number": 21, + "input": "state = alpha*psi + beta*phi; state\n" + }, + { + "source": "Dagger the superposition and multiply the original", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left(\\overline{\\alpha} {\\left\\langle \\psi\\right|} + \\overline{\\beta} {\\left\\langle \\phi\\right|}\\right) \\left(\\alpha {\\left|\\psi\\right\\rangle } + \\beta {\\left|\\phi\\right\\rangle }\\right)$$", + "prompt_number": 22, + "png": "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\n2Kc62Q7y4E4AAAAASUVORK5CYII=\n", + "text": "\u239b\u23bd \u23bd \u239e \n\u239d\u03b1\u22c5\u27e8\u03c8\u2758 + \u03b2\u22c5\u27e8\u03c6\u2758\u23a0\u22c5(\u03b1\u22c5\u2758\u03c8\u27e9 + \u03b2\u22c5\u2758\u03c6\u27e9)" + } + ], + "collapsed": false, + "prompt_number": 22, + "input": "ip = Dagger(state)*state; ip\n" + }, + { + "source": "Distribute", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\alpha \\overline{\\alpha} \\left\\langle \\psi \\right. {\\left|\\psi\\right\\rangle } + \\alpha \\overline{\\beta} \\left\\langle \\phi \\right. {\\left|\\psi\\right\\rangle } + \\beta \\overline{\\alpha} \\left\\langle \\psi \\right. {\\left|\\phi\\right\\rangle } + \\beta \\overline{\\beta} \\left\\langle \\phi \\right. {\\left|\\phi\\right\\rangle }$$", + "prompt_number": 23, + "png": "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\nVapUevofz4SOwufiq5gAAAAASUVORK5CYII=\n", + "text": "\u23bd \u23bd \u23bd \u23bd \n\u03b1\u22c5\u03b1\u22c5\u27e8\u03c8\u2758\u03c8\u27e9 + \u03b1\u22c5\u03b2\u22c5\u27e8\u03c6\u2758\u03c8\u27e9 + \u03b2\u22c5\u03b1\u22c5\u27e8\u03c8\u2758\u03c6\u27e9 + \u03b2\u22c5\u03b2\u22c5\u27e8\u03c6\u2758\u03c6\u27e9" + } + ], + "collapsed": false, + "prompt_number": 23, + "input": "qapply(expand(ip))\n" + }, + { + "source": "

Operators

", + "cell_type": "markdown" + }, + { + "source": "Create symbolic operators", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 24, + "input": "A = Operator('A')\nB = Operator('B')\nC = Operator('C')" + }, + { + "source": "Test commutativity", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 25, + "text": "False" + } + ], + "collapsed": false, + "prompt_number": 25, + "input": "A*B == B*A\n" + }, + { + "source": "Distribute A+B squared", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$A B + \\left(A\\right)^{2} + B A + \\left(B\\right)^{2}$$", + "prompt_number": 26, + "png": "iVBORw0KGgoAAAANSUhEUgAAAMAAAAAZCAYAAABn7SHgAAAABHNCSVQICAgIfAhkiAAABONJREFU\neJzt2luoFVUcx/FP6jnZsdNNKzVFKLsX1EORpGYIKRkFRgRJD70oFBRFmlQv0ksPQUVYPYXRTcTq\nISqKouhCD0YSdCUKtItd0JJSuunpYe3N2U4ze681M/scOcwXDps9a83M//f/nTXrv9ZsGhoaGhI5\nEmdgyngH0tCTrl5NHttYJgQrsBLHYCOmYtu4RtRQRONVzQzgpdYnnI4RXDhuETUU0XjVB07An1jQ\ncewPrBmfcBq6EOVVag27EoPY3KXPRswraPsHO1vnf5B471QG8XdC/zxt2WvswbH4q/V9Po7Sfy1F\n9CPXMR7XTZFXKfr67tWJrYs+1qPfIM4XppvnMSQMtCmYg4dbbevKBhLBLKxO6F+k7V6jU2geW7E+\nLbRaqTvXsR7XSTevUvT13asnWjd7MaLvilbf63PaBvAz9gkCY0hZrE8SDEw5p0jbmXi84Jy1uCXh\nHt2oshlRZ65TPC6ibq9i9ZXyalJkoJcK08sIZkb0X9z6fDun7UDrOkdE3n8pbovo1+YmvN66Twzd\ntH0pJPi8zPFV+EyYogewMCG+LKn6stSV61SP8+iHV7H6dijhVcw/4BTch7uxW/wA+Bw/5bQtxUl4\nVlik9GJA/EwBNwir/xhitL3g0KfHdThHSPpVguFHJ8SXJVVfljpyXcbjPPrhVYq+vnh1u9GV8yfY\n36P/kPAkeTSnbaFQY24RXlDEsFx87XY83ozsS5y2IWGxBdPxPj7M/M1OuGeWFH15sdWR61SPi6jb\nq1R9yV712gWajauFkQY/4lxhdb234JwFwpPgZKPJGG4FvA/X4q0e9y3LqdgV2TdW234cFJ5su4VS\n4XChjlyX8bgOYrxK1ZfsVa8B8IAwLR5sfW9PQzMVJ6dds60VRmibrXgQG/AVvusVXAmmC4mJIUXb\nTmG3YkfVAGumjlyX8bgOYrwqoy/Jq25rgKXCXmvnvmlncopYhC/wDX7r+Nsu1HyL8HRMcCXYi7kR\n/VK1zcLv1ULrC1VzXdbjOojxqoy+JK+KZoBBYdW8HQ91HL+44yZ5DOASPFPQ/oMgYLEwlXUGukxY\ntGSZI7zVm5/T9h42dXzfKfzwqRup2gYxA7/2uG4v6tDXSZVcU95jxsarMvqSvSoaAHcKK+stmePf\nCnVZ0dPhIuFt27sF7WfjOGFUZw3ZJtRtWRYIiXoypy1bQ+4S6sBub4FTtZ0m1JkjBdeLpQ59nVTJ\nNeU9Zmy8KqMv2au8ATAPlwuj/GCmbWbmM0u7ZisK+sbW51M5bXscWue1mYFpwgo+hs3C1Ji3w1BG\n2xLFT6EU6tLXpkquq3jM2HhVRt8SFb0axjvCW7U85guja1NB+yuKF1yrW+c+JyQpltRtwiG85v+v\nxctom4FXhX3kflF2G7Rsrqt63I26vCJdXymv2jPAMO7BNThL2BPe4NBdgDXCCCM8PdbhZXyNm4VV\n/RXCNtp6/NsR2JWC2FvxSEqAJdgv7GqsFmrcKtpWCdqqlj91MVX5XFfJw6e1Kwlkvaqi7w4lvGqP\nlmFc1nF8BG8Y/SUdYbrMjtSP8Esr2KKRdwAfC4uWMizHBbg/8bxT8L1q2iYLNXE/SdE3oHyuq+Qh\n1ruqXlXRN1f/vRoXluGu8Q6ij0wkfRNJy2HDNP3fkx5PJpK+iaSloaGhoaGhoWGi8h+sZcLwhv0Q\nuwAAAABJRU5ErkJggg==\n", + "text": "2 2\nA\u22c5B + A + B\u22c5A + B" + } + ], + "collapsed": false, + "prompt_number": 26, + "input": "expand((A+B)**2)" + }, + { + "source": "Create a commutator", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left[A,B\\right]$$", + "prompt_number": 27, + "png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAWCAYAAAC/kK73AAAABHNCSVQICAgIfAhkiAAAAkhJREFU\nSInt182LTWEcB/DPvOWlJpTGYLKwUFMzzYZmMzNJiWl2/gHFQlZm4yUbY4WtQsqUFRYiSoQ4aIpS\n8rKQRORdSZEMM1g8z+XOnXPmnntnZkG+dXvO/X3P7/v73t9znuc8l78UNSXfL+ArLuFAmdw9qMO2\nKuoOYC068QND+BK5RizB2Xjf+xjvx0o0oK9UMMlZuB3fcawK0wU0CGZPpXBtUf8eaku4REowD2qw\nD/VoriK/gOWYhYsp3ANcFhrUlpZcjfH1sdhnkzPeE8erGXwrRvE8j1hShp8XC9XjMT7kEc3AObzK\n4NbhpzCzpUjSElKDRTiEVfF6KIrPKOcwBbX4iOMl8dnYHLntxm8evz3WV1BshdDxK/H72zg241kF\nOtCBOZiLvTE2E6uFXW0NblUimGTEa3FN2KYKOCh0vLOSAhFbYu6yFG4jvmHDRB7zLs5Nwt5evFCK\nO14pevAOj1K4QbwWGtOYJZDnUWnCzlikqyjeEsdqjHfj+gT8J2F2l+JuHsEkJXYUvSnxPmG6d+UR\nLkJrzOvP4BdG/qkJFme5R6VLeIOdT+FexDGt44sm0Czs3zcy+IE4HhF+QC4kRdfteIMFGfcujsKn\nS+IdwvljMCPvpPDyqiuJN2E/RrAjp8cxwfnCGWE0Gnvoz/NcwAm8jPyw0L3CwacFT3Df2Kk+g5sx\nZyReJ/FzW3jNHzZ2HVVkfKqwewq1ipFQ3VklL6ZTe9rEe3FnmrQx3viI8Gcia6vKq9kt/Zw9GWwV\nvA1Pse5//Nv4Bfpvd5tNLRluAAAAAElFTkSuQmCC\n", + "text": "[A,B]" + } + ], + "collapsed": false, + "prompt_number": 27, + "input": "comm = Commutator(A,B); comm\n" + }, + { + "source": "Carry out the commutator", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$A B - B A$$", + "prompt_number": 28, + "png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAASCAYAAAD15uiRAAAABHNCSVQICAgIfAhkiAAAAi5JREFU\nWIXt1ztoVEEYBeDPGEGLlQQMahQipBUF0SqYwmdhrCxFO+0F0UKxUVS0ELENaWOhQhorFfGBlY+g\nIppOgmDAKkrUqLGYQddk7u59JAFhDyx3ds4/c87ZuXPnLi2UwpKC9VcwiTMNagaxDZvwFU/wPXKr\n0InrOIepgvqNsBC6efI2xVb8xFCO2g2YwaUEty9yI1XMLIJukbyZaMPdKHw7R/2hWLsrgx+LpmpV\nTC2gbtO8bTkNHcUNTGNNjvp+YZs8TnA1rMcEPufUz4v50i2aN4ku4ddvwzg+5BjzFg8zuBPCSh4p\na2iBdcvkTWIIfbH9FD80vlNXR4NnZ/V3xL4JHC5rZhF0c+VtbzJJH5b6e+t/jN+7YjuF/njtxcXY\nrmEA7+KcY03tF8d86JbJOwfteIS1dX1DwqpubjDuGr5heYI7Lxzvu/OaKICqumXzzsExHJ/VdyFO\ntLfBuFHphzOsEB6474sYyYmquoXyZm3V7jjJG/8e7T3xmnXSdGAjLmfw08JdsU7YRpPCVjqdUZ/C\niBCoqm49yuadg2HsSPQfEFbgZMa4/ZEfyOC3R/5OXiM5UVW3cN7U6bgTn3AvwY3Ha9YK9Eeh1JZZ\nhlOxPZgxviyq6FbJ+wdbhNOjM4PvjQaHM/jneJno78FNfMHBZiZKoKxu1by68Qq/YuFr4b2oHreE\nl8EZ4U/0A+zBSmG1XkRuSjid7sfPKJ7hqvAcmi9U0a2St4UWWvh/8Bt1v8TG07AChQAAAABJRU5E\nrkJggg==\n", + "text": "A\u22c5B - B\u22c5A" + } + ], + "collapsed": false, + "prompt_number": 28, + "input": "comm.doit()" + }, + { + "source": "Create a more fancy commutator", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left[A B,B + C\\right]$$", + "prompt_number": 29, + "png": "iVBORw0KGgoAAAANSUhEUgAAAGAAAAAWCAYAAAA/45nkAAAABHNCSVQICAgIfAhkiAAAA3tJREFU\naIHt2E2sXVMUB/DfexqvUvr0QxXFQI2k8dn4at+A1wglkfiImRIhEhEDDBrVCNLGM2qjHRA6EMSE\ngfhIkSt9jU7E90cISaWEpBJaDarFYO3b3l7n3LPP6733Te5/ss/Za+3/XufstdZeezPAtGKo7f1N\n/ImteKpi7Docgwc76GzCpTgPf+H91MJcnISX8Sh+r2F3r3iPBiO4Idl1rviPI9iMl7AWD+FjXIb9\nRSSNzMmW4G+8kKG7EP9iQ4HsyiR7K3PefvBOBRfhc2zBFeLHS+3j2IjfMC6cfGYZUSNjsiG8Lj7w\n3Qz9m5LutSXyT5N8XgZXL3nn4YyaNhCevV95JhjCJP4QP/6oF2AV7sNefJGhvxEHMLtANjPx/ILh\nDK5e8l4vvqsObheLfEeF3hq8k56PWIAZNSecg1uxAveINFCFMXyIPQWyO3E87sU/NW3pFW8uzhbp\nbweeqdD9TjhLJRoV8s0ix8F2sfoj5epOxEFMtPWPCq/Yrdp7+sVbNwK2ie8fz9C9EIvT85QjYKmI\ngGbe/zm1C7GzZMxykQLOxPrUN0vk7Z1J/mUNG3rNm4s5uByf4O0M/Q9yiRsl/cN4z5Gb1CbhARd3\n4JsQoXdCgexh7MPKXON6zFsnAlaKb3+u5hy0RUDuBnWXOBt839LXGgFlGBN1794C2bo0/7P+fx6p\nQq94c9F0us8ydOfqUInlpKAFWI2vsaylf1FqyxZgFi5QfqA7KEqzBcnA3Rm2dIN3lWJPH8WxSd6O\n5/Fky3sz5f6YYe9qPJahh+IUtAVXF/Q3w3BtCdeKJL+xRL40ySdzjesxb50UdFaa44kKvcW4v62v\nVgpaJk68bxTIdqW2LALGUrutQDZDVCvwdMn4U3vE2w18K6rA6xTvQ8QirRF7ZTYaLc9L8BNOLtE9\nTXjBKyXyHfimoH8RXhRp4raSsc1T7gNd5u2EumXobLEIkzi9pX8Ut4hCoahEryxD54tS8xyHq59x\nhz2euFxanp6vEd64Po17TZRp54sLsu0iioj6vZkeLhEbaRF24QcRgRM4rku83cQeXCUOfRuEA3yF\nX0XBUuQ8lWh0ybhu4ZE+zjWVq4ipYEpl6HRgWHh1v7BP/66uD6HuXVA/cTde7eN8W/s41yG0R8AB\nESL9CMVOmC/y/kfTbEc3cbP4t6fo3QXhAAMMMEAd/Af3QOJHSnIYNwAAAABJRU5ErkJggg==\n", + "text": "[A\u22c5B,B + C]" + } + ], + "collapsed": false, + "prompt_number": 29, + "input": "comm = Commutator(A*B,B+C); comm" + }, + { + "source": "Expand the commutator", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left[A,B\\right] B + \\left[A,C\\right] B + A \\left[B,C\\right]$$", + "prompt_number": 30, + "png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAAAWCAYAAABAHklQAAAABHNCSVQICAgIfAhkiAAABOVJREFU\neJztm0toXUUYx3+JCWnF+KrU+kYLYtHahY+gJKWIr9q6EVypFHRRxYAFn3RjXFnBjYKK1EgEURc+\nUNCIQh0fQVxpiwuRgO83ilItautj8c3h3hxnzpk58829t3J+EE4y38x3vu9/58ycOzOBlpaWvjBU\n+vtV4HfgdeChmrb3AocAdzS47wxwOTAB/A0sAPusbRw4GXjJ1vvBlm8DNgCjwCYlnzmI0RDSdCwY\nAq4EJoFzkfzHgOeAB4HVwAc2pkHXr446vXz6z5AvPw39MYE3WwvsB56KDLKbUST55x22s6z/PcBw\nyWYy+NTERNTV0PFUe895pAOM2/Jh4HrgSeBTYDogvkHQr4oQvUyFLUd+avp7DV0MAa8A/wC7IoIs\nc4H1caPHPm/tZ5fKTQafPo4GTgmsW2AC62nouAXYCzyKzAYuHrf3OCMgPm39oJmGLkL1MhU27fyS\n9G8ygm0BXgN+BVY1aF+w3l7f8NjXAH8Bn/fR54XA1RH3jyFVxylgFvngtyJ5uZgHvgI+CvCZ4zPR\n0lCj32nmp66/qbEfhQQ+AiwCPwUE6eNl4GuP7SpktLjPYTMZfPrYDNwWUR/CZr5UHY8EPkNyXV5T\n9xzgicD4tPWDZhqWidHLVNi08suiv9dgeQS4yP6+gAQ7VtPGxTDwM/B0qfxQ4CZru5P/LghVxZji\n00euhy9Vx522zXRdReAkZPapiy+HfqDz8MXoZTzlmvmp6D8S0LjgPGQEKt63v7PXVcgoEMM64Ahk\nBNlhy5YBlyArVZcB7w2Azxxo6LgZ+a6xM6DuF/anjkHVT6vfaeaXQ//KUeNNZDm24GHk6Z8IcVzi\nFtv2dIftBuBPZKUoJsYUnz60Zz4NHVfb+u9GxlVgPOU59IO0ma+JXsZTrpWfmv6hCy5bkT2K7i+i\n3SNQLOuB74GPHbZZ4BtE5HGHvZc+tdHQseh0HwbUHWNpx61iEPXT7Hda+anpH/LauRLYjgQ92VV+\nor02Xal7q8K+Fwn6NGB3D3xeB9zqaHM4IuC1DtszdF5fQtDSsXjV8i0cdHMzsukcQupnoq2hdr/T\n6nO59HdO2XPARkf5JmT6vTvUuWWNbbfNYz/O2j8hfMEl1acPzdfOOXR0HAV+Q05jVHEYcL+j3DjK\ncukHzV8752iml3GUaeanpn/da+cksus/77B9aa+uEej4Cp/FXsvbHvuMvT6GCBJCDp+aaOq4H5kx\nppCVNBcrkGNNDwTGN2j6NdXLR9P8eqU/sHTUWAt8CxzrqXuCDfSFUvk65GzbrKfds8hGaflEwEok\n4APAXYExavn0oTHz5dBxBOkAi8ixqILlwKXI0vyKwPggn34Qr2FTvQqMo6xJftn1d33nOwZZ1j2T\nzmrTxXRGHOg8+QBXICPKDmQT80fkLNv5yBRejCQvIoJOIKcBFpAlXpApepkt2wC84wm8TA6fWuTS\nEaSzXIOszm1HVvAWgV+QfKfxn7joZpD0S9XLRUp+vdB/CSa2QQX3KPrqxmTy6yLXJnsM2joaZX91\naGyyx2CU/WXTP+fp9H6dfNdkH/K60k8Odh0HQcMUsukfc8Ilho3A+5l895JdpP3nRir/Bx37rWEK\nWfUvP9UHkH0J35JsqM8p3P8zlcLtSGx/KPvVRkND0NfxYNEvlVb/lpaWlpaWlpaWlg7/Ap2JCsCY\nEBHmAAAAAElFTkSuQmCC\n", + "text": "[A,B]\u22c5B + [A,C]\u22c5B + A\u22c5[B,C]" + } + ], + "collapsed": false, + "prompt_number": 30, + "input": "comm.expand(commutator=True)" + }, + { + "source": "Carry out and expand the commutators", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$A B C + A \\left(B\\right)^{2} - B A B - C A B$$", + "prompt_number": 31, + "png": "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\n", + "text": "2 \nA\u22c5B\u22c5C + A\u22c5B - B\u22c5A\u22c5B - C\u22c5A\u22c5B" + } + ], + "collapsed": false, + "prompt_number": 31, + "input": "_.doit().expand()\n" + }, + { + "source": "Take the dagger", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$- B^{\\dagger} A^{\\dagger} B^{\\dagger} - B^{\\dagger} A^{\\dagger} C^{\\dagger} + \\left(B^{\\dagger}\\right)^{2} A^{\\dagger} + C^{\\dagger} B^{\\dagger} A^{\\dagger}$$", + "prompt_number": 32, + "png": "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\n", + "text": "2 \n \u2020 \u2020 \u2020 \u2020 \u2020 \u2020 \u239b \u2020\u239e \u2020 \u2020 \u2020 \u2020\n- B \u22c5A \u22c5B - B \u22c5A \u22c5C + \u239dB \u23a0 \u22c5A + C \u22c5B \u22c5A" + } + ], + "collapsed": false, + "prompt_number": 32, + "input": "Dagger(_)" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/decompose.ipynb b/docs/examples/notebooks/decompose.ipynb index 4d296e9..85100b8 100644 --- a/docs/examples/notebooks/decompose.ipynb +++ b/docs/examples/notebooks/decompose.ipynb @@ -1,1043 +1,279 @@ - - - decompose - 2 - - - - - <h1>Gate Decomposition</h1> - - - %load_ext sympyprinting - python - 1 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 2 - 1 - - - - <h2>Example 1</h2> - - - Create a symbolic controlled-Y gate - - - CY10 = CGate(1, Y(0)); CY10 - - python - 3 - 0 - - - pyout - C ⎛Y ⎞ - 1⎝ 0⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURjQUFBQVlDQVlBQUFCZUlXV2xBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBeFpKUkVGVQpXSVh0MkV1b1ZsVVV3UEhmdmI2S1czYUx3Z2QxVXlTdk5BZ2ZH -WUpwQlE1Q3doQ0NCbXJxNEtLRU5YQlEwV01XRVNJUm9oTVJIMXlwCklLSkVNR2dRUW9XSUlEMndC -QlUxeEFpMHAybWhsWU8xUHp6MzNQUDZQck1HK1lmRHg5bDdQZlpqcmJYMytmZ2ZNeFZyOFM0K3cw -ZDQKQzVQUmhSMFkzNEhkdGZnYWY2Zm5GTllWeUMzQlgwbm1OMnp2d05jd1J1QUZuTWJUdUNmVGR4 -ZjJZaHNPdDJHekYwL2wybmFKZ1MrcQowUHNBNnpHcW9POVpkTGN4Qm4zWWh4T1lWaUl6TXcxcVkw -T2JZekdJVzNMdFR5UTdPMHYwVm9oZEx1TVJ2Tmx3REVaaVA0NWpRbzNzCjkxamMwTzQyVEM5b3Z3 -RS80eHg2Y24zenNhR0I3YTFpQjJ0NVRhemswZ2F5bjRwUXEyTTZkbGYwYjAwK2wyVGFwdUFkc2Ro -MTNDYlMKNDhZcW9SbjRFNGMwaStNbkc4akEyM2lzb24rQm1OeWU5TjZMOXpWYnVCYXZZbVdWd0V2 -SnlVQWJSdXNZaVRNaTU4cm9Gb1hySWlhSwp4WmpTcHArbElwMUsrVkJNYmxhYmhxdVlpeThheUwy -UmZCOFN1ZFl1OStPU2lqRCtRWVJsWmV3bXBqWjB1c3lWY0t0aWtaamNpdzN0CjVyazU2VS9LTm1a -ejZ5Uit3b1VhUTNlb2llOE00NVBOT21hbTN5WUxVY1N2K0E1M1p4dXprOXNyS2s5ZmphRTFocDh0 -ZmFLNjVSbXQKV2NXYkx4Ymh5NEsrQ1hnT3E1UGZpU1UyenVHbU1nZHo4THU0bVpTeEtqMHRldkN5 -T0lTUEZzZ1BxTSs1VVRpdi9MalloWWN6WXl3cQpIS05GUVpwZDVlalI1T2daUTNPdkg2OWpZWW5l -QXNXVFc1anNkVlg0bkNmeTVmbUN2bjVSQzBhazl5NXhlYmd2SjNkdnNuRm5oUi9FCjdOZmpFM0ZS -M2lGMlozS0ZUdG5rYmhWVmJGSkIzekt4QzJmVHdFN2lZMFB6NW5GOGs5UDdITXR6Yll0eExPK2dL -QjhPcE9lZjRFY3gKZ1g1eFY4MHltSjRxYmhjN24rV0M0WGZVYWVJb0cwSmJOK29PMlN3dXlKMXdY -T3hxbGg0UnFpMjZ4Vkd5SmEvOGIweHVVRndNSHVwQQo5NkE0ZXJLTXc3ZVo5elU0SXNMMW1sQ1dj -eTFtaVZBZjA0SHR3NjU4VDg0UXgwVnJVL3J3bGZMajRhcm9FaCt6NzRuY2VFWDU5ZWxCCnhSV3hq -dGxpOTFkZ0V4N0k5RzFTVWVpcVNuUlQ4bjh6bk1jdkpiSmo4RWVIZm9wMHI4YmVkYTd6WDNBWmd6 -dWJDa2Y3Z3o0QUFBQUEKU1VWT1JLNUNZSUk9Cg== - - $$C_{1}{\left(Y_{0}\right)}$$ - 3 - - - - - Decompose it into elementary gates and plot it - - - CY10.decompose() - - python - 4 - 0 - - - pyout - S ⋅CNOT ⋅S ⋅Z - 0 1,0 0 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlnQUFBQWNDQVlBQUFDNlRmY0hBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCZ2xKUkVGVQphSUh0bW4rc2xtTVl4ejl2NXpqbnRKTFRjYUlpVFVScHhQcGhO -VkZNZGxqbE4vMWhUTm9vdEJTbG1qSVJFNlpWU0dUVFZLc0liZjA0Cjh6TmtSczJ2UDlDRXFDWDlH -RkVuNmZqamV6L2Urenp2L2Z4NG4vZDVTL1YrdDdPejU3NnUrN3F2KzN2ZnozMWYxL1c4VUVJSkNW -RU8KM0EzTUJ4WUN5NEJoUUF0Z2VRSjcvWUFwd0VyZ1hlQTk0RkdnSmRBYVdHVHBEZ2JXQUw4Q2pV -YlBqeEhBRmlQZkIzd0dWUHQwV2dKagpqZTl6Z2FWbS9HRU92VCtNclIrQVZjYS92MDNieDZiZkdt -Q0hhZXNiYzk3NUlnM2VLOGo2K1Erd0VYZ0x6V0VsOEl1UmpVcnFaSFBqCnpDU2dtZFYrUC9DTmNU -d3VXcVBKcmdkdUJOcFlzdjdBQ3VCRDRGbEgzNFZvd1g0REtoM3lZNEZOUUVlSGJMQ1JEYWZwSE5v -QTN3S3YKVysxRGdVK0JkcFplSmJEWHROdW9RZVIzY0l4WktOTGkvVkswTWFhU3kxdGZZQSt3Qk1n -a2RYUXg4SHlBYkROd1cwdzdBOUJ1clVlTAo2Y0k5YURkZjYyc3ZRNFJNTVBLYkhIMVBCSjUwdEY4 -R2JBVzZCWXg1dHJFNXdqd3ZNTFpzOURNNjB4ejlsMU1BdVNGSWkvZW5nZHNkCjdaM1J5N1lXcU1y -Yk80UGowSkU5TUVDK0NqZzFocDFUZ0ozQUc4QXhJWHBkMFc0LzN0ZmVBeGlQRm00ZjhKR2o3M1hB -bGI2Mi9zQmYKd1BVUi9tMEJ2a01iZDU1RFBoRnRrRHFIYkg2RTdTUklpM2ZROWVqbnZCYk5kd05O -VC9HOGNRVWlabVNBZkZJTUcyWEErMmpDVVpPcQpSUEdESDZQSjN2TUxqVS9kZlRvemFMcXhlcUJZ -WW5FTUg5Y0FCOUFwMDlzaFh3M3NCMW81WkxmRXNKOHYwdUFkRkt2YzRHdXJRaS9ZCmR1Q01STjVa -cUVYRU5BRFRnUXNJUHdGY0dJVW02NG9yL0tnQXJuSzB6N2ZHdlNqQTNpdSs1MVZHNzVJWTQyNDJ1 -clVPV1RuYWFLNk4KV3l5a3dic0xHZlRDN0VYWFppcTRGem5hYVA1MkE3UEl6UktDVUcvNmRVNDRm -b2JjZ094cnRHaGVMRk1EekxUa1hjMllQeElkSDFRYgozUTBCOHQ1RzdvcHZpb2xDZVhkaE9qb3Bo -eGJzblE5ZGdBZkpYaFdOS1BLTlFobGF5TjhMR0xzYk1OblhkaWROQThzaEtDdnlNTnpJCkY4U3dQ -OGpvdmh3Z0gydmsvdmptWUNBcDd5Nk1OUDBucE9OYU1Mb0JQNkc2UUZUMGU0NXhhbTFNMjY0NzhR -NFViTnBvaGQ2b0w4M3oKRTBCN1MvNllHZmVSR0dPK1kzUmRWeHNvc0Q1QWJ1QjhzSkVQNzM0TVFs -ZVdQeXZLQUpjbmRXaDhpR3dhMnRITkkyeTBSbG5KMGhqagoxUUhYT05wZndrM0lITFN3L2NpOWdy -eDBlVnpFbUQyTjNxSUFlUWJWT2I2S3NKTW0wdURkUmcvME1xMUU4WlNOZ2NCZGVYbG4wTklZCkRN -SXNWRkgwMEFkTmJBeUtzTzE3Znozd2ZZd3hud2xvRDFxODg5RGlMa2VieFVZdkkxc2RNbDV6NEFP -VTRnYWREdDRKT0R2RWpvZUwKZ1lkaTZJVnhsU2J2b0tMaEZ1QnozTFduWmVRV0ZxTnNBbnFiOXdP -bk9XUW5vTUxUQVBOY2d5cDczdTZjRHR4bjZZOUdKUGR4RFlReQpsNmNDNUtjRER3ZjBBNUhWU0c2 -cVdZWXFwQTJJZEQvS2dUZFIyYmxYaUgwdjF2R25pamE2QWcrZ3pUWTNSQStpdVVxVDkyb1V6UDhN -Cm5PeXdOd0IzWlRqTTVuOTRIQlZTbGdCbldlMmQwS0tNc2RvbUFpOWF6eGVpeGJFeEJkaUZVazZ2 -YkZ3T25BODhSM0NHTTQvd2J3UTMKb3dYczVKQjFRS1g1R1RRdFZmY0NYa1hwWGxoR2tFRW5VQ051 -Z3YyWVN2UUdpZUlxTGQ0cmdMZFJnbkN1ejRjMktJaHZRT3NTMnovNwpmbXFMRnE4N0t0VldvOExL -SG5TLzI1WE1MbWdoUEd4R0M5NEMrTk8wVFFHK1FKbkdORlJ5M3dtc001UGU3WE4wTW5wN2E4MllR -OGgrClU3Q3h5T2k1cnJCTlpvTERnUmRRb0ZscHhwNUQ4RkUrMDh5cEhkbEZXbTNtVlk4QzRLU0k0 -aW90M3NlaEUySWIyWHBSR2Rwb05lYTUKRVhndFQvOFNZUVg2Z09UaEpETjRlN2Y2RVlzNEowaWFY -QldEOTFDYnpWdzlZbUNqTWVLaGhmbS9JNkc5SXhscGNsVU0za050SnQwZwo2MUFBNWFFdE90cjJK -clIzSkNOTnJvckJlNmpOcEJ2a0U3S1JOZWp6ZWxES2VyU2hpcVpGdmpTNUtnYnZvVGJMRWhyZGlq -NVAxNkdVCnJ5MnFZRFlrdEhlNG9UMXdLMHFGejBROGJrTkJlRS8wNjYwVnFCNlJKbGZGNEQzVVpx -RS9lc21nTDQ3N0NyUnp1S0dDYkdiZ1lSZloKbzc0aitvUlFiOG5UNUtvWXZCK3RhM2xJY0RXSC9q -dE9La2dhZzVRUWpDcDB1bXcvMUk2VThQOUVodVN4WFFrbGxGQkNDU1dVVUVJSgp3TDl4anFTc1FZ -cHF6UUFBQUFCSlJVNUVya0pnZ2c9PQo= - - $$S_{0} CNOT_{1,0} S_{0} Z_{0}$$ - 4 - - - - - circuit_plot(CY10.decompose(), nqubits=2) - python - 5 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x2c85f10&gt; - 5 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVE4QUFBQ09DQVlBQUFBdnRJMzNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNUNUpSRUZVZUp6dDNFdElW -SDhZeHZIMzJEQ2psZUNGTGhob0dCUkJFR0ZFRUZtTFNNelNMTHU0CmtHaFRVRkl0dWkyc0lJcWlG -a0VVRmFVdXdxZzJicnFIMVNLNi9CZWhkTEVMMnQwd0tteTZwL2IrZDVIbHFQTjY5TXlNM3cvTTVw -d3oKUDU3ZmVlTnBqb002cWhvVWtVUUJnREE0cXFwZWh3QVFmZUs4RGdBZ09sRWVBRXdvRHdBbWxB -Y0FFOG9EZ0FubEFjQ0U4Z0JnUW5rQQpNS0U4QUpoUUhnQk1LQThBSnBRSEFCUEtBNEFKNVFIQWhQ -SUFZRUo1QURDaFBBQ1lVQjRBVENnUEFDYVVCd0FUeWdPQUNlVUJ3SVR5CkFHQkNlUUF3b1R3QW1G -QWVBRXdvRHdBbWxBY0FFOG9EZ0FubEFjQ0U4Z0JnUW5rQU1LRThBSmhRSG9ncXo1OC9sMGVQSG9t -cWVoMWwKd0tNOEVCV2FtcHBrOHVUSk1uNzhlTW5LeXBMUm8wZkxuVHQzdkk0MW9EbEtoU01LWkdW -bFNWMWRuYlMzdC84K2xweWNMRTFOVFJJZgpIKzloc29HTFR4NkllRStmUHBYNit2b094U0VpMHQ3 -ZUxoY3ZYdlFvRlVKKzhuQWNwNyt6QUlnaXZsQW5lSnBCcFBqMTY1ZWtwNmZMCjY5ZXZPeHhQU0Vp -UVY2OWVTVXBLaWtmSkJqWWVXeER4NHVMaXBMcTZXcEtTa2lReE1WRkVST0xqNDZXeXNwTGk4QkEv -TUVYVStQcjEKcTF5NGNFRVdMbHdvNzk2OWs5VFVWSzhqRFdpVUI2S080emc4VmtjQUhsc0FtRkFl -QUV3b0R3QW1sQWNBRThvRGdBbmxBY0NFOGdCZwpRbmtBTUtFOEFKaFFIZ0JNS0E4QUpwUUhBQlBL -QTRBSjVRSEFoUElBWUVKNUFEQ2hQQUNZVUI0QVRDZ1BBQ2FVQndBVHlnT0FDZVVCCndJVHlBR0JD -ZVFBd29Ud0FtRkFlQUV3b0R3QW1sQWNBRThvRGdBbmxBY0NFOGdCZ1Fua0FNS0U4QUpoUUhnQk1L -QThBSnBRSEFCUEsKQTRBSjVRSEFoUElBWUVKNUFEQ0pxZkpJU1VrUngzRmNmYVdrcEhpOXJRN2Mz -R09rN1MzV3hkcnNIRlZWcjBPNHhYRWNjWHM3ZmJGbQpiN2laSjlMMjFsUGtqb3g3RUZPZlBCQ2JY -cng0SVdWbFpUSnUzRGhKU2tvU0VaSFJvMGZMcWxXcjVPN2R1eDZuRzdnR1JIbThmZnRXCi9INi94 -TVhGaWQvdmw3Rmp4OHJzMmJNbE56ZFhjbk56SlRVMVZlTGk0cVM2dXRycnFMM1MxdFltKy9mdmw1 -S1NFaWt1THBiQ3drS3AKcUtpUUwxKyt5THg1ODd5T0Y3WTNiOTdJZ2dVTFpOS2tTZkxwMHljNWVm -S2tORFkyaW9qSXBVdVhaT1RJa1pLYm15dloyZGxTVjFmbgpjZHJlaTdyNWFRd0p0WjJLaWdvTkJB -SzZmLzkrYld0cjYzQ3V1cnBhQncwYXBHdlhyZzFyVGErRXl2UDE2MWZOeTh2VG5UdDNkamkrCmE5 -Y3VIVHQyckJZWEYvZDRyVWp3K1BGanpjakkwQzFidHVqbno1ODduUHN6OTgrZlA3Vzh2RnlIRFJ1 -bU5UVTEvUjB6TEYzZDczRG4KRndtejh6NkJpMExkMElVTEYrclpzMmYvT1g3cjFpMU5TRWpRK2ZQ -bmg3Mm1WMExsS1NvcTBoVXJWblI2TGkwdFRjdkx5M3U4bHRlYQptNXMxTXpOVER4OCszT241em5K -ZnZYcFZodzBicHJXMXRYMGR6NnlyK3gzdS9DSmhkdDRuY0ZGbk4vVEhqeDg2YytiTWY0NDNORFRv -CjhPSERkY3FVS2ZydDI3ZXcxdlJTWjNsYVdsclU3L2ZyNWN1WE8zMVBUazZPUG52MnJFZHJSWUxT -MGxKZHMyWk55UE9oY2g4OWVsU3oKczdQN0tsYXZoY3B0bVY4a3pDN21mK2JSM053c1pXVmxIWTU5 -K1BCQjVzeVpJME9HREpFelo4NUlmSHk4UituY2NmMzZkV2x0YlpYSApqeDkzZW43NjlPbVNrWkhS -ejZsc1BuMzZKRlZWVmJKaHc0YXczN3RzMlRKNTh1U0ozTHQzcncrUzlaMm9uWi9YN2VXbW5tem4r -L2Z2Ck9uMzZkRTFKU2RINitucFgxdXhQbmVWNTkrNmQrbncrRFFRQ3VuNzllcjErL2JxMnRyYWEx -dkxhb1VPSHRMQ3dzTXRydXNxOWRldFcKWGJWcWxkdXhYQkVxdDJWK2tUQTc3eE80cUxzYit1dlhM -eTB1THRaQUlLQlhyMTUxWmMzK0ZpclAzcjE3TlJBSXFPTTQ2amlPRGhreQpSRmV2WHEwdExTMWhy -K1dsZ29JQ1BYbnlaSmZYZEpYN3dZTUhtcG1aNlhZc1YzU1ZPOXo1UmNMc3ZFL2dvdTV1Nk9iTm05 -VnhIRDErCi9MaHJhL2EzcnZJOGZQaFF0MjNicHRuWjJlcjMrOVZ4SEMwcUtqS3Q1WlhzN094dWk3 -MnIzTy9mdjlla3BDU1hVN21qdS9zZHp2d2kKWVhZaEU0aElWTDVDT1hMa2lEcU9vOXUzYis5dy9O -dTNiM3JseXBYUU55Z0M5dFRUUGY3cC92MzdtcDZlcm42L1gzLzgrQkUxZTR2MQpWMDkxTnordjl5 -RWlBK09UeC9uejU5WG44K255NWN2L09WZGVYcTdWMWRWaHIrbVZ2L1BzM3IwNzVMV2JOMjlXdjkr -djM3OS83OUZhCmtXREpraVdkZnEzOHA2NXkvL2ZmZnpwKy9IaTNZN21pczl6VytVWEM3R0wrMjVi -YTJscFp2SGl4ekp3NVU0NGVQZnJQK2NyS1NzbkoKeWZFZ1dlOTkvdnhacmwyN0Z2SjhNQmlVckt3 -c0NRUUMvUmVxbHhZdFdpU1ZsWlhtOTFkV1Zzcml4WXRkVE5SM29uNStYcmVYbS83ZQp6c3VYTHpV -dExVMG5USmlnd1dEd24rdXJxcW8wUHo4L3JEVzk5bWVlYytmT3FjL24wNGFHaG4rdWEyNXUxaEVq -UnVpMWE5ZDZ0RmFrCmFHMXQxVkdqUm1sZFhWM0lhMExsL3ZqeG95WW5KK3ZyMTYvN0tsNnYvSjI3 -Ti9PTGhObkY3Q2VQWURBb2MrYk1FVldWczJmUFNtSmkKNHU5elRVMU5zbnYzYmlrcEtaR0NnZ0lQ -VS9iT2xTdFhKRE16VXpadDJpVDE5ZlcvanpjMk5rcEJRWUZzMnJSSlpzeVk0V0hDOFBsOApQbG01 -Y3FXVWxaVkplM3Q3V08vZHRXdVh6Sm8xUzlMUzB2b29uYnVpZlg0K3J3UDBsWFhyMXNuOSsvZGwx -S2hSc21USkVoRVIrZm56CnB6UTBORWd3R0JRUkViL2ZINW0vY05SRHpjM05jdnYyYmFtdHJaVzFh -OWRLUzB1THBLYW1Ta0pDZ3V6YnQwK21UcDNxZFVTVGpSczMKU2s1T2pwU1dsc3FCQXdkazBLQkIz -YjduNE1HRGN1clVLYmw1ODJZL0pIUkh0TStQditmaHdacTlFV3QvRXlLVWxwWVdLU3dzbEtGRApo -OHFPSFR0azRzU0p2OC85bWZ2NTgrZXlaODhldVh6NXNwdy9mMTdHakJualZlUnV4ZHJzWXZheEJk -RXRLU2xKTGx5NElGT25UcFc1CmMrZkt0R25UNU5peFkzTHAwaVVSRVRseDRvVGs1K2RMVmxhVytQ -MSt1WEhqUmtRWFJ5emlrNGNIYS9aR3JQM3YxUk50YlcxeTVzd1oKT1gzNnRMeDkrMVpxYW1wa3dZ -SUZrcGVYSjB1WExwWEJnd2Q3SGJGSFltMTJsSWNIYS9aR3JQMERIRWhpYlhZOHRnQXdpYmx2V3h6 -SApjWFc5NU9Sa1Y5ZHpnMXQ3ak1TOXhicFltbDFNUGJZQTZEODh0Z0F3b1R3QW1GQWVBRXdvRHdB -bWxBY0FFOG9EZ0FubEFjQ0U4Z0JnClFua0FNS0U4QUpoUUhnQk1LQThBSnBRSEFCUEtBNEFKNVFI -QWhQSUFZRUo1QURDaFBBQ1lVQjRBVENnUEFDYVVCd0FUeWdPQUNlVUIKd0lUeUFHQkNlUUF3b1R3 -QW1GQWVBRXdvRHdBbWxBY0FFOG9EZ0FubEFjQ0U4Z0JnUW5rQU1LRThBSmo4RHdBb24zcHVmNG1n -QUFBQQpBRWxGVGtTdVFtQ0MK - - - - - - <h2>Example 2</h2> - - - Create a controlled-Z gate - - - CZ01 = CGate(0, Z(1)); CZ01 - - python - 6 - 0 - - - pyout - C ⎛Z ⎞ - 0⎝ 1⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURrQUFBQVlDQVlBQUFCQTZGVVdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBMUpKUkVGVQpXSVh0MkZ1SVZXVVV3UEhmTk9NTVhaalIwcHA1cUxCb3hxZ0gw -NHJJUUVub01rUVFYWVRvWXNKa1JCRkVwQlVSQlltOUdkUkRQaVF5ClVFUXZSWlFpaEQ1MEU4RXVV -RVpCV2c5Tzl3dFptV1Qxc1BiT2MvYnN2YzkzenB5SEh1WVArMkYvYTUyMTl0cmZXdXRiK3pDTFVk -eVAKbC9FMmR1QUZMRVFQdG1LNEMzNG04RTkyL1lyM3NUMjczc3pXZjhaZ0YzejlSeS9XNHlEdXhq -a05zdE94QzF2d2FSczI1K0syQ3RucgorQUtYbHNpMjRnaFcxdGkrcjQzbkFHZmdYUnpBb2dxZEpl -THRQcE5vY3hDVEdDcVJuWUQ5RmJMSE16K3JXOWkvQms4bVBvcys3TTZjCmpyVFEvUWJYSmRyZGdz -VVZzbXZ4VU1uNmFoSGdFNGsrWHNLYUZNVU5tZUZiRW5UZkVpbllpc1Y0clVaK3ZlbTd1RktrNkdT -Qy9aeGgKZklJNWRVb1g0Q2creG5FSlJsY2xPbjlScEZNcTU0c21zeFA5YmZ3T051SEdPb1ZIeEM1 -T3RHbTRqajU4TDcwcmp1QXI3TU84RHZ6ZApKYnB4SmR0RWtFczdNRjdGTW55WXFIc1M5b3BhWDlp -aHZ4VTRWS2Z3bzBqWDR4T01qU1k2dlJWdkpPajFabnEvNGFLQzdFS2NsdWh2ClJHelUvTWJGeHRy -N1V0VENIeTBNTGNBZGlVNkhNNXV0ZUJaWDRtYnNLY2pXNFpkRWYxTmltRGl6Y2JFeHlGMDRXWnlU -ZGR3akNqeG4KbVJnY0hzRERCZDErVVpkMXJNTmFNVm05V3BDZExTYXJ3OW45SER5UHMycnNIUktw -WDhvbG1iSDFOUWJXWmxmT0FqSDE5R2IzbTdLSAp6WmxRWDVPcjhEZWVMcEgxaWJQdjl1eCtqVGd6 -LzFJOXBBeUtkRDIzeHFlcjhEdnUxVnliWTlpSThZTCtZOWpjY0grNU9LdHl4ak43ClBTVytMaE12 -OVJYTkdkV1hCYkZOQkhSSzRYZUhWUWQ1c1FpeTZmd3VwdEoyTEJkdmVJZW96eWw4anVmRUpOVElJ -czN6NjBIeEZnZncKcHhnUCswV05IR2pRNjgrQ0d4Q2Q5SjFzZlVpa2FINmc3OFFQRlFHVk1ZYVBG -UHBBV2Izc01iMzRxNWd2ZGlvbmIxcEQrQlkvaVRGeApUSE9RUnhRNllKZklNNkNKbE1tbWp2MGlQ -WEpPZE95ektHY3picGlobnhUNmNMVm9URTNNTk1pOU9MWGhmaGhmaTUzS21SUUR4dklaCittckZn -M2dQbjNYYjhCTE5xZjBVSGkzUlc1cnBEWFRCWjFuakdjVUhLa3FndDJ5eERhWXl3MWZnUExHckd6 -VHZaSzYzRHplSmZ4ZzYKWVZ4OGZxMFE1K0JjeDQ2bmpiaFRqSVRUS0d2dG5kQWpPbUl4dUNKNTEr -MkVlWm96NFNpKzY0TGRXV2I1UC9Fdk4yS243REZxRG5vQQpBQUFBU1VWT1JLNUNZSUk9Cg== - - $$C_{0}{\left(Z_{1}\right)}$$ - 6 - - - - - Decompose and plot it - - - CZ01.decompose() - - python - 7 - 0 - - - pyout - H ⋅CNOT ⋅H - 1 0,1 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUh3QUFBQWNDQVlBQUFDajZ0dmtBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCV1pKUkVGVQphSUh0bW10c0ZVVVV4MzlGb0FnK1FLaVNxdHhHVUxDQXFFQWsx -bUlOUGo2SUdKR0VEeEJCRVIvMWtXQWtCbVBVcUlTWUdLTDRxQXBHCkhzSFkrUG9naWkyb0JWRlJh -MUt4S1BWRjFFZ2dKR0FWQ2VEenczL1c3dDA3czd1M2R5ODBkSDlmNXQ0NXMyZG01OHljT1dmdWha -UVUKNEExZ0cvQXY4Q2ZRQWl3MXNnendQdkNMa2Y4R2ZBYmNsb2YrWTRHWndOUEFScUFCYUFLbUdm -bGx3SHhmK3llQnpjQmZ3Ti9BT1JhZAphNEg5Wmt4N2djV1dOaU9BNTRCWGdHWEEyMEE5TU5veHps -bEczMEdnR1hnSCtOclUvUXFzTjJQL0hQZ0grQ2JrblR0THNXM3hQeE9NCmtpY2M4Z1ZHUHIwVGV0 -dlFvR3VBM3FhK0QvQVk4RGl3RDdnbzhOd2c0QXZUNTdNTzNiUFJCSlVFNm5zQWRlYjU0R0taZ2hi -S2RSWjkKRGNEOXZqRkN4eUs0M2RMM3U0NXhGVXF4YkpIRmZLUGtDb2U4QWUyMkFYbm9YQWdjQXU1 -MHlJOUJLL1Izb0ZkQWRnMHdBOWhxNU1kYgpucjhMR0J1b0swR0xheTFhVkRZZVJidWozRmMzRUht -Q0lDK2dlUmtlcUIrQ0ZsVXhLSVl0Y2xpRGpOUFBJdXVGZG1GTEh2cHEwYUJuClJyUmJDTHhscVY4 -TW5BYmNZZlRVV3Rxc1JJdkd6eExrOGdhRjlEbko2SHpBVnpjWCt3Ui9DK3kwMUk4RjVvWDBVUWhK -MnlLSEh1Z2MKL05BaHZ4Qk4wSktZK2tZaXQ5a1VvKzBjN0JQbjdiWVRnVCtBTHdQeUVtQlZvTzVo -TTg2ckkvck1tSGF2K2VwbW9YbndVMjdhMlhiKwpTR0I4UkQrZElWRmJCRi9JWXd6UUg3ZUJMakhs -aGppZEFNdFJvSFpmakxhdDZCejJjd0xRYmo2M0F5OEJvOGcrNTBjamQrOVJEdHlECmR2ZWFpRDZI -bXJLdnIyNEZDc1Q4VERUbFJvdU9yZWc0U3BwRWJkSFRVZSs5Mk9Ya25va0E0MHhwZS9FZ3A1ajJu -d0tiWXJUL3hGSlgKUmZZS3J3TnVCRzcxNmJ3NE1KNWE1TzVXb2ZNdGpNcVF2djE0OHhKM29TZEJr -clp3OGpwS2dZNnp5SG9pbC9wVlRGM1hJcGRUU0VDegppSTVkNkxFWnBVdGw1dnNLc2dPOURhYmZL -MlBvcnljOEtQSm9CZmFRbXdVVWt5UnRZWFhwSlVBMVNtSDJXZVRuSTljWGQwVmRZTXJXCkdHM0xz -RWVhWndEZkIrcnFVTG8weDN6dmpmSlVqMkdtM0I3Ulp3YVlDdXdDUGdwcE54QjVnazFvY1J3T2ty -YUYxZUNWS0tMOXdQR00KZDI3R2RXcy9tbkpIakxiM2ttMDAwTm0vMzlLMkh1MjJtOUdZMndMeVhh -WnNKNXg1YUtmTVJlbWVpMnBrZ0lKY1o1NGtiUXVyd2Iwegp3M1hlVnBuUzl1TFRVQzdzcDhtVTUw -V01wUkx0eHVCS25vRDliRDJBZ3NFSzVQS0Q0L0VtYVZKSW4rT1FvVjhFM293WVgxakFWZ2JjCkRk -eUNMbzRxSW5SNTJPYkwxbWRTdHJEeU1uSlpneDN5bmNCM2dicng2RWFxQlhna0lDdEIwZXNXc3FO -Z1A4T1I4VW90c2dlQnN4M1AKbllraTZVUElFL2laaU02K2VzZXpJNERkd0t2WXo4Y2d6Y2dEMkFM -ZDFjQms4M2tVU2hsZEdSQ0V6NWVmcEcyUlE2bFJFand2UGNhWQpBU3gzeUpjNU9obUFqUDRlY0tx -dnZqKzZQVnRFOXZXbHg4bkF6M1FFWmpiVzRUNTdaeUFqK1hkNVh4Ukl0cUVvUHc0WnRIaldXMlNu -Ckk2L2tYNncvb1B3NEN0ZDhRWkZzNGEzQ0RISUwyMUFhTlFTbFFkNXQxbFhBeDNTODhCUjBibFFS -ajczQXBlakhpbWRRaXJZU2VNakkKRnFCZDZsRnErdnNKM2E2MW9KemF4bE5vSWRsWWpZdzdGYm50 -cGNEenlPVk9Kanh6cUtEalI1MW1kSU5YamR4ckl3cVlBTTR5NzNEUQo5K3dPb284d0Y4VzJSYUtF -cmRpamxlbmtCb3pyVUFBYVJUSG5LM1NIcDNTZTdlU21hZjFRQnRIbFNBMWVPRnVBa3dKMWc5Rngx -T1ZJCkRWNDRCMUJnZWE3NTdtVU9qZWI3TUhKdkNZOFlycnYwZkJtS2dvY2FkTlczRy8yaUZPZXk1 -V2hnTmdvOEcxRnVmejJLNmtHLy9kZVEKL2NlTFlzNVhxTzZrN29UN29CVEx6eDZ5SSsvdVFDblow -VHBvam05QWY1endLT1o4cGJib0F0eDBwQWVRY3Zpb1JwY2tLZDJFcE9LawpsSlNVbEpTVWxHN01m -MjBkWGlkUDdJV25BQUFBQUVsRlRrU3VRbUNDCg== - - $$H_{1} CNOT_{0,1} H_{1}$$ - 7 - - - - - circuit_plot(CZ01.decompose(), nqubits=2) - python - 8 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x472d550&gt; - 8 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUIxTkpSRUZVZUp6dDNVMUlW -RzBid1BIclRJOVprMlZaazVDTEtLaVJYR2lVQzVueVl4T1ZWQWlSClVxc0tETVlXdFluMkxTSnBx -N1hLb1hiWklvSlNORFFzb3pBRE45R21ORnRVUXdiMm9WYk9YTS9xaWQ3WEdkUEp5ek56NXY4RE45 -N04KNlRyZS9wMDduY3BSMWM4aXNsSUFMQ2hIVmRYdElRQXY4cms5QU9CVnhBVVlJUzdBQ0hFQlJv -Z0xNRUpjZ0JIaUFvd1FGMkNFdUFBagp4QVVZSVM3QUNIRUJSb2dMTUVKY2dCSGlBb3dRRjJDRXVB -QWp4QVVZSVM3QUNIRUJSb2dMTUVKY2dCSGlBb3dRRjJDRXVBQWp4QVVZCjhVUmNCUVVGNGppTzJW -dEJRWUhidCtocFh0MC9UL3hiOFk3amlPVnRXRjgvMjNsMS8vNVo5TjhSQzA1VjVmSGp4eEtKUkdS -MGRGU20KcHFZa1B6OWZLaW9xNU9USms3SisvWHEzUjh4S25qZ1daaXRWbFVna0ltVmxaWExpeEFr -cExpNldzMmZQU2w5Zm54dy9mbHhldlhvbAp3V0JRamgwN0ppOWZ2blI3M095akhqRGJiZFRWMVds -eGNiRTZqcU01T1RsYVZsYW1qWTJOcXFvNk1qS2lOVFUxV2xSVXBJN2o2S3BWCnE3Uzh2RnhiV2xy -bWZIMjNURTlQYTJOam81YVdsdXI5Ky9jMUhvLy9XdnQ5M2srZlB1bWxTNWMwRUFob1QwK1BHNlAr -a1ZmM0wvMCsKYTFMd3B3L2VreWRQMUhFY1BYUG1UTUwxaXhjdnF1TTRldlBtelpTdXY5amk4Ymcy -TlRWcGRYVzFmdjc4ZWNaNm9ubDdlbnAwM2JwMQpPakF3c0JnanpvdFg5eThyam9WOWZYMGlJckov -Ly82RTY3Mjl2YkpreVJMWnMyZlBZbzZWc3M3T1R1bnU3cGJidDIvTHlwVnorMDlCCmEycHE1T3JW -cTlMUTBDRHhlTng0d29XVnNmdm5TdElMN0UrM1VWdGJxN201dVRveE1URmo3Y2VQSDdwaXhRcmR2 -bjE3eXRkZmJMVzEKdGRyVzFwWjBQZG04OFhoY2QrellvUjBkSFVhVHBjYXIrK2Y1WjY1NFBDNzkv -ZjFTWGw0dXk1Y3ZuN0UrTURBZ0V4TVRVbGxaNmNKMAo4emM4UEN4UG56NlYrdnI2ZVQvV2NSd0po -OFBTMHRKaU1KbU5UTjQvejhjMU5EUWs0K1BqVWwxZG5YQzl0N2RYUkVTcXFxb1djYXJVCjNicDFT -NDRjT1pMd0UyMHVHaG9hcEtlblI3NSsvYnJBazluSTVQM3ovTSs1L2p1dmQzVjF5Yk5uejJhc0R3 -d01pT000YWZtVkw1Rm8KTkNvYk4yNU0rZkYrdjEvV3JsMHJZMk5qa3BlWHQ0Q1QyY2pvL1V0Mlho -U1JqSHBMcHE2dVRuTnljdlRidDI4ejFxYW5wOVh2OTJ0SgpTY21zWjJlMzd5MGIzcnk0ZjBtZnVU -U0RYdTdqT0U3Qzk2dXFQSHo0VUVwTFM4WHY5ODlZSHh3Y2xNbkp5VGw5MVV1WGo4ZUZDeGZrCnk1 -Y3YwdHpjblBUWHpQWnluMWdzSnF0WHI1YlIwVkZaczJhTjFaano0dFg5OC9TZnVWNjhlQ0ZqWTJP -eWUvZnVoT3VQSGowU2tmUTgKcnllemI5OCthVzl2bDFnc2x0TGo3OTI3SnlVbEpXa1QxbXd5ZmY4 -OEhkZC81L1ZkdTNZbFhPL3Y3eGNSU2MvemVoSTdkKzZVUUNBZwpuWjJkS1QyK3RiVlZ3dUh3QWs5 -bEkrUDNiOWJEYW9aSWRodjE5ZlhxOC9uMHc0Y1BDZGNMQ3d0MXk1WXRLVi9mTFpGSVJDc3JLL1hu -Cno1OEoxNVBOT3pnNHFJRkFRQ2NuSnkzSG16ZXY3cDlubjdtK2YvOHVEeDQ4a00yYk55ZDhWZmpR -MEpCRW8xRUpoVUl1VFBkM2poNDkKS3JtNXVYTDY5T2s1djlwaWVIaFlEaDA2SkMwdExiSnMyVExq -Q2YrZUovYlBsYVFYMk8rMzhlYk5HNjJzck5STm16YXB6K2ZUcFV1WAphaWdVMGl0WHJxaXE2cDA3 -ZDdTaW9rSURnWUQ2ZkQ0dEtDalFxcW9xN2Uvdm45UDEwOFg0K0xpR1FpR3RyNi9YOSsvZi84L2E3 -L1BHCjQzSHQ3dTdXRFJzMmFHdHI2MktQT1NkZTNULytzbVFhWEQ5VlUxTlRjdTdjT2JseDQ0YnMz -YnRYVHAwNkpkdTJiWlBDd2tJWkdSbVIKdTNmdlNtdHJxOFJpTVdsdWJwWURCdzY0UFhKQ1h0MC80 -a3FENi8rdDhmRnh1WDc5dXJTMXRjbmJ0Mi9sNDhlUFVsUlVKQlVWRlJJTwpoNlc2dWpycHQ3dlRn -VmYzajdqUzRQb0xqWGtYOS9ySmVQWWJHb0RiUFBQYVFzdGpUeWI4d0RYVGVYSC9QQkZYSmgyQk1K -Tlg5NDlqCklXQ0V1QUFqeEFVWUlTN0FDSEVCUm9nTE1FSmNnQkhpQW93UUYyQ0V1QUFqeEFVWUlT -N0FDSEVCUm9nTE1FSmNnQkhpQW93UUYyQ0UKdUFBanhBVVlJUzdBQ0hFQlJvZ0xNRUpjZ0JIaUFv -d1FGMkNFdUFBanhBVVlJUzdBQ0hFQlJvZ0xNRUpjZ0JIaUFvd1FGMkNFdUFBagp4QVVZSVM3QUNI -RUJSb2dMTUVKY2dCSGk4cEJZTENaZFhWMGlJdkw2OVd1WHB3RnhlY1M3ZCs5azY5YXRjdmp3WVJF -UktTa3BrZlBuCno3czhWWFp6VkZYZEhnSi83K0RCZzlMUjBTSFQwOU8vM3VmMys2V3JxMHRDb1pD -TGsyVXZucms4NHYvREVoR1puSnlVOXZaMmx5WkMKMG1jdXgzRVdleGJBVS81SnRzQnBNYk0wTlRY -SnRXdlhaR3BxNnRmNy9INi9QSC8rWElMQm9JdVRaUytPaFI1eCtmSmxxYTJ0bGR6YwpYTW5MeTVQ -OC9IeUpSQ0tFNVNLK29lRXgwV2hVb3RHb0JJTkJ5Y25KY1h1Y3JFWmNnQkdPaFlBUjRnS01FQmRn -aExnQUk4UUZHQ0V1CndBaHhBVWFJQ3pCQ1hJQVI0Z0tNRUJkZ2hMZ0FJOFFGR0NFdXdBaHhBVWFJ -Q3pCQ1hJQVI0Z0tNRUJkZ2hMZ0FJOFFGR0NFdXdBaHgKQVVhSUN6QkNYSUFSNGdLTUVCZGdoTGdB -SThRRkdDRXV3QWh4QVVhSUN6QkNYSUFSNGdLTUVCZGdoTGdBSThRRkdDRXV3QWh4QVVhSQpDekJD -WElBUjRnS00vQXZuK01DMi9PUDM1Z0FBQUFCSlJVNUVya0pnZ2c9PQo= - - - - - - <h2>Example 3</h2> - - - Create a SWAP gate - - - SWAP10 = SWAP(1, 0); SWAP10 - - python - 9 - 0 - - - pyout - SWAP - 1,0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUU4QUFBQWNDQVlBQUFBZ0x1TGZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCRGRKUkVGVQphSUh0Mkh1SVYxVVFCL0NQN3VyNjNEUnJlLzBSdUVUMlFIcFEw -c08wc2toSndoSktvaWlWSUFpRHBEQXF3WXdzaWg1WTlLU283RVZHClVWRXJiaVhhd3lpa0NJMG9r -dktQeU5JMHJWeGJzei9tL05pNzEvdjcvVzQrU25TL2NEbm56Snd6TTJmdXVUTnpMajNZSTJqRURD -ekEKUzNnZDB6QVE3NkFkSGRpT1Rpekg0TFIyRnI1UHZPMzRIRmRtWkYrRnRZbTNHWGVXc09jMVRL -M0I3NE5GK0RiSjNZREZhTU15ZkllMwpjR0lKWGJ1RS9rblJyZWlkb2QrTXI0VXo0ZTVrNkpNRk1s -b1Q3OVVxT2s3Rnh4aFV3cDZMazZ6WkplWmVtT1plbjZQM3dlUFlnbk5LCnlLbUwzbFhveitKSDNJ -Ry9NL1I1NG5TMXAvSGExRzRwa05HVTJyNVZkRnlVbnMxMWJCeUkyMVAvMERwellYUnEyM1AwdnpB -MzJUVzkKaEp5NktITGVBV0pUcjFSWjh5WGVUZjExTldUUFNPMndBdDd4K0VtWDgydmhOanlRK21X -Y053YnJzYXFBTnlDMWg1V1FVeGRGemp0VApIUEdqcXF4Wmh0V3B2NzdLbkhINEJwc1VPKzlhUEZM -Q3ZtUEU1LytNK0JUck9XOGdUc2FIYVg0ZW8xSzdvSVR1bmNKQklnRjA0RjVkCnppekNHY0xJaHpL -MEpoRXYrd29uLzV4Yk13a1RTdHJ5Tm9hbi9qb1I5R3ZodkdUUFRRVzhCbnlWYkJwY3dOOXR1RkZY -SnExa3hJY3gKSkRkdmhCMmROeHNUVS84ejhTSjZwWEVUNXBlMDRYSVJveXBZaFQvcXJKbWI3RGs5 -Uno5Q1ZBc0xSVmphNHhpQk9WaUtyY21vaGJrNQpMYm83cnhWdlpQaUxFbjlvR3MvRTBTVjBOK01U -WFRFSzNrdXlhbTErS2JhSjdQOW9lcDVPK3hoWFF1OGV3WEg0UVdTc2ZobDZvKzdPCmV6UE5yZUNG -eEc4VlFYcE9TWDBQWW5LTzltS1NWYzM1L1VUVy83U2tqbDFHUG1ITXFqSnZKWjRYeHZmSzBEdXhN -ZlVuaThKNFpZYi8KUzJxSDRRYmNWOEttRXpCRmxCTnRtZWUweEsrV05FYUpzTENraEk3ZGdzWk1m -eERHNHE0cWM1dXhBbi9tNk90RUFKNk5zd3Q0TUY0VQoxeHZWUmkvaDRERWl1R2N4VXlTd2FzNDdL -N1ZMNnVqb2c4ZEVEVnN2QVJIaGE1S29ISTRVKzh6N3dIaHhrbG9MQkxTSXVpenZIT0l6CjZkQlYx -MlZ4blRpdHkxVXZ5TE9ZSnBKVkVTNVZmSE9vb0YzWTMxeEQvbFJSY0hjS3A5UkRnMGhVaDZUeGRE -eFZOUEVlVVpzdHhMRVoKK25DeCtabFZGTFFsQlkwRnZDbGl3Nk1MZUhsY0lPSnFReFgrdVVuV3ZB -SmVNMzRYMmIwTXRpam52RXZ3VVdiY0lrN2RnUHpFNTNDZwpPRjJMeFlscUV4ZnlmT3JQNGdtY1g0 -VTNKc210aFpQRVM2dVVSY3QxZnhIOThiNElBZHZ4V3hxUFRNOHlyRW04VGZoQWxEbTFVTlo1CnQ5 -anhwdFVwQ3ZIOUZtV2RkNys0M1dTeFNmcXhVQ1lPN2M5WWJjZHIzZ0RwV3RyanZOcFlJZUpjQlMy -aUlsanovNWl6ZDZEb3N4MkoKdzNPMFFlTFhYQ1ZCWElHWEs4eHFtVzFmeFFUeEYzdXNjTXdRZkpG -NDgzR1o3Z2x1cXpobDE0Z2IwaW5pbHJUaFA3RjJMOE5RVVdSWApub016dkFaY1hXTnRVNTVRVkp2 -dHkvaTFCbStiMnY3bzJNMjI3Rk9ZS0s1ZlBkZ0o3RzlmWVE5NjBJTWUvQ3Y4QTk3RzZZNFE3TUxv -CkFBQUFBRWxGVGtTdVFtQ0MK - - $$SWAP_{1,0}$$ - 9 - - - - - Decompose and plot it - - - SWAP10.decompose() - python - 10 - 0 - - - pyout - CNOT ⋅CNOT ⋅CNOT - 1,0 0,1 1,0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9RQUFBQWNDQVlBQUFCeGxoUDVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCVGhKUkVGVQplSnp0bTN1SVZVVWN4ejkzdDAxdGEwUEQyaDd1WnFRR1dXUmdT -dlorSzBRRVlVUVBlbUNSRWowa2tMVEFpRW9JQXd1V2lwRE5zcVJhCmdnaEN4WTBzTFhBVkNyUFdq -YzJnTXJRbnZTaHMrK1AzdTd0elorZWNNL2VlcytuZW1ROWN6ajN6KzgzcmUrYk0vYzNjY3lBU2lZ -d2EKcGdJUEFLOERId0xyZ2JYQVpLQUVkQUt0Nm5zUzBBM3NCZ2FBYlk3eVpnS2ZxMzBBNkFNdXRu -d2FnT3VBTG1DTmZ0WURqd05IV0w3ZApXczUrWUpQNi9hUnB2Y0M3bXI1SDB4NnFxdmZWRWJYeXB4 -cXRJT3BGSTdBRStCWllDRXd4YkpPQTk0RFZpQUEyaTRGUHRKR3pFOHJ2CkJxNTFwSjhDN0FRNmdH -WWp2UW01WUwxYVA4QUp3RDVnbHFQc2Y0RHhSdHBod0ViZzVvVDI1Q0ZxNVU4ZXJTQTh2UUJvQTdZ -Q1h3R24KSmZpY2pZanlyTU8yRnBpajlzNkUvSzg0MGlZQi9jQ3RDWG5HYVp1NjlQeGU0QnJMNTNE -Z0Q2VDlObzh3WE9DOFJLMzh5YXNWaEtVWApJSGY3eDBqamo4L3cvWjdoTTFFSldLZmZlNEEvZ1Ft -V3p3UmdsWlhXaXN4UXoyWFV1UWE1R08xYVQ2TmxMMStzRlk2OHoxQTVzK1VsCmF1VlBYcTBnRUww -YXJQTkhnWE9BaDRIdk12THVSbjdDVGFZallRRklhREFXdU0zeU9SLzR3RGh2UVg3eWp3VHV5Nml6 -VDQ5bkFlOEEKQnl6N2hYcDgzNUczQjFrREZFWFV5cCs4V2tGWWVnRXdReHV4aytFM3FvdnJIV21M -R0dwNE0vQXpJbkRKOEZsSjVZTDlRV1RtZWNLagp6cGZVMTFVM3lFTDdBSEMwUjFsNWlGcjVVNFJX -RUk1ZWd5elZCaTNJVVVZbk1uT1ZXYVZsWG02a3ZXcDhid0MrVnA5cEh1VnZVOStUCkhiWkc0RmRn -dTM5emF5WnE1VThSV2tFZ2Vwa3oxbmw2ekZQcFdPQXY0N3hEajNmcnNRWDR4YkMzSXd2dS9jQVhH -V1dQQjA0SDlpSUwKY0pzWndGRzRRNHFpaVZyNVU0UldFSWhlNWcwNUMvZ1grTXdqMzFSSDJoUWto -RERaaFd4bFh3MmNpRnljTFliOVZEMzJlOVM1RUxrbwpYUW4yQy9UNGZ3eXlxSlUvZWJXQ3NQUWFa -QWZ3ZzRmZlJOd3grUjNBRlk3MCtVZ29zQng0a3NxUTRFeTFiY2lvY3d3eWUvVWpNNVdMCnQ3U3Np -UmxsRlVIVXlwKzhXa0ZZZWczeXRGYmFsdUczSERqT2tmNGlzcHRsMDRSMCtCdmdUY3ZXZ094Ty9V -N2wrc0JtQlRMTFhwUmcKTHlHaGljOHMzQWE4NXVFM0Y5a1VXTXBRV0ZRbUJLM1MrdThpU2RlOFdz -SG8wQXVLR1Z1RHpFWmk5Q1VwQmQybEh4ZnJFdElCSGtNdQp5c3NPMi9OcW01dVFkekh5aCt6dEtl -VlAxekk2VW55YWdXWGFocjRVUDVBL3JqOWlhQWZ2RFdRMkxsUHZXbVgxM3lSTDE3eGF3YUd2ClY1 -RmpxNEtydElIM0lFOHZsSm1HaEFUekV2TGRDTHlkMG9nMlpNdjRUb2V0U2ZOdW9mS1AzblprMXZ3 -VVdYQ25zUXdSN2FZTVA0REwKeUJidEJlVHBpekszSU04eW10U3pWajc5dDBuVHRWYXRZSFRvVmFh -b3NWWEJUT0FwWUxNNmRtcWpKanQ4NXdGZk12UkE3dzRrZG5mUgpSZktpZlF4d1B4S2FyTlpQQi9K -ODRMaUVQQXVROWNGV0pPUVlRRUtYVGNnalZrbjRpTFlaV2JlWWVmWTUvT3BWSzkvK1kvbWs2VnFO -ClZqQzY5Q3BUNU5nS0JoL1JkZ0UzR09kemdMOUhyRVdISHJYMDMwZlhlaWYzMlBKNWNpSkUrcEZa -c1V3ejhPTkJhc3ZCSVBUK2p5U3AKMnNZYjBzMTI0RmpqdkJWNTZpTVVRdS8vU0pLcWJid2hoN2dV -MlFRQWVUUGhFc04ySmVtN2JQVkdWdjlOclNMWmVJOHQreFdUZXFhRQpQSkV4SDNudnJqd1o3VUhF -NmdGK1F3VHJSZDVPT0FNNEY5bkZXMGxscUZIUHBQWGYxaXBOMTFDSVk2dEdXcTFQaTJGclFyYWdU -UnFSCmQvbENKYW4vdGxacHVvWkNJV01ydE1HMk44VjJETVBmYWJQZmlRdU5wUDdiV3FYcEdncHhi -QlhNSXVLYTJwZW9WWFZFdldvZ3RHZ2gKRDFHcjZvaDZSU0tSU0NRU2lVUWlrVWlrY1A0RGNJbU5W -d2I2YnpNQUFBQUFTVVZPUks1Q1lJST0K - - $$CNOT_{1,0} CNOT_{0,1} CNOT_{1,0}$$ - 10 - - - - - circuit_plot(SWAP10.decompose(), nqubits=2) - python - 11 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x7f082c973650&gt; - 11 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNybEpSRUZVZUp6dDNXdG9V -L2NmeC9GUC9rNU1VN3ZXU3kvTzBWUkJXcEZONnh5dVExMTNZVk9xCmlBVzEwd2RqVHF3R0ZjY1FW -K2NGdGoxeGJHeXNVeXVsRjhXaVZrVXBvclcyVnFadTBMS3RtNjNWVGV2TWRKdXhyZGlzTmtyUzcv -K0IKSUhaTm9zbjZ6VEhKNXdWNWtuTU9mSC8rK2lZbkY5QWtJbDBBNGtCRUE4b2tJbUwwRUVTUjZI -OUdEMEFVcVJnWGtSTEdSYVNFY1JFcApZVnhFU2hnWGtSTEdSYVNFY1JFcFlWeEVTaGdYa1JMR1Jh -U0VjUkVwWVZ4RVNoZ1hrUkxHUmFTRWNSRXBZVnhFU2hnWGtSTEdSYVNFCmNSRXBZVnhFU2hnWGtS -TEdSYVNFY1JFcFlWeEVTaGdYa1JMR1JhU0VjUkVwZWNyb0FlaS9FeEY4OTkxM0tDOHZoOTF1aDh2 -bFFueDgKUExLeXN2RGVlKzhoS1NuSjZCR2pFbCs1d3BpSW9MeThISk1tVGNLU0pVdVFrWkdCOTk5 -L0g5OSsreTNlZmZkZFhMNThHZW5wNlZpOAplREV1WExoZzlMalJSeWdzdWQxdVdiWnNtVXljT0ZG -cWEydWx0N2Yzd2JHSHQ3V3pzMU8yYk5raWlZbUpjdkxrU1NOR2pWcjgvN25DCmtJaGcxYXBWYUds -cFFWVlZGZUxpK3Y3ZmhTYVRDZi9lMXZyNmVpeFlzQURIamgzRGxDbFRRamx1MU9KdFlSaXFycTdH -aVJNbmNQancKNFg1aCtmTHFxNitpcUtnSWVYbDU2TzN0Vlo2UWdDaU1xNnVyQytmT25ZUFQ2VFI2 -bEtCdDNib1ZCUVVGaUkrUEQraTYzTnhjSkNRawpvS2FtUm1reWZWZXZYc1hGaXhmN3ZUSS9rUXk5 -S1EyaDN0NWVXYjkrdlpqTlpvbUxpNU9ZbUJqWnRHbFRuL2NxNGFDdHJVMUdqaHdwCmQrN2M4WG1P -djIwdEtTbVIyYk5uYTR5bTZ2cjE2L0xDQ3k5SVRFeU14TWJHU21wcXF2end3dzlHaitWWDFNUzFl -L2R1aVkyTkZRQVAKSHJHeHNWSlpXV24wYUFINTdMUFB4R2F6K1QzSFgxemQzZDFpc1ZqRTZYUU85 -R2lxSmsrZUxJTUdEZXF6ZjhPR0RaT2VuaDZqUi9NcAphbTRMQ3dzTDBkM2QzZWU1N3U1dWZQMzEx -d1pORkJ5SHd3R3IxUnIwOVJhTEJTTkdqRUJIUjhjQVRxWHJ5cFVyYUcxdGhjZmo2Zk84CngrUEI4 -ZVBIRFpycTBYeCtXbWd5bVVJOUMxRkU4Zm5LSmZkdkdTUG1zV1hMRnNURXhQUlpvOFZpd1pkZmZt -bjRiSUU4UHY3NFk2eGQKdTlidk9mNzJ6KzEyWStqUW9lanM3RFI4TFkvNzhIZzhHRDE2ZEwrLzBa -aVlHSFIwZEJnK244OTlrQ2poY3JuazlkZGZmL0MrS3pZMgpWdDU2NnkyNWUvZXUwYU1GcExHeFVk -TFMwc1R0ZHZzOEIzNjJ0YXFxU3FaT25hb3htcXFHaGdaSlNFaVF1TGc0QVNCbXMxbjI3dDFyCjlG -aCtSVTFjSXZjL01XeG9hQkFBMHRqWWFQUTRRWHZ4eFJmbHlKRWpQby83aTJ2bXpKbXljK2RPamJI -VWRYZDN5OEdEQndXQXRMZTMKR3ozT0kwWGxMelM4L1lJaG5PemN1Uk9scGFXb3E2dkRVMC8xLysy -MXIvWDkrT09QbURsekp1eDJPOHhtY3loR1ZSRXUreGMxbnhaRwpra1dMRm1ISWtDRll1WExsWS8v -YTRzcVZLNWc3ZHk2MmJ0MGExbUdGRThZVmhnWVBIb3dEQnc2Z3Via1ppeFl0d28wYk4zeWVLeUtv -CnJhM0Z0R25Uc0g3OWVzeWZQeitFazBZM3hoV21ubjc2YWRUVzFpSXBLUWtaR1JsNCsrMjNjZXJV -S1RnY0RnRDNmeWEwYmRzMlBQZmMKYzFpMWFoV0tpb3F3WXNVS2c2ZU9MbnpQRlFGdTM3Nk5YYnQy -b2F5c0RILzg4UWZhMjlzeGV2Um9aR1Zsd1dheklUczdPNksrdHd5WAovV05jRVlqcmV6THd0cEJJ -Q2VNaVVzSzRpSlF3TGlJbGpJdElDZU1pVXNLNGlKUXdMaUlsakl0SUNlTWlVc0s0aUpRd0xpSWxq -SXRJCkNlTWlVc0s0aUpRd0xpSWxqSXRJQ2VNaVVzSzRpSlF3TGlJbGpJdElDZU1pVXNLNGlKUXdM -aUlsakl0SUNlTWlVc0s0aUpRd0xpSWwKakl0SUNlTWlVc0s0aUpRd0xpSWxqSXRJQ2VNaVVzSzRp -SlF3TGlJbGpJdElTVlRFZGZmdVhlelpzd2ZaMmRsSVRrNEdBS1NrcE9DMQoxMTdEdm4zN2NPL2VQ -WU1uSkgvc2RqczJiTmlBOVBSMEpDUWtBQURTMHRKZ3M5bHc3dHc1ZzZmekxhTGpFaEY4OGNVWHNG -cXRLQzB0CnhlclZxOUhVMUFRQStPbW5uN0JpeFFyczJMRURWcXNWWDMzMUZVVEU0SW5wWVgvOTlS -ZHljM09SbVprSnA5T0p2WHYzb3EydERRQlEKVTFPRGxKUVV6Sm8xQ3pObXpNRFBQLzlzOExSZVNJ -VHllRHl5Wk1rU21USmxpclMydHZZNTl1OWx0N1MwU0dabXB1VG41NHZINHdubAptQ29pWVZ0Ly9m -VlhzVnF0c25IalJ2bm5uMy82SEh0NGZmZnUzWk9Ta2hKSlRFeVV1cnE2VUkvcFYvanZnZzhmZlBD -QlRKOCt2ZC9HCmlIai80K3ZxNnBLc3JDejU4TU1QUXpHZXFuQ1A2OGFOR3pKMjdGZ3BLaXJ5ZXR6 -Yit1cnI2eVV4TVZHYW1wcTB4M3RzNGIwTFB2enkKeXk4eWF0UW82ZWpvOEhyYzF4L2Z6WnMzSlRr -NXVkOHJYYmdKOTdoV3Jsd3BxMWV2OW5uYzEvcUtpNHRseG93WldtTUZMQ0xmYzIzYgp0ZzNMbHkv -SDhPSERBN3B1NU1pUldMcDBLYlp2MzY0MG1TNlB4NE9hbWhvQWVQRGVKTnc0blU1VVZGUmc3ZHEx -QVYvN3pqdnY0TGZmCmZrTnpjN1BDWkVFd3V1NkJkdnYyYlVsSVNKRHIxNi83UE1mZnNxOWV2U3JE -aHcvM2VqdjVKUHZ6eno5bDdOaXhFaGNYSndERWJEYkwKdW5YcmpCNHJZTnUzYjVkNTgrYjVQY2Zm -L20zYXRFbHNOdHRBanhXVWlIdmxPblBtRENaUG5veG5ubmttcU90VFUxTXhZY0lFZlAvOQo5d004 -bWE3OC9Ielk3WFk0blU0QWdNdmxRbUZoSWM2ZVBXdndaSUdwcnE3R3dvVUxnNzQrTHk4UDFkWFZB -emhSOENJdXJsdTNiajM0CkxpdFlTVWxKNk96c0hLQ0pRdVBZc1dOd3U5MTludXZwNmNIKy9mc05t -aWc0LzNYL2twT1RuNWk5TTRsNC8zTEhaREtGZWhhaWlPTHoKbFV2dWY1SVlkbys2dWpwTW5UclY3 -em1QV2w5bVppWk9uejV0K0ZvQ2VkaHNOcGpONWo1N2FMRlljT0hDQmNObkMrU3hjT0ZDbEpTVQpC -TDEvRFEwTkdEOSt2T0hyRUpISXV5MmNObTBhN0hZN3pwOC9IOVQxVFUxTmFHOXZ4MHN2dlRUQWsr -bjYvUFBQa1pPVGd5RkRobURvCjBLR0lqNDlIZVhrNTB0UFRqUjR0SVBQbnowZFpXVm5RMTVlVmxX -SEJnZ1VET0ZId2ZONFdoclBObXplanM3TVRoWVdGWG8rYlRDYjQKV25aK2ZqNVNVMVB4MFVjZmFZ -Nm94dUZ3d09Gd0lEMDlIWU1IRHpaNm5JQzUzVzZrcGFYaDZOR2plUDc1NTcyZTQydi91cnE2a0ph -VwpodWJtNXFBLzBCcElFUm5YdFd2WE1ISGlSSnc5ZXhZWkdSbjlqdnZhbkphV0ZreWZQaDNuejU5 -SFNrcEtLRVlsTHo3NTVCTTBOamJpCjBLRkRHRFJvVUwvanZ2YXZvS0FBbHk5ZlJtVmxaU2pHZkRT -SlVLV2xwVEptekJocGEydnJkOHpic2k5ZHVpUldxMVYyNzk0ZGl2SEkKRDVmTEphKzg4b29zWDc1 -YzNHNTN2K1BlOXUrYmI3NlJNV1BHeU45Ly94MktFUjlMeE1ZbGN2OGZmTlNvVVZKUlVTRXVsK3ZC -OHc5dgpUazlQait6YXRVdFNVbEpreDQ0ZFJveEpYdHk2ZFV1eXM3Tmw5dXpaL1g0ditQRCsvZjc3 -NzJLejJXVGN1SEZ5NmRLbFVJL3BWMFRICkpTSlNXMXNyYjd6eGhpUWxKVWxCUVlGVVZWVUpBS21x -cXBKMTY5WkpZbUtpdlBubW0xSmZYMi8wcVBRdkxwZExQdjMwVTNuMjJXZmwKNVpkZmx1TGlZamwr -L0xnQWtJcUtDcGt6WjQ2TUdERkMxcXhaSXpkdjNqUjYzSDRpOGoyWE54Y3ZYa1J4Y1RGYVcxdHg5 -T2hSNU9UawpZUHo0OFZpMmJCbkdqUnRuOUhqa2g5dnR4cEVqUjFCWldRbUh3NEc2dWpyazV1WWlK -eWNIZVhsNXNGZ3NSby9vVmRURVJSUnFFZmM5CkY5R1RnbkVSS1dGY1JFb1lGNUVTeGtXa2hIRVJL -V0ZjUkVvWUY1RVN4a1draEhFUktXRmNSRW9ZRjVFU3hrV2toSEVSS1dGY1JFb1kKRjVFU3hrV2to -SEVSS1dGY1JFb1lGNUVTeGtXa2hIRVJLV0ZjUkVvWUY1RVN4a1draEhFUktXRmNSRW9ZRjVFU3hr -V2toSEVSS1dGYwpSRW9ZRjVFU3hrV2toSEVSS1dGY1JFb1lGNUVTeGtXazVQOENrR2JYaWgwNml3 -QUFBQUJKUlU1RXJrSmdnZz09Cg== - - - - - - <h2>All together now</h2> - - - gates = [CGate(1,Y(0)), CGate(0,Z(1)), SWAP(1, 0)] - python - 12 - 1 - - - - for g in gates: - dg = g.decompose() - display(Eq(g, dg)) - circuit_plot(g, nqubits=2) - circuit_plot(dg, nqubits=2) - python - 16 - 0 - - - display_data - C ⎛Y ⎞ = S ⋅CNOT ⋅S ⋅Z - 1⎝ 0⎠ 0 1,0 0 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5NQUFBQWNDQVlBQUFEN3VZcTRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDQzlKUkVGVQplSnp0bkhtc0ZkVWR4ei8zdmVjVFJCRnhBVGRjb0tMR0Jka2lv -czgxaWhhSk5rWU1Td1hYaWx1ck5aUmFVdmNGMTZqRUpSVTFiS1pvCkxKcFd4QzVVQlJWY1VJdTdn -bHFyYUlOMXhZcjQvT043Sm5mZXVYTm16cDE3N3NXVytTU1R4NTF6NWpmbmZ1Y3N2OS92ekFVS0Nn -b2EKd2k3QWVjQWNZQ0V3SDVnRjdBU1VnSHVBbmpuc25nZThETFNiNDUvQWxJUjZvNEh2VEowdmdi -dHozS3ZlOUFkdUFtWUM5NXUvV3dHagpnTk55Mk11aitWemdPYVRURjBBM3E3d3I4QXl3eHRUNUFE -Zzc0ZDVEZ0JuQWJHQ2F1ZmVkd0xaV3ZVdU5uYStBSjRGNXdEdm0zRXB6CjNhUEFTK2Jjbi95K2V0 -V0UwbjRTNWI3NEtkSnFuamtlcDZ4WlM1NUdOZ08vQXY0RlRBQitGQ3ZiSGxnQTNBVzhXb1hOYnNC -UHJYTnoKVFVOSHBGejNCK0JhWUlPRXNuT0FwaXJhRUpwaHdGS2dkK3pjdHNCZmdmOEN1MVpocTFi -Tmh3SXZJajEvN3FoemxUbHNOZ0wrQ1B3RgoyQzUydm9RRzlpZkFRYkh6cndQalRKc2pvZ0UyekxK -OUdYQzdvejIxRUZMN3A0RmxRRC9yZkRQd0VKcklCK1pwWkM4MDI2eElhVkIvCkpOd3RuamE3QXRP -QlRhM3p4eGs3TXh6WGpVTVAwOFhCd0kyZWJRaE5QMkExMHN2bU5MVGEraEpDODBsQUcvQVo3Z0Yz -SzNvV2NUb0IKZndhbTRwNlk1Z0p2bWJvRGdHc1M2dndkZGVMTzF2bERnUE1kZHZNU1V2c2VTSytO -RXNxbUFtdEpuK3lkdEtCUnVoellPcVB1U3VCWQpUN3QzVVRucVFRL25VK1NhZExISzJ0QVNuc1Uw -dEVJMW1pbkFJa2ZaRU9TTytSQks4M3ZSWUppS0J0MGhDWFZtV3A5YjBZcTBoT1NWClArSk1ZM01r -V3RuNldPVWJvczY5TU9IYWtjRFJLYmJ6RUVwN2dKT0FVeFBPL3hKOTU5eDk2d3BqWUl4SDNTZW85 -TTJUNkllV1NoZlQKekQxSHg4NzFScDNEeDBmdGptWVdlMGFzTjB0dys5Rjc0VCtiaGRDOEdjVTVB -SHNZZTNPc09qMkE2Nnh6YzFCTXVsdkdmWTh3Tmk5SApuYyttelpSZm1WQjJLQjFkeHhDRTBoNmsr -NGJXdWVPUUxybTlubjNRa3JZTXZ6aGtwS2ZkMmNEd2xQTEQ2QmlrZGdNZXdHK2dSbHdHCmpLK2lm -Z2h1Uk8xK0hoaExaWkR1UXlqTkJ3QVRZNThmUjhtRytFcDNQSEJNN1BNQnFQMS84N2p2QkZQM0Jr -ZjViMHo1a1I2MlFoQkMKZXhkRDBDcjdBRFhFNHhlaUJpWXRlWGxwQWY1TnBaOGVwd2tGM1d1QWJk -RGc2NTFTUDRreHlGVktZekFLV0tzNTdrMnh0eFB3TE9VcwpVTHU1NXFncTJoMUs4MStnVGhBeHl0 -aWRIRHQzTTdCNTdQTjlwczZKSHZadk1YVlBjSlRQQjc0bC9UbUhKSVQyU2ZRQlBnWVdreHhECmVm -T3dhZFNBR2hzVVp5andna2U5NjgyOWx5R1hvVm9Hb29lWkszVlpBeTFvSU44RHZJZSt3emRveGZF -aGxPWXo2Qmp6dEFJZkFlOVMKenJqTnRxNVphZTd0TTNFdE5YVjNTQ2hyQVQ1SDZlUkdVcXYyTmxz -QWI2RFl0VWV0alZ1RlhBNmYyR01YVDV0ajhkdGpHSUhFK0xXbgpYWnROelBVNzVydytCTTNBMVpS -akN4OUNhRjRpZVFXOTByVGxHTFFpeGJPQWtWN2ZrcDU0QU1VODdXZ2xTR0t3S2I4K3cwNDl5YU45 -Cm5FNG9lYktLeW16cWdjREdQa2JpUHVFN3dIK1F2NWpHbHZqSEp6Mk56U3o2bTc5NU4vYytSd0Zw -MHN3Wm12MVF2R0d6RnUyMVJCdWoKUG9UUWZIZTBBVzV6T3dxaXowRHRmU0pXOWhYUzdFczBvTks0 -QUtXOFhlNWc1RWs4bG1FbkJDRzFqeWloYlp1QktGTnFieXVjajNUSwpKTzRXTFVDYmZiMlFlK0Rp -TENxekhMMVF1dEwycVZ2eGM3M2FVS2Q2TWFGc2E3VENmWVptalNrb3hyTDVndlFaWkJEYVo2bUcx -K2lZClpRU2xlVjJEdmpPYTZhT09tOVgyQmVUWFBLS041STY4QXUzZ0g0a0d3ODlpWld2UnZ0YmhT -SmZGRHRzL1FabThpY0EvVXU3ZmpwSWUKYWJqNlNKd3N2VUpxSHpFRlplL0dvTDJ5T0lPQUR5a1BV -RitiN0F0OGpYYmhYWnh1am9ndUtKTXpBM2d6b2Y2cFpNZE1HNkNaMHBVKwpuMHQ1OTMxZmtoTU5y -V2hXR3BSeHJ4QThqZnUxcGt2UVd3UWw4em1yN1hrMHQ3a2J1U2xKREVjZEllblpuR1RLTG5aY2V5 -aGFNVy9BCm5kVnFRcTdSU3ludHkrb2pjYkwwQ3FrOWxMT1VreFBLT2dHUEFEK3VvbjBkR0lZNjl0 -bDA5T1A3b3MwNlY3YmtNSktGT3NyWUt5V1UKUlVRcDJva0paWDNSdzRxQzZCSUtuUGV5NnUxdWJJ -VGV6N0RwaW1iNWw5R3NIYTJFSlpSUmV6N1dCdCsyNTlVY1lFK2t1eXZ1YVVJcgoxRFJIK2NYQSsw -aS9pTTJBazFFZ25yYWxBZXBZN2NCdEdmWEEzVWNpc3ZRS3JmMXc1T0xhMnJRaVhSY2lieWVhcURK -dDJpN1lQQlJ3CmpVVHB6dFVvRm5rRCtlRExFMlZ3ODZScDNBN29vY1laaTl5WGFEZDlBbklweHFO -WUFyU1Vya1J1Q1pSZk9OeUhqaTVoWCtCdHFudU4KSkEvN29aM3hPMUdnT3duRkhtdlFSdUlRdE5K -VTAvWThtdThJUElnR1FUUHdDcHI5N1VURWQ4aTFmZC94Zlg2TFhObHowY2JsR2pRdwpGNXZ2K29G -RGc0dFFKNHN5WjZQUXh1L1hLTGI2MEhHL05MTDBDcWw5ZDZSVk03QTM4SlNwMXgzWW1mS0FtVk9G -emNSNFpvazVRdkFKCldncjdVam1ZcHBzampTM1FyQjFuTlpYditPMkswc3oxSm5xVEdEUWJwdUhi -ZHFoZTh4VlVybkF1cnM0b24yVU9YeGFoV0NzMFdYcUYKMUg0Vm5obTZLbXcyNUkzck8xQ0FsNGZs -VkdabnVpQXhJcHBRYXYxM09lOVJMM3phWGxBbXBGNzEwRDdUWmlNRzAzUzBLWGxnam11ZgpRMm5o -T0Qzb21QazZDN2xFUzNPMXJuNzR0TDJnVEVpOTZxRjl3NTVuVm5BNUFMa3g5Z3VGUHJ4SytiYzlr -WDhhVFFLOVVDWnBteHgyCkcwRmEyOWMzWEgxa0lIS2hJS3hlOWRDK3JzK3poQklIOXlOL2NqTHUx -NEgySnpsamw4VWd0THFOUXo4dkdCd3JtNHJlMC9xaGt0YjIKOVlXc1BqSWYrTDM1ZDBpOTZxRjkz -WjluVCt0SWU5a3h6OHFVZG0wdDlockovMG83NjBWYUgybEJuVE5PU0wzcW9mMzYvandMZnFBMApB -YWVzNjBZVUZQdy9jRHo2VDFBS0NncHFwTkUvbXlrb0tDZ29LQ2dvS0Nnb0tDaFlCM3dQaGh0a2J0 -QVNBTWNBQUFBQVNVVk9SSzVDCllJST0K - - $$C_{1}{\left(Y_{0}\right)} = S_{0} CNOT_{1,0} S_{0} Z_{0}$$ - - - display_data - C ⎛Z ⎞ = H ⋅CNOT ⋅H - 0⎝ 1⎠ 1 0,1 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU1rQUFBQWNDQVlBQUFETE5adVpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCMjFKUkVGVQplSnp0bTJsc0ZWVVVnRDlvS2F1VktpQWxJcHNXaUlRZ0FnR3Fv -WUNJVmdPaXNzUUlOa1JFUlNVYVVBU0ZvR0ZKd0lCSUlxTFNZSldtCjFrUVNnWXFWUlJaWmxCSndR -MFZSUVJEYzZnb3Fpei9PbmI3M3BuZG03cnczVTBxWUwzay8zcHo3emwzT25YdlBPZmMraUlpSVNJ -a2MKNEJHZ0ZOZ0t2QU9zQU5vQmRZRGxRTXNBNmhrSG5GR2ZQNERkd052cXMwNDlyd1F5QTZncmFF -WWhZM01jYWVjaDliMjdrczhHUGlEVwp2MzFJbitvblVaY2ZlL1FETmdIZnEzcGYwdWk3QXppbzVD -ZUJ2Y0JsdGpJTmdBbkFTbUFaVUFLc0JSNEM2c2FWU3dPT0VCdURjbUE5CmNFSTkyNFhZOHozZ21I -bzJ4TzhBZUZDVHRpQU5tQUljQnU0SHJvaVR0UVkyQW9XcUVsT2FBbU1jWkt1QnI0RytHdGx5NEY5 -Z29JdnUKaVQ3YUVSWmJnTCtCQ3pXeVJzQi93TTRrZGFkaWowTGdVOVcyTEkwOEF4bjdLeld5ZnNC -M3dDVFZCb3RNWk5KdkpEYkJCcW42MjlsMApIRlA2NDErb0pzQTN3RldhT29NZ1RGc0FzcEpzUXpy -UnlhRk1kK1JOWEd5b014TW93cm5SQnh4a00xVTlCUjc2YndabUdiWWxEQm9nCksyYTVnM3dRMG8r -bms5Q2RxajFLZ1h1VS9HR052Q0g2WGFZUE1zRjdPOVRaR3BsczA5WDNGMGg4ZVFFNnEzcGYxUHkr -Qkdqc29Ec1YKd3JRRkFPbkFEbVRTWm51VVBRb01NOVJiQ0hSemtBMEJIdGM4TDBBNjg1UmhIU1hB -V01PeVFaT0h0SFdxZzN5MmtsL25VMitxOW1nRAp6RWNtNDIvQTU0aGJGazkvNEc3YnMrNkllM3Vm -UjUwZkFiK3FkaFpyNU9PUmZvL1d5RjcxMEowc2VZUmppMm9LN2pRb3V3VnhvYnpvCkJyemxJcitO -NnJ2SVFNVEZLakxRYjlFU2NTdnErZmhOVUV4SHhxMlBnL3g5cEQ5K1Y4NVU3VEdhbU4rL1dPbXl1 -NjB6a0ZqSElnZjQKQ2RoZ1VPZWJTbWRyOUpOdWhaSzMwY2dLRFBRblExaTJBTVEvUEFWOFFxTC82 -TVJJUTczRmlEdGtTaGRrRmR1QStNdCtXQWdNOS9tYgpJRmdIL0ltc3FIWWFJMjdKTnA4Nmc3REhF -bUp4U0JkazhyeGhLN1BDOXYwMVZjN0V2bnRWMlk0TzhvUEF0d1o2Z2lSd1c4UXJ5a2VNCnNSQTRi -ZkRiRWtQOWc1QnQxNFJzWUEyU0pia1ZlZVA5c0ErNEYvSERuYmdXZU02bjNyMDRKeDNxSVg3N2NX -Q1ZSdDRNR1lkTlB1c00Kd2g0WEllNFF3TWZBWm1BbzBBcEpBbVNRT01iWnlDSlRpV1N6M0VoRGRw -MUs0QXVOdkQxd0tmNjhnVlFKeXhaVmxDR3J3dFhKS3RDUQpDK3d4TE5zRXFFQjhhM3VHeEpROFpC -V3BTZm9pNC9ha2c5eHltZko5NmszVkhwY0FpMnpQUmltZFZyQ2RDendRSngrbTVFNUJieng5ClZO -a3lCM21Ca3R2am5UQUp5eFpWL0lKczd3ME55dVo0RndIRUoxNWpVQzVObGZzTDZHbVQ5VUFNYmtJ -Mk1nak5ETXNId1JSVlozOEgKK1Naa1hQMmU4YVJxaitIQTdiWm5HY2dpZEFnWjg2bEExemo1WktR -dlN3M3FMRlZseHpuSWx5bTU2VndKZ3JCc1VjVnU0R2VEY3MyQgpPWVk2SjFQZDU5V3hCR244VUky -c0ZFbnJtZkk3d2U2R1hwUWhMa3NqalN3RDJmcDNKYUUzVlhzc0FscG9ubHVyNlRERU52SFpyakZL -Ck5zK2p6ZzZJdmQ2bGVyYk1Zai9pTnRja1lkbWlpZ1hJQU5sUFhPM01KSEZsejBYZTRFbFVUN3RO -QTE3MzBQZVlxbGQzSU5pQnhFQ3oKSHJKQ3RYZlJkeGc1QkhNaUYvalE1NmZRUVZjYWtscmQ3aUMz -WEpJRkRuSzMvaVJyRHd1bm1MRXRNc0hYSTBGNlBPMVVuUlV1OWFVagpoNytWU0ZaTFJ5dWx4OHYy -Ym5QSGpwZnR3N1JGRmIyUlE1Z3BMbVhHa3hpRU4wZUNaZXMwZGlGeWJjSmlITzR4eVVna0tIMVdJ -MHRICkRIMlgrajRXT1RNNWlmT2hXaVl5RUoxZDZneVNIcXErK1E1eXkzMjVSU1B6Nms4eTlyRElB -cDUzK2QwcTFhNUpHdGxPSld1bGtkVUIKWGtGMkNDZVhCbUt4endTWE1sNXpKeDRUMjRkcGl3UnVR -STd6SHlUUkYrNEl6S1Y2d0RPRFJQOTFBSEpXWVpHdjlPbTI1R3VRU2JDUwp4QlJudW1wb21XcjB4 -YmJmblhEcFNDOWtJRXpPYjRKZ0dqSFhSVWM1M2pHU1czLzgyc05pSHU0bnlqZXBkdlhTeUpvaG1i -QWlFcytjCnVpSlhoTmFpZCtQaUtWYjZuUTZRd1h2dTZIQWJxN0J0a1VCUDVHM2NqRnlnV3c0OGdU -N2pWSXgwMXFLVGFvaDFueWNMbWVodGJiL0wKUUE2c3ppQTd6WGIxK1F6eEthMExhT3Q5ZG1RMDV0 -bTBWSmlEK0xiVzViMnZrTEdxanl3SXE1R0padldqQXYxdUNkNkc4V09QaWNRdQpHZjZESEp4ZG9D -bFhWN1ZmZDVZQTRyNU5SOXpNbDVFWDVoa2tablNLUVdZaE1jb2VZdjMrVWoyYnJTbnZOWGQwNk1h -cUptMlJGT1hJCk5tYlJSalVrZnFYWkNnd09zRTYzanN4Q1Z0aHppVkFNY3c1Z01uZnNoRDFXV3Yw -bUo3bHVIRUE2WnRHWTJMVjJpNlZVVDBXR1FUcHcKSXhKOFJkUitUT1pPclNEVmw2U0N4RGUvSmZB -RGlhZTRSVWhLMWkzakZBU1BJaTZiN3ZRM292WmhNbmRxQmFtK0pEdEp6SElNcG5wVwo1VFNTNVpw -UGtuOXVNU0FIR0VIc0pEbWk5dU0yZDlKSjRaWnUwS1I1RjNIbENKSXR1Qjc1MDA0TEpFaXpyd1pI -a0tCOEJCS2pKRU0rCmN0VWhEN25DMHBSWWtENFgrYy9FMFNSMW53M2Mrbk0rNERaM0xrZHVOZTlB -L3JBVjlsaTU2bmZLVlBpbERwSXU5Tm9xNnlOWmwyVEkKSW5Fbk9nWDhHSURlczRWYmY4NG5uT1pP -SnJLN2xCTCtXRVcyaURnbkdZRHNLR2VkVkdPU2lJZ3dxSXZjbXRoL3Roc1NFVkdiY1RybwpqSWlJ -aUlpSWlJaUlpSWlJT0svNEgyR1pJUFRKVVRpYkFBQUFBRWxGVGtTdVFtQ0MK - - $$C_{0}{\left(Z_{1}\right)} = H_{1} CNOT_{0,1} H_{1}$$ - - - display_data - SWAP = CNOT ⋅CNOT ⋅CNOT - 1,0 1,0 0,1 1,0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVVZQUFBQWNDQVlBQUFBZHRSYlZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDTVZKUkVGVQplSnp0bkhtUUZjVWR4ejhybDRBdUlJcEdUVUFwU3dJSjVSbE5Q -RERlNGxWR3E2S0ZRU0pSUzBRdGcwbU1XbW9PUWp6S1JCQkZRVW5FCkk1U2F5NFFqRUxNQ0doUzB2 -TkR5S1BFSUtzR05paGVzbU0wZjM1NjhtWjZlbVg2N0QvY2QvYWw2TmU5MTkvVHhuZDkwOS95NjUw -RWcKRUFnRXZPa09YQURjQ2Z3TytDTXdIdWdMekFjV0F4dUJkbUFUc0J6WTJweDdDZkNhaVdzSG5n -VEd4dkllQi96YnhIMEkvTUtqUG44QQp6c3lKN3dFc0JGNDIrYjRITEFJV0FFdUJWNEMvQUh0NmxG -VXQ5QVpPQjZZRFMxRDdXb0JUVFB3UndBOWk2YWVoNjdBSitBd1k2Y2h6ClB2QXgwdWhkNEhwSG1t -SEFMY0M5d0N4Z0hqQVgrR3BHUGM4dytXMEVWaUxObjZkMEhSYWJ1ajhPL0JkNE1hZk5uYUVXOUFw -YTFaNVcKLzZjMzZrUXVCN2FJaGY4WWVBRjFsQUJYbTByT2N1UXgxTVRkbjFIRzE0Qi9BbHQ1MU9k -YkpxOHJQTkllWjlKZWFJWDNBRzRGTmdDSApldVRUMWV5UHRKNEpIQUwwTk9GYkF0Y0J2MGFEeW9I -V2Vkc0NUeUVOWm1Ua1BRNE5ORTFXK0JiQXplWjgyL0JQUUVZL2xqUUwwYlhwCkdRdUxqSHFpbyt5 -L1o5U3JNOVNLWGtHcjJ0SXF3YjFJTkJkdkF0OHozeWVoU3Q3b1NEZmN4RDJRa2M5a1lKQkhYZm9D -ejVxOGJ2SkkKSDNYV0l4eHhYelJ4ZDN2azA1Vk1CdHJRak4xRk4yQUY4QUhxOE9PY0JJd0JWcG40 -clVuemZXQnZLNndKWGZQNTZBWnhjVFd3SHRneApGallRMll2TmJVanIzYTN3TDZFYnBKTFVpbDVC -cTlyU0trRS9KTnlSR2ZFTGdWM005M0ZrZDR3elROd2pqcml2a0gxaGJINkpPdUoyCjRQY2U2WmNE -cmFSSExKQ1k3Y0EvUE12dUNpYWdPcDVla0c0eThGZEgrUFhBenNENUpwOEpqalIzb0JzZ3psUmdE -Wm9WWkhHWXlmUEsKV05oWndGR090QzhCYnp2Qzl3WXV5aW1qWEdwSnI2QlZOdFdtVllwalVRWFB5 -NGkvUFBiOUJOd2Q0K0ZvTnJrZVRkbHRwcE1lalZ4OApHWTBhUFpBUHdkWEp4dWtMZkFyOE9TTity -S252ZUkreXU0SVI2SkdpeFNQdGVOeUdFSTJ5L1lDUGdHZXMrQ1pnamhYMk02VExpUVZsCkRpYnRI -am1EcExzRk5PcTM0eDd4UndEN0ZwVGpTNjNwRmJUS3BwcTBjckl0Y3JCdVJQNkdBOG51eEE0ZzNU -SDJRdjdKbnNCcVlKMTEKemtuQWFNKzZ6QU4yTmQ5YjBRSktIa2VZK3Z6UUVkY05PVzVYNDM0RXFB -WldvUHJidmgwWCt3RkRyTEJta3Y3ZW1ZNzhScUxGc1lnZAowUlBDdjBpUDlEYUhtdnptRjZRNzFh -UTd2eUJkWjZrSHZZSldvcHEwU3ZYSUFPK2dSUmJRckc4cFdtR2FEdlMzMHJZNnp2OFJXblZxCk0v -RURLRDNXOWtJQ3pQT28yeGkwMmhSMWhtdUJIUXJPT2RnY2wxbmhPNkdSYUJXd0IvS1BWSkxSYU9X -OW5NOTBLNC90Z1gyQXh4ejEKZC9FbzhLb1ZkZ0R3Y094MzVITTVOeFkyQ3ExQ1JreEFBOThjdE5x -WXgvQlkyWGxFMStHaGduU2RvVjcwQ2xxSmF0R3FrR0hBVDFCRAoyMUJQZlorVlpoREpHZU5Ra28r -eEMwMzhBUE43RW1tbnFZdG1KRkNmV05pREpxOStPZWN0UVJkZ0Z2Snh6Z0JtbTNZYzdsRnVWM0l5 -CmFsOW5ITWhUMERXSXN4ek4vcmN6djM5TDhnbmdJVlB1c1I3NXp6VnBYYjZmT004Qy84SHQ1NjBV -OWFKWDBFcFVpMVpsTVFKNEhmbnYKNHF0SzNVbDJqQStRWEEyKzI4UVBCYjZBT2lnZmJxQzBueXJp -SHR5clVSRmJvcTA0S3p6THFEYXVJZCszRzJjN1NvTk5uTG1Pc0doNwpRL1NJYzQ4VnY4YkVEeWVm -d2VqNnYwMitLMklnOGdkbitYa3JSVDNvRmJRUzFhUVZrSDZVdnNTWlNvK2dkNkZHeG52clRjRDc1 -dnNwCmFGUDNxbGo4TytZNEVDM2p1elo4MnV3Qm5JWldvaGZFUGw4MzhWbVAwL3VoUi9VV2p6S3Fr -ZGZNOFUyUHRKY2lRNHJUR3puWGJlYWkKVWZZY1pLRDJZdGhhYzN5ZmZDNUNBK0ZaNUxzaURrSTJz -aVFuVFNXb0I3MkNWcUthdEFLU0hlTldhTE5uRnMzQUU4QW5WbmdyNnVXdgpJTG1OSTRvRE9BYUpW -aVJRRStvOFJ3RkhXNTlwSmsxV3h4ajVIMW9LeXVnQjNFNXBVYWVJWWNqbk9oRzRGaG1KemRGb1oz -NDVuNmxXCkhsRzlpOTdNR1k0V2tENjB3dmZIN1ovWkFQd0dPZE9ua0Rhc3BlWjRXRTZaK3lDam5V -MzJ2dFNJNkRwa0dYQ2w5Rzh4eDFyV3EwZ3IKOExPL2lDeHRXOHl4M3JVcXg3YThkVDBHelFCdFB3 -TElsN2dXK0tZamJnWHlNN2oySlU1RXM4emx1QmQ2Yk1hVGZBMHB6cmR4djlFUwpzUmpWdnprbi96 -T0JuNXAwd3p6cTB3MTREam12UWJQWTJ6M082d2hOU011blNmcFc0K3lPRExHWEkrNHF0TDNKeFc3 -b01hU050QUVjCmpQUndQU3FCZEZxSC9NcytieW10UktOK2QwZGNKZld2QjczeXRJTHk3QzlQMjBi -UXFoemJLdXUrdmhadG5yeVBwRTlnVjlTeFRjbzQKYjRFcHhGWGgwMUJuZGxCQlJVR3pydGZKWHRh -UE5vQk9jY1ExbzMxVkt6M0tBWTEwUGpmbXlTVDNUZzVDTStZczQrb3NBNUFCUDRoVwowaVA2bzFY -NktTUmZqNHJYNncxS1RuQVhpOGplQnpvR0dWMThaTytEMnY4Q3laWEhQQVlqdzF4Y2tLNVMrdGV5 -WGo1YWRjVCtzclN0CmQ2MGlmR3lyTEYzbkFOdWdXZUVpSk9JQzlON2pOM0lLbVVuMld6S2pTRy80 -dE5rTGRjanRsR2FYOFU2Mk4zcFRwZFhFcnplL1I1clAKVW5UaDJ0RUZXSVl1Umg2K04rWmxwRGVU -YmlMOXlsTWw2UWRjRFB3SmJhKzRBejEydS9aKzlrTHZtMjlBN1YrRHRrdTVPQkg0ZVU2NQpSNkl0 -UkxQUk5iMFREWWE3RmRSM0NLVS9JRmhINmFYL1pjRGYwUFcxcWFUK3RhVFhFTXJUcWlQMmw2ZHRQ -V3NWNFdOYlhYRmYxd1MrCk4rYXYwQmFFT0I5UUczOUNVYzBFL2Yzb1NQdDl0YTFYZk5wZnFLdVAz -NitSV1kxR3FqaDkwRXBjWVBQVDZQbzNldnMzRjRXNmhvNHgKbnlkSS9nUFFJT1RJZnFOcnF0TndO -THIramQ3K3pVWFFOUVBYZEhza3liL1RBcTJVdlVYSktmc2RzbGZZQXY0RS9mM0lhNzlMTHdpUAow -ajYyVldoWFJTOTIxeHVqMFYrbEhZTEU2WS8rT0JPMFQvSlVrb3RGYldnVU9SdTl1Yk12ZW52bnZj -K2x0dlZIMEw4ODh0cHY2NVduCmJTTlFqbTAxdWwybEdJQTJpRWVmK0JhRWJzQjNjODUxN2U4S2xF -ZlF2K1BZN2JmMXl0TzJFZWlvYlRudEttdXpaTDN5Yms3Y1orVHIKc2JIQ2RXbEVndjRkeDI2L3JW -ZWV0bzFBUjIycjBlMnFrT1BSUnRKQTF4RDBMNCtnbHo5QnEwN1FhTFBuYWlQb1h4NUJMMytDVm9G -QQpJQkFJQkFLQlFDQVFDQVFDZ1VEZ2MrVi9xazJaZlg2Uys5WUFBQUFBU1VWT1JLNUNZSUk9Cg== - - $$SWAP_{1,0} = CNOT_{1,0} CNOT_{0,1} CNOT_{1,0}$$ - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUo4QUFBQ09DQVlBQUFBdmtkcmVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUJFSkpSRUZVZUp6dDNiMUxJ -MXNBaHZGM2todkJ4SXVhUW0xc2JRU3hFUEVUc1JNRXNSRUxDOEZHCnJOTUlGbmFDTmxZV1ZoYlJ5 -azcvQTIzOHJBU3hFd3ZGbEVZaUdORFpRdHg3Wlc4Vzc2N3VhMmFlSDB5VHhNT1o4REJubklGTUVJ -WmgKVWRMZkF2NndJQXpEMEQwSnhGUENQUUhFRi9IQmh2aGdRM3l3SVQ3WUVCOXNpQTgyeEFjYjRv -TU44Y0dHK0dCRGZMQWhQdGdRSDJ5SQpEemJFQnh2aWd3M3h3WWI0WUVOOHNDRSsyQkFmYklnUE5z -UUhHK0tERGZIQmh2aGdRM3l3SVQ3WUVCOXNpQTgyeEFjYjRvTk43T0lyCkZvczZPenZUL2YyOWV5 -cXhGNXY0d2pEVXdzS0NtcHViMWQvZnIrYm1aaTB1TG9wZkJmYUp6Vzh5YjIxdGFYWjJWcVZTNmZ0 -cm1VeEcKR3hzYm1waVlNTTRzdm1JVFgwOVBqdzRQRDM5NGZXQmdRUHY3KzRZWm9XSjhRUkQ4NmJr -Z1ppcWU4NFZoR0tsdGVYbFp0YlcxYi9ZeApuVTVyZFhYVlByZTRickZaZGg4Zkh6VTZPcXFEZ3dP -VlNpVmxNaGtOREF4b1oyZEhOVFUxN3VuRlVtemlrMTZPNWljbkorcnU3dGJ4CjhiRzZ1cnJjVTRx -MVdNWDNLZ2dDeFhDM3Y1ellYT2ZEMTBOOHNDRSsyQkFmYklnUE5zUUhHK0tERGZIQmh2aGdRM3l3 -SVQ3WUVCOXMKaUE4MnhBY2I0b01OOGNHRytHQkRmTEFoUHRnUUgyeUlEemJFQnh2aWd3M3h3WWI0 -WUVOOHNDRSsyQkFmYklnUE5zUUhHK0tERGZIQgpodmhnUTN5d0lUN1lFQjlzaUE4MnhBY2I0b01O -OGNFbU12RmxzMWtGUWZDdVRkSzdQNXZOWnMxN0ZsMlJlUUxSWnoxVmlLY1ZmWjdJCkhQbFFmU0la -MytucHFmcjcrMVZUVTZORUlxRzZ1am9ORHcvcjRlSGh6ZWNLaFlLeTJhd1NpWVNTeWFRNk96dDFl -M3RybW5VTWhSSHgKWDd1U3orZkRJQWpDNmVucGluK1h6K2ZEM3Q3ZThQcjYrdDNqNG1ORStwenY0 -ZUZCVFUxTlNxVlNLaFFLUHp4WDkvTHlVdlB6ODlyYwozRlFxbFhyM3VQZ1lrVngyWDZYVGFZMlBq -K3Z1N2s2N3U3dHYzaXNXaThybGNscGZYNjhZSGo1WHBPT1RwS21wS1VuUzF0Ylc5OWVlCm5wNDBO -emVubFpVVk5UUTB1S1lXZTVGZWRxV1gwRnBhV25SL2Y2OUNvYUQ2K25ybGNqbU5qWTFwYUdqb2w4 -ZkY3NHY4a1MrWlRHcHkKY2xMbGNsbmIyOXRhVzF0VGUzdjd1OExENTRwOGZOSS9TKy9TMHBKdWJt -NDBNek5qbmhHa255eTdyN2VocWttbDVmSDUrVm5wZEZvZApIUjA2T2pyNlgyTlc0L2RRTGY2cTlF -YTFuZWY4TEpMejgzT1Z5MldOakl6ODB0alY5bDFVaTFnc3UzdDdlNUxFZWQ0WEU1djRVcW1VCit2 -cjYzRlBCdjhUaVVrdHJhNnRhVzF0MWVIajRZZVBpOTBYMnlIZDFkYVdob1NHMXRiV3BVQ2pvNHVK -Q2c0T0RieTQyd3l2eVI3NnYKT2k0aWZPVEQxMGQ4c0NFKzJCQWZiQ3JlNGFoR24zRXJyTEd4OGNQ -SHhJdkl4TWQvcE5XSFpSYzJ4QWNiNG9NTjhjR0crR0JEZkxBaApQdGdRSDJ5SUR6YkVCeHZpZ3cz -eHdZYjRZRU44c0NFKzJCQWZiSWdQTnNRSEcrS0REZkhCaHZoZ1EzeXdJVDdZRUI5c2lBODJ4QWNi -CjRvTU44Y0dHK0dCRGZMQWhQdGdRSDJ5SUR6YkVCNXR2WUJZc3hJKzRoTXdBQUFBQVNVVk9SSzVD -WUlJPQo= - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVE4QUFBQ09DQVlBQUFBdnRJMzNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNUNUpSRUZVZUp6dDNFdElW -SDhZeHZIMzJEQ2psZUNGTGhob0dCUkJFR0ZFRUZtTFNNelNMTHU0CmtHaFRVRkl0dWkyc0lJcWlG -a0VVRmFVdXdxZzJicnFIMVNLNi9CZWhkTEVMMnQwd0tteTZwL2IrZDVIbHFQTjY5TXlNM3cvTTVw -d3oKUDU3ZmVlTnBqb002cWhvVWtVUUJnREE0cXFwZWh3QVFmZUs4RGdBZ09sRWVBRXdvRHdBbWxB -Y0FFOG9EZ0FubEFjQ0U4Z0JnUW5rQQpNS0U4QUpoUUhnQk1LQThBSnBRSEFCUEtBNEFKNVFIQWhQ -SUFZRUo1QURDaFBBQ1lVQjRBVENnUEFDYVVCd0FUeWdPQUNlVUJ3SVR5CkFHQkNlUUF3b1R3QW1G -QWVBRXdvRHdBbWxBY0FFOG9EZ0FubEFjQ0U4Z0JnUW5rQU1LRThBSmhRSG9ncXo1OC9sMGVQSG9t -cWVoMWwKd0tNOEVCV2FtcHBrOHVUSk1uNzhlTW5LeXBMUm8wZkxuVHQzdkk0MW9EbEtoU01LWkdW -bFNWMWRuYlMzdC84K2xweWNMRTFOVFJJZgpIKzloc29HTFR4NkllRStmUHBYNit2b094U0VpMHQ3 -ZUxoY3ZYdlFvRlVKKzhuQWNwNyt6QUlnaXZsQW5lSnBCcFBqMTY1ZWtwNmZMCjY5ZXZPeHhQU0Vp -UVY2OWVTVXBLaWtmSkJqWWVXeER4NHVMaXBMcTZXcEtTa2lReE1WRkVST0xqNDZXeXNwTGk4QkEv -TUVYVStQcjEKcTF5NGNFRVdMbHdvNzk2OWs5VFVWSzhqRFdpVUI2S080emc4VmtjQUhsc0FtRkFl -QUV3b0R3QW1sQWNBRThvRGdBbmxBY0NFOGdCZwpRbmtBTUtFOEFKaFFIZ0JNS0E4QUpwUUhBQlBL -QTRBSjVRSEFoUElBWUVKNUFEQ2hQQUNZVUI0QVRDZ1BBQ2FVQndBVHlnT0FDZVVCCndJVHlBR0JD -ZVFBd29Ud0FtRkFlQUV3b0R3QW1sQWNBRThvRGdBbmxBY0NFOGdCZ1Fua0FNS0U4QUpoUUhnQk1L -QThBSnBRSEFCUEsKQTRBSjVRSEFoUElBWUVKNUFEQ0pxZkpJU1VrUngzRmNmYVdrcEhpOXJRN2Mz -R09rN1MzV3hkcnNIRlZWcjBPNHhYRWNjWHM3ZmJGbQpiN2laSjlMMjFsUGtqb3g3RUZPZlBCQ2JY -cng0SVdWbFpUSnUzRGhKU2tvU0VaSFJvMGZMcWxXcjVPN2R1eDZuRzdnR1JIbThmZnRXCi9INi94 -TVhGaWQvdmw3Rmp4OHJzMmJNbE56ZFhjbk56SlRVMVZlTGk0cVM2dXRycnFMM1MxdFltKy9mdmw1 -S1NFaWt1THBiQ3drS3AKcUtpUUwxKyt5THg1ODd5T0Y3WTNiOTdJZ2dVTFpOS2tTZkxwMHljNWVm -S2tORFkyaW9qSXBVdVhaT1RJa1pLYm15dloyZGxTVjFmbgpjZHJlaTdyNWFRd0p0WjJLaWdvTkJB -SzZmLzkrYld0cjYzQ3V1cnBhQncwYXBHdlhyZzFyVGErRXl2UDE2MWZOeTh2VG5UdDNkamkrCmE5 -Y3VIVHQyckJZWEYvZDRyVWp3K1BGanpjakkwQzFidHVqbno1ODduUHN6OTgrZlA3Vzh2RnlIRFJ1 -bU5UVTEvUjB6TEYzZDczRG4KRndtejh6NkJpMExkMElVTEYrclpzMmYvT1g3cjFpMU5TRWpRK2ZQ -bmg3Mm1WMExsS1NvcTBoVXJWblI2TGkwdFRjdkx5M3U4bHRlYQptNXMxTXpOVER4OCszT241em5K -ZnZYcFZodzBicHJXMXRYMGR6NnlyK3gzdS9DSmhkdDRuY0ZGbk4vVEhqeDg2YytiTWY0NDNORFRv -CjhPSERkY3FVS2ZydDI3ZXcxdlJTWjNsYVdsclU3L2ZyNWN1WE8zMVBUazZPUG52MnJFZHJSWUxT -MGxKZHMyWk55UE9oY2g4OWVsU3oKczdQN0tsYXZoY3B0bVY4a3pDN21mK2JSM053c1pXVmxIWTU5 -K1BCQjVzeVpJME9HREpFelo4NUlmSHk4UituY2NmMzZkV2x0YlpYSApqeDkzZW43NjlPbVNrWkhS -ejZsc1BuMzZKRlZWVmJKaHc0YXczN3RzMlRKNTh1U0ozTHQzcncrUzlaMm9uWi9YN2VXbW5tem4r -L2Z2Ck9uMzZkRTFKU2RINitucFgxdXhQbmVWNTkrNmQrbncrRFFRQ3VuNzllcjErL2JxMnRyYWEx -dkxhb1VPSHRMQ3dzTXRydXNxOWRldFcKWGJWcWxkdXhYQkVxdDJWK2tUQTc3eE80cUxzYit1dlhM -eTB1THRaQUlLQlhyMTUxWmMzK0ZpclAzcjE3TlJBSXFPTTQ2amlPRGhreQpSRmV2WHEwdExTMWhy -K1dsZ29JQ1BYbnlaSmZYZEpYN3dZTUhtcG1aNlhZc1YzU1ZPOXo1UmNMc3ZFL2dvdTV1Nk9iTm05 -VnhIRDErCi9MaHJhL2EzcnZJOGZQaFF0MjNicHRuWjJlcjMrOVZ4SEMwcUtqS3Q1WlhzN094dWk3 -MnIzTy9mdjlla3BDU1hVN21qdS9zZHp2d2kKWVhZaEU0aElWTDVDT1hMa2lEcU9vOXUzYis5dy9O -dTNiM3JseXBYUU55Z0M5dFRUUGY3cC92MzdtcDZlcm42L1gzLzgrQkUxZTR2MQpWMDkxTnordjl5 -RWlBK09UeC9uejU5WG44K255NWN2L09WZGVYcTdWMWRWaHIrbVZ2L1BzM3IwNzVMV2JOMjlXdjkr -djM3OS83OUZhCmtXREpraVdkZnEzOHA2NXkvL2ZmZnpwKy9IaTNZN21pczl6VytVWEM3R0wrMjVi -YTJscFp2SGl4ekp3NVU0NGVQZnJQK2NyS1NzbkoKeWZFZ1dlOTkvdnhacmwyN0Z2SjhNQmlVckt3 -c0NRUUMvUmVxbHhZdFdpU1ZsWlhtOTFkV1Zzcml4WXRkVE5SM29uNStYcmVYbS83ZQp6c3VYTHpV -dExVMG5USmlnd1dEd24rdXJxcW8wUHo4L3JEVzk5bWVlYytmT3FjL24wNGFHaG4rdWEyNXUxaEVq -UnVpMWE5ZDZ0RmFrCmFHMXQxVkdqUm1sZFhWM0lhMExsL3ZqeG95WW5KK3ZyMTYvN0tsNnYvSjI3 -Ti9PTGhObkY3Q2VQWURBb2MrYk1FVldWczJmUFNtSmkKNHU5elRVMU5zbnYzYmlrcEtaR0NnZ0lQ -VS9iT2xTdFhKRE16VXpadDJpVDE5ZlcvanpjMk5rcEJRWUZzMnJSSlpzeVk0V0hDOFBsOApQbG01 -Y3FXVWxaVkplM3Q3V08vZHRXdVh6Sm8xUzlMUzB2b29uYnVpZlg0K3J3UDBsWFhyMXNuOSsvZGwx -S2hSc21USkVoRVIrZm56CnB6UTBORWd3R0JRUkViL2ZINW0vY05SRHpjM05jdnYyYmFtdHJaVzFh -OWRLUzB1THBLYW1Ta0pDZ3V6YnQwK21UcDNxZFVTVGpSczMKU2s1T2pwU1dsc3FCQXdkazBLQkIz -YjduNE1HRGN1clVLYmw1ODJZL0pIUkh0TStQditmaHdacTlFV3QvRXlLVWxwWVdLU3dzbEtGRApo -OHFPSFR0azRzU0p2OC85bWZ2NTgrZXlaODhldVh6NXNwdy9mMTdHakJualZlUnV4ZHJzWXZheEJk -RXRLU2xKTGx5NElGT25UcFc1CmMrZkt0R25UNU5peFkzTHAwaVVSRVRseDRvVGs1K2RMVmxhVytQ -MSt1WEhqUmtRWFJ5emlrNGNIYS9aR3JQM3YxUk50YlcxeTVzd1oKT1gzNnRMeDkrMVpxYW1wa3dZ -SUZrcGVYSjB1WExwWEJnd2Q3SGJGSFltMTJsSWNIYS9aR3JQMERIRWhpYlhZOHRnQXdpYmx2V3h6 -SApjWFc5NU9Sa1Y5ZHpnMXQ3ak1TOXhicFltbDFNUGJZQTZEODh0Z0F3b1R3QW1GQWVBRXdvRHdB -bWxBY0FFOG9EZ0FubEFjQ0U4Z0JnClFua0FNS0U4QUpoUUhnQk1LQThBSnBRSEFCUEtBNEFKNVFI -QWhQSUFZRUo1QURDaFBBQ1lVQjRBVENnUEFDYVVCd0FUeWdPQUNlVUIKd0lUeUFHQkNlUUF3b1R3 -QW1GQWVBRXdvRHdBbWxBY0FFOG9EZ0FubEFjQ0U4Z0JnUW5rQU1LRThBSmo4RHdBb24zcHVmNG1n -QUFBQQpBRWxGVGtTdVFtQ0MK - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUo4QUFBQ09DQVlBQUFBdmtkcmVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUJJUkpSRUZVZUp6dDNURkls -SDhjeC9IUDgxZlVRMjd3d0VuQkcxMGNtcUpBa1VRU0cxUjBDZ0oxCmJTaHdjV2xwY3RWQmFBa2lj -UkRVNmVCd01FUVVQVVFhYWdrVXhIQm9TRHlROEJCK0RWSmhvbi9MczQ4K3ovc0Z6L0ljL1BnKyt1 -YWUKNS9FQm55aUVVSlNVRnZDUFJTR0U0QjRDeWZTZmV3QWtGL0hCaHZoZ1EzeXdJVDdZRUI5c2lB -ODJ4QWNiNG9NTjhjR0crR0JEZkxBaApQdGdRSDJ5SUR6YkVCeHZpZ3czeHdZYjRZRU44c0NFKzJC -QWZiSWdQTnNRSEcrS0REZkhCSmxieFpUSVpSVkZVMWkyVHliZ1BLN1ppCjliOWFvaWhTdVEvbk90 -YkVpVmg5OCtGMklUN1lWTG9IK0JlK2ZQbWl4c1pHSFI4ZnE3S3lVdGxzVnRsc1ZoVVZGWktrUXFH -Zy9mMTkKemM3T3FxK3Z6enh0Z29RWU9lOXdYcjkrSGFxcnE4UEV4RVE0UGo0KzlkbjgvSHlvcUtn -SXo1NDkrNk0xY1hXeCtzbWVGMHAvZjMvSQo1WEpuOXErdHJZVlVLaFY2ZTN2L2VFMWNYZXp2ZGt1 -bGtoNCtmS2gzNzk2ZDJyKzl2YTE3OSs0cG04MXFhV2xKTlRVMWwxNFQ1Ukg3CitIWjNkL1hwMHlk -MWRIVDgzUGYxNjFmZHYzOWZwVkpKNit2cnFxK3YvNk0xVVI2eGorOTNSMGRINnV6czFNZVBIN1d5 -c3FMbTV1WXIKcjRtL2s0aTczUjlDQ0JvYUdsS2hVRkErbi8vZjhIRE56cnNZbEhRcnQ0dU1qbzZH -S0lyQzI3ZHZMMzFSN0Q2ZVdHK1gvaTNjQWhmRgo5K3JWcXhCRlVYajU4dVdwL2QrK2ZRdUxpNHQv -dFNhdUpoRlBPUEw1dko0K2ZhckJ3VUc5ZVBIaTFHZlQwOU02T0Rnd1RaWnNzYi9oCmVQLyt2ZHJh -Mm5UMzdsM2w4L21mVHpWK2FHMXQxY0xDZ2xLcDFLWFhSSG5FK3B2djgrZlBldlRva1pxYW1qUTNO -M2Ntdk9ucGFXVXkKbVhQRHcvV0tiWHpGWWxIZDNkMEtJU2lYeXltZC92VjZ1YjI5UFkyTmplbkpr -eWZxNmVreFRwbHNzVDN0RGc4UDY4MmJOMnBvYUZCRApRNE9razZjZFcxdGJLaGFMa3FTcXFpcnQ3 -dTd5UjJhVDJNWjNrOWZFaWRpZWRuSHpFUjlzaUE4MnNYdTJHMFZSV2RlcnE2c3I2M3I0CkpWYnhY -ZmJHZ0p1SW00SFRMbXlJRHpiRUJ4dmlndzN4d1liNFlFTjhzQ0UrMkJBZmJJZ1BOc1FIRytLRERm -SEJodmhnUTN5d0lUN1kKRUI5c2lBODJ4QWNiNG9NTjhjR0crR0JEZkxBaFB0Z1FIMnlJRHpiRUJ4 -dmlndzN4d1liNFlFTjhzQ0UrMkJBZmJJZ1BOc1FIRytLRApEZkhCaHZoZ1EzeXdTVlI4SVFRVkNn -Vkowc2JHaG5rYUpDYStvNk1qZFhaMjZzR0RCNUtrOXZaMmRYVjFxVlFxbVNkTHJzVEVOejQrCnJ0 -WFZWUjBlSGtxU0RnOFB0Ynk4ck1uSlNmTmt5UldyOSsxZXBLV2xSUjgrZkRpei84NmRPOXJjM0RS -TWhIUGpLL2NMOUlEZm5YdmEKRFNIRWFwdWFtbEp0YmUycFk2eXRyZFhNekl4OXRxUnVpYm5tZS96 -NHNaNC9mNjVVS3FWME9xMVVLcVdSa1JFTkRBeTRSMHVzeEZ6egovVkFzRnJXenM2TnNOcXQwT3Uw -ZUo5RVNGeDl1anNTY2RuSHpFQjlzaUE4MnhBY2I0b01OOGNHRytHQkRmTEFoUHRnUUgyeUlEemJF -CkJ4dmlndzN4d1liNFlFTjhzQ0UrMkJBZmJJZ1BOc1FIRytLRERmSEJodmhnUTN5d0lUN1lFQjlz -aUE4MnhBY2I0b01OOGNHRytHQkQKZkxBaFB0Z1FIMnlJRHpiRUJ4dmlndzN4d1liNFlFTjhzQ0Ur -MkJBZmJMNERCMXZyL0lRTUZPQUFBQUFBU1VWT1JLNUNZSUk9Cg== - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUIxTkpSRUZVZUp6dDNVMUlW -RzBid1BIclRJOVprMlZaazVDTEtLaVJYR2lVQzVueVl4T1ZWQWlSClVxc0tETVlXdFluMkxTSnBx -N1hLb1hiWklvSlNORFFzb3pBRE45R21ORnRVUXdiMm9WYk9YTS9xaWQ3WEdkUEp5ek56NXY4RE45 -N04KNlRyZS9wMDduY3BSMWM4aXNsSUFMQ2hIVmRYdElRQXY4cms5QU9CVnhBVVlJUzdBQ0hFQlJv -Z0xNRUpjZ0JIaUFvd1FGMkNFdUFBagp4QVVZSVM3QUNIRUJSb2dMTUVKY2dCSGlBb3dRRjJDRXVB -QWp4QVVZSVM3QUNIRUJSb2dMTUVKY2dCSGlBb3dRRjJDRXVBQWp4QVVZCjhVUmNCUVVGNGppTzJW -dEJRWUhidCtocFh0MC9UL3hiOFk3amlPVnRXRjgvMjNsMS8vNVo5TjhSQzA1VjVmSGp4eEtKUkdS -MGRGU20KcHFZa1B6OWZLaW9xNU9USms3SisvWHEzUjh4S25qZ1daaXRWbFVna0ltVmxaWExpeEFr -cExpNldzMmZQU2w5Zm54dy9mbHhldlhvbAp3V0JRamgwN0ppOWZ2blI3M095akhqRGJiZFRWMVds -eGNiRTZqcU01T1RsYVZsYW1qWTJOcXFvNk1qS2lOVFUxV2xSVXBJN2o2S3BWCnE3Uzh2RnhiV2xy -bWZIMjNURTlQYTJOam81YVdsdXI5Ky9jMUhvLy9XdnQ5M2srZlB1bWxTNWMwRUFob1QwK1BHNlAr -a1ZmM0wvMCsKYTFMd3B3L2VreWRQMUhFY1BYUG1UTUwxaXhjdnF1TTRldlBtelpTdXY5amk4Ymcy -TlRWcGRYVzFmdjc4ZWNaNm9ubDdlbnAwM2JwMQpPakF3c0JnanpvdFg5eThyam9WOWZYMGlJckov -Ly82RTY3Mjl2YkpreVJMWnMyZlBZbzZWc3M3T1R1bnU3cGJidDIvTHlwVnorMDlCCmEycHE1T3JW -cTlMUTBDRHhlTng0d29XVnNmdm5TdElMN0UrM1VWdGJxN201dVRveE1URmo3Y2VQSDdwaXhRcmR2 -bjE3eXRkZmJMVzEKdGRyVzFwWjBQZG04OFhoY2QrellvUjBkSFVhVHBjYXIrK2Y1WjY1NFBDNzkv -ZjFTWGw0dXk1Y3ZuN0UrTURBZ0V4TVRVbGxaNmNKMAo4emM4UEN4UG56NlYrdnI2ZVQvV2NSd0po -OFBTMHRKaU1KbU5UTjQvejhjMU5EUWs0K1BqVWwxZG5YQzl0N2RYUkVTcXFxb1djYXJVCjNicDFT -NDRjT1pMd0UyMHVHaG9hcEtlblI3NSsvYnJBazluSTVQM3ovTSs1L2p1dmQzVjF5Yk5uejJhc0R3 -d01pT000YWZtVkw1Rm8KTkNvYk4yNU0rZkYrdjEvV3JsMHJZMk5qa3BlWHQ0Q1QyY2pvL1V0Mlho -U1JqSHBMcHE2dVRuTnljdlRidDI4ejFxYW5wOVh2OTJ0SgpTY21zWjJlMzd5MGIzcnk0ZjBtZnVU -U0RYdTdqT0U3Qzk2dXFQSHo0VUVwTFM4WHY5ODlZSHh3Y2xNbkp5VGw5MVV1WGo4ZUZDeGZrCnk1 -Y3YwdHpjblBUWHpQWnluMWdzSnF0WHI1YlIwVkZaczJhTjFaano0dFg5OC9TZnVWNjhlQ0ZqWTJP -eWUvZnVoT3VQSGowU2tmUTgKcnllemI5OCthVzl2bDFnc2x0TGo3OTI3SnlVbEpXa1QxbXd5ZmY4 -OEhkZC81L1ZkdTNZbFhPL3Y3eGNSU2MvemVoSTdkKzZVUUNBZwpuWjJkS1QyK3RiVlZ3dUh3QWs5 -bEkrUDNiOWJEYW9aSWRodjE5ZlhxOC9uMHc0Y1BDZGNMQ3d0MXk1WXRLVi9mTFpGSVJDc3JLL1hu -Cno1OEoxNVBOT3pnNHFJRkFRQ2NuSnkzSG16ZXY3cDlubjdtK2YvOHVEeDQ4a00yYk55ZDhWZmpR -MEpCRW8xRUpoVUl1VFBkM2poNDkKS3JtNXVYTDY5T2s1djlwaWVIaFlEaDA2SkMwdExiSnMyVExq -Q2YrZUovYlBsYVFYMk8rMzhlYk5HNjJzck5STm16YXB6K2ZUcFV1WAphaWdVMGl0WHJxaXE2cDA3 -ZDdTaW9rSURnWUQ2ZkQ0dEtDalFxcW9xN2Uvdm45UDEwOFg0K0xpR1FpR3RyNi9YOSsvZi84L2E3 -L1BHCjQzSHQ3dTdXRFJzMmFHdHI2MktQT1NkZTNULytzbVFhWEQ5VlUxTlRjdTdjT2JseDQ0YnMz -YnRYVHAwNkpkdTJiWlBDd2tJWkdSbVIKdTNmdlNtdHJxOFJpTVdsdWJwWURCdzY0UFhKQ1h0MC80 -a3FENi8rdDhmRnh1WDc5dXJTMXRjbmJ0Mi9sNDhlUFVsUlVKQlVWRlJJTwpoNlc2dWpycHQ3dlRn -VmYzajdqUzRQb0xqWGtYOS9ySmVQWWJHb0RiUFBQYVFzdGpUeWI4d0RYVGVYSC9QQkZYSmgyQk1K -Tlg5NDlqCklXQ0V1QUFqeEFVWUlTN0FDSEVCUm9nTE1FSmNnQkhpQW93UUYyQ0V1QUFqeEFVWUlT -N0FDSEVCUm9nTE1FSmNnQkhpQW93UUYyQ0UKdUFBanhBVVlJUzdBQ0hFQlJvZ0xNRUpjZ0JIaUFv -d1FGMkNFdUFBanhBVVlJUzdBQ0hFQlJvZ0xNRUpjZ0JIaUFvd1FGMkNFdUFBagp4QVVZSVM3QUNI -RUJSb2dMTUVKY2dCSGk4cEJZTENaZFhWMGlJdkw2OVd1WHB3RnhlY1M3ZCs5azY5YXRjdmp3WVJF -UktTa3BrZlBuCno3czhWWFp6VkZYZEhnSi83K0RCZzlMUjBTSFQwOU8vM3VmMys2V3JxMHRDb1pD -TGsyVXZucms4NHYvREVoR1puSnlVOXZaMmx5WkMKMG1jdXgzRVdleGJBVS81SnRzQnBNYk0wTlRY -SnRXdlhaR3BxNnRmNy9INi9QSC8rWElMQm9JdVRaUytPaFI1eCtmSmxxYTJ0bGR6YwpYTW5MeTVQ -OC9IeUpSQ0tFNVNLK29lRXgwV2hVb3RHb0JJTkJ5Y25KY1h1Y3JFWmNnQkdPaFlBUjRnS01FQmRn -aExnQUk4UUZHQ0V1CndBaHhBVWFJQ3pCQ1hJQVI0Z0tNRUJkZ2hMZ0FJOFFGR0NFdXdBaHhBVWFJ -Q3pCQ1hJQVI0Z0tNRUJkZ2hMZ0FJOFFGR0NFdXdBaHgKQVVhSUN6QkNYSUFSNGdLTUVCZGdoTGdB -SThRRkdDRXV3QWh4QVVhSUN6QkNYSUFSNGdLTUVCZGdoTGdBSThRRkdDRXV3QWh4QVVhSQpDekJD -WElBUjRnS00vQXZuK01DMi9PUDM1Z0FBQUFCSlJVNUVya0pnZ2c9PQo= - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUo4QUFBQ09DQVlBQUFBdmtkcmVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUF6eEpSRUZVZUp6dDNURk9L -bUVZUnVGM3lDMnh0VFUwYXNNRzJJQVRYUWNoTVM3SDBMZ0JDeE5qCkFnUmJ0a0NEY1RaQVlYT3hO -RE8zZ3NUQzF1UDFQMDg1TkY4bWgzKythYURxdXU1dmtxTkkzNnpxdXE2amgxQ1pldlFBS3BmeENX -TjgKd2hpZk1NWW5qUEVKWTN6Q0dKOHd4aWVNOFFsamZNSVluekRHSjR6eENXTjh3aGlmTU1ZbmpQ -RUpZM3pDR0o4d3hpZU04UWxqZk1JWQpuekRHSjR6eENXTjh3aGlmTU1ZbmpQRUpZM3pDR0o4d3hp -ZE1NZkZ0TnB1MGJmdnBXdHUyZVhsNWdTWlNFVCtMMjNWZDZyck9ZRERJCmREcE5yOWRMMjdZWmo4 -ZlpicmVaeldiMGlFVXE0dVNycWlvUER3OVpyOWU1dnI3T3g4ZEh4dU54bXFiSi9mMDlQVjZ4aWpq -NTluYTcKWGVxNnp0dmJXNDZQajdOWUxOTHY5K214aXZWbGZGVlZmZmNzS3N5ZnJ6NzRiUWZpZnNk -cm1pYXIxU3FqMFNqRDRmQ3dBK3I3RlhIWAp1NjdMWkRKSjB6U1p6K2RKa3VWeW1mVjZuWnViRzNp -NmNoVVJYMVZWdWJ5OHpIdytQK3g0UjBkSFdTNlh1Ymk0Z0tjclYxRXZISHRWClZmMjZ0ZUovVk1U -SnA1L0orSVF4UG1HTVR4ampFOGI0aERFK1lZeFBHT01UeHZpRU1UNWhqRThZNHhQRytJUXhQbUdN -VHhqakU4YjQKaERFK1lZeFBHT01UeHZpRU1UNWhqRThZNHhQRytJUXhQbUdNVHhqakU4YjRoREUr -WVl4UEdPTVR4dmlFTVQ1aGpFOFk0eFBHK0lReApQbUdNVHhqakU4YjRoREUrWVl4UEdPTVR4dmlF -TVQ1aGlvbnY4ZkV4Nysvdm42N3RkcnM4UFQxQkU2bUkrTHF1eTJLeHlOWFYxU0hBCjNXNlh1cTd6 -L1B3TVQxZXVZdjVwdkczYmpNZmpORTJUMVdxVjBXaVU0WENZNlhTYVhxK0k3K0NQVTh4ZDcvVjZ1 -YnU3eThuSlNaTGsKL1B6YzhHQmZubnhWVlgzM0xDck1uNjgrK0cxUDQvMk9OeHdPYzN0N204bGtr -cVpwTXAvUDArLzM2ZkdLVk1UTzEzVmQ2cnJPWURBNApQR3IzTytCMnU4MXNOcU5ITEZJUjhTWEpa -clBKNmVucHB4MnZiZHU4dnI3bTdPd01uS3hjeGNTbm44ZFhQV0dNVHhqakU4YjRoREUrCllZeFBH -T01UeHZpRU1UNWhqRThZNHhQRytJUXhQbUdNVHhqakU4YjRoREUrWVl4UEdPTVR4dmlFTVQ1aGpF -OFk0eFBHK0lReFBtR00KVHhqakU4YjRoREUrWVl4UEdPTVR4dmlFTVQ1aGpFOFk0eFBHK0lReFBt -R01UeGpqRThiNGhERStZWXhQbUg4TUV0VnhWRm41VGdBQQpBQUJKUlU1RXJrSmdnZz09Cg== - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNybEpSRUZVZUp6dDNXdG9V -L2NmeC9GUC9rNU1VN3ZXU3kvTzBWUkJXcEZONnh5dVExMTNZVk9xCmlBVzEwd2RqVHF3R0ZjY1FW -K2NGdGoxeGJHeXNVeXVsRjhXaVZrVXBvclcyVnFadTBMS3RtNjNWVGV2TWRKdXhyZGlzTmtyUzcv -K0IKSUhaTm9zbjZ6VEhKNXdWNWtuTU9mSC8rK2lZbkY5QWtJbDBBNGtCRUE4b2tJbUwwRUVTUjZI -OUdEMEFVcVJnWGtSTEdSYVNFY1JFcApZVnhFU2hnWGtSTEdSYVNFY1JFcFlWeEVTaGdYa1JMR1Jh -U0VjUkVwWVZ4RVNoZ1hrUkxHUmFTRWNSRXBZVnhFU2hnWGtSTEdSYVNFCmNSRXBZVnhFU2hnWGtS -TEdSYVNFY1JFcFlWeEVTaGdYa1JMR1JhU0VjUkVwZWNyb0FlaS9FeEY4OTkxM0tDOHZoOTF1aDh2 -bFFueDgKUExLeXN2RGVlKzhoS1NuSjZCR2pFbCs1d3BpSW9MeThISk1tVGNLU0pVdVFrWkdCOTk5 -L0g5OSsreTNlZmZkZFhMNThHZW5wNlZpOAplREV1WExoZzlMalJSeWdzdWQxdVdiWnNtVXljT0ZG -cWEydWx0N2Yzd2JHSHQ3V3pzMU8yYk5raWlZbUpjdkxrU1NOR2pWcjgvN25DCmtJaGcxYXBWYUds -cFFWVlZGZUxpK3Y3ZmhTYVRDZi9lMXZyNmVpeFlzQURIamgzRGxDbFRRamx1MU9KdFlSaXFycTdH -aVJNbmNQancKNFg1aCtmTHFxNitpcUtnSWVYbDU2TzN0Vlo2UWdDaU1xNnVyQytmT25ZUFQ2VFI2 -bEtCdDNib1ZCUVVGaUkrUEQraTYzTnhjSkNRawpvS2FtUm1reWZWZXZYc1hGaXhmN3ZUSS9rUXk5 -S1EyaDN0NWVXYjkrdlpqTlpvbUxpNU9ZbUJqWnRHbFRuL2NxNGFDdHJVMUdqaHdwCmQrN2M4WG1P -djIwdEtTbVIyYk5uYTR5bTZ2cjE2L0xDQ3k5SVRFeU14TWJHU21wcXF2end3dzlHaitWWDFNUzFl -L2R1aVkyTkZRQVAKSHJHeHNWSlpXV24wYUFINTdMUFB4R2F6K1QzSFgxemQzZDFpc1ZqRTZYUU85 -R2lxSmsrZUxJTUdEZXF6ZjhPR0RaT2VuaDZqUi9NcAphbTRMQ3dzTDBkM2QzZWU1N3U1dWZQMzEx -d1pORkJ5SHd3R3IxUnIwOVJhTEJTTkdqRUJIUjhjQVRxWHJ5cFVyYUcxdGhjZmo2Zk84CngrUEI4 -ZVBIRFpycTBYeCtXbWd5bVVJOUMxRkU4Zm5LSmZkdkdTUG1zV1hMRnNURXhQUlpvOFZpd1pkZmZt -bjRiSUU4UHY3NFk2eGQKdTlidk9mNzJ6KzEyWStqUW9lanM3RFI4TFkvNzhIZzhHRDE2ZEwrLzBa -aVlHSFIwZEJnK244OTlrQ2poY3JuazlkZGZmL0MrS3pZMgpWdDU2NnkyNWUvZXUwYU1GcExHeFVk -TFMwc1R0ZHZzOEIzNjJ0YXFxU3FaT25hb3htcXFHaGdaSlNFaVF1TGc0QVNCbXMxbjI3dDFyCjlG -aCtSVTFjSXZjL01XeG9hQkFBMHRqWWFQUTRRWHZ4eFJmbHlKRWpQby83aTJ2bXpKbXljK2RPamJI -VWRYZDN5OEdEQndXQXRMZTMKR3ozT0kwWGxMelM4L1lJaG5PemN1Uk9scGFXb3E2dkRVMC8xLysy -MXIvWDkrT09QbURsekp1eDJPOHhtY3loR1ZSRXUreGMxbnhaRwpra1dMRm1ISWtDRll1WExsWS8v -YTRzcVZLNWc3ZHk2MmJ0MGExbUdGRThZVmhnWVBIb3dEQnc2Z3Via1ppeFl0d28wYk4zeWVLeUtv -CnJhM0Z0R25Uc0g3OWVzeWZQeitFazBZM3hoV21ubjc2YWRUVzFpSXBLUWtaR1JsNCsrMjNjZXJV -S1RnY0RnRDNmeWEwYmRzMlBQZmMKYzFpMWFoV0tpb3F3WXNVS2c2ZU9MbnpQRlFGdTM3Nk5YYnQy -b2F5c0RILzg4UWZhMjlzeGV2Um9aR1Zsd1dheklUczdPNksrdHd5WAovV05jRVlqcmV6THd0cEJJ -Q2VNaVVzSzRpSlF3TGlJbGpJdElDZU1pVXNLNGlKUXdMaUlsakl0SUNlTWlVc0s0aUpRd0xpSWxq -SXRJCkNlTWlVc0s0aUpRd0xpSWxqSXRJQ2VNaVVzSzRpSlF3TGlJbGpJdElDZU1pVXNLNGlKUXdM -aUlsakl0SUNlTWlVc0s0aUpRd0xpSWwKakl0SUNlTWlVc0s0aUpRd0xpSWxqSXRJQ2VNaVVzSzRp -SlF3TGlJbGpJdElTVlRFZGZmdVhlelpzd2ZaMmRsSVRrNEdBS1NrcE9DMQoxMTdEdm4zN2NPL2VQ -WU1uSkgvc2RqczJiTmlBOVBSMEpDUWtBQURTMHRKZ3M5bHc3dHc1ZzZmekxhTGpFaEY4OGNVWHNG -cXRLQzB0CnhlclZxOUhVMUFRQStPbW5uN0JpeFFyczJMRURWcXNWWDMzMUZVVEU0SW5wWVgvOTlS -ZHljM09SbVprSnA5T0p2WHYzb3EydERRQlEKVTFPRGxKUVV6Sm8xQ3pObXpNRFBQLzlzOExSZVNJ -VHllRHl5Wk1rU21USmxpclMydHZZNTl1OWx0N1MwU0dabXB1VG41NHZINHdubAptQ29pWVZ0Ly9m -VlhzVnF0c25IalJ2bm5uMy82SEh0NGZmZnUzWk9Ta2hKSlRFeVV1cnE2VUkvcFYvanZnZzhmZlBD -QlRKOCt2ZC9HCmlIai80K3ZxNnBLc3JDejU4TU1QUXpHZXFuQ1A2OGFOR3pKMjdGZ3BLaXJ5ZXR6 -Yit1cnI2eVV4TVZHYW1wcTB4M3RzNGIwTFB2enkKeXk4eWF0UW82ZWpvOEhyYzF4L2Z6WnMzSlRr -NXVkOHJYYmdKOTdoV3Jsd3BxMWV2OW5uYzEvcUtpNHRseG93WldtTUZMQ0xmYzIzYgp0ZzNMbHkv -SDhPSERBN3B1NU1pUldMcDBLYlp2MzY0MG1TNlB4NE9hbWhvQWVQRGVKTnc0blU1VVZGUmc3ZHEx -QVYvN3pqdnY0TGZmCmZrTnpjN1BDWkVFd3V1NkJkdnYyYlVsSVNKRHIxNi83UE1mZnNxOWV2U3JE -aHcvM2VqdjVKUHZ6eno5bDdOaXhFaGNYSndERWJEYkwKdW5YcmpCNHJZTnUzYjVkNTgrYjVQY2Zm -L20zYXRFbHNOdHRBanhXVWlIdmxPblBtRENaUG5veG5ubmttcU90VFUxTXhZY0lFZlAvOQo5d004 -bWE3OC9Ielk3WFk0blU0QWdNdmxRbUZoSWM2ZVBXdndaSUdwcnE3R3dvVUxnNzQrTHk4UDFkWFZB -emhSOENJdXJsdTNiajM0CkxpdFlTVWxKNk96c0hLQ0pRdVBZc1dOd3U5MTludXZwNmNIKy9mc05t -aWc0LzNYL2twT1RuNWk5TTRsNC8zTEhaREtGZWhhaWlPTHoKbFV2dWY1SVlkbys2dWpwTW5UclY3 -em1QV2w5bVppWk9uejV0K0ZvQ2VkaHNOcGpONWo1N2FMRlljT0hDQmNObkMrU3hjT0ZDbEpTVQpC -TDEvRFEwTkdEOSt2T0hyRUpISXV5MmNObTBhN0hZN3pwOC9IOVQxVFUxTmFHOXZ4MHN2dlRUQWsr -bjYvUFBQa1pPVGd5RkRobURvCjBLR0lqNDlIZVhrNTB0UFRqUjR0SVBQbnowZFpXVm5RMTVlVmxX -SEJnZ1VET0ZId2ZONFdoclBObXplanM3TVRoWVdGWG8rYlRDYjQKV25aK2ZqNVNVMVB4MFVjZmFZ -Nm94dUZ3d09Gd0lEMDlIWU1IRHpaNm5JQzUzVzZrcGFYaDZOR2plUDc1NTcyZTQydi91cnE2a0ph -VwpodWJtNXFBLzBCcElFUm5YdFd2WE1ISGlSSnc5ZXhZWkdSbjlqdnZhbkphV0ZreWZQaDNuejU5 -SFNrcEtLRVlsTHo3NTVCTTBOamJpCjBLRkRHRFJvVUwvanZ2YXZvS0FBbHk5ZlJtVmxaU2pHZkRT -SlVLV2xwVEptekJocGEydnJkOHpic2k5ZHVpUldxMVYyNzk0ZGl2SEkKRDVmTEphKzg4b29zWDc1 -YzNHNTN2K1BlOXUrYmI3NlJNV1BHeU45Ly94MktFUjlMeE1ZbGN2OGZmTlNvVVZKUlVTRXVsK3ZC -OHc5dgpUazlQait6YXRVdFNVbEpreDQ0ZFJveEpYdHk2ZFV1eXM3Tmw5dXpaL1g0ditQRCsvZjc3 -NzJLejJXVGN1SEZ5NmRLbFVJL3BWMFRICkpTSlNXMXNyYjd6eGhpUWxKVWxCUVlGVVZWVUpBS21x -cXBKMTY5WkpZbUtpdlBubW0xSmZYMi8wcVBRdkxwZExQdjMwVTNuMjJXZmwKNVpkZmx1TGlZamwr -L0xnQWtJcUtDcGt6WjQ2TUdERkMxcXhaSXpkdjNqUjYzSDRpOGoyWE54Y3ZYa1J4Y1RGYVcxdHg5 -T2hSNU9UawpZUHo0OFZpMmJCbkdqUnRuOUhqa2g5dnR4cEVqUjFCWldRbUh3NEc2dWpyazV1WWlK -eWNIZVhsNXNGZ3NSby9vVmRURVJSUnFFZmM5CkY5R1RnbkVSS1dGY1JFb1lGNUVTeGtXa2hIRVJL -V0ZjUkVvWUY1RVN4a1draEhFUktXRmNSRW9ZRjVFU3hrV2toSEVSS1dGY1JFb1kKRjVFU3hrV2to -SEVSS1dGY1JFb1lGNUVTeGtXa2hIRVJLV0ZjUkVvWUY1RVN4a1draEhFUktXRmNSRW9ZRjVFU3hr -V2toSEVSS1dGYwpSRW9ZRjVFU3hrV2toSEVSS1dGY1JFb1lGNUVTeGtXazVQOENrR2JYaWgwNml3 -QUFBQUJKUlU1RXJrSmdnZz09Cg== - - - - - - - - +{ + "nbformat": 2, + "name": "decompose", + "worksheets": [ + { + "cells": [ + { + "source": "

Gate Decomposition

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "source": "

Example 1

", + "cell_type": "markdown" + }, + { + "source": "Create a symbolic controlled-Y gate", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$C_{1}{\\left(Y_{0}\\right)}$$", + "prompt_number": 3, + "png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAYCAYAAABeIWWlAAAABHNCSVQICAgIfAhkiAAAAxZJREFU\nWIXt2EuoVlUUwPHfvb6KW3aLwgd1UySvNAgfGYJpBQ5CwhCCBmrq4KKENXBQ0WMWESIRohMRH1yp\nIKJEMGgQQoWIID2wBBU1xAi0p2mhlYO1Pzz33PP6PrMG+YfDx9l7PfZjrbX3+fgfMxVr8S4+w0d4\nC5PRhR0Y34Hdtfgaf6fnFNYVyC3BX0nmN2zvwNcwRuAFnMbTuCfTdxf2YhsOt2GzF0/l2naJgS+q\n0PsA6zGqoO9ZdLcxBn3YhxOYViIzMw1qY0ObYzGIW3LtTyQ7O0v0VohdLuMRvNlwDEZiP45jQo3s\n91jc0O42TC9ovwE/4xx6cn3zsaGB7a1iB2t5Tazk0gayn4pQq2M6dlf0b00+l2TapuAdsdh13CbS\n48YqoRn4E4c0i+MnG8jA23ison+BmNye9N6L9zVbuBavYmWVwEvJyUAbRusYiTMi58roFoXrIiaK\nxZjSpp+lIp1K+VBMblabhquYiy8ayL2RfB8SudYu9+OSijD+QYRlZewmpjZ0usyVcKtikZjciw3t\n5rk56U/KNmZz6yR+woUaQ3eoie8M45PNOmam3yYLUcSv+A53Zxuzk9srKk9fjaE1hp8tfaK65Rmt\nWcWbLxbhy4K+CXgOq5PfiSU2zuGmMgdz8Lu4mZSxKj0tevCyOISPFsgPqM+5UTiv/LjYhYczYywq\nHKNFQZpd5ejR5OgZQ3OvH69jYYneAsWTW5jsdVX4nCfy5fmCvn5RC0ak9y5xebgvJ3dvsnFnhR/E\n7NfjE3FR3iF2Z3KFTtnkbhVVbFJB3zKxC2fTwE7iY0Pz5nF8k9P7HMtzbYtxLO+gKB8OpOef4Ecx\ngX5xV80ymJ4qbhc7n+WC4XfUaeIoG0JbN+oO2SwuyJ1wXOxqlh4Rqi26xVGyJa/8b0xuUFwMHupA\n96A4erKMw7eZ9zU4IsL1mlCWcy1miVAf04Htw658T84Qx0VrU/rwlfLj4aroEh+z74nceEX59elB\nxRWxjtli91dgEx7I9G1SUeiqSnRT8n8znMcvJbJj8EeHfop0r8beda7zX3AZgzubCkf7gz4AAAAA\nSUVORK5CYII=\n", + "text": "C \u239bY \u239e\n 1\u239d 0\u23a0" + } + ], + "collapsed": false, + "prompt_number": 3, + "input": "CY10 = CGate(1, Y(0)); CY10\n" + }, + { + "source": "Decompose it into elementary gates and plot it", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$S_{0} CNOT_{1,0} S_{0} Z_{0}$$", + "prompt_number": 4, + "png": "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\nwL9xjqSsQYpqzQAAAABJRU5ErkJggg==\n", + "text": "S \u22c5CNOT \u22c5S \u22c5Z \n 0 1,0 0 0" + } + ], + "collapsed": false, + "prompt_number": 4, + "input": "CY10.decompose()\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 5, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x2c85f10>" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAQ8AAACOCAYAAAAvtI33AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACT5JREFUeJzt3EtIVH8YxvH32DCjleCFLhhoGBRBEGFEEFmLSMzSLLu4\nkGhTUFItui2sIIqiFkEUFaUuwqg2brqH1SK6/BehdLEL2t0wKmy6p/b+d5HlqPN69MyM3w/M5pwz\nP57feeNpjoM6qhoUkUQBgDA4qqpehwAQfeK8DgAgOlEeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkA\nMKE8AJhQHgBMKA8AJpQHABPKA4AJ5QHAhPIAYEJ5ADChPACYUB4ATCgPACaUBwATygOACeUBwITy\nAGBCeQAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkAMKE8AJhQHogqz58/l0ePHomqeh1l\nwKM8EBWamppk8uTJMn78eMnKypLRo0fLnTt3vI41oDlKhSMKZGVlSV1dnbS3t/8+lpycLE1NTRIf\nH+9hsoGLTx6IeE+fPpX6+voOxSEi0t7eLhcvXvQoFUJ+8nAcp7+zAIgivlAneJpBpPj165ekp6fL\n69evOxxPSEiQV69eSUpKikfJBjYeWxDx4uLipLq6WpKSkiQxMVFEROLj46WyspLi8BA/MEXU+Pr1\nq1y4cEEWLlwo7969k9TUVK8jDWiUB6KO4zg8VkcAHlsAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBg\nQnkAMKE8AJhQHgBMKA8AJpQHABPKA4AJ5QHAhPIAYEJ5ADChPACYUB4ATCgPACaUBwATygOACeUB\nwITyAGBCeQAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkAMKE8AJhQHgBMKA8AJpQHABPK\nA4AJ5QHAhPIAYEJ5ADCJqfJISUkRx3FcfaWkpHi9rQ7c3GOk7S3WxdrsHFVVr0O4xXEccXs7fbFm\nb7iZJ9L21lPkjox7EFOfPBCbXrx4IWVlZTJu3DhJSkoSEZHRo0fLqlWr5O7dux6nG7gGRHm8fftW\n/H6/xMXFid/vl7Fjx8rs2bMlNzdXcnNzJTU1VeLi4qS6utrrqL3S1tYm+/fvl5KSEikuLpbCwkKp\nqKiQL1++yLx587yOF7Y3b97IggULZNKkSfLp0yc5efKkNDY2iojIpUuXZOTIkZKbmyvZ2dlSV1fn\ncdrei7r5aQwJtZ2KigoNBAK6f/9+bWtr63CuurpaBw0apGvXrg1rTa+EyvP161fNy8vTnTt3dji+\na9cuHTt2rBYXF/d4rUjw+PFjzcjI0C1btujnz587nPsz98+fP7W8vFyHDRumNTU1/R0zLF3d73Dn\nFwmz8z6Bi0Ld0IULF+rZs2f/OX7r1i1NSEjQ+fPnh72mV0LlKSoq0hUrVnR6Li0tTcvLy3u8ltea\nm5s1MzNTDx8+3On5znJfvXpVhw0bprW1tX0dz6yr+x3u/CJhdt4ncFFnN/THjx86c+bMf443NDTo\n8OHDdcqUKfrt27ew1vRSZ3laWlrU7/fr5cuXO31PTk6OPnv2rEdrRYLS0lJds2ZNyPOhch89elSz\ns7P7KlavhcptmV8kzC7mf+bR3NwsZWVlHY59+PBB5syZI0OGDJEzZ85IfHy8R+nccf36dWltbZXH\njx93en769OmSkZHRz6lsPn36JFVVVbJhw4aw37ts2TJ58uSJ3Lt3rw+S9Z2onZ/X7eWmnmzn+/fv\nOn36dE1JSdH6+npX1uxPneV59+6d+nw+DQQCun79er1+/bq2traa1vLaoUOHtLCwsMtrusq9detW\nXbVqlduxXBEqt2V+kTA77xO4qLsb+uvXLy0uLtZAIKBXr151Zc3+FirP3r17NRAIqOM46jiODhky\nRFevXq0tLS1hr+WlgoICPXnyZJfXdJX7wYMHmpmZ6XYsV3SVO9z5RcLsvE/gou5u6ObNm9VxHD1+\n/Lhra/a3rvI8fPhQt23bptnZ2er3+9VxHC0qKjKt5ZXs7Oxui72r3O/fv9ekpCSXU7mju/sdzvwi\nYXYhE4hIVL5COXLkiDqOo9u3b+9w/Nu3b3rlypXQNygC9tTTPf7p/v37mp6ern6/X3/8+BE1e4v1\nV091Nz+v9yEiA+OTx/nz59Xn8+ny5cv/OVdeXq7V1dVhr+mVv/Ps3r075LWbN29Wv9+v379/79Fa\nkWDJkiWdfq38p65y//fffzp+/Hi3Y7mis9zW+UXC7GL+25ba2lpZvHixzJw5U44ePfrP+crKSsnJ\nyfEgWe99/vxZrl27FvJ8MBiUrKwsCQQC/ReqlxYtWiSVlZXm91dWVsrixYtdTNR3on5+XreXm/7e\nzsuXLzUtLU0nTJigwWDwn+urqqo0Pz8/rDW99meec+fOqc/n04aGhn+ua25u1hEjRui1a9d6tFak\naG1t1VGjRmldXV3Ia0Ll/vjxoyYnJ+vr16/7Kl6v/J27N/OLhNnF7CePYDAoc+bMEVWVs2fPSmJi\n4u9zTU1Nsnv3bikpKZGCggIPU/bOlStXJDMzUzZt2iT19fW/jzc2NkpBQYFs2rRJZsyY4WHC8Pl8\nPlm5cqWUlZVJe3t7WO/dtWuXzJo1S9LS0voonbuifX4+rwP0lXXr1sn9+/dl1KhRsmTJEhER+fnz\npzQ0NEgwGBQREb/fH5m/cNRDzc3Ncvv2bamtrZW1a9dKS0uLpKamSkJCguzbt0+mTp3qdUSTjRs3\nSk5OjpSWlsqBAwdk0KBB3b7n4MGDcurUKbl582Y/JHRHtM+Pv+fhwZq9EWt/EyKUlpYWKSwslKFD\nh8qOHTtk4sSJv8/9mfv58+eyZ88euXz5spw/f17GjBnjVeRuxdrsYvaxBdEtKSlJLly4IFOnTpW5\nc+fKtGnT5NixY3Lp0iURETlx4oTk5+dLVlaW+P1+uXHjRkQXRyzik4cHa/ZGrP3v1RNtbW1y5swZ\nOX36tLx9+1ZqampkwYIFkpeXJ0uXLpXBgwd7HbFHYm12lIcHa/ZGrP0DHEhibXY8tgAwiblvWxzH\ncXW95ORkV9dzg1t7jMS9xbpYml1MPbYA6D88tgAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBg\nQnkAMKE8AJhQHgBMKA8AJpQHABPKA4AJ5QHAhPIAYEJ5ADChPACYUB4ATCgPACaUBwATygOACeUB\nwITyAGBCeQAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkAMKE8AJj8DwAon3puf4mgAAAA\nAElFTkSuQmCC\n" + } + ], + "collapsed": false, + "prompt_number": 5, + "input": "circuit_plot(CY10.decompose(), nqubits=2)" + }, + { + "source": "

Example 2

", + "cell_type": "markdown" + }, + { + "source": "Create a controlled-Z gate", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$C_{0}{\\left(Z_{1}\\right)}$$", + "prompt_number": 6, + "png": "iVBORw0KGgoAAAANSUhEUgAAADkAAAAYCAYAAABA6FUWAAAABHNCSVQICAgIfAhkiAAAA1JJREFU\nWIXt2FuIVWUUwPHfNOMMXZjR0pp5qLBoxqgH04rIQEnoMkQQXYToYsJkRBFEpBURBYm9GdRDPiQy\nUEQvRZQihD50E8EuUEZBWg9O9wtZmWT1sPbOc/bsvc93zpyHHuYP+2F/a5219trfWutb+zCLUdyP\nl/E2duAFLEQPtmK4C34m8E92/Yr3sT273szWf8ZgF3z9Ry/W4yDuxjkNstOxC1vwaRs25+K2Ctnr\n+AKXlsi24ghW1ti+r43nAGfgXRzAogqdJeLtPpNocxCTGCqRnYD9FbLHMz+rW9i/Bk8mPos+7M6c\njrTQ/QbXJdrdgsUVsmvxUMn6ahHgE4k+XsKaFMUNmeFbEnTfEinYisV4rUZ+vem7uFKk6GSC/Zxh\nfII5dUoX4Cg+xnEJRlclOn9RpFMq54smsxP9bfwONuHGOoVHxC5OtGm4jj58L70rjuAr7MO8Dvzd\nJbpxJdtEkEs7MF7FMnyYqHsS9opaX9ihvxU4VKfwo0jX4xOMjSY6vRVvJOj1Znq/4aKC7EKcluhv\nRGzU/MbFxtr7UtTCHy0MLcAdiU6HM5uteBZX4mbsKcjW4ZdEf1NimDizcbExyF04WZyTddwjCjxn\nmRgcHsDDBd1+UZd1rMNaMVm9WpCdLSarw9n9HDyPs2rsHRKpX8olmbH1NQbWZlfOAjH19Gb3m7KH\nzZlQX5Or8DeeLpH1ibPv9ux+jTgz/1I9pAyKdD23xqer8Dvu1VybY9iI8YL+Y9jccH+5OKtyxjN7\nPSW+LhMv9RXNGdWXBbFNBHRK4XeHVQd5sQiy6fwuptJ2LBdveIeozyl8jufEJNTIIs3z60HxFgfw\npxgP+0WNHGjQ68+CGxCd9J1sfUikaH6g78QPFQGVMYaPFPpAWb3sMb34q5gvdionb1pD+BY/iTFx\nTHOQRxQ6YJfIM6CJlMmmjv0iPXJOdOyzKGczbpihnxT6cLVoTE3MNMi9OLXhfhhfi53KmRQDxvIZ\n+mrFg3gPn3Xb8BLNqf0UHi3RW5rpDXTBZ1njGcUHKkqgt2yxDaYyw1fgPLGrGzTvZK63DzeJfxg6\nYVx8fq0Q5+Bcx46njbhTjITTKGvtndAjOmIxuCJ51+2EeZoz4Si+64LdWWb5P/EvN2Kn7DFqDnoA\nAAAASUVORK5CYII=\n", + "text": "C \u239bZ \u239e\n 0\u239d 1\u23a0" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "CZ01 = CGate(0, Z(1)); CZ01\n" + }, + { + "source": "Decompose and plot it", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$H_{1} CNOT_{0,1} H_{1}$$", + "prompt_number": 7, + "png": "iVBORw0KGgoAAAANSUhEUgAAAHwAAAAcCAYAAACj6tvkAAAABHNCSVQICAgIfAhkiAAABWZJREFU\naIHtmmtsFUUUx39FoAg+QKiSqtxGULCAqEAk1mINPj6IGJGEDxBBER/1kWAkBmPUqISYGKL4qApG\nHsHY+Pogii2oBVFRa1KxKPVF1EggJGAVCeDzw3/W7t07s7u3dy80dH9f5t45s2dm58ycOWfuhZQU\n4A1gG/Av8CfQAiw1sgzwPvCLkf8GfAbclof+Y4GZwNPARqABaAKmGfllwHxf+yeBzcBfwN/AORad\na4H9Zkx7gcWWNiOA54BXgGXA20A9MNoxzllG30GgGXgH+NrU/QqsN2P/HPgH+CbknTtLsW3xPxOM\nkicc8gVGPr0TetvQoGuA3qa+D/AY8DiwD7go8Nwg4AvT57MO3bPRBJUE6nsAdeb54GKZghbKdRZ9\nDcD9vjFCxyK43dL3u45xFUqxbJHFfKPkCoe8Ae22AXnoXAgcAu50yI9BK/R3oFdAdg0wA9hq5Mdb\nnr8LGBuoK0GLay1aVDYeRbuj3Fc3EHmCIC+geRkeqB+CFlUxKIYtcliDjNPPIuuFdmFLHvpq0aBn\nRrRbCLxlqV8MnAbcYfTUWtqsRIvGzxLk8gaF9DnJ6HzAVzcX+wR/C+y01I8F5oX0UQhJ2yKHHugc\n/NAhvxBN0JKY+kYit9kUo+0c7BPn7bYTgT+ALwPyEmBVoO5hM86rI/rMmHav+epmoXnwU27a2Xb+\nSGB8RD+dIVFbBF/IYwzQH7eBLjHlhjidAMtRoHZfjLat6Bz2cwLQbj63Ay8Bo8g+50cjd+9RDtyD\ndveaiD6HmrKvr24FCsT8TDTlRouOreg4SppEbdHTUe+92OXknokA40xpe/Egp5j2nwKbYrT/xFJX\nRfYKrwNuBG716bw4MJ5a5O5WofMtjMqQvv148xJ3oSdBkrZw8jpKgY6zyHoil/pVTF3XIpdTSECz\niI5d6LEZpUtl5vsKsgO9DabfK2Poryc8KPJoBfaQmwUUkyRtYXXpJUA1SmH2WeTnI9cXd0VdYMrW\nGG3LsEeaZwDfB+rqULo0x3zvjfJUj2Gm3B7RZwaYCuwCPgppNxB5gk1ocRwOkraF1eCVKKL9wPGM\nd27GdWs/mnJHjLb3km000Nm/39K2Hu22m9GY2wLyXaZsJ5x5aKfMRemei2pkgIJcZ54kbQurwb0z\nw3XeVpnS9uLTUC7sp8mU50WMpRLtxuBKnoD9bD2AgsEK5PKD4/EmaVJIn+OQoV8E3owYX1jAVgbc\nDdyCLo4qInR52ObL1mdStrDyMnJZgx3yncB3gbrx6EaqBXgkICtB0esWsqNgP8OR8UotsgeBsx3P\nnYki6UPIE/iZiM6+esezI4DdwKvYz8cgzcgD2ALd1cBk83kUShldGRCEz5efpG2RQ6lREjwvPcaY\nASx3yJc5OhmAjP4ecKqvvj+6PVtE9vWlx8nAz3QEZjbW4T57ZyAj+Xd5XxRItqEoPw4ZtHjWW2Sn\nI6/kX6w/oPw4Ctd8QZFs4a3CDHIL21AaNQSlQd5t1lXAx3S88BR0blQRj73ApejHimdQirYSeMjI\nFqBd6lFq+vsJ3a61oJzaxlNoIdlYjYw7FbntpcDzyOVOJjxzqKDjR51mdINXjdxrIwqYAM4y73DQ\n9+wOoo8wF8W2RaKErdijlenkBozrUAAaRTHnK3SHp3Se7eSmaf1QBtHlSA1eOFuAkwJ1g9Fx1OVI\nDV44B1Bgea757mUOjeb7MHJvCY8Yrrv0fBmKgocadNW3G/2iFOey5WhgNgo8G1Fufz2K6kG//deQ\n/ceLYs5XqO6k7oT7oBTLzx6yI+/uQCnZ0Tpojm9Af5zwKOZ8pbboAtx0pAeQcvioRpckKd2EpOKk\nlJSUlJSUlG7Mf20dXidP7IWnAAAAAElFTkSuQmCC\n", + "text": "H \u22c5CNOT \u22c5H \n 1 0,1 1" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "CZ01.decompose()\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 8, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x472d550>" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAANcAAACOCAYAAACi/J2KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAB1NJREFUeJzt3U1IVG0bwPHrTI9Zk2VZk5CLKKiRXGiUC5nyYxOVVAiR\nUqsKDMYWtYn2LSJpq7XKoXbZIoJSNDQsozADN9GmNFtUQwb2oVbOXM/qid7XGdPJyzNz5v8DN97N\n6Tre/p07ncpR1c8islIALChHVdXtIQAv8rk9AOBVxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAj\nxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUY\n8URcBQUF4jiO2VtBQYHbt+hpXt0/T/xb8Y7jiOVtWF8/23l1//5Z9N8RC05V5fHjxxKJRGR0dFSm\npqYkPz9fKioq5OTJk7J+/Xq3R8xKnjgWZitVlUgkImVlZXLixAkpLi6Ws2fPSl9fnxw/flxevXol\nwWBQjh07Ji9fvnR73OyjHjDbbdTV1WlxcbE6jqM5OTlaVlamjY2Nqqo6MjKiNTU1WlRUpI7j6KpV\nq7S8vFxbWlrmfH23TE9Pa2Njo5aWlur9+/c1Ho//Wvt93k+fPumlS5c0EAhoT0+PG6P+kVf3L/0+\na1Lwpw/ekydP1HEcPXPmTML1ixcvquM4evPmzZSuv9ji8bg2NTVpdXW1fv78ecZ6onl7enp03bp1\nOjAwsBgjzotX9y8rjoV9fX0iIrJ///6E6729vbJkyRLZs2fPYo6Vss7OTunu7pbbt2/LypVz+09B\na2pq5OrVq9LQ0CDxeNx4woWVsfvnStIL7E+3UVtbq7m5uToxMTFj7cePH7pixQrdvn17ytdfbLW1\ntdrW1pZ0Pdm88Xhcd+zYoR0dHUaTpcar++f5Z654PC79/f1SXl4uy5cvn7E+MDAgExMTUllZ6cJ0\n8zc8PCxPnz6V+vr6eT/WcRwJh8PS0tJiMJmNTN4/z8c1NDQk4+PjUl1dnXC9t7dXRESqqqoWcarU\n3bp1S44cOZLwE20uGhoapKenR75+/brAk9nI5P3z/M+5/juvd3V1ybNnz2asDwwMiOM4afmVL5Fo\nNCobN25M+fF+v1/Wrl0rY2NjkpeXt4CT2cjo/Ut2XhSRjHpLpq6uTnNycvTbt28z1qanp9Xv92tJ\nScmsZ2e37y0b3ry4f0mfuTSDXu7jOE7C96uqPHz4UEpLS8Xv989YHxwclMnJyTl91UuXj8eFCxfk\ny5cv0tzcnPTXzPZyn1gsJqtXr5bR0VFZs2aN1Zjz4tX98/SfuV68eCFjY2Oye/fuhOuPHj0SkfQ8\nryezb98+aW9vl1gsltLj7927JyUlJWkT1mwyff88Hdd/5/Vdu3YlXO/v7xcRSc/zehI7d+6UQCAg\nnZ2dKT2+tbVVwuHwAk9lI+P3b9bDaoZIdhv19fXq8/n0w4cPCdcLCwt1y5YtKV/fLZFIRCsrK/Xn\nz58J15PNOzg4qIFAQCcnJy3Hmzev7p9nn7m+f/8uDx48kM2bNyd8VfjQ0JBEo1EJhUIuTPd3jh49\nKrm5uXL69Ok5v9pieHhYDh06JC0tLbJs2TLjCf+eJ/bPlaQX2O+38ebNG62srNRNmzapz+fTpUuX\naigU0itXrqiq6p07d7SiokIDgYD6fD4tKCjQqqoq7e/vn9P108X4+LiGQiGtr6/X9+/f/8/a7/PG\n43Ht7u7WDRs2aGtr62KPOSde3T/+smQaXD9VU1NTcu7cOblx44bs3btXTp06Jdu2bZPCwkIZGRmR\nu3fvSmtrq8RiMWlubpYDBw64PXJCXt0/4kqD6/+t8fFxuX79urS1tcnbt2/l48ePUlRUJBUVFRIO\nh6W6ujrpt7vTgVf3j7jS4PoLjXkX9/rJePYbGoDbPPPaQstjTyb8wDXTeXH/PBFXJh2BMJNX949j\nIWCEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CE\nuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAj\nxAUYIS7ACHEBRogLMEJcgBHi8pBYLCZdXV0iIvL69WuXpwFxecS7d+9k69atcvjwYRERKSkpkfPn\nz7s8VXZzVFXdHgJ/7+DBg9LR0SHT09O/3uf3+6Wrq0tCoZCLk2Uvnrk84v/DEhGZnJyU9vZ2lyZC\n0mcux3EWexbAU/5JtsBpMbM0NTXJtWvXZGpq6tf7/H6/PH/+XILBoIuTZS+OhR5x+fJlqa2tldzc\nXMnLy5P8/HyJRCKE5SK+oeEx0WhUotGoBINBycnJcXucrEZcgBGOhYAR4gKMEBdghLgAI8QFGCEu\nwAhxAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhxAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhx\nAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhxAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhxAUaI\nCzBCXIAR4gKM/Avn+MC2/OP35gAAAABJRU5ErkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "circuit_plot(CZ01.decompose(), nqubits=2)" + }, + { + "source": "

Example 3

", + "cell_type": "markdown" + }, + { + "source": "Create a SWAP gate", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$SWAP_{1,0}$$", + "prompt_number": 9, + "png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAcCAYAAAAgLuLfAAAABHNCSVQICAgIfAhkiAAABDdJREFU\naIHt2HuIV1UQB/CP7ur63DRre/0RuET2QHpQ0sO0skhJwhJKoiiVIAiDpDAqwYwsih5Y9KSo7EVG\nUVErbiXawyikCI0okvKPyNI0rVxbsz/m/Ni71/v7/W4+SnS/cDnnzJwzM2fuuTNzLj3YI2jEDCzA\nS3gd0zAQ76AdHdiOTizH4LR2Fr5PvO34HFdmZF+FtYm3GXeWsOc1TK3B74NF+DbJ3YDFaMMyfIe3\ncGIJXbuE/knRreidod+Mr4Uz4e5k6JMFMloT79UqOk7FxxhUwp6Lk6zZJeZemOZen6P3wePYgnNK\nyKmL3lXoz+JH3IG/M/R54nS1p/Ha1G4pkNGU2r5VdFyUns11bByI21P/0DpzYXRq23P0vzA32TW9\nhJy6KHLeAWJTr1RZ8yXeTf11NWTPSO2wAt7x+EmX82vhNjyQ+mWcNwbrsaqANyC1h5WQUxdFzjtT\nHPGjqqxZhtWpv77KnHH4BpsUO+9aPFLCvmPE5/+M+BTrOW8gTsaHaX4eo1K7oITuncJBIgF04F5d\nzizCGcLIhzK0JhEv+won/5xbMwkTStryNoan/joR9GvhvGTPTQW8BnyVbBpcwN9tuFFXJq1kxIcx\nJDdvhB2dNxsTU/8z8SJ6pXET5pe04XIRoypYhT/qrJmb7Dk9Rz9CVAsLRVja4xiBOViKrcmohbk5\nLbo7rxVvZPiLEn9oGs/E0SV0N+MTXTEK3kuyam1+KbaJ7P9oep5O+xhXQu8ewXH4QWSsfhl6o+7O\nezPNreCFxG8VQXpOSX0PYnKO9mKSVc35/UTW/7Skjl1GPmHMqjJvJZ4XxvfK0DuxMfUni8J4ZYb/\nS2qH4QbcV8KmEzBFlBNtmee0xK+WNEaJsLCkhI7dgsZMfxDG4q4qc5uxAn/m6OtEAJ6Nswt4MF4U\n1xvVRi/h4DEiuGcxUySwas47K7VL6ujog8dEDVsvARHha5KoHI4U+8z7wHhxkloLBLSIuizvHOIz\n6dBV12VxnTity1UvyLOYJpJVES5VfHOooF3Y31xD/lRRcHcKp9RDg0hUh6TxdDxVNPEeUZstxLEZ\n+nCx+ZlVFLQlBY0FvCliw6MLeHlcIOJqQxX+uUnWvAJeM34X2b0MtijnvEvwUWbcIk7dgPzE53Cg\nOF2LxYlqExfyfOrP4gmcX4U3JsmthZPES6uURct1fxH98b4IAdvxWxqPTM8yrEm8TfhAlDm1UNZ5\nt9jxptUpCvH9FmWdd7+43WSxSfqxUCYO7c9Ybcdr3gDpWtrjvNpYIeJcBS2iIljz/5izd6Dosx2J\nw3O0QeLXXCVBXIGXK8xqmW1fxQTxF3uscMwQfJF483GZ7gluqzhl14gb0inilrThP7F2L8NQUWRX\nnoMzvAZcXWNtU55QVJvty/i1Bm+b2v7o2M227FOYKK5fPdgJ7G9fYQ960IMe/Cv8A97G6Y4Q7MLo\nAAAAAElFTkSuQmCC\n", + "text": "SWAP \n 1,0" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "SWAP10 = SWAP(1, 0); SWAP10\n" + }, + { + "source": "Decompose and plot it", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$CNOT_{1,0} CNOT_{0,1} CNOT_{1,0}$$", + "prompt_number": 10, + "png": "iVBORw0KGgoAAAANSUhEUgAAAOQAAAAcCAYAAABxlhP5AAAABHNCSVQICAgIfAhkiAAABThJREFU\neJztm3uIVUUcxz93t01ta0PD2h7uZqQGWWRgSvZ+K0QEYUQPemCREj0kkLTAiEoIAwuWipDNsqRa\ngghCxY0sLXAVCrPWjc2gMrQnvShs++P3u7tzZ+ecM/ees+nemQ9czj3z+83re+bM/c3ccyASiYwa\npgIPAK8DHwLrgbXAZKAEdAKt6nsS0A3sBgaAbY7yZgKfq30A6AMutnwagOuALmCNftYDjwNHWL7d\nWs5+YJP6/aRpvcC7mr5H0x6qqvfVEbXypxqtIOpFI7AE+BZYCEwxbJOA94DViAA2i4FPtJGzE8rv\nBq51pJ8C7AQ6gGYjvQm5YL1aP8AJwD5glqPsf4DxRtphwEbg5oT25CFq5U8erSA8vQBoA7YCXwGn\nJficjYjyrMO2Fpij9s6E/K840iYB/cCtCXnGaZu69Pxe4BrL53DgD6T9No8wXOC8RK38yasVhKUX\nIHf7x0jjj8/w/Z7hM1EJWKffe4A/gQmWzwRglZXWisxQz2XUuQa5GO1aT6NlL1+sFY68z1A5s+Ul\nauVPXq0gEL0arPNHgXOAh4HvMvLuRn7CTaYjYQFIaDAWuM3yOR/4wDhvQX7yjwTuy6izT49nAe8A\nByz7hXp835G3B1kDFEXUyp+8WkFYegEwQxuxk+E3qovrHWmLGGp4M/AzInDJ8FlJ5YL9QWTmecKj\nzpfU11U3yEL7AHC0R1l5iFr5U4RWEI5egyzVBi3IUUYnMnOVWaVlXm6kvWp8bwC+Vp9pHuVvU9+T\nHbZG4Fdgu39zayZq5U8RWkEgepkz1nl6zFPpWOAv47xDj3frsQX4xbC3Iwvu/cAXGWWPB04H9iIL\ncJsZwFG4Q4qiiVr5U4RWEIhe5g05C/gX+Mwj31RH2hQkhDDZhWxlXw2ciFycLYb9VD32e9S5ELko\nXQn2C/T4fwyyqJU/ebWCsPQaZAfwg4ffRNwx+R3AFY70+UgosBx4ksqQ4Ey1bciocwwye/UjM5WL\nt7SsiRllFUHUyp+8WkFYeg3ytFbaluG3HDjOkf4isptl04R0+BvgTcvWgOxO/U7l+sBmBTLLXpRg\nLyGhic8s3Aa85uE3F9kUWMpQWFQmBK3S+u8iSde8WsHo0AuKGVuDzEZi9CUpBd2lHxfrEtIBHkMu\nyssO2/Nqm5uQdzHyh+ztKeVP1zI6UnyagWXahr4UP5A/rj9iaAfvDWQ2LlPvWmX13yRL17xawaGv\nV5Fjq4KrtIH3IE8vlJmGhATzEvLdCLyd0og2ZMv4ToetSfNuofKP3nZk1vwUWXCnsQwR7aYMP4DL\nyBbtBeTpizK3IM8ymtSzVj79t0nTtVatYHToVaaosVXBTOApYLM6dmqjJjt85wFfMvRA7w4kdnfR\nRfKifQxwPxKarNZPB/J84LiEPAuQ9cFWJOQYQEKXTcgjVkn4iLYZWbeYefY5/OpVK9/+Y/mk6VqN\nVjC69CpT5NgKBh/RdgE3GOdzgL9HrEWHHrX030fXeif32PJ5ciJE+pFZsUwz8ONBasvBIPT+jySp\n2sYb0s124FjjvBV56iMUQu//SJKqbbwhh7gU2QQAeTPhEsN2Jem7bPVGVv9NrSLZeI8t+xWTeqaE\nPJExH3nvrjwZ7UHE6gF+QwTrRd5OOAM4F9nFW0llqFHPpPXf1ipN11CIY6tGWq1Pi2FrQragTRqR\nd/lCJan/tlZpuoZCIWMrtMG2N8V2DMPfabPfiQuNpP7bWqXpGgpxbBXMIuKa2peoVXVEvWogtGgh\nD1Gr6oh6RSKRSCQSiUQikUikcP4DcImNVwb6bzMAAAAASUVORK5CYII=\n", + "text": "CNOT \u22c5CNOT \u22c5CNOT \n 1,0 0,1 1,0" + } + ], + "collapsed": false, + "prompt_number": 10, + "input": "SWAP10.decompose()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 11, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x7f082c973650>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 11, + "input": "circuit_plot(SWAP10.decompose(), nqubits=2)" + }, + { + "source": "

All together now

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 12, + "input": "gates = [CGate(1,Y(0)), CGate(0,Z(1)), SWAP(1, 0)]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$C_{1}{\\left(Y_{0}\\right)} = S_{0} CNOT_{1,0} S_{0} Z_{0}$$", + "png": "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\nYII=\n", + "text": "C \u239bY \u239e = S \u22c5CNOT \u22c5S \u22c5Z \n 1\u239d 0\u23a0 0 1,0 0 0" + }, + { + "output_type": "display_data", + "latex": "$$C_{0}{\\left(Z_{1}\\right)} = H_{1} CNOT_{0,1} H_{1}$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAMkAAAAcCAYAAADLNZuZAAAABHNCSVQICAgIfAhkiAAAB21JREFU\neJztm2lsFVUUgD9oKauVKiAlIpsWiIQgAgGqoYCIVgOissQINkRERSUaUASFoGFJwIBIIqLSYJWm\n1kQSgYqVRRZZlBJwQ0VRQRDc6goqiz/Onb73pndm7rw3U0qYL3k/3pz7zl3OnXvPOfc+iIiISIkc\n4BGgFNgKvAOsANoBdYDlQMsA6hkHnFGfP4DdwNvqs049rwQyA6graEYhY3Mcaech9b27ks8GPiDW\nv31In+onUZcfe/QDNgHfq3pf0ui7Azio5CeBvcBltjINgAnASmAZUAKsBR4C6saVSwOOEBuDcmA9\ncEI924XY8z3gmHo2xO8AeFCTtiANmAIcBu4HroiTtQY2AoWqElOaAmMcZKuBr4G+Gtly4F9goIvu\niT7aERZbgL+BCzWyRsB/wM4kdadij0LgU9W2LI08Axn7KzWyfsB3wCTVBotMZNJvJDbBBqn629l0\nHFP641+oJsA3wFWaOoMgTFsAspJsQzrRyaFMd+RNXGyoMxMowrnRBxxkM1U9BR76bwZmGbYlDBog\nK2a5g3wQ0o+nk9Cdqj1KgXuU/GGNvCH6XaYPMsF7O9TZGpls09X3F0h8eQE6q3pf1Py+BGjsoDsV\nwrQFAOnADmTSZnuUPQoMM9RbCHRzkA0BHtc8L0A685RhHSXAWMOyQZOHtHWqg3y2kl/nU2+q9mgD\nzEcm42/A54hbFk9/4G7bs+6Ie3ufR50fAb+qdhZr5OORfo/WyF710J0seYRji2oK7jQouwVxobzo\nBrzlIr+N6rvIQMTFKjLQb9EScSvq+fhNUExHxq2Pg/x9pD9+V85U7TGamN+/WOmyu60zkFjHIgf4\nCdhgUOebSmdr9JNuhZK30cgKDPQnQ1i2AMQ/PAV8QqL/6MRIQ73FiDtkShdkFduA+Mt+WAgM9/mb\nIFgH/ImsqHYaI27JNp86g7DHEmJxSBdk8rxhK7PC9v01Vc7EvntV2Y4O8oPAtwZ6giRwW8QrykeM\nsRA4bfDbEkP9g5Bt14RsYA2SJbkVeeP9sA+4F/HDnbgWeM6n3r04Jx3qIX77cWCVRt4MGYdNPusM\nwh4XIe4QwMfAZmAo0ApJAmSQOMbZyCJTiWSz3EhDdp1K4AuNvD1wKf68gVQJyxZVlCGrwtXJKtCQ\nC+wxLNsEqEB8a3uGxJQ8ZBWpSfoi4/akg9xymfJ96k3VHpcAi2zPRimdVrCdCzwQJx+m5E5Bbzx9\nVNkyB3mBktvjnTAJyxZV/IJs7w0NyuZ4FwHEJ15jUC5NlfsL6GmT9UAMbkI2MgjNDMsHwRRVZ38H\n+SZkXP2e8aRqj+HA7bZnGcgidAgZ86lA1zj5ZKQvSw3qLFVlxznIlym56VwJgrBsUcVu4GeDcs2B\nOYY6J1Pd59WxBGn8UI2sFEnrmfI7we6GXpQhLksjjSwD2fp3JaE3VXssAlponlur6TDENvHZrjFK\nNs+jzg6Ivd6lerbMYj/iNtckYdmiigXIANlPXO3MJHFlz0Xe4ElUT7tNA1730PeYqld3INiBxECz\nHrJCtXfRdxg5BHMiF/jQ56fQQVcaklrd7iC3XJIFDnK3/iRrDwunmLEtMsHXI0F6PO1UnRUu9aUj\nh7+VSFZLRyulx8v2bnPHjpftw7RFFb2RQ5gpLmXGkxiEN0eCZes0diFybcJiHO4xyUgkKH1WI0tH\nDH2X+j4WOTM5ifOhWiYyEJ1d6gySHqq++Q5yy325RSPz6k8y9rDIAp53+d0q1a5JGtlOJWulkdUB\nXkF2CCeXBmKxzwSXMl5zJx4T24dpiwRuQI7zHyTRF+4IzKV6wDODRP91AHJWYZGv9Om25GuQSbCS\nxBRnumpomWr0xbbfnXDpSC9kIEzOb4JgGjHXRUc53jGSW3/82sNiHu4nyjepdvXSyJohmbAiEs+c\nuiJXhNaid+PiKVb6nQ6QwXvu6HAbq7BtkUBP5G3cjFygWw48gT7jVIx01qKTaoh1nycLmehtbb/L\nQA6sziA7zXb1+QzxKa0LaOt9dmQ05tm0VJiD+LbW5b2vkLGqjywIq5GJZvWjAv1uCd6G8WOPicQu\nGf6DHJxdoClXV7Vfd5YA4r5NR9zMl5EX5hkkZnSKQWYhMcoeYv3+Uj2brSnvNXd06MaqJm2RFOXI\nNmbRRjUkfqXZCgwOsE63jsxCVthziVAMcw5gMnfshD1WWv0mJ7luHEA6ZtGY2LV2i6VUT0WGQTpw\nIxJ8RdR+TOZOrSDVl6SCxDe/JfADiae4RUhK1i3jFASPIi6b7vQ3ovZhMndqBam+JDtJzHIMpnpW\n5TSS5ZpPkn9uMSAHGEHsJDmi9uM2d9JJ4ZZu0KR5F3HlCJItuB75004LJEizrwZHkKB8BBKjJEM+\nctUhD7nC0pRYkD4X+c/E0SR1nw3c+nM+4DZ3LkduNe9A/rAV9li56nfKVPilDpIu9Noq6yNZl2TI\nInEnOgX8GIDes4Vbf84nnOZOJrK7lBL+WEW2iDgnGYDsKGedVGOSiIgwqIvcmth/thsSEVGbcTro\njIiIiIiIiIiIiIiIOK/4H2GZIPTJUTibAAAAAElFTkSuQmCC\n", + "text": "C \u239bZ \u239e = H \u22c5CNOT \u22c5H \n 0\u239d 1\u23a0 1 0,1 1" + }, + { + "output_type": "display_data", + "latex": "$$SWAP_{1,0} = CNOT_{1,0} CNOT_{0,1} CNOT_{1,0}$$", + "png": "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\n", + "text": "SWAP = CNOT \u22c5CNOT \u22c5CNOT \n 1,0 1,0 0,1 1,0" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAACOCAYAAAAvkdreAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAABEJJREFUeJzt3b1LI1sAhvF3khvBxIuaQm1sbQSxEPETsRMEsRELC8FG\nrNMIFnaCNlYWVhbRyk7/A238rASxEwvFlEYiGNDZQtx7ZW8W767ua2aeH0yTxMOZ8DBnnIFMEIZh\nUdLfAv6wIAzD0D0JxFPCPQHEF/HBhvhgQ3ywIT7YEB9siA82xAcb4oMN8cGG+GBDfLAhPtgQH2yI\nDzbEBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KDDfHBhvhgQ3ywIT7YEB9siA82xAcb4oNN7OIr\nFos6OzvT/f29eyqxF5v4wjDUwsKCmpub1d/fr+bmZi0uLopfBfaJzW8yb21taXZ2VqVS6ftrmUxG\nGxsbmpiYMM4svmITX09Pjw4PD394fWBgQPv7+4YZoWJ8QRD86bkgZiqe84VhGKlteXlZtbW1b/Yx\nnU5rdXXVPre4brFZdh8fHzU6OqqDgwOVSiVlMhkNDAxoZ2dHNTU17unFUmzik16O5icnJ+ru7tbx\n8bG6urrcU4q1WMX3KggCxXC3v5zYXOfD10N8sCE+2BAfbIgPNsQHG+KDDfHBhvhgQ3ywIT7YEB9s\niA82xAcb4oMN8cGG+GBDfLAhPtgQH2yIDzbEBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KDDfHB\nhvhgQ3ywIT7YEB9siA82xAcb4oMN8cEmMvFls1kFQfCuTdK7P5vNZs17Fl2ReQLRZz1ViKcVfZ7I\nHPlQfSIZ3+npqfr7+1VTU6NEIqG6ujoNDw/r4eHhzecKhYKy2awSiYSSyaQ6Ozt1e3trmnUMhRHx\nX7uSz+fDIAjC6enpin+Xz+fD3t7e8Pr6+t3j4mNE+pzv4eFBTU1NSqVSKhQKPzxX9/LyUvPz89rc\n3FQqlXr3uPgYkVx2X6XTaY2Pj+vu7k67u7tv3isWi8rlclpfX68YHj5XpOOTpKmpKUnS1tbW99ee\nnp40NzenlZUVNTQ0uKYWe5FedqWX0FpaWnR/f69CoaD6+nrlcjmNjY1paGjol8fF74v8kS+ZTGpy\nclLlclnb29taW1tTe3v7u8LD54p8fNI/S+/S0pJubm40MzNjnhGknyy7r7ehqkml5fH5+VnpdFod\nHR06Ojr6X2NW4/dQLf6q9Ea1nef8LJLz83OVy2WNjIz80tjV9l1Ui1gsu3t7e5LEed4XE5v4UqmU\n+vr63FPBv8TiUktra6taW1t1eHj4YePi90X2yHd1daWhoSG1tbWpUCjo4uJCg4ODby42wyvyR76v\nOi4ifOTD10d8sCE+2BAfbCre4ahGn3ErrLGx8cPHxIvIxMd/pNWHZRc2xAcb4oMN8cGG+GBDfLAh\nPtgQH2yIDzbEBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KDDfHBhvhgQ3ywIT7YEB9siA82xAcb\n4oMN8cGG+GBDfLAhPtgQH2yIDzbEB5tvYBYsxI+4hMwAAAAASUVORK5CYII=\n" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAQ8AAACOCAYAAAAvtI33AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACT5JREFUeJzt3EtIVH8YxvH32DCjleCFLhhoGBRBEGFEEFmLSMzSLLu4\nkGhTUFItui2sIIqiFkEUFaUuwqg2brqH1SK6/BehdLEL2t0wKmy6p/b+d5HlqPN69MyM3w/M5pwz\nP57feeNpjoM6qhoUkUQBgDA4qqpehwAQfeK8DgAgOlEeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkA\nMKE8AJhQHgBMKA8AJpQHABPKA4AJ5QHAhPIAYEJ5ADChPACYUB4ATCgPACaUBwATygOACeUBwITy\nAGBCeQAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkAMKE8AJhQHogqz58/l0ePHomqeh1l\nwKM8EBWamppk8uTJMn78eMnKypLRo0fLnTt3vI41oDlKhSMKZGVlSV1dnbS3t/8+lpycLE1NTRIf\nH+9hsoGLTx6IeE+fPpX6+voOxSEi0t7eLhcvXvQoFUJ+8nAcp7+zAIgivlAneJpBpPj165ekp6fL\n69evOxxPSEiQV69eSUpKikfJBjYeWxDx4uLipLq6WpKSkiQxMVFEROLj46WyspLi8BA/MEXU+Pr1\nq1y4cEEWLlwo7969k9TUVK8jDWiUB6KO4zg8VkcAHlsAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBg\nQnkAMKE8AJhQHgBMKA8AJpQHABPKA4AJ5QHAhPIAYEJ5ADChPACYUB4ATCgPACaUBwATygOACeUB\nwITyAGBCeQAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkAMKE8AJhQHgBMKA8AJpQHABPK\nA4AJ5QHAhPIAYEJ5ADCJqfJISUkRx3FcfaWkpHi9rQ7c3GOk7S3WxdrsHFVVr0O4xXEccXs7fbFm\nb7iZJ9L21lPkjox7EFOfPBCbXrx4IWVlZTJu3DhJSkoSEZHRo0fLqlWr5O7dux6nG7gGRHm8fftW\n/H6/xMXFid/vl7Fjx8rs2bMlNzdXcnNzJTU1VeLi4qS6utrrqL3S1tYm+/fvl5KSEikuLpbCwkKp\nqKiQL1++yLx587yOF7Y3b97IggULZNKkSfLp0yc5efKkNDY2iojIpUuXZOTIkZKbmyvZ2dlSV1fn\ncdrei7r5aQwJtZ2KigoNBAK6f/9+bWtr63CuurpaBw0apGvXrg1rTa+EyvP161fNy8vTnTt3dji+\na9cuHTt2rBYXF/d4rUjw+PFjzcjI0C1btujnz587nPsz98+fP7W8vFyHDRumNTU1/R0zLF3d73Dn\nFwmz8z6Bi0Ld0IULF+rZs2f/OX7r1i1NSEjQ+fPnh72mV0LlKSoq0hUrVnR6Li0tTcvLy3u8ltea\nm5s1MzNTDx8+3On5znJfvXpVhw0bprW1tX0dz6yr+x3u/CJhdt4ncFFnN/THjx86c+bMf443NDTo\n8OHDdcqUKfrt27ew1vRSZ3laWlrU7/fr5cuXO31PTk6OPnv2rEdrRYLS0lJds2ZNyPOhch89elSz\ns7P7KlavhcptmV8kzC7mf+bR3NwsZWVlHY59+PBB5syZI0OGDJEzZ85IfHy8R+nccf36dWltbZXH\njx93en769OmSkZHRz6lsPn36JFVVVbJhw4aw37ts2TJ58uSJ3Lt3rw+S9Z2onZ/X7eWmnmzn+/fv\nOn36dE1JSdH6+npX1uxPneV59+6d+nw+DQQCun79er1+/bq2traa1vLaoUOHtLCwsMtrusq9detW\nXbVqlduxXBEqt2V+kTA77xO4qLsb+uvXLy0uLtZAIKBXr151Zc3+FirP3r17NRAIqOM46jiODhky\nRFevXq0tLS1hr+WlgoICPXnyZJfXdJX7wYMHmpmZ6XYsV3SVO9z5RcLsvE/gou5u6ObNm9VxHD1+\n/Lhra/a3rvI8fPhQt23bptnZ2er3+9VxHC0qKjKt5ZXs7Oxui72r3O/fv9ekpCSXU7mju/sdzvwi\nYXYhE4hIVL5COXLkiDqOo9u3b+9w/Nu3b3rlypXQNygC9tTTPf7p/v37mp6ern6/X3/8+BE1e4v1\nV091Nz+v9yEiA+OTx/nz59Xn8+ny5cv/OVdeXq7V1dVhr+mVv/Ps3r075LWbN29Wv9+v379/79Fa\nkWDJkiWdfq38p65y//fffzp+/Hi3Y7mis9zW+UXC7GL+25ba2lpZvHixzJw5U44ePfrP+crKSsnJ\nyfEgWe99/vxZrl27FvJ8MBiUrKwsCQQC/ReqlxYtWiSVlZXm91dWVsrixYtdTNR3on5+XreXm/7e\nzsuXLzUtLU0nTJigwWDwn+urqqo0Pz8/rDW99meec+fOqc/n04aGhn+ua25u1hEjRui1a9d6tFak\naG1t1VGjRmldXV3Ia0Ll/vjxoyYnJ+vr16/7Kl6v/J27N/OLhNnF7CePYDAoc+bMEVWVs2fPSmJi\n4u9zTU1Nsnv3bikpKZGCggIPU/bOlStXJDMzUzZt2iT19fW/jzc2NkpBQYFs2rRJZsyY4WHC8Pl8\nPlm5cqWUlZVJe3t7WO/dtWuXzJo1S9LS0voonbuifX4+rwP0lXXr1sn9+/dl1KhRsmTJEhER+fnz\npzQ0NEgwGBQREb/fH5m/cNRDzc3Ncvv2bamtrZW1a9dKS0uLpKamSkJCguzbt0+mTp3qdUSTjRs3\nSk5OjpSWlsqBAwdk0KBB3b7n4MGDcurUKbl582Y/JHRHtM+Pv+fhwZq9EWt/EyKUlpYWKSwslKFD\nh8qOHTtk4sSJv8/9mfv58+eyZ88euXz5spw/f17GjBnjVeRuxdrsYvaxBdEtKSlJLly4IFOnTpW5\nc+fKtGnT5NixY3Lp0iURETlx4oTk5+dLVlaW+P1+uXHjRkQXRyzik4cHa/ZGrP3v1RNtbW1y5swZ\nOX36tLx9+1ZqampkwYIFkpeXJ0uXLpXBgwd7HbFHYm12lIcHa/ZGrP0DHEhibXY8tgAwiblvWxzH\ncXW95ORkV9dzg1t7jMS9xbpYml1MPbYA6D88tgAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBg\nQnkAMKE8AJhQHgBMKA8AJpQHABPKA4AJ5QHAhPIAYEJ5ADChPACYUB4ATCgPACaUBwATygOACeUB\nwITyAGBCeQAwoTwAmFAeAEwoDwAmlAcAE8oDgAnlAcCE8gBgQnkAMKE8AJj8DwAon3puf4mgAAAA\nAElFTkSuQmCC\n" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAACOCAYAAAAvkdreAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAABIRJREFUeJzt3TFIlH8cx/HP81fUQ27wwEnBG10cmqJAkUQSG1R0CgJ1\nbShwcWlpctVBaAkicRDU6eBwMEQUPUQaagkUxHBoSDyQ8BB+DVJhon/Ls48+z/sFz/Ic/Pg++uae\n5/EBnyiEUJSUFvCPRSGE4B4CyfSfewAkF/HBhvhgQ3ywIT7YEB9siA82xAcb4oMN8cGG+GBDfLAh\nPtgQH2yIDzbEBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KDDfHBJlbxZTIZRVFU1i2TybgPK7Zi\n9b9aoihSuQ/nOtbEiVh98+F2IT7YVLoH+Be+fPmixsZGHR8fq7KyUtlsVtlsVhUVFZKkQqGg/f19\nzc7Oqq+vzzxtgoQYOe9wXr9+Haqrq8PExEQ4Pj4+9dn8/HyoqKgIz549+6M1cXWx+smeF0p/f3/I\n5XJn9q+trYVUKhV6e3v/eE1cXezvdkulkh4+fKh3796d2r+9va179+4pm81qaWlJNTU1l14T5RH7\n+HZ3d/Xp0yd1dHT83Pf161fdv39fpVJJ6+vrqq+v/6M1UR6xj+93R0dH6uzs1MePH7WysqLm5uYr\nr4m/k4i73R9CCBoaGlKhUFA+n//f8HDNzrsYlHQrt4uMjo6GKIrC27dvL31R7D6eWG+X/i3cAhfF\n9+rVqxBFUXj58uWp/d++fQuLi4t/tSauJhFPOPL5vJ4+farBwUG9ePHi1GfT09M6ODgwTZZssb/h\neP/+vdra2nT37l3l8/mfTzV+aG1t1cLCglKp1KXXRHnE+pvv8+fPevTokZqamjQ3N3cmvOnpaWUy\nmXPDw/WKbXzFYlHd3d0KISiXyymd/vV6ub29PY2NjenJkyfq6ekxTplssT3tDg8P682bN2poaFBD\nQ4Okk6cdW1tbKhaLkqSqqirt7u7yR2aT2MZ3k9fEidiednHzER9siA82sXu2G0VRWderq6sr63r4\nJVbxXfbGgJuIm4HTLmyIDzbEBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KDDfHBhvhgQ3ywIT7Y\nEB9siA82xAcb4oMN8cGG+GBDfLAhPtgQH2yIDzbEBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KD\nDfHBhvhgQ3ywSVR8IQQVCgVJ0sbGhnkaJCa+o6MjdXZ26sGDB5Kk9vZ2dXV1qVQqmSdLrsTENz4+\nrtXVVR0eHkqSDg8Ptby8rMnJSfNkyRWr9+1epKWlRR8+fDiz/86dO9rc3DRMhHPjK/cL9IDfnXva\nDSHEapuamlJtbe2pY6ytrdXMzIx9tqRuibnme/z4sZ4/f65UKqV0Oq1UKqWRkRENDAy4R0usxFzz\n/VAsFrWzs6NsNqt0Ou0eJ9ESFx9ujsScdnHzEB9siA82xAcb4oMN8cGG+GBDfLAhPtgQH2yIDzbE\nBxvigw3xwYb4YEN8sCE+2BAfbIgPNsQHG+KDDfHBhvhgQ3ywIT7YEB9siA82xAcb4oMN8cGG+GBD\nfLAhPtgQH2yIDzbEBxvigw3xwYb4YEN8sCE+2BAfbL4DB1vr/IQMFOAAAAAASUVORK5CYII=\n" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAANcAAACOCAYAAACi/J2KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAB1NJREFUeJzt3U1IVG0bwPHrTI9Zk2VZk5CLKKiRXGiUC5nyYxOVVAiR\nUqsKDMYWtYn2LSJpq7XKoXbZIoJSNDQsozADN9GmNFtUQwb2oVbOXM/qid7XGdPJyzNz5v8DN97N\n6Tre/p07ncpR1c8islIALChHVdXtIQAv8rk9AOBVxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAj\nxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUY\n8URcBQUF4jiO2VtBQYHbt+hpXt0/T/xb8Y7jiOVtWF8/23l1//5Z9N8RC05V5fHjxxKJRGR0dFSm\npqYkPz9fKioq5OTJk7J+/Xq3R8xKnjgWZitVlUgkImVlZXLixAkpLi6Ws2fPSl9fnxw/flxevXol\nwWBQjh07Ji9fvnR73OyjHjDbbdTV1WlxcbE6jqM5OTlaVlamjY2Nqqo6MjKiNTU1WlRUpI7j6KpV\nq7S8vFxbWlrmfH23TE9Pa2Njo5aWlur9+/c1Ho//Wvt93k+fPumlS5c0EAhoT0+PG6P+kVf3L/0+\na1Lwpw/ekydP1HEcPXPmTML1ixcvquM4evPmzZSuv9ji8bg2NTVpdXW1fv78ecZ6onl7enp03bp1\nOjAwsBgjzotX9y8rjoV9fX0iIrJ///6E6729vbJkyRLZs2fPYo6Vss7OTunu7pbbt2/LypVz+09B\na2pq5OrVq9LQ0CDxeNx4woWVsfvnStIL7E+3UVtbq7m5uToxMTFj7cePH7pixQrdvn17ytdfbLW1\ntdrW1pZ0Pdm88Xhcd+zYoR0dHUaTpcar++f5Z654PC79/f1SXl4uy5cvn7E+MDAgExMTUllZ6cJ0\n8zc8PCxPnz6V+vr6eT/WcRwJh8PS0tJiMJmNTN4/z8c1NDQk4+PjUl1dnXC9t7dXRESqqqoWcarU\n3bp1S44cOZLwE20uGhoapKenR75+/brAk9nI5P3z/M+5/juvd3V1ybNnz2asDwwMiOM4afmVL5Fo\nNCobN25M+fF+v1/Wrl0rY2NjkpeXt4CT2cjo/Ut2XhSRjHpLpq6uTnNycvTbt28z1qanp9Xv92tJ\nScmsZ2e37y0b3ry4f0mfuTSDXu7jOE7C96uqPHz4UEpLS8Xv989YHxwclMnJyTl91UuXj8eFCxfk\ny5cv0tzcnPTXzPZyn1gsJqtXr5bR0VFZs2aN1Zjz4tX98/SfuV68eCFjY2Oye/fuhOuPHj0SkfQ8\nryezb98+aW9vl1gsltLj7927JyUlJWkT1mwyff88Hdd/5/Vdu3YlXO/v7xcRSc/zehI7d+6UQCAg\nnZ2dKT2+tbVVwuHwAk9lI+P3b9bDaoZIdhv19fXq8/n0w4cPCdcLCwt1y5YtKV/fLZFIRCsrK/Xn\nz58J15PNOzg4qIFAQCcnJy3Hmzev7p9nn7m+f/8uDx48kM2bNyd8VfjQ0JBEo1EJhUIuTPd3jh49\nKrm5uXL69Ok5v9pieHhYDh06JC0tLbJs2TLjCf+eJ/bPlaQX2O+38ebNG62srNRNmzapz+fTpUuX\naigU0itXrqiq6p07d7SiokIDgYD6fD4tKCjQqqoq7e/vn9P108X4+LiGQiGtr6/X9+/f/8/a7/PG\n43Ht7u7WDRs2aGtr62KPOSde3T/+smQaXD9VU1NTcu7cOblx44bs3btXTp06Jdu2bZPCwkIZGRmR\nu3fvSmtrq8RiMWlubpYDBw64PXJCXt0/4kqD6/+t8fFxuX79urS1tcnbt2/l48ePUlRUJBUVFRIO\nh6W6ujrpt7vTgVf3j7jS4PoLjXkX9/rJePYbGoDbPPPaQstjTyb8wDXTeXH/PBFXJh2BMJNX949j\nIWCEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CE\nuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAjxAUYIS7ACHEBRogLMEJcgBHiAowQF2CEuAAj\nxAUYIS7ACHEBRogLMEJcgBHi8pBYLCZdXV0iIvL69WuXpwFxecS7d+9k69atcvjwYRERKSkpkfPn\nz7s8VXZzVFXdHgJ/7+DBg9LR0SHT09O/3uf3+6Wrq0tCoZCLk2Uvnrk84v/DEhGZnJyU9vZ2lyZC\n0mcux3EWexbAU/5JtsBpMbM0NTXJtWvXZGpq6tf7/H6/PH/+XILBoIuTZS+OhR5x+fJlqa2tldzc\nXMnLy5P8/HyJRCKE5SK+oeEx0WhUotGoBINBycnJcXucrEZcgBGOhYAR4gKMEBdghLgAI8QFGCEu\nwAhxAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhxAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhx\nAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhxAUaICzBCXIAR4gKMEBdghLgAI8QFGCEuwAhxAUaI\nCzBCXIAR4gKM/Avn+MC2/OP35gAAAABJRU5ErkJggg==\n" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAACOCAYAAAAvkdreAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAAzxJREFUeJzt3TFOKmEYRuF3yC2xtTU0asMG2IATXQchMS7H0LgBCxNj\nAgRbtkCDcTZAYXOxNDO3gsTC1uP1P085NF8mh3++aaDquu5vkqNI36zquq6jh1CZevQAKpfxCWN8\nwhifMMYnjPEJY3zCGJ8wxieM8QljfMIYnzDGJ4zxCWN8whifMMYnjPEJY3zCGJ8wxieM8QljfMIY\nnzDGJ4zxCWN8whifMMYnjPEJY3zCGJ8wxidMMfFtNpu0bfvpWtu2eXl5gSZSET+L23Vd6rrOYDDI\ndDpNr9dL27YZj8fZbreZzWb0iEUq4uSrqioPDw9Zr9e5vr7Ox8dHxuNxmqbJ/f09PV6xijj59na7\nXeq6ztvbW46Pj7NYLNLv9+mxivVlfFVVffcsKsyfrz74bQfifsdrmiar1Sqj0SjD4fCwA+r7FXHX\nu67LZDJJ0zSZz+dJkuVymfV6nZubG3i6chURX1VVuby8zHw+P+x4R0dHWS6Xubi4gKcrV1EvHHtV\nVf26teJ/VMTJp5/J+IQxPmGMTxjjE8b4hDE+YYxPGOMTxviEMT5hjE8Y4xPG+IQxPmGMTxjjE8b4\nhDE+YYxPGOMTxviEMT5hjE8Y4xPG+IQxPmGMTxjjE8b4hDE+YYxPGOMTxviEMT5hjE8Y4xPG+IQx\nPmGMTxjjE8b4hDE+YYxPGOMTxviEMT5hionv8fEx7+/vn67tdrs8PT1BE6mI+Lquy2KxyNXV1SHA\n3W6Xuq7z/PwMT1euYv5pvG3bjMfjNE2T1WqV0WiU4XCY6XSaXq+I7+CPU8xd7/V6ubu7y8nJSZLk\n/Pzc8GBfnnxVVX33LCrMn68++G1P4/2ONxwOc3t7m8lkkqZpMp/P0+/36fGKVMTO13Vd6rrOYDA4\nPGr3O+B2u81sNqNHLFIR8SXJZrPJ6enppx2vbdu8vr7m7OwMnKxcxcSnn8dXPWGMTxjjE8b4hDE+\nYYxPGOMTxviEMT5hjE8Y4xPG+IQxPmGMTxjjE8b4hDE+YYxPGOMTxviEMT5hjE8Y4xPG+IQxPmGM\nTxjjE8b4hDE+YYxPGOMTxviEMT5hjE8Y4xPG+IQxPmGMTxjjE8b4hDE+YYxPmH8MEtVxVFn5TgAA\nAABJRU5ErkJggg==\n" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 16, + "input": "for g in gates:\n dg = g.decompose()\n display(Eq(g, dg))\n circuit_plot(g, nqubits=2)\n circuit_plot(dg, nqubits=2) " + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/dense_coding.ipynb b/docs/examples/notebooks/dense_coding.ipynb index 107cbb9..6a58293 100644 --- a/docs/examples/notebooks/dense_coding.ipynb +++ b/docs/examples/notebooks/dense_coding.ipynb @@ -1,726 +1,103 @@ - - - dense_coding - 2 - - - - - <h1>Dense Coding -</h1> - - - %load_ext sympyprinting - python - 2 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 3 - 1 - - - - psi = Qubit('00')/sqrt(2) + Qubit('11')/sqrt(2); psi - - python - 4 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ -╲╱ 2 ⋅❘00⟩ ╲╱ 2 ⋅❘11⟩ -────────── + ────────── - 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUx3QUFBQWtDQVlBQUFBemZGQ0ZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCWlJKUkVGVQplSnp0bTN1b0ZVVWN4ei9uZHRLajFkVWUxc2x1NlI5WkJua3ZV -WlJhNlNraktId2tGR1lVeHVWaTlsRENJTXNvYmxGSlJDLzZKeW1vCnVFSVlScEhSU3dLTmdpQUp1 -bVQvRk1TbGgwVVBVSzVrcVp6KytPMXlkL2ZNUG1aM1ovZWMwM3hnT1p5WjMrek03bmQyWm42LzJR -V0wKeFdLeGRDZVZzaHNRUXpPSGM3VDdOWFlxWndFLzVYQ2V0dFZuRmxBcnVNNGR3Q2tGMTltSldH -MFMwcFBBcGcrNEJkZ0wxTTAyeDhkRgp3Qmp3VjRGMWRocFdHd05jQnd3Z3k0dlpCZGE3RFprMkxl -RlliVFNwSnJENXdIZ3JXamtQT0FUOFhFTGRuWVRWeGlCRmppSXZBM01LCnFxc2JzTm9rSk1rYXZt -ak9SaHl3NzhwdVNBeHJ5bTVBQ1hTS05oQ2lUNUlsVGRIY0J6d1RrZDhQRENFTzI1ZkF1OEEraGQy -QTgvdDEKSVAwMjRGTEU0ZG9QdkFYOHJpZ2ZaM2M4RWgwWmkyaHJ0eEduRFdUWHgrVUtZQkh3WkV4 -OVlYYVo5U2xpMnB5QmhMdkNXQTY4QTF5TQpSQ1cyQUg4REt4UzJEZWZ3OGpEd0dUREorWDg3Y3NP -bnBMQTdFZGdVMGRZaWFRZHRJTHMrSUhINWE0Q0R3Q3NSZGNYWlpkSm5FbkpUCnowOTdnb1E4RGx3 -WmtuY0M4QTF3Y2lEOVErQW84alI3YWVDL29kT0FBOEFxVDFvUDhBZndYQW83Z0VlUWtVU1hxZVFY -TjI4SGJTQzcKUGdEM0FydVJLRkNUOEE2ZjFDNlZQbXVBcmNpVCs2cFRtUWw2Z1owUitZdVFuYjFW -Z2ZSMXlFVVBCZEliK0cvb0E4aU5EMjZXdklFLwo0cERVRG1DZW9qMUpHQVJXcHlnWHBGMjBnZXo2 -ZUtrUzNaR1QycVhWSnhmdVI1WUtZV3dDcm8vSXZ3cTV1RThENlV1ZDlPY0Q2UTM4Ck4vUmo0SWVR -ZXB2QUJacDJMazlFdERtTUllRFdGT1ZNa1ZVYnlLNlBsN3c2UEFUMEtTSktVd1dHRVNmbEx0UlRU -QTI1WWU5SG5HYzMKc0l4VzcvdGM1emZNK1hHcEErT0s5RVBPN3l4Tk81ZHZhWDBJT29XOHRJSHMr -cGpDcDA4UkhmNG84cFJ0Qms0SGJsTFlEQ0pUY2hSTgo0RDFhUjkrYmdUK0puM0xyVEhSYUwyN2Fk -RTA3bHgzQWpURjF0eXQ1YVFQWjlUR0ZUeCszd3pjTkhGNk9JT0dobmNENlFGNFZXRWw4CkJFREZD -aVIwZURmaVZFWlJSUVFPVXZIazY5aTU5Q1BPbWlsTWFPUFZ4NVEyb0tlUEtYejZ1QjIrWXVCUThT -SXdIN2pFazdZYWVCTTQKcG5raFp5SU8yejNBOWdUMnFsZ3dTSFFCNERkTk81ZGxtQjI5VEdpajBp -ZFBiVUJmSDFQNDlDbDY0K2tUWkUyMUhsbnJWWkFObnFXYQo1NmtCYnlQcno1Y1NsaGtGTGxla1Qz -Vis5MnZhZ1N4dnhsSFBDQUIzSUNOa2tENmtFNmtjMTIzT1VUUjVhUVBwOURGQm5ENkZjQ2R3CkdO -bkl1QUhZcUZtK2dvd1lRZWRvUWVCL0EzOFVZQjJ5bGd3eUF2eUx4TjkxN0VBY3ZhaTNCbXVJVHhB -OE5pTFR2Q3B2Y3NUNVRKTlYKRzBpdmo1ZThvalF0K3BUeExzMEljbFBYT3NkV3pmSmJrTkRoNjU2 -MFBtQkpUTGxSSkxZZTNLQlo0clRwZ0tZZHdFeWkzeG84RFB5cQpPQTQ2NTFIbC9STnpIU2JKcWcy -azE4Y0VMZnFVOFM3Tk9QQWE4Q0R3Tk9xSVNCaHJrWFhtOTB4c1pGUVF4K2lqbUxKN2dTK1FrWFdE -Cms3WVFPQU40S29YZFltQ1BSdHM3Z1N6YVFEWjl2QnpuL01idGtrYlpwZFpuQnZBUTh1UStobjlL -VDhzY1pKVFQrVVRzTWlTaUVCWjEKbUJld1grd2NYdXJJV25VRTJaVWNSZGFwUVpMWVBVcjY3ekh6 -Mm5ocUYyMGdIMzJ1UldhVnI1d3l4NUNYOWw1QWRudDE3SlQ2eEFsVwpSYnozRGM3RmJFYUVIMERX -czFtWUNmeWlZVjhINWtia2Y0NjAwY1Y5Nm84b2JLY2dJL1lZMFIrS1I5bjFJaDBqRFVQSTBpR0xj -OXBPCjJrQSsrcmgraklwOUh0c2tkcW4wNlFkK1pHTGhmeG9pL05XNko3TDRHRVMrUmMyQzFjWUFO -ZVFkYVBlMTJEN2twaTRzclVYZFFSNXYKUzFwdENtQVkyRVY3ZmluMWYyY1lxMDJ1ekVjODdkNDRR -MHZoV0cxeVppN3dMUEt4UVE5d1Vybk5zWGl3MnVUTU9VaG96bzNvTEtDYwpUUVJMSzFZYlRlTENr -cWNpMzNaNkEvdlRnUXVSWFVGTGVWaHRVaERYNGFmUnVtSFFSR0txbG5LeDJsZ3NGb3ZGWXJGWUxK -YXU1ejl2CjByak9nS2lER3dBQUFBQkpSVTVFcmtKZ2dnPT0K - - $$\frac{1}{2} \sqrt{2} {\left|00\right\rangle } + \frac{1}{2} \sqrt{2} {\left|11\right\rangle }$$ - 4 - - - - - circuits = [H(1)*CNOT(1,0), H(1)*CNOT(1,0)*X(1), H(1)*CNOT(1,0)*Z(1), H(1)*CNOT(1,0)*Z(1)*X(1)] - python - 5 - 1 - - - - for circuit in circuits: - circuit_plot(circuit, nqubits=2) - display(Eq(circuit*psi,qapply(circuit*psi))) - python - 6 - 0 - - - display_data - ⎛ ⎽⎽⎽ ⎽⎽⎽ ⎞ - ⎜╲╱ 2 ⋅❘00⟩ ╲╱ 2 ⋅❘11⟩⎟ -H ⋅CNOT ⋅⎜────────── + ──────────⎟ = ❘00⟩ - 1 1,0 ⎝ 2 2 ⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdVQUFBQW1DQVlBQUFBY1Bvck5BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFESDlKUkVGVQplSnp0blh1MEZWVWR4ei8zQWhmaUlWZEpGRlF3VVRSSVVhTTBJ -YTRQYUdtWnBsbGsrVWd5OUlMWnc5VUNuNVhTUXpPU1FJMjBSTHhHCnFZdlZhNEd2MHBKOHhTTzFG -QVVWU3hOTE5FVXlKYmo5OFoxWlo4NmNQVE43enBremN3N3N6MXBublh0bmZqUHptL250K2UyOWYv -dTMKOXdHSHcrRndPQnhWMHdyMEtGb0poeU1IV3IzUGRzVjJkOFBiQVBPQmR4ZXRoTU9SQSs4Q2Jn -QmFpbFlrVDF5THE3bTRHSGdhV0ZLMApJakYwQUs4Qi95MWFFVWNGeldhYlY0RWRnTW5BYnd2V3hl -R29ZREp3UzlGS0pOQUtkR2Z3Y1dSUEszQUh6V21mQmNCcEJWelg0WWhrCk1QQWNNRERGTWFjQk0r -dWpUaVNmQktibGZNMW14TmttSGYxUUQzRzNvaFZ4T0h5K0JWeHVLZnMrNEJKZ09UQ3JiaHFaV1Fy -MHlmbWEKellTelRmVmNESHkvYUNVY0RsQk03UlZncjVUSFhVKytMLzR4d0l3Y3I5Zk1PTnVrWjFj -VVl4NVV0Q0wxeG1WZk5ENmR3RVBBTTBVcgpra0FuY0czUlNqaU1iQXUyV1EvY0NYeXhhRVhxalhQ -S2pjK25nVVZGSzVIQU9PQlI0UFdpRlVsZ3UwcXQ4bWdXMjBDeWZSWUJKK2VoClNFNFk3emZLS2Zj -QitvYyt3WGhVUDhQK1hqVW9aMHJOQytyV08zQ2R2cFk2OTY3aW1tRmFxTHpQdUUvV01idDI0RDNB -bnpJK2I5WjgKQ1ppVHczVnNHeEZSY2hkbHBVZ1RrWmR0ZkhyV0lKZGtuK1hBM2lpVTBRalVwVHhH -UGNDZkFQc0JCd0Z2STZld0VqZ1hHQTVjRFl4Qwp5ZDJ2b0pyNHA4QjFsa29PQUQ0RGZBQVlTU2tm -OFRyZ1J1QTQ3L3BYZVBLelBGME9SODUwTExBaWRNNUZ3RkhldVY4QUZnSVhoR1FPClJvWDBIWjdl -ZXdCYmdVdUJodzE2bmduOENOam8zZi9MS0xaN0VMQUJXQVpzQWQ2SldpVFBBdnRZUGdNYnhnT2Jn -Q2N6UEdmV2pBSCsKQWZ3clJtWTZjQUtxelArTmJMWFFJRGZKMngrc2hBWUNWNkhjMmhkUlRIRUJz -Q3AwckkzY1dsUnVIMCs2cVcwRUc5dEFiZllKTWdQWQpCZmhLd3ZXaTVKTHM4endLWTN3UXVEWGhH -bG5RY09WeEhNcEp2REppLzBYZS9oTnRUK2h4SkxBT2phU09wVlNMOUFDK2dRWkIza1FPCk84aGc5 -SEM2Z1I5SG5QdFVWRG1FNlFuY2hCenYzcUY5UjZFSGQ3Ymh1THRSd1FuV2RGTThIYzRLeVo0TTNC -V2hWN1ZjQWZ5K3ltUHoKR2t5NkNWVnVVWHdUWlJ5MGVmOGZoeXBDazI1SEE0ZUd0aTJtUEI0NkNW -VzZnNnVRYTBPaitOV3dGOW0xMEJyRk5sQzdmVnFBQTRCdgpvL2ZpcW9qcjJNaloyT2ZYNU5meWI3 -anlPQk05dklrUisrOUdyY1FkTE0vWGdoN20yOERuWW1UdVI3T093dUdGazlBRWlrZFE2N0hkCmNQ -eFhnUU5EMjFxUm8xNU1kSWhsbG5mTzRZRnRnekU3K0FYb3VZU2QrekRVZzhpU3BjQTFLWS9aRHhu -Nk9lQUo0RUtTWDh3b1dqRS8KWjUrOWtZT0pZbmMwU0JudXZpMUV6ekE4WFR6OEVveENEdUt3d0xZ -VzFGcGFVSVVjd1BsRWg4RGlPQWVWd1Zwb0pOdEE3ZllCK1ltcgpVUTgwemluYnlpWFo1N3ZBNzJM -MlowbkRsY2Vsd0Z1b3F4K21EZmdQbFNHRU9NN0RybVY5R2ZBcncvWTV3QkRVb3UzR1BBcDdFK1VG -CnJBVzFxdGNSWDRBUDk4NTVhV0JiSjJwRmgza0cxWGhoeGtib1ZBc1BvNVpNR25wU0dldXVaanI5 -am1nNjl3OWlaT1lqUnhQRmljQm0KMUFNS2NpWjYzbDhJYlErL0JOZWowRlpZLzRXb2dMZWtsQU8x -ZU0rSTBUbUtMSnh5STlrR2FyZFBrSGJpbmEydFhKSjlMa0lOc3p3bwpwRHhHQmFCN0lDLy9FQW9s -aERrRU9lcy9SQndmNWtBMEFlSXUxR0tOWXgxcWhZY1ppbUl6WFNqR0d3NDMrUGV5TmJEdFNoUnVt -SVppClEzSFhCTmcvc08xVkttdmszVkVjL1Q3RE9UWmkvenhzMlFuMUd0THdQK0NOMEdkTHluTzBB -Vk5ScGZCWkZLY1BzeHR5S3F0anpyTU8KdllEaE9Qc203M3ZuQkQwT1JLM0tzUDdQb3Bqa3ZpbmxR -SlhxaUlUcjFvdEdzZzNVYnA5NmtHU2YxOUI3VVFTNWxNY29wM3dRQ2t2YwpHN0gvQ08vYjFna3R3 -RDUrc29wS3g5Mk9uQ1NvSUhlaFZzQVJBWmt4YU1EUlp4Z2FtUHdiY0h2Q05mMVFSRnRnMjgrb25P -ZmY0WDJiCjd2dEpLb1A5dGJJVDhaVkp2WGdielNDY2gwSStweHRremdObUo1eG5KZXJkbkJMYTds -ZCtEeVVjdnlzbEJ4SEUzN1pMU2ptZjVXaDIKWFRPU2xXMmdkdnZVaXpqNzJEcmw5NkwzOGM4cFBy -Y2xuRE9YOGhpVmZUSEIrLzRROEg3RC9rT1F3N0p4eWtPUnczd0FPeU92Tkd3YgpqeklkZks1RjRZ -Vk80QjV2VzBkSW4ybm8vaFpTM25vMk1jcjdmakJCem44dVdiZUlveGlBMmJoNThUSWFpWitPNG9G -K0pUVUl4ZDl0CndsY2JRdi8zUWQyMUZjUlhsaTBvcm04YW1mYWZTWHNLdVNCM0FsK204Vk1ONDhq -Q05sQzlmZXBKbkgwMm9SaHNEK0o3R1N0UTR6SXIKY2l1UFVVNjVBM1cxamtTeDR5QnRxTFo2bkVx -RG1oanZmZGZTaXB4QStZRFhZOEFmZ1kraFdtazlTbmViRjVEeGcrd1BXSnpmYndFbgp5VTVBOS94 -WGkzTm13VWFVcG1TaUhxdDFtWkxaNTZHWGRDS2w3Skp6Z2JsVlh1TjhsRU4rT3ZFdlZUY0tuWmtx -Vkw5SHN5V0ZYSkRqCk1ZOWJaRVc5VmxJTDJ5ZHIyNEM5ZmVwSm5IMEdJSitVdDI2NWxVZFQrS0lG -T2RKVlZEcGtVTGVnRC9hcFduNnovQzhXc2tNd3oyMGYKVGludTYzTU42cjZkaVhUdWlTb1NIejhr -a1RROWVRUnk3aThRNzVSM1JpR1QrOGh2K2NJTlJLOE0xMUtIajRtVktDUEdIL1RwandZMQo3NjNp -ZmpwUUQyWVNkaFhiWXhIYi9kSHFGMVBLK2V3ZmM4d016RjNibVdqazM3UXZ2S3hrUFd4anNrK1d0 -b0gwOXFrWGNmWVppRjFqCnNCN2tVaDVOTGVYOVVjem14b2dUK3kxZjJ5NzgwOTczU3hheTUxTzVw -R0ZmRkVjT2N4c2F3WjJLYXBrblF2dGZRRTQrcWZ2djV5RlAKU1pETk8zUUJtdUFTbHpXU0YzT0Jt -OUVnNTBuQUQ2czR4d2p2dUVuSWtkbndHR29FaFBFSHQ5YW5sQU9GcXVJY3p1V1lWK1E3eHp0UApV -dHd4YjdLd0RWUm5uM3FRWkorQjZMMUk0bUNVZ1pKbWF2MWE0Rk14KzRzb2o0QUtYemVhNFdQaUY5 -NStVeUs5YVozWS9UejVwTlN1Ck1aZ25jRXdFUGg5eHpIZThjOTlCS1FUaE05dmJGNWRlTXc1MU5X -eHlnZWQ0NXpNOWJKODA2K1NPUkFPZm5kNzFUU1BkU3l4MXF6ZTkKME15d2VTaitsWFlOaVozUW1N -RG93TGJlVkw0QTRSU2tUc29Mc004OXFMWFJJNlVjNkprblRjRTNrVVZLWEQybzFUWlF2WDJDWkpV -UwpsMlNmMmVUM0t5U0ZsRWRUK01KM2Jzc00rMENPYkUzb292NDZzZWVpTGxTUTFTaitld0xSRTAz -R2VNZWFadXBOSURwVU1oL0ZianFvCkhFUzhGWTFVSHh0eDdBSEFiOUN2ZVp3WElSUFc0M1hNcllp -NCs0K2l5N3YydGNBdlViWkhtRWNwRFVJV3lXYlVpcHFPZWxCcHdqZHQKS0c5ekd1VXRndEVrajZJ -L2drYXFneFZoWHpUYmN6YWwySnl0WEYvdjc3ZFM2Ti9vMUdJYnFNMCtXV05qbjlIa2w2Y2NwcER5 -MkJmNApKMnJHbXhpTGpINUR4UDZvNmFQOVVTejJmdFJDOUJtS3BpdC9IWE1TL1I3SStRK0owWGtK -NXJ4aFVITDhSc29kY3pzYXhGaERaU3BRCkZQdWdoMmZLbnc1aU8zMTJBdVhQdUJlSzN3OEx5WDBZ -VlFTTnNKcmZMbWhFTysxa2h5NlU4dE1WK056c25TczhPU2ZjTW1rQmZvNHEKTHovVU5nM0ZGQWRV -SVhjRzFlY29OMnBMR2FxM0RkUm1ueUIranpocFRZbzRPUnY3dkV6NnBSMnFwWkR5NkI4d0hNMkcy -dzA1NXQ2bwpkWHN6Nmo1L0ZDM3VNeHpGWFk5R3JkY0xQTGtrM3ZDT09SWDRHbkp5cTFHM2F3bHE4 -UWJwalFZclJxR0M5cUNuaHluV041Zm9rTUppClZNa2NEM3djRFFTMm9zVDdJNEcveCtpOHA2ZFhi -MC9mTjczckxFTU9kQ2JtOUQwYlJsSWU3TitNNG1RSG9MeHFuMlVvKzJKZkttUG0KY1l4RHNjRSsz -ckVYVXZzaVBDOFJIN294TVJrdFBFWEVzZUhKRFpzb0gxenVSaE1rTGtHdHdBMm9najRVVmJacDVY -YWtOTVpSRkkxaQpHNmpkUHFDUTR4Ukt2dUVZNENuMGJuK0UwamlOalZ5U2ZmWkVpUUJSdmZpczJT -YktZOTYvcU5CbzJONy9EQ3B6UU5lZ3RaUERyTVE4ClFTQ0tkc29YYkRrTlRVQ3BacjBIUjRsVGtE -T3RCV2ViMnZnRWpiMWlZaVkwUXJkNGUyUXRsUU15L1RDbituUmhkdFpSakVRcFVydDcKLzkrT1Jx -d1BpenpDWVVNWHRhOEM2R3hURzZjZ08yelRPS2RjREtzb24yclpCdzJxckRQSXprZnBQYmJyTkM5 -SDNhVG52Zi8zUU4ycApvcnZ0RG1lYldoaUd4bUpxbVJqVEZEaW5YSDlHVTU1cUJKclFNb2pTVDZZ -ZmdRWXJUVjJ6VFNqZHFkUHllbHNwWDdCL0psckQ5bG5MCjR4MzF3OW1tZXFhaUg1d29ZaTJZcGlU -TGRXS2JrYmo3L3g3bUZKNXhxSkNkaFhJMlJ4cGtmUHhXZE5vVXBlbG9LVlJINCtGc1k4OUEKMUpC -cGxKK0JhZ3F5V2llMldVbTYvN2dKTExiSi9zZWlpVHUybkVCcCttOS90cTlLc3RGeHRrbkhMV2lR -YjdzZ0s4ZTVGVTNVQ0g3eQpXaCtpRVVpNi8wTkk5NE1BSnA1Q2FUV0hrYnh3MGtRMFEvQk85Tklm -ai9LZFRiT01IUG5pYkpPT3MxRWFXYlhUeHgyT0NnNG4yMWw1CmM5RU15Q2oyUlhIbzdzQm5DOW4v -MHJZalBjNDI2UmlKL1k4eE94eldWTE1XZ2NQaGNEZ2NEb2ZENFhBNEhBNkh3K0Z3T0J3T2g4TVIK -eS84QlhNMmZXWUlsVDVRQUFBQUFTVVZPUks1Q1lJST0K - - $$H_{1} CNOT_{1,0} \left(\frac{1}{2} \sqrt{2} {\left|00\right\rangle } + \frac{1}{2} \sqrt{2} {\left|11\right\rangle }\right) = {\left|00\right\rangle }$$ - - - display_data - ⎛ ⎽⎽⎽ ⎽⎽⎽ ⎞ - ⎜╲╱ 2 ⋅❘00⟩ ╲╱ 2 ⋅❘11⟩⎟ -H ⋅CNOT ⋅X ⋅⎜────────── + ──────────⎟ = ❘01⟩ - 1 1,0 1 ⎝ 2 2 ⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVgwQUFBQW1DQVlBQUFBb1IwdlJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFEUmRKUkVGVQplSnp0blh1MEZWVWR4ejlYcmtBQ1NTZ29LT0NqTko4b29xWVFY -TFUwVnNsSzdLWEx0L2dBVzVibEF4L1VMUis1MUZJak5STVRmS1Q1CnpvcDhWZGNrTFRKSnpVeEJR -aE5SeTdmbUM3Mzk4WjFaWis2Y3ZXZjJ6RGt6dzduc3oxcG5uWE5tOXQ2ejkvejIvUGJldi8zYmU4 -RGoKOFhnOEhzOXF5WnBWWjhEaktSbGY1ejJyTGVPQjg2ck9oTWRUTXBjQ1cxZWRDWStuYkRZQjdn -YjZWNTJSQkQ0RTdGVjFKanhXV2xVKwphd08vQTRaVm5SR1BweXpXQmhZQ20xZWRrUlMrQ3V3TGRE -Zmg0MmsrclN5Zm5ZQXVvRjhGMS9aNFNtY09jRXpHT0FjQk13dklpNDEyCjRIWmdqUkt2MmNwNCtX -VG4yOEFaVldmQzR5bWFEWUhuZ2JVY3crOElmQXQ0Z0hJZmtJT0JRMHE4WHF2aTVaT2ZvY0J6d0ll -cnpvakgKVXlUbkF4ZmtpRGVIOHBSS0czQUgzc3NpQzE0KytiZ0tPTG5xVEJSTkt3L0hQSTJ4RGpB -TitISFZHVWxoSCtEWHdIdFZaOFJqcERmSgo1MkxnNjJoU3V0ZmlsZjdxeXhSZ01mRFBxak9Td2pU -Z3Nxb3o0VWhiMVJtb2dONGtuL3VCdDREZFM4aEwwVmpMMm00NTN0OXdiaVh3CmR2QjdnQ0hSZDhq -ZjJ2Y0IzbzhkV3dQNElQamRqOXJ3OFFQZ2Y0WTA0bmwrTDhoVGxtdkdhVU5sZFNWNmo1cUZTUlp2 -QjljQzZCdDgKUW16M0o4NUU0QzhONTY1WVBnMzhFVDJJemFJTnU0ZEl0TTRsWVF2M1dlQVo0Ry81 -c3RaeWxDMGYwTE93TXVGOFVqZ1grVHdBZkJLTgpYc3JBVmw3WHVnajV5OXFEbndFUEJwbDVCMWdB -L0RBNE54cjRGYkEwT1A4aThIdmdDTmZFZ1VIQTBjQTgxTHJPRDY1eGNIQitDbkJpCkpQeTV5STk4 -WlhETkhReHAzZ0s4RnB4L0JqakxFR1lzY0NWd0ExcVVNVDhveTA2V2ZCNFJwUGNhY3VtNmtkcDkr -Uzl3SzNBVGNFK1EKdDhVSlpjN0w1Y0FUMU56WmxnQmZqcHcvSDFXT1VCYnpjZXR4TGlHYnpLS1Va -VE8rRlJpY2NINXo0SmZBbmFnQm13MnNtNUxtcVlaagpYd0orQVp3Sm5BTjh6UkkzTFZ3NzhnS3Bt -dDRtbjVCTmdYODc1TXNXemtVK00xRkRWaGJ4OHJyV3haQkd5bHJIZUtSSWJLczBUd3ZPClQ4Mlk3 -dTdBTXFTc3hsRXpNZlVCdm9NcTdGdkFMckY0dzFERjZVYUswTVNCcU1HSzA0NG1hUllDSDQyZDJ3 -UDFuSTgyeExzYitBWTkKeldDSEJYazRLaFoyUCtBdVM3NGFwUTE0TExodVBQOTlnQ2VCWXpPa055 -SklhL3VjK1NsRHFYd0NPRHZoL01hb3c3QlI4SDl0MUNBLwpCb3hNaU5jWit6OEplQmxZTC9pL0py -QUkrWjNuQ1hjaStUMUF4dWVNRjZjM3lRYzAvelFWNlkya1VZQkx1RFQ1N0lFNnVtVXRWT3lNCi9I -YXRZOUNjc3RZeE0wanNVNWJ6ZHlQemlHdWliY0NGd0x2QTRRbGg3Z05lUmNvc3loZFFEL2NoNEUz -TVBZd1RnTzFpeDlaQURjSE4KMkQwTXpnalNIQjA1Tmd4ekF6SVhzL0lkQlZ4a1NiOFpIQmRjOTd1 -eDR4Y0J1MlZNYTY4Z3JiNXBBV044SEpnRlBJVWUzbE5KZm9DVApXQ2ZsL00rcFZYNFQxMUpmN3JH -b1hKY214T3VNL2I4ZHVENTI3QlQwNEEvTEVXNGs5UjBDVjdweXhndnBqZkxaQXJnTzNldDdzQ3M0 -CjEzQnA4dGtnaUx0dFFwaG0waG41N1ZySG1sWFdPbjRUWE13MGs5MFgyWTMvbWlHOWIrSTJNamdk -dU0xdy9FSmdPT3FSZDJNZTlseEYKejE1NUd4b1ZMQ041R05wQnZVS2RqbHI5T0V1QjVZYmo0eXg1 -YWhaRDBBaG9PVFViLytuQUYzT2t0VDlxNUxMU0RneU1mZUtOc3d1SApBQzlnN3pCc0Rmd29KWTJu -a0RsdFNPUllHekxGUFprUXJ6UHlleHNrOTNnbkpGUk8rMmNNRjVLM2w5MlZNMTVJYjVOUG5MbTRy -ZGhOCkM1Y2tuNEZCM0t3ZHFieDBCdDlaNjFqSVhES1cxZWE5MHdmWUZmZ3o1a21hblZGajhJZUVp -MFhaRHRuWTcwSTk3aVNXb1ZGRW5CSEEKQ3VCcTRIWHF6VEZoV2FLVEgrY2hjOHdNNEpXVWE0SnVm -TWpMYUUrT0tCdWlZZXU5aGpSZXgvMSs1T0VsTktjd0F0Z2JtWE9lUS9NVApXUm1DUmxOWldRbThF -ZnVrVFliSG1RbzhpeDZ1UXkxaGppZDk4N2NscUNjVG5XanZSdlYxWGR6bU5jWUUzM0VsOUsvZ2Uy -TEdjQ0VMCmdBa08xMjgydlUwK1JaRWtuL0NlRGJHY0w0cXNkY3lWdXJMYWxQNzJxSlh2c3B3UFcw -RlhKVGNYalE1bU9ZUmRSSDNETUJncFlaQlEKcmtaRDJXaHJQQVo0T1BKL0ZGS01UNk5oVXhLaHFT -WnE3cmlPK2haMFV2QnRLdmZqUWQ2TEpCd1cvd0E5T0huTlNVTkliZ1NMNUdZMApzWGNOMnY0aC92 -QnZndTc3c3BSMDlrUWp2K2drMXJEZ3N4QzNIdUg2d1hkODFCUCtYeTlqdUpBN2FNM054MkRWa2s5 -UnBNbm5OZHlVCi9uWElPeWJMWjJkTFdsbnJtQ3QxWmJXNWJJYXR5cDZZUFZ0MlJrSnpVZm9qa0VL -K0g0MGMwbmpRY0d3Q2FyRkNMa0htbCtuSWN3aWsKa0tQNW1ZSEtkeVhwcms5YkJ0OS9TZ2tYM3Bj -aWUvUkpMQUFlQmJaQ0RXbGVCcEhQdk5OTVppTWY3ODhnVTJLSVN5OFMxQnQ3T1hacwpSdkJ0OHR3 -eVlYdlEza1c5NXNFWnc0VjAwL3ByWUZZRitSUkZtbnpleEcydThpdk55UTZRdlk2NVVsZFdXOEVu -QlJmYUhRazkrcG1DClpyYi9nVndFMHdpSEZvMzBnaWZTVTlFK2d0eXFQay90Wm8ybDV4ekRyc0gz -L1E3cGh6MzR0TEFUVVprZmRVaXpDTVpFZmgvWlFEcXYKazd6K29CazdKYWJ0bnZnd01wTkZQUk9H -b3g1V252czdHazEybjBPdEk1QkcrSURGT3dWdHFNUHdmc1p3SWUyR3NNMmthTm5BcWlHZgpva2lU -enlEVTJ5K1RySFhNbGJxeW1wUitHMUxVaXpBdjh0a0JLZjE3SEMrNlkvRDlkNGV3d3pGN0RZeW1m -amg1TWZMR21VYnR4a1FYCktJUW1tNlVwMTl3VU5SN0xTVmI2UTVGSjZWNnFHWnB1aEx3eDlrQW1y -a1BKN24wVDhpSnlvYlBSVnRBbnpteGdNalZaSFlkY2ViUFMKRjNsYXpRTk95aER2RWN2eGNBTzZG -Um5EaFV4QnZ0WW1ScUhPaVdub1A4NXkvSTVZR21YSUJxcVhUMUVreWFjTktYMlhEbTB6eVZySApY -S2tycThtOHN3MXF6ZWRaRWdsNzdxNG1qbkJpNG5tSHNDZFR2eVhzV2tqSnhia1JiUloySlBMMmVT -eDJmamxxUk5MTUdLRWYvbUVwCllhczA3UXhGZHZ6RDBaRDVXclN3YXQvZ2QxWmVJdjl3c1puY2dp -WU5qMEdlVTV2aFpnS004eE0wOGpzeExXQ004RUdMMjI4SEJkL1AKWlF3WHNnTjJoNFduTVM4dUJN -MmhkVmpPVlVIVjhpbUtKUGtNUXZyZ0pZZDB3cm5GTEV6SHZCSStheDF6cGE2c3BwNStxTnhNSGlw -UQpXMEJpNnVtYjl2SHVpbHc4aVRISVpCUWZYZXlLMmRiK0x2QlQ1Q0Z3THZYS09NeS9iWjBCcUN5 -SG9UbUNPMVB5NTZMMHMreGp2aG1hCjJKNk9SaTFETGVFR29rM1JqcVZtSXcwM1NUTXRLSFBKeTR1 -b01jMDdVbWdXSzlHOVB4UTErR2x1Z0NaT1F3MThWS0VjYkFrYlp6SHkKSmhrVk94NU90aTNLR0E3 -VUt5NWlaWFlWVkMyZklraVRUOWdaY3VucEg0QkdaMWsrdHExUHN0UXhWNXpyNGczSWZHRlRRdjlC -MndKRQpTZHZIZXdGUzZMYkprVEhJbjk2MGVDcnNZWmpZR05tNjNxWitCZDB1YUozQlRaYTQyeUls -T2crM1hmVVdZVjQwQnZuMk1ZKytyV292CjRMZUdNUDNSc0hnTFMveHV3em1Ydkt3ZnhJMHZaS3VD -b1VoK0MzUEUzUS9aaU9QWVZteER2Ui80UXRSaml6SWJtUlBiYzRRN0JmZjMKRThUcHlobXZTS3FX -VDVTNU5PNm5ueWFmeVVqNWx0VWg2b3o4ZHExalVlYVN2NndRQkhnQitkaWFHQmRjNEFyTGVkdnk3 -NEdvNTMwZgpQUlg0Q0xSaXJCT3pNaDJKaGpYREUvSThIL3VvWkNxYXRQeGM1TmhnMU5OWWpGcHFG -ejZHR2hmVCtvRW9yc3ZmSjlMekhxK0pSampSClZuNWJaTTg5M3BMR0NVZ1dsK1RNeXhQazMzdW4y -VnlHMWg1a1lRTHFqVjBkKzF5UHpCSTJPbVAvTzFBZENldmx1cWhuT2oxSHVINjQKdVNYYjZHb2di -cEZVS1orUU52U3NkNlAxTWphU3dybklaeGJsbW5BN0k3ODdjS3VMSVEyVmRUUXE2SlBJZnY0cXNz -R0ZMbFo3bzBuTwpaNFB6SzVCNUo3NVhTSktpR1lETUVkZWdGdTFLdEhlSGFkRkJ2K0I2cndiWGV3 -cjdCTkJrTklTME1RR1pmNjVBbGZkeTFOQ2tMVS9mCkNFMmdkYUViL3dZYUdTeEFwcUN4aGppdVNu -OGE5UTNWTTZoeG1vd2FoSEJ4elhKcW5rZ2hsNk1IS2d6ekVQWExyZFB5TW9mazVmQW0KQnFESjVG -bG9CR0pya01wZ0JYWlBsSE1UNHBsZURiazNtaHU1QUkxMGJROVpXcmpKbUVkbHJuUTFFQmQ2cDN5 -R0lWM3pCTFg2L2p6UwpJUWRrRE9jaW4xdlJabWRsRVMrdlMxMXNWbG1iUXBsdjdGa1ZjUzMvU2RR -dkdGdU1mYWwxRVhrNWlPeDJ3ck9vOVNnR29rbkpyTy9YCjlkaXhPVSs0NHVYVE9NdVJ3dXkxdFBv -Q2tsWmxDZlZ1Y2dNbzEwM3NOclM2Y3N1MGdCRTZxTzNtK1FZYTlmVHFCNlJrR3AzZzdNREwKcHhI -Q0ZmN3g3VmQ2RmJiSkFVK3hMS0xuc3VyK3lGVnJXWWw1ZUFYTkI4ekF2SFdyaVFPUnpURmtKTmsy -M2ZNVWk1ZFBZOHhBcnRGSgpMMTlxZWJ6U0w1NnRndS9vS3NhbGFCSGFCbWc0dVJ1eThUOWVidFk0 -SDYyOG5JbDVMVVNjNkdaUUU1QlMyYWVBZkhueTRlV1RuK0hvCmpWbTJUZVk4TVpxNWozY3JrbFQr -NzZPSjFqamowYUtWbzlDa2pjMHR0Wmw1TVRFYnJiVE13bkEwSjdFNnliaVY4UExKenRrMDVubTEK -MnRHc2ZieGJsYlR5Si9VZW1yM0ZiRlpaREVDMjMyMFN3a1Q1Q0JvaGhOczRaSmtUOEJTUGwwOTJK -cUp0MzIwdldmSjRNcFAzVFVwbApzUUZhZzVEMkV2Z0J3UGVRaSsvNmFKMUYvRTFlbnVydzhzbk9P -bWppdHV6OTh6MjltQTVhbzdjMWp2VE50RzZpM3VmNmhJTHo1WEhICnl5YzdjMmllYWRYakFhcDlR -NURINC9GNFBCNlB4K1B4ZUR3ZWo4Zmo4WGc4SG8vSDQybEIvZzhic2R5Y0VKaERVZ0FBQUFCSlJV -NUUKcmtKZ2dnPT0K - - $$H_{1} CNOT_{1,0} X_{1} \left(\frac{1}{2} \sqrt{2} {\left|00\right\rangle } + \frac{1}{2} \sqrt{2} {\left|11\right\rangle }\right) = {\left|01\right\rangle }$$ - - - display_data - ⎛ ⎽⎽⎽ ⎽⎽⎽ ⎞ - ⎜╲╱ 2 ⋅❘00⟩ ╲╱ 2 ⋅❘11⟩⎟ -H ⋅CNOT ⋅Z ⋅⎜────────── + ──────────⎟ = ❘10⟩ - 1 1,0 1 ⎝ 2 2 ⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVhvQUFBQW1DQVlBQUFES20xQ29BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFEU2RKUkVGVQplSnp0blhtMEhFVVZoNzlKQWdsSndNZFRsZ1N5U1dSUDJBS1J4 -WmVBbkNoSGhJQ3lSRUFRaUVCa0UyUlJBUWNDaWhnSUVjU2pva0FTCkRFaEFrTEFKSWtza0VZR0Fv -S0NRR0RBSWFvaEMyR1NMZi95Nno4ejBWSFZYOTNUUHpNdXI3NXc1TTlOMXA2dXFiODJ0cWx1M3Vz -SGoKOFhnOEhzOXF6UnF0TG9ESDAyUjhtL2YwS0Q0RG5OWHFRbmc4VGVaYVlIaXJDK0h4TklQUndH -MUE3MVlYSklaMWdhNVdGOEpqcGJ2cQpaeER3RzJDZFZoZkU0eW1TRFlISGdJMWFYWkFFeXNBNFlG -VU9MMC8rbE9tKytwa0F6S085QnpvZVQwUGNEQnlVOGpkZkJNNHNvQ3cyCkJnSzNOakcvN283WFQz -b3VBMDV1ZFNFOG5pTFlDbmdlOTVITWpzQTV3Q1BBK1VVVnlzQ3B3TjVOeksrNzR2V1RuVTJBRjRB -MVcxMFEKanlkdlpwRnRBZlpLbW1kSStnSjNBcVVtNWJjNjRQV1RqVHVBeWEwdVJOSDBhblVCUEUx -bE9QQTVaQlRhbWNPQm1YamZlcnV5T3VubgpDdUIwVm5OZnZUZjBQWXNEZ1BuQXk2MHVTQXk5VVdk -MGZhc0w0c2pxTUtwTncrcW1uOXVBRFlBeFRTaExNekRXdDQ5RnVKOGg3VDNnCjdlRHpBTU1KL3dl -OG03Rnd2WUgzSThkNkFSOEVuL3RTMmVUd0FmQ200UnpSTXI4YmxDbE5ubEZLcUs2dVZGK2pQRm1M -NUJISDIwSCsKY1hRQmY4aWxSTVZ4SUhBVHlicEpRd243NkxPNm5jVmhrenNVZUFDdGUvUUVtcTBm -MFA4NnFXM2I1SkwwOHdHS1FQc0U4SHVIUFBJZwpqL3JtMGg1L2ppcS9DaG5MK2NEM2c3UmhLQ3hw -U1pEK0N2QmIwdm01MWdhT0JhNEJGZ0MzQjNrY0hxVHZnNlpUSWQ4RDdrR1ZYd1hzCllEam5MNEhY -Z3ZSbHdMY05NdHVqS2VjTndJK0NmT2NCTzFuS09UazQzMnZBZmNCY0t0ZGxPWXBldVJHNFB5amJz -ekYxenNxR1ZPcTkKRWxpRTZqbzNlQzBQMHZaTk9FOEpXQUhzbDdFY3pmQUJsNUR2dDYrRDdIYUI3 -TjNBUW1BYWFsY212bWs0TmhrWnJLbkJiNCt5L0RaSgpiaUJ3aGtONWk2YWQ5Sk5HTjJEV1Q4aG80 -Qm1Ic3Rua1hQUXpEYmpGSVkrOGFLUyt1YmZIWFpFQm1XWkpQeXRJM3ovTlNZRTlnS1hBCmREUmRD -dDFIdllGelVZTjlDOWc1OHJ2MTBXaDBGZkJUeTdrUFE1MVVsRDVvRWZKaFlHUWs3Wk5vTkh5czRY -ZjNBS2RRNitJNk1pakQKTVJIWlNhaGg1ODNSd0J1WURkRWsxS3RmNkhDZTBhamNRektXb3htR1pH -L2dhdzV5MjZMQnhlRGcrM3FvazMwaytCeWxIUG0rUHhvTQpmQ2o0UGdCWURCeWNVZTRjc20yckwx -SGZ6clBTTHZwSnF4dW8xdzlvZ0RNSitCY2F6Tmh3a1V2U3owSEJiNXZsaGlzYmpyblVvNUQyCmVD -WXlESHRhMHU5QjB6ZlgzV1VsWUFid0R2YlJVd2w0Q0hpVmVsZkY1NUZDbmtDR3I4UHcrOU5RUTZ1 -bUZ6TCtOMkd2L1BuQk9ZZFYKSFZzZmM2ZHhOYm91MFE1aktQQUR5L2tiNFJiTU91aENIZFIxdURY -UVE5RE1KQzJiQTJlanFlRFRhRFNTdGJQNGNFTDZQT0pIZmlGMwpVYS9uQ1VndkZ4amt5NUh2ajZC -RnVHb3VRZGRuclF4eW81QkxJeTBkYUZiWUNPMm1uN1M2Z1hyOWpFVzNLVGdkZUJTNzRYT1ZTOUxQ -Ck5rSDVCc2ZJNUVrNTh0MjFIb1cweHp1UTIyWXRROXFheUUvK3FPdkpVTnl0eXd4Z0t2QXJ3L0Va -YU92eXNjRjVUakxJektKMjlGMUMKby8rbG1EdUdrUEhCT2Mrck9uWWNHdTFIV1FLOGFEZyt4bEtt -UnVpSHRtcEgyUnk1WWViajV1WUFPSkZzZnVRK2FEcFkvY29Tb1hBUwo4SGZzTWN2anFMMytOa3JJ -aGZVRXVqNGhBOURBdytSbkxWZDlIby9aMVJVYW93a3A1VUt5aktiek1QVHRwSjhzdWdIekNEZGtI -dkVqCmVsZTVPUDBNUnpvZDVaQlBIcFJqMG16MUdFOEQ3ZEVXZGRNYjJBVXA1aTFEK2xqVUFUd1FV -K0JxdGtVKzg3dlJ5RHFPcFdpMkVHVXcKOEJJd0d6V21xS3NsckV2MUFzVTA1R3FaQXZ3M0lVK29W -ZlIvZ0hzamNoc0RJNEFIRGVkWWlmdjFjT1VqeUoxVnpmcG9iV0U1VW5yYwpnbk0xbldpbWxKYjNn -TmNqcjdRTGNZY0JmMFVkOVFFV21STlJaNTdFS2pSZEhVR3RNUWtYbzIzdWdaQnd0TGs0Y3Z4dndY -dFhTcm1RCnA0RXRFdkl1Z25iU1Q2TzZLWkk0L1lUL2k4NG1sU1VMRGJWSFc5VE5kc2dsYzU4bGZm -ZmczZFd3WFkxR0NtYzd5QzVDZnFwcU9wRGgKQlRYazJXakV2VHZ5QjRLbVgzK3MrczFRMURoZlFB -dERjWVJ1bU9yUnpIVUd1WEhCdTZuZWYwbklJd3ZMZ2xkSWZ5clQ1NCtqaFhCWApPb252N0lwa1Z2 -QitLM0FDbXFaV3N6MmFiYmpXWnljMDBLanV1RFpEK2t1S25OZ3dlSDhqY2p6OHZrRkt1WkM1YU9v -OU5TSC9kaVJQCi9UU2lteUtKMDAvbzBuUXg5SGRTYVJzdXJFSSs5RWJ0UTBQdDBXYm93OTVoQXVh -SWxMR29BaTZHZmpBeXdndHdVL1JqaG1PN0lUZEYKeUErUm9UK09pcUVmRnluUEZGUy9tU1NIejIw -WnZDOU1rQXV2Uzk0amR4ZkN0WVpSYUVFNzJyTW5zVGIxamFUWlhJWmNVV09RdnpIawpWR3FqckpK -NEozaFZNd1dOR2k5SytHM1NINllqcFZ5SXpjM1puY2hEUDQzb3Bramk5UE0rbW5XNHJEZCtPcmNT -cGFPaDltZ3o5T09RCll2YWdQbVo5VGRSYi94bTNIbjYzNEgyUmc2eU5MbW9YSVo0RWZnZE1SQmZn -WlRUcXVMeEtacGZnZllIRCtjT1JlcEpzRjZyem54ek8KbVRmVFVkanBnYmpWS2NwS2RHOFBHMFh0 -Y3F4ZUtMNFh0WnNUcUlUU2JvWWFxMm5kdzVXdFVYVFNOMGh1WitFZkk5cjVoN081OTFQSwpoUXlr -Mkk2MENQMUVGL0dMMEU4YTNSUkpuSDc2SUZkVGxtQ0ZadEZRZXpUNTZFdklPQy9DdkRGcEIzUlI3 -bmNzNEk3QisxTU9zb013CnIvd1BvK0pIRDdrQ1JkRWNqY29jM1dRUXVtT1dKT1M1Q2Vvd1hpVGVn -SzZIRmtFZnBQbGJ2MDlHYnFnejBKUXNaQUR1STR4WHFJUmwKbVNnVjlJcHlPWXFlQ3YyMXA2RjlF -bGtaQ014QmEwQXU1M25TY3J4LzhQNVNTcm1RZzROeW1OZ2EvWjhlajd3ZVJPN0g2UEhIcVhjZApO -a00za0s5KzB1cW1TT0wwRS80djByaENtMDFEN2RFMG9oK0ZmRlhYV0U0Y2p0QmQzUmVoaStHZkRy -SmZwLzVXcS8yUlh6N0tYT0JTCjRNc29TdWZwU1BxTHFPTklHbVdGY2ZKSEpzaTJ5bTJ6SDNBeGNs -ZEYveXlIVXE5Z0d5dUlqenhxRmpPQjd5Qzl6VUtEaHF3YnpYb2gKZi9KczRMdU92d24vTUozVVJq -ZUVZWU12cDVRTEdZRjlVUEVVV3ZlSzBvSFdyeWJHbHJpNTVLV2ZMTG9wa2pqOWhJWitoY041NXBI -ZQpSMzhJV3V4dWhEemJJd0RIQjRXejdhQzhPVWczVmRaMFQrek5pWStoRGRrRzg2YWxQYkh2dXIw -d09QZGRWTnd2SVpjRWFWK0t5WE5YCkZGVVVqVTAxTVFQN3J0eVFOUGNFM3hRdFRoOFg1RytLU0Jp -TFpsVzJKMEV0b05idkdKZi9GOGdXZFZNRTAxRW8zeFdZRGFBcmw2S08KdXBvakRITGxxcy9yb09s -dmRHL0NVZFNHcWJuS2dkYXg5bkVzY3pWNWhGY1dRUjc2Y2RVTkZCOWVtYVNmN1pGT0J6bmtrd2Zs -bURSYgpQWEp2anpjRVA3U0ZRdjJiK3Q0cDZaN1k4NUh2ejdiWXNRMktkemR0YURvUEdVVVRJNmdz -cFBTTHBPMk1GaVJ1dFB4Mk5Jcmt1UWEzClJiUkZtRGR5UWJaN2dqK00vSjhBbjZJK1h2NmpLUHJv -TVRRRmpqSVozUXJCTmYrdGtWNDNkaXhma1l4RWpmYjJCczV4UE9hdDNxWmQKMCtYSTl5WElFRlV6 -QjdsTXNzaWRTN2JZOVhZMTlJM3FKNDF1b0hoRG42U2Z3M0R6T09SRk9TWXRyaDY1dGNmK3lMZzha -MGtmZzR6RgpWWlowMnpic2djZ2YrUkMxUm5zd3VwVkEyVkt3SVdoS0V0ZlQzbzQ1cmgyME9Xc2x0 -UTlJNkVBTFRjOGkxNGNMSDBNZGlpbSt2eHJYCmJlaGQxRjdqTmRESWZXand2Uk9GWTcxQTdXNjlQ -dWo2blkvMGNFU0svRXVvQVdXOTEwM2UzSWhtVkZuWUc3WFQyWkhYVGNEUERQTGwKeVBlSmFKb2VQ -a3B4Q09yMG96SGtMbklkS0NvbEMrMXE2Q0c3ZnRMcUJ1eUdyemVLaEZ1SjlwVFlpSk56MGM4TWt2 -ZjM1RW5aY2p5cAp2ZzIzeDJISTk3d1krY05mUlZFdFU0TDB6eUkzd1QrQzlKZlFZbXkwSWNRWm1n -SElOWE10R3MzT1JLNFgwOE9GK3diNXZScms5enoyCkcvWHNSZnlETkhaRHZ1MnJnSitnVWNVeEpH -OFRINDVjUXZjaGYvL3I2S0xPQjM2TnBudFJYQTM5MGRSM1RzdW9kRWcvRHZKYmpCUy8KRUkzc1Yx -RFpGTE9DK3NhUWxQL05KTHZRb3F3TGZBdk5HSzVIdnR0VzBoZlYzL2JzVVZNNytZcmgyTUdvUHRP -UlVUdkVrbCtTM0NTeQpUL256TVBUdHBKOHN1b0Y2L1l5azFoNjlqbXpQUW1TTDBzaTU2R2MrOE5V -RW1UekpXbDhvdGowNjA4eW4zTFFqcnZVL2cvcE5YTThpClAzcVIrWjlDK2h1dnpVREdCTlN4ckNE -OTgyWTladnFqUmZaRzhQcHBqRFdRWWQweFNiQTc0eDg4MGhxZW96NjhiUURGaDNmOUF1MHYKU0hQ -enByMm9MSVl2UitzQWUrVmNycDdLbTJneHZoRzhmaHBqSWxwNFRuUGZybTZITi9TdFlSRzFXNWI3 -SWIvODBvTHpYWVlXYjlKTQo3L2RCTHErUUlkalhjRHpOeCt1bk1hWWdGN0xMdzJlNkxkN1FGODlX -d2F1YUpXaGpXTGlvc2p2eTJSZHh2NXdvRjZFOUE3WmQwVkdlCm9YS2ZvWDNSSHlLNjh1OXBIVjQv -MmRrQ3JjVkY3KzNqc1pEblBiRzdJM0gxdnhqZHRqWEtybWpSOVJqMHg3U0ZrRGFhdjRrNUtLUXMK -RFNOUmhGTXI3MERvc2VQMWs1NHJhZHgxMXFQSTY1N1kzWldrK3NkdDJzcmpxVFpwcjM4bmlud2E3 -bmorUWVpV3orRitneTFqWkQzTgp4K3NuUFJOUjFFcFBlN2k3cDBDaWp4MXNCelpGRDVkSmV1UllK -d3JKM0FqdGhoNkNRdms4N1lIWFQzcUdvdWl6L2ttQ0hvOHI0Mm5mCkVkWWUxRC9ZSk1yOTFNZER4 -ODFRUE0zRjZ5YzljNmlzajNrOHVlQ25oaDZQeCtQeGVEd2VqOGZqOFhnOEhvL0g0L0Y0UEI1UEQr -VC8KTDVLMlhIQlkzbllBQUFBQVNVVk9SSzVDWUlJPQo= - - $$H_{1} CNOT_{1,0} Z_{1} \left(\frac{1}{2} \sqrt{2} {\left|00\right\rangle } + \frac{1}{2} \sqrt{2} {\left|11\right\rangle }\right) = {\left|10\right\rangle }$$ - - - display_data - ⎛ ⎽⎽⎽ ⎽⎽⎽ ⎞ - ⎜╲╱ 2 ⋅❘00⟩ ╲╱ 2 ⋅❘11⟩⎟ -H ⋅CNOT ⋅Z ⋅X ⋅⎜────────── + ──────────⎟ = ❘11⟩ - 1 1,0 1 1 ⎝ 2 2 ⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVpFQUFBQW1DQVlBQUFBRm1hWXVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFEaU5KUkVGVQplSnp0blh1MFZVVWR4ejl3TDNDNVNKQ0ZBWWFvRmJsMEFhYVFE -eFR3cmFra2lpV0Zqd3dSTExPSDcwU3RXSm1LbVpZUzV1T0tvS2JtCmtudy9LaFVUVXhNRlV3aEZZ -S21VcG9XSWI2VS92bnM2Kyt3emUrL1orN3h2ODFscnI3dnVudG56T0wvWjg1djV6VzltZzhmajhY -ZzgKSGsrRDBncDBxWGNoUEo0YTBxM2VCYWdsWGV0ZEFFK25waDI0RWVoZDc0SjRQRFZrSCtEMGVo -ZkM0MmwydWdJM0FEdlh1eUFwSEZUdgpBbmhpYVdiWlhBUWNVdTlDZUR6TnpIbkFxZlV1UkFyOWdl -dUFEUlc0UEpXbDJXWFRBMWdBYkYrbi9EMmVwbVlzOEdleXJZVWNRZTJWCnpybkFGMnVjWnpQaVpa -T1BJY0F5b0tYZUJha21mazNFVXcxT0IzNkIyeWh3SkhBbThCMWdvMm9XS2tKZjlKSS9Xc004bXcw -dm0vTDQKTzdBVU9LemVCZkY0bW9udGdUVms5MUM1SEpoUitlTEVNaDNZbzRiNU5UTmVOdm5aQjFo -Q0ovWlE5RE1SVDZVNUZYVTY3OWU3SUFtMApBenNDZjZoM1FUd2xkRGJaM0FPMEFRZld1eURWd2lz -UlR5VnBCNzZNRmtRYm1TbkFiK3BkQ0FjNjdlZzFnV2FSRGJqSlp3UHdXMkJpCmxjdFNDNnoxalZN -aWJjZ0dHcjdhUXVHOUxPSGxiTEN4TFR5Rnk5WWpsRSs3WTVsNzVNZ3pTaGRLNjVsMHRkbVRLWnVl -RG5tM09xVFQKWW5tdVp5aThxeVU4eTBCakorQWRaQWR1VkxvQit3SHpLNWltN2VWeVZRQng4VnBw -Zk8rMlNsTXIyWVREWE5xM0xWNFcrVHdPN09vWQp0MXhxWHQrNEJLOEVIZ1RXQWE4QmR5R1hUWURC -U0xNdURzSlhBYmNDUnprVXp0QWJtQXBjRFN3TW5uOElPRElJSHdlY0dJby9BN2dGCitBK3dIcnZi -M0hYQXkwR1psZ0puV2VKc0I4eEJHK0F1QmU0QWJpUGVDMlJ5a043TFFid09Dci9MU21CdVVJZmJn -N0l0aWE5eWJ2b0gKK2ExRGF3MExnR3VDc25RRTVWZ0g3TytRMW1Hb3ptc3AxT3VYb2ZDOWdCVVU1 -UDRBVWd5dTdBb3NBajdLOEV5dE9RS1lSL3lpZnh0dwpQbkEzOEFUYTY3SmJTcG9uVXhpVWJJbmE2 -a3pVQmk4RUJscWVTWXYzQVhvL3F6VXdhVVRTWkFQWjVST1dUWmdXMUdla0xYckh4Y3NpCm44ZUJU -WUV0SE9LV1N5UFU5MytNUXNLY0dSTitSaEIrY0paRWdkMVJ4M2NoTUlLQ0ltc0Jmb1RzNlc5VDJu -bHRBandXNUhsRlROcUgKQTlkYTdyZWlqdmRSNExPUnNEM1E2SG1xNWJuN2dPOVRyR3lQRHNwd2JD -VHVST0RlbUhLVncyU2tPTDlwQ1p1SU91eWZaVXh6T3FxRApUZEhPUkNQQmpUT21DZkJINElJY3ow -RnRGbSs3b3M0bmFkWjJCekNld21qc1RPQmQ0S3NKejV3UnBObUtsSEJZVnFjaHhSL08welhlCjUx -R2JMb2VSbEg4TVI2UElCckxMeDhqRzBBMzFiVGVnZDJCU3pITXU4YkxJWjAyR3VPWFFLUFVGTkhY -WkFPd1pFMzRmOENId01jZjAKdXFCZG5POWg3eEJObklmUlNEbXFUU2VnaHZJVTZsVDdXcDQvQ2Rn -MmNxOHJVaXczRS84eXpRalNIQnk2dHdsMmhkU0JmcGVvTXRvTQp1Q1FtL1hLWWoxMEdvNUh5dTU3 -c3R2TUJhT0g3dWNpemV5UFgzTHk4aXBSc0ZyWkNTbTBWOEN6d1EyQlF6dng3a1d6Ry9BcndyWVR3 -CkF5Z2RvSFJGTTB4Ym16U1lGM2NTNnREQzdyQ2JvZmJ5N2RBOTEzaFFmdWZkQVd5ZTg5bEdrZzNr -azArMFU3ME16V1RPSjdsVGRZM24KS3A4L1ViRG1WSk5HcVM4QWQ2S0czdE1TMWgxNEMvaHJodlIr -Z052TTVTZkE3eTMzTDBLZDM5UWduUk1zY2E2aGVOYlFCVFc2bGRpVgpqbUZza09hUFEvZW1ZWGN6 -WEFHOFpMay9JcVpNNWRDRzNVdGxLK0IxWkFKTVcvdUo0MlpVNTcyQy8wZWlEaWV2czBVWE5PVWRu -L0c1ClZrclhZZkpzemhvQ1BJMU1JbkhjaWIwOUczNEt2QWtjR3JuL2EvUmJ4Wm4yekl2N0pPb3Nv -anlEUnRBRzEzaWd3ZFB3aERLbjBVRisKSmRKSXNvRjg4b2wycW9ZOVNlNHNYZU81eXVjVzRpMG9s -YVRtOVkzck1GclFtVWQvUWFhbEtEc2dnVCtZVWlERHRxZ0IzSXM2cnlSVwpvbGxPbElGb1NqZ1gy -ZXlqNWlkVGw3QTlmaVlhR1IrSDFpeVM4Z1FZR3JyM2IyU2VDZk5wWk5kY1lFbGpIZTYvaHl1ZlJD -YStNSnVnCmp1WmZ5QlBxM1p4cHp3NytUa1hUMUpPUmlTN3Zla1lmMUc3V1puenVBOVF4aEs4UE02 -WXhHQTBFbGdISHg4VFpENjN4Mk5xellUa2EKTVVkSDIrdUR2LzBTbm0xQjdlZDVTOWdMYU9hWUpa -NWhQdlU3UTZxUlpBUGx5YWRhdU1wbkxmbE14STFHU1gzajdJOWZRR2FxKzJQQwp6VUtXYTZmWmdX -WXYweDNpTGdKZWlkenJpenAxVUVPZWkyWUt1MUVZMFExSGkvMkd6ZEJPMjlYSU1TQUpZNXJxSHJw -M3ZTWGVtT0N2CnJkN0xVdkxJdzR2QlpXaEhDL3k5a1MvOWEyV2tmUS9xdE1haGVoc1RTMTdNQzVL -a3JLdkZLalFkWDRiYTdJN0FJNUU0MDBnZmhWMkYKZnQ5WEkvZk40Q0pwQjNVL05KQlpid2xianpx -L1hraDJMdkZNK1B2SWJOa2JEVlNhalVySkJzcVRUN1Z3bGM5YWttZUVoeU5yVFJibQpZMS9YckNZ -bDlZMVRJbVkwdERkMno2VWQwSlRIUllrTVJCMzhRalN6U2VNSnk3MWRrT25HTUFzMXZHa1VsTWlZ -U0htT1EvV2JRL3JvCmV1dmdiN1J4UnpHL1M2Vm5IQzZZdFoyaHlEbkJOcExOd2diMGNwK0RIQmF5 -emlDaW1PUGViWjFqclhnQTJjZVBwMWlXbzRMN2J6aWsKRWUyZ2hpQ3o1aFhBUHhLZTZ4LzhqVk1P -b01GUVA4ZDQ0ZkFGcU8zZG5wQi9vMU1KMlVCKytWUVRGL21zSjNuOStKcmdhZ2FLNmh0bgp6aHFE -cHJLN0EvdEdybkhJVnY4TWJpUGhYWUsvaTNJWFdRVU9kOXhMMEFGL0IxRjRlYmVqZUkzR0hFRysw -Q0Y5TThOSWl6c2ExZmx2CkRtbFdtZ3ZSYjM4NGJuVktvenN5TXhwSGgzSTNucHBSV0srWThFcWN4 -dXB5T3V1dmtOMzJVNkY3MzBOcmFubjRPWElaUHpFbG5sSEMKdGdHTG1lRitTRUU1cE1VTHN3ZjJO -WlJLVVEzWjJPUlRhZG1BdTN5cWlZdDhldU91S0J1ZG92cmFPbzR1cU9OZmhCYlBvMnlQbE1nRApq -aG1PRFA0KzdSQjNBUEFKeS8zQkZOWXRESmNpYjZ2SnFNeXRTUEVaaklscVJVcWVuMEhLNkNXU08r -ZCthRUY3QWJVL1h2cTd5RFIzCkNuQlQ2SDR2cE5pejBoWE41aTRBZm9kTWYxOHFzNHhtUU5Fbkpy -eExGUzRiYzFGSGJWeXdoNlA5TUZFVHFRc25vUGF4TytsbXVsWEUKMi9UYmtXSjRCYzBnWGVJWmpG -Kys3VjBNY3pWYXNJOWU0OUFhbWkzTTdMZXFobXhzOHFta2JDQ2JmS3FGcTN6NlVKNzV1VkVvcWEv -TgpuRFVVMmJldmprbkV6Q3hjVFRyRzdQSlBoN2luVWJvcnNoMnRnMFM1Q2JtalRrSGVYTTlHd2w5 -Q1Npbk52R0wyZ1J5ZEVyZGVwcXp4CnFMT2ZoZHp2d2t4Q3pnWlptWW44d1I5RG5pMFRrV253dHZ6 -RjVBM1VBU1o1d2RXQ3Q5Qm0yYW5JVkhjaWNrM055cjdJbTJnTWJwM2MKUjJpR2Fsczg3WTNNTUdi -MjRSb1A1SWwwbzBQK1I4YmM3d0RPcG5RUVZnOHFKUnZJTHA5cTRTcWZQaVNYOCt0b1ZwYUZXeWwx -dktrMgpKZlcxelVSTVoybnpRQUxaTU1FK0U3RjlkK0QrNEcvYXgxbUdJeE5aVktQdmpIMnQ0ajNV -SUFlaHpqWGF1WnZ5eCsxekFkWGxhTlJCCjM1TlNQaGNsa3VXN0MwT1FvOEUwTkt1eWVaYnNnSGJ3 -M29YZHMrVW9pamM0dXVSL09qTDczUjM4L3lENjNmZWxlSitNamFUME55QzMKNDQrbnBGRUxMa0Vt -azFOUk8xbWQ4ZmxoYUVDekY0VVhmeXNranlRV28xbGRtQmJVOWhmbGlHZnliZVJqWkxKU3Jtd2d2 -M3lxZ2F0OAorcEk4RTVtSHRnbGt1V3F0UU1CU1g1c1NNZXNERDFuQ1FCM3Zjb29Yc1pLK083QVVy -VitNSjM1aGFYandyTTJQZWpUeHByUFphTlEyCmh0SkYreHRSSXowZzV0bGhhT1I5QTI1ZUVhUFJh -UHRKUzFpZTd5N01EZktlaGJ3c290NWdXNktSeGxLMHlUSnFKejhHeWVEdERQbFAKQ2VMUGk5eWZq -ZHJDbEpqblhOTmZUTUZKb1o2OGdCYjl6aWIreElVNEJxQVRBQTVCU3RFd21uUXo1bE5CdlBBMzVV -ZWdEdVQ4SFBHRwpZVzl2elV3NXNvSHk1Rk5wc3NobmF5VDNac2FwdnUxSXN6OFhFejRDQ2VxcW1Q -QzQ0eEUyUWpPRGg5RUkzREFRMlVmUHhyNkphUkRxCktBY2tsUGtPNG1kTkI2TUYzN0FpNll1bS9z -dHhjeXNFK0J6cXhHMzdWOEs0SGc4eG11TGZ1QnVhZ1puUjZjYklKWEkxeGVjcHRhTGYKYndhU3cx -R08rWDhNalFEam5CczJSY3A0RGZFTDQwbnBHODdFZmEyczJ1eUpGSFVXZWxHWXBjME5YZGVpdGJX -NDlSNnp3V3NqcEVqRApKcG9yMFNBcWpHdThzeWoveUpJTzhtODJyQlo1WkFQNTVCTzMrVzRTZW9m -U1p1NUo4VnpsczBXUVJuVDJXUTNxVnQvQnlLenhQRnAvCldJc2E5SEZCK0lGbzBmbmxJSHdONml4 -R1JkSko2bVI2SVZ2b1BPVFBQUWVOS0tLYnEwQzdzQmNHNVhnVExWcWVFcFB1ZnVpSGkyTVgKTkxx -N0NoMHhmUVZTWEduSE4yeU9HdXY5YUgzbFRiUlg1U0ZrK3RyTzhveXJFcGxNcWVKN2tZS3l1eXpJ -NzNsa3luc0V1VDYvVG1IVAoxK3RvTTJKUy9qMHAvaDNmc0pSdkFub0JUYnFyaWQ4UW1sYS9zVUVl -V1QyOURrV212WXRSaDJCenJxZ0Y1c2dIMjVXMDlqU1ZRcDAzClE3UEx5NUVjTDhkdTRrdUwxNHBt -ZnVYU1FYbEtwRkZrQS9ua0U1WU55TXZ4Q2ZRdW0zZGlNZXFQeUJBdmkzd21vRDZzRmpSQ2ZjdWkK -MWw5QWF6UmM2MzhLcFJzZ2x3TmZxMUgrMVVxL0RXMVkzQ1pEbWlNcFBpL3FZaXJqd3V3UjUxSHNV -cHNGTDV2S2NDNmxKdVJPZy84bwpWWDJJSG53SW1xazF1d3ZnTzhobE9Jc3lISWtXU1ExM29WM05q -YkJBM3hrNEdUZlBTQnRlTnVYVGdyd2Y4NWp2bWdLdlJPckRJb3BICmgyMW9IV1JsWFVwVFdjNUJt -eGU3cDBVTTZFQW1TY01nNU9aYUw3OS9UNEVPdkd6SzVRQjB6dDJkOVM1SXRmQktwUHBzUTZsNVp3 -V3kKTFc4YS9MOGJXaU9weHZsYnRXWUoybjh5d1RIK1d4VE9QT3VCN0s3VHFMMm5qYWNVTDV2eW1Z -WUdWcDRVS3ZuZGdXWWtxZjRYWUhmdApHNFVXVkk5Rm15YUhXT0pVSXY5S2tEWDluWkRMZGRaQnlp -eVNQLzdrcVI5ZU50a1poamFXK3NHNkE1WDY3a0N6a2xiL2J5UThtL1dEClVubnlyMGY2MDVIcnRp -c25VZkQyMnh5NW0zc2FBeStiN0xRanI4cWhhUkU5SGhlaW45TDlmMkVPY3Z0TjR4aDBxRnYvNERx -WDlNK2sKZW1xRGwwMCtaZ1A3MTdzUW5zN0JXQnBqRjNjOTZJSE9PRXM2VCt0Z1NuMyttMzFuYjJm -Qnl5WWY0OUdocVI1UFJhaUV1Y3JqOFhnOApIby9INC9GNFBCNlB4K1B4ZUR3ZWo4Zmo4WGc4ZGVL -L0E2bjMvdnVXdlNFQUFBQUFTVVZPUks1Q1lJST0K - - $$H_{1} CNOT_{1,0} Z_{1} X_{1} \left(\frac{1}{2} \sqrt{2} {\left|00\right\rangle } + \frac{1}{2} \sqrt{2} {\left|11\right\rangle }\right) = {\left|11\right\rangle }$$ - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUo4QUFBQ09DQVlBQUFBdmtkcmVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUJ0cEpSRUZVZUp6dDNWOUlV -MzBjeC9IUFdiVm84aVNOMmxaSWd5Qm9XTWlDTEhSclEwcEJyd3FDCkxyck1yQzZxaXlDaWl5NGxT -UHBqekNUb29xam96OVdDaXY2d2xhNGlpelJ6VVJEUklRaktpaHhyV3VHdmkrZEpxdjNSWnptLzJ6 -bWYKRjV3YmZ6cStCOStkYzNZYUhrMHBOUVRnSHhCTk1VMHBwYVNISUhPeVNBOUE1c1g0U0F6akl6 -R01qOFF3UGhMRCtFZ000eU14akkvRQpNRDRTdy9oSURPTWpNWXlQeERBK0VzUDRTQXpqSXpHTWo4 -UXdQaExEK0VnTTR5TXhqSS9FTUQ0U3cvaElET01qTVl5UHhEQStFc1A0ClNBempLd0YydXgyYXBo -VnNzOXZ0SXZ2RnY5VlNBalJOUXlGL1RZVisvV3g0NUNNeGpJL0VNTDRTdDM3OWVuZzhIbGdzRmxp -dFZuaTkKWHJTMHRBQUFYcjkramJxNk9sUlVWTUJpc2FDOHZCelYxZFVJaFVMQ1UvOUhVZEViNzlk -MC8vNTlwV21hMnJWclY4YjExdFpXcFdtYQp1bkRoUWw2dlh5Zzg4aG5BblR0M0FBQ05qWTBaMXlP -UkNLWk5tNGI2K3ZxcEhHdGNwb3R2YUdnSS9mMzlTQ1FTMHFOTW10dTNiOE5xCnRjTG44Nld0ZmZ2 -MkRiRllETXVXTFVONWVibkFkTm1aSmo2bEZQYnQyd2VuMDRuYTJsbzRuVTdzMzc5ZjVCYkRaQm9k -SFVVc0ZzT0sKRlNzd2E5YXN0UFdlbmg1OCtmSUZxMWV2RnBndU45UEVkL2JzV1J3NWNnVER3OE5J -SkJKSXBWSm9hMnZEcFV1WHBFZjdLMzE5ZmZqOAorVE9Dd1dERzlVZ2tBZ0FJQkFKVE9OWEVUSmNl -WUtxMHQ3Y2ptVXorOXJWa01vbWpSNDlpdzRZTlFsUDl2Wi9YZTlldlg4ZkRody9UCjFudDZlcUJw -V2xFZStiSyt6UUhBcllpMmJOYXRXNmRtekppaGtzbGsydHIzNzkrVnpXWlRsWldWT2Q5MVN1MVQx -dE91VXNwUTI0RUQKQjlLdWlXdzJHdzRkT2lRKzIzaGJydDlSVjFjWHFxcXFZTFBaMHRZZlBYcUVW -Q28xb2FPZXhINlo1cHB2NTg2ZHFLbXBRVmxaR1FDZwpyS3dNZnI4ZjI3ZHZGNTRzZi9GNEhCOCtm -SURmNzgrNDN0M2REYUE0ci9jQUU3M2htRGx6Sm03Y3VERjJBUjZOUm5IdDJqVllyVmJoCnlmTDM4 -M292MHkwV0FJakZZZ0JRbk5kN01PbW5XcVEreFpHdmJQTnUzTGdSRnk5ZXhOdTNiK0Z3T05MV1hT -NFhacytlalJjdlh1VDEKK29WbW1pT2YwWXlNakNBYWpXTFJva1Vadyt2cjY4TzdkKzlRVzFzck1O -M0VNTDRTbytzNkFvRUFQQjRQM3I5L0QxM1g0ZlA1Y1B6NApjUURBNWN1WFVWTlRnN1ZyMTBMVE5J -VERZUVNEUWR5OWUxZDQ4blE4N1pZQWZwaVVhSkl4UGhMRCtFaU1hZjV2dDlScG1sYXcxNTR6Clow -N0JYanNYeGxjQ1N1bk4wZi9CMHk2SllYd2todkdSR01aSFloZ2ZpV0Y4SklieGtSakdSMklZSDRs -aGZDU0c4WkVZeGtkaUdCK0oKWVh3a2h2R1JHTVpIWWhnZmlXRjhKSWJ4a1JqR1IySVlINGxoZkNT -RzhaRVl4a2RpR0IrSllYd2todkdSR01aSFloZ2ZpV0Y4SklieAprUmpHUjJJWUg0bGhmQ1RHRlBH -TmpJemczTGx6Q0FhRGNEcWRBUDU5TkZSZFhSM09ueitQcjErL0NrOW9Ub2FPVHltRnRyWTJ1TjF1 -Cm5EeDVFanQyN0VCdmJ5OEE0UEhqeDlpMmJSczZPenZoZHJ0eCtQQmh3Lzd0NDJKbDJDY1FqWTZP -b3JtNUdVK2VQTUhwMDZleFpNbVMKc2JVL243Z1RqOGV4YWRNbVZGZFhJeFFLd1dJeDlML0pvbUhZ -K0hidjNvMEhEeDdnNnRXclk4L1kvU25UNDU0U2lRUWFHaG9RQ0FUUQoydG82bGFPYWxpSGo2Ky92 -UjBOREE1NCtmUXE3M1o2Mm51MVpZNE9EZzFpNmRDbWkwZWh2UjBvcURFT2VYMEtoRUxadTNab3h2 -RnptCnpwMkx6WnMzbzZPam8wQ1QwYThNZCtRYkdocUMyKzNHd01BQUZpeFlrUEY3Y2oxbFVkZDFl -TDFlNkxxZWRycW15V1c0STE5M2R6ZVcKTDErZU5ienhMRnk0RUpXVmxiaDM3OTRrVDBaL01seDhu -ejU5R3J1WGx5K0h3NEdQSHo5TzBrU1VUZGJUYmlFZk5FY0U1RGp5S2FWSwpjcnQxNnhaV3JseVo4 -M3ZHMnordjE0dXVyaTd4ZlRINlpyalRycy9uZzY3cmlNZmplZjE4YjI4dkJnY0hzV3JWcWttZWpQ -NWt1UGlzClZpdWFtNXZ6dmwzUzBkR0JscFlXVEovT3A4RVdtdUZ1dFFEQW16ZHZVRlZWaFZnc2x2 -Rm1jYlpiTFFNREEvRDcvWWpINDNDNVhGTXgKcXFrWjdzZ0hBQlVWRlRoNDhDQWFHeHZ4NnRXckNm -M015NWN2MGRUVWhQYjJkb1kzVlpTQkhUdDJUTTJmUDErZE9YTkdEUThQajMzOQoxOTFPcFZMcTFL -bFR5dVZ5cWM3T1Rva3hUY3ZROFNtbDFNMmJOOVdhTld1VXcrRlFlL2Z1VmVGd1dBRlE0WEJZN2Rt -elI4MmJOMC9WCjE5ZXJTQ1FpUGFycEdQS2FMNVBuejUvanhJa1RlUGJzR2E1Y3VZS21waVo0UEI1 -czJiSUZpeGN2bGg3UGxFd1RIeFVmUTc3aG9OTEEKK0VnTTR5TXhqSS9FTUQ0U3cvaElET01qTVl5 -UHhEQStFc1A0U0F6akl6R01qOFF3UGhMRCtFZ000eU14akkvRU1ENFN3L2hJRE9NagpNWXlQeERB -K0VzUDRTQXpqSXpHTWo4UXdQaExEK0VnTTR5TXhqSS9FTUQ0U3cvaElET01qTVl5UHhEQStFc1A0 -U0F6akl6R01qOFF3ClBoTHpBM3FpQkxJVnd1UkNBQUFBQUVsRlRrU3VRbUNDCg== - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNaQkpSRUZVZUp6dDNWbElW -SDBZeC9IZlVkT3diQkZMcFZKOG96SWwyZ2x4cXd3Ukl6RlNFb21vCm9GV2tJT2lxMjJnbFd0QnN4 -eVFvS3k4S29Td3JTMG13REtQSmpHaFJLalRLMUt3eDArZTllSG1qY3NiVWZPWTQ0KzhEYytOL3p2 -RTUKem55YmM2YXhEQkZwQnVBREl1cFhob2lJMlVNUXVTSTNzd2NnY2xXTWkwZ0o0eUpTd3JpSWxE -QXVJaVdNaTBnSjR5SlN3cmlJbERBdQpJaVdNaTBnSjR5SlN3cmlJbERBdUlpV01pMGdKNHlKU3dy -aUlsREF1SWlXTWkwZ0o0eUpTd3JpSWxEQXVJaVdNaTBnSjR5SlN3cmlJCmxEQXVJaVdNaTBnSjR5 -TFQrZnI2d2pBTXRadXZyNjhweDhWL0s1NU1aeGdHTkorRzJ2dTN4OFBoMzlFa05UVTFPSGJzR0tx -cnEvSDUKODJmNCtQZ2dMQ3dNYTlldXhlVEprODBlajF5UXk1OFdGaGNYWTlHaVJZaU5qWVdYbHhj -MmJkcUV1M2Z2WXVQR2pYQjNkMGQwZERUaQo0K054Ky9adHMwY2xWeU11N1BEaHd4SVlHQ2huejU0 -VnE5WDY0K3MvSDdiVmFwVzh2RHdKQ0FpUW5Kd2NNOFljOUxwN0dpNWR1bFJDClEwUEZNQXdaTW1T -SXpKZ3hROWF0V3ljaUlxOWV2WklGQ3hiSXVISGp4REFNR1RGaWhNeWRPMWV5c3JKNnZIOU5MaHZY -cVZPbkpDUWsKUkY2OGVORmx6ZFlQKy9uejV4SWNIQ3g1ZVhtT0dJOSs4cWNuZjNsNXVSaUdJVnUy -YkxHNXZuUG5UakVNUS9MejgvdTBmeTB1R1ZkZApYWjM0K3ZySzA2ZFBiYTdiKzJFL2Z2eFlSbzhl -TGUvZXZkTWNqMzd6cHlmL25qMTd4REFNS1NvcXNya2VIeDh2SGg0ZTh1blRwejd0Clg0dExYbk1k -UDM0YzZlbnBtREpsU3ErMkN3OFBSMnBxS2s2ZVBLazBtYjZHaGdZOGZ2d1k3ZTN0Wm8vU2IwcEtT -dURwNlltb3FLZ3UKYSszdDdTZ3JLOE8wYWRNd2N1UklFNmJyaGlsSksycHJhNVBBd0VDeFdDeDI3 -OVBkWVQ5OCtGQW1USmdnN2UzdEd1T3ArZkxsaXl4Ygp0a3k4dkx6RXg4ZEhSbzRjYWZjMGFhRHA3 -dkhvNk9pUVVhTkdTVlJVbE0zMXNySXlNUXhETm0vZTNLZjlhM0s1VjY3UzBsSUVCUVVoCkxDeXNU -OXZQbURFRGZuNStLQzh2NytmSmRHM2R1aFdGaFlWb2EydERTMHNMbXBxYXNHclZLdFRVMUpnOTJs -K3BxcXBDVTFNVDVzK2YKYjNQOTFxMWJBSURZMkZnSFR0VXpMdmYzWEEwTkRRZ09EdjZyZlFRSEI2 -T2hvYUdmSm5LTTNOeGNXSzNXWDc3MjdkczNuRGx6Qmp0Mgo3REJwcXI5MzU4NGRBRUJSVVJIdTM3 -L2ZaYjJpb2dLR1lTQW1Kc2JSby8yWnZaYzBBTHp4NXJDYlBVdVhMcFVoUTRaSWEydHJsN1h2CjM3 -K0x0N2UzaEllSGQzdDZadFl4MlQwdGxQL2VTWFM2VzJGaElSWXVYTmp0ZmY1MGZOSFIwYmgrL2Jy -cHg5S2IyNUlsUytEaDhldUoKaUxlM04wcExTMDJmN1UrMzdwNkRkKy9leGZUcDArSHQ3ZDFsL2NH -REIvajY5V3VQWHJYTU9DNlh1K2FLaW9wQ1pXVWwzcjU5MjZmdAphMnRyWWJGWUVCRVIwYytUNlRw -NjlDaUNnb0xnNCtNREFCZzZkQ2d5TXpNUkdSbHA4bVI5OStUSkUzejQ4QUhSMGRFMjEwdExTd0VN -CnpPc3R3QVUvL2pSaXhBaWtwYVhoeElrVGZkcisyTEZqV0xGaUJZWU5HOWJQaytrS0RBekVzMmZQ -Y09uU0pRQ0F4V0xCcmwyN1RKN3EKNy94L3ZXWHJMWGdBS0NzckE0Q0JlYjBGZEhPeTY4UWVQWG9r -Z1lHQjh1SERCNXZyOWc3Ny9mdjM0dS92TDlYVjFacmpxWE8yaDlYZQp2TXVYTHhjM056ZXByNisz -dWU3djd5K1RKazNxOC82MXVkd3JGd0JNbXpZTjZlbnBTRTVPUm10cmE0KzJhV2xwUVZKU0VsYXZY -bzNRCjBGRGxDZWxQMnRyYWNQdjJiZnp6eno4WU8zWnNsL1dxcWlvME5EUU03Tk5lVTVKMmdJNk9E -bG16Wm8zTW1UT255eXZSNzRkdHNWaGsKNXN5WnNuNzlldW5vNkhEa21DcWM3V0g5ZWQ3WHIxOUxU -RXlNaElTRWlKdWJtM2g2ZWtwa1pLUWNPWEpFUkVRdVg3NHNFUkVSTW1iTQpHSEZ6Y3hOZlgxK0pq -WTJWc3JLeUh1M2ZrWnpyVWVpbHpzNU8yYmR2bi9qNyswdGNYSnhjdkhoUjNyeDVJd0RrelpzM2tw -K2ZML1BuCno1ZUFnQUE1Y09DQWRIWjJtajF5djNEbXVKeHgvL1lNaXQ5RS92YnRHd29LQ25EMDZG -RlVWMWVqdnI0ZUFRRUJtRHAxS2paczJJRGsKNUdSNGVucWFQV2EvTWVzM2IvdktWWDhUZVZERU5k -Z3dMc2Z1M3g2WGZFT0RhQ0J3dWM4V2tuTXlERU50MzZOSGoxYmJkM2NZRjVuTwptVTVoZTRPbmhV -UktHQmVSRXNaRnBJUnhFU2xoWEVSS0dCZVJFc1pGcElSeEVTbGhYRVJLR0JlUkVzWkZwSVJ4RVNs -aFhFUktHQmVSCkVzWkZwSVJ4RVNsaFhFUktHQmVSRXNaRnBJUnhFU2xoWEVSS0dCZVJFc1pGcElS -eEVTbGhYRVJLR0JlUkVzWkZwSVJ4RVNsaFhFUksKR0JlUkVzWkZwSVJ4RVNsaFhFUktHQmVSRXNi -bEFqNTkrb1JEaHc1aDFxeFo4UFB6QXdDTUd6Y09LU2twdUhuenBzdit0NmdESGVOeQpZbGFyRlpt -Wm1RZ0pDVUY1ZVRuMjc5K1A2dXBxQU1DOWUvY1FGeGVIelpzM0l5d3NERmV1WERGNTJzSEhFUDZ4 -NXBTYW01dVJtSmlJCjhlUEg0K0RCZy9EMzkvK3haaGpHajFjckVjSE5temV4Y3VWS2JOKytIUnMz -YmpScjVFR0hjVG1oOXZaMkpDWW1ZdUxFaWNqT3pvYWIKMjY4bklEL0g5YitYTDE4aUppWUcrL2Z2 -UjJwcXFpUEhIYlFZbHhQS3pjM0ZxVk9uVUZ4Y0RBOFBqeTdydHVJQ2dNcktTaVFrSktDMgp0aFpE -aHc1MXhLaURHcSs1bkZCV1ZoYTJiZHRtTTZ6dXpKbzFDN05uejBaK2ZyN1NaUFF6eHVWa0tpb3E4 -UDc5ZXlRa0pQUnArMDJiCk5pRTdPN3VmcHlKYkdKZVR1WHIxS2xKVFUrSHU3dDZuN1JNVEUyR3hX -TkRZMk5qUGs5SHZHSmVUYVd4cy9PV2R3ZDV5ZDNlSG41OGYKUG43ODJJOVRrUzEyMzlBd0RNUFJz -eEM1Rkx0WHhId1RjV0RhdTNjdlhyMTZoYXlzTEx2M3NmZHVJUUI4K2ZJRlk4YU1RWDE5UFlZUApI -NjQxSm9HbmhVNG5KU1VGK2ZuNStQcjFhNSsyUDNmdUhCWXVYTWl3SElCeE9abVFrQkRNbXpjUDU4 -K2Y3L1cySW9Lc3JDeGtaR1FvClRFYS9ZMXhPS0NNakF6dDM3a1JUVTFPdnRpc29LRUJ6Y3pQaTQr -T1ZKcU9mTVM0bmxKQ1FnUGo0ZUNRbko2T2xwYVZIMjl5NmRRc2IKTm16QXVYUG51bnhjaW5Ud3Ar -eUVETVBBZ1FNSE1IbnlaRVJIUitQR2pSdm83T3kwZWQvR3hrYnMzcjBiYVdscHVIRGhBbWJQbnUz -ZwphUWV2M24xK2hnWU1kM2QzNU9UazRNeVpNOWk2ZFN1c1ZpdldyVnVIc0xBd0FQK2RBaFlXRnFL -Z29BQ0xGeTlHU1VrSlFrTkRUWjU2CmNPRUhkMTJBaU9EZXZYczRmZm8wNnVycWNPM2FOU1FsSlNF -aUlnSnIxcXpCMkxGanpSNXhVR0pjUkVwNHpVV2toSEVSS1dGY1JFb1kKRjVFU3hrV2toSEVSS1dG -Y1JFb1lGNUVTeGtXa2hIRVJLV0ZjUkVvWUY1RVN4a1draEhFUktXRmNSRW9ZRjVFU3hrV2toSEVS -S1dGYwpSRW9ZRjVFU3hrV2toSEVSS1dGY1JFb1lGNUVTeGtXa2hIRVJLV0ZjUkVvWUY1RVN4a1dr -aEhFUktXRmNSRW9ZRjVFU3hrV2toSEVSCktXRmNSRW9ZRjVFU3hrV2s1Ri8zSEpBNVVnaGNtZ0FB -QUFCSlJVNUVya0pnZ2c9PQo= - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNSRkpSRUZVZUp6dDNWdElW -T0VheHZIbm16R3pnMGptR0pFYVZwUVZCbWtuOHhSV1lpT2FpVUVFCmhYWlJtVWhCRUYzVVRSQVZn -WmlnNVkyaGdabVNRU1dZbEdZMHFCbEYwT0dxZ3hXQ1JwcEdudkhiRjN2WDFoeExiVjZYTXo0L21J -dm0KY3hidnpPcnZyTFVjUzJtdE93RjRnb2djU21tdHRkRkRFTGtpazlFREVMa3F4a1VraEhFUkNX -RmNSRUlZRjVFUXhrVWtoSEVSQ1dGYwpSRUlZRjVFUXhrVWtoSEVSQ1dGY1JFSVlGNUVReGtVa2hI -RVJDV0ZjUkVJWUY1RVF4a1VraEhFUkNXRmNSRUlZRjVFUXhrVWtoSEVSCkNXRmNSRUlZRjVFUXhr -VWt4S1hpOHZiMmhsTEtvVGR2YjIram41YkxrOWh2VTJFZnV0Uy9GYStVZ3FPZmpzUTJhVGpwMTlp -b2ZlaFMKNzF4RVV3bmpJaEl5TGVKcWJXMkZ1N3M3VENZVDNOM2RzWHo1Y3NUR3htTEhqaDNZc1dN -SDVzK2ZENVBKaEZ1M2JoazlLdjBtT1RrWgpLMWV1L0xYdjFxNWRpME9IRGdFQW1wcWFFQk1UQXo4 -L1A1aE1Kbmg1ZVdIRGhnM0l5OHN6ZU9yLzBTNWt0S2RUVUZDZ1o4NmNxWE55CmN2VEF3TUN3dFZ1 -M2JtbXoyYXlQSGowNnJtMlM0L3p0TmE2dnI5ZEtLWDNzMkRHNzYrZk9uZE5LS1YxYVdqcWg3VXR4 -TXpidHlWRlIKVVlIeThuSllyZFpoOXpjME5HRHYzcjFJU0VoQWRuYTJRZFBSM3p4NjlBZ0FSdXkv -bjJwcWFtQTJteEViR3p1WlkvMlZ5eDhXOXZYMQo0ZXZYcnlOMnpMdDM3NUNZbUlqZzRHQmN2Mzdk -b09rY3I3VzFGUzlmdmtSL2Y3L1JvemhNYlcwdDNOM2RFUkVSTVdLdHY3OGZOcHNOCndjSEI4UEx5 -TW1DNjBibDhYQzB0TFRoMTZ0U3crOXJhMm1DMVdqRm56aHpjdlhzWEhoNGVCazNuT04zZDNVaEpT -VUZBUUFBMmI5NE0KaThXQ3NySXlvOGY2WjRPRGc3RFpiRmkvZmoxbXpabzFZcjJ4c1JGZFhWMklp -b295WUxvL2MvbkRRbjkvZi9qNysvLzZjMjl2TDVLUwprdkRseXhmWWJEWllMQllEcDNPYzQ4ZVBv -NktpQXIyOXZlanQ3UVVBcEthbVlzMmFOVml4WW9YQjAwM2NpeGN2ME5IUmdTMWJ0dGhkCnI2bXBB -UUJFUjBkUDRsUmo0L0p4RGFXMVJscGFHcDQ4ZVlMS3lrb0VCUVVaUFpMREZCWVdvcWVuWjloOWZY -MTlLQ29xd3Rtelp3MmEKNnQvOVBOK3FxcXJDMDZkUFI2dzNOalpDS1RVbDM3bEd2WXdDd0NsdmYz -THk1RW10bE5MWHJsMGI4eFVmbzUvUGRMbU5adGV1WFhyRwpqQm42eDQ4Zkk5WUdCZ2IwN05tejll -clZxNmZtUGh6ejN6SW44S2VkbEorZnI1VlMrc3laTThQdTcrN3UxdFhWMVJQYTVsU1NrSkNnCjNk -emNodTNjMmJObjY4ZVBIeHM5MmwrTjlob1BEZzVxSHg4ZnZXN2RPcnZyRFEwTldpbWwwOVBUSjdS -OWFTNS9RUU1BS2lzcmtaR1IKZ2RUVVZKdytmWHJZV25GeE1UbzZPZ3lhekhIeTgvTVJFQkFBVDA5 -UEFJQ0hod2N5TXpNUkhoNXU4R1FUOS9yMWEzejkraFdSa1pGMgoxeDgvZmd4Z2FwNXZBWENTYjh0 -alpPL3BQSC8rWEh0NmV1cHQyN2FOK0FHeTFscEhSRVRvcnE2dWNXMXpxaG9ZR05CVlZWVWFnSDc3 -CjlxM1I0NHpaYUs5eFhsNmVWa3JwbXpkdjJsMVBUazdXU2luZDNOdzhvZTFMYytsM3JzK2ZQeU0r -UGg2TEZ5OUdlWGs1ekdienNQWGkKNG1KNGUzdmJ2Y1Ryak14bU03WnYzdzRBV0xKa2ljSFQvTHZh -Mmxvb3BleitmQXNBYkRZYmxpMWJob1VMRjA3eVpHUGpzbkYxZG5iQwphclZDYTQyS2lvcGZoMHNB -ME56Y2pQUG56MlBmdm4zWXVYT25nVlBTYUhwN2UvSHc0VU1zV2JJRXZyNitJOVpmdkhpQjF0Yldx -WDNZCmE4ajdwWkNoVHljdExVMmJUQ2J0Nysrdk4yM2FwRGR0MnFSRFFrSzBsNWVYVmtwcHBaU2VP -WE9tYm0xdEhmTTJuWVd6elR4MDNxYW0KSmgwVkZhVURBd08xeVdUUzd1N3VPanc4WEYrK2ZGbHJy -Zlh0MjdkMVdGaVl0bGdzMm1ReWFXOXZieDBkSGExdE50dVl0aitaK011UwpCbXhUbXJQTnpGK1dK -S0p4WVZ4RVFoZ1hrUkNYKzJ5aFVzcWgyNXMzYjU1RHQwZjJPWHEvRFdYVVBuU3B1SnpwSko3K3ox -WDNHdzhMCmlZUXdMaUloakl0SUNPTWlFc0s0aUlRd0xpSWhqSXRJQ09NaUVzSzRpSVF3TGlJaGpJ -dElDT01pRXNLNGlJUXdMaUloakl0SUNPTWkKRXNLNGlJUXdMaUloakl0SUNPTWlFc0s0aUlRd0xp -SWhqSXRJQ09NaUVzSzRpSVF3TGlJaGpJdElDT01pRXNLNGlJUXdMaUloakl0SQpDT01pRXNLNGlJ -UXdMaUloak1zRmZQdjJEVGs1T1FnSkNZR1BqdzhBWU5HaVJVaEpTVUYxZGJYTC9yZW9VeDNqY21J -OVBUM0l6TXhFCllHQWc2dXZya1pXVmhUZHYzZ0FBNnVycXNIWHJWaHc5ZWhTclZxM0NuVHQzREo1 -MitsR2EzOWFjVW1kbko2eFdLL3o4L0hEcDBpVXMKV0xEZzE1cFM2dGU3bGRZYTFkWFYyTDkvUDA2 -ZE9vWDA5SFNqUnA1MkdKY1Q2dS92aDlWcXhkS2xTNUdYbHdlVGFmZ0J5TkM0Zm5yLwovajJpb3FL -UWxaV0YzYnQzVCthNDB4Ympja0tGaFlVb0tDakFnd2NQNE9ibU5tTGRYbHdBOE96Wk04VEZ4ZUhq -eDQvdzhQQ1lqRkduCk5aNXpPYUhjM0Z5Y09ISENibGgvRWhJU2d0RFFVSlNXbGdwTlJrTXhMaWZU -Mk5pSUwxKytJQzR1YmtLUFAzTGtDUEx5OGh3OEZkbkQKdUp4TVpXVWxkdS9lRGJQWlBLSEhXNjFX -dkhyMUN1M3Q3UTZlakg3SHVKeE1lM3Y3c0N1RDQyVTJtK0hqNDRPMnRqWUhUa1gyakhwQgpReWsx -MmJNUXVaUlJ6NGg1RVhGcXVuanhJajU4K0lEYzNOeFJ2MmEwcTRVQTBOWFZCWXZGZ3BhV0ZzeWRP -MWRxVEFJUEM1MU9Ta29LClNrdEwwZDNkUGFISGw1U1VJQ1ltaG1GTkFzYmxaQUlEQTdGeDQwYmN1 -SEZqM0kvVldpTTNOeGNaR1JrQ2s5SHZHSmNUeXNqSXdMbHoKNTlEUjBUR3V4NVdYbDZPenN4T3hz -YkZDazlGUWpNc0p4Y1hGSVRZMkZrbEpTZmorL2Z1WUhsTlRVNFBEaHcranBLUmt4TWVsU0FaZgpa -U2VrbEVKMmRqYVdMMStPeU1oSTNMOS9INE9EZzNhL3RyMjlIUmN1WE1DZVBYdFFWbGFHME5EUVNa -NTIraHJmNTJkb3lqQ2J6Ymh5CjVRcUtpb3B3L1BoeDlQVDA0T0RCZzFpMWFoV0EveDRDVmxSVW9M -eThIUEh4OGFpdHJVVlFVSkRCVTA4di9PQ3VDOUJhbzY2dURsZXYKWHNXblQ1OXc3OTQ5SkNZbUlp -d3NEQWNPSElDdnI2L1JJMDVMakl0SUNNKzVpSVF3TGlJaGpJdElDT01pRXNLNGlJUXdMaUloakl0 -SQpDT01pRXNLNGlJUXdMaUloakl0SUNPTWlFc0s0aUlRd0xpSWhqSXRJQ09NaUVzSzRpSVF3TGlJ -aGpJdElDT01pRXNLNGlJUXdMaUloCmpJdElDT01pRXNLNGlJUXdMaUloakl0SUNPTWlFc0s0aUlR -d0xpSWhqSXRJQ09NaUVzSzRpSVF3TGlJaGpJdElDT01pRXNLNGlJVDgKQjBjVEJPaEFmZ3lrQUFB -QUFFbEZUa1N1UW1DQwo= - - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVE4QUFBQ09DQVlBQUFBdnRJMzNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUM1aEpSRUZVZUp6dDNWOVFW -UFgveC9IWFdmNkpqSW83R2lEaFFvM2hIeWhObllIaGJ3NmlXZEZxCkl6Qk8vM0RHQ0ozK1hCVVhk -dE9OVFUzTldKbXBKTTB3bU9PRk5rMDAyNUtGNVJabC96QVJuQm9LREJ6V29SSmlFbUY3ZnkvNjZV -OWwKRitIdExtZDNlVDFtdUhBL2U0N3YzYk0rUFh0VzBCQ1JmZ0F6UUVRMEFZYUlpTmxERUZIb3Na -ZzlBQkdGSnNhRGlGUVlEeUpTWVR5SQpTSVh4SUNJVnhvT0lWQmdQSWxKaFBJaEloZkVnSWhYR2c0 -aFVHQThpVW1FOGlFaUY4U0FpRmNhRGlGUVlEeUpTWVR5SVNJWHhJQ0lWCnhvT0lWQmdQSWxKaFBJ -aEloZkVnSWhYR2c0aFVHQThpVW1FOGlFaUY4U0FpRmNhRGlGUVlqeEJpdFZwaEdJWmZ2NnhXcTlr -UEsrd0YKNHJnRnd6SGsvMVViUWd6RGdMOFBWeUQyU2RjSzlITnMxakdNblBUZjBTUm56cHpCM3Ix -NzBkYldoci8vL2hzelpzekE0c1dMc1dYTApGdHh4eHgxbWowY1Vjc0wrYmN2Um8wZFJWRlNFZ29J -Q3hNVEVZT3ZXcmZqaWl5OVFWVldGaUlnSTVPWGxvYmk0R0UxTlRXYVBTaFJhCkpJeTk4Y1lia3BT -VUpQWDE5WEx4NHNVcnQxLzlzQzlldkNoMWRYV1NtSmdvYjcvOXRobGpqcHV2dzlYYjJ5dFJVVkZp -R0laRVJVWEoKZ2dVTFpQWHExYkoyN1ZwWnUzYXRXSzFXTVF4RERoOCtQTzU5a3YvNGVvN1hyMTh2 -Q3hjdXZITGNsaTVkS2s4ODhZU0lpUHoyMjI5eQp6ejMzU0hKeXNoaUdJVE5uenBTVksxZktybDI3 -eHIzL1FBdmJWODcrL2ZzbExTMU5Pam82UnExNWU3Si8rZVVYc2Rsc1VsZFhOeG5qCnFmaDZrZXpm -djE5aVltTGs5ZGRmbDVHUmtXdldqaHc1SWhFUkVmTE1NODlNYUova1AyTTl4ODNOeldJWWhqejc3 -TE5lMTNmczJDR0cKWWNpaFE0ZFUrdytrc0h6bG5EMTdWcXhXcTdTM3QzdGQ5L1ZrbnpwMVNtYlBu -aTNuenAwTDVIaHF2dVorNktHSHBLR2hZZFR0emMzTgpFaHNiSzNhN2ZjTDdKUDhaNnpsKytlV1h4 -VEFNY1RxZFh0ZUxpNHNsTWpKUy92cnJMOVgrQXlrc3IzbnMyN2NQbXpadFFucDYrb1MyClc3SmtD -VFp1M0loMzNua25RSlA1MzZWTGw5RFgxNGQxNjlaZGMzdEhSd2RLU2txUW1abUo5OTU3ejZUcC9L -K3pzeE5uenB3Sm0wK0kKamgwN2h1am9hT1RtNW81YUd4NGVoc3ZsUW1abUptYk5tbVhDZERkZ1Ny -SUNhR2hvU0pLU2txUzF0ZFhuZmNaNjJELzg4SU9rcEtUSQo4UEJ3SU1hN0tkN203dXJxa2s4Kytl -U2EyL3I2K2lROVBWM1MwdExFN1haUGVKL0JxTHU3VzVZdlh5NnhzYkVTRnhjbjgrZlBsKysrCis4 -N3NzY2JGMTNQczhYZ2tQajVlY25OenZhNjdYQzR4RE1Qblc4NGI3VC9Rd3U2ajJ1UEhqMlArL1Bs -WXZIaXhhdnVsUzVkaXpwdzUKYUc1dTl2cTNRYkJKU1VsQlNrcktsVjhQRFEzQmJyZmovUG56Y0xs -Y21EdDNyb25UK2M4RER6eUFscFlXZUR3ZUFNRGc0Q0NLaW9yUQowOU9EYWRPbW1UeWRUa3RMQ3k1 -Y3VJREN3a0t2NjU5OTloa0FvS0NnWUJLbkdyK3dpNGZiN1liTlpydXBmZGhzTnJqZGJqOU5OSGxF -CkJCVVZGZmptbTIvZ2NEaXdjT0ZDczBmeWkxOS8vUlZ0YlcxWHduR1p4K1BCeHg5L2pBY2ZmTkNr -eVc3TzU1OS9EZ0J3T3AzNDl0dHYKUjYyZk9IRUNobUVnUHo5L3NrY2JIMStuSkFENEZZUmZZNm11 -cmhiRE1DYjBpWkhaajJlcWZIbXpmdjE2aVlxS2tzSEJ3VkZySXlNagpNbjM2ZEZteVpFbndIc054 -djhwQ1JFTkRnNnhhdFdyTSs5em9EMkZlWHA0ME5qYjZjeXkvR0d2dVBYdjJpR0VZOHVLTEwxNXor -ei8vCi9DT2ZmdnFwYXAvQnd1UHhTSEp5OHFnWGIyeHNyUFQxOVprOTNnMTVlNDcvL2ZkZm1UTm5q -cXhZc2NMck5sOS8vYlVZaGlGVlZWV3EKL1UrR3NQdTBKVGMzRjk5Ly96MTZlbnBVMjNkMWRhRzF0 -UlhaMmRsK25peHdIQTRIdG0zYmhzY2ZmeHd2dlBEQ05Xc0hEaHpBaFFzWApUSnJNUHl3V0M0NGNP -WUw0K0hqTW1ERURBREJ0MmpUVTF0YUc3RGYyblQ1OUduMTlmY2pMeS9PNmZ2ejRjUURCZTcwRENN -Ti9uajV6CjVreVVsNWVqcHFaR3RmM2V2WHZ4OE1NUEl5NHV6cytUQmNhUFAvNkkwdEpTRkJZV1l0 -KytmYVBXYTJ0cnNXYk5HaE1tODYrVksxZWkKdTdzYjc3NzdMZ0RnOTk5L1IxbFptYmxEM1lUTDF6 -dDhYWlIzdVZ3QUVMelhPNEFRT0dkVk9IbnlwQ1FsSmZrOHBmWDFzTStmUHk4SgpDUW5TMXRZV3lQ -SFVycC83N05tek1tL2VQTW5JeUpEKy92NVI5Nit2cjVlU2twSUo3VE1VaE5yTTN1WXRLeXNUaThV -aXZiMjlYcmRKClNFaVFCUXNXcVBjL0djTHV6QU1BTWpNenNXblRKdGp0ZGd3T0RvNXJtNEdCQVpT -VWxLQ2lvaUlrUHFYbzcrL0h1blhySUNKb2FHaTQKY2pvUEFEMDlQWGpwcFpmd3lDT1BoT3duRWVG -c2FHZ0lUVTFOdU8yMjIzRExMYmVNV205cGFZSGI3VVpPVG80SjAwMkFLY21hQkI2UApSelp2M2l3 -clZxd1lkU1p4L2NOdWJXMlZaY3VXU1dWbHBYZzhuc2tjYzBLdW5ydWlva0lzRm91a3BLUklWbGFX -WkdWbHlkMTMzeTJ6ClpzMFN3ekRFTUF5SmlZa0ptMzhrZHJWUW0vbnl2SjJkblpLZm55OXBhV2xp -c1Zna09qcGFjbkp5WlBmdTNTSWk4c0VISDBoMmRyYk0KblR0WExCYUxXSzFXS1Nnb0VKZkxOYTc5 -VDdhdy9tRkFJb0xYWG5zTnI3enlDakl5TWxCVlZZWHM3R3drSnllanU3c2JMcGNMYjczMQpGdHJi -MjFGZFhZMm5uMzRhaG1HWVBiWlAvR0ZBL3dtMW1jUDFod0dGZFR3dXUzVHBFZzRmUG93OWUvYWdy -YTBOdmIyOVNFeE14S0pGCmkvRGtrMC9DYnJjak9qcmE3REZ2aVBINFQ2ak56SGlRNlJpUC80VGF6 -T0VhajdDOFlFcEVnUmQyMzlzUzd2eDlUV2IyN05sKzNSOTUKRjhocmFXWWRROFlqaElUU3FUcjl2 -M0E5Ym56YlFrUXFqQWNScVRBZVJLVENlQkNSQ3VOQlJDcU1CeEdwTUI1RXBNSjRFSkVLNDBGRQpL -b3dIRWFrd0hrU2t3bmdRa1FyalFVUXFqQWNScVRBZVJLVENlQkNSQ3VOQlJDcU1CeEdwTUI1RXBN -SjRFSkVLNDBGRUtvd0hFYWt3CkhrU2t3bmdRa1FyalFVUXFqQWNScVRBZVJLVENlQkNSQ3VOQlJD -cU1CeEdwTUI1RXBNSjRFSkVLNDBGRUtvd0hFYWt3SGhUMHVycTYKc0gzN2RxU25weU0rUGg0QWtK -cWFpcTFidCtLbm4zNHllYnFwaS9HZ29IWHUzRGxzMkxBQnk1WXR3OERBQUE0ZVBJaU9qZzRBZ05Q -cApSR0ppSXU2OTkxN2s1K2VqcGFYRjVHbW5Ia05FeE93aGlLNzM4ODgvWS9YcTFYajAwVWZ4L1BQ -UEl5NHU3c3FhWVJpNC9MSWRIaDVHClhWMGRxcXVyY2ZEZ1FheGF0Y3Fza2FjY3hvT0NqdHZ0Um5a -Mk5wNTc3amxVVmxhT1dyODZIcGMxTlRXaHRMUVVqWTJOdU91dXV5WnIKMUNtTjhhQ2c4OVJUVDhG -aXNXRG56cDFlMTczRkF3QnFhbXBRVjFlSFk4ZU9CWHBFQXVOQlFXWmdZQUEybXcwblQ1N0VyYmZl -NnZVKwp2dUl4UER3TW04MEdwOU9Kakl5TVFJODY1ZkdDS1FXVit2cDZGQllXK2d6SFdLS2lvckJs -eXhiczNyMDdBSlBSOVJnUENpb09od05sClpXWHE3Y3ZMeStGd09QdzRFZm5DZUZCUStmUFBQNUdR -a0tEZVBpRWhBWC84OFljZkp5SmZmRjd6TUF4anNtY2hvaEFTNld1QjExSEoKRE9YbDVTZ3VMc2Jt -elp0OTNzZlhCVk1BT0hIaUJCNTc3REdjUG4wNlVDUFMvK0hiRmdvcUd6ZHVSRzF0clhyNzJ0cGFs -SmFXK25FaQo4b1VmMVZKUUdSa1pRV3BxS2o3NjZDUGNlZWVkWHUvajY4eWp2NzhmcWFtcE9IWHFG -T2JObXhmb1VhYzhubmxRVUltTWpFUmxaU1cyCmI5OE9qOGN6b1cxMzdOaUJvcUlpaG1PUzhNeURn -czdRMEJEV3JGbURSWXNXNGMwMzMwUkVSTVExNjk3T1BIYnQyb1ZYWDMwVlgzMzEKMVUxOVdrUGp4 -ek1QQ2pveE1URjQvLzMzMGQ3ZURydmRQdVozekhaMmRtTGJ0bTNZdVhNbkdoc2JHWTVKeEhoUVVJ -cVBqNGZENFVCVwpWaGJ1di85KzVPVGtvS2FtQms2bkV3Qnc0TUFCbEpTVVlQbnk1WWlPanNhWFgz -NkoyMisvM2VTcHB4YStiYUdnTnpJeWdnOC8vQkNICkRoMkMyKzNHMGFOSHNXSERCdHgzMzMwb0x5 -L0g5T25UelI1eFNtSThpRWlGYjF1SVNJWHhJQ0lWeG9PSVZCZ1BJbEpoUEloSWhmRWcKSWhYR2c0 -aFVHQThpVW1FOGlFaUY4U0FpRmNhRGlGUVlEeUpTWVR5SVNJWHhJQ0lWeG9PSVZCZ1BJbEpoUElo -SWhmRWdJaFhHZzRoVQpHQThpVW1FOGlFaUY4U0FpRmNhRGlGUVlEeUpTWVR5SVNJWHhJQ0lWeG9P -SVZCZ1BJbEpoUEloSWhmRWdJaFhHZzRoVUdBOGlVbUU4CmlFaUY4U0FpRmNhRGlGUVlEeUpTWVR5 -SVNPVi95UGJ3Z3RmM2dOQUFBQUFBU1VWT1JLNUNZSUk9Cg== - - - - - - - - +{ + "nbformat": 2, + "name": "dense_coding", + "worksheets": [ + { + "cells": [ + { + "source": "

Dense Coding\n

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|11\\right\\rangle }$$", + "prompt_number": 4, + "png": "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\n0rjOgKiDGwAAAABJRU5ErkJggg==\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275811\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2" + } + ], + "collapsed": false, + "prompt_number": 4, + "input": "psi = Qubit('00')/sqrt(2) + Qubit('11')/sqrt(2); psi\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "circuits = [H(1)*CNOT(1,0), H(1)*CNOT(1,0)*X(1), H(1)*CNOT(1,0)*Z(1), H(1)*CNOT(1,0)*Z(1)*X(1)]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$H_{1} CNOT_{1,0} \\left(\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|11\\right\\rangle }\\right) = {\\left|00\\right\\rangle }$$", + "png": "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\ny/8BXM2fWYIlT5QAAAAASUVORK5CYII=\n", + "text": "\u239b \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u239e \n \u239c\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275811\u27e9\u239f \nH \u22c5CNOT \u22c5\u239c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u239f = \u275800\u27e9\n 1 1,0 \u239d 2 2 \u23a0" + }, + { + "output_type": "display_data", + "latex": "$$H_{1} CNOT_{1,0} X_{1} \\left(\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|11\\right\\rangle }\\right) = {\\left|01\\right\\rangle }$$", + "png": "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\nrkJggg==\n", + "text": "\u239b \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u239e \n \u239c\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275811\u27e9\u239f \nH \u22c5CNOT \u22c5X \u22c5\u239c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u239f = \u275801\u27e9\n 1 1,0 1 \u239d 2 2 \u23a0" + }, + { + "output_type": "display_data", + "latex": "$$H_{1} CNOT_{1,0} Z_{1} \\left(\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|11\\right\\rangle }\\right) = {\\left|10\\right\\rangle }$$", + "png": "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\nL5K2XHBY3nYAAAAASUVORK5CYII=\n", + "text": "\u239b \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u239e \n \u239c\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275811\u27e9\u239f \nH \u22c5CNOT \u22c5Z \u22c5\u239c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u239f = \u275810\u27e9\n 1 1,0 1 \u239d 2 2 \u23a0" + }, + { + "output_type": "display_data", + "latex": "$$H_{1} CNOT_{1,0} Z_{1} X_{1} \\left(\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|11\\right\\rangle }\\right) = {\\left|11\\right\\rangle }$$", + "png": "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\n", + "text": "\u239b \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u239e \n \u239c\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275811\u27e9\u239f \nH \u22c5CNOT \u22c5Z \u22c5X \u22c5\u239c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u239f = \u275811\u27e9\n 1 1,0 1 1 \u239d 2 2 \u23a0" + }, + { + "output_type": "display_data", + "png": "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\nPhLzA3qiBLIVwuRCAAAAAElFTkSuQmCC\n" + }, + { + "output_type": "display_data", + "png": "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\n" + }, + { + "output_type": "display_data", + "png": "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\nB0cTBOhAfgykAAAAAElFTkSuQmCC\n" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "for circuit in circuits:\n circuit_plot(circuit, nqubits=2)\n display(Eq(circuit*psi,qapply(circuit*psi)))" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/formatting.ipynb b/docs/examples/notebooks/formatting.ipynb index 8401e3d..fb48898 100644 --- a/docs/examples/notebooks/formatting.ipynb +++ b/docs/examples/notebooks/formatting.ipynb @@ -1,110 +1,28 @@ - - - formatting - 2 - - - - - # Title (h1) - -## Heading (h2) - -### Heading (h3) - -Here is a paragraph of text. - -* One. - - Sublist - - Here we go - - Sublist - - Here we go - - Here we go -* Two. - - Sublist -* Three. - - Sublist - -Now another list: - ---- - -1. Here we go - 1. Sublist - 2. Sublist -2. There we go -3. Now this - -And another paragraph. - -### Heading (h3) - -#### Heading (h4) - -##### Heading (h5) - -###### Heading (h6) - -## Heading (h2) - - - - - # Heading (h1) - -## Heading (h2) - -### Heading (h3) - -#### Heading (h4) - -##### Heading (h5) - -###### Heading (h6) - -Now for a simpel code example: - - for i in range(10): - print i - -Now more text - - - ## Heading (h2) - -Here is text. - -> This is a *block* quote. This is a block quote. This is a block quote. -> This is a **block** quote. This is a block quote. This is a block quote. -> This is a `block` quote. This is a block quote. This is a block quote. -> This is a block quote. This is a block quote. This is a block quote. -> This is a block quote. This is a block quote. This is a block quote. -> This is a block quote. This is a block quote. This is a block quote. - -Here is text - -<table> -<tr> -<th>Header 1</th> -<th>Header 2</th> -</tr> -<tr> -<td>row 1, cell 1</td> -<td>row 1, cell 2</td> -</tr> -<tr> -<td>row 2, cell 1</td> -<td>row 2, cell 2</td> -</tr> -</table> - - - - python - 1 - - - - - - +{ + "nbformat": 2, + "name": "formatting", + "worksheets": [ + { + "cells": [ + { + "source": "# Title (h1)\n\n## Heading (h2)\n\n### Heading (h3)\n\nHere is a paragraph of text.\n\n* One.\n - Sublist\n - Here we go\n - Sublist\n - Here we go\n - Here we go\n* Two.\n - Sublist\n* Three.\n - Sublist\n\nNow another list:\n\n---\n\n1. Here we go\n 1. Sublist\n 2. Sublist\n2. There we go\n3. Now this\n\nAnd another paragraph.\n\n### Heading (h3)\n\n#### Heading (h4)\n\n##### Heading (h5)\n\n###### Heading (h6)\n\n## Heading (h2)\n\n", + "cell_type": "markdown" + }, + { + "source": "# Heading (h1)\n\n## Heading (h2)\n\n### Heading (h3)\n\n#### Heading (h4)\n\n##### Heading (h5)\n\n###### Heading (h6)\n\nNow for a simpel code example:\n\n for i in range(10):\n print i\n\nNow more text", + "cell_type": "markdown" + }, + { + "source": "## Heading (h2)\n\nHere is text.\n\n> This is a *block* quote. This is a block quote. This is a block quote. \n> This is a **block** quote. This is a block quote. This is a block quote. \n> This is a `block` quote. This is a block quote. This is a block quote. \n> This is a block quote. This is a block quote. This is a block quote. \n> This is a block quote. This is a block quote. This is a block quote. \n> This is a block quote. This is a block quote. This is a block quote. \n\nHere is text\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Header 1Header 2
row 1, cell 1row 1, cell 2
row 2, cell 1row 2, cell 2
", + "cell_type": "markdown" + }, + { + "outputs": [], + "cell_type": "code", + "collapsed": true, + "language": "python" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/grovers.ipynb b/docs/examples/notebooks/grovers.ipynb index 5938d65..bfa7a61 100644 --- a/docs/examples/notebooks/grovers.ipynb +++ b/docs/examples/notebooks/grovers.ipynb @@ -1,417 +1,138 @@ - - - grovers - 2 - - - - - <h1>Grover's Algorithm</h1> - - - %load_ext sympyprinting - python - 1 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 2 - 1 - - - - nqubits = 3 - - python - 3 - 1 - - - - Grover's algorithm is a quantum algorithm which searches an unordered database (inverts a function).<br/> -Provides polynomial speedup over classical brute-force search ($O(\sqrt{N}) vs. O(N))$ - - - Define a black box function that returns True if it is passed the state we are searching for. - - - def black_box(qubits): - return True if qubits == IntQubit(1, qubits.nqubits) else False - - python - 4 - 1 - - - - Build a uniform superposition state to start the search. - - - psi = superposition_basis(nqubits); psi - - python - 5 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ -╲╱ 2 ⋅❘0⟩ ╲╱ 2 ⋅❘1⟩ ╲╱ 2 ⋅❘2⟩ ╲╱ 2 ⋅❘3⟩ ╲╱ 2 ⋅❘4⟩ ╲╱ 2 ⋅❘5⟩ ╲╱ 2 ⋅ -───────── + ───────── + ───────── + ───────── + ───────── + ───────── + ────── - 4 4 4 4 4 4 4 - - ⎽⎽⎽ -❘6⟩ ╲╱ 2 ⋅❘7⟩ -─── + ───────── - 4 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXRvQUFBQWtDQVlBQUFDMzZaMXpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFES2RKUkVGVQplSnp0blgzTUhFVWR4ejl0SDZDMFdNcWJ0bHJVQkFIZmVHbEF0 -SUR5V0JHQ2lsQnJzRkVJR0VIaElZQmdmR2xRVTZHS2htQTFKQ2hCCkJRSVNFS3FncHVJTG9RWVFJ -aUJJQlZFMGVSQUZDdFFBQ3VXbHR2N3gyODB6Tjd0M3QzdTd0ek4zOS8wa203dWJuZHZkZnA1ZjUy -Wm0KWjJaQkNDR0VFRUlJSVlRUVFnZ2hoQkRWMlZMREpzcnhHdVE5QlBMZVBISWVCbmtQZzd3M2o1 -eUhZV0M5dnc2WTJmQTVyd04yYlBpYwpNU0huWVpEMzVwSHpNTWg3R09TOWVlUThEQ1B2ZlhxQlBB -dUFqd0ozQWZQNmV6a3RMQVFlQnY3ZDREbGpRYzdESU8vTkkrZGhrUGN3CnlIdnp5SGtZNUwwRVJ3 -RDdZTjNvcjIvd3ZGZGkzZitqaUp5SFFkNmJSODdESU85aGtQZm1rZk13eUh2Q1dJRTh2K2o3VldU -WkEzZ08KK0ZlQWM4ZUFuSWRCM3B0SHpzTWc3MkdROSthUjh6RElldzgwMlNxNUJOaTlvWFBGakp5 -SFFkNmJSODdESU85aGtQZm1rZk13akx6MwpJbU8wbTJaWGJPRDhRNEhPZjN5Zzg0WWt0SE9ROTFD -TW1uYzVENE84aDBIZW0wZk93eEN0OXlKRFI1cm1NOEFGSGZidkRaeUlEYlMvCkUvZ3BjSDlPdm4y -UzF6OTY2Y2NCQjJBRDVSOERWZ05QT3Z1M3dtYkpQbHoyd2dlWWJzNmh1dmVVZzRGM0FWL3owdVU5 -UzFIbjBONTcKdDJPTW12Y21ZdjBUd1A3QVhPQXA0R0xnVDg3K1VYTU96Y1M2enlYQUY0SDF5V2Q1 -ejFLSDl6WFlLZytyZ2VlQjkyS1Q0RllDRHpKNgozcHY2UFQwQytCQ3dFWGdHV01YVUJNQlJjdzc5 -ai9YbDJOQ1VTZUFGNENWYWx3QzhrUnE4TjlIOXZ3djJIN1lkSHdTdUIvYkRackdlCmh3WFpVVGw1 -eDVQTjVVdkFyY0RXeWVjVE1KSGJPbm0yQXo1ZjZxcjdSd3pPb2JwM2dHbkFvY0N6d1BkeTlzdDdL -MldjUTc3M0lzZUkKeFhzTXpxRjZyRjhHSEpPOEg4TXFHeThDNzNmeXhPSWM0dkJlUjZ6N0xNWCti -Vzl3MHVTOWxicThwMnNPdndCc1NONmY3ZXlQeFhzTQp6cUdlMzlOemdSOERzNVBQbjZWMVRIUXN6 -aUVPNzNYRSttOW92OTcyZjRIZHFPaDk2K1JnZS9aNmdJS3NCTjdaWnQ5c3JGZG9CeS85ClJtQVQx -b3B3R2FkVjFQWllxKzhqVHRwMHJNZHBsZmZkTDJNdGs3TE1vcjcxSW1Od0R0VzlBM3dhV0l2TkJ0 -NUNma1ViNUQybHJIUEkKZWk5empORGVZM0FPMVdOOU42endQdE5KVzREOTIyNzN2aHZhT2NUaHZZ -NVk5M2tGMXBQcVY3UkIzbFBxOUw0QitEM3dGNnloK2I2YwpQS0c5eCtBYzZ2azlYWVRGdDl0QmVC -dndnSmN2dEhPSXczdGRzZjZyNUJ4dnd5cnMreWJidDRHVG5Yd1o3MFhHYUI4UFhBamNBSHdCCnF6 -VDFnemxZZC8wdGJmYnZoOTJLUGN4THZ4NllnZDJ1NnNRcG1QQmZPMm1iazgvSGVIbC9ndDJTS2Nz -eVlFa1AzL09KeFRsVTl3N3cKTFN4b1QraVNUOTZOT3B5WE9VWkk3N0U0aCtyZXQwcnk3ZVdrUFlt -Vk05dDRlUlhyUmgyeDdyTWN1S3JOUG5rMzZ2UytEaHVPdVNkVwp4cS9KeWFNeXhxanFmU1p3S1RZ -c2FxT1RmaWoyTjNCUnJCdDF4UHBjNEo3a0hIY0Nkd1AzWWl1Y3pBZSs2K1ROZUM4eVJ2dnlaS3ZL -CjU3QWZtM1BiN0Q4RitFNkg3OC9BMWtZOEZiakdTZjluOHZyV0x1ZGZERHhDZGhIemU3SEFlaFB3 -NXlSdFhaSjJEZVdZbmx4blZXSngKRHRXOWwwSGVqVHFjbHpsR1NPK3hPSWZxM2gvRUNsMjNqTmtM -ODNTamwxZXhidFJkdml6RTdseTJXOTVMM28wbXkzVlFHWk5TMWZzNAoxcUQ1clplK01adFZzWjVR -UjZ4dkJNN1BPZTQzZ1pPODlJejNKbFlkR1FOV1lDMk9DZkp2WmN3RTNrMStTemhsTFhBazJWbWQ2 -YTNCCmJoTmo1bUhqYUh5ZVMxNzkyd2NQWUpYdlFhUXU1MURkZTFua3ZSN25aWTh4cU41amkvVjBq -R3JLY3VBTzRKeWN2SVBxSE9LSzlaVHAKV0srWlB4VFFSOTdyTDllWEFGL0YzSDhLRzc3ak02amVZ -eXBqOWsxZW44QXFqcXV3U3ViQ052a0gxVG5FRmVzdllzT01YU2FBbTRISApjL0lIOFo3T3hQd2ZO -aHZaWjRMV3NkTmx1QU1Uc0xPWFBrN3JHSnNua3J3K0g4ZCtHSmQ1NmR0Z2t5ZkxjQ0p3Yk1udjlJ -dCtPb2ZpCjNsM0c2RHhHRytTOUUrMmNRN0VKWXAyT01jamVZNHYxUGJBZmlMdUJIOUIrbk9RZ080 -ZjRZbjNDU1QrVy9ESGFJTytkNk1YN0JxeXkKQXpicC9RTHNEbzdma1RmSTNtTXBZNjdHNHZvYzRM -VkoybDdZWFRSM3duWEtJRHVIK0dJOVpXZHNXT0FyMit4djhaNytSMmczazdMSwo1dkl5dHR6Sno0 -RFR2SDFqV0d1NDIwemRQSTdDeGlXZFNyYTE0VE9HRFh6M21lYnNkOW1iMWlXNTZxWWZ6bDN2L1hJ -TzVieVhaUkM5CnU4UVE2NzBjbzUvZVJ5M1cvNHBWdEJjbm4yOGl2ekFmeEZodnduc3Z6dWRqdDlU -WEZzZzdpTjVkWXZJTzF1TjRjL0orQzFZSlhFenIKcEdCUUdkT09NdDduSjY5UEFmOUkzcS9EbHFx -N2lPd2t4a0dNOVZqTEdKY0piSUw3RTIzMjk5dDdSOTZEU2R6ZlNUdU83QmlYSXN6SAp1dXduMnV3 -ZnA3VkZjZ3UydEovUGFjazErUVBpejZIOE91TXh0UVJUNm5RTzViMjdGT25SbHZjczNaeEQ5eFo0 -dDJNTWcvZVlZajFsCk5yYTI4RjFNTmVwVGhzRTV4QkhyRjJGTGZLVjA2dEdXOXl4MWxERXVqekJW -K1U0WkJ1K2h5NWpyay9QdjUrVmJqdW94UmFrYTYyUEEKbzhESE9ueS94WHZURDZ5NUNSdTdjaG8y -WG1ZYUp1c0RKWTh6RTV2WnVZTFcyWjZkdUE4NEtDZDlWdkw2bUpNMkZ4dlBuZGNERGpZRwpMVzlX -N2dMc0ZrZGVrRjZaYkUxVGwzUG96WHNaNUQxTEhjNjdIV05Zdk1jUTYra3lvaW5QWVJPdUYyRS9F -bmNtNmNQaUhNTEgrdUhBCkgyaDk4Rmc3NUQxTGxUSm1aWExlczNQMjdldThIeGJ2b2N1WXg3elhs -R2VUMTkyWldsbHRXSnhESExHZXNnaXJyUHQvZzVSdTNodmgKRkd4aCsxMkFvNEd6U241L0dqYWI4 -M2d2ZlpIM2VaeldGc25KMkZneW55dXdKL3hzNzZSTllMTlUyekVUbTF6cGIyZGh0eUx5OXZuTApl -elZKVmVmUXUzZVhiajNhOHQ1S1VlZlErVUZCM1k0eFRONUR4dnFGV0h4LzJNdDNhNUsrMUVrYkp1 -Y1FOdFp2VHI1N3RiUGRqam4vCmVmSjV4eVN2dkxkU3RZeDVDdmk3bHpZSFc5THlkMDdhTUhrUFdj -WXN3K0w2TFY2K001TjBkd203WVhJTzRXTTlaUVhaM25XWGJ0NGIKWVR2Z2Fhd0Z2SWFwSnhzVjVl -dllJNDVkRm1DUDJuVVpwMVhVZ1pnY2YrSDBSNEh2ZTJrclMxNVRTb3kzWEtDNmMramR1MHUzaXJh -OAp0MUxVT2JUM1h1UVl3K1E5Wkt4ZmkxVXczQXIxREt4M3cyL01ENU56Q0J2clcyT1ZCbmRiZ1pV -MWI2WjEzS3E4dDFLMWpMa0txNEM1CkhJSzVkNWRqR3lidkljdVluYkJ4eTM1UDlDcXNCOVZkN1dX -WW5FUDRXRSs1bHZ5NlpFckdlOU5EUjhCK2RDN0R4aFNkejlUeWVrWDQKSlBBTzRHOVlNSUMxVWc0 -QWZ0bmx1M2RoczB4UEJVNVAwZzRFWGdWOHc4bDNDTmsxS2dlZEtzNmhtbmVYZEczT3ZGVVk1TDJW -T3B3WApPY2F3ZVE4WjY1ZGpGZTBibkxTanNSK0U4NWdhVWpKc3ppRnNyTCtVazdZNWVkMkU5WUtC -dlB2VVVjWmNDcHlSbkQ5bENmYWt5SFRkCjRXSHpIcktNMllCVkRDZXdJUkJnRmRDanNIck5mNUsw -WVhNTzRXTTlKVjFwNU5tY2ZiVjRQNWJXcDU3MXl1N1lSZTdZTGFQRDI3R1cKWEx0WnF2NTFIWkpz -THZPd3NUNVhZT3V0M29lTjgzSDVDdGxKUzBYcFIwc3dwSE9veC90aHdNWFlPTW90MlBpdjFkaWpT -K2NrZWVSOQppckxPSWV1OTZERmk4ajRNc1g0NE5nditRdUJIMkczMTA3MDhNVG1Id1k5MWw0T3dk -WVdmU2I1L0Q5YmJOd3Q1ZDZuVCt6S3NrWGt1CjlzVENIMkxqVkZOaThqNE1aVXk2aE9JYXJKUHdP -ckxES0dKeURzTVQ2MkFOblBYa2QxVG5laS96aDlnTmE2VXVwZGdTU3QxNE5UWnMKb3lqemdEZDIy -SDhiSmpNbDdUVjlPU2Z2dGxoUDlzTmtsMDZhUTM1THBRZ25ZcjBuZFUwV0NPMGM2dkdlanUvSzQv -NGtyN3hQVWRZNQpaTDBYUFVZczNrTTdoM3JMbUxsWTVTN3ZHbUp4RHVHOTF4SHJMcnVRUHo1eUhY -Wm5RZDZOdXIwRDdJbzlrWE96bHg1THZJZDJEdldXCk1kT3hTWGw1VDBHTnhUbUU5MTUzckcrRmxl -M1A1T3pMOVY1MDZNZ01iRkh3ZFFYekY2RnNnRDVPL2hONDJ0R3VNQUI3bk9aa20zMjkKQmlkWUFl -TVhNcjBTZzNPb3gzdVJZOGo3RkdXZFE5WjcwV1BFNEQwRzUxQnZHZk4wc3VVUmczT0l3M3Nkc2U3 -eUpPMVhINUgzS2VyMgpEcmFrWHg0eGVJL0JPZFJieG13bXY1SU5jVGlIT0x6WEhlc3ZrMS9KaG1y -ZU9RbnJBVjVMOFhVMFI1RlpaQmVNN3hVNUw0NjhoNkV1CjczSmVITVY2R09ROURDcGpta2V4WGpO -RmVyUVhZcTJtOVgyK2xtSGcrWnFPSStmbGtQY3cxT0ZkenN1aFdBK0R2SWRCWlV6ektOWnIKWm5x -WC9UT3hWc2lhL2wrS1NKRHpNTWg3ODhoNUdPUTlEUExlUEhJZUJubDNtTkZsL3huQUR0aXN6WU94 -eDJET3hzYnZQTlRmU3h0Wgo1RHdNOHQ0OGNoNEdlUStEdkRlUG5JZEIzaXN3eVFpUHN3bkVKSEll -Z2tua3ZXa21rZk1RVENMdklaaEUzcHRtRWprUHdTUWo3TDNiCjBKR1VPZGpTTERzQlI5SjVxUlJS -RDNJZUJubHZIamtQZzd5SFFkNmJSODdESU8rVWV6TGtldUNJNVAybVBseUx5Q0xuWVpEMzVwSHoK -TU1oN0dPUzllZVE4RFBJdWhCQkNDQ0dFRUVJSUlZUVFRZ2doaEJCQ0NDR0VFRUlJSVlRUW9qYitE -L3JLdG5uVFJvc1lBQUFBQUVsRgpUa1N1UW1DQwo= - - $$\frac{1}{4} \sqrt{2} {\left|0\right\rangle } + \frac{1}{4} \sqrt{2} {\left|1\right\rangle } + \frac{1}{4} \sqrt{2} {\left|2\right\rangle } + \frac{1}{4} \sqrt{2} {\left|3\right\rangle } + \frac{1}{4} \sqrt{2} {\left|4\right\rangle } + \frac{1}{4} \sqrt{2} {\left|5\right\rangle } + \frac{1}{4} \sqrt{2} {\left|6\right\rangle } + \frac{1}{4} \sqrt{2} {\left|7\right\rangle }$$ - 5 - - - - - v = OracleGate(nqubits, black_box) - - python - 6 - 1 - - - - Perform two iterations of Grover's algorithm. Each iteration, the amplitude of the target state increases. - - - iter1 = qapply(grover_iteration(psi, v)); iter1 - - python - 7 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽ -╲╱ 2 ⋅❘0⟩ 5⋅╲╱ 2 ⋅❘1⟩ ╲╱ 2 ⋅❘2⟩ ╲╱ 2 ⋅❘3⟩ ╲╱ 2 ⋅❘4⟩ ╲╱ 2 ⋅❘5⟩ ╲╱ 2 -───────── + ─────────── + ───────── + ───────── + ───────── + ───────── + ──── - 8 8 8 8 8 8 - -⎽ ⎽⎽⎽ - ⋅❘6⟩ ╲╱ 2 ⋅❘7⟩ -───── + ───────── -8 8 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXRvQUFBQWtDQVlBQUFDMzZaMXpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFET0pKUkVGVQplSnp0blh1c0hGVVp3SDl0YjZFVUtLVlFiYkdvQ1JUdzBWZUtT -QUh0RlN1aytBREUxS3FRSXFMQ0pTaVArR2hBVTZHS0JyR2FKaWlpCkF1RmhFV3FMbWxvVkJBTUlF -UkNrZ3FpUWlDaVBRbFhRV2xxdzlZOXZKbnZtek96dXpNN3MrV1ozdjEreTJidG56czdzL2Qzdm5w -MXoKNWp0bndEQU13ekFNd3pBTXd6QU13ekFNd3pDTTh1eW80R0VVNDFXWWR3M01lM2pNdVE3bVhR -ZnpIaDV6cmtQUGVuOE5NQzd3TVc4RQpKZ1UrcGpaN0FlOEdGZ0xIQVBNREgzOFFuZnRZcklmSG5P -dGczblV3NytFeDV6b012UGZST2VwTUF6NEkzQXRNNmU3SFNUQUhlQno0ClI4Qmoxb0U1d0FYUjQz -akVRY2hqRDZMekdJdjE4Smh6SGN5N0R1WTlQT1pjQi9OZWdJWEFMR1FZL2JVQmozc05NdncvYUN3 -QWpsQTYKOXFBNmo3RllENDg1MThHODYyRGV3MlBPZFREdkVVTTU2dnkwNjU4aXpRSEFadUR2Q3Nl -dUE2T0FRNEZOd0o4REhYUFFuWVBGdWdibQpYQWZ6cm9ONUQ0ODUxOEc4ZDBESVhzbmx3UFJBeDZv -YkM0QnZBL3NESDBCNlp5RVlaT2MrRnV2aE1lYzZtSGNkekh0NHpMa09BKzg5ClQ0NTJhUFpGRXVk -RGplVDZMRkU2YnN4RHdHZUFSNEh2QXpPUlhPMXVvdTBjOUwxcllON0RZODUxTU84Nm1QZndtSE1k -YXVzOVQrcEkKYU00RkxtbXhmU1p3S3BKb2Z3L3dJK1RrMUdkVzlQdzdyL3drNEJBa1VmNHBZRFh3 -ckxOOUxESkxOdVFrUkpmcHdNUE82ODNBUEdCTgpGNC9aemptVTl4NXpCUEJXNEV0ZXViWjNEYXFL -ZFdqdXZkMCtCczE3aUZqL0NIQXdNQkY0RHJnTStMMnpmZENjUTVoWTk3a2NPQjk0CkpucHQzdE5V -NFgwZHNzckRhdUMvd0R1UVNYRExnVWNZUE8raHZrOFhBdThGdGdEUEF5dG9UQUFjTk9mUS9WaGZp -cVNtL0FWNEVkaEcKY2duQTlWVGdQY1R3LzJUa0g3WVo3d0hXQW5PUldhd1hJVUYyYkViZDRlamg4 -am5nRG1DbjZQWEppTWhkbkRxN0lTUEtXanhFWXdSNwpGUEJQdXRzN2JlY2N5bnNIK1YwV0FDOEEz -OG5ZcnUzZHBkZGlIYks5NTlsSFhielh3VG1Vai9VcmdVWFJ6MFBJeWNaVzRKMU9uYm80CmgzcDRy -eUxXZlU1QWZyZjluVEx6bnFRcTcvR2F3eThpODRwMkFPYzUyK3ZpdlE3T29acnYwd3VCSHdLN1Jx -OC9SVEludWk3T29SN2UKcTRqMW0ybSszdlovZ1AwbzZYMm5hR2NIZHJxRG5Dd0gzdEprMjY3SXFO -Q2VYdmw2NEdXa0YrRXlURkxVSGtpdjcvMU8yV2hreEdtRgo5OTdQSXoyVG9veW4vSHFScDlCWUNt -Y1IwdlBhdmVRK1c5SEtPWlQzRG5BV2NCdVNiNzZEN0JOdDBQVWUwNHV4RG1udlJmYWg3YjBPCnpx -RjhyTytITk41bk8yWFRrTi90THUrOTJzNmhIdDZyaUhXZjNaR1JWUDlFRzh4N1RKWGVOd0cvQWY2 -SWREU1B5YWlqN2IwT3pxR2EKNzlONVNIeTdBNFIza3J3U0R2ck9vUjdlcTRyMW4wZkhlQk55d2o0 -N2Vud0RPTTJwbC9LZUowZDdDYkFTdUFuNExITFMxQTBtSU1QMQp0emZaUGhlNUZIdVVWNzRXR0lO -Y3JtckY2WWp3WHpobDI2UFhpN3k2YTVCTE1rVlpUUGw4NnU4aHFSWG5BdnNnbzhEL0xyblBaclJ6 -CkR1VzlBM3dkQ2RxVDI5VFQ5QTc5RSt0Rjk2SHB2UzdPb2J6M3NWRzlHVTdaczBnN3M3TlgxMkpk -cUNMV2ZaWUMxelhaWnQ2RktyMXYKUU5JeEQwVGErSFVaZGF5TkVjcDZId2RjZ2FSRmJYSEtGeUIv -QXhlTGRhR0tXSjhJM0I4ZDR4N2dQdUFCSkxWM0t2QXRwMjdLZTU0Ywo3YXVpUjFrK2pYelpYTmhr -KytuQU4xdThmd3l5TnVJWndQVk8rZCtpNXplMk9mNlJ3Qk9rRnpGL0FBbXMxd0YvaU1vMlJHWFhV -NHpSCjBlY3N5dzhxMkFlVWR3N2x2UmRCMjN1L3hIclJmV2g2cjR0ektPLzlFYVRSZGR1WUdZaW45 -VjVkaTNXaDZ2WmxEbkxsc3RueVh1WmQKQ05tdWc3VXhNV1c5RHlNZG1sOTU1VnZTVlMzV0k2cUk5 -UzNBeFJuNy9ScndVYTg4NVQzRXFpTkR3REtreHpGQzlxV01jY0RieU80Sgp4OXlHM0pyY3oxZU9M -dzIybXhnekJjbWo4ZGtjUGZ1WER4NUdUcjU3a2FxY1EzbnZSVEh2MVRndnVvOWU5VjYzV0k5elZH -T1dBbmNqCmQzcjE2VlhuVUs5WWp4bU5qSnI1cVlBKzVyMzZkdjE0NEl1SSs0K1RuZTdZcTk3cjFN -Yk1qcDQzSWllT0s1Q1R6RGxONnZlcWM2aFgKckc5RjBveGRSb0JiZ2FjejZxdDRqMmRpL2crWmpl -d3pRakozdWdoM0l3TDI5c3FIU2ViWWJJenErbndZK1dKYzdKWHZqRXllTE1LcAp3SWtGMzlNdHV1 -a2M4bnQzR2FKMWpqYVk5MVkwY3c3NUpvaTEya2N2ZTY5YnJCK0FmRUhjaDZTQ05jdVQ3R1huVUw5 -WUgzSEtUeVE3ClJ4dk1leXM2OGI0Sk9ka0JtZlIrQ1hJRnh4L0k2Mlh2ZFdsalZpRnhmUUh3NnFo -c0JuSVZ6WjF3SGRQTHpxRitzUjZ6TjVJVytJb20KMnhQZTQzK0Vaak1weXp4Y1hrS1dPL2t4Y0th -M2JRanBEYmVicVp2RnNVaGUwaG1rZXhzK1Ewaml1ODhvWjd2TFRKSkxjbFZOTjV5NwozcnZsSElw -NUwwb3ZlbmVwUTZ4M3NvOXVlaCswV1A4VGNxSjlaUFQ2RnJJYjgxNk05UkRlTzNFK0ZibWtmbHVP -dXIzbzNhVk8za0ZHCkhHK05mdDZCbkFRZVNYSlNNRmdiMDR3aTNxZEd6ODhCZjQxKzNvQXNWWGNw -NlVtTXZSanJkVzFqWEVhUUNlNGJtMnp2dHZlV3ZCMlIKZUxCVGRoTHBISmM4VEVXRzdFZWFiQjht -MlNPNUhWbmF6K2ZNNkRQNUNmRVhVSHlkOFRyMUJHT3FkQTdGdmJ2a0dkRTI3Mm5hT1lmMgpQZkIy -KytnSDczV0s5Wmhka2JXRjc2WFJxWS9wQitkUWoxaS9GRm5pSzZiVmlMWjVUMU5GRytQeUJJMlQ3 -NWgrOEs3ZHhxeU5qai9YCnE3Y1VPNC9KUzlsWUh3S2VCRDdVNHYwSjc2RnZXSE1Ma3J0eUpwSXZN -d3FSOWE2Qyt4bUh6T3hjUm5LMlp5c2VCQTdQS0I4ZlBUL2wKbEUxRThybXpSc0JCY3RDeVp1Vk9R -eTV4WkFYcE5ZUzduYnBMVmM2aE0rOUZNTzlwcW5EZWJoLzk0cjBPc1I0dkl4cXpHWmx3UFEvNQpr -cmduS3U4WDU2QWY2MGNEdnlWNTQ3Rm1tUGMwWmRxWTVkRnh6OHZZTnR2NXVWKzhhN2N4VDNuUE1T -OUV6OU5wckt6V0w4NmhIckVlCk13ODVXZmYvQmpIdHZBZmhkR1JoKzhuQWNjQTVCZDgvQ3BuTnVj -UXJuK2U5SGliWkl6a055U1h6dVJxNXc4OGVUdGtJTWt1MUdlT1EKeVpYKzR4emtVa1RXTm45NXI1 -Q1VkUTZkZTNkcE42SnQzcFBrZFE2dGJ4VFViaC85NUYwejFsY2k4ZjArcjk0ZFVma0pUbGsvT1Fm -ZApXTDgxZXU4cTUzRVg0dnduMGV0SlVWM3pucVJzRy9NYzhKaFhOZ0ZaMHZMWFRsay9lZGRzWXhZ -amNmMEdyOTdaVWJtN2hGMC9PUWY5CldJOVpSbnAwM2FXZDl5RHNCdndMNlFHdm8zRm5vN3g4R2Ju -RnNjczA1RmE3THNNa1JSMkd5UEVYVG44UytLNVh0cnpnWjRxcDR5VVgKS084Y092ZnUwdTVFMjd3 -bnllc2NtbnZQczQ5KzhxNFo2emNnSnhqdUNmVVlaSFRENzh6M2szUFFqZldka0pNRzk3RU1hV3Rl -VHpKdgoxYnduS2R2R1hFZmpCbXN4OHhIMzduSnMvZVJkczQzWkM4bGI5a2VpVnlBanFPNXFMLzNr -SFBSalBlWUdzczhsWTFMZVE2ZU9nSHpwClhJbmtGRjFNWTNtOVBId01PQlI0RkFrR2tGN0tJY0RQ -MnJ6M1htU1c2Um5BSjZLeXc0QlhBbDl4NnMwbnZVWmxyMVBHT1pUejdoS3YKelptMUNvTjVUMUtG -OHp6NzZEZnZtckYrRlhLaWZaTlRkaHp5aFhBUmpaU1Nmbk1PdXJHK0xhTnNlL1Q4TWpJS0J1YmRw -NG8yNWdyZwprOUh4WTQ1SDdoUVpyenZjYjk0MTI1aE55SW5oQ0pJQ0FYSUNlaXh5WGhQZjNLN2Zu -SU4rck1mRUs0MjhrTEd0WSsvamtGeVlVNUIvCnFEMWFWOC9GZE9SRFRtcFgwZUhOU0UrdTJTelZH -Vjc5K2RIRFpRcVM2M00xc3Q3cWc4anY1dklGMHBPVzhsSlZUN0F1enFFYTcwY0IKbHlGNWxEdVEv -Sy9WeUsxTEowUjF6SHVEb3M0aDdUM3ZQclM5MThVNVZCUHJSeU96NEZjaU41NTZqRWJIUGtiYk9k -VEhleFd4N25JNApzcTd3ODlINzcwZEcrOFpqM2wycTlMNFk2V1JlaU55eDhGb2tUelZHMjN0ZG5F -TTFiVXk4aE9JNlpKRHdSdEpwRk5yT29UN2VxMjVqCjFnRFBrRDFRbmVrOXp4L2lmS1Qzc0JVUjlW -VTZuMkhyc2crU3RwR1hLY0JCTGJiZmljaU1pVWROWDhxb3V3c3lrdjA0NmFXVEpwRGQKVThuRHFj -am9TZG5KQW5WeER0VjRqL083c25nb3FtdmVHeFIxRG1udmVmZWg3YjB1enFIYU5tWWljbktYOVJt -MG5VTjl2RmNSNnk2VAp5YzZQM0lCY1dURHZRdFhlQWZaRjdzaTUzU3ZYanZlNk9JZHEyNWpSeUtT -OHJMdWdhanVIK25pdk90YkhJbTM3OHhuYk92YitNTWsxCllGZDFzcE1CNFJTeUYxVXZpamt2aG5u -WG9RcnY1cndZRnVzNm1IY2RySTBKajhWNnhlVEowYjRkeWJjNkM4a0ZXdE82K2tDemluUnYKdmhQ -TWVUSE11dzVWZURmbnhiQlkxOEc4NjJCdFRIZ3MxaFVZaXl5ZnRBMVpBM1pmM1k4ekVKaHpIY3g3 -ZU15NUR1WmRCL01lSG5PdQpnM2t2d0Vwa0daT0RnSnVSeVQyZExHZGo1TWVjNjJEZXcyUE9kVER2 -T3BqMzhKaHpIY3g3VHVhU3Z1UFR0Y0JDaGM4eUtKaHpIY3g3CmVNeTVEdVpkQi9NZUhuT3VnM2wz -R04xbSszWmdUNjlzSS9CSWR6Nk9nVG5Yd3J5SHg1enJZTjUxTU8vaE1lYzZtSGVITVcyMlA0MHMK -OGowUG1UaTVDRmtTNzVkZC9seURqRG5Yd2J5SHg1enJZTjUxTU8vaE1lYzZtUGNPMkEyWVJmSld0 -a1ozTWVjNm1QZndtSE1kekxzTwo1ajA4NWx3SDgyNFlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlo -bUVZaG1FWWhtRVlobUVZaG1GVXl2OEI0L3U3a2hsRFZDQUFBQUFBClNVVk9SSzVDWUlJPQo= - - $$\frac{1}{8} \sqrt{2} {\left|0\right\rangle } + \frac{5}{8} \sqrt{2} {\left|1\right\rangle } + \frac{1}{8} \sqrt{2} {\left|2\right\rangle } + \frac{1}{8} \sqrt{2} {\left|3\right\rangle } + \frac{1}{8} \sqrt{2} {\left|4\right\rangle } + \frac{1}{8} \sqrt{2} {\left|5\right\rangle } + \frac{1}{8} \sqrt{2} {\left|6\right\rangle } + \frac{1}{8} \sqrt{2} {\left|7\right\rangle }$$ - 7 - - - - - iter2 = qapply(grover_iteration(iter1, v)); iter2 - - python - 8 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ - ╲╱ 2 ⋅❘0⟩ 11⋅╲╱ 2 ⋅❘1⟩ ╲╱ 2 ⋅❘2⟩ ╲╱ 2 ⋅❘3⟩ ╲╱ 2 ⋅❘4⟩ ╲╱ 2 ⋅❘5⟩ ╲ -- ───────── + ──────────── - ───────── - ───────── - ───────── - ───────── - ─ - 16 16 16 16 16 16 - - ⎽⎽⎽ ⎽⎽⎽ -╱ 2 ⋅❘6⟩ ╲╱ 2 ⋅❘7⟩ -──────── - ───────── - 16 16 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXdVQUFBQWtDQVlBQUFEWWZaWjNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFEU1pKUkVGVQplSnp0blhtUUhGVWR4ejlKMkN5SjRVeWlFY0loVjFtQlVpUktS -UW9WandJQkMrVFFTS0ZrS1kzaWhZaVk0dkFZRlJBeEVoVWtxSWdJCkNsSEJBZzJJSUxwS0VjRjRn -Q0tsd1NqS1Zad3FvQVFLaUgvOHV0bWVONjk3WnJwNzV6ZWIrWDZxcG1ybjlYdlR2Wi9mOU90NS9Z -NEcKSVlRUVFnZ2hoQkJDQ0NHRUVFS0lRV01uWUgwTkwxRWZpb2tmY3UrTC9Qc2kvNzdJdnkveTcw -ZmZ1ZCtvemcvcmtFbkF6c0FhaDMwRAo3QU84SmptT1FhVW9CaDd4MllmQmpZbk9CMS9rM3hmNTkw -WCtmWkYvUCtUZW1XSGdsY0IzZ2ZNY2orTnlZRXZIL1h0U0ZBUFArQXhpClRIUSsrQ0wvdnNpL0wv -THZpL3o3SWZjRlRPN2h2dVlDTTRCLzlYQ2ZJZk9CdndPUE9CNkRKMFV4OElyUG9NWkU1NE12OHUr -TC9Qc2kKLzc3SXZ4OXlYMEF2R3dWcmdldUFmL2R3bnlISEEyYzU3dCtib2hoNHhXZFFZNkx6d1Jm -NTkwWCtmWkYvWCtUZkQ3a3ZvSmVOQW05ZQpERHdHM090OUlPSTVGQk0vNU40WCtmZEYvbjJSZjEv -azM0KytkajlJallJVGdLWE94N0FBMk1YNUdQb0o3NWdNY2p5ODNZUDh5NzhmCjh1K0wvUHZpN1Yv -dWZjbjFQeWlOZ20yQnFjQmZjN1lQQVI4Q3ZnK2NDeXlrL2NwTVIwWFN0Z08rQkp3Qm5BenNIV3ov -UGZEV3pnNTUKZzZkWE1Sa0NMZ1kyald3YjFIaTBjdy9kK3cvZGQxSmUvdk9wNmg5Z2YrQXJ3RVhB -aGNCcmcrM3lINmV1dWlma3k4RDJtZmZ5SDZjTwovMXNBVndKSEFOT0JqWUhEa3MrY2xlU1Ivemgx -K0o4Q0hBT2NEeXpEaHN0TXlXeVgrM3lxMXYzWEE1OEhUc0VhSU1kbFhzY21lWEw5CkQwcWo0QVRn -Q3puYmhvR3JnUDhCN3dRdUE4N0VLcFRwQlorNVEvQitLK0Izd0JYQWlWZ3dMd0FPenVSNUVuaW16 -ZWNPQ3IySXlVeGcKQmZCMjdFUU1HZFI0RkxtSGN2Nno3anN0TC85eHF2b0hxNFAyd0M0Q1J3RS9B -WDRHTE1ua2tmOVc2cXA3UXZZRFBnaHNua21ULzFicQo4ajhNSEFSY0Fqd0EzSSt0Tm5NZDhGQ1NS -LzVicWNQL1pLeSttUVVzQmo0TXZBbzRLWk5IN3VOVXJmdm5BcTlMOW5NcTFqaFlsbmtkCmtPVHJL -LzluQWQvczRmNW1ZeTJ1UEQ1Rzg0VVM3STdhZXVEc2duS040UDFTWUhXUWRnbzJ3MzFXSm0xSFlL -VGdjNHVvYS9tcW9oajAKSWo3akhaT3RnR3VCYTRCYmtuS3pjc3BVaVVjZDlOdjVBT1g4TjBxV2wv -OVdxdm9mQWg0RXZwNUptNFQ5T0hvMDJaNGkvODNVZFQzSQpzakZ3YS9JWnV3ZmI1TCtadXZ6UHdj -WnMveGE0SGZnYXRpWjhpUHczVTRmLzQ3R2JjU2t6Z1A5aU1jZ2k5NjFVcmZ2M3hSb2RDNENYCll6 -ZUdkc2RXTy9vMTl0c29KZXEvbHowRk93Q2Z4YnBQTmdNK0I4enJ3WDZQQTc1WXNQMEE0R1hZRnpm -bDU5ak05UDA3M01jV3dIdXcKSDZGWnJzSHVETzJiU1Z1TFBUQ2pETjhyV1M2bEtBYTlqTTk0eCtS -ZXpQa2JnWisyeVZzbEhsWG8xL01CcXZ2dnByejh0MUxWL3hUcwpJakkvazdZZWF5Z00wZnl3SFBs -dnBvN3JRY2dTN0M1MURQbHZwazcvdjhUT2dYbkF1NEZmUlBMSWZ6TlYvZStDM2FGZWxrbDdITmdH -CmVHK1FWKzVicWVwL0hqWms2eWJnTjlqb2xWdXczME5MYVo3YzdPVi9YTmtGdUlIOExwQk5nUisx -K1l5YnNRdm1Ya0g2YmNDendMU2MKY28zTTMvc21uM0ZZa0NlOU9IOGpTRDhFYThWMXkyaUpNcjJt -WDJLU3NwVGluZ0lvSDQ5K293NzNVTTUvbzBKNStXK21xbitBVGJDdQo2SlFad0RyZzZraForUitq -enJvSGJLV1JCdkJtNGowRklQOVo2dkkvaCthNzFVWEkveGhWL1o4S1BFSG5UK21WKzJhcTF2MHZw -UFZtCi8rN1lVUFlZRzRwL0FGNFBmQlFiRzdVNEo4OUp0RzlkYll1Tis4OStpU2RqWTdyK1VsQ3Vr -Zm43S0N5USswWHlyYVAxYnZWR3dLZmEKSEZlTTBSSmxla2sveFNTbGswWkIyWGowRTNXNWgzTCtH -eFhLeTM4elZmM0grQVJ3TjdCMVpKdjhqMUZuM1FNMlBHRWF4WTBDK1IragpMdjlwbytBZHdHbllI -ZHBGMkZDdUVQa2ZvNnIvbGRoRHVXWmk4NXJPdzhiRVB6K25uTnczVTNmZFB4bFlCYndnWi91RzRQ -ODUwbkd4CjN3SCtFTmsramRiaFBKMXlDRmFCbjFpUXA1SDVlMG1TUDF4dENPQmhyQnNuNUpQRUo3 -OFdNZHBsL2w3VFR6Rko2YVJSQU9YaTBVK00KcDN0bzc3OVJzYno4RjFQRy82WkordFhZVUlyTkkz -bFM1RCtmc25YUEl1REE1TytpUmdISWZ4RmwvTThCN3NMR1ZJUDkrTGtZVzRrcgpodnpuMDQzL3U0 -Ry9KWGszU2RJV1liSEltNHd2OThWVXVmYStDL2hobTgrdjNmOTZoMWVXQlVsYU9Jbm9BNVJiOG1v -SW14UjJNOFhMClFEVXlmNStjSE1PQ1NMNUhzREZkSWFlWE9MYlJEdk41eGdQNkl5WXBuVFlLeXNR -anhvWjJQa0JuL2hzVnk4dC9QbFg5RDJOM3N0WUEKdStYa2tmODRaZXVlTGJHN3BDbnRHZ1VUMVg5 -SXYvaWZqQTJseVBLaTVOaU9qSlNYL3pqZCtuODYyZjhlbVcyVGdEdUF5M1BLVGxUMwovVjczcDk0 -UGJiT1B1dnozRmF1eHBadFNOc0pXbnlremtmcE1iQTNYZGl2OU5ESi9INHg5R1dLTmdpZXg1Ym15 -ek1PV3lleVcwUkpsCnZQQ09TVW9uallLeThlaFg2blFQbmZsdlZDZ3YvOFZVOVo5eUszQWZyVjNK -OHA5UDJicG5HYlk4WUVwUm8wRCs4NmxTOThkNENyZzAKU0pQL2ZMcjEveEEyMUNXY1UzQVZOaWIr -ZVVHNjNCZFRwZTQvRUZ2MXFhZ1hvTVYvdHVXeEd6WWp1OU1KSW4vRzFrTHRCODdHSmxKcwpnM1ZU -SFltdDl2QnNsNTl6SkxiODB4dXdPL3lka25ZWnpRalNwMkFCdVM5SVB4d0xkb3laV0JmbmxNaTJs -eER2aGxxSHRRYTcvWC9ICkUrK1lkRU1zSGpvZmpLcitPeWt2Ly9tVTliOFo4SjhnN1Vac0JaQ0Rh -RjZ1VlA3amxIVy9OM0FuTnBTaUUwTC9FOWs5K1BzSFdJNzEKakdWWHdVbDloZzB6K1k5VHh2OTky -QS8vOEM3Nm81alBIV2tlWXFPNko1K3ExOTVEc2VIclR4WGtLZm90Q3RnUDBsa2R2c0lXbnlmRAoy -QnJjcDJOZnBHdnBmb3pVM3RpZCtPeVRiK2NYZkU0ajgvY2s3RXQvZEpEbnBkako4ZkZNMm5UcytR -VkZ6TWJHUklhdlZUbnBNOXQ4Cm5nZmVNVWxwMTFOUUZJOUJQaCtnTy8rTmt1WGxQNSt5L2hkakY2 -SFBCSG5Pd2M2RmJMcjh4NmxTOTF5RnJVZStJdk82QVhOL1RmSSsKWFM4OHovOUVkUS8rL29leFlT -dzNCbmwyeG1Md2cweWEvTWNwNi84YzdObE1JWmRqTWRra2s2YTZKNStxMTE2d0d4TzNGZXlqazkr -aQpFNXJUc0hXNGo4RFdnKzJHbllFZlkzZlhzaXd2S05NSTNxK2krZTRid0Vld3UvalpzWTBqd0U1 -ZEhsL0thTWx5WG5qSEJObzNDa1lvCkg0OStwb3A3Nk41L28yVDVFZVEvUmhYL3AyRGYrVThIZVc1 -SzByUEwzWTBnL3lGVjY1NnAyQ28zMmRjSm1QczlrL2ZwWGRBUjVEK2sKanJyL1NwcC9nQUlzeEdM -dy9remFDUElmVXNYL0FaamoyY0gyMWRpRDVMS01JUGN4cWw1N1lheTM1bGNGK3hraDRyOW80c2hF -WXptMgpDdEFaZFBjZ2lwblluWU9MZ0xkazBvZUE3YnI0bkhPd0ovWXR3VnJLazdEdW13dHBIajYw -VTVJMkNIakhCTWFHWVEzbGJOOVE0MUhXClBWVDMzMDE1K1crbHF2OFZ3SnV3SjNhbTdJb05tMWlK -TlE1UzVMK1pPdXFlV0hkOU9uemdhZXhHVVlyOE4xTlgzYjhDZTZEbzBremEKSWRqOHZ2TXphZkxm -VEZYL1YyUHI4YitQc2FVdWQ4WFc4UStYYkpmN1Z1cjYvcWRMd0Q1YWtDZnF2eGVOZ2tsWXkyZE5r -RDZFcmUrNgpPZGFxL0RieGJxZE91UnU0QXZnak5ybWlVMVpnWTloaTQ2b3VLU2dYamhHN0JKdFl0 -aExyS3RzVDYwWTZPWk5uRCtMTGsvYWFEVDBtClU3R25GTTVoYk9iOTlWaHZ6c3JrbU1Bbkh2M3VI -c3I1ejU0UG5aYVgvemhWL2EvRm51QjZIblpSZUFackpDekg3bGluZWVXL2xicXUKQnltdndJYVZM -a3plWDRROXQ2YUJMZEVvLzgzVTVmOVM3SWZwQmNBOTJCanZkSWp2azBrZWZmOWJxY1AvMGNDNXlX -ZmRDMndQdkkzbQpteEZ5SDZkcTNaL3lPSFp6NGs4NVpYTDlkenFSb3d6RHlZNlB3d1FmRTJ3L0Yz -dXd5MnJzS1hqUFlPdWxWbUVtOEJqRkV5dEM5aUovCnpOZGQyQVUyeG5Sc2xuMk03YkFKSG84SDZU -T3dMMGxzS2JGT0dBWDJLVmtXQmljbWs3RkoyVEVleEM0U1VEMGUzVEJSM0VNNS85bnoKb2RQeTho -K25xdjhzMDdEVmh1Nk1iSlAvVnVxK0hteUpQWkFvNVBaa1AvTGZ6SGhjajdkTnlvYWU5ZjF2cFU3 -L0cyT09INHJrbC9zNApkZGI5TTdFSnlqSEh1ZjdIczZkZ2JyTGpXSXZyVUdBTExBaGdYWHF4TDA2 -M1BGeWl6S3FTKzhxcmdBRCtrWk1lTmhLNjVlbUs1UWNsCkpzOFNmelpFU05WNGRNTkVjUS9sL0dm -UGgwN0x5MytjcXY2elBFRzhRUUR5SDZQdTY4RWo1SzhjMHUwUGhpb01xbitBZithazYvdmYKU3Az -KzE5RThWQzZMM01lcHMrNHZPb1pjLytQWktGaWJ2Tkp1bVN5SFk0OXNYZ2hzRGR5UHJjNGdpaW43 -QUl3VXhjUVB1ZmRGL24yUgpmMS9rM3hmNTkwUHV1OEJyb3ZGOHJFdjdWT3p1OTJWWVMrNnJUc2N6 -VVJpdmRmcEJNZkZFN24yUmYxL2szeGY1OTBYKy9aRDdnTEpQCldhdktlcXk3SmgwT2N4TndyTk94 -Q0VNeDhVUHVmWkYvWCtUZkYvbjNSZjc5a1BzQXIwYkJHbXlzYThvNld0Y1VGcjFGTWZGRDduMlIK -ZjEvazN4ZjU5MFgrL1pEN0FLOUd3V1Uwcjk4NkY1dmdJZnhRVFB5UWUxL2szeGY1OTBYK2ZaRi9Q -K1Erb0JkekNxWmlTMEpsdVJoNApOZlp3a1Fld0Ixc3M2c0d4Q0VNeDhVUHVmWkYvWCtUZkYvbjNS -Zjc5a1BzT0dNL25GT3dBTE1ZZUZqRVp1QVA0RnJZK2M4cHNMRkQzCnRKUVc0NEZpNG9mYyt5TC92 -c2kvTC9MdmkvejdJZmRDQ0NHRUVFSUlJWVFRUWdnaGhCQkNDQ0dFRUVJSUlZUVFRZ2doaEJCdCtE -L1MKelNmU2hTUU41d0FBQUFCSlJVNUVya0pnZ2c9PQo= - - $$- \frac{1}{16} \sqrt{2} {\left|0\right\rangle } + \frac{11}{16} \sqrt{2} {\left|1\right\rangle } - \frac{1}{16} \sqrt{2} {\left|2\right\rangle } - \frac{1}{16} \sqrt{2} {\left|3\right\rangle } - \frac{1}{16} \sqrt{2} {\left|4\right\rangle } - \frac{1}{16} \sqrt{2} {\left|5\right\rangle } - \frac{1}{16} \sqrt{2} {\left|6\right\rangle } - \frac{1}{16} \sqrt{2} {\left|7\right\rangle }$$ - 8 - - - - - A single shot measurement is performed to retrieve the target state. - - - measure_all_oneshot(iter2) - - python - 9 - 0 - - - pyout - ❘001⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNrQUFBQVRDQVlBQUFBTmdTUTlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBYWhKUkVGVQpTSW50MXJ0ckZVRWN4ZkVQUWVNcjZEWGlDM3lrc0ZIUlJpUW9p -SFZDS2l1eHloOWdZeU1XVmhhQ29vS3R0WlhZaUVaUTB5aGliN0FSCmc1R0ErQ2dVSVRlK0lGck1C -TWE5ZS9mTzNOWjhZWmpaOHp1N2UzWjNkblpab1lnTDNRcXJrdkVaUE1WN3RIQWRiWHpCV3R6QzI4 -cisKdWI1bE51SUpUbU91VW10akd6NDNYY2trUnVKNEdsY3J0VmRZWDlrbjF6ZUlFM2lPUDloWGMv -NHRPTmNVTUEwNUdnKzBQNm10dzNkYwpUclJjWHd2M2hUdCtyeUVrWE1KQVRzaTdtSytwUDhKTXNw -M3JTN25ZSStSeGpGZkZ1dFJIOEtaR244VWg0YkdVK0VwNEVZUDJETGtkCkN6VjZPL1k3Q24ybHpH -TnZLbFJEYmhMbVZWc255MXFyd05jUER6RFJGUEkzbG1LcnNqcjJTd1crZnBqQVZGUElSZDNYdUEy -eC8xRGcKNjRjUnZFdUZ1ams1ZzgwMStsRHNQeGI2U2pnbXZEei8wQzNrN2hyOXFQRG0vaWowbFRD -R2h6a2hYK0lBOWlUYVZoekd0VDU4dVF6agpxeDV6ZVZLWUQ0TjRocHRKN2J6d1RWK1RhTG0rbEJ2 -Q1l0NnhGdUtzc0t4MWtQNWdMT0pYYktlRVQ5dHRmTU11bk1UUHhKL3JJL3hVCjdNVEJ1UDBZcjNF -SFY2STJoRTlkTG02Ri80ZS91K3R5ZUYwcUx2c0FBQUFBU1VWT1JLNUNZSUk9Cg== - - $${\left|001\right\rangle }$$ - 9 - - - - - - - +{ + "nbformat": 2, + "name": "grovers", + "worksheets": [ + { + "cells": [ + { + "source": "

Grover's Algorithm

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "nqubits = 3\n" + }, + { + "source": "Grover's algorithm is a quantum algorithm which searches an unordered database (inverts a function).
\nProvides polynomial speedup over classical brute-force search ($O(\\sqrt{N}) vs. O(N))$ ", + "cell_type": "markdown" + }, + { + "source": "Define a black box function that returns True if it is passed the state we are searching for.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "def black_box(qubits):\n return True if qubits == IntQubit(1, qubits.nqubits) else False\n" + }, + { + "source": "Build a uniform superposition state to start the search.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{4} \\sqrt{2} {\\left|0\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|1\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|2\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|3\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|4\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|5\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|6\\right\\rangle } + \\frac{1}{4} \\sqrt{2} {\\left|7\\right\\rangle }$$", + "prompt_number": 5, + "png": "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\nTkSuQmCC\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2572\u2571 2 \u22c5\u27580\u27e9 \u2572\u2571 2 \u22c5\u27581\u27e9 \u2572\u2571 2 \u22c5\u27582\u27e9 \u2572\u2571 2 \u22c5\u27583\u27e9 \u2572\u2571 2 \u22c5\u27584\u27e9 \u2572\u2571 2 \u22c5\u27585\u27e9 \u2572\u2571 2 \u22c5\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\n 4 4 4 4 4 4 4 \n\n \u23bd\u23bd\u23bd \n\u27586\u27e9 \u2572\u2571 2 \u22c5\u27587\u27e9\n\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 4" + } + ], + "collapsed": false, + "prompt_number": 5, + "input": "psi = superposition_basis(nqubits); psi\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 6, + "input": "v = OracleGate(nqubits, black_box)\n" + }, + { + "source": "Perform two iterations of Grover's algorithm. Each iteration, the amplitude of the target state increases.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{8} \\sqrt{2} {\\left|0\\right\\rangle } + \\frac{5}{8} \\sqrt{2} {\\left|1\\right\\rangle } + \\frac{1}{8} \\sqrt{2} {\\left|2\\right\\rangle } + \\frac{1}{8} \\sqrt{2} {\\left|3\\right\\rangle } + \\frac{1}{8} \\sqrt{2} {\\left|4\\right\\rangle } + \\frac{1}{8} \\sqrt{2} {\\left|5\\right\\rangle } + \\frac{1}{8} \\sqrt{2} {\\left|6\\right\\rangle } + \\frac{1}{8} \\sqrt{2} {\\left|7\\right\\rangle }$$", + "prompt_number": 7, + "png": "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\nSUVORK5CYII=\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\n\u2572\u2571 2 \u22c5\u27580\u27e9 5\u22c5\u2572\u2571 2 \u22c5\u27581\u27e9 \u2572\u2571 2 \u22c5\u27582\u27e9 \u2572\u2571 2 \u22c5\u27583\u27e9 \u2572\u2571 2 \u22c5\u27584\u27e9 \u2572\u2571 2 \u22c5\u27585\u27e9 \u2572\u2571 2\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\n 8 8 8 8 8 8 \n\n\u23bd \u23bd\u23bd\u23bd \n \u22c5\u27586\u27e9 \u2572\u2571 2 \u22c5\u27587\u27e9\n\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n8 8" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "iter1 = qapply(grover_iteration(psi, v)); iter1\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$- \\frac{1}{16} \\sqrt{2} {\\left|0\\right\\rangle } + \\frac{11}{16} \\sqrt{2} {\\left|1\\right\\rangle } - \\frac{1}{16} \\sqrt{2} {\\left|2\\right\\rangle } - \\frac{1}{16} \\sqrt{2} {\\left|3\\right\\rangle } - \\frac{1}{16} \\sqrt{2} {\\left|4\\right\\rangle } - \\frac{1}{16} \\sqrt{2} {\\left|5\\right\\rangle } - \\frac{1}{16} \\sqrt{2} {\\left|6\\right\\rangle } - \\frac{1}{16} \\sqrt{2} {\\left|7\\right\\rangle }$$", + "prompt_number": 8, + "png": "iVBORw0KGgoAAAANSUhEUgAAAwUAAAAkCAYAAADYfZZ3AAAABHNCSVQICAgIfAhkiAAADSZJREFU\neJztnXmQHFUdxz9J2CyJ4UyiEcIhV1mBUiRKRQoVjwIBC+TQSKFkKY3ihYiY4vAYFRAxEhUkqIgI\nClHBAg2IILpKEcF4gCKlwSjKVZwqoAQKiH/8utmeN697Zrp75zeb+X6qpmrn9XvTvZ/f9Ot5/Y4G\nIYQQQgghhBBCCCGEEEKIQWMnYH0NL1Efiokfcu+L/Psi/77Ivy/y70ffud+ozg/rkEnAzsAah30D\n7AO8JjmOQaUoBh7x2YfBjYnOB1/k3xf590X+fZF/P+TemWHglcB3gfMcj+NyYEvH/XtSFAPP+Axi\nTHQ++CL/vsi/L/Lvi/z7IfcFTO7hvuYCM4B/9XCfIfOBvwOPOB6DJ0Ux8IrPoMZE54Mv8u+L/Psi\n/77Ivx9yX0AvGwVrgeuAf/dwnyHHA2c57t+bohh4xWdQY6LzwRf590X+fZF/X+TfD7kvoJeNAm9e\nDDwG3Ot9IOI5FBM/5N4X+fdF/n2Rf1/k34++dj9IjYITgKXOx7AA2MX5GPoJ75gMcjy83YP8y78f\n8u+L/Pvi7V/ufcn1PyiNgm2BqcBfc7YPAR8Cvg+cCyyk/cpMR0XStgO+BJwBnAzsHWz/PfDWzg55\ng6dXMRkCLgY2jWwb1Hi0cw/d+w/dd1Je/vOp6h9gf+ArwEXAhcBrg+3yH6euuifky8D2mffyH6cO\n/1sAVwJHANOBjYHDks+cleSR/zh1+J8CHAOcDyzDhstMyWyX+3yq1v3XA58HTsEaIMdlXscmeXL9\nD0qj4ATgCznbhoGrgP8B7wQuA87EKpTpBZ+5Q/B+K+B3wBXAiVgwLwAOzuR5EnimzecOCr2IyUxg\nBfB27EQMGdR4FLmHcv6z7jstL/9xqvoHq4P2wC4CRwE/AX4GLMnkkf9W6qp7QvYDPghsnkmT/1bq\n8j8MHARcAjwA3I+tNnMd8FCSR/5bqcP/ZKy+mQUsBj4MvAo4KZNH7uNUrfvnAq9L9nMq1jhYlnkd\nkOTrK/9nAd/s4f5mYy2uPD5G84US7I7aeuDsgnKN4P1SYHWQdgo2w31WJm1HYKTgc4uoa/mqohj0\nIj7jHZOtgGuBa4BbknKzcspUiUcd9Nv5AOX8N0qWl/9WqvofAh4Evp5Jm4T9OHo02Z4i/83UdT3I\nsjFwa/IZuwfb5L+ZuvzPwcZs/xa4HfgatiZ8iPw3U4f/47GbcSkzgP9iMcgi961Urfv3xRodC4CX\nYzeGdsdWO/o19tsoJeq/lz0FOwCfxbpPNgM+B8zrwX6PA75YsP0A4GXYFzfl59jM9P073McWwHuw\nH6FZrsHuDO2bSVuLPTCjDN8rWS6lKAa9jM94x+RezPkbgZ+2yVslHlXo1/MBqvvvprz8t1LV/xTs\nIjI/k7YeaygM0fywHPlvpo7rQcgS7C51DPlvpk7/v8TOgXnAu4FfRPLIfzNV/e+C3aFelkl7HNgG\neG+QV+5bqep/HjZk6ybgN9jolVuw30NLaZ7c7OV/XNkFuIH8LpBNgR+1+YybsQvmXkH6bcCzwLSc\nco3M3/smn3FYkCe9OH8jSD8Ea8V1y2iJMr2mX2KSspTingIoH49+ow73UM5/o0J5+W+mqn+ATbCu\n6JQZwDrg6khZ+R+jzroHbKWRBvBm4j0FIP9Z6vI/h+a71UXI/xhV/Z8KPEHnT+mV+2aq1v0vpPVm\n/+7YUPYYG4p/AF4PfBQbG7U4J89JtG9dbYuN+89+iSdjY7r+UlCukfn7KCyQ+0XyraP1bvVGwKfa\nHFeM0RJlekk/xSSlk0ZB2Xj0E3W5h3L+GxXKy38zVf3H+ARwN7B1ZJv8j1Fn3QM2PGEaxY0C+R+j\nLv9po+AdwGnYHdpF2FCuEPkfo6r/ldhDuWZi85rOw8bEPz+nnNw3U3fdPxlYBbwgZ/uG4P850nGx\n3wH+ENk+jdbhPJ1yCFaBn1iQp5H5e0mSP1xtCOBhrBsn5JPEJ78WMdpl/l7TTzFJ6aRRAOXi0U+M\np3to779Rsbz8F1PG/6ZJ+tXYUIrNI3lS5D+fsnXPIuDA5O+iRgHIfxFl/M8B7sLGVIP9+LkYW4kr\nhvzn043/u4G/JXk3SdIWYbHIm4wv98VUufa+C/hhm8+v3f96h1eWBUlaOInoA5Rb8moImxR2M8XL\nQDUyf5+cHMOCSL5HsDFdIaeXOLbRDvN5xgP6IyYpnTYKysQjxoZ2PkBn/hsVy8t/PlX9D2N3stYA\nu+Xkkf84ZeueLbG7pCntGgUT1X9Iv/ifjA2lyPKi5NiOjJSX/zjd+n862f8emW2TgDuAy3PKTlT3\n/V73p94PbbOPuvz3FauxpZtSNsJWnykzkfpMbA3Xdiv9NDJ/H4x9GWKNgiex5bmyzMOWyeyW0RJl\nvPCOSUonjYKy8ehX6nQPnflvVCgv/8VU9Z9yK3AfrV3J8p9P2bpnGbY8YEpRo0D+86lS98d4Crg0\nSJP/fLr1/xA21CWcU3AVNib+eUG63BdTpe4/EFv1qagXoMV/tuWxGzYju9MJIn/G1kLtB87GJlJs\ng3VTHYmt9vBsl59zJLb80xuwO/ydknYZzQjSp2ABuS9IPxwLdoyZWBfnlMi2lxDvhlqHtQa7/X/H\nE++YdEMsHjofjKr+Oykv//mU9b8Z8J8g7UZsBZCDaF6uVP7jlHW/N3AnNpSiE0L/E9k9+PsHWI71\njGVXwUl9hg0z+Y9Txv992A//8C76o5jPHWkeYqO6J5+q195DseHrTxXkKfotCtgP0lkdvsIWnyfD\n2Brcp2NfpGvpfozU3tid+OyTb+cXfE4j8/ck7Et/dJDnpdjJ8fFM2nTs+QVFzMbGRIavVTnpM9t8\nngfeMUlp11NQFI9BPh+gO/+NkuXlP5+y/hdjF6HPBHnOwc6FbLr8x6lS91yFrUe+IvO6AXN/TfI+\nXS88z/9EdQ/+/oexYSw3Bnl2xmLwg0ya/Mcp6/8c7NlMIZdjMdkkk6a6J5+q116wGxO3Feyjk9+i\nE5rTsHW4j8DWg+2GnYEfY3fXsiwvKNMI3q+i+e4bwEewu/jZsY0jwE5dHl/KaMlyXnjHBNo3CkYo\nH49+pop76N5/o2T5EeQ/RhX/p2Df+U8HeW5K0rPL3Y0g/yFV656p2Co32dcJmPs9k/fpXdAR5D+k\njrr/Spp/gAIsxGLw/kzaCPIfUsX/AZjj2cH21diD5LKMIPcxql57Yay35lcF+xkh4r9o4shEYzm2\nCtAZdPcgipnYnYOLgLdk0oeA7br4nHOwJ/YtwVrKk7DumwtpHj60U5I2CHjHBMaGYQ3lbN9Q41HW\nPVT33015+W+lqv8VwJuwJ3am7IoNm1iJNQ5S5L+ZOuqeWHd9OnzgaexGUYr8N1NX3b8Ce6Do0kza\nIdj8vvMzafLfTFX/V2Pr8b+PsaUud8XW8Q+XbJf7Vur6/qdLwD5akCfqvxeNgklYy2dNkD6Ere+6\nOdaq/DbxbqdOuRu4AvgjNrmiU1ZgY9hi46ouKSgXjhG7BJtYthLrKtsT60Y6OZNnD+LLk/aaDT0m\nU7GnFM5hbOb99VhvzsrkmMAnHv3uHsr5z54PnZaX/zhV/a/FnuB6HnZReAZrJCzH7lineeW/lbqu\nBymvwIaVLkzeX4Q9t6aBLdEo/83U5f9S7IfpBcA92BjvdIjvk0keff9bqcP/0cC5yWfdC2wPvI3m\nmxFyH6dq3Z/yOHZz4k85ZXL9dzqRowzDyY6PwwQfE2w/F3uwy2rsKXjPYOulVmEm8BjFEytC9iJ/\nzNdd2AU2xnRsln2M7bAJHo8H6TOwL0lsKbFOGAX2KVkWBicmk7FJ2TEexC4SUD0e3TBR3EM5/9nz\nodPy8h+nqv8s07DVhu6MbJP/Vuq+HmyJPZAo5PZkP/LfzHhcj7dNyoae9f1vpU7/G2OOH4rkl/s4\nddb9M7EJyjHHuf7Hs6dgbrLjWIvrUGALLAhgXXqxL063PFyizKqS+8qrgAD+kZMeNhK65emK5Qcl\nJs8SfzZESNV4dMNEcQ/l/GfPh07Ly3+cqv6zPEG8QQDyH6Pu68Ej5K8c0u0PhioMqn+Af+ak6/vf\nSp3+19E8VC6L3Meps+4vOoZc/+PZKFibvNJumSyHY49sXghsDdyPrc4giin7AIwUxcQPufdF/n2R\nf1/k3xf590Puu8BrovF8rEv7VOzu92VYS+6rTsczURivdfpBMfFE7n2Rf1/k3xf590X+/ZD7gLJP\nWavKeqy7Jh0OcxNwrNOxCEMx8UPufZF/X+TfF/n3Rf79kPsAr0bBGmysa8o6WtcUFr1FMfFD7n2R\nf1/k3xf590X+/ZD7AK9GwWU0r986F5vgIfxQTPyQe1/k3xf590X+fZF/P+Q+oBdzCqZiS0JluRh4\nNfZwkQewB1ss6sGxCEMx8UPufZF/X+TfF/n3Rf79kPsOGM/nFOwALMYeFjEZuAP4FrY+c8psLFD3\ntJQW44Fi4ofc+yL/vsi/L/Lvi/z7IfdCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBt+D/S\nzSfShSQN5wAAAABJRU5ErkJggg==\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n \u2572\u2571 2 \u22c5\u27580\u27e9 11\u22c5\u2572\u2571 2 \u22c5\u27581\u27e9 \u2572\u2571 2 \u22c5\u27582\u27e9 \u2572\u2571 2 \u22c5\u27583\u27e9 \u2572\u2571 2 \u22c5\u27584\u27e9 \u2572\u2571 2 \u22c5\u27585\u27e9 \u2572\n- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\n 16 16 16 16 16 16 \n\n \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2571 2 \u22c5\u27586\u27e9 \u2572\u2571 2 \u22c5\u27587\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 16 16" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "iter2 = qapply(grover_iteration(iter1, v)); iter2\n" + }, + { + "source": "A single shot measurement is performed to retrieve the target state.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$${\\left|001\\right\\rangle }$$", + "prompt_number": 9, + "png": "iVBORw0KGgoAAAANSUhEUgAAACkAAAATCAYAAAANgSQ9AAAABHNCSVQICAgIfAhkiAAAAahJREFU\nSInt1rtrFUEcxfEPQeMr6DXiC3yksFHRRiQoiHVCKiuxyh9gYyMWVhaCooKttZXYiEZQ0yhib7AR\ng5GA+CgUITe+IFrMBMa9e/fO3NZ8YZjZ8zu7e3Z3dnZZoYgL3QqrkvEZPMV7tHAdbXzBWtzC28r+\nub5lNuIJTmOuUmtjGz43XckkRuJ4GlcrtVdYX9kn1zeIE3iOP9hXc/4tONcUMA05Gg+0P6mtw3dc\nTrRcXwv3hTt+ryEkXMJATsi7mK+pP8JMsp3rS7nYI+RxjFfFutRH8KZGn8Uh4bGU+Ep4EYP2DLkd\nCzV6O/Y7Cn2lzGNvKlRDbhLmVVsny1qrwNcPDzDRFPI3lmKrsjr2SwW+fpjAVFPIRd3XuA2x/1Dg\n64cRvEuFujk5g801+lDsPxb6SjgmvDz/0C3k7hr9qPDm/ij0lTCGhzkhX+IA9iTaVhzGtT58uQzj\nqx5zeVKYD4N4hptJ7bzwTV+TaLm+lBvCYt6xFuKssKx1kP5gLOJXbKeET9ttfMMunMTPxJ/rI/xU\n7MTBuP0Yr3EHV6I2hE9dLm6F/4e/u+tyeF0qLvsAAAAASUVORK5CYII=\n", + "text": "\u2758001\u27e9" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "measure_all_oneshot(iter2)\n" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/qerror.ipynb b/docs/examples/notebooks/qerror.ipynb index 9b8f436..584a5f3 100644 --- a/docs/examples/notebooks/qerror.ipynb +++ b/docs/examples/notebooks/qerror.ipynb @@ -1,1014 +1,268 @@ - - - qerror - 2 - - - - - <h1>Quantum Error Correction</h1> - - - %load_ext sympyprinting - python - 1 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 2 - 1 - - - - <h2>5 qubit code</h2> - - - M0 = Z(1)*X(2)*X(3)*Z(4); M0 - - python - 3 - 0 - - - pyout - Z ⋅X ⋅X ⋅Z - 1 2 3 4 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZzQUFBQVlDQVlBQUFDVitvRmJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBMk5KUkVGVQphSUh0MkVtSUhGVWN4L0ZQa3RIUUNTNW9TR0EwS29JTElzYUxt -SU9HT0M0TU11QTJDQ1l3R0pmZ3dSVWRSbkJGRk1sTjlCQXZCaUZSCkJCY1VQUVJFWEhBRE1ZZ29L -QklWblNoQ29xakVaWnc0SHY0MU05WGQxUm03NmxXTDBEOG82RmV2NnZ0ZS8rb3QvLytqci85Y0t6 -R0YKR2Z5RkwvQXFkbWJYdnF6dWluL0JHc091N1BrWi9JNm5jdlVYNDZlczdtOThqblZkOUxWdWZr -b3ZDclVKZitJV0hOSlNkeWtPNE5FdQptUTltbmJxdm9HNkwrQU9EWFRKN3dhL0RpeVk5ajVHQysy -ZmpON3lFeFYweVYyTWFuN1hjWDRldEpYaTk0dGZoeFp3T3hSc0Y5MC9FCkQvZ0F5MHF5WHhhamIz -MVdQa05NK1lHU3ZMcjVkWG9CanNPRkxmZU9FaVBtYTZ5cXdCNFJaanlERS9DQ2lwMnRtVituRjRW -YWlyZkUKSm5OYVJkWVNmQ1BXd0Zkd2RFVmVyL2twdldqVElqd3RkdU9oUk14N3hPaTdLeEd2Vi93 -NnZHalN3NkxqWTRsNEE5Z3VPcnhiL0lHVQpxcE9mMm9zbWJWWWNTaldVLzdKYmNTNmV6ZGpEcFh2 -WFczNGRYc3hwV0FUd1R4YlVYWVBMU2pBZndpWFo3L05GNTE4czA3a2U4K3Z3CllrNW40aGU4cGoy -SWg3ZXhQRmZlZ0JzWFlONks2M1BsUlNLVG04WXhCM2x2Q1BmaUVUeUd3eEx4QjdFeGUyY2JSanR3 -dS9WaVZzdXgKb3dOelRzZGlEejdGRVFYMUcwUXNDMnZGdFBvRWR4K0V1Vkh4Wm5XN0dIMzNkM2p2 -Rkl6bnlvL2p6VVQ4N2VJRHdocVJ4cTlwZWFZYgpMMXExUlh0eTFhVEQ4VEcreC9FdGRZTzRNK3ZV -ZFMxMU94U2J2VFJyOUtNTzdRMW12TW5zMlZaZGkyL05iM0lYQ1BOV0p1Q2ZMajRtCnJOQ2NDRkhl -QzdnSVYxdkE3RzFabzVONFA3dDI0V2Z6aHp4VDJnUDVWck1iZUE5L1pPOGNFT2NXZVkyS2VIaVcr -NTFJUVBJNlVuTkMKY1JYMmkxR1dnaityTWJ5amVaa282OFVLM0lCVExXQjJXWFVhMlNtMUdPL2lw -b1RNMWNLWW5kSmxnaE1pL1B4Zm0vMEE3cWlKdlJaZgphVjh1dXRVb1RzcCtGNXE5cEdJRGNEbjJp -alMyRG0wU1M4SVRZcG9Tb1ZoWk5jUXMyU1BPcGlmRlJqK04xeXR3eDhWK2NvNklvczRTCi9uNkpY -eXR3bTFUbnlCN1JmTkEvb2ZyQjFZQ0lvR1kzeUZWaURiNnlJamV2WVltWGtaTnhtemo5K2hBM200 -OFVVbWk5R01FenVXdDMKSXZhUU9FUFpMTUszQ2VsUysvUHduTmpNeCtVT3c2bzAwTkFlZis1VGJZ -cm50VXlFWUhsTjRjZEVmQ0w1MkorUVIzalN5SlgzaWlXcQpyNzc2NnF1cS9nSHh4eEpxZzFjRWZB -QUFBQUJKUlU1RXJrSmdnZz09Cg== - - $$Z_{1} X_{2} X_{3} Z_{4}$$ - 3 - - - - - M1 = Z(2)*X(3)*X(4)*Z(0); M1 - - python - 4 - 0 - - - pyout - Z ⋅X ⋅X ⋅Z - 2 3 4 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZvQUFBQVlDQVlBQUFCNk9PcGxBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBNGxKUkVGVQphSUh0MkZ1b0ZXVVVCL0RmMXBQSGtpNVVXbWszZWlzaW9oZnhJ -YTBzaUxDeWkxQVpkcUVNSXFtUXNxaW9TSkVvZXFnSGlTQ2pHMEVZCmxSS0JHU0ZGTnpwRUZ5Z3Fq -TElpNkI1azZkSFR3NW81ZS9iZWMwN3VtVy92WHZZZkJ1YWJOZk9mTmY5WjM3Zld0eGpnZjhVczdN -UVkKZHVFTGJNYXIyZkZ6WnJ0b0w3aVdZU1M3Znd3NzhFekJmZzUreld4NzhEbm1kK0Zyci9sVGF0 -R0JxL0FQYnNRK2JiYkYySTJIdStSYwpuVGwwZDRudGZ1SDg3QzQ1KzhIZkN5M0dzUUdMU3E3UHhW -OTRDVk82NUR3S28vaXM3ZnA4ckt2QTF5LytYbWdCcHVHTmt1dkg0VWU4CmovMnFFR09qaUxyVHN2 -RkpZcG9QVmVUck5YOHZ0WEEwem1xN2RyQ0lsSzl4V0ZWaUVSbGplQTdINGdVMUhPMERmeSsxNk1B -d3RvcUUKY2tKTnJxbjRScXg1bTNCSVRiNSs4NmZVb2dVTlBDdXk3aG1KT084U1VYZEhJcjUrOGZk -Q2kzR3NGVTR2UzhRM2hLZUVzMThKNTFPaQpsL3lwdFJqSGN1WGwwcjZxLzlGMU9CWFBaOXhuVi9h -dXYveTkwQUxoNEM0OFVXSzdHaGRVNEZ5RDg3UHpoY0x4RjZzNDEyZitYbWdCClRzWWYyS0t6UUlj -M01RUFRjWXRZRTlkanlTU2NOK0hhd3JnaGRtaWptRFBKYzZlTHFYbzdIalh4aHFNcVAvRlRicGpB -dHJkYTVEZ1gKSzRVbTEwejIwaVB4SFQ3RmdTWDJ5MFN0Q3ZkcWZzUVIrQVVYbGp5elZIbGlXaW1p -N3A0SmZKbUZQM0Y4Tmw2UDF4UHl3MEg0QkhlVwoyTHJSZ3FqWnR4YkdHM0ZlMlVzUHdFZjRBY2Uw -Mldiak50RXJ5UC9VeHlLaWMyelMybU1ZRmx2ZkQ4dGVsbkh1d2ZiczNuWTBSRjA4CkxSdXZidU9x -eXcrcjhJQk9vYnZWZ2tqQ3R4Ykd5L0Z5MlVzZkZ4R3dIZTlreHdoKzEyelk3TlFzMHVlS2dqN0h1 -M2hRSklpMzhYZjIKekc0aFVoRVhpM28zNS8xZWJDNG13d2NpZWxQeEw4YUoyYlB0UW5lckJiRkxY -Rm9ZTDhLMy8vRk5YV09lbUdaSmQwb1p6c1JqV3FPbApMdWJnaXV5OFRPZ3EyS1kxTVM0VTZ6dnFO -M0pnSnU3REFySC9UNDNYUktJN0JROGw0R3ZnY2p5WmdLdUliU0xTYzh3UWVRdjFoZDVmClpOaEw4 -YVhPOWF3T0xzRmJtcHVPVjBSMWNXaE4zbmtpZWE4U2ErMENVWHRmVjVOM1JDVHdISWVMNWFzMnBn -dG44NmJOVk9XOTRLcTQKVW12dHVsYXNtU2xtWVJGUFM3TjBMQkhOckJ3YlJBRFdScjc3S2g0clVo -Qm5HQmIxOHdvaHhHYVJ2RkxpZXRHRmUwL01vRHBvNEJIYwpMQUp3alVJTG9FNHZZS2FJNGlKK0U5 -VkFTa3dSb3U5SXpFdE03eHlqK0NrQjU1Qm1OVFRBQUFNTVVBZi9BaVQyRkJhVnNBdFZBQUFBCkFF -bEZUa1N1UW1DQwo= - - $$Z_{2} X_{3} X_{4} Z_{0}$$ - 4 - - - - - M2 = Z(3)*X(4)*X(0)*Z(1); M2 - - python - 5 - 0 - - - pyout - Z ⋅X ⋅X ⋅Z - 3 4 0 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZvQUFBQVlDQVlBQUFCNk9PcGxBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBM1JKUkVGVQphSUh0MlZ0b0hIVVV4L0ZQVFRTWTFyVEVlaUhlU2xFRXhVdjFR -VlFNb2dnaVhsRXFYaWhhVlBMbUZhbElVYWdpZlJFVXRQaWlnbFFLCm9paUtLQ3Bvc1NnSVFRVEJL -cUtVV0MxNG9kWjZhVnJqdzVuTlRpYXpKanZ6bjlXSC9HQmg1LytmL2U2WjM1NzVuelAvWlVIL3FZ -N0UKUGt4aEVsL2hIYnlWdlg3SzVxNmRCMnNOeHJQenAvQUhOdWZtTDhNdjJkemYySTdSTG1KdG1w -L1NpMW02RlgvaFRoeGNtTHNhQi9CawpsOHhIc29BZUtwbmJLSUlmNlpMWkMzNFRYa3pyWlZ4ZU1u -NE9mc2RyT0toTDVuSFlqeThLNDZQWVZJSFhLMzRUWG9CRDhIN0orRXJzCndpY1lyQUxHNnlMckxz -eU9UeGUzZVg5Rlh0UDhKcjF3UEM0cGpBMkxUUGtXUjFVRmk4eVl3aGFzd0N0cUJOb0RmcE5lek5J -QXRvcUMKY2twTlZoOTJpRFh2RFJ4ZWs5ZHJma292Wm1nUlhoUlY5NkpFelBVaTZ4NU14T3NWdndr -dnB2V1lDSHBOSWw0L1hoREJmaTJDVDZrbQorYW05bU5ZZHl0dWxRMVgvUlRmaEFyeVVzUyt0SEYx -ditVMTRnUWh3RXMrWHpLM0ZOUldZaitLcTdQM0ZJdkJYcXdUWFkzNFRYb0F6CjhTdmVNN3RCaHcr -eEdFdHhnMmpvbjhIWXZ6RHZ3dTI1NDBYaUNXMC9qcGxuWEp0RkJxWGdIeVllUU1id09NN293SjJ2 -RjNtdHdsTWQKZU5NNkZ0L2hjMkZrVVRlS1hoVTJhR2ZNc0xpb0swcytjNVB5d25TdnlMcUg1d3BL -L0tDVFdKS0l2MUU3TVpiakd3d1Z6dW5HaTliNQo2L0dtZURUdnFDRjhodTl4UW1GdUJPdkVYc0Z0 -MmRnS25KMDdadzl1eVIwUFpCZjBhWWZ2RzhsNEU5bTVuYlFTTitNM000MnV5aC9FClhqTWZ4N2Rp -ZGU2NFd5L3lHak9IMGMrS0RKakF4OWxySEx1MU4yejJLVy9TUi9FbGxvbmIreVA4bVgzbWdOaUh5 -T3M2MGUrMnVEdkYKdzBWUmZYZ2dlOTh5dWk3L1pHRlN2aVBaSXJxS0ZGN01hWFFWRFlzc2ZoY25w -WWFMakdsZFRER2pxK3A4a2RGNVBZZW5FN0RwWUhUZApqWnlmUlRWZWl3OUVJVWlsVlNLamRpVmtF -dXZ4VkdGc3NiaVd4bFRINkxlMUsvME8vSUM3YTBmVTFtcFI5ZGVKWWplQWUzQldUZTVPClVVL3kz -Y0xSNGhyK2w5cUc4N0wzL2FJTnVyK2g3MW91c2pERjBrRnNiYmEyUG9kRWtwUjFGbFZVdW5UMDFR -Q080d3FjaVB2RTByRkIKRkpxVU9sWDB2T2VLSDNRQ1A5WmtiaE14THhGdDJoT2l5NmlqcGVJT3Z4 -Nm5pV0s3VjdiMHBkZ0xHQlIvSHhYWHZWUWFOTFBIM1oxOQpYd29OaUoyK0ZPckRFWVd4UFdZWDNn -VXRhRUVMbXEvK0FTMkNFZmVpa09YakFBQUFBRWxGVGtTdVFtQ0MK - - $$Z_{3} X_{4} X_{0} Z_{1}$$ - 5 - - - - - M3 = Z(4)*X(0)*X(1)*Z(2); M3 - - python - 6 - 0 - - - pyout - Z ⋅X ⋅X ⋅Z - 4 0 1 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZvQUFBQVlDQVlBQUFCNk9PcGxBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBMkJKUkVGVQphSUh0MkYyb1psTVlCL0RmbURPT1lUZ2lUTWZId1pTTHVaQTBr -Z3VUU0EzSlIrUEs2QlROaUpxY0tXRW01SXhHY2pFcE53ZEpTb1NKCmlLSVFUY3FVbWpRMVJVTytC -bzBNSVYvejRiaDQxbnZPUHUvWisrVGRlKzNYaGZPdlhYdXRaNi8vZXZaL1AzdXRaejNNNHovRnlU -aUEKU1J6RUhyeUZOOU8xUDlsVy93dXVVZXhNejAvaUR6eGJzRitKbjVMdGIzeUNsVDM0MmpaL1Rp -MW00U2I4aFRFczZySmRpOE40dEVmTwpMY21oKzB0c0R3dm5oM3ZrN0FkL0cxcE00U1ZjVmRKL0lY -N0hxemlpUjg3VGNRZ2ZkL1d2eEVRTnZuN3h0NkVGT0JMdmxmU2ZqWDM0CkVFZlhJY1pySXVvdVNl -MXp4VzgrVUpPdmJmNDJ0WEFHTHUvcU8wRkV5aGM0cFM2eGlJeEpQSTh6OGJJR2p2YUJ2MDB0Wm1F -UTI4V0cKc3J3aDEwSjhKZGE4MTNGaVE3NSs4K2ZVWWdZVzREbXg2MTZhaWZNK0VYWDNaT0xyRjM4 -YldremhJZUgwYUNhK0FUd2puUDFNT0o4VApiZkxuMW1JS3R5aFBseGFyLzBVbmNERzJKZTVWdGIz -ckwzOGJXaUFjUElpblMydzM0N29hbkEvaW1uUi9tWEQ4bFRyTzlabS9EUzNBCmVmZ0Y3NWlkb01Q -N09LYXJiN2w0MFNwc3dMcENlNEU0b1IzQ3FYT01XNEZOYWZ4bTFmbHFYZjQ3elMxVXIxcU00bDQ4 -bnZ5dXpLOVAKd3pmWWphRVMrdzBpVnkxaUVkN0ZreFdjYTVSdlRIZUlxQnV2R0hjc1BzVlJxVDJP -QnpMeHIwcjlYK1BHaXZsNzFXSTFya2ozQTlpQgpyV1hFeDJFWHZzTklsMjBZRzBXdFlHMlhiVDN1 -Tmx2b1FYSDAvYWppUllZVDM5NzBiRGZHOEdLaGZiNTQ4Vno4UkVTV0NWMUhpd2x4ClN1eGdJNzRz -bS9RcEVRRjd4ZGZZSVlvMVA1c3UyQnd3TTBtL1NLeUhhMDBMdlJnZjRNODA1ckNvUXhSeHZjaDNP -N3pmaXNORkVSTjQKcE5CZW1wNGR5Y1JQdGRCMXREZ0xGeFRhVzlPNHhsaUMyOU45VWVoYzJHYm11 -ajhrWHZDY2pITlVDZDBVeDR1L1lhcEsyS1NRc3c1UApOUFZvRG53dWhPMmdzK244Mk9LY09iQVFq -NG1NWkh1bnM2N1FJeUxUMkNEV29xdEZBZWV1Wmo3T3dFNVJDKzVncWFpVy9aQnhqall3Ckx2YU9O -OHhlM3h0amkveEx4ekpSdk9rRXd5WVZ1M2dENUY0NmJoTnJOWkZpYnM3SWJZMkl2ajNpQkpVVDYw -VjAzQ3FLNjdtS1JDdEUKcHJRZmI2ZDVtbFlSeDB4dmxKM3JoWTR4UnkzZ0pMRXVTZVQ3TW5CMlkx -QlU1SEpoU2JxSytGNmtiSFV4SkRLdUluN0RydzA0NXpHUAplZnkvOFE4S29RMjJ6LzN3eXdBQUFB -QkpSVTVFcmtKZ2dnPT0K - - $$Z_{4} X_{0} X_{1} Z_{2}$$ - 6 - - - - - These operators should mutually commute. - - - gate_simp(Commutator(M0,M1).doit()) - - python - 7 - 0 - - - pyout - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQVNDQVlBQUFCdnFUOE1BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBTjFKUkVGVQpLSkhOMGkxTFJGRVF4dkdmN2k2THJHRTNhZENvVWJBWkJUK0d6 -V0FUaTlWbTIyRDNROWd0WnFObzhXWE5naTlCVUhCZFVNTzlGOGJECmxHMU9PY3d6OHo5emVNNHda -Y3dVK1JLR2VNUWJPampHYXdhM01NSnUwSTV3aHRrTTJNWVl2YUN0NEFjN0dYQ0o4MFIvd0dtVE5L -UGEKV01OOUFveXdXUUlMS2dQZUUrQURBM1Fqc0JpS0dRRDlDSXpyOHpzQk9ySFdBTGY0U3BxcFhK -dmdKUUlUM05SdkxXTWVUeXA3LzN6SQpGWmFMNWhiV2NaMk5QbEN0d0Z6UU51cWJ0ekpnZ0R2c0Jl -MEVGN0dwWEw1VkhPS3p6bnZZeDNNMjRaL0VMOVhvS0JOSStWMHhBQUFBCkFFbEZUa1N1UW1DQwo= - - $$0$$ - 7 - - - - - And square to the identity. - - - for o in [M0,M1,M2,M3]: - display(gate_simp(o*o)) - - python - 8 - 0 - - - display_data - 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQVNDQVlBQUFDTmRTUjFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBR0JKUkVGVQpLSkh0MGJFTlFHQVFodUVuV3AxQ1pRRmJxRXhoT0kxQnRFYkFC -Z29qL0FvS2tjZ2ZDWjIzdVV2dXZjdVhIQzlRWUk1SktXcU1DTmRoCmN1cExkS2l3UEluUnhpNUgr -ZVhYNWV5bytkMWlqaDZUL1hzQkt3WTBUeEo4ekFaQmNneThUWnFOVGdBQUFBQkpSVTVFcmtKZ2dn -PT0K - - $$1$$ - - - display_data - 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQVNDQVlBQUFDTmRTUjFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBR0JKUkVGVQpLSkh0MGJFTlFHQVFodUVuV3AxQ1pRRmJxRXhoT0kxQnRFYkFC -Z29qL0FvS2tjZ2ZDWjIzdVV2dXZjdVhIQzlRWUk1SktXcU1DTmRoCmN1cExkS2l3UEluUnhpNUgr -ZVhYNWV5bytkMWlqaDZUL1hzQkt3WTBUeEo4ekFaQmNneThUWnFOVGdBQUFBQkpSVTVFcmtKZ2dn -PT0K - - $$1$$ - - - display_data - 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQVNDQVlBQUFDTmRTUjFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBR0JKUkVGVQpLSkh0MGJFTlFHQVFodUVuV3AxQ1pRRmJxRXhoT0kxQnRFYkFC -Z29qL0FvS2tjZ2ZDWjIzdVV2dXZjdVhIQzlRWUk1SktXcU1DTmRoCmN1cExkS2l3UEluUnhpNUgr -ZVhYNWV5bytkMWlqaDZUL1hzQkt3WTBUeEo4ekFaQmNneThUWnFOVGdBQUFBQkpSVTVFcmtKZ2dn -PT0K - - $$1$$ - - - display_data - 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQVNDQVlBQUFDTmRTUjFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBR0JKUkVGVQpLSkh0MGJFTlFHQVFodUVuV3AxQ1pRRmJxRXhoT0kxQnRFYkFC -Z29qL0FvS2tjZ2ZDWjIzdVV2dXZjdVhIQzlRWUk1SktXcU1DTmRoCmN1cExkS2l3UEluUnhpNUgr -ZVhYNWV5bytkMWlqaDZUL1hzQkt3WTBUeEo4ekFaQmNneThUWnFOVGdBQUFBQkpSVTVFcmtKZ2dn -PT0K - - $$1$$ - - - - - <h2>Codewords</h2> - - - zero = Rational(1,4)*(1+M0)*(1+M1)*(1+M2)*(1+M3)*IntQubit(0, 5); zero - - python - 9 - 0 - - - pyout - ⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅❘0⟩ -⎝ 1 2 3 4⎠ ⎝ 2 3 4 0⎠ ⎝ 3 4 0 1⎠ ⎝ 4 0 1 2⎠ -─────────────────────────────────────────────────────────────────────────── - 4 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWo0QUFBQWlDQVlBQUFCZnVkTmxBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDcmxKUkVGVQplSnp0blh2TVhFVVp4bjhmdmRHVzBndkZwbzFXeEZwYUM2VVFS -TlNLRmJEU2lJcEdCU3VsSDFxVldJdEVwQnFpOFZJUlJVV05vaVVCClk3eUxZb29VcFdnVVJSc0Zi -Mzlvb1lLZ1RSR05pTlZTTDZEV1A5NDkrV2JuWFBaY1p2YjJQYjlrMDYrejU3dzdPOCt6cysvT21a -a0QKUWdnaGhCQWl4V3hnWXE4cklZUVFRZ2dSa3luQXFjQjl3Rkc5cllvUVFnZ2hSSDBPS1hITU9j -QU00RW1SNnlLRUVFSUkwVGNjUkNNKwpRZ2doaEJoZ3lvejRDQ0dFRUVJTUJVcDhoQkJDQ0RHTW5K -MVYyRStydENZRFZ3Q1hkUGwxWHdhTWRqam1IOWhjcDRNbDRvMEExd05UCnZmSlBBTGUwL3Q0S1BO -NTU3cy9BQlQyT25SQzZQZXJTS3orQVBPRWpUNFJ0ZzlpYXlSUGRRWjRZSTdZZkpnTm5BTi8weW84 -RjFnTC8KQTNZRE53TVBPOC8vSFhndThMMGFyd21FbStQenJJeXlRNEViZ1VjQ3hLL0tkekZCTmdN -cmdTT3hoSEFpc0FWNzM2TVZZMDREVmdHUAp0UjRuWU1aTE9CSTRBTnlFaVRLelQySkQ4L1pZV2ZI -MStzMFBJRS80eUJQaFBSRmJNM2tpUHZMRUdDSGFvc2dUaHdGdjhjcFdBWHVCCnhhMy9yd0h1QjQ3 -d2p0dlM0WFZ6R2NFcTNuUmwxMW5BaGM3L2wySVozRTdnQVpvWmVFS05jMllDZndDV1pUeTNIbnZQ -NzJsUXB4dGEKTVZaNzVhOEQzdDRnYnF6WUlkcmpBdUM4a3E4WDB3OGdUNFNJTFUvRTlVUk1QOFNL -TDAvSUV5NmgycUxJRTFtSnorM0FSN3l5bmNBMgpyMndqTUsvRTY3ZXhIdmcwOEZQZ3k4REZWUU8w -V0FGYzU1VWRDa3hxL2YwMTZodDRHWEJsamZQT0FkNlJVWDQ2OENqd3VacjFTVmlOCmlYNkRVL1lT -NEgwTjQ4YUtIYW85ZGdDbmRUZ21waDlBbmdnVlc1Nkk2NG1ZZm9nVlg1NlFKMXhDdGtXZUovekVa -eVgySHA3dkhmZE8KNEwvWWhzc0pzNEUzVjZoRFVHNmxlTVNvaVlGWEFCK3RjZDc3YVc4Z3NBL0NQ -dXlhNE9TYTlVa1lBZTdGaGhYbll4dEJYa1A3OEdJLwp4UTdWSG91QmV5aitKUlhURHlCUHlCTnAr -dEVUTWYwUUs3NDhJVSs0aEd5TFBFLzRpYzhWV09Jenh6dHVUYXY4cFY3NXUrbkJZcTR6Ck1JTVcw -WXZFeDJjKzhIdmdMdEpDMXVXdG1CQ2ZCNzVFMkFubE1XTkRzL2I0TURrejZvbnZCNUFuNUlrMC9l -cUoySnJKRS9uSUUrSGoKTjIyTExFLzRpYzluc1BwUDhvNTdkcXQ4czFkK0N2RENHblZweERYQXF6 -c2MwK3ZFNXpEZ1o4Q2ZDTHRMOWVPdzRiNS9BWWNIakJzNwpkdFAyT0JjYnRzd2l0aDlBbnBBbjB2 -U3JKMkpxRmp1K1BDRlB1SVJvaXl4UCtJblBMY0MvTTg0OUVVdDhzaTdiWFo3OGtRejlISXp3CmNG -a0QvRER2WGZZQkU0Q3ZBRXV3clBEK2dMSC9neTBMVE81NUZwSllzVU8weDI3Z2VkajFlSjkrOXdQ -SUV6N3lSRHhQeFBSRHpQankKaER6aEVxb3RpanlSTUJXN1ZPZVQ1QjVUdlBKcFdKTFhOZVpnazQw -NlhUL3M1WWpQVnF5Ty92RGFBcHBkVjUwS2ZCVllod2x5YzROWQozWXdkb2oybVlYc3JMUGJLdStF -SGtDZmtpVFQ5NkltWW1zV09MMC9JRXk2aDJpTExFLzZJejFheWRVOG1QYi9OS3g4Rm5sS2hEbzFa -CkN2eTF4SEZsREh3S2NHM0c0K3ZBcjNLZXU2aER6T1JhNTVzeW52c2k2V3VJWlptSXpXWS9ydlgv -WDJPbWVHTE5lTjJLSGJJOTltQ1oKdTB0SVA0QTgwWTNZOGtRY1Q4VFVMSFo4ZVVLZWNBbmRGcjRu -L01UbkRkaUlqejloT1ZteHR0NHJEN1VpcmpUUEJCNHNjVndaQTg4QQpUc3A0ck1VYU4rdTVvd3Jp -dlFMTExEK1c4ZHlUc1lsZldjeW04MlN3VDlJK2hIZ1JKc2psMllkektyYUh3a1pzY2xqSTJHRDdH -S3pECnpQTWlzalB3dXUxeEp1bGZiR0I3S3F6enlrTDZBWHJ2aVppNmxkR3NibXlmUEEycnRNY3h3 -QWFzN2FmbHZNNndlNklmTkdzU3Y0eUcKZGZxSm9qNXoyRDNoMGl2Tm1zU0hZdjFpOUptK0ovekVK -NW5FN0orL3NWVyt5aWs3a2ZRcXIrZ3N3UnFsa3lEZHZ0UzFFcnZtdDQzcwpaVzVYWS9zVHVDVFhR -KytqK0VQeFhteGZCSmRaMks2WUQ1TE9mdGRqd294Z3c0UjdnYWNHaWcwd0hmZzV0cHZtWk9ENzJN -eDVsenJ0CkFkYlIvNUYyb3lVOGdHMCs1dElOUDBCM1BCRlR0ekthMVkzdGs2ZGhsZllZQlQ2RmRZ -NW5ZYnUvWnAwenpKN29CODJheEIrbHM0WlYKUHlObCtzeGg5b1JMcnpSckVyK1Rmckg2VE44VGZ1 -SXpFMHR3L0pWYTI0Qzd2YnE4aXg3Y25tc1dWc0VWSFk3clp1S3pHSGdJdUlQMApCMnNFK0JBMlk5 -eWY3WDQrOEFMeWI5OHhCZmc0Y0ZuTzYxN1hPdmZsWHZrUGFOOUY4MGZBVllGaWcybHdMVGFUSCt3 -RHNNdDV2bTU3CjBLclA3YVEvekROYTlUazVveTZ4L1FEZDhVUk0zVHBwMWlTMlQ1YUdWZHBqSXZB -NzJuZHV2WWYwYlFhRzNSTzkxcXhKL0RJYTF2bU0KZE9vemg5MFRMcjNRckVsOEtOWXZWcCtaNVlt -c25adHZCTDdsSGJPUDl2dUxIUTVjNnAxWE9RczZFOHY4ZmxQaG5IM1ltdjVqZ0Y5Ngp6ODNCaHVp -ZWdHVjNVNEJ2QUhjQzI0RmZWS3hmR1daZzI1MGZnZTFma096b09CZjdsYkVNdTFIYkR1d0daeTZm -elluNWRNd2dxNEZGCldOMFhZTnQ0SjJ3Q250SDYrNnJXNjJ6SGRzVDJsKzc5a3pHek5JME5wc0VH -NS9qbGpFMW9hOUllYTdGWi9QN1c1N1RPZlJTN2h1elMKYjM2QSttMFFVN2NpelVKNElpRkx3NnJ0 -Y1RTd2tQWXYrVjNBYzdDT0xXSFlQZEZMelpyR1gwaXhoblUvSTNsOVpzS3dleUtoRjVxRgo4Rnll -ZmpINnpJUThUL2ljaDMyK3ZvRGRnSFVqdGh1MWUybnRsYTM2dFZFbDhabUhiUnAwTHRVU0g3Q3Ni -RWxHK1dPWVVMdElOOGpmCktyNUdGZkp1dS9FZDUrKzdLOFI3R0h1UFNmWjVrUFN2a0x0SWI2cjBV -T3RmOS9ycWZDelRUZTZaMGpTMnk4blloMkkzN2RsL25mWlkKaEMySi9HM091VXV3N1A1QXhuUDk1 -Z2VvMXdiZDBDMUxzMUN4aXpTczBoNExNSjNkYlN6Mlk1ZDhYTWFESjZBM21qV05YMGJEMFAwbQpq -QTlQOUVxemtOOGRXWVR1TXhPeVBQRUk2U1JzUDNZWmJpNldhSTNTbnRTQkpVWjdjK3BaaXJ4aHVq -S2NobTA0Rkl2alNkK3NMQ1o1Cnc3Wk5PUVJiWmZDcUNMSEJNdXVsMkFmQlgwVlJoUW0wRHgvZVJ0 -b1hWd092elRrL3RoK2d1NTZJcVZzb3pYekthRmlXNDdCZjZDN1gKQXgvd3lzYUxKd1pCTTUreUd0 -WWxyODhjZGs4TXNtWXVvYi96aXZyTUlrOTBsYlhZN096YnFDL2FyZGdxaHhoTXhvYjh1a1dzeEdj -TAp0azE3YUpZRGx6ai9meU0yL0ZpMFFWUVJtN0I5RWphMEhydUJEeksyV3VCNGJJbG8wWWhpVEQ5 -QWR6MFJRN2ZRbXZsMDByQUtFN0ZmCjJ1NkV3aDIwTHdjZUQ1NFlKTTE4eW1qWWhLdytjeng0WXBB -MWN3bjluWmZYWjVieFJGZFloQzFYZzJhSno3R1k2REcyMys0Mk1SS2YKQzdHT015RTFJYXNCbDJI -YmlDZHN4b1lPTzYyWXlHTTZOcnlZUFBZQUw4WW1sMDBBZm9KTmlDdGlXUHdRUzdmUW12a1VhVmlI -T3hpYgpaRGtKK0F0ankzYkhpeWNHVFRPZklnMmI0dmVaNDhVVGc2eVpTOGp2dkx3K3M2d25vaE42 -bU81MDhwZDNEZ29qbUFsQzNydnBZcXpECjNOWjZiQ2Q5M2JVSkM3SGgzS1hBQ2Rqa3Y5Y0hpRHNG -bTBDM0QvdFZNdzk3TDY4cGVmNmcreUdtYnJFMDg4blNzQTVuWTVNMzUySy8KNXE1MG5oc3ZuaGcw -elh5S05HeENWcDg1WGp5Uk1HaWF1WVQ4eml2cU02dDRvaEdkdHBIZWhHV3N5V1NuUzdIWjh6ZGhr -NC9xY0JMcApWUXFEd25wczB1Snk0RjdneDRTNXMrLzVwSDhWZnB2OGljTjFtSXB0K2pRTHEvZWVB -REhuMGo1Y21kVDN6Z294QnRrUHNYV0xvWmxQCmxvWlY5SE01R3Rzc2JDZnRrd3lmVmpIbUlIdGkw -RFR6eWRPd0xubDk1bmp5QkF5V1ppNmh2L09LK3N5cW5vaEc3R0U2SVlRUVFvaXUKa2JmRFk4SUJi -TFJuUHphNU9WbXRNRDF5dllRUVFnZ2hnbFAyanFreGgrbUVFRUlJSVlRUVFnZ2hoQkJDQ0NHRUVF -SUlJWVFRUWdnaApoQkNDL3dQUzc3eGZYVmtEVFFBQUFBQkpSVTVFcmtKZ2dnPT0K - - $$\frac{1}{4} \left(1 + Z_{1} X_{2} X_{3} Z_{4}\right) \left(1 + Z_{2} X_{3} X_{4} Z_{0}\right) \left(1 + Z_{3} X_{4} X_{0} Z_{1}\right) \left(1 + Z_{4} X_{0} X_{1} Z_{2}\right) {\left|0\right\rangle }$$ - 9 - - - - - qapply(4*zero) - - python - 10 - 0 - - - pyout - ❘0⟩ + ❘3⟩ - ❘5⟩ + ❘6⟩ - ❘9⟩ - ❘10⟩ + ❘12⟩ - ❘15⟩ + ❘17⟩ - ❘18⟩ - ❘20⟩ - ❘23⟩ + - ❘24⟩ - ❘27⟩ - ❘29⟩ - ❘30⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXFjQUFBQVZDQVlBQUFCN2VFZFRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDelJKUkVGVQplSnp0blh1d1ZWVWR4ejhnSUFvQlJpYWEwQzFTZTJpalpCZ0tv -eW5UT0lKS2oxSFR0RnRwTHdldEZDbFNTQWN4TU1zYWUxR1RWRVpUClVxbVpRbHFUcGhtcGpaaTlS -cFFiVHZSd2tDQXVrd2phSDcrMU91dXN1L1krYTU5Nzl0Ni9RK3N6YzJiZnMvYTYrMzUvdi9QNzdi -WFAKZWwxSUpCS0pSQ0tSU0NUMkFENWV0NEFXYU5LblNVc0lUZm8wYVltbEd6WDdkS01OM2FnNVJE -ZmFrVFJYUXpkcUR0R05kaVRONVpPcApkNWp6ODluQVBjQmZnWEhBZFVBLzhBd3dFbGdPUE9uVTd3 -ZGVDdnl6dzJKRHVOb0E5Z1l1TjM5L0hEQVIrQ3J3elFyMCtWcVdBa2NDCks0RTdnUm1tVGg5d1Nj -bGFZdlJaVGdiT054cjZnWFhBVFNYckMybVpCcHdGREFYK0Eyd0NQZzg4WDRNV3kxUWszbWNFem1u -UEJVdWUKRFllWWN5T0IvWUMxd0pYQTAwNmRNbTFvUjNPMzVCWGsyN0VKK0NNU096dUI1NXh6THdB -WG9DL21BYzRERGdmMkJjWUFQNlZ4djREcQpOTWZFTHRTYnArMXFyck1kQzlHdUhTRldBRDhBZm16 -ZWEvTzlwcndzNG1jTjdXZE0zRUlIYzdJWDZERS8zdzBzODg0OWh0eW9MT09CCmo3YTJxU1AwMHRB -R0V2RFRuUGVuSXdIMVNhZXNMSDIrbHV2TjMzWmZOeU1mUk5sYVF2VFNyQThrc081REFoOWdEckFW -T01pOHI4cFgKYndMK0FiekdLZnN1emQrZXF0SmkvOVlaU09JOGx2Rjcybk9obFEwdkIzNE52Tks4 -SHdNOENQelpuSE92VTVZTnZSVFRETjJSVjYzcwpPSUNCTnJpdjd6algwUlR6bHdMbk91K0hJUStt -VmVkcGJPeEN2WG5hUzN1YTYyekhRdlRTbmgwK2IwYnNlSWRUcHNuM212S3lpSisxCnRKOHhjUXVE -ek1taGdiSmpnSk9BRzUyeTd3R1RrYWRseTJia1lTZDBqVlljQW94dTQvY0FYZ0hNQnVZNlphdVJi -eEVmNkpDK290d0UKckVLK0pjd0N6alI2T3FGbE1MNENtQUI4QmpnSDJHTEtSZ0hiZ0wwNm9LOElO -d01QSU45WUxiY0FWOUZJeEtxMG5BeDhCWGcxOHFBZQpRbnN1eE5pd0dMaUN4cmZWYmNEN2dFT0Jo -VTQ5VFg2M2FNNnJHRHRlQzh3RDlnR0dJL2syeEx4ZkRWeG82bW55L1JEZ3ZjQzNuYkpkCndIemdn -MDVaRlpwalk3ZUtQSTBsVm5NVjdkaGdZanpXRHA4UkdlYzErVjVUWGhieHM0YjJNelp1TzVxVHZj -aVQ4U3BnWStEOEd1QlIKcit4WTRKUzhpMmF3R0poZW9MN1ZCakFXK1ZheDFEbS9GL0JzQi9YRmFn -SHA0VGt5NHZmcThCVTBENjNrVWJhdkRrTytYUzN6Nmh4dQp5dDlmb1JhZmh3ajNJbW5QQlpjc0c1 -NEVuZ0JlNHBWdlFZYklYY3J3T3hUWERQcnp5aVhMamd1UitQYTVEampSSzlNUzg1T1FmSHk3ClYz -NGcwcEM0alVqWm1tTmp0NG84emFPWDRwcXJhTWNHRStORjdoc3VDNEIzTWJEbkZQVDRYbE5leG1y -VzBuN0d4dTJnY3pMMHRQb0cKNFBGQStYcmdDS1FiMXZJcmMrRXEyWXA4VVBPZHNpbklON1pWWHQw -NjlHVlJoNVlSd0tuSU1FRXJ5dFpuaHlLZTljbzNtT01KRldxSgpSWHN1eFBBNGNERHdJcTk4QjNK -RGRPOEJXbTNJUTdQbUx6THdBZkFFYy95NVY2N0ZqbzNJUExZYmtKNFBTeS93TFJwejI2Qjh6Ykd4 -CnF5bFBZelZyYjhlSzNEY3NyMEpHNVI3SnVLWVczMnZLeTFqTld0clAyTGdkZEU2R0F1d0FZSHVn -dk44Y0ozamxHMms5QjZWTVJnTkwKa0M3dnF3UG5xOUEzSFJrNlg0SjBZNStWVWE5cVg3ME9HYlo0 -R3VseVh3TGNDbHlMQkpOUG1mcnNEY3RQd2dQTmNXS0ZXbUxwdGx3SQpjUXJpNHcxTzJYaGt2dkdE -TkQ5c2dDNGJ0T1pWdXd4SEZpK0U3bE9neDQ2TGtVVUtkeU1MSGVZanczbnpBblhMMUJ3YnU1cnl0 -R2krCldUUzBZeTd0MlBFSjRKb1cxOVhvK3pyek1sYXoxdll6SzI0SG5aUCt3K2xZWk41RlB3T3ha -ZU84OHR1Uk9RaFZNd240RkxLSzlGL0kKUEtuZGdYcGw2OXVOZEt0ZmlneHBYQXg4QVhockRWcDg3 -TERvYWNpazZ3WEk1T1ZKd0U4QzljdlUxd2Y4SHBudjVuS2NPWTczeXV1SwpLMHMzNVVJZXU1SEZM -eTRmTXNjbGdmcGFiTkNjVisweUYrbE44RDhQaXhZN1ZpSHplNTlIaGd2bkkxT0RkZ1hxbHFrNUpu -YTE1V25SCmZOUFNqdmtVdGVPZGlNYlFBNG1MSnQ5YjZzekxXTTE5NkdvLzgrSzJJem5wUDV3K2g5 -eVFRdDh3aHB1amYyNDI0UWVkc3RtSU9PZFkKWkI3RFU4QWJBL1hLMWpjUEdTYXdiRU8yVkZpQmJM -bFFwUmFmTWVab3Q0NnlMQWRtQW0vejZwZXRidzR5QkdDSEN5Y2hQVEl3Y0lGRwpYWEZsNmFaY0tN -SkVaQ3VtendKM0JjNXJzVUZ6WHJYRE1PQWppUDRzdE5oeEVETG5kQll5bEw4ZmNCdnc0VURkS2pX -SFlsZDducmJLCk55M3RXQ3Z5N0JpTHJORC9VY1IxTlBrZTlPVmxubVpON1dkZTNIWWtKLzJIMHgw -MDcwSGxNc29jLythVjk1QS9RYm9Ldm80MFhxdVIKUkhIcG9WeDlvUTlnRS9KZ09LVmlMVDZiemRH -ZkEvU1VPYzd5eW5zb1Y5OTZaSC9GbzREUEliMWdYelBuL0RsQVpXdHBSYmZtUWg3RAprVzFTVnRM -WUs5U25CeDAyYU02cmRqZ1ZHY3BhblZPbmgvcnQyQWVaQTNZMW92WGR5Q3IvamNnODFHTzgrajFV -b3prcmRqWG5hVXkrCnVkVFpqdVhSeW83THlSNFM5K2xCbCs4MTVXVXJ6VnJiVHo5dU81S1R3eGpJ -b3pUMnczU3hXMUw4M1NtYmh0eklzbGdHdkNWUVBnRVoKTmdwMSt5NEE3c2k1NXQ3SWZsLzMwenpN -dEE0SnRKbklDdlU4ZmJOcDNzNmdGYmNTbmtzekM1bVRkVHJ3c0tjUlpEdUlCMXBvc1pUaApLN3Rh -Ym90WGJxL2x6bE1KNmV1VW4xejZrSG1FbGtQTjhYYzFhR21GOWx3b3lwZVJWZG9meXpoZmRyN0Vv -ajJ2Mm1FMmNnTVBEWTJECkh0K2ZablM0amQwYTRHamd0OGc5ZHEwcHIxSnpYdXdPTmsvTDhuR2U1 -azYwWTVheVl6elBqcW5JM3B0L2liaU9GdC83Zjc5b1h0YXAKdVk5NjI4L1l1TzFrMi9tL3JRSVdN -WENwUDBqdm03LzY2aXJhMjA5ck1GdGNmSVB3aHE5M21YSjMwVVM3K21LMVhJWWsvbkZlblpWRwpp -N3RaYmgyK0dvSE1BVnJrMVpsczlGM2JBWDJ4V3JLNEFOa2piWEtOV3JLMjFkR2VDeTU1MnpLQmJO -UzgxQ3M3RDluZnoxS0czNkc0Clp1MTU1ZFBLOXlBTEhySjZFMEJQekM5SGh1dENMRVlXamxpcTB0 -d3FkcXZJMHp4NkthNjVpbmFzRXpIZXlvNHJrZm1DdHppdmV4RWIKZm1QZUgyM3Fhdkc5aTVhOExL -TFpwZXIyTXpadUI1MlRJUVBXSVp2VVRuTEs5Z2RlVC9NVCs0dVJIcm1zRlhCbHNkbjhYWGQ3cENI -SQpmSWRkTkxybnE5QjNML0loM08rVlQwRytTZHJOY3V2eTFVN2tYejhlNVpVZlpvNC9NOGVxOUsx -ZzREeWFNNUZ2YUU5VXJDVUc3YmtRCnl4bUk3dmxlK2ZISURRVjAyYUE5cjRveURGbUp1aTNqdkNZ -N2ZrSDJ2elNkU1dOZVdGV2FZMkpYVzU3R2FOYlVqbVVSWThjaXBGZHUKanZPeWUzRXVNKzhmUXBm -dkxWcnlNbGJ6Q3VwdlAyUGpkdEE1R1JyV3Z3UHBZcjBFV1NFTDhCNWtqc0FLcDk3WlNFOUcxZHlJ -N0pObAp1N0dIQWhjaFd5ek1SVmFPUVRYNjFpTGZibVlBdnpSbEp5RU9kemZ6cmN0WElKL2h3OGpL -L1VlUVFMb0k2UUd4Z1ZTVnZtMDB1dldICklERjJNUEJwcDA3VnZocU94TTVJODNML0E1SDJYTERr -MlRBTkdTNjZrK2IvalQ2QzVuOEZxc252M1pCWGxqdzdMUHNqOGY3dmpHdG8KOHYxdHlDYmxDMmlz -Rmg2Qi9OZWE5VFQyZ2F4Q2MyenNhc3JUV00yYTJyRVFzWGFFR09NZFFaZnZMUnJ5c29obURlMW5i -TndPT2lmZApoOU1kU0UvYlRtUVY5eExFV1ZzUkJ4eFA4d2F3bzVHNUpsVmd0UUg4QVRnZkdYb2Fo -ZXp6MVkvTVQ3dTlBbjJ1bGhlUWxYNExrVzd2Cm9VZ0FuVWp6a0ZsZHZnSlpSREliQ2FCOXpiazFO -QS9QVmVFcmtFbnpDNUhnN0VHR1U2WlRUVno1V3FZaUt5SjdnSmVac2czbWRSbHcKSC9wekljYUc3 -eU1QZGVjRXJuVzk4M09aTmhUVjNBMTVGV09INVJuZ1QyVFA4ZE1VODl1UkRiMnZBSDVvZm44MGNB -OXdMbzJlbkNvMAp4OFp1M1huYWp1YTYyN0VRN2RqaGNnVHdKUm9MRm05QUhram1vc3YzRmcxNVdV -U3podmF6ajdpNHJUc24yNmJvWEpqL1o1S3Y5bXpTCjUxc1B5ZStKUFowVTQ0bXVwWXpGRHpGc1I1 -N0VFNjFKdnRxelNaOXZQU1MvSi9aMFVvd25Fb2xFSXBGSUpCS0pSQ0tSU0NRU2lVUWkKa1Vna0Vv -bEVJcEZJSkRyTmZ3R2ZvaEMzKzZRWnVBQUFBQUJKUlU1RXJrSmdnZz09Cg== - - $${\left|0\right\rangle } + {\left|3\right\rangle } - {\left|5\right\rangle } + {\left|6\right\rangle } - {\left|9\right\rangle } - {\left|10\right\rangle } + {\left|12\right\rangle } - {\left|15\right\rangle } + {\left|17\right\rangle } - {\left|18\right\rangle } - {\left|20\right\rangle } - {\left|23\right\rangle } + {\left|24\right\rangle } - {\left|27\right\rangle } - {\left|29\right\rangle } - {\left|30\right\rangle }$$ - 10 - - - - - one = Rational(1,4)*(1+M0)*(1+M1)*(1+M2)*(1+M3)*IntQubit(2**5-1, 5); one - - python - 11 - 0 - - - pyout - ⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅⎛1 + Z ⋅X ⋅X ⋅Z ⎞⋅❘31⟩ -⎝ 1 2 3 4⎠ ⎝ 2 3 4 0⎠ ⎝ 3 4 0 1⎠ ⎝ 4 0 1 2⎠ -──────────────────────────────────────────────────────────────────────────── - 4 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWtnQUFBQWlDQVlBQUFDazdpYTZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDdXhKUkVGVQplSnp0bld1c1hGVVpocC9UbnA3U2xrSUxoZHFLRlVxRjFrb3BD -b2hZVVFFYmpLaGdWR3ExdEdCVkloWWJFVlM4aTNoQlFZMmlrSUF4ClNMeWdHSlFpdEJwRlZGSkJG -Qk1wQW9wSzVHSkVMVUlGS1hyODhjM08yYk5tMy9kYXMrZnlQc21rcDN0bWY3Tm12ZStzK2ZhNmJS -QkMKQ0NHRUVKV1pEWXcyWFFnaGhCQkNpRjVnS25BVWNBK3diN05GRVVJSUlZUUl6NlFDcnprSm1B -bnNGN2dzUWdnaGhCQjl4empxUVJKQwpDQ0hFRUZDa0Iwa0lJWVFRWXFoUWdpU0VFRUtJWWVhRXBJ -Tzl0Q3B0RFBnNGNHYVgzL2ZWd0xxYzEvd2JtNHMxWGlEZUNIQWxNTTA1Ci9nWGcrdGJmRndQN3hK -NzdHM0JLdzdFamZOZEhWWnJ5QThnVEx2S0Uzem9JclprODBSM2tpUWxDKzJFTU9CYjR2blA4TU9C -RVlHL2cKZnVCeTRQYzVjWkw4OGkvZ3hjQ1BLNVFOOERjSDZma0p4M1lCdmdzODZpRitXWDZFQ1hj -MnNBTFlDMHNjUjRGenNjKzlybVRNNmNDTApnSjJ0eHlHWVFTUDJBbllBMTJDaTdONGpzYUYrZmF3 -bytYNjk1Z2VRSjF6a0NmK2VDSzJaUEJFZWVXSUNIM1dSNVlsZGdYYzZ4OTRLClhBRHNpYTIyZncv -d0pMQXFKVWFlWDg3TktWOHFJOWdIckx1UzdYamd0TmovbDJBWjRVM0FmZFF6K3VRSzUreU9aWjFM -RTU1YmkzM20KajlRbzAxV3RHQ3VkNDI4RzNsY2picWpZUHVyakZPQU5CZDh2cEI5QW52QVJXNTRJ -NjRtUWZnZ1ZYNTZRSitMNHFvc3NUN2dKMGlqdwpJUERlMkxFeHpBdjNPK2NXOWN2cHdOd0M1V3hq -TGZCbDRKZkFONENOWlFPMFdBNWM1aHpiQlpqUyt2dmJWRGY2VXVEOEN1ZWRCTHcvCjRmZ3h3QlBB -Vnl1V0oySWxabzZyWXNkT0JENVdNMjZvMkw3cVl6TndkTTVyUXZvQjVBbGZzZVdKc0o0STZZZFE4 -ZVVKZVNLT3o3cEkKODRTYklNMENIZ2QrNDd6dUxxd25hMHJzV0ZHL3pBYmVVYUtzWHRsQ2RnOVVI -YU12Qno1YjRieFBZSlVTWnltd0hSdUxIS3RZbm9nUgpiRHgwSnpBUDIzRHpFdHE3TlhzcHRxLzZP -QUM0bSt3cnM1QitBSGxDbnVpa0Z6MFIwZytoNHNzVDhrUWNuM1dSNW9ta0liYjlzT0cxCmlHbFlR -cllsSTM2ZVh6NU1BNHZYanNVS2xrVVRDWkxMUE9EUHdCMTBDbDZWZDJIWitoWEExL0U3TVQ1a2JL -aFhIeGVRc2pLQThINEEKZVVLZTZLUlhQUkZhTTNraUhYbkNmL3k2ZFpIa2lhUUV5ZVVzNE8vQS9o -bXZ5ZlBMRWNETDh3cm9tMHVBVTNOZTAzU0N0Q3R3Sy9CWAovTzRhdmplVzFUNE83T1l4YnVqWWRl -dGpGZFpkbWtSb1A0QThJVTkwMHF1ZUNLbFo2UGp5aER3UngwZGRKSGtpTFVHYTNUcCtSZXVjCnAr -YkVMdUtYODZJL29xNms4UUNQT0M4RmZwWlRxQ2FaREh3VFdJeGxqMy8wR1B0SmJMbGtkRTg3bjRT -SzdhTSs3Z1JlZ28zL3V2UzYKSDBDZWNKRW53bmtpcEI5Q3hwY241SWs0dnVvaXl4TXUvOFMySnpn -SEd6YjhDdGFEVlpYcFdOTFlOZllBL2t2KytHYVRQVWdYWTJWMAp1L1htVTIvY2R4cndMV0FObGpS -ZVd5TldOMlA3cUkvcHdQK3dNZVU0M2ZBRHlCUHlSQ2U5NkltUW1vV09MMC9JRTNGODFVV1NKNG9N -CnNVM0Nodlp1eCs0Zm0wU2VYOVlCenloVVNrOHN3Yks4UElvWS9Ramcwb1RIZDREZnBqeDNSazdN -YUN6MjdRblBmWTMyMmZCbEdNVm0KN3gvVSt2L3RtSG1lWGpGZXQyTDdySTk3c1N1Qk9ENzlBUEpF -TjJMTEUyRThFVkt6MFBIbENYa2lqdSs2Y0QxUkpFRUMyeWh5SEhoTgp5dk41ZnZHMVVyQXdSd0lQ -RkhoZEVhUFBCQTVOZUt6R1JFaDZidCtNZUsvRk10WFBKVHkzUHphdW1jUnM4aWUxZlpIMnJzc3pN -T0hPClMzNDVSMkY3VUp4T2ZoZGgyZGhnK3p1c3dVejJDcEl6K3FyMWNSeWRWNEJnKzA2c2NZNzU5 -QU0wNzRtUXVoWFJyR3BzbHpRTnk5VEgKZ2NCNnJPNm5wN3pQb0h1aUZ6U3JFNytJaGxYYWlhdzJj -OUE5RWFjcHplckVoMno5UXJTWnJpZmNCR2sxOEREdCsyT0I5V0tOQXg5SQppWnZsbDJjRHIwcDVM -aGlMc2NyTEU2N2JRMndyc0xIR3EwbGUxbmNSdHI5RG5HaTg5aDZ5dnp3ZnhmYVZpRE1MMjZYMEFU -cXo2YldZCk1DTlk5K1JmZ0dkNmlnMHdBL2dWdHJ2cEdQQVRiS1ZBbkNyMUFmYUQ4Q0MyUTZ2TGZk -Z21iM0c2NFFmb2ppZEM2bFpFczZxeFhkSTAKTEZNZjY0QXZZWTNvOGRodXZFbm5ETEluZWtHek92 -SFhrYTloMmU5SWtUWnprRDBScHluTjZzVFAweTlVbStsNndrMlF6c2NTSVhjUApxNXRieDQ5TWlB -blpmdmtRRGR4K2JSWlc0T1U1cit0bWduUUE4QkJXbWU0WGNBVDROUEFmT21mM253eThqUFRicmt3 -RlBvOU5HRXZpCk1wSzcvMjZrZlZmVG53TVhlb29OcHNHbDJNb0ZzQy9LdHRqelZldURWbmwrU3Vl -WGZtYXJQSWNubENXMEg2QTduZ2lwVzU1bWRXSzcKSkdsWXBqNUdnVC9SdnBQdTNYVGVIbUxRUGRH -MFpuWGlGOUd3eW5ja3I4MGNkRS9FYVVLek92RWhXNzlRYldhU0o5d0U2VG5BVnRvbgpjdS9UZXI4 -YlNVOFMwL3l5RzdaTlFCdGxzNlhqc0V6eXJoTG5iTWNtVGgwSTNPWTh0d2ZXTmZnMExGdWNDbndQ -dUFYWUJQeTZaUG1LCk1CUGJkbnhQYlArSGFPZk1PZGhWeTFLc29qZGpON0NMYzNsS3pPZGlSbG9K -TE1MS1BwLzJMYzgzQU05ci9YMWg2MzAyWVR1VXUwc2EKSDJQQ1ZIVmpnMm13UHZiNlpVeE16S3RU -SDZ1eFZRdnVsdlcwem4wQ0crT08wMnQrZ09wMUVGSzNMTTE4ZUNJaVNjT3k5YkVRV0VCNwpNckFO -ZUNIV0FFWU11aWVhMUt4dS9BVmthMWoxTzVMV1prWU11aWNpbXRETWgrZlM5QXZSWmtha2VTTE9y -Y0FIc2J0NzNJYk5vOXFJCjdRNStLdGI3R0ZIRUw2OXJmWTQyeWlSSWM3RWxkS3NvbHlBQlhJZDlh -SmVkbUtEYjZLeTRoMHUrUnhuU2JwZnl3OWpmdnlzUjd4L1kKWjd5dTlmOXhPclBVTzdBYitjVjVx -UFZ2ZlB4M0hwWTVSL2ZFcVJzN3p1SFlsK2RPMnE4bXF0VEhJbXlwNkI5U3psMk1aZkk3RXA3cgpO -VDlBdFRyb2htNUptdm1LbmFWaG1mcVlqK2tjMzk3akVXeW9LYzR3ZUFLYTBheHUvQ0lhK200M1lU -ZzgwWlJtUG44N2t2RGRaa1lrCmVlSlJPcE8xemRpdTJRdUJwMkE5Vm84bGxLZUlYNjdGaHZzcWs5 -WTlXSVNqZ2V2cnZIa09Cd09mQ1JqZkphMjd1QzZUc0ZVVnJ3OFEKR3l4VFg0SjlZZHhWSTJXWVRI -dDM1QTEwK3VJaTRFMHA1NGYyQTNUWEV5RjE4NldaU3hFTmkzSVFkc1VmNTByZ2s4NnhZZkZFUDJq -bQpVbFREcXFTMW1ZUHVpWDdXTEk3djM3eXNOalBMRXozSmFtdzIrZzFVRjNjTHRxb2pCR05ZVjJP -M0NKVWduWXR0cisrYlpjQ1pzZisvCkRldjJMTElSVnhJYmdIZGozWmJyc1N2bFR6R3hPdUpnYk9s -c1ZnOWxTRDlBZHowUlFqZmZtcm5rYVZpR1VleEtMRDd1djVuMlpkTEQKNElsKzBzeWxpSVoxU0dv -emg4RVQvYXhaSE4rL2VXbHRaaEZQOUJTTHNHVjhVQzlCZWhabWpoRGJwbmViRUFuU2FWZ0RHOUV4 -WWF3Rwo1MkJqdGhGblkxMldlU3RFMHBpQmpUVkhqM3VCVjJJVDZTWUR2OEFtOW1VeEtINElwWnR2 -elZ5eU5LekN6VXhNRnAyQzNSTXBXczQ4CkxKN29OODFjc2pTc2k5dG1Eb3NuK2xtek9ENS84OUxh -ektLZTZCbDhkdzhlUS9xeTEzNWhCRE9MejN0emJjUWExcXRiajAxMGpndlgKWVFIV2pid0VPQVNi -bFBZV0QzR25ZaE1CdDJOWFNYT3h6L0xHZ3VmM3V4OUM2aFpLTTVja0RhdHdBallKZFE1MmRSaGZm -anNzbnVnMwp6Vnl5Tkt4RFVwczVMSjZJNkRmTjR2ajh6Y3RxTTh0NG9pdmtiZis5QWN1QW8wbGJa -Mkd6djYvQkpsRlY0VkE2VjJYMEMydXh5WmZMCnNQdStiTVhQbmFCUHB2TXE4d2VrVDRDdXdqVGdC -ZGp5MmEzWWxVeGQ1dERlVFJxVjk1WVNNZnJaRDZGMUM2R1pTNUtHWmZTTHN4RGIKYk8wbTJsZktI -Rll5Wmo5N290ODBjMG5Uc0NwcGJlWXdlUUw2UzdNNHZuL3pzdHJNc3A1b25ORGRnMElJSVlRUVBV -ZmFaa29STzdEZQpvMGV3U2RyUjZvd1pnY3NsaEJCQ0NORVlSZSt3RzdKN1VBZ2hoQkJDQ0NHRUVF -SUlJWVFRUWdnaGhCQkNDQ0dFRUVJSUlRYUcvd05RCjQ5a1NqVUMrcFFBQUFBQkpSVTVFcmtKZ2dn -PT0K - - $$\frac{1}{4} \left(1 + Z_{1} X_{2} X_{3} Z_{4}\right) \left(1 + Z_{2} X_{3} X_{4} Z_{0}\right) \left(1 + Z_{3} X_{4} X_{0} Z_{1}\right) \left(1 + Z_{4} X_{0} X_{1} Z_{2}\right) {\left|31\right\rangle }$$ - 11 - - - - - qapply(4*one) - - python - 12 - 0 - - - pyout - -❘1⟩ - ❘2⟩ - ❘4⟩ + ❘7⟩ - ❘8⟩ - ❘11⟩ - ❘13⟩ + ❘14⟩ - ❘16⟩ + ❘19⟩ - ❘21⟩ - ❘22⟩ -+ ❘25⟩ - ❘26⟩ + ❘28⟩ + ❘31⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXJzQUFBQVZDQVlBQUFCRzZpWTFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDcHhKUkVGVQplSnp0blgrc0hVVVZ4eit2cmI2S0xTaS9LcGpHQWhWc2FRdGlW -UkJMUmZrVktoRWFqS0tvdGVnVGY5dG9pb2pJUXd3Z1ZPV0hpS0xFCko2aWdSU2xLZ2hxczEwTHh0 -eUlGSWRwSWFCdWlHRkN3U0JGZjhZK3ptenM3ZC9mZTJmdnV6Snd0ODBsZTl0M1p1WHUvYzNiT25O -MloKMlZsSUpCS0pSQ0tSU0NSMlVDWkgvTzFUZ01lQVJ5TnF5RWxhM05HaVQ0dU9PaVROOFdoaU9a -cW91WXdtbGlOcGprTVR5OUJFeldXawpjaml3c3N1K2R3TmZMRW1mQnB3UlNNdGJnYlhBN2NDdHdB -Y2lhckZaQXl3S29LVU1XOThKd0diZ2g4QjNnR3VBTWVQdmRJLzZUQzNQCkJjNEhMZ2Era3YzMmJD -dC9qSE5XVlpkZDgyblQvRHpnODRpTmIwUjg1QVFyVDh6NmFPSnErNXhRZmpWUnphY0FxNEVyZ004 -Qnh4djcKbW1MN1Z3S1hBcGNqUHZ0UllKS3hYMU5iYjZQQlYxMDF4NHBqTnYyVzRSZElXMzRNc0hl -V1p6M3dlaU9QUnJ1RGJqOTFLVWZNbUZxRwpYUTZYV0dRVDJuY0JHQzFKbTRVVWFCejRjc1gzUGdV -OHk3T1dEd0tYQVR0bG53OEgvZ3RjUmJGQkRxSEY1aVRnYWVBb0s5MkhsakpHCnJjOW5aSHJLL3JZ -ampaUXZmYm1XNXlBWDJpOHk5cjBZMkFBY1lIMG4xRG1iUmUrNjdKcFBpK2JKd0czQS9rYmFoNUh6 -ZktxVk4xWjkKQkhmYm00VDBxOUdTdEZtNGFWNEozSVRVZVlEM0FBOERVNDA4Mm0zL2N1RHZ3RHdq -N1ZyZ2sxWStUVzA5NlBGVlY4MHg0NWpOcVBYWgpWZHQ5RkdQS09QQ2hrdU5yc2p2bzlsT1hjc1NP -cVdXTUd2L1hpVVhRcCsvYUozVlFmQXo0TkREVTR6ZldBQ2Q2MGdCeWhUK0NYTVQ5CkowdGJEMXlD -M0JVc0RxaWxUTnZISy9aTlJNc2hmWDRQWUQra0lqMGJtSUtjdnlIRVRwY0JQeG1Bdmw2OER1bGRm -c0JJK3d0d0hYSUgKYXhMaW5MbldaUzExM2xYTEVjQ3JnV1ZHMm8zWmQwYXN2TEhxbzZ0TlRYejVs -U3V1bXVjZ2dmNGR3Qk5aMm5UZ0VjVDNjclRiL3J2QQpiNEM3amJRMXdEbkF2bGFhbHJaZWk2KzZh -ZzRWeC9xcEwzVzBiUVcrQkh3UE9BdFlpTVFWR3kxMkI5MSs2bHFPVURHMTMzTFVpVVY5Cis2NnZp -OTFWd051Um9hMXUzQVVjNUVrRHdBTGdRS1I3M0dSZHRqVjdmbnhyc1RrVHVMSmkzMFMwMkdXdHd6 -amlFRTlsL3dQc0RId0MKMFp2ajAxYUhBRzlCSE5uV3RvdVZGdUtjdWRabExYWGVWY3RtWUJQd29K -RzJQZHYreThvYnF6NjYydFRFbDErNTRxcDVESmt1Wk5wNgpGZExqc3RWSTAyejcvT2I0ejFiNlBj -aUZ3SEZHbXFhMlhvdXZ1bW9PRmNmNnFTOTF0RzBGM2crY2pBeXAvNkhpbUZyc0RycjkxTFVjCm9X -SnF2K1dvRTR2NjlsMWZGN3QxdUE5NGlhZGpid0cyMGRsVi8zaTIzU09nRnBPREVFZloyQ1ZQS0Mw -bTd5MUpXNFVNU1Q1aHBmdlMKOTB0Z0wrQjZZTThzYlJocElMOVpraitHblNhS0JzMGJrV0V0Yzg3 -VFlkbjJocEw4R2pUM1FxdGYyY3dFWG9IMGlMcWdRWE1aYzdMdAprMWI2L2RuMk5WYTZwcmJlRlEy -YXRjWXgyTEh0cnQxUFhjdWhQYWJXalVXdUZNcWg0V0wzQnVDTm5vNjlDWGdoN2JtbU9mT3o3YThD -CmFzbVpCS3hBSnJsM0k0U1dYaHdCUEIvNGJjaytYL3AraWd4aExBSCtCQ3hIblBSOHloc2REWGFx -aTBiTnV3Rm5BMTlBSGt5MDBhaloKcEVsK2RYQzIvUWN5TFBkWjRHWmtCS1dzVGRhZ3VZdzdzKzEw -SzMydmJEdlRTdGZVMXJ1aVFiUEdPSlpUUjlzUThDN2dRcVFUNVNyZwpaUlhIMVdCMzdYN3FXbzZt -eGRSZXNjaVZRam1tZE1rWWltMjBKMzc3NEovVzV5RmtWWUg3a1RrckliV0F6RUg1QmpLSnZCc2h0 -SFJqCkNIbTYrcXlLL2I3MGpTTlB2bDZMVk5TcmdaOVJmc0h0VTRkUE5HbGVBQ3hGN3ZKdnBYcStx -eWJOWlRURnI2QWRSSmNqRDVoc1FSN1MKYUNIRG8rKzA4bXZRWE1ZVzRJOTA5Z0lkbm0xM3M5STF0 -Zld1YU5Hc0xZNlp1R3FiZ2t4ZCtGcjIrYlhBTGNnRjcyYnJHQnJzM2dRLwpkU2xIVTJLcWF5eHlw -VkFPRFQyN1Ura2NCdlBKNmNnOHM3ZlJudFFkU3NzTVlDNVMwWG9SMmk0Mnh5QkRIaitxMk85VDMz -SElPbm5ICklrTVJSeUpETWZaU0tiNTErRUtUNXJ1UUoyUG4wWjRDc0c5SlBrMmFiWnJrVnlEejRF -SG14Mi9KL2g5SExnS1dJVU9uSmhvMFY3RVUKNlVrNk52czhrM2I5c2RlNTFOVFd1NkpWYzh3NDFv -c3FiWXVBM3htZjF5SXJlWlF0SDZYQjdrMzAweXJiTnlHbXVzWWlWd3JsMEhDeAplekt5ZmwwSUZn -RG5JZXUzclkrZzVXemdNNDU1UTlxbGpQY2hkOTMvcTlqdlM5OUp5RHFkSThqcUR3Y2p3eTB6Z0I4 -RTFPRVRyWm92CkFIWUhmb3owRUpobzFRek44aXVRWll1Z1BRMGdKKy9kV21LbGE5QmN4VitSb0Q4 -UEdYWmNDbncxMjNlM2xWZFRXKytLUnMyeDQxZzMKdW1uYjNwbWRCNUhwY2pIYm15ck5UZlBUcW5J -ME1hWjJpMFd1Rk1waFRtT1lqOHloY1Qzd25jaGR4RVNaUzNHU3RDOGRNNEJ2SXdabwpSZEJ5RkhM -bjhwRGpzV3d0SnRPUWJ2NnBKZnRtMCttY0lGMzZpM0c3WXhzR2prYVdpWEhWTnloYmpTQVhMbm5E -K0NReWxXSURNaXd6Cm0rSURTR1YyaWxXWFhkR2dlVHJTNk4xbXBEMk8ySFkrOGdTdjJRc1RzejUy -WXhCK0ZkcjJtN0t0UFFTWlAxaGl6M1hWYXZ1Y0J5ak8KbGM1N1l6WlkrVFMxOWE1bzA5eFBIRFB4 -V1YrNmFic0k2VjFjU0hHcTBURHlRb0U5a1Y3ZW5GQisyazF6ay95MFd6a0dFVk56ZkpTagpiaXh5 -cFZBTzgySjNBKzBuNEVLeEFKbnpaZUpEeDA1SVJSZ0I3akRTbHlGTGk0VFFzZ1FKQXVhYlYyWmsy -M09SdDU2Y0NkeGJvY1ZrCkszQm94YjRXblU5QjErVlFaSzdMWXhYN2ZkbHFFcUs5YkZXSTY1R0hH -c3lIWWFyc0ZLTXV1NkpGODAzSVVOYXB3TGVNOUh5T2s3a2cKZCt6NjJJMUIrRlZvMjY5RkZ0WGYz -VXJQQTRpcFViUHRxMWlNWE5EY2JLUnBhdXRkMGFhNTN6aG00cXUrOU5LMkVHbTdKMXZmbTQ5YwpW -Sm9YdXFIOHRKZm1wdmhwdDNKY3cyQmlhbzZQY3RTSlJhNTBsQ1AyTklZVGdlOTcvbzFKeUN2b3px -VllFZmFtT0IvRXQ1WVZ3QnV5CjM4bi9yc2oyblpOOXZqZVFsbDdrODNpcUxuWjk2ZHVPM04wdEt0 -bDNZTGJmWEpzeHRwMzZRWXZtaDVFaFJIT29lVmZrM0Q4RS9OcEkKMTZLNWpDYjVWYzdma0NlbFgy -cWxINEFFVjNQdXNSYk5WVnlOWEJTWXZBbnB5VFBYMzlYVTFydWlTYk9XT0ZhR2k3WVc0cWZtRXBh -egprRGJuRnV0NFd1emVCRC90Vlk0bXhOUTZzY2lWam5MNFhvMWgxMnhidHRiZU5LUmIreW5QR2k1 -R3VzRkhLTDZOWXgvYXcvU2h0TmpzCmJHMWphakhKMStMN2Q4ayszL291UUp6M0h1RDNXZG9Ma0dF -WTg5V1NvZTNVclM2NzV0T2tPWC94UXI0bTZqRFNBN29OZVIxbVB1U2wKb1Q2NjJqNUhnMS8xMG53 -YUVpd3ZRbnEyaHBIZWw1WEl0QXhvaHUwZnBYaFQvQkhrWlJQbTI0czB0ZlVtR256VlZiUG1PT2Fp -N1VyawpiV2tya0l0SWtQcCtCN0tzVjQ0MnUydjNVNWR5YUkycE9hNnh5Q1NhNzY2d1BpOUg3b2dl -b2YwZTdJM0F6NUg1T1FCdlJ1N3NmR3BaClRQRmQzUFpmdnNaZkNDMG1od0czSXlmemFTUllyRVB1 -WkNhcXBWVWpiNVcrNDVHblQrZVU3QXRocS8yUnVUYXJrYlh5VnRONVp4cnEKbkxuVVpkZDgyalRQ -QmI2TzJIb2Q4dXJYVjFuSGlsa2ZYY3VSNDlPdmZHZytFckg5ZGNpeWFhZForNXRnK3oyUW52U3g3 -UGZHNkF4QQptdHA2ME9PcnJwcER4YkdXWTc1KzdiNFBzdkxDR0xLaXdYa1ViMGhCbDkxenRQcHBu -WEtFaUttdEdubnQ5c1lsRmtGYzMwMG9veFZiClFDSmgwSW90NEJsTUs3YUFSS05veFJid0RLVVZX -OENBYU1VVzBJM1ljM1lUZzhmMXFmUkVJZ1NwUHNZajJUNVJoMVJmNHJDajJIMUgKS1VjaWtVZ2tF -b2xFSXBGSUpCS0pSQ0tSU0NRU2lVUWlrVWdrRW9tRVQvNFBkL09JMzdra2NxUUFBQUFBU1VWT1JL -NUNZSUk9Cg== - - $$- {\left|1\right\rangle } - {\left|2\right\rangle } - {\left|4\right\rangle } + {\left|7\right\rangle } - {\left|8\right\rangle } - {\left|11\right\rangle } - {\left|13\right\rangle } + {\left|14\right\rangle } - {\left|16\right\rangle } + {\left|19\right\rangle } - {\left|21\right\rangle } - {\left|22\right\rangle } + {\left|25\right\rangle } - {\left|26\right\rangle } + {\left|28\right\rangle } + {\left|31\right\rangle }$$ - 12 - - - - - <h2>The encoding circuit</h2> - - - encoding_circuit = H(3)*H(4)*CNOT(2,0)*CNOT(3,0)*CNOT(4,0)*H(1)*H(4)*\ - CNOT(2,1)*CNOT(4,1)*H(2)*CNOT(3,2)*CNOT(4,2)*H(3)*\ - H(4)*CNOT(4, 3)*Z(4)*H(4)*Z(4) - - python - 13 - 1 - - - - circuit_plot(encoding_circuit, nqubits=5, scale=0.5) - python - 14 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x38a6950&gt; - 14 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWhjQUFBQ2xDQVlBQUFEdlJOOGZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYdFlW -Tlg2Qi9EdkJ0R0UwQmdGMDBSQ1RVRzhwQW5lVUxDVHFDaWllTWZqCnRRakZNdE51SHF0VEJ3dVBw -enBwQmw1UnBERHhHbG9hWHNBTFJpQW01VEcxSjFQd2dpQWdvaUFnczM1LzlPZ3ZZd1ptaGoyelo0 -YnYKNTNuNFE5YXM5YTY5WisvRjYxNXI3eTBKSVFTSWlJaUlaR0tqZEFlSWlJakl1akM1SUNJaUls -a3h1U0FpSWlKWk1ia2dJaUlpV1RHNQpJQ0lpSWxreHVTQWlJaUpaTWJrZ0lpSWlXVEc1SUNJaUls -a3BrbHlvVkNwSWtpVHJqMHFsTWxtc3V1S2FjdnRNU1lsOVNXU3VlRDZRCnJocmlzU0lwOFlST1Na -SWdkMWh0YlJvalZsM3RtM0w3VEVtSmZVbGtybmcra0s0YTRySENhUkVpSWlLU0ZaTUxJaUlpa2hX -VEN5SWkKSXBLVjJTVVgrZm41YU55NE1XeHNiTkM0Y1dOMDZ0UUpBUUVCR0Q1OE9JWVBINDRXTFZy -QXhzWUdPM2Z1ckZlY2tKQVFlSHA2UG9qVApzMmRQaEllSEF3QXVYYnFFWjU5OUZtM2J0b1dOalEy -YU4yOE9IeDhmUkVkSFc4ejJtWnBTKzVQSTNQQmNJSDFZN2ZFaUZGQmIyTmpZCldOR2tTUk94WXNV -S2NlL2V2WWZLZHU3Y0tXeHRiY1Vycjd5aWM1dTF4VXBQVHhlU0pJbjU4K2RyTEkrS2loS1NKSW5F -eEVTdGJXaHEKMzVUYlowcDE5YUcrKzlNY3RwRklWMHFNTFdTWkd1TFkyVWlabEVhN2I3NzVCanQy -N0VCZ1lPQkR2Ly9oaHg4UUdocUtvS0FnZlBycApwN0xFT25Ma0NBRFVpSFZmU2tvS2JHMXRFUkFR -SUVzOHdMVGJaMnBLN0U4aWM4UnpnZlJobGNlTEVobU50ckFWRlJYQzM5Ky94dTkvCisrMDM0ZUxp -SW54OGZFUjVlYmxlYmRhMmlTTkdqQkJObWpRUlpXVmxOY29xS3l1Rmc0T0Q2Tm16cDliNjJ0bzM1 -ZmFaVWwxOXFPLysKTklkdEpOS1ZFbU1MV2FhR09IYWExWnFMNjlldjQrMjMzMzdvZDBWRlJRZ01E -SVNEZ3dQMjdObURSeDU1UkpaWWFyVWFhV2xwOFBiMgpSdE9tVFd1VVoyWm1vcXlzRElNR0RaSWxI -bURhN2Z1cmhJUUVUSnc0RVR0MjdEQksrMHJzVDZYY3ZYc1hiNy85TnFaUG40NnpaODhxCjNSMkxk -K0hDQmN5Y09STnZ2UEVHN3R5NW8zUjM2cTBoblF1QThjY1dhMmV0eDR0WlRZdTR1cnJDMWRYMXdi -OHJLaW93ZXZSb0ZCUVUKSUMwdERjN096ckxGeXM3T1JrbEpDZno5L1RXV3A2U2tBQUQ4L1B4a2ky -bks3ZnV6dzRjUEl5d3NER1ZsWmRpelp3L2MzTnp3ekRQUAp5QnBEaWYycGxEZmZmQk5yMXF4QlJV -VUZ2djMyVzF5L2ZoMDJObWFWcDFzVWYzOS9YTGx5QlhaMmRzalB6OGZHalJ1VjdsSzlOS1J6CndS -UmppN1d6MXVORjcrUkNraVJqOUtNR0lRUm16cHlKakl3TTdOdTNEeDRlSG5YVzBhZHY5K2U0a3BP -VGNlTEVpUnJsbVptWmtDUkoKcDJ6UmtIMWk3TzNUcHF5c0RMMTc5NjUzTzM4bDEvNDAxZkVsbHhz -M2JzRFcxbGJwYmxpRmlvb0t4TVhGSVM0dVR1bXUxSXZTWTR0UwpqRFcyV0R1ckhUdVZtSXZSSmV4 -YmI3MGxKRWtTOGZIeDlXcFQyKy9IakJrajdPenN4SjA3ZDJxVTNidDNUOWpiMndzdkx5K0Q0cHB5 -CiszUlJWRlFrM04zZEJRRGg0ZUVoU2t0TERXcW50ajdJc1Q4Vk9oejFkdmp3WVdGdmJ5OEFpSmRl -ZWtucDdsaThSWXNXaVNaTm1nZ0EKWXUvZXZVcDNSMmRLakMzbVJxNnh4ZG8xeExIVExKT0wxYXRY -QzBtU3hMLys5YStIZmw5ZVhpNE9IVHFrVjV1YWZxOVdxMFhMbGkxRgo3OTY5TmRiNTRZY2ZoQ1JK -WXM2Y09iWDJVMXY3cHR3K1hWVldWZ29BTlc1LzFZZTJQc2kxUDgzeEJOSG0xcTFiRnRWZmM1ZVhs -MmR4CisxT0pzY1VjeVRHMldMdUdPSGFhM1VUeHZuMzdNSGZ1WE15WU1RUHZ2UFBPUTJVSkNRa29L -U21wZDR3elo4NmdzTEFRQXdjTzFGaCsKN05neEFNYVo0ekxGOW1saVoyY0hBRWE1aEsvay9sU0tv -Nk9qMGwyd0txMWF0Vks2QzdKb2lPZUNNY2NXYTJmTng0dFpMZWc4ZGVvVQpKa3lZQUg5L2Y2eGR1 -N1pHK1lZTkc1Q2NuRnp2T1BmbnVIeDlmVFdXcDZXbEFZRHNxM05OdFgybXB0VCtKREkzUEJkSUg5 -Wjh2SmpOCmxZdkxseTlqeElnUmNITnp3NDRkTzJwa3dRa0pDVkNwVkJwdjFkSFg0Y09ISVVsU3JW -OW94NDRkMGJwMTYzckh1cytVMjJkcVN1eFAKSW5QRWM0SDBZYzNIaTFra0Y3ZHUzVUpnWUNDRUVQ -am1tMjhldXVSODllcFZMRjI2RkZPblRrVndjSEM5WTFWVVZDQTFOUlh0MjdlSAppNHRMamZMczdH -ems1K2Rqd0lBQjlZNTFueW0zejlTVTJKOUU1b2puQXVuRDZvOFhKUlo2L0RYc3pKa3poWTJOalhC -MWRSVjkrL1lWCmZmdjJGYjE2OVJMTm16Y1hraVFKU1pKRWt5Wk5SSDUrdnM1dC92WDNseTVkRW9N -R0RSTHU3dTdDeHNaR05HN2NXQXdZTUVERXhNUUkKSVlSSVNrb1MvZnIxRTg3T3pzTEd4a2FvVkNy -aDUrY24wdExTOU5vV1UyK2ZQdXJieHAvckcyTi9LblE0R3N6UyttdnVMRzEvS2pHMgptQ3RMNnFz -U0d1TFlLUWtoaEtrVEdrbVNJSGRZYlcwYUkxWmQ3WnR5KzB6WmhoTDcwcHhaV24vTm5hWHRUNTRQ -LzgrUytxcUVobmlzCm1NVzBDQkVSRVZrUEpoZEVSRVFrSzhWdVJaWDdVYVZPVGs0bWk2VkxYRk51 -bnlrcHNTK0p6QlhQQjlKVlF6dFdGRWt1VERrM3BNUTgKbExuTmZjbkZXcmVMeUJBOEgwaFhEZkZZ -NGJRSUVSRVJ5WXJKQlJFUkVjbUt5UVVSRVJISmlza0ZFUkVSeVlySkJaa3RsVW9GU1pLTQo5cU5T -cVpUZVJDSWkyWm5EMktuSUV6cEpHZWI0RkxmYW1QdFQ3U3h0ZjVvNzdrL0x4ZS9PdkpqRDJHbFdy -MXduK2VYazVHRDkrdlU0CmUvWXNBR0RTcEVudzh2TEM4ODgvanpadDJpamNPeUlpc2thY0ZyRlN4 -NDhmUjNCd01IcjI3SW1iTjI5aXpKZ3hBSURnNEdCY3UzWU4KWGJ0Mnhmang0M0hpeEFtRmUwcEVS -TmFHMHlKV2FQMzY5Vmk4ZURFaUl5TVJHaG9LQndjSEFBOWZ5aW90TGNXbVRadncvdnZ2WThXSwpG -WmcwYVpLU1hkYklIQzd0R2JNK1BZejcwM0x4dXpNdjVqQjI4c3FGbFVsSVNNRDc3NytQSTBlT0lD -d3M3RUZpOFZlT2pvNllPM2N1CkRoNDhpQVVMRmlBcEtjbkVQYTJma0pBUWVIcDZ3c2JHQm8wYk4w -YlBuajBSSGg0T0FMaDA2UktlZmZaWnRHM2JGalkyTm1qZXZEbDgKZkh3UUhSMnRjSytKaUpSbHNy -SFRPRzl5SnlWY3ZueFpxRlFxOGZQUFAyc3MxL1oxWjJSa0NKVktKUW9MQzQzWlBiM1ZkWGltcDZj -TApTWkxFL1Buek5aWkhSVVVKU1pKRVltS2lRZTNYdDMra0grNVB5OFh2enJ5WXc5akpLeGRXWk8z -YXRaZzBhUks2ZHUycVZ6MXZiMjhFCkJnWmk0OGFOeHVtWWtSdzVjZ1FBRUJnWXFMRThKU1VGdHJh -MkNBZ0lNR1czaUlqTW1pbkdUcTY1c0JKVlZWVjQ4c2tuOGQxMzMybE4KTG1xYkovdisrKzh4YmRv -MG5EdDNEalkyNXBGejFqV3ZOM0xrU0J3NGNBREZ4Y1ZvMnJUcFEyVlZWVlZ3Y25KQ3AwNmRjUExr -U1lQYQpyMi8vU0QvY241YUwzNTE1TVlleDB6eitpbEM5SFRseUJLNnVybnBmdGJpdmI5KythTnk0 -c2NYY1BhSldxNUdXbGdadmIrOGFKd2NBClpHWm1vcXlzRElNR0RWS2dkL0xLeTh2RDJMRmpFUkFR -Z0RObnppamRIU0xGVkZkWFk5R2lSZWpYcng4MmI5NnNkSGNza3FuR1RqN24Kd2twY3UzWU43ZHUz -TjdpK0pFbHdkM2RIWGw2ZWpMMHludXpzYkpTVWxNRGYzMTlqZVVwS0NnREF6OC9QaEwweWpxbFRw -eUlsSlFWcQp0UnFCZ1lHNGVQR2kwbDBpVWtSY1hCeFdyRmlCc3JJeVpHZG5vM2Z2M25qcXFhZVU3 -cFpGTWRYWXFmZTBpQ1JKOVFwSXBBOXRoK2Z5CjVjdng2cXV2d3R2YlcrT2phRE16TTFGY1hJejgv -SHkwYU5GQ1l4czhsb25JV2lrK2R0YTU1Sk1zd3E1ZHU4U3dZY05xL1V4ZFgvZUEKQVFQRXdZTUg1 -ZXhXdmRUVzN6Rmp4Z2c3T3p0eDU4NmRHbVgzN3QwVDl2YjJ3c3ZMeStEMjY5cy9PUjA2ZEVnNE9E -Z0lBQ0kyTnRZawpNWlhBNGNoeW1lcTdLeWdvRUowNmRSSUF4TGh4NDBSMWRiVko0bG9hY3hnN3Vl -YkNTdmo2K2lJOVBSMDNidHd3cUg1dWJpNSsrZVVYCitQajR5Tnd6K1FraGNQVG9VZlRvMFFQMjl2 -WTF5ck95c2xCZVhtNFY2eTBBWVBEZ3diaDE2eFlBWU9iTW1RcjNoa2c1TFZ1MnhMbHoKNXdBQVc3 -ZHVOWnZGNTViQ2xHTW52eGtyMGFKRkN3UUhCMlBEaGcwRzFWK3paZzJtVEptQ1J4OTlWT2FleWUv -TW1UTW9MQ3pFd0lFRApOWllmTzNZTWdIV3N0N2lQZ3lnUjFaY3B4MDZPV0ZZa0lpSUNuMy8rT1c3 -ZnZxMVh2ZUxpWXF4YnR3NXo1c3d4VXMva2RmOGViVjlmClg0M2xhV2xwQUdBMVZ5NklpT1JneXJH -VHlZVVY4ZmIyeHBBaFF6Qmh3Z1JVVkZUb1ZLZXNyQXhqeG96QjVNbVQ0ZW5wYWVRZXl1UHcKNGNP -UUpLbldFNlJqeDQ1bzNicTFpWHRHUkdTK1REbDJNcm13SXBJa0lUbzZHdmIyOWhnMmJCZ3VYNzVj -NitkLy8vMTNQUHZzczNCegpjOE5ISDMxa29sN1dUMFZGQlZKVFU5RytmWHU0dUxqVUtNL096a1or -Zmo0R0RCaWdRTytJaU15VHFjZE9KaGRXeHM3T0RsdTJiTUhBCmdRUFJ2WHQzaElTRTRNQ0JBdytt -U2twTFM3RjM3MTRFQlFYQjI5c2J3Y0hCMkxoeG85blA2ZWZrNU1EUHp3K2VucDRvS0NoQVRrNE8K -ZkgxOXNXclZLZ0RBN3QyNzBiOS9md3daTWdTU0pDRXBLUW4rL3Y0NGZ2eTR3ajBuSWxLT1VtTW5I -Lzl0eFc3ZnZvMHZ2L3dTcTFldgp4cmx6NTFCV1ZnWUhCd2Q0ZVhsaDl1elptRGh4b3NZVncrYkNI -RjRiYk16NjVoN1AxS3g5KzZ3Wnp3WHpZZzVqSjVPTEJzVFNUa2h6Ck9FR01XZC9jNDVtYXRXK2ZO -ZU81WUY3TVlldzA3MnZoSkN1ZWpFUkVaQXA4dHdpWk5XTStvdHZKeWNsb2JSTVJLVW5wc1pQSkJa -a3QKWG1raEl0S2ZPWXlkbkJZaElpSWlXVEc1SUNJaUlsa3h1U0FpSWlKWk1ia2dJaUlpV1RHNUlH -b2dWQ29WSkVreTJvOUtwVko2RTRuSQpUUEFoV2tRR3NyUUhCNW5EZzNXTVdaK1VZMm5uQWhrZnIx -d1E2YWlxcWdwYnQyNUZTRWdJK3ZYckJ3QjQ3cm5uOE9HSEh5SS9QMS8yCmVPWGw1WWlMaTBOUVVC -RDY5T2tEQUJnNmRDaVdMMStPbXpkdnloNlBpRWd1VEM2STZsQlZWWVhJeUVpNHVibGg1Y3FWR0Qx -Nk5ENysKK0dNQXdNS0ZDM0hod2dWMDd0d1pvYUdoK08yMzMrb2Q3ODZkTzNqampUZlFybDA3Yk5t -eUJWT25Uc1h5NWNzQkFIUG56a1Y2ZWpyYwozZDBSRmhhR3ZMeThlc2NqSXBJYnAwV0lhbEZhV29x -UWtCRFkyZGxoMmJKbDZOcTE2NE95UDErYUxTNHVSblIwTkZhdVhJbXZ2LzRhClBqNCtCc1hMejg5 -SFlHQWdPblhxaE1qSVNIVG8wRUZqdkx5OFBIejg4Y2ZZdG0wYjl1N2RDdzhQanpyYjFuWXBPU1Fr -QkwvODhndk8KblR1SFJvMGF3Y3ZMQ3o0K1BsaTllalV1WGJxRW1UTm40dno1ODdoNjlTb2NIUjNS -dVhObnpKZ3hBeEVSRVRxMXJ5dGU2clpjbkJhaApHZ1FSYVZSWldTbUdEaDBxWnM2Y0tlN2R1MWVq -WE5QcDgvWFhYNHRXclZxSnMyZlA2aDN2OXUzYm9uZnYzdUt0dDk0U2FyVmFwM2pyCjFxMFQ3ZHEx -RTFldVhLbXovZHBPOS9UMGRDRkprcGcvZjc3RzhxaW9LQ0ZKa2toTVREU29mVjF3T0xKY3B2N3Vl -S3lZUHo3K20waUwKVmF0V29hcXFDbXZXcklHdHJhMU9kVWFOR29XclY2OWl4b3daK1A3NzcvV0t0 -MlRKRW5UczJCRWZmdmloenU4RmVQNzU1NUdUazRPWApYMzRaMjdkdjF5dmVueDA1Y2dRQUVCZ1lx -TEU4SlNVRnRyYTJDQWdJTURnR0VUVWNuQlloMGtBSUFVOVBUNnhac3dhREJnM1MrQmx0CmwyYnYz -YnVIOXUzYlk5ZXVYZWpWcTVkTzhlN2V2WXQyN2RyaDJMRmo2TlNwazE3eFNrdEw0ZWJtaHA5Kytn -bHQyN2JWR3FPMlM4a2oKUjQ3RWdRTUhVRnhjaktaTm16NVVWbFZWQlNjbkozVHExQWtuVDU0MHFI -MWQ4RkszNWVLMENQMFZGM1FTYVpDU2tvSkdqUnBoNE1DQgpldGR0MUtnUndzUERFUk1UbzNPZGJk -dTI0ZW1ubjlhYVdOVEcwZEVSa3lkUHh0cTFhL1d1Q3dCcXRScHBhV253OXZhdWtWZ0FRR1ptCkpz -ckt5clFtV1VSRWY4WGtna2lEN2R1M1kvcjA2UWEvdG5qNjlPbDZUVlBzMkxFRDA2ZFBOeWlXSWZI -K0xEczdHeVVsSmZEMzk5ZFkKbnBLU0FnRHc4L016dEh0bVpmdjI3WGpxcWFjd2JOZ3dGQllXS3Qw -ZE1tTzNidDFDVUZBUU9uVG9nRTJiTmluZEhZdkNOUmRFR2hRVQpGTlRyZitwdDJyVEJyVnUzVUYx -ZHJkTjZqWUtDQXJpNnVob2NyMTI3ZGlnb0tEQ283djMxRnNuSnlUaHg0a1NOOHN6TVRFaVNaQlZY -CkxrcExTekZseWhSVVZGVGcwcVZMV0xSb0VkYXNXYU4wdDhoTUxWbXlCTW5KeWFpc3JFUjRlRGlH -RFJzR0Z4Y1hwYnRsRWZSZWMySG8KLytTSVNIbWFUdmVRa0JEczJiTUhOMi9laEwyOS9VTmwxZFhW -YU5hc0dkemQzWEg2OU9sYTIrYllRRVQzNlQwdElvVGdEMytzL2ljOApQQnlmZnZwcHJaK3A3WHk0 -ZnYwNkhCMGRkWTRYRkJTRXhNUkVnK1A5K09PUDZOeTVjNTMxTlozUFI0OGVSWThlUFdva0ZnQ1Fs -WldGCjh2SnluYTlhMUdlZm0ycDgrZXl6ejlDOGVYTUFRRTVPanVMSG1qWDhtUHB2ZzZuaTVlWGxQ -VmlVdlhUcFVzWDNzeVg5Y00wRmtRWWoKUjQ1RVFrS0N3ZlVURWhJUUZCUmt0dkh1TzNQbURBb0xD -N1V1WEQxMjdCZ0E2MWx2QVFBdnZmVFNnOGVuMTJjcWlxeGZxMWF0a0pXVgpCUUI0ODgwM0ZlNk5a -V0Z5UWFUQjhPSERjZjM2ZFkxckVPcWlWcXNSSFIxZDR3bVd0UWtORGNXUkkwZVFtNXVyZDd6eThu -SnMyTEFCCnMyZlAxcnZ1L2ZVV3ZyNitHc3ZUMHRJQXdDcldXeENSNlRDNUlOTEExdFlXczJmUHhn -Y2ZmUERnTXF5dXRtM2JocVpObTZKLy8vNDYKMTNuMDBVY3haY29VUkVWRjZkdFZyRjY5R3M4ODg4 -eERqd3JYMWVIRGh5RkpVcTNKUmNlT0hkRzZkV3U5MnlhaWhvdkpCWkVXOCtiTgp3N1ZyMTdCbzBT -S2RFNHkwdERUTW5Uc1hhOWV1MVh1QjR6Ly8rVThjUEhqd3dVdktkTEY3OTI0c1hib1VLMWFzMENz -V0FGUlVWQ0ExCk5SWHQyN2ZYdUFJK096c2IrZm41R0RCZ2dONXRFMUhEeHVTQ1NBdDdlM3ZzM3Iw -YisvZnZ4NnhaczJwOUEybGxaU1ZpWTJNeGV2Um8KZlBIRkZ3YTl1S3hGaXhiWXQyOGZWcTVjaVlV -TEY2S29xRWpyWjh2S3l2REpKNThnTEN3TVNVbEplajE4S3ljbkIzNStmdkQwOUVSQgpRUUZ5Y25M -ZzYrdUxWYXRXQWZnalllbmZ2eitHREJrQ1NaS1FsSlFFZjM5L0hEOStYTzl0SXFLR2lZLy9KcXJE -N2R1MzhmcnJyK09yCnI3N0MwS0ZEOGNJTEw2QkRodzVvMzc0OWZ2enhSMnpmdmgzcjFxMkRoNGNI -UHY3NFk1MGYrYTFOUVVFQkZpeFlnTjI3ZDJQczJMR1kKTVdNR1hGMWQ0ZTd1am95TURHemV2Qm1i -Tm0xQ256NTk4T21ubitLcHA1N1NxVjFqUHpMWjBoNy96VWRJeThmYXZ6c2VLL3BqY2tHawpvNXMz -YjJMVHBrMUlTRWhBWGw0ZUxsMjZoQzVkdW1EdzRNR0lpSWhBbHk1ZFpJMlhuNStQMk5oWWJOMjZG -UVVGQmNqTnpVVzNidDBRCkdCaUk4UEJ3dUx1NzY5VWVrd3RsNDFremEvL3VlS3pvajhrRlVRUEI1 -RUxaZU5iTTJyODdIaXY2NDVvTElpSWlraFhmTFVMVWdCanoKRWQxT1RrNUdhNXVJTEF1VEM2SUdn -cGQxaWNoVU9DMUNSRVJFc21KeVFVUkVSTEppY2tGRVJFU3lZbkpCUkVSRXNtSnlRVVJrQVZRcQpG -U1JKTXRxUFNxVlNlaFBKaXZBaFdrUmtGdmhncE5xWjgwUFFyUDI3czdSanhSend5Z1VSS2VMOCtm -TllzR0FCdW5idGlqWnQyZ0FBCnZMMjk4ZEZISDZHd3NGRDJlTm5aMlFnUEQ0ZW5wK2VEVjhqMzc5 -OGZNVEV4S0MwdGxUMGVVVVBHNUlLSVRPcjA2ZE1JQ0FpQXI2OHYKbWpScGd2ajRlR1JrWkFBQS92 -T2YvK0NubjM1Q2h3NGRNR3ZXTE55OGViUGU4WTRmUDQ0QkF3Wmd4SWdSYU51MkxiWnMyWUlUSjA0 -QQorT00xOXdjT0hJQ2JteHZtejUrUDh2THllc2NqSWdDQ2lNaEVVbE5UaGJPenM0aU9qaFozNzk1 -OXFPelB3MUYrZnI2WU0yZU84UEx5CkVsZXVYREU0M280ZE8wVExsaTNGbDE5K0thcXFxclRHeTgz -TkZSTW5UaFQ5K3ZVVHhjWEZCc2N6Sm0zRDlaZ3hZNFNIaDRlUUpFblkKMmRtSnA1OStXcno0NG90 -Q0NDRXVYcndvQmc4ZUxKNTQ0Z2toU1pKbzFxeVo4UGIyRnA5Ly9ybk83ZGVuYjhaaTdmR3NBZmNZ -RVpsRQpkbmEyY0haMkZ2djM3OWRZL3RjQlhLMVdpOGpJU05HOWUzZFJVbEtpZDd6N2lVeFdWcFpP -OGFxcnE4WGN1WE9Gdjc5L2pjVEhITlQyCkJ5NDlQVjFJa2lUbXo1K3ZzVHdxS2twSWtpUVNFeE1O -YXI4K2ZUTUdhNDluRFRndFFrUW1NV2ZPSEVSRlJlRzU1NTdUNmZPU0pHSHgKNHNYbzNyMDcvdjN2 -ZitzVlM2MVdZOWFzV1lpTGkwT3ZYcjEwcW1Oalk0UGx5NWZEenM0TzY5YXQweXVlMG80Y09RSUFD -QXdNMUZpZQprcElDVzF0YkJBUUVtTEpiMUlBeHVTQWlvenQxNmhSeWNuSXdmZnAwdmVyZFR6RFdy -MStQeXNwS25lc2xKeWZEeWNrSnc0WU4weXVlCnJhMHQvdkdQZnlBbUpzYWk3ZzQ0ZlBnd0dqZHVE -RjlmM3hwbFZWVlZTRXRMUTdkdTNkQzhlWE1GZWtjTkVaTUxJaks2bUpnWWhJZUgKbzFFai9kK1Y2 -T0hoQVM4dkwrellzVVBuT3RIUjBZaUlpRERvTGJCK2ZuNVFxOVU0ZXZTbzNuV1ZvRmFya1phV0Jt -OXZielJ0MnJSRwplV1ptSnNyS3lqQm8wQ0FGZWtjTkZaTUxJaks2UFh2MklEUTAxT0Q2b2FHaDJM -MTd0MDZmcmE2dXh0NjllekZwMGlTRFlrbVNwRmM4CnBXVm5aNk9rcEFUKy92NGF5MU5TVWdEOGtU -UVJtUXBmdVU1RVJsZFlXSWpISDMvYzRQcVBQLzQ0aW9xS2RQcHNTVWtKSEJ3Y1lHOXYKWDY5NEZ5 -NWNNTGkrS2QxZmI1R2NuUHpnRnRzL3k4ek1oQ1JKdkhKQkpxWDNFem9OdWN4SVJFVDFwMm00RGdr -SndaNDllM0R6NXMwYQpDVlYxZFRXYU5Xc0dkM2QzbkQ1OXV0YTJPYmFUblBTK2NtRkppNXlJeUR5 -NHVibmh1KysrZzRlSGg5YlAxUGFJNVppWUdLU25weU11CkxxN09XR3ExR3ZiMjlyaCsvWHF0Q3ho -cmkvZnV1Kytpc3JJU1M1Y3VyVE9lcVdqNjR5K0V3TkdqUjlHalJ3K05WMnF5c3JKUVhsNnUKODFV -TFE4ZDNhMzhjTngvL3JUK3V1U0Fpb3dzSkNkRXBNZEFtTGk0T1k4ZU8xZW16TmpZMkdEMTZORFp0 -Mm1SUXJPcnFhc1RIeDJQYwp1SEVHMVRlbE0yZk9vTEN3RUFNSER0UllmdXpZTVFCY2IwR214K1ND -aUl4dTl1elppSTJOUlVWRmhkNTFzN0t5Y08zYU5Zd1lNVUxuCk9oRVJFWWlPampib2Y1djc5dTJE -czdNemV2ZnVyWGRkVTd1LzNrTFRMYWdBa0phV0JnQmNiMEVteCtTQ2lJeXVjK2ZPNk5HakJ6NzcK -N0RPOTZxblZhcnozM25zSUR3K0hyYTJ0enZVR0Rod0lPenM3Yk42OFdhOTRGUlVWV0xKa0NTSWlJ -dlNxcDVURGh3OURrcVJhazR1TwpIVHMrZUZFYmthbndiaEVpTW9uVnExZGp3SUFCYU51MnJVNjNp -YXJWYXN5Yk53K2xwYVZZdUhDaFhyRWtTY0ttVFpzUUVCQUFGeGNYCm5aNEtXbGxaaVduVHB1R0pK -NTdBdEduVDlJcW5oSXFLQ3FTbXBxSjkrL1p3Y1hHcFVaNmRuWTM4L0h3TUh6NWNnZDVSUThjckYw -UmsKRXU3dTd0aTNieDllZSswMXZQMzIyN2h4NDRiV3o1NDlleGJqeG8xRGRuWTJkdTdjaVNaTm11 -Z2Q3K21ubjhhMmJkc1FHaHFLano3NgpDQ1VsSlZvL2UvTGtTUXdiTmd6bDVlV0lqNCtIalkzNURv -MDVPVG53OC9PRHA2Y25DZ29La0pPVEExOWZYNnhhdFFvQXNIdjNidlR2CjN4OURoZ3lCSkVsSVNr -cUN2Nzgvamg4L3JuRFBxU0hSKzFaVUlxTDZ5TTNOeFR2dnZJTmR1M1poMUtoUm1EQmhBbHhjWE5D -blR4OTgKOGNVWGlJMk54Zi8rOXorRWhZVmg4ZUxGZU9TUlIrb1Y3K3paczNqMzNYZXhmLzkrVEp3 -NEVhTkhqMGJMbGkzaDdlMk45ZXZYWTgyYQpOYmg2OVNwZWV1a2xMRnk0VUsvcEYxTXk5aDBMOVdu -ZjJ1L2U0TjBpK21OeVFVU0tLQ3dzeE1hTkcvSGRkOStocUtnSVdWbFpHRFZxCkZDWk5tb1NRa0JD -RHJsYlU1dXJWcTFpN2RpMk9IajJLNHVKaW5EeDVFdVBHamNQVXFWTXhZc1FJczAwcTdtTnkwWERp -V1FNbUYwUkUKRm9ESlJjT0padzNNZDJLUmlJaUlMQkx2RmlFaXNoREdmRVMzazVPVDBkcW1ob2ZK -QlJHUkJlQmxlYklrbkJZaElpSWlXVEc1SUNJaQpJbGt4dVNBaUlpSlpNYmtnSWlJaVdURzVJQ0lp -SWxreHVTQWlJdEtDZCtrWWhza0ZFUkhwcGJTMEZLdFdyVUt2WHIxZ2IyOFBBSEJ3CmNJQ1Bqdzlp -WTJOUlZsWW1hN3lpb2lKODhza244UEx5ZXZDdUdVZEhSL2o1K2VHcnI3NUNaV1dsclBHdVhidUd5 -TWhJZE96WThVRzgKWnMyYVlmanc0ZGk5ZXplcXE2dGxqV2VObUZ3UUVaRk9xcXVyOGM0Nzc4RE56 -UTM3OSsvSHNtWExVRkJRQUFDNGZ2MDYzbi8vZmV6YQp0UXZ0MnJYRGh4OStXTy8vOVZkVVZPRGxs -MTlHaHc0ZGNPclVLYXhkdXhaRlJVVUFnTXVYTDJQZXZIbFl1M1l0M056Y3NIcjE2bnB2ClgybHBL -YVpObTRZdVhicmd5cFVyU0V4TWZQQTIzWXNYTHlJME5CUWZmUEFCT25Ub2dNVEV4SHJIczJaOHR3 -Z1JFZFdwcXFvS2t5ZFAKUm1GaEllTGo0OUcyYmRzSFpYOTk5OGJ2di8rT3laTW5vM1Buem9pTmpU -WG9wWEIzN3R6QnlKRWpvVktwc0dyVktqZzdPMnVOZC9yMAphWXdmUHg2alJvM0MwcVZMRFhxUzZZ -MGJOL0RjYzgraFQ1OCtXTFpzR1pvM2I2NDFYbnA2T2laT25JaFhYbmtGQ3hZczBEdFdROERrCmdv -aUlhaVdFd0lzdnZvZ3JWNjVnNTg2ZE5kNVlxK25GWG1WbFpRZ01ERVN2WHIzd3lTZWY2Qld2dXJv -YW8wZVBoa3FsMHBpY2FJcFgKVkZRRWYzOS9USnMyRGErOTlwcGU4ZTdldll2Qmd3ZGowS0JCR3BN -VFRmRXVYNzRNWDE5ZkxGbXlCSC8vKzkvMWl0Y1FNTGtnSXFKYQpaV1JrWU9MRWlmajU1NS94NktP -UDFpalg5dGJRNHVKaWRPblNCWWNPSFlLbnA2Zk84WGJ0Mm9YSXlFaWtwNmZEenM1TzUzaTV1Ym5v -CjFxMGJ6cDgvRHhjWEY1M2p4Y1RFSUNrcENkOSsrNjNHcXg3YTR2MzAwMC80MjkvK2hweWNIRFJ0 -MmxUbmVBMEIxMXdRRVZHdG9xT2oKRVJFUm9UR3hxSTJUa3hOZWVPRUZ4TVRFNkIzdjFWZGYxWmhZ -MU1iVjFSVmp4NDdGK3ZYcmRhNGpoRUIwZERSZWYvMTF2YWRUdW5mdgpEbTl2YjY2LzBJQlhMb2lJ -U0t2Q3drSjA3TmdSdi83NksxcTJiS254TTlyK1p3LzhjVFdoUjQ4ZXlNbkowU2s1T1gvK1BIeDlm -WkdUCmsvUGdUZzE5NG1WbFpTRWtKQVFYTGx6UWFhM0gwYU5IRVJZV2hsOSsrVVZyY2xGYnZEMTc5 -aUF5TWhJLy9QQkRuYkVhRWw2NUlDSWkKclk0ZE80YStmZnRxVFN6cTR1cnFpaTVkdWlBakkwT256 -eDg2ZEFnalI0N1VtbGpVNVpsbm5vR3RyUzErL2ZWWG5UNi9mLzkrakJzMwp6dURYMlE4ZlBoeW5U -NTkrY0ZjSi9ZSEpCUkVSYVZWY1hQelFuUnFHY0haMlJuRnhzVlhHczdXMVJZc1dMWFNPMTFEb1BT -MWlhSFpIClJFUkVEVU1qZlN0d2lRWVJVY054OE9CQkxGNjhHT25wNlZvL1U5dWFCQ0VFdkx5OHNI -SGpSdmo0K05RWkx6NCtIanQyN01ET25Uc04KaWxkVlZZVTJiZHJnNU1tVGNIVjFyVFBlc21YTGNP -blNKWHorK2VjR3hTc3BLVUdiTm0xUVdGaG84RlNPTmVLMENCRVJhVFZvMENEawo1dWJpOU9uVEJ0 -VlBUMDlIVlZVVmV2ZnVyZFBuZzRLQ2tKcWFpcnk4UElQaUpTVWx3Y1BEUTZmRUFnQW1USmlBTFZ1 -MkdQekk4dmo0CitIcXRFYkZXVEM2SWlFZ3JPenM3aElXRjZYMDc2WDNSMGRHWU0yY09iR3gwKzNQ -ejJHT1BZZno0OFZpM2JwM0I4U0lpSW5UKy9KTlAKUG9sKy9mcmhxNisrMGp2Vy9kdFk5WW5YVVBC -V1ZDSWlxdFdWSzFmUXZYdDNwS2Ftb2x1M2JqWEt0VTBiWkdabVl0aXdZZmoxMTEraApVcWwwanBj -T1VHUXRBQUFDdGtsRVFWU2RuWTJoUTRjaUl5TUQ3ZHExMHpuZTNyMTc4Znp6eitQMzMzK3Y4UlRS -MmlRbkp5TWlJZ0laCkdSa2ErNmt0M29ZTkcvRGYvLzRYMmRuWlhJLzRGN3h5UVVSRXRYcmlpU2Z3 -MldlZlljU0lFVGgvL3J4T2RYNysrV2NFQndkanc0WU4KZWlVV0FOQ2pSdys4OGNZYkdENThPSzVl -dmFwVG5hTkhqMkw2OU9uWXRtMmJYb2tGQUFRRUJHRE1tREVJQ2dyUythNlByNy8rR20rOQo5UmEy -Yk5uQ3hFSVRRVVJFcElOMTY5YUpWcTFhaWRXclY0dmJ0MjgvK1AyZi81U1VsSlNJbFN0WENtZG5a -N0Y1ODJhRFk2blZhaEVWCkZTWGF0V3NudnZqaUMzSDM3bDJOOFFvS0NrUlVWSlJ3ZG5ZV3ljbkpC -c2VycnE0VzgrZlBGNTZlbm1MbnpwMmlxcXBLWTd6TGx5K0wKUllzV2lkYXRXNHVNakF5RDQxazdK -aGRFUktTenRMUTBFUndjTEZRcWxaZzNiNTVJU0VnUUFNU1hYMzRwNXN5Wkk1eWNuTVQ0OGVORgpa -bWFtTFBIMjdkc25oZ3daSWx4Y1hNU2JiNzRwTm0vZUxBQ0krUGg0TVczYU5QSFlZNCtKNmRPbml6 -Tm56c2dTTHpFeFVmVHYzMSswCmJkdFd2UGZlZTJMTGxpMENnTmk0Y2FNWU8zYXNjSEp5RWhFUkVl -TGl4WXV5eExOV1hITkJSRVI2eThuSndmcjE2M0h1M0RsczJiSUYKa3laTmdwZVhGMmJObW9VMmJk -cklIdS84K2ZPSWpZM0ZoUXNYc0hYclZreWVQQm05ZXZYQ3pKa3owYUpGQzluam5UcDFDbkZ4Y2Jo -OAorVEsyYmR1R0tWT21vSC8vL3BnNmRTb2NIUjFsajJkdG1Gd1FFUkdSckxpZ2s0aUlpR1RGNUlL -SWlJaGt4ZVNDaUlpSVpNWGtnb2lJCmlHVEY1SUtJaUloa3hlU0NpSWlJWk1Ya2dvaUlpR1RGNUlL -SWlJaGt4ZVNDaUlpSVpNWGtnb2lJaUdURjVJS0lpSWhreGVTQ2lJaUkKWk1Ya2dvaUlpR1RGNUlL -SWlJaGt4ZVNDaUlpSVpNWGtnb2lJaUdURjVJS0lpSWhreGVTQ2lJaUlaTVhrZ29pSWlHVEY1SUtJ -aUloawp4ZVNDaUlpSVpNWGtnb2lJaUdURjVJS0lpSWhrOVg4T1FoaGRPdEJ6bGdBQUFBQkpSVTVF -cmtKZ2dnPT0K - - - - - - represent(4*encoding_circuit, nqubits=5) - python - 15 - 0 - - - pyout - ⎡1 0 1 0 1 0 1 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 - -⎢ -⎢0 1 0 1 0 1 0 1 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -⎢ -⎢0 1 0 -1 0 1 0 -1 -1 0 1 0 -1 0 1 0 -1 0 1 0 -⎢ -⎢1 0 -1 0 1 0 -1 0 0 -1 0 1 0 -1 0 1 0 -1 0 1 -⎢ -⎢0 -1 0 -1 0 1 0 1 1 0 1 0 -1 0 -1 0 -1 0 -1 0 -⎢ -⎢-1 0 -1 0 1 0 1 0 0 1 0 1 0 -1 0 -1 0 -1 0 - -⎢ -⎢1 0 -1 0 -1 0 1 0 0 -1 0 1 0 1 0 -1 0 1 0 - -⎢ -⎢0 1 0 -1 0 -1 0 1 -1 0 1 0 1 0 -1 0 1 0 -1 0 -⎢ -⎢0 -1 0 -1 0 -1 0 -1 1 0 1 0 1 0 1 0 -1 0 -1 0 -⎢ -⎢-1 0 -1 0 -1 0 -1 0 0 1 0 1 0 1 0 1 0 -1 0 - -⎢ -⎢-1 0 1 0 -1 0 1 0 0 1 0 -1 0 1 0 -1 0 -1 0 1 -⎢ -⎢0 -1 0 1 0 -1 0 1 1 0 -1 0 1 0 -1 0 -1 0 1 0 -⎢ -⎢1 0 1 0 -1 0 -1 0 0 -1 0 -1 0 1 0 1 0 -1 0 - -⎢ -⎢0 1 0 1 0 -1 0 -1 -1 0 -1 0 1 0 1 0 -1 0 -1 0 -⎢ -⎢0 -1 0 1 0 1 0 -1 1 0 -1 0 -1 0 1 0 1 0 -1 0 -⎢ -⎢-1 0 1 0 1 0 -1 0 0 1 0 -1 0 -1 0 1 0 1 0 - -⎢ -⎢0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 -1 0 -1 0 -⎢ -⎢1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 -1 0 - -⎢ -⎢-1 0 1 0 -1 0 1 0 0 -1 0 1 0 -1 0 1 0 1 0 - -⎢ -⎢0 -1 0 1 0 -1 0 1 -1 0 1 0 -1 0 1 0 1 0 -1 0 -⎢ -⎢-1 0 -1 0 1 0 1 0 0 -1 0 -1 0 1 0 1 0 -1 0 - -⎢ -⎢0 -1 0 -1 0 1 0 1 -1 0 -1 0 1 0 1 0 -1 0 -1 0 -⎢ -⎢0 -1 0 1 0 1 0 -1 -1 0 1 0 1 0 -1 0 -1 0 1 0 -⎢ -⎢-1 0 1 0 1 0 -1 0 0 -1 0 1 0 1 0 -1 0 -1 0 1 -⎢ -⎢1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 -⎢ -⎢0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 -⎢ -⎢0 -1 0 1 0 -1 0 1 -1 0 1 0 -1 0 1 0 -1 0 1 0 -⎢ -⎢-1 0 1 0 -1 0 1 0 0 -1 0 1 0 -1 0 1 0 -1 0 1 -⎢ -⎢0 -1 0 -1 0 1 0 1 -1 0 -1 0 1 0 1 0 1 0 1 0 -⎢ -⎢-1 0 -1 0 1 0 1 0 0 -1 0 -1 0 1 0 1 0 1 0 1 -⎢ -⎢-1 0 1 0 1 0 -1 0 0 -1 0 1 0 1 0 -1 0 1 0 - -⎢ -⎣0 -1 0 1 0 1 0 -1 -1 0 1 0 1 0 -1 0 1 0 -1 0 - -1 0 -1 0 -1 -1 0 -1 0 -1 0 -1 0 ⎤ - ⎥ - -1 0 -1 0 0 -1 0 -1 0 -1 0 -1⎥ - ⎥ - -1 0 1 0 0 -1 0 1 0 -1 0 1 ⎥ - ⎥ - 0 -1 0 1 -1 0 1 0 -1 0 1 0 ⎥ - ⎥ - 1 0 1 0 0 -1 0 -1 0 1 0 1 ⎥ - ⎥ -1 0 1 0 1 -1 0 -1 0 1 0 1 0 ⎥ - ⎥ -1 0 -1 0 1 1 0 -1 0 -1 0 1 0 ⎥ - ⎥ - -1 0 1 0 0 1 0 -1 0 -1 0 1 ⎥ - ⎥ - -1 0 -1 0 0 -1 0 -1 0 -1 0 -1⎥ - ⎥ -1 0 -1 0 -1 -1 0 -1 0 -1 0 -1 0 ⎥ - ⎥ - 0 -1 0 1 -1 0 1 0 -1 0 1 0 ⎥ - ⎥ - -1 0 1 0 0 -1 0 1 0 -1 0 1 ⎥ - ⎥ -1 0 1 0 1 -1 0 -1 0 1 0 1 0 ⎥ - ⎥ - 1 0 1 0 0 -1 0 -1 0 1 0 1 ⎥ - ⎥ - -1 0 1 0 0 1 0 -1 0 -1 0 1 ⎥ - ⎥ -1 0 -1 0 1 1 0 -1 0 -1 0 1 0 ⎥ - ⎥ - -1 0 -1 0 0 1 0 1 0 1 0 1 ⎥ - ⎥ -1 0 -1 0 -1 1 0 1 0 1 0 1 0 ⎥ - ⎥ -1 0 1 0 -1 -1 0 1 0 -1 0 1 0 ⎥ - ⎥ - 1 0 -1 0 0 -1 0 1 0 -1 0 1 ⎥ - ⎥ -1 0 1 0 1 1 0 1 0 -1 0 -1 0 ⎥ - ⎥ - 1 0 1 0 0 1 0 1 0 -1 0 -1⎥ - ⎥ - 1 0 -1 0 0 1 0 -1 0 -1 0 1 ⎥ - ⎥ - 0 1 0 -1 1 0 -1 0 -1 0 1 0 ⎥ - ⎥ - 0 1 0 1 -1 0 -1 0 -1 0 -1 0 ⎥ - ⎥ - 1 0 1 0 0 -1 0 -1 0 -1 0 -1⎥ - ⎥ - -1 0 1 0 0 1 0 -1 0 1 0 -1⎥ - ⎥ - 0 -1 0 1 1 0 -1 0 1 0 -1 0 ⎥ - ⎥ - -1 0 -1 0 0 -1 0 -1 0 1 0 1 ⎥ - ⎥ - 0 -1 0 -1 -1 0 -1 0 1 0 1 0 ⎥ - ⎥ -1 0 -1 0 1 -1 0 1 0 1 0 -1 0 ⎥ - ⎥ - -1 0 1 0 0 -1 0 1 0 1 0 -1⎦ - $$\left(\begin{smallmatrix}1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0\\0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1\\0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1\\1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0\\0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1\\-1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0\\1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0\\0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1\\0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1\\-1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0\\-1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0\\0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1\\1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0\\0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1\\0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1\\-1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0\\0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1\\1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0\\-1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0\\0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1\\-1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0\\0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1\\0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1\\-1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0\\1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0\\0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1\\0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1\\-1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0\\0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1\\-1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0\\-1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0\\0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1\end{smallmatrix}\right)$$ - 15 - - - - - - - +{ + "nbformat": 2, + "name": "qerror", + "worksheets": [ + { + "cells": [ + { + "source": "

Quantum Error Correction

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "source": "

5 qubit code

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$Z_{1} X_{2} X_{3} Z_{4}$$", + "prompt_number": 3, + "png": "iVBORw0KGgoAAAANSUhEUgAAAFsAAAAYCAYAAACV+oFbAAAABHNCSVQICAgIfAhkiAAAA2NJREFU\naIHt2EmIHFUcx/FPktHQCS5oSGA0KoILIsaLmIOGOC4MMuA2CCYwGJfgwRUdRnBFFMlN9BAvBiFR\nBBcUPQREXHADMYgoKBIVnShCoqjEZZw4Hv41M9Xd1Rm76lWL0D8o6Fev6vte/+ot//+jr/9cKzGF\nGfyFL/AqdmbXvqzuin/BGsOu7PkZ/I6ncvUX46es7m98jnVd9LVufkovCrUJf+IWHNJSdykO4NEu\nmQ9mnbqvoG6L+AODXTJ7wa/DiyY9j5GC+2fjN7yExV0yV2Man7XcX4etJXi94tfhxZwOxRsF90/E\nD/gAy0qyXxajb31WPkNM+YGSvLr5dXoBjsOFLfeOEiPma6yqwB4RZjyDE/CCip2tmV+nF4VairfE\nJnNaRdYSfCPWwFdwdEVer/kpvWjTIjwtduOhRMx7xOi7KxGvV/w6vGjSw6LjY4l4A9guOrxb/IGU\nqpOf2osmbVYcSjWU/7JbcS6ezdjDpXvXW34dXsxpWATwTxbUXYPLSjAfwiXZ7/NF518s07ke8+vw\nYk5n4he8pj2Ih7exPFfegBsXYN6K63PlRSKTm8YxB3lvCPfiETyGwxLxB7Exe2cbRjtwu/ViVsux\nowNzTsdiDz7FEQX1G0QsC2vFtPoEdx+EuVHxZnW7GH33d3jvFIznyo/jzUT87eIDwhqRxq9peaYb\nL1q1RXty1aTD8TG+x/EtdYO4M+vUdS11OxSbvTRr9KMO7Q1mvMns2VZdi2/Nb3IXCPNWJuCfLj4m\nrNCcCFHeC7gIV1vA7G1Zo5N4P7t24WfzhzxT2gP5VrMbeA9/ZO8cEOcWeY2KeHiW+51IQPI6UnNC\ncRX2i1GWgj+rMbyjeZko68UK3IBTLWB2WXUa2Sm1GO/ipoTM1cKYndJlghMi/Pxfm/0A7qiJvRZf\naV8uutUoTsp+F5q9pGIDcDn2ijS2Dm0SS8ITYpoSoVhZNcQs2SPOpifFRj+N1ytwx8V+co6Ios4S\n/n6JXytwm1TnyB7RfNA/ofrB1YCIoGY3yFViDb6yIjevYYmXkZNxmzj9+hA3m48UUmi9GMEzuWt3\nIvaQOEPZLMK3CelS+/PwnNjMx+UOw6o00NAef+5TbYrntUyEYHlN4cdEfCL52J+QR3jSyJX3iiWq\nr7766quq/gHxxxJqg1cEfAAAAABJRU5ErkJggg==\n", + "text": "Z \u22c5X \u22c5X \u22c5Z \n 1 2 3 4" + } + ], + "collapsed": false, + "prompt_number": 3, + "input": "M0 = Z(1)*X(2)*X(3)*Z(4); M0\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$Z_{2} X_{3} X_{4} Z_{0}$$", + "prompt_number": 4, + "png": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAYCAYAAAB6OOplAAAABHNCSVQICAgIfAhkiAAAA4lJREFU\naIHt2FuoFWUUB/Df1pPHki5UWmk3eisiohfxIa0siLCyi1AZdqEMIqmQsqioSJEoeqgHiSCjG0EY\nlRKBGSFFNzpEFygqjLIi6B5k6dHTw5o5e/bec07umW/vXvYfBuabNfOfNf9Z37fWtxjgf8Us7MQY\nduELbMar2fFzZrtoL7iWYSS7fww78EzBfg5+zWx78Dnmd+Frr/lTatGBq/APbsQ+bbbF2I2Hu+Rc\nnTl0d4ntfuH87C45+8HfCy3GsQGLSq7PxV94CVO65DwKo/is7fp8rKvA1y/+XmgBpuGNkuvH4Ue8\nj/2qEGOjiLrTsvFJYpoPVeTrNX8vtXA0zmq7drCIlK9xWFViERljeA7H4gU1HO0Dfy+16MAwtoqE\nckJNrqn4Rqx5m3BITb5+86fUogUNPCuy7hmJOO8SUXdHIr5+8fdCi3GsFU4vS8Q3hKeEs18J51Oi\nl/yptRjHcuXl0r6q/9F1OBXPZ9xnV/auv/y90ALh4C48UWK7GhdU4FyD87PzhcLxF6s412f+XmgB\nTsYf2KKzQIc3MQPTcYtYE9djySScN+HawrghdmijmDPJc6eLqXo7HjXxhqMqP/FTbpjAtrda5DgX\nK4Um10z20iPxHT7FgSX2y0StCvdqfsQR+AUXljyzVHliWimi7p4JfJmFP3F8Nl6P1xPyw0H4BHeW\n2LrRgqjZtxbGG3Fe2UsPwEf4Ace02WbjNtEryP/UxyKic2zS2mMYFlvfD8telnHuwfbs3nY0RF08\nLRuvbuOqyw+r8IBOobvVgkjCtxbGy/Fy2UsfFxGwHe9kxwh+12zY7NQs0ueKgj7Hu3hQJIi38Xf2\nzG4hUhEXi3o35/1ebC4mwwcielPxL8aJ2bPtQnerBbFLXFoYL8K3//FNXWOemGZJd0oZzsRjWqOl\nLubgiuy8TOgq2KY1MS4U6zvqN3JgJu7DArH/T43XRKI7BQ8l4GvgcjyZgKuIbSLSc8wQeQv1hd5f\nZNhL8aXO9awOLsFbmpuOV0R1cWhN3nkiea8Sa+0CUXtfV5N3RCTwHIeL5as2pgtn86bNVOW94Kq4\nUmvtulasmSlmYRFPS7N0LBHNrBwbRADWRr77Kh4rUhBnGBb18wohxGaRvFLietGFe0/MoDpo4BHc\nLAJwjUILoE4vYKaI4iJ+E9VASkwRou9IzEtM7xyj+CkB55BmNTTAAAMMUAf/AiT2FBaVsAtVAAAA\nAElFTkSuQmCC\n", + "text": "Z \u22c5X \u22c5X \u22c5Z \n 2 3 4 0" + } + ], + "collapsed": false, + "prompt_number": 4, + "input": "M1 = Z(2)*X(3)*X(4)*Z(0); M1\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$Z_{3} X_{4} X_{0} Z_{1}$$", + "prompt_number": 5, + "png": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAYCAYAAAB6OOplAAAABHNCSVQICAgIfAhkiAAAA3RJREFU\naIHt2VtoHHUUx/FPTTSY1rTEeiHeSlEExUv1QVQMoggiXlEqXihaVPLmFalIUagifREUtPiiglQK\noiiKKCposSgIQQTBKqKUWC14odZ6aVrjw5nNTiazJjvzn9WH/GBh5/+f/e6Z3575nzP/ZUH/qY7E\nPkxhEl/hHbyVvX7K5q6dB2sNxrPzp/AHNufmL8Mv2dzf2I7RLmJtmp/Si1m6FX/hThxcmLsaB/Bk\nl8xHsoAeKpnbKIIf6ZLZC34TXkzrZVxeMn4OfsdrOKhL5nHYjy8K46PYVIHXK34TXoBD8H7J+Ers\nwicYrALG6yLrLsyOTxe3eX9FXtP8Jr1wPC4pjA2LTPkWR1UFi8yYwhaswCtqBNoDfpNezNIAtoqC\nckpNVh92iDXvDRxek9drfkovZmgRXhRV96JEzPUi6x5MxOsVvwkvpvWYCHpNIl4/XhDBfi2CT6km\n+am9mNYdytulQ1X/RTfhAryUsS+tHF1v+U14gQhwEs+XzK3FNRWYj+Kq7P3FIvBXqwTXY34TXoAz\n8SveM7tBhw+xGEtxg2jon8HYvzDvwu2540XiCW0/jplnXJtFBqXgHyYeQMbwOM7owJ2vF3mtwlMd\neNM6Ft/hc2FkUTeKXhU2aGfMsLioK0s+c5PywnSvyLqH5wpK/KCTWJKIv1E7MZbjGwwVzunGi9b5\n6/GmeDTvqCF8hu9xQmFuBOvEXsFt2dgKnJ07Zw9uyR0PZBf0aYfvG8l4E9m5nbQSN+M3M42uyh/E\nXjMfx7dide64Wy/yGjOH0c+KDJjAx9lrHLu1N2z2KW/SR/Ellonb+yP8mX3mgNiHyOs60e+2uDvF\nw0VRfXgge98yui7/ZGFSviPZIrqKFF7MaXQVDYssfhcnpYaLjGldTDGjq+p8kdF5PYenE7DpYHTd\njZyfRTVeiw9EIUilVSKjdiVkEuvxVGFssbiWxlTH6Le1K/0O/IC7a0fU1mpR9deJYjeAe3BWTe5O\nUU/y3cLR4hr+l9qG87L3/aINur+h71ousjDF0kFsbba2PodEkpR1FlVUunT01QCO4wqciPvE0rFB\nFJqUOlX0vOeKH3QCP9ZkbhMxLxFt2hOiy6ijpeIOvx6niWK7V7b0pdgLGBR/HxXXvVQaNLPH3Z19\nXwoNiJ2+FOrDEYWxPWYX3gUtaEELmq/+AS2CEfeikOXjAAAAAElFTkSuQmCC\n", + "text": "Z \u22c5X \u22c5X \u22c5Z \n 3 4 0 1" + } + ], + "collapsed": false, + "prompt_number": 5, + "input": "M2 = Z(3)*X(4)*X(0)*Z(1); M2\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$Z_{4} X_{0} X_{1} Z_{2}$$", + "prompt_number": 6, + "png": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAYCAYAAAB6OOplAAAABHNCSVQICAgIfAhkiAAAA2BJREFU\naIHt2F2oZlMYB/DfmDOOYTgiTMfHwZSLuZA0kguTSA3JR+PK6BTNiJqcKWEm5IxGcjEpNwdJSoSJ\niKIQTcqUmjQ1RUO+Bo0MIV/z4bh41nvOPu/Z++Tde+3XhfOvXXutZ6//evZ/P3utZz3M4z/FyTiA\nSRzEHryFN9O1P9lW/wuuUexMz0/iDzxbsF+Jn5Ltb3yClT342jZ/Ti1m4Sb8hTEs6rJdi8N4tEfO\nLcmh+0tsDwvnh3vk7Ad/G1pM4SVcVdJ/IX7HqziiR87TcQgfd/WvxEQNvn7xt6EFOBLvlfSfjX34\nEEfXIcZrIuouSe1zxW8+UJOvbf42tXAGLu/qO0FEyhc4pS6xiIxJPI8z8bIGjvaBv00tZmEQ28WG\nsrwh10J8Jda813FiQ75+8+fUYgYW4Dmx616aifM+EXX3ZOLrF38bWkzhIeH0aCa+ATwjnP1MOJ8T\nbfLn1mIKtyhPlxar/0UncDG2Je5Vtb3rL38bWiAcPIinS2w347oanA/imnR/mXD8lTrO9Zm/DS3A\nefgF75idoMP7OKarb7l40SpswLpCe4E4oR3CqXOMW4FNafxm1flqXf47zS1Ur1qM4l48nvyuzK9P\nwzfYjaES+w0iVy1iEd7FkxWca5RvTHeIqBuvGHcsPsVRqT2OBzLxr0r9X+PGivl71WI1rkj3A9iB\nrWXEx2EXvsNIl20YG0WtYG2XbT3uNlvoQXH0/ajiRYYT3970bDfG8GKhfb548Vz8RESWCV1Hiwlx\nSuxgI74sm/QpEQF7xdfYIYo1P5su2BwwM0m/SKyHa00LvRgf4M805rCoQxRxvch3O7zfisNFERN4\npNBemp4dycRPtdB1tDgLFxTaW9O4xliC29N9Uehc2Gbmuj8kXvCcjHNUCd0Ux4u/YapK2KSQsw5P\nNPVoDnwuhO2gs+n82OKcObAQj4mMZHuns67QIyLT2CDWoqtFAeeuZj7OwE5RC+5gqaiW/ZBxjjYw\nLvaON8xe3xtji/xLxzJRvOkEwyYVu3gD5F46bhNrNZFibs7IbY2Ivj3iBJUT60V03CqK67mKRCtE\nprQfb6d5mlYRx0xvlJ3rhY4xRy3gJLEuSeT7MnB2Y1BU5HJhSbqK+F6kbHUxJDKuIn7Drw045zGP\nefy/8Q8KoQ22z/3wywAAAABJRU5ErkJggg==\n", + "text": "Z \u22c5X \u22c5X \u22c5Z \n 4 0 1 2" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "M3 = Z(4)*X(0)*X(1)*Z(2); M3\n" + }, + { + "source": "These operators should mutually commute.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$0$$", + "prompt_number": 7, + "png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAASCAYAAABvqT8MAAAABHNCSVQICAgIfAhkiAAAAN1JREFU\nKJHN0i1LRFEQxvGf7i6LrGE3adCoUbAZBT+GzWATi9Vm22D3Q9gtZqNo8WXNgi9BUHBdUMO9F8bD\nlG1OOcwz8z9zeM4wZcwU+RKGeMQbOjjGawa3MMJu0I5whtkM2MYYvaCt4Ac7GXCJ80R/wGmTNKPa\nWMN9AoywWQILKgPeE+ADA3QjsBiKGQD9CIzr8zsBOrHWALf4SpqpXJvgJQIT3NRvLWMeTyp7/3zI\nFZaL5hbWcZ2NPlCtwFzQNuqbtzJggDvsBe0EF7GpXL5VHOKzznvYx3M24Z/EL9XoKBNI+V0xAAAA\nAElFTkSuQmCC\n", + "text": "0" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "gate_simp(Commutator(M0,M1).doit())\n" + }, + { + "source": "And square to the identity.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$1$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAASCAYAAACNdSR1AAAABHNCSVQICAgIfAhkiAAAAGBJREFU\nKJHt0bENQGAQhuEnWp1CZQFbqExhOI1BtEbABgoj/AoKkcgfCZ23uUvuvcuXHC9QYI5JKWqMCNdh\ncupLdKiwPInRxi5H+eXX5eyo+d1ijh6T/XsBKwY0TxJ8zAZBcgy8TZqNTgAAAABJRU5ErkJggg==\n", + "text": "1" + }, + { + "output_type": "display_data", + "latex": "$$1$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAASCAYAAACNdSR1AAAABHNCSVQICAgIfAhkiAAAAGBJREFU\nKJHt0bENQGAQhuEnWp1CZQFbqExhOI1BtEbABgoj/AoKkcgfCZ23uUvuvcuXHC9QYI5JKWqMCNdh\ncupLdKiwPInRxi5H+eXX5eyo+d1ijh6T/XsBKwY0TxJ8zAZBcgy8TZqNTgAAAABJRU5ErkJggg==\n", + "text": "1" + }, + { + "output_type": "display_data", + "latex": "$$1$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAASCAYAAACNdSR1AAAABHNCSVQICAgIfAhkiAAAAGBJREFU\nKJHt0bENQGAQhuEnWp1CZQFbqExhOI1BtEbABgoj/AoKkcgfCZ23uUvuvcuXHC9QYI5JKWqMCNdh\ncupLdKiwPInRxi5H+eXX5eyo+d1ijh6T/XsBKwY0TxJ8zAZBcgy8TZqNTgAAAABJRU5ErkJggg==\n", + "text": "1" + }, + { + "output_type": "display_data", + "latex": "$$1$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAASCAYAAACNdSR1AAAABHNCSVQICAgIfAhkiAAAAGBJREFU\nKJHt0bENQGAQhuEnWp1CZQFbqExhOI1BtEbABgoj/AoKkcgfCZ23uUvuvcuXHC9QYI5JKWqMCNdh\ncupLdKiwPInRxi5H+eXX5eyo+d1ijh6T/XsBKwY0TxJ8zAZBcgy8TZqNTgAAAABJRU5ErkJggg==\n", + "text": "1" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "for o in [M0,M1,M2,M3]:\n display(gate_simp(o*o))\n" + }, + { + "source": "

Codewords

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{4} \\left(1 + Z_{1} X_{2} X_{3} Z_{4}\\right) \\left(1 + Z_{2} X_{3} X_{4} Z_{0}\\right) \\left(1 + Z_{3} X_{4} X_{0} Z_{1}\\right) \\left(1 + Z_{4} X_{0} X_{1} Z_{2}\\right) {\\left|0\\right\\rangle }$$", + "prompt_number": 9, + "png": "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\nhBCC/wPS77xfXVkDTQAAAABJRU5ErkJggg==\n", + "text": "\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u27580\u27e9\n\u239d 1 2 3 4\u23a0 \u239d 2 3 4 0\u23a0 \u239d 3 4 0 1\u23a0 \u239d 4 0 1 2\u23a0 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 4" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "zero = Rational(1,4)*(1+M0)*(1+M1)*(1+M2)*(1+M3)*IntQubit(0, 5); zero\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$${\\left|0\\right\\rangle } + {\\left|3\\right\\rangle } - {\\left|5\\right\\rangle } + {\\left|6\\right\\rangle } - {\\left|9\\right\\rangle } - {\\left|10\\right\\rangle } + {\\left|12\\right\\rangle } - {\\left|15\\right\\rangle } + {\\left|17\\right\\rangle } - {\\left|18\\right\\rangle } - {\\left|20\\right\\rangle } - {\\left|23\\right\\rangle } + {\\left|24\\right\\rangle } - {\\left|27\\right\\rangle } - {\\left|29\\right\\rangle } - {\\left|30\\right\\rangle }$$", + "prompt_number": 10, + "png": "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\n", + "text": "\u27580\u27e9 + \u27583\u27e9 - \u27585\u27e9 + \u27586\u27e9 - \u27589\u27e9 - \u275810\u27e9 + \u275812\u27e9 - \u275815\u27e9 + \u275817\u27e9 - \u275818\u27e9 - \u275820\u27e9 - \u275823\u27e9 +\n \u275824\u27e9 - \u275827\u27e9 - \u275829\u27e9 - \u275830\u27e9" + } + ], + "collapsed": false, + "prompt_number": 10, + "input": "qapply(4*zero)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{4} \\left(1 + Z_{1} X_{2} X_{3} Z_{4}\\right) \\left(1 + Z_{2} X_{3} X_{4} Z_{0}\\right) \\left(1 + Z_{3} X_{4} X_{0} Z_{1}\\right) \\left(1 + Z_{4} X_{0} X_{1} Z_{2}\\right) {\\left|31\\right\\rangle }$$", + "prompt_number": 11, + "png": "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\n49kSjUC+pQAAAABJRU5ErkJggg==\n", + "text": "\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u239b1 + Z \u22c5X \u22c5X \u22c5Z \u239e\u22c5\u275831\u27e9\n\u239d 1 2 3 4\u23a0 \u239d 2 3 4 0\u23a0 \u239d 3 4 0 1\u23a0 \u239d 4 0 1 2\u23a0 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 4" + } + ], + "collapsed": false, + "prompt_number": 11, + "input": "one = Rational(1,4)*(1+M0)*(1+M1)*(1+M2)*(1+M3)*IntQubit(2**5-1, 5); one\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$- {\\left|1\\right\\rangle } - {\\left|2\\right\\rangle } - {\\left|4\\right\\rangle } + {\\left|7\\right\\rangle } - {\\left|8\\right\\rangle } - {\\left|11\\right\\rangle } - {\\left|13\\right\\rangle } + {\\left|14\\right\\rangle } - {\\left|16\\right\\rangle } + {\\left|19\\right\\rangle } - {\\left|21\\right\\rangle } - {\\left|22\\right\\rangle } + {\\left|25\\right\\rangle } - {\\left|26\\right\\rangle } + {\\left|28\\right\\rangle } + {\\left|31\\right\\rangle }$$", + "prompt_number": 12, + "png": "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\n", + "text": "-\u27581\u27e9 - \u27582\u27e9 - \u27584\u27e9 + \u27587\u27e9 - \u27588\u27e9 - \u275811\u27e9 - \u275813\u27e9 + \u275814\u27e9 - \u275816\u27e9 + \u275819\u27e9 - \u275821\u27e9 - \u275822\u27e9 \n+ \u275825\u27e9 - \u275826\u27e9 + \u275828\u27e9 + \u275831\u27e9" + } + ], + "collapsed": false, + "prompt_number": 12, + "input": "qapply(4*one)\n" + }, + { + "source": "

The encoding circuit

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 13, + "input": "encoding_circuit = H(3)*H(4)*CNOT(2,0)*CNOT(3,0)*CNOT(4,0)*H(1)*H(4)*\\\n CNOT(2,1)*CNOT(4,1)*H(2)*CNOT(3,2)*CNOT(4,2)*H(3)*\\\n H(4)*CNOT(4, 3)*Z(4)*H(4)*Z(4)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 14, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x38a6950>" + }, + { + "output_type": "display_data", + "png": "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\nPol+/frhq6++0jvW/dtY9YnXUPBWVCIiqtWVK1fQvXt3pKamolu3bjXKtU0bZGZmYtiwYfj111+h\nUql0jpcOUGQtAAACtklEQVSdnY2hQ4ciIyMD7dq10zne3r178fzzz+P333+v8RTR2iQnJyMiIgIZ\nGRka+6kt3oYNG/Df//4X2dnZXI/4F7xyQUREtXriiSfw2WefYcSIETh//rxOdX7++WcEBwdjw4YN\neiUWANCjRw+88cYbGD58OK5evapTnaNHj2L69OnYtm2bXokFAAQEBGDMmDEICgrS+a6Pr7/+Gm+9\n9Ra2bNnCxEITQUREpIN169aJVq1aidWrV4vbt28/+P2f/5SUlJSIlStXCmdnZ7F582aDY6nVahEV\nFSXatWsnvvjiC3H37l2N8QoKCkRUVJRwdnYWycnJBserrq4W8+fPF56enmLnzp2iqqpKY7zLly+L\nRYsWidatW4uMjAyD41k7JhdERKSztLQ0ERwcLFQqlZg3b55ISEgQAMSXX34p5syZI5ycnMT48eNF\nZmamLPH27dsnhgwZIlxcXMSbb74pNm/eLACI+Ph4MW3aNPHYY4+J6dOnizNnzsgSLzExUfTv31+0\nbdtWvPfee2LLli0CgNi4caMYO3ascHJyEhEREeLixYuyxLNWXHNBRER6y8nJwfr163Hu3Dls2bIF\nkyZNgpeXF2bNmoU2bdrIHu/8+fOIjY3FhQsXsHXrVkyePBm9evXCzJkz0aJFC9njnTp1CnFxcbh8\n+TK2bduGKVOmoH///pg6dSocHR1lj2dtmFwQERGRrLigk4iIiGTF5IKIiIhkxeSCiIiIZMXkgoiI\niGTF5IKIiIhkxeSCiIiIZMXkgoiIiGTF5IKIiIhkxeSCiIiIZMXkgoiIiGTF5IKIiIhkxeSCiIiI\nZMXkgoiIiGTF5IKIiIhkxeSCiIiIZMXkgoiIiGTF5IKIiIhkxeSCiIiIZMXkgoiIiGTF5IKIiIhk\nxeSCiIiIZMXkgoiIiGTF5IKIiIhk9X8OQhhdOtBzlgAAAABJRU5ErkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 14, + "input": "circuit_plot(encoding_circuit, nqubits=5, scale=0.5)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left(\\begin{smallmatrix}1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0\\\\0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1\\\\0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1\\\\1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0\\\\0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1\\\\-1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0\\\\1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0\\\\0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1\\\\0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1\\\\-1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0\\\\-1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0\\\\0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1\\\\1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0\\\\0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1\\\\0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1\\\\-1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0\\\\0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1\\\\1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0\\\\-1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0\\\\0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1\\\\-1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0\\\\0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1\\\\0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1\\\\-1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0\\\\1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & -1 & 0 & -1 & 0\\\\0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & -1 & 0 & -1\\\\0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1\\\\-1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & 1 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0\\\\0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1\\\\-1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & -1 & -1 & 0 & -1 & 0 & 1 & 0 & 1 & 0\\\\-1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0\\\\0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & -1 & 0 & 1 & 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1\\end{smallmatrix}\\right)$$", + "prompt_number": 15, + "text": "\u23a11 0 1 0 1 0 1 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 -\n\u23a2 \n\u23a20 1 0 1 0 1 0 1 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0\n\u23a2 \n\u23a20 1 0 -1 0 1 0 -1 -1 0 1 0 -1 0 1 0 -1 0 1 0\n\u23a2 \n\u23a21 0 -1 0 1 0 -1 0 0 -1 0 1 0 -1 0 1 0 -1 0 1\n\u23a2 \n\u23a20 -1 0 -1 0 1 0 1 1 0 1 0 -1 0 -1 0 -1 0 -1 0\n\u23a2 \n\u23a2-1 0 -1 0 1 0 1 0 0 1 0 1 0 -1 0 -1 0 -1 0 -\n\u23a2 \n\u23a21 0 -1 0 -1 0 1 0 0 -1 0 1 0 1 0 -1 0 1 0 -\n\u23a2 \n\u23a20 1 0 -1 0 -1 0 1 -1 0 1 0 1 0 -1 0 1 0 -1 0\n\u23a2 \n\u23a20 -1 0 -1 0 -1 0 -1 1 0 1 0 1 0 1 0 -1 0 -1 0\n\u23a2 \n\u23a2-1 0 -1 0 -1 0 -1 0 0 1 0 1 0 1 0 1 0 -1 0 -\n\u23a2 \n\u23a2-1 0 1 0 -1 0 1 0 0 1 0 -1 0 1 0 -1 0 -1 0 1\n\u23a2 \n\u23a20 -1 0 1 0 -1 0 1 1 0 -1 0 1 0 -1 0 -1 0 1 0\n\u23a2 \n\u23a21 0 1 0 -1 0 -1 0 0 -1 0 -1 0 1 0 1 0 -1 0 -\n\u23a2 \n\u23a20 1 0 1 0 -1 0 -1 -1 0 -1 0 1 0 1 0 -1 0 -1 0\n\u23a2 \n\u23a20 -1 0 1 0 1 0 -1 1 0 -1 0 -1 0 1 0 1 0 -1 0\n\u23a2 \n\u23a2-1 0 1 0 1 0 -1 0 0 1 0 -1 0 -1 0 1 0 1 0 -\n\u23a2 \n\u23a20 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 -1 0 -1 0\n\u23a2 \n\u23a21 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 -1 0 -\n\u23a2 \n\u23a2-1 0 1 0 -1 0 1 0 0 -1 0 1 0 -1 0 1 0 1 0 -\n\u23a2 \n\u23a20 -1 0 1 0 -1 0 1 -1 0 1 0 -1 0 1 0 1 0 -1 0\n\u23a2 \n\u23a2-1 0 -1 0 1 0 1 0 0 -1 0 -1 0 1 0 1 0 -1 0 -\n\u23a2 \n\u23a20 -1 0 -1 0 1 0 1 -1 0 -1 0 1 0 1 0 -1 0 -1 0\n\u23a2 \n\u23a20 -1 0 1 0 1 0 -1 -1 0 1 0 1 0 -1 0 -1 0 1 0\n\u23a2 \n\u23a2-1 0 1 0 1 0 -1 0 0 -1 0 1 0 1 0 -1 0 -1 0 1\n\u23a2 \n\u23a21 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1\n\u23a2 \n\u23a20 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0\n\u23a2 \n\u23a20 -1 0 1 0 -1 0 1 -1 0 1 0 -1 0 1 0 -1 0 1 0\n\u23a2 \n\u23a2-1 0 1 0 -1 0 1 0 0 -1 0 1 0 -1 0 1 0 -1 0 1\n\u23a2 \n\u23a20 -1 0 -1 0 1 0 1 -1 0 -1 0 1 0 1 0 1 0 1 0\n\u23a2 \n\u23a2-1 0 -1 0 1 0 1 0 0 -1 0 -1 0 1 0 1 0 1 0 1\n\u23a2 \n\u23a2-1 0 1 0 1 0 -1 0 0 -1 0 1 0 1 0 -1 0 1 0 -\n\u23a2 \n\u23a30 -1 0 1 0 1 0 -1 -1 0 1 0 1 0 -1 0 1 0 -1 0\n\n1 0 -1 0 -1 -1 0 -1 0 -1 0 -1 0 \u23a4\n \u23a5\n -1 0 -1 0 0 -1 0 -1 0 -1 0 -1\u23a5\n \u23a5\n -1 0 1 0 0 -1 0 1 0 -1 0 1 \u23a5\n \u23a5\n 0 -1 0 1 -1 0 1 0 -1 0 1 0 \u23a5\n \u23a5\n 1 0 1 0 0 -1 0 -1 0 1 0 1 \u23a5\n \u23a5\n1 0 1 0 1 -1 0 -1 0 1 0 1 0 \u23a5\n \u23a5\n1 0 -1 0 1 1 0 -1 0 -1 0 1 0 \u23a5\n \u23a5\n -1 0 1 0 0 1 0 -1 0 -1 0 1 \u23a5\n \u23a5\n -1 0 -1 0 0 -1 0 -1 0 -1 0 -1\u23a5\n \u23a5\n1 0 -1 0 -1 -1 0 -1 0 -1 0 -1 0 \u23a5\n \u23a5\n 0 -1 0 1 -1 0 1 0 -1 0 1 0 \u23a5\n \u23a5\n -1 0 1 0 0 -1 0 1 0 -1 0 1 \u23a5\n \u23a5\n1 0 1 0 1 -1 0 -1 0 1 0 1 0 \u23a5\n \u23a5\n 1 0 1 0 0 -1 0 -1 0 1 0 1 \u23a5\n \u23a5\n -1 0 1 0 0 1 0 -1 0 -1 0 1 \u23a5\n \u23a5\n1 0 -1 0 1 1 0 -1 0 -1 0 1 0 \u23a5\n \u23a5\n -1 0 -1 0 0 1 0 1 0 1 0 1 \u23a5\n \u23a5\n1 0 -1 0 -1 1 0 1 0 1 0 1 0 \u23a5\n \u23a5\n1 0 1 0 -1 -1 0 1 0 -1 0 1 0 \u23a5\n \u23a5\n 1 0 -1 0 0 -1 0 1 0 -1 0 1 \u23a5\n \u23a5\n1 0 1 0 1 1 0 1 0 -1 0 -1 0 \u23a5\n \u23a5\n 1 0 1 0 0 1 0 1 0 -1 0 -1\u23a5\n \u23a5\n 1 0 -1 0 0 1 0 -1 0 -1 0 1 \u23a5\n \u23a5\n 0 1 0 -1 1 0 -1 0 -1 0 1 0 \u23a5\n \u23a5\n 0 1 0 1 -1 0 -1 0 -1 0 -1 0 \u23a5\n \u23a5\n 1 0 1 0 0 -1 0 -1 0 -1 0 -1\u23a5\n \u23a5\n -1 0 1 0 0 1 0 -1 0 1 0 -1\u23a5\n \u23a5\n 0 -1 0 1 1 0 -1 0 1 0 -1 0 \u23a5\n \u23a5\n -1 0 -1 0 0 -1 0 -1 0 1 0 1 \u23a5\n \u23a5\n 0 -1 0 -1 -1 0 -1 0 1 0 1 0 \u23a5\n \u23a5\n1 0 -1 0 1 -1 0 1 0 1 0 -1 0 \u23a5\n \u23a5\n -1 0 1 0 0 -1 0 1 0 1 0 -1\u23a6" + } + ], + "collapsed": false, + "prompt_number": 15, + "input": "represent(4*encoding_circuit, nqubits=5)" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/qft.ipynb b/docs/examples/notebooks/qft.ipynb index fda43e2..cfb4746 100644 --- a/docs/examples/notebooks/qft.ipynb +++ b/docs/examples/notebooks/qft.ipynb @@ -1,525 +1,162 @@ - - - qft - 2 - - - - - <h1>Quantum Fourier Transform</h1> - - - %load_ext sympyprinting - python - 1 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 2 - 1 - - - - QFT is useful for a quantum algorithm for factoring numbers which is exponentially faster than what is thought to be possible on a classical machine.<br> -The transform does a DFT on the state of a quantum system<br> -There is a simple decomposition of the QFT in terms of a few elementary gates. - - - <h2>QFT Gate and Circuit</h2> - - - Build a 3 qubit QFT and decompose it into primitive gates. - - - fourier = QFT(0,3).decompose(); fourier - - python - 3 - 0 - - - pyout - SWAP ⋅H ⋅C ⎛S ⎞⋅H ⋅C ⎛T ⎞⋅C ⎛S ⎞⋅H - 0,2 0 0⎝ 1⎠ 1 0⎝ 2⎠ 1⎝ 2⎠ 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVRrQUFBQWNDQVlBQUFBYTk4akFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDYWxKUkVGVQplSnp0bkh1UUhFVWR4ei9oTHJrTGdRc1FFbEZFeTBSTE5GYUlt -a0pEQW9rYUExRWU0cU0wUmhFSUZpSWlWVVRVbUJCQlNrRVJsZUtwCnFNaERwUFJRZVlnNWlXUk5J -QjZDS0FVK1VpTHhVTEY0bkFvSkNCaHkvdkg3alRzNzI5M1RNN083YzNQcFQ5WFczdTZ2OS9mci90 -NXYKdTZjZnN4QUlCQUk3S2QzQXg0RnJnT3VBSHdQTGdVbkFUNEYxd0xQQUNMQWRHQVIyMTg5K0do -aFMyd2p3VytDWW1POWpnVWZWdGczNApna2Q5ZmdRYzc3Q1BCd2FBQjlUdnY0RmJnYlhBUnVCQjRH -Ymd0UjZ4c3RLanNSL1UyTThBOXdEbnFuMDJzQUY0VE8zL0JPNEVsbWFJCk1SazREdmdHY0lmR1d3 -Y3NWdnRTdGJjU1Z3N2MzQUwvWTBXM1ZWcS9wNUh2d1ZwZ2k3NzNLUEF6ZmR5cjc5MVdNRjVFcDNO -aUxPVEQKLzVtSVZIbzFzRXZzL1pYQVpxU0JBRi9VWU44MCtKaWh0dXN0TVE0RWZnbnM1bEdmZDZx -dk5SNWxEOWV5cHliZUg0OGt3elBBbXozOAo1T0VkR251bHhYNkIyaGRrOUxzWUdUVE9CK1lpeVFh -U1hOOEd2Z3c4Qjd3OGc4OVRVdXkrT1dEaXBZZ1d2bFJKTjJqVzdqN2d4SmgvCnFIZDhTUjFXQTFj -YWZHYlZyTk01TVJieW9ZRWZBSmRiYkE4REoramZLelRZUllaeXIxYmJUUlkvbndlbWVkUmxFbkMv -K3JyRW8zelUKOGM0MDJQWlQyN1VlZnZKd3Z2by93R0svRjlnS2RIbjY2d1l1UmE2WTMyOHAwd3Y4 -R2ZpTGR5MWxaSHhqU2huZkhMQnhLWENRWjMycQpvaHMwYXpjVHVOQlFiZ0NaNGZRbDNqOEk2UUJO -K0doV1ZrNVVPUithbUl5TUFJc3Q5Z0hnWmZyM3NkZzd1Y3ZVdHNsZ2V3MXkyZXZECnVZaUFJOEFQ -UGNvUEFzUEFPSVB0bGVwbnZXZnNyTndOUEc2SlBRWFlnVXhsZlBtY2ZzYjJ2NGo0bGo1OGVCL3dx -WlF5V1hMQXhoVGcKRDhCMGp6cFZRVGN3YTNjbXpRTnFOL0lsL0xYQngxSEFleXorZlRRckl5ZXFu -ZzlOdkIzcENFNjIyRmZIL2o0U2N5ZTNDTG5LZXhLNQpsRTF5TVRKOVRPTlZ5QWd5SG1tWXFjT01N -d240TDNDanhYNk0xbmU1Uit5czdJNk0zTGJwZVRUbC9veW52L25xenpVTmlGaUYzN3BFCkQvQWI2 -bXVuTnJMa2dJc1BJSU9kaXlyb0JuYnRUT3ZFQnlKMS9xckJkZ2p1TDdwTHM3Snlvc3I1WUdSdkRm -SXNNcStmajcxRG1rZHoKSjllRHpOMG5JSXV2anlVK2N6VHdOcys2M0VJOUlZYVJCVWtYYjlYNmZO -Smc2MEpHa2kya2Y4bnpzRVJqMjlZMUxsVDdQQTlmdXlCVApqZTNJMVdjYWk1QVJMbzBQWWI3cVRw -SWxCOUw0STI2OXE2QWIrR3NIOEFta3prZDdsazlpMHF6TW5LaHFQamc1bmZyT2FiUURlakd3ClI2 -TGMvalIzY211QUkvVHZ1eEZ4b3N2T0hzenJGeWFXQVdmSFh2OGUyYjF5Y2JiV0p6bjMzeGZaQ2Vw -SExyM2J3VGthKzNia1VqcjUKMklyVWY0S0hyd1BVMXcwdHJtTS84QzdQc3I0NWtNWTY0Q1NIdlFx -NlFUYnRia1JtSHI0ZGFCS1RabVhuUkJYeklaWDlnYk9RTGR2bgpOSEIvb3N3MEdqdTVHVFJPRlFm -VXZxZStYb0hmS05TSGJBM3ZHbnZ2TnZYbDZxUTJBTThqdTcyWDZlTUtiY2NpajdoRjJBVDhDL2M2 -Cmd1L1JnWk9SdG42Mk5WVURwRjVQQUMvTThCbWZIRWpqSXVBN0R2dG8xdzJ5YVRjT09kcHdmNEY0 -SnMxR1EwNVVMUjh5TVJONENGbnYKNm8yOTMwMWpKM2NUall1dzE2cDlCaUxrV1o3eExnRGVuWGp2 -ZStyTDFrbjJJc2REN3ZLTTBVcDJSZjdwUDdIWW83WExNejM5WGFYbApmVWJZZldrY0RHeE1SUVlB -VS9MNFlNdUJORTRCYWhaYkZYU0RiTnJOd3Y4a2dBMlRacU10SjZxUUQwRGplUmVRUTd3bWZnZDhW -d1BFCkJkbU9qQVFnbmRLUWxvMTRYSituQUtjQlgvR28wMnhrd2ZRRUdpOVQ1NnA5SDh2bjNvQk1o -MnNlTVZyTlhHU05ZcVBGUGwrZmYrSHAKYjBpZkgvWW9ld2FTR0duc2cveXZSbExLWmMyQk5EWWo1 -NlJNVkVFMzhOY09aR01CNUdvbkx5Yk55c3FKS3VjRDBOako3UVlzZEpUdApRMDRmL3lmeC9qQ3lr -TGlHNWt2cFlYMWVnalR1Q2R5TVF6ckNCY0JoaVVlMGxtZnI1S0xrcWpuOHZ4alpLajhKK0JxeW9K -ckdIR1RrCk9BODVUR3c2MnhmRnZ0M2lZeDZTZElPZWRhbnBjOXJkR1F1MTdIWVBueE5JUDFlVUp3 -ZW1JeWZnYld6RGZ1QTdqMjZ1dURWOXpxb2IKRk5jdUlxMlQ4OGtuazJZMWZjN1ROakRybGRhdXJQ -bVF0MjBSUmZMQkp6WkxFR0ZtR0d6VGdFZUFOeGxzZHlFTGtxWnpieDlEZXZwQgptcThhVFN4SEZq -aE52QmZ6blF3UjZ6QWZ2b3p6YzBRTWtEVzZ0TG45VkdRaE5HSTE4Q2VhUjY0YU1sWHVNZmpvVVZ2 -eUgrZXF5MFNOCnM1N0dVL1J4NWlCcmp2RzZ1SHhHQjZGZDZ5OVpjbUF5b3NkMXVOZWZqcWZ4Nmo1 -T2pleTZ1ZUxtMVEyS2F4ZnhENjJEQ2Q5OE1tbVcKdDIwdXZkTGFsU1VmaXJRdG9rYjJmTWdTbS9Q -VTBJL2NyUkF4SGVta1ZsZ3F0aGJaK1RRSnZ4UVI4V0RMWitNY2hzenhiU1BMVzlUWApPUVpiSC9B -VXNwdHI0L1hBMzJPdnU1RnpmSzR6UzRkcW1hampqSGFUNDZQcEhzaElkb2ZEeHdqMSsrOTg2L0lp -NU9xM0gva25Sa3hGCmJpRmFSZVBBa2VaelBKS3dDeTMxaEh3NWNEanVUdTVMeUFDVUpJOXVQbkd6 -NmdhdDBRN2tqb0VSN0F2clB2a0VkczN5dEMzQ3BGZGEKdTdMa1E5RzJGY2tIMzloY0RleUY5TXkz -SWxkb2E1RWI0MTIzWTF5Ty9TVDBBdlhyNG5XSWtOSFc5Q0NOSGVaRVpQUWFWdnVUK25xVwpQallD -ZjFYYlZxU25YMmFJczR6bVRZa0hjQy9rOWxJL0RnUFNXZTlBUnI3Wkd1dHYxRy9PM29pY0hnYzVl -SHduc2xNMGdveDY2NUZrCjhhM0xDNUJEajdjZzkvbGVpZHp5WXJwbno4Zm5KdUFqbHJaQ3ZoeEk2 -K1J1UU5hSUlvcm81aHMzaTI1UVRMczV5TTMzRzZpdmIyM1QKMXdQQVMySmxYZmtVSjZsWm5LeHRp -N0RwNWNxSkxQbVF0MjJ0eUFmZjJHT2VVMmxlc0x3UDl5K2JKTGtldVRkMk5OUWxqODh6TUovQwpM -MEphSjdlWitqU3drM0d6VUpaMnRueHFoMlkydmRyUkx1aHMyNXl4ZmRiSnhncGJhTjVGbW9TY2Fm -TGhST1RFdVcyM3FaTjF5ZXZ6CkttUzlLY3VXZnhGbUlUOTVaYnFIY3pSUmhuYTJmT3EwWnUzSWlU -TGIxaFI3WityazdxRnh4NlVMMlVGN3lPT3pSK3J6Q2lUNTl5cXgKTGtWOERpSFRISitmckNwS0Yz -SW9leVYrUnkvS3BOUGEyZktwRE0xYW5STmx0cTNWMzlOS01vUWNGUUNadDhlM29tY2hDN3RKRHFa -eAp2djlCNEJWdHJrczdmZllCdjBMYTJ3cHMwNkRUZ0srM0tFYVd1SG5wbEhhdWZHcW5aaTY5V3BV -VFpiVXRMZlpPeFNISXp0ZHh5SDEzCnMyTzI3eU1MeUhGbUlwc1pJN0hIMDdUbUN0aFZsM2I3M0J2 -NVljVWlkQU1mUlc3ajI0YnM3RVdMMGZzaEovN2JNVk53eFMxQ0o3UnoKNVZPN05QUFZxMmhPbE5F -Mm45aTViL0dwT2ozSTJiNDRYY2hPemhXeDkzcHB2Z0g1ZVpwL1dhWFZkZW1FejZKeHh5RTdmWEdl -UXBLdApHOW5kMmxIQWY1NjRyYUNkMnJueXFWMmFaZEdyU0U2VTBUYWYySUVFSHk2N0FvRkFJTkF1 -anNCK1QxMGdFQWhVSHR1dE1vRkFJQkFJCkJBS0JRQ0FRQ0FRQ2dVQWdFQWdFUFBrZlRGN0w5cHFY -RnRvQUFBQUFTVVZPUks1Q1lJST0K - - $$SWAP_{0,2} H_{0} C_{0}{\left(S_{1}\right)} H_{1} C_{0}{\left(T_{2}\right)} C_{1}{\left(S_{2}\right)} H_{2}$$ - 3 - - - - - circuit_plot(fourier, nqubits=3) - python - 4 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x4992910&gt; - 4 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWE4QUFBREZDQVlBQUFEamMzMkpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUVuaEpSRUZVZUp6dDNYOU1W -ZlhqeC9IWHVaZXVBaUVDU1psT2l6a1hHalZyRUNFZ1FicTBXV0hhCm9tWHBWcE5wemJJZmxMVmFm -eGkxMnF6Vy9GU3pIMXQva0ptMVlhNW1UbjdJYmVudEY3T29HRkZpcThSTUVMaG8vRGpmUDVwOFk5 -eUwKZ0pkNzd2djZmR3pubi9QV3crdk5rZnZpdk0rNVY4dTJiVnNBQUJqRTVYUUFBQUJHaS9JQ0FC -aUg4Z0lBR0lmeUFnQVloL0lDQUJpSAo4Z0lBR0lmeUFnQVloL0lDQUJpSDhnSUFHSWZ5QWdBWWgv -SUNBQmlIOGdJQUdJZnlBZ0FZaC9JQ0FCaUg4Z0lBR0lmeUFnQVloL0lDCkFCaUg4Z0lBR0lmeUFn -QVloL0lDQUJpSDhnSUFHSWZ5QWdBWWgvSUNBQmlIOGdJQUdJZnlBZ0FZaC9JQ0FCZ25Lc29yT1Rs -WmxtV04KMjVhY25PejBGQWVFY3E2Uk5DOXBmTTVqcE0wUlFHaFl0bTNiVG9jNFc1WmxhVHluTWQ3 -SEg0MVFab21rZVVuamt5ZlM1Z2dnTktMaQp5Z3NBY0c2aHZBQUF4cUc4QUFER2lmcnlXclpzbWRM -VDArVnl1ZVR4ZURSdjNqeXRXYk5Ha25UbzBDRVZGaFpxK3ZUcGNybGNTa3hNClZGWldsclpzMmVK -dzZySHA3ZTNWSzYrOG9wVXJWNnFrcEVURnhjVjY2NjIzMU5YVnBhVkxsem9kYjFRT0hqd29sOHNs -dDl1dE9YUG0KYVBIaXhicjIybXNIenVOMTExMm54WXNYS3ljblIvSHg4WEs3M2VybzZIQTZOb0J3 -c2FQQW1hYnh4UmRmMkpabDJRODg4RURBOGZMeQpjdHV5TFB2OTk5OGYwL0hES1ZnV3Y5OXYzM2pq -amZhbVRac0c3Uzh2TDdkbno1NXRsNVNValBoWVR2bHZubzBiTjlvclZxeXdPenM3CkIvWjkvLzMz -dG1WWjl1clZxd2Y5dllNSEQ5cVRKMDgrNHpFQlJJK292L0tTcE5yYVdrblNraVZMQW81WFZWWEo3 -WFpyMGFKRjRZd1YKVW5mZGRaZW1UWnVtalJzM0R0ci8yR09QcWJPelU5ZGZmNzFEeWNibTY2Ky9W -a1ZGaGVMajR3ZjIxZFRVU0pJV0xsdzQ2TTllZnZubAptajkvZmxqekFlY0t2OTgvWkY5L2Y3KzZ1 -N3NkU1BQL3pvbnlxcW1wa2NmalVXNXU3cEN4bnA0ZWViMWVaV1JrS0RFeDBZRjBaNis5CnZWMlZs -WlZhc1dKRndQR01qQXdWRlJXRk9kWFlmZlBOTjhyUHo1ZmI3UjYwLy9RdklmbjUrWVAyOS9YMTZZ -SUxMZ2hiUHVCYzBkWFYKcGJsejV3Nzg3RW4vRnRlOTk5NnJwNTkrMnNGazUwQjU5ZmYzeSt2MUtq -TXpVN0d4c1VQR2ZUNmYvSDcva0JkRWs5VFYxYW1ucDBlTgpqWTBCeC9QeThqUno1c3d3cHhxN28w -ZVBhdFdxVlVQMjE5Ylc2dEpMTDlXMGFkTUc3ZS9wNlFsNlZRMWc3T0xqNDdWMTYxWXRYNzVjCnRi -VzFBOFhWMU5Ta3A1NTZ5dEZzTVk1KzlUQ29yNjlYZTN1N0Nnb0tBbzVYVlZWSmtoWXNXQkRHVktH -Vm5aMHR0OXV0RFJzMjZKZGYKZnRFdHQ5eWlhNjY1UmpFeC81N2VKNTU0d3VHRW94Tm8rYmFwcVVs -Ly9QR0g3cjc3N2lGakV5ZE8xRzIzM1JhT2FNQTVwNmlvU0JVVgpGVnErZkxreU16UFYyZG1wWGJ0 -MjZmenp6M2MyV0xDYllaS00yb0o1NmFXWGJNdXk3S3lzTFB1R0cyNFlzcVdrcE5ndWw4dis2Nisv -CmdoN0Q2Ym1OWks0dnZQQ0NQV0hDQk51eUxOdXlMRHMrUHQ1ZXQyNmQzZGJXWnN5OGhqdVBiNzc1 -cG0xWmx2MzIyMjhIL1RPbXpKR04KamUzc3Q2QlhYclpCSDZsaldWYlFzWnFhR3NYRXhLaXFxa3B4 -Y1hHRHh2cjYralJwMGlTbHA2Y3JKU1ZsMks4UktkK1BZSE45K09HSAp0WFRwVWxWVVZLaXFxa3Bm -ZlBHRnRtelpvaU5Iam1qNzl1MUJqeGNwODVLR1A0L0I3bmVOUkNUTkVURE5mNWNLYTJ0ck5XWEtG -SDN3CndRZU8zMnFKNnM4MnRHMWJxYW1wdXVTU1MrVHorWWFNSHpod1FObloyU290TFIzMnZWMlI5 -UGw0STgzUzBOQ2d4WXNYNjg4Ly8xUkgKUjRjOEhzK1lqeFV1dytWSlMwdFRUMCtQRGg4K0hMSmpB -aGplZjR0cjE2NWRTa2hJMEo0OWUxUlNVdUo0Z1VYMUF4c05EUTA2ZHV5WQo4dkx5QW83WDFkVkpN -dnQrMS9QUFB4OXcvNXc1YzNUSEhYZElNdi9LNDdmZmZ0T3Z2LzRhOUR3Q0dCOG5UNTVVVWxMU29I -dGNSVVZGCmV1Kzk5OVRjM094b3RxZ3VyOU5MVFlFZWtaY2tyOWNyYVd4TFVaR2dzN05UMWRYVlFj -ZFBuRGlocTYrK1doTW1UQWhmcUhGd05rdUcKQU1ZdUxpNU9MNzc0NHBDSE13b0xDd00rRVJ4T1VW -MWVOVFUxc2l4cjJQS2FOV3VXcGs2ZEd1WmtvYkZ2M3o3dDJiTW40RzlBcmEydAoyckZqaDhyTHl4 -MUlGbHFueTh2a0syUUFvUlcxNVhYcTFDbFZWMWNyTFMxTnFhbXBROGJyNit2VjJ0cHE5Q2N6N04y -N1YybHBhU29yCks5TVBQL3d3c0wrNXVWazMzM3l6eXNyS2pIL0I5L3Y5K3V5enp6UjU4bVNscDZj -N0hRZEFoSWk2OTNtMXRMUm81Y3FWT256NHNJNGUKUGFyang0OHJOemRYZDk1NXAwcExTN1Z6NTA2 -Vmw1ZXJxYWxKbG1XcHNySlNCUVVGZXZiWlo1V1RrK04wL0ZFNWN1U0k5dS9mcjIrLwovVmJyMTY5 -WFcxdWJVbEpTRkJzYnE4MmJOeXM3Tzl2cGlHTmkyN2FLaTR2VjBkR2g1dVptdGJTMFNKS3lzckkw -ZWZKazNYUFBQYnl2CkN6akhSZlhUaHFZY2Z6VDRuNVNkUHlad3JvcWtuNmVvWFRZRUFFUXZ5Z3NB -WUp5b3VlYzEzS2N6bksya3BLUnhPL1pZaEdxdWtUWXYKS2ZUbk1STG5DT0RzUlVWNVJjb2FiRGlN -Wks2UnRDNDlHaVBOYk9yOEFJUU95NFlBQU9OUVhnQUE0MUJlQUFEalVGNEFBT05RWGdBQQo0MUJl -QUFEalVGNEFBT05RWGdBQTQxQmVBQURqVUY0QUFPTlFYZ0FBNDFCZUFBRGpVRjRBQU9OUVhnQUE0 -MUJlQUFEalVGNEFBT05RClhnQUE0MUJlQUFEalVGNEFBT05RWGdBQTQxQmVBQURqVUY0QUFPTlFY -Z0FBNDFCZUFBRGpVRjRBQU9OUVhnQUE0MUJlQUFEalVGNEEKQU9OUVhnQUE0MUJlQUFEalVGNEFB -T05RWGdBQTQxQmV3RGhMVGs2V1pWbmp0aVVuSnpzOVJVbWhuV2VrekFtUnk3SnQyM1k2QkVMTApz -aXhGODJrMWJYN2puVGRTdmgraHpCRXBjOEpna1hSZXVQSUNBQmlIOGdJQUdJZnlBaHl5Yk5reXBh -ZW55K1Z5eWVQeGFONjhlVnF6ClpvMGs2ZENoUXlvc0xOVDA2ZFBsY3JtVW1KaW9yS3dzYmRteXhl -SFVZOWZiMjZ0WFhubEZLMWV1VkVsSmlZcUxpL1hXVzIrcHE2dEwKUzVjdWRUb2VERU41QVE3NThN -TVA5YzQ3NzBpUzFxMWJwMisrK1VhdnYvNjZKR25tekpuYXUzZXY3cnZ2UGtuUzFxMWJkZURBQWEx -ZAp1OWFwdUdlbHU3dGJ0OXh5aXpvN08vWHV1Kytxb3FKQ0gzMzBrVnBiVzNYVlZWY3BJU0hCNlln -d0RPVUZPS2kydGxhU3RHVEprb0RqClZWVlZjcnZkV3JSb1VUaGpoZHhkZDkybGFkT21hZVBHallQ -MlAvYllZK3JzN05UMTExL3ZVREtZS3NicEFBaXQxdFpXU1ZKUFQ0L08KTys4OGg5UGdUR3BxYXVU -eGVKU2JtenRrcktlblIxNnZWeGtaR1VwTVRIUWdYV2kwdDdlcnNySlN1M2J0Q2ppZWtaR2hvcUtp -TUtlQwo2Ymp5aWhMZDNkMWF2bnk1WnN5WUlVbWFNbVdLdG0vZjduQXFES2UvdjE5ZXIxZVptWm1L -alkwZE11N3orZVQzKzVXZm4rOUF1dENwCnE2dFRUMCtQR2hzYkE0N241ZVZwNXN5WllVNEYwMUZl -VWVLaGh4N1NybDI3ZE9yVUtVbi8vcmE3YXRVcS9mVFRUdzRuUXpEMTlmVnEKYjI5WFFVRkJ3UEdx -cWlwSjBvSUZDOEtZS3ZTeXM3UGxkcnUxWWNNR1BmTElJL0o2dmVydDdSMFlmK0tKSnh4TUIxUHhK -dVVvRVI4ZgpMNy9mUDJoZlRFeU1IbjMwVVczYXRNbWhWT01qa3Q0b09STEI4cjc4OHN0NjhNRUhs -Wm1aR2ZBVEpYdytuNDRmUDY3VzFsYWxwS1NNCit2amhObHlPRjE5OFVVOCsrYVQrK2VjZlNWSmNY -SnhXclZxbFRaczJCVndTalpRNVliQ0lPaTkyRUpMWTJOaEN0QVZTWEZ4c24zZmUKZVhaWFY5ZVFz -ZDdlWGpzdUxzNmVPM2R1c0IvUmlQeFpIYzZQUC81b1AvMzAwM1orZnI3dDhYaHN5N0xzNWN1WFIv -eWMyQ0p6NDhvcgpTdHgwMDAzNjVKTlBCaTNIeE1YRmFmZnUzWm8vZjc2RHlVSXZvbjc3RzRGQWVX -M2JWbXBxcWk2NTVCTDVmTDRoZitmQWdRUEt6czVXCmFXbnBHZC9iRlNuZmo5SGthR2hvME9MRmkv -WG5uMytxbzZOREhvOW56TWRDK0VUU2VlR2VWNVI0L2ZYWE5XUEdEQ1VrSk9qODg4L1gKeElrVGRm -Lzk5MGRkY1VXTGhvWUdIVHQyVEhsNWVRSEg2K3JxSkpsL3YrdjU1NThQdUgvT25EbTY0NDQ3SkNs -aVhneGhGaDZWanhKVApwMDVWWTJPajl1N2RxOTkvLzExNWVYbEtTMHR6T2hhQ09QMytya0NQeUV1 -UzErdVZKS09mTk96czdGUjFkYlhLeXNvQ2pwODRjVUpYClgzMjFKa3lZRU9aa2lBYVVWeFJ4dTkx -YXVIQ2gwekV3QWpVMU5iSXNhOWp5bWpWcmxxWk9uUnJtWktHemI5OCs3ZG16UjgzTnpVTisKa1dw -dGJkV09IVHUwYmRzMmg5TEJkQ3diQW1GMjZ0UXBWVmRYS3kwdFRhbXBxVVBHNit2cjFkcmFhdnlT -Nzk2OWU1V1dscWF5c2pMOQo4TU1QQS91Ym01dDE4ODAzcTZ5c3pQaGxVVGlIS3k4Z1RGcGFXclJ5 -NVVvZFBueFlSNDhlMWZIang1V2JtNnM3Nzd4VHBhV2wycmx6CnA4ckx5OVhVMUNUTHNsUlpXYW1D -Z2dJOSsreXp5c25KY1RyK3FCMDVja1Q3OSsvWHQ5OStxL1hyMTZ1dHJVMHBLU21LalkzVjVzMmIK -bFoyZDdYUkVHSXluRFdHY1NIcmlhU1Q0enlpZFBSWkNKNUxPQzh1R0FBRGpVRjRBQU9OUVhnQUE0 -L0RBQmhBR2xtV04yN0dUa3BMRwo3ZGlqRmFwNVJ0S2NFSmtvTDJDY1Jjb043dkUyMG5sRzBrMS9t -SXRsUXdDQWNTZ3ZBSUJ4S0M4QWdIRW9Md0NBY1NndkFJQnhLQzhBCmdIRW9Md0NBY1NndkFJQnhL -QzhBZ0hFb0x3Q0FjU2d2QUlCeEtDOEFnSEVvTHdDQWNTZ3ZBSUJ4S0M4QWdIRW9Md0NBY1NndkFJ -QngKS0M4QWdIRW9Md0NBY1NndkFJQnhLQzhBZ0hFb0x3Q0FjU2d2QUlCeEtDOEFnSEVvTHdDQWNT -Z3ZBSUJ4S0M4QWdIRW9Md0NBY1NndgpBSUJ4S0M4QWdIRW9Md0NBY1NndkFJQnhLQzhBQ0NJNU9W -bVdaWTNibHB5YzdQUVVqV1hadG0wN0hRSVlEY3V5eEQ5YmM1bDAvc1k3CnEwbmZDeW15OG5MbEJR -QXdEdVVGQURBTzVRVUFZN0JzMlRLbHA2Zkw1WExKNC9GbzNyeDVXck5talNUcDBLRkRLaXdzMVBU -cDArVnkKdVpTWW1LaXNyQ3h0MmJMRjRkVFJnM3RlTUU0a3JidGo5RXc2ZjJmS3VuLy9mbDE3N2JW -YXYzNjlObS9lUEdUOHVlZWUwOGFORzdWdAoyemF0V0xGaTFNZVBOSkdVbHlzdkFCaWoydHBhU2RL -U0pVc0NqbGRWVmNudGRtdlJva1hoakhWT29MeGdETC9mcngwN2RraVNqaDA3CjVuQWFqRlpUVTVQ -ZWVlY2RTVkpmWDUrellVS2twcVpHSG85SHVibTVROFo2ZW5yazlYcVZrWkdoeE1SRUI5S2R2Zjcr -ZmxWVVZLaS8KdjMvUS9wOS8vbG1mZi82NVE2bitSWG5CQ0Q2ZlQ5T21UZFBxMWFzbFNkT25UOWUy -YmRzY1RvV1JzRzFiR3paczBCVlhYS0g3N3J0UAprblRaWlpmcHlKRWpEaWM3Ty8zOS9mSjZ2Y3JN -ekZSc2JPeVFjWi9QSjcvZnIvejhmQWZTaGNiSmt5ZjE2cXV2YXUzYXRRTUY5dlBQClA2dXdzRkRm -Zi8rOW85a29MMFM4L3Y1K0ZSY1hxNjJ0VFIwZEhaTCsvYUZhdlhxMS92NzdiNGZUNFV5cXE2djF4 -aHR2cUx1N1cxMWQKWFpLa1gzLzlWZXZXclhNNDJkbXByNjlYZTN1N0Nnb0tBbzVYVlZWSmtoWXNX -QkRHVktFVkZ4ZW5Uei85VkFjUEh0VGF0V3NsU1lXRgpoWHI4OGNkMTc3MzNPcG90eHRHdkRvekFq -ei8rcUxhMnRpSDdZMkppdEh2M2J0MSsrKzBPcE1KSXZmLysrL0w3L1lQMjlmYjI2dU9QClAzWW9V -V2ljdnQrMWUvZHVmZm5sbDBQR2ZUNmZMTXN5K3NwTGtoSVNFdlRwcDU4T2xIUlpXWmxLUzB1ZERh -VmhuamEwTEN2Y1dRQWcKNGdSN3VtN1pzbVg2K09PUDFkYldwcmk0dUVGamZYMTltalJwa2k2OTlG -Sjk5OTEzUVkvTjYrellCVjAydEcyYmpTMWl0cXV1dWtwdQp0M3ZRdjlHa3BDUjFkM2M3bm8xdCtP -Mjc3NzRiOHVJZUd4dXJCeDU0d1BGc1o5cUdlMzNjdDIrZnJyenl5aUZ6azZTdnZ2cEszZDNkCkk3 -cnFjbnFPWjlxYW1wbzBZOFlNL2U5Ly85T0pFeWVVazVPak5XdldxSyt2ejlGYzNQT0NFWGJ1M0ts -NTgrWXBOalpXOGZIeG1qRmoKaHZiczJhT0pFeWM2SFExbk1IZnVYRzNkdWxXVEprMVNRa0tDSmt5 -WW9LVkxsK3E1NTU1ek90cVlOVFEwNk5peFk4ckx5d3M0WGxkWApKOG5zKzEyUzFOWFZwYUtpSWoz -KytPTXFMUzBkV0VJOGVQQ2dubm5tR1VlemNjOExScmo0NG92bDgvbDA2TkFoblR4NVVyTm56MmJK -CnhTQWxKU1c2OWRaYjFkallxQXN2dkZCVHBreHhPdEpaT1gyL0s5QWo4cExrOVhvbHlmajdYZkh4 -OGZya2swK1VucDQrc085MGdiVzMKdHp1WWpFL1lBSUNnZ24yaXhPMjMzNjd0Mjdmcmp6LytVR3Bx -NnBEeGl5NjZTSk1tVFZKalkrT1lqbzh6WTlrUUFFYmgxS2xUcXE2dQpWbHBhV3NEaXFxK3ZWMnRy -cStiUG4rOUF1bk1INVFVQUk5RFMwcUlGQ3hZb1BUMWRSNDhlVlV0TGkzSnpjL1hhYTY5Sit2ZSti -RTVPCmpoWXVYQ2pMc2xSWldhbUNnZ0xIUDRraVdyRnNDQUJCOEo5UlJpNnV2QUFBeHFHOEFBREdv -YndBQU1iaGZWNEFNSXp4ZkQ5aFVsTFMKdUIwNzJsRmVBQkFFRDFORUxwWU5BUURHb2J3QUFNYWh2 -QUFBeHFHOEFBREdvYndBQU1haHZBQUF4cUc4QUFER29id0FBTWFodkFBQQp4cUc4QUFER29id0FB -TWFodkFBQXhxRzhBQURHb2J3QUFNYWh2QUFBeHFHOEFBREdvYndBQU1haHZBQUF4cUc4QUFER29i -d0FBTWFoCnZBQUF4cUc4QUFER29id0FBTWFodkFBQXhxRzhBQURHb2J3QUFNYWh2QUFBeHFHOEFB -REdvYndBQU1haHZBQUF4cUc4QUFER29id0EKQU1haHZBQUF4cUc4QUFERytUOWJuYnVwaW1SUzFn -QUFBQUJKUlU1RXJrSmdnZz09Cg== - - - - - - The QFT circuit can be represented in various symbolic forms. - - - m = represent(fourier, nqubits=3) - python - 5 - 1 - - - - m - python - 6 - 0 - - - pyout - ⎡ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ -⎢╲╱ 2 ╲╱ 2 ╲╱ 2 ╲╱ 2 ╲╱ 2 ╲╱ 2 ╲╱ 2 -⎢───── ───── ───── ───── ───── ───── ───── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⅈ⋅π ⅈ⋅π ⅈ⋅π -⎢ ─── ─── ─── -⎢ ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ -⎢╲╱ 2 ╲╱ 2 ⋅ℯ ╲╱ 2 ⋅ⅈ ╲╱ 2 ⋅ⅈ⋅ℯ -╲╱ 2 -╲╱ 2 ⋅ℯ -╲╱ 2 ⋅ -⎢───── ────────── ─────── ──────────── ────── ─────────── ─────── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ -⎢╲╱ 2 ╲╱ 2 ⋅ⅈ -╲╱ 2 -╲╱ 2 ⋅ⅈ ╲╱ 2 ╲╱ 2 ⋅ⅈ -╲╱ 2 -⎢───── ─────── ────── ──────── ───── ─────── ────── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⅈ⋅π ⅈ⋅π ⅈ⋅π -⎢ ─── ─── ─── -⎢ ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ -⎢╲╱ 2 ╲╱ 2 ⋅ⅈ⋅ℯ -╲╱ 2 ⋅ⅈ ╲╱ 2 ⋅ℯ -╲╱ 2 -╲╱ 2 ⋅ⅈ⋅ℯ ╲╱ 2 ⋅ⅈ -⎢───── ──────────── ──────── ────────── ────── ───────────── ─────── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ -⎢╲╱ 2 -╲╱ 2 ╲╱ 2 -╲╱ 2 ╲╱ 2 -╲╱ 2 ╲╱ 2 -⎢───── ────── ───── ────── ───── ────── ───── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⅈ⋅π ⅈ⋅π ⅈ⋅π -⎢ ─── ─── ─── -⎢ ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ -⎢╲╱ 2 -╲╱ 2 ⋅ℯ ╲╱ 2 ⋅ⅈ -╲╱ 2 ⋅ⅈ⋅ℯ -╲╱ 2 ╲╱ 2 ⋅ℯ -╲╱ 2 ⋅ -⎢───── ─────────── ─────── ───────────── ────── ────────── ─────── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ -⎢╲╱ 2 -╲╱ 2 ⋅ⅈ -╲╱ 2 ╲╱ 2 ⋅ⅈ ╲╱ 2 -╲╱ 2 ⋅ⅈ -╲╱ 2 -⎢───── ──────── ────── ─────── ───── ──────── ────── -⎢ 4 4 4 4 4 4 4 -⎢ -⎢ ⅈ⋅π ⅈ⋅π ⅈ⋅π -⎢ ─── ─── ─── -⎢ ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ ⎽⎽⎽ 4 ⎽⎽⎽ -⎢╲╱ 2 -╲╱ 2 ⋅ⅈ⋅ℯ -╲╱ 2 ⋅ⅈ -╲╱ 2 ⋅ℯ -╲╱ 2 ╲╱ 2 ⋅ⅈ⋅ℯ ╲╱ 2 ⋅ⅈ -⎢───── ───────────── ──────── ─────────── ────── ──────────── ─────── -⎣ 4 4 4 4 4 4 4 - - ⎽⎽⎽ ⎤ - ╲╱ 2 ⎥ - ───── ⎥ - 4 ⎥ - ⎥ - ⅈ⋅π⎥ - ───⎥ - ⎽⎽⎽ 4 ⎥ -ⅈ -╲╱ 2 ⋅ⅈ⋅ℯ ⎥ -─ ─────────────⎥ - 4 ⎥ - ⎥ - ⎽⎽⎽ ⎥ - -╲╱ 2 ⋅ⅈ ⎥ - ──────── ⎥ - 4 ⎥ - ⎥ - ⅈ⋅π ⎥ - ─── ⎥ - ⎽⎽⎽ 4 ⎥ - -╲╱ 2 ⋅ℯ ⎥ - ─────────── ⎥ - 4 ⎥ - ⎥ - ⎽⎽⎽ ⎥ - -╲╱ 2 ⎥ - ────── ⎥ - 4 ⎥ - ⎥ - ⅈ⋅π ⎥ - ─── ⎥ - ⎽⎽⎽ 4 ⎥ -ⅈ ╲╱ 2 ⋅ⅈ⋅ℯ ⎥ -─ ──────────── ⎥ - 4 ⎥ - ⎥ - ⎽⎽⎽ ⎥ - ╲╱ 2 ⋅ⅈ ⎥ - ─────── ⎥ - 4 ⎥ - ⎥ - ⅈ⋅π ⎥ - ─── ⎥ - ⎽⎽⎽ 4 ⎥ - ╲╱ 2 ⋅ℯ ⎥ - ────────── ⎥ - 4 ⎦ - $$\left(\begin{smallmatrix}\frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2}\\\frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi}\\\frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} \mathbf{\imath}\\\frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi}\\\frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2}\\\frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi}\\\frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & \frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} \mathbf{\imath}\\\frac{1}{4} \sqrt{2} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} \mathbf{\imath} & - \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi} & - \frac{1}{4} \sqrt{2} & \frac{1}{4} \sqrt{2} \mathbf{\imath} e^{\frac{1}{4} \mathbf{\imath} \pi} & \frac{1}{4} \sqrt{2} \mathbf{\imath} & \frac{1}{4} \sqrt{2} e^{\frac{1}{4} \mathbf{\imath} \pi}\end{smallmatrix}\right)$$ - 6 - - - - - represent(Fourier(0,3), nqubits=3)*4/sqrt(2) - - python - 7 - 0 - - - pyout - ⎡1 1 1 1 1 1 1 1 ⎤ -⎢ ⎥ -⎢ 2 3 4 5 6 7⎥ -⎢1 ω ω ω ω ω ω ω ⎥ -⎢ ⎥ -⎢ 2 4 6 2 4 6⎥ -⎢1 ω ω ω 1 ω ω ω ⎥ -⎢ ⎥ -⎢ 3 6 4 7 2 5⎥ -⎢1 ω ω ω ω ω ω ω ⎥ -⎢ ⎥ -⎢ 4 4 4 4⎥ -⎢1 ω 1 ω 1 ω 1 ω ⎥ -⎢ ⎥ -⎢ 5 2 7 4 6 3⎥ -⎢1 ω ω ω ω ω ω ω ⎥ -⎢ ⎥ -⎢ 6 4 2 6 4 2⎥ -⎢1 ω ω ω 1 ω ω ω ⎥ -⎢ ⎥ -⎢ 7 6 5 4 3 2 ⎥ -⎣1 ω ω ω ω ω ω ω ⎦ - $$\left(\begin{smallmatrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\1 & \omega & \omega^{2} & \omega^{3} & \omega^{4} & \omega^{5} & \omega^{6} & \omega^{7}\\1 & \omega^{2} & \omega^{4} & \omega^{6} & 1 & \omega^{2} & \omega^{4} & \omega^{6}\\1 & \omega^{3} & \omega^{6} & \omega & \omega^{4} & \omega^{7} & \omega^{2} & \omega^{5}\\1 & \omega^{4} & 1 & \omega^{4} & 1 & \omega^{4} & 1 & \omega^{4}\\1 & \omega^{5} & \omega^{2} & \omega^{7} & \omega^{4} & \omega & \omega^{6} & \omega^{3}\\1 & \omega^{6} & \omega^{4} & \omega^{2} & 1 & \omega^{6} & \omega^{4} & \omega^{2}\\1 & \omega^{7} & \omega^{6} & \omega^{5} & \omega^{4} & \omega^{3} & \omega^{2} & \omega\end{smallmatrix}\right)$$ - 7 - - - - - <h2>QFT in Action</h2> - - - Build a 3 qubit state to take the QFT of. - - - state = (Qubit('000') + Qubit('010') + Qubit('100') + Qubit('110'))/sqrt(4); state - - python - 8 - 0 - - - pyout - ❘000⟩ + ❘010⟩ + ❘100⟩ + ❘110⟩ -───────────────────────────── - 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVA0QUFBQWlDQVlBQUFCL2FtUUZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCUjVKUkVGVQplSnp0bkZ0b0hGVVl4My9iSk5hbXBob3JhUnZGVnEyWVFnUXQr -aUJLS3lxaWd1TGxJWUpRUVgzd1FiRytGQzhnNjFNcGxHb3JvcjNnCkJYendwWWhJOVVHMGlvaGFC -VVdyQmtHRldtOTRiMU1xYWMzNjhNMjRrM0V1NTh5ZU16dVovWDZ3N002Wi8zNTgvejJabVhNTktJ -cWkKWkRBTTlIYzdDVVZSeW1FK3NBYjRCbGpSM1ZRVVJYSEJQQVBOQkRBRW5PVTVGMFZSS2tnTGZl -SXJTaTB3ZWVJcmlsSXpldjNDUHgyNAp1TnRKbEVRdmVRWDFtMG1mUmVBbXNCWDQwektoS0FOSWdv -ZUFHNEhKMlBuNXdMM0F6Y0FGd0JUd2MwSWNWN29wNEc1Z2J5RTNkc1Q5Cm1ub0FhQUFiZ1ErQTZS -Uk5sYjJHdVBCaHFwc3JmazExUmZ5ZUEveVJuMzQybmZieCt4Rnpwd1RIemRqNVB1QWo0S0hnZUJI -d0NiRE8Kcys0ZVlJbTVqY0kwSTU5TmN3dTFUeUsvLzJrcHNhdnNOY1NsajdyNE5kVVY5YnNSdWZn -TDB3Z1M2MlJrZnpOd2J1UzRHVHQvRy9BWAowaW9JV1FjY1lYYnlyblduQXZjYmVvaGoyMkt5eVcw -RWVCbDREL2lhN0QrTUtudjE0YU1PZnN1bzMySGduWXk0bWR3T1BJUGNjVjRFCjFoZUljVDd3Vkt5 -c0dmbmNBRDREWG9wcGxnSXp3QVpQdXBCSEtUYmVzY2RDMjdUTWJRQTRNZmk4bWZRL2pDcDdCZmMr -NnVLM3JQcTkKQmRnVUQycnlnendQM0FGY0JOd0tQRzd3blRnYmdKMFo1ODhFeG9FUFkrVS9BZDhC -VjNuU2hid0dYSmZwSUptRkJiNWptdHN4NEcrSAo4VUxLOUFydWZkVEZiMW4xdXh1NG5QWk5CaWhu -Vkw4UHVBenBrNlN4TEhnL25IQnVDbGpwU1JmeVBuQkpSbjR1c2MzTmRid3l2ZHBRCmg3cjFnUXUv -dndBM1JRdkt1UERIZ1lOSXN5U05wY0g3Vk1LNUk3UUhCRjNyb2h3RXpzakkwUlZGY25NZHJ5eXZO -dFNoYm4zZ3d1OGsKY2gzK1Izamh0enk4UWthQjMzTE1MUWplanlXY2F5RlRHVDUwVVVhQVgzUHlk -RUdSM0Z6SEs4dXJEWFdvV3grNDhEc0pMSThLd3QxMgpqVTZ6eTJBWU9KcWorVExqM0VLa3FlSkRG -eklJL0lOWm42dFRiSE56SGE5TXJ6YlVvVzU5NE1MdkFkb3RCNkNjYmJhL2t6OE4rQVZ3Cm5QYmRM -Y29nOEtNblhjZ0VNbU9SUkFQWWxoTHJQR0JYUXZrTThDREpMUjNiM1BLb3NsY2I2bEMzUG5EaGR6 -bXhoVHhsWFBnL0FHTTUKbW1uZ0svN2ZEeHRFVnZydDg2UUxXUWs4bTVKYkM5aE9iRlEwNEVMZzZZ -VHlHZEpYVE5ubWxrZVZ2ZHBRaDdyMWdRdS9xNER2b3dWbApYUGo3a2FiSE1yS2ZacDhpVTRaUjFn -QW5NSHNxMExWdU5iSkdJWXY5S2VXSERiNmJoR2x1cnVOMXc2c05kYWhiSDNUcWQ0eFk2NldNClVm -MFpaRzV4Vlk3dUJlQnFabmNMcmtmV0w3L2hVWGNEOEVxZUNjZVk1dVk2WGplODJsQ0h1dlZCcDM3 -UEJsNlBGcGc4OFJjQWR5RnIKZ0E4QXo1Rzk0U0NKVGNIcnpRek5IdUFCWk1IQlZtUTI0RXFreitK -THR3aVpKamx1NmFkVFRITHJCKzVEQm1YdURNcDJJNXN3OWdKdgpXOGJybGxmWFBreDFWZmRiVnYx -T0FLOFNXd2VRTjVvL0QzZ0NlQVRwMTJ4Qm1oeHJrZWE3RGR1QWoybjNQNWFRdk91cUgybXlIRVdt -CklaS21NVnpwaHBEZjRKQ3BpUmh2SWF1aVRFanltNVZiSDNCdFNxeHZnYzhUeXF2bzFiVVBVMTNW -L1paUnY0c1JIMnVSUVhaanhwRSsKMEVod1BJb01pRnhxRXlTUzlBNWkwd3B6bkRLMmZGYUZYdklL -OWZDN0Jka25ZODBROEJqU2pBQzVBYlF3dnhQR0NmZmoxd1hiNWJWegptVjd5Q3ZYd3U4SlZvUFhJ -Wm9HQlBLR2lLUFZnREhnWGFlNHJpdElEakNMOTg1T0Q0MTcvWDMyS1Vuc1dBdy9UYnQ2dkJxN3BY -anFLCm9uUkszblRlU2NqRS96VHRIWGVqd0JYSTFqOUZVZVlnZVF0NEJwRUZBMUZhNkVXdktJcWlL -SXFpS0lxaUtJcWlLRjNuWDdyc1VmN2kKM2xJV0FBQUFBRWxGVGtTdVFtQ0MK - - $$\frac{1}{2} \left({\left|000\right\rangle } + {\left|010\right\rangle } + {\left|100\right\rangle } + {\left|110\right\rangle }\right)$$ - 8 - - - - - Perform the QFT. - - - qapply(fourier*state) - - python - 9 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ -╲╱ 2 ⋅❘000⟩ ╲╱ 2 ⋅❘100⟩ -─────────── + ─────────── - 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5BQUFBQWtDQVlBQUFENHA3UjdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCWkJKUkVGVQplSnp0M0h1b1pWVWR3UEhQSFcvam5kRWNMYTFyVHRvZmFRWTVR -eFNwbzg1Y1N3SmoxQVRGQjhySWRLdXhtb2dKMG54T1lZMys0U1A2Cko2bEltSUVvUmhLTmZDR29K -Q2dPZ29NamdYL0kwRU1sRll1Um9sRnVmL3pPeG5QMjNlZHh6OW1QYzYvckM1dkRYZnUzOTE1bmY4 -OWUKZTYzZjJ2dVNTQ1FTaVVRVFREUmRnVDdNbGJDUGNmK09TNTNqOExjUzlyUG9QWjZBcVpxUHVS -c2Zxdm1ZUzVua3NHU1dEUkN6R3BkagpENmFyclU0SG44Vit2Rm5qTVpjcXlXR0RuSXUxb2p2MWlS -cVB1MHZjL2hPamt4eFd4T1FBTVE5V1hvdjVuSVMzOGZjR2pyMFVTUTdICmdEcGJyMS9peEpxTzlY -NGlPU3laUWNaQWRmTnhNZEI5cWVtS2xNU21waXZRQUV2TklWMDhEdEtGcTV2djQvWWU2OWRnVmd5 -TW44WDkKMkZjUXQ3YjErWHl1L0VwOFFReHNYOEc5K0dmQjltWEZmVUJrdi9iMytFNUxqWDRPR2Qx -anhwbFlqNTkyV1Q4Mkh1dTQvUjhqMHA3ZApPQi8zNFhNaW03UUQvOEVGQmJFenJhV2RHL0ZuTEcv -OWZaVVFzNkxDdU1OeFRkZHZWQy9qNEpEUlBSTHpRdWZnMy9oVmwrT01qY2ZsCjR1Ui9hdGdkRE1n -dE9Ldkx1c1B3QW83S2xUK0VkMFRyME02TXpoTy9Ddi9DSlcxbHkvQTY3cXd3RG00U0xkaENXYW04 -ZVp0eGNNam8KSHVGN2VGeGsrZVlVWDBCajQzRVQ3aFl0eG05YWxhK0NJL0JBai9YcnhZejJKYm55 -TGVJa3p1YktaM1NlK0d1Rm9QeWszbTkxWm9ySwpqb05UQ3VvOUNKdHgyUkRiNVJrWGg0enVzWjFK -M1MrZ2NmSllDajhRdDhwdVhJT3Y5RmgvdGpoWlQrYktON2JLNzhxVnorZzg4WS9nCjVTN0huY09u -SzRyTCtFbEJiRDltY2NVUTIxWEZxQTRaM1dNN3ZTNmdXanpXa1lXYnhIWXhHUHlXNGx2Z2xEaXhm -K3F4bjhkeG52bloKa0UrMlByc05Nak9tY2FDZy9PM1c1d2tWeFdXOGFMNk14VUpaRGhuZDQ2RFU0 -ckdPQytnZGNkVmVoNC9nNG9LWXphSnIwWXM1L05IOAoxdUpTdktGLzEySGFleWVsbmF6c3lJcmlN -bmJqb2o1MUhGZktjc2pvSGdlbEZvL1pCVFJYd2RMT1FaSCtld0JiYytzbWNhSCttWnNpCkxoQ3B4 -MitMUVY4dkpzVVBJYzlFMi9vcTRqTFdpTUZ6VlZUaHNOMWpWUTVabU1kQnFjWGpzcmJnc3BjaWZv -N1Q4UG0yc3N2d2U3emIKWlp0dUhDc0d4dC9CN3dhSUw1cGpJTEpDOEZwRmNSbm5LYTkxTGFJS2gw -VWV5M1RJd2owT1NpMGU2NTVJZlV6MEliZUtQdkNFbU1EYQp1TUQ5VE9FUG9sLytpd0czMllzekNz -cFh0ajVmcVNpTzZBWWNVTnpTd1RkRkM1NW50ZmhSRmlVU2RyV1d1aW5MSWNONUhKUW1QTmJDCjFm -aXZtSEQ3S3JZdGNQc0owVkxsQjZHbjUvNmUwWm05MlNMNjJIbDI0bjlpUHFDS09HTGczZXVwNUNu -UkY4OHYyMFMzcG1qZG9UMzIKVnpXak9tUjRqKzMweXNJMTRiRVdEc2RidUY1a2JBN3JIVDZQVy9H -MVhObHEzSkFybTlGNTR0Y3Bua2o4QjM1ZFlSd3h1VGdNNDViRwp6aGpWSWNON2JLZlhCVlNMeHlZ -ZUpqMkFlL0JEUEtNNEE5S05iNGorOTRUNGNjM2k2N2daZittejdSNDhMVnIwakhYNEtHNnJNRzRE -Cm51aFR0OFhHS0E0WnpXTTdoN1EraTlMcVkrUHhHTkhTN01DUGRkN1NodVZFOFF6VFFsNzFQVlZr -Z3JwbGkwN0p4VzlvTGUxTWl6NzgKVGpFYnYxZjAzL09VR2Zjanc3L1BYOVlkYUZ3Y1VvN0hMNHZF -dzNPdGJkNFZEMy8rVER3TmtWRzV4MzVpSjBYVzVidmlTMS9YMnZGYQowVDhjaFkrSjIrU2dUT1Br -SHV1ZkVuWE15RnFsZ3dXeEswUUxzMS92ZjF4U1J0d1I0b2MyRExOaXJERktzbUNjSEZLT3gyd2NX -TVErCjg1MDM1bkVOL3VxOWdkUFJyUjEvY2FFN1NnekZadkcvREVZaE9XeVFLZkZ1Ui9aWTkycHg4 -dGMxVnFQM0YyVThqWjBjamhIYjhhangKZkpNMU1SamJKWWVOY0JvZTFqbElTeXd1a3NPR09CbDNp -SmV5bHVHRHpWWW5NUVRKWVVNY0wxSjdXY2J1ZEh5cHVlb2toaUE1ckloKwphZXdQaTNmRjJ5ZXFq -c1JuOEdwVmxVcVVTbkpZSWYwdW9GWG1UMnpOaVZ4OVluR1FIQ1lTaVVRaWtVZ2tFb2xFb2hUK0Qw -Wk9ETlc0Ck1IRFZBQUFBQUVsRlRrU3VRbUNDCg== - - $$\frac{1}{2} \sqrt{2} {\left|000\right\rangle } + \frac{1}{2} \sqrt{2} {\left|100\right\rangle }$$ - 9 - - - - - - - +{ + "nbformat": 2, + "name": "qft", + "worksheets": [ + { + "cells": [ + { + "source": "

Quantum Fourier Transform

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "source": "QFT is useful for a quantum algorithm for factoring numbers which is exponentially faster than what is thought to be possible on a classical machine.
\nThe transform does a DFT on the state of a quantum system
\nThere is a simple decomposition of the QFT in terms of a few elementary gates.", + "cell_type": "markdown" + }, + { + "source": "

QFT Gate and Circuit

", + "cell_type": "markdown" + }, + { + "source": "Build a 3 qubit QFT and decompose it into primitive gates.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$SWAP_{0,2} H_{0} C_{0}{\\left(S_{1}\\right)} H_{1} C_{0}{\\left(T_{2}\\right)} C_{1}{\\left(S_{2}\\right)} H_{2}$$", + "prompt_number": 3, + "png": "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\n", + "text": "SWAP \u22c5H \u22c5C \u239bS \u239e\u22c5H \u22c5C \u239bT \u239e\u22c5C \u239bS \u239e\u22c5H \n 0,2 0 0\u239d 1\u23a0 1 0\u239d 2\u23a0 1\u239d 2\u23a0 2" + } + ], + "collapsed": false, + "prompt_number": 3, + "input": "fourier = QFT(0,3).decompose(); fourier\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 4, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x4992910>" + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAa8AAADFCAYAAADjc32JAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEnhJREFUeJzt3X9MVfXjx/HXuZeuAiECSZlOizkXGjVrECEgQbq0WWHa\nomXpVpNpzbIflLVafxi12qzW/FSzH1t/kJm1Ya5mTn7IbentF7OoGFFiq8RMELho/DjfP5p8Y9yL\ngJd77vv6fGznn/PWw+vNkfvivM+5V8u2bVsAABjE5XQAAABGi/ICABiH8gIAGIfyAgAYh/ICABiH\n8gIAGIfyAgAYh/ICABiH8gIAGIfyAgAYh/ICABiH8gIAGIfyAgAYh/ICABiH8gIAGIfyAgAYh/IC\nABiH8gIAGIfyAgAYh/ICABiH8gIAGIfyAgAYh/ICABiH8gIAGIfyAgAYh/ICABgnKsorOTlZlmWN\n25acnOz0FAeEcq6RNC9pfM5jpM0RQGhYtm3bToc4W5ZlaTynMd7HH41QZomkeUnjkyfS5gggNKLi\nygsAcG6hvAAAxqG8AADGifryWrZsmdLT0+VyueTxeDRv3jytWbNGknTo0CEVFhZq+vTpcrlcSkxM\nVFZWlrZs2eJw6rHp7e3VK6+8opUrV6qkpETFxcV666231NXVpaVLlzodb1QOHjwol8slt9utOXPm\naPHixbr22msHzuN1112nxYsXKycnR/Hx8XK73ero6HA6NoBwsaPAmabxxRdf2JZl2Q888EDA8fLy\nctuyLPv9998f0/HDKVgWv99v33jjjfamTZsG7S8vL7dnz55tl5SUjPhYTvlvno0bN9orVqywOzs7\nB/Z9//33tmVZ9urVqwf9vYMHD9qTJ08+4zEBRI+ov/KSpNraWknSkiVLAo5XVVXJ7XZr0aJF4YwV\nUnfddZemTZumjRs3Dtr/2GOPqbOzU9dff71Dycbm66+/VkVFheLj4wf21dTUSJIWLlw46M9efvnl\nmj9/fljzAecKv98/ZF9/f7+6u7sdSPP/zonyqqmpkcfjUW5u7pCxnp4eeb1eZWRkKDEx0YF0Z6+9\nvV2VlZVasWJFwPGMjAwVFRWFOdXYffPNN8rPz5fb7R60//QvIfn5+YP29/X16YILLghbPuBc0dXV\npblz5w787En/Fte9996rp59+2sFk50B59ff3y+v1KjMzU7GxsUPGfT6f/H7/kBdEk9TV1amnp0eN\njY0Bx/Py8jRz5swwpxq7o0ePatWqVUP219bW6tJLL9W0adMG7e/p6Ql6VQ1g7OLj47V161YtX75c\ntbW1A8XV1NSkp556ytFsMY5+9TCor69Xe3u7CgoKAo5XVVVJkhYsWBDGVKGVnZ0tt9utDRs26Jdf\nftEtt9yia665RjEx/57eJ554wuGEoxNo+bapqUl//PGH7r777iFjEydO1G233RaOaMA5p6ioSBUV\nFVq+fLkyMzPV2dmpXbt26fzzz3c2WLCbYZKM2oJ56aWXbMuy7KysLPuGG24YsqWkpNgul8v+66+/\ngh7D6bmNZK4vvPCCPWHCBNuyLNuyLDs+Pt5et26d3dbWZsy8hjuPb775pm1Zlv32228H/TOmzJGN\nje3st6BXXrZBH6ljWVbQsZqaGsXExKiqqkpxcXGDxvr6+jRp0iSlp6crJSVl2K8RKd+PYHN9+OGH\ntXTpUlVUVKiqqkpffPGFtmzZoiNHjmj79u1Bjxcp85KGP4/B7neNRCTNETDNf5cKa2trNWXKFH3w\nwQeO32qJ6s82tG1bqampuuSSS+Tz+YaMHzhwQNnZ2SotLR32vV2R9Pl4I83S0NCgxYsX688//1RH\nR4c8Hs+YjxUuw+VJS0tTT0+PDh8+HLJjAhjef4tr165dSkhI0J49e1RSUuJ4gUX1AxsNDQ06duyY\n8vLyAo7X1dVJMvt+1/PPPx9w/5w5c3THHXdIMv/K47ffftOvv/4a9DwCGB8nT55UUlLSoHtcRUVF\neu+999Tc3Oxotqgur9NLTYEekZckr9craWxLUZGgs7NT1dXVQcdPnDihq6++WhMmTAhfqHFwNkuG\nAMYuLi5OL7744pCHMwoLCwM+ERxOUV1eNTU1sixr2PKaNWuWpk6dGuZkobFv3z7t2bMn4G9Ara2t\n2rFjh8rLyx1IFlqny8vkK2QAoRW15XXq1ClVV1crLS1NqampQ8br6+vV2tpq9Ccz7N27V2lpaSor\nK9MPP/wwsL+5uVk333yzysrKjH/B9/v9+uyzzzR58mSlp6c7HQdAhIi693m1tLRo5cqVOnz4sI4e\nParjx48rNzdXd955p0pLS7Vz506Vl5erqalJlmWpsrJSBQUFevbZZ5WTk+N0/FE5cuSI9u/fr2+/\n/Vbr169XW1ubUlJSFBsbq82bNys7O9vpiGNi27aKi4vV0dGh5uZmtbS0SJKysrI0efJk3XPPPbyv\nCzjHRfXThqYcfzT4n5SdPyZwroqkn6eoXTYEAEQvygsAYJyouec13KcznK2kpKRxO/ZYhGqukTYv\nKfTnMRLnCODsRUV5RcoabDiMZK6RtC49GiPNbOr8AIQOy4YAAONQXgAA41BeAADjUF4AAONQXgAA\n41BeAADjUF4AAONQXgAA41BeAADjUF4AAONQXgAA41BeAADjUF4AAONQXgAA41BeAADjUF4AAONQ\nXgAA41BeAADjUF4AAONQXgAA41BeAADjUF4AAONQXgAA41BeAADjUF4AAONQXgAA41BeAADjUF4A\nAONQXgAA41BeAADjUF4AAONQXgAA41BewDhLTk6WZVnjtiUnJzs9RUmhnWekzAmRy7Jt23Y6BELL\nsixF82k1bX7jnTdSvh+hzBEpc8JgkXReuPICABiH8gIAGIfyAhyybNkypaeny+VyyePxaN68eVqz\nZo0k6dChQyosLNT06dPlcrmUmJiorKwsbdmyxeHUY9fb26tXXnlFK1euVElJiYqLi/XWW2+pq6tL\nS5cudToeDEN5AQ758MMP9c4770iS1q1bp2+++Uavv/66JGnmzJnau3ev7rvvPknS1q1bdeDAAa1d\nu9apuGelu7tbt9xyizo7O/Xuu++qoqJCH330kVpbW3XVVVcpISHB6YgwDOUFOKi2tlaStGTJkoDj\nVVVVcrvdWrRoUThjhdxdd92ladOmaePGjYP2P/bYY+rs7NT111/vUDKYKsbpAAit1tZWSVJPT4/O\nO+88h9PgTGpqauTxeJSbmztkrKenR16vVxkZGUpMTHQgXWi0t7ersrJSu3btCjiekZGhoqKiMKeC\n6bjyihLd3d1avny5ZsyYIUmaMmWKtm/f7nAqDKe/v19er1eZmZmKjY0dMu7z+eT3+5Wfn+9AutCp\nq6tTT0+PGhsbA47n5eVp5syZYU4F01FeUeKhhx7Srl27dOrUKUn//ra7atUq/fTTTw4nQzD19fVq\nb29XQUFBwPGqqipJ0oIFC8KYKvSys7Pldru1YcMGPfLII/J6vert7R0Yf+KJJxxMB1PxJuUoER8f\nL7/fP2hfTEyMHn30UW3atMmhVOMjkt4oORLB8r788st68MEHlZmZGfATJXw+n44fP67W1lalpKSM\n+vjhNlyOF198UU8++aT++ecfSVJcXJxWrVqlTZs2BVwSjZQ5YbCIOi92EJLY2NhCtAVSXFxsn3fe\n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\n" + } + ], + "collapsed": false, + "prompt_number": 4, + "input": "circuit_plot(fourier, nqubits=3)" + }, + { + "source": "The QFT circuit can be represented in various symbolic forms.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "m = represent(fourier, nqubits=3)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left(\\begin{smallmatrix}\\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2}\\\\\\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi}\\\\\\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath}\\\\\\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi}\\\\\\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2}\\\\\\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi}\\\\\\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & \\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath}\\\\\\frac{1}{4} \\sqrt{2} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & - \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & - \\frac{1}{4} \\sqrt{2} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} & \\frac{1}{4} \\sqrt{2} \\mathbf{\\imath} & \\frac{1}{4} \\sqrt{2} e^{\\frac{1}{4} \\mathbf{\\imath} \\pi}\\end{smallmatrix}\\right)$$", + "prompt_number": 6, + "text": "\u23a1 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u23a2\u2572\u2571 2 \u2572\u2571 2 \u2572\u2571 2 \u2572\u2571 2 \u2572\u2571 2 \u2572\u2571 2 \u2572\u2571 2 \n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \n\u23a2 \u2500\u2500\u2500 \u2500\u2500\u2500 \u2500\u2500\u2500 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \n\u23a2\u2572\u2571 2 \u2572\u2571 2 \u22c5\u212f \u2572\u2571 2 \u22c5\u2148 \u2572\u2571 2 \u22c5\u2148\u22c5\u212f -\u2572\u2571 2 -\u2572\u2571 2 \u22c5\u212f -\u2572\u2571 2 \u22c5\n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd\n\u23a2\u2572\u2571 2 \u2572\u2571 2 \u22c5\u2148 -\u2572\u2571 2 -\u2572\u2571 2 \u22c5\u2148 \u2572\u2571 2 \u2572\u2571 2 \u22c5\u2148 -\u2572\u2571 2 \n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \n\u23a2 \u2500\u2500\u2500 \u2500\u2500\u2500 \u2500\u2500\u2500 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \n\u23a2\u2572\u2571 2 \u2572\u2571 2 \u22c5\u2148\u22c5\u212f -\u2572\u2571 2 \u22c5\u2148 \u2572\u2571 2 \u22c5\u212f -\u2572\u2571 2 -\u2572\u2571 2 \u22c5\u2148\u22c5\u212f \u2572\u2571 2 \u22c5\u2148\n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u23a2\u2572\u2571 2 -\u2572\u2571 2 \u2572\u2571 2 -\u2572\u2571 2 \u2572\u2571 2 -\u2572\u2571 2 \u2572\u2571 2 \n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \n\u23a2 \u2500\u2500\u2500 \u2500\u2500\u2500 \u2500\u2500\u2500 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \n\u23a2\u2572\u2571 2 -\u2572\u2571 2 \u22c5\u212f \u2572\u2571 2 \u22c5\u2148 -\u2572\u2571 2 \u22c5\u2148\u22c5\u212f -\u2572\u2571 2 \u2572\u2571 2 \u22c5\u212f -\u2572\u2571 2 \u22c5\n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd\n\u23a2\u2572\u2571 2 -\u2572\u2571 2 \u22c5\u2148 -\u2572\u2571 2 \u2572\u2571 2 \u22c5\u2148 \u2572\u2571 2 -\u2572\u2571 2 \u22c5\u2148 -\u2572\u2571 2 \n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\n\u23a2 4 4 4 4 4 4 4 \n\u23a2 \n\u23a2 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \u2148\u22c5\u03c0 \n\u23a2 \u2500\u2500\u2500 \u2500\u2500\u2500 \u2500\u2500\u2500 \n\u23a2 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd 4 \u23bd\u23bd\u23bd \n\u23a2\u2572\u2571 2 -\u2572\u2571 2 \u22c5\u2148\u22c5\u212f -\u2572\u2571 2 \u22c5\u2148 -\u2572\u2571 2 \u22c5\u212f -\u2572\u2571 2 \u2572\u2571 2 \u22c5\u2148\u22c5\u212f \u2572\u2571 2 \u22c5\u2148\n\u23a2\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u23a3 4 4 4 4 4 4 4 \n\n \u23bd\u23bd\u23bd \u23a4\n \u2572\u2571 2 \u23a5\n \u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a5\n \u23a5\n \u2148\u22c5\u03c0\u23a5\n \u2500\u2500\u2500\u23a5\n \u23bd\u23bd\u23bd 4 \u23a5\n\u2148 -\u2572\u2571 2 \u22c5\u2148\u22c5\u212f \u23a5\n\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u23a5\n 4 \u23a5\n \u23a5\n \u23bd\u23bd\u23bd \u23a5\n -\u2572\u2571 2 \u22c5\u2148 \u23a5\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a5\n \u23a5\n \u2148\u22c5\u03c0 \u23a5\n \u2500\u2500\u2500 \u23a5\n \u23bd\u23bd\u23bd 4 \u23a5\n -\u2572\u2571 2 \u22c5\u212f \u23a5\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a5\n \u23a5\n \u23bd\u23bd\u23bd \u23a5\n -\u2572\u2571 2 \u23a5\n \u2500\u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a5\n \u23a5\n \u2148\u22c5\u03c0 \u23a5\n \u2500\u2500\u2500 \u23a5\n \u23bd\u23bd\u23bd 4 \u23a5\n\u2148 \u2572\u2571 2 \u22c5\u2148\u22c5\u212f \u23a5\n\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a5\n \u23a5\n \u23bd\u23bd\u23bd \u23a5\n \u2572\u2571 2 \u22c5\u2148 \u23a5\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a5\n \u23a5\n \u2148\u22c5\u03c0 \u23a5\n \u2500\u2500\u2500 \u23a5\n \u23bd\u23bd\u23bd 4 \u23a5\n \u2572\u2571 2 \u22c5\u212f \u23a5\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u23a5\n 4 \u23a6" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "m" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left(\\begin{smallmatrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\\\1 & \\omega & \\omega^{2} & \\omega^{3} & \\omega^{4} & \\omega^{5} & \\omega^{6} & \\omega^{7}\\\\1 & \\omega^{2} & \\omega^{4} & \\omega^{6} & 1 & \\omega^{2} & \\omega^{4} & \\omega^{6}\\\\1 & \\omega^{3} & \\omega^{6} & \\omega & \\omega^{4} & \\omega^{7} & \\omega^{2} & \\omega^{5}\\\\1 & \\omega^{4} & 1 & \\omega^{4} & 1 & \\omega^{4} & 1 & \\omega^{4}\\\\1 & \\omega^{5} & \\omega^{2} & \\omega^{7} & \\omega^{4} & \\omega & \\omega^{6} & \\omega^{3}\\\\1 & \\omega^{6} & \\omega^{4} & \\omega^{2} & 1 & \\omega^{6} & \\omega^{4} & \\omega^{2}\\\\1 & \\omega^{7} & \\omega^{6} & \\omega^{5} & \\omega^{4} & \\omega^{3} & \\omega^{2} & \\omega\\end{smallmatrix}\\right)$$", + "prompt_number": 7, + "text": "\u23a11 1 1 1 1 1 1 1 \u23a4\n\u23a2 \u23a5\n\u23a2 2 3 4 5 6 7\u23a5\n\u23a21 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u23a5\n\u23a2 \u23a5\n\u23a2 2 4 6 2 4 6\u23a5\n\u23a21 \u03c9 \u03c9 \u03c9 1 \u03c9 \u03c9 \u03c9 \u23a5\n\u23a2 \u23a5\n\u23a2 3 6 4 7 2 5\u23a5\n\u23a21 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u23a5\n\u23a2 \u23a5\n\u23a2 4 4 4 4\u23a5\n\u23a21 \u03c9 1 \u03c9 1 \u03c9 1 \u03c9 \u23a5\n\u23a2 \u23a5\n\u23a2 5 2 7 4 6 3\u23a5\n\u23a21 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u23a5\n\u23a2 \u23a5\n\u23a2 6 4 2 6 4 2\u23a5\n\u23a21 \u03c9 \u03c9 \u03c9 1 \u03c9 \u03c9 \u03c9 \u23a5\n\u23a2 \u23a5\n\u23a2 7 6 5 4 3 2 \u23a5\n\u23a31 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u03c9 \u23a6" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "represent(Fourier(0,3), nqubits=3)*4/sqrt(2)\n" + }, + { + "source": "

QFT in Action

", + "cell_type": "markdown" + }, + { + "source": "Build a 3 qubit state to take the QFT of.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{2} \\left({\\left|000\\right\\rangle } + {\\left|010\\right\\rangle } + {\\left|100\\right\\rangle } + {\\left|110\\right\\rangle }\\right)$$", + "prompt_number": 8, + "png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAAiCAYAAAB/amQFAAAABHNCSVQICAgIfAhkiAAABR5JREFU\neJztnFtoHFUYx3/bJNamphoraRvFVq2YQgQt+iBKKyqiguLlIYJQQX3wQbG+FC8g61MplGoror3g\nBXzwpYhI9UG0iohaBUWrBkGFWm94b1Mqac368M24k3Eu58yeMzuZ/X6w7M6Z/358/z2ZmXMNKIqi\nZDAM9Hc7CUVRymE+sAb4BljR3VQURXHBPAPNBDAEnOU5F0VRKkgLfeIrSi0weeIrilIzev3CPx24\nuNtJlEQveQX1m0mfReAmsBX40zKhKANIgoeAG4HJ2Pn5wL3AzcAFwBTwc0IcV7op4G5gbyE3dsT9\nmnoAaAAbgQ+A6RRNlb2GuPBhqpsrfk11RfyeA/yRn342nfbx+xFzpwTHzdj5PuAj4KHgeBHwCbDO\ns+4eYIm5jcI0I59Ncwu1TyK//2kpsavsNcSlj7r4NdUV9bsRufgL0wgS62RkfzNwbuS4GTt/G/AX\n0ioIWQccYXbyrnWnAvcbeohj22KyyW0EeBl4D/ia7D+MKnv14aMOfsuo32HgnYy4mdwOPIPccV4E\n1heIcT7wVKysGfncAD4DXopplgIzwAZPupBHKTbescdC27TMbQA4Mfi8mfQ/jCp7Bfc+6uK3rPq9\nBdgUD2rygzwP3AFcBNwKPG7wnTgbgJ0Z588ExoEPY+U/Ad8BV3nShbwGXJfpIJmFBb5jmtsx4G+H\n8ULK9ArufdTFb1n1uxu4nPZNBihnVL8PuAzpk6SxLHg/nHBuCljpSRfyPnBJRn4usc3NdbwyvdpQ\nh7r1gQu/vwA3RQvKuPDHgYNIsySNpcH7VMK5I7QHBF3rohwEzsjI0RVFcnMdryyvNtShbn3gwu8k\nch3+R3jhtzy8QkaB33LMLQjejyWcayFTGT50UUaAX3PydEGR3FzHK8urDXWoWx+48DsJLI8Kwt12\njU6zy2AYOJqj+TLj3EKkqeJDFzII/INZn6tTbHNzHa9MrzbUoW594MLvAdotB6Ccbba/kz8N+AVw\nnPbdLcog8KMnXcgEMmORRAPYlhLrPGBXQvkM8CDJLR3b3PKoslcb6lC3PnDhdzmxhTxlXPg/AGM5\nmmngK/7fDxtEVvrt86QLWQk8m5JbC9hObFQ04ELg6YTyGdJXTNnmlkeVvdpQh7r1gQu/q4DvowVl\nXPj7kabHMrKfZp8iU4ZR1gAnMHsq0LVuNbJGIYv9KeWHDb6bhGluruN1w6sNdahbH3Tqd4xY66WM\nUf0ZZG5xVY7uBeBqZncLrkfWL7/hUXcD8EqeCceY5uY6Xje82lCHuvVBp37PBl6PFpg88RcAdyFr\ngA8Az5G94SCJTcHrzQzNHuABZMHBVmQ24Eqkz+JLtwiZJjlu6adTTHLrB+5DBmXuDMp2I5sw9gJv\nW8brllfXPkx1VfdbVv1OAK8SWweQN5o/D3gCeATp12xBmhxrkea7DduAj2n3P5aQvOuqH2myHEWm\nIZKmMVzphpDf4JCpiRhvIauiTEjym5VbH3BtSqxvgc8Tyqvo1bUPU13V/ZZRv4sRH2uRQXZjxpE+\n0EhwPIoMiFxqEySS9A5i0wpznDK2fFaFXvIK9fC7BdknY80Q8BjSjAC5AbQwvxPGCffj1wXb5bVz\nmV7yCvXwu8JVoPXIZoGBPKGiKPVgDHgXae4ritIDjCL985OD417/X32KUnsWAw/Tbt6vBq7pXjqK\nonRK3nTeScjE/zTtHXejwBXI1j9FUeYgeQt4BpEFA1Fa6EWvKIqiKIqiKIqiKIqiKF3nX7rsUf7i\n3lIWAAAAAElFTkSuQmCC\n", + "text": "\u2758000\u27e9 + \u2758010\u27e9 + \u2758100\u27e9 + \u2758110\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "state = (Qubit('000') + Qubit('010') + Qubit('100') + Qubit('110'))/sqrt(4); state\n" + }, + { + "source": "Perform the QFT.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{2} \\sqrt{2} {\\left|000\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|100\\right\\rangle }$$", + "prompt_number": 9, + "png": "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\nMHDVAAAAAElFTkSuQmCC\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2572\u2571 2 \u22c5\u2758000\u27e9 \u2572\u2571 2 \u22c5\u2758100\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "qapply(fourier*state)\n" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/quantum_computing.ipynb b/docs/examples/notebooks/quantum_computing.ipynb index 81b6293..2da4a4d 100644 --- a/docs/examples/notebooks/quantum_computing.ipynb +++ b/docs/examples/notebooks/quantum_computing.ipynb @@ -1,1471 +1,423 @@ - - - quantum_computing - 2 - - - - - <h1>Symbolic Quantum Computing</h1> - - - %load_ext sympyprinting - python - 1 - 1 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 2 - 1 - - - - <h2>Qubits</h2> - - - The state of a set of qubits (Two state systems) is the quantum state that is of interest in Quantum Computing. - - - alpha, beta = symbols('alpha beta',real=True) - python - 3 - 1 - - - - psi = alpha*Qubit('00') + beta*Qubit('11'); psi - - python - 4 - 0 - - - pyout - α⋅❘00⟩ + β⋅❘11⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdrQUFBQVhDQVlBQUFBSXFtR0xBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBN0pKUkVGVQphSUh0MkZ1SVZWVWN4L0ZQVGlXa0RhRnBHa1JsUlRlYXdncWpy -TWFZNklKMG9TQ05wS0NIb2dzRjJid0VRVkZRV25ReHNDQXd1aUhFCkZGMnhseTR2UVRlc01TcENv -cWF5OGFIQ1NydElZdy8vdlprOSs2d3pjL2FaNDVtUzg0WEQydWUvZit2eTMydjkxNDBPSFpxa0gz -dE4KZFNQYVRGMmZ1NW9zOEFnc3dSZWxzdTdFTlRnRkYyQUh2a3ZVMllqdU9HeHVzbjJUWlFXdVF5 -OXV4amFNcVBVNVoyOE00R2Q4UFU2NQpFK2xhNnZNeFdGYXkzWU8zTWExUTRTODRhaEs2ZGpNZHE3 -Q29ZRnVJblRoVHJjOWRZcUFOWUJmT3IxTnVvN3FrejlOU3hpYm94azE0CldvdzQrQnhmNFlrbWRF -UmtIZEpFVzJiaDBDYnl3ZTFZaC9jTHRsOUZCUFFrOU90eHRZaTA4V2hVMTZ6UFNjcVJ0RktNa0lO -THVydkUKS095dXFKTTk5emZSdHFWWlBWWHB3eVVKKy9YNEUyZW9qYVNjWmNhUGtFWjFTWjliRlVr -bmkzVmxTOG0rV1l6Q3hSVjF4QWplTDdPMwpnd3Z4U3NrMlczeTBsZmlwRFcxSStwenFwQVc0QTQv -alJhdzFkb1NuZGlEejhIdkN2ajFMNTFmVTVid3NQYnBielJ4OEs2YmdYakU5CmJjQW1QSVhIMnRD -R25CcWZ5NTNVZzNld1VZVDU1YUpUbmk5b0gwNFVQTS9vaHk2UzJ3Nm9xTXZaS0JidTNjMFN2RlZv -eTNZTVl3ZzMKR0R0SWR6YzFQaGZENmtpOEtTTG5qY3cyZ2xmeG10aWQvQ0FkOW45aG40UTl0NDFV -MU9XY2hFOFMrbFp6TEY3SW5qL01mbkMyR0xRWAo0YU0ydElPRXo4Vkl1anRMSHl4bEdzelNSYmdX -VHlZSzNsU253aGxaK21ORlhjNmxlS2xPbmxheksySDdKa3ZudHFrTkpIek9JMmthCnpzWHJhcWVq -L0pCNW1tajBGclhoUHlnVzNqSXpzM1M0b2c3Mnh4OWkxNWRpQlc1TDJMdkZlZWVxeEx2MXVLOWtP -NmhVYjVHanMvVGoKT3U5YlRkTG52Sk9PeDRINGJKd0NUaENSbEdKUW5FOW1HTnZKcDJZVmZsbFJC -MWVLdGJBZXoyUy9Na3ZGRWVHQmNmSVc2Y1gzZGQ0dAp4MVo4b1BtelZ4V1NQdWZUM1pBSTk2Mkpq -RFBGV3JGQm5CZFNmSnFsNWYxL0g1NHpPbEliMVJHSHVxRTY5YldTeGFKanl4eUdLM0NqCkdOM3RJ -T2x6M2tuYnhKWEZlYVgzZlZndFR1QnpNMzFxU3p5TVIzQXI5czFzWitGd1k2ZVhSblduNDcySmZX -b0p2K0VmbkZpd3pSWm4KcG52RmQ1bUlXVms2MGRvMW5xNGhuNmRqalppM1Y0c054R1hadXg2OGkv -dXo1d1c0dUpTL1M5dzlEZUFoc1VNOEoxRlBJN3ArelIrMApxOXc0ek1jdDRnQzVTbHhYcmNXellt -ZFhKT1h6T3JFVDJ5bG1vcit6LzJ1YTBFM0c1LzhkVlRwcHVmYWN3eWJGbnRoek82UnZOVklzCk5M -cE9kdmlQOHVoVU42QVI5c1JJYXBRNWFpOTZPM1RvMEtIRDFQRXZuNWpwRldLVVN1VUFBQUFBU1VW -T1JLNUNZSUk9Cg== - - $$\alpha {\left|00\right\rangle } + \beta {\left|11\right\rangle }$$ - 4 - - - - - Dagger(psi) - - python - 5 - 0 - - - pyout - α⋅⟨00❘ + β⋅⟨11❘ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdnQUFBQVhDQVlBQUFEbmFBcTFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBNk5KUkVGVQphSUh0MkZ1TVhWTWN4L0dQS3BPVWlCb3oxU0pFTkc0eG9pSHRR -MFZMRWJRaUlXRkVFMEVRSkNLcWphZE9KT0pTRW9yb1EwV0NURHpnCndTMjh1RDY0UllSNkUwTFJT -MEtrZEZxaVpqejgxMDczN05ubnpONHpjODZNNW55VG5iWDNXcis5MXZydnRmLy9kYUhEQWMvYTZl -N0EKTk5BMm0yZFA4djJ6OFcxSi9uTGNtY3FHOFF1ZW5xQnVMUjZaWkQvcnNocExNSVJUc1FsdnBi -SkdObWRjaHhXNGNadzJtdW1tek9iMQp4Zzd5NmRpRGhlbDVOajdHUFJQVURVeEZSeXZTSlQ3TTRs -emVJdnlEbnZSY1pqTWNqN3V3RHk4MmFhT0tiaUM3bVZXaDA0MDRBcnRUClEzbnVFeDg2Kzh2MllS -QVA0WVFKNk9weTFDVGV2eGZQNGROYzNoOWlRUG8wdHZrT1BJaERjVkNUK3F2cXBvUmJzYUNRZDV6 -NDI0b3gKZWlGR2NFdE5IZlU5YUNYVzFIeUhDRGRYbHVUZmhyL1FyZHptSXVONVVCWGRRSFl6R1E5 -YWdHMkZ2TFBFMzFhTTBkK2xkRmxOWFR1NQpESzhWOHJyRlQ3UUd2eW0zdWFXVXhkS1QwQzlpWlM5 -MllwMXdkY0kxbCtLamtuZVBTZW51UXY0dzltSitUVjI3Nk1HUHFmMWx3bXVPCkZHRnRFNTdDZWNw -dGJpbEZEK3JEKy9oU2RQSnFNU0NET2UzanVCRHZsdFNYZmZpaGtySWhZWFFkWGJ0WWJyODlRK25h -Z2EyNFhjdzkKald4dUtma0JPaG52WUxQOVM4cGh2STdMY1E2T0ZhNytIaTRvcWUvdjNIdEZEc25s -VjlXMWk5UHdUYnIvSERmaEJoRTU1dUVLalcxdQpLZmtCdWorbGp4VTBYNmQwc2VqNFpueUE4MHZx -MjlLa3JjT3d2YWF1bll5VTVQMlEwbDZOYlc0cDJSdzBDeGZoVFdQRHprOHBYU0k2Cm5FMlMyNHlk -TkxQQm5GdW9veXUxdGFPbXJobXJqZDB6RWVHb0M5ZVhsTDBrbHZGNTVqVnA3NVNVZnBIU01wdGJT -alpBWitCbys5MjgKakRPRkIyVU00bWFqUFc0N2ZoVUxqRHpucG5STFRWMHpYa2hYa1pWaTkvOW9o -VHFJUmNIUERjcjZ4U0xwcy9SY1puTkx5VUxjVnVIaQpPMHMwaDRzNTRXMnhIOGpZbGNvT0x1aS93 -cVdGdkJYNEhjOU9RTmRxbG9wQkxYSWlyaEdieTcwcHI1SE5MU01ib0YxNEJaY1V5bGRnCmc5aFo5 -eVo5ZmpQM0JsWVYzbG1QaThYRUMzTndMVFlhdmF5dXFtczFmK0pmc1RmTDZCWjdvZ2ZFZDhsVFpu -UEdYTEhxN2RIOHBLQ3EKYmhSZGVGTEU2UTNDamE5S1pYMWlrbnc0M2VkWlYxTFhLcnlLSi9DeUdJ -eXl2NjZLN3U2cUJpVHFuQ1RNRitkaWM4UVozUE40UnV6dwpteTBJaWpiMzR4TVJ0a2ZTOVQwK05I -cFBWMVZYMStiL0ZYVUdxRjhjaHM1WUpuUFVNMVBabzNxSVhDVG13ZzR6bEkzVDNZSHhPQkE5CnFD -bzkybnp3MmFGRGh3NGRSdkVmTWFmaitnL1d6VDRBQUFBQVNVVk9SSzVDWUlJPQo= - - $$\alpha {\left\langle 00\right|} + \beta {\left\langle 11\right|}$$ - 5 - - - - - qapply(Dagger(Qubit('00'))*psi) - - python - 6 - 0 - - - pyout - α - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUE0QUFBQU5DQVlBQUFDWjNGOS9BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBTWxKUkVGVQpLSkhWMFRGT1FsRVFoZUhQMTJDQ0xSWVFHa0xySzRrTDBKQklZ -K3NpNkVqczNBQTBoTVlOYUdkbm9Sc3cwTG9FVERTVWtKaFFBUVh6CkVyaDVsWjNUekoweitXZk96 -ZkRIT0NuUldyaERFK2RZNEI2ckEyYWJRam5tdUlrNnd5TmU0dzNqRkdyakJ3K0ozb3NOSFRSSytw -NEQKckNaNk04QitRUFhDU3BHdjhZN2ZCUHlLZklrS3ZnK2JGekYxa05xSTJPSVRwNFZRYkp4SGMx -RUNuV0dETjZ4VGNJa1hkQlBvQ2tQTQo3RStUNFpiak8xWXdRaTMrbGVFakJ1YVlZSXFuc1AxZlln -Y1ByaVYrNlVjV0xBQUFBQUJKUlU1RXJrSmdnZz09Cg== - - $$\alpha$$ - 6 - - - - - SymPy supports many different types of measurements. - - - for state, prob in measure_all(psi): - display(state) - display(prob) - - python - 7 - 0 - - - display_data - ❘00⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUI4QUFBQVRDQVlBQUFCb2JOWkNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBV2RKUkVGVQpTSW50MWJ0TEhVRVV4L0VQRWpVK0lDYmlvekJxcTJBYUNXS2Ex -SXFWcGRYOUEyeHNKTFdGaFdoaG16cWxwUXFDVFN6c0Rla1VDVUx3ClVSZ0NYdk1Rcmhhek40eDcx -ODF1bWtESUQ0WXplODUzK0EwN1ozYjV4L1htb2NLamFENkg5L2lNTHF5aGlrczh4bHNjcDlZWDRh -cm8KeFVYZURpc1lUdWE3V0VuVlBxSTl0YVlJMTQyRlBPUFlmQUszR0lscWJmaUc1U2hYbElNbE5C -VXgzOEJKUm4wSEg2TG5vaHk4d25RYQp6TnJOT0E0ejhrY1lFMTVqR1E3Mmt3MzgxcndQVnhuNWFo -TDdTM0oxbldBb3oveUpjRzVWamFybnVrcHdzVFl4azJkK2cxb3kwbXBPCllxMEVGMnNHVzNubTF4 -cnZjbDBkU1R3dHdjVWF4cWM4YzBLblBzM0lkeWJ4ckNRSGswTFQzZE5ENXM4ejhpK0ZUdjVla29N -cGJCY3gKUDhBb0JxTmNEMTVnOVErNFovZ2l1ejkrcVNLY1N3djJzQjdWRm9WdmZtdVVLOHJOQzll -eVFmR1A1Um8va3pFcmZDTGY0U3NHOEJvLwpJcjRvMTRuekxQUC8raXU2QTRCcVkvK1pLa0FTQUFB -QUFFbEZUa1N1UW1DQwo= - - $${\left|00\right\rangle }$$ - - - display_data - 2 - α -─────── - 2 2 -α + β - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUQwQUFBQXRDQVlBQUFBZHRHTnlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBbDFKUkVGVQphSUh0Mmp0b0ZFRWN4L0dQU1JBakJud2hDR3JRUUVRUkh5QWlH -TkJHRUxGSTZTTUlpaStpVGFJV2dzaUpZR09UUXRCR0VNRXlWVnA3CkJVRlJSREVnU01vZ0VoUWx2 -cUxGYk9KcVl1Njh2ZDBwc2w5WWJtWnZtTjkvYm5iL08vUGJZdzR5TDZMMmVUUmhBYTVGaktNd2Rt -TkgKVXI2RG5VV0tOeFVwbG1JdHVwUHlHM1JHaXFOUVdyQTRLUThxZU5DeFp2bzd4ckFWcnpFY0tZ -N0NhY1ZWOFg3NEtKd1dCdDZFQTVGagp5WTNtVkhrL1B1SWQzcU9yeUVDS2VFNzNKNThUUXRidUUy -WjRHVVlLMEo5R2MvVW1tUmpBT0c3Z0VVNmlEZXVFQlBZNVovMFphY214CjcwNGNSSHZxM0hQc3do -UGgwbzVDbnBsekx4N2pTK3JjSjJIMWRUOUgzYXJrT2VnUmZFM1ZGMklqWGdoSmJINk8yck9TNXow -OWpBNXMKeHZya3VJVjlXSUpuK0pHamZrbkpYR1J5Y2ZJemFoUWxKU1dOSXV1R0k1YTVGODFVakdY -dVpkYk5zZ3lOWmU1Rk5SVmptWHVaZGJQTQpkQ3h6TDdxcFdLUzUxNDZWRVhTblVhKzUxL29mYmJm -Z2hKREErbkFtZzI1bXNwaDdWMnBzMXlGc1JTZlpnOUVNdW5YUnFQMTNwY1oyCng1UFBWY0orZkFq -YnNvclg2cEhGY0RUWDRLVXd5TVBvd1FNOHpVbnZEd1p3S1ZVZkZPNnhRMWhlWjUrVkd0cDArNzNx -T29wZVlUZTQKdWs3Tkthck5kS01jelg2c1NOVzdoTUdrdVkyM3FmcEVjb3pqWG5MdU9yN1ZxRmsz -WjRYN0tNMEZ2TUxTRFAxV2FtaHo2cS82ZGp6TQpvRGxGdGVkY0xFZHprNUNwSnhObkd5N2pXQ002 -cjNaNUR5VUI5T0tEY0xsZHhFMGhzOTV0UkJBenNBSG5oSVE1aGtYQ3pJL21wRmNJClI2cDgzNU9u -ZUt4M3c3Tzk0V2dXOXc5QVVlZ1FMdStTa3BLU2tuL3hDNWZQYi9CTXJrVkZBQUFBQUVsRlRrU3VR -bUNDCg== - - $$\frac{\alpha^{2}}{\alpha^{2} + \beta^{2}}$$ - - - display_data - ❘11⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUI4QUFBQVRDQVlBQUFCb2JOWkNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBT1pKUkVGVQpTSW50MVRGT0FrRVV4dkZmaUxFa0NJa0ZGa0RDSlRUaEFCcHFD -aXF1WUFXRnR6SGhCR0JqYTB3czdLeXNqRDJ4a1JZb2RvMncyZDNaClJpY3hmczI4dlBsZS9tOG1r -emY4Y2MyS05tcDc4UmhubWYwNm50QUxBTXA4YTV5R09weWdtOGJIR09BQlcvUUxhcXI0V3JqT0t6 -N0sKeVRWd2kxZXNTcHF0Nmx2aFJITExteUxUeFBmSnYzU2ovT1JWZlJlNHlpWnJPY2FmMEdQYVFC -UTR2S01UQzc3QU1CWjhpR1VzZUJkdgpNZURua2tkM29OK0NYK0l1QnJ5SkR6a0RKZ1J2cG10b05w -ZjV4cGdINm8zUVR1Tjd2RWltMWhhZmVNWTBVMVBGVi9pci9TdUtkcWlvCkswNXl6bzdrQUFBQUFF -bEZUa1N1UW1DQwo= - - $${\left|11\right\rangle }$$ - - - display_data - 2 - β -─────── - 2 2 -α + β - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUQwQUFBQXdDQVlBQUFDaS9ISTNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBbmhKUkVGVQphSUh0MlUySWpWRWN4L0hQdkJTRENYZVkxQlJwUkFsWkVRMU5a -bVpoZzBqWlNJbXNsR1JoeXN0a0o3c3BaU1VyeW9vc0xjWktGaExHClpoWlRTbG1SdDd3c0dCYm5t -VnczTS9mT2ZlYWVJL044Tjg4NTV6blA4L3VmenY4NTU5emZaUTdTbEZEN0ZGclJqb3NKNDRqR1Z1 -ek0KeWxmUkcxTzhPYVpZR2F1eEx5dVBZMjJpT0tMU2dxVlorU1kyeGhSUE5kTS84QTdyOFJxak1j -VmJZNHFoRy8zNGh2bm93dG5JTVVSbApPd2JLNnAvOVR1czlNUU9KbGQ0bExNZjlySDRBRXhqQlcz -eUpGRWRVRGdxZjBpR2N4eE5zU2hWTXJKbHV3bmVzRXJhcmxkZ2RTVHNKCjdkaFYwVGFJV3dsaVFa -eVo3c0hEaXJZT0ljWC9XNjVnVFZtOWhNZENCaVFoeGo3OURJZnhWRml4QjRTRjdWTUU3U1Iwb2k4 -cmQyRkYKd2xpaXNSOExVd2RSU2FNWHNwSnc4cHBUZEtRT29HQXVNK21SL1V3YVJVRkJ3V3lSMS9k -TzVWMG44OHhUZWRlNWRmT2N5Rko1MTBrOQo4MVRlZFc3ZFBET2R5cnRPNnBuRFBGelMrTi9sM1Rp -Qkk5azFsdTVmT1k1RldYa20zdlZNTXF6U0w3K0xrM1hxNXFaUGNEL2VDTjUxCi93eWVQVmRqdnhM -Mmx0V1hDT244czA3ZEdkT0V4YlAwcnFFYSt6WEVMNi9sbTJqR0JYd1FabmFIa05adFdDWnNHNDFp -S3IvOGVaNlgKMWpMb0c0SjdPWnpWQjRSQmY4UzlQT0pWYUJkU0dDNW4xMEZzenZ2aWFvUGVJQmox -Ujh2YVJyRU5qL0MrUnAzVGdrazRTWS93cjJVNQoxL0N5b3M5SVJaOG9mdmxKM0tsb080TVhmcStl -OVRCVVE1K0crZVhWWm5yTW42dGpTVGdVakFtSGhEWjh6UnZFRkRUTUwyK3BjbjljCjJDYTJZSjNn -WFE4TGk5bGtxazNVb2R1TEI5UGM3OFFDWEJjRytRcTMxZjQ1L1pNY3IzTC9uL1RMRzgyeDFBR2tv -UERMQ3dvS0NxYmoKRndudWJ2aG5lQTVsQUFBQUFFbEZUa1N1UW1DQwo= - - $$\frac{\beta^{2}}{\alpha^{2} + \beta^{2}}$$ - - - - - Qubits can be represented in the computational basis. - - - represent(psi) - - python - 8 - 0 - - - pyout - ⎡α⎤ -⎢ ⎥ -⎢0⎥ -⎢ ⎥ -⎢0⎥ -⎢ ⎥ -⎣β⎦ - $$\left(\begin{smallmatrix}\alpha\\0\\0\\\beta\end{smallmatrix}\right)$$ - 8 - - - - - <h2>Gates</h2> - - - Gate objects are the operators which act on a quantum state. - - - g = X(0); g - - python - 9 - 0 - - - pyout - X - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJrQUFBQVlDQVlBQUFBUHRWYkdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBWHhKUkVGVQpTSW5sMVQ5SVZtRVVCdkRmOXlsOGlKTkRFWWhHU0tCZ0lEUUlp -WU1PUWRHb200bURJQmh0SVJTME8rVFNvQTJGRUxpSU5MVFcwSkNECkVkcWZSVUdRUWhJU1dpTEJS -UjN1KytITDdjTFYydzBISDdod3puUE8renp2djNzdlo0Z0ZiT013UE5zWWllcXpVVzBQNzFBcFl0 -U0kKelNEVWthcFZzSVZIYUNnaUhtTXFtRHhPOFRPNC9hL2lkVnpBUHI2aEdyaUhHRDJOU041Uzk5 -Q05QbnhFUDJxWU80M0pTVEFnMmJJTgpQQ2xiUE1aNk1McGNaSEExdjBVbkRrSThYc1FrRDYxWVFw -dmtmSDVJcm5acGFNRXJ5UTJEZWNtV0RaVmwwSVJGWEltNDNtRHlOcU8vCmdqSGN4elR1NUJrMDRp -VjZNbXBya3ZPNW11S0g4VHpFVlh6Qk5SRVJvd1B2OFJXZk1rd1d3cXduVS93VVhvZjRRTExhdStu -QnR4eC8KcHc2eGl4dXBuaGY0RS9WOHhrU28vY2IxcVBjQjNtUk1zakJxd2JRcjR1N2hRejA1eVh1 -U2gzM3NCS002bXZHclRCTll4Y1VvdjRUdgpaWnVzWURES2IrSlpQU24wTjh0QVV4QmRSanQrNG1s -SjJuK2g5citFenhHT0FHdERTUzdLeG84WkFBQUFBRWxGVGtTdVFtQ0MK - - $$X_{0}$$ - 9 - - - - - represent(g, nqubits=2) - - python - 10 - 0 - - - pyout - ⎡0 1 0 0⎤ -⎢ ⎥ -⎢1 0 0 0⎥ -⎢ ⎥ -⎢0 0 0 1⎥ -⎢ ⎥ -⎣0 0 1 0⎦ - $$\left(\begin{smallmatrix}0 & 1 & 0 & 0\\1 & 0 & 0 & 0\\0 & 0 & 0 & 1\\0 & 0 & 1 & 0\end{smallmatrix}\right)$$ - 10 - - - - - c = H(0)*Qubit('00'); c - - python - 11 - 0 - - - pyout - H ⋅❘00⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURZQUFBQVpDQVlBQUFCNnY5MCtBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBcmxKUkVGVQpXSVh0MWp1SWxVY1VCL0RmK21EQkY3NlNySVdLa0NEWUNFWkJX -S05SUVJ2RlVrUWJRU1NZV0Zpb1NFQXVpSVdOeEVyUVJnc3huU2xzClJERW1KZ1N4OFlHb0dCVU0w -UlhCRjFwbzFFMHhNKzUzdjcxejkzN1hsYlhZZjNPK2M4NS92amxuNXB5WllSaWZMRFpqVXF2a0U3 -aUIKWHZ5SFN6Z2NmVFB4Sy82Ti91ZTRpTytiL0c5SEE5c21ITWRlN01PYXpOaUJlRjBEek4wUEM0 -WEFEMlQ4dTZKL2JRdi9xcFgwRGJpTgo4VkgvREQxWTFpWnZUd3N4dk1kMklmQ1ZHZjhwdk5WYUdk -UUszeDI0SnF4K0VVZUZLdWlveUNNa1drNDJpNU40amJFTmZLUHhRaWpSClZsQXJmSzhTRnF3Y3lM -cG9uMWVSbDFDM2F5TXlnWXhBdDlBN0x4djRGd2dKLzU0WjN3eGZSM21yWlA4N3ltOHI4aEllQ3Yy -R2ZHSnoKTVJIbk12NmxVZjZXOFRkRG12eEZ5WjRXY0ZwRlhzSXhyRS9LcU16a2k2TmNvVy9saXBn -ZlpUczdsZ0l1VjBMU0oxYmtKVHpCbEtUawpFbHNpSEF4TDlWK3hVWGlHNjNpVUdkOE1yNko4VjdL -UEx0bGI1U1ZNRXBKRDQxTHN3RGU0ckg5U2hLWWRvNzNkZ3FzWmV6cWtIbFRrCkphd1h5aEdORTV1 -RHFUaWYrZkdpS052cEw3Z1NaZm1hR0JkbFQwVmV3alRjVDBxalVrejk5VWNtc080b2l6czJFaHZS -aVJrNGc5T1oKOFNuZzZlcExlVUdVVnl2eUNGZkMyY3g4Ny9HemNFOTBaZnc5K283Y2hJMzRLWDZQ -eEUxOFZmRFhTdnluK0xGa080bS8ydVR0VVg5aAo5ME9uRVBqdGpIK3VrUFNSa3YyNitvdjBFSFlY -OUZxSi94Myt3WVNvenhMNmVWVWJ2Qy93UXlaZU00WFN1cXZ2NGZzbnRrVC9hbUdWCkhrWC9ZNkhI -dW9VK2ZZUFpwVVJPRlBSdERlYmNpbCt3WDlpRkRabllCdUp0eHVSY1loK0NLVUt5MHd1Mm5WcW8r -WStKM011akNoNEwKOTFwdndUWTIyb2NNZzVGWXIvQVkvcnhnNjhLOVFmaDMyeGlNeE9DQytzTmp1 -WENBREJtYUhwRVZNQjRIaFVmemw3aGppQk1iYkhRTwpkUURER01Zbmh2OEJia1dqWUtHOFZNRUFB -QUFBU1VWT1JLNUNZSUk9Cg== - - $$H_{0} {\left|00\right\rangle }$$ - 11 - - - - - qapply(c) - - python - 12 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ -╲╱ 2 ⋅❘00⟩ ╲╱ 2 ⋅❘01⟩ -────────── + ────────── - 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUx3QUFBQWtDQVlBQUFBemZGQ0ZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCWDlKUkVGVQplSnp0MjF1b0pNVWR4L0hQV1UvMGVJbTNSRDBtRy9YQjFSWGNY -WUlTZGIyZEpCSlF2SUt5VVJURDVuaUxNWWlDOThzcUp1cERvaUV2CmtTUkVVQWdSSlVGRlRVUXdJ -WUdJaTZCa1JmQWhMUEdLUmxSV0lsRTVlZmpQc0QxOWVxYW5aNlo3NWh6ckM4MHcxZit1cXE1ZmRW -WDkKLzlWTklwRklKSlluVStPdVFBa0xJOGhqMHU5eHFmSlZ2RGFDZkNaV253TXgwM0NaRDJQdmhz -dGNpaVJ0K21SRkh6WXJjUjQyWTdiZQo2blR3ZFd6RmV3Mld1ZFJJMnRUQXlWZ25saGNITlZqdWcy -TGFUSFFuYVZPUjZUNXNucXk5Rm9zNUJCL2g5VEdVdlpSSTJ0UklrNlBJCnI3Q3FvYktXQTBtYlB1 -bG5EZDgwWHhNTzJLdmpya2dKRjQ2N0FtTmdxV2hERjMzNldkSTB6ZFg0YVkvemF6RXZITGJuOFNp -MkZOaXQKYS8yK21FdS9BTjhRRHRlYmVBVHZGRnhmWnZjRkVSM1oycU91eTQweWJXaE9uemJINFFU -OEpKYyt0RDVOVEp2N2lIQlhOMDdISDNHRQppRXJjaWYvaWpBTGJ1ZGFSNVdiOERUdTIvbjlQTlBq -T0E5anRobXQ3MUxWSkprRWJtdE9IaU4rZmhBL3g2NEx6USttem8yalVRd2ZOCm9FL3V3UEZkenUy -S2YyS3ZYUHBUK0ZROHpWbm1kRGJvSHZnQUd6SnBLL0F1N2huQURtNFJJMGxWZGpHNnVQa2thRU56 -K3NDVmVGWkUKaXhZVWQzZ0cxT2RDM0NlZTNOKzJDcXVEM2ZGWWovTW5pSjI5RGJuMFM4Vk56K2ZT -NTNRMjZIV2k0Zk9iSmIvVEdYSG8xdzdXRk5TbgpIemJpM0FHdXl6TXAydENjUGxtbTllN3dnK296 -RXE0UlUxWTNyc1VwUGM1L1U5emNYM1BwcDdiUzc4Mmx6K2xzMEQvalgxM0tYY0JoCkZlM2EvTGhI -bmJzeGovTUh1SzR1aHRXRzV2VEpVdGJoeWVuVFJKUm1HcHVFay9JRHhWUE1qR2l3SjNyazh5eE9z -OWo3UHJqMW0zZCsKOHN4aVcwSDZSNjNmQXl2YXRYbFpzUmhMZ1ZGcFEzUDZWS1ZEbnlZNi9LZmlL -YnNCKytLY0FwdU5Za3J1eFFJZXQzZ1UrQzcrbzN6SwpuYlc5OGJLMDAvYXNhTmZtWVp4ZFV2YWtN -aXB0YUU2ZnFuVG8wKzd3Q3pVY1dUNFI0YUhIY0VYdTNEVE9VaDRCS09JTUVjSzZYRGczCnZaZ1dB -dWVaeXB5dll0ZG1yWERXNnFJT2JiTDYxS1VOOWVoVGxRNTkyaDErcW9hamlGL2dhQnlaU1RzWEQr -R3ppamV5djNEWWZvamYKOTJGZkZBc21vZ3Z3ZGtXN05xY3BINzJHb1E1dGl2UVpwVGJVcDA5Vk92 -UnBldVBwR2JHbXVrS3M5YWJFUnNPcEZmT1p3Ui9FK3ZPWApmVjd6RW80dFNOK2w5ZnRtUlR0aW10 -Mm1lR1NDUzhRSW1XZWw2RVJGanV1RHJhTnBScVVOOWVwVGhUSjlHdUV5ZkN3Mk1zN0VWUld2Cm54 -SWpSdDQ1T2liM2YwNW5GT0JTc1piTTh3RCtKK0xBVmV3SVI2L1hXNE16WW0yYVA2NFMwM3pSdVox -NjVGYzN3MnBEL2Zwa0tZdlMKbE9uVENMdmhmZHdvUFA5ZGU1c3Y0aTU4UDVlMkVqZmwwdVowTnVo -NnhSczBiK0EzQTlnUm16R0RNR2xoeVRiRGFrUDkrbVFwNi9DTAo5Qm5IeTJQYmNEK3V4M09LUGZO -dVhDeldtVk9pMDh6akl0eUtWMHF1M1l4L2lKRzF6WHJzaDdzSHNEc1JmNmxROTZYQU1OclFqRDVa -CmRtajlGb1ZUQjlabkgvSEUzNG5iRlU4dFZWa2wzb0dvOG9uWVVTS2kwQzNxc0NabmYyTHJ5REly -MXFvUGlGM0psOFE2TlU4L2RyY1oKL0h2TVVZM3drNklOemVyekhlRVF2OURLK3pQeGt0blB4YTR3 -WGZRcEUyeGFlTzgvYXQzTURhMEtyQlBycW1INGlwaXUrbVVXcTN1YwovN3VvWTV2MlUvOUpnZTNP -WXVUWXF2ZUg0cjNzZGhjZFl4RG14VnA1R09kMGtyU2hXWDNhL2s0UlcxcDVEcVRQV3Z6YjlvWC9s -MXNWCitGYlZqQklkYkJUZm9nNUQwcVlHWnNRNzBPM1hNMWVLUmwwL3Rob3REMGJ4dG1UU3BnRTI0 -V21UK2FYVTU1MU5rallqNVdqOHlYYW4KSURFNUpHMUd6R3I4VEh4c3NBSmZIRzkxRWhtU05pUG1B -QkVpYWtkMGpzRzN4MWVkUklha1RVWEt3cEpmRXQ4WVpnUDdlK0p3dkZWWApwUko5a2JRWmdMSU92 -NGZGR3dZTElxYWFHQzlKbTBRaWtVZ2tFb2xFSXJIcytUL2lSYi9rVlg4UDZnQUFBQUJKUlU1RXJr -SmdnZz09Cg== - - $$\frac{1}{2} \sqrt{2} {\left|00\right\rangle } + \frac{1}{2} \sqrt{2} {\left|01\right\rangle }$$ - 12 - - - - - for gate in [H,X,Y,Z,S,T]: - for state in [Qubit('0'),Qubit('1')]: - lhs = gate(0)*state - rhs = qapply(lhs) - display(Eq(lhs,rhs)) - python - 13 - 0 - - - display_data - ⎽⎽⎽ ⎽⎽⎽ - ╲╱ 2 ⋅❘0⟩ ╲╱ 2 ⋅❘1⟩ -H ⋅❘0⟩ = ───────── + ───────── - 0 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQWtDQVlBQUFDRGczYTNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCdDVKUkVGVQplSnp0blZtTUZFVVl4Myt6RndSWERsZWppQWdvYWhSY0VnZ0NM -aDZBaWc5R1JZa1FIbERqQXlpYWVJSWFoUUV4aGdnYVJYR0pZS0tpCmdDZ1lqWXJHWXptTXhnTUJn -d2tHRVFRRUE0Z1lVWkRMaDYvYTdlbnVtcDd1N2VudW5hbGZNdW51cXE1ai90dFY5ZFZYMWJOZ01C -Z00KQm9QQlVFcjBCSTVIOERFRUkxVzZWMFNWVVlselhzemxOUUEzQTVrSVBxMFpvN3RCU3h0Z0lQ -QTZNQy9tc3BjQUo4ZGNabG93dXRzdwpJNmllTGtCN1lGL001ZllCZGdCN1lpNDNMUmpkRFlHWVRy -dzkrU3RBMXhqTFN5dEdkOHdJbWpaNkFvZUFiVWxYcE14SXJlNXBicUNqCmtQbElPZkVBTURQaE9o -amQ0MGVydWE2QkxnTytCdGFxejdmQWl5cXVHL0NaQ3JQaXZ3SW01S25BV0krd1FjRHp3T1BBZmNE -NWp2aDEKd01nOGVaWWFYWUFUZ0kyYStDcmdMdUFONEFWZ05GRHRrNmZSM1orNGRLOEdYa1htMTA1 -Q2FUNEFXYzlaaEhkRG5xamk3eTRncjZ6agplaWl3RTJuc0FMMkFYYmpkNnRNTHJHc3hpV3N1OUJU -UVZ4TlhBM3dJakVQK3dFT0FuNEhseU1PbEkrdTROcnE3aVVQM091QXRwTDNvCnZNU2VtdWN6Y2Z1 -cDR4TGdtRWY4QUZ0OFVDWURid05iMWZVRzRBdWtNN0N6RHFnUGtYK1UxRkI4azY4T2FUUnJOUEgz -QWl1QXVjQ2YKaUFVekZoaE9NTk1zRHQxUENwbk9TU25vZmpyd0VmQWFjTGJQdllFMVg0UTBUSzhX -bndGMkE1c0t6Q3RyT3grSTlDVFhPZTRacDhMUAp0WVZWQTFNS0xDTnF1Z05QQUc4Q1M0RVpRTzhp -bFRVTnVDeFAvRXBnTVc3emFBL1NvK3ZJMnM3ajB2M2prT2tzdWxOYXVsdk1KUDhJCkdsanpYNEgx -bXJoNlZkaExCZWFWdFowL3JOSjJjOXhqbWRTM084SWZCRTRzc0p3MDBoTlloZDRrcWdYZTg4bmpj -MFNiU3gzaGExVjQKclNaZDFuWWVsKzVOSWRJVWc3VG9idUhYUU1GRGM1MkpldzdRR1JuU3ZSaWlq -aXZ5Rktiak5IWDh5eEYrUUIyZEQ5QkNaR0xlR2hrQwpqQUQ2NCswNEFHa1lqVDc1akZiNXJMS0Za -UkN6YVROdUxiMHd1dWNTbCs1QmNHbGVwYm5SR3ZZSEk2YUdFMnRTdlRKRUphd0g1WUFqCjNMcnU2 -QWpmaXBnOVh2UkR2SkZCMkFLTUQ1Z21MS3VSVHE0M2NDZmlCYlRUQnJnQy8vbk1OdHhyZE5jZ1Bm -aU1BdXNTcGU1cEowMjYKQjhHbHVhNkJXa1A2Q09CM1Ixd0crQVdwZUQ0N1hJZFY1aEdQZkwzcTFC -WlpSUGJpTytDV2dPVWZkRndYNjQyUERIQlluYzlHbHEyRwpBWi9ZN3JrVmVEbEVIYXFBcWNoU1Y2 -RVBTcFM2UjBFeGRMZStTNXAwRDRKTDgzd2o2RWFrSVRycGhmUzJmdmE3amcxSXczZGl6UlYrCmM0 -U1BSTzhwUG9Zc0U3U0VPTjQ4K0FiNEVsbFBzeDZVU3VCRzRPb1ErVTFUNmEraytXSDBJMHJkbzZC -Y2RBK0NTM092QnRvTk9CT1kKcjhsa3NEcUdtWDlDcytPcEZ2akRGdDVPSFhjNjdyOEFXQkN5ckRR -eEcxbW83bzZZMmFPUjZjUFJnUG1NUXR6OHc0QzlBZEpGcVhzbgpGVmZwRVZlUHJCTTZPWVEwRE9j -SVhteVMxajBJTHMyOUdxZzEvMXl0eWFSQkhaM3p6NzdBUllnWGFpbndreWI5OStyWWxkd0h4WEts -CjI5UFZJK3RET3RJK0I3V3pCSmdGM0FGTVFwd1gxd2JNWTVCS1B4VFlyOEw2SXFPam56a2FwZTc3 -a0ttRlZ3TmRpdmUwNHpEeE4wNUkKWHZkQzhkUDhmK1lodHJsdVlYVXpiclB5S21TblJDWGlqRmdQ -bkdLTHo5ck9LNEcva2ZVM093dUJIOG4xTEU4aC83YXFET0syRHZMUgp1Y2JqWUNyUys0NEM3ZytZ -OWl4a1pISTZjK2FnTnhlenR2TW9kYzlIVThoMHhTUkozUzM4bGxrOE5YZU9vQm5nY3FRQmVvMkFY -WUVlCnVPY21rNEVuRWJOaEY5S3pqQUdlOGNqaktPSlZtNERzMEFEb2dIalZIcUo1MTFJdDR0REpa -K3NmcDNXOXY5ZUlmTWVaaURsVEtKMlEKSFVBTHlOMnpXWTA4UUlVNE82TFV2YldScE80V2xyWGgx -Zkg1YXQ0WmVCWjRYeFc2SDlsUWJUa1ZHcEEvN2hvVnZ4RnBmSDFVL0VGeQp2L2hqeU9aaWk4a2Vs -WjJQYklPYWdQUzZzOGp0TUc3RHZUWVhOeU9CUjVEdk9qeWlQQmNpem9ZZ2ZJRCt0MjhXNTBtWGhP -NU5MVWhyClVTcTYxd0JQcTdJUHFYUS9JRmJxOWJiN3RacGJRM1FOM2ozTEx2WHBwTWxnazBxN1Y4 -VmJYdDlKaU5rN1RGMjNROHdySnhYSTVIMDcKOEs4anJqMnkvekVweGlCTFRNdUJVNUhPYVNLeXI3 -SWwxQ0VMM0VIbUxvUFE3MHZkam43TFpSSzZOeUZXV0ZoS1NmY0s5UHRyZHlPLwo0QUJGZnRhcmdI -K0FNMnhoVTRCM2lsVmdUQ3dqZHdScUJENU5xQzZ0aVpidXhUVzYyOUN0Z3diaENPSWg3SWowS2lC -dk5PelFwbWdkClBFZXVLNzR0N2swT0JqYzN0VEM5MGIwSU5KTHJXbDlQeTh5Y3RGR0htUEdYSkYy -Uk1zUG9IaEU5a0wyUC9aSDV3cHhrcXhNcEZZalgKK29ha0sxSm1HTjBqcGdiWnFCRFZDN3RwWVJw -d3NUcnZrR1JGeWd5anU4R1g4ZVQrSE1palNWV2t6REM2SzZKd0VwVXE5eUF2T1Z0Ygp1ekxBdThs -VnAyd3d1dHN3LzBOQ3o0VzRUYXN0Tkh1cURjWEI2RzR3R0F3R2c4RmdNQmdNQmtNQy9BZU1RQWFp -cVVraThRQUFBQUJKClJVNUVya0pnZ2c9PQo= - - $$H_{0} {\left|0\right\rangle } = \frac{1}{2} \sqrt{2} {\left|0\right\rangle } + \frac{1}{2} \sqrt{2} {\left|1\right\rangle }$$ - - - display_data - ⎽⎽⎽ ⎽⎽⎽ - ╲╱ 2 ⋅❘0⟩ ╲╱ 2 ⋅❘1⟩ -H ⋅❘1⟩ = ───────── - ───────── - 0 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9NQUFBQWtDQVlBQUFCN1k0MUFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCc0ZKUkVGVQplSnp0bldtTUZFVVV4MzhEeTRLQ0lPQUJ3WFZCTVNZclFnSkJS -UEFBVlB4Z1NNQk5sdkFCcncvaUZjVUxOUW9EWWdqeENvS3dSc1NiClF4Q01Sc1hFSXh3YW80S0F3 -VWlpaUM0b1JsQXhvaEtROWNPcmRudHF1bnE2ZDN1NmU1cjZKWk9lcWVxdXF2MTNWZldyVjI5bXdX -S3gKV0N3V2k2VVM2QTgwUi9DeW1FbVZ4dTJpS2lqam5CMXpmU09BcTRGY0JLOUt3V3BzTWRJUk9C -OVlDaXlPdWU2VndFa3gxNWtFVm1NWAo5c2xvcGcvUUZmZ3Q1bm9IQVh1QWZUSFhtd1JXWTBzb1po -UHZyUDBpVUJOamZXbkFhb3g5TXFhTi9zQWhvQ25waG1TWTFHcWM1c0hZCmdLd3BqaVh1Qmg1TnVB -MVoxejIxR3BzRzR4cmdNMkNMZW0wQ25sRjV0Y0NIS3MzSi94UzQyYWZ5eVQ1NTQ0QXBIdWxiZ1hx -ZjY3SkcKSDZBenNNT1FYd1hjQ3J3S0xBSW1BaDFLbE9tbGV3MHdENWdMM0E5Y3FPVm5XZmU0Tkhh -SXJHOFBRL1pRbHVNOWFPOVIrYmNIS0N2dgprZFlldUFveEdXWWJyak9seDBsYzY1bkhnY0dHdkdy -Z1hlQUd4T0V4Q3ZnT1dJdDBMaE41N2ZPcGlOUGlVdlc1Ry9BMWNoL2N4SzE3CmxqU0dWdlp0UHpO -MWlEcXVCSTU2NUE5ejVZZGxKdkErTXZOVSs1eTNGUmpZaXZLanBKcnltMjA5RVl0anN5SC9EbUFk -OERUd0IyS1oKVEFiR0VzN2ttb3FzbGQ1VG53OEF6d0ZMZ0ZOYzU4V3RlNVkwTGt2ZlhvNE1RcSs5 -bUJ6d0MvQk53TEx5aHZUVGtLZXJhZmJvQU13SQpXRWZVOUFYbUFLdUExWWhaTjZCTWRjMENMdmJK -WHcrc1FHWnNOL3VRMmR0RTN2VytHekw0NW1qbkRFTHVnZHZjaWt2M3ZtUkxZemVSCjl1MGZnVzJH -dklHcW9pVUJ5OG9iMGtzMUdPQmU0SVNBOWFTUi9zQUd6S1pPRitDdEVtVjhoT2gwa1phK1JhVjNN -VnlYZDcwZnJjNXQKME03SklaUHVDMXA2SmVtZUZvM2RoTzdiSmpQMUxLQTM4cWoyWXBRNnJ2T3BL -Q3FXSVkvOFNtUVVNQjRZaW5taGZ5UFFXS0tjaWFxYwpEYTYwSEhBbXNCUDRNMEJiZXFtamZtNHo4 -QmRpd3JtcEZOM1RwSEZZQ2pTdU1wemtQTTVISWlhRWpyTUlYaDlkdTR4OGo1Z3pYZ3dCCkhnNVoz -aTY4UFZ6bFlDTXlvUTBBYmtFOGRHNDZJczZVVW11U0pvcjN4YTVFWnV1NUFkdmlETWFESG5rSGdS -TzFORC9kMDBTYU5BNUwKZ2NhbXdlZzhxc2NEdjJwNU9lQUhwT0YrdG5SVWRFSzhVbDU4QVZ3VHNy -eC90TS9sK21aRERqaXMzczlIdG9yR0lJdDdoMnNSOHpCcwpHNm9RUjhFbWduY1U1MTRmTWJSVjd3 -dCt1b2VsSEJvN0FkcHAwamdzQlJyN1BSbDNJSU5PNXh4a0ZpMWxnMGRGUFdhUDdWRmdieHZMCmp5 -UHEvblBnRTJRUHkra29qdnY3aWxhVU4wdGRmeGt0bmJFVTIzM3lPZ00vYTJsK3VvZmxXTkU0TEFV -YWV3M0dXdUIwNEZsREFTUFYKTVk3MUlrQWQ4SEpNZFpXVCtjQkxpRm15QzFrcnJBTCtEVmxPQStK -dUh3UHNEM0dkNDR6VEhSRTU0RGpnSnkzZHJYdEhaSDNqNTZwMwpjeGo1KzZKNnNnWWxhWTNEVXRD -M3ZRYWpzMTdjYUNoZ2hEcnE2OFhCd0htSWQyZzE4RzNyMi9nL0E1SDlHQk5wWHpPNldRazhCdHdF -ClRFT2NEZU5DbGpGY1hUOGEyYVlBMFgwN3BUdCtFL0E3eFFIU2RjaUFkTjh2WGZkRHdIV1lMU21k -SXdIYVV3NlMxamdNcGZvMklKRVEKellnWHlZdWRGSnVHbHdPdklZLzFYc2dzZkxJclAyOG9xNVQ3 -ZHdiKzRVZzVaQjgwek12a29vNkRtY2hNMndEY0ZmTGFNNUJvRU4zUgpzaEN6R1pqWFBxOUhOdm5k -M0laMHNqNnV0Rks2cDVta05YWUkzYmYxbVM0SFhJSU1OcThuV3czUWorSzF4SFRnRWNRYzJJdk1J -cE9RCkdFZy8ycXVqMTQzdmdqaGIvT3oxWmlyck8ybU53SDJJWjY4dXhIWGRnZGNSazhZZDA5Z0I2 -VUJCblJNTGdPZVJUcm9mdWQ4VEVOTnUKanpvbmlPNXBKbW1OSFZyZHQzc0RUd0p2cTBvUEFFOGgz -bFFRMDNRUkVrclVqRGgzNWlIUkc2aUMzWC80UTBpd3JjTjByYjU2SlBEOApLMVhlSVNUaTV3bGE5 -ajZ2cDNqdksyN3FnUWVRdjNWc1JHVXVRNXdEWVhnSDgrK3ZyUEM1VHRjZDRFN2dZeVQ4YXlud0Jv -VlJWbkhyCm5qV05XOTIzblVkdk5kNnp5RjcxNnU1MU1SSU9WNDNNc3JXMGVGK25JYWJyR1BYNWVH -UmoyYUVHaVJYMFlvczZka1ZpQkpOaUVyS3QKc3hZSnNONk1CTWUvMHNaeWV5SWJ5R0hXSDhNeHgy -N3V4aHlXcU92dXBoYTViL3BtZHB5NloxSGpSUHQyRmZBM1lpTTd6RUJtM0VwbQpEWVd6WGlQd1FV -SnR5U3BXWXhkQnZXTitIQUcrUkJhOXUxVmFEMXJXSUpYS0FncGQ0cDBvRGhpd3RBMnJjUmxvcERB -U1podmlDTW9LClBSR1RUdjhpcmlVNnJNWVIwUStKRHh5SzJQd0xrMjFPcExSRHZNY1RrbTVJaHJF -YVIwdzFzdW5mSSttR1JNd3M0QUwxdmx1U0Rja3cKVm1OTFNhWlErRXZYRHliVmtBeGpOVlpFNGNE -SktsT1JIMnh5UXFKeXdKdkpOU2VUV0kxZDJQOFRZT1pjaWsybVhiUjRqQzF0eDJwcwpzVmdzRm92 -RllyRllMQlpMQVA0RE5NcmxDQ0JJTDB3QUFBQUFTVVZPUks1Q1lJST0K - - $$H_{0} {\left|1\right\rangle } = \frac{1}{2} \sqrt{2} {\left|0\right\rangle } - \frac{1}{2} \sqrt{2} {\left|1\right\rangle }$$ - - - display_data - X ⋅❘0⟩ = ❘1⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZRQUFBQVpDQVlBQUFDdnJRbHpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBMEJKUkVGVQphSUh0MkV1SUhFVWN4L0hQSnBGbFNReUtVYklzNmlGS0RCandn -WmZnUVR3b0VSVXhxUGhXVm9rbUo5RUVFcERNUVJSZkNBcWlvZ2pCCkhCUkJEZDRVRkZGUXdlZmlR -UTFrVFFJUlJRK2FSRmJVemFHcTJlNmFucDdwN1ZsM2RlY0xRM1g5cS9wZnYvbFBQZjQxREZnMDNJ -S3gKK1JaUlFTMTllM0FJMC9GektEckllRGJYZGd6dlk2akMzL1lTMjQxNERRL2pVZHlRdEsvRXRs -NEZONlJNWDhZbUlSNHB0ZlV0d3o0aAphR3VTdGlIc3gwNHM3Y0ZYSzZsZmljTTRKU2R1RXRlVXZM -ZXNSNzFOYUpYWXhyQUZmK0wxaXZjSytwWlVEUElYWG9qUE55VnRUMkNyCk1MditycFJhems3c3hT -K3gvaHZld3NzWXp2WGJpNnRtNGI4cGQrTXhyTUEvRmYxcTZ6c1ZVL2pCVFBCMzRMYWFBbHU1NTR1 -RldYOXQKMG1kanRGK2EyQitxT2Rac2FGVzBIZEY1aHBMb3E1cWg4RFBld0JtNEF1UEN6TjNkVldK -bkxvemw5NGw5WHl3dktiR2YxV0M4dWFhZwpyMXRBNGZsWVBvbDFlTHloZ05XeFBKTFlqOFp5TkxH -L3F2M0FXa2dVOVBXeTRiK0hiN0VXei9SQlFCYlFvNGs5cTUrVTJQL0E4ZzYrCjFndXJwU3JEU0Rt -QXEydjA3MFpCWHk4QlBjZk14bndYSG13b1lDcVc2V1ovUWdmN2lDQzZqQW1jMzFCUFV3cjZ1aTM1 -TVdIVHZUeSsKTks1NUdqUFJ3Wjc5eW9jVCsvWENzbHFvRlBSVkJmUmtZWW5maTRQeHBWSHR1V0pk -dnM3NXo3TWlsajhtOXJYNHJ1R1ljMGxCWDZmWgpOaUljUnZjTEp6MDhoenR3ai9ZMFlnaTM0MFJo -Vm4rSXR6djR6Z0o2dXVKSmYxRXM4elA0QW56V3dRK2NLK1N1ZGZmUU5HV2JMZDMwCklRUjVOODRy -YWZ0QzJPUE9UdXpYNGNYNHZFUUkydnBjZXl2cFA2azlXM2dGM3lnR1o1ZjV1eWxsVk9XaGJmclNK -YjlHbUYwVCtMTEUKd1I3aEMyOUo3TnVGV3dNaDRPL2kxZ3FSTzNBblZzWDZxSkRZUHlJazk0VFpm -a3pJZStlTGxjTFZlcFgyVlZDcGI2T1plL3Uwc013MwpKSDFlRWxLYnJNOVgyQnpiZmplVHNNTURl -Q2RYdjY5a3pIRzhpYWVFSDJOejBuNnpzQzM4RzZUNk51RmpJUTdaOTUzRUJ6aHpydlVOCnh3SFg1 -V3hiOGVsY0RMYlE2ZVdtMUkwcElkV1p6dG1XNDljKytQN1AwWStBd3VjNExWZGZMWnltaTQ1K0Jm -UVR4WCtKTGhQU3JFVkgKbmZ5dGloRWhnQjhKLzB6OWhLZjc1SHRSTTl5OXk0QUJBd2I4YnpnT0px -S2orRWxZcEh3QUFBQUFTVVZPUks1Q1lJST0K - - $$X_{0} {\left|0\right\rangle } = {\left|1\right\rangle }$$ - - - display_data - X ⋅❘1⟩ = ❘0⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZRQUFBQVpDQVlBQUFDdnJRbHpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBMEpKUkVGVQphSUh0MkZ1SVZWVVlCL0RmbUhFWTFDRURRNUdpc0RJaElRdGZl -b29ldWtIUlBlZ09KbWsrUldVb1JlY2hJc2pBTGtSRkVSaENRUmVJCjNncnNvYUNDcnZOa0dwRUpS -VUZCWlRWZ016MThhNXA5bHZ2c3M4L0ZJelhuRDRlMTEvOWI2MXYvK2ViNzFsNXJNOEs4d2MxWWVh -eEYKVktBcmZidHhFRFBwZHpBNW1NVXpCZHNmZUE5akZmNjJWdGcyWVdjSlA0SDc2Z3J1RTJYNkxz -SHJlRFQ5Tm1iMnJ2VXR4SDRSdEZXWgpiUXpmWUR1T3ErR3JXY0tkaG0yWXh0TVY4eGJXOE44dm1s -bC9QWDdGS2FuZndCZTRzMlJlaTc0RkZZc2N4dlBwK2NiTXRnTmI4QWorCnJpRTR4LzNtL29pcXpI -NExsL2ZndjE5c3h4NGNTUDBwdklJbmNGSmhYTmY2bGlWbjM1b0wvamJjMnFYQVpodCtzYWlBZGhr -S0QzZTUKVmk5b0ZwN1BGRlZ6VnpabW5kQ2FKMWVMdnFvTWhaL3dwa2o5eTdCQlpPNnVydVQyaC8w -NGZZanJyUk5WczY5RUIxeFF3ditycjFOQQo0Ym5VUG80MWVLeHJpZjNoVmR3d3hQV1dwL2IzakQr -VTJoVVozNkt2em9hL0IzdXhHay8xSUxCZi9JbEZiV3hyUmJWVTdjTTVEdUNLCkN2dHNRQTlsL0RU -K3dnbFYrdW9FOUt6a0RPN0FnelhtREJMalFuUVpKa1dKRGhKVHFaMHVzUjFmd3JmbzYxVHlLOFdt -ZTNHYXRNRncKampGRlhDL0thbGlZYk1NM3hCSHgrNHh2MFZjVjBLV2l4RGZqdXpScEJhN3NWV21Q -V0kydmhyamVsNmxkbXZHTFUvdER4cmZvYTVkdAo0K0psZEk5NDA4T3p1RjNjYkY3THhvL2hOaXdS -V2YwKzNxNmp2Z1BPeFNjVjlyUHhrdTczMEtzcjdGK0wvZlBrakYrZjJtSUdkOUtICkNQSXVuRk5p -KzB6c0lXZGsvSFY0SVQwdkVQL2x0UVY3czgxYW5jNmhEemsyTjZVUDhYTEc3UkRsM2lod1IrakxT -MzZWeUs1SmZGNnkKOEc2UkRmbWhkNnU0TlJBQmZ4ZTN0Rk5md0ltcFhWWmlXeUsrRXh5dTRXZlFl -QUJYNGRUVW44QTE0dWc0KzlLcTFIZXB1WHY3akNqego4N014TDRwU21CMVR2TnYraHZNS1krL0ZP -NFgrM1ptdmpmZ1l2eFQ4N1JNZldTYlNtSnNjV1haSEM3ayt1RlpjYW5iaURYRmRMaWJnClVkUFhF -QUZaVStDMmlJRE5POVM1S1hYQ2xOaGJaZ3JjSXZ3OEFOLy9PUXdpb1BDcDFxOHd5ODE5cVpsWEdG -UkFQOEtGaGY1RjRwZzEKNzlETithMEs0eUtBSDRndlV6L2l5UUg1bnRkb2RCNHl3Z2dqalBDL3dU -K1VES1FiK0JQTG9RQUFBQUJKUlU1RXJrSmdnZz09Cg== - - $$X_{0} {\left|1\right\rangle } = {\left|0\right\rangle }$$ - - - display_data - Y ⋅❘0⟩ = ⅈ⋅❘1⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZZQUFBQVpDQVlBQUFDcldObE9BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBM2xKUkVGVQphSUh0MkYyTVhWTVVCL0JmUDhiWDBLSlN4VFRVay9CRVMrTEJF -RjhSU1ltRXBobEUwSGdZUElnRTR5TnVoQ1lpOFNSQmVKS1FJVkdDCkJQV1ZOaUpGcEZJSlF0T0k3 -NGVXRkJNUlREMnNmVE5uOWoxbjdqMjNkMXJwM1AvTFB2dS8xOW43ZjlaWlorMjlEbjBjMEZpSEpm -dGIKUkJkb3Ezc1ZQc0RmMklNSmJNSmdabmNzZmtrMms5aUc0ektiTzBybXZ4N2plQWdQNDRwc2ZD -bHViZk1RczQweTNYQW8zc1hwSldNZAo2NzVXT08yWk5qWmJNRlF4M3NqNmEvRU5GcVgrRXZ5SWl6 -SzdCekN2RTVHemhFYldIOERaMkNoOHNxcml2bExkODdQK0JoR3RsK0hnCmtrbFdZRFhPeGZjZGlK -MkhNYnlJM3hLM0M2K0xsMWRjLzIydHp0NWZHQkMrV0lOZjI5aDJyUHRaOFlhdXpQaEZlQWxIdDdt -L1ViaSsKSk0xMWNXWnpWZUxQeXZnSE94RTRTMmhVOExlWU9XSXAwWjFITE9GWXVMckFMY0FUdUZQ -azJFNnhNclZmWi96MjFKNlg4VC9naEJyegovMS9Rb3J2TXNSdXhFNWZpcU1ROWdxZndWYzBGbDZY -Mmo0eWZTRzIrOFQySGtacHIxTVdJQ0pKeDVjL2ZEVnAwTHl3eCtnY3ZZRlNrCmc0UHdPZDdyWXNH -bVl5Y3l2dGsvTXVOM20zcVpPVmJpYWZVMnVPMm1wN1RWNHVSenM4ajVGK0N0R3ZOVm9VVjNtV09K -ZERDS3U4V2IKSGV0eXdiOVNPNW54QXhYODRpU3lESjhvUC9MVXdlWGk3SGtPRHNOM2V6bGZFeTI2 -cXo2RkxjSXB1M0RQWGl6NFdRWGZQQi8vbFBFago0ck9hTGF4UDdZM2lHYi9zMGJ3dHVxc2NlNm80 -YnIyaE5hcnFZRnRxODgvNzhOVCtuUEZEZWhkRlpkZ2hvbXVOMkRONmhSYmRWYWxnCk9MV2JTc2Jt -aTBycUVDd1h1ZmZOaW5tYWpsMXVlblNlbWRwaVJBOWpjOFU4Y0FhZVZEL0hyczI0YThRKzhyeHc4 -a0x4WlhhTGRycW4KWVZ3aytieWtKU3F2eDlMMUFueUJVd3JqamN4K0orN1B1SmZ4VWNidHE4cnJZ -MVBSZXArcERiWlJZZC91SE50UjVVVTRheGlmYXQzTgppWnI2bFhUOXI0alltWTVJZCtFbUVSMXdv -dGlOMXhkc2poRlJzMmVHZVhxRklieUQ0OFVtbXFlakhNMkNhR25KV0VlNlR4SWh2U01aCi9vNzN4 -YWZUeER5eHFaMVc0TzdGcTRYK2JTVnpqNG9vZlJTdjRicHNmRjBTdVM5d2d3aU1NUnhSNEhQZEcw -UXFteFQrK0JOYlRhK3kKZXFaN2NWcGtSWUc3WFkwY00xZFF0L0xZYmVxM1lST0Q2cFc1Y3dMZGxI -UmJUYzgzeS9CdGIrUWNPT2pHc1IvaS9FTC9RbkVNNnFPQQpibzQzZytJbnhtYWNMS0wxOFY2S211 -c28reEhlUng5OTlOSEhGUDRENzBpdXlrYnJ4SzhBQUFBQVNVVk9SSzVDWUlJPQo= - - $$Y_{0} {\left|0\right\rangle } = \mathbf{\imath} {\left|1\right\rangle }$$ - - - display_data - Y ⋅❘1⟩ = -ⅈ⋅❘0⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdVQUFBQVpDQVlBQUFBb25PQjFBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBNTFKUkVGVQphSUh0MlZ1TW5WTVV3UEhmdExSaVJJc2FJNllvSGx5ZWxFWjRH -RUs5RUgxd1QxMFMwZlNoY1luVUpVcmlSQWpDdzBpYXFKQklKS1FSCklVSGlFaUp0aElvS1dpR3FS -RnhDQk1tRUVkZU9oN1dQT1dlZjd6dVhtVG50VEhyK3lXUi8zL3JXdDcrMTlqcDc3YlgzMEtOSENh -dHcKeUo0MllnL1ExTzlUOFRiK3hqakdzQW45bWQ1aCtDWHA3TUkySEo3cDNOckVpTFc0dDBBK2dP -dWJ2RGNiS1BMN2ZEeUwrM0EvcnMyZQp0K1gzVldMQW4yeWhzd1ZESmM4ckJiTGprbnc4R1ZmRTNl -aHJaZUFNcHBMZG40NVJFK08wSDdackRFeUQzM015aGVmRUxGbUIrUVVmClhvSUxjQ2ErYmRQWXUz -Q0hDRWd6WHNlNWJmWTVHMWduZktxTzB4OTRCdXZWcDZ5Mi9INUtET0RGbWZ4QVBJK0RXN3hmS1pF -UGFqNVQKNEo1V3hzMWdLalhYSjRqMHZqclRXU2JHNE5KTVh1ZDNQbE9Jb01BVk5iSzUySURieEpy -U0xiN0RFVjNzZjNleFZLU2t6elA1enRTZQpsY25yL0M0S3ltdjRDZWZob0NSN0VJOWh4OVJzYmNu -VFdObmxiMHlWbzhUQy9STE9LZEVaVE8xdm1Yd3N0WGx4Vk9mM1BnVWQvaU55CjN4cVJ3dWJoRTd6 -WnJ0VlRZTlRFRHlIbkZEeXVzMkpncDhZMFBCWDZSTGE0T2JYcjhFYUJYalVvWTVuOEx6RytDek41 -bmQ5RlFTRlMKMkpyMDBZMjR2UVBEcDhJQ1lXQVI3K1BrM1dSSEdTdndNbjdIY28zcHFjcWZxZDJW -eWZ2RVVwREw2L3d1QzhxVzFQSFBvbkxhWGF3VQpVM21tOGhHK3h2RTRRL3hvaTloZUl0OWZCT2I3 -VEY3bmQxbFFUaFFsOFNzYW85cE5odkJObDcveE1FN3JRUDg2YkUzWFg2VjJ0VmhmCk41VzhzeTIx -ZVNvK0lMVS9aUEk2djh1Q01wemFvby9Pd1RWaU03UllyRFd2bHZUVENjUFkzT1Q1VWp5cTh6WGw4 -a3gyWTRkMjVjekgKMVhnZzNSK0xMektkSFdKZnNoanYxTWlYcGJaMkpyWHkrMzgyaWlPWC9KaUYy -Tkd2VDlkejhhbVl6bFVxSlgyMjJxZk1saDM5UldLeApIc0FpRS81V01yMnRlQ0tUallqTjVMd2FX -Y3NkUFRIUXcvaFFZL1ZBblBHOGtLNy9GVE9sblRLMnV1a2NLSGkyU0t4ZnJYYjlNNEVoCmZJd2Z4 -YXpiVUtKM0p5N0JrZWwrSVM3RVE2SUtvdzIvanhiVDZNdWs5Q3Zld3BVMU9uMmlBRGdwKy9pTE5m -YzNaZjNlZ1BkRWRUR2UKL2o0VHdkdzM2YXhLQnM0R0RoVjd1Ukd4MkZmSi9ZYkx4Q25JU0dwdlVU -OHJwc1h2QldKUWw5VEkxbW96Si9ab2o2TDAxWXhSRTBmMwpWZnAxOStobHI2UFRvTUFINnRlRlFW -Rzc5NWdtSmhPVWQzRjJ6ZjF5VWFyMm1DWW1VNEwyaTRwak00NFJzK1NSNlRTcXgrUXAraWRZCmp4 -NDlldlRZZS9rUDB5SzFTZ2ZuL0lFQUFBQUFTVVZPUks1Q1lJST0K - - $$Y_{0} {\left|1\right\rangle } = - \mathbf{\imath} {\left|0\right\rangle }$$ - - - display_data - Z ⋅❘0⟩ = ❘0⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZFQUFBQVpDQVlBQUFCSmhNSTNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBdmxKUkVGVQpXSVh0MkYySVZrVWN4L0hQbzY1TFdwcFM2NVpGV1VGWGlSR2lK -S1lJMVJJbFFsZW0rZGFiQzRJWFFua1JxRWdoWHFrWlhvYjJSa0ZRClJDRklFWFhwblZKR2htK3dy -VkVwK0JZcTduWXhzM1dhem5OMnozT2VkVk9mTHp6TW1kK2M4OHlQbWYvTStjK2h4WFZITnlhTXRJ -a0MKU3ZucndDWDA0eklPWXgvMnh0OGZzZTNaT3MrUHhyb2MvUlY4aURld0ZjOGs3Vk94ZXFnbUsz -QlYvSzNFUmF4Rlc5SzJDRmV3bytENQpNWGc5MFZiZ0o0eVA5UTc4aW5uSmZadUhhcklDVjhYZkoz -ZzZSNStGQy9nTW8wcVlISVVmaFJuTzhqNk9vNWJSbnNCalF6WGFJTVB1CmJ5eSt5ZEh2RTJabVA4 -YVZOTGxJV1A1cDU4OUhmWHBHcXhuK2FHeXF2N3hvNnZUZkdabU1ML0duRUtFWFNwcCtKSmFIRS8z -bldNN1AKYVAzNERiZVg3S01LbGZ6bERlSUo0U1V5UURzK3hSUThKVVJqV1RwamVTN1J6OGZ5amtU -L0FFc2I2S2RSS3ZrYk04aWYxL0FPWnFNTApQelRtOFcrVDV4TjlvSDVyb3YrdWZpVE94VnNsK3or -QVpRWHRsZndOTm9odllqR1c0K3RCN2kzaVlpejdFcjJ0am42YmtFYmw4UjFtClZQQ1NSeVYvUlcv -WWw3RWVHN0VubzkrRUJTVk5IcXlqRDZRVHZZbStCTytWN0tNS2xmelZHOFF1dkkzZDJKUzBMY2JF -Y2g0ZGlPV2sKUkw4NWxpY3pXazFZS28zc3ZZMVN5Vi9lY3A2QmovRXRYc3BwWDRVbmhWQmZKV1Qv -MC9DRi9OUW9hL0p1bk03b00yT1pqWVRIL2Z2RgpsaklIMnd2YTh6Z29IQ0RxMFV4LzdrSVB2cGNm -YmMvaDgzamRqUzN4dWsxSUIrNk45VFFQcStFc1hrditiNit3eDJVWmlSTkwwL3hOCkVHYWtGL2Nr -YlhjSysyTWZYb3phVVR5YXVXY1BYcTFqRXRiZ0dHNko5UWVFZkxNcjZhZTd5R1NUYUtxLzdITGVo -b2VFU1B3b2FtTngKdjMrK1hGd1dJckZkaUxxZXpQTy80T0Y0M1ljelNWODdZMy92NGdnZXhBdkNi -QSt3VVBnQU1OejhML3hORlRMM2JDNjNRVGpWM0hBVQpwVGhGbkJTT2dQMFpiVHhPVlhaMERkTG9J -RjRSOXMrT2pOWXBIQmxibEdDN3NCa1QzbTRuaEM4OU54eTF3VytweTBUc3dsZkNKbnhJCk9HZTNh -SUQya1RiUW9rV0xGazNpTDRkZnRMa09FUklrQUFBQUFFbEZUa1N1UW1DQwo= - - $$Z_{0} {\left|0\right\rangle } = {\left|0\right\rangle }$$ - - - display_data - Z ⋅❘1⟩ = -❘1⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdFQUFBQVpDQVlBQUFBaGQwQVBBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBdDFKUkVGVQphSUh0MkYrb0ZWVVV4L0hQdWY2NVdHQWhlVFVOTktGOE5RZ0tS -QjhrU2Fvbmc4Q1VRaUZUa0JBUzZTRkpFY1ZYa2FpbnBCQ0RJS2pJCkNDSU5SUkdFSGhMMHdSZEpp -OEwrVUZDQkVxZUhOVmZIT1h1T1orNDU1ODZWNWd2RDJXZnQyWHV2Myt4WmU2ODlORFFVMklyWmRU -c3gKSkNwckc4TjF0SEVEbC9BVnZzeXVYN082NTB2YVQ4UHJYZnAvRTdzUzlvWFlVc1hSbXVpbXI3 -SzJrWktPbmhVUGVUdnV3U05ZalRWNApGL2ZqRUQ0dWFkL0NySVQ5VWV6SFhpR2t5QStaczFPZGxM -NEphNXRlTXNoejRpMy92R0IvQWtjeisvYmUvTDNKUGp5SXEzZTQ3eFJXCjRtVEYvdXRrNE5wbTRw -dUVmUWwreGprUkhkMllMc0l5eFdJUlpidEw2bHZpYlpyS2xPbGJiQUxhVXN2UmZER3plZWJnQy93 -am91VHYKbmx5ZEdHMWN3OXdoamxFWFNXMnBTZmhlYk1MampPSVR6TU16SWhxR3pWRnNtSVJ4NnFC -RFc5bWVNRTRMaC9HazJKUXZETWV2RG41UgpIZ2tyUkZKUWhlL3dVbDhlRFk0T2JYZWFoUDFZaDVk -eGZFaE9wWGhBcE1FcFRtSFpKUG95YURxMGxhV29zQmx2aUUzbWc1eDlGbFlOCjJyTUM2M0ZreUdQ -VVJZZTJza2hZZzdmeFB2WVU2dGJoOTRHN2RvdVdDTmRoN3ozdjRMRWU3MjNqVmJHczlVTlNXMm9T -bHVFamtjdSsKa3FqZmhLY3hJeXRQdzhNNEpwM2FWbVcxMnhPRElzdHhzR0tmNTdHeFlOdGFzWTlC -a05SV25JU0h4TU84Z3JYaWswV2VGMFVVL0NWRQpMQkpMMWd4Y3hGTzQzS2VqSzZTUC9lT2N4dU45 -amxFWFNXMzVQV0cyT0F1TWlGVDBqMXpkQXZHd2orRFR6TFlUbjJYbEd6aURGM3B3ClpFNzJPNWFv -VzRBZmUraGpxdEszdHZmRTJuY1ZaN1ByV3pFWjdleTZMczRMbzluL1JibjJCL0JoVmg3QmE0WCtk -NGpUOXArNS9pN2kKUk82ZUxlSzcxRlNucUs4V2JRdXpnZkw1N2xzaWtob3EwaTFGN2NaUDRoTkdP -MmU3RjcvMTdkSC9rSWxPd3I4aVhjdXZmZlBGSjQrRwpTZVFndG1YbGxwaUFKZlc1Yy9mUzZxUHRm -ZUxBOHpXV2lvM284Q0NjYXFqT2FOME9ORFEwTkRRTWhQOEE1dHlRaEROTkdtY0FBQUFBClNVVk9S -SzVDWUlJPQo= - - $$Z_{0} {\left|1\right\rangle } = - {\left|1\right\rangle }$$ - - - display_data - S ⋅❘0⟩ = ❘0⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZBQUFBQVpDQVlBQUFDbVJxa0pBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBeEZKUkVGVQpXSVh0MkZ1SVZWVWN4L0hQTkdNb0UxcUJOUm9SR3BIVlEvU2dG -WVNYd0VLb2ZDbXdncDU2NmlWSWlNS2dFMXBFU2hBRVBnaUNxRlRZCmcxQmdGM29wQ08zQmw2SFFM -a3hSakVrM2pTWXZYY2FIL3o3TWRyWDM5dXl6ejJnajV3dUhmZFovM1g1bjdiWCsvLzg2OUxsb1dJ -REgKTHJTSUNncjFEVlYwR01JVFdKWjluNDEzOENiZXduMFZmWi9HSzRudEZyeUFNWnpBYVd6Qnlh -eitDRzQ0eDQvb0ZkT3VidzdleFhPNApKR2QvRm9mRklsYlJTc3J6Y0F6MzVHeTdzQzFwdHhaTE94 -WFpnRlpTN3JtK1BRV2QyNHpqOFpvQ04rQ0h4TFlhazdnN1p4c1V1MkM2CmFTWGxydlhsZDFlYmVX -S2w5NVJNUG9xUE9oUUtsK0pKZkpEWVA4YWZ6bllGLytCM1hGNWovS1kwMGxlMGdIZGhsdkx6L29u -d0U1MXkKTGVianE4UitTcnoxbFluOURUeFNZL3ltTk5KWEZFUU9pSlYrRll1d043UDlsZFZ2cWls -d0pIditVVkEzSWFKYm5uRXNyRGxIRXhycApLMXJBbjBXdzJJVDEyV2NDTzRTdk9OYWx3SWtTZ1VY -SDlVdmNLQUpXeW9kaXgzVEtKQjdDMTlPaHJ5eU4yU3hTbG9leENuZUlsT1pxClBOaVI3Q2xPWmM5 -L0MrcG1sZGlYWUdmSmVLdHJ6bjh1R3VrcjhvRnREdUY1TE1kdCtGNEVsOWsxQlk1VzFBMkwvQ3JQ -QW5GTUptdk8KMHkyTjlLVUwrRXpKUUo5amQ5WnBvS2JBNzNBY1Z4VFVYWVlmRTl1ajJWem5pMGI2 -aHBMR0svRnl5VVJ6Y1ZCazZYQW5Wb2pnTWdjdgpLdDgxb3lMYTVabVA2L0JlemphWXpmTmJ5VGl3 -VDMwZnVBN2ZWTFRwaWI0MStCdlhGOVJkaGFQQ0g4S1Z3c0czWDhBV2NUMXEwMHI2CnY0NHZFdHM2 -RWUzejZkSUQ0dW80M2JTU2NrLzBiUmE1ME51NE9XZGZqUDBpR3JmWmdPMjU4bklSbWNvRUxzSlB1 -RDhyRCtCOS83MFMKYml3VDEyTmFTYmxyZmZralBJTGJjU3RlRStIN0YzRmtuOEtudWJaTDhHMnVQ -QzdlMUxBSS9jZVRlY1pFUnI5ZTdQUzU0a2psZCsySQo2bVBXU3k2NHZuMGlWMnh6amZBMTV6TUIv -bDlRbGNaVU1lYnNnREdjUFg5dEptZm0wZTBDSGhTQnBjMkk4Q0VuaTV0ZnZIUzdnSitaCmlzaHdM -N1kybHpQekdPeXkzMUh4dDljYTNDUjI0RXVtcmtWOU9tUkEvSi9XcDArZlBqT1JNeUNPd1JpWFM5 -ZTRBQUFBQUVsRlRrU3UKUW1DQwo= - - $$S_{0} {\left|0\right\rangle } = {\left|0\right\rangle }$$ - - - display_data - S ⋅❘1⟩ = ⅈ⋅❘1⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZZQUFBQVpDQVlBQUFDcldObE9BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBd3BKUkVGVQphSUh0MkYrb1ZGVVV4L0dQWHBPOGxrV1FYZE1IS1NVelRYeFFL -cUs4UVlXUS82Q0hOSWdnUytvaEVFSHFTU0g3WjlKYkNFR2lxZFNiCmtjSU5UTHdnSWxxWUlFSUZw -aUlVV21sRVVGRjVlMWpuTm1lbWM4NDBNK2NvWGVjTHc3Mno5OXByL1didGZmWmUrOUJseERNSlQx -MXAKRVcyUXFYdDB3WUF4ZUJFNzhDRSt3ak1ZanoxTmdxMHQ2THNiUnpMYXY4UDBKbjZycGpUZGVZ -a2RKeEk1UWN6R0UxaUtpVGlLWDVvSQo3TTFvdXhITDhHbmlKNHZQTWErSjd5b3BUWGRlWXQ4WE03 -RUJsMUx0citQNkpFZ3JMTUI3bUlNTEJYWjc4RmlMdnF0a2dUWjFqOGt3CnVnRkxHZzFUSE1lK0Zn -VU9KaDlDN05RY3U3L3dzMWdsUDdVWW93b0d0YWs3YThYZWoydms3M2NIY0tvZGxmK1JEN0NpUXY5 -VlVhYzcKSzdHSHhReThqVTFxaVI1bVE1WHE4QzF1clRqR0xMeUZBZkdZbDBHZDdxekUvb0NYay8v -WGlCVjZFZStJcFg0NStCcDM1UFR0eGJFVwpQbDlnV21wOEwxYUozM2hlVkQ2bDY4N2FZNG5aM0kz -bDZNYzllQUczNFBFU2hlUXhBOXR6K2g3dTBQZXplRmNjeXYzWTBxRy9OUC9vCkxxcGp2OFE2UElD -NU9Dc090V3RMRkpMRkpQRllEVlhrZjdjNGdCL0JGR3d0eVcrZDdzYkV2cFF6NkFSMkpvTkdsU1Fr -anllVFdGWHgKVGZMM09WRTJuaTdKYjUzdTlGWnduU2dwM3NnWk9FRmNEbjVOdnQrTEIvR0h1RkM4 -cXZOVjFwUEV1VmhnTTRDYlcvQTVKQzQ0SjFOdApmVmlrZG9yZjN0RGZLb1c2RitMUEpFZ2pFM0ZP -N0Vsd0U3NVNtNWhONnErRDZ3dEVETXBmSllzeHYyQnNXYXpCanhpTDJlSXdvMFRkCjZhM2dJVkdm -dm9tWnFmYmI4REUyWW4vUzlqd09pb21ROUs4c0VEVk1qN2lBOUlwM0RvM01rMzBmTDVzcG90cTVK -TjUvYkd0aTM1SHUKN1dJbDlvdVM1ak44Z2wyNEw4UDJsZFQzYWVLUkd3NjZ1c0YrZHZKRHppUjJR -K0lKT0tSMnl2Zmg2VHh4SlRORDNCNDM0cTVVK3hYWApQYUJXNjhMa0pHalZoZjMvaHFKeXE0aFQ2 -ZytxNFpWYTlLTGlxcUxkeEI1Vi93cXREOS9qdDQ0VmpSRGFUZXdSdFFvQkhzWG16dVdNCkhIcmFI -SGRPbkpJTGNhZFlzYS9oOTVKMFhmV01FclZnbHk1ZHVuVDVOMzhEaXFhbVFHZGFQZmNBQUFBQVNV -Vk9SSzVDWUlJPQo= - - $$S_{0} {\left|1\right\rangle } = \mathbf{\imath} {\left|1\right\rangle }$$ - - - display_data - T ⋅❘0⟩ = ❘0⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUU4QUFBQVpDQVlBQUFCdzQzTnNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBdk5KUkVGVQpXSVh0MkUySVZsVWN4L0dQbzQzanU3WVFxekZ4RkVKRk1pVmNS -RVBVTW5RcjZTYlNRREFHaElTV0xoUkZhS2VRRUdSUWlSRVZMU3A3CldmaTIwWkJTQ0VJTHEwbGRw -Q2xXdnFZdHpyMXhQTjc3ekIzdkhZZXg1N3M1NS83dXZmL3plODQ5TC8vejBHYkUwNGR4dzIyaUJZ -WCsKUmtYMWhmZ3VxLytBbnpFVlMzRURoM0FGVS9BNHVqQU5GNk1ZNDdBYTI1TTIrdkFrVHFFVFgr -R0w2Sm01ZUFwdjM4VVBHd3hENW04egpQc0NrU0Z1QVc5aVZQTHNRRndwaVRNU3JpZllLamdtZERk -MDRsNW1OMlZSbXJFRWE5ZGNSMVpmZ0JWeUt0TjZzL0RKNTc3Z3dFZ2ZpCkFXekFibUhVUWo4T3V2 -TXJIc1hpQ2pHYnBKYS92UE9ld0FGY1QxN0lPMjkvb28vRzd4WE1yY0NqMkp2b24yTWVlaUx0RXl5 -dkVMTkoKYXZuTE8yODYzaW9JM2l1c0E3OG1laWMrcldCdVNWYWVTUFNUV2ZsTXBOM0EzNWhjSVc1 -VDFQS1hkOTVlbkU0Q3pNWEQ3aHgxY0JsNwpLcGlia1pWL0pYcCsvVkNpdjRkVkZlSTJSUzEvWTFv -RXpxZnN2cnUyRnN4ZHhzMFNjMU1UdlI4elMySTloOWNIMmY0UnZEeFUvcXAwClh0SElxOHJWQW1P -RWhWckJ2VzdCWUJGZlkxRU5MMFhVOHRlaG5GNWhLcDlzOGN4QUhDL1JKMlRsbVVSZktVeU5lMFV0 -ZjJXZDE0M1oKd2c1Y2gyTVlMMnd3TVJPejhteWtqUkZNRitXUFEwVXRmMlhUdHRXVUhZdVhoTXk4 -Qng4TGVWR1p1VkhDeC9ncDB2TUVOUDd5eTRSMApvSXhuc2EzRi9TSyt3ZG9XOTV2MDl4OXZDQ2VM -QlFYMzFtTmpWdS9LR24wa3UwNHorRTVjdzdva3hrRjhsbWpEY2NKbzNOOTQvSWcvCjNINzJ6VG5q -OWt6N2ZlRnNXR1FPWHNQM1dWekNCN21HcDZObjV1REZLdVpxMHFpL2ZOcDI0Q1BoWE51RFdabCtX -SmpqYndwNTNSUmgKZS84dGluRmFPS0hBUC9nemFXT3JNSXJmRlJMdXg0VE1QbDVQbjgvYUdHcUcx -ZCtjcktINHo0TXQrTEJ1NEpGSXExU2xpSDdoL0hzcgowaWJnZkdPT1JoQ0Q3Ynlyd3Zvd1BkSm00 -SmZHSE4zbjdNU2FyRDVhV1BQS2psVDNOVVc3NlVBOGlCM0NmM3p6OFMzZWFkTFUvNEd4CncyMmdU -WnMyYlFiSnYyYzB0aEx3SEVvZ0FBQUFBRWxGVGtTdVFtQ0MK - - $$T_{0} {\left|0\right\rangle } = {\left|0\right\rangle }$$ - - - display_data - ⅈ⋅π - ─── - 4 -T ⋅❘1⟩ = ℯ ⋅❘1⟩ - 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQWxDQVlBQUFDSmRDMzdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCRlpKUkVGVQplSnp0Mm51b0ZIVVV3UEdQM3UycHB2bW9zSkNMRkZtWVdOR0w4 -aEZsWVJGbEpJbFJpQVFLRlpWRVNVVVk5b2FRNko4Qy9VZnNYYVJGCmtBUVJGb1JJRCtoQlpFYVJQ -UzB5emJLYlpuK2NXZTY0ZDJidjdyMjdkL2RlNWd2RHpQN216Ry9PbkRPLzN6bm5OMHRCUVlFMXJW -YWcKb0RsMDRGWjgxV3BGQ3ByTE82MVdvSzhNYjdVQ0JjMmxjUEFRcDNEd0VLZHc4QkNubzlVS0RB -SnV4dFVZaGMreHA3WHFGQlNrR05acQpCWVlnSlZ5R2lYZ0tuYmdGeDFmSTdjZGkvRE9ReXJXS2E3 -WFB5M2Fnbjl0MUdJT1BNUW1yTUFPUFkzcHFQNlhCZW1mYXNKUTZub2puClJlSjFRTVNhdzNCSWNy -NHIyWTVNWlA3RDVkaWQ2dVBRcE8zVkhDWG1KZjI5V05IK1BTN0J4bHFmcG9uMDkwVTdFeE9FTFVx -NFErUTYKTTRYVHIwLzJlVFROaHJmalUxeUtjVW5iaWNMWmIrck91RXU0QVgvcm1ZV1BUQjZva21F -aVVlbktPUThyOHhRYmhEeUdaYW5mQ3pGWAoyT2ZaWHE1dHFBM1REcm80MlRiaXQ2VHRuR1QvbWhp -eHNBOXJzU1hWVm8xSHNRbExkYzhHV1d6SENUWDAxd282OEdTTnNpWGgwTFdZCm43UXRFVGFZSUti -bmV1bXpEY3NPbm9SdCtLbmlncG5KZmxOT1o3VndqNGhCeTNxUmUwNFlwaDJaamROcWxEMEN2eWJ5 -TzhTei95bEMKM2c1TUZtR3VIdnBzdzNJTW5vSFZHUmZNRktQNXM0cjJFV0k2cjRWOU5jcnRFZzll -cXVPYWdXQTA5dFlodjF1TTNDNThpMk5GdGt3NAoraXo4VmFjT2ZiWmgyY0hQWkFoUEVKbmVlaEdI -MCt6QlEzVXFXUXNiY0NWZWFVTGZsWnlDT1RoR2xDcXI4V09HM0N3Um91cGhhK3I0CjU0cHpuOVRa -VjcwY1pNTlNGY0ZxMDNPeitBalh5SGJ3K1NJUnJJY3ZjRzlHKzRNaWdWeUNuYUpXWFlrYksrUW1p -MUU0bURqSWh1M20KNEZGaUdzdmlBeXl2czcvZEdXMzM0MEx4d3BSbnBnVjRLME4yS3NiaWRCd25S -bnlXWER0eGtBMTdjL0F1MVd1MlJyTkFKQXBaN05YLwpmMVowNGo1UjlqMHNhczRPOGZLOGtDR2Zu -cG9YYVgvblVtSERQQWVQd1RSUk11MGZBS1hLZE9LYkp2WS9KOWt2bGgxdjgxZ3U4cEVyCjhIcWps -V293blZJMnpIUHdCYUtFeXB1ZXArTnNVUks4aEI4YW9OaDVlTC9LK1ViRTRITEpVbzl6NFpGa2Ez -ZDYyRERQd2RYaTd6eXgKb3JKSUpDRnY2RFpjZjVpTEZWWE9iNUcvZ3BOSHBVN2I1WmNvUy9HMG5o -WERZS0tIRGZNY1BGc3NSVzdKT0xjQ3Q0bXBleXQrd1ZWWQoxOHZOeTJ1OFdkK2d4K0ozMVZmR3V2 -Ui8rdDZBTzBVR1hZN253OFRvZkUvN083ZHVHNVlkUEJ4M2lTbDNxaWpHdThTYTZrNjhqWGR4CnVJ -ak5YNmI2MkNwRzhEcmRYMVRTekJmVDYwWEo3N3ZGeVA4T0R5UnRDL1crUnRzSU51TW1zVkMvUm56 -Q0c1SGNlL01BM0w4V0dtckQKOUplVGMrV1A2RzBpYmsxT2prZUxESnZJUms4U3RaZmszQitwYTZk -Z2ZFYWYrM1hIaS9GaWVXK2dLT0ZrOGFMK080RDNyWldXMmZBbwpNUVdNVExXdEVndnJCVzFJdlgr -NjI0V3Z4UnRXNW1pTnlhSUxta0JmL2xYNUljNUkvWjZGbHh1alRrRTdNRTJzNkp3cVBtTTkwVnAx -CkNwckJLRkZLamV0RnJxQ2dvS0Nnb0tDZ29HRG84VCtzQXZZaDBLcnJLZ0FBQUFCSlJVNUVya0pn -Z2c9PQo= - - $$T_{0} {\left|1\right\rangle } = e^{\frac{1}{4} \mathbf{\imath} \pi} {\left|1\right\rangle }$$ - - - - - <h2>Symbolic gate rules and circuit simplification</h2> - - - for g1 in (Y,Z,H): - for g2 in (Y,Z,H): - e = Commutator(g1(0),g2(0)) - if g1 != g2: - display(Eq(e,e.doit())) - - python - 14 - 0 - - - display_data - ⎡Y ,Z ⎤ = 2⋅ⅈ⋅X -⎣ 0 0⎦ 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhZQUFBQVpDQVlBQUFEa0JkcWVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCU1pKUkVGVQphSUh0Mlhuc1hGTVVCL0RQYjBGcGlRcFIwa1lwaVlvcUdnU05v -SmJpRDJKZlNxd1ZxVmdpaEVvdHNhUmlpVkRVRW1JWGF4RFJXQ2NSCjRSZGliZElvc2RaU0ZSSjd0 -YzNQSCtlTnZubS9OL1BtVGVjM2t2YjNUVjVtN2pudjNuUGZ1ZmZjczF5R3NGcWlLOU4rQW1Qd0pV -N0gKaGhuKzMvZ3BReHVHalZQdGYvQmpDM01aaWVFRjcveUJYK3J3ZXZBbWV2RXlMbWxoRHExaWZm -eldZdC9oNHR2VFdJb2x5ZitzZmlXOApwV1dFVkZML1Q4U0xXSUYrek1kbE9YMm1pby9xeDllWVUw -WmdDbDhrWS95TXQvRVE3a21lK1FudnFpYkcyUlp6VzV4RFdVeEhINTdECng3Z042NVljNDJnOEx3 -eWlYeGpGRFNuKy9saVU4SDdCSzVoVWRxS1ZITnJjWk5DVEcvUjdIRFBMQ2t0aEFwYmpjblJuZUxz -SVMzMWUKV0dVUk9yV3daK0ZtSytjMENvdnhockRnc3BncDlEd3JoemNIOXlrKzBlcWlra1BiS3hI -NFVwMCtNM0JHcXdJVHpNUkZPZlN4K0FIdgphdjZqT3JHdzNmak13QVU4VTdFUjFNTW9MTVBuYWwz -a1ViaWloZkZxVU1taGRlRXJZVkdiWlhnSDRycFZGWW9YREZUU1NDeElaR2ZsCk5rSW5Gbllic1lC -dlorZ1RFL3BETFk3N1pOSi9hdEtlb2tYWGxqMzI4dENQUjhXUmMyeUt2aDJtYVUrUWNyZmE0R050 -UENNVzlHQjgKM3dZWjdjUWlZVm5aQUtZLytjMzYyVjdONmJxNkljL0V6c0x5ejIxdGlyV28xS0h2 -SUNiOWJ0TGVCRTlqUkR1RVp0Q0ZoMFV3TWFXRgovczFZYkxkUWRyTlBubS9QbzUwazlIUkJpbll3 -cmhmV3ZXUEJ2THJFRWI5TWJPeXlnZGgvNkczeXZZOUVaRHBKTFBJc3NaTitiMVZ3CkExeU40OFZ1 -ZlhVUXh1L0ZhMWl2Uko4Vk9FenR5YkVpNTcxelJHWndaOUxlSEx2aVF1RnVUdEhZQXZ2RjZUVWJI -K0N2RW5Oc2lFb0QKM3NXSjRLOUVwRG9ZT0MyUmNlVXFqTkhKZENlTjAwWDBQamxGdXhhYmlzRHZO -NUVlTmNKd1BDWHFCZDlvTGd0b0NwVUd2Q2xDNmF1UwoxalRDQWVJSWVpQ0hkMUtKY2Y2UGhaMGdV -cDE5TXZScTRlRTBzZWdiTkJoakxUeUM4U0w0NnNlaDdacGdwUUh2MGtUWVlGanJSUHdxCmpzaTFN -N3lkY0UySnNUcmxZNnZZVkxpcXlRM2U2Uk41YUQxMDRTN3NuclQzRkxwK3NlQTc2cUpaSDB2a3M3 -L2p2UnplRmpoVitLQ2QKY1l2d3lWVk14RUw1UG1PMDhEK0xjTGdJbXRLWUlUNjZXVmxGNkJFbHg3 -SSs5Z2lSVTZleG5najBwcXROZmM0VHhRc2lKdGtWNTRzRgozTWxBSGM3R3MzZ3JhYjhwS2xrSFlF -dFJsY3VpbEI0cWRlZzl3cUxtMWVFL2kzMlQvK05FS3JCVzBoNHJQK2NqY3RjUGhjTEc1dkQzCkZs -RmlPbUZ2Skl2T0hjWGRlRkJZVnhvamhKS3J1QUdmSlA4UHdpR1o5eStXWDlDWUlmUTJ1NDc4SWoz -VW9GS0hQamtSa2xjcjNrcFkKY3RyNkYxcnBiNFlKQzNsZnJZL3BGUnZsRDdYSCt6cllYa1NZUzNG -SENWbDBibUZ2RXFkTUpmUE1GM092WWk3dUZmNzI5aFI5REI3RApPM1hHMzFMb2ZMR0Jsd1NGZWlo -S21vOFNsdllBdnNWeGVGMG9yNHB4b25DL1BFVmJMQmFIaVBEMkY5RmUraWcrSVhubk85eWF5T2tU -CnUzdWVLREV1RVhYb1ptVjFDdU9GYm1EcnpMT2hPRWFydUZGRXUyZUxOSEc0K002M2hNR01NakFM -T0ZiNDEyOUZRTmtuYnQ2cUtOUkQKa1k5OUlqTmdIamJDbnhuYTN3YVdDTmROSmxuRi9jbFRCczNL -R213c0VCYlhERDdGTVJuYWJnVjlIa3VlZWlqVVF6TmxyaUlzTlBCZQpkNFRhZTl2OTFPN2l3WlMx -SnFCUUQrMVkyUGxpQjZVeFdqanpLaVpwdkFQYktXdE5RS0VlMnJHd3k0UmYzQ05wVHhBWHd1bHlZ -RHR1CmdKcVZ0U2FnVUE5Wkg3dEVGUHEveEpFbEJFMFRCWXdkUkFBeHpjcWJqbmFqbnF3ZUVXVDBx -SitXclU3b3BNNkhNSVFoREdFSVF4aEMKZ244Qjh3aEN5UDVGK0g4QUFBQUFTVVZPUks1Q1lJST0K - - $$\left[Y_{0},Z_{0}\right] = 2 \mathbf{\imath} X_{0}$$ - - - display_data - ⎽⎽⎽ --⎡H ,Y ⎤ = -╲╱ 2 ⋅ⅈ⋅⎛- X + Z ⎞ - ⎣ 0 0⎦ ⎝ 0 0⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVBRQUFBQWhDQVlBQUFEdTNJWmlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDTnRKUkVGVQplSnp0bkh0d1hVVWR4ejlKK3JqVXBKUVVuSlJLTzFJWlVXbEJv -STZvMUxZQ0xZSVVLdEtLcjBKQkhNZWlZbm1vS0tnVVI5Q0JzWXlGCmlBVmxtSWpHSWtKNU9DaXhC -ZXV6Z0tEVVJ5MzRtTkppa1RvUmlqYkVQNzU3ekxrblo4OXpUMjZTMmMvTW1YdnZ2czd2N081djk3 -ZS8KM1hQQjQvRjRQQjZQeHpPOGVCWFE3K0R5ZUR3TnBnMjRvOUZDZUR3ZU4xd0l2TDNSUW5nOG52 -S01CKzVwdEJBZWo4Y05Id0tXTkZvSQpqOGRUbmhiZ1B2UHBHV1dNY1ZUT2E0SHp6ZmMxd0tPT3lt -MEVwd0lMemZkUEFQOXVvQ3hWc0JUb0J2b2FMWWpIUGE0VWVocndJbkFUCjhHUWs3aXBnRGxBenYv -dUJmeUNIekV2QVhjRCt3RmdUM3dkc0FENWVRSTRMZ0hlSHlub0p1Qis0S0pKdUtYQko2UGZEd0Zu -bSs4L04KTTF3TjdNUG9VdWdtNEgzQUtRbHBGcGxyUExBUldBZnNyRjYwUWt3QTdnVGEwYk1CL0Jm -NEdQQ1ErWDB2MEJISzh5dmduS0VTTUlaRApnTzh3SUc4ZjBvZGcrMjh5NnI5bkE1dUhYRHJEUXVv -VkpNb0VKUGhqcUtORU9RRTkwRnFndWFRc0x3TTJtZkpPdGFScEJ0YWp4bjRkCkE1VWJwaHNOTktP -SlJXalFzM0cxdWFZQ2h5SEgyVGEwWDEyR2c0QWpTcGFSeEZHb2YrMEdKa1hpMmszY1ZjQXJLNVFo -S3hjaGVhNUUKZFZ3THhaMEU3QVd1VDhoL012SDkxU2xwQ3YwbXBHQmZzTVIveHNTZjVFaWVjMDE1 -cXkzeHg2S2xRZEk2Y2pRcTlIcWcxUkozREJyZwp3clNqMmZtSkV2YzhFT2pFblRWbzQyN1U1c2RH -d3IrQ0JqTFh0QmZNdDRGNEMra29vQmM5UjFLL25JTUdnMHBKVStoTFVHWFB0OFQvCkNJMWErenFT -WnorMEJOako0STQwQTdndEpqekthRlBvK2NCbENmR2ZSOHVObVpId2J0UjIwd3Zjc3huTjhrTlJq -NmNnT1c4TmhYMEsKTFRHcTRQNENlZG90K2FZRDI5SFN6emJnaHVsRU94V1ZrYWJROXdCNzBKbzB5 -bmpnQmR5dkYyNUhEUncrUExHdkNZK2FaWEdNSklWdQpCYjRMdkNVaHplMGt6eXFyVUgxOU5oSity -UWsvdVlCY1p5UHJheWhvQWY2Ryt0bGt0RTVlV2VIOWVncmttUSs4TFJJMkNmZ3Q4RmRrCnpXUmhF -ckNWYlAyNEVFa0szWUxXTmoreHhMOFZkWmhySE12MEx1cEg3REZBRjluWGd5TkZvYWNCbDZQUi9U -WkxtdG5BbDFQS2FVVjEKMWhZSnZ3dlY0MEdXZkJPQmk0R3ZSZEkwQVg5aWFPdndjaVRybmNnWFVD -VTlEc29ZaTZ6VDNjQ3NuSGsvaXB4L2xaQ2swRWVqU3Q2SwpsQ1I2YlRieHB6bVdxWVlxcWhjNXlx -NUY2NCtzcENuMGU5R2FNODlWUlFNRUh2MnprSWQzYWt5YUxyS1AvbUZlRGp5UDNieHNCcjZPCnZN -ZzNBdGVGNG1ZajUrUlE4Z3JrVk5wRmVlZHFHajBPeXZnbWFyUGpDK1NkQzJ4eElFTXNTUXA5QVFN -T3I5YVlheVBhWHBwY2dWdzMKbVh2L0VGaVdNMithUXRkUVI4NXpUY2dwUXg1cWFQc2o2bmg4RGNs -ZTB5UldBLzhFRHJiRW44NUFaM3dVK0dvbzdqTFNyUUxYSEFvOAppOXI4dUlydjFWTXkvK2VRbk1z -TDV1OHcrYWVWbENPV0pJVytBNDJhY1l2OXNXaWY5L0VxaEVLemZqLzFNMGRXUm9ySkhlYUx3QTVn -ClhDaHNMY1cyblJZZzVaaWRrR1l1TXExZmorbzVuUGJid0ljTDNMY29VMUdiTFRheWRGZDh2NTRT -ZVpjaEdWZEZ3dHZJNTN6Y1RjU3IKSC9iMEhvWTZSTlk5cmkya094MmFrS1BtRVdUNlJqa1N6VnEy -OVhWWlpwalByb3JLZDRITGVsK0QzcUphQXR5Q09zY1l0SmJOdzZ2UgptbmdCOE11RWREM204NFBB -YnlKcE85RHNIb2ZydnJZZnNpYk9RMWJLVnJSVjFRRThuZkVlY2JTaWdTbHVSMlFXZzdmNVFDYjA2 -V2lYCkpZN2prSmU2QzdnMEVuY3U4QXZncVl6eS9SNjE4Y1lnSUN6bzQyamt5RnJKTDJSSU14TjVW -bSt4eEwvWmZHNnd4QitNVExvMnBQUkoKblN1T09VaE9XNzR5NWIrSC9Gc2k5NksxZkJpWDlmNFha -Qkd0UUhXK0V1M0Q1bUYvdExZN0RTa3B3QlMwRy9Ga1RQb0p3Sm5BcDgzdgo4YWd6dDZIT0hZZkxa -OTRIdUFFZDAzM0doSFVDWDBLZTdpdGk4bVJ0OTE0alo1eENyeU4rR2JjWHV6TFBCTDRIL0F6NVBN -Si9EdEdFCkJvS2dmMlNSY1Fkd2dPVmVwYkNaM0I5QlFyL1RrbStkaWUrSWladU9IaUpZYS8rVXda -N0FwQTdSaEV6R0J5enhhZVdubWR6alRIeWUKcXhaYmtsdm1vVHA5QjlyS3lrTU5lWWlqcDdxV0FX -KzA1UGtBVXJoSlNQR0RXZWMra3JjeVhkQUNmQXM0UEJKK0FGS3FweGpzSE12UwpyN0xRa3pQOWdX -akEzVUw4OXVGU3REektJK1B2Z1BlSEE2cjJCTTR6bncvR3hMV2dHZnFQeEp0Rm53UytqMGJKWG5U -S2FVVW8vZ3IwClFMYmpmRE9SS1dhYi9kUEtUK00veUx6TGMrM0pVWDVSSGtBellCZURyWUVrbW9D -YjBWN3UwV2gyT3dlWjA4dXhlMVNQUk9lbW4wUDcKemplWThLZVJrNm9xT3BERnM1N0JMd005ZzJi -Q2FRdytmVmkyM1l2UWlyYi9hdWhjeExPUitPWElvZ3IrUVNhTGpDMW9TYm1qQ29IRApNM1FMMmdP -OEZaMys2Z2UrZ1dacmtBS3VSbHNod1lzYTF3RW5Sc3I4TlhCRzZQY1NwTUFCYTVGNUUzM1FCYWhU -UFdMS2Z4RHRjVWUzCmJkTEtINGxPc1lEenNBOWtOaTdHL3A5aFNaM21HR1NhcjZMKzdQd0taRnE2 -WmpIcTRNOFoyWDVNdmRuWmdyenR1eGlRdlJONGc0bFAKYS9lczlPUklHNXkyZXdqdE9GeVBsaldi -a0oraEgyMFBCcnNnV1dROEJPbFgzZTVRRmVkcis1QVpGQ2gyd0c3enVSMHBlSlMvUjM1UApvZDZS -MWt1OThNdlIxc2laa1h3UG8wWmNFd3JyWjJCOWxiWDhrY3pONVBmeS9nQWQvWXdqenFFWnNBbVo0 -LzNVcjNYdlJzZEpYYk1KCitIUG9kei8xenJjK3REZStsbnEybWM5R3RQdWx4Sy9sdy9RaXBZWnNN -aDZLSEdpN3dvRlZIWmgvTENGdUQ1bzkwOWlKOXFjRGF0Uy8KeWhpY1hvcWFXenZKOXJwZld2a2pt -UmV4TzJac1BFSHhsekNlanduYkN2d0JyY2V6dEhkV3Rwc3JpYVQrNTZyZDkrWkltL2NBU0JZWgo1 -MUovYmgyb2ZnMWRoczNVbjFWdFovQXN2Z2c1REtvcTMxT09DNUY1T1p6Nm1hdDJQeU05U1dIU1pK -eUYxdUtkMFl6RHFhS2piRWJPCm1ZQjUxSjlWUGhHdFNmNVZVZm1lOG14QXM5UDVhUW1IRUZmdEhu -VnN1U1JKeG1ZMFNLNUVqdGxLV0lqcytSdHg5eUw3Uk9Ud09CNXQKalhSVGZ3SnFZa1hsTDBiUHNZ -MlI2eFFiVG94aDRKRExjQ0N0WHcwSGttUmNRWFd2aFA2Zk5xVElSK0R1bldiUWFIUTRGWjFYdFpR -LwpoWUZuOFgrazU0WngyTi9XYWdSVjl5c1gyR1NjRVpQVzQvRjRQQjZQeCtQeGVEd2VUMDcrQjl2 -dE01YzJvTmlJQUFBQUFFbEZUa1N1ClFtQ0MK - - $$- \left[H_{0},Y_{0}\right] = - \sqrt{2} \mathbf{\imath} \left(- X_{0} + Z_{0}\right)$$ - - - display_data - -⎡Y ,Z ⎤ = -2⋅ⅈ⋅X - ⎣ 0 0⎦ 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpVQUFBQVpDQVlBQUFBNDBHenNBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCVmhKUkVGVQphSUh0Mm5lb0hGVVV3T0V2UG1PTXNVWkRGQldOWFZHeFlSUjdR -Nk5pdzk1ckZJSmRKUGFLaW9vWUN4S0pMZGl3dHlTSUlyWllzTVVTClMreUN3UzdZRW8weC9uRm1l -Zk1tdTdNeisrYkZMTzRQQm5idXpEM243cGt6NTU1Nzd0Q2hROFgwcTBqT3RyZ1J2K0pNZklJRk12 -ZDgKaTFtWnRxSG9uenIvSG4rMk9JWUZzV3lCKzZiam4wemJpVGdFUzJOai9OTGlHUDRMRmhOMmI3 -WHZFcG0yR2ZneCtUMVEyQ1ROZC9pcgpSWDJsMkFXams5K0RjUmUrd2h6TXhBTllvMDYvRjVKN1p1 -QjViTktMTVJ5ZnlKcUZhWGdDNDVMajd1VGFkMWdxUjhZaldMSVhZNWhYCjlNTVplQmtUOFRhdUZD -OVdHWTdFSlB3dDdETWRGNld1N3lXQ3dSejhnQ2V4ZGkvR1hZcTBVOVVZbGd6bXc1eCttMkFLVnE1 -Z0RCUHcKRnRiTXRDOGduT1VQREc4aW8xMmM2anljcjNzMldGVkUxd2tZMElLOEs4V3pPckhPdFR0 -eGZZdHllMFU5cDRLWHhHQTNxbk50Q0I3RwpvaFhvWHdTZmluQ2RaUXhtWTU4Q2N0ckJxUmJEUjNx -bURYQ09zUFh1TGNoY1RhUUViMlhhajhGcExjaXJoRVpPTlVyODBXc3k3UVBFCmxMaGlSZnIzRU5O -QmxsTVMvVVVOMHc1T3RibjRUeE15N1RzazdkZTJLUGZwcFA5bXlmbWV1S0pGV1pYUXlLbUdpQnhu -dXA2SisxaHMKV3FIK0hjUWJuR1p2RWFGdUtDR25IWnhxR1dIUEJ6UHQyd3VuR0p0cHowYTBSdXli -OUw4TlcrRm0xUzNrV3FLUlV4R0o1QnpzbUp5ZgpqZjM2ZUR6RFJRNzFHTHBLOUd2bVZQMUVNbHpt -NklzSFUrOC9uU2JzZkVTcWJYK1JMNzBtOHE0OCt1TWJZYmQ3RlhmR3VTaTdXbWlGCnV6QkNMTmxy -SzYvNysxRGZLbmdjNytNZ0VhMnE0amlNTE5ublB2RmdxeVQ3bjdwRXFqRVY5eVJ0YTJGNVVlSjVG -UWZqa2h5WnMwU1UKR2kxV2xkbnl6enduTDFJTndtL0prUTNOVlROWXJEYS9VS3htbGFVZHByOTZq -TVpQV0QvVk5rWXNnb1lLQjJtMlVGbEtSUGJaNG9WcwptWFNrV2srNWVYUUtUaWh3MysvNEFDdmhw -RktqSzhjQTRSVExZZ3NSeW10c0xlcG1YL1NoL2pKVWFlc3RjU3Ayd2p1cDlndkZpendLClA0dm8z -WWlCNG9VL1NlUyt1MkViUEZkd2ZIMUNYcVFhS0tyazJjU3lTdnFKc1ArWFNGaXpQSVNGQzhocGw1 -eXF4akF4NVcyUU05NlAKY1ZXT2pDNk0xeDNsZGhPNTJUME5lelJoWHVSVW0yRWhVVEhQNHppeFpU -QklPR0Y2T2JzNFZ0QTRMRitPQTBXRitKbk10ZFZGRFdabQpBVDNOT0FiSGxyaWZLSjFjWGJKUEVa -YkVIU0labjVwcVAwVjNXV0U3VVlNYUo1N0JtbmczSTJjTWJ0RWQ1U2JoU3pGZERoRmJaL1hvCmpS -MExrUmVwemhlZTMraHRJcGF3RTFQbkR3a25xWEcveUF1MnJkTjNaQ0wvb2pyWEJvcDZ6dUVGOWJS -TFRyV1FjTmIxTSswcjR1TFUKK2UyWW5QdysxTnc3Q3BlcG4ydlZDcW1Obm1rek8xWkNubE85S09i -MjdBWnptZ2YxM0NJWXFXZHg3MmhobkxNeS9VWUlaeHVmYVY5TwpUSU12aTMydDJxWm9NejN0NGxS -MzRITThtemsrRXF1OEdnK0lsZWRRRVpGcURCTTUxbE1ONUc4Z25Pb3o5WGM4Y3UyWTk2QjdRNWZZ -CmZIeFA3T3Y5TEp6aXdnYjNyeVkyTG10OGkzVlQ1N2VLN1ljWkdSMVhKZmV1ZzFlU1k2cW95NHdY -Yis0anVuZmRtK2xwQjdZUXhkNysKNHYra2owRjZUb1dYaWdYU1VUaFhUR2R2aUkzOERjVjBlSHBH -L3JHaURQSzFpSWl2Qy91bnliVmpYK1ZVczdGemlmc0hpNkpialpubQpycEFQRndaSjZ5anJFRVgw -ek85TUZ2bGxFYWJnZ05UNXIrTFRuanhxWDNia2tXdkh2b3BVWlptbTV5cHBVZkdwUlkwdUVhbGU2 -bU05CkhZcVJhOGY1eGFuZTFMTll1WUtZejJ2c0x2YndlbHNkYjZhblF6Rnk3VGkvT05Wa2tYVFgy -RlhQM2ZaSDVYK1hWWldlRHNYSXRXT1YKbnhQZkpLcm5wMnV0RW51Qm1LY0hpQS9PcnF0b2JFWDBu -SXpEeE1wdkkrMzFPZkYveGJ4NlhoMDZkT2pRb1VPSER2OUwvZ1VWSWowVAowdXBoZXdBQUFBQkpS -VTVFcmtKZ2dnPT0K - - $$- \left[Y_{0},Z_{0}\right] = - 2 \mathbf{\imath} X_{0}$$ - - - display_data - ⎽⎽⎽ --⎡H ,Z ⎤ = ╲╱ 2 ⋅ⅈ⋅Y - ⎣ 0 0⎦ 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUp3QUFBQWhDQVlBQUFBczdNTG1BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCblJKUkVGVQplSnp0MjMrc0hVVVZ3UEZQWDB0L2hWS3AxWUlvdFZoaVZCUi9v -RWFzTkRSUmk1aUlVcW1TR0JUUm9GWUxSR01OYVl5eGl1SnZ3VmdWClVXekVpQllzYWxyalQ2cGlv -bExiUUJRMVVyV1JLajlzRUtUYTlMM25IMmV2ZDkrKzNidDc3OXY3N3RYdU45bmN0ek03TTJkbnpz -dzUKWjJZZkRRME5EUTBOdzhwOEhJL3hHcTYrTTJzNkdtbm9LNWZoWjVneGFFRWEvditaajI4UFdv -aUdJNGYxZVBtZ2hXZzRNamdLTy95UAptZEtSUVF2UTBET3Z3ZldteWRrZk5wNk16Y2wxNm9CbHFZ -dTEydTgwYk1IVkNMNWorT1FxcFM2QlQ4Uy84UVg4TVpOM0pjN0EzT1IrCkhQZmhKUmpEdDdCWW1B -Z1l4VTVjV29OY1orTjlxZnREK0h2cWZrblMzaXI4STFQMkovZ3RQaVg2NlhBTjh0VEZ1YmhadVV5 -TGNRbWUKZ2p2eFhmeWd5N1pXWVpNSVVJanh1MGVNMzJqcXVaTnhnN2FKZnhndnhvTmR0bGVKMWRq -UUlYOStJdHp0bUpPVC95THhJdGVxMTh4ZgpqMy9pemFKRDBoTnNROUxteFNWMTdOQ2VMTVBDZHN3 -cmVXWTVmb2lYNGhoaGdnL2h2VDIwTjRKUGlQNzZlSWZuM29rLzRFek03cUdkCnlwUXAzT2xDMktL -WDNaamtuMTJqVExPd0QwL0t5WHVWV0YydnJGRFBzQ25jYXJ5cnduUGJSYituYWZYejJoN2FQVGtw -ZTN0Qi9oTGMKaEVVOTFOMDFaUXJYV2sxV0ZlUi9YNnlBQzJ1VWFhWDgyZmdDL012RTViOFR3Nlp3 -TjRzVnF4TnpoSXZ3bmt6NktXSWN2dGhqMno5UAp5ajh0a3o0WFczRkNqL1YyVFpuQ2JSZURuR2NH -NXVBZ2R0VXMwOFY0WENidGliZ2ZQMVZkaWFaVDRjNFNFNkdJNStQOUZlcFpJUHIwCllSTmRtRWNJ -aGZsbGovS3RUOHBuTGNNMWVGYVBkZlpFSjRXYmlRZHdTMEgrU3ZFU0grdURYR2tlTGZ5TDN3dG51 -aXJUcFhBWGlZRWMKRjFGL0hsOFQ3MUdGWitONW1iVFRrdm8vbi9QOFNoR1J2NjVEbmNlSlFHV2Z0 -blhZaUZkVWxHbGF3dXBuQ0JQd1dIdzlKLytrNUhkbgpIMldZSjB6UlFqRUk5OVZZOTBWWTAyV1pt -L0NaVE5wMXdxMVlnM1VpMEVsekt2YUxDTEVLdjhoSmU3VlF1T3N5Nld2RnBOcUV2V0tTCjdjOHAv -MWNSNWI1UUtPZ1NFWWpjV0ZHbTJ1aTB3bDJtSFJBY25YUDlXRGp3ait5VGJDT2lRdzRLazlRdFpT -dmNQREh6dTdrNlJaaHYKeDBNbSs3TmJzTFI3OGYvTDBxVGVUMmJTWjRpVmpUZ21HOFdqT3RSemdS -alBuZmowRk9TWkVwMFVicHRZaG8vT3lUdEtiRnZjMFNlNQppTUJoRE9kbDBrOVU3bnd6L1VIRHNh -SlBMa21sTFpkdkJxc3lTN2cwVzB6ZWRscWc3WDl0VS80eHdMRkM0WGJwWWVzamJWSlB3UldxCm44 -M2RLV1pqSjJaZ0JYYUwyWlhsbVdLUHJzaS9teXJyazJ1RHljNzR1NVhMUHdnTzRNdDRpL2JlMXp2 -dzRTblVlUlh1RXVaL0xKUDMKSUc3RFk0UVZlbVZKWFU5SWZyY0tjOW9WYVlXN0E2OVZYZUVPVm5q -bXFXSmZaa3RCZnN2RUZmbHZKd2wvWVlGUXlqeS9wSWh6OEZGOApGaC9NNUMwV0h5MGVxS0dkdW55 -NE5GZmhEU0pxM1NOVzR0OTAyVWFMUzhXWVhxaDk3bm82YnMwOGR5SHV4VGVGNVRrcy81ejJqT1Mz -CkgyTldtU0tUdWs0SWZXNUJ1UnVUL09OeThwWUtZVnUrM3EwbTcvOFVUWTduaUMyQjdmSURvdy9n -YlJYYktUT3BzNFVDZDNQbG5iWmsKdVNXUi95TWl1dXlGYzRSaVovdHBjODZ6ZTBXL0VKYXVhRS8w -RzJLeHlYdUhLbU5XQzBVS3QxVW8xSktjdkpuNEczNVhVT2RtWEo2Ngp2eHlmUzkxdkVyTitXYWJj -c3FUZTNXS1dwUmtScG1rY2o2L1l6cUEyZnRjSTg3ZXR4L0tuQ2JmbmpXSVZibDBiVE40UVh5VDZa -RVh5Cjk4YUNPa2RFaEYva0FwWDFaVzJrRlc0bVBpVDhrRkh0Zlo5MVNmNHlZVEsrcDMyUWY3VXdI -Mmx1TTlIUlg0dGZwKzZ2RmN2K1cxTnAKczRRU2pvdHRrTmJYSGwvQnI0UXpQaTZVc1dvN2cxSzQx -dEZjMGVsTUp4YUtiWTJpLzExNFUwNlpHMFNmWG1IeThkUnlNV1k3a3ZKMwpKZmNyTXMrVjlXVmY5 -dUZHOFNWdHhXdnhRUEs3WDM3RTlaZk0vZkVtQmhvUG1iaDE4bnJoK0orZlNoc1Q1NlJsZnVpOVhi -UXpLQTdqCnViaTdoN0tIeEo1YkVYbTdBdWVKOTc0L0orOXU3VEZMVzdJL1paNHI3Y3QrYmZ3V0hm -QVNSMXk3TytTM3VNZkVpR3F1V0tGYWpJdWoKcXoycHRMSE1mUlhLMmhra3ZTZ2I0V1A5cUlkeWVj -cEcrTU4xak5sUWYvRzdTNXo5dFZoazhpcjRNcE9qclg2MDAxQ04wcjRjZG9WTApSMmRuNHF1cCs3 -UEVJWHoydzhtNjIybW96clQxNVdyeDZjbzFlSHBOZFI2amZXNTNnVGlIblozSjcyYzc1NHYzMldl -NFBrOGFac3JHCnJMYi8rRm1ndlFPOVZ6dEFtQ29qWXZQNEFQNWNVNTFWMnpsQisweHhqeVAwbjFW -NllMckdyS0dob2FHaG9hR2hZWnI0RDB0Y2p3bmcKNUcraEFBQUFBRWxGVGtTdVFtQ0MK - - $$- \left[H_{0},Z_{0}\right] = \sqrt{2} \mathbf{\imath} Y_{0}$$ - - - display_data - ⎽⎽⎽ -⎡H ,Y ⎤ = ╲╱ 2 ⋅ⅈ⋅⎛- X + Z ⎞ -⎣ 0 0⎦ ⎝ 0 0⎠ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5RQUFBQWhDQVlBQUFDaGdZV3lBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDTUpKUkVGVQplSnp0bkgyUVZsVWR4ei9zQ2d1WTRtSUVTcVJydUNFcWtUT09o -YVpZQ3I2VVpwcGw2RXdDRldWYXBqTTFrK1FMVGVFTW1KbkpvaWpZCmkrLzVWb0U2Nmx3TnRJWUph -OGhFSzBkS0p6Rm8wMFJaZGZmcGorOTVlTzV6bnZ0eTd0MzdQSGRIejJmbXp0MDk1OXh6Zm52UDc1 -enoKTzcvZnVRc2VqOGZqOFhnOFVVd0dLZ1ZjSHM4N251SEFmV1VMNFNtT3RySUZlSWR6Sm5CVDJV -SjRQRzhIMnREcXRFdlpnbmlLdzY5UQo1ZkZwNEZmQVcyVUw0dkc4SFZnTmpDcGJDRSt4Mk9iR040 -RnU0RVhna3BaTFV5dzk1cjRXK0htWmdrUXdHL2d0OEhyWmduaUtaWmoxCmV3QjhBOWdCYkFxbGR3 -UFhBcnRUTXhQN2dPdUFGY0JwNXJsZFEzVnVOMm5ySFdYWkRiZ1gyQ05VeHc3Z3E4QUdxK3dhWUMv -ejh3QncKSWZDd1ZXWTZNQWs0R1pqdktFT3J1QWM0QzNnbEp2OVk0RFBBR0RRaDNBVTgzeHJSTWpN -TStBMHdnWnB1OUFNTDBTb01jRE53UU9pWgp2eUdkS1l2M0lCMXFONzhQQUZ2TkhhQVQ2RUFMaksx -WG1RaFM4aTlHTVk5NU1ma1BHNkdtRGtLRzJhYU5aMmdjOEZVT1JMUDdBdlRICnh6RVpEZmloeEF6 -Zyt3bjUzMGFyYXhlYXlHNUZGc01IQjludXU0R1BETEtPSkxwUm43d0o3RzNsZGFBSnRnZlluL2gr -YlJWemtZNWQKamQ3cjZGRGVFV2dpdjQxNE9ZL0gwWmtVcE9UZml6YlJ1MGZrdFFNdkF4dGRHa3Bo -RXhxWSswYmtEUU5XQWg5MnFHY29EcWpiMFF3Wgp4UlRnY2VxZFJhT0JaNEV0NUhjaWRRTFgwL3c5 -MjArUm9wNWlwUzhFdnRDRTlzYm1mTzR1Tktoc3V0Rkt0UTRZbWZEOHdjQlBvakt5CmRGQWJHcjBi -aURaVkRrRUQ3WkVNZGNaeEV4bzRuNC9JdXdTNEcvaGRBZTIwbW1uQXY0Q1hZdkpuSWJQNXNGRGFh -OEFEYUJBZWtyUGQKbGNDbE5IL1BWdDIzTGdpbGZSbjRIN0NxQ2UzZGx1T1pEbVNlcnJUU3h5RVR0 -UmR0RTNZazFMRVJqWUdMN0l3c0ErcGdOTk1GTWZsSAptL3VqR2VxTW94cnNuR09sejBHZGMwOEJi -UlJOQjlwVGZpcWh6SVhBMG9UOGR2U2V6N0RTcS91bmczTElkUkt3R2ZoSGptZXo4aGp3Clo3UUgz -QStGQnZZQnJteFNlM2xpZUZOUkg0U1BhNDJpdG44L0FhMVNhVnlHQXZPVGtnb0ZDWG5uR2lHT2o4 -bGZZL0luT0Fqand1OU4KZlI4eXY4OGdacGxOb0ZVbTN6aGdFWnBNSGtxUTVmcVVla2FpemJwdHlx -eWkvbDNZakFMT1J5dEV0NVgzQkZMdVZ2RTFKT3NhWURuTgozUzhGQmRUUkJ2d1NyVWlIWjN4MkR2 -QzlwQUpCUXQ0ZDZFV3ROai9iMTNiZzZZd0NKWEdlYVc4SjJrdmRpczYrWlNGdFFMVWhlL3ErCkRO -ZHFZS0pWVDd1cDY1Tkc1Z01qMnVxaDN0UGx5cTdBTnVBUDFMeFNOdGVnZDdRWXVDV1UzZ1g4TlVl -YmcyRU0wb1VkU1BabUVoUlEKeHhWb3YzNTZqbWNQUWlaOHJGNEdDUTl2UVozNnJvanJhS1JJMStZ -UUtvN3h5QUh5QW5BbitUYWdMaXZVbm1oVmRiM0dKOVRWaGh3SQp5NnowdlpIck9BOFhJd1dkSHBN -L2s1cUorQkQxWndQUG9UbDdseVFtb1Q2ckFKOXJjbHZCSUordldsM2Z5dmw4QndvUnhPNXRnNWow -CkEwekRjYmJ3QlNiL3pKeUN4YkVPZUlOR004YVZNcng4RndDdm9wbTZ5bExnMEJ4MUhZWThweDlQ -S0hNNG1pSDNRWjBiTnNtdkJyNmIKbzkyOGpFV1QzeXlrRDBHVDJ4dE0vU2VoOTdYY1N1OGdtNzc5 -blpCWDAzVlRkNlM1cjQzSlA4TGNpL0R3aFhrL1doV2ZLYmplWm5JRAoyckRPQlg2SWxHdy8zQVBj -VmQ0TC9BeDFWbEp3Y1oyNXowY3J3LzJodkFuRW0rRS9RdS9YaFFweXFDU1o5S09SY3A2UG5DRHJn -YU5RCktHQlR3bk5wVlBjNFVTNy9hVVIvL2pLQUF1ZmJZdW84RkZrTUQ2QlZQTXhua1FmUFZlZWVS -cE1aNEQ2Z2pqTDN1QUUxQTNnTytHY28KYlJmZ09LUVl3NUdpYlhkc0R6UkxqQWR1VENnejJEYVNP -aXVPQ2pYbGphSVhIWFU2QnludGVjQ1BNOVFQT2pWeU00cmRQR2JTT3RINwppRkxPZHVCc3RCb1Bv -Rm0yejlUelprd2IzeUU1MWhLbVFyeHlndnBoT1hMTmJ6WnBQVWh4RjZBVE0zWjUxMzRiUUFjSlJr -VGszVWwwCmZHc2dRZDR1NE5kb2IzazZqWWVUNXlKUG42dU1XNUJUS3BJZ0p2MTU0amUzM2VpRnI3 -TFNyNkFXanpnRi9mRmgwcncvODAyOUp5YVUKU1d2RHhlUWJnMDRSdUY1N3B0UUhjbjFYMEd5M09x -V3NUVHVLcjN6VVN2K0V1YUk0RVprdjcwT0RhTEZKL3dWeTZqU2JaVFRLT3hwTgpMcjAwVGxocC9l -WktrTEY4Si9BVW12aHR4eExBTWNoOUR1NHlQb3FPS0RrTHVEOVNEanNRVnVXTEpqOGNlUjRIL0Jk -MUxraEp0Z0lmCk1MK1BSWEdSSDhRSmdxTHUvZFR2UmNLa3RRSGxucFFJMEY3cTVJelBYWU5NdmZt -aDYwdklEVDA1NXBtRndCL056K2RTYzVNdlJiTngKcytoRWltYWJUVld1UXJweGRpak5wZDljQ1RL -VUhXSEt2NEpNUlp2VFVPQjdYa1ladDlBWUw0MFVjQ1phdHYrRVhzcVR5SVNwbnRPYgpoK0lxTDVy -OEIxRUhqa0plUHp1UXVKN2FvSnRvaEgrWmVyTnpHSEE1VXFqcXViQmxTS0ZzMHRxQWNnZlVxU2pJ -bVNVT000LzQveG5SClI3emJmQ3FhZVJkUjd4ZzZBeDFFTFpwWktMaSsxY2oyT0kzSHhCWWpsM0lG -clZJcmdJL2gxbSt1QkJuSzloaFpOcGlmZTlBaXNaYmEKMzlHUFRxUzR5dGhwbnRzNTBTWHRvVGFp -VWRwanBUOW43ZzhpaDBGNGY5Q1BCc0plYUhZTzh5bzFjK2tGNUVyK0NwbzVxblpzQmExTQp3Nmsv -VWRBYklWOWFHMlZ6Titxc0xQOUE1UkZxSjA1cyt0RDdqZUl2NkpEbkNPcmZ5ZjNJRkIrQnZLVkY4 -UVJ5NTFlcG9NRVQ1a2JxClkySWdVMnMyNWZUYkVocDEyZVoxZEN6c0dOeGtuSUltckoyVFZ0S0Ey -a2J5Um5RenRRMm96VXZVanNKWEdVbjlwcTdYcEwxbWxYc3kKb2Myc2JaUkpQeklIc2xEWE9SbDVn -OFpCOHg4MDhSMXA3a1h4YjNNbDhWUk1lcEg5bHVWcjV5enYxVlhHbVdpZnVwTm0vVCtERGVoYwpW -Sml4MUh2R3VtaWNCWXB1dzZQUFFXNUJ3Y2Ura21XQll2c3R6K2tHRjF4azNCZjVEeEkvcXdrS0ZP -cFphdC9GVEVTamZyZFEvcFZFCnUwS0xiR01vZnI1UkJrdElPWFBXWXRMNmJTaVFKdU1hSEE0eUJF -Z0JGeFVnMEtrb2xqSU5PUy9Pc3ZLanZxa3FzbzBWeVAzc0I1UWMKSXozSW5UOFVTTk9Ob1VDU2pI -T0FyN3RVTWhtZEdadFNrRkI3b0s5RXN4NXFMYUtONmRRK2cvY29pTjFWdGhBaFdxRWJneVZPUnRj -VApKaDZQeCtQeGVEd2VqOGZqU2VEL004TWJMbnFHbE9jQUFBQUFTVVZPUks1Q1lJST0K - - $$\left[H_{0},Y_{0}\right] = \sqrt{2} \mathbf{\imath} \left(- X_{0} + Z_{0}\right)$$ - - - display_data - ⎽⎽⎽ -⎡H ,Z ⎤ = -╲╱ 2 ⋅ⅈ⋅Y -⎣ 0 0⎦ 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUp3QUFBQWhDQVlBQUFBczdNTG1BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCbjFKUkVGVQplSnp0MjN1c0hVVWR3UEZQTDdjOHFyYTBVbmtaZ1ZEcXF5aEdq -TEUyWUVtTUZJMEJxUkFTRVMyUGlrcFVsSUF4alJwUmpGR2pGa090CjhvcnhoWllLUm9wSzhCU0pK -QkNKQ1BpMlVNcWpGTEVnV0pXMDFEOSt1NTY5ZTNiUDJUMzMzSHQ3eW42VHplNloyZm45Wm5kK00v -UDcKemM2aG9hR2hvYUZoVjJVR0RzVE9BUndUenVoa0tHbVlVTTdIYlpnMjFSVnAyUDJaZ1o5T2RT -VWFuanQ4Q0NkTmRTVWFuaHRNeDQyRwpiQ29kbWVvS05QVE42Zml1U1hMMko0cnpzUXFmbXVKNkRJ -cFI4VHlyY09vVTEyV1FqT0JuaGpEb3kxZjQ3Zmd3L3BOTG40L1ZtS2s5Ckt2NFgzOFMzc0RRcDl6 -enRJZjVmU2RvZDQ2amZEL0RTek8rdGlWN0NZWjZKSCtIaWt2STdoTEVkanNXSnZOMkJrM0U5dHZl -NGJ6L1IKQnEvRUgvRUwzRnhUMTNIaS9jNUlmdS9FRnB3ZzNtL0tFYmhHdS8yMzRTMTRxcHZ3Vmcv -bG4wd1VubG1TZnpPZXhTdDZ5S25Dd1ltdQpXN0VJTDh6a3pjR2ZzQUV2cWlCckFTNGRRSjEyRmRa -aG54NzN6TU12OFRiUk1VL0hNL2hNSC9wRzhGWFJIbC9wY3QrRitKdm8zSHRXCkVkenFrWi8ycXBr -RmVYdmdTZHhkUlZFRmxnc2ZaWTljK2w3NEZmNkJsMVdVdFRzWjNQSDRlSVg3MW1GaExtMkZNSnAr -M0lzamtySmwKN2JzLzFvckJvREt0TG5ram9wRnZMOGwvWFZLaFFUWHNXaHlhUzV1Rzc0dHA5Wmdh -c25Zbmc3dGVjWWZQc2hmK2lVL24waGVJTnJxcQpUOTIzSitWZmxVdmZHMnZFck5TVk9sSHFrWml0 -M0NnWEorZGJhc2pzeHU5eGZ5N3Q4NkozTGh1Z25sMkpKY0lQS3VPTnVFY1lVemYyCkZNc21Gd2pq -UzNrd09TL29zMzdmU2M3dnlxVmZpcy9ob2JvQ1cxM3l6aFBXdmFRa2YxMlNmMEJkcFJWWm5zai9S -QjlsaDJHRU93dGYKRU05WTVnUC9VRFdmbFpoeDNwQkxPenFSZjNuQi9jZUtBT3U5WFdRZUlGeXFU -ZHJCd1FxOG8yS2Rhb1hWeHlibjh4UUhEY2ZnejloYwpRMlpWbHVEcjRrVjlkZ0xrVHhkVFFpVkhO -K0ZadkVkRWJJUGdhaEgxTGNVSDhmNWMvcXZ4U0ExOVJhc0Rwd21EdXpxWGZxcVlGaS9HCmZXSkIr -WkdDOHB0RllQaG1ZUS83aTBEazJvcDE2cURWSmU5Ui9BYlBMemdXaXdkWjNhL2lMcnhHaE5ZLzEv -KzZVNVVSYmovUmc2c2UKVlVlYXVud01UMk5XTHYzYk9HUWNjZzlKNUg0dGx6NU5qR3pFWjdJZG1O -dEZ6aG1pclcvQlplT29EOG9ON3VXNmg4UWZUZkx6Yy90NAplUWtleHU5ME9zcEgxcEF6REZOcXlt -enROY3lVZVlxbndhcU1ZcjB3MnJ6Zi9nSzhOcm0rVHUvTkFMTkZXOStwM296dy80cFVJWTBJCmJ5 -M0pYNVNjMTlldFFCZG1pWWZmaWJjYTZ5Z2ZoSFBFOUw0cmNRcmVYZVArYTNGRkxtMnJjTTQvb0wz -MmRRRytPSTU2clJScmxtY0oKVnlETFUyTG1Pa2k4NTNmMmtIVjRjbDRqcHROYVZEVzQxSDhyTTdp -RklxTGNsSk45UEY0c2ZLUXJSTSt0UXVwVEhTcU1mVk11ZnpsdQpHSkN1ckw2NlB0d1plQ3lUdGxh -OWxmeXlWZmlWT0Z2NHJuZUowZjBQTmVSbStZaVlOcGRwZjNkZGlGL243bHNtbnVVbjRuMXNWL3lk -Ck5oMThpbFlKYXJkRHF5VDlRZnlsSkcrKzRyV2RMK045eWZWSk9oM0xicnNjcmhJUGZFSkIzbHdS -bkdURC9WNjZxa3lwK3dvL3J1cFIKYTRHekQ5YUx5UDlMSXJyc2h4UHhEWjN2ZWxYQnZmZUpaU2U0 -UktjUG1mSmovTnZZOTUvU3F4MDZhQldrcFN2TVY1YVVPVHZKWDVaSgptNHNuaEg5QWZDMzR1L1oz -MFRsNFFEeFludlR6MmJrRmVmUHhWN0U4VUZVWHcrWERwU3dWbytoMWZaWS9XbncvUFVkTXBlbHhr -VTVmCmZJNTQ1NHVTNnhVbE1rZkV1eTF5bmFxMFF3ZXR6UFdiUkUrNEs2bk12Y0tuU05lSXpoU083 -T1lrL3liUkcvY1JVZXNET2RsM2FCdmwKd2FLWFBHbnN0SDVpSXVzeDdWMGVxOFhPaUkyaUFmTEJT -UzlkREtmQmpRcFg0cmcreXM0U3l4cGwvMTBvNnN6WGlDbndFcDJqOXp3eAp6ZCtZbE4rUS9GNlV1 -YWRLTzNUMTRlNFdGcHNmZnU5UHpqY0paM05sSm0rSE1LUURSUWllNVdudEQvQVBDU2YxWE9FM3Bi -c2ViaFBMCklMMjROM1BkUzlld3NoMnZGMUY2WFo0UmEyNWwzRk9RZG9wNFo0OFg1RDJzSFNWZmxF -bmZtTG11MUE3ZERPN3hFdVZaWlJ0TDhyYm8KakliMk50YUIzSnFrYmN1a1Bab2NkYWlpYTFqcHg5 -aUlUdC9xbzF4WmUyL0RiM3VVcmRRT0U3WGo5MDdoaEdlWlkreTN0c04wOW9pSgowdFV3OGZUVkRx -MEJWbUNEbURZSm4yMkx0a05KT0s2MUZ3NzcxRFdNUHR3dzBxc2RPbWlKSGJ6OWJOTExjeksrSjdh -eVhDNDJBR2JwCnRjVm1FTHBHeGZPczBSamNaTkNyelR1WWg2TlUzOWpZaTMzRmpvWHBBNUpYVjlj -MDhUeEhxYkJYcTJFZ1RHYWJOelEwTkRRME5EUTAKVEFML0ExWVBpV1VGdktGZkFBQUFBRWxGVGtT -dVFtQ0MK - - $$\left[H_{0},Z_{0}\right] = - \sqrt{2} \mathbf{\imath} Y_{0}$$ - - - - - c = H(0)*X(1)*H(0)**2*CNOT(0,1)*X(1)**3*X(0)*Z(1)**2; c - - python - 15 - 0 - - - pyout - 2 -H ⋅X ⋅⎛H ⎞ ⋅CNOT ⋅X ⋅X - 0 1 ⎝ 0⎠ 0,1 1 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU53QUFBQWdDQVlBQUFCNUNoYmpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDSkJKUkVGVQplSnp0bkhtUUY4VVZ4ei91SW5JWVFCYU1vR0tpQzBKaWhJWFNF -ckZRWTd4S1RGbEd3QWdxNGhXRHBlS1JTa0ppZ29tbHBkRVlMdU1kClJDR0pCRFZHU1dsSnFyeVBh -SUpKTVBGRVZFb1RGVmNSWFR3MmYzeDczUG4xcjJlbVoyZm05MXZYK1ZSTnNkT3Y1M1cvbWI3ZTYv -NEIKSlNVbEpkMkFyWUFSUUk5NlY2U2s2OUJZN3dwMFV3NERqZ1Q2QVF1QlhzRGpkYTFSU1VrM1pV -dmdEdk12d0hDZ0hXaXBXNDFLU3JveApBNEVQZ1BHaHRJM0FxZldwVGtsWElzcS9XQVo4d1VwYkM1 -d083QVFzQUxhdzVIY0FWeVdVTndVNHprcjdIM0NDK1h0LzRCeExmam13CktrR3ZMMFhaRmVZdG9E -L1FadTZiZ2Q3QXd5bnJ1aFdhRmNjRDQ0QTNnU1hBWDRFR1lCWXczK1NkQ2h3YmVuWWhzTkxTZHla -d1lPaisKWS9ROTJxeDhZNENEZ1dGQVQrQWZ3QXJnRmF0dVM4Mi92c3dDWGtxUlA0bWkyMUpOMjJv -djRDQzBGRm9KN0VEbHk5MGFtR3ZrRndKZgp4TThmYkFDR29BL1lEbHhuZElYbGx3RWIwSXd3Z3Vv -TzRNUEVpUFE4N1lvcXcyWTU4SDNQdkFFemdYWEFiNERwd0ZCZ0xMQUltSTBHCmdHdEQrUnVBQVdo -dzJBdzg0TkRaQzVpRU90aDBaRnVZNGNCZHFDUHRqVHBiRTNBeWFtalRRbm1QQVA0TEhBK01Rc3Zu -d2NCSHdMOU4KWFhvQTI2Q0crd213WFFyN2ZTaTZMZFdxclg3S2lhYWdZeUxrUzQzOHk1M1EzV0tl -dmM5S0h3amNCbnlwRXpvRHpnWU9pSkhuWmRmeAo1b3JqUERTeSt6SUV1Qk4xdHE5RzVMblYxTzlv -SzcwQitKMjUyb0hkSGM4T1FyT2Z6YzVvOXBrUlVlWXMxSmxHbS9zYnFmWkpKNWh5CkwzRThuM1oy -VDBPUmJha1crajlsc1Nsb2FJUjhQZkJ5QnYyUEdmMmp6SDBmNEE5b2FkZFpqZ2ErbDVBblQ3ditE -SHdqUWpZTlJTdEIKTThBK0NicTJCcDRGL2dsc0g1UHZFRFJqYkd1bHR3QnpnUDJRZlZjNm5qMFMr -SmFWTmd3dHEzOGNVMlp2MU9IdVJEUGxieDE1Zm1ESwpuZVNRTFl2Um5RZEZ0S1ZhNmdmMEVmNFRJ -ZHZWVk9DbURQcG5HaDIvUXN1UG0zR1B5cjcwUnY1TmtsK3hsdnpzYWdhZW85b1hub3lXCnBKUE1k -UzdxS0hIY1lNb2VsNUJ2ZTJDMUkvMU1PanIxR3VCZHF2M1ZLOURTTDJBSTZ1UVBvQmt5ampWb2FY -a2c4RTJIZkNYeUN3YzQKWkZjazZNNUszbTJwMXZvWlpncjRkWVQ4TzBaK1NvWXkrZ0J2b3pYdzlj -QytHWFNCbHBJL1NjaFRoRjJYb3Bram9BbDRFSFgrOEJVMQpvd0ljWmNxOTFhTzhiWUVmT3RKdlFu -NFh3QmxHMzJsV25xWFcvVEtUN3dpUGNsODNlZnM2WkkxQUsvQTNEejFGa0hkYnFyVitqa1V2CmR4 -VWFuZXhydFpIdm1yR2NCVWJQQlJuMUFEd0U3SkdRcHdpN3BnTDNwSzJzeGQybTNERVpkUHcrOVBj -QTREM2dLU3R0VWVoK1IrQkQKRlB6WWtuZ0dtdm85SHlFZlI4Y01VQy95YkVzMTEzK05VVDRCR09t -NE5nQ3Y1VkRPSEZQT0l4bjFOQUh2a0h5TXFnaTd4aUNmcWxmSwo1d0lhVWQwM2RQSjVrRzh4MTBx -N2xnNWJBUTZuTXRKNG1wRXY4ZEIvQVBGTDdkbEdidnVIdFNTdnRsUVgvYzhBTDBiSW1rM0J0MlFz -Cll6SndQb3IrWkIzZEo2TDlvaVNLc0tzUDZuQWpVajRYTU5hVTZ3cmwrM0lxMVpIWllOWUpPc21s -YUZZTCtLV1IvOVJELzNLVDk2UUkKK1cxR1BqaENYalI1dHFXYTY5L09LTDB4UWo3RHlFL1BVTWJY -Z1hubTcyT012alNieXpaVGdQc1Q4aFJwMXpvcU41WFRFSVNkci9QSQpPeFk1OERZM29JNXY4eWc2 -OVRJSWJSZUVtV2ZLUFRHaHpHWVVESGtVOTU3a0ZzQWJLS2hTRC9KdVM3WFd6MVRpQXdmQlVzV08w -dXlJCkd1M0pWRytxaG1sQm9mbmc0L1ZFMFM5WFZNMkZIUWpBMURYSmp5clNyb2VvUE9tUmhnYmtr -Ti9ya1hjQmJuL0w3a3dCTTVCTlA2TnkKb3h3NjNzZDg0bGtDYkNMYXI5Mk4rRUJVZ0cvN0NPUDYx -bUdLYUV0WjlhZTJjeUY2Z1YrSmtEK05qaG1GZDlYM1JtSGhQc2dYZWh5ZApsTGZaQlRuM3RyOXpD -ZTZvV3BpejBFaSswU0U3aW1pSFBxQkl1OWJqM24veVpUbjZpSzRJWU1CTXFqZTdRUnYwRjBjODB4 -c2ROZHRNCjljdzRCQVZOWG9ncGM2NTVObTZELzd2RUh5UUEvL2NZRVBldEE0cHFTMW4wcDdVVDBN -YXIzZkFDQmlGLzVYWXIvUjYwemcxWWdVTHMKWVNhZ1pZbHJuMllYbzllMXZ4VFFGNDJtcnBlMEQx -cjJ4TzNCRldWWFAvUUJraUtrY1d5RFBzNHFxcGVHamNqUG1veWJINkVCSjRyTApUZjJhSGJKdm8v -ZG1iOTQzb3IzRDU0RTlZM1JEeDhtV0hXTHkrTHpITUhIZkdvcHRTMW4wZTl2WmhFNW9CRkc4TjlE -SmdmMk1mSGNVCnBRbkMxMCtnWTB2RGpYd1RsVWVSZm83MmVCclJudEh0NktSQ0s5V2o5R2pnYW1O -RU85cFVQTU5WU2FKZlVuODBXdTlXSTd2QzdJSDgKcExqWnlZZithSi9zU1JUb21JTkc0Y1c0ajNs -TlFjdTlEOUgrMSt3SXZTT29QSGhzTXcxMTlsK2dwZENWcU9GY1p1cms0amhUM2p6MAozVDRCTGtJ -engvNk8vRDd2MGNiKzFrVzNwVHowSjlvWmhOSGJrTk83aHNwUlBnaVJ0NklldlpvT0J4TGtld3hB -UzVkdzVUZWlXYU1kCitEdmFEN3JHeU5aYlJyd04vTkZjQWZZSjlpUmEwWG05a1dnbUMrc3B3cTR3 -STFIMDZyMlVkYlpwcFdOWk5nb3RaVmFqait0aUxSMW4KSndIZWo4ajNEUEVCblp2TjFXVEtYWUcy -S2VKNEdTMVZuMFdEVlpqWHJYdmY5NWhFMFcwcHEzNHZPM3VFQkgrS3FjeExSUCswb2ljYQpaVCsy -MHRwUVk3a3JSbStTN2pUY2d0YlF5ME5wUmRrVlpqelJRWXZPOHJSSG5zZHkxdmNtL2xzVGYwbFI5 -aWI4M21NU1JiZWxyUHE5CjdFdzZQK2ZEWnVCZlZFWnQrZ092NXFBN0RWY0JoeElkRkVtTGoxMHRh -QTl3Y1U1bGRrZTZTdnNvR2k4NzgraHdJTDlqZE9oK0l2RXoKU3hGc1J2N2ExZFRHcmtiVXljOUZh -LzZTYUpMYVI5TFJzczhLTmVzSFgwTVJ0bUhvTk1LS0Fzb1lpbjV0MjRhV2NRTWo4cDFFdXQrZwp4 -UkZuMXpray94NnVSTVM5eDBPUTM5Y1VTdlA5MXAybEtQMkovU0RUTDFRdEJnTjdJWC9odVJ6MUJr -eW5jazlrSGRVT2U4QllOTnJrClFaUmRlWmJ4ZVNEcVBmWkYyeE5yMEFFQ1NQZXRPME9SK292dUJ5 -VWxtVG1jL0dleExrbGV2azVKU1dkcFFQL0Z3MXYxcmtoSnllZUIKZmxUNmJ5VWxKU1VsSlNVbEpT -VWxKU1VsWFlML0EvS2RxeUFhY1o1bUFBQUFBRWxGVGtTdVFtQ0MK - - $$H_{0} X_{1} \left(H_{0}\right)^{2} CNOT_{0,1} X_{1} X_{0}$$ - 15 - - - - - circuit_plot(c, nqubits=2) - python - 16 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x48cd350&gt; - 16 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVhjQUFBQ09DQVlBQUFES0traWJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQURqbEpSRUZVZUp6dDNIMU1W -ZlVmQi9EM0VWZXBLVjFFSUNHdXNxRVNMcm8rVkpyR0hXWWh1TW95CnBibHFLSUhvY1BwSFBxeTUw -dVlpMDYyTnhJZVdhRFhqSWJlR1RSMkJxSWxsQ0lFcElvUWk1b3hud1NkQXVKL2ZIODErS3ZlYTNB -Y08KOSt2N3RYMy84WHZPM2Z1N2MzM2Z3N25uSGsxRVdnRU1CaEVSS1VNVEVkRTdCQkVST1ZjL3ZR -TVFFWkh6c2R5SmlCVEVjaWNpVWhETApuWWhJUVN4M0lpSUZzZHlKaUJURWNpY2lVaERMblloSVFT -eDNJaUlGc2R5SmlCVEVjaWNpVWhETG5ZaElRU3gzSWlJRnNkeUppQlRFCmNpY2lVaERMblloSVFT -eDNJaUlGc2R5SmlCVEVjaWNpVWhETG5ZaElRU3gzSWlJRnNkeUppQlRFY2ljaVVoRExuWWhJUVN4 -M0lpSUYKc2R5SmlCVEVjaWNpVWhETG5ZaElRZjMxRGtDT0V4RWNQWG9VTzNic1FFMU5EZHJhMnVE -cDZZbEpreVpod1lJRjhQSHgwVHVpUXpvNwpPN0Zueng1a1pXV2h0cllXRm9zRlhsNWVpSXFLd2x0 -dnZZV0JBd2ZxSGRFaFY2OWV4YTVkdTdCLy8zNDBOemZEdzhNRHZyNittRHQzCkxxS2pvK0hoNGFG -M1JISkRQSE4zWXlLQ0hUdDI0T21ubjhiOCtmTXhac3dZTEZ1MkRJY1BIMFpzYkN5cXFxb3dldlJv -ekpzM0QrWGwKNVhySDdiSDI5bmFzVzdjT0kwZU94TWFOR3hFUkVZR1ZLMWZpNE1HRG1EMTdOckt6 -c3hFWUdJaGx5NWFob2FGQjc3ZzlWbDlmanlWTApsc0JvTkdMZnZuMllNMmNPVnE5ZWpieThQSmpO -WmlRbkp5TW9LQWpKeWNubzZPalFPeTY1R3lHMzFOblpLZkh4OFJJV0ZpYTV1YmxpCnNWaituYnY5 -c0RZMU5jbW5uMzRxdzRZTmt3TUhEdWdSMVM3TnpjMFNIaDR1TTJmT2xKS1NranZtYmw5ZmRYVzFM -RnEwU0lLRGcrWFAKUC8vczdaaDJxNmlva0tDZ0lFbEtTcEthbXBvNzVtNWZYM0Z4c2N5WU1VT21U -WnNtTFMwdHZSMlQzQmpMM1ExWkxCWlp2SGl4bU0xbQphVzF0N1RadjdUUDd3SUVENHUzdExZV0Zo -YjBSMFNGdGJXMFNIaDR1Q3hjdWxNN096bTd6MXRiM3hSZGZ5TWlSSStYdnYvL3VqWWdPCnVYanhv -aGlOUnRteVpZdlYrYnZYMTluWktYRnhjVEp0MmpScGIyL3ZqWWlrQUUxRVJNKy9IS2puOXUzYmg2 -VkxsK0szMzM2RHA2ZG4KdDNsTjAyRHRzTzdldlJzclZxeEFSVVVGK3ZYcnUxZmtQdjc0WXhRV0Z1 -S0hIMzZ3bXRQVytsYXRXb1dxcWlwa1ptYjJSa3k3dmZiYQphd2dMQzhPYU5XdXN6bHRiWDFkWEYy -Yk9uQW16Mll3VksxYjBSa3h5ZDdwK3RKQmRvcU9qSlMwdHplYThyY05xc1Zoay9QanhzbS9mClBo -Y2xjMXhIUjRmNCsvdExhV21welcxc3JhK2xwVVVNQm9OY3ZIalJWZkVjVmwxZExWNWVYbkwxNmxX -YjI5aGEzL0hqeDhWb05GcjkKYTRib2JuMzM5STJzT25mdUhJNGRPNGE1YytmMmVGOU4wN0JvMFNK -czJyVEpCY21jSXpzN0d5Tkhqc1JUVHozVjQzMkhEQm1DbUpnWQpiTnUyelFYSm5HUHIxcTE0Kysy -M01XalFvQjd2TzM3OGVQajYrbUx2M3IwdVNFYXFZYm03bWUrLy94NXo1c3pCZ0FFRDdOby9KaVlH -CkJ3NGN3TldyVjUyY3pEbXlzcklRR3h0cjkvNnhzYkY5K3JLTTZ1dWp2b1BsN21icTZ1cGdOQnJ0 -M24vZ3dJRVlPblFvR2hzYm5aaksKZVJ4ZDM0Z1JJMUJYVitmRVJNN2w2UHFNUmlQcTYrdWRtSWhV -WmZNTFZVM1RlanNMRVJFNWljMHpkL25uTmttT1BqYldybDJMOTk5LwovNTdiM092NGRYWjI0dEZI -SDBWVFU1UHVhN0UyWG4zMVZhU25wOXU5dnJLeU1nUUZCZW0rRGxzaklDQUFsWldWZHEvdm0yKyt3 -WnR2CnZxbjdPamo2L3VCbEdUY3pZOFlNWkdWbG9hdXJ5Njc5OSs3ZGk5RFFVQmdNQmljbmM0N0l5 -RWhrWkdUWXZYOTZlam9pSXlPZG1NaTUKVkY4ZjlTRkNibWZpeElueTQ0OC8ycHkvMTJHTmpJeVVu -VHQzdWlLV1U3UzJ0b3JCWUpBTEZ5N1kzTWJXK2pvNk91VHh4eCtYa3lkUAp1aXFldzRxTGkrV0pK -NTZRbXpkdjJ0ekcxdnJPbmowclE0Y09sV3ZYcnJrcUhpbUVaKzV1YVBIaXhWaS9majA2T3p0N3RG -OXhjVEdLCmlvb3daODRjRnlWejNPREJnekZ2M2p4ODl0bG5QZDUzNTg2ZENBNE9SbWhvcUF1U09Z -ZkpaRUpBUUFCMjdkclY0MzNYcjErUGQ5NTUKeCswZmxFYTlSTzlQRitxNWpvNE9tVDU5dWlRa0pF -aFhWMWUzZVd1SDllelpzeElRRUNDWm1abTlFZEVodGJXMUVoUVVkTjgvenhjUgp5Yy9QbDJIRGhu -VjdEazFmVkZSVUpON2Uzbkw0OEdHcjg5YldsNUtTSXNIQndWSmZYKy9xZUtRSWxydWJhbWxwa2Vl -ZmYxN216cDNiCjdYa3F0NWVEeFdLUm4zNzZTWVlQSHk2cHFhbTlIZE51RlJVVk1tTEVDRm05ZXJW -Y3VYTGxqcm5iMTlmUjBTRmZmZldWMnowWUxTY24KUjRZTkd5WnBhV25kTHRIY3ZyN1cxbFpadVhL -bEJBVUZTVlZWVlcvSEpEZkdjbmRqTjI3Y2tLU2tKSG5zc2Nja0ppWkc4dlB6cGJhMgpWZ0JJZFhX -MWJOcTBTVUpEUTJYTW1ER1NuWjJ0ZDl3ZXUzVHBrc3lhTlV1OHZMd2tLU2xKaW91THBhR2hRUUJJ -ZVhtNWZQVFJSeko4CitIQ1pPbldxVzV5eDM2MjR1RmdtVDU0c0FRRUJzbmJ0V2psejVvdzBOemNM -QUNrcUtwTEZpeGVMd1dDUTJiTm5TMjF0cmQ1eHljM3cKd1dFS2FHbHB3ZGRmZjQyMHREUmN1SEFC -RFEwTjhQZjN4NlJKazdCbzBTS1l6V2EzL3QzQ2hRc1hzRzNiTm1SbVpxS3VyZzZYTDErRwowV2hF -ZEhRMEVoTVRNWGJzV0wwak9xUzB0QlNiTjIvRy92MzcwZFRVaEN0WHJtRDA2TkdJaVluQmUrKzlC -MzkvZjcwamtodGl1WlBiCnNmVlVTQ0w2UDk0dFEwU2tJSlk3RVpHQ1dPNUVSQXBpdVJNUktZamxU -a1NrSUpZN0VaR0NXTzVFUkFwaXVSTVJLWWpsVGtTa0lKWTcKRVpHQ1dPNUVSQXBpdVJNUktZamxU -a1NrSUpZN0VaR0NXTzVFUkFwaXVSTVJLWWpsVGtTa0lKWTdFWkdDV081RVJBcGl1Uk1SS1lqbApU -a1NrSUpZN0VaR0NXTzVFUkFwaXVSTVJLWWpsVGtTa0lKWTdFWkdDV081RVJBcGl1Uk1SS1lqbFRr -U2tJSlk3RVpHQ1dPNUVSQXBpCnVSTVJLWWpsVGtTa0lKWTdFWkdDV081RVJBcGl1Uk9SUTd5OHZL -QnBtc3VHbDVlWDNrdDBTNXFJaU40aGlIcEMwelR3YmR0M3VQcDQKOEhqYjU0RTRjMjl2YjhkMzMz -MEhzOWtNWDE5ZkRCbzBDSDUrZm9pSWlFQkdSZ1k2T2pyMGpraEU1RlJLbDd1SVlPUEdqVEFhamRp -KwpmVHVXTEZtQ2twSVNYTDkrSGIvLy9qc1NFeE94ZGV0V0dJMUdmUDc1NXp3N0lIS2kxMTkvSFNF -aEllalhyeDhlZXVnaG1Fd21KQ1FrCkFBRE9ueitQaUlnSUJBUUVvRisvZnZEMDlNUXp6enlEMU5S -VW5WTXJSQlRWMWRVbDgrZlBsd2tUSnNqcDA2ZnZtTHQ3MmFkT25SS1QKeVNRSkNRblMxZFhWbXpI -SkRncS9iZDNTdlk3SHI3LytLcHFteWRLbFM2M09mL0xKSjZKcG1tUm1adHIxK21TYnNtZnV5NWN2 -UjJWbApKUTRlUElneFk4YmNjOXNubjN3U2h3NGR3b2tUSi9EQkJ4LzBVa0lpOVIwK2ZCZ0FFQlVW -WlhVK1B6OGZIaDRlZU9tbGwzb3oxZ05CCnlTOVUvL2pqRDd6ODhzczRlZktrMVcvYWJYMUIwOURR -Z0xGang5N1hCd0xwaDErdzlTMzNPaDR6Wjg1RWJtNHVtcHViTVdEQWdEdm0KYnQ2OENZUEJnRkdq -UnFHNHVOaXUxeWZibER4elQwMU54Y0tGQzN0OEM1VzN0emZpNHVLd2VmTm1GeVVqUjF5L2ZoMjdk -KzhHQURRMgpOdXFjaHY2THhXSkJRVUVCSms2YzJLM1lBYUN3c0JEWHIxL0hDeSs4b0VNNjlTbFg3 -cTJ0clVoUFQwZGNYSnhkKzhmSHgrUGJiNy9GCnRXdlhuSnlNSEZGWVdBaC9mMy9FeHNZQ0FBSUNB -cENSa2FGektycVgwdEpTdExTMHdHdzJXNTNQejg4SEFJU0hoL2RpcWdkSGY3MEQKT051UkkwY3di -dHc0REI4KzNLNzlBd01ERVJvYWlsOSsrUVV2dnZpaWs5T1JQU3dXQzJiTm1vWExseS8vKzI5dGJX -MklqWTNGOU9uVAorU09YUHVyVzlmYWNuQndjUDM2ODIzeGhZU0UwVGVPWnU0c29WKzdOemMzdzlm -VjE2RFY4Zkh6UTFOVGtwRVRrcVBMeThqdUsvWmIrCi9mc2pKeWNITVRFeE9xU2kvM0xvMENIMDc5 -OGYrZm41R0RodzRCMXpYVjFkR0RKa0NFSkNRakIwNkZDZEVpck8xbTAwQURnNE9EanUKYTl6Tlly -R0l0N2UzVEpnd3dXcS9IRHQyVERSTms4VEV4UCs4cFUvdnRibnJzSG5OWFVUY2N1VGw1ZUhaWjUr -OTV6Yi90VDZUeVlTZgpmLzVaOTdWdy9IK01HemNPSGg0ZWQ3eEhEUVlEYnR5NG9YdTJCMzFZVTFa -V2hzYkdSa3lkT3RYcS9KRWpSd0RjLy9WMnZkZm9qa081CkwxU25USm1DbXBvYWxKV1YyYlYvU1Vr -Skdob2E4Tnh6enprNUdUbGl6NTQ5TUpsTUdEQmdBQVlOR29UQXdFRGs1dWJpa1VjZTBUc2EKV1hI -cmV2dVVLVk9zemhjVUZBQUFyN2U3a0pMM3VYLzQ0WWRvYW1wQ1NrcUsxZmw3M1RlYmtKQ0F3TUJB -L3BpcGp6cC8vanphMnRvdwphdFFvYUpxbWR4eUM5ZjlQTVRFeHlNckt3cVZMbCtEajQ5TnRIejgv -UHd3Wk1nUVZGUlYydlQ3OU55WEwvYSsvL2tKWVdCZ0tDZ3FzCi9oakoxcHZsMUtsVG1EcDFLc3JL -eXVEbjU5Y2JVWW5jM3QzL245cmIyMkUwR2pGNDhHQlVWbFoyMjc2MHRCUW1rd252dnZzdTB0TFMK -ZXZ6NmRIK1V1eXdEL0hNUDlJWU5HeEFWRllWejU4N2QxejVWVlZXSWpvNUdTa29LaTUzSURqVTFO -UWdQRDBkSVNBanE2K3RSVTFPRApLVk9tWU11V0xRRCt1YlEyZWZKa1RKOCtIWnFtSVRzN0cyYXpH -VWVQSHRVNXVacVVQSE8vWmRPbVRWaTNiaDAyYk5pQU45NTRBdzgvCi9EQ0FPODhFMnRyYWtKV1Zo -ZVhMbDJQTm1qV0lqNC9YTXpLUjIrSHozUHNtcGNzZEFQTHk4cENjbkl3VEowNWd3WUlGbURScEVs -NTUKNVJWa1oyZWpvS0FBMjdkdmg4bGt3cXBWcTJ6K2tvNkliR081OTAzS2wvc3RaODZjd1pkZmZv -blRwMDlqNzk2OWlJNk9Sa2hJQ09Mago0eEVjSEt4M1BDSzN4WEx2bXg2WWNpY2kxMkM1OTAxS2Zx -RktSUFNnVSs3Wk1rVFUrMXo1bXdPRHdlQ3kxMVlaeTUySUhNSkxKbjBUCkw4c1FFU21JNVU1RXBD -Q1dPeEdSZ2xqdVJFUUtZcmtURVNtSTVVNUVwQ0NXT3hHUmdsanVSRVFLWXJrVEVTbUk1VTVFcEND -V094R1IKZ2xqdVJFUUtZcmtURVNtSTVVNUVwQ0NXT3hHUmdsanVSRVFLWXJrVEVTbUk1VTVFcEND -V094R1JnbGp1UkVRS1lya1RFU21JNVU1RQpwQ0NXT3hHUmdsanVSRVFLWXJrVEVTbUk1VTVFcEND -V094R1JnbGp1UkVRS1lya1RFU21JNVU1RXBDQ1dPeEdSZ2xqdVJFUUtZcmtUCkVTbUk1VTVFcEtE -L0FWNklkZEJoanV6V0FBQUFBRWxGVGtTdVFtQ0MK - - - - - - This performs a commutator/anticommutator aware bubble sort algorithm to simplify a circuit. - - - gate_simp(c) - - python - 17 - 0 - - - pyout - H ⋅CNOT ⋅X - 0 0,1 0 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUh3QUFBQWNDQVlBQUFDajZ0dmtBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCZEJKUkVGVQphSUh0bW4vTTFYTVV4MTlYSlpVay9aQ1NKMHNyTmZrUnNzaWtZ -U0UvVmh0YlRScU5VaXlrWkdqVVdxYm9NVDhUb2NhRFdJWkVxSWdvClUzN2w4YXRGdFN6TDc2YkU5 -Y2Y3ZkhlLzkvTjh2dC92dmMvOVBxcmQrOTd1N25QUE9kOXp6dWZYK1p4enZnOVVVQUh3SXZBbGtB -WCsKQnRZQ2M0eFhCYndOYkRiK2I4QnE0Sm9pOURjRGhnUDNBeXVBSmNBeVlLanh6d0ltaE9UdkEx -WUJ1NEYvZ040ZW5ZdUJIZWJUejhBcwpqMHdQNEdIZ09lQlI0RldnQmpnbXdzOFJwbThuc0FaNERW -aHZ0RitBcGViN1I4Qy93RmN4WTY0dkZnQ2J6R2JXL2g0ZTRqOFE0dTFBCjg1aXBqNkZUVE1uc0NQ -N054citrSG5wcjBRWTZBOWpmNkFjQWR3UDNBbjhBcHpuUHRRWFdtYzJISW5SZmpqYXJPK0Q5Z0Fm -dGVYZXoKWElBbTZqS1B2aVhBYlNFZkliY0p4bnBzdnhuaFY2bG9ESHhqZHJzNnZBeXdBWmdNTkNy -RnlBUXpjRTRFZndrNmJhMkwwRGtOMkFWYwpHOEZ2aEtMRjcwQVRoM2N4TUF6NDNQZ3RQYzlmRC9S -eGFCbTB1UmFqVGVYRERCU3BPb1pvYlZBa2NERVh6VXQzaDM0RTJsUU5oWnZNCjdxME9mU1p3Ymhv -R1hrYUwwOExEYTRKTzRkb2k5STFCRGc5UGtKc0d2T0toendJT0I4YVpuakVlbVNlcHU4dXIwZlhU -TnNibVFOTjUKZTRnMkN2OW0veHJZNnFIM0FjYkgyQ2dWN2REVnNoRkZMRkNVOVVXbW9yRWZ1Z2RY -UnZEN29RbXFMbEJmTDNMM1N4S3V3RDl4d1dscgpCZndKZk9yd004QlREdTFPOC9QQ0JKdFZKcmN3 -UkJ0QmJtSURkRFE1MzhudkJaeVVZS2RVUEdQMnowZnpOQ0ZldkhBY2I0cW5SZkJ2Ck1mNlFBdld0 -Tm5uM1h2YWhMOURGb1IyRWtxd0Fjeno2ZWdPVFFyODdvZ2kxaWVTNzdVelR0emhCN2xLVEc1Y2cx -MUFZWVBaclViNlQKR3E0enhhdFJadXArZmpKK3V3SjBIV3F5SDVUZ3p5QmdaT2ozQ2FaelFZZzJE -a1dlQUZOTlpub0Irc2VhN0pRRXVTQWo5bFVKL3hlQwo2cWtxVGFVdm9CTG9RQSt2TVFxcFh4U29h -d2h5c0pTRVpqcDFzOU5WNkU0TE50MFQ1Q2Q2eTgzdWVRWG9yeUUrUVEzd0diQ2RlcFk5CkthQUht -dmNzdXE1U1FRYllobXBMSDA0bXZqUnljWmZKRjFLbnQ4T2Y5ZGQ0YUVGNUZJVHhweDErMENmb21X -Q3pDdlVhdHVMUC9BTzAKUWJYMlN3bjZHZ3FkZ09lQnppZ2Yyb0lPWDFGd2t4TFFCTFVGM29sNEpy -ZzNseGRvWTZOOWJ5bEFkakthL0RDYW9RRzZxRUduN1NyawpjNjNELzlHK2YwMndPUjVOM0NoVTdr -V2hQem9NS3hMME5RUmFvK2JUYU9BSE5QYkRnSXZTVUQ0YW5ZeWhFZnlGeHU4VW9qVUNya1NuCmVB -YnFsQVhvWmZKM0pOanRpYjgrSHdCY0hmSE1UTk85Q0NWZVljdzJYbHpaY2lLNm5oNUw4QTFVRm1a -UmhITVJOLzQ0TkFYbWt6K1gKTHBvQnp3SkhobWg5elplbGFmZ1NwUDRkSXZoYlVkY25qSkdvUXhZ -WXJBVzYyZThNU3Y0K0FacEg2T3dPekVNVDRHSUtjSFRFYzkxUQptTjJGSmlhTTAxRWU0cnNPUVBm -aE5oUW1mYm1LaXpVb0F2akNhTno0b3pBS0hZSXNkYXVTQUkxUmIrRTREKzlqTkhiWFRsRytORVVM -CittMEUvMWh6Y0o1RFgwLytDWHNFdFNRRHRFYUwvaGI1dS9sZzFEMmJUbjc3TWtCN0ZNTGlxb0Uz -Z1BjaWVNUFFJZzBNMFpxalJMSVcKUmJOQ1VJVTJqKzlFUWZMNDR4QzE0RjFSWWhwVmE5OW96OTVU -SDErcTBOMjBnZHdMazVYa3VsbURnZmZSaWNpaXUzTTVjQ3JLQTNhVAozMnFjZ25yYVliUXlKeGNC -SDZLZFc0Mi9MZGpVN1AxbDlqWURFejF5b0tiSzFBZ2V3Tm5vSmMzanFINmZEOXhBOGduc1F1NmxU -akR1Cm5jQzd3T3VvTklUQ3h4OEZkOEVIa2V1Ylo4MTJQK2VadWVncUNtVFdvVnltVkY4S1Foc3oy -amxFbTRoT2N6bWcxUEhIaGZUVWZmRmwKNmNWaU84cUVzeUZhQzZPWEEvYW04U2Y2a3NhQ1o5Rkxs -UFloV2dmZyt4UjA3d3ZZbThhZjZFc2FDdzVxbTRZVGhZRW9XU2dYeEkzLwpLT3AyQ2ZlVUw2bTFD -RnVpMXVreU5NRHZLSzhGanh0L05mcEhEN2YvUGhnbFk1UFFpNkZsNUw4YmFBaGZVb2V2amk0bitN -YWZRYTh5ClhSeUN3bTN3S2VSRlZLbStGTitMVGNET2xQWHRhL0NOUDR2LzlXeERKM1hsdmhaN0RQ -MVJ3NnFDTWtIYVViU0NDaXFvb0lJS0tpaEQKL0FkcHRYLzBuZHJla3dBQUFBQkpSVTVFcmtKZ2dn -PT0K - - $$H_{0} CNOT_{0,1} X_{0}$$ - 17 - - - - - circuit_plot(gate_simp(c),nqubits=2) - python - 18 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x3da1990&gt; - 18 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5jQUFBQ09DQVlBQUFDaS9KMktBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUNZMUpSRUZVZUp6dDNWbElW -UDBmeC9IUG1SYVh5bVZ5YXlFeENyV0ltckJGc3JLSW9FY3FDSktXCm16WXlMYU51Q2l2b29xQWRn -dEtLd0NTS0tLUENvTUlzczdLRk5wSDJSWE9rSWxQRHAxQUx4Ky8vNWw5WXpsajUrSjNUako4WHpF -Mi8KT1lmdjhmVHVuSEVteGhDUmZ3SDBBaEYxS0VORXhPd2hpTHlSeGV3QmlMd1Y0eUpTd3JpSWxE -QXVJaVdNaTBnSjR5SlN3cmlJbERBdQpJaVdNaTBnSjR5SlN3cmlJbERBdUlpV01pMGdKNHlKU3dy -aUlsREF1SWlXTWkwZ0o0eUpTd3JpSWxEQXVJaVdNaTBnSjR5SlN3cmlJCmxEQXVJaVdNaTBnSjR5 -SlN3cmlJbERBdUlpVmR6UjZBL2pzUndZMGJONUNUa3dPNzNZN0d4a1lFQmdZaVBqNGVpeGN2Umxo -WW1Oa2oKZGtxOGNua3dFVUZPVGc1R2pCaUJSWXNXSVNZbUJxdFhyOGJWcTFleGNPRkN2SHIxQ3RI -UjBaZy9mejZlUG4xcTlyaWRqNUJIYW1wcQprcVZMbDhydzRjT2xvS0JBbXB1YnY2KzFQSzIxdGJX -eWJkczJDUTBObGN1WEw1c3hhcWZGNytmeVFDS0M5UFIwUEhyMENIbDVlZWpWCjY4ZnZMalFNQXor -ZjFzTENRaVFuSitQOCtmT0lpNHR6NTdpZEZtOExQZENGQ3hkdzhlSkZuRGx6cGxWWXJreWFOQW43 -OSsvSG5EbHoKME56Y3JEd2hBWXpMSTJWbVppSWpJd09CZ1lGL3ROMnNXYk1RRkJTRS9QeDhwY21v -SmQ0V2Vwank4bktNSGowYWRyc2RmbjUrVHAvago3TGJ3bSt6c2JKdytmUnBuejU3VkhKUEF1RHpP -amgwNzhQcjFhMlJtWnJwOFRsdHgxZGZYSXpRMEZPL2Z2MGZQbmoyMXhpVHd0dERqClZGVlZJVEl5 -c3QzYisvdjdvM2Z2M3FpcHFlbkFxY2dabDFjdXd6RGNQUXVSVjNINUNRM2VMZjZkTm0zYWhFK2ZQ -bUg3OXUwdW45UFcKYmFIRDRVQlFVQkRzZGp1Q2c0TzF4aVR3dHREalRKczJEYm01dVhBNEhPM2Ev -dHk1Y3hnNmRDakRjZ1BHNVdIaTR1SVFHaHFLQ3hjdQp0R3Y3ckt3c3BLV2xkZkJVNUF6ajhrRExs -eS9IOXUzYjBkVFU5RWZiM2I5L0gvZnUzVU55Y3JMU1pOUVM0L0pBOCtiTmc0K1BEMWFzCldQSGJu -N1lvTHkvSHpKa3prWm1aQ1Y5ZlgrVUpDV0JjSHFsYnQyNDRlZklrSGo1OGlIbno1dUg5Ky9jdW55 -c2lLQ2dvUUVKQ0F0YXQKVzRmWnMyZTdjZExPalhGNXFJQ0FBQlFVRkNBc0xBd3hNVEdZTzNjdXJs -eTVncXFxS2dCQVJVVUZzckt5TUd6WU1LU25wMlAvL3YxSQpUVTAxZWVyT2haL1E4QUoxZFhVNGZQ -Z3dEaDA2aE1yS1NsUlhWNk5mdjM2SWo0OUhXbG9hRWhNVCtiNmxDUmlYRjJycmZTNXlIOTRXCkVp -bGhYRVJLR0JlUkVzWkZwSVJ4RVNsaFhFUktHQmVSRXNaRnBJUnhFU2xoWEVSS0dCZVJFc1pGcElS -eEVTbGhYRVJLR0JlUkVzWkYKcElSeEVTbGhYRVJLR0JlUkVzWkZwSVJ4RVNsaFhFUktHQmVSRXNa -RnBJUnhFU2xoWEVSS0dCZVJFc1pGcElSeEVTbGhYRVJLR0JlUgpFc1pGcElSeEVTbGhYRVJLR0Jl -UkVzWkZwck5hclRBTVErMWh0VnBOT1M1KzRiZ1g4clF2SE5lZTE2eWZSNmU0Y24zNThnWEhqaDFE -ClltSWl3c1BEMGFOSEQwUkVSR0R5NU1rNGZ2dzR2bjc5YXZhSTVJVzhPaTRSd2E1ZHV4QVpHWW5z -N0d5c1hMa1NKU1VscUsrdng0TUgKRDVDYW1vb0RCdzRnTWpJU3UzZnY5cWgvN1R1TFdiTm1JVFky -RmhhTEJkMjdkNGZOWmtOS1Nnb0FvS0tpQXBNblQwYi8vdjFoc1ZnUQpHQmlJMGFOSEl5c3J5K1Nw -LzArOGxNUGhrRVdMRmtsY1hKdzhlZkxraDdXZkQvdlJvMGRpczlra0pTVkZIQTZITzhkVTRXbW45 -VmZ6CjNycDFTd3pEa0ZXclZqbGQzN0psaXhpR0lTZE9uR2pYL3JWNDdaVnJ6Wm8xZVBIaUJhNWN1 -WUtZbUpnMm56dGt5QkFVRlJXaHRMUVUKNjlldmQ5T0U5THV1WHIwS0FQam5uMytjcmhjV0ZxSkxs -eTZZT25XcU84ZjZOVk9TVmxaYVdpcDkrdlNSbXBvYXArdXVEdnZEaHc4UwpIaDdlNmtybmFUenR0 -UDVxM3FTa0pQSHg4Wkg2K3ZwV2ExKy9mcFVlUFhxSXpXWnI5LzYxZU9XVkt5c3JDOHVXTGZ2alg4 -R0doSVJnCnlaSWwyTGR2bjlKa3Vod09CL0x6OHdFQVpXVmxKay9UTVpxYm0xRmNYSXhSbzBiQno4 -K3YxZnFkTzNkUVgxK1BDUk1tbUREZEw1aVMKdEtLNnVqb0pDZ3FTTjIvZXVIeE9XNGRkVVZFaFZx -dFZQbi8rckRHZW1yZHYzOHJBZ1FPbFY2OWVBa0I4ZlgxbDdkcTFaby8xVzlvNgpIL2Z2M3hmRE1H -VERoZzFPMXpkdjNpeUdZY2lwVTZmYXRYOU5YYzFOdStOZHYzNGRJMGVPUk4rK2ZkdTEvWUFCQXpC -MDZGRGN2SGtUClU2Wk02ZURwOUtTa3BNQnV0Nk9wcVFrQTBOallpRDE3OW1ENjlPa1lOMjZjeWRP -MTM3ZlhXL241K2JoNzkyNnI5VHQzN3NBd2pML3kKeXVWMWNYMzgrQkhoNGVIL2FSOWhZV0dvcmEz -dG9JbmM0L3o1ODkvRCtxYWhvUUc1dWJrZUhWZFJVUkc2ZHUyS3dzSkMrUHY3LzdEbQpjRGdRRUJD -QTJOaFk5TzdkMjZRSjIrRHFrZ2FBRHo3YzluQ211YmxaUWtKQ0pDNHV6dW42N2R1M3hUQU1TVTFO -YmZQMnpLeGpjdmtMCkRSSHh5TWVsUzVjd1pzeVlOcC96cStPejJXeTRkdTJhNmNmeUo0KzB0RFQ0 -K3ZyK2NBNzkvZjN4OU9sVDAyZjcxY09WeDQ4Zm82YW0KQnVQSGozZTZmdjM2ZFFEQXhJa1RYZTdE -ekwvUFh2ZmJ3b1NFQk5qdGRqeCsvTGhkMjVlVWxLQzZ1aHBqeDQ3dDRNbDA3ZHk1RTBsSgpTZkR4 -OFVIUG5qMFJHQmlJbkp3Y1JFZEhtejFhdTMxN3ZaV1FrT0IwdmJpNEdBRCt5dGRiZ0pkK2NIZmp4 -bzJvcmEzRm5qMTduSzYzCjlVSE9sSlFVREJnd3dHUGZUSzZxcWtKVlZSV2lvNlBSclZzM3M4ZjVM -YTdPeDV3NWM1Q2JtNHQzNzk0aExDeXMxWHBFUkFRQ0FnTHcKL1BuemR1MWZuWGloeXNwS3NWcXRM -dDhNZG5YWUR4OCtsT0RnWUhuMzdwM21lUFFUWitlanNiRlJ3c1BEWmRDZ1FVNjNLU2twRWNNdwpa -TUdDQmUzYXZ6dDRaVndpSXRuWjJSSVZGU1ZsWldXdDFwejlzRisrZkNtUmtaRnk1TWdSZDR4SExi -UThIeFVWRlRKaHdnU0ppb29TCmk4VWkzYnQzbDNIanhzbStmZnRFUkNRdkwwL2k0K01sTkRSVUxC -YUxXSzFXbVRoeG9oUVhGLy9XL3QzSmErTVNFZG03ZDYvMDZkTkgKamg0OUtvMk5qZC8vdk9VUHU2 -R2hRUTRmUGl3UkVSRnk0TUFCTThiczlMVC84cHNWbDFlKzVtcnAwcVZMMkxwMUswcExTN0Y0OFdM -RQp4OGRqeG93WnlNdkxRM0Z4TWJLenMyR3oyWkNSa1lIRXhFU3p4KzJVdlBVL1MzcDlYTjg4ZS9Z -TUJ3OGV4Sk1uVDNEdTNEa2tKU1VoCk5qWVdTNWN1eGVEQmc4MGVyMU5qWEVSS3ZEVXVyM3VmaSto -djRYV2ZMU1RQWkJpRzJyNkRnNFBWOXQwV3hrV204OVpYSnJ3dEpGTEMKdUlpVU1DNGlKWXlMU0Fu -aklsTEN1SWlVTUM0aUpZeUxTQW5qSWxMQ3VJaVVNQzRpSll5TFNBbmpJbExDdUlpVU1DNGlKWXlM -U0FuagpJbExDdUlpVU1DNGlKWXlMU0FuaklsTEN1SWlVTUM0aUpZeUxTQW5qSWxMQ3VJaVVNQzRp -Sll5TFNBbmpJbExDdUlpVU1DNGlKWXlMClNBbmpJbExDdUlpVS9BOTl1T3NBYjBkaXB3QUFBQUJK -UlU1RXJrSmdnZz09Cg== - - - - - - - - +{ + "nbformat": 2, + "name": "quantum_computing", + "worksheets": [ + { + "cells": [ + { + "source": "

Symbolic Quantum Computing

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "source": "

Qubits

", + "cell_type": "markdown" + }, + { + "source": "The state of a set of qubits (Two state systems) is the quantum state that is of interest in Quantum Computing.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "alpha, beta = symbols('alpha beta',real=True)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\alpha {\\left|00\\right\\rangle } + \\beta {\\left|11\\right\\rangle }$$", + "prompt_number": 4, + "png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAAXCAYAAAAIqmGLAAAABHNCSVQICAgIfAhkiAAAA7JJREFU\naIHt2FuIVVUcx/FPTiWkDaFpGkRlRTeawgqjrMaY6IJ0oSCNpKCHogsF2bwEQVFQWnQxsCAwuiHE\nFF2xly4vQTesMSpCoqay8aHCSrtIYw//vZk9+6wzc/aZ45mS84XD2ue/f+vy32v9140OHZqkH3tN\ndSPaTF2fu5os8AgswRelsu7ENTgFF2AHvkvU2YjuOGxusn2TZQWuQy9uxjaMqPU5Z28M4Gd8PU65\nE+la6vMxWFay3YO3Ma1Q4S84ahK6djMdq7CoYFuInThTrc9dYqANYBfOr1Nuo7qkz9NSxiboxk14\nWow4+Bxf4YkmdERkHdJEW2bh0Cbywe1Yh/cLtl9FBPQk9OtxtYi08WhU16zPScqRtFKMkINLurvE\nKOyuqJM99zfRtqVZPVXpwyUJ+/X4E2eojaScZcaPkEZ1SZ9bFUkni3VlS8m+WYzCxRV1xAjeL7O3\ngwvxSsk2W3y0lfipDW1I+pzqpAW4A4/jRaw1doSndiDz8HvCvj1L51fU5bwsPbpbzRx8K6bgXjE9\nbcAmPIXH2tCGnBqfy53Ug3ewUYT55aJTni9oH04UPM/ohy6S2w6oqMvZKBbu3c0SvFVoy3YMYwg3\nGDtIdzc1PhfD6ki8KSLnjcw2glfxmtid/CAd9n9hn4Q9t41U1OWchE8S+lZzLF7Inj/MfnC2GLQX\n4aM2tIOEz8VIujtLHyxlGszSRbgWTyYK3lSnwhlZ+mNFXc6leKlOnlazK2H7JkvntqkNJHzOI2ka\nzsXraqej/JB5mmj0FrXhPygW3jIzs3S4og72xx9i15diBW5L2LvFeeeqxLv1uK9kO6hUb5Gjs/Tj\nOu9bTdLnvJOOx4H4bJwCThCRlGJQnE9mGNvJp2YVfllRB1eKtbAez2S/MkvFEeGBcfIW6cX3dd4t\nx1Z8oPmzVxWSPufT3ZAI962JjDPFWrFBnBdSfJql5f1/H54zOlIb1RGHuqE69bWSxaJjyxyGK3Cj\nGN3tIOlz3knbxJXFeaX3fVgtTuBzM31qSzyMR3Ar9s1sZ+FwY6eXRnWn472JfWoJv+EfnFiwzRZn\npnvFd5mIWVk60do1nq4hn6djjZi3V4sNxGXZux68i/uz5wW4uJS/S9w9DeAhsUM8J1FPI7p+zR+0\nq9w4zMct4gC5SlxXrcWzYmdXJOXzOrET2ylmor+z/2ua0E3G5/8dVTppufacwybFnthzO6RvNVIs\nNLpOdviP8uhUN6AR9sRIapQ5ai96O3To0KHD1PEvn5jpFWKUSuUAAAAASUVORK5CYII=\n", + "text": "\u03b1\u22c5\u275800\u27e9 + \u03b2\u22c5\u275811\u27e9" + } + ], + "collapsed": false, + "prompt_number": 4, + "input": "psi = alpha*Qubit('00') + beta*Qubit('11'); psi\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\alpha {\\left\\langle 00\\right|} + \\beta {\\left\\langle 11\\right|}$$", + "prompt_number": 5, + "png": "iVBORw0KGgoAAAANSUhEUgAAAGgAAAAXCAYAAADnaAq1AAAABHNCSVQICAgIfAhkiAAAA6NJREFU\naIHt2FuMXVMcx/GPKpOUiBoz1SJENG4xoiHtQ0VLEbQiIWFEE0EQJCKqjadOJOJSEoroQ0WCTDzg\nwS28uD64RYR6E0LRS0KkdFqiZjz810737NnnzN4zc86M5nyTnbX3Wr+91vrvtf//daHDAc/a6e7A\nNNA2m2dP8v2z8W1J/nLcmcqG8QuenqBuLR6ZZD/rshpLMIRTsQlvpbJGNmdchxW4cZw2mummzOb1\nxg7y6diDhel5Nj7GPRPUDUxFRyvSJT7M4lzeIvyDnvRcZjMcj7uwDy82aaOKbiC7mVWh0404ArtT\nQ3nuEx86+8v2YRAP4YQJ6Opy1CTevxfP4dNc3h9iQPo0tvkOPIhDcVCT+qvqpoRbsaCQd5z424ox\neiFGcEtNHfU9aCXW1HyHCDdXluTfhr/QrdzmIuN5UBXdQHYzGQ9agG2FvLPE31aM0d+ldFlNXTu5\nDK8V8rrFT7QGvym3uaWUxdKT0C9iZS92Yp1wdcI1l+KjknePSenuQv4w9mJ+TV276MGPqf1lwmuO\nFGFtE57CecptbilFD+rD+/hSdPJqMSCDOe3juBDvltSXffihkrIhYXQdXbtYbr89Q+naga24Xcw9\njWxuKfkBOhnvYLP9S8phvI7LcQ6OFa7+Hi4oqe/v3HtFDsnlV9W1i9PwTbr/HDfhBhE55uEKjW1u\nKfkBuj+ljxU0X6d0sej4ZnyA80vq29KkrcOwvaaunYyU5P2Q0l6NbW4p2Rw0CxfhTWPDzk8pXSI6\nnE2S24ydNLPBnFuooyu1taOmrhmrjd0zEeGoC9eXlL0klvF55jVp75SUfpHSMptbSjZAZ+Bo+928\njDOFB2UM4majPW47fhULjDznpnRLTV0zXkhXkZVi9/9ohTqIRcHPDcr6xSLps/RcZnNLyULcVuHi\nO0s0h4s54W2xH8jYlcoOLui/wqWFvBX4Hc9OQNdqlopBLXIirhGby70pr5HNLSMboF14BZcUyldg\ng9hZ9yZ9fjP3BlYV3lmPi8XEC3NwLTYavayuqms1f+JfsTfL6BZ7ogfEd8lTZnPGXLHq7dH8pKCq\nbhRdeFLE6Q3Cja9KZX1iknw43edZV1LXKryKJ/CyGIyyv66K7u6qBiTqnCTMF+dic8QZ3PN4Ruzw\nmy0Iijb34xMRtkfS9T0+NHpPV1VX1+b/FXUGqF8chs5YJnPUM1PZo3qIXCTmwg4zlI3T3YHxOBA9\nqCo92nzw2aFDhw4dRvEfMafj+g/WzT4AAAAASUVORK5CYII=\n", + "text": "\u03b1\u22c5\u27e800\u2758 + \u03b2\u22c5\u27e811\u2758" + } + ], + "collapsed": false, + "prompt_number": 5, + "input": "Dagger(psi)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\alpha$$", + "prompt_number": 6, + "png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9/AAAABHNCSVQICAgIfAhkiAAAAMlJREFU\nKJHV0TFOQlEQheHP12CCLRYQGkLrK4kL0JBIY+si6Ejs3AA0hMYNaGdnoRsw0LoETDSUkJhQAQXz\nErh5lZ3TzJ0z+WfOzfDHOCnRWrhDE+dY4B6rA2abQjnmuIk6wyNe4w3jFGrjBw+J3osNHTRK+p4D\nrCZ6M8B+QPXCSpGv8Y7fBPyKfIkKvg+bFzF1kNqI2OITp4VQbJxHc1ECnWGDN6xTcIkXdBPoCkPM\n7E+T4ZbjO1YwQi3+leEjBuaYYIqnsP1fYgcPriV+6UcWLAAAAABJRU5ErkJggg==\n", + "text": "\u03b1" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "qapply(Dagger(Qubit('00'))*psi)\n" + }, + { + "source": "SymPy supports many different types of measurements.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$${\\left|00\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAATCAYAAABobNZCAAAABHNCSVQICAgIfAhkiAAAAWdJREFU\nSInt1btLHUEUx/EPEjU+ICbiozBqq2AaCWKa1IqVpdX9A2xsJLWFhWhhmzqlpQqCTSzsDekUCULw\nURgCXvMQrhazN4x7181umkDID4Yze853+A07Z3b5x/XmocKjaD6H9/iMLqyhiks8xlscp9YX4aro\nxUXeDisYTua7WEnVPqI9taYI142FPOPYfAK3GIlqbfiG5ShXlIMlNBUx38BJRn0HH6Lnohy8wnQa\nzNrNOA4z8kcYE15jGQ72kw381rwPVxn5ahL7S3J1nWAoz/yJcG5VjarnukpwsTYxk2d+g1oy0mpO\nYq0EF2sGW3nm1xrvcl0dSTwtwcUaxqc8c0KnPs3IdybxrCQHk0LT3dND5s8z8i+FTv5ekoMpbBcx\nP8AoBqNcD15g9Q+4Z/giuz9+qSKcSwv2sB7VFoVvfmuUK8rNC9eyQfGP5Ro/kzErfCLf4SsG8Bo/\nIr4o14nzLPP/+iu6A4BqY/+ZKkASAAAAAElFTkSuQmCC\n", + "text": "\u275800\u27e9" + }, + { + "output_type": "display_data", + "latex": "$$\\frac{\\alpha^{2}}{\\alpha^{2} + \\beta^{2}}$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAtCAYAAAAdtGNyAAAABHNCSVQICAgIfAhkiAAAAl1JREFU\naIHt2jtoFEEcx/GPSRAjBnwhCGrQQEQRHyAiGNBGELFI6SMIii+iTaIWgsiJYGOTQtBGEMEyVVp7\nBUFRRDEgSMogEhQlvqLFbOJqYu68vd0psl9YbmZvmN9/bnb/O/PbYw4yL6L2eTRhAa5FjKMwdmNH\nUr6DnUWKNxUplmItupPyG3RGiqNQWrA4KQ8qeNCxZvo7xrAVrzEcKY7CacVV8X74KJwWBt6EA5Fj\nyY3mVHk/PuId3qOryECKeE73J58TQtbuE2Z4GUYK0J9Gc/UmmRjAOG7gEU6iDeuEBPY5Z/0Zacmx\n704cRHvq3HPswhPh0o5CnplzLx7jS+rcJ2H1dT9H3arkOegRfE3VF2IjXghJbH6O2rOS5z09jA5s\nxvrkuIV9WIJn+JGjfknJXGRycfIzahQlJSWNIuuGI5a5F81UjGXuZdbNsgyNZe5FNRVjmXuZdbPM\ndCxzL7qpWKS5146VEXSnUa+51/ofbbfghJDA+nAmg25msph7V2ps1yFsRSfZg9EMunXRqP13pcZ2\nx5PPVcJ+fAjbsorX6pHFcDTX4KUwyMPowQM8zUnvDwZwKVUfFO6xQ1heZ5+VGtp0+73qOopeYTe4\nuk7NKarNdKMczX6sSNW7hMGkuY23qfpEcozjXnLuOr7VqFk3Z4X7KM0FvMLSDP1Wamhz6q/6djzM\noDlFtedcLEdzk5CpJxNnGy7jWCM6r3Z5DyUB9OKDcLldxE0hs95tRBAzsAHnhIQ5hkXCzI/mpFcI\nR6p835OneKx3w7O94WgW9w9AUegQLu+SkpKSkn/xC5fPb/BMrkVFAAAAAElFTkSuQmCC\n", + "text": "2 \n \u03b1 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2\n\u03b1 + \u03b2" + }, + { + "output_type": "display_data", + "latex": "$${\\left|11\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAATCAYAAABobNZCAAAABHNCSVQICAgIfAhkiAAAAOZJREFU\nSInt1TFOAkEUxvFfiLEkCIkFFkDCJTThABpqCiquYAWFtzHhBGBja0ws7KysjD2xkRYodo2w2d3Z\nRicxfs28vPle/m8mkzf8cc2KNmp78Rhnmf06ntALAMp8a5yGOpygm8bHGOABW/QLaqr4WrjOKz7K\nyTVwi1esSpqt6lvhRHLLmyLTxPfJv3Sj/ORVfRe4yiZrOcaf0GPaQBQ4vKMTC77AMBZ8iGUseBdv\nMeDnkkd3oN+CX+IuBryJDzkDJgRvpmtoNpf5xpgH6o3QTuN7vEim1hafeMY0U1PFV/ir/SuKdqio\nK05yzo7kAAAAAElFTkSuQmCC\n", + "text": "\u275811\u27e9" + }, + { + "output_type": "display_data", + "latex": "$$\\frac{\\beta^{2}}{\\alpha^{2} + \\beta^{2}}$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAwCAYAAACi/HI3AAAABHNCSVQICAgIfAhkiAAAAnhJREFU\naIHt2U2IjVEcx/HPvBSDCXeY1BRpRAlZEQ1NZmZhg0jZSImslGRhystkJ7spZSUryoosLcZKFhLG\nZhZTSlmRt7wsGBbnmVw3M/fOfeaeI/N8N8855znP8/ufzv8559zfZQ7SlFD7FFrRjosJ44jGVuzM\nylfRG1O8OaZYGauxLyuPY22iOKLSgqVZ+SY2xhRPNdM/8A7r8RqjMcVbY4qhG/34hvnowtnIMURl\nOwbK6p/9Tus9MQOJld4lLMf9rH4AExjBW3yJFEdUDgqf0iGcxxNsShVMrJluwnesErarldgdSTsJ\n7dhV0TaIWwliQZyZ7sHDirYOIcX/W65gTVm9hMdCBiQhxj79DIfxVFixB4SF7VME7SR0oi8rd2FF\nwliisR8LUwdRSaMXspJw8ppTdKQOoGAuM+mR/UwaRUFBwWyR1/dO5V0n88xTede5dfOcyFJ510k9\n81TedW7dPDOdyrtO6pnDPFzS+N/l3TiBI9k1lu5fOY5FWXkm3vVMMqzSL7+Lk3Xq5qZPcD/eCN51\n/wyePVdjvxL2ltWXCOn8s07dGdOExbP0rqEa+zXEL6/lm2jGBXwQZnaHkNZtWCZsG41iKr/8eZ6X\n1jLoG4J7OZzVB4RBf8S9POJVaBdSGC5n10FszvviaoPeIBj1R8vaRrENj/C+Rp3Tgkk4SY/wr2U5\n1/Cyos9IRZ8ofvlJ3KloO4MXfq+e9TBUQ5+G+eXVZnrMn6tjSTgUjAmHhDZ8zRvEFDTML2+pcn9c\n2Ca2YJ3gXQ8Li9lkqk3UoduLB9Pc78QCXBcG+Qq31f45/ZMcr3L/n/TLG82x1AGkoPDLCwoKCqbj\nFwnubvhneA5lAAAAAElFTkSuQmCC\n", + "text": "2 \n \u03b2 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2\n\u03b1 + \u03b2" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "for state, prob in measure_all(psi):\n display(state)\n display(prob)\n" + }, + { + "source": "Qubits can be represented in the computational basis.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left(\\begin{smallmatrix}\\alpha\\\\0\\\\0\\\\\\beta\\end{smallmatrix}\\right)$$", + "prompt_number": 8, + "text": "\u23a1\u03b1\u23a4\n\u23a2 \u23a5\n\u23a20\u23a5\n\u23a2 \u23a5\n\u23a20\u23a5\n\u23a2 \u23a5\n\u23a3\u03b2\u23a6" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "represent(psi)\n" + }, + { + "source": "

Gates

", + "cell_type": "markdown" + }, + { + "source": "Gate objects are the operators which act on a quantum state.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$X_{0}$$", + "prompt_number": 9, + "png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAABHNCSVQICAgIfAhkiAAAAXxJREFU\nSInl1T9IVmEUBvDf9yl8iJNDEYhGSKBgIDQIiYMOQdGom4mDIBhtIRS0O+TSoA2FELiINLTW0JCD\nEdqfRUGQQhISWiLBRR3u++HL7cLV2w0HH7hwznPO+zzvv3svZ4gFbOMwPNsYieqzUW0P71ApYtSI\nzSDUkapVsIVHaCgiHmMqmDxO8TO4/a/idVzAPr6hGriHGD2NSN5S99CNPnxEP2qYO43JSTAg2bIN\nPClbPMZ6MLpcZHA1v0UnDkI8XsQkD61YQpvkfH5IrnZpaMEryQ2DecmWDZVl0IRFXIm43mDyNqO/\ngjHcxzTu5Bk04iV6MmprkvO5muKH8TzEVXzBNRERowPv8RWfMkwWwqwnU/wUXof4QLLau+nBtxx/\npw6xixupnhf4E/V8xkSo/cb1qPcB3mRMsjBqwbQr4u7hQz05yXuSh33sBKM6mvGrTBNYxcUov4Tv\nZZusYDDKb+JZPSn0N8tAUxBdRjt+4mlJ2n+h9r+EzxGOAGtDSS7Kxo8ZAAAAAElFTkSuQmCC\n", + "text": "X \n 0" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "g = X(0); g\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\left(\\begin{smallmatrix}0 & 1 & 0 & 0\\\\1 & 0 & 0 & 0\\\\0 & 0 & 0 & 1\\\\0 & 0 & 1 & 0\\end{smallmatrix}\\right)$$", + "prompt_number": 10, + "text": "\u23a10 1 0 0\u23a4\n\u23a2 \u23a5\n\u23a21 0 0 0\u23a5\n\u23a2 \u23a5\n\u23a20 0 0 1\u23a5\n\u23a2 \u23a5\n\u23a30 0 1 0\u23a6" + } + ], + "collapsed": false, + "prompt_number": 10, + "input": "represent(g, nqubits=2)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$H_{0} {\\left|00\\right\\rangle }$$", + "prompt_number": 11, + "png": "iVBORw0KGgoAAAANSUhEUgAAADYAAAAZCAYAAAB6v90+AAAABHNCSVQICAgIfAhkiAAAArlJREFU\nWIXt1juIlUcUB/Df+mDBF76SrIWKkCDYCEZBWKNRQRvFUkQbQSSYWFioSEAuiIWNxErQRgsxnSls\nRDEmJgSx8YGoGBUM0RXBF1po1E0xM+53v71z937XlbXYf3O+c85/vjln5pyZYRifLDZjUqvkE7iB\nXvyHSzgcfTPxK/6N/ue4iO+b/G9HA9smHMde7MOazNiBeF0DzN0PC4XAD2T8u6J/bQv/qpX0DbiN\n8VH/DD1Y1iZvTwsxvMd2IfCVGf8pvNVaGdQK3x24Jqx+EUeFKuioyCMkWk42i5N4jbENfKPxQijR\nVlArfK8SFqwcyLpon1eRl1C3ayMygYxAt9A7Lxv4FwgJ/54Z3wxfR3mrZP87ym8r8hIeCv2GfGJz\nMRHnMv6lUf6W8TdDmvxFyZ4WcFpFXsIxrE/KqMzki6NcoW/lipgfZTs7lgIuV0LSJ1bkJTzBlKTk\nElsiHAxL9V+xUXiG63iUGd8Mr6J8V7KPLtlb5SVMEpJD41LswDe4rH9ShKYdo73dgqsZezqkHlTk\nJawXyhGNE5uDqTif+fGiKNvpL7gSZfmaGBdlT0VewjTcT0qjUkz99UcmsO4oizs2EhvRiRk4g9OZ\n8Sng6epLeUGUVyvyCFfC2cx87/GzcE90Zfw9+o7chI34KX6PxE18VfDXSvyn+LFkO4m/2uTtUX9h\n90OnEPjtjH+ukPSRkv26+ov0EHYX9FqJ/x3+wYSozxL6eVUbvC/wQyZeM4XSuqvv4fsntkT/amGV\nHkX/Y6HHuoU+fYPZpUROFPRtDebcil+wX9iFDZnYBuJtxuRcYh+CKUKy0wu2nVqo+Y+J3MujCh4L\n91pvwTY22ocMg5FYr/AY/rxg68K9Qfh32xiMxOCC+sNjuXCADBmaHpEVMB4HhUfzl7hjiBMbbHQO\ndQDDGMYnhv8BbkWjYKG8VMEAAAAASUVORK5CYII=\n", + "text": "H \u22c5\u275800\u27e9\n 0" + } + ], + "collapsed": false, + "prompt_number": 11, + "input": "c = H(0)*Qubit('00'); c\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|01\\right\\rangle }$$", + "prompt_number": 12, + "png": "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\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275801\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2" + } + ], + "collapsed": false, + "prompt_number": 12, + "input": "qapply(c)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$H_{0} {\\left|0\\right\\rangle } = \\frac{1}{2} \\sqrt{2} {\\left|0\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|1\\right\\rangle }$$", + "png": "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\nRU5ErkJggg==\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n \u2572\u2571 2 \u22c5\u27580\u27e9 \u2572\u2571 2 \u22c5\u27581\u27e9\nH \u22c5\u27580\u27e9 = \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 0 2 2" + }, + { + "output_type": "display_data", + "latex": "$$H_{0} {\\left|1\\right\\rangle } = \\frac{1}{2} \\sqrt{2} {\\left|0\\right\\rangle } - \\frac{1}{2} \\sqrt{2} {\\left|1\\right\\rangle }$$", + "png": "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\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n \u2572\u2571 2 \u22c5\u27580\u27e9 \u2572\u2571 2 \u22c5\u27581\u27e9\nH \u22c5\u27581\u27e9 = \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 0 2 2" + }, + { + "output_type": "display_data", + "latex": "$$X_{0} {\\left|0\\right\\rangle } = {\\left|1\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAFQAAAAZCAYAAACvrQlzAAAABHNCSVQICAgIfAhkiAAAA0BJREFU\naIHt2EuIHEUcx/HPJpFlSQyKUbIs6iFKDBjwgZfgQTwoERUxqPhWVokmJ9EEEpDMQRRfCAqiogjB\nHBRBDd4UFFFQwefiQQ1kTQIRRQ+aRFbUzaGq2e6anp7p7Vl3decLQ3X9q/pfv/lPPf41DFg03IKx\n+RZRQS19e3AI0/FzKDrIeDbXdgzvY6jC3/YS2414DQ/jUdyQtK/Etl4FN6RMX8YmIR4ptfUtwz4h\naGuStiHsx04s7cFXK6lficM4JSduEteUvLesR71NaJXYxrAFf+L1ivcK+pZUDPIXXojPNyVtT2Cr\nMLv+rpRazk7sxS+x/hvewssYzvXbi6tm4b8pd+MxrMA/Ff1q6zsVU/jBTPB34LaaAlu554uFWX9t\n0mdjtF+a2B+qOdZsaFW0HdF5hpLoq5qh8DPewBm4AuPCzN3dVWJnLozl94l9XywvKbGf1WC8uaag\nr1tA4flYPol1eLyhgNWxPJLYj8ZyNLG/qv3AWkgU9PWy4b+Hb7EWz/RBQBbQo4k9q5+U2P/A8g6+\n1gurpSrDSDmAq2v070ZBXy8BPcfMxnwXHmwoYCqW6WZ/Qgf7iCC6jAmc31BPUwr6ui35MWHTvTy+\nNK55GjPRwZ79yocT+/XCslqoFPRVBfRkYYnfi4PxpVHtuWJdvs75z7Milj8m9rX4ruGYc0lBX6fZ\nNiIcRvcLJz08hztwj/Y0Ygi340RhVn+Itzv4zgJ6uuJJf1Es8zP4AnzWwQ+cK+SudffQNGWbLd30\nIQR5N84raftC2OPOTuzX4cX4vEQI2vpceyvpP6k9W3gF3ygGZ5f5uyllVOWhbfrSJb9GmF0T+LLE\nwR7hC29J7NuFWwMh4O/i1gqRO3AnVsX6qJDYPyIk94TZfkzIe+eLlcLVepX2VVCpb6OZe/u0sMw3\nJH1eElKbrM9X2BzbfjeTsMMDeCdXv69kzHG8iaeEH2Nz0n6zsC38G6T6NuFjIQ7Z953EBzhzrvUN\nxwHX5Wxb8elcDLbQ6eWm1I0pIdWZztmW49c++P7P0Y+Awuc4LVdfLZymi45+BfQTxX+JLhPSrEVH\nnfytihEhgB8J/0z9hKf75HtRM9y9y4ABAwb8bzgOJqKj+ElYpHwAAAAASUVORK5CYII=\n", + "text": "X \u22c5\u27580\u27e9 = \u27581\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$X_{0} {\\left|1\\right\\rangle } = {\\left|0\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAFQAAAAZCAYAAACvrQlzAAAABHNCSVQICAgIfAhkiAAAA0JJREFU\naIHt2FuIVVUYB/DfmHEY1CEDQ5GisDIhIQtfeooeukHRPegOJmk+RWUoRechIsjALkRFERhCQReI\n3grsoaCCrvNkGpEJRUFBZTVgMz18a5p9lvvss8/FIzXnD4e11/9b61v/+eb71l5rM8K8wc1YeaxF\nVKArfbtxEDPpdzA5mMUzBdsfeA9jFf62Vtg2YWcJP4H76gruE2X6LsHreDT9Nmb2rvUtxH4RtFWZ\nbQzfYDuOq+GrWcKdhm2YxtMV8xbW8N8vmll/PX7FKanfwBe4s2Rei74FFYscxvPp+cbMtgNb8Aj+\nriE4x/3m/oiqzH4Ll/fgv19sxx4cSP0pvIIncFJhXNf6liVn35oL/jbc2qXAZht+saiAdhkKD3e5\nVi9oFp7PFFVzVzZmndCaJ1eLvqoMhZ/wpkj9y7BBZO6uruT2h/04fYjrrRNVs69EB1xQwv+rr1NA\n4bnUPo41eKxrif3hVdwwxPWWp/b3jD+U2hUZ36Kvzoa/B3uxGk/1ILBf/IlFbWxrRbVU7cM5DuCK\nCvtsQA9l/DT+wglV+uoE9KzkDO7AgzXmDBLjQnQZJkWJDhJTqZ0usR1fwrfo61TyK8Wme3GatMFw\njjFFXC/KaliYbMM3xBHx+4xv0VcV0KWixDfjuzRpBa7sVWmPWI2vhrjel6ldmvGLU/tDxrfoa5dt\n4+JldI9408OzuF3cbF7Lxo/hNiwRWf0+3q6jvgPOxScV9rPxku730Ksr7F+L/fPkjF+f2mIGd9KH\nCPIunFNi+0zsIWdk/HV4IT0vEP/ltQV7s81anc6hDzk2N6UP8XLG7RDl3ihwR+jLS36VyK5JfF6y\n8G6RDfmhd6u4NRABfxe3tFNfwImpXVZiWyK+Exyu4WfQeABX4dTUn8A14ug4+9Kq1HepuXv7jCjz\n87MxL4pSmB1TvNv+hvMKY+/FO4X+3ZmvjfgYvxT87RMfWSbSmJscWXZHC7k+uFZcanbiDXFdLibg\nUdPXEAFZU+C2iIDNO9S5KXXClNhbZgrcIvw8AN//OQwioPCp1q8wy819qZlXGFRAP8KFhf5F4pg1\n79DN+a0K4yKAH4gvUz/iyQH5ntdodB4ywggjjPC/wT+UDKQb+BPLoQAAAABJRU5ErkJggg==\n", + "text": "X \u22c5\u27581\u27e9 = \u27580\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$Y_{0} {\\left|0\\right\\rangle } = \\mathbf{\\imath} {\\left|1\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAFYAAAAZCAYAAACrWNlOAAAABHNCSVQICAgIfAhkiAAAA3lJREFU\naIHt2F2MXVMUB/BfP8bX0KJSxTTUk/BES+LBEF8RSYmEphlE0HgYPIgE4yNuhCYi8SRBeJKQIVGC\nBPWVNiJFpFIJQtOI74eWFBMRTD2sfTNn9j1n7j23d1rp3P/LPvu/19n7f9ZZZ+29Dn0c0FiHJftb\nRBdoq3sVPsDf2IMJbMJgZncsfkk2k9iG4zKbO0rmvx7jeAgP44psfClubfMQs40y3XAo3sXpJWMd\n675WOO2ZNjZbMFQx3sj6a/ENFqX+EvyIizK7BzCvE5GzhEbWH8DZ2Ch8sqrivlLd87P+BhGtl+Hg\nkklWYDXOxfcdiJ2HMbyI3xK3C6+Ll1dc/22tzt5fGBC+WINf29h2rPtZ8YauzPhFeAlHt7m/Ubi+\nJM11cWZzVeLPyvgHOxE4S2hU8LeYOWIp0Z1HLOFYuLrALcATuFPk2E6xMrVfZ/z21J6X8T/ghBrz\n/1/QorvMsRuxE5fiqMQ9gqfwVc0Fl6X2j4yfSG2+8T2HkZpr1MWICJJx5c/fDVp0Lywx+gcvYFSk\ng4PwOd7rYsGmYycyvtk/MuN3m3qZOVbiafU2uO2mp7TV4uRzs8j5F+CtGvNVoUV3mWOJdDCKu8Wb\nHetywb9SO5nxAxX84iSyDJ8oP/LUweXi7HkODsN3ezlfEy26qz6FLcIpu3DPXiz4WQXfPB//lPEj\n4rOaLaxP7Y3iGb/s0bwtuqsce6o4br2hNarqYFtq88/78NT+nPFDehdFZdghomuN2DN6hRbdValg\nOLWbSsbmi0rqECwXuffNinmajl1uenSemdpiRA9jc8U8cAaeVD/Hrs24a8Q+8rxw8kLxZXaLdrqn\nYVwk+bykJSqvx9L1AnyBUwrjjcx+J+7PuJfxUcbtq8rrY1PRep+pDbZRYd/uHNtR5UU4axifat3N\niZr6lXT9r4jYmY5Id+EmER1wotiN1xdsjhFRs2eGeXqFIbyD48UmmqejHM2CaGnJWEe6TxIhvSMZ\n/o73xafTxDyxqZ1W4O7Fq4X+bSVzj4oofRSv4bpsfF0SuS9wgwiMMRxR4HPdG0QqmxT++BNbTa+y\neqZ7cVpkRYG7XY0cM1dQt/LYbeq3YROD6pW5cwLdlHRbTc83y/Btb+QcOOjGsR/i/EL/QnEM6qOA\nbo43g+InxmacLKL18V6Kmuso+xHeRx999NHHFP4D70iuykbrxK8AAAAASUVORK5CYII=\n", + "text": "Y \u22c5\u27580\u27e9 = \u2148\u22c5\u27581\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$Y_{0} {\\left|1\\right\\rangle } = - \\mathbf{\\imath} {\\left|0\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAZCAYAAAAonOB1AAAABHNCSVQICAgIfAhkiAAAA51JREFU\naIHt2VuMnVMUwPHftLRiRIsaI6YoHlyelEZ4GEK9EH1wT10S0fShcYnUJUriRAjCw0iaqJBIJKQR\nIUHiEiJthIoKWiGqRFxCBMmEEdeOh7WPOWef7zuXmTntTHr+yWR/3/rWt7+19jp77bX30KNHCatw\nyJ42Yg/Q1O9T8Tb+xjjGsAn9md5h+CXp7MI2HJ7p3NrEiLW4t0A+gOubvDcbKPL7fDyL+3A/rs2e\nt+X3VWLAn2yhswVDJc8rBbLjknw8GVfE3ehrZeAMppLdn45RE+O0H7ZrDEyD33MyhefELFmB+QUf\nXoILcCa+bdPYu3CHCEgzXse5bfY5G1gnfKqO0x94BuvVp6y2/H5KDODFmfxAPI+DW7xfKZEPaj5T\n4J5Wxs1gKjXXJ4j0vjrTWSbG4NJMXud3PlOIoMAVNbK52IDbxJrSLb7DEV3sf3exVKSkzzP5ztSe\nlcnr/C4Kymv4CefhoCR7EI9hx9RsbcnTWNnlb0yVo8TC/RLOKdEZTO1vmXwstXlxVOf3PgUd/iNy\n3xqRwubhE7zZrtVTYNTEDyHnFDyus2Jgp8Y0PBX6RLa4ObXr8EaBXjUoY5n8LzG+CzN5nd9FQSFS\n2Jr00Y24vQPDp8ICYWAR7+Pk3WRHGSvwMn7Hco3pqcqfqd2VyfvEUpDL6/wuC8qW1PHPonLaXawU\nU3mm8hG+xvE4Q/xoi9heIt9fBOb7TF7nd1lQThQl8Ssao9pNhvBNl7/xME7rQP86bE3XX6V2tVhf\nN5W8sy21eSo+ILU/ZPI6v8uCMpzaoo/OwTViM7RYrDWvlvTTCcPY3OT5Ujyq8zXl8kx2Y4d25czH\n1Xgg3R+LLzKdHWJfshjv1MiXpbZ2JrXy+382iiOX/JiF2NGvT9dz8amYzlUqJX222qfMlh39RWKx\nHsAiE/5WMr2teCKTjYjN5LwaWcsdPTHQw/hQY/VAnPG8kK7/FTOlnTK2uukcKHi2SKxfrXb9M4Eh\nfIwfxazbUKJ3Jy7Bkel+IS7EQ6IKow2/jxbT6Muk9CvewpU1On2iADgp+/iLNfc3Zf3egPdEdTGe\n/j4Twdw36axKBs4GDhV7uRGx2FfJ/YbLxCnISGpvUT8rpsXvBWJQl9TI1mozJ/Zoj6L01YxRE0f3\nVfp19+hlr6PToMAH6teFQVG795gmJhOUd3F2zf1yUar2mCYmU4L2i4pjM44Rs+SR6TSqx+Qp+idY\njx49evTYe/kP0yK1Sgfn/IEAAAAASUVORK5CYII=\n", + "text": "Y \u22c5\u27581\u27e9 = -\u2148\u22c5\u27580\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$Z_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAFEAAAAZCAYAAABJhMI3AAAABHNCSVQICAgIfAhkiAAAAvlJREFU\nWIXt2F2IVkUcx/HPo65LWppS65ZFWUFXiRGiJKYI1RIlQlem+dabC4IXQnkRqEghXqkZXob2RkFQ\nRCFIEXXpnVJGhm+wrVEp+BYq7nYxs3WaznN2z3OedVOfLzzMmd+c88yPmf/M+c+hxXVHNyaMtIkC\nSvnrwCX04zIOYx/2xt8fse3ZOs+Pxroc/RV8iDewFc8k7VOxeqgmK3BV/K3ERaxFW9K2CFewo+D5\nMXg90VbgJ4yP9Q78innJfZuHarICV8XfJ3g6R5+FC/gMo0qYHIUfhRnO8j6Oo5bRnsBjQzXaIMPu\nbyy+ydHvE2ZmP8aVNLlIWP5p589HfXpGqxn+aGyqv7xo6vTfGZmML/GnEKEXSpp+JJaHE/3nWM7P\naP34DbeX7KMKlfzlDeIJ4SUyQDs+xRQ8JURjWTpjeS7Rz8fyjkT/AEsb6KdRKvkbM8if1/AOZqML\nPzTm8W+T5xN9oH5rov+ufiTOxVsl+z+AZQXtlfwNNohvYjGW4+tB7i3iYiz7Er2tjn6bkEbl8R1m\nVPCSRyV/RW/Yl7EeG7Eno9+EBSVNHqyjD6QTvYm+BO+V7KMKlfzVG8QuvI3d2JS0LcbEch4diOWk\nRL85liczWk1YKo3svY1SyV/ecp6Bj/EtXsppX4UnhVBfJWT/0/CF/NQoa/JunM7oM2OZjYTH/fvF\nljIH2wva8zgoHCDq0Ux/7kIPvpcfbc/h83jdjS3xuk1IB+6N9TQPq+EsXkv+b6+wx2UZiRNL0/xN\nEGakF/ckbXcK+2MfXozaUTyauWcPXq1jEtbgGG6J9QeEfLMr6ae7yGSTaKq/7HLehoeESPwoamNx\nv3++XFwWIrFdiLqezPO/4OF43YczSV87Y3/v4ggexAvCbA+wUPgAMNz8L/xNFTL3bC63QTjV3HAU\npThFnBSOgP0ZbTxOVXZ0DdLoIF4R9s+OjNYpHBlblGC7sBkT3m4nhC89Nxy1wW+py0TswlfCJnxI\nOGe3aID2kTbQokWLFk3iL4dftLkOERIkAAAAAElFTkSuQmCC\n", + "text": "Z \u22c5\u27580\u27e9 = \u27580\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$Z_{0} {\\left|1\\right\\rangle } = - {\\left|1\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAAAZCAYAAAAhd0APAAAABHNCSVQICAgIfAhkiAAAAt1JREFU\naIHt2F+oFVUUx/HPuf65WGAheTUNNKF8NQgKRB8kSaong8CUQiFTkBAS6SFJEcVXkainpBCDIKjI\nCCINRRGEHhL0wRdJi8L+UFCBEqeHNVfHOXuOZ+45586V5gvD2Wft2Xuv3+xZe689NDQU2IrZdTsx\nJCprG8N1tHEDl/AVvsyuX7O650vaT8PrXfp/E7sS9oXYUsXRmuimr7K2kZKOnhUPeTvuwSNYjTV4\nF/fjED4uad/CrIT9UezHXiGkyA+Zs1OdlL4Ja5teMshz4i3/vGB/Akcz+/be/L3JPjyIq3e47xRW\n4mTF/utk4Npm4puEfQl+xjkRHd2YLsIyxWIRZbtL6lvibZrKlOlbbALaUsvRfDGzeebgC/wjouTv\nnlydGG1cw9whjlEXSW2pSfhebMLjjOITzMMzIhqGzVFsmIRx6qBDW9meME4Lh/Gk2JQvDMevDn5R\nHgkrRFJQhe/wUl8eDY4ObXeahP1Yh5dxfEhOpXhApMEpTmHZJPoyaDq0laWosBlviE3mg5x9FlYN\n2rMC63FkyGPURYe2skhYg7fxPvYU6tbh94G7douWCNdh7z3v4LEe723jVbGs9UNSW2oSluEjkcu+\nkqjfhKcxIytPw8M4Jp3aVmW12xODIstxsGKf57GxYNtasY9BkNRWnISHxMO8grXik0WeF0UU/CVE\nLBJL1gxcxFO43KejK6SP/eOcxuN9jlEXSW35PWG2OAuMiFT0j1zdAvGwj+DTzLYTn2XlGziDF3pw\nZE72O5aoW4Afe+hjqtK3tvfE2ncVZ7PrWzEZ7ey6Ls4Lo9n/Rbn2B/BhVh7Ba4X+d4jT9p+5/i7i\nRO6eLeK71FSnqK8WbQuzgfL57lsikhoq0i1F7cZP4hNGO2e7F7/17dH/kIlOwr8iXcuvffPFJ4+G\nSeQgtmXllpiAJfW5c/fS6qPtfeLA8zWWio3o8CCcaqjOaN0ONDQ0NDQMhP8A5tyQhDNNGmcAAAAA\nSUVORK5CYII=\n", + "text": "Z \u22c5\u27581\u27e9 = -\u27581\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$S_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAZCAYAAACmRqkJAAAABHNCSVQICAgIfAhkiAAAAxFJREFU\nWIXt2FuIVVUcx/HPNGMoE1qBNRoRGpHVQ/SgFYSXwEKofCmwgp566iVIiMKgE1pEShAEPgiCqFTY\ng1BgF3opCO3Bl6HQLkxRjEk3jSYvXcaH/z7MdrX39uyzz2gj5wuHfdZ/3X5n7bX+//869LloWIDH\nLrSICgr1DVV0GMITWJZ9n4138Cbewn0VfZ/GK4ntFryAMZzAaWzByaz+CG44x4/oFdOubw7exXO4\nJGd/FofFIlbRSsrzcAz35Gy7sC1ptxZLOxXZgFZS7rm+PQWd24zj8ZoCN+CHxLYak7g7ZxsUu2C6\naSXlrvXld1ebeWKl95RMPoqPOhQKl+JJfJDYP8afznYF/+B3XF5j/KY00le0gHdhlvLz/onwE51y\nLebjq8R+Srz1lYn9DTxSY/ymNNJXFEQOiJV+FYuwN7P9ldVvqilwJHv+UVA3IaJbnnEsrDlHExrp\nK1rAn0Ww2IT12WcCO4SvONalwIkSgUXH9UvcKAJWyodix3TKJB7C19OhryyN2SxSloexCneIlOZq\nPNiR7ClOZc9/C+pmldiXYGfJeKtrzn8uGukr8oFtDuF5LMdt+F4El9k1BY5W1A2L/CrPAnFMJmvO\n0y2N9KUL+EzJQJ9jd9ZpoKbA73AcVxTUXYYfE9uj2Vzni0b6hpLGK/FyyURzcVBk6XAnVojgMgcv\nKt81oyLa5ZmP6/BezjaYzfNbyTiwT30fuA7fVLTpib41+BvXF9RdhaPCH8KVwsG3X8AWcT1q00r6\nv44vEts6Ee3z6dID4uo43bSSck/0bRa50Nu4OWdfjP0iGrfZgO258nIRmcoELsJPuD8rD+B9/70S\nbiwT12NaSblrffkjPILbcSteE+H7F3Fkn8KnubZL8G2uPC7e1LAI/ceTecZERr9e7PS54kjld+2I\n6mPWSy64vn0iV2xzjfA15zMB/l9QlcZUMebsgDGcPX9tJmfm0e0CHhSBpc2I8CEni5tfvHS7gJ+Z\nishwL7Y2lzPzGOyy31Hxt9ca3CR24EumrkV9OmRA/J/Wp0+fPjORMyCOwRiXS9e4AAAAAElFTkSu\nQmCC\n", + "text": "S \u22c5\u27580\u27e9 = \u27580\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$S_{0} {\\left|1\\right\\rangle } = \\mathbf{\\imath} {\\left|1\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAFYAAAAZCAYAAACrWNlOAAAABHNCSVQICAgIfAhkiAAAAwpJREFU\naIHt2F+oVFUUx/GPXpO8lkWQXdMHKSUzTXxQKqK8QYWQ/6CHNIggS+ohEEHqSSH7Z9JbCEGiqdSb\nkcINTLwgIlqYIEIFpiIUWmlEUFF5e1jnNmemc840M+coXecLw72z99pr/WbtffZe+9BlxDMJT11p\nEW2QqXt0wYAxeBE78CE+wjMYjz1Ngq0t6LsbRzLav8P0Jn6rpjTdeYkdJxI5QczGE1iKiTiKX5oI\n7M1ouxHL8GniJ4vPMa+J7yopTXdeYt8XM7EBl1Ltr+P6JEgrLMB7mIMLBXZ78FiLvqtkgTZ1j8kw\nugFLGg1THMe+FgUOJh9C7NQcu7/ws1glP7UYowoGtak7a8Xej2vk73cHcKodlf+RD7CiQv9VUac7\nK7GHxQy8jU1qiR5mQ5Xq8C1urTjGLLyFAfGYl0Gd7qzE/oCXk//XiBV6Ee+IpX45+Bp35PTtxbEW\nPl9gWmp8L1aJ33heVD6l687aY4nZ3I3l6Mc9eAG34PESheQxA9tz+h7u0PezeFccyv3Y0qG/NP/o\nLqpjv8Q6PIC5OCsOtWtLFJLFJPFYDVXkf7c4gB/BFGwtyW+d7sbEvpQz6AR2JoNGlSQkjyeTWFXx\nTfL3OVE2ni7Jb53u9FZwnSgp3sgZOEFcDn5Nvt+LB/GHuFC8qvNV1pPEuVhgM4CbW/A5JC44J1Nt\nfVikdorf3tDfKoW6F+LPJEgjE3FO7ElwE75Sm5hN6q+D6wtEDMpfJYsxv2BsWazBjxiL2eIwo0Td\n6a3gIVGfvomZqfbb8DE2Yn/S9jwOiomQ9K8sEDVMj7iA9Ip3Do3Mk30fL5spotq5JN5/bGti35Hu\n7WIl9ouS5jN8gl24L8P2ldT3aeKRGw66usF+dvJDziR2Q+IJOKR2yvfh6TxxJTND3B434q5U+xXX\nPaBW68LkJGjVhf3/hqJyq4hT6g+q4ZVa9KLiqqLdxB5V/wqtD9/jt44VjRDaTewRtQoBHsXmzuWM\nHHraHHdOnJILcadYsa/h95J0XfWMErVgly5dunT5N38DiqamQGdaPfcAAAAASUVORK5CYII=\n", + "text": "S \u22c5\u27581\u27e9 = \u2148\u22c5\u27581\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$T_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAZCAYAAABw43NsAAAABHNCSVQICAgIfAhkiAAAAvNJREFU\nWIXt2E2IVlUcx/GPo43ju7YQqzFxFEJFMiVcREPUMnQr6SbSQDAGhISWLhRFaKeQEGRQiREVLSp7\nWfi20ZBSCEILq0ldpClWvqYtzr1xPN77zB3vHYex57s55/7uvf/ze849L//z0GbE04dxw22iBYX+\nRkX1hfguq/+AnzEVS3EDh3AFU/A4ujANF6MY47Aa25M2+vAkTqETX+GL6Jm5eApv38UPGwxD5m8z\nPsCkSFuAW9iVPLsQFwpiTMSrifYKjgmdDd04l5mN2VRmrEEa9dcR1ZfgBVyKtN6s/DJ577gwEgfi\nAWzAbmHUQj8OuvMrHsXiCjGbpJa/vPOewAFcT17IO29/oo/G7xXMrcCj2Jvon2MeeiLtEyyvELNJ\navnLO2863ioI3iusA78meic+rWBuSVaeSPSTWflMpN3A35hcIW5T1PKXd95enE4CzMXD7hx1cBl7\nKpibkZV/JXp+/VCiv4dVFeI2RS1/Y1oEzqfsvru2Fsxdxs0Sc1MTvR8zS2I9h9cH2f4RvDxU/qp0\nXtHIq8rVAmOEhVrBvW7BYBFfY1ENL0XU8tehnF5hKp9s8cxAHC/RJ2TlmURfKUyNe0Utf2Wd143Z\nwg5ch2MYL2wwMROz8mykjRFMF+WPQ0Utf2XTttWUHYuXhMy8Bx8LeVGZuVHCx/gp0vMENP7yy4R0\noIxnsa3F/SK+wdoW95v09x9vCCeLBQX31mNjVu/KGn0ku04z+E5cw7okxkF8lmjDccJo3N94/Ig/\n3H72zTnj9kz7feFsWGQOXsP3WVzCB7mGp6Nn5uDFKuZq0qi/fNp24CPhXNuDWZl+WJjjbwp53RRh\ne/8tinFaOKHAP/gzaWOrMIrfFRLux4TMPl5Pn8/aGGqG1d+crKH4z4Mt+LBu4JFIq1SliH7h/Hsr\n0ibgfGOORhCD7byrwvowPdJm4JfGHN3n7MSarD5aWPPKjlT3NUW76UA8iB3Cf3zz8S3eadLU/4Gx\nw22gTZs2bQbJv2c0thLwHEogAAAAAElFTkSuQmCC\n", + "text": "T \u22c5\u27580\u27e9 = \u27580\u27e9\n 0" + }, + { + "output_type": "display_data", + "latex": "$$T_{0} {\\left|1\\right\\rangle } = e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} {\\left|1\\right\\rangle }$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAlCAYAAACJdC37AAAABHNCSVQICAgIfAhkiAAABFZJREFU\neJzt2nuoFHUUwPGP3u2ppvmosJCLFFmYWNGL8hFlYRFlJIlRiAQKFZVESUUY9oaQ6J8C/UfsXaRF\nkAQRFoRID+hBZEaRPS0yzbKbZn+cWe64d2bv7r27d/de5gvDzP7mzG/OnDO/3znnN0tBQYE1rVag\noDl04FZ81WpFCprLO61WoK8Mb7UCBc2lcPAQp3DwEKdw8BCno9UKDAJuxtUYhc+xp7XqFBSkGNZq\nBYYgJVyGiXgKnbgFx1fI7cdi/DOQyrWKa7XPy3agn9t1GIOPMQmrMAOPY3pqP6XBemfasJQ6nojn\nReJ1QMSaw3BIcr4r2Y5MZP7D5did6uPQpO3VHCXmJf29WNH+PS7Bxlqfpon090U7ExOELUq4Q+Q6\nM4XTr0/2eTTNhrfjU1yKcUnbicLZb+rOuEu4AX/rmYWPTB6okmEiUenKOQ8r8xQbhDyGZanfCzFX\n2OfZXq5tqA3TDro42Tbit6TtnGT/mhixsA9rsSXVVo1HsQlLdc8GWWzHCTX01wo68GSNsiXh0LWY\nn7QtETaYIKbneumzDcsOnoRt+KnigpnJflNOZ7Vwj4hBy3qRe04Yph2ZjdNqlD0CvybyO8Sz/ylC\n3g5MFmGuHvpsw3IMnoHVGRfMFKP5s4r2EWI6r4V9NcrtEg9equOagWA09tYhv1uM3C58i2NFtkw4\n+iz8VacOfbZh2cHPZAhPEJneehGH0+zBQ3UqWQsbcCVeaULflZyCOThGlCqr8WOG3CwRoupha+r4\n54pzn9TZV70cZMNSFcFq03Oz+AjXyHbw+SIRrIcvcG9G+4MigVyCnaJWXYkbK+Qmi1E4mDjIhu3m\n4FFiGsviAyyvs7/dGW3340LxwpRnpgV4K0N2KsbidBwnRnyWXDtxkA17c/Au1Wu2RrNAJApZ7NX/\nf1Z04j5R9j0sas4O8fK8kCGfnpoXaX/nUmHDPAePwTRRMu0fAKXKdOKbJvY/J9kvlh1v81gu8pEr\n8HqjlWownVI2zHPwBaKEypuep+NsURK8hB8aoNh5eL/K+UbE4HLJUo9z4ZFka3d62DDPwdXi7zyx\norJIJCFv6DZcf5iLFVXOb5G/gpNHpU7b5ZcoS/G0nhXDYKKHDfMcPFssRW7JOLcCt4mpeyt+wVVY\n18vNy2u8Wd+gx+J31VfGuvR/+t6AO0UGXY7nw8TofE/7O7duG5YdPBx3iSl3qijGu8Sa6k68jXdx\nuIjNX6b62CpG8DrdX1TSzBfT60XJ77vFyP8ODyRtC/W+RtsINuMmsVC/RnzCG5Hce/MA3L8WGmrD\n9JeTc+WP6G0ibk1OjkeLDJvIRk8StZfk3B+pa6dgfEaf+3XHi/FieW+gKOFk8aL+O4D3rZWW2fAo\nMQWMTLWtEgvrBW1IvX+624WvxRtW5miNyaILmkBf/lX5Ic5I/Z6FlxujTkE7ME2s6JwqPmM90Vp1\nCprBKFFKjetFrqCgoKCgoKCgoGDo8T+sAvYh0KrrKgAAAABJRU5ErkJggg==\n", + "text": "\u2148\u22c5\u03c0 \n \u2500\u2500\u2500 \n 4 \nT \u22c5\u27581\u27e9 = \u212f \u22c5\u27581\u27e9\n 0" + } + ], + "collapsed": false, + "prompt_number": 13, + "input": "for gate in [H,X,Y,Z,S,T]:\n for state in [Qubit('0'),Qubit('1')]:\n lhs = gate(0)*state\n rhs = qapply(lhs)\n display(Eq(lhs,rhs))" + }, + { + "source": "

Symbolic gate rules and circuit simplification

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$\\left[Y_{0},Z_{0}\\right] = 2 \\mathbf{\\imath} X_{0}$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAAZCAYAAADkBdqeAAAABHNCSVQICAgIfAhkiAAABSZJREFU\naIHt2XnsXFMUB/DPb0FpiQpR0kYpiYoqGgSNoJbiD2JfSqwVqVgihEotsaRiiVDUEmIXaxDRWCcR\n4RdibdIosdZSFRJ7tc3PH+eNvnm/N/PmTec3kvb3TV5m7jnv3nPfuffcs1yGsFqiK9N+AmPwJU7H\nhhn+3/gpQxuGjVPtf/BjC3MZieEF7/yBX+rwevAmevEyLmlhDq1iffzWYt/h4tvTWIolyf+sfiW8\npWWEVFL/T8SLWIF+zMdlOX2mio/qx9eYU0ZgCl8kY/yMt/EQ7kme+QnvqibG2RZzW5xDWUxHH57D\nx7gN65Yc42g8LwyiXxjFDSn+/liU8H7BK5hUdqKVHNrcZNCTG/R7HDPLCkthApbjcnRneLsIS31e\nWGUROrWwZ+FmK+c0CovxhrDgspgp9DwrhzcH9yk+0eqikkPbKxH4Up0+M3BGqwITzMRFOfSx+AHv\nav6jOrGw3fjMwAU8U7ER1MMoLMPnal3kUbiihfFqUMmhdeErYVGbZXgH4rpVFYoXDFTSSCxIZGfl\nNkInFnYbsYBvZ+gTE/pDLY77ZNJ/atKeokXXlj328tCPR8WRc2yKvh2maU+Qcrfa4GNtPCMW9GB8\n3wYZ7cQiYVnZAKY/+c362V7N6bq6Ic/EzsLyz21tirWo1KHvICb9btLeBE9jRDuEZtCFh0UwMaWF\n/s1YbLdQdrNPnm/Po50k9HRBinYwrhfWvWPBvLrEEb9MbOyygdh/6G3yvY9EZDpJLPIssZN+b1Vw\nA1yN48VufXUQxu/Fa1ivRJ8VOEztybEi571zRGZwZ9LeHLviQuFuTtHYAvvF6TUbH+CvEnNsiEoD\n3sWJ4K9EpDoYOC2RceUqjNHJdCeN00X0PjlFuxabisDvN5EeNcJwPCXqBd9oLgtoCpUGvClC6auS\n1jTCAeIIeiCHd1KJcf6PhZ0gUp19MvRq4eE0segbNBhjLTyC8SL46seh7ZpgpQHv0kTYYFjrRPwq\njsi1M7ydcE2JsTrlY6vYVLiqyQ3e6RN5aD104S7snrT3FLp+seA76qJZH0vks7/jvRzeFjhV+KCd\ncYvwyVVMxEL5PmO08D+LcLgImtKYIT66WVlF6BElx7I+9giRU6exngj0pqtNfc4TxQsiJtkV54sF\n3MlAHc7Gs3grab8pKlkHYEtRlcuilB4qdeg9wqLm1eE/i32T/+NEKrBW0h4rP+cjctcPhcLG5vD3\nFlFiOmFvJIvOHcXdeFBYVxojhJKruAGfJP8PwiGZ9y+WX9CYIfQ2u478Ij3UoFKHPjkRklcr3kpY\nctr6F1rpb4YJC3lfrY/pFRvlD7XH+zrYXkSYS3FHCVl0bmFvEqdMJfPMF3OvYi7uFf729hR9DB7D\nO3XG31LofLGBlwSFeihKmo8SlvYAvsVxeF0or4pxonC/PEVbLBaHiPD2F9Fe+ig+IXnnO9yayOkT\nu3ueKDEuEXXoZmV1CuOFbmDrzLOhOEaruFFEu2eLNHG4+M63hMGMMjALOFb4129FQNknbt6qKNRD\nkY99IjNgHjbCnxna3waWCNdNJlnF/clTBs3KGmwsEBbXDD7FMRnabgV9HkueeijUQzNlriIsNPBe\nd4Tae9v91O7iwZS1JqBQD+1Y2PliB6UxWjjzKiZpvAPbKWtNQKEe2rGwy4Rf3CNpTxAXwulyYDtu\ngJqVtSagUA9ZH7tEFPq/xJElBE0TBYwdRAAxzcqbjnajnqweEWT0qJ+WrU7opM6HMIQhDGEIQxhC\ngn8B8whCyP5F+H8AAAAASUVORK5CYII=\n", + "text": "\u23a1Y ,Z \u23a4 = 2\u22c5\u2148\u22c5X \n\u23a3 0 0\u23a6 0" + }, + { + "output_type": "display_data", + "latex": "$$- \\left[H_{0},Y_{0}\\right] = - \\sqrt{2} \\mathbf{\\imath} \\left(- X_{0} + Z_{0}\\right)$$", + "png": "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\nQmCC\n", + "text": "\u23bd\u23bd\u23bd \n-\u23a1H ,Y \u23a4 = -\u2572\u2571 2 \u22c5\u2148\u22c5\u239b- X + Z \u239e\n \u23a3 0 0\u23a6 \u239d 0 0\u23a0" + }, + { + "output_type": "display_data", + "latex": "$$- \\left[Y_{0},Z_{0}\\right] = - 2 \\mathbf{\\imath} X_{0}$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAJUAAAAZCAYAAAA40GzsAAAABHNCSVQICAgIfAhkiAAABVhJREFU\naIHt2neoHFUUwOEvPmOMsUZDFBWNXVGxYRR7Q6Niw95rFIJdJPaKiooYCxKJLdiwtySIIrZYsMUS\nS+yCwS7YEo0x/nFmefMmu7Mz++bFLO4PBnbuzD3n7pkz55577tChQ8X0q0jOtrgRv+JMfIIFMvd8\ni1mZtqHonzr/Hn+2OIYFsWyB+6bjn0zbiTgES2Nj/NLiGP4LFhN2b7XvEpm2Gfgx+T1Q2CTNd/ir\nRX2l2AWjk9+DcRe+whzMxANYo06/F5J7ZuB5bNKLMRyfyJqFaXgC45Lj7uTad1gqR8YjWLIXY5hX\n9MMZeBkT8TauFC9WGY7EJPwt7DMdF6Wu7yWCwRz8gCexdi/GXYq0U9UYlgzmw5x+m2AKVq5gDBPw\nFtbMtC8gnOUPDG8io12c6jycr3s2WFVE1wkY0IK8K8WzOrHOtTtxfYtye0U9p4KXxGA3qnNtCB7G\nohXoXwSfinCdZQxmY58CctrBqRbDR3qmDXCOsPXuLchcTaQEb2Xaj8FpLcirhEZONUr80Wsy7QPE\nlLhiRfr3ENNBllMS/UUN0w5Otbn4TxMy7Tsk7de2KPfppP9myfmeuKJFWZXQyKmGiBxnup6J+1hs\nWqH+HcQbnGZvEaFuKCGnHZxqGWHPBzPt2wunGJtpz0a0Ruyb9L8NW+Fm1S3kWqKRUxGJ5BzsmJyf\njf36eDzDRQ71GLpK9GvmVP1EMlzm6IsHU+8/nSbsfESqbX+RL70m8q48+uMbYbd7FXfGuSi7WmiF\nuzBCLNlrK6/7+1DfKngc7+MgEa2q4jiMLNnnPvFgqyT7n7pEqjEV9yRta2F5UeJ5FQfjkhyZs0SU\nGi1WldnyzzwnL1INwm/JkQ3NVTNYrDa/UKxmlaUdpr96jMZPWD/VNkYsgoYKB2m2UFlKRPbZ4oVs\nmXSkWk+5eXQKTihw3+/4ACvhpFKjK8cA4RTLYgsRymtsLepmX/Sh/jJUaestcSp2wjup9gvFizwK\nP4vo3YiB4oU/SeS+u2EbPFdwfH1CXqQaKKrk2cSySvqJsP+XSFizPISFC8hpl5yqxjAx5W2QM96P\ncVWOjC6M1x3ldhO52T0NezRhXuRUm2EhUTHP4zixZTBIOGF6Obs4VtA4LF+OA0WF+JnMtdVFDWZm\nAT3NOAbHlrifKJ1cXbJPEZbEHSIZn5pqP0V3WWE7UYMaJ57Bmng3I2cMbtEd5SbhSzFdDhFbZ/Xo\njR0LkRepzhee3+htIpawE1PnDwknqXG/yAu2rdN3ZCL/ojrXBop6zuEF9bRLTrWQcNb1M+0r4uLU\n+e2YnPw+1Nw7Cpepn2vVCqmNnmkzO1ZCnlO9KOb27AZzmgf13CIYqWdx72hhnLMy/UYIZxufaV9O\nTIMvi32t2qZoMz3t4lR34HM8mzk+Equ8Gg+IledQEZFqDBM51lMN5G8gnOoz9Xc8cu2Y96B7Q5fY\nfHxP7Ov9LJziwgb3ryY2Lmt8i3VT57eK7YcZGR1XJfeug1eSY6qoy4wXb+4junfdm+lpB7YQxd7+\n4v+kj0F6ToWXigXSUThXTGdviI38DcV0eHpG/rGiDPK1iIivC/unybVjX+VUs7FzifsHi6JbjZnm\nrpAPFwZJ6yjrEEX0zO9MFvllEabggNT5r+LTnjxqX3bkkWvHvopUZZmm5yppUfGpRY0uEale6mM9\nHYqRa8f5xane1LNYuYKYz2vsLvbwelsdb6anQzFy7Ti/ONVkkXTX2FXP3fZH5X+XVZWeDsXItWOV\nnxPfJKrnp2utEnuBmKcHiA/OrqtobEX0nIzDxMpvI+31OfF/xbx6Xh06dOjQoUOHDv9L/gUVIj0T\n0uphewAAAABJRU5ErkJggg==\n", + "text": "-\u23a1Y ,Z \u23a4 = -2\u22c5\u2148\u22c5X \n \u23a3 0 0\u23a6 0" + }, + { + "output_type": "display_data", + "latex": "$$- \\left[H_{0},Z_{0}\\right] = \\sqrt{2} \\mathbf{\\imath} Y_{0}$$", + "png": "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\n5G+hAAAAAElFTkSuQmCC\n", + "text": "\u23bd\u23bd\u23bd \n-\u23a1H ,Z \u23a4 = \u2572\u2571 2 \u22c5\u2148\u22c5Y \n \u23a3 0 0\u23a6 0" + }, + { + "output_type": "display_data", + "latex": "$$\\left[H_{0},Y_{0}\\right] = \\sqrt{2} \\mathbf{\\imath} \\left(- X_{0} + Z_{0}\\right)$$", + "png": "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\n", + "text": "\u23bd\u23bd\u23bd \n\u23a1H ,Y \u23a4 = \u2572\u2571 2 \u22c5\u2148\u22c5\u239b- X + Z \u239e\n\u23a3 0 0\u23a6 \u239d 0 0\u23a0" + }, + { + "output_type": "display_data", + "latex": "$$\\left[H_{0},Z_{0}\\right] = - \\sqrt{2} \\mathbf{\\imath} Y_{0}$$", + "png": "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\nTAL/A1YPiWUFvKFfAAAAAElFTkSuQmCC\n", + "text": "\u23bd\u23bd\u23bd \n\u23a1H ,Z \u23a4 = -\u2572\u2571 2 \u22c5\u2148\u22c5Y \n\u23a3 0 0\u23a6 0" + } + ], + "collapsed": false, + "prompt_number": 14, + "input": "for g1 in (Y,Z,H):\n for g2 in (Y,Z,H):\n e = Commutator(g1(0),g2(0))\n if g1 != g2:\n display(Eq(e,e.doit()))\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$H_{0} X_{1} \\left(H_{0}\\right)^{2} CNOT_{0,1} X_{1} X_{0}$$", + "prompt_number": 15, + "png": "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\n", + "text": "2 \nH \u22c5X \u22c5\u239bH \u239e \u22c5CNOT \u22c5X \u22c5X \n 0 1 \u239d 0\u23a0 0,1 1 0" + } + ], + "collapsed": false, + "prompt_number": 15, + "input": "c = H(0)*X(1)*H(0)**2*CNOT(0,1)*X(1)**3*X(0)*Z(1)**2; c\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 16, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x48cd350>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 16, + "input": "circuit_plot(c, nqubits=2)" + }, + { + "source": "This performs a commutator/anticommutator aware bubble sort algorithm to simplify a circuit.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$H_{0} CNOT_{0,1} X_{0}$$", + "prompt_number": 17, + "png": "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\n/AdptX/0ndrekwAAAABJRU5ErkJggg==\n", + "text": "H \u22c5CNOT \u22c5X \n 0 0,1 0" + } + ], + "collapsed": false, + "prompt_number": 17, + "input": "gate_simp(c)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 18, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x3da1990>" + }, + { + "output_type": "display_data", + "png": "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\nDRHxyMelS5cwZsyYNp/zq+Oz2Wy4du2a6cfyJ4+0tDT4+vr+cA79/f3x9OlT02f71cOVx48fo6am\nBuPHj3e6fv36dQDAxIkTXe7DzL/PXvfbwoSEBNjtdjx+/Lhd25eUlKC6uhpjx47t4Ml07dy5E0lJ\nSfDx8UHPnj0RGBiInJwcREdHmz1au317vZWQkOB0vbi4GAD+ytdbgJd+cHfjxo2ora3Fnj17nK63\n9UHOlJQUDBgwwGPfTK6qqkJVVRWio6PRrVs3s8f5La7Ox5w5c5Cbm4t3794hLCys1XpERAQCAgLw\n/Pnzdu1fnXihyspKsVqtLt8MdnXYDx8+lODgYHn37p3mePQTZ+ejsbFRwsPDZdCgQU63KSkpEcMw\nZMGCBe3avzt4ZVwiItnZ2RIVFSVlZWWt1pz9sF++fCmRkZFy5MgRd4xHLbQ8HxUVFTJhwgSJiooS\ni8Ui3bt3l3Hjxsm+fftERCQvL0/i4+MlNDRULBaLWK1WmThxohQXF//W/t3Ja+MSEdm7d6/06dNH\njh49Ko2Njd//vOUPu6GhQQ4fPiwRERFy4MABM8bs9LT/8psVl1e+5mrp0qVL2Lp1K0pLS7F48WLE\nx8djxowZyMvLQ3FxMbKzs2Gz2ZCRkYHExESzx+2UvPU/S3p9XN88e/YMBw8exJMnT3Du3DkkJSUh\nNjYWS5cuxeDBg80er1NjXERKvDUur3ufi+hv4XWfLSTPZBiG2r6Dg4PV9t0WxkWm89ZXJrwtJFLC\nuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnj\nIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyL\nSAnjIlLCuIiU/A99uOsAb0dipwAAAABJRU5ErkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 18, + "input": "circuit_plot(gate_simp(c),nqubits=2)" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/smooth_dos.ipynb b/docs/examples/notebooks/smooth_dos.ipynb index 5c9f47e..b4d0adc 100644 --- a/docs/examples/notebooks/smooth_dos.ipynb +++ b/docs/examples/notebooks/smooth_dos.ipynb @@ -1,932 +1,200 @@ - - - dos - 2 - - - - - from sympy import * -import numpy as np -import math - python - 1 - 1 - - - - <h2>Strutinsky Energy Averaging Method</h2> - - - Define a callable class for computing the smooth part of the density of states $\tilde{g}_m(E)$ with curvature -correction of order $2M$. - - - class SmoothDOS(object): - - def __init__(self, energies): - self.energies = energies - - def gaussian_smoothing_func(self, M, x): - return (mpmath.laguerre(M,0.5,x**2)*exp(-x**2)/sqrt(pi)).evalf() - - def __call__(self, e, M=3, gamma=1.0): - return sum(self.gaussian_smoothing_func(M, (e-ei)/gamma)/gamma for ei in self.energies) - python - 2 - 1 - - - - def avgf(M, x): - return (mpmath.laguerre(M,0.5,x**2)*exp(-x**2)/sqrt(pi)).evalf() - python - 3 - 1 - - - - def smooth_dos(gamma, M, e, energies): - return sum(avgf(M, (e-ei)/gamma)/gamma for ei in energies) - python - 4 - 1 - - - - <h2>1D Simple Harmonic Oscillator DOS</h2> - - - def sho_smooth_dos(e): - """Compute the exact smooth DOS.""" - return 1 - python - 5 - 1 - - - - def sho_spectrum(nmax): - """Compute the first nmax energies of the 1D SHO.""" - return [n+0.5 for n in range(nmax)] - python - 6 - 1 - - - - sho_evalues = np.linspace(0.0,20,100) - python - 7 - 1 - - - - sho_dos = SmoothDOS(sho_spectrum(30)) - python - 8 - 1 - - - - sho_exact_dos = [sho_smooth_dos(e) for e in sho_evalues] - python - 10 - 0 - - - - sho_approx_dos = [sho_dos(e,M=3,gamma=10.0) for e in sho_evalues] - python - 23 - 1 - - - - plot(sho_evalues, sho_exact_dos, label="exact") -plot(sho_evalues, sho_approx_dos, label="approx") -title("Smooth part of the DOS for the 1D SHO") -xlabel("Energy"); ylabel("$g(E)$") -legend(loc=4) - python - 24 - 0 - - - pyout - &lt;matplotlib.legend.Legend at 0x7f1790f77990&gt; - 24 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVlvQUFBRWFDQVlBQUFBUEdCQlRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNq -V24vQi9EUGFaSDJSWW1VUXRHK1NCSlNtcHJNaEJoamlRcVowU3kyCjhZelo4Rmllc1QyTVpZeWxN -VlJDakxFVk01S2xRbExScGl4WnNwUzBhZDlPbmV2M2g4ZjVpVXBSM2VlY3Z1L1g2N3hlVHZmMnVl -OXoKbk8rNXJ2czY5ODFqakRFUVFnZ2hUWkRpT2dBaGhCRFJSb1dDRUVKSXM2aFFFRUlJYVJZVkNr -SUlJYzJpUWtFSUlhUlpWQ2dJSVlRMAppd29GYVZSUVVCQWNIUjI1anZIT3NyS3lNSEhpUktpcnEr -TzMzMzVyMFRKU1VsSzRmLzkrT3lkclgrZlBuOGVJRVNPZ3JLeU1sSlNVCmR0bUdKQnduMGpwVUtE -aDIvZnAxZlA3NTU5RFQwME8zYnQwd2ZQaHdKQ1ltZG1pR3JLd3NTRWxKUVNBUWRPaDJtK1BzN0l6 -ZHUzZS8KOC9MNzl1MkRxcW9xQ2dzTE1XZk9uRFpmZjNOZUhrOWxaV1dvcWFsaHdJQUJtREJoQXE1 -ZnYvN0d2TWVQSDRlRGd3UFUxTlJnYkd5TQpiNy85RmpVMU5jTHBsWldWV0xseUpRWVBIZ3dWRlJV -TUdEQUE2OWF0YTNMYnExZXZocCtmSDhyS3ltQmxaZlhlKzlLZXh3a0FacytlCkRXTmpZMGhMU3lN -NE9MakJ0T1hMbDBOV1ZoWXFLaXJRMHRLQ3JhMHRmdnJwSjVTVWxEUzVQc1lZTm16WUFDY25KNmlv -cUtCUG56NzQKNXB0dmhOTU5EQXh3N3R5NUJzczA5cVhvYmE5TFowT0ZnbU96WnMyQ21aa1owdFBU -a1oyZGpXWExsa0ZPVG82VExLTHcyMHZHR0FRQwpBWGc4M251dDU5S2xTN0MzdDRlVVZPTnY4ZmRk -ZjB1VWxKUWdQejhmVzdac2dZYUdCa2FNR0lIdzhIRGg5TjkvL3gxK2ZuNXdkM2RIClptWW1mdjc1 -WjF5NGNBR3VycTdDZVhidDJvV0xGeS9pd0lFREtDMHRSVmhZR0F3TkRSdmRIbU1NbHk5ZnhyQmh3 -OTRwYjJOZkZOcjcKT0ZsYlcyUDc5dTBZT0hEZ0c5dmk4WGp3OHZKQ2FXa3AwdFBUTVh2MmJNVEd4 -c0xhMmhybDVlV05yaThzTEF4NzkrN0Z0bTNiVUZwYQppcWlvS0F3Y09MREJPdCsyVHkxNVhUb2RS -amh6Ky9adDFyVnJWOGJuOHh1ZEhoZ1l5SVlORzhhV0xWdkdkSFIwbUsydExVdE5UV1dICkR4OW01 -dWJtek5iV2xwMCtmVm80ZjBWRkJkdStmVHN6TnpkbmJtNXVMQ3dzck1INlRwdzR3VnhkWFptNXVU -bmJzV01IcTZpb1lJd3gKcHFlbngzZzhIbE5TVW1MS3lzcnN5cFVyTENnb2lBMGZQcHl0V0xHQzZl -am9NSGQzZHhZYkc5dmt2dWpyNjdPdFc3Y3lPenM3MXJkdgpYN1pqeHc1V1cxdkxHR1BzK2ZQbnpN -UERnMmxwYVRGRFEwTzJkT2xTOXV6Wk0rR3lUazVPYk5XcVZjek56WTBwS3l1emFkT21NV2xwCmFk -YTFhMWVtcEtURTVzNmQyK2cycjEyN3hxWlBuODcwOWZYWmtpVkxXSFoyTm1PTXNaRWpSd3FYVjFa -V1pwbVptUTJXKyttbm54cGQKUDQvSFkvdjI3V05XVmxhc1g3OStiT1BHalEyV3UzanhJcHM2ZFNv -ek1EQmd5NWN2Wi9uNStZM21ldkRnQWVQeGVLeSt2cjdCMzcyOQp2Wm1lbmg1ampMR3lzakttcnE3 -TzFxOWYzMkNlM054Y0ppVWx4VUpEUXhsampBMGRPcFFGQndjM2VkeGZxcTZ1Wm9xS2lvekg0ekZG -ClJVVm1hR2pJR0dQc3laTW5iUEhpeFV4Zlg1L05tREdEWGI5K1hiak05T25UMllJRkM5akVpUk9a -aG9ZR08zZnVYSWNlcDFjTkh6NzgKamYxY3Rtd1o4L2IyYnZDMzh2SnlKaTh2ejVZc1dkTG9lcVpP -bmNwV3JGalI1SFlNREF6ZTJNK1g3M1hHM3Y2NkhEaHc0SzM3SW9tbwpVSENzWDc5K2JNS0VDU3c4 -UEp3VkZ4YzNtQllZR01pNmRPbkNmdjc1WjFaVVZNVDgvZjFaMzc1OW1hK3ZMOHZKeVdHQmdZR3Ni -OSsrCnd2bi8vZTkvczVFalI3TGJ0Mit6YytmT01RTURBM2Jod2dYR0dHUG56NTludlh2M1pwR1Jr -ZXpPblR2c2d3OCtZTXVXTFdPTU1aYVYKbGZYR0I5dkxiYTlZc1lJVkZSV3haY3VXQ2Y4ek5VWmZY -NThOR0RDQVhieDRrU1VuSnpNYkd4dTJjK2RPeGhoamhZV0Y3T2pSbzZ5cQpxb3Jkdlh1WHVidTdz -OFdMRnd1WGRYSnlZam82T3V6a3laT016K2N6UHAvUG5KMmQyZTdkdTV2Y1hrVkZCVk5TVW1LN2R1 -MWllWGw1CmJONjhlY3pKeVVrNC9XM0xOemFkeCtNeEZ4Y1hkdlBtVFhidDJqV21yS3pNN3Q2OXl4 -aGpMQ1VsaGVucTZyTEl5RWhXVkZURTVzNmQKeTZaT25kcm91cHNxRk1lT0hXTThIby9sNXVheXk1 -Y3ZNeDZQeHpJeU10NVlmdENnUWN6ZjM1OHh4dGlLRlN0WS8vNzkyYlp0MjRSWgptc1BqOGRpOWUv -ZUV6MGVNR01IbXpKbkQ4dkx5Mk83ZHU1bUtpZ3FycXFwaWpMMG9GSXFLaXV6QWdRT016K2V6NnVy -cURqMU9yMnBwCm9XQ01NVTlQVCtidTd0N29lb0tEZzFuUG5qM1pmLy83WDVhV2x2YkdkQU1EQTNi -MjdOa0dmd3NNREJTK3QxdjZ1blEyVkNnNDl1alIKSS9iRER6OHdQVDA5cHFTa3hPYlBuODhLQ3dz -Wll5L2V3Qm9hR3NJUG5FdVhMakVlajhkU1UxTVpZNHp4K1h5bW9LREFzckt5R0dPTQpXVmxac1lp -SUNPRzZGeTllek9iTm04Y1lZMnpldkhuc3h4OS9GRTZMakl4a2xwYVdqTEhHUDlnQ0F3T1p1cnE2 -OEc4NU9UbE1WbGFXCmxaZVhON29mQmdZR2JPblNwY0xuQVFFQmJQVG8wWTNPR3hrWnljek56WVhQ -bloyZG1aK2ZYNE41bkoyZDJSOS8vTkhrY1R0NjlDaHoKY0hBUVBxK29xR0FLQ2dxc29LQ2dSY3Mz -TnAzSDQ3RWpSNDRJbjd1N3U3TWRPM1l3eGw1OHUxNjFhcFZ3V2tGQkFkUFUxR3kwTmRoVQpvY2pQ -ejJjOEhvOGxKQ1N3UTRjT01SVVZsVWF6elpremgzMzg4Y2VNTWNacWFtcFljSEF3YzNCd1lMS3lz -dXlERHo1Z2x5NWRhbksvClhpMFUrZm41VEY1ZXZzRnJObXpZTUhiMDZGSEcySXRDNGVMaTB1UzZH -R3ZmNC9TcTFoU0s5ZXZYTTFOVDAwYlhVMTlmejQ0ZE84WmMKWFYyWm5Kd2NzN096WStIaDRjTHAr -dnI2VEVsSmlhbXBxUWtmQ2dvS3pOSFJrVEhHV3Z5NmREWjBqb0pqZW5wNldMTm1EUjQ5ZW9Tegpa -ODhpTWpJU216ZHZGazQzTlRVVjlyTnJhMnNEQUN3c0xBQUFNakl5ME5EUVFIWjJOc3JLeXBDYW1n -cGJXMXZoc3JhMnRyaDQ4U0lBCklEWTI5bzFwYVdscEtDc3JhektibVptWmNOczllL1pFWFYwZG5q -MTcxdVQ4MXRiV3duL2IyTmpneXBVckFGNzBmZi8wMDA5d2RIU0UKbXBvYUpreVlnSXlNakFiblJP -enQ3ZDlZWDNOOXliR3hzUTM2bmhVVUZHQmtaSVRZMk5nV0xkL1U5RmYzb1dmUG5zakp5UUVBbkQx -NwpGbXZXcklHNnVqclUxZFZoYUdpSXlzcEtKQ1VsTmJ1TlY4WEV4QUI0OFpycjZ1cWlyS3dNR1Jr -WmI4eDM1Y29WOU83ZEd3RFFwVXNYCitQcjZJalkyRnRuWjJlamZ2eittVFp2V292TkpjWEZ4Nk51 -M0x4UVZGWVYvR3pSb0VDNWR1aVRjLzhhTysrczYramk5VFV4TWpQRDQKdkU1S1Nncmp4bzFEWkdR -azh2UHpNWHIwYUV5Wk1rVjRUb1BINCtIRWlSTjQvdnk1OExGOSszYmg4V3pwNjlMWlVLRVFJZmIy -OXZEeQo4a0pVVkZTcmwxVldWb2FscFdXREVWT0ppWWtZTVdJRUFHRFlzR0Z2VExPd3NJQ3lzaktr -cGFVQnZQL0o3RmMvREs1ZnY0NmhRNGNDCkFBNGZQb3hUcDA0aE1EQVFCUVVGT0hMa0NOaUwxcXh3 -ZmhrWm1RYnJrcGFXYm5ZVTFyQmh3M0R0MmpYaDg0cUtDbVJtWmdxMytUWnYKVy8vclhGeGNzR1RK -a2dZZk1CVVZGYkN6czJ2eE9vNGRPd1pkWFYxb2EydkR3c0lDYW1wcU9IWHFWSU41Y25OemtaU1VK -SHpkWHFXbApwWVdmZnZvSmp4NDl3b01IRDk2NnZTRkRodUQrL2Z1b3FLZ1EvaTBoSWFIQkNKK1hy -MzFUdURoT0x6VldvQ29xS2hBWkdkbWk5U2tyCksrUEhIMzhFWXd6eDhmRk56dmZxKy9CZFhwZk9n -QW9GaDI3ZnZvMk5HemNpT3pzYjlmWDF1SDc5T3ZidjN3OWZYOTkzV3ArbnB5ZlcKcjErUE8zZnVJ -Q29xQ3FHaG9SZzNicHh3V21ob0tNNmZQNCs3ZCs5aS9mcjFHRDkrUElBWDM2SzZkKy8rWHNOeUdX -TTRjdVFJTGwrKwpqTlRVVlB6KysrOFlQWG8wQUNBbkp3ZHFhbXJRMU5URW5UdDNHaDNlK1hxUnNy -VzFSVkpTVXBQRnk4M05EZW5wNmRpelp3L3k4dkt3ClpNa1MyTm5ab1Z1M2JrMnVzelhyZjduOHkr -aytQajRJQ0FqQW1UTm5VRnRiaTVLU0VodytmTGpwQS9LLzVmbDhQczZjT1lNdnYvd1MKeDQ0ZEUv -Nm1RMWxaR2F0WHI4YWFOV3V3ZlBseTVPWGw0YSsvL29LSGh3Y2NIQnpnNWVVRkFQalBmLzZEeE1S -RTFOYldJaWNuQi8vOQo3Mzh4ZE9oUTlPM2J0OWx0QTRDbXBpYnM3T3p3MDA4L0lTOHZEMEZCUVVo -UFQ0ZTd1L3RiajA5SEhTYytuNC9xNm1vSUJBTFUxdGFpCnVycGF1SzVYdC9uczJUUHMyclVMWThh -TWdiYTJOcjcvL3Z0RzE3ZGx5eFpFUjBlanFxb0toWVdGMkxCaEE3cDM3dzVuWitlMzdpdlEKOHRl -bHM2RkN3U0ZsWldWY3ZYb1Y5dmIyME5EUXdNS0ZDekYxNmxSaG9XaHNLRjl6M1NuZmZmY2R4bzBi -aDA4KytRU3JWcTNDeG8wYgo0ZVRrQk9ERmVQaE5telpoOWVyVkdEZHVIRHc5UGJGbzBTTGhPcGN1 -WFlwWnMyWkJYVjBkVjY5ZWJmVzJlVHdldnY3NmF5eGN1QkRqCnhvM0RyRm16TUdQR0RBQ0FuNThm -ZXZYcWhmNzkrOFBIeHdkK2ZuNXZYYmUzdHpmdTNyMExMUzB0TEZpdzRJM3RLU29xNHZ6NTg0aU8K -am9hZG5SM2s1ZVd4Zi8vK0Z1ZDkyL3BmTHY5eUhhYW1wZ2dPRHNhZmYvNEpYVjFkV0ZoWUlDSWlv -c24xQXhBV3h6bHo1aUF2THc5UgpVVkVZTzNhc2NQb1hYM3lCUC83NEF4RVJFZWpmdno4V0wxNE1a -MmRubkQxN1ZqaVBsSlFVWnM2Y0NTMHRMYmk0dUtDK3ZoN2J0Mjl2CmNwdXY3L1ArL2Z1aG9LQUFP -enM3UkVWRjRkeTVjNUNYbDM5ai83ZzZUbTV1YmxCUVVFQmNYQnhtejU0TkJRVUZZWGNwajhmRG9V -T0gKb0tLaUFuTnpjK3pZc1FQMjl2WklUazV1MEozMktnVUZCZnpyWC85Q3o1NDlNV2pRSUdSbVpt -THYzcjFORHBOdTdEaTA1SFhwYkhqcwpmZnNiQ0FIUXAwOGY3TjY5R3k0dUxseEhJWVMwTVdwUkVF -SUlhUllWQ2tJSUljMmlyaWRDQ0NITjRxUkY0ZWZuSnh3aTJKaGJ0MjdCCndjRUJYYnQyeFMrLy9O -TEI2UWdoaEx5S2swSXhjK1pNbkQ1OXVzbnAzYnAxdzlhdFcvSHR0OTkyWUNwQ0NDR040YVJRT0Rv -NlFsMWQKdmNucFdscGFHRFJvRUdSbFpUc3dGU0dFa01iUXlXeENDQ0hOa25uN0xLS3JJKzRwUUFn -aGtxZzE0NWpFdmtYeDh2SUI5SGoveDdKbAp5empQSUNrUE9wWjBQRVg1MFZvaVhTamVaWWNJSVlT -MExVNjZucnk4dkJBZEhZMkNnZ0xvNmVsaHhZb1Y0UFA1QUFCL2YzL2s1dWJDCnpzNE9wYVdsa0pL -U3dwWXRXNUNSa1FFbEpTVXU0aEpDU0tmR1NhRUlEUTF0ZG5xUEhqM3crUEhqRGtwRFhtcnBGVGJK -MjlHeGJGdDAKUExrbDFyL001dkY0MUQxRkNDR3QxTnJQVHBFK1IwRUlJWVI3VkNnSUlZUTBpd29G -SVlTUVpsR2hJSVFRMGl3cUZJUVFRcHBGaFlJUQpRa2l6cUZBUVFnaHBGaFVLUWdnaHpSTHJxOGVT -enFkT1VJY25wVStRVlp5RlJ5V1BVRmhaaU9mVnoxRmNYWXpxdW1vSW1BRDFyQjVTClBDa295Q3BB -UVZZQlNySkswRlRRUkhmRjd0Qlcwb2F1aWk1MFZYUWhJMFZ2ZjBKYWduNlpUVVJXSmI4U1Z4NWZ3 -YlduMTVDVW00VGsKM0dUY2YzNGYyb3JhTUZBelFHL1YzdWltMEEzcVhkV2gzbFVkWFdXNlFscEtH -bEk4S1FpWUFGWDhLbFR3SzFCZVc0NkN5Z0k4cTNpRwpaK1hQOExqME1mSXE4cUNub2dkRERVT1lk -VGVEdVpZNXpMdS9lTWpMeW5POTY0UzBxOVorZGxLaElDS0RNWWJrM0dTRTNRN0QrYXp6CnVKWnpE -Vlk5ckRDNDEyRFk5TENCZFE5ckdHc2FvNHQwbC9mZVZuVmROUjRXUDBSbVVTYlM4OUp4SS84RzBw -Nmw0VTdoSFF6UUhJREIKdlFiRHZwYzlISHM3d2xERGtPNTlRaVFLRlFvaWRwSnprM0VnN1FDTzNE -d0NBQmh2UEI2dWZWMHh2UGR3S0hYcDJDc0dWL0dya1BJcwpCUW5aQ2JqeTVBcGlIc2FnbnRYRHNi -Y2pQdWp6QWR6NnVhR3ZldDhPelVSSVc2TkNRY1JDUlcwRkR0NDRpSUJyQWNndHo0V1BsUThtCm1r -NkVsYmFWU0gxN1o0d2hxemdMTVE5amNQYkJXWnk5ZnhieU12SndOM1NIaDVFSFhQcTRRRUZXZ2V1 -WWhMUUtGUW9pMGdvcUM3QTUKYmpOMkp1N0VVTDJoOExmMXh5akRVWkNXa3VZNldvc3d4cENlbjQ1 -L012L0JxY3hUdVBiMEdoeDdPMktjOFRpTUhUQVdQWlI2Y0IyUgprTGVpUWtGRVVtNTVMdFpkWG9m -ZzVHQk1NcHVFNzRaOUp4RmRPTVhWeFRoOTl6Uk8zRDZCMDNkUHcwVFRCSitZZklJSkpoUFFSNzBQ -CjEvRUllVU4yYVRaMFZYV3BVQkRSVWNtdnhNWXJHN0VwYmhOOExIMndhT2dpOUZMcHhYV3NkbEZi -WDRzTER5N2d5TTBqT0hickdBelUKREREUmRDSW1tVTJDZ1pvQjEvRklKNVpUbG9NakdVZndaOGFm -U005THgvTWZubE9oSU54ampDSDBSaWgrT1BzRDdIWHRzZmFEdGVpbgowWS9yV0IybVRsQ0g2S3hv -L0pueEo0N2VQSXArNnYwd3hYd0tKcHROUmsvbG5sekhJNTFBWVdVaGp0dzhndEFib1VqT1RjYllB -V014CnlYUVNYUHU2b3F0c1Z5b1VoRnNQaXgvQy82US9ucFkveGJhUHQyRjQ3K0ZjUitJVXY1NlBj -dy9PNGVDTmd6aHgrd1JzZTlwaXFzVlUKZkdMeUNkUzZxbkVkajBpUVNuNGxUdHc2Z2YxcCszSHgw -VVdNTWh3RkwzTXZqREljaGE0eVhZWHowVGtLd2hrQkUrQzMrTit3TW5vbApGam9zeEtLaGl5QXJM -Y3QxTEpGU3hhL0MzNWwvWTMvYWZweDdjQTV1ZmQzZ2JlbU5qd3cvZ3B5TUhOZnhpQmlxRTlUaC9J -UHoySmU2CkQrRjN3akZFZHdpbVdVeUQ1d0JQS01zcE43b01GUXJDaWR6eVhQZ2U4MFY1YlRrQ1BR -TXhRSE1BMTVGRTN2T3E1L2dyNHkvc1Q5dVAKRzNrM01ORnNJcnd0dkRGVWI2aElEUkVtb29jeGhx -VGNKT3hMM1lmUUc2SFFVOUhETkl0cG1HSStCZHBLMm05ZG5nb0Y2WEFSZHlNdwo4OFJNZkRid00v -emI2ZDkwRGFWMzhMRDRJUTZrSFVCSWFnaHE2bXZnYmVrTmJ3dHZHSFV6NGpvYUVTR1BTeDVqZjlw -K2hLU0dvSkpmCktYeWZ0UGFMR1JVSzBtRUVUSUIvWC9nM2dsT0NFVEkrQk00R3pseEhFbnVNTVZ4 -L2VoMzcwdlloTkMwVWZkVDd3TnZDRzVQTkowTlQKUVpQcmVJUURKZFVsT0hMekNFSlNRNUQ2TEJX -Zm1uNEtIMHNmRE5NYjlzNHRUeW9VcEVPVTFwVEMrNmczU210S2NYamlZV2dwYW5FZApTZUxVQ2Vv -UWVTOFMrOUwyNGRTZFV4aWhQd0xlbHQ0WTAzOE1YYmhRd3RYVzErTDAzZFBZbjdZZnArK2Voa3Nm -Ri9oWStzRER5S05OCnptVlJvU0R0THJNd0U1NEhQZUZzNEl3dG83YlFDZXNPVUZaVGhtTzNqaUVr -TlFTSk9ZbndIT0NKYVJiVE1MTFBTT3Jxa3hBQ0prRHMKNDFqc1Q5dVB2ekwrZ3JHbU1id3R2REhS -YkNJMDVEWGFkRnRVS0VpN3V2TDRDc1lmR285bFRzdndwZDJYWE1mcGxKNldQY1hCR3dleApQMjAv -bnBRK3dTU3pTWmhxTVJYMnZlenBKTGlZWVl3aDVWa0tEdDQ0aU5BYm9WRHVvb3hwRnRQZ1plSFZy -ai9TcEVKQjJzM2ZtWDlqCit2SHBDQjRYakkrTlB1WTZEZ0Z3cC9DTzhFT211cTRhazh3bVliTFpa -Tmowc0tHaUljSXk4alB3Wi9xZk9IampJR3JxYXpEWmJES20KV2t5RnBiWmxoMnlmQ2dWcEYzdFQ5 -bUpSNUNJY24zd2NEbm9PWE1jaHIyR01JZlZaS2c2bEg4S2g5RU9RNGtuaFU5TlA4YW5KcHhqWQpj -eUFWRFk0eHhuQ3o0Q1lPcHgvRzRZekRLSzR1eHFlbW44TEwzQXVEZXczdThOZEg1QXVGbjU4ZlRw -MDZoZTdkdXlNdExhM1JlWDc4CjhVY2NPblFJNnVycTJMOS9QNHlOalJ1ZGp3cEZ4OWllc0Ixckw2 -M0ZhZS9UTU5VeTVUb09lWXVYSTZmK3V2a1gvc3I0QzNXQ09ueGkKOGduR0RSaUhvWHBEeGVaS3Zl -S09NWVpyVDYvaDZNMmpPSHJ6S0NyNEZaaGdNZ0dUekNaaGlPNFFTUEdrT01zbThvWGk0c1dMVUZK -UwpncSt2YjZPRklqNCtIZ3NYTGtSWVdCZ2lJaUt3Zi85K25EeDVzdEYxVWFGb2Y5dml0MkY5N0hx -Y24zNWVJcTcyMnRtOGJHa2N2M1VjCngyNGRRMDVaRHNZTUdJUFJScVBoMXMrdHcyOE1KZW1xNjZw -eDRjRUZoTjBKUS9qdGNDaDJVY1FuSnAvZ0UrTlBNRWhua01pMDdFUysKVUFCQVZsWVd4b3daMDJp -aDJMcDFLK3JyNjdGZ3dRSUFRTDkrL1hEdjNyMUcxME9Gb24xUmtaQThENTQvUU5qdE1Kek1QSW00 -SjNFWQpxamNVSHh0K2pGR0dvOUMvVzMrUitTQVRKNDlLSHVIdnpML3hkK2JmaU1xS2dxVzJKVHdI -ZUdMc2dMRWllNFdDMW41Mml0eTR1dmo0CmVQajQrQWlmYTJscDRkNjllK2pYci9OY2VWUVU3RXpj -U1VWQ0F2VlI3NFA1UStaai9wRDVLSzBwUmVTOVNKeStkeG9icm15QWpKUU0KM1BxNndiV3ZLMFlh -aktUZnhqU2h1TG9ZMFZuUmlMd2ZpY2o3a1hoZTlSenVodTd3TXZkQ29HY2d1aWwwNHpwaW14TzVR -c0VZZTZQUwpOZmN0aDhkYi9zb3o1Lzg5eUhzeE93UzQvd3dFeHFEZk4xUWtKSmNLZ0FuL2V6QkFL -d083K2tWaVY1OFFRSDgyVUt3UFBIUUNIbzRBCkhqb0NGVysvaHBCRWtpOEU5R0lCL1JpZ3p3V2cy -MjBnMng2NDl5Rnc3eUR3ekFyN21CVDJjWjJ6V1ZIL2U3d2JrZXg2cXF1cnd6ZmYKZkFPQXVwNDZX -dVM5U0hnZjgwYWtUMlNIRGRVam9xZE9VSWZFbkVSY2ZIZ1JNWTlpY09uUkpYU1Q3d1lIUFFjTTZU -VUVnM3NOaHFXMgpwY1JkOFpaZnowZDZmanJpcytNUm54MlAyTWV4ZUZMNkJQYTY5bkRzN1lpUkJp -TXh1TmRnc2Q5dnNUOUg4ZkprOW9rVEp4QVJFWUVECkJ3N1F5ZXdPa3BDZEFJOERIamd5NlFnYzlS -MjVqa05FaUlBSmNEUC9KdUtleE9IS2t5dUl6NDdIM2FLN0dLQTVBTFk5YldIUjNRSVcKMmhhdzZH -NGhObDFXUlZWRnlNalBRTnF6TkNRL1MwWnliakxTODlMUlc3VTNCdmNhRERzZE93elZHd29MYlF1 -SisvVzd5QmNLTHk4dgpSRWRIbzZDZ0FOcmEybGl4WWdYNGZENEF3Ti9mSHdEd3d3OC80TkNoUTlE -UTBNQytmZnRnWW1MUzZMcW9VTFNkZTBYM01EeHdPQUpHCkIyRHNnTEZjeHlGaW9JcGZoZFJucWJq -KzlEclM4dEp3SSs4RzB2TFNJQ01sZy83ZCtxTi90LzR3MGpCQ0g3VStNRkF6Z0w2YVByUVYKdFR0 -c2VLNkFDWkJYa1lmSEpZK1JWWnlGZTgvdjRkN3plOGdzek1UTmdwdW80bGZCUk1zRWx0cVdzTmEy -aG5VUGExaHFXelo1RHdkSgpJdktGb2kxUm9XZ2JKZFVsY05qdGdEbUQ1K0FydTYrNGprUEVHR01N -enlxZTRVN2hIZHd1dUkzTW9rdzhMSG1Jck9Jc1pCVm40WG5WCmMyZ3Bha0ZIV1FmYWl0clFrTmRB -TjRWdTBPaXFBV1U1WlNoMVVZS2lyQ0xrWk9RZ0t5VUxXV2xaeUVqSlFNQUVZSXhCd0FTb3JxdEcK -ZFYwMXF1cXFVRjVianVMcVlwVFVsT0I1MVhQa1ZlUUpIMC9MbjBKVlRoVjZxbnJvcmRvYmhocUc2 -S2ZlRDRZYWhqRFJOSUdPc2s2bgpIZVZGaFlLMFNwMmdEaDRIUE5DL1czOXMvV2dyMTNHSWhLdXRy -OFd6OG1mSUtjdEJYa1VlaXFxS1VGaFZpS0txSXBUWGxnc2ZOZlUxCjROZnp3UmZ3VVMrb0I0L0hn -eFJQQ2p6dzBGV21LN3JLZElXOHJEeVV1aWhCcmFzYVZPVlVvZDVWSGQwVnV3c2ZQWlY3TnJqOUov -bC8KVkNoSXE4ejVldzd1RnQzRnlha25KYTRmbGhEU09MSC9IUVhwT0FHSkFUai80RHl1ekxwQ1JZ -SVEwaVJxVVhSU1Y1OWN4WmpRTWJqcwpkNWx1dDBsSUo5UGF6MDd1cmtwRk9KTmZrWTlKZjAzQ3Jq -RzdxRWdRUXQ2S0NrVW5VeStvaDljUkwweTFtQXBQWTArdTR4QkN4QUFWCmlrN20zMUgvQmdQRGYw -YitoK3NvaEJBeFFXY3dPNUd6OTg4aUtEa0lTZjVKZFBLYUVOSmkxS0xvSlBJcjhqSDkrSFRzSGJj -WDNSVzcKY3gySEVDSkdxRkIwQW93eHpEd3hFejZXUHZpZzd3ZGN4eUdFaUJrcUZKM0Exdml0eUsv -TXAvTVNoSkIzUWgzVkVpN3RXUnIrRS9NZgp4TTJLZzZ5MExOZHhDQ0ZpaUZvVUVxeTJ2aGEreDMy -eHpuVWQrbW5RSFFJSkllK0dDb1VFVzNWeEZYb3A5OEpNNjVsY1J5R0VpREhxCmVwSlFpVG1KMkpt -NEU4bit5WjMyVXNxRWtMWkJMUW9KVkYxWGplbkhwMk96KzJiMFZPN0pkUnhDaUppalFpR0Jsa2N0 -aDRtbUNhYVkKVCtFNkNpRkVBbERYazRSSmVwcUVQVWw3a1BabEduVTVFVUxhQkxVb0pFaWRvQTZm -aDMrT3RhNXJvYTJrelhVY1FvaUVvRUloUVg2OQoraXRVdTZyU0tDZENTSnVpcmljSjhlRDVBNnkr -dUJweG44VlJseE1ocEUxUmkwSUNNTWJ3NWFrdjhlM1FiMkdvWWNoMUhFS0loS0ZDCklRR08zRHlD -N0xKcy9NdmhYMXhISVlSSUlPcDZFblBsdGVWWUdMRVErejdaUjlkeUlvUzBDMnBSaUxsVkYxZGho -UDRJak5BZndYVVUKUW9pRW9oYUZHTHRWY0F1N3J1MUMycGRwWEVjaGhFZ3dhbEdJS2NZWTV2NHpG -MHRHTEtITGRCQkMyaFVWQ2pGMTlPWlI1SmJuWXM3ZwpPVnhISVlSSU9FNEtSVXhNREV4TVRHQmta -SVN0VzdlK01iMnNyQXovK3RlL1lHMXREUWNIQjl5N2Q0K0RsS0tydXE0YWl5SVhZY3VvCkxaQ1Jv -dDVEUWtqNzRxUlF6SjgvSHdFQkFUaDc5aXkyYmR1R2dvS0NCdE5EUTBQQjUvT1JuSnlNalJzMzRy -dnZ2dU1pcHNqYUVyY0YKbHRxV2NPbmp3blVVUWtnbjBPR0ZvcVNrQkFBd1lzUUk2T3ZyNDhNUFA4 -VFZxMWNiekhQKy9IbDRlSGdBQUJ3Y0hIRDM3dDJPamlteQpucFUvdy9yWTlWanZ0cDdyS0lTUVRx -TERDMFZDUWdLTWpZMkZ6MDFOVFJFWEY5ZGdIbmQzZDRTR2hxS3FxZ3BoWVdGSVMwdkRnd2NQCk9q -cXFTRnA2WVNtbVcwK0hVVGNqcnFNUVFqb0prZXpnbmp4NU1wNDhlUUluSnljTUdEQUFSa1pHa0pP -VGEzVGU1Y3VYQy8vdDdPd00KWjJmbmpnbkpnZVRjWkp5NGZRSzM1OXptT2dvaFJJeEVSVVVoS2ly -cW5aZm5NY1pZMjhWNXU1S1NFamc3T3lNcEtRa0FNSGZ1WEl3YQpOVXJZMWZTNjh2SnlEQjgrSE1u -SnlXOU00L0Y0Nk9ENG5HR013UzNFRForWWZJS3Y3TDdpT2c0aFJJeTE5ck96dzd1ZVZGVlZBYndZ -CitaU1ZsWVhJeUVqWTI5czNtS2VrcEFTMXRiV29yS3pFbWpWcjRPYm0xdEV4UmM2WmUyZnd1UFF4 -UGgvNE9kZFJDQ0dkRENkZFQ1czMKYjRhL3Z6LzRmRDdtelpzSFRVMU5CQVFFQUFEOC9mMlJrWkdC -R1RObVFDQVF3TUhCQVR0Mzd1UWlwc2dRTUFHK1Avczkxbnl3aHE3bgpSQWpwY0IzZTlkU1dPa3ZY -MDc3VWZkaVdzQTJ4ZnJGMHJ3bEN5SHRyN1dlblNKN01Kdit2cHE0R1M4NHZRY2o0RUNvU2hCQk8w -Q1U4ClJOejJoTzJ3MUxhRW83NGoxMUVJSVowVXRTaEVXRWwxQ2RaZVhvdnp2dWU1amtJSTZjU29S -U0hDTnNWdHdpakRVVERyYnNaMUZFSkkKSjBZdENoRlZXRm1JMytKL1Evem44VnhISVlSMGN0U2lF -RkhyWTlkam90bEU5Rlh2eTNVVVFrZ25SeTBLRVpSYm5vdGQxM2NoNVlzVQpycU1RUWdpMUtFVFJt -a3RyNEd2bEMxMFZYYTZqRUVJSXRTaEV6ZU9TeDlpWHVnOFpYMlZ3SFlVUVFnQlFpMExrckw2MEdw -OFAvQnphClN0cGNSeUdFRUFEVW9oQXBqMHNlNDgvMFAra3k0b1FRa1VJdENoR3k5dkphZkRid00y -Z3FhSElkaFJCQ2hLaEZJU0t5UzdNUm1oYUsKVzNOdWNSMkZFRUlhb0JhRmlGaDNlUjM4YlB6UVhi -RTcxMUVJSWFRQmFsR0lnSnl5bkJjam5iNm1rVTZFRU5GRExRb1JzRDUyUGFaYgpUMGNQcFI1Y1J5 -R0VrRGRRaTRKamVSVjVDRTRPeG8ydmJuQWRoUkJDR2tVdENvNXR1Ym9GazgwblEwZFpoK3NvaEJE -U0tHcFJjS2lrCnVnUUJpUUYwaFZoQ2lFaWpGZ1dIZGlUdXdDakRVWFNGV0VLSVNLTVdCVWVxK0ZY -WUhMY1paMzNQY2gyRkVFS2FSUzBLanV4SjJnTjcKWFh1WWR6Zm5PZ29oaERTTFdoUWM0TmZ6c1Q1 -MlBRNStlcERyS0lRUThsYlVvdURBd1JzSDBVZTlENGJvRHVFNkNpR0V2RldMV3hSOApQaDkvLy8x -TE0wVk1BQUFjVVVsRVFWUTN3c0xDVUZOVEEybHBhWlNWbFVGTFN3dnU3dTRZUDM0OGVEeGVlMmFW -Q0l3eHJJOWRqLys2Ci9aZnJLSVFRMGlJdEtoUnhjWEU0Y2VJRXZMeThzSDM3ZHNqSnlRbW5sWmVY -SXkwdERmUG56NGVmbngrc3JhM2JMYXdrT0hQdkRBREEKdlo4N3gwa0lJYVJsZUl3eDF0d01OVFUx -dUgzN05pd3RMZCs2c3JpNE9Bd1owbkhkS1R3ZUQyK0pMM0krMlBzQnBsdE5oNitWTDlkUgpDQ0dk -VkdzL085OWFLSUFYM1NXaTJLMGtib1hpK3RQcjhEem9pWHZ6N3FHTGRCZXU0eEJDT3FuV2ZuYTI2 -R1MybVprWmpoOC9qcWRQCm53SUE4dkx5Y09iTUdWUlhWNzlUeUppWUdKaVltTURJeUFoYnQyNTlZ -M3BWVlJXbVQ1OE9HeHNiT0RrNTRjU0pFKyswSFZHelBuWTkKRnRndm9DSkJDQkVyTFdwUmJObXlC -ZlBuejBkTlRZM3cvRVJGUlFYMjc5K1AyTmhZQkFVRnRXcWpOalkyMkxKbEMvVDE5ZUh1N281TAps -eTVCVS9QLzcrcTJjK2RPcEthbVl2djI3WGo0OENGY1hGeHc5KzdkTjFvMTR0U2llUEQ4QWV4MjJl -SCsvUHRRa1ZQaE9nNGhwQk5yCmx4YUZrcElTQUNBNk9ocXVycTRJQ1FrQmo4ZkQ3Tm16SVM4djM2 -cUFKU1VsQUlBUkkwWkFYMThmSDM3NElhNWV2ZHBnSGxWVlZaU1YKbFlIUDU2T29xQWdLQ2dvaTJm -WFZHcHV2YnNhc2diT29TQkJDeEU2TFJqM2R2bjBiTlRVMStQREREM0g3OW0zNCtQZ0lwN1hrSlBl -cgpFaElTWUd4c0xIeHVhbXFLdUxnNGVIaDRDUC9tNWVXRjhQQndhR3Bxb3E2dURsZXVYR25WTmtS -TmNYVXhRbEpDa1BwbEt0ZFJDQ0drCjFWcFVLUDc1NXgrY1BYc1dDZ29LVUZGUmdiYTJObXhzYkdC -b2FJZ3VYZHErdi8yMzMzNkRqSXdNbmo1OWlyUzBOSGg0ZU9EaHc0ZVEKa25xekFiUjgrWExodjUy -ZG5lSHM3TnptZWQ3WEg5Zi93RWRHSDBGWFJaZnJLSVNRVGlncUtncFJVVkh2dkh5THpsRmN1WElG -RGc0TwpLQzB0UldKaUl1TGo0eEVmSDQvMDlIU1VsNWNqT3p1N3hSc3NLU21CczdNemtwS1NBQUJ6 -NTg3RnFGR2pHclFvSmsyYWhGbXpac0hkCi9jVnZEZXp0N1JFY0hOeWdKUUtJeHptS09rRWQrdjNh -RDBjbUhjRWduVUZjeHlHRWtGWi9kcmFvUmVIZzRBQUFVRkZSZ1l1TEMxeGMKWElUVFZxNWMyYXFB -cXFxcUFGNk1mT3JkdXpjaUl5T3hiTm15QnZOODhNRUhDQThQaDV1Ykc3S3lzbEJVVlBSR2tSQVhS -ektPUUY5VgpuNG9FSVVSc3ZmZEZBZWZObTlmcVpUWnYzZ3gvZjMvdytYek1temNQbXBxYUNBZ0lB -QUQ0Ky90anlwUXB5TWpJd0tCQmc2Q2xwWVV0Clc3YThiMHpPYklyYmhPK0hmYzkxREVJSWVXY3Qr -bVYyUmtZR2JHeHNtbDBSWXd5blQ1L0dSeDk5MUtZQm15UHFYVTlYSGwrQjl6RnYKM0psekI5SlMw -bHpISVlRUUFPMHdQRlpPVGc0OEhnOGJOMjVFVEV4TWd4L1oxZGZYNC83OSt6aDI3QmptelpzSEV4 -T1RkMHN0b1RiRgpiY0o4Ky9sVUpBZ2hZcTFGSjdOZmlvaUl3TGx6NTFCUVVJQ0RCdzlpNk5DaEdE -cDBLTnpkM1RGczJMRDJ6TmtvVVc1UlBDcDVCSnNBCkcyVE56NEt5bkRMWGNRZ2hSS2hkVG1hLzVP -N3Vqa2VQSG1IQmdnVVlNMllNSWlNakVSRVJnZHpjWFBUcDB3YzZPanF0RGl5cHRpZHMKeDNTcjZW -UWtDQ0ZpcjlVM0xpb29LSUNLaWdyR2p4K1A3ZHUzNCt1dnY4YnExYXV4YTlldTlzZ25scXI0VmRp -VHRBZGYyMzNOZFJSQwpDSGx2clI3MU5IMzZkRXlkT2hVQ2dRRDkrL2VIbkp3Y2ZIMTk2ZnpFS3c2 -a0hZQzlyajM2YWZUak9nb2hoTHkzVmhjS0hSMGRoSVdGCklTc3JDOFhGeGJDd3NFQmVYaDZpbzZN -eGFkS2s5c2dvVmhoaitEWCtWMnh3MjhCMUZFSUlhUk90T3BrdGFrVHhaSFowVmpTK1BQVWwKMHI5 -S0Yvc0xHUkpDSkZPN1hEMld0Tnl2OGI5aTd1QzVWQ1FJSVJLRENrVWJlbFR5Q05GWjBmQ3g4bm43 -eklRUUlpYW9VTFNoSFlrNwo0R1BsQTZVdVNseEhJWVNRTnZQZTEzb2lMMVRYVldOUDBoNWNtbm1K -NnlpRUVOS21xRVhSUmc2bkg0WjFEMnNZZFRQaU9nb2hoTFFwCktoUnRaRnZDTnZxQkhTRkVJbEdo -YUFQWGNxN2hhZmxUZUJoNXZIMW1RZ2dSTTFRbzJzQzJoRzM0d3ZZTHVrb3NJVVFpMGNuczkxUlkK -V1lpak40OGljMjRtMTFFSUlhUmRVSXZpUFFVbEIySE1nREhRVXRUaU9nb2hoTFFMS2hUdlFjQUUy -Skc0QTE4TitvcnJLSVFRMG02bwpVTHlIYy9mUFFhbUxFb2JvRHVFNkNpR0V0QnNxRk85aDU3V2Qr -R0xRRjNSZEowS0lSS05DOFk1eXluSncvc0Y1VExPWXhuVVVRZ2hwClYxUW8zdEh1NjdzeDJXd3kz -ZXFVRUNMeGFIanNPNmdUMUdIWDlWMDRNZVVFMTFFSUlhVGRVWXZpSGZ5VCtROTBsSFZnMDlPRzZ5 -aUUKRU5MdXFGQzhnNWNuc1FraHBET2dRdEZLV2NWWmlIc1NoMGxtZEg5d1Fram5RSVdpbFhZbjdZ -YTNwVGNVWkJXNGprSUlJUjJDVG1hMwpRcDJnRG51UzlpRENPNExyS0lRUTBtR29SZEVLcCs2Y2dy -NnFQc3k3bTNNZGhSQkNPZ3duaFNJbUpnWW1KaVl3TWpMQzFxMWIzNWkrClljTUcyTmpZd01iR0Jo -WVdGcENSa1VGeGNURUhTUnZhZFgwWFp0dk81am9HSVlSMEtCNWpqSFgwUm0xc2JMQmx5eGJvNit2 -RDNkMGQKbHk1ZGdxYW1acVB6bmp4NUVwczNiOGJaczJmZm1NYmo4ZEJSOFIrVlBJSk5nQTBlZi9P -WXprOFFRc1JhYXo4N083eEZVVkpTQWdBWQpNV0lFOVBYMThlR0hIK0xxMWF0TnpuL2d3QUY0ZVhs -MVZMd203VW5hQXk5ekx5b1NoSkJPcDhOUFppY2tKTURZMkZqNDNOVFVGSEZ4CmNmRHdlUE0yb3BX -VmxZaUlpTUQyN2R1YlhOL3k1Y3VGLzNaMmRvYXpzM05ieGdVQTFBdnFzVHRwTjA1Nm5XenpkUk5D -U0h1TGlvcEMKVkZUVU95OHYwcU9ld3NQRE1YejRjS2lwcVRVNXo2dUZvcjJjdm5zYXZaUjd3YXFI -VmJ0dml4QkMydHJyWDZKWHJGalJxdVU3dk92Sgp6czRPdDI3ZEVqNVBUMC9Ia0NHTjM4L2g0TUdE -SXRIdHRPdjZMbncyOERPdVl4QkNDQ2M2dkZDb3Fxb0NlREh5S1NzckM1R1JrYkMzCnQzOWp2cEtT -RXNURXhNRFQwN09qSXpid3RPd3BvaDlHWTRyNUZFNXpFRUlJVnpqcGV0cThlVFA4L2YzQjUvTXhi -OTQ4YUdwcUlpQWcKQUFEZzcrOFBBRGgrL0RqYzNkMGhMeS9QUlVTaHZTbDdNY0ZrQXBTNktIR2Fn -eEJDdU1MSjhOaTIwdDdEWXhsajZQOWJmNFNNRDZIYgpuUkpDSkliSUQ0OFZKekVQWXlBbkxRZjdY -bTkyalJGQ1NHZEJoYUlaZnlUOWdjOEdma2IzeENhRWRHcFVLSnBRWEYyTThOdmg4TGIwCjVqb0tJ -WVJ3aWdwRkV3NmtIWUM3b1RzMEZScS90QWdoaEhRV1ZDaWE4TWYxUHpETFpoYlhNUWdoaEhOVUtC -cVI5RFFKaFZXRmNPM3IKeW5VVVFnamhIQldLUmdRbUIyS205VXhJOGVqd0VFS0lTRi9yaVF2VmRk -VTRrSFlBaWJNVHVZNUNDQ0VpZ2I0eXZ5YnNkaGlzZTFqRApRTTJBNnlpRUVDSVNxRkM4WmsvU0h2 -alorSEVkZ3hCQ1JBWVZpbGM4TG5tTWhKd0VqRGNlejNVVVFnZ1JHVlFvWGhHY0VvekpacE1oCkw4 -dnRoUWdKSVVTVVVLSDRId0VUSURBNWtMcWRDQ0hrTlZRby9pZm1ZUXdVWkJWZzI5T1c2eWlFRUNK -U3FGRDhUMkJ5SVB5cy9lZ0MKZ0lRUThob3FGQURLYXNwdzR0WUpUTE9jeG5VVVFnZ1JPVlFvQUJ6 -T09BeG5BMmQwVit6T2RSUkNDQkU1VkNnQUJDVUhZWWIxREs1agpFRUtJU09yMGhlSnUwVjNjTHJ3 -TkR5TVBycU1RUW9oSTZ2U0ZJamdsR0ZNdHBrSldXcGJyS0lRUUlwSTZkYUdvRjlRak9Ea1lNNjFu -CmNoMkZFRUpFVnFlK2V1ejVCK2VocWFBSlMyMUxycU1RUWdCb2FHamcrZlBuWE1lUUdPcnE2aWdx -S25ydjlYVHFRaEdVUWlleENSRWwKejU4L0IyT002eGdTbzYxK0Y5WnB1NTVLcWt0dzZzNHBUTFdZ -eW5VVVFnZ1JhWjIyVUJ6T09BeVhQaTdRVk5Ea09nb2hoSWkwVGxzbwpnbE9DTWQxcU90Y3hDQ0ZF -NUhYS1FuRzM2QzV1Rjl6R3gwWWZjeDJGRUVKRVhxY3NGSHRUOXRKdkp3Z2hJbXZHakJsWXVuUXAx -ekdFCk9Da1VNVEV4TURFeGdaR1JFYlp1M2Ryb1BBa0pDYkN6czRPSmlRbWNuWjNiYk5zQ0pzRGVs -TDNVN1VRSUlTM0ZPR0J0YmMyaW82TloKVmxZV0d6QmdBTXZQejI4d1hTQVFNSE56Y3hZWkdja1lZ -MjlNZitsZDRwKy9mNTVaN3JCa0FvR2c5Y0VKSWUyS280K2tGaWtxS21LYgpObTFpcHFhbWJOU29V -U3dpSW9JVkZoWXlYVjFkRmg0ZXpoaGpyS3lzalBYcjE0K0ZoSVF3eGhnN2VmSWtzN2EyWmlvcUtz -elYxWlVGCkJ3YzNXT2V0VzdmWXQ5OSt5M3IxNnNYMDlQUllVRkFRKy8zMzM1bXNyQ3pyMHFVTFUx -SlNZbVBIam4zbnpFMGR6OVllNXc1L1ZZcUwKaTVtMXRiWHcrZHk1YzluSmt5Y2J6Qk1mSDgrbVRw -MzYxblc5eTV0cStySHA3SmZZWDFxOUhDR2svWWx5b1JnL2ZqeWJOMjhleTgzTgpaVEV4TVV4SFI0 -ZGxabWF5TTJmT3NCNDllckM4dkR6MjJXZWZzWWtUSndxWGlZcUtZamR1M0dCMWRYWHM5T25UVEZs -Wm1XVm1aakxHCkdPUHorYXhidDI1czNicDFyS2lvaUJVV0ZyTGs1R1RHR0dNelpzeGdTNWN1ZmUv -TWJWVW9PcnpyS1NFaEFjYkd4c0xucHFhbWlJdUwKYXpCUFJFUUVlRHdlSEIwZE1XYk1HRVJFUkxU -SnRzdHJ5M0g4MW5GTXM2RDdUaEJDV3E2c3JBeHhjWEZZdTNZdHRMVzE0ZWpvaUlrVApKK0xZc1dO -d2MzUER4SWtUNGVMaWd0T25UeU1nSUVDNG5KT1RFOHpNekNBdExRMTNkM2Q0ZW5yaXhJa1RBSURJ -eUVqbzZ1cml1KysrCmc3cTZPalEwTkdCbFpTVmNsb25RRHc5RjhwZloxZFhWU0U1T3h0bXpaMUZa -V1FrM056ZmN1SEVEOHZMeWI4eTdmUGx5NGIrZG5aMmIKUFo5eDlPWlJPT283UWx0SnV4MVNFMEk2 -UWx2ODJMaTFuOEdYTGwxQ2ZuNCtkSFIwaEgrcnI2L0h5SkVqc1dqUklueisrZWY0N2JmZgpzSGp4 -WXFpcnF3dm5TVTlQeDRZTkd4QWJHNHZjM0Z6VTF0WkNTdXJGOS9NTEZ5NWc2TkNoVFc2ekxlKzJH -UlVWaGFpb3FIZGV2c01MCmhaMmRIUll0V2lSOG5wNmVqbEdqUmpXWXg4SEJBVFUxTmVqUm93Y0FZ -TkNnUVlpSmlZRzd1L3NiNjN1MVVMek4zcFM5OExmMWY3ZmcKaEJDUndNVVhiUWNIQjJocGFTRXJL -d3RkdW5ScE1LMit2aDZ6WjgrR3I2OHZ0bTNiaGhrelpxQmZ2MzRBZ0crLy9SYURCZzFDZEhRMApl -dlRvQVc5dmIyRkx3Y1hGQmQ5Ly8zMmoyNU9XbG9aQUlHaXovSzkvaVY2eFlrV3JsdS93cmlkVlZW -VUFMMFkrWldWbElUSXlFdmIyCjlnM21HVEprQ0tLam8xRlpXWW1pb2lJa0pTVmgyTEJoNzdYZHh5 -V1BrWlNiaERFRHhyelhlZ2doblkrYW1ocUdEeCtPbjM3NkNROGYKUGtSOWZUMXUzTGlCaElRRXJG -NjlHdExTMGdnTURNU2lSWXZnNitzci9KRFB5Y21CcHFZbVZGVlZFUllXaHJDd01PRTZYVjFka1pP -VApndzBiTnFDb3FBaUZoWVZJU1VrQkFOamEyaUkxTlJWMWRYV2M3Ty9yT0JrZXUzbnpadmo3KzhQ -VjFSVmZmZlVWTkRVMUVSQVFJT3piCjY5YXRHMmJPbklsQmd3WmgvUGp4V0xseUpaU1VsTjVybS90 -UzkyR2k2VVIwbGVuYUZydEFDT2xrZHU3Y0NYMTlmWHo2NmFmUTB0TEMKN05temNlSENCV3pldkJs -NzkrNEZqOGZEOTk5L0R4NlBoM1hyMWdFQWZ2bmxGL3o1NTUvbzNiczNRa05EOGNVWFh3alhKeU1q -ZzRzWApMeUk3T3h0bVptYXdzYkZCYW1vcUFHRHMyTEdRa3BKQ3IxNjk4TWtubjNDeXY2L2lNVkU2 -WTlKS1BCNnZSU2Q4R0dNdzJXYUNQWjU3Ck1GU3Y2VDVCUWdpM1d2cC9tclJNVThlenRjZTVVL3d5 -T3lFbkFmV3NIZzY2RGx4SElZUVFzZE1wQ2tWd1NqQjhMWDNiZEJRQklZUjAKRmlJNVBMWXQxZFRW -NE5DTlEwajRQSUhyS0lRUUlwWWt2a1h4ZCtiZk1PdHVoajdxZmJpT1FnZ2hZa25pQzhYZTFMM3d0 -ZlRsT2dZaApoSWd0aVM0VUJaVUZPUC9nUENhYVRlUTZDaUdFaUMySkxoU0hiaHpDeDBZZlEwVk9o -ZXNvaEJBaXRpUzZVRkMzRXlHRXZEK0pMUlMzCkMyN2pVY2tqdVBWejR6b0tJWVNJTllrdEZDR3BJ -ZkF5OTRLTWxNU1BBQ2FFa0hZbGtZVkN3QVFJU1EyQnJ4VjFPeEZDeEllb1hBVHcKZFJKWktHSWV4 -a0JWVGhWVzJsWnZuNWtRUWxwZzdkcTFNRFEwUkxkdTNUQnQyalJjdkhnUkFCQVVGSVRodzRkanla -SWwwTkhSd2VUSgprM0h6NWszaGNzN096bGkxYWhWY1hGeWdxNnVMdFd2WG9xS2lBZ0NRbFpVRktT -a3BIRDU4R09ibTVuQnplOUZWSGhZV0JqYzNOMWhZCldHRG56cDJvckt3RUFIaDRlT0RiYjc4VnJu -dktsQ21ZTld0V3UrKzdSUGJMdkd4TjBDVTdDQ0Z0eGREUUVKY3VYWUtxcWlwMjd0eUoKcVZPbjR2 -SGp4d0NBK1BoNERCa3lCQ2twS2Rpelp3OWNYVjJSblowdFhQYTMzMzdENzcvL0RsTlRVL2o3KzZP -a3BBUnIxcXdSVGo5dwo0QURDd3NMUXExY3ZYTGh3QVhQbnpzWHUzYnVocjYrUEw3LzhFcm01dVZp -K2ZEbjI3TmtEUzB0TGVIaDRJQ2NuQjRtSmljSkxrN2VyCjk3Z2RLK2NhaTE5Ulc4SFUxcXF4N05K -c0RoSVJRdDZIdUh3a0NRUUNwcWVueHhJVEUxbGdZQ0NUazVOalZWVlZ3dWs2T2pyczJyVnIKakRI -R25KeWNtSStQajNCYVJFUUVNemMzWjR3eDl1REJBOGJqOFZoTVRJeHcrcng1ODlpUFAvNG9mQjRa -R2Nrc0xTMkZ6NDhjT2NKMApkWFdacHFZbXUzejVjck01bXpxZXJUM09FdGVpQ0xzZGhzRzlCa05I -V2VmdE14TkN4QTV2eGZ2M0ZMQmxyYitVZVZoWUdJS0NnaEFYCkY0ZXFxaXFVbDVjakpTVUZVbEpT -TURJeVF0ZXUvMyt2R3hzYkcxeTVjZ1VEQnc0RWo4ZUR0YlYxZzJucDZlbkM3aWNBRFc3ZUZoc2IK -aXg5KytFSDQzTmJXRm1scGFTZ3JLNE95c2pKR2p4Nk5PWFBtd05qWXVObGJxYllsaVNzVUlha2g4 -TEgwNFRvR0lhU2R2TXVIL1B1cQpxS2pBNTU5L2p0OS8veDFCUVVGUVZsWkduejcvZi8yNHpNeE1W -RlZWUVY1ZUhnQ1FsSlNFbFN0WHZzakxHSktTa29UelhyOStIV1ptClpsQlVWRVIrZmo2QUZ6Y3hl -bW5Zc0dGSVRFekVoQWtUQUFDSmlZbXdzTENBc3JJeUFHRHg0c1V3TlRWRlZsWVdEaDQ4aUNsVHBy -VHYKemtQQ1RtWS9LMytHeTQ4dVk3enhlSzZqRUVJa1NGbFpHY3JMeTlHelowOElCQUtzV2JNR09U -azV3cHYvQ0FRQ0xGdTJEUG41K1ZpLwpmajBBWU9EQWdjTGx6NTA3aDFPblR1SCsvZnZZc0dFRHhv -eHArcGJNbnA2ZUNBME54Zm56NTNIMzdsMnNYNzhlNDhlLytFeUxpWWxCClVGQVFRa0pDRUJRVWhM -bHo1eUluSjZjZDkvd0ZpU29Vb1RkQzRXbnNDY1V1aWx4SElZUklrQjQ5ZW1ETm1qWHc4ZkdCbFpV -VmFtdHIKTVh6NGNQQjRQUEI0UE5qYjIwTldWaFpXVmxaSVNFakFtVE5uaE12eWVEeDgvZlhYMkxo -eEl4d2RIVEZ5NUVnc1hyeTR3ZlJYT1RzNwpZOU9tVFZpOWVqWEdqUnNIVDA5UGZQZmRkeWd0TGNY -MDZkT3hiZHMyOU96WkU4T0hEOGVzV2JQZzUrZlg3dnN2VWJkQ3RmM2RGdXRjCjE4RzFyeXVIcVFn -aDcwb2NiNFVhRkJTRTNidDNDNGZMdm03a3lKSHc4Zkhwa0EvMDE5R3RVRitUa1orQlorWFBNTkpn -Sk5kUkNDR2sKQVhFcmZxK1RtRUlSa2hxQ2FaYlRJQzBselhVVVFrZ244ckw3NlczemlET0o2SG9T -TUFIME4rdmpuMm4vd0x5N09kZXhDQ0h2U0J5Nwpua1FaZFQyOUlpb3JDcG9LbWxRa0NDR2tIVWhF -b2FEZlRoQkNTUHNSKzBKUnlhL0U4VnZINFdYdXhYVVVRZ2lSU0dKZktFN2NPZ0g3Clh2Ym9xZHlU -NnlpRUVDS1J4UDRTSHRUdFJJamtVRmRYRi9zUlFxSkVYVjI5VGRZajlxT2UxTmFxNGNrM1Qralgy -SVFRMGtKaU1lb3AKSmlZR0ppWW1NREl5d3RhdFc5K1lIaFVWQlZWVlZkalkyTURHeGdZLy8veHpr -K3NhTzJBc0ZZazJFaFVWeFhVRWlVSEhzbTNSOGVRVwpKNFZpL3Z6NUNBZ0l3Tm16WjdGdDJ6WVVG -QlM4TVkrVGt4T1NrcEtRbEpTRUpVdVdOTGt1Nm5acU8vU2ZzZTNRc1d4YmREeTUxZUdGCm9xU2tC -QUF3WXNRSTZPdnI0OE1QUDhUVnExZmZtSytselNLNlpBY2hoTFN2RGk4VUNRa0pNRFkyRmo0M05U -VkZYRnhjZzNsNFBCNWkKWTJOaGJXMk5oUXNYNHQ2OWUwMnVqeTdaUVFnaDdVc2tSejBOSERnUWp4 -OC9ocXlzTElLRGd6Ri8vbnljUEhteTBYbHBoRVRiV3JGaQpCZGNSSkFZZHk3WkZ4NU03SFQ3cXFh -U2tCTTdPenNJN1BzMmRPeGVqUm8yQ2g0ZEhvL016eHRDalJ3ODhldlFJY25KeUhSbVZFRUlJCk9P -aDZVbFZWQmZCaTVGTldWaFlpSXlNYjNDOFdBSjQ5ZXlZOFJ4RWVIZzVMUzBzcUVvUVF3aEZPdXA0 -MmI5NE1mMzkvOFBsOHpKczMKRDVxYW1nZ0lDQUFBK1B2NzQ2Ky8vc0tPSFRzZ0l5TURTMHRML1BM -TEwxekVKSVFRQWdCTURFVkhSek5qWTJObWFHaklmdjMxVjY3agppRDE5ZlgxbVlXSEJySzJ0bVoy -ZEhkZHh4TXJNbVROWjkrN2RtYm01dWZCdnBhV2xiT3pZc1V4UFQ0OTVlbnF5c3JJeURoT0tsOGFP -CjU3Smx5MWl2WHIyWXRiVTFzN2EyWnYvODh3K0hDY1hMbzBlUG1MT3pNek0xTldWT1RrNXMvLzc5 -akxIV3YwZkY4bHBQTGZrZEJtazUKSG8rSHFLZ29KQ1VsSVQ0K251czRZbVhtekprNGZmcDBnNy90 -MkxFRHZYdjNSbVptSm5SMWRiRno1MDZPMG9tZnhvNG5qOGZEd29VTApoYityR2pWcUZFZnB4SStz -ckN3MmJkcUU5UFIwL1BYWFgxaXlaQW5LeXNwYS9SNFZ1MExSMHQ5aGtOWmg0bnNsRjA0NU9qcStj -VDJkCitQaDR6Sm8xQzNKeWN2RHo4NlAzWnlzMGRqd0JlbisrcXg0OWVzRGEyaG9Bb0ttcENUTXpN -eVFrSkxUNlBTcDJoYUlsdjhNZ3JjUGoKOGVEaTRvSng0OFloTEN5TTZ6aGk3OVgzcUxHeE1iWFMy -c0RXclZzeFpNZ1FyRnUzRG1WbFpWekhFVXQzNzk1RmVubzZCZzhlM09yMwpxTmdWQ3RMMkxsKytq -SlNVRkt4WnN3WUxGeTVFYm00dTE1SEVHbjM3YlZ0ZmZ2a2xIang0Z0lpSUNOeTdkMDg0OElXMFhG -bFpHU1pQCm5veE5telpCU1VtcDFlOVJzU3NVZG5aMnVIWHJsdkI1ZW5vNmhnd1p3bUVpOGRlejU0 -dDdlWmlZbUdEczJMRUlEdy9uT0pGNHM3T3oKdzgyYk53RUFOMi9laEoyZEhjZUp4RnYzN3QzQjQv -R2dxcXFLcjcvK0dzZU9IZU02a2xqaDgvbVlNR0VDZkh4ODRPbnBDYUQxNzFHeApLeFF0K1IwR2Fi -bkt5a3BoVXo0L1B4OFJFUkYwc3ZBOTJkdmJZOCtlUGFpcXFzS2VQWHZvaTh4N2V2cjBLUUNncnE0 -T0J3NGN3TWNmCmY4eHhJdkhCR01Pc1diTmdibTZPQlFzV0NQL2U2dmRvTzQvT2FoZFJVVkhNMk5p -WTlldlhqMjNac29Yck9HTHQvdjM3ek1yS2lsbFoKV1RFWEZ4ZTJlL2R1cmlPSmxTbFRwckNlUFh1 -eUxsMjZNRjFkWGJabnp4NGFIdnNlWGg1UFdWbFpwcXVyeTNidjNzMThmSHlZaFlVRgpzN1cxWmQ5 -ODh3MHJMQ3prT3FiWXVIanhJdVB4ZU16S3lxckI4T0xXdmtmRitzWkZoQkJDMnAvWWRUMFJRZ2pw -V0ZRb0NDR0VOSXNLCkJTR0VrR1pSb1NDRUVOSXNrYnh4RVNGY2twYVdocVdscGZDNWw1Y1h2dnZ1 -T3c0VEVjSXRHdlZFeUd1VWxaWGIvRElSZFhWMWtKR2gKNzJWRVBGSFhFeUV0WkdCZ2dMVnIxOExT -MGhLalI0L0dnd2NQQUFEVjFkWFl1SEVqbkp5YzRPSGhnYWlvS0FCQVVGQVFKazZjQ0ZkWApWN2k3 -dTZPbXBnWXJWNjZFbVprWnBreVpnbUhEaHVIYXRXc0lEQXpFTjk5OEk5ek9ybDI3c0hEaFFpNTJr -WkJHVWFFZzVEVlZWVld3CnNiRVJQZzRmUGd6Z3hjVVRxNnFxa0pxYUNnY0hCNFNFaEFBQURoNDhD -QmtaR1VSSFIyUFBuajM0L3Z2dmhlczZkKzRjL3ZqakQ1dzcKZHc1aFlXRklUMDlIVWxJUy9QMzlj -ZVhLRmZCNFBFeWFOQW5oNGVHb3I2OEg4S0xBekpvMXErTjNuSkFtVUZ1WWtOZkl5OHNMNytuKwpP -bDlmWHdDQWk0c0xWcTVjQ1FBNGN1UUlzckt5RUJnWUNBQjQvdnc1N3QrL0w1elB3TUFBQUhEbXpC -bE1tVElGWGJwMHdjaVJJNkd2CnJ3OEFVRlJVaEl1TEM4TER3MkZzYkF3K253OHpNN1AyM0VWQ1dv -VUtCU0d0OFBKZUNiS3lzcWl1cmdZQUNBUUNiTnUyRFNOR2pHZ3cKNzhXTEY0VVhYSHlieno3N0RL -dFdyWUtKaVFuOC9QemFOalFoNzRtNm5naDVUMU9uVGtWQVFJRHdCUGpMMXNqcjQwVGMzZDN4NTU5 -LwpvcmEyRnRIUjBYajQ4S0Z3MnVEQmcvSGt5Uk1jT0hBQVhsNWVIUmVla0JhZ0ZnVWhyM2w1anVL -bGp6NzZDS3RYcjI0d0Q0L0hBNC9ICkF3QjgrdW1uS0Nnb2dMdTdPMHBMUzlHM2IxK0VoWVUxbUFj -QVJvOGVqUnMzYnNEYTJocVdscFl3TXpNVGRqOEJ3S1JKazVDU2tpSzgKUWpJaG9vS0d4eExTUVFR -Q0FmaDhQdVRrNUpDUWtJQUZDeGJnOHVYTHd1bWpSbzNDMHFWTE1XellNQTVURXZJbWFsRVEwa0Vx -S3lzeApjdVJJVkZkWG8zLy8vdmpsbDE4QUFNWEZ4Umc2ZENpY25aMnBTQkNSUkMwS1FnZ2h6YUtU -MllRUVFwcEZoWUlRUWtpenFGQVFRZ2hwCkZoVUtRZ2doemFKQ1FRZ2hwRmxVS0FnaGhEVHIvd0NB -VnZqbFk2d1Y4Z0FBQUFCSlJVNUVya0pnZ2c9PQo= - - - - - - Note how the exact smoothed DOS and the Strutinsky approximation agree once the energy is away from -0. In general, these are edge effects and are also present at the right limit if you don't use enough energy -levels. Here we have used 30, so the right side doesn't show these artifacts. - - - <h2>1D Particle in a BOX (PIAB) DOS</h2> - - - def piab_smooth_dos(e): - """Compute the exact smooth DOS.""" - return 1.0/(2.0*math.sqrt(e*math.pi**2/2)) - python - 16 - 1 - - - - def piab_spectrum(nmax): - """Compute the first nmax energies of the 1D PIAB.""" - return [0.5*math.pi**2*(n+1)**2 for n in range(nmax)] - python - 17 - 1 - - - - piab_evalues = linspace(1.0,1000.0,100) - python - 18 - 1 - - - - piab_dos = SmoothDOS(piab_spectrum(20)) - python - 19 - 1 - - - - piab_exact_dos = [piab_smooth_dos(e) for e in piab_evalues] - python - 20 - 1 - - - - piab_approx_dos = [piab_dos(e, M=4, gamma=150.0) for e in piab_evalues] - python - 21 - 1 - - - - plot(piab_evalues, piab_exact_dos, label="exact") -plot(piab_evalues, piab_approx_dos, label="approx") -title("Smooth part of the DOS for the 1D PIAB") -xlabel("Energy"); ylabel("$g(E)$") -legend(loc=1) - python - 22 - 0 - - - pyout - &lt;matplotlib.legend.Legend at 0x6107410&gt; - 22 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVpjQUFBRWFDQVlBQUFEZFNCb0xBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNG -ZVhpUC9EUG5NTmhsVlZRTVJCVVZNQUZVQUZ4UlZLeG43bWtXV0pYCjdXcEtYZGMwN2FaMlhXNXBY -Y3YwYTFab3JxbDU2NXBGZVUxeEFkeFlYTUxDUFVWTEx3b3U3SnoxK2YxeDVDZ0tBbm80QncrZjkr -czEKcjdQTVBEUFBQT3I1K013OE15TUpJUVNJaUlpTVNHYnVDaEFSa2VWaHVCQVJrZEV4WElpSXlP -Z1lMa1JFWkhRTUZ5SWlNanFHQ3hFUgpHUjNEaFdway9mcjE2TkdqaDdtcjhkaXlzckl3ZlBod3VM -cTY0dE5QUDYxV0dabE1ob3NYTDlaeXpXclh2bjM3MExOblR6ZzZPaUlqCkk2Tld0bUVKN1VUR3cz -Q3BvNDRmUDQ3eDQ4ZkQyOXNiRFJzMlJQZnUzWEgwNkZHVDFpRXJLd3N5bVF3Nm5jNmsyMzJVeU1o -SXJGbXoKNXJITGI5cTBDYzdPenJoNTh5WW1UWnBrOVBVL1NsbDdPam82d3NYRkJXM2F0TUd3WWNO -dy9QanhoNWI5L3Z2dkVSRVJBUmNYRi9qNworK090dDk2Q1VxazB6Qzh1THNiQ2hRc1JGaFlHSnlj -bnRHblRCaDkrK0dHbDIxNjBhQkhHamgyTGdvSUNCQVVGUGZHKzFHWTdBY0NFCkNSUGc3KzhQdVZ5 -T0RSczJsSnMzZi81OEtCUUtPRGs1d2NQREE1MDZkY0xzMmJPUmw1ZFg2ZnJXcjE4UHVWd09SMGRI -TkduU0JERXgKTVVoS1NnSUFKQ1ltd3R2Yis2RXlyNzc2S2hRS0JiS3pzeXZjdnFPakk5emMzUERD -Q3k5Z3o1NDlSdGhyeThKd3FhUEdqUnVIdG0zYgpJak16RTFldlhzVzhlZk5nWTJOamxyclVoZXRz -aFJEUTZYU1FKT21KMW5QdzRFR0VoNGRESnF2NHIvNlRycjg2OHZMeWtKT1RnK1hMCmw4UE56UTA5 -ZS9iRWp6LythSmkvYXRVcWpCMDdGdEhSMFRoLy9qemVlKzg5N04rL0gzMzY5REVzczNyMWFodzRj -QUJidG14QmZuNCsKNHVQajRlZm5WK0gyaEJBNGRPZ1F1blhyOWxqMXJlZy9GN1hkVHNIQndmanNz -OC9Rc1dQSGg3WWxTUkppWW1LUW41K1B6TXhNVEpndwpBWWNQSDBad2NEQUtDd3NyWFdlM2J0MVFV -RkNBOCtmUG8yWExsbmo5OWRjclhiYW9xQWpidG0xRFlHQWdObTNhVk9IMkN3b0trSjJkCmpVR0RC -dUcxMTE2clUvOEpxeE1FMVRsbno1NFZ0cmEyUXExV1Z6aC8zYnAxb2x1M2JtTGV2SG1pYWRPbW9s -T25UdUxreVpQaTIyKy8KRmUzYXRST2RPblVTUC8vOHMySDVvcUlpOGRsbm40bDI3ZHFKdm4zN2l2 -ajQrSExyKytHSEgwU2ZQbjFFdTNidHhPZWZmeTZLaW9xRQpFRUo0ZTNzTFNaSkVnd1lOaEtPam96 -aHk1SWhZdjM2OTZONjl1MWl3WUlGbzJyU3BpSTZPRm9jUEg2NTBYM3g4Zk1TS0ZTdEVhR2lvCmFO -R2loZmo4ODgrRlNxVVNRZ2h4Ky9adE1XREFBT0hoNFNIOC9QekV1KysrSzY1ZnYyNG8yNnRYTC9I -KysrK0x2bjM3Q2tkSFIvSEsKSzY4SXVWd3ViRzF0UllNR0RjVGt5Wk1yM09heFk4ZkVtREZqaEkr -UGo1ZzdkNjY0ZXZXcUVFS0kzcjE3RzhvN09qcUs4K2ZQbHlzMwplL2JzQ3RjdlNaTFl0R21UQ0Fv -S0VpMWJ0aFJMbHk0dFYrN0FnUU5pNU1pUnd0ZlhWOHlmUDEvazVPUlVXSzlMbHk0SlNaS0VWcXN0 -CjkvMWYvdklYNGUzdExZUVFvcUNnUUxpNnVvb2xTNWFVV3lZN08xdklaREx4OWRkZkN5R0U2TnEx -cTlpd1lVT2w3VjZtdExSVU9EZzQKQ0VtU2hJT0RnL0R6OHhOQ0NQSG5uMytLT1hQbUNCOGZIL0hx -cTYrSzQ4ZVBHOHFNR1ROR1RKczJUUXdmUGx5NHVibUp2WHYzbXJTZAo3dGU5ZS9lSDluUGV2SG5p -TDMvNVM3bnZDZ3NMaFoyZG5aZzdkMjZGNjFtM2JwM28zcjI3NGZPMWE5ZUVKRW5pd29VTFl2Lysv -Y0xMCnk2dmM4aHMyYkJEdDI3Y1htelp0RXUzYXRYdms5clZhclhCd2NCQW5UNTZzY24vcUU0WkxI -ZFd5WlVzeGJOZ3c4ZU9QUDRvN2QrNlUKbTdkdTNUcGhiVzB0M252dlBYSHIxaTBSR3hzcldyUm9J -VWFQSGkydVhic20xcTFiSjFxMGFHRlkvaC8vK0lmbzNidTNPSHYyck5pNwpkNi93OWZVVisvZnZG -MElJc1cvZlB0R3NXVE9Sa0pBZ3pwMDdKNTU5OWxreGI5NDhJWVFRV1ZsWkQvMFlsbTE3d1lJRjR0 -YXRXMkxlCnZIbmwvdEUreU1mSFI3UnAwMFljT0hCQS9QTExMeUlrSkVSODhjVVhRZ2doYnQ2OEti -Nzc3anRSVWxJaUxseTRJS0tqbzhXY09YTU0KWlh2MTZpV2FObTBxZnZycEo2RldxNFZhclJhUmta -Rml6Wm8xbFc2dnFLaElOR2pRUUt4ZXZWcmN1SEZEVEpreVJmVHExY3N3djZyeQpGYzJYSkVsRVJV -V0owNmRQaTJQSGpnbEhSMGR4NGNJRklZUVFHUmtad3N2TFN5UWtKSWhidDI2SnlaTW5pNUVqUjFh -NDdzckNaZnYyCjdVS1NKSkdkblMwT0hUb2tKRWtTcDA2ZGVxaDg1ODZkUld4c3JCQkNpQVVMRm9q -V3JWdUxsU3RYR3VyeUtKSWtpZDkvLzkzd3VXZlAKbm1MU3BFbml4bzBiWXMyYU5jTEp5VW1VbEpR -SUlmVGg0dURnSUxaczJTTFVhclVvTFMwMWFUdmRyN3JoSW9RUWd3Y1BGdEhSMFJXdQo1LzV3dVhQ -bmpuam5uWGRFKy9idGhSQ2l3bkNKaW9vUzc3MzNuc2pQenhlMnRyYmkyTEZqRlc2L3BLUkV4TVhG -aVVhTkdnbU5SbFBsCi90UW5ESmM2NnNxVksrTHZmLys3OFBiMkZnMGFOQkJUcDA0Vk4yL2VGRUxv -LzZHNHVia1pmcVFPSGp3b0pFa3kvTTlKclZZTGUzdDcKa1pXVkpZUVFJaWdvU096YXRjdXc3amx6 -NW9ncFU2WUlJWVNZTW1XS2VPZWRkd3p6RWhJU1JJY09IWVFRRmY4WXJsdTNUcmk2dWhxKwp1M2J0 -bWxBb0ZLS3dzTERDL2ZEMTlSWHZ2dnV1NFhOY1hKeDQvdm5uSzF3MklTR2gzUDhTSXlNanhkaXhZ -OHN0RXhrWktiNzg4c3RLCjIrMjc3NzRURVJFUmhzOUZSVVhDM3Q1ZTVPYm1WcXQ4UmZNbFNSTGJ0 -bTB6Zkk2T2poYWZmLzY1RUVML3YvajMzMy9mTUM4M04xZTQKdTd0WDJPdXNMRnh5Y25LRUpFa2lQ -VDFkL1B2Zi94Wk9UazRWMW0zU3BFbmkvLzIvL3llRUVFS3BWSW9OR3phSWlJZ0lvVkFveExQUApQ -aXNPSGp4WTZYN2RIeTQ1T1RuQ3pzNnUzSjladDI3ZHhIZmZmU2VFMElkTFZGUlVwZXNTb25iYjZY -NDFDWmNsUzVhSXdNREFDdGV6CmJ0MDZZV1ZsSlZ4Y1hFU3paczNFMkxGalJVcEtpaERpNFhDNWZQ -bXlrTWxrNHV6WnMwSUlmV2hOblRxMTNQYXRyYTJGaTR1THNMT3oKRXdxRlF2ejAwMCtQM0kvNmlP -ZGM2aWh2YjI4c1hyd1lWNjVjd1o0OWU1Q1FrSUJseTVZWjVnY0dCaHJPR3pSdTNCZ0EwTDU5ZXdD -QQpsWlVWM056Y2NQWHFWUlFVRk9Ea3laUG8xS21Ub1d5blRwMXc0TUFCQU1EaHc0Y2ZtdmZycjcr -aW9LQ2cwcnExYmR2V3NHMVBUMDlvCk5CcGN2MzY5MHVXRGc0TU43ME5DUW5Ea3lCRUErbVA1czJm -UFJvOGVQZURpNG9KaHc0YmgxS2xUNWM3eGhJZUhQN1MrUngzdlAzejQKTURwMjdHajRiRzl2ajFh -dFd1SHc0Y1BWS2wvWi9QdjN3ZFBURTlldVhRTUE3Tm16QjRzWEw0YXJxeXRjWFYzaDUrZUg0dUpp -bkRoeAo0cEhidUY5eWNqSUEvWis1bDVjWENnb0tjT3JVcVllV08zTGtDSm8xYXdZQXNMYTJ4dWpS -bzNINDhHRmN2WG9WclZ1M3hpdXZ2Rkt0CjgyTXBLU2xvMGFJRkhCd2NETjkxN3R3WkJ3OGVOT3gv -UmUzK0lGTzNVMVdTazVNTjdWT1JMbDI2NFBidDI3aDgrVExXckZsVDZUNSsKOWRWWGFOZXVIVnEz -YmcwQUdENThPTFpzMlFLdFZtdFk1dVdYWDhidDI3ZFJWRlNFdzRjUDQ0MDMzc0IzMzMxbnRIMnhC -QXlYcDBCNAplRGhpWW1LUW1KaFk0N0tPam83bzBLRkR1WkZtUjQ4ZVJjK2VQUUhvVDNJK09LOTkr -L1p3ZEhTRVhDNEg4T1FuOU8vL0FUbCsvRGk2CmR1MEtBUGoyMjIreFk4Y09yRnUzRHJtNXVkaTJi -UnVFdmpkdFdON0t5cXJjdXVSeStTTlBuSGJyMWczSGpoMHpmQzRxS3NMNTgrY04KMjZ4S1ZldC9V -RlJVRk9iT25ZdmJ0MjhicHFLaUlvU0dobFo3SGR1M2I0ZVhseGNhTjI2TTl1M2J3OFhGQlR0MjdD -aTNUSFoyTms2YwpPR0g0Yzd1Zmg0Y0hacytlalN0WHJ1RFNwVXRWYnE5TGx5NjRlUEVpaW9xS0RO -K2xwNmVYRzJKZTltZGZHWE8wVTVtS1FxMm9xQWdKCkNRbVB0YjRIYmR5NEVlZlBuNGVucHljOFBU -MHhiZG8wNU9ibWx2c3pLZnM3S2trU09uZnVqT2VlZTQ3aDhnQ0dTeDEwOXV4WkxGMjYKRkZldlhv -VldxOFh4NDhleGVmTm1qQjQ5K3JIV04zandZQ3hac2dUbnpwMURZbUlpdnY3NmF3d1pNc1F3Nyt1 -dnY4YStmZnR3NGNJRgpMRm15QkMrODhBSUF3TXZMQzQwYU5YcWlJZEJDQ0d6YnRnMkhEaDNDeVpN -bnNXclZLanovL1BNQWdHdlhyc0hGeFFYdTd1NDRkKzVjCmhVTnBId3kyVHAwNjRjU0pFNVVHWHQr -K2ZaR1ptWW0xYTlmaXhvMGJtRHQzTGtKRFE5R3dZY05LMTFtVDlaZVZMNXMvYXRRb3hNWEYKWWZm -dTNWQ3BWTWpMeThPMzMzNWJlWVBjTGE5V3E3Rjc5MjY4OGNZYjJMNTl1K0dhRzBkSFJ5eGF0QWlM -RnkvRy9QbnpjZVBHRGZ6bgpQLy9CZ0FFREVCRVJnWmlZR0FEQVAvLzVUeHc5ZWhRcWxRclhybDNE -di83MUwzVHQyaFV0V3JSNDVMWUJ3TjNkSGFHaG9aZzllelp1CjNMaUI5ZXZYSXpNekU5SFIwVlcy -ajZuYVNhMVdvN1MwRkRxZERpcVZDcVdscFlaMTNiL042OWV2WS9YcTFSZzRjQ0FhTjI2TXQ5OSsK -dThxNlA4cVJJMGR3OGVKRnBLZW5JeU1qQXhrWkdmanR0OTh3Y3VSSWJOeTRzY0o5L09XWFg3Qno1 -MDRNSERqd2liWnRhUmd1ZFpDagpveU5TVTFNUkhoNE9OemMzVEo4K0hTTkhqalNFaXlSSkZRN1By -TXlzV2JNd1pNZ1FEQjA2Rk8rLy96NldMbDJLWHIxNkFkQmZyL0RKCko1OWcwYUpGR0RKa0NBWVBI -b3laTTJjYTF2bnV1KzlpM0xoeGNIVjFSV3BxYW8yM0xVa1NKazZjaU9uVHAyUElrQ0VZTjI0Y1hu -MzEKVlFEQTJMRmo4Y3d6ejZCMTY5WVlOV29VeG80ZFcrVzYvL0tYditEQ2hRdnc4UERBdEduVEh0 -cWVnNE1EOXUzYmg2U2tKSVNHaHNMTwp6ZzZiTjIrdWRuMnJXbjlaK2JKMUJBWUdZc09HRGZqbW0y -L2c1ZVdGOXUzYlk5ZXVYWld1SDRBaFVDZE5tb1FiTjI0Z01URVJnd1lOCk1zeC8vZlhYOGVXWFgy -TFhybDFvM2JvMTVzeVpnOGpJeUhMWFVzaGtNdnoxcjMrRmg0Y0hvcUtpb05WcThkbG5uMVc2elFm -M2VmUG0KemJDM3QwZG9hQ2dTRXhPeGQrOWUyTm5aUGJSLzVtcW52bjM3d3Q3ZUhpa3BLWmd3WVFM -czdlME5oM0lsU2NLLy8vMXZPRGs1b1YyNwpkdmo4ODg4UkhoNk9YMzc1cGR5aHZzcnFVdGw4UU45 -ckdUSmtDTnEyYll0R2pScWhVYU5HYU55NE1hWk9uWW9kTzNiZzl1M2JodTA3Ck9qckN5Y2tKZi92 -YjN6QnUzRGdNSHo3OGtXMVczMGppU1k5NUVEMUM4K2JOc1diTkdrUkZSWm03S2tSa1F1eTVFQkdS -MFRGY2lJakkKNkhoWWpJaUlqTTRzUFpmazVHUUVCQVNnVmF0V1dMRml4VVB6TjIvZWpLQ2dJQVFG -QldIa3lKRTRkKzZjWVo2dnJ5ODZkT2lBa0pBUQpoSVdGbWJMYVJFUlVUV2JwdVlTRWhHRDU4dVh3 -OGZGQmRIUTBEaDQ4Q0hkM2Q4UDhJMGVPSURBd0VNN096dGl3WVFQMjdObURyNzc2CkNvRCtCUEd4 -WThmZzV1Wm02bW9URVZFMW1iem5VblpiN0o0OWU4TEh4d2Y5K3ZWRGFtcHF1V1VpSWlMZzdPd01B -Qmd3WUlEaDF0aGwKZUNTUGlLaHVNM200cEtlbnc5L2YzL0E1TURBUUtTa3BsUzYvYXRXcWNoY25T -WktFcUtnb0RCa3lCUEh4OGJWYVZ5SWllanhXVlM5aQpQbnYyN01HbVRadkszUmZxMEtGRDhQVDB4 -T25UcHpGdzRFQ0VoWVdoU1pNbTVjcVo0cGtjUkVTV3lGaEhoa3plY3drTkRjV1pNMmNNCm56TXpN -OUdsUzVlSGxqdDU4aVJlZi8xMXhNZkh3OFhGeGZDOXA2Y25BQ0FnSUFDREJnMHE5NUNsKzVYZGVx -SytUL1BtelRON0hlcksKeExaZ1c3QXRIajBaazhuRHBleGNTbkp5TXJLeXNwQ1FrUERRM1VtdlhM -bUNZY09HWWZQbXplV2VybGRjWEd5NFcyOU9UZzUyN2RxRgovdjM3bTY3eVJFUlVMV1k1TExaczJU -TEV4c1pDclZaanlwUXBjSGQzUjF4Y0hBQWdOallXQ3hjdXhLMWJ0d3lQSVZVb0ZFaExTME4yCmRq -YUdEaDBLQUdqWXNDRm16SmhSNGJPdmlZakl2Q3p5SWtwSmtvemV4WHRhSlNZbUlqSXkwdHpWcUJQ -WUZ2ZXdMZTVoVzl4anpOOU8KaGdzUkVRRXc3bTlublI0dFJrUUVBRzV1YnJoOSs3YTVxMkV4WEYx -ZGNldldyVnJkQm5zdVJGVG44ZCswY1ZYV25zWnNaOTRWbVlpSQpqSTdoUWtSRVJzZHdJU0lpbzJP -NEVCRTlKVjU5OVZXOCsrNjc1cTVHdFRCY2lJakk2Qmd1UkVSUDRQYnQyMWkyYkJuYXRtMkw1NTU3 -CkRydDM3OGF0VzdmZzdlMk5uMzc2Q1FCUVdGZ0lQejgvYk5xMENRQ3dZOGNPaElTRXdOblpHWDM3 -OXNYR2pSdkxyZlBzMmJPWU9YTW0Kdkx5ODBLeFpNMnpZc0FHclY2L0dsaTFiOEs5Ly9RdU9qbzRZ -UEhpd3lmZTFKamdVbVlqcXZMcjhiM3JvMEtIdzl2Ykc3Tm16Y2U3YwpPWXdZTVFKSlNVbTRkT2tT -Um84ZWpaTW5UMkwyN05uSXk4dkROOTk4QXdCSVNrcUN1N3M3L1AzOXNXZlBIZ3dmUGh6SGp4K0hu -NThmCk5Cb05talJwZ2xtelptSDgrUEVRUXVDUFAvNUFVRkFRL3ZyWHY4TGIyeHNMRnk1OG9qcWJZ -aWd5TDZJa0lucE1CUVVGU0VsSndlYk4KbTJGblo0ZkdqUnRqK1BEaDJMNTlPMmJPbkluaHc0Y2pL -aW9LZCs3Y3djbVRKdzNsZXZYcVpYZ2ZIUjJOd1lNSDQ0Y2Zmc0NNR1RPUQprSkFBTHk4dnpKbzF5 -N0RNL1UvZXJhc2greUNHQ3hGWkJHTTl4cWttdjkwSER4NUVUazRPbWpadGF2aE9xOVdpZCsvZW1E -bHpKc2FQCkg0OVBQLzBVYytiTWdhdXJxMkdaek14TWZQVFJSemg4K0RDeXM3T2hVcWtnaytuUFV1 -emZ2eDlkdTNhdGRKdFB5L09xZU02RmlDeUMKRU1hWmFpSWlJZ0llSGg2NGZ2MDZidCsramR1M2J5 -TS9QeDgvL1BBRHRGb3RKa3lZZ05HalIyUGx5cFg0L2ZmZkRlWGVldXN0ZUhsNQpJU2twQ1hsNWVS -ZzJiSmloUnhJVkZZVkRodzVWdUQyNVhBNmRUdmZZYldSS0RCY2lvc2ZrNHVLQzd0MjdZL2JzMmJo -OCtUSzBXaTErCisrMDNwS2VuWTlHaVJaREw1VmkzYmgxbXpweUowYU5IRzRMaDJyVnJjSGQzaDdP -ek0rTGo0OHM5c3IxUG56NjRkdTBhUHZyb0k5eTYKZFFzM2I5NUVSa1lHQUtCVHAwNDRlZklrTkJx -TldmYTNKaGd1UkVSUDRJc3Z2b0NQanc5ZWZQRkZlSGg0WU1LRUNkaS9meitXTFZ1RwpqUnMzUXBJ -a3ZQMzIyNUFrQ1I5KytDRUE0T09QUDhZMzMzeURaczJhNGV1dnZ6WTh1d29Bckt5c2NPREFBVnk5 -ZWhWdDI3WkZTRWlJCjRYek5vRUdESUpQSjhNd3p6eGllYlZWWGNiUVlFZFY1L0RkdFhMeHg1Uk5R -cWN4ZEF5S2krc3RpdzBXcE5IY05pSWpxTDRzTkYvWmMKaUlqTWgrRkNSRVJHeDNBaElpS2pZN2dR -RVpIUk1WeUlpTWpvTERaY09GcU1pTWg4TERaYzJITWhJaklmaGdzUkVSa2R3NFdJcUk1NwpHbTVV -K1NDR0N4SFJFL2pnZ3cvZzUrZUhoZzBiNHBWWFhzR0JBd2NBQU92WHIwZjM3dDB4ZCs1Y05HM2FG -QysvL0RKT256NXRLQmNaCkdZbjMzMzhmVVZGUjhQTHl3Z2NmZklDaW9pSUFRRlpXRm1ReUdiNzk5 -bHUwYTljT2ZmdjJCUURFeDhlamI5KythTisrUGI3NDRnc1UKRnhjREFBWU1HSUMzM25yTHNPNFJJ -MFpnM0xoeHBtcUNDbG5zdzhJWUxrUmtDbjUrZmpoNDhDQ2NuWjN4eFJkZllPVElrZmpqano4QQpB -R2xwYWVqU3BRc3lNakt3ZHUxYTlPblRCMWV2WGpXVS9mVFRUN0ZxMVNvRUJnWWlOallXZVhsNVdM -eDRzV0grbGkxYkVCOGZqMmVlCmVRYjc5Ky9INU1tVHNXYk5Hdmo0K09DTk45NUFkblkyNXMrZmo3 -VnIxNkpEaHc0WU1HQUFybDI3aHFOSGp4cHUwMjgyd2dJQkVQLysKdDdsclFVVEc4clQ4Vk9sME91 -SHQ3UzJPSGowcTFxMWJKMnhzYkVSSlNZbGhmdE9tVGNXeFk4ZUVFRUwwNnRWTGpCbzF5akJ2MTY1 -ZApvbDI3ZGtJSUlTNWR1aVFrU1JMSnljbUcrVk9tVEJIdnZQT080WE5DUW9MbzBLR0Q0Zk8yYmR1 -RWw1ZVhjSGQzRjRjT0hYcGtQU3RyClQyTzJzOFgyWERnVW1haCtrUllZNS9HL1lsN05iamtmSHgr -UDlldlhJeVVsQlNVbEpTZ3NMRVJHUmdaa01obGF0V29GVzF0Ync3SWgKSVNFNGN1UUlPbmJzQ0Vt -U0VCd2NYRzVlWm1hbTRkQVlBSVNIaHh2ZUh6NThHSC8vKzk4Tm56dDE2b1JmZi8wVkJRVUZjSFIw -eFBQUApQNDlKa3liQjM5Ly9rWTlKTmhXTERSY2VGaU9xWDJvYUNzWlFWRlNFOGVQSFk5V3FWVmkv -ZmowY0hSM1J2SGx6dy96ejU4K2pwS1FFCmRuWjJBSUFUSjA1ZzRjS0Yrdm9LZ1JNblRoaVdQWDc4 -T05xMmJRc0hCd2ZrNU9RQTBEODRyRXkzYnQxdzlPaFJEQnMyREFCdzlPaFIKdEcvZkhvNk9qZ0NB -T1hQbUlEQXdFRmxaV2RpNmRTdEdqQmhSdXp0ZkJaN1FKeUo2VEFVRkJTZ3NMSVNucHlkME9oMFdM -MTZNYTlldQpHUjY0cGRQcE1HL2VQT1RrNUdESmtpVUFnSTRkT3hySzc5MjdGenQyN01ERml4Zngw -VWNmWWVEQWdaVnVhL0Rnd2ZqNjY2K3hiOTgrClhMaHdBVXVXTE1FTEw3d0FBRWhPVHNiNjlldngx -VmRmWWYzNjlaZzhlVEt1WGJ0V2kzdGVOWVlMRWRGamF0S2tDUll2WG94Um8wWWgKS0NnSUtwVUsz -YnQzaHlSSmtDUUo0ZUhoVUNnVUNBb0tRbnA2T25idjNtMG9LMGtTSms2Y2lLVkxsNkpIang3bzNi -czM1c3laVTI3KwovU0lqSS9ISko1OWcwYUpGR0RKa0NBWVBIb3haczJZaFB6OGZZOGFNd2NxVksr -SHA2WW51M2J0ajNMaHhHRHQyck1uYW9TSVcrNWpqCmYvMUxZT1pNYzllRWlJemhhWHpNOGZyMTY3 -Rm16UnJEME9RSDllN2RHNk5HalRKTENGanNZNDZUazVNUkVCQ0FWcTFhWWNXS0ZRL04KMzd4NU00 -S0NnaEFVRklTUkkwZmkzTGx6MVM1YmhqMFhJcXJybnJiQXJBbXpoTXZVcVZNUkZ4ZUhQWHYyWU9Y -S2xjak56UzAzdjBXTApGa2hPVGtaR1JnYWlvNlB4ejMvK3M5cGx5M0MwR0JHWlU5bWhzYXFXc1ZR -bUQ1ZTh2RHdBUU0rZVBlSGo0NE4rL2ZvaE5UVzEzRElSCkVSRndkbllHb0wveU5Da3BxZHBseTdE -blFrVG1OR2JNR0NRbkoxYzZmLy8rL1dZL0wxS2JUQjR1NmVucDhQZjNOM3dPREF4RVNrcEsKcGN1 -dldyWEtNSUtpSm1VWkxrUkU1bE9ucjNQWnMyY1BObTNhaE1PSEQ5ZTQ3TUdEOHpGL3Z2NTlaR1Fr -SWlNampWazFJcUtuWG1KaQpJaElURTJ0bDNTWWZMWmFYbDRmSXlFakR4VU9USjA5Ry8vNzlNV0RB -Z0hMTG5UeDVFa09IRHNYUFAvOE1QeisvR3BXVkpBbmp4d3VzCldtV0NIU0tpV3ZjMGpoYXJ5eXh5 -dEZqWnVaVGs1R1JrWldVaElTR2gzQzBPQU9ES2xTc1lObXdZTm0vZWJBaVc2cFl0dzhOaVJFVG0K -WTViRFlzdVdMVU5zYkN6VWFqV21USmtDZDNkM3hNWEZBUUJpWTJPeGNPRkMzTHAxQzYrLy9qb0FR -S0ZRSUMwdHJkS3lGV0c0RUZrTwpWMWRYaXg1WlpXcXVycTYxdmcyTHZZaHk2RkNCYmR2TVhSTWlv -cWZIVTMxWXpGVFljeUVpTWgrR0N4RVJHUjNEaFlpSWpJN2hRa1JFClJzZHdJU0lpbzJPNEVCR1Iw -VmxzdVBDdXlFUkU1bU94NGNLZUN4R1IrVEJjaUlqSTZCZ3VSRVJrZEF3WElpSXlPb1lMRVJFWkhj -T0YKaUlpTXptTERSYWNEdEZwejE0S0lxSDZ5MkhDeHNXSHZoWWpJWEN3MlhLeXRHUzVFUk9iQ2ND -RWlJcU5qdUJBUmtkRXhYSWlJeU9nWQpMa1JFWkhRV0d5NDJOcnd6TWhHUnVWaHN1TERuUWtSa1Bn -d1hJaUl5T29ZTEVSRVpIY09GaUlpTWp1RkNSRVJHeDNBaElpS2pzOWh3CjRWQmtJaUx6c2Rod1lj -K0ZpTWg4R0M1RVJHUjBEQmNpSWpJNmhnc1JFUmtkdzRXSWlJeU80VUpFUkVabnNlSENvY2hFUk9a -anNlSEMKbmdzUmtmbVlKVnlTazVNUkVCQ0FWcTFhWWNXS0ZRL05QM1BtRENJaUltQnJhNHVQUC82 -NDNEeGZYMTkwNk5BQklTRWhDQXNMcTNRYgpEQmNpSXZPeE1zZEdwMDZkaXJpNE9QajQrQ0E2T2hv -eE1URndkM2MzekcvWXNDRldyRmlCNzcvLy9xR3lraVFoTVRFUmJtNXVqOXdHCnc0V0l5SHhNM25Q -Snk4c0RBUFRzMlJNK1BqN28xNjhmVWxOVHl5M2o0ZUdCenAwN1E2RlFWTGdPSVVTVjIyRzRFQkda -ajhuREpUMDkKSGY3Ky9vYlBnWUdCU0VsSnFYWjVTWklRRlJXRklVT0dJRDQrdnRMbEdDNUVST1pq -bHNOaVQrTFFvVVB3OVBURTZkT25NWERnUUlTRgpoYUZKa3lZUExmZmpqL054K2pRd2Z6NFFHUm1K -eU1oSWs5ZVZpS2d1UzB4TVJHSmlZcTJzV3hMVk9jWmtSSGw1ZVlpTWpNU0pFeWNBCkFKTW5UMGIv -L3YweFlNQ0FoNVpkc0dBQkdqUm9nQmt6WmxTNHJ1blRweU1nSUFEang0OHY5NzBrU2ZqdU80R05H -NEh0MjQyL0QwUkUKbGtpU3BHcWRkcWdPa3g4V2MzWjJCcUFmTVphVmxZV0VoQVNFaDRkWHVPeURP -MWxjWEl5Q2dnSUFRRTVPRG5idDJvWCsvZnRYV0phSAp4WWlJek1jc2g4V1dMVnVHMk5oWXFOVnFU -Smt5QmU3dTdvaUxpd01BeE1iR0lqczdHNkdob2NqUHo0ZE1Kc1B5NWN0eDZ0UXAzTGh4CkEwT0hE -Z1dnSDFFMlk4WU1lSHQ3VjdnTmhnc1JrZm1ZL0xDWUtlaUhLd3Y4NHg5QVVwSzVhME5FOUhSNHFn -K0xtUXA3TGtSRTVzTncKSVNJaW83UFljT0dOSzRtSXpNZGl3NFU5RnlJaTgyRzRFQkdSMFRGY2lJ -akk2Qmd1UkVSa2RBd1hJaUl5T29zTkZ4c2JoZ3NSa2JsVQorL1l2YXJVYS8vM3ZmeEVmSHcrbFVn -bTVYSTZDZ2dKNGVIZ2dPam9hTDd6d0FpUkpxczI2MW9oQ29ROFhJWUE2VkMwaW9ucWhXcmQvClNV -bEp3UTgvL0lDWW1CaTBhZE1HTmpZMmhubUZoWVg0OWRkZjhmWFhYMlBzMkxFSURnNnUxUXBYUjlr -dERCUUtvTGhZSHpSRVJQUm8KeHJ6OVM1WGhvbFFxY2Zic1dYVG8wS0hLbGFXa3BLQkxseTVHcWRp -VEtHc2dCd2ZneGczQXdjSGNOU0lpcXZ0TUdpNkEvdGIzZGVtUQpWMVhLR3NqVkZiaDRFWEIxTlhl -TmlJanFQcFBmdUxKdDI3YjQvdnZ2OGIvLy9ROEFjT1BHRGV6ZXZSdWxwYVZHcVVSdDRZZ3hJaUx6 -CnFGYTR4TWJHWXNpUUlYQnpjd01BTkdyVUNOMjZkY1BHalJ2eDZxdXYxbWI5bmdqRGhZaklQS29W -TGcwYU5BQUFKQ1Vsb1UrZlB2anEKcTY4Z1NSSW1USmdBT3p1N1dxM2drK0J3WkNJaTg2aldVT1N6 -Wjg5Q3FWU2lYNzkrT0h2MkxFYU5HbVdZVjUwVC9lWmliYzA3SXhNUgptVU8xd21YbnpwM1lzMmNQ -N08zdDRlVGtoTWFOR3lNa0pBUitmbjZ3dHJhdTdUbytOaDRXSXlJeWoycU5GanR5NUFnaUlpS1Fu -NStQCm8wZVBJaTB0RFdscGFjak16RVJoWVNHdVhyMXFpcnBXVzltSWg3QXc0Tk5QZ2JBd2M5ZUlp -S2p1TStab3NXcjFYQ0lpSWdBQVRrNU8KaUlxS1FsUlVsR0hld29VTGpWS1Iyc0NlQ3hHUmVUenh2 -Y1dtVEpsaWpIclVDb1lMRVpGNVZCa3VTcVVTSjA2Y3FIUytpNHNMQVAyRgpsanQzN2pSZXpZeUE0 -VUpFWkI1VmhvdU5qUTBrU2NMU3BVdVJuSnhjN3NKSnJWYUxpeGN2WXZ2MjdaZ3laUW9DQWdKcXRi -STF4YUhJClJFVG1VYTBUK21WMjdkcUZ2WHYzSWpjM0YxdTNia1hYcmwzUnRXdFhSRWRIbzF1M2Jy -Vlp6eG9wT3lrMWZEancwa3ZBOE9IbXJoRVIKVWQxbjhoUDZaYUtqbzNIbHloVk1tellOQXdjT1JF -SkNBbmJ0Mm9YczdHdzBiOTRjVFpzMk5VcWxqSVdIeFlpSXpLUEdKL1J6YzNQaAo1T1NFRjE1NEFa -OTk5aGttVHB5SVJZc1dZZlhxMWJWUnZ5ZkNjQ0VpTW84YTlWd0FZTXlZTVJnNWNpUjBPaDFhdDI0 -Tkd4c2JqQjQ5CnVzNmRid0VZTGtSRTVsTGpjR25hdENuaTQrT1JsWldGTzNmdW9IMzc5cmh4NHdh -U2twTHcwa3N2MVVZZEh4dkRoWWpJUEdvY0xtVjgKZlgwTjd4czFhb1NWSzFjYW96NUd4ZEZpUkVU -bThjUVhVZFpsN0xrUUVabUh4WWNMNzRwTVJHUjZGaDh1N0xrUUVaa2V3NFdJaUl5Two0VUpFUkVi -ZUR6SzdBQUFab0VsRVFWVEhjQ0VpSXFPejZIRGhVR1FpSXZNd1M3Z2tKeWNqSUNBQXJWcTF3b29W -S3g2YWYrYk1HVVJFClJNRFcxaFlmZi94eGpjcmVqejBYSWlMemVPeUxLSi9FMUtsVEVSY1hCeDhm -SDBSSFJ5TW1KZ2J1N3U2RytRMGJOc1NLRlN2dy9mZmYKMTdqcy9UZ1VtWWpJUEV6ZWM4bkx5d01B -OU96WkV6NCtQdWpYcng5U1UxUExMZVBoNFlIT25UdERvVkRVdU96OTJITWhJaklQazRkTAplbm82 -L1AzOURaOERBd09Sa3BKU0syVVpMa1JFNW1HV3cyS21NSC8rZkZ5NkJKdzlDeVFtUmlJeU10TGNW -U0lpcWxNU0V4T1JtSmhZCksrczJlYmlFaG9aaTVzeVpocytabVpubzM3Ky8wY3ZPbno4ZkJ3OENG -eThDekJVaW9vZEZScGIvai9lQ0JRdU10bTZUSHhaemRuWUcKb0IvMWxaV1ZoWVNFQklTSGgxZTQ3 -SU9QMjZ4SldZQ0h4WWlJek1Vc2g4V1dMVnVHMk5oWXFOVnFUSmt5QmU3dTdvaUxpd01BeE1iRwpJ -anM3RzZHaG9jalB6NGRNSnNQeTVjdHg2dFFwTkdqUW9NS3lsZUZvTVNJaTg1REVnOTBEQ3lCSkVv -UVFPSFVLZVBGRjROUXBjOWVJCmlLanVLL3Z0TkFhTHZrS2ZoOFdJaU15RDRVSkVSRWJIY0NFaUlx -T3o2SERoalN1SmlNekRvc09GUFJjaUl2T3crSERoVUdRaUl0T3oKNkhDeHNnSTBHa0NuTTNkTmlJ -anFGNHNPRjBuUzkxN1VhblBYaElpb2ZySG9jQUY0M29XSXlCd1lMa1JFWkhRV0h5NGNqa3hFWkhv -VwpIeTdzdVJBUm1WNjlDQmNPUnlZaU1xMTZFUzdzdVJBUm1SYkRoWWlJakk3aFFrUkVSbWZ4NGNM -UllrUkVwbWZ4NGNLZUN4R1I2VEZjCmlJakk2T3BGdUhBb01oR1JhZFdMY0dIUGhZakl0Qmd1UkVS -a2RBd1hJaUl5T29zUGx3WU5nTHc4YzllQ2lLaCtzZmh3YWQ4ZXlNZ3cKZHkySWlPb1hpdytYenAy -Qm8wZk5YUXNpb3ZwRkVrSUljMWZDMkNSSlF0bHVxZFdBaXd0dy9icitFQmtSRVZYcy90L09KMlh4 -UFJlRgpRbjlvN01RSmM5ZUVpS2orc1Bod0FYaG9qSWpJMUJndVJFUmtkUFVpWERwMVlyZ1FFWm1T -eFovUUJ3Q05SbjlTLytwVndOblpqQlVqCklxckRlRUsvaHF5c2dLQWdudFFuSWpLVmVoRXVBTSs3 -RUJHWkVzT0ZpSWlNeml6aGtweWNqSUNBQUxScTFRb3JWcXlvY0psMzNua0gKTFZxMFFLZE9uWERt -ekJuRDk3Nit2dWpRb1FOQ1FrSVFGaFpXN1cweVhJaUlUTWNzSi9SRFFrS3dmUGx5K1BqNElEbzZH -Z2NQSG9TNwp1N3RoZmxwYUdxWlBuNDc0K0hqczJyVUxtemR2eGs4Ly9RUUFhTjY4T1k0ZE93WTNO -N2RLMTEvUlNTbXRGbkIxQlM1ZjFyOFNFVkY1ClQvVUovYnk3dHlqdTJiTW5mSHg4MEs5ZlA2U21w -cFpiSmpVMUZTKysrQ0xjM053UUV4T0QwNmRQbDV2L09Ec3Zsd1BCd2NDeFk0OWYKZHlJaXFoNlRo -MHQ2ZWpyOC9mME5ud01EQTVHU2tsSnVtYlMwTkFRR0JobytlM2g0NE9MRml3RDB5Um9WRllVaFE0 -WWdQajYrUnR2bQpvVEVpSXRPd01uY0ZLaUtFcUxSM2N1alFJWGg2ZXVMMDZkTVlPSEFnd3NMQzBL -UkprNGVXbXo5L3Z1RjlaR1FrSWlNajBia3o4TjEzCnRWVnJJcUtuUzJKaUloSVRFMnRsM1NZLzU1 -S1hsNGZJeUVpY3VIdlJ5ZVRKazlHL2YzOE1HRERBc015S0ZTdWcwV2p3NXB0dkFnQmEKdG15SjMz -Ly8vYUYxVFo4K0hRRUJBUmcvZm55NTd5czdibmoxS3RDaEEzRHBFdURrWk15OUlpSjYrajNWNTF5 -YzcxNGluNXljakt5cwpMQ1FrSkNBOFBMemNNdUhoNGRpMmJSdHUzcnlKTFZ1MklDQWdBQUJRWEZ5 -TWdvSUNBRUJPVGc1MjdkcUYvdjM3VjN2Ynp6d0Q5T2tECnJGOXZuSDBoSXFLS21lV3cyTEpseXhB -Ykd3dTFXbzBwVTZiQTNkMGRjWEZ4QUlEWTJGaUVoWVdoZS9mdTZOeTVNOXpjM0xCcDB5WUEKUUha -Mk5vWU9IUW9BYU5pd0lXYk1tQUZ2Yis4YWJYdmFOR0RVS0dEaVJQMUpmaUlpTXI1NmNXK3grd2tC -aEljRGMrY0Nnd2FadUdKRQpSSFhZVTMxWXpOd2tTZDk3V2JiTTNEVWhJckpjOWE3bkFnQXFGZEM4 -T2ZEZi8rcHZhRWxFUk95NVBERnJhLzA1bCtYTHpWMFRJaUxMClZDOTdMZ0NRbXd1MGFnWDg5cHQr -RkJrUlVYM0hub3NSdUxzRGI3NEpqQmtENkhUbXJnMFJrV1dwdCtFQ0FMTm5BMG9sOE5GSDVxNEoK -RVpGbHFiZUh4Y3BjdVFLRWhnSTdkdWp2UFVaRVZGL3hzSmdSTldzR3JGd0p4TVFBZHkvK0p5S2lK -MVR2ZXk1bHhvOEhybDhIdnYwVwpzTEdwcFlvUkVkVmh4dXk1MVB0d3lTbkt3Y0VyQjVHVWRSRGY3 -RG1QVXBFSEw3ODhxSFNsYU5LZ0NieWN2T0RsNUlWT25wMFE2UnNKCkR3ZVBXcTQ5RVpGNU1GeXFV -RlVENVN2enNURmpJMVlmWDQyc08xbUk4SXBBajJZOTROK3dMZUtXdXlEM1QyZkVyYlJGSWJMeFov -NmYKdUp4M0dhbFhVNUY4T1JtK0xyNTR6dTg1akFrYWd3Q1BBQlB1RlJGUjdXSzRWS0d5QnZvajd3 -OHNQcmdZVzMvYmltZGJQSXUvZGY0YgpldnIwaEZ4Mjd3NldPcDMrQXN1alIvV0h5SHg5NzVYWDZE -UTRkdTBZdHAvWmpvMFpHK0h0N0kyeHdXTXhLbWdVN0JYMkp0Z3pJcUxhCnczQ3B3b01OVktvcHhV -ZUhQOEluS1o5Z1FxY0ptQlE2Q2M4NFZYN2xwQkRBeHg4REgzNm92d2ZaSzY4OHZJeEdwOEh1MzNk -ajFiRlYKT1BMbkVVd01uWWlKb1JQUjBMNWhiZXdTRVZHdFk3aFU0ZjRHMm5sK0p5YitkeUk2ZW5i -RVIvMCtncStMYjdYWGMrSUVNSElrMExFagpzR0lGNE9aVzhYSm5jODlpeWVFbCtPNzBkM2l0NDJ0 -NHU5dmJEQmtpZXVwd0tISTFLRFZLVFB0NUdsN2Y4VHBXRFZ5Ri83ejBueG9GCkN3Q0VoQURIanVt -djVtL1RSdCtiVVNvZlhxNk5leHQ4T2VoTG5IempKQXBWaFdqemFSdk1UNXlQZkdXK2NYYUdpT2dw -WTdIaEVyRW0KQWxmeXJ1QkU3QW4wYWRIbnNkZGpiNisvd2VXQkEwQnlNaEFRQUd6YUJLalZEeS9y -NWVTRnp3WjhoclR4YWJoMDV4SmFyV2lGVDQ1OApBcVdtZ2tRaUlySmdGbnRZN0xPMHovQjY1OWNo -U1pKUjE1MllDQ3hZQVB6K096Qmxpdjc2bUx0UGJuN0liemQrd3p0NzM4RnZOMzdECmU3M2ZRMHo3 -R01na2k4MXpJbnJLOFp4TEZZelpRSlU1ZGd4WXVoVFl1Uk40NFFYOURUQzdkd2RrRldSSDh1Vmt6 -RXFZaFZKTktSWS8KdXhqOS9mb2JQZlNJaUo0VXc2VUtwZ2lYTXYvN0g3QjVNN0IrUFZCY0RJd1lv -UStienAzMVQ3MHNJNFRBOTJlK3greDlzOUhZb1RFVwpQYnNJWGIyN21xU09SRVRWd1hDcGdpbkRw -WXdRd1BIandILytBMnpmRGhRVkFZTUdBZEhSUUdRazRPU2tYMDZqMDJCanhrYjhNL21mCmFOMndO -ZWIxbXNlUUlhSTZnZUZTQlhPRXk0Tk9ud2JpNDRHRUJDQTFGUWdPQm5yMUFucjBBQ0lpQUZzSEZU -Wm1iTVQ3Qjk2SG41c2YKWm5XZGhUNHQrdkJ3R1JHWkRjT2xDblVoWE81WFhBd2NQS2dmYlhiZ2dQ -NThqWjhmRUJZR2RBeFY0VWJqemZqbXo2V1FTUkttUjB6SAppSFlqWUd0bGErNXFFMUU5dzNDcFFs -MExsd2NwbFVCR0JwQ1dwcC9TMDRHc3l3TFA5RWhBYWNoUzNMRS9pbWNieGVDTmlMR0k3aEFDCmRt -YUl5QlFZTGxXbzYrRlNrZUppNExmZmdGOStBUTZmeWtKUzNnWmNjVnNIS0IzUitQWlFCTnU4Z0M2 -K1FXalZTb0tmSDlDeVplVjMKRENBaWVod01seW84amVGU0VaM1E0ZWZNdzloMDlIdnN1Ym9kS3JV -T2JuZWVoYmdVaWR5anZTQXY4a2J6NXZxYmEvcjY2aDk4VmpaNQplUUdOR2dGeWVWVmJJU0xTWTdo -VXdWTEM1WDVDQ0p6S09ZWDlXZnVSbUpXSTVNdkprRXNLdExBUFFtTVJCTHVDOXREY2FJbUNLeTJR -CmZja2RWLytVY1BzMjBLUUo4TXd6UU5PbStzblRVLzlkMmRTNE1lRGhBVmhibTNzUGljamNHQzVW -c01Sd2VaQVFBcGZ6TGlNak93TVoKMXpQdzY0MWZjZW4ySlZ5NmN3bEtqUktlanA1b1pOOFlqckpH -VUdnYUFxVk8wQlE3UVpudmlKSjhleFRlc1VYQkxUdmszN1pCM20wRgo3SzJ0NGVxc2dJdWpBbTR1 -WlpNVkdyb280TzZtZ0llYk5UeGNiZERZM1JxTjNXM1FwS0V0RkFxZURDS3lKQXlYS3RTSGNIbVVm -R1UrCnNndXpjYjN3T200VTNVQnVjUzRLVkFYSVYrWWpYNW1QRWswSlNqV2xLRkdYUUtWVlFhVlZv -YWhVaFdLbEdpVktOVXJWYWlqVmFxZzAKR3FpMEtxaDFhbWgwYW1paGhFNVNRU2NyQmF4VWdNWUdr -dFlXY3AwOUZMQ0hBZzZ3bFRuQVZ0WUFEZ3I5NUdUakNCYzdKN2c2T0tGaApBeWU0T3pxaHNiTXpH -cnM0d2NQUkdTNTJ6bkMyY1lhenJUT3NaRmJtYmpxaWVvM2hVb1g2SGk2bW9OSHFrSE5MaGV6Y0Vt -VGZMTWFOCk84WEl1Vk9NM0x4QzNDb3N3cTJpQXVTVkZDQ3Z0QUNGcWdJVXF2TlJvc3RIcWNpRFNz -cUhXcDRIWVpNSG1WMGVZSk1IblhVK1pGbzcKS0xUT3NCYk9zSUV6N0dYNnFZSENHUTBVVG5DeTBV -OHU5bzV3dFhlQ200TWozQm80d3QzUkVlNU9EZURoNUFnUDV3WndzTEhsOVVKRQpqNEhoVWdXR3k5 -TkJwUUlLQ3ZSVGZyN0E5VHVGdUg3bkRuTHk4NUZibUlmYnhYbTRWWnlIZkdVK0NsUjVLRkRub1VS -YmdCSmRBVXBGClBwVEloMW9xaEVaZUFLMjhBRHFySWtCUkNNalZnTm9lTXEwRDVGb0h5SFVPc05J -NTNPMWQyY05HWmc5cnlSNjJjbnZZV3RuQnJteFMKMk1GZVlRY0hHenM0V051aGdhMGRIR3hzNFdo -bkIwZGJXemphMmNMUjNoWk9kclp3dExlQms0TU5YQnhzNFdCbkJabU1ZVVpQUDRaTApGUmd1OVpj -UVFHR3hCcmw1UmJoWm9KOXVGeFlocjdnWWQ0cUxrRmRjaEVKbENRcVZ4U2hTbHFCSVZZd1NkUW1L -TmNVbzFaUkFxUzJCClVsY0tsYTRFYWxFQ05VcWhRU2swS0lGV1VrSW5sVUluTDRGT3BvU1FLUUdy -VWtEU0FScGJRR3NEU1dzRG1jNEdNcUdmNUdVVGJHQUYKRzFoSitra2hXVU1oczRGQ3BuKzFsbG5E -eHNvRzFuSnJXTXV0WVdObERWc3JHOWdvckdGclphMS9WVmpEenZyZXE1MjFOZXl0cldGdgpjMit5 -czFIQTNzWWFEcmIzSmx0ck9jT1Bxb1hoVWdXR0M1bVNScXRGUVlrU2VVV2x5QzlTb3FCRWlZS1NV -aFNXS0ZHa1ZLRllxVVNSClVvbGlwUkxGS2lWSzFTcVUzSDFWYWxRb1ZTdWgxS3FnMUNqdm5nTlRR -cVZUUWExVFFhMVRRcU5UUXkxVTBBZ2x0RUlOTFZUM0prbWwKUHc4bUtTRWtOWFF5RllTa2hwQXJB -Wmtha0tzQW1SYlFXQU02QmFCVFFOSlpROUlwSUFrRlpPTGVxMHdvSUlOK2trTUJHYXdnbHhTUQp3 -d3B5eVFveXlRcFdrZ0p5eVFwV3NydnZaVlpReUt6S3ZWckxGYkNTV1VFaFYwQlI5aXJYdjlwWUtX -QXRWOERhNnU3NysxOFYrdmMyCkNnVnNGZmUvV3QxOWJ3VnJoZnp1Wnl2WUtPU3dzWmJEU2k1Qm9a -QXF2Q001MVF6RHBRb01GNko3dERvZFNwUnFGSmFxVUtKVW8xaXAKUm5HcENpVXFOVXBVYXBTV1RX -cjlxMUtqUWFucTdvQU9qUVpLdFJwS2pScHFyZWJ1ZDJxb2RScW9OUnI5ZDFvMXREb3QxRG9OTkRv -MQpORHJOdlVFZ1FuUHZWYWloRldyOUs5VFE0ZUZYbmFTR1RsSkJTQnA5V0VycXUrODFnS1NCa0tr -aEpDMGdhUUdaUnQ5cmxBU2drd0ZDCkRnaFp1VW5DQSs4aFFZSU1rcEFiNWttUTMvMHNod3hXa0Fr -cnlLQ0FKS3owQVdzSVhPdUhKaXZKV2greXNJWmNVc0JLc29aQ3B0Qy8KbHludXZwZkRTbVlGdVV3 -T3VVd0d1VXdHbVNTRFhLWVBSSmtNa0dRQ2treEFkdmRWa2dRZzZTREpkUHBYU1FBeUhTUkpCMGtx -S3dQSQpKT2pYSjVOZ0paUGZEWEVyV01tdFlHT2w3d0hieUsxaHA3Q0ZyY0lXZG5jbkIyczcyQ3Zz -NFdCakIzdUZMYXlzOUhWeGRUWGVieWVICjV4QlpPTGxNaGdaMk5taGdaMlB1cXRRS0lRUzBRZ3VO -VmdlMVJnZVZXZ2VsV2d1TlJrQ3QwYi9YYXZYdnkrWnJ0UHBKcGRaQ3JkVkMKcGRGQ3JkRy9WNnIx -UVhvdlVOVlFhZFZRYTlWUWFWVlFhcFZRYTlWUTYxU0cwWllhb2I3YjAxUkJveXVHUnFkR3NTZ0xX -QzIwT2kyMApXZzJFRU5BSkhYUkNDeUh3d0NSQkNBa1FFaUJrRURyWjNjOHlRQ2VERURJSW5YNit6 -bEJHNk5jSkhRUzAwQWt0ZEpMR0VOUkNVa0VuClU5NDlqSHYza0s2OEJFSmVBbUdsZjRWY3BUK2tx -N1kzNnA4TGV5NUVSUFdZVHVoUW9pNUJpYVlFSGc0ZVBDejJLQXdYSXFLYU0rWnYKcDFsT2dTVW5K -eU1nSUFDdFdyWENpaFVyS2x6bW5YZmVRWXNXTGRDcFV5ZWNPWE9tUm1YcG5zVEVSSE5Yb2M1Z1c5 -ekR0cmlIYlZFNwp6Qkl1VTZkT1JWeGNIUGJzMllPVksxY2lOemUzM1B5MHREUWNPSEFBUjQ4ZXhW -dHZ2WVczM25xcjJtV3BQUDdEdVlkdGNRL2I0aDYyClJlMHdlYmprNWVVQkFIcjI3QWtmSHgvMDY5 -Y1BxYW1wNVpaSlRVM0ZpeSsrQ0RjM044VEV4T0QwNmRQVkxrdEVST1puOG5CSlQwK0gKdjcrLzRY -TmdZQ0JTVWxMS0xaT1dsb2JBd0VERFp3OFBEL3orKysvVktrdEVST1pYSjRjaWx3MnZ1MTlON3hY -RmUwdmRzMkRCQW5OWApvYzVnVzl6RHRyaUhiV0Y4SmcrWDBOQlF6Snc1MC9BNU16TVQvZnYzTDdk -TWVIZzRUcDA2aGVqb2FBQkFUazRPV3JSb0FUYzN0eXJMCkF1QklNU0lpTXpQNVlURm5aMmNBK2xG -ZldWbFpTRWhJUUhoNGVMbGx3c1BEc1czYk50eThlUk5idG14QlFFQUFBTURGeGFYS3NrUkUKWkg1 -bU9TeTJiTmt5eE1iR1FxMVdZOHFVS1hCM2QwZGNYQndBSURZMkZtRmhZZWpldlRzNmQrNE1OemMz -Yk5xMDZaRmxpWWlvamhFVwpKQ2twU2ZqNyt3cy9Qei94Zi8vM2YrYXVUcTI3Y3VXS2lJeU1GSUdC -Z2FKWHIxNWk4K2JOUWdnaDh2UHp4YUJCZzRTM3Q3Y1lQSGl3CktDZ29NSlJadm55NThQUHpFd0VC -QWVMQWdRUG1xbnF0MFdnMElqZzRXRHovL1BOQ2lQcmJGb1dGaFdMMDZOR2lWYXRXSWlBZ1FLU2sK -cE5UYnRsaTFhcFdJaUlnUUhUdDJGRk9uVGhWQzFKKy9GMy85NjE5Rm8wYU5STHQyN1F6ZlBjNitu -enAxU29TRWhJam16WnVMMmJObgpWMnZiRmhVdXdjSEJJaWtwU1dSbFpZazJiZHFJbkp3Y2MxZXBW -djN2Zi84VEowNmNFRUlJa1pPVEk1bzNieTd5OC9QRmh4OStLQ1pOCm1pUktTMHZGeElrVHhaSWxT -NFFRUWx5L2ZsMjBhZE5HWEw1OFdTUW1Kb3FRa0JCelZyOVdmUHp4eDJMa3lKRmk0TUNCUWdoUmI5 -dGkKeG93Wll1N2N1YUtrcEVTbzFXcHg1ODZkZXRrV04yL2VGTDYrdnFLd3NGQm90VnJ4M0hQUGla -OS8vcm5ldEVWeWNySTRmdng0dVhCNQpuSDEvN3JubnhOYXRXMFZ1YnE3bzFxMmJTRTlQcjNMYkZu -T1Q2dnA0RFV5VEprMFFIQndNQUhCM2QwZmJ0bTJSbnA2T3RMUTBqQnMzCkRqWTJOaGc3ZHF5aEhW -SlRVOUcvZjM4MGE5WU12WHIxZ2hBQ0JRVUY1dHdGby9yenp6L3gzLy8rRjYrOTlwcGhVRWQ5Yllz -OWUvWmcKOXV6WnNMVzFoWldWRlp5ZG5ldGxXOWpaMlVFSWdieThQSlNVbEtDNHVCZ3VMaTcxcGkx -NjlPZ0JWMWZYY3QvVlpOOExDd3NCQUdmUApuc1hMTDcrTWhnMGJZdWpRb2RYNmJiV1ljS252MThC -Y3VIQUJtWm1aQ0FzTEs5Y1cvdjcrU0V0TEE2RC95MU0yT0FJQTJyUnBZNWhuCkNkNTg4MDBzV2JJ -RXN2c2U3RkVmMitMUFAvOUVhV2twM25qakRZU0hoK1BERHo5RVNVbEp2V3dMT3pzN2ZQNzU1L0Qx -OVVXVEprM1EKclZzM2hJZUgxOHUyS0ZPVGZVOU5UY1dGQ3hmUXFGRWp3L2ZWL1cyMW1IQ3B6d29L -Q3ZEeXl5L2prMDgrUVlNR0RXbzBGTnRTcmdmNgo2YWVmMEtoUkk0U0VoSlRiLy9yWUZxV2xwVGgz -N2h5R0RSdUd4TVJFWkdabTRwdHZ2cW1YYlpHVGs0TTMzbmdEcDA2ZFFsWldGbzRjCk9ZS2ZmdnFw -WHJaRm1TZmQ5K3FXdDVod0NRME5MWGVEeTh6TVRIVHAwc1dNTlRJTnRWcU5ZY09HWWRTb1VSZzhl -REFBZlZ1VTNUTG4KOU9uVENBME5CWER2K3FFeVo4NmNNY3g3MmgwK2ZCang4ZkZvM3J3NVltSmlz -Ry9mUG93YU5hcGV0b1dmbngvYXRHbURnUU1Id3M3TwpEakV4TWZqNTU1L3JaVnVrcGFXaFM1Y3U4 -UFB6UThPR0RURjgrSEFjT0hDZ1hyWkZtWnJ1dTUrZkg2NWZ2Mjc0L3RTcFU5WDZiYldZCmNLbk85 -VE9XUmdpQmNlUEdvVjI3ZHBnMmJacmgrL0R3Y0t4ZHV4WWxKU1ZZdTNhdDRTOUNXRmdZZHUzYWhT -dFhyaUF4TVJFeW1ReU8Kam83bXFyNVJMVnEwQ0gvODhRY3VYYnFFclZ1M0lpb3FDbDk5OVZXOWJB -c0FhTldxRlZKVFU2SFQ2YkJqeHc3MDZkT25YclpGang0OQpjUFRvVWR5NmRRdEtwUkk3ZCs1RXYz -Nzk2bVZibEhtY2ZmZjM5OGZXclZ1Um01dUw3ZHUzVisrMzFRZ0RFdXFNeE1SRTRlL3ZMMXEyCmJD -bVdMMTl1N3VyVXVnTUhEZ2hKa2tSUVVKQUlEZzRXd2NIQll1Zk9uWThjYXJoczJUTFJzbVZMRVJB -UUlKS1RrODFZKzlxVG1KaG8KR0MxV1g5dmk3Tm16SWp3OFhBUUZCWWtaTTJhSXdzTENldHNXNjlh -dEV6MTc5aFNkTzNjV2MrZk9GVnF0dHQ2MHhZZ1JJNFNucDZldwp0cllXWGw1ZVl1M2F0WSsxNzVt -Wm1TSWtKRVQ0K3ZxS3YvLzk3OVhhdGtVK0xJeUlpTXpMWWc2TEVSRlIzY0Z3SVNJaW8yTzRFQkdS -CjBURmNpSWpJNk9ya3c4S0k2aUs1WEk0T0hUb1lQc2ZFeEdEV3JGbG1yQkZSM2NYUllrVFY1T2pv -YVBUN1RHazBHbGhaOGY5NFpIbDQKV0l6b0NmbjYrdUtERHo1QWh3NGQ4UHp6eitQU3BVc0E5TGRo -V2JwMEtYcjE2b1VCQXdZZ01URVJBTEIrL1hvTUh6NGNmZnIwUVhSMApOSlJLSlJZdVhJaTJiZHRp -eElnUjZOYXRHNDRkTzRaMTY5Ymh6VGZmTkd4bjllclZtRDU5dWpsMmthakdHQzVFMVZSU1VvS1Fr -QkRECjlPMjMzd0xRMzMrcHBLUUVKMCtlUkVSRUJMNzY2aXNBd05hdFcyRmxaWVdrcENTc1hic1di -Ny85dG1GZGUvZnV4WmRmZm9tOWUvY2kKUGo0ZW1abVpPSEhpQkdKalkzSGt5QkZJa29TWFhub0pQ -Lzc0STdSYUxRQjlLSTBiTjg3ME8wNzBHTmdmSjZvbU96czduRGh4b3NKNQpvMGVQQmdCRVJVVmg0 -Y0tGQUlCdDI3WWhLeXNMNjlhdEF3RGN2bjBiRnk5ZU5Dem42K3NMQU5pOWV6ZEdqQmdCYTJ0cjlP -N2RHejQrClBnQUFCd2NIUkVWRjRjY2ZmNFMvdnovVWFqWGF0bTFibTd0SVpEUU1GeUlqS0h0bWhr -S2hRR2xwS1FCQXA5Tmg1Y3FWNk5telo3bGwKRHh3NEFFOVB6MnF0OTdYWFhzUDc3NytQZ0lBQWpC -MDcxcmlWSnFwRlBDeEdWRXRHamh5SnVMZzR3eUNBc2w3UGcyTm9vcU9qOGMwMwozMENsVWlFcEtR -bVhMMTgyekFzTEM4T2ZmLzZKTFZ1MklDWW14blNWSjNwQzdMa1FWVlBaT1pjeXp6MzNIQll0V2xS -dUdVbVNETS9BCmVQSEZGNUdibTR2bzZHams1K2VqUllzV2lJK1BMN2NNQUR6Ly9QUDQ3YmZmRUJ3 -Y2pBNGRPcUJ0MjdhR1EyTUE4TkpMTHlFakk4TncKNTIraXB3R0hJaE9abVU2bmcxcXRobzJORGRM -VDB6RnQyalFjT25USU1MOS8vLzU0OTkxMzBhMWJOelBXa3FobTJITWhNclBpNG1MMAo3dDBicGFX -bGFOMjZOVDcrK0dNQXdKMDdkOUMxYTFkRVJrWXlXT2lwdzU0TEVSRVpIVS9vRXhHUjBURmNpSWpJ -NkJndVJFUmtkQXdYCklpSXlPb1lMRVJFWkhjT0ZpSWlNN3Y4RDVMODlZcE03bzFzQUFBQUFTVVZP -Uks1Q1lJST0K - - - - - - - python - 1 - - - - - - +{ + "nbformat": 2, + "name": "dos", + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "from sympy import *\nimport numpy as np\nimport math" + }, + { + "source": "

Strutinsky Energy Averaging Method

", + "cell_type": "markdown" + }, + { + "source": "Define a callable class for computing the smooth part of the density of states $\\tilde{g}_m(E)$ with curvature\ncorrection of order $2M$.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "class SmoothDOS(object):\n\n def __init__(self, energies):\n self.energies = energies\n\n def gaussian_smoothing_func(self, M, x):\n return (mpmath.laguerre(M,0.5,x**2)*exp(-x**2)/sqrt(pi)).evalf()\n\n def __call__(self, e, M=3, gamma=1.0):\n return sum(self.gaussian_smoothing_func(M, (e-ei)/gamma)/gamma for ei in self.energies)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "def avgf(M, x):\n return (mpmath.laguerre(M,0.5,x**2)*exp(-x**2)/sqrt(pi)).evalf()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "def smooth_dos(gamma, M, e, energies):\n return sum(avgf(M, (e-ei)/gamma)/gamma for ei in energies)" + }, + { + "source": "

1D Simple Harmonic Oscillator DOS

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "def sho_smooth_dos(e):\n \"\"\"Compute the exact smooth DOS.\"\"\"\n return 1" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 6, + "input": "def sho_spectrum(nmax):\n \"\"\"Compute the first nmax energies of the 1D SHO.\"\"\"\n return [n+0.5 for n in range(nmax)]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 7, + "input": "sho_evalues = np.linspace(0.0,20,100)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 8, + "input": "sho_dos = SmoothDOS(sho_spectrum(30))" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": false, + "prompt_number": 10, + "input": "sho_exact_dos = [sho_smooth_dos(e) for e in sho_evalues]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 23, + "input": "sho_approx_dos = [sho_dos(e,M=3,gamma=10.0) for e in sho_evalues]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 24, + "text": "<matplotlib.legend.Legend at 0x7f1790f77990>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 24, + "input": "plot(sho_evalues, sho_exact_dos, label=\"exact\")\nplot(sho_evalues, sho_approx_dos, label=\"approx\")\ntitle(\"Smooth part of the DOS for the 1D SHO\")\nxlabel(\"Energy\"); ylabel(\"$g(E)$\")\nlegend(loc=4)" + }, + { + "source": "Note how the exact smoothed DOS and the Strutinsky approximation agree once the energy is away from\n0. In general, these are edge effects and are also present at the right limit if you don't use enough energy\nlevels. Here we have used 30, so the right side doesn't show these artifacts.", + "cell_type": "markdown" + }, + { + "source": "

1D Particle in a BOX (PIAB) DOS

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 16, + "input": "def piab_smooth_dos(e):\n \"\"\"Compute the exact smooth DOS.\"\"\"\n return 1.0/(2.0*math.sqrt(e*math.pi**2/2))" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 17, + "input": "def piab_spectrum(nmax):\n \"\"\"Compute the first nmax energies of the 1D PIAB.\"\"\"\n return [0.5*math.pi**2*(n+1)**2 for n in range(nmax)]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 18, + "input": "piab_evalues = linspace(1.0,1000.0,100)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 19, + "input": "piab_dos = SmoothDOS(piab_spectrum(20))" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 20, + "input": "piab_exact_dos = [piab_smooth_dos(e) for e in piab_evalues]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 21, + "input": "piab_approx_dos = [piab_dos(e, M=4, gamma=150.0) for e in piab_evalues]" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 22, + "text": "<matplotlib.legend.Legend at 0x6107410>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 22, + "input": "plot(piab_evalues, piab_exact_dos, label=\"exact\")\nplot(piab_evalues, piab_approx_dos, label=\"approx\")\ntitle(\"Smooth part of the DOS for the 1D PIAB\")\nxlabel(\"Energy\"); ylabel(\"$g(E)$\")\nlegend(loc=1)" + }, + { + "outputs": [], + "cell_type": "code", + "collapsed": true, + "language": "python" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/sympy.ipynb b/docs/examples/notebooks/sympy.ipynb index a84563b..9946a54 100644 --- a/docs/examples/notebooks/sympy.ipynb +++ b/docs/examples/notebooks/sympy.ipynb @@ -1,721 +1,266 @@ - - - sympy - 2 - - - - - <h1>SymPy: Open Source Symbolic Mathematics</h1> - - - %load_ext sympyprinting - python - 1 - 1 - - - - from __future__ import division -from sympy import * -x, y, z = symbols("x y z") -k, m, n = symbols("k m n", integer=True) -f, g, h = map(Function, 'fgh') - python - 2 - 1 - - - - <h2>Elementary operations</h2> - - - Rational(3,2)*pi + exp(I*x) / (x**2 + y) - - python - 3 - 0 - - - pyout - ⅈ⋅x -3⋅π ℯ -─── + ────── - 2 2 - x + y - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdrQUFBQXBDQVlBQUFBMjJnZFdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCR1JKUkVGVQplSnp0MjJ1SVZWVVV3UEhmT0dtT3FXbVptWnBETW9ZcFRsb2hr -YjJUS0NPbGwvU3lMeFVSMVljS2VuM3FCVWtrUVJRRlpSajFJZXdwCjlTR283RTFQZ2hKN0o0WkJw -VmxnR1dZMjA0ZDFMdmNhY3g4emM4ODVkL1Q4NFhEMnZuUE9XZXZlZGZiYWE2KzFoNEtXcHkxdkJZ -WW8KWFRnR1QyTWlacUVIby9BMzNtaW1zSDBhdUdZMEZtTkMwbCtGYmMxVVlnZ3lFVXZ3SXJyeEd0 -WmlHZWJsb2REck9DRnBMOGNuZVNqUgpZa3pEZzJoUCtsUHdVTkllMW14aGpZeWtkNVZIem51NEdX -UHQzYVBwUEx5QVJXSWtiY1ZubUlNZCtMYVp3dHJyWCtKTi9KSzBMeFMrCjk5Rm1LdEhDN0k4emND -U200dnZrOCs4d1RuaVo0ZmdRdS9CcnhUV1owNDFyaFhFT3lFdUpqSm1NbDRWeDREYU52ZFJOcDFH -aFc4VVEKUGcwejhFNXFHclVPejJNVC9oWEJ3QS80T2xlTnFqQUpLekFtNmM5REwrYm5wbEUyak1a -T0hKeTNJdFNQUkdaaXFiS1J4aWZuWGFscApWSnZqWk9kdS84SG1pbjZYOGpJa1UrcTV1MDNDSjI5 -REIrN0VHanlSc2w3VnVBWmI4R1BLY25iaUVHR1V6U0tLbTRxUFVwWTdLTHJGCmd2YXduUFZZam1N -emt0VW1zZ3FuQ3ZlWEc0MnNrK0R6NUJnTUI0bVF0aTk2c0RFNXR3cTlXbVRoM3FpUkJzTmtFWHhj -b0xaN1BRbHYKWjZEUGtLUHBLWXovMFk2SDhiNUlRdDZIaGNKdHJzYnNwRDFaWWFDcWxFWlNid3JQ -YmhQcGt4WEtCdWdTaWNoZWtlLzZvc3E5dzdGdgpsYzg3OUQxSGJMZjc5MGpqTytWQ3lVaHBsU3hX -VjdRbmliQzJWOHhOWTJ2Y2R4ZU83K1B6VGpFUy8rampiM2ZnMVlwK1VZWVpBTGZpCnVxUTlINThP -NEJsWlJuY3RROXB6VXFXY3k0V3JJMGJWRWJJSlhJWThXZjFJWjJNL3JFLzZIUmdwRExVdUl4MGE1 -VXJoaWp0eG8zRFIKdWRLZmtUUnFFSEt1eHlzVi9WTEc0S2hCUERNTnB1SlBFZXhzRkpYVzNHbkVT -S2VMU2ZrR1Vicy9lUUJ5dG92d3U4UUhlQkliQnZDcwpOSmtpYW1aRTFyc3JSMTBhWmh4V1Z2UVhp -YnhXTG9sR1hJM0RVNVpSeW9yY0t3cCtMYzlzRVRLWDNxalJTWDl4YmhwbHd5UThscmNTCi9hR3pv -bjIwS0ZOTXowbVhMR2pEN1dJTzdzOWE2ekpoM054Wkk5WTdleklYaVdRd25OT1ArNjVRTHJVM2xm -NUVkemZoTGR5VGhpSTUKTUx5aVBTSTV6eFJidGI0VW0wcHFaVVVHUWwrL2Q5MWxVS1BycEV2d2pk -Z01PRVpFUVY4MXJGcHJNVXVrbkVhSnRkc09VUzk3Q2MvaQp3SlRrZGlmSHBTSUE2eEdCVUNkdXFY -VmpJMFk2VjVTczEyTXVUaFJaN2FIS1Fqd2dYclIxT0JSWDZmOWV1V1Vpc0NyUkxmYUFWT1lWCm44 -UEhTWHNCbnNMOW9qclFnek0xb2NvOVhhd1hmcTQ0ZmhKdjRGQ2w1TnFXNHBrbVByZmVuRFJDWkRO -V0pmMWgrRTE1L3F0S3ZaRzAKd2U3UjNaN0F6dVM4VURtWE9CNS9pYzMyYWNwZG9yeXhkSzU0NGJm -VXV6R3JCR3VyTUVlNG5KRTRTemtUZjdHeThkSmtndGpjQStlTApRS3d1dWV6SXpKR0pZblBKTkxG -WVBVVlVodGNLMXpNWVpvZ3R4dHRyWExOVkpBTGFSYXJ0RWVXa2MwR0xVS28yVDhIdnFtL01LY2lK -CnU4VWFEQjVYTG9EV1pXOXpkM25TSmtiU0F2RnZNaXRyWDE1UVVGQlFVRkJRTUFEK0E0UXR0bmUw -VkRacEFBQUFBRWxGVGtTdVFtQ0MK - - $$\frac{3}{2} \pi + \frac{e^{\mathbf{\imath} x}}{x^{2} + y}$$ - 3 - - - - - exp(I*x).subs(x,pi).evalf() - - python - 4 - 0 - - - pyout - -1.00000000000000 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNzQUFBQVNDQVlBQUFEQ0tDZWxBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBVjFKUkVGVQpTSW50MWIxTEhFRVl4L0hQK1ZhY1RkS3BLS0tGWElxSUlCWmFo -QlRYMlBrM3BJcFZJRmhvTUYyNkE4RktzTEt6Q3FuVHB4SUxVVWpoClc2RkZiSUlJdVNLY2VCWTdx -OHV5QjlsN0NTZjRnK0hoK1Q0N3ovd1labWQ0UWlwMG9PY1gzS0NTYzE0Wnl6aEJIUmZZYXErMVI1 -VkUKQnV0WXpUbDNHbFZNaHJ3ZmUvaVEvS2luUllPeEtsaEJyY241YS9pQjg1RFhzQnY2anJic3Jv -Rks4dS9zT0c3eE1jVmZoVjd2WXRDdQpuVzFGTStnVm5kV2tUa044RzROdU1Ec1U0cDhVcjRVeEhJ -TnVNbHZOcUZYeElrNjZ3ZXpmRU84eWF2MUozZzFtanhyd0FvcjRGWU8rClJQRTF0djM3UTNHQTk4 -MjRTK2t3eEpjcFhneGVybUtRTkh1RStUWXNubGVYdU1aWWlzK0YrTER6Ly9zWURHQWlneDlpTWNY -SytJMmQKVHBsWkVGM2tHdzNxMzBVUHdHeUt2eEg5K1ZNaEg4UXgxanZnMFNmc2krN0tlaGcvZzdt -a0tqakRTRWFQSlh6REpyN2lzK2l4ZU5hegprcm9INUFBOVNzd2xFUkVBQUFBQVNVVk9SSzVDWUlJ -PQo= - - $$-1.0$$ - 4 - - - - - e = x + 2*y - python - 5 - 1 - - - - srepr(e) - python - 6 - 0 - - - pyout - Add(Symbol(&apos;x&apos;), Mul(Integer(2), Symbol(&apos;y&apos;))) - 6 - - - - - exp(pi * sqrt(163)).evalf(50) - python - 7 - 0 - - - pyout - 262537412640768743.99999999999925007259719818568888 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWZ3QUFBQVNDQVlBQUFDK2EyeFZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDWHRKUkVGVQplSnp0bkhtczNVVVZ4ejk5cjQvdDBiSVkzNFBhRm9nZ1VHdlRo -S0JJWGFKRWdiREVWRVVDbUpacVJHSlVsRUkwUUt5SUlFV2haUWxhCmxseXRLUllyRkdSckpGaUN1 -S0ZZTEtzc1VvU0NLRkJJcXlqWStzZVpzWFBuenZ4K1ozNTNYcTZYekRlNWVlL09uTjg1Wjg2Y2Mz -NXoKWjRPQ2dvS0Nnb0tDTnp6R2VkK25BUmNBMndBN0FiOEV2ZzY4RkhoMkNuQTI4Qi9nWldBanNC -RFkxSURmZW1BRnNBeDRIamdXK0lUNQpQT3pRN1F2TUIxNEg5ak8wNXdMM09UU0hBMWNBYTR3dS93 -STJPL1gzQUpjRjJvUGhQUVNjRjZtZkRLd0c5bzdVNTdhZlZyL0pSdTZ6Cmh0Y1FjQkh3Z2tPVGFo -ZU5mcnNBWHdFR1RYc0hnYThCZitsQ3JxYTlHajhJWVFnNEhkak42UEFxNG5QK2M0V3VQK2tnZjg3 -UnhKYVcKTGlVV2NyWkRhNzhtc1ZxVkUxUDZUWk5MdEhKVCtHbjlBUExseEY3Uy9RLzdBcjhBcGpv -TTFwclBKSTkyQlBnemNMRDV2aXZ3Q1BDbApodnkyZUo5TndORWV6VDdBS21DQytUNE9XQTY4QWt4 -MzZFNE44SE0vaHdkYkQzc1l1UXNDZGNQQWg0RS9HUjRoNUxhZlZyOUI0REhnCk0wN1pPWWl0QnB5 -eUZMdG85TnNac2YvdVR0a000QUVrR0p2STFiUlg2d2MrQmd6ZDFVN1oyNEVuZ1RjVnVyNm5nL3c1 -Unh0YnVXTXcKWnp0UzdKY1NxM1U1TVVXdU5wZG81S2J5MC9nQjVNMkp2YUpydy9WT1l5d09Sb3l3 -MkN1L0RqakYrVDRDckFNKzNaRGZPbUNKVWZvVQp3cU8yczVDUjFWRk8yWEdHMzdsTzJYZUJ2WkRS -NWFCVFBndTROTURYWW9uaHRjQXIzeDlZYVdUY1RkekpjdHRQcTkveHlFaDgyQ25iCng5RE9jOHBT -N0tMUjd3VGd6SUNlQzRFdk41VHJJdFplclIvNCtKU2htZW1WUDJSa0Zicitwb1A4T1VjYlc3bGpN -R2M3VXV5bjFVK1QKRTFQa2FuT0pOaGRyK1lIT0R5QnZUdXdWWFJ2K2lreGhUSERLeGlQVE1BODRa -UjhIL28yTUtxcWc1UWN5TlZPSDJjRFRpUE5aSEl0MAordWxPMmVXQlozY0ViZ04ycU9CdGVTMm8w -S0ZGM01seTIwK3IzeHJnanNBemp5Tk9hcUcxaTFhL0M0RkhnVzI5OHZPUXFjZFV1UzZxCjJxdjFB -eC9YR0JwZjVncmdtVUxYOTNTUVArZG9ZeXQzRE9ac1I0cjltc1JxaTNCT1RKR3J6U1VhdWFuOFZr -ZDR1TWlkRTN0RjE0YTcKZ1g4ZzZ5MHVYa2JXTml5V0F3L0dtRFRnQnpxamg3QVlDWUpwTlhTWEEr -K0sxTzBJWEduKzcrYUZuOXQrR3YzR0kydGozd3M4dHdwNApzWVozeUM1YS9ZNHgraXhIcGh4Qmdu -c3RNaEpQbFd1UjBoOFdHajlZWS9nTmV1VVhtUEszRmJxK3BvTzhPVWNiVzJNUmd6bmJrV0kvCnJY -NHVXb1J6WW9yY0pya2tKamVWMytvSUR4ZTVjMkt2Nk5yV2w5NlByQTg5NTVSTkJTWUN2M0hLWmdK -L1E1emdtNGpocjZkektrVEwKRDJSa2Nwcmh0eGk0QkpsYXFzSjBaQ3BqSHRXZE1Rc1lEY2kwK0Ny -eFRYb3B5RzAvalg2anlCcjJ4a0RkSnFUei9WR2ZSY3d1V3YxVwpBcmNqenZZZzhFbmdXbVFkOEtH -SXpDcTVGcW45b2ZXRE5lYnZCSy9jcm50TktYUjlUUWQ1YzQ0MnRzWWlCbk8ySThWK1d2MDBTSkhi -Ck5KZkVrTUpQOCs3Sm5STjdSVmVMYnlIcnBYWTlhZGg4WHd0OHpxR2JqZXdlamIyMFl2d3NIcVhk -QVU0RzdxZDlUY3ppU01QbldXQk8KYlF2Zzk4QkhJblV6a1JlTVJUZS84RVBvMW41MStoMWd5czRP -eUY1cTZrWWp1b1hza3FyZk1IQUxXemU4M0ZRaHIwcXVSVXAvcFByQgp4d3kvZzV5eVFjVDN0aURC -VXVqNmx5NkdwamxIRzF1NVl6Q0dwdTNveG40YS9WcUVjMktxM05SY0VwT2J5cS9PZm1PVkUzdEZG -OFhlCnlLalZYUU1ZTmN4ZVJhWmVMUWFRMGVpMWlmemM1MTBNSVZOYTUxZndHdy84REZrNzJ6NUNj -d2d5QlRZVWtmbDk1TmlMUmM0WGZyZjIKMCtnM3ZVTG5INW02TndmcVluWko3ZC9qa0dNNlJ3QlBt -R2VmSUw0ek5IZC9nTTRQTEJZQk55QnJjWVBBRjVBMXhTM0FvWVd1NytsOApkSk56dExHVk93WkQ2 -RFozTnJHZlZyOFc4WnlZSWpjMWwxVEpUZUZYWjcreHlvbTlvZ3RpTytUTTVVS3ZmTWd3dWovd3pM -MklVL3BuCis2djRWV0VkOVZOSjd6UDZ0Q0wxUHdGK0VLazdHZmlBVjVicmhaL0RmaHI5aHBEZHdR -dm94RStSalNhaC9valpKVVcvdWNETlR2MHcKY3U1NE0zSm1PSVRjL1dGUjV3Y1dBOGlSbTBYSXNh -a0RrZDNIVzRDM0ZMcStwM1BSYmM3UnhsYnVHUFNSSTNjMnNaOVd2eGJ4bktpVgpPNWYwWEZJbHR3 -ay9GNzRmNU02SnZhSUxZaHl5dy9JYmtmcjF3RjJCOHJzUXcreWF5TzhHNE1aQStYTzBYekl4QlRs -YjZHS2lrZmtLCm5TUFJJYVF6RmdWNDc0YXMxZmpJOGNMUFliOFUvZTZqODZnT3dNK1IzZXcrcXV5 -aTFRL2dWOEE3QTNTZlJSek4vMVdUcXo5Uy9hQU8KeTZqZldGWG8rb3N1Vjg3UnhsYnVHTFRJMVk0 -UXF1eW4xUS9TbHpsRGNsTnpTWjFjTFQrdC9YTG54RjdSQlhFT2N0Ylp4VnpuLzZXRQpOd0xjUS9o -V256cCs2NEU3dmZvUnhKQ3J6UGZ0a0IycXJ3TnZkZWpzZE10R1ErTmlGdkcxdFJPUWFlQ1Z6dWRt -US8rdytUNDc4RnlMCmV1Zk9ZYjhVL1piU2Z2UUhaUHBzQTNCclFFNlZYYlQ2RFNPT0ZEcW1NZzU1 -OGZvYlgzTDBSeE0vcU1QVHlPMWloZTZOUTVjajU0QSsKdG5MSG9FV3Vkb1JRWlQrdGZwRCt3dmZs -TnNrbFZYSlQrS1g0UWE2YzJDdTZJRTRrM01sWE9mOS9GUGduVzdmL1c4WWI2SnhTMWZCYgpRdWVz -d0dHSTBlMUZCd1BJMmMwLzBMNU9lN1NoV3htUU1jZlV6US9VaGJBbjNmL0N6MjAvalg3emtlczdY -YnNjWkdnUENmQ3BzNHRXCnY5L1Nmdm1OeGJ2cFBDdXNrZXRqVHpyYm0rb0hVeHk2bWViWkR6bjE3 -MFYyMzdvM2Z4VzYvcVN6eUpWelFCOWJ1V01ROHJVajFYNWEKL1N4YWhITmlpdHpVWEZJbE40V2Yx -Zzl5NThSZTBiWGhnOERmZ1I5Nm54OGo1L3RjckVDT0o5aTFpM25JQ01nMWlKYmZOTVJvOW9LRwpB -V1Mwdkl6MkRSWDI2SVNWT1lKY0NQRVU0Yk9hcHlFZGQxS3N3UjVtR1BvTEsyaHVORFFqZ2JyYzl0 -UHF0d3R5emVUbm5iSWx3SzhqCmZEUjIwZWgzbENuYnp5bWJqUHlpY1lNOFJhNkxXSHUxZm5BQXNy -djJOdk45RXJLai96M20reWh5TWNvY2ozK2g2MDg2eUo5enRMR1YKT3daenRpUEZmbHI5WE1SeVlv -cmMxRnhTSlRlRm45WVBJRzlPN0JWZDIyYVNsNGpmSk9SUExlMkUzR3EyUDNMVzlIbGtEZXVwaHZ3 -TwpSSzVpM0I1NERibWorQ0prNnRiRkVjaHVSSkNkcTM5RWRxNkcxc2tPUlViRGh4SGVjR0V4RVZu -TGVRY3k4dHlNakpqT1IzNHhqaUNCCk5vbXRSekEySU1jNUxrWUNFZkxiVDZzZnlDVVdaeUU3U1VH -bWViNklqS1o5YU95aTFXOEdjb3h1MEh4ZUE3NE4vSzZoWE5DMVYrTUgKVTVGTE5hNEJ6akJsYzVB -TmZoT1IvdndPblZPeGhhNS82Y1lpNTJoaksyY001bTZIMW41YS9iUTVNVVd1SnBkbzVXcjVnZDRQ -Y3VmRQpYdEVWRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZQei80Nzg5SFRDck1uK05RZ0FB -QUFCSlJVNUVya0pnZ2c9PQo= - - $$262537412640768743.99999999999925007259719818568888$$ - 7 - - - - - <h2>Algebra<h2> - - - ((x+y)**2 * (x+1)).expand() - python - 8 - 0 - - - pyout - 3 2 2 2 2 -x + 2⋅x ⋅y + x + x⋅y + 2⋅x⋅y + y - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVEwQUFBQWJDQVlBQUFCbTZ0bzZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCWE5KUkVGVQplSnp0bkYyTVhWTVV4My9UTVMydFZLTXpoSVFNTTFFMFNGdU1x -WmlXZUNCSVV4L1ZpS1FQVkJvSkhrWjlwYVNrUWdqeFVVYVErSXFQCkJnOEVJZWljTkQ2aWlYcVll -dENrQ1lJZ2paSlFUVkFlMXJtWjA1T1plL2ZhZSsxNzdqWDdsMHpPUGVlc3ZmYjZyNzFuMzdQM09l -ZEMKSXBGSU5Ja2pnV09yRHNLSURxQVBPTGpxUUl4SWVoSWgxTTMzTkErSHM0RjdnUk9CYzRFdmdP -TjhvMnNCZWhFOUE4QlR3UFBBZ1ZVRwpGRWd2U1UvQ24xNGk1UHM4NERlZ0s5OGZCWjROZFZvaHp3 -Rkg1Wjg3Z2ErQVc2c0xKNWlrSnhGQ3czejdYR204Qy9RQWYrWDcwNEVmClBRTnNCZnFBcS9MUC93 -Qmp3T25WaFJOTTBwTUlJWHErendDMkFuTXNuVHJRRGF3RFhnUnVCaFlFK0pxT3pPSEl0enVBNGFE -b3FpWHAKc2NleXY3VTZVZk45R2JBUnVBRy9LeFpmamdjK0JDNUdGbU9IZ2IrQk5RYStWd1B2QXdj -WStHb0ZrcDV3WXZhM1ZzY3MzN09BUXd2Nwo3d0NQQi9yc1ZOaU9Bb3RLeHg0Ri9nWE9DWWhoTWZB -TU1DUEFoeGFOYmkyV2VtTEc2VXBWZW1MMU4wdGl0SS9wLzhQcndPYkMvbVBBCk40RSszM2EwbXdQ -OENseGJPcjRFYWNRSFBPcy9DYmlGOGN1eVpuVUdWOTFhclBYRWl0T1ZxdlRFNm0vV1dMZFAzWHo3 -VENzK1FVWWcKa0Rzb1p3RXYrMGFYTTh2UmJpWnl5M2NENDRJQXZzNjNwM2pVM1Flc0JiWURGd0RM -Z0tVZWZueHcxYTBoaHA0WWNicFNwWjRZL1MwRwpsdTNUTU4vbHVjcE1ZQlhRRDN3T3ZBUU1BUmNC -dTRFSGtkSDFDdUI2NU9HdWpjQ1Roa0hYNHdmZ2ZPQjNaS1N2MFpkdnQ1ZnNYZlRjCmpqeHpzcjVR -N3A0R2NTeEhWcFJIZ0c4THg1Y0NndzdsZlltbHh4cVhPUGZtdG8xeU9ZL3E5TVRvYjY2NlkycXNW -L2Q3eUIyVDlZWGoKazhaeUVMSTIwWThNSmg4QkR3TjNBRWNETzRHcnpjTGVueXl3L0FoeWU2aDRh -eWlXbm5WSVI3Z0xlS1YwYmpQd3BzSlhwckJ0bC9iUgp4R21aU3cxWllQblEvbWF0TzFQWW10WTl6 -UDVQZHI0QWZJZmNnaGtBdGdFbmFCd3F5QUxLOWlPajkvMmw0ekgwSElITTlRQTJJYU55CmpTNWdE -M0Nqd2wrbXNHMlg5bkdOMHpxWEdyS0FzcUg5TFlidXpOSE92TzVscGYweDRBbU5nd0F5ejNKZHdL -ZklHa3Q1ZlNhR25nSGcKY0dTZSt3ZHlTNnJHWXVRUzlqU0Z2MHhoMnk3dDR4cW5kUzQxWko3bExQ -cGJETjJabzUxSjNjVTFqVGNLbjN1QStjRGRqc0c0MEpQNwptMmp4ZFI3dzlBVEg5eUJySjVNeEFu -d0pYQVBzSzUyTG9lZXpmTHNLeWQxcmhYTkR5TngzVzZtTWxlNTJhUi9YT0gxeXFhRlYrNXV2CmJn -czlKam1mN0tHTnM1SFY0cXlSQXdXL0lDUHZSS0lYTVBHb3ZIZUNZelZ1eXM5ZngvZ2kxU0prQWFx -TXRaN2x3QlprY2F2R0VQQXgKTXRjdFlxMGIycU45d0MxT1RTNDF0SHAvMCtxMjFHT1c4NFhJWlF0 -NUFEc0w1enFBaHpUT2xHUksrMHVSVWIramRMeVl1Smg2ZGlCdgpBdGFZaHJ6RWQ1dlNUNmF3Ylpm -MjBjWnBsVXNObWRJK1JuK3oxSjBwN1lQcXJvMWFnOGlJdVFLWUMxd0NmRit3VzBHOGxXd3RnOGlL -CjlCYmdjbUJsL3JjVytMbGdFMVBQTHNiZjhnVlpGWitkeHhTRGRta2ZuemliblVzdHNmcGJsYnFE -NnE1TlQzWWhJK00rNUJIWkpjanEKNm1yZ0dDUTVtMnppRGVJd1pPN1lnOXdETDNObHZvMnQ1ejdr -bTJNTSthMkJOY0NmeU10N01XaVg5dkdKczltNTFCQ3p2MVdwMjZ6dQpibVFGdFRhUWRBS24wcHdm -UE1rYzdRNEJMcXp6TjdkZ0cxdFBOL0lOVS92TmdWYzlmR1RLK2xxOWZjQXZUb3RjYXNnYzdXTDNO -eXZkCm1VZVpadWZjbk5HcUExQ3dFcml6c0g4bXNqQzIwTU5YdStpT0ZhZGxMalZVblhkcjNSbzlW -ZVhjblA2cUExQ3dHL2dnL3p3RHVRVzMKd2ROWHUraU9GYWRsTGpWVW5YZHIzUm85d1hXWFY0TVRq -WGtFbWFQK2hOeTZlb3Z3bndhWXFrelZYRmFwZTZybXZISk9SdDV3VElOdQpPRk0xbDFYcW5xbzVU -eVFTaVVRaWtVZ2tFdjh2L2dOSTlna3IrVWRUU2dBQUFBQkpSVTVFcmtKZ2dnPT0K - - $$x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$$ - 8 - - - - - a = 1/x + (x*sin(x) - 1)/x -display(a) -simplify(a) - python - 9 - 0 - - - display_data - x⋅sin(x) - 1 1 -──────────── + ─ - x x - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhVQUFBQWVDQVlBQUFBU04xRWxBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBeUZKUkVGVQphSUh0Mmx1b0ZWVWN4L0dQRjlTZ2N4R09jaUlVSXpXRm9CQ3Bp -Q2lTeW9KZVNqSXhFVEZRb2NTWFh1b3Q2TG1ISG9JZ0tIenNZa1VoCkpoVlIwSk5CQ3FGb2lBb1Jl -Z1NGRkV3dGUvalBoam5qdnN6ZSs4eWVPZWZNRnphc21YWDdyZjkvcjFuL05XdW9xZW1TVWR4UnRv -Z20KTEMxYlFCZFVUdXQzZUtGc0VTa1c0MVg4VnJhUUhQU3NkZjdVYTVuRU0vaXY0RDd5TW9TdEdN -YWlrclYwWWlCYVJ6Q1dwRWN4bnNvYgp4dkltZGNZd0wzUHY3bFI2U2VaNkR1N00yZTlJTHRYTmVS -WW4rcWcvU0hyU21tZW12b1JyZUVRWS9uZnN4VzVzd01XazQrZndRVkxuCmViR1c3a3p1d3pheFBq -eUFIM0FhMi9Fejl1T0pKSjJuMzFFY3c2WHVoanM3Nk9UVXBiaU9yOFVzZWdWdmlkbnpCejdGK3FT -ZGZjS3AKQzhWTU9wdWtHeXpDVWJGTzdNSS9XSmZVM3k4YzlXL09mcThLcC8rRU40VFRXL0Vlem5V -WTU2emxmYnlXdWZjNWJnampyc3prZlN4bQpaNXAzOEdicStrQlNaZ3didStpWCtIUDB3b3gvL003 -dG91eFQ0ckVKcTNFUE5tRUZUdUwxVk5tUnBQeG51SzlGRzhONEhGL2hYcTBECmdteS9EYkxyZFUx -Q0o2ZnV3YnQ0U0FRMUowVmt0aG0vQ0VmOEtkYTM3MVAxbnNhM1dHWnljTE1LUjVMckRmaFJQRjdI -VFE1K1d2WDcKYUtyTXRWd2p2SjA1MmordSsySHVGTGZkazlaTy8vWWhzVithaDQvRUZtVTVQaFRy -MUlQSjlRVWNUTldid1AyNGlVUEp2UlZpSFcwNAovenpXaW5YM0N6RUxqK05XbTM0L0VldnVZL2dW -ZjNjNTFyZEZFTGRBQkd4d3FvczJPckZUalBONG4rME1RdXRBbUMrQ3BUd3NLVkpJCkgrekJsckpG -ZExPbUZzMU5YTTVaZHFKSUlkT2RLam0xWm9wbzdGTnZsYXFpK2hRUldCVm04NFpUaTRvR2ExcFRt -TTFyWi9iR1ZyRWwKeTdKR3ZBazczU1R2UzN4VHBLZ0d0Vk43NHk2VER5TWF2SWdyT053azc0eDRU -MTQ0UlIrOXpWVCtTbjVaMW9zSS9raVR2SUZScGVpMwozZkhlYktSbmUxUmxwclk3Wmp0YW9xNnk2 -TXNlVlhCcXAyTzIyY2FNczBlclk3YnB3bTY4UElYdFRYZDdJRTVqMWlicDFlMEtWcFF4Ci9YMXFr -MlhhMmlOOXpIWlZuRkFNWVVlSm1zcWtiM3RVWVovNkpCNFdSM2tYeFJjVWw4UlhGZGRMMUZVV3RU -MXFhbXBxYW1vcXd2OFkKb1ppay82UzJTZ0FBQUFCSlJVNUVya0pnZ2c9PQo= - - $$\frac{x \operatorname{sin}\left(x\right) -1}{x} + \frac{1}{x}$$ - - - pyout - sin(x) - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQVNDQVlBQUFBZFpsMjZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBblZKUkVGVQpTSW50MWtsbzExY1FCL0JQaktsYlJhcWlndEZLMGtRd2l0aUlR -bHhBMGlXQ0lvcEtMMExkd0FWQmlCc2VGQThpYUE5aWdyYmlvWmNlCmhOQkxDL1dnWUtIUXFsRlJY -TkJhcUJzcVZuRERoV2oxTUMvdHk1Ky9IaVNRZy9sZWZqUHovYzk3TS9ObWhqL3ZLVDdIRFZSMWRT -QTkKM3RGdkdNN2hlaWZHMG8xdWRBVktpdGcrd2pZOHdCTzA0WnZFZllaWnFNWWkzTXY4R2pFZHQ3 -QUNNekZSekVzVmx1bzRNNE5RaWVOaQpGamVrdXl2d0xSNWlHVXJSaXQvd0hIKytMYUVldUlpeFNh -L0VQeW13MGRpYzdHZXdKdk1ia3hJWWdGZlloNGFNL3huN0MrNWFuTW5iCjB4bFFKd3B6UUJUNEtD -NGtia094Z0hQVVlTVCtUdnA5N01BSnJNUWVVZEd4T2xaelBscFFudlJMT0pUeEpSaVM2UVB3YjVK -cmNEc0wKOGdNTXhQZWlHRDlpZGVKT29iWXdpUnhqa3ROZmFNSzBqS3RJMzAyNGc3S01xMHpmVlhp -RzNnWG5Yc2VXVEsvSHBDUVBSWitNV3kvYQp0N1JJZkIrTFFyNFZ5M0V0SmZLcXdLRUVWN0R6RGI0 -dCtMWEE5bWs2cHk2ekxmUi95eFRpRjlGeXhWQ0tyVzhLdkJBMW90ZGJNMXQ5CkNxWmF2TUNJakN2 -QlhiRUFjdXdVU1JOdDlDRyt3SmRGN2l6REk2ekxiSDFGMjByMzVWeUhHZmdPcHpQOVBBNktvVzdI -MTJJYlhNWlgKR0o1eDR6QllERjJPUmZnaHlSdnhVdlR5SjhsV2o3VkpucG9TUEpuNU42SlhrcXZF -UEJaTm9FWU1URHVHWURaMlpiWnlIRUYvVE1BZgpHVGREckxuZk0xdGZzUm9QaTVhNWk2ZGlzL1VU -cjlhTU9TbVdKV0lEdlVqK3RlTEZyeVo5b2lqZ2Y4Z0g1WmdZa2daTXdYanN4dG5zCk43ZXdBS01T -OXpqajVvcnQxWkxaMmxJdzg4UjJhUkl2UU16WkpQR2EvVVN4bXZHVFdOR1QwUk43azg4NDNCUi9J -cnZSamM3Q2E1bk8KZmowTHpCZHJBQUFBQUVsRlRrU3VRbUNDCg== - - $$\operatorname{sin}\left(x\right)$$ - 9 - - - - - solve(Eq(x**3 + 2*x**2 + 4*x + 8, 0), x) - python - 10 - 0 - - - pyout - [-2⋅ⅈ, 2⋅ⅈ, -2] - 10 - - - - - a, b = symbols('a b') -Sum(6*n**2 + 2**n, (n, a, b)) - python - 11 - 0 - - - pyout - b - ___ - \ &#96; - \ ⎛ n 2⎞ - / ⎝2 + 6⋅n ⎠ - /__, -n = a - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQTVDQVlBQUFEOVlPOGJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCNU5KUkVGVQplSnp0M0h1d1ZYVVZ3UEVQOXdVSUJnaHBrS1h5U0lRSXpNbWdx -R3l3eHdSVU51TmdRelZJMDBSUHBiU3dtbDZXdlN4cnhvaWlzZElhCnpYQWFLcHNzU0NJekozdEtw -aFdCbFdFUnBXVStRZW1QdFk5bjMrMDU1NTZ6OXo3QWRmWjNacy9kKzNkK2ozWDMrajNXYi8zV09W -UTgKcHVrdFVIWVdqc0c5dUw4Y2NTcktwcWRBMlNkakU1NVlraXdWaHhoUHdGOFB0aEFWclNreVJa -K0doN0FGby9CQUdRSlZsRXNSQlorRAovZGlGYzVPMFB4U1dxT0tRNFhZY25kd3Z4ZWFES0V0RkUv -SWFXVS9GYnFGa21JbjdTcEdvb2xUeUtuZ21mcEY2ZmlrMkZoZW5vbXp5Ckt2aEc3RTN1RitGQlhG -S0tSQldsTXFKQTJkTXdFWWRqcmNxS3JxaW9xS2lvNklSR2EvQktITkhGTmpmalYxMnN2eUpGSXdW -L0I0dVQKKzN1eFRuaXNXakdBc1JpVC9CMHJPc25zQm0xc3hxazU1YTBvZ2NuQ2liRS91YzRwVU5j -a3ZCSmZ4dDlTZGM0dUptSkZVVjZNaDRVeQpIc1F6UzZyM1ZiZ1RueStwdm9vQ2ZFSjl4TzNFdUpM -cWZSSzJZMEpKOVZYa3BCOC9VMWZ5aGhMclhxcCtBbFZ4RUptSy82Z3IrWTBsCjFsMUZnaHdpbktH -dTRQc3d0OHZ0bllmanV0ekdZNDJKWWtuTnpSZlZsZng3c1EzcUJtL0RpaTdWUFJ5WmlsZUkwN3Vo -T0JkbjVXM28KTU55c3J1Ukw4MWJVZ21jb2Q1MGY3cXdRVHFkNXVFcHNOZnRiNU8vSE5yd3diNE56 -eEJSZFUvS1plU3Rxd2c4eHYrUTZoeXQ5K0ltWQplb2tUdTcxNHlSRGxGaW5vSlh5RHVvTHZ3UWxG -S2t0eGlqaGp6c3RDMFFFSkcyR1ppUG9jcm96RXI3RWdsYlliWjdkUjl2dGlOc3pOCkJuVWwzNFRS -UlNwTHVBZ2ZicERlZzlVaVdtUUxQb0labVR6emhldHptK2lBTTNFc2JpbEJyazdvRnpiRUpmZzAz -aXVXdGpLWUpiNWMKME01YS9IRjhvVWhqNDNHYnVwTEw4RXJkakpjMVNMOFNxMFJZN2hHNERIdHdj -aXJQVWhFZHVrZDgwNElJQnR4VmdsenQwb05yOGM1VQoyZ2JSY2N1byt4cThwczM4cjhPL2l6YTZR -S3dKKzdGUFBib3lENGNuOVV6TnBDOFdDazB6UnZpMGQyYlNUOFlOcWVlVnVLS0FUSk4xCkZzNjBX -blRHR3YyNFF6bGhUQjhWTVcvdGNvcDRuK09MTnZ4QjVUZy9aalFSNkVMOEVjL0twRitaNUorZVNq -dlA0Q2wrcytnZ3o1WXYKTE9sek9MN052TlBGcWR0ek11bWpjcmFkNXMwNEtibnZGMXVtb1pnaTNz -OWM4Z2ZkUFM1cDdFSVJqMVdFb3hLQi9wdEp2MXU4dkt5Qwo5eVIvMHlOK2tiRENhOHpCOVNLOGQ2 -aWp6a2FNMEw1eWxnbWo2SVpNK3YwNTI2NXhOcDZPRjJDTm1PNzN0aXdSN0JJRzhER0VPZDRwCmZX -Sjl1UVh2eUZFK1M2MlRqVFE0dHZwOGZCZS96T1N2R1JycHNOMnI4ZVBVOHdxOENGOHFRYjZobUlk -L2lSbG9sUmhCQThJZzNKN0sKTnhWdkY0UGpQZmluTUFySGl3NzVHYkdPRTQ2a3A0bDNremFzZnQ2 -bVRQdkUrOHpGZXJGSEc1VzNnZ3d6UlUrZk0xUkdUQlBDZjYyawp0cHV4VG5zV0s3R00vRU1zRTdW -M2NxbzRGajB4bGU5aWNTTDNMWHdUNzFjL1VWc21mUDVGdmtwVTQwanhQcCticC9BYThROU5La0dR -CkdoTVNnZHBaWDc0aExQZ3kyMjlFSndxK1M4aWZkZExjaUszSi9TUjhMTG5mZ2gzQ1lLeXhKS25q -cUJ5eVpsbVkxTld1RGZFSXA0dk4KZG5ZZldnWTdST2RweFVyODJZRTVpT2hFd1R2RTJwaDFJMTZo -cnJRanhkNjh0Z3k5SlpOM0RmNmVVOVlzWjRwdFVpL3RyOEVMeE9aNQpzUmpCWlRBVy8wdnVyOUc2 -NHl3VW9VUFBFeU80TE5ZS1F5YkxjV0pFTnZybGd0WDRhZXA1bC9oZnNnYlEzY25mNldKSkkrUWZK -VVp4Cm1pWDRVYnRDRDhFTThjWDhoOW90TUZYMHJ0TkxFb0FJQVVwdmF4Wjd0QlZhWTdwNG9WTlNh -VFBrbUlJYTBDZGVlUFphTDR5Y1JwOWwKK1pBSWE4cGEzWmVLc0tlSnFiUVBDT01xbmZkb29ZeWx5 -WFBSL2V0R3ZMcmR6Qk53cTNLakx3N0Rid3llQWtjSUozbjJKR1FpdnVmUgpqcFEzNmU2NWRDZFQ5 -SHd4Rldkbm9LMzRiWU8wcXpKcDd4Sks3eE1XK2VzN2tuUXdKNHJqM0ZhblRvOHdJTXoyb3Z2Y05D -ZUpEdE5vCnRDNFJ3ZzBrenlQRkM3bE1qSkxhZFlId081ZmhBMjlHSndvbVJ2eG5VOCt6aFJXZGRx -bU9GdC9meXE2L1g4WGxvcE5mSlAvdVpJU1kKNlphM1crQXJJa2E2aU9rK1FpajEzVUpaKzBSdlg5 -VWsvMXJSb3hrYzlKZTliaXNnVXp0MHF1RFJRdmFOU2RuTGhZTWl6VnloNEdtWgo5T2VMRHY5SjRY -bkx5MnVGWVRkb3FXam1yWG1mVU1vRjZvWlFLM3JGMURzbWRZMFR4dG5qTTNrZkVFZDVkeldvcDBl -OG9QT0ZnVE9tClFaNWFIWGUwSVZkZTFva1RvVnM3TE5jamxIMVBrOC9ITlBsc1FIVCtoenRzcjhZ -NDRWNWRJZXlCbGl6WGZPU1VjWDE5aVBaN0ZmREMKbE1URkJ2dTZEM1dhdnJOR0kvamx1dXRJdUU3 -bkkrTkFNMXIxa3hRVkZSVVZGZDBsdlFZdkZDY2EyNFJKUDFPNHo5SSswaE8wM2pidApGeitHbG5Y -YnpSYS9iWG1kOE12K3FaRFVGVzFUVTlaOHNjMVpuenh2RjQ3OUg2aHY0SHZGTWRoa3NjMXBkdTFV -LzBHV0FXRTEzeVNjCjhwdUVNK04zM2ZxSEtoclRyY0MxZFFZSG9tM1gvYU8raWhTMTA2UnZDN2Rh -YmVRU2Z1R3RtZnl6dEE3elNVL1JvOFhHK3luSlo4ZUsKMktVOWpRcFdkSWYwY2VFaWczOXZjamsr -SmR4bjF3dkZ6ak8wZ204WGEvbnh3bHYxbDFUOTF3cUYzeWtjN0JVSGtFMUNDVFYyaTlPawp2S2Ni -UFdMdDdSUFQvZFY0cStaKzZJb3VzMXI5SklmNEhzd1ptYlJPbVNKbWdtbkNYM3FXenB6NEZSVVZG -UlVWRlJYRGt2OER4SVdSCkNuc1FoM01BQUFBQVNVVk9SSzVDWUlJPQo= - - $$\sum_{n=a}^{b} \left(2^{n} + 6 n^{2}\right)$$ - 11 - - - - - <h2>Calculus</h2> - - - limit((sin(x)-x)/x**3, x, 0) - python - 12 - 0 - - - pyout - -1/6 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNZQUFBQWlDQVlBQUFBenJLdTRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBU3BKUkVGVQpXSVh0MTc4clJsRVl3UEVQWGlrWkxINE5TaFRLb0F5eW13M0tQ -eUpsc0Jzc1ZxdkJZREl3Q2NsL2dIcFhyOGxpRVlXTjRieDBrM0t1CnpzbXI5MzdyREdkNDd2UHR1 -Yys1enoyME9ZTi9MZkNWVVd4anAyeGdMYjNMSnpPWXh4Q2V5Z2JuRktzMzF4VDZ5d1ozSnRkSlJD -VlcKbHJZVzYyaXVVblJsRVBsZ0hPdFl3TEJ3T3U5d256Rm5SZXRSdWltLzRTM0JNLzRQeFlwTlls -VjhGUnZZU203VXBDalJnMm54WWcrNApUUzFVOFZ0U25NcWZtQlA2dHc5N2VJMEp5ajByTnpHQ2ZR -eGdMWE8rS0JaeFVOZ3ZDM016aXB5dmNoYzN1TVlZcm5DZU1WODBkWnlpClZ5akFNVlppZzNQMldE -Y3U4U3lNclJOc3hBYm5GR3Znc2JCL0VmN0xvc2dwZG9pSnduNFlGeG56UlZQREVaYUVpKytaY1Bs -dEdXYUYKejBUTFhud3EycE4zeXVnam5TelN5dGNBQUFBQVNVVk9SSzVDWUlJPQo= - - $$- \frac{1}{6}$$ - 12 - - - - - (1/cos(x)).series(x, 0, 6) - python - 13 - 0 - - - pyout - 2 4 - x 5⋅x -1 + ── + ──── + O(x**6) - 2 24 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5vQUFBQWlDQVlBQUFBNTNNZXZBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCdU5KUkVGVQplSnp0M0d1c1hGVVZ3UEZmZTN0YndOWUEwa3NyaGx4cktLaTBo -VWFEMU1aUUlNWTNYMnBpYVZIVW9vQlJCUEVCRW53QWlsSHhVUko4ClZMMGh4bmZ3RVlNMUFoODBZ -cUpHZ3lncUZnU0syaUtoUGlCdGxiWitXR2ZzNmR5WnVUUG5PUVBubjB4bXpqbjduTDMybXIzMlkr -MjkKRGcwTkRhVXpxMjRCK21BQ0Q5VXRSTTBjaHVQeHVQalA5dVBPV2lWcWVNSXdnWGZpaDNVTE1n -U3N4bCt3WGVqamxIckZhUmlVT1hVTAowSVduNHhVNEdtTVY1SGNpWG9uNW9pTC91SUk4QitWMXVL -Vm1HUlpnTGI1VXN4eFpXSTFmNDdHTTk4L0NNM0UvOW5aSk00bHgvQ2xqCkhyV3hVZm1WNnlSY2h0 -bkNzTy9GZVNYbk9TaXJjYVpvZ0k2b1VZN04rSEtOK1dkbEZhN0ljZi9iY0RaZUpCcVo4UzdwWnVN -ck9MTFQKaFNjNzUrS3AySWNkbU1JbE5jclRqWFU0QWEvQkoyckkvK1g0VnczNTVtVWhMc2VITTk2 -L0ZvY0xBN29EWjJGUmw3VDd4SC96VFczRwoyQmdhM3hQRGdSYVA2OTVpMWNWOStDQnV3dzFZZzFk -Vm1QL1JvamY5VllWNUZzV1ZRbWZkaG5zenNRbmZFTWExWC9SVzIzcWsvNFVZCk9wN1R6OFBuNEpN -WkJTdVNLb2FPYVdiak4zaHJoWG4ydzNGaS90amlWdFgrUCs4UnV0bWczcUhqTS9BdUhJSzVvcGZm -aE0rSk9mM2MKdHZTTDhIdlp2ZXRMaEhHZGd6TndMYTdxNDc2bjRXY3pKUnJIVjVNTTZxWnFRN3NT -SDZrd3YzNjVDMjlNSFcvRFJSWGx2VTQ0QWFqWAowTmJqUjRrc3A0cDZjUTIraTEyaXZuNjI3WjdY -NC9NNThqd3plZTRaeWZGc01iMDRyWTk3SDhDS1RoZVc0UHU0UFVtVXg5Q0s4aFNlCkoxcnZLbGlQ -ODVQZmVlVXYybE42b1poSHd2UHhaOTNuQ1VVeUlScmRqY2xuczJpcE44cmVTMlRSelRWaTNqTW1E -TzEzZUZicStsSTgKS3Vyc2FhbnpYeGV5WnVYazVKbUxVK2Z1MEYrdmRxdFlucHJHUEFlNjNpblpE -ZTBZMFpYbjRRaGNqUzM0T2E0VG5yZXllSWtZZXJTNApQTWV6aWloL08yT2lkYjRFSDhXeEJUKy9W -NzVIcFQ0ZkVoWCtxSXpQeTZLYjk0bWViRzRpeiszQ0lkSE91MFdkVFhzWDc4VHBnNHY1CmY4YnhE -MkhJTGU3U24vRitCdGUzRHRMcmFIdHlDSlJtM1BTeDhxRHNsTThkT3docnhHVDVmbHdxV3VvZE9a -NVhSUG5iMmF1ZXRhdTkKZURqNXZVVDBJc2VLbnU3aGJqZjFZRkRkckJDTjNuUHhIM3dBL3hiRHhY -WittbndmbHpvM0lRd2xLLy9GcDBVamZKMXdDTTNCZC9xNAo5MjVSdHpDOEM5WkY4V3pobnAyUEcv -RkhNUXhiSW5yTExXSjhmMW5iZmZkVUtHTmQ5S09iTkNmZzI4bnY1YUpsTDV1UEM0L2ZWdEdiClBh -aHpiOFlCVDJCNnU5NENZYURkNkVjSDc4ZGJ4R2hpbGhqOTlOUEliQmVHM3BNcDJZZU9rOG45ZFhP -cWFBRVB3ekt4aGVrR3JCUzcKTEI0VjNxdWltVFFjNWUvRktPam1GRkVIMS9hWnZ1VzRlSFBxM0lP -Nkw0T1VyWVAzNHViV1FkMDlXaG1lelZuQ08vUmFYSkNjMnlxYwpCenZGV3REWnVBbTdTOGgvRU9y -dzdJNFpEZDA4TC9uK1E1L3BsNGtGNDdTWGVvZUQ1MWN0cXFnZlM2V21JSFViV2xuUkF4TU9iam1Y -CkMrWGVsQnhmV2xLK2cxSkg5TVFpbzZHYlpjbjNJMzJtUDB0NHpkUEQvbC9xYkdoVjFJK2xZamlL -ZklhMlhPd0JhMmUrNkg0M2Q3aTIKVlN6NmxjMzI1Tk5pRGY0cE5wVVd4VENYdnhlam9wdldBdjBL -L0hXRy9GNHNocHFyMnM3ZmpJczdwSzlDQjB2eGc5WkJIa1BiS2x5WQo3U3pHVTdwYzI1a2p2enlj -anAvSXZnMm5FNk5VL2w0TXEyN3VUcjVmS0ZWaE8zQ28yTWQ0dnVtR2NncytKdFlnZSszVExGb0h6 -eEh5CjN6ZFR3aW1qN1F5Wkp5YTdoRHY1TVFkN0ZrOFdtNG5MWUZMOTVlL0ZxT2ptSkRIbjJtMTZU -OVZpb1RDUVRyMVdpNHVGaXo1TjJUcTQKVGNxMTM0c3BvMjFvWHhEcmd2TkVTN2RIVEg1YlhLKzhq -Y09UNmk5L0wwWkpOMThVOWZBaHZFRXNlQlBEc2d1RWtjMVVvZWVKbm01bAo2bHlaT3RpQWI3V2ZU -QThkRnlTWkhvTlhKK2UyaUpYNDFnNk5Lc2tUakhsdmNzK0ZZb1BuZXJFM2NFeTBWamVLeGNoaHBw -L3lad25FCkhDWGR2RWtZMlR1RWNSRE9rWjM0bEppYjdacmhHWHZ3VXJIZ3ZFSDBrbVhwNEhDeG5M -Q2hWNkpEeFFwNHAwOG56MDAzSnVWdjBZc0kKeGp4UnZHZWp4WkVPZUxMS1pGSjE1YzhhaURscXVq -bEU3UEZjSlh2ZzYySlJ4MXVVb1lPRm92R2JScnBIMnlYY28zblpMLy82MExsQwpudlpnekVGMll2 -KzI3ZmdSL2J1SzgxQlYrVnVCbUZrV1ZVZE5ON3RGbkZjZS90WjJYSVlPL3Q3dFFobUJuOXRFa0dJ -ZVJpRVlzeHRWCmxIOVVBekdMMEUxRFNReHJNR1pWZENyL3NBUmlOdlRKS0x6SzRBcXhqcktwYmtG -cW9yMzg2MFNjMWI3YUpHb1ltQ3BlNVphSDlXTFkKZEsyUWRSaWl2cXVrdmZ3TDhmYmsya29SbzNl -ODJNcFY1SzZHaGljUlJRWmpqaUtkeWw5MElHWkRSZFM5cWJnYlJRZGpqaHJkeWw5MApJR1pEUlF6 -cnUvZGZJTlpjMHR3anY0dDNWT2luL0M5ejREMGk4TFdTWldwb2FHaG9hR2hvYUdob2FHaG9lRUx3 -UDZkNXJ3ekdpM0JICkFBQUFBRWxGVGtTdVFtQ0MK - - $$1 + \frac{1}{2} x^{2} + \frac{5}{24} x^{4} + \operatorname{\mathcal{O}}\left(x^{6}\right)$$ - 13 - - - - - diff(cos(x**2)**2 / (1+x), x) - python - 14 - 0 - - - pyout - 2 - ⎛ 2⎞ ⎛ 2⎞ ⎛ 2⎞ - 4⋅x⋅sin⎝x ⎠⋅cos⎝x ⎠ cos ⎝x ⎠ -- ─────────────────── - ──────── - x + 1 2 - (x + 1) - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5zQUFBQXJDQVlBQUFEeEVmMVpBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCdEZKUkVGVQplSnp0bkhtSVZWVWN4ejh6by9QVXByRnlHd2ZGYUZFelRVcEpJ -OE5DSXpHTE1qWE5tZ3FtS0dtRHNFSmFuaEpoQ0VXMjBVNkcwb0pGClJWSlVmNVJoV0xaQlZtQmxr -S25oUWd1WnFXbC9mTy9yM2pmejd2cnVlK2U5Ni9uQU1PZmVjOTQ1di9PNzkzZk83NTROTEJaTFZX -Z3cKTFlCaGpnRjJSMGpYQk53T0hBVCtBUjVNa0VjYTFKdTgxU2FvM2w2c0hxdk1SR0J5eExRWEF5 -YzQ0ZGM5WVlEemdmRXB5dVZIdmNscgpncUI2RnpDbXg4WTRpVE5FRGlucmc0anBqd2N1ZE1JL0FN -TTljVzhCTndPdHFVblhuWHFUMXhSQjlRYXJSeU1zQUU2TGtUNEh0RGpoCmQ0RzJMdkhqZ1d0U2tN -dVBlcFBYRkdIMXRucE1pVGk5OUtxRVpad0RMUFNKZXp0aG5sR29OM2xONDFkdm8zck1paHM1R2Zn -MFl0b2UKUU84RVpSd05uQWtzODRrZlFHWDBXVy95bXNhdjNsYVBLZEVNOUl1WXRnMVlrYUNNRzlB -RE93S1lVaUwrVldCd2duekRxRGQ1VGVOWApiK042ckNXTGJQS0VlL2lrOGJ0L0FOaEY5Nm1NVXVs -YmdiMHhaZWdBN2dPMkE3ODRmMTNaaGxxNXNIekQ1T3Q2ejRTOHBvaWpwMUwzCmcrcHRYSTkrbGFn -bUxhaFN2NlB1K2t1Z0hiVWtCVDk1QUhBajhCVXdDRmpwcE8vdC9QWnNZQ2t3M1FrdkFZYWhEOXhM -Z0JtZThuNXoKNHVMSXNJTHdWbkdJOC9zQ0RiaHpOSnVCbnVpYm9RbFlCUHlGR29rVGdadUEvajUx -ckphOHBvaXJwMFA0dnc5QjljNjZIaU54UFZJdwp3Q1pVNlF1QWVaNDBTNEM1VG5nWmNKWVQ3Z0Q2 -b0kvVWVjaVZYSXRHblFyOEFSenB1VzVFU28wclF4aWZBNzA4MTAvZ05oYVhBMnVjCnNsYzU1UlY0 -RDVpR2Z4MnJKYThwNHVvSi9IVVZSS2IxdUNBOENlQUtPaEQ0bGRLcld1YWpGdTVEMUZNVmFBYUdv -am1RSERLODNiZ0sKSEFYOFdDSy9OeW51MWFQSUVFUUR4YU5TWTVITDBleGM1NXkvU2NEM0ZMc3Q2 -NEJMOGE5ak5lUTFSUkk5UWJDdWdzaWtIbWZqN3gvNwpNUTk0MlFrMzRQckJEVWhCdzREcmtKTDdl -SDZYQis1Q2J0aDVGRmMrajl6THZoUzNQaDI0cldRVUdjS1lUSEVyZkN1d3VrUzZlNERuClBkZHRx -T2NkVEhBZEt5MnZLWkxvS2V4OUNDSnplbXdGdGhETjJITEFHOGo5VzQxOGQxQnJWUmpoZVFhNHd3 -azNJbmZDeTNmQXNVQW4KY0Q5d215ZHVJMm85TytuK0VmeWFjeStLREVFMG9LVThPYys5bVJUUDZm -UkJEL1JLNEVuUC9XZlJkMGhZSFNzdHJ5bmk2Z25DZFJXRQpVVDM2amY2VXcyTGdUMkFrY0c5STJt -YmdJalRROFE1d0t2cmczWW9NQmRTOTkwTUdOUUY0bE9JRm9HMm9WMXVQQmtpZUJuWTZjUU9kCnVD -OVFBMURnb0pQL3VjaFl3MlFJWWpaUytzK2VlOThDSndHajBSS2ZNY0Fyamh6am5MaXB3RWZvQXp5 -c2pwV1cxeFJ4OVFUaHVnb2kKVTNvY2h6NTJseExmalRSQmtrbk9TdVJSemJLcUtXK3RVdmQ2YkVS -K2RrL3F4OWdzbHFxUjVxVDJBdVJQNzA4eFQ0c2xNNlExcWQyTwo5dm84RXBEbVVFcGxXYXBQdVp1 -TTdiTW5QV083RTdnN0pNM2h2aXY4Y01ZK2U0cU5yUjJOc0VSVnpGWTBOekVOMklBN0FtakpMa25m -CkVRdkZ4cllYTGJpTXFzZ2R6djg4K2xicjlNU2RncVlWT3RIWkRTK1VKYVdsVmtqNmpsZ29OcmJk -d0VzSjhsaE05L202RnVTbmI4Y08KbUdTSnBPOUl2UlAxSUNFanZJZ2QrcmRraHlnSENZV1M5Z3FT -VVdoOVlpZGFqN2dmemJ0dFRybWNlbVE0V25ObnYyM3JqeG5vK1gwTQpuSTYyMUd5S20wbmFtMGVI -b09WVEQ2QTFpdnVBRVNtWFVXdU1Eb2tmaTNTeE5rSmFTMjN5TU81YXpURm9XNDNGQVBtUStDRm9n -ZTBHCllGYkZwY2tHcHFjSy9Nb1BPdmdubEZvNkZxRldpSEk4UXh5MkFIdFN5T2R3b1IvYURWQXRo -cU5GODE1T1JudnF2SVFkL0JPS05UYVgKRnJUa2JDN3dHSEF0bXF4UHJGeExJanJSSVRybFVvNTcv -elVhZStqdnVUY2ZyZm4xTy9nbmxGbzRnNlJXdUFKNENnM3E1Tkc1RnR0dwpEK2tFdVlOblVPeG1I -SWUyZ1JUWWgzWVFXK0l6QW0yaFNXTjUxeXhrTkg3c1Fzc0w1L2pFUHdSY0JpekhQZmduajJ4bVlo -S0JyTEc1ClBJY01iU0RhQUxzT3U2YXYya3hIUSt0ZGFRTCtkY0k5MEFGQTViSWxKSDRuY2h1WEUr -M2duMUNzc2JrVTVnV25vTFBnRDZFZXJEL3UKU29nOXdQdGRmamVKZUx1RkxmNk1SRDFLZ1NnbnIx -V1NWQnRiYTJ3aWgzWUlYNDNjajArYyt6TlJEMWN1UjZGNXg2R2sxekpua1Y1bwpsVWFCS0s0OVZN -NjkzNHZHTlE2R0pZeUNOVGJSaUI3b0hPQng1TTUwQUQraGgxc09VMUh2dHhJWjNDSTA2UEozbWZs -bWtRTm9OSEtYCmMyM2F0ZTlMU29abVNZY0pwZ1hJRUFzcFBmaVE1UFNyZk1ReWcrWS8weGdWL1I4 -NzlGOCs2MDBMa0NIVzRBN0RlMCsvbWdWODV0eWYKU1hvZVdWZjMza3NyOEUxSzVRRFcyQ3kxeFVZ -MG9keUw3cTc5SU9UYTc2QjgxeDdrM3Q5Q3NYdnZQY1JuSVpwdnRWZ3lTenR3VlFyNQpsT1BlajhC -Ly9zMWl5UlRONFVreVhiN0ZZckZZTEJhTHhXS3hXS3JNZjJsWHdmdG1Fc3IrQUFBQUFFbEZUa1N1 -UW1DQwo= - - $$- 4 \frac{x \operatorname{sin}\left(x^{2}\right) \operatorname{cos}\left(x^{2}\right)}{x + 1} - \frac{\operatorname{cos}^{2}\left(x^{2}\right)}{\left(x + 1\right)^{2}}$$ - 14 - - - - - integrate(x**2 * cos(x), (x, 0, pi/2)) - python - 15 - 0 - - - pyout - 2 - π --2 + ── - 4 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUZnQUFBQWlDQVlBQUFEYkxCNlRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBMUJKUkVGVQphSUh0Mm0yb1pWTVl3UEhmTmN5ZG1kenJaY1FZVjE1R2xEQjVu -YWJ4aGZqRTBBZ3A2WktSOFVXa3BQZzJFc3BiVW56d2JpUmQrU2dVClg1U1V1R1hTNUhVd0tDK1pT -eHJ1MFBIaDJidTc3M0Z1enQ1bjdiT3ZNK2RmcTczVzJucy82em5QV2V0Wnozck9ZVWl0TEdsYWdS -b1oKdzM3NHEybEZCbzBEc0E3YmNWYkR1dGkvYVFWcVlCUCt4RVNmeHoxQ2VJVHZpcDJEYU9DWHMy -dS9YTU1TM0NVTWV5UXV3Vlg0ak1FMApjTCtaeE9kNElXdXZ4TFBZUUd3Q1EzcmpjTnhTYUg4b2ZI -OXkyNjdEZzNnSzF3dWYxQ1EvNmQ4bU4xcW9QNHkzVXc5d0k3WmhiVlplCndiYzRKZlZBSmVpbmdY -UFdDSGR4UWtxaHgrQURFUjdsck1nRytrRzFXRHRGZlA0enprNGdwMXNPRmhOclRXckJtekV0WEVT -UlI5SEMKK2dveXQrR2dpdnBjamlmd3Z2akFkMWFVVTRZVnVCK0haTzN6TUVLYUtHS1pjQXViOFY2 -aGYyZDJYWXQzUzhvY05YOUZsR0VxSy8xaQpLUjdEYTdMSUFaZksvSEFLQXorSjMvQm1XMysrVkxZ -bkdLUGZuSWFic1dxQit5M2NJeWJPTlRnMUt6bnY1SldSbWhSY2lpL3dlemJ3CmJNbjNwN0JGYkZU -OVpoSmJ4WXljd0Y2eEdzL0JKOWlkOVQyQ1hRM29oNGdMWjNGdXhmZW5jTmgvUE5PcXFUeGpMb1o5 -d055UiswVnoKUHJaUlRzWU1MdXRCUmpjR3JvTmp4WjZTODNxaFhzblZGWDN3aWJoVjkyN2pTOXpY -MXJkU0dPZGF2TnFGakx0MTluTm40aUdSdENuUwp3cjBpQkt5RG5ZWDZlaEhMRTEvMnNuODkzUVZG -QTMrRngzVnY0TjF0N1ZHOGhOdUUvNElEc1ZyNHJrNDhoL0VPL2NlSnBUclQxdC9DCk4xM3ExeXMz -NEsyc1BvR2poTDBheVMrUDRHbGMxTlovUHE2c0lLOHBGNUZ6cU5pZ1YyZnRDOFdYVy9wa21pcWJ0 -bFZFRG1NaVZVZHMKRkp1eWUvODNiaEpSVUo3Yi9TVzducTZCc1BNS0MrL0lmMk41QlptcFp2QUcx -ZklSbjVwL0Foekg5eUx2VzRvVU0vZ2piRnpnM2l6MgpKQmlqQ3VONEhyZUxZM01aTm1KSG9mMnJT -QVg4V0ZhSkZBYmUwYVpNQ3ZJVjBBdGI4SEhGZHp0OW5xK3JDRnFzQ2ZjN1JEYXNLaGZqCkRmeVJS -cDNxTEZZRDl4TG5yaEsvTWt3bjBxVW5GcXVCZTJGU3hOQ0xna0g3NDhuVjRwZmQ0M0VHTGhBSG9M -M3FPLzN0VXl3WDRWMWUKcG5HZHpxZkZ2akJvTG1LUFNISE80R2hoNUpQRWtiMFI2c29ITjgyWStj -ZjJYUXBKOENGRGhnd1pzbS93RDloWXFhWFRLRUtMQUFBQQpBRWxGVGtTdVFtQ0MK - - $$-2 + \frac{1}{4} \pi^{2}$$ - 15 - - - - - eqn = Eq(Derivative(f(x),x,x) + 9*f(x), 1) -display(eqn) -dsolve(eqn, f(x)) - python - 16 - 0 - - - display_data - 2 - d -9⋅f(x) + ───(f(x)) = 1 - 2 - dx - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpvQUFBQXFDQVlBQUFCTE5VSmlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCYWRKUkVGVQplSnp0M0dtc1hWTVV3UEZmbjdhcUxXcG8xRkJlYTNveHRZYVcw -a1JOSVVKUVFjUVVIMFJyNkJmRUdLS2ZLa1NNUVVrUVU0Z1lhaFpKCm41Qis0SU41bnFwRlU2Mmh2 -Q3FDK3JET3pUdHU3L0RlN2J2bnZIdWRmM0p6enpsMzczM1dXVy90ZmRaZWUrMUhRVUVHRE1sYmdC -YmoKWEd5TXNiZ2MvK1FyVHV2UWtiY0FMY1JPK0I0MzRIZk16RmVjMXFJd3RMN1RpUk9TNHkrd1Mz -NmlGTFF6UTdCRmNud2JEczVSbHBhagpHTkZxTXdySFlsT3N4US9ZRHNQeGFvNXlGYlFaQitGRVlW -U3pSY2VjaXhGNUNsWFF2bXlDRDNDRzN0Zm5jZm1KVTlETy9JbzFXSmw4ClRzbFhuSUoyb1FOejhE -Qk94aUpNejFXaUZxYVlERlJtQ0o3R3ZqaGJUQVNtNGNjOGhXcEh0c0hFQnVxTnduN1ljR0RGeVp6 -VDhCdEcKSnVkSDQyZHNrSU1zcmFiVDRaaFFmckY4UkRzTUwrQXNvZHduUksvdUM4ZmorYVNOTnpD -MFVVa0hBVWZoSldGc3hMTTloYjh6bHFQVgpkRG9VajRtbHVxcnNqeDdSZTBvY2djOHh1czROdHNC -cUVYTjZFRXN4ckVGaEcrR2NBVzd2VGx5UkhIZGhGWFljNEh2VUkyK2Q5b2NkCk1Rc0xoWnN4cjFi -aEY3RzQ3TnBvc1hCOGNaMGJuWlhjWUt4WWRCNVp1L2lBMHozQTdSMkUxOFc2NWpzNGNJRGI3d3Q1 -NjdRL25DN2MKalVQVU1iU2hZdnErcU1Kdmk0VVIxdUllZk5tUWlBTkRkeFBhSEk0ZG10QnVYOGxi -cDQwd1RoVkRLL2xvSTBTUFdWdWg4a3JWZS9SKwpPRnlNQU44bHgxT0U0MXJKY1I2SnZmU21KM1Zn -SDR4SnprZlZmbzVNK1JOZjUzRGZ0dFJweWJuc3dmdGlUYStjQ1dMb0hpSFNZOUxzCmpTMkZIL01r -Sm90VW1vbDR0S3pzTEdIeHkzQy9pRTFkaGRlRUR6SlRLUGQrL0xVZXo5VHFaS25Ub2RoVi8vSVNW -K09yZnBSZmgvUHgKQjdaS1hac2hvdUZyc1hXVmVwT1MzNDlJem8vRStMSXlNM0ZTNnZ4Rk1WSnVL -WloxMXVMUTVCNG5OeUI3ZHdOMUJqTlo2YlFMRHdpago3T3ZuNWhweVYzMTFwcWZMdHd2cm5vOXJF -NEduNEQzc0tYcFZKU1luMzI4bjM3dUwwRUNhR1NMS1htSmJMQkNLV1NCNlhjay8zRU5NCmtjdnBF -SXFwRkdRZWxkUXJaNDNJSFN0UnlUWElrMm9qU1ZZNi9WZ1laZE1wajh2TUVUM25LREU4emhNemlv -OVZqeUZORnI3RWl1UjgKb3dwbDBnclpETHZodXVSOGxmOU9RcXJGaXJiQ1pTb2IydmJKYitYMGlO -ZExpVlpKWGM5S3A1bFJTWUNsdURzNTNrQU12UXRxdERGWgpiOCtqZmdyTkRHRXNDNnY4WG0zVVdZ -WXpxL3pXTFRwRXU1Q1ZUb2VKVE9HbSsyaHBReXRONXo5TFhac2lKZ0szMW1oakV1NUluZGVMCjl4 -d3FYbWZmcHE0ZGkyZVM0M3JCNFN6SmF6TktWanFkSUdLay9URzBsZXJIVmRjaGJXaFg0bW94dXls -WjdJWGlnZCtzVXI5VEROdnAKM3JkYzlLN1NIMlVpSHNKRlNUdkg0SzFVK1gzRjJtcTYvbUNndEJu -bEx1R3p6c1RqR2R5M1UzWTYvVlFrRFRTZHRML3pKRDRVUStNWQpYQ01FdnJKRy9iMlQ3N1JTSHZi -ZlY5eDA0YWd1eDZWaTdXNjhlQzFQdzNraU9FbXM3VDNid0hNMGcwNzViRVpwVloxdUtsWUdZR29p -ClQ5VWxzeU54bzVqR1hxS3lFNXBtTHBaVXVENWRiM0J4aEJncGIwcmFKNVIyaTBnZVRBY2hEOUVZ -M1EzV3EwVmVtMUVHaTA3N3d4eTgKVXVIenN2VmNueTFGblo4WHI1YTh1YlNKYlc4blFqN05ackRw -TkhmbTR4dlJhNzdYRy9OcEI5Szduc2h1TTBvNzZ4U05KZktkTDVaQwp4b3ZYeXgyMWk3Y1VVNFdS -M1NUY2hpN2hSdndxTnFOODBxVDd0ck5PRzZZTDE0c2NzTUdhSDdXK2JDSW1SYi9JWmpQSy8wR25C -VlY0ClY4VFBDZ2FBM0pjbUJoRWR1QUFIaUxUdEhySDJ1NkpXSlRFYjNVYUVncDdEenNtMTJXSkVM -RkRzZ2lyUjZLNm5yWVdSUFNJU1JDOFMKZ2RReGluOXBWVkNCUm5jOWJaNHFjNitNb3V3RnJjc0RZ -bVdreEh6YzE4ODJsb29zRXVvSHV2OTNGRDVhc0JvZkpjZGRZb2E1VHgvcQpuU0IwK0tVWTJaYUk1 -SVF6WkJQa2JSbnkyQkE3R1BsSnJBL3VKbFlaVGhXenpucWNMakpleG9nMHBuRWk0K1Voc2VlZ29H -QWRHdDMxCmxINHJGSk9yZ29LQ2dvS0Nnb0tDbHVGZkpDRTlsUmJtTXlNQUFBQUFTVVZPUks1Q1lJ -ST0K - - $$9 \operatorname{f}\left(x\right) + \frac{\partial^{2}}{\partial^{2} x} \operatorname{f}\left(x\right) = 1$$ - - - pyout - f(x) = C₁⋅cos(3⋅x) + C₂⋅sin(3⋅x) + 1/9 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVJFQUFBQWlDQVlBQUFCNERlMDVBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDVHRKUkVGVQplSnp0blgyUVZsVWR4ei9Md3U3S0xxa2hpQmk0cWVTaWlNd3VC -bzJLVWhaS1VUcnBtSnBHcjVodHBxaXJGak9pK1lMQWFKbWcwc3M0CmlvVm1qVzg1ak5vSVVWWVlO -aTRXaWFFbURSUDBicG1LMXZiSDk5eDV6bk9lZSs5ejcvUGN1OC9zNVh4bW50bm4zbnZ1dWVlZTM3 -bm4KL043dXMrRHhlRHdlajhlVEVaM0ErOU9jTUN5ZmRuZzhuaUhHa2NBaTRGRmdScG9UaCtmU0hJ -L0hNOVI0QWJnTzZFcDdvcDlFUEI0UAp3S3UxbnVqTkdZL0hVeGQrRXZGNFBIV1J4SnhwQmM0SHhn -Ty9BSDZRYTR1eXBRM29BV1lDM2NBdTRBN2dHWFR2QzRBVmpXcGNETU9CCi93SURabnNxY0Rwd0FM -cUgxY0J2YTZpMzJkVDV2d3phV0N1RExaTTJZQWx3Ti9CVW5YVVZXUzY1OGtQZ0dpVGNWNEdSalcx -T0lwclEKeFBjeThHM2dUR0IvNE4xbWV3RVMrTmNhMWNBWVJnQjlsQ2I0YzRCYmdiSG1XQzhhYkor -cm9lNTJVM2NqYUpSTVRrQVAvb2ZxcktlbwpjbkZaamFJMG1YRTBtaUY3VUNkZG1XWGxPVEVSZUJ6 -WUJod2FjbndZQ21NTlVQL0F5b1ByME1NVjhBSndnN1hkQk93RVhrR0ROeTJuCkFCZlUzRHF0bW1s -cHRFejJ5NkNPSXNyRnBoVjRKN0FCdUF2SkxKUEF5MWVBMTZpdFV4ckJ2bWlsMjRSV2lDaE9BOTRF -UmcxR28xSncKQk9VRHN4WDRCL0FIcDl4R3RMcStyY2JyM0lWV3Y3VDBBRmVuUEdlb3l3U0tLUmVY -THVBODV6T3V6am9CZUFoNE1vdUtCb252SXlGTwpybEx1TU9CbitUY25OY3VSOW1jemdmSVZjRGp3 -ZHpSZ2EyVStNaC9TTWhQNUY5SXcxR1VDeFpSTFprU3BLeXVST25NODhFL2dZYVNLCnJnSitod1pG -d0Q3QXVjQkJ3SHJnUWVCazRFUmdPM0FMY2tBOW5YM3p5NWlQVnJQVndKWXFaZDlBZ3pzcDQ1QzZP -UUY0RWEwWWJ6aGwKUmlEN2V6YlFBZHhENVVQeFliUnE3QWI2MFNSdE13dTR3dG0zM2RuK3BMbldw -MFBhbVVRV2J3SFBJUzN6OXBBNnNtUSsrY21rV2w4MgpBNTlBZmJFQ09UNERKaUx6L0NYZ202YnN4 -OUJFTndBc0EvNXFsUythWEFhRlpqVExEZ0NmUXBQTmFDcnQxWDJSYytsQTVBWGZBdHdJCmZCRTRI -TmhoemprZE9EamlXbVBRNVBTdEZKK1ZWTnFBVDVyMlRrcC91N0ZjRGZ3Y21HTzJsMU01b0tZQ1c0 -SExrVHJlaFFib2FWYVoKcjFOeW5vMDA3WjN1MUJQMW9JMEVMa1lPeVBYSWRuVkpLZ3VRTEorTnVG -WWNhVmU4dkdTU3BDOXZBWTVDZlhLemMreDI0QjNJSExrVQorQ3A2WnlRNDd6R25mTkhrTW1pY2lB -YkFOTFA5V1NvMWwydlFKQkR3R0FyVk5RRnprV28zM214L0llSTZ6U2pVTnozRjV5aW5qamEwCmt2 -MHh4ZjBsNFVKays0NDIyNk9RRm5hVlZlWlE0RStvZjJ4dVJ0b2JxQTkySTFzYVNpdlNJVmI1a2NC -dll0clNqZ2JpVXVUOGNnZHMKVWxrRXZCeHpyU2pTRE5hOFpKS2tMNDlIMFIrQWRjQ2QxckVqZ1l2 -TTk1ZlFROTFtSGI4QWFkOEJSWlBMUUE2ZlNDNUJ3bW94MjVlRgpsUG1JczcwTFdCeFIzOUs0aTlY -SkxIUXphek9zc3h1RjdDNTM5cnZPd1dlQXpWUnFSamVZTnJXak1PWUFVdXZuQW51RlhLOEorRXZD -CnRtMUcwUUU3NnBCR0ZoMVVPZ1dUa0dhdzVpRVRTTmFYODVCcDBZbGtlSkoxN0dpa2hSeG82dm1v -Yys1SzRKZldkdEhra2pseElaeHAKS0hGbXQ5bHVEU256Z1BWOUNwcHgxMFhVNS9vUXNpU1lEWjlM -VVBZNE5QUGZVNlZjb0dLNmlVKzJiZDJKVEpuektQY1RnVlQ0blNpMwpaaU93QmpqYmZQNkdCdTg2 -cS93QVdnSEhJYzBtamllUU9ud3FzdWtoblN6ZVJmeUtkeHp5SjdpTVFmY2NGakxkaE5UMmdEeGtB -c242Ck12Q1BmQWI1SEI2MWpnVUpaeDgzYlh6Q3FYOE84bGtFRkUwdW1WTnRFdm1WdGQxUnBhNzNB -cThqLzBFWVlTc0dxQU91SlYwSy9tNGsKck9EQjNXaXUzWm5nM0xPb05LMDYwVU52MjhJZlFFN1Vm -OFhVRmF4dy9jNytEdlNiRFBiZ1BST3B0bk9RVDJVWmxSNy9INk1vUlRCWQo1eUZWZkFubEljYi9t -TDlSRVk5cXNqaU1TcnZmcGgrNExXVC9GT1E4RGp1Mnk5bXVSeVluSTdOMUozQWZtaWhza3ZSbE0z -SjJyaUk4CkUzUTJ1ays3N203a3UvdXVVN1pJY2hrMDJsRE0va0pyMy9VaDVXWlFtaHp1cHp3YTBZ -S0VHeEJsemd4RHEvbTBGSi9EUStwWkMveVoKY0kwcG9CY05nSURnTnhTMlVwbWx0d0Y0SktLZWJ2 -TjNBVnFwM3U0Yy96ektyK2xDVVowYm5lTUxDUTluenFJOG9lL0xwdjVWVHJrZwpNV3V1dFMrTkxG -YWdWUzh0YWRYbVdtUnlFWHJBbTVBbThYdGtma0M2dnB5SEZwa0p5SmZsSmtxK1NHVjI3RGNvT1ZI -ZkIzelFmQythClhBYUZJRk4xdHJYdkRCUWFDemlWVW9iaHdjQy9nWHV0NDczb0lRVjVxRjNIWTlh -TVJUYnBJMVFPMnVFbzQzQ2VzNzhkVFdKaHFiNkwKcUF6ak5abjk1NXJ0U1Vnck9zRXFjd1J5eGdi -M3V4bXBsRFpyVU5RcmpPOVJjczVOUXF1UG5idzBGdVVqYktMa0VFd2ppK25VSGtKTQpPMWhya1Vr -LzVUK0tzNDFTSkNaTlh5NmxaTHFjVDduanRSUDExeW5PT1U5VFd1eHVvbHc3THBKY01pWEtuT2xH -Y1dzN3QrTSs1TG0rCnlXenZRRGtqKzZFdzZBd1U1NStQSHFRdFNPZ2cyL1U3R2JZN2pGMW8wcnNW -aGZ5ZUJaNUgwWk1CcEVsdGRjNkordzJGNjVGYXVnYmQKK3hSMHIzZFRVa2VmUjdiMU1xUktIZ0lj -aXg2TURhYk1wYWcvNXFKOGdXbW9YNlA2b3hjNXNmdE0vYjFJZGQ1czJyc1FSU1BPUWFveApKSmRG -TThwanVDVG12ck9rRnBtNGp0alhLRDJzYWZyeVIwZ09mU2dWZlp0MWJDYnF1L1hPT1E4Z3JYZzU4 -cXZZWmxDUjVCTEYzbWhpCjNSdVpidmZHRjQvbk51QW5JZnYzb1R3S2NRQVNTREJqajBCYWpEczVa -Zkh1UWhxYTBFTS8xWHl2UnR4TFIyT0FZNGhQUjI0QjNvTTgKL21FRS9SS1dSeEIxelJablh5ZHly -RVcxSTRrc09wQU1hNldlRlMrdFRFQm02eXZJVnhDUXBpL0hFWjY2M1VHMDMySXkwZVpYRWVVUwpN -QXI1UUFQTmFERTF2QlRZQTN6SmZOK0VadFk5aGN6ZlhDd29Nd2ozamVWQkMzcHA3NlJxQlQyWnlP -VnM1Q2NLQ016eVZDL2gvUlNGCjQ4YWpNRk10THdJTlZmd2trb3hXU2s3T1BCbUduSjV1eE1VVFRo -Wnk2YU04SEQ4YW1aeHVKbkFGdHVOb0hiTDlGeVBmUjgyL3VlZ3AKTEhsa29JYXhFS1cyUDRYRzZN -V0RjTTJoVEJaeVdZdmNEb0ZUdU1mODNUKzhlQWxiVlZtRWJORHR4T2RHRklsV3BIa2RoR2JkaWNn -Wgo5bFlqRzdXSHN3U0ZWSTgxMisxSVUvVGtTei82UWFWRnlBRWU1R0R0cUhaaVVnZFhVZW1pUER3 -TGl1Vlh5MHowNU1jQ0tzZmxneVFZCnpKNU1tUXo4R2psYzMyeHdXendlenhCZ0ZIcERQc2hNN3lQ -aER4MzUvenZqOFhoQStUaVRVY2JzSkpTREUvYWVqc2ZqOFVTeUYwb08KSEYrdG9NZmo4WGc4SG8v -SDQvRjRQQjdQbnM3L0FXNThpdTVnc20wZkFBQUFBRWxGVGtTdVFtQ0MK - - $$\operatorname{f}\left(x\right) = C_{1} \operatorname{cos}\left(3 x\right) + C_{2} \operatorname{sin}\left(3 x\right) + \frac{1}{9}$$ - 16 - - - - - - - +{ + "nbformat": 2, + "name": "sympy", + "worksheets": [ + { + "cells": [ + { + "source": "

SymPy: Open Source Symbolic Mathematics

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "from __future__ import division\nfrom sympy import *\nx, y, z = symbols(\"x y z\")\nk, m, n = symbols(\"k m n\", integer=True)\nf, g, h = map(Function, 'fgh')" + }, + { + "source": "

Elementary operations

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{3}{2} \\pi + \\frac{e^{\\mathbf{\\imath} x}}{x^{2} + y}$$", + "prompt_number": 3, + "png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAApCAYAAAA22gdWAAAABHNCSVQICAgIfAhkiAAABGRJREFU\neJzt22uIVVUUwPHfOGmOqWmZmZpDMoYpTlohkb2TKCOll/SyLxUR1YcKen3qBUkkQRQFZRj1Iewp\n9SGo7E1PghJ7J4ZBpVlgGWY204d1Lvcacx8zc885d/T84XD2vnPOWevedfbaa6+1h4KWpy1vBYYo\nXTgGT2MiZqEHo/A33mimsH0auGY0FmNC0l+Fbc1UYggyEUvwIrrxGtZiGeblodDrOCFpL8cneSjR\nYkzDg2hP+lPwUNIe1mxhjYykd5VHznu4GWPt3aPpPLyARWIkbcVnmIMd+LaZwtrrX+JN/JK0LxS+\n99FmKtHC7I8zcCSm4vvk8+8wTniZ4fgQu/BrxTWZ041rhXEOyEuJjJmMl4Vx4DaNvdRNp1GhW8UQ\nPg0z8E5qGrUOz2MT/hXBwA/4OleNqjAJKzAm6c9DL+bnplE2jMZOHJy3ItSPRGZiqbKRxifnXalp\nVJvjZOdu/8Hmin6X8jIkU+q5u03CJ29DB+7EGjyRsl7VuAZb8GPKcnbiEGGUzSKKm4qPUpY7KLrF\ngvawnPVYjmMzktUmsgqnCveXG42sk+Dz5BgMB4mQti96sDE5twq9WmTh3qiRBsNkEXxcoLZ7PQlv\nZ6DPkKPpKYz/0Y6H8b5IQt6HhcJtrsbspD1ZYaCqlEZSbwrPbhPpkxXKBugSicheke/6osq9w7Fv\nlc879D1HbLf790jjO+VCyUhplSxWV7QnibC2V8xNY2vcdxeO7+PzTjES/+jjb3fg1Yp+UYYZALfi\nuqQ9H58O4BlZRnctQ9pzUqWcy4WrI0bVEbIJXIY8Wf1IZ2M/rE/6HRgpDLUuIx0a5Urhijtxo3DR\nudKfkTRqEHKuxysV/VLG4KhBPDMNpuJPEexsFJXW3GnESKeLSfkGUbs/eQBytovwu8QHeBIbBvCs\nNJkiamZE1rsrR10aZhxWVvQXibxWLolGXI3DU5ZRyorcKwp+Lc9sETKX3qjRSX9xbhplwyQ8lrcS\n/aGzon20KFNMz0mXLGjD7WIO7s9a6zJh3NxZI9Y7ezIXiWQwnNOP+65QLrU3lf5EdzfhLdyThiI5\nMLyiPSI5zxRbtb4Um0pqZUUGQl+/d91lUKPrpEvwjdgMOEZEQV81rFprMUuknEaJtdsOUS97Cc/i\nwJTkdifHpSIA6xGBUCduqXVjI0Y6V5Ss12MuThRZ7aHKQjwgXrR1OBRX6f9euWUisCrRLfaAVOYV\nn8PHSXsBnsL9ojrQgzM1oco9XawXfq44fhJv4FCl5NqW4pkmPrfenDRCZDNWJf1h+E15/qtKvZG0\nwe7R3Z7AzuS8UDmXOB5/ic32acpdoryxdK544bfUuzGrBGurMEe4nJE4SzkTf7Gy8dJkgtjcA+eL\nQKwuuezIzJGJYnPJNLFYPUVUhtcK1zMYZogtxttrXLNVJALaRartEeWkc0GLUKo2T8Hvqm/MKciJ\nu8UaDB5XLoDWZW9zd3nSJkbSAvFvMitrX15QUFBQUFBQMAD+A4Qttne0VDZpAAAAAElFTkSuQmCC\n", + "text": "\u2148\u22c5x \n3\u22c5\u03c0 \u212f \n\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\n 2 2 \n x + y" + } + ], + "collapsed": false, + "prompt_number": 3, + "input": "Rational(3,2)*pi + exp(I*x) / (x**2 + y)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$-1.0$$", + "prompt_number": 4, + "png": "iVBORw0KGgoAAAANSUhEUgAAACsAAAASCAYAAADCKCelAAAABHNCSVQICAgIfAhkiAAAAV1JREFU\nSInt1b1LHEEYx/HP+VacTdKpKKKFXIqIIBZahBTX2Pk3pIpVIFhoMF26A8FKsLKzCqnTpxILUUjh\nW6FFbIIIuSKceBY7q8uyB9l7CSf4g+Hh+T47z/wYZmd4Qip0oOcX3KCSc14ZyzhBHRfYaq+1R5VE\nButYzTl3GlVMhrwfe/iQ/KinRYOxKlhBrcn5a/iB85DXsBv6jrbsroFK8u/sOG7xMcVfhV7vYtCu\nnW1FM+gVndWkTkN8G4NuMDsU4p8Ur4UxHINuMlvNqFXxIk66wezfEO8yav1J3g1mjxrwAor4FYO+\nRPE1tv37Q3GA9824S+kwxJcpXgxermKQNHuE+TYsnleXuMZYis+F+LDz//sYDGAigx9iMcXK+I2d\nTplZEF3kGw3q30UPwGyKvxH9+VMhH8Qx1jvg0Sfsi+7Kehg/g7mkKjjDSEaPJXzDJr7is+ixeNaz\nkroH5AA9SswlEREAAAAASUVORK5CYII=\n", + "text": "-1.00000000000000" + } + ], + "collapsed": false, + "prompt_number": 4, + "input": "exp(I*x).subs(x,pi).evalf()\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "e = x + 2*y" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 6, + "text": "Add(Symbol('x'), Mul(Integer(2), Symbol('y')))" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "srepr(e)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$262537412640768743.99999999999925007259719818568888$$", + "prompt_number": 7, + "png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAASCAYAAAC+a2xVAAAABHNCSVQICAgIfAhkiAAACXtJREFU\neJztnHms3UUVxz99r4/t0bIY34PaFoggUGvThKBIXaJEgbDEVEUCmJZqRGJUlEI0QKyIIEWhZQla\nllytKRYrFGRrJFiCuKFYLKssUoSCKFBIqyjY+seZsXPnzvx+Z353Xq6XzDe5ee/OnN85Z86cc35z\nZ4OCgoKCgoKCNzzGed+nARcA2wA7Ab8Evg68FHh2CnA28B/gZWAjsBDY1IDfemAFsAx4HjgW+IT5\nPOzQ7QvMB14H9jO05wL3OTSHA1cAa4wu/wI2O/X3AJcF2oPhPQScF6mfDKwG9o7U57afVr/JRu6z\nhtcQcBHwgkOTaheNfrsAXwEGTXsHga8Bf+lCrqa9Gj8IYQg4HdjN6PAq4nP+c4WuP+kgf87RxJaW\nLiUWcrZDa78msVqVE1P6TZNLtHJT+Gn9APLlxF7S/Q/7Ar8ApjoM1prPJI92BPgzcLD5vivwCPCl\nhvy2eJ9NwNEezT7AKmCC+T4OWA68Akx36E4N8HM/hwdbD3sYuQsCdcPAh4E/GR4h5LafVr9B4DHg\nM07ZOYitBpyyFLto9NsZsf/uTtkM4AEkGJvI1bRX6wc+Bgzd1U7Z24EngTcVur6ng/w5RxtbuWMw\nZztS7JcSq3U5MUWuNpdo5Kby0/gB5M2JvaJrw/VOYywORoyw2Cu/DjjF+T4CrAM+3ZDfOmCJUfoU\nwqO2s5CR1VFO2XGG37lO2XeBvZDR5aBTPgu4NMDXYonhtcAr3x9YaWTcTdzJcttPq9/xyEh82Cnb\nx9DOc8pS7KLR7wTgzICeC4EvN5TrItZerR/4+JShmemVP2RkFbr+poP8OUcbW7ljMGc7Uuyn1U+T\nE1PkanOJNhdr+YHODyBvTuwVXRv+ikxhTHDKxiPTMA84ZR8H/o2MKqqg5QcyNVOH2cDTiPNZHIt0\n+ulO2eWBZ3cEbgN2qOBteS2o0KFF3Mly20+r3xrgjsAzjyNOaqG1i1a/C4FHgW298vOQqcdUuS6q\n2qv1Ax/XGBpf5grgmULX93SQP+doYyt3DOZsR4r9msRqi3BOTJGrzSUauan8Vkd4uMidE3tF14a7\ngX8g6y0uXkbWNiyWAw/GmDTgBzqjh7AYCYJpNXSXA++K1O0IXGn+7+aFn9t+Gv3GI2tj3ws8twp4\nsYZ3yC5a/Y4x+ixHphxBgnstMhJPlWuR0h8WGj9YY/gNeuUXmPK3Fbq+poO8OUcbW2MRgznbkWI/\nrX4uWoRzYorcJrkkJjeV3+oIDxe5c2Kv6NrWl96PrA8955RNBSYCv3HKZgJ/Q5zgm4jhr6dzKkTL\nD2Rkcprhtxi4BJlaqsJ0ZCpjHtWdMQsYDci0+CrxTXopyG0/jX6jyBr2xkDdJqTz/VGfRcwuWv1W\nArcjzvYg8EngWmQd8KGIzCq5Fqn9ofWDNebvBK/crntNKXR9TQd5c442tsYiBnO2I8V+Wv00SJHb\nNJfEkMJP8+7JnRN7RVeLbyHrpXY9adh8Xwt8zqGbjewejb20YvwsHqXdAU4G7qd9TcziSMPnWWBO\nbQvg98BHInUzkReMRTe/8EPo1n51+h1gys4OyF5q6kYjuoXskqrfMHALWze83FQhr0quRUp/pPrB\nxwy/g5yyQcT3tiDBUuj6ly6GpjlHG1u5YzCGpu3oxn4a/VqEc2Kq3NRcEpObyq/OfmOVE3tFF8Xe\nyKjVXQMYNcxeRaZeLQaQ0ei1ifzc510MIVNa51fwGw/8DFk72z5CcwgyBTYUkfl95NiLRc4Xfrf2\n0+g3vULnH5m6NwfqYnZJ7d/jkGM6RwBPmGefIL4zNHd/gM4PLBYBNyBrcYPAF5A1xS3AoYWu7+l8\ndJNztLGVOwZD6DZ3NrGfVr8W8ZyYIjc1l1TJTeFXZ7+xyom9ogtiO+TM5UKvfMgwuj/wzL2IU/pn\n+6v4VWEd9VNJ7zP6tCL1PwF+EKk7GfiAV5brhZ/Dfhr9hpDdwQvoxE+RjSah/ojZJUW/ucDNTv0w\ncu54M3JmOITc/WFR5wcWA8iRm0XIsakDkd3HW4C3FLq+p3PRbc7RxlbuGPSRI3c2sZ9WvxbxnKiV\nO5f0XFIltwk/F74f5M6JvaILYhyyw/Ibkfr1wF2B8rsQw+yayO8G4MZA+XO0XzIxBTlb6GKikfkK\nnSPRIaQzFgV474as1fjI8cLPYb8U/e6j86gOwM+R3ew+quyi1Q/gV8A7A3SfRRzN/1WTqz9S/aAO\ny6jfWFXo+osuV87RxlbuGLTI1Y4Qquyn1Q/SlzlDclNzSZ1cLT+t/XLnxF7RBXEOctbZxVzn/6WE\nNwLcQ/hWnzp+64E7vfoRxJCrzPftkB2qrwNvdejsdMtGQ+NiFvG1tROQaeCVzudmQ/+w+T478FyL\neufOYb8U/ZbSfvQHZPpsA3BrQE6VXbT6DSOOFDqmMg558fobX3L0RxM/qMPTyO1ihe6NQ5cj54A+\ntnLHoEWudoRQZT+tfpD+wvflNsklVXJT+KX4Qa6c2Cu6IE4k3MlXOf9/FPgnW7f/W8Yb6JxS1fBb\nQueswGGI0e1FBwPI2c0/0L5Oe7ShWxmQMcfUzQ/UhbAn3f/Cz20/jX7zkes7XbscZGgPCfCps4tW\nv9/SfvmNxbvpPCusketjTzrbm+oHUxy6mebZDzn170V237o3fxW6/qSzyJVzQB9buWMQ8rUj1X5a\n/SxahHNiitzUXFIlN4Wf1g9y58Re0bXhg8DfgR96nx8j5/tcrECOJ9i1i3nICMg1iJbfNMRo9oKG\nAWS0vIz2DRX26ISVOYJcCPEU4bOapyEdd1KswR5mGPoLK2huNDQjgbrc9tPqtwtyzeTnnbIlwK8j\nfDR20eh3lCnbzymbjPyicYM8Ra6LWHu1fnAAsrv2NvN9ErKj/z3m+yhyMcocj3+h6086yJ9ztLGV\nOwZztiPFflr9XMRyYorc1FxSJTeFn9YPIG9O7BVd22aSl4jfJORPLe2E3Gq2P3LW9HlkDeuphvwO\nRK5i3B54Dbmj+CJk6tbFEchuRJCdq39Edq6G1skORUbDhxHecGExEVnLeQcy8tyMjJjOR34xjiCB\nNomtRzA2IMc5LkYCEfLbT6sfyCUWZyE7SUGmeb6IjKZ9aOyi1W8Gcoxu0HxeA74N/K6hXNC1V+MH\nU5FLNa4BzjBlc5ANfhOR/vwOnVOxha5/6cYi52hjK2cM5m6H1n5a/bQ5MUWuJpdo5Wr5gd4PcufE\nXtEVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPz/4789HTCrMn+NQgAAAABJRU5ErkJggg==\n", + "text": "262537412640768743.99999999999925007259719818568888" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "exp(pi * sqrt(163)).evalf(50)" + }, + { + "source": "

Algebra

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$x^{3} + 2 x^{2} y + x^{2} + x y^{2} + 2 x y + y^{2}$$", + "prompt_number": 8, + "png": "iVBORw0KGgoAAAANSUhEUgAAAQ0AAAAbCAYAAABm6to6AAAABHNCSVQICAgIfAhkiAAABXNJREFU\neJztnF2MXVMUx3/TMS2tVKMzhIQMM1E0SFuMqZiWeCBIUx/ViKQPVBoJHkZ9paSkQgjxUUaQ+IqP\nBg8EIeicND6iiXqYetCkCYIgjZJQTVAe1rmZ05OZe/fae+177jX7l0zOPeesvfb6r71n37P3OedC\nIpFINIkjgWOrDsKIDqAPOLjqQIxIehIh1M33NA+Hs4F7gROBc4EvgON8o2sBehE9A8BTwPPAgVUG\nFEgvSU/Cn14i5Ps84DegK98fBZ4NdVohzwFH5Z87ga+AW6sLJ5ikJxFCw3z7XGm8C/QAf+X704Ef\nPQNsBfqAq/LP/wBjwOnVhRNM0pMIIXq+zwC2AnMsnTrQDawDXgRuBhYE+JqOzOHItzuA4aDoqiXp\nsceyv7U6UfN9GbARuAG/KxZfjgc+BC5GFmOHgb+BNQa+VwPvAwcY+GoFkp5wYva3Vscs37OAQwv7\n7wCPB/rsVNiOAotKxx4F/gXOCYhhMfAMMCPAhxaNbi2WemLG6UpVemL1N0titI/p/8PrwObC/mPA\nN4E+33a0mwP8ClxbOr4EacQHPOs/CbiF8cuyZnUGV91arPXEitOVqvTE6m/WWLdP3Xz7TCs+QUYg\nkDsoZwEv+0aXM8vRbiZyy3cD44IAvs63p3jU3QesBbYDFwDLgKUefnxw1a0hhp4YcbpSpZ4Y/S0G\nlu3TMN/lucpMYBXQD3wOvAQMARcBu4EHkdH1CuB65OGujcCThkHX4wfgfOB3ZKSv0Zdvt5fsXfTc\njjxzsr5Q7p4GcSxHVpRHgG8Lx5cCgw7lfYmlxxqXOPfmto1yOY/q9MTob666Y2qsV/d7yB2T9YXj\nk8ZyELI20Y8MJh8BDwN3AEcDO4GrzcLenyyw/Ahye6h4ayiWnnVIR7gLeKV0bjPwpsJXprBtl/bR\nxGmZSw1ZYPnQ/matO1PYmtY9zP5Pdr4AfIfcghkAtgEnaBwqyALK9iOj9/2l4zH0HIHM9QA2IaNy\njS5gD3Cjwl+msG2X9nGN0zqXGrKAsqH9LYbuzNHOvO5lpf0x4AmNgwAyz3JdwKfIGkt5fSaGngHg\ncGSe+wdyS6rGYuQS9jSFv0xh2y7t4xqndS41ZJ7lLPpbDN2Zo51J3cU1jTcKn3uA+cDdjsG40JP7\nm2jxdR7w9ATH9yBrJ5MxAnwJXAPsK52LoeezfLsKyd1rhXNDyNx3W6mMle52aR/XOH1yqaFV+5uv\nbgs9Jjmf7KGNs5HV4qyRAwW/ICPvRKIXMPGovHeCYzVuys9fx/gi1SJkAaqMtZ7lwBZkcavGEPAx\nMtctYq0b2qN9wC1OTS41tHp/0+q21GOW84XIZQt5ADsL5zqAhzTOlGRK+0uRUb+jdLyYuJh6diBv\nAtaYhrzEd5vST6awbZf20cZplUsNmdI+Rn+z1J0p7YPqro1ag8iIuQKYC1wCfF+wW0G8lWwtg8iK\n9BbgcmBl/rcW+LlgE1PPLsbf8gVZFZ+dxxSDdmkfnzibnUstsfpblbqD6q5NT3YhI+M+5BHZJcjq\n6mrgGCQ5m2ziDeIwZO7Yg9wDL3Nlvo2t5z7km2MM+a2BNcCfyMt7MWiX9vGJs9m51BCzv1Wp26zu\nbmQFtTaQdAKn0pwfPMkc7Q4BLqzzN7dgG1tPN/INU/vNgVc9fGTK+lq9fcAvTotcasgc7WL3Nyvd\nmUeZZufcnNGqA1CwErizsH8msjC20MNXu+iOFadlLjVUnXdr3Ro9VeXcnP6qA1CwG/gg/zwDuQW3\nwdNXu+iOFadlLjVUnXdr3Ro9wXWXV4MTjXkEmaP+hNy6eovwnwaYqkzVXFape6rmvHJORt5wTINu\nOFM1l1Xqnqo5TyQSiUQikUgkEv8v/gNI9gkr+UdTSgAAAABJRU5ErkJggg==\n", + "text": "3 2 2 2 2\nx + 2\u22c5x \u22c5y + x + x\u22c5y + 2\u22c5x\u22c5y + y" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "((x+y)**2 * (x+1)).expand()" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$\\frac{x \\operatorname{sin}\\left(x\\right) -1}{x} + \\frac{1}{x}$$", + "png": "iVBORw0KGgoAAAANSUhEUgAAAHUAAAAeCAYAAAASN1ElAAAABHNCSVQICAgIfAhkiAAAAyFJREFU\naIHt2luoFVUcx/GPF9SgcxGOciIUIzWFoBCpiCiSyoJeSjIxETFQocSXXuot6LmHHoIgKHzsYkUh\nJhVR0JNBCqFoiAoRegSFFEwte/jPhjnjvsze+8yeOefMFzasmXX7rf9/r1n/NWuoqemSUdxRtogm\nLC1bQBdUTut3eKFsESkW41X8VraQHPSsdf7Ua5nEM/iv4D7yMoStGMaikrV0YiBaRzCWpEcxnsob\nxvImdcYwL3Pv7lR6SeZ6Du7M2e9ILtXNeRYn+qg/SHrSmmemvoRreEQY/nfsxW5swMWk4+fwQVLn\nebGW7kzuwzaxPjyAH3Aa2/Ez9uOJJJ2n31Ecw6Xuhjs76OTUpbiOr8UsegVvidnzBz7F+qSdfcKp\nC8VMOpukGyzCUbFO7MI/WJfU3y8c9W/Ofq8Kp/+EN4TTW/EeznUY56zlfbyWufc5bgjjrszkfSxm\nZ5p38Gbq+kBSZgwbu+iX+HP0wox//M7touxT4rEJq3EPNmEFTuL1VNmRpPxnuK9FG8N4HF/hXq0D\ngmy/DbLrdU1CJ6fuwbt4SAQ1J0Vkthm/CEf8Kda371P1nsa3WGZycLMKR5LrDfhRPF7HTQ5+WvX7\naKrMtVwjvJ052j+u+2HuFLfdk9ZO//YhsV+ah4/EFmU5PhTr1IPJ9QUcTNWbwP24iUPJvRViHW04\n/zzWinX3CzELj+NWm34/EevuY/gVf3c51rdFELdABGxwqos2OrFTjPN4n+0MQutAmC+CpTwsKVJI\nH+zBlrJFdLOmFs1NXM5ZdqJIIdOdKjm1Zopo7FNvlaqi+hQRWBVm84ZTi4oGa1pTmM1rZ/bGVrEl\ny7JGvAk73STvS3xTpKgGtVN74y6TDyMavIgrONwk74x4T144RR+9zVT+Sn5Z1osI/kiTvIFRpei3\n3fHebKRne1RlprY7Zjtaoq6y6MseVXBqp2O22caMs0erY7bpwm68PIXtTXd7IE5j1ibp1e0KVpQx\n/X1qk2Xa2iN9zHZVnFAMYUeJmsqkb3tUYZ/6JB4WR3kXxRcUl8RXFddL1FUWtT1qampqamoqwv8Y\noZik/6S2SgAAAABJRU5ErkJggg==\n", + "text": "x\u22c5sin(x) - 1 1\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\n x x" + }, + { + "output_type": "pyout", + "latex": "$$\\operatorname{sin}\\left(x\\right)$$", + "prompt_number": 9, + "png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAABHNCSVQICAgIfAhkiAAAAnVJREFU\nSInt1klo11cQB/BPjKlbRaqigtFK0kQwitiIQlxA0iWCIopKL0LdwAVBiBseFA8iaA9igrbioZce\nhNBLC/WgYKHQqlFRXNBaqBsqVnDDhWj1MC/ty5+/HiSQg/lefjPz/c97M/Nmhj/vKT7HDVR1dSA9\n3tFvGM7heifG0o1udAVKitg+wjY8wBO04ZvEfYZZqMYi3Mv8GjEdt7ACMzFRzEsVluo4M4NQieNi\nFjekuyvwLR5iGUrRit/wHH++LaEeuIixSa/EPymw0dic7GewJvMbkxIYgFfYh4aM/xn7C+5anMnb\n0xlQJwpzQBT4KC4kbkOxgHPUYST+Tvp97MAJrMQeUdGxOlZzPlpQnvRLOJTxJRiS6QPwb5JrcDsL\n8gMMxPeiGD9ideJOobYwiRxjktNfaMK0jKtI3024g7KMq0zfVXiG3gXnXseWTK/HpCQPRZ+MWy/a\nt7RIfB+LQr4Vy3EtJfKqwKEEV7DzDb4t+LXA9mk6py6zLfR/yxTiF9FyxVCKrW8KvBA1otdbM1t9\nCqZavMCIjCvBXbEAcuwUSRNt9CG+wJdF7izDI6zLbH1F20r35VyHGfgOpzP9PA6KoW7H12IbXMZX\nGJ5x4zBYDF2ORfghyRvxUvTyJ8lWj7VJnpoSPJn5N6JXkqvEPBZNoEYMTDuGYDZ2ZbZyHEF/TMAf\nGTdDrLnfM1tfsRoPi5a5i6dis/UTr9aMOSmWJWIDvUj+teLFryZ9oijgf8gH5ZgYkgZMwXjsxtns\nN7ewAKMS9zjj5ort1ZLZ2lIw88R2aRIvQMzZJPGa/USxmvGTWNGT0RN7k8843BR/IrvRjc7Ca5nO\nfj0LzBdrAAAAAElFTkSuQmCC\n", + "text": "sin(x)" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "a = 1/x + (x*sin(x) - 1)/x\ndisplay(a)\nsimplify(a)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 10, + "text": "[-2\u22c5\u2148, 2\u22c5\u2148, -2]" + } + ], + "collapsed": false, + "prompt_number": 10, + "input": "solve(Eq(x**3 + 2*x**2 + 4*x + 8, 0), x)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\sum_{n=a}^{b} \\left(2^{n} + 6 n^{2}\\right)$$", + "prompt_number": 11, + "png": "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\nCnsQh3MAAAAASUVORK5CYII=\n", + "text": "b \n ___ \n \\ ` \n \\ \u239b n 2\u239e\n / \u239d2 + 6\u22c5n \u23a0\n /__, \nn = a" + } + ], + "collapsed": false, + "prompt_number": 11, + "input": "a, b = symbols('a b')\nSum(6*n**2 + 2**n, (n, a, b))" + }, + { + "source": "

Calculus

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$- \\frac{1}{6}$$", + "prompt_number": 12, + "png": "iVBORw0KGgoAAAANSUhEUgAAACYAAAAiCAYAAAAzrKu4AAAABHNCSVQICAgIfAhkiAAAASpJREFU\nWIXt178rRlEYwPEPXikZLH4NShTKoAyymw3KPyJlsBssVqvBYDIwCcl/gHpXr8liEYWN4bx0k3Ku\nzsmr937rDGd47vPtuc+5zz20OYN/LfCVUWxjp2xgLb3LJzOYxxCeygbnFKs31xT6ywZ3JtdJRCVW\nlrYW62iuUnRlEPlgHOtYwLBwOu9wnzFnRetRuim/4S3BM/4PxYpNYlV8FRvYSm7UpCjRg2nxYg+4\nTS1U8VtSnMqfmBP6tw97eI0Jyj0rNzGCfQxgLXO+KBZxUNgvC3Mzipyvchc3uMYYrnCeMV80dZyi\nVyjAMVZig3P2WDcu8SyMrRNsxAbnFGvgsbB/Ef7LosgpdoiJwn4YFxnzRVPDEZaEi++ZcPltGWaF\nz0TLXnwq2pN3yugjnSzSytcAAAAASUVORK5CYII=\n", + "text": "-1/6" + } + ], + "collapsed": false, + "prompt_number": 12, + "input": "limit((sin(x)-x)/x**3, x, 0)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$1 + \\frac{1}{2} x^{2} + \\frac{5}{24} x^{4} + \\operatorname{\\mathcal{O}}\\left(x^{6}\\right)$$", + "prompt_number": 13, + "png": "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\nAAAAAElFTkSuQmCC\n", + "text": "2 4 \n x 5\u22c5x \n1 + \u2500\u2500 + \u2500\u2500\u2500\u2500 + O(x**6)\n 2 24" + } + ], + "collapsed": false, + "prompt_number": 13, + "input": "(1/cos(x)).series(x, 0, 6)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$- 4 \\frac{x \\operatorname{sin}\\left(x^{2}\\right) \\operatorname{cos}\\left(x^{2}\\right)}{x + 1} - \\frac{\\operatorname{cos}^{2}\\left(x^{2}\\right)}{\\left(x + 1\\right)^{2}}$$", + "prompt_number": 14, + "png": "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\n", + "text": "2 \n \u239b 2\u239e \u239b 2\u239e \u239b 2\u239e\n 4\u22c5x\u22c5sin\u239dx \u23a0\u22c5cos\u239dx \u23a0 cos \u239dx \u23a0\n- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n x + 1 2\n (x + 1)" + } + ], + "collapsed": false, + "prompt_number": 14, + "input": "diff(cos(x**2)**2 / (1+x), x)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$-2 + \\frac{1}{4} \\pi^{2}$$", + "prompt_number": 15, + "png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAAAiCAYAAADbLB6TAAAABHNCSVQICAgIfAhkiAAAA1BJREFU\naIHt2m2oZVMYwPHfNcydmdzrZcQYV15GlDB5nabxhfjE0Agp6ZKR8UWkpPg2EspbUnzwbiRd+SgU\nX5SUuGXS5HUwKC+ZSxru0PHh2bu773Fuzt5n7bOvM+dfq73W2ns/6znPWetZz3rOYUitLGlagRoZ\nw374q2lFBo0DsA7bcVbDuti/aQVqYBP+xESfxz1CeITvip2DaOCXs2u/XMMS3CUMeyQuwVX4jME0\ncL+ZxOd4IWuvxLPYQGwCQ3rjcNxSaH8ofH9y267Dg3gK1wuf1CQ/6d8mN1qoP4y3Uw9wI7ZhbVZe\nwbc4JfVAJeingXPWCHdxQkqhx+ADER7lrMgG+kG1WDtFfP4zzk4gp1sOFhNrTWrBmzEtXESRR9HC\n+goyt+GgivpcjifwvvjAd1aUU4YVuB+HZO3zMEKaKGKZcAub8V6hf2d2XYt3S8ocNX9FlGEqK/1i\nKR7Da7LIAZfK/HAKAz+J3/BmW3++VLYnGKPfnIabsWqB+y3cIybONTg1Kznv5JWRmhRcii/wezbw\nbMn3p7BFbFT9ZhJbxYycwF6xGs/BJ9id9T2CXQ3oh4gLZ3FuxfencNh/PNOqqTxjLoZ9wNyR+0Vz\nPrZRTsYMLutBRjcGroNjxZ6S83qhXsnVFX3wibhV927jS9zX1rdSGOdavNqFjLt19nNn4iGRtCnS\nwr0iBKyDnYX6ehHLE1/2sn893QVFA3+Fx3Vv4N1t7VG8hNuE/4IDsVr4rk48h/EO/ceJpTrT1t/C\nN13q1ys34K2sPoGjhL0ayS+P4Glc1NZ/Pq6sIK8pF5FzqNigV2ftC8WXW/pkmiqbtlVEDmMiVUds\nFJuye/83bhJRUJ7b/SW7nq6BsPMKC+/If2N5BZmpZvAG1fIRn5p/AhzH9yLvW4oUM/gjbFzg3iz2\nJBijCuN4HreLY3MZNmJHof2rSAX8WFaJFAbe0aZMCvIV0Atb8HHFdzt9nq+rCFqsCfc7RDasKhfj\nDfyRRp3qLFYD9xLnrhK/Mkwn0qUnFquBe2FSxNCLgkH748nV4pfd43EGLhAHoL3qO/3tUywX4V1e\npnGdzqfFvjBoLmKPSHHO4Ghh5JPEkb0R6soHN82Y+cf2XQpJ8CFDhgwZsm/wD9hYqaXTKEKLAAAA\nAElFTkSuQmCC\n", + "text": "2\n \u03c0 \n-2 + \u2500\u2500\n 4" + } + ], + "collapsed": false, + "prompt_number": 15, + "input": "integrate(x**2 * cos(x), (x, 0, pi/2))" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "latex": "$$9 \\operatorname{f}\\left(x\\right) + \\frac{\\partial^{2}}{\\partial^{2} x} \\operatorname{f}\\left(x\\right) = 1$$", + "png": "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\n", + "text": "2 \n d \n9\u22c5f(x) + \u2500\u2500\u2500(f(x)) = 1\n 2 \n dx" + }, + { + "output_type": "pyout", + "latex": "$$\\operatorname{f}\\left(x\\right) = C_{1} \\operatorname{cos}\\left(3 x\\right) + C_{2} \\operatorname{sin}\\left(3 x\\right) + \\frac{1}{9}$$", + "prompt_number": 16, + "png": "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\n", + "text": "f(x) = C\u2081\u22c5cos(3\u22c5x) + C\u2082\u22c5sin(3\u22c5x) + 1/9" + } + ], + "collapsed": false, + "prompt_number": 16, + "input": "eqn = Eq(Derivative(f(x),x,x) + 9*f(x), 1)\ndisplay(eqn)\ndsolve(eqn, f(x))" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/teleportation.ipynb b/docs/examples/notebooks/teleportation.ipynb index 3cba4ea..953a5a0 100644 --- a/docs/examples/notebooks/teleportation.ipynb +++ b/docs/examples/notebooks/teleportation.ipynb @@ -1,505 +1,166 @@ - - - teleportation - 2 - - - - - <h1>Teleportation</h1> - - - %load_ext sympyprinting - python - 5 - 0 - - - - from sympy import sqrt, symbols, Rational -from sympy import expand, Eq, Symbol, simplify, exp, sin -from sympy.physics.quantum import * -from sympy.physics.quantum.qubit import * -from sympy.physics.quantum.gate import * -from sympy.physics.quantum.grover import * -from sympy.physics.quantum.qft import QFT, IQFT, Fourier -from sympy.physics.quantum.circuitplot import circuit_plot - python - 6 - 1 - - - - a,b = symbols('a b', real=True) -state = Qubit('000')*a + Qubit('001')*b; state - python - 7 - 0 - - - pyout - a⋅❘000⟩ + b⋅❘001⟩ - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQVZDQVlBQUFDTkRpcFdBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBNFZKUkVGVQphSUh0MlYySUZsVVl3UEhmNm9vdFdheGwwR0pGaEZGU04yWkZG -eFpiaExCUVVWMVVrZ1FSVkpjRjFVVlJ2QmRGQmRFWFhaUjYwUWNaCkVVR0ZXTjBGa1JYUjUyWW9T -bXowWWZSQkJJcFpaRjJjTXpDZW1Wbm5mWGRPYXJ6L216UG5tZWZNUEI5bnpweDVoaUZERGtQV1l1 -bWgKTnVJd29qRWU4d2U0MkYxNEw1R3R3WDFZZ2RVNEhsdHJ4bmFsTjRNYnNXVUErL3ZsSHJ5SVIv -RXB0aWZuLzR0NHdGRjRFOXZ3UTNKdQpSb2Z4NkNYOXk3QXJHZ2ZIeGh0ZW1WbXZoOUcrTEIrY3Rk -aGZzaW0xbzB6WGZvN2lBaUc1LzhUak9ubzZpa2N2NlcvQk00bnNDZnlHCmhSbjF6c0ZWYlkwdU1T -SThNZjN3dE9ZbnE1ZjB1L1J6SGpiaGNieGs5Z1FQR284S3ZkTHhxbmpUcXhPZHFTaS9KSk5ld2Yz -OW1RN0cKOFZxZlk3WUtTYTZqVnpyTzVTZmNhdllFVXhPUGViTW90MkZsYkhjazhwMnhuY3lrVjVZ -dk83aVpjMklKbHVQZEZycTUvR3hMSlI1MQpDVjZCQi9BSW5zUGwrS0RoZ2lmR2RuY2kzeFBiaVV4 -NkJTL2oyZ2JidW1LVnNLeVBZUjAyQ2t0bVhleHkrZG1XU2p6U2wvSnFQSTl6CjhSM093aWQ0cCtH -Q2hhRjdFbm5SSDgra1Y3QVhSemZZMWhVWHhYWUVOOGZqYVdIMy9GQ2ltOHZQdGxUaVVaNkZwd292 -OGp1RTVCTGUKUGJzMUwwLzdZcnMva1M5STVGM3JGWXdKVHVYa1F1RXphWDFKdGwzOWhpYVhuMjJw -eEtPYzRJZUYzZHVySmRseUhLYzV3ZE1OOG1JVwo3Y3FrVjNDTnNDemxZcEh3eW5vN2tTL0Q0aHI5 -WEg2MnBSS1BZb2tld2NWNHk0RXpZQkovNHNPR0MzNFIyOFg0cFNSZkZOc2ZNK2tWCm5DSHNFK280 -R3k4SXZwV1pqMVB3V2MyWWJiaXUxRDgvNnBjbitNSjQzMDAxNDNQNTJaWktQSW9FbjRrVFZKMmV4 -RWY0QTZmaDYrUjgKWWVqSkR0d1JuaGZiNlV4NmhPKytqelh6cGZydjNYRThxMXBRcU9OMDRiMzRU -VWsySlZTVjZqNjFjdmpabHRwNEZFdjA5OEtUdXJOMApia3hJY0ZIK3VxM21vcjhMems4bDhrdnhG -VFpuMGlQczdsK3ZzYWxMZHVCYjRmdXo0QWJoUWRoWW81L0R6N1ljTkI2YmNXODhYaUJVCldYN0du -VGdwdGxRck4ydUVaV1pKN0UvZ1Y2RzhsMHZ2bUpJOS9kSlBvV01VUDhYN2lUYk1DRXRoUVM4WjAz -VThDdTRXSnRvVk5lZGEKeFdOQzJQWS9KVlJ0bGdvN3hmZUZDa214ZGIrOVp1eE5RdEFld3h1NHBl -RWVYZWxkTHl4dmc5QnZKV3NsbnNRR1lkS25mMjF5eCtNVgpmSTYvaFFUdkZYNTZQRmpTbVVzOC9u -Y01VcW84WXBscnFmSkk1Qytob0Q5a3lKQWhRNFljU3Y0RlBRNHo3WW1kVjdrQUFBQUFTVVZPClJL -NUNZSUk9Cg== - - $$a {\left|000\right\rangle } + b {\left|001\right\rangle }$$ - 7 - - - - - entangle1_2 = CNOT(1,2)*HadamardGate(1); entangle1_2 - - python - 8 - 0 - - - pyout - CNOT ⋅H - 1,2 1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQWNDQVlBQUFDWGt4cjRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCTmhKUkVGVQphSUh0MkhtSVYxVVVCL0RQakUxWnBwWVUyVGF0YWxGRW14VzAw -MElMSWtVVVdVRUxHclRRUmhHbFFkRktrVzFpQlNHMldCRmFFcEpaCk5HV203VVpobTBVYmJiUkhX -UlExL1hIdWo5K2JOKy85Zm0vRzBiYmZGeDd2M1hQT1BmZThjKzg5NTl4TEMvOHFqTWI1ZUFqUFlR -Rm0KWVN1MFlTWkdKdG5OMElYbDZNYkxCZnJHNHUzRTc4WjdPREFuMDQ1ak1BZjNwR2NCcnNZNk9k -bXVwT2RyUEpYa3ZrdTBkekUvMFQ5Swp0RXY2OVBmTnNTY1c0dHVNSGMvajZNU2ZKUHoyVytKL2hH -ZXhiVjhIR29TTDhSbk93S2dNYjNNOGpSbkN1WGxjZ05lVEFYdVY2Ty9DClVRWDByYkVNMHpFa1Er -OFFDK0hkTkQ1c2dxK0VVL0s2ZjhmNkdkb2FlQklubGRpenNyaGQvTzh1SmZ4MzhJM2VDNm9TT3JF -RUgySzcKRXBsZGt3RzNGZkJtWWUvRW4xblMvNzRDMnViNEFDZVg5Rms3MlRRbnRjL0IrSnpNbWxn -aDdNL2pNcjBuYjZDd0RKK1g4RFlXdm5pNApQNHJYd0F2Q01SczNrZjFTNzFYZWhnZlQ5eXY0QlNO -eU1pTndTNDQyVXF6K081cU1lWS80dVMzU09JTnkvTnBDdUs2Zzc2MTY3cHFCCndnWnB6RmtsL0Ft -SmYyNFZaZTI1OWhYWUExT1V6M2dOeTBWNHlHSkhzVnFJc0RNWXArUms5c1dpVEh1WUNDZnJWakQ2 -dmZUZUdmUHcKUjQ2L2Yzb3ZMT2o3aXNndkE0MzkwanZ2aXhvT1NPOGlteHBpRi9HRHkvU2VxQ0lj -VjBBN1U5MHBRL0M5bUxpMmpNeU42b1VBWENoVwowRFVWeHJ3N3lSYU5UU1R4UHpDOGdxNkJ3czND -cGxFbC9PWENEMVY4MmdPWEpzVVQrMjFhNUl6Qm1mWXRTZWNoR2RyOW1lOTJmSnhrCnhsVFEvM0tT -M2JLQU53Zy80dFhxNWc0SWx1SlhzUmp5ejlQQzNubjlVZnhZNnJ6YlNoajNZSzY5ZmRKWlM4VERS -RVZTdzFhSi8xVUYKM2V1TG5GUVdTbmRQdW02cWF1d0FZRDJ4SS9QL1hVTXRmMXhVVldGMkcrMkpQ -L0ZtaFg2akMyaWp4UGJNNGkyeFNzWmhVK3lEeFJsKwpyUjcvb01LWVo0amRONmVFWDR2bGZZN1ZL -NEY5aEE4WE5lRFRUNXVXaWxxNUdUWlVITzlQdzZFRjlHUEZLcmtjMStvWmJuWkt2Q2VhCmpMa1d2 -aEFUTjdSRTVwR2thOE1tdWdZUzE2Y3hkeTdodjQ2ZlJQWGFaMHhOeWp1YnlGMk9qUXJvZDRsS0tZ -OE80Y3hQTVR2SGF4ZVYKejg5NjVwNDhyaE83OTRBU2ZwczRKVmZaM1oxNG9JTGNCRXdXcGZobGVw -Zll4QkhoQjhVSmU3Z0laNDBXVzBOYjloTEo2ZUlHQ2s1UApUeEhLNGloY0tTYjczZ0xlbllsM2VF -bmZDOFJoNzlRRytuZE1PcVkza0JraUhIeXZldmxjaGlQVnoxanRlQWJUY2pMcmlodUIrU1U2CkRr -ODJUVjRaV3c0VFAzKzJPQm5YTUVhRW15TksrcDJBUnh2bzdSU3JaVklCcnlQMVhhem5JWElMc1J2 -ZndBNk5qQlkvMTQwVG04akIKd1pwUHlGUThubW1mS3c3Q1dZeFBZMDVwb0tOYithNnVhb3V4dUVG -Y2dpMFFwZXhrVVJIbGNRVGVWNzhzWENyeVFoSG1LQzRHaUJ4eApuZ2g3TTlJelhkdzlyVjNTWjZJ -SUIwdEVPT3NXWWZFcDVhZG1xam1oVTg5cmxxdndXdnFlaEJkRnFPb1dWVjhYdGtuOGFjSVB2eWYr -Ck81aXI1MW1zTDdiODU5RlhKd3pGSjZuZktyZWx6NmZIL3huYXhVNDlTMXp2ckpZQld5akhGSEUx -TWxma3RGV08xb1RVY1pBb01HcVkKS0s1NVhoTHh2MUdWMTBJLzBDWk8rN05GSlRsRi9YVGZJWkww -T2FsOXVucWhVbnZtcmc1YmlqTC9meGtqYyswVjRrS1NtSlRqeFkzeQpjTDJydTZ6c3FyYWxCZUdn -Y1grM0VTM1VjYVpXVHYxSG9WOFhnQzIwMEVJTExiVHdUOEZmaVpFbWFBajJUQThBQUFBQVNVVk9S -SzVDCllJST0K - - $$CNOT_{1,2} H_{1}$$ - 8 - - - - - state = qapply(entangle1_2*state); state - - python - 9 - 0 - - - pyout - ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ ⎽⎽⎽ -╲╱ 2 ⋅a⋅❘000⟩ ╲╱ 2 ⋅a⋅❘110⟩ ╲╱ 2 ⋅b⋅❘001⟩ ╲╱ 2 ⋅b⋅❘111⟩ -───────────── + ───────────── + ───────────── + ───────────── - 2 2 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWRvQUFBQWtDQVlBQUFBdUMvdHlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDS05KUkVGVQplSnp0blhtc0hWVWRnTC9YdnRaSGkreG93UUlQMlplMk5oQUtH -QXVJL3lDeVEwRWlvcktvQ0VTVWFDeUIzaGl3aEQ5WUJBT0VDQnFOCkJNSWFkaFR5RUlHZ1JsRmtD -UUt4RVdWVkU2VktDKzN6ajk4TWQrNlpNL3M1TSsrKzgvdVNtL2Z1T2I4N2MrWitjKzZjZTVhNW9D -aUsKb2lpS29paUtvaWlLZXlZZFBKVGg0U09vODVCUTMyR2duaXV3SFREVzhqNXZBVFpyZVorS29M -N0RRbjJIZ1hydWdCa2xZdVlESndLLwpCZWI1TGM0QWk0RlZ3RDliM0tlaXZrTkRmWWVCZXA3aUhB -SXNRcjY2ajdlNDM1OGlYUTVLdTZqdnNGRGZZYUNlTzJTMFJNeDkza3VSClptZGdOZkMzRHZZZE91 -bzdMTlIzR0tqbklhSE5sdEIxd0U0dDdVdXhvNzdEUW4ySGdYcnVnREpqdEcyekRUSlkvK2V1QzlJ -Qkh3ZDIKNkxvUUxhTyt3eUpFMytvNURKeDRicXNsZERud3NaejhoY0QzZ2R1QTd3QjdPTnJ2NXkx -cDIwZjd1aGhZRHV5ZjhWcFhjUnRFNlZPQgpFSDNISEEyY1ZtSWJSWEhxTzQxcjM5OUFKdmc4QlJ4 -dXlXK2pYc2RrblEvcTJVNFYxMFdlSWJ0T3U2clBSWEZPUExjaGFFdGtLbmdXCmh3TjNBSHNoTStk -V0F2OERqbkN3NzU3eGZEN3dEMkJwOUh3ejRFWGdVTTl4NTlIKzlIc2JvZmtHbUFrc0E5Wm01RmVK -VTk5cGZQaysKRWluLzdwYThudkhjZFgyRmN1ZURlaDZranVzOHo1Qis3MTNXNTdKeGpUelBSZzV3 -bDdvYktNbUZ3Q2N5OHVZQ2Z3STJOZEx2Qjk1RAoxb2Mxb1djOHZ4eDR3a2hiZ1ZTK1RUM0c3UUtj -VkxiUUJxN1dxb1hvKzBKZ0F2bUFtTFRrVjQxVDMybDgrZTRCYndJakdYbEpYTmZYCnN1ZURldTVU -MTNXUGJNOXhmcklNRTdpcno5NDlud3hjaTdRK2JnQytYbWNqSmRnSXVDc25meW53Q25DOGtmNFY1 -TUJQYmJqL1h1TC8KelpIWmNpdU1tQ1hSdnBaNWlvdTVxRnJSMytjWE5WK1hKRVRmU2NiSnIwaGw0 -dFIzR3ArK0h3WnV6OGpySmY3M1ZWK2gzSG1qbm9XNgpydk04Zy8yOUg2ZDVmYTRhbC9KY1pqTFVq -NEV2STEvYnY0aTA5T3J3TGVEOG5QeXZBbGZuNU05RTFtTjl6VWgvSmZxN1o4MXkyVmdDCnpFSEdB -NUxFencvMkZCZnplNHJITjJ5VVdhNVZSSWkrWGFPKzAvanlQUXQ1dng4dFVVWmY5YlVzNmxtbzQ3 -cUs1NjVKZVc1ajF2RW8KY3ZWZkJKeUJ2R0VtWThCQndMMDUyNWtBRGtOYVprbDJqUDcrSWVOMVkw -Z0w5QkxnTXVDanlPQjczckhIZDA1NTIwaGZBNnlqMzdYaApPaTdtVHR5TVEzWkIxNzdqN1ZkMTdo -TDFQWWhQMzNzakY4VlZpT3Zya0F1S0RWLzF0U3pxV1ppZ3V1c3FucnNtNWRsRlM2bUk5NUN2CjBs -c0RMd1BIQVQ4ellyNkVkR2ZrTVFuY2JVay9BUmszc1hWWHpBTitEWHdiYVlrdFFGcEVrOEQ2bkgz -RkZXMjFKVzgxc0ltbnVKaDMKa1l2Q0tQTCtEUk5kK29iNnpsMml2Z2Z4NlRzZUMxeUt6UGhjQi93 -dVNydldpUFZWWDh1aW5vVTZycXQ0N3BxVTU3aUY3K0tYRmZKKwphZUZkcENWeUYzQ1drVGNLSEVY -eExEVWJSd0Q3SUYwUWJ4bDVzNENibzMzZUdLVTlEYnhLY2ZkRDNBQ3hWWWFSUkw3cnVDU3pNdUpk -Ck1CMTlRelBuTGxIZmZYejZCdm5nZlJ4Wi9yRWFlQWY0RGZaeFBwLzF0U3pENWpucDJwZG5LSFpk -eGZOVVlNQnpmS0VkOGZDd2NTV3cKTDlJTkVQTlo1TU54WGNVRDJRcHB5WndKM0dUSlB3ZHBCU1Zi -TzdPUnFlRkZIN3JQNU9UTkJWNzNGQmV6QVBoalhnRWJNaDE5UXpQbgpMbEhmZlh6Nm5vSGNKT0FP -WS92enNYZnYrcXF2WlJsR3p6YlhMajFEc2V1cW5yc201Ym1OcnVNa0R3SFBJcTJoa3hHSkp3R2Zx -YmlkCk1XVDJXUSs0SmlQbTA4QUxEQjd3RW1SUmNkR0hidnlhRFkzMER5RFNYL1VVRjNNTThMMk1z -bjBJNlo2WmFjbGJpRXlSTi9sdnRFM3oKbTRodjJ2UU56Wnk3UkgyMzQzc1BwQnYzbDBiNjdsRTVU -SHpWMTdLbzV6UmxYRmYxM0RVcHoyMWZhQUd1UWdhenowVmFLZmNqQzRETApNb0xNb0xzNitodXpI -LzExYjJOSWk4dnN4amdRK0JleWhtczIwaFZpTzBsZlFrN2liWXowUFJQNVB1SkFLdmNhc3QrVE41 -QlpnN2FKClBiY0JYN0NrcjZYOXloalRobTlvN3R3bDZ0dS9iNERka09OOE9wRzJOekxHK2dQTHRu -M1UxN0tvNXpSbFhWZjEzQ1ZXejEzYzYvZ24KU1AvNjZkR2o2a0QyU3VCQkJzWE1aM0RLL1hya1lK -OHpYbnNROEJqOWRWQnpNL2F4SHVrK01tKzU5aW5rN2lVLzlCUUhNaUhnUnZKNQpBM2pOOGxpYmtk -N2xiMEcyNFJ1YU8zZUordmJ2RytRNC80NWNGR05PUUc1cWNJVWwza2Q5TFl0NlRsUFdkVlhQWFdM -MTNNV0Y5bTNnClI4aTlMWi9FUHJNdmk5T1JieTBqeUNENHFjZzlKMWNBenlmaTFnTDNJTjB4TVdj -Z3QvdDZFVG51RWRMVDk1TmNCWHdPMkRoNlBnTVoKN0w4ZXFSQys0c2FCditTVWE5aG93emU0Y1E3 -OXJqdmI4b1VxY2VyYnIyK0FSNUNlakRuUjg4WFJhMDRCL3BPeEQ5ZjFOYWJvZkJoSApQU2VwNHJx -TzV4aFg5YmxzM0RnMVBXK0ozTDl4SmZCZCtpZGVFM1lDL2syMVc0c3RvZC90WjNzc01PSjNSazZF -QzVBMVY0Y2hyWTFWClNKZkhZaVArQXNzK2x5UGZoczVCQnZwdkpYM2JNSmR4KzFCdm5DTm1vc0Zy -WTRiVk4xUnpidnBlRnIzbXVXajc3eUF0MDh0cXhvSDYKOXUwYjRGaGtiTzhpNE9mQUFVYSs3M3Bk -NW54UXo0UFVjVjNrR1FaZHU2N1BqVHhuelI2TUdVVm1tSjJOdkRITGtVSHZSVlR2anpmWgpHdWtP -S01zOFlOZWMvTWVRTXBwOEdPbGlpTmRRZmhBcCt4b2piZzZEWFJOSnRrT21uQmUxMnByR2JSaWwx -UjEzbVVER0pPc3lIWHhECk9lZW03MjNKL3NCNHFrWmNFdlZkVEJQZk14RW5iMXJ5Zk5mck11ZURl -aDZrcnVzOHp6RG8yblY5OXVwNUlmQlg1SFpaQUZ0RUcvbGsKMVEwcHJkRDBucWpxZTdoUTMyR2du -cWM1WThBM2tlVVJJQVBWa3hUL0xxUFNEVTEvNVVOOUR4ZnFPd3pVYzJEMGtQN3hMaVpSS2UzVApR -MzJIUkEvMUhRSTkxUE9VWlYvZ0FlUm5rSlRwai9vT0MvVWRCdXA1Q3JNcmNDbXk0SDhHTXJsRW1i -Nm83N0JRMzJHZ25xY3cyeUkvCkVoelBVTjZQK3IvSHFFeDkxSGRZcU84d1VNOGRVclM4WjNQZ1Z3 -d3V6dDBFdVJYWmE3NEtwWFNHK2c0TDlSMEc2cmxqaWk2MEc1TmUKUER5SnJITlNwaC9xT3l6VWR4 -aW9aMFZSRkVWUkZFVlJGRVZSRkVWUkZFVlJGRVZSRkNVWS9nKzhSYjJOdW0ycENRQUFBQUJKUlU1 -RQpya0pnZ2c9PQo= - - $$\frac{1}{2} \sqrt{2} a {\left|000\right\rangle } + \frac{1}{2} \sqrt{2} a {\left|110\right\rangle } + \frac{1}{2} \sqrt{2} b {\left|001\right\rangle } + \frac{1}{2} \sqrt{2} b {\left|111\right\rangle }$$ - 9 - - - - - entangle0_1 = HadamardGate(0)*CNOT(0,1); entangle0_1 - - python - 10 - 0 - - - pyout - H ⋅CNOT - 0 0,1 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQWNDQVlBQUFDWGt4cjRBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFCUkZKUkVGVQphSUh0bUh0b2wxVVl4eitibDVWbVpuTW02N0pSaWpiSk1JMGtt -MFhEZ3NLa0RBb21XZWlLWmdaV1loY29xY1lLUW1vaHExYmtwVDhhCjNZZ3V0ckxhVE12U3dLNjJM -a2dYUXduc1p1THNzdjc0bnBmZitaMmQ4Nzd2ZnZ1dEhQdDk0Y2ZMNzNtZTk3bWM1enpQZWQ0REJR -d0kKdkFCOEFYUURmd0k3Z0JiRHF3RGVCblliL20vQU5tQkpML1FmQ1N3QVZnT2JnRGFnSGJqYzhP -Y0F5eTM1aDRHdHdGL0EzOEJVajg0Tgp3QUhqMDgvQUtvL01aT0JSNEJuZ2NlQlZvQlU0TGVEblFx -T3ZDOWdPdkFic05MUmZnSTNHOXcrQmY0QXZZMkx1TTJZYXd3OEYrTGNaCi9oVTU2TzFFQ1Q0UEdH -N29Sd0FQQUE4Qys0RnpuUGZHQWg4Wm00OEVkRitOTmxPUlF5OEdtczM3YmpJdlFZbTh5cU92RGJq -VDhoRXkKU2JyQlkvdk5nRjk1d1hKaitNSUF2dzN0MWpHOTBOa0FIQUp1RFBDSG9HcjdIUmptOEM0 -RmFvSFBESCtVNS8yYmdPa09yUWdsZndOSwp1Zy8zbzBvdnQyaWxxSkpjUElIV1paSkRQd2tsdmQv -d01scThrUjdlTUxTTGQvUkNYejBLWkVHQ1hBUHdpb2UrQ2pnQldHcjAxSHRrCjFxR2sybWhDN1hW -c2pNMGFvL011aTFhSGZ6TitCZXp4MEtjRHkySnM5QW5GcUE5dkNmRFBSZ0UwcGRRM0JiV0Y5aFN5 -aS9BSEZ1M1cKMGNBZndDY092d2hZNzlEdU1YN09TN0JaWWVTZXMyZ0wwVHJZS0RkeXZzcVpBcHla -WUNkblRET0dHd0w4T3d4L2ZrcDkyNHk4ZXk3NApjQlpRNmRDT1JvZHdoQmFQdnFuQXJkYi9jbFRo -UDlDemFseWNiL1J0U0pDNzBzZ3RUWkRMR1VNRDlObm1lUUU5ZXpMQURQUGNsTUxHCmNVYitBMkJ6 -Q3ZuM1BiUlpaRmRyTTdBWXVON1NlYTdqVHoxcXJldlJXUmVIcWhqYk5xSjE2VWlReXp1ZVJ5UG1V -UjdlVU5ReVBrK3AKYXo3YVZYMDU4QnFCVXh6YVZqU09scG4vYThrZUJEcU0zWXRUNkc4bGZvQ0o4 -Q213ajU1VFhON2c5a2lNc1dvMEl1NzM4TThBUnBDdQpPa0F0Q0JSTUVzcndUMjBuQTk4NHRHWTBq -aTR5LzRlamI2WUlFOHh6VjRMTkN1QXlZQy93Ym94Y0thcWt6U2g1L1FKZlFxclFSUEpPCjRKMm9i -NmN0MjIvTjg4Y1VzcmVUdmFpZ2o4Z0RIdGxXdEZ1dlF6NTNPdnk5NXZscmdzMWxxT3JyMERnZFFq -WGFyR2szWWs3d0pTVHEKazZGK1A4czhiY2VHb0o2K0JNMzBjeXhldTNsT1MvQ2xDdTFtdHlwbjR1 -L3RCNEUxYUFCb3BPZENSUnVxSnNibURKU0lKNEdYRXZ5TAoxc1dYa0xqNDQxQUNQQVVjSHlmME5D -cko4UUgrSHVCcmgzWU4rc0tPbk9zRUpwci9SV2pLK2hpMU9oOG1vY1V0OGZCV0FxY0czcHVJCnJp -d09vVXF5TVJ1ZGc2MkJkeWNEUHdIUDRqOHJYV3hIRmVRYmhPTGlENkVPdUJ1dGRXVklxQVF0dU51 -dkk1eHVGS3h4NkR2UjZCamgKTVhUbEVHRU1Tc3BiWk8rR1k5RFhkeVBaMXhNUnhnSGZrem00Zlhp -RGNPK3ZSWXRvVjhrSU5HaDBvaWt0RFNwUWNqY0crRW54eDhHYgprQXBVaXJ2SVhDaHVJZk0xUEJk -NEQrMm9idFM3TzFEN0tqYk8ybGNKSzlHZGtvM1J3QzNBaTJnRVhvYytMQy95T0ZsaTdCMDA5bllE -Ckt3SUJ6UVB1RGZCQW8vdHExSlphVUl1NG1lUWRYRW5tMGpPS3V3dTE4dGZSY0FQcDR3OGh0a0p5 -UWFsUmVxSkZXNEdxWVRDZ3IvRm4KSmNSM3FQY1crOUFrWTQrQ0l3MTlNQ0N2OGVjaklkM29rbkdj -UlJzUGZKY0gzUU1CZVkwL0h3a0JqYVgyb1ZhRERyYkJncmo0SjlEegpscUhmTVFvZGxvdUIrNEJy -LzJzSC9tZkV4ZCtFUm40WGM5RjAyWTJHamRyK2NNejNIVEdZNEl1L2lNejFqbzFqVVd1TGZtVVF2 -dTNOCkZWMTUxamZRNEl1L0cvLzEvMkFaZWc0N1ZLTVA2Z0lPRStTN0N4VlFRQUVGRkZDQUYvOEN2 -UXNwZWZhNEw3Y0FBQUFBU1VWT1JLNUMKWUlJPQo= - - $$H_{0} CNOT_{0,1}$$ - 10 - - - - - circuit_plot(entangle0_1*entangle1_2, nqubits=3) - - python - 11 - 0 - - - pyout - &lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x3b9fb90&gt; - 11 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVE4QUFBREZDQVlBQUFCS0szZFlBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQURXZEpSRUZVZUp6dDNIdE0x -ZlVmeC9IWEY4VUJKUXFLNVdYY3RkUktYZGswd1lPdVRJM21hRzdaCi9LT09XNWsyTjYyeE5aZTF0 -VGxuRjd0S1NmbEhseldGdFJwT20rWUVGTHgwTkdNMVorUWYzcVoyRksvakpzam45MGV6Nlk5ekVE -NXgKK1BJOVBCL2I5eDgrbkcvdmJ3ZWZmQzlISFdPTUVRQjBVWXpiQXdEd0p1SUJ3QXJ4QUdDRmVB -Q3dRandBV0NFZUFLd1FEd0JXaUFjQQpLOFFEZ0JYaUFjQUs4UUJnaFhnQXNFSThBRmdoSGdDc0VB -OEFWb2dIQUN2RUE0QVY0Z0hBQ3ZFQVlJVjRBTEJDUEFCWUlSNEFyQkFQCkFGYUlCd0FyeEFPQUZl -SUJ3QXJ4QUdDRmVBQ3cwdC90QWRBOUxsNjhxSktTRXAwNmRVcU5qWTBhUEhpd3BreVpvc2NmZjF3 -eE1meU8KUVBmanA4cmpEaDgrckVXTEZpa3JLMHVWbFpXS2o0L1hCeDk4b09ibVpoVVdGdXErKys3 -VHVuWHJkUFhxVmJkSFJaUnhqREhHN1NGZwpwN2k0V0crKythWldyRmloUllzV0tTVWxSWkxrT0k2 -TU1UTEdhTisrZmZyd3d3LzErKysvNjZlZmZsSjZlcnE3UXlOcUVBK1BLaTR1CjF0cTFhN1Y5KzNa -bFoyZmZ0bll6SHJmNitPT1B0VzdkT3UzYnQwL0Rody92eVZFUnBZaUhCeDArZkZoejVzeFJWVlZW -dTNCSW9lTWgKU2F0WHI5YjI3ZHUxZS9mdW5oZ1RVWTU0ZUpEZjc5ZTRjZU5VV0ZnWWNqMWNQRzdj -dUtIczdHeVZscGJxa1VjZWlmU1lpSExFdzJQcQo2dXFVbloydHYvNzZTME9IRGczNVBlSGlJVWxy -MTY1VmJXMnRObTdjR01reDBRY1FENDhwS2lyUzNyMTc5ZTIzMzRiOW5vN2ljZjc4CmVXVmxaU2tZ -RENvdUxpNVNZNklQNEZHdHg1dzhlVkxqeDQrM2ZuMUtTb29HRGh5b0N4Y3VkT05VNkl2Q25uazRq -dFBUc3dEd2tMQ2YKTU9WcXBuZDY2NjIzWkl6UjIyKy9IZlo3T3Jwc01jWm82TkNoT25yMDZMK2ZD -d0ZzY05uaU1WT21UTkhXclZ1dDQzN2d3QUVsSlNWcAp5SkFoM1R3Witocmk0VEZQUHZta0xsMjZw -RUFnWVBYNm9xSWlMVm15aEwvdmd2K01weTBlOU82Nzcrcnc0Y1A2N3J2dlFxNkh1Mnc1CmUvYXN4 -bzBicDJQSGpuSG1nZitNWHo4ZTlPS0xMK3JRb1VNcUtpcnE5R3ZxNitzMWI5NDh2ZnJxcTRRRDNZ -Sy9rdTlCZ3djUDFyWnQKMnpSanhneGR1M1pOaFlXRkhWNkduRDE3VnZQbXpkUEVpUlAxeGh0djlP -Q2tpR2FjZVhoVVZsYVc5dTdkcXg5Ly9GR2pSNC9XZSsrOQpwN3E2dW4vWGpURTZjT0NBbm4vK2VZ -MGRPMWI1K2ZuYXNHRURqK0RSYmJqbjRYSEdHUDN5eXk4cUtpclNEei84b0VHREJ1bjA2ZE1hCk1t -U0lFaE1UdFdUSkV2bjkvckFmWlFkc0VZOG8wdGpZcVBQbnp5c3RMVTNuenAxVFNrb0tUMVVRTWNR -akNuWDBJVEdndS9CckNZQVYKNGdIQUN2RUFZSVY0QUxCQ1BBQllJUjRBckJBUEFGYUlCd0FyeEFP -QUZlSUJ3QXJ4QUdDRmVBQ3dRandBV0NFZUFLd1FEd0JXaUFjQQpLOFFEZ0JYaUFjQUs4UUJnaFhn -QXNFSThBRmdoSGdDc0VBOEFWb2dIQUN2RUE0QVY0Z0hBQ3ZFQVlJVjRBTEJDUEFCWUlSNEFyQkFQ -CkFGYUlCd0FyeEFPQUZlSUJ3RXBVeENNNU9WbU80MFJzUzA1T2R2c1FnVjdITWNZWXQ0ZjRyeHpI -VVNRUEk5TDc3MjVlbXhmZTFOL3QKQVlBN2FXMXQxWll0VzFSYVdxcS8vLzViYlcxdFNrNU8xdHk1 -Yy9YY2M4OHBJU0hCN1JIN3BLaTRiRUYwYW01dTF1clZxNVdSa2FIMwozMzlmTTJmTzFPdXZ2NjZL -aWdyTm56OWZaV1ZsU2sxTjFZb1ZLM1Rod2dXM3grMTdUQlRvNkRBS0Nnck0vZmZmYnh6SE1iR3hz -V2JpCnhJbm1wWmRlTXNZWWMvejRjVE5qeGd3emN1Ukk0emlPU1V4TU5KTW5UemJyMTYvdjlQNTdJ -Ni9ORzhxbFM1ZU16K2N6K2ZuNTVyZmYKZnJ0dDdkYmpPMzc4dUZtNmRLa1pQWHEwT1hic1dFK1Ay -YWQ1LzZmTTNQa1B5Lzc5KzQzak9HYjU4dVVoMTllc1dXTWN4ekVsSlNWVworKzl0dkRidi8ydHFh -akkrbjgrOC9QTExwclcxdGQxNnFPUDc5Tk5QVFVaR2hqbDM3bHhQakFoalRKKzRiTm05ZTdja2Fl -N2N1U0hYCnk4dkwxYTlmUDgyYU5hc254MElZNzd6empoSVRFN1YrL1hyMTY5ZXZVNjk1NVpWWDlP -eXp6MnJac21VUm5nNDM5WW1uTGZuNStkcTUKYzZjdVhicWsrUGo0MjlaYVdscVVsSlNrTVdQRzZO -ZGZmN1hhZjI4U0RBWjF6ejMzNlByMTY0cU5qWFY3bkM1cmFXbFJSa2FHdG0zYgpwb2NlZWlqazk0 -UjdQNjVldmFyMDlIVDk4Y2NmR2pGaVJLUkg3Zk9pL3N5anJhMU4xZFhWbWp4NWNydHdTRklnRUZC -RFE0T21UNS91CnduVGRwN0d4VWZQbnoxZHFhcW9rS1NVbFJhV2xwUzVQMVhWbFpXWEt5TWdJRzQ2 -T0pDWW1hc0dDQlNvdUxvN0FaUGgvVVIrUG1wb2EKWGJseVJYbDVlU0hYeTh2TEpVaytuNjhIcCtw -K3I3MzJtclp1M2FybTVtWkowcFVyVi9UQ0N5L296ei8vZEhteXJpa3RMWlhmNzdkKwp2ZC92VjBs -SlNUZE9oSENpL25NZU4rOTM3Tml4UXdjUEhteTNIZ2dFNURpTzU4ODh2dnJxS3pVMU5kMzJ0ZXZY -cit2cnI3L1c2dFdyClhacXE2NExCb05MUzBxeGZuNTZlcm1BdzJJMFRJYXh3ZDFJbGVXb0xwNkNn -d01UR3hwcjYrdnAyYTYydHJTWWhJY0dNSHorK3c3dksKYmg4YkcxdHYzTUpldHBoL0h1TjZZdXZv -R1BiczJhTUpFeWFFL0JUaW9VT0gxTmpZMkttekRyZVA4VTdiMDA4L3JmNzlieitSVEVoSQpVRlZW -bGV1emRXV2JOMitlTm0zYWRNZjNPOXpha1NOSGxKbVo2ZnB4OUlVdHF1OTVIRGx5UkhWMWRjck56 -UTI1WGxWVkpjbjc5enNrCmFjT0dEVXBOVGRYQWdRTjE5OTEzS3k0dVRzdVdMZE8wYWRQY0hxMUxa -cytlcmMyYk4xdS9mdE9tVFpvOWUzWTNUb1J3b3ZxZXg4MzcKSFRrNU9TSFhxNnVySmNuejl6c2th -Zmp3NGFxdHJkV3VYYnQwNXN3WjVlYm1Lak16MCsyeHVtemh3b1ZhdVhLbFRwOCtyVkdqUm5YcAp0 -UzB0TGZyaWl5LzA4ODgvUjJnNjNDcXFQK2V4WU1FQ2xaYVc2dXpac3hvMmJGaTc5WHZ2dlZlSmlZ -bXFyYTIxMmo4aVk5bXlaWXFKCmlkRkhIMzBVY2ozYysvSGxsMS9xbTIrK1VXVmxaYVJIaEtMNHpL -TzV1VmtWRlJYS3pNd01HWTZhbWhvRmcwSE5tVFBIaGVuUWtWV3IKVm1ucTFLa2FOMjZjRmk5ZTNL -blhWRlJVYU9YS2xaeDE5Q1FUQlc0OWpCTW5UcGpwMDZlYmpJd01FeE1UWXdZTUdHQ21UWnRtUHZ2 -cwpNMk9NTVdWbFpXYnExS2ttSlNYRnhNVEVtT1RrWk9QeitVeDFkWFduOW8rZVVWdGJhOUxUMDgy -cVZhdk10V3ZYYmx1NzlmMjRmdjI2CjJiaHhvMGxKU1RHN2R1M3E2VEg3dEtpK2JQSEsvaEhhdVhQ -bnRIVHBVbFZXVm1yaHdvWHkrLzFLVFUzVjBLRkRkZlRvVVczYXRFbkYKeGNYS3lzclNKNTk4b2dr -VEpyZzljcDlDUEhyQi90R3hVNmRPcWJpNFdDVWxKUW9HZzdwOCtiTFMwdEwwMUZOUGFjbVNKWHJn -Z1FmYwpIckZQSWg2OVlQL29HdDZQM2lHcVArY0JJSEtpNW1tTDR6Z1IyM2RTVWxMRTlnMTRWVlRF -ZzFOWW9PZHgyUUxBQ3ZFQVlJVjRBTEJDClBBQllJUjRBckJBUEFGYUlCd0FyeEFPQUZlSUJ3QXJ4 -QUdDRmVBQ3dRandBV0NFZUFLd1FEd0JXaUFjQUs4UURnQlhpQWNBSzhRQmcKaFhnQXNFSThBRmdo -SGdDc0VBOEFWb2dIQUN2RUE0QVY0Z0hBQ3ZFQVlJVjRBTEJDUEFCWUlSNEFyQkFQQUZhSUJ3QXJ4 -QU9BRmVJQgpSRmh5Y3JJY3g0bllscHljN01weE9jWVk0OHAvR2JEa09JNjg5R01iNlhuZCt2L0Jt -UWNBSzhRRGdCWGlBYmprbVdlZTBkaXhZeFVUCkU2TUJBd1pvMHFSSldyeDRzU1RweElrVG1qbHpw -a2FOR3FXWW1CZ05HalJJano3NnFJcUtpbHllK2hZRzhCaXYvZGgyTk8vKy9mdU4KNHpobStmTGxJ -ZGZYckZsakhNY3hKU1VsVnZ1UEpNNDhBQmZ0M3IxYmtqUjM3dHlRNitYbDVlclhyNTltelpyVmsy -TjFDdkdBWnpRMApOT2o3NzcrWEpOWFYxYms4VGZlb3JLelVnQUVEbEpPVDAyNnRwYVZGMWRYVmV2 -REJCelZvMENBWHB1c1k4WUFuQkFJQmpSdzVVbjYvClg1STBhdFFvYmQ2ODJlV3AvcHUydGpaVlYx -ZHI4dVRKaW8rUGI3Y2VDQVRVME5DZzZkT251ekRkblJFUDlIcHRiVzBxS0NqUTVjdVgKZGUzYU5V -bFNVMU9UL0g2L0xsNjg2UEowOW1wcWFuVGx5aFhsNWVXRlhDOHZMNWNrK1h5K0hweXE4L3E3UFFC -d0owZVBIdFhseTVmYgpmYjEvLy83YXNXT0hGaXhZNE1KVS85M04reDA3ZHV6UXdZTUgyNjBIQWdF -NWp0TnJ6enpDM3FhVnhNYkcxazFiS0FVRkJTWTJOdGJVCjE5ZTNXMnR0YlRVSkNRbG0vUGp4ZDN6 -cTRkWXhoVDN6TUI3NitDK2kzOE1QUDZ5YW1ocmR1SEhqMzY4bEpTWHB6Smt6aW91TGMzR3kKTzNN -Y3A5M1hqREhhczJlUEpreVlvSVNFaEhicmh3NGRVbU5qWTZmUE90ejQ4OG85RDNqQ2xpMWJOR25T -Sk1YSHgrdXV1KzVTYW1xcQpkdTdjMmV2REVjNlJJMGRVVjFlbjNOemNrT3RWVlZXU2V1LzlEb2w3 -SHZDSUVTTkdLQkFJNk1TSkUycHFhdEtZTVdOQy9rYjNpcHYzCk8wSTlvcFdrNnVwcVNlcTk5enRF -UE9BeGFXbHBiby9RTFNvcksrVTRUb2Z4eU03TzF2RGh3M3Q0c3M3anNnWG9ZYzNOemFxb3FGQm0K -WnFhR0RSdldicjJtcGtiQllGRFRwazF6WWJyT0l4NUFEemw1OHFSOFBwL0dqaDJyOCtmUDYrVEpr -OHJKeWRIbm4zOHU2Wi83T284OQo5cGllZU9JSk9ZNmpzckl5NWVYbGFlL2V2UzVQSGhyL0dCQVFZ -ZnhqUUFCd0MrSUJ3QXJ4QUdDRlI3VkFENGprWjFLU2twSWl0dStPCkVBOGd3cUwxbVFTWExRQ3NF -QThBVm9nSEFDdkVBNEFWNGdIQUN2RUFZSVY0QUxCQ1BBQllJUjRBckJBUEFGYUlCd0FyeEFPQUZl -SUIKd0FyeEFHQ0ZlQUN3UWp3QVdDRWVBS3dRRHdCV2lBY0FLOFFEZ0JYaUFjQUs4UUJnaFhnQXNF -SThBRmdoSGdDc0VBOEFWb2dIQUN2RQpBNEFWNGdIQUN2RUFZSVY0QUxCQ1BBQllJUjRBckJBUEFG -YitCNWhRSUJpc2s5VE5BQUFBQUVsRlRrU3VRbUNDCg== - - - - - - state = qapply(entangle0_1*state); state - - python - 12 - 0 - - - pyout - a⋅❘000⟩ a⋅❘001⟩ a⋅❘110⟩ a⋅❘111⟩ b⋅❘010⟩ b⋅❘011⟩ b⋅❘100⟩ b⋅❘101⟩ -─────── + ─────── + ─────── + ─────── + ─────── - ─────── + ─────── - ─────── - 2 2 2 2 2 2 2 2 - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXI0QUFBQWlDQVlBQUFDNXZOcGtBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFDT0pKUkVGVQplSnp0bldtSUpWY1pocC9NVEdhU09KcU95MmphaVV3Z2tURVJD -VkVES29udFlJd0w2R0RFZ0Q5VXhBV0Q0b0FMUWpBMGJraCtLSkkvClVVUU5pc1lOUVVRQ2lraGNv -a2FET05IOGNKMkpaaExpRnBPNFROVDJ4MWRGMzF0ZGRlODUxZWQ4dCtxZTk0R21wcXEvcXE3N3pI -dlAKUFZYM1ZCVUlJWVFRUWdnaHBqZ0wyTFhvblNnSStmWkZ2djJSYzEva096MXk2b2RjcDBkT085 -Z0RYQWI4RmppdzJGMHBBdm4yUmI3OQprWE5mNURzOWN1cUhYS2VuYUtjN0FtcXVBaDRKbkp0NVg0 -UWgzNzdJdHo5eTdvdDhwMGRPL1pEcjlNaHBJQnNVZUdTd1FPVGJGL24yClI4NTlrZS8weUtrZmNw -MmVJcDJHblBFVlFnZ2hoQkJpOUtqak84MFZ3T21MM29tQ2tHOS81TndYK2ZaQm52TWdyejdJY3g1 -YXZRNnAKNDN1NFpkbVRnUGNCSHdUZUFKemRzVzZxdXQ4QXI0emE2L0hpNGJ2bWF1Q0NsdVVsK1la -MjV6VmRqbUxybFBGTlBIelBxMXNHMys4RQp2bDc5WE5yeSsrMjBKVFdsNVhxZVUvRHhPcTl1YkY3 -YjZKUGZtdTNtTXJSdWJKNzc1cmNtbGRkNTI5dTIxOXhqUWRZYjh3ZUJFOEN6CnEvbUxnYnVCOHpM -WHZUOSsxN013ZHQ4MWI4VmV5MXJINzB2eERWdWQxOHh6RkZxbmpFK3ozckU4bGUvUXVySDdQaFY0 -YzdWKzIvdDgKdlRHZnVvMFljcTV6T1lYOFhrUHJTc3R2VGFwY0tyL1RwUElhdXIwdFhrUHYzM1pL -WStyQk5jQVBnUjlVODdjRDN3RytoSW5ZeUZUMwowMnIrOWg3N3ZCUDRiNC8xbWl5RDc4OWpiNmhI -elBtN3BmcUdjRWVoZGNyNGJGTDdMaVhqRHdQbkFQY0F2dzZvVDkxR2VPUzZENTVPCkliMVg1YmVk -MUxsVWZvM1VYclBtOXpYQUo0R2ZBRGNCUjJKV2ptQjk0dDhITUxGdmF0bVhEZUJwbWVyQURnYldp -V2N2OElVZTZ6VloKQnQ5Z3Qwb0JlQzJ6ajhaSzhRMWJYMmVvbzVDNkF5ampUZFliOHlsOXg5UXRn -Ky92QWwvcytOMzZ4TDhQa0xhTmlObGVYODk5eU8wVQo4bnFOcVNzcHY1QTJsNkYxc056NWhmVHY5 -OTc1RFRuamUyUDE0OGtWMkw3ZDFsais0MnI2Zk9Ebkdlb0EvZ004Qkp3SjNCK3h6N3V3Cm0wSnZs -Mlh3RGZCQTROOHUwWGROcUtPUU9tVjhQaWw5eDlTTjNmZHB3RE94Y1gzelNOMUdlT1M2RDU1T0lV -L2JxL3kya3pLWHl1OG0KcWQvdnZmUHJlWEhiRHVBRndIVlliLzVjNEFNZHRmVkE1dVlMZTdDYW5w -ZXBydVp6d0tzNjltMHNMTkozTEtYNXpvRXk3dTg4aGpINwp2Z1Ryd055Sm5UbjVDT2E5amRSdHhM -TG1Pc1lwNUd0N1F4bUwxelppWFlkUWV0OGpoMU53Nm1ONGRYelBBWDRGN0FQZWpmWEFiNlpiCjFC -T3E2WU9ONVE5VjA1Vk1kVFYvQlBaMzdOc1lXTFR2V0Vyem5RTmwzTjk1REdQMmZWazFmUm53TWVC -RHdLZUFGN1hVcG00amxqWFgKTVU0aFg5c2J5bGk4dGhIck9vVFMreDQ1bklKVEg2UHUrRzVrK0tu -WkEzd0ZHK3Z6V2VCLzJOaVN4MkpqUk5xbzc3djJjR041dmQwOQptZW9teVhuUnpiTDc3c1BZZkUr -KzVsamZPVkRHL1ozSE1sYmZsd0kvQXQ2T1hXMTlielhmTmk0d2RSdXh5RnpuYkRkaW5FTGV0amVV -CkV2SWJ5aGo2SGtQS2J5Z3VmWXhkelFVWmVDL3dkS2J2NmZZNDRORjBmMGpkMmJHOHZucnZ2a3gx -TlllQWIzZXNrNEpsOXgxTGFiNXoKb0l6N080OWhyTDUzQXM4QzNnT2NuRmkrRDNoaVMzM3FObUtS -dVI2S1U4alg5b1pTU241REdVUGZZMnhPd2FtUEVYbzdzKzF3R1BnKwpkaCsybXJWcStyMk9kZXJC -eTgwbmJweFJUVTlrcXFzNWhQMm50bkUrOEM2MmhtbzNjQkh3aVpaMTdnYXU3ZGhlYW9iZ081YlNm -T2RBCkdUYzhuY2N3VnQ4WFlWZFAzOUpZL2hUc2l2QW1xZHVJRkxtK0VyZzg0bTkrRGZoR1JIMHNz -VTRoWDlzYlNpbjVEY1d6NzdFTStRM0YKcFkrUnUrTjdOdkJrNEt1TjVXdFl6NzZyOTM2MG11NEg3 -cHBZZm40MVBaYXBEbXlNeWIxTWYxVXl5WEhnQnJhK3lmZGlUeHU1b1dXZAp2M2RzS3pWRDhSMURp -YjV6b0l6N093OWx6TDR2eE1aUDN6R3g3QkxzN0hyemd3L1N0eEVwY24wTDlnU25VSTdIN0dBUFlw -MUNuclkzCmxKTHlHNHBuMzJNWjhodUtTeDhqZDhkM2R6VnRucjVlWS9NcnlldXdvOFZKN2dMK0Nq -d0R1SFZpK2VYVjhpOW5xZ083OHUvVE0xN1QKdjdFYklqZFpBZjdHOW85NHRzTlFmTWRRb3U4Y0tP -UCt6a01acysrVHdPK1lIbk4zRmZBbjRQcVcrdFJ0UklwYzM4ZXdEb2hpblVLZQp0amVVa3ZJYmlt -ZmZZeG55RzRwTEh5UDNYUjJPQVQ5aitza2FSN0F6TnIvQU90NG5XOVlEK0F6MlNMeWFYZGdWZzlj -emZjVmZ5cm9kCjJMM2Uvakw3WlEyV0lma09vV1RmT1ZERy9aM1BZK3krYndiT1l2T3o0a0xnOWNC -YjZENXJsN0tOQ04zZW1EejNjUXJwdllZd0pxOXQKOUhVZFFxbDlqNXhPd2FHUHNUTmd4ZE9yblhn -cGRnKzFvOFE5Z3ZEM1dJOTdOL0JHN09qdkJQQVNUTmlOMk5ITUd2Wll1cHB2QWM4RApYZzM4RXh1 -ZjhRRHdEdXdJTTBmZGk3RXhKbitJZUgwMXAyRmpEMi9xc2U0a3krTDdkY0Fyc09kb3IyQmZoYXhp -WDRmOHNxb3B5VGRzCmRSN2lLS1pPR1orZDhkUytTOGo0djdDdkNGOE9ITVF5OVRhbWg1cXMwYTh0 -R1VxdSs1RGJLZVQzcXZ3YWEvUnJKNGJTOStqREl2S2IKMm12di9NNjc2bThIMXN1K0Zqdk4vR0hz -RlBSemlmdWdPcVZhNzQ3cWhRQmNnSDJBL2FPYWZ6dzJEcVBKbzdEQjFNZXIraTVTMU8ybgpmL0JX -c05QcGgrZlV6V0taZkI5aWMwRDZKSDltOHl1TWtuekRWdWNoam1McWFwUnhJN2Z2a2pLK2d0MDcr -V2pMNy9xMkpVUEpkU3dlClRpRy9WK1hYNk50TzFDeTY3eEhMb3ZLYjJtdTIvRDRWKzJEWlY4MnZZ -ajM5NThSdXFBRE9aT3NSVHl6eUhZNTgreVBudnNqM01KSFQKTUpUZllWSzgwM2xqZkk4QjM4Uk9i -WU5keVFkd2FyWTlHaS8zWTZmaXQ0TjhoeVBmL3NpNUwvSTlUT1EwRE9WM21NaHBKRWVBMjVBZwpM -K1RiRi9uMlI4NTlrZS8weUtrZmNwMGVPWjNCUWV5bThhdUwzcEZDa0c5ZjVOc2ZPZmRGdnRNanAz -N0lkWHJrZEFhcndNZXhNVHVRCi96Wm9wU1BmdnNpM1AzTHVpM3luUjA3OWtPdjB5T2tNSGdOY3cr -WnA4SXVCRnk1dWQ1WWUrZlpGdnYyUmMxL2tPejF5Nm9kY3A2ZG8KcC9OdVo3WVhHd1I5a3MzSHZh -MWl0NUh3dXZWR1NjaTNML0x0ajV6N0l0L3BrVk0vNURvOXhUdWQ5OGppTTRDUE5wWnRVSWljQlNE -Zgp2c2kzUDNMdWkzeW5SMDc5a092MHlLa1FRZ2doaEJCQ0NDR0VFRUlJSVlRUVFnZ2hoQkJDQ0NH -RUVHSlEvQjhBYUVmSFZvNVBkQUFBCkFBQkpSVTVFcmtKZ2dnPT0K - - $$\frac{1}{2} a {\left|000\right\rangle } + \frac{1}{2} a {\left|001\right\rangle } + \frac{1}{2} a {\left|110\right\rangle } + \frac{1}{2} a {\left|111\right\rangle } + \frac{1}{2} b {\left|010\right\rangle } - \frac{1}{2} b {\left|011\right\rangle } + \frac{1}{2} b {\left|100\right\rangle } - \frac{1}{2} b {\left|101\right\rangle }$$ - 12 - - - - - result = measure_partial(state, (0,1)) - - python - 13 - 1 - - - - state = (result[2][0]*2).expand(); state - python - 14 - 0 - - - pyout - a⋅❘110⟩ -───────────────────────────────────────────────────────── + ────────────────── - ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽ - ╱ 2 2 - ╱ │ a │ │ b │ - ╱ │────────────│ │────────────│ - ╱ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ - ⎽⎽⎽⎽⎽⎽⎽⎽⎽ ╱ │ ╱ 2 2 │ │ ╱ 2 2 │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽ ╱ - ╱ 2 2 ╱ │╲╱ a + b │ │╲╱ a + b │ ╱ 2 2 ╱ -╲╱ a + b ⋅ ╱ ─────────────── + ─────────────── ╲╱ a + b ⋅ ╱ - ╲╱ 4 4 ╲╱ - - b⋅❘010⟩ -─────────────────────────────────────── - ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽ - ╱ 2 2 - ╱ │ a │ │ b │ - ╱ │────────────│ │────────────│ -╱ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ - │ ╱ 2 2 │ │ ╱ 2 2 │ - │╲╱ a + b │ │╲╱ a + b │ - ─────────────── + ─────────────── - 4 4 - $$\frac{a {\left|110\right\rangle }}{\sqrt{a^{2} + b^{2}} \sqrt{\frac{1}{4} \lvert{\frac{a}{\sqrt{a^{2} + b^{2}}}}\rvert^{2} + \frac{1}{4} \lvert{\frac{b}{\sqrt{a^{2} + b^{2}}}}\rvert^{2}}} + \frac{b {\left|010\right\rangle }}{\sqrt{a^{2} + b^{2}} \sqrt{\frac{1}{4} \lvert{\frac{a}{\sqrt{a^{2} + b^{2}}}}\rvert^{2} + \frac{1}{4} \lvert{\frac{b}{\sqrt{a^{2} + b^{2}}}}\rvert^{2}}}$$ - 14 - - - - - state = qapply(XGate(2)*state); state - - python - 15 - 0 - - - pyout - a⋅❘010⟩ -───────────────────────────────────────────────────────── + ────────────────── - ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽ - ╱ 2 2 - ╱ │ a │ │ b │ - ╱ │────────────│ │────────────│ - ╱ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ - ⎽⎽⎽⎽⎽⎽⎽⎽⎽ ╱ │ ╱ 2 2 │ │ ╱ 2 2 │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽ ╱ - ╱ 2 2 ╱ │╲╱ a + b │ │╲╱ a + b │ ╱ 2 2 ╱ -╲╱ a + b ⋅ ╱ ─────────────── + ─────────────── ╲╱ a + b ⋅ ╱ - ╲╱ 4 4 ╲╱ - - b⋅❘110⟩ -─────────────────────────────────────── - ⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽⎽ - ╱ 2 2 - ╱ │ a │ │ b │ - ╱ │────────────│ │────────────│ -╱ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ │ ⎽⎽⎽⎽⎽⎽⎽⎽⎽│ - │ ╱ 2 2 │ │ ╱ 2 2 │ - │╲╱ a + b │ │╲╱ a + b │ - ─────────────── + ─────────────── - 4 4 - $$\frac{a {\left|010\right\rangle }}{\sqrt{a^{2} + b^{2}} \sqrt{\frac{1}{4} \lvert{\frac{a}{\sqrt{a^{2} + b^{2}}}}\rvert^{2} + \frac{1}{4} \lvert{\frac{b}{\sqrt{a^{2} + b^{2}}}}\rvert^{2}}} + \frac{b {\left|110\right\rangle }}{\sqrt{a^{2} + b^{2}} \sqrt{\frac{1}{4} \lvert{\frac{a}{\sqrt{a^{2} + b^{2}}}}\rvert^{2} + \frac{1}{4} \lvert{\frac{b}{\sqrt{a^{2} + b^{2}}}}\rvert^{2}}}$$ - 15 - - - - - - - +{ + "nbformat": 2, + "name": "teleportation", + "worksheets": [ + { + "cells": [ + { + "source": "

Teleportation

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": false, + "prompt_number": 5, + "input": "%load_ext sympyprinting" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 6, + "input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$a {\\left|000\\right\\rangle } + b {\\left|001\\right\\rangle }$$", + "prompt_number": 7, + "png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAVCAYAAACNDipWAAAABHNCSVQICAgIfAhkiAAAA4VJREFU\naIHt2V2IFlUYwPHf6ootWaxl0GJFhFFSN2ZFFxZbhLBQUV1UkgQRVJcF1UVRvBdFBdEXXZR60QcZ\nEUGFWN0FkRXR52YoSmz0YfRBBIpZZF2cMzCemVnnfXdOarz/mzPnmefMPB9nzpx5hiFDDkPWYumh\nNuIwojEe8we42F14L5GtwX1YgdU4HltrxnalN4MbsWUA+/vlHryIR/Eptifn/4t4wFF4E9vwQ3Ju\nRofx6CX9y7ArGgfHxhtemVmvh9G+LB+ctdhfsim1o0zXfo7iAiG5/8TjOno6ikcv6W/BM4nsCfyG\nhRn1zsFVbY0uMSI8Mf3wtOYnq5f0u/RzHjbhcbxk9gQPGo8KvdLxqnjTqxOdqSi/JJNewf39mQ7G\n8VqfY7YKSa6jVzrO5SfcavYEUxOPebMot2FlbHck8p2xncykV5YvO7iZc2IJluPdFrq5/GxLJR51\nCV6BB/AInsPl+KDhgifGdnci3xPbiUx6BS/j2gbbumKVsKyPYR02CktmXexy+dmWSjzSl/JqPI9z\n8R3Owid4p+GChaF7EnnRH8+kV7AXRzfY1hUXxXYEN8fjaWH3/FCim8vPtlTiUZ6Fpwov8juE5BLe\nPbs1L0/7Yrs/kS9I5F3rFYwJTuXkQuEzaX1Jtl39hiaXn22pxKOc4IeF3durJdlyHKc5wdMN8mIW\n7cqkV3CNsCzlYpHwyno7kS/D4hr9XH62pRKPYokewcV4y4EzYBJ/4sOGC34R28X4pSRfFNsfM+kV\nnCHsE+o4Gy8IvpWZj1PwWc2Ybbiu1D8/6pcn+MJ4300143P52ZZKPIoEn4kTVJ2exEf4A6fh6+R8\nYejJDtwRnhfb6Ux6hO++jzXzpfrv3XE8q1pQqON04b34TUk2JVSV6j61cvjZltp4FEv098KTurN0\nbkxIcFH+uq3mor8Lzk8l8kvxFTZn0iPs7l+vsalLduBb4fuz4AbhQdhYo5/Dz7YcNB6bcW88XiBU\nWX7GnTgptlQrN2uEZWZJ7E/gV6G8l0vvmJI9/dJPoWMUP8X7iTbMCEthQS8Z03U8Cu4WJtoVNeda\nxWNC2PY/JVRtlgo7xfeFCkmxdb+9ZuxNQtAewxu4peEeXeldLyxvg9BvJWslnsQGYdKnf21yx+MV\nfI6/hQTvFX56PFjSmUs8/ncMUqo8YplrqfJI5C+hoD9kyJAhQ4YcSv4FPQ4z7YmdV7kAAAAASUVO\nRK5CYII=\n", + "text": "a\u22c5\u2758000\u27e9 + b\u22c5\u2758001\u27e9" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "a,b = symbols('a b', real=True)\nstate = Qubit('000')*a + Qubit('001')*b; state" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$CNOT_{1,2} H_{1}$$", + "prompt_number": 8, + "png": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAcCAYAAACXkxr4AAAABHNCSVQICAgIfAhkiAAABNhJREFU\naIHt2HmIV1UUB/DPjE1ZppYU2TatalFEmxW000ILIkUUWUELGrTQRhGlQdFKkW1iBSG2WBFaEpJZ\nNGWm7UZhm0UbbbRHWRQ1/XHuj9+bN+/9fm/G0bbfFx7v3XPOPfe8c+8959xLC/8qjMb5eAjPYQFm\nYSu0YSZGJtnN0IXl6MbLBfrG4u3E78Z7ODAn045jMAf3pGcBrsY6OdmupOdrPJXkvku0dzE/0T9K\ntEv69PfNsScW4tuMHc/j6MSfJPz2W+J/hGexbV8HGoSL8RnOwKgMb3M8jRnCuXlcgNeTAXuV6O/C\nUQX0rbEM0zEkQ+8QC+HdND5sgq+EU/K6f8f6GdoaeBInldizsrhd/O8uJfx38I3eC6oSOrEEH2K7\nEpldkwG3FfBmYe/En1nS/74C2ub4ACeX9Fk72TQntc/B+JzMmlgh7M/jMr0nb6CwDJ+X8DYWvni4\nP4rXwAvCMRs3kf1S71XehgfT9yv4BSNyMiNwS442Uqz+O5qMeY/4uS3SOINy/NpCuK6g76167pqB\nwgZpzFkl/AmJf24VZe259hXYA1OUz3gNy0V4yGJHsVqIsDMYp+Rk9sWiTHuYCCfrVjD6vfTeGfPw\nR46/f3ovLOj7isgvA4390jvvixoOSO8imxpiF/GDy/SeqCIcV0A7U90pQ/C9mLi2jMyN6oUAXChW\n0DUVxrw7yRaNTSTxPzC8gq6Bws3CplEl/OXCD1V82gOXJsUT+21a5IzBmfYtSechGdr9me92fJxk\nxlTQ/3KS3bKANwg/4tXq5g4IluJXsRjyz9PC3nn9UfxY6rzbShj3YK69fdJZS8TDREVSw1aJ/1UF\n3euLnFQWSndPum6qauwAYD2xI/P/XUMtf1xUVWF2G+2JP/FmhX6jC2ijxPbM4i2xSsZhU+yDxRl+\nrR7/oMKYZ4jdN6eEX4vlfY7VK4F9hA8XNeDTT5uWilq5GTZUHO9Pw6EF9GPFKrkc1+oZbnZKvCea\njLkWvhATN7RE5pGka8MmugYS16cxdy7hv46fRPXaZ0xNyjubyF2OjQrod4lKKY8O4cxPMTvHaxeV\nz8965p48rhO794ASfps4JVfZ3Z14oILcBEwWpfhlepfYxBHhB8UJe7gIZ40WW0Nb9hLJ6eIGCk5P\nTxHK4ihcKSb73gLenYl3eEnfC8Rh79QG+ndMOqY3kBkiHHyvevlchiPVz1jteAbTcjLrihuB+SU6\nDk82TV4ZWw4TP3+2OBnXMEaEmyNK+p2ARxvo7RSrZVIBryP1XaznIXILsRvfwA6NjBY/140Tm8jB\nwZpPyFQ8nmmfKw7CWYxPY05poKNb+a6uaouxuEFcgi0QpexkURHlcQTeV78sXCryQhHmKC4GiBxx\nngh7M9IzXdw9rV3SZ6IIB0tEOOsWYfEp5admqjmhU89rlqvwWvqehBdFqOoWVV8Xtkn8acIPvyf+\nO5ir51msL7b859FXJwzFJ6nfKrelz6fH/xnaxU49S1zvrJYBWyjHFHE1MlfktFWO1oTUcZAoMGqY\nKK55XhLxv1GV10I/0CZO+7NFJTlF/XTfIZL0Oal9unqhUnvmrg5bijL/fxkjc+0V4kKSmJTjxY3y\ncL2ru6zsqralBeGgcX+3ES3UcaZWTv1HoV8XgC200EILLbTwT8FfiZEmaAj2TA8AAAAASUVORK5C\nYII=\n", + "text": "CNOT \u22c5H \n 1,2 1" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "entangle1_2 = CNOT(1,2)*HadamardGate(1); entangle1_2\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{2} \\sqrt{2} a {\\left|000\\right\\rangle } + \\frac{1}{2} \\sqrt{2} a {\\left|110\\right\\rangle } + \\frac{1}{2} \\sqrt{2} b {\\left|001\\right\\rangle } + \\frac{1}{2} \\sqrt{2} b {\\left|111\\right\\rangle }$$", + "prompt_number": 9, + "png": "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\nrkJggg==\n", + "text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2572\u2571 2 \u22c5a\u22c5\u2758000\u27e9 \u2572\u2571 2 \u22c5a\u22c5\u2758110\u27e9 \u2572\u2571 2 \u22c5b\u22c5\u2758001\u27e9 \u2572\u2571 2 \u22c5b\u22c5\u2758111\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2 2 2" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "state = qapply(entangle1_2*state); state\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$H_{0} CNOT_{0,1}$$", + "prompt_number": 10, + "png": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAcCAYAAACXkxr4AAAABHNCSVQICAgIfAhkiAAABRFJREFU\naIHtmHtol1UYxz+bl5VmZnMm67JRijbJMI0km0XDgsKkDAomWeiKZgZWYhcoqcYKQmohq1bkpT8a\n3YgutrLaTMvSwK62LkgXQwnsZuLssv74npff+Z2d877vfvutHPt94cfL73me97mc5zzPed4DBQwI\nvAB8AXQDfwI7gBbDqwDeBnYb/m/ANmBJL/QfCSwAVgObgDagHbjc8OcAyy35h4GtwF/A38BUj84N\nwAHj08/AKo/MZOBR4BngceBVoBU4LeDnQqOvC9gOvAbsNLRfgI3G9w+Bf4AvY2LuM2Yaww8F+LcZ\n/hU56O1ECT4PGG7oRwAPAA8C+4FznPfGAh8Zm48EdF+NNlORQy8Gms37bjIvQYm8yqOvDbjT8hEy\nSbrBY/vNgF95wXJj+MIAvw3t1jG90NkAHAJuDPCHoGr7HRjm8C4FaoHPDH+U5/2bgOkOrQglfwNK\nug/3o0ovt2ilqJJcPIHWZZJDPwklvd/wMlq8kR7eMLSLd/RCXz0KZEGCXAPwioe+CjgBWGr01Htk\n1qGk2mhC7XVsjM0ao/Mui1aHfzN+Bezx0KcDy2Js9AnFqA9vCfDPRgE0pdQ3BbWF9hSyi/AHFu3W\n0cAfwCcOvwhY79DuMX7OS7BZYeSes2gL0TrYKDdyvsqZApyZYCdnTDOGGwL8Owx/fkp924y8ey74\ncBZQ6dCORodwhBaPvqnArdb/clThP9Czalycb/RtSJC70sgtTZDLGUMD9NnmeQE9ezLADPPclMLG\ncUb+A2BzCvn3PbRZZFdrM7AYuN7Sea7jTz1qrevRWReHqhjbNqJ16UiQyzueRyPmUR7eUNQyPk+p\naz7aVX058BqBUxzaVjSOlpn/a8keBDqM3YtT6G8lfoCJ8Cmwj55TXN7g9kiMsWo0Iu738M8ARpCu\nOkAtCBRMEsrwT20nA984tGY0ji4y/4ejb6YIE8xzV4LNCuAyYC/wboxcKaqkzSh5/QJfQqrQRPJO\n4J2ob6ct22/N88cUsreTvaigj8gDHtlWtFuvQz53Ovy95vlrgs1lqOrr0DgdQjXarGk3Yk7wJSTq\nk6F+P8s8bceGoJ6+BM30cyxeu3lOS/ClCu1mtypn4u/tB4E1aABopOdCRRuqJsbmDJSIJ4GXEvyL\n1sWXkLj441ACPAUcHyf0NCrJ8QH+HuBrh3YN+sKOnOsEJpr/RWjK+hi1Oh8mocUt8fBWAqcG3puI\nriwOoUqyMRudg62BdycDPwHP4j8rXWxHFeQbhOLiD6EOuButdWVIqAQtuNuvI5xuFKxx6DvR6Bjh\nMXTlEGEMSspbZO+GY9DXdyPZ1xMRxgHfkzm4fXiDcO+vRYtoV8kINGh0oiktDSpQcjcG+Enxx8Gb\nkApUirvIXChuIfM1PBd4D+2obtS7O1D7KjbO2lcJK9Gdko3RwC3Ai2gEXoc+LC/yOFli7B009nYD\nKwIBzQPuDfBAo/tq1JZaUIu4meQdXEnm0jOKuwu18tfRcAPp4w8htkJyQalReqJFW4GqYTCgr/Fn\nJcR3qPcW+9AkY4+CIw19MCCv8ecjId3oknGcRRsPfJcH3QMBeY0/HwkBjaX2oVaDDrbBgrj4J9Dz\nlqHfMQodlouB+4Br/2sH/mfExd+ERn4Xc9F02Y2Gjdr+cMz3HTGY4Iu/iMz1jo1jUWuLfmUQvu3N\nFV151jfQ4Iu/G//1/2AZeg47VKMP6gIOE+S7CxVQQAEFFFCAF/8CvQspefa4L7cAAAAASUVORK5C\nYII=\n", + "text": "H \u22c5CNOT \n 0 0,1" + } + ], + "collapsed": false, + "prompt_number": 10, + "input": "entangle0_1 = HadamardGate(0)*CNOT(0,1); entangle0_1\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 11, + "text": "<sympy.physics.quantum.circuitplot.CircuitPlot object at 0x3b9fb90>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 11, + "input": "circuit_plot(entangle0_1*entangle1_2, nqubits=3)\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{1}{2} a {\\left|000\\right\\rangle } + \\frac{1}{2} a {\\left|001\\right\\rangle } + \\frac{1}{2} a {\\left|110\\right\\rangle } + \\frac{1}{2} a {\\left|111\\right\\rangle } + \\frac{1}{2} b {\\left|010\\right\\rangle } - \\frac{1}{2} b {\\left|011\\right\\rangle } + \\frac{1}{2} b {\\left|100\\right\\rangle } - \\frac{1}{2} b {\\left|101\\right\\rangle }$$", + "prompt_number": 12, + "png": "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\nAABJRU5ErkJggg==\n", + "text": "a\u22c5\u2758000\u27e9 a\u22c5\u2758001\u27e9 a\u22c5\u2758110\u27e9 a\u22c5\u2758111\u27e9 b\u22c5\u2758010\u27e9 b\u22c5\u2758011\u27e9 b\u22c5\u2758100\u27e9 b\u22c5\u2758101\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2 2 2 2 2 2 2" + } + ], + "collapsed": false, + "prompt_number": 12, + "input": "state = qapply(entangle0_1*state); state\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 13, + "input": "result = measure_partial(state, (0,1))\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{a {\\left|110\\right\\rangle }}{\\sqrt{a^{2} + b^{2}} \\sqrt{\\frac{1}{4} \\lvert{\\frac{a}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2} + \\frac{1}{4} \\lvert{\\frac{b}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2}}} + \\frac{b {\\left|010\\right\\rangle }}{\\sqrt{a^{2} + b^{2}} \\sqrt{\\frac{1}{4} \\lvert{\\frac{a}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2} + \\frac{1}{4} \\lvert{\\frac{b}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2}}}$$", + "prompt_number": 14, + "text": "a\u22c5\u2758110\u27e9 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd \n \u2571 2 2 \n \u2571 \u2502 a \u2502 \u2502 b \u2502 \n \u2571 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \n \u2571 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \n \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd \u2571 \u2502 \u2571 2 2 \u2502 \u2502 \u2571 2 2 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd \u2571\n \u2571 2 2 \u2571 \u2502\u2572\u2571 a + b \u2502 \u2502\u2572\u2571 a + b \u2502 \u2571 2 2 \u2571 \n\u2572\u2571 a + b \u22c5 \u2571 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2572\u2571 a + b \u22c5 \u2571 \n \u2572\u2571 4 4 \u2572\u2571 \n\n b\u22c5\u2758010\u27e9 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\n \u2571 2 2 \n \u2571 \u2502 a \u2502 \u2502 b \u2502 \n \u2571 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \n\u2571 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \n \u2502 \u2571 2 2 \u2502 \u2502 \u2571 2 2 \u2502 \n \u2502\u2572\u2571 a + b \u2502 \u2502\u2572\u2571 a + b \u2502 \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n 4 4" + } + ], + "collapsed": false, + "prompt_number": 14, + "input": "state = (result[2][0]*2).expand(); state" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "latex": "$$\\frac{a {\\left|010\\right\\rangle }}{\\sqrt{a^{2} + b^{2}} \\sqrt{\\frac{1}{4} \\lvert{\\frac{a}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2} + \\frac{1}{4} \\lvert{\\frac{b}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2}}} + \\frac{b {\\left|110\\right\\rangle }}{\\sqrt{a^{2} + b^{2}} \\sqrt{\\frac{1}{4} \\lvert{\\frac{a}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2} + \\frac{1}{4} \\lvert{\\frac{b}{\\sqrt{a^{2} + b^{2}}}}\\rvert^{2}}}$$", + "prompt_number": 15, + "text": "a\u22c5\u2758010\u27e9 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd \n \u2571 2 2 \n \u2571 \u2502 a \u2502 \u2502 b \u2502 \n \u2571 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \n \u2571 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \n \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd \u2571 \u2502 \u2571 2 2 \u2502 \u2502 \u2571 2 2 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd \u2571\n \u2571 2 2 \u2571 \u2502\u2572\u2571 a + b \u2502 \u2502\u2572\u2571 a + b \u2502 \u2571 2 2 \u2571 \n\u2572\u2571 a + b \u22c5 \u2571 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2572\u2571 a + b \u22c5 \u2571 \n \u2572\u2571 4 4 \u2572\u2571 \n\n b\u22c5\u2758110\u27e9 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\n \u2571 2 2 \n \u2571 \u2502 a \u2502 \u2502 b \u2502 \n \u2571 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \u2502\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2502 \n\u2571 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \u2502 \u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u23bd\u2502 \n \u2502 \u2571 2 2 \u2502 \u2502 \u2571 2 2 \u2502 \n \u2502\u2572\u2571 a + b \u2502 \u2502\u2572\u2571 a + b \u2502 \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n 4 4" + } + ], + "collapsed": false, + "prompt_number": 15, + "input": "state = qapply(XGate(2)*state); state\n" + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/notebooks/text_analysis.ipynb b/docs/examples/notebooks/text_analysis.ipynb index a1f189c..62f8639 100644 --- a/docs/examples/notebooks/text_analysis.ipynb +++ b/docs/examples/notebooks/text_analysis.ipynb @@ -1,2710 +1,140 @@ - - - text_analysis - 2 - - - - - <h1>Text Analysis Using NetworkX</h1> - - - <p>This notebook will analyze a plain text file treating it as a list of -newline-separated sentences (e.g. a list of paper titles).</p> -<br> -<p>It computes word frequencies (after doing some naive normalization by -lowercasing and throwing away a few overly common words). It also computes, -from the most common words, a weighted graph of word co-occurrences and -displays it, as well as summarizing the graph structure by ranking its nodes in -descending order of eigenvector centrality.</p> -<br> -<p>This is meant as an illustration of text processing in Python, using matplotlib -for visualization and NetworkX for graph-theoretical manipulation. It should -not be considered production-strength code for serious text analysis.</p> -<br> -<p>Author: Fernando Perez</p> - - - %run text_analysis.py - python - 1 - 1 - - - - default_url = "http://bibserver.berkeley.edu/tmp/titles.txt" -n_words = 15 -n_nodes = 15 -url = default_url - - python - 2 - 1 - - - - Fetch text and do basic preprocessing. - - - text = get_text_from_url(url).lower() -lines = text.splitlines() -words = text_cleanup(text) - python - 3 - 1 - - - - Compute frequency histogram. - - - wf = word_freq(words) -sorted_wf = sort_freqs(wf) - python - 4 - 1 - - - - Build a graph from the n_nodes most frequent words. - - - popular = sorted_wf[-n_nodes:] -pop_words = [wc[0] for wc in popular] -co_occur = co_occurrences(lines, pop_words) -wgraph = co_occurrences_graph(popular, co_occur, cutoff=1) -centrality = nx.eigenvector_centrality_numpy(wgraph) - - python - 5 - 1 - - - - Print summaries of single-word frequencies and graph structure. - - - summarize_freq_hist(sorted_wf) -summarize_centrality(centrality) - python - 6 - 0 - - - stream - Number of unique words: 9265 - -10 least frequent words: - rosenhouse&apos;s -&gt; 1 - reconstruction, -&gt; 1 -parameterization -&gt; 1 - benda) -&gt; 1 - reconstruction: -&gt; 1 - payoff -&gt; 1 - electricity -&gt; 1 - kalman-bucy -&gt; 1 - clark--ocone -&gt; 1 - m-estimators -&gt; 1 - -10 most frequent words: - large -&gt; 421 - process -&gt; 428 - markov -&gt; 440 - equations -&gt; 471 - limit -&gt; 518 - brownian -&gt; 536 - model -&gt; 542 -stochastic -&gt; 1000 - processes -&gt; 1087 - random -&gt; 2356 - -Graph centrality - random: 0.474 - limit: 0.336 - stochastic: 0.312 - walks: 0.307 - process: 0.297 - processes: 0.259 - theorem: 0.251 - time: 0.232 - equations: 0.213 - model: 0.209 - markov: 0.197 - large: 0.19 - brownian: 0.125 - models: 0.107 - percolation: 0.0852 - - - - - Plot histogram and graph. - - - plot_word_histogram(sorted_wf, n_words,"Frequencies for %s most frequent words" % n_words) - python - 7 - 0 - - - pyout - &lt;matplotlib.axes.AxesSubplot at 0x334b250&gt; - 7 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVhrQUFBRU1DQVlBQUFBaDdNWlBBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6czNYbGNU -dW4vUC9EMzNSanptVEV4bHJITXBFeVdGcUxRWXF0a1M0YnNoUXpLCm9HVWFaT3o3UGdaUk13cFQ5 -aGhwc1ZhSUVHbXh6VVJKWkl0S2lSWnBmZjMrNk5mMXZXK1VOdUgyZmo0ZUhnLzN1Yys1em5XVysz -MnUKOHo3WGRaSUFBREhHR0pOTEN1KzdBb3d4eHQ0ZER2S01NU2JIT01nenhwZ2M0eURQR0dOeWpJ -TThZNHpKTVE3eWpERW14empJczdlNgpmLzgrS1NvcVVuWDN0ajExNmhRWkdocVNvcUlpWGJ0MnJW -ckxsaGVGaFlYazRPQkEzMzMzSFZsWVdMenY2bnlVUWtKQ3FIbno1dSs3Ckd1OE5CL2xxMUtKRkMv -cnFxNjlJVVZHUkZCVVZxVzdkdXBTVWxQUytxMVZseXNyS2xKbVpTUktKcEZyTFhibHlKVmxiVzFO -bVppWjEKNk5DaHl1WHQzNytmdW5idFNuWHExS0dlUFh1KzlyMkNnZ0o5L2ZYWDR2aE1talNweXV1 -c2l2SUVuN0N3TURwejVnemR1bldML3ZubgpueHFxV2ZWUVVGQ2dPM2Z1dk85cWZQSnF2ZThLeUJP -SlJFSkhqaHdoRXhPVFV1Y3BLQ2lnV3JWNHR3T2c4K2ZQazV1Ylc2V1dMeW9xCklnVUYyVFpLdzRZ -TmFmcjA2UlFURTBPblRwMTY0M0wvL2ZjZi9mRERENVZhNS9zUUdocEs3ZHUzcHpwMTZyengrOExD -UXZyc3M4OXEKdUZibFY5TmpMZm4zOVRwdXlkY0FCUVVGMnJsekorbm82SkM2dWpvUkVmMzc3Nzgw -WmNvVVVsWldKaWNuSjdwLy83NlkvOTY5ZXpScAowaVJxMnJRcC9menp6MlJsWlVVTEZpd2dJcUx0 -MjdkVGp4NDlYaXUvcE1WVVVGQkErL2Z2SnhNVEU5TFcxaVlQRHcvS3k4c2pvdUtXCm81S1NFbTNa -c29WVVZWV3BXN2R1RkJBUUlNckp5OHVqdlh2M1V1L2V2ZW1iYjc2aEhqMTZVRzV1THQyOWU1Y1VG -QlNvcUtpSWlJaHkKY25MSXc4T0Q5UFQwcUh2Mzd1VHQ3UzErekk4ZlA2WXhZOGJRZDk5OVI5OSsr -eTFaV2xxK3RqOXljM05KVVZHUmNuTnpTVWRIaDFxMwpiazFFUkltSmlUUi8vbnhxMGFJRlRaZ3dn -YTVjdVNLV0dUOStQRTJiTm8xR2poeEpEUnMycEpDUWtOZks3ZFdyRncwZlBweWFOV3RXCjZyRW8y -WWEzR1Q5K1BFMmZQcDFHamh4SmpSbzFvaDkvL0pGZXZIaEJDeGN1SkdWbFpSbzZkQ2pGeGNXSitj -dXFlMmhvS1BYdjM1OGEKTkdoQVNrcEt0SDc5ZW5yeDRnWDE3OStmSGoxNlZPcGQzNkpGaTJqUm9r -WGs3ZTFOaW9xSzVPbnBTZHUzYjZmdTNidlRva1dMU0VWRgpoWllzV1ZMbU1TY2lPbmJzR09ucDZa -RzZ1anA1ZTN2TG5DL0d4c2JrNGVFaDVuMzEvSHI4K0RFdFc3YU1XclZxUlJZV0ZoUWVIdjdhClBy -S3dzS0FtVFpyUXhJa1RLVEV4a1lpSURBME5pWWlvUTRjT3BLaW9TTjdlM3EvdFl4VVZGYnA4K1RJ -UkVlM1pzNGNVRkJRb0ppYUcKaUlnOFBEeG95SkFoUkZSOFR1L2V2WnNNREF5b1M1Y3V0R2ZQSGlv -b0tDQ2kvenVuM2QzZHFVMmJObVJqWTBQNStmbTBhZE1tVWxWVgpKWDE5ZlZGbUNROFBEK3JTcFF2 -VnExZVAxTlhWUzIwUXlBMndhdE9pUlF1Y1BIbnl0ZWtTaVFROWV2VEExYXRYOGZMbFM2U21wcUor -Ci9mcnc5L2ZIOCtmUHNYTGxTblR0MmxYTTM2bFRKemc1T2VISmt5ZjQ0NDgvVUx0MmJTeFlzQUFB -c0czYk5uVHYzdjIxOG0vZnZnMEEKMkxoeEkweE1UQkFkSFkzNCtIZ1lHeHRqeTVZdEFJRFRwMC9q -ODg4L2g2MnRMVkpTVXJCMTYxWW9LU21KY3Rhdlh3ODlQVDJjT1hNRwpoWVdGQ0FzTFEyNXVMaElT -RWlDUlNGQllXQWdBbURadEdpd3RMWkdRa0lDclY2K2lYYnQyT0g3OE9BQmd4b3daK08yMzMvRGl4 -UXZrCjV1YmkvUG56cGU0djZYb0RnS0doSVJ3Y0hKQ1NrZ0lQRHcvVXJWc1hPVGs1QUlCeDQ4YWhU -cDA2OFBMeVFuNStQbDYrZkZscXVWdTMKYm9XeHNmRWIxL2ZkZDk5QlUxTVR5NWN2eDZOSGowb3RZ -OXk0Y2FoWHJ4NE9IanlJUjQ4ZVFWOWZINXFhbWxpMWFoV2VQbjJLeVpNbgp3OXJhdWx4MTc5eTVN -L3o4L0ZCWVdJaG56NTdoOHVYTEFJQ1FrQkNaL2Y4bWl4Y3Z4dGl4WThYbmJkdTI0ZlBQUDhlY09Y -UHc3Tmt6CjVPVGtsSG5NLy92dlB6UnMyQkNIRGgzQzdkdTNZV1ptQmdVRkJiSGZqWTJONGVIaElW -Tys5UG1sbzZPRGxTdFhJajA5SFVlT0hFSDkKK3ZXUmxaVWw5bEhkdW5YaDYrdUxKMCtlNE1jZmY4 -VDgrZk5sOXJmMDhYM1ZUei85aEhYcjFnRUFmdjc1WjdScTFRcHVibTRBZ0xGagp4MkxEaGcwQUFF -OVBUN1J2M3g2UmtaRzRkT2tTdExXMXNXM2JOZ0RGNTNTdFdyVmdiVzJOeDQ4Zkl5Y25CNjZ1cnVq -VXFSUCsvZmRmCm5EMTdGbTNhdEVIejVzMEJBRStlUElHU2toTGk0dUlBQVBmdTNTdXpqdktBZzN3 -MVVsRlJ3ZGRmZjQxdnZ2a0czM3p6RFlZTUdRS2cKK0dUZnVYT25tRy9MbGkzNCtlZWZ4ZWVDZ2dJ -MGJ0d1l5Y25KU0VwS3d2Lys5ejhSSUFDZ2VmUG01UTd5WGJ0MmxRbXNmbjUrTURNegpBMUQ4Zy9q -c3M4L3c1TWtUQUVCK2ZqNisvdnByeE1iR0FnRDA5UFRnNStmMzJuWkpCL21pb2lLMGFORUM5Ky9m -Rjk4N096dkR6czRPCkFEQjkrblJZV1ZuaDd0MjdiOTFmMHZWKzh1UUp2dnp5U3hGQUFLQmJ0Mjd3 -OWZVRlVCeFFURXhNM2xvbVVIcVFQM2Z1SFBMejgzSGoKeGcyTUhqMGF3NGNQTDdXTWNlUEdZZENn -UWVMemloVXI4TzIzMzRyUDU4K2ZoNHFLU3JucTNyRmpSNnhkdXhicDZla3k2emg5K3ZSYgpnL3lp -Ull0Z1pXVWxQbS9idGcxZmZ2a2xjbk56WmRaVjJqSC8vZmZmWlM0U3djSEJNdnU5ckNBZkZ4Y0hO -VFUxbWZvTUhqd1krL2Z2CkYvdG80TUNCNHJ1OWUvZENYMTlmZkg1YmtQZnc4QkQ3V0VOREF4NGVI -ckMwdEFSUS9GdTZjdVVLQUdEUW9FSFl2SG16V0c3cjFxMWkKdWRPblQwTWlrY2ljai8zNzk1Zlpw -Z1VMRm9qOW5KcWFpb1lORytMSWtTUEl5OHNydFc3eWhOTTExVWdpa2REQmd3Y3BQVDJkMHRQVAp5 -ZGZYVjN5bnI2OHYvbi95NUVuYXMyY1AxYTlmbityWHIwK05HaldpN094c09udjJMRVZFUkZDclZx -M29mLy83bjVpL1k4ZU81VnAvCmRuWTJoWVdGMFlBQkEwVFo0OGVQcHdzWExvaDVtalZyUm8wYU5T -SWlvbHExYWxHalJvMG9NVEdSc3JPektTb3FpcnAxNjFibU9tSmoKWStuKy9mdlV2bjE3c1k1Rml4 -YlIrZlBuaVlobzd0eTVwS1NrUkYyNmRLR3VYYnVTdjc5L3VlcCs4ZUpGVWxWVmxjazlkKzdjbVVK -RApRNG1vZU45Szc4UEs2TjY5TzlXcVZZczBORFJvL2ZyMUZCQVFRR2xwYVcrY1Z5S1J5RHdNYnR5 -NE1iVnQyMWJtYzBscW9yUzZuenQzCmpvaUlkdTdjU2RldVhTTlZWVlVhTVdKRWxYc1NkZWpRZ1dy -WHJrMUV4Y2Y4d29VTHBSN3ppSWdJMHRiV0ZzdnE2T2lVZXowblQ1NmsKaElRRVVXNzkrdlVwT0Ro -WWJKZEVJcEVwdTJuVHBtS2ZsSWVob1NHZE8zZU9rcEtTcUxDd2tFYU1HRUhuejUrbmUvZnUwZlBu -ejBYWgpGeTVjb0U2ZE9vbmxPblhxSk9wQVJOU2tTUk9aQjlobGJYUERoZzFwMTY1ZDVPenNUTTJh -TmFPcFU2ZlNreWRQeWwzbmp4RUgrUm9pCi9UREl4TVNFZnZycEozRXhTRTlQcDZ5c0xCbytmRGpw -NnVwU2ZIdzg1ZVRraVBsTDhwWkVSTjkvL3owbEp5ZUx6OUs1M3pwMTZwQysKdmo0RkJRV0pjcDg5 -ZTBicDZlbHZyVitkT25WSVYxZFhCTlhTcUttcGtaS1NFdDI0Y1VPczQvbno1M1QxNmxVaUt2NFJy -VnExaWg0OQpla1FMRnk2a01XUEdsR3Y5QmdZR2RPZk9IY3JPemhiVElpTWpaZkxENVgzQVdKRmVR -R1hsNkZIT2g0YWwxYjBrTDkyMmJWdmF1WE1uClBYNzhtTFMwdEdqaXhJbEVWTHc5YjF2SG03WkYr -bHg2MnpIWDA5T1RPVWVrenlXaTR2TkorbG1BOUx3bUppYlVzbVZMbWZNMEl5T0QKWEZ4Y3hEeGwx -VjlCUWFITTcxdTFha1ZmZmZVVnVicTZrcEdSRVNrcUtsTFRwazFweTVZdE1zZTlXN2R1RkJVVkpU -NUhSVVdKZmZ2cQovaWpQTnZmdjM1OU9uanhKTjI3Y29JU0VCRnF6WmsycGRaUUhIT1RmQXdzTEMv -TDE5U1YvZjMvS3pzNm03T3hzT25yMEtHVmxaVkhUCnBrMnBiZHUydEdqUklucnk1QW10WDc5ZUpx -aDM3OTZkSGp4NFFNZVBINmNIRHg2OGRvS09IVHVXRmk1Y1NKY3ZYNmFpb2lKS1RFeWsKNDhlUGw2 -dGVscGFXdEdiTkdnb05EYVhDd2tJS0N3dVRlWUJIVlB6RHRiQ3dvRm16WmxGTVRBd1ZGUlhSN2R1 -MzZlelpzMFJFNU8zdApUUThmUHFTaW9pS3FVNmNPMWFsVHAxekJ1VkdqUnFTcnEwdHo1ODZsbEpR -VTJyNTlPMTIvZnAzNjlldEhST1VMdUVWRlJmVHk1VXZLCno4K25vcUlpeXMzTnBmejhmQ0lpdW5I -akJsMjllcFVLQ3dzcExpNk9ac3lZUVdabVp2VHR0OSsrc2F6eUJ2aTMxVDAvUDUvMjdObEQKejU4 -L0p5SVNYV3lKaWx2a3FhbXA5UGp4NDFMTExrODl5anJtWm1abUZCZ1lTRWVQSHFVN2QrN1FoZzBi -WkpidDFhc1grZnY3VTJKaQpJcDA2ZFlvT0hqd292bE5UVTZPdnYvNmExcTVkUzBsSlNaU2ZuMCtS -a1pFVUd4dGJycnAxNnRSSkpqaS9pWkdSRWYzNTU1OWtaR1JFClJNVVBncVUvRXhHWm01dVR1N3M3 -WGJwMGlhNWN1VUx1N3U0MGVQRGdVc3MwTXpNamQzZDNpbzZPcHREUVVKbUh2bkZ4Y1hUcTFDbksK -emMybDJyVnIweGRmZkNHT2g3emlJRjhEWG0yTmZmUE5OeFFVRkVTblQ1K21ObTNhVU92V3JXbm56 -cDNpZTI5dmIzcjY5Q20xYTllTwpZbU5qYWVUSWtlSUg5ZVdYWDlLV0xWdG94b3daMUs5ZlA3SzB0 -SlFwLytlZmZ5WnJhMnRhdUhBaE5XalFnUHIwNlNQVEM2U3NWcTZkCm5SM1oyOXZUdkhuenFHSERo -alJuemh5eFh1bmxGaTllVEQxNzlpUmJXMXRxMEtBQmpSZ3hRclFHbzZLaXlNREFnT3JYcjArTEZ5 -OG0KTnpjM3FsdTNicm4yeTU0OWUraXJyNzRpWFYxZENna0pvZURnWVByeXl5L0Z2Rzlyb2UvY3Va -TysrdW9yc3JPem8zUG56dEdYWDM1SgpreWRQSmlLaTVPUmtzclMwcEhyMTZ0SElrU09wZGV2V3RI -NzkrbExMZW5WOWIxcS85T2V5NnI1NzkyNzY0WWNmU0ZsWm1jTER3MFdnCnJWdTNMczJjT1pNTURR -MnBRWU1HYnh4VFVaNTZsSFhNMjdWclI5dTJiYU1sUzVhUW1aa1pqUnMzVG1iWm9VT0hVdGV1WGFs -ejU4NjAKWnMwYXNyZTNseW5mMzkrZjh2UHpxVmV2WHRTc1dUT2FNMmVPdVBDL2JaL01tREdEMXE1 -ZFMvWHIxNmNEQnc2OGNUOGJHUmxSVmxhVwphSm0vK3BtSXlNcktpcVpObTBaMmRuWmthMnRMVTZk -T3BURmp4cnh4blVSRWt5Wk5vbkhqeHRIQWdRTnB4b3daTkhYcVZERlBibTR1Cnpaa3poNzc5OWx2 -cTNMa3pmZlBOTnpSdDJyUTMxazFlU0ZDUkpndDdMeVpNbUVCS1NrcTBiTm15OTEwVkpnY1VGQlFv -UGo2ZVZGVlYKMzNkVldBM2dsdnhIZ0svRGpMSEs0aUQvRVNoUHFvS3g4dUp6NmRQQzZSckdHSk5q -WmJia0h6eDRRRDE3OXFTMmJkdVNzYkV4ZVhsNQpFVkh4Z3pjbEpTWFMwZEVoSFIwZG1hSHhMaTR1 -MUxwMWE5TFUxSlRwamhjVEUwTWRPM1lrVlZWVm1qZHYzanZhSE1ZWVk5TEtiTWtuCkpTVlJVbElT -YVd0clUycHFLdW5wNmRHMWE5ZG8vZnIxcEtpb1NOT25UNWVaUHlVbGhRd05EZW40OGVPVWtKQkEw -NlpORTMxVVM1N3MKOSs3ZG04ek56V25EaGczVXVYUG5kN3QxakRIMmlTdnpkVzFObXphbHBrMmJF -bEZ4WCtDMmJkdFNaR1FrRWIzNVlXQjRlRGlabXBxUwpzckl5S1NzckV3REt5c3FpcjcvK21tN2V2 -Q25laHoxMDZGQUtEdy9uSU04WVkrOVl1ZC9KR1I4ZlQ5ZXZYeWQ5ZlgwNmQrNGN1YnE2CmtyZTNO -dzBaTW9UczdPeElVVkdSSWlJaVNFTkRReXlqcHFaRzRlSGhwS0tpUW8wYk54YlROVFUxYWMrZVBX -UnZieSt6RG40Z3hCaGoKbFZOYVVxWmN2V3N5TXpQSndzS0NuSjJkcVU2ZE9tUnJhMHNKQ1FrVUZC -UkV0Mi9mcHMyYk41ZTZramNGN3JLZTlhTDRwV25WOW0vUgpva1ZjSnBmNXlaVDVNZFR4VXkvelhm -d3J5MXVEZkg1K1BnMGJOb3pHamgxTDV1Ym1SRlQ4Y2lhSlJFTDE2dFVqZTN0Nzh2UHpJNkxpCmwz -RGR1SEZETEJzYkcwdTZ1cnJVcWxVcm1hSDVOMjdjSUFNRGc3ZXRtakhHV0JXVkdlUUJrSTJORGJW -cjE0Nm1UcDBxcHBlOGE2T2cKb0lDOHZMekl6TXlNaUlwZkRCUVVGRVQzNzkrbmtKQVFVbEJRRU8r -RlVGZFhwMzM3OWxGcWFpcjUrZmxWK1kyQ2pESEczcTdNblB6NQo4K2RwOSs3ZDFMNTllL0c2enBV -clY5TGV2WHZwNnRXclZMdDJiVEkwTkNSYlcxc2lLbjdscDYydExabVltRkR0MnJWRkdvZUlhTzNh -CnRXUmxaVVZ6NXN3aFMwdkxHbnZvYW14c3pHVnltWjlNbVI5REhULzFNbXZhQnpVWVNpS1J2RFcv -eEJoalRGWlpzWk5mYThBWVkzS00KZ3p4ampNa3hEdktNTVNiSE9NZ3p4cGdjNHlEUEdHTnlqSU04 -WTR5Vm9tN2RCdUx2T1ZUMlg5MjZEZDdyTm5BWFNzWVlLMFh4YTFtcQpHcFBlZlZ6akxwU01NZmFK -NGlEUEdHTnlqSU04WTR6Sk1RN3lqREVteHpqSU04YVlIT01nenhoamNveURQR09NeVRFTzhvd3hK -c2M0CnlEUEdtQnpqSU04WVkzS01nenhqak1reER2S01NU2JIT01nenhwZ2M0eURQR0dOeWpJTThZ -NHpKTVE3eWpERW14empJTThhWUhPTWcKenhoamNveURQR09NeVRFTzhvd3hKc2M0eURQR21Cd3JN -OGcvZVBDQWV2YnNTVzNidGlWalkyUHk4dklpSXFMTXpFd3lOemNuWldWbApHang0TUdWbFpZbGxY -RnhjcUhYcjFxU3BxVW1ob2FGaWVreE1ESFhzMkpGVVZWVnAzcng1NzJoekdHT01TU3N6eUgvKytl -Zms3T3hNCjE2OWZwd01IRHREOCtmTXBNek9UM056Y1NGbFptVzdkdWtWS1Nrcms3dTVPUkVRcEtT -bTBhZE1tQ2c0T0pqYzNOM0owZEJSbE9UazUKMGF4WnN5Z3lNcExPbkRsRFVWRlI3M2JMR0dPTWxS -M2ttelp0U3RyYTJrUkUxS2hSSTJyYnRpMUZSa1pTUkVRRTJkalkwQmRmZkVIVwoxdFlVSGg1T1JF -VGg0ZUZrYW1wS3lzcktaR1JrUkFCRUsvL216WnRrWVdGQkRSczJwS0ZEaDRwbEdHT012VHZsenNu -SHg4ZlQ5ZXZYClNVOVBqeUlqSTBsZFhaMklpTlRWMVNraUlvS0lpb084aG9hR1dFWk5UWTNDdzhN -cFBqNmVHamR1TEtacmFtclN4WXNYcTJzYkdHT00KbGFKV2VXYkt6TXdrQ3dzTGNuWjJwcSsvL3Bv -QWxIc0ZFb25rdFdsbExiOTQ4V0x4ZjJOall6STJOaTczdWhoajdGTVFFaEpDSVNFaAo1WnIzclVF -K1B6K2ZoZzBiUm1QSGppVnpjM01pSXRMVjFhV1ltQmpTMGRHaG1KZ1kwdFhWSlNJaWZYMTlPbm55 -cEZnMk5qYVdkSFYxClNWRlJrWktUazhYMEd6ZHVrSUdCd1J2WEp4M2tHV09NdmU3VkJ2Q1NKVXRL -bmJmTWRBMEFzckd4b1hidDJ0SFVxVlBGZEgxOWZmTDAKOUtTY25Cenk5UFFVQVZ0UFQ0K0Nnb0xv -L3YzN0ZCSVNRZ29LQ3FTb3FFaEV4V21kZmZ2MlVXcHFLdm41K1pHK3ZuNVZ0cEV4eGxnNQpTRkJH -N2lRME5KUU1EUTJwZmZ2Mkl1MnlhdFVxNnRhdEcxbFpXZEdWSzFlb1k4ZU90SHYzYnZyNjY2K0pp -R2pqeG8zazZ1cEt0V3ZYCnBzMmJOMU9QSGoySXFMajFibVZsUmVucDZXUnBhVW1yVnExNnZUSVNT -WVZTUVl3eDlpNFZ4NzJxeHFSM0g5ZktpcDFsQnZtYXhrR2UKTWZZaGtZY2d6eU5lR1dOTWpuR1Fa -NHd4T2NaQm5qSEc1QmdIZWNZWWsyTWM1QmxqVEk1eGtHZU1NVG5HUVo0eHh1UVlCM25HR0pOagpI -T1FaWTB5T2NaQm5qREU1eGtHZU1jYmtHQWQ1eGhpVFl4emtHV05Nam5HUVo0d3hPY1pCbmpIRzVC -Z0hlY1lZazJNYzVCbGpUSTV4CmtHZU1NVG5HUVo0eHh1UVlCM25HR0pOakhPUVpZMHlPY1pCbmpE -RTV4a0dlTWNia0dBZDV4aGlUWXh6a0dXTk1qbkdRWjR3eE9jWkIKbmpIRzVCZ0hlY1lZazJNYzVC -bGpUSTZWR2VTdHJhMnBTWk1tcEtXbEphWXRYcnlZbEpTVVNFZEhoM1IwZENnZ0lFQjg1K0xpUXEx -Ygp0eVpOVFUwS0RRMFYwMk5pWXFoang0NmtxcXBLOCtiTmV3ZWJ3UmhqN0UzS0RQSVRKa3lnd01C -QW1Xa1NpWVNtVDU5T1Y2NWNvU3RYCnJsRC8vdjJKaUNnbEpZVTJiZHBFd2NIQjVPYm1SbzZPam1J -Wkp5Y25talZyRmtWR1J0S1pNMmNvS2lycUhXd0tZNHl4VjVVWjVIdjAKNkVIMTY5ZC9iVHFBMTZh -Rmg0ZVRxYWtwS1Nzcms1R1JFUUdnckt3c0lpSzZlZk1tV1ZoWVVNT0dEV25vMEtFVUhoNWVUZFZu -akRGVwpsbHFWV2NqVjFaVzh2YjFweUpBaFpHZG5SNHFLaWhRUkVVRWFHaHBpSGpVMU5Rb1BEeWNW -RlJWcTNMaXhtSzZwcVVsNzl1d2hlM3Y3Ck41YTllUEZpOFg5alkyTXlOamF1VEJVWlkweHVoWVNF -VUVoSVNMbm1yWENRdDdXMXBZVUxGMUpHUmdiOTl0dHZ0SG56WnBveFk4WWIKVy9jU2llUzFhVyth -VDVwMGtHZU1NZmE2Vnh2QVM1WXNLWFhlQ3ZldWFkeTRNVWtrRXFwWHJ4N1oyOXVUbjU4ZkVSSHA2 -K3ZUalJzMwp4SHl4c2JHa3E2dExyVnExb3VUa1pESDl4bzBiWkdCZ1VOSFZNc1lZcTRRS0Ivbkhq -eDhURVZGQlFRRjVlWG1SbVprWkVSSHA2ZWxSClVGQVEzYjkvbjBKQ1FraEJRWUVVRlJXSmlFaGRY -WjMyN2R0SHFhbXA1T2ZuUi9yNit0VzRDWXd4eGtwVFpycG0xS2hSZE9iTUdVcE4KVGFYbXpadlRr -aVZMS0NRa2hLNWV2VXExYTljbVEwTkRzclcxSlNLaUprMmFrSzJ0TFptWW1GRHQyclZwOCtiTm9w -eTFhOWVTbFpVVgp6Wmt6aHl3dExhbHo1ODd2ZHFzWVk0d1JFWkVFYjB1UzF5Q0pSUExXbkQxampO -V1U0dWVLVlkxSjd6NnVsUlU3ZWNRclk0ekpNUTd5CmpERW14empJTThhWUhPTWd6eGhqY295RFBH -T015VEVPOG93eEpzYzR5RFBHbUJ6aklNOFlZM0tNZ3p4ampNa3hEdktNTVNiSE9NZ3oKeHBnYzR5 -RFBHR055aklNOFk0ekpNUTd5akRFbXh6aklNOGFZSE9NZ3p4aGpjb3lEUEdPTXlURU84b3d4SnNj -NHlEUEdtQnpqSU04WQpZM0tNZ3p4ampNa3hEdktNTVNiSE9NZ3p4cGdjNHlEUEdHTnlqSU04WTR6 -Sk1RN3lqREc1VUxkdUE1SklKRlg2VjdkdWcvZTlHZFZPCkFnRHZ1eElsSkJJSmZVRFZZWXg5UkNR -U0NSRlZOWDdJeHFCM1VlYTdVRmJzNUpZOFk0ekpzVEtEdkxXMU5UVnAwb1MwdExURXRNek0KVERJ -M055ZGxaV1VhUEhnd1pXVmxpZTljWEZ5b2RldldwS21wU2FHaG9XSjZURXdNZGV6WWtWUlZWV25l -dkhudllETVlZNHk5U1psQgpmc0tFQ1JRWUdDZ3p6YzNOalpTVmxlbldyVnVrcEtSRTd1N3VSRVNV -a3BKQ216WnRvdURnWUhKemN5TkhSMGV4akpPVEU4MmFOWXNpCkl5UHB6Smt6RkJVVjlRNDJoVEhH -Mkt2S0RQSTlldlNnK3ZYcnkweUxpSWdnR3hzYit1S0xMOGphMnByQ3c4T0ppQ2c4UEp4TVRVMUoK -V1ZtWmpJeU1DSUJvNWQrOGVaTXNMQ3lvWWNPR05IVG9VTEVNWTR5eGQ2dkNPZm5JeUVoU1YxY25J -aUoxZFhXS2lJZ2dvdUlncjZHaApJZVpUVTFPajhQQndpbytQcDhhTkc0dnBtcHFhZFBIaXhhcldt -ekhHV0RuVXF1Z0NGWGxLWFB4a3VtTExMMTY4V1B6ZjJOaVlqSTJOCnk3MCt4dGpIb1c3ZEJwU1pt -VjZsTWhRVjYxTkd4dE5xcXRISEpTUWtoRUpDUXNvMWI0V0R2SzZ1THNYRXhKQ09qZzdGeE1TUXJx -NHUKRVJIcDYrdlR5Wk1ueFh5eHNiR2txNnRMaW9xS2xKeWNMS2JmdUhHRERBd01TaTFmT3Nnenh1 -UlRjWUN2V3JmQ3pNelhHNUdmaWxjYgp3RXVXTENsMTNncW5hL1QxOWNuVDA1TnljbkxJMDlOVEJH -dzlQVDBLQ2dxaSsvZnZVMGhJQ0Nrb0tKQ2lvaUlSRmFkMTl1M2JSNm1wCnFlVG41MGY2K3ZvVlhT -MWpqTEhLUUJrc0xTM1JyRmt6MUs1ZEcwcEtTdkQwOUVSR1JnWUdEUnFFNXMyYnc5emNISm1abVdM -K0RSczIKb0dYTGx0RFEwTURaczJmRjlPdlhyME5IUndjdFdyVEE3Tm16UzEzZlc2ckRHSk1UUkFR -aVZQRWZmWlJsdnF2OVdSb2U4Y29ZcTNFZgp5K2hVSHZIS0dHUHNnOFpCbmpIRzVCZ0hlY1lZazJN -YzVCbGpUSTV4a0dlTU1UbkdRWjR4eHVRWUIzbkdHSk5qSE9RWlkweU9jWkJuCmpERTV4a0dlTWNi -a0dBZDV4aGlUWXh6a0dXTk1qbkdRWjR3eE9jWkJuakhHNUJnSGVjWVlrMk1jNUJsalRJNXhrR2VN -TVRuR1FaNHgKeHVRWUIzbkdHSk5qSE9RWlkweU9jWkJuakRFNXhrR2VNY2JrR0FkNXhoaVRZeHpr -R1dOTWpuR1FaNHd4T2NaQm5qSEc1QmdIZWNZWQprMk1jNUJsalRJNVZPc2kzYU5HQzJyZHZUem82 -T3FTbnAwZEVSSm1abVdSdWJrN0t5c28wZVBCZ3lzcktFdk83dUxoUTY5YXRTVk5UCmswSkRRNnRl -YzhZWVkyOVY2U0F2a1Vnb0pDU0VybHk1UWhFUkVVUkU1T2JtUnNyS3luVHIxaTFTVWxJaWQzZDNJ -aUpLU1VtaFRaczIKVVhCd01MbTV1WkdqbzJQMTFKNHhKcU51M1FZa2tVaXE5Szl1M1FidnZFeFdj -NnFVcmdFZzh6a2lJb0pzYkd6b2l5KytJR3RyYXdvUApEeWNpb3ZEd2NESTFOU1ZsWldVeU1qSWlB -SlNabVZtVlZUUEczaUF6TTUySVVLVi94V1c4MnpKWnphbFNTOTdFeElRR0R4NU1odzRkCklpS2l5 -TWhJVWxkWEp5SWlkWFYxMGNJUER3OG5EUTBOc2F5YW1wcjRqckZQV1ZWYnlkeENabTlUcTdJTG5q -OS9ucG8xYTBZeE1URTAKY09CQTB0UFRlNjFsWHhhSlJQTEc2WXNYTHhiL056WTJKbU5qNDhwV2ti -RVAzdisxa2l1Ny9KdC9SMHkraFlTRVVFaElTTG5tbGFBaQprYmtVMDZkUEp3ME5EUW9NREtUNTgr -ZVRqbzRPWGJwMGlWYXRXa1VIRGh5Z3c0Y1AwOG1USjJuanhvMUVSS1N0clUzbnpwMGpSVVZGCjJj -cElKQlc2VUREMnNTdHU3RlRsbkpmOXpWUzlQQzd6WFpmNUxwUVZPeXVWcm5ueDRvWElxVDk1OG9T -Q2dvTEkxTlNVOVBYMXlkUFQKazNKeWNzalQwNU1NREF5SWlFaFBUNCtDZ29Mby92MzdGQklTUWdv -S0NxOEZlTVkrZEp4YVlSK2pTcVZya3BPVGFjaVFJVVJFMUxCaApRM0p5Y3FMbXpadVRyYTB0V1Zs -WmtacWFHblhzMkpGKy8vMTNJaUpxMHFRSjJkcmFrb21KQ2RXdVhaczJiOTVjZlZ2QVdBM2gxQXI3 -CkdGVkx1cWE2Y0xxR2ZjaXFPN1h5THNyOFdGSVduM0taNzBLMXAyc1lxMDd2SWczQ3FSWEdpbkZM -bmxWSTNib05xdHpuV1ZHeFBtVmsKUEJXZlA0WVc4c2RTNXNmU212MlV5M3dYeW9xZGxlNUN5VDVO -VmMxTEY1ZkJ1V25HYWdxbmF6NFFQQnlkTWZZdWNMcW1FajdNbEFYUgp4M3I3K2pHa1FUNldNai9N -NDhObGNycm1JOE1wQzhiWXg0TFROWXd4SnNma1BzaHpYcG94OWluNzROSTF4VG13eW5zMTE4MnBG -Y2JZCnAreURDL0lja0JsanJQcklmYnFHTWNZK1pSemtHV05Nam5HUVo0d3hPY1pCbmpIRzVCZ0hl -Y1lZazJNYzVCbGpUSTV4a0dlTU1UbkcKUVo0eHh1UVlCM25HR0pOakhPUVpZMHlPY1pCbmpERTV4 -a0dlTWNia0dBZDV4aGlUWXh6a0dXTk1qbkdRWjR3eE9jWkJuakhHNUJnSAplY1lZazJNYzVCbGpU -STV4a0dlTU1UbFdvMEgrN05tenBLR2hRYTFidHlaWFY5ZWFYRFZqakgyU0pBQ3E5cGV6SzBCSFI0 -YzJidHhJCktpb3ExSzlmUHdvTkRhVkdqUnI5WDJVa0VxcnFIL0lta3BEMEpuR1puMEtac3VWOXlt -VittTWVIeTN6WFlWWWlLWDBkTmRhU2YvNzgKT1JFUkdSb2Frb3FLQ3ZYdDI1ZkN3OE5yYXZXTU1m -WkpxbFZUSzRxTWpDUjFkWFh4V1ZOVGt5NWV2RWdEQmd4NFpVNUpsZGRWZlBYbApNaitsTWw4djcx -TXU4OE03UGx4bTFjdW9yQm9MOHVWUmc1a2p4aGo3Sk5SWXVrWlhWNWRpWTJQRjUrdlhyNU9CZ1VG -TnJaNHh4ajVKCk5SYms2OVdyUjBURlBXenUzcjFMSjA2Y0lIMTkvWnBhUFdPTWZaSnFORjJ6WWNN -R21qeDVNdVhuNTVPam82Tk16eHJHR0dQVnIwYTcKVUxJUEI0RDMrakNvSXRMVDA2bCsvZnJWVmw3 -SnRuOG8rK0JEcVVkRlhMeDRrWGJ2M2sxLy92bG5qYXl2cUtpSUZCVCtML0ZRWGZzcwpOVFZWN2h0 -MnU5L0tBQUFnQUVsRVFWU2JQT0wxRlFERUErREN3a0l4dmFpb3FOUmx5dnF1TXV0LzE0cUtpc1FQ -NU83ZHU1U2ZuMStoCjVhWDMwYnQyK1BCaFdyQmdBVDE4K0xEYXlpelo5cmk0dUdvclU1cjAvc25P -emk1ejNwU1VGQW9ORFNVaW91M2J0MU4wZFBRN3FkT3IKM25UT1Z1U1lxcXVyMCtuVHAybmF0R25W -V2EwM0FpQUNmSEJ3TUJGVlQyK1ZnSUFBR2pkdUhDVW1KbGJxTjF5ZHYvdDNDaCtSd3NKQwo4Zitp -b3FMWHBsV0hrbklEQWdJd1k4WU1MRml3QUM5ZXZDaDFYZExUd3NMQ2tKU1VWT2wxUzVkVlVGQ0Ev -UHg4bVRwVkIrbXkxcTVkCmkvSGp4K1B4NDhlVkt1UGF0V3VJakl4RVpHUmt0ZFZQMnBrelo2Q2xw -WVd3c0RBQTFYdXM3OTY5aXo1OSt1RDY5ZXZWVm1hSmt2MXoKL1BoeExGcTBDR2xwYVcrYzcrWExs -M2oyN0JtTWpJeGdhbW9LUFQwOVBIandvTnJyVTFyOUFDQThQQndoSVNFVldyYmt2RXhQVDRldQpy -aTRjSEJ5cXZZNXZzbW5USm1ocGFTRStQcjdLWllXR2hrSlRVeE5uejU0RlVQeDdxNnpvNk9nYU9X -NlY5VkcxNUV1dTVyNit2dVRpCjRrS3hzYkV5dDNCVmhmOS9DeGdkSFUzejVzMmpkdTNhVVdKaUlu -WHExSWxldkhoQkNnb0tyMTI5UzlidjdPeE05dmIybEp1YisxcVoKNVZWU2xxZW5KNjFZc1lLV0xs -MUtZV0ZoMVhvclgxTFcvdjM3NmVEQmc3UnUzVHBxMnJRcFpXVmx2VmIzc3NvNGNlSUUyZHJhVW5S -MApOSTBkTzVaOGZYMnJyWTRsd3NMQ2FQVG8wYVNwcVVtK3ZyNzA2NisvMGg5Ly9GR3BzbDQ5RHYv -NzMvOUlYVjJkbmp4NVFrU3lkMjFWCkpaRkk2TlNwVTJSdmIwOG1KaWJVb0VHRDErYTVldlVxL2ZQ -UFAxU3ZYajJhTkdrU1JVUkVrSkdSRVNrcEtWRitmdjQ3dTF1Q1ZKckQKM2QyZEprK2VUS3RYcjZh -K2ZmdFNhbXBxbWN1VzNBSFdxbFdMc3JPejZadHZ2cUdUSjAvUzVjdVh5Y0hCb2RycldsQlFJUDRm -RnhkSAp4NDhmcDZOSGoxTExsaTJyVkM0QXVubnpKczJmUDU4ME5UVnAzNzU5WkdabVZ1NXpTL3E0 -L1Bubm4yUmhZVUdyVnEyaVNaTW1mWkRkCndEK0tJQzhkV1AzOC9Hang0c1dVbnA1T2d3WU5JaDhm -bjNJSHA3Y3BDZkJ1Ym03VXAwOGZHamR1SEhsNGVGQ1hMbDNJd01CQUJIb2kKMlFNZEVoSkMrL2Z2 -cHpObnpwQ3lzakxkdlh1WDd0Ky9MOHFzQ0g5L2Z6cHc0QUNOSERtU1FrSkN5TjNkdlZxMjdlTEZp -ekkveE9UawpaREl4TWFINCtIaGF2MzQ5alIwN2x1Yk1tVU5aV1ZsbGxnT0Fzck96S1Nnb2lMeTh2 -S2gyN2RyMHpUZmZrSUdCUWJXZDRQSHg4VVJFClpHUmtSS2RPbmFKZXZYclI1Y3VYNmJ2dnZxT2tw -Q1JLVDArdmNKa2x4K0hxMWF0RVJOU2tTUlBxMEtFRDJkblpVVXBLQ24zMjJXZlYKVW5jQWxKZVhS -NGNQSDZZLy92aUREQTBONmVUSms3Unc0VUx5OC9NVDgzMzIyV2ZVcjE4L3VuUG5EalZxMUlpQ2c0 -TXBNRENRbGk5ZgpUcDkvL2psSkpCSjYrdlJwdGRSSldzbCtpSWlJb09QSGoxTlFVQkFGQkFSUXMy -Yk55TnJhbXBLVGswdGR0dVRjMzdGakJ5MWR1cFMyCmJkdEd5Y25KRkJRVVJKR1JrZFdhdWdrUEQ2 -ZmR1M2VMY3lvek01TnExNjVOelpzM0o2TEtYNVJMTG5LdFdyV2l1WFBua3FXbEpTVWsKSk5DNGNl -UEl6OCtQRWhJU3lseGVPdFdaazVORCtmbjU1Ty92VDNQbnpxWGMzRndhUEhqd2h4Zm9hLzdtb1dL -a2J5MFRFeE54NHNRSgpjWHU1ZCs5ZUdCc2I0OENCQTNqNThtV1Z5d2VLYjcwc0xDelFyMTgvWEw1 -OFdVd2ZOV29VV3JWcWhZS0NBcG0wUVY1ZUh1TGo0MFZxClorN2N1ZERTMG9LTmpRMmlvcUlxWEo4 -REJ3NGdQajRlYTlldXhZQUJBNUNYbDRmYzNOd3FwWUdBNGx0clRVMU5PRG82QWloT3RRd1oKTWdU -R3hzWndkM2ZIL3YzN01YdjJiRHg3OXV5Tnk3K2FIbHUxYWhXV0xWdUc3dDI3NCtiTm13QUFiMjl2 -WExseXBVcjFQSHo0TU5xMAphWU9iTjI4aU56Y1h5Y25KWXRzaklpSmdaR1NFUjQ4ZWxiczg2ZU43 -Nzk0OURCczJETDE3OThhTkd6Znc0c1VMckZtekJsdTNicFhaCnRvb3FLaXA2N1R6YXNXTUhWRlJV -WUdwcWlrbVRKbUgrL1BrWU5Xb1VuajkvTHVaSlRVM0ZrQ0ZEc0hMbFNnQkFmSHc4TkRRMHNINzkK -ZXZ6MTExL28yN2V2U0JWV1ZVbjlpb3FLa0pLU0FrZEhSN1JzMlJJK1BqNWlIaHNiR3hnYUdpSTVP -Ym5VNWYzOS9URmd3QUJFUkVTZwpkZXZXbURObkRnRGcrZlBuVUZOVHcyKy8vVll0OWIxOSt6WVNF -eE1SR3h1THpNeE1GQlFVd05EUUVPN3U3bUllZDNkM0xGaXdvTnhsCm5qNTlHaXRXck1DT0hUdHc5 -KzVkUEg3OEdLbXBxUUNBQnc4ZW9HL2Z2a2hNVEN4MWVlbnp3OTNkSFdQSGpvVyt2ajdPbno4UEFN -aksKeXNLRUNSTmdiR3hjclNuV3F2cWdnN3owVG5WMmRrYno1czJocHFZR1EwTkRzUk85dmIyaHJh -ME5mMy8vU3EyanBKeUVoQVRFeGNVaApMUzBOYVdscEdEOStQSll2WDQ0Yk4yNkllYTlkdTRiYzNG -enhlY2VPSFZpMWFoWHUzYnNITnpjM2pCbzFDcUdob2JoNTh5Wm16SmdoCkRuNTV0cS9FK3ZYcjBi -NTllNHdhTlVwTTI3UnBFMWF2WGkxeW9SWGR2bGR6cUZPblRoWGZsM3puNCtNRFEwTkRjZEpMTDEr -eWoyN2QKdW9WdDI3WUJBRmF1WEluYXRXdmovdjM3QUlwenU5cmEyaklYeG9xNmR1MGFkSFIwUkJu -cDZlbkl6YzFGZm40K1RwMDZoWll0VytMSQprU1BsTGs5Ni83NTQ4UUw1K2Zrb0xDekVraVZMWUdk -bmg1RWpSMkxzMkxHWU1tVktwZXNNL044NWRQbnlaUnc0Y0FDWm1aa0FnSFBuCnp1SDI3ZHNBZ0tp -b0tBd2ZQbHg4VjVJRGpveU14TGh4NDdCNjlXcms1T1RnN3QyNytPV1hYMkJqWTROLy8vMjNTdlVx -SWIwZlN2NS8KNzk0OU9EazVZZWJNbWJoNDhhTDQzczdPVGh4VG9QakMrdlRwVTFIbmJkdTJJVG82 -R3R1M2IwZnYzcjJSbjUrUC9QeDhGQlFVSUNNagpBM2Z1M0tsU1hYTnpjOFgrek1uSmdZR0JBUll0 -V29TY25CeWNQSGtTNXVibW1EQmhBdHpkM2RHcFV5Zjg5OTkvNVNyM3dvVUw2TktsCkM0NGNPWUlC -QXdaZ3hJZ1J5TXZMQTFEY1dHelRwazI1WTBoZ1lDRDY5dTJMWGJ0Mm9YdjM3bGkxYWhWdTNib0ZB -TWpNek1TVUtWTmsKOXVINzlrRUgrUklYTGx6QXhJa1RjZXZXTFlTRmhXSDgrUEd3dDdjWFB4US9Q -ei9jdlh1M3d1V1duUEJCUVVIbzBhTUhwa3laZ2o1OQordUNmZi81Qldsb2FiR3hzc0dEQkFrUkhS -Nk9vcUFpeHNiRm8yclNwZU1qaTV1YUduVHQzeXBRRkZMZkc5ZlgxeTMzQ0h6MTZGTWVPCkhVTlNV -aEpldm55Sm5qMTc0dWVmZjhhZE8zZmc3dTZPMXExYkl5WW1wdExiQnhTM01nRGcyYk5uNk5LbEMy -eHRiUUVVQjc5ZHUzYWgKZGV2V2lJNk9mcTJNa2gvYzZkT25ZV2xwQ1IwZEhSdzhlQkFBTUdIQ0JQ -VHIxdzh6WnN4QWp4NDk0T3ZyVytFNlNvdUppY0dTSlV1dwpjK2RPckZ1M0RqbzZPdmpsbDE4UUVS -R0JJMGVPNE5TcFU2Sk9GV2twYmQyNkZSTW5Uc1RVcVZPeGI5OCs1T2JtSWowOUhmdjM3NGVhCm1o -b2FOR2hRb2JzRGFTWDFDQWtKZ1lhR0JrYU9IQWx0YlcwRUJnYUt1OHVqUjQ5Q1EwTURodzhmRnZW -eGNIQ0FyNjh2VWxOVEVSc2IKaXpGanhtRE5talZJVFUxRlVWRlJwZTlNWHlWOUR1emV2UnNyVnF6 -QTd0MjdrWmlZaU1URVJNeWNPUk1MRml6QXVYUG4zcmo4dUhIagowS2xUSnhIb3ZieTgwS3haTS9U -cTFVdk00K0xpZ3IvKytxdktkVTFQVDhlQkF3ZVFrWkdCdFd2WDR2RGh3N2grL1RyNjlldUh0V3ZY -CklpVWxCVWxKU1pnN2R5NDhQRHhFWUMyUEF3Y09JQzR1RGdFQkFkRFgxeGRCK05telp3Z0xDME5R -VUJDQXQ1OWJrWkdSK1BiYmI4VWQKeGZuejUvSFRUejloN2RxMWlJMk5GV1Y4U0Q3SUlDK2RHbmo0 -OENGMGRIVFFwVXNYSkNRa29LQ2dBUC8rK3k4bVQ1Nk1jZVBHVmVvVworOG1USitJcW5wMmRqY21U -SnlNZ0lBQkFjWXRMVFUwTlo4K2VSVnhjSE1hT0hZdjQrSGdSSktkTm13WmxaV1VrSnlkajgrYk4y -TFJwCmswelpBUUVCTURJeXdyVnIxOTY2ZlFEZzYrdUx0bTNiWXN5WU1aZ3laUXIyNzkrUGpJd00v -UHp6ejVnMmJScCsrZVVYbWJ1Snl0aSsKZlR0bXpwd0pUMDlQeE1YRklUTXpFM3A2ZXBnK2ZUcUE0 -dFphV1Jla2lJZ0lxS3VyWTgrZVBSZ3hZZ1JHang0TmIyOXZBTURaczJjUgpHaG9xTGtJVkRjQkE4 -VEhJek14RVJrWUc1czZkaTM3OStzSEx5d3ZuenAyRG5aMmR6QjFSZWNxWC92N2l4WXN3TkRURWxT -dFg0Tzd1Cmpoa3pabURod29YaStOKy9meDhwS1NrVnF1K3I0dUxpWUc1dWp0T25Ud01BWEYxZFlX -NXVqc0RBUUR4NjlBaC8vLzIzdUFPNWZQa3kKZXZYcUJUYzNOemc2T21MS2xDbElTRWpBelpzM01X -alFJTGk0dUZUcWp1MXRObTdjaUI0OWV1RFlzV013TmpaR256NTljTzNhTlR4KwovQmoyOXZaWXRt -d1pjbkp5eFB6U3ZVMkdEUnVHL3YzNzQrblRwOGpMeTRPTmpRMGNIQnlRa0pDQVhidDJRVU5Ebzlw -NktTMVlzQUNhCm1wcG8zNzQ5NHVMaUFBRFhyMTlINzk2OXNYcjE2Z3IvM2tzdVRuLzk5UmQwZFhW -aFpHUWtlcE1kTzNZTXpzN09NcW1zVjgrdFY5ZVgKbjUrUFVhTkdRVVZGUmFUZXdzUERNV1RJRUd6 -Y3VGR2NWeCtTRHk3SVMrL1VrcFA5eXBVck1EWTJocHVibTBpWFhMNThHWTZPamhYdQovcGVabVlr -MWE5Ymc3dDI3NG9BNk9UbUpIeWhRM0VKZnZYbzFBQ0FqSXdPeHNiRVlQSGl3T0pGbno1NE5WVlZW -T0RnNFlObXlaZGk5CmV6Y0NBZ0p3OE9CQkhEcDBDRStlUENsMS9kSW4wWk1uVDdCcDB5WmN1blFK -UVBGdG83VzF0UWlnQUdSK2VCVlJuaHhxbXpadHhPZlMKbGk4b0tJQzN0emRtenB3Sm9MamIzL0xs -eTJGZ1lBQS9QNy9YQWxKRkEvelJvMGRoYlcyTlVhTkc0WjkvL2tGR1JvWm94Y2JFeEVCZgpYeC9o -NGVFVjN1NlMvd2NIQjJQdTNMa0FpdmZsMmJObllXTmpVK1ZuSENYbDUrYm1Zc2VPSFZCVlZjV3Z2 -LzRxdm5OemMwUGZ2bjF4CjVNZ1JjYzVldW5RSmYvLzlONXlkblFFQS8vNzdMNVl2WHc0N096dkV4 -OGZqMXExYmVQandZWlhyQlFELy9mY2Yvdm5uSHdERnVmODUKYytZZ0l5TURMaTR1Nk4yN054WXVY -SWllUFh2aXYvLytRMUpTMGh2ejhBRHc5OTkvWS9Ma3lXamF0Q20wdExTUWxwYUc2T2hvTEZ5NApF -S2FtcHJDMXRhMXlJMFQ2Tng4VEU0TnUzYnJCM053Y3FhbXB5TTdPQmxEOHJFeFBUdy9yMXEwcmQ2 -QS9kT2dRN08zdGtaYVdocnk4ClBQVHIxdzhqUm93QVVOeTl0VVdMRnFJRi95YlM1OUovLy8wbkdo -dDVlWG1ZUG4wNkRBME5SZmZZcUtpb012UDU3OU1IRitSTGJOKysKSFFzWExvU0xpd3VpbzZNUkZS -VUZJeU1qZUhoNGlDQlFtVnZhdkx3OHBLYW00dkhqeDFpNmRDbnk4L1B4KysrL3c4ek1UQVNzM2J0 -MwpZOG1TSlRJUFdVdHl1Q1V0MXVYTGwwTWlrV0Rnd0lGWXZYbzFySzJ0TVdUSWtESi9wTkluNTlx -MWE5RzNiMTgwYXRSSVBIaExUMC9ICnZuMzdZR0ZoZ2UzYnQxZDQyNERxeWFHV25OeEhqeDdGNzcv -L2pvc1hMMEpmWDE5Y2pQTHo4OUdsU3hmODl0dHZJc2RjR2JHeHNlamIKdHkvUzB0TGc0T0NBenAw -N0l5c3JDMFZGUlRoeDRnUjBkWFhoNStjblU2ZXlaR1JraVA5N2VucGk3ZHExdUhidEdscTJiSW5B -d0VEeAozY2lSSTh1ZHkzMlZkR3Z2eFlzWDRwaDZlWGxoN05peDhQRHdFUE81dUxpSWgrOXVibTVv -MDZZTnVuWHJocFl0VzRvV1gzUjBOT2JPCm5ZdHAwNlpWV3l1d29LQUFKMDZjUUVwS0NoSVNFZ0FV -cCt0dTNicUZvVU9INHZuejU0aUtpa0tIRGgwd1lNQ0FVbjlIc2JHeDZOS2wKQys3ZHU0ZlUxRlFN -R3pZTU9qbzY0dng2L3Z5NXpET3F5cEErcmo0K1B2RDI5c2FMRnkvZzZPaUlVYU5HaVJSSVdsb2FI -ang0Z0h2Mwo3cFdyM0ZmSFdBREE0OGVQTVhyMGFGaFpXV0g4K1BIaTd2MXQ1NWFibXh0NjllcUZ2 -bjM3WXVUSWtkaTNieC9TMHRMZzVPUUViVzF0CnBLZW5WM1N6YTlRSEdlUVBIRGdBVTFOVGhJV0Zv -WHYzN3VMQjJKa3paOUNoUXdmczJMR2p3bVhtNU9TSTFzckRodzl4NE1BQjJOalkKWU9QR2pRQ0Fp -Uk1uWXVEQWdaZzFheFk2ZHV5SWt5ZFBvcWlvU09hMmRlclVxUmc2ZEtnSTlMLy8vanRhdEdnaFd0 -dmx2YzBPQ2dxQwptWmtaRWhNVDRlcnFpcFl0VzRwQkdVK2ZQb1dQajArbGM4VFZsVU85ZVBFaUpr -eVlnT1BIandNb2Z0RHE1T1NFd01CQVJFVkZvVWVQCkh1amV2VHRjWEZ3cVZVL2cvMXEyTzNmdVJO -ZXVYY1VGNTlHalIwaFBUeGNQSHN1VG9ybDc5NjY0WXdHQXpaczNZOCtlUFFDS0g4NXIKYVduaHp6 -Ly94STRkTzlDOWUvZFNXNjdsRlJnWWlJa1RKMkxvMEtGd2RYWEZzMmZQc0d2WExreWVQQm51N3U0 -eVAvd3paODZnWDc5KwpJaTNVcjE4L0RCOCtYRndnWW1KaXlyejdxNHlpb2lJOGZQZ1FvMGFOZ3F1 -cks0RGlmVFIyN0Zpa3BxYkN3OE1ETTJiTWtFbFZ2YnFQCjc5MjdoekZqeHNpMFVOdTJiUXROVFUx -eGZsVVhaMmRuZE96WVVlYXVZTnEwYVpnd1lRSm16NTROWldYbENxMXo5ZXJWV0xWcUZaNC8KZnc0 -Zkh4L1kyZG1KMUdwYVdwcm9SZmFtYzZ2a0xxK29xQWpQbnovSGhBa1R4Ty9SdzhNRGRuWjJZcDVa -czJaVjZubGdUZm9nZ3J6MApUczdLeXNLaFE0ZVFsSlFFRnhjWG1KcWFJamMzRnk5ZnZrUlJVUkVp -SWlKRTY2UzhDZ3NMRVJZV2hqLysrQU91cnE2WU1HRUNIang0CmdJQ0FBTmphMm9wQUh4NGVqcE1u -VCtMYXRXc29MQ3dVOVpKdUlUbzVPV0h3NE1FaTBOdloyVUZEUXdONWVYbWxqcHE3Y09HQ0NJWUoK -Q1Ftd3RMU0V2cjYrK0g3VHBrMVFWMWRIY0hDd3FHOUZWV2NPTlNjbkI0TUdEVUt6WnMzRWorSFNw -VXZZdG0wYnVuZnZqZ0VEQnVENgo5ZXZ3OXZhR3E2dHJoVk0wSmNFN0ppWUdJMGFNa0Fud0J3OGVS -SjgrZldUMmVYbHk4TW5KeVZpNWNpWE16YzF4NWNvVmJObXlCVnUyCmJCSHpoSWFHd3Q3ZS9yVWVV -K1VsZlV6dTM3OFBZMk5qbkQxN0ZtRmhZVEF3TU1DYU5XdFFWRlFFRHc4UERCOCtIQU1IRGtST1Rn -NWUKdm55SlpjdVdvVkdqUnZEeThoSmxEQmd3QUgzNjlLbldVYnl2bHBXVmxZVi8vdmxIWEhnQXdO -cmFHbVBIamtYYnRtMWw3bWFrbDgzTgp6UlYxdDdTMGhJK1BqN2hqVzdseUpRd05EYXQxaE9lZE8z -ZEVkMkdnK0tKWThoRGZ6ODhQenM3TzVUNW1KUTlqdzhMQzBLZFBIM1R1CjNCbno1czNEeXBVcjhl -dXZ2NWJaNmk3cFh0cThlWFBzM3IwYlFQSGRXdmZ1M1VXdk1nQVlQWG8wbGl4WlVwbE5mUy9lZTVC -L3RlL3AKK3ZYcnNXVEpFcWlxcW1MNDhPSGlPemMzdHlxMUdoODhlSUFoUTRiZzIyKy94ZDkvL3cy -Z09KZ2RPWElFOXZiMldMcDBxYmh0bFg0UQo0K0hoZ1ZtelptSDkrdldpei9MczJiTXhmUGh3MFJ2 -bGJRL3U3dDI3aDhURVJCSElnb0tDMEt0WEw2eGF0VXFzYTkyNmRlallzV09WCiswVlhKb2Y2cHRi -TXZYdjNvS21waWJGang4cE16OGpJUUY1ZUhvNGNPUUl0TFMxeE8xMWVBUUVCYU4yNnRlZ21PWFBt -VEl3ZVBScDcKOXV5Qmw1Y1gyclZyaDBPSERwVzdQT256NSt6WnM5aXhZd2NHRHg2TWtTTkh3c25K -Q1JFUkVRZ0xDME5ZV0JnU0V4TXIxZk1oS1NrSgpreVpORWhmU216ZHZZdkRnd2FKbCtmRGhRMmhv -YU9EMDZkTklUVTNGdzRjUGtacWFpdURnWUVSRlJhR29xQWpMbHkvSCtQSGpjZUxFCkNWSHVzR0hE -cWkxWVNtL1hzV1BIY1BUb1VYRWg5L1gxeFlRSkU4UkY1c21USjZXZXN5VXQvSWtUSnlJNE9CaVhM -bDFDejU0OThldXYKdjhMSnlRbTZ1cnBWemoyL2VneGV2bndweGk5TW5EZ1JQLzc0SXdZTUdDRHVR -TXA3SWF6cUdJdVM0M3ZpeEFtb3FhbUpWS0d2cnkrbQpUWnNtVW41YnQyN0ZoZzBiUHJoZU5LVjU3 -MEcrUkVSRUJJWU1HU0o2c1ppYW1tTE1tREY0K3ZRcHRtelpncFl0VzFhcUc2SDBnVml3CllBSEdq -Qm1EMzM3N1RXYlFqcSt2TDZaT25ZcGJ0MjdKekYvU2NyMTkremFhTkdtQzBhTkhpejdGRGc0T3NM -S3lLak1ubVp5Y0xGcEwKdnI2K2FOQ2dBZWJQbncrZytJYzRhZElrckZ1M1RxeXpxcmZBbGNtaFNn -ZjRzTEF3K1ByNjR1alJvd0NLVzZ5OWV2VVNBNmhLUEh2MgpESk1tVGFwd1h2dlJvMGY0OGNjZlgr -dXU1Kzd1am1YTGxtSGh3b1dWN2licDZlbUpuajE3SWo0K0h1dldyVVBMbGkyaG9xS0NaY3VXCllj -aVFJVEEwTkN4M1B2ZFZ1Ym01aUkyTlJYeDh2TmlYdHJhMkNBb0tFaTNEUC83NEEvdjM3NGVLaW9w -NEdMZDY5V3FvcWFuaDZ0V3IKeU1uSndabzFhekJseWhRY08zYXNVdlVvamZSKzJyOS9QOXEwYVlO -ZmZ2a0Z3NGNQRncwYWYzOS9qQmd4UWp3emVKUFEwRkIwN2RvVgo0ZUhoMkx0M0w3Nzc3anZSdGRm -ZjN4OS8vLzIzNlBGU1dhL2VFWldrT2g0OGVJREZpeGVMbHZpT0hUdEVrQytQNmh4amNlclVLUXdZ -Ck1BQ2ZmLzQ1dkx5OGtKYVdoai8vL0JPZE9uV0N0YlUxOVBUMEt0eTRlWi9lZTVBdkxDeEVYRndj -dExTMFlHaG9LQTV5V2xvYVJvMGEKQlZ0Ylc5aloyVlg0RmxzNlNOeTdkdy9QbmoxRGZuNCtVbE5U -TVcvZVBOamIyK1BCZ3dkNC9QZ3hEaDQ4K0Zvdm5jT0hEOFBSMFJGcAphV25ZdkhrekRBME5NWEhp -UkppWW1JaUhPVy9MNjk2OGVSTzllL2ZHbURGak1IandZSnc3ZHc3R3hzYmlWaThnSUVBbVoxclJs -a0YxCjVGQkxuaU1jT1hJRXVycTZPSExrQ0w3NzdqdlJ1K2pCZ3dmbzJyV3JlQzVTc3M3S1BDU01p -NHZENk5HanhlZVNuaE1scE8ra0tySXYKUWtORFlXaG9LRWJlSmlZbXd0M2RIWU1HRFJJdnM2cE1x -MHQ2RzErOGVJRTVjK2FnYytmT3lNN094dDY5ZXpGdTNEak1tVE1ITzNicwpFQUhtNE1HRGFOT21q -ZGpmTGk0dWFOKyt2UWowUzVZc2dhT2pvM2pBWEZYU1plemV2UnV6Wjg4V0Y5L1RwMCtqZCsvZUly -QWZQbnhZCnBpWDdhZ3Y1OU9uVHNMZTNGNTlEUTBPaHA2ZFg2WXRqV1RadTNBaExTMHVZbUpoZzdk -cTFNcjNJM04zZDBibHo1d28xNnFwcmpFVmcKWUNDMHRMUVFIaDZPNWN1WDQ2dXZ2c0wrL2ZzQkZE -KzREUThQcjNDUHZ2ZnR2UVQ1TjkxK0JRUUV3TURBQUh2MjdKRjUydi9peFl0Swo5YUlwdWZVNmV2 -UW8rdmZ2ajlXclYyUHk1TWw0K3ZRcEhqMTZoR1hMbHNIVTFCUXFLaW80ZCs2Y1RKMmVQWHNHUjBk -SGVIcDZJakV4ClVZdytmZjc4T2I3Nzdqc3NXclRvdFFCVkdpY25KeWdxS29wVVUzUjBOTHAwNlNJ -Qy9mSGp4eXYxa0xXcU9kVGJ0MitMVnVqRGh3OWgKWkdTRWYvLzlGNGNQSDBhN2R1M3cvZmZmWTlx -MGFRQ0tMeDRWNmNiNEt1bnVtTjI2ZFpONTZCc1lHQ2k2T0piM3RsdzZuWmFabVFrWApGeGMwYnR4 -WTlGSUNJSTZ4cGFVbHNyT3pLNXo3enN2THc2NWR1M0R0MmpWY3ZYb1ZTNWN1eGZQbnorSG82QWhU -VTFPOGZQa1NWNjVjCmdhdXJLNVl1WFNxQ0NGQjh6djN3d3c4aTBHL1lzQUdkT25WQ1ZGUVVjbkp5 -WGh0VlhCM3k4dkt3WXNVS0tDb3FpcTZUdWJtNU9IMzYKTkhSMWRjdnNySEQ4K0hHY1AzOGVPM2Jz -d0l3Wk01Q1ltQ2p1K0taT25WcmhaMkJ2czJQSERoZ2FHZ0lvZmtiUXFGRWpzZDY0dURpTQpHVE9t -ekhFbTBxcDdqSVdQajQ4WVB3SUErL2J0dytlZmYxNnB6aDRmaXZmYWt2ZjM5NGVycXl2Mjd0Mkxs -SlFVbkQ1OUdvYUdoamg0CjhHQzVnK2lycE4rOUVoNGVEblYxZGNURnhXSFpzbVZRVVZGQnAwNmRS -RDR5SWlKQ3ZDYTM1T0NYNU5rOVBEeXdZc1VLM0x0M0Q2MWEKdGNMWnMyZHg4T0JCbUp1YlZ5Z28z -N3AxQ3p0MzdvUzJ0aloyN2RvRm9QZ09RRVZGcFZwR0NWWTJoM3JpeEFuVXExZFBCS0o3OSs3aAp6 -cDA3TURZMkJsRDg4RXNpa1lnV1BWQzUxdkQ1OCtleGNlTkdiTisrSFltSmlUaHo1Z3dzTEN4Z1oy -ZUhRNGNPb1VPSERtSUViWGxJCkIrdVMxbDllWGg3YzNOeGdZV0VoOHk2V3BLU2tVbC96Vzk2Nk4y -blNCRXBLU2lKTmtaT1RBd2NIQjVpWm1ZbHpyYVRGTHgxRVhnMzAKcTFhdFF2ZnUzYXR0Skt2MGhT -NDhQRnc4eEYyNmRDazZkKzRzdXZMbTV1Ymk3Tm16TWoxQXBJK2psNWNYZnZqaEI4eWVQUnQ5K3ZT -Qgpzckl5NXMrZkQzZDNkMnphdEFtR2hvWlZIaXoyNmdVMk5EUVVjWEZ4MkwxN040WU5HNFovLy8w -WGpSbzFncDJkSFJJU0VzcjlYS3FxCll5emVkT0UvZmZvMGZ2cnBKNlNscFltR1lzK2VQYUd0clYy -bDdzTHYwM3NMOGo0K1B0RFQwOFBHalJ2eDIyKy93Y2pJQ0hmdjNrVkEKUUFDMHRiVkZYcmdpc3JL -eU1HYk1HTkZxam8yTnhkV3JWeEVWRllXT0hUdml6cDA3Nk4rL1A3UzB0TVN3NXBJZlpsRlJFUzVj -dUFCbApaV1c0dTdzak5qWVcrdnI2OFBIeHdhRkRoOUNqUnc5MDZkS2wwdThUT1hqd0lMUzB0T0R2 -NzQrUWtCQllXbHBXT2I5WjFSeHFRRUNBClRDQzZjdVVLK3ZYcmg5emNYSnc3ZHc0Ly9mUlRxY1Bk -eStQU3BVdm8wS0VETm0zYWhPSERoMlBtekpuWXRXc1g3dDY5Q3hzYkc2eGYKdjE0TVFpdlBCVVI2 -SGc4UEQ4eWNPUlBMbHk4WDNTYmQzZDB4YWRJa21WNHNsVlZVVklSSGp4NmhjK2ZPVUZWVkZTM0N3 -c0pDNU9YbAp3ZGJXRmwyN2RpMnpWOVhSbzBmUnBrMGIwWEt2eWdYbmJaeWNuTVFENjE5KytRVmR1 -M1o5NC90VHBQZGhTa29LZkh4OHhBTmFQejgvCmFHbHBZZVRJa2RpN2R5OW16cHhaNVlGTzBqSXpN -MlhHR05qWjJZbkJTRFkyTmpJUHM5K21xbU1zcEtkNWUzdGorL2J0NHNXSDQ4ZVAKaDYydExmYnUz -UXMzTnpmODlOTlBIL1Q3NHQvbXZRWDVUWnMyaWR2SzdPeHMvUFhYWDVnOWV6YUE0cDFlbWI2bkwx -NjhnSStQRDRZTQpHU0x6Z01uWjJWbU1NbHk2ZENuTXpNeEV2L1FTTDErK3hJTUhEMkJnWUFBZEhS -MzQrL3RqNnRTcGFOdTJMYUtqby9IOCtmTXEvMGlECmc0TmhZR0FBRXhPVEtuZmpBNm9uaDNyczJE -SDg4TU1QWXR0KytlVVhqQm8xQ2ovODhFT0ZBdkNybmo5L2pvTUhEMkxEaGcwQWlsdlYKVzdac0VT -TnNYeDJaV3BGMXVMcTZvbHUzYnJoMjdSck16TXlncXFvcUFweXpzek1jSEJ4a3VtQ1dsM1E5U3A1 -VkZCUVU0T2pSbzJqWApycDE0Z1ZWOGZEd2VQbnhZcm91MG41OGZ0TFcxWmJya1ZwZDkrL2JCek13 -TWFXbHArT3V2djJUU0RCTW1USUNKaVluTTJBM3A4MmZECmhnM28yYk1ubEpXVnNYNzllbkZYZE9E -QUFYei8vZmM0YytaTWxldDM4K1pOY1E3OStlZWY0dGxVeVpnQVoyZG5HQm9hWXZYcTFUQXgKTWFu -UWI3NjZ4bGlVdkZkb3pwdzVHRFZxRkpZdlg0NmlvaUs0dWJsaDd0eTVtRGh4WXFVSHpuMG9haVRJ -dittMmFPWEtsZmpwcDUvRQo1N0N3TU5qYTJsWjZHSCtKN094c0hENThHRC8rK0tQb0oxMHlnT0h2 -di8rR2pvNk8rSEdXSFB6ejU4K0xGNUhkdm4wYkF3Y094TFp0CjI3QjU4MlpJSkJJc1hyeTQybjZn -VDU4K3JmSUl1ZXJPb1I0N2Rnd3RXN1pFUmtZR01qTXpFUndjTEc1eks3UGRnWUdCV0xCZ0FYYnUK -M0FsTlRVM1JvaXpwWDE3Uk4vUzltcUw1NjYrL2tKS1NBbGRYVnd3YU5BaGJ0MjZGaW9xS3VQdXJi -Qytsa20wTkRBekVqQmt6NE9EZwpJSHBSN051M0Q4MmJOOGZ5NWN2UnJWczNtVHU2dCsyamQzV2J2 -M1hyVmpSczJCRHIxNitIbTVzYlZGVlZzV2pSSXZGOWFROElEeDgrCkRDc3JLMFJIUjhQQndRRzJ0 -clk0ZmZxMHpGc1pxL3JYbDNKeWNyQmd3UUk0T2pwaTA2Wk5NRFkyeHMyYk4yRnJheXRlVDUyZW5n -NDMKTnpkTW1ERGhqUy9IZTVQcUhHT3hZOGNPVEpreVJkeWxYYjkrSFVPSERzWGl4WXZGUE5XVlhu -dWYzbm1RbDk3SkFRRUJDQW9LUWtSRQpCRnU4eldFQUFCQVVTVVJCVkY2K2ZBbGRYVjA0T2pvaU5U -VVZPM2Z1aEtXbHBlaENXWkh5cFh0OGxOdzZIenAwQ0FNSERzU2VQWHVRCmxaV0ZsU3RYd3Q3ZS9v -MzUzd2NQSG1ETGxpM28yTEVqUER3ODRPYm1Kbks3VzdkdXJaWS9OMVlWTlpGRFBYYnNHSm8yYlNw -enQxS1oKbDQxZHZYcFY1bDFBaXhjdmhwV1ZGZjc3N3o5Y3UzWU4vZnIxcTNUdmhCTW5UdUQ4K2ZQ -aVZRRkRodzdGM2J0M2taV1ZoVzdkdXFGZAp1M1pWRHFoSGp4NUZ4NDRkRVI4ZmowR0RCa0ZaV1Zr -OFZEMTM3aHhtenB5Smt5ZFBWbWtkVlJVYUdncC9mMzhVRmhaaTZOQ2hzTFcxClJXaG9LQXdNRE5D -b1VhTXlVNTBQSHo2RXNyS3lHSU9TazVPRGVmUG13Y0hCQVVGQlFkWHlhb1dTaS9MTm16ZXhkT2xT -akJzM0RuWjIKZHVMN21UTm5pbmY2QStVZktWN1ZNUmF2bnN0dWJtNm9YNzgrMXF4WkE2RDRycTNr -clplbHZkUHBZMVJqNlpyTm16ZWpkKy9lMkxwMQpLOXEzYjQrQWdBQThmZm9VUTRjT3hTKy8vSUlS -STBhVSsycitKa0ZCUVpnNmRTb3NMQ3h3NE1BQjVPZm40L0Rod3hnNGNLQjQ0Rm5XCjIrYUE0cHgw -Ly83OTBhMWJON1JwMDZiU2RhbE9OWmxEbGU1cVZobDVlWG5vMEtFRE5EVTFFUllXaHFLaUl0eTVj -MGM4ZEJ3MWFwUjQKM1c1NXZIcHhhOUdpQlg3NzdUZjA2dFVMWGw1ZVdMWnNHWUtDZ3VEbTV2YmFF -UDJLcktPb3FFZ0VwaFVyVmlBc0xBekhqaDFEejU0OQpNVy9lUE5TdlgxOE1oSkgrdTdzMU5SaEdl -ajB2WDc3RXJsMjcwS3RYTDZ4ZXZSb3hNVEd3c3JMQy9mdjNFUjRlam1IRGhyMzFKV2MrClBqNm9Y -NysrR05XWmw1ZUhxVk9ud3NuSnFkSWRIa3BJMzNXbHBLUWdJeU1EaXhZdFF1L2V2V1hlSDJSdmJ5 -OUdzNWRuUDFaMWpJVjAKdmFSN04rM2N1Uk9xcXFveWYrczFKaWJtbzg3QnY2cEdnbngyZHJhNEJW -cXlaQW5NemMxbCtrUy9lUEdpU2kydzI3ZHZvMnZYcmpoMQo2aFI4Zkh6UW9VTUhlSHA2QWlnK29m -djM3NDk3OSs2VjYyUktTa3FDbDVjWDlQVDBxcjNyV0VYVmRBNjFSR1dDMTdWcjF4QWRIWTJBCmdB -Qm9hbXBpeFlvVk10K25wYVdKWTF5ZUFGbld4VzNYcmwzUTB0S0NrWkVSVnE5ZWpjNmRPNWU3eTEx -cHBQT3VUNTgreFlnUkkwU1oKMnRyYU1vUEthcEwwZm9pUGp4ZkJKek16RTRNSEQ4YXZ2LzZLWHIx -NmlkUmtlZE9kaHc0ZGdwYVdsbmkvVDM1K2ZwVjcwVWpidUhFagp1blhyaHBjdlgrTCsvZnRZdEdn -UlpzNmNLVjdkQWJ4OW5JbTBxb3l4a1A3czR1SUNHeHNiV0ZsWmlUdkNIVHQyUUUxTlRhWnU4dVNk -CkJQbFhjL0RwNmVtd3RyYUdsWlVWaGc4ZkxnN1EzMy8vTGJvd1ZzU3JCL0xxMWFzWVBueTRtQllS -RVlGV3JWcmh5cFVyWW5oelJWWDEKN1hyVnFTWnlxRlVSRmhZR2RYVjFXRmhZWU9iTW1manh4eC9S -cEVrVDhiQzdvc3B6Y2ZQMTlZV1NraElPSFRwVXBkWm5ZV0VoQ2dvSwowTEpsUzFoWldZbnBFeWRP -eEI5Ly9JRXpaODVnd29RSmxUcFBxOU9mZi80SlUxTlRkTzNhRlRObXpFQlFVQkFLQ3d2aDYrdUwz -cjE3Cm8zbno1c2pKeWFuUUJmcllzV1A0L3Z2dnhXQ2Y2bkwyN0ZuMDd0MWIvRlVzb1BqOU5FdVhM -b1d0cmEzb3hWSWVWUjFqSWIwLzl1N2QKQzBORFF4UVdGcUpEaHc3bzFxMmJhQXh1M3J3Wk9qbzYx -ZmJuRmo4azc3UWwvK0RCQTdIelBUMDk4ZFZYWDRtVXpQYnQyOUd1WGJ0SwozUmFWSExoTGx5NGhP -enNiU1VsSm1EeDVNczZkT3lkeStnc1hMc1NGQ3hmZXVOekhwQ1p5cUZWeDhlSkY5TzNiVitTQkwx -NjhpSTBiCk4yTFdyRmxRVWxMQ3dvVUxLMTMyMnk1dSsvYnRxL1RGcmVSY0tMbVlaMlJrUUZOVEV6 -WTJOZ0NLODc4VEowNlU2Y2Rma3lrYTZhRDEKOU9sVDhZcVBodzhmWXZ2MjdaZzZkYXBvZVpkMDk2 -eU1vS0NnYW04ZytQajRZTjI2ZFFBZ014QXRNVEVScTFldkx2ZTcvS3M2eGtKNgpIN3E2dXNMS3ln -cDM3OTZGaDRjSFRFMU40ZXpzREZWVlZmRjJ5dEwrdnZISHJscUQvT1hMbDBXWHViLysrZ3M5ZXZS -QXYzNzlFQndjCmpQVDBkRGc3TzZOOSsvYVlQbjA2K3Zmdlg2Vy9ZUmtZR0FnbEpTV0VoNGVqcUtn -SVM1Y3VoWU9EQTFhc1dBRmZYMTkwN3R6NW8rLzYKVk9KZDVsQ3JLaWdvQ0xWcTFjS01HVE5FM2R6 -YzNMQm16UnJFeDhkWE9vMVVFeGUzYTlldVllZk9uU0pBWm1WbFFVVkZSWXowQlNBYQpJVFhaUUhp -MXMwSklTQWkwdGJWRnV1cng0OGY0OGNjZnEvem5GcXZEbTFyUWdZR0JhTmV1bmN5ZjU5dThlZlAv -YSsvZVk1cTgzamlBCmYvbWg0b0tvdU0zYndpUkNFUU15V0JRRlFmRkNUVkN4eUNXeWhRaFVpWXUz -Q0ZNQkoxN0luUEZDWXJ3UXZLQWlSQWdpREZSb3A4YkwKd21RYUk4alNnVkZEVEV6eEVzVWxsa2px -ZDMrd3ZqK3FabUo1YXdzN256K2hQVGx0ejN2T2U1NXp6dk5LMTJwM3lIbkdvcXFxaXQ5KworeTFi -V2xwb01CaVluSndzaFhkTVQwanJxeDA4S1dNbmJ6UWFxZEZvcUZRcXVXSERCc2JHeHJLMXRaVTVP -VGxNU1VtUnBrVk5UVTFzCmFtcnFVZnp2MmJObmpJbUplV3ZhVjFaV3h1M2J0M1A5K3ZWU0h2Uyt3 -dG94MUo0b0x5L25wNTkrS3YzR0dvM0c3RUhKbG5hUTFoamMKVEhVeEdvMnNxcXFpU3FWaVVWR1Ix -TkZYVjFmVHdjR0JLMWFzTUh1OUxXYUJWNjllWlZCUUVNbk9aR2VKaVluU1h2THM3R3pwKzdhVgpy -dC9KaFFzWFdGaFl5RC8rK0lQUG56OW5ibTR1SXlJaVdGbFp5WUtDQXZyNCtIUTdGNDJjWnl3ZVBI -aEFOemMzenAwN2wyVG5XWnJRCjBGQ21wYVd4cEtTRTRlSGhmV3FSOVYxazZlVDFlcjMwQTY1ZnY1 -NkJnWUVNRHcrWC9sOVFVTUNsUzVjeU56Zlg0Z05GcGg5U3A5T3gKc2JHUktTa3AwbWhzQ3RHWXB0 -NldKcnF5ZDlhS29jcmg5T25UZEhKeW9sS3BaRXhNekFlbEt2ZzNjZzF1WGR0Q1UxTVRNekl5Mk5I -Ugp3Yk5uenpJK1BwNEZCUVZzYTJ2ajc3Ly96dlQwZExPVXdCOUwxN3Zpa3BJU1RwczJUVnJYdUhQ -bkRyZHMyVUl2THk5dTNicFYydVpwCkQ0NGZQODZwVTZkeTllclZqSXVMWTJabUptdHJhM244K0hI -R3hzWnkzYnAxM2U3ZzVUNWpRWGEyVFJjWEYybVhYWE56TStQaTRyaGcKd1lJZVJSTjZDMWs2ZVZP -MnhjVEVSSWFGaGJHd3NKRGUzdDdjdFd1WDlKcERodzV4MWFwVkZrMkx1aDVhbWpGakJ1L2N1Y09a -TTJlYQpIZno0NVpkZnVIejVjck5IOXZWRjFvaWh5cVd5c3BMKy92NVNQRmF1VTU1eURHNm1lbWkx -V3FyVmFpb1VDbVpuWjdPOXZaM1YxZFZjCnNXSUZvNk9qT1hic1dHbUdhS3NiQklQQndPYm1abzRm -UC82dGZQNWFyWllYTGx5d1NtYkk3bnJ6ZThuSXlPQ3RXN2RJZHVhTCt1R0gKSDZSQnZyMjl2ZHZY -b3pYUFdGUlVWTkRYMTVmRnhjWFNaL2pRTXptOWxXemhtdFRVVkE0YU5FaGEvVDU3OWl3akl5UE5k -bGowSk81MQovZnAxcmx1M2pybTV1U1E3QjVZcFU2WXdLU21KK2ZuNTlQZjNOMHRPSmRoR1RVME52 -L2ppQzU0NmRVcldjdVVZM0JvYkcrbnQ3YzJxCnFpcG1aV1V4S1NtSkd6WnNvTUZnNEY5Ly9jVWJO -MjZZSFlmL1dINzk5VmVlUEhtU1pPY1d2OGpJU0dabFpYSE5talVjT1hLa0ZMYXcKQjNxOVhsbzRO -ZVhGVDBoSWtGSlJrNTBwU3hJVEV6L29PNVQ3ak1XNzJQTk0ySm9jTjIvZXZCa3k4UER3d0ZkZmZZ -WDkrL2ZEMWRVVgpVVkZSVUNnVTJMNTlPejc1NUJQNCtmbGg0TUNCRnBkZlZsYUdJMGVPNExQUFBr -TklTQWhHalJvRmxVb0ZuVTRIVjFkWExGNjhHRXFsCkVpVGg0T0FneDBjU0xPRHA2UWxmWDEvNCtQ -akExZFZWdG5JOVBEd3diTml3RDNvUFNRQ1Eya05MU3d1ZVBIbUN0TFEwekpneEEwYWoKRVFVRkJk -RHI5UWdJQ0lCQ29jQ0lFU1BlZXArMU5UUTBJRFUxRlM5ZXZNRE5temV4ZGV0V3ZIejVFczdPem5q -MTZoWE9uVHNIdlY2UApXYk5tZlpUNi9KdjYrbm9zWDc0Y09wME9odzhmUm1KaUlpWlBuZ3lOUmdP -ZFRvZlEwRkRjdlhzWHJhMnRtRDE3Tmh3ZEhkOWJaa05ECkE1NDllNGJBd0VCb3RWcTR1TGhnMnJS -cGNIVjFSVWhJQ0ZRcUZWUXFGWHg5Zlh2MDJ5Z1VDcWx0Zm1oYjZ0WGtIalZNMlJiUG5EbkQKaW9v -SzZjbEtIOHAwRi9EdzRVTXB4bDVhV3Nxd3NEQmV2bno1bmZ2WSsxb01YdWdaVTF1NGZmczJmL3Z0 -Tjk2OGVaTUtoY0pzdlNBdQpMbzVMbHk1bFJrYUdUUjhHb2RGb09HSENCRVpFUkpEc0RIT1kwaWhv -dFZvR0J3ZmJkS0c5YThobDJiSmw3TisvUDZ1cnEwbDJMcFRXCjF0WXlMQ3lNc2JHeERBOFA3L2Jw -ZGJuUFdBaHZjeUQvR1JwbGRQSGlSV1JtWm1MSWtDSFl2WHMzZkgxOUxTcW5wcVlHQnc0Y1FIQncK -TU83ZnY0LzkrL2RqMzc1OU9ILytQTkxTMGhBYUdvcCsvZnJKWEh1aEw2bXBxVUYyZGpZQ0F3UHg0 -c1VMakJrekJ2WDE5WmcrZlRvQwpBZ0tRbXBxS3RXdlg0dkxseS9qODg4K3hjZVBHYnQxOVdrTmxa -U1VXTFZxRXZMdzhKQ1FrQUFBV0xseUkzYnQzNDhzdnY3Ulp2ZGhsCmRweWJtNHZXMWxhMHQ3Zmoz -TGx6eU0vUHg4U0pFNlhYdHJXMWdTU0dEaDM2M25McjZ1cVFsWldGMWF0WEl5SWlBblYxZGFpcnE4 -UEQKaHc5UlZGU0U1T1JrYk5teXhXcWY2ei9EV3FOSFQ3TXR0clMwVUtWUzhlN2R1OHpNekdSUVVK -Q1VYUzRuSjRjelo4NjB5VEZ6b2ZjdwpHQXhNVDArbndXQmdTVWtKQXdJQ2VPL2VQWjQvZjU1S3Ba -TGZmZmVkOU56UDJ0cGFpMDVHeTgzMExPQ1ZLMWRLQndiZmw0dm1Zemx5CjVBZ25UcHdvN1hENThj -Y2Y2ZWZueCtibVpyTlU0ZDFsclRNV2dqbWJQK1BWNU0xUXk0TUhEM2owNkZHV2xwWnkwcVJKMHFL -YktTMm8KSmZubWhmK1c5dloycHFTa2NNbVNKUXdKQ1pIYVVFTkRBeHNiRzgyeUg5cFRtSys4dkp6 -OSt2VmpkSFMwUmFGT2Eram82S0JhcmVhWgpNMmY0K1BGakZoWVdNaWNuaDRHQmdVeE9UcVpTcWJR -b2Y1QzF6bGdJLzJlVmNJMGwrTStVOFBidDIzajY5Q2tjSFIyeGJOa3lkSFIwCm9MR3hFUU1HRE1D -VksxZXdZOGNPSER4NEVLTkhqelo3bnlDOFMzbDVPVEl6TS9IVFR6OUJwVkxoMHFWTFVLdlZPSFhx -RkFJQ0FnRFkKWnh1NmRPa1MzTjNkNGU3dWJ1dXFTSXFMaTdGdDJ6YTR1Ym5CdzhNRG8wYU5Rdi8r -L2ZITk45L0EyZGtaUTRZTXNhamM4dkp5eE1mSApZL3IwNlJnOGVEQVNFaElRR1JrcGMrMy91K3lp -a3pkZFpOZXVYVU5TVWhMOC9mM2g1dVlHblU2SDY5ZXZJejA5SFM0dUx0aTdkeTgyCmJkcUVxS2dv -VzFkWjZDWGEydHFRbDVlSHNySXlUSmt5QmZYMTlmaisrKzh4Yjk0OFcxZXQxekVhamZqenp6L2g3 -dTRPWjJkbkZCVVYKNGVlZmY4YUpFeWZnNU9UVW83S3JxcXFRbFpXRmhJUUVwS2FtNHZYcjEzQndj -TEM3d2JjM3NvdE9IbmozSXN5MWE5ZWcxK3ZSMGRFQgpUMDlQK1BuNUlUZzQrS052Y1JONnYrYm1a -clMydG1MNDhPRVlOMjZjYUVNOVlEUWFjZlRvVWVUazVLQzB0QlErUGo2eWxLdlJhS0JXCnE3Rm56 -eDVFUjBmTFVxWUEyTTNXbExhMk5seThlQkYrZm42SWlJakExMTkvalZ1M2JzSEp5UW5idG0yVExr -WnhjUXFXOFBMeWdwZVgKbDluZlJCdXl6S3RYcitEbzZJaXlzaktNSHo5ZXRuTG56Sm1EL1B4OGVI -cDZ5bGFtWUVkMzhnQlFVVkdCSlV1V1lPZk9uVWhLU29KVwpxOFd4WThlUWw1ZUhRWU1HaVl0U0VP -eUVQYTVqQ085bU4zZnlBS0JTcVVBUzhmSHhLQzR1bGhaaFhGeGNiRjAxUVJDNkVCMTg3L0UvClcx -ZmdUVkZSVVNndExjV2pSNDhRRkJTRXlNaEl2SDc5R25ZMDRSQUVRZWcxN09wTzNtVCsvUGtZTUdB -QTFHbzF4b3daSXhaaEJFRVEKTEdSWE1mazNhYlZhZUhwNll1ellzYmF1aWlBSVFxOWsxNTI4SUFp -QzBETjJGNU1YQkVFUTVDTTZlVUVRaEQ1TWRQS0NJQWg5bU9qawpCVUVRK2pEUnlRdUNJUFJob3BN -WEJFSG93LzRHQlBIMWRPSE9GK01BQUFBQVNVVk9SSzVDWUlJPQo= - - - - - - plot_word_histogram(sorted_wf, 1.0, "Frequencies for entire word list") - - python - 8 - 0 - - - pyout - &lt;matplotlib.axes.AxesSubplot at 0x3371e50&gt; - 8 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVlNQUFBRUxDQVlBQUFBN2grcW5BQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYdGNs -RlgrQi9EUDRCMkVVQUZ2M1BJdTBxSXBZcUtDNUJZVlZvYUpibDdTCm9oWmxLOU90TFUyZzdWZXBa -VGMzKzFrbXE5YTZtVnIrNkpkYTZJaTRPa2JvcmdybURZUVFFQVJ5UUc0eTM5OGY4L05SRkdXRWVa -Z1oKNXZOK3ZYaU56Mkhtbk84Y2VjMTN6blBPOHh5TmlBaUlpTWl1T1ZnNkFDSWlzandtQXlJaVlq -SWdJaUltQXlJaUFwTUJFUkdCeVlDSQppTUJrUUJhVWs1TURaMmRubUh0MTg2NWR1ekJ1M0RnNE96 -dmozLy8rdDFuck5nZG5aMmRrWjJkYk9vemJFaDhmanhrelpqVDRPNjFXCkN5OHZMK1hZMzk4ZktT -a3BMUlVhbVFtVGdRM3c5ZldGbzZNam5KMmQ0ZXpzREJjWEZ4UVVGRmc2ckdiejl2YUdYcStIUnFN -eGE3MXYKdnZrbTVzeVpBNzFlajRDQUFMUFdmYnRDUTBPeFpzMmFlbVY2dlI2K3ZyNldDYWlKYnVm -LzZPalJveGczYnR3dG41T2RuUTBIQndjWQpESWJtaGtabXdtUmdBelFhRFpLU2txRFg2NkhYNjNI -eDRrWDA2TkdqM25NdVg3NXNvZWlzaTRoZzM3NTlDQTRPYnRMcnpmM2hkTHVKCnpobytIT3ZxNmxx -c0xWN3phajJZREd5WWc0TUQxcTFiaDJIRGhtSFFvRUVBZ1AvODV6LzQ0eC8vQ0c5dmJ5eFlzQUE1 -T1RuSzg4K2UKUFl0bm5ua0dQWHIwUUhSME5LWlBuNDdYWG5zTkFKQ1ltSWl4WThmZVVQK1pNMmNB -R0pQTlYxOTloYkN3TUF3ZE9oUnIxcXhCVFUwTgpBT05wQWs5UFQ2eGV2UnA5K3ZSQmNIQXd2di8r -ZTZXZW1wb2EvT01mLzhDRUNSUGc2dXFLc1dQSG9ycTYrb1p2aDVXVmxWaXpaZzFHCmpoeUpNV1BH -WU5PbVRjcUhSWDUrUHA1NDRnbjA2dFVMN3U3dW1EcDE2ZzM5VVYxZERXZG5aMVJYVjJQWXNHSG8z -NzgvQUNBdkx3K0wKRnkrR3I2OHZacytlalVPSERpbXZlZkxKSnpGLy9ueE1tVElGM2JwMWcxYXJ2 -YUhlVzhXVm1KaUlNV1BHNFBYWFgwZnYzcjBSSGg2TwovZnYzQXdBV0xWcUV2WHYzSWpZMkZzN096 -bmp1dWVkdTZOZUcyaTh0TGNYNzc3K1BJVU9HNElFSEhzRE9uVHNiL1AvUHlzcENseTVkCmxPUG82 -R2gwNzk1ZE9aNHhZd1krK09BREFFQkpTUW1XTGwySy92MzdZL0xreWRpelo0L3l2UGo0ZUV5Yk5n -MHhNVEhvMmJNbi92NzMKdjZPNHVCZ3Z2ZlFTZXZUb2djaklTSlNYbHpjWVEwTjhmWDJ4YTljdUFF -QkdSZ1llZSt3eGVIaDRvRWVQSGxpNGNDRUFLQ01IVjFkWApPRHM3UTZmVG1Wdy9xVVRJNnZuNitz -cVBQLzU0UTdsR281R3hZOGZLNGNPSHBhcXFTb3FMaTZWTGx5N3l6VGZmeUcrLy9TWnZ2dm1tCmpC -NDlXbm4rOE9IRFpjR0NCVkpVVkNUTGx5K1g5dTNieTJ1dnZTWWlJbXZYcnBVeFk4YmNVUC9wMDZk -RlJPU0REejZRc0xBd09YcjAKcUp3NmRVcENRME5sOWVyVklpS3llL2R1YWRldW5jVEV4TWo1OCtm -bDAwOC9GVTlQVDZXZUZTdFd5TWlSSTJYUG5qMVNWMWNuKy9mdgpsK3JxYXNuS3loS05SaU4xZFhV -aUlqSi8vbnlaT25XcVpHVmx5ZUhEaDhYZjMxOTI3dHdwSWlJTEZ5NlVQLy81ejNMcDBpV3BycTZX -CmZmdjIzYlMvcm8xYlJHVGN1SEVTR3hzcjU4K2ZselZyMW9pTGk0dFVWbGFLaU1pc1diUEV5Y2xK -dnZ6eVM2bXRyWldxcXFvYjZydFYKWEd2WHJwWDI3ZHRMUWtLQ2xKU1VTRnhjWEwxK0RBME5sVFZy -MXR3MHZvYmFuelJwa2p6MzNITlNVRkFnS1NrcDBxdFhMemw1OG1TRAo3OVhiMjF2UzA5TkZSR1RB -Z0FIU3QyOWZ5Y3pNVkg1MytQQmhFUkdaT1hPbVRKa3lSWEp6YzJYejVzM1N0V3RYeWNyS0VoR1J1 -TGc0CmFkZXVuWHo0NFlkU1dWa3BsWldWRWhrWktkT25UNWY4L0h4SlRFd1VKeWNubVRGalJvTXg3 -TjY5dTk3L3Q2K3ZyeVFuSjR1SXlPVEoKaytYRER6K1VtcG9hcWFpb2tBTUhEb2lJU0haMmRyMy9l -N0k4SmdNYjRPUGpJNTA3ZHhaWFYxZHhkWFdWU1pNbWlZanhRMlhkdW5YSwo4MWF2WGkzUjBkSEs4 -ZVhMbDhYRHcwTUtDd3Vsb0tCQU9uYnNxSHdJaW9oNGVYbVpuQXhHang1ZDd3TjQ2OWF0OHVDREQ0 -cUk4Y09nClRaczJVbFJVSkNJaXRiVzEwcmx6WnpsKy9MaUlpSXdjT1ZLMmJ0MTZ3L3U2TmhrWURB -Yng5ZldWbkp3YzVmZnZ2ZmVlekowN1YwUkUKWG56eFJaaytmYnBrWjJjMzJsL1h4bDFVVkNTZE9u -V1M4dkp5NWZmQndjR3laY3NXRVRGK0dJZUZoZDIwcnNiaVdydDJyWFRwMGtYNQpVRHQzN3B5MGE5 -ZE9hUzgwTkZRKysreXptOFozZmZzWEwxNlVuajE3eXFWTGw1U3lGMTU0UVpZdFc5WmdmRE5tekpB -VksxWklmbjYrCkRCdzRVRjUrK1dYNTVKTlA1TXlaTStMcTZpb2l4citEYnQyNnlTKy8vS0s4N29r -bm5wQVZLMWFJaURFWjlPblRSL2xkYlcydDNISEgKSGZVUzZ0aXhZNXVVREI1NzdERlp1SENoRkJR -VTFIdk45VjhFeVBMYVducGtRbzNUYURUNDl0dHZFUllXZHNQdmdvS0NsSC8vK09PUApTRXBLd3Fa -Tm01U3kydHBhcEtTa29FT0hEdWpYcng4NmR1eW8vTzd1dSs4MnFmMktpZ3JzMzc4ZkR6MzBrRklt -SXZYT2gvZnMyUk51CmJtNEFnTFp0MjhMTnpRMTVlWG53OVBSRVdscGFvK2Z3ang4L2pweWNIUHp1 -ZDc5VHlnd0dBKzY4ODA0QXdLdXZ2b3AzM25rSDk5eHoKRDN4OWZmSFNTeS9oMFVjZmJUVDJBd2NP -b0UrZlBuQnljbExLUm93WWdkVFVWRXlhTkFrYWphWmVIOTV1WEFBd1pNZ1FPRGc0S1AxdworZkps -RkJZV29rK2ZQZ0J1UFc5d2ZmdXBxYWtvS2lwQ3IxNjlsTEs2dWpxTUh6OGVmLzd6bjI5NGZVaElD -TFp0MndaUFQwK01HemNPCklTRWhXTDkrUFRwMjdLaWM5c3ZNekVSMWRUVUdEQmlndkc3NDhPSFl1 -M2N2NXMrZkQ2RCszMUZtWmlZTUJvTVNQMkQ4VzdsdzRjSk4KMzhmTnZQZmVlMWk2ZENuOC9mMHhm -UGh3dlBMS0t3Z0pDYm50ZWtoOW5ET3djVzNiWHMzbllXRmhtRGx6SmtwTFM1V2Y4dkp5VEo0OApH -WUdCZ1RoMTZoUXFLeXVWNTZlbnB5di83dDI3TndvTEM1WGphOCtyT3prNUlTZ29DRHQyN0ZEcUxT -c3JRMmxwYWFQeE9UazVJVEF3CkVLbXBxYmQ4M3NDQkErSHA2WW1NakF5bGpkOSsrdzJIRHg4R0FI -VHIxZzF2dmZVV3pwMDdoeVZMbHVDSko1NHdxZjFSbzBiaHpKa3oKcUtpb1VNcCsrdW1uZXZNamJk -cTBhWEpjalduVHBrMmprOExYdG4vUFBmZkEzZDBkaFlXRlNuc1hMMTdFdDk5KzIrQnJRMEpDc0hm -dgpYbWkxV29TR2htTE1tREhZdDI4Zjl1elpnOURRVUFEQW9FR0QwS0ZEQi96eXl5L0s2OUxTMHVx -dCtMazJoa0dEQnNIQndRR25UNTlXCnluNysrZWNtcmZyeTl2YkczLzcyTnhRVUZHREtsQ21ZTm0w -YURBYUQwcDV3QXRscU1CbTBJbEZSVWRpeVpRdSsrZVliVkZSVW9LS2kKQXQ5OTl4M0t5OHZSbzBj -UERCa3lCSEZ4Y1NncUtzS0tGU3ZxZmZpUEdUTUd1Ym01MkxsekozSnpjN0ZzMmJKNmRjK1lNUU5M -bGl4Qgplbm82REFZRDh2THlianF4ZWIycFU2ZGkyYkpsU0UxTlJWMWRIZmJ2MzY5TVBsL2g0T0NB -cUtnb3ZQenl5OG8zMDlPblR5dnIxVGR0CjJvUmZmLzBWQm9NQlRrNU9jSEp5dXVXSCtCVnVibTRJ -REF6RXE2KytpdlBuenlNeE1SSEhqaDNEL2ZmZkQ2RHhENlBHNG1yTThPSEQKY2VqUW9adTJjMzI1 -cTZzcnhvd1pnMWRmZlJWbno1NUZYVjBkamg0OWlyUzB0QVpmZjJXMHQySERCb1NFaE1EWjJSa2VI -aDdZdkhtego4ZzI4YmR1MmVPaWhoeEFYRjRlOHZEeDg4ODAzMkw1OSswMUhWdTNhdGNPRUNST1Fr -SkNBZ29JQ2JOaXd3ZVRrZDcwTkd6YWdxS2dJCklnSW5KeWQwN3R3WkFPRHA2UWtQRDQrYnZpOXFl -VXdHTnV6NmIycXVycTdZc1dNSGR1L2VqUUVEQnFCLy8vNVl0MjZkOHZ0Tm16YWgKcEtRRS92NytP -SDc4T0taTW1hSjhHSFhxMUFtclY2L0d3b1VMY2YvOTkyUHExS24xNm8rT2pzYWNPWE93Wk1rU2RP -M2FGYi8vL2U5eAo0c1NKbThaeXJibHo1MkxldkhsWXRHZ1J1blhyaGxkZWVVVnA5OXJYeGNmSFkv -ejQ4WWlKaVVIWHJsM3grT09QSzlkVHBLV2xZZFNvClVlalNwUXZpNCtPeGF0VXF1TGk0bU5Rdlgz -enhCUndkSFJFWUdBaXRWb3ZrNUdSMDZ0UkplVzVqMzNodkZWZERyNy8yZVByMDZUaDEKNmhUYzNk -M3h3Z3N2TkJqcjlhLy81Sk5QNE9Qamc4bVRKOFBkM1IzUFBQTU1MbDY4ZU5QNFFrTkQ0ZWJtaHQ2 -OWV5dkhRUDNUZ0N0VwpyRUJBUUFCQ1FrS3didDA2Yk5xMFNibldvYUVZUHY3NFkzaDRlR0RvMEtI -WXVuVXJZbUppYnRsSE4rdkRIVHQyd04vZkg5MjdkOGVHCkRSdXdldlZxT0RnNFFLUFI0TFhYWHNO -VFR6MkZMbDI2NE9EQmc3ZXNuOVNuRVk3VDdOYnMyYlBoNmVtSnYvNzFyNVlPaFlnc2pDTUQKTzhi -dkFVUjBoU3JKNE5peFk5aTNiNThhVlpNWm1YS0toSWpzZzlsUEUxMjZkQW56NXMxRDU4NmQ4ZEZI -SDVtemFpSWlVb25aUndiTApsaTFyY0tLTWlJaXNsOG5KSUNjbkJ4a1pHVGVVWjJkbksydTRVMU5U -VVZ0Yml3c1hMcUM0dUJoNnZkNThrUklSa1dwTXVnSTVNREFRCkJRVUZjSFYxeFpFalJ3QVliejcy -OE1NUG83Q3dFR2ZQbnNXNmRlc3dZTUFBREJnd0FFZVBIbFdTZ2JPenM2cHZnSWlJbXMra1pKQ2MK -bkl6UzBsSkVSRVFvWlRxZERvNk9qa2hQVDBkbVppYWVmZlpaN04yN0Z3TUdESUJlcjBmUG5qM3JY -VkpQUkVUV3k2Ums0T0xpZ3BLUwprbnBsT3AwT1lXRmgwR2cwOFBQelEzNStQdXJxNnRDbVRSczRP -enZqOGNjZnYyV2RYTVZDUk5RMGFpd0xiL0lFY2xwYUdnWVBIcXdjCisvajQ0T2pSbzdkVmh4anZt -bXIzUDNGeGNSYVB3VnArMkJmc0MvYkZyWC9VMHVSazRPYm1WdTlHWVdWbFpYQjNkNyt0T3VMajR4 -dmMKVElTSWlPclRhcldJajQ5WHJmNG0zOEk2S0NoSVdWMWtNQmlnMSt0dmU0NUF6VGRHUk5TYWhJ -YUdJalEwRkFrSkNhclViMUl5S0NzcgpRMUZSa1hLZmRoY1hGNHdlUFJxdnYvNDY3cjMzWGlRbEpa -bDhiM3k2MFpVYml4SDc0bHJzaTZ2WUYrb3o2UXJrMk5oWTZIUTZhRFFhCmlBZ1dMbHlJcUtnb2JO -NjhHWjk5OWhrOFBUMnhiTm15ZXZ1eE50cXdSb080dURnbDJ4RVIwYzFwdFZwb3RWb2tKQ1NvTW5k -Z3NidVcKWGtrc1JFUmtPclUrTzNuWFVpSWlzbXd5NEdvaUlpTFRxTDJhaUtlSmlJaHNDRThURVJH -UmFwZ01pSWlJY3daRVJMYUFjd1pFUktUZwpuQUVSRWFtR3lZQ0lpRGhuUUVSa0N6aG5RRVJFQ3M0 -WkVCR1JhcGdNaUlpSXlZQ0lpSmdNaUlnSVhFMUVSR1FUdUpxSWlJZ1VYRTFFClJFU3FZVElnSWlJ -bUF5SWlZaklnSWlJd0dSQVJFYmkwbElqSUpuQnBLUkVSS2JpMGxJaUlWTU5rUUVSRVRBWkVSTVJr -UUVSa0ZubDUKUUdDZ3BhTm9PaVlESWlJektDNEdDZ3N0SFVYVE1Sa1FFWm1CQ05DMXE2V2phRG9t -QXlJaU16QVlBSTNHMGxFMEhaTUJFWkVaaUFBTwpOdnlKeWl1UWlZak1RTzJSQWE5QUppS3lBUWNQ -QXJHeHhrYzE4UXBrSWlJcnhqa0RJaUxpbkFFUkVYRmtRRVJFNE1pQWlJakFrUUVSCkVjRTRNbUF5 -SUNLeWN6eE5SRVJFTm4rYXFLMjVLOXkrZlR0KysrMDMzSHZ2dlhCemN6TjM5VVJFVm9ramcrdlUx -dGFpZS9mdW1ETm4KRHE4d0ppSzdZZXNqQTdNbmc3Q3dNTFJwMHdiZHVuV0R4cFo3aG9qb050ak55 -Q0FuSndjWkdSazNsR2RuWjZPaW9rSTUxdXYxT0h6NApNQURnOHVYTFpnaVJpTWo2MmNYSUlEQXdF -TUhCd1lpS2lsTEthbXBxRUI0ZWprbVRKc0hMeXd0SlNVbW9ycTVHKy9idE1XdldMTlRXCjFrS3Yx -NnNXT0JHUk5iSDFrWUZKRThqSnlja29MUzFGUkVTRVVxYlQ2ZURvNklqMDlIUmtabWJpMldlZlJX -aG9LRDc2NkNQVTFkVWgKTmpZV1hicDBVUzF3SWlKcll1c2pBNU9TZ1l1TEMwcEtTdXFWNlhRNmhJ -V0ZRYVBSd00vUEQvbjUrWEIwZEVSY1hKekpqVjk3Yis3UQowRkNFaG9hYS9Gb2lJbXVpMXNoQXE5 -VzJ5TDR2VFY1YW1wYVdodWpvYU9YWXg4Y0hSNDRjUVVCQWdNbDFxTGxSQXhGUlMxSnJaSEQ5CkYr -V0VoQVR6TjRKbXJDWnljM05EYVdtcGNseFdWZ1ozZDNlekJFVkVaR3ZzOW5ZVVFVRkJ5dW9pZzhF -QXZWNlBYcjE2M1ZZZDNQYVMKaUZvTHRTZVFyV0xieTdLeU1wdzhlUkl6Wjg2RVZxdUZpNHNMenAw -N2gvRHdjQ1FtSmlJcEtRbFpXVm5ZdUhHajZRMXoyMHNpYWtXMgpiQUhXcndlMmJsVzNIWXR1ZTds -NDhXTE1uVHNYenM3T2lJaUl3TFp0MjlDM2IxKzgvZmJiZU9PTk4xQmNYSXhWcTFhWlBUZ2lJbHRo -CkYwdExWNjVjMldCNVpHUWtJaU1qbTl4NGZIdzhWeEVSVWF1Zzl0SlN0VmNWbVhTYVNKV0dlWnFJ -aUZxUnI3NEN2djdhK0tnbWk1NG0KSWlLaVc3UDFpODRzbWd5NG1vaUlXZ3U3V0Uya1NzTThUVVJF -cmNnWFh3RGZmUWQ4K2FXNjdmQTBFUkdSRmJQYmk4NklpT2dxVzE5YQp5amtESWlJemFJbWxwWnd6 -SUNLeWNvbUpnRlpyZkZRVDV3eUlpS3dZbDVZU0VSSG5ESnFEY3daRTFGcHd6cUNwRFhQT2dJaGFr -ZFdyCmdiUTA0Nk9hT0dkQVJHVEZPR2RBUkVTNGJwdDRtOE5rUUVSa0JtM2JHa2NIdG9ySmdJaklE -S3FxZ0I0OUxCMUYwM0UxRVJHUkdWUlYKQVIwN3FsYy9WeE1SRWRtQUJRdUFYcjJNajJyaWFpSWlJ -aXVtOXNoQWJVd0dSRVJtd0dSQVJFUk1Ca1JFeEdSQVJFUUFxcXVaREpxTQpTMHVKcUxYNDlWZWdm -WHYxNnVmU1VpSWlHOUN2SDdCeEl6QmloTHJ0Y0drcEVaRVZLeThIZXZlMmRCUk54NUVCRVZFemlR -QWRPaGdUCmdwcW5pZ0NPRElpSXJKWmViMHdHYWljQ05URVpFQkUxVTA0TzRPbHA2U2lhaDhtQWlL -aVpMbHdBM04wdEhVWHpNQmtRRVRYVGhRdEEKdDI2V2pxSjVtQXlJaUpxSnlhQ1plTkVaRWJVR3Vi -bEF6NTdxdHNHTHpvaUlyTnlzV1VCSUNEQm5qdnB0Y1drcEVaR1Z5c2dBdkx3cwpIVVh6Y0dSQVJO -UU1Ja0RidHNEcDA0Q3ZyL3J0Y1dSQVJHU0ZDZ3FBTGwxYUpoR29pY21BaUtnWkRoOEdoZzJ6ZEJU -TngyUkFSTlFNCk9UbTJQeW9BbUF5SWlKb2xKOGYySjQ4QkpnTWlvbVk1ZGNxNGw0R3RZeklnSW1x -RzNGekEyOXZTVVRRZmt3RVJVVFA4KzkrMmY4ZFMKd016WEdkVFYxV0gzN3QyNGRPa1NKa3lZQUVk -SHg1czN6T3NNaU1qRy9mWWI0T29LR0F5QVJ0TXliZHJFZFFiNStmbTRjT0VDMnJkdgpqNmVmZnRx -Y1ZSTVJXWjFEaDREQmcxc3VFYWpKck1uQTA5TVRVVkZSR0Q5K1BBd0dnem1ySmlLeU9xZE9BWDM3 -V2pvSzh6QTVHZVRrCjVDQWpJK09HOHV6c2JGUlVWQ2pIdGJXMWVQNzU1N0ZreVJMelJFaEVaS1Yr -K2FWMVhIQUdtSmdNQWdNREVSd2NqS2lvS0tXc3BxWUcKNGVIaG1EUnBFcnk4dkpDVWxJVGEybHJF -eE1SZzNyeDU4UFB6VXkxb0lpSnI4T09QcmVPQ004REVaSkNjbkl6VTFOUjZaVHFkRG82Twpqa2hQ -VDBkcWFpcVdMbDJLM054Y3RHdlhEaDkvL0RHZWUrNDVWUUltSXJJR2RYWEEyYlBBUXc5Wk9oTHph -R3ZLazF4Y1hGQlNVbEt2ClRLZlRJU3dzREJxTkJuNStmc2pQejRldnJ5OVdyVnBsY3VQWGJ0UVFH -aHFLME5CUWsxOUxSR1JKQnc0QXZYc0RIaDdxdHFQVmFsdGsKRXpDVGtrRkQwdExTRUIwZHJSejcr -UGpneUpFakNBZ0lNTGtPTlhmdElTSlMwM2ZmQVdQSHFyK1M2UG92eWdrSkNhcTAwK1RWUkc1dQpi -aWd0TFZXT3k4cks0Tzd1YnBhZ2lJaXMzWll0d0RYVHFEYXZ5Y2tnS0NoSVdWMWtNQmlnMSt2UnEx -ZXYyNnFEZXlBVGtTMDZlZEo0Cmc3cVJJMXV1VGF2WUE3bXNyQXduVDU3RXpKa3pvZFZxNGVMaWdu -UG56aUU4UEJ5SmlZbElTa3BDVmxZV05tN2NhSHJEdkFLWmlHelUKNHNWQVhoNndkbTNMdDYzV1o2 -ZEp5U0EyTmhZNm5VNEpZdUhDaFlpS2lzTG16WnZ4MldlZndkUFRFOHVXTFVPWExsMU1iNWpKZ0lo -cwpsSXNMOE8yM3dQanhMZCsyUlpPQkdqUWFEZUxpNHJpS2lJaHNTbW9xTUdPR2NjOWpoeGE4MWVl -VlZVVUpDUW10THhsd1pFQkV0dWFWClY0Q3FLdUM5OXl6VHZrM2NxSTZJcUxWTFRXMDl0NkM0bGtX -VEFWY1RFWkV0dVhUSm1Bd2VmTERsMjdhSzFVU3FOTXpUUkVSa1k0NGYKQnlJaWpIY3J0UlNlSmlJ -aXNqQ3R0blhzYXRZUUpnTWlJaE45L1RVd1lZS2xvMUFINXd5SWlFeHcrVEtRbkd4Y1Ztb0puRE1n -SXJJQwpYMzBGTEZnQTVPWmFOZzdPR1JBUldkQm5ud0YvL0tPbG8xQVBSd1pFUkkzNDMvODFyaUlx -S3pQZWlzS1NXdVhJZ0hNR1JHUUxWcTRFCi92SVh5eVlDemhrUUVWbFFZaUl3ZXpadzVneHc1NTJX -anFhVmpneUlpS3pkRjE4WTcwZGtEWWxBVFJ3WkVCSGRSRjZlOFNLenZEemcKTnZmdVVrMnJ2SVUx -a3dFUldTc1JZTUFBb0UwYjQyMG9ySVZhbjUxdHpWN2piWWlQaitkK0JrUmtsZDU5MTNnUG9tUEhM -QjJKMFpYOQpETlRDa1FFUlVRT2NuSUFubndUKzlqZExSMUlmVHhNUkViV1EzRnpBMnh1b3JnYmF0 -N2QwTlBWeE5SRVJVUXY1KzkrQnNERHJTd1JxCjRzaUFpT2dhRlJWQTU4N0E1czNBWTQ5Wk9wb2Jj -V1JBUk5RQ1B2ckllRTJCTlNZQ05URVpFQkg5djRJQzR3Vm1jK1pZT3BLV3gzc1QKRVJFQk1CaUEr -KzRESEIyQlJZc3NIYzJOZUc4aUlxSVdrSllHQkFZQ1AvMEVqQmhoNldodWprdExpWWhVTkhVcTBM -WXRzR0dEcFNPNQp0Vlo1QlRJUmtUWDQ1aHZnbi84MDdsdGdyemd5SUNLN1ZsMXRuQ2VZT0JIWXVo -WFFhQ3dkMGExeGFTa1JrUXFXTERGT0hpY21XbjhpClVCT1RBUkhaclI5L0JKWXRBOTUvSDNCMXRY -UTBsc1hUUkVSa2w0NGVCY2FOQS96OWdSOStBRHAwc0hSRXB1RnFJaUlpTXlrb0FCNTgKRUNncUFs -SlNiR3NYTTY0bUlpSXlrLy82TCtESUVTQTUyYllTZ1pxNHVRMFIyWldTRW1EbFNtRDFhdU5wSWx2 -QnpXMklpTXlrdUJodwpkd2NHRFFJeU15MGRUZE53YVNrUlVUUHMzV3U4OTVDM3QrMG1BalZ4em9D -SVdqMnQxbmdkUWR1MjluMlY4YTN3TkJFUnRYcU9qc0RvCjBjQnp6d0VQUDJ6cGFKcUhTMHVKaUc3 -VHYvNEZUSmdBMU5RQTU4NEJIaDZXanFqNU9HZEFSSFFiZERwZ3l4Ymo3YWp6ODF0SElsQVQKNXd5 -SXFGVjY0QUZnNEVBZ090cTRnb2h1amNtQWlGcVY3NzhIMXE0MTNvMzB5eTk1VVptcGVKcUlpRnFW -blR1TnQ1bFl2eDd3OGJGMApOTGFESXdNaWFoWHk4b0RodzRIS1NtRHBVdUN4eHl3ZGtXMHhlekpJ -U1VuQm1UTm44T1NUVDVxN2FpS2ltN3B3d2ZqNDg4K0FyNjlGClE3RkpaajlOZFA3OGVYenh4UmZt -cnBhSXFFSFYxWUNURXhBU1lrd0MvZm9aTHk2ajIyUDJaREI1OG1TNDJ2c3VFVVRVWXFxcmdhb3EK -NE1RSllQZHVTMGRqdTB4T0JqazVPY2pJeUxpaFBEczdHeFVWRldZTmlvaW9NVTg5WlZ3Nk9tYU1j -WmN5ZDNlZ1V5ZExSMlc3VEJwTQpCUVlHb3FDZ0FLNnVyamh5NUFnQW9LYW1CZzgvL0RBS0N3dHg5 -dXhackZ1M0RoRVJFYW9HUzBSMHhROC9BRys5QmZqNWNjdEtjekJwClpKQ2NuSXpVMU5SNlpUcWRE -bzZPamtoUFQwZHFhaXFXTGwwS0FFaElTSUNibXh0aVltSnc2ZElsODBkTVJIYXJvQUJJU0FEaTQ0 -MnIKaG9ZTk0vN3dXb0xtTTJsazRPTGlncEtTa25wbE9wME9ZV0ZoMEdnMDhQUHpRMzUrUGd3R0Er -TGk0a3h1UEQ0K1h2azNON2tob3NicwoyMmRjTnZyU1M4QUxMOWhIRWxCN1U1c3JtanpubnBhV2h1 -am9hT1hZeDhjSFI0NGNRVUJBZ01sMVhKc01pSWdhVTFjSFJFUVlSd2IyCjR2b3Z5Z2tKQ2FxMDAr -VFZSRzV1YmlndExWV095OHJLNE00YmdCQ1JtZm40QU8zYkF5NHV3S3had0IxM1dEcWkxcW5KSTRP -Z29DQmwKZFpIQllJQmVyMGV2WHIxdXF3N3VnVXhFamJsd3diaHN0R3RYNDdHam8yWGpzUlNyMkFP -NXJLd01KMCtleE15Wk02SFZhdUhpNG9Kego1ODRoUER3Y2lZbUpTRXBLUWxaV0ZqWnUzR2g2dzl6 -UGdJZ2FVRlVGbEpWZFBSNDBDRGh6NW1veXNIY1czYzlnOGVMRm1EdDNMcHlkCm5SRVJFWUZ0Mjdh -aGI5KytlUHZ0dC9IR0cyK2d1TGdZcTFhdHV1M0c0K1BqVzJSaWhJaHN4K09QQXoxN0FrT0hHbis2 -ZGVQMUE0QngKWktEbVBDdDNPaU1pcS9MZ2cwQnNyUEdSYnNTZHpvaUlTRFZNQmtSa01WOS9EYmk1 -QWYzN1gvM1JhbzJyaDZobFdmVGVmbHhOUkdUZgpUcDhHeG84SDNuenphcG1EQTlDbmorVmlzbFpX -c1pwSWxZWTVaMEJrOTVZdUJVcEtqSTlrR3JVK08zblhieUpTMWVYTHhsM0lHbkxOCmRhdGtZVHhO -UkVTcVdya1NtRDhmOFBadStQZUxGclZzUExhS3A0bUl5S2J4VkpCNWNXa3BFUkdwaHNtQWlJZzRn -VXhFVFZkWkNVeWQKYXJ5MTlNMmNPZ1ZNbXRSeU1WSFRjQUtaaUpxc3RCVFl0ZzM0bi8rNTlmT0dE -MitaZUZvelRpQVRrZFU2ZHc0WU1jTDRTQzJERThoRQpSS1FhSmdNaUl1SUVNaEhWZCtvVWNQeTRh -Yys5Y0VIZFdLamxjQUtaaU9wNThVWGc0RUhqWElBcHBreFJOeDR5NGdReUViV29TWk9BCm1UTzVI -TlJhY1FLWmlJaFV3MlJBUkVSTUJrUkV4R1JBUkVUZzBsSWltM2Jnd00wM2pta3FjOWRIdG9GTFM0 -bHMySDMzQVhmZEJmVG8KWWI0NnZiMkJJVVBNVngrWkI1ZVdFdEZOK2ZnQUtTbkdSN0lQWEZwS1JF -U3FZVElnSWlJbUF5SWlZaklnSWlJd0dSQVJFWmdNaUlnSQpUQVpFUkFSZWdVeDBnNVFVWVBkdVMw -ZGhtckl5UzBkQXJRV3ZRQ2E2em4vL041Q1pDVXljYU9sSUd2Znl5MEN2WHBhT2dsb0NyMEFtCmFt -RXpad0lUSmhnZmlhd05yMEFtSWlMVk1Ca1FFUkdUQVJFUk1Sa1FFUkdZRElpSUNFd0dSRVFFSmdN -aUlnS1RBUkVSZ2NtQWlJaWcKUWpLb3JhM0Z6cDA3VVZOVFkrNnFpWWhJSldaUEJyTm56MFoxZFRX -bVQ1OXU3cXFKaUVnbFprMEd4Y1hGNk42OU95Wk9uSWk3N3JvTApXVmxaNXF5KzFWTHo1bE8yaG4x -eEZmdmlLdmFGK2t4T0JqazVPY2pJeUxpaFBEczdHeFVWRlFDQXlzcEtkT3pZRVFEZzZPaW9sTk90 -CjhRLzlLdmJGVmV5THE5Z1g2ak1wR1FRR0JpSTRPQmhSVVZGS1dVMU5EY0xEd3pGcDBpUjRlWGto -S1NrSlhsNWVPSDM2TlBMejg2SFQKNmVEdjc2OWE0RVJFWkQ0bTdXZVFuSnlNMHRKU1JFUkVLR1U2 -blE2T2pvNUlUMDlIWm1ZbW5uMzJXVVJFUk9EZGQ5L0Yrdlhyc1h6NQo4a2JydFlYN3hiZUVFeWVB -bjMrMmRCVFd3UnI2NHRBaDRMNzdMQnNEVVVzemVUK0Q3T3hzVEp3NEVVZU9IQUVBdlBQT08rallz -U05pClkyTUJBUDM2OWNPSkV5Zmc0R0RhbVNlTlJ0UEVrSW1JN0pzYSt4azBlYWV6dExRMFJFZEhL -OGMrUGo0NGN1UUlBZ0lDVEhvOU43WWgKSXJJZVRWNU41T2JtaHRMU1V1VzRyS3dNN3U3dVpnbUtp -SWhhVnBPVFFWQlFrTEs2eUdBd1FLL1hveGMzWXlVaXNra21KWU95c2pJVQpGUlhoOHVYTEtDd3NS -R1ZsSlVhUEhvMzE2OWRqMzc1OVdMUm9FZTYrKzI2VEdreEpTY0hnd1lQUnYzOS9mUFRSUjgwSzNs -cmw1dVppCi9QanhHREprQ0VKRFEvSGxsMThDQVBSNlBSNTU1QkY0ZTN2ajBVY2ZSWGw1dWZLYUR6 -LzhFUDM3OTRlZm54OVNVMU9WOHN6TVROeDkKOTkzbzA2Y1BGaTFhMU9MdnhSenE2dW93Yk5nd1RQ -ei9GUVAyMmc4QVVGRlJnVm16Wm1IQWdBSHc4L09EVHFlenkvNzQ5Tk5QTVhyMAphQXdmUGh3dnZQ -QUNBUHY2dTVnelp3NjZkKytPdSs2NlN5a3o1L3V2cmEzRlUwODlCUjhmSDRTR2hxS2dvS0R4b01R -RTgrYk5reEVqClJraGdZS0NNR0RGQ05tN2NLQ0lpWDMvOXRZU0hoOHZUVHo4dEpTVWxwbFFsUTRj -T2xUMTc5a2gyZHJZTUhEaFFpb3FLVEhxZExjblAKejVkRGh3NkppRWhSVVpIY2VlZWRjdkhpUlZt -NmRLbkV4c1pLVlZXVnpKczNUNVl2WHk0aUlvV0ZoVEp3NEVBNWUvYXNhTFZhR1RacwptRkxYQXcv -dVprWWpBQUFFaFVsRVFWUThJQnMzYnBUaTRtSUpEZzZXbjM3NnlTTHZxVG5lZmZkZCtjTWYvaUFU -SjA0VUViSGJmaEFSCldiQmdnU3hldkZncUt5dWx0clpXeXNySzdLNC9MbHk0SUw2K3ZsSmVYaTUx -ZFhYeXdBTVB5UGJ0MisycUgxSlNVaVE5UFYzOC9mMlYKTW5PKy8zLys4NThTR1JrcEZSVVY4dFpi -YjhtOGVmTWFqY21rWkdBdVpXVmxNblRvVU9YNFQzLzZreVFsSmJWa0NCWVJFUkVoeWNuSgpFaGta -cVNTSm4zLytXU1pQbml3aUl0dTJiWlBubjM5ZWVmN1FvVU5GcjllTGlFaWZQbjJVOG5mZmZWZFdy -bHpaZ3BFM1gyNXVydHg3Cjc3MnlhOWN1aVlpSUVCR3h5MzY0SWlBZ1FDNWR1bFN2ek43NjQ5S2xT -K0xqNHlONWVYbFNYbDR1SVNFaGN1REFBYnZyaDZ5c3JIckoKd0p6di84VVhYNVN0VzdlS2lESDVq -aGd4b3RGNFd2U3VwVC85OUJNR0RScWtIUHY1K2VIQWdRTXRHVUtMTzNYcUZJNGRPNGFSSTBmVwpl -LytEQmczQ3dZTUhBUml2MlJnOGVMRHltb0VEQjBLbjArSFVxVlB3OFBCUXltMnh2K2JQbjQvbHk1 -ZlhXM0pzai8wQUFMLysraXVxCnFxb1FFeE9Eb0tBZ0xGMjZGSldWbFhiWEg1MDZkY0txVmF2ZzYr -dUxIajE2SURnNEdFRkJRWGJYRDljejUvcy9lUEFnL1B6OEFBQmQKdTNaRllXRWhxcXVyYjlrK2Iy -R3RJcjFlajZpb0tMejMzbnZvM0xuemJTMm5iZWc2ak50NXZUVklTa3FDaDRjSGhnMGJWaTkyZSt1 -SApLNnFxcW5EaXhBbEVSa1pDcTlYaTJMRmorT3Fycit5dVA0cUtpaEFURTRPTWpBeGtaMmRqLy83 -OVNFcEtzcnQrdUo0NTN2K1ZjakdlCjlibXR1bHMwR1FRR0J1TDQ4ZVBLOGJGanh6QnExS2lXREtI -RjFOYldJakl5RWpObXpNQWpqendDd1BqK016TXpBUmduZmdJREF3SFUKWDVrRkFNZVBIMGRnWUNE -NjlldUh3c0pDcFR3akk4T20rdXRmLy9vWHRtM2JoanZ2dkJQVHBrM0RybDI3TUdQR0RMdnJoeXY2 -OWV1SApnUU1IWXVMRWllalVxUk9tVFp1RzdkdTMyMTEvSER4NEVLTkdqVUsvZnYzUXJWczNQUDc0 -NDlpN2Q2L2Q5Y1AxelBIK2c0S0NibmhOClNVa0p1bmZ2amc0ZE90eXkvUlpOQm5mY2NRY0E0NHFp -N094cy9QREREMHJ3clltSTRLbW5ub0svdjcreVVnSXcvZ2Q5L3ZubnFLeXMKeE9lZmY2Nzg0WTRj -T1JJN2R1eEFUazRPdEZvdEhCd2M0T3pzRE1BNFhOeTRjU09LaTR1eGRldFdtK3F2Tjk5OEU3bTV1 -Y2pLeXNMRwpqUnNSRmhhRzlldlgyMTAvWEt0Ly8vN1E2WFF3R0F6NDdydnZNR0hDQkx2cmo3Rmp4 -eUl0TFEwbEpTV29ycTdHOTk5L2ovdnV1OC91Cit1RjY1bnovUVVGQjJMQmhBeW9xS3JCNjlXclRr -dVR0VG5vMGwxYXJsVUdEQmtuZnZuM2xndzgrYU9ubVc4VGV2WHRGbzlGSVFFQ0EKREIwNlZJWU9I -U3JmZi8rOVhMeDRVUjUrK0dIeDh2S1NSeDU1UkprRUVoRjUvLzMzcFcvZnZqSjQ4R0JKU1VsUnlv -OGRPeWJEaGcwVApYMTlmK2N0Zi9tS0p0Mk1XV3ExV1dVMWt6LzN3eXkrL1NGQlFrQVFFQk1pQ0JR -dWt2THpjTHZ0ajdkcTFNbTdjT0JreFlvUXNYcnhZCjZ1cnE3S29mcGs2ZEtqMTc5cFQyN2R1THA2 -ZW5mUDc1NTJaOS96VTFOVEo3OW16eDh2S1NrSkFReWMvUGJ6UW1rKzlOUkVSRXJSY24Ka0ltSWlN -bUFpSWlZRElpSUNFd0dSRVFFSmdNaUlnS1RBUkVSQWZnL2ZIUitKMkhkelZzQUFBQUFTVVZPUks1 -Q1lJST0K - - - - - - plot_graph(wgraph) - python - 9 - 0 - - - display_data - aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWQ4QUFBRXZDQVlBQUFBRWtzdEJBQUFBQkhOQ1NWUUlD -QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6c25YZDhG -TlhheDc4elc5TXJDVDJoSXpVSWdTczFkQVVFQks1S1I2OVlVT0crCnlNc0ZMSWg0QWRHcnlLc29L -Z29xaUNERmk0b1VJVkpFcW5TVVhxVWtFRkozczJYTys4ZGtKMW1TQUlLRTR2bCtQdEhkbVRPbjdU -Qy8KT2M5NXpuTVVJWVJBSXBGSUpCSkppYUhlN0FwSUpCS0pSUEpYUTRxdlJDS1JTQ1FsakJSZmlV -UWlrVWhLR0NtK0VvbEVJcEdVTUZKOApKUktKUkNJcFlhVDRTaVFTaVVSU3dranh2UVY0K2VXWDZk -Ky9mNG1WZC9Ub1VWUlZSZE8wRzVKL1NiZm5SdlBVVTAveDZxdXYzdXhxCjNQSU1HalNJRjE5ODhX -WlhReUs1TFpEaWV3M0V4OGNUR3h0TFRrNk9jZXlqano2aWRldlcxNVNmb2loL1Z0VnVDZTYwOXJ6 -MzNudTgKOE1JTE43c2ExODJORmtkRlVlNjQzMTVTY3Z6Vlh0NmsrRjRqbXFieDl0dHYzK3hxbERo -ZXIvZW1sZTN4ZUc1YTJaS3JROGJzdVhxSwp1cC9sUGY3WFFZcnZOYUFvQ2lOR2pPQ05OOTRnUFQy -OXlEVDc5KzluNk5DaFZLeFlrV0hEaG5IZ3dBSGpYRXBLQ2lOSGpxUjA2ZEwwCjdObVRyS3dzdjJz -UEhUckV5SkVqaVl1TFkvRGd3ZXpkdTdmWXVxU21wdkxtbTI5U3QyNWRvcU9qZWZiWlo0MXovLzN2 -ZjJuZnZqMTEKNjlibC9mZmY5eHVwRitUQ2hRdTg5dHByVkt0V2pWNjlldkhqano4YTUxNSsrV1Y2 -OSs3TlUwODlSWmt5WlpnMWExYWg2NituUFFXdgpmZUNCQnhneFlvUmhzdmFaeCtmUG4wK2RPblZv -Mzc0OUFPdldyYU52Mzc1VXFsU0pjZVBHa1pxYWF1UjMrdlJweG84ZlQ5V3FWWG5vCm9ZZll1SEZq -c1gxM0taTW1UU0loSVlHd3NERHExYXRuMUxQZ0cvbjk5OTlQU0VpSThXY3ltZmowMDAvL2NOa3Vs -NHN2dnZpQ2R1M2EKRVI0ZVRvc1dMWEE2blFCczI3YU5RWU1HRVI4Zno0c3Z2c2p2di85dVhLZXFL -b2NQSHphK0Y2eGJjbkl5NWN1WDU0TVBQcUJ5NWNvMAphOWFNcFV1WEF2REJCeDh3Wjg0Y0prK2VU -RWhJQ04yNmRidXFQdG01Y3lkUFB2a2tGU3RXNUxubm51UDQ4ZVBHdVdQSGp2SDQ0NDlUCnVuUnBC -ZzhlWEVnNHZ2dnVPeG8zYmt5TkdqV1lOMitlWDkwOUhnL3o1czJqVFpzMkpDUWtNR1BHREZ3dTEx -WFZDV0QxNnRYMDY5ZVAKeU1oSWF0ZXV6UysvL0FMQXFWT25lT0dGRjRpUGorZVJSeDR4amhmSDVl -NTlJUVJMbGl5aGUvZnVoSWVIMDZoUkkwNmVQQW5BaVJNbgpHRGR1SEZXclZxVjA2ZEpNbWpRSktE -eDZTMDVPcGtLRkNzYjMrUGg0cGsyYlJ0T21UUWtQRCtmUW9VTi8rQjVYVlpYWnMyZVRrSkJBCjFh -cFZlZXV0dDY2cWI5TFMwcGd5WlFxMWE5Zm12dnZ1WS9ueTVjWDJ5KzF5Zjk3V0NNa2ZKajQrWHF4 -Y3VWTDA2TkZEdlBEQ0MwSUkKSVQ3ODhFT1JsSlJrcEltTGl4T3Z2dnFxU0UxTkZSTW5UaFR4OGZI -R3VaNDllNHArL2ZxSjA2ZFBpNWt6WjRxZ29DRFJ2MzkvSVlRUQpIbzlIeE1URWlFOCsrVVJrWkdT -SVdiTm1pZkxseXhkYmw2NWR1NHIrL2Z1TEF3Y09pTnpjWExGdTNUb2hoQkNyVnEwU0ZTdFdGQ3RX -CnJCRDc5KzhYYmR1MkZXUEhqaFZDQ0hIa3lCR2hLSXJ3ZXIxQ0NDRUdEQmdnSG56d1FYSGl4QW14 -WU1FQ0VSa1pLWTRjT1NLRUVHTHMKMkxIQ1lyR0lxVk9uQ29mRElSd09oNWc0Y2FMbzBxWExuOUtl -bmoxN2lnRURCb2pUcDArTHp6NzdUQVFIQnh2WCt1clp2WHQzY2VqUQpJZUYwT3NXT0hUdEUrZkxs -eFlvVks4U0ZDeGZFczg4K0svcjA2V1BrMTZCQkF6Rmh3Z1NSbHBZbXZ2bm1HeEVSRVNFeU16T3Yr -SnZ1CjNyMWIxS2hSUTV3NmRVb0lJY1N2di80cVRwOCtMWVFRWXRDZ1FlTEZGMThzZE0xMzMzMG55 -cFVySjA2ZVBGbHMyVmxaV1VJSUlXYlAKbmkzcTFhdG5YUHZtbTIrS3hvMGJpeDkvL0ZGNHZWNnhZ -Y01Ha1p1Yks3S3pzMFZ3Y0xENDhNTVB4Ymx6NThUUW9VTkZxMWF0ak9zVQpSUkdIRGgweXZoZXMy -K3JWcTRYRlloRlBQZldVT0hmdW5Qand3dy85K3JxNGRoUkhhbXFxaUlpSUVJc1hMeGJwNmVsaXdv -UUpvbW5UCnBzYjVoZzBiaXVlZWUwNmtwS1NJMTE5L1hWaXRWaVAvWGJ0Mmllam9hUEhOTjkrSXc0 -Y1BpeTVkdWdoVlZZMjZ2LzMyMjZKTm16WmkKOSs3ZDR1REJneUlwS1VsODhNRUhSdDdoNGVGaS9m -cjFSZFpyMjdadElpWW1Sc3laTTBlNFhDNXg4T0JCY2V6WU1TR0VFQzFidGhUUApQUE9NT0hmdW5K -Z3hZNFlJRFEwVk9UazV4YmJ4Y3ZmK3dvVUxSYlZxMWNTU0pVdUUxK3NWTzNic0VPZlBueGRDQ0ZH -dlhqMHhmUGh3CmNlclVLWkdabVNrMmJ0eFlaQit2WHIzYTd6ZUlqNDhYdFdyVkVtdldyQkZPcC9P -YTduRkZVVVNiTm0zRXZuMzd4TmF0VzBWSVNJZzQKZVBEZ0Zmdm1nUWNlRUVPSERoVm56cHdSYTlh -c0VXWExsaFVIRGh3b3NsOXVoL3Z6ZGtlSzd6VVFIeDh2ZnZqaEI3Rjc5MjRSRmhZbQpVbEpTL01S -MzI3WnRva3laTW43WGxDdFhUdnp5eXkvQzdYYUxzTEF3dnh1MFJZc1dodUFzWDc1Y3RHL2YzdS9h -aElRRXNXblRwa0wxCnVIanhvZ2dNREJTcHFhbUZ6ZzBkT2xTTUhqM2ErTDVpeFFyajRWOVFmRDBl -ajRpS2loSy8vZmFia2JadjM3N2l6VGZmRkVMbzRsdTUKY3VWaSsrSjYybk9sYTMzMVhMTm1qWEYr -ekpneDR0Ly8vcmZ4UFRVMVZVUkhSd3VQeHlQMjc5OHZhdFNvNFZkVzkrN2R4Yng1ODRxdAp2NDhk -TzNhSXVMZzRrWnljYkx5VStCZzBhSkR4a3VYanQ5OStFekV4TVlaQS9OR3lHemR1TEJZdFdsVG8r -TUtGQzhVOTk5eGpmTS9PCnp2YjdqWXQ2dVBucXRucjFhbUV5bVVSS1Nvb1FRdjl0Z29PRHhhKy8v -bHBzT3k3SEJ4OThJQVlQSG14ODk3MUluVDE3VnB3NWMwYlkKN1hiaGNEaU04eFVxVkRBZW5xKzk5 -cHJ4T3dvaHhBOC8vT0JYOTZaTm0vcUo2NkpGaTBTblRwMnVxbDRqUjQ0VXc0WU5LM1E4SlNWRgpC -QVFFR0M4OFFnalJyRmt6c1hEaHdpTHp1ZEs5LytDREQ0cTMzbnFyMEhWNzkrNFZrWkdSaGU0VElR -cjNjVkhpKzhvcnJ4amYvK2c5CkxvUitEeXhZc01BNDM3RmpSL0hlZSs4SklZcnZtNHlNREZHbVRC -bS9GNUYvL3ZPZll2TGt5VVYxelcxeGY5N3VTTFB6ZFZDN2RtMjYKZE9uQ3BFbVQvQnhOMXE5Zno5 -MTMzKzJYdGxHalJxeGR1NVo5Ky9haGFScVZLMWMyempWbzBNRDR2SExsU3RhdVhVdEVSSVR4ZC9E -ZwpRZGFzV1ZPby9QWHIxeE1YRjBkVVZGU2hjei85OUJNTkd6WTB2amRzMkpCZHUzYVJtWm5wbDI3 -ZnZuM2s1dVpTdlhwMXY3UnIxNjQxCnZqZHAwcVRZUHJpZTloUjFiY09HRFF2Tkd4WXNmK1hLbFV5 -Y09OSElxMnJWcXVUazVMQjE2MVpXcmx6SmtTTkgvTXI2NFljZi9OcFMKSFBYcTFlUGYvLzQzbzBh -Tm9seTVjcnowMGt2Rm11blQwOVBwMXEwYi8vNzN2Mm5hdEtsUnI2c3RPenM3bXkxYnR0Q3NXYk5D -NTM3Ngo2U2UvZXljd01KQnExYXJ4MDA4L1hiRU5BR1hLbENFNk9ob0FzOWxNZEhRMHAwNmRNczcv -RVllb2xTdFhNbnYyYktNOTBkSFJaR2RuCnMyYk5Halp0MmtUVnFsV3gyKzFHK29MMTNyUnBrOTk5 -VVBCY2RuWTJHelpzb0hQbnprYmVnd1lOdXVvMkppY25GOWwzUC8vOE01VXIKVnlZb0tNZzQxcWhS -STlhdFd3Zm8vMTU5MHdYcjE2OHY5dDczcFMrdW5OV3JWOU9rU1JOVTlkb2VuMFg5ZTdxYWUzemJ0 -bTFHbW9TRQpCT056bVRKbEROTnZjWFZldDI0ZEtTa3BsQzFiMXNoM3hvd1pSbHNMY3J2Y243YzdV -bnl2azNIanh2SGhoeC82M1VETm1qWHorNGNDCnNIWHJWbHEwYUVITm1qVlJWWlZEaHc0WjV3cW1i -ZE9tRFVsSlNhU2xwUmwvbVptWlBQZmNjNFhLYnRxMEtjZU9IZVA4K2ZPRnpqVnIKMW93dFc3WVkz -N2RzMlVMZHVuVUpDUW54UzFlelprMXNOaHUvL2ZhYlg5cVdMVnNhMzAwbVU3SHR2NTcyK0s0dE9F -ZTBkZXZXUXY4QQp6V2F6WDM0dnZQQ0NYMzdaMmRrMGJ0eVlObTNhVUtWS0ZiOXpHUmtaVEowNnRk -ajZGNlJ2Mzc1czJMQ0JuMy8rbWVYTGwvUEpKNThVClNxTnBHbjM2OUtGdDI3WTg5dGhqZnZXNjJy -S0Rnb0pJVEV3czhzSFhyRmt6dG03ZGFuelB6czdtd0lFRGhzaVhMVnVXTTJmT0dPZTMKYmR0MjFR -OHNrOG4waDVhWHRXblRoZ0VEQnZpMUtTc3JpMTY5ZXBHWW1NakJnd2R4T0J4K2RmSFJ1SEZqdi9u -V2d1ZUNnb0pvMHFRSgp5NVl0TS9LOWVQRWlhV2xwVjFXdjFxMWJGOWwzZi92YjN6aDgrRERaMmRu -R3NjMmJOOU9pUlFzQTl1elpRMlptSnBtWm1UUnIxcXpZCmU5K1h2cmh5MnJScHc2Wk5tNHAwUGl4 -WHJoeG56NTQxdmhjMTUxendmaTdxV0hIM2VHSmlZcEg5VVpEaTZuelBQZmRRcWxRcHpwNDkKNjNk -L2Z2MzExNFhTM2k3MzUrMk9GTi9ycEVxVktqejAwRU4rbnM4TkdqVEFhclV5Y2VKRVVsTlRtVHg1 -TW1hem1ZU0VCQ3dXQyszYQp0V1BjdUhHY09YT0d6ei8vbk8zYnR4dlh0bXZYamwyN2R2SHBwNStT -bHBhRzAra2tPVG5aVDl4OWhJZUgwNzU5ZTRZUEg4N0Jnd2R4Ck9wM0dHMmkzYnQzNDRvc3ZXTFZx -RlFjUEh1VDExMS9uZ1FjZUtKU0gyV3ltYytmT2pCMDdsbE9uVHJGNDhXSysvLzU3dW5mdmZsWHQK -djU3MitLNGRQMzQ4WjgrZVpjNmNPWDdYRmtYLy92MlpQbjA2eTVjdngrVnlrWjZlenZ6NTh3R29V -YU1Hd2NIQnZQSEdHNXc1Y3dhMwoyODNtelp2NTlkZGZBWmc1Y3lhVktsVXFNdDh0Vzdhd2NlTkcz -RzQzQVFFQm1NMW00MFdsNEVqOCtlZWZKeWNuaHlsVHB2aGRmNld5CkwrWGhoeDltOHVUSnJGdTNE -cS9YeTRZTkczQzVYTFJ2MzU0OWUvYnc4Y2NmYys3Y09WNTQ0UVVTRXhNTjYwYmJ0bTM1NUpOUHVI -angKSWpObXpDZzIvNkpvMkxBaE8zZnU5SE9NR2pSb0VJODg4a2lSNlI5NjZDRVdMbHpJNHNXTHlj -N09KanM3bTIrLy9aYXNyQ3hLbHk1Tgo3ZHExR1R0MkxDa3BLYno1NXB0K290T3BVeWUrLy81N2xp -NWR5dEdqUnd1OWhQVHYzNStYWG5xSmJkdTJvV2thcDA2ZHVxd0QwS1Y5Ck4yL2VQT2JObTRmTDVl -TGd3WU1jUDM2YzZPaG9FaE1UR1RObURPZk9uV1BtekpuczJiT0hqaDA3RnBuUGxlNzloeDkrbU9u -VHA3TjAKNlZJOEhnODdkKzdrd29VTDFLeFprL0xseXpOcTFDaCsvLzEzTWpNejJiUnBFNkQvUGl0 -V3JPREFnUU5zMmJLbFNBZkZLM0c1ZTd3bwpoRDU5ZU5tK0NROFBwM256NW93Wk00Wmp4NDdoOVhy -WnZYdTMzd3Y2cFgxOEs5eWZkekpTZlA4RWZDYktnbTk0MzMvL1BhZE9uYUpCCmd3YWNPSEdDNzcv -LzNqZzNiZG8wWW1KaVNFaElZTkdpUlR6MTFGUEdPWlBKUkhKeU1yLzk5aHNOR3pha1lzV0svT2Mv -L3luMmpYREcKakJuVXFWT0hMbDI2VUtGQ0JlYk5td2RBVWxJU2I3MzFGaE1tVEtCNzkrNTA2OWFO -Ly8zZi96V3VLMWpYTjk5OGsvcjE2OU9xVlNzKwovZlJUNXMrZlQzeDh2Skh1MGpmWENSTW0wS2xU -cHorbFBkT21UU01xS29yNjlldnoxVmRmMGJkdlg4TEN3b3FzSjBDdFdyV1lOV3NXCjgrYk5vM3o1 -OHRTdFc1ZGx5NVlaNXhjdlhvemI3YVp0MjdhVUtWT0cwYU5IRzE2MEowNmNvSG56NWtYMlkwWkdC -bzgvL2ppUmtaRzAKYnQyYXhvMGIwNjlmdjBKOU1IZnVYRFp1M0VoRVJJUmh3dnppaXkrdVdQYnMy -Yk9wVTZlT1VkNlFJVU40K3VtbmVmNzU1NG1LaW1MMAo2TkZvbWtaUVVCQ3JWcTNpeHg5L0pERXhr -WUNBQUdiUG5tMWNOMnJVS0M1ZXZFak5talhadG0wYkR6LzhzRjg3TGpmSzZOcTFLNnFxClVxNWNP -WHIwNkhIRlBna1BEMmZac21Xc1hyMmE2dFdyVTYxYU5jT3pHMkQrL1BsY3VIQ0JPblhxOE91dnYv -TFFRdzhaNStyVXFjUEgKSDMvTTJMRmo2ZGl4bytHOUdob2FDc0Rnd1lONTlORkhlZW1sbDRpTWpL -UjkrL2JzMzcvZnVONW5HaTZLaElRRVpzK2V6Y0tGQzRtSgppYUZIang3R3FIbjI3TmtFQmdhU21K -aEljbkl5UC96d0F3RUJBY1gyeWVYdS9hNWR1L0xhYTYveHpqdnZFQlVWeGVEQmd3MlAzeVZMCmxo -QVFFRURUcGsycFhyMDZ5Y25KQURSdjNweCsvZnJSdG0xYmhnMGJ4dE5QUDMzRmtkOGZ2Y2N2VFYv -dy9yeGMzN3ovL3Z2RXhjWFIKcTFjdlNwVXF4ZU9QUDA1R1JrYVJkYnBWN3M4N0dVVmNPc0Vta2R4 -RUVoTVRHVDE2OUEzNXg5ZXhZMGVtVHAxS2pSbzEvdlM4YjBkYwpMaGNOR2pSZzU4NmRsNTFhK0RQ -NDl0dHZHVFZxRkx0MjdicWg1VWdrdHd0eTVDdTVxV3pac29WRGh3NlJuWjNOZSsrOXg2NWR1Mmpi -CnR1ME5LV3Zac21WU2VBdGd0VnJaczJmUERSUGVSWXNXa1p1Ynk3WnQyM2pqalRlS05mOUtKSDlG -cFBoS2JpcG56cHloZGV2V2xDMWIKbG5YcjFyRnMyVEkvczdQazl1V0REejRnSmlhR3ZuMzcwcVZM -RjU1Ly92bWJYU1dKNUpaQm1wMGxFb2xFSWlsaHJtdmsrK2lqanhJYgpHMHZkdW5XTFRUTjY5R2dx -VjY1TXc0WU4vNURubTBRaWtVZ2tkeXJYSmI2UFBQS0lueGZ2cFd6YXRJbTFhOWV5WmNzV1Jvd1l3 -WWdSCkk2Nm5PSWxFSXBGSTdnaXVTM3hidEdoQlJFUkVzZWMzYnR4SXIxNjlpSXlNcEhmdjN1emJ0 -Kzk2aXBOSUpCS0o1STdnaGpwY2JkcTAKaVZxMWFobmZTNVVxNVJjSlNTS1JTQ1NTdnlLRjQ1ejlp -UlNNdk9LanFFWFdmNlY0bmhLSlJDSzVzN2dXditVYk92SnQwcVJKb2IxYgpDd2JSTDRoUHFQOUtm -MlBIanIzcGRaRHRsdTJXYlpidGx1Mis5cjlyNVlhTDc0SUZDemgvL2p4ejVzemhycnZ1dXBIRlNT -UVNpVVJ5ClczQmRadWZldlh2ejQ0OC9rcHFhU29VS0ZSZzNiaHh1dHh1QUo1NTRnc2FORzlPOGVY -TWFOV3BFWkdRa24zLysrWjlTYVlsRUlwRkkKYm1ldVMzeDlBZVV2eDZSSms1ZzBhZEwxRkhQSGtw -U1VkTE9yY0ZPUTdmN3I4RmRzTThoMlM2N01MUkhoU2xHVTY3S2RTeVFTaVVSeQpNN2hXL1pLeG5T -VVNpVVFpS1dHaytFb2tFb2xFVXNKSThaVklKQktKcElTUjRpdVJTQ1FTU1FranhWY2lrVWdra2hK -R2lxOUVJcEZJCkpDV01GRitKUkNLUlNFb1lLYjRTaVVRaWtaUXdVbndsRW9sRUlpbGhwUGhLSkJL -SlJGTENTUEdWU0NRU2lhU0VrZUlya1Vna0Vra0oKSThWWElwRklKSklTUm9xdlJDS1JTQ1FsakJS -ZmlVUWlrVWhLR0NtK0VvbEVJcEdVTUZKOEpSS0pSQ0lwWWFUNFNpUVNpVVJTd2tqeApsVWdrRW9t -a2hKSGlLNUZJSkJKSkNTUEZWeUtSU0NTU0VrYUtyMFFpa1Vna0pZd1VYNGxFSXBGSVNoanp6YTZB -UkNMNWEzRHMyREYyCjdOaEJabVltQVFFQlZLeFlrYnZ2dmh0VmxXTUF5VjhQUlFnaGJub2xGSVZi -b0JvU2llUlBSdE0wa3BPVCtXcmVSeHc4c0lsN0dxcUUKQm50eHVsUjIvNnFRNjRtbDE5K2ZvR3Uz -N2dRSEI5L3M2a29rZjVocjFTOHB2aEtKNUlhUW01dkwySmRHY09Md1V2cjNVbWpUSWdTcgpOWCtV -SzRSZzV4NEhjNy9PNWJjakZYajcvejZqUW9VS043SEdFc2tmNTFyMVM5cDdKSkk3bEtTa0pGUlZw -VktsU2lWZXR0ZnJaY3pvCllRam5kM3c4SlpSNzI0YjVDUy9vRDYzNmRRS1orSHdFZmJxZTRxa25I -dVRjdVhQRjVoa2ZINCtxcXJSdTNmcEdWMThpdWVGSThaVkkKN25BVVJTbnhNcitjK3dWWkYxYnc2 -cWh3YkxZclAyWjZkUTJqeDcwcGpCczd2TmcwaXFJWWZ4TEo3WTRVWDRsRVVnaUh3M0hOVTBHYQpw -akh2eS9kNStoRWJGc3ZWQzJYL3Y0ZHg4TUJHamh3NVV1VDVJMGVPNFBWNldiVnExVFhWU3lLNWxa -RGlLNUg4QmRpOWV6ZnQyclVqClBEeWN4TVJFbGk5ZmJweFRWUlZWVlhua2tVZjQ2S09QU0VoSUlE -UTBsTXpNVE9QYUJ4NTRnUGo0ZUVKQ1FraE1UR1R5NU1sNHZWNEEKUEI0UHdjSEJxS3JLLy96UC83 -Qng0MGFDN09mbzFQc2dhc3hXWHB4NEN0RG5lQ09xYmtlTjJjcVRJNDRCOFBMazMxRmp0cUxHYkdY -SApuaHpPcDU2bVhyMjYzSGZmZlh6Ly9mZCtiU2pLN1B6eHh4L1Rva1VMU3BjdWpjMW1vMnpac3JS -cDA0WVZLMWI0WFZ2UUJMOTE2MVphCnQyNU5kSFEwZ3djUFpzK2VQWDkraDBza1YwTGNBdHdpMVpC -STdpaGF0V29sRkVVUm9hR2hJakl5VWlpS1l2eFpMQmF4YTljdUlZUXcKanNYR3hocWZWVlVWNmVu -cFl2WHExY0ppc2ZnZDkzM3UyTEdqVVZhN2R1MkVvaWppYjMvN20zaHQwamp4MXZnS1FsRVFpb0pv -MnpKRQppSlNHWXZmYVdrSlJFS3FLbURPOWtoQXBEY1hZL3kxanBJdUtOQWxGUVFCR0dYdjM3alhL -aUl1TEU0cWlpTmF0V3h2SEhucm9JYU5lCnZqL2Y5L1hyMXhmcWk4REFRQkVZR09qWEY3R3hzU1h3 -YTBqdVZLNVZ2K1RJVnlLNXc4bk16S1J6NTg0Y1BueVl0OTU2QzlCSHF3c1cKTFBCTGQrN2NPWjU0 -NGdtT0hUdkd2bjM3Q0F3TTVNa25uOFRqOFJBWUdNZ25uM3pDdm4zN3VPKysrd0JZdm53NTgrYk5B -NkJGaXhZQQpiTisrbmZPcHYzTTJ4UVdBb3NEbVg3TFJOTUg2VFZsR1dmYzBEdUpTcTNiNXNsWldM -NnBPbmRybGpXT1hqbUF2NVlrbm5tREhqaDJrCnBhV1JsWlhGcGsyYmlJcUtRZ2pCMjIrL1hTaTl3 -K0dnVTZkT0hEbHloQmRmZkJHQWxKUVVkdTdjZWNWK2xFaitUS1Q0U2lSM09JcWkKTUdIQ0JPTGo0 -eGsyYkJqeDhmRUFMRm15eEM5ZFdGZ1kwNlpObzBLRkNsU3ZYcDNVMUZUMjc5OFBRUFBtelJrNGND -RFZxMWZuK2VlZgpONjVKVGs0R29HWExsZ0M0WEM1U1VpK3k5emNuQVBkM0RDTXpTMlA3SGdmcjhz -UTN2b0tWY21Xc2VDOVIzMmNmaXlHaGJpQ2xvc09JCmpJd0VZUFhxMVpkdFcvbnk1WG50dGRlb1Y2 -K2VZVkkvZi80OEFJY09IU3F5THlaTm1rUmNYQndQUHZnZ29KdkRyMVNPUlBKbmMxM2kKdTJiTkd1 -NjY2eTZxVmF2Ry8vM2YveFU2NzNBNEdEaHdJQTBhTktCVnExWjgvZlhYMTFPY1JDSzVCc0xEd3ls -ZlBuODBXYTllUFVBZgpwVG9jRHVONGl4WXQvRHlKang4L2JueXVYNzkrb2VzQlRwdzRBVURqeG8w -eG0vV0FlV2tYSGV6WTR5QXEwc3lBaDZJQitHbHpGaHUzClpBUFEvRzk2TUEwaHdDZS9pZ0xOR2dk -ejlIZ3VwVXJGRUJnWUNFQjZldnBsMnpaczJERG16Sm5EOGVQSDhYZzhmdlcvY09GQ29mU2wKU3BX -aVNwVXFBQVFFQkJqSHIxU09SUEpuYzEzaU8yellNS1pQbjg3S2xTdDU5OTEzU1UxTjlUcy9hOVlz -Z29LQytPV1hYL2owMDA4WgpQbnk0REtZaGtaUXdGeTllNU9USms4YjNIVHQyQUpDUWtPQW5RTkhS -MFg3WHhjWEZHWiszYjk5ZTZIcUFpaFVyQXJxUU5XelVDQ0VFCmFSY3pPWDdLUmVPN2cyamFLQWlB -NzFha2MrQndMZ0RObXVSSHNpcjRPQWdNVUZtMDFFM25MZ091S3VUa2dRTUhES2VzSVVPR2NQYnMK -V2J4ZUwxV3JWaTMyR3Arb0F6S3NwZVNtY3MxM24rOU5zV1hMbHNURnhkR2hRd2MyYnR6b2x5WXNM -SXpNekV6Y2JqY1hMbHdnTURCUQpydEdUU0VvWUlRUXZ2UEFDUjQ4ZVpjcVVLUnc3cG5zYWQrM2E5 -YkxYeGNiR1VxTkdEUURXcjEvUFo1OTl4djc5KzVrNGNhS1Jwbm5MCmx1UjZCQTRQTkd1dW01N1hy -VjJERUJBYmJTWXkya3lsaWxhV3Jjb0E5Qkd1YitSN0tSbFpYcEkzcUhUdDF2MnEycFdXbG1aOERn -b0sKUWdqQmYvN3pIdzRlUEhoVjEwc2tONU5yRnQvTm16ZFRzMlpONDN1dFdyWDQrZWVmL2RMMDd0 -MGJyOWRMZEhRMHpaczNaL2JzMmRkZQpVNGxFY2syRWhJU3daTWtTS2xldXpQRGhlaEFMczlsTWp4 -NDlybmp0dEduVE1Kdk41T1RrTUhEZ1FHcldyTWwzMzMwSFFPdTI3ZWplCjQwRVVCZXhtU0dyWkhO -RFgrU3FLd3A3OU5sSlNQVFJwbE85Y1ZUckdRcFZLOWtMT1ZrTEEyeDlrMGJsTFg4TER3d3NjTDJ3 -cDh4MXIKM0xpeDhYTHcrdXV2RXhzYnkvang0NDBRbGRMS0pybVZ1YUc3R3IzenpqdVl6V1pPbno3 -TnJsMjc2Tnk1TThlT0hTdlMzUFB5eXk4YgpuNU9Ta2toS1NycVJWWk5JN25oODBhQ2lvcUpZc21R -Snc0WU5ZOXUyYlZTcFVvVUpFeVpRcDA0ZHY3UkYwYnAxYTdaczJjS0xMNzNFCmp1M2J1WERoQWxX -clZhZFhyMTZNR0RFQ2l6bi8ydWJObTZPcUtrSUlUQ1lUZlI5NW5pZi85dzBhMWJYbmxaRnZjaGJB -cFNWbWV4dngKN0xCUmZuVXZXSytpanMyZE81ZXBVNmV5Wk1rU2F0V3F4YVJKa3hnOWVqUW5UcHdv -OHRyaStra2l1VnFTazVNTlI4UHI0Wm8zVmtoUApUeWNwS1lsZmZ2a0ZnR2VmZlpaNzc3Mlh6cDA3 -RzJrZWZQQkIvdkdQZjlDeFkwY0FtalJwd3F4WnMveEd6Q0EzVnBCSWJqV0VFR2dDClBCcDRoUzZV -SmhWTUNxaEswWUtsQ1hDNk5YSmNHaVpWSVR2WHczOFhmY1dYbjd4Q1VsTXZQVHBicVZVakFDM3Zu -M3JxZVRmL1hack4Kb3U4VjZqVG96UE12VHNKbXN4TmdBWk1xQlZGeWUzQlRkalZxMEtBQmI3LzlO -aFVyVnVUZWUrOWwzYnAxZms0YjA2ZFBaOWV1WFV5ZApPcFdqUjQvU3NXTkhEaHc0OEtkVlhpS1Iv -SGxjaStENjhHcmc5R2c0WFJxS0FsbTVIcHh1amRLaE5ySXowMW0wZUNIZkxQb0l0eXVWCjRDQVR6 -bHhCVm82SnBIYTk2Tkt0RHhVclZjR2tRckROakNZVUtjQ1MyNGFiSXI0Ly92Z2pUejc1Skc2M202 -RkRoekowNkZDbVQ1OE8KNkl2ZjA5UFRlZW1sbDFpN2RpMmxTcFZpMkxCaGRPclU2VStydkVRaXVU -NnVSM0QxNi9WcjNSNE5wMGNESU5QcElkZWpFUmxrSWRCcQp4bWFHODFrZXJDWTRlKzRzcDFQU3NR -ZllLVk02aHVCQWZTU3NhUnFhZ0dDYml0bGt3cXNoQlZoeVd5RDM4NVZJSkZlRlQzQzllY0lKCllQ -NERndXRERStEMmdsZlRjTG8xQkpEaGNPUDJDa0x0SnNJQ3JKaFVBRUdHVThObVZqRXJHbWN6UFFB -RVdGV3NaaFdQcHRmSm0yZVAKamdveTQ5VVV2RUlLc09UV1IrN25LNUZJaXNVbmJpNnZ2aXdvVjk4 -VEFac0pBc3hnTlNtWTFLdmZycytyZ2F1ZzhBcEl6OUdGTjlobQpJakxJQ29ERkJMa2VnYXFRNTRp -Vi84aFIwQjljUHNIM2FXeUcwNHZOTERBcDRIQmppTEpFY2lkeFE3MmRKUkxKemFPNEVhN045TWRH -CnVQNTU2bm41VE1XNUhvRlhDTkp6M0dnQ0FxMHFzYUZXY2oxZ3pmT0V6dlZvV0V3cXFxSlFWSkUy -c3k2eWlxS0FFTGk5QW9kYkVHaFYKY0xyQjZZWUFpMENWSTJESkhZUVVYNG5rRHFLZzRIbzFmVW1Q -U2JrK3dmWGhNek9EUG9yTzlRamNYbzEwaHhzaElNQ2lVamJjaHR1agpsMlZTOUZHclJ3T2JXY0Zp -QXJYZzhwOENueFFFNUkxK05TSElkSHF4VzFUc0ZsMThIVktBSlhjWTB1d3NrZHptRkRRcE8vTk15 -a0tBCk5jK2tiRFAvTVpOeVVmak16S3FpajB4elBRS1hSeU05UnhkZXUwV2xYTGdOa1NmOCthTmUz -WHdNWURIbm01WUJOSFRuTHErQVFLdCsKUXNtYmR4WkF1a09mRzdaYjlHTU9OMmpTQkMyNVE1RGlL -NUhjaHBTRTRPcmw2S05kandZV1ZlQjBhN2k5QXFmYnE0OTRBYXRab1Z5NApEVVVCbDBjM2JmdEd1 -TGtlTGM5aFN1U1puUlcvdk0ycWtsZnYvT1A1MStybEtZcUMzYUlMc3hSZ3laMkNGRitKNURhaHBB -UTN2enpkCjFDd0FzeXJJZG1sNE5NaHhlY2gwNnFOU2kwbWhmTGdkazZvWTg4b1dVMzU5WFI1ZGRB -dWFtMzJqWDAwSXpIbGZkTTltdmU0aUwxL1EKbmE4MFRhQW8rdHBmUTREbDZnakpiWTZjODVWSWJt -R0VFQWp5MXVFV21NTzFtUFQvMzhqUWlJcWl2NTJyaXI1VVNCT1E1ZlRnMENkKwpNYXNLNVNOc21F -MEttaEM0dmZubVpnQ1hWNis3cXVRTE11Z2pXMDJJdkpHdmZzeWpRYUJGTmZJR2ZVNVlFN29BaHdl -YTh3Ulk0SENECnd3VUJWdUVuNm5jaVI0NGNZZmE4ci9odTdYcXlzck93MmV3azFxM05vTC8zSkRF -eFVZYkd2STJSNjN3bGtsdU00Z1RYRi95aXBCKzQKUGlldTB4ZHp5WEhydzF1VHFsQWh3b1kxVHox -ejNmcS9YNXNsdjI0WlRpKzViZzI3eFVTUVZUR2NwVTZsNWVMMkNrd3FWSWkwazVYcgp4U3NnMUtZ -R3d4cEpBQUFnQUVsRVFWVHFjOFNxbnI4Q1pPZHFaT1Y2aVFneVk4c3JTd2hkZ0lXQUFDdDNwQUJu -WjJjei9NV3hyTnErCkc2MTFOd0tiZDhBVUZvSG1kSkN6L1dmVTVmT0pOd3Vtdno2SlNwVXEzZXpx -L3FXUlFUWWtrdHVZVzAxd2k2cWZ4eXM0bnVZRUFlVWoKN1lZWWVqU0J5K056ak1xdlowcVdHMVZS -c0pwVWdtMzU1dkRURjNQSjlRaHNGb1V5WWJZOHMzSitXUVhicWdtQnBzR0ZIRGVsZ2kzRwp1VHRa -Z0hOeWNuaDQ4SlBzTFg4WFlZK09RTEZZL003LzFpZUpyRTFyTUVlV29rNzlCTDc2WUJwVnFsUzVT -YldWeUNBYkVza3RnS1pwClY1MVdIMUhteitFNlBicVlXQXJNNFpyL3hEbmNxK0gxMTE5bjhlTEZo -WTRyaW9MSnBCQVhhYWRjaE4xdkZPcjJVR2daa1VjVGVEVXcKS1VxaGw0ZXdRRE1WbzJ6RWhsZ1JR -bDgrVk5TT1JhRG5xZWFOaERPZEJVelNCZWVBWFhmV0hQRExyNzNPbnRMVkNIdDhWQ0hoTFlnYQpH -RVIyMzJFODhzL244SHE5eGFhVDNKcEk4WlZJcmhNaEJGOS8vVFg5K3ZYajdydnZKanM3KzdMcHRi -eEFFcmVDNEJiVXJPSERoL1BkCmQ5L1JxbFVyLy9ybXZWQ29pdTdRWmJma1B6WjhVN1RtUzU0a3VS -N2ZOV0EyK2JjbHdLTG1pZXJWdFZNQjdHYVZiSmVHMjV2L2NuTW4KQ3ZENTgrZFp2Q3FaMElILzlC -dmxleldCNXNncGxENDBxUk5uUXFKWnMyWk5TVmRWY3AxSThaVklycFA3NzcrZk1XUEcwTGx6WjFh -dgpYazFRVUZDaE5EN0JkYmgxMGRWdThnZ1hkT0gxRlhuMjdGa09IRGpBWjU5OVJrUkVCTWVQSCtm -UW9VTzRYQzVVVlRVRStGS1RzRWZ6CmQ3THk0Y29MS2Frb0NxWkxuakpYMjA2ZktVOVJGR3g1Z244 -eHgrdG40cnNaQXB5VWxJU3FxbFNxVkluMTY5ZHp6ejMzRUIwZFRlL2UKdmNuSXlHRFhybDEwNk5D -QjJOaFloZzhmenRHalJ3SHdlcjBNR2pTSTJyVnJFeEVSUVVCQUFOV3JWK2Z4eHgvbjk5OS9CMkRo -NHE5eAoxYnliN1FsaGJLMnFjdlROc1J4K2V6eDdPdFppWi9NS1JkWkh0T3ZKVTBPSG9hb3FxcXJ5 -MWx0dkFlRHhlSGo5OWRkcDFLZ1JvYUdoCnhNWEYwYjE3ZC9iczJXTmMyNmxUSjFSVkpUNCszaS9Q -T1hQbUdQbjlHWHZYU29wQTNBTGNJdFdRU0s2SlYxOTlWVHp6ekRQR2Q3ZmIKN1hkZTB6VGhjR3ZD -NmRhRTI2c0pUZE5LdW9xRnVMUUtXVmxaNHI3NzdoTS8vUENEV0xod29YamdnUWZFd0lFRFJhTkdq -Y1R4NDhlTAp1RjRUSHE4bW5LN0NiZEUwVFp4T2Q0blVUTGZJY0hqL2NIczFUUk9yVnEwU2ZmdjI5 -Yy96WXE3NC9XS3V5SFI2aXJ3bU8xY1RXYm1hCjhON2cvbTNWcXBWUUZFVUVCd2VMNE9CZ29TaUs4 -ZGUwYVZOUnFsUXB2Mk9OR3pjV1FnamhjRGlFb2loQ1ZWWGp6NWVtVHAwNnd1UHgKaUw1RG5oVnhV -NzRRS0lwQVVZUWFGV3Q4Tm9WRmlJYUhoQWh1MGtxZ0tNSmFvWkpvZUVpSU1zKytKQUNocXFxWU1H -R0NVYzhPSFRvWQorUmNzeTJxMWl1VGtaQ0dFRUxObnp6Yk9iOXEweWJpMmUvZnVRbEVVVWJGaXhS -dmFsM2NDMTZwZmN1UXJrVnduZmZ2MlpjR0NCWXdaCk00WUJBd1l3ZmZwMDB0UFQvZExZVERkdmhG -c1FJZnhIdkI5KytDSHIxcTBqS0NpSWZ2MzZzWG56WmhZc1dNQ29VYU9ZT1hNbTdkdTMKWi9EZ3dl -VG01dnJsbytURmFiWVVzVmpSNWRWSG55YTE4SHp2cGFTbXBoWTZwaWdLdFd2WFp2bnk1WDc3ZjRm -WTlmVkttVTR2bmtzQwpiUmdqWUVwdUhYQjJkamE5ZS9mbXdJRURKQ1ltQXJCaHd3WnExS2pCdm4z -NzZOKy9Qd0RidG0wakxTME5xOVhLM0xsek9YcjBLRGs1Ck9adzVjNGJKa3ljRHNHZlBIdVl0L3Bi -ZkwyVGd0UVVZWldnWHpoSDJ4QmhxYlRoTnRibnIvRGVaRUlLVUx6N2c5RHZqQVJnelpneWoKUjQ4 -R1lPN2N1YXhZc1FMUVI3Zjc5dTFqNXN5WkJBUUU0SGE3ZWVxcHB3RG8xcTBiUVVGQkNDSDQ2cXV2 -QU1qS3ltTFpzbVVBOU83ZAorMFoxMzE4ZUtiNFN5WFVTSHg5UDY5YXR5YzdPWnVqUW9TeGZ2cHhY -WDMzVkVPQ2lISWx1Qmo0OThsVmx6cHc1dlAzMjI1UXBVd2FBCkJnMGFzR0xGQ3ZidTNZdkw1UUpn -M0xoeDFLeFpFN2ZiWFNnL2hhSzlqSDNMamxRRlRLYkx0L3Z2Zi84N2UvZnVCV0Q3OXUxTW56NmQK -QVFNRzBLdFhMK3gyT3lrcEtVYmFRS3RxQk9oSWQzZ0tlWmdha2JBb0dRRldGSVZ4NDhaUnBVb1Z2 -M255SVVPR1VLTkdEWHIwNkFIbwo1dWJWeVQvaTBSUThYc0ZERC9lbVlzV0t4TWJHTW5Ma1NPTzZ3 -NGNQRXhrU2pPTE1uOXUxVnExRi9QQlhzRWJGRUZEdExoeHVyL0U3CnVsUE9jSHpzRUFBaXlwWmov -UGp4eG5VK1U3R2lLTHp3d2d0VXIxNmRBUU1HMEt4Wk13QisrKzAzVWxKU0NBb0tvbnYzN2dDRytI -NzcKN2JjNG5VNFVSYUZmdjM1L2NxOUpmTWdnR3hMSk5hQUpZV3lKQi9vSU1qQXdFSURKa3ljemJ0 -dzRzckt5Q0FzTHU0bTF6S2ZnOGlXQQpyNy8rbXBkZWVvbVZLMWNTSHgvUHhZc1h1ZXV1dTNqdnZm -Y1lQWG8wdTNidDR2ang0NnhhdFFvaEJNSEJ3WDc1WFNwOEJZL25lclJpCjUzc3ZwVktsU25UcjFv -MXk1Y3FSbHBaR3RXclZhTkdpQlNOR2pLQmV2WHFBN3ZDbHFpcENDTUlDektUbGVIQjVCQTYzUnFE -VjVKZWYKbWhlSXc2c1YySXpoQnIzNHhNVEVFQnRiR285WFlMZnJ2NzJpS054Vk40SHNYQTFMUUlp -Uk51WDhSUTRlUGNIQUFmME16K1NDRGxVQQpHUmZUYU5NNGtZM3JOaGpYaGQ3VEp2OXRDWEI1TldQ -VUwxdythNFJDdzdzYitkWHQrUEhqeHVmNjllc2JuK3ZWcThmS2xTdU5OS1ZLCmxhSmZ2MzdNbmoy -Ym8wZVBzbTNiTnViUG53OUEzYnAxcVZPbnpyVjNrT1N5eUpHdlJIS1Y1SHNwQzhOTDJZZFBlQUZp -WTJNNWN1U0kKMzdHYmhTODJzMXZ6clJmV2oxKzhlSkdNakF3Q0F3TTVkT2dRLy96blAybldyQm56 -NXMyalE0Y09SRVZGc1hmdlhvS0RnNWt4WThZbAplZVk3UWwyS1Y5TkRSZm9FcjZpQmIwSGh2dSsr -KzBoTFMyUGV2SGxzMzc2ZHI3NzZpbUhEaGhuQ2UvandZVlExL3pHbDczU2tmODl3CmVvdmM2OWNu -K2xhVHZpUFN0WXlBaFJCb21zQ2o1VzhrNFhScjVMajBTRjhBZG5zQTJTN2RpYTZnR1R6QVprZC8x -Y25INmZieTRRZnYKNC9WNk1adk56Rm13aENObk0vaDYyV29qamFvcUpMVy9EODh2K2VKckNvK2lZ -QmNLa1IrZTB4eFpDbnZsR2lBMGZscTFnbTNidGhucAo0dUxpak0vYnQyODNQdS9Zc2NQNFhMRmlS -UURhdFd0SFRFd01RZ2crL2ZSVGxpNWRDaUJIdlRjWUtiNFN5V1c0VkhDOWVTRVJBOHo0CmJXL25j -cmxZc1dJRi9mdjNwM1BuenZUdjM3L1FhTEdrRVVMZmlVaWd6emtYMU1xQkF3Y3ljZUpFRWhJU2FO -T21EVjI3ZHVYamp6L0cKNC9GdzZOQWhIbnp3UVY1OTlWV21USmx5U1o0aWI4NjQ2TkdrYjRtUnhY -VGwrVjZBTm0zYTBMWnRXMkppWWxBVUJZL0hnOXZ0TmthSAp6enp6REVlT0hOSExSdCtpTU5SdVFs -RWcyR3J5MnlXcElJcWlZRmIxTmp2ZC9vSXY4dFpYZS9PRTFaVW5yQTZYcGtmVWNtcGs1UXBkCldG -MENwMXRQNDlVdUxRTUNyQXFCRnZ6cWtlbnlrdUgwR3FFeWZYMlFkdUdDa2NZZUVzcVprOGQ0YTlL -cnhyRWpGN0pKODFxNHYwMlMKOFdhbktQZ0p1NzVWbzU2ZkdoaEViUCtuc2Roc09Cd09PbmZ1Ykho -V0p5VWxHVzJkTUdFQysvZnY1L1BQUDJmOSt2VUExS2hSZzFLbApTZ0ZnTXBsNCtPR0hBWmcyYlJv -T2h3T1R5VVNmUG4ySys5a2tmd0pTZkNXU1N5aEtjRTJLTHJqMllweW1yRllyeDQ0ZG8zNzkraXhj -CnVKQWhRNFpndVV5QWhCdU5WOU0zWGpDcFlGSHpoVmNYVC8xaC9vOS8vSU1qUjQ2d2ZmdDJldlRv -UVkwYU5SZzZkQ2k3ZHUzaTVNbVQKaGZJVWVXRW11WXllNW5vS3pQZGV4ZE1sS2lxS2Q5NTV4L2h1 -TnB1eFdDeUcrRmFzV0pGVnExWkJYckZlVFdCU0ZXSkNMQVRaMU11Swp1NklvMk0zNjc1bnRFbVFW -Rk5aY1FVNmVzT2JtQ2FzZ3I3L01DamF6UW9CRklkQ3FFR3hUQ0xHckJObFVmZk9IQXYxaFVrQlJG -V010CnN4RENHUFNxQmRLbDV1VFM0WUVIQVgwSlVJOE9yZmpiM1hVNGZDSy9uMHNIMjdrck5wVGVm -UWI0THNUcmNnRUNrWmRwc0MxL3BsREwKemlMbXArK1lOM2N1TnB1TnMyZlBjdDk5OTNIaHdnVWVl -dWdoMnJadEMraHp1RFZyMW1UQWdBRTRuVTRzRmd2dnZmZWVYMS8xN2R2WApxQnRBcTFhdEtGdTI3 -T1YvUE1sMUljVlhJaUV2VXRObEJOZGl1ckxUMUdPUFBjYUlFU09JalkwdG9Wb1hSZ2pRTkYxc2JT -YU0wWjkrCnJyQzUyR2F6RVJFUllYeWZOMjhld2NIQmhkcmdHL0Zxb3ZoUWpyNW9YWGs3OCtadEpW -aFVPdi92S1NrcHpKOC9uOHpNVEU2Y09NR2gKUTRld1dxMEFORzdjMkFnZ29TajY3eUJFNGUwSkww -ZkI3UXJOS29XRU5kaW1FR1JUQ2JUcUptMmJXY0ZxMWszWFFvRERyWkh1OEpDYQo1U1l0eCtNWGpV -dkoyN0hKVnhkRlVRZ05NR00xdzdrY2wzR3NiRmdnSFpOYTh1KzMzNmZXM1kwSmk0NmhhZWRlUFBy -Sy94bHBBaXdtCmpxVmxzeWNseDhnNzUrdlB5ZnI0RGJMMzdzQjE2aGplWS92eHBKNEJJYkM2bkh3 -OWN3YmR1M2ZuNDQ4L0JtRC8vdjEwNjlZTnA5UEoKMHFWTG1UaHhJZzBhTkNBa0pJUUtGU3JRdFd0 -WHRtN2RXaWlRU21KaUl0V3JWemZLbFNibkc0K003U3o1eXlMeWdrUjREVkhSQlZjWApySnZ2bmZ4 -SHVkU2IrWStTbnA1T2l4WXRXTFpzbWVFQm5aKzMvbEppTHlLZ2hnK25XK09pdzR0RlZiQ2EvZU01 -RjhUajFZd0lWd0JiCnRtemhqVGZlWVBmdTNiamRibHEwYU1ISmt5ZTVlUEVpdFdyVklqazVtY09I -RDE5Vkc5NTk5MTF5YzNNWlBueTQzM0ZOQ0J5dVBGT3gKcGJqNWF2MEZ6TzNWOXl4MmVZWFJwM2FM -U29oZE4zTmZ6b0ZMQ01GdktkbUUyQ3dFNXEzRE9wK2R5L0YwQjZmU0hiZ0sySzVOcWtLOQowbUhF -UndTaENjSEdFeGM0bGU2Z1c2MnltRldGMVlmUGtadWV4c2xmMXZEdG1yWGtPaDBFQjlocFZQc3Vl -blh2U2YyNnRmeGVMQ1EzCkI3bXhna1J5RlJRbnVDYjE4Zy9WV3gydlJwNkg4Ylhub1drYUowNmM4 -SFBXZ2Z4TkRHeG1paDNOQXFRN3ZMb0hza1hGcE9xanlZSjUKQ0FFYTRQRUlySmI4UFg1OTVRWUdC -aElZR01qUFAvL01oUXNYaUk2TzV1REJnK3pZc1lNMzNuZ0R1OTFlWkxsQ0NFTk1kK3pZd2NDQgpB -L242NjY4THRhT2dBTnZOK24zZ0UxbTNWeXMwcHd2NjhxWVFtejdIZkRVdlpFTG9wdXh6V1M1T3BP -ZHc0cUtESEhmaHVNdmhkZ3VOCnlrY1FZclBnMVFRckQ1N2xmSTZMKzJxVUppTEF5cDZ6Nld3L25V -NkxTbEZVQ0F0RVZRUVdrNGxnbSs3MW5lM1NMUXdGKzFoeWM1RGkKSzVFVWd4QUNyOUIzRExxVEJC -ZnlSN3NlemQvRWZQcjBhVEl5TXFoUm93YWFwdkhGRjE4d2I5NDhzck96YWRxMEthTkhqeVlnSUtE -NApqSTM4QmJtZVBETzJ1ZWkrOGprd3BlVjRFU2pZeldyZUNGSHY3d0xUb0lBdWdpRTIxYzloN1Zy -d2VEeVl6ZnJvOHZEaHc3aGNMbXJXCnJNblVxVk01ZWZLa0VjRENWMGUzVjVEajBzajFpR0k5b0JW -ME0zV2dUVFUyanloS2RKY3ZYMDVpWXFLZnlkNkgyNnN4ZTlzcHZNV1UKVVMwcW1GcXhvY1oreFJ1 -T3BYSXMzVUZpK1FpcVI0ZVFrcDNMOGdOblVSWG9WYWNjS0JBZVlNYXRRYkJWcjVQTG8wK1JCRm1M -Tis5TApTZ2E1cTVGRVVnQjloS3Mvb0J3ZVhaeE1pbTQyOWMzaDN1N0NDL2xpVzFCNG4zMzJXUm8y -YkVpelpzMXdPcDJvcXNxNWMrZm8zNzgvCjc3enpEcWRQbjJiNjlPbEdJSTNMNFh0aE1TbGMxak00 -eHdVMnN3bTdzZHVSdndPVHZjQThhNGhOd2VtKy9PNVBtcVlaRHpTdjExdG8KMTU0VEowNFlucjBB -cTFldnBtWExscHc2ZFlvTkd6WVlTMmZ5KzBsM2lzcjFhSDdDYTFiMWpSN0NBa3hFQjV1SkRiVVFH -V3pCYmpFVgpHUnhsMjdadHRHblRob2tUSnpKa3lCQWpNTVdsdTFsVml5NGMzOXR1Vm1rZUgwMmQw -bUVvNkY3TVI5T3lPWmJ1b0VKWUFOV2pROGoxCmVGbDkrQndBc2NGMnpDYVZJS3VKUy8zY0xIbkxt -MzNSeENTM0gxSjhKWGNNZnhYQnZSVGxFblB6UC83eEQ3WnYzMDYxYXRVNGZmbzAKb0h1ejl1clZp -NW8xYXpKbzBDQTJiZHJFbVRObi9QTHhlVUw3L25KY0dpNlB2dDdWNGM3M0RQYmtlUWFyaWk0Qytv -aFlrT1AyNHNrVApvVUNiNHVmQVpESHI0bWRTRlZSVkpjdnBSU3RpamE0UFZWWHhlRHljTzNlTzNi -dDM4KzY3N3hxZXVBQXJWcXhnMkxCaGZtMnVWcTBhCkw3NzRJcHFtMGE5ZnYwTENxUUNSZ1daQzdD -WWlBazJFMk13RTJTeUVCWmdJdEpxd21DN3ZQUTN3MDA4LzBheFpNMWF2WHMzamp6L08KakJrelNF -MU45VnVMYkRHcE5DZ1g1aWVXOFJFQmRLMVZodmhJT3lFMlBUUm5qc3ZMTDc5ZkpOaHFvbmw4TkVJ -SVZoNDhoenRQVUN1RQo2NVlKcTBrQjRTKytpcUpnTmVscnVPK0UzWnoraWtqeGxkelcvTlVFOTJx -ZXN3a0pDVVJIUjJPMzI0MGxRekV4TWNaSWQ4V0tGY1RGCnhSRWRIVjNvV3EvbUc5M21lMFpiemZx -SU5jam04dzdXUFlNRHJDbzJpNHJWck9ET2MwN1NsMkZkMlp6djlHaGtPTDJYTmRlcHFrcE0KVEF6 -MTY5Y25MUzJOSlV1V0dPY2VmZlJSbkU0bjMzNzdMV2ZPbk9HbGwxNmlRb1VLVEo4K25TKy8vSkxT -cFVzWHlrOVJGQ3htbFdDYgpDYnZGUktCTkZ6QW9PbUxYeVpNbmVlV1ZWNWc1Y3liSGpoM1Q2KzEw -RWhNVEEwRHIxcTNadm4wN2I3MzFGcG1abVg3WG1rMEs4WkdCCmhOcE1kS3dlUTh2SzBRVG5tYkl0 -WnBYd1FCTTJxejZIM3FGYWFWUkZZZE9KQzF4MDVvZnhyQlNoajU0dEprVTMyMS9TcFQ1bnF5S20K -bENXM0FWSjhKYmNkbHdxdTIzdG5DNjZQZ2hzaVhBbFZWU2xWcXBRaEdybTV1Vml0Vmc0ZVBNakdq -UnRwMGFJRmdZR0JmdVpTM1RTcgpDNm8rbWxXd21jbGJkcU1VdTd6SHQ4UUlRRUVwdExkdmtmVlRG -QzdtZURpVFhyenAyMlF5a1pLU3dxaFJvMWkxYXBVUnRNUW5sSysvCi9qcUxGeSttWThlTzJHdzI3 -cjMzWGo3NTVCTysvdnByeG80ZFMzSnlNak5tek9DWFgzNHB0ZzRtMVQvMnRoQUNwOVBKeElrVDZk -aXgKSStucDZlemZ2NS94NDhmamREcUppb3BpeTVZdGZQamhoOHlhTll0cTFhcHg4T0JCUWtKQy9B -VGNhbEpwVVNtUzl0VktFeGxvTGVSQgpyeW9LTWNGV0JqYXFRSWpkeE5HMGJBNWV5TjhIdW01c0tD -WlZ3WnEzeEsybzVkV3FxdmUxN3BVdFI3KzNHeksycytTMndPYzA1UXRmCnFLRFAxMWxOdDcvVDFL -VUlvWWRVOE8xQTVBdFc0WHQ0Zi9ubGwwUkVSRkNwVWlXcVZhdFdiRDdseXBVem9rTlpyVlk4SGcr -VEowK20KVHAwNmRPclVTVjh2cXhaV1NpRUVycndBSFZmanpPTXFFRmhEbitlOThqVytuOHlUSjlx -K0FCNittTkQ1NlJUUzB0Sm8zcnc1WThhTQpJVDQrM21qejNYZmZ6V3V2dlFhQXcrR2dkdTNhREI0 -OEdJdkZRcU5HalZpOWVqWGp4NCtuUVlNR2JOMjZ0Wmg2NUpmMTY2Ky9Vck5tClRleDJPd2tKQ1R6 -enpET0VoSVN3YnQwNkZpNWNpTjF1NStHSEg2WjY5ZW9zV3JTSUN4Y3VNR2ZPSE82Ly8zNjJiOTlP -UWtLQ24rZTEKV1ZVd3FVSVB6RkhFUFdyTzYvdGdtNHJkb2dkdjhXaUNJSXVKdTh1SDRmYnFvMTY5 -ZzRwKzhiS1lGRHh1ZlNyQVlpcDhYbkxySXNWWApjc3RTbk9CYWJtUEJMU2lzUGs5Z3JVQUFpNEtl -d1dZVjdKYzh1Qjk1NUJGU1VsS29VNmNPKy9idFk4NmNPUVFHQmhiNWNILzIyV2VOCjZGR0tvakIv -L254amczWFFSOE5GTGQveDVqbFpCVnpsMDhFWFV0TG5EWDJscGFkQ0NHTVU1eFdRa3VuR293bnNa -b1d3UUxQZkNDOHEKS29ycDA2Y2IzeGNzV01Cenp6MW5SQStMakl3MHp2WHAwd2ROMDNqa2tVZjQ0 -b3N2K1B6enozbmxsVmQ0NXBsbkNwVXZSSDU0MEQxNwo5akJreUJCKyt1a241czZkUzgrZVBlblFv -UU1tazRtdFc3Znk5Tk5QRXhzYnkrclZxMm5TcEFuTm1qV2pRWU1HUnV6dWV2WHE0WFE2CmdjS2Uw -VUhXSzVzQlZFV2hXblFRRmNNRCtPN1hjelN1R0c1TUwvaE15MFdablNIZjBjN2xGZmxDTGJrdGtP -SXJ1YVc0blFYWFovckwKRjlYOEVaMG9jUHhTbEx4bE9hb0NxcHEvTWNDbG84Q1ZLMWZpY0RqNDVw -dHZTRWxKWWVMRWlRUUZCZUYwT3JIYjdjYnVQejdLbHk5UApsU3BWK09hYmJ4QkNNR0xFQ0Z3dUZ5 -MWJ0aVFuSjRmZXZYdnozSFBQRldxRHk2djM5OVd1YS9XRmxEU3JhcEdtY1NPR3NsZkQ3Y2tMClpG -SEEyY3J0MVZBVXBVQjBySUo5azMva3pKa3pWSzVjbVdQSGpsRzZkR25ERE8xYmNqUnQyalNxVjYv -T0R6LzhRRWhJQ08rOTl4NGQKT25UUWY1TUNmU1BRdzJEYTg0SnQyR3cydW5UcFF2LysvZm5nZ3cv -bzJiTW5KcE0rak55MmJSdERodzdGWXJFd2RlcFVFaE1UR1RObQpERGFialY5Ly9aWFhYMytkOCtm -UDA3Qmh3Nkk3S084M1BIWHFsQjdwcW14WnZGNnZrYjhQaTBuRllsTHBXYmNNaWdKcE9WN01xbi84 -CjhLSitEWi9qbFI0aVU4aGxSN2NSVW53bE41MmlCTmVrZ3YwV0UxeERTSDNDV3NTeFMxSElEMzVo -emx0WDdCTmJSY0Z2VzBML3NncUwKbU5QcEpEZzRtTDE3OS9McHA1OHlhOVlzenA4L3o2RkRoL2po -aHgrdzJXeCs2YTFXSzQ4Ly9qZ2pSNDdrd1FjZjVNMDMzNlJtelpwRQpSVVZSdW5ScFk0MXNvVHJu -MWZWcThDMUY4bUZTS1NDMGVxU29vbGJENlA3Uk9zRjJmWW1TK1pJUW5tNjNtd01IRHJCMjdWcU9I -ajJLCncrR2diZHUycEtXbHNXclZLaDU5OUZITVpyUFJqdkhqeDVPVGs4T2hRNGVNR01ZK003QnZT -MElCT0Z4YW5vbGNqOU5jdFdwVm5uamkKQ1lRUWZQamhoNnhhdFlvMmJkb0FNSGp3WUtNK2RydWR6 -WnMzNjBFdXNyTVpPWElrY1hGeGZQYlpaNFhpZVB0ZXhIejNiNHNXTFlpSQppR0R0MnJXWDNlM0tw -T3ByUnUwV0JhV0EzQXFCMy9lQ1dFeVE2OUg3WFlydjdZTU1zaUc1S2pSTkl5Y25CNHZGVXVnaGZ5 -MFVKN2htCnRYaEJ1cEVVak1CVWFOUjZHV0V0S0tSWEs2eVhyMGRlM25tWEhUbHloQ05IanRDbVRS -c3lNaklZT1hJazRlSGh6Sm8xaS9YcjExT3UKWERtR0RCbENSRVFFYjd6eHh2VjBnUkZRdzJLNnVu -bGJJUVFaVGk4NWVXSVdZREdSNjlIOGR1SHhvYURQVDFyTUNsYVRTcWJEUTdaTApOMWVYajdBWkd4 -TVVaUC8rL1V5Yk5vMGZsaTRsTWl5TTBxVkxVeUUrbnJvTkcxS25UaDBTRWhLTUVXUjJkamE5ZS9m -bTNYZmY1WnR2CnZ1SHZmLzg3a1pHUithUGR2UHZONWRIWWR5NlR2V2V6YUJvZlFYeEVvRjliLy9P -Zi83QjI3Vm9XTDE1Y2FJUTZldlJvNnRldmIrd0EKVkhCK3QyQ2ZnRzhwbG41dTdOaXhIRGx5aExD -OE5vd2FOY292Tm5SUmVQTGU3bno5a3BtcjZUR25pekV0Tzl3YWJpOTV5NWlrQUpjawoxNnBmY3VR -cnVTeDc5KzdsaTA4LzVkdEZpOUE4SHJ5YVJvVzRPUG9OSHN6OVhic1NFaEp5NVV6eXVOd0k5MFlL -YmxIL01JVHhuL3dSCm1LWkJib0Y0dmo0Uk5hbGdWcFI4a2NXM3R2YlByYThRK1pHcVFJOTVmTjk5 -OTZHcUtqTm16S0JMbHk2ODg4NDduRDkvbnRUVVZDcFgKcmd6b2M1MGJOMjRzWkhiK1kyVUxQRjVm -ZTR0dVYxSG1ZMS9mS2VnUGZkK2FVN09xTDFHeW1CUXNKcldRdDI5MmJzRlJYYjR2cjZacApMRjI2 -bEpuVHBuRnkvMzdLQVUwMWpiQ01ETWpJSUdmdlhyNzc5bHRtbXMyb0VSSDBHenlZaC92MElTZ29p -TVdMRjZPcUtrOCsrYVJSCmxtOCszZUgyc3V0MEJyK2xaaHQ3QVA5eUtwMjQ4QUNqYklEZXZYdnor -ZWVmczJQSER1clhyMDlLU2dwTGx5NWx6cHc1Mk8xMkJnNGMKYUtRdDJCN2ZQWmFUcTZHcUNuYUxm -aTQ1T1prRkN4YXdhZE1tZHUvZXpjaVJJMm5WcWhYTm16ZS83TzloVXZLclpXeUljWm4wVnBPUwpG -NWNhclBLcGZsc2dmeVpKa1hpOVh2NDliaHhMdi9pQ3V6U04vaUVoQkpuTi9KU2F5cXdmZjJUcGp6 -OVN1MG9WWm4zNVpmSHpYUlFXCjNHQ2JQcElZTUhBZ24zejg4WFVMMktVT1RMNE40eS8xbUwwVXhm -aFBQcW9pakpGR1NZOGVOSkcvWk1ySHpwMDdHVE5tRERWcjFtVGsKeUpFSUljakt5dUxBZ1FOODlk -VlgxS2hSZzU0OWUvTE9PKy9RcEVtVGF4WmUwSDhmdDZadk9xRFh4N2ZKZ01EdDBYQjVSWkdqZngv -Vwp2RUFiNFFGbXJPWXJqNzRLNnJzdjM1TW5UL0w4Yzg5eFl1dFdHcG5OdEEwTnZleTB3KytabVN5 -YU1JRXZaczVrNHBRcHhuMVljQ1RpCmNPbnJpYk5kSG41TnlmSnJRN3JUdzltc1hNcUUybzF5eXBZ -dFMvLysvWmt5WlFwOSt2VGgzTGx6ckYyN2xzR0RCOU96Wjg5Q2RmQ1YKNDNSclpEZzByR2FGOEFK -YkhlN2R1NWVwVTZjU0dCaEk0OGFOZWVDQkIzanl5U2Q1Ly8zM2FkNjhlWkdqWjErZi9CRVRza2xW -TUNraQp6L0hxOXR3WTVLL0dkWm1kMTZ4Wnd4TlBQSUhINDJIbzBLRTgrK3l6aGRKczNyeVpJVU9H -a0pXVlJXeHNMTW5KeVlVckljM090eFJDCkNNWSsvendidi95U0xxR2gyQXFZM241S1RlWFR2TFdq -ZlNwVzVFQmdJQi9ObTBmZHVuWDlydGZ5Um5HWG1wVE5lWGtOR2pUSTJBYnQKY3ZXQXEzZGdNcWtV -dTZ6alZzVlhmOThMeEtWNzRLYWtwSkNTa3NLUVJ4OWwzeSsvOExmWVdFSVVoVXlYaXowNU9aakR3 -cmk3ZVhQbQp6Smx6elhYUTh0Wk1neDVndzZUcSs5a3FTdEhlMklxcXZ5VG9JMHA5aHlLYldVV2di -MFJ3TmFUbmVFakwwU05XeFlaYTJMZDdCMDhQCkhFaHRoNE5HWVdHWDN6bUkvR1ZZQUlleU1sa3JO -SWFQSDg5RER6K3N2L0JwZ21OcE9ZUUhXQW14bWNseGFldzltOEcrbEN5L3ZHS0MKcmR4Ykl3YUxL -ZDg4L2R4enp6Rmx5aFNhTkduQ3JGbXpxRjY5ZXVFK3kzTkxGd2pTYy9TWEUxV0JVaUZtdi9zdlBU -MmRzTEF3UHhQMgpwRW1UY0x2ZHZQamlpMFczVHdnOFhvRWx6d1RpMjQ4NElHODVVbkc0dkhwd2xF -RHI1ZE5KL2x4dWl0bDUyTEJoVEo4K25iaTRPRHAyCjdFanYzcjM5b3VZSUlYajAwVWQ1NjYyM2FO -ZXVIYW1wcWRkVG5LU0UyTHg1TTZ2bnorZWhzRENzbHhsTmxiYmJpZkY2ZWY1Ly9vZkYKeTVjalVB -b0pycTBJcjEwZk44S0I2VlltT1RtWjVPUmtGRVhobi8vOEoyRmhZU2dLdlB6eXk3enl5aXNBSEQx -NmxJb1ZLeHJYSERodwpnSDgrK2lnTjNXNWFSRVdSZmVFQ05XdldCS0JGWmlabk5JMmZObTFpeGtj -ZjhZL0hIcnVxZW5pMS9KMTgzQjZCU1ZWUlZjak85UkpxCk54RmdWYS9LMFUwVEFwdEZ2YXc1dERn -S1pyOTc5MjZlNmRlUE5rSlFLVHpjTDUxdjZaWFBRYXZnTTg2WFIrWGdZS0xkYnQ0Yzh6d20KaTRW -NzJuVWlPc2hLeFloQVExVE5Kb1ZHRmNJNW1lRWtNemMvVE9XNUxCZnBUZy9SUWZyK3dVdVdMT0gz -MzM5bjY5YXROR2pRb0ZDOQpqUmZMUExHOTZQQWF1eUZGQmVjTDc1bzFheWhmdnJ3eE5WRFFLdEd4 -WTBjZWZQQkJzck96bVRScFVxSDhuVzVobUszOStxelkzdFN4CnFKQ0x2dTdhYkwzRi96RklyajND -VlhwNk9nQXRXN1lrTGk2T0RoMDZzSEhqUnI4MFc3WnNvVjY5ZXJScjF3Nmd5SEIya21zaktTa0oK -VlZXcFZLa1M2OWV2NTU1NzdpRTZPcHJldlh1VGtaSEJybDI3Nk5DaEE3R3hzUXdmUHR3dkNMMXZy -V2VqUm8wSURRMGxMaTZPN3QyNwpzMmZQSGdBK256R0RPa0pnVWhTK1BIR0NmKzNjeVF1N2QvUGYz -Mzh2Vkk4YUlTRmNPSGFNSDlmL3pFdGpYNlpKNHQzRVJvWlN1MFlWCkJqLzZDTCtmUG8xSDA1ZENG -QXltNy9hS3ZJRDhnalhyTmpCMDZMTWtObXhBUkdnUVZTdFZvRWUzeml6LzdyL1lMWmVFTnJTckJO -cjAKMEliMnZOQ0dGbFBoQ0V5Wm1abjA2dFdMV3JWcTBiUnBVMmJPbk9rWEcvaWJiNzZoYk5teTdO -dTM3d2I5UW9WSlRrN21sVmRlWWR5NApjWWpYTlQwQUFDQUFTVVJCVk1hL0g4aVBzSFNwMmZqbzBh -UDh6Mk9QY2ErcTBpQWlndkpseWhBV0ZzYWVQWHZZdVhNbkNFSDFzREI2CkJRZnowY1NKckZpeG9s -Q1ptaERrZWpTeWNyMmtaYnM1bStIaVhLYWJpemtlc25QMWJmUXNKZ1dIeTR2TnJNZGp2bG9QYzFY -SjcvUEwKT1E4VmR5MkFJeWVIVWM4TW9iblhTNlVnLzgwSUJCUmFFKzE3MGZJdHhmSU44RUl0RnJv -R0JqRDUrZWZKU2ZrZG05bGtDSyt2UExOSgpvVmxjcEY4WnFnSm5NcDNHeU9YKysrOW43dHk1ZnNM -cmkzWHQ5Z3F5blByR0RJb0NGM0owNFZXQXFHQ1RZU2IyZUR3OC9mVFR0R3paCjB0aDRRVkVVSTVw -WWd3WU5tRFZyVnFFMTFqNWhkMnYrcHVpckhWUXBpb0xGNVBOQWw1YkVXNTFySHZsdTNyelplQU1I -cUZXckZqLy8KL0RPZE8zYzJqaTFidGd4RlVXalJvZ1hoNGVFODg4d3pkT3pZOGZwcUxQRWpOVFdW -ZSsrOWwreHNQVFRkbDE5K3lmSGp4emx3NElCaAphWmd5WlFycjE2ODNYbzQ2ZCs1c1BLZ1ZSU0Vy -SzRzVEowNndkT2xTRmkxYXhQcFZxM2drTkpUNUowNlFuSkppbFBYZDZkTkVXSzNHCmQzMVVvbERO -NDZWM3J4NmNTemxuUERTT0hUdkcwYU9mOHUxMzMvTHo1aDJVTGwzYWI3VGpjMG9SUXVQeGZ3emc4 -T0hEeHJWbno1emgKek9uVDFLaGVqWjQ5dWw5VHYzZzhIdjcxcjM5UnExWXRoQkFrSmlhU2xKUkVm -SHc4dWJtNWZQYlpaNlNscGQwUUUvV1hYMzdKNk5HagpjYmxjckZxMXlqQmJuanQzem5qSXYvcnFx -MHljT0pHb3FDakdqaDNMMkxGakMrWHo4WWNmY1ZkdUx1WHp0cTFURkFXNzNZN0w1U0krClBwN1Ew -RkFBZ3MxbWtxeFczcGs4bWFUV2JYQnIrdWpIN1JWRmVoNURudmV4V2NGdTF2ZXFqUTYyWE5NeUZZ -ZkRnZDF1LzhQOTZFdisKeWJRcGhKNDlTNDJJL0JGdlVldWhGY1YvbmhoODYzVTFUSXErVHJhVTNV -N0Q5SFJlSFBFY2N4WXVMUFF5b3lvS3BVTnR4RWNFY2lyZApRYzJZWUdxWERpR29nSWRTVVU1VWJx -KytzWVNhNTk3dThrQ21VdytvYkZJaEl0RHM1NjJ0S0FxREJnM2l1KysrWTl5NGNYejExVmZNCm5U -dVg3Ny8vbnJadDIySXltVWhNVEtSeDQ4YUYraVhUNmNWdThhKzM0ZFIyRlYxc05TdDVWZzE5LzJY -SnJjc04vWG1jVGlmYnQyOW4KNWNxVjVPVGswTDU5ZTNidjNsM2tQcUl2di95eThUa3BLWW1rcEtR -YldiVTdodXpzYkI1NzdESCs5YTkvMGFkUEh6WnYzc3lHRFJ0bwoxcXdaYTlldVpjS0VDWHoyMldk -czI3YU50TFEwbGkxYlpnaHZwMDZkZVBQTk4vbjU1NTk1NnFtbmNEZ2NEQnMyakRJbUV4WkY0WmVM -CkZ3RW9ZN2N6SUQ2ZURKZWJ6NDhmSzFTSEkxbFpuRTFOd1d3Mjg4SEhuOUdtWFFkKzNidUh2L2Zv -d29YejUzbnB4VEc4OC81SGZ0ZDQKdllMc1hDOXJrbGNid3J0b3lmYzB1YWNwNTFOVDJMUnhBLy9Q -M25lSFIxRjJiOTlUdHFZWFFnbVEwREcwSUFvb0lrVkFRRUJFQVFVVQpHOUpFZVJWRWthWWdSUlJV -RkFSUkJKUlhVU3lVSU5La0NJS0VFa3FvQ1FFU1NBakpKdHVubmUrUDJabnNKaHU2dm40L2MxL1hY -c2xPCmVlWjVabWJuekRuUE9mZk5NQXpzSGxsUGp2Si85Z1FrVlBuKzhweEc3TThnS2lvS2Q5OTl0 -NzVObzBhTnNILy9maVFtSm1MVXFGRVkKUG53NERoNDhXQzY5b21hei9CT3p5anQrYVRSdTNCaHIx -NjdGVTA4OUJhL1hDMEN0ODl5NWM2ZSszK0xGaTdGNDhXSWtKQ1RnNmFlZgp4bHR2dlFXZ0pPejg4 -ZndGbURyOUhUQUF3dXJXeFo4RkJUaGFYSXh3SXZTc1ZnMWhFUkg0NXR3NUhMRFpFRyt4b0VPbFNz -akx6TVJ2CmYreEg0eWJOQUFBSFV2L0Urek9uNHZpeG83RGJpOUd3NFIwWVB2SkZQRGx3SURnV1Bq -RjVvSHVYRHRpK2ZUc1NFaEowQnFrREJ3N0EKWXJIQVlEQ2dYcjE2S0NvcVFtcHFLaGlHUWF0V3JW -QzNibDBjT25RSTZlbnB1SExsQ3NMRHczSGt5QkZNbkRnUkJ3NGN3SlVyVjlDdwpZVVAwN2RzWHI3 -NzZha0RKVG5GeE1kNmVPZzNyVWxKd012MFlMQ3lMRTVldEdGQXpBYkcrTWphYktHQk5UZzR5bkE0 -VWlpSmlqVVkwCmo0cEN0eXBWd0RFc1BKSU1JbUJmVVFGTzJPMDQ3WERBSTh1SU5CaUEzRnlrcEtT -Z1I0OGVBSUFGQ3haZzY5YXQyTGx6Sit4Mk82cFcKaThkZGQ5K056clBmUlloUmZiSFIrSnhYcjE2 -TjA2ZFBvMUtsU3JpdjdmMFlQM2thS2xldWloQVRDd01IL0xUMkYvejg0eXJzM3ZVNwp6bVdkUmFW -S2xYRG5uWGRpekpneGVnWXp4M0VZT0hBZ09JN0QwS0ZEOGZycnI2TmF0V3B3T3AwQkVZL1M4RWhx -Y21KNVRGWFg4M3JECk1neDRWcDI3TjFZa1h2MGwwS2FQYmhsMGs3RFpiSlNjbkt4L2YvSEZGMm50 -MnJVQjI2eGR1NWJHakJtamYrL1hyeC85OHNzdlpkcTYKaFc3OGE5R3VYVHRpR0laWWxxV2NuQndp -SWhvN2Rpd3hERU1NdzlDS0ZTdUlpT2pubjMvV3QvdnBwNTlvNk5DaCt2ZmR1M2ZyN1hYdQozRmxm -Zm5mdDJqUytZVU5pQUdJQTZoTWZUL09iMzBuem05OUo5OGJFNk10ZnJsT1BQazYra3hLdFZnS2dI -N3YwcDNiZGVuVFpMdEpsCnU2Z3ZlK0xKcCtteVhhVFQ1eStUMld3bWhtSG9nUzVkYWVxTTkyajFM -MXNvSzdkSTMrZDZQdzZQUklxaWxEbFhoWVdGVkt0V0xjcksKeXFJOWUvYlF3SUVEU1pabGF0Q2dB -UjAvZnJ6TTlyS2kzTkJ4OCswaU9iMXlRQnNlajRkYXRteEo2ZW5wUkVTVWxKUVVjSTVZbGlXVwpa -YWxXclZvMFpjb1VmZG5KMDVsa2MwazA1dlUzMWUwQkN1ZDUvWnd6QUpsWmxocUdoUVVzWXdEcVdx -VWF2ZmZSQWpwM3hVUHpGaThuCmxtVURqcVVkKzhYL3ZFWTVCUjV5ZUdTNjRoQ296WDMzRThNd0ZC -b2FTbUZoWVFIWHptQXcwTUdEQituTEw3L1VsMVd1WERsZ0hFVkYKUmJSMTYxWXlHQXdCeTdYL0gz -end3WUJya1pDUW9LK0RYLzlmclYrZkZyWm9RZE1hTnlZTHg1VVpId05RYldzSXZkT3dNYzFLYWtx -dgoxSzhmZEJzR29INjlleE1SMFJkZmZLR2ZkLy96d0xJczdkdTNqNGlJQkVHZ08rKzhNMkFiYmJ1 -WTJGaTZrSjFEaXFMUXVVc0ZGQjRSCkVYUzc5OTkvUCtEYUs0cENLU2twZFA3OGVTSWlxbGF0R2lV -bUp0S3dZY1BJNFhDVXVlY1VSYUY4aDBpRlRySE1Pa0ZTcU5nakI3MjMKZzBHVUZDcHl5eVJJMTdk -OUJXNE5OMnUvYm5yT055SWlBb0NhV0hEMjdGbHMzTGdSclZxMUN0aW1kZXZXMkxadEcxd3VGd29L -Q25EZwp3QUcwYWRQbVpnOVpnU0NJaTR0RDFhcFZBVUJuem1FWUJuZmVlU2NBNktGSkFMRFpiRGgv -L3J6K3ZWbXpadnIvVFpzMjFmOTN5REtPCkZSZnIzK010RmoyN3VKcGYxRUtqdmlzUVJXanY1Zjd6 -ZjlvbisvdzVHTGxBZ2dDT1VYbUxxMVNLd3NSSlUyQzFXckZsNHdaTUdqOFcKRDNkN0FFM3IxOFNH -dFQvQ2JHQmdNcWpadHlaZXJSMDFjbHI5cURxUHg3UHFwN3k1eWg0OWV1RDExMTlIelpvMU1XSENC -THovL3ZzNgo0NUYyN2dMZ1N4anovMXdOd1FLN2tpUkJraVNka0VRVHR5ZGZLSFBIamgyUVpSa1pH -UmtCbVpLeXordjJGN3EzOGp6ZWFIZ0hlbGFyCkJnRHdLZ295blU0TXJWMGJMOWFwcTI5MzJlMUc3 -dVZDbk1zdHhPVFhYd0VSNFo3N0g4QlBXMU94T2ZVTUhubjhLUURBcC9QbUlDc3IKQXg1UndZVUNy -ODdON0hRNjBidDNiMlJrWkdEdTNMbjZPSDc4OFVjTUdqUklQMDVlWGg2R0RoMktyS3dzcEtlbncy -cTFZdGl3WVpBawpDUmFMQmMyYU5jTWRkOXlCNnRXcmc0anc2NisvWXVYS2xRQ0FDUk1tNE55NWN3 -Q0ErTXFWTVRnaEFlODNhNFpuYTlWQ21JK3A2dHZ6CjUzVXY5dldHRGZGZTAyYm9VN1U2QUNEVDVj -VCtJaHRNUEl0ZHZtbVY2aFlMWmpWdGlnK1RrekV4S1FtOXFsWERrUU1ISUlvaXRtN2QKQ2dDb1U2 -Y09zck96VVZ4Y2pBTUhEMkxTMis4Z0pFd05kWC80NFljNGNPQUFPSTdEbDh0WElPTkNQdGI5K2h2 -Q3dzSlFjT1VLM2h3LwpIZ1ZPR2Q5Ly96M3N4Y1V3bTgxSTNYOFFlUVVPbkR4NUVwOS8vam1hTkdt -aWUwTW1rd2tNdzZCYnQyNm9WcTBhUEI0UFpzK2VqY3pNClRKMTVxelEwVlNnalgvN2RkcjFlckRZ -ZnJyVlpnWDhtYmtsUzhJTVBQc0RRb1VQUnFWTW5qQmd4QXJHeHNWaTRjS0ZPaEI0VEU0Tm4Kbm5r -R2Q5MTFGeDU1NUJHOC9mYmJPaDlyQlc0UGdvWHdyN2JjUDVQMjRNR0QrditIRGgzUy8rL1Jwdzhr -dngvNmVaY2JnUHFEem5HNwo5ZVZFUGl2Rkc4QXdnTlVhZ29PbmNwQlQ2TUVWdXhkRkxoRnVyd2lI -MDYwTHEydndtV29veEdEVWY4YmkzTVVyMkxyakQ4eWJ2d2hOCm15V2p1TGdZczJkT0I4OHlNSEhx -dmxZamkxQVRpekF6aXdnTGh3Z0xoMGdMaDBpcityRVl5NHFoUC96d3crallzU09lZnZwcG5ENTkK -R24vKytTZmF0bTJMUm8wYUlTc3JDODJiTjljMWIvVytNVUNZbVVPb21VT29pVU9JaVVPb2lVV0lp -VVdJVWYxWWZSK0xRZjJVTHUyUQpaUm15TE1Qb215Ty9jdVVLTGw2OHFQZHZ6cHc1WlRSZzFUT2lr -bmxZL1pKeFdrVkZJOTVpUWJPSWtublJPcUdoU0k2TVFvT3djSmg5CklkMGNyd2NoNFpFNGZlSVlD -cStvaG1uMzlzMTR1UDJkNkhobmJmejR6VEs5YittSDlzTXR5QWkzOFBwY0w4TXdtRDU5T2hJVEUv -SHkKeXk4ak1URVJnSnFjNWg4MmpvaUl3UHo1ODFHalJnM1VxMWNQUjQ4ZXhjbVRKOVYrMWFtRHZu -Mzc0c2lSSTVnNmRhcSt6N1p0MndBQQpXN1pzQVFEd1BJOUlxeFV0b3FJUXd2Tm9HUjJOcWhZTGlB -Z25mT2ZGSm9xWWVmdzR4cVFkd2c4WFM2NVJsc3NKam1WUTIvY3N1ZXoxCllsMU9EdjY4Y2dVTWdP -NVZxOEtxS0pnOWV6YnV2ZmRlTUF5RHJLd3NUSnMyRGQ5Ly96MTRqc1A0MTE5RFpKVWFrQlhDNXMy -YjlmTXkKZU5BVHFCVWZnKzZkMituWFo4Zk8zeUhLaEx0YXRnYWdocWhuem5nSC8xMytPZkx5OGpC -dzRFRHMyYk1IZmZ2MlJYWjJkc0RMRk11eQpNSnZOR0RCZ0FBQmd5WklsK2ozaEQ5Rm5LQTJsYTgy -Z1VVdGVQOVRFSzBhdHJiOWFjWFlGL3FlNHBUbmZkdTNhbGNrV0hUcDBhTUQzCjRjT0hZL2p3NGJk -eW1BcmNCcEN2bUw5OSsvWll1SEFoaUFqVHAwL0grKysvajcxNzkrTDMzMzhIQURSbzBBQkRoZy9I -d0RWckVHNHcKb0ZnVXNhZmdDdXFGaHNLdHlEaFNhczVxajgyR092WHE0K0RoUTNDNW5IaHIvQmc4 -UDJJMHFzYkg0OXlaay9qcCsvL0NhclZpK3F6Wgo4TThqNFRsVmxEMHRMUTAvL2ZRVGV2VHNoY1pK -RFZDdlRpMzh2dU0zcEIwNmlJeU1NM0M2dkRBR29iTmtHRFVCcHFUMGlDbERSRDkwCjZGQWtKQ1Rv -WlR4MTY5YlZ2UStXWmRHcVZTc3NYNzY4alBmTE1Fd1FscUFibXp1VEpBbUtvdWdQMm9ZTkc4SmdN -Q0F6TXhNTXcyRDMKN3QydzJXeGxHTUlNSEJCdVpsRTdzWWErTENIRUNwNWxZUFlYVGZCRkkxZ0dz -SEFjUExJTU94R1M3NzRYeDQ4Y0RHZ3ptTWQwS2lNVApyZDBTVElhUzdPYkl5RWhVcjE1ZDM2WnAw -Nlk0ZS9Zc0RoNDhDTGZmUzFmYnRtMzFOaG1HZ2N2bDB0ZkZ4TVRneXBVcnlNbkp3Wmt6ClovVHRO -RzlYMHhldVg3OCt3a1F4b0lZY0FPeVNCTkZQWXpnWWlpUVJYa25CM2RIUk9GQllpT04yTzdiN2xU -SEdXeXlvSHgyTi9mdjMKNDUxMzNrRkNRZ0t5c3JJd2YvNzhnTEY5OS9Ndk1QT3hPSnRWa3NjUTdG -eGxYemdIbGdGYU5XK0VsMTkrR2ZQbno4ZktsU3QxYno0dQpMZzZKaVlrNGUvYXM3dlVHZy9ZYkRM -WmNrRWdYRVNtei9xcG5JemlNUHI1blFTWllLbXArLzVHb3lJZjcveHdVcEtRZzJESU4vZnYzCngr -TEZpN0Y1ODJhc1c3Y082OWF0MDljWkRBWXNXTEFBOWVyVncrZ3BVL0RxaUJFb0ZrVmM4bmp3M3Nr -VEFLQ0hCZ0hncE1zSmUzeDEKZkxIc0d3eCs0bEVjUG5RUVA2ejhHaitzL0RyZ21FOCs4d0s4b2dM -Sjd5RWdLUVJCVXBCLzVRcW1USmtTa0hDbllmanc0WWlKc09ncwpWc0hJTmpReUQ0QkFQQU9UNytH -MWQrOWVmUGJaWjdqampqdHcxMTEzUVZFVVRKczJEZDI3ZDlmYkx5NHVSbEpTVWhtRm1kc0JqdVBB -CmNSd3FWYW9FQUdqVnFsVkFLWjdKWkFwS3pjbjVFc1lNQm9QNm9DYUNRVE82ZnM5UUU4dnEyYmNN -MUFlME5Td015WTBhb0xqd2lyN2QKMDhQL2d4ZkhsbVJTUjRVWUVCTnFSRWFlRTI1UmhsdVVJZmpD -emphYkRSY3VYTkFOc0JZTlNVNU9Eb2lrbEM0WjFHcFpBZlVlYXVIagpYbzZNak5UdlJTM2lrcGlZ -aVBUMGRKdzhlUkoxd3NLUTUzWWpORFJVbnpJSjQza1lXQmFpb3FCV1NBakcxRzhJU1ZHSlBPeGVT -UytoCkVXUUYwVVlqUnRldkQ2Y2s0VlJoSVE3bTVHQ2ZMQ1BiN1VhTTE0dWgvZnFoVHAwNk9ISGlC -UEx6ODNIMDZGSHMzYnNYMDZaTlExcGEKR3RiODhBMmVmSDRrcXRkSXdJbmp4eEVTRW9MejU4OGpN -aklTTHErTVlvOTZYbmdXaUFwUkl3Uno1ODdGakJrenNILy9maHc0Y0FCego1c3hCWm1ZbVdyZHVI -VlRhMGV2MTZsTVA1Zk00cTlldmZHWXd1dUVhZHRYN1ZiT2V6WHh3bzErQi95MXVLZXhjZ2Y4ZGd0 -VlcrbnNqClYxdTJmdjE2ekpneEE4MmJOMGRZV0JocTFLaUJYcjE2SVRVMUZlM2F0UU1BREJnNEVC -OSs5aGtxUlVYRHlIRUlOeGpRTmpZV0hlTGkKOVBwTFo2MWFXTHJxSnpTb2s0RFZHN1poL01TMzBE -UzVPY0xDd3hFZEhZMm16WnBqNkl1dllPQ3p3MURzbHVEeWtSdW9OWStBVXlCVQpyVmtIenp3M0JJ -MGFxUS9yNk9ob2RPL2VIZE9uVDhmcnI3K3ViNjltY2FyaE5CUFA2R0hvRUY4WU90VEV3TUNXdkhp -MGJOa1NraVRoCjBLRkQyTGx6SjNiczJJSE9uVHNIbk1PalI0OEdOWUNxWWFlYlpsMGJPblFva3BL -U2NPalFJZFNzV1JPTEZ5OUdqeDQ5d0hHYzJyYWkKb0ZPblRnSHo4YVd2bDk0WEFGbCtubVV3eUpx -QlMweEFxSVZIdTN2dlFreXNhdlIvL08rWDJKVHlFK3pGTm1TZnk4REcxU3R4VDZzVwp1SnlYRjNU -Y0V5Wk13Tm16Wi9IQkJ4L29YbXF2WHIyQ2JxdWhjdVhLYU5DZ0FRQmcxNjVkT0hueUpQcjI3WXVr -cENSOVBDRytHdDRICkhuZ0FnQm9adU9oeUljdmx3cm5jWEd6SnlzSlptdzBNdzZDQjc1cGtPcDM0 -TmZjUzdKS0lJa2xBaHR1QjVSZk80bkJ4RVlpQUxibTUKMkhQbEN0eXlqRVl4TVdnY0dncUQ3M2cy -UVVCSVNBaSsrT0lMckZ5NUVtNjNHMjNhdEVHM2J0MzBxYS8wWTBkaDVGbTB2YjhEQUhYTworK1dY -WDhZZit3N2hmRzRCOXUzOUF4UEd2b1FaYjcwQmptV3dkZXRXM2RnMmE5WU1qenp5aUI2YVAzcjBh -SmxybDUrZmo4Y2Vld3dwCktTbFh2WDZpajZXalBOR0VteTNaMWRvVDVadmJ2d0ovTVc0MncrdDI0 -aC9TalFxVWd0TXJVY2JGUWxyeTFUYzBzRThmNm5yZmZkU3oKWTBkNi9kVlg2ZENoUStRUlpYSUtD -cmtGaFdSWm9VS25RSG5GQWhXNVpjb3RFdFFNWks5QytYYVJNaSs3NlV5ZStqbC94VU5YSEFJVgp1 -VVFxY0VyNngrYVNxTWd0azhNcmswZVVTWktWNjg3d3ZGMVFGSVZjWHBtSzNlckg3cGJKNFpISjVa -WEpMY2prRlJVU0pJVWtXU0ZaCktlbGY2VzU2UEI2eTIrMTArZkpsc3R2dFJFUjA4dVJKNGpndUlK -dDQwS0JCZXJZend6Q1VsWlZGUkVUdDI3ZlhPU2FhMXE5UFQ5U3EKUmFNVEUvVnMzcDVWcTlLSHlj -bjBmSjA2Wk9SNVloaUdPblRvUUY1UnBzdDJrUll2KzIrWlkvbG5JbS84OHpTbFpoWlJhbVlSdFdo -MQpIekVNUStIaDRSUWRIUjJ3TGMvenRHUEhEaElFUVYvMnpEUFBFQkdSTEpka2VHL1pzaVVnMjlu -L2s1Q1FRRjk4OFFVUkVSVVZGVkZpClltS1pUR2NBOUdSRUJMMlRrRUJUR3pVaWF6blp6Z3hBajhm -WG9QY2FONk5XMGRGQjE3TUF0VXhNcExTME5CbzhlSERRUG5FY1I0Y1AKSHlhUEtOTzVmQ2NsTjcr -ejNHejk0Y09IRXhIUmtpVkx5ajJmOCtmUEwzTXYyV3cyV3Jod0labk41cUJaOVJvS1hTTGxPMFNT -eTduWApYWUpjSnB2K2V1SHd5R1MvZ1V6cEN0dzRidForVllTZEt4QVVSQVNYb0NBa0pBUlA5TytM -cHdmMkQ3cU5SMUtmbkJJeGlMUWFJRWdLCmJDNEpSb01heXJVNUJaZ05IQ3FGbStBV1pEZzhFZ1Na -SUxoa2NLeWEyR1Eyc0hvSUdVUVFKRUJrVktFRGxtSEFzZVRMWmk2ZnF2SjIKalZrTC8vRjZpTnVQ -MTFoUnVYeExnd0dCNStEalExYjdaaktaWURLWkFoSU02OVdyaHkrLy9CSXJWcXpBbGkxYklJcGkw -Q2dGRVNFNQpPUm5idG0wREVlR3RXYk9RZnZnd0ZuejBrWDcwZllXRnlBNE54UU05ZXFEUzk5L2o0 -c1dMZWpzaFJoWjlIK3VMeE1SYWVHL21PMGcvCmRnU1g4M0lSRjFjWlNZMmJvSGZ2UjNCM1VuV0lN -Z09uVjRZVzFZNk9qc0hhdFd2dzhzc3ZZLy8rL1lpTWpFUm1aaVkrKyt3emJOKysKWGU4akVhR29x -QWhQUFBHRTd0VjE2TkFCcWFtcG1EaHhJdjc0NHcvazUrY2pNVEVSU1VsSkNBa0owVDNlOFBCd3BL -V2xZZHEwYVZqdwp5U2Z3dUZ6Z0dRYlZqRVpZaVhEdTNEazBhdFFJVXhvMXd1cWNISnh4T0hERks4 -RENjWWcxbWRBNFBCek5JcU5nWUZrMGo0aUNSNVp4CndlMkdYWklRWlRDZ1RtZ29Hb2FGSVpYalVM -OStmZlRvMFFQbnpwMURSa1lHTGwrK2pPclZxNk5ObXpibzJyVXJHamR1RENLQ3ljamoKeDE5K3c2 -S1A1MkxkbXA5eE52TU1ERHlQaElRRWRPclVDVTgvL1RRQU5acnkxRk5QNFk4Ly9zREZpeGRodFZy -UnBrMGJ0R25UQnM4KworMnpRKzJuLy92M28zTG16SGhrb0RWa2h5QXF1bXEydm52ZHlWMTBWUnA2 -QlcvUWQ0L2JQcmxUZ0ZsQ2g1MXVCb0hBTEN1eGUxVUJHClcvbHlEWjdpTThDQUd1YmlmYUZmaDFl -R0lBRUdub1ZYa3VIeXlnZ3o4ekFaT0xpOE1oeGVTUStuUllmd2lMQndmbTBDRGtHQmY5NE4KeDJy -aForaUdtUHNmYVA4U2xlaitLb3B2dnM1SE4yandqUjgzMFNmdC92ZmZiKzNhdFpnL2Z6NVNVbEln -eXpKRVVjVCsvZnRSVUZDQQpwVXVYb24zNzloZzVjbVJBTzI1QmdVZFNTZmhaQmlxRkpBRm1uZ1hE -cUlrNGtzTG8vTnNHRHVqU1NTUFpTRVJHUmttUzFKZ3hZeUNLCklycDE2NGFVbEJTa3A2ZURZUmkw -YU5FQ2VYbDVPSC8rUEg3OTlkY3k0emgrL0RndVhMaUF0V3ZYd3VWeVljaVFJV1hZbkR3ZUQ3cDEK -NlFMbXdBSGM3d3N6Y3h3SGhtRVFFeE9qejhON1JBV0tYOGF1Z1ZlNXBHWGZkZEJLemZ4eHJMZ1l0 -dWJOc2ZqcnI3RjkrM2FNSFRzVwoxYXRYeDR3Wk01Q1VsRlNtdndTZ3lDM0RJeXBnQUVSYStUSXNV -K1Zkcy9LdXM4MW13NGdSSStEeGVQREREejljdFEyWG9Nb1FXc281CnBrdFF3REFvZC8yMSt1andF -amoyK2tVdktuQmp1Rm43VmVINVZxQU0xQWVDT2xFVVl1U3Vha2hZaG9HQkpVaUttbG5KZ2dITE1n -Z3oKODVCa0JVVWVHVWFPaGNIS3d1R1JZUGRJaUxRYUVHY3l3ZW1Sd0FBSXR3UWVnd1VoM0tSNnc0 -SlAxazcySlZVQmdNd1FXRllUVkdEQQpNdVRIOWZ2WEdtSjFubDN0aWd6VmVQRyt2bWdndi9saWYy -OVdNOXA2N1RDamJhK1dtaGg1SmlDbit0U3BVNmhjdVRJQTFUQzVYQzVVCnIxNGRETU1nTWpKU1Qx -TFNqSUIyM1FnTTNDSmc1aGxFV0ZnMU91RlRJUEpLNmtQWXdxdEdXSkJWSVF5MXJ3aG83K0dISDBa -SVNBanUKdlBOT2RPM2FGWUNheUhiMDZGRzgvLzc3bURkdlhzQzVFVVVSSDMvOE1aeE9KMTU5OWRV -eWMreitNSnZOYU5HeUpYN0p5RUJrZERTTQpMQXVlTC9zNEtuMDFGUi9uT01zd2VrMjB4dm1zNFJp -QWNTKzhBSjduY2UrOTkyTDM3dDM0OXR0djhkNTc3K0c5OTk1RGRIUUp2elBqClMxaUxzS2psWkI1 -UnVXN0Rxd2srYUxEWmJJaU1qRVJCUVFGR2pCZ0JRUkIwdzd0dDJ6YWNPblVLYVdscDZOdTNMOXEy -YmFzZi8xcEcKa1hEenlUbGE0cFVncStmdXIvNTlWT0Q2VVdGOEsxQUdYaC9OSGN1b29kUnJnZmRS -RmJJTTRKVUJNK05USGVKWXhJU3djQWt5UENJaAozR0tBUjVSeHhTbkF3REtJc2hvUllpcWI0YWw5 -WjBFdzg2cEhvT2hDN3FxaGwzMFdRek84c3NMb3BUZWNUL0x1cndwUmE5cTNQQnU4Ck5DVFlNUm1m -eFJaRjhqME1HWGdsVlpnZVVFUEZUQ2xUazUyZEhWRDZrNTJkalhIanhtSHo1czJZTm0wYW5ubm1t -WURqYVViY0tVZ0kKdC9Ed1NDd1VWZVllUmc1UVNEMm13NnVBWjRFUUU0Y1FJOEQ1RXZjVUF0d0N3 -ZUpUeEduUm9nVWNqa0FKdnBZdFc2Smx5NWFZTjI4ZQp1blhyRnJDT2lQRENDeS9veVZYK3kwdWZr -L1hyMXlNbUpnWXVBS3VPSDBlN3lFandQSSt3c0xDZ1NYRDZlUVIwbzhjd3FoeWl3cWhqCkFJRGp4 -Y1hnNCtQMXhFR0R3UUNPNDlDdlh6OU1uandaSE1mQlpyTmh6NTQ5dU9lZWUvU2tONVpod0xEcXk2 -WWtVd0JYY3pBVWUyU0UKbVV1aU5WNnZGMzM3OWtYUG5qMlJscFlHU1pKMHcvdlJSeDloOCtiTlNF -NU9SbHhjSEFZTkdvU1VsQlEwYXRRbzRQcGREYmR5RzJ0OAp6NElVWEMycEF2OGJWQmpmQ2dUQTMr -dTFCaUd0Q0FhR1lXRGkxZkN6S3VqTitIaGw0V3VIZzVsWFVPeFJZT0paR0RrajdGNEpQRmZhCmQx -RDFhN1h5SE0yYjA3eElrNEdGeVFDZndneEt4TjVsUUpWNEFIaU9RTVJBVWh0UWpUT0QyekpmVEtR -cHhxamgyeHN0bjJRWUJtWUQKNEJKVXBTRk45TURJTVVIUGRYWjJOanAwVUROeEpVbEN3NFlOOGZQ -UFArT1hYMzdCMHFWTGtaYVdGc0JNQmthZFF5UUNuQjRKMFNFRwpHRGxXZjBFSTVWaVlEYXAwb0tT -b29WWUR4MkROTDV0ODVWcnF2Q0RETUVoSlNjR1NKVXVRbXBxS1NaTW1vVk9uVGpoeDRnUkNRa0xR -CnVuVnJ6SnMzTDRDd0JRQ01SbU1BZ1lUTDVZTFZhaTFqZkJjdVhJaE5temJoMldlZnhXc1RKbUQ2 -bTIvQ2JqQWdsbVdSbTVzTGhtSDAKdWZMU3dUeVdZY0N5YXNoZjgzNjFpSjlEa3ZBN0VSWjk4QUY0 -bm9ja1NibzMvZTY3NzZKUG56NUlUVTNGd29VTFliVmE4ZnJycjJQSQprQ0VZTVdLRWZuMElCTVYz -RHN1N1Z4eGVHYktpa2xnUW80QmpXWmhNSnN5ZVBSdGR1blJCVkZRVVRweFFTL00rK09BRHpKa3pC -MnZXCnJFR1RKazNBc2l6MjdkdUh3c0xDOG02VE1sREhkL1AzcmNiM3JJb3RWSlFkL1ZOUU1RbFFn -UUJvbnVXTnpqR3A0ZWVTR2x5eEZFOEMKeTdLSXRQSXc4ZW9ETGpiVUFDTWZhSERTMDlQUnZYdjNB -SVVmdlp5S1VSVnNCRW54a1dBd0NER3hpTEN3Q0RPeHV2aTdLS3VldTFjaQp5TElDVWxSaGRhOE11 -Q1YxblNqZmVDbVJHZ0wzMVdOZWgrSFZWS2FDd1d4Z2RjTWJZbFRadW9JOUVOMXVOKzY5OTE3OS9H -bTQvLzc3CjRYSzVBcWhDQVUzYXpvQ2EwU2JVakRFajFNekJ3QVdXcEhFTTlMSXRsbEhISmNycWk0 -dUZMeUgxbnpObkRrYU1HSUUxYTliZ3A1OSsKd3BBaFEvRFJSeC9obzQ4K3d1Ky8vMzVObXRnVEow -N29ucDhvaWdIcmpodzVndmJ0MjZOYnQyNFlObXdZV25Yc2lBMlNCQ1lpQWp6UAo2OTYyL21ybWQy -cTBxUVp0c1NZVjZKWmxyTGJiOGN6bzBUcHQ2cmx6NTdCOCtYSTg5TkJEV0xObURaNSsrbW5rNXVh -aVZxMWFXTEprCkNUNzc3RE1jUG53WXhYNVVxdW9MWFBueWlLS2t3Q3VxOTg5UFJ5N0NKU3FRZmNr -SnljbkoyTEJoQTBSUnhQSGp4N0Z6NTA1czI3WU4KYTlldVJiTm16Y0N5TEU2ZE9vWG82R2pFeE1S -YzlmejVnM0RyV3RWR1hvME1TY28xTjYzQTM0UUt6N2NDQVhBSjZxL1RhcmcrcjljZgovdUZuV1FF -a2xNMndOQnRZWFcybGRQdFZxMWJGMjIrL2pkNjllNk5Iang0QnFrUXNvNFZPZ1FLbkNMT1AxcEZo -R0ZYTnlHYzBaSVYwCmoxaFNvQnM1TFdNYUFDUUNSSVh4UGJ5dlBWL3NIMmJtbUdzL0NKY3ZYNDZW -SzFlaWNlUEd1T2VlZXdMcVpOVTVSa0s0bVFQTEFNWWcKY2V2MzMzOGZpeGN2eG9rVEoxQlFVSURw -MDZjakl5TURsU3RYUm5KeU1yNzY2aXZVcWxVTGQ5MTFWOEIrcW1kOXRZeFo5Y1dIWktBNApOUUFB -SUFCSlJFRlVaUUZaVnNkTE9sa0p3U3NCSmdOUVdGZ1k0SFd2WHIwYXg0NGRRL1hxMWJGcTFTcDgr -ZVdYYU55NHNjN3ZEcFFOCkxlL2J0dytiTjI5RzA2Wk5FUkVSZ1lTRUJIMWRpeFl0Y09USUVSdytm -QmhuejU1RmZIdzhXci8yR3I1ZHRBaEpBT3I2SzAzNXg1a0IKQ0pMaTB4QldWN0lzY01uandhOXVO -eDRkTVFKRGZWNnNLSXF3V0N4SVQwL0hrMDgraWNjZmZ4eDJ1eDA1T1RuWXRHa1Q5dTdkQzd2ZApq -dE9uVCtQY3VYTm8zTGl4ZnNqeTdnTnRqQnpMWU1mWmZGeHllUEZkV2c3Nk5hMEdpd0hnV0JiTm16 -Zkg1czJid1RBTVRwNDhpU1pOCm1nUzBQV2JNR0RSdjNoeDMzSEZIUU51S29nUlYyUEkvRGJjQ0xm -b2pTRlN1YWxJRi9sNVVaRHRYUUljb0t5aDB5VDRQaXIrcDVBd3QKKzluSXFnYk95S2x6c05lTDBh -Tkh3MjYzNC9QUFB5Ly9HQXJCSlNxd09TV0VXMVFPNW1COVZhZ2tMSzF4NTNLK3JHU1dLY25TSWFq -egpuUXdDNTRzQlJnOHpHNjR6ekx4a3lSSXNYcndZMDZkUFIxcGFHdExTMHJCdzRVSmR5TUUvQWF0 -Yzcwb1VrWldWaGV6c2JCdzdkZ3lOCkdqWEMzcjE3OGR0dnY4SHRkbVBJa0NGNDdMSEhnaVlvK2NO -dXQ1ZVpQeVZTazlkWVJxWGlWTDlyODhCcU5PSFlzV05ZdG13WlpzMmEKaGZ6OGZDeGR1aFN2dnZv -cUFKWC91SDM3OXRpeFkwZVpkdjNINDNBNHNHelpNcXhidHc3dnZ2dXVQcjhKcUpuT2l4Y3Z4b0lG -QzJDMQpXakY2OUdnTUhEZ1FodzRkd3Nobm4wVm9YaDdhUmtZaTFtU0M2QmVlTHcySEpPR3d5NEZ6 -WWFHWU1ITm1nSmE0ZGg3OVJRd2FOMjZNCkxsMjZRSlpsTEY2OEdNT0hEMGZEaGczeC9QUFBsM3NP -SFE0SHRtelpvcGR5VmF0V0RmZTM3NEN0V1hhY0wvSUFVT2VKK3plckJndlAKQmRDYmpobzFDakV4 -TVpneVpRcU9IeitPc1dQSGd1ZDUvUGpqajJYTzJmRGh3ekYzN2x5WS9UaTl0VzBjZ3ByN2NLdEdV -MVpJdjRjcgpRcyszRHpkcnZ5cU1id1YwMkZ4cURhNHFZSER6UllHYTE2bDZ3Z3pNL1BXRnpiNzU1 -aHZNbmowYnYvMm1Lc29JZ2dDajBRaEJFQ0FJClFrRE5yS0tvb2VXTFJRSllCb2l3OEFpemNHWEtU -alJvSHA2MlduT21IRjdGRjRZRldGWTF4TEpTTXRlb2xqWnBIbS81ZzlBZXBIUG4KemtYbHlwVXhZ -TUFBckZpeEFnY1BIc1NvVWFOUW8wYU5nTzMrQ21qejQ4dVdMY096eno2TE45OThFMU9tVENsRG42 -a1FxZUY0VWt0NQpQS0lDcjZSZTk2aVE0QzlkV3I4WExWcUVEUnMyWU5XcVZXWGFWSk9nYm0xc0hv -OEhYeTVaZ3E4WEw0YkY3a0FscnhleHZCSGhCdlZGCnd5M0x5UFY2a2N2eHlPVjVQUHA0UHd3YjlT -TGk0dUlDK3FuQjdYYkQ0L0hnNTU5L3hvb1ZLL1RTcVBmZmZ4ODFhdFJBdjM3OWd1NlgKbjUrUEJm -UG1ZZlhLbGFncVNRajNoYzV0UmlQeURBYjA3TmNQclhvL2lSTU9kWjlRSTRjbjc2d08zdTlOYysv -ZXZlamZ2eithTkdtQwptSmdZMUs1ZEd4TW5UdFNQNS9WNmNmSGlSZVRuNTJQaXhJbjQ1WmRmZ3A1 -M2g2Q1dqcFYzYjE4di9zcDc3OStNQ3VOYmdWdUNKQk1LClhHckJibXdJSC9BR2Y2UFF5RGZVNTVE -cVZacTRxeHZnTTJmT29ILy8vaGcvZmp6NjlPa0RRSDF3bmo5L1h2Y21WNnhZRVZDK1FrVEkKdXVL -RnYyTVVabGJWam9LRmM4dnJhN0ZIMGR0UU01alYrVEZON1VjcnhkRTg0dEsxdkd2WHJrVlJVUkU2 -ZE9pQUgzNzRBVHQzN2tSRQpSQVMrK2VZYmRPdldEVVZGUllpTWpNUi8vL3ZmNityVGpTQTlQYjFN -Q0ZNVVJXUm5aMlBod29WNDdiWFhFQlVWVldiTVJSNFpEbzljCmhycXdjcmhCbnljdURhL1hpL256 -NXlNeE1SR1BQUEpJUUh1aXJKNFg1Z2FTMnZ4Lzg2WDNFVVVSdjIzYmdWKzI3c2FwZy90UW1KK0gK -dytsSFVHUXZSbGg0QkY1NTdVMXMyYkFHYVdscHFGZXZIaVpObW9TZVBYc0NLSmtmSHp4NE1OcTBh -WU9QUC80WVI0OGV4WXN2dm9pNQpjK2ZpeUpFajZOT25EM0p5Y3NBd0RCbzJiSWpISG5zTVk4YU1B -Y2R4ZVBQTk43RjV6UnBVTHk1R2djdUZVdzRITG51OTRCa0dOYTFXClBGeXRHczRJQW16eDhSZ3ha -VHBtenZrSTJla0hVSkI3RWJWcjEwYWZQbjB3ZnZ4NG1Fd21uRGh4QXNYRnhVaEpTY0hSbzBleGMr -ZE8KMk8xMnhNZkhvM2J0MnFoUm93WVloa0ZDUWdLaW9xS3daY3VXZ0czdWJ0a1NrOTZlZ2RvMXEr -bjM0KzJFb2lod09wMVh6VEN2d05WeAowL2JycG5peGJqUCtJZDM0VjhQbUVpbTNXS0JpdDNSYjJw -TVZoWnlDU3NQb0VZbThZbGtLUmlLaVRaczJFUkhSc0dIRGFNaVFJVVNrClVqT3VYNytlK3ZYclI0 -c1dMYUpPblRwUnMyYk5LRDgvUDJCZlJWRW8zeTdvdEpYK241eENMem05MG5YUjZpbUtRaDVScG1L -M0ZFQjMKV2VTU3lPV1ZTWkJra21SVm5Od3JCVkplRGhreWhEcDA2RURqeG8yamUrKzlselp0MmtU -WjJkbjBuLy84aHhZdVhFaEVSRTZuazFxMwpiazEvL1BISGRaMDdVVklwTFAzcEs0Tmg2ZEtsMUto -Ukk4ck96ZzQrSm8rSDh2THlncTV6ZWlXNjRoRHBRb0dIc2dzOVZPQVF5T1dWCmRZcERKY2l4RlVV -aFFSQ0NMNWNVY25nVjhvZ3ExV2l3L2E4RmJSOUZVZStiWXJkTUJRNlJjb3NFeWk3dzBEMXQ3aWVH -WVNnME5KVEMKd3NMS1VEd09IejZjdnZycUszMVo1Y3FWQTlhLzhjWWIxS0ZEQitJNFRxVzI5QzNY -dG5ud3dRZHA2dFNwWkFHb3U5VktVVHdmbEw3eQoxZnIxYVdHTEZ0U3ZaazNpZmRTZUxNc0d0Tlcy -YlZ0OS9MLzk5bHRBUDdUdFdKYWxoeDU2aUF3R0EzMzk5ZGZsYnJOOTk1OGt5YmVmCkh0THBkTkxN -bVRQcDhjY2Z2KzF0LzV0d3MvYXJJdHU1QW1vMnNLUyt1ZDB1Rmh3dCsxbVFBUU9yaG56bFVwbVdE -b2NENzc3N0xtclgKcm8zdDI3ZGowYUpGOEhxOTZObXpKN1p1M1lwcDA2YWhmLy8reU1yS3dxeFpz -eEFURXdNbFFHNk9RYWpaZ1BoSUk4TE1YRUJTaWx0VQo0UElxQWFVcXExZXZ4b29WSzNUQkFMMFZo -b0dSWTJIa09WV3N3Y2pDeUtrZXUwZFNHWUxzSHJWTzB2L3NyRm16QmphYkRWdTJiTUhNCm1UUFJ0 -V3RYZlBMSko2aFdyUnB5Y25MMGtpbXIxWXE3N3JycnVyV3NMenRFNU5nRVhDZ1FBanhUOHN2UWRy -dmRtRHQzTHFwVXFZSmUKdlhvRktDWnBZektaVElpS2lpcnpWcTZPVjAxYXNwcDRWQW8xSUNyRUFJ -dXhSRjVRUzRoVFM1ZElWeFBTMVpaS3RXZmdHRmdOcXZjcgp5SUJUQUR5aUdsRlJsSkxzY3Y4eCtJ -TjhwQlZPZ2VBUjFWSWZtMU5Ba1V1RUlDbmdXRWIzL0p4T0ozcjM3bzJNakF3TUhEaFFiL1A4Citm -TzZYakFBNU9YbFllalFvY2pLeWtKNmVqcmVmdnR0bkR4NUVvcWl3R0t4WU1tU0pUaDI3Smhlci96 -cnI3OWkzZHExYUJjZmp3S08KUTZHa1JvS1NJeUl3cm1GRHZOK3NHWjZ0VlV0WDlrb3ZLb0lrU1lp -TWlzS2VQWHRRV0ZpSVR6LzlGQUN3YytkT0xGdW02aWRyK1F2Sgp5Y25JeU1qQTRjT0hjZWpRSWN5 -Y09SUERody9IZmZmZHA0ZWNrNU9Ua1oyZGplTGlZaHc2ZEFqVFo4eEFaRlRVTFdjN0I0UFZha1hu -CnpwM3gvZmZmNjVLUEZmajdVR0Y4SzZCbk9KdDQ1cmFHdHJUd3JFU0FrVmN6aHYyZnU2R2hvZGl3 -WVFPZWUrNDVaR1ptWXNlT0hmQjYKdlJCRlVWY0Vldm5sbDlHeFkwYzgrT0NEQUVwQ2l0b0RuR1VB -QlN3aUxBYlVpRFloeXNxclNWTnNZTkxZYzg4OWgzbno1dUhBZ1FQbwoxNjhmZHU3Y0diUy9ScTVz -R1pQWlY4WWsrRWcrTkxSdjN4N3Z2ZmVlL24zUW9FRjZFbFRidG0weFpjb1VyRnk1RWlOR2pNRFpz -MmRSCnBVcVZhNTR6UVZJZ2FDOUNKaFlzcXhwQXQxQ3lIQUJlZWVVVjlPalJBNXMyYmNMRER6K00x -YXRYNit2OGpadC9VcGIvY281bDlIbDkKaHhBNExuVmJOWFBkSlJKeTdSSnNMdG5IRVZ5K0VkVXln -YzBHQmxhamVnMDhrbXBRSFY2QzIyZFU3UjRaVHA4OG9LS29IMEVpaUpLNgozc2lyNVVPRlRoR1g3 -UUl1Mmp6SUxmTG9pWHNNdzJENjlPbElTRWhBclZxMWREM203T3pzZ0JlRGlJZ0l6SjgvSHpWcTFF -RDkrdldSCm41K1BuSndjQUdxNTF1REJnOUdnUVFPOCtlYWIrajduejU3RjNXRmh5QkpGblluc0Fh -TVJDUllMR0VGQWdpaWlxa1dWdVR4aHR3TUEKQ2dzSzBMSmxTMFJHUm1MWXNHRjZXNXBHdGxZdWR2 -cjBhWXdjT1JLREJ3K0czVzdIMkxGakVSc2JpMW16WmdWc00yM2FOSHovL2ZkZwpXUmF2amhtTHhN -UmF3VytXRzhDMmJkdjAvNzFlTDdadTNZcG5ubmtHUTRZTXdhT1BQdnFYeUdwVzRPcW9LRFg2bDBO -V0NHNVJZMW02CnZUL0EwdVFiQm81UnkxbEtKV0M5K2VhYjZOR2pCekl5TWhBZUhvNnRXN2RpM3J4 -NWVubktwVXVYZ3ZiYkphZ3NRenpMUUZUVTdPb1EKczhvVDdSRVZuWFp3MWFwVmNEZ2MyTGh4SXdC -Zzh1VEorT1NUVDNEZmZmZjU5VldkMHkzZGY2Mk15WUtTTWlZdFdhczBHOVBwMDZkaApzOWtBQUNO -SGprUkVSQVR5OC9OUnFWS2xBQ0gzcThIdWtmWCttQTBzaXQyeVB1Y2NhVkZMcXk1ZHVvU01qQXpN -bmowYkFOQ3paMCs4CjhNSUx5TTNOeGFlZmZsb21DNXJ4ODJZMWFQWFlZU1lXRHE4Q3AxY0JHZFVJ -Z0tTb1VRclYrS2lzU0VaT05hcE9yM3BlTlRZeEU4OEUKblY5WHk0RUlvcXo0T0tRWktNVEFLUkR5 -aWtVVU9nV3dMSVBLNFNhd0xNQXpES3htN2NWSm5VUFRkSWF0UmhaM1ZDdUpHa1JHUnVLMwozMzVE -alJvMThNSUxMeUExTlJYcjE2OUhXbG9hSG4zMFVUMnhxRzNidGdGajl2ZnV0RnBnQURwUkNSR2h1 -TEFRc2JHeHVDSUlBSUJxClpqT01STWpNeklUVDZVUjhmTHg2blNRSm9xS1VWRUlGY1UzUG5Uc0hR -UkJRczJaTlBQREFBOWk4ZVROU1VsSkFSR2pUcGcyYU5Xc0cKcTlXS0tWT21ZTUNBQVZpMWFoVTJi -OTRjY0s4MGFkb1VxMU0ySXJScWJKbjJid1J6NTg3RjNyMTdVYnQyYmN5ZlB4K0ZoWVhvMmJNbgoz -bm5uSFZTclZ1MlcycTdBemFIQzgvMlhRek84Um82NUpxWGV6Y0EvL016NWFtcTljbG1OVWswZlZm -T21SbzBhQll2RkFwN244ZlBQClB3ZHNxeERoVXJHb2htZUxCSWl5QWlPbkduVVE0SlVaR0hoT04v -Q2RPblhTRFJVQVBQSEVFK0E0RHBJazNWQ2lCTWVxV3NLU0hPajEKYWFId2l4Y3Zva21USmdDQTc3 -NzdEakV4TVhqaGhSZncxbHR2QmJTamVZMnlVaExPQlFCWlZyMWJxNUZEcUltREtLdGMwQ0ZHQnBH -VwprcDlxbFNwVnNITGxTb1NHaGtLV1pTUW5KMlA5K3ZXdzIrMTYyTFAwdU54dU4rdytUMDBiaTZ3 -UUdJWVFibUVSYW1KOWlXWUVubFhQCnBaRlhEVis0aVZOcnFxR1NnaGg5bEtOZVNVMVdLM2JMa0V1 -VkEza2xCUTZ2NzZYT3BPb3VXd3pxV09yRW1aRmNNeHhWSWt5UWZGNHYKd3pLcTE2dHIwS292T1dF -V0huVXJod1M4ckJVVUZPQ1hYMzdCSzYrOGdrV0xGdUhZc1dNQTFKQ3RQNkdId1dEQTJiTm45ZS8r -dGNZSApEeDdVLzU4eFl3WUFYemllQ0hsNWVZanhNWFZkOUhvUkd4OFB1OTJPcUtnb25Sd2pqT2Ro -OEVWaElpd1c3TnUzRDdJc0IzeCsrZVVYCm5EdDNEbHUyYk1FMzMzeUR2THc4Yk5pd0FXKysrU1pZ -bGtWYVdocHljbkxRcFVzWGhJZUhZK1BHamJoOCtUSTJiTmlBcVZPbndtUXkKNFhCYUdyNzk3OWU0 -VlF3ZlBoemp4bzNEVjE5OWhSZGVlQUg3OSsvSFcyKzlwUnRlcjlkN3k4ZW93STJod3ZqK2k2R1FH -czRFMUFmawpYd1hOTWRLSUtoaW9URlRCN0o1LzNXUDM3dDF4NGNJRjlPalJRMSt2ZWtTa1oyTjdS -QVhuQzcwb2NJb0FDRVplTlJ6K2xId1JFUkVCClZJaG56cHlCeldZRHovTTNsS2tvS3dTblY0RlQw -RUtvdnRDMzd5RWNFaElDSXNMbzBhTXhZOFlNTkdqUW9Jd1hxdTBqK29nNzNLSmEKWTF2c2tWSHNW -V0EyY2pycGg1RUR3a3lzenJqazMxZU40RUo3aVlpSmljR2dRWU93WXNVS2JOdTJyWXduWmpLWnlt -UzBtZzJzVDVoQwpuYlBsZkxKMkRBUDlvOUk1bGh5ZjhYbTc0V1lXWVdaV0pXNlFDWVV1R1M1Qmdh -SW82bnk3b0NvOWhabFpHRGkxMzFwdE1jTXc0RGlnCldxUVJrVlplVlNsUzFPMjEwTEpYVkZBNXdv -eTRjRE5ZdGl6VktNL3ptRDE3Tm43OTlWZDlEcjlYcjE2SWk0dlR4NzU5Ky9ZQXFjWEsKbFN2cjBu -Ni8vLzQ3bGk5ZmptUEhqbUgvL3YzNk52RytlZnI2UG41cWhRaExNekxnc0ZnUVhiVXE5aFlVSU1m -dEJzTXdhT0E3bjBWdQpONzcrK210a1oyY2pKeWNINjlldlI2OWV2ZkRkZDkraGJ0MjZTRWhJd09y -VnErRndPTkM2ZFdzTUdEQUFvYUdoNmpueDNUdUxGaTNDClYxOTloZUxpWXR6VHBpMGVlZVFSUFVm -ZzJORWp0MXdpOU9DREQ2Sm16WnFZT1hNbSt2ZnZENXZOaG9NSEQwSVFCTWl5REpQSmRFdnQKVitE -R1VSRjIvaGZETGFnSlNRYU9nZUZHbURCdUVLWER6MFpmK1BscUdxTUxGaXlBMiswR2dETE1Qd29C -b1NZZUpwNkYzUzFCSmtLaApTNExES3lNMjFBQ3JrWU9SMS9TQlMwTGNHb3ZRcFV1WGROS0haY3VX -b1dyVnFtVkttUHdmZGtTcUtveFhMQ2xKRW1UVlF6UndKUzhNCmFXbHBtRGR2SHNhTUdSUHdRUGR2 -UjFObllzQkFMaldITE1tQUlLbGVwTlhJZ2dCWURJR01TOEVld3BxQjc5bXpKMDZkT29VclY2NlUK -MlNZWWU5TE5QTkExSTZoZVV6VWM3UlpWV1R5WG9NQXRhRVliQ0ROeEFUa0Uvc2ZUeGhSdTVoQm01 -bERrbGdHb3dnOEtLUkJrSU5UTQp3eVBLc0JvNC9Ud3pESU93c0RDc1diTUdTNWN1MWR2ak9BNGRP -blRBbjMvK3FSdm8xcTFiNDU1Nzdnbm8veWVmZklLdVhidkM1WEpoCjhPREJBZXZhdFd1SDRnc1hF -RzAybzZQVGlTTjJPd29FQVdsMk85SUFmSFhvRUFEZ2xmcjFBUUI5cTlmQWFZY0RibG5HbkRsek1H -Zk8KbklDeERobzBDQUNRbXBxcUoxK1ZQcGNhd2NldVhidUNic095TEVhT2V2bnFGK1U2OGZISEgr -UHk1Y3ZnZVI2dFdyVkNwMDZkRUIwZApqYnk4UFBUcDB3ZUNJS0J6NTg1NmFMMENmeTBxak8rL0ZF -UXFTeFR3OStoOGF0S0RnZ3lZZVZVK3p5c2h3TnNwRFl2RkFpRHdvYzB3CkRLeEd4c2RZeFNJcXhB -Q25WNFpibENIS0t1bEdtSWxEVEtoQmYvQnJjNythQVFvTEM0TWtTWGpwcFpmd3h4OS9sQ0dNSUFC -WDdBTEMKekR4NGpvRkgxRUxFNmpvaVJXWE5rb0RZMEpLZjBLUkprekJ4NHNSeXZWMm5vUGhFSUxT -amFPeUo2dnkxNUZ2SHNRREhNUWd6bHpBbQoyV3cyL1A3NzcyamZ2bjBaMVNCL3ZQTEtLK1d1QzRi -aTRtSmtaMmZqNHNXTE9IZnVIQVlOR29SOSsvWWhOallXTld2V0JNZHhFQVFCCkpwTkpQMy9Ccm9l -UmcxNHZUVDR5RXkyZ1VQcGx4aC9hK0NJdEhBU1pVT3lXUzdLYXZSSTh2aXk5S243enlqRXhNZmp5 -eXk4eFlNQUEKdUZ3dXZhOVZxMWJWUStzc3krclo1aHFJQ0IwN2RrUnFhaW9tVHB5SWd3Y1BvcUNn -QVBYcjEwZmZ2bjB4WnN3WWpCazFDc2MzYkVBRApnd0VUR2piRVY4ZU80UkxQSTE4UXdETU1hbGl0 -aURZYUlTdUVHS01SdmFyRjQzaGtCRVJaeHRtelp4RVpHWW02ZGV1aVo4K2U2Tml4Ckl3RGdzY2Nl -MHozTnk1Y3ZvM3IxNm1qVHBnMDZkZXFFL3YzN0I5MG1QcjQ2N20zVEJwMjdQSWdrUDNhd1c0Ri9C -Q2ttSmdidnZQTU8KNnRTcEE1dk5obUhEaG1IbHlwVVlPSEFnbGk5ZmZsdU9WNEdybzRKazQxOEts -eURyMG5KUlZ2NXZZYjRoUC9JTkk2ZFNONnBLS3pldQpFQVQ0cUN4RjhyV2pvTmd0NnA0cHl3Q3hv -UVpmUnErV2NLU3VlK09OTnpCcjFpeU1IejhlMDZaTkM5clB6SHgxRHN6QU1iQWFWUStPCm9NN0xL -bENUczhJdC9EVXAvN1FTR29kWENTaTE4amRJQ2hIY1hqbUF6TU5pWkJFZHdnZUVVQ2RPbklpOWUv -Zmk0TUdEZXZqMGV1SC8KOC9LLzFIZmRkUmRjTGhjYU5Xb0VnOEdBTDcvOFV1MER4K2tac0Zjem5v -cWl5aUk2dklwdkxsd05JY3NLd1dKa1VTbk00RHRteWY0WApMMTdVTTVRRCs2aDIwaU1SY29zRW5S -SVVBQ3FGOHVqOVVHZHMzNzRkaVltSnlNaklDTmgzNk5DaGVPQ0JCOUM3ZCs4QVphVnI5YjgwClVs -TlQ4ZUxqajZPM3dZQXJPVGtJRFEwdGs2VXV5ZXEwUjVFZzREdVhDM1AvdXdwM0pUZUIyVkMrSUFO -d1kvU09ncVMrcUxLTWV2K0UKM0tZWFpFM3BhZUhDaFVoSlNVSG56cDJ4ZVBGaWhJV0Y0WVVYWGtE -UG5qMFJHUmw1VzQ3MWI4SE4ycThLei9kZkNDSXFFVkF3QmxmVQorU3RRT3Z6TSs1SnNoQ0FaME5j -RGxtRmdNV2hLTFN5aVE0eHcrTHdsaFlBOHV3aEpBU3hHRGlZL0k5bXJWeTgwYnR3WUF3Y09MTk1t -CkVjSG1ZL29DU2hSbEZGK0NGRUdkOHd3cmgwKzZQUEFzSUlnS3ZKSVM4SUxBYytxOHFXNTRXUVlS -RnE2TVFFTHo1czN4NDQ4L29sMjcKZGdHQ0JsZUQ5anpRUEhaTlZ0RWY0ZUhoK1BEREQ2K3FVbFQ2 -L2lBaUZEZ2xGTG9rL1JnTW83NVFhUVl6THR5QWtDRDMxdkhqeHpGcQoxQ2pVckZrVHMyYk5RbXhz -U1JhdnRxMlpCeEppVEhCNFpEaTlDaGhHVGU0cTcvbVduWjJOUzVjdUlTb3E2cVlNcnlBSVNFdEx3 -eDkvCi9JRVhYM3dSQTBhT3hIY2Zmb2pXWm5NWnc2c1FJQk9oV0JDeHh1SEE0RmRmUThNN0dzSGhW -ZUNWR0lTWjJYTEw5UncrS2Njb0MzZk4KZTExTmFsUFZ1RzRuc1JYUDgvanp6eit4ZGV0V3BLU2tR -RkVVekpzM0QyM2J0cjE5QjZuQWRhRWk0ZXBmQ0hWZVRmV3dUUHpmWTNnMQorR2MvRTVGT1NWaGVB -dGExb0JFOGhKclV2MkZtQTZLc0J2QXNnOWd3SXhpR3dVV2JCM1pQU1dielBmZmNFOVR3YWdnejh3 -ZzNxd1pRCnE0V1ZmSm5KZ3FoQWxBZ0JYQi9YNkIvTE1ERHpMS0pEMVhZNTM1aE5CbCtXc2QrTGdk -bFFJdVlRMEtld01HemN1Qkd4c2JHb1VxV0sKbmlqamo3SjF0eVh6cjJxaVcyQjJOUURFeGNWaDNi -cDF5TS9QTDlQZTFjWVVGY0tqZXBRSjBTRThha1FiVWFlU0dmRlJKdFNxWkVaaQpyQmtoSmk0b1JX -bDhmRHdXTFZxRXhNUkVEQmt5QkxtNXVVSGJaeGdHb1dZT2xTTU1pQW5sRVJkdTBKTzFOSGc4SG16 -YXRBbjMzMzgvCnVuWHJGakJ2cjUyUDhqMzJrZ3RvTkJvUkdocUtCUXNXNE1pUkkzang1WmN4OExY -WHNDVXNESnR0Tmx6MmV2V1hyNHN1TjdZVUZlRmIKdHhzRFgzOFRBNTUrRGhhREtzOG95b1FDcDZ6 -bVVwUTZ6NHB2dnQvRU05ZE4zV3JrQTJVZmJ4ZmVlKzg5SkNVbDRhR0hIc0lUVHp5aApHOTZLNk9Q -Zmk0cXc4NzhNUkNxSHM2eW9DVEdXdjJHK04xZ2YvTVBQUklEWDk5MXdsVkxqOXUzYlkvdjI3VWhJ -U0VCbVptYlFka1ZaCkRWc0NLbUZGa2J1azlDUTZoRWVFbWNQaHc0Zng3ZkxsT0pXZURrbVNVS2x5 -WmZRWk1BQWRPM2FFMFdnc1laRVNDUjVSVmRWUkZOSTkKYWcxUklSd2lMWUVoZTM4QjkvTEdya0c3 -NzNOc2dpN0ZXRDNLcU5jUmx6WWNRNFlNUVhKeU1rYU9ISG5ONDVRK3BsTlFjTkVtSUNhVQpENWht -bUQ5L1B0cTFhNGM2ZGVxVVVkUXByNjNTeVdqYVdHNFU3ZHUzeDR3Wk04b2tSVjFQSHpUczJiTUhi -cmRibHorOEZweE9KNHhHClk0RGFrZGZyaGNsa3dyeDU4M0RtekJsODhNRUhBSURjM0Z4OHYzSWx2 -bHUrSFBtWEwwT1VGVlNLcTR5ZVR3eEMzNzZQb1dxVktucmUKaENhOG9SR2hxQytDSlY2d0pDdjYv -emR5cmx5K3BFZ2lCaVkvdmVWYmdhYjJwUDI5a2JCOEJjcWlJdXhjZ2V1Q0lKVkl5bDFOKy9XdgpS -T253TThjeU1QS3FBV2F2a29EbHYzODVhOEF3cWdGWEZJS1JaeEZsTmNEbUZrRUVIRGg2RXZNbWpV -SGU2ZE5JSWtLU3lRUUdRTzd4CjQ1aTRiaDJtMXF5SjhWT240aUZmWW9yRkFCaDVEaDVCQnNlcWRh -NU9RZkgxVi9XS1MvZUY1M25ZYkRhTUhEa1NMVnEwd0VzdnZSUmcKSkV0dnIycnBxditIbXRYMlNv -K09pRkJZV0lnREJ3N2dvNDgrMG85enZXQjhuamVnemxkcXhoMVFTN3JLTzUvbnpwM0RwRW1UTUcv -ZQpQTDFNS1JpMTVQVkNVNmtDZ0MxYnRvRGp1QUN0Mjh6TVRQQThyeXRBWFcwOG1zRm8zYnAxbWZW -WE15YlRwMC9IWjU5OWhwZGVlZ2wxCjZ0VEJRdzg5aFBEd2NBQnE4bG5WcWxYMS9TdFhyb3lSbzBa -aDVLaFJ5TFc1Y2FGUVFKVW9pMXFTQlhWTzI4Z3p2a1E2TmRQTXhETzYKbm5TQlUwYW9pWVhab0pa -eDNheUI0eGlBWWRYZkIzRHJlcnlhd2RYdUlhMWZGVWI0NzBWRjJQbGZCTTBEQXRRTTUvL2xENjEw -K0ZtcgpheFhrc2lIWDZ3R1JyeTBBWmw3TndEWHpESGlPUld5b0VkbG5UMlBjMDQ4ai9zd1pQQmtl -anJzaUlsREpaRUtZSk1GMCtUSTZNd3pxCm5UaUJONTUvSHQvNDFJY1loZ0hIQUNFbURpYWVSWWlK -UTZTVlI3aUZSNGd4dUh6aFR6LzloTmRlZXcyblQ1L0dybDI3d1BNODNHNDMKTGx5NFVNNTVBTUl0 -SENSWmdVZVFrVjNvaGMwbGxmR1F6NTgvajlqWVdEMEQvRWFoMVE2cjlKQWx5OHU3QnpadDJvU3VY -YnNpTlRVVgp6enp6VE5CdGR1M2FwZE0xWGcrMHVkWFJvMGRqeElnUmVPS0pKeEFXRm9halI0OWkv -ZnIxZVBqaGg1R1FrSUM4dkx6cmFxKzB0MUVlCmI3US91bmJ0Q3F2VmlyaTRPR3pjdUJIMzNYY2ZC -ZzBhaEljZWVnZzdkKzdFZ0FFRGdyYkI4enhZbG9YWDUrbnErdEFzZ3pDVE9uM0EKQUJBVjdWNVd6 -NnZEcTBaTGJ2YTNwcFdyR3puMXBkSXIzWjRRdEJiYTE0L2pLNmVyaUVEK2ZhZ3d2djhpcURxN3F1 -NnEyZkMvdi9UKwo1QnVBYWlCNFZrM0F1cDVud0pvMWE5Q3BVeWRVcTFZTkZvc1pOYXJGb1gzYmU3 -Rnk1YmNxV3hIUElOVElZT2h6VDZOZHk2YllkK3dJCnFoaU5tSGY2TkVZZlBJanRlWG5Jek14RVNM -VnErRkVROEszWGl5c0ZCWGhyN0ZpMGFORUNMTXVpZHUzYU9ybUUxY1FpOC9SSkRCN1kKSDgyUzZp -RThQQnd0V3JUQWh4OStpS0tpSWd3ZVBCaDc5dXhCdDI3ZDBLUkpFNHdlUFJwNzl1ekJsQ2xUTUhq -d1lIVHQyaFdIRHg4TwpHQVBETUFnemNTQlNIOVF1UVlIRjc4VW9MUzBOenp6ekRNYU1HWVA2dnZy -U1lMaHc0WUxPMkxWKy9YcTgrdXFyMkxScFU4RGNabUtNCkdWVWlqTmZrNzk2MWF4ZDY5T2lCR1RO -bTRQRGh3ekNielZpNGNHR1o3YlI1MW5idDJtSFlzR0Z3dVZ4QjJ6dDU4aVRHamgyTElVT0cKWU9y -VXFZaUlpTUN2di82S0FRTUc0TWNmZjlUWnpFUlJ4TXlaTXhFWEZ4ZGdCTW96Q01FTW1uaU5hZXUy -YmRzaUtTa0pUWm8wd1JkZgpmSUYxNjliaDRZY2Z4bXV2dlliSmt5Zmp6Smt6bURWclZwbjlMTDdm -aTlkM0FBUFBCb1RjVFR5TFNDc0hFODlBQVNDUlN2Z1NZbVRLCkpGZVZkNTZDZ1FoZ29CcksyMjJB -L1NFcGFpNklkSjI1REJXNERiaWE1TkhmaFg5SU4vN1BvOUNweWdZNlBMZEhOdkIyd0Y5NmtFaVYK -SGZTSTZxZTBJbDI3ZHUySVlSaXFWYXNXRVJHTkd6Y3VRSUxOWDlKdHhZb1YrbjRQUFBBQXdTY0hG -KzRuRTljN0xvNkdHd3hrWlpnQQp5VGlPWVhTcE9PMVlSRVMvLy80N0dZM0dvQkp5ZGV2V3BROC8v -SkNJaUg3KytXZnEyYk1uS1lwQ2pSbzFvbSsvL1phSWlONTQ0dzM2CjlOTlBmZU1zR1p5aUtIUTYx -MFVuTDZrZjJVOCt6bTYzMHllZmZFSmR1blFoaThWQ3hjWEZBZWVrdUxpWXBrMmJSZ01HREtERXhF -VDYKL1BQUHFYdjM3alJzMkRCNjlORkhhZmZ1M2ZveHJpWHhKOHN5RVJFVkZSVlJ6NTQ5YWZyMDZV -UkVKSW9pcGFXbEJXeTdhOWN1YXR1MgpMUkVSSFRwMGlCWXRXbFJ1bStQSGp5ZUdZV2pDaEFuNjh0 -emNYR3JWcWhVdFhMaVFIQTRIYmQrK25lNjQ0NDR5NDNPNzNYVHc0RUVTCkJPR3FmU2RTcFJnekxq -dXAwRmxXOXRBZlgzenhCUTBjT0ZEL3JpZ0twYVNrMEpneFkyajgrUEZVcTFZdFdySmtTZUE0RklV -S0hRSjUKUlprVTVlcHlqNEtrVUtGVHBBS25XR2FiZ29JQ0dqbHlKSTBaTSthYTR5RWlzbnRrOG9x -Qjk0cEhWTWp1VVVpVWJwK2UyblNUQUFBZwpBRWxFUVZUTW9LSW9WT3lSeWVHVmIxdWIveGJjclAz -NlIxaTlDdVA3MTBPUUZNb3RGaWkzV05BMVcvOHBFQ1NGWEVMSncweFJpTndDCmtWRHFIY0hmK0Nv -SzBZN2YvNkJkZi94SlY2NFVrTWZqb2VQSGoxUDkrdldKWVJocTJiS2x2bDlpOWVxNjhhMWhzZERM -OWVyUkI4bkoKTkxOSkUzcXBibDE5WFp1WUdIcW5VU1BxVUttU2p4c0xWTGx5WmIyZFJvMGFFY013 -MUxScE16cDg1QWdWRkJUUXBFbVRpR0VZQWtBMQphOWFrVHo3NWhJWU5HMFpMbHk2bHdzSkM2dENo -QTRtaVNFU3E4WjQ4ZVRKNVBKNkFjWGxFbWZLS3ZGVGdFS2pJSlpJb3lVRWY3RjZ2CmwreDJlOEN5 -SDMvOGtmcjE2MGZidG0yanJLd3N1dSsrKytpTk45NGdJcUszMzM2YjNubm5uWkw5ZlpyRndkbytk -dXdZN2RxMVMvOXUKdDl0cDRNQ0JkT0hDaGFEWGJPTEVpZFMrZmZ1QVpWcTdnaURvWTlhd2NlTkc2 -dGl4SXozMjJHT1VuWjFOR1JrWlZLdFdMWHJxcWFmbwowcVZMMUtwVksxcStmSGxBT3hwNjllcEZs -eTVkQ3RvUGJmdExSUjQ2bSsrbWZJZEkrUTVSTjVMbFljT0dEWlNWbGFWL256eDVNclZ1CjNacHlj -M1BwcDU5K29uYnQycFc3Ny9WQTB5UXUzUWVielVhN2QrK21JVU9HVUtkT25lajgrZk5YYmFmWUk1 -TzNsSkg5cXd5d1IxU28KeUMzL0pkckIvNWR4cy9icmZ4OTdyTURmQXBlZ2hzc3NCdmFHNmxQL0Rw -UU9Qek9NU3VxdnFlc0VnMWNHRWhNVHNIenBGMmpaOG01RQpSVVhoamp2dXdLbFRwd0NvL00yQW1u -MXNzOW4wQktQdVZhdWl2dFVLQzhjaHltaEVXbEdSdnU2UitIakVtczE0ckhwMWZUNUd5d0RPCnpj -M1ZDZndQSDA1RDB5Wk5FQk1UZzZsVHAvcjZ6S0JEaHc1WXVuUXBsaTFiaHV6c2JJU0hoK1B1dSsv -R3FsV3JjUHIwYVN4ZHVoU2kKS0FidzZDb0tRWllKbGNLTmlBb3hJTXpNcTlrMVlNcUUzcldTR0gr -Y09uVUtUWm8wd2YzMzM0K2FOV3VpVTZkT1NFMU5SVXBLQ2s2ZgpQaDFROThyN2lFMWtLaHZLUFgv -K1BKNTg4a2tVRmhZQ1VCT2lqaDA3Vm01TmNVSkNnczRZdFdyVktpaUtFcEM0MDdScDB3QTFxazZk -Ck9tSHo1czFvMTY0ZDB0TFNVS3RXTFp3NWN3YU5HalZDNDhhTmtaV1ZwZE14K3Jlak1WaHBnZ2Fs -WWZkSU9GL29CYzl4Q0RYemNBc3kKc2d2ZFlKbXJ6N1BhYkRhOCsrNjcrdmNSSTBaQVVSVEV4Y1ho -NFljZlJ1Zk9uVXRwUjk4WU5IbkYwbjJJaUloQTY5YXRzV2pSSWlRawpKQ0E5UFIxZXJ4ZE9wN05N -RzBTa2x6R1ZibHNMUVhza05ZbnVka0FUTmJ2ZEllMEtCRWVGOGYwWFFGSUlYazBqOW45UVduUXRx -SE5tCm1ySDFpUlZjSlFHTEFCaFlZUHEwdC9IcHA1OGlJeU1EWHE4MzRFRlhXRmdJUlNIWUhKNkE3 -T0VHWVdFb0xDeEVlbm82UEI0UE1wMU8KbFVHSVpSSG1Lei94dXQwdytSSlNORXBGamJ6ZnY4K2xQ -MmF6R2QyN2Q5ZDFZbG1XUmVmT25mSHBwNTlpN3R5NVdMRmlSUURGbnpZVwprNEVGRVh4bFVpckhz -Ly96ajY2U1NIVGZmZmRoeDQ0ZFdMQmdBYjc4OGt2czNMa1Rqei8rT05hc1dZTTc3N3dUUTRjTzFi -ZGxHVlVkClNWRTBtc3lTTnJ0MDZZSmh3NGJoK2VlZng5aXhZNUdTa29JSkV5WWdMUzBOUjQ0Y0th -TjY4OXh6eitHMzMzN0RnZ1VMOE41Nzc2RzQKdUZoZlp6UWE4Wi8vL0FmZmZQTk5tZjYrK09LTDZO -S2xDMlJaQnNNd2VPMjExeEFhR29yRXhFU3NXN2N1WU15QUtnanh5U2VmQktYcwp6TEY1NFpVSUlT -WWVYa2xHMWhVWE12T2RxRi9aZXMxYTJxNWR1MkxMbGkyUUpKVlE1Zno1ODBoS1N0SlZrTWFOR3hl -VUR6c1lydGRJCkN6NlpRa0I5bVR0OCtERGk0K1B4NjYrLzRxR0hIdEl6MlRWb0NYL0JrcHYvQ2dP -czFzeWpJdkhxYjhJLzcwbGNnZHNPemV2VlNoNysKaVNpZC9Rd0VKbUJwQmdOUXkyU2NqbUtkaUw1 -Mzc5NDRmLzQ4WkZsR3AwNmQ5RGFkQXNGa3RzRC9NUkxDODZoVXFSSXFWYXFFczJmUApJc2IzOEhV -cUNoeSsveTljdkFoUHFZZVB2eHhkdi83OUlVbFNHUW01U1pNbTRjeVpNeGc3ZHF6dU9YWHExQW5y -MXExRG5UcDE4T0NECkR3YlV0Q29Lb2NndEliZFlSTEZIZ2F5UUxvMm9rWStRTHd1MXZHZnIzWGZm -amRHalJ5TTdPeHY3OXUzRDZOR2o4Y2dqajZCMjdkb28KS2lvcVl6UzFSRFF0K3FGbVA2dU5qeGt6 -QmdNSERrUjBkRFFHRHg2TWI3LzlGbzgvL2pqaTR1TEtWYjBKRHc5SHpabzF5NUJsaElhRwpJajA5 -dll4aElwK1NqMFpkT1hueVpMUnIxdzY3ZCs5RzkrN2RBL3FwcWg5eFFldVBaUVV3R1RoSUN1RkNv -UnNuTGpwUTdCYVJYQ01jClJ1N2EwWjN3OEhEMDZORURRNGNPeGZmZmY0L3Z2dnNPeWNuSlNFeE1C -SEJqcFZ6anhvMEw2cm1XaHRGb2hNdmx3dWVmZjQ0QkF3YWcKVmF0V2lJaUlRTk9tVFRGLy9ueHMy -clFKRXlaTUNKQkZMSjJWN0EvZEFMTzN6d0NYU0RyZWNsTVZ1QVlxNm56L2owTldWUDVqUUtXUwov -Q2VEWjFYdlYxUktRbUE4cXo1b3ZUTGdiMFZkTGhjOEhnOEF3R3Exd21nMFlzV0tGZGl5Wll1K2pZ -RURURHlMS2xXcnduYnFWSUFICkhCc2JpK2pvYUhnS0NuREE1OVd1enNuQjNVWWp0cmpkQWJXd2dD -cEhsNVNVaEdQSGp1R0hWYXV3NlBNdjBlZmhIbkE2blVoTlRjVkgKSDMyRTJiTm42eThFaXhZdHdx -SkZpOUN6WjArY1BIa1NDUWtKbURCaEFnQy9la29HS0hiTFVBandpQUpNUElNSUMrK1RkOVNNby9v -cAo3OUpwQ2pWSlNVa3dHbzB3bTgyWU1HRUNNak16MGJoeFkweWVQQmtqUjQ1RVVsSlNtWDAxejhv -ZmZmcjAwZjh2S2lyQ3ZuMzdFQmNYCnB5OGpJc3laTXdjY3grR3BwNTdDOHVYTFlUQVk5RnBacjll -TGxKUVV6SjA3RnpObXpBandIbVZaMW8ydWhyZmVlZ3NPaHlQNDRLNEMKV1NGY0xQSWczKzdWSXlO -TnFvWEJhbVNEZXIyWEwxL0c3dDI3MGJWclZ6MFUvL3JycjJQanhvMUlUVTNGNWN1WE1XellzT3M2 -dHFhTwpwV0huenAwNGRPZ1E3cjMzM3FEYlg3eDRFY3VXTGNQSmt5ZVJuWjJOeU1oSURCMDZGUDM2 -OVFOUWNqK01HemNPeTVZdEszT09yZ2IxClpZcEFrbXFBelQ3YTFwc0Z4ekxnR0ZWdHkxK3hxd0sz -SDdmaytXNy9mK3hkZDNnVTFmcCtaMlpic21ra0VFSk5Ra2hDRVEyRWpsSkUKaW5UcHhVdFRWRkNC -aTFJRUtZS2cyQ2cyNElvaVJZcFhRVHBTcENzZ05iUUVRa0pDU0MrYnpkYlptZS8zeCt4TWRyT2JV -TlNyL3N6NwpQUHNrT3pONzJzeWM5M3pmK2NyUm8yallzQ0dpbzZQeDhjY2ZsM3ZkbVRObm9GS3A4 -UDMzMy8rVzZpcnhFSEE0ODZScVZjeHZlaW4vCkZ5aXJmcGFGVDdWemRlODZENFNGaFNsUzdqZmZm -SVBRMEZDTUdUTUc5YUxxQTVBbU5ObWRLcUordE5mNldKYkZJOEhCOEZPcFFBQ08KNU9iaWc0d01Y -TExibGIxVjEwbDJ4Y3BWMEdnMGNEZ2NHUC9DYzZoZXZUcnExYXVIUVlNRzRmang0MjVsdi9EQ0Mv -am9vNCtRbDVlSApEaDA2NFBYWFgwZGNYSnpTVDBtVkRDbFFoL00zTmdjaHg4Z2pyVUR5OVhVSWt0 -UjdyMG53NDQ4L3h2bno1MUdqUmcxczM3NGRXcTBXCnUzYnR3dUxGaStIcjY0dHQyN2JkMS9pN1Nx -azJtdzNkdTNmSHpKa3pQWHlPWTJOamNmNzhlZlR2M3gvcDZlbDQ3YlhYbEVRSmdpQWcKSnljSHMy -ZlBSdWZPblpYZkVaRmJvZ1pYVmJvODFnOHkwVnQ1QVFaemFTS04rcUcrcUtKWGczUEpqK3NxUVdx -MVdwdzRjY0pORXhBYwpISXdoUTRaZzNyeDVXTDE2dFNMMWVsTzVuanAxQ2l0V3JNREpreWVWWjhK -Z01BQUFldmJzaVFzWExuaHRweWlLK09TVFQvREdHMitnCmR1M2EyTHQzTHpadDJxUVFyOXh2UVJD -UW01c0xobUdVZmZmN2hmemVxRmpBeWt2di9HK0JXc1U0WTFqL3BtSXFjUS84SnNsMzBxUkoKV0xs -eUpjTER3OUd0V3pjTUd6Yk1MVkE2SUwyTTA2ZFBSL2Z1M1N2M0VmNEVhRGdHVmZXcWh3cGM4V2VB -WlJob09UbjdDeW5TR1pHbgpDdTZ6eno3RHNtWExzR1hMRnRTcEc0N1hwNzJCbmR1MzR1YU5KREFN -QTRjZ0piMFBEaWxOTGFkSW5VNm9XQlpUWTJQeFRWb2FVa3RLCjRFc0VYWlVxNEZVcW1Fd21aVUlX -aWRBb3JnVU8vM0llN3kxOEM1Y3VuTWZkakhTRWhGUkZUSU5ZOU8zYkR3MGJOWUpJcEtnODI3ZHYK -ai9idDJ5dDF1a3BNY3I5Qy9GUUk4VlBCYUJXUWIzSTRzd0lCQlNhSmZIVnFEc1RBWStQUHRSOTJ1 -eDE3OSs1RnYzNzlZTFZhRlkyQQozVzZIdytGUThpS1hCN2tzaThVQ25VNEhqdU1VTmZQdDI3Y2hD -SUtiR3JaWHIxN0szclhGWW5FTC9HRzMyOTMybVdXNEdsR0pKT1dTCjluVUdwaWpibHVUa1pQajcr -Nk42OWVwZXcyaUtST0E0RmpIVi9aQlhZb2VhQTJwWDBTbmovdkhISDJQV3JGbDQ2cW1uVUtkT0hV -VXkKbC8xM3k1WXA5MVVtYTdWYTdTSGQvdkxMTDlpOWV6ZE9uejZOOGVQSGc0alF2WHQzTkc3Y0dI -djI3RUZrWkNRbVRKamcwVytXWmJGdwo0VUkwYWRJRXk1Y3ZoOVZxVmRvaGlpSnljM054OHVSSmJO -cTBDVnF0Rm0zYXRQRXdMaXY3ekpiOUxvK3ZWa1dBUXlKZ25mcmhKV0ExCkM5Z2dSY05UYWY3YUMv -YS9NeDQ2dHJQQllFREhqaDF4L3Z4NUFNREVpUlBSclZzMzlPelowKzI2cFV1WFFxUFI0TXlaTStq -VnF4Y0cKREJqZzJZaksyTTYvSzd5OW5IOG4zRy83aWNnbDlWcnBucmFjYXBBWEpPV3RqNGFCMFZD -SXNjT0hRM1hqQmxyNytTSEFKYmJ2dGVKaQpoUHY2NHByUmlKT2lDTHRHbzFoTno1bzFDL1BuejRk -RGtLS0QyUnlrcElaemJTUEhBam9WQzUyYVZjSmpsdGNIYi8yVFNTbXZ4QUVyCkw0QUJneEEvTlFw -TVBIaUI0S3RoRWVpalV0TFd1Wkw4cVZPbk1IUG1USFR0MmhYTm16Zkh1blhyWURBWTBMSmxTd2lD -Z0lrVEp5cHEKNGJJUWlaUTQwbmE3M1MyVjRLRkRoekJseWhTY09uV3EzRDFmVjloc051emF0UXY5 -K3ZYemFxeEV6dnNpaWdSZnJXZHU0Q05Iam1ERgppaFVJQ1FuQjhlUEhjZmJzV2E4cVdDTEM3UUlM -Zk5ScTZOUXNBblR1MGRxMmJOa0NobUZRdDI1ZFdLMVd0R25UUm9sUTVRMW1zeGtzCnl5SXBLUW0x -YXRWU3lNL2JmVXBJU0ZBU1VCdzRjQUFYTDE2RTNXNUhreVpObEcwRitiZGwrMWRVVklTMzNub0xU -ei85Tkc3ZXZJbFQKcDA3QlpyUEJZckdnYmR1MmVPbWxsK0R2NzYrMDAxdjlkcnNkcTFldlJuRnhN -YVpQbis1MWJHd09TWHVrVStPaENkaktpN0FMZ0orVworY3Q1Ui96VjhORDg5VkFPU2lUNTdRMGRP -bFQ1L3Zubm43czUwUk1SM2Jsemh6cDI3RWlpS05MbzBhUHB1KysrODFyV2IyaEdKVnpnCjZyZElW -Qm8wNGU4Q1VmUU1yRkh4OVpLL281VVhsU0FTVmw2a0lyTkFSV2FCekhaM1gwK2owVWlMNXMrbkZv -MGFVZS82OVdsMFJBUTkKRnhsSmVwV0tBSkRlMTVjNGpsTUNaOFRFeEpESlpDTGVJZERScER4S3li -TlFvZGxCQm90QTJjVjJTaSt3MHQwaUcyVVo3RzRmT1VoRwpTVWtKQ1lKQURzZjlCVFVSUkpHS3pB -N0tNZktsbjJLZXNneDJ5aWkwVVdxZWhkSUxyQjYrdW9JZzBJa1RKMmpCZ2dYMHdnc3YwR09QClBV -YjkrdldqLy96blA1U2FtbHJoK04zTHA5TnNOaXZYVmdSUkZLbW9xSWgyNzk3dDlad2dpbFJpZFpB -Z2lCNSs1b0lnME83ZHU2bGYKdjM1MC9mcDFJaUxxMHFXTFVsYlp1a1ZScElJU0d4bk01UWZUa0lO -eW5EcDFpaFl1WEVqcjE2OG5tODNtdFR5NzNVNFhMbHp3Mm01WApsUFZkZHNXMGFkUGNyM1dJWkxB -NHZQclVYN2x5aFJvMGFFQkJRVUVlL3N1dXZ0STVPVGtlejA1UlVSSHQyN2VQK3ZUcFExMjdkcVc3 -CmQrOTZiYmZONlFmOHNENjdnaWo1L0ZyNVNwL2ZlK0ZoK2VzUE5iaWFQSGt5M24zM1haYzlydkpY -Qi9QbXpWUCs3OWl4SXpwMjdQaEgKTnUzL0ZRd0dBOTUrKzIxa1pHVEF6ODhQcTFhdEFvRDdkcFg0 -SzBCU0s3dCt2N2YwSzFsN2twdUtXU1JKQ3ZYeFl0bnQ1K2VITjJiUAp4c1FwVS9Eamp6L2kxczJi -S0RGWjBmN01LU1RmdklITXpFd0VCQVFnTWpJU3ZYcjF3dFNwVTZIVCtlQnFaZ2xNZGhIWHM0elFh -emlFCmgvakNYNmVHVHMyQkYwU1liQTdvTlZKK1g0WUI0TFJTMW1nMFlGbFdDZnRJVHBXcVNxVkNa -R1NrUjM5WVJvcEpMZHFrNUJkeVhGK1cKa2RMUWFWUXNmRFNzUnhwSWxtWFJ0bTFiTkd2V0REelBL -MGtRN2dXR2tSSUVBSkpmOU5DaFF4RVhGNGV4WThlaVZhdFdZRmxXVVNtNwpKak53aFNpS0VFVVJw -MCtmeG9VTEY5eFVyL0w3empzSURBdjRhTnl0a0dXVk5jdXk2Tml4STU1Kytta0FraVNmblowTmk4 -V0N0TFEwCjFLMWIxNlBkUWI1cTVYOEF5TXJLUW1KaUl2UjZQUjU1NUJIRlFycGx5NWJRYXJVNGZQ -Z3dKazJhaEl5TURMejc3cnR1Qm1ocXRScVAKUGZhWVd4MUVwV2szWmNpcWFwN25vVkpKbWFHc1Zp -dDBPaDErL2ZWWEpDVWxLU0ZBUlNJbHdVTForOVdvVVNOY3UzWU5DeFlzUUk4ZQpQZkRpaXkvaWhS -ZGVjT3RQU1VrSkFnSUNQQ1Qvd01CQWRPM2FGVjI3ZHNYTW1UTngvUGh4REJvMHlHTjgxTTZ0R3dz -UCtLanBnYjBjCldJYUJpcFUwUzVwS3d5czNIRDU4R0ljUEgvN3RCVDBzMnhjVkZWRmNYSnp5L1pW -WFhxR2RPM2U2WFJNWkdVa1JFUkVVRVJGQmZuNSsKRkJvYVNqLzg4SU5IV2IraEdaVWdvamZmZkpQ -R2pSdEhWNjllcFlrVEo5TE9uVHRwK1BEaHRHREJndnVXdXY0cXFFaGFUMGhJb0ZhdApXcmxGYlNL -U0pVYUJER1lwRk4rOXBEUlg4STVTcWRrYlJGR2s4N2VMYU0vbEhPV3o5M0lPblVvcG92UUNLK1dY -OEdTd0NKUmZ3dE9kCkFpczVIT1czMzJxMTBwMDdkK2pkZDkrbHdzTENjdXN6MlVTeU85dGxkNGhr -c2ptbzBNU1RJTHBMaldWRFZMcU5pU0JKL1JhTGhleDIKTzJWbFpkR0pFeWZLYmR1bVRadW9XYk5t -OU9tbm45SXp6enhEYTlldVZhUmVJa21LcndnRkJRVWUvUkJGa1N4TzdVUFo5bjMwMFVmVQpwRWtU -bWp4NU1tM2Z2bDA1bnBhV1J2Mzc5NmRYWDMyVnhvMGJSeTFidHFTOHZEeXY0eVNYYVRLWnFFbVRK -dFNqUnc4YU8zWXMvZXRmCi82TEV4RVMzNjR1S2lxaFJvMFkwYk5pd2Nzc3BlN3hzR05hTEZ5L1N4 -WXNYbGUrdTc5YllzV05wNDhhTnluZTdRNkM4RXY2ZTBlUXUKWDc1TTA2Wk5vOXpjM0Fxdkl5S1BF -SnVkTzNlbTlldlgwNlZMbDZodjM3NGVJVUJsamNQRFNzQ1M5QzZRL1hlTW92WC9FUS9MWDcrSgo5 -ZUxpNHVqSWtTT1VrcEpDc2JHeEZUNUFsV3JuUHdhQ0lGRDM3dDNwOU9uVFJFVFVva1VMR2pod0lL -MWR1NVo2OXV4Sml4WXQrc3VxCm44dk9TeFcxYytIQ2hSUWJHMHV2dmZZYXhjZkhVMEpDZ2tzNUls -bnR3a09GelN3Nzhib1NqdXMxS1hrbTJuODExNDJFRDE3THBZUTcKUmtvcnNGSmVDVS9GMW9wREdz -cGwyV3cyU2s1TzluS095TWE3aDlxc3FLMWx6NVU5Zi9YcVZSbytmRGhkdUhDQjFxMWJSNE1HRGFK -WgpzMlo1L2IzVmFxWFBQdnRNK1Y1WVdFaUppWWwwN2RvMTJyZHZuMGVzNDN0QkZFVVN2SVJYSkpJ -V1VmSHg4WFQ2OUduNi9QUFBhY1NJCkVRb0JtODFtTi9WdXg0NGRsZGpZNVdIRmloWFVwMDhmSWlM -S3pNeWtKVXVXVUZoWUdQMzAwMC9LTld2WHJxV0dEUnQ2L0ZZUXBjV04KYTd1dGRvRUt6UTRxTWp2 -YzRteXZXcldLK3ZmdlQrM2F0YVBPblR2VDBxVkxhZE9tVFhUbzBDRWFNMllNelpneG83UmNRYVJD -czJkcwo1M3RCR3JlS242UGp4NC9UcTYrK1NnTUhEcVJidDI0UkVkRVhYM3hCOGZIeDlONTc3M21V -WjNjOEhBR0xva2pHeW5qUDk4U2ZRcjZICkR4K21CZzBhVUZSVWxCSlVmc1dLRlVyd2VGZFVrdThm -aCtYTGw5T3JyNzVLYjczMUZ2bjUrWkhGWWlFaW9veU1EQm85ZW5TNThYbi8KS2pDWlRGNlB5MlI4 -NjlZdHFsR2pCcTFjdVpLSWlQN3puLys0eFc1KzBBbXVQTHozM252VXBFa1RPbi8rdk5mekZydEFG -KzhVdXhIdwpuc3M1ZE9KbUFTVm1tY2hvOFp4c0wxeTRvQ3lNWEZGV0kxRTZTUXIzRmE4M096djdu -c2tHZnYzMVZ4b3hZb1J5WFVaR0JrVkZSU25qCldCYmxqV092WHIzb3YvLzlyOXV4aWhaS29paVN2 -VXhzWlhtL2xZam8yTEZqTkdiTUdPWFlybDI3S0NJaVFoa1QxN0xuelp0SHUzYnQKcXFpYmRPUEdE -Um85ZWpUbDV1WXF2OTJ5WlF2MTd0MmJ6cDA3cDF4WE5xYTJ0SGNzN2FtN1NuY2xWZ2VsRjFpcHdN -UzdFVlpCUVFFZApQSGlRdG0vZlR0dTNiNmNwVTZaUTI3WnRhZWpRb2RTeFkwZnEzcjI3VzltRlpn -Y1pyU0paN1ErLzkwb2tMWVJXcmx4SlU2Wk1vYTVkCnU5TGpqejlPYytiTThkanZQWC8rUEVWRlJW -R1BIajJVT1VCdWk5bitjQVJjR2UvNTN2aFR5UGYzUWlYNVBqenNkanNWRkJUUXBFbVQKNk1pUkl6 -Umh3Z1E2ZGVvVUVSR2RQbjJhV3JkdS9TZTMwQk91Yy96Y3VYT3BXYk5tSG1TVW5aM3Raa0MyYmRz -MjZ0dTNyL0o5K2ZMbApDcWs4cUtGV1djaVMxdXpaczZsdDI3WTBjK1pNai9ZNkJDS3pYVXI0a0Y5 -aXA1K1RDOXdJZVAvVlhLK3EzM2ZlZVlkcTFLaEJMNy84Ck1qa2MzcE1hRUVrU21Fd0V1VWFlaXN5 -T2N0VjlQTS9UQng5OFFERXhNWFRnd0FHM3NiTllMSFQ0OEdGS1NFaWc5UFIwR2pseXBHTEUKUkNR -UjhvQUJBK2pLbFN2M1BUNkhEaDBxZDRGVUZwTFJtMEEydnBSQVAvNzRZNnBWcTVhU2FlcnMyYk0w -YU5BZ01oZ015alZEaHc2bApCUXNXRUpHMEdFdExTNk81YytmU3ZIbnp2S3FkWFNFSUF1M2N1Wk9X -TGwzcWRtejI3Tm5sWmx1UzcwT1JXUnJ6QXBPN01WVldrWlZ5CmpQY251VG9jRGpwejVnd2xKU1c1 -bGM4N3BHMlFFcHRFZkdhYnFHeHplQ3ZEYkRiVHNXUEgzTzZuSUFqMDVwdHZLbG1oU2twS3ZHcG4K -TEJZTERSbzBpQ1pQbmt4ZmZQR0YxLzQrREFHTFRzTXJzNzFTK2kwUGxlVDdEOFR4NDhkcHdvUUpO -R0xFQ0VVMTk5bG5uMUZZV0JpTgpHemVPbm4zMjJRZFdGLzZSRUVVaTEvZis2NisvcHZidDI5UGd3 -WU5wL2ZyMWJ0ZXVYYnZXTGJOTVVWRVJqUnc1MG1PMUw0cEVndUE5CkJlR0R3R2cwMHNDQkEybkhq -aDNVcDA4ZnVubnpwclA4MGt4TERxRzBEbEVVS2FQUVFvZXU1OUdleXptVWttY3FkNkorOWRWWGFm -ancKNFc3bGxZVk1Xam5GN3BiVHVjVjJqd3c5VnF1Vjd0NjlTNFdGaFc0cTJ0VFVWR3JidGkyTkh6 -K2VJaUlpYVBQbXpmVDIyMjlUczJiTgpGQ25UYkRiVFN5KzlSRC8rK0tQWE5zaC9MUmJMZlc5WENN -NjJGNWw1eWpiWUtDM2ZxcER2clZ1M3FFdVhMalJuemh4cTBhS0ZJcEgxCjdkdlh6VUw0eElrVDlO -eHp6NUhCWUtDN2QrK1MxV3IxU2pJT2g4TkRnaVdTU09yTW1UTTBZOFlNSlMzaHFsV3I2Tmxubi9X -d1VwYkgKMm15WHJIbHpqZEpZdXk0WUhJSkFtUWFiQjFISmFtSFg5bmdianhLYncyMDhlYUdVL0Vx -c2tsVys2elpKWEZ3Y1BmWFVVOVN6WjArdgpDNk5QUHZtRVdyZHVUVjkrK2FYSHVSMDdkdERJa1NP -cFo4K2VIaWtaeTdiOVlRalliQmZJWUxuM2xzby9GWlhrK3c5RXExYXRhTmV1ClhiUjY5V3BxMGFJ -RnZmUE9PMFJFbEp5Y1RPdldyWE5iaWYvWkVFVWltOE9kd0t4V0sxMjllcFVLQ3d1cFRaczJIaE5I -ejU0OWFjMmEKTlpTWW1FZ3pac3lnd1lNSGU1M3N4SEpTRU40djVNbjBwWmRlb3JObno5S1VLVlBj -OWo4ckF1OFFLQ25MV081Kzg4bVRKNmxKa3lhSwpGSC81OG1XYU0yZU9oeHBYNm9lb3FHd0xUTHlI -NjVJM3lCTmlmbjQrdFcvZm5qNzQ0QU1pSWpwNDhDQTFhOWFNaW91TDZibm5ucU5oCnc0WXA2dStl -UFh2UzZ0V3J2WmFYbnA1T1U2Wk1vUTgrK0lCTUpwUFNwb29tWGtHVUNPeDJ2cFZ1NVZyb1pyYlp6 -UjNxMnJWclJFUTAKWXNRSSt2ZS8vMDFFa3FvNE5qWldTV1A0NjYrLzB1alJvOTM2NUEzVHBrMmp3 -WU1ISzFKeTJiRW9LaXFpK2ZQbjAvUFBQMCtSa1pFZQppenFaZUhPTlVyNWRrMDNhMHl5eENWUnNs -WXlMNUZ5OThxTG5ma2pITmNldnhTNlVtek5iY0xvQmxWZ2xFcFMxRzQ4ODhvamk3aVR2CitaYXQ5 -OHFWSzlTdlh6L2FzMmVQY216SmtpWDB4Qk5QMEVjZmZhUm9KKzVsRy9DZ0JPd1FKT25YVnVsMjVC -V1Y1UHNQdzZaTm02aFQKcDA3Szk5VFVWT3JjdWJNeXlYLy8vZmVLTWNhZkRVR1VKRk83bzN6cGRN -dVdMVFJreUJDM2llUG16WnYwMGtzdlViTm16V2o2OU9sdQo2bE52ZFpqdEVyay9ERTZkT2tVVEpr -d2dJcUp2dnZtR1ltTmpQVlNqRmNIYmhNZnpQQTBZTUlEbXo1OVBSTksrWjBaR0JxMWV2Wm9ZCmhy -bW5JWkhnTlA3eDVwZGE5bjlCRUdqdjNyMXVWc25EaHcrbnMyZlBFaEhSb2tXTGFQVG8wZFNtVFJ0 -NjRva252RXFWS1NrcDlNSUwKTDlEeTVjc3I3RmRaaUtKSXVTNit5YmxHS2FldXZVeGU0aXRYcmxD -VEprM296Smt6UkVTMFpzMGFHamx5SkUyZlBwMTY5KzVOUzVjdQpyYkErbTgxRzc3Ly9QcDA3ZDQ0 -YU5XcEVQLy84TS9HOHAyclk0WERRaFFzWHZIcFdFSlVtdTg5MXR0VmdkbEJ1c1ozeVRUeVo3SUpp -CmFlN05tbHcySkhNNC9aV3Rkb0VLVFhZeVdCeVVWOEtUMGVwUStuNnZNZU1kb21LZGYrN2N1WHZt -OWxYYWI3ZlR0V3ZYYU5La1NkUzgKZVhNNmZ2eTRjczVWS3E5SXkvS2dCRnhpRmNoNEh3YUYvMFJV -a3U4L0RMdDI3VkpVeXJJcWI5U29VYlJ0MnpZeUdvMFVIUjN0Wm5UeApaMEFVaVhpQnlNTGZIeW1P -SFR2V3cxM05ZREI0M1cvMHVtL20zSmQ5R051UWhJUUVHang0TUEwWk1vVEN3OE1wS2lwSzBTUThy -THZXCmpSczMzSXh3NUhJMmI5NU1nd2NQcHBTVWxBY3VVNTVjQlVHZ3FWT25VbTV1NlY2emZML2w3 -OTI2ZFZQY1h4d09CMlZtWmlwa1hCWWwKSlNVVUhoNU9qUnMzcG9TRWhITDNwNzBkRXdUUnVWY3Rm -ZkpLZU1vMTJpbS94Sk1ZRnl4WTREWW1wMCtmcGtXTEZ0RzZkZXU4dHN0YgpnQTBpb2tHREJ0SGd3 -WU9wUTRjT3RHelpNcThHYkJWQmxsQ2x0a29mb3pNb1JrV2taYkk2cU1qTVUwcXVtYzZsRml1ZlRJ -T2RNZzFTCm43MzErMTV0ZVZCU3k4ek1wRTgvL1ZSeEh5dTdSU0NLSWhrdGpuTEo5VUVKMk81ME83 -b2ZZOEIvR2g2V3Z4NDZ2T1R2aWNyd2tnK0gKb3FJaUJBVUZLZDgzYjk2TUF3Y09nR1ZaVksxYUZR -c1hMdnpUMmtZa1pTY2lraElEbFBYeGwrKzNxL08rd1dCQXIxNjlzR1hMRm9TRwpocGFiM1lWSUNr -TEJzWjdPLzd6Z1REZW5jZy9hVVJZaUFYQUc5bUFZS2NqRTVNbVRFUjhmanhkZWVBRW5UcHpBbWpW -cjNITE0zbCsvCjNXTXVBMUlxT2J2ZERvMUdBNlBSaUg3OSttSDgrUEhvMTYrZkVyaWh1TGdZbVpt -WmlJMk5MYmM4UUlxVmZ1VElFY3lmUHg4TkdqVEEKckZtelVLZE9IYmZmeUhYMTc5OGZvMGVQaHQx -dXg4cVZLOUdyVnkrRWg0ZWphdFdxYU5pd0lVSkNRcFR5aVFoWldWbW9WcTBhaUFocQpsL0NiMmRu -WnVIYnRHdHEwYWVNMXpLUkRFR0d3aWtwN3pUWUJka0VLOGxERlY0VkFIeFZZdGpUUVRzK2VQUkVS -RVFHYnpZYnAwNmQ3CjlGbUcwV2pFRjE5OGdUcDE2bURnd0lGdVkvRDY2Ni9qMVZkZnhkbXpaN0Yy -N1ZyTW5qMGJMVnUydksvNzRncVJDTHlEb0ZZeFNwak4KaXNwd2lJUUNrd0NqMVFHanhhR2NDd3ZV -Z21FWnFEa0dHbzZCdis3Qk00aFZOQWZlSzhpRmEvL0lHY2F6eENiZEV6OHRxNFFsTGZzYgpLeThs -VVBCUm84SkFIRVNFRWh1QlkvK2FPY0gvVER3c2YxV1M3Lzh6UFBYVVV6aCsvRGp1M3IyTDRPRGdQ -NlVOb2pNeFBNdVU1cVYxCk95OFNiQTd5bUJCeWMzUFJ1blZyUkVkSFkvdjI3VXJxdDdJZ0lsZ2RF -dmxxUEJJT1NIVVQ0SXpNNDM1T0pDbnVyVWhTQUhuT1Mvc0EKaVl6djNyMkxKNTU0NG1HSHdRMXlN -UCs1YytjaUt5c0xpeFl0VW1JSTUrWGxZZlRvMFRDYnpjalB6OGYzMy9TaW9aa0FBQ0FBU1VSQgpW -SCtQcUtnb3IyV01IejhlZS9ic3daSWxTNVRJUnE0TG1mejhmSHovM1hjNHNHTUhUcDQ0QVgrV2hj -NWtRckJlaitDZ0lCREx3c1J4CnlPWjUrQVVHNHJIbXpURnd4QWkwYTlmT1k3Rmp0Vm94ZS9aczdO -Ky9IMDJhTkVGSVNBakdqQm5qTlJwVW9WbUEwY3JqVnA0WmZsb1YKcXZocW5HMEN3b08xVURrRFho -dU5SblRzMkJHNXVibFl2SGd4aGcwYlZ1NllHUXdHN04yN0Y0c1dMY0xMTDcrc1JJRUMzTlA2TFYy -NgpGQ3pMNHBWWFhpazNwclRKSm9KMWtxUEt5Nkx0ZmlHS2hId1RqNXdDQTdiL3NBTUh2L3NHZWRt -WkFJa0lDZ3BDcDU2OU1XejRVTVRVCnIvZFE1Y3Z0RlVuS2NpVmxubVRBT1ovVis0bXpURVFvTUF0 -d1RhV3M1aGo0NjFnUGduMFFBclk1cFBlMk10NnpPeXJKOXg4T2VlVzcKZGV0V1hMcDBDWFBuenYw -VDJpQzl4QTZ4bE5qS3R0RXVTTmxTR0VZS0FlbWFvR0RhdEduUTYvWDMxWGJSU2NCYXpuUENJQUpz -VG5KVwpjMUF5QlRtY2s1R3FBdEoxT0J6Z09NN3I1RnllOU9RTmVYbDVTb1l2T1k5dGNuSXl4bzRk -aTBXTEZxRk5telpnV1JaSGp4N0ZrU05ICmtKV1ZoVTgvL1JSVHBrekJZNDg5aGxHalJubVVLUWdD -MXF4WmcrKysrdzZGaFlXb1U2Y09ac3lZZ2NqSVNHUm1adUxMRlN2dzA5NjkKcUNlS2lGR3JZY3JJ -Z01Wb1JGUlVsSnVHUk81TEVjL2p0c21NUkk0RlZhbUM0YzgvaitFalJzRFgxeGNBOFBYWFgrUFNw -VXQ0KysyMwp3Zk04WG52dE5Zd1pNOFlqYnkwUklhUFFpcVFjczNJc1dLK0JuMWFTNnZVYUZxRUJH -bkFzZzdmZmZodEdvMUhKN0hNL3lNM054Y3N2CnY0emx5NWNqTEN6TTQvekFnUVBSdjM5L0RCOCsz -T01jT1pOdldCMmtaUFppQUdoVURIeThTSU91a05QOG1Vd21aVEVraWlLV0xWbUcKdFN0WG9qclBv -eEduUm9oRzZwdU5CRnczVzVERU1vaC80Z2tzL1BCRGhBUlhlV2lpTXRwRWFRRUpSbGxRcWxoSnF3 -TlV2SUFRaVdDMgppN0R5cGFrNUFlOVNzRXpBSWtuSkdNb2pZTkVwL1dvNEtPazZLMUZKdnY5WUVC -RUk3aXRpYjBuTC8vaDJWS3htRmtSblJodm5lVFVuCkVhUldWVXJBWXBrMGJ2Y0NMNUNVdlVYbE9S -R0pUZ0ptR2VsL1dRcG5tWXJWMGVYM1Q0NGJYZjZQRHg4K2pCMDdkbURyMXExbzJiSWwKMXE5ZkQ1 -VktCVUVRc0hUcFVseTZkQW5ObWpYRHVISGo0T3ZyaTd5OFBMejk5dHVJakl6RWtDRkRFQllXcGto -dnk1Y3ZyN0E5UlVWRgoyTFp0RzBKRFE3Rmg3Vm9jMjdVTEhRSUMwTHhhTmZnNFZkbEZSVVhnT082 -K1lqMW5XaXc0WjdYaUZvQVdIVHJnbVdlZVFlL2V2Wlh6CkJ3OGV4UFRwMDdGMDZWSkVSMGVqZXZY -cWJvc1JRU1Q4bkZ3SXUwc1MyT3IrV21qVjBuTllxNG9HT2hVTElxcndIcnMrQTNMNXYvenkKQzhh -T0hZdkRodzhqTkRUVTdYcXIxWXBUcDA2aFE0Y09IbVhKYW1JRzB2c2hBa3E4WlRYSDRPa3VUK0xv -MGFNSUR3OUhTa29LUm84ZQpqYlZyMXlydHNGZ3MyTFJwRTFhdlhvM2p4NDlERkVXODhkcHJPUHZE -ZG5UUjY2RmpWSkI3eTBES2d3c0EyUVlMVGhtTGNhZGFkV1RuClp5SS9Kd3RQdEcrUGc0ZCtBc2RJ -MlpzT0h6NE1obUV3ZWZKa0JBWUdlbTE3aVoyZ1UwblN1cnpWd2d2U0FsZk5TWm9kb0dJUzVnVkMK -aVZWUUZwNkE5RnQvSGVmMkxMc1NzSThhWU10NXpzMTJFWUlvWlR1cWpQY3M0V0g1Nnc5TnJGQ0pQ -eDRsTmhFaUVmeTFuUExDL0JuRQpDd0FxQm1EWXNxcGU5N1IvUG1wQUlBWWxOdWxITEZNYWVQNUJF -MEdvV0VtYTVjWFNpUWlRcEZ6Qk9kbklaSy82RFF0MWFlSWpHRzJFCkFDK3FPMUVVTVgzNmRCdzll -bFJKTENBblVBQ2N1VmExV3F4ZnZ4NzE2OWRYSk12azVHVG9kRHEwYnQwYVlXRmh5TTdPeHVYTGwv -SFYKVjE4cDViSXM2MVhpRGdvS1FxdFdyZkQ2eXkrRHUzMGJ6NGVHQWpZYldFRUFuUFY2azNiZEpa -N1NleFhNc29qS3pvWWZ3K0RNM3IzWQo5Y01QK0hEWk1nd2JOZ3luVHAzQ3UrKytpMWF0V3VITEw3 -OUVabVltOXV6WjQxWVdBNkJlTlY5Y3p6SXB4M2hCZ0krR2cwaEFUakdQCk9zRmF0M3ZzY0RodzZk -SWxYTDkrSGJlU0w4TnVOME1RZ0tqNmp5SXdNQkFxbFFvMm13MHJWcXpBekprendiSXNUcDQ4aVpT -VUZJd1kKTVFJQW9OUHAwTDU5ZTQ5N0pqcjNQVTEyNlVGZ25Ra3ExTTZ0Q3RmdENya2ZjcjVvK2J0 -T3A4T1lNV093YytkT3JGcTFDbWFqRWVlMgpiOGN6UVlGUXNTeHN2S2c4KzY2UGhJOWFoVWhCRFV2 -YUhWeTFGSUlBbkx5ZWl6YlRkaUNxUmdBeVQyN0VzYTMvQVFEMEh6d2NUYnlRCmIxa3dEQU1WQjZn -NE9Xa0RZT1pselErNVhlY0tOY2NneUpkVHhrTGVsaWt3Q1c1U01NTXcwS2tsQXBhVE1YZ2pZSTJL -Z2RrdUxYclYKLzl0cDV2OGRLaVhmdnpGRWtaQm5rb3crZ24xVlVISC8yNVdvZk12S1d3QzdTcnNh -bFpSQngrcEFoWm1ISGhTdTZtY0NBNGRUK2xheAowa2RXTjkvTEFPdGVJQ0lVV1VTb09jQlA2em5y -Mkd3MnhSanB3SUVEK09pamo3Qjc5MjYzYTA2Y09JRTMzbmdEa3laTndvQUJBN0I3CjkyNXMyclFK -cTFhdGdrNm53K0xGaTVHYm00czMzM3hUSVU1QkpGaDRBWHFYMVFYRE1EaDkralFtamhtRDFqeVBS -dVhrNmkzYmZwN24KM2ZiUkJiRTAydzNQOHlndUxrWklTQWlzZ29Edk1qS1FybGJqOG8wYllGbFd5 -UkpVV0ZpSThlUEhZOUtrU1dqVHBvMWJIWUpJT0g2egpFQndMUklmcUVlcXZnYzFCeUNpMGdTQVo2 -bFFQME1CWWJNRG1UUnV3OWZ2VkNBMHg0NUZZQitxRkUrdzJJKzdlelVkbXJpOHVYQVpTCjd6Q29W -ejhla3lhOWh1enNiQnc3ZGd5aUtDSXhNUkd4c2JHS2xGcTJud0RnRUNWSmtRSEFzcExHZ2dIY0pO -Vk9uVHJoNk5HamlJaUkKd0xsejU1Q2RuZTNWK0d2SGpoMDRkdXdZRHYzd0EwYjQrRUF2WnpkeVN0 -RUFvT0lrRFE2UjFJWnI2VVVRU01RQjNvck01aU9ocXRGRQpLYytXc0JXMnk5c0FCdkRyL1NGQ3cy -cWhmbzBBeE5RS1JIU05BRVRYREVTRFdvR29HcVNIajVvcE55ZXZKTmxMWkNwcmQrU0ZwamVwClZC -QUpKVFlCOWxJN01ROHBtSWhnNGFWK2VKT0FpUWdtdTZSTjBHc3JWYzlBcGVUN2o0U1psMWIxR283 -NVN4RXZrV1NZd2J0SXUzYUIKWUpXVDI2c1pxSCtuTkdVTUdMQU13U1lBREFocWxnSG5ZbWpGc2RM -RVpCYzhEYkFlcUI1R2FqTXZBQTZCUE1aYnE5VXFrdXI1OCtmUgpzbVZMTjBJR2dIYnQydUhvMGFQ -Szl6Tm56cUIyN2RyUTZYVFl0MjhmRGg0OGlObXpaM3VvaVIyQ3U4cjc3Tm16ZUdYa1NIUmhHSVRm -CkIvRUNrZ3E2U3BVcXluZVJTdThoSUtYVms4L3JPQTdQVkt1R0xhbXBlR25NR1B6SGhlUkVVVVJB -UUlDSGhUVWczZmVJRUIvVUNpbzEKc05LcEdZUUdxSkZkek1Oc0Y3RjUrMzU4K2NrTWRHeHB3S2NM -ZlJFVjZhZjgzbWJUNCtiTkV2ajcrNkp1M1RwSVRyRmgwN1kwTEZvdwpHVGRUaXZIdHQ5K2lSWXNX -TUpsTUdEaHdJREl6TTFHalJnMjNOc2pQbEpwanZFcG01ZDErdlY2UGhnMGJLcFBvQng5OGdONjll -K1AxCjExL0hqaDA3QUFBZGF0WENtdXhzM0N3cFFWMWZYd3lzWFJ0NlJvMy8zazFIVW9rUjlmVis2 -RkExRlBYOS9lQ3JVMEVRQ1ZuRmQyQSsKL0Q3YVB2NEVoa3ovSEZQSERZSTk2N3B6d0lDUzdhK2hC -RUNLUGdTLzlQbElhVTlFcUQrT0wrNkQvZWZ2NE1sSGEwS3I1aUFTZ1VRQwp3ekxPOUpXTXNvVWpp -aElSMngyQURZQ2FJNmhaZC9Ma1dBWUJPZzUyZ1ZCaUZSWER5TEpTc0k5YUltQnZFckNVeGhPd09z -aHQ4VmFKCkIwZmwwdVZ2Q3BFSUZxZEs3WCs5QXBYVmxXWFZ5NjRRU1NJN0ZRdVk3ZEpMcnVFQWZ4 -MERqZXEzN3hmSmhHcDFRSElaZ3BSN1ZWV0cKWUJtbk5FQ0EyNzdYdlpDV2xvYmR1M2REZERFWjlY -RWFtWmg1MGV0S1Z6NldtWm1KN094c2FMWGFDcTlyMTY0ZE5tellnQmRmZkJFegpac3pBYzg4OWh5 -ZWVlRUxaTmhCRlFwR1pSNENQU3Bua01qSXk4TXJvMGVqTU1Balg2Ky9aRDFFVWNmMzZkVGdjRHZm -akpCbTl1VGJQClZTVnNMQzVHUjE5ZkdINzlGWFBmZUFOR294RW5UNTdFdUhIam9OZnJ2ZTVUc2l5 -RFdrRTZoWGhsK090VXFPS3J3cFoxcTdCaHhYaTgKTThPQ21mK3VncWhJclhNOHBPdTBXZzFpWTJO -aHNaaVJmdWNPb2lLMStQZUxPcnoyUWdZZWE2eEM0dlhMOFBIeHdiVnIxOUNnUVFQNAordnIrYmhv -emp1TlFyMTQ5S2NjeHkrTEdqUnVZT25VcTB0TFNsR2YxYkZZV0Vnd0dXQVFCaVVZalBybDVFeXRT -YitKY1VTRktIQTVjCk1CVGg0K1FiNEVsRS9iQUF4TlFNZ0ZiZUFoSUZqT3NTaTViUjFkd3JacHlm -TXNzQ1B4OFZPQmJvOEVnTlpkK2NaUmh3SE92VmdJdUkKd0xFRVh3MmcxemdKbVNUcFhCQkxjNmt6 -REFPdGlrVVZQUWRkcVRjWlNtd2lpaXdDQkpHY0JDeTlPeFplZWxaY0lTOXFYUGYzSy9IZwpxSlI4 -LzZhdzJFVVE1QlgrLzRaOHk1SnVWbFlXdG0zYmhoRWpScmhKYS9MTGE3SVJCR2RDY3AybWZQWFpn -OVR2NmlyRU1aSTZtV1VZClJmM01lVm1OTTR4RS9MSkt1aUxlbC9kRk5Sb05acytlalhyMTZxRkJn -d1lBSk1sQncwbWtiK0VKR3BYVUJ0YzlRd0JvMkxDaGtteTcKckZXcDY3R25ubm9LdTNidHdrOC8v -WVRubjM4ZUxWcTBVSzRWaVZCaUYyRG1CUVNSR21Ba0lwMzErdXRvWkxFZ3NzeCtibmtvTGk2Vwpm -Ry9OcFpiSVJLVUdlbmFIQ0kySzlSZ1RzOW1Na0pBUWRQWHp3L3F0VzJHSEpISC82MS8vd3ZQUFAr -OTkzQ0NwZTB0c0R2aW9PV2hkCkxHSjNmYjhPNTQ0dHc5ZkxBaEFTclBKWUlNbFFxVGhFUjBjak16 -TUxWcXNOQm9NQjdWcFZSY2NuUWpCaHhrZlE2WFE0OU5NeE5HN2MKMk9zQ29DSVlqVWFrcDZjaklD -QUF0V3ZYZGp2SHNpenExcTJMNU9Sa01BeURGU3RXd0dhelllN2N1Ymg0OFNJQUlKQmg4RnlOR2pq -UAo4emlXbHdjRHp3TUFKa2RISTl0bXc4YTBOSWdnM0NneDRyR2dJREJnRkVxMTJXencwYXJ3NDRH -RDZEdHlJdlp2WHVGVU8zOEVWaC9pCjBWYTlWZzBWdzBCMW54dXJYSms1Z0FIQWNxVUdtWUQ3ODhj -eURQeDFLdWpVaEdLcjVKYmtjRXJCZWkwREh6VUxIN1ZFdmhZNzRLTWgKNVptUnBGL0pqa09udW44 -UGdFcTRvNUo4LzRZZ0lrWGwvTDl5ZUM5TFdsOTk5UlhtekptRENSTW1RQkFFcjc5UmNRelVqS3p1 -ZmZnWApWSEZoY25HM0tLdENsb3hwbkJNQzR6a2hzSXprL25TdlpzajdOMkZoWVdqUW9BR3VYTG1p -a0s4Z0V1RGNPYlE3U0pJQVhBcVVKY2VjCm5CdzBiZHIwdnF6T0gzbmtFVHp5eUNNdWZaV0RYZ0FK -ZDRyaG8rRlFJMEFMZ01HM1c3WWc3ZlJwREw1UDRoVkZFWGw1ZWFoVHB3NzgKL0VyVnU0SW9UY2dN -QTZnNEZpSVJPS2JzZ2tXeVBzKzhjd2NOckZZYzM3Y1ArMCtlTEpmd0ZDTWx0V1RNSkJBaDEyaUhy -NGJEN2VSRQpyRnZ6THRaOTdJK3FJZmVlY2xpV1JhMWFOUUVBUEcrSHYzOEFxbFJSWWRrQ1Bib08v -amQ4L0JwaXpabzF5bmk1MWs5RVNFcEtRbEpTCkVnd0dBNTU2Nmlsd0hJZEpreWJod29VTHFGYXRH -dUxqNHpGNjlHaVBlc3VxMHJWYUxhNWV2YXA4ZnpJc0RKU1hoOFpoWVRpV2x3Y0EKYUJJWWlBWUJB -UWdYQkd4TVN3TUFKQm9sOG5XRjNFNGZqUXFONndSaGYra1pyMk9nMTBtU3I2dktkK0hDaGJoNzl5 -NGVmZlJSZE9uUwpCZlhxM2R1WG1HRVlEMVU3RWNGaUYzRDBTaGJxaGZram9wb2ZlQkV3MjZXMm1H -d0VHeThnd0ljcmw0RFZIQU83SUwxdjJrb1dlU2hVCkR0dmZFQmFubGFYS1M1Q0pQd3F1YzdQUmFN -U0JBd2V3YnQwNmRPelkwZTA2bVR3azlkWnZXeFdUVThwMU9BMW5WSndzYVhxL3ZqenIKWjI5OWNH -MnJIQUNqOURxSmVLcFZxMWJtdU9RYXhUQUVtME15NWxLN2pMOWMzcUZEaDlDNWMyZHdIT2RoWVh5 -djhaRFBzd3dRRWVLTApIS05rckZSY1hJeVBGaXhBWDE5ZmxCaU4wT3YxSHNSdXM5bGdOcHVWdlZ0 -Wm1uTTFzaUtDUXJ4RUFCaHB3azAwR3BGa05JSUIwQzR3CkVQbjUrVENielFnS0NrTHI2R2hZaW9y -d3laSWxtRFZ2bmtkL3kvYVJaUmt3QklUbzFVakp0V0RtbTVNeGFSd2hyTG9hYXpibVlleWsKMndD -QWZWc2kwYVZqTUlpa1BXbTlYZytWU3VWR09FVFNZc1ptczhKdXQyUHlPTUsrazRFUVJWRjV6bHhW -eitmUG44Zm8wYVBScUZFagpoSVNFNE9EQmcxaTZkQ242OSsrUG1KZ1lNQXlEd3NKQ2JOcTBTZmxO -WVdHaFlsVXVnK2Q1aUtLSXJLd3NwWTdxdnI1Z2RUcndMb3ZOCnVrN0xkUitYZTJIeHNoaDF2VmNC -dmhxbkJvbkJGNjg4QVovQWFqaC9LeDlmSHJ5QklwTVVGVTJ2VTNrOHIyM2J0c1d2di82S3ExZXYK -NHNTSkUvamdndzhRR2hxS0pVdVc0TVNKRStqWXNTT2VmLzU1eFRpdVBEQU1BeDhOaDJaUlZmSDJ0 -eGV4N1pjVVZBdjBRZjJ3QU5TdAo1b2VJNmdHb0Z4YUF5T3IrcUJPaWc0K2FnOVhoVHNBY3k0QmpD -WGFCZnZQaStwK0tTdkw5bTRHY3p2TUE0S3Z4SGd6aWo0Q3I4UkRICmNUQWFqYWhSb3dadTNyeUpr -eWRQSWlJaUF1M2J0M2ViakI4NmlwQlR5aFdjRnB3YTd2NzhjMlhDdHpvQWpybTNNWWlydXJpc2o3 -SGQKYmtmWHJsM2RMSHBaaGdITEFSekx3dTZRQWhpNExqRGt2d3NYTGxRTWdWd2xzZ2NCd3pDb0dh -U0Z2NDhLRE1OZ3gvYnRxR0czbzJwZwpJTTVkdVFKL2YzL1VyVnZYemFDTFpWbmN2WHNYZ1lHQlNs -L0tSZ2tUbkh1OVVoMnlvUTRoc2RpSTNWbVpBSUNXUVVHb1diT20yK0tqCmhaOGZObTNlak1sVHAw -THYzR3N1MjIvUHNTWGN1SElPYXR4Qzl5Y0R5NXdIMG03ZmhpQUVnZU5ZWnloT1FtQmdJRVN4Vk9J -TEQ2K0wKakl5N0lBTDgvUHd4YWxodEhQbzVGVC8vL0RQYXRXdW4xQ1UvYzAyYk5zV2xTNWVVZXFw -V3JZcjU4K2ZqOHVYTG1EOS9QZ0Jnd0lBQgptRFp0R2s2ZVBGbW12VkJDWUthbHBTRXFLZ3IxNjlm -SHI3LytDb1poY05OZ1FOdXFWZUZ3ZVU3VTkzQ1BFNXozWGUreVArKzZ1R2dUCkc0cTZkZXVpZTlQ -YUdQSjRQVHcxZHkrTUZoN0JmbG9QaWJWVHAwN28xS2tUQUNBaUlrTFo5amx4NGdTNmRPbUN6WnMz -bzFtelptamIKdHEwU1NheGF0V3BvMkxBaDJyWnRpNzU5K3lyUEE4TXdzUEVDWmcxcWlwa0RtK0s3 -bjI5aDdhRWIySHYramx1ZFFYb042b1VGSUxabQpBQ0xEQWxBL0xCQ042Z1FnS3N3ZkdvNkZoWmVz -eWxXVmJrY1BqRXJ5L1p2QjVvelV3em1sc0Q4S3Jtcm01Y3VYNC8zMzM4Znk1Y3Z4CnpEUFB3R3cy -bzJuVHB0aS9mejgyYk5pQVhyMTZZZlBtemZqdXUrK3diTm15QjRvRTVWcWYyMzR1SzdrUFBlZzI4 -YjNVejBTRXMyZlAKSWpFeEVZbUppVEFZREZDcFZEaHk1QWo2OU9tRE9YUG1BSkI4UEh2MDZPRzFE -c2tua29HRmwxeE5OR1h1USt2V3JUM3FsSDkzdnhCSgpza2dGR0RBa1l0MnFWV2poakxlczErdmg2 -K3VMMU5SVTFLeFpVOWx2VjZ2VllGa1dnaUM0TFNSa1pibmdZbkFtK1h1S3pxQW83Z1RDCmNSeEN5 -MWdSKzZ2VnFHazJZK2ZPblJneVpNaDk5MlBmanJVWTNOdjc4NkRSYXNEelBEaE9pK0RnWUtqVjBu -VGtFQVJBWkJXU2tsWFEKTWdiMEVMSDF1NjhWOHBYN0kwdVRnT1R1dFdmUEhnd2JOa3lKTkNaZFI3 -aHk1UW9LQ3d1VlkxV3FWRUZoWWFFU1pJTmhHTlNxVlF1QwpJQ0E2T2hxQVZPNXRyUmJkQWdLUVZW -SnkzLzIzZTFtSXl0c01SSVFqUjQ3ZzJXZWZoVWJOSVNMVUg1KzgwQWFqbGgxRmVLaS94MVpQClhs -NGU1czZkaTZDZ0lNVEZ4YUZLbFNyWXYzOC8vdjN2ZjZOZHUzWVFCQUU3ZHV4QTI3WnRrWmVYaDZL -aUlyenp6anRJVEV6RTNidDMKUFRRbHB4SnpNR24xS1F4b0c0bFJUOFpnMUpPeCtDVXhHMThmU3NL -ZXMrbmdCUkZGSmp2T0plZmhYSEtlMjI4NWxrRlVtRCsyVE8rQwpteVUyWEVySlEwek5BTVRXQ2tT -SWY4V1NkeVVrVkpMdjN3aVNqNTJrMHZvanBWN1hsejRwS1FrN2R1ekF5SkVqOGQ1Nzc2RlBuejZv -CldyVXFyRllyMXExYmg3Rmp4K0xGRjE5RVRrNE80dVBqTVhIaVJLOXhpU3VxeXpYMEkrZGxQL2RC -SWF1ZlpkSnh4ZlhyMS9IU1N5L2gKeVNlZnhLaFJvM0QrL0hsb05Cb2NQMzRjSnBQcHZxT0RhVlVN -YkE3SjUxSE5sVSt1cmtrZzdoZVNQNmJrQ3VLalluRCsvRGxZc3JKUQoyMG15UklUcTFhc2pNREFR -NmVucENBa0pnWitmbjZLZGNHMEhMMGlHVUpsV0MzNHB5TWRsUXpHeWJGWUFRSFd0RnAxRHErTk1Z -UUZ1CnVoREtyTXVYQVFEQkdnMFdOWkg4VXd2c2R0ek16c2FZMGFNeFpzd1lSRWRIbzBlUEhoZzhl -REMyYk5rQ3U5Mk9DUk1tb0hidDJ2ancKd3creGRldFdKQ1Vsd1d3dXdjK1ArYUJPVFExYU5YTzN6 -dVlkREtiTXVZTmQrODJvWFZPTmllTkNNYWhQRmVUbTVDSW9LQkRmZkcvQwptbzM1dUpGaVJXR1Jn -SkFxS2pTSTF1SGxzZFZ3N3R4SlpaRjM5ZXBWZlBYVlZ6aDI3Qmd1WHJ5SXdNQkFhRFFhK1BuNUlU -SXlFcTFiCnQwWkNRb0p5ajY1ZnY0N3UzYnNyV2dOdmFtZWRUb2ZpNG1JY1BIaFFrWWF2WkdiaTdk -eGNkS3RldmNMN0o1ZVNZN1hDNGVXWjZOeTUKTTFpV2hTaUtHRFZxRkVhTkdvVVJJMFpnM2JwMWFC -b3BHVi9WRGRGNzdBWXpEQU5mWDE4Y1BIZ1FDeFlzUUU1T0RsSlRVOEh6UE9iTgptNGUwdERUa09m -ZWliOTI2QlNKQzkrN2RBUUNwcWFsdXo3V05GM0F4dFFBbFZoNWZIMHJDMTRlUzBEbzJGS002eFdE -NXVIWW9HbTdECk4wZHVZdjJSRzdoYllFWlpDQ0loNlc0eFZ1eThpRGkvYk14NFl6RXNSYm1vSGhL -QTBTUDZZZWl6ejk3WG52US9HWlhrK3plQ1haQW0KY3BhUkRGditDQWhPeVZOT2lCQVRFNE9QUC80 -WURSbzB3SkFoUXpCejVrd3NYcndZcjd6eUNzNmRPd2VHWVdDeFdCQWFHb3ArL2ZyQgpZckhjVnoy -dSs3bHljSUNIRGYxWUZyTDZtYnl3YjhPR0RkR3BVeWNrSkNTZ2NlUEdTRWhJd0xmZmZvc1JJMFpn -NHNTSnluVldxeFhKCnljbUtaV3haWXBVc3VobVk3TkkyQU1PVXVpSzVobHkwT2FSNHVmZTdVT0lG -S1FrQVFmS0gxcWxaWEx4d0FiVWNEcVVNanVQZ2NEamcKNStlSDZPaG8zTDU5R3lVbEpTQWlyL3ZV -QUxENVRqcHVscFM0VGVnNU5oc1NpZzNsK3I3S3g3T3NWaXk4ZWhWMkp6bXhMSXVFaEFRawpKQ1Jn -NTg2ZE9IandJQTRlUElnTkd6YmcrKysvVjlTK3Nqci96SGtUTGlkYTNNaVhDSmkxeUlyc1BBc1lC -a2pQc09Qbk15bncwUklhCjFqZkN4OGNIK3c4WDQ4VHBFcVVQMmJrOHNuSjRIRGxwUkt2bXRaQ1Jr -WUhhdFd2ajVaZGZ4cEVqUjVRNmMzTnpRVVRvMWFzWE9uVG8KZ0NWTGxuamNPNi85ZFZGZkZ4VVZJ -UzR1RG1sT0l5cEFrc2d6ZUI1Sjk1QjhHUURuazVQeGc4bWt1T25JUm9sTGxpekJsaTFiMEtwVgpL -L2o0K09ENDhlUGdlVjVwazhZWmlxMW1pSytIMWlja0pBVHZ2LzgrTm16WWdFMmJOcUZSbzBZSUR3 -L0g0Y09IRlpXNkhPMHJPVGtaCktTa3B5djBxQ3lzdjRFWm1zZHV4WHhKejhFdGlEa0lEZFJqV3Zq -NmU3UmlOVjNvMXh2NExHZmo2VUJLT1hjMTBjMDBUaXU1ZzFiUjUKYUJYSW9vZUZoOTBoSU1SU2pP -dHIxMkxZdW5YbzgreXptUEhtbS8vemlIdC9GMVQ2K2Y1TklHZG1BU1FMNTk5YjZwWER6amxFejZR -RApzclh2ckZtenNIdjNibHk0Y0FGMTZ0VEJsQ2xUa0o2ZWpwa3paMkxRb0VISXk4dEQzYnAxSzZ4 -SGRBWUNzRHFrT3JXY1pDMVpYcUtECjN3S0IzUGRhNVFudy9mZmZoOVZxUmJ0MjdUeUlWNzdlYXJW -aTh1VEplUHp4eDNIaHdnV3Y1YXM1S2R1TVhRRHlTeHpJS0xRcjkwZ0sKcXluSGs2NjRZNklvd21h -endlNlFKRjZDbEl4QURsNS8vdFFwaExvUWFzMmFOY0Z4SE94Mk93UkJRRlJVRktwWHI0NndzREFF -bEFtNgpRUVJrbWEyS1pQdGsxZExZeUIyclZzTWpBWUdZSEIyREhpNXE1dW5SRGZCNWZEd1dPcVhl -TGVucDRKMnVSREdob2RpMmJSdEdqaHdKCkFMaHk1UXJXckZtRG9VT0hRcVZTS2NUYnNXTkhmUExK -cHhneXFENDJmaEdKZXVFdVRxVk9xRlFNTm53V2pQT0hHa0tuazhabys5NHMKNkhRNkJBVUY0b1dS -MVhEaHAwWW92QmtIWTBwVG5OclhBQ0ZWT0tsUDJjWEl5Y2xCY25JeWpodzVBb1poOE9XWFg4SmtN -aUU5UFIzYgp0MjlINzk2OUVSWVdocDQ5ZStLTk45NEFJQkhzM0xsemtaR1JBWXZGQWxFVU1XblNK -T1Zja3laTjBMMTdkN3o1NXB0SVMwc0RFY0hmCjN4OVBQZlVVMHRMU3NHelpNb2gxNjZKbi9mcVkw -YUFCV3J0a0Rsc1JINDkzbWpSQlJGQVF6bFNyaG1VYk5zQmlzYUJEaHc1NDY2MjMKc0cvZlBwdzRj -UUp6NXN4Qnc0WU4wYU5IRHhRV0ZrSVFCQ1ZhbDkycEFxb1o3S084NHphYnpjMVAyMnExb2w2OWVy -aDkrelphdFdybApOcVp4Y1hFQWdHZWVlUWJqeDQ5WEZoUm56cHh4dTQ1bEdBL3lsWkZqc0dMWmpz -dG9QWFViWHZ6MEdQUmFGVGErM2hsSDMrbURjVjBiCklFaXZnV2pNQm5meU0zU3dtZEdCMDZGWnRX -QUVxdFNvN2VlTHg0T0M4S3lmSDQ2c1hZdDMzMzdicld4WGw3ZC9PaW9sMzc4SnBDUUMKMGdUNGUy -Y1VrU1BkTUV5cHlsY1V5VzBQRFFBZWZmUlJEQnc0RUcrKytTWjI3dHlKcDU5K0dvMGJOOGFCQXdj -UUdSbnBKam02b3V4Kwpyb29GZEw5UnRleFpoN1FYTG9neTZRSmduRmJTckNUTnlJU1ZtcHFLeG8w -YlkrUEdqUmc4ZURENjllc0hRQ0puT2Nmc2poMDdFQlVWCmhkcTFhNk80MlBza3hUQU1mRlFNU3V3 -RXJacUZsUmZoNnd4NElxdlJ5N3BwZHV6WVVRbm12M0hqUmt5Yk5nM256cDNEekZtejhmTXYKditE -U3hRdkl6OHNGeTdLSWpJekVnSUdEa1hEK1BKNTJXckNlek12RDJ0dTNRUUI2cTFSSUlVSTZnQUNX -UlZPMUdrMkRnaERxSXYzdQp6c3pFei9tU0twSUFYRFdXOXFXcVZvYzRmOGtseGlHVStvTXV1WmtJ -dlZxTk9qNCs2RnV6SnBLTVJnQkFxRmFMT3dVRjZOdTNyN0t2ClRVU1lQWHMyVWxKU2tKcWFxaHk3 -Y3VVS29xUFBBMFRvMDkyN2E5U2dQbjVvMTFLRnVuVjkwVGpXQjJjdm12SHpyN3ppOGxPcmhnb0wK -UHN6QzhWOUtrSmx0Qis4U0o4Um90RXNSdFNJaVVLTkdEV1JtWnVLTEw3NUFabVltYXRldURUOC9Q -d1FHQnVMQWdRUG8xS2tUVHAwNgpwYWlQRXhJU1BCWXBjcnZyMWFzSG51ZHg2TkFoS1hBRnh5RWxK -UVdyVnEzQzFxMWJNWEhpUkR6MzNIUFl0WE1uMXExYWhhUHA2UWhtCldiQUF6QUNNR2cwR3YvUVMz -aHMyRExWcTFRSUFGQlFVUUsxVzQ0Y2Zma0NmUG4zdzlOTlBvMGFOR3Zqb280OWdNQmpnNCtPanRF -RWsKUWhVL0xhcm9TdzNwekdZelhuMzFWZkE4ajNidDJtSFhybDJZTVdNR2VKN0hxRkdqa0oyZHJi -Ui8rZkxsV0w1OE9jTER3OTNjcVk0ZgpQNDRkTzNaZzM3NTlpSXVMd3l1dnZvclVIS05iL3gxM0w4 -RjJiUmZFNHJ1QUtJQU5xbzBkR2IyeDUxdzZvc0lDOEs5TzBmaDMzMGZSCnA2RWFBL3RPUVVseE5u -YVRpRjhzaFdnVFdoVU5mUFZLUUpDemhZVTRjUHMyOXMrYmh4cDE2dURZc1dQNDhjY2YwYkpsUzJ6 -ZHVoVUEKc0g3OWVueisrZWU0ZnYwNjFHbzFtalp0aXZuejU3djV1N3UrTCt2WHI4ZnJyNytPR3pk -dW9FdVhMbGk1Y2lWdTM3Nk4xMTU3RFJjdgpYbFFXMFJFUkVWNmZ0NzhjNkMrQXYwZ3ovdElvTlBH -VVhXd25vOVh4dTVickVJZ3NQQkV2RUlraWtTaUtaT05GS3JZSXhEdEVFa1ZSCnVWWVVSWEk0SE5T -MWExY2FQMzQ4alJvMWlwS1Nrc290V3hTSmVBZVJ4UzU5ZUlkMDdQZUNLSXJrRUtUMm1tMGltV3dp -V2V3aTJSMGkKQ2M2S0JPYzFydjM0OE1NUDZjVVhYNlF6Wjg3UWp6LytTRVJFTnB1TnNyS3lhTXlZ -TVpTYm0wdjUzd1czZFFBQUlBQkpSRUZVK2ZuMwoxUWFMWGFEc1lqc1ZtQnlVWDhJcmRacHNJdkdD -WjJjN2RPaEFETU9RbjU4ZitmbjVFY013eExJc3JmNzZHK1YvK2NNd0RERU1RMEYrCmZ2UjVzMmEw -TWo2ZVJvV0hFd0JpQU5KekhESE8vK1ZqQS9WNmVxOStmVm9aSDA4RGE5ZDJPMS8ydzRHaEFUVnIw -K2ZONHFtcVJ1TjIKVHY0ZDUvSTl2a29WOGxPcGlHRVlDZzRPZHIrZVlVaXYxN3Q5WnhpR2F0YndJ -OU9kT0RKbk5DVXhKNTYrV2g1T0RBTmlHTkNHejBJbwo0U2NkRmQyc1QyMWE2SWhoUUxYQ1FOZVAr -OU9WSTc3MDVPTmE1VnFXbFQ3eWQ3MnZtbTdjdUVGRVJPdldyYU9Ra0JDbFRua2MyN1ZyClIrdlhy -eWVUeVVSejVzeFJqdCsrZmR2dG5zeWRPNWNZaGlFQXRISGpSdXJWcXhmNSt2b1NBSHIwMFVlSmlP -ajY5ZXMwZE9oUWorZnYKMHFVRU9uandJTzNidDQ5T25UcEZWcXRWZWRiNjlPbERETVBRMUtsVGlZ -Z29QajZlTGwyNnBQdytQajdlb3kxMmgwaFpCanM1eWp3NwpseTlmcGcwYk50Qzc3NzVMaHc0ZEly -dmRUa1JFb2FHaGJtTXVQenVSa1pFMGI5NDhwVi9Cd2NIS2VYbU1lazcvbWdZc1BrUzlGKzZuCjJH -N2pTUEk3WXdnTUszMmMzNnUwRzBmVlIyMmdvT0hycUVxM1djUnlLcmRuUlA0LzFzK2ZWalNMVjU1 -VCtaenJjLzdNTTg4UUVkRXIKcjd6aWRxL2tkbkVjUjN2MzdxM3dmWkUvYmR1MnBXclZxcmtkYTlt -eTVmMjh0cjhySHBhLy9oS3NWMG0rRmNQdUVDbTcyRTdaeFhZUwp2RXpvRHdOUkpMSTdpS3c4a1Z5 -a1F4Q3B4Q3BRc1VXZ0VxdEFCb3ZnUmxwRVJBYURnZUxpNHFodTNicTBlZlBtY3N0MkNFUm11MVMr -ClEvajlTRmNVUmVJZElsbnRFc0daYkNKWmVkRmpvZUFLdS9PY2ZMNjg2MUpTVXVqa3laTnVkUW1D -NXhpNElxZllUbW41VnNvdjRhbkkKN0NCUmxOcG1zWHR2anp5Wk1BeERUejc1SkIwKy9nc2xwV2JT -VDhkK3BuMC8va2paMmRsVVlyYlJwV3UzcVAvQUljcmsrWEhUcGg3awpHNkxSMEtUb2FCcnA2MHRx -aGlFR29CWTZIYjBUR1VrcjQrT3BubDVQREVDQktqVTlYN2NlVGE0ZlRjRnF0UnRwK3F0VU5Ebzh3 -dTNZCnBLaG9HaDBSUVJxV2RTUGo2bG90K2F0VUhpU3UxV3FWZHNvazBMcDFhMklZaGxRcWpvcHZQ -VVppVHJ3YitiSXM2S3VsR3JwKzNJOVMKZjYxR2o3ZnlJWVlCUmRSUmsvVk9FN3IrY3lPRmFGOSty -aHJsWG4rTUtEZWVvdXRKaEt6VnFzamhrQmFpRGtFZ2c4bEs1ODlmb0hYcgoxbEduVHAySVlSZ0tE -UTFWcnBHSnFEenlCVUFzeTlLV0xWdW9aOCtlMUtoUkkybUJ3bkdVbloxTk0yZk9wRHAxNm5qY1Q5 -NGhLQXU5CnNqQ2J6WlNZbUVoeGNYRjA5ZXBWcWxldkhpVW5KeXZuNjlhdFMzZnUzSEg3alkwWEtN -dGdweEpieGMrZGpMeThQSHIyMldmZCtyWjMKNzE1cTFxd1poVHVmRlFEVXBFa1RPbjM2TlAzNDQ0 -L0s4L2YyNG84b3kyQ25zMWVTU2FmVEVjTXdOR1Q0ditqc2xXUTZkL1VXZGVuZQpreGlHSWYrQUFF -ck9LS0FzZzUyaW9tTWtrbVFZR2xHN0xzMXUwSWdhQndRb1JQeTg4OW1UeVpjQlNLTlcweGRmZkVG -R281R1NrcExvCjlPblRTaHRtekpoQjJkblpkT1BHRFdyZXZEa3hERU1SRVJGZTM1ZHg0OGJSelpz -M3FXWExsc3F4eHg5L25LNWZ2MDRqUjQ1MFBtOHEKS2lnb3VPZTQvWjU0V1A2cTNQUDlHOERzdEhE -MlViTWVXVVllQm5KY1pJSlR6UXdwRVlMWlhwcDRXemFFS3V1ZXVtelpNblRyMWcyMwpiOS9HNE1H -RDNjNFJTWHU2Y2dBS3JlcjMyYytWVXFoSkdaSXNmS21LWEt1U2tqWm9WVkppaWZMMndWV3MxQ1la -M254dlJWRkVSRVNFCm0xOHZ3MGh4ZnNzclZ4QWxZeXVXa2FJNmFWV01sTUpRSldkUktyL1RETU5n -OGVMRmFCYmZIRFhDcXVIeDFzMXg1dlJwZEhxeU0yclcKQ01WamphS3c5YnN0eXZXNU5sdnBieUhk -dTJiKy9xak84d2pUYUZDVjQwQUEwaHdPNkhRNkdIa2VLU1lwdlYrTXZ6OVNyU1ZRTVF4YQpCTHVI -TWpRNUhMaGlNTGdkS3haNHRBNE9ScFJlNzJhTWxXT3p3ZTZNZGExU3FaVCt4Y1RFS0gyU2orWG41 -MHRaZHh3QzNuem5Mbzc5Cll2UjRCdXJWaTBCc2JDekN3K3NxUmprTXkwQ3IxY0JRWE9vWHBmZVZM -SkUvL0N3Yk4xT2tjZEJvTk9BNERxbnBHWmc2YlRyYXY3Z2MKdW9BUTlPalpFeTFidGxUYWNQZnVY -WWhFYU5Tb01RRHBuaC82NlRBRUY3K3JHemR1dU4wWGhtSFF1WE5uTUF3RFFSQVFHeHVMMU5SVQpx -RlFxYk55NDBTM3FsVmlCKzdhUGp3OWlZbUxRdFd0WEhENThHREV4TVRBWURDQWk1T1hsSVNZbXhz -My9GNUNlS1pOTmdJMFhZZVZGCmlDS0JGMFNQK01veVFrSkMzTHdMaUFqZHVuWEQwYU5IMGFOSEQ2 -VS9reVpOUW9zV0xkQ2xTeGNFTy9lcGQrNzVFV2R2NXVMN1hRZGcKY3o1Zld6YXVSL05INmlPK2NS -UU83Sk95Y3BVWWpVaThlaG41ZWRtNGRWTWFxeEFmSDdTclZnMDFmSHp3ZFBWU2U0RWJYb3pSUW9P -RAo4ZHh6enlrR2dvY09IVkxPTFY2OEdHRmhZWWlKaWNIWnMyY0JBTGR2MzBabVpxWmJHUXpENEsy -MzNrSlVWSlJiN3VZSkV5WWdOallXCkF3WU1rTVpQRU55U2wveVZVYm5uK3hlSFE1U0lFZmg5UWtr -S3pnaFFLbGJ5Rlpiem5vcms5QVYxL2kwdjg5Q3NXYk04ckNmbGVVSE8KMmZ0N3BPOHJ1My9MTUZK -NzVUM3BCekU0WXhnR0dwV1UrVWpMZVFiRkFOd3RRbVZTdmxjZEpUWUJWWHc1K09rNEtUNytBN1Fw -SUNBQQo4Zkh4U2lxNFRWdTJZUGJzMlVxOXNxR01VaGZQQXk1N2d3d0FmVWtKY2l3V1JFWkd3amNs -QlhBNHdEdmRVUzRXRlNuWDF2RFJZY2ZkCnV6aVlrK1BodmhJWFZBVm1VWEFyZDAxcUt0YWtwaUxN -SlZLU2ltSGdJSUxOU2I2eUFWQ3RXclVRRnhlSHkwNzNwTWNlZXd3WExseHcKSTdUbC84bEYvR042 -UE5HNjFBMm52SmdqOHZHV3pmU0lyYTlENGswcjN2OGtHKzkva28wQWZ3NTFhbW1RZHNjT3RVYVA3 -MDdjd3Y2VApGN0h5d3c4QkFBM1hUM2Q3N3ZyMzc0L1FzRnF3OGlKYVA5RkpjZThaTzJZMHhvNFpy -YmozcEtlbkE1QVdZQk1tVElESlpFS3ZYcjBRCkhoNk8yN2R2dzJBd1lPUEdqU0FpakJneFFvbmJE -VWdCTXh4bGZMMExDd3VoMFdnVVlqMXc0QURXckZtRC9QeDhmUHZ0dDJqYXRDblcKcjErUHhvMGJL -N21kWmNpWmh6aU9nZFZCc05nZFRzTSthWUhKc2M3VWhTaTF5M0NGL0F6cTlYcUVob1lxeDF4OW9u -MThmQUVVNEU1bQpMaTZrNUNIeFJyTFhNbHh4OTI0NmJDNSs0aHluUnI3UkNwRUlWVjBDdVJUYTdl -NzNFMEM5eUVpM1k3ZHYzNjZ3THZrYTE0eFZvYUdoCnluZDV6QmlHUWJObXpRREFiUS9mVUdZeCtW -ZEZwZVQ3RjRjczllcFV2eTMzcmFzMXM0YVRJa0RaSEtJaTdjcnhrKytWZWNpZHBFcjkKZE9YZnFo -L1NrSXBJeXI1aWQwZ0p2VzBPRitNc3RiUVkwS2dZS1hUaFExVEFNZ3c0UnJheUxsOWNJU0pZWEJL -UFYzU2RReUQ0NlRnbAp2WnZydWJJUVJkRXRRMUtWS2xVa3lab0JqRllCbjM3OENRQXBjdEdWSzFj -Z0NBTGVkckVVbFlQNHV5SXFQQndOR3phRVRxY0R4N0pTCk1IMW5PK3E1U0ZUNU5oczZoWWFpcnE4 -dk5DNzM3eEgvQUF5b1hSdkJHbzBpNFVicTlVcWNaNU9UWUJrQTAySmowU0k0V0xsT3A5T2gKZXZY -cVNFcEtjbnNtQmd3WUFJN2ozRWpGejA4SHRWb09hU21OQVZOR3E4SXdwUjhabTFaRll2U3dFRlFK -NHRDOG1RNGZMd21GbnpOLwpSNEZGeExNZkhNS2FveG5ReGp3RlhiVkljRG8vUUtVRFU3VUJJaDRm -aXNrejNnTERTTStTWDBBUVZuLzVGYnAzN3c2TlJ1TW1wY3RTCkxzdXkrT1NUVC9Ea2swOWk4K2JO -K09tbm56QjE2bFEwYXRRSUxNdkMzOThmVHo3NXBGc01hQWFTMWJ2clBjL056VVduVHAwUUZ4ZUgK -YnQyNlljaVFJV2pjdURIR2pSdUhNMmZPb0huejV2anZmLytMY2VQR2VVUWcwNmhZVlBWWGcyTVkr -R280QlB1cDRhZmo0S05obFRTVwpBc2tTTndNQzQ3YWdraGF1NUl4RFhncjVmaENSa29RaE1zd2ZF -M28weGxOdEhsV3VHL252QlZqMDN3dVkrSitmTWZqOWcrZ3dheWNhClRQZ1dNdzRRL3JYaW92TE81 -MWhzU013dmhwOU9qVnlIVFdsRGxUTDlBWUR1ZmZxNGZYYzFpTnF6Wnc4RVFmRDRsQTFVNDJxVWRq -L0gKL3c2b2xIei93cENUMFFPQXI1Y0U3dmVMc3RiTWdsUGFsZWVMQjhrOEpFdWhjb3hnb29kWEs1 -TXpBSVZBcGRHWE9GWWljSzZjaE9DLwpCZmVLL1F4SWRWcnNncFF4aWlYbklzVHpPaXRQOE5WeUN0 -a0pnb0JidDI1QkVBUTBhTkFBRm9zRkxNc3FVYWU4K1ZySzhOZHhLQ3dzCkFDQ1JtcisvUDQ0ZE80 -YVZLMWNxMStTWGtTanVCWCsxR3BGNlBWSk1KbHdwTHNhb2lBZzByMUlGWDZlbUlzY21UWllSckFi -QkdnMkMKZWFjbUFJQ2ZTb1U1alJvaDFXVEMydFJVRUlBd25RNTE5WG84RnhtSlM4WEZzQWtDL1Az -OU1YbnlaUGo2K2lJL1AxK3BkOVNvVVZpegpaZzNHamgyTE45OTgwNmt1WElqdmRuMkdaM3FJR0Rz -OEZNLzAwSUMzODlEck9RaWlDSTVsOGRNMnp5VDJqejNpaTlWTEl6QnRhaEhVCkhBdFJCR3JVNURE -b2hVWG8xYk1id3Fyb0VSS2doWXFkQUN2dlVJaGg4THY3Y2ZSeUp2cStmeG9mUHM5aGFJZjZNTmtK -ZlFZT3gvQVIKenpxMUZLWDVrZWZPbll1NWMrY0NBSTRjT2FJUTZmYnQyN0Z0MnpZUUVlYk1tYU5F -UDNPRnZHaDFEYUlTRXhPaitPODZIQTc0K3ZxQwpaVmxVcjE0ZHExZXZSbVptSmdJQ0F0Q3dZY015 -WlpIeUxoQWtyWmZEbWV4QWZ0ZmtTbDAxQ0ZHeHBTcjF2UWNPWTlqd0VlQTRGZzRYCkFpYW5wYmZG -TGlqdVRPbTVKUmo1MFNHY3ZWd0VZdFdBd0dQZHFvK2hQVnNJVmJVWWlPWkNDTmxYWWI5NUNINDlG -b0hWQllJTkNJTlkKbkFXUkhQaVZNU05jOE1PMjlJelN2cnNrOEpCcmQ3VmVCcVF3bWJKbVovYnMy -ZEJvL28rOTd3NlBvbXJmdnMvTWJFc3ZKSVNXQktRRgpoQkNLMHBzZ0tLS0NJa2dIQlVFQjhaV21W -QUZSVUFRRktVRlVSRDhFa2FxQUZPa2RsRTRnOUNSQUlLUnV0czdNK2Y0NE03TzcyUTBrCmdJcitj -bC9YWHRuTW5qbHpwcDNuUE8xKzlLaFhyeDR1WDc2TURSczJZT3ZXcmRpNmRhdlh0ZjZ2b1VUNFBz -SlFPWndOd3YyWDQzTTMKTTNOd0Zia0hYUDRxVm9tbWNHR25wZ3FwN2RXSmhpUHdwcEM2QjJSVjRD -cHBSMFRwajVVRy9Hc0oybFh5alh0eFAvT0trRlluUWwrOAp0WGsyQ1lGRzlvTW9pbmorK2VkeDRj -SUZmUHJwcDZoZXZUcU1SbU9SemtWdDA2dFhMN3ovL3Z0SVNrclNOS3ZISDM4Y0tTa3BJSVRnCmZn -eHBDY0hCdUp5Zmp4eW5FMThvWnVCQUpRV0pBUEF6R1dCMWlHaGV2aXpPaWxZazU1dHhNaWNISnhX -ekhRVXpOL2RRY3JmdG9naW4Kb3IzYmJEYU1HVE1HV1ZsWjJMMTd0M1l1di96eUM2cFZxNGF5WlJr -bEpLVVU5ZXZYUjFibUM1Z3dZdzJtdlIrQzBKQVFaR1ZsSXpVMQpCU0VoSVNoZHVqUlNVOU1RRWhL -Q2dBRHZHc1dWeXdSREZDa21UTS9CazArOGpFbkRlM20xMFFrdWpXdjF1SFo0WWNvbTdEbDlFMi9N -CjNZVmZEbDNGN0RlYXdHalFJOWNxUWFaQWlJbnplZjlidEdpaCtSU0hEUnVHb1VPSGdsSmE2T0tK -Z3VYZkI1czhIeEs5WHUrbDFRSkEKZEhUMFhYUGhIYUxzSm56aDVTWlE0VnBBQUczY0dMTUdEK2lI -d1FQNm9YdVBIcWlzK0lLcEc4V2xuMEhRaUR3cWxnN0V1ckZ0UVdrYgpUS21WajBuanhvRG0zNEox -MTJmcXlUSHdyaHh0WS8wK3NPNzRGSkFsSkdYZXdZZVpyb1ZYdGNCQTFBOExnME9XY1VYSjV5V0Vl -RjJICkJnMGE0SzIzM3NMY3VYTngrUEJodEc3ZDJ1TjNsVmZBSGI2c1NYZXpZUDBiVUdKMmZrVEJm -TEd1QWdyRlJVRXpNeWdMcUhKS0xtR3EKVTB6TWhrSk16Q29MbFYyRUpyQVphVVRST1pjcHBaQVZj -N0xWeVV6S2FqQ1hRV0FtWmIxaVV2OHJCYThLeHYyc0JKd1Y4dktxa3pKUApLSnpLUWtFMWkxc2RF -ckx6bmJBNlpVMFFDWUtBQlFzV2FMU0Z3TjFabEh6OTl0WmJiNkZYcjE0UUJBR0JnWUhvMUtrVDNu -MzNYVzJmCmRNSnFGaGYxR2xGSzBUWXFDaDNMbEVHNFhvOWduUTVOUzVWQ0h6ZVRuOER6SUdDMVhR -ZkdQb1lPcGN1Z2dza1BCbzVEcUY2UDZrWWoKL2hjYmk2b0tyZVZGczFtallYUTRIRXBBbFFoL2Yz -OU5zNW8xYXhabXpwenA1VmNmUCtFak9FZ3IvRzlpRmpLelJJU0docUJDaFFvdwptL054K3N3WjVP -Ym0rQlM4aEFDNXVSSkdUODZCSFMweGNkTDBlNTY3VWNlaFd6TlhFTkw2UTFmUjZIK3JzUFhQRkcw -QldaQ0FwVENvCjV1akNyakZBb05meGNFalVxei8xbXZqNnlNcUh1djIxT0dRdEVKSVFvdkNiRXhn -RkFqOGRRWUNlUTZDQlE3Q1JRN0NKUjVDUlI0Q0IKUjluSU1Iejc3YmNlSm5WM1YwakJaOGJYTS9q -K21KSDRaY01tdEdyZEJ1WEtsb08vbng4ZXEvd1lYdTdTQlovUC93by8vSzhGSm5WTAp3SlJoUGJG -dDEwRzBldnBaNklNaUFFNEhqdGNqMUJDSUdsRlIySkNYaDIvejhpREV4Ulg2ckFPTUwzN1pzbVZv -MXF3WklpTWpFUkFRCmdHclZxcUZ2Mzc3NDRvc3Z2TWJxM28rdjh5cnNYQjlsRVBvSUxCOEtCcGVV -QU1pM1M4aDN5TkR6QkNGK3hUTlFVQ1dhbVJCQUlCUjIKaVVKMDAzWTV3bnlvUWlIbENGV2hLOHBL -SDl6ZFMvbDU3KzhXTUtXczNqbGxsYzRYZ2ZIcHJ3YWxpdmJyb3lRanBVeVRzWWtVSEdHVApxMEhn -a1pGbjA0Z3pPTUo4endFR0RxSCt3ajNQeCtsMElpVWxCVGFiRFRWcTFQRFpKak16RS8zNzkwZlBu -ajFSdG14WmRPL2VIYnQzCjc5YTA0RzR2dklEeVNVbWFJSFR2Kzg2ZE83RGI3UWdPRGtaSUVXdjlB -b0RGN2wzNnpxQnphWVEybXcxWldWbUlpb29DSVFRLzUrYmkKM2JselVhOWVQVXlhTkFtbFNwWFN6 -TFZYcjE1Rmx5NWRjT1RJRVh6KytlY1lNbVNJeDBSb3M5a2dpaUsrK1hvaDFxOWRnQ0g5WkxSdgpI -WXpjM0N5a3BGeER6Wm8xdlRRa2gwUEdiOXR6OGZsWE1obzE3WUlKRTZaQ3A5TWhNVEVSaHc0ZHd1 -M2J0NUdlbmc2NzNZNzkrL2Q3CmxOTDc0OEp0TkJtNTF1djh1cmVzaWtrOUd5REFwRWVnZ2J0djk0 -YjZqT2ZaWlVneVZhcHZNVHBRTlNDS2NaYXpCWnZxMmpFSUhBaFIKbmlIVnp3M2k4bm1EN1p2dm9P -d2RmUWpaRFlXQlJWS3pCU1pWckZBQ3ozell2cXhRNmdLYUk0Q2ZIc2d5TzVCOEl4ZEpLWms0ZS9K -UApOSzVvZ2w2dlI5MjZkUkVWRmZXWGpmdFJ3LzNLcnhMaCt3aENwaFIzekNJb2dCQVRyNW1KaWdK -M016TlZJcVVwM0V6TUFvRytrRFFZCjkxSit2SnV3TEFwOCttL2QrbmpZSzlLVWxCU2twNmNqSmlZ -R0VSRVJ4ZDVmbENnY01vVWt5WENLRkE3dEw0WEFFZmdiQmRpZEVteE8KR1VFbUhmUUNoNHc4bG82 -aGF1bEdnU0F5U0hmUGM3TmFyVmkyYkJrV0xseUlnd2NQQW9DbU5lcVVTa1dpS0tKaHc0Wll1blFw -NHVMaQpNSEhpUkZpdFZnd1pNZ1RSMGRINDlkZGZNZmVkZDlESkxhcFRsbVdrcGFVeHBpMlRDVHFk -emlkelUyRlFVMWswRUVEZ09ZOEZpV3F5CnpMRGJzVUVRc1AzUUlXM01xaGFuYWliVnFsWEQ4T0hE -VWJ0MmJZL29Xb0FSL2ZmdTNSdUxGaTJDSkVtWS8rVkhPSGQyUDU2b2s0MjYKdFUyb1hUTVVKaU1I -bTEzR2hVdDJuRDR2WWZOT0RuYW5QODZkVDBkK2ZqNlNrNU1SRlJXRkZTdFd3T2wwNHJISEhzT2FO -V3VRbTV1TAo2ZE9uYTlXZEFDRHRUajRxdjc3TTUzbkhsZzdFRjRPYm8zNlZTTStvZnVvWmphMTVX -OVg0QnJjK0pKbHhyV3ZYQVlEQUVZZ3lWZExzCkNBd0NwN3gzRkRsV0NRUkFaS0J3eitkRnBxeGdo -NS91d1lJc0MrdGJsQmhqbm5yckJjNUZsVnJZMk94T0NwdEl3WE9Bdi83dnNWTDkKVzNDLzhxdkU1 -L3NJd3VhVXRaZFpWNGgyV2hDcXRpcFRGaWprRUtubU02SksxTEJKVDd5ME5OVUU3VTc5V05SU2Zu -KzEvMWFXWlp3NwpkdzVKU1VrNGNPQUFHalJvZ09iTm02Tm56NTY0ZWZNbXlwY3ZqNFNFQkF3Yk5n -eWxmVlNhVVJjRXFtQjFTakljaW9DVlpCYXBiTlR6CnlMSjRSaEtyT1pVOHh6UVBtMU9DUWNjaElr -Z1BxMFBXM0FHRldRN1VzYlBJVWg0R2d3SDkrL2ZIMXExYk1XZk9IQXdkT2xTN05tb1YKcFp5Y0hI -VHMyQkVYTDE1RVhGd2MrdlhyaDdGanh5SXRMUTNSMGRGbzA2WU5QZ2tPeGxXekdURnVrY3labVpt -SWo0OEg0TTJiU3ltRgowK21FSkVsd09CeGFzWG9WUEtkTUdvUm9Qc1NDVGtaMVl0bHZzYURMVzI5 -NS9hYWVSM0p5TW1yV3JJbkJnd2Y3dkI0eE1URjQ3cm5uCjhNb3JyK0NMTDc3QWwvTi93Q2VmZkFL -ZTUzRDRiREpXYkVpQzNXNkR3V0JFeFlyVkVWZmpTU3o2dWpYTVpqTWlJaUxRdFd0WDNMaHgKQTFG -UlVSNzU1VE5tekVDSERoMDhCQzhBaEFjYUNnNUJPK2QzTzlWR1hMa2dCSnM0bGxmcllNK0RyOGVW -UlpDN25tZjF1MDdKNitZSQpZTGJKc0RobFVJNGl5TVFqMnlyREtWRUU2QUdIUkZpUkV1WFNPaVI2 -ejFLZ0Qxc1BvWlROQmFKRVBhcUhHWGtDNFM2eEh1cStOdEhGClUrNVhJbmdmR2txRTd5TUcxZmNE -TUhMOW9qem9xcGtaWU56UEZpVkNVak14NjcyRnVKb2lwTDZNUWhGSytURk5oMm0zb21xcUlrekQK -ZFZVbGVuZ3Y1clp0MjlDdVhUdjA3ZHNYcFVxVlFvVUtGY0R6UEVhTkdvVTJiZHJBYXJWaTRzU0pX -TGh3b1Vja3FpeFRYTSsySzM2NAp3dnMzMnlRWWRUeUMvQVRZSFRJNGppaWFPbFAzQlo2RFVmRzN5 -NVJDejNNUTNYSmlUVDU4OGVucDZiaDkrN1pXc3hWd3BXZTk5TkpMCkhnUU5PcDFPSy9aZ05CcGhz -Vmh3NDhZTldLMVd4TWJHZ3VkNW5EOS9IbzBhTllJZ0NKZzhjeWJHOU8rUDdySU12UkpCSFJnWWlK -U1UKRkZnc0ZvMUxXTVdWSzFlUW01c0xmMzkveUxLTTh1WExld2hmZ1NPUXFScnA3REtEdXNOdXQr -Tm9lanJPR1F3SU9Id1lmZkx6TlIrdgp1NW00U3BVcVdMVnFGUUNYdHV3T251Y3hac3dZVkt0V0RT -Tkhqc1NWSzFmUXExY3ZyNHBEaGVWWW0wd21wS2FtSWlFaEFVNm5VL005Cm04MW16ZFF1eTdKMnJY -bU9RNEJSQjdQTmMyRzFZRWd6ZEdwVUVmNUdwcjF6UEFGSG1Qa1ZvQ3hsU3hXMlBzYmhDLzVHRGxa -UlZnUWMKRTh4T2lTM3llT1VhNndVQ3QweXpJdUZCWGlVMWNscVVYQUdXSEdIeEZleGRMY3E4UXBX -YTFXeHVNT3BLQk8vRFJJbndmY1NnRWw3dwpITHlLdFB1Q2FtYm1DWVZUcEJvcEJZVnErdktjUUdR -M29WdVVVbjZGK1crRnY4Ri9HeHNiaXpwMTZ1RHJyNy8yR005VFR6MEZnQW1zCjBOQlFPQXZrd0JM -Qy9GT3EzT1VJRk1GS3dDditXaVprMmRqOTlEejBQT2NLN2lUUUJMZEpZQk01eDdFK1JjWFV5Q0tk -dmM4OU1URVIKRXlkT1JPL2V2V0UybTFHalJnMTA2TkFCdTNmdlJtSmlvaVpzVkFIRkF0SmsrUHY3 -SXo0K0hpZFBuc1RPblR2UnZuMTdORzdjR0t0VwpyVUtmUG4zQTh6eWFOMitPRmkrK2lOMXIxdUFw -UmVERXhNUWdKU1VGQVFFQlhxWGJPSTVEMmJKbEN6WExFd0trM0xpRDBFQS9oSWQ0CkJ6c0JRRVpl -SG42M1dqRncyREQwNmRPblNEN2xnam5QN3Y5MzZ0UUpTNWN1UlhoNHVFL0JTOVRBc2dKOVJrWkdh -bVFZQUJQbXUzZnYKUnZueTVSRVRFK04xWEp0RFJKa3dQeVJmZDhXSnY5QXcxa1B3YW4xeFJFdDV1 -cDhGSkVkWU1GU2VYWWJaTGlISXlNTXBVVmlkTW9LTQpCREtJRmcxZGxKN1Y1L0IrM2l4ZmZsemRY -Znk0aFk1QkNkQVVaZC96U0FrZUhDWEM5eEVDZStEWk10VlB6OS9ESEtRR1JiRUFDRFVmCjJFVk00 -ZklYRlRRdHM4Q1B3azNMaGZsdi82cjgyNExIVnZ1dlhMa3kwdFBUc1hUcFVxMmlTN1Zxcm54UXE5 -V0tWYXRXWWZIaXhaNTkKQUFqeEV5REQ1Wjh0Q0Y0VnlNcFBuTUJCNzZhOTUxb2xPQ1NXWXFLYWw5 -VjdBN0NJV2w4TVlFT0hEc1dhTld2UXVYTm5oSWFHWXRXcQpWWmcxYXhZaUl5TXhiOTQ4alR4QWxt -WHdQQTlCRURUeWplZWVldzZDSUdEQ2hBbUlpb3JDN3QyNzBhbFRKNC8reDR3Zmo1ZjM3OGV4CjI3 -ZFJKeWdJVnFzVitmbjVxRm16cHRjNUNvSUFzOW1zK1lIVlNGalh0UWJLUm9UQW9CYzhhQkxWd0Ir -SExHTVh6MlBVMUtrWW9wVGQKOHdWZm1xNjZuYW9IQXJ0VzU4NmRRMVpXRm43OTlWZXZ0azZKd3VL -VVlkSVJMOU5zWkdRa1VsTlRBVEJUdlU2bnc2bFRwNUNUazRQNgo5ZXRyL2F1UUtFWFpjSmZ3TFIx -aVF1TFE1bDZDVjRWZVlEbkhsQkpRMEdJdktrMTZEdmtPV1ltYmtPR25ZejVmZDVOMVVWRmNzM09o -CmZsemg3bjdjdS9XWGIyZDlxZVEySlhqNGVPQlVvMTI3ZGlFdUxnNVZxbFRCbkRsenZINy80WWNm -RUI4ZmovajRlSFR2M2gzbno1OS8KMEVQK1oyRlhORmVPc01Db3dxQ2FtV1czTkI1VjIvWFRFL2pw -aWVMUFUxS0ZKQmYxbzFFQTlENEViMEgrWklmRUptQ05QMWwzZC83awo0a0ttakdITGJCT1JtZTlF -ZW80REtaazJ4ZnpIUUFqUjJJQXVYYnFFdDk1NkM4ZVBIOWQrLy9EREQ5R3dZVU1QZ2F6Q29PZGhF -RGdZCkJNNlZxbUhnRUdUa0VHTGlFV2prdFpxNTZrUXZVZGRFcFFhYXFVeEJiRUppd2pmQXdMUmVW -WEM3QjF1RWhJU2dTNWN1V0x0MkxabzEKYTRaWnMyYmh4eDkvUlBmdTNmSFZWMTloMkxCaDZOS2xp -MC9DaHFDZ0lMenl5aXQ0NFlVWE1HclVLRkJLOGV5enozcTBDUTRPeHVKbAp5M0E2S0FnbmxGS0hC -b05CTTErN2o4VmtNc0ZzTmlNbEpRVTNidHhBdGh2bHBJck1IRE16MXhJMzN5WUF1eVJoYlU0T21u -WHRpcmNLCktSWHBEalZkeHYwRHNGeDFzeUtVS0tXb1ZxMGFmdjMxVnc4R0xOVzZ3aUxNaVVLVzRT -bUJPbmJzaUpFalJ3S0FGdFdzRXBJQXJsck4KS25oQ1VEYk1wYzB2K1Y4ckdBdlVkOXk1Y3ljKysr -d3oxejRjNDA2WGZLUU4zUXVFRUFRWWVQanBPZmdwZjlYMzVYNWZtWHY1WXAwUwpjMUhsMjFsZ0pT -RnMwUjFnSUJvalZuSGZWOFl0emU2SG43NUU4UDZWZU9CbzU0U0VCSHorK2VlSWlZbEJ1M2J0c0dm -UEhwUXFWVXI3CmZmLysvYWhSb3dhQ2c0T3haTWtTYk4yNkZVdVhMdlVjUkVtME15aWx5TEtJRUdV -Z3dNQVZtdHVyUlZrcVFSU3EwTlVMVEdBVFF0eTAKWWxmNlFNRlVvYnY1YjNudTRmaHYxVW5WSWJJ -QUZJZGIwSk03KzQ0N29vTDE4SGRqODhwWGZJd0FNR25TSk5oc05vd1lNUUxYcjEvSAp4SWtUa1pp -WTZHVldMVXdUdXh0a0pmM0l3QU1Ya3M5anlkZmZZdGVXTGNnMzUwR3YxeUVpcWd6YXZOd2Q3Wi90 -aUFxbHd4U05taDNMClY1NzBDeSs4Z0srKytnb09od01qUjQ3RWdRTUhNSEhpUk5TdFd4ZWlLS0p6 -NTg1WXYzNjk1aHNXUlJIcjE2OUhwMDZkNEhBNElBaUMKei94U1NXYkJRYWtwMXpDZys2c29lK3NX -eXVYa2dBTVRScEdSa2RwKzd2N1R6TXhNWkdabW9tTEZpcHA1T3QvcXdQa3I2VWlJcStCeApqQXk3 -SGI5WkxHamJxeGZlR3ovZWkxSlVVZ040WktwWlZWUVF3bEp1T0VMZ2tHVE45RW5CQ29NSUJUU3hn -ajVlOWZ4MGJvSkRkU3VvClVkYnFmZzZIQXprNU9ZaU1qUFM2NXc1Und1UmxSekZ6MVFtODluUjFU -Ty8zcEpmV2UvNzhlUXdlUEJpQmdZRll0R2lSeDNNa1Npd0cKb0RnYWNGRTV3ZThGaDhTRWFhQ2hJ -SWU2YnordXdCZmRqM3MzaURLRnhjN093Yy93MTZZNS9aZHd2L0xyZ1RSZmxjQzZlZlBtaUltSgp3 -ZE5QUDYybFVxaG8xS2dSZ29PREFRQWRPblRBenAwN0grU1EvMWs0bEVoRVF0Z2tWUkNVTXFJTE5W -TFhYV0FHR0FoTU9nNFVCQTZKCjhSZkxsQVZKR0FRb0U1NkxLRUxsVDdZcDFZY0s4aWNYbC9DQ1Vn -cW5LQ1BmTGlIYjRzU3RYQWZTc3V5NGttSERsUXdicm1jN2NEdlAKaVJ5ckNJdERWaFlMTENmUzM4 -QWp5Q1FneEYrSHNBQWRPTTd6UVhhditsSytmSGxrWldXMVZVZkpBQUFnQUVsRVFWUWhNREFRSDN6 -dwpBVUpDUW5EcTFDbE1talFKMjdadDA5cmRML2Z6OVpTcjZONjVNL284OXh5dXIxeUJaeHgyOVBI -elEzZWREalZUVXJGbHhvZm8zcllwCjVzNzZGRHdrU0RLelZsZ2Rzb2UyQjBDamh2enNzODlRcTFZ -dFhMaHdBWDM2OUVITm1qVlJvVUlGVkt0V0RSa1pHVnA3aDhPaENXSzkKWHU5VjZFR1NLZXhPR1pu -NVR1UllSRlNNamNIeTllc1IxTG8xOWdRR1Fnd0lRR0Jnb01kKzd0SElBUUVCNERoT0s0Z0FBUGxX -TzRJRApURnBFdkNoVEhNakt4bXBSUXI4UFBzU1FVZU5nbHdnc1Rvbzh1NHdjbTR4Y3U0eDhoOHZh -b3VhM0dnUUNrNDdBS0xBZ1FVVU13VS9ICklkRElDQ0VZQjdLNktGUElKY0JjSnFxRmdlZUlSMnFk -TE11d1dDd2VnbGM5TjRQQjRGRTh3QjBDeDBIZ09GU0tDc0tNQW9KWHZVOVYKcTFiRnRtM2JVTGR1 -WFkrNEFvQUYyM0dFUUpTS0hpVlYySFBuY0RpUXIxU1lLZ3JVQllzS1dibjMrUTRLcTRNcVFWMHVL -eGVMdW40dwpRZW1VbU1ZTEF2aVhDTjYvQlEvazh6MTgrTEFIRlZpTkdqVnc0TUFCZE9qUXdXZjd4 -TVJFZE96WTBlZHZreVpOMHI2M2JOa1NMVnUyCmZKQ2gvZXVnUmpqNzZid2puQ2xsazd5YTJxUE84 -VVlkUzJPZ0lGb2hBdmRVSDdZdjFYSjNIOVIvcXdaenlJcEd5OHplN3ZSMWJQTDAKTjNCYUVKYzZL -Y2dVc0RobEg2bE83R1FZY1FYZ0hwUk5LVVY2ZWpyKytPTVAzTGx6Qnp0MjdFQ1hMbDF3L1BoeGJO -bXlCWTBiTjhaWApYMzJGK1BoNGp3b285NE9rcENTODFxMGJhcG56MFRJb2lKa2ZaYXBGdkZZdytT -SGFEN0RLRXJZc1NzVGxDeGZ3NGF3NUlKeWdCTDJ4ClFCc1ZVVkZSMkxseko1S1RrekY2OUdqdE9u -TWNoeVZMbGlBK1BoN05temZYMnZ2NSthRktsU3BlMXh1RVRZeFVwdEFKSENJQ1hSSEcKcFVxVnd0 -ekVSR3pZc0FGVDMzc1BaUzBXeE50c1dqVWlTWkkwWVp1Ym04dTBkSU1yQlNjaU5CRGhJWUd3aXpL -UzhuSnhDa0IwL1Nldwo5S1BwaUNwVGxsbExvQVRtQ1NwclV1RldFVmtHMkdQTW5oTTk3MDNrd3Jr -ZVRPYm1FTmt6SlBBRW5Gc1FtdnYxVWhmdjZua1VKWmZaCklVcTRkQ01YUDQ1K0N2b0M1bVpDQ0M1 -ZHVvUWxTNWJnZ3c4K3dLbFRwMUN6WmsxWXJWYnMyTEVEelpzMzF4WjlBcy9CS1VvUStLSmwKSHZo -cTg4WWJiOERmM3grM2I5L0dDeSs4QUoxT2g2ZWZmaG9HZzhHREdNUUZkdCtacGVqaCtIRUJGcm51 -ZnYrMW8xR1d2OHNUcHZIKwoweVE0anpwMjdOamhVZG5xZnZGQVp1ZXRXN2RpOGVMRldMYU1KYk12 -V0xBQWFXbHBtREpsaXMrMnc0WU53NzU5Kzd3aUp2K3ZtNTJkCmtvd3NDMHZDRHcvd1pFeGkycFhz -SVhUVmdDb1pCS0pDUnlkd0xnMjNZUDR0d0FTdFVBUnpjc0hjV0hmeUNZQ2lmS2lCalk4VVBSVkQK -N1pkU0lOOHBneWRFaVphK2R3VG0xcTFiTVhueVpOU3BVd2ZObWpWRHg0NGR2VFREd280SHVQS2Nx -YmJkdFUzOVBUMzlGbm8rM3dIMQo4M0pSTGRDTnhNS3RrVXhkZWIxMlNVWmlXZ3JPWkdRdzVxZjFt -MUhuaVNiUThVQ1pFS01XNkxabHl4YTg4ODQ3MkxxVjFVdjk4ODgvCk1YSGlSRlN2WGgwLy9mUVRB -RmFJNEp0dnZ2RTVkc0RiUkVzcElNT1Z1NjMrbnBtWmlWVS8vNHdmRmkwQ241Mk5TcUtJRUFDV0d6 -ZGcKMU9rMGs3VFJhQVNsRkhtaWlDczVabHl4MjNEVDM0U0V4bzNSNDdYWDBLeHBVemhrQWtsaUds -QnhKbm03Q0ZCRjhBcWN5dzF5THhUSApYRHRxMUNpc1hic1dyNzMyR3Q1OTkxMnZDRzhWRGxHQ1U1 -UWg4QndNQllRdnBSVFoyZGw0NG9rblVLNWNPWVNGaFdIV3JGa1FSUkhmCmZmY2RQdjc0WTJ6ZnZo -Mk5HemYyMkUrU0MrY0Q5d1ZSRkNFSUF2cjI3YXRWVEZxMGFCRXVYcnlJYytmT0lTQWdBRC8vL0xQ -SHVFVEYKbWtMZDNsc2RUN3pNOWNYRnh4OS9qSHIxNnFGdDI3WStmMzlZSnZQL2kvaEhTRFlhTkdp -Z0JVRUF3T25UcHpWdVczZWNPSEVDZ3dZTgp3cVpObTRwRmYvZGZ4bzRkT3pSQzhTOFhmb1dYdXZX -Q1NjOXBncGVabWFtVzhxS2FtRTA2VmtaczVxelp5TW5KUnFWS0ZkRzNkMjhBCkxqOXY5U29Wa1hM -dEdwbzNiNEZ0di8vdVU4Q3BBUnNPaVptTTNmK3F6eEh6QWJQVUhMM0FJVEpRZDkrcmJsVXpEaXht -ZGFZMmJkcWcKVFpzMlJXNnZSdGphWE5aVnpZUkh0QVdENS9mbFM3OUIrZXdzeElXR3NqN2dNdjFS -S1BuU25HcUJrS0FYT05ReCtlR01jbDYzOHh6SQp5SE13QnFNZ2d6WkJ0MjNiRmdrSkNSZzBhQkJD -UTBPUmtaR0JFU05Hb0ZldlhwcndKZHI5ZHIyOEtrc1NzeTdJbWwrMTRPdXQ0NWlMCmdoQldvdkMx -MTE5SDMzNzlzSGZ2WG16ZnZCbkhqeHpCRlo1SEVNL0RRQWlJSkVIS3owZXVLSUlZalREN1I2Sldx -eWV4ZXZLN0dvMmwKVENsRUp5MjBwR1JoY0VwTThLclI5MFVWdk83WFFJVjdHcFpIQkxNa1lkaXdZ -VENaVEZpeFlnVkdqUnJsMGQ0ZGVvR0h2a0JGakJzMwpiaUFpSWdLQ0lHaVI2Rk9tVE1HMzMzNnJC -WUIxNk5BQlAvNzRJOHcraXNMekhJRkRsS0Fyb2hhc0xoQmZmZlZWVEo0OEdRRHcyR09QClFSUkZI -RHQyRE9IaDRSN2FxQ1FyV1F2Szgrbm5neFRuZmpCZ3dBQ2twYVhoN2J0RXJKY0kzYjhmRHlSOFZY -UFFybDI3RUIwZGpTMWIKdG1oY3J5cXVYYnVHbDE1NkNULzg4QU1xVjY3OElJZjdUK0RjdVhQNC92 -c2ZzV0hEWm0zU09ITTJDUytJSWt6K3pBUkZLV0FUWmFiVgpxZ0ZWU2tDRlUyYmE0cGR6WnVQYXRX -dG8wYUlsWHUzZTJ5UC9WaVZWVjAxOGRwRXlUVUNpV3ZDVEdsV3Ntb3Faa09YZ0x5Z2FhWUZnCkV3 -SnZNN1hOWm9QVDZZVE5aZ1BIY1FnUEQwZGFXaHB1Mzc2dGJhdGV2YnFYbVZCTFFZR25KcXB1RTFU -aGVBOE4zZWQycFMrajRDNTAKQysvSFpyTmg5UTgvNEVVMzM3SXFkTlZ2Uk5rZ1VRcUR3SU82OFJD -Nmo0TUN1SGJIaW9vUmZwb0FYcmh3SVVSUnhMVnIxenlJTndxZQppMU1Kc3BFS25KWnE5bFUxbjRK -c1MyYTdCS09PQXdHRlRtQ3BTKzZWZVJ3T0I2NWV2UXFMeFFKUkZHRTBHaEVXRm9ZOE8wRjhwNm1Z -Citkb0FqL3EwVHBFTlFGZU1OUkpMUzJPUjk2Q00xT1YrSnZQNTgrZGo4T0RCMnI0RkJURFA4eWhm -dmp3dVhMaUFuajE3QWdEKy9QTlAKN04yN0YrdlhyOGRUVHoybEJWRDV3dHExYTdGdTNUb3NXN1lN -d2NIQjJMRmpCNEtDZ2pSL3NpekxtRHAxS29ZTUdZSm16WnF4NitGMApJaXNyUy9NdDZ3VWVzc3o4 -Kzl3OXRHQ080M0R0MmpVWWpVWWtKU1doVTZkT0NBd01SRnhjSE9iTW1hTXhrd0hxTzBIaHB5ZGE1 -UExECkVMeGp4b3pCL3YzN2NmTGtTUkJDY092V0xRUUZCVUVRQkMzTjdWNVdwQkw4TlhqZ1BOL1pz -MmZqalRmZWdOUHB4TEJodzFDcVZDa3QKMk9TTk45N0E1TW1Ua1ptWmlVR0RCZ0ZnRVl1SERoMTYw -TVArclpCbEdVNm4wNmUvcEtpdzJXd1lPZko5Yk5xMEQ3SmNIWkpVRmNCKwpVRXF4L0lkZjhjZWhZ -MWo2M1FKVWlJNVZDcjZ6L2RSb1Jnb0NRaWdFUWoyMElBb1d6Y3g4dXl4VjZORHhjMHlUbFdSY3li -QjVrVXdZCmRCejhETDV6WUdWS1FXWFYzOGdtR0IxSG9DdVFjbkRzMkRFMGF0UUlkZXJVUVU1T0Rw -NTY2aW5NbWpVTFE0WU13UjkvL0lHNHVEaVUKTFZzVzc3MzNub2Z3cFpUQ1drQXJWYlZRS044bHln -U3dMd0hyUGpFRExENWcxNjVkaUltSndmZmZmNDhSSTBZZ09Ua1piZHUyeGNLRgpDM0gxNmxXOCsr -NjdPSDc4T0hyMDZJRmh3NFloTmpZV0FETUx2dm5tbXppVG5JeGpUaWY4QkFFVlRDYThXSzRjeXBo -TXpBUXZVVGhsCml2WHBhZmd6T3hzNndxRnVTQWpDZEhydGZDVFJsZVp5TTlPTXIrZE14OFpmMStQ -Q2hRdUlpSWhBOCtiTjhkRkhIMm50QythaldwMXMKc3RVWDlLdWlLQnFKR2huc2V3TFY2L1Zldm1R -QUNMTGEwYmRUSTFRcTc4cE1vSlRDSWFGWWtiT3lRdkxDemdYdzB4VmZXenR5NUFqZQpmdnR0WExw -MENYRnhjUjd4SGdYUC8vVHAwemh4NGdUbXo1OFBnQVcwVmE1Y0dXUEhqc1ZYWDMyRnhNUkVyUnBV -UVF3YU5BaHBhV25vCjJMRWpxbGF0aXV2WHIrUDExMS9YampGcDBpU0VoWVdoUzVjdVdwSDJyS3dz -akJrekJ1WEtsZFBjYWFyUUxZb3ZlTVdLRmRpOGVUT3EKVkttQ2loVXJZc0dDQlI2L3V6L2pPbzFJ -L2VHNTRDcFdySWhubm5rR08zZnV4TW1USjNIczJERVlqVVlZREFaTW16YXRFSjl6Q2Y0VwowRWNB -RHpLTUZpMWFVRUlJalkyTnBVZVBIcVV0Vzdha3djSEJ0SDc5K3ZTMzMzN3phTHQwNlZMYXVIRmpH -aFlXUmt1WExrM2J0MjlQCkR4MDZWR2gvKy9mdnA4MmFOYVArL3Y1MHpabzFsRkpLYzNKeTZLaFJv -Mmg4ZkR6MTkvZW40ZUhodEczYnR2VGl4WXRhSDFldlhxVTkKZXZTZ2xTdFhwbjUrZnJSMjdkcTBk -dTBFR2h2YmdTWWtmRW5yMVZ0SXExYjlINU51SUxSQ1RGOWF1Y3BRR2wrbkNYMng4OHUwZWx3TgpH -aElTUW8xR0k2MWN1UXJ0LzlvQWV2RktLczIzeS9UTXVZdVVFT0x6TTN6VU9KcVNhYVBsbzJNb0lZ -UTJhZGFDWnVZN2FaWkZwRmtXCmtXN1l1b08yYnRPV1JwVXBTNE9DZzJtREp4clMyVjh1cEhmTURw -cGpjVktMWGFUakowelEranR3OEJCOTVaV3VOREl5a3JacjE1NXUKMkxCQk84Yy8vL3lUMXF0WHor -UGEzYng1azQ0Wk00WnUyN2F0MFBzbHk3TDJjZDhteVRJVkpaazZSWms2UkluYW5SSjFPQ1hxRUNW -cQpjNGpVWWhlcDJTYlNYS3RJY3l4T21tMXgwcXg4SjIzU3JEa2xoRkQvZ0FEcUh4RGdjVDBhUE5t -SWhwZUs4TmhXcDI0RGVqWERTcS9jCnR0Sm1yZHBRRUVJQlVPTDI0UW1od3g2clRPZldxVXZueENm -UWxoRVJIcjhUZ0licTlKUW9pdmFNQlQvUVF4ZXo2ZUVMZDJqTjJuVW8KSVlSeUhLZDlDQ0cwVkts -UzlQcjE2MVJXemxNZFQ3OSsvWXIvMEx2aGVrWWVsZHl1SmFXVVNwSkVKVW55dU1hK2tIb3prOXJz -RHUxLwp1MU9tdVZhSlN0TGQ5MU1oeTVSYW5aUmFuVExOdFVuVUlSWnRQM2ZNbkRtVDFxdFhqODZi -TjQ4T0hqeVlidHk0a1ZKS3FTaUtQdHVQCkd6ZU85dS9mWC92LysrKy9wL1BtemFPVVVycDc5Mjdh -cFVzWG1wR1JVV0NjbnVNNmRlb1UzYlp0RzgzT3p0YTJiZGl3Z2JacTFZb2UKUG56WTY1Z1pHUm0w -YTlldTlNVVhYNlJuenB6eCtNMXFGMm5hSFhPaDU1ZVdsa1psV2FaNWVYbGEzK3A0Q3JzL1pydEVy -UTZwMEQ3dgpoY3VYTDlOTm16WlJTaW0xMld4MHpwdzV0SFhyMXJSdTNicjAyTEZqZE5ldVhYVGd3 -SUhhZFN2QmcrRis1ZGQvUnZnR0JBVFF3TUJBCmo0bFdwOVBSRXlkT1VFb3BIVEpraUxiZGZWTGtl -VjU3VUF2MkY2Qk01aHpIMGJWcjE5S3NyQ3dhRXhQajFRL0hjWFRuenAyVVVrcVQKa3BLMC9kUTJS -Sm5namNheVBvVnZkRXhmbWxCM0lZMk82VWtCZUUzY2hCQWFWNk1tdlh6TFRQZjhrZVFsZE5XMjc0 -MmJTTE1zSXEyZwpDTittelZ2U1c3a09laXZYUWVkLzlhM1hQcG9BZUcwQXpiR0tOTnNxMHRGalhj -STNMRHpjcTYwNitadzVjNGJHeGNWUnM5bE1Nek16CkthV1VabVptMGlGRGh0Qng0OGJSVTZkTzBa -czNiM3JkTDFtVzZjVmJGbm9oM1VLVGIxcm8rUWY4UE5HNG1UYTJWM3IycDFzUG5LSzEKRStwcjIr -bzkyWmh1Mm5PTXZ2aEtEMG9Jb1lJZzBNTkphWFRXZ2lYYWZTbG5OTkZ4MWVOb3p3b3hWTTl4bEFD -MHRNRkl2NGhQb0hQagpFMml3VGtjSlFNc1lqWFJFbFdwMFVNWEhhSkFnYU1KMzBUZmZVN3RUb2pO -bXpOQ084ZU9QeTJsT1RnN2R1M2N2RFFvS29vUVEycmR2Clgwb3BmYWpDOTBKS3hsMkY1ZDBFY0hw -R2prZTdQSnRFTGZhaVQvcDIwU1Y0cmM3aUM0djA5SFQ2NXB0djBxdFhyMUpLS1owMGFSSnQKM2Jw -MW9lMGxTYUwxNjllbjI3ZHZwNVJTK3NzdnY5RDMzbnVQbWt3bTJxUkpFenAwNkZBNmV2Um9qMzNV -eFk2dmEyUTJtK21NR1RQbwp5cFVyNllnUkkyaFNVcExYOVhMLy8vbm5uNmNoSVNFMEpTVkYyNVp2 -YzlKNncxYlNsWHN1ZXV4VHNCOUprangrYzRneXpiR0lQdStQCjJTNVIyMzFjVDBvcFBYTGtDSTJJ -aUtDbFNwV2lxMWV2cHBSU21wMmRUWmN1WGVyeFBuNzIyV2Qwd1lJRjkzV01FbmppZnVYWGY4YlkK -bjUrZmp4ZGZmQkdYTGwzU09HTkZVY1NxVmF0dytQQmhmUG5sbHdDQTBhTkg0OGFOR3poMzdoenEx -YXNIV1pZMWszakIvcDU0NGdrYwpQSGdRTjIvZVJLTkdqVEJ1M0RoY3UzWU5BTkM1YzJmczI3Y1B0 -Mi9meHRLbFM3VUUvYmZmZmx2TDZmdnNzODl3OGVKRnhNUlVBZ0RZCmJEZHc2OVkycjJPeG9CNkt3 -TUM2aUN3ZGkyMTdEdUhTald6OG1YUVY0eVl6YzJYUzJUUFl2V01iWW1OamNlMk9GZVhLUndNQUdq -VnAKamt1MzhuSHBWajdlR0Q0R09mbE9MVXBYa2luTU5nbnBkM0x3L2lobWlpc1ZVUnBmZnJNY3F6 -ZnZSZTBFUnN2MzdkZGZZZlAydmJpVgo0L0NvOFJvWlZRNC9iZGlGeGN0Y2RWRzNiTmtDZ0xFeFpX -VmxhWDYydFd2WElqQXdFRUZCUWRpMmJSdmVlKzg5ekowN0YrbnA2UjduClNnalJnb2tlWm53N0lR -VERSbzVGZEd3bFBOR29tYmE5UjkrQnFGUzVLdHAxZUJFQWN5RWNQckFYQi9mdDB2YXJIaGlJU0lN -UlQ0U0YKb2FJZjgvM2VzdHVRNTNUaXFzV0NYSVhrb1VGSUdHTDgvRkE3SkJpUHU2Vy9CQVVGUUtJ -RVc3ZjlEb0FGQnIzNmFqZUVoSVNnYWRPbQp5TXZMQXdEczNic1hBRHdpWnFVSGpQSjNPSnlhelQ0 -MU5SVWpSb3hBelpvMTBidDNiMXkvZmwwemlkNjRjUU4ydTkxajN4eXpWZnV1CjVvMFhkQzhVQmta -Vnlsd2RhdEgzb21MejVzMzQ2cXV2Y1AzNmRYejU1WmVJam1iUGNzK2VQUkVjSE96QllnYXdZaFhq -eDQvSHpKa3oKRVI0ZWpwWXRXOEptczJIQWdBR29XN2N1TGwrK2pLaW9LRHoxMUZQNCtPT1BBWGlh -YzYxT1p0cG5iSEN1NTl2ZjN4L1BQZmNjR2pacwppRW1USnFGcTFhcGVKbVJDQ0NSSnd2TGx5Mkd6 -MmJCNDhXS1VMMTllKzUxU2l0U01mUFQ4OUhmMG5iVWR0N0t0R2xHRk9nYXFSRXRLCk1tT2tzb3RB -amxXQ3hTbDdNTHE1K2dUdWo5a1pPSFBtRE1hTUdZTmx5NVpoL1BqeDJMMTdONEtEZy9IeXl5OTdW -UDQ2Y09CQVNaRFYKUDR6L2pQQWxoR0RhdEdtSWpZM0YyMisvcmZuMTFxMWJoKzNidDJ2dHBrK2Zq -cWlvS0ZTdFdoVkhqeDRGd0FxQjM3aHh3NnUvR1RObQpvRUdEQm9pSWlFQkVSQVIrLzUxTnJvSWdJ -REV4RVU4KytTVEN3c0xRdlh0M3hNWEZnVktLWGJ2WXBGNjFhbFVNSHo0Y1pjcVVnU1FKClVGK212 -RHhHcitsZTRVUldXSDBJYndJUWpnRjllNkZlemNxb1V5MGFVeWU4cDdWTFRyNEFpME5tcEE2SzZH -SU1VdFQxY1h1WlZlS0UKczJkT0l6c3JFd0R3VlBzT2FOUCtPY1E5SG8vZXI3K3B0VDIwZjdmWE5l -MzEyaURVVHFpSEppMmVRa2hvR0FCbzE3Sk1tVEk0ZGVvVQpEaHc0Z09IRGgyUGN1SEhJek16RStQ -SGpzVy9mUHZ6ODg4K3cyKzBlOUgxc1RONmsrUjdYSGN6ZnlWS2pXRFVtdmNDSUJJdzZEaVk5CkJ6 -ODlCMzhEaHdBRHJ3bXlVaEdScUZheEFzTDhCWVFGQjJqM3NGbkQraWdkcEVOMFZLaDJERUUwSS92 -V2RhMk5NeWdRZW9HRFh1QVEKN2UraVBUVExJcTdaWEdYNkt2ajdRUyt3WXZQbFRTWnQ4VkFxTkFo -NkhraTVkdFYxSG9SNGZhNWR1NmFRcWJqdWtTUVhIanhXRkxCQQpPM1lOeG8wYmgwcVZLaUV4TVJH -eHNiRVlNMmFNeG9mY3ExY3Y3WGxYa1puRHpvMVM5dXh3eERQUEdtQ0xGWnZONW5sTXlncDVFQ1VZ -CnpWU015T2JodzRkajRzU0p5TTdPUnRldVhiRnk1VXFOMjFxdjE4UGhjSGdRZ1FDTUp0UGhjR0RX -ckZuWXYzOC96cHc1Z3kxYnRpQWgKSVVFVEtxKy8vcm9XYXdKNCtvcjlkQ3h1SXQ5QkFYRGE4UUFn -TGk0TzVjcVZnNysvZjZIbndQTThtalJwZ2lsVHBxQno1ODdhOW55YgpFN1BXbkVDT3hRRUFXTDdy -SWhxOXV3Wjd6bHlIT3plSFU2TEl5cGVRYVJGaGNiSThlYU5DcEdNWGZkLzcreFdMdlhyMVFwOCtm -ZENtClRSc01IVG9VUTRjT1JWSlNrdWJiVFU1T3hqUFBQSU93c0RBTUhEandQbzlTZ29lQi80endE -UWtKOFZpUjFxNWRHd0FMRERwMzdweTIKM2Rla1NBakIxYXRYUGZvTENncEMzYnAxUGJhcGJXcldy -SW13c0RDdk1haFJ2Z0MwU0VhcjFRcTkzaDg4enlaMWh5TlRHWWYzT1RpZAoyYmlWL2djdUppY2g4 -ODV0RDRZaUFNakp6aXJheFNpQTYybXVhakRWYTlUV3ZsZXI0WXErdlhrOVZhT1ZaT01qYU5pb3NT -YndUQ1kyCmZwWFZUSTF1QmhqRmFOT21UYkY5KzNidEpkZnBkR2pkdWpWT25qenBOWjRLNFFiRWhC -dFFzWlFSbFNLTWVDekNpTXFSeXFlMENZOUYKbWxBcHdvU0tFVWJFbGpJaUp0eUk2SEFqS29RWlVE -N1VnSEtoQnBRTk1hQk1pRjRyL083dlowS3BRQjNDQTNRdzZWMlBkV1JZSUlKTQpnZ2RkcDE3Z0VC -c2JvLzF2MXV0eHcyb0ZBWkRxVmhNM1hLOUg1WUFBMTNXMFdiVzg2VFNyVmJ0T0FzOFdBZXFDejkv -Zkh4a1pkMkMyCmliRGFSVGljSXV4T0VYbjVWbzM2VXdWSEFLdklJcDBkU2hTNkpGT05LL2xlOERP -NG1KdisvUE5QOU9uVEIwMmFOTUdJRVNNUUdCaUkKVHovOUZBQzBNb1VxSEU0UmRnZlQ2R1VsbGNs -WGV0R1lNV1BRdTNkdkR4SWNOUkpkenpQTzdLSUszaU5IanVEbXpadjQ3YmZmTUdMRQpDTHozM251 -WU0yZU9GbTFib1VJRlZLaFFRUnV6aXFDZ0lFeWZQaDNYcjEvSHdvVUxzVy9mUHNUR3hxSlNwVW80 -Y2VJRUhBNEgxcTlmCnJ4R3RxTUpWTFVxZloyZlgwMTlQZkJiRFVISG16Qmxjdm56WjUyL2x5NWZI -RTA4OG9mMHZ5VEt1M1RaaitzcGpIdTJ1WitianhTbWIKOFA2U2c3QXJISkE2bm1pRU5BQmdkU09i -c2JzL0RBb2VRUEVGQU8yOUhEaHdJTHAxNjRhK2ZmdXlmaW5GenAwNzhkSkxMMmtCYXlYNAo1L0Nm -RWI3WjJkbmFLaCtBWnJwS1NFandJTjdmdUhFakpFbnkrcWpWWmxTRWhvWjZ2YVRxNUhYNjlHbGta -bVo2alNFaUlrSVRQc2VPCnNaY3lJQ0FBa21TREpMRkpYYTluUXJ2ZyswOUFrSm14R3dBRngvTlkr -dE42WEx5Umd6VWJmOWZhR0hVY1F2d0VoUG9KV3MxWkhVOFEKRWFoRFpKQU9wWU4waUFyV2E5cWdR -VWRRSWN5QWhMaEtXaCtwRjA4emdSZHBSRlpLa3JhOVZyVktxQlJoUW9pZkt3QytjdGxRVGVEcApC -TTlIeFd3Mkl5TWpBeGFMQmFkT25jTEJnd2Z4N0xQUDRzQ0JBemgxNmhSMjd0eUo1Y3VYZTYydUNX -SFZYdlFDSTM1WDA1b0tMalQrCktsQWwybGlOcUtXVVF0THBzRE0zRndmdTNNRUZKYjh6eW1oRW9F -NkhDaVlUZ3BWVWxBTjM3dUNLSlI4bnNuTndQQ2ZIcTI4MWJ6cy8KUHgvRGg3K041S1RUdUpPVmcv -MzdEK0R0b1VQdzN1aVJUSU4zTSszS2xLWDNxS2N1VVdnVW9WYVJtVXh0aW5CMktscXpKTHVLRndU -Ngpzd2o4M054Y0dJMUdFRUlneXpLQ2dvSXdhOVlzWExwMENUTm16SURaYkViWnNtVzE0MXB0VGhq -MDdMd2N5dkVMM0dLTUhqMGFOMi9lCnhQang0L0h6eno5ajc5NjlFRVhSZzVDaE9QZXNkdTNhbURG -akJvS0Nna0FweGNzdnY0ekF3RURrNXVacS9NMERCdzZFM1c3WDNEc0YKMGExYk43eisrdXVvVWFN -R2F0YXNpWDc5K3FGNzkrNElEdy9YRmdpcU1DZHduWk9lSjlxaVFSMHpwUlEybXcyTEZpMUMvZnIx -TVhEZwpRSHo2NmFmNDdydnZmQjdiWFdPMk8yVjBtNzVWS3pGWkVIUFduMExqRVd0dzdCSWpZdkZY -ZVpxcGk3Rkt4eE9Jc3F0NGh6b21kZXozCkMvZEYyNGdSSTlDeFkwZlVxRkVEMGRIUmVPeXh4L0Q2 -NjY4L1FPOGxlRmo0endoZlNpbkdqUnVISzFldVlQYnMyWnFXK3Z6eno2TlYKcTFiYUN6ZCsvSGpz -MkxFRGVYbDVPSEhpQkQ3KytPTWlremlvZFdSRlVjU2dRWU53K1BCaFpHWm1ZdG15WlRoejVnd0lJ -VnArWlhKeQpNcjc0NGd1a3BxYkNaSEpsamdZR1Z2WHFWeld0eWhMVGJEbENFRk8yRkhKdXArSHpU -NmRwN1V4NkR1RUJBa29GNmxDN0Z0TmFMeVNmCmd6M3ZEb0pOQW9KTUFnS052UGJpY29TWmF1dldx -YTJ0aG45WnZ3NGJmdjBGSjArYzBQemdoQkFQcXNPaUlDMHREYTFhdFVLelpzMHcKWWNJRVRKMDZG -UUVCQWZqNjY2OHhkT2hRekp3NUU0MGFOY0x6eno5ZnJIN3ZGNzYweEx0cGpsMjdkdFh1NTRtVEo3 -RWpOUlhmWExrQwprVkx3aEtDNzRvY2toS0N1UXI1eDAyYkRqS1Frekx0NEFYWWZ4QTdEaHc5SFFr -SUNBR0RwMHFXb0UxOGI1VXFIb1htekpwZy9mejRzCmJscTFDcDVUeWowcWRJeEdoU1BaSkNnVnFI -aDM1akpYbFNxcklweERnNW1QV3EvWFkvTGt5VWhMUzlNNG5QVjZQWllzV1lLdnYvN2EKeTVSTENC -QWE1QWRaNFFuWEY2aUFjL2p3WVd6YXRBbHo1c3hCclZxMThQampqMlAyN05sbzNibzFacytlN2RW -ZlVhRFg2elgvTGlFRQpseTlmUm1abUp2UjZ2WlpyU3doQmxTcFZQSXF6K0FMUDh4ZzBhQkNPSGoy -S3FWT25ZdHk0Y1I3NXltcGZSaDJyWk9WT05HT3hXTEJ2CjN6NFFRbUN6MlNDS0loWXNXSUE5ZS9h -Z1ZxMWEyTE5uRDNLVmlsSHVVSVc2MmViRXVPOE80WHlhOXdMTUhXZFRzdEY4OURwODh2TXgKNkRu -WHZRWUFVWmFoNXdzM1BkL3ZPdFREend6bUlxdFdyUnF1WHIyS1R6NzVCSzFhdGJxL2prdncwUEdm -cWVjYkdCaUk5ZXZYZTZ4YQpCVUZBNTg2ZDhmampqK090dDk3QzNMbHpjZmp3WVUxRFVlSE9UMzAz -VEowNkZldlhyOGZWcTFleGN1VktyRnk1VXZ0TjVmcWNQWHMyCjZ0V3JCNHZGZ3VIRGgyUDQ4T0Zh -RzZNeENxVkwreGIwbEZMbzlRWVFRaUNLSXBvM2FRUUFIc1FNa3N3MElnS0sxbTNhNHRkZmY4WE4K -bXpjMWM5dldyVnU5emcxZzJ2ZG5uMzJHdm4zN0lqMDlIUys4OElMSDcvMzc5OGVUVHo3cE5aNjdv -VnExYWo1TnlvbUppWGZkNzJIRAozWFhndnMzOWIySGJObTdjaUpreloyTEZpaFZJVGs2RzZIUWlo -T1BRdlh4NVZIVWphbmk1ZkhrUUFFZXoyT0xJejk4ZkxkcTN4NC9MCmwydEVFQUI3M3ZidDI0ZFBQ -LzBVcTFldnhvVUxGeUFJQXFKall0Q3FkUnU4MXErdjE5aDV3a29UMmtVS2crQ2lMeVNFc0VWVUla -TXcKcFJRWjJma1FBb3pRNndUb2REcTBhOWRPMDg0RWdiM2FvYUdoMkwxN3QxZjlYSk5SanpJUndW -cU1RRUZTalFZTkdtRFRwazBJRGc3RwpuajE3c0huelpodzhlQkRIangvSGtpVkwwTEJoUXpScTFN -ajM0SW9BU2ltdVhMbUN1TGc0R0kxRy9QYmJieEJGRVIwNmRFQ2RPbldLCjFkZTkzbC8zZS83UlJ4 -OWg5dXpac052dFNFcEtRbFJVRkFZUEhxejlmdlRvVVRSczJMQlEvbWluS09INHBUdFlzUEZNa2Ni -bUZHVk0KK1A0SU5oeEp3YnczbXlFczJGL3hzUU4rZW82VmJ4UmwrQ211a2djSnY2Tkt6cmdrczJJ -ckFITTNmUFBOTjFpM2JwMjIyQ3pCbzRILwpqUEFORHcvSCt2WHI4ZmJiYitPUFAvN0FZNDg5aG1u -VHBtbkM2NHN2dmtDVEprMHdiOTQ4bkR0M0RoYUxCZVhLbFVPalJvM1F2WHQzCnJaKzdtZEtDZ29K -dzRzUUpUSjA2RmIvOTloc3VYcndJdlY2UGhJUUViZFZkclZvMW5ENTlHbVBIanRVaXBTdFZxb1N3 -c0ZLNGNzVU8KVVRSRHB3dUcrNnhLcVlUczdCMm9VeWNVblRvdHhIZmZmWWRMbHk3aDZhZWZ4c2lS -SS9INDQ0K0RFQlo4WkJLWWFiTGJxOTF4NjladApyRm45TTg0clBtM1ZKT25ySEhyMTZvWFkyRmhN -blRvVnAwNmRnc1ZpUWZYcTFkRy9mMzhNR0REQTQvemQveGJsdXZ5VGNBK21VekZ4CjRrUXZwclVX -TFZwNG1BMEJKcUJHang2TjBhTkhBMkNtOU05bnpzVGE1Y3R4UGljSGp4RUNmMEdBUkNsaUF3SmdE -d3BDU0hRMDNuejMKWFR6ejdMUDQvdi85UDloRjVyZFZ6ZGtHZ3dGang0N0YyTEZqdGVOUXhaU3Nm -cEYyZkRNQUFDQUFTVVJCVkNmRTA0VHBsQ2pNZGhsVwpwNnpVQ3I0M0NDRzRlVHNIQnAwQXZVN0Fp -aFVyWUxmYk5mL2U3dDI3Y2VEQUFjVEV4S0I5Ky9iYWRoVTh4MEhRR3lES0ZBTFBuaWxXCkY4dDE3 -OVZGWGRPbVRYSHExQ21VS1ZNR2xTdFh4dlhyMTdGLy8zNDgrZVNUUHRtUkJnMGFCRkVVVWIxNmRV -UkhSK1BGRjErRVhxLzMKYUtOZUt6OC9QODJzdldUSmtpS2QrNE9nY2VQR2VQYlpaekZuemh6OCtP -T1AydUk0SlNVRnc0Y1B4NlZMbDVDVmxZWExseTlqNnRTcApYdnRUQUwxbi9vNTdyRTI5Y0NBcEhj -MUdyY0hFN2czUXBYa1ZFTVVQck9NNU9FVFpqVktUdFMvdW0wWVYvN1lrZTlZQ041bE1XTDE2CnRk -ZjFMOEUvandldTUvdFFCa0h1djdDQ3luQVVHeHVMUzVjdVBlU1JQVHhRU3JGNDhUZVlOV3NCSEk3 -U2tPWHlJSVFIcFhmQWNjbDQKNnFrbW1ERmpTcEVxdGhUc1Z3MllrU2swZWtJQ1YxMWU5bm4wQk9l -aml2ejhmUHo2NjYvWXNYRWpzak16b2RQclViNWlSYnpVclJzUwpFaEk4RmlHVVVxalpXWWE3QlBN -d1htaVZLTi83OXp5YkJGRUdBZzJjVnlXZ3dyRDN6NHVvVTYwOC9QME1lUFhWVi9ITU04K2dkKy9l -CldMdDJMYlp1M1lyTXpFeWtwcWFpUllzV0dEVnFGQUxjZ3NmU2JtVWpMRFJZcTUycjBuSWFCTi9N -V3U0MGhLKzg4Z282ZHV5SVhyMTYKK1J4WFpHUWtSbzRjaWV6c2JGeTZkQW5mZnZ1dHhnNUgzY3ox -SDMvOE1kNS8vMzBNSFRvVUgzMzBrY2F2L0ZkQ1BZL2x5NWRqL3Z6NQpIdFZwVko3bHMyZlBZdkRn -d1pneFk0WkhrQlVBV08waUluc3NLZFRYV3hROFZhYzhwci9XR0dYQy9LRGpPT1E3SklUNThkQUxI -RXRICmNyTGdzQ0t6akZGV0RsQ21ycktnSmZqN2NML3k2eitqK1Q3cUlJVGc5ZGY3bzN2M2J0aTRj -U01PSFRvR3A5T0pTcFZxNE1VWFAvR0kKMUM1dXZ6d0IxUG1jS3J6Sk1vVlM2bzZ0MWdtb0pvaDVy -bmdWaWY2dndkL2ZINis4OGdwZWVlV1ZlN1lsaE1EQVV5MUl5aUJRbjVNbQpJWUJlZ0tZcDh3VVVS -cE9lUTU1TmhzVXBJNUFyR25HL0pNc3dLdEhPWnJOWjAyNFdMMTZNSVVPRzRPbW5ud1lBdlB6eXl6 -aDkrclNICmErSG03UndFQndVcEpTZzlGeFBxWC9jeHFIN2t3WU1IZytkNUQ4SHIzdmJtelp1SWlv -cnlLTGhTR05xMGFZUFNwVXVqWDc5KzkyejcKc0tBdUlOcTBhWVBwMDZmajlPblRxRm16SmlSSjBo -WUlFUkVScUY2OXVtYTZkNGREbFBGa3RkTFllK2JtZlk5aDI3RlVQUDMrV2t4LwpyUWs2TjZvSW9y -Z2Q5RUx4emM2U3pEUmVTbGtoQmwweDhxMUw4TS9pWHk5OEgxVnphR0h3OC9QRFN5KzloSmRlZXVr -djZWLzFGYXBrCi9JQVMwZXVtR1R1VldCbU9VUEFFSG1UOUpTZytXTm9OaFZQeHlSdDQzNlhuV09G -NVpvSTJFRmRhRjhCeW12VThVZEtObUtDK0Z3TDkKRE9BVktUNWt5QkJNbWpRSnNpd2pOallXMTY1 -ZFEycHFLdlI2UFM1ZnZxeVJ3QUNBS0Vrd1creXNZRWNCTGNsVHEvY00vREdieldqYwp1REY2SzFX -MGZDRTFOUlduVDUvR08rKzhneFl0V3FCOSsvWWUvTUh1L2Rldlh4LzE2OWUvOTRrK0JNalUwNlFl -SGg2T2hnMGJZc21TCkpaZ3hZd1o0bmtkK2ZqN01aalBtejU4UGs4bUVtalZyZXZVajhCeHFWQWg5 -SU9FTEFKbDVkZ3lZL1R0Ky83TUtKdlY4QWp3UkVBaSsKV0dablVhWWFvWWUvZ1VBb1JybkRFdnp6 -K05jTFgxOCt2eEo0Z2hBQzl6bTJvS2xhSmNibkNIVXpVNWVZcW9zREpvQ1poY0V1QVhwUQpuNU1o -endGR1pYTkI0V2JTTWVGcmRjcEZLbHNYSHVJeUk3ZHIxMDZMZXpoKy9EaTJidDBLczltTXMyZlBv -bDI3ZGg0NXZoYWJFNFRqCldRSDFRaVpzdFZLUndnVUJRZ2hDUWtKOGFxbnU0NHlKaWNGUFAvMkUz -TnhjckZ1M0RnNkh3OE9Db0tiVkZGenNGZFMwSHdZb1paSGMKTEhkYXFVL3M5dnZBZ1FNeGJOZ3dP -SjFPbkQxN0ZuUG16TUVmZi95QjVzMmI0KzIzMy9aWlNJVWp3T1kvVTd5MjN5K1c3VXpHM2pNMwo4 -TW1BcHVoUXIxeVI5M05LRkJZSFN4SHoxNU5pMVJrdXdhT0JmNzNQdHdRUGpvS21hcFg2VWRXZ1Mw -elZ4WU1vSzlXQmxFTG9CZUV1CmRBc0tZRVkvU09Hblk5V243Z2FMMVFFL0V6TTE1K1hsNGM2ZE96 -QWFqVWhKU2NHeFk4ZVFuWjJOVHAwNmVaWHl6TW16NGtKcUp1S3IKbHZYcFg1Wmx3Q0V6VWdpT1VC -aUtXZHRYeGF4WnMzRG16QmtzV3JSSU9WZG1IcFhocXRxa0hWTUpTaVBFVmVtS2MvdGUxR2VQVXFx -NApXeWhVSmttT3NQdFFrR0JqMmJKbDZOR2pCL1I2UFdiTm1vVVdMVnFnUm8wYWhmWXRVNHFqeWJm -UmZQUzZZbCtMZTRFUVlHakhXcGpZCm96NGtTaEJvS1B6ZU8wUVcxY3dSdHFBb1dTVC9zN2hmK2ZX -ZnlmTXR3ZjJERVBZQ0N4eWpjVlR6VE5sa3hVelZLdW1EVFhTeE1KVXMKbUh4RDRBZ01QTE1vT0NU -djYrUStWeGFjTjQwNnBwMVpuWGUvdnRtNUZzM2tmUDc4ZVF3Yk5neU5HemZHcEVtVGtKdWJpei8r -K0FNTwpod01aR1JtUUpNbGpYNE5CUUdSWWtKZmZHV0NMQWFkTWxmckt4Uk84QlhOL0thVUlEUTNW -dU00SllZUXFBcWVXVG5SOVZKTzh3S25SCjR5eW4yUmZoaU1vRUpyb3hnVWt5aGQwcEk5K3VwTnRJ -ckQ4L1BTTzRLTWplZGVMRUNYejMzWGRJVEV4RWRuWTJCZzhlZkZmQkN6QkwKVUlPcWtmaCtSR3VF -QnR4L2VWRmZrR1dLMmN0K3g5ZzVLM0hpK0hIY3VYUEhxdzJsckdTbzFjbjR0QU5LQk8rL0dpV2Fi -d21LaE1LaQpxajNOMUNXbWFuZklsR29CVnZxN1JFSVhoTTBwdytxa01Pb0lUSVZvdjJjdjNrRFp5 -QkFFQjVydzZhZWZJak16RTlPbVRjUEFnUU54CjRjSUZ2UHJxcXpDYnpkaThlVE1tVFpya0VXeGxz -enZCY1R6MFB2cDJLQ1phU1dhRjNlOTFQOTNOeFJhTEJmMzY5WVBOWmtOOGZEd08KSERpQThlUEhh -NFhwN3hlcVpZWlNsMVhHL2J2YUJtQ0xHVjRSNXVxSGJYKzR6K1gxekh3TW1yc2JXLzVNdlhmanU0 -Q0tka2pwSnlCbApuUVkxY2lnVkV3M3g0a2s0c3JQUXVINENKcjgvQms4KytTUWpCSEZTK0J1WnA3 -QlBuejc0NXB0dkhzYXBsT0FCVVJMdFhJSy9GQ1ZSCjFjVUhSd2lNZ290T3NDQWtTUUxQZStjZEdR -UUN1OGkwbk1LaXAzUE1WcFFySFFJQU9IZnVuQmE0bEp1YmkrYk5tMnU1Mi9uNStUaDYKOUtpSDhN -M0lNbXY3dWtPVTFmdkpCUCs5Qks4a3M0SU1SaDI3eDM1K2ZwZzZkU3JPblR1SHRMUTBUSmt5eFN0 -VjUzN2dUampDS1g1YwpsdFBPZmxlTGNLaUNWbDBjaXJKTE9LdlBKYyt4NGhFUCtreVdEZlBIMnZI -dHNPaTNzeGp6elVGWUhkSzlkeW9BMlp3TzU4VzFvUEgxCmdUNlRnTXExWVN3VmdOUUd6SmUvL1hw -RmRQOXdGcDZwRm9PcEV6OEFyek82cnNmLzBYZnF2NFFTNFZ1Qys4TGZHVlY5L2ZwMUQxN2kKZnhN -SUlZeTh3c2M1dDIvZkhwMDdkL1pnV0ZMM01lbFlGUjZya3ZOWkVObTVGbzNmMjJBd29FcVZLZ0NB -YWRPbWVlVHpIamx5eEl0ZwpJeU03SCtYZHFqd0J6TStya3JUb2hYdEh6dHBGR1hrMkdaUUNlb0hY -enJGS2xTcmFXQjRXQ3ZQakdnUUNnYis3dGNWOWthaHF5d1NNClVNU2pIYUFKYzlYSGZLOW5sUkND -Z2Uxcm9GWHRjbmh0OWc0Y1RyNWQ5SE95M0lIejRtclFBYU5CNnJYVXRuUHU1U1pMbFlWdXlpSnMK -WERRTmVhUEhZT0dzenlCSlVvbmcvWStneE9kYmdvY0dvdmlOTlk1aWdSRlA4SXJmV09Va1Z2MTJx -cyt1TU9UbTV1S25uMzVDang0OQpFQnNiaTI3ZHVublZCLzQzd05kazJhbFRKM0FjaHg5Ly9CR1RK -MC8yK2wzSEUvQWNDNjZSZktqT3B5NWMxeUtXNXM2ZHE5R0tWcXBVCkNaR1JrUUNZRDlaZ01DQXVM -azdiVDVabG1QT3RIbjJwQVZhVU1zMVFmNWRjVVVvcDhtd1NjcTJLNE9YSlgyYmRLSW9mOTE3YXVY -czgKZzQ1bnorYlJJNGZSb1VNSFJFZEhJeVFrQkkwYk44WVAvKy8vYVVKYWxJR1ZxOVlndms0Q3dz -UEQ4ZnlMblhEcGFpbzRqZ1BIY2VqYgp0NS9tYStZNER0WEtoNkxTcmRVWTM2MHVlSTVBdXJZWHRq -VURZVnN6RUhJR1k1K2o5anc0RGlmQ3ZtVWNiTDhNaFgzTCs2QjUxNEUvCmRvQ2FHVWMwUGI0WDEr -cjV1d2EvWlRtUzZ3WGh5b0tQc2VuNEtheGU5Uk40bmdmSGNWNVI1K3ZXclVPTEZpMFFHUm1KaUln -SXRHalIKQXV2V2VRYUc5ZTNiVnp1SHk1Y3ZvME9IRGloVnFoUzZkdTJLL2Z2M2U3VDk3YmZmTUdE -QUFNVEZ4Y0ZrTW1sTVpYdjI3TG5QdTFrQwpMOUJIQUkvSU1FcndGME9XWlNySk1uVktNclU1Wldw -eHlEVGZ3ZjdhbkRJVkpabktzcXkxWDdCZ0FlM1hyeDg5ZHV3WXRWZ3NkUHYyCjdmVDI3ZHYvNEJr -OEhJd2NPWkkrL3ZqamxGSktMUllMYmR5NE1WMjRjS0ZYTzRjbzA4eDhrZWJaUksvZjJ2U2ZSZWN0 -MjBIenJmWkMKajJPMVdtbEdSb2JIdHB3OEs5Mnk3NHpITnUxZTJDV1A2MThRVGxHbWQ4eE9laXVY -ZlN6M2FIOC9rR1NaMnAweU5kc2ttbXRsSDR0RApvazVSZmlqSFdyNThPZVU0amhKQ0tNZHgybmRD -Q0gzLy9mY3BwWlFlUEhqUVl6dkhjYlJpeFlyYS83Mzc5S1A1eXJPcmJ1dlR0eDkxCmlESk5TczJt -ZFR1L1N3RkNBVUwxVFVkUzQ0dUxxUDZweWRvMjlnRUZJZXhUdnhVbHY5MmltTEhhdFUzOWNCd0Z4 -OUV5NzB5aHpaN3YKcEIydlg3OSsyamw5K09HSDJuWjF2T3IzYWRPbWFlMzY5T21qYlE4UEQvZllS -NmZUMGR6Y1hFb3BwYm01dVRRNE9OampHcWw5enB3NQo4NEh2d1g4Tjl5dS9TalRmRXZ4dHVGZFVO -U2xnNXR1OGVUTVNFaEpRdlhwMW1Fd210R3paRWlFaDNyN0tmeE5rV1VaY1hCd0lJZGk2CmRTdE1K -aFAyN3QycmxWNmsxR1grVk5Oam5CTEw2M1RINWRRTWpKcjVNNll1MklCYm1XYklsRUtTWk9TYXJj -akpzOElwU2pBYWpWbzEKS3dESXQ5cVJjak1UQmpjR0Q2ZEVOVCt2cVpEYXZKUlNXQjB5c2l3U0pK -bHB4NkYrUEV6Nm9qRngzUXVVVWlWdmxXbTVkcVhFb1ZGSApFR0JnUVdjQy8rQitUb3ZGZ3FGRGg0 -SlNpcWVmZmhybnpwM0R6WnMzOGRwcnJ3RUFac3lZZ1lzWEwyTFZxbFZhQU0zOCtmT1JsSlRrClFi -akJjOUNxVHJsRHBrQjBaQkRlZUtZbVM1WGlDRDU1dlRIbUQybUJkN28yUSt2WHBxRFJrRzhRV084 -bDRJMHBRT2RCYk1lak8wQ3YKblFlSmI0SXFKMnhhZjJHZCs2SnVzb2g2eVJMS3ZEVVdONGgzaFBY -VnExZnh3UWNmQUFDcVZxMks3ZHUzWS92MjdacnBmL0xreVVoSgo4YzVMcmxXckZzNmNPYU1WUXBF -a1NlTk1VUE8walVZampoOC9qdno4ZkNRbkoyUHg0c1dvVmF2Vy9WejZFdmhBaWZBdHdUOEtkMU8x -CnV3a3hOVFVWdTNmdnh0NjllOUdtVFJ0TW1USUZUcWZUSitYZnZ3RnFHbzVxTWt4TVRNVHExYXVS -VTZBdXNGcUVRYlUwcTlIT1ZxZXMKQ1FTcnpZRzBXOWtRUlJtemxtekZrdldIa0dFV01mS3pOWGlx -L3l5OE1lbDdiTng5R2xhN2lEL09YRVg2blZ6Y3lUWmo2YnFEYVBUcQpkRlFzeDhyMVNSTFY2c2tX -Sm5obG1TTFhKc05zWnlzQ280NGcxSTh2TXY5MFlhQ1VRcFNZVURmYldYQVo0NVltOERjUStPazU2 -QjZDCndIWEh5Wk1uY2ZzMjg4dHUzcndaVmF0V1JlblNwYkY0OFdJQVRBQWRQSGdRNjlldkI4Q3FK -YjN4eGh1b1VxV0tWbnhEaGJxUVZLSDYKb0UwNjRzSGR2ZU40R3BLdlo2TnlUQm5VTE0wamI5Zm5z -SjVjQnlST0FGWXQwTm9GWjZjaHlFOFB3UzMvaS9tZWlYWThzVTVqcjNQYQp2MysvVmd1NWI5Kyth -TkdpQlpvM2I0NCtmZm9BWUh6VkJ3NGM4TnB2M0xoeHFGNjlPbDU5OVZVQTdINm93cmR4WTNZY204 -MkdxVk9uCll2SGl4YmgxNnhaNjlPaUJ0bTNiM3ZNNmw2Qm8rSGZPWkNYNHp5TXpNeE9DSUdEZXZI -a3dtVXpvMDZjUFRwdzRnWHIxNmdGZ2s0VkQKK3ZkRVZmLzY2Njg0ZXZTbzV0KzEyV3pZdTNldk5t -YXFwT3h3SENCUXdDR3lJZ2U4RDlySnkybWVPYUFXcXdNQXEzRjdLdms2VGlWZgpSNmVuRzJESGtR -dm9QR1N1UjF1RFhrRFp5R0RJTXVDazdMaEd3VGREa2tNSnFwSVZJcEJBSXdlRDhHRHJkVWxXY25R -bEY1R0xuZ2NFCi9xOW5hVkpyZkt2dzlieGN1SEFCWjgrZUJRQVBMZTllR2g5MWkxMncyKzNhOS81 -UFY4T1BwM0x4NmVJMWNPejhTRzBORU9XaFZmWXoKMlBNUUh1NS8xMnRBVGY1ZTI2NWR1Nlo5ajQr -UDE3N1hybDNiWnh1QW5YZVRKazBBc0twSEt0U0ZZUFhxMWZIMjIyOWozcng1V0xGaQpCVmFzV0FF -QUtGMjZOSDc2NlNjMGJkcTAwREdXb09nbzBYeEw4RWppekpremFOZXVIY0xDd3VCd09GQ25UaDFz -MjdiTm84Mi9pUUNrCmFkT20yTDU5TzhhT0hZdERodzVoeFlvVjZOcTFLNEtDZ3JRY2FuWE1LdEdF -UTJKenMwbkhKbVJWKzcyVTRobFZhN0V4NGF1eVhSRkMKOEdSOEpldy9kdEZySExIbHdnRndXb0FW -eHhFdkxaWlNDck5kUW82VkNWNGR6N1RkK3hXOE1tVXBTZmwyR1JZSFcwVHdQRHN2ZndOago4dm83 -NkJIZEtUYkhqQmtEU1pLOFBoTW1UTkRLa0o0NGNVSnI3LzdkSFdvVk1vdkZvbTFUTlUxS0tZTDg5 -Rmo2Ym1zOGFUak5mdFFaClFhTHJBQXQzQXFQbWFmdmN5ckhoZkZyMlhaOWJZczcxMmhZVEU2TjlQ -M2JzbVBiOStQSGoydmZvNkdpdi9WUytiVjhsSVFIR1RwYVQKazRNOWUvWmd6cHc1cUZpeEl0TFQw -ekZ6NXN4Q3gxZUM0cUZFK0piZ2tVVGR1blhoNStlSGZmdjJZZE9tVGJoMjdackhhcDV4S1JjOQpx -dnFmRnNiaDRlSFl0V3NYYkRZYnZ2enlTMVNwVWdVOWUvYlVmaGVWb2d3eVpmNU9IZTlpZWVJNGRw -NHlaZFZ2THFWa2VQUnRzVEpOCnk4L0loRytWbUVpRWh3VGdvQS9oKzFpRkNJM0JDcUFvV0Q1WWtp -bXlMUktzRHBXd24wT3dxZmpDOGUveTR4WUh0V3JWMGdwTUpDWW0KWXVYS2xjak96c2FGQ3hmdzNY -ZmZvVzdkdWtoUFQ4ZHp6ejBIZ09WUEwxaXdBTW5KeVpneFk0YlBQbHUxYWdVQU9IandJTXhtTS9i -cwoyWU5ObXpaNXRDR0VJRkJ3c3Z1cTA0SDRsUUcyclFSV2Z1blJybndwZnhqMUFveFZtSC9abW5R -Y1lrNFdBSURLTW9Tak83Mk8zNmhSCkk2MmExWklsUzdCcjF5N3MzcjBiMzMzM0hRQ1dodGF3WWNO -aVhhZnQyN2Zqczg4K3crWExseEVmSDQ5T25UcHBDNWRUcDA0VnE2OFMKRkk0U3MzTUpIa2xVclZv -Vk5Xdld4T2pSb3hFVEU0TWhRNGFnUVlNR1B0dTZFNERvNE1ydFZIbXFuVExnZ0NmUmdvczMrTyti -L0FraAptRGx6SnN4bXMwY3Vic0dxU0VhRldFTXRRYWdLTFpWNEkrMVdsa2UvcXVaclVvUnZvenFW -SVlvU2pweSs0aldHWGk4MFVsaktHSCswCnU5bmJMbEtZYlRJbzJFSW0wTVFYcTBRZFZmTnhGVjh5 -VVBSODNMOERKcE1KYytmT3hhdXZ2b3JNekV5dmtwRXFlVVhuenAweFk4WU0KeUxLTU45OThFNEJ2 -N1JFQTJyWnRpN1ZyMStMYXRXdUlpSWlBM1c3M3VMY3FldlhxaFkwYk4wSzA1b0dlMndRa2JRUmlY -U2xnZmdZZQpwWUtZTmhyVTdHbllray9EY3ZwUEhLL0hBdVlxZmJrU1ZZTDhVSEE1RlIwZGpYSGp4 -bUhDaEFrNGYvNDhXclpzNlhFKzQ4YU5RNFVLCkZZcDFuYTVldllvUkkwWmd4SWdSWHRmbmYvLzdY -N0g2S2tIaEtCRytKWGhrOGVhYmIycVRYM0dnRVlDNGFYWFVqUUJFWlhJQy9wbXkKaXI0bVowSUlk -QndyZStkZWxsQXRRY2dKQlArL3ZYdVBpcnJPK3dEKy9zMkZhNFlpSUpZaUlNbEZ3a0dCUVVGRUsz -bzJVaXl3cERVZgowejBuU1kvWldYdlVmVHlzdGRuV3Rtb3I1VDIyRW5IZHBGWE14MXkwQTVnb2VN -bnlncEVpWW9xQklJTGNtZmsrZjR4TXNJQWdETDhSCmVML084Y2pNZkJrL245L0k3OFB2Ky90ZXJO -UVNhaG9FUm85cVdRaWE3dm5hMmhoR3cybzFJL0ZEM3MvRzU1djRlN25nNllsKzBJdVcKQTZ6MHds -QjA2eG9OQjhWS0plRWhxODZQWkRibmZkejdOV1BHRExpN3UrUHR0OS9HbVRObjhNc3Z2MkRJa0NG -NC9QSEg4Znp6ejJQdwo0TUZ3Y25MQ2wxOStpVC8rOFkrNGV2VXFKa3lZZ1BYcjE3ZFpnT2ZObXdj -TEN3c2tKQ1RnenAwN2lJNk9ob2VIQitiUG45L2krRVZIClJ5TWhJUUZidG14QlJVVUZZR1dMbngr -ZmhJWXJGd0JKd3VBQlZtaWF1TzMwMzRzQUFPVUh2a1Q5ZGNQOTJvWTkyeEFYOXdyKy9jOGQKclQ2 -WEZTdFd3TmZYRjJ2WHJqWGVyL2IyOXNiaXhZdngzSFBQR2R0MXRHQklrNkNnSU15ZVBSdkhqaDFE -VVZFUmJHeHNFQklTZ3BDUQpFTXlkTy9jK2p6aTFoMnM3VTcvVWRKKzFhVFd1WDR0eHM1MmNaQ3JH -LzZscFZ5VERSZ01TR25XR1h4Z3NsQUtWZFhyVTFEVmd3Z3QvClFsR0pZWURNMHhNZngrWlZjM0Vv -Nnh6bUx0dUtVLzlhaWRSdlRtTmx3bTdqZTFwYnFWRnc2QU9vVkVyalFDN0FjSlZhVWFNenJ2ejAK -a0pVQ1ZoM3NwZ1FZQ25hajd0ZXBTZ0NnVWdKcWhXRnhrQWQ1OEZ0WE5kMGZuVE5uRGhJVEU3djFY -c1hGeFpnNit4VmNESTNCb0drdgpZV0E3R3pYb3FxdFE4Y0gvSU5yRkFlKy92YkpQSHRmZWpyc2FF -ZDBIU1RKY2xhbWIzVGUyVWhrS3JoQ0d1YlZOTytuVU5iYmNRYWVuCk5lMktWSzh6YkhUUXRNOXln -MTZDaFFLd3RGQmp5ZStlTWJadjN1MDh6SGtRaGpuYkkvdjdsaDJVT1YvRVE2MVdvdlJXQlpRS3c4 -bWkKcWs2UDhtcEQ0VlVwZ0VHMnluc1czZ2Z4UG01djVlVGtoTjEvMzRweHA3K0c0cjBGcURqOGI0 -aTdVNFlBb0xIc0ptN3QzSUxLMTJQdwpzdWR3L0hsbFBJOXJIOE51WnlLMDNWV3RiM1oxTEhkWHRW -SWh3VW95N0lva0pFQ3RFS2pYUzZpcXFjZkpDei9qeFdlQ3NHVm5PaTdrCkY2R3ErdTZBSzJzTEJJ -OFpDUURJL2o3ZitGNmYvK1YzZUhUSVFIeTIrd2ptVGcrR1RtOVlJckxoN2pySk5oWUsyRmkwdjhE -R2czd2YKVjI2bS9LeUhEaDJLLy92SGRtUm1abUxMUDc3QThjMnJvSHA0RUlTdUVjcWFLc3o2cndq -TTJyak81R3RsMDRPQnhaZW9IUXJwMTUxeQpnTlpkMVEzR1lpUjZwS3U2YVZlazJrYWdYbThvd0dv -TE5ZNmUrZ2xCZnU1WThkbzB6RnF5Q1RWM3IzeHRyUzJoSFRNU0YvS0xVSGJiCnNJZnVuT2RDOEd6 -NEdIei80ODlZOS9sQnZESjlBbTVWNlNCZ2lQZGhLeVhVcXRieDlxYjd1SExSNi9VbWYwK1ZTb1Vw -VTZaZ3lwUXAKcUtpb1FIbDVPZFJxTmV6dDdXRnBhZG85ZytuQnd1SkwxRW5tR0ZVdDNTM0FkVHBE -TjNUV3FUekV4VTdHdHlmek1HVzhEeVlHak1LVgpheVVvdW40TjVhVTM0VGRxQ0k3ZDdYSit6TlVK -cTVmUHhPMDdOWGhoMGNkWTg0ZVhVRkZyS0NDV2R3ZFZOYjl5YmVzK3JycXA0SnJwCi9uZC84dkRE -RHh2bkRWUGZ4d0ZYUkNiVXZLdGEzMndnVi9OdTZxNTBWVGV0NkhXcnNnYWZmSEVZc2M4R28rck9M -WHp5eVJicyt1ZFcKUEQ3S0RncUZRRVVGVUNVOWd0eFNaMXcvdmcxcXRRb3ZMZG1NUDh5ZmhwRXVo -dDJPREN0VlNjYWZ1OGE3M2NyTjk4ZFZLeVdvK3VqQQpLU0pUNm1yOVl2RWw2a0dtSEZVdGhNQzJy -NDdqNlZCZmZMbzlCZnQycmtMVTA0M1FCdFJENisrSXh3TE9vdkJhUFVhNnF1RGxOUnpqCnRDOGhl -ZWMrWEx6d1BZYTdqTUNCekZQd0dEYlFzQmhKRy9keDFjcitlUitYcUR1NldyL1k3VXpVZzB6WlZT -MUpFdFo5ZmhCZjdENkEKcWt2YnNHYWxoREcrZG1ob0dqbDF0N256RUFza3I3ZkRvdjlOUWtPTjRj -bktxbHBjdS80TFhJZmFvWmIzY1luTXJsdFRqVEl6TStIdAo3WTNISG5zTUNRa0piYlpadm53NTNO -M2RNVzdjT0Z5NGNLRTcveHhScjllMEc0NWErZXUyaWxiTnRsVnMwUDI2Vm5YZGY2eFZMWVJBCi9z -OGxPSFlvRVMvUEtNZVkwYmFHQW1xaFF2TmZ2TlVxSmF5c0ZWanpwNEc0ZGVzR0FNTTBwQ0ROS0RU -b0RQTnhyUzNrWFZlWmlGcnEKVnZGOS9mWFhzV25USmh3OGVCQWZmL3d4YnQ1c3VlWnNUazRPRGg4 -K2pCTW5UclM1WEJsUmY3Smp4dzRvRkFvb0ZBcmp3dmRwYVdsUQpLWld3VUNseHRTQWYxbW9KWCsv -OUZ4NnlWTUxhUW9tc1k4Znc1L2ZlUjVBMkdJNU9UcWc0L2hGdVh5L0UzNU52NDE5Zlg0Vk9yemRN -CmtXbytLdnZ1MzlaV0VoenREVjgzTnVvQWZTTWVzcFN3ZE1rYnNGQXBvVlFxc1hidFdnQ0dqU3pl -ZlBOTkJBY0h3OXJhR3M3T3pwZ3kKWllweHV6MGlNcTB1RjkrbTdhZkN3c0l3WXNRSVJFUkVJRHM3 -dTBXYjdPeHN4TVRFd043ZUhyR3hzY2FsejRqNm83Q3dNQUNHcTkrbQpuVytPSGoxcWZLN3A2NmEv -YlcxdEVhSU54RmVwdTNIcTVBbmNLaXVEWHE5RFk2TWUzeDZ0eDV5NFVweTdVSGwzTTRZV2M2SWdR -VUpECmd3NFBQV1M0WWk0cnY0TUJOaFpZdFdvVkVoSVNJRWtTVnExYWhUZmVlQU1Bc0dEQkFxeGV2 -Um81T1Rtb3I2OUhTVWtKMHRQVHNXZlAKSHJrT0QxRy8wdVhpZS96NGNYaDVlUmtmKy9qNHROcTBP -U2NuQno0K1BzYkhqbzZPdUhTcDlVNHJSUDNCbzQ4K0NsZFhWd2doakQ4cgpXVmxaeGdFYnpaOERn -T0RnWUtoVUtzVEh4K1A4K2ZPNGZmczIzbjdyRDFqK3VqTXNMU1hVMWdrazc2cHNOZGlqVWFmSGo1 -ZUxrSGZsCkJnREQvV0NWU29uTm16Y2pQajdldU9EKzh1WExBUUNYTGwxQ1JrWUdKRWxDWW1JaXFx -cXFjUFhxVmFTbXBtTHExS2t5SFIyaS9xVkgKQjF5Sk5wYmphMjlVNThxVks0MWZoNGVIdDlpZGc2 -aXZDQXNMUTBGQmdmSHFOanM3RzBGQlFiaDgrVEt5c3JMUTBOQ0FreWRQR3RzQwpoazNNbHk1ZGlw -TW5UK0w2OWVzUTR0ZkZIZ3F1MXNOQ3BXaDF6OWZUYlFqcTZ4dWhWdDBCMEFoZC9SM2pKaFZMbGl6 -QlcyKzlaV3p2CjV1YUdvVU9Ib3Fpb0NGdTNic1dOR3pjd2J0dzRoSWFHWXVEQWdUMThSSWg2bC9U -MGRLU25wM2YvalVRWGxaZVhDNDFHWTN5OGNPRkMKOGRWWFg3Vm9zMjdkT3JGbXpScmpZM2QzOXpi -ZnF4dGhFUFVxVzdkdUZaSWtDWVZDSVE0ZlBpd2tTUksvLy8zdnhmVHAwNFZLcFJKcAphV2xDa2lR -aFNaSklUMDhYUWdqaDQrTmpmRTZoVUFnSkVKSmsrRE01ZElBUUplT0VLQmtuUmd5M2FQV2MxMk5X -QWtDTDc5Ky9mMytyCnVMWnQyeVlHRHg1c2JDZEprckN5c2hMcjFxMlQreEFSOVNwZHJWOWQ3bmEy -czdNRFlCanhYRkJRZ0xTME5HaTEyaFp0dEZvdFVsSlMKVUZwYWl1VGtaSGg3ZTdmMVZrVDl4c1NK -RXdFWWVvVldyMTROd0xBaCt2ang0NkhUNmZEaGh4OENBQ3dzTEJBY0hJeERodzRaeDBxOAo4ODQ3 -S0MwdHhiT1I0MkZqM2ZHUHJrNG5jTFBNc0ppR282TWpQRDA5SVlUQUN5KzhnRk9uVHJWb08ydldM -QlFYRitQMDZkUDQvUFBQCkVSNGVqcnE2T3J6enpqdG9iR3cwNVNFZ0luU3oyL25ERHovRXE2Kytp -b2FHQml4YXRBZ09EZzdZdEdrVEFPRFZWMTlGVUZBUVFrTkQKRVJBUUFIdDdleVFsSlpra2FLTGVh -dFNvVVhCeWNrSnhjVEgyN3QwTFNaSXdZY0lFT0RrWlZwL2F2MzgvQUNBZ0lBQ1dscFlvTFMwMQpm -dStBQVFOUVcxc0x0YVV6cXFyMXVOZGFHSHE5d0Y4K0tvZWxwUjJBV3RqYTJtTGZ2bjBJRGc3R3pa -czNFUmtaaWFOSGo4TFYxUlhGCnhjVllzMllObm4vK2VYaDRlR0RFaUJFNGUvWXMwdFBUVVZwYWlx -S2lvdnZla0oySTdvMHJYQkhKYk1hTUdVaEpTUUVBdUxpNG9LQ2cKQU5YVjFiQ3pzNE5PWnhnZ3RX -elpNcno3N3J1b3E2dURzN096Y1hZQllCaTRkZXRXR2FxcXF1SG5ZNDNqYVY2d3NGREFkZXdaRlA1 -YwpqMENORFVMSEQwRjV6Vmo4ZExFWTMzNzdMVnhkWFpHZm40OGpSNDdneVNlZlJGMWRIVHc5UFhI -a3lCRlVWRlRBM2QyOTNWaDM3dHpaCjh3ZUZxSmZpZnI1RXZVUlQxM1BUVlM4QTJOallRS1BSR0xZ -MmxDVGpZQ3RMUzB1a3BxWWlKaVlHZ3djUFJrUkVCQTRkT2dSSFJ5Y28KRkFxVWxqK01aMSt1eEp0 -djNVSDViY01KNEZLaENuNkJLN0IrdzNZbzhHWENlUUFBQ0VCSlJFRlVsY29XZ3h4RFFrS01HOEhu -NWVVaApLaW9LRGc0T1dMUm9FY2FPSFF0N2Uzc01HREFBVHp6eEJPTGo0L0hYdi81VnprTkQxRy93 -eXBlb2x5c3NMTVRGaXhkUlgxOFBSMGRICmFEUWFLSlhLanIrUmlMcU5HeXNRRVJISmpOM09SRVJF -dlFTTEx4RVJrY3hZZkltSWlHVEc0a3RFUkNRekZsOGlJaUtac2ZnU0VSSEoKak1XWGlJaElaaXkr -UkVSRU1tUHhKU0lpa2htTEx4RVJrY3hZZkltSWlHVEc0a3RFUkNRekZsOGlJaUtac2ZnU0VSSEpq -TVdYaUloSQpaaXkrUkVSRU1tUHhKU0lpa2htTEx4RVJrY3hZZkltSWlHVEc0a3RFUkNRekZsOGlJ -aUtac2ZnU0VSSEpqTVdYaUloSVppeStSRVJFCk1tUHhKU0lpa2htTEx4RVJrY3hZZkltSWlHVEc0 -a3RFUkNRekZsOGlJaUtac2ZnU0VSSEpqTVdYaUloSVpsMHV2cFdWbFlpS2lvS0wKaXd1bVQ1K09P -M2Z1dEdwejllcFZUSjQ4R2FOSGowWjRlRGlTazVPN0ZXeGZrNTZlYnU0UXpJSjU5eC85TVdlQWVW -UEh1bHg4TjJ6WQpBQmNYRi96MDAwOFlObXdZTm03YzJLcU5XcTNHMnJWcmNlN2NPZXphdFFzclZx -eEFaV1ZsdHdMdVMvcnJmMVRtM1gvMHg1d0I1azBkCjYzTHh6Y25Kd2J4NTgyQnBhWW01YytjaU96 -dTdWUnRuWjJkb05Cb0FnSU9EQTBhUEhvMFRKMDUwUFZvaUlxSStvTXZGOS9qeDQvRHkKOGdJQWVI -bDVJU2NuNTU3dEwxNjhpSFBuemlFb0tLaXIveVFSRVZHZklBa2hSSHN2UHZYVVU3aHg0MGFyNTFl -dFdvV0ZDeGNpTHk4UApWbFpXcUs2dWhyZTNONjVjdWRMbSsxUldWaUk4UEJ6eDhmR0lpb3BxSFlR -a2RTTUZJaUlpODdsSEdXMlg2bDR2cHFXbHRmdmFaNTk5Cmh0emNYUGo3K3lNM054ZUJnWUZ0dG10 -b2FFQjBkRFJlZnZubE5nc3YwTFhBaVlpSWVxc3VkenRydFZva0ppYWlwcVlHaVltSkNBNE8KYnRW -R0NJRjU4K2JCMTljWGl4Y3Y3bGFnUkVSRWZVV1hpMjljWEJ3S0N3dmg2ZW1KYTlldVlmNzgrUUNB -Njlldkl6SXlFZ0J3NU1nUgpKQ1VsNFp0dnZvRy92ei84L2YzeDlkZGZteVp5SWlLaTNrcVlRVVZG -aFpnMmJab1lQbnk0aUlxS0VwV1ZsYTNhRkJZV2l2RHdjT0hqCjR5TW1UWm9rdG0vZmJvWkl1eThq -STBONGVYa0pEdzhQc1c3ZHVqYmJMRnUyVExpNXVZbXhZOGVLM054Y21TUHNHUjNsblpTVUpQejgK -L0lTZm41K0lqWTBWUC83NG94bWlOTDNPZk41Q0NKR1RreU9VU3FWSVNVbVJNYnFlMFptY2MzSnlS -RUJBZ1BEeThoS1RKazJTTjhBZQowbEhlMWRYVll2YnMyVUtqMFlpd3NEQ3hlL2R1TTBScFdxKzg4 -b3B3Y25JU3ZyNis3YmJwaStlemp2THV5dm5NTE1YMy9mZmZGd3NYCkxoUzF0YlZpd1lJRjRvTVBQ -bWpWcHFpb1NIejMzWGRDQ0NGS1NrcUVtNXVicUtpb2tEdlVidE5vTkNJakkwTVVGQlFJVDA5UFVW -SlMKMHVMMTdPeHNFUklTSWtwTFMwVnljcktJakl3MFU2U20xVkhlV1ZsWm9yeThYQWdoeEtlZmZp -cG16WnBsampCTnJxTzhoUkNpc2JGUgpUSjQ4V1VSR1JvcGR1M2FaSVVyVDZpaG52VjR2ZkgxOVJW -cGFtaEJDdEhsTWVxT084dDZ3WVlPSWk0c1RRZ2hSVUZBZzNOM2RoVjZ2Ck4wZW9KcE9abVNsT25U -clZiaEhxcStlemp2THV5dm5NTE10TDlwYzV3cmR2M3dZQWhJV0ZZY1NJRVlpSWlHaVZhM1oyTm1K -aVltQnYKYjQvWTJGams1dWFhSTFTVDZremU0OGVQaDUyZEhRQWdNaklTR1JrWnNzZHBhcDNKR3dB -U0VoSVFFeE1EUjBkSHVVTTB1YzdrZk9MRQpDZmo1K2VISko1OEVZUGg1N3UwNms3ZWRuUjBxS3l2 -UjBOQ0Fzckl5Mk5qWTlQcVpIUk1uVHNTZ1FZUGFmYjB2bnMrQWp2UHV5dm5NCkxNVzN2OHdSYnA0 -bkFQajQrT0RZc1dNdDJ1VGs1TURIeDhmNDJOSFJFWmN1WFpJdHhwN1FtYnliMjd4NU02Wk9uU3BI -YUQycU0zbGYKdTNZTmUvYnNRVnhjSElEZVA4MnVNemtmT0hBQWtpUmg0c1NKbURwMUtnNGNPQ0Iz -bUNiWG1ieGpZMk9oMCtuZzRPQ0EwTkJRYk4rKwpYZTR3WmRjWHoyZjNxN1BuczN0T05lcU9lODBS -RnZjeHRhaXlzaEl2dnZnaTFxNWRDMXRiVzFPRytFQVFocTcvRnMvMTloUHkvVGg0CjhDQ1NrcEtR -bFpWbDdsQmtzWGp4WXJ6MzNudVFKS25Oejc0dnFxMnR4ZW5UcDNIdzRFRlVWMWZqcWFlZXd0bXpa -MkZ0YlczdTBIclUKUng5OUJKVktoYUtpSXB3NWN3YVJrWkc0Y3VVS0ZJcSt1NThOejJlZFA1LzEy -UCtDdExRMG5EbHpwdFdmYWRPbUlUQXcwTmdkMGQwNQp3Zyt5d01CQVhMaHd3Zmo0M0xsenJhWmth -YlZhbkQ5LzN2aTRwS1FFN3U3dXNzWFlFenFUTndEODhNTVBtRDkvUGxKVFV6Rnc0RUE1ClErd1Ju -Y243NU1tVG1EbHpKdHpjM0pDU2tvTFhYbnNOcWFtcGNvZHFNcDNKZWZ6NDhmak5iMzREWjJkbnVM -dTdJeUFnQUptWm1YS0gKYWxLZHlUc3pNeE8vL2UxdllXTmpBNjFXaTBjZWVRUjVlWGx5aHlxcnZu -Zys2Nno3UForWjVWZXcvakpIdU9rZVFHWm1KZ29LQ3BDVwpsZ2F0VnR1aWpWYXJSVXBLQ2twTFM1 -R2NuQXh2YjI5emhHcFNuY203c0xBUTBkSFIyTDU5T3p3OFBNd1Jwc2wxSnUvOC9IeGN2bndaCmx5 -OWZSa3hNRERaczJJQnAwNmFaSTF5VDZFek93Y0hCeU1qSVFIVjFOY3JLeXZEZGQ5OGhKQ1RFSE9H -YVRHZnlmdUtKSjdCMzcxN28KOVhyazUrZWpyS3lzUlZkMVg5UVh6MmVkMGFYem1VbUdndDJuOXFZ -YVhidDJUVHp6ekROQ0NDRU9IejRzSkVrU1k4YU1FUnFOUm1nMApHckYvLzM1emhOc3Q2ZW5wd3N2 -TFM0d2NPVkw4N1c5L0UwSUlzWEhqUnJGeDQwWmptNlZMbHdwWFYxY3hkdXhZY2Y3OGVYT0ZhbElk -CjVUMXYzanhoYjI5di9Hd0RBd1BOR2E3SmRPYnpiakpuenB3K01kV29Nem12WDc5ZWVIdDdpN0N3 -TUxGanh3NXpoV3BTSGVWZFhsNHUKRmkxYUpQejkvVVZFUklUWXQyK2ZPY00xaVprelo0cWhRNGNL -dFZvdGhnMGJKajc1NUpOK2NUN3JLTyt1bk0vdXViWXpFUkVSbVY3Zgp2Zk5QUkVUMGdHTHhKU0lp -a2htTEx4RVJrY3hZZkltSWlHVEc0a3RFUkNRekZsOGlJaUtaL1QvR1BwWnExd3BzbndBQUFBQkpS -VTVFCnJrSmdnZz09Cg== - - - - - - - - +{ + "nbformat": 2, + "name": "text_analysis", + "worksheets": [ + { + "cells": [ + { + "source": "

Text Analysis Using NetworkX

", + "cell_type": "markdown" + }, + { + "source": "

This notebook will analyze a plain text file treating it as a list of\nnewline-separated sentences (e.g. a list of paper titles).

\n
\n

It computes word frequencies (after doing some naive normalization by\nlowercasing and throwing away a few overly common words). It also computes,\nfrom the most common words, a weighted graph of word co-occurrences and\ndisplays it, as well as summarizing the graph structure by ranking its nodes in\ndescending order of eigenvector centrality.

\n
\n

This is meant as an illustration of text processing in Python, using matplotlib\nfor visualization and NetworkX for graph-theoretical manipulation. It should\nnot be considered production-strength code for serious text analysis.

\n
\n

Author: Fernando Perez

", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 1, + "input": "%run text_analysis.py" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 2, + "input": "default_url = \"http://bibserver.berkeley.edu/tmp/titles.txt\"\nn_words = 15\nn_nodes = 15\nurl = default_url\n " + }, + { + "source": "Fetch text and do basic preprocessing.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 3, + "input": "text = get_text_from_url(url).lower()\nlines = text.splitlines()\nwords = text_cleanup(text)" + }, + { + "source": "Compute frequency histogram.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 4, + "input": "wf = word_freq(words)\nsorted_wf = sort_freqs(wf)" + }, + { + "source": "Build a graph from the n_nodes most frequent words.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [], + "collapsed": true, + "prompt_number": 5, + "input": "popular = sorted_wf[-n_nodes:]\npop_words = [wc[0] for wc in popular]\nco_occur = co_occurrences(lines, pop_words)\nwgraph = co_occurrences_graph(popular, co_occur, cutoff=1)\ncentrality = nx.eigenvector_centrality_numpy(wgraph)\n" + }, + { + "source": "Print summaries of single-word frequencies and graph structure.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "stream", + "text": "Number of unique words: 9265\n\n10 least frequent words:\n rosenhouse's -> 1\n reconstruction, -> 1\nparameterization -> 1\n benda) -> 1\n reconstruction: -> 1\n payoff -> 1\n electricity -> 1\n kalman-bucy -> 1\n clark--ocone -> 1\n m-estimators -> 1\n\n10 most frequent words:\n large -> 421\n process -> 428\n markov -> 440\n equations -> 471\n limit -> 518\n brownian -> 536\n model -> 542\nstochastic -> 1000\n processes -> 1087\n random -> 2356\n\nGraph centrality\n random: 0.474\n limit: 0.336\n stochastic: 0.312\n walks: 0.307\n process: 0.297\n processes: 0.259\n theorem: 0.251\n time: 0.232\n equations: 0.213\n model: 0.209\n markov: 0.197\n large: 0.19\n brownian: 0.125\n models: 0.107\n percolation: 0.0852" + } + ], + "collapsed": false, + "prompt_number": 6, + "input": "summarize_freq_hist(sorted_wf)\nsummarize_centrality(centrality)" + }, + { + "source": "Plot histogram and graph.", + "cell_type": "markdown" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 7, + "text": "<matplotlib.axes.AxesSubplot at 0x334b250>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 7, + "input": "plot_word_histogram(sorted_wf, n_words,\"Frequencies for %s most frequent words\" % n_words)" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 8, + "text": "<matplotlib.axes.AxesSubplot at 0x3371e50>" + }, + { + "output_type": "display_data", + "png": "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\n" + } + ], + "collapsed": false, + "prompt_number": 8, + "input": "plot_word_histogram(sorted_wf, 1.0, \"Frequencies for entire word list\")\n" + }, + { + "cell_type": "code", + "language": "python", + "outputs": [ + { + "output_type": "display_data", + "png": "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\nuHjxoggMDBSpqamFzg0dOlSMHj3a+L5ixQrj4V9QfD0ej4iKihK//fabkbZv377izTffFELo4lu5\ncuVi++J62nOla331XLNmjXF+zJgx4t///rfxPTU1VURHRwuPxyP2798vatSo4VdW9+7dxbx584qt\nv48dO3aIuLg4kZycbLyU+Bg0aJDxkuXjt99+EzExMYZA/NGyGzduLBYtWlTo+MKFC8U999xjfM/O\nzvb7jYt6uPnqtnr1amEymURKSooQQv9tgoODxa+//lpsOy7HBx98IAYPHmx8971InT17Vpw5c0bY\n7XbhcDiM8xUqVDAenq+99prxOwohxA8//OBX96ZNm/qJ66JFi0SnTp2uql4jR44Uw4YNK3Q8JSVF\nBAQEGC88QgjRrFkzsXDhwiLzudK9/+CDD4q33nqr0HV79+4VkZGRhe4TIQr3cVHi+8orrxjf/+g9\nLoR+DyxYsMA437FjR/Hee+8JIYrvm4yMDFGmTBm/F5F//vOfYvLkyUV1zW1xf97uSLPzdVC7dm26\ndOnCpEmT/BxN1q9fz9133+2XtlGjRqxdu5Z9+/ahaRqVK1c2zjVo0MD4vHLlStauXUtERITxd/Dg\nQdasWVOo/PXr1xMXF0dUVFShcz/99BMNGzY0vjds2JBdu3aRmZnpl27fvn3k5uZSvXp1v7Rr1641\nvjdp0qTYPrie9hR1bcOGDQvNGxYsf+XKlUycONHIq2rVquTk5LB161ZWrlzJkSNH/Mr64Ycf/NpS\nHPXq1ePf//43o0aNoly5crz00kvFmunT09Pp1q0b//73v2natKlRr6stOzs7my1bttCsWbNC5376\n6Se/eycwMJBq1arx008/XbENAGXKlCE6OhoAs9lMdHQ0p06dMs7/EYeolStXMnv2bKM90dHRZGdn\ns2bNGjZt2kTVqlWx2+1G+oL13rRpk999UPBcdnY2GzZsoHPnzkbegwYNuuo2JicnF9l3P//8M5Ur\nVyYoKMg41qhRI9atWwfo/1590wXr168v9t73pS+unNWrV9OkSRNU9doen0X9e7qae3zbtm1GmoSE\nBONzmTJlDNNvcXVet24dKSkplC1b1sh3xowZRlsLcrvcn7c7Unyvk3HjxvHhhx/63UDNmjXz+4cC\nsHXrVlq0aEHNmjVRVZVDhw4Z5wqmbdOmDUlJSaSlpRl/mZmZPPfcc4XKbtq0KceOHeP8+fOFzjVr\n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\nrkJggg==\n" + } + ], + "collapsed": false, + "prompt_number": 9, + "input": "plot_graph(wgraph)" + } + ] + } + ] +} \ No newline at end of file