{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Curved arch\n", "#### April 2020, Amir Hossein Namadchi\n", "This is an OpenSeesPy simulation of one of the numerical examples in [A robust composite time integration scheme for snap-through problems](https://link.springer.com/article/10.1007/s00466-015-1152-3) by *Yenny Chandra* et. al. It's a special problem involving dynamic snap-through with large deformations in elastic range. In their study, a new three sub-step composite time integration algorithm was presented to handle such problems. Here, I will use the Bathe scheme (`TRBDF2`) to perform transient analysis. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Curved Arch](imgs/CurvedArch.PNG)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import openseespy.opensees as ops\n", "import matplotlib.pyplot as plt\n", "\n", "from time import process_time" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below, the base units are defined as python variables:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Units\n", "mm = 1.0 # milimeters\n", "N = 1.0 # Newtons\n", "sec = 1.0 # Seconds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model Defintion" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time elapsed: 29.2345874 sec\n" ] } ], "source": [ "# Node Coordinates Matrix (size : nn x 3)\n", "node_coords = np.array([[-152.4, 0], [-137.337, 2.91714],\n", " [-122.218, 5.53039], [-107.049, 7.8387],\n", " [-91.8371, 9.84114], [-76.5878, 11.5369],\n", " [-61.3076, 12.9252], [-46.0024, 14.0057],\n", " [-30.6787, 14.7777], [-15.3424, 15.2411],\n", " [0, 15.3955], [15.3424, 15.2411], \n", " [30.6787, 14.7777], [46.0024, 14.0057],\n", " [61.3076, 12.9252], [76.5878, 11.5369], \n", " [91.8371, 9.84114], [107.049, 7.8387], \n", " [122.218, 5.53039], [137.337, 2.91714],\n", " [152.4, 0]], dtype = np.float64)*mm\n", "\n", "# Element Connectivity Matrix (size: nel x 2)\n", "connectivity = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], \n", " [6, 7], [7, 8], [8, 9], [9, 10], [10, 11],\n", " [11, 12], [12, 13], [13, 14], [14, 15], \n", " [15, 16], [16, 17], [17, 18], [18, 19],\n", " [19, 20], [20, 21]]\n", "\n", "# Get Number of total Nodes\n", "nn = len(node_coords)\n", "# Get Number of total Elements\n", "nel = len(connectivity)\n", "\n", "#Boundary Conditions (size: fixed_nodes x 4)\n", "B_C = [[1,1,1,1],\n", " [nn,1,1,1]]\n", "\n", "\n", "# Modulus of Elasticity\n", "E = 206843*(N/mm**2)\n", "# Mass Density\n", "rho = (7.83e-9)*(N*(sec**2)/(mm**4))\n", "# Cross-sectional area, 2nd Moment of Inertia\n", "A, I_1 = (12.7*0.6096*mm*mm,\n", " (1/12)*(12.7*(0.6096**3))*mm**4)\n", "\n", "\n", "\n", "ops.wipe()\n", "ops.model('basic','-ndm',2,'-ndf',3)\n", "\n", "# Adding nodes to the model object using list comprehensions\n", "[ops.node(n+1,*node_coords[n]) for n in range(nn)];\n", "\n", "# Applying BC\n", "[ops.fix(B_C[n][0],*B_C[n][1:]) for n in range(len(B_C))];\n", "\n", "\n", "#Set Transformation\n", "ops.geomTransf('Corotational', 1)\n", "\n", "# Adding Elements\n", "[ops.element('elasticBeamColumn', e+1, *connectivity[e], A, E, I_1,1,\n", " '-mass',rho*A,'-cMass',1) for e in range(nel)];\n", "\n", "# load function (Applied @ top node)\n", "F = lambda t: (t if t<=8 else 8)*N\n", "\n", "# Dynamic Analysis Parameters\n", "dt = 0.0001\n", "time = 15\n", "time_domain = np.arange(0,time,dt)\n", "\n", "\n", "# Loading Definition\n", "ops.timeSeries('Path',1 , '-dt', dt,\n", " '-values', *np.vectorize(F)(time_domain),\n", " '-time', *time_domain)\n", "ops.pattern('Plain', 1, 1)\n", "ops.load(11, *[0.0, -1.0, 0.0])\n", "\n", "# Analysis\n", "ops.constraints('Transformation')\n", "ops.numberer('RCM')\n", "ops.system('ProfileSPD')\n", "ops.test('NormUnbalance', 0.000001, 100)\n", "ops.algorithm('Newton')\n", "ops.integrator('TRBDF2')\n", "ops.analysis('Transient')\n", "\n", "\n", "# let's do this\n", "time_lst =[] # list to hold time stations for plotting\n", "d_list = [] # list to hold vertical displacments of the top node\n", "\n", "# start the timer\n", "tic = process_time()\n", "\n", "for i in range(len(time_domain)):\n", " ops.analyze(1, dt)\n", " time_lst.append(ops.getTime())\n", " d_list.append(ops.nodeDisp(11,2))\n", "\n", "# stop the timer\n", "toc = process_time() \n", "\n", "print('Time elapsed:',toc-tic, 'sec')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualization" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAFWCAYAAABXUW0kAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydeZhUxbn/v29Pz76yD6uAgAgIsqgoJOJG3DAavVF/5mpWjEtyc11yjVs0kRjUGJPolaDXmMQkXm80atBgRJ24oAZFNKDCIOvMMMwKs+/1+6NONdWn69Q53czQzPT7eZ5+evq8Z3mr6szM++33rTokhADDMAzDMAzDMAxzgFCyHWAYhmEYhmEYhjncYKHEMAzDMAzDMAzjgoUSwzAMwzAMwzCMCxZKDMMwDMMwDMMwLlgoMQzDMAzDMAzDuGChxDAMwzAMwzAM44KFEsOkCET0ARF1E9EGInqbiAQRfUZEJURU4Xz+irPvvzufZyXBz/XOtZ/32S9pPh4qiOg4IvorEb1FRA1EdHGyfQIAIhrj9P1/9OI5C4loq3PeFXEcdycRdRJRFxHlats/I6K/9KJ/P3N+f5qIKK23zpuqENGlRPQKEW0iomoiOiLAMYuIqNa5R750KPzsjzh/N/Y4/XRlsv1hmP4MCyWGSQGIKAvADABfEUIcC+Amx3STEGIRgPOcz+uc9zEAPgKw8VD66bDQeX/NZ7+4fCSic4nowoNx7FBCRLMBrAHwQyHEAgC/A/CvQ+zDDCK63mA6CsBmAG/01rWEEPsBnOl8/Gccx/0QwMsANgohmgGAiAoAdAB4qRf9ux7A2wDWCyG6e+u8/QEiyiOiO4hoSC+dbymAuwFcAGAegHcB7HLts5CIvqFvE0KUALgVgADwj97wxXa9/ooQYh0A9SXGu8n0hWH6OyyUGCY1mANgnRDiT87nuc77e877DgD7AWwBACHE3UKIWUkKCIudd6tQSsDHewD0p+zTMgDvCCHWA4AQ4lohxMeH2IerAXzRvVEI8YoQYqryrRcZ57zHG9xN1I8RQjQIIY4WQgTOTAVkHFIz8DwbwM0Amg72RESUA+AnAH7tjFOrEOJcIYRw7XozgJMNpxgJ4CMhRO3B+hLwev2ViQBakJwvuxhmwMBCiWFSg48AnKt9ngugTgix3fm8D8DZhmAlGcwHUAfpc69ARJcBOBpAbwf2fQIRjYPMrvw9iT5MAXAFDm2fnQCgEcAnQQ9wshxHAXinr5xyrjMSwFjEke0aCDjljD8A8LEQor0XTnkhgCGw3NtE9DnI+990782Hf7Y5Lnyu119ZAOA9IURXsh1hmP4MCyWGSQGEEE1CiDpt01wA72v2LiHEWiKaRkR7ndr2bwEAEZ1BRPuJqIeIRhDRjUT0BhHtIKI5RJRDRHcR0UZnftEw/drO3JOfOcd8QkTvENEoi7vzIctqZhDRI0RURkR/JiJyzhfjo7P9Iuf6a4loNxG9TkQFRHQVgDud3b7nzMl6WjvuNGeuxFoi2kJEPyeidMc22Lm+cOZEfY2I/u70xa3OvJgK7VwziajR2f84U+NIcrXTD28R0ad6yQ8RHQngYQAE4ELH3xmuc7zkXONubduPnG2btG1ZRHQ7Eb1Jcm7av4joGMf2A2fOzWdEdITT7joiWkNEiwD8BkAOgJMdH0qIaKwzzoKI/uDyaQIR/cFp104i2k5EMzX7xUT0vuPLG0T0UyJa6+qeEyGDux5T3znnmeP4+B4RvQtZkgg4mR4ietDxr1w7ZhARPUFynt6HRLSNnLkbjk+CiG4ios8T0W9Iztm7y+Bb5DrOsXlOv20ioteI6Hki+h0R3ejyeZZjW+ucezMRDdfsZzn3lZov+J/O9ulEVOX4N5uIlhLRC862M4kojYj+i4jede7do1zXDTL+Hzr9c68ztu+T8ztMRGMAPA6ZiS3U7oMlHmOT75znfSL6pzNGJ2r2UyEzN60Afubcx2muc1wE4EHI+/9i53qvElEmERGA4wG8RkTfIqJnnHv2UoMvlzlj8gbJvweXePjseT3HPofkPMG3nXH7LRHla8cHvX/0a15BRK1EVE9EuSTLGv/pMYYjiGil05cfENE/DPvo9+E/iOhvkCXM77r2O8Fpy6uOj/d6+cgwjIMQgl/84lcKvQDkA+gB8BMP+79DzgE4Vtt2G4APIMvXxgEIQ2Z9fgfghwDyAExyjrtSO64YspzvFwDSAAwG0AXgRot/6wD8CcC9kMHLJc55Z3n5CGCCc95TnM/HA6jW9v8NgM2Ga/0bZHnK553Po5zP39X2WeSc+xHI0pxCAC8AyADwBwCdAEjb/x4AZQDSPNr3K6dPxjifL3DGQ2/fTQCaLefIA9AO4DHX9io1rgByIefU/BlAltP/NQAe0vYvAbAKwP8ASIcstfuqY7vC6eORrmuMdbZ/T9s2HUAtgP9yPs9w9hnsfL4SMlM03/k817H/n8H/n1rujdlOv1zrfM502rTfNQafAXhW+/w/AF4FEHI+vwDgGufn4Y4vtwJY6mz7urNtinaOewFUap/TIOdovQogXxtbAeAc1/3TAuAS5/O5ur8ArgdQCWCG8/nnAJpc93qN498sZ9tHznX/y/E/G/I+vFs7Lsj4vwLgMQD/De/f4SOcbZf6/F3JgCzl/QuATGfbL5y2pWv7rQbwks+5fuiMc9i1fTrk78pDABZp5/vAtd8vAXyKA79jfwGwKYHrLXDG7mLt964cwP3aPoHuH8M1/wfyd+8hACM8xnAwZFn0gzhw7z4LOU8uyH34JW2/Lzv33cnO5/9w9hlmGwt+8SvVX2EwDJNqzIEUIO972EcDaEN0bfsYyPKmG4QQuwCAiNoBLIEM8JqIqNXZV88G/BoyAPlPIUQPEan5RPtMFyaibMhvr7MA/LsQQmjntfk4FTJg2A0AQoh/EpE+t+ZEuEqziGgwZJDygBDidee4CiLaAuALkMEWIMVTGoCdQgg1gfwc5xz/AvD/IEuJahzbNAA/E4a5UyRLfK4BcKYQoszZ/BrkeCwG8KGz7XgAG0zncPxsIqLtkAGWOvdwyEBO+f0TyCD3dCFEm/PNfRei+34UgEGQAV0nZMCs99kuIcQe1+VHO+/rnOsSpGD+QAix3LFtBnCVEKKOiMYDuB/A7UIINQZq4r6enZkEYBg8StuIKATgtwBeFUI86PRDOxHVOn4Kbb9iSAGgmAGgVBzIVH1P6weV3ZwshFBZAHVfzYQzbw8y06n7dh2A4wBMFEI0utr1T8eXXABPAPijEOJJx/a20zeCiOZCCuuLhBDqmt2QAa1iDGRmr0IIoe6PZgAnQf4+VjljIBD9uxdk/MdAlqTOc/0O67GBygj5lTZ+H/JvxBfEgRK91wB8F8CxOLBQzDzIvws2VGbRXTZ2IuTvyi4hF3YAZHYqAhFdAOA7AOZqv2Pd8Pib43U9IsqA/HLkWSHE/wKR37t1kH8fFEHvHzdjIO+pW4QQe51rCkT3/T2Q43qddu+WAPg5EQ0TQlTDfB+qLLfKso6B/H24Tfsb1g254EmLZ68wDMOldwyTgrgXcnBzHGTQ2+Xa9o4Q4hVAltNBBukPCyFUidMk532Ls8/RkKvpPeB8ng3gach5AH+0+JYO4Gbt+lMgg4VtFh/XAagH8CQRjQYAIcRa57qDnHO4A71/hwzM/8e1PRsyGFPMg8ye/czg707nfYRzrZGQ33p7BYLXQWabXnZdD65rHgdvIatfe4T2+RuQ41HptHkp5IT5ZqdU5w+QAfaDjq+FkGN2nxCi3nD+GHGp+dYNmWEEgFMhxfcv1A5CiE5xYCGFb0IGfyu1c6hFG3ThMd9591os4VQAxyj/nTYQZKCq+zkdUlis07a9BOBSIrra8a/UCTLh+C4A3KHtn6Mu4VwnHfLeVIEnQQbjfxFCVGjHjQOwXTv3JZDCUu+bWiGEuv+/D5kxeI6Iiojo25Dj9n3tnMdBBr6Pa9umAHhGHFhMYxzk74363Qs6/pMB/LfWhiOd90j5JuR9UCUOzGeMwRGn34MUFfoiC1H3Nsmy0iGw3NtO354A8703HzJDdb+2bQqArdrnmwCUCCHWE9FwIroVwBmQWfF4rncWpIj0+/vge/94MA8yo/qh44caw03O58EAvgrgCSFEh+v6ynWv+3A0gDLtb/N3IEX0o06p38WOv7cLZ6VIhmHMcEaJYVKPuQBqhBA7PewnAHhGfXCyPMcA0OddzIUMAvTn1MyDDKCVAFsCGUAshSxFKYPMCDzpZC9MnAi5spY+0ft4yInkjdq2KB+FEDVEdC5kWcr7RHSWEEIF8vMdX92B0GLILNFnWluzIMv41riu9YoQwpTZ2uG8j4AMcG4BcKcQIuZbWucb/dMgA1x90Yxpzvt2Z79iyG+bgwilac4xRZBBlfr2/wzIrNw5RHQagL2QZVbf0AKj4yH75a8GX/MgBcfjhuueADkeqo1nQ34zvcawLyBXzXvXNX6fh7xX9DaeCJk1KYeZLzrXeV3bdixkFk0XVyc47/oXAT+GLBl8iIhmCiG+rdnmQ2bvdCEwxXnfrF0nGweE3RznfLrgVe3Sxd/ZkAFrzLLuzv1wFmSm4zXIDOn7AI4TQmzWdj0BMqDucY6bCFmS5f7dAw70Qzzjr5/neMhx0UXmfPhnk+ZCCqBXXNuj7m1I0QfY7+2pAIo8rnkigL+qvx8kl4GfCllaq7KqxwMoJaLXIf+WvA1gupZdCnq9xZD325uGNukLzQS5f6IgosmIHcPjnXflx2mQmWxTnzY7mcS5MN+Hn0P078QSyPtrFWR530eQWW2vL8sYhnFgocQwqUfUQg46TjZmNKIDpbmQfyv0iffHQQYRH2rbFkAu26sCsamQczoWxOHbiZDLmOura50EOafE5iOEXIxiLmRpyu8gxR0gA80ORH9LDshsinvb5yC/1X3VuVY6ZFD8DMxEMkpENM255nc89h0OOT/Mfc1TIb/tVSUxKmDyE0q7nOsS5GIV94sDC3ZMVe0R3iuV2VaYmwcZpJlWATsB0WJlMoDPPIQkAIyHa6wAXAQptvRvs0+Efent8QDKXdf5N+fdLZS2aX0BJ7D+GhGVAlhGRC8LIdSCHvMh7xmd0wCU4sBzq06EFP2qHeOd90gmw8nazIT8MkAxGd7PvhoNeT/cIIRYadrBKZkahdjfPSC6TxdAZj1VYB50/JsQPf5Rv8NO+dmxkGV8NlQ22XRvb9QybMcDqLV8SaP8Alz3npMBOxrAcm3zfMjKGNU/qt3XCiGCrhhpvB5km7bq/ecInDFwsuSaDyWuY933j9c1bWMY06fO7/oiHFj1b7zzbroPf68dMwXAPUKImz38YRjGAy69Y5gUwgk2psB7GVzTt/EnQM5t0L9FPQ5ycrReEnIi5Le3ijbIBQf066e5V2xyMR8HSrrgzG8Z5TpvlI9ENFWdUwixG7K0SL/GZMg5DR3O/hnO9hbE1ud/AzLztcr5PBPym/kPYGaP08ZRkCvVXePKFum0uN5BcmWtywA8LYSocjYf5+zjt0T2TkhRt8TxUw+22yDFV1Tmjoimax9PgPwm3OTvZOd9q3NchvM+BDKA0++PdkjBpV9H/9+SrtuJ6BxoZWzOthxIkWlbejvDdZ5iAN+CFEXV2n4n6P4R0fma7W7I+T9THVse5Df0u7T9R0Jmrx7W+mY+gC1CCDXPRd1DertVaZcu2mx906bto9unavuYgvjjANQLIXZo206CLI1V/gYd/w9F9AqD7t/hIyDbqu4Dcr48cGO6t492zvewy3e/LwAmO36ruZCqr1VmWP9dPMnZV/WPV5/q7Q56Pa+/D804IEKC3j9uToAU/VXaNvcYxvQp5NyoMTjQp773oXO+dsT2yUSnWoBhGAsslBgmtTgVMtjY7WFXgdkW17ZPhBBt2rbjEC1oJkJOoNeD+9cAjCWiCc4+BZDzJD5vujARHQH5MEl3IATXed0+fh3yOS+KYxAd7HUDyHaCvImQ85gIslTseCdIBxF9GfIZL0u1b5HVtTaYfHaCkF2QK5et0ibkm/bdDxnAL3KuRwDugxRi12u7HgfLQg4a6lv5BwF80xWUvQb5932Bc61MIvol5JwZxfHwFoDq2rlOMPWkEwCqbJd+f7wJYKpT/geSS7//zdkfkN+qT3dsUyBXDtyB6G/bj4PMWtrE4UcAxpNcjj4fcpWxl/XzaCWDW7TP/+vMjQHkQzhzcSADcRxk5myMtv8TkIF3ZC4UZMCv+6a+NFDt+jZkBkG1V++bOZrQnArg70SU4wTJm6D9PhDRWZCCt9DZdAKABshV/BTu370syNUA3b97QcZ/vXaeSZAlpPp5IveB874MsqzPzTuQAuIU51yFkHN73oBcEEGVGs6G99xI/ZoEIIeIhgJ4xrkH50MG+7p/J0EKZfW3aSPkoip6n14B4D5NAAW93hoARxORmn/4Och5WNe5vtQIcv+4OQHRfZ+N2DF8FVLsqj4dBblQyx+FEC86+wS9D0sAfM75mwMiOt7xsxgMw9gRh8HSe/ziF7/6/gX5Lf5nkCVE7wM4yrBPiWO/V9u2E8Dj2udhzj7Xatsuc7ZtAHC0s40g54Z8AjmZ/mnIUiAv/9Qy4DO0bWqZ2xcAFJh8hFwieTNkGcv7AJ4HMFY7x/GQgfm7kKvcqSWr8yHnNmyCDGj/DmChy6ffAtjh068vQwaEoQBjMAVyzsF6yOzJ73VfnX1qAPwywLnUss3f9LBfC+Bj53rPAzhPs01wjv2qx7GDIIPfUkhxe4yz/Q7nuNVaP2ZBrqj1qTPOfwQwTTvX55x76BXIifajnXP8A8AEZ5+bnG0vAyj28KkYUgB/BLk4whDnmmU4sLz7Iuc8n0De7+MhRcNWZ4w+hFxxTp3zB05//825r9ZDBqN52j4jnHPuhXwos9q+HHKRhScgS61UG36s7aPmoWx0+uxRRN+bxwB4y7k3X4QsodSv/Q/IhQnU5xBk9uA+bdsCHFjsZEGi448Dy8F/4Bq/x5y2Pw1tuWnD+Jzl9O9bkL+HywBka/aZcC1Z7XGeiZC/k/+C/P0c52xfDbkynd4X+yHF0zXa9pOdNrzpjOt/QluePI7rhSEXcPnYuXde1/sw6P1juF6m4/MdLp8F5N/nhdr2K3Dg79M6yHmiaa7zBbkPxzn99wHk39IHwMuC84tfgV7qOQ4MwzBMnDjfQL8JGUBv89s/wPkmQ2ZDLhZCPHWw52PsENFzkIHnucn2ZaBD8uHQKyGF8N5k+9Mb8P3DMAMfLr1jGIZJAGd+0f9CrnJ30CLJ4XTIOQnuVayYvuEEeJcfMr3L6ZBzcAaESHLg+4dhBjgslBiGYQJCRIOIaL0zl2Q1gLeFEH/qpXMXQD6c8+fC/Fwjphdx5s6NgDYRn+kbiOgYyGeq/TDZvvQWfP8wTGrAQolhGCY4UyFXuXoIwJ+EELce7AmJKJ2IXoWcS/MkBlAweZijFuq42llkgelliGguyecZPQLgChF8ye7+AN8/DJMC8BwlhmEYhmEYhmEYF5xRYhiGYRiGYRiGcRFOtgN9xdChQ8X48eOT7UaE5uZm5Obm+u/I9Drc98mB+z15cN8nD+775MD9njy475MH933v8f7779cIIYa5tw9YoTR+/Hi8957fc+0OHSUlJVi0aFGy3UhJuO+TA/d78uC+Tx7c98mB+z15cN8nD+773oOIdpq2c+kdwzAMwzAMwzCMCxZKDMMwDMMwDMMwLlgoMQzDMAzDMAzDuGChxDAMwzAMwzAM44KFEsMwDMMwDMMwjAsWSgzDMAzD9Htuu+02zJw5E8ceeywWL16MiooKAIAQAt/97ncxadIkzJw5E+vXr0+ypwzD9Bf6jVAiyT1E9CQRvUZE1yfbJ4ZhGIZhDg9uvPFGfPTRR9iwYQPOPfdc/OhHPwIA/O1vf0NpaSlKS0uxcuVKXHXVVUn2lGGY/kJ/eo7SlQAmCCH+jYgKAOwgog1CiFeS7RjDMAzDMMmloKAg8nNzczOICADw3HPP4fLLLwcRYf78+di3bx/27NmDkSNHJstVhmH6Cf1NKD0AAEKIBiJ6GcBXALBQYhiGYRgGt9xyC373u9+hsLAQr732GgCgvLwcY8eOjewzZswYlJeXs1BiGMaXfiGUiCgDwDEAtmqbNwM4MzkexcczzzyDd999F5WVlcjOzkZ2djZycnKQk5MT+Vl/T0tLS7bLDMMwDHPYcfrpp6OysjJm+yWXXIJFixZh2bJlWLZsGe6++248+OCDuPPOOyGEiNlfZZvcrFy5EitXrgQAfPrpp5g6dWrvNoBhBhA7duxATU1Nst3oU/qFUAIwBEAagCZt234Ag/SdiGgpgKUAMGLECJSUlBwq/6zcdNNNKC0tDbx/eno6MjMzI6+srCxkZGQgKysransQm21bRkaG5z+LgURTU9Nhcy+kEtzvyYP7Pnlw3/ctt956q3G7u98nTJiAH/zgBzjllFMQCoXw0ksvoaurCwBQWlqKHTt2oLGxMeY8U6ZMwX333QcAuOGGG/Dee+/1fiMYZoBw1FFHDfi/d/1FKJlSLJ0AuvUNQoiVAFYCwLx588SiRYv63rMArF27FmvWrMGsWbPQ1taGlpYWtLa2orW1FS0tLZHPtp/1bbW1tVH25uZmdHd3+ztiQGW2cnJykJub6/uufs7Ly4t8dr+ULTMz87AQYiUlJThc7oVUgvs9eXDfJw/u++RQUlKC0aNHY/LkyQCAX/3qV5g7dy4WLVqE5uZmPPjgg/jRj36Ed999F8XFxbjwwguT7DHD9H/y8/MH/N+7/iKU6p33Am1bHoCqJPgSN0OHDkVxcTGOPvroPrtGZ2enUVQF+Vm9mpubo8TY7t27I9uVzVTC4EVaWlpEOJleNpvplZ+fj9zcXIRC/WaxRoZhGOYQcdNNN2Hz5s0IhUI44ogjsGLFCgDA2WefjRdffBGTJk1CTk4OfvOb3yTZU4Zh+gv9QigJIZqJaCeAyQDecDZPAMAPQ3BIT09Henp61Ko/vY0QAm1tbRHh1NTUFPnZtK2pqSnyWf3c1NSEqqoqbNu2LfK5sbExroxYbm4u8vPzI+JJ/7mgoAAFBQVRP+/evRvt7e1R29Q+PB+MYRhmYPD0008btxMRHnrooUPsDcMwA4F+IZQc/gTgIgCPEVEmgDMAfDG5LqUWRBRZjGLo0KG9dl4hBDo6OmIElf5qbGyMvKuX/rmyshKlpaVobGxEQ0MDWlpaAl07JycnSjy5RZb+KiwsjLzrr4KCAhZcDMMwA4ydO3eioaEh5gvIqqoq3HDDDbjrrrswbty4KFtbWxuuueYaXHPNNZgzZ06UTQiB66+/HqeeeirOPffcmOv993//NwoKCvCVr3wlxvb73/8e27dvx+233x5jKykpwapVq3DPPffEVFxs2rQJDz30EO69917k5uZG2crKynDzzTfjpz/9KUaNGhVla21txfXXX4+rr74aM2bMiGnHTTfdhDPPPBOnnHJKjD8/+9nPMHbsWHz5y182tmP//v249tprY2wvv/wy3njjDdx5550xZfsffvghHnnkEdx///3IyMiIsu3cuRP33HMPfvSjH2HIkCFRtv379+O6667D97//fRx11FFRtu7ubtx666246KKLMHfu3Bh/7rrrLsyaNQtLliyJsT3yyCMIhUL4xje+EWP7y1/+gm3btuH662Mf9/nuu+/imWeewd133x0zVqWlpfjFL36Be++9F9nZ2VG22tpa3HXXXbjxxhtjxqq9vR233XYbvva1r8VULqmx+sIXvoBTTz01xp8VK1Zg1KhROO+882JsTzzxBNrb241tfPXVV/H222/HbB+QCCH6xQtANoA/AHjOeV1u23/u3LnicOK1115LtgspRWdnp6ivrxc7d+4Ujz32mHjrrbfE6tWrxVNPPSUeffRRcf/994s777xTXH/99eJb3/qWuPjii8XZZ58tFi5cKGbOnCnGjx8vhgwZIsLhsADg+8rPzxdjxowRM2bMEAsXLhTnnHOOuOyyy8TVV18tbr75ZnHPPfeIlStXiqeeekr8/e9/F+vWrROlpaWipqZGdHZ2Jru7+gS+55MH933y4L5PDn3R7wDEU089FbP9l7/8pQAgbrrpphjbyy+/LACIM844I8a2fft2AUAMGTIkxtbZ2Rn5f+LlCwDR3NwcYxs3bpwAIDZu3BhjO++88wQA8dxzz8XYli9fLgCIO+64I8b27LPPCgDizDPPjLH961//EgBEUVFRjK2hoSFQOzo6OmJsgwYNEgDEjh07YmynnXaaACBeeeWVGNuNN94oAIgVK1bE2P70pz8JAOKb3/xmjO2dd94RAMS0adNibDU1NQKACIfDMbaenp5IO3p6emLsRCQAiLq6uhjb0UcfLQCI9evXx9guu+wyAUD83//9X4ztvvvuEwDEbbfdFmNbtWqV51h9+umnAoCYOHFijK25uTnQWHV1dcXYsrKyBABxuMXaBwOA94RBT/SbjJIQohXAZcn2g+kfhMNhFBUVoaioCBMmTMBJJ52U0HmEU27Y0NCA/fv3R9711759+6J+3rdvHyoqKvDJJ59EPvf09Fivk5+fj0GDBkW9Bg8eHPWzeumfCwoKDosFMxiGYQYi27Zti9m2Y8cOADAui7xlyxYAwO7duz1ttbW1Mba9e/dGfu7o6IjKmuil6Tt27MC0adOijt21axcAmVmZPn16lE0tpb59+/aYa5aVlQEAqqurY2zKf5OvyrZv374Y2549eyI/CyGi/j91dnZGft67dy/GjBkTdWx9fX2kHUcccUSUTY3Dzp07Y65ZV1fnadu8eTMAmQX0asfWrVtjbOo4tVKijj5W+/fvR1FRUZRdOHO5t2/fjkGDohZnjqyAvGPHDsyePTvKpvpOjaeO8t90z6l2lJeXe7bDdB9XVFRE+ayPVXt7e9R++nPIAJk5TRX6jVBimGSglxuOGDEioXMIIdDU1BQlpOrr6yPv7p/r6uqwZcuWyOfW1lbPc6elpUWJqCFDhmD48OEYNmyY53tmZmai3cEwDJNSqOBdp7m52dOmyr5NAbY6zoQuMOrr66P+3+hBqemaCpMYUOLEJHjU/xbTOZV4MrXDJKxMtoaGBhQWFkY+6z5UVVXFCCWFLqjKbjsAACAASURBVEQUKog3tVEF/KY2NjXJp8qY+l4dZ/qfqO/f3d0dVV6v2+rq6qKEUkdHR+Rnkz+qP019qGz6vaBQgtd0TmUzTQFQ7TehC6Wmpibk5+cbfa+rq4sSSomustxfYaHEMH0MEUUWnfD6x2Cjra0tIqDq6upQX1+P2trayLba2tqIraysDB988AGqq6uj/mDrFBQUWIWU/j506NCYenCGYZhUQWUrdNS37SabEjWmwFwXPJ2dnUhPT4981gPT2traKKGkf7vvzuLoQavJH5tQUue1CaWGhoYYm57VcGcidAFQV1cXJZTcNh19XrGpHao/bTZTG1Wfm7Jfpv3dxwEyazR48ODIZ3086urqMHHiRKPv+/fv9zy/KTOk/DEdZ8soqX41Haf76h4r9z3nJZTcfRd0DvhAgYUSwxzmZGVlYeTIkRg5cmTgY4QQaGhoQHV1Naqqqjzfd+7ciXXr1qG6utr4zSEAFBUVRYSTn7gaOnQowmH+s8IwzMDAFHyqINpmMwWT7uBbXxRJt7kfhGvLKOmCzHZNU2bBJiJU20yCT9+/ra0tauEBvU/cxyZqAw4INpsANT1AWAkFUxv1vnGLCJtQctt09PFxX1OV5AHmsVLHmtqosn82m22MAdk/+sIkus0tiHXB577nUqnsDmChxDADEiKKrMo3adIk3/2FENi3b59VVFVXV6O0tBRr165FdXW157yrwYMHY/jw4cjIyMDkyZOjRFZxcTFGjhyJUaNGobi4GFlZWb3ddIZhmF7DVPqsAsV4bfq3+83NzZ5CyR1EJ2rTr2kTUfEe526HLpTcNttxQW1qrrDJph9rGw9bO4Sz8q5egqf3q/u8Npv+2S1c9DlatvGwtTHRMVZ2XSjpfW5rh22sUgEWSgzDgIgiC0e4l1A10dPTg/r6equwKi0txSeffILXX38dNTU1xocVDxo0KCKcRo8ejdGjR0f9PHbsWAwfPpwfMswwTFJIVAx1dHTEzG3Rg1b3t/K2oFW32Y6zBcq2dpgyBOq8zc3N1on+bsGXqBjSfXDburq6Iv8/bBmleNvv7jtdKNnGwyaUemOsEhWDra2t1syY259E28EZJYZhGB9CoRCGDBmCIUOGxDy3QVFSUoJFixYBkHX0NTU1qKysxJ49e1BRUYE9e/ZEfq6oqMArr7yCPXv2xEwUDYfDEdE0ZswYjBkzBmPHjsXYsWMxbtw4jBs3DkOHDuXV/xiG6XVs3+DbglZlz8vL87SZzmmyBT2uN0WEsnV3d1uzLfEIHpvNJiL82mgbD2UzBffuftVXqOuLsQqa/bOV0NmO6+npiRmroALc1ue241IBFkoMw/Q5aWlpGDFiBEaMGIFZs2Z57tfd3Y3q6mqUl5ejrKws6rV7926sW7cOf/nLX2L+UGdlZWHcuHEYP3585HXEEUdEfi4uLuasFMMwcRNvOZdNKAX9lt5WXhdvliJREeEWJ17Bd2+V1yVq0/33y5rZMmO9JXiCZpTc5+zq6op8SRhv6Z3bVy9RG48/QY9LBVgoMQxz2JCWlobi4mIUFxcbn5QOyHry6upq7N69G7t378auXbuwc+dO7Nq1Czt27MD69etjVgbKyMjAhAkTMHHixMhrwoQJOPLII3HkkUfGPLGeYRgGOLh5SIlmhnoraFcZBpMtnnbYAuW+sMUTtOvH+okI98ITQcfDJlwTLVmzCSyTEIlnHpK+XHnQ0rt4BB+X3jEMwxzGEFFkcQgvMdXc3IydO3dix44d2LlzJ7Zv347t27dj27ZtWLt2bcxKRSNHjsTkyZMxadIkTJo0CZMnT8aUKVMwefLkqH+sDMOkDuFw2CqUurq6Ypb5TjQz1BvzXtzH6Y+ISHRRCvc13J/dNttxidr8REQ8gs9r4Yl4xFCigjdo1szWRtPct94ooUv0nksFWCgxDDPgyM3NxbRp02KeYK+or6/HZ599hm3btqG0tBRbt27F1q1b8eKLL0Ye3qcYN24cpk6diunTp2PGjBmYMWMGpk2bFlVSwzDMwKOoqMh31bfW1lZPoZRogJ1oBsMmPmyZiK6uLnR1dUU92iFRMWQ7rjds7qBdCBFXWZo+D6mvs382MWwTH7aMkrpm0LlvvZFRsp0zFWChxDBMyjFo0CDMmzcP8+bNi7E1NTWhtLQUW7ZswebNm7FlyxZ88sknWLFiRdQ/jPHjx0eEk3pNnTrV+JR3hmH6H6FQKFA5l9ezaeItPcvKykJbW5tVmHgFrXl5eZ4Cg4isWQr1s3s+VV5eHpqamoznzc3NRXNzs9FmO87PV5NN+Zmbmxtj6+rqQk9PD9LT09HZ2RnXSoNtbW2RPo9H1AQZ44KCAk+buqbpnPn5+Z5CSe9zt1DKz89HY2Nj3JnK7OxstLa2evZ5fn6+ZztS5X8dCyWGYRiNvLw8zJ49G7Nnz47a3t3dje3bt2PTpk3YuHFj5LV69erIw3rT0tIwefJkzJgxIyoDNXny5Kh/3gzDHP6EQiFPgaECTFMQ6WVra2tDZmYm2tvbjYJHPVfOFpjaAnOvYLewsNBzbk9aWhq6u7uNC08UFBR4Cp7CwkJPoWQ7zs9Xk812nPpcWFiImpoatLe3IycnJ8quhIlJKBQVFaGystIqXL3Eh0nw6P54ZaJM46G30f2A156eHnR2dmLYsGFobm42HltYWIjGxkZj/9ju1YKCAk+b8sfWxlSAhRLDMEwA0tLSInOYvvjFL0a2d3R0oLS0NEo8bdiwAU8//XTk2R/Z2dk49thjMXfuXMydOxfHH388pk6dyivxMcxhDBGhs7MTPT09Ub+rKjD1+ia+qKjIatu7d68xiM7Kyop6uKp+HCAz4bbg2yYiysvLY9qn/KmtrTVec8SIEaioqDC2o6CgwNOWm5trzGK1tbUhFAohJycnYTFUXV0dc05lq6mpQVtbW5RQUm2srKw09l1hYSEqKys9x8pkswke9VndA16+2sSHu/xbt1VUVHiOVVlZmdGmfDH5k5OTg/T0dKM/mZmZyMnJ8WyHnkkdyLBQYhiGOQgyMjIwffp0TJ8+HRdffHFke0tLCz799FP861//wgcffID169fj8ccfx4MPPggAGDx4MBYsWICFCxdiwYIFmDdvXsqUMjBMf0CJI/WtvKKtrQ1jx441ZiJUYLpnzx7Pb/737t1rDL4zMzOtQskmhgoKClBbW2s8rqioCDt37owqS1Nze0aPHo3a2lrPzJB+jaC2rKysSOYsHptqo01ElJWVGW1qpTcvEeElhtScJdNxSrSYbOnp6VbBZxsrNR7ucwJyHLu7u6PGyp3B8bqvbO3Ys2eP5z3nlRlTNlsbUwEWSgzDMH1ATk4O5syZgzlz5uCKK64AIEsotmzZgnfeeQdvvvkm3nzzTfz1r38FIMtqjjvuOCxcuBALFy7ESSedFDXxmGGYQ4t65o6+Wpp63o0taB05cqTRpoJWtZ/bpr4osQkFLxGlMjwmmxIRelman8DQg29ToFxcXOxpy8zM9BRDNptqh3tV0iBleUFEhFcJoddx2dnZyMjI8Jzb5FUKSUTIy8vzFK5+gld9VmOlH2fyVb+v4rHZxJC6H01t1MejoaEBAx0WSgzDMIeIUCiEqVOnYurUqfjqV78KAKiursZbb70VEU733XcffvrTnwIAZsyYERFOCxcuxLhx46IemMgwTN+hZ5QUBxu05ufnG20q2+JVsqau6RYRQUvv1Hm8gm/9WCUGg2SUvIJvrwDbSygFFUPuUkiTGFSo7FyiY+WVbVFCyS8T4yV4i4qKrHOC1GcvUau3UT0ryyZ4hw4dGnNckHb4Zf9YKDEMwzB9zrBhw3D++efj/PPPByBL9tatWxcRTn/84x+xYsUKAMCkSZNw7rnn4pxzzsHnP/95ZGRkJNN1hhnQuINxIFiply1oHTRokKdQ8Moo6aVeVVVVMecE/BdziKcd7qDd5I+XiFLZt0RL7/wWcwDkvFC18IUto9TZ2QkhREIZJV1ExFOypgss23i0tbVBCBGVtfRqh62N6llZfuKciOIStX5tVNd0l0IORFgoMQzDHEbk5OTg5JNPxsknnwxArra3ceNGvP7661i9ejUefvhhPPDAA8jPz8fixYtx7rnn4uyzz8bw4cOT7DnDDCzcQaz+s+nbfWW3ldf5ZSLiDWgTLUuzZZTcx5nO67VgQ3u7XEnOr/Surq4uxhYOh5GdnW3NNql93SsExisGld02VkrUJiKibCsUqmt2dHRExLEpo+Ruv20cbfejlzhV96rtfszMzDRmMdPS0qIWzRjI8JJLDMMwhzFpaWmYNWsWvvOd7+CFF15AbW0tnn/+eVx66aV4++238bWvfQ3FxcVYuHAhVqxYEROAMEyqcOONN2Lq1KmYOXMmLrjgAuzbtw8AsGPHjsjKk8ceeyy+/e1vBzqfKaPkDkx1m1ogwS9LYcu2+JV6mY5Tc2La29sjK236+RpEYCS6YEMic5RsZXk2fxIVg6osLzc3F+FwOO6Mim2Okl/WzJbFswlX23E2MZhImWAQUZ8qiw+xUGIYhulH5ObmYsmSJfj1r3+NsrIyrF+/HnfccQfq6+tx1VVXYeTIkbj99tvx7LPPRsoyGCYVOOOMM7Bx40Z89NFHmDJlCu6+++6I7cgjj8SGDRuwYcOGSCmrHyqjFPTb/SBlUImWbNkCcxW0CiEiz3TT/TYF3zYRYcrgKJTACLIIQDzZjSACI0g7gorBzs5OAPDsV5tQ8LMFKVlz+xNEKMXbRt1Xm3D1y4zZxjEVYKHEMAzTTyEizJ49G7fffjs2btyI9957D1dddRU2btyICy64ACNHjsS1116LzZs3J9tVhulzFi9ejHBYziiYP3/+Qc+fsM1RsgWtXqulBc3EeAXffsfp/un+BCnZCppR6urqghAiUGYs0WyTWrDB7astoxQka2bqmyAZld4SGKpkTT3Y1+RroqV3eXl5xrJN/d5JJGvEGSUWSgzDMAMCIsLcuXPxwAMP4KmnnsILL7yAxYsX45FHHsHUqVOxZMkSlJSURJXmMMxA5bHHHsNZZ50V+bx9+3bMnj0bJ598Mt54441A54h3jpL6OZFMhF+JlN851cIuQTMR8WQwTLZElwBPRPCpn9WKgUEzY0FK1myCJ5Fsk3us3KWQehuDitMg4xjEn94S5+52DHR4MQeGYZgBRjgcxumnn46zzz4be/fuxcMPP4yHHnoIp5xyCubMmYM777wT55xzDi81zvQ7Tj/9dFRWVsZsv+SSS7Bo0SIAwLJlyxAOh3HZZZcBAEaOHIldu3ZhyJAheP/993H++edj06ZNkaBUZ+XKlVi5ciUARCaxx/vtvm3yvF/wmZaW5ls+pa+WFiSjFG+2Rf2cm5uLUCiUsFBqamqKacfgwYN9ywvVedSzq9rb25GRkRGz0p3+s62NNvERpISuubk5xua10IN7PDo7O6NErDqn29eDLb0ztaOrqwtdXV2+86kSFe6DBw9GKsAZJYZhmAHMiBEjcMcdd2DXrl145JFH0NDQgCVLluBzn/sc1q5dm2z3GCYu1qxZg40bN8a8Fi5cCAD47W9/i1WrVuEPf/hDRExkZmZiyJAhAIC5c+fiyCOPxJYtW4znX7p0Kd577z289957kWPiLb0zBZjd3d2RoDWRifXK1tPTEzMPqTeEUlDBF0QMJjoPyZZROpjyQrVgQ6Kld4nOUTL5qo7z8jXerJn7nvMStbb5ZH7ldV5jddVVVyEVYKHEMAyTAmRnZ+Ob3/wmPv74Y6xYsQLbtm3DggULcOWVV0ZWB2OY/szq1auxfPlyPP/881FLF1dXV6O7uxsAsG3bNpSWlmLixIm+57OV3pmeTWMLvvUMRiIiwp1t0a/pV7Jmeh5SkBJCU6Bss6lV/3q79C5IG/3K0twZFXc7dJtasOJg5yiZ/LFllNLT061ZM9M4usWQTfDaxLnfWLlLCJWfqQALJYZhmBQiPT0dV155JUpLS3HDDTfg0UcfxdFHH401a9Yk2zWGOSiuvfZaNDY24owzzohaBvz111/HzJkzMWvWLFx00UVYsWJFoLIh2/Lg2dnZVjHkFbQm8u2+LRMRRETpJWxuf2wCI16hpFaSCyKGurq6YhZssIkhWxu92hEk22Iaq6Ar4imbLiL0kjWvdgQZx3jvK5sYNLXfL8PpzozpK6iqcUwVeI4SwzBMCpKbm4t7770Xl156KS6//HIsXrwYP/7xj3HzzTfz3CWmX7J161bj9gsvvBAXXnhh3OezLQ9uEjxBA3NTBqOjowNZWVno7u6OBN96RitoWZopoLUF37m5uUhLS/Nso1fpXbw2ZbfNQ1IPP/Vqoy3bYhNKpqxRkHEMKlz1B8faFmxwiw+TzSYG/TKVfiKqvr4+5jivxRxM4lRvk2l+30CFM0oMwzApzJw5c/Duu+/i0ksvxa233oqlS5dGypQYJpWxLQ9uEjxBAvMgc0lM85BsmQhbgO03JybeMsFEbX6+Jlp619bWhlAohIyMDGRkZFizRkEzSraxUsf6jUciGSU/MRgkU5nIGPvNmfPyNVXgjBLDMEyKk5ubiyeeeAITJ07EXXfdhZ6eHjz66KOcWWJSGtscJVOA6Q4+W1paYo4ziShdKKlyNDVnRR1rKz0rLCy0ig+bULIJnnhL72w23Z9E5iF5tV/ZVFuClqUFERi20jubqAmaUYqnjUF89cti2rJUqhQvHA7HzDXzamOqwEKJYRiGARHhxz/+MQDgrrvuwrRp03D99dcn2SuGSR5EZC1L8wta6+rqPG1eAa0SSm1tbVEPJvX7dt+WUfIK2r3a0RdCqaenJ1KilogY8hNYqv+CltfZSs9swsS95La7X/3akZ+fn1DpXTgcRlpamu88JNs9Z2uj2hYOhyPzx2wimxdzYBiGYVKSO++8E1/60pdw0003YdOmTcl2h2GSil+AmchcEr/shr5NHZuIiFA2IjJeMxwOIxwOe2YbbJmIIDZ9wQY1d+pg2uGX3bCJCD+B4dUOPdtiOk7fX/3sN46JlN4FEYN+paC2bJO+v8mWyhmlfiGUiKiEiITrNT7ZfjEMwww0QqEQVqxYgYKCAnzve99LtjsMk1RMwWdGRgZCoZBvyVZQgWH6dt/0Db7NZssoqXMHLVkLmm3xs+m+2mzKHjQz5tXGRMYjSGZQv6ZNKPmVrAXJDIbDYYRCIc85QX6iLt6FHkz+BL0fU4V+IZQczgEwW3tVJNcdhmGYgcmwYcPwgx/8AGvWrMH69euT7Q7DJA1TgKmLj0QD046Ojqj5SPpx+v5BStb8ytm82qFnYmzCLVGbvs1m0/s1yLyfeLMtGRkZvplBWyZKP5dJYKj9u7q6IIQIPA/J676y3XNevqpnMMU7D810z5lELWeU+gcfCyE2aK8O/0MYhmGYRPjWt76FjIwMPPHEE8l2hWGShukbfL/A3O/bfXW8Kkdzl0jp++sla4nMUbL5agvMVWYjHqFkExG2LI2pHbY2msrZTO1wlx7aSs+CZlvc4iOoTf2cmZmJtLQ0pKenB84a+YnBrKwsEFFC4jzeNurtSBX6k1BiGIZhDhGFhYU47bTTsGrVqmS7wjBJwxR8+5V6BS3nClLqZApaTWIokbK0IGV5XiJCF4PqgavxZimUTc0BspV6KcHjXgLcLQbjLctT1+zs7IxaSMOrHfGOYzzzqbzEkJ9Nb6PfPCSTOI8n+6eWrk+l0rv+supdK4CHiGgkgGYAy4QQq907EdFSAEsBYMSIESgpKTmkTtpoamo6rPxJJbjvkwP3e/Lorb4fO3Ys/va3v2HVqlWRFbgYO3zfJ4e+6neTULAFpkSE9PR034n1an/9XWUG9P1t2Q01JybIpHu/jJL7YaS2wFxvhwqc09PTA89RSkRg2PpctzU1NRnbGGReWHu7fABuonOU/OZhxSNc4zkuaIZTP1eQxRz8xhEAGhsbB/zfO6tQIvkbO8nZr0oIUdsXThDROAAfG0zlQoijAFwIoB1AD4BLADxPRDOFEJ/qOwshVgJYCQDz5s0TixYt6gt3E6KkpASHkz+pBPd9cuB+Tx691fft7e1YuXIl8vPzcfLJJx+8YykA3/fJoa/63VZ65xXQqjIo/dk0QbIUmZmZMQ+5tWWUOjs7I8cdzGIOJputDEwdo4sIt1DyKr2zZTD8ygu9+jw/Pz9iq6mp8WyH+7hQKIRwOBx1zezs7ITnKJnaEVS49oZNjaMQAkRkFec2AR5kHNX2/Pz8Af/3zrP0johOA7AHwDoA6wFUEVE9Eb1GRD8hotOJKL03nBBC7BJC5BleRzn2FiFEt5D8CcA+yMUdGIZhmD5i8uTJAIBt27Yl2ROGSQ7xzu3RA1rAHER7ZZT8sk22Ein1cNpEM0rxZDfU9kTK0uLNYPi1w68U0k8MKlFrakeic5Rs5YV+86mULdGSPb0/g45HPG10Z5RSAdscpe8DOEkIUSSEyAYwCsC/AXgRwNEA/hdSPP2CiIb1lYMkcQuyOgBdfXVNhmEYBhg1ahQAoLy8PMmeMExySDQwTzT4th1nWzzAtGBBUFHnl1Fytz8jIyNyPd2P3ii9Uw9WDZoZ8ys9swkT/Zxe/XqwpXcmUevnT7ztcAuleP2JZ46SO6OUCtiE0h+EEJGvEYUQe4UQa4QQ9wohLgAwDMD5AAYBeIeIJvaRj7MAbCaiLAAgoiMBjAHAM4wZhmH6kKysLAwdOhRlZWXJdoVhkoKf+LDNl1H76+9Bg9YgpXfu4NtWXucXfNuEknu1NL+s2cEG37qv6qG1iQgMr7I0dc14sn/xiChd8JkyOF7jETRrZBsrt6/Kj3iEezxzlFIBzzlKQojf2Q4UQvQA+AeAfzhlej8GcFnvugcAqASwEcDfiGgHnMyWEOKzPrgWwzAMozF06FDU1dUl2w2GSQqmgHbQoEFRNn1OiB7sAtFBdDgcjpkTo++jAmyTLSsrK+ZhpH5CKWi2JUg5V0dHRyRItwXm6nyJlOWZhIJfJsbdRpuodS88cTDt8Mvwuf3RjzO1w+2P/jfXlOFT95xf6Z07axZEDAYVvKlCr6x6J4R4hYi+2hvnMpy7EsB5fXFuhmEYxk5BQQEaGhqS7QbDJIUgJVvqgbB+pXdeQaseYKelpcUcp45xl9e5g2996eyenh50dnZaxZCtnM1Ulqb6wqtkLdF5SCYx5JVtiqdMsK2tLbJap97nSij5Zf/Ug2pNtqCCz1Z619zcDEBmzbq7uwOXEAIH7jm/0ju/sYo3i8mldx4Q0XIi+oyI3iSiB4joy0R0JBFdre32kz7ykWEYhkkShYWFLJSYlMW0mIFXgO0XfAeZSxJPWZqpnMsWmAedv+QXfPuVrKWnp1szEV7Bt0koBMkoucWg/lynRMZDnVNf6MGUiUlPT49aXc6WGbNlm9zjGCTDZxoPU4bL3X5Tn9vuR7UyYCqX3gV94OzXAfwAwAoA3QCuB/AJgF+pHYQQn/S6dwzDMExS4YwSk8qYBIZfgG2ymb7dN4mIjIyMmOP08/llKYIILHc7MjMPPA9JndcmhvyCdr+V5FRmzNbGIOLD5I/eDr9SSC+BYcvEuNsRVJzaBJ+fqI1XuJrEoKmNalEOv/I6232VCgQtvfszgDeFEBUAngAAIsoBcEJfOcYwDMMkHxZKTCoTpAxKDyILCwsBBPt2X7elpaVF5ifp10w02xJPJkb3Jy8vz1pel6gtHjHkN7dH2UxLbqtj0tPTA5dCmsbRb/6SqR02m20xhyALPdgEeJDSO5vg9ZtrZRurVCBoRun7AH7mLNoAIPJso9f6xi2GYRjmcCArKwutra3JdoNhkoIKzE3lXPGWOgXJbii7LWj1EhF+pV56WZpJ1MSTNTK1MUhZXm9kW2w23ddE2+gnsOLxJ0h5oc3m52u8izmY2khEyMjICNQOt6hLBYJmlP4OmT262Fl57nUA7wNYL4R4q498YxiGYZJMZmYmOjo6ku0GwySFeBZs8JsTE8Sm7F6BadBMhCnYVWVpaWlpUQs9HKwYCprdcPvjJRRMGYzs7OyIzVZeGI+vgwcP9h0Pk8BKT0+PLLphakfQrFmQ8kKVNbOV0AUpvbP1TTzj4balAkEzSsMADIFcmvs7AHYBOBfA833kF8MwDHMYoAcmDJNq6MFnV1dXVNAaJDANOkcpnqA1yDwkU9CutpvK4HR/eqP0zr2UuSovTE9PjxzrJYaCZmIOJqMUVPCGQqFIGZ/axz1WicztCbLQgxDCKIb1awVdzMFmM/Wrmr/k18ZUIKhQWg5gnhCiUgjxghDidiHEF4QQQ/rSOYZhGCa5qCWHVckOwxyu3HjjjZg6dSpmzpyJCy64APv27YvY7r77bkyaNAlHHXUUXnrppcDn1INov6DVLzANkolRdr8SOi+bLROltpvEh9vXROf2eGXGbAIj3jYGEYN+7TAJDJuvXgLDb1EKv/JCXQy5x6Ojo8NXDPbGHCVl121ebXT3eSoQVCjNBPBNIvopEU3sS4cYhmGYwwf1z7SzszPJnjCMnTPOOAMbN27ERx99hClTpuDuu+8GAHz88cd48sknsWnTJqxevRpXX301uru7A53TlolJtPROrWznJTDcwbdaolnZgpTl2cSQl8AwBcqmADueEsKgNreviYoPdT73s4niySj5CT6/dqismV8bVSmkVwmhfs/1xap3tnlxQbNmqUBQobQYQBeAswFsIaJyInqeiH7Yd64xDMMwyUafo8EwhzOLFy+OCIr58+ejrKwMAPDcc8/hkksuQWZmJiZMmIBJkybhn//8Z6Bz2jIxQbJGJoERCoViJs/bMhiZmZlRZVCJCAybUDIJjESzNLZyrqBZCr/ywo6ODvT09FjFYBBRaxMRNuHq10Y1VqZ26OWFbl9Nok4tpGM6Tgmtgy099GqHqf3udqQCQYXSuUKIy4QQMwEUArgMwJsAjukzzxiGYZik4/72m2H6A4899hjOOussAEB5eTnGjh0bsY0ZMwblEFTimgAAIABJREFU5eWBzhNUYAghfLMU7m/w1e9Ua2trVOBpy2DYRIRt0r1NROhBdJCyPGUzZca82uiXpXFf06sdJl9NIsIva6b3uZo7ZcuoBMm2+B2n+xM0a5TIcSZx7l7ZznTPBb1XiSiSNUsFAq16J4Qo1X5uBlDivBiGYZgBjDvAYJhkcvrpp6OysjJm+yWXXIJFixYBAJYtW4ZwOIzLLrsMAIzz69S3/m5WrlyJlStXAgCqq6ujAlN9IQIgOmjt7OyEECJQJkYda7OpZ5clWrJmm7+jP6/J3Q5bYO72x50Za2trw5AhB6au+wmMuro6AAeyO7asmakU0JZt8csoHUyZoFfJmikTowsML19tfR6kjUEynOpYXdQVFRUZ2+iX4dSzZqlAIKFERNcCuADAHgDvAVgLYAOAxUKIVX3nHsMwDJNM1LfG69evR11dHWbMmJFkj5hUZs2aNcbtJSUlAIDf/va3WLVqFV555ZVIMDdmzBjs3r07sm9ZWRlGjRplPM/SpUuxdOlSAMC8efOivihQAsMdtOrZDa9v8P0yQ0OHDo3YsrKyUFVVFbF5fbuvfDI9qNYWYKulrW1ZmkRKtuKxubNfQbNmQQSGLqJMbezs7ER3d3dURsUtaryyX7ZMjN+8H6922ARPPMeFw2GkpaUF6nNTO5qamjyP82p/KhC09O4uAC8B+BTA5yCXBW8F8Gwf+cUwDMMcBqigasmSJTjmGK62Zg5fVq9ejeXLl+P5559HTk5OZPt5552HJ598Eu3t7di+fTtKS0tx/PHHBzqn7dt9PaB129SxtsDUKzB3B7R6W/yyNGqOkZdQ0kWEOm/QTIwQAh0dHZ5BtC2j4ld6Z8pgmJbHtvW5aaxMbXSLD3e/uvvcT2AEbaNb1Hr5YxPgus20sILejpaWlrhKOm0ZJa/jUoGgD5x9EcAKIUSD2kBEUwAs6BOvGIZhmMMCJZQY5nDn2muvRXt7O8444wwAckGHFStWYPr06fjyl7+MadOmIRwO46GHHgp8X+sBrcpQ2QJzU2AqhEBLS4tn8N3W1mYVUV6ZD1NgDviXpSncgs8WmJtElPo5SEbJtgiCVzs6OjqM5YVevtpElG2BBLc/JjGkjmltbcWwYcMiNpvAcAssUxv95ijZxLlNKKmsmU3wJZL9S8WMUlChdA2AZUT0KyHEFgBw3rf0mWcMwzBM0mGhxPQXtm7d6mm75ZZbcMstt8R9TpvACCKUVNDa09MTV6lXIhmMoNkWNWfLJpT0cq5QKGS0uX21zUMylRfa5vbo/qSlpUUtjx6kjS0tLZ62IBkld5/X19dHbPFk+Lq7u9Hd3W0VtfGUFwYVSjbhro63lRAWFBR4HscZJTP/A+B8AFcS0ZsAXgfwPoD1QohgS8cwDMMw/Q4WSkwqowftboGhiwh3YK6ODVKWZwtaW1paUFhYGHVOVV5nytKo83nN0Wlra4s8QyqIiCCiSDtMAsOW4XLb4lkRT/fHr41BhKs+VjYR0dnZia6ursAZvqCCz3Sc8tW2PLg6t96OcDhsFUp+96Nqh61M0DafjDNKZo4DMA9ABoC5AE4AcCmASQD4vyjDMMwAhYUSk8roAW1XVxeAA8GnLiJsYshks2WU3AFtcXFxlA04EES7g2TlqzqnvpKcux0qM2IrvdPbcTCld342r3Z4iUG/TIx7jpJ+TS/BZxsrvwyfmk+ViOBT/aoWzjG1w9R3zc3NAIDc3NwYm1f7la9+GSWT+BJCxNyrqUDQxRxWAOgWQrwjhHhICHG5EOIoAEP8DmQYhmH6L26hdOWVV+LTTz9NkjcMc2gJWl5ny1LYgnZb0KoCU69MhF8mxuu4eJbV1tthE1FdXV3o6emJSyipzJhXCaFJDNpK79LT00FE1oyK3xwl21gB5jljQgh0dnZa2+E3ju7l0XWbV5+rNprmIdkEn2mM/VYhVA+3TcXSu6BCqQ3AfxDRlUQUGREhxL6+cYthGIY5HHALpZUrV+Loo49OkjcMc2gJugiAzWYL2tX8JXcgLIRAV1eXcQU25Y9t3otXYG5qRzgcjggM0zwkd+mdqYTOZlPXtYmheDMxpvlLRBRoPGziw29RjoMRrrb5ZH5ZM1M7VEbJJOpsWUzbOd0PTtZ9Nd1XqUBQoXQjgKMALAdQQ0RvEdEvieiKvnONYRiGSTZcesekMgeTUQpSlucVtKprmpZ4VjZTiZTuq+2c6jlPQLTAsImIRG3qurbyOi+bX0bJHbT7ZVQSEbzqnKZFOXRfm5ubo8rggmaUmpubkZeX59lGr35VAtxUemcS5+42us+pskbudtgEXyrgKZSI6Evax/OEEAsADIKco/QI5Pyma/vWPYZhGCaZmITS6NGjk+AJwxx61CIAKsDUBQYQW14X7xwlU9BqEwN68G1actzrOFWWpmw5OTmRUi/dH68A22bzC8wB8zN9lK/udugZlZaWlriCdltZWjzjEU/WUPkaj8CwCSz3cXrWTNn18bC10X1/2DJKgCwtdPc5Z5S8uUz9IIT4p/MuhBCfCCEeF0JcLYQ4rs89ZBiGYZKGSSiVl5fj97//fRK8YZhDi7ucKzs7O0Zg+M1tCbKwgFfQalqOGpBBdFNTk2eA7Q5o3QtPuINddzmXO8NhsymR4GVrb29HV1eXMWvS3t6OpqYmz4yKl4jwCtptWRO3ULBladzj0dXVhaamphib7qt7PIKWF9qEki1r5rWYQ1DBZxLnajl3zigdwCaUNhPRT4mI6y4YhmFSFK/Su8svv/wQe8IwyUHPNvgF5rbFHGzzRUxB9P79+43HAQcyGLrAcAssW7bFFHzrgsdUzmWzKRHhtgkhIs8gMvnqJxS8xIdpbo/uT2trKzIzMxEKhYw2/Tomm0mc7tsnp+WbRG1LSwtaW1sDCx5b+/U5Y7Z7zraYQ5DFLEz3XG1tLQBwRknDJpSWAZgN4DMiuoOIZttORET39KpnDMMwTNKxzVEaP3481qxZcwi9YZhDjzuj5GUD4i9L8xIfACICI2iArX5ubm729VUPrnVbU1MT0tLSjOWFSgy5BY9Xtkn56pelsGWNbGLQXSKm+2oTg2o8TO3wErWAfTyUzUtguLNmekmnu/16FtN9nO5rc3Mz0tPTkZ6e7tkOUxbTNlYmoeQWrm5/BjqeQkkI0SyE+AKA70HOS3qLiOqIaDUR3UVEFxPRiUQ0h4i+DeCYQ+U0wzAMc2iwCaWdO3fiuuuuO4TeMMyhx08oqW/aQ6FQVNAaZGGBxsZGALEla8CB4Ntr1Tt3tiU/Px8A0NTUFDPvx+2rLaOUl5cXVV6YlZWF1tbWhLJNAFBTU+Npa2hoQGdnp6cYcosI1abm5mariDCJQVuf+5WsAXahZMvEmASGLobcbdTbYWuj1xj73XNeghcwi1rVjn379qG7uzvlhJLvA2eFEM8CeJaIsiAfNHs8gDkAlkA+R6kLwDsAruxDPxmGYZgk4LfqnV7awjADERVEu7MbwAExpAJat8DwWwRABdimoNUWmDc0NMTM+1FCqbGxEU1NTZHPJn9Mgs8kTJRvTU1NxkxEXl4empubjeJD/VxZWelp27t3L4DowFzZmpqaYoRCWloacnJyIm0cMiT6cZ5+87CqqqrQ1NSEcDgclTXLzMxEZ2encR6SW/Dp/apEhGkc9QyfX2bI3efZ2dloaWmJ+7ggpaANDQ0xvtruR3WNqqqqGFsq4CuUFEKINgD/cF4MwzBMCuAnlD788EMsWLAAb7311iHyiGEOLboY8hIftoBWBd/6sSr4VEIhaBmUTWColeyUiLCJOneAnZ+fHxEmJltDQ4OxLC8/Px9CiEgQbcpw7dmzx9dmEnwNDQ1GMZCfnx9p4xFHHBFly8rKQn19vbH9ehtNohYwiyG3LehYFRQUAJBjJYSIS/AUFBT4Cl5b1lAJV1Ofm+45t+AztaOioiLmuFSAvwpkGIZhPAnyHKW1a9di9uzZkW8qGWYgoQLTxsZGz2DXy9bT04P6+nqEQqGoyfMq+DQJBbVfdXU1gOig3X2ce26Lyv7YAuzGxsYYmxIfpqyZbsvNzY0SGAcrhkzH5eTkIBQKoa6uDp2dnVahZBsPrzZ6HQcc6HOTiLCJKJPAsLVfHWtaVhyQ4+wlFHWBZRJKnZ2d2L9/P3Jzc6My/jbBYyuT9GvHQIeFEsMwDONJ0AfObtiwAa+99lofe8Mwhx59MQNbRsltUwF2dXU18vPzowSGLWjVjwOiA3O/oDU/Px/19fVoa2uLS0SowNyUUSooKEB7ezvq6+tjzmkTfMqmSu9MWQovwZefn29tYxChZPJVtdFLKNXU1CAcDhsfgGsTUSahpESlVyYmKysLLS0txkUp9Cyel8AyHaeLOpNQBOzi3JZRYqFkgYi+2sd+MAzDMIchPAeJSXVUQOuVNVKlTrbg2xTsA8G+3XfPFyEio8BQ+9oyGF6izp01MvlaWVlptYVCoSiBESTbZJq/pOwmgaX76lfuaGpjW1ubUfDpfe4WtWqejyov1M+rbEpE6b6GQiHk5eVZhZJptTwguvTOVrJnyigpf7xEbUVFBdLT041i0LSYg20cU4Gg/wH/n3sDEV1PRPx4doZhmAGMHjD4cf7552P58uV96A3DHHr0TIQ7+M7Ozo4sZuC2qSB27969xgwOIIPP9PT0qHk/KhBVQkE/1p1tMYkIP6EUb7ZFD5T9bLayPP3YjIwMZGRkJNSO/Pz8SFlevFkzr3ao65tsRUVFAICysrIYX5VNiSGT4PFqY1ZWljGDo9roNR76A2dN5wQOZDFN7a+oqPBsv2nuW2ZmJjIyMniOkgkiepGIlgEoJKIhLvNjAH7dW44QUQERPUhEMf9liehYIlpFRE8Q0StENL63rsswDMN4E49QAoB77uFH6jEDi6KiIuzbt88YtBYVFaGrqwtVVVWeAfbu3butGSXbcUBsYKoH37ZMjCmjUlNTg46ODqOtq6sLtbW1CWWU9uzZYxQJ6jggfjEURER5Zca8xCBg7/OysrKYc+q27OxshMMH1kHLy8tDKBRCeXl53G20CaWCggLU19ejtbU15ricnBx0dXWhpqYGhYWFUTb1uby83Fp659V+WztYKJn5JYCjAMwCUElEnxDRo0R0DYBLAJzUG04Q0YUA/gzg6wDSXLZMAM8C+C8hxFcAlAD4fW9cl2EYhrETb+ldXV0dXnrppT7yhmEOPUVFRZGVy7yC6IqKirhsKmg3CaycnByEw2GrGDB9869sprk0ADBo0KBIsGvzx0vwVFdXx2VT16+uro5ZzEIda1o8wM+Wn59vXMYakH3e2tqKhoYGT6FgKr1TY1VVVRVznBIftbW1MccREYqKijyXzi4oKMC+ffuMtvz8/Igw8Zoz5tVGQN5XbqE0aNAgz3aosdq3b1/MOdV5qqqqYjKcfv4MdKz/AYUQq4UQFwG4GcBgyIfP7gZwNoBvAbivl/xIA/AFAOsMtjOlK2KT8/nPABYS0RGGfRmGYZheJN6MEgCceeaZWLZsWR94wzCHHhWYAt5Bq5/NK2g1HaeCb0CWPekPsXUfq1/DfS6TUPLyR//sPmeitlAoFBE5hYWFMX9LeuOa8bRR7ze3+LKNY0FBQcR3k0hQxxJR1DX8fB08eLDR73iO8xJKXu1QuNsfDocj1xw0aFDMWNnu14FOoK8KhRD3CyEahRAvCSHuFEKcI4SYI4T4SW84IYR4SgghAAiDeR6ArdrnrQB6AEzvjWszDMMw3iQilADg1ltvjTygkmH6MzbBYwvMbcG3/tkd7OrHmoJS/Tq2ANsdtAcVEXogHs/13DbdbrP5CQz3saaV9RS2sbKJL9txoVAoch339YAD41dUVBSTgdf3d7dDf1iu22YbD33feMbYb6xUH7j7Rj82HA6zUDJBREOJ6GwimktEYX1737kWYTiAJvVBCNEJoAVA7CgzDMMwvUqiQgmQAc0//sHPKGf6N3rgOHTo0MA2PRh129LS0iLf6usBs/u87uOAA8Fxenp6zKpnejBs88d9zUTFUHZ2duQRAqbgW/lqs8UrMHRbPONhO04Xq8OGDYvx1TYeymZro54lVOgCyJY1swklW0bJ3Q61KMPBtGPIkCEH9T+hPxL23wUA8A6AdAB5ALKI6H0A7wOYA+Bkv4OJaByAjw2mciHEUT6Hmx7i0Qmg23CdpQCWAsCIESNQUlLi59oho6mp6bDyJ5Xgvk8O3O/Jozf7XtXQJ8rXv/513H///cZvzQcifN8nh6amJtxxxx14/PHHsWvXLjz88MM46igZXlRWVuKKK67A2LFjAQDTpk3DddddF/jcehDrDj5tNj0wHz58uPG8zc3N1qDVdJwKZE0lUiNGjIj8bBNK7vPaysBsNiLC4MGDUV1dbQyw1bGJ2oBYMVBcXBz5OdE2uoViOBxGTk4OWlpajEJJ+WATUbYszaBBg2KeSWfLKOmf3UJJ/+xuo34/mu6doUOHoqKiwirO3dfTt7ltjY2NA/7vXVChtFsIcQoAENEkAAucV6CMkhBiF6TISoR6ABNc23IBVBmusxLASgCYN2+eWLRoUYKX7H1KSkpwOPmTSnDfJwfu9+TRm32/bdu2gz5++fLlWLt2ba/4c7jD931yKCkpwcUXX4xLL70UV155JebOnYt58+YBAHbs2IHJkydj48aNCZ1bD451IQJEB6Num746mtsGAGPHjkV5eXlU4K9Q20zHTZggQyJTQDtu3LjIz+5sk60d6pwAMGbMmCibLviU2NQZPnw4qqurjbYJEybgnXfeifJLMXHiRAAwtl/ZgNgFZfRzudsxevSBp9a4z6t/1vdTKCEzcuTIGFtxcTE++ugjo01tM7XxyCOPBICYeWZA9L3jFoPqOAA44ojoKfl6m91jpd9zJl8HDx6MioqKmOP0c40fP96zHe7+zs/PH/B/74IuZ/RzIvoyAAghtgohfiuEWCqEOBTzhDb9//buPD6q8u7//+uTfSOAoKyCqKiRHcKmvSu0uGKtaFu33j97W4v9WWzVau3dW3trtbfVutVqte5b0ba4UURFyiKgtAYUQaCAgCyCYohiCAkZ8vn+MZN0GCZhlJk5Wd7Px2MemXOdM+e8cxEy+cy5znWAvvULkXs3ZQFL0nBsEZE2LRnDLN58803ef//9JKQRaVxJSUnDWaRk6tfv33/qxP6BHf0Jfv/+/fd57THHHAPAwIED91lX/8dnvHWDBw9udJ/1efr27dvoutg/rgEGDBjQ8DzekLX6/+v1maPVZ4yXtb5t0KBBjeaJ933U54n3b1a/zxEjRuyzrqSkpCFz/Q1f60UXa0ceeeRe68ysIc+QIUP22e/Xv/51AIYPH77Puvq2eHlGjhwJxP/+648zduzYfdbV72v06NH7/J494ogjyMnJoUOHDvsUxMXFxQ1FTbx+rf8+Ro0atc+6E04IDwI77rh9J60ePXr0Xt9PvKxf+cpX9lnX6rn7fh/AVOBl4CnCQ+1yE3ndF30QHuL3+5i2TsDnwIjI8iRgyv72NWzYMG9OZs+eHXSENkt9Hwz1e3CS2ffr1q2rn2jngB9tgX7ugxHd7yeccIK/9dZbDcvr1q3zgoICHzx4sH/1q1/1119/PaF9Rv8d8fTTT/tzzz0Xd7uZM2f6ww8/HHfdO++843fccYfX1dXts279+vV+4403enV19T7rPvvsM7/55pu9vLx8n3W1tbV+xx13+Nq1a+Me8/777/elS5fGXTd16lSfO3du3HXz58/3F198Me66FStW+BNPPBF33datW/3+++/3PXv27LOusrLS77vvPt+5c+c+60KhkD/yyCP+8ccfx93vlClTfN26dXHXvfLKK/7ee+/FXbd48WJ/8803465buXKlz5w5M+66jz76yKdNmxb332rnzp3+wgsveCgUivt9vPDCC15ZWbnPurq6Op8+fbpv37497jHnzZvnGzdujLvu3Xff9VWrVsVdt3Hjxkb/jcvLy72srCzuusrKSp8/f37cdaFQyOfPnx/3e6yrq/MFCxZ4TU3NXu3N7W/tAwGUeZx6wsLrmmZmcyJFzEBgONAeWAEsdvf/+tJV2r/3fz4wHjgP2AE8Azzl7vMj608DrgVWAQXApe7+SVP7LC0t9bKysgONljQajhEc9X0w1O/BSWbfb9iwIe6n01/Gxo0b2bRpU9xPOlsL/dyn1rhx4xpuYBrt3HPP5dprrwVgzJgx3HbbbQ1D72pqaqisrKRTp04sWrSIM888k/feey/uDGYPPPAADzzwAADLli2L+4l9c7Ft27a418yk2+eff77PDGvQfPI1pbln3F++xvo+XVauXEllZeX+N2wBzGyRu5fGtid6jdKZ7v5p1M76ACMJT919wNx9MjAZuKCR9dOB6ck4loiIJC6ZMxwdeeSR1NTUkMgHdCLxzJw5M257UxeU5+bmkpubC8CwYcM44ogjWLVqVUMhFW3ixIlMnDgRgNLSUprTB66xmku+xj4caC75mtLcM+4vX9AfzMT7P9TaJHqN0uFm9nMzGwDg7uvc/Rl3vyqF2UREJGDJLJRqamoAmD17NsOHD+ezzz5L2r5FGrNt2zb27AlPlLt27VpWr16912QBIiKNSbRQ+hMwBJhmZn0BzOwuM2sb872KiLRRsTNOJcPXvvY1ysrKePnll9mxYwd1dXVJP4a0Pc8//zw9e/bkzTffZPz48Zx88skAvP766wwcOJBBgwbxrW99i/vvvz/ujHEiIrESHXr3urtfYmZDgYuA/waeBO4Avp+qcCIiEqxU3lzwk08+aZgWd/HixXFnohJJ1IQJE5gwYcI+7WeffTZnn332F95f/RC85kr5Dlxzz6h8wUv0o8JcM+vn7ouBgwHcfRHhs0wiItJKpbJQuuyyyxqet4Wx7tKyNPc/ApXvwDX3jMoXvEQLpRuAF8zsD8DBZtbbzMYB+96GWEREWo1UFkrR6urqWLVqVVqOJSIikoiECiV3XwccD9QBI4B1hO+p9LPURRMRkaCl4hqlxqTiZqEisS666CIOOeSQvab+vu666xg4cCCDBw/mpJNO4sMPP4z72szMTAYPHszgwYM544wzml2+DRs2cNJJJ1FSUsKxxx7L+vXrm02+2bNnN/Td4MGDycvL44UXXkh6vgPJCPCzn/2Mfv36UVJSwo9//OOUzNJ5IPmuueYa+vfvT//+/Zk1a1bSszWWr95tt92GmfHJJ/Hv0vP444/Tt29f+vbty+OPP56SfGkV7+ZK+3sAeV/mdel8NLebYOkmhMFR3wdD/R6cZPb9tm3bknbD2UQe9957b9KyB0E/98H4Iv0+d+5cX7Rokffr16+h7bPPPmt4/rvf/c4vueSSuK8tLCz80hnTke+EE07wGTNmuLv7559/HvdGr8nON3v27ITz1SsvL/eOHTumJF+8jO6J9eGCBQv8uOOO81Ao5KFQyEeNGpWS/9NfNt+0adN83LhxXltb65WVlX7UUUft9bpU5nN337Bhg5900kneq1cv37Zt2z6vKy8v9z59+nh5eblv377d+/Tp0+jNdpsbGrnhbEIfFZrZSDO7zswuNrNBQE2kveQA6zQREWnG0jX0rt6PfvQj3n///bQeU9qWr371q/vMehd989mdO3em/ec+2pfNt3z5ckKhECeeeCIARUVFFBQUNJt80aZMmcKpp56aknwHktHMqK6uZvfu3dTU1FBbW0uXLl2aTb7ly5dzwgknkJWVRWFhIUcccQSvvPJKWvIBXHHFFdx6662N/vu++uqrnHjiiRx00EF07NiRE088MSX50inRWe9eAv4J5AC/AXLMbAnQE+iTomwiIhKwIP5gPPLII3VTWkm7//mf/+GJJ56gffv2zJ49O+421dXVlJaWkpWVxc9//nPOPPPMZpNv1apVdOjQgbPOOot169Yxbtw4fvOb35CZmdks8kV75plnuPLKK9OSK9r+Mo4ePZqxY8fSrVs33J1JkyZRUpK+cwL7yzdo0CBuuOEGrrzySqqqqnjnnXfYuHFjWrJNnTqVHj16MGjQoEa32bx5M4ceemjDcs+ePdm8eXM64qVMooPPl7n7ae4+zt07AyMJTw/+euqiiYhI0NJ5jVI0M+P2228P5NjSNv36179m48aNXHDBBdxzzz1xt9mwYQNlZWVMnjyZyy+/PK1nP/eXLxQKMW/ePG677Tbeeust1q5dy2OPPdZs8tXbsmULS5cubbjPVTrtL+OaNWtYsWIFmzZtYvPmzcyaNYvXX0/fn7r7y3fSSSdx2mmncdxxx3Heeedx7LHHkpWV6DmPL6+qqopf//rX/OpXv2pyu3gfcAV5djYZEn0HvNzMfmVm2QDuvsLdH3D3C1OYTUREAhbkm9xVV12FmTFt2rTAMkjbc/755/Pss8/GXde9e3cADj/8cMaMGcPbb7+dzmhA4/l69uzJkCFDOPzww8nKyuLMM89k8eLFzSZfvb/85S9MmDCB7OzsNKbaW2MZn3/+eUaNGkVRURFFRUWceuqpLFy4sNnkg/BZp3feeYfXXnsNd6dv374pz/P++++zbt06Bg0axGGHHcamTZsYOnQoW7du3Wu7nj177nWGa9OmTQ3/Z1qqRAulrwMXACvM7JdmNsbMivf3IhERadmaw6eB3/jGNxg8eDD33ntv0FGklVq9enXD86lTp3LMMcfss01FRQU1NTVA+GbJCxYs4Nhjj202+YYPH05FRQXbtm0DYNasWc0qX72nn36a8847Lx2x9pJIxl69ejF37lxCoRC1tbXMnTs3bUPvEsm3Z88eysvLAXj33XdZu3YtJ510UsqzDRgwgI8//pj169ezfv16evbsyeLFi+natete25188snMmDGDiooKKioqmDFjRiBnDpMq3gwPsQ+gArgSuAb4K7CB8FThqxN5fRAPzXon9dT3wVC/ByeZfb9jx460znqXyOO2225L2veXbPq5D8YX6fdzzz3Xu3bt6llZWd6jRw9/6KGH/KzFDLGyAAAgAElEQVSzzvJ+/fr5gAED/PTTT/dNmza5u/tbb73l3//+9909PCNa//79feDAgd6/f39/6KGHUvGtfOl87u4zZszwAQMGeP/+/f3CCy/0mpqalOe76qqrEs63bt067969u+/ZsyfpuZrKmGgfhkIhnzhxoh9zzDFeUlLiV1xxRbPKt2vXLi8pKfGSkhIfOXKkP/jgg2nLF613794Ns97F/hs//PDDfsQRR/gRRxzhjzzySErypQKNzHpnnsAFs2b2KHCFu38a1dYdGOHuqZkE/wCVlpZ6WVlZ0DEazJkzhzFjxgQdo01S3wdD/R6cZPb9zp07KSoqSsq+ku2SSy7h/vvvDzrGXvRzHwz1e3DU98FR3yePmS1y99LY9kSH3j0OXBM9Hbi7f9hciyQREUmO5jD0rjF//OMf6datG5dddhnLly8POo6IiLQyiRZKs4DLgHfNbJ6Z/drMzjKz3inMJiIiAWvOhRLA1q1bueeee+jXr18g1z2IiEjrlWihdBHQCRgFTAZ6ADcBuiugiEgr1twLpWjPPPMMZkanTp1YtWpV0HFERKSFS6hQcvfH3L3G3Re5+33u/j13PxbomOJ8IiISoKDuo3Qgtm/fztFHH83zzz8fdBQREWnBEnoHNLOHzazazP5kZhmRtsHu/nlq44mISJBa0hmlWGeddRYXXXRR0DFERKSFSvSjwj7AEGA74fspAZxvZt9MSSoREWkWWnKhBPDoo49yxRVXBB1DRERaoEQLpQ/cfQVwNfDVSNt1wFUpSSUiIs1CSy+UAO666y4qKyuDjiEiIi1MooVSmZk9ARwEhADcvQbo2uSrRESkRWuJ1yjFc+KJJwYdQUREWpisRDZy93vNrCOwGqgws3zgcOBfqQwnIiLBag1nlAAWLlzInj17ePDBBzEzfvCDH7SaIlBERFIjoUIJwN1vMrOHgG8SvmbpH8ATqQomIiKSTDfddBPXX389AO3bt2fs2LF89NFHDBw4MNhgIiLSLCVUKJnZZGCJu98C/DG1kURERJKvvkgCqKiooKSkhIqKCtydzz77jNzcXPLy8oILKCIizUqi4w56ATOjG8zsZjMrSX4kERGR1Lr00kupqKgA4J577qFDhw6MGjUq4FQiItKcJFoorXD3RTFttwN3JzmPiIhIWl122WUALFmyBDPjwQcfDDiRiIg0B4kWSuVm9kszy61vcPdPgCNTE0tERCQYEydOxMwwM9avX8/69euDjiQiIgFIdDKHXwL3ARvMbA6wDugLbE1RLhERkcD16dMHgH/+858sW7aM008/nTVr1jB69OiAk4mISKolOj34buD7kWuSzgV6AyuASSnMJiIi0iyMGDFir+WZM2fSp08fQqEQRx11VECpREQklRKd9a7A3avcfQXwvynOJCIi0qxNmjSJlStXArBnzx5uvPFGJk3SZ4ciIq1JotcozTGzZWb2sJlNNLOBZpZpZhOSFcTMis3sHjO7Jc46j3msT9ZxRUREvqj6IgkgMzOT66+/njPOOIM5c+ZgZgwbNoyPP/6YzMxMvv3tb1NXV8fVV1/NT37yE2pra1m6dClXXnkloVCIDz/8kD//+c9s2bKF3bt3s3DhQsrLywFYs2YNu3btAmDXrl1s37694bh1dXXp/aZFRNqYRAul9cCjwIfA+cDbwHbgr8kIYWZnA1OAi4DMOJtsAYZEPU5LxnFFRESS5Y033uCGG24AYPHixfTu3Zu6ujqmTJnC0UcfzW233cbdd99Nr169GDhwIHfeeScDBw6kR48enHvuuXTv3p2SkhJGjx5N586dee655+jbty8FBQU89NBDFBQU0KlTJyZPnsz48ePJzMzkjDPOYOrUqZgZRx99NOvXr2fo0KEMGzaM1atXc//99zNw4EBmzJjBkiVLOOWUU3jkkUeoqanh7rvv5he/+AW7du1i4cKF3HzzzfzrX/8iFArx2GOPMW/ePNyd5cuXM2fOHHbu3MmuXbtYtGgRW7eGL1HesmULmzdvBiAUCrFjxw52794NgLuzZ8+eYP4xRESSwNx9/xuZ3ePuk6KWhxAumKa7++wDDmH2HcJF1xzgLXe/Kmb9enc/7Ivss7S01MvKyg40WtLMmTOHMWPGBB2jTVLfB0P9Hpxk972ZJW1fItEyMjL2OjM2dOhQFi9eDEBJSQm5ubmsXbuWrl27MmTIELZs2cK2bdsYMGAAXbt2ZdOmTWRlZWFmdOvWjYqKCnr37k23bt0oLy/n008/5fDDD6e4uJiKigoyMjLo1q0bZkZVVRXt27enQ4cO1NbWUlNTQ+fOnSksLGTHjh2YGV26dCEnJ4ddu3aRmZlJu3btyMrKoqamhry8PAoLC6mrqyMUCpGTk9Mm/6/od31w1PfJY2aL3L00tj3RWe/6mNkR7v4+gLu/bWabgFuAAy6U3P0vkZD7r9pERESkVYgdPlhfJAGsWLGi4fmOHTtYtWpV3HWtUUFBAQcddBDZ2dlUVVWRlZVFt27dyM/Pp66ujrq6OgoKCmjfvj1FRUW4O/n5+WRlZZGbm0tOTg5ZWVl07NiRUChERkYGhYWF5ObmUlhYiLuTlZVFYWEhWVlZZGRkkJ2dTVZWFvn5+WRmZja05efnk5GRQWZmJtnZ2WRmZpKVlUVOTk5DoVv/oXtbLBSldUu0UPpvYK6ZPQ+8DGwAugOnpipYjAIzexE4AlgDXO3uq9N0bBEREZG0qaqqoqqqaq+2+iGOrV1eXh4HH3ww7dq1Iycnh927d5OVlUXnzp3Jy8sjPz+/oSArLi6mXbt2ZGZmNpzRKywsbCj26pfri8CioqKG7fLz8xsKyvqir6CgoKFArC8Mc3JyyM7OJiMjo+HspQrCtiOhoXcAZtYD+AXwTaAbUAn8n7vvM/lCnNf2ApbHWbXZ3Y+O2m4OUBZn6F07d/88csPb2wlfo3SUu4ditpsITATo0qXLsGeeeSah7y0dKisrKSoqCjpGm6S+D4b6PTjJ7vuxY8cmbV8iIm1d/TDO4uJi8vLycPeG4q24uJjc3FwyMsLTCOTl5TX8Pq8v6nJzc8nPz2fPnj0UFhaSmZnZcCaxvsDLyspqKCDrC736wq/+jKGZkZmZSWZmvOkB2paxY8fGHXrXaKFkZv8J/MPdV8VZl+nuSb9Cs7FCKWabfsAyoNTdFzW2na5Rknrq+2Co34Oja5RERCSV6s/UZWZm0rFjRzp37ky7du0a1hcXF9OpUyfy8/PJz8/H3WnXrh3t2rUjNzeXk08+mcMOOyy4byDGl7lG6VEgZGZVwD+Bf0QeC919e2SnPd19UyoC1zOzTICowqw88jUU/xUiIiIiIpIqO3fubHheXl7OmjVrvvA+Eh3VFqSmpgc/BygETgSmAn2A3wHbzGy1mT0NvJDkPHlAbkzbZcCTUcsnA6uBpUk+toiIiIiICNDEGSV3fzbydFHk8QcAM+sMjARGAZ2TEcLMzgfGAyOAY8wsG3jK3edHjv2tyEQSlUAxMN7ddac9ERERERFJiURnvQPAzLLc/RPgpcgjKdx9MjAZuCDOunnAV5J1LBERERERkf1pauhdAzP7uZlVAtVm9oGZ3Wlm3VOcTUREREREJBAJFUrAxYSnBR9K+JqhbGC+mQ1JVTAREREREZGgJDr07jXCs93tBN4FpprZkcBvgQmpCiciIiIiIhKERM8oPQtcH7mHEQDuvgbYkJJUIiIiIiIiAUr0jNLLwG7gJ2b2BjAf+AzoWb+BmR3m7uuTnlBERERERCTNEi2UziZcLPUnPIX3KOAsoK+ZrQCWAP2AAakIKSIiIiIikk6JFkrvAO7ubwNvA38EMLNiwvdUGkn45rQiIiIiIiItXqKF0kzgBeBnAGY2Dgi5+xzCEz28lpJ0IiIiIiIiAUi0UJrr7vVF0pPAqcD7Zvaau1+bsnQiIiIiIiIBSHTWuwIzO9jMbgDGAv3dfSTQKXXRREREREREgpHoGaW/AquBbcAZ7r410l6UklQiIiIiIiIBSqhQcvcXgA7RbWb2EOFZ8ERERERERFqVRofemdl7ZnZi5PlIM8uJXu/uFwNfSXE+ERERERGRtGvqjNLNwPbI8zeBWjN7DygD3iI8ZfipwK9SmlBERERERCTNGj2j5O5PufuiyOJVhIfZ3QzsAL4LzAL+N+UJRURERERE0izRa5TuiDxdTXhiB8wsAzg2RblEREREREQC02ShZGYnABcBvQgPw1sDPOvu/3T3OmBZ6iOKiIiIiIikV1OTOZwBvAYcDCwByoFRwAIzm21mPdITUUREREREJL2aOqN0DXCKu8+KbjSzLsB1wDwzK3X37XFfLSIiIiIi0kI1ekYJqIotkgDc/SN3nwT8Drg+VcFERERERESC0lShtMvMMptYfzfQL8l5REREREREAtfU0LvTgUozW8K/751UBiz3CDP7KB0hRURERERE0qmpQum3wMvAMcBwwvdSKiF8pultwkXTESlPKCIiIiIikmaNFkrufk3k6RzgfgAzKwCGES6cRqKhdyIiIiIi0goldMPZeu5eBcyLPDCzMSnIJCIiIiIiEqimJnPYL3efk6QcIiIiIiIizcYBFUoiIiIiIiKtUaOFkpl9oWF5IiIiIiIirUVTxVClmS0G/lH/cPd16YklIiIiIiISnKYKpanANKAUuBIYZGaf8u/CqQwY5+5XpzyliIiIiIhIGjVVKF3g7rXAEwBmlku4aBoVefwQ6A6oUBIRERERkValqfso1cYs1wALIg8AzKz7gQYwsyLCZ6xGAruBo4Cb3P3pqG0GAzcBnwLdgO+7+/oDPbaIiIiIiEg8Cc16Z2Y3mNm3zOzQmFWVSchwJOGzUxe4+wTgTuBRMyuMHDsXeAG4xt2/S/gGuE8m4bgiIiIiIiJxJTo9+NHAI8A6M/vQzJ43s+uAF5OQYSUw0t0/jSwvAHKBrpHlUwB39/ciy1OAr5hZ7yQcW0REREREZB+JFkqV7l4MFAAXAA6MAHYdaAB3r3b3jVFNxwKbgfWR5VJgTdT6NUAd0O9Ajy0iIiIiIhJPovdKag/g7ruB2cBsM/sB8GEyw5hZDnA9cLm774k0H0LUED93rzWzKqBjMo8tIiIiIiJSL9FCabmZ/RG41t23Abj7g2a2CHhpfy82s17A8jirNrv70VHLdwEvufuUqLbMOK+rBfbENprZRGAiQJcuXZgzZ87+oqVNZWVls8rTlqjvg6F+D476XkREmruW8D5l7r7/jcwygFuAHwNLgA2EpwZv7+5JGQJnZpcCY4HveFQoM/stMNTdvx7VVgOc6u6zGttfaWmpl5WVJSNaUsyZM4cxY8YEHaNNUt8HQ/0enGT3vZklbV8iIiIAidQg6WJmi9y9NLY9oWuU3L0ucmPZ3sADhM8OPQuMS1K44cBFwIXu7maWE5ntDuA9oG/Utj0Inwlbkoxji4iIiIiIxEpo6J2ZTQaWuPstwEMpyHEfcDvQy8IfXV4OvEx4WvC/Ab83sxHu/k9gAvC8u5enIIeIiIiIiEjC1yj1IlzINDCzm4En3H3FgQQws1OAYcDkmFUvA7h7uZmdA9xlZqsIz7z3wwM5poiIiIiISFMSLZRWuPuimLbbgaeBEw8kgLu/AjQ5AN7dpwPTD+Q4IiIiIiIiiUr0PkrlZvbLqOuGcPdPgCNTE0tERERERCQ4iZ5R+iXh64g2mNkcYB3hCRa2piiXiIiIiIhIYBKd9W63u38fGAOsBLoCK4CzUhdNREREREQkGI2eUTKzl4Ab3X2hmXVx948iEzf8b/riiYiIiIiIpF9TQ+/eBPIiz7eY2WbgLaAM+Cfh+xid6u5PpDaiiIiIiIhIejVaKLn7TVGL9xC+n9FgYCRwCXAo4IAKJRERERERaVUSncxhuru/BrxW32BmhwAjUpJKREREREQkQIlOD35lnLZvAq8nMYuIiIiIiEiz0GShZGb3mtkPgNw4q18F/piSVCIiIiIiIgHa39C7pcDFwHAz+5TwBA8LgLeBOuDrqY0nIiIiIiKSfk0WSu5+v5k9ANwKPAYcB4wGzgO6Ac+kOqCIiIiIiEi67XcyB3evM7OlwOfu/gDwQOpjiYiIiIiIBCfRyRzuQcPsRERERESkjUi0ULofeDmVQURERERERJqLRAullcBvzexrqQwjIiIiIiLSHCR6w9k7gUrgfDNbT3jmu8XAYnefm6JsIiIiIiIigUj0jNIZ7t6d8Ex3PwbWAicBf01VMBERERERkaAkekZprpl1dfetwLTIQ0REREREpFVK9IzSy8CHZrbAzPIAzOz01MUSEREREREJTqKF0m6gkPCZpP+KtPU1s4tTkkpERERERCRAiRZKnwE1wK3AsEjb3YAKJRERERERaXUSLZT+BswgXCTVRr22SypCiYiIiIiIBKnRyRzMrLu7fwjg7n8xs1zgJSDHzEqAXsC89MQUERERERFJn6ZmvXvZzL7l7qsB3P1JM/sLMAboA3wAvJL6iCIiIiIiIunVVKHUD1hoZk8Bv3L3cnevAV5NTzQREREREWltbrrppqAjJKSpa5ROJnwN0tvATDP7Rf3U4CIiIiIiIq1Zo4WSu//d3UPu/hgwHKgA5pnZRWZm6QooIiIiIiKSbo0WSmbWrv55pGC6D/gPoBMw28xOS0M+ERERERGRtGvqGqVpZvZw5Hl+1KMAWA08a2ZvuvvXUpxRREREREQkrZoqlP4DGARsI3zD2djHrZGvIiIiIiIirUpThdIl7v5g2pKIiIiIiEir11KmO2hqMoe0FElmVmRmvzSzl8zseTN7z8zOi9nGYx7r05FNRERERETapqbOKKXLkcAPgWPd/VMzuxh41MymuvvOyDZbgOjJI3anO6SIiIiIiLQdzaFQWgmMdPdPI8sLgFygK/B+pG23u78TRDgREREREWl7Ai+U3L0a2BjVdCywGVgfSCAREREREWnzGr1GKQhmlgNcD1zu7nuiVhWY2YtmtszMXjCzvsEkFBERERGRtiAtZ5TMrBewPM6qze5+dNTyXcBL7j4lZrsj3P1zM8sFbgdeNbOj3D0Uc5yJwESALl26MGfOnKR9DweqsrKyWeVpS9T3wVC/B0d9LyIizdnatWtbxPtUWgold98AFDW1jZldChwM/CjO6z+PfK0xs/si2wwCFsVs9wDwAEBpaamPGTMmGfGTYs6cOTSnPG2J+j4Y6vfgqO9FRKQ5O/zww1vE+1Tg1ygBmNlw4CLgq+7ukSF4FimMMgGihuKVR76G4uxKRERERETkgDWXa5TuIzykrpeZlQC/B06NrLsMeDJq25OB1cDStCYUEREREZED1lJuOBv4GSUzOwUYBkyOWfVy5Osi4Ftm9jxQCRQD4929Ln0pRURERESkLQm8UHL3V4BGy0p3nwd8JX2JREREREQkVdw96AgJaS5D70RERERERJoNFUoiIiIiIiIxVCiJiIiIiEjatJTJHFQoiYiIiIiIxFChJCIiIiIiEkOFkoiIiIiISAwVSiIiIiIiIjFUKImIiIiISNpoMgcREREREZEWSoWSiIiIiIhIDBVKIiIiIiKSNhp6JyIiIiIiEkOFkoiIiIiISAulQklERERERCSGCiUREREREUkbDb0TERERERGJoUJJRERERESkhVKhJCIiIiIiEkOFkoiIiIiIpI2G3omIiIiIiMRQoSQiIiIiItJCqVASERERERGJoUJJREREREQkhgolERERERFJG12jJCIiIiIiEkOFkoiIiIiISAulQklERJpUVlbGlClTAOjXrx/Tp0+nrq4Od6e6urrJ165bt46+ffs2LGdk6G1HRKStKyoqCjpCQrKCDiAi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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(14,5))\n", "ax1 = plt.axes() # standard axes\n", "plt.grid()\n", "plt.yticks(fontname = 'Cambria', fontsize = 14)\n", "plt.xticks(fontname = 'Cambria', fontsize = 14)\n", "plt.title('Time history of vertical displacement of the top node',\n", " {'fontname':'Cambria',\n", " 'fontstyle':'italic','size':18});\n", "\n", "ax2 = plt.axes([0.65, 0.60, 0.2, 0.25])\n", "\n", "\n", "ax1.plot(time_lst, d_list,'k')\n", "ax2.plot(time_lst, d_list,'k')\n", "ax2.set_xlim(left=13.5, right=14)\n", "ax2.set_ylim(bottom=-15, top=-30)\n", "\n", "ax1.set_xlabel('Time (sec)', {'fontname':'Cambria',\n", " 'fontstyle':'italic','size':14})\n", "ax1.set_ylabel('Vertical Displacement (mm)', {'fontname':'Cambria',\n", " 'fontstyle':'italic','size':14});\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Closure\n", "The figure deomnstrates a dynamic jump from the quasi static configuration. It then begins to oscillate around the remote equilibrium configuration. It is to be noted that conventional time integration algorithm like the *Newmark* method might not be able to present a stable and bounded solution like this. It is therefore necessary to employ an energy-conserving algorithms with proper numerical dissipation in order to tackle these kind of problems (like `TRBDF2` and `TRBDF3` in OpenSees)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### References\n", "-
Chandra, Y., Zhou, Y., Stanciulescu, I., Eason, T. and Spottswood, S., 2015. A robust composite time integration scheme for snap-through problems. Computational Mechanics, 55(5), pp.1041-1056.
" ] } ], "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }