You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openai-cookbook/examples/Zero-shot_classification_wi...

231 lines
101 KiB
Plaintext

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zero-shot classification with embeddings\n",
"\n",
"In this notebook we will classify the sentiment of reviews using embeddings and zero labeled data! The dataset is created in the [Get_embeddings_from_dataset Notebook](Get_embeddings_from_dataset.ipynb).\n",
"\n",
"We'll define positive sentiment to be 4- and 5-star reviews, and negative sentiment to be 1- and 2-star reviews. 3-star reviews are considered neutral and we won't use them for this example.\n",
"\n",
"We will perform zero-shot classification by embedding descriptions of each class and then comparing new samples to those class embeddings."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from ast import literal_eval\n",
"\n",
"from sklearn.metrics import classification_report\n",
"\n",
"EMBEDDING_MODEL = \"text-embedding-3-small\"\n",
"\n",
"datafile_path = \"data/fine_food_reviews_with_embeddings_1k.csv\"\n",
"\n",
"df = pd.read_csv(datafile_path)\n",
"df[\"embedding\"] = df.embedding.apply(literal_eval).apply(np.array)\n",
"\n",
"# convert 5-star rating to binary sentiment\n",
"df = df[df.Score != 3]\n",
"df[\"sentiment\"] = df.Score.replace({1: \"negative\", 2: \"negative\", 4: \"positive\", 5: \"positive\"})\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zero-Shot Classification\n",
"To perform zero shot classification, we want to predict labels for our samples without any training. To do this, we can simply embed short descriptions of each label, such as positive and negative, and then compare the cosine distance between embeddings of samples and label descriptions. \n",
"\n",
"The highest similarity label to the sample input is the predicted label. We can also define a prediction score to be the difference between the cosine distance to the positive and to the negative label. This score can be used for plotting a precision-recall curve, which can be used to select a different tradeoff between precision and recall, by selecting a different threshold."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" negative 0.54 0.92 0.68 136\n",
" positive 0.98 0.87 0.92 789\n",
"\n",
" accuracy 0.87 925\n",
" macro avg 0.76 0.89 0.80 925\n",
"weighted avg 0.92 0.87 0.89 925\n",
"\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from utils.embeddings_utils import cosine_similarity, get_embedding\n",
"from sklearn.metrics import PrecisionRecallDisplay\n",
"\n",
"def evaluate_embeddings_approach(\n",
" labels = ['negative', 'positive'],\n",
" model = EMBEDDING_MODEL,\n",
"):\n",
" label_embeddings = [get_embedding(label, model=model) for label in labels]\n",
"\n",
" def label_score(review_embedding, label_embeddings):\n",
" return cosine_similarity(review_embedding, label_embeddings[1]) - cosine_similarity(review_embedding, label_embeddings[0])\n",
"\n",
" probas = df[\"embedding\"].apply(lambda x: label_score(x, label_embeddings))\n",
" preds = probas.apply(lambda x: 'positive' if x>0 else 'negative')\n",
"\n",
" report = classification_report(df.sentiment, preds)\n",
" print(report)\n",
"\n",
" display = PrecisionRecallDisplay.from_predictions(df.sentiment, probas, pos_label='positive')\n",
" _ = display.ax_.set_title(\"2-class Precision-Recall curve\")\n",
"\n",
"evaluate_embeddings_approach(labels=['negative', 'positive'], model=EMBEDDING_MODEL)\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that this classifier already performs extremely well. We used similarity embeddings, and the simplest possible label name. Let's try to improve on this by using more descriptive label names, and search embeddings."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" negative 0.76 0.96 0.85 136\n",
" positive 0.99 0.95 0.97 789\n",
"\n",
" accuracy 0.95 925\n",
" macro avg 0.88 0.96 0.91 925\n",
"weighted avg 0.96 0.95 0.95 925\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcAAAAHHCAYAAAAoIIjLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcFUlEQVR4nO3dd1QU19sH8O/Sll4UaYqCijUqilHBWGIwRA2WWFCJggU1sZNEJUaxxBYTozGWX4wtxgSN0dgxiNhblGADsaFgwYaAgNL2vn/4MnGluIu7IO73c86ew965M/PMZdmHuXPvjEwIIUBERKRj9Mo7ACIiovLABEhERDqJCZCIiHQSEyAREekkJkAiItJJTIBERKSTmACJiEgnMQESEZFOYgIkIiKdxARIWtO+fXu0b9++vMN4rU2bNg0ymUytda5fvw6ZTIY1a9ZoJ6gKLjAwEC4uLkplMpkM06ZNK5d46PXFBKiD/vnnH4waNQoNGzaEmZkZqlevjj59+uDSpUvlHZrW7d+/HzKZTHoZGhqiZs2aGDhwIK5du1be4VUIz7efTCaDpaUl2rVrh507d5Z3aERqMSjvAKjszZs3D0eOHEHv3r3RuHFjJCcn48cff0SzZs1w/PhxvPXWW+UdotaNGTMGb7/9NnJzcxEdHY2ffvoJO3fuxLlz5+Dk5FRmcXz11VeYNGmSWuvUqFEDT548gaGhoZaiermOHTti4MCBEELgxo0bWLZsGXx9fbF79274+PiUW1xE6mAC1EHBwcH47bffYGRkJJX5+fmhUaNGmDt3Ln799ddyjK5stGnTBr169QIADBo0CHXq1MGYMWOwdu1ahISEFLlOZmYmzMzMNBqHgYEBDAzU+zOUyWQwNjbWaBzqqlOnDj7++GPpfc+ePdGgQQMsWrSICbAE2vgMUemxC1QHeXl5KSU/AHBzc0PDhg0RFxen8nZ+/fVXtGjRAqamprCxsUHbtm3x999/F1s/JycHU6dOhYeHB6ysrGBmZoY2bdogKiqqUN2wsDB4eHjAwsIClpaWaNSoERYtWiQtz83NxfTp0+Hm5gZjY2NUrlwZ77zzDiIiIlSO/3kdOnQAACQkJAD479pcbGws+vfvDxsbG7zzzjtKx+7h4QETExNUqlQJffv2RVJSUqHtnjhxAp07d4aNjQ3MzMzQuHFjpeMo6hpgREQE3nnnHVhbW8Pc3Bx169bFl19+KS0v7hrgvn370KZNG5iZmcHa2hrdunUr9Pss2N+VK1cQGBgIa2trWFlZYdCgQcjKyipV2wFA/fr1YWtri6tXryqVZ2dnIzQ0FLVr14ZcLoezszMmTJiA7OzsQtt42edp69at6NKlC5ycnCCXy1GrVi3MnDkT+fn5pY77RU+fPsW0adNQp04dGBsbw9HRER999JF0XAVd6Pv371dar6jfSWBgIMzNzXH16lV07twZFhYW8Pf3x6hRo2Bubl5ke/fr1w8ODg5Kx7R7927p92phYYEuXbrgwoULGjtmXcYESAAAIQTu3r0LW1tblepPnz4dAwYMgKGhIWbMmIHp06fD2dkZ+/btK3ad9PR0/Pzzz2jfvj3mzZuHadOm4f79+/Dx8UFMTIxULyIiAv369YONjQ3mzZuHuXPnon379jhy5IhUZ9q0aZg+fTreffdd/Pjjj5g8eTKqV6+O6OjoUh1/wRdc5cqVlcp79+6NrKwszJ49G0FBQQCAWbNmYeDAgXBzc8OCBQswbtw4REZGom3btkhNTVU6jrZt2yI2NhZjx47Fd999h3fffRc7duwoNo4LFy7gww8/RHZ2NmbMmIHvvvsOXbt2VTr2ouzduxc+Pj64d+8epk2bhuDgYBw9ehStW7fG9evXC9Xv06cPHj9+jDlz5qBPnz5Ys2YNpk+frmJrFZaWloZHjx7BxsZGKlMoFOjatSu+/fZb+Pr6YvHixejevTu+//57+Pn5Ka2vyudpzZo1MDc3R3BwMBYtWgQPDw9MnTpV7S7k4uTn5+PDDz/E9OnT4eHhge+++w5jx45FWloazp8/X6pt5uXlwcfHB3Z2dvj222/Rs2dP+Pn5ITMzs9A106ysLGzfvh29evWCvr4+AGDdunXo0qULzM3NMW/ePEyZMgWxsbF45513ivy9kpoEkRBi3bp1AoBYuXLlS+tevnxZ6OnpiR49eoj8/HylZQqFQvq5Xbt2ol27dtL7vLw8kZ2drVT/0aNHwt7eXgwePFgqGzt2rLC0tBR5eXnFxtCkSRPRpUuXl8b6oqioKAFArFq1Sty/f1/cvn1b7Ny5U7i4uAiZTCb++ecfIYQQoaGhAoDo16+f0vrXr18X+vr6YtasWUrl586dEwYGBlJ5Xl6ecHV1FTVq1BCPHj1Sqvt8GxXsp8D3338vAIj79+8XewwJCQkCgFi9erVU5u7uLuzs7MTDhw+lsjNnzgg9PT0xcODAQvt7vr2FEKJHjx6icuXKxe7zeQDEkCFDxP3798W9e/fEqVOnxAcffCAAiPnz50v11q1bJ/T09MShQ4eU1l++fLkAII4cOSKEUP3zlJWVVSiW4cOHC1NTU/H06VOpLCAgQNSoUaNQzKGhoSUe16pVqwQAsWDBgkLLCuIo+PxERUUpLS/qdxIQECAAiEmTJhXaVtWqVUXPnj2Vyjdu3CgAiIMHDwohhHj8+LGwtrYWQUFBSvWSk5OFlZVVoXJSH88ACRcvXsTIkSPh6emJgICAl9b/66+/oFAoMHXqVOjpKX+EShrSr6+vL3W9KhQKpKSkIC8vD82bN1c6c7O2tkZmZmaJ3ZnW1ta4cOECLl++/NJ4izJ48GBUqVIFTk5O6NKlCzIzM7F27Vo0b95cqd6IESOU3m/evBkKhQJ9+vTBgwcPpJeDgwPc3Nyk7tx///0XCQkJGDduHKytrZW2UVIbFdTdunUrFAqFSsdy584dxMTEIDAwEJUqVZLKGzdujI4dO2LXrl2F1nnxuNq0aYOHDx8iPT1dpX2uXLkSVapUgZ2dHZo3b47IyEhMmDABwcHBUp0//vgD9evXR7169ZTaqqC7uaCtVP08mZiYSD8/fvwYDx48QJs2bZCVlYWLFy+qFHdJ/vzzT9ja2mL06NGFlqk7VeV5n3zySaFt9e7dG7t27UJGRoZUvmHDBlStWlXqao+IiEBqair69eun1H76+vpo2bJlkZcOSD1MgDouOTkZXbp0gZWVFTZt2iR1vQDPurWSk5OlV0pKCoBn3YV6enpo0KCB2vtbu3YtGjduLF23q1KlCnbu3Im0tDSpzqeffoo6deqgU6dOqFatGgYPHozw8HCl7cyYMQOpqamoU6cOGjVqhC+++AJnz55VOY6pU6ciIiIC+/btw9mzZ3H79m0MGDCgUD1XV1el95cvX4YQAm5ubqhSpYrSKy4uDvfu3QPwX5equiNq/fz80Lp1awwdOhT29vbo27cvNm7cWGIyvHHjBgCgbt26hZbVr18fDx48QGZmplJ59erVld4XdF0+evQIAJCSkqL0u3/+9wMA3bp1Q0REBHbu3CldV8zKylJKYJcvX8aFCxcKtVOdOnUAQKmtVPk8XbhwAT169ICVlRUsLS1RpUoVaSDOi/GVxtWrV1G3bl21ByWVxMDAANWqVStU7ufnhydPnmDbtm0AgIyMDOzatQu9e/eWkm3BP3cdOnQo1IZ///231H5UehwFqsPS0tLQqVMnpKam4tChQ4WG/48dOxZr166V3rdr167QxX91/PrrrwgMDET37t3xxRdfwM7ODvr6+pgzZ47S4Ak7OzvExMRgz5492L17N3bv3o3Vq1dj4MCBUjxt27bF1atXsXXrVvz999/4+eef8f3332P58uUYOnToS2Np1KgRvL29X1rv+bMO4NmZq0wmw+7du5X+WShgbm7+0m2+bH8HDx5EVFQUdu7cifDwcGzYsAEdOnTA33//XeQ+S6O47QghAAAfffQRDhw4IJUHBAQoDfCoVq2a1H6dO3eGra0tRo0ahXfffRcfffQRgGdt1ahRIyxYsKDIfTk7O6scb2pqKtq1awdLS0vMmDEDtWrVgrGxMaKjozFx4kSVz5ZfVXFngsUNxJHL5YXOagGgVatWcHFxwcaNG9G/f39s374dT548Ubo2WnBM69atg4ODQ6FtaDJR6yq2oI56+vQpfH19cenSJezdu7fI/74nTJigNNS94CyhVq1aUCgUiI2Nhbu7u8r73LRpE2rWrInNmzcrfZGEhoYWqmtkZARfX1/4+vpCoVDg008/xf/+9z9MmTIFtWvXBgBUqlQJgwYNwqBBg5CRkYG2bdti2rRpKiXA0qpVqxaEEHB1dZXOZIqrBwDnz59XKdE+T09PD++99x7ee+89LFiwALNnz8bkyZMRFRVV5LZq1KgBAIiPjy+07OLFi7C1tVV76P13330nnQ0CeOncyOHDh+P777/HV199hR49ekAmk6FWrVo4c+YM3nvvvRK7EFX5PO3fvx8PHz7E5s2b0bZtW6m8YNSuJtSqVQsnTpxAbm5usXMsC/4Gnh/sBPx3Fq6OPn36YNGiRUhPT8eGDRvg4uKCVq1aKcUDPPuHUN3PEKmGXaA6KD8/H35+fjh27Bj++OMPeHp6FlmvQYMG8Pb2ll4eHh4AgO7du0NPTw8zZswo9J93wRlEUQrOOp6vc+LECRw7dkyp3sOHD5Xe6+npoXHjxgAgDZ9/sY65uTlq165d5PB6Tfroo4+gr6+P6dOnFzpWIYQUV7NmzeDq6oqFCxcW+rIsqY0KupmfV5AUijs2R0dHuLu7Y+3atUr7On/+PP7++2907txZhSNT5uHhofS7f1n3pIGBAT777DPExcVh69atAJ59wd+6dQsrVqwoVP/JkydSt6wqn6eiPjs5OTlYunSp2sdWnJ49e+LBgwf48ccfCy0r2G+NGjWgr6+PgwcPKi0vTRx+fn7Izs7G2rVrER4ejj59+igt9/HxgaWlJWbPno3c3NxC69+/f1/tfZIyngHqoM8++wzbtm2Dr68vUlJSCk18f/6sryi1a9fG5MmTMXPmTLRp0wYfffQR5HI5/vnnHzg5OWHOnDlFrvfhhx9i8+bN6NGjB7p06YKEhAQsX74cDRo0UBoMMHToUKSkpKBDhw6oVq0abty4gcWLF8Pd3R3169cH8Cw5t2/fHh4eHqhUqRJOnTqFTZs2YdSoUa/YOiWrVasWvv76a4SEhOD69evo3r07LCwskJCQgC1btmDYsGH4/PPPoaenJ90dxd3dHYMGDYKjoyMuXryICxcuYM+ePUVuf8aMGTh48CC6dOmCGjVq4N69e1i6dCmqVaumNA/xRfPnz0enTp3g6emJIUOG4MmTJ1i8eDGsrKzK7B6YgYGBmDp1KubNm4fu3btjwIAB2LhxI0aMGIGoqCi0bt0a+fn5uHjxIjZu3Ig9e/agefPmKn2evLy8YGNjg4CAAIwZMwYymQzr1q0r8Z8JdQ0cOBC//PILgoODcfLkSbRp0waZmZnYu3cvPv30U3Tr1g1WVlbo3bs3Fi9eLJ3l7tixo1TX45o1ayYde3Z2dqGpIZaWlli2bBkGDBiAZs2aoW/fvqhSpQoSExOxc+dOtG7dushkTWoon8GnVJ7atWsnABT7UtWqVatE06ZNhVwuFzY2NqJdu3YiIiJCaT/PT4NQKBRi9uzZokaNGkIul4umTZuKHTt2FBq2vmnTJvH+++8LOzs7YWRkJKpXry6GDx8u7ty5I9X5+uuvRYsWLYS1tbUwMTER9erVE7NmzRI5OTklxlwwjP2PP/4osV7BdIHipiP8+eef4p133hFmZmbCzMxM1KtXT4wcOVLEx8cr1Tt8+LDo2LGjsLCwEGZmZqJx48Zi8eLFhfZTIDIyUnTr1k04OTkJIyMj4eTkJPr16ycuXbok1SlqyL0QQuzdu1e0bt1amJiYCEtLS+Hr6ytiY2NVOq7Vq1cLACIhIaHEdhHi2ZSCkSNHFrls2rRpStMEcnJyxLx580TDhg2lz4mHh4eYPn26SEtLU1r3ZZ+nI0eOiFatWgkTExPh5OQkJkyYIPbs2VNoWkJpp0EI8WyqxeTJk4Wrq6swNDQUDg4OolevXuLq1atSnfv374uePXsKU1NTYWNjI4YPHy7Onz9f5DQIMzOzEvc3efJkAUDUrl272DpRUVHCx8dHWFlZCWNjY1GrVi0RGBgoTp069dLjoZLJhNDgv1BEREQVBK8BEhGRTmICJCIincQESEREOokJkIiIdBITIBER6SQmQCIi0knlOhH+4MGDmD9/Pk6fPo07d+5gy5Yt6N69e4nr7N+/H8HBwbhw4QKcnZ3x1VdfITAwUOV9KhQK3L59GxYWFq90h3ciIiofQgg8fvwYTk5ORd5rVVXlmgAzMzPRpEkTDB48WLqBbkkSEhLQpUsXjBgxAuvXr0dkZCSGDh0KR0dH+Pj4qLTP27dvq3UTXiIiej0lJSUV+bQNVb02E+FlMtlLzwAnTpyInTt3Kj2duW/fvkhNTS30uJzipKWlwdraGklJSbC0tHzVsImIqIylp6fD2dkZqampsLKyKvV2KtS9QI8dO1borug+Pj4YN26cytso6Pa0tLSEgbEpjl19+JI1iIjKj7GhPlq4VoKhPodsvOhVL2NVqASYnJwMe3t7pTJ7e3ukp6fjyZMnhZ7dBjy7g/7zd9F//onX99KzMWTtKe0FTESkIa1qVpJ+Lui3K+i+e/A4Gx0b2MPnLYf/XyYgRMHNfQvWEdJ7gf828HxZQd069hZwsDLW+jGVtwqVAEtjzpw5mD59epHLjAz00KRa6U+fiYi06czN/550f/xa4UdlPe9/B6/hfwevaWzf9R0tUdXaBHM+aoQqFnKNbfd1UqESoIODA+7evatUdvfuXVhaWhZ59gcAISEhCA4Olt4X9B0DgJO1CbaOKv4RM0RE5Sk7Lx9zdl1ErSpmsDI1wvMdfgW9f3fTszFzRywAoHolU2mZDM+6CKV1XigrWF8G2X8/y2SIu/OslyzuTjri7qRj76y7aFTVCgICefkCF5Mfo669BQQEFAJQiP8/2xTFv1f8/1lpwfsujRwxq0cjrbWbqipUAvT09MSuXbuUyiIiIop9oCsAyOVyyOVv5n8vRPRmkxvoY1rXhi+tN+QdV43tMyYpFRGxyVgSdVUqO3crTalO/N3Hr7SPjaeSmAAzMjJw5coV6X1CQgJiYmJQqVIlVK9eHSEhIbh16xZ++eUXAMCIESPw448/YsKECRg8eDD27duHjRs3YufOneV1CEREbxR3Z2u4O1tjWJta+DHqMlq6Voa+3rPTR73/P1XMzs2HubEB9GQy6MmenUHqyZ6dQer9/xlmQbns/9fTk8nwMCMb/X8+gdx8gc82noGhvgz+LWugUTldiirXBHjq1Cm8++670vuCrsqAgACsWbMGd+7cQWJiorTc1dUVO3fuxPjx47Fo0SJUq1YNP//8s8pzAImISDVWpoaY3KWBRrd577Gh9POf0TcBAPcfZ2Nl4Nsa3Y+qXpt5gGUlPT0dVlZWSEtL4zxAIqIyNnXreRy9+hD1HS2x/cxttK5dGeuHtlJrG5r6Hq9Q1wCJiKhim9HtLQDA5uib2H7mNo5ceYglUVdgZqSPXs2dYS4vu7TEBEhERGXu7HNTPObviZd+DmytuQE9L8NbCxARUZkb1aE2gP+mYwDAtO2x2Bpzq8xiYAIkIqIyZ2sux/W5XZAwpwv0nkuCY8NicP6FaRfawkEwRERUrh5mZKPrj0dwK/WJVObT0B75CoEr9zIwvdtbaOtmK937U1Pf40yARET0WnCZVPyc7t+GtoRXbVsAmvseZxcoERG9Fi7P6oR6DhZoX7cKZvV4S+kepDefOzvUFI4CJSKi14Khvh7Cx7WV3vu3rIFBq08iKv6+VvbHM0AiItJJTIBERKSTmACJiEgnMQESEdFrq+D636K9lzW+bSZAIiJ67d3SwihQJkAiInpt/R707EkRte3MNb5tJkAiInptPX+vUE1jAiQiIp3EBEhERDqJCZCIiHQSEyAREekkJkAiItJJTIBERKSTmACJiEgnMQESEZFOYgIkIqLXlkIIAMCVexnIzVdodNtMgERE9Np6mJEj/XwyIUWj22YCJCKi19aHjR2ln5/m5mt020yARET02pLJZGhSzUor22YCJCIincQESEREOokJkIiIdBITIBER6SQmQCIi0klMgEREpJOYAImISCcxARIRkU5iAiQiIp3EBEhERDqJCZCIiHQSEyAREekkJkAiItJJTIBERKSTmACJiEgnMQESEZFOYgIkIiKdxARIREQ6iQmQiIh0EhMgERHpJCZAIiLSSQblHQAREVFJ1ge1Qr5CwNRIX6PbZQIkIqLXmrlcO6mKXaBERKSTmACJiEgnMQESEZFOYgIkIiKdxARIREQ6iQmQiIh0EhMgERHpJCZAIiLSSUyARESkk5gAiYhIJ71SAszOztZUHERERGVKrQS4e/duBAQEoGbNmjA0NISpqSksLS3Rrl07zJo1C7dv39ZWnERERBqlUgLcsmUL6tSpg8GDB8PAwAATJ07E5s2bsWfPHvz8889o164d9u7di5o1a2LEiBG4f/++ygEsWbIELi4uMDY2RsuWLXHy5MkS6y9cuBB169aFiYkJnJ2dMX78eDx9+lTl/REREQEAhApatWolduzYIfLz80usd/PmTTFx4kSxYMECVTYrwsLChJGRkVi1apW4cOGCCAoKEtbW1uLu3btF1l+/fr2Qy+Vi/fr1IiEhQezZs0c4OjqK8ePHq7Q/IYRIS0sTAERaWprK6xAR0etDU9/jMiGEKK/k27JlS7z99tv48ccfAQAKhQLOzs4YPXo0Jk2aVKj+qFGjEBcXh8jISKnss88+w4kTJ3D48GGV9pmeng4rKyukpaXB0tJSMwdCRERlRlPf46UeBJOTk4P4+Hjk5eWVev3Tp0/D29v7v2D09ODt7Y1jx44VuY6XlxdOnz4tdZNeu3YNu3btQufOnYvdT3Z2NtLT05VeREREaifArKwsDBkyBKampmjYsCESExMBAKNHj8bcuXNV3s6DBw+Qn58Pe3t7pXJ7e3skJycXuU7//v0xY8YMvPPOOzA0NEStWrXQvn17fPnll8XuZ86cObCyspJezs7OKsdIRERvLrUTYEhICM6cOYP9+/fD2NhYKvf29saGDRs0GtyL9u/fj9mzZ2Pp0qWIjo7G5s2bsXPnTsycObPEeNPS0qRXUlKSVmMkIqKKQe3nzP/111/YsGEDWrVqBZlMJpU3bNgQV69eVXk7tra20NfXx927d5XK7969CwcHhyLXmTJlCgYMGIChQ4cCABo1aoTMzEwMGzYMkydPhp5e4Xwul8shl8tVjouIiHSD2meA9+/fh52dXaHyzMxMpYT4MkZGRvDw8FAa0KJQKBAZGQlPT88i18nKyiqU5PT19QEA5TiWh4iIKiC1E2Dz5s2xc+dO6X1B0vv555+LTVzFCQ4OxooVK7B27VrExcXhk08+QWZmJgYNGgQAGDhwIEJCQqT6vr6+WLZsGcLCwpCQkICIiAhMmTIFvr6+UiIkIiJShdpdoLNnz0anTp0QGxuLvLw8LFq0CLGxsTh69CgOHDig1rb8/Pxw//59TJ06FcnJyXB3d0d4eLg0MCYxMVHpjO+rr76CTCbDV199hVu3bqFKlSrw9fXFrFmz1D0MIiLScaWaB3j16lXMnTsXZ86cQUZGBpo1a4aJEyeiUaNG2ohRozgPkIioYtPU93i5ToQvD0yAREQVW7lNhPf29saaNWs4oZyIiCo0tRNgw4YNERISAgcHB/Tu3Rtbt25Fbm6uNmIjIiLSGrUT4KJFi3Dr1i389ddfMDMzw8CBA2Fvb49hw4apPQiGiIiovLzyNcCnT59i+/btmDVrFs6dO4f8/HxNxaYVvAZIRFSxaep7XO1pEM9LTk5GWFgYfv31V5w9exYtWrR4lc0RERGVGbW7QNPT07F69Wp07NgRzs7OWLZsGbp27YrLly/j+PHj2oiRiIhI49Q+A7S3t4eNjQ38/PwwZ84cNG/eXBtxERERaZXaCXDbtm147733irzxNBERUUWhdgLs2LGjNuIgIiIqUyolwGbNmiEyMhI2NjZo2rRpiU99iI6O1lhwRERE2qJSAuzWrZv0TL1u3bqp9dgjIiKi1xHvBUpERBVKud0LtGbNmnj48GGh8tTUVNSsWbPUgRAREZUltRPg9evXi7zbS3Z2Nm7evKmRoIiIiLRN5VGg27Ztk37es2cPrKyspPf5+fmIjIyEq6urZqMjIiLSEpUTYPfu3QEAMpkMAQEBSssMDQ3h4uKC7777TqPBERERaYvKCVChUAAAXF1d8c8//8DW1lZrQREREWmb2hPhExIStBEHERFRmVIpAf7www8YNmwYjI2N8cMPP5RYd8yYMRoJjIiISJtUmgfo6uqKU6dOoXLlyiUOdJHJZLh27ZpGA9Q0zgMkIqrYyvR5gM93e7ILlIiI3gSv/EiH/Px8xMTE4NGjR5qIh4iIqEyonQDHjRuHlStXAniW/Nq2bYtmzZrB2dkZ+/fv13R8REREWqF2Aty0aROaNGkCANi+fTuuX7+OixcvYvz48Zg8ebLGAyQiItIGtRPggwcP4ODgAADYtWsXevfujTp16mDw4ME4d+6cxgMkIiLSBrUToL29PWJjY5Gfn4/w8HDpAblZWVnQ19fXeIBERETaoPZE+EGDBqFPnz5wdHSETCaDt7c3AODEiROoV6+exgMkIiLSBrUT4LRp0/DWW28hKSkJvXv3lh6Uq6+vj0mTJmk8QCIiIm3gA3GJiKhCKbcH4gLAgQMH4Ovri9q1a6N27dro2rUrDh06VOogiIiIypraCfDXX3+Ft7c3TE1NMWbMGIwZMwYmJiZ477338Ntvv2kjRiIiIo1Tuwu0fv36GDZsGMaPH69UvmDBAqxYsQJxcXEaDVDT2AVKRFSxlVsX6LVr1+Dr61uovGvXrrxPKBERVRhqJ0BnZ2dERkYWKt+7dy+cnZ01EhQREZG2qT0N4rPPPsOYMWMQExMDLy8vAMCRI0ewZs0aLFq0SOMBEhERaYPaCfCTTz6Bg4MDvvvuO2zcuBHAs+uCGzZsQLdu3TQeIBERkTZwHiAREVUoZfpA3KKcOnVKGvHZoEEDeHh4lDoIIiKisqZ2Arx58yb69euHI0eOwNraGgCQmpoKLy8vhIWFoVq1apqOkYiISOPUHgU6dOhQ5ObmIi4uDikpKUhJSUFcXBwUCgWGDh2qjRiJiIg0Tu1rgCYmJjh69CiaNm2qVH769Gm0adMGWVlZGg1Q03gNkIioYiu3ifDOzs7Izc0tVJ6fnw8nJ6dSB0JERFSW1E6A8+fPx+jRo3Hq1Cmp7NSpUxg7diy+/fZbjQZHRESkLWp3gdrY2CArKwt5eXkwMHg2hqbgZzMzM6W6KSkpmotUQ9gFSkRUsZXbNIiFCxeWemdERESvC7UTYEBAgDbiICIiKlOleiAuERFRRccESEREOokJkIiIdBITIBER6SQmQCIi0kmlSoC//PILtm7dqlS2detW/PLLLxoJioiISNtK9TxAPT091KtXD7GxsVJZvXr1cPnyZeTn52s0QE3jRHgiooqtXJ8HqFAoCpVdvHix1EEQERGVNV4DJCIinaTSGWB6errKG2S3IhERVQQqJUBra2vIZLIS6wghIJPJXvtrgERERICKCTAqKkrbcRAREZUplRJgu3bttB0HERFRmSrVIJhDhw7h448/hpeXF27dugUAWLduHQ4fPqzR4IiIiLRF7QT4559/wsfHByYmJoiOjkZ2djYAIC0tDbNnz1Y7gCVLlsDFxQXGxsZo2bIlTp48WWL91NRUjBw5Eo6OjpDL5ahTpw527dql9n6JiEi3qZ0Av/76ayxfvhwrVqyAoaGhVN66dWtER0erta0NGzYgODgYoaGhiI6ORpMmTeDj44N79+4VWT8nJwcdO3bE9evXsWnTJsTHx2PFihWoWrWquodBREQ6Tu2J8PHx8Wjbtm2hcisrK6Smpqq1rQULFiAoKAiDBg0CACxfvhw7d+7EqlWrMGnSpEL1V61ahZSUFBw9elRKvi4uLuoeAhERkfpngA4ODrhy5Uqh8sOHD6NmzZoqbycnJwenT5+Gt7f3f8Ho6cHb2xvHjh0rcp1t27bB09MTI0eOhL29Pd566y3Mnj2bUy+IiEhtap8BBgUFYezYsVi1ahVkMhlu376NY8eO4fPPP8eUKVNU3s6DBw+Qn58Pe3t7pXJ7e/tib6t27do17Nu3D/7+/ti1axeuXLmCTz/9FLm5uQgNDS1ynezsbOk6JaDepH4iInpzqZ0AJ02aBIVCgffeew9ZWVlo27Yt5HI5Pv/8c4wePVobMUoUCgXs7Ozw008/QV9fHx4eHrh16xbmz59fbAKcM2cOpk+frtW4iIio4lG7C1Qmk2Hy5MlISUnB+fPncfz4cdy/fx8zZ85Uazu2trbQ19fH3bt3lcrv3r0LBweHItdxdHREnTp1oK+vL5XVr18fycnJyMnJKXKdkJAQpKWlSa+kpCS14iQiojdTqW+GbWRkBAsLCzg6OsLc3LxU63t4eCAyMlIqUygUiIyMhKenZ5HrtG7dGleuXFF6GsWlS5fg6OgIIyOjIteRy+WwtLRUehEREamdAPPy8jBlyhRYWVnBxcUFLi4usLKywldffYXc3Fy1thUcHIwVK1Zg7dq1iIuLwyeffILMzExpVOjAgQMREhIi1f/kk0+QkpKCsWPH4tKlS9i5cydmz56NkSNHqnsYRESk49S+Bjh69Ghs3rwZ33zzjXSmduzYMUybNg0PHz7EsmXLVN6Wn58f7t+/j6lTpyI5ORnu7u4IDw+XBsYkJiZCT++/HO3s7Iw9e/Zg/PjxaNy4MapWrYqxY8di4sSJ6h4GERHpOLWfCG9lZYWwsDB06tRJqXzXrl3o168f0tLSNBqgpvGJ8EREFZumvsfV7gKVy+VFTj53dXUt9jocERHR60btBDhq1CjMnDlTaW5ddnY2Zs2ahVGjRmk0OCIiIm1R6RrgRx99pPR+7969qFatGpo0aQIAOHPmDHJycvDee+9pPkIiIiItUCkBWllZKb3v2bOn0ntnZ2fNRURERFQGVEqAq1ev1nYcREREZarUE+GJiIgqMrXnAQLApk2bsHHjRiQmJha6BZm6zwQkIiIqD2qfAf7www8YNGgQ7O3t8e+//6JFixaoXLkyrl27VmhuIBER0etK7QS4dOlS/PTTT1i8eDGMjIwwYcIEREREYMyYMa/9JHgiIqICaifAxMREeHl5AQBMTEzw+PFjAMCAAQPw+++/azY6IiIiLSnVE+FTUlIAANWrV8fx48cBAAkJCVDzrmpERETlRu0E2KFDB2zbtg0AMGjQIIwfPx4dO3aEn58fevToofEAiYiItEHtm2ErFAooFAoYGDwbQBoWFoajR4/Czc0Nw4cPf+3vB8qbYRMRVWya+h5XOwFWdEyAREQVm6a+x1WaB3j27FmVN9i4ceNSB0NERFRWVEqA7u7ukMlkLx3kIpPJkJ+fr5HAiIiItEmlBJiQkKDtOIiIiMqUSgmwRo0a2o6DiIioTPFm2EREpJOYAImISCcxARIRkU5iAiQiIp1UqgSYmpqKn3/+GSEhIdJ9QaOjo3Hr1i2NBkdERKQtaj8Q9+zZs/D29oaVlRWuX7+OoKAgVKpUCZs3b0ZiYiJ++eUXbcRJRESkUWqfAQYHByMwMBCXL1+GsbGxVN65c2ccPHhQo8ERERFpi9oJ8J9//sHw4cMLlVetWhXJyckaCYqIiEjb1E6Acrkc6enphcovXbqEKlWqaCQoIiIibVM7AXbt2hUzZsxAbm4ugGf3/0xMTMTEiRPRs2dPjQdIRESkDWonwO+++w4ZGRmws7PDkydP0K5dO9SuXRsWFhaYNWuWNmIkIiLSOLVHgVpZWSEiIgKHDx/G2bNnkZGRgWbNmsHb21sb8REREWmF2g/ETUpKgrOzs7bi0To+EJeIqGLT1Pe42l2gLi4uaNeuHVasWIFHjx6VesdERETlSe0EeOrUKbRo0QIzZsyAo6Mjunfvjk2bNiE7O1sb8REREWmF2gmwadOmmD9/PhITE7F7925UqVIFw4YNg729PQYPHqyNGImIiDRO7WuARYmOjsaQIUNw9uxZ5OfnayIureE1QCKiiq3crgEWuHnzJr755hu4u7ujRYsWMDc3x5IlS0odCBERUVlSexrE//73P/z22284cuQI6tWrB39/f2zduhU1atTQRnxERERaoXYC/Prrr9GvXz/88MMPaNKkiTZiIiIi0jq1E2BiYiJkMpk2YiEiIiozKiXAs2fP4q233oKenh7OnTtXYt3GjRtrJDAiIiJtUikBuru7Izk5GXZ2dnB3d4dMJsPzg0cL3stkstd+FCgRERGgYgJMSEiQHnWUkJCg1YCIiIjKgkoJ8PkRnjdu3ICXlxcMDJRXzcvLw9GjRzkalIiIKgS15wG+++67SElJKVSelpaGd999VyNBERERaZvaCbDgWt+LHj58CDMzM40ERUREpG0qT4P46KOPADwb8BIYGAi5XC4ty8/Px9mzZ+Hl5aX5CImIiLRA5QRoZWUF4NkZoIWFBUxMTKRlRkZGaNWqFYKCgjQfIRERkRaonABXr14N4NnzAD///HN2dxIRUYWmkadBVCR8GgQRUcWmqe9xlc4AmzVrhsjISNjY2KBp06Yl3gotOjq61MEQERGVFZUSYLdu3aRBL927d9dmPERERGWCXaBERFShlNsDcZOSknDz5k3p/cmTJzFu3Dj89NNPpQ6CiIiorKmdAPv374+oqCgAQHJyMry9vXHy5ElMnjwZM2bM0HiARERE2qB2Ajx//jxatGgBANi4cSMaNWqEo0ePYv369VizZo2m4yMiItIKtRNgbm6uNCBm79696Nq1KwCgXr16uHPnjmajIyIi0hK1E2DDhg2xfPlyHDp0CBEREfjggw8AALdv30blypU1HiAREZE2qJ0A582bh//9739o3749+vXrhyZNmgAAtm3bJnWNEhERve5KNQ0iPz8f6enpsLGxkcquX78OU1NT2NnZaTRATeM0CCKiiq1M7wTzIn19feTl5eHw4cMAgLp168LFxaXUQRAREZU1tbtAMzMzMXjwYDg6OqJt27Zo27YtnJycMGTIEGRlZWkjRiIiIo1TOwEGBwfjwIED2L59O1JTU5GamoqtW7fiwIED+Oyzz7QRIxERkcapnQD//PNPrFy5Ep06dYKlpSUsLS3RuXNnrFixAps2bSpVEEuWLIGLiwuMjY3RsmVLnDx5UqX1wsLCIJPJeH9SIiJSm9oJMCsrC/b29oXK7ezsStUFumHDBgQHByM0NBTR0dFo0qQJfHx8cO/evRLXu379Oj7//HO0adNG7X0SERGpnQA9PT0RGhqKp0+fSmVPnjzB9OnT4enpqXYACxYsQFBQEAYNGoQGDRpg+fLlMDU1xapVq4pdJz8/H/7+/pg+fTpq1qyp9j6JiIjUHgW6cOFC+Pj4oFq1atIcwDNnzsDY2Bh79uxRa1s5OTk4ffo0QkJCpDI9PT14e3vj2LFjxa43Y8YM2NnZYciQITh06FCJ+8jOzkZ2drb0Pj09Xa0YiYjozaR2AmzUqBGuXLmC3377DXFxcQCAfv36wd/fHyYmJmpt68GDB8jPzy/UpWpvb4+LFy8Wuc7hw4excuVKxMTEqLSPOXPmYPr06WrFRUREbz61EuDx48exfft25OTkoEOHDhg6dKi24irS48ePMWDAAKxYsQK2trYqrRMSEoLg4GDpfXp6OpydnbUVIhERVRAqJ8BNmzbBz88PJiYmMDQ0xIIFCzBv3jx8/vnnpd65ra0t9PX1cffuXaXyu3fvwsHBoVD9q1ev4vr16/D19ZXKFAoFAMDAwADx8fGoVauW0jpyuVy6eTcREVEBlQfBzJkzB0FBQUhLS8OjR4/w9ddfY/bs2a+0cyMjI3h4eCAyMlIqUygUiIyMLHJATb169XDu3DnExMRIr65du+Ldd99FTEwMz+yIiEhlKp8BxsfHY8OGDdDX1wcAfPbZZ5g6dSru3bv3Svf/DA4ORkBAAJo3b44WLVpg4cKFyMzMxKBBgwAAAwcORNWqVTFnzhwYGxvjrbfeUlrf2toaAAqVExERlUTlBJiVlaV001EjIyMYGxsjIyPjlRKgn58f7t+/j6lTpyI5ORnu7u4IDw+XBsYkJiZCT0/t2RpEREQlUvlpEHp6evj6669hbm4ulU2cOBFffPGF0oCUMWPGaD5KDeLTIIiIKjZNfY+rnABdXFwgk8lK3phMhmvXrpU6mLLABEhEVLGV+eOQrl+/XuqdEBERvW54cY2IiHSSSgkwLCxM5Q0mJSXhyJEjpQ6IiIioLKiUAJctW4b69evjm2++kW5/9ry0tDTs2rUL/fv3R7NmzfDw4UONB0pERKRJKl0DPHDgALZt24bFixcjJCQEZmZmsLe3h7GxMR49eoTk5GTY2toiMDAQ58+fL/JxSURERK8TlUeBFnjw4AEOHz6MGzdu4MmTJ7C1tUXTpk3RtGnTCjFfj6NAiYgqtjIfBVrA1taWT2AnIqIK7/U/ZSMiItICJkAiItJJTIBERKSTmACJiEgnMQESEZFOUnsUaH5+PtasWYPIyEjcu3dPeiJ7gX379mksOCIiIm1ROwGOHTsWa9asQZcuXfDWW2+99AkRREREryO1E2BYWBg2btyIzp07ayMeIiKiMqH2NUAjIyPUrl1bG7EQERGVGbUT4GeffYZFixZBzTuoERERvVbU7gI9fPgwoqKisHv3bjRs2BCGhoZKyzdv3qyx4IiIiLRF7QRobW2NHj16aCMWIiKiMqN2Aly9erU24iAiIipTaifAAvfv30d8fDwAoG7duqhSpYrGgiIiItI2tQfBZGZmYvDgwXB0dETbtm3Rtm1bODk5YciQIcjKytJGjERERBqndgIMDg7GgQMHsH37dqSmpiI1NRVbt27FgQMH8Nlnn2kjRiIiIo1T+4nwtra22LRpE9q3b69UHhUVhT59+uD+/fuajE/j+ER4IqKKTVPf42qfAWZlZcHe3r5QuZ2dHbtAiYiowlA7AXp6eiI0NBRPnz6Vyp48eYLp06fD09NTo8ERERFpi9qjQBctWgQfHx9Uq1YNTZo0AQCcOXMGxsbG2LNnj8YDJCIi0ga1rwECz7pB169fj4sXLwIA6tevD39/f5iYmGg8QE3jNUAioopNU9/jpZoHaGpqiqCgoFLvlIiIqLyplAC3bduGTp06wdDQENu2bSuxbteuXTUSGBERkTap1AWqp6eH5ORk2NnZQU+v+HEzMpkM+fn5Gg1Q09gFSkRUsZVpF6hCoSjyZyIioopK7WkQRUlNTdXEZoiIiMqM2glw3rx52LBhg/S+d+/eqFSpEqpWrYozZ85oNDgiIiJtUTsBLl++HM7OzgCAiIgI7N27F+Hh4ejUqRO++OILjQdIRESkDWpPg0hOTpYS4I4dO9CnTx+8//77cHFxQcuWLTUeIBERkTaofQZoY2ODpKQkAEB4eDi8vb0BAEKI134EKBERUQG1zwA/+ugj9O/fH25ubnj48CE6deoEAPj3339Ru3ZtjQdIRESkDWonwO+//x4uLi5ISkrCN998A3NzcwDAnTt38Omnn2o8QCIiIm0o1b1AKzJOhCciqtjKdCI8b4VGRERvGt4KjYiIKhTeCo2IiOgVaORWaERERBWN2glwzJgx+OGHHwqV//jjjxg3bpwmYiIiItI6tRPgn3/+idatWxcq9/LywqZNmzQSFBERkbapnQAfPnwIKyurQuWWlpZ48OCBRoIiIiLSNrUTYO3atREeHl6ofPfu3ahZs6ZGgiIiItI2te8EExwcjFGjRuH+/fvo0KEDACAyMhLfffcdFi5cqOn4iIiItELtBDh48GBkZ2dj1qxZmDlzJgDAxcUFy5Ytw8CBAzUeIBERkTa80q3Q7t+/DxMTE+l+oBUBJ8ITEVVsmvoeL9U8wLy8POzduxebN29GQf68ffs2MjIySh0IERFRWVK7C/TGjRv44IMPkJiYiOzsbHTs2BEWFhaYN28esrOzsXz5cm3ESUREpFFqnwGOHTsWzZs3x6NHj2BiYiKV9+jRA5GRkRoNjoiISFvUPgM8dOgQjh49CiMjI6VyFxcX3Lp1S2OBERERaZPaZ4AKhaLIJz7cvHkTFhYWGgmKiIhI29ROgO+//77SfD+ZTIaMjAyEhoaic+fOmoyNiIhIa9SeBpGUlIQPPvgAQghcvnwZzZs3x+XLl2Fra4uDBw/Czs5OW7FqBKdBEBFVbJr6Hi/VPMC8vDxs2LABZ86cQUZGBpo1awZ/f3+lQTGvKyZAIqKKrVwSYG5uLurVq4cdO3agfv36pd5peWICJCKq2MplIryhoSGePn1a6p0VZ8mSJXBxcYGxsTFatmyJkydPFlt3xYoVaNOmDWxsbGBjYwNvb+8S6xMRERVF7UEwI0eOxLx585CXl6eRADZs2IDg4GCEhoYiOjoaTZo0gY+PD+7du1dk/f3796Nfv36IiorCsWPH4OzsjPfff59TMIiISC1qXwMsmPBubm6ORo0awczMTGn55s2b1QqgZcuWePvtt/Hjjz8CeDbNwtnZGaNHj8akSZNeun5+fj5sbGzw448/qnQzbnaBEhFVbJr6Hld7Iry1tTV69uxZ6h0+LycnB6dPn0ZISIhUpqenB29vbxw7dkylbWRlZSE3NxeVKlXSSExERKQb1E6Aq1ev1tjOHzx4gPz8fNjb2yuV29vb4+LFiyptY+LEiXBycoK3t3eRy7Ozs5GdnS29T09PL33ARET0xlD5GqBCocC8efPQunVrvP3225g0aRKePHmizdheau7cuQgLC8OWLVtgbGxcZJ05c+bAyspKejk7O5dxlERE9DpSOQHOmjULX375JczNzVG1alUsWrQII0eOfKWd29raQl9fH3fv3lUqv3v3LhwcHEpc99tvv8XcuXPx999/o3HjxsXWCwkJQVpamvRKSkp6pZiJiOjNoHIC/OWXX7B06VLs2bMHf/31F7Zv347169dDoVCUeudGRkbw8PBQeoqEQqFAZGQkPD09i13vm2++wcyZMxEeHo7mzZuXuA+5XA5LS0ulFxERkcoJMDExUelen97e3pDJZLh9+/YrBRAcHIwVK1Zg7dq1iIuLwyeffILMzEwMGjQIADBw4EClQTLz5s3DlClTsGrVKri4uCA5ORnJycl8GC8REalF5UEweXl5ha6zGRoaIjc395UC8PPzw/379zF16lQkJyfD3d0d4eHh0sCYxMRE6On9l6eXLVuGnJwc9OrVS2k7oaGhmDZt2ivFQkREukPleYB6enro1KkT5HK5VLZ9+3Z06NBBaS6guvMAyxrnARIRVWxlPg8wICCgUNnHH39c6h0TERGVJ5UToCbn/xEREZU3te8FSkRE9CZgAiQiIp3EBEhERDqJCZCIiHQSEyAREekkJkAiItJJTIBERKSTmACJiEgnMQESEZFOYgIkIiKdxARIREQ6iQmQiIh0EhMgERHpJCZAIiLSSUyARESkk5gAiYhIJzEBEhGRTmICJCIincQESEREOokJkIiIdBITIBER6SQmQCIi0klMgEREpJOYAImISCcxARIRkU5iAiQiIp3EBEhERDqJCZCIiHQSEyAREekkJkAiItJJTIBERKSTmACJiEgnMQESEZFOYgIkIiKdxARIREQ6yaC8A3gdCSGQl5eH/Pz88g6FqFzp6+vDwMAAMpmsvEMh0jgmwBfk5OTgzp07yMrKKu9QiF4LpqamcHR0hJGRUXmHQqRRTIDPUSgUSEhIgL6+PpycnGBkZMT/fElnCSGQk5OD+/fvIyEhAW5ubtDT41UTenMwAT4nJycHCoUCzs7OMDU1Le9wiMqdiYkJDA0NcePGDeTk5MDY2Li8QyLSGP47VwT+l0v0H/490JuKn2wiItJJTIBERKSTmAB1jEwmw19//aX1/ezfvx8ymQypqalS2V9//YXatWtDX18f48aNw5o1a2Btba21GOLj4+Hg4IDHjx9rbR8VXXh4ONzd3aFQKMo7FKIyxwT4BklOTsbo0aNRs2ZNyOVyODs7w9fXF5GRkWUei5eXF+7cuQMrKyupbPjw4ejVqxeSkpIwc+ZM+Pn54dKlS1qLISQkBKNHj4aFhUWhZfXq1YNcLkdycnKhZe3bt4dMJoNMJoOxsTEaNGiApUuXai1OAJg1axa8vLxgamqq8j8FQghMnToVjo6OMDExgbe3Ny5fvqxUJyUlBf7+/rC0tIS1tTWGDBmCjIwMafkHH3wAQ0NDrF+/XpOHQ1QhMAG+Ia5fvw4PDw/s27cP8+fPx7lz5xAeHo53330XI0eOLPN4jIyM4ODgIE0jycjIwL179+Dj4wMnJydYWFjAxMQEdnZ2r7Sf3NzcIssTExOxY8cOBAYGFlp2+PBhPHnyBL169cLatWuLXD8oKAh37txBbGws+vTpg5EjR+L3339/pVhLkpOTg969e+OTTz5ReZ1vvvkGP/zwA5YvX44TJ07AzMwMPj4+ePr0qVTH398fFy5cQEREBHbs2IGDBw9i2LBhStsJDAzEDz/8oLFjIaowhI5JS0sTAERaWlqhZU+ePBGxsbHiyZMnUplCoRCZ2bnl8lIoFCofV6dOnUTVqlVFRkZGoWWPHj2SfgYgtmzZIr2fMGGCcHNzEyYmJsLV1VV89dVXIicnR1oeExMj2rdvL8zNzYWFhYVo1qyZ+Oeff4QQQly/fl18+OGHwtraWpiamooGDRqInTt3CiGEiIqKEgDEo0ePpJ+ff0VFRYnVq1cLKysrpVj/+usv0bRpUyGXy4Wrq6uYNm2ayM3NVYp/6dKlwtfXV5iamorQ0NAi22P+/PmiefPmRS4LDAwUkyZNErt37xZ16tQptLxdu3Zi7NixSmVubm6ib9++RW5Pk4pqk6IoFArh4OAg5s+fL5WlpqYKuVwufv/9dyGEELGxsQKA9PsSQojdu3cLmUwmbt26JZXduHFDABBXrlwpcl9F/V0QlaeSvsfVwXmAL/EkNx8Npu4pl33HzvCBqdHLf0UpKSkIDw/HrFmzYGZmVmh5SV1qFhYWWLNmDZycnHDu3DkEBQXBwsICEyZMAPDsDKJp06ZYtmwZ9PX1ERMTA0NDQwDAyJEjkZOTg4MHD8LMzAyxsbEwNzcvtA8vLy/Ex8ejbt26+PPPP+Hl5YVKlSrh+vXrSvUOHTqEgQMH4ocffkCbNm1w9epV6WwlNDRUqjdt2jTMnTsXCxcuhIFB0e1z6NAhNG/evFD548eP8ccff+DEiROoV68e0tLScOjQIbRp06bYNgKezYfLyckpdnnDhg1x48aNYpe3adMGu3fvLnEf6khISEBycjK8vb2lMisrK7Rs2RLHjh1D3759cezYMVhbWyu1g7e3N/T09HDixAn06NEDAFC9enXY29vj0KFDqFWrlsZiJHrdMQG+Aa5cuQIhBOrVq6f2ul999ZX0s4uLCz7//HOEhYVJCTAxMRFffPGFtG03NzepfmJiInr27IlGjRoBAGrWrFnkPoyMjKSuzkqVKsHBwaHIetOnT8ekSZMQEBAgbW/mzJmYMGGCUgLs378/Bg0aVOJx3bhxo8gEGBYWBjc3NzRs2BAA0LdvX6xcubLYBJifn4/ff/8dZ8+eLdR1+Lxdu3YV2x0LPEugmlRw7dLe3l6p3N7eXlqWnJxcqIvZwMAAlSpVKnTt08nJqcQETvQmYgJ8CRNDfcTO8Cm3fatCCFHqfWzYsAE//PADrl69ioyMDOTl5cHS0lJaHhwcjKFDh2LdunXw9vZG7969pbOEMWPG4JNPPsHff/8Nb29v9OzZE40bNy51LGfOnMGRI0cwa9YsqSw/Px9Pnz5FVlaWdHeeohLbi548eVLkXUtWrVqFjz/+WHr/8ccfo127dli8eLHSYJmlS5fi559/Rk5ODvT19TF+/PgSr8/VqFFDpWN8XZmYmPD+t6RzOAjmJWQyGUyNDMrlpep9SN3c3CCTyXDx4kW1ju3YsWPw9/dH586dsWPHDvz777+YPHmyUlfftGnTcOHCBXTp0gX79u1DgwYNsGXLFgDA0KFDce3aNQwYMADnzp1D8+bNsXjxYrVieF5GRgamT5+OmJgY6XXu3DlcvnxZKZkV1c37IltbWzx69EipLDY2FsePH8eECRNgYGAAAwMDtGrVCllZWQgLC1Oq6+/vj5iYGCQkJCAzMxMLFiwo8Y4oDRs2hLm5ebGvTp06qdkaJSs4i757965S+d27d6VlDg4OuHfvntLyvLw8pKSkFDoLT0lJQZUqVTQaI9HrjmeAb4BKlSrBx8cHS5YswZgxYwoliNTU1CKvAx49ehQ1atTA5MmTpbKiusHq1KmDOnXqYPz48ejXrx9Wr14tXT9ydnbGiBEjMGLECISEhGDFihUYPXp0qY6jWbNmiI+PR+3atUu1/vOaNm2K2NhYpbKVK1eibdu2WLJkiVL56tWrsXLlSgQFBUllVlZWasVR1l2grq6ucHBwQGRkJNzd3QEA6enpOHHihHSm6unpidTUVJw+fRoeHh4AgH379kGhUKBly5bStp4+fYqrV6+iadOmGo2R6HXHBPiGWLJkCVq3bo0WLVpgxowZaNy4MfLy8hAREYFly5YhLi6u0Dpubm5ITExEWFgY3n77bezcuVM6uwOedSN+8cUX6NWrF1xdXXHz5k38888/6NmzJwBg3Lhx6NSpE+rUqYNHjx4hKioK9evXL/UxTJ06FR9++CGqV6+OXr16QU9PD2fOnMH58+fx9ddfq7UtHx8fDB06FPn5+dDX10dubi7WrVuHGTNm4K233lKqO3ToUCxYsAAXLlyQrg2q61W7QBMTE5GSkoLExETk5+cjJiYGAFC7dm1pYFG9evUwZ84c9OjRAzKZDOPGjcPXX38NNzc3uLq6YsqUKXByckL37t0BAPXr18cHH3yAoKAgLF++HLm5uRg1ahT69u0LJycnad/Hjx+HXC6Hp6fnKx0DUYWjkTGpFYi60yAqktu3b4uRI0eKGjVqCCMjI1G1alXRtWtXERUVJdXBC9MgvvjiC1G5cmVhbm4u/Pz8xPfffy8Nw8/OzhZ9+/YVzs7OwsjISDg5OYlRo0ZJ7TNq1ChRq1YtIZfLRZUqVcSAAQPEgwcPhBDK0yCEeDYVA/8//aFAUUP+w8PDhZeXlzAxMRGWlpaiRYsW4qeffio2/uLk5uYKJycnER4eLoQQYtOmTUJPT08kJycXWb9+/fpi/PjxQoiip0FoW0BAQKGpIi+2FwCxevVq6b1CoRBTpkwR9vb2Qi6Xi/fee0/Ex8crbffhw4eiX79+wtzcXFhaWopBgwaJx48fK9UZNmyYGD58eLGxVfS/C3rzaGoahEyIVxhBUQGlp6fDysoKaWlpSoM9gGddQQkJCXB1deVjX94AS5YswbZt27BnT/lMY6kIHjx4gLp16+LUqVNwdXUtsg7/Luh1U9L3uDrYBUpvrOHDhyM1NRWPHz8u8nZo9OwOQkuXLi02+RG9yZgA6Y1lYGCgNMCHCmvevLlK00qI3kScBkFERDqJCZCIiHQSE2ARdGxcEFGJ+PdAbyomwOcU3OSZt4Qi+k/B30PB3wfRm+K1GASzZMkSzJ8/H8nJyWjSpAkWL16MFi1aFFv/jz/+wJQpU3D9+nW4ublh3rx56Ny58yvHoa+vD2tra+n2UaampirfjozoTSOEQFZWFu7duwdra2vo66t2b1qiiqLcE+CGDRsQHByM5cuXo2XLlli4cCF8fHwQHx9f5MNSjx49in79+mHOnDn48MMP8dtvv6F79+6Ijo4udIeP0ii4R+KL91Ak0lXW1tbFPsGDqCIr94nwLVu2xNtvv40ff/wRAKBQKODs7IzRo0dj0qRJher7+fkhMzMTO3bskMpatWoFd3d3LF++/KX7U3UCZX5+fon3diTSBYaGhjzzo9fOGzERPicnB6dPn0ZISIhUpqenB29vbxw7dqzIdY4dO4bg4GClMh8fH/z1119F1s/OzkZ2drb0Pj09XaXY9PX1+YdPRPQGK9dBMA8ePEB+fn6JD/V8UXJyslr158yZAysrK+nl7OysmeCJiKhCe+NHgYaEhCAtLU16JSUllXdIRET0GijXLlBbW1vo6+uX+FDPFzk4OKhVXy6XQy6XayZgIiJ6Y5RrAjQyMoKHhwciIyOlZ5gpFApERkZi1KhRRa7j6emJyMhIjBs3TiqLiIhQ+VlmBWN+VL0WSEREr5eC7+9XHsP5ak9lenVhYWFCLpeLNWvWiNjYWDFs2DBhbW0tPbdtwIABYtKkSVL9I0eOCAMDA/Htt9+KuLg4ERoaKgwNDcW5c+dU2l9SUlKRz13jiy+++OKrYr2SkpJeKf+U+zxAPz8/3L9/H1OnTkVycjLc3d0RHh4uDXRJTEyEnt5/lyq9vLzw22+/4auvvsKXX34JNzc3/PXXXyrPAXRyckJSUhIsLCwgk8mQnp4OZ2dnJCUlvdJw2jcV2+fl2EYlY/u8HNuoZC+2jxACjx8/hpOT0yttt9znAZY3Tc0neVOxfV6ObVQyts/LsY1Kpq32eeNHgRIRERWFCZCIiHSSzidAuVyO0NBQTpUoBtvn5dhGJWP7vBzbqGTaah+dvwZIRES6SefPAImISDcxARIRkU5iAiQiIp3EBEhERDpJJxLgkiVL4OLiAmNjY7Rs2RInT54ssf4ff/yBevXqwdjYGI0aNcKuXbvKKNLyoU77rFixAm3atIGNjQ1sbGzg7e390vZ8E6j7GSoQFhYGmUwm3ev2TaVu+6SmpmLkyJFwdHSEXC5HnTp1+Hf2goULF6Ju3bowMTGBs7Mzxo8fj6dPn5ZRtGXr4MGD8PX1hZOTE2QyWbHPd33e/v370axZM8jlctSuXRtr1qxRf8evdCO1CiAsLEwYGRmJVatWiQsXLoigoCBhbW0t7t69W2T9I0eOCH19ffHNN9+I2NhY8dVXX6l1r9GKRt326d+/v1iyZIn4999/RVxcnAgMDBRWVlbi5s2bZRx52VG3jQokJCSIqlWrijZt2ohu3bqVTbDlQN32yc7OFs2bNxedO3cWhw8fFgkJCWL//v0iJiamjCMvO+q20fr164VcLhfr168XCQkJYs+ePcLR0VGMHz++jCMvG7t27RKTJ08WmzdvFgDEli1bSqx/7do1YWpqKoKDg0VsbKxYvHix0NfXF+Hh4Wrt941PgC1atBAjR46U3ufn5wsnJycxZ86cIuv36dNHdOnSRamsZcuWYvjw4VqNs7yo2z4vysvLExYWFmLt2rXaCrHclaaN8vLyhJeXl/j5559FQEDAG50A1W2fZcuWiZo1a4qcnJyyCrHcqdtGI0eOFB06dFAqCw4OFq1bt9ZqnK8DVRLghAkTRMOGDZXK/Pz8hI+Pj1r7eqO7QHNycnD69Gl4e3tLZXp6evD29saxY8eKXOfYsWNK9QHAx8en2PoVWWna50VZWVnIzc1FpUqVtBVmuSptG82YMQN2dnYYMmRIWYRZbkrTPtu2bYOnpydGjhwJe3t7vPXWW5g9ezby8/PLKuwyVZo28vLywunTp6Vu0mvXrmHXrl3o3LlzmcT8utPU93S5Pw1Cmx48eID8/HzpyRIF7O3tcfHixSLXSU5OLrJ+cnKy1uIsL6VpnxdNnDgRTk5OhT6Mb4rStNHhw4excuVKxMTElEGE5as07XPt2jXs27cP/v7+2LVrF65cuYJPP/0Uubm5CA0NLYuwy1Rp2qh///548OAB3nnnHQghkJeXhxEjRuDLL78si5Bfe8V9T6enp+PJkycwMTFRaTtv9BkgadfcuXMRFhaGLVu2wNjYuLzDeS08fvwYAwYMwIoVK2Bra1ve4byWFAoF7Ozs8NNPP8HDwwN+fn6YPHkyli9fXt6hvTb279+P2bNnY+nSpYiOjsbmzZuxc+dOzJw5s7xDe6O80WeAtra20NfXx927d5XK7969CwcHhyLXcXBwUKt+RVaa9inw7bffYu7cudi7dy8aN26szTDLlbptdPXqVVy/fh2+vr5SmUKhAAAYGBggPj4etWrV0m7QZag0nyFHR0cYGhpCX19fKqtfvz6Sk5ORk5MDIyMjrcZc1krTRlOmTMGAAQMwdOhQAECjRo2QmZmJYcOGYfLkyUrPSNVFxX1PW1paqnz2B7zhZ4BGRkbw8PBAZGSkVKZQKBAZGQlPT88i1/H09FSqDwARERHF1q/IStM+APDNN99g5syZCA8PR/Pmzcsi1HKjbhvVq1cP586dQ0xMjPTq2rUr3n33XcTExMDZ2bksw9e60nyGWrdujStXrkj/GADApUuX4Ojo+MYlP6B0bZSVlVUoyRX8wyB4+2bNfU+rNz6n4gkLCxNyuVysWbNGxMbGimHDhglra2uRnJwshBBiwIABYtKkSVL9I0eOCAMDA/Htt9+KuLg4ERoa+sZPg1CnfebOnSuMjIzEpk2bxJ07d6TX48ePy+sQtE7dNnrRmz4KVN32SUxMFBYWFmLUqFEiPj5e7NixQ9jZ2Ymvv/66vA5B69Rto9DQUGFhYSF+//13ce3aNfH333+LWrVqiT59+pTXIWjV48ePxb///iv+/fdfAUAsWLBA/Pvvv+LGjRtCCCEmTZokBgwYINUvmAbxxRdfiLi4OLFkyRJOgyjO4sWLRfXq1YWRkZFo0aKFOH78uLSsXbt2IiAgQKn+xo0bRZ06dYSRkZFo2LCh2LlzZxlHXLbUaZ8aNWoIAIVeoaGhZR94GVL3M/S8Nz0BCqF++xw9elS0bNlSyOVyUbNmTTFr1iyRl5dXxlGXLXXaKDc3V0ybNk3UqlVLGBsbC2dnZ/Hpp5+KR48elX3gZSAqKqrI75WCNgkICBDt2rUrtI67u7swMjISNWvWFKtXr1Z7v3wcEhER6aQ3+hogERFRcZgAiYhIJzEBEhGRTmICJCIincQESEREOokJkIiIdBITIBER6SQmQKqwnn9y9PXr1yGTyV76BIb4+Hg4ODjg8ePH2g8QgIuLCxYuXFhinWnTpsHd3V2rcZRmH6o+mbskgYGB6N69+yttQ9P2798PmUyG1NTUEuup8rtTR2xsLKpVq4bMzEyNbZNeDRMgqS0wMBAymQwymQyGhoZwdXXFhAkT8PTp0/IO7aVCQkIwevRoWFhYAPjvy7DgZW9vj549e+LatWsa2d8///yDYcOGSe+LSiqff/55ofsakvZ4eXnhzp07sLKyAgCsWbMG1tbWheq9+Lt7VQ0aNECrVq2wYMECjW2TXg0TIJXKBx98gDt37uDatWv4/vvv8b///e+1f5ZbYmIiduzYgcDAwELL4uPjcfv2bfzxxx+4cOECfH19NfKA1ipVqsDU1LTEOubm5qhcufIr74tUY2RkBAcHB8hkshLrqfK7U9egQYOwbNky5OXlaXS7VDpMgFQqcrkcDg4OcHZ2Rvfu3eHt7Y2IiAhpuUKhwJw5c+Dq6goTExM0adIEmzZtUtrGhQsX8OGHH8LS0hIWFhZo06YNrl69CuDZf98dO3aEra0trKys0K5dO0RHR79SzBs3bkSTJk1QtWrVQsvs7Ozg6OiItm3bYurUqYiNjcWVK1cAAMuWLUOtWrVgZGSEunXrYt26ddJ6QghMmzYN1atXh1wuh5OTE8aMGSMtf74bzcXFBQDQo0cPyGQy6f3z3ZN///03jI2NC3XPjR07Fh06dJDeHz58GG3atIGJiQmcnZ0xZswYtbrWVG3fO3fuoFOnTjAxMUHNmjUL/Q6TkpLQp08fWFtbo1KlSujWrRuuX7+uchxFad++PUaNGoVRo0bBysoKtra2mDJlitJTEB49eoSBAwfCxsYGpqam6NSpEy5fviwtv3HjBnx9fWFjYwMzMzM0bNgQu3btAqDcBbp//34MGjQIaWlpUi/AtGnTACj/7vr37w8/Pz+lOHNzc2Fra4tffvkFgGqf+Y4dOyIlJQUHDhx4pTYizWACpFd2/vx5HD16VOlRNnPmzMEvv/yC5cuX48KFCxg/fjw+/vhj6Q//1q1baNu2LeRyOfbt24fTp09j8ODB0n/Gjx8/RkBAAA4fPozjx4/Dzc0NnTt3fqVrd4cOHVLp8U0FzxPLycnBli1bMHbsWHz22Wc4f/48hg8fjkGDBiEqKgoA8Oeff0pnwJcvX8Zff/2FRo0aFbndf/75BwCwevVq3LlzR3r/vPfeew/W1tb4888/pbL8/Hxs2LAB/v7+AJ49c/CDDz5Az549cfbsWWzYsAGHDx/GqFGjVG4LVdt3ypQp6NmzJ86cOQN/f3/07dsXcXFxAJ4lAB8fH1hYWODQoUM4cuQIzM3N8cEHHyAnJ6fI/a5Zs+alZ14AsHbtWhgYGODkyZNYtGgRFixYgJ9//llaHhgYiFOnTmHbtm04duwYhBDo3LkzcnNzAQAjR45EdnY2Dh48iHPnzmHevHkwNzcvtB8vLy8sXLgQlpaWuHPnDu7cuYPPP/+8UD1/f39s374dGRkZUtmePXuQlZWFHj16AHj5Zx54dvbp7u6OQ4cOvbQNqAy80i28SScFBAQIfX19YWZmJuRyuQAg9PT0xKZNm4QQQjx9+lSYmpqKo0ePKq03ZMgQ0a9fPyGEECEhIcLV1VXk5OSotM/8/HxhYWEhtm/fLpUBEFu2bBFCCJGQkCAAiH///bfYbTRp0kTMmDFDqazgLvQFd9m/ffu28PLyElWrVhXZ2dnCy8tLBAUFKa3Tu3dv0blzZyGEEN99952oU6dOscdRo0YN8f333xcZc4HQ0FDRpEkT6f3YsWNFhw4dpPd79uwRcrlcinHIkCFi2LBhSts4dOiQ0NPTE0+ePCkyjhf38aLi2nfEiBFK9Vq2bCk++eQTIYQQ69atE3Xr1hUKhUJanp2dLUxMTMSePXuEEIWfhLF582ZRt27dYuMQ4tmTEerXr6+03YkTJ4r69esLIYS4dOmSACCOHDkiLX/w4IEwMTERGzduFEII0ahRIzFt2rQit//i73z16tXCysqqUL3nf3e5ubnC1tZW/PLLL9Lyfv36CT8/PyGEap/5Aj169BCBgYEltgGVDZ4BUqkUPOD1xIkTCAgIwKBBg9CzZ08AwJUrV5CVlYWOHTvC3Nxcev3yyy9SF2dMTAzatGkDQ0PDIrd/9+5dBAUFwc3NDVZWVrC0tERGRgYSExNLHfOTJ09gbGxc5LJq1arBzMwMTk5OyMzMxJ9//gkjIyPExcWhdevWSnVbt24tnQX17t0bT548Qc2aNREUFIQtW7a88vUdf39/7N+/H7dv3wYArF+/Hl26dJEGapw5cwZr1qxRalsfHx8oFAokJCSotA9V2/fFB4x6enpKx37mzBlcuXIFFhYWUhyVKlXC06dPpd/zi3r06IGLFy++NL5WrVopnSl6enri8uXLyM/PR1xcHAwMDNCyZUtpeeXKlVG3bl0ptjFjxuDrr79G69atERoairNnz6rULsUxMDBAnz59sH79egBAZmYmtm7dKp2Vq/KZL2BiYoKsrKxXioc0w6C8A6CKyczMDLVr1wYArFq1Ck2aNMHKlSsxZMgQqZto586dha63yeVyAP91MxYnICAADx8+xKJFi1CjRg3I5XJ4enoW27WmCltbWzx69KjIZYcOHYKlpSXs7OykEaKqcHZ2Rnx8PPbu3YuIiAh8+umnmD9/Pg4cOFBscn+Zt99+G7Vq1UJYWBg++eQTbNmyBWvWrJGWZ2RkYPjw4UrXGgtUr15dpX1oon0zMjLg4eEhJYXnValSReXtaMPQoUPh4+ODnTt34u+//8acOXPw3XffYfTo0aXepr+/P9q1a4d79+4hIiICJiYm+OCDDwBApc98gZSUFNSqVavUcZDmMAHSK9PT08OXX36J4OBg9O/fHw0aNIBcLkdiYiLatWtX5DqNGzfG2rVrkZubW2SiOHLkCJYuXYrOnTsDeDbY4sGDB68UZ9OmTREbG1vkMldX1yKHwtevXx9HjhxBQECAUmwNGjSQ3puYmMDX1xe+vr4YOXIk6tWrh3PnzqFZs2aFtmdoaKjS6FJ/f3+sX78e1apVg56eHrp06SIta9asGWJjY6V/QEpD1fY9fvw4Bg4cqPS+adOmUhwbNmyAnZ0dLC0tSx1LUU6cOFEoDjc3N+jr66N+/frIy8vDiRMn4OXlBQB4+PAh4uPjlX4vzs7OGDFiBEaMGIGQkBCsWLGiyARoZGSk0u/Ey8sLzs7O2LBhA3bv3o3evXtLn11VPvMFzp8/j169er10f6R97AIljejduzf09fWxZMkSWFhY4PPPP8f48eOxdu1aXL16FdHR0Vi8eDHWrl0LABg1ahTS09PRt29fnDp1CpcvX8a6desQHx8PAHBzc8O6desQFxeHEydOwN/f/6VnjS/j4+ODY8eOqTW94YsvvsCaNWuwbNkyXL58GQsWLMDmzZulgRJr1qzBypUrcf78eVy7dg2//vorTExMUKNGjSK35+LigsjISCQnJxd7Ngo8S4DR0dGYNWsWevXqpXQWMXHiRBw9ehSjRo1CTEwMLl++jK1bt6o1CEbV9v3jjz+watUqXLp0CaGhoTh58qS0H39/f9ja2qJbt244dOgQEhISsH//fowZMwY3b94scr9btmxBvXr1XhpfYmIigoODER8fj99//x2LFy/G2LFjpdi7deuGoKAgHD58GGfOnMHHH3+MqlWrolu3bgCAcePGYc+ePUhISEB0dDSioqJQv379Ivfl4uKCjIwMREZG4sGDByV2T/bv3x/Lly9HRESE1P0JQKXPPPDshg23bt2Ct7f3S9uAykB5X4SkiufFgQ0F5syZI6pUqSIyMjKEQqEQCxcuFHXr1hWGhoaiSpUqwsfHRxw4cECqf+bMGfH+++8LU1NTYWFhIdq0aSOuXr0qhBAiOjpaNG/eXBgbGws3Nzfxxx9/lDigRJVBMLm5ucLJyUmEh4dLZS8OiCjK0qVLRc2aNYWhoaGoU6eO0kCILVu2iJYtWwpLS0thZmYmWrVqJfbu3SstfzHmbdu2idq1awsDAwNRo0YNIUTxA1RatGghAIh9+/YVWnby5EnRsWNHYW5uLszMzETjxo3FrFmzij2GF/ehavsuWbJEdOzYUcjlcuHi4iI2bNigtN07d+6IgQMHCltbWyGXy0XNmjVFUFCQSEtLE0IU/qysXr1avOxrp127duLTTz8VI0aMEJaWlsLGxkZ8+eWXSoNiUlJSxIABA4SVlZUwMTERPj4+4tKlS9LyUaNGiVq1agm5XC6qVKkiBgwYIB48eCCEKPp3PmLECFG5cmUBQISGhgohCv/uhBAiNjZWABA1atRQikcIodJnfvbs2cLHx6fE46eyIxPiuck1RG+4JUuWYNu2bdizZ095h0LFaN++Pdzd3TV6G7LXQU5ODtzc3PDbb78VGlhF5YPXAEmnDB8+HKmpqXj8+LFag12IXlViYiK+/PJLJr/XCBMg6RQDAwNMnjy5vMMgHVS7du1XGrhEmscuUCIi0kkcBUpERDqJCZCIiHQSEyAREekkJkAiItJJTIBERKSTmACJiEgnMQESEZFOYgIkIiKdxARIREQ66f8A5t2UDr1/08UAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate_embeddings_approach(labels=['An Amazon review with a negative sentiment.', 'An Amazon review with a positive sentiment.'])\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Using the search embeddings and descriptive names leads to an additional improvement in performance."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" negative 0.76 0.96 0.85 136\n",
" positive 0.99 0.95 0.97 789\n",
"\n",
" accuracy 0.95 925\n",
" macro avg 0.88 0.96 0.91 925\n",
"weighted avg 0.96 0.95 0.95 925\n",
"\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate_embeddings_approach(labels=['An Amazon review with a negative sentiment.', 'An Amazon review with a positive sentiment.'])\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"As shown above, zero-shot classification with embeddings can lead to great results, especially when the labels are more descriptive than just simple words."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "openai",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.5"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "365536dcbde60510dc9073d6b991cd35db2d9bac356a11f5b64279a5e6708b97"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}