Skip to content

Instantly share code, notes, and snippets.

@tobydriscoll
Last active July 25, 2022 17:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save tobydriscoll/8d87997704e9fd400e96ea860d9f6a34 to your computer and use it in GitHub Desktop.
Save tobydriscoll/8d87997704e9fd400e96ea860d9f6a34 to your computer and use it in GitHub Desktop.
Trefethen & Bau lecture notes in MATLAB
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lecture 11: Linear least squares\n",
"\n",
"## Fitting data by polynomials\n",
"\n",
"Here are 5-year averages of the worldwide temperature anomaly as compared to the 1951-1980 average (source: NASA)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nS3YdHR2XL18ODw93aA8LCxORzs5O3SoBxgPtepL2SSPtAlKeIYoogsr0C6TW1lYRCQkJcWgPCgoS\nke7ubt0qAcYPbd9dnvAYJHgA/QJJ297t6+u4SNjX1yciEydOdMVBi4qKbF/n5uampKS44igAoKai\noiKTyeTuKpylXyBpm+guXrzo0K6dG02aNMkVB7X/L1FfX08gARhvCKQhaIFkNpsd2rWrRzNmzHDF\nQVetWpWamuqKVwYA9eXm5treA+vr67dv3+7eekamXyBNmTIlOjq6tbXVbDbPmjXL1l5TUyMiaWlp\nrjhoamoqZ0UAxjP790DFA0nXzyEtWbJERLZs2WJraWpqqqurmzlzZkJCgtbS29v76aefNjY26lkY\nAMDtdL1TQ1ZWVmVlpdFozMnJycjIaG9vLy0tDQgIKCwstG12aG1tXb58eXBw8OHDh/WsDQDgXroG\nUnBwcGlp6cqVK41Go9FoFJGpU6du2rRp7ty5epYBAFCQj1tuEHf27NnGxsbo6OjY2FgXHSI+Pl5E\nysrKuIYEACJiMpmys7NF5MSJE+6uZWi6niHZREREGAwGtxwaAKAmHtAHAFACgQQAUAKBBABQAoEE\nAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQ\nAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKB\nBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQAUAKBBABQAoEEAFACgQQA\nUAKBBABQAoEEAFACgQQAUIK/uwtw1unTp8vLy81mc1RU1Lx585KTk/39PaZ4AMCoPOM9vaqqas2a\nNQMDA7aWRYsWFRYW+vn5ubEqAMAY8oAlu7a2trVr11qt1oKCApPJtHfvXoPBcODAgQ0bNri7NGAU\ntS1dC4sbFhY3bNx/auP+U+4uB1CaB5whlZSU9Pf3r169OjMzU0RCQkK2bt169OjRioqK1atXT548\n2d0FAkOobelaWHzE7ttuEcmvPlWTk5QeE+q+ugB1ecAZUkNDg4gsXbrU1hIYGLhgwQKLxVJVVeW+\nuoBhOaSRvYXFR2pbunSuB/AIqgeSxWJpa2uLjIycNm2afXtiYqKINDc3u6kuYCTDpZEzPwXGLdWX\n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\nQwebARcAAAAASUVORK5CYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"year = (1955:5:2000)';\n",
"anomaly = [ -0.0480; -0.0180; -0.0360; -0.0120; -0.0040; 0.1180; 0.2100; 0.3320; 0.3340; 0.4560 ];\n",
"plot(year,anomaly,'o')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The numbers work better if we measure time in years since 1955. (We can quantify that statement later in the course.) "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m =\n",
"\n",
" 10\n"
]
}
],
"source": [
"t = year-1955;\n",
"m = length(t)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A polynomial through all of these points has to have degree at least 9 in general (i.e., unless the points are special). We can solve for the coefficients of this polynomial by solving a $10\\times 10$ Vandermonde system."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4AkaEi4iKeFbfgAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAyNi1TZXAtMjAxNiAxNDo0NjozNO9hPPsAACAA\nSURBVHic7N17XFTV9gDwBQPyUhBBEAQREP0h+AAVQw2Ba5BaZGoUorfSTCUxbmhPE9DM9GYpEKVp\nVJSvBC1fgBKYD2JIJAUUiQEZRVAEfPASmPn9sfPc05kHwzBzZs7M+v7hZ2ZzzsxiwLPYe6+zt4FY\nLAaEEEJI0ww1HQBCCCEEgAkJIYSQlsCEhBBCSCtgQkIIIaQVjDQdAOpZRkbGuXPnyOMNGzaYm5uT\nx52dne+++y55PGrUqNdff506RSgUbtu2jTx+7bXXPD09+x7Gb7/99vPPPwOAm5vbG2+8If/g9PT0\nwsJCAPD19Q0PD+/7uyOkWr36fUYsESOt9/3331M/r9zcXKr94sWLVLuzszP9lF27dpF2Q0PD27dv\nqySMzz//nLzmk08+2ePBS5YsIQcvWrRI1jHt7e2rH2tublZJkNyFnwbLevX7jNiBPSQOCA0NNTAw\nEIvFAHDu3LnAwEDSXlRURB0jFArr6uqGDBlCnlI9Kl9f38GDB7MarsI6Ojo+/fRT8vjNN9+0srLS\nbDyahZ8GQjiHxAF2dnYTJkwgj8+ePUu10xMSAJAhMoJKSDNnzlR/gAghpALYQ+KGp59++o8//gCA\n33//XSQSGRoawuOENGLEiL/++gsACgsLn332WQC4c+fOtWvXqBPpr3P58uWLFy9evnwZAMaMGePj\n4zNmzBj6AVVVVTdu3ACAYcOGubi4tLa2njhxwtTUdPbs2XLC6+zsvHDhQmFhoZGR0fTp00ePHt3j\nd3Tr1q2GhgbqqVAo7OzsHDZsGI/HIy1dXV2///77pUuX6urqxo8fP2nSJGdnZ+r469ev37p1CwAc\nHR2HDRt27969rKyse/fuPfXUU8OHDyfHVFdXnzt37s6dO5MmTZo6dSr93f/66y9y+vDhw52dnUtK\nSk6fPt3d3T1hwgQ/Pz9jY2NGtPKDUeRzu3fvXlFRUXl5eXNz88SJE/38/CwtLXv8NKqqqkicNjY2\n9E+1uLj4wYMHAODq6urk5KRIAD1+C7LIjxwAbt68KRQKAcDe3t7V1bW1tTUnJ+fSpUvDhw9/+umn\nbWxsJF+zx9/DPv58FYycoaSkpKmpCQDMzc2pPwEBQCQSUX/hjRo1ys7OrscPDSlJ02OGSCHU/wcA\nuHTpklgs7urqItUNK1eutLW1BYCnn36aHHz48GFy5MCBA7u6ukhjW1vbsmXLJH8BVqxY0d7eTr3R\nmjVrSPvatWu//vprMzMzAFi1apVY9pj7jRs3/Pz86K8ZGxu7ePFi8ljWHNK0adMkg7l16xb56tWr\nVydNmsT46pIlSzo7O8kBMTEx1Hu9/fbb9BTy6quvisXi9957j37uv//979bWVurdqY9i06ZNb731\nloGBAXXkhAkTrl27Rg+1x2Dkf25isfiXX35hDJwaGhqOGzfuwoUL8j8NKs7nn3+eHhIVz3//+19F\nAlDkW5Cqx8jFYvFHH31EvrR06dItW7aYmppSB1tZWe3du5f+ggr+Hvbx56tI5JK/z3FxcaTFxMTk\n4cOH1EsVFBRQL1JRUSH/E0N9gQmJG7q6uqytrcl/iS+//FIsFpeWlpKnX3/9dXBwMADY2tqSg6lr\n0wsvvEBaRCKR1D8hiWnTpolEIsa5oaGh/fr1I4/lJKQHDx44OjpKvmb//v3JAyUS0vXr1y0sLKSG\nOnv2bHLZoi5Ybm5ukocx+oXEli1bqHenrokjRoyQPNLW1rapqYkcqUgw8j+34uJiqacDgLW1dWNj\no5xPQ4mEJBmAgt+CJEUiF9MSkpubGz21ExYWFlVVVb39Pezjz1eRyCV/n69evUoddvjwYerV1q9f\nTxonTZok67NCKoFzSNzA4/Geeuop8pj0lqgJJB8fHx8fHwBoaGioqqoC2gQS9f/2xx9/pBrffvvt\nkpKSy5cvU//nz549u3fvXsY7ZmVlPXr0yNraOiAgwMPDQ1ZgiYmJtbW15PErr7xy4MCBNWvW2Nra\nPnz4UP53tGfPngsXLlBPT58+XV5eTv6kXbNmTUtLCwC4ubl99dVXf/7553vvvUcusseOHcvIyKC/\njkAgiIyM/Pnnn5OSkki3AAAyMzOnTp36888/7927197enjTu3r1bMoy//vrL1dV148aNaWlpc+bM\nIY0NDQ3UNahXwUj93Pbt20e+5O/vf+LEiRs3buzdu5dcuJuamshf33I+jd6SDKC33wJFkcjpBAKB\nt7d3RkZGUVHRf/7zH9LY0tJy8uRJ8liJ30Plfr69jZwYNWoUNVJ39OhRqj0zM5M8iIiIkPVZIdXQ\ndEZEivrmm2/Ij8zV1VUsFpP/8CYmJh0dHdR/4/3797e3t1N/IN+4cYOcO2rUKNJChjsoL774Imn3\n9PQkLdQf2gCwZs0a+sFSe0jURZPqjYnF4rNnz5JZLpBb9n3v3j3qvYRCIWkkEyHEkSNHJEMlI5PU\nVWzYsGHUMStWrCCNhoaGDQ0NjLD79+9PHUn1PMzNzcvKykijSCT617/+RdptbGwUD0b+57Zs2bKQ\nkJCQkBA+n09a2traqG7ltm3b5HwaSvSQGAEo/i1IUjByqofE4/GuX79One7i4kLaV69eTVoU/z3s\n+8+3x8il/j5v3bqVNDo4OJDuWlNTE5nXNDQ0vHnzpqzPCqkEFjVwBtXdIRPdpIc0duzYfv36UZen\nwsLCoUOHPnr0CADGjBkzdOhQAGhpaaFqHF599VX6a7766qv79+8HgKtXr7a2tlK33AKAhYXF5s2b\n5Yd09+7dO3fukMf0qoepU6dOmzbtt99+U+LbpEI1MzO7d+8e9acudTU5efJkR0cHdTx9qp/qybm6\nulJz6e7u7uSB1E5bYGAgddewgYHBc889l5OTQ761e/fuKRiMiYkJ9YKSn9tXX30FAN3d3VeuXNm3\nb9+1a9dOnDhBdStFIpFCn4vCGAEo8S0oHbmbm9uwYcOop56entevXwcA0j9T7vdQuZ+v0p/5iy++\nuGbNGpFIRP6LTZgw4dSpU93d3QAwffp0qaPTSIUwIXGGg4PD+PHjyeB4YWEheUBSkbu7u7W1dVNT\n04ULF6hbkagERqboyWNXV1f6a1IFS2KxuKKiYty4cdSXPD09JecDGKqrq6nH1N1RxKhRo5RLSBUV\nFeRBW1vbwoULJQ/o7u6mX3qoYRz6Y2oGCwDkfxfU3+xEUFAQ9biqqkrBYOhXc8nPTSwWr1u37osv\nviAVXOrGCECJb4HS28ip3EAwXlO530Plfr5Kf+ZDhw4NCAjIy8sDgGPHjk2YMAHH69iECYlLnn76\naZKHfvnlFzLCQ/WNJk2alJ2dXVxcLJmQ6NcF0nmidHZ2Uo8Zlw9STCxfa2ur1JdifKlXqOvLgAED\nxo4dK/UY8her0q9Mx5jtp4+bWVlZKRGM5OcWFRVF/mAHgGHDhgUFBQUFBX355ZeyZjIUQe8jMjAC\n6Mvn2dvIqZJ9qZT7PVQc/efbl898wYIFJCEdPXp03bp1WVlZANCvX7/58+crFxhSHCYkLpk5c+Yn\nn3wCAD/99BNpmThxIvUgOzu7qanp+PHjANC/f3+qcGvEiBE8Ho9cdK5evUovW6LKioyMjBh/3vbY\nPYJ/lqidPn2aeioWi0+dOqXMd0jrsvTv359+F7CalJeX05/m5uaSBzwez9nZWYlgGJ9bc3Pzjh07\nyONPP/00NjaWPN6+fbsir0ZdnemZUiQSUf2eHgNQ+vPsY+SSlPs9VEIfI58/f/7KlSsfPXr0xx9/\n5OTkkEm40NBQqswVqQ9W2XHJlClTyJ199+/fBwALCwtq/oPqKpErV1BQEFXa0K9fP6p2aPv27dQA\nend3d2JiInk8ceJEybtBe+Tg4DBo0CDy+NixY1R7fn5+fX19r16K+iP9//7v/8iDW7du0Qf9jh49\nunz58uXLl3/wwQe9jZOQmmKPHTtGXQ27u7up2qqRI0caGRn1PZjCwkIyTmVmZhYdHU0am5ubr1y5\nIucs6tOgPt7S0lKqG3H8+PG2tjb570tR+ltQLnI51Pd7SFA/3z5Gbm1tTUYXxI9LhwDH69iCCYlL\njIyMZsyYQT319fWlBkkYtz0ybtTYuHEjeZCdnT179uw9e/b88MMPoaGhZ86cYRzQW++88w55cOjQ\noRdffPHbb7/96KOPnnnmGUXOpY/wfPHFF6Re2c7ObtGiRaRx/vz5H3/88cmTJ995552IiIgdO3bs\n2LGD3lfoFakJqbW1NTg4ODY29ssvv3zqqaeoIR1StNb3YKg/q9va2vbt29fe3p6ZmTlnzpz29nbS\nTuUeqZ/G+PHjSUt9ff2sWbO++OKLmJiYBQsWKP5dK/0tKB654tT3ewi0n2/fI6c+YbKWhIWFRVhY\nmNKBoV7QTHEfUtbOnTupn91bb71F/5KDgwP1pcrKSsaJjLomuiVLllCHUdXDjDpjsYwy2fb2dsmF\ngng8nr+/P3ksp+xbLBbTF2gBgNraWrFY3NTUJGsGa+zYsffv3xfTyoLpcX755Zekcdy4cVTjkSNH\nSKORkRHVSJVTS73vcuLEidQKF4oEI+dza29vp78FqYYn44Gk5YMPPpDzabS2tjLW1AEAExMT6jOX\nLPuW/MEp+C0wKB45VfY9e/Zs+is899xzpH3FihVUo4K/h335+SoYuZzVvltaWuh1ExEREVI/IqRy\n2EPiGHrXh9Erop56eHhIXme/+eabHTt20AtqAcDCwmLnzp3UXhVKMDExyc/Pp//9aGpq+t1335FV\n9Xq0fv16yWvlwIEDi4uLly1bRt3MBACGhoarVq0qKCgYMGCA0tFKmj179rZt26hLlYGBwSuvvHL6\n9Gmqv9LHYExMTA4ePDhy5EjyVCQSubu7Z2VlLV26lLSkpqZSlWCSn4aZmdnJkyf9/f2peEaPHv3r\nr7/KKk+QSrlvoVeRK05Nv4d0fY/c3NycuksacLyORX9vasC+mzdvpqenC4VCV1fXiRMn+vr6Ghn1\nUGHx66+/kjUc6YyMjCIjI9UWpq7p6uq6du1aSUkJAHh7e5OZEpW88q1bt/h8vr29va+vLzV9pQiR\nSNTY2NjY2GhkZDR8+HD6RbOxsbGkpEQoFI4YMcLb21vW+jdKWL58OZn3jo6OJhMYxcXFzc3Nvr6+\nstbf7EswnZ2df/zxx82bNydOnEiVOEsl69N4+PBhSUmJnZ0d4yPqFSW+BcUj7xX1/R5S+hj5nj17\nyIXF3t7+xo0bKg8PSaWZhJSZmRkbG9vV1UW1zJgxIzExUX7Z6PPPP19WVsZoNDMzk7NuFUJSSSYk\nhOheeeWV7777DgDWrFmzZcsWTYejLzSQ9mtqashSIhs2bAgNDb19+3ZSUlJWVta6devkT2lev359\n/Pjx//73v+mN+JcLQkhVxGLxokWLbty4cfr0aQAwNDSk9j5GLNDA1XzXrl2dnZ0xMTHh4eEAYGVl\ntXnz5suXL2dkZMTExMhaUPLu3bstLS2TJk2SvzEPQggpTSQS/fjjj9TTl19+mbGWB1IrDRQ1kEXY\n6HOGZmZm06dPF4lE1CodkmpqakBixRGElOPk5DR27NixY8eS5f4QIgwMDKytra2trb29vd98881t\n27ZpOiL9wnYPSSQS1dTUuLi40GuUAWD8+PF79+6Vc/85WaXRxcWFbAFpaGg4atQo6i4NhHpl7dq1\na9eu1XQUSOsYGho2NjZqOgr9xXZCqqur6+joIDuc0pG1e+m7ODOQhPTee++RrhIxefLkjRs3KrgT\nM0IIIW3G9pCdQCAAACsrK0Y7uRmiublZ1okkIYnF4ri4uP379ycmJo4fP76goGDZsmXUDdgIIYS4\ni+0eEin1lryRgiQVxu1ydE8++aSTk9PLL79M7YMyY8aMiIiIP//888cff5RVCYMTkgghxMBYU1h7\nsJ2QSBHdgwcPGO2kb0QtJSnp+eefZ7TweLxFixb9+eeff/75p6rDRAghxDbNJCTJBRfI7FFvS57I\nKopkP0o5Vq5cOXny5F69spokJSXx+XztiUfb4OcjH/l8/Pz8qEWsEV1BQUFycjJ+PrKQz0fTUcjD\ndkKys7Nzc3MTCARCoZBejED2oQkICJB6VkVFxYYNG8aMGUOtIEn8+uuvILFPpaTJkyf7+fn1NXTV\n0bZ4tBB+PlL5+fnx+XzAz0c2csHFz0cWLU9IGrgPiSzEuWnTJqqlrKwsPz/fycmJ2rq4tbX1woUL\n1JpAw4YNu3jxYlpaWm1tLXVWS0sL2cxx5syZ7EWPEEJIPTSwUkNkZOTx48dzcnKioqJCQkJqa2tT\nU1ONjY0TExOpYgeBQLBgwQJLS8vCwkIAMDExWbZsWVJS0gsvvPDyyy+PGDHi1q1baWlpDQ0NYWFh\nPj4+7H8XCCGEVEsDCcnS0jI1NXXp0qU5OTk5OTkAMGTIkPXr13t5eck564033jA0NNy9e/fWrVtJ\nC4/HW7Vq1fLly9kIWkX8HtN0IFqKfDg4gSQL+WTw85EDJyA5TWPbTwBAfX19cXGxm5ubh4eHgqe0\ntLRcvXq1oaFh2LBhrq6upqam8o8nZd9paWmYAxBCeo7P55Ptg7HsWwp7e/vQ0NBenWJhYcHYVRMh\nhJBuwB1jEUIIaQVMSAghhLQCJiSEEEJaARMSQgghrYAJCSGEkFbAhIQQQkgrYEJCCCGkFTAhIYQQ\n0gqYkBBCSPflVTa984eR0P8/d0fOTsiq0nQ40mly6SAW4NJBCCE9l1fZFJRyUbI9N8on0N2a/Xjk\nwB4SQgjpLFnZCACCUi7mVTaxHI98mJAQQkhnycpGinyVfZpcXBUhhBA7At0HAsDlEz8AwN2Rz2g6\nHOkwISGEkA4KSimiHpPpIj6fv2j7MQBoOPIZNZRHDsuN8tVUnHQ4ZIcQQromIasqr7I5r7KZPJUs\nXgh0tyZ9JnKYlkwmYUJCCCFdFh/i2uMxWlIIjgkJIYR0jdQez90DWxfYdSyw67h7YCtI6zZpHCYk\nhBDSZSQ5tZaed68+E2H/KML+EUlIdFqSnDAhIYSQrokL7XmYLj5bK4bp6LDKDiGEdE2guzWZOorP\nJtUNTfS1asy8/KkxPXKYIgmMBZiQEEJIB5EcQ7pBQSkX/dqvpD3+0unK5kWPb4nVklRE4JAdQgjp\nPr/2K5oOoWeYkBBCSGflRvko/VX2YUJCCCGdFehuLSvr4GrfCCGEWBXobi3eGhw4YiDVMt19oHhr\nsLZlI8CEhBBC+oCefsy9pmgwEjkwISGEENIKmJAQQghpBUxICCGk+1pLz2s6hJ5hQkIIIaQVMCEh\nhBDSCpiQEEIIaQVMSAghpF/MvPw1HYJ0mJAQQkj3tZXmazqEnmFCQgghpBUwISGEENIKmJAQQghp\nBUxICCGkX3AtO4QQQkgejW1hfvPmzfT0dKFQ6OrqOnHiRF9fXyOjXgTT2tr6zjvv2NjYxMfHqy1G\nhBDSBZxYNwg0lZAyMzNjY2O7urqolhkzZiQmJvJ4PAVfYcOGDdnZ2aNGjVJPgAghhNimgSG7mpqa\n1atXi8XiDRs28Pn8o0ePhoaGnjp1at26dQq+wrFjxzIyMtQaJEIIIZZpICHt2rWrs7MzOjo6PDzc\nysrKw8Nj8+bNjo6OGRkZd+7c6fH0mzdvxsXFPfHEEyyEihBCiDUaSEhFRUUAMGfOHKrFzMxs+vTp\nIpEoMzNT/rnd3d2xsbEmJiYbNmxQb5QIIaSLLrcoOjPCPrYTkkgkqqmpcXFxcXBwoLePHz8eACoq\nKuSf/sUXXxQXF3/yySeDBg1SY5QIIaRDOLFuELCfkOrq6jo6OmxtbRntNjY2ANDQ0CDn3D/++OOr\nr75atGjRk08+qcYQEUIIaQLbVXYCgQAArKysGO0DBgwAgObmZlkn3r9/f82aNW5ubqtXr+7tmxYU\nFBQUFJDHkydP9vPz6+0rIIQQF/H5/IKCghHX+e6ajkQRbCckUuptaMjsmbW3twOAubm5rBPXrl3b\n0NDw5ZdfmpiY9PZNk5OT6U8xISGE9ERBQUFycvICuw53e02HogC2E9LgwYMB4MGDB4x20jeSNTOU\nmZmZlZU1b9687u7u0tJSAGhtbQWA9vb20tJSAwOD0aNHy3lTzEAIIf00efJkPp8P1WeolpKHvHka\nDEguzSQkoVDIaCezR0OHDpV6Fjk+PT09PT2d3n79+vW5c+fyeLyysjI5bxodHY05CSHUK62l5+8e\n2Eo9NfeaYublr7WrwMni5+eXlpZ298BW+veitdhOSHZ2dm5ubgKBQCgUOjs7U+25ubkAEBAQIPWs\nqVOn9u/fn97S1dX10Ucf2dvbr1ixwsDAQK0xI4T0itTLN1WoZhMeaxMey3pQekEDSweFhYVt27Zt\n06ZNKSkppKWsrCw/P9/JyWncuHGkpbW19cqVKzwej5SDjx49mjEo19nZ+dFHHw0cODAiIoLl+BFC\nuqq19PyNuPnyjyG5ils5CdeykykyMvL48eM5OTlRUVEhISG1tbWpqanGxsaJiYlUsYNAIFiwYIGl\npWVhYSH7ESKE9JDi41p3D2xtLT3vnJDe86GoNzSQkCwtLVNTU5cuXZqTk5OTkwMAQ4YMWb9+vZeX\nF/vBIIQQAAjj5knePUqfNGLkqrbSfGHcPMxJqqWZ1b5tbW0PHTpUX19fXFzs5ubm4eHBOMDb27u8\nvFzOKxgbG8s/ACGEFCSZjcy8/G3CY+klDDbhsYwuFOYkldPkBn329vahoaGS2QghhFgjmY2cEg46\nJ6RLFtTZhMeOPFhr5uVPtbSV5nOieo3ucovGtsHrEe4YixDSX3cPbJXMRvJru50T0uk5iRMV1biW\nHUIIaTVGLjHz8u8xGxGMEjtS46D6+PQPJiSEkD6S7NkwJo3kMPea4pRwkPFqqgxOX2FCQgjpHcYq\nDKDASB2DudcUej+prTSfK50k3A8JIYS0COPuV8X7Royz6E+xk9R3mJAQQvpFcqRO6WUX6AN3WttJ\n0s6opMKEhBDSI4ypoz4uTEdWXKW/eJ+C03uYkBBCekSye9THF+ToTJJ2woSEENIXKs9GgJ0klcKE\nhBDSC6odrKPjUCdJm0vsABMSQkhPqKN7RGh5J4kryzQAJiSEkD5QXzaSfEEt7yRpM0xICCEdx7gN\nVh1bvmp5J4krMCEhhHScurtHBP3WWq0dJSt5iHNICCGkIYz1vNW39Ti9hwScuh1Ve2BCQgjpMsZ6\n3upLSDhq13eYkBBCOouRFZRYsK5XtLO0QUvCUAQmJISQzlJ3LQMDI+Fp7UyS1sKEhBDSTezUMjDQ\nR+041DXRElI2V29paSkoKDhz5syff/7Z0NDQ2NhobGw8aNAgGxsbT0/PgICAJ554wsLCgv1YEUJI\nQZLrMrDzvjbhsdTeFmTUTt3jhL1yuUXKNV97/CO469ev7969++eff25vb6e3d3Z2tra23rhx488/\n/9y3b1+/fv3mzZv3+uuvOzo6shstQggpRCPdI3hc2kAN1mVs+rBy0S4AiAt1ZScASRwaOfw7IbW1\ntaWkpHzzzTddXV22traBgYETJ050dnYeOHDgwIEDAeD+/fv379+vrq6+ePFiUVHR3r17Dx48+Oqr\nr0ZFRZmZmWn0W0AIIcirbErIqgKAQHdr76LdY2hfYi0bSRWfXUX+zY3yCXS31mAk2s8IAM6ePRsX\nF1dXVzdz5syIiIgJEybIOnratGkLFy4EgIKCgr179+7evfvo0aMJCQkBAQHshYwQQjR5lU1BKRdp\nT5vLr39DPWWhloERzDsNwWnwd6fEr/2KX/sVvqknAASlXMScJJ8hAOzcuXPKlCknT5789NNP5WQj\nusmTJ2/btu3EiRP+/v4HDx7s+QSEEFIDRjYCgJXNGZoKBgCCUi7yTT1JBiKi72XQv6qJoP5Hy1f7\nNgKAlJSU/v37K3Gyi4vLxx9/3NbWpuqoEEJIIZKXeHoCSLKam6TR8TrUK4YAoFw2ouAcEkJI4wLd\nBwa6Dzxo+yu9MXngXNYCCEopCkopIo/pg4R+7VdaFpvmRvlIHsYCbpWe/6PKTiwWl5SU8Hi80aNH\nU41tbW3ffPONv7//2LFjjYy0umQQIaQ/6Jd1am7m2vxnqMYkq7nUYblRvmoNJiGrKq+ymXo6M2yW\n8II/vbwt0N060H1gXmUzOSyvsgknkyT978bY0tLSkJCQ+fPn5+f/o0aws7MzMTExIiJi5syZfD6f\n9QgRQoiJJAAqB5CLO6PUu2TCYgAgh+VVNrEWW3wIs8Jbcl07UhCIGP5OSHl5eS+99FJNTQ0AWFv/\nI2/369dv0qRJAFBTU/Pvf//7hx9+YD9KhBCShSQA+XfCqjsBSCY8yXXtNN4l0vKKBiAJqa2tLS4u\n7tGjRyNHjkxLS5s79x+jrqampj/88EN2dvaLL74oFos3b95cUVGhoWgRQghAWgJgsAmP1VQCILHJ\nX6CBtdg4dFcskIT0/fff19XVTZo06fDhw35+flKPc3FxWb9+fURExKNHj95//312g0QIIZnyKpt6\nXChI3QlA6kIMjN0oyB2ySA5DALh8+TIALF++nMfroUO3bt06S0vLS5cuPXjwgI3oEEJIGkYCkLpQ\nEJsJINDdOj7ElQweUlNWjFE78oAcpsGVhLSZEQBUV1cDwKhRo3o82tDQcNy4cWfOnKmoqPD1VW/V\nCkIIyUISAADEZ1d5X/iG/iWSBqgxPXIYCwmAvAXJguTuqPgQ1wjaAWTJBkxFchgCwP379wHA3Nxc\nkROGDh0KAFVV2PdECGlSXOjf/Qz6nbB8U8/5DUFBKUXUDbPUYeyLz66StWSDRmjVuuNSGcLjvtHV\nq1cVOYFUNNjb26s1LIQQUgRjoaACE096OTj7qBtglfgqMgQAchvs+fM939Db1tZ25coVABgxYoS6\nI0MIoR4xFgpiLM3AfgIIdLemvym5OZfwa7/CfuEft1ZqMAQAcpvRjh07SkpK5B/9wQcftLa2jho1\nasiQIWxEhxBCsknecEqnqaW1A92txVuDSfGCOa3QDriWHthnCADTpk0LDw/v7f9JAAAAIABJREFU\n7Oxcvnx5enp6d3e35HH19fVr1649duwYAMTFxbEdJkIISaAnpMsTFtuGx5IV7XKjfMRbgzV7IyqZ\nu8qN8mUUf2swJO3399p0a9euLSkpKSsre//993fu3Onv7z906FBHR8fu7u4bN25UVlZmZ2c/evSI\nx+O98cYbCm5RId/NmzfT09OFQqGrq+vEiRN9fX17XChPLBafO3fu0qVL165ds7Gx8fDwmDNnjqmp\nad+DQQhxDuPiPu+9j+YBxIHW1bDRNzVnH/3GWDMvfzhSrKlIFPF3DjAxMfnuu+9SUlJ+/PHH6upq\nUgjO4OHh8fHHH48dO7bv75qZmRkbG9vV1UW1zJgxIzExUc6NUGKx+MMPP/zpp5/ojUlJSd9++62H\nh0ffQ0IIcYv8O2G1E1lDSPur3TTlf4urWlpavvvuu1lZWa+//vqMGTNGjBhhbm7u6uoaHBz82muv\nffLJJ4cOHVJJNqqpqVm9erVYLN6wYQOfzz969GhoaOipU6fWrVsn56zdu3f/9NNPnp6eBw4cKC4u\n/uGHH4KCghoaGlavXt33kBBC3CL1TljtZO41xeyfM0lIFuYomaOjY2ysen+0u3bt6uzsjImJCQ8P\nBwArK6vNmzdfvnw5IyMjJiZm8ODBUs/67bffDAwMdu3aZWtrCwCTJk1ydXUNCgq6evVqc3PzwIED\n1RozQkh79LhQkDa7e2CreYJmekjmXlMAvtTIWyvIsOdDVK2oqAgA5syZQ7WYmZlNnz5dJBJlZmZK\nPaWrq+vSpUuurq4kGxG2trYjR440MDCgD/0hhPSN9ickqWsIIUlsJySRSFRTU+Pi4uLg4EBvHz9+\nPDy+61aSgYHBkSNH0tLS6I03btwoLy/38fGhZymEkG7jdPeIYK34m3NV5mzvAFtXV9fR0SGZQmxs\nbACgoaFB6lk8Hs/Z2Zk8vnLlSklJybVr144fP25iYrJixQq1BowQ0iocmj2ikGkk7Bv1iO2EJBAI\nAMDKyorRPmDAAABobu55wY/c3Nzt27eTx9OmTVNJnQVCiBO4mI0kaXAaScuxPWRH5nsMDZnv297e\nDoot8Dp//vxvv/32zTff9Pf3P3v27OzZs2tra9URKkJI2zAG6ziUkDQ+jcSJSj+2ExIpopPcTon0\njQYNGtTjK9jZ2fn7+0dFRX377bfz5s1raGjIycmRf8qiRYtGPZaUlKRs7AghTdKlZQ7Ymd2hZz4+\nn79o0SIW3rQvNJOQhEIho53MHpG9LSQVFRVt376dz+cz2p966ilQYFnYtLS08seio6OVixwhpFnc\n7R6BFtyN5Ofnx6gL00JS5pAuXbokv5DazMxs0KBBgwcPlhx565GdnZ2bm5tAIBAKhVSdAgDk5uYC\nQEBAgNSz6urqUlJSysvLGTusd3R0gGL9KoQQp+nG7BEFp5GkkpKQli1b1tjY2OOZNjY2zz777Jo1\na3pcg44hLCxs27ZtmzZtSklJIS1lZWX5+flOTk7jxo0jLa2trVeuXOHxeKQcfNy4cTwej8/nNzQ0\nUBV63d3d33//PQDg3rUI6TYdKPUGTS9qx4n1iqTkkpkzZ54/f76qqsrIyGjUqFEODg4PHz4sKysj\nG8u6uLjY2dk1NzcLBIJvv/32xo0b27dv71VOioyMPH78eE5OTlRUVEhISG1tbWpqqrGxcWJiItXl\nEggECxYssLS0LCwsBIChQ4e++OKLe/bseeGFF1566SVnZ+eCgoLs7OzGxkZfX9/nn39eFR8FQkhL\nMWZcOJqQ6NhZ1E4X7kN66qmnfvrpp2nTpiUkJDg5OVHtZWVlMTExDx8+3LFjh6ur671791atWnXq\n1Kmvvvpq5cqVir+lpaVlamrq0qVLc3JySD3CkCFD1q9f7+XlJees9957z8zMLDU19bPPPiMthoaG\nL7744ltvvaXEyCFCiCvuHthKn5znbjbiRB9FswzEYjGj6eWXX66urj5x4oRkEfb9+/eDg4M9PT3J\n5FhnZ+eUKVO8vb1TU1OVeO/6+vri4mI3NzfFl+tubGz866+/6urqhgwZ4ubm1uMaDWR39rS0NMbk\nE0KIK67Nd6Qem3n5OyekazCYPhLGzaOSKwvfC/3tbMJjK4c/SQrtysvL1fq+SmP2kFpbWy9cuDB7\n9myptwRZWlr6+fnl5+eLRCJDQ0NjY+OxY8deunRJLBYbGBj09r3t7e1DQ0N7dcqgQYMwtSCkPxi1\nDFzvZGhwGsnMyx9aNPLOvcAc7Lp582ZnZ6ecooYhQ4a0trZSBxgbG9+/f5/c1ooQQiokWcvA3fE6\nSSzcHsu5xYqYCcnNzc3MzKywsFDqKj4dHR3nz58fMGAAWXqura3t/PnzVlZWZmZmbASLENJjOpCN\nGD08zhUdqBszIfF4vHnz5rW1tc2ZM+fs2bNtbW3Ul6qqqlatWlVVVTVjxgwDA4Nbt27Fx8d3dHTI\nunkIIYSUphul3pLot8ey2YPhxGinlCq7d999t7S09OLFi0uWLDEwMLC3t7e1tb19+/adO3fEYvHg\nwYPfffddAPjpp58OHz48YMCAZcuWsR42QkjH6didsBRzrylUHmotPW8DOvJ9qYSUgmljY+Mff/wx\nPj5+8ODBYrG4rq6upKTk9u3bpMz66NGjZHtWS0vLmTNn/vDDD4rXyCGEkCJ0NRsBiz0kLo4HSr+h\nlcfjRURERERENDY2Xr9+va2tzcnJaejQoTwejzrmlVdeYSlGhJA+0e1aBslpJE4MprGjhxUWBg0a\nhCvFIYTYpMPdIwI365NF5hoHzc3NaWlp0dHRkZGRX3zxBQBkZGT89ddfLMaGENI7Op+NGNS3pwY9\n53FiMySQlZDI0kEfffRRdnb2H3/8UVNTAwAHDhx49tlnExMTJRd3QAihvmstPa/Dg3UUnfymVEJK\nQjp//nxcXJxYLA4KClq7di01b/T000+bmJh88cUXR48eZTdIhJBe0LfuETxeZVXTUWgLKQlpy5Yt\nBgYG27dv/+qrrxYtWkQtXfrKK69kZGSYmZlt375d/oZJCCHUWzqziGqP2K9i4ErdBDMh3b9/v7y8\nfMqUKTNmzJA82s3NLSIiQigU/v7776yEhxDSC4zBOjMvfx1OSPDPSR01TSNxsePFTEjXrl0TiUSj\nR4+WdQK566i+vl69cSGE9Im+DdZxpcvCMmZCGjZsGADU1tbKOoGkIrKWHUII9Z3kYJ3OX681tYCQ\nlmMmJDs7Ozs7u6ysrIqKCsmjHz58ePjwYQDw9vZmIzqEkK5j3Aar84N1BAurrOpI2ffatWs7Ojoi\nIyP37t0rFAoBoLu7u6io6LPPPps7d251dXVERESPO+MhhJAi9G2wjsKVJMEmKSs1hIaGRkVFffXV\nV/Hx8aTlyJEjR44cIY/Hjx//zjvvsBYfQkiHSWYjnR+sk+ruga3mCfr4jTNIvzH2zTffzMjICAgI\nsLS0JC08Hs/V1XX9+vV79+7F3Y8QQn2n22vW9YjNb5YraV7mWnaenp5ff/01ADQ2Nj548MDJyYm+\nsipCCPUFo84b9GmwTpLK6xq4WPMNctayowwaNMjFxQWzEUJIhW7Ezac/1cNshLvHSjICAIFAcOPG\njV6dhrvEIoSUJtk30sOEBP9c9rutNF9NA2scqp4wAoADBw6kpqb26rTy8nL1xIMQ0nF6PnVEp77d\nYzl6b5MRAIwePXr27Nn01osXL9bW1pqYmIwbN87BwQEAbt26dfny5ba2tjFjxjzxxBOaCRYhxHGM\nbAR6OVhHwdtjGYwAICwsLCwsjGr69ddfMzMzn3rqqbi4uMGDB1PtTU1N27ZtS09Pf/PNNzUQKUKI\n4yQLGZwSDmoqGG3Azu6xXCmxA6lFDdu3bx86dOjWrVvp2QgArK2t4+PjJ0+eHB0d/ejRI7YiRAjp\nCMlCBg5dK9WEQxM8LGAmpHv37pHVvk1MTCSPNjAw+Ne//tXW1lZWVsZKeAghHSGMm0d/qs9TR7Ko\ncNlvjtbsMRPSnTt3xGJxc3OzrBPIl6qrq9UaFkJIl0gun4rZiMDPgY6ZkNzc3CwsLM6dOye1ELy9\nvf3kyZMA4OnpyUZ0CCHu08/lU5WgwroGLq6sCpIJydDQ8Omnn37w4MHixYtzcnLEYjH1peLi4mXL\nlpWVlY0ePZrsioQQQvJhWZ18eHssnZSlg+Lj42tqagoLC6OioszMzBwdHU1MTGpra8lgnbW1dXJy\nMrWvOUIIySKZjZwSDmIhA4O6b4/l0AcuJa/069dv9+7d69atc3R0bGtrq6ysLCsra25u5vF4ERER\nx44dGzp0KPuBIoS4RWrfiEMXR43AHpIUJiYmkZGRL730Um1tbU1NzcOHD4cNGzZ8+HBc5xshpAip\n2QgH66SyCY9lFMT3EXezmhEA7NixIyAgQLJOgcfjOTs7Ozs7yzm/sLDwzz//fO2119QYI0KIUzAb\nKa2tNF9Nt8dygiEAVFZWzpkzZ8WKFUVFRQqeJhaLz549+/LLLy9cuLClpUWdESKEtFFeZVNQSlFQ\nSlFCVlVCVhXVjtmot1SefjhaYgekh7Rly5apU6du2bIlIiLCw8Nj5syZrq6uLi4uzs7O1AZ9xMOH\nD4uKigoLCzMzM2tqapycnHbv3j1t2jQNBY8Q0oC8yqaglIu0p80AEJ9dlRvlM+bCN5iNlECva9Dn\n3WP/nkN67rnngoODd+7c+cMPPyQmJlJfHjhwoIuLS79+/Zqbm5ubm+/evSsSiUj7qlWrlixZYmpq\nqpnAEUKawMhGdOkff+h4L4PegtlIQfRlv1X+yup4WTX5X1HDgAEDYmNjlyxZkpGR8dtvv124cOHR\no0ckD1HHDB482M/Pb+rUqbNmzcICB4T0kKxstLI5IxqzkbJUu+w3t4sa6AYOHLh48eLFixe3tbVV\nV1c3NjY2NjZ2dnZaWVmNGDHCxcVFI1EihLRNoPtAAAh0twaAhgNbMRv1BTvLfms/6WXfAGBmZqbW\n9YFu3ryZnp4uFApdXV0nTpzo6+trZCQzGMrVq1f5fP7ly5dFIpGbm1tISAiuGYEQO4JS/lf0lBvl\nQ1IRkCqGf2ajJKu5SZiNeok+jdRH3C5qYF9mZmZsbGxXVxfVMmPGjMTERB6PJ+esX3755d133+3u\n7jYwMCBrGn355ZfvvfdeZGSk2iNGSL8lZFWR4gWCykbCuHmMy2iS1dzkgXPnVTZRx6De0tu6Bg2s\nAFRTU7N69WqxWLxhwwY+n3/06NHQ0NBTp06tW7dOzlmFhYXvvPOOiYlJYmIin88/fvz466+/LhKJ\nNm7cePXqVdaCRwjFh7iSB7KyEQDQC8GRItQ0wsmtoT8NJKRdu3Z1dnZGR0eHh4dbWVl5eHhs3rzZ\n0dExIyPjzp07ss46c+aMSCRav359aGiopaWlu7t7bGzsk08+2d3dvXfvXjbjR0gP5VU20Z+2lp6/\nNt+RkY12T/kvyUaoj/oydsfdigbQSEIit9/OmTOHajEzM5s+fbpIJMrMzJR11sWLFwHgiSeeoDeS\nndcrKyvVFStCSEJr6XnJpW4Yq6bieF1v4bLfwH5CEolENTU1Li4uDg4O9Pbx48cDQEVFhawT/f39\no6OjGbuqk0Ui7O3t1RMsQuhvcaF/D9OtbM5Ycn4N/UtmXv4kG8Vn4zBdn6ik+Ju7FQ3AflFDXV1d\nR0eHra0to93GxgYAGhoaZJ0YFRXFaGloaPjyyy8B4F//+peqw0QI/UOgu3V8iKt30e4x1/9RUGfm\n5e+ckA60MT0yw0QlMKQ4+u2xraXnbUDvKhWZCUksFj948ICxYpAKCQQCALCysmK0DxgwAB7vj66I\n3NzcDz744O7du7NmzZo1a5Zqg0QISVp5L+PuhW/oLZcnLC7xXZKXUgSPFxACTEV9oNrbY4FrFQ0g\nmZA6OzunTp0aGBgYFhYWGBhobGys2vcjpd6S+/u1t7cDgLm5eY+vUFtbu2XLlhMnThgbG7/xxhsr\nV67s8ZSCgoKCggLyePLkyX5+fr2OGyH9Jr2griEYcJhOdVRyeyxj8onP51NXPz6f35fwWCBlyO7R\no0fZ2dnZ2dmWlpYzZ8589tlnJ06caGBgoJL3I5NADx48YLSTvtGgQYPkn75nz57Nmze3t7c/+eST\n77//vpubmyJvmpycTH8qJyGRnyXn/qxASH2kljBQ5d0MuVE+rASls1R4eyxRUFDAuABqM2ZC6tev\n35EjR06cOJGZmSkQCPbv379//35HR8dnn332ueeec3d37+P7kYQkFAoZ7WT2SP5etO+//356evqQ\nIUPWr18/ffp0xd/Uz8+PSkKTJ0+WegxjzXxc+AQhkJGNKv+9K/m0lFWV6cs3oL5T7vZYRlHD5OH/\nuMhreXKS0kMaOXLkyJEj33zzzYqKCpKZKisrd+zYsWPHjrFjx86dO/eZZ54hUz5KsLOzc3NzEwgE\nQqGQvvVfbm4uAAQEBMg68eDBg+np6e7u7vv37+/tu0dHR8sfppPcwYU8xZyE9Jnk/wszL3+b8NiR\nXlPEYX/f+kpqGeJCXTEVqYTKd4+l/znO5/O5l5AoHh4eHh4eq1at+uuvvzIzMzMzMy9dunTp0qVP\nPvlk5syZCxYsGDt2rBJvGRYWtm3btk2bNqWkpJCWsrKy/Px8JyencePGkZbW1tYrV67weDxSDg4A\nP//8s6Gh4ccff6x0LpSD8b+OajTz8sfhO6SfpGYjUlBHkOKFOMASBnXp+9gd5y5fCpV9jxgxYsmS\nJSNGjNixY0dZWVl7e/uhQ4cOHTrk6+u7atUqf//elbpHRkYeP348JycnKioqJCSktrY2NTXV2Ng4\nMTGRKnYQCAQLFiywtLQsLCwEgM7OzkuXLpmZmX322WeSL+jt7f3222/3KgY6qdmI+pJ+riiF9Jxk\nCQMOYrOjj3UNXL+dtoeE1Nrampubm5WVdfr0aVII179//5CQEC8vr8OHDxcVFb3yyiuJiYmhoaGK\nv6WlpWVqaurSpUtzcnJycnIAgEwLeXl5yTqlpKSEvDtVLkInWbPXK4ypI3qLnu9vj/QTZiPNotc1\ntJXm9+r6w+m7YkFWQnr48GFubu6JEyfOnj3b0dEBAEZGRkFBQWFhYcHBwWSX2IULF+bl5S1btuzb\nb7/tVUICAFtb20OHDtXX1xcXF7u5uUluIeHt7V1eXk499fHxoT9VIcntlgGgtfQ8bieM9FBr6fm7\nB7ZiNtIsfb49lpmQuru733jjjbNnz3Z2dpKW8ePHh4WFzZo1y9qaOWkZGBhob29fU1Oj3Hvb29v3\nNpOpHL2HS/2vo88rYicJ6QlFVqhDLFDV7bFc/MFJSUik4M3FxSUsLCwsLGzYsGGyThaJRBMmTJBc\nB4hDpPZwzb2m0HvN2ElCOk9WQR0XL2pc15dpJF2bQzI0NFy4cGFYWBhV8CaHoaHh559/rp7A2MD4\nH0j/qTM6SayGhRC7eiyoQyxT+e2xXMEsBzAyMvrwww8VyUY6hjFKjkvBIz0hmY1swmMxG2kPOWXA\nknShqOHs2bO//fZbr057//331RMPq+T/pHHUDuk8qdkISxg0TiUjNFwcbjUCgOLi4u+++65Xp+lA\nQmJ0eiT/E+KoHdJtmI20lnLTSDowkGMEAFOnTiWV3HqlxxyjkpV3EdJOmI20nBLTSFwfrwOSkHx8\nfHx89HqNXln/D3HUDukkzEbcosTFh6N/Pfd6jYPa2trc3FzqLiXuUqR7S/8viqN2SDdgNuIEJS4+\nOjBk1+uEdPz48eXLl1+5ckUd0bBJke4t1tohHYPZiKP05OIjZekgkUj0+eefZ2dn19fXi8Vixlfb\n29tNTEwcHR1ZCU9dGD9dOd1bHLVDOgOzEYcwbs9XhA7MIUnpIX3++ec7d+6srq5ua2trl2BtbR0T\nE8Pp1RmgNz85/O+KdANmI07r8W4kxf/I1mbMhNTR0bFv3z4LC4sPP/yQz+fPmjWLx+NlZ2efO3cu\nKSnJw8PD0dExMjJSI7GqieI/ObKunVqDQUgdMBtxUa+mkXRjkpuZkKqrq+/fv+/v779w4UIrK6uF\nCxd2d3dfvHjR1tY2JCTk66+/rq2t/eijjzQSqwopnldIx1mtwSCkVpiNOErpOWzuXrKYCen27dsA\nQO3T6uTkBAAVFRXkqYODQ2Bg4C+//ML1Kjul/5ro1TIeCGkc2VGC3oLZiEPoqUXxiw9Hx+tAMiFZ\nWFgAAJVvBg8ebGxsLBAIqAN8fX3b29tLS0tZC1HdevxrAou/EUdJ7iiB2YhbFE8tuvG3MjMhubq6\n8ni8kydPdnV1AYChoaGnp2dBQQF5CgDV1dUAIBQK2Y1Tlfo4+4fTSIgrsG/EdYy9kRS8+OjOkJ21\ntfWMGTPKysrmzJlz7NgxAHjppZdaWlo2btx469atI0eOHDp0CADc3d01EKyK9LY4EqeREBcxdiLH\nbMRFCl58dKPEDqSWfa9bt87Ly6uiooLs1Dd79mxLS8s9e/YEBgauXr26sbExICBg9OjRrIeqLXSj\na4x0G2MncrLbngbjQSoh6+KjA3cgEVISkq2t7f79+/ft2/fCCy8AgKmp6c6dOz09PXk8noWFxbx5\n8z777DPW41QXBf+UwGkkxCGSZXW4vxF3MS4+PY7acbd7BFJXagAAY2Nj+nKrPj4+hw8ffvTokbGx\nsYGBAVuxqUvfJ4Fw5W+ktSSzkVPCQU0Fg/pOkUuNzgzb9GItu379+ulANgKlurc4jYQ4QWqRN/7x\nxHXyi7973NqNQ6T3kKqqqi5cuHD16tU7d+5IPWD79u3qjIo9yv1fxUXtkHbCsjqdxNgslDFCo0uT\nCFISUm5u7qpVqx49esR+NCxQerwON5BFWo5RyIDZSGcw/m5m/EFMv6Zx/SfOTEgikWj16tWPHj0a\nPnz4rFmzrK2tNRKW9sNpJKRVGFNHWFanY+grfzP+INalv4+ZCUkgEDx8+HD48OFZWVkaCUjdlK6P\nVGI1eITYgWV1Oo8+QgO0P4glB2nZjkylmEUN7e3tQFvLTrf1pYujM2UtSAfo2FUJSWLUVVE/cfqP\nXgd+7syE5OnpaWZmdubMGWqtIB3Tl5pvHfh5I90jjJtHf4pTR7qKcUOSZLdYBzATEo/He/XVV+/e\nvZuWlqaRgLgCx+6QNsBCBv0h2UlidI904EcvpcruzTffLC8v/+STT9LT0z08PKysrCSPiY+PV3to\n6tGXNTYktyfBugakQVI3OtJUMIgFjJkk3SMlIR0+fPj06dMAUFFRQe2ExMDdhNRHjFoXTEiINXmV\nTQlZVQAQ6G4NAHGhrrgig74x95piEx4rOVKnG90jkJqQUlJSurq6xo0bN3bsWHt7e/ZjUp++r4lr\n7jWFSkitpedtQBd+CZCWy6tsCkq5SHvaDAANB7ZG047BFRn0BEk8ujdYR0gp+75+/bqPj8+ePXsM\nDXuxsJCeYGxPosFIkJ5gZCNiZXNG9L0M6qkuXZJQj8iP++6BreRypEt/iDATUr9+/QDA29tbJ7NR\n3xdpx2kkxDLJbOTXfoWejQCnjvSSTv7QmQnJycnJw8OjpKREI9FwAt4eizQi0H0gAAS6W7unbaS3\n6+SFCeknKd2g6OjoS5cuff311yKRiP2AWKOSno3u3QeAtEdQSlFQShF5nBvlkxvlmxvlu/Jehl/7\nFeqYJKu58xuCqMMQ4jRmD6m7u1sgEIwZM+bTTz/NyMjw9vYeMmSIsbEx47BVq1axFaEq9X0nJNCD\nykukDRKyqkjxAkEq6xh13nxTz+SBc6GyGQDyKpvIMQhxl5SEtG3bNvJYIBAIBAKpp3E0Iakcjt0h\nFsSHuJIHjB75Zd/FcPPvxwlZVYFRmJAQtzETEo/HW7FihUZCYYFKdp7HugbEgrzKJkaLlJ33rKbA\nzSoWg0JIvaQkpJiYGI2EwiF4eyxiU15l08oDGVJuPcn6XzbC8TqkAzRW233z5s3ExMQ1a9akpKTw\n+fxereXa1NT03nvvnTt3ri8BqCqLqGReCiGGuFBX+lOpSwTFZ2P3COkU6VuYA4BQKDxw4EBVVVV1\ndfWAAQOcnZ29vb3nz59vbm7e93fNzMyMjY2lJ6EZM2YkJibyeDxFTj9y5EhGRoanp+fUqVMVf1MV\nZg7cPRapW6C7NZk6is+u8r7wDf1LJBtRY3rkMEYCQ4iLpCek3bt3JyYmkr2RiKKiop9//jklJeU/\n//nPiy++2Je3rKmpWb16tVgs3rBhQ2ho6O3bt5OSkrKystatW7dx40b557a0tGRnZ3/22Wd9CUDl\ncBoJqQPJMQ0HttJvg708YXFyQxCkFFE1eJiKkM6QkpCys7O3bNnC4/GCg4O9vb09PT0bGhqKi4uL\ni4sFAkFcXJydnV1QUJDSb7lr167Ozs6YmJjw8HAAsLKy2rx58+XLlzMyMmJiYgYPHizrxKCgoFu3\nbonFYuXeVyUVDQSmH8QaxqIM8xuCoaFZ1sEIcZqUsu+EhIR+/fpt3749ODiYaifJ49dff42JiXn7\n7bd///13BYfXJBUVFQHAnDlzqBYzM7Pp06fv3bs3MzNz0aJFsk4MCAgg9+peunTp6tWryr27qtDr\nGu4e2GqegCkKqR5j6ijJai7jgNwoHxbDQUi9mEUNVVVVDQ0NQUFB9GxECQ4Onjdv3v3792Xdn9Qj\nkUhUU1Pj4uLi4OBAbyebpsva7YJISEjYsGHDhg0bnnzySeXendL3Lg52kpC6MW6DTbKamzzwHwkp\nN8oHi+uQLmH2kCorKwFg3Lhxsk4YO3bsnj17rl696uHhocT71dXVdXR02NraMtptbGwAoKGhQYnX\n1Ahc9hupG6N7ZBseG/+4liEu1BVTEdI9zIQ0ZMgQAKivr5d1QmNjIzxeFFwJpGsluQvtgAEDAKC5\nWS2D4wUFBQDgoNL6bLw9FqmVZJ03KV6IAyxhQL3A5/Opx+RKqM2YCWncuHGLFy/+5ptvzp8/Hxsb\nGxAQQM0VlZeXb9269fTp05MmTQoJCVHu/aytrQGgpaWF0V5XVwcATk6jS+o3AAAgAElEQVROyr2s\nfMnJycnJyUfGPKBa+ljUQL0ITiMhdbg235H+dOTBWk1FgriuoKAgOTlZ01EoSkqVXWxs7KVLl/74\n44/ly5f379/f0dHR3Nz81q1bpNs0aNCgTz/91MDAQLn3I0V0QqGQ0U4G64YOHarcy8qXlpbm5+fH\n+E/ed7jKKlIHqffAIqSc6Ojo6Oi/9xbm8/lyqsa0gZSVGoyMjL7//vuNGzfa29s/fPjw2rVrxcXF\n9fX1RkZGkZGRx48fJ8N6yrGzs3Nzc6utrWXkpNzcXAAICAhQ+pV7ReXDaziNhFSitfS8ru5OjVCP\npN8Yy+Px5s+fP3/+/IaGhpqamgcPHjg7Ozs7O0vuQ6GEsLCwbdu2bdq0KSUlhbSUlZXl5+c7OTlR\nxRStra1Xrlzh8Xik+k474TQSUjnsHiF9JnPpIMLW1layIq6PSDcrJycnKioqJCSktrY2NTXV2Ng4\nMTGR2jddIBAsWLDA0tKysLBQJW+qphXncJVVpEJ3D2yld7UxGyF9IzMh3blz58aNGw8fPpS6MkJf\nxtYsLS1TU1OXLl2ak5OTk5MDAEOGDFm/fr2Xl5fSr6kNWkvP2wBeQZDy6N0jMy9/TEhI30hJSK2t\nratWrTpz5oyc08rLy/vyrra2tocOHaqvry8uLnZzc5O8pcnb21vOW6xevXr16tW9ekcVrhtEh6us\nIlXBwTqEpCSkqKio/Px8ALC0tHR1dVV6iaAe2dvbh4aGqunFNQKnkZByGIsy2ITH4i8S0kPMhPTg\nwYPff//d3Nw8OTm5V5s7cIgK/6vjVQOpBHaPEALJsu/y8nKxWBwcHKyr2Ujl6AOAjMsKQorAbIQQ\nwUxI5NZUyaV9uE59+7piJwn1heRgHSYkpLeYCcnBwcHBweH333/v7OzUSECcg6usor7A7hFCFCkr\nNXzyySfV1dWbN2/u7u5mPyAWqLDKDqTdHqvCF0e6DbMRQnTMogaRSFRdXT1x4sS0tLQzZ874+flZ\nW1sbGTEPW7VqFVsRqoZa+y7022MRUhAO1iHEwMw0XV1dcXFx5HF1dXV1dbXU0ziXkFiDy34jBTE6\n05iNEGImJB6Pt2LFCo2EwhqVlyHgst+ot3CVIIQkSUlIMTExGglFfVpLzw9k671w7A4pAlcJQkiS\nlKIG+Wpra3Nzc7EGjw7rGlCvYC0DQlL1OiEdP358+fLlV65cUUc03IXF30hBuEoQQrJIWctOJBJ9\n/vnn2dnZ9fX1kkt9t7e3m5iYODqqePdVtVLTyqqy4LLfSA7sHiEki5SE9Pnnn+/cuVPWCdbW1q+/\n/rrKN0niOlz2GykCsxFCcjCH7Do6Ovbt22dhYfHhhx/y+fxZs2bxeLzs7Oxz584lJSV5eHg4OjpG\nRkZqJFYOwWkkJAlvPEJIPmZCqq6uvn//vr+//8KFC62srBYuXNjd3X3x4kVbW9uQkJCvv/66trb2\no48+0kisKqGm8XpzryksDAYiTsPuEULyMRPS7du3AWD8+PHkqZOTEwBUVFSQpw4ODoGBgb/88gtW\n2cmHy34jBsxGCPWImZAsLCwAgMo3gwcPNjY2FggE1AG+vr7t7e2lpaWshdh37Ayg4SUGyYKDdQgp\ngpmQyBaxJ0+e7OrqAgBDQ0NPT8+CggLyFADIYkJCoZDdODkG6xoQHXaPEFIEMyFZW1vPmDGjrKxs\nzpw5x44dA4CXXnqppaVl48aNt27dOnLkyKFDhwDA3d1dA8GqgvpmevD2WCQVZiOEFCTlxth169Z5\neXlVVFTk5uYCwOzZsy0tLffs2RMYGLh69erGxsaAgIDRo0ezHqryxliwtI8G3h6LGFpLz+NgHUIK\nkpKQbG1t9+/fv2/fvhdeeAEATE1Nd+7c6enpyePxLCws5s2b99lnn7EeJ/dgDwmBRPcISzERkkPK\njbEAYGxs7OPjQz318fE5fPgwWyFxGN4ei+gkl/TGVYIQkqPXa9lxHZtXBOwk6TPGYB0u6Y1Qj3Q/\nIbE2gQR4eyyiwVoGhHpL9xOSBuHtsXoLB+sQUgImJBXDP4QR4zZYHKxDSEG6n5DGWHRRj1keT2sr\nzcdpJD2Eg3UIKUf3ExLLcGRGz0lmI/yVQEhBmJBUj94Pw2kkvYJr1iHUF/qVkNj5WxWvQXoLB+sQ\n6gv9Skjsw9tj9Ycwbh79KWYjhHpL9xOSd3/27kMicJVVPSRZ540JCaHe0v2EpBG4yqpeYUwdAXaP\nEFIKJiS1oHeSsIek8xjZyCnhoKYiQYjT9CshsXYfEvaQ9Ifk1BHWeSOkHN1PSGyuZUfBaSQ9gVNH\nCKmQ7ickTcFOks7DqSOEVAsTkrrgNJJuY+wuATh1hFCfSd+gT2vdvHkzPT1dKBS6urpOnDjR19fX\nyKgX3wKbg/vYQ9Jt1E6MBE4dIdR3XEpImZmZsbGxXV3/Wyx1xowZiYmJPB5P1ikamUAiJKeR8IKl\nMyQLGXCwDqG+48yQXU1NzerVq8Vi8YYNG/h8/tGjR0NDQ0+dOrVu3TpNhyYTLmqnkxiFDLi7BEKq\nwpmEtGvXrs7Ozujo6PDwcCsrKw8Pj82bNzs6OmZkZNy5c0fT0UmHXSJOy6tsCkopCkopSsiqSsiq\nIo2ShQzOCemaiA4hHcSZIbuioiIAmDNnDtViZmY2ffr0vXv3ZmZmLlq0qMdXYH9zcZxG4qi8yqag\nlIu0p80AEJ9dddD21zEXvqEfiYUMCKkQN3pIIpGopqbGxcXFwcGB3j5+/HgAqKiokHUifXc+9uHd\nSFzEyEaUlc0ZjGyEhQwIqRY3ElJdXV1HR4etrS2j3cbGBgAaGho0EZRCcBqJc2Rlo+h7GfQWLGRA\nSOW4MWQnEAgAwMrKitE+YMAAAGhubtZATIqxCY9l1Acjrgh0HwgAge7WraXnl1zHbISQ2nEjIZFS\nb0NDZn+uvb0dAMzNzRV5kW9+vfCXYFF0dLSfn5/KI1REW2k+Fn/LkVfZRGoHAt2tASAu1JXlAIJS\niqjHuVE+JIzW0vM3vl5DPyzJam5JQ1Auy8EhpJSkpCQ+n6/pKBTFjYQ0ePBgAHjw4AGjnfSNBg0a\npODr8Pn8goICNhOSudcUMy9/rGiQT1YRAZUVWJCQVUXelyDvK1lTl2Q1N3ngXKhszqtsYi02hPoC\nE5KKkYQkFAoZ7WT2aOjQobJOpO/O5zd58iCXaZMnT1ZPjAq5e2CreYIO9pBIvQa5dkvNvmQujfQO\nGYNdsooIACAo5SKbOYkSH+IKcrIRAAAkZFUFRmFCQtqOccVLTk7WVCSK4EZCsrOzc3NzEwgEQqHQ\n2dmZas/NzQWAgIAARV7Ez89vZni0ukKUjT6N1FaaH5RSpKkhKZUj67kp0v8jx5B/yVWepCWb8FhZ\n2YgISrko3hqsmnDlyqtsoj+VunCqrdVcyK5iIRiEVMXPz48aE+Lz+ZiQVCMsLGzbtm2bNm1KSUkh\nLWVlZfn5+U5OTuPGjdNsbPJJFH/nx1d6AutDUirUWnq+rTS/j0WD5PS7B7ammXoWmHjyTT3Nvfzh\n8VhZvEav++5pr91tv0Jv+buKIet/UXHxB4eQluNMQoqMjDx+/HhOTk5UVFRISEhtbW1qaqqxsXFi\nYqJksYNWyatsumHq6ff4Ahd9L2OR6QfksaaGpPpCsuvQR37tV/zar8A9MLP1N/eaYhMaCwBxoa7U\nUB6pNciN8lXhm0qKC3XNS7no134l+l6Gn9RspOk0iZDO40xCsrS0TE1NXbp0aU5OTk5ODgAMGTJk\n/fr1Xl5eCr4C+ys1EEEpF/2s5qa1b5T1VXaGpPpOfioiHy99foh0Dcn0EjWsJ+cV2krzSceLvEhg\neGyg+8C8ymZSa6DuIoJAd2vJhRiAlo2oMT0yw6QDI64IaRvOJCQAsLW1PXToUH19fXFxsZubm4eH\nR4+naHC1b1n82q+8PfTWlpsOPR+qNeTMFVFLi8oqZyft1FfJwXcPbM2rbJK8+hPUaJ631VxvAFJH\noNYiAvINjpH4BndP+a+51ZS8lCJ4XPsHmIoQUhsuJSTC3t4+NDRU01EohLqvhW/qSS/+ftupbvNb\nkSwPSSlNVseIpCLlbquyCY9NTinKcwkm43WMRRAopD36XkaS1Vzzdn8A1X9EsnIt39Rzkf0HcBPg\nJg7TIcQS7iUkrmDc10LXWnreBmID3a3ZHJJSgqyLdV9SEQPf1JNv6lkyYfFB21yQPaAXfS8Dzmdc\nO7/GJjzWzMtfJW8tp9tHL+9myI3y6ftbI4Sk0qOEpMElEuJDXG2c/lH8Lblkg7bd19Jael5y0SMV\npiJSREA9parAqfE6qWdR7dTxSrx1jyOQ80w9k6UVo3OuAgUhbtHlhKTZ1bUZ97VIvYgHulvL6kVp\nltRhOtUu4Bbobk2qA+Kzq/JoCx9QmSZ909q20nxGwRs9QvIv1WGS03OiCitIwbqskKhvMBBAvDWY\nrGNEfo5xoa6YihBSN11OSNojr7IpDlzp00iSSzZoz/VOMhupsGNER6oDSC01mU4jKYrkgLyGYLAP\nBoCGyRd7rM2TbCdVfwou2iQ115Lw4gBLGBBiCSYkdWEMSYHEkg2tpefjs9s1EdrfpC5mKjUbsbYp\nqtQbfUi26O3duH1JRQghjcCEpC5ShqT+2cM4XdkMYAqauK9F1mKmNf2/YFzHWbhe50b5yFk9iCoi\nMPeaYu41hcpM8gffeqSmPh9CqC/0JSFp5K5YySGpNNqSDXcPbAX7D4D1+1pkLWaaVr+x7br0FQrU\nKtDdWlZOklpE8Hdmglh4vIgR/YEc1K27mIcQ0k66nJC0cNOHJNqSDeQWHL6pJ8sxyMpGjPIBp4SD\nrF24A92tlSsiIMkJAEh+AhmVLJiBEOIEXU5IWoL+5z8j/fi1X9n81gJNBAVA2xHVPe01DWYjikqK\nCDD3IMRdmJDUjjEkxaeN2r3tdMuZxeI6qTuiCuPmtf0zGy2y/8D8tGmuomsEIoSQamj1OtkqpNk/\nnMmQVHyIa3yI62XfxVQ7mZxnJwaycgR129P/stE/BzYX2X/AN/UkVRjsBIYQQoS+JCRtuLzGhbrG\nhbpufiuSXmGh2q0cFETtiMrIRrun/JcaVEzIwjXcEEKs0s2ElFfZZBD7azztkpr3V7NB7K/akJbg\nnwvesFZ50eOOqBqZN0IIIYoOJiSqrHlyB3PVmaCUi9qQkyT2kGV7iaMGBbKR9qwcgRDSEzqYkOTc\nZdnjV1nD/qgddbfTyuYMxnYPVDbCHVERQhqkgwmJExijdix0ksjKEQdtf2VkI+pGUfqOqPEhrrgN\nHUKIZTpV9s0oa3b/fmBb6d9PN7+1YJ6pp/ZsiGfuNUX+WqvqsPJext1/btJ6ecLiEqu5uCMqQkgb\n6E4PSbKsmVEvQDbEAwBymMYnk1juJElWMSRZzZ3fEPx4qT1t3AUDIaRXdCch0ZGyZvk0XtbMKCJQ\n60wS2ZKO3iJrU1TcERUhpCm6k5AU6fFoW+UYO50kyb1fL09YLCsbadtHhBDSHzo1h0QhG+LJP0Yb\nrrzUjt2EOmaSJLORTXjsvPBY8eM+Iu6IihDSErqTkCQ3xBt5sHbUqFEAsOPdFSO1tayZnpNIJ0mF\nd6dKzUZUtwx3REUIaRXdGbIjZc2P98D+R82CNpc1MzYcUuFMkmQ2IrvSqer1EUJItQzEYrGmY1Ax\ng9hfqcc2144CwJiZC4FW1izeGqyRwGRh1L+pZAkfqdmItZ3IEUJaiM/nL1q0CADKy8s1HYt0utND\nkuruyGfujnxGy8uabcJj6Qs3MBKJEjAbIYS4SAcTkvzCZe0sa2aMpAnj5in9UpiNEEIcpYMJiWyI\nJ/VLWlvWTBZuoJ62leYrN5mE2QghxF06mJCAtiGezbWjZnevBboPzI3yEW8N1s5sRDDShuTCCj26\ne2ArZiOEEHfpZkIi4kJdba4dc87/fPPELm1ORRSnhIP0p73KScK4eYyDMRshhLhFlxMS55h7TZGs\nAu8xJ7WWnr8235GxcJ9NeCxmI4QQt+jOjbG6gSQkxvINIFH1QJAV6iT3nKXf/YoQQlyBCUnrSM1J\ndw9sNfPyp+5PIqveSd3+HHciRwhxFCYkbSSZkwCgrTRfagaikIUYMBshhDgKE5KWkpqTZMFUhBDS\nAVjUoL1swmNHHqyVPxtk5uXvlHDQOSEdsxFCiOuwh6TtSIUC6SrRN0wiiQrzEEJIZ2BC4gaSfmwA\na+cQQjoLh+wQQghpBUxICCGEtILGhuxu3ryZnp4uFApdXV0nTpzo6+trZKRoME1NTVu2bHnmmWem\nTp2q1iARQgixRjMJKTMzMzY2tquri2qZMWNGYmIij8dT5PQjR45kZGR4enpiQkIIIZ2hgSG7mpqa\n1atXi8XiDRs28Pn8o0ePhoaGnjp1at26dT2e29LScujQoc8++4yFOBFCCLFJAz2kXbt2dXZ2xsTE\nhIeHA4CVldXmzZsvX76ckZERExMzePBgWScGBQXdunWL03uu8/n8goKCyZMn+/n5aToWbYSfj3zk\n8wGA6OhoTceipZKSkgA/H87SQA+pqKgIAObMmUO1mJmZTZ8+XSQSZWZmyjkxICDghRdeCA8P/7//\n+z+1R6keSUlJycnJmo5Ce5HPh1xzkaSCgoLk5GQ+n6/pQLQUn8/Hz4fT2O4hiUSimpoaFxcXBwcH\nevv48eP37t1bUVEh59yEhATy4NNPP7169aoao0QIIcQ6tntIdXV1HR0dtra2jHYbGxsAaGhoYDke\nhBBCWoLtHpJAIAAAKysrRvuAAQMAoLm5WR1vqm1DQNoWj7bh8/k46iIffj5SUf+z8PORSvuvPGpM\nSLdv316+fDm95aeffiKl3oaGzJ5Ze3s7AJibm6sjkuTkZK2audG2eLQNn89ftGiRpqPQXvj5yIef\nD3epMSF1dnaWlpYyGkkR3YMHDxjtpG80aNAg9cWDEEJIm6kxIQ0ZMuTs2bP0Fh6PRxKSUChkHExm\nj4YOHaraGMrLy1X7ggghhNREjQmJSj90dnZ2bm5uAoFAKBQ6OztT7bm5uQAQEBCgvngQQghpMw3c\nhxQWFgYAmzZtolrKysry8/OdnJzGjRtHWlpbWy9cuFBcXMx+eAghhDRCAys1REZGHj9+PCcnJyoq\nKiQkpLa2NjU11djYODExkSp2EAgECxYssLS0LCwsZD9ChBBC7NNAQrK0tExNTV26dGlOTk5OTg4A\nDBkyZP369V5eXuwHgxBCSEsYaHBpuPr6+v9v796DmrjePoAfiBEowpSWgSkjQklZCIjKxRGVWAYB\nIWgKRdoqba0dy1TBS4fRUWzrBcpYLmJ1Si/CoGBRW4ktVUDayj1MqcZ0wASDYEUHFCIKDQlNTPL7\n47zuuxO8LBAgic/nLzl5duF8XTjZ3ZM9IpHIw8PD09Nzun4GAAAARmI6ByQAAACABCvGAgAAMAow\nIAEAADAK07aEuRl4ykrqzc3NLS0t3d3dPj4+S5Ys8fb2trCw0KtRKpWnT59ubW0dGRlxd3cPDw/3\n9/fXq5nIQu/Tbnz59Pf3V1RUPGmflpaW1KfCmHQ+aMKHkFAovHjx4s2bN+3s7Ly8vBISEkY/fMuk\nI5pgPnRqTDSf9vb2lpaW1tZWrVbr4eERGRmpdyeeTr8MVWNAcA9p/IqLi7/44ovdu3e///77ZKNG\no0lPTz958iS1ksvl5uXlUVtu376dmJh4584dBoNhY2Mjl8stLS137Nixfv16smaCC71Pu/HlIxQK\n16xZ86R9MhgMsViM/23q+aCJHUKZmZnFxcXU318nJ6eCggIvLy+yxdQjGnc+NDM00XzKy8t37typ\n0WgsLP7vDziTydy1a1diYiIuoNMvQ9UYmA6MnVwu5/P58+fPJwji+PHj1Jd++OEHgiBiYmKEQqFC\noaiurl63bh1BEIWFhWSNRqOJiYkhCCI7O3toaEin0wkEgsDAQF9f3+7ublxz8+ZNX19fNpt9+vTp\nBw8eSKXSzZs3EwSRlpY2lT0dn4nk09/ff+JxPvvsM4IgkpOTcZlJ56Ob8CFUVVVFEERYWFhZWdng\n4GBzc3NKSgpBECtWrNBqtbjGpCOaYD50akw0n5aWFm9v7wULFlRVVQ0ODl6/fj0nJ4fNZrPZbIlE\noqPXL0PVGBwMSGMWGhrq5eVFPEL9bdFqtUuWLCEIorm5mWxUqVQRERFsNlsul+OWc+fOEQSxbds2\n6m6zsrIIgjhx4gT+Ev/9zc/PJwsUCkVoaKi3t3dfX98kdm/CJp7PaCMjI1wul8vlKhQK3GK6+egM\nEdG2bdsIgigtLSVrFApFUFAQQRCdnZ24xXQjmmA+NDM00Xxyc3MJgigvL6c2JiUlEQTx+eef6+j1\ny1A1BgeTGsbsKSup37lzRyaTvfTSSwsXLiQbmUxmcHCwRqMh18PF90ioVyEQQps2baqoqIiOjsZf\njnuh92k38XxGy8nJuXHjxsGDB21sbHCL6eaDDBFRX18fQsjNzY2ssbGxefnlly0sLGxtbXGL6UY0\nwXxoZmii+Vy5cgUhFBwcTG3Ez2Pr7OxE9PplqBqDgwFpzPbt25eenp6ens7hcPReunfvHkKIxWLp\nXWPFt5qpvwmzZs3y9/dXKpV//fXXuXPnxGKxjY0Ni8XCC3A8ZaF36n6M08Tz0dPY2FhSUpKYmEje\nHTHpfJAhIsLzXwoLC7VaLW75/fffb9y4MXfuXGdnZ2TiEU0wHzo1ppvP4sWLN2/erPfc6uHhYYSQ\ns7MznX4ZqmYymMB8EhOC37GKRKLh4WHyjSp69M4F/y8+ePBgYGDA29v7jz/+SE1NVSqVuMbX1zc9\nPR0/P8lcF3qnk48euVy+a9cuOzu7lJQUstFc80G0I9q4caNEImlsbAwJCVm2bJlEImlvb3/xxRd3\n7NiBC8w1Ijr50Kkx3Xw2bdqk1yKTyb755huE0PLly+n0y1A1kwHOkAzJzs4uKChIrVbz+XzcotPp\nKioqGhoaEEIDAwMIocHBQYRQb29vSkqKm5tbWlpaZmZmWFjY1atXk5KScM20LPQ+Bejko6e0tLSv\nry8lJYWahrnmg2hHZGtr+957782cOfPevXtnz55tb29HCL366qvkimLmGhGdfOjUmE0+NTU1PB6v\np6cH32Sl0y9D1UwGOEMysD179rz99tsZGRkXLlyYM2eOQCDo7e0NCAgQCoUODg4IIYVCgRAaHBzc\nsGHD9u3b8Vbx8fEfffRRfX19YWHh9u3bp2Wh96nxzHyo/vvvv+PHjzs6OpLzWTEzzgfRi6igoCAn\nJ8fFxSU+Pj4iIqKjo6Oqqqq6ujouLq6iosLR0dGMI6KTzzNrzCCfnp6erKysyspKJpOZnJyMLyHQ\n6ZehaiYDnCEZGJ4As3z58q6urp9//tnOzm7nzp34liM+2yXPgj/88EPqhlwuFyGE3+qa8ULvz8yH\nis/ny2SyuLg4vc/imXE+iEZEWq326NGjVlZWJ06cSE5OxvObjxw58tZbbw0ODhYVFSGzjojOIfTM\nGlPPp7S0NDo6urKyksPhlJeXb9myBQ8edPplqJrJAGdIhufq6pqfn48Q0mg0+Lbqnj170KMb0Y6O\njkwm08LCQu/vr5+fH3p0PWGKF3qfYk/Ph6TVagsLCxFCq1ev1tuDeeeDnhVRW1vbgwcP/P39XVxc\nqFtFRET8+OOPUqkUmXtEdA6hp9eYdD5paWllZWV41Z7XX3+d+hKdfhmqZjLAGZIhaTSarKys77//\nHn+Jfw0ePnxYX19vY2MTEBCAELKwsJg9e7ZKpert7aVu++effyKEPDw80KOF3nt6evQOCFNf6J1O\nPiSxWHzr1q3AwEB3d3e9/ZhrPoheRPi98K1btzQaDXVbPOMOX5Iy14jo5EOnxnTzOXPmTFlZGYvF\nOnfunN5ohOj1y1A1kwEGJENiMBjnz5/Py8ujzkLh8/k9PT3x8fFMJhO34E8gffvtt2SNTqfDU/vD\nw8NxC52F3k0OzXywpqYmhFBoaOhjd2WW+SB6EXl6ejKZTJlMVltbS922vLwcUc4SzDIiOvnQPMxM\nNJ9ffvnF0tIyMzMTzy8YjU6/DFVjcIy9e/dO0q7NnkAgEAqFy5Yto/73qFQqgUDQ1NTk7OysUCh+\n+umn7OxsR0fH3Nxc8k4gm82urKxsbGy8du2aRqORSqV5eXlNTU2LFi0ip+16eXnV1dVdunRJIpGo\n1eqLFy/iCw4FBQX4gybGb9z5YEeOHLl9+/aWLVv0PgmBmUE+aLwRzZgxY9asWQ0NDTU1NSqVamho\nqLq6OjMzUyAQeHl57d+/H59CmUFE4z6E6NSYYj5qtTo9PX3mzJmdnZ1nR+no6Fi6dCmdfhmqxvAm\n6QkQz4Ps7OzRD9p6+PBhRkYGm80mH3yycuVKqVSqt+39+/fx7WhSWloa+VwcrL+/PzY2lixYtmxZ\nRUXFpPfKcCaSj1KpnDt3ro+Pz8jIyJP2b+r56CYWUXFxcXBwMPUQ+vjjj+/evUutMfWIxp0PzQxN\nLh+hUEg82bp163AZnX4Zqsaw4Gnfk+LOnTtSqXRgYMDNzW3+/PmjZ09ifX19bW1tL7zwgpeX1+hJ\nz5hZLvROMx86zDIfRC8ipVIpkUi6u7vt7e1ZLBb1SUJUZhkRnXxoHmZmmQ+i1y9D1RgKDEgAAACM\nAkxqAAAAYBRgQAIAAGAUYEACAABgFGBAAgAAYBRgQAIAAGAUYEACAABgFGBAAgAAYBRgQAIAAGAU\nYEACAABgFGBAAgAAYBRgQAIAAGAUYMVYAGh5+PChVqtlMBh4wTcqlUqFEMILAZONfX193d3dBEHY\n29s/aZ8DAwP//PPP8PCwk5OTu7u7lZUV9VWNRoNXO2UwGMPDw2Kx2N3dHS/lCYBZgjMkAGg5cOCA\nn59fcnKyXvu1a9f8/PwCAwP//fdf3HLhwgUOh8PhcBITExctWhQbGysQCPS2kslkW7ZsCQkJWbNm\nzYYNG3g8XkhISG5uLl71FSsqKvLz8ysqKmpoaAgLC3v33Xfr6rCyiAcAAAReSURBVOomtY8ATC84\nQwKAFh6PV1JS0tTUJJfLZ82aRbbjpX5DQ0PxmdBXX32Vn59vZWXF4/FcXFzEYrFAINiwYcO+ffsS\nEhLwJmq1Oikp6erVqz4+PhEREUwmUyQSNTc341W3U1NTqd+3q6vr66+/VigUr7zyiq2t7dR1GICp\nN6mrLQFgTiIiIgiCKC8vpzZGRUURBFFdXa3T6cRisbe398KFC6lrwf32228+Pj6+vr7379/HLXiZ\ntZiYGLVaTZaVlJQQBBEZGUm2HD16lFx4TW/lPQDMElyyA4CuN954AyFUWVlJtnR0dHR1ddnb24eG\nhiKEDh48qNVqP/nkE+pSZuHh4RwOR61W//rrr7hFpVKtWrVq48aNM2b8/yWKVatWIYTu3r2r900d\nHBwOHz7s5OQ0Wb0CwGjAgAQAXXjMaGxsVCgUuAUPTtHR0UwmEyEkEokQQiEhIXobLl26FCHU0tKC\nv1y0aFFOTk5MTAxCSKvV3r179/Lly3v37kUI6UYtmLl48eKnTIsAwJzAPSQA6JozZ86CBQtEIlFN\nTQ0eTvANJDxQDQwMDA0NIYSio6P1NsRTFQYGBsiWkZGR8+fPnzp1SiKRqNVqhNDoyXsYTKsDzw8Y\nkAAYAx6PJxKJLly4EBMTc/369c7OThcXl6CgIIQQOcsuKirqsaPLnDlz8D+uXLmSlJQ0NDRka2vL\n4XA8PDw8PT39/f0jIyOpE8cBeN7AgATAGHC53MzMzPr6eqVSSZ4e4VFk9uzZDAZDo9GsXbs2ICDg\nKTvZv3//0NDQ2rVrd+/eTd5GkslkU/DzA2DM4B4SAGPg4ODA4XCUSmVdXR0ekPBMB4QQg8HA50C1\ntbV6Wx07duydd97h8/kIIZVKde3aNYRQUlISdVKDUChEj7uHBMDzAwYkAMaGx+MhhL777ruOjo55\n8+axWCzypfXr1yOEqqqq5HI52djV1XXo0KG///573rx5CCEmk2ltbY0QunTpElnT29t7+PDhKesC\nAMYJLtkBMDZhYWG2trZisRgh9Oabb1JfSkhI4PP5IpEoPj4+NjbW2dlZKpWeOnVKqVQmJye/9tpr\nCCELC4uoqKiysrLMzEyJROLm5nblypXa2loXFxcHB4f79+8XFBRwuVwXF5fp6R4A0wcGJADGxtra\nesWKFXw+39raeuXKldSXLC0tjx079uWXX548efLQoUO40dXVdevWrdTKXbt29ff319fXFxYW4h3y\neLxPP/20tLQ0Ly8vOzubxWLBgASeQxZwzRqAsSopKcnIyIiLiztw4MBjC2QyWVtb271795ydnYOD\ng6n3ikhisbizs9PV1dXX1xd/jAlv2NPTw2azyRYAnh8wIAEwZqtXr25tbT1z5oyfn990/ywAmA+Y\n1AAAXfjzrbW1ta2trQEBATAaAWBYcA8JALpSU1MvX76MHze3devW6f5xADA3MCABQJejo6NGowkI\nCPjggw+Cg4On+8cBwNzAPSQAAABG4X9EsfJwNbI8ZQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\bWarning: Matrix is close to singular or badly scaled. Results may be\n",
"inaccurate. RCOND = 8.677742e-17.]\b \n",
"[\b In pymat_eval (line 31)\n",
" In matlabserver (line 24)]\b\n"
]
}
],
"source": [
"A = t.^0;\n",
"for j = 1:m-1\n",
" A = [A,t.^j];\n",
"end\n",
"b = anomaly;\n",
"\n",
"c = A\\b; % coefficients, from degree 0 to m-1\n",
"\n",
"p = @(x) polyval(c(end:-1:1),x-1955); % interpolating polynomial\n",
"plot(year,anomaly,'o')\n",
"hold on\n",
"fplot(p,[1955 2000])\n",
"title('World temperature anomaly')\n",
"xlabel('year'), ylabel('anomaly (deg C)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As intended, the polynomial interpolates the data, but it obviously gives a lot of unphysical nonsense. This phenomenon, which is common with interpolating polynomials over equally spaced times, is an example of _overfitting_. \n",
"\n",
"We actually get a better approximation by reducing the degree to 3. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\n",
"\n",
" 10 4\n"
]
}
],
"source": [
"A = A(:,1:4);\n",
"size(A)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now have an overdetermined system of linear equations. The easiest way to define a solution is to minimize the 2-norm of the residual--i.e., least squares. In MATLAB we use the same backslash operator as for square systems, even though the algorithms are very different. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4AkaEi4jXuZr6AAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAyNi1TZXAtMjAxNiAxNDo0NjozNZhmDG0AACAA\nSURBVHic7N1rQFTV3gbwPwyIeAERBEGQAIEQU0HEvIRgBqkdszRLiW4eU0mMDlqZJSBZ6aulYJSm\ncYrStCRLRSAJTZMYEkkBReMiowiKgIpcBGbeD6v2mebGMMyd5/dpZrH37P9sYJ5Ze6+9tolIJCIA\nAABdM9V1AQAAAEQIJAAA0BMIJAAA0AsIJAAA0Atmui4AupaWlvbrr7+yxwkJCf369WOP29vb33zz\nTfbY29v75Zdf5lYRCARbtmxhj//973/7+Pj0vIxffvnlhx9+ICJ3d/dXXnlF8cL79+/Pz88nIn9/\n//nz5/d86wDq1a2/Z9ASEei9L7/8kvt95eTkcO1nzpzh2l1cXMRX2blzJ2s3NTW9fv26Wsr46KOP\n2Gs+9NBDXS68aNEitnBERIS8ZVpbW1f+rbGxUS1FGi7sDS3r1t8zaAd6SAYgLCzMxMREJBIR0a+/\n/hocHMzaCwoKuGUEAkFNTc3QoUPZU65H5e/vP2TIEK2Wq7S2trZNmzaxx6+++qq1tbVu69Et7A0A\nnEMyAPb29uPGjWOPT548ybWLBxIRsUNkDBdIM2bM0HyBAABqgB6SYXj00Ud///13Ivrtt9+EQqGp\nqSn9HUgjRoz4888/iSg/P/9f//oXEd24cePixYvciuKvc+7cuTNnzpw7d46IHnjgAT8/vwceeEB8\ngYqKiitXrhDR8OHDXV1dm5ubjxw50rdv31mzZikor729/fTp0/n5+WZmZlOnTh05cmSX7+jatWt1\ndXXcU4FA0N7ePnz4cB6Px1o6Ojp+++23s2fP1tTUjB07dvz48S4uLtzyly9fvnbtGhE5OTkNHz78\n1q1bmZmZt27deuSRR+677z62TGVl5a+//nrjxo3x48dPnjxZfOt//vknW/2+++5zcXEpKio6fvx4\nZ2fnuHHjAgMDzc3NJapVXIwy++3WrVsFBQWlpaWNjY0BAQGBgYFWVlZd7o2KigpWp62trfheLSws\n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\nWVp1AAAAAElFTkSuQmCC\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"c = A\\b; % coefficients, from degree 0 to 3\n",
"\n",
"p = @(x) polyval(c(end:-1:1),x-1955); % fitting polynomial\n",
"plot(year,anomaly,'o')\n",
"hold on\n",
"fplot(p,[1955 2000])\n",
"title('World temperature anomaly')\n",
"xlabel('year'), ylabel('anomaly (deg C)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This polynomial certainly describes the data better."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Three least squares algortithms\n",
"\n",
"There are three distinct ways to solve the general dense linear least squares problem. First, we can pose and solve the normal equations."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\n",
"\n",
" 4 4\n"
]
}
],
"source": [
"B = A'*A; z = A'*b;\n",
"size(B)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\n",
" -2.6157e-02 -2.6157e-02\n",
" -9.0823e-03 -9.0823e-03\n",
" 7.8573e-04 7.8573e-04\n",
" -7.7483e-06 -7.7483e-06\n"
]
}
],
"source": [
"format short e, format compact\n",
"[c B\\z]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Second, we can use a thin QR factorization to express the range of $A$ orthonormally, and reduce to a triangular square system."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\n",
" -2.6157e-02 -2.6157e-02\n",
" -9.0823e-03 -9.0823e-03\n",
" 7.8573e-04 7.8573e-04\n",
" -7.7483e-06 -7.7483e-06\n"
]
}
],
"source": [
"[Q,R] = qr(A,0); z = Q'*b;\n",
"[c R\\z]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And third, we can use the SVD to orthgonalize both the range and the domain, ultimately getting a diagonal square system."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\n",
" -2.6157e-02 -2.6157e-02\n",
" -9.0823e-03 -9.0823e-03\n",
" 7.8573e-04 7.8573e-04\n",
" -7.7483e-06 -7.7483e-06\n"
]
}
],
"source": [
"[U,S,V] = svd(A,0); z = U'*b;\n",
"[c V*(z./diag(S))]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the coming chapters we will take a deep look at why mathematically equivalent algorithms difffer when implemented numerically. It turns out that each of the three algorithms above has a set of problems on which it might be considered the 'best'."
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Matlab",
"language": "matlab",
"name": "matlab"
},
"language_info": {
"codemirror_mode": "octave",
"file_extension": ".m",
"help_links": [
{
"text": "MetaKernel Magics",
"url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
}
],
"mimetype": "text/x-octave",
"name": "matlab",
"version": "0.11.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment