Skip to content

Instantly share code, notes, and snippets.

@arogozhnikov
Last active April 3, 2019 18:54
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save arogozhnikov/930f5663a63014e773d9 to your computer and use it in GitHub Desktop.
Save arogozhnikov/930f5663a63014e773d9 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# GB reweighter demonstration\n",
"demonstration of reweighter on several random features."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"figsize(16, 8)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import root_numpy\n",
"import pandas\n",
"from hep_ml.experiments import reweight"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"folder = '/moosefs/notebook/datasets/reweight/'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"columns = ['hSPD', 'pt_b', 'pt_phi', 'vchi2_b']\n",
"original = root_numpy.root2array(folder + 'jpsiphi-MC-2011.root', branches=columns)\n",
"target = root_numpy.root2array(folder + 'jpsiphi-RD-2011.root', branches=columns)\n",
"\n",
"original = pandas.DataFrame(original)\n",
"target = pandas.DataFrame(target)\n",
"\n",
"original_weights = numpy.ones(len(original))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"hist_settings = {'bins': 100, 'normed': True, 'alpha': 0.7}"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from hep_ml.metrics_utils import ks_2samp_weighted\n",
"\n",
"def draw_distributions(new_original_weights):\n",
" for id, column in enumerate(columns, 1):\n",
" xlim = numpy.percentile(numpy.hstack([target[column]]), [0.01, 99.99])\n",
" subplot(2, 2, id)\n",
" hist(original[column], weights=new_original_weights, range=xlim, **hist_settings)\n",
" hist(target[column], range=xlim, **hist_settings)\n",
" title(column)\n",
" print 'KS over ', column, ' = ', ks_2samp_weighted(original[column], target[column], \n",
" weights1=new_original_weights, weights2=numpy.ones(len(target), dtype=float)) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Original distributions\n",
"KS = Kolmogorov-Smirnov distance"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(2919007, 21441)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(original), len(target)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"KS over hSPD = 0.519780980407\n",
"KS over pt_b = 0.215775288101\n",
"KS over pt_phi = 0.401261963539\n",
"KS over vchi2_b = 0.404588540169\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7AAAAHpCAYAAAC7o9DUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X+8XHV94P/XJQERIyJl9yKT24YFrKS7/rhqSG1dZlt2\nm5sWkNYuTbUq3UeF7Ybiliqg23JvW3er37UiS4UoAbEq2KLQULmibh1pt4hECSJwYyYkJbmYERJD\nfhBucrnz/eNz7txzT+78ujNzZ87M6/l4nAfzmXPOzDvnkXDmfT6fz/sDkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJEtuBX253EJIkqSWGgb9udxBS2h3T7gAklRSjbS4fBJ4E\n9gM7gDti+3LAoWjfM8CXgFOjfZ8BJoB90fYo8D+BE5sauSRJvSlLuC/Xotw9XlIdTGClzvdu4J2E\n3tmXA28CvhHbXwT+W7Tv1cBJwMdj+z5CSFhPAS4BVgL/DzhhAWKXJElBX7sDkLqBCazUWd4APALs\nJfSyvoSQsN4HbIuOKQA3lzn/J8CXgX8btfuYuWEeBjYCFwA/RUhmJUlSdduBq4HHgD3ALcDLgFHg\nNMIoqH3MjICaSxE4nnB/3wd8F3htyyKWupQJrNQ5+oDfBH4FOJ1wU3sP8G3gXcAfEZLZRWXOhdDL\n+hvA96L2XMOVDgBfB97apLglSeoFvw38J+AMwoinq4FVwNOEUVAnArsqnN8HXAj8DfBK4AvA3cDi\n1oUsdR8TWKlzFIHrCTe/nwD3AK8HPg9cTkhsc4Qe2A/EzuuLzvsJsAkYB/6wynf9CDi5eaFLktTV\nisANhHvsT4APA2vm8TkbCSOlXgT+ktAju7JJMUo9wSc+UmeJP7k9RBiWBOEp7RcIva8XEZLahwk9\nqUVCgntLHd+TAXY3GqwkST0kXqzpKWbu0fXYGXtdjNqvaiQoqdfYAyt1rrmG/74I3Al8n5l5rvV+\nzhLgPOAf5x+aJEk956cTr5+m/srCA7HXxwBLo8+RVCMTWKlzTc9rfTewmjC/5hhgCPg54ME5jp3r\nM6b3vQR4I2G+zW7g1ibHK0lSt+oDfp8wgulk4EOEYkwFQmHEWpeneyNhJNVi4H3AC4RaF5JqZAIr\nda7pdWH3EdaB/RfCvJu/AC4D/jlxbLnP+ED0Gc8CtwEPAW8hDFGWJEnVFQlTeb4GbAW2AH8ObAZu\nJ6zVvofqVYjvBi6Ojn0H8OuE0VWSmmgVMEb4h3pVmWOuj/Y/QlgGpNq5w4Qx/w9H26qmRixJUu+q\ndt9+DfAAoefnysS+awjLhDxK+LH+ktaFKaXKNuCX2h2EpOoWAXlgGXAsocLp2YljVgP3Rq/PYWYY\nRKVzr6V6lVRJklSfWu7b/4qwJNefMzuBXUboRZpOWr9ImMIgyQRW6hjVhhCvINwItwNHCGP9L0wc\ncwFhWCKEOXknEYZPVDu33Jw9SZI0P7Xct58hLOVxJPH+vui9Ewjz804gLBkiqXajwP45tqvbGZTU\nTaoto5NhdsnwnYRe1mrHZAilxSudeznwLsJN9Epgb81RS5KkudRy3y5nD/AxwvIgh4D7gG80NTop\nvU6v8bihlkYhqWoCW2tp8Hp7U28E/jR6/WeEG+Z/SR50xhlnFLdu3VrnR0uSVNZW4Mx2B9FC9S7p\nEXcGoSrqMuA54G8JRWY+P+sg782SpOap+75cbQjxOLPXqxpg9gLMcx2zNDqm0rk/ZqbC6s2EIU9H\n2bp1K8Vi0a2B7dprr217DGnfvIZew07YvIbN2QhJWjer5b5dzpsI1c13A5PAlwkVy2dJ4705jf9+\njNmYjdmYeyFm5nFfrpbAbgTOIjyNPY5Q9ntD4pgNhKHAACsJQ4ELVc59Vez8iwjVDiVJUmNquW9P\nS46eGiPcx18a7TsPeLwlUUqSNE/VhhBPAmsJ82AWAeuBJ4BLo/3rCBWIVxOKRhwELqlyLsBHgNcT\nemC3xT5PkiTNXy337VMJ60GfCEwBVwDLCUvhfZaQBE8B3wM+tYCxS5JUVbUEFkI1tdHEe+sS7bV1\nnAszPbZqsWw22+4QUs9r2DivYeO8hqpDtfv2LmYPM477aLR1lTT++zHmhWHMC8OYF0YaY56PTl/K\nphiNjZYkqWF9fX3Q+fe+Tue9WZLUFPO5L1ebAytJkiRJUkcwgZUkSZIkpYIJrCRJkiQpFUxgJUmS\nJEmpYAIrSZIkSUoFE1hJkiRJUiqYwEqSJEmSUsEEVpIkSZKUCiawkiRJkqRUMIGVJEmSJKWCCawk\nSZIkKRVMYCVJkiRJqbC43QEIhobWUCgcKLX7+5cwOnp7GyOSJKk1hi4aorCnUGr3n9zP6F2jbYxI\nkpQm9sB2gELhAJnMPaUtnsxKklSnVcAYsAW4ao79rwEeAF4ArkzsOwm4E3gCeBxY2ezgCnsKZC7L\nlLZ4MitJUjX2wEqS1D0WATcA5wHjwEPABkJCOm03cDnwtjnO/wRwL/B2wm+El7UyWEmS6mUCK0lS\n91gB5IHtUfsO4EJmJ7DPRNuvJs59BfBW4N1RexJ4rlWBTstvyTN47mCp7ZBiSVIlJrCSJHWPDLAj\n1t4JnFPjuacTEttbgdcB3wWuAJ5vZoBJk0ySuSxTao/fNN7Kr5MkpZwJbItYmEmS1AbFBs5dDAwC\nawlDj68Drgb+JHng8PBw6XU2myWbzTbwtZKkXpHL5cjlcg19hglsi0wXZpo2Pn5+G6ORJPWIcWAg\n1h4g9MLWYme0PRS17yQksEeJJ7CSJNUq+dBzZGSk7s+wCrEkSd1jI3AWsAw4DriYUMRpLn2J9i7C\n8ONXR+3zgMeaH6IkSfNnD6wkSd1jkjAE+D5CReL1hAJOl0b71wGnEnpZTwSmCPNclwMHCNWJP09I\nfrcClyxg7JIkVWUCK0lSdxmNtrh1sde7mD3MOO4R4M2tCEqSpGYwgZUkSR3DZXUkSZWYwEqSpI7h\nsjqSpEos4iRJkiRJSgUTWEmSJElSKjiEWJIktczQRUMU9hRK7fyTeTJkKpwhSVJ5JrCSJKllCnsK\ns+a0jl051sZoJElp5xBiSZIkSVIqmMBKkiRJklLBIcQLJJ/fzODg+aX2jh15BgbOjPZtI9PAdKCh\noTUUCgcA6O9fwujo7Q3FKkmSJEmdqJYe2FXAGLAFuKrMMddH+x8B3lDHuVcCU8DJNcabWpOTi8lk\n7iltBw/2lV5PTk419NmFwoHSZ00nspIkSZLUbaolsIuAGwiJ6HJgDXB24pjVwJnAWcB7gRtrPHcA\n+I/Av8w/fEmSJElSr6g2hHgFkAe2R+07gAuBJ2LHXADcFr1+EDgJOBU4vcq5fwl8APi7+QbfrZLD\njR0WLEmSJEnVE9gMsCPW3gmcU8MxGeC0CudeGLW/X2e8PWF6uPG08fHzKxwtSZIkSb2hWgJbrPFz\n+ur4zpcCHyQMH656/vDwcOl1Npslm83W8VXdwR5ZSZqfXC5HLpdrdxgLbRVwHWEqz83ARxL7XwPc\nSqhZ8SHgY4n9i4CNhAfNPkGVJHWUagnsOGGu6rQBwg2t0jFLo2OOLXPuGcAyQsGn6eO/Sxiu/ONk\nAPEEtlfZIytJ85N88DkyMtK+YBbGdP2J8wj354eADcye+rMbuBx4W5nPuAJ4HHh568KUJGl+qhVx\n2kgozrQMOA64mHAjjNsAvCt6vRLYCxQqnPsDoJ8wR/Z0QlI7yBzJqyRJqku8dsURZupPxD1DuEcf\nmeP8pYTijDdT3+gqSZIWRLUe2ElgLXAf4anuesJT3Euj/euAewk3uzxwELikyrlJtQ5TliRJldVS\nu6KSjwPvB05sZlCSJDVLtQQWYDTa4tYl2mvrODfp39QQgyRJqq6Rh8K/RhgN9TCQrXSg9SkkSfPR\njNoUtSSwqsHQ0BoKhQOldj6/jUymNd+VLOrUyu+SJKVKLbUrynkLYWm81cDxhF7YzzIzTajE+hSS\npPloRm0KE9gmKRQOzCq0NDa2vGXflSzq1MrvkiSlSrz+xNOE+hNryhybnOP6wWgDOBf4I+ZIXiVJ\naicTWEmSukcttStOJVQnPhGYIlQdXg4cSHyWNSokSR3HBFaSpO5SrXbFLmYPM57Lt6JNkqSOUm0Z\nHUmSJEmSOoIJrCRJkiQpFRxCLEmSOlZ+S57BcwdL7f6T+xm9q9oKfZKkbmUC24D40jkuZSNJUvNN\nMknmspkb7PhN422MRpLUbiawDYgvneNSNpIkSZLUWs6BlSRJkiSlggmsJEmSJCkVTGAlSZIkSang\nHNgK4kWaAPr7lzA6ensbI2pcN/6ZJEm9w6rEktTbTGAriBdpAhgfP7+N0dQmn9/M4OBMnMkENY1/\nJkmSplmVWJJ6mwlsl5mcXGyCKkmSJKkrmcBKkqSmGbpoiMKeQqmdfzJPBhdKlyQ1hwlsHZLDc/P5\nbWS8J0uSVFLYU5g1xHfsyrE2RiNJ6jYmsHVIDs8dG1vexmgkSZIkqbe4jI4kSd1lFTAGbAGummP/\na4AHgBeAK2PvDwDfBB4DfgD8QWvDlCSpfvbAdjmHPUtST1kE3ACcB4wDDwEbgCdix+wGLgfeljj3\nCPDfgU3AEuC7wNcT50qS1FYmsF3OYc+S1FNWAHlge9S+A7iQ2UnoM9H2q4lzd0UbwIHonNMwgZUk\ndRCHEEuS1D0ywI5Ye2f0Xr2WAW8AHmxCTJIkNY09sJIkdY9iEz5jCXAncAWhJ/Yow8PDpdfZbJZs\nNtuEr52f/JY8g+cOltr9J/czetdo2+KRJJWXy+XI5XINfYYJrCRJ3WOcUIxp2gChF7ZWxwJfAj4H\n3F3uoHgC226TTM5atmf8pvE2RiNJqiT50HNkZKTuz3AIsSRJ3WMjcBZhCPBxwMWEIk5z6ZujvR54\nHLiuRfFJktQQe2AlSeoek8Ba4D5CReL1hCJMl0b71wGnEqoTnwhMEYYKLwdeD7wT+D7wcHT8NcBX\nFyh2SZKqMoGVJKm7jEZb3LrY613MHmY87Z9wZJYkqcN5o5IkSZIkpYIJrCRJkiQpFUxgJUmSJEmp\nYAIrSZIkSUqFWhLYVcAYsAW4qswx10f7HwHeUMO5fxYduwn4v8xdTEKSJEmSpJJqCewi4AZCIroc\nWAOcnThmNXAmYd259wI31nDuR4HXEUr23w1c28gfQpIkSZLU/aoto7MCyAPbo/YdwIWENeWmXQDc\nFr1+EDiJsMbc6RXO3R87fwnw7HyCV+Py+c0MDp4PQH//EkZHb29zRJIkzV9+S57BcwdL7f6T+xm9\nK7mqkCQpraolsBlgR6y9EzinhmMywGlVzv0w8DvA88DK2kNWM01OLiaTuQeA8fHz2xyNJEmNmWSS\nzGWZUnv8pvE2RiNJarZqQ4iLNX5O3zy++0PATwOfAT4+j/MlSZIkST2kWg/sOLMLLA0QelIrHbM0\nOubYGs4F+AJwb7kAhoeHS6+z2SzZbLZKyJIkBblcjlwu1+4wJElSk1RLYDcSijMtA54GLiYUY4rb\nAKwlzHFdCewFCsDuCueeRahMDGFe7MPlAognsJIk1SP54HNkZKR9wUiSpIZVS2AnCcnpfYSqwusJ\nRZgujfavI/SeriYUbDoIXFLlXID/Bfws8CKwFfivjf9RJEmSJEndrFoCCzAabXHrEu21dZwL8PYa\nvnfBDQ2toVA4UGrn89vIZCqcIEmSJElaMNWKOPWUQuEAmcw9pW1ycqrdIUmSVK9VwBhhqs5Vc+x/\nDfAA8AJwZZ3nSpLUVrX0wKpHxNeEBdeFlaQUWgTcAJxHKLL4EKFWRXz99t3A5cDb5nGuJEltZQKr\nkviasOC6sJKUQisINSm2R+07CMUS40noM9H2q/M4t+0mJia4//7vzGpLknqHCawkSd0jA+yItXcC\n5yzAuS2TTFinpoocf/yKUnvf1N/P2n/o0Auz2sWthxcmUEnSgjCBVc2SRa4cYixJHafYpnNbplhk\ndsLKVxJH9B21P95+9sDXnB4jSV3EBFY1my5yNc0hxpLUccaBgVh7gNCT2tRz42u0J9fabVSyx7VY\nbCyvLhb7vHdJUofI5XLkcrmGPsMEVpKk7rEROAtYBjwNXAysKXNs33zPjSewzVa9x7UxFiyUpPZJ\nPvQcGRmp+zNMYCVJ6h6ThLXZ7yNUFV5PKMJ0abR/HXAqocLwicAUcAWwHDhQ5tyuYsFCSUo3E1hJ\nkrrLaLTFrYu93sXsocLVzu1q9shKUrqYwKqs5E09n99GJtPGgCRJqlPxxcPcv2mw1J7oe2rWfntk\nJSldTGBVVvKmPja2vI3RSJI0D8fC8W+fefq6/5bH2xiMJKlRx7Q7AEmSJEmSamEPrCRJaptmL5vT\nqOT0GXBerCR1kp5PYIeG1lAoHACc4ylJ0kJr9bI59UpOnwHnxUpSJ+n5BLZQOFC6UTnHU5IkSZI6\nl3NgJUmSJEmp0PM9sJIkSZW4VqwkdQ4TWEmSpApcK1aSOodDiCVJkiRJqdBzPbDxqsNg5WFJkiRJ\nSoueS2DjVYfBysOtMnTREIU9hVK7/+R+Ru8abfm5kiRJkrpXzyWwWhiFPQUyl810bY/fNL4g59Yr\nniybKEtS9yu+eJj7Nw2W2hN9T7UxGklSvUxglXqNJKHxZLmVibIkdavkqJn8k3kylJ+bMzExwf33\nf6fULhaLLY3vKMfC8W+fiW//LY/X/RFWJZak9jGB1bzFb+DtvHmbhErSLKuA64BFwM3AR+Y45npg\nCHgeeA/wcPT+NcA7gSngUeASYKLSlyVHzYxdOVYxuGIRjj9+Ram9j69UPL4TWZVYktrHBFbzFr+B\nt/Lmnd+SZ/DcmeFeDvWVpLIWATcA5wHjwEPABuCJ2DGrgTOBs4BzgBuBlcAy4PeAswlJ6xeB3wJu\nW5jQJUmqzgRWHW+SyQWbEytJKbcCyAPbo/YdwIXMTmAvYCYpfRA4CegH9gFHgBOAF6P/+j9cSVJH\nMYFVzSb6nrLwhSR1tgywI9beSehlrXZMBvge8DHgKeAQcB/wjZZFKknSPJjAqmbFxZM1F77Ib93G\n1vtnHtwXtx5uaWySJABqrYjUN8d7ZwDvIwwlfg74W+AdwOeTBw4PD5de79+7v84QJUm9KpfLkcvl\nGvoME1i1xOSRKV4eK9Kx/8j9bYxGknrGODAQaw8QelgrHbM0ei8L/DOwO3r/y8BbqJLAbvjmhsYi\nliT1jGw2SzabLbVHRkbq/gwTWKlGyaUiLCYlqQNtJBRnWgY8DVwMrEkcswFYS5gfuxLYCxSAzcAf\nAy8FXiAUgvoOXa4Z68K6rI4kLRwTWDVF8uY9MXGYl7cxnlZILhVhMSlJHWiSkJzeR6hIvJ5QwOnS\naP864F5CJeI8cJCwVA7AJuCzhCR4ijAn9lMLFXjbNGFdWJfVkaSFYwKrpkjevDdtPb5l35VcVif/\nZJ4MmQpnSFJPGY22uHWJ9toy53402iRJ6ki1JrCNLIpe7tz/D/g14DCwlfAE+Ll6/wDqPclldcau\nHCu9Tia3O7bvYGDZzFQvh/1KkiRJ6VVLAtvIouiVzv0acBVhmNJfANcAVzf6B1JlnbgUTnJuaSM9\nqnMltw77lSRJkrpDLQnsfBdFPxU4vcK5X4+d/yDwG/UGr/rVsxROK8WT1vyTec796LmlffEeVUlS\nuk1MTHD//TO1oIrFWlf6kSTpaLUksI0sin5aDecC/C5gub4eEi+I1KkJazN7hq1gLKlXFYtwfGxZ\ntX18pY3RSJLSrpYEtpFF0WvxIcI82C/MtTO+1lxy3SC1V3zpgUN9P5w1NLnYd6RdYc3bXMWhmtUz\nbAVjqT2asWC6VC+X1ZGk1qklgZ3voug7gWOrnPsewvzZXy735fEEVh0mtvTAvs9smjU0ed9nNrUr\nqnmrVBxKUjo1Y8F0qV4uqyNJrXNMDcfEF0U/jrAo+obEMRuAd0Wv44uiVzp3FfB+wpzYF+YZvyRJ\nkiSpR9TSA9vIoujlzgX4P4SkdrqY0wPA78//j6JONnHoYEes3eoaspIkSVJ61boObCOLos91LoSe\nWbVZfB5rK5fUKS4udsTwXIcJS5IkSelVawKrbhWbx9quJXW6gVWGJak7xB/sTuuENdMlSYEJrNQE\n9VYZTg5lNuGVpA4Re7A7zQe8ktQ5TGC1IIrFqVkL2U9MTLQxmuaIJ6H1zqVNDmV2WR1JkiSpOhNY\nlTXR91QT13btm7WQ/f7ivQ18VmeIJ6HOpZUkleO6sJLUPCawXSaZdDYyb6e4eDL1a7t2g3rm1zoX\nVxJhmbrrCNX/bwY+Mscx1wNDwPOENdkfjt4/KTrn54Ai8LvAt1sbbvdzXVhJah4T2C6TTDrrmbeT\nLFzRWI+rmqWe+bX1zsWV1HUWATcA5wHjwEOE9defiB2zGjiTsBrAOcCNhDXcAT5BWBrv7YTfCC9b\nkKglSaqRCWwXiPe6NpR0JgpX2OMqSamzgrAm+/aofQdwIbMT2AuA26LXDxJ6XfuBF4C3Au+O9k0C\nz7U2XEmS6tP1CezQ0BoKhQOldj6/jUzttXZSId7ratLZGZJVhust8iRJ85QBdsTaOwm9rNWOWQq8\nCDwD3Aq8DvgucAVhmHHNJiYmZhXtKxaL9ZzekZIjlFxWR5Lap+sT2ELhwKx5J2Njy9sYjabFqxJ3\nQ0XipGSVYYs8SVogtWaLfXOctxgYBNYShh5fB1wN/EldARSZVbRvH1+p5/TOlBih5LI6ktQ+XZ/A\nqlPNVCXuhorEktQhxoGBWHuA0MNa6Zil0Xt90bEPRe/fSUhgjzI8PFx6vX/v/kbi7UlWJZbUq3K5\nHLlcrqHPMIGVJKl7bCQUZ1oGPA1cDKxJHLOB0Mt6B6F4015gunz5DuDVwA8JhaAem+tL4gnshm9u\naFLo6dHokGKrEkvqVdlslmw2W2qPjIzU/RkmsFKHSS6F4/xZSXWYJCSn9xEqEq8nFHC6NNq/jlBl\neDWh2NNB4JLY+ZcDnweOA7Ym9mmaQ4olqW1MYKUOk1wKp5H5s8liUq4LK/WE0WiLW5dory1z7iPA\nm5sekSRJTWICq46TrGDZjUWekuKJZr09rvEe2+S5yWJSrgsrSZKkNDOB7XLJeToNrRPbIvGKxABT\nU8VZFSx7ochTPNGst8c13mNrtWNJkiR1MxPYbpeYp9OZ68T2dd+SCy3kGrOSJEnqVSawKTDR95QL\nqKukVWvMJotHOV9WkiRJncYENgWKiyetdqiWSxaPcr6sJC0M14WVpNqZwEqSJLWR68JKUu2OaXcA\nkiRJkiTVwh5YqYe4LqwkSZLSzARW6iGuCytJkqQ0M4FNoTSs7SpJkubHok6SVJ4JbBqlYm1XSVIv\nyG/dxtb7Z0ZzFIvFNkbTHSzqJEnlmcCq4xWLU9x//3dK7YmJiTZGI0mKmzwyxcuPX1Fq7+MrbYxG\nktTtTGA7wETfU7OGBE/0PdXGaDpRH8fHfhztL97bxlh619BFQxT2FErtHdt3MLBsoNS2IJQkSZJa\nzQS2AxQXT84aErz/lsfbGI00t8KewqwCUGNXjlkQSpI4ujaFD6IlqXW6LoEdGlpDoXCg1M7nt5HJ\nVDhBkqTusgq4DlgE3Ax8ZI5jrgeGgOeB9wAPx/YtAjYCOwEnX9YiUZvCB9GS1Dpdl8AWCgdmFT4Y\nG1vexmi0ECYmJkpzZJ0fK6nHLQJuAM4DxoGHgA3AE7FjVgNnAmcB5wA3Aitj+68AHgdevgDxqgZW\nJZakGV2XwHYDl8mpLFnUaWqqWJoj6/zY5slvyTN47szfw/yTeTKUH84QP975sFLbrADywPaofQdw\nIbMT2AuA26LXDwInAf1AAVhKSHA/DPxh68NVLaxKLEkzTGA7kcvkVDG7qJMVL+cvnnQmE9RJJo+a\n81pJ/Hjnw0ptkwF2xNo7Cb2s1Y7JEBLYjwPvB05sYYySJM2bCazUw+JJZ7UEVVIq1LoIa98c7V8D\nfkyYD5utdPLw8HDp9YuHJ2sOTpLU23K5HLlcrqHPqCWBbaQYRLlzfxMYBl4DvBn43nyClyRJs4wD\nA7H2AKGHtdIxS6P3foMwvHg1cDyhF/azwLuSXxJPYD9648cbj7rLWJVYkuaWzWbJZrOl9sjISN2f\nUS2BbaQYRKVzHwUuAtbVHbEkSSpnI+F+vAx4GrgYWJM4ZgOwljA/diWwF9gFfDDaAM4F/og5klfV\nIDkV6NObTGglqUmqJbDzLQZxKnB6hXMdqyh1sWQBKIs6SQtmkpCc3kd4kLyecN+9NNq/DriX8PA5\nDxwELinzWbUOR1Y1TV5mx6rEknpZtQS2kWIQp9VwrqQulCwAZVEnaUGNRltccsTT2iqf8a1oUwey\nKrGkXlYtgZ1vMYimic+zSY6ZliSpkmYUi5CazTmykjR/1RLY+RaD2AkcW8O5VcUT2G4y0fdU6ebl\nOq/Nk1wjdmJioo3RSGq3ZhSL0NFuvuXm0uup4ottjCSlmjykWJJ6SbUEdr7FIArA7hrOhRb23nay\n4uLJ0s3LdV6bafYasfuL97YxFknqTjc9ehMAB8YPMDVlAttuzomV1EuqJbCNFIMody6ECsTXA6cA\nXyEsuzPU8J+mg8V7XMFeV0lSer1qxasAKDxcaHMk3aHRIcXOiZXUS2pZB7aRYhBznQtwV7T1jHiP\nK9jrqt42dNEQhT0zP3ytUiyppzmkWJJqVksCK6WWc2I7Q3JZnfyTec796LmltlWKJUmSVAsTWHU5\n58R2guSyOmNXuhS0JLWKc2IldTMTWEkdzeHGklQf58RK6mYmsC1i0abOlBxSfOjQC6W2w4vbJz7E\nOJmgFvYUZvXeOtxYkiSpd6U6gS0Wi6xf/1n27j1Yem/fvv1kMhVOapFkwjp17CGLNnWk2UOK9/GV\nUtvhxe0TH2Jsgiqp1zValViSulmqE9ipqSk++ckvsXjxZQBMTDzN3r372xKLVYYlSVJTNLkqsXNi\nJXWTVCewAH19x9DfvxqAffseZXz8xjZHJGkhxefIOj9Wko7mnFhJ3ST1Cayk3hafI5scfmwBKEmS\npO5iAiupazSy3qzJrqRe4ZBiSWlmAitFkhWKrUqcPo2sN2u1Y3WRVcB1wCLgZuAjcxxzPTAEPA+8\nB3gYGABUtUNpAAAgAElEQVQ+C/xroAh8KjpOXcYhxZLSzARWKpldodiqxJJSaBFwA3AeMA48BGwA\nnogdsxo4EzgLOAe4EVgJHAH+O7AJWAJ8F/h64lwAHnkkPBw6tO0gU1NTrfmTSJI0BxPYBsSXznGd\nV6k55hoGnKENa2NJ6bQCyAPbo/YdwIXMTkIvAG6LXj8InAT0A7uiDeBAdM5pzJHAHjx4GgCHDvwL\nxWKxmfFrDq1eVschxZLSxAS2AfGlc1w2p/skhxQfOvSCQ4wXQCPDgCWRAXbE2jsJvazVjlkKFGLv\nLQPeQEhwj7J48YkA9B1zXEPBqkZNXlYnySHFktLEBFYqa/aQ4n18xSHGKZfs3d2xfQcDywbCvkRP\nb/JYizopJWrtDu2rcN4S4E7gCkJP7FEOPLAZgMO7d1M84hBiSVJtcrkcuVyuoc8wgZWUKo0MMZ6r\nd3e6nezpTR77rSu/ZUKrNBgnFGOaNkDoYa10zNLoPYBjgS8BnwPuLvclS37+ZwE48MPNvPDs/sYi\nVt0cUiwprbLZLNlsttQeGRmp+zNMYCWlSruGGCe/1yrF6lAbCcWZlgFPAxcDaxLHbADWEubHrgT2\nEoYP9wHrgccJVYzVqRxSLKmHmcDWIV60CSzcJGl+XHNWLTRJSE7vI1QkXk8ownRptH8dcC+hEnEe\nOAhcEu37BeCdwPcJy+oAXAN8dSEC1/zZIyupl5jAVpBMWKeOPTTriaeFm3pbvMiTBZ1UD9ecVYuN\nRlvcukR77Rzn/RNwTEsiUmvZIyuph5jAVhCvMgwmrEqaKfK0b+rvrVDcYyoVhLJHVVI72SMrqZuZ\nwEpN0WeF4h5TqSCUPaqS2soeWUldzARWagHXkO1tzVyCx/mykjqdPbKSFpIJrNQSriHby5pZsdj5\nspIalRxSfKjvh00dYmyPrKSFZAIrSS3WyNq1ktSwxJDifZ/Z1NIhxvbISmolE9gYl8mR1ArV1q6N\nJ7jVhgg3c3iyJLVCskf2W996tQmtpKYxgY2x6rAWSnKOrHNie1s8wf3Wld+q2FubTIbjx5vMSpqP\nhR5ibEIrqREmsFJbJObIxpbhMZntbdV6aysdn5wfawEoSTWpMsR436c3OWdWUsfo+QQ2PmzYIcNq\nn/JrylrBWPOVLACV7N2Nr10L9SW4JsdSD2nxsjzJObM7duQZGDiz1LaHVlJczyew8WHDDhlWZ7CC\nseanWrGoSmvXwuwEt1pya3VkSc2S7JEdG1vukGNJZfVcAmuhJqWd82dVTr3Djyudn0xuTVAlTWv1\nnNkk59BKiuv6BDaZsE4de8hCTUq58vNnHW4sSWq5BZ4zm2RCK/W2rk9grSys7hebP5sYbpycT2tC\nq/lyLVtJNUsmuImEdqGrHDunVuoutSSwq4DrgEXAzcBH5jjmemAIeB54D/BwlXNPBr4I/AywHfjP\nwN55xK9qjhTbHUHqHd7xLMcNnNLuMOapfG8tLFxC++LEiwvyPd3s2cef5ZTl7ft72OjwZC2oVty3\nUy2N/x/vqpjr7LFNJrjV2skEuJ45tfv3P8vevXtnJbjQ2UluLpcjm822O4y6GPPCSGPM81EtgV0E\n3ACcB4wDDwEbgCdix6wGzgTOAs4BbgRWVjn3auDrwEeBq6L21c34A+07nHeOa9xkuwNIv8M7d6fu\nR0R5tQ8/buZw5KnDU/M+V8Hux3e3NYGtJt5Da0XitmrVfTvV0vj/8Z6KuVqCW61dZw9vPMHdvHmY\ngwf/ZlaCC9V7cau1W5kApzFJMeaFkcaY56NaArsCyBN6SQHuAC5k9s3sAuC26PWDwEnAqcDpFc69\nADg3ev82IMc8E9jDhw9x4MAPAXj++e1MLTrskGGpZhWGH1cZjlwp4XWocu+ptB6tFlSr7ttS52qg\nh/eF537EZN/+oz6yWi9utXYnJ8BS2lVLYDPAjlh7J+FpbbVjMsBpFc7tB6YXECxE7bpNTU2xrfAQ\nW58bAqA4dZgperzHVWqZysv7xNvJZHfyyGTNyW8re4KlHtCq+/Ysh/fsBmDq+Rcai1ZaCBUS3MkH\nDnD4B4VZCS7UP4w52d7/4pNsfWbJzHc+v4XDz7y01D7w/A5WZmaeDT2yecms/Q9vfoQT+meWzZs8\n9CL/9sz/AMCPfrSZv/qrL9aVEDfaNqFWmvwG8OlY+53A/0kccw/wC7H2N4A3znHu7xDm3AD8JPEZ\ne8p8fx4ourm5ubm5NWnL092aed+e61zw3uzm5ubm1ryt7vtytR7YcWAg1h4gPJGtdMzS6Jhj53h/\nelxZgTBcaRfwKuDHZb7/zDLvS5KkozXzvj3XueC9WZLUwRYDW4FlwHHAJuDsxDGrgekxDiuBb9dw\n7nTxJghzX/+i6ZFLktR7WnXfliQpNYaAzYTu3Wui9y6Ntmk3RPsfAQarnAthGZ1vAD8EvkYoICFJ\nkhrXivu2JEmSJEmSJCntVgFjwBZmhhrraAPAN4HHgB8AfxC9fzJhnd25erivIVzXMeA/LViknW8R\n8DChuAl4Det1EnAnYbmNxwmVS72G9bmG8G/5UeALwEvwGtbiFkJdhUdj783nur0x+owtwCdaGG+a\npfHevB34PuH/79+pfGjb1Pt3uFPMFfcwYd70w9G2auHDKms+v5k6Qbm4h+nca308YYmuTYTfBP8r\ner+Tr3W5mIfp3Os8rZ7fsJ0iGfMwnX+dK1pEGLq0jFBQwjk45Z0KvD56vYQw7OtswhzjD0TvX8XM\nHOPlhOt5LOH65oFjFijWTveHwOeBDVHba1if24DfjV4vBl6B17Aey4AnCUkrwBeBd+M1rMVbgTcw\n+0d0PdetL9r3HcIaqhDmh6bu5tliab03byP8mOtk9fwd7iRzxX0t4X7aier9zdQpysXdydca4ITo\nv4sJ8+x/kc6/1nPF3OnXGWr/DdtJkjGn4TpX9PPAV2Ptq6NN1d0NnEd4Qj69tu6pURtCz0P8qflX\nCQU8et1Swpzs/8DMkyCvYe1eQUi+kryGtTuZ8KPklYQb5z3Af8RrWKtlzP4RXe91exVh9MC03wJu\nakWgKZbWe/M24KfaHUQNllHb3+FOs4yjE9gr2xNK3ar9ZupU03Gn5VqfADwE/BzpudbxmDv9Otfz\nG7ZTzBXzMHVc5058Yl9ugXVVtozwJPRBwl/aQvR+gZm/xKcxe0kEr23wceD9wFTsPa9h7U4HngFu\nBb5HWEfyZXgN67EH+BjwFPA0sJcw/MdrOD/1Xrfk++N4PZPSem8uEn4obQR+r82x1KPc3+E0uJxQ\nHGw9nTl0EWr7zdSJlhHinq4c3snX+hjCSI0CM0OgO/1azxUzdPZ1ruc3bKeYK+YidVznTkxgi+0O\nIIWWAF8CrgD2J/ZNLxJcTq9f718jrEP8MDNDCZO8hpUtJlQx/WT034Mc3TPjNazsDOB9hB8npxH+\nTb8zcYzXcH6qXTfVJq3X8BcIP/iHgP9GGPaaNmn6O3wj4aHm64EfER7MdZpGfjO10xJCrYkrgAN0\n/rWeIsS2FPj3hN62uE681smYs3T2dW7Gb9iFVi7muq5zJyawtSzCrhnHEv5H/NeEYSUQnracGr1+\nFeEvCsy9eP34AsTYyd4CXEAYZnY78EuEa+k1rN3OaHsoat9JSGR34TWs1ZuAfwZ2A5PAlwlDNr2G\n81PPv9+d0ftLE+97PWdL6735R9F/nwHuYmaec6cr93e40/2YmR/MN9N517ue30ydZDruzzETd6df\n62nPAV8hFMpLw7WGmZjfRGdf53p/w3aCuWL+LHVe505MYDcCZzGzkPrFzEzw1Wx9hG72x4HrYu9v\nIBSAIfrv3bH3f4twXU8nXOdOrcq4UD5I+CF2OuHa/APwO3gN67GLMLTw1VH7PMKwm3vwGtZqjDAX\n86WEf9fnEf5dew3np95/v7uAfYTq2X2E/wfcjeLSeG8+AXh59PplhKrTj5Y/vKOU+zvc6V4Ve30R\nnXW96/3N1CnKxd3J1/oUZoaAvpRQ0+FhOvtal4v51NgxnXad6/0N2wnmivlddPbf55q5kHptfpEw\n3GETs8tOn0yY8zNX+ewPEq7rGPArCxlsCpzLzA8yr2F9XkfogX2E0Hv4CryG9foAM8vo3EZ44u41\nrO52wrzhw4QHKZcwv+s2vYxOHri+5VGnU9ruzacT7o+bCMuPdGrM9f4d7hTJuH+X0JPyfcK94G46\na+7dfH4zdYK54h6is6/1vyPUxNhEiPH90fudfK3LxdzJ1zmu1t+wnSTLTMx/TTqusyRJkiRJkiRJ\nkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJkiRJUgttB365zL63AmMLF4okSZIkqdtkgR1N+qxtwC816bMkSep1WSrfo28E/keD\n3/EZ4M8a/AypKx3T7gAkSZKkLvJfgT+PXq8Evg7sBn4M/A1wag2fUYw2SQkmsFJ7bQeuBh4D9gC3\nAC8DRoHTgP3APirf7IaBO4E7omO/C7w2ccwbgEeAvdFxL4nez9K8nl5JkjTbScBNwM9E237g1hrP\n7WtVUJIkzdd24PtABngl8E+EIUPnUntiOQwcBn4dWARcCTwZvZ7+jm8TkuBXAo8Dl0b7snV8jyRJ\n3eYq4G8T730i2l5JSDbHCQ+Z74r2Zwn3zj8ECsDTwHti53+G8sN/BwkPm6u5lTAU+WvR8Tngp2s4\nT+p69sBK7VUEbiDcHH8CfBhYM4/P2Qh8GXgR+EvgeMKwpenvuB7YFX3HPcDrG4pakqTucDuwGlgS\ntRcBvwl8Hvgc4X66HPjXhPvrtFOBEwmjpf4L8FfAK6J9lYb//nvgBzXE1Qe8A/hT4BRgUxST1PNM\nYKX2i/eAPkW4GdZrZ+x1MWrHP2dX7PUhZm7UkiT1sqeA7wEXRe1fAg5G768CLgOeAyaBf4ydd4SQ\nXL5ImPZzAPjZ2P65hv++Fvhj4P01xvb3hJFZh4EPAT9PGLEl9TQTWKn9fjrx+mnqL9wwEHt9DLA0\n+hxJklTZF5gZ/fTbUXuAMGz4uTLn7AamYu3nqfxw+EzgXuAPgP9XQ0zTD6OnHYzimc9DbqmrmMBK\n7dUH/D7hierJhCesdxDm1PwUYXhSLd5IeHq8GHgf8AJh3qskSarsTsK81gzwNkICu5NwX35F+dNq\n9jOESsR/Sn3DgOMPp5dE8fhwWj3PBFZqryLhRvk1YCuwhVB6fzNhXs6ThCeulaoQF4G/Ay6Ojn0H\noaDTixWOLybakiT1qmcIRZI+Q7jvbgZ+RBga/ElCJeFjCfNXaxEfPpwB/oFQ7+JTdcTUR5ib+wvA\ncYSiUA8QamZIaoFbCD1Ij1Y45nrCj/VHCEt8SL1oG2G+TSOuBf66CbFI6g6rgDHCPfaqOfa/hvBD\n+AVC1fJpA8A3Cct6/YAw1FHqFe8kDAmO/5t4JSGp3UV4QHxn9H6WMEc2Ln4/v5XQ2wrhHj1FWD5n\nequ1CvEnCQ+49xMS7J+p7Y8iaT7eSkhKyyWwqwnzAADOwaGO6l3NSGCHMYGVFCwC8sAyQo/RJuDs\nxDH/CngTYbRH/Mf6qcxUKF9C6IVKnitJUlu1agjxPxKW6yjnAuC26PWDhKEZ/S2KReoGo8x+eju9\nXUPlcv2SessKQgK7nVAl9Q7gwsQxzxCW3jqSeH8XIeGFUFH1CSwYI0nqMIvb9L0ZZi8dspNQNbXQ\nnnCktjm9xuOGWhqFpG4x1/31nHl8zjLCSKoHmxCTpLk9xuyVCKa9l1AHQ9Ic2pXAwtHrYx3Vg3TG\nGWcUt27dukDhSJJ6wFbCchbdqhmjMZYQ5vpdQeiJncV7s9RyX4g2qRfUfV9uVxXicWaXBl/KHFXV\ntm7dSrFYdGtgu/baa9seQ9o3r6HXsBM2r2FzNuCMBbrPtUvy/jrA7LUkqzkW+BLwOeDuuQ5I4705\njf9+jNmYjdmYeyFm5nFfblcCuwF4V/R6JbAXhw9LktSojcBZhCHAxxGW19pQ5tjkSKg+YD3wOHBd\ni+KTJKkhrRpCfDtwLnAKYS7OtYSnugDrCBWIVxMKTRwELmlRHJIk9ZJJYC1wH6Ei8XpCMaZLo/3r\nCNWGHwJOJCzvcQWwnFCB+J3A94GHo+OvAb66QLFLklRVqxLYNTUcs7ZF362YbDbb7hBSz2vYOK9h\n47yGqsNotMWti73exexhxtP+ifaNzGqpNP77MeaFYcwLw5gXRhpjno/k8KFOU4zGRkuS1LC+vj7o\n/Htfp/PeLElqivncl7vySaskSZIkqfuYwEqSJEmSUsEEVpIkSZKUCiawkiRJkqRUMIGVJEmSJKWC\nCawkSZIkKRVMYCVJkiRJqbC43QE0w9BFQxT2FADoP7mf0buS67dLkiRJktKuKxLYwp4CmcsyAIzf\nNN7maCRJkiRJreAQYkmSJElSKpjASpIkSZJSwQRWkiRJkpQKJrCSJEmSpFQwgZUkSZIkpYIJrCRJ\nkiQpFUxgJUmSJEmp0BXrwEqSJLXC0NAaCoUDAPT3L2F09PY2RyRJvc0EVpIkqYxC4QCZzD0AjI+f\n3+ZoJEkOIZYkSZIkpYIJrCRJkiQpFUxgJUmSJEmp4BxYSZKkSLxoE0A+v41Mpo0BSZJmMYGVJEmK\nxIs2AYyNLS+9zuc3MzgYCjlZkViS2sMEVpIkqQaTk4utSCxJbeYcWEmSussqYAzYAlw1x/7XAA8A\nLwBX1nmuJEltZQIrSVL3WATcQEhElwNrgLMTx+wGLgf+9zzOlSSprUxgJUnqHiuAPLAdOALcAVyY\nOOYZYGO0v95zJUlqKxNYSZK6RwbYEWvvjN5r9bmSJC0IizhJktQ9igtx7vDwcOl1Npslm8028LWS\npF6Ry+XI5XINfYYJrCRJ3WMcGIi1Bwg9qU09N57ASpJUq+RDz5GRkbo/o1VDiKtVMTwF+CqwCfgB\n8J4WxSFJUi/ZCJwFLAOOAy4GNpQ5tq+BcyVJaotW9MBOVzE8j/A09yHCDfCJ2DFrgYeBawjJ7Gbg\nc8BkC+KRJKlXTBLusfcR7sfrCfffS6P964BTCffmE4Ep4ApC1eEDZc6VJKljtCKBjVcxhJkqhvGb\n4I+A10avTySU9Dd5lSSpcaPRFrcu9noXs4cKVztXkqSO0YoEdq4qhuckjvk08A/A08DLgf/cgjgk\nSZJaIp/fzODg+aV2f/8SRkdvb2NEktQbWpHA1lLF8IOE+a9Z4Azg68DrgP3JA610KEmar2ZUO5Tm\nMjm5mEzmnlJ7fPz8CkdLkpqlFQlsLVUM3wJ8OHq9FdgG/CyhgMQsVjqUJM1XM6odSpKkztGKKsS1\nVDEcIxR5AugnJK9PtiAWSZIkSVKXaEUPbC0VEP8ncCvwCCGJ/gCwpwWxSJIkSZK6RCsSWKheAfFZ\nwMkikiRJkqSatWIIsSRJkiRJTWcCK0mSJElKhVYNIZYkSUqFoaE1FAoHAMjnt5HJtDkgSVJZJrCS\nJKmnFQoHSmu6jo0tb3M0kqRKHEIsSZIkSUoFE1hJkiRJUiqYwEqSJEmSUsEEVpIkSZKUCiawkiRJ\nkqRUMIGVJEmSJKWCy+hIkiQ1KJ/fzODg+QD09y9hdPT2NkckSd2p6xLY/JY8g+cOltr9J/czetdo\nGyOSJEndbnJycWkt2fHx89scjSR1r65LYCeZJHNZptQev2m8jdFIkiRJkprFObCSJEmSpFQwgZUk\nSZIkpYIJrCRJkiQpFUxgJUmSJEmpYAIrSZIkSUoFE1hJkrrLKmAM2AJcVeaY66P9jwBviL1/DfAY\n8CjwBeAlrQtTkqT6mcBKktQ9FgE3EJLY5cAa4OzEMauBM4GzgPcCN0bvLwN+DxgE/l30Wb/V8ogl\nSaqDCawkSd1jBZAHtgNHgDuACxPHXADcFr1+EDgJ6Af2ReecQFgn/gTAxdQlSR3FBFaSpO6RAXbE\n2juj92o5Zg/wMeAp4GlgL/CNlkUqSdI8mMBKktQ9ijUe1zfHe2cA7yMMJT4NWAK8ozlhSZLUHIvb\nHYAkSWqacWAg1h4g9LBWOmZp9F4W+Gdgd/T+l4G3AJ9Pfsnw8HDpdTabJZvNNhS0JKk35HI5crlc\nQ59hAitJUvfYSCjOtIwwDPhiQiGnuA3AWsL82JWEocIFYDPwx8BLgReA84DvzPUl8QRWkqRaJR96\njoyM1P0ZJrCSJHWPSUJyeh+hivB64Ang0mj/OuBeQiXiPHAQuCTatwn4LCEJngK+B3xqoQLvJvn8\nZgYHzy+1+/uXMDp6exsjkqTuYQIrSVJ3GY22uHWJ9toy53402tSAycnFZDL3lNrj4+dXOFqSVA+L\nOEmSJEmSUsEEVpIkSZKUCiawkiRJkqRUMIGVJEmSJKWCCawkSZIkKRValcCuAsaALcBVZY7JAg8D\nPwByLYpDkiRJktQlWrGMziLgBsIC6OPAQ4RF05+IHXMS8FfArwA7gVNaEIckSZIkqYu0ogd2BWFx\n9O3AEeAO4MLEMb8NfImQvAI824I4JEmSJEldpBUJbAbYEWvvjN6LOws4GfgmsBH4nRbEIUmSJEnq\nIq0YQlys4ZhjgUHgl4ETgAeAbxPmzM4yPDxcep3NZslms82IUZLUA3K5HLlcrt1hSJKkJmlFAjsO\nDMTaA8wMFZ62gzBs+FC03Q+8jioJrCRJ9Ug++BwZGWlfMJIkqWGtGEK8kTBEeBlwHHAxoYhT3N8B\nv0go+HQCcA7weAtikSRJkiR1iVb0wE4Ca4H7CAnqekIF4kuj/esIS+x8Ffg+MAV8GhNYSZIkSVIF\nrUhgAUajLW5dov2/o02SJEmSpKpalcBKkiQJyOc3Mzh4PgD9/UsYHb29zRFJUnqZwEqSJLXQ5ORi\nMpl7ABgfP7/N0UhSurWiiJMkSZIkSU1nD6wkSeopQ0NrKBQOlNr5/DYymTYGJEmqmQmsJEnqKYXC\ngdKQXoCxseVtjEaSVA+HEEuSJEmSUsEEVpIkSZKUCiawkiRJkqRUMIGVJEmSJKWCCawkSZIkKRVM\nYCVJkiRJqWACK0lSd1kFjAFbgKvKHHN9tP8R4A2x908C7gSeAB4HVrYuTEmS6mcCK0lS91gE3EBI\nYpcDa4CzE8esBs4EzgLeC9wY2/cJ4N7onNcSEllJkjqGCawkSd1jBZAHtgNHgDuACxPHXADcFr1+\nkNDr2g+8AngrcEu0bxJ4rrXhSpJUHxNYSZK6RwbYEWvvjN6rdsxS4HTgGeBW4HvAp4ETWhapJEnz\nsLjdAUiSpKYp1nhc3xznLQYGgbXAQ8B1wNXAnyRPHh4eLr3OZrNks9n6I+1R+fxmBgfPL7X7+5cw\nOnp7GyOSpIWTy+XI5XINfYYJrCRJ3WMcGIi1Bwg9rJWOWRq91xcd+1D0/p2EBPYo8QRW9ZmcXEwm\nc0+pPT5+foWjJam7JB96joyM1P0ZDiGWJKl7bCQUZ1oGHAdcDGxIHLMBeFf0eiWwFygAuwhDi18d\n7TsPeKy14UqSVB97YCVJ6h6ThCHA9xEqEq8nVBK+NNq/jlBleDWh2NNB4JLY+ZcDnyckv1sT+yRJ\najsTWEmSustotMWtS7TXljn3EeDNTY9IkqQm6foENr8lz+C5gwD0n9zP6F3Je7okSZIkKQ26PoGd\nZJLMZWEFgfGbxtscjSRJkiRpviziJEmSJElKBRNYSZIkSVIqmMBKkiRJklLBBFaSJEmSlApdX8RJ\nkiSpVhN9T3H/psFZbUlS5zCBlSRJihQXT3L82zOl9v5bHm9jNJKkJBNYSZKkNsnnNzM4eD4A/f1L\nGB29vc0RSVJnM4GVJElqk8nJxWQy9wAwPn5+m6ORpM5nESdJkiRJUiq0KoFdBYwBW4CrKhz3ZmAS\n+PUWxSFJkiRJ6hKtSGAXATcQktjlwBrg7DLHfQT4KtDXgjgkSZIkSV2kFQnsCiAPbAeOAHcAF85x\n3OXAncAzLYhBkiRJktRlWpHAZoAdsfbO6L3kMRcCN0btYgvikCRJkiR1kVZUIa4lGb0OuDo6tg+H\nEEuSpBSZ6HuK+zcNzmpLklqvFQnsODAQaw8QemHj3kgYWgxwCjBEGG68Iflhw8PDpdfZbJZsNtu8\nSCVJXS2Xy5HL5dodhrpEPGmdOvYQx799ZoDZ/lseb1dYktRTWpHAbgTOApYBTwMXEwo5xf2b2Otb\ngXuYI3mF2QmsJEn1SD74HBkZaV8wSr3i4slS0rrvM5vaHI0k9aZWJLCTwFrgPkKl4fXAE8Cl0f51\nLfhOSZKkpiu+eLjU61rsO9LmaCRJrUhgAUajLa5c4npJi2KQJElqzLHY6ypJHaRVCWxLve+q9/HY\nlsdK7X3795E5qtCxJElSeuTzmxkcPB+A/v+/vfsPjuMsDzj+VSQLJXaakNIxRFbHKUkoaWnBMI7b\nUCI6gcYZCMNAh2ZKW6DtkE4paUuBhj9a568WZhgyNDShCQFT2oTh59hNDA0Disq0OAlE4YdxsJxf\ntpIoTkJiWXEkn3X9411J6/Xdae9u92739P3M7Hj3bu/0aL3a3Wffd99n/Tp27bqlyxFJUvGUMoHd\nM7mHymsrDK4bZPr701T2VbodkiRJUlsqlQGGh3cCMDX15i5HI0nFlEcd2I4YXDvI4OmD9L+gv9uh\nSJIkSZI6oLQJrCRJkiRpdTGBlSRJkiSVQimfgW3V5L5JNl28aWl5/Vnr2fW15GDJkiSV2qXAtYRS\ndjcBH62xzieBrcBzwLuAe2Pv9RNquh8EfBCzBXN9jyyV3llcliRlY1UlsBUqDF+5PFrx1A1TXYxG\nkqTM9QPXAZcAU8DdwA5CPfZFlwHnAucBFwLXA1ti718F7AFO70C8hRBPOLOo9VodqCyV3gGYuXlP\n298pSQrsQixJUu/YDEwCDwHHgFuBtyTWuRzYHs3vBs4E1kfLGwgJ7k1AX86xFsZiwjn09mHoq7b2\nHcfnGZ/YxPjEpkySYElSbSawkiT1jmHgQGz5YPRa2nU+AXwQWMgrwJ61hraTYEnSylZVF2JJknpc\n2nyiAhkAABK5SURBVMwp2braB7wJeILwPOxoow9v27ZtaX50dJTR0YarS5IEwNjYGGNjY219hwms\nJEm9YwoYiS2PEFpYG62zIXrtbYTuxZcBQ8AvAJ8H/jj5Q+IJrCRJaSVvel5zzTVNf4cJrCRJveMe\nwuBMG4FHgXcAVyTW2QG8j/B87BbgGeBx4CPRBHAx8HfUSF7VGZOT97Np0/Ig0OvXr2PXrlu6GJEk\nFcOqTmAn9z+4dHLwxCBJ6gEVQnL6TcKIxJ8hjED83uj9TwO3E1pZJ4FZ4N11vssHObuoUhlgeHjn\n0vLUlBWNJAlWeQJbObawdHLwxCBJ6hG7oinu04nl963wHXdGkyRJhbKqE9i4eFcdW2MlSZIkqXhM\nYCPxrjq2xkqSpDzM9T3C+MSmE5YlSemtqgR2bm6O8fG7YsvzXYxGkiStNtWBSqgVG5m5eU8Xo5Gk\n8llVCWy1CkNDm5eWZ6p31FzPkf8kSVJWqsfnl1pdq33HuhyNJJXbqkpg03LkP0mSlJk1LLW6Hv7c\nRJeDkaRyO6XbAUiSJEmSlIYtsCk4QrEkSZIkdZ8JbAqOUCxJkrrJm+mSFJjASpIkFZw30yUpWNUJ\nbHxUQOuwSZK0Okwe3M3+Q8u1WB0ZWJLKo+cT2Hjt12q1euKbsVEB09Zhs8SOJEnlVumb4/RYLVZH\nBpak8uj5BDZe+/Uwt7X9fZbYkSSpfLZuvYLp6SMAzM3Nc3qX45EktabnE1hJkqTp6SNLN6An9g91\nORpJUqusAytJkiRJKgVbYNvksPaSJEmS1BkmsG1yWHtJktRJDigpaTUzgZUkSSoRB5SUtJqZwEqS\nJHWJNeklqTl5JbCXAtcC/cBNwEcT7/8h8CGgD5gB/gL4YU6xpJLFCcTnYSVJUlNiNekP3zhhMitJ\nK8gjge0HrgMuAaaAu4EdwE9j6zwAvA54lpDs/huwJYsfPjc3x/j4XUvL1Wo13QdjJ5CZm/e09LN9\nHlaSJLWsTjILJrSStCiPBHYzMAk8FC3fCryFExPY/4vN7wY2ZPXDq1UYGtq8tHyY27L6akmSpM6I\nJbPQ+s11Seo1edSBHQYOxJYPRq/V86fA7TnEIUmSJEnqIXm0wKbsswvA64H3ABfVW2Hbtm1L86Oj\no4yOjrYaV0c5xL0kdd/Y2BhjY2PdDkPKlWNwSFpN8khgp4CR2PIIoRU26TeAGwnPwP683pfFE9gy\ncYh7Seq+5I3Pa665pnvBSDlxDA5Jq0keXYjvAc4DNgKDwDsIgzjF/TLwVeCdhOdlJUmSJElqKI8E\ntgK8D/gmsAf4ImEAp/dGE8A/AC8ErgfuBe46+WskSVILLgX2AvuAD9dZ55PR+/cBr4peGwG+A/wE\n+DHw/nzDVDMWy/2NT2xyRGJJq1pedWB3RVPcp2PzfxZNhRSvCQvZDF3v8ymSpA5IU8ruMuBcQm+p\nCwk3k7cAx4C/ASaAdcD3gTsSn1W3WGJHkoD8Ethyy2Hoep9PkSR1QJpSdpcD26P53cCZwHrg8WgC\nOBJ95mxMYIvHEjuSVjETWEmSeketUnYXplhnAzAde20joWvx7uxDVJ7s8SWp15nASpLUO9KWsutr\n8Ll1wJeBqwgtsScpa4m71cAeX5KKLIvydiawXWCNWElSTtKUskuusyF6DWAN8BXgC8DX6/2Qspa4\nkyR1Vxbl7Uxgu8AasZKknMRL2T1KKGV3RWKdHYRqAbcSBm96htB9uA/4DKGCwLWdCVdZm+t7ZGmA\np9lnf8ymi5cHe1p/1np2fS05xqYklYsJrCRJvSNeyq6fkJAulrKDUBHgdsJIxJPALPDu6L2LCPXZ\nf0gocQdwNfCNTgSubFQHKksDPM1sv4/hK5cHe5q6YarexySpNExgU4iX1cljqHoHXJAkZWilUnYQ\nktyk75JPfXjlLH6dUu07tvx6dYHx8buWl/fPdzw2ScpaTySw008c4ufRAbpaTTt+RRNiw9XnMVS9\nAy5IkpSvyYO72X/o5CSvJ8RrxH5uIvZGH0NDm5eWZo6NdzgwScpeTySwx48vLB2gD3Nbrj8rfpcT\nLB4uSVIZVPrmOL1mkidJKpOeSGA7Kufi4Y5QLEmS8jB3dHZpUCcHdJJUViawbcr6+VhHKJYkSXlY\n6D/O/gvCQE6TOx/scjSS1BoHa2hX1CI79PZhqgOVbkcjSZJUR3gmdmhoM5VjC90ORpJaYgtswTlC\nsSRJkiQFJrAF5wjFkiQpa3Nzz58w5saBQ/cw8isvAXw+VlKxmcBKkiStMguVY+w/NLW0fGT2EFuu\nfA0AUzdM1fuYJHWdCWyGsh7QKcnuxJIkKRPJqgrb71uan9w3uTRa8YGHDjCycWTpvfhy8j1bbiV1\ngglslmIng6zL64DdiSVJUj6q1QXGx+8CYHZuluErw/XM3g/sXZpPLiffu/MDd1qmR1LuTGBzEm+N\nhexbZK0XK0mSshNGKAaYqd7e0jdUqCwltHZDlpQXE9i8JLvmZNwia71YSZIkSauNCWyP8PlYSZKU\nhXh34rm5ua7FsfWtW5l+ehqwS7KkZSawHZL3AE8+HytJkrLRfnfiRgNBxZPReJKafG/66enCd0ku\nQ5IdjzH+f5GMN+vfpdH/bSvrFUnabZX1egpMYDsl5wGe4nw+VpIkZSHeGgvpW2Tjz8M2Guxp8oFJ\nLv7YxXXfG2aYlSQToHojJTeTGKRNKFpJsrNI2Jr5jniM8f+L+LaGE/8vkr9Lve2R9gZE8jvjn0vu\nA1ncrMg7GY/H3GjwsrT7R6P1Gv0uWfyerfzfdpsJbBfkPcCTz8dKkqRsLLfGQustsnHJ5DbNe/EW\nXWicKNUbKblRAtFqghLXKMa4ZLzx729UtqiV5HDxd6l1IyC+raHx9q63PVq9AZFMqltRr2W5UbxQ\nP0lrtO2Tv2c85qwHL2u07ZPfXy/xbfUGR/w7Gu1j3WYC2w2JAZ4O3zhh/VhJklR43Xo+NplstdJS\n22wSXOtn12q1XPzZjWJMJkPxeBu1VqdNwOO/W6NkK61GyW0rNyCakbb7eb2W5UbxQv0EfKWSUc3G\nvvj9i//XaW9wNNr2aX92oxsLtZL9NH8/RWICWwQdrB97553nm8xKkqQWLbfIHl74r5a6F2ehlUQp\niyS4meSiXmKaRWK3UhJcRI3ij2um+3kriVee2ypt4g/Z3ISpdwNlpRsLaVrei5zYmsAWTCe7F8eT\nWTChlSRJzci+e3EnlSHpiytbvElZxF/2bRCXxU2YPBPwIm9fE9iiybl+bJzPykqSpKwUpfyOpN5m\nAltweZffifNZWUmS1Lra3YtNZiVlqZQJ7MzMDJWnK6yZX8PMzAxUux1RjmItsnkP9mT3YkmSlI36\nz8oePfq8ya2klpUygd2372Hmh0+j/7RBjh54hoXqQrdD6ow6ySzkX4onntAeODDJyMi5gImtJEla\nyYnPyh7mtkIMBCWpnEqZwFarsGbNCAOD65jrOwo82+2QOq9BKZ6jfT/LPLmNJ7R7915gS60kScpA\nIrmNJbS21EqqpZQJrGqIt85+bqJjdWbTttSCya0kSVpJrOtxg5baeHIbnweTXanX5ZXAXgpcC/QD\nNwEfrbHOJ4GtwHPAu4B7c4plVZs/8GTdrsedbKmF8nZDHhsbY3R0tNthlJrbsH1uQzWhnXNwms+W\nwvXXf5Yf/GAfAI8++jDHF453OaImHSvhAB+5xtygG3JsHuq34iYT3aNHn+fbt3yXgeHBUiW9T+55\nstshNK2MMR+fK9kxg7CdX3TBi7odRu7ySGD7geuAS4Ap4G5gB/DT2DqXAecC5wEXAtcDW3KIZdWb\nP/jUiS+kbKlNJrfx5VYT3bTdkOPJbRFacU0c2uc2bJ/bUCm1cw5O89nS+NKXbueRR85ncPBMpqa+\nyUJ/yS5GK90OoAWFiblOK24y0eU2eOKXGHrpy1K38NZKgjvdEvzUnqdWXqlgyhjzwnz5xth5as9T\nJrAt2gxMAg9Fy7cCb+HEE+DlwPZofjdwJrAemM4hHqXVKLmNLadNdNO28Ca7IceT27StuMlEN+17\nRW/9laQmtXoOfjFwTorPlsbPHp3gmbN/RP+pa5l9Zh/VoyVLYNVh6Vp4ayXBWbQEN/Pe8w8fYb7N\n72gnjjK1Vqs35ZHADgMHYssHCXd4V1pnAykT2IG+fma/dz/zA/0szMy2E6takTbRTdnC20wSPHP8\nAfYfWhe+77l9zB869aT55PKR5w6wZXj5+iueFO/6zlpOW38GAM/PzjK0du3SepWjx/n1c1/PY4/d\nz6c+9cWWEuQskmyTcUlNaPUcPAycneKzpbHmlFOoPv0MC4OzMFeYpkGtKulbgpt5rzJwP/NMtvUd\nbcVRJzFPLsfnk0l3lgl9Xt9ROVYpRBzNvPfww1NMjz+bSxzV/fP0srcBN8aW3wn8S2KdncBFseVv\nAZs42SShyquTk5OTk1MW0yS9rdVz8KtTfhY8Nzs5OTk5ZTc1fV7OowV2ChiJLY8Q7uI2WmdD9FrS\nuTVekyRJtbV6Dj4IrEnxWfDcLEnqMQPAfmAjMAhMAC9PrHMZcHs0vwX4XqeCkySph7VzDk7zWUmS\netJW4H5Ck/DV0WvvjaZF10Xv30ft7sOSJKl57ZyDa31WkiRJkiRJktQLLgX2AvuAD3c5ljJ7CPgh\noUD9XY1XVeRmwmjYP4q9dhZwB/Az4L8JJSdUX61tuI3wLN290XRp58MqlRHgO8BPgB8D749ed19M\nr9423Ib7Yit+n7Atj3Nyr6mrCefrvcAbOxzXSspwPVHG804Zj1FDhLJRE8Ae4J+i14sc86J+wvFq\nsa5gGWJ+iJOvQYse95nAlwmlw/YQRmEvcswvY/lcdi/wLOFvscgxQzhn/IRwzPtP4AUUP+YV9RO6\nLm0kDCjhMzite5CwQyi93wFexYkXEh8DPhTNfxj4504HVTK1tuE/An/bnXBK6cXAK6P5dYQunS/H\nfbEZ9bah+2JrfhU4n5C0xBPYCwjn6TWE8/YkcEqng6ujLNcTZTzvlPUYdVr07wDh2e/XUvyYIRyz\n/gPYES2XIeZa16BFj3s78J5ofgA4g+LHvOgU4DHCzaUix7wReICQtAJ8EfgTih1zKr8FfCO2/PfR\npOY9CPxit4MooY2ceCGxF1gfzb84WlZjGzk5gf1Ad0LpCV8HLsF9sR2L29B9sT3JBPZqTmzZ/AZh\nYKgiKNP1xEbKfd4p2zHqNOBu4NcofswbCKWuXs9yC2zRY4ba16BFjvsMQmKVVOSY494I/E80X+SY\nzyLc8Hoh4SbBTuANNBlzUe6SxtUrsK7mVQkHvXuAP+9yLGW2ntC9i+jf9Q3WVX1/RRgw5jOUsGtI\nF20ktM7sxn2xVRsJ23BxtF33xeyczYmldop0zi7z9USZ/tY3Up5j1CmElvhplrtAFz3mTwAfBBZi\nrxU9Zqh9DVrkuM8BDgGfBX5AqIm9lmLHHPcHwC3RfJFjfhr4OPAI8CjwDKHrcFMxFzGBrXY7gB5y\nEeGkshX4S0I3JbVnseiymnM94eTwSkIXl493N5zSWAd8BbgKmEm8576YzjrCM01XAUdwX2zkDkIr\nYHJ6c5PfU5T9sihxtKvIf+tlO0YtEP72NwCvI7RqxhUt5jcBTxCeb+yrs07RYl600jVo0eIeIPQu\n+dfo31lO7rFRtJgXDRKO01+q8V7RYn4p8NeEG19nE44h70yss2LMRUxg0xRhVzqPRf8eAr4GbO5i\nLGU2TejOAPASwslEzXmC5QPSTbgvprGGcGH474TueeC+2KzFbfgFlreh+2J9bwBeUWPa2eAzyXP2\nhui1Iijz9UQZ/tbLfIx6FrgNeDXFjvm3gcsJ3XFvAX6XsL2LHPOiWtegRY77YDTdHS1/mZDIPk5x\nY160Ffg+YVtDsbfza4D/BZ4CKsBXCY97NLWdi5jA3gOcx3Ih9Xew/NC60jsNOD2aX0voG/+j+qur\ngR2EB8yJ/v16g3VV20ti82/FfXElfYTurXuAa2Ovuy+mV28bui+2L94StIPQdW2Q0LJ9HsUZ9b7M\n1xNF/1sv4zHqRSw/MnAq4YbNvRQ75o8QbrycQ/g7+zbwRxQ7Zqh/DVrkuB8nPHJwfrR8CaGL+U6K\nG/OiK1juPgzF3s57CeMknEo4jlxCOI6UYTuvyELq7TuH8JzHBGGIe7djOrcQ+uTPEw5k7yY8cP4t\nSjy0d4clt+F7gM8ThtO/j3BQKtLzGEX0WkJXtwlOLPfivpherW24FffFVr2V8Pd8lHChtyv23kcI\n5+u9wO91PrSGynA9UcbzThmPUa8gPNs4QTgGfDB6vcgxx13M8g2Yosdc7xq06HH/JqEF9j5Cy+AZ\nFD/mtcCTLN8wgOLH/CGWy+hsJ/TmKHrMkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ\nkiRJkiRJkiRJklQq/w8hfKfL/EPZbgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x4234210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"draw_distributions(original_weights)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bins-based reweighting in n dimensions"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"KS over hSPD = 0.177921898365\n",
"KS over pt_b = 0.0777506488853\n",
"KS over pt_phi = 0.158925390541\n",
"KS over vchi2_b = 0.186446296819\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAAHpCAYAAAC2vaCTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XuUXNV5oP2nUYNlEBgTZhpTUiIC+ELmS0wnEYoztmoS\nJlGTACFxBitxbJNZGRhHDpkwDmBnPrcyccb2LMcOIQbFXJ0YsIMNIwJtjCcpK05sQDaSL9CyqpE+\npAbKMgJ0QWqp1PX9sU9Xnzrq7qrqrtupen5rnaU6VXtXv32QOPXW3vvdIEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJKXeDuAX2x2EJElqmmHgb9sdhJRmx7U7AElVlaJjJh8A\nngb2ATuBe2Kv5YCD0Wu7gS8AZ0Sv3QFMAHuj4zvAnwOnNDRySZJ6V5Zwb67FbPd5STUysZXS693A\nOwmjuScDPwN8JfZ6Cfj96LXXA6cCn4i99lFCIns6cAWwEvgX4MQWxC5Jkqb1tTsAKe1MbKV0OB/Y\nArxEGJV9FSGRfRjYHrUpALfM0v9F4IvAv4vO+5i+iR4GNgGXAD9CSHIlSVJtdgDXAd8D9gC3AScB\nI8CZhJlTe5meNTWTErCYcI/fC3wT+MmmRSx1IRNbqfP1Ab8J/DJwFuFG9x7gG8C7gP9OSHIXzdIX\nwqjsbwDfis5nmvK0H3gEeGuD4pYkqVf8FvBLwNmEWVLXAauBZwkzp04Bnp+jfx9wKfB54LXAXcD9\nQH/zQpa6i4mt1PlKwA2EG+KLwAPAm4HPAu8jJLw5wojtH8f69UX9XgQ2A+PAH1X5Wc8BpzUudEmS\nul4JuJFwn30R+DCwZh7vs4kwu+oo8BeEEdyVDYpR6np+CySlQ/xb3oOEqU0QvtG9izBaexkh2X2C\nMPJaIiS+t9XxczLACwsNVpKkHhMvEvUM0/fpeuyKPS5F569bSFBSL3HEVkqfmaYRHwXuBb7N9Dra\net9nCXAh8M/zD02SpJ70o4nHz1J/peNlscfHAUuj95FUAxNbKX2m1s2+G7iIsHbnOGAI+Ang0Rna\nzvQeU6+9CvhpwlqeF4DbGxyvJEndrA94L2HW02nABwlFoAqEooy1bqX304TZV/3AHwKHCPU0JNXA\nxFZKn6l9bfcS9rH9/whrej4CXAX8a6LtbO/xx9F7/BC4E3gceAthqrMkSapNibAs6MvAGLAN+DNg\nK3A3Yb/5PVSvinw/cHnU9reBXyfMyJLUIKuBUcI/0mtnaXND9PoWwrYk1fr+z6jtZuD/Ujn14vqo\n/SihupwkSVq4avfzNwJfJ4wSXZN47XrCVibfIXyAf1XzwpRSZzvwC+0OQtLcFgF5YDlwPCERfVOi\nzUXAQ9HjC5ieMjFX35Nj/d/H9N6b50Xtjo/65XFUWZKkharlfv5vCFuH/RmVie1ywojTVDL7OcJS\nCEmBia3UAaoljSsIN8IdwBHCeoFLE20uIUxjhLC271TCVIu5+u6L9V9CmApJ9PrdUfsdUf8VNf82\nkiRpJrXcz3cTths5knh+b/TciYS1fycStjWRVJ8Rwmfg5HFdO4OSukW17X4yVJYv30UYla3WJkMo\ncz5X3w8Dv0NYzzeVvJ5J5SL5qfeSJEnzV8v9fDZ7gI8TtjA5CDwMfKWh0UnpdlaN7YaaGoXU46ol\ntrWWKZ+t8upcPhgd1wGfBK6oNYazzz67NDY2No8fKUnSjMaAc9odRBPVu+1I3NmECq3LgZeBvycU\ntvlsRSPvzZKkxqrr3lxtKvI4lYWdllG5efRMbZZGbWrpC6EIxc/O8V7HTHcaGxujVCp5LOD40Ic+\n1PYY0n54Db2GnXJ4HRd+EJK3blbrPXkmP0Ootv4CUAS+SKigXiGN9+Y0/tsxZmM25vYfaYw7jTFT\n5725WmK7CTiX8C3tCYQS5BsSbTYA74oerwReIuzbNVffc2P9LwWeiL3XO6L2Z0XtHqv915EkSTOo\n5X4+JTkLa5Rwf3919NqFwJNNiVKSpHmqNhW5CKwlrKdZBNwKPAVcGb2+nlAR+SJCUYoDTE8pnq0v\nwP8C3kDYm2sM+K/R808Cn4/+LBI2u17I9ClJklTb/fwMwn7WpwCTwNWE3Qq2AJ8hJMeTwLeAv2lh\n7JIkVVUtsYVQwW0k8dz6xPnaOvoCvH2On/fn0aEmymaz7Q4h9byGC+c1bAyvo2pU7X7+PJXTleM+\nFh1dJY3/doy5NYy5NdIYM6Qz7jTGXK/5FH3qBKVo3rUkSQvW19cH6b0ndgrvzZKkhqn33lzLiK3U\nMYaG1lAo7AdgYGAJIyN3tzkiSZIkSe1mYqtUKRT2k8k8AMD4+MVtjkaSJElSJ6hWFVmSJEmSpI5m\nYitJkiRJSjUTW0mSJElSqpnYSpIkSZJSzcRWkiRJkpRqJraSJEmSpFQzsZUkSZIkpZr72KqthobW\nUCjsL58PDCxhZOTuNkYkSZIkKW1MbNVWhcJ+MpkHyufj4xe3MRpJkiRJaeRUZEmSJElSqjliK0mS\n2m7osiEKewrl84HTBhi5b6SNEUmS0sQRW0mSesNqYBTYBlw7w+tvBL4OHAKuSbx2KnAv8BTwJLCy\n0cEV9hTIXJUpH/EkV5KkahyxlSSp+y0CbgQuBMaBx4ENhER1ygvA+4Bfm6H/XwIPAW8nfHY4qZnB\nSpJULxNbSZK63wogD+yIzu8BLqUysd0dHb+S6Psa4K3Au6PzIvByswKdkt+WZ3DVYMVzTk+WJM3G\nxFaSpO6XAXbGzncBF9TY9yxCwns78FPAN4GrgVcaGWBSkSKZqzIVz43fPN7MHylJSjETW7VUct/a\nfH47mcwcHRbw3u6JK0llpQX07QcGgbWEKcyfBK4D/t9kw+Hh4fLjbDZLNptdwI+VJPWSXC5HLpeb\nd38TW7VUct/a0dHzmvbeX/3q6xkcnN4X10RXUg8bB5bFzpcRRm1rsSs6Ho/O7yUktseIJ7aSJNUj\n+YXounXr6upvYquuVSz2VyS64+MXz9FakrraJuBcYDnwLHA5sGaWtn2J8+cJ05hfD3yfUIDqe02J\nUpKkeTKxlSSp+xUJU4kfJlRIvpVQOOrK6PX1wBmEUdlTgEnCOtrzgP2EasmfBU4AxoArWhi7JElV\nmdhKktQbRqIjbn3s8fNUTleO2wL8bDOCkiSpEUxspRlYiEqSOk9yCyC3/5EkTTGxlWaQLETl+lxJ\nar/kFkBu/yNJmnJcDW1WA6PANuDaWdrcEL2+BTi/hr7/m7C2ZwvwRcLm7xCKWhwEnoiOT9UQnzrc\n0NAaBgcvZnDwYvL57e0OR5IkSVKXqTZiuwi4kVABcZxQVGIDISmdchFwDqHa4gXATcDKKn2/TEh0\nJ4GPANczvXVAnsrkWB2u2rTd+OhnI7f3kSRJkiSontiuICSaO6Lze4BLqUxsLwHujB4/CpxKqKx4\n1hx9H4n1fxT4jfkEr87gtF1JUr2GLhuisKdQPs8/nSdDZo4ekiTNrlpimyHsXTdlF2FUtlqbDHBm\nDX0BfheIV+U5izAN+WXgT4CvVYlRXSw5GpzPbyfj5x5JSr3CnkLFetnRa0bbGI0kKe2qJbalGt8n\nuZl7rT4IHAbuis6fJWw18CIwCNwP/ASwL9lxeHi4/DibzZLNZucZgjpJPr+VwcGLY+fbWbXqu+Vz\npzJLaoRcLkcul2t3GJIkqUGqJbbjVO5pt4ww8jpXm6VRm+Or9H0PYX3uL8aeOxwdAN8ibAJ/bvS4\nQjyxVfcoFvsrpjWbyEpqhuQXouvWrWtfMJIkacGqVUXeREgslwMnAJcTCkDFbQDeFT1eCbwEFKr0\nXQ28n7Dm9lDsvU4nFJ0C+PGo/9O1/zqSJEmSpF5TbcS2CKwFHiYknLcSij9dGb2+HniIMPKaBw4A\nV1TpC/BXhGR3qojU14H3AquAdcARQsXkKwmJsiRJkiRJM6qW2AKMREfc+sT52jr6QhiJnckXokMt\nVm3LnrnaWtBJkiRJUjvVktiqB9SzZU+yretgJUmSJLWTia0abqbKxo7oSpIkSWoWE1s1XDMrG0/0\nPcPGzYMAlCaSBbolSXNYDXySUPfiFuCjidffCNwOnE/Yju/jidcXEQpD7gJmn9YjSVIbmNiqpeKJ\n6dR5PUr9RRa/PQz//vD279U1MhwfSd65M8+yZeeUX0uuKc7vepSx3dNxmkRLSrlFwI3AhYRt+h4n\n7FTwVKzNC8D7gF+b5T2uBp4ETm5emJIkzY+JrVoqnpgC7Lvtyfm/V6mvrpHh+Ejy6Oh5c64pLvZN\ncHI8zrvG5h2nJHWAFYTdC3ZE5/cQttyLJ7a7o+NXZui/lLADwoeBP2palJIkzVO1fWwlSVL6ZYCd\nsfNd0XO1+gRh//nJRgYlSVKjOGKrrrXQac+S1EVKC+j7q8APgCeA7FwNh4eHy4+z2SzZ7JzN5zQx\nMcHGjY8d85wkqTvlcjlyudy8+5vYqms1ctqzJKXcOLAsdr6MMGpbi7cAlxCmIi8GTgE+A7wr2TCe\n2C5UqQSLF6+oeG7v5D9UJLulscMN+3mSpPZKfiG6bt26uvo7FVmSpO63CTgXWA6cAFxOKB41k77E\n+QcIifBZwDuAf2SGpLY1+li8eEX5KB5xZrQkKXDEVqlVOnrYqcaSVJsisBZ4mFAh+VZC4agro9fX\nA2cQqiWfQlhLezVwHrA/8V4LmdYsSVJTmNgqvY7HqcaSVLuR6IhbH3v8PJXTlWfy1eiQJKmjmNhK\nCzQ0tIZCYXpAI7knriRJkqTmMrHVgvV69eFCYf+ce+JKkiRJai4TWy2Y1YclSe1w8MA+Thx4Tfn8\npBNOZPfO59oYkSSpXUxsJUlSOh0PJ//W28qn++7a2MZgJEnt5HY/kiRJkqRUc8S2i1nUSJIkSVIv\nMLHtYhY1kiSlxcTEBBs3PlY+L5XcLleSVDsTWwnI57cyODid+E9MHObkWvvuepSx3dNVoUsTuxoc\nnSR1v1IJFi9eUT7fy4NtjEaSlDYmtqpJfFpzPr+dTKZKh5QpFvsrRrc3jy2uvW/fBCfHq0LfNdbQ\n2CRJtZk4eIDBVdNfNA6cNsDIfSNtjEiS1ComtppRcgQzn9/OqlXfBWB09Lx2hSVJ0qxK/SUyV01/\n0Th+83gbo5EktZKJrWaUHMFMQzJbOnqYjZtjU4L7jrQxGkmSJEmtYmKr7nE8LI5NCd57x+ZZm070\nPVORBE/0PVPzj0lWm65nPa4k9aqhy4Yo7CmUz/NP58nQZetaJEltY2KrnhEf0Z08/mBFErzvtifn\n7Dsxcag8NTs+LRvqW48rSb2qsKdQMU149JrRhv+MUmmysrLy2OGG/wxJUmcysVVHS46sLmh6cWxE\nd67R3JmUSn3lqdlpmJYtSb2pr6Ky8r4jG9sYiySplY6roc1qYBTYBlw7S5sbote3AOfX0Pd/A09F\n7b8IvCb22vVR+1Hgl2qITw2Q3/UoGzcPlo96puY2U6m/yOK3Z8oHfe5rKEnzVO1+/kbg68Ah4JrY\n88uAfwK+B3wX+IPmhilJUv2qjdguAm4ELgTGgceBDYSkdMpFwDnAucAFwE3Ayip9v0y4qU4CHyEk\ns9cB5wGXR39mgK8Ar4/aqYmO2bKmytTcZmnoCG2TpCFGSUqo5X7+AvA+4NcSfY8A/w3YDCwBvgk8\nkugrSVJbVUtsVwB5YEd0fg9wKZU3s0uAO6PHjwKnAmcAZ83R95FY/0eB34geXwrcTbiJ7oj6rwC+\nUesvpHSbGqGdUu+U4VZoZIzJYiruuSipSWq5n++Ojl9J9H0+OgD2R33OxMRWktRBqiW2GWBn7HwX\nYVS2WpsM4aZXrS/A7xKSWaI+8SR26r2UYvERzrSObsYLTzXyd0gWU3HPRUlNUsv9vBbLCUuOHm1A\nTJIkNUy1xLbWBY198/z5HwQOA3fVG8Pw8HD5cTabJZvNzjMENVpyP9l4BeJOHIGtyQIKT0nqPLlc\njlwu1+4wWqkRBQqWAPcCVxNGbo/RaffmiYMHGFw1fT9yVowkda6F3purJbbjhKIRU5YRvuWdq83S\nqM3xVfq+h7A+9xervNeMQ1jxm6c6TB37yUpSOySTrnXr1rUvmNao5X4+l+OBLwB/B9w/W6NOuzeX\n+kvOipGklFjovblaVeRNhKJQy4ETCIWdNiTabADeFT1eCbwEFKr0XQ28n7C+51Divd4RtT8r6v8Y\nkiRpIWq5n09JzsLqA24FngQ+2aT4JElakGojtkVgLfAwoaLirYRiEVdGr68HHiKMvOaBA8AVVfoC\n/BXhxjpVROrrwHsJN83PR38Wo+fc30WSpIWp5X5+BqFa8imE3QiuJuxS8GbgncC3gSei9tcDX2pR\n7JIkVVUtsQUYiY649YnztXX0hfCt8Wz+PDoEDA2toVAIS5kGBpYwMnJ3lR6SJM2o2v38eSqnK0/5\nGrXte99xSqVJNm6cnvhVGjvcxmgkSc1US2KrNioU9pPJPADA+PjFbY6m8ZKFptpVNblT4pCkXjEx\nMVGZdJaaMUGrj8WLV5TP9h3Z2ISfIUnqBCa2aq9OKTTVKXFIUo8olahIOvfyYBujkSSlnYmtZpQc\nwZzoe6aN0aSb08klSZKk5jKx7SH5/FYGB8N05qoJVmIEc99tTzY7vK71L9/8v/S9aikA+V317K4h\nSZIkqRYmtj2kWOzv6vW6narYN8HJ0ZcE++4aa3M0kiRJUvdJZZVDSZIkSZKmOGIrdZD8tjyDq6bX\nNg+cNsDIfTPtmCVJqtfBA/s4ceA15fOTTjiR3Tufa2NEkqRGMbHtUfH1tgATE4c5uY3xdJOJgwcq\nktOJIwdqvrZFimSuml7bPH7zeIOjk6Qedjyc/FtvK5/uu8vtfySpW5jY9qj4eluAzWOL2xhNdyn1\nlyqS082/v6WN0UiSJEndz8S2h0z0PVPewmch2/fE3weg1HdkwbGpfkOXDVHYUyifO21ZkiRJvcrE\ntoeU+ovlLXwWsn1P/H0A9t6xecGxqX6FPYW6pi3HE2GTYEmSJHUTE1upwUqlSTZufCx2XmpjNNPi\nibBrdyVJktRNTGy7yNDQGgqF/eXzfH47mcwcHepQOnq4PP3YqcfV9LF48Yry2V4ebGMskiRJUvcz\nse0ihcL+ioJQW7Yuadxa2OMpTz926rEkpdJq4JPAIuAW4KOJ198I3A6cD3wQ+HgdfSVJaisT2xRJ\nbtGzc2eeZcvOib1eOULrWtjOMzFxqOK/4bd3PMnYxvHY6xPtCEtS91sE3AhcCIwDjwMbgKdibV4A\n3gf82jz6SpLUVia2KZLcomd09LxjztXZJotHGNs9ncgenTxSMW15X+mhdoQlqfutAPLAjuj8HuBS\nKpPT3dHxK/PoK0lSW5nYSq0Um9INjqJLapkMsDN2vgu4oAV9JUlqCRPbFksWeBoYWMLIyN1tjEiS\n1AMWUp69M0q7N0FyeYj3ZElKLxPbFksWeBofv7ji9WZWNpYk9axxYFnsfBlh5LWhfYeHh8uPs9ks\n2Wy2nhhbrlTqm/OeLElqnVwuRy6Xm3d/E9sOk0x8XTcrSWqATcC5wHLgWeByYM0sbfvm2zee2EqS\nVI/kF6Lr1q2rq7+JrSRJ3a8IrAUeJlQ5vpVQ/OnK6PX1wBmEisenAJPA1cB5wP5Z+kqS1DFMbCVJ\n6g0j0RG3Pvb4eSqnHFfrK0lSxzCxlVJk6LIhCnsKAOSfzpPBBdiSNF+lo4fZuHlw+nyi1mXHkqRO\nY2IrpUhhT4HMVSGZHb1mtM3RSFLKJbZg23fXWBuDkSQthImt1KXio7tQOcKb35ZncNX0KMXAaQOM\n3OcsQ0mSJKVTLYntauCThIIRtwAfnaHNDcAQ8ArwHuCJKn1/ExgG3gj8LPCt6PnlhIIUU0NRXwfe\nW9uvInWfZAJaz/Tj+OguVI7wFilWvDZ+83gDopUkSZLao1piuwi4EbiQsI/d48AGKqshXgScQ9gK\n4ALgJmBllb7fAS6jsmjFlDxw/rx+mxTK57dWbA7fqn1rj1lX1Hek+T9UdUsmoE4/lqTmmZg4VHFP\nHhhYwsjI3W2MSJJUq2qJ7QpCorkjOr8HuJTKxPYS4M7o8aPAqYQtA86ao6+fziPFYn979q1NrCva\ne8fm1vxcSZI6VKnUV3FPHh+/eI7WkqROUi2xzQA7Y+e7CKOy1dpkgDNr6DuTswhTmV8G/gT4Wg19\nJElSB8uPbWds4/Syh1Kp1MZoJEndplpiW+tdp2+hgUSeJeyh9yIwCNwP/ASwL9lweHi4/DibzZLN\nZhsUgtQ+pdIkGzc+Vj4/ePBQxfnExMSsfReyHreaeCEqC02pG+RyOXK5XLvD6CnFI5OcvHhF+Xwv\nD7YxGklSt6mW2I5TuVn7MsLI61xtlkZtjq+hb9Lh6IBQUGqMsHb3W8mG8cS2V030PVOxTnai75k2\nRqPG6GNx4oNf/Hxf6aFZezZzPW68EJWFptQNkl+Irlu3rn3BSJKkBTuuyuubCInlcuAE4HJCAai4\nDcC7oscrgZeAQo19oXK093RC0SmAH4/6P131t+hRpf4ii9+eKR+l/mK7Q5IkSZKklqs2YlsE1gIP\nExLOWwnFn66MXl8PPESojJwHDgBXVOkLoSLyDYRE9kHCmtohYBWwDjgCTEY/56UF/H4dYWhoDYXC\nfqB1VY8lSZIkqVfUso/tSHTEJbfpWVtHX4D7oiPpC9HRVQqF/eUqiy2reixJkiRJPaKWxFaSJKnr\nJfd4P/DiVve1laSUMLGVUmpiYqLmismS1GrxauoAE0cOcHIb46lJYo/3fbc96b62kpQS1YpHSepQ\npRIsXryifLglpKQqVgOjwDbg2lna3BC9vgU4P/b89cD3gO8AdwGvqvbDpqqpTx2lmncQlCSpfo7Y\nNkG8WBRYMEqdL7kHrnvVSl1nEXAjcCFhm77HCTsVPBVrcxFwDmFHgguAmwi7HSwHfg94EzABfA54\nB3Bna0KXJKk6E9smiBeLAgtGqfMl98B1r1qp66wg7F6wIzq/B7iUysT2EqaT1UeBU4EBYC9ht4IT\ngaPRn/5PQpLUUZyKLElS98sAO2Pnu6LnammzB/g48AzwLGEbvq80LVJJkubBEdt5SE417pQqiclq\njqW+I22MRpLUQWpd4No3w3NnA39ImJL8MvD3wG8Dn002HB4eLj/e99K+OkOUJPWyXC5HLpebd38T\n23lITjXumCqJiWqOe+/Y3MZgJEkdZBxYFjtfRhiRnavN0ui5LPCvwAvR818E3kKVxHbDP21YWMQd\nKJ93+x9JapZsNks2my2fr1u3rq7+JrZSipRKk+UtfkqWQZZUu02EolDLCdOJLwfWJNpsANYS1t+u\nJEw5LgBbgf8BvBo4RChA9Rg94Jh9bY8+Sybz/fJ5x3yxLUkysZXSpY/Fi1cAsJcH2xyLpBQpEpLW\nhwkVkm8lFI66Mnp9PfAQoTJyHjgAXBG9thn4DCE5ngS+BfxNqwJvqxn2tZUkdSYT2wZITk1q5PY+\nE33PlL8tnuh7pjFvKknqRSPREbc+cb52lr4fiw5JkjqSiW0DFIv9Tdvep9RfLH9b7DfF6kRDlw1R\n2FMon+/csZNly6eX6bknriRJkprNxFbSghT2FCr2wB29ZtQ9cSVJktRS7mMrSZIkSUo1E1tJkiRJ\nUqo5FVnqEvGtgAAmJibaGI0kdT/3tZWkzmFiK3WN6a2AAPaVHmpjLJLU/ZLFI93XVpLax8Q2RZIb\nxZf6jrQxGqk2+W15BldN/721SrIkSZIazcQ2TRIbxe+9Y3Mbg1E3Syaj+afzZMhUfW0mRYpWSZYk\nSVJTmdhKPWJiYqK8Brfa+ttkMjp6zWhNr0mSJEntYGIr9YhSifIaXNffSlL9kkuCJvqeaWM0kqQ4\nE1upSyWrJJdKpTZGI0ldILEkaN9tT7YxGElSnImt1LUqqyTv5cE2xiKp1+THtjO2cXpNvV+uSZKa\nycRWkiQ1XPHIJCf32Jdr7msrSe1zXA1tVgOjwDbg2lna3BC9vgU4v4a+vwl8DzgKDFLp+qj9KPBL\nNcTXEkNDaxgcvJjBwYvJ57e3OxxJkuq1kPv5qcC9wFPAk8DK5oWZXlP72k4dhcL+dockST2jWmK7\nCLiRcDM8D1gDvCnR5iLgHOBc4L8AN9XQ9zvAZcDGxHudB1we/bka+FQNMbZEobC/fKMqFifbHY4k\nSfVYyP0c4C+Bh6I+P0lIcCVJ6hjVpiKvAPLAjuj8HuBSKm9olwB3Ro8fJXyrewZw1hx9Z9sf5FLg\nbuBI1C8fxfCN6r+KpFolC0tV2/6nkeL74A6cNsDIfSMt+9lSD5vv/XwAOAS8FXh39FoReLm54UqS\nVJ9qiW0G2Bk73wVcUEObDHBmDX2TzqQyiZ16L0kNVVlYqpXb/8T3wR2/ebxKa0kNMt/7+VLCsqHd\nwO3ATwHfBK4GXmlWsGnh9j+S1DmqTfOttYRh30IDaUAMkiRpZvO9n5cIX4IPEpYHDQIHgOsaF1qK\nRdv/TB2l/mK7I5KknlVtxHYcWBY7X0b4BneuNkujNsfX0Lfaz1saPXeM4eHh8uNsNks2m63y1pIk\nBblcjlwu1+4wWmm+9/NxQrK7C3g8ev5eZkls4/fmo4dN8iRJtVvovblaYruJUERiOfAsobDTmkSb\nDcBawnqdlcBLQAF4oYa+UPnt8AbgLuAvCFOizgUem6FPxc1TkqR6JL8QXbduXfuCaY2F3M8hTFF+\nPfB94ELCzgbHiN+bP3bTJxoUenokpyYfeNHtfySpVgu9N1dLbIuEm9zDhIqKtxIKTVwZvb6eUCXx\nIkJRigPAFVX6QqiIfANwOvAg8AQwRNhC4PPRn0XgvfTYVOSJvmcqboqlviNtjEaS1CUWcj8HeB/w\nWeAEYCzxmqZEU5On7LvtSTKZB8rn4+MXz9RLktQA1RJbgJHoiFufOF9bR1+A+6JjJn8eHW01NLSm\nYv+5fH47mRaUsSr1Fytuinvv2Nz8HypJ6gULuZ9vAX624RFJktQgtSS2PWlq39opo6PntTEaSZIk\nSdJsTGzbzKnH6gTt3NdWkiRJWigT2zZz6rE6Q/v2tY0bumyIwp5C+XzgtAFG7ptpNYMkSZI0zcQ2\n0q41tZI2J7DVAAAgAElEQVSmFfYUyFw1/Q9v/OYZd/uSpFTK562SLEnNYmIbcU2tNLuJiYnyVGWn\nKUvS/BSL/VZJlqQmMbGVVFWpRHmqciOnKee35RlcNb3GPP90ngxOlZAkSVJ9TGwltU2RYsXU49Fr\nRtsYjSRJktLquHYHIEmSJEnSQjhiKymVrKAsSZKkKSa2Lea+tVJjWEFZkiRJU0xsW8x9a6XaJYtL\nOSorqZu4/Y8kNY6JbQvER2kdoVUalEqT5e19wnmpLXEki0s5Kiupm7j9jyQ1joltC8RHaR2hVTr0\nlbf3AdjLg22MRZIkSZqbia2kuiRHcycmJtoYjSR1rtLRwxV1NSb6nmljNJLU3UxsJdWpcjR3X+mh\nNsYyO6smS8dYDXwSWATcAnx0hjY3AEPAK8B7gCdiry0CNgG7AOfM1uJ4Kupq7LvtyTYGI0ndzcRW\nUleyarJUYRFwI3AhMA48DmwAnoq1uQg4BzgXuAC4CVgZe/1q4Eng5BbEK0lSXUxsJfUcR3PVg1YA\neWBHdH4PcCmVie0lwJ3R40eBU4EBoAAsJSS+Hwb+qPnh9iarJEvS/JnYSuo5juaqB2WAnbHzXYRR\n2WptMoTE9hPA+4FTmhhjz7NKsiTNn4mtpJ4Q3xM3/3SeDJkqPaY5wqsuUOueXX0znP8q8APCetvs\nXJ2Hh4fLj48eLtYcnCRJuVyOXC437/4mtpJ6QnxP3NFrRuvq6wivusA4sCx2vowwIjtXm6XRc79B\nmKZ8EbCYMGr7GeBdyR8ST2w/dtMnFh51l7FKsiTNLpvNks1my+fr1q2rq3/PJrZDQ2soFPaXz/P5\n7WRqH8CRFHH7HykVNhGKQi0HngUuB9Yk2mwA1hLW364EXgKeBz4QHQCrgP/ODEmtapCokrz305tN\ndCWpQXo2sS0U9lesYxkdPa+N0Uhplo7tf6QeVyQkrQ8TKiTfSigcdWX0+nrgIcKobB44AFwxy3vV\nOq1Z1bgdkCQ1TM8mtpKawxFcqWONREfc+sT52irv8dXoUAtYJVmSamdi2wQTfc9UTC0q9R1pYzRS\nqzVvBHchBaAkqdMl1+AeOPosmcz3y+dWSZak2ZnYNkGpv1i5huaOzW2MRuoeCykAJan5brntlvLj\no5NWRa6bU5Mlad5qSWxXA58krMm5BfjoDG1uAIaAV4D3ELYEmKvvacDngB8jbBb/nwhFKpYT1vxM\nfWL9OvDemn8bSZLUNjd/52YAjrxyhOLk4TZHI0nqJdUS20XAjcCFhJL/jxOqJj4Va3MRcA6h2uIF\nwE2Eaopz9b0OeAT4GHBtdH5d9H554PyF/VqSVLv4FGdwn1ppvl634nUAHNxzEO5tczBd4JipyS+6\n5laSZlMtsV1BSDR3ROf3AJdSmdheAtwZPX4UOBU4Azhrjr6XELYMIOqbYzqxlaS6JZPTetbgxqc4\nA3z1mq/O+V7xn2USLE07ciTUlCgecRpyQ8wwNTm+o4NrbiVpWrXENgPsjJ3vIozKVmuTAc6co+8A\nUIgeF6LzKWcRpjK/DPwJ8LUqMUrSMcnpQtbgVnuv+OvJJNhEV73sG9/4LgCT+4tMTk62ORpJUi+p\nltjWulddX41tZnq/Uuz5Z4FlwIvAIHA/8BPAvmSn4eHh8uNsNks2m60xVEmt1O3b/yST4PGbx9sY\njWqVy+XI5XLtDqPrvOpVYSXRkUMvAbvbG4wkqadUS2zHCYnmlGWEkde52iyN2hw/w/NTn/gKhOnK\nzwOvA34QPX84OgC+BYwR1u5+KxlYPLGV1Mmat/2PNF/JL0TXrVvXvmCkeXKfW0maVi2x3URILJcT\nRlMvB9Yk2mwgbOh+D6Fo1EuExPWFOfpuAN5NqJL8bsLILMDphNHao8CPR/2fnsfv1VLuWyupEYYu\nG6Kwp1A+d1qzpLkUi/2uuZWkSLXEtkhIWh8mVDm+lVD86cro9fXAQ4TKyHngAHBFlb4AHwE+D/xn\nprf7AXgb8KfAEWAy+jkvzfN3a5pkIjt5/EH3rZVqFJ+a3G3TkheqsKfgtGZJs0pWSZ7oe6aN0UhS\nZ6llH9uR6IhbnzhfW0dfgD2EbYCSvhgdTTE0tIZCYT8A+fx2MrUVTD1Gqb9oIivN2/TUZKclS1Id\nZqiSLEkKaklsu0ahsL88ZWd09Lw2RyMpaWJiousKTTm9WFKruOZWUi/rqcRWUmdJVkyenCylvtDU\nTPvprvrYqvK504slNYtrbiX1MhNbSW1UWTF5Lw+2MZbGaOR+upIkSaqNia0kpZBTnDUPq4FPEgo6\n3kLYmSDpBmAIeAV4D/AEYeu+zwD/lrDv/N9E7dThnJosqZeY2EpSC8WnKi8kGbWCsuq0CLiRULhx\nHHicsPXeU7E2FwHnELbauwC4ibCN3xHgvwGbgSXAN4FHEn3VgZyaLKmXmNhKUgvFpyqbjKqFVhC2\n5dsRnd8DXEplcnoJcGf0+FHgVGAAeD46APZHfc7ExLbt3P5HkqaZ2EqS1P0ywM7Y+S7CqGy1NkuB\nQuy55cD5hMRX7Vbn9j9OTZbUzUxsJalNZqqgnGGeG2xLcyvV2K5vjn5LgHuBqwkjt8fY//WtAExO\nHIIjtf5ItYpTkyV1slwuRy6Xm3d/E1tJHSu5HVA37GsbZwVltdA4oQjUlGWEEdm52iyNngM4HvgC\n8HfA/bP9kCU/9wYAjrz8Eod2ONW+1ZyaLCnNstks2Wy2fL5u3bq6+pvYSupgie2AJv+hnOh2W5K7\nUMnRX6skK2EToSjUcuBZ4HJgTaLNBmAtYf3tSuAlwjTkPuBW4ElCVWV1KqcmS+phXZvYfuQjf8Uj\njzxePh8YOIlSaf7Toib6nil/C1rqO7Lg+CTNx3Siu6/0UJtjab56ktXk6K+FqZRQJCStDxMqJN9K\nKP50ZfT6euAhQmXkPHAAuCJ67eeBdwLfJmz/A3A98KVWBK75qzaC69RkSd2kaxPbfP45Dh26iiVL\n3gTA1q3vWdD7lfqL5W9B996xeaHhSVJVyWT1q9d8tZzoVluP6wiuZjASHXHrE+drZ+j3NeC4pkSk\n5qpzBFeS0qxrE1uA/v6TOeGE10ZnyXoYktKs29ffziSe6FZbj+sIrqSkaiO4Tk2WlGZdndhK6maV\n6297YWpyowxdNkRhz/QOLsnR3GqvL+S9JbVRlRHc5NTkr3719Sa6klLDxHYW8TW14LpaSd2jsKcw\n6xRnCNOcV31sVfm8ntHe5Hs7Uiyll2twJaWJie0s4mtqwXW1UtpMTEz03FTlucTX3CbX51bbdsj1\nulJ3Sk5NPtj3facqS0otE1tJXSG55nZysuRU5Zh61ufO1RcqR3hNcqUUS0xN3nvH5rqmKjuCK6mT\nmNhGnHospV1iz1senLWlo7kLE090nWos9S5HcCV1EhPbiFOPpe4WH9F1NFeSqqs2VfnA0WfJZL5f\nPrfYlKR26tnE1hFaqddMj+jONZorSYpUmaq899ObTXQldYyeTWwdoZWkhUsWlkoWppLUxdw+SFIH\n6dnEVpKmJAtPuea2dtUqKkvSFItPSWomE1tJShaemvwHE11JqtNCtw/auTPPsmXnVLRxVFdSrUxs\nJekYJrqSVLcFrskdHT2vYkQXnL4sqXY9ldiOjT/G0z8M/0O1WJSk2s2e6CaTXLcSqpRcg+u+t1IP\nSya+iUQ3OcIL1QtSJUd5TXyl3nVcDW1WA6PANuDaWdrcEL2+BTi/hr6nAY8A3we+DJwae+36qP0o\n8Es1xFezYt8Ei9+eCf9T7Ss18q3T50iP//4NcHjnD9sdQvql9u9hSHQXL17B5GRYnzt1TG0lNHWU\nWvAr/vDJzv27OLUGd+oo7Cm0O6Re1oz7ebql8P9Babz3zBpzlOiWP5udMFlxvvjtGSb7XmHj5sHy\nse/o04ztHi8fP3xlW8X5lzZ+nhMHXlM+TjhlCYODF5ePoaE1NcWcy+UadwFaxJhbJ41xpzHmelUb\nsV0E3AhcCIwDjwMbgKdibS4CzgHOBS4AbgJWVul7HSGx/RjhBnlddJwHXB79mQG+ArwemFzQb6lj\nFdsdQPod3vUCJyw7vd1hpFtX/D1MjOYmthJKFqY6ePBQ+Tz+GOob3Y2PDB96fD/FHh8ZVlXNup+n\nWwr/H5TGe8+CYq42vXmG85N/623l8x98+kHGdo+Xz5/YuoUTB6b3Li8ePMq/O+c/lM+nRoCfe24r\nr3vdG1I1ApzL5chms+0Ooy5pjBnSGXcaY65XtcR2BZAHdkTn9wCXUnkzuwS4M3r8KGH09QzgrDn6\nXgKsip6/E8gREttLgbuBI1G/fBTDN+r6rYBvP/UNtu38J/r7Twbg6KGnSN/3spLS79jEN76f7lxr\needKfEslyn2L/Vs5PLnNKdCaS7Pu51JnmyExnivx3fvKNg7vfjWHDuzjld3jfPv7cxe4qnaepsRY\nSrtqiW0G2Bk730X4Frdamwxw5hx9B4Cp+WiF6JyozzcSfea1IeLLB/dw+I0HmDw1fB17ZOPe+byN\nJLXQ7EkwVCa+pWPmONde8KraOmDXCXelZt3PKxze8wIARw/sX1i0UqvMMiJc/Pp+Fv9chr2f3jxj\n4lvreXKE+NCBAyw+6aRZz5MjyN/N/xP9r15UU/vnntvKX//150yspVn8BvDp2Pk7gb9KtHkA+PnY\n+VeAn56h7+8Q1u4AvJh4jz3Rn38F/Hbs+VuAX58hrjxQ8vDw8PDwaNCRp7s18n4+U1/w3uzh4eHh\n0dijrntztRHbcWBZ7HwZ4ZvaudosjdocP8PzU195FQjTm54HXgf8YI73GudY58zwnCRJmlkj7+cz\n9QXvzZKkDtYPjAHLgROAzcCbEm0uAqbmWKxkeirxXH2nikZBWFv7kejxeVG7EwhresaAvgb9LpIk\n9apm3c8lSUqNIWArYSj4+ui5K6Njyo3R61uAwSp9IWz38xVm3u7nA1H7UeCXG/VLSJLU45pxP5ck\nSZIkSZIk9Zru3CC+8ZYB/wR8D/gu8AfR86cR9g+eaaT8esJ1HQV+qWWRdr5FwBOEoirgNZyPU4F7\nCVuDPEmopup1rM/1hH/P3wHuAl6F17Ca2wj1HL4Te24+1+yno/fYBvxlE+NNs7Tem3cA3yb8P/6x\nuZu2Tb1/jzvBTDEPE9ZlPxEdq1sf1pzm87mp3WaLeZjOvdaLCVuJbSZ8Hvhf0fOdfJ1ni3mYzr3O\nU+r5DNspkjEP0/nXeV4WEaZALScUsnCNz+zOAN4cPV5CmD72JsLa5j+Onr+WY9c2H0+4vnnguBbF\n2un+CPgssCE69xrW707gd6PH/cBr8DrWYznwNCGZBfgc8G68htW8FTifyg/X9VyzqfoOjxH2gIWw\n/rRrbqoNkuZ783bCB71OVs/f404xU8wfItxPO1W9n5s6wWwxd/q1PjH6s5+wjv/f09nXGWaOudOv\nM9T+GbaTJGNOw3Wel58DvhQ7vy46VN39wIWEb9Sn9gw+IzqHMFIR/5b9S4TCIb1uKWEt+H9g+psj\nr2F9XkNIypK8jrU7jfCB5bWEm+oDwH/Ea1iL5VR+uK73mr2OMNNgyjuAm5sRaIql+d68HfiRdgdR\ng+XU9ve4kyzn2MT2mvaEMi/VPjd1oqmY03KtTwQeB36C9FzneMydfp3r+QzbKWaKeZg6rnOavsWf\nbeN4zW054ZvTRwl/mQvR8wWm/3KfSeXWDV7b4BPA+4HJ2HNew/qcBewGbge+RdgL8yS8jvXYA3wc\neAZ4FniJMJXIa1i/eq9Z8vlxvJZJab43lwgfojYBv9fmWOox29/jTvc+QlGyW+nMKZBTllP9c1On\nWU6IeaqSeSdf6+MIMzsKTE+l7vTrPFPM0NnXuZ7PsJ1ipphL1HGd05TYltodQAotAb4AXA3sS7w2\ntfHxbHr9ev8qYX/lJ5h9yymvYXX9hMqqn4r+PMCxozlex7mdDfwh4YPLmYR/1+9MtPEa1q/aNVNt\n0nwNf56QDAwBv0+YQps2afl7fBPhi843A88RvqzrRAv53NQuSwh1LK4G9tP513qSENtS4G2E0bm4\nTrzOyZizdPZ1bsRn2FabLea6rnOaEttaNpfXtOMJ/3P+W8L0FAjfzpwRPX4d4S8QHHttl0bP9bK3\nAJcQpqrdDfwC4Vp6DeuzKzoej87vJSS4z+N1rNXPAP8KvAAUgS8Spn96DetXz7/fXdHzSxPPey0r\npfne/Fz0527gPqbXUne62f4ed7IfMP1B+hY681rX87mpU0zF/HdMx5yGaw3wMvAgoUBfp1/nKVMx\n/wydfZ3r/QzbCWaK+TPUeZ3TlNhuAs5leoP4y5leWKxKfYTh+ieBT8ae30AoOkP05/2x599BuK5n\nEa5zp1aIbJUPED6gnUW4Nv8I/A5ew3o9T5im+Pro/ELCFJ4H8DrWapSw3vPVhH/bFxL+bXsN61fv\nv9/ngb2ESt59hP8H3I/i0npvPhE4OXp8EqES9ndmb95RZvt73MleF3t8GZ13rev93NQJZou5k6/1\n6UxPJX01oV7EE3T2dZ4t5jNibTrtOtf7GbYTzBTzu+jsv88L5gbxtfn3hGkTm6ksj30aYT3RTGW+\nP0C4rqPAL7cy2BRYxfQHNa9h/X6KMGK7hTDa+Bq8jvX6Y6a3+7mT8C2913BudxPWJB8mfLlyBfO7\nZlPb/eSBG5oedTql8d58FuEeuZmwVUqnxl3v3+NOkIz5dwkjL98m3Afup/PW9s3nc1O7zRTzEJ19\nrf8fQr2NzYQY3x8938nXebaYO/k6x9X6GbaTZJmO+W9Jx3WWJEmSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJElS\n6u0AfnGW194KjLYuFEmSJElSr8gCOxv0XtuBX2jQe0mS1OuyzH2Pvgn4kwX+jDuA/7nA95C60nHt\nDkCSJEnqAf8V+LPo8UrgEeAF4AfA54EzaniPUnRISjCxlTrTDuA64HvAHuA24CRgBDgT2AfsZe6b\n4DBwL3BP1PabwE8m2pwPbAFeitq9Kno+S+NGhiVJUqVTgZuBH4uOfcDtNfbta1ZQkiQ12g7g20AG\neC3wNcLUo1XUnnAOA4eBXwcWAdcAT0ePp37GNwjJ8WuBJ4Ero9eydfwcSZK6zbXA3yee+8voeC0h\nCR0nfPl8X/R6lnDv/COgADwLvCfW/w5mn0Y8SPgSuprbCVOavxy1zwE/WkM/qes5Yit1phJwI+Gm\n+SLwYWDNPN5nE/BF4CjwF8BiwvSnqZ9xA/B89DMeAN68oKglSeoOdwMXAUui80XAbwKfBf6OcD89\nD/i3hPvrlDOAUwizq/4z8NfAa6LX5ppG/DbguzXE1Qf8NvCnwOnA5igmqeeZ2EqdKz5i+gzhJlmv\nXbHHpeg8/j7Pxx4fZPoGLklSL3sG+BZwWXT+C8CB6PnVwFXAy0AR+OdYvyOEpPMoYfnQfuANsddn\nmkb8k8D/AN5fY2z/QJjJdRj4IPBzhBleUk8zsZU6148mHj9L/QUjlsUeHwcsjd5HkiTN7S6mZ0v9\nVnS+jDD9+OVZ+rwATMbOX2HuL43PAR4C/gD4lxpimvqSesqBKJ75fPktdRUTW6kz9QHvJXwDexrh\nG9l7CGt2foQwzakWP034trkf+EPgEGFdrSRJmtu9hHWzGeDXCIntLsJ9+TWzd6vZjxEqI/8p9U0n\njn9pvSSKxy+t1fNMbKXOVCLcQL8MjAHbCFsEbCWs+3ma8A3tXFWRS8D/AS6P2v42oZDU0TnalxLn\nkiT1qt2E4kx3EO67W4HnCFOMP0WobHw8YX1sLeLTkDPAPxLqafxNHTH1Edb+/jxwAqEY1dcJNTkk\ntdBthBGn78zR5gbCh/gthK1IpF60nbCeZyE+BPxtA2KR1B1WA6OEe+y1s7SZ7R58PWH7se8QvnR7\n1bFdpa70TsLU4mtiz72WkOw+T/ji+N7o+SxhDW5c/H5+O2F0FsI9epKwzc/UUWtV5E8RvvjeR0i8\nf6y2X0VSI72VcKOcLbG9iLDOAOACnDKp3tWIxHYYE1tJwSIgDywnjDBtBt6UaDPbPXg5YbRqKpn9\nHPDu5oUqSVL9Wj0V+Z8J24rM5hLgzujxo4QpHgPNDkpKsREqv+2dOq5n7m0FJPWWFYTEdgehaus9\nwKWJNrPdg/dGfU4krNc/Eac9SpI6TH+7A0jIULnFyS5CFddCe8KR2uasGtsNNTUKSd1ipvvrBTW0\nyRC2PPk4YYrlQeBh4CtNi1TS96jcGWHKfyHU2ZA0g05LbOHY/b2OGXE6++yzS2NjYy0KR5LUA8YI\n2250q1pnb8y0x+bZhKrqywlbnPw9oRhdRRVX781S090VHVKvqOve3GlVkcepLGG+lBmmO42NjVEq\nlTwWcHzoQx9qewxpP7yGXsNOObyOCz8IyVs3S95fl1G5F+ZMbabuwT8D/Cthf84i8EXgLckfkMZ7\ncxr/7RizMRtz+480xp3GmKnz3txpie0G4F3R45XASzgNWZKkhdoEnEsYdT2BsA3YhkSb2e7BW6Pz\nVxNGdC8Enmx6xJIk1aHVU5HvBlYBpxPW8XyIUJ0RYD2hGuNFhAIXB4ArWhyfJEndqAisJayPXQTc\nCjwFXBm9Ptc9eDPwGUJyPElYc1vPvpuSJDVdqxPbNTW0Wdv0KEQ2m213CKnnNVw4r2FjeB1Vo5Ho\niFufOJ/tHvyx6Ogqafy3Y8ytYcytkcaYIZ1xpzHmes1UJCINStG8a0mSFqyvrw/Se0/sFN6bJUkN\nU++9udPW2EqSJEmSVBcTW0mSJElSqpnYSpIkSZJSzcRWkiRJkpRqJraSJEmSpFQzsZUkSZIkpZqJ\nrSRJkiQp1frbHUAzDV02RGFPoXw+cNoAI/cl96aXJEmSJKVZVye2hT0FMldlyufjN4+3MRpJkiRJ\nUjM4FVmSJEmSlGomtpIkSZKkVDOxlSRJkiSlmomtJEmSJCnVTGwlSZIkSalmYitJkiRJSjUTW0mS\nesNqYBTYBlw7S5sbote3AOdHz70BeCJ2vAz8QVMjTYGhoTUMDl7M4ODFDA2taXc4ktTzunofW0mS\nBMAi4EbgQmAceBzYADwVa3MRcA5wLnABcBOwEtjKdJJ7XNT/vpZE3cEKhf1kMg8AMD5+cZujkSQ5\nYitJUvdbAeSBHcAR4B7g0kSbS4A7o8ePAqcCA4k2FwJjwM5mBSpJ0nyY2EqS1P0yVCaju6LnqrVZ\nmmjzDuCuhkcnSdICORVZkqTuV6qxXd8c/U4ALmb29bkMDw+XH2ezWbLZbI0/VpLU63K5HLlcbt79\nTWwlSep+48Cy2PkywojsXG2WRs9NGQK+Ceye7YfEE9tuNDS0hkJhPwD5/HYy0Zh3Pr+VwcHpdbYD\nA0sYGbm7HSFKUmolvxBdt25dXf1NbCVJ6n6bCEWhlgPPApcDyVK+G4C1hPW3K4GXgELs9TVAT2dr\n8YJRo6PnlZ8vFvvLz4PFpCSpHUxsJUnqfkVC0vowoULyrYSKyFdGr68HHiJURs4DB4ArYv1PIhSO\n+r0WxStJUl1MbCVJ6g0j0RG3PnG+dpa+B4DTGx6RJEkNYlVkSZIkSVKqmdhKkiRJklLNxFaSJEmS\nlGomtpIkSZKkVLN4lCRJUgPF97V1T1tJag0TW0mSpAaK72vrnraS1Bqtnoq8GhgFtgHXzvD66cCX\ngM3Ad4H3tCwySZIkSVIqtTKxXQTcSEhuzwPWAG9KtFkLPAG8GcgCH8dRZUmSJEnSHFqZ2K4A8sAO\n4AhwD3Bpos1zwCnR41OAF4Bii+KTJEmSJKVQK0dDM8DO2Pku4IJEm08D/wg8C5wM/KfWhCZJkiRJ\nSqtWJralGtp8gLC+NgucDTwC/BSwL9lweHi4/DibzZLNZhsQoiSpF+RyOXK5XLvDkCRJDdLKxHYc\nWBY7X0YYtY17C/Dh6PEYsB14A7Ap+WbxxFaSpHokvxBdt25d+4KRJEkL1so1tpuAc4HlwAnA5cCG\nRJtR4MLo8QAhqX26RfFJkiRJklKolSO2RULV44cJFZJvBZ4CroxeXw/8OXA7sIWQdP8xsKeFMUqS\nJEmSUqbVW+mMREfc+tjjHwLuZC5JkiRJqlkrpyJLkiRJktRwJraSJPWG1YRaFtuAa2dpc0P0+hbg\n/NjzpwL3EpYQPQmsbF6Y3SWf38rg4MXlY2hoTbtDkqSu1OqpyJIkqfUWATcSCjSOA48TCjg+FWtz\nEXAOodDjBcBNTCewfwk8BLyd8NnhpJZE3QWKxX4ymQfK5+PjrriSpGYwsZUkqfutAPLAjuj8HuBS\nKhPbS4A7o8ePEkZpB4BDwFuBd0evFYGXmxtuZxgaWkOhsL98ns9vJ5NpY0CSpFmZ2EqS1P0ywM7Y\n+S7CqGy1NkuBo8Buwq4FPwV8E7gaeKVZwXaKQmF/xWjr6Oh5bYxGkjQX19hKktT9SjW265uhXz8w\nCHwq+vMAcF3jQpMkaeEcsZUkqfuNA8ti58sII7JztVkaPdcXtX08ev5eZklsh4eHy4+z2SzZbHYB\nIUuSekkulyOXy827v4mtJEndbxOhKNRy4FngciBZnncDsJaw/nYl8BJQiF7bCbwe+D6hANX3Zvoh\n8cRWkqR6JL8QXbduXV39TWwlSep+RULS+jChQvKthMJRV0avrydUPb6IUGTqAHBFrP/7gM8CJwBj\nidckSWo7E1tJknrDSHTErU+cr52l7xbgZxsekSRJDWLxKEmSJElSqvXUiG1+W57BVYMADJw2wMh9\nyS+uJUmSJElp01OJbZEimavCzurjN4+3ORpJktRr8vmtDA5eDMDAwBJGRu5uc0SS1B16KrGVJElq\np2Kxn0zmAQDGxy9uczSS1D1cYytJkiRJSjUTW0mSJElSqpnYSpIkSZJSzcRWkiRJkpRqJraSJEmS\npFQzsZUkSZIkpZqJrSRJkiQp1UxsJUmSJEmp1t/uACRJktJgou8ZNm4eLD+WJHUOR2wlSZJqUOov\nslv78KcAAB3VSURBVPjtGRa/PUOpv9jucCRJMSa2kiRJkqRUM7GVJEmSJKWaa2wlSZLaIJ/fyuDg\nxQAMDCxhZOTuNkckSenliK0kSb1hNTAKbAOunaXNDdHrW4DzY8/vAL4NPAE81rwQe0ux2E8m8wCZ\nzAMUCvvbHY4kpZojtpIkdb9FwI3AhcA48DiwAXgq1uYi4Bz+//buPkqu8j7s+HfZlbyAKITQLvZq\nU1EjJyZ27cipUGvXrFPsSjTA8YlSQuq64DaH9FSp2/rYCf4jlf5qyWlqQmiJAsK8OIE2GGwpRhC7\n9iDn1BGIagFbSHgEMtJiFgGWJSSxb5r+8dydvTuaGd2Znb0vs9/POffsvXOfO/vbO7Nz53efN1gJ\nXA7cAayJ9lWAYeDNdMKVJKk11thKktT9VgNlQs3rJPAgcG1NmWuAe6P1ncAFwEBsf8/ChihJUvtM\nbCVJ6n6DwMHY9qHosaRlKsC3gF3Aby1QjJIktc2myJIkdb9KwnKNamU/ArwC/G3gm4S+ut+tLbRx\n48bq+vDwMMPDw63EKElaxEqlEqVSqe3j005s1wK3Evr63AXcUqfMMPAlYAnwerQtSZLaNwoMxbaH\nCDWyzcosjx6DkNQCHAYeITRtbprYSpLUitobops2bWrp+DSbIs8MXLEWuAy4HnhvTZkLgP8BXA28\nD1ifYnySJHWrXYRBoVYAS4HrCINHxW0FPh2trwGOAGPAOcB50ePnAp8AnlvYcCVJak2aNbbxgStg\nduCK+IiMvwl8ldm7yK+nFZwkSV1sCtgAPE640byFcP29Kdq/GXiUMDJyGTgO3Bjtuxh4OFrvA/4M\n+KtUopYkKaE0E9t6g1JcXlNmJaEJ8ncId4f/CLg/legkSepu26MlbnPN9oY6x70IfHBBIupS4z0v\ns2NkVXVdkrTw0kxskwxcsQRYBfwTQtOn7wF/Q5gsfo4kA1SU97/E/h2j1e3x8fHWIpYkdaX5DlAh\nxcUTWYBTS07Svz4MKH3s7j1ZhSVJi0qaiW2SgSsOEpofn4yWHcAHOENi28jU5CnO619d3T5WebTF\nkCVJ3Wi+A1RIcZW+qWoiC3D0npEMo5GkxSnNxDY+cMUrhIErrq8p83XCAFO9wDsITZX/e3ohSpIk\npa9c3seqVVdXtwcGlrF9+wMZRiRJxZJmYptk4Iq9wGPAs8Ap4E7ANjySJClXKtMT1ebHlZ7JeT/f\n1FQfg4Pbqtujo1c3KS1JqpX2PLZJBq74b9EiSZKUT0uoNj+26bEkZS/NeWwlSZIkSeo4E1tJkiRJ\nUqGZ2EqSJEmSCi3tPraSJEm5tW7d9YyNvQVAufwSg4NnOECSlAsmtpIkSZGxsbeqoxPv3XtZxtFI\nkpKyKbIkSZIkqdBMbCVJkiRJhWZiK0mSJEkqtEXVx7ZSOcWOHU+G9f0TGUcjSZIkSeqERZXYQg/9\n/asBODa5I+NYJEmS6iuX97Fq1dUADAwsY/v2BzKOSJLybZEltpIkSdkZ73mZHSOrquuNTE31VUdn\nHh29OpXYJKnITGwlSVoc1gK3Ar3AXcAtdcrcBqwDTgA3ALtj+3qBXcAhYFFkWvEkFKDSMznv56z0\nTdG/PkyOe+zuPfN+PklSYGIrSVL36wVuB64ERoGngK3A87EyVwGXAiuBy4E7gDWx/Z8F9gDnpRBv\nLsSTUICj94y0/hzTEx1PjiVJp3NUZEmSut9qoAwcACaBB4Fra8pcA9wbre8ELgAGou3lhMT3LqBn\ngWPtLkugf/1gdaGnknVEktSVTGwlSep+g8DB2Pah6LGkZb4EfB44tVABSpI0HzZFliSp+yWtJqyt\nje0BfhV4jdDfdrjZwRs3bqyuDw8PMzzctLgkSVWlUolSqdT28Sa2kiR1v1FgKLY9RKiRbVZmefTY\nrxGaKV8F9AN/C7gP+HTtL4kntpIktaL2huimTZtaOt6myJIkdb9dhEGhVgBLgesIg0fFbWU2WV0D\nHAFeBb5ISHgvAX4D+DZ1klpJkrJkja0kSd1vCtgAPE4YIXkLYUTkm6L9m4FHCbWyZeA4cGOD53L0\no5SVy/tYtWp2hqWBgWVs3/5AhhFJUv6Y2EqStDhsj5a4zTXbG87wHE9Ei1I0NdXH4OC26vbo6KKY\nRliSWrJoE9vxk8dZdcXsvHIDFw6w/ZHa670kSZIkKe8WbWJb6asw+NuzMx2M/slohtFIkiRJktrl\n4FGSJEmSpEIzsZUkSZIkFdqibYosSZKUF+M9L7NjZNWcbUlScia2kiRJGav0TdG/fnbsj2N378kw\nGkkqHpsiS5IkSZIKzRpbSZKkDFSmJ6rNjys9kxlHI0nFZo2tJElSFpZA//rB0AS5p5J1NJJUaCa2\nkiRJkqRCM7GVJEmSJBVa2n1s1wK3Ar3AXcAtDcr9A+B7wD8HHl6IQCqVU+zY8eTs9v6Jhfg1kiRJ\nHVUu72PVqqsBGBhYxvbtD2QckSRlL83Ethe4HbgSGAWeArYCz9cpdwvwGNCzcOH00N+/urp1bHLH\nwv0qSZKkDpma6mNwcBsAo6NXZxyNJOVDmk2RVwNl4AAwCTwIXFun3O8ADwGHU4tMkiRJklRYaSa2\ng8DB2Pah6LHaMtcCd0TbDhEoSZIkSWoqzcQ2SZJ6K/B7UdkeFrQpsiRJkiSpG6TZx3YUGIptDxFq\nbeM+RGiiDHARsI7QbHlr7ZNt3Lixuj48PMzw8HDnIpUkdbVSqUSpVMo6DOVQ+dBO9h9eBUClZzLj\naCRJSaWZ2O4CVgIrgFeA64Dra8r8vdj6l4Ft1ElqYW5iK0lSK2pviG7atCm7YNKTZGaC2wg3lU8A\nNwC7gX7gCeAdwFLg68DNCx9uNqZ6xjlvfegpdfSekYyjkSQllWZiOwVsAB4nXFS3EEZEvinavznF\nWCRJWkySzExwFXAp4Sb05YTxLtYAbwMfIyS7fcBfAx+JfkqSlAtpz2O7PVriGiW0Ny5wLJIkLRbx\nmQlgdmaCeGJ7DXBvtL4TuAAYAMYISS2EGtte4M2FDVdJOaetJAVpJ7YL6r6v3Mf9D99f3Z6cHs8w\nGkmScqPezASXJyiznJDY9gJPA+8m1OTuWbBI1RLntJWkoKsS2x+N/ogjlxzhwp+/kONjx6k8cSrr\nkCRJyoOk0+fVzkYwc9w08EHgfEKXomGgVHuwAztKkto134EduyqxBejr72PpeUuZODaRdSiSJOVF\nkpkJasssjx6L+ynwDeCXOUNiK0lSK+Y7sGOa89hKkqRsxGcmWEqYmaB21oGtwKej9TXAEUIz5IsI\n/W0BzgY+ThgtWZKk3Oi6Gtt2jY+/7eALkqRulWRmgkcJIyOXgePMDuL4TsKgUmdFy/3A/0krcEmS\nkjCxjZyammT/4dDiqnyotnWWJEmFl2Rmgg11jnsOWLUgEUmS1CEmtjOWQH80IfuxP9+fcTCSJEmt\niU/9A7ZAk7S4mNhKkiTlTGV6gh0joaJ8vOflRMfEp/4Bp/+RtLg4eJQkSVLeRC3J+tcPUumbyjoa\nSco9E1tJkiRJUqHZFFmSJCnH4s2SAU72vNByM2VJ6nYmtpIkSXkWG+AS4Og9I7MDXt69J6uoJClX\nbIosSZIkSSo0E1tJkiRJUqHZFLmO8fG3q/PAOQecJEmSJOWbiW0dlUpPdR4454CTJEmSpHwzsZUk\nSepC5fI+W6BJWjRMbCVJkrrQ1FSfLdAkLRoOHiVJkiRJKjQTW0mSJElSodkUWZIkqaAq0xPsGFkF\nwHjPyxlHI0nZMbGVJEkqqiXQv34QgGN372lYLD6QFDiYlKTuY2J7Bl4IJEldYi1wK9AL3AXcUqfM\nbcA64ARwA7AbGALuA/4OUAH+NCqnnInX3sLcGtz4QFLgYFKSuo+JbR3xC8Px6VcYHHyhus8LgSSp\ngHqB24ErgVHgKWAr8HyszFXApcBK4HLgDmANMAn8R2AEWAY8DXyz5ljlQaz2FprX4EpSt3HwqHqi\nC0P/+kEqfVNZRyNJ0nytBsrAAUKi+iBwbU2Za4B7o/WdwAXAAPAqIakFeIuQ0L5rYcOVJKk11thK\nktT9BoGDse1DhFrZM5VZDozFHlsB/BIh8e0K69Zdz9jYW9Xt8fEJzsswnrTEu1rZzUpSNzCxlSSp\n+1USlutpctwy4CHgs4Sa29Ns3Lixuj48PMzw8HDiALMyNvbWnL6nI/v7M4wmPfE+t3azkpQHpVKJ\nUqnU9vEmtpIkdb9RwiBQM4YINbLNyiyPHgNYAnwV+ArwtUa/JJ7YSpLUitobops2bWrpePvYSpLU\n/XYRBoVaASwFriMMHhW3Ffh0tL4GOEJohtwDbAH2EEZVliQpd6yxbZF9UiRJBTQFbAAeJ4yQvIUw\nCNRN0f7NwKOEkZHLwHHgxmjfh4FPAc8Spv8BuBl4LI3A1RnjPS83nApIkrqBiW2L7JMiSSqo7dES\nt7lme0Od4/4aW3gVXqVvas5UQEfvHKkmupXx2lbpklQ8XqgkSZIWm9jUhlM941lHI0nzlkWN7VpC\nH51e4C7glpr9/wL4AqFPzzHg3xKaP2WiMj1h0x1JklQ48e8wlZ7JhuXGx9+2m5Wkwks7se0Fbgeu\nJIy0+BRhsIrnY2VeBD4K/JSQBP8pYRCLbER3NGccu3tPZqFIkqTOKh/ayf7DszewmyWAhRP7DnP0\nnpGGxSqVHrtZSSq8tBPb1YRBKQ5E2w8C1zI3sf1ebH0nYboBSZKkjpvqGee8eN/TJgmgJCm/0k5s\nB4GDse1DwOVNyv9rwiiNuRQfIRlsviNJkiRJWUg7sa20UPZjwGcI0wycJj4J/MxkvjuffJpnJ/bS\n9+ZSpo9Mcapyal7Bnkl8hGSw+Y4kFUWpVKJUKmUdhpQLc/riOkKypIJKO7EdBYZi20OEWttafx+4\nk9DH9if1niie2M44eWKcnqXvpL//3Uz0vkal8vS8A5YkdZ+ZG6IzNm3alF0wUtZifXFf//IPbI0m\nqZDSTmx3ASuBFcArwHXA9TVlfg54mDAZfDnN4OYr3jTZC4EkSSqa+EBSYGs0ScWRdmI7RZj8/XHC\nCMlbCANH3RTt3wz8PvAzwB3RY5OEQadyL9402QuBJEmSJKUji3lst0dL3ObY+r+JllyK90NxTltJ\nkiRJyl4WiW2xxfqhOKetJEnqZvFuVgcPlhkaurS6z25XkvLExFaSJEl1xbtZ7d17mf1vJeWWie0C\ncSApSZJUdOM9L9sFS1IhmNguEAeSkiRJRRMfSwTg1JKTDbtgeRNfUp6Y2EqSJCmIjSUCcPSekep6\nbdJ7bPpF9h9eBkD50KH0YpSkOkxsUxC/owne1ZQkSQVUJ+md2X59y7OsuiIkvQcPHGRoxVC13MCF\nA2x/pHZCDEnqLBPbeai9c9mo70m8WTLYNFmSlIm1wK2EeeTvAm6pU+Y2YB1wArgB2B09fjfwz4DX\ngPcvdKAqnkpfhcHfDknu3s/tra4DPPG5J6pJr0mupIViYjsfNXcunf5HkpRTvcDtwJXAKPAUsBV4\nPlbmKuBSYCVwOXAHsCba92Xgj4H7UopXBVOpnGLHjicBGB8fn7Nviqlqojv6J6OpxyZpcTCx7aB4\nDa4jB0qScmQ1UAYORNsPAtcyN7G9Brg3Wt8JXABcDLwKfBdYkUKcKqwe+vtXA3Cs8mjGsUhajM7K\nOoCuEtXg9q8fpNI3lXU0kiTNGAQOxrYPRY+1WkaSpFyyxnaBNKu9dXh8SVLKKgnL9bR5HAAbN26s\nrg8PDzM8PNzK4eoS8WbJcHrTZEmqp1QqUSqV2j7exHahxPrf1va9dY5bSVLKRoGh2PYQoUa2WZnl\n0WOJxRNbLWazzZKh802T131yHWNvjlW38zggVTzGPMaXpSK8fspG7Q3RTZs2tXS8ia0kSd1vF2FQ\nqBXAK8B1wPU1ZbYCGwj9b9cAR4AxpA569pnnOGfg/Or21PjbvO8DvwjMTXCaJT9jb47NGXU5jwNS\nxWPMY3ww9xw3m6Kp00l6K6/fYr9B4E2A1pjYZsw5biVJKZgiJK2PE0ZI3kIYOOqmaP9m4FHCyMhl\n4DhwY+z4B4ArgJ8l9MP9fcJIydIZxZsmT/dMc95vfrS677V7/pL9l4XEprztperjRUheF0KaiVz8\nHDeboqn8Ypkr/uAK4PTXYaHjLcINgrik5yNpwtrs/yDLpDevNxxMbDPmHLeSpJRsj5a4zTXbGxoc\nW1u7K7VgtmnyUb7RcN/rR7fPSaYGY2OXlX9YTrSvWa1vvFayWQ1lM0VI5DoRY3yKpr2f29uwXLN4\n24mj9jWrfa3b0ahmuhOvX714Z24CxG8O1P6+Tty4SZr0tvt3NnuOvN5wMLFNQXwgKWg+FZADS0mS\npMXoVO90tfb2+PePz9nXLNFqNE9u7Rf/eK1kbQ1l0i/n8edslrjExRPvZuWaHVebiDdL0BYy6aj9\nW+KJZ719jWp6G6n3mrWqWbIZf92bvX5Jb4rEn7s23vj7EjrzWjS7wRPXiRsOeU1emzGxTUNsICk4\nfTCpOAeWkiRJi9P858JN+sU/qWY1iLWJS23z3UblmjUnbXRcbSIe306adHSiNrT2b2mWyMX3dfp1\naSZpcnym1682Ya33WrSSeHfiHCStSW/0e2d+d6Na5dqkfSFfp4VgYpuBZlMBSZIkLXbtThnUzhd/\naNycuZUaxKS/uzbBaVTj1wlp/q5m2n1d4pLWYKeZNHbq+Ru9/zr9e2t/d7199WJsVlOfJya2WWgy\nFVCczZIlSdLiNHfKoKOn/rKa6J48+XbH58mNf8FvVPPaKZ1OoJolHQudrHVC0prMpDXYef07m2nU\nnL4VC1kr3iw5zhMT2xyzWbIkSRLUDkCVZJ7c8fHxVGt9s1KUpKORop3vhdZugup5NLHNXNKBpZwW\nSJIk6XTxZsvx2txTpyoNa307UcsrLQQT1PaZ2GYt4cBSTgskSZJUT/3a3GZTC8WTXJibEJv0SsVk\nYpszSQeWsv+tJElSu2r68MYS4nZHZI6LN4NeiD7Bkk5nYps3sRrco3eONExy4zW4TzzxHpspS5Ik\ndUCjps212832xZtBJ+0T3Ip44txuotyJ5+hW7fbPVrZMbPMs4ejJNlOWJEnqlMYDVdU2dW62r5Fm\niXM8gWpW6zsncW7SrLpZIt6J52i2r9HfUpskNvs724kjaRJam7w265+ddICyTjRp94ZD+0xsCyLp\nIFNgM2VJkqT8apI4xxLMZrW+cxPnxs2qz5SId+I5Wv5bapLoM/2dLceRMEk/bXCxJjcmEg9Q1kYc\nzZ6z3efoxM2IIjKxLYqEg0xB42bKJrmSJEl51pOo1rcYGv0tpyfRC/V7Z54/2eBiyZ4z+XMki6P5\nc7b/HPO9GZE0Oa7sn2hyDtJlYltQSQeZsi+uJEmSpDNrnMA3HGxtckf6YTZgYltUDQaZgsaJbm1f\nXGtzJUmSJHUDE9tuUNNMudloynHW5kqSJEnqBia23ahBbe7Jnhca1uxamytJkiSpqExsu108yb1n\nJHHNbqPa3IMHywwNXVotZ9IrSZIkKWtpJ7ZrgVuBXuAu4JY6ZW4D1gEngBuA3WkFt5hMHHy9aT/d\neO3u8elXGBx8AYC9ey9rWLO72JLeUqnE8PBw1mEUmuewMzyPSmg+1+AkxxbCI498nS1b/gKAN94Y\nY3IyPyN6JjFx8PWsQ2jdZCXrCFo2cfB1lg5dlHUYLSlqzEVU1HNdtJhblWZi2wvcDlwJjAJPAVuB\n52NlrgIuBVYClwN3AGtSjHHRmDj0xtwHavvpxmp3mzVnPjb9IvsPLwPgrRMHWTM4+3I2Snq7JQE2\nmZg/z2FneB6VwHyuwUmOLYz//dWH+NaL32bp+Rfx9o9GmaoULLGtvX4XwVTWAbRu4tAbhUsCihpz\nERX1XBct5lalmdiuBsrAgWj7QeBa5l4YrwHujdZ3AhcAA8BYOiGqrmbNmRskwDA36T164odMHD77\ntHWAZ1/Y17DWt1FC3KxcURNlSVpA7V6DLwYuSXBsgVTo/blzOPu9f5fJt48weeBI1gFJkjogzcR2\nEDgY2z5EuCN8pjLLSZjY9vX2Mr3vMCcOHuPUxOR8YlU7mtX6NliHkBDvPzwa1muS3kYJcbNyu/c9\nwzkDj1b3vX38OP3nnnvaOsDUyWned+nHgLnJ8ffL36Hv7N66zzFzzI9/vI+tW59uK/k2MZeUsnav\nwYPAuxIcWxi9vb1Mv/gTTrw2wtToT7IOR5JUQL8G3Bnb/hTwxzVltgEfjm1/C1jF6cpAxcXFxcXF\npUNLme7W7jX4QwmPBa/NLi4uLi6dXVq6NqdZYzsKDMW2hwh3fZuVWR49VuvSOo9JkqT62r0GHwKW\nJDgWvDZLkhaJPmA/sAJYCowA760pcxUw04Z0DfA3aQUnSVIXm881OMmxkiQtKuuAfYRq5Zujx26K\nlhm3R/ufoX4zZEmS1Lr5XIPrHStJkiRJkiRJWozWAnuBHwK/m3EsRXYAeBbYDTyZbSiFcTdhdO7n\nYo9dCHwTeAH4K8LUGGqs3jncSOirtzta1qYfVqEMAd8BfgB8H/j30eO+F5NrdA434nuxHb9OOJfT\nnN7K6mbC9Xov8ImU40qiCN8pinjtKeLnVD9hiqsRYA/wX6LH8xzzjF7CZ9a2aDvvMR/g9O+geY/5\nAuAhwhRnewijwuc55p9n9lq2G/gp4f8wzzFDuGb8gPB59+fAO8h/zG3rJTSBWkEYyMI+Pu17ifBG\nUXL/GPgl5n65+APgC9H67wL/Ne2gCqbeOfzPwH/KJpxCuhj4YLS+jNA09L34XmxFo3Poe7E9vwC8\nh5DIxBPbywjX6SWE63YZOCvt4JooyneKIl57ivo5dU70s4/Qv/wj5D9mCJ9bfwZsjbbzHnO976B5\nj/le4DPReh9wPvmPecZZwI8JN5zyHPMK4EVCMgvwv4B/Rb5jnpd/CDwW2/69aFHrXgJ+NusgCmgF\nc79c7AUGovWLo201t4LTE9vPZRNKV/gacCW+F+dj5hz6Xpyf2sT2ZubWgj5GGJAqL4r0nWIFxb72\nFO1z6hzgKeAXyX/MywnTcn2M2RrbvMdc7ztonmM+n5Bw1cpzzHGfAL4brec55gsJN8F+hnDzYBvw\ncVqMOU93T8+k0cTxal2F8EG4C/itjGMpsgFCEzGinwNNyqqx3yEMVLOFLmpikoIVhJqcnfhebNcK\nwjmcGf3X92LnvIu5UwLl7Zpd5O8URfp/X0FxPqfOItTcjzHblDrvMX8J+DxwKvZY3mOu9x00zzFf\nAhwGvgz8P8Kc3ueS75jjfgN4IFrPc8xvAn8IvAy8AhwhNEFuKeYiJbaVrAPoIh8mXGjWAf+O0NRJ\n8zMzkbRacwfhovFBQlOZP8w2nMJYBnwV+CxwrGaf78VklhH6TH0WeAvfi818k1BjWLtc3eLz5Ol9\nmadY5iPP/+9F+5w6Rfj/Xw58lFALGpe3mH8VeI3Qh7KnQZm8xQxn/g6at5j7CK1R/mf08zint+7I\nW8wzlhI+p/+izr68xfxu4D8Qboa9i/D58amaMmeMuUiJbZLJ5ZXMj6Ofh4FHgNUZxlJkY4RmEQDv\nJFxg1JrXmP2gugvfi0ksIXxZvJ/QxA98L7Zq5hx+hdlz6HuxsY8D76+zbGtyTO01e3n0WF4U+TtF\nEf7fi/w59VPgG8CHyHfM/wi4htC09wHgVwjnO88xQ/3voHmO+VC0PBVtP0RIcF8lvzHPWAc8TTjX\nkO/z/MvA/wXeAKaAhwldRlo6z0VKbHcBK5mdIP46ZjvKK7lzgPOi9XMJbe+fa1xcTWwldGwn+vm1\nJmVV3ztj65/E9+KZ9BCaye4Bbo097nsxuUbn0Pfi/MVrjbYSmsAtJdSEryRfo/AX+TtF3v/fi/g5\ndRGz3Q/OJtzM2U2+Y/4i4YbMJYT/tW8D/5J8x9zoO2ieY36V0G3hPdH2lYRm6tvIb8wzrme2GTLk\n+zzvJYzDcDbhM+RKwmdIEc5z25wgfv4uIfQhGSEMw+95TOYBQpv/CcIH3I2Eju7foguHIF8gtefw\nM8B9hGH/nyF8WOWpv0cefYTQXG6EudPS+F5Mrt45XIfvxXZ9kvD/fJLwBXB7bN8XCdfrvcA/TT+0\nMyrCd4oiXnuK+Dn1fkL/yRHC58Dno8fzHHPcFczemMlzzI2+g+Y5ZoAPEGpsnyHUJJ5P/mM+F3id\n2RsJkP+Yv8DsdD/3Elp+5D1mSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk\nSZIkSVKK/j9YaBQu/0YvUQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x47f0d50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bins_reweighter = reweight.BinsReweighter(n_bins=20, n_neighs=2.)\n",
"bins_reweighter.fit(original, target)\n",
"\n",
"bins_weights = bins_reweighter.predict_weights(original)\n",
"draw_distributions(bins_weights)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# GradientBoosting reweighter"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"KS over hSPD = 0.0264322619236\n",
"KS over pt_b = 0.0285179268343\n",
"KS over pt_phi = 0.0217260728948\n",
"KS over vchi2_b = 0.0269154489437\n"
]
},
{
"data": {
"image/png": "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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x6bcba10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"reweighter = reweight.GBReweighter(n_estimators=50, learning_rate=0.1, max_depth=3, other_args={'subsample': 0.6})\n",
"reweighter.fit(original[::3], target)\n",
"\n",
"gb_weights = reweighter.predict_weights(original)\n",
"draw_distributions(gb_weights)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Comparing some simple expressions:\n",
"the most interesting is checking some other variables in multidimensional distributions"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def check_ks_of_expression(expression):\n",
" col_original = original.eval(expression)\n",
" col_target = target.eval(expression)\n",
" w_target = numpy.ones(len(col_target), dtype='float')\n",
" print 'No reweight KS:', ks_2samp_weighted(col_original, col_target, weights1=original_weights, weights2=w_target) \n",
" print 'Bins reweight KS:', ks_2samp_weighted(col_original, col_target, weights1=bins_weights, weights2=w_target)\n",
" print 'GB Reweight KS:', ks_2samp_weighted(col_original, col_target, weights1=gb_weights, weights2=w_target)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No reweight KS: 0.519780980407\n",
"Bins reweight KS: 0.177921898365\n",
"GB Reweight KS: 0.0264322619236\n"
]
}
],
"source": [
"check_ks_of_expression('hSPD')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No reweight KS: 0.0898245884735\n",
"Bins reweight KS: 0.0511950767559\n",
"GB Reweight KS: 0.00785401668112\n"
]
}
],
"source": [
"check_ks_of_expression('hSPD * pt_phi')"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No reweight KS: 0.369046686029\n",
"Bins reweight KS: 0.15374277371\n",
"GB Reweight KS: 0.0179192223351\n"
]
}
],
"source": [
"check_ks_of_expression('hSPD * pt_phi * vchi2_b')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No reweight KS: 0.477371250686\n",
"Bins reweight KS: 0.189616707489\n",
"GB Reweight KS: 0.0393582946257\n"
]
}
],
"source": [
"check_ks_of_expression('pt_b * pt_phi / hSPD ')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"No reweight KS: 0.49338779186\n",
"Bins reweight KS: 0.203323519092\n",
"GB Reweight KS: 0.025076631041\n"
]
}
],
"source": [
"check_ks_of_expression('hSPD * pt_b * vchi2_b / pt_phi')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# GB-discrimination\n",
"let's check how well the classifier is able to distinguish these distributions"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.885069230814\n",
"0.889123667776\n",
"0.670582998216\n",
"0.677359181229\n",
"0.531292266092\n",
"0.56309666071\n"
]
}
],
"source": [
"from sklearn.ensemble import GradientBoostingClassifier\n",
"from sklearn.cross_validation import train_test_split\n",
"from sklearn.metrics import roc_auc_score\n",
"\n",
"data = numpy.concatenate([original, target])\n",
"labels = numpy.array([0] * len(original) + [1] * len(target))\n",
"\n",
"\n",
"for weights in [original_weights, bins_weights, gb_weights]:\n",
" W = numpy.concatenate([weights / weights.sum() * len(target), [1] * len(target)])\n",
" Xtr, Xts, Ytr, Yts, Wtr, Wts = train_test_split(data, labels, W, random_state=42, train_size=0.51)\n",
" clf = GradientBoostingClassifier(subsample=0.3, n_estimators=30).fit(Xtr, Ytr, sample_weight=Wtr)\n",
" \n",
" print roc_auc_score(Yts, clf.predict_proba(Xts)[:, 1], sample_weight=Wts)\n",
" print roc_auc_score(Ytr, clf.predict_proba(Xtr)[:, 1], sample_weight=Wtr)"
]
}
],
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment