Skip to content

Instantly share code, notes, and snippets.

@MInner
Last active April 8, 2016 07:28
Show Gist options
  • Save MInner/4475caa696be311f8b0ddd96ebf619e5 to your computer and use it in GitHub Desktop.
Save MInner/4475caa696be311f8b0ddd96ebf619e5 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from __future__ import print_function\n",
"import autograd\n",
"import autograd.numpy as np\n",
"import autograd.numpy.random as npr\n",
"import climin.util\n",
"import autograd\n",
"import itertools"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# utils -- don't read that\n",
"\n",
"def __init_pack(weight_template, initializer=npr.randn):\n",
" sizes = [np.prod(wi) for wi in weight_template]\n",
" x = initializer(sum(sizes))\n",
" idx = np.cumsum(sizes)\n",
" return x, [mtx.reshape(shp) for mtx, shp in zip(np.split(x, idx), weight_template)]\n",
"\n",
"def __unpack(x, weight_template):\n",
" sizes = [np.prod(wi) for wi in weight_template]\n",
" idx = np.cumsum(sizes)\n",
" return [mtx.reshape(shp) for mtx, shp in zip(np.split(x, idx), weight_template)]\n",
"\n",
"def __pack_loss(f, tmpl):\n",
" def packed_loss(x, *argv, **data):\n",
" var = __unpack(x, tmpl)\n",
" return f(*(list(var)+list(argv)), **data)\n",
" return packed_loss\n",
"\n",
"def build_objective(loss, weight_template, data_generator, optmization_method, opt_params={}):\n",
" x, var = __init_pack(weight_template)\n",
" __test_func_run(loss, var, data_generator)\n",
" \n",
" grad = autograd.grad(__pack_loss(loss, weight_template))\n",
" optimizer = optmization_method(x, grad, args=data_generator, **opt_params)\n",
" return optimizer, var\n",
"\n",
"def repeat_multiple_generator_warper(batches):\n",
" return itertools.cycle([ ([np.array(x) for x in batch], {}) for batch in batches] )\n",
"\n",
"def __test_func_run(func, var, data_generator):\n",
" try:\n",
" batch = next(data_generator)\n",
" argv = list(var) + list(batch[0])\n",
" func(*argv, **batch[1])\n",
" except:\n",
" print(\"WARNING: Error in function specs testing\")\n",
" raise"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"## dataset generation:\n",
"## dynamic process with noise + slicing into batches\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"def build_rnn_testdata(n_hidden_dim=10, n_input_dim=10, n_steps=100):\n",
" \"\"\"\n",
" returns: (X, y)\n",
" \n",
" x is (n_steps, n_input_dim)\n",
" h is (n_steps, n_hidden_dim)\n",
" \"\"\"\n",
" h_0 = npr.randn(n_hidden_dim)\n",
" h = np.zeros((n_steps, n_hidden_dim))\n",
" x = npr.randn(n_steps, n_input_dim)\n",
" w = npr.randn(n_input_dim, n_hidden_dim)\n",
" h_prev = h_0\n",
" activation = lambda x: np.maximum(0, 1-x)\n",
" for i in range(n_steps):\n",
" h[i] = activation(h_prev + x[i].dot(w))\n",
" h_prev = h[i]\n",
" return (h_0, w), x, h, h_prev\n",
"\n",
"def build_rnn_final_dataset(n_hidden_dim=10, n_input_dim=15, n_batch_size=20,\n",
" n_steps_per_batch=100, n_batches=30, noise=0.0):\n",
" \"\"\"\n",
" [.. ,(X_i, y_i), ..] - n_batches\n",
" \n",
" X_i : (n_batch_size, n_steps, n_input_dim)\n",
" y_i : (n_batch_size, n_hidden_dim)\n",
" \"\"\"\n",
" (h_0, w), x, h, _ = build_rnn_testdata(n_hidden_dim, n_input_dim, \n",
" n_batch_size*n_steps_per_batch*n_batches)\n",
" x = x + npr.random(x.shape)*noise\n",
" ## x of shape (n_batches*n_batch_size*n_steps_per_batch, n_input_dim)\n",
" ## h of shape (n_batches*n_batch_size*n_steps_per_batch, n_hidden_dim)\n",
" \n",
" data = []\n",
" for batch_n in range(n_batches-1):\n",
" batch_tensor_X_rows = []\n",
" batch_tensor_y_rows = []\n",
" for line_n in range(n_batch_size):\n",
" from_idx = batch_n*n_batch_size*n_steps_per_batch + line_n*n_steps_per_batch\n",
" to_idx = batch_n*n_batch_size*n_steps_per_batch + (line_n+1)*n_steps_per_batch\n",
" batch_x = x[from_idx:to_idx]\n",
" batch_y = h[to_idx-1]\n",
" batch_tensor_X_rows.append(batch_x)\n",
" batch_tensor_y_rows.append(batch_y)\n",
" \n",
" data.append( [np.array(batch_tensor_X_rows), np.array(batch_tensor_y_rows)] )\n",
" \n",
" return (h_0, w), data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# entire model definition = ~10 lines of python code!\n",
"\n",
"class PureRNN:\n",
" \"\"\" PureRNN that excepts multi-line batch at each iteration \n",
" X is (n_batches, n_steps, n_input_dim)\n",
" y is (n_batches, n_hidden_dim) \n",
" \"\"\"\n",
" def __init__(self, n_hidden_dim=10, n_input_dim=10, n_steps=100):\n",
" self.n_hidden_dim = n_hidden_dim\n",
" self.n_input_dim = n_input_dim\n",
" self.n_steps = n_steps\n",
" \n",
" def weight_map(self):\n",
" \"\"\" \n",
" h_0: (n_hidden_dim, )\n",
" w: (h_hidden_dim, n_input_dim)\n",
" \"\"\"\n",
" return [(self.n_hidden_dim,), (self.n_hidden_dim, self.n_input_dim)]\n",
" \n",
" def predict(self, h_0, w, X):\n",
" \"\"\" expect X of shape (n_batches, n_steps, n_input_dim) \"\"\"\n",
" h_prev = h_0\n",
" activation = lambda x: np.maximum(0, 1-x)\n",
" for i in range(self.n_steps):\n",
" h_prev = activation(h_prev + np.dot(X[:, i, :], w.T))\n",
" return h_prev # (n_batches, n_hidden_dim)\n",
" \n",
" def loss(self, h_0, w, X, y):\n",
" \"\"\" \n",
" X : (n_batches, n_steps, n_input_dim)\n",
" y : (n_batches, n_hidden_dim)\n",
" \"\"\"\n",
" return np.sum((self.predict(h_0, w, X) - y)**2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"weight template is [(10,), (10, 15)]\n",
"1 1805.71880154\n",
"20 453.652655465\n",
"40 43.4192001281\n",
"60 9.2155293466\n",
"80 1.92378981419\n",
"100 0.606130287633\n",
"120 0.149062963155\n",
"140 0.0343156780493\n",
"160 0.0132670442674\n",
"180 0.00569021158013\n",
"200 0.00397482983146\n",
"weight template is [(10,), (10, 15)]\n",
"1 2262.82491628\n",
"20 638.273484059\n",
"40 58.5304369717\n",
"60 21.8257617938\n",
"80 16.3137095321\n",
"100 6.35657436984\n",
"120 8.851895861\n",
"140 9.13647924877\n",
"160 8.60079010041\n",
"180 9.95392287061\n",
"200 10.4703266668\n",
"weight template is [(10,), (10, 15)]\n",
"1 2087.88921037\n",
"20 852.588429045\n",
"40 175.982113207\n",
"60 54.4479011678\n",
"80 36.9577430476\n",
"100 46.9270933414\n",
"120 42.1289083192\n",
"140 47.6793047348\n",
"160 39.0482724186\n",
"180 54.3564811802\n",
"200 49.9615578149\n",
"weight template is [(10,), (10, 15)]\n",
"1 2185.17510478\n",
"20 539.171633534\n",
"40 260.706768556\n",
"60 93.918061131\n",
"80 60.3360162228\n",
"100 61.0777788994\n",
"120 78.8273289226\n",
"140 51.0048238885\n",
"160 74.1186050236\n",
"180 76.2489606287\n",
"200 45.0020224478\n",
"weight template is [(10,), (10, 15)]\n",
"1 3032.92537741\n",
"20 1050.33695007\n",
"40 711.819277045\n",
"60 300.026348141\n",
"80 224.701917955\n",
"100 279.332006866\n",
"120 215.033497091\n",
"140 179.238923125\n",
"160 176.138800434\n",
"180 182.047385688\n",
"200 237.032538798\n"
]
},
{
"data": {
"image/png": "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\nJHTVT73FImGxsdJ769au5yLr14t88YXIQfbxKG5vlz5RUXJXXp6MT0iQdyoqpMJkkllJSfJORYVc\nmp4ub1dUiN1ul5kJCfJmebm8WVEhV2dmyjsVFXJxerq+H8CJjskk8uCDIgsXigwYILJqlUhqqoib\nm8gjj3SPW9pUKsEvBh8TOb6qqRE2b5a4Rx7pWqTQYbXKr489JrJkibaJTWSkyL33ilxyicj27SIh\nIVri//5XJDxcZPhw7YZEtPilpRJpMMi66mqRW24ROf98Ebtd2qxWqWlsFFm2TGTePC3uHtyblyc3\nZGXJjdnZcnpysoiItFutcm1WllSZTHJtVpa8tnOnnJ6cLN/VaRu/fF5dLWdv2iQXbdsmLzkMu7v2\nSRi8datsiYjQLO97cWN2trB5s/yWni5SsX9f7d2M0N99J/LhhyI2m5SbTPs1Wu56cdfW1UlQdLRs\n28u4/F1dnSxK1fYX+KS6Wk7Zvl3qLRbxjoyUWrNZ/KOiZOcejc/MpCS5LCpK5Kuv9imr2mwWNm+W\necnJ2nPaj5J4p6JCbs7J2R2wc6fIxx9rjdABqHQo4v4xMXJTdraY9jLELy0slPvz86XNapWR8fHy\nXV2dPFFUJA8WFMh/d+6U6x0fHUXt7dI/JkYGRUVJ5pAhIitX7lPWf8rKhM2bJebLL0VeffWAMomI\nSHu79tU0dKiIh4fIp58eMOr8lBQ5KyVF/CMj5XvH/2QXFptNfCIjpc5slnNTU2WV46PnuqwsOXX7\ndlm4hxF217vxxmuvaS/pfiYljE9IkCtTU7Umc9Wqfa5vNxrlcYeCkzfeEBkyROTSS0UCA0UOMmEi\nvaVF/l1aKs/n5e2jFL+trZU5ycmypqxMJr3/vtiWLpUqk0n8Nm+WaVu2yNq6ur+OAli2bJls3rz5\ngBX1VyAjQ/s/jBjx/+2dd1hURxfG3xG7NAVEbIgVEXtvEWs0auwlxhKjUVPUJJ9GjUbRaOy9dxMr\n9hpLQLCLHRW72HsBBCkC+35/DL0usLILzu959tm9d+bOnVt2zsycM+eQ33xD1qwZN12j0dB0silf\nv08Y8OJDePqCSLz98EE2nBcvksWKkWFhpIcHaWubaK+NGg1pakq+eiUru2QJ+cUX5B9/yPQVK+Tr\n06YN+dlnZLNmZHzriLAwsmJFcvPmOLufhoSwzOnTHHn3bqJWLXtevaKDpyfNjx1j8Gt5LwJ8fGiy\n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\nlO+eZRKBWAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8369b6ce50>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEKCAYAAAAb7IIBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4VUXawH9zb5Kb3hskEEIJoYMIC4oSQcECYkEErOza\ntsh+tgVrwNVdLIi6Lro2VAQpoqvYFgUSKYqgFA0QIJACpJN6k9vn+2NuQughpJHM73nmuffMOWfm\nPefcO++ZeWfeV0gp0Wg0Gk37w9DSAmg0Go2mZdAKQKPRaNopWgFoNBpNO0UrAI1Go2mnaAWg0Wg0\n7RStADQajaadohWARqPRtFO0AtC0OEKIZCHEUy0tR2MihDgghBjl/h4nhDjQ0jJpNMejFYBG0zyc\nccWlWxEuPEm+lxDibSFEphCiTAjxixDiyqYRU9Oe0ApAozkJQgjRQlWfTFF4ANnAJVLKIOBJYJkQ\nonOzSqZpc2gFoGk1CCHuFEJ8Xmd7rxBiaZ3tbCFE/5Oc10UIUVJn+y0hRH6d7Q+EENPPUPdaIcQz\nQoj1QggzEC+ECBRCvCOEOCyEyBFC/L1GMQghugohVgshioQQBUKID4UQged4C06KlLJKSvm0lDLH\nvf0lcAAY3BT1adoPWgFoWhOpwCUAQogOgCcw3L3dFfCTUu44/iQpZSZQJoQY5M66BKgQQvR0b490\nl30mbgXuAgJQb9zvA1agKzAIuMK9H0AA/wCigV5ALDCr3ld6DgghooAeQFpz1Kdpu3i0tAAaTQ1S\nygNCiHIhxECgJ/A/YIAQIgG4CFh3mtO/B0YKIQ67tz92b1uBACnl9nqI8J6UcjeAECIcuAoIklJa\nAYsQ4mXgHuAtKWUGkOE+r1gIMQ9ockO2EMID+NAt656mrk/TttEKQNPa+B64DOgOpAAlQBKqJ5AK\nIIR4FHgMNV7+oZTyT+591wKH3N9TgNtRb/CnUxx1yanzPQ7VA8mtGfVxp2y3DJHAK6jehj9gBI6c\n7cWeDe7hpw9R13R/U9alaR/oISBNayMV1eCPcH//HjWEc6l7GynlP6WUAVLKQHfjX3PeJRwd7tkA\nXEz9h3/gWANsDmABwqSUoVLKECllsJSyxgbxD8AF9JFSBqOGj5racPwOEA7cIKV0NnFdmnZAkysA\nIUSiEOJ1IcQyIcR9TV2f5rwnFdUD8JFSHka9vV8JhAFbT3WSlHIfUI1qiFOllBVAPnAD9VcAdcvL\nA1YB84QQAULRVQhxqfuQAKASZWuIAR452zpOgVEIYaqTvACEEG8AicC1UkpbI9Wlaec0uQKQUu6W\nUv4RuBk1jqvRnBIp5V6gAvXmj7shzwDWyzNHL0oFiqSUh+psA/xSn6pPknc74AXsRA3vLEcZfQFm\no2bhlAIrgRX1KK8+TAaq3Kka2Oee7nkPMBDIF0JUuG0lUxpYh0YDgDjbiGBCiHeAcUB+ne4w7oUp\nL6OUyjtSyufq7BsP3AcslFIuaQzBNW0HIUQyIKWUT7e0LE2BECIOWCul7NrSsmg0dWlID2ABMLZu\nhhDCALzmzu8DTBFCJNbsl1KulFJeg+qeazQajaYVcNazgKSU691vNHUZCuyVUmYBCCGWABOA3UKI\nkahxWBPw5TnKq2mbrG2OSoQQFRw7NCPc21dJKTc0YdWlqN4xQoivUMbqGjlqZPiHlHJOE8qg0ZxA\nY00DjeHYKXQHUUoBKWUqDTDCadoPUsrvm6megOao5yT1lgGvur9f3RIyaDQno1WsAxBCNNRgptFo\nNO0aKWWDpx831iygQ0Bdx1Sx7rx6k5yczNq1a5FS6nSOKTk5ucVlaCtJ30t9P1tjWrt2LcnJyefc\ncDdUAdSsiqxhM9Dd7ffcCzWV7fOTnnkKZs2aRVJSUgPF0Wg0mvZDUlISs2bNOudyzloBCCEWAxuB\nBLd3xmlSrUq8H7VwJg1YIqXcdTblzpo1i5SUlLMVR6PRaNodKSkpjaIAznodQFMghJCtQY62QkpK\niu5NNRL6XjYu+n42LkII5DnYAFqNAkhOTiYpKUn/ODQajeYMpKSkkJKSwuzZs9uGAmgNcmg0Gs35\nxLn2AFqNN1BtA9BoNJr6oW0AGo1G087RPQCNRqNpZ+gegEaj0bRz2kwPQKPRaDTNS6tRAHoISKPR\naOpHmxsC+uWSXwgbH0bY+DB8e/riDsSt0Wg0mlPQZhaCFX1ZRPHKYoq/KEaYBOHjwwkbH0bQJUEY\nPFtNR0Wj0WhaDW1GAcgJE+DRR5FDh1K5vVIpg5XFVO+tJmRsCOHjwwm9KhTPUM+WFlej0WhaBeeq\nAFpFPACAWTYbSRMmkNSrFwGPPkrAE1fQ5ckuWHOtFH9ZTMHSAvb8cQ/+F/gTMTGCiIkRmKJNLS22\nRqPRNDs1riDOlVbTA+i//hvmJQzisv+tQsyZAyYTzJwJN9wARiMAzionJd+VULi8kKKVRQRcGEDk\n5EgibojQPQONRtPuaDNDQPFL/syh4Evp4hfCnIT+TNj0E4Z//hMKC+Fvf4Pbb1dKwY2z2smRr45Q\nsKSAI6uOEHxpMJG3RBJ+bThGX2MLXo1Go9E0D21GARw+7GJLxdf835aPyQ29jAj/jvy9W2+m7NmD\n53PPwfbt8MADcO+9EHBsaFdHhYOi/xaR/2E+5ZvKCb82nKhboggeHYzBQxuQNRpN26TNKICwMMlj\nj8Ff/iL5MuMzHtq8mKLwMfgGdOPx+B78obAQ3+efh+++g/vug+nTISLihLKseVYKlxaSvygfS7aF\nyJsjibolioAhAXpqqUajaVO0GQWwe7fkr3+F7Gx49VUYNdrFxzs/5pEfF2COvhZXYC8e6hzPn61W\ngl96CZYvV72BRx6BkJCTllu1t4qCxQXkL8oHCZG3RBI1NQrfBN9mvkKNRqNpfNqMAkhOTmbkyCQq\nKpJ44AEYOBDmzoXYzg4+2P4Bj/7wBr5d/0CpXy/+GtuJhwwGAp55Bv77XzU0NH06+PuftHwpJRVb\nKshflE/BkgK8O3kTeUskkZMj9UwijUZz3tGmA8JYLPDii/Dyy3D//coG7DKaeemHl5i7dTEd+z1O\nsXcXnozrwj1mM17JyZCaCo89poaHPE89I8jlcFG6ppT8RfkUf15MwJAAom6JIvz6cDwCW82sWI1G\nozkjbaYHcDI5srPh4Ydh82Z46SW47jrIN+cxK2UWyzJ/JqrfE1hNkTwb35WbDx/GMGMGHDyoxpAu\nv/yM9TqrnBSvLCZ/UT6lqaWEXhlK1C1RhF4ZisFLG481Gk3rpk0rgBrWrFEjPB06qLa9Vy/YWbiT\nGd/NYIvZiV/iAwR6h/BcfDxXrF/PMWNI8fH1ksFebKdgeQEFiwow7zITfVs0Hf/UEd8e2l6g0Wha\nJ61eAQghJgDXAAHAu1LKb09yzBnjAdjtMH8+PPOMWhKQnAyBgbD2wFoeXPUQ1pDfURU7le6+ATwX\nG8vg//wH5s2DP/9ZLSjz8am3zNUHqsl9M5fcd3IJGBxAzP0xhF4ZijDoWUQajab10OoVQG1FQgQD\nL0gp7z7JvnoHhCkogEcfha+/hn/+E267DSRO3tjyBsnf/53Bg55kh/dARgYHM8fHhy4zZsDWrUp7\njBlzVjI7LU4KlhRw6F+HcJQ6iPlzDNHTovEM0auONRpNy9PsCkAI8Q4wDsiXUvavk38l8DIqxsA7\nUsrnjjvvReBDKeW2k5R51hHBNm1SBmIPD/jXv2DwYMirzOPhVQ+TenATIy56lVWWAP4vNpZHdu7E\n+y9/gd/9TvUKoqPPqi4pJeWbyjn02iGOfHmE6Duj6fRwJ0wxegaRRqNpOVoiItgCYOxxQhiA19z5\nfYApQojEOvvnAF+drPFvKL/7Hfz4I9x1F4wbB3/9KwSIaD684UM+GP8mW398gKF57/BjaTF9Q0P5\nZv16ZQ/o1w9efx1crnrXJYQgaFgQvT/szZDfhoCAzf02k35vOtUZ1Y11SRqNRtOsnLUCkFKuB0qO\nyx4K7JVSZkkp7cASYAKAEOJ+YDQwUQhxzznKewwGA/z+95CWBkeOwIABajboZfGXse2+bfQLiuCX\n1eOY4l3IfVlZ/P722yldswbefx+uugoOHz7rOk0xJrq/1J2h6UPxjPDk56E/s/PWnZjTzI15aRqN\nRtPkNMgGIISIA1bWDAEJIW4Exkop73Fv3woMlVJOr2d5Mjk5uXY7KSmJpKSks5Zr5Uq1DOD662HO\nHLUubEP2Bu787E4uiBmBX+KDfFtWyX+6dePqN95QdoH585XH0QbiKHNw6N+HOPjKQYIuDiLu8TgC\nBgec+USNRqM5S453A90iC8GaQgE0ljG6pETNAk1NhQ8+gEsuAbPNzMzvZvLp7k+ZPvY9Xq/wJyk4\nmHmlpQTfdps66JVXTnAydzY4q5zkvpVL9gvZ+PX1I+7xOIIvCW6Ua9JoNJqT0RI2gJNxCOhcZzvW\nnVdvGisofEgIvPeeWi9w000waxaYDH786+p/8d517/HK/+7gBvOXeAvoJyVfrV2rLMkDByrLcgMx\n+hqJ/WsswzKGEXFjBLvv3M3WS7ZS/E0xrWGthUajaTu0aFB4IUQXVA+gn3vbCKSjxvpzgZ+AKVLK\nXfUsr9F6AHU5fFitGbDZ4MMPoXNnKDAXcPunt1Nhq+AvV7zD44dKuTQoiHm7dxNS41zuoYeUgeEc\ncDlcFC4tJOsfWRh8DMQ9Hkf4hHC9lkCj0TQazd4DEEIsBjYCCUKIbCHENCmlE7gfWAWkAUvq2/jX\n0Fg9gLp07AirVsHVV8OQIfDJJxDpF8lXt3zFdT2v48Fll/HvSAt+RiP9oqL47vvvlXO5q6+G/Pxz\nqtvgYSDqliiG/DqEuMfjyHomiy0DtlCwtADp1D0CjUbTcBqrB9CQWUBTpZQdpZQmKWVnKeUCd/7X\nUsqeUsoeUso55yxZI2EwqIXAn3+u/Ao98ghIl4FHLn6Ehdcv5M5PbmZARQrvJSZy55EjPPzee1iH\nDIELLoBvT1i0fNYIgyDi+ggGbxlM1zldyZmXw+a+m8n7MA+Xo/5TUTUajaaxOS98ATUWxcVw440Q\nHAyLFoGfH+wt3su1S67l8vjLeWL089y3N4NMi4XF5eX0uu02NYb09NOn9TB6NkgpKfmuhKy/Z2E9\nbCXusTiibovC4Kmdz2k0mrOjtRiBzwvCwtSQUEiImvhz6BD0COvBj3/4kfTidO76ZBILe3ThTx07\ncqnJxOurVyO3b4dLL4XMzEaRQQhB6BWhDPp+EInvJJK/OJ9NPTZx+K3Dukeg0WialVajAJrCBnAy\nvLzg3Xdh0iS46CLYvRuCvIP4cuqXhPuGc9kHl3FtoJH1gwbxTmUl186ZQ8GUKTB0KHz8caPKEjwy\nmIHfDaT3R70pWFzAz4N+5sh3Rxq1Do1G0/Zo0VlAjU1zDQEdz3vvKcdyK1fChReq4ZnZqbP5YPsH\nfH3L18SH9iA5M5P38/J4VwiuvO02FWdg3ryz8i5aH6SUFH1WRMbDGfj19qPb3G7aFbVGozktbWYI\nqLl6AHW580544w016WftWnUzZyXN4olLn2DkeyPZfPAH/tm1K4t79eIe4MHPP8dWWal6A2lpjSqL\nEIKI6yIYmjaUoEuC+GX4L+x7cB/2Ynuj1qPRaM5/dA+gEUlJUUNCb76poo4B/G/f/7jt09v44PoP\nuLL7lRyx25m2eze5NhtLd+4k/qGH4O234dprm0QmW76NzFmZFH5cSKdHOhFzfwxGH2OT1KXRaM5P\nzpt4AKcVooUVAMDPPyuvov/8p+oZAPyQ8wMTlkzg3QnvMi5hHFJKXjl4kH9kZzNfCCZOmqTckD78\nMIimWeBVlV7F/kf3U7Glgi5PdyH6tmiEUS8m02g0egio0Rg8WPUEnnhC2QYAhncazhdTv+APn/+B\n/+7+L0II/q9TJ77s14+/GQz8eeVKLMuWKZekVmuTyOXb05e+n/Sl95Le5L6dy5ZBW7R7CY2mnaOH\ngJqI9HQYNUr1BG6/XeX9kvsLVy+6mteveZ3re10PQJnDwV3p6ew3m/l4/nzi9++HFSsgIqLJZKsx\nFO+fuR+feB96/LsHPl0b1xit0WjOH9pMD6C10LMnfPedmh304Ycq74IOF/DVLV9x7xf38s2+bwAI\n8vBgWe/e3NahA8Puvpsvr79eRalpZONwXWoMxUN+HULwZcH8PPRnsuZk4bLr9QMajebs0T2AU7Bz\np5rx+dprR8MFbMzZyIQlE/j4po8Z2WVk7bEbysqYvHMndxQUMPueezAuWKCmFjUx1Qeq2funvVgP\nWkl4M4Gg4UFNXqdGo2k9tJkeQEvbAI6nd2/48ksVYOa771TeRZ0uYunEpdy0/CY2HTzqOvrioCB+\nHjyYjXFxjF22jMIHHoC5c6GJlZpPvA/9vupH3BNxpN2Yxp4/7sFeqqeNajRtHW0DaCa+/175D/ri\nCzXCA/DV3q+Y9tk0Vt26igHRA2qPdbhcPJWZycJDh1g2dy7DQ0LUQgNT0wePt5faOfDoAYo+K6L7\nvO5ETIpANNHMJI1G0zrQ00CbgS++UMHn16xRPQOAj3d+zPSvp7PmjjUkhicec/zKoiL+sHs3T6xe\nzf2rViE+/RQiI5tF1rKNZey5dw+mWBM95vfAJ14biTWatopWAM3EwoVqiujGjRATo/Le2/Yes1Nn\ns+H3G+gY0PGY4/dXVzMxLY2EjAzefuop/JctU1HrmwGX3UXO3BxyXsyh8yOdiX0wVnsb1WjaIFoB\nNCNz5sBHH6lhoSC3vfUf6/7BsrRlpN6ZSpD3sUbYaqeT+/fuZcPBg6x45BF6JycfXWrcDFTvr2bP\nH/dgy7XR7cVuhFwRooeFNJo2hFYAzYiU8Je/KA+iX3+tPItKKfnLV39hd/Fuvpr6FSaPE8f7F+Tm\n8rf0dP712mtMHjQIHnusyVYOnyizpPDjQg48eQCvSC/i/x5P8EgdrF6jaQu0GQWQnJxMUlISSUlJ\nLS3OaXE6YeJE8PVVw0IGAzhdTiZ9PAkvoxeLbliEQZw43LKtooKJO3ZwVUoKc3ftwuuttxrdo+jp\ncDlcFCwqIPPpTLy7eNMluQvBl2pFoNGcj6SkpJCSksLs2bPbhgJoDXLUl+pqtUbg4ovh+efdefZq\nxnw4hqEdhzJ37NyTnldqt3NHWhqFu3fz6X/+Q9SiRSpwcTPisrvIX5hP1rNZeHf2Ji45jpCkkGaV\nQaPRNA5tpgfQGuQ4G4qLlQL44x+VPziAkuoSRiwYwR8G/YEHhz940vNcUvJ0Zibvpafz+dNP0/+V\nV1TE+mbGZXeRvyifrGeyMMWYiHs8TtsINJrzDK0AWpCsLKUE5s6Fm29Wedll2Vz87sU8f/nzTOk3\n5ZTnLsnP5/60NN59/nnG33knTJ7cPEIfh8vhomBxATkv5CClJHZ6LFG3RmH01a6nNZrWTqtXAEKI\neOBxIFBKOekUx5yXCgBgxw41HLRkiXIiB/Br/q+M/mA0H934EaO7jj7luZvKy7lh61YeWLKEh8LD\nEbNnK6NCCyClpHRtKQdfPkj5D+VE/yGamD/H4N3Ju0Xk0Wg0Z6bVK4DaioRY1hYVABwNKPO//8Gg\nQSovNTOVm5bfxDe3fsMFHS445bk5Fgvjt25l8MaNvP7DD3i99x74+zeL3Keial8Vh147RP7CfIIu\nCSLmjzFqeMigh4c0mtZEs/sCEkK8I4TIF0LsOC7/SiHEbiHEHiHEjIYKdD6SlATz56uAMvv3q7yR\nXUbyxrg3GLd4HBlHMk55bidvb9YPGULR5ZczZuJEiq++GvLzm0fwU+Db3ZceL/dgWNYwwq4JY//M\n/WxK2ET2i9nYCm0tKptGo2k8zroHIIQYAVQCH0gp+7vzDMAeYDRwGNgMTJZS7q5z3nIp5U2nKPO8\n7gHUMH++ihe/YcNRzw9vbHmDFze+yIbfbyDKP+qU5zql5NGMDD7ds4cvnn2Wnh98AN26NZPkp0dK\nSfmmcg6/fpii/xbh39+fsHFhhI0Pw7eXrzYcazQtRIsMAQkh4oCVdRTAMCBZSnmVe3smIKWUzwkh\nQoFngcuBt6WUz52kvDahAACefFINBa1Zc3QkJ3ltMl/s/YKUO1IIMAWc9vx3cnN5LC2Nj+bMYdRz\nz6lQZa0Ip8VJaUopxSuLKV5ZjPAQhI0PI2xcGMEjgzF4aZcTGk1z0VoUwI3AWCnlPe7tW4GhUsrp\n9SxPJicn126fDwvCToWUcPfdcPAgfP750dXC931xH/tL9/Pl1C/xMnqdtoy1JSVM3rqVOW+8wbS7\n74Yrrmgm6c8OKSXmX81KGXxRjHmXmZDLQwgZHUJwUjC+ibp3oNE0JjULwGpokYVgTaEA2koPAMDh\nUNNCbTb4+GPlDdrpcjJx+UR8PHz48IYPT7pauC67zWau2byZmz/9lGcGD8ZQE5+yFWPLt3HkmyOU\nppRSsrYEl8VFwAUB+Pb0xSfBB98EX7y7euPVwQujt55mWoOUEkepA3uRHWeFE2eFE0eFQ32vVNsI\nMPoZMfoZMfgZMPoaEV5CGeYFGHwMeHf2xjPCs80rXZfdhbPciaPcUfvpsriQTol0SIx+Rvz6+uEV\ncfoXrRqkS+I0O48p01npVHlVTqRD4hnmiWe4SqaOJgymxunpumwuLJkWLFkW7AV27EV27MV2PII9\nMHUyITxO/ixd1S5seTY6P9S5VSiAYcAsKeWV7u3aIaB6lnfeuIKoL3Y7TJkCVVXwySfg7a1WC4/9\ncCyDOwzmpbEvnfGPWmizcd1PPxG7cSPvl5bi/cwzLTZNtCFUZ1Zj3mGmak8V1enVVO2twrLfgi3P\nhvAQeIR64BnqWfvpGe6JXx8//Ab44d3ZG1PM2f3RpJQ4K5zYi9WfyFHsUJ/lDgDVWBrcnxKcVepP\n7qp24RHsgVeUFwYfAwZvdzId9+ltQJgEwiiwF9qx5dmw5duw5dmwF9pxmp0ID4F3Z28Mfoaj9QnV\nSDvKHOqc41O+DYO3Ac9wTzwCPDAGGI8mfyMeAR5IKXGZXUdlNrtUKFAJuMBpdmLJtuCqcmHqbMI7\nzhvvzt54RXth8DvuHkrVgDhKHThKHEr5lNiRdonwFHjHeePT3UcpGx8DBh8DRh+lcFzVSoYaWVxV\ndWRyf3dVu8ClngcuVR8Gap+xR5gHwiBwWV1Im8RlddUmaXVv2+p8t7iUUnQ3zi67C48gDzwCPTAG\nqvtk8DYgPNSzcZY7Mf9mxmVRz7UmGYOM6rkfpzyclU4M3gY8glR5Nc/A4GvA6GdEeAgcR5SCthWo\nZ+YR7H5OfuoZ1Shno78RY6ARzzD1u/YIVtfqrHJiz7er34s7WQ9aseXaMMWY8I73xivSC88IdZ6j\nxIH1oFXdv5OwuWwzv1T9wmubXjsnBeDRwPOEO9XKA3R3K4ZcYDJw6lVQ7QBPT+U59JZblAPQTz8F\nHx8fPpv8GUnvJ/HM98/w5MgnT1tGhJcXq4cP53ZfX6749Vf+O3UqYW+/3eLTROuLTxcffLqc6O9I\nSomryoX9iF39sdyftnwblTsqKVhegDVH/Tk8Qj3w7uSNZ5Qnwnj0jRcDSIdU59c0+EccCC+h3tZq\n3tjCPDEGunsbUr3t1fypav7gBh8DlkwL5ZvKcVlUgyOtsvZ7TSNU8ymdEs9wT7yivfCK8sIrWv1x\nTR1NuGwuzL+ZcVY5j61PgjHIiFe0F/6D/NW5NSnKC6NP4/SIHJUOrFlWLFkWdQ/zbThKHSccZ/A2\n4NPNB48QdwMZ4oHBy4DL6sJywEL1/mql1KpVg+6qVo2y0dfdMPq6G7xAdU2199LXrSiPU37SKXGU\nqEbUXmQHSW2dBpNSrAaToTYJr6PbwiRqG3uPQA8MPoYzvjxJKZWSK1MKrkbZYeCYsmoafGGsfxvq\ncrjUvak82lNwmV213x1lDhxHHFj2W3CUOcClemheUV749vYl+LJgvKK8MMWYMHU2NchVe1FKEVkp\nWbDpzMeejobMAloMJAFhQD7K+LtACHEV8DJqauk7Uso5Z1FmmxoCqovDAbffDtnZSglEREB+ZT4j\nFoxg+tDp3P+7+89YhktKZu7dy2e7d/PVyy/T7fXXVfT6No50Smx5Niw5FuyFdvVW6ZK1DaswuHsR\nNQ1+mGejdc01mvOBczUCI6Vs8QTI5ORkuXbtWtkWcTqlnDlTym7dpNy1S+VllmTKTi91ku9ve7/e\n5fw7J0dGf/ut/HHYMCkXL24iaTUaTWtn7dq1Mjk5WaomvOFtr/YF1IwsWAAzZ6qhoVGjYFfhLkZ9\nMIrXr3md6xLrFyjmi6IipqWl8cbrr3NjUBC8/HKzupXWaDSth2ZfCdxUzJo165jpTW2RadOUz6Cp\nU5UDucTwXnwx5QvuWXkPq/evrlcZ48LD+d8FF/DQ9Ok82rMnzuHDIT29iSXXaDStiZSUFGbNmnXO\n5egeQAuQlaWCykRHw5tvwl7b90xcNpHPp3zOsNhh9SqjyGZj8s6diEOH+OjPfyZ82jT42990b0Cj\naUe0mR5AeyIuTrmLGDhQpUMbL2XBhPeYsGQCv+b/Wq8ywr28+KZ/fwYnJnLhwoX8WFQEvXrB8uVq\nNZpGo9GcgVbTA2hr6wDqy+bNcMcd0Ls3jHlwCbN/fIjUO1PpHtq93mV8XlTE3enp/Nlu55EZM/Cp\nqFDBi2+7DQJO73pCo9Gcf+iQkG0IiwWeekrFGB43601WW+bw7W3f0i20/s7gsi0WHti3j18qK3nR\nYuGG115DrFkDN92k0siRanGCRqNpM5w38QBOK0Q7VwA1/PAD3HMPOAe9TmGf2Xw65WNGdB5xVmWs\nKSnh//btI8TDg4d8fLjm888xrlgBGRkwfryKXnPRRWoc6jxaVazRaE6kzSiA9joEdDx2O7zyCjy9\n+BtcE27nX+NeYtrgW8+qDIfLxZKCAv516BAFdjt/6tiRSTYbcd98o9yU/vQTlJSoxWS9eim30127\nQny8+uzYEYzaV49G01rRQ0BtnOxsmDYjje9jx3FDz0ks+v2zeBjO3nPHT+XlvH74MF8UFxPi4cFA\nf3/6+vnRz2Cg9+HDdNuzB4/9+1UkmwMH1GdxMXTurJRBTapRDl27QlBQE1yxRqM5W9pMD6A1yNEa\nWfRpIXeOVysgAAAgAElEQVR9fRsBIWb+d88SBnWLaVA5LilJM5v51WzmN/fnTrOZwzYbXb296evn\nx+CAAEYEBTHEwwPP7OyjCuF4BeHpqRRBt27Qv//R6UwdO0Ib90Sp0bQmtAJoB1SaXVzzzzmss/2L\nP8cs4NXpVzZaO1vtdLKnupodlZVsqajg+7Iy9ldXMyIoiFEhIYwKDmaAvz+GmgqlhKIipQj27YMd\nO2DbNti6FVwuFRQ5KUnZGgYPBo+G+hvUaDRnos0oAG0DODMfpH7PXV/dShfnFaQ+8QIdgkObpJ4i\nm42U0lLWlJaypqSEQrudpOBgRoWEcFlwMIm+vkcVQg1SQl4ebNkCa9fCd99BTo6afTR6tFIIiYm6\nh6DRNALaBtBOySupYMRTj5EVuIQZlzzM46On4+PZtKt/D1mtrC0pYU1pKamlpZQ6HAzw9yfR1/eY\nFGsyHasY8vOV0Xn1aqUQzGbo1w/69lULH7p0gU6dVAoMbNJr0GjaIm2mB9Aa5DhfcLlg+t938+6B\nJwjo9SPPXJ7MtEHTGmQkbgh5Viu/ms3srqqqTbuqqih3OOjpVgbdfXzoZDIRWycFFRQg0tLgt98g\nLU1Zug8eVD2F6moVOs3bW9kYpDy6ollKNSspOPjYFBKiPqOjlTKpScHBzXIfGhWHA3Jz1T3JyoLD\nh9U03Zp7YjIpNx+hocrWEh+v4o1qzg2XS93zXbvU7/DwYTh0SD2DrCy138tL/Sa9vFQKC4OYGDWD\nrndvlaKjW6R3qxVAO2bpUrjv7z/R5a6ZVHsc5tlRz3JDrxtaLCRgmcNBulsh7K2u5pDVykF3yrFa\nAYj39q5NcXWThwdhTifCZlOxNIU4mkA1kGVlUFp6bCopUQ1nZiYyKwt7Tg5eLtexCqFTJ4iKgshI\nlSIiVGrOBrSiQjUo2dnHppq83FwlU+fOKnXsqBSf1Xo0VVerGVqHDinFGRurpvImJBybYmKab42H\n1apsQQcPHn0mxcVHt4VQspzu09MT/PzUHGizWdmNQkNVw9qnj7omb++zk6vGVnXwoLpfNfcsL+/Y\nlJ+v7nufPmptTMeOKnXurH47Hh7q92izKfkslqPXt2sX7NwJaWlYDAayhgyhKioK3/Bw4uLj8R45\nsuHDnhaLWruzfbu6vwUFUFl59LdQWQlFRYitW7UCaM98/z1MvEly599X8a2ciZfRizmj53BZ/GUt\nLdoJlNrtHLBYalNW3WS1Yne56OztTUcvL3yNRnwMBrwNBqwuF2aXiyqnk0p3qnA6qXa5cEmpoiJK\nSaXTCYCHEHQAEmw2IisqCC4tVenIEYKKirBVVVHhclEZGIjw9SUcCLfbiaiuJraykk6Af0yMesuO\njVXuNPz9VSPl56caI6tVNTJ+fup7eblK+flqtlRNqnmTtNlUA1PTwNdNcXGq0T4bhWSzqfL37FEp\nPf3o9/JyuOQSuPJKGDtWKYmzaYScTigsVG/DubkqHT6sGsyCArWv5rOiQjWUnTsf7ZGFhqr7FhJy\ntCfncp3waQX2eHhwREoiKiqIAEK9vDDW1O9uXNm/X92jminIgYHqvldWqobSx+eociwuVrLl5qpj\nYmKULDExKnXsqN7Wa1JUlOpd1aHEbuewzUa104mP+3dY5XRidrkwO52YnU6K7XZ2V1Wxs6qKnWYz\nh6xWYqXE3+mk0uEgx8ODsLIyuhQXE+vtTUxICLEBAVzg6cnvpMTH5VIvNIcOqeuoqjo6yy4jQ11/\nXJyaZZeQoOQMCFCymkzq2iIiEBdeqBVAe2fnTrj6arj7Hhfx45fy5NonSAhLYO6YufSO6N3S4tWb\ncoeDLIuFPJuNKpeLaqcTi8uFt8GAr9GIn9GIf53kYzBgQHWDBRBgNOIhBBaXi0NWK3urqymy2yl1\nOCh1OChxOChzOPAyGAgwGPC323GZzRSbzRQ5nRQAOUCOEPg4nfjYbOB0IqTE12olurSUPtnZDE1P\nZ2h2NomHD2M0m9UfMjBQNU7h4Upx1KS4OJXCwk7ZCNtdLjItFvZWV7Ovuhqz04lBCAyAQQiMgKfB\ngJcQlDkcHHE4KLbbybRY2FddDYC3wYDJrTC9XS6ii4uJ3r8f//R0fCsq8A8IoKvVSv/ycmJdLtUQ\n17xtGwxw5MjRBrSwUDXeHTtChw4q1TScdXtRkZEQGkqpy1U7tfhXs5m91dVYXC5MQtDBZMJDCOwu\nF3YpsUuJ1eWqfQno4u1NuKcnRXY7BTYbZQ4HYZ6exJhM9PL1JcZkIkQIQo8cIaawkEHl5cSUlirZ\n/f3VvbdYlFIOC1MpIkI19qfxjCulZG91Nb+ZzaSZzeyqquKg1UqmxUKJw0GsyYSPwYDF5aLa5cLX\nYMDP/Rv0MxgI8fQk0deX3r6+9PL1pZuPD551el1OKTlksZC5ezeHfv6ZQ4WFZEvJTzEx7IyK4po9\ne7gtPZ0xdjse/v5K/i5d1NTqbt1Ur/UUizGllOyqquL70lL+GBvbNhSAngV0bhw+rJTA8OEw92Ub\nb26dz7PrnuWWfreQPDKZEJ+QlhbxvEFKSbHdjvVoxDoqnU5ybTZ2mM38VF7OTxUV5NtsXODvz9DA\nQIYGBDA0MJBOJtMph+CcUrLLbOanigq2VVayt7qavVVV5FitxJhMdPfxobuPD0EeHrikxOU+x1mn\n4Qzy8CDM05MwDw86e3vT3ccHA2BxubBKqRosp5M8m418ux2zw0GV2Ux5SQn77Ha2AkEuF6NsNkYL\nwWVWK5EOh3prr2lAIyNP2RtxSclP5eV8eeQIP1dU8KvZTKnDQR9fX/r5+9PPz48EHx98jUYsLhe5\nNhtOKfEUQiW3Iovz9qanry+m44aq7C4XxXY7WVYr6VVV5NpslNjtHHG/HPxSWUm0lxe3RUUxITyc\nBB+feg95Wl0uUkpL+byoiM+LizEA/d0LI3v7+tLJZKKTe3jyhFlujUiRzcbSwkIW5uWRabFwRWgo\nI4KCuCQo6KQz7JxSsqeqim2VlWwqL+e/RUVYfvmF6J072T5/fttQAK1BjvOd8nIVZ8DbW0Udq6KQ\nJ9c+yae7P2V20mzuvuBujAbt4qGxOGK3s6Wigp/Ky9lcUcGm8nIk1CoCP6ORKvdwQZbVSprZTAcv\nL4YGBjLI358ePj708PEh3sfnhIawqahZELjaPavr+9JSOppM9Pfzo487RXl5EWQ0EuThgUNKDlqt\n7KyqYlN5OV8WFxPh6cn48HCGBwbS18+PLk3cYB4v/7qyMj7Kz+eL4mIMQjDQ358B/v709/Ojq48P\n0V5eeAhBid3OfouFH8rLWVdaypaKCvr7+zMhPJwJYWH09PVtMXtZDRnV1awtKWF9WRnrysrIs9no\n6uNDgPvt/4jdTo7VSgcvLwb6+zM4IIDxYWH08fNTPV9tBNbUxW6Hu+9W9qmVK9XL3La8bfz1m79S\nainlucufY2y3sS3+w2+LSHdjubmiglybDbPTia/BQKinJ51NJvr4+RHSyjyyOtzDN7+ZzaS5x7ML\n7XbK3MNlRiHo6B6OucDfn6vDwujaSoIOSSnZb7GwvbKSbZWV/Go2c6C6mny7HaeUhHh4EOftzdCA\nAC4JDmZ4YCCBrXxhYoXDQUZ1NWaXC4AwDw86mkynlFsrAM0JSAnJybB4MXz9NfToof4sn+7+lMdW\nP0aHgA48d/lzDI0Z2tKiajSac6DVKwAhhC8wH7ACqVLKxSc5RiuAJuCtt+DJJ2HFCrj4YpXncDlY\nsHUBs1NnMyx2GM+Oepae4T1bVlCNRtMgzoeQkDcAy6WU9wLXNkN9Gjd33w3vvQfXXw/Llqk8D4MH\ndw++mz3372FIxyGMWDCCe1fey+GKwy0qq0ajaX7OWgEIId4RQuQLIXYcl3+lEGK3EGKPEGJGnV2x\nqNl1AM5zkFXTAK68Er79Fh5+GObMObq41tfTlxkjZpD+l3QCTYH0e70ff0/9O1X2qpYVWKPRNBsN\n6QEsAMbWzRBCGIDX3Pl9gClCiET37hyUEgDQlscWYMAAFW1s6VK46y61hqiGUJ9QXhjzApvv3syO\ngh30+ncvFu1YhNOldbVG09Y5awUgpVwPlByXPRTYK6XMklLagSXABPe+T4GJQoh/AyvPRVhNw4mJ\ngXXr1Or4pCS12LAuXUO6svym5Xx4/Ye8tvk1Ev+dyFs/v4XVYW0ReTUaTdPTWHOiYjg6zANwEKUU\nkFJWAb8/UwGzZs2q/a4XhDUN/v7w6afw6qswbJgaEvr9749doHpJ3CVs/P1G1mWvY876OSSnJPPA\nsAe498J7CTRpj50aTUtS4wa6sWjQLCAhRBywUkrZ3719IzBWSnmPe/tWYKiUcno9y9OzgJqZtDS4\n9VblJmXuXOVu5GRsy9vG8xueZ1XGKu4ZfA/TfzedaP/o5hVWo9GclHOdBdRYPYBDQOc627HuvHoz\na9Ys/ebfjPTpA5s2wUsvqSmi112n1g7Exh573MDogSy+cTH7S/bz4sYXSXwtkYs6XcQ1Pa5heKfh\nJIQl4O/lX3t8hbWC3Mpc8irzKDAXkF+ZT745n/zKfAqqCigwF+Dj4UOX4C50Ce5Cn4g+jO0+Fl9P\n32a+AxrN+Utj9QQaqgAExxp0NwPd3T2DXGAyMOUcZdM0MV5eMHMm3HsvPP+8MhZPm6bywsOPPbZr\nSFfmXzOfF654gc/SP2PNgTW8vuV1MkoyMBlN+Hj6UGGtQCLp4N+BaP9oovyjiPSNJMo/ioHRA4ny\njyLCN4JqRzWZpZlklmYyf8t8pn02jat6XMXNfW5mXMK4ZotroNG0d856CEgIsRhIAsKAfCBZSrlA\nCHEV8DLKsPyOlHLOWZSph4BaAbm58Mwzyo/QxIlwzz0qrO/pvEa4pItSSykWh4UArwACTAFnXW+h\nuZBPdn3C+9vfp6iqiCcvfZIp/aZoRaDRnIFWvxK4XkJob6CtitxcWLBArSQOCYEbb1QhfS+88JQe\nahsFKSUpmSkkpySTV5nH7KTZTO47Wfst0miOQ8cE1jQ5LpcK6fvVVyqk78GDcOmlMGKEshsMHtw0\nQbWklKzNXMvfvv0bRoORl8a8xMWdL278ijSa85zWYgQ+Z05mBO7SpQtZWVktJ5TmGDp1imPKlEw2\nbFCO5tLTVYz3IUOOpp49zz0aoRCCUfGj+Onun1j862KmrJjC0JihPHf5c3QL7dY4F6PRtAIcLgeH\nyg9RXF1M99Du9Z5q3VhG4FbdA3BrtxaQSHMyjn8eFRXwyy+wefPRVFwMF1ygegkTJpzZhlAfqu3V\nvPzjy8z9YS639b+NJ0c+SahP6DlejUbTvDhcDrbmbiU1K5XUrFS2520nrzKPSL9IQn1CySjJwN/L\nnw7+HRgVP4qp/aZyQYcLMIhTv1G1GRuAVgCtn/o8j6Ii2LIF1q5Vi86qq5UN4eGHT5xierbkV+Yz\nK2UWH+/6mOlDp3P/7+4n2Dv4jOc5XA5yynLYe2Qv6UXpFFYVUlJdQqm1lJLqEsqsZXgaPPH38ifA\nFECAVwCBpkASwhK4oMMF9Inog8nDdMZ6NM2H1WGl0lZJYVUh6UXpVNmr8DR6UmmrxGQ0kdQliQ4B\nHVpURqfLSWpWKuuy1rEhZwM/HvyRzkGdSeqSxMi4kQzuOJhOgZ3wNKoYES7pIq8yj4PlB1mZvpJl\nO5dRaC7kmoRreHDYgwzqMOiEOtqMAjiZEVgrgNbF2T4PKVVgmvffh7ffhj/9Cf72NxXb+lxIL0rn\nn+v/yYpdKxjcYTC9wnvh4+mDr6cvJqMJp3RSaC4koySDjJIMcspyiPSLpEdYDxJCE4j2jybYO5gQ\nnxBCvEMI8g7C7rRTaaukwlZBhbWCMmsZu4p28UvuL2QcyaB/VH9Gx4/m8q6XM7zTcLw9vM/tIjT1\nwuFysLNwJ1sOb+G3gt/IKsvit4LfyCzNxN/LnxDvEHqG9yTAKwC7y46/lz/l1nJSM1Px9/Knd0Rv\nrk+8npv63NRsvUany8nHOz/m6e+fxsvoxdhuY7m408Vc1OkiwnzDzqqswxWHWbRjEa9segV/L39G\nx4/mzoF3UrmnktTU1LZtBNYKoHVxLs8jJwcef1wZk//9b+Wi+lypsFawPns9maWZVNmrqLJXYXVa\nMQojoT6hdAvtRvfQ7nQJ7nJODXaVvYpNBzex+sBqvtv/HWmFaQyPHc7lXS9ndPxo+kb2bbU9BKvD\nyp7iPaQXp1NqKa29T1X2Ksw2s/ruOLptdVrpGdaTCzteSOegzvSL7EeUf1SzyiylZPWB1cz7cR6p\nmanEBsZyYccL6R/Vny7BXegd0ZvE8MTTThN2upxkl2WzNW8rS35bwtf7vqZzUGdu7nMzDwx7oEHT\nlc9EubWc5WnLeenHlwjwCmB20mzGdBvTKLPYnC4nO/J38NXer3h769t4GDy4sOOFLJm4RCsATfPQ\nGM/jxx/h5pvhjjtg1qxzNxi3BKWWUlIzU/lu/3esPrCajJIMov2j6RbSjU5BnQjxDsFkNGEQBjoE\ndCDMJwyXdDEweiB9I/s2+bTWXYW7WLBtAZ+lf0ZWaRbxIfEkhicS6h2Kr6cvvp6++Hn5Hf3u6Veb\n52nwJK0wjV9yfyGnPIdtedtICEvgks6XcGncpYxLGHfaMemGUmmrZPOhzazNXMtHv32EyWjiweEP\ncmOvGwnyDjrn8h0uB9vytvHKplf4377/MbXfVCb1mcSQjkPwNHoipaTUUkqBWa1WtzlteHt44+3h\njZ+XH1F+UZg8TJhtZsx2c+1nfmU+e4r3sCZzDeuz1zMqfhT3Db6v0Rr+k+GSLtIK0tiat5U7Bt7R\nNhTA+TAElJyczMiRIxk1alSDy0hNTeXFF19k5crGc4zaFGWejMZ6Hvn5aqFZaCgsXAiB57mPObvT\nTk55DhlHMjhYfpASSwl2px27y05uRS4lFuU8d332evy9/Lm5z83c3PdmEsMTz1By/cirzGNjzkY2\nZG/g631fU2Yt49Z+tzKl3xR6R/TGy9jwubo2p40N2Wr8esWuFXgYPHju8ue4NO7SBjVwZZYy0ovT\n2VW4iz3Fe8guz2Zn4U52F+1mQNQALu50MZP6TOLCjhc2WQO678g+PtzxIZ/u/pQDJQcIMAVQaC7E\n19OXSL9IIvwiMBlNWBwWrE4rFdYK8irzsLvs+Hn64eflV/sZ4RtBt5BuXBJ3CZd3vbzZhpnaxTqA\n1qYAGoPU1FTmzp3L559/3qrLPBmN+TxsNvjrXyE1FT77TMUtbuu4pItNBzexNG0py3cuJ9w3nEm9\nJzGx90R6hPU46Zu1lBKz3cyBkgPsLtrNrqJd7C/ZT2FVIYXmQnIrczHbzAzvNJyLYi/i8q6XMyRm\nSJO8pbuki4XbF/KP9f/A19OX6UOnM6XflBOG16SUHCw/yO6i3bUy13wvt5bTM7wnieGJJIQmEB8S\nT4/QHlzQ4YIWGUY7Un2EKnsVEb4RrXYY73S0GSNwcyuArKwsrrrqKkaMGMHGjRuJjY3ls88+w2Qy\nsX37du677z6qq6vp1q0b7777LkFBQUybNo3x48dzww03MHPmTL744gs8PDwYM2YMzz//PEVFRdx3\n333k5CjP2PPmzeOiiy46pt66jXVVVRX3338/aWlp2O12Zs2axfjx4xk+fDjvvvsuvXr1AuCyyy5j\n7ty5JCYmnvT481EB1PDmmypu8cKFMGZMoxbdqnFJFxuyN7A0bSmfp39OgbmASL9IjAYjRqGWW5db\nyym1lOJp9KRzUGd6hfciMTyRbiHdat9UI/0i6RLcpUka/NPJvipjFa9uepWNORsZGD2QmMAYLA4L\nmaWZpBelE2AKIDE8sVbmmhQbGNussrZ1zlUBIKVs8aTEOJFT5TcGmZmZ0tPTU+7YsUNKKeWkSZPk\nokWLpJRS9u/fX65bt05KKeVTTz0lH3jgASmllHfeeadcsWKFLC4ulj179qwtq6ysTEop5dSpU+WG\nDRuklFJmZ2fLXr16nVBvSkqKHD9+vJRSyscee6y2ztLSUpmQkCCrqqrkyy+/LJOTk6WUUubm5srE\nxMTTHl+3zKakqZ7HunVSRkdLOX9+kxR/XmC2mWVmSabMOJIh9xbvlXuK9si8ijxpsVtaWrTTkl+Z\nL1ftWyUXbl8ol/22TP6Y86MsqS5pabHaDe7/ZIPb3la9EripiY+Pp1+/fgAMHjyYzMxMysvLKSsr\nY8SIEQDccccdTJo06ZjzgoKC8PHx4a677uKaa65h3LhxAHz33Xfs2rWr9i25srKSqqoqfH1P7up4\n1apVrFy5khdeeAEAm81GdnY2N910E2PGjGHWrFksW7aMiRMnnvb4850RI2D9ehg3DvbsgRdfbFqf\nQ60RX09f4oLjWlqMsybSL5Irul3R0mK0O1raHXSjUzciWHNhMh0d8zMajVgsFoAzDnMYjUZ++ukn\nVq9ezfLly3nttddYvXo1Uko2bdqEp6dnveqXUrJixQp6nGQAPDw8nF9//ZWlS5fyn//8pzb/ZMfn\n5eXVq77WTLdusHGjMg5PmACLFkHQuU/+0GjaJDUvy7Nnzz6nctr1YNzJGvrAwEBCQ0PZsGEDAAsX\nLmTkyJHHHFNVVUVpaSlXXnklL730Ejt27ABgzJgxvPLKK7XHbd++/bT1jx07lldffbV2e9u2bbXf\nb775Zp5//nnKy8vp27fvGY9vC4SEwDffQHw8DB0KO3e2tEQaTdumXSuAU00ze++993j44YcZOHAg\n27dv56mnnjrm+PLycsaNG8eAAQO49NJLmTdvHgCvvPIKW7ZsYcCAAfTt2/eYN/eT8eSTT2K32+nf\nvz/9+vWrrQfgxhtvZOnSpdx88821eU888cQpj28reHrCv/4Fjz4KI0cqdxIajaZpaLezgDRnT3M/\njy1blB+h229Xi8bam11AozkTehqoptloiedRUACTJoGfn7ILBJ/Z95tG0244VwXQaoaAZs2a1ShW\nbU3bIjISvv1WLRQbMgTS0lpaIo2m5UlJSWmUiTO6B6CpNy39PD74QLmVfvddNWVUo2nv6CEgTbPR\nGp7Hjz8qu8D//Z9SBjpcsKY9oxWAptloLc8jJ0etFejdG+bPP/+dyWk0DaVV2wCEEPFCiLeFEMua\nsh5N+6JTJ1i3ThmG+/dXges1Gs3Z0yw9ACHEMinlpNPs1z2A84DW+Dy+/hruvhtuuAH+8Q/w929p\niTSa5qNZegBCiHeEEPlCiB3H5V8phNgthNgjhJjRUCE0moZy1VWwYweUlakhoY8/VqEoNRrNmanv\nENACYGzdDCGEAXjNnd8HmCKESHTvu00I8ZIQoiYqc5s01ZWUlHD99dfj7+9PfHw8H3300SmPnTdv\nHh06dCA4OJi77roLu91e73JWr15Nr1698Pf3Z/To0Sc4gJsxYwbh4eFEREQwc+bMY/ZlZWUxatQo\n/Pz86N27N6tXrz5m/+LFi+nSpQsBAQHccMMNlJaWNvR2tBihoSru8MKFasHYlVfC3r0tLZVGcx5Q\nX7ehQBywo872MODrOtszgRnHnRMKvA7sPX7fccedztVpq2Xy5Mly8uTJsqqqSq5fv14GBQXJnTt3\nnnDcN998I6Ojo+WuXbtkaWmpTEpKko8++mi9yikqKpJBQUFyxYoV0mq1ykceeUQOGzas9tw33nhD\nJiYmysOHD8vDhw/L3r17y//85z+1+4cPHy4ffvhhabFY5IoVK2RwcLAsKiqSUkr522+/yYCAALl+\n/XppNpvl1KlT5eTJk095va39eUgppc0m5QsvSBkWJuUTT0hZUdHSEmk0TQfn6A76XBTAjcCbdbZv\nBV5tkBAgk5OTa9PatWvrXlyrxGw2Sy8vL7lv377avNtvv/2Yhr2GqVOnyscff7x2e82aNTI6Orpe\n5bz55pvy4osvPqZeHx8fmZ6eLqWU8qKLLpJvvfVW7f53331XDh8+XEopZXp6uvT29paVlZW1+y+9\n9NJaBfHYY4/JW265pXZfRkaG9PLyOub4urTm53E8OTlSTp0qZWSkUghmc0tLpNGcO2vXrj2mrTxX\nBdCu3UGfC3v27MHT05Nu3brV5g0YMIDU1NQTjk1LS+O666475riCggJKSkrIyso6bTlpaWkMGDCg\ndp+vry/du3cnLS2NhISEE/YPGDCANPdy2Z07d9K1a1f8/PxOuj8tLY2LL764dl/Xrl0xmUzs2bOH\nQYMGNfjetAZiY5XriN9+g9mzYe5cmDED7r0XfHxaWjqNpmEcHzOlJd1BHwI619mOdec1iIa4ghCi\ncVJDqKysJPC4CeiBgYFUVFSc9NigOs7tAwMDkVJSUVFxxnKOP/dM+wMDA6msrGzQuae7hvOVvn1h\n+XLlZjo1VbmU+Pe/wWptack0mobTWK4gzkYBCI415m4Gugsh4oQQXsBkoGmD0h6HGsI699QQ/P39\nKS8vPyavrKyMgICAMx5bVlaGEIKAgIAzlnO2+8vKyvB3z4U817LbEgMGKNfSn32mlEGPHmoRmVYE\nmvZMfaeBLgY2AglCiGwhxDQppRO4H1gFpAFLpJS7GipITUjI84WEhAQcDgcZGRm1edu3b6dPnz4n\nHNunT59jgsNs27aNqKgoQkJCzlhOnz59jgn8YjabycjIqA0Sc7Ky6567f/9+zGbzKcuue25GRgZ2\nu52EhISG3ZTzgMGDYeVKNV30q6+ge3d47TWtCDTnF0lJSY0zbH4uBoTGSriNwDXG3xpo5UbHKVOm\nyKlTp0qz2SzXrVsng4ODTzkLqEOHDnLnzp3yyJEjMikpST722GP1KqewsFAGBwfLTz75RFosFvnI\nI4/UGnmlVLOAevfuLQ8dOiQPHjwoe/fuLd98883a/cOHD5ePPPJI7SygkJCQ2llAaWlpMigoSK5f\nv15WVlbKqVOnyqlTp57yelv782gImzdLec01UsbFSfn++1I6HC0tkUZzZmqMwTTXLKCmTKdqWFp7\ng3PkyBF53XXXST8/PxkXFyeXLFkipZQyOztbBgQEyJycnNpj582bJ6OiomRQUJD8wx/+IG022xnL\nqYElFd0AABbESURBVGH16tUyMTFR+vr6yssuu0xmZWUds3/GjBkyNDRUhoWFyZkzZx6zLysrSyYl\nJUkfHx+ZmJgo16xZc8z+jz76SHbu3Fn6+/vL66+/XpaUlJzyelv78zgX1q2T8qKLpOzbV8qVK6V0\nuVpaIo3mzJyrAmg1zuCSk5NPsHC3RtcD7Zm2/jykVMNDjz2m4hPPmQN1JklpNK2GlJQUUlJSmD17\nNlJ7A9U0B+3leTidalVxcjIMHAgvv6wC1Ws0rY1W7Q1UozkfMRrhzjshPR2GDVORyJ5/XikGjaYt\n0WoUgA4JqWlteHvDo4/C5s3w5ZcwejTs39/SUmk0OiSkpgVoz8/D+f/t3Xl0VOX9x/H3NwgKhCAH\nSIyAgQolgFqkinKQAnEh/BAQN1AUUYt7UVwIFGtIXQrqz1NFrforiMomrW1F6kLBINXWSlsWCQIB\nDQho1BYoLsFAvr8/nokNIcudJXPvTL6vc+aQuXfy5Mmd4T6591k+h9xs4pkz4ZZbYNo0aNbM71qZ\nxs5uARkTB02awOTJsHate/TtC++/73etjIlOYBoAuwVkEkGnTvCHP8Ctt0JODjz0kPUNmPizW0Am\n7uz9OFxJCVxzDXz2mRsyOmyYhdSb+LJQeBM39n4cSRWWLoUpU6BtW9dH0K+f37UyjYX1ARjjIxEY\nPtzFUl5zDYweDaNGuWWojQm6wDQAidgH4DUSsqioiNzcXNq3b0+TJk2O2D9o0CCaN29OWloarVq1\nokePHoftt0jI4Ks6d6B/fzjnHLjkEti+3e+amWQUqz4A39cB0gReC8hrJOTmzZt1zpw5umTJEk1J\nSTli/6BBg3TOnDk1/gyLhExMX36p+vOfu2jKWbNsbSHTMLDF4PwRTiRkpa1bt9baAMyePbvG77FI\nyMS2ZYtq796qY8daLKWJvWgbgMDcAko0tUVCVsYthmvq1Kmkp6czYMCAw2Il64qErGl/uJGQVb+3\naiSkiY1u3eCdd1xn8Vln2S0hEyyByQSOhBTEZsyd5oc/siWcSMj6PPjgg/Ts2ZNmzZqxcOFChg8f\nzrp16+jSpQtffvkl6enptf6cSCIhd+/eXef+ZIqEDIIWLWDePLeo3BlnwIIFbg6BMX4LTANQmQgW\nTipYJCfuWIllnOLpp5/+3dfjxo1j4cKFvPrqq9x8880WCZkkRGDSJBdNefnlLqD+ttts3oCJTOVy\n0NEKzC2gZI6EDFfV8fYWCZlccnLgb39zy01feSV8/bXfNTKJKOkiIevo4Agsr5GQqqplZWVaVFSk\nIqJlZWV64MABVVXdu3evvvHGG1pWVqYHDx7UefPmaWpqqhYXF6uqRUImq6++Uh0/3kVRvvSSjRIy\nkcFGAfnHayRkSUmJioimpKRoSkqKioh26dJFVd0J/vTTT9e0tDRt06aN9uvXT1esWHHYz7FIyORV\nWKjaq5fqOeeoFhX5XRuTaKJtAGwpCOOZvR8No7wcnngCHngAzj0X7r4bqs0FNKZGgV8KQkRGisgz\nIrJQRM5t6J9nTKJp2tR1CG/dCr16wcCBMGYMRDii2BjP4nYFICLHAg+p6oQa9tkVQAKw9yM+9u+H\nJ5+ERx5xncYzZkBWlt+1MkEUtysAEZktIqUisr7a9lwR2SQiW0Qkr44i7gaeiLSixjQWrVq5YaLb\ntkH37tCnD9x5J+za5XfNTLIJ5xbQs8CQqhtEJAV4PLS9F3CZiGSH9l0pIo+IyPEiMgN4VVXXVi/U\nGFOz1FSYPt0lkB08CCefDBMmuAXnjIkFzw2Aqr4N7Km2uS9QrKrbVbUcWASMDL3+BVW9HbgIOBu4\nWESui021jWk8OnVys4i3bIEOHWDAABdQv3gxfPut37UziSzamcAdgI+rPN+JaxS+o6qzgFn1FVR1\nUkO4M4KNaQzatXNXBFOnwu9/D7/6FUyc6JahnjABqixLZZJUrGYAVwrMUhBgJ35jvDj6aDdKaMwY\ndzvomWfgzDPh1FPh+uthxAg3ssgkn8pzZKwagrBGAYlIFvCKqp4Sen4mMF1Vc0PPp+AmJswMqxI2\nCigh2PsRXGVl8NJL8PTTUFwMV18N110HnTv7XTPTkOI9D0BCj0qrga4ikiUizYAxwJJIKpKIiWDG\nBMUxx8DYsbBqFaxYAd98A6edBjfeCKWlftfOxFrcE8GABcBu4ACwA7g6tH0osBkoBqZEMh2ZJFgK\nonPnzrpgwYIaX7do0SLt3r27pqWlaUZGho4fP17379/vuZzly5drdna2tmzZUnNyco5YCmLy5Mna\ntm1bbdeunebl5R22r6SkRAcPHqwtWrTQHj166PLlyw/bP3/+fM3KyrKlIJLQF1+oTpqketxxqq+9\n5ndtTEMgWdYCys/P18LCwpp+ucDyGgn58ccfa2lpqaq6RK+xY8fqxIkTPZVjkZAmWitXqnbsqHrH\nHaqhNQhNgissLNT8/PzkaQBqEuQTTiSRkKqq+/fv13HjxumwYcM8lWORkCYWPv9cdfhw1b59VXfu\n9Ls2JlaibQAClQeQSH0A4UZCvvPOOxx77LGkpaXxu9/9jkmTJnkqxyIhTSy0awcvvwyjRkHfvvDu\nu37XyEQjVn0AgWoAwh4CKhKbRwTCjYTs378/e/fuZdeuXdx1111khRZ3qa+c+mIbI4mE9Fq2SS4i\nMGWKGyk0YgQ895zfNTKRilUgTGAagIi4e1jRPyIQaZxiZmYmQ4YMYfTo0Z7KsUhIE2vnnw8rV8J9\n98Edd7hlJkzjFJgGINFuAUUTCVleXs6HH37oqRyLhDQNoWdPF025fj0MGwZ7qi/yYgIt7sNAG/JB\nAnYCq3qPhJw/f77u2LFDVd2wzIEDB+rFF1/sqRyLhDQNqbxc9bbbVLt1U60lzdQEGDYKyD9eIyGn\nTZumHTt21NTUVO3UqZPecMMN+u9//7vecipZJKRpaHPmqLZvr7p0qd81MeGItgEITCRkfn7+EWsB\n2dIDwWLvR3L761/h4ovdAnOTJ0c8PsLEQeVaQAUFBWgUS0EEpgGoqR52wgkWez+S386dcMEF0K2b\nGy1UbYCaCZjAZwIbYxJHx47w5z+7VLJTT4XVq/2ukWlI1gAYYw7TvLlbYvrBB90IoTlz/K6RaSiB\nyQOonAhmeQDGBMNFF0GvXm7S2LZtbt6A9QsEgy95AA3F+gASg70fjdPnn0NurgudmTULUuy+QWBY\nH4AxpkG1bw9vvgkbNsC4cVBe7neNTKxYA2CMqVfr1vD667B3r7sltG+f3zUysWANgDHGk+bNXRh9\n167udtCGDX7XyEQrMA1Aoq0FZExj1LSp6weYPBkGD3YjhQ4d8rtWjY+tBRQAXiMh586dq02aNNFW\nrVppamqqtmrVSt966y3P5VgkpAmijz5SHTRItV8/1S1b/K5N44StBeQfr5GQc+fO1QEDBkRUjkVC\nmiA7dEj10UdV27ZVfewx99zEjzUAPgknErKuBsAiIU0y2LxZ9cwzVXNyVEtK/K5N4xFtAxCYPoBE\nE24k5Jo1a0hPTyc7O5v77ruPiooKT+VYJKRJBN//Prz9Npx3HvTuDVdeCcuWwYEDNb/+q69g3Tr4\nzW9cn8IvfwmvvAL/+ld8693YNehMYBHJBm4F2gJvqupTMS0/Rp3GGsHs43AiIQcOHMiGDRvIysqi\nqKiISy+9lKZNm5KXl+cpEjI9Pb3O/eFGQu7evbvO/RYJaSLRpAnk5cE118C8eZCfDxs3wg9+ACee\n6BqDTz+FLVvcib5rV9dwZGa6yWV//COMHQsdOriJZzfd5BalMw2nQRsAVd0E3CgiAjwHxLQBiOTE\nHSvhxCl27tz5u6979erFPffcw8MPP0xeXp5FQpqk0749TJrkHl984VLHPvoIjjkG0tPdSb9Tp5pn\nFB886IaXLl4M/fvDFVfAzJlu9JGJPU+3gERktoiUisj6attzRWSTiGwRkbxavnc4sBR4NfrqBkc0\nkZBAZd+HRUKapNauHeTkwLXXur/uzz0XsrJqX07iqKPcLaQHHoBNm9zj3HPh66/jW+9Gw0tHAXAW\n0BtYX2VbCrAVyAKaAmuB7NC+K4FHgMwqr19aR/l1dXAEltdIyNdee01LS0tVVfWDDz7Qk046Se+9\n915P5VgkpGnMDh1SveIK1csvV62o8Ls2wUO8RgGFTvRVG4AzgdeqPJ8C5FX7noHAo7hbPzfWUXZd\nv1xgeY2EvPPOOzUjI0NTU1P1xBNP1OnTp+vBgwfrLaeSRUKaxuzrr1X79FF9+GG/axI80TYAnlcD\nFZEs4BVVPSX0/CJgiKpeF3p+BdBXVSeGeRHyXSRkpcploW31yWCx98P4ZccO6NcPHn8cRo3yuzb+\nqb4MdLSRkIHJAwAsD8AYU6MTToAlS9zooJYt3XDTxqjyHBn3PIAargDOBKaram7o+RTc5cjMsCth\neQAJwd4P47dVq+Cyy9zooPHjITvbbf/0Uzd6aOdOt2Jp06Zw9NHQooWLtuzRIznDbKLNAwjnCkBC\nj0qrga6hhuETYAxwWaQVsUQwY0x9fvQjWLMGpk1zcZU7drgTe+vWcPLJboTRsce6zIJvv4X//Afu\nuce95oknYMgQv3+D2IjrFYCILAAG4SZ0lQL5qvqsiAwFfokbETRbVWdEVAm7AkgI9n6YoPn2W/dv\n06Z1/4X/+utw441ubsEjj7j5CMkgLolgqnq5qh6vqker6gmq+mxo+2uq2l1Vu0V68q9ky0EbY8LV\nrJl71Hd7JzfX3SLKzHRXCnPnQiz+lqmogPnzXZ9ERgbccINb4qKhxWo5aMsENp7Z+2GSwT//Cddd\nB2lp8PTTkS83UVQEV1/tJq9NmuQmsFWubTR4sFvfKBZXGh995G5fqbr+jAsugNBk/+TJBLYrAGNM\nPPTpA+++C8OHu6GlT0WwQM22bW6G8rXXukXwLrnENSQ//SkUF0PHjnDGGa6RiMaMGXDaaW6dpfR0\nt0TGCSfA5ZevZNq06dEVjl0BmDDY+2GSzdatMHSoG1lUUOBtpNAXX7hIzLvuguuvr/118+bBHXfA\nn/4Ep5wSXr1U3WJ6v/0tLF8Oxx//330ff+wW3XvvPdi2LborAGsAjGf2fphk9NlncNZZ8Nhjrq+g\nLhUVcP75cNJJLg6zPosXu9tDq1a5FVG9eugh109RWFj7baSlS2H4cLsF5Js9e/YwatQoUlNT6dKl\nCwsXLqz1tXfffTcdO3akTZs25OTksHHjRs/lrFixgh49epCamsrZZ5/Njh07Dtufl5dHu3btaN++\nPVOmTDls3/bt28nJyaFly5b07NmTFStWHLZ/wYIFdO7cmVatWnHhhReyd+/eSA+HMQkpPR2mT3cL\n0NXn4Ydh3z64/35vZV96Kdx+O/zkJ97rM2+em/H8xhu1n/xXrlzJ3/8+3XuhtYlmHYlYPUjQtYC8\nRkK++OKL2qFDBy0pKdGKigqdOnWq9unTx1M5FglpTMMrL1f93vdUV62q/TUbNqi2a6dabSmuen3z\njWpGhmoNp4YjFBW5eM0NG7yVjUVC+iOcSMiZM2fq6NGjv3teVFSkzZs391SORUIaEx/PPKOam1vz\nvoMHVc84Q/WppyIr+557VG+4oe7XlJWp9u7t6uFVtA2A3QKKUDiRkGPGjGHbtm0UFxdTXl7O3Llz\nGTp0qKdyLBLSmPgYNw7efx/+8Y8j9z3+uFtaYsKEyMq+6SZYtKjuyMv773cjfH784/rLi9U8gMAs\nBhfJL7NSVsbkZw/SQWF/TziRkJmZmfTv35/u3btz1FFH0alTJ958801P5VgkpDHxcfTRcOedri/g\npZf+u72kBO69F/7yl9qDbOqTkQEXXeQ6mgsKjtxfXAxPPglr13obiVS5bE5BTYWFITANQCQiOXHH\nSjhxigUFBaxevZpdu3aRkZHBCy+8wODBg9m4caNFQhoTIBMmwC9+4bKMe/Z0wzGvv941DNEG5U2d\n6uYG3H67W7uokqrrJJ4yxc0fiKfA3AJKNOFEQq5bt44xY8aQmZlJSkoKV111FXv27GHjxo0WCWlM\ngLRs6f5CP+88ePFFGDEC9u934/mjdeKJbgG7WbMO3/7cc/DJJ3DrrdH/jLBF04EQqweg+fn5WlhY\nWFMHR2B5jYQsKCjQAQMGaGlpqVZUVOjzzz+vqampum/fvnrLsUhIY+Jv2TLVk05SLShQPXAgduVu\n2uRGEm3a5J5/+KF7vn59eOUUFhZqfn6+jQLyk9dIyLKyMr3llls0MzNTW7durT/84Q912bJl9ZZT\nySIhjUkev/61arduqgsXqmZnRxd1GW0DYDOBjWf2fhgTG1OnwrJl8LOfwciRkYfVRLsYnDUAxjN7\nP4wJlqRZDdQYY0x8BaYBSLSJYMYY4xcLhDFxZ++HMcFit4CMMcZExBoAY4xppAK9FERWVhYS6fgo\nE3NZWVl+V8EYE0MN3gcgIi2At4B8VX21ltfU2AdgjDGmdonQB5AHvBiHn2NCbDRV7NixjC07nsHi\nqQEQkdkiUioi66ttzxWRTSKyRUTyavi+c4CNwOeA3cuJE/tPFjt2LGPLjmeweO0DeBaYBTxfuUFE\nUoDHgbOB3cBqEXlZVTeJyJVAHyAN2Af0Ar4G/hjDuhtjjImCpwZAVd8Wkeo9gH2BYlXdDiAii4CR\nwCZVfQF4ofKFIjIO+CI2VTbGGBMLnjuBQw3AK6p6Suj5RcAQVb0u9PwKoK+qTgy7EiLWA2yMMRGI\nphM4EMNAo/kFjDHGRCaaUUC7gBOqPO8Y2maMMSYBhNMACIeP5FkNdBWRLBFpBowBlsSycsYYYxqO\n12GgC4C/AN8XkR0icrWqHgJ+AiwDioBFqvpBOD+8vmGkpn4iUiIi60RkjYi8F9rWRkSWichmEXlD\nRFrXV05jVdMQ57qOn4hMFZFiEflARM7zp9bBVcvxzBeRnSLyz9Ajt8o+O561EJGOIvKmiBSJyPsi\nMjG0PXafz2jixKJ54BqfrUAW0BRYC2T7VZ9EfQAfAm2qbZsJTA59nQfM8LueQX0AZwG9gfX1HT+g\nJ7AG13fWOfT5Fb9/hyA9ajme+cDtNby2hx3POo/lcUDv0NepwGYgO5afTz8Xg/tuGKmqlgOVw0hN\neIQjr+RGAs+Fvn4OuCCuNUogqvo2sKfa5tqO3wjcle5BVS0BinGfYxNSy/GEmieCjsSOZ61U9VNV\nXRv6+kvgA1xfa8w+n342AB2Aj6s83xnaZsKjwJ9EZLWI/Di0LUNVS8F9iIB032qXmNJrOX7VP7O7\nsM+sV7eIyFoR+XWVWxZ2PD0Skc64K6t3qf3/d9jH05aDTnz9VbUP8D/AzSIyANcoVGXzLKJjxy86\nTwLfU9XewKfA//pcn4QiIqnAb4FbQ1cCMfv/7WcDYMNIY0BVPwn9+znwB9wlX6mIZACIyHHAZ/7V\nMCHVdvx2AZ2qvM4+sx6o6ucaukkN/B//vS1hx7MeInIU7uT/gqq+HNocs8+nnw2ADSONkoi0CP11\ngIi0BM4D3scdx/Ghl10FvFxjAaZS9SHOtR2/JcAYEWkmIl2ArsB78apkAjnseIZOUpUuBDaEvrbj\nWb85wEZVfbTKtph9Pn2bCayqh0TkFtww0hRgtoY5jNSQAfw+tJTGUcB8VV0mIn8HFovINcB24FI/\nKxlkoSHOg4C2IrIDN2JlBvCb6sdPVTeKyGLcCrflwE1V/rI11Ho8B4tIb6ACKAGuBzue9RGR/sBY\n4H0RWYO71fNT3CigI/5/R3I8AxEKb4wxJv6sE9gYYxopawCMMaaRsgbAGGMaKWsAjDGmkbIGwBhj\nGilrAIwxppGyBsAYYxopawCMMaaR+n+JFRerZU4WgwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8369f4af10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def run():\n",
" noise_vs_data = []\n",
" for noise in [0.0, 0.15, 0.3, 0.5, 0.8]:\n",
" real_weights, batched_data = build_rnn_final_dataset(\n",
" n_hidden_dim=10, n_input_dim=15, n_batch_size=20,\n",
" n_steps_per_batch=100, n_batches=30,\n",
" noise=noise)\n",
"\n",
" model = PureRNN(n_hidden_dim=10, n_input_dim=15, n_steps=100)\n",
" weight_template = model.weight_map()\n",
" loss = model.loss\n",
"\n",
" optimizer, var = build_objective(loss, weight_template, \n",
" data_generator=repeat_multiple_generator_warper(batched_data), \n",
" optmization_method=climin.adam.Adam,\n",
" opt_params={'step_rate': 0.1})\n",
"\n",
" print('weight template is', weight_template)\n",
"\n",
" var_dists = []\n",
" for step in optimizer:\n",
" argv = list(var) + list(step['args'])\n",
" loss_n = loss(*argv)\n",
" var_dists.append([loss_n, np.sum((real_weights[1] - var[1].T)**2)])\n",
"\n",
" if step['n_iter'] % 20 == 0 or step['n_iter'] == 1:\n",
" print(step['n_iter'], loss_n)\n",
"\n",
" if step['n_iter'] > 200:\n",
" break\n",
" \n",
" noise_vs_data.append( (noise, np.array(var_dists) ) )\n",
" \n",
" # -- plot\n",
" for noise, data in noise_vs_data:\n",
" plt.semilogy(data[:, 0], label='%f'%noise)\n",
" plt.title('loss vs iteration')\n",
" plt.legend(title='noise level', loc='best')\n",
" plt.show()\n",
" \n",
" for noise, data in noise_vs_data:\n",
" plt.semilogy(data[:, 1], label='%f'%noise)\n",
" plt.title('|w-w_real|_L2')\n",
" plt.legend(title='noise level', loc='best')\n",
" plt.show()\n",
" \n",
"run()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment