Files
lammps/python/examples/pylammps/dihedrals/dihedral.ipynb
Richard Berger 2383c31f15 Created PyLammps documentation
Based on material presented during MD Workshop at Temple University in
August 2016.
2016-11-18 23:58:57 -07:00

1169 lines
144 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Validating a dihedral potential"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib notebook"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from lammps import IPyLammps"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LAMMPS output is captured by PyLammps wrapper\n"
]
}
],
"source": [
"L = IPyLammps()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import math\n",
"\n",
"L.units(\"real\")\n",
"L.atom_style(\"molecular\")\n",
"\n",
"L.boundary(\"f f f\")\n",
"L.neighbor(0.3, \"bin\")\n",
"\n",
"L.dihedral_style(\"harmonic\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"['Reading data file ...',\n",
" ' triclinic box = (-5 -5 -5) to (5 5 5) with tilt (0 0 0)',\n",
" ' 1 by 1 by 1 MPI processor grid',\n",
" ' reading atoms ...',\n",
" ' 4 atoms',\n",
" ' scanning dihedrals ...',\n",
" ' 1 = max dihedrals/atom',\n",
" ' reading dihedrals ...',\n",
" ' 1 dihedrals',\n",
" 'Finding 1-2 1-3 1-4 neighbors ...',\n",
" ' Special bond factors lj: 0 0 0 ',\n",
" ' Special bond factors coul: 0 0 0 ',\n",
" ' 0 = max # of 1-2 neighbors',\n",
" ' 0 = max # of 1-3 neighbors',\n",
" ' 0 = max # of 1-4 neighbors',\n",
" ' 1 = max # of special neighbors']"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.read_data(\"data.dihedral\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.pair_style(\"zero\", 5)\n",
"L.pair_coeff(\"*\", \"*\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.mass(1, 1.0)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.velocity(\"all\", \"set\", 0.0, 0.0, 0.0)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.run(0);"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n/x+AnPCD2jXp5gAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.image(zoom=1.0)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0000000000000009, 1.0000000000000009, 0.0)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.atoms[3].position"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.atoms[3].position = (1.0, 0.0, 1.0)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAG3RFWHRTb2Z0d2FyZQBMQU1NUFMg\nMTMgQXVnIDIwMTZFN+maAAAgAElEQVR42uzdZ3Sc133v++8e9EqC6IWYZwoGlb0TIEUysWMrdlxi\nO3ZiR7YlucWpN8UnyU1OSXJyzjrr3HXXOlm5cRw7sYqrHDe5C+yiQAIEid4Hvdfp9Xnui5kBIEa2\nJVkECfL/WXihZUsjamY/+4c9+9m/RxmGgRBCiIePSd4CIYSQABBCCCEBIIQQQgJACCGEBIAQQggJ\nACGEEBIAQgghJACEEEJIAAghhJAAEEIIIQEghBBCAkAIIYQEgBBCCAkAIYQQEgBCCCEkAIQQQkgA\nCCGEkAAQQgghASCEEEICQAghhASAEEIICQAhhBASAEIIISQAhBBCAkAIIYQEgBBCCAkAIYQQEgBC\nCCEkAIQQQkgACCGEkAAQQgghASCEEEICQAghhASAEEIICQAhhBASAEIIISQAhBBCSAAIIYSQABBC\nCCEBIIQQQgJACCGEBIAQQggJACGEEBIAQgghJACEEEJIAAghhJAAEEIICQAhhBASAEIIISQAhBBC\nSAAIIYSQABBCCCEBIIQQQgJACCGEBIAQP1tPjxocVMFgam+v+uIXlbwhQtxDyjAMeRfE1ujvV8Dy\nMidOPAvN8BKMzsx4+/uNM2dkHAqx1ZLlLRBboKNDZWSg6ywu4nRy4kQa/AlkgLO09FJp6QUo8fmW\nnM7I9et85CMSBkLICkA8EC5dUmVlBIPMzTEyQmcnfj+f/WwN7IVGOAbl4IJWaIbrMDY15e/tNX75\nl2VwCiEBILatlhaVn4/Px+wsQ0N0dREKsbDA2bNomtK01Jqa/PR0OxyDJqiDVBiCi3ARejyelZGR\nSGsrH/2oDFQhJADE9nHrlsrOxu1mepqBAQYGCAaZnqa+HpeLb3+bU6eor8dmw2xOstmyKyoqYB80\nwREohWW4Ac1wAyYmJgLd3cZb3iIjVggJAHF/6+5WqamsrTE5SV8fY2P4/QwP89hj9PbicvHP/xwf\ne0qpkyc5cACHA01TFktaTU1BSoojsSyogSTohwtwCfpcrtXh4WhbG088IaNXCAkAcZ/p61MmE8vL\njI/T28vMDF4vp05RUKCWl407AmCz3bvVyZPU12O1YjYn2+05paW7YT80wWEoggVogWZog6nR0UBX\nF297mwxjISQAxL02NKR0HV1naYnRUbq7WV7G5eLZZ43Pflb93ABYl5SkmprYvz++LNC09Lq6QqWq\n4QSchGowoBfOwxXoX1lZGx7W29t58kkZ0kK8KnIbqHgjxbZ8IxHm53E66ezE42F1la9+9TVPytHo\nxj9itaoTJ/y1teNW67imnbfbc4uKKuEgNMGH4A9gNi/v2uHD5w8fvmkY6U5n8PZt3vUuSQIhJADE\nlrh6VRUXEwgwO8vwMLdvEw6zuMi///svOhGPjMRfISVFnT4d2bdvuapqWdM6LJYv19QUQW1iWfB2\niCjVbbWet1qvQN7SkmtwUL91i098QsJACAkAcXe0taniYrxepqcZHKSvj2CQ2Vmef/6NnHnD4Y1X\nq65Wx475amtHLZZRTftJVdWO/HwzHIImeAL+GKby81/Mzz9//Hh7JJLmdIba23nf+yQJhJAAEG+c\nzk61YwcuF5OTDAwwPEwgwPg4L7xwF2fb/v74i6emqrNnw3v3LlZVLZrN7RbLMw5HMdQnlgXvhlBy\n8u2qqvNVVS/CjoUFz8CA3tgoSSAkAIT4xfT2qvR0lpeZmKCvj8lJfD66umhr26IZNhTauJ20vl4/\ncsRbWztisTjN5h86HDt27rTAYTgFvwOfgYnCwiuFheehIhSadzrDra381m9JGAgJACFe86/hymRi\nYYGxMXp6WFjA4+Hpp+/NfLr5lraMDHXuXGjPngW7fcFsbrVav2izlUADNMIJeD/4UlNvVVc3V1df\ng9zZWc/AgHH6tCSBkAAQ4ue5fVtlZqLrLCwwOkpXF2trrK3x5S/fF3Oo37+xLNi3Tz9yxFNdPWSx\nDGva9xyOvJwcGxyBJvgjyITRkpLLJSUXoMzvX3Q6wy0t0kknJACEeCUXL6ry8o1+t44OAgGWl/n6\n1++7SXPzsmDHDnXmTKihYc5mm9O0Fqv185pWBnugEc7Bb4M7I+NmXV1zXd1LkD097evrM86dkyQQ\nEgBCANDSosrL8fmYmWFoiO5uQiHm5/n2t+/3iXJtbWNZcPhw9NAhd3V1v6YNaNp3qqt3ZWba4Sg0\nwWcgDUbKyi6WlV2EYq93eWQkcuOGdNIJCQDxELt1S+Xn43YzNcXgYLzfbWqKH/5wO82Mm5cFhYXq\n1KlgQ8OMzTZjNr9os31u9+5y2AtN8Cg8AStZWa179jTv2XMdsiYn/T09xpvfLEkgJADEw6S7W2Vl\nsbrKxAT9/fF+t6EhrlzZxrPhwsLGsuD48ejBg2sOx5qm9Vos36ypyU9NrUp00v01JMNgRcWFiopL\nUOh2r8Q66R5/XMJASACIB1pfn0pJYWnpZf1uTz314Mx9m5cFZWWqqSlQVzdls02ZzVfs9n8qK6tI\ndNK9Gz4JSzk5Lfv3N+/f3wqZY2P+7m4efVSSQEgAiAfLwED86e3z8xv9bm43zz77wM5309Px/zST\nSTU2Rg4cWHU4VjWtW9Oeq60tSEqqhuPQCH8HCvrM5gtm8yXIX11dGx6O3rwpnXRCAkBsfy+9pAoK\n4tu8IyN0db3+frftSNc3/jM1TZ044a+rm7BaJ8zmC3Z7TklJJRyAJvgA/C7M79z50qFDzYcOtUGG\n0xno6OAd75AkEBIAYhuK9bv5/czNMTRER8cb1u+2HY2Oxv+rk5PVqVOR/ftXqqpWNK3TYvlqbW0h\n1CTKJx6FKPRYLOctliuQt7zsGhrS29v5+MclDIQEgNgOtqbfbTuKRDbegaoqdfy4r7Z2zGIZ07Rm\nuz23sNAMB+EUfBj+CGZ27Xrx6NHzR4+2R6PpTmfw1i3e8x5JAiEBIO5XsX63tTWmpujvZ2SEQICx\nMZqbZeZ6mcHBjU66Rx4J79u3ZLcvadoti+VL1dVFUJdYFrwTQklJnXb7ebv9KuxcXHQPDuptbXz6\n0/KWCgkAcd/Y3O/W28vUFD4fHR20t8tU9VOtd9IBtbXq2DFvTY3TanWazT+qqtqxa5cFDsEp+AT8\nKUwWFFwtKDh/4sTtcDjN6Qy1tfGBD8jbKyQAxD01MHAf9btt2wSNv11paercufDevYt2+6LZ3Ga1\nPm23F0MDnIQT8D7wp6TcdjiaHY5rkDs/7+nvN06dkndbSACIrdXerrKziUZZWMDppKsLl+s+6nfb\njoLBjVNme/boR454amo8FsuIpn3f4diZm2tNdNL9PvwFjBUVXS4qugDlgcCC0xm+fp3HHpM3X0gA\niLvswgVVURHvdxsepqODYJClJZ57TiagN8DmU2bZ2ers2dCePfM227ym3bBa/9ViKU1UVZ+GD4In\nPb29tra5tvYlyJmZ8fb3G2fOyAchJADEXXD9uqqo2Jb9btuRx7OxLDh4MHrokLumxq1pg5r2fHV1\nXlaWLdFJ9yeQASOlpZdLSy9Aic+3FOukk6pqIQEg3hi3b6tdu+L9bgMDDA4SDDI5yY9+JLPM1i0L\ndu1SjzwSrK+ftdtnzeaXrNZ/MZvLEp10b4IPgyszs7WhobmhoQWypqb8vb3GL/+yfEZCAkC8Xt3d\nKjMz3u/W18f4OH4/g4NcvSozy5ZaXt5YFhw9Gj10yOVwuDStX9O+VVOTn55elVgW/CWkwlB5+cXy\n8otQ5PEsj4xEW1ulqlpIAIjXYnO/W08Ps7MPWr/bdl8WlJSopqZgff20zTZtNl+x2T5bUVEB+6AJ\n3g4fg+Xs7Bt7976wd+8NyBwfD/T0GG95i3yCQgJA/MypPykJHqZ+t+1odnZjWXDyZPTgwbWqqjWL\npUfTvlFTU5CS4kh00v03SIL+ysoLlZWXoMDlWo1VVT/xhHygQgJAbHLtmios3Oh36+zE632I+t22\n+7Jg927V2Bioq5u0WifN5kt2e05p6e5EVfV74XdgITe35cCB5gMHWiFjdDTQ2cnb3y4frpAAeOi9\n+KIqKsLvZ3Y2frvnw9zvth1NTMQ/qaQk1dQUOXAg1knXpWlfq6srVKomsSz4H2BAr6ad17TLsGtl\nZS3WSfexj8lnLSQAHj43b6qiIjyeeL9bfz/BIDMzfO97MiNsP9HoxqdmtcaqqsctlvFYJ11RkRkO\nwCn4EPwBzOblXTty5PyRIzd1PX10NHj7Nu96l3zuEgDi4dDZqXJzWVtjcpKBgXi/2+go58/LLLDt\njYzEP8SUFHX6dGT//mW7fVnTblssX66pKYLaRCfd2yFiMnVZreet1quQt7TkGhzU29v55CdlGEgA\niAfUer/b+Dh9fUxN4fVy+za3b8tl/0AJhzc+0OpqdeyYr7Z21GodNZt/UlW1Iz9fg0PQBE/Cn8BU\nfv7V/Pzzx4/fikTSnM5Qezvve58MCQkA8QDZ3O/W3c3iIm43zzwj1/kDrr9/o6r67Nnwvn2xTrqb\nVuvTVVXFUJ/opPt1CCYnd1RVna+qugo7FhY8AwN6Y6OMEAkAsZ3dvKlycqTf7WG3XlWtlKqv148e\n9dbUjFgsTrP5hw7Hjp07rXAYmuB34DMwUVh4pbDwPFSEQvMjI+HWVj74QRkwEgBiW7l4UZWXxx/j\nNTIi/W7iZbeTZmSoc+dCe/Ys2O0LmnbDYvk3m610U1X1+8GXmnqrpqa5puYa5MzOevv7jUcekcEj\nASDuezduqPLyeL/b4CA9PYRCzM3xne/IBSwA/P6NZcH+/frhw57q6kGLZUjTnnc48nJybImq6v8L\nMmC0pORySckFKPX7F53OSEuLdNJJAIj70u3bKi9P+t3Ea14W7NihzpwJNTTM2WxzmtZitX5e08pg\nDzTBOfhtcGdktNXVNdfVtUD29LSvr884d07GlQSAuD/E+t1WVpic3Oh3GxjgxRflKhU/x9raxrLg\n8OHooUPu6up+TRvQtO/U1OzKyLAnOun+HFJhuKzsUlnZRSj2epdjVdXSSScBIO6Z/v54v9vYGL29\n0u8m3oBlQWGhOn06WF8/Y7PNmM0v2myf2727PFFV/Sg8AStZWa179jTv2XMdsiYn/T09xpvfLKNO\nAkBsld5elZyMYbCwwOgoXV2srOBy8aUvyXUofiELCxvLguPHowcPrjkcaxZLr6Z9s6YmPzW1KlE+\n8deQDAMVFRcrKi5Bodu9Euuke/xxGYQSAOKuiTX8xLZ5nc54v9vKCl/7mlx44q4sC8rLVWNjoL5+\nymqdMpuv2O3/X1lZRaKT7t3wSVjKyWnZv795//5WyBwb83d18au/KgNSAkC8oa5d2+h3Gxqis5Nw\nmIUFvvlNudjE3TI1FR9dJpNqaors37/qcKxqWremPVdbW5CUVJ1YFvwdKOg1my+YzZchf3V1bXg4\nevMmTz4p41MCQPxibt5UhYXS7ybuGV3fGGmapk6e9NfWTlitE5p2wW7PKS6uTHTS/Sb8Hszv3Hnt\n0KHzhw61QbrTGezo4B3vkLEqASBeu66ujX63/n6cTgIBnE4uXJArStwDo6PxgZecrE6fjuzbF6uq\n7rRYvlpbWwg1cAIa4VchCt0WywWL5QrkLS+7YlXVH/+4DF0JAPEq9Paq1FSWlpiYoLeX6Wm8Xtra\n6O6WS0jcY5HIxiCsqlLHj/tqa8es1jGzubmqKregwJzopPsI/BFM79p17ejR5qNH26PRNKczdOsW\n73mPDGMJAPFTxPrdFhcZHaWnR/rdxP1rcHCjk+7MmfDevUtVVUtm8y2L5dnq6iKoS5RPvBNCSUmd\ndvt5u/0q7FxcdA8M6G1t/O7vysCWABAAtLWp3FyiUebn4/1ubjerq3zlK3KRiPvaeicdUFenjh71\n1tY6LZZRs/lHDsfOvDwt0Un3CfhTmCwouFpQcP7kydvhcJrTGWpr4wMfkEEuAfAQu3RJlZURCDA3\nF3+gYzDI8rL0u4ltpqcnPmLT0tS5c+G9e2OddG0Wy1N2e8mmqur3gT8l5bbD0exwXIPcuTnPwIBx\n6pQMeAmAh8yNG6qsDJ+P6WmGhqTfTTwIgsGNU2Z79+qHD3tqaoYslmFN+77DsTM315ropPt9+AsY\nKy6+XFx8AcoCgUWnM3z9Oo89JuNfAuBBF+t3c7ni/W5DQwSDTEzw4x/L6BcPgs2nzHJy1JkzoT17\n5m22eU27YbX+q8VSCnugEU7DB8GTnn6ztra5tvYlyJmZ8fb1GWfPyrUgAfBgrpfj/W4TE/T1MTGB\nz8fAANeuyYgXDyC3e2NZcPBg9PBhd3W1W9MGNe271dV5WVn2xLLgzyAdRkpLL5WWXoQSn28p1kkn\nVdUSAA+I/n6VnMziIuPj9PQwNyf9buJhXBbk56vTp4MNDbM226zZfM1m+5fKylgnXSO8GT4CrszM\n1oaG5oaGFsiamvL39BhvepNcKRIA21N3t0pNxTCYn2d0lO5u6XcTD6+lpY1lwdGj0UOHXA6Hy2Lp\n07RvVlfnp6dXwTFohP8bUmCwvPxiefklKPJ4lmOddFJVLQGwbVy9qoqLCQaZn2dkhM5OfD7pdxPi\nZcuCkhLV1BSsr5+22abN5is22z9VVFTAPmiCd8DHYTk7+/q+fc379t2AzPHxQHe38da3ykUkAXAf\nu3ZNFRdLv5sQP8fs7MayoLExeuDAmsOxpmk9mvaN2tqC5GRHopPuv4EJ+isrL1ZWXoKCtbXVWCfd\nE088vNeUBMD9qL19o99tYICBAYJBpqf5/vdl9hfi5y8LKivVyZOBurpJq3VS0y7ZbDmlpbvhADTB\n++B3YGHHjpaDB5sPHmyFjNHRQGcnb3/7Q3d9SQDcd7q6VE7Onf1uIyNcvCizvxCvyvh4/GJJSlKn\nTkX274910nXFOumUqkksC/4HGNCjaRfC4f/V16eGhx+uJxZIANxf1vvdxsfp64v3u33xizL1C/F6\nRKMb147Npo4f99fVjVut42Zzs92eW1RkhoOXL/9LaSmhEPPzzM7y2GPq3/7tYbniJADuI7F+t4UF\nxsbo7mZpSfrdhHjDDA/HL6WUFPXII5F9+5arqpb3728vLcXvZ2aGoSG6ukhJeYjeEwmA+0Jrq9q5\nU/rdhNgK4XD8smpvVzk5eDxMTcUfphQKEYlIAIgtdPmyKi29s99taYlvfENmfyHulq4ulZ3N6mp8\ns210FL+fkREsFgkAsYW/+5eW4vUyM8PgIL29hELMzvLd78rsL8Td0tenUlNZXmZ8PP4wJZ+Pw4dJ\nSyMQkAAQW6KjQ+3ceWe/2/g4P/mJzP5C3C0DAwpYWIg/TGlpCZeLd71LzczIbaBiq/T0qIyMO/vd\n+vpoaZHZX4i74vp1tWsXkQgLC4yM0NWFx8PqKr/2aw/pGyIBcG/096ukJBYXGRujt5e5OTwenn5a\npn4h7pYrV1RJCYEAs7PxzbZQKL7Z9swzSgJAbIWuLpWWhmHEV6BdXayuSr+bEHdXa6sqKXnZZlsw\nyNzcw77ZJgFwD34HWe936+jA75d+NyHurs2bbf39DA8TCDA+zgsvPOzXnQTA1nnpJVVS8rIjJ6EQ\nCwt861sy+wtxt8Q225aX45ttk5P4fPT0cOOGXHcSAFulvV0VFNx55GRqih/8QEahEHfL5s22nh7m\n52WzTQJgy73ikROnU/rdhLhbOjpURga6zuJi/HT92hpra3z5y3LRSQBsoTuOnMzMSL+bEHfXpUuq\nrCy+zRt7mJLfz/IyX/+6XHcSAFtoYEAp9bIjJ9LvJsRd1dKiysrw+eIPU5LNNgmAe+DGDZWX9wpH\nTqTfTYi759YtlZ+P233nw5Rks00CYOv8jCMn8uYIcZd0d6usrPhmW18fY2P4/QwPc/myXHcSAFvl\nPx45kX43Ie62vj6VkhJ/mNL6ZttTT8lFJwGwhV7xyMnEhPS7CXG3DA0pXYdEv1t3N8vLuFw8+6xc\ndBIAW2i93y32QMfYkZPeXq5fl4EoxF3R0qLy84lE4g9T6uyMb7Z99aty0UkAbCE5ciLEFrt6VRUX\nb2y23b5NOMziIv/+73LdSQBslTuOnHR3S7+bEHddW5sqLsbrZXqawUH6+ggGmZ3l+eflupMA2Cqx\nBzrKkRMhtlJnp9qxA5eLyUkGBqTfTQLgXmhpUaWlcuREiC3V26vS0+/sd+vqoq1NrjsJgK0iR06E\n2Hr9/cpkYmEhvtm2sCCbbRIAW66ra+PIyXq/28gIly7JQBTirrh9W2VmousbD1OSfjcJgHvgjn63\n6Wl8Pul3E+IuunhRlZdvbLZ1dBAIyGabBMDWGhlRkQjIkRMhtlBLiyovx+eLP0ypu5tQiPl5vv1t\nue4kALbK9etq166NIyddXbjdcuREiLvrFTfbpqb44Q/lupMA2CrS7ybE1lvvd5uYoL8/3u82NMSV\nK3LdSQBslba2eL/b9DRDQ/T2ypETIe466XeTALj3OjrkyIkQW2pgQMX+Yn5+Y7PN7ZbNNgmArRXr\nd7vjyEl3N62tMhCFuCteekkVFMS3eTc/TEk22yQAtlSs321hgfFx6XcTYivE+t38fubmGBqio0P6\n3SQAtpwcORFi60m/mwTAvXfpkiorkyMnQmypWL/b2lr8YUojIwQCjI3R3CzXnQTAVmlpUWVld/a7\nyZETIe6qzf1uvb1MTeHz0dFBe7tcdxIAW0WOnAix9QYGpN9NAuBeWz9yMjlJX1/8yMnwMJcvy0AU\n4q5ob1fZ2USjLCzET9e7XLLZJgGw5eTIiRBb7MIFVVER32yLna4PBlla4rnn5LqTANgqg4PKMADm\n5xkbk343IbbC9euqokL63SQA7qnYkZNwON7v1tkpR06EuOtu31a7duF2MzXFwACDgwSDTE7yox/J\ndScBsFViR05i/W5y5ESIrdHdrTIz4/1ufX2Mj+P3MzjI1aty3UkAbBU5ciLE1tu82dbTw+ysbLZJ\nAGw5OXIixNZP/UlJIP1uEgD31iseOens5OZNGYhC3BXXrqnCwo1+t85OvF7ZbJMAuAf219buBefc\nnCcQMH78YzlyIsTd9eKLqqgIv3/jYUqy2SYBcA8MDaXa7VehFEaLiy8XF184fbozEFjs7VUtLXz4\nwzIchXiD3bypiorweOKbbf39BIPMzPC978nlJgGwtbq6wnb7B2EPNMIZ+BB40tNv1tY219a+BNkz\nM76+PuPsWRmaQrwBOjtVbi5ra/GHKcU220ZHOX9eLjEJgC03P883vjGo1KDZ/N3q6rysLDschSb4\nM0iH4dLSy6WlF6DE51saGYlcv85HPyojVYjXY32zbXycvj6mpvB6uX2b27flmpIAuHeWlowvfjHY\n0DBrs82azddsts9VVpbDXmiCX4GPwFpmZmtDQ3NDw3XImpz09/Yab3qTjFohXq3N/W7d3Swu4nbz\nzDNyEUkA3AesVmZn+Zu/4dix6MGDrupql6b1adq3amp2paVVwTFogr+CFBisqLhYUXERitzu5ZGR\naGsrjz8u41iIV3bzpsrJkX43CYD7nmFsjMjSUtXUFKivn7ZapzXtqs322fLyCtgHTfAO+Dgs5eTc\n2LfvhX37WiFzfNzf3c1b3ypjWogNFy+q8vL4mcrYw5Sk300CYBuYmYkPUKVUY2PkwIFVh2NV07o1\n7bna2oLk5Go4Do3wt6Cgv7LyQmXlJShYW1sdHo7evMkTT8gQFw+1GzdUeXm8321wkJ4eQiHm5vjO\nd+TSkADYhsuCykp18mSgvn7Sap00my/a7TklJbvhADTBb8CnYWHHjpcOHmw+eLANMkZHAx0d/Nqv\nyXAXD53bt1VenvS7SQA8QMbH42M3KUmdOhXZv3+lqmpF07oslq/W1RVCDZyAk/AWMKBH085r2hXY\ntbKyNjSkt7fzsY/J6BcPvli/28pK/GFKsX63gQFefFHGvwTA9heNboxjm02dOOGvrR23WsfN5vNV\nVTmFhWY4CE3wGPwhzOTlXTty5PyRIzd1Pd3pDN6+zbvfLVeCeDD198f73cbG6O2VfjcJgAfa8HB8\nZKekqEceCe/bt1xVtaxpty2WL1VXF0FdYlnwDgibTJ0223mb7SrsXFx0Dw3pN2/yqU/JtSEeBL29\nKjkZw2BhgdFRurpYWcHl4ktfkhEuAfCgC4c3RnlNjTp2zFdbO2qxjGraj6uqduzapcEhOAUfgz+F\nyYKCqwUF548fvx0OpzmdoZs3ef/75ToR21Ws4Se2zRt7mJLXy8oKX/uajGoJgIdMX1980KelqbNn\nw3v3Ltrti5p202J5uqqqBOrhJJyA90IgJeW2w3He4XgRdszPuwcGjKYmuWbEdnLt2ka/29AQnZ2E\nwyws8M1vykiWAHiIBYMbt5M2NOhHjnhraoYtlhFN+4HDsXPHDgscgSb4XfhPMF5UdKWo6DyUB4ML\nTmf4xg0+9CG5hMR97eZNVVgo/W4SAOKn23w7aVaWOns2tGfPvN0+bza3Wq3/arWWQgM0QiP8JnjT\n0tprappraq5Bzuyst7/feOQRuZzEfaera6Pfrb8fp5NAAKeTCxdkuEoAiFfi9W4sCw4ciB4+7Kmu\nHrRYhszm56ur87KzbYlOuj+GDHCWlFwuKbkApX7/YqyT7iMfkatL3Hu9vSo1laWl+MOUpqfxemlr\no7tbxqcEgHgty4K8PPXII6GGhjmbbc5sbrHZPm82l8EeaIJfgsfAlZHRVl/fXF/fAtlTU76+PuOX\nfkmuNHFvxPrdFhcZHaWnR/rdJADEL2BlZWNZcORI9NAhl8Phslj6Ne3b1dW7MjKqEsuCv4BUGCov\nv1RefhGKPZ7lkZFIa6tUVYst0tamcnOJRpmfj/e7ud2srvKVr8gIlAAQb9yyoKhInToVbGiYsVpn\nNO2q1frPu3eXJzrp3gZPwkp29o29e5v37r0OmRMTgZ4e41d+Ra5DcbdcuqTKyggEmJuLP9AxGGR5\nWfrdJADEG21+fmNZcOJE9ODBNYdjTdN6Ne3fa2vzU1IciU66/wJJMLB794Xduy9Bocu1Euukk6pq\n8Qa6cUOVlZmFRaEAACAASURBVOHzMT3N0JD0u0kAiC1fFlRUqMbGQF3dlM02ZTZfttn+saxsN+yH\nJngPfAoWc3NbDhxoPnCgFTLGxgKdnbztbXKJil9IrN/N5Yr3uw0NEQwyMcGPfyxDSwJAbJXJyfj1\nZjKppqbIgQOrVVWrmtZlsXy9trbAZKpJLAv+OwB9ZvN5s/ky5K+urg0NRdvbefJJuWLFa9PTE+93\nm5igr4+JCXw+Bga4dk3GkgSAuBd0fePas1jUiRP+uroJq3XCbD5vt+cWF1cmqqp/C34f5nbuvHb4\n8PnDh9sMI93pDHZ08M53ytUrfr7+fpWczOIi4+P09DA3J/1uEgDifuJ0xq/G5GR1+nRk//5YJ12H\npn2ltrYQahOddG+DqFJdVut5q/Uq5C0vuwYH9fZ2PvEJuZ7Fnbq7VWoqhsH8PKOjdHdLv5sEgLiP\nRSIbV6bDoY4f99XWjlksY2bzC1VVuQUFGhyEU/A4/DFM79r14rFjzceO3YpG05zOUHs7732vXNsC\n4OpVVVwc3+YdGaGzE59P+t0kAMQ2MTAQv1BTU9WZM+F9+5bs9iVNa7dYnnU4iqEu0Un3LgglJXXY\n7eft9quwY2HBMzionzwp1/nD69o1VVws/W4SAGL7C4U2bietq9OPHvXW1IxYLE5N+2FV1c68PAsc\nhib4FPwZTBQWXi0sPA8VodC80xlua+M3f1Mu+4dIe/tGv9vAAAMDBINMT/P978swkAAQ29bm20nT\n09W5c+G9exfs9gWzudVq/aLNVgINiWXBb4A/NfVWdXVzdfU1yJ2b8/T3G6dPyxTwgOvqUjk5d/a7\njYxw8aJ89BIA4kERCGwsC/bt0w8f9tTUDFksw2bz96qr83JyrImq6j+Ev4TR4uLLxcUXoCwQWBwZ\nCV+/zoc/LDPCg2a93218nL6+eL/bF78oH7QEgHgIlgW5uerMmVBDw5zdPmc2X7dav2CxlCWqqs/A\nh8Cdnn6zrq65rq4FsmdmfH19xtmzMkE8CGL9bgsLjI3R3c3SkvS7SQCIh4nLtbEsOHQoeuiQu7q6\n32IZ0LTvVlfnZWbaE510n4F0GC4tvVRaehFKvN4lpzNy/bp00m1Lra1q507pd5MAEOI/LAsKCtTp\n08H6+lmbbVbTrlmtn6usLIe90ARvgcdhNSurtaGhuaHhOmRNTvp7e403vUnmju3h8mVVWnpnv9vS\nEt/4hnyCEgDiobe4uLEsOHYsevCgq7rapWl9mvatmppdaWkOOAaN8FeQAgMVFRcrKi5Bkdu9PDIS\nbW2VTrr7+nf/0lK8XmZmGBykt5dQiNlZvvtd+cgkAIT4KcuC0lLV1BSor5+2Wqc17YrN9k/l5RWJ\nqup3widgKSfn+r59zfv2tULm+Li/q4tHH5Vp5T7S0aF27ryz3218nJ/8RD4mCQAhfrqZmY1lQVNT\nZP/+VYdjVdO6LZbnamoKkpOrE510fwsK+iorL1ZWXoKCtbXVWFW1uLd6elRGxp39bn19tLTI7C8B\nIMRrXxaYzerkyUBd3aTVOmk2X7Tbc0pKKmE/nILfgE/D/I4dLQcPNh882AbTTmegs5PeXnkXt9p6\nv9vYGL29zM3h8fD00zL1SwAI8XqNjcVnkKQkdfp0ZN++FYdjxWzutFi+WlcX66SLLQveAgZ0WywX\nLJbLv/ZrgysrazduqPZ2PvYxmYPurq4ulZa20e/W1cXqqvS7CQkA8caJRjdmE7tdHT/ur60dt1rH\nzebmqqrcwsJKOARN8Bj8Iczk5V07cqT5yJF2XU93OoO3bvHrvy7z0RvvyhVVUkIwyPw8IyN0dOD3\nS7+bkAAQd83QUHxySUlRZ86E9+5dqqpa0rTbFsuz1dXFUJson3gHhE2mTpvtvM12FXYuLrpjVdWf\n+pRMT2+Al15SJSX4/czMMDREVxehEAsLfOtb8vYKCQBxl4XDGxNNba06etRXW+u0WJya9uOqqh27\ndmmJTrqPw5/AVEHB1YKC8ydO3AqH05zO0M2bvP/9MlW9Tu3tqqAAj4epKQYH6e8nFJJ+NyEBIO6F\n3l7js59VBQXqAx8wzp4N7927aLcvatpNi+WpqqoSqE8sC94LgZSU2w5Hs8PxIuTOz3sGBoymJpm2\nXoOuLpWdzepqvN9tdBS/H6dT+t2EBIC4p/7hH+jtZWWFj3+choZYVfWwxTJiNv/A4di5Y4c1sSz4\nPfhzGC8qulxUdAHKg8EFpzN8/Tq//dsyi/0sfX0qNZXlZcbH6e1lZkb63YQEgLjPbL6dNCtLnT0b\n2rNn3m6fN5tvWK3/ZrWWwB44mXjKsTct7WZNTXNNzUuQMzvr7eszzpyRSe1OAwNKKRYWGB2lp0f6\n3YQEgLjveb0bp8wOHIgePuyurnZbLEOa9rzDkZedbUtUVf8JZICzpORSSclFKPX7F0dGItev85GP\nPOxz3I0bKi+PSISFBZxOOjvxeKTfTUgAiO25LMjLU488EmxomLXZZs3ml2y2z5vNZbAXGuFN8GFw\nZWS01dc319e3QPbUlK+31/jlX34Y57vY7Z6BALOz8X63UEj63YQEgNi2VlY2lgVHjkQPHYp10vVr\n2reqq3dlZFQlOun+AlJhqLz8Unn5RSj2eJZHRiKtrQ9LVXVrqyopkX43IQEgHvRlQXGxOnUqWF8/\nY7XOaNpVm+2zFRUViarqt8GTsJKdfX3v3ua9e29A5sREoLvbeMtbHtipcHO/W38/w8MEAkxMSL+b\nkAAQD5y5uY1lwcmT0QMH1hyONU3r0bR/r63NT0lxJMon/iskQf/u3Rd3774EhS7XSqyT7kGqql7v\nd4s90HFyEp+P3l6uX5fZX0gAiIdjWVBRoRobA3V1UzbblNl82W7/x9LS3XAAmuA98ClYzM1tOXCg\n+cCBVsgYHQ10dfG2t23vWbK/XyUlxfvdenqYn5d+NyEBIB4+k5MbnXTrVdVmc5fF8rXa2gKTqSax\nLPh7MKBX0y5o2mXIX11dHRrS29t58sntNG92dKiMDHSdxUWcTrq7pd9NSACIh97mTjqLRZ044a+r\nm7BaJ8zm83Z7bnFxJRyEJvgg/D7M7dx57fDh5sOHbxpGutMZ7Ojgne+83+fQ2AMdg0Hm5hgZobMT\nv5/lZb7+dZn9hQSAEAA4nfEJMTlZPfJIZN++5aqqZU3rsFi+XFNTBDVwEk7C2yCqVJfVet5qvQJ5\nS0uu2LLgE5+476bUlhZVWorPx+ys9LsJCQAhfp5IZGNydDjU8eO+2tpRi2VU016w23MLCrREVfXj\n8McwnZ9/NT///LFjtyKRNKczdOsW733vfTG93rql8vNxu5meZmCAgQGCQaan+cEPZPYXEgBC/DwD\nA/G5MjVVnT0b3rt3yW5f0rR2i+UZh6MY6hKddO+GUHJyR1VVc1XVi7BjYcEzMKA3Nt6zqbarS2Vl\n3dnvNjLCpUsy+wsJACFei1Bo43bSurpYJ92IxeLUtB85HDt27rQkOul+Bz4DE4WFVwoLL0BFKDTv\ndIZbW/mt39q6mfeOfrfpaXw+6XcTEgBC/GI2306anq5+6ZdCe/Ys2O0LZnOr1fpFm60EGhLLgveD\nPzW1vbr6fHX1Ncidm/P09xunT9/FiXhkREUiQLzfrbub5WVcLp59VmZ/IQEgxBsnENhYFuzbpx8+\n7KmpGbJYhs3m71VX5+XkWBOddH8IfwmjxcWXi4svQFkgsDgyEm5peYM76a5fV7t2EYkwP4/TSVcX\nbjerq3z1qzL7CwkAIe7+siA3V505E9qzZ85mmzObr9tsX9C0MtgDjXAGPgTu9PSbdXXNdXUvQfb0\ntK+vzzh37hedo6XfTUgACHGPuVwby4JDh6KHD7sdjn6LZUDTvlNdvSsz05bopPsMpMNwWdmlsrKL\nUOL1Lo2MRG7ceD2ddG1t8X636WmGhujtJRhkdpbnn5fZX0gACHFPlwUFBer06WB9/YzNNqNp16zW\nf66sLId90AhvgcdhNSvrxp49zXv2XIesyUl/T4/x5je/qum7o0Pt2IHLxeQkAwPxfrfxcV54QWZ/\nIQEgxL22uLixLDh+PHrwoMvhcGlan6Z9s6ZmV1qaI7Es+GtIhsGKiosVFZeg0O1eGR6OtrX91E66\nWL/b8jITExv9bt3dtLbK7C8kAIS4X5cFZWWqsTFQXz9ts02bzVdstn8qL6+A/dAE74RPwFJOzvX9\n+5v3778BmePj/q4uHn104xWk301IAAixLU1Px2dqk0k1NkYOHFitqlrVtG6L5bna2vykpOpEJ93f\ngoK+ysoLlZWXIX9tbW1oKJqbi67Hb/fs6mJtjbU1vvxlmf2FBIAQ24eub8zaZrM6edJfVzdptU6a\nzRft9pySkspEVfX74XdhfseOlw4daobzzc1LIyN0dBAISL+bkAAQYpsbG9vopDt1KrJ//0pV1Yqm\ndWraV+rqYp10J+AkvBU+kJa2dPOm9LsJCQAhXqMrSkUgDRREIAgeWIYV+CPj3k+mmzvp7HZ1/Li/\nrm7MYhnTtGa7PbewsGRkZKSnh1CIiQl++EOZ/YUEgBCvQotSmVChVBqYQIewYQTAB3mwAp9Vagz+\n1rhfZtWhofifJCVFnTkT3rdv6dix5ZkZo7ubcFhmfyEBIMSrc1upCpNpZ1JSZlKSMpkwDEPXg7ru\ni0a9hpFqGCmQBMnwn5Xqgy8b99H0Gg4bwDPPKPkchQSAEK9Nv1KVycl56elkZJCejslENKpCofRg\nMC0YTI5EVDRqGEYUIhCCILxVqe8b8iu2EBIAYjsbUKo4NXVnTg67drFrF1lZKEUggNvN2ppyu3P8\n/ohhhHU9aBjZkAv5YIHTSl2SDBASAPIWiG2qW6n8lJSdubmUlmI2U1ZGTg66ztoa8/PMzABK19N1\n3R8OpxlGGmRAFuyEwld6wZ8oFU6sEoIQgCclJIQEgBD3m6tKlZlMBRkZFBRgtVJXh6aRk0MoxNwc\naWlEIgQCBAKpoVByNJpkGMmGkQKpkAG58DalvmsYQKtSEciGCgCiEAQfuOAppaZhDf7u9SZBs1Jh\nCEME/BCAAHxSckVIAAjxumVDanJyclYWxcVYLFRXY7ORnY3XS2oqXi9LS2RmkpKSlJRkUsoECkyJ\n3eB0yIQ3K/XfoVCpbKVSTSYT6IYRNoyAYfgMIwsyIRNm4A+V+n9ey6zdr9Qi7IDd63clQQA8sAZf\nUGoC/kpiQEgACPF6Bq5S6cnJZGWxcyeFhZSUUFxMRgYpKSwvk5lJWhrJySQloZQBOhgQm3EVJEEa\npIEtOXlnSgqpqZhMANEo4XAgEkmNRpMNw2QYQOwf/wOlhuE7r2LWvq7ULnCYTBkmU4pSBkQMI6jr\nfsPIMoxMSId0+F9K9cHnJAaEBIAQr94LShWbTMlJScTm7pQUTCZ0nUiEcDj+E4kQjaLrsa9foomf\n9SSIrQN27thBTg6ZmSQnx7818nrT/f6kYJBIJKrrEcMIQQD84IV3KPWtnzlldylVmZRUkJKSvP4H\ni0aJRLLDYV84nKLrSboeC5XYn+ejSn1eMkBIAAjx6sXmdHSdcBiPh+Vl0tNJTmZ1lfl5VlbweAgG\niUSCuh4yjPUv4mM/JL4LorKSoiJ27MBkwu9ndZWlJZaXUyDTMIKGkW4Ysa3jXCiAhZ/5p+pVqiQ5\nuSAzk1iupKcDBIP4fHg8mX4/waAOEV0PJ/aZK+A9Sr3raflIhQSAEK9CbPYM6jqhEGtrzM2RmYnH\nQ1ISbjfT08zOsrqKz6eHw75oNGAYwU2394QS+wEmoKYGs5lduzAMVleZniYpKfY7e1okkqrrKYaR\nahhpkA7ZkA9vUeoHr/Q7e5dS+cnJBTk5FBVRVkZhIZmZRCK4XCwtsbCAUpmGEQoGA5tyZQeUyCcq\nJACEeJUC4DcMTzQa8vlSY09OiUSYm8NkwudjeZm5OZaX8XrXgkFvNOo3DL9hrN+EE0i8jgLq67Hb\niT15fXY2vg7wePB4kgKBpHA4KbF1vH4HUfYr/ZFeVKrUZCrKyKCwEJuNqirKysjMJBBgbo6JifVv\nqFIjkRRdTzaM1MQL5sgnKiQAhHiVfJBqGK5IZMnvL11eBvD5yMxEKUKh2CkwXK41n28tHPZEo17D\n8MH6TzjxOgagadhs7NyJ349hsLIS/+omJQWTSSmFUsowVGLRkALpm24hXZcLmcnJSbm5lJVRVUVD\nA5WVpKeztkZGBqEQLhcuFx5PUlJSUiRiUspkGMmQDKnyiQoJACFeJRckQbqupwaDuN350Whq7O5P\nkym2kRsMBNx+vysUckcibsPwGIYH1n/0xE8UyM0lO5vMTHSdlJTYXUPrP1Gloom/ef0OohTIePmf\n50dKVSqVmZpKTg6FhZSXYzZTWUlKChkZeDzk5pKRQWoqyclKKUNtNP/EbkkSQgJAiFdlKbaFq+um\nSCTq9/sjkaxAIC0pyaRUVNdDkUggEvGFw95o1KfrHl33gAvc4IbQptk/AoRCeL0AbnfsN3QCAcJh\notGIrocNY33feP0motjXQZtlAiZTakoK6elkZZGdTVZWvJgoKSl+g2li0o8qpW8KIbkBSEgACPEa\n/IVh/E+ldCAaDRuGX9fTw+EUk8kEBkR0PaTrQV3367rfMLzgATeswVri/ssIhMEP8e/909Pxepma\nYmGB1VW8XkIhfzQaNIyQYYQgVhERu48oCZLgzUr9aNO3QNHYFK8Usa1pj4fVVYCVFdbWNudKWNc3\n35IUyxUhJACEeLUWIAgGhHTdZxjpSiUrZYrNxYYRv3nfMPzgg9gKYBUisYRI3Ed0ABgZweUiNRWf\nj8VFpqdZWsLjicR2j3V9fd84dgeRSvxsvnJiU3lQ19NiOxDz82Rn4/NhGCwvMzXF4iIuF4GAHon4\ndT1oGKFEooQ27UkIIQEgxM83DBUQgQBkGUa6YaSASSkMQ09M8bGJ25sIgNg8qydmfy+Uw5/+7//9\nPz/0IZKTCQbj92suLxsez2ow6IlGfYbhMww/rP+8oiAEDMMbieTGUmRigmiU2VkMA5eLuTnm5mK3\npbpDIZ+u+w0jYBibc0UICQAhXq1vGMavK+UBP+RABqRAkmEo0Df9jh9bAbgTX7PEvv8Jgw/+EyyC\nAX/61FN98O3jx2M3gIY9nlW/fy0cdkWjHsPwwvpPOFELYSROk8X4IMUwXJFIrseTtbiIUrjdZGZi\nGPHDZcvLrK15/H5XOBzPlU2hEpGPU0gACPGaPGcYb1bKA3mQBamQDOrlX/LE+hvW77nRE88KXoLs\nxNGw2Crhl1566fulpb5QyBMMesJhTyTi1XX3ptuH3C+/fWjzBoAHTIaxFomk+f1qeTkzdvgrLQ3D\nIBTC58PrXfP51oLBWKhszhWP7AMLCQAhXocfGcZBpXZBbmIRYNr0a34QwpCUCIDY/x6CVfiWybSq\n65mQBTlQAIUw5XYHo9FAJOLXdZ+uew0jNu+7YA3CiQ3b2JPFNlsDID0aNQWDUcPYEYlkeTxpyclA\nJBoNhELeUMgbDnsjEU8sABKJsn5XkhASAEK8ZjcNo0SpXZADaYkBHfslPRli53hjARCb/ZehKytr\nORhMMYwUw0hNPCUmDz7t8XwmKSlkGAHD8BuGb9PtQ+unBzZuH9pkEYAkwzCi0XAw6I1GMwKBZJNJ\nxfqlo9FgNOrXdb+u+wzDaxjrobK2fhxBCAkAIV6HWcNQSqVADsTKltMgZVMAkHjMy63GRqanWVlJ\nDoeTdD1p01nc2Grgr6LRTya+F1q/fWhtU6jEmkGff/kx4P9sGP81dne/rocMw6vraSZTslIKDMOI\nGEbYMIKxXAFvYlWxmjhYIHsAQgJAiNfPMIwWpY6DB7IhPREAsdk/BKP/5//Q08PAAKmpJCWp2OEs\nINHxkAxpsAOWNm0MxAKAxN5vbP/A80p/gLnEdm7AMDINI80wkjd9H3VHp3TssTDBTS8rhASAEL/Q\nUHampmr5+TgcHD7MkSPU1pKfTyjE5CS9vfFDuUoR+21dqTueEpMCaTAPocTtQ56X7x+EwQs/fKUq\n0H8wjMeVCoEPsiA9EQAkpvhQ4kmTsQAIvvxlhZAAEOIXWATEzgEkJZGUBKw/3YVAALc7/hfh8MZT\nYhI1D+sdD8mQAi9CeeIOfVPitiI9cebghz/94S2jkAfexG2pqYl//D8GwPqX/usvK4QEgBCv09eU\n2h37LkXX40e6FhbIzGRtjUCAmRnm5+MdD8FgIBoN6HrsCO76TyRR+5wGU4mnBZgS0RL78uf8z3x0\n1wuGcVipVdgF2ZCWuAHJ2HQwzZ/4xmn9ZUPgls9PSAAI8brF9ngDuu4PhTJiZQyxLv6MDIJBlpbi\nPT8uF8GgNxLx6/rms7ghiGx6SownsX+gNs3+11/FgxtbDWO3UnmwEzITi4D120/ZdFdSbFURAg+0\nGMYzzyj5EIUEgBCvR+wre6+urwaDGWtrzMyg66yskJq68UyupSXc7rVAwB2J3HEW947bOt0v/+W9\n87U8s3fCMJRSOZAHGYkLLHXTXUmxmT7WSLEIQ/JAYCEBIMQvwhU7B2AYK6FQqtudbzLFf/FPSSEa\nXX/I16rXuxoKuaJRj657DcOb+FLem9gNjt3sPwsK5l7v1GwYBqCUSk/ckpT28ruSouCDEZn6hQSA\nEL+43zeMLyhl0vXUSET5/RHDyA0EMtLSMJkwDD0c9gWDnmDQEwp5IhGPrt/xiBhjU81DCObfiKnZ\n2PQiaUqlgQlWZdIXEgBCvOFi56qSdd0IhYK67gqF0pOTk5UyIBKNBqPRQDTqj0Z9uu7Vde+mjgfv\ny0/5/uAuzNFBmfeFBIAQd89C7E4ew4joeiAc9kSjqeFw7GmLumGEDSMU2/h9ecfD6qbZPyLNzEIC\nQIjt6O8M48+UikDYMPyGkWEYqdFoklLE+hggbBjrHQ+xFcD6I2LWy+Nc8j4KCQAhtqNp8EIoVg5q\nGKmJJwSsPwZycwC4ErP/esmPF16Q72qEBIAQ29FThvHrSvkTTwiI3XuzftN9OFHlFvsKKJr4v2LZ\n4IcpeQeFBIAQ21c7aLCWeEJA6qZCnvUA8G66zX/9nNcqtMuv/0ICQIjta8Qw8pQqh/xEH0Pyywt5\n9MTsrzad0V2DGzL7CwkAIba7FcMAdiqVB9mb+hiSYs8NTvQ9rJcxvChTv5AAEOJBsrrpKTEZkJ54\naHDypgeE+aFfZn8hASDEg2f9LK5SKivxlBgTRGFW5n0hJADEQ5UEQojNTPIWCCGEBIAQQggJACHu\nvr4+9fTT8iAUIe4Z2QMQW+TiRXXuHIGAMTfHE0/0wS1orqm5Bjmzs97+fuORR+SbeiFkBSAeODdu\nqPJyfD6mpujtBf4RkuCP4Hn4XknJ3zzyyJug1O9P6elRX/iCLAuEkBWAeCDcvq3y8nC7mZpiYIDB\nQT760f/3r/7q85pWBnugEc7Bb4M7I6Otrq65rq4FsqenfX19xrlzsiwQQgJAbE/d3Sozk5UVJifp\n62N8HL+f7m7+/u/d1dX9mjagad+prt6VmWmHo9AEfw6pMFxWdqms7CIUe73LIyORGzf46EclDISQ\nABDbRH+/SklhaYmxMXp7mZ3F6+Wppzbm8cJCdepUsKFhxmabMZtftNk+t3t3OeyFJngUnoCVrKzW\nPXua9+y5DlmTk/6eHuPNb5YkEEICQNyventVcjKGwcICTifd3ays4HLxpS+9bO5eWNg4rHv8ePTg\nwTWHY81i6dW0b9bU5KemVsExaIK/hmQYrKi4UFFxCQrd7pXh4WhbG48/LmEghASAuG+8+KIqKiIU\nYm4Op5POTrxeVlb42td+6mS9+bBueblqbAzU109ZrVNm8xW7/Z/KyipgPzTBu+GTsJST07J/f/P+\n/a2QOTbm7+7m0UclCYSQABD31LVrqqgIv5/ZWYaG6OwkHGZhgW9+89VO0FNT8b/TZFKNjZEDB1Yd\njlVN69a052prC5KSquE4NMLfgYI+s/m82XwZ8ldX14aHozdv8uSTEgZCSACIrXXzpiosxONheprB\nQfr7CQaZmeF733s9M7Kub/xTmqZOnPDX1U1YrROadsFuzykuroQD0AS/Cb8H8zt3vnToUPOhQ22Q\n4XQGOjp4xzskCYSQABB3X1eXys1lbY3JSfr7cToJBHA6uXDhDZiFR0fjL5KcrE6diuzfv1JVtaJp\nnRbLV2trC6EGTkAjPApR6LZYLlgsVyBvedk1NKS3t/Pxj0sYCCEBIO6C3l6VmsrSEhMT9PYyPY3X\nS2srPT1v8LQbiWy8YFWVOn7cV1s7ZrWOmc3NVVW5BQVmOAin4MPwRzCza9eLR482Hz3aHo2mO53B\nW7d4z3skCYSQABBvkIEBZTKxsMDYGD09LC7idvPMM3d9nh0cjP8rUlPVI4+E9+1bqqpaMptvWSxf\nqq4ugjo4CSfgnRBKSuq028/b7Vdh5+Kie3BQb2vj05+WMBASAEK8Lm1tKjeXaJT5eZxOurpwu1ld\n5Stf2dKJNRTa+NfV1amjR721tU6LZdRs/pHDsSMvzwKHoQk+AX8KkwUFVwsKzp84cTscTnM6Q21t\nfOADkgRCAkCIV+3SJVVWRiDA3BzDw3R0EAyyvMxzz93LyXT9S6e0NHXuXHjv3kW7fdFsbrNan7Lb\ni6EhsSx4H/hTUm47HM0OxzXInZvzDAwYp05JEggJACF+phs3VFkZPh/T0wwN0dMTv/H/O9+5XybQ\nYHDjlNmePfqRI56aGo/FMqJp33c4dubmWuEINMHvw1/AWHHx5eLiC1AWCCw6neHr13nsMQkDIQEg\nxMvF+t1crni/29AQwSATE/z4x/fjjLn5lFl2tjp7NrRnz7zNNq9pN6zWf7VYSqEBGuE0fBA86ek3\na2uba2tfgpyZGW9fn3H2rCSBkAAQAnp64v1uExP09TExgc/HwADXrm2DWdLj2VgWHDwYPXzYXV3t\n1rRBTXu+ujovK8uW6KT7M0iHkdLSS6WlF6HE51uKddJ95CMSBkICQDyU+vtVcjKLi4yP09Pz/7d3\nn/Ft09UwoQAAIABJREFUXoe5wJ/DvfcmRbwvNjhEihI1SGo6iRPHznD2dew08YjTNJ1J25u29/7a\n/tpf74d+vk1XmsRy4tiOYyfOcBIuiZK4BwBikAS4wL0XAC7cDwAEVnV641gESfH5f9T4ILznnIdH\nB+d5MT19b7/bUbF3W5CRIS5f9paVTalUUwrFHaXy3xSKgmAn3fuAzwMrCQkdZWX1ZWWtQKLL5bZY\nfO95D5OAGAB0PJjNIiYGPh9mZjA8/Gv73Y6ihYXQtuDs2Z3Tp1e02hVJssny6zpdZlycJrgt+Csg\nGhgoLGwuLGwCctbWFvyddKyqJgYAPbBaWkRuLrxezMzA4YDRiI2N/0+/21G0d1uQlyfq6rylpRMq\n1YRCcVOl+ueioiKgAqgDPgQ8BywkJbVVVNRXVLQDCaOjnv5+3/vfzyQgBgA9QG7fFrm576rf7Sia\nmgptC2pqAlXVktQvST8wGLKiorTBTrq/BSIBa3FxU3FxM5C1vLzk76R75hmGATEA6Cjr7g71u9nt\nsNvh9WJiAj/96XFZ3fZuC06cELW1npKScaVyXJKaVark/PwTwarqTwBfBmZTU1urquqrqjqA+OFh\nj9GIxx5jEhADgI4ak0kkJ9/b7+ZwoKnpmK5oY2OBf3hk5N5OOpMsv2wwZAuhD24L/g/gA/olqVGS\nbgAZi4vL/k66555jGBADgA49qzXQ7zY6Cqs10O/27W9z/QKAnZ3Q56BSifPn3SUlo7I8Kkn1anVK\nTo6/k64OeBL4Q2AqPf12dXV9dXX37m6c0+nt7cXjj/OTJAYAHUp2uxAi0O9mNmN+Pkz9bkfR0FDg\nY4mOFpcvb1dULKjVC5LUK8vf1etzAANQA9QAjwHbEREmlapBpWoB0ubnVwcGdru7kZLCT5EYAHQI\ndHSItLSD73c7ira2Qh+RTifOn9/Q64eVymGF4pcaTWpmpgScBuqAZ4GvAa7MzJbMzIbz53uuXx/j\np0cMADpgN26I/Px7+93m5/GDH3D1f2dstlAn3dWrdzvpupTKFzSaXKA02En3McALaPf+3ZYWUVvL\nD5wYABTen/3z87G+jslJDAzAYsHmJqam8OMfczH67e3tpCst3T17dl2vd8iyU5J+rtGkpqUpgTP3\n/JXa2g8ARV7vjNO51dGBz36Wnz8xAGg/9fWJtLR7+91GR/HLX3L1uT/2fp00Pl5cu7ZZXj6rVs9K\nUvt/+bPfADZiY3v0+nq9/jaQPDW1brP5Ll/msyAGAN1v/f0iPv7efjerFa2tXHH2hdsd2hZUVu5+\n9av3/P6ng1XVfwLEA8N5eTfy8hqBfLd7zuncbm1lJx0xAOh+sNlEZCTm5jAyAosF09NYW8MLL3B9\nCd+24Pp1sfcXv/nNWwpFq1L575Lk76SrBa4BTwGr8fGdJSX1JSWtQNLExIbF4nvoIT4pYgDQO2cy\nidhY+HyYncXwMEwmLC09IP1uR9oXvoAzZ3ZOn17V6WySZJekN/T6jPh4dbCT7utADDBUUNBcUNAE\n5K6vL/irqtlJRwwA+o3cvCny8kL9bn19cLsfwH63o7st8MvOFpcueUtLJ1WqSYXilkr1rydOFAIV\nQC3wCPAMsJiY2F5eXl9e3g4kjo+7zWbfww/zIRIDgH6NO3dEXh7cbkxOYnAQJhM2NzE7i9df58Jx\nuMzOhk4LLlzYOXVqWatdlmWLJL2m12fGxGiBc0At8NdAJGAvKmoqKmoGsldXF/1V1U8/zWdKDAAK\n6u4WWVlYW4PLhYEB2GzY3ITLhZ/9jCvF0dgWFBaK2lpPaalLqXQpFDfU6n8qKPB30tUCjwNfAuaS\nk9sqK+srKzuAhJERt8mED36Qz5cYAMebySSSkrC0FOh3Gx6G2w2HA83NXB2ODJcr8LAiIkRd3XZl\n5ZJWuyRJJkl6xWDIiozUBTvp/h4QgEWhaFQobgCZS0vL/qrqZ5/l4yYGwDHj73dbWMDoKCwWTE6y\n3+1o290NPTtJEjU1boNhTKkck6RGtTo5N7c42En3P4DfB6bT0u6cPl1/+nSXzxc3POzt68OHP8yn\nzwCgY+Buv9vwMPr72e/2oBkeDjzKqChx6dJ2RYW/qtooyy8ZDNmAAbgA1AAfBHaEMMtygyzfBNIX\nFlb8VdVf/CIHAwOAHjjt7SI9HdvbmJ2FwwGTCWtr7Hd7YG1vhx6rRiPOn98wGEaUyhGF4lcaTUpW\nliLYSfcF4E+AiYyMW2fPNpw9272zE+t0bvb04OMf58BgANADwf91T48HU1OBfrfNTfa7HRcDA4Gn\nHBMjrlzZOnlyXqOZVyh6lMoXtdocoCTYSfdRYDMy0qhWN6jVLUDa3Nyq3b7b2YmvfIXjhAFAR1NH\nh8jLY78bYXMz9MRLSsTZs+sGg1OWhxWKt7TatPR0CTgD1AHPA38KjGdltWRlNdTU9G5txTocm11d\n+MxnOGYYAHR07O13s9kwNASPB2Nj7Hc77vr7Q1XVDz20Feyk65Tl76jVeXuqqj8JuKOje3W6ep3u\nFpAyPb1mt/suXuT4YQDQYZ/kIj4eCwuBfrfxcWxswGJBWxtnLwXsrao+eXK3unpNpxuU5SFJ+qlW\nm5aSogx20v0h8BfASG7ujdzcRqDA45lzOrfa2vC5z3E4MQDokNnb79bfj5kZ9rvRf2fvLbPkZHHl\nymZ5+YxKNSNJ7Urlf8hyPlAO1AKXgM8Ca3FxXQZDvcFwB0ienFy3Wn1Xr3J0MQDooPX1ifh47O5i\nbg5OJ8xm9rvRO7O6GtoWVFXtnDmzqtOtStKAJP1Yp0tPTFQHtwV/BsQBjvz85vz8JiBvY2Pe30nH\nqmoGAB0A/wsdvV5MT8PhgNEItxsLC3jlFU5IelfbgsxMcemSt6xsSqWaUihuq1T/VlxcGKyqfhj4\nPLCckNBZVlZfVtYKJLpc7v5+33vfy4HHAKCwaG0V+fnY2MDUFPvd6D6bnw9tC86d26mqWtFqV2TZ\nKkmv63QZcXGaYCfdXwHRwEBhYVNhYTOQs7a24O+kY1U1A4D2S0+PyMzE6iomJmC3w26H14uJCfa7\n0T5uC/LyxMWLntLSCaVyQqFoUam+UVRUFOyk+zDwRWAhKamtoqK+oqIdSBgd9ZjNvg98gGOSAUD3\nj8kkEhPZ70bhNjUV2hbU1m77q6olqV+SXjUYsqKitMFOur8FIgBbcXFjcfENIGt5ecnfSffMMxyi\nDAB6F+7pd5uYwMYG+93owLYFxcWipsZTUjKuVI5LUrNKlZyffwI4BdQBnwJ+D5hNTb1TVVVfVdUJ\nxA8Pe4xGPPYYRywDgN6JoSGxswMg0O9mNmNhASsrePFFziU6MKOjgeEXGSkuXtyurPR30plk+fsG\nQ7YQ+uC24P2AD+iXpEZJugFkLC4u+zvpnnuOA5gBQP+t1laRmYntbczMwOmE0Rjod/v+9zl56FDY\n2QkNRZVKnD/vLikZVSpHFYoGtTo5J0cRrKp+EvhDYCo9/XZ1dX11ddfubpzT6e3txeOPczAzAOi/\nuKffrbcXW1vsd6PDvFsNjMzoaHH58lZFxYJGs6BQ9Mryd/V6fyedv6r6MWA7IsKkUjWoVDeBtPn5\n1YGB3e5ufOlLHNsMAAI6OwP9bhMTGBiA1QqvF1NTePNNzhA67La2QqNUrxfnzm3o9cNK5bBC8QuN\nJjUzUwpWVT8LfA1wZWa2ZGY2nD/fs70d63RudnXhU5/iOGcAHFd9fSI1FSsrGB+H3R7odxsdxa9+\nxVlBR4zVGuqku3p16+TJObV6TpK6ZPkFjSZvT1X1xwFPVFSfRlOv0dwCUmdm1uz23bo6jnkGwHHy\ntv1uZjM6OjgT6Ajb20lXVrZbXb2u1w/JskOSfq7RpKalKYNV1b8H/E9gNCfnZk5OI1Do9c46nVvt\n7XjySU4BBsADzd/vNjuL0VH2u9GDae/XSRMSxLVrm+XlsyrVrCS1K5XfUirzgTKgFqgFPgNsxMZ2\n6/X1ev0dIHlqat1m812+zBnBAHiw9PaKhATs7ga+7mkyYXkZy8v43vc41umBtbER2hZUVu6eObOm\n1w9I0qAkvanTpSclqYBq4CLwVSAeGM7La87LawTy3e45h2O7rY2ddAyAo6+5WRQUhPrd+vrg8bDf\njY7ptiAtTVy+vFlWNq1WTysUrUrlNyUpP9hJ9xDwOWA1Pr6ztLS+tPQOkDQxsWGx+B56iJOFAXAE\ntbaKggJsbGByEoODMJuxuYmZGbzxBgc0HUdLS6FtQXX1TlXVik63Ist2SXpDp8uIj1cD54A64OtA\nDDBUUNBUUNAE5K6vL/irqtlJxwA4Gt62383lws9/zhFM3BaEZkFOjrh40VtaOqlSTSoUt1Sqfzlx\nohCoAGqBDwLPAouJie3l5fXl5W1A4tiYu7/f9/DDnEcMgMPKbA71u1mtGBmB242hIdy4wVFL9J/M\nzIS2BRcu7FRV+TvpLJL0ml6fGROjDW4L/hqIBOwnTjSdONEMZK+sLDocO52diItjANChYbWK6GjM\nzwf63SYnsb6O73yHSz/Rb7otKCwUtbWe0lKXUumSpBsq1T8VFJwAKoE64HHgS8BcSkpbZWV9ZWX7\n9etDDAA6eAMDwj+GZ2YwMsJ+N6LfkssVmDIREaKubvvUqSWNZkmSTLL8isGQFRGhC3bS/T0gAJkB\nQAfszh2RlYWtLfa7Ed03u7uh6SPL4sIFd0nJmFI5plA0qtUpubnFvb09585hddUXHw+zmQFAB6Gl\nReTmBvrdBgfR14etLczN4bXXuPoT3R9OZ2A2RUWJS5e2KysXnn56ISEBS0uB2/UREQwACrvOTpGb\ny343ojDZ3vYBsFpFRETgsK2/H1NTx+6wjQFw8IxGkZqK5WW4XLDZ4HDA48HICOrrufoT7QurVURG\nAsDMTOhlSqurx+6wjQFwwCwWERcX6HezWOByYWMDRiO6urj6E+2L27dFdnbgTqXDAaMR6+vH9LCN\nAXCQbDYREYHZWYyMoL8fs7PsdyPaX7duiZwcuN2Blykd88M2BsDB6OkRiYmBfjenE2Yz+92I9l1X\nl8jJwdpa4LDNZoPXi8lJ/OQnx3TeMQAOQFOTKCwM9LsNDcFoZL8b0b4zGkVKCpaXAy9T8h+2DQ+j\noeH4zjsGQLi1tYnCQva7EYXV3cO20VFYrXC5sL6O3l709h7reccACKueHpGRgdVVuFyw2zEwwH43\non1nt4cO28xmzM1hdRXXr3PSMQDC6G6/29gYbLZAv9vAAFpaOBCJ9kVXl0hOxs5O4LDNZMLKCg/b\nGABht7ff7XheOSEKs7uHbVNTgZcpeb2Yn8err3LeMQDCxf9dTxz7KydE4dTeHjpsGxhAfz82NzE9\njR/9iPOOARAuvHJCFH69vSI9/d7DtvFxvPUW5x0DIFx45YQo/MxmkZCAxcXAy5RGR+F2w27HrVuc\ndwyAcLl75cS/A/X3ux3nKydEYWCzBQ7bRkZgsfCwjQFwEO5eOdnb73bMr5wQ7SuLRURFwefD7CyG\nh2EyYXERKyv47nc56RgA4R2I//XKSV8feno4EIn2hf+/W/3HvP6XKa2vY3ERL7/MSccACKO9V078\n/W68ckK0r27fDh22DQ7CaMTWFmZn8cMfct4xAMKlu1skJfHKCVFYdXWJ7Gz2uzEADhSvnBCFn8kU\n6nez2eB0wuOB04nGRs47BkC4sN+NKPwsFhETg/n5wMuUJiawvo7OTpjNnHcMgHDp7X2bfjdeOSHa\nV/7Dtrk5DA+jv5/9bgyAg8ArJ0Rh1tkpUlKws4OZmcBh2+oqlpbw0kucdAyAMOKVE6Iwa24WBQXw\neAIvU/Ifti0s8LCNARBG91w5Yb8bURi0t4uCAmxsYGICg4Psd2MAHIS7V0729rvxygnRvvL3u62s\nBA7bBgfh9WJsDL/4BecdAyC8q/89/W68ckK0r/r7A4dtY2OwWjE2ho0N2O24fZvzjgEQLnf73Xjl\nhChsbDYRFYW5ucDLlKanedjGAAi7u/1ue6+csN+NaP+YzSImBj5f6GVK7HdjABwAi0XExt575aS7\nG0YjByLRvmhpEbm58HpDh20bGzxsYwCEHa+cEIXZ7dsiN5f9bgyAA3X3yom/381o5JUTon3X3R3q\nd7PbYbfD68XEBH76U847BkC48MoJUfiZTCI5+d7DNocDTU2cdwyAcOGVE6Lwu9vv5n+Zkv+w7dvf\n5qRjAISR/8qJv9/NZuOVE6Jw2PsyJbMZ8/M8bGMAhN3eKyc2G0ZHeeWEaH91dIi0NPa7MQAOGq+c\nEIXZjRsiP//ew7b5efzgB5x3DIAw/uAfHc0rJ0Th/tk/Px/r65icxMAALBZsbmJqCj/+MecdAyBc\n/FdO/Me8vHJCFB59fSIt7d5+t9FR/PKXnHcMgHDhlROiA9lzx8ff2+9mtaK1lfOOARAue6+c3O13\n45UTon1ls4nISMzNBV6mND2NtTW88AInHQMgjN72yonTicZGDkSi/Zp0sbGhlymZTFha4mEbA+Ag\n+K+c7O1345UTov1z86bIywv1u/X1we3mYRsD4IDwyglR2Ny5I/Ly4HZjchKDgzCZsLmJ2Vm8/jrn\nHQPgIAwM8MoJUTh0d4usLKytweUKHLZtbsLlws9+xnl3kCKO8z/+kUfERz6C2Vmu/kT7yGQSSUlY\nWgr8p7/NBrcbg4Nc/bkDOCD/+I9jwChwIyensa6uz+uNcTq32tvx5JMckUT3k9UqYmKwsIDRUVgs\nmJzkYRsD4IDs7ADAM89ogD8AaoA64AlgPTa2W6+v1+tvA8lTU+tWq+/KFQ5QonfLbhdCBL7w09/P\nwzYGwIH60pd8zz0nnM4BWR5UKN7U6dKSktRANVAHfBWIB5x5eTfy8hqBfLd7zuHYbmvD5z/P8Ur0\nzrS3i/R0bG9jdhYOB0wmrK3xsO3QET7fcXwe6eni8mWUlUGlgkIRqVIlKhQFQDlQB5wDCoEVoBOo\nB1qBUZdrw2r1PfQQxy7ti+vXRUyMmJz0mc3wePCtbx3tkeb/uqfHg6mpQL/b5ib73bgDODQWFwMD\nUQhRXb1z+vSKVrsiyzZJekOny4iP1wBngTrgL4AYYLCwsLmwsAnIXVtbcDi2OzrwhS9wKBO9jY4O\nkZfHfjcGwFGwdwOUmyvq6rxlZZNK5aQktahU/1JUVAhUAHXAo8CzwGJSUtvJk/UnT7YDCWNjnv5+\n38MPc1gTBeztd7PZMDQEjwdjY+x3YwAcetPToW3BhQs7VVXLWu2yJFkk6TWDITM6WgucB2qBvwEi\nAduJE00nTjQD2Ssri0NDO11dePppjnI6vu72u/lf6Dg+jo0NWCxoa+O8OKSO6RnAb66oSNTWoqTE\nf1oQpVIlFRScACqBOqAayAHmgFagHugAXCMjHqMRjz7KT5XegQfgDMBmEwAWFjAygv5+zMyw3407\ngKNvfDwwgiMjRV3ddmXlkkazJEkmWX7FYMiKiNAHtwX/APgAi0LRqFDcADKXlpYGB3e7u/Hss5wD\n9CDr6xPx8djdxdwcnE6Yzex3YwA8cHZ2QqNZlsWFC+6SkjGlckyhaFCrU3Jzi4FTwEXgs8AfANNp\nabfPnKk/c6bL54tzOr19ffjIRzgf6EHjf6Gj1xt6mZLbjYUFvPIKRzsD4AHldAYGd1SUuHx5u6Ji\nQaNZkKQ+SXrJYMgB9MAFoBZ4FNgRwqRUNiiVLUD6/PyKf1vw/POcHnTktbaK/HxsbARepsR+NwbA\n8bK9HRroWq04f37DYBiW5WFJ+pVanZKVJQGngTrgaeCrwERmZktmZsO5cz3b27HDw5vd3fjEJzhV\n6Ejq6RGZmVhdxcQE7HbY7YGXKbHhhwFwHNntgXEfEyOuXt06eXJerZ6XpG5Zvq7V5gIlQA1wAXgc\n2IyK6lOrG9TqFiB1dnZtYGC3pobTho4Mk0kkJmJpKfAypeFhuN1wONDczGHMADjeNjdDXyctKdk9\ne3Zdr3fIslOS3tJoUtPTZeAMUAf8LvBnwFh2dkt2dgNQtLk543RudXTgiSc4i+jwuqffbWICGxvs\nd2MA0H+29yu2cXHi2rXNkydn1epZhaJDqfy2SpUHlAW3BZ8C3DExPTpdvU53G0iZnl6z2XyXLnFS\n0SHicIjtbQCBfjezGQsLWFnBiy9yoDIA6NfzeELbgoqK3TNn1vT6QVkeUih+otOlJycrg510fwT8\nJTCcm3sjN7cRKPB45hyOrdZWdtLRAWtrExkZ2N7GzAycztDLlL7/fY5MBgC9821BSoq4cmWzvHxa\npZpWKNqUym/Ksr+Trha4AjwJrMbFdZWU1JeU3AGSJiY2rFbftWucbxRu7HdjANB9trIS2hacPr1z\n+vSqTmeTZbsk/UinS09IUAc76f4ciAOGCgqaCwqagLz19XmHY7u9nZ10FA6dnYF+t4kJDA7CYoHX\ni6kpvPkmhx8DgO7rtiArS1y65C0tnVKppiTptlL5r8XF/k66WuD9wNPAUmJiR3l5fXl5K5A4Pu7u\n7/e9732cirQv+vpEaipWVjA+Drs90O82Oopf/YpDjgFA99vcXGhbcO5coKpakqyS9EO9PiM2Vguc\nA2qB/wVEAQNFRU1FRc1AzurqgsOx09HBTjq6b/z9bgsLGBsL9buZzejo4BhjAFC4tgUFBaK21lNa\nOqFSTSgUN1WqbxQWFgGVQC3wEeB5YD45ua2ior6ioh1IGB11m0x45BHOUvrt2WwiMhKzsxgdZb8b\nA4AOzsREYNZFRIja2u1Tp/yddGZZftVgyIyM1AU76f4OEIC1uLixuPgGkLW8vOSvqn7mGc5b+k31\n9oqEBOzuBr7uaTJheRnLy/je9ziKGAB0cHZ3QzNQoRA1Ne6SknGlclyhaFKrk/Py/J10dcCnga8A\nM6mpd6qqGqqqOoF4p9NjNOJDH+Icpv9Oc7MoKAj1u/X1weNhvxsDgA6ZkZFQJ93Fi9uVlYsazaIk\nGSXppZKSbMAQ3BZ8APABZllulOUbQMbCwvLg4G5PD557jlOa/pPWVlFQcG+/28wM3niDQ4UBQIfS\n3k46tVqcP+82GEaVylGFol6jScnOVgBVQB3wOeCPgMmMjNtnz9afPdu9uxvndHp7evCxj3F609v3\nu7lc+PnPOTwYAHQUDA4G5mp0tLhyZauiwt9J1yPLL+p0uYABqAFqgA8DWxERRpWqQaVqAdLm5lYH\nBna7uvDlL3O2H0dmc6jfzWrFyAjcbgwN4cYNjgcGAB01W1uheWswiHPnNvR6pyw7JekXGk1qRoYc\nrKr+IvA1wJWV1ZKV1XDhQs/WVqzTudnVhU9/mjP/uLBaRXQ05ucD/W6Tk1hfx3e+wwHAAKCjz2IJ\nzOTYWHHt2lZ5+ZxaPSdJnUrld9TqPKA02En3CcATHd2r1dZrtbeAlJmZNbvdV1fHheCBNTAg/N83\nnpnByAj73RgA9ODyekO3zMrLd6ur1/X6IVl2KBQ/02rTUlOVwarq3we+Dozk5NzMyWkECr3eWYdj\nq70dTz3FdeHBceeOyMrC1lag381oxNoa+90YAPSg23vLLDFRXL26WV4+o1bPKBTtSuW3lMq8YCfd\nReAJYC02tttgqDcY7gDJU1PrVqvvyhWuEUdbS4vIzQ30uw0Ooq8PW1uYm8Nrr/HJMgDo2FhfD20L\nTp3aOXNmVadbleVBSXpTq01PSlIFq6q/BsQDzry85ry8JiB/Y2PO6dxua2NV9dHT2SlycwP9bgMD\nsFrZ78YAIG4LgtLTxeXL3rIyfyfdHaXy3xWKAuAkUAu8F/gdYCUhobO0tL60tBVIcrk2LBbfe97D\n5eMIMBpFaiqWl+FywWaDwwGPByMjqK/n42MAEAGLi6FtQXX1zunTKzrdiiTZJOl1vT4jLk4T7KT7\nCyAGGCwsbCosbAZy1tYWHY7tjg5WVR9SFouIiwv0u1kscLmwsQGjEV1dfF4MAKJfvy3IzRUXL3pL\nSyeVyklJalGp/rmoqChYVf0Y8BywkJTUfvJk/cmT7UDC2JjHbPa9//1cWQ4Lm01ERGB2FiMj6O/H\n7Cz73RgARL+Z6enQtqCmZufUqWWtdlmS+mX5B3p9ZnS0Lrgt+BsgErCdONF04kQzkLWyEuikY1X1\nQenpEYmJgX43pxNmM/vdiAFA73pbUFTkr6p2KZUuhaJZrf6/+fkngp10Hwd+F5hLSWk9dar+1KkO\nIH542GMy4dFHue6ET1OTKCwM9LsNDcFoZL8bMQDofhgfDywikZGirm67snJJq12SJJMkvWwwZEdE\n3K2q/gfAB1gkqVGSbgCZS0tLg4O73d149lkuQ/uorU0UFmJjA5OTGByE2cx+N2IA0P22sxNaUJRK\nceHC3U66Bo0mJSenONhJ91ngD4DptLTbZ87UnznT5fPFOZ3e3l589KNcku6znh6RkYHVVbhcsNsx\nMMB+N2IA0D5zOEKddJcubVdULGg0C5LUJ8vf0+tzAANwAagBHgV2hDAplQ1K5U0gfX5+xb8teP55\nrlDv1t1+t7Ex2GyBfrfBQdy8yc+WGAC0//Z20ul04ty5DYNhWJaHJemXGk1KZqYU7KR7Gvgq4MrM\nvJWZ2XDuXPf2dqzTudndjU9+kqvVb4P9bsQAoEPEZgusPjEx4urVrZMn/VXV3bJ8XavNBUqCnXSP\nA5tRUX0aTb1GcwtInZ1ds9t3a2u5eP2Gn7OIiACAmRkMDwf63VZX2e9GDAA6BDY3Q18nLSnZPXt2\nXa93KJVOheItrTY1LU0OdtJ9GfhzYCw7+2Z2diNQtLk543RudXTgiSe4lr2927dFdnbgmNfhgNGI\n9XX2uxEDgA6fvV8njYsTDz20WV4+q1bPKhQdSuW3Vao8oAyoBS4AnwbcMTHdOl29TncbSJmeXrPZ\nfJcucV0LuXVL5OTA7cbUFIaG2O9GDAA6Ijye0LagomK3unpNpxuU5SFJ+olWm56crASqgYvAHwMJ\nwHBu7o3c3EagwOOZczi2WluPeyddV5fIycHaGiYnQ/1uk5P4yU+4+hMDgI7gtiA1VVy+vFlePq1P\nx26sAAAGyElEQVRSTSsUbSrVNyWpIFhVfRV4CliNi+sqKakvKbkDJE1MbFitvmvXjt2SZzSKlJR7\n+92Gh9HQwNWfGAB0NC0vh7YFp0/7q6ptkmSXpB/pdBkJCWrgLFAH/DkQBwwVFDQXFDQCuevrCw7H\ndnv7seiku9vvNjoKqxUuF9bX0deHnh6u/sQAoAdrW5CVJS5d8paV+TvpbimV/1JcXBjspPsA8DSw\nlJjYXl5eX17eBiSOj7v7+33ve9+DuRra7ff2u62u4vp1Lv3EAKAH0dxcaFtw/vxOVdWKVrsiSVZJ\n+qFenxkb66+qrgP+NxAFDBQVNRUVNQPZq6uLQ0M7nZ0PSCddd7dISsLOTqDfzWTCygr73YgBQMdv\nW1BQIOrqPCUlLpXKpVDcVKm+UVhYBFQCdcBHgeeB+eTktsrK+srKdiBhdNRtMuGRR47qWnm3321q\nCg4H+vrg9WJ+Hq++ytWfGAB0zExMBBa+iAhRW7t96tSSRrMky2ZJetVgyIqM1AY76f4OEIC1uLix\nuPgGkLm8vDw4uNPdjWeeOTJLJ/vdiAFA9DZ2d0OLoEIhamrcJSVjSuWYQtGkVifn5RUHq6o/DXwF\nmElNvXP6dP3p051AvNPpMRrxoQ8d6mW0t/dt+t3Gx/HWW1z9iQFAFDQyElgTo6LExYvblZWLGs2i\nJBkl6fslJdmAPthJ9wFgF+iX5QZZvglkLCws+zvpvvjFw7Wqms0iIQGLixgfh9WK0VG43bDbcesW\nV39iABC9ne3t0PqoVovz5zdKSkZkeUSS6tXqlOxsRbCq+neAPwYmMzJunT3bcPZs985O3PCwt6cH\nH/vYwa+wNlug321kBBYLpqbY70YMAKJ3YnAwVFV95cpWRYW/k65Hll/U6fyddP5twUeArchIo0pV\nr1K1AGlzc6sDA7tdXfjyl8O95losIioKPh9mZ9nvRgwAondtb1W1wSDOndvQ653+TjqNJjUjQw5W\nVT8P/Cngysq6mZXVeOFCz9ZWrNO52dmJz3wmHOuvv+Hnnn63xUW8/DJXf2IAEN2HH7EDi2lsrLh2\nbevkyTm1ek6h6FQqX1Crc4FSoBY4D3wS8ERH92i1DVrtLSBlZmbNZvNdvLhfa/Hb9rvNzuKHP+Tq\nTwwAovvK6w3dMisv362uXtPr12TZoVD8TKtNS01VAmeAi8DvA18HRnJybubkNACFXu+sw7HV3o6n\nnrpvS/PdfreJCQwMwGZjvxsxAIj2395bZklJ4urVzbKyGbV6RqFoVyq/pVTmB6uqLwJPAGuxsd0G\nQ73BcAdInpxct9l8V668q2X6br/b+DhsNjid7HcjBgBR2K2thbYFp075O+lWZXlAkt7U6dITE1XB\nTrqvAfGAMz+/OT+/Ecjb2Jh3Orfb2t5xVbXFImJjMT+PsTFYLJiYwPo6urthNHL1JwYA0UFvCzIy\n/J10UyrVlCTdUSr/TaEoAE4CtcB7gd8BVhISOkpL60tL24BEl8ttsfje857//wru73ebm8PwMPr7\nMTfHfjdiABAdJgsLoW3B2bM7VVUrOt2KJNkk6XW9PjMuTh3spPtLIAYYLCxsKixsAnLW1hYdju2O\njl9bVX23381oxOoqlpbw0ktc/en+E3t/oiGidyk3V1y8iNJSqFRQKCJVqqSioiKgAqgDqoF8YAFo\nB+qBdmBsbMxjNvvm5xETIyYnfWYzPB489RSGhmA0wuPBwgL73YgBQHS0ppYQNTU4dQpaLSRJyHKs\nXp8VHa0Nbgv0QCRgAxqB5uvXW/YGQHU1+vuxuYnpafzoR5yhxAAgOrJOnBA1NSgthVIJhSJKrU7O\nzz8RrKo+A+Rcv160NwASEuD1YmwMv/gFpyftI54BEO27sbHAOh4ZKerqtisrF7VafyfdyyUl2ULo\n7vnzbjdsNty+zdWfGABED4qdndCarlSKCxfcBsOoUjkqy1Eu187d3/qP/+DST+HA/wIiOmDR0eLS\nJZSUYGUFGxts+CEGABER7bMIfgRERAwAIiJiABAREQOAiIgYAERExAAgIiIGABERMQCIiIgBQERE\nDAAiImIAEBERA4CIiBgARETEACAiIgYAERExAIiIiAFAREQMACIiYgAQEREDgIiIGABERMQAICIi\nBgARETEAiIgYAERExAAgIiIGABERMQCIiIgBQEREDAAiImIAEBERA4CIiBgARETEACAiIgYAEREx\nAIiIiAFAREQMACIiYgAQEREDgIiIGABERMQAICIiBgARETEAiIiIAUBERAwAIiJiABARMQCIiIgB\nQEREDAAiImIAEBERA4CIiBgARETEACAiIgYAEREdFf8PkjHA9hViIbwAAAAASUVORK5CYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.image(zoom=1.0)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"160.0"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.eval(\"pe\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.atoms[3].position = (1.0, 0.0, -1.0)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"L.run(0);"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"phi = [d * math.pi / 180 for d in range(360)]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pos = [(1.0, math.cos(p), math.sin(p)) for p in phi]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"K = 80.0\n",
"d = 1\n",
"n = 2\n",
"E_analytical = [K * (1 + d * math.cos(n*p)) for p in phi]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pe = []\n",
"for p in pos:\n",
" L.atoms[3].position = p\n",
" L.run(0);\n",
" pe.append(L.eval(\"pe\"))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" this.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width);\n",
" canvas.attr('height', height);\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'];\n",
" var y0 = fig.canvas.height - msg['y0'];\n",
" var x1 = msg['x1'];\n",
" var y1 = fig.canvas.height - msg['y1'];\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x;\n",
" var y = canvas_pos.y;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nOzde5yMBf//8c+erF1nQtJRiZJOCqmkg853pzt3yl3qTre0aq6ZPc8eHSJySOQQyamiJCpaIimVkMNN7hJKkiixLba1O/v+/TGr7/723sXuNTOfa67r/Xw89nFbu2Zeau/mvbPXdY0IEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREYWnB0TkExHJFxGfiERW+HgtERkiIj+IyCER+V5E/lnhcwaIyG4RKRCRj0WkXdBqiYiIiMi07uIfgY9J5QPwXRFZLCLnlL1/ioi0LvfxZBHZKSIXikis+MfiTyISH7xkIiIiIgqE6+R/B+CNInJY/KOvKjtEpH+596NEZJ+I9Ap0IBEREREFVmUDcKiIbBKRgSLys/if6ZsqIk3KPl5fREpFpFOF21osIiOCGUtERERE5lU2ACeLf+C9KCK1RaSpiCwRkUVlHz+97ONtKtzWbBF5OZixRERERGReZQNwpIiUiP/YvmM6l/1enNTsGcAIEWlZ9mf5xje+8Y1vfONb+Ly1FP/jONlIZQOwl4gUi//Zv2OuKvu9uLL3KzsGcK9UfQxgSxEB3/jGN77xjW98C8u3lkK2ECn+Z/huFv8AjC97P6Ls1ztFZFTZ7zURkTwRmV/uzyeJ/xIx7cQ/Cp8VkV1S9VnA9UUEu3btwrLVX6ON61+QxHg8MHQM8vPzbf2WkJCg3sC/tzP+3s/Oeg8RzzRDk343YerCT//n45u3/Yhu3kxIYjwu9SRg76/7bfH3duq/b/69rfP3fufjdYjt1w6x/dohc+rbOHDgoHproN527dp1bADWD+gKITW9xf9jXF/Z27Ffdy37+PniP+6vQPyXd5kkIg0r3EauiOwR/3UCP5bjXwewvoggPz8fx4yc9xEiUpvgCm8SfL5S2JXb7dZO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\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f191b1628d0>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt.plot(range(360), pe, range(360), E_analytical)\n",
"plt.xlabel('angle')\n",
"plt.ylabel('E')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}