sprint-econtai/archive/data_enrichment.ipynb
Félix Dorn 43076bcbb1 old
2025-07-15 00:41:05 +02:00

4935 lines
415 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "uPvSdOSwMmnB"
},
"outputs": [],
"source": [
"import os\n",
"import openai\n",
"import sqlite3\n",
"import numpy as np\n",
"import pandas as pd\n",
"from google.colab import userdata\n",
"import wandb\n",
"\n",
"oai_token = userdata.get('OPENAI_API_KEY')\n",
"\n",
"oai = openai.OpenAI(api_key=oai_token)\n",
"onet = sqlite3.connect(\"onet.database\") # Run ./create_onet_database.sh to create it\n",
"# This dataset comes from https://epoch.ai/gradient-updates/consequences-of-automating-remote-work\n",
"# It contains labels for whethere a O*NET task can be done remotely or not (labeled by GPT-4o)\n",
"# You can download it here: https://drive.google.com/file/d/1GrHhuYIgaCCgo99dZ_40BWraz-fzo76r/view?usp=sharing\n",
"df_remote_status = pd.read_csv(\"epoch_task_data.csv\")\n",
"\n",
"# BLS OEWS: https://www.bls.gov/oes/special-requests/oesm23nat.zip\n",
"df_oesm = pd.read_excel(\"oesm23national.xlsx\")\n",
"\n",
"# Run uv run enrich_task_ratings.py to get this file\n",
"df = pd.read_json(\"task_ratings_enriched.json\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"collapsed": true,
"id": "mO2expAK2b8F",
"jupyter": {
"outputs_hidden": true
},
"outputId": "f1f2c2d0-26e0-41a0-f22d-367294f49561"
},
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"df\",\n \"rows\": 39467,\n \"fields\": [\n {\n \"column\": \"onetsoc_code\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 879,\n \"samples\": [\n \"27-2012.05\",\n \"21-1093.00\",\n \"51-8013.00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"task_id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 5430,\n \"min\": 1,\n \"max\": 24001,\n \"num_unique_values\": 17639,\n \"samples\": [\n 10675,\n 22981,\n 798\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"task\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 16580,\n \"samples\": [\n \"File grooved, contoured, and irregular surfaces of metal objects, such as metalworking dies and machine parts, to conform to templates, other parts, layouts, or blueprint specifications.\",\n \"Measure tires to determine mold size requirements.\",\n \"Instruct customers in the installation, repair, or maintenance of products.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"occupation_title\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 879,\n \"samples\": [\n \"Media Technical Directors/Managers\",\n \"Social and Human Service Assistants\",\n \"Power Plant Operators\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"occupation_description\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 879,\n \"samples\": [\n \"Coordinate activities of technical departments, such as taping, editing, engineering, and maintenance, to produce radio or television programs.\",\n \"Assist other social and human service providers in providing client services in a wide variety of fields, such as psychology, rehabilitation, or social work, including support for families. May assist clients in identifying and obtaining available benefits and social and community services. May assist social workers with developing, organizing, and conducting programs to prevent and resolve problems relevant to substance abuse, human relationships, rehabilitation, or dependent care.\",\n \"Control, operate, or maintain machinery to generate electric power. Includes auxiliary equipment operators.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 13.496877695589955,\n \"min\": 0.0,\n \"max\": 98.43,\n \"num_unique_values\": 2814,\n \"samples\": [\n 8.24,\n 19.74,\n 38.65\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_2\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16.678101090168983,\n \"min\": 0.0,\n \"max\": 88.89,\n \"num_unique_values\": 3954,\n \"samples\": [\n 10.98,\n 2.91,\n 26.81\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_3\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14.06670148855046,\n \"min\": 0.0,\n \"max\": 73.08,\n \"num_unique_values\": 3959,\n \"samples\": [\n 28.72,\n 43.5,\n 4.48\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_4\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 13.650817839999881,\n \"min\": 0.0,\n \"max\": 80.77,\n \"num_unique_values\": 3793,\n \"samples\": [\n 25.44,\n 3.63,\n 17.33\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_5\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 15.456854044334518,\n \"min\": 0.0,\n \"max\": 93.02,\n \"num_unique_values\": 5296,\n \"samples\": [\n 2.41,\n 6.77,\n 80.96\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_6\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8.831930521377236,\n \"min\": 0.0,\n \"max\": 84.0,\n \"num_unique_values\": 3394,\n \"samples\": [\n 4.46,\n 22.17,\n 18.61\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_7\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 13.023172761542176,\n \"min\": 0.0,\n \"max\": 97.54,\n \"num_unique_values\": 4340,\n \"samples\": [\n 12.67,\n 50.0,\n 58.93\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"importance_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.5405272645655124,\n \"min\": 1.44,\n \"max\": 5.0,\n \"num_unique_values\": 293,\n \"samples\": [\n 4.08,\n 4.96,\n 3.5700000000000003\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"relevance_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 17.754075691110696,\n \"min\": 25.0,\n \"max\": 100.0,\n \"num_unique_values\": 5376,\n \"samples\": [\n 49.07,\n 67.11,\n 53.23\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dwas\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"remote_status\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"not remote\",\n \"remote\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "df"
},
"text/html": [
"\n",
" <div id=\"df-bc7b085b-97a7-42d1-82cf-afa1e7f2f3c6\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>onetsoc_code</th>\n",
" <th>task_id</th>\n",
" <th>task</th>\n",
" <th>occupation_title</th>\n",
" <th>occupation_description</th>\n",
" <th>frequency_category_1</th>\n",
" <th>frequency_category_2</th>\n",
" <th>frequency_category_3</th>\n",
" <th>frequency_category_4</th>\n",
" <th>frequency_category_5</th>\n",
" <th>frequency_category_6</th>\n",
" <th>frequency_category_7</th>\n",
" <th>importance_average</th>\n",
" <th>relevance_average</th>\n",
" <th>dwas</th>\n",
" <th>remote_status</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>11-1011.00</td>\n",
" <td>8823</td>\n",
" <td>Direct or coordinate an organization's financi...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>5.92</td>\n",
" <td>15.98</td>\n",
" <td>29.68</td>\n",
" <td>21.18</td>\n",
" <td>19.71</td>\n",
" <td>4.91</td>\n",
" <td>2.63</td>\n",
" <td>4.52</td>\n",
" <td>74.44</td>\n",
" <td>[Direct financial operations.]</td>\n",
" <td>remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11-1011.00</td>\n",
" <td>8824</td>\n",
" <td>Confer with board members, organization offici...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>1.42</td>\n",
" <td>14.44</td>\n",
" <td>27.31</td>\n",
" <td>25.52</td>\n",
" <td>26.88</td>\n",
" <td>2.52</td>\n",
" <td>1.90</td>\n",
" <td>4.32</td>\n",
" <td>81.71</td>\n",
" <td>[Confer with organizational members to accompl...</td>\n",
" <td>remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>11-1011.00</td>\n",
" <td>8827</td>\n",
" <td>Prepare budgets for approval, including those ...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>15.50</td>\n",
" <td>38.21</td>\n",
" <td>32.73</td>\n",
" <td>5.15</td>\n",
" <td>5.25</td>\n",
" <td>0.19</td>\n",
" <td>2.98</td>\n",
" <td>4.30</td>\n",
" <td>93.41</td>\n",
" <td>[Prepare operational budgets.]</td>\n",
" <td>remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11-1011.00</td>\n",
" <td>8826</td>\n",
" <td>Direct, plan, or implement policies, objective...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>3.03</td>\n",
" <td>17.33</td>\n",
" <td>20.30</td>\n",
" <td>18.10</td>\n",
" <td>33.16</td>\n",
" <td>2.01</td>\n",
" <td>6.07</td>\n",
" <td>4.24</td>\n",
" <td>97.79</td>\n",
" <td>[Implement organizational process or policy ch...</td>\n",
" <td>remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>11-1011.00</td>\n",
" <td>8834</td>\n",
" <td>Prepare or present reports concerning activiti...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>1.98</td>\n",
" <td>14.06</td>\n",
" <td>42.60</td>\n",
" <td>21.24</td>\n",
" <td>13.18</td>\n",
" <td>6.24</td>\n",
" <td>0.70</td>\n",
" <td>4.17</td>\n",
" <td>92.92</td>\n",
" <td>[Prepare financial documents, reports, or budg...</td>\n",
" <td>remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39462</th>\n",
" <td>53-7121.00</td>\n",
" <td>12807</td>\n",
" <td>Unload cars containing liquids by connecting h...</td>\n",
" <td>Tank Car, Truck, and Ship Loaders</td>\n",
" <td>Load and unload chemicals and bulk solids, suc...</td>\n",
" <td>6.05</td>\n",
" <td>29.21</td>\n",
" <td>6.88</td>\n",
" <td>13.95</td>\n",
" <td>27.65</td>\n",
" <td>7.93</td>\n",
" <td>8.34</td>\n",
" <td>4.08</td>\n",
" <td>64.04</td>\n",
" <td>[Connect hoses to equipment or machinery.]</td>\n",
" <td>not remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39463</th>\n",
" <td>53-7121.00</td>\n",
" <td>12804</td>\n",
" <td>Clean interiors of tank cars or tank trucks, u...</td>\n",
" <td>Tank Car, Truck, and Ship Loaders</td>\n",
" <td>Load and unload chemicals and bulk solids, suc...</td>\n",
" <td>1.47</td>\n",
" <td>6.33</td>\n",
" <td>21.70</td>\n",
" <td>25.69</td>\n",
" <td>32.35</td>\n",
" <td>12.47</td>\n",
" <td>0.00</td>\n",
" <td>4.02</td>\n",
" <td>44.33</td>\n",
" <td>[Clean vessels or marine equipment.]</td>\n",
" <td>not remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39464</th>\n",
" <td>53-7121.00</td>\n",
" <td>12803</td>\n",
" <td>Lower gauge rods into tanks or read meters to ...</td>\n",
" <td>Tank Car, Truck, and Ship Loaders</td>\n",
" <td>Load and unload chemicals and bulk solids, suc...</td>\n",
" <td>4.52</td>\n",
" <td>1.76</td>\n",
" <td>4.65</td>\n",
" <td>17.81</td>\n",
" <td>37.42</td>\n",
" <td>23.31</td>\n",
" <td>10.55</td>\n",
" <td>3.88</td>\n",
" <td>65.00</td>\n",
" <td>[Measure the level or depth of water or other ...</td>\n",
" <td>not remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39465</th>\n",
" <td>53-7121.00</td>\n",
" <td>12805</td>\n",
" <td>Operate conveyors and equipment to transfer gr...</td>\n",
" <td>Tank Car, Truck, and Ship Loaders</td>\n",
" <td>Load and unload chemicals and bulk solids, suc...</td>\n",
" <td>6.97</td>\n",
" <td>12.00</td>\n",
" <td>2.52</td>\n",
" <td>5.90</td>\n",
" <td>35.48</td>\n",
" <td>22.08</td>\n",
" <td>15.05</td>\n",
" <td>3.87</td>\n",
" <td>47.90</td>\n",
" <td>[Operate conveyors or other industrial materia...</td>\n",
" <td>not remote</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39466</th>\n",
" <td>53-7121.00</td>\n",
" <td>12810</td>\n",
" <td>Perform general warehouse activities, such as ...</td>\n",
" <td>Tank Car, Truck, and Ship Loaders</td>\n",
" <td>Load and unload chemicals and bulk solids, suc...</td>\n",
" <td>5.91</td>\n",
" <td>10.85</td>\n",
" <td>6.46</td>\n",
" <td>14.46</td>\n",
" <td>34.14</td>\n",
" <td>16.39</td>\n",
" <td>11.78</td>\n",
" <td>3.53</td>\n",
" <td>47.84</td>\n",
" <td>[Weigh materials to ensure compliance with spe...</td>\n",
" <td>not remote</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>39467 rows × 16 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-bc7b085b-97a7-42d1-82cf-afa1e7f2f3c6')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-bc7b085b-97a7-42d1-82cf-afa1e7f2f3c6 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-bc7b085b-97a7-42d1-82cf-afa1e7f2f3c6');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" <div id=\"df-6bfe183f-09ce-41f5-a906-79d8016964e7\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6bfe183f-09ce-41f5-a906-79d8016964e7')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-6bfe183f-09ce-41f5-a906-79d8016964e7 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" <div id=\"id_7fc802be-1a27-4a30-b21a-2324fc2424c0\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_7fc802be-1a27-4a30-b21a-2324fc2424c0 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" onetsoc_code task_id \\\n",
"0 11-1011.00 8823 \n",
"1 11-1011.00 8824 \n",
"2 11-1011.00 8827 \n",
"3 11-1011.00 8826 \n",
"4 11-1011.00 8834 \n",
"... ... ... \n",
"39462 53-7121.00 12807 \n",
"39463 53-7121.00 12804 \n",
"39464 53-7121.00 12803 \n",
"39465 53-7121.00 12805 \n",
"39466 53-7121.00 12810 \n",
"\n",
" task \\\n",
"0 Direct or coordinate an organization's financi... \n",
"1 Confer with board members, organization offici... \n",
"2 Prepare budgets for approval, including those ... \n",
"3 Direct, plan, or implement policies, objective... \n",
"4 Prepare or present reports concerning activiti... \n",
"... ... \n",
"39462 Unload cars containing liquids by connecting h... \n",
"39463 Clean interiors of tank cars or tank trucks, u... \n",
"39464 Lower gauge rods into tanks or read meters to ... \n",
"39465 Operate conveyors and equipment to transfer gr... \n",
"39466 Perform general warehouse activities, such as ... \n",
"\n",
" occupation_title \\\n",
"0 Chief Executives \n",
"1 Chief Executives \n",
"2 Chief Executives \n",
"3 Chief Executives \n",
"4 Chief Executives \n",
"... ... \n",
"39462 Tank Car, Truck, and Ship Loaders \n",
"39463 Tank Car, Truck, and Ship Loaders \n",
"39464 Tank Car, Truck, and Ship Loaders \n",
"39465 Tank Car, Truck, and Ship Loaders \n",
"39466 Tank Car, Truck, and Ship Loaders \n",
"\n",
" occupation_description \\\n",
"0 Determine and formulate policies and provide o... \n",
"1 Determine and formulate policies and provide o... \n",
"2 Determine and formulate policies and provide o... \n",
"3 Determine and formulate policies and provide o... \n",
"4 Determine and formulate policies and provide o... \n",
"... ... \n",
"39462 Load and unload chemicals and bulk solids, suc... \n",
"39463 Load and unload chemicals and bulk solids, suc... \n",
"39464 Load and unload chemicals and bulk solids, suc... \n",
"39465 Load and unload chemicals and bulk solids, suc... \n",
"39466 Load and unload chemicals and bulk solids, suc... \n",
"\n",
" frequency_category_1 frequency_category_2 frequency_category_3 \\\n",
"0 5.92 15.98 29.68 \n",
"1 1.42 14.44 27.31 \n",
"2 15.50 38.21 32.73 \n",
"3 3.03 17.33 20.30 \n",
"4 1.98 14.06 42.60 \n",
"... ... ... ... \n",
"39462 6.05 29.21 6.88 \n",
"39463 1.47 6.33 21.70 \n",
"39464 4.52 1.76 4.65 \n",
"39465 6.97 12.00 2.52 \n",
"39466 5.91 10.85 6.46 \n",
"\n",
" frequency_category_4 frequency_category_5 frequency_category_6 \\\n",
"0 21.18 19.71 4.91 \n",
"1 25.52 26.88 2.52 \n",
"2 5.15 5.25 0.19 \n",
"3 18.10 33.16 2.01 \n",
"4 21.24 13.18 6.24 \n",
"... ... ... ... \n",
"39462 13.95 27.65 7.93 \n",
"39463 25.69 32.35 12.47 \n",
"39464 17.81 37.42 23.31 \n",
"39465 5.90 35.48 22.08 \n",
"39466 14.46 34.14 16.39 \n",
"\n",
" frequency_category_7 importance_average relevance_average \\\n",
"0 2.63 4.52 74.44 \n",
"1 1.90 4.32 81.71 \n",
"2 2.98 4.30 93.41 \n",
"3 6.07 4.24 97.79 \n",
"4 0.70 4.17 92.92 \n",
"... ... ... ... \n",
"39462 8.34 4.08 64.04 \n",
"39463 0.00 4.02 44.33 \n",
"39464 10.55 3.88 65.00 \n",
"39465 15.05 3.87 47.90 \n",
"39466 11.78 3.53 47.84 \n",
"\n",
" dwas remote_status \n",
"0 [Direct financial operations.] remote \n",
"1 [Confer with organizational members to accompl... remote \n",
"2 [Prepare operational budgets.] remote \n",
"3 [Implement organizational process or policy ch... remote \n",
"4 [Prepare financial documents, reports, or budg... remote \n",
"... ... ... \n",
"39462 [Connect hoses to equipment or machinery.] not remote \n",
"39463 [Clean vessels or marine equipment.] not remote \n",
"39464 [Measure the level or depth of water or other ... not remote \n",
"39465 [Operate conveyors or other industrial materia... not remote \n",
"39466 [Weigh materials to ensure compliance with spe... not remote \n",
"\n",
"[39467 rows x 16 columns]"
]
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.merge(df, df_remote_status[['Task', 'Remote']], left_on='task', right_on='Task', how='left')\n",
"df = df.drop('Task', axis=1) \\\n",
" .rename(columns={'Remote': 'remote_status'})\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "WvFNPFjrNB-B"
},
"outputs": [],
"source": [
"FREQUENCY_MAP = {\n",
" 'frequency_category_1': \"Yearly or less\",\n",
" 'frequency_category_2': \"More than yearly\",\n",
" 'frequency_category_3': \"More than monthly\",\n",
" 'frequency_category_4': \"More than weekly\",\n",
" 'frequency_category_5': \"Daily\",\n",
" 'frequency_category_6': \"Several times daily\",\n",
" 'frequency_category_7': \"Hourly or more\"\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "kZ-L4EFoNLnT"
},
"outputs": [],
"source": [
"# Cross-reference woth BLS OEWS\n",
"# It doesn't really make sens to have it per-task, we only need it per-occupation...\n",
"df_oesm_detailed = df_oesm[df_oesm['O_GROUP'] == 'detailed'][['OCC_CODE', 'TOT_EMP', 'H_MEAN', 'A_MEAN']].copy()\n",
"df['occ_code_join'] = df['onetsoc_code'].str[:7]\n",
"df = pd.merge(\n",
" df,\n",
" df_oesm_detailed,\n",
" left_on='occ_code_join',\n",
" right_on='OCC_CODE',\n",
" how='left'\n",
")\n",
"df = df.drop(columns=['occ_code_join']).rename(columns={\"OCC_CODE\": \"occ_code\", \"TOT_EMP\": \"total_employment\", \"H_MEAN\": \"hourly_wage_average\", \"A_MEAN\": \"annual_wage_average\"})"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"collapsed": true,
"id": "3LkV9k591LW9",
"jupyter": {
"outputs_hidden": true
},
"outputId": "18d78a28-3f28-4d13-ca4f-dda263daedc5"
},
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"remote_df\",\n \"rows\": 21698,\n \"fields\": [\n {\n \"column\": \"onetsoc_code\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 697,\n \"samples\": [\n \"17-2199.10\",\n \"41-2021.00\",\n \"29-1299.02\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"task_id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4674,\n \"min\": 1,\n \"max\": 23997,\n \"num_unique_values\": 6166,\n \"samples\": [\n 5616,\n 15580,\n 173\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"task\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 5399,\n \"samples\": [\n \"Teach or supervise students and perform research at universities and colleges.\",\n \"Identify methods for interfacing Web application technologies with enterprise resource planning or other system software.\",\n \"Examine documentation such as mortgages, liens, judgments, easements, plat books, maps, contracts, and agreements to verify factors such as properties' legal descriptions, ownership, or restrictions.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"occupation_title\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 697,\n \"samples\": [\n \"Wind Energy Engineers\",\n \"Counter and Rental Clerks\",\n \"Orthoptists\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"occupation_description\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 697,\n \"samples\": [\n \"Design underground or overhead wind farm collector systems and prepare and develop site specifications.\",\n \"Receive orders, generally in person, for repairs, rentals, and services. May describe available options, compute cost, and accept payment.\",\n \"Diagnose and treat visual system disorders such as binocular vision and eye movement impairments.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_1\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 15.392290836442328,\n \"min\": 0.0,\n \"max\": 90.91,\n \"num_unique_values\": 1778,\n \"samples\": [\n 32.69,\n 5.4,\n 22.48\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_2\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16.365064366617172,\n \"min\": 0.0,\n \"max\": 88.89,\n \"num_unique_values\": 2552,\n \"samples\": [\n 36.44,\n 60.47,\n 20.88\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_3\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14.0698466229559,\n \"min\": 0.0,\n \"max\": 72.73,\n \"num_unique_values\": 2559,\n \"samples\": [\n 15.36,\n 37.23,\n 19.64\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_4\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14.203638081510212,\n \"min\": 0.0,\n \"max\": 80.77,\n \"num_unique_values\": 2451,\n \"samples\": [\n 17.62,\n 28.41,\n 20.55\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_5\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 13.941091224152455,\n \"min\": 0.0,\n \"max\": 85.29,\n \"num_unique_values\": 2788,\n \"samples\": [\n 40.45,\n 23.45,\n 37.61\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_6\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 6.524498762360237,\n \"min\": 0.0,\n \"max\": 73.91,\n \"num_unique_values\": 1828,\n \"samples\": [\n 7.54,\n 27.76,\n 25.85\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"frequency_category_7\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 7.496218170101234,\n \"min\": 0.0,\n \"max\": 89.67,\n \"num_unique_values\": 1776,\n \"samples\": [\n 3.99,\n 44.89,\n 59.12\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"importance_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.5343251977372085,\n \"min\": 1.75,\n \"max\": 5.0,\n \"num_unique_values\": 270,\n \"samples\": [\n 3.52,\n 2.81,\n 4.44\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"relevance_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16.85307890304865,\n \"min\": 25.0,\n \"max\": 100.0,\n \"num_unique_values\": 2662,\n \"samples\": [\n 93.84,\n 88.0,\n 68.32\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dwas\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"remote_status\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"remote\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"occ_code\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 579,\n \"samples\": [\n \"27-2032\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"total_employment\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 261963.7301986826,\n \"min\": 260.0,\n \"max\": 3684740.0,\n \"num_unique_values\": 566,\n \"samples\": [\n 584630.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"hourly_wage_average\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 507,\n \"samples\": [\n 66.83\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"annual_wage_average\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 564,\n \"samples\": [\n 41900\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "remote_df"
},
"text/html": [
"\n",
" <div id=\"df-ac6b9bba-3f44-4d0c-ad52-b83abce95a33\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>onetsoc_code</th>\n",
" <th>task_id</th>\n",
" <th>task</th>\n",
" <th>occupation_title</th>\n",
" <th>occupation_description</th>\n",
" <th>frequency_category_1</th>\n",
" <th>frequency_category_2</th>\n",
" <th>frequency_category_3</th>\n",
" <th>frequency_category_4</th>\n",
" <th>frequency_category_5</th>\n",
" <th>frequency_category_6</th>\n",
" <th>frequency_category_7</th>\n",
" <th>importance_average</th>\n",
" <th>relevance_average</th>\n",
" <th>dwas</th>\n",
" <th>remote_status</th>\n",
" <th>occ_code</th>\n",
" <th>total_employment</th>\n",
" <th>hourly_wage_average</th>\n",
" <th>annual_wage_average</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>11-1011.00</td>\n",
" <td>8823</td>\n",
" <td>Direct or coordinate an organization's financi...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>5.92</td>\n",
" <td>15.98</td>\n",
" <td>29.68</td>\n",
" <td>21.18</td>\n",
" <td>19.71</td>\n",
" <td>4.91</td>\n",
" <td>2.63</td>\n",
" <td>4.52</td>\n",
" <td>74.44</td>\n",
" <td>[Direct financial operations.]</td>\n",
" <td>remote</td>\n",
" <td>11-1011</td>\n",
" <td>211230.0</td>\n",
" <td>124.47</td>\n",
" <td>258900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11-1011.00</td>\n",
" <td>8824</td>\n",
" <td>Confer with board members, organization offici...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>1.42</td>\n",
" <td>14.44</td>\n",
" <td>27.31</td>\n",
" <td>25.52</td>\n",
" <td>26.88</td>\n",
" <td>2.52</td>\n",
" <td>1.90</td>\n",
" <td>4.32</td>\n",
" <td>81.71</td>\n",
" <td>[Confer with organizational members to accompl...</td>\n",
" <td>remote</td>\n",
" <td>11-1011</td>\n",
" <td>211230.0</td>\n",
" <td>124.47</td>\n",
" <td>258900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>11-1011.00</td>\n",
" <td>8827</td>\n",
" <td>Prepare budgets for approval, including those ...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>15.50</td>\n",
" <td>38.21</td>\n",
" <td>32.73</td>\n",
" <td>5.15</td>\n",
" <td>5.25</td>\n",
" <td>0.19</td>\n",
" <td>2.98</td>\n",
" <td>4.30</td>\n",
" <td>93.41</td>\n",
" <td>[Prepare operational budgets.]</td>\n",
" <td>remote</td>\n",
" <td>11-1011</td>\n",
" <td>211230.0</td>\n",
" <td>124.47</td>\n",
" <td>258900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11-1011.00</td>\n",
" <td>8826</td>\n",
" <td>Direct, plan, or implement policies, objective...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>3.03</td>\n",
" <td>17.33</td>\n",
" <td>20.30</td>\n",
" <td>18.10</td>\n",
" <td>33.16</td>\n",
" <td>2.01</td>\n",
" <td>6.07</td>\n",
" <td>4.24</td>\n",
" <td>97.79</td>\n",
" <td>[Implement organizational process or policy ch...</td>\n",
" <td>remote</td>\n",
" <td>11-1011</td>\n",
" <td>211230.0</td>\n",
" <td>124.47</td>\n",
" <td>258900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>11-1011.00</td>\n",
" <td>8834</td>\n",
" <td>Prepare or present reports concerning activiti...</td>\n",
" <td>Chief Executives</td>\n",
" <td>Determine and formulate policies and provide o...</td>\n",
" <td>1.98</td>\n",
" <td>14.06</td>\n",
" <td>42.60</td>\n",
" <td>21.24</td>\n",
" <td>13.18</td>\n",
" <td>6.24</td>\n",
" <td>0.70</td>\n",
" <td>4.17</td>\n",
" <td>92.92</td>\n",
" <td>[Prepare financial documents, reports, or budg...</td>\n",
" <td>remote</td>\n",
" <td>11-1011</td>\n",
" <td>211230.0</td>\n",
" <td>124.47</td>\n",
" <td>258900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39438</th>\n",
" <td>53-7081.00</td>\n",
" <td>7172</td>\n",
" <td>Fill out defective equipment reports.</td>\n",
" <td>Refuse and Recyclable Material Collectors</td>\n",
" <td>Collect and dump refuse or recyclable material...</td>\n",
" <td>0.00</td>\n",
" <td>1.75</td>\n",
" <td>9.69</td>\n",
" <td>3.08</td>\n",
" <td>85.29</td>\n",
" <td>0.09</td>\n",
" <td>0.09</td>\n",
" <td>4.27</td>\n",
" <td>91.18</td>\n",
" <td>[Prepare accident or incident reports.]</td>\n",
" <td>remote</td>\n",
" <td>53-7081</td>\n",
" <td>135430.0</td>\n",
" <td>22.99</td>\n",
" <td>47810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39442</th>\n",
" <td>53-7081.00</td>\n",
" <td>7178</td>\n",
" <td>Communicate with dispatchers concerning delays...</td>\n",
" <td>Refuse and Recyclable Material Collectors</td>\n",
" <td>Collect and dump refuse or recyclable material...</td>\n",
" <td>0.00</td>\n",
" <td>1.04</td>\n",
" <td>5.92</td>\n",
" <td>3.74</td>\n",
" <td>69.00</td>\n",
" <td>8.98</td>\n",
" <td>11.32</td>\n",
" <td>3.96</td>\n",
" <td>97.50</td>\n",
" <td>[Report vehicle or equipment malfunctions., No...</td>\n",
" <td>remote</td>\n",
" <td>53-7081</td>\n",
" <td>135430.0</td>\n",
" <td>22.99</td>\n",
" <td>47810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39443</th>\n",
" <td>53-7081.00</td>\n",
" <td>7179</td>\n",
" <td>Check road or weather conditions to determine ...</td>\n",
" <td>Refuse and Recyclable Material Collectors</td>\n",
" <td>Collect and dump refuse or recyclable material...</td>\n",
" <td>0.00</td>\n",
" <td>8.98</td>\n",
" <td>4.23</td>\n",
" <td>8.60</td>\n",
" <td>61.70</td>\n",
" <td>11.87</td>\n",
" <td>4.63</td>\n",
" <td>3.81</td>\n",
" <td>89.52</td>\n",
" <td>[Gather information about work conditions or l...</td>\n",
" <td>remote</td>\n",
" <td>53-7081</td>\n",
" <td>135430.0</td>\n",
" <td>22.99</td>\n",
" <td>47810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39447</th>\n",
" <td>53-7081.00</td>\n",
" <td>7183</td>\n",
" <td>Organize schedules for refuse collection.</td>\n",
" <td>Refuse and Recyclable Material Collectors</td>\n",
" <td>Collect and dump refuse or recyclable material...</td>\n",
" <td>11.57</td>\n",
" <td>25.97</td>\n",
" <td>14.88</td>\n",
" <td>0.00</td>\n",
" <td>43.02</td>\n",
" <td>4.56</td>\n",
" <td>0.00</td>\n",
" <td>3.29</td>\n",
" <td>42.06</td>\n",
" <td>[Schedule operational activities.]</td>\n",
" <td>remote</td>\n",
" <td>53-7081</td>\n",
" <td>135430.0</td>\n",
" <td>22.99</td>\n",
" <td>47810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39455</th>\n",
" <td>53-7121.00</td>\n",
" <td>12796</td>\n",
" <td>Record operating data such as products and qua...</td>\n",
" <td>Tank Car, Truck, and Ship Loaders</td>\n",
" <td>Load and unload chemicals and bulk solids, suc...</td>\n",
" <td>0.00</td>\n",
" <td>2.49</td>\n",
" <td>2.07</td>\n",
" <td>0.41</td>\n",
" <td>45.74</td>\n",
" <td>27.92</td>\n",
" <td>21.37</td>\n",
" <td>4.26</td>\n",
" <td>90.86</td>\n",
" <td>[Record operational or production data.]</td>\n",
" <td>remote</td>\n",
" <td>53-7121</td>\n",
" <td>11400.0</td>\n",
" <td>29.1</td>\n",
" <td>60530</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>21698 rows × 20 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ac6b9bba-3f44-4d0c-ad52-b83abce95a33')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-ac6b9bba-3f44-4d0c-ad52-b83abce95a33 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-ac6b9bba-3f44-4d0c-ad52-b83abce95a33');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" <div id=\"df-7ae94a8c-a85f-4e45-a4fe-25523c2eac2d\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-7ae94a8c-a85f-4e45-a4fe-25523c2eac2d')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-7ae94a8c-a85f-4e45-a4fe-25523c2eac2d button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" <div id=\"id_321a43c5-dad7-4e5d-8e78-03fa0ed47698\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('remote_df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_321a43c5-dad7-4e5d-8e78-03fa0ed47698 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('remote_df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" onetsoc_code task_id \\\n",
"0 11-1011.00 8823 \n",
"1 11-1011.00 8824 \n",
"2 11-1011.00 8827 \n",
"3 11-1011.00 8826 \n",
"4 11-1011.00 8834 \n",
"... ... ... \n",
"39438 53-7081.00 7172 \n",
"39442 53-7081.00 7178 \n",
"39443 53-7081.00 7179 \n",
"39447 53-7081.00 7183 \n",
"39455 53-7121.00 12796 \n",
"\n",
" task \\\n",
"0 Direct or coordinate an organization's financi... \n",
"1 Confer with board members, organization offici... \n",
"2 Prepare budgets for approval, including those ... \n",
"3 Direct, plan, or implement policies, objective... \n",
"4 Prepare or present reports concerning activiti... \n",
"... ... \n",
"39438 Fill out defective equipment reports. \n",
"39442 Communicate with dispatchers concerning delays... \n",
"39443 Check road or weather conditions to determine ... \n",
"39447 Organize schedules for refuse collection. \n",
"39455 Record operating data such as products and qua... \n",
"\n",
" occupation_title \\\n",
"0 Chief Executives \n",
"1 Chief Executives \n",
"2 Chief Executives \n",
"3 Chief Executives \n",
"4 Chief Executives \n",
"... ... \n",
"39438 Refuse and Recyclable Material Collectors \n",
"39442 Refuse and Recyclable Material Collectors \n",
"39443 Refuse and Recyclable Material Collectors \n",
"39447 Refuse and Recyclable Material Collectors \n",
"39455 Tank Car, Truck, and Ship Loaders \n",
"\n",
" occupation_description \\\n",
"0 Determine and formulate policies and provide o... \n",
"1 Determine and formulate policies and provide o... \n",
"2 Determine and formulate policies and provide o... \n",
"3 Determine and formulate policies and provide o... \n",
"4 Determine and formulate policies and provide o... \n",
"... ... \n",
"39438 Collect and dump refuse or recyclable material... \n",
"39442 Collect and dump refuse or recyclable material... \n",
"39443 Collect and dump refuse or recyclable material... \n",
"39447 Collect and dump refuse or recyclable material... \n",
"39455 Load and unload chemicals and bulk solids, suc... \n",
"\n",
" frequency_category_1 frequency_category_2 frequency_category_3 \\\n",
"0 5.92 15.98 29.68 \n",
"1 1.42 14.44 27.31 \n",
"2 15.50 38.21 32.73 \n",
"3 3.03 17.33 20.30 \n",
"4 1.98 14.06 42.60 \n",
"... ... ... ... \n",
"39438 0.00 1.75 9.69 \n",
"39442 0.00 1.04 5.92 \n",
"39443 0.00 8.98 4.23 \n",
"39447 11.57 25.97 14.88 \n",
"39455 0.00 2.49 2.07 \n",
"\n",
" frequency_category_4 frequency_category_5 frequency_category_6 \\\n",
"0 21.18 19.71 4.91 \n",
"1 25.52 26.88 2.52 \n",
"2 5.15 5.25 0.19 \n",
"3 18.10 33.16 2.01 \n",
"4 21.24 13.18 6.24 \n",
"... ... ... ... \n",
"39438 3.08 85.29 0.09 \n",
"39442 3.74 69.00 8.98 \n",
"39443 8.60 61.70 11.87 \n",
"39447 0.00 43.02 4.56 \n",
"39455 0.41 45.74 27.92 \n",
"\n",
" frequency_category_7 importance_average relevance_average \\\n",
"0 2.63 4.52 74.44 \n",
"1 1.90 4.32 81.71 \n",
"2 2.98 4.30 93.41 \n",
"3 6.07 4.24 97.79 \n",
"4 0.70 4.17 92.92 \n",
"... ... ... ... \n",
"39438 0.09 4.27 91.18 \n",
"39442 11.32 3.96 97.50 \n",
"39443 4.63 3.81 89.52 \n",
"39447 0.00 3.29 42.06 \n",
"39455 21.37 4.26 90.86 \n",
"\n",
" dwas remote_status \\\n",
"0 [Direct financial operations.] remote \n",
"1 [Confer with organizational members to accompl... remote \n",
"2 [Prepare operational budgets.] remote \n",
"3 [Implement organizational process or policy ch... remote \n",
"4 [Prepare financial documents, reports, or budg... remote \n",
"... ... ... \n",
"39438 [Prepare accident or incident reports.] remote \n",
"39442 [Report vehicle or equipment malfunctions., No... remote \n",
"39443 [Gather information about work conditions or l... remote \n",
"39447 [Schedule operational activities.] remote \n",
"39455 [Record operational or production data.] remote \n",
"\n",
" occ_code total_employment hourly_wage_average annual_wage_average \n",
"0 11-1011 211230.0 124.47 258900 \n",
"1 11-1011 211230.0 124.47 258900 \n",
"2 11-1011 211230.0 124.47 258900 \n",
"3 11-1011 211230.0 124.47 258900 \n",
"4 11-1011 211230.0 124.47 258900 \n",
"... ... ... ... ... \n",
"39438 53-7081 135430.0 22.99 47810 \n",
"39442 53-7081 135430.0 22.99 47810 \n",
"39443 53-7081 135430.0 22.99 47810 \n",
"39447 53-7081 135430.0 22.99 47810 \n",
"39455 53-7121 11400.0 29.1 60530 \n",
"\n",
"[21698 rows x 20 columns]"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"remote_df = df[df['remote_status'] == 'remote'].copy()\n",
"remote_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-RBsW3TVOfsm",
"outputId": "e47de86d-6184-4f10-8f3b-fb5b1a254f68"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sample size: 1599\n"
]
}
],
"source": [
"# We sample a N unique occupations to have about a thousands associated tasks\n",
"unique_occ_code = remote_df['occ_code'].unique()\n",
"np.random.shuffle(unique_occ_code)\n",
"unique_occ_code = unique_occ_code[:25]\n",
"remote_sample_df = remote_df[remote_df['occ_code'].isin(unique_occ_code)]\n",
"\n",
"print(\"Sample size: \", len(remote_sample_df))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"id": "fisyTqQX2ZEv",
"outputId": "3af15e93-6767-4a5f-b7be-3270ec2b8b45"
},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"download(\"download_38eda09c-f7fe-418f-9599-1fe1c8cfa841\", \"df_sample.csv\", 580368)"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from google.colab import files\n",
"\n",
"remote_sample_df.to_csv('df_sample.csv', encoding = 'utf-8-sig')\n",
"files.download('df_sample.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6aLuq9DC2QXZ"
},
"source": [
"Run `uv run add_task_estimates_to_samples.py` (this calls OpenAI and might be costly), then import the df_sample.csv again, it has two new columns lb_estimate and ub_estimate."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"collapsed": true,
"id": "dZLyRpBp2Kqc",
"jupyter": {
"outputs_hidden": true
},
"outputId": "30c0fa91-0015-43de-ab7f-dfe0be7fbd76"
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Unnamed: 0', 'onetsoc_code', 'task_id', 'task', 'occupation_title',\n",
" 'occupation_description', 'frequency_category_1',\n",
" 'frequency_category_2', 'frequency_category_3', 'frequency_category_4',\n",
" 'frequency_category_5', 'frequency_category_6', 'frequency_category_7',\n",
" 'importance_average', 'relevance_average', 'remote_status', 'occ_code',\n",
" 'total_employment', 'hourly_wage_average', 'annual_wage_average',\n",
" 'lb_estimate', 'ub_estimate'],\n",
" dtype='object')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"enriched_sample_df = pd.read_csv(\"df_sample_with_estimates.csv\")\n",
"enriched_sample_df.keys()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "-fe8ybLQP6Bx"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"from google.colab import files\n",
"\n",
"sdf = df[df['remote_status'] == 'remote'].sample(frac=1, random_state=42) # frac=1 shuffles all rows\n",
"sample_tasks = sdf.iloc[:45]\n",
"tasks_df = sample_tasks[['task', 'occupation_title', 'occupation_description']].copy()\n",
"tasks_df.to_csv('sampled_tasks.csv', index=False)\n",
"files.download('sampled_tasks.csv')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"collapsed": true,
"id": "bMliWSzU1_wl",
"jupyter": {
"outputs_hidden": true
},
"outputId": "aa1a9846-9cdb-4b90-84b4-1732d84007f4"
},
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "enriched_sample_df"
},
"text/html": [
"\n",
" <div id=\"df-c6f9f750-9827-4609-a964-39629cc23935\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>onetsoc_code</th>\n",
" <th>task_id</th>\n",
" <th>task</th>\n",
" <th>occupation_title</th>\n",
" <th>occupation_description</th>\n",
" <th>frequency_category_1</th>\n",
" <th>frequency_category_2</th>\n",
" <th>frequency_category_3</th>\n",
" <th>frequency_category_4</th>\n",
" <th>...</th>\n",
" <th>relevance_average</th>\n",
" <th>remote_status</th>\n",
" <th>occ_code</th>\n",
" <th>total_employment</th>\n",
" <th>hourly_wage_average</th>\n",
" <th>annual_wage_average</th>\n",
" <th>lb_estimate</th>\n",
" <th>ub_estimate</th>\n",
" <th>lb_estimate_in_hours</th>\n",
" <th>ub_estimate_in_hours</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>362</td>\n",
" <td>11-3071.00</td>\n",
" <td>21343</td>\n",
" <td>Plan, organize, or manage the work of subordin...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>3.10</td>\n",
" <td>7.15</td>\n",
" <td>...</td>\n",
" <td>97.17</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>4 hours</td>\n",
" <td>3 days</td>\n",
" <td>4.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>363</td>\n",
" <td>11-3071.00</td>\n",
" <td>21344</td>\n",
" <td>Collaborate with other departments to integrat...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>3.33</td>\n",
" <td>6.67</td>\n",
" <td>33.33</td>\n",
" <td>10.00</td>\n",
" <td>...</td>\n",
" <td>100.00</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>364</td>\n",
" <td>11-3071.00</td>\n",
" <td>21345</td>\n",
" <td>Analyze all aspects of corporate logistics to ...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>10.00</td>\n",
" <td>13.33</td>\n",
" <td>20.00</td>\n",
" <td>26.67</td>\n",
" <td>...</td>\n",
" <td>100.00</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>366</td>\n",
" <td>11-3071.00</td>\n",
" <td>21347</td>\n",
" <td>Develop and document standard and emergency op...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>23.81</td>\n",
" <td>23.81</td>\n",
" <td>28.57</td>\n",
" <td>9.52</td>\n",
" <td>...</td>\n",
" <td>91.67</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>3 days</td>\n",
" <td>1 week</td>\n",
" <td>72.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>368</td>\n",
" <td>11-3071.00</td>\n",
" <td>21349</td>\n",
" <td>Analyze the financial impact of proposed logis...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>3.45</td>\n",
" <td>27.59</td>\n",
" <td>34.48</td>\n",
" <td>31.03</td>\n",
" <td>...</td>\n",
" <td>96.67</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>4 hours</td>\n",
" <td>1 week</td>\n",
" <td>4.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>747</th>\n",
" <td>35501</td>\n",
" <td>49-1011.00</td>\n",
" <td>15264</td>\n",
" <td>Review, evaluate, accept, and coordinate compl...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>4.43</td>\n",
" <td>14.98</td>\n",
" <td>44.06</td>\n",
" <td>9.94</td>\n",
" <td>...</td>\n",
" <td>65.94</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>1 hour</td>\n",
" <td>3 days</td>\n",
" <td>1.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>748</th>\n",
" <td>35502</td>\n",
" <td>49-1011.00</td>\n",
" <td>2926</td>\n",
" <td>Compile operational or personnel records, such...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>4.25</td>\n",
" <td>6.22</td>\n",
" <td>27.27</td>\n",
" <td>16.93</td>\n",
" <td>...</td>\n",
" <td>64.30</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>749</th>\n",
" <td>35503</td>\n",
" <td>49-1011.00</td>\n",
" <td>2931</td>\n",
" <td>Develop or implement electronic maintenance pr...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>3.26</td>\n",
" <td>3.23</td>\n",
" <td>9.64</td>\n",
" <td>18.78</td>\n",
" <td>...</td>\n",
" <td>50.24</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>750</th>\n",
" <td>35504</td>\n",
" <td>49-1011.00</td>\n",
" <td>2932</td>\n",
" <td>Design equipment configurations to meet person...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>6.07</td>\n",
" <td>10.37</td>\n",
" <td>42.18</td>\n",
" <td>22.01</td>\n",
" <td>...</td>\n",
" <td>57.57</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>4 hours</td>\n",
" <td>8 hours</td>\n",
" <td>4.0</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>751</th>\n",
" <td>36002</td>\n",
" <td>49-3093.00</td>\n",
" <td>8383</td>\n",
" <td>Order replacements for tires or tubes.</td>\n",
" <td>Tire Repairers and Changers</td>\n",
" <td>Repair and replace tires.</td>\n",
" <td>5.26</td>\n",
" <td>4.94</td>\n",
" <td>9.61</td>\n",
" <td>7.48</td>\n",
" <td>...</td>\n",
" <td>69.89</td>\n",
" <td>remote</td>\n",
" <td>49-3093</td>\n",
" <td>101520.0</td>\n",
" <td>17.92</td>\n",
" <td>37280</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>752 rows × 24 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c6f9f750-9827-4609-a964-39629cc23935')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-c6f9f750-9827-4609-a964-39629cc23935 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-c6f9f750-9827-4609-a964-39629cc23935');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" <div id=\"df-75d7d34f-050b-443c-bd53-cbf5c4069f42\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-75d7d34f-050b-443c-bd53-cbf5c4069f42')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-75d7d34f-050b-443c-bd53-cbf5c4069f42 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" <div id=\"id_12604fbd-be00-409a-b8ac-abaff19edee3\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('enriched_sample_df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_12604fbd-be00-409a-b8ac-abaff19edee3 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('enriched_sample_df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" Unnamed: 0 onetsoc_code task_id \\\n",
"0 362 11-3071.00 21343 \n",
"1 363 11-3071.00 21344 \n",
"2 364 11-3071.00 21345 \n",
"3 366 11-3071.00 21347 \n",
"4 368 11-3071.00 21349 \n",
".. ... ... ... \n",
"747 35501 49-1011.00 15264 \n",
"748 35502 49-1011.00 2926 \n",
"749 35503 49-1011.00 2931 \n",
"750 35504 49-1011.00 2932 \n",
"751 36002 49-3093.00 8383 \n",
"\n",
" task \\\n",
"0 Plan, organize, or manage the work of subordin... \n",
"1 Collaborate with other departments to integrat... \n",
"2 Analyze all aspects of corporate logistics to ... \n",
"3 Develop and document standard and emergency op... \n",
"4 Analyze the financial impact of proposed logis... \n",
".. ... \n",
"747 Review, evaluate, accept, and coordinate compl... \n",
"748 Compile operational or personnel records, such... \n",
"749 Develop or implement electronic maintenance pr... \n",
"750 Design equipment configurations to meet person... \n",
"751 Order replacements for tires or tubes. \n",
"\n",
" occupation_title \\\n",
"0 Transportation, Storage, and Distribution Mana... \n",
"1 Transportation, Storage, and Distribution Mana... \n",
"2 Transportation, Storage, and Distribution Mana... \n",
"3 Transportation, Storage, and Distribution Mana... \n",
"4 Transportation, Storage, and Distribution Mana... \n",
".. ... \n",
"747 First-Line Supervisors of Mechanics, Installer... \n",
"748 First-Line Supervisors of Mechanics, Installer... \n",
"749 First-Line Supervisors of Mechanics, Installer... \n",
"750 First-Line Supervisors of Mechanics, Installer... \n",
"751 Tire Repairers and Changers \n",
"\n",
" occupation_description frequency_category_1 \\\n",
"0 Plan, direct, or coordinate transportation, st... 0.00 \n",
"1 Plan, direct, or coordinate transportation, st... 3.33 \n",
"2 Plan, direct, or coordinate transportation, st... 10.00 \n",
"3 Plan, direct, or coordinate transportation, st... 23.81 \n",
"4 Plan, direct, or coordinate transportation, st... 3.45 \n",
".. ... ... \n",
"747 Directly supervise and coordinate the activiti... 4.43 \n",
"748 Directly supervise and coordinate the activiti... 4.25 \n",
"749 Directly supervise and coordinate the activiti... 3.26 \n",
"750 Directly supervise and coordinate the activiti... 6.07 \n",
"751 Repair and replace tires. 5.26 \n",
"\n",
" frequency_category_2 frequency_category_3 frequency_category_4 ... \\\n",
"0 0.00 3.10 7.15 ... \n",
"1 6.67 33.33 10.00 ... \n",
"2 13.33 20.00 26.67 ... \n",
"3 23.81 28.57 9.52 ... \n",
"4 27.59 34.48 31.03 ... \n",
".. ... ... ... ... \n",
"747 14.98 44.06 9.94 ... \n",
"748 6.22 27.27 16.93 ... \n",
"749 3.23 9.64 18.78 ... \n",
"750 10.37 42.18 22.01 ... \n",
"751 4.94 9.61 7.48 ... \n",
"\n",
" relevance_average remote_status occ_code total_employment \\\n",
"0 97.17 remote 11-3071 198780.0 \n",
"1 100.00 remote 11-3071 198780.0 \n",
"2 100.00 remote 11-3071 198780.0 \n",
"3 91.67 remote 11-3071 198780.0 \n",
"4 96.67 remote 11-3071 198780.0 \n",
".. ... ... ... ... \n",
"747 65.94 remote 49-1011 589880.0 \n",
"748 64.30 remote 49-1011 589880.0 \n",
"749 50.24 remote 49-1011 589880.0 \n",
"750 57.57 remote 49-1011 589880.0 \n",
"751 69.89 remote 49-3093 101520.0 \n",
"\n",
" hourly_wage_average annual_wage_average lb_estimate ub_estimate \\\n",
"0 53.79 111870 4 hours 3 days \n",
"1 53.79 111870 1 week 3 weeks \n",
"2 53.79 111870 1 week 3 weeks \n",
"3 53.79 111870 3 days 1 week \n",
"4 53.79 111870 4 hours 1 week \n",
".. ... ... ... ... \n",
"747 37.99 79020 1 hour 3 days \n",
"748 37.99 79020 30 minutes 1 hour \n",
"749 37.99 79020 3 weeks 6 weeks \n",
"750 37.99 79020 4 hours 8 hours \n",
"751 17.92 37280 30 minutes 1 hour \n",
"\n",
" lb_estimate_in_hours ub_estimate_in_hours \n",
"0 4.0 72.0 \n",
"1 168.0 504.0 \n",
"2 168.0 504.0 \n",
"3 72.0 168.0 \n",
"4 4.0 168.0 \n",
".. ... ... \n",
"747 1.0 72.0 \n",
"748 0.5 1.0 \n",
"749 504.0 1008.0 \n",
"750 4.0 8.0 \n",
"751 0.5 1.0 \n",
"\n",
"[752 rows x 24 columns]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DURATION_TO_HOUR_ESTIMATE = {\n",
" '10 minutes': 0.1,\n",
" '30 minutes': .5,\n",
" '1 hour': 1,\n",
" '4 hours': 4,\n",
" '8 hours': 8,\n",
" '16 hours': 16,\n",
" '3 days': 72,\n",
" '1 week': 168,\n",
" '3 weeks': 504,\n",
" '6 weeks': 1008,\n",
" '3 months': 3 * (365.25 / 12) * 24,\n",
" '6 months': 6 * (365.25 / 12) * 24,\n",
" '1 year': 1 * 365.25 * 24,\n",
" '3 years': 3 * 365.25 * 24,\n",
" '10 years': 10 * 365.25 * 24,\n",
" '30 years': 10 * 365.25 * 24,\n",
" '60 years': 10 * 365.25 * 24,\n",
"}\n",
"\n",
"enriched_sample_df['lb_estimate_in_hours'] = enriched_sample_df['lb_estimate'].map(DURATION_TO_HOUR_ESTIMATE)\n",
"enriched_sample_df['ub_estimate_in_hours'] = enriched_sample_df['ub_estimate'].map(DURATION_TO_HOUR_ESTIMATE)\n",
"enriched_sample_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"collapsed": true,
"id": "QkEXAsALhyVi",
"jupyter": {
"outputs_hidden": true
},
"outputId": "2f747bb7-7a6d-41f4-e65b-6eea0b66cbd2"
},
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "hardest_task_df"
},
"text/html": [
"\n",
" <div id=\"df-cecc1b4f-478b-4f78-ab56-1f16bb70bb1e\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>onetsoc_code</th>\n",
" <th>task_id</th>\n",
" <th>task</th>\n",
" <th>occupation_title</th>\n",
" <th>occupation_description</th>\n",
" <th>frequency_category_1</th>\n",
" <th>frequency_category_2</th>\n",
" <th>frequency_category_3</th>\n",
" <th>frequency_category_4</th>\n",
" <th>...</th>\n",
" <th>relevance_average</th>\n",
" <th>remote_status</th>\n",
" <th>occ_code</th>\n",
" <th>total_employment</th>\n",
" <th>hourly_wage_average</th>\n",
" <th>annual_wage_average</th>\n",
" <th>lb_estimate</th>\n",
" <th>ub_estimate</th>\n",
" <th>lb_estimate_in_hours</th>\n",
" <th>ub_estimate_in_hours</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>142</th>\n",
" <td>5334</td>\n",
" <td>23-1021.00</td>\n",
" <td>7627</td>\n",
" <td>Determine existence and amount of liability ac...</td>\n",
" <td>Administrative Law Judges, Adjudicators, and H...</td>\n",
" <td>Conduct hearings to recommend or make decision...</td>\n",
" <td>0.00</td>\n",
" <td>15.55</td>\n",
" <td>6.73</td>\n",
" <td>10.48</td>\n",
" <td>...</td>\n",
" <td>92.69</td>\n",
" <td>remote</td>\n",
" <td>23-1021</td>\n",
" <td>14670.0</td>\n",
" <td>57.67</td>\n",
" <td>119940</td>\n",
" <td>3 days</td>\n",
" <td>3 weeks</td>\n",
" <td>72.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>698</th>\n",
" <td>32910</td>\n",
" <td>41-3011.00</td>\n",
" <td>4593</td>\n",
" <td>Identify new advertising markets, and propose ...</td>\n",
" <td>Advertising Sales Agents</td>\n",
" <td>Sell or solicit advertising space, time, or me...</td>\n",
" <td>0.00</td>\n",
" <td>2.33</td>\n",
" <td>25.23</td>\n",
" <td>18.22</td>\n",
" <td>...</td>\n",
" <td>78.05</td>\n",
" <td>remote</td>\n",
" <td>41-3011</td>\n",
" <td>108100.0</td>\n",
" <td>36.45</td>\n",
" <td>75820</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>676</th>\n",
" <td>31849</td>\n",
" <td>35-3011.00</td>\n",
" <td>2241</td>\n",
" <td>Create drink recipes.</td>\n",
" <td>Bartenders</td>\n",
" <td>Mix and serve drinks to patrons, directly or t...</td>\n",
" <td>0.61</td>\n",
" <td>25.31</td>\n",
" <td>16.89</td>\n",
" <td>20.69</td>\n",
" <td>...</td>\n",
" <td>74.93</td>\n",
" <td>remote</td>\n",
" <td>35-3011</td>\n",
" <td>711140.0</td>\n",
" <td>17.83</td>\n",
" <td>37090</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>714</th>\n",
" <td>33264</td>\n",
" <td>43-3031.00</td>\n",
" <td>2488</td>\n",
" <td>Comply with federal, state, and company polici...</td>\n",
" <td>Bookkeeping, Accounting, and Auditing Clerks</td>\n",
" <td>Compute, classify, and record numerical data t...</td>\n",
" <td>0.35</td>\n",
" <td>6.24</td>\n",
" <td>3.95</td>\n",
" <td>6.89</td>\n",
" <td>...</td>\n",
" <td>80.15</td>\n",
" <td>remote</td>\n",
" <td>43-3031</td>\n",
" <td>1501910.0</td>\n",
" <td>23.84</td>\n",
" <td>49580</td>\n",
" <td>1 hour</td>\n",
" <td>3 years</td>\n",
" <td>1.0</td>\n",
" <td>26298.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>682</th>\n",
" <td>32364</td>\n",
" <td>39-3092.00</td>\n",
" <td>9631</td>\n",
" <td>Recommend vendors and monitor their work.</td>\n",
" <td>Costume Attendants</td>\n",
" <td>Select, fit, and take care of costumes for cas...</td>\n",
" <td>39.34</td>\n",
" <td>26.73</td>\n",
" <td>16.48</td>\n",
" <td>8.90</td>\n",
" <td>...</td>\n",
" <td>42.45</td>\n",
" <td>remote</td>\n",
" <td>39-3092</td>\n",
" <td>6300.0</td>\n",
" <td>28.96</td>\n",
" <td>60230</td>\n",
" <td>4 hours</td>\n",
" <td>1 week</td>\n",
" <td>4.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>738</th>\n",
" <td>34247</td>\n",
" <td>45-2093.00</td>\n",
" <td>13426</td>\n",
" <td>Maintain growth, feeding, production, and cost...</td>\n",
" <td>Farmworkers, Farm, Ranch, and Aquacultural Ani...</td>\n",
" <td>Attend to live farm, ranch, open range or aqua...</td>\n",
" <td>0.17</td>\n",
" <td>18.90</td>\n",
" <td>43.56</td>\n",
" <td>27.40</td>\n",
" <td>...</td>\n",
" <td>46.50</td>\n",
" <td>remote</td>\n",
" <td>45-2093</td>\n",
" <td>32590.0</td>\n",
" <td>17.82</td>\n",
" <td>37060</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>2965</td>\n",
" <td>17-2111.02</td>\n",
" <td>8990</td>\n",
" <td>Study the relationships between ignition sourc...</td>\n",
" <td>Fire-Prevention and Protection Engineers</td>\n",
" <td>Research causes of fires, determine fire prote...</td>\n",
" <td>27.78</td>\n",
" <td>38.89</td>\n",
" <td>16.67</td>\n",
" <td>5.56</td>\n",
" <td>...</td>\n",
" <td>90.00</td>\n",
" <td>remote</td>\n",
" <td>17-2111</td>\n",
" <td>22510.0</td>\n",
" <td>52.28</td>\n",
" <td>108740</td>\n",
" <td>3 days</td>\n",
" <td>6 weeks</td>\n",
" <td>72.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>749</th>\n",
" <td>35503</td>\n",
" <td>49-1011.00</td>\n",
" <td>2931</td>\n",
" <td>Develop or implement electronic maintenance pr...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>3.26</td>\n",
" <td>3.23</td>\n",
" <td>9.64</td>\n",
" <td>18.78</td>\n",
" <td>...</td>\n",
" <td>50.24</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>125</th>\n",
" <td>4770</td>\n",
" <td>19-4043.00</td>\n",
" <td>22270</td>\n",
" <td>Interview individuals, and research public dat...</td>\n",
" <td>Geological Technicians, Except Hydrologic Tech...</td>\n",
" <td>Assist scientists or engineers in the use of e...</td>\n",
" <td>5.12</td>\n",
" <td>19.99</td>\n",
" <td>30.66</td>\n",
" <td>25.32</td>\n",
" <td>...</td>\n",
" <td>75.63</td>\n",
" <td>remote</td>\n",
" <td>19-4043</td>\n",
" <td>8860.0</td>\n",
" <td>31.05</td>\n",
" <td>64590</td>\n",
" <td>3 days</td>\n",
" <td>1 week</td>\n",
" <td>72.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>81</th>\n",
" <td>4274</td>\n",
" <td>19-2042.00</td>\n",
" <td>19769</td>\n",
" <td>Research geomechanical or geochemical processe...</td>\n",
" <td>Geoscientists, Except Hydrologists and Geograp...</td>\n",
" <td>Study the composition, structure, and other ph...</td>\n",
" <td>75.00</td>\n",
" <td>8.33</td>\n",
" <td>8.33</td>\n",
" <td>8.33</td>\n",
" <td>...</td>\n",
" <td>38.71</td>\n",
" <td>remote</td>\n",
" <td>19-2042</td>\n",
" <td>24620.0</td>\n",
" <td>50</td>\n",
" <td>104000</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>2946</td>\n",
" <td>17-2111.00</td>\n",
" <td>21877</td>\n",
" <td>Develop industry standards of product safety.</td>\n",
" <td>Health and Safety Engineers, Except Mining Saf...</td>\n",
" <td>Promote worksite or product safety by applying...</td>\n",
" <td>23.53</td>\n",
" <td>29.41</td>\n",
" <td>35.29</td>\n",
" <td>11.76</td>\n",
" <td>...</td>\n",
" <td>78.26</td>\n",
" <td>remote</td>\n",
" <td>17-2111</td>\n",
" <td>22510.0</td>\n",
" <td>52.28</td>\n",
" <td>108740</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>4390</td>\n",
" <td>19-3032.00</td>\n",
" <td>7567</td>\n",
" <td>Formulate and implement training programs, app...</td>\n",
" <td>Industrial-Organizational Psychologists</td>\n",
" <td>Apply principles of psychology to human resour...</td>\n",
" <td>15.38</td>\n",
" <td>42.31</td>\n",
" <td>19.23</td>\n",
" <td>15.38</td>\n",
" <td>...</td>\n",
" <td>100.00</td>\n",
" <td>remote</td>\n",
" <td>19-3032</td>\n",
" <td>1030.0</td>\n",
" <td>74.22</td>\n",
" <td>154380</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>740</th>\n",
" <td>34749</td>\n",
" <td>47-2132.00</td>\n",
" <td>13560</td>\n",
" <td>Read blueprints and specifications to determin...</td>\n",
" <td>Insulation Workers, Mechanical</td>\n",
" <td>Apply insulating materials to pipes or ductwor...</td>\n",
" <td>4.81</td>\n",
" <td>3.22</td>\n",
" <td>16.08</td>\n",
" <td>29.99</td>\n",
" <td>...</td>\n",
" <td>95.42</td>\n",
" <td>remote</td>\n",
" <td>47-2132</td>\n",
" <td>22850.0</td>\n",
" <td>29.1</td>\n",
" <td>60530</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>651</th>\n",
" <td>26473</td>\n",
" <td>25-2012.00</td>\n",
" <td>6519</td>\n",
" <td>Collaborate with other teachers and administra...</td>\n",
" <td>Kindergarten Teachers, Except Special Education</td>\n",
" <td>Teach academic and social skills to kindergart...</td>\n",
" <td>3.51</td>\n",
" <td>8.18</td>\n",
" <td>24.22</td>\n",
" <td>27.09</td>\n",
" <td>...</td>\n",
" <td>97.10</td>\n",
" <td>remote</td>\n",
" <td>25-2012</td>\n",
" <td>118580.0</td>\n",
" <td>*</td>\n",
" <td>67790</td>\n",
" <td>3 days</td>\n",
" <td>3 weeks</td>\n",
" <td>72.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>359</th>\n",
" <td>20317</td>\n",
" <td>25-1112.00</td>\n",
" <td>6222</td>\n",
" <td>Maintain regularly scheduled office hours to a...</td>\n",
" <td>Law Teachers, Postsecondary</td>\n",
" <td>Teach courses in law. Includes both teachers p...</td>\n",
" <td>1.02</td>\n",
" <td>4.08</td>\n",
" <td>17.48</td>\n",
" <td>50.25</td>\n",
" <td>...</td>\n",
" <td>91.64</td>\n",
" <td>remote</td>\n",
" <td>25-1112</td>\n",
" <td>14570.0</td>\n",
" <td>*</td>\n",
" <td>142440</td>\n",
" <td>1 hour</td>\n",
" <td>3 years</td>\n",
" <td>1.0</td>\n",
" <td>26298.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>140</th>\n",
" <td>5069</td>\n",
" <td>21-1013.00</td>\n",
" <td>9196</td>\n",
" <td>Provide public education and consultation to o...</td>\n",
" <td>Marriage and Family Therapists</td>\n",
" <td>Diagnose and treat mental and emotional disord...</td>\n",
" <td>17.32</td>\n",
" <td>31.77</td>\n",
" <td>33.40</td>\n",
" <td>13.85</td>\n",
" <td>...</td>\n",
" <td>72.63</td>\n",
" <td>remote</td>\n",
" <td>21-1013</td>\n",
" <td>63340.0</td>\n",
" <td>33.04</td>\n",
" <td>68730</td>\n",
" <td>3 days</td>\n",
" <td>1 week</td>\n",
" <td>72.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>132</th>\n",
" <td>4965</td>\n",
" <td>19-5012.00</td>\n",
" <td>11097</td>\n",
" <td>Prepare documents to be used in legal proceedi...</td>\n",
" <td>Occupational Health and Safety Technicians</td>\n",
" <td>Collect data on work environments for analysis...</td>\n",
" <td>75.00</td>\n",
" <td>18.75</td>\n",
" <td>6.25</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>76.19</td>\n",
" <td>remote</td>\n",
" <td>19-5012</td>\n",
" <td>27270.0</td>\n",
" <td>30.89</td>\n",
" <td>64250</td>\n",
" <td>3 days</td>\n",
" <td>1 week</td>\n",
" <td>72.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>674</th>\n",
" <td>31127</td>\n",
" <td>31-9095.00</td>\n",
" <td>2057</td>\n",
" <td>Prepare, maintain, and record records of inven...</td>\n",
" <td>Pharmacy Aides</td>\n",
" <td>Record drugs delivered to the pharmacy, store ...</td>\n",
" <td>2.09</td>\n",
" <td>0.24</td>\n",
" <td>7.58</td>\n",
" <td>33.19</td>\n",
" <td>...</td>\n",
" <td>61.29</td>\n",
" <td>remote</td>\n",
" <td>31-9095</td>\n",
" <td>43830.0</td>\n",
" <td>18.74</td>\n",
" <td>38980</td>\n",
" <td>1 hour</td>\n",
" <td>3 days</td>\n",
" <td>1.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>736</th>\n",
" <td>33799</td>\n",
" <td>43-5051.00</td>\n",
" <td>20905</td>\n",
" <td>Order retail items and other supplies for offi...</td>\n",
" <td>Postal Service Clerks</td>\n",
" <td>Perform any combination of tasks in a United S...</td>\n",
" <td>5.22</td>\n",
" <td>9.12</td>\n",
" <td>28.52</td>\n",
" <td>37.90</td>\n",
" <td>...</td>\n",
" <td>41.14</td>\n",
" <td>remote</td>\n",
" <td>43-5051</td>\n",
" <td>78130.0</td>\n",
" <td>28.48</td>\n",
" <td>59240</td>\n",
" <td>30 minutes</td>\n",
" <td>3 days</td>\n",
" <td>0.5</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>670</th>\n",
" <td>29100</td>\n",
" <td>27-4014.00</td>\n",
" <td>18661</td>\n",
" <td>Convert video and audio recordings into digita...</td>\n",
" <td>Sound Engineering Technicians</td>\n",
" <td>Assemble and operate equipment to record, sync...</td>\n",
" <td>8.00</td>\n",
" <td>16.00</td>\n",
" <td>36.00</td>\n",
" <td>8.00</td>\n",
" <td>...</td>\n",
" <td>92.59</td>\n",
" <td>remote</td>\n",
" <td>27-4014</td>\n",
" <td>14600.0</td>\n",
" <td>35.62</td>\n",
" <td>74100</td>\n",
" <td>4 hours</td>\n",
" <td>8 hours</td>\n",
" <td>4.0</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>403</td>\n",
" <td>11-3071.04</td>\n",
" <td>15692</td>\n",
" <td>Develop or implement procedures or systems to ...</td>\n",
" <td>Supply Chain Managers</td>\n",
" <td>Direct or coordinate production, purchasing, w...</td>\n",
" <td>55.56</td>\n",
" <td>27.78</td>\n",
" <td>16.67</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>85.71</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>3 weeks</td>\n",
" <td>3 months</td>\n",
" <td>504.0</td>\n",
" <td>2191.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>706</th>\n",
" <td>33145</td>\n",
" <td>41-9041.00</td>\n",
" <td>4618</td>\n",
" <td>Deliver prepared sales talks, reading from scr...</td>\n",
" <td>Telemarketers</td>\n",
" <td>Solicit donations or orders for goods or servi...</td>\n",
" <td>7.95</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.94</td>\n",
" <td>...</td>\n",
" <td>85.23</td>\n",
" <td>remote</td>\n",
" <td>41-9041</td>\n",
" <td>81580.0</td>\n",
" <td>17.64</td>\n",
" <td>36680</td>\n",
" <td>1 hour</td>\n",
" <td>3 days</td>\n",
" <td>1.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>739</th>\n",
" <td>34499</td>\n",
" <td>47-2044.00</td>\n",
" <td>2854</td>\n",
" <td>Prepare cost and labor estimates, based on cal...</td>\n",
" <td>Tile and Stone Setters</td>\n",
" <td>Apply hard tile, stone, and comparable materia...</td>\n",
" <td>22.25</td>\n",
" <td>0.95</td>\n",
" <td>22.13</td>\n",
" <td>36.75</td>\n",
" <td>...</td>\n",
" <td>46.55</td>\n",
" <td>remote</td>\n",
" <td>47-2044</td>\n",
" <td>42420.0</td>\n",
" <td>25.92</td>\n",
" <td>53920</td>\n",
" <td>1 hour</td>\n",
" <td>3 days</td>\n",
" <td>1.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>751</th>\n",
" <td>36002</td>\n",
" <td>49-3093.00</td>\n",
" <td>8383</td>\n",
" <td>Order replacements for tires or tubes.</td>\n",
" <td>Tire Repairers and Changers</td>\n",
" <td>Repair and replace tires.</td>\n",
" <td>5.26</td>\n",
" <td>4.94</td>\n",
" <td>9.61</td>\n",
" <td>7.48</td>\n",
" <td>...</td>\n",
" <td>69.89</td>\n",
" <td>remote</td>\n",
" <td>49-3093</td>\n",
" <td>101520.0</td>\n",
" <td>17.92</td>\n",
" <td>37280</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>364</td>\n",
" <td>11-3071.00</td>\n",
" <td>21345</td>\n",
" <td>Analyze all aspects of corporate logistics to ...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>10.00</td>\n",
" <td>13.33</td>\n",
" <td>20.00</td>\n",
" <td>26.67</td>\n",
" <td>...</td>\n",
" <td>100.00</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>118</th>\n",
" <td>4534</td>\n",
" <td>19-3051.00</td>\n",
" <td>233</td>\n",
" <td>Supervise or coordinate the work of urban plan...</td>\n",
" <td>Urban and Regional Planners</td>\n",
" <td>Develop comprehensive plans and programs for u...</td>\n",
" <td>4.17</td>\n",
" <td>4.17</td>\n",
" <td>8.33</td>\n",
" <td>20.83</td>\n",
" <td>...</td>\n",
" <td>96.00</td>\n",
" <td>remote</td>\n",
" <td>19-3051</td>\n",
" <td>42690.0</td>\n",
" <td>41.32</td>\n",
" <td>85940</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>3846</td>\n",
" <td>19-1023.00</td>\n",
" <td>23958</td>\n",
" <td>Conduct literature reviews.</td>\n",
" <td>Zoologists and Wildlife Biologists</td>\n",
" <td>Study the origins, behavior, diseases, genetic...</td>\n",
" <td>16.50</td>\n",
" <td>36.10</td>\n",
" <td>21.62</td>\n",
" <td>17.76</td>\n",
" <td>...</td>\n",
" <td>82.88</td>\n",
" <td>remote</td>\n",
" <td>19-1023</td>\n",
" <td>17100.0</td>\n",
" <td>36.41</td>\n",
" <td>75740</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>27 rows × 24 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-cecc1b4f-478b-4f78-ab56-1f16bb70bb1e')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-cecc1b4f-478b-4f78-ab56-1f16bb70bb1e button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-cecc1b4f-478b-4f78-ab56-1f16bb70bb1e');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" <div id=\"df-3d0f60a8-2728-46d7-9a6c-db0f3922801f\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3d0f60a8-2728-46d7-9a6c-db0f3922801f')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-3d0f60a8-2728-46d7-9a6c-db0f3922801f button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" <div id=\"id_690b2ac3-8d5d-4f80-b9b4-04583e2f04fd\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('hardest_task_df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_690b2ac3-8d5d-4f80-b9b4-04583e2f04fd button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('hardest_task_df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" Unnamed: 0 onetsoc_code task_id \\\n",
"142 5334 23-1021.00 7627 \n",
"698 32910 41-3011.00 4593 \n",
"676 31849 35-3011.00 2241 \n",
"714 33264 43-3031.00 2488 \n",
"682 32364 39-3092.00 9631 \n",
"738 34247 45-2093.00 13426 \n",
"65 2965 17-2111.02 8990 \n",
"749 35503 49-1011.00 2931 \n",
"125 4770 19-4043.00 22270 \n",
"81 4274 19-2042.00 19769 \n",
"56 2946 17-2111.00 21877 \n",
"97 4390 19-3032.00 7567 \n",
"740 34749 47-2132.00 13560 \n",
"651 26473 25-2012.00 6519 \n",
"359 20317 25-1112.00 6222 \n",
"140 5069 21-1013.00 9196 \n",
"132 4965 19-5012.00 11097 \n",
"674 31127 31-9095.00 2057 \n",
"736 33799 43-5051.00 20905 \n",
"670 29100 27-4014.00 18661 \n",
"31 403 11-3071.04 15692 \n",
"706 33145 41-9041.00 4618 \n",
"739 34499 47-2044.00 2854 \n",
"751 36002 49-3093.00 8383 \n",
"2 364 11-3071.00 21345 \n",
"118 4534 19-3051.00 233 \n",
"70 3846 19-1023.00 23958 \n",
"\n",
" task \\\n",
"142 Determine existence and amount of liability ac... \n",
"698 Identify new advertising markets, and propose ... \n",
"676 Create drink recipes. \n",
"714 Comply with federal, state, and company polici... \n",
"682 Recommend vendors and monitor their work. \n",
"738 Maintain growth, feeding, production, and cost... \n",
"65 Study the relationships between ignition sourc... \n",
"749 Develop or implement electronic maintenance pr... \n",
"125 Interview individuals, and research public dat... \n",
"81 Research geomechanical or geochemical processe... \n",
"56 Develop industry standards of product safety. \n",
"97 Formulate and implement training programs, app... \n",
"740 Read blueprints and specifications to determin... \n",
"651 Collaborate with other teachers and administra... \n",
"359 Maintain regularly scheduled office hours to a... \n",
"140 Provide public education and consultation to o... \n",
"132 Prepare documents to be used in legal proceedi... \n",
"674 Prepare, maintain, and record records of inven... \n",
"736 Order retail items and other supplies for offi... \n",
"670 Convert video and audio recordings into digita... \n",
"31 Develop or implement procedures or systems to ... \n",
"706 Deliver prepared sales talks, reading from scr... \n",
"739 Prepare cost and labor estimates, based on cal... \n",
"751 Order replacements for tires or tubes. \n",
"2 Analyze all aspects of corporate logistics to ... \n",
"118 Supervise or coordinate the work of urban plan... \n",
"70 Conduct literature reviews. \n",
"\n",
" occupation_title \\\n",
"142 Administrative Law Judges, Adjudicators, and H... \n",
"698 Advertising Sales Agents \n",
"676 Bartenders \n",
"714 Bookkeeping, Accounting, and Auditing Clerks \n",
"682 Costume Attendants \n",
"738 Farmworkers, Farm, Ranch, and Aquacultural Ani... \n",
"65 Fire-Prevention and Protection Engineers \n",
"749 First-Line Supervisors of Mechanics, Installer... \n",
"125 Geological Technicians, Except Hydrologic Tech... \n",
"81 Geoscientists, Except Hydrologists and Geograp... \n",
"56 Health and Safety Engineers, Except Mining Saf... \n",
"97 Industrial-Organizational Psychologists \n",
"740 Insulation Workers, Mechanical \n",
"651 Kindergarten Teachers, Except Special Education \n",
"359 Law Teachers, Postsecondary \n",
"140 Marriage and Family Therapists \n",
"132 Occupational Health and Safety Technicians \n",
"674 Pharmacy Aides \n",
"736 Postal Service Clerks \n",
"670 Sound Engineering Technicians \n",
"31 Supply Chain Managers \n",
"706 Telemarketers \n",
"739 Tile and Stone Setters \n",
"751 Tire Repairers and Changers \n",
"2 Transportation, Storage, and Distribution Mana... \n",
"118 Urban and Regional Planners \n",
"70 Zoologists and Wildlife Biologists \n",
"\n",
" occupation_description frequency_category_1 \\\n",
"142 Conduct hearings to recommend or make decision... 0.00 \n",
"698 Sell or solicit advertising space, time, or me... 0.00 \n",
"676 Mix and serve drinks to patrons, directly or t... 0.61 \n",
"714 Compute, classify, and record numerical data t... 0.35 \n",
"682 Select, fit, and take care of costumes for cas... 39.34 \n",
"738 Attend to live farm, ranch, open range or aqua... 0.17 \n",
"65 Research causes of fires, determine fire prote... 27.78 \n",
"749 Directly supervise and coordinate the activiti... 3.26 \n",
"125 Assist scientists or engineers in the use of e... 5.12 \n",
"81 Study the composition, structure, and other ph... 75.00 \n",
"56 Promote worksite or product safety by applying... 23.53 \n",
"97 Apply principles of psychology to human resour... 15.38 \n",
"740 Apply insulating materials to pipes or ductwor... 4.81 \n",
"651 Teach academic and social skills to kindergart... 3.51 \n",
"359 Teach courses in law. Includes both teachers p... 1.02 \n",
"140 Diagnose and treat mental and emotional disord... 17.32 \n",
"132 Collect data on work environments for analysis... 75.00 \n",
"674 Record drugs delivered to the pharmacy, store ... 2.09 \n",
"736 Perform any combination of tasks in a United S... 5.22 \n",
"670 Assemble and operate equipment to record, sync... 8.00 \n",
"31 Direct or coordinate production, purchasing, w... 55.56 \n",
"706 Solicit donations or orders for goods or servi... 7.95 \n",
"739 Apply hard tile, stone, and comparable materia... 22.25 \n",
"751 Repair and replace tires. 5.26 \n",
"2 Plan, direct, or coordinate transportation, st... 10.00 \n",
"118 Develop comprehensive plans and programs for u... 4.17 \n",
"70 Study the origins, behavior, diseases, genetic... 16.50 \n",
"\n",
" frequency_category_2 frequency_category_3 frequency_category_4 ... \\\n",
"142 15.55 6.73 10.48 ... \n",
"698 2.33 25.23 18.22 ... \n",
"676 25.31 16.89 20.69 ... \n",
"714 6.24 3.95 6.89 ... \n",
"682 26.73 16.48 8.90 ... \n",
"738 18.90 43.56 27.40 ... \n",
"65 38.89 16.67 5.56 ... \n",
"749 3.23 9.64 18.78 ... \n",
"125 19.99 30.66 25.32 ... \n",
"81 8.33 8.33 8.33 ... \n",
"56 29.41 35.29 11.76 ... \n",
"97 42.31 19.23 15.38 ... \n",
"740 3.22 16.08 29.99 ... \n",
"651 8.18 24.22 27.09 ... \n",
"359 4.08 17.48 50.25 ... \n",
"140 31.77 33.40 13.85 ... \n",
"132 18.75 6.25 0.00 ... \n",
"674 0.24 7.58 33.19 ... \n",
"736 9.12 28.52 37.90 ... \n",
"670 16.00 36.00 8.00 ... \n",
"31 27.78 16.67 0.00 ... \n",
"706 0.00 0.00 0.94 ... \n",
"739 0.95 22.13 36.75 ... \n",
"751 4.94 9.61 7.48 ... \n",
"2 13.33 20.00 26.67 ... \n",
"118 4.17 8.33 20.83 ... \n",
"70 36.10 21.62 17.76 ... \n",
"\n",
" relevance_average remote_status occ_code total_employment \\\n",
"142 92.69 remote 23-1021 14670.0 \n",
"698 78.05 remote 41-3011 108100.0 \n",
"676 74.93 remote 35-3011 711140.0 \n",
"714 80.15 remote 43-3031 1501910.0 \n",
"682 42.45 remote 39-3092 6300.0 \n",
"738 46.50 remote 45-2093 32590.0 \n",
"65 90.00 remote 17-2111 22510.0 \n",
"749 50.24 remote 49-1011 589880.0 \n",
"125 75.63 remote 19-4043 8860.0 \n",
"81 38.71 remote 19-2042 24620.0 \n",
"56 78.26 remote 17-2111 22510.0 \n",
"97 100.00 remote 19-3032 1030.0 \n",
"740 95.42 remote 47-2132 22850.0 \n",
"651 97.10 remote 25-2012 118580.0 \n",
"359 91.64 remote 25-1112 14570.0 \n",
"140 72.63 remote 21-1013 63340.0 \n",
"132 76.19 remote 19-5012 27270.0 \n",
"674 61.29 remote 31-9095 43830.0 \n",
"736 41.14 remote 43-5051 78130.0 \n",
"670 92.59 remote 27-4014 14600.0 \n",
"31 85.71 remote 11-3071 198780.0 \n",
"706 85.23 remote 41-9041 81580.0 \n",
"739 46.55 remote 47-2044 42420.0 \n",
"751 69.89 remote 49-3093 101520.0 \n",
"2 100.00 remote 11-3071 198780.0 \n",
"118 96.00 remote 19-3051 42690.0 \n",
"70 82.88 remote 19-1023 17100.0 \n",
"\n",
" hourly_wage_average annual_wage_average lb_estimate ub_estimate \\\n",
"142 57.67 119940 3 days 3 weeks \n",
"698 36.45 75820 1 week 3 weeks \n",
"676 17.83 37090 30 minutes 1 hour \n",
"714 23.84 49580 1 hour 3 years \n",
"682 28.96 60230 4 hours 1 week \n",
"738 17.82 37060 30 minutes 1 hour \n",
"65 52.28 108740 3 days 6 weeks \n",
"749 37.99 79020 3 weeks 6 weeks \n",
"125 31.05 64590 3 days 1 week \n",
"81 50 104000 3 weeks 6 weeks \n",
"56 52.28 108740 3 weeks 6 weeks \n",
"97 74.22 154380 3 weeks 6 weeks \n",
"740 29.1 60530 30 minutes 1 hour \n",
"651 * 67790 3 days 3 weeks \n",
"359 * 142440 1 hour 3 years \n",
"140 33.04 68730 3 days 1 week \n",
"132 30.89 64250 3 days 1 week \n",
"674 18.74 38980 1 hour 3 days \n",
"736 28.48 59240 30 minutes 3 days \n",
"670 35.62 74100 4 hours 8 hours \n",
"31 53.79 111870 3 weeks 3 months \n",
"706 17.64 36680 1 hour 3 days \n",
"739 25.92 53920 1 hour 3 days \n",
"751 17.92 37280 30 minutes 1 hour \n",
"2 53.79 111870 1 week 3 weeks \n",
"118 41.32 85940 3 weeks 6 weeks \n",
"70 36.41 75740 1 week 3 weeks \n",
"\n",
" lb_estimate_in_hours ub_estimate_in_hours \n",
"142 72.0 504.0 \n",
"698 168.0 504.0 \n",
"676 0.5 1.0 \n",
"714 1.0 26298.0 \n",
"682 4.0 168.0 \n",
"738 0.5 1.0 \n",
"65 72.0 1008.0 \n",
"749 504.0 1008.0 \n",
"125 72.0 168.0 \n",
"81 504.0 1008.0 \n",
"56 504.0 1008.0 \n",
"97 504.0 1008.0 \n",
"740 0.5 1.0 \n",
"651 72.0 504.0 \n",
"359 1.0 26298.0 \n",
"140 72.0 168.0 \n",
"132 72.0 168.0 \n",
"674 1.0 72.0 \n",
"736 0.5 72.0 \n",
"670 4.0 8.0 \n",
"31 504.0 2191.5 \n",
"706 1.0 72.0 \n",
"739 1.0 72.0 \n",
"751 0.5 1.0 \n",
"2 168.0 504.0 \n",
"118 504.0 1008.0 \n",
"70 168.0 504.0 \n",
"\n",
"[27 rows x 24 columns]"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hardest_task_df = enriched_sample_df.loc[enriched_sample_df.groupby('occupation_title')['ub_estimate_in_hours'].idxmax()]\n",
"hardest_task_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"collapsed": true,
"id": "BMsZWYvM4Bfh",
"jupyter": {
"outputs_hidden": true
},
"outputId": "81b7418f-534d-446d-97c0-0ef8cbfe6554"
},
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "enriched_sample_df"
},
"text/html": [
"\n",
" <div id=\"df-d918d25e-643f-4586-9439-a5a4be2222d8\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>onetsoc_code</th>\n",
" <th>task_id</th>\n",
" <th>task</th>\n",
" <th>occupation_title</th>\n",
" <th>occupation_description</th>\n",
" <th>frequency_category_1</th>\n",
" <th>frequency_category_2</th>\n",
" <th>frequency_category_3</th>\n",
" <th>frequency_category_4</th>\n",
" <th>...</th>\n",
" <th>relevance_average</th>\n",
" <th>remote_status</th>\n",
" <th>occ_code</th>\n",
" <th>total_employment</th>\n",
" <th>hourly_wage_average</th>\n",
" <th>annual_wage_average</th>\n",
" <th>lb_estimate</th>\n",
" <th>ub_estimate</th>\n",
" <th>lb_estimate_in_hours</th>\n",
" <th>ub_estimate_in_hours</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>362</td>\n",
" <td>11-3071.00</td>\n",
" <td>21343</td>\n",
" <td>Plan, organize, or manage the work of subordin...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>3.10</td>\n",
" <td>7.15</td>\n",
" <td>...</td>\n",
" <td>97.17</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>4 hours</td>\n",
" <td>3 days</td>\n",
" <td>4.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>363</td>\n",
" <td>11-3071.00</td>\n",
" <td>21344</td>\n",
" <td>Collaborate with other departments to integrat...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>3.33</td>\n",
" <td>6.67</td>\n",
" <td>33.33</td>\n",
" <td>10.00</td>\n",
" <td>...</td>\n",
" <td>100.00</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>364</td>\n",
" <td>11-3071.00</td>\n",
" <td>21345</td>\n",
" <td>Analyze all aspects of corporate logistics to ...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>10.00</td>\n",
" <td>13.33</td>\n",
" <td>20.00</td>\n",
" <td>26.67</td>\n",
" <td>...</td>\n",
" <td>100.00</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>1 week</td>\n",
" <td>3 weeks</td>\n",
" <td>168.0</td>\n",
" <td>504.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>366</td>\n",
" <td>11-3071.00</td>\n",
" <td>21347</td>\n",
" <td>Develop and document standard and emergency op...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>23.81</td>\n",
" <td>23.81</td>\n",
" <td>28.57</td>\n",
" <td>9.52</td>\n",
" <td>...</td>\n",
" <td>91.67</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>3 days</td>\n",
" <td>1 week</td>\n",
" <td>72.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>368</td>\n",
" <td>11-3071.00</td>\n",
" <td>21349</td>\n",
" <td>Analyze the financial impact of proposed logis...</td>\n",
" <td>Transportation, Storage, and Distribution Mana...</td>\n",
" <td>Plan, direct, or coordinate transportation, st...</td>\n",
" <td>3.45</td>\n",
" <td>27.59</td>\n",
" <td>34.48</td>\n",
" <td>31.03</td>\n",
" <td>...</td>\n",
" <td>96.67</td>\n",
" <td>remote</td>\n",
" <td>11-3071</td>\n",
" <td>198780.0</td>\n",
" <td>53.79</td>\n",
" <td>111870</td>\n",
" <td>4 hours</td>\n",
" <td>1 week</td>\n",
" <td>4.0</td>\n",
" <td>168.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>747</th>\n",
" <td>35501</td>\n",
" <td>49-1011.00</td>\n",
" <td>15264</td>\n",
" <td>Review, evaluate, accept, and coordinate compl...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>4.43</td>\n",
" <td>14.98</td>\n",
" <td>44.06</td>\n",
" <td>9.94</td>\n",
" <td>...</td>\n",
" <td>65.94</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>1 hour</td>\n",
" <td>3 days</td>\n",
" <td>1.0</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>748</th>\n",
" <td>35502</td>\n",
" <td>49-1011.00</td>\n",
" <td>2926</td>\n",
" <td>Compile operational or personnel records, such...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>4.25</td>\n",
" <td>6.22</td>\n",
" <td>27.27</td>\n",
" <td>16.93</td>\n",
" <td>...</td>\n",
" <td>64.30</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>749</th>\n",
" <td>35503</td>\n",
" <td>49-1011.00</td>\n",
" <td>2931</td>\n",
" <td>Develop or implement electronic maintenance pr...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>3.26</td>\n",
" <td>3.23</td>\n",
" <td>9.64</td>\n",
" <td>18.78</td>\n",
" <td>...</td>\n",
" <td>50.24</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>3 weeks</td>\n",
" <td>6 weeks</td>\n",
" <td>504.0</td>\n",
" <td>1008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>750</th>\n",
" <td>35504</td>\n",
" <td>49-1011.00</td>\n",
" <td>2932</td>\n",
" <td>Design equipment configurations to meet person...</td>\n",
" <td>First-Line Supervisors of Mechanics, Installer...</td>\n",
" <td>Directly supervise and coordinate the activiti...</td>\n",
" <td>6.07</td>\n",
" <td>10.37</td>\n",
" <td>42.18</td>\n",
" <td>22.01</td>\n",
" <td>...</td>\n",
" <td>57.57</td>\n",
" <td>remote</td>\n",
" <td>49-1011</td>\n",
" <td>589880.0</td>\n",
" <td>37.99</td>\n",
" <td>79020</td>\n",
" <td>4 hours</td>\n",
" <td>8 hours</td>\n",
" <td>4.0</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>751</th>\n",
" <td>36002</td>\n",
" <td>49-3093.00</td>\n",
" <td>8383</td>\n",
" <td>Order replacements for tires or tubes.</td>\n",
" <td>Tire Repairers and Changers</td>\n",
" <td>Repair and replace tires.</td>\n",
" <td>5.26</td>\n",
" <td>4.94</td>\n",
" <td>9.61</td>\n",
" <td>7.48</td>\n",
" <td>...</td>\n",
" <td>69.89</td>\n",
" <td>remote</td>\n",
" <td>49-3093</td>\n",
" <td>101520.0</td>\n",
" <td>17.92</td>\n",
" <td>37280</td>\n",
" <td>30 minutes</td>\n",
" <td>1 hour</td>\n",
" <td>0.5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>752 rows × 24 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d918d25e-643f-4586-9439-a5a4be2222d8')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-d918d25e-643f-4586-9439-a5a4be2222d8 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-d918d25e-643f-4586-9439-a5a4be2222d8');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" <div id=\"df-562c4efd-3d0a-4564-afd9-113d3b641858\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-562c4efd-3d0a-4564-afd9-113d3b641858')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-562c4efd-3d0a-4564-afd9-113d3b641858 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" <div id=\"id_c132fb94-dff1-4d25-b8e7-2646c5fb5c7a\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('enriched_sample_df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_c132fb94-dff1-4d25-b8e7-2646c5fb5c7a button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('enriched_sample_df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" Unnamed: 0 onetsoc_code task_id \\\n",
"0 362 11-3071.00 21343 \n",
"1 363 11-3071.00 21344 \n",
"2 364 11-3071.00 21345 \n",
"3 366 11-3071.00 21347 \n",
"4 368 11-3071.00 21349 \n",
".. ... ... ... \n",
"747 35501 49-1011.00 15264 \n",
"748 35502 49-1011.00 2926 \n",
"749 35503 49-1011.00 2931 \n",
"750 35504 49-1011.00 2932 \n",
"751 36002 49-3093.00 8383 \n",
"\n",
" task \\\n",
"0 Plan, organize, or manage the work of subordin... \n",
"1 Collaborate with other departments to integrat... \n",
"2 Analyze all aspects of corporate logistics to ... \n",
"3 Develop and document standard and emergency op... \n",
"4 Analyze the financial impact of proposed logis... \n",
".. ... \n",
"747 Review, evaluate, accept, and coordinate compl... \n",
"748 Compile operational or personnel records, such... \n",
"749 Develop or implement electronic maintenance pr... \n",
"750 Design equipment configurations to meet person... \n",
"751 Order replacements for tires or tubes. \n",
"\n",
" occupation_title \\\n",
"0 Transportation, Storage, and Distribution Mana... \n",
"1 Transportation, Storage, and Distribution Mana... \n",
"2 Transportation, Storage, and Distribution Mana... \n",
"3 Transportation, Storage, and Distribution Mana... \n",
"4 Transportation, Storage, and Distribution Mana... \n",
".. ... \n",
"747 First-Line Supervisors of Mechanics, Installer... \n",
"748 First-Line Supervisors of Mechanics, Installer... \n",
"749 First-Line Supervisors of Mechanics, Installer... \n",
"750 First-Line Supervisors of Mechanics, Installer... \n",
"751 Tire Repairers and Changers \n",
"\n",
" occupation_description frequency_category_1 \\\n",
"0 Plan, direct, or coordinate transportation, st... 0.00 \n",
"1 Plan, direct, or coordinate transportation, st... 3.33 \n",
"2 Plan, direct, or coordinate transportation, st... 10.00 \n",
"3 Plan, direct, or coordinate transportation, st... 23.81 \n",
"4 Plan, direct, or coordinate transportation, st... 3.45 \n",
".. ... ... \n",
"747 Directly supervise and coordinate the activiti... 4.43 \n",
"748 Directly supervise and coordinate the activiti... 4.25 \n",
"749 Directly supervise and coordinate the activiti... 3.26 \n",
"750 Directly supervise and coordinate the activiti... 6.07 \n",
"751 Repair and replace tires. 5.26 \n",
"\n",
" frequency_category_2 frequency_category_3 frequency_category_4 ... \\\n",
"0 0.00 3.10 7.15 ... \n",
"1 6.67 33.33 10.00 ... \n",
"2 13.33 20.00 26.67 ... \n",
"3 23.81 28.57 9.52 ... \n",
"4 27.59 34.48 31.03 ... \n",
".. ... ... ... ... \n",
"747 14.98 44.06 9.94 ... \n",
"748 6.22 27.27 16.93 ... \n",
"749 3.23 9.64 18.78 ... \n",
"750 10.37 42.18 22.01 ... \n",
"751 4.94 9.61 7.48 ... \n",
"\n",
" relevance_average remote_status occ_code total_employment \\\n",
"0 97.17 remote 11-3071 198780.0 \n",
"1 100.00 remote 11-3071 198780.0 \n",
"2 100.00 remote 11-3071 198780.0 \n",
"3 91.67 remote 11-3071 198780.0 \n",
"4 96.67 remote 11-3071 198780.0 \n",
".. ... ... ... ... \n",
"747 65.94 remote 49-1011 589880.0 \n",
"748 64.30 remote 49-1011 589880.0 \n",
"749 50.24 remote 49-1011 589880.0 \n",
"750 57.57 remote 49-1011 589880.0 \n",
"751 69.89 remote 49-3093 101520.0 \n",
"\n",
" hourly_wage_average annual_wage_average lb_estimate ub_estimate \\\n",
"0 53.79 111870 4 hours 3 days \n",
"1 53.79 111870 1 week 3 weeks \n",
"2 53.79 111870 1 week 3 weeks \n",
"3 53.79 111870 3 days 1 week \n",
"4 53.79 111870 4 hours 1 week \n",
".. ... ... ... ... \n",
"747 37.99 79020 1 hour 3 days \n",
"748 37.99 79020 30 minutes 1 hour \n",
"749 37.99 79020 3 weeks 6 weeks \n",
"750 37.99 79020 4 hours 8 hours \n",
"751 17.92 37280 30 minutes 1 hour \n",
"\n",
" lb_estimate_in_hours ub_estimate_in_hours \n",
"0 4.0 72.0 \n",
"1 168.0 504.0 \n",
"2 168.0 504.0 \n",
"3 72.0 168.0 \n",
"4 4.0 168.0 \n",
".. ... ... \n",
"747 1.0 72.0 \n",
"748 0.5 1.0 \n",
"749 504.0 1008.0 \n",
"750 4.0 8.0 \n",
"751 0.5 1.0 \n",
"\n",
"[752 rows x 24 columns]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"enriched_sample_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 615
},
"collapsed": true,
"id": "PutUzHEG9E_M",
"jupyter": {
"outputs_hidden": true
},
"outputId": "13800b66-b5fb-4d32-d836-78baeeb3cd35"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA4YAAAJWCAYAAAAEOpmWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4U+XbwPFvuveClrasltmWVZZQZtlbNggoGwHLVmSoDNmIiGBFEBki/EAUEVG2tGwse+8yBMoq3XQl5/0jbyOhgxZSQtv7c1254DznOefcSU/T3HmWSlEUBSGEEEIIIYQQBZaJsQMQQgghhBBCCGFckhgKIYQQQgghRAEniaEQQgghhBBCFHCSGAohhBBCCCFEASeJoRBCCCGEEEIUcJIYCiGEEEIIIUQBJ4mhEEIIIYQQQhRwkhgKIYQQQgghRAEniaEQQgghhBBCFHCSGAohCgQvLy/69u1r7DBEHvSm3TuBgYFUrFjR2GG8doGBgQQGBho7jFzTt29fvLy8jB2GUcTFxeHm5saaNWuMHYrIxMqVK1GpVNy4cSPHx44fP55atWoZPihhcJIYCmEgaW+aR48eNXYoBhcSEoJKpdJ7uLi4ULt2bflDbgAqlYphw4ZluO+XX35BpVIREhLyeoMykIJw7/Tt2zfdc8zo8SYkl8/HamdnR6lSpejSpQu//vorGo3GqPGdP3+eKVOmvNSHz9yS0T387GPdunXZPtfdu3eZMmUKJ0+ezL2AX8LatWtZsGCB0a7/9ddfY29vzzvvvKMrmzJlCiqVikePHhktrmdl9T79uj18+JCRI0fi4+ODtbU1bm5uvPXWW4wbN464uDhjh5fOqFGjOHXqFJs3bzZ2KOIFzIwdgBAi7xgxYgQ1a9YE4PHjx6xfv553332XqKgogoKCjBydeJPl53tn8ODBNG3aVLcdHh7OpEmTeP/996lfv76uvHTp0sYILx1LS0uWLVsGwNOnT7l58yZ//PEHXbp0ITAwkN9//x0HBwejxHb+/HmmTp1KYGBgutazHTt2GCWmNM/ew88KCAjI9jnu3r3L1KlT8fLywt/fX2/f999/b7TEfO3atZw9e5ZRo0a99munpKTw9ddfM3r0aExNTV/79fOayMhIatSoQUxMDP3798fHx4fHjx9z+vRpFi9ezNChQ7GzszN2mHrc3d1p37498+bN4+233zZ2OCILkhgKIQCIj4/H1tY2yzr169enS5cuuu2hQ4dSqlQp1q5dm+c/3IuXV9DvnYCAAL3k4OjRo0yaNImAgADeffddI0aWMTMzs3RxTZ8+ndmzZzNhwgQGDRrE+vXrDXKt7Nwb2WVhYWGQ87ys5+9hQzM3N8+1c7/JtmzZwsOHD+nWrZuxQ8kTfvjhB27dusWBAweoU6eO3r6YmBij/55kplu3bnTt2pXr169TqlQpY4cjMiFdSYV4zU6cOEGrVq1wcHDAzs6OJk2acPjwYd3+qKgoTE1NWbhwoa7s0aNHmJiYUKhQIRRF0ZUPHToUd3d3vfMfOXKEli1b4ujoiI2NDQ0bNuTAgQN6ddK66Jw/f56ePXvi7OxMvXr1cvxcLCwscHZ2xsxM/zum1NRUpk2bRunSpbG0tMTLy4uJEyeSlJSkV0+lUjFlypR0531+TFdaN90DBw4wZswYXF1dsbW1pWPHjjx8+FDvWEVRmD59OsWKFcPGxoZGjRpx7ty5Fz6XlJQUXFxc6NevX7p9MTExWFlZ8dFHH+nKFi1aRIUKFbCxscHZ2ZkaNWqwdu3aF17HENLGmB07dow6depgbW2Nt7c33333nV69tC5w69evZ+LEibi7u2Nra8vbb7/N7du3051X7p2Xu3ey4/Tp0/Tt25dSpUphZWWFu7s7/fv35/Hjx3r1YmNjGTVqFF5eXlhaWuLm5kazZs04fvx4luffsWMHNjY29OjRg9TU1JeKcfz48TRv3pwNGzZw+fJlXXlOX+vQ0FA++OAD3NzcKFasGAA3b97kgw8+oHz58lhbW1OoUCG6du2q12V05cqVdO3aFYBGjRrpumqmdaPOaIzhgwcPGDBgAEWKFMHKyooqVaqwatUqvTo3btxApVIxb948li5dqru3atasSVhY2Eu9VpnZuXMn9erVw8nJCTs7O8qXL8/EiRMB7e9jWotjv379dM9v5cqVQPoxhs/GHRwcTKlSpbCxsaF58+bcvn0bRVGYNm0axYoVw9ramvbt2xMZGakXz++//06bNm3w9PTE0tKS0qVLM23aNNRqta5OYGAgf/75Jzdv3tTF9GwcSUlJTJ48mTJlymBpaUnx4sX5+OOP0/1OZvXcs7Jp0ya8vLxeukX977//pn79+tja2uLk5ET79u25cOFCunohISHUqFEDKysrSpcuzZIlS3TvZ4YSHx/Phx9+SPHixbG0tKR8+fLMmzdP7+82aFvqR4wYQeHChbG3t+ftt9/mzp07mf6uPevatWuYmppSu3btdPscHBywsrLSKzty5AitW7fG2dkZW1tbKleuzNdff63bn933psxs3bpV9/rb29vTpk2bDN8303pV/P7779k6rzAOaTEU4jU6d+4c9evXx8HBgY8//hhzc3OWLFlCYGAgoaGh1KpVCycnJypWrMjevXsZMWIEAPv370elUhEZGcn58+epUKECAPv27dPrqvb333/TqlUrqlevzuTJkzExMWHFihU0btyYffv28dZbb+nF07VrV8qWLcvMmTPT/eHKSGxsrG68R2RkpK770Q8//KBXb+DAgaxatYouXbrw4YcfcuTIEWbNmsWFCxf47bffXvr1Gz58OM7OzkyePJkbN26wYMEChg0bpte6MWnSJKZPn07r1q1p3bo1x48fp3nz5iQnJ2d5bnNzczp27MjGjRtZsmSJ3reumzZtIikpSTf+5fvvv2fEiBF06dKFkSNHkpiYyOnTpzly5Ag9e/Z86eeXE0+ePKF169Z069aNHj168PPPPzN06FAsLCzo37+/Xt0ZM2agUqkYN24cDx48YMGCBTRt2pSTJ09ibW0NyL0DL3/vZMfOnTu5fv06/fr1w93dnXPnzrF06VLOnTvH4cOHdR9OhwwZwi+//MKwYcPw8/Pj8ePH7N+/nwsXLlCtWrUMz71lyxa6dOlC9+7dWb58+St1x3vvvffYsWMHO3fupFy5ci91jg8++ABXV1cmTZpEfHw8AGFhYRw8eJB33nmHYsWKcePGDRYvXkxgYCDnz5/HxsaGBg0aMGLECBYuXMjEiRPx9fUF0P37vKdPnxIYGMjVq1cZNmwY3t7ebNiwgb59+xIVFcXIkSP16q9du5bY2FgGDx6MSqVi7ty5dOrUievXr2erte7Ze/hZhQoVQqVSce7cOdq2bUvlypX5/PPPsbS05OrVq7ovV3x9ffn888/TdTN+vtXneWvWrCE5OZnhw4cTGRnJ3Llz6datG40bNyYkJIRx48Zx9epVFi1axEcffcTy5ct1x65cuRI7OzvGjBmDnZ0df//9N5MmTSImJoYvvvgCgE8++YTo6Gj+/fdfvvrqKwBdV0SNRsPbb7/N/v37ef/99/H19eXMmTN89dVXXL58mU2bNgG88Lln5eDBg5ne2y+ya9cuWrVqRalSpZgyZQpPnz5l0aJF1K1bl+PHj+sS3BMnTtCyZUs8PDyYOnUqarWazz//HFdX15e6bkYUReHtt99mz549DBgwAH9/f7Zv387YsWO5c+eO7rUF7ZcAP//8M++99x61a9cmNDSUNm3aZOs6JUuWRK1Ws3r1avr06ZNl3Z07d9K2bVs8PDwYOXIk7u7uXLhwgS1btuh+P7L73pSRtBhatGjBnDlzSEhIYPHixdSrV48TJ07ofcHg6OhI6dKlOXDgAKNHj87WcxVGoAghDGLFihUKoISFhWVap0OHDoqFhYVy7do1Xdndu3cVe3t7pUGDBrqyoKAgpUiRIrrtMWPGKA0aNFDc3NyUxYsXK4qiKI8fP1ZUKpXy9ddfK4qiKBqNRilbtqzSokULRaPR6I5NSEhQvL29lWbNmunKJk+erABKjx49svXc9uzZowDpHiYmJsqMGTP06p48eVIBlIEDB+qVf/TRRwqg/P3337oyQJk8eXK665UsWVLp06ePbjvttW3atKnecxs9erRiamqqREVFKYqiKA8ePFAsLCyUNm3a6NWbOHGiAuidMyPbt29XAOWPP/7QK2/durVSqlQp3Xb79u2VChUqZHmunACUoKCgDPdt2LBBAZQ9e/boyho2bKgAypdffqkrS0pKUvz9/RU3NzclOTlZUZT/fm5FixZVYmJidHV//vlnBZB7x4D3zrPCwsIUQFmxYoWuLCEhIV29//3vfwqg7N27V1fm6OiY6b2QpmHDhrr779dff1XMzc2VQYMGKWq1+oWx9enTR7G1tc10/4kTJxRAGT16tK4sp691vXr1lNTUVL26GT3/Q4cOKYDy448/6soyut/TNGzYUGnYsKFue8GCBQqg/PTTT7qy5ORkJSAgQLGzs9Pd8+Hh4QqgFCpUSImMjNTV/f333zP8fX9eZvdw2uPevXuKoijKV199pQDKw4cPMz1XRvdGmj59+iglS5bUbafF7erqqrtPFUVRJkyYoABKlSpVlJSUFF15jx49FAsLCyUxMVFXltHrPnjwYMXGxkavXps2bfSunWb16tWKiYmJsm/fPr3y7777TgGUAwcOZPu5ZyQlJUVRqVTKhx9+mG5f2ntNVudMe897/PixruzUqVOKiYmJ0rt3b11Zu3btFBsbG+XOnTu6sitXrihmZmZKdj8KZ/U+rSiKsmnTJgVQpk+frlfepUsXRaVSKVevXlUURVGOHTumAMqoUaP06vXt2zfT37VnRUREKK6urgqg+Pj4KEOGDFHWrl2rd48oiqKkpqYq3t7eSsmSJZUnT57o7Xv+ff55Gb03pf1+h4eHK4qiKLGxsYqTk5MyaNCgdPE5OjqmK1cURWnevLni6+ub5fMTxiVdSYV4TdRqNTt27KBDhw56/es9PDzo2bMn+/fvJyYmBtCOZbl//z6XLl0CtC2DDRo0oH79+uzbtw/QtiIqiqL71vnkyZNcuXKFnj178vjxYx49esSjR4+Ij4+nSZMm7N27N93EBkOGDMnRc5g0aRI7d+5k586drF+/nh49evDJJ5/odUv566+/ABgzZozesR9++CEAf/75Z46u+az3339f79vL+vXro1aruXnzJqD99jjtm/Vn62V3QoXGjRtTuHBhvVakJ0+esHPnTrp3764rc3Jy4t9//zV4N7ScMDMzY/DgwbptCwsLBg8ezIMHDzh27Jhe3d69e2Nvb6/b7tKlCx4eHrqfldw7r37vvEhayyxAYmIijx490nUFe7abqJOTE0eOHOHu3bsvPOf//vc/unfvzuDBg1myZAkmJq/+Jz2tpSg2NvalzzFo0KB0rZbPPv+UlBQeP35MmTJlcHJyemE32cz89ddfuLu706NHD12Zubk5I0aMIC4ujtDQUL363bt3x9nZWbed9t55/fr1bF3v2Xv42YeLiwug/dmBtqucISeR6dq1K46OjrrttGn/3333Xb2u2LVq1SI5OZk7d+7oyp593dNaPOvXr09CQgIXL1584bU3bNiAr68vPj4+uveFR48e0bhxYwD27NkDvPxzj4yMRFEUvZ9Ldt27d4+TJ0/St29f3c8AoHLlyjRr1kz3fqJWq9m1axcdOnTA09NTV69MmTK0atUqx9fNzF9//YWpqamup0+aDz/8EEVR2Lp1KwDbtm0DtC3rzxo+fHi2rlOkSBFOnTrFkCFDePLkCd999x09e/bEzc2NadOm6XpwnDhxgvDwcEaNGqX7+aR59j0uu+9Nz9u5cydRUVH06NFD794wNTWlVq1aunvjWc7Ozm/MLLMiY9KVVIjX5OHDhyQkJFC+fPl0+3x9fdFoNNy+fZsKFSroPrDs27ePYsWKceLECaZPn46rqyvz5s3T7XNwcKBKlSoAXLlyBSDLriXR0dF6f4C9vb1z9BwqVaqkN/tit27diI6OZvz48fTs2RNXV1du3ryJiYkJZcqU0TvW3d0dJycn3Qfxl1GiRAm97bTn8uTJEwDducuWLatXz9XVNVsfPMzMzOjcuTNr164lKSkJS0tLNm7cSEpKil5iOG7cOHbt2sVbb71FmTJlaN68OT179qRu3bov/dxe5PnuPJ6enukm9Ujr+nfjxg298SfPvx4qlYoyZcroxnfJvfPq986LREZGMnXqVNatW8eDBw/09kVHR+v+P3fuXPr06UPx4sWpXr06rVu3pnfv3ukmawgPD+fdd9+la9euLFq06JXjS5M21f2zXyTkVEb3xtOnT5k1axYrVqzgzp07et2Pn33+OXHz5k3Kli2bLiFO63r6/P3yonvgRZ6/h5/XvXt3li1bxsCBAxk/fjxNmjShU6dOdOnS5ZWS9ufjTksSixcvnmH5s8/n3LlzfPrpp/z999+6Lx7TZOd1v3LlChcuXMi0y2Xavfyqz13JRnf056X9fDP7m7p9+3bi4+OJiYnh6dOn6d5XgHRlkZGRel3Hra2t9ZLyF8Xj6emZ7nfn+fsx7X3u+d+TjOLLjIeHB4sXL+bbb7/lypUrbN++nTlz5jBp0iQ8PDwYOHAg165dA3jhmqfZfW96XtrfjbQvCZ6X0czGiqIYdEynMDxJDIV4A3l6euLt7c3evXvx8vJCURQCAgJwdXVl5MiR3Lx5k3379lGnTh3dH920b2m/+OKLdNOgp3l+Cutnvyl8WU2aNGHLli38888/emMkXuXN/9mJEZ6V2dipl/lQkZl33nmHJUuWsHXrVjp06MDPP/+Mj4+PLgEH7R/6S5cusWXLFrZt28avv/7Kt99+y6RJk5g6dWqOr2lpacnTp08z3JeQkACQbkIBQ5J7J/d169aNgwcPMnbsWPz9/bGzs0Oj0dCyZUu9FpZu3bpRv359fvvtN3bs2MEXX3zBnDlz2Lhxo17rhoeHh67V9+jRo9SoUcMgcZ49exbI3ofUzF7rjO6N4cOHs2LFCkaNGkVAQACOjo6oVCreeeed17ZEQ27fA9bW1uzdu5c9e/bw559/sm3bNtavX0/jxo3ZsWPHS4/9zOy4Fz2fqKgoGjZsiIODA59//jmlS5fGysqK48ePM27cuGy97hqNhkqVKjF//vwM96clpy/73F1cXFCpVNlOznNbp06d9Fqa+/Tpo5sc6E2kUqkoV64c5cqVo02bNpQtW5Y1a9YwcODAbJ8ju+9Nz0vbt3r16nST4AHpJhYD7ZcWhQsXznZs4vWTxFCI18TV1RUbGxtd99BnXbx4ERMTE71vgOvXr8/evXvx9vbG398fe3t7qlSpgqOjI9u2beP48eN6SUjajG4ODg5ZfqttaGkzIKa1NJQsWRKNRsOVK1f0Jo24f/8+UVFRlCxZUlfm7OxMVFSU3vmSk5O5d+/eS8WSdu4rV67otbA8fPgw2x88GjRogIeHB+vXr6devXr8/ffffPLJJ+nq2dra0r17d7p3705ycjKdOnVixowZTJgwIcdJXMmSJTO8LwBd+bOvG2jXQ3t+KYC0mSSfX/8t7ZvdNIqicPXqVSpXrgzIvZN2bXi1eyczT548Yffu3UydOpVJkybpyp//uaTx8PDggw8+4IMPPuDBgwdUq1aNGTNm6CWGVlZWbNmyhcaNG9OyZUtCQ0N1k1K9itWrV6NSqWjWrJmuzBCv9S+//EKfPn348ssvdWWJiYnpzpuTLwVKlizJ6dOn0Wg0eq1SaV0kn/+deR1MTExo0qQJTZo0Yf78+cycOZNPPvmEPXv20LRp09faWhISEsLjx4/ZuHEjDRo00JWHh4enq5tZXKVLl+bUqVM0adLkhbG/6LlnxMzMjNKlS2cY04uk/Xwz+5tauHBhbG1tsbKywsrKiqtXr6ar93zZl19+qff7/mzX0+zEs2vXLmJjY/VaDZ+/H9Pe58LDw/V6KGQUX06UKlUKZ2dn3e9l2vv62bNnM339c/re9Ky087u5uWX770Z4eLjel6zizSNjDIV4TUxNTWnevDm///673hTt9+/fZ+3atdSrV0+v60X9+vW5ceMG69ev13UtNTExoU6dOsyfP5+UlBS9GUmrV69O6dKlmTdvnu6D9rOen5rfULZs2QKge7Nv3bo1AAsWLNCrl/aN87MtQ6VLl2bv3r169ZYuXZppS8SLNG3aFHNzcxYtWqTXCvB8LFkxMTGhS5cu/PHHH6xevZrU1FS9bqRAumm8LSws8PPzQ1EUUlJSAHRjeLIznqJ169YcPnw43djAqKgo1qxZg7+/f7pvZFNTU1myZIluOzk5mSVLluDq6kr16tX16v744496Y8Z++eUX7t27p0s05N4xzL2TmbTWkudbpp4/t1qtTtd1y83NDU9Pz3RLA4C26+D27dt1S1qkdR17WbNnz2bHjh10795d7wOrIV5rU1PTdM9/0aJF6c6R9kXH8wljRlq3bk1ERITemODU1FQWLVqEnZ0dDRs2zHZ8hvD8UhGArgU+7eeXk+f3qjK675KTk/n222/T1bW1tc2w22C3bt24c+cO33//fbp9T58+1c06m53nnpmAgACOHj2aZZ2MeHh44O/vz6pVq/Rez7Nnz7Jjxw7d+4mpqSlNmzZl06ZNemN3r169qhv3l6Z69eo0bdpU9/Dz88t2PK1bt0atVvPNN9/olX/11VeoVCrd+22LFi0A0v0cstsl/MiRI7rX/Vn//PMPjx8/1nWtrVatGt7e3ixYsCDd/ZZ2T2T3vSkjLVq0wMHBgZkzZ+r+7j3r+b8b0dHRXLt27YWz8ArjkhZDIQxs+fLlusHlzxo5ciTTp0/XrfX0wQcfYGZmxpIlS0hKSmLu3Ll69dOSvkuXLjFz5kxdeYMGDdi6datuHa40JiYmLFu2jFatWlGhQgX69etH0aJFuXPnDnv27MHBwYE//vjjlZ7bvn37SExMBLQfBDZv3kxoaCjvvPMOPj4+gPZDfp8+fVi6dKmuK9M///zDqlWr6NChA40aNdKdb+DAgQwZMoTOnTvTrFkzTp06xfbt21+6q4mrqysfffQRs2bNom3btrRu3ZoTJ06wdevWHJ2ze/fuLFq0iMmTJ1OpUqV00+U3b94cd3d36tatS5EiRbhw4QLffPMNbdq00X1T/M8//9CoUSMmT578wnWpxo8fz4YNG2jQoAGDBw/Gx8eHu3fvsnLlSu7du8eKFSvSHePp6cmcOXO4ceMG5cqVY/369Zw8eZKlS5emm3rfxcWFevXq0a9fP+7fv8+CBQsoU6YMgwYNAuTeAcPdOxlxcHCgQYMGzJ07l5SUFIoWLcqOHTvStZLExsZSrFgxunTpQpUqVbCzs2PXrl2EhYXptbQ9q3Dhwrr3lKZNm7J//36KFi2aZTypqan89NNPgLbV7ubNm2zevJnTp0/TqFEjli5dqlffEK9127ZtWb16NY6Ojvj5+XHo0CF27dpFoUKF9Or5+/tjamrKnDlziI6OxtLSksaNG+Pm5pbunO+//z5Lliyhb9++HDt2DC8vL3755RcOHDjAggULXmmcZEaevYefVblyZd0yDXv37qVNmzaULFmSBw8e8O2331KsWDHdWp+lS5fGycmJ7777Dnt7e2xtbalVq1aOx+xmR506dXB2dqZPnz6MGDEClUrF6tWrM+w6W716ddavX8+YMWOoWbMmdnZ2tGvXjvfee4+ff/6ZIUOGsGfPHurWrYtarebixYv8/PPPbN++nRo1amTruWemffv2rF69msuXL2e4RMr8+fOxsbHRKzMxMWHixIl88cUXtGrVioCAAAYMGKBbrsLR0VHvfXfKlCns2LGDunXrMnToUF0CV7FiRU6ePJnt1/To0aNMnz49XXlgYCDt2rWjUaNGfPLJJ9y4cYMqVaqwY8cOfv/9d0aNGqVrYatevTqdO3dmwYIFPH78WLdcRVqPjxe1zK5evZo1a9bQsWNHqlevjoWFBRcuXGD58uVYWVnp1o40MTFh8eLFtGvXDn9/f/r164eHhwcXL17k3LlzbN++PdvvTRlxcHBg8eLFvPfee1SrVo133nkHV1dXbt26xZ9//kndunX1kuRdu3ahKArt27fP9ustjOA1zoAqRL6WNpVzZo/bt28riqIox48fV1q0aKHY2dkpNjY2SqNGjZSDBw9meE43NzcFUO7fv68r279/vwIo9evXz/CYEydOKJ06dVIKFSqkWFpaKiVLllS6deum7N69W1cnO9OAPyuj6dotLCwUHx8fZcaMGbrlEdKkpKQoU6dOVby9vRVzc3OlePHiyoQJE/SmR1cURVGr1cq4ceOUwoULKzY2NkqLFi2Uq1evZjoN/vNLgaTF9ezU9mq1Wpk6dari4eGhWFtbK4GBgcrZs2fTnTMrGo1GKV68eIZTjyuKoixZskRp0KCB7jUuXbq0MnbsWCU6OjpdbC+aejzNv//+qwwcOFApWrSoYmZmpri4uCht27ZVDh8+nK5u2nIFR48eVQICAhQrKyulZMmSyjfffJPh6/O///1PmTBhguLm5qZYW1srbdq0UW7evJnuvHLvvPq9oygZL0nw77//Kh07dlScnJwUR0dHpWvXrsrdu3f17pGkpCRl7NixSpUqVRR7e3vF1tZWqVKlivLtt9/qnf/Z5SrSXL16VfHw8FB8fX2z/Nn06dNH72dhY2OjeHl5KZ07d1Z++eWXDJe8eNXXWlEU5cmTJ0q/fv2UwoULK3Z2dkqLFi2UixcvZvjafv/990qpUqUUU1NTvZ/R88tVKIqi3L9/X3deCwsLpVKlSumWgkhb9uGLL75IF1d2fkdftFxF2vG7d+9W2rdvr3h6eioWFhaKp6en0qNHD+Xy5ct65/v9998VPz8/3VIJafFmtlzF83GnxbNhwwa98oxe/wMHDii1a9dWrK2tFU9PT+Xjjz/WLcvz7L0fFxen9OzZU3FyclIAvTiSk5OVOXPmKBUqVFAsLS0VZ2dnpXr16srUqVN173nZfe4ZSUpKUgoXLqxMmzZNrzztvSajh6mpqa7erl27lLp16yrW1taKg4OD0q5dO+X8+fPprrN7926latWqioWFhVK6dGll2bJlyocffqhYWVm9MEZFUbK8B9Jij42NVUaPHq14enoq5ubmStmyZZUvvvhCb3kIRVGU+Ph4JSgoSHFxcVHs7OyUDh06KJcuXVIAZfbs2VnGcfr0aWXs2LFKtWrVFBcXF8XMzEzx8PBQunbtqhw/fjxd/f379yvNmjXTvadUrlxZWbRokW5/dt6bFCX9chVp9uzZo7Ro0UJxdHRUrKyslNKlSyt9+/ZVjh49qleve/fuSr169bLzUgsjUinKaxp5L4QQwiACAwN59OiRbqKQzISEhNCoUSM2bNhAly5dXlN0QgiRM9OmTWPFihVcuXLlpSfpeRkdOnTg3Llz2RpTl9tOnjxJ1apV+emnn+jVq5exwzGoiIgIvL29WbdunbQYvuFkjKEQQgghhDCa0aNHExcXx7p163LtGs/P/HzlyhX++usvAgMDc+2a2Y0FtOP6TExM9CYKyi8WLFhApUqVJCnMA2SMoRBCCCGEMBo7O7t0a+gZWqlSpejbty+lSpXi5s2bLF68GAsLCz7++ONcvW5G5s6dy7Fjx2jUqBFmZmZs3bqVrVu38v7776dbnzI/mD17trFDENkkiaEQQgghhMjXWrZsyf/+9z8iIiKwtLQkICCAmTNn6s3A+7rUqVOHnTt3Mm3aNOLi4ihRogRTpkzJcGkkIV6nfDHG8K+//qJbt2666XtVKhWTJ09m8uTJgHYKcG9vb27fvg1o1835/vvv6du3r7FCFkIIIYQQQog3Rp4fY3jy5EnatGmDiYkJn376KevWraNv3766aYEB/Pz8uH37Np07d2bevHmYmprSr18/IiIijBh5ek+fPiU5OdnYYQghhBBCCCEKmDyfGLZu3RpTU1NiYmKYNm0a3bt3Z/ny5bz77ruAtrXw8uXL+Pj48Msvv/Dhhx/qFlLNrMUwMDAQlUqVbnFOKysr7OzsdNtdunTBxMQElUqFSqXC29tbb3HoihUr6u13cXHRW4C4QYMGqFQqunbtikqlwsbGht9//51hw4ZhamqqO87U1JRff/3VUC+ZEEIIIYQQQujJ82MM7927h6urK9bW1iQmJqJSqahVqxaHDh0CYP369YB+ElixYkVMTU05duxYhudcs2YNxYoVo1+/fmzZsgWAvXv3kpSURP/+/QEYNWoUv/76q25B6t27d7N8+XIqVaqkWxhUpVIxZMgQGjVqxO7du1myZAk1a9YkMjJS73obN25k7NixlC1blooVK9KtWzeKFCnCvHnziI2NZd26dZiYZJzDP3z4kEePHum2NRoNqampeHl5vXCRVCGEEEIIIUT+pSgKsbGxeHp6ZppPPFs5T+P/FxctWrSoMnPmTOWtt95SAKVBgwaKoijK2LFjFUDZsWOH3nHW1taKtbV1pud1dnZWLCwsdNsVKlRQACU1NVVRFEUxMzNTypQpo3dM48aNlaxe0rZt2+rtr1+/vgIoc+bM0ZUdPXpUAZRhw4Zl49krSsmSJbNcdFUe8pCHPOQhD3nIQx7ykEfBfty+ffuFeUWen3xGpVJhYmKCWq3WlRUuXJgnT56gVqv5+OOP+eKLL9ixYwfNmjXT1bGxsQEgISEhw/POmjWLiRMn8ueff9K6dWtMTEzw8vLi+vXruutm5ubNm5QoUYJBgwaxcuVKUlNTM9zfoEED9u3bR2pqqt6Crg4ODsTGxmJhYUH58uX58ssv9WJ/1vMthrGxsdSqVYvbt2/j4OCQaYxCCCGEEEKI/C0mJobixYsTFRWFo6NjlnXzfFdSQG/cH4CXlxePHz8GwN/fH4Djx4/rJVfJyck4Oztnes4JEybwySefMHLkSI4dO4aiKCxYsECvTvny5Zk4cWK6Y93d3dmwYQPLli3D1dWVAQMGUKZMGVasWMGBAweIioqiRIkSuvrPJoWg/QHOmjWL5cuXc+7cOZo3b8748eOZNWtWumu5urri6uqqdyxok0tJDIUQQgghhBDZGWKW51sMbW1tSUpK0muVc3Nz4/Hjx6jVatRqNWZmZvj6+nL+/HkALly4gJ+fHy1atGDbtm2ZnrtGjRocO3YMFxcXYmNj9WYMNTU1xc7Ojujo6AyPbd++PZs3byYpKQkLCwsASpcuzfXr1zl16hSVK1fWtRi+6EdgamqKs7OzXsvg84KDgwkODtZNthMdHS2JoRBCCCGEEAVYTEwMjo6O2coN8vyspB999BFqtZqyZcvy448/0qxZMx4+fEijRo0AbVJVrlw5Lly4QNeuXZk/fz5Vq1YFYOXKlVmeO21/ZGQkTZo00dv33nvvERMTg7e3N4sWLWLx4sW0bNmS4sWLA1C3bl1Am1yuXbuWxo0b67qhZmX9+vUULVqUcePG8euvv9K/f380Gg1eXl5ZHhcUFMT58+cJCwt74TWEEEIIIYQQ4ll5vsUQ4J133uHnn3/WtbzVrl1bNyspZLzA/XfffceAAQNeeG57e3vi4uJ48OCBXpdN0M50unr1ajQaDQAmJia89dZbumtXqlSJs2fPAmBubk69evXYs2dPli2GISEhtGzZkqSkJF1ZiRIluHLliq7lMSs5+VZACCGEEEIIkX/lJDfIF4lhbjI3N8fR0THLbpxvkuz88BVFITU1VW/CHpE5c3PzdONAhRBCCCGEeNPlJDHMF5PP5IaTJ08ydepUUlNTM5z05U3z7BjDrCQnJ3Pv3r1MZ2MV6alUKooVK5ZukiMhhBBCCCHyC2kxzETazD0+Pj5cuHDByNFkX1bfCmg0Gq5cuYKpqSmurq5YWFhka4aigkxRFB4+fEhCQgJly5aVlkMhhBBCCJFnSIuhAeTHfDk5ORmNRkPx4sV16ziKF3N1deXGjRukpKRIYiiEEEIIIfKlPD8rqcg5ExP5seeEtKoKIYQQQoj8TjIEIYQQQgghhCjgJDHMJ4KDg/Hz86NmzZrGDkUIIYQQQgiRx8gYw3wiKCiIoKAg3QDT3BYRnci1h7HEJqZib2VGaVd73B2tcv26QgghhBBCCMOTFkORI4kpanaei6BD8AF6LfuHIT8dp9eyf+gQfICd5yJITMn9tRFnz56NSqVi1KhR/8WVmEhQUBCFChXCzs6Ozp07c//+/VyPRQghhBBCiPxAEkORI/suP2TQ6mNExCTqlUfEJDJo9TH2XXmYq9cPCwtjyZIlVK5cWa989OjR/PHHH2zYsIHQ0FDu3r1Lp06dcjUWIYQQQggh8gtJDEW2RUQn8tnv57Ks89mmc9x/Lmk0lLi4OHr16sX333+Ps7Ozrjw6OpoffviB+fPn07hxY6pXr86KFSs4ePAghw8fzpVYhBBCCCGEyE8kMRTZdu1hbLqWwudFxCRy9UFcrlw/KCiINm3a0LRpU73yY8eOkZKSolfu4+NDiRIlOHToUK7EIoQQQgghRH4ik8/kE8HBwQQHB6NW594Yv9jEVIPWy4l169Zx/PhxwsLC0u2LiIjAwsICJycnvfIiRYoQERFh8FiEEEIIIYTIb6TFMJ8ICgri/PnzGSZOhmJvlb3vEbJbL7tu377NyJEjWbNmDVZWMvOpEEIIIYQQhiaJoci20q72uDtknZi5O1hRxs3OoNc9duwYDx48oFq1apiZmWFmZkZoaCgLFy7EzMyMIkWKkJycTFRUlN5x9+/fx93d3aCxCCGEEEIIkR9JYiiyzd3RimntK2RZZ1qHChR5QfKYU02aNOHMmTOcPHlS96hRowa9evXS/d/c3Jzdu3frjrl06RK3bt0iICDAoLEIIYQQQgiRH8kYQ5Ej9cu58n3v6ny26ZzeRDTuDlZM61CBBmVdDX5Ne3t7KlasqFdma2tLoUKFdOUDBgxgzJgxuLi44ODgwPDhwwkICKB27doGj0cIIYQQQoj8RhJDkSNW5qY083OnUlEnrj2MJTZRjb2VGWXc7AzeUpgTX331FSYmJnTu3JmkpCRatGjBt99+a7R4hBBCCCGEyEtUiqIoxg5CGE5MTAyOjo5ER0fj4OCgty8xMZHw8HC8vb1lEpcckNdNCCGEEELkRVnlBs+TMYb5RHBwMH5+ftSsWdPYoQghhBBCCCHyGEkM84nXsVyFEEIIIYQQIn+SxFAIIYQQQgghCjhJDIUQQgghhBCigJPEUAghhBBCCCEKOEkMhRBCCCGEEKKAk8RQCCGEEEIIIQo4WeBevLSnyakkpmiwMjfB2kJuJSGEEEIIIfIq+TQvciRFrSH8UTxHb0Sy9p9bxDxNxcHajJ5vlaCmlwtehW0xN5WGaCGEEEIIIfISSQzzieDgYIKDg1Gr1bl2jbikVP48dZdPfz9LilrR2zfxt7OYm6qY1r4ibat4Ymcpt5YQQgghhBB5RYFo2lm8eDGVK1fGwcEBBwcHAgIC2Lp1q7HDMqjcXuA+Ra3hz1N3GbfxTLqk8L86CuM3nuHPU3dJUWsMen21Ws1nn32Gt7c31tbWlC5dmmnTpqEo/8WiKAqTJk3Cw8MDa2trmjZtypUrVwwah0gvVa3h/L1o/jx9lz0XH3Av6qmxQxJCCCHEc1LVGq7cj2XflYdcuBdDUkruNSaIvKlANOsUK1aM2bNnU7ZsWRRFYdWqVbRv354TJ05QoUIFY4enoygKarUaM7M378dy41E8n/5+Nlt1P/39LNVKOlO2iL3Brj9nzhwWL17MqlWrqFChAkePHqVfv344OjoyYsQIAObOncvChQtZtWoV3t7efPbZZ7Ro0YLz589jZWVlsFiEvr8vPmDomuOoNdokvYyrHUt7V6eUq52RIxNCCCEEaJPCP8/c46MNp0hRK5io4JM2vvR8q4TMEyF0CkSLYbt27WjdujVly5alXLlyzJgxAzs7Ow4fPpxh/b1792Jubk5ERIRe+ahRo6hfv75ue//+/dSvXx9ra2uKFy/OiBEjiI+P1+1fvXo1NWrUwN7eHnd3d3r27MmDBw90+0NCQlCpVGzdupXq1atjaWnJ/v37OXXqFI0aNcLe3h4HBweqV6/O0aNHDfyq5MzRm08ybSl8Xopa4ejNJwa9/sGDB2nfvj1t2rTBy8uLLl260Lx5c/755x9Am1QvWLCATz/9lPbt21O5cmV+/PFH7t69y6ZNmwwai/jPv5EJjP3ltC4pBLj6MI6tZ+8ZMSohhBBCPCv8cTxjN5zWfZbTKDBtywWuPIgzcmS5SFHg6lVjR5GnFIjE8FlqtZp169YRHx9PQEBAhnUaNGhAqVKlWL16ta4sJSWFNWvW0L9/fwCuXbtGy5Yt6dy5M6dPn2b9+vXs37+fYcOG6R0zbdo0Tp06xaZNm7hx4wZ9+/ZNd73x48cze/ZsLly4QOXKlenVqxfFihUjLCyMY8eOMX78eMzNzTOMNSkpiZiYGL2HoT1NTmXNkZs5OmbNkZs8TU41WAx16tRh9+7dXL58GYBTp06xf/9+WrVqBUB4eDgRERE0bdpUd4yjoyO1atXi0KFDBotD6HsUn0z005R05bsvPDR4d2IhhBBCvJz70UkkZ/B3+W5+Hf5x/jw0bQrVqsFzDT0icwWm7fjMmTMEBASQmJiInZ0dv/32G35+fpnWHzBgACtWrGDs2LEA/PHHHyQmJtKtWzcAZs2aRa9evRg1ahQAZcuWZeHChTRs2JDFixdjZWWlSyIBSpUqxcKFC6lZsyZxcXHY2f3Xze7zzz+nWbNmuu1bt24xduxYfHx8dOfOzKxZs5g6dWrOX5AcSEzREPM0Z0lebGIqSakarC0ME8P48eOJiYnBx8cHU1NT1Go1M2bMoFevXgC61t0iRYroHVekSJF0Lb/CcJxtzLG1MCU+WX+cQp3SLjI7rRBCCPGGKGxvgamJSq+HD4CbfT4caqPRQKdOcOkSWFnB4cPQoYOxo8oTCswnt/Lly3Py5EmOHDnC0KFD6dOnD+fPn8+0ft++fbl69aquu+nKlSvp1q0btra2gLbFauXKldjZ2ekeLVq0QKPREB4eDsCxY8do164dJUqUwN7enoYNGwLaxO9ZNWrU0NseM2YMAwcOpGnTpsyePZtr165lGueECROIjo7WPW7fvp3zF+cFrMxNcLDO2XcI9lZmWJoZ7vb6+eefWbNmDWvXruX48eOsWrWKefPmsWrVKoNdQ+RcCRcbpravqFfmZm/J2/5FjRSREEIIIZ5XqrAtk9vpN4h8EFiackXyyXwAiqJNCAFMTGDePHj7bW3LoSSF2VZgWgwtLCwoU6YMANWrVycsLIyvv/6aJUuWZFjfzc2Ndu3asWLFCry9vdm6dSshISG6/XFxcQwePFg38cmzSpQoQXx8PC1atKBFixasWbMGV1dXbt26RYsWLUhOTtarn5ZsppkyZQo9e/bkzz//ZOvWrUyePJl169bRsWPHdNeytLTE0tIypy9HjlhbaNcpnPhb9iafAehVq6RBBzOPHTuW8ePH88477wBQqVIlbt68yaxZs+jTpw/u7u4A3L9/Hw8PD91x9+/fx9/f32BxCH0qlYq2lT0o5WrLlYhY7KzMqODpiFdh2xcfLIQQQojXwsLMlG41ilG1hDN3nzzF1cGScm522FllPFQpTzl9GoYPh27dIChIW9a2rfYhcqTAJIbP02g0JCUlZVln4MCB9OjRg2LFilG6dGnq1q2r21etWjXOnz+vSzafd+bMGR4/fszs2bMpXrw4QI4mkClXrhzlypVj9OjR9OjRgxUrVmSYGL4uNb1cMDdVZWsCGnNTFTVKOhv0+gkJCZiY6LdAmpqaovn/b4e8vb1xd3dn9+7dukQwJiZG10Isco+VuSnVSjhTrYRhf+ZCCCGEMBwrczMqFXWkUlFHY4diGFFRMHkyBAeDWq2daGbQILAw0DimAqhAdCWdMGECe/fu5caNG5w5c4YJEyYQEhKiG5+WmRYtWuDg4MD06dPp16+f3r5x48Zx8OBBhg0bxsmTJ7ly5Qq///67bvKZEiVKYGFhwaJFi7h+/TqbN29m2rRpL4z16dOnDBs2jJCQEG7evMmBAwcICwvD19f35V8AA/AqbMv057oMZmZ6h4oGbzFq164dM2bM4M8//+TGjRv89ttvzJ8/X5csq1QqRo0axfTp09m8eTNnzpyhd+/eeHp60kG6EAghhBBC5A8aDaxcCeXLw8KF2qSwc2c4dEiSwldUIFoMHzx4QO/evbl37x6Ojo5UrlyZ7du36034khETExP69u3LzJkz6d27t96+ypUrExoayieffEL9+vVRFIXSpUvTvXt3AFxdXVm5ciUTJ05k4cKFVKtWjXnz5vH2229neU1TU1MeP35M7969uX//PoULF6ZTp065PsHMi5ibmtCmiiegXacwo5ZDc1MV0ztUpE1lT4NPPLJo0SI+++wzPvjgAx48eICnpyeDBw9m0qRJujoff/wx8fHxvP/++0RFRVGvXj22bdsmaxgKIYQQQuQH585pWwXTZpwvXx4WLYIXfKYX2aNSFCV7i9MVUAMGDODhw4ds3rzZ2KFkS0xMDI6OjkRHR+Pg4KC3LzExkfDwcLy9vV86WUpRa7jxKJ6jN5+w5shNYhNTsbcyo1etktQo6YxXYdt8NxulIV43IYQQQgjxik6ehOrVwdpa24105EhpJXyBrHKD5xWIFsOXER0dzZkzZ1i7dm2eSQpfB3NTE8oWsadsEXs6+HuSlKrB0szEoBPNCCGEEEIIgUYDYWFQq5Z2298fli/XrlFYVGZAN7T81bRjQO3bt6d58+YMGTLkhV1O3wTBwcH4+flRs2bN13ZNawsznGwsJCkUQgghhBCGFRYGtWtDvXraZSfS9OkjSWEukU/0mXh2aYq8ICgoiKCgIF1zsRBCCCGEEHnOo0cwYQL88IN2fUIHB+1i9X5+Lz5WvBJpMRRCCCGEEEIYl1oN334L5crBsmXapLB3b21SaMQl2woSaTEUQgghhBBCGI+iQJMmEBqq3a5SBb75RtuNVLw20mIohBBCCCGEMB6VCtq1Aycn7fITR49KUmgE0mIoXkpcUgqR8Skkp2qwMDPBxdYcO0tzY4clhBBCCCHedKmp2m6jFStC48bashEjtF1HXV2NG1sBJomhyJE7UU+5cC+GH/Zd59D1SF15QCkXBtYvhY+HA0WdrI0YoRBCCCGEeGPt3QvDhsGZM9oF6k+f1q5FaG4uSaGRSWIosu3krSe8v/oYD2KT0u07dD2SQ9cjcbO3ZOl7NfAv4fT6AxRCCCGEEG+mu3dh7FhYu1a77eICo0eDqalx4xI6MsZQZMvJW1H0+P5Ihknhsx7EJtHj+8OcvBX1egITQgghhBBvrpQU+PJLbevg2rXa8YSDB8Ply9p/JTF8Y0hiKF7oTtRT3l99lKcp6mzVf5qi5v3VR7kb9dRgMezdu5d27drh6emJSqVi06ZNun0pKSmMGzeOSpUqYWtri6enJ7179+bu3bt654iMjKRXr144ODjg5OTEgAEDiIuLM1iMQgghhBDiOTt2wEcfQVwc1KqlXbj+u++gUCFjRyaeI4mheKGL92Je2FL4vAexSVy4F2OwGOLj46lSpQrBwcHp9iUkJHD8+HE+++wzjh8/zsaNG7l06RJvv/22Xr1evXpx7tw5du7cyZYtW9i7dy/vv/++wWIUQgghhBBAcvJ//2/dGnr10i5Yf/AgVK9uvLhElmSMochSXFIKy/Zdf6ljf9gfTq1SLgaZrbRVq1a0atUqw32Ojo7s3LlTr+ybb77hrbfe4tatW5QoUYILFy6wbds2wsLCqFGjBgCLFi2idevWzJs3D09Pz1eOUQghhBCiQEtKgvnzYckSOH5cO45QpYKffjJ2ZCIbpMVQZCkyPkVv9tGcOHjtMZFxyS+umAuio6NRqVQ4OTkBcOjQIZycnHRJIUDTpk0xMTHhyJEjRolRCCGEECLf2LYNKlWCiRPh5k1YvtzYEYkcksRQZCk5VfNKx6eoFQNFkn2JiYmMGzeOHj164ODgAEBERARubm569czMzHBxcSEiIuK1xyiEEEIIkS/cuAEdO0KrVnDlCri7w48/wocfGjsykUOSGIosWZi92i1ibqoyUCTZk5KSQrdu3VAUhcWLF7/WawshhBBCFBiKAjNmgK8vbNqknV109Gi4dAnee0/bhVTkKZIYiiy52JoTUMrlpY6tU7oQLnYWBo4oc2lJ4c2bN9m5c6eutRDA3d2dBw8e6NVPTU0lMjISd3f31xajEEIIIUS+oFJpu4wmJkKjRnDqlHZ84TOfv0TeIomhyJKdpTkD65d6qWMH1PM2yMQz2ZGWFF65coVdu3ZR6LkpkAMCAoiKiuLYsWO6sr///huNRkOtWrVeS4xCCCGEEHnatWvarqNpZs6Edetg926oUMFoYQnDkMRQvJCPhwNu9pY5OsbN3hJfD8N9YxQXF8fJkyc5efIkAOHh4Zw8eZJbt26RkpJCly5dOHr0KGvWrEGtVhMREUFERATJ/z9dsq+vLy1btmTQoEH8888/HDhwgGHDhvHOO+/IjKRCCCGEEFlJSIDPPtMmfx98oO1GClC4MHTvLt1G8wlJDMULFXWyZul7NbA2N81WfWtzU5a+VwNPJ2uDxXD06FGqVq1K1apVARgzZgxVq1Zl0qRJ3Llzh82bN/Pvv//i7++Ph4eH7nHw4EHdOdasWYOPjw9NmjShdevW1KtXj6VLlxosRiGEEEKIfEVR4LffwM8Ppk/XLkeRmqpNFEW+I+sYimzxL+HE/wbV5v3VR7Nc7N7N3pKl79XAv4STQa8fGBiIomQ+w2lW+9K4uLiwdu1aQ4YlhBBCCJE/Xb4Mw4fDjh3a7eLFYcEC7Qyk0kKYL0liKLLNv4QTm4LqcuFeDD/sD+fgtce6fXVKF2JAPW98PRwM2lIohBBCCCFesz17oEULSEkBCwsYOxYmTABbW2NHJnKRJIYiRzydrPF0sqZWKRci45JJUSuYm6pwsbN4bRPNCCGEEEKIXFSnDpQsCeXKwddfQ5kyxo5IvAaSGIqXYmdpLomgEEIIIYwu5mkK8cmp2FmaYW8ln01eyvnz2gQwOBjMzMDSEg4dgkKFpNtoAVLgJ5/Zu3cv7dq1w9PTE5VKxaZNm4wdkhBCCCEKmKfJqSSnqo0dRp7yJD6Zv87co+eywzSbv5c+y/9h14X7xCamGDu0vCMmBj76CKpUgaVLtYlhmsKFJSksYAp8YhgfH0+VKlUIfvYX4Q2VkiJvdEIIIUR+8iguiV+P/0u3JYcZvPoYh68/JjlVY+yw3ngJyaks23+dD9Yc5+ydGOKSUjl+K4qBq47yv39ukyKvYdYUBdasgfLl4csvtTONtm8Pb79t7MiEERX4xLBVq1ZMnz6djh07Zqv+jRs3MDEx4ejRo3rlCxYsoGTJkmg02jeis2fP0qpVK+zs7ChSpAjvvfcejx490tXftm0b9erVw8nJiUKFCtG2bVuuXbumdx2VSsX69etp2LAhVlZWrFmzxgDP2DAexSZx7UEcFyNiuPYgjkdZzFQqhBBCiIxtOnGHD38+xZk70ey59JCe3x/m9J0oY4f1xrv2II7gPdcy3Dd320WuP4p/zRHlIadPQ8OG8O67EBGhHT/411+waRN4exs7OmFEBT4xzCkvLy+aNm3KihUr9MpXrFhB3759MTExISoqisaNG1O1alWOHj3Ktm3buH//Pt26ddPVj4+PZ8yYMRw9epTdu3djYmJCx44ddYllmvHjxzNy5EguXLhAixYt0sWTlJRETEwMX375JT4+PlSvXj13njiQqtZw9X4sPx+9TYdvD9BkfigtF+yjyfxQOnx7gJ+P3ubqg1jUmhcvHSGEEEIUdBHRT1n091W9Mo0CW07dM1JEecfVB3GZ7kvVKFx/mPn+Am/0aNi3D2xsYMYMOHsWWrUydlTiDSCTz7yEgQMHMmTIEObPn4+lpSXHjx/nzJkz/P777wB88803VK1alZkzZ+qOWb58OcWLF+fy5cuUK1eOzp07651z+fLluLq6cv78eSpWrKgrHzVqFJ06dco0llmzZjF16lQDP8P0niQk83PYbebvvExSBt0z/n3ylI9/OY2lmQljmpWjW83iONtY5HpcQgghRF6lkPE6vPIF64u96BWSV/AZGg0kJ4OVlXZ7wQLtYvVffAElShg1NPFmkRbDl9ChQwdMTU357bffAFi5ciWNGjXCy8sLgFOnTrFnzx7s7Ox0Dx8fHwBdd9ErV67Qo0cPSpUqhYODg+7YW7du6V2rRo0aWcYyYcIEoqOjdY/bt28b8JlqPUlIZsHOy8zaejHDpPBZSakaZm29yIKdl3mSkGzwWIQQQoj8wt3BiiENS+uVqVTQroqnkSLKO8q42mW6z9RERanCst4eAMePQ7162jUI01SqBOvXS1Io0pEWw5dgYWFB7969WbFiBZ06dWLt2rV8/fXXuv1xcXG0a9eOOXPmpDvWw8MDgHbt2lGyZEm+//57PD090Wg0VKxYkeRk/WTK9gULiVpaWmJpaWmAZ5UxtUbh57DbrDp0M0fHrTp0E08nawbWL4WpicxoJYQQQjxPpVLRtUZxHG3MWXngBoVsLRjWuAxVijkaO7Q3Xik3OwbU8+aH/eHp9o1uWhbvgp4YRkbCp5/Cd99pJ5q5cAGmTAFHubdE5qTF8CUNHDiQXbt28e2335KamqrX3bNatWqcO3cOLy8vypQpo/ewtbXl8ePHXLp0iU8//ZQmTZrg6+vLkydPXime4OBg/Pz8qFmz5qs+NT3hj+KYv/PySx07f+dlwg00+Ds7y4pcuHCBt99+G0dHR2xtbalZs6ZeC2xiYiJBQUEUKlQIOzs7OnfuzP379w0SnxBCCPEyXO0t6VWrJL9+UIcV/d+iXllXLM1NjR3WG8/O0owPAkuzoLs/pVxtMTNR4ethz+Je1Xi3dsmC+xqq1dplJ8qVg8WLtUlhjx7acYSSFIoXKPCJYVxcHCdPnuTkyZMAhIeHc/LkyXRdOp/n6+tL7dq1GTduHD169MDa2lq3LygoiMjISHr06EFYWBjXrl1j+/bt9OvXD7VajbOzM4UKFWLp0qVcvXqVv//+mzFjxrzS8wgKCuL8+fOEhYW90nmed/xW1Au7j2YmKVXDiVuvlvCmedGyIteuXaNevXr4+PgQEhLC6dOn+eyzz7BK608PjB49mj/++IMNGzYQGhrK3bt3sxy/KYQQQrwuDlbmWBfUZOYlFbKzpEPVovw6tA6hYwNZ935tWlXywKmgznFw6RLUrg2DB8Pjx1ChAuzZA2vXQtGixo5O5AEFvivp0aNHadSokW47LUHr06cPK1euzPLYAQMGcPDgQfr3769X7unpyYEDBxg3bhzNmzcnKSmJkiVL0rJlS0xMTFCpVKxbt44RI0ZQsWJFypcvz8KFCwkMDDT003slj2KTWLj7yiudY+HfV2hU3o3C9q/W3bVVq1a0ymLGrE8++YTWrVszd+5cXVnp0v+N24iOjuaHH35g7dq1NG7cGNDOJOvr68vhw4epXbv2K8UnhBBCCONwtrGQCe9A2yJ4+TI4OMDUqRAUBObmxo5K5CEFPjEMDAzMcEaw7Lhz5w6VKlXKsPtm2bJl2bhxY6bHNm3alPPnz+uVPRuHl5fXS8dlKNFPU/j3ydNXOsftyKdEP0155cQwKxqNhj///JOPP/6YFi1acOLECby9vZkwYQIdOnQA4NixY6SkpNC0aVPdcT4+PpQoUYJDhw5JYiiEEEKIvEWthm3boE0b7ba7O2zYAJUra/8vRA4V+K6kLyMuLo6zZ8/yzTffMHz4cGOHA+TOGMMUzct1Ic2t82TmwYMHxMXFMXv2bFq2bMmOHTvo2LEjnTp1IjQ0FICIiAgsLCxwcnLSO7ZIkSJERETkanxCCCGEEAZ18CDUrAlt22qTwzTNm0tSKF6aJIYvYdiwYVSvXp3AwMB03UiNJTfGGJqbGOb2MNR5MqP5/8Szffv2jB49Gn9/f8aPH0/btm357rvvcvXaQgghhBCvTUQE9O0LdevCiRPg5ASvOIGhEGkkMXwJK1euJCkpifXr12Nqmn8Hijtam1PM2frFFbNQwsUaR+vc7d9euHBhzMzM8PPz0yv39fXVTSLk7u5OcnIyUVFRenXu37+Pu3yzJoQQQog3WWqqdmH68uVh1Spt2YAB2jGFPXoYNTSRf0hiKDJV2N6SEU3KvtI5hjcum6vjC0G7rmTNmjW5dOmSXvnly5cpWbIkANWrV8fc3Jzdu3fr9l+6dIlbt24REBCQq/EJIYQQQrySTp1g9GiIiYHq1eHwYVi2DFxdjR2ZyEcK/OQzImvVSjhhaWbyUktWWJqZULWEs0HiiIuL4+rVq7rttGVFXFxcKFGiBGPHjqV79+40aNCARo0asW3bNv744w9CQkIAcHR0ZMCAAYwZMwYXFxccHBwYPnw4AQEBMvGMEEIIId5sAwbAgQMwa5b2//m4x5owHkkM84ng4GCCg4NRq9UGPa93YTvGNCvHrK0Xc3zsmGbl8C5sa5A4XrSsSMeOHfnuu++YNWsWI0aMoHz58vz666/Uq1dPd8xXX32FiYkJnTt3JikpiRYtWvDtt98aJD4hhBBCCINIToavv4bChaFfP23Z229DeLh2KQohcolKMfaaCMKgYmJicHR0JDo6Gofn3jwSExMJDw/H29tbb+H3F3mSkMyCnZdZdehmto/pE1CSUc3K5Yt1hV72dRNCCCGEyJHdu2H4cLhwAZyd4coVKFTI2FGJPCyr3OB50mIoXsjZxoJRzcpR1MmaL3dezrJbqaWZCWOalaNbzeL5IikUQgghhMh1t2/Dhx9q1yEE7djB2bO1yaEQr4kkhiJbnG0sGFC/FI193ThxK4qvd1/h3ydPdftLuFgzvHFZqpZwxruwLaYmKiNGK4QQQgiRByQlwfz5MH06JCSAiQkEBcHnn2uXohDiNZLEUGSbqYmKMm72lHGzp1F5N6KfppCi0WBuYoKjtXmuzz4qhBBCCJGvXLgAn3wCigL16kFwMFSubOyoRAEliaF4KYXtLSURFEIIIYTIqdhYsLfX/t/fHz79FMqVg169QCU9roTxyDqGr1lISAgqlSrdQuuvKjg4GD8/P2rWrGnQ82YmPimV25EJhD+M43ZkAvFJqa/lukIIIYQQadQahesP4zhx6wnhj+LQaN7gORUTE7VdRIsVg2fXXv78c3j3XUkKhdHluRbDO3fuMG7cOLZu3UpCQgJlypRhxYoV1KhRw9ihpRMYGIi/vz8LFizI9WsFBQURFBSkm3koNySmqLn6II59Vx6y5fQ9Lt+PJUWtYG6qolwRe9pW9qB+WVfKuNlhZS7r6wghhBB5VWR8EpciYnkYl0wJF2vKFbHHxuLN+th4PyaRHw/dYNm+cJJSNVibmzK8cRm61yxOIbs3rFfTH3/AqFFw/bp2e+VK7ZqEQrxB3qzf8Bd48uQJdevWpVGjRmzduhVXV1euXLmCs8zYlOtuRSaw9shNluy9zvMLnKSoFc7djeHc3Rjmbr/E4Aal6FWrJMVdbIwTrBBCCCFeWmR8EjP+vMCvx+/oyqa+XYGetUpgbvpmdDZTFIWfj94meM81XdnTFDVzt1/C0cacXrVKGjG6Z1y9qk0I//xTu+3pqZ1spls3o4YlREbejN/ubJozZw7FixdnxYoVvPXWW3h7e9O8eXNKly6d6TFTpkzB39+f5cuXU6JECezs7Pjggw9Qq9XMnTsXd3d33NzcmDFjht5xt27don379tjZ2eHg4EC3bt24f/9+uvOuXr0aLy8vHB0deeedd4iNjQWgb9++hIaG8vXXX6NSqVCpVNy4cUN3/LFjx6hRowY2NjbUqVOHS890KTh16hSNGjXC3t4eBwcHqlevztGjRzN8fklJScTExOg9DO3qgzj6rfiH70LTJ4XPUxT4LvQ6fVf8w9UHcQaPRQghhBC562JErF5SCDD9z/OEP4o3UkTp3YpMYHHItQz3zd9xmYjoxNccUQZmzYIKFbRJobk5jBun7ULavbt0GxVvpDyVGG7evJkaNWrQtWtX3NzcqFq1Kt9///0Lj7t27Rpbt25l27Zt/O9//+OHH36gTZs2/Pvvv4SGhjJnzhw+/fRTjhw5AoBGo6F9+/ZERkYSGhrKzp07uX79Ot27d0933k2bNrFlyxa2bNlCaGgos2fPBuDrr78mICCAQYMGce/ePe7du0fx4sV1x37yySd8+eWXHD16FDMzM/r376/b16tXL4oVK0ZYWBjHjh1j/PjxmJubZ/jcZs2ahaOjo+7x7DUM4XZkAoNXH+Xaw5z9Mbj2MJ7Bq49yOzLBoPEIIYQQInc9ik1OV5aiVngSn77cWOKT1CQkqzPc9zg+mYTkN2DuAxMTSE6GZs3g9GntuoR2dsaOSohM5amupNevX2fx4sWMGTOGiRMnEhYWxogRI7CwsKBPnz6ZHqfRaFi+fDn29vb4+fnRqFEjLl26xF9//YWJiQnly5dnzpw57Nmzh1q1arF7927OnDlDeHi4LtH68ccfqVChAmFhYboJXjQaDStXrsT+/2eWeu+999i9ezczZszA0dERCwsLbGxscHd3TxfTjBkzaNiwIQDjx4+nTZs2JCYmYmVlxa1btxg7diw+Pj4AlC1bNtPnNmHCBMaMGaPbjomJMVhymJiiZs2RmzlOCtNcexjP2iM3Gdm0nIw5FEIIIfKI4i7W6crsLc1wd7QyQjQZc7Yxx9XOkodxSen2lXa1xck64y/Uc9WlS9oZR9PmvRg9GipWhNatpYVQ5Al5qsVQo9FQrVo1Zs6cSdWqVXn//fcZNGgQ3333XZbHeXl56ZI3gCJFiuDn54eJiYle2YMHDwC4cOECxYsX10uw/Pz8cHJy4sKFC5me18PDQ3eOF6n8zBo1Hh4eALpjx4wZw8CBA2natCmzZ8/m2rWMu0oAWFpa4uDgoPcwlKsP4liy9/orneO7vdcN0qV01qxZ1KxZE3t7e9zc3OjQoYNe91uAxMREgoKCKFSoEHZ2dnTu3Fmv+y9ouwi3adMGGxsb3NzcGDt2LKmpb8C3ikIIIcQbory7PVPe9sPcVJvM2FmasbBHVUoWsjVyZP/xcLJmYhufDPdNbO2Ly+ucfCYuDsaPh0qVoE8fSEnRlltYQJs2khSKPCNPJYYeHh74+fnplfn6+nLr1q0sj3u+G6ZKpcqwTKPR5CieVznHs8eq/v8NI+3YKVOmcO7cOdq0acPff/+Nn58fv/32W5bny43lKvZdefjCMYUvoihw4OqjV44lNDSUoKAgDh8+zM6dO0lJSaF58+bEx//Xmjl69Gj++OMPNmzYQGhoKHfv3qVTp066/Wq1mjZt2pCcnMzBgwdZtWoVK1euZNKkSa8cnxBCCJFf2FiY0atWSf4cUZ/179fmzxH1aOTjZuyw0mnm686S96pTrogdpiYqKhV1YGW/mtQtU+j1BKAosH49+PjAnDnahNDLC6KjX8/1hTCwPNWVtG7duulaiS5fvkzJkoadecrX15fbt29z+/ZtXavh+fPniYqKSpeYZsXCwgK1OuP+7y9Srlw5ypUrx+jRo+nRowcrVqygY8eOmdY39HIV8UmpbDl975XPA7D51F3erV0SW8uXv922bdumt71y5Urc3Nw4duwYDRo0IDo6mh9++IG1a9fSuHFjAFasWIGvry+HDx+mdu3a7Nixg/Pnz7Nr1y6KFCmCv78/06ZNY9y4cUyZMgULC4tXep5CCCFEfmFuakK5IvYvrmhEdlZmtKjgTi1vF+KSUrG3MsPR+jX9LT9/HoYPh7//1m57e8PXX0O7dq/n+kLkgjzVYjh69GgOHz7MzJkzuXr1KmvXrmXp0qUEBQUZ9DpNmzalUqVK9OrVi+PHj/PPP//Qu3dvGjZsmKP1Er28vDhy5Ag3btzg0aNH2WpNfPr0KcOGDSMkJISbN29y4MABwsLC8PX1fZWnlGOR8clcvh9rkHNdvh/LkwTDDliP/v9v41xcXADtLK8pKSk0bdpUV8fHx4cSJUpw6NAhAA4dOkSlSpUoUqSIrk6LFi2IiYnh3LlzBo1PCCGEEK+Hk40FxZxtXl9SeOoUVKmiTQqtrGDqVDh3TpJCkeflqcSwZs2a/Pbbb/zvf/+jYsWKTJs2jQULFtCrVy+DXkelUvH777/j7OxMgwYNaNq0KaVKlWL9+vU5Os9HH32Eqakpfn5+uLq6vrDLK4CpqSmPHz+md+/elCtXjm7dutGqVSumTp36sk/npaSqNaSoX7Ef6f9LUSukqHPWTTcrGo2GUaNGUbduXSpWrAhAREQEFhYWODk56dUtUqQIERERujrPJoVp+9P2CSGEEEK8UOXK0KABtG+vbTmcNAms00/YI0Reo1KUVx1FJt4kaV1Jo6Oj001Ek5iYSHh4ON7e3lhZZT2z2O3IBBp/GWKQ5NDcVMWejwIp5myYBe+HDh3K1q1b2b9/P8WKFQNg7dq19OvXj6Qk/dnJ3nrrLRo1asScOXN4//33uXnzJtu3b9ftT0hIwNbWlr/++otWrVpleL2cvG5CCCGEyGdOn4bJk2H5cnB21pYlJICNYT7XCJGbssoNnpenWgzF6+Nia2GwsQXlitjjbGOY7h3Dhg1jy5Yt7NmzR5cUAri7u5OcnExUVJRe/fv37+uWC3F3d083S2nadkZLigghhBCiAIuKgpEjoVo12LQJPv/8v32SFIp8SBJDkSFbSzPaVvYwyLneruL5ShPPACiKwrBhw/jtt9/4+++/8fb21ttfvXp1zM3N2b17t67s0qVL3Lp1i4CAAAACAgI4c+aM3pIiO3fuxMHBIUeTCgkhhBAiH9NoYOVKKF8eFi4EtRq6doVn1o0WIj/KU7OSiterfllX5m6/9EpLVqhUULdM4VeOJSgoiLVr1/L7779jb2+vGxPo6OiItbU1jo6ODBgwgDFjxuDi4oKDgwPDhw8nICCA2rVrA9C8eXP8/Px47733mDt3LhEREXz66acEBQVhafka1zsSQgghxJvp+HEYNgz+f+I6fHxg0SJ4ZnI7IfIraTEUmSrjZsfgBqVe6RxDGpSijJvdK8eyePFioqOjCQwMxMPDQ/d4dkKgr776irZt29K5c2caNGiAu7s7Gzdu1O03NTVly5YtmJqaEhAQwLvvvkvv3r35/NmuIUIIIYQouIKDtUmhnR3MnaudgVSSQlFAyOQz+YyhJp9Jczsygb4r/uHaw/gXV35OaVdbVvZ7i+Iuebsfvkw+I4QQQuRTajXExkLarOYPHsDEidolKIoWNWpoQhiCTD5TAAUHB+Pn50fNmjUNet7iLjYsea8GpV1tc3RcaVdblrxXI88nhUIIIYTIp/75B2rXhvfe+6/MzQ2WLZOkUBRIkhjmE0FBQZw/f56wsDCDn7uMmx0r+73FkIalUKmyrqtSwdCGpVjZ7y2DdCEVQgghhDCohw9h4ECoVQuOHoW9eyEba00Lkd/J5DMiW4q72DCqaTnaVvbkwNVHbD51l8v3Y0lRK5ibqihXxJ63q3hSt0xhyrjZYWVuauyQhRBCCCH+o1bDd9/Bp59ql6IA6NMHZs8GWbZKCEkMRfZZmZtSsagjFYs68m7tkjxJSCZFrcHc1ARnG4tXXpJCCCGEECJX3LgBHTvCyZPabX9/+OYbqFvXiEEJ8WaRT/LipdhamkkiKIQQQoi8wd0dYmK0k8xMnw5DhoCp9G4S4lkyxvA1W7lyJU5pM18JIYQQosBTaxQexCTyJCHZ2KHkH6mp2kXqU1O121ZW8MsvcPkyBAVJUihEBvJUYrh48WIqV66Mg4MDDg4OBAQEsHXrVmOHlSkvLy8WLFhg7DCEyHXRT5O5cC+G8EdxqDWyAo4Q4tXdiozn/N0YHsclGTuUXHUpIoZZf12gzcL9dAg+wOpDN7gb9dTYYeVtoaFQrRr066cdU5imalVwdTVeXEK84fJUX8BixYoxe/ZsypYti6IorFq1ivbt23PixAkqVKhg7PCEKJAuR8QybuNpTtyKwtLMhKBGZXi3dglcbC2NHZoQIg9KSE5ly+l7TPvjPLFJqXgXtuGrbv74l3A2dmgGdykilh7fHyEy/v9bCuPgs9/P8felB8zrUoVCdvI+miN378JHH8H//qfddnEBR0fjxiREHpKnWgzbtWtH69atKVu2LOXKlWPGjBnY2dlx+PDhTI/p27cvHTp0YObMmRQpUgQnJyc+//xzUlNTGTt2LC4uLhQrVowVK1boHXfmzBkaN26MtbU1hQoV4v333ycuLi7deefNm4eHhweFChUiKCiIlJQUAAIDA7l58yajR49GpVKhem6dh+3bt+Pr64udnR0tW7bk3r17un0hISG89dZb2Nra4uTkRN26dbl586YhXkIhDComMYWJv53hxK0oAJJSNczfeZmw8CfGDUwIkWeduxPDx7+cJjZJ2wUw/FECg348lu9a0RRFYeuZe/8lhc/Yc/EhlyJijRBVHpWcDPPmQfny2qRQpdKOIbx8WX+NQiFElvJUYvgstVrNunXriI+PJyAgIMu6f//9N3fv3mXv3r3Mnz+fyZMn07ZtW5ydnTly5AhDhgxh8ODB/PvvvwDEx8fTokULnJ2dCQsLY8OGDezatYthw4bpnXfPnj1cu3aNPXv2sGrVKlauXMnKlSsB2LhxI8WKFePzzz/n3r17eolfQkIC8+bNY/Xq1ezdu5dbt27x0UcfAZCamkqHDh1o2LAhp0+f5tChQ7z//vvpEss0SUlJxMTE6D2EeF3uRT3l6M30SeAfp+8aIRohRH5w+k5UurKHcUncjkx4/cHkotjEVP44fS/T/ZfuS2KYbe+/D2PHQlycdsH6o0dh8WIoVMjYkQmRp+S5xPDMmTPY2dlhaWnJkCFD+O233/Dz88vyGBcXFxYuXEj58uXp378/5cuXJyEhgYkTJ1K2bFkmTJiAhYUF+/fvB2Dt2rUkJiby448/UrFiRRo3bsw333zD6tWruX//vu68zs7OfPPNN/j4+NC2bVvatGnD7t27ddc0NTXF3t4ed3d33J9ZHyclJYXvvvuOGjVqUK1aNYYNG6Y7LiYmhujoaNq2bUvp0qXx9fWlT58+lChRIsPnNmvWLBwdHXWP4sWLv9LrK0ROWJmZYmWe/m2khIuNEaIRQuQHzjYWGZbnt5mwLcxMKGSb8XMFcLDKX883V40apZ11dPlyOHBAO75QCJFjeS4xLF++PCdPnuTIkSMMHTqUPn36cP78+SyPqVChAiYm/z3VIkWKUKlSJd22qakphQoV4sGDBwBcuHCBKlWqYGtrq6tTt25dNBoNly5d0juv6TOzWnl4eOjOkRUbGxtKly6d4XEuLi707duXFi1a0K5dO77++mu91sbnTZgwgejoaN3j9u3bL7y+EIZS3MWG0U3L6ZVZm5vSupKHkSISQuR1VUs44WavP7aua/VieBe2zeSIvMnK3JR+db0y3GdqosLPU8bGZSgpCWbNgkmT/ivz99euU9ivH5jkuY+2Qrwx8txvj4WFBWXKlKF69erMmjWLKlWq8PXXX2d5jLm5ud62SqXKsEyj0eQolpc9R0bHKcp/MzmuWLGCQ4cOUadOHdavX0+5cuUyHUdpaWmpm6U17fFS4uMzfyQmZr/u06fZq5sDDx8+xN3dnZkzZ+rKDh48iIWFha6lNbs+//xzKlasmK7c39+fzz77LEfnEmBioqJ7zeL80KcGnasVZWSTsvwyJICKReUDjRDi5XgXtmPNoFpMaOVDe39PFr7jz0ctyue7FkOAt7xd0iWHFqYmBPesRlk3O+ME9Sbbtg0qVYKJE7XJ4dWr/+2zlIl6hHhVef5dVqPRkJRk2KmsfX19WblyJfHx8bpWwwMHDmBiYkL58uWzfR4LCwvUavVLxVC1alWqVq3KhAkTCAgIYO3atdSuXTvT+sHBwQQHB7/09bDL4g9Q69bw55//bbu5QUImYz0aNoSQkP+2vbzg0aP09ZTsL2ng6urK8uXL6dChA82bN6d8+fK89957DBs2jCZNmrBv3z5atWqV5TmWLFlCr1696N+/P1OnTiUsLIyaNWsCcOLECU6fPs3GjRuzHZP4j5ONBU18i9DEt4ixQxFC5BNl3ewp62Zv7DByXSE7Sz5sVp72/p6EP0rA0kxFWTd7SrnaYWqS8dwCBdKNG9ruor//rt12d9dONvNM7yshxKvLU4nhhAkTaNWqFSVKlCA2Npa1a9cSEhLC9u3bDXqdXr16MXnyZPr06cOUKVN4+PAhw4cP57333qNIkex/+PXy8mLv3r288847WFpaUrhw4RceEx4eztKlS3n77bfx9PTk0qVLXLlyhd69e2d5XFBQEEFBQcTExOCYD6dmbt26NYMGDaJXr17UqFEDW1tbZs2aBUCNGjU4efJklsen/dyKFStGixYtWLFihS4xXLFiBQ0bNqRUqVK5+hyEEEKI59lZmeFf3Bn/4vlvOY5X9vQpfPGFtnUwMVG7KP3IkTB5MrxsDykhRKbyVGL44MEDevfuzb1793B0dKRy5cps376dZs2aGfQ6NjY2bN++nZEjR1KzZk1sbGzo3Lkz8+fPz9F5Pv/8cwYPHkzp0qVJSkrS6y6a1bUvXrzIqlWrePz4MR4eHgQFBTF48OCXfTrZ88xSHOk8M44SgKzGUT7ft//GjZcO6Xnz5s2jYsWKbNiwgWPHjmH5/91GrK2tKVOmTLbPM2jQIPr378/8+fMxMTFh7dq1fPXVVwaLUwghhBAGEBWlTQwTE6FRI1i0CGTdaiFyjUrJTrYi8oy0FsPo6Oh04w0TExMJDw/H29sbKysrI0X48s6ePUvNmjVJSUnht99+o127dgA56koK2iVBihUrxldffYWFhQX9+/cnIiICa2vrDI/N66+bEEIIkWdERGi7iqZZvlw73KVrV+36hEKIHMkqN3henmoxFAVXcnIy7777Lt27d6d8+fIMHDiQM2fO4ObmlqOupABmZmb06dOHFStWYGFhwTvvvJNpUiiEEEKI1yAhAWbO1LYQbtkCab3B+vc3blxCFCCSGIo84ZNPPiE6OpqFCxdiZ2fHX3/9Rf/+/dmyZUuOu5ICDBw4EF9fX0A7sZAQQgghjEBRYONGGDMGbt3Slv3223+JoRDitclRYqjRaAgNDWXfvn3cvHmThIQEXF1dqVq1Kk2bNpXF1UWuCAkJYcGCBezZs0fXBL569WqqVKnC4sWLGTp0aI7PWbZsWerUqUNkZCS1atUydMhCCCGEeJFLl2D4cNi5U7tdogQsWAAdOhgzKiEKrGwlhk+fPuXLL79k8eLFREZG4u/vj6enJ9bW1ly9epVNmzYxaNAgmjdvzqRJk7JcVkGInAoMDCQlJUWvzMvLi+jo6Jc+p6Io3L17lw8++OBVwxNCCCFETn35JUyYACkpYGEBH3+s3baxMXZkQhRY2UoMy5UrR0BAAN9//z3NmjVLt0A7wM2bN1m7di3vvPMOn3zyCYMGDTJ4sEIYwsOHD1m3bh0RERH069fP2OEIIYQQBY+XlzYpbNNG20qYwyEhQgjDy1ZiuGPHDt14rMyULFmSCRMm8NFHH3ErrY+4EG8gNzc3ChcuzNKlS3F2lnWjhBBCiFx37px2Cas2bbTbnTrBvn1Qr55RwxJC/CdbieGLksJnmZubU7p06ZcOSIjcJiu0CCGEEK9JTAxMmQILF4KTE1y+DC4u2qUnJCkU4o1i8uIq+rZt28b+/ft128HBwfj7+9OzZ0+ePHli0OCEEEIIIUQepCiwejWUKwdffQVqNdSvD0lJxo5MCJGJHCeGY8eOJSYmBoAzZ87w4Ycf0rp1a8LDwxkzZozBAxSGp9FojB1CniItjEIIIUQOnDoFDRpA795w/z6ULQtbt2qXofDwMHZ0QohM5Hgdw/DwcPz8/AD49ddfadu2LTNnzuT48eO0bt3a4AEKw7GwsMDExIS7d+/i6uqKhYUFKpXK2GG90RRF4eHDh6hUqgwnXRJCCCHEM/79F2rW1E4sY2MDn36qXaPQ0tLYkQkhXiDHiaGFhQUJCQkA7Nq1i969ewPg4uKia0kUbyYTExO8vb25d+8ed+/eNXY4eYZKpaJYsWKYmpoaOxQhhBDizVasGPTtC1FR2iUpZI1rIfKMHCeGdevWZcyYMdStW5d//vmH9evXA3D58mWKFStm8ACFYVlYWFCiRAlSU1NRq9XGDidPMDc3l6RQCCFErol+mkxcYioALraWWFvkob85x47Bhx/C999ru4wCfPstmOX4I6YQwshy/FsbHBxMUFAQv/zyC4sXL6Zo0aIAbN26lZYtWxo8QGF4ad0ipWukEEIIYTy3Hidw4vYTvt1zlWsP4zE1UdGwnCvv1i5JBU8HCtm9wd0vHz/WdhNdskQ70cz48fDrr9p9khQKkSeplBzMrJGamsratWtp3rw57u7uuRlXvnbjxg28vb05ceIE/v7+Bj13TEwMjo6OREdH4+DgYNBzCyGEEMIwLt6LYeCqMP6NSsxw/9tVPBnfygdPJ+vXHNkLqNXwww8wYQJERmrLevaEL74AT0/jxiaESCcnuUGOZiU1MzNjyJAhJL3hUw3fuXOHd999l0KFCmFtbU2lSpU4evSoscMSQgghXquI6ET2XHzAL8f+Zf+VRzyMfbP/fhcUNx/HMyCLpBBg86m7fLvnKk+T36BhH//8A7Vrw+DB2qSwUiUIDYU1ayQpFCIfyHFb/1tvvcWJEycoWbJkbsTzyp48eULdunVp1KgRW7duxdXVlStXruDs7Gzs0IQQQojX5sajeIb+dIwLEbG6srqlCzG3S2WKOtsYMTJx4lYUd7JICtOs+ecWPWqVoIKn42uIKht27YKjR8HBAaZNgw8+kG6jQuQjOV7H8IMPPuDDDz/km2++4dChQ5w+fVrvYWxz5syhePHirFixgrfeegtvb2+aN29O6dKlM6wfHR2NqamprkVRo9Hg4uJC7dq1dXV++uknij8zq9bt27fp1q0bTk5OuLi40L59e27cuKF33mXLluHr64uVlRU+Pj58++23mcasVqvp378/Pj4+3Lp1C0VRmDJlCiVKlMDS0hJPT09GjBjxCq+KEEKIgkRRFDaeuKOXFAIcuPaYvVceGSkqARCVkMy3IVezVVdR4OC1x7kcURZSU7XLT6T58EMYOxYuX4YRIyQpFCKfyfFv9DvvvAOgl6ioVCoURUGlUhl9psvNmzfTokULunbtSmhoKEWLFuWDDz5g0KBBGdZ3dHTE39+fkJAQatSowZkzZ1CpVJw4cYK4uDjs7OwIDQ2lYcOGAKSkpNCiRQsCAgLYt28fZmZmTJ8+nZYtW3L69GksLCxYs2YNkyZN4ptvvqFq1aqcOHGCQYMGYWtrS58+ffSun5SURI8ePbhx4wb79u3D1dWVX375ha+++op169ZRoUIFIiIiOHXqVIbxJyUl6XXtlSVDhBBCPI5LZsPR2xnuW/fPLTpWLYqVeR6a+TIfiUtK5drD+GzXP307KveCycqBAxAUpB1TePw4mJtr1yKcO9c48Qghct1LLXD/Jrt+/TqLFy9mzJgxTJw4kbCwMEaMGIGFhUW6pCxNYGAgISEhfPTRR4SEhNCsWTMuXrzI/v37admyJSEhIXz88ccArF+/Ho1Gw7Jly3SLw69YsQInJydCQkJo3rw5kydP5ssvv6RTp04AeHt7c/78eZYsWaIXQ1xcHG3atCEpKYk9e/bg6KjtKnLr1i3c3d1p2rQp5ubmlChRgrfeeivD2GfNmsXUqVMN9voJIYTI+8xNVdhYZPwn3snGAlMT1WuOSKRRocJUpUJN9ub+szDLceeuVxMRAePGwY8/arednODCBahc+fXGIYR47XI0K2leYGFhQY0aNTh48KCubMSIEYSFhXHo0KEMj9m8eTO9e/fm8ePHdO3alebNm3Px4kWsrKwYMWIERYsW5fLly5QtW5axY8fy1VdfYWVlpXeOhIQEgoOD6d27N3Z2dlhbW2Ni8t+beWpqKo6Ojty/f183K2mxYsUoVqwYf//9N9bW/806dvv2berWrYuiKLRs2ZLWrVvTrl07zDLospFRi2Hx4sVlVlIhhCjgfj12mw83pB/isbxPDRr7FjFCRALgabKaYWuPs/vig2zVX9Ddnw5Vi+ZyVGi7jX7zDUyeDDExoFLBgAEwcya4uub+9YUQuSIns5LmuMXwx7RvkDLRu3fvnJ7SoDw8PPDz89Mr8/X15de0tXUy0KBBA2JjYzl+/Dh79+5l5syZuLu7M3v2bKpUqYKnpydl/3/R1ri4OKpXr86aNWvSncfV1ZW4uDgAvv/+e2rVqqW3//lF0lu3bs1PP/3EoUOHaNy4sa68ePHiXLp0iV27drFz504++OADvvjiC0JDQ9OtPWhpaYml5Ru8zpEQQgijCCzvxvDGZVgSep1ktQZrc1PGtihPDS8XY4dWoFlbmNKnjle2EkNrc1OqFH8NE888eABNmsDZs9rtGjUgOBgy6a0khMifcpwYjhw5Um87JSWFhIQELCwssLGxMXpiWLduXS5duqRXdvny5SxnUXVycqJy5cp88803mJub4+Pjg5ubG927d2fLli268YUA1apVY/369bi5uWWYdTs6OuLp6cn169fp1atXlrEOHTqUihUr8vbbb/Pnn3/qXcfa2pp27drRrl07goKC8PHx4cyZM1SrVi27L4UQQogCrJCdJSOalKW9vydRCSkUsrWgZCFbTKQbqdFV8HSgdSV3/joTkWW9z9tXoKSLbe4H5OoKLi5QqBDMmqVtKTR5zV1YhRBGl+PE8MmTJ+nKrly5wtChQxk7dqxBgnoVo0ePpk6dOsycOZNu3brxzz//sHTpUpYuXZrlcYGBgSxatIguXboA4OLigq+vL+vXryc4OFhXr1evXnzxxRe0b9+ezz//nGLFinHz5k02btzIxx9/TLFixZg6dSojRozA0dGRli1bkpSUxNGjR3ny5AljxozRu+7w4cNRq9W0bduWrVu3Uq9ePVauXIlaraZWrVrY2Njw008/YW1tnWVyGxwcTHBwsNEn/xFCCPHmMDc1oYybvbHDEM8pZGfJp238cLAyZ11Y+kmCrMxNmNa+Iq0reeROIp+cDIsXQ9++4Oio7Ta6apV2GQoXaVEWosBSDCQsLEwpX768oU73Sv744w+lYsWKiqWlpeLj46MsXbr0hcf89ttvCqAsXrxYVzZy5EgFUC5evKhX9969e0rv3r2VwoULK5aWlkqpUqWUQYMGKdHR0bo6a9asUfz9/RULCwvF2dlZadCggbJx40ZFURQlPDxcAZQTJ07o6n/55ZeKvb29cuDAAeW3335TatWqpTg4OCi2trZK7dq1lV27dmXruUdHRyuAXixCCCGEePPEJ6Uop29HKd+FXFU++OmoMvJ/x5WNx24r1x7EKmq1JncuunOnovj4KAooyqhRuXMNIcQbIye5gcEmnzl58iQNGjSQ5RKMLCcDTIUQQghRQNy6pV2H8JdftNuurjBvHhh5CJAQInfl6uQzmzdv1ttWFIV79+7xzTffULdu3ZyeThiIdCUVQgghRDpJSfDllzBjBiQkaMcODhsGU6dql6IQQoj/l+MWQ5PnBiOrVCpcXV1p3LgxX375JR4eHgYNUOSMtBgKIYQQQufjj+GLL7T/r1dPuyRFlSrGjUkI8drkaouhRqN56cCEEEIIIUQuUxTthDIAY8bAH3/Ap59Cz57/lQshxHNynBg+K62xUSVvMkIIIYQQxvX0KcydC5cuwdq12jJ3dzh3TpafEEK80Eu9S/z4449UqlQJa2trrK2tqVy5MqtXrzZ0bEIIIYQQ4kUUBTZvhgoVYMoU+N//4ODB//ZLUiiEyIYctxjOnz+fzz77jGHDhukmm9m/fz9Dhgzh0aNHjB492uBBiheTyWeEEEKIAujqVRg5Ev76S7tdtCjMnw8BAcaNSwiR5+R48hlvb2+mTp1K7+emN161ahVTpkwhPDzcoAGKnJHJZ4QQQogC4OlT7UyjX3yhXbDe3Fy7HMUnn4CdnbGjE0K8IXJ18pl79+5Rp06ddOV16tTh3r17OT2dEEIIIUSGUtQazE2lG2Sm1qzRJoXNm8PChVC+vLEjEkLkYTlODMuUKcPPP//MxIkT9crXr19P2bJlDRaYEEIIIQqW5FQ11x/G88+NSHaev098kpoiDpZ0rFoUXw8HirvYGDtE47p6Fby9wdQUrK3hu+8gPh46dpTZRoUQryzHieHUqVPp3r07e/fu1Y0xPHDgALt37+bnn382eIBCCCGEyP/uPElgyd7rrDlyC7VGf5TL1rMROFqbM7mdH8393LGzeqVJ1fOe2FiYPh2++gq+/hqGDtWWt2hh3LiEEPlKjvtndO7cmSNHjlC4cGE2bdrEpk2bKFy4MP/88w8dO3bMjRjznZCQEFQqFVFRUQY7Z3BwMH5+ftSsWdNg5xQiuxKSU7nzJIH7MYnGDkUIkQfdi3rKhxtO8eOhm+mSwjTRT1MY8/Mp1h+9xdPk1NccoZEoCqxbBz4+2mUoUlLg0CFjRyWEyKdyPPnMm27x4sUsXryYGzduAFChQgUmTZpEq1atjBvYM0JCQmjUqBFPnjzBycnJoOeWyWfE65SUoubE7Si+33ud/VcfYWtpRt86XrSp5EFpN5n8QAhji36awrUHcTxJSMbVzpLSbnbYWr5ZrW0ajcK8nZf4ds+1bB/zv0G1CShdKBejegOcOwfDh8OePdrtUqW0rYVt2xo3LiFEnpKrk88AaDQarl69yoMHD9BoNHr7GjRo8DKnNJhixYoxe/ZsypYti6IorFq1ivbt23PixAkqVKhg1NiEeFXhj+IIC3/Cvein1PRyoXIxJ6N1qVIUhe3n7zPifyd0ZUmpyczfeZn1YbdY1b8WZSQ5FC9JrVE4dzeaI9cjMTGBWt6FqODpgErGUWXbrccJfPr7GfZefqQr6+DvycctffB0sjZiZPrCH8ezfH/OZjRfeSAc/+JOWFuY5lJURrZ4sTYpVKvBygomToSxY7X/F0KIXJLjrqSHDx+mTJky+Pr60qBBAwIDA3WPRo0a5UaMOdKuXTtat25N2bJlKVeuHDNmzMDOzo7Dhw9nWP/s2bOYmJjw8OFDACIjIzExMeGdd97R1Zk+fTr16tXTO6ZVq1bY2dlRpEgR3nvvPR49+u8Pr0ajYdasWXh7e2NtbU2VKlX45ZdfMo05ISGBVq1aUbduXaKiokhOTmbYsGF4eHhgZWVFyZIlmTVr1qu+NCKPC38YR69lR/j419N8tesKPZcdYdPJOxir0f9mZAITN57JcN+dqER+N2JsIu87fusJnRcfZMZfF5i25QKdFx/k5O0oY4eVZySnqvk25KpeUgiw6eRdfj3+r5GiytiZf6NJTNG8uOIzdly4z/WHcbkU0RugVi3QaLSTyly4AJ99JkmhECLX5TgxHDJkCDVq1ODs2bNERkby5MkT3SMyMjI3YnxparWadevWER8fT0AmC71WqFCBQoUKERoaCsC+ffv0tgFCQ0MJDAwEICoqisaNG1O1alWOHj3Ktm3buH//Pt26ddPVnzVrFj/++CPfffcd586dY/To0bz77rt650wTFRVFs2bN0Gg07Ny5EycnJxYuXMjmzZv5+eefuXTpEmvWrMHLyyvD+JOSkoiJidF7iPzp2M0n3I3SH8M3e+tFbkcmGCWe6w/iiEvKfJzPigM3iJAxh+IlJKao+ebvK6So//tiISlVw7J94aSk5iyBKKhuRT5lw7GME8Clode5G/X0NUeUuZO3onJ8jKLAg9gkwwdjLKdOwbJl/21Xq6btSrpxI2Ty918IIQwtx33Qrly5wi+//EKZMmVyIx6DOHPmDAEBASQmJmJnZ8dvv/2Gn59fhnVVKhUNGjQgJCSELl26EBISQr9+/Vi2bBkXL16kdOnSHDx4kI8//hiAb775hqpVqzJz5kzdOZYvX07x4sW5fPkyJUuWZObMmezatUuXjJYqVYr9+/ezZMkSGjZsqDsuIiKC7t27U7ZsWdauXYuFhQUAt27domzZstSrVw+VSkXJkiUzfa6zZs1i6tSpr/yaiTff/Qw+BMUlpZJkpA/KiS+4blxSKilq+RAvci4pRc3tyPSJy43H8aRoNJjn/DvNAicpVZ3pJC6xSakkv0EJdmKq+qWOy+z55SlRUdrWwG+/1S5BUb/+f2sR+voaNTQhRMGT47+utWrV4urVq7kRi8GUL1+ekydPcuTIEYYOHUqfPn04f/58pvUbNmxISEgIoG0dbNy4sS5ZDAsLIyUlRbc0x6lTp9izZw92dna6h4+PDwDXrl3j6tWrJCQk0KxZM706P/74I9eu6Q+sb9asGWXKlGH9+vW6pBCgb9++nDx5kvLlyzNixAh27NiRaewTJkwgOjpa97h9+/bLvmziDVe9pHO6slreLrg7Gqd7kccLrlu9hDPO1hZZ1hEiI442FnSvWTxd+Ts1i2Nj8WZNnPKmcrO3pLhLxuMI3/J2oZDdm/O7WdT55cY72uTl8YUaDSxfDuXKwTff/Ndt1E7GZQshjCdbf2FPnz6t+//w4cP58MMPiYiIoFKlSpibm+vVrVy5smEjfAkWFha6Fs3q1asTFhbG119/zZIlSzKsHxgYyKhRo7hy5Qrnz5+nXr16XLx4kZCQEJ48eUKNGjWwsdEuqhsXF0e7du2YM2dOuvN4eHhw9uxZAP7880+KFi2qt9/S0lJvu02bNvz666+cP3+eSpUq6cqrVatGeHg4W7duZdeuXXTr1o2mTZtmOE7R0tIy3XlF/lSpqCOzO1di5l8XiHmaSkApFz5vXxF7K/MXH5wLyrjaEVjelZBLDzPcP7xJGeytjRObyPvaVfHk3ydP+d8/t1CpoE+AF8383I0dVp7ham/FtPYV6b8yjGcb1ixMTfi4RXmjvW9kpHapnM8u6mZviXdh21yI5jU4dgyCguDIEe22ry8sWgRNmhg3LiFEgZetxNDf3x+VSqU3kUT//v11/0/bp1KpUKtfrktIbtJoNCQlZT4WoVKlSjg7OzN9+nT8/f2xs7MjMDCQOXPm8OTJE934QtAmbb/++iteXl6YmaV/+fz8/LC0tOTWrVt63UYzMnv2bOzs7GjSpAkhISF63V0dHBzo3r073bt3p0uXLrRs2ZLIyEhcXFxy/gKIfMHW0ox3apagXpnCJKaocXewws6IH+7src2Z0q4Cn6rPsv/qfxNcWJqZMKmdHzW95F4VL8/TyZrP2vrSv64XqKCYsw3mptKFNCfqlC7Mz0MCWHP4FufuRvOWlwtdaxSncjFHY4emp6ybHRU9HTh7N/tj5IMalcHjDZpZNdtiY6FxY4iJ0bYOTpkCI0aA+ZuTqAshCq5sJYbh4TmbRtqYJkyYQKtWrShRogSxsbGsXbuWkJAQtm/fnukxaeMM16xZw0cffQRoWz6TkpLYvXs3Y8aM0dUNCgri+++/p0ePHnz88ce4uLhw9epV1q1bx7Jly7C3t+ejjz5i9OjRaDQa6tWrR3R0NAcOHMDBwYE+ffroXXvevHmo1WoaN25MSEgIPj4+zJ8/Hw8PD6pWrYqJiQkbNmzA3d3d4GseirypmLONsUPQ8SpsS3Cvqly9H8edqEQszEwo42aLVyFbzORDvHhFFmameLtK17qXZWFmQo2SLvgXcyIxRY21hRmmJm/ech9ONhZMbleBHt8fJjUb4wZLFbYlsLzra4jMQBQF0pZZsbeHTz6B06e1C9Z7eho3NiGEeEa2EsOsJj950zx48IDevXtz7949HB0dqVy5Mtu3b6dZs2ZZHtewYUM2bdqkax00MTGhQYMG/Pnnn7rxhQCenp4cOHCAcePG0bx5c5KSkihZsiQtW7bExET7QXjatGm4uroya9Ysrl+/jpOTE9WqVWPixIkZXvurr77SSw7t7e2ZO3cuV65cwdTUlJo1a/LXX3/pzi/Em8TR2oLqXi5UN3YgQogMmZmaYPeGf1FTraQzy/rUYPDqY1lOqFXG1Y7F71ajZKE80o30yBEYNgzmzNG2FIJ2PUJZj1MI8QZSKdlYaOzw4cPUrl07WydMSEggPDxcFpM3kpiYGBwdHYmOjsbBwcHY4QghhBDZoigK5+/FsOv8fZbtCyf2meVwvAvbMLxxWWp6uVDc5c3pNZGphw9h/HjtBDMAAQFw8KBxYxJCFEg5yQ2y1WL43nvvUapUKQYOHEjr1q2xtU3/Td358+f56aefWLFiBXPmzJHEUAghhBDZplKpqODpSAVPRzpULcqDmCRSNQpW5iaUcLGhkF0emGgtNRWWLIFPP9UuRQHQty/Mnm3MqIQQIluylRieP3+exYsX8+mnn9KzZ0/KlSuHp6cnVlZWPHnyhIsXLxIXF0fHjh3ZsWOH3gyb4vUIDg4mODj4jZz8RwghhMiJkoVs80530TSHD8OQIdrF6gGqVtUuRVGnjnHjEkKIbMpWV9JnHT16lP3793Pz5k2ePn1K4cKFqVq1Ko0aNZIZM98A0pVUCCGEMIKff4bu3cHJCWbMgMGDtYvWCyGEERm8K+mzatSoQY0aNV46OCGEEEKIPC8lBS5fhrShM127wu3b0Ls3uOahWVOFEOL/vdnTlAkhhBBCvGlCQ6FaNQgMhCdPtGUqFXz4oSSFQog8SxJDIYQQQojsuHMHevbUJoRnz4JGA+fOGTsqIYQwCEkMhRBCCCGykpwMX3wBPj7wv/9pWweHDtV2Ja1Xz9jRCSGEQeR4jKEQQgghRIGRkAA1asCFC9rt2rUhOFjblVQIIfKRV2oxTExMNFQcQgghhBBvHhsb7QL1rq6wYgUcOCBJoRAiX8pxYqjRaJg2bRpFixbFzs6O69evA/DZZ5/xww8/GDxAIYQQQojXJikJZs6Ea9f+K/viC2230b59wURG4Qgh8qccv7tNnz6dlStXMnfuXCwsLHTlFStWZNmyZQYNTmRfcHAwfn5+1KxZ09ihCCGEEHnT1q1QsSJ88gmMHPlfuYuLdn1CIYTIx3KcGP74448sXbqUXr16YfrMwq1VqlTh4sWLBg1OZF9QUBDnz58nLCzM2KEIIYQQeUt4OHToAK1bw9Wr4O4OPXqAohg7MiGEeG1ynBjeuXOHMmXKpCvXaDSkpKQYJCghhBBCiFz39ClMnQp+fvD772Bmpl2L8NIl6NVLO/uoEEIUEDlODP38/Ni3b1+68l9++YWqVasaJCghhBBCiFz33XcwZQokJkLjxnDqFMybBw4Oxo5MCCFeuxwvVzFp0iT69OnDnTt30Gg0bNy4kUuXLvHjjz+yZcuW3IhRCCGEEMIw1GpIGwozdChs3qz9t2tXaSEUQhRoOW4xbN++PX/88Qe7du3C1taWSZMmceHCBf744w+aNWuWGzEKIYQQQrya+HjtpDJ16kBqqrbMygr27IFu3SQpFEIUeCpFkZHV+UlMTAyOjo5ER0fjIF1hhBBCFHSKAhs3wujRcPu2tuzXX6FTJ+PGJYQQr0FOcoMctxiWKlWKx48fpyuPioqiVKlSOT2dEEIIIUTuuHgRWrSALl20SWGJEtoksWNHY0cmhBBvnBwnhjdu3ECtVqcrT0pK4s6dOwYJSgghhBDipSUnw7hxULky7NwJlpbw2Wdw4YI2KZRuo0IIkU62J5/ZvHmz7v/bt2/H0dFRt61Wq9m9ezdeXl4GDU4IIYQQIsfMzeHgQUhJgTZt4OuvoXRpY0clhBBvtGyPMTQx0TYuqlQqnj/E3NwcLy8vvvzyS9q2bWv4KEW2yRhDIYQQBdK5c1C8+H9LTZw5AzduQLt2Rg1LCCGMKVfGGGo0GjQaDSVKlODBgwe6bY1GQ1JSEpcuXZKkUAghhBCvV0wMjBkDVapoF6tPU6mSJIVCCJEDOV7HMDw8PDfiEEIIIYSBPY5L4lZkAsmpGqwtTCnpYoOjjYWxwzIMRYGffoKxY+H+fW3Z7dvachlDKIQQOZbjxBAgPj6e0NBQbt26RXJyst6+ESNGGCQwkTPBwcEEBwdnODGQEEKIguVhbCL7rz5m0d9XuP4wXldeqagDwxqXoZZ3IZzycoJ46hQEBcGBA9rtsmVh4UJo2dK4cQkhRB6W43UMT5w4QevWrUlISCA+Ph4XFxcePXqEjY0Nbm5uXL9+PbdiLRBu3LiBt7c3J06cwN/fP8fHyxhDId58iqKgkhYNkUvuRyfy+ZZz/HkmItM6feuUZESTcrjY5sHk8KefoE8f0GjAxkY72+jo0dqZR4UQQujJ1XUMR48eTbt27Xjy5AnW1tYcPnyYmzdvUr16debNm/fSQb8Oe/fupV27dnh6eqJSqdi0aZOxQxIiX4h5msLFezGEP4pDrcnRd00Fyr2op2w6cYfey/9h6Opj7Ln0gOiEFGOHJfIRRVH4+ejtLJNCgJUHb7Lrwv3XFJWBNWkCtrbQrZt2ncLx4yUpFEIIA8hxYnjy5Ek+/PBDTExMMDU1JSkpieLFizN37lwmTpyYGzEaTHx8PFWqVCE4ONjYoQiRb1x9EEv/lWG0/HofLRfsY0noNaISkl98YAHzIDaR8RvPMGr9SfZdecTWcxH0WxHGqkM3SEqVLuDCMG48jmdx6LVs1f1yxyUiohNzOSIDOHYMJk36b9vDQ5sQrl+vnYVUCCGEQeQ4MTQ3N9ctXeHm5satW7cAcHR05Pbt24aNzsBatWrF9OnT6dixY7bqR0dHY2pqytGjRwHtzKwuLi7Url1bV+enn36i+DN/mG7fvk23bt1wcnLCxcWF9u3bc+PGDb3zLlu2DF9fX6ysrPDx8eHbb7/NNAa1Wk3//v3x8fHRvdZCvCkSklOZ+dcFjt58AkBSqoa52y9x4naUcQN7A52/G0Po5Yfpyhfsuqw3BkyIV3H5fhwJydn7ouF+TBLXHsbmckSv4PFjGDIEataEadNgx47/9nl6Gi8uIYTIp3KcGFatWpWwsDAAGjZsyKRJk1izZg2jRo2iYsWKBg/QmBwdHfH39yckJASAM2fOoFKpOHHiBHFxcQCEhobSsGFDAFJSUmjRogX29vbs27ePAwcOYGdnR8uWLXWT9KxZs4ZJkyYxY8YMLly4wMyZM/nss89YtWpVuusnJSXRtWtXTp48yb59+yhRokSGdWJiYvQeQrwuD2KS+Pti+mRn/5X0ZQXd2TvRGZZrFLjz5OlrjkbkV1E57Joc8zQ1lyJ5BWo1LFkC5cpp/1UU6NkT8tlnDCGEeNPkODGcOXMmHh4eAMyYMQNnZ2eGDh3Kw4cPWbp0qcEDNLbAwEBdYhgSEkKzZs3w9fVl//79urK0xHD9+vVoNBqWLVtGpUqV8PX1ZcWKFdy6dUt3jsmTJ/Pll1/SqVMnvL296dSpE6NHj2bJkiV6142Li6NNmzY8fPiQPXv24OrqmmF8s2bNwtHRUfcoLt1qxGtkbWGKq336sT1eheyMEM2bzS2D1ymNraXpa4xE5GcWZjn7s25q8oZNgnTkCNSqpW0pjIzUrkUYGgpr1kgroRBC5LIcL1dRo0YN3f/d3NzYtm2bQQN60zRs2JAffvgBtVpNaGgozZs3x93dnZCQECpXrszVq1cJDAwE4NSpU1y9ehV7e3u9cyQmJnLt2jXi4+O5du0aAwYMYNCgQbr9qampODo66h3To0cPihUrxt9//421tXWm8U2YMIExY8botmNiYiQ5FK9NEQer/2PvvsOiuL4+gH+X3qsNRMGCBUVsqNhFjQ01tqgx9hITS6xRE3v5adQYoxJ7RI0lxh41GmONDUHFEuy9d+nS9rx/zMuGFTWALLvA9/M8++jM7M6e3WVn58y991xMauWFL9ec0axzsbdAzRLOeozKMPkUcYCFqRFeJ6q11nsWtEHJAkykKWsUc7ZO931NjFRwd7bSYTQZlJQEdOoE3LoF2NkBkycrU1KYZGpmLSIiyiAebf9D3bp1ERUVhdOnT+Pw4cP43//+h0KFCmHGjBnw8fGBq6srPD09ASitfFWqVMGaNWvS7Cd//vya7qdLly5F9erVtbYbG2u3GDRv3hy//PILjh8/Dn9//3fGZ25uDnNWYyM9alimIDZ9URPn772Cg5UZfIrYo1g+JjpvKl3IDqt6VcOoTedw81ksAKBmCWdMalUO+W0t9Bwd5RYlClijWjEnnLz54j/v26ZSYRTLl/5EUieSkpTJ6I2NlQRwzhxg2zZgxgygUCH9xkZElMdkODF8/vw5xo8fjwMHDuDJkydQq7Wvfr948d8/RjmJg4MDKlSogAULFsDU1BRlypRBgQIF0LFjR+zYsUPTjRQAKleujF9//RUFChR46zwh9vb2cHV1xY0bN9ClS5f3Pu8XX3yB8uXLo1WrVti5c6fW8xAZEnNTY1Rxd0QVd0d9h2LwqhVzxm/9a+LeyziY/n9rjY2Fqb7DolzE1sIUY1uURaclJ95bhMbJ2gx96hSHmYkeuzEfOQIMHAh8+SXQr5+yrk0b5UZERNkuw4lh165dce3aNfTu3RsFCxbMUZM0R0dH49q1a5rlmzdvIiwsDE5OTm8t7JKifv36mD9/Ptq3bw8AcHJyQtmyZfHrr79qTX3RpUsXzJo1C61bt8bkyZPh5uaG27dvY/Pmzfj666/h5uaGSZMmYfDgwbC3t0fTpk0RHx+P0NBQvHz5UqtLKAAMGjQIycnJCAgIwB9//IHatWtn8TtCRNktn4058tmwlZ90p4KbA9b2qY6vfg3D7eexabZ7udphTgcflC5k+5ZHZ4NHj4CvvwZWr1aWZ80CevdWWg2JiEhvMpwY/v333zhy5Ah8fHx0EY9OhYaGokGDBprllESse/fuCAoKeufj6tWrh7lz52rGEgJKsnj27FmtdVZWVjh8+DBGjRqFtm3bIioqCoULF0bDhg01LYh9+vSBlZUVZs2ahZEjR8La2hre3t4YMmTIW597yJAhUKvVaN68OXbv3o2aNWtm+vUTEVHeULGoIzZ9URNXHkfh7yvP8CwmHq72lqhdMh88C9rAwcos+4NKTAQWLAAmTACiopQupL17A//7H5NCIiIDoBIRycgDfH19MX/+fK25/MhwREZGwt7eHhEREW/tzkpERJTtTp4EevUC/vlHWa5aFQgMBKpV029cRES5XEZygwxPV/HTTz/h22+/xaFDh/D8+XPOoUdERETvZ2QEhIcDzs7AkiXKtBRMComIDEqGu5I6ODggMjIyTaVMEYFKpUJy8rsHuxMREVEekJCgJH916ijLVasqcxE2aQI4Oek3NiIieqsMJ4ZdunSBqakp1q5dm+OKzxAREZGO/fUXMGgQcP06cOECUKqUsr5zZ/3GRURE75XhxPDChQs4c+YMSpcurYt4iIiIKCe6cwcYNgzYtElZLlAAuH3738SQiIgMWobHGFatWhV3797VRSxERESU08THK5VFy5ZVkkIjI2DwYODyZaBxY31HR0RE6ZThFsNBgwbhq6++wsiRI+Ht7Q1TU+3JmStUqJBlwREREZEBU6uBGjWAsDBluU4dZUoKngsQEeU4GU4MO3bsCADo1auXZp1KpWLxGSIiorzGyAjo2BF4/BiYPVsZR8jaA0REOVKGE8ObN2/qIg4iIiIydHFxwMyZQP36QL16yrqhQ4EvvwQ4dy4RUY6W4cTQ3d1dF3EQERGRoRIBfv8dGDIEuHkTKFdO6T5qYgKYmys3IiLK0dKVGG7fvh3NmjWDqakptm/f/t77tmrVKksCIyIiIgNw7Rrw1VfArl3KspsbMGECYGys37iIiChLqURE/utORkZGePToEQoUKAAjo3cXMuUYQ/2LjIyEvb09IiIiYMduPaRjT6Je496LODyJeo2YhGQYqVRwtDKFi70F3J2tYWHKE0eiHCs2Vqk2OmuWMmG9qSkwfDjw7beAjY2+oyMionTISG6QrhZDtVr91v8TUd70KOI1jlx7irl/XcW9l3FptqtUwEdlC6Jv3eLwdrOHuQkTRKIcZ9cuYNo05f8ffQTMmwdwDmMiolwrw/MYrlq1CvHx8WnWJyQkYNWqVVkSFBEZrn/uR6BX0EmM+O3cW5NCQBmOtCf8MTosPo75+67hceTrbI6SiDIlLtV3ul07oGtXYPNmYPduJoVERLlcurqSpmZsbIyHDx+iQIECWuufP3+OAgUKsCupngQGBiIwMBDJycm4cuUKu5KSTpy79wqfLQtG5OukDD0uoIILxgd4oYCdhY4iI6IPEh0NTJkCrF0LnD8PODjoOyIiIsoCGelKmuEWw5T5Ct9079492NvbZ3R3lEUGDBiA8PBwhISE6DsUyqXuvIjB56tPZTgpBIAd5x5i46l7SExiV3QigyICrF8PlCmjTENx7x7w66/6joqIiPQg3dNVVKpUCSqVCiqVCg0bNoSJyb8PTU5Oxs2bN9G0aVOdBGnoevTogVevXmHr1q36DoVIJ5LVgg0hd/EwIvNdQmf/eRk1S+ZDxSIOWRcYEWXehQvAoEHAwYPKcvHiwI8/AgEBeg2LiIj0I92J4ccffwwACAsLQ5MmTWCTqiKZmZkZPDw80K5duywPUJcWLlyIhQsX4tatWwCAcuXKYfz48WjWrJl+AyN6h8QkNW6/iEFsQjJc7C2Q3zZ7umbefBaDpX/f/KB9qAXYfPoeyrvawcQ4w50VcpWY+CQYG6lYtTUdUkY7vK2nCmWSCDBihJIEJicDFhbAN98AI0cq/yciojwp3YnhhAkTAAAeHh7o1KkTzHPBZLZubm6YMWMGPD09ISJYuXIlWrdujTNnzqBcuXL6Di9DUo8xpNzpUUQclhy+gVXHbyNJLSjqZImZ7X1Qo7izzp/76pMoxGdBN9D1J++id+1icHe2zoKocp7n0fE4cPkJVhy9BXtLU/SvVwLVijnCwjTdh+I8IzYhCaG3XmLV8VswVqnQraYHqrg7MpnOCioV8Py5khS2aQPMmQN4eOg7KiIi0rMMX7b39/fH06dPNcsnT57EkCFDsGTJkiwNLDu0bNkSzZs3h6enJ0qVKoVp06bBxsYGJ06ceOdjkpOTMWzYMDg4OMDZ2Rlff/013qzfs3v3btSuXVtzn4CAAFy/fl2z3d/fHwMHDtR6zNOnT2FmZoZ9+/YBAH766Sd4enrCwsICBQsWRPv27d/7WjjGMPfbeuY+fj56C0lq5e/tzos49FhxElcfR+n8ucPuvsqS/SQkq/E0Km1V47xARLDp1D2M+O0c/nkQiWPXn6PbzycReuulvkMzSMf///356+IT7Al/jC7LgnHy5gt9h5VznT0L3L797/J33wF//KFUHGVSSEREyERi+Omnn+LAgQMAgEePHqFRo0Y4efIkvv32W0yePDnLA8wuycnJWL9+PWJiYuDn5/fO+33//fcICgrCzz//jCNHjuDFixfYsmWL1n1iYmIwbNgwhIaGYt++fTAyMkKbNm00c0D26dMHa9eu1Zr245dffkHhwoXh7++P0NBQDB48GJMnT8bly5exe/du1K1b963xxMfHIzIyUutGuc/jyNdYfPhGmvWvE9W4ouPEUERwNosSQwB4FZeYZfvKSR5GvMa8/dfSrF9+5CaSklmUJ7WY+CQsOJD2vVpy+AYSktgrIkNevlTGEVauDAwe/O/6ggWBPFoXgIiI3i7DieGFCxdQrVo1AMCGDRvg7e2NY8eOYc2aNQgKCsrq+HTu/PnzsLGxgbm5Ofr3748tW7bAy8vrnfefO3cuxowZg7Zt26Js2bJYtGhRmmqs7dq1Q9u2bVGyZElUrFgRP//8M86fP4/w8HAAQNu2bQEA27Zt0zwmKCgIPXr0gEqlwp07d2BtbY2AgAC4u7ujUqVKGJz6Bz2V6dOnw97eXnMrUqTIh74lZICS1YKEd3TlTEzO0IwzGSaijA/Muv3pNl5DpZa3f4axiclQ59H35F3UIohLSJsAxiYkZenfYq6mVgM//6zMPbhggbJsYQG8ZR5iIiIiIBOJYWJiomZ84V9//YVWrVoBAMqUKYOHDx9mbXTZoHTp0ggLC0NwcDC++OILdO/eXZPAvSkiIgIPHz5E9erVNetMTExQtWpVrftdvXoVnTt3RvHixWFnZweP/++mc+fOHQCAhYUFunbtip9//hkAcPr0aVy4cAE9evQAADRu3Bju7u4oXrw4unbtijVr1iA2NvatMY0ZMwYRERGYPXs2SpcujZIlS37I20EGqqCdBTpXK5pmvZEK8Cxo85ZHZB0jIxVKF7TNsv3ZWphm2b5ykkJ2Fujq555mfXc/D5iZcNxcarYWpuhbp3ia9b1rF+MYw/QIDQVq1gR69waePgXKlgX++kuZhiIX1AcgIiLdyHBiWK5cOSxatAh///039u7dq5mi4sGDB3B21n0RjKxmZmaGkiVLokqVKpg+fTp8fHzw448/ftA+W7ZsiRcvXmDp0qUIDg5GcHAwACAhIUFznz59+mDv3r24d+8eVqxYAX9/f7i7KyeNtra2OH36NNatWwcXFxeMHz8ePj4+ePXqVZrnMjc3h52dHYYPH45Lly7h1KlTHxQ7GSZjIxW6+rnDr7iTZp2FqRF+7FQJngWyLml7F18PxyzZj5EKKGCbN09MTYyN0Kt2MfSvWxxWZsbIb2OO6W29UbNEzjtuZgf/Mvkxo603ijhZwsPZCt938EHtkvn1HZbh27EDqFYNCA4GbGyA2bOV8YUNG+o7MiIiMnAZLoX33XffoU2bNpg1axa6d+8OHx8fAMD27ds1XUxzMrVarTX2LzV7e3u4uLggODhYM+YvKSkJp06dQuXKlQEAz58/x+XLl7F06VLUqVMHAHDkyJE0+/L29kbVqlWxdOlSrF27FgsWLNDabmJigkaNGqFRo0aYMGECHBwcsH//fk03VMp73J2tseizKrj2NAYx8Ulwc7SEh7M1jIx0X8bfs6AtjFQf3qW0WflCKOxgmTVB5UCFHSwxsmkZdKvpARMjFQrYcWqAd3G0NkenakXxkVdBqIxUcLQy03dIOUPDhkoxGT8/YNYswNVV3xEREVEOkeHEsH79+nj27BkiIyPh6PhvK0K/fv1gZWWVpcHp2pgxY9CsWTMULVoUUVFRWLt2LQ4ePIg9e/a88zFfffWVZoqLMmXKYM6cOVoteY6OjnB2dsaSJUvg4uKCO3fuYPTo0W/dV58+fTBw4EBYW1ujTZs2mvU7duzAjRs3ULduXTg6OmLXrl1Qq9UoXbp0lr12ypnsrcxQxT37T5CL57dGuypu+C303gftp6ufB8zzeFdAYyMVXPNwcpxRTjZ5s4U53U6cABYtApYvB4yNAUtL4MwZ4I2x70RERP8l3V1Jnzx5ovm/sbGxVlIIKHMCpkwUn1M8efIE3bp1Q+nSpdGwYUOEhIRgz549aNy48TsfM3z4cHTt2hXdu3eHn58fbG1ttZI6IyMjrF+/HqdOnUL58uUxdOhQzJo166376ty5M0xMTNC5c2dYpJpU2MHBAZs3b4a/v7+mwM26dety3NyKlHuYmxijX93isLPI/Hx73fzc4e3Gk1WiLPH0qTKG0M8PWLkSWLr0321MComIKBNUks4SgcbGxnj48CEKFCgAQOkKuWvXLk0VzMePH8PV1ZUTrGfArVu3UKJECYSEhGi6omZW6gnur1y5goiICNjZ2WVRpESKI1efoseKEM1ciulVwc0eCz6tjKJOOatXAZHBSUpSWgjHjQNSeqt0767MS1iwoF5DIyIiwxMZGQl7e/t05QbpbjF8M3+8desWEhMT33sfervExEQ8evQIY8eORY0aNT44KQQ4wT1lD78S+bC6dzU4Wae/O+tHXgWxoHMlJoVEH+roUaBqVWVewlevgEqVlHVBQUwKiYjog2W4Kun7qFS6L4KRGxw9ehQuLi4ICQnBokWL9B0OUboZG6ngVyIfNvb3Q/+6xWFh+u5DiEc+Kyz8rDJmtq+Aos7W2RglUS4kAowapVQYdXQEfvoJCAlRpqUgIiLKApkfMESZVr9+fbauUo5WPL8Nvm5aBp/4FsGt5zG49TwW91/GwdRYmfPQ1cESJQrYIB8LhxBlXmKi0nXU0hJQqYD584GFC4H//Q/Il0/f0RERUS6T7sRQpVIhKioKFhYWEBGoVCpER0cjMjISADT/ElHeYGSkQvH8Niie30bfoRDlPgcPKl1GmzUDZs5U1lWqBCxZotewiIgo90p38RkjIyOtrqIpyeGbyyw+o18ZGWBKREQG5v59YMQIYP16ZdnFBbh2Dchh00EREZFhyEhukO4WwwMHDnxwYKQ7qauSEhFRDpOQAMydC0yeDMTEAEZGQP/+wJQpTAqJiChbpLvFkHIGthgSEeUwZ84An34KXLqkLPv5AYGBStdRIiKiD6CT6SqIiIhIBwoUAO7dU/4NCgKOHGFSSERE2Y6JIRERUXaKjwc2bfp3uXBhYNs24PJlZbJ6I/40ExFR9uOvDxERUXbZtQsoXx5o3x74669/1/v7Aw4OeguLiIiIiSEREZGu3bwJtG4NtGihVBl1cVFaDomIiAwEE0MiIiJdiYsDJk0CvLyA7dsBExNg+HCl0EyLFvqOjoiISCNd01W0bds23TvcvHlzpoOhzON0FUREBqhZM+DQIeX//v7A/PlKkkhERGRg0tViaG9vr7nZ2dlh3759CA0N1Ww/deoU9u3bB3t7e50FSu83YMAAhIeHIyQkRN+hEBFRigEDADc3YMMGZUwhk0IiIjJQGZ7HcNSoUXjx4gUWLVoEY2NjAEBycjK+/PJL2NnZYdasWToJlNKH8xgSEelJbCzwv/8Bnp5KdVEAEFG6k3KSeiIi0oOM5AYZTgzz58+PI0eOoHTp0lrrL1++jJo1a+L58+cZj5iyDBNDIqJsJgJs3gwMGwbcuQPkywdcvw7wGExERHqm0wnuk5KScOnSpTTrL126BLVandHdERER5VyXLgFNmijTT9y5A7i7A0uWALa2+o6MiIgoQ9JVfCa1nj17onfv3rh+/TqqVasGAAgODsaMGTPQs2fPLA+QiIjI4ERFAVOmAD/8ACQlAebmwKhRyo3dRomIKAfKcGI4e/ZsFCpUCN9//z0ePnwIAHBxccHIkSMxfPjwLA+QiIjI4Fy8CKSMqQ8IAObOBUqU0GtIREREHyLDYwxTi4yMBACOZTMgHGNIRKQjL14ATk7/Lk+cCFStqiSGREREBkinYwxTs7OzY/JBRES5W0SEUlimaFHg2rV/10+cyKSQiIhyjQwnho8fP0bXrl3h6uoKExMTGBsba91IPwIDA+Hl5QVfX199h0JElDuIAKtXA6VLK2MJY2KAjRv1HRUREZFOZLgrabNmzXDnzh0MHDgQLi4uUKlUWttbt26dpQFSxrArKRFRFggLAwYOBI4eVZZLlQLmzVMqkBIREeUQGckNMlx85siRI/j7779RsWLFzMZHRERkuL7+Gvj+e0CtViqMjhsHDB2qVB4lIiLKpTKcGBYpUgQfUK+GiIjIsNnZKUnhJ58As2cDRYroOyIiIiKdy/AYw7lz52L06NG4deuWDsIhIiLKZqGhyi3FiBHAgQPAr78yKSQiojwjw2MMHR0dERsbi6SkJFhZWcHU1FRr+4sXL7I0QMoYjjEkIkqn58+Bb74Bli4FvL2BU6cAkwx3pCEiIjJYOh1jOHfu3MzGRUREpH/JyUoy+O23ytyEgJIYxsQA9vb6jY2IiEhPMpwYdu/eXRdxEBER6d6JE0q10VOnlGVvb2DBAqBuXf3GRUREpGcZTgzv3Lnz3u1FixbNdDBEREQ6c/w4ULOm8n87O2DKFODLL9l9lIiICJlIDD08PNLMXZhacnLyBwVERESkEzVqKC2DxYsDM2YABQvqOyIiIiKDkeHE8MyZM1rLiYmJOHPmDObMmYNp06ZlWWBEREQf5OhRpVVwwwalhVClAv78k/MREhERvUWGE0MfH58066pWrQpXV1fMmjULbdu2zZLAiIiIMuXhQ2DUKGD1amV5+nTlBjApJCIieocMz2P4LqVLl0ZISEhW7Y6IiChjEhOBH34ASpdWkkKVCujbFxg+XN+RERERGbwMtxhGRkZqLYsIHj58iIkTJ8LT0zPLAqOMCQwMRGBgIMd4ElHedPCgUm30n3+U5WrVlGqjvr56DYuIiCinyPAE90ZGRmmKz4gIihQpgvXr18PPzy9LA6SM4QT3RJQnde0K/PIL4OysFJbp1QswyrJOMURERDmSTie4P3DggNaykZER8ufPj5IlS8KEJb+JiCg7JCQAUVFKIggAM2cC+fIB48YBTk76jY2IiCgHynCLYV7Ro0cPvHr1Clu3btV3KBnCFkMiyvX27gUGDQK8vIDNm/UdDRERkcHKSG6QqX42169fx6BBg9CoUSM0atQIgwcPxvXr1zMV7Ic6fPgwWrZsCVdXV6hUqncmchcvXkSrVq1gb28Pa2tr+Pr64s6dO9kbLBHladGvk3Dy5nP8dOAago7exIX7r5Cs1v+1ObVacPNZNE7ffom7L2P1Hc673bkDtG8PfPQRcPmyMh3F48f6joqIiChXyHDfzz179qBVq1aoWLEiatWqBQA4evQoypUrh99//x2NGzfO8iDfJyYmBj4+PujVq9c7p8q4fv06ateujd69e2PSpEmws7PDP//8AwsLi2yNNT0SEhJgZmam7zCIKIvFJyZj7cnb+N+uS5p1JkYq/NzDF3VL5ddrXDvPP8S3Wy4gLjEZ9pam+LFTRdQrlT/NeHK9iY8HZs8Gpk0D4uIAY2Ol0MykSYC9vb6jIyIiyhUy3GI4evRoDB06FMHBwZgzZw7mzJmD4OBgDBkyBKNGjdJFjO/VrFkzTJ06FW3atHnnfb799ls0b94cM2fORKVKlVCiRAm0atUKBQoU+M/9z549Gy4uLnB2dsaAAQOQmJio2fby5Ut069YNjo6OsLKyQrNmzXD16lXN9okTJ6JixYpa+5s7dy48PDw0yz169MDHH3+MadOmwdXVFaVLlwYA/PTTT/D09ISFhQUKFiyI9u3bp/MdISJDdONZDGb8cUlrXZJa8M2W83gS9VpPUQFXn0Zj+G9nEZeoVDSOiEvEgDWncfu5gbQcXroElC8PjB2rJIV16wJnzgBz5zIpJCIiykIZTgwvXryI3r17p1nfq1cvhIeHZ0lQWUmtVmPnzp0oVaoUmjRpggIFCqB69erpGjt44MABXL9+HQcOHMDKlSsRFBSEoKAgzfYePXogNDQU27dvx/HjxyEiaN68uVbymB779u3D5cuXsXfvXuzYsQOhoaEYPHgwJk+ejMuXL2P37t2oW7fuWx8bHx+PyMhIrRsRGZ6Hr+Lwtl6j917G4VlUQvYH9P/uPo/FmyPNYxKScf9VnH4CelPRokqhGRcXYM0aZVoKb299R0VERJTrZDgxzJ8/P8LCwtKsDwsLS1cLXHZ78uQJoqOjMWPGDDRt2hR//vkn2rRpg7Zt2+LQoUPvfayjoyMWLFiAMmXKICAgAC1atMC+ffsAAFevXsX27duxbNky1KlTBz4+PlizZg3u37+f4YI11tbWWLZsGcqVK4dy5crhzp07sLa2RkBAANzd3VGpUiUMHjz4rY+dPn067O3tNbciRYpk6LmJKHvYW5m+db21mTGszY2zOZp/OVmn7bpupAKcrPTUpT0uDli4EEiZk9XKCti+XWk5/PRTZdJ6IiIiynIZHmPYt29f9OvXDzdu3EDNmjUBKGMMv/vuOwwbNizLA/xQarUaANC6dWsMHToUAFCxYkUcO3YMixYtQr169d752HLlysHY+N8TNhcXF5w/fx6A0nJqYmKC6tWra7Y7OzujdOnSuHjxYoZi9Pb21hpX2LhxY7i7u6N48eJo2rQpmjZtijZt2sDKyirNY8eMGaP1vkdGRjI5JDJAJfPboGGZAth36YnW+qGNS6GoU9rvdnYpVdAWbSsVxuYz9zXrvmrkiWL5rbM3EBHg99+BIUOAmzeVcYT9+inbfHyyNxYiIqI8KMOJ4bhx42Bra4vvv/8eY8aMAQC4urpi4sSJ72zV0qd8+fLBxMQEXl5eWuvLli2LI0eOvPexpqbaV/hVKpUm0UwPIyMjvDkbyNu6mVpba5+A2dra4vTp0zh48CD+/PNPjB8/HhMnTkRISAgcHBy07mtubg5zc/N0x0RE+mFvZYZJrcuhRglnrDlxG9bmJuhfrzhql9RvkRdHazN826Is2lZ2w5Oo13BztEIZF1tYmGZjK+bVq8BXXwF//KEsu7kBBQtm3/MTERFRxhNDlUqFoUOHYujQoYiKigKgJDKGyszMDL6+vrh8+bLW+itXrsDd3T3T+y1btiySkpIQHBysaTl9/vw5Ll++rElC8+fPj0ePHkFENCd+b+uG+zYmJiaa6UAmTJgABwcH7N+//52VV4nI8Lk5WqFvneLoUMUNJkYq2Fi8vXtpdnO2MUdtTz1cYIqJAf73P6XiaEICYGoKjBgBfPMNYGOT/fEQERHlYRlODFOztbVFQkICoqOjYaOnH/Ho6Ghcu3ZNs3zz5k2EhYXByckJRYsWBQCMHDkSHTt2RN26ddGgQQPs3r0bv//+Ow4ePJjp5/X09ETr1q3Rt29fLF68GLa2thg9ejQKFy6M1q1bAwDq16+Pp0+fYubMmWjfvj12796NP/744z8nl9yxYwdu3LiBunXrwtHREbt27YJardZULCWinM1BX+P3DE23bv9OUN+kCTBvHlCqlH5jIiIiyqMyVHxmxYoVGDRoENasWQNAGd9ma2sLe3t7NG7cGM+fP9dJkO8TGhqKSpUqoVKlSgCAYcOGoVKlShg/frzmPm3atMGiRYswc+ZMeHt7Y9myZdi0aRNq1679Qc+9YsUKVKlSBQEBAfDz84OIYNeuXZouqGXLlsVPP/2EwMBA+Pj44OTJkxgxYsR/7tfBwQGbN2+Gv78/ypYti0WLFmHdunUoV67cB8VLRGRQxowBihcHtmxRupEyKSQiItIblbw5CO4dpk2bhmnTpqFWrVo4ffo0PvnkE2zduhVDhgyBkZER5s2bh4CAACxcuFDXMdN7REZGwt7eHhEREf/ZMklElG2iooApUwBLS2Vi+hRJSYDJB3VeISIionfISG6Q7l/joKAgLF++HJ07d0ZoaCiqV6+ODRs2oF27dgCA8uXLo3///h8WORER5S4iwPr1ytjBBw+UcYR9+yoFZgAmhURERAYi3V1J79y5o+l6WbVqVZiYmKB8+fKa7RUqVMDDhw+zPkIiIsqZLlwAGjRQ5h988ODfbqMpSSEREREZjHQnhomJiVrTIpiZmWlN52BiYoLklAmJiYgo74qMBIYOBSpWBA4dAiwsgMmTgX/+AVq00Hd0RERE9BYZ6sMTHh6OR48eAQBEBJcuXUJ0dDQA4NmzZ1kfHRER5TwREcCSJUByMtCmDTBnDuDhoe+oiIiI6D3SXXzGyMgIKpUqzYTtADTrVSoVWw31jMVniEgvbt8GUs8N+/PPQOHCyjQUREREpBc6KT5z8+bNDw6MiIhymZcvgXHjgIULgb/+UsYUAkCvXvqNi4iIiDIk3Ymhe+orwURElLep1cCKFcDo0UDKUIK9e/9NDImIiChHYZ1wIiLKmNBQYOBAIDhYWfbyAubPB/z99RsXERERZVq6q5ISERFh/HigWjUlKbS1Bb7/HggLY1JIRESUw7HFkIiI0s/LS5m0/rPPgJkzARcXfUdEREREWSBDiaGI4O7duyhQoAAsLCx0FZPeTZw4EVu3bkVYWJi+QyGiXOT+y1hcehiFs/dfwdzECJWLOqF0QRs42Zj/94P15cQJ4Pnzf+cf7NgRKFUKqFxZv3ERERFRlspwYliyZEn8888/8PT01FVMWSo5ORkTJ07EL7/8gkePHsHV1RU9evTA2LFjoVKp9B1elgkMDERgYCCnCyG9iUtIgomREUxN2EP9bc7fe4XeK0PxJCpea31VD0fMbu8Dj3zWeorsHZ48AcaMUaadKFAAuHwZcHAAVComhURERLlQhs7gjIyM4OnpiefPn+sqniz33XffYeHChViwYAEuXryI7777DjNnzsT8+fP1HVoaCQkJmX7sgAEDEB4ejpCQkCyMiOi/PYl8jXUn7+CTxScwcN1pnLr1AsnqdE2Pmmfceh6D7itC0iSFABB66yXGbr2AiLjMf/+zVFISsGABULq0khQCQPPmymT1RERElGtl+NL+jBkzMHLkSFy4cEEX8WS5Y8eOoXXr1mjRogU8PDzQvn17fPTRRzh58uR/Pnb16tXw8PCAvb09OnXqhKioKM22+Ph4DB48WNOttnbt2lpJWVBQEBwcHLT2t3XrVq1WyokTJ6JixYpYtmwZihUrpumeu3HjRnh7e8PS0hLOzs5o1KgRYmJiPvCdIMp6arVgTfBtjNl8HufvR2DPP4/RcckJXLgfoe/QDMqZO6/wIubdid+Ra89w7YkBfMePHAGqVAEGDQJevVJaBo8dU6alcHbWd3RERESkQxlODLt164aTJ0/Cx8cHlpaWcHJy0roZmpo1a2Lfvn24cuUKAODs2bM4cuQImjVr9t7HXb9+HVu3bsWOHTuwY8cOHDp0CDNmzNBs//rrr7Fp0yasXLkSp0+fRsmSJdGkSRO8ePEiQ/Fdu3YNmzZtwubNmxEWFoaHDx+ic+fO6NWrFy5evIiDBw+ibdu2EHl7C0x8fDwiIyO1bkTZ5f6rOCw+fENrXZJacOjKUz1FZJh2nHvwn/e58TQ6GyJ5j2vXgLp1gXPnAEdHZcL6kycBPz/9xkVERETZIsNVSefOnauDMHRn9OjRiIyMRJkyZWBsbIzk5GRMmzYNXbp0ee/j1Go1goKCYGtrCwDo2rUr9u3bh2nTpiEmJgYLFy5EUFCQJsFcunQp9u7di+XLl2PkyJHpji8hIQGrVq1C/vz5AQCnT59GUlIS2rZtC3d3dwCAt7f3Ox8/ffp0TJo0Kd3PR5SVRJTbm9TsSqpF1P99H728ZSLKmEEAKFkS6NkTMDEBpk0D8uXTQ0BERESkLxlODLt3766LOHRmw4YNWLNmDdauXYty5cohLCwMQ4YMgaur63tfi4eHhyYpBAAXFxc8efIEgNKamJiYiFq1amm2m5qaolq1arh48WKG4nN3d9ckhQDg4+ODhg0bwtvbG02aNMFHH32E9u3bw9HR8a2PHzNmDIYNG6ZZjoyMRJEiRTIUA1FmuTpYoGdNDyxK1WpobKRC3VL53/OovKeZdyHsv/zkvfcpnt3FZw4eBEaOBH79FSheXFm3dClgxOJBREREeVGmzgCuX7+OsWPHonPnzppk6Y8//sA///yTpcFlhZEjR2L06NHo1KkTvL290bVrVwwdOhTTp09/7+NMTU21llUqFdTqdFz2/39GRkZpun8mJiamuZ+1tfbJoLGxMfbu3Ys//vgDXl5emD9/PkqXLo2bN2++9XnMzc1hZ2endSPKLibGRuhRywPjAsqiRH5r1CzpjF/6VIO3m72+QzMoVdwdYWf57utwVdwd4VnQJnuCuXcP6NwZaNAACA0FJk78dxuTQiIiojwrw2cBhw4dgre3N4KDg7F582ZERyvjYs6ePYsJEyZkeYAfKjY2FkZvnOwYGxtnKMl7U4kSJWBmZoajR49q1iUmJiIkJAReXl4AgPz58yMqKkqraEx650VUqVSoVasWJk2ahDNnzsDMzAxbtmzJdLxEulTI3hK9axfH5i9qYnl3X/gVzwdTYyYYqRXPb4OgHtXgYGWaZls5FzvMal8BDlZmug0iIUGZkL5MGWD9eiUJHDAAyGHDA4iIiEg3MtyVdPTo0Zg6dSqGDRum1dXS398fCxYsyNLgskLLli0xbdo0FC1aFOXKlcOZM2cwZ84c9OrVK9P7tLa2xhdffIGRI0fCyckJRYsWxcyZMxEbG4vevXsDAKpXrw4rKyt88803GDx4MIKDgxEUFPSf+w4ODsa+ffvw0UcfoUCBAggODsbTp09RtmzZ9z6O8xiSvtnrOrHJ4Sq7O2L7gFo4fz8SITdfwMzUCHU886F0QVsUsLPQ7ZP/9RcwcKAyFyEA1KypTElRqZJun5eIiIhyjAwnhufPn8fatWvTrC9QoACePXuWJUFlpfnz52PcuHH48ssv8eTJE7i6uuLzzz/H+PHjP2i/M2bMgFqtRteuXREVFYWqVatiz549mrGATk5O+OWXXzBy5EgsXboUDRs2xMSJE9GvX7/37tfOzg6HDx/G3LlzERkZCXd3d3z//ff/WUV1wIABGDBgACIjI2Fvz258RIaoqLM1ijpbo0UFl+x94qNHlaSwQAGl1bBrV3YbJSIiIi0qedc8CO/g5uaGDRs2oGbNmrC1tcXZs2dRvHhxbNmyBSNGjMD169d1FSulQ0piGBERwfGGRHlVfDzw6BHw/5WNERcHzJgBDB0KvDG/KhEREeVeGckNMnzJuFOnThg1ahQePXqkKchy9OhRjBgxAt26dct00ERElAV27QLKlwfatAFSupZbWgKTJjEpJCIionfKcGL4v//9D2XKlEGRIkUQHR0NLy8v1K1bFzVr1sTYsWN1ESMREf2XGzeAVq2AFi2UyeofPQLYg4OIiIjSKcNdSVPcuXMHFy5cQHR0NCpVqgRPT8+sjo0yIHXxmStXrrArKVFeERcHfPed0lU0Pl6ZoH7IEGD8eCBVgTAiIiLKezLSlTTTiSEAzTx9KpUqs7ugLMYxhkR5yN27QN26wK1bynLDhsD8+cB/VDEmIiKivEGnYwwBYPny5ShfvjwsLCxgYWGB8uXLY9myZZkKloiIMqlwYcDVFXBzAzZsAPbuZVJIREREmZLh6SrGjx+POXPmYNCgQfDz8wMAHD9+HEOHDsWdO3cwefLkLA+SiIgAxMQoE9IPHqx0EzUyAtatA5ydAWtrfUdHREREOViGu5Lmz58f8+bNQ+fOnbXWr1u3DoMGDTLIuQzzEnYlJcqFRIBNm4Bhw5TuoyNHKvMREhEREb1HRnKDDLcYJiYmomrVqmnWV6lSBUlJSRndHRERvc/Fi0oL4V9/Kcvu7kDt2vqNiYiIiHKdDI8x7Nq1KxYuXJhm/ZIlS9ClS5csCYoyLjAwEF5eXvD19dV3KESUFaKilJbBChWUpNDcHJgwQUkUW7XSd3RERESUy2S4K+mgQYOwatUqFClSBDVq1AAABAcH486dO+jWrRtMTU01950zZ07WRkv/iV1JiXKJAQOAn35S/t+ypTK2sHhxvYZEREREOYtOp6to0KBBuu6nUqmwf//+jOyasgATQ9KH6NeJeBWXCGOVCgXtLGBkxClsMkUESJn+58EDZbL6qVOVf4mIiIgySKdjDA8cOJDpwHKSHj164NWrV9i6dau+QyHSSExW4+6LWLxOVKOArTny2ZrrNZ7o+CScuvUCPx28jpBbL2BlZoIu1YuibeXCKF2IFybSLSJC6Sb65Amwdq2yztUVOH3630SRiIiISIcyNY9hirt37+Lu3btZFUu2mDFjBlQqFYYMGaLvUIgy5O7LWEzZEY4mcw+j+by/0X7xMRy+8hRJyWq9xBOfmIwNIXfRfUUIgm++gFqURHHx4Rv4ZPEJhD+I0EtcOYoIsGoVULo08OOPytQTZ8/+u51JIREREWWTDCeGSUlJGDduHOzt7eHh4QEPDw/Y29tj7NixSExM1EWMWSYkJASLFy9GhQoV9B3KOyUkJOg7BDJAMQlJ+O6PS1h1/DYSk5Xe37eexaJnUAjO3dNPAnbtaTSm7Ax/67aIuETM/esq4hKSszmqHCQsDKhTB+jeHXj8WEkO9+wBfHz0HRkRERHlQRlODAcNGoQlS5Zg5syZOHPmDM6cOYOZM2di+fLlGDx4sC5izBLR0dHo0qULli5dCkdHx3Q/bvbs2XBxcYGzszMGDBiglfy+fPkS3bp1g6OjI6ysrNCsWTNcvXpVs33ixImoWLGi1v7mzp0LDw8PzXKPHj3w8ccfY9q0aXB1dUXp0qUBAD/99BM8PT1hYWGBggULon379m+NLz4+HpGRkVo3yn1uPo3BjnMP06xPVgs2nb6nh4iAs3df4X0jlPdefIzbz2OyL6CcIjISGDgQqFIFOHpUmZh+xgzg3Dngo4/0HR0RERHlURkeY7h27VqsX78ezZo106yrUKECihQpgs6dO791KgtDMGDAALRo0QKNGjXC1KlT0/WYAwcOwMXFBQcOHMC1a9fQsWNHVKxYEX379gWgJHVXr17F9u3bYWdnh1GjRqF58+YIDw/Xqs76X/bt2wc7Ozvs3bsXABAaGorBgwdj9erVqFmzJl68eIG///77rY+dPn06Jk2alO7nopwpIu7drfHhDyKRkJQMMxPjbIwIeBjx+r3bRYAYthimZWwMbNsGqNVAx47A7NmAm5u+oyIiIqI8LsOJobm5uVaLV4pixYrBzMwsK2LKcuvXr8fp06cREhKSocc5OjpiwYIFMDY2RpkyZdCiRQvs27cPffv21SSER48eRc2aNQEAa9asQZEiRbB161Z06NAh3c9jbW2NZcuWad6/zZs3w9raGgEBAbC1tYW7uzsqVar01seOGTMGw4YN0yxHRkaiSJEiGXqdZPjy25rDxEiFJHXaJro6pfJne1IIAMXz27x3u5mxEewt03+BJFc7fx4oVw4wMlJaCJctA0xNAX9/fUdGREREBCATXUkHDhyIKVOmID4+XrMuPj4e06ZNw8CBA7M0uKxw9+5dfPXVV1izZg0sLCwy9Nhy5crB2PjfE24XFxc8efIEAHDx4kWYmJigevXqmu3Ozs4oXbo0Ll68mKHn8fb21kqqGzduDHd3dxQvXhxdu3bFmjVrEBsb+9bHmpubw87OTutGuU8xZ2t8Wb9EmvW25iZoXr6QHiICvAvbwdzk3YeQjr5F4OFslY0RGaDnz4HPP1fGDa5Y8e/6Jk2YFBIREZFByXCL4ZkzZ7Bv3z64ubnB5/+LJJw9exYJCQlo2LAh2rZtq7nv5s2bsy7STDp16hSePHmCypUra9YlJyfj8OHDWLBgAeLj47WSv9Te7A6qUqmgVqe/AqSRkRHenCbybQV6rK2ttZZtbW1x+vRpHDx4EH/++SfGjx+PiRMnIiQkBA4ODul+fso9TE2M0L2mBzzyWSPwwDU8i07AR14F0aOmB8q46OdiQPF8Nvjps8rov/qUpiBOCi8XO/SuXQwmxh9U+DjnSk4Gli4Fvv0WePFCWXf+vH5jIiIiInqPDCeGDg4OaNeundY6Q+662LBhQ5x/44SsZ8+eKFOmDEaNGvXOpPC/lC1bFklJSQgODtZ0JX3+/DkuX74MLy8vAED+/Pnx6NEjiAhU/192PiwsLF37NzExQaNGjdCoUSNMmDABDg4O2L9/v1biTXmLs4052lZ2g3+ZAnidqIaTtaleupCmMDJSoX6pAtjyZS38Ff4Y+y49gY2FCT6tVhSVizqgsGMebS08flwpLnP6tLJcoQKwYIFSgZSIiIjIQGU4MVyRujtUDmBra4vy5ctrrbO2toazs3Oa9Rnh6emJ1q1bo2/fvli8eDFsbW0xevRoFC5cGK1btwYA1K9fH0+fPsXMmTPRvn177N69G3/88cd/dvfcsWMHbty4gbp168LR0RG7du2CWq3WVCylvM3BynDG8hobqVC+sD3KF7ZH//olYGykgmlebSUElOqiY8Yo/7e3B6ZMAb74AjDJ8KGWiIiIKFvl4TO4D7dixQpUqVIFAQEB8PPzg4hg165dmi6oZcuWxU8//YTAwED4+Pjg5MmTGDFixH/u18HBAZs3b4a/vz/Kli2LRYsWYd26dShXrpyuXxJRplmYGuftpBBQxg0aGQE9ewJXrgCDBjEpJCIiohxBJW8OgnsHR0dHTXfI1Ozt7VGqVCmMGDECjRs3zvIAKWMiIyNhb2+PiIgIFqIh0rW//wbCw5UCMylu3gSKFdNfTERERET/LyO5QbovZc+dO/et61+9eoVTp04hICAAGzduRMuWLTMULBFRjvPwIfD118AvvwBmZkDDhkDJkso2JoVERESUA6U7Mezevft7t1esWBHTp09nYkhEuVdiIjB/PjBxIhAVBahUQI8egKOjviMjIiIi+iBZNiAoICAAly5dyqrdUQYFBgbCy8sLvr6++g6FKHc6eBCoVAkYPlxJCqtVA4KDgcWLAWdnfUdHRERE9EHSPcbwv5w/fx6NGzfGo0ePsmJ3lEkcY0ikA8+fA0WKAHFxQL58SvXRnj2VQjNEREREBkonYwz/y/Lly1GxYsWs2h0RkX4lJwMp85w6OwPjxgH37ilTUDg56Tc2IiIioiyW7sRw2LBhb10fERGB06dP48qVKzh8+HCWBUZEpDd//gkMHgwsWQLUrausS5mfkIiIiCgXSndieObMmbeut7OzQ+PGjbF582YUYzU+IsrJbt8Ghg0DNm9WlqdMAfbu1W9MRERERNkg3YnhgQMHdBkHEZH+vH4NzJ4N/O9/yjhCY2Ng4EBg0iR9R0ZERESULbJsjCERUY70119A//7A9evKct26wIIFgLe3fuMiIiIiykYsqUdEedvjx0pS6OoKrF2rTEvBpJCIiIjyGLYYElHeEhcHXL4MpFRR/vRT4OVLoHt3wNZWr6ERERER6QtbDIkobxABtm0DvLyAZs2AyEhlvUqljCdkUkhERER5GBNDIsr9rl4FmjcHPv4YuHULMDX9d0whERERETExJKJcLCYG+OYboHx5YPduwMxMWb54EahUSd/RERERERkMjjEkotwpIgKoUAG4c0dZbtoUmDcP8PTUb1xEREREBogthrlEYGAgvLy84Ovrq+9QiAyDvT1Qrx7g4QFs3Qrs2sWkkIiIiOgdVCIi+g6Csk5kZCTs7e0REREBOzs7fYdDlH2iooBp05Q5CT08lHUvXwIWFoClpV5DIyIiItKHjOQG7EpKRDmbCLB+PTBiBPDgAXDlCrB5s7LN0VG/sRERERHlEEwMiSjnunBBmWri0CFluUQJoHdv/cZERERElANxjCER5TwREcCQIcok9YcOKV1Fp05VEsUWLfQdHREREVGOwxZDIsp5FiwAfvxR+X/btsCcOYC7u35jIiIiIsrBmBgSUc6QmKhMTA8AQ4cChw8Dw4cDH32k37iIiIiIcgEmhkRk2F6+BMaNA0JCgGPHAGNjwMoK2LNH35ERERER5RocY0hEhkmtBpYvB0qVAgIDgZMngX379B0VERERUa7ExJCIDE9oKODnB/TpAzx7Bnh5Afv3s9soERERkY4wMSQiwxEbC/TrB1SrprQQ2toqhWXCwoAGDfQdHREREVGuxTGGRGQ4LCyAc+eUSes/+wyYORNwcdF3VERERES5HhNDItKv4GCgXDnAxgYwMgIWLwYiI4E6dfQdGREREVGewa6kRKQfT54AvXoBNWoA06b9u97Hh0khERERUTZjiyFRDpKsFkTHJyIpWWBlbgJLU2N9h5RxSUnAwoXKFBQREcq6V6+U7qMqlV5DIyIiIsqrmBgS5QCvYhNw9XE0tp99gGPXnyE+SY18Nmbo5ucBnyIOKOZsDSOjHJBU/f03MHCgMo4QACpXVqaiqFFDv3ERERER5XFMDIkM3NXHURi58SzC7kZorb/3Mg5hd8/CwtQI4wK80MrHFbYWpnqKMh1++gkYMED5v6Mj8L//AX37KhPWExEREZFecYxhJkycOBEVK1bUdxiUB1x9HIUuy4LTJIWpvU5U49stF7Du5B3EJiRlY3QZ1LKlMv1Ev37AlStA//5MComIiIgMRJ5PDA8fPoyWLVvC1dUVKpUKW7du1XdIRACA6NeJmLD9HzyJik/X/f+36xLO3Xt3ApntDhwAvv323+UiRYAbN5Sqo/ny6S8uIiIiIkojzyeGMTEx8PHxQWBgoL5D+U8JCQn6DoGy0bWn0Th2/XmGHrP+5B3EJyXrKKJ0uncP6NgR8PdXuosePPjvNiaERERERAYpzyeGzZo1w9SpU9GmTZsMP3b16tXw8PCAvb09OnXqhKioKM22+Ph4DB48GAUKFICFhQVq166NkJAQzfagoCA4ODho7W/r1q1QparKmNJlddmyZShWrBgsLCwy/gIpx9p38UmGH7P97APcfBqjg2jSISEB+O47oEwZYMMGZU7CAQOAChX0Ew8RERERpVueTwwz6/r169i6dSt27NiBHTt24NChQ5gxY4Zm+9dff41NmzZh5cqVOH36NEqWLIkmTZrgxYsXGXqea9euYdOmTdi8eTPCwsLSbI+Pj0dkZKTWjXK+5GQ1jmewtRAA1AI8j9FDy/KffwLe3sDo0UBMDFCzJnDqFLBgAeDklP3xEBEREVGGMDHMJLVajaCgIJQvXx516tRB165dsW/fPgBK99SFCxdi1qxZaNasGby8vLB06VJYWlpi+fLlGXqehIQErFq1CpUqVUKFt7S8TJ8+Hfb29ppbkSJFsuT1kX4liyBJLZl6rFoy97hMe/1amaj+yhWgYEFg5UrgyBGABZqIiIiIcgwmhpnk4eEBW1tbzbKLiwuePFG6/l2/fh2JiYmoVauWZrupqSmqVauGixcvZuh53N3dkT9//nduHzNmDCIiIjS3u3fvZvCVkCEyMzGGu5NVph5rY54Ns9C8fg2o1cr/LSyAOXOAIUOAy5eBbt04UT0RERFRDsPEMJNMTbXni1OpVFCnnCing5GREeSNlp3ExMQ097O2tn7vfszNzWFnZ6d1o9yhTeXCGX5MWRdbeDi//2/mg+3cCZQvD6xa9e+6Tz4BfvgBsLfX7XMTERERkU4wMdSBEiVKwMzMDEePHtWsS0xMREhICLy8vAAA+fPnR1RUFGJi/i0U8rYxhJR3lSlkh4J25hl6zJf1S8LR2kw3Ad24AbRqBQQEANevAz/+CGR3t1UiIiIi0ok8nxhGR0cjLCxMk5TdvHkTYWFhuHPnTqb3aW1tjS+++AIjR47E7t27ER4ejr59+yI2Nha9e/cGAFSvXh1WVlb45ptvcP36daxduxZBQUGZfs7AwEB4eXnB19c30/sgw1LI3gIz21VId6/MGsWdUNXdMesDiY0FJkwAvLyA338HTEyAkSOBw4fZZZSIiIgol8jziWFoaCgqVaqESpUqAQCGDRuGSpUqYfz48R+03xkzZqBdu3bo2rUrKleujGvXrmHPnj1wdFRO3J2cnPDLL79g165d8Pb2xrp16zBx4sRMP9+AAQMQHh6uNSUG5Xw1S+TDwi5VYGr8/gSsZglnfNeuAlwcLLM2gAMHlIRw8mQgPh5o1Ag4fx6YORNINcaWiIiIiHI2lbw50I1ytMjISNjb2yMiIoLjDXMJtVoQ/jAS+y89xtLDNxEVn6TZ5uvhhM/rFoe3mz0K2ulgnsvjx5WpJ4oUUcYQtm3LVkIiIiKiHCIjuQETw1wiMDAQgYGBSE5OxpUrV5gY5lJ3nsfieUw8ktUCKzNjFHGygq2F6X8/ML1iYoATJ4CGDf9dt2kT0LQp8B+FkIiIiIjIsDAxzMPYYkiZIgJs3AgMGwY8fQqEhwPFi+s7KiIiIiL6ABnJDfL8GEOiPO/iRaBxY2XKiXv3ABcX4NEjfUdFRERERNmIiSFRXhUVpVQXrVAB2LcPMDdXqo+GhyvjComIiIgozzDRdwBEpAeJiUClSsp8hIAyP+EPP7D7KBEREVEexRbDXILzGFKGmJoCXbsCJUoAO3cC27YxKSQiIiLKw1h8Jpdh8Rl6q4gIYOJEoH17oFYtZd3r18q/FjqY5oKIiIiI9C4juQG7khLlZmo1sHo18PXXwJMnwMGDwKlTgJERE0IiIiIi0mBiSJRbhYUBAwYAx44py6VLA999pySFRERERESp8AyRKLd58UJJCKtUUZJCa2slITx3DvjoI31HR0REREQGiIlhLsHiM6Sxaxfw009KN9JOnYBLl5SupGZm+o6MiIiIiAwUi8/8v6CgIAwZMgSvXr3SdygfhMVn8qioKMDWVvm/Wg306aNUHW3QQL9xEREREZHeZCQ30GuL4cKFC1GhQgXY2dnBzs4Ofn5++OOPP7Tu8/r1awwYMADOzs6wsbFBu3bt8Pjx4yyPpWPHjrhy5UqW71elUmHr1q1Zvl9D9ijiNY5cfYqDl5/gzotYfYeTuz17BvTrB3h5KckhoIwh/PlnJoVERERElG56TQzd3NwwY8YMnDp1CqGhofD390fr1q3xzz//aO4zdOhQ/P777/jtt99w6NAhPHjwAG3bts3yWCwtLVGgQIEs329ec/1JNLosO4HPlp9EjxUh+DjwKM7fj9B3WLlPcjKwcCFQqhSwdClw7x6wY4e+oyIiIiKiHEqviWHLli3RvHlzeHp6olSpUpg2bRpsbGxw4sQJAEBERASWL1+OOXPmwN/fH1WqVMGKFStw7NgxzX3exsPDA1OnTkW3bt1gY2MDd3d3bN++HU+fPkXr1q1hY2ODChUqIDQ0VPOYoKAgODg4aJYnTpyIihUrYvXq1fDw8IC9vT06deqEqJRWmf9/nrlz52o9d8WKFTFx4kTNdgBo06YNVCqVZhkAtm3bhsqVK8PCwgLFixfHpEmTkJSUBAAQEUycOBFFixaFubk5XF1dMXjw4Ey8w9lLrRZsOHUX15/GaNa9iEnA9F0XEROfpMfIcpnjxwFfX+DLL4GXL4EKFYC//wY6d9Z3ZERERESUQxlM8Znk5GSsX78eMTEx8PPzAwCcOnUKiYmJaNSokeZ+ZcqUQdGiRXH8+PH37u+HH35ArVq1cObMGbRo0QJdu3ZFt27d8Nlnn+H06dMoUaIEunXrhvcNsbx+/Tq2bt2KHTt2YMeOHTh06BBmzJiR7tcUEhICAFixYgUePnyoWf7777/RrVs3fPXVVwgPD8fixYsRFBSEadOmAQA2bdqEH374AYsXL8bVq1exdetWeHt7v/U54uPjERkZqXXTl5iEJOy/+CTN+uCbL/AqNkEPEeUyyclAr15AzZrAmTOAvT0wf74yL2Ht2vqOjoiIiIhyML0nhufPn4eNjQ3Mzc3Rv39/bNmyBV5eXgCAR48ewczMTKslDwAKFiyIR48evXe/zZs3x+effw5PT0+MHz8ekZGR8PX1RYcOHVCqVCmMGjUKFy9efO94RbVajaCgIJQvXx516tRB165dsW/fvnS/tvz58wMAHBwcUKhQIc3ypEmTMHr0aHTv3h3FixdH48aNMWXKFCxevBgAcOfOHRQqVAiNGjVC0aJFUa1aNfTt2/etzzF9+nTY29trbkWKFEl3fFnNyswE1Yo5pVlfvrAdbC1M9RBRLmNsDLx+rfy/Z0/gyhVg4EDAhNOREhEREdGH0XtiWLp0aYSFhSE4OBhffPEFunfvjvDw8A/eb4UKFTT/L1iwIABotbqlrHvyJG0LVwoPDw/YplR6BODi4vLe+6fX2bNnMXnyZNjY2Ghuffv2xcOHDxEbG4sOHTogLi4OxYsXR9++fbFlyxZNN9M3jRkzBhEREZrb3bt3Pzi+zDI2UqFrDXc4W/87LYKFqRHGtfCCnSUTw0w5fBhI/ZnOnq3MTfjzzwDHxBIRERFRFtF7U4OZmRlKliwJAKhSpQpCQkLw448/YvHixShUqBASEhLw6tUrrVbDx48fo1ChQu/dr6npv4mISqV65zq1Wp2ufaQ8JvX9jYyM0nRFTUxMfG9cABAdHY1Jkya9tYiOhYUFihQpgsuXL+Ovv/7C3r178eWXX2LWrFk4dOhQmpjMzc1hbm7+n8+ZXcq42GHzlzVx6WEUktRqeBa0RamCtv/9QNL24IEy9+CaNUCHDsCGDcp6V1flRkRERESUhfSeGL5JrVYjPj4egJIompqaYt++fWjXrh0A4PLly7hz545mHKI+5c+fHw8fPtQsR0ZG4ubNm1r3MTU1RXJysta6ypUr4/Lly5qE+G0sLS3RsmVLtGzZEgMGDECZMmVw/vx5VK5cOWtfhA64O1vD3dla32HkTImJwLx5wMSJQHQ0oFIBjo5AUhK7jBIRERGRzuj1THPMmDFo1qwZihYtiqioKKxduxYHDx7Enj17AAD29vbo3bs3hg0bBicnJ9jZ2WHQoEHw8/NDjRo19Bk6AMDf3x9BQUFo2bIlHBwcMH78eBgbG2vdx8PDA/v27UOtWrVgbm4OR0dHjB8/HgEBAShatCjat28PIyMjnD17FhcuXMDUqVMRFBSE5ORkVK9eHVZWVvjll19gaWkJd3d3Pb1SyhYHDihjBlO6UlerBgQGAlWr6jcuIiIiIsr19DrG8MmTJ+jWrRtKly6Nhg0bIiQkBHv27EHjxo019/nhhx8QEBCAdu3aoW7duihUqBA2b96sx6j/NWbMGNSrVw8BAQFo0aIFPv74Y5QoUULrPt9//z327t2LIkWKoFKlSgCAJk2aYMeOHfjzzz/h6+uLGjVq4IcfftAkfg4ODli6dClq1aqFChUq4K+//sLvv/8OZ2fnbH+NlE3WrQP8/ZWkMF8+YNkyZVoKJoVERERElA1U8r75GijHiYyMhL29PSIiImBnZ6fvcCi9YmKA8uWBgABg8mSl+ygRERER0QfISG6g96qklDUCAwPh5eUFX19ffYdC6fHnn0CXLkBKMSNra+Cff5R5CZkUEhEREVE2Y4thLsMWQwN3+zYwbBiQ0h16xQqgRw+9hkREREREuVNGcgOWOSTKDq9fA7NmAdOnA3FxymT1gwYBbdroOzIiIiIiIiaGRDq3cyfw1VfA9evKcr16wIIFyphCIiIiIiIDwDGGRLqkVgOTJilJoaurUn30wAEmhURERERkUNhiSJTVYmOViektLQEjI6V1cONGYNw4wNZW39EREREREaXBFkOirCICbN0KeHkB06b9u75aNWDmTCaFRERERGSwmBgSZYUrV4DmzZViMrdvAxs2AAkJ+o6KiIiIiChdmBgSfYiYGGDMGGXM4O7dgJkZ8O23wJkzyv+JiIiIiHIAjjHMJQIDAxEYGIjk5GR9h5J3HD0KdOoE3LunLDdrBvz4I+Dpqd+4iIiIiIgyiBPc5zKc4D4b3b4NlC0LFCwIzJ0LtGqlFJ0hIiIiIjIAGckN2JWUKL2iopTpJlK4uyvdR8PDgdatmRQSERERUY7FxJDov4gAa9cCpUsDn34KHD7877a6dZVpKYiIiIiIcjCOMSR6n/PngYED/00GS5RQEkUiIiIiolyELYZEb/PqFTBkCFCpkpIUWloCU6cCFy4A9erpOzoiIiIioizFFkOiN4kADRoAYWHKcrt2wJw5QNGieg2LiIiIiEhX2GJI9CaVChgxQhlT+OefwMaNTAqJiIiIKFdjYkj04gUwYACwZs2/6z79FDh3DmjcWH9xERERERFlEyaGlHep1cCyZUrL4E8/Ka2EcXHKNpUKMDPTb3xERERERNmEiSHlTSEhQI0aQN++wLNngJeXMiUFp54gIiIiojyIiSHlLc+eKclg9epKcmhrqxSWCQtTCs4QEREREeVBrEpKecvly0r3UQDo2hWYORMoVEi/MRERERER6RkTw1wiMDAQgYGBSE5O1ncohufRo3+Tv1q1gEmTAH9/oHZt/cZFRERERGQgVCIi+g6Csk5kZCTs7e0REREBOzs7fYejX48fA6NGAb/9BvzzD+Dhoe+IiIiIiIiyTUZyA44xpNwnKQmYN0+pNrpyJRAbC/zxh76jIiIiIiIyWOxKSrnL4cPAwIHA+fPKcpUqQGCgUmyGiIiIiIjeii2GlDuIAH36APXqKUmhkxOwaBEQHMykkIiIiIjoP7DFkHIHlQpwdVX+7dcPmDYNcHbWd1RERERERDkCE0PKufbvBxwcgMqVleXRo4HWrZXuo0RERERElG7sSko5z717QMeOQMOGSutgyhQdVlZMComIiIiIMoGJIeUc8fHAjBlKtdENGwAjI8DPT1lPRERERESZxq6klDPs2QMMHgxcuaIs16oFLFgAVKyo17CIiIiIiHIDJoZk+PbuBZo2Vf5fsCAwaxbw2WdKoRkiIiIiIvpgTAzJ8DVsCNSuDfj6AhMnAnZ2+o6IiIiIiChX4RhDMjw7dgD16wPR0cqykRFw4AAwZw6TQiIiIiIiHWBiSIbj+nWgZUvlduiQkgimMGHjNhERERGRrvBsm/QvNlapNjpzplJh1MQEGDZMuRERERERkc4xMST92roVGDIEuH1bWW7UCJg/HyhTRp9RERERERHlKexKSvq1bp2SFBYpAmzcCPz5J5NCIiIiIqJsxhZDyl4xMUBcHJAvn7I8ezZQqhQwejRgba3f2IiIiIiI8ii2GP6/gwcPQqVS4dWrV/oOJXcSAX77TWkNHDTo3/VFigBTpjApJCIiIiLSI70mhocPH0bLli3h6uoKlUqFrVu3prmPiGD8+PFwcXGBpaUlGjVqhKtXr2Z5LDVr1sTDhw9hb2+fpfv18PDA3Llzs3SfOc7Fi0DjxsAnnwD37gHBwQATcCIiIiIig6HXxDAmJgY+Pj4IDAx8531mzpyJefPmYdGiRQgODoa1tTWaNGmC169fZ2ksZmZmKFSoEFQqVZbuN0+LigJGjgQqVAD27QPMzYEJE4B//gEcHPQdHRERERER/T+9JobNmjXD1KlT0aZNm7duFxHMnTsXY8eORevWrVGhQgWsWrUKDx48eGvrYor69etj0KBBGDJkCBwdHVGwYEEsXboUMTEx6NmzJ2xtbVGyZEn88ccfmse82ZU0KCgIDg4O2LNnD8qWLQsbGxs0bdoUDx8+1HqeIUOGaD33xx9/jB49emi23759G0OHDoVKpdJKOo8cOYI6derA0tISRYoUweDBgxETE6PZ/tNPP8HT0xMWFhYoWLAg2rdvn8531UCcPg2ULq2MIUxKAlq1AsLDgYkTAUtLfUdHRERERESpGPQYw5s3b+LRo0do1KiRZp29vT2qV6+O48ePv/exK1euRL58+XDy5EkMGjQIX3zxBTp06ICaNWvi9OnT+Oijj9C1a1fExsa+cx+xsbGYPXs2Vq9ejcOHD+POnTsYMWJEuuPfvHkz3NzcMHnyZDx8+FCTVF6/fh1NmzZFu3btcO7cOfz66684cuQIBg4cCAAIDQ3F4MGDMXnyZFy+fBm7d+9G3bp13/oc8fHxiIyM1LoZhFKlAJUKKFkS2LkT2LYNKF5c31EREREREdFbGHRi+OjRIwBAwYIFtdYXLFhQs+1dfHx8MHbsWHh6emLMmDGwsLBAvnz50LdvX3h6emL8+PF4/vw5zp079859JCYmYtGiRahatSoqV66MgQMHYt++femO38nJCcbGxrC1tUWhQoVQqFAhAMD06dPRpUsXDBkyBJ6enqhZsybmzZuHVatW4fXr17hz5w6sra0REBAAd3d3VKpUCYMHD37rc0yfPh329vaaW5EiRdIdn07Z2ChTT1y4ADRvru9oiIiIiIjoPQw6MfwQFSpU0Pzf2NgYzs7O8Pb21qxLSTafPHnyzn1YWVmhRIkSmmUXF5f33j+9zp49i6CgINjY2GhuTZo0gVqtxs2bN9G4cWO4u7ujePHi6Nq1K9asWfPOls0xY8YgIiJCc7t79+4Hx5dlypVTxhUSEREREZFBM+jEMKWF7fHjx1rrHz9+rNn2LqamplrLKpVKa13KeD+1Wp2hfYiIZtnIyEhrGVBaGf9LdHQ0Pv/8c4SFhWluZ8+exdWrV1GiRAnY2tri9OnTWLduHVxcXDB+/Hj4+Pi8dSoNc3Nz2NnZad2IiIiIiIgywqATw2LFiqFQoUJa3TcjIyMRHBwMPz8/PUamyJ8/v1YxmuTkZFy4cEHrPmZmZkhOTtZaV7lyZYSHh6NkyZJpbmZmZgAAExMTNGrUCDNnzsS5c+dw69Yt7N+//52xBAYGwsvLC76+vln4ComIiIiIKC/Qa2IYHR2taTEDlGIzYWFhuHPnDgClhW7IkCGYOnUqtm/fjvPnz6Nbt25wdXXFxx9/rL/A/5+/vz927tyJnTt34tKlS/jiiy/StOp5eHjg8OHDuH//Pp49ewYAGDVqFI4dO4aBAwciLCwMV69exbZt2zTFZ3bs2IF58+YhLCwMt2/fxqpVq6BWq1G6dOl3xjJgwACEh4cjJCREZ6+XiIiIiIhyJxN9PnloaCgaNGigWR42bBgAoHv37ggKCgIAfP3114iJiUG/fv3w6tUr1K5dG7t374aFhYU+QtbSq1cvnD17Ft26dYOJiQmGDh2q9XoAYPLkyfj8889RokQJxMfHQ0RQoUIFHDp0CN9++y3q1KkDEUGJEiXQsWNHAICDgwM2b96MiRMn4vXr1/D09MS6detQrlw5fbxMIiIiIiLK5VTy5iA5ytEiIyNhb2+PiIgIjjckIiIiIsrDMpIbGPQYQ0o/jjEkIiIiIqLMYothLsMWQyIiIiIiAthiSERERERERBnAxJCIiIiIiCiPY2KYS3CMIRERERERZRbHGOYyHGNIREREREQAxxgSERERERFRBjAxJCIiIiIiyuOYGBIREREREeVxTAxzCRafISIiIiKizGLxmVyGxWeIiIiIiAhg8RkiIiIiIiLKABN9B0BZK6UBODIyUs+REBERERGRPqXkBOnpJMrEMJeJiooCABQpUkTPkRARERERkSG4desWfHx83nsfJoa5jKurK+7evQtbW1uoVCqtbb6+vggJCXnv4993n3dte9v6yMhIFClSBHfv3jW4sY7peR+ye78ZeWxG3tv/2m9mt+ekz9wQP+/MvFfpfb7Mfqb/FZOu3sf/osv3KqM+dL8ZfXxWfeZVqlTBtWvX3voeZuaYn12y8liXWdl1XAfe/zlldL957bc8q+LM6u94Vh1Xs/q3PCWukiVL4tSpU//5/IYgs5+Nrn/b9HVcz8h3/NKlS6hevTpMTP477WNimMsYGRnBzc3trduMjY3/84D5vvu8a9v7HmNnZ2dwPybpeR+ye7+ZeWx63tv/2m9mt+ekz9wQP+8UGXmv0vt8H/qZvysmXb2P6aWL9yqjPnS/GX18Vn7mwNvfw8wc87NbVhzrMis7j+vv+5wyut+8+lv+oXHq6jv+ocdVffyWG5oPjVVXv236PK6n9ztua2sLQMkR/guLz+QhAwYM+KD7vGtbevZrSHQV74fsV18xZXZ7TvrMDfHz1uXzfehnntWP0wdD/cwz+vis+sz79u2bqcfyM8/e4/r7PqeM7pe/5frZp76+45ndnt6/OUNgiN/xzDw+Oz7zD3lNnK6CdILTZuiOob63hhqXITLE98oQYwIMN66cJKe+hzk17swyxNdriDG9jaHGybj0Ly+91ne5ePEivLy8EB4ejrJly773vmwxJJ0wNzfHhAkTYG5uru9Qch1DfW8NNS5DZIjvlSHGBBhuXDlJTn0Pc2rcmWWIr9cQY3obQ42TcelfXnqt75IvXz64u7sjX758/3lfthgSERERERHlcWwxJCIiIiIiyuOYGBIREREREeVxTAyJiIiIiIjyOCaGREREREREeRwTQyJKF9apIjIs/E4SUQq1Wq35f2Jioh4joZyMiSERvVfKyeerV6/0G0gOw5N20iW1Wg2VSgVAmacrJ0n5bsTFxek5Ev0wxGODIcZEGWNkpJzSz5w5E9u2bcvVySGTYEVycnKW75OJIaVbyg9HcHAwDh48qN9gcpmU9/bs2bMIDQ3VczTaVCoV1qxZgyJFiuDx48f6DsdgpXyG9+/fBwDNSbs+pcR069Yt/QbyhpS4Tp48iWPHjuk5mpxHrVZrTgK/++479OrVS/N3lxOoVCrs3bsX3bt3R3x8vL7D0amUv/UzZ85g7969APR/bEiJ6cSJE/j1118B6D+mt0mJMyQkBKdPn9bJSXBmpMR1/Phx7N69GxEREXqNJ3WStHr1akydOhUlS5aEiYmJHqPSndTHv8DAQKxatSpPnpskJCTA2NgYgPJbmlWYGFK6iAhUKhU2b96Mtm3b4tdff8WDBw/0HVau8OZ7u3HjRjx69EjfYWl+/J4/f47du3dj2rRpKFiwoJ6jMkwpn+GOHTvQunVrrFu3Tt8haWLavn07mjRpghUrVmidQOg7rpS/919++cUg/t5zkpSToq+//hrz5s1D8+bN8fr1a812Q2v9WbJkCS5evAjg39j27NmDfPny5epJp1P/rbdq1QrHjh3DjRs3tLbrK6ZNmzahTZs2CAkJweXLl/Ua09ukxLllyxa0aNECW7ZswfPnz/UdltZnGhAQgBMnTug9MUw5HuzcuRMvX77ErFmzULFiRb3GpEspr3fUqFGYMmWKVqKYVyQkJMDMzAwAULx4cdSrVw9Lly7NmosnQpROe/bsEUtLS1m+fLnExsbqO5xcZdeuXWJhYSGLFi2SyMhIfYejcfLkSfH395cGDRrIjRs3JDk5Wd8hGazNmzeLlZWV/PDDDxIWFqbvcEREZOvWrWJlZSU//vijhIeH6zscjd27d2uOJdHR0foOJ0faunWrFC5cWIKDgzXrYmNj5fr16wb1PY2LixNPT0/x9PSUK1euaNb36dNHBg4cqMfIsseePXvE2tpaFi5cKPHx8Wm2q9XqbI9p3759Ym1tLUuWLMn2586I3bt3i7W1tSxfvlxevnyp73A09u3bJ7a2tvLzzz9LXFycZr0+v3cPHjwQY2NjUalUMn78eL3FkV1++uknKVCggJw9e1azLiEhwaDOn7KDi4uLAJC6devK7t27s2SfeSvFpkxLTEzEli1bMGDAAPTq1QuJiYk4deoUhg8fjsmTJ+Pq1av6DjHHio2Nxc8//4yvv/4an3/+OQDg4sWLmDp1KhYuXIiYmJhsi0X+/2pxcnIyRARhYWF49uwZwsLCYGdnByMjIyQlJWVbPDnFvXv3MGHCBHz33XcYMmQIypcvj8TERPz111949epVtrfUiQiePXuG//3vf5gwYQIGDx6MkiVLIioqChs3bsTVq1e1Wpiy2/r16zFo0CD06tULycnJOHPmDL7++mvMmDFDq0WF/vXm39Ddu3fh4eGBatWq4dy5c5gxYwYqVqyI8uXLY/To0QbROgwAFhYWOH78OPLly4fWrVvjypUrAICkpCRNNyhD6SKYldRqNeLj47Fy5Ur07dsX/fv3x+vXr3HmzBmMGzcOY8aMQWJiIlQqVba10okIkpOTsXXrVnTp0gV9+/bFq1evcOTIEQwcOBC9evXCtWvXNPfVJ7Vajc2bN6N79+7o1asXzMzMcO7cOYwcORLz58/X65CLPXv2oGXLlujZsyfUajVOnDiBzz//HN988w12796tl5hcXFxw8uRJFCtWDAcOHMh1vTDePEbcvn0bH3/8MSpUqIDr168jKCgIvr6+6Nq1K3766Sc9RZm9evXqhYcPH2Ls2LE4dOgQmjRpgrCwMMyZM+eDhnvlzg7IlOVMTU3x8uVLhISE4M6dOxg3bhzu3buHuLg4XLlyBRcuXMCGDRv0HWaOZGVlhbi4OJw/fx6PHz/GhAkTcPnyZTx79gw3btzAxYsXMW/evGyJJWWcybNnz1CwYEF89tlnMDc3x/jx49G5c2ds2bIF1tbWSE5O1pzU5VXy/12KYmJiYGNjgxcvXqB+/fpISEjAnDlzsGPHDgQHB6NUqVLYuHEjypYtm20xRUREwNnZGY8fP4aPjw+ioqLw/fffY//+/Thx4gRKliyJWbNmoUWLFjqPKXVcR48eRfXq1ZGQkICjR4/i/v37GDt2LG7fvo3o6GhcuXIF//zzD1avXp0tceUkKV2ldu3ahSZNmsDLywvBwcFo06YNwsLCULt2bQwfPhyWlpbo3r07unXrhvLly+s5aoWzszN+//13NG/eHAEBAdi/fz/UajUKFCgAAIiPj4e5uTmMjY3x6NEjFCxY0CDHvKVHyt+6Wq2Gubk5rKyscP78eZw+fRqBgYG4c+cOnj17hhcvXuDUqVP4888/df5aU2J6/fo1LC0tYWFhgT/++ANHjx7F/Pnz8fLlSyQmJuL58+fo0KEDzpw5o/f3X61W486dOzA1NcU///yDOXPm4Pbt27h//z5MTU1x5swZLFiwAJaWltkaq1qtxosXL3D37l3s3bsXK1aswIsXL/D8+XM4OzsjNDQUlStXRv78+XUW17u6TlauXBnr169Hs2bNMHDgQCxfvhz29vY6iSG7pZxv/Pjjj6hRowYeP36M48ePY+rUqdi5cycKFCiA2rVr49WrV1i/fj06duwIZ2dnPUedtVJ3HwWAhw8fwsjICFOmTMH06dOxePFi3L59GwBgbW2NlStXol27dhl/oixpd6Rc523dW44dOyblypUTMzMz6dChg2zatElERH777TepWLGiQXX1MGRve2+DgoKkfPnyYmxsLO3atZN169aJiMjs2bOldu3a2dp19+LFi6JSqWTt2rUionQF+/nnn8XX11fatWsnMTExIiKSlJSUbTEZqnXr1km5cuXkzp070rBhQ/Hw8JCiRYtK69atZfr06RIZGSmFChWScePGZVtMv/zyi1hbW8vLly+lQ4cO4uDgIAULFpSPP/5YfvzxR0lISBAfHx8ZMGBAtsUkIvLXX3+JSqWSbdu2yf79+8XLy0vMzc2lffv28ttvv4mIyOrVq6Vy5cry6tWrbI0tJ1Cr1XLt2jXNeyiiHHvbtWsnK1eulLt374qI0qWsRo0acuHCBX2G+1bPnz+XSpUqSbly5cTHx0esrKykevXq4ubmJmXKlJHKlSuLr69vjuxenLob4e7du2XAgAGSlJQky5YtE39/fzExMZFPPvlENm3aJAkJCbJ8+XKpXbu25niqa3/++ae0a9dOXr9+Lfv27ZOWLVuKhYWFfPrpp7Jz504RUbpIVq5cWZ48eZItManVaq3bmw4dOiSOjo7i7OwsHTp0kA0bNoiIyA8//CDVq1eX169fZ0t8bzp79qyUKFFCChcuLJ9++qls375dRETWrl0rVapUkYiICJ3FlPrvbNWqVTJ58mQZPHiw5vsvIhIcHCxOTk7Svn37HH8sTf16lyxZIiqVSm7evCnR0dHSunVr8fPzk++//17TpXTTpk1So0aNXH0+6ujoKCVKlJDRo0cLADEzMxMAYmtrK/Xq1ZNGjRoJABk7dmym9s8WQ0pD/v/q4t9//41du3YhLi4OZcuWxeeff46TJ08iPDwcVatW1dz/77//hqura64uIpBVUt7bEydO4MiRI0hMTESFChXQvXt3NG7cGJcuXYK/v7/m/pcvX4abm1u2VhdzdnZGv3790KNHD5iamqJ9+/bo3LkzRASLFy9Gz549sWLFClhZWWVbTIbo3r17WLFiBQYMGAA3NzcEBgZi+/btMDc3R+fOneHo6AgTExPUqlUL+fPn12ksKX9XKYWCpkyZAgcHB/z888/47bffoFKp0K5dO1haWsLExAQVKlSAk5NTtg3av3nzJg4fPoy5c+eiVatWSE5OxrFjx3Dp0iVUr15dc7+TJ0/Czc1N66ooKVQqFUqUKIFevXph7dq1aNSoEdq3b4+2bdvCyMgIycnJiImJQZ8+fWBmZpYtLdTvk/I3GRkZqWk5cXJywv79+9G+fXvs378fM2fOhLe3NyIiImBsbAxTU1OULVsW1tbWeo09I1atWoWOHTvC3NwciYmJMDU1xcqVK+Hu7g5jY2P07t0bTZs2xcOHD7V+N0+dOqXpnp/VlixZgjp16qBs2bKaz2HPnj3Inz8/zM3N4e/vDz8/P9y+fRtlypTRPO7333+Hra0tLC0tszymt3n16hUcHR01LSGHDh3CoUOHYGNjg2bNmqFu3bo4c+YMnjx5Al9fX0331rt37yJ//vxISkrSyXnHgwcP4OrqiuTkZJiYmOCvv/7Crl27ICLo0qULqlatiuDgYDx//hylSpXSxHXu3DnY2NjotBtuyt/L6NGjsXr1alSrVg3Pnj2Dn58fFi5ciIYNG6JatWrYvXs3AgIC0KZNG/z+++856juVWsrr3bdvH1QqFVavXg0PDw8AwObNmxETEwNbW1sAypCn5cuXo3DhwrmmpRSAVg+tuXPn4uXLl/jkk08wffp0REREYMOGDfD19cXYsWNRq1YtXL9+HaVKlcLLly8z94RZkr5SrrNp0yZxcHCQTz/9VIYOHSoqlUq6du2qNXj+1KlTMnz4cHFwcNAaAEzvt2nTJnFycpLWrVvLJ598IlZWVjJixAit+1y6dElGjhwpDg4Ocu7cOZ3Gk/qKaMr/nzx5IkOGDBGVSqVpzYmLi5MVK1aIp6endOvWTacxGbrQ0FDp1q2btGjR4p1X1yMjI2X8+PGSL18+raIbupK6UNC7CpA8e/ZMxo0bJ46OjnLx4kWdxyQicv78ealfv76UKFFC09KVmJiodZ8zZ87IiBEjeCxJ5c3PL2V5xYoVUrRoUbl586aIKN/ZuLg4Wb16tdSpU0eqVKkiCQkJb91Hdkk5jmzfvl1atGghpUqVks6dO8v8+fNFRGk5rFmzpvj4+Mjt27f1EmNWePTokTg5OUm1atW0fhtbt24tkyZNeutjLl68KEOHDtXZsT0zxX5OnTolgwcPFgcHh2wrnLV+/XqxsbHRxLhx40axtraW6tWrS9myZcXV1VWOHz+u9ZjQ0FAZM2aM2NnZ6ew4sXXrVlGpVJrn3rZtm1hZWUnjxo2lUqVKYmJiIhs3btR6zIEDB2TUqFFiZ2eXLe/fwoULxc3NTc6cOSMiIvv37xeVSiWFChWSjRs3agriHDlyRJo1a2ZQxagyI6UXk0qlkp9++klEtHssRUZGyqJFi6R58+bi7e2t9+OfrpQvX16cnZ2lYMGCIiKaY07Kv69evZLLly+LqampGBkZvbXYVXowMaQ0bt26JSVLlpR58+aJiMj9+/fF0dFR60clLCxMBgwYIBUrVuSJXAZcvnxZ3NzcZMGCBSKiHPCsra3liy++0Nzn8OHD0rdvX/Hy8sq2H+l9+/bJ4cOHReTtyeGWLVtERKl6uHr1arlx40a2xGVokpKSJCkpSUaPHi3u7u5SpEgRzY9Q6mRnz5490rFjR3Fzc5PTp0/rJJaUzykpKUnUarUsWbJEKlSoII6OjvLs2TMREU1sIsrJw8cffyzFihXTWUxvxiaiJIYdO3YUGxsbGT16tGZ9yo/2qVOnZODAgeLj42Mw1VwNyZEjR+T69eta62rWrCkdO3bULD958kR++eUX+eabbzR/h28m39nt999/FwsLC5k1a5Zs375dBgwYICqVSo4cOSIiykWKGjVqSP78+eXatWt6jfVDhIaGSpkyZaRmzZqaE7GAgAD57rvvRET5DqZ8H/7++2/p06ePVKpUSad/68+ePRM/Pz8pW7asXL58WUREevToIV999ZWIaJ9Uh4WFyfDhw6V69erZ+lseHBwsjRs3lhIlSsjFixdl4sSJ8vPPP4uIcszo3LmzWFhYyMmTJ0VEJDw8XD755BOdHycePXokn3zyiTg4OEhwcLDMnj1bU731xYsXMnz4cDE1NdVcMH348KG0a9dOqlatmi3vX1RUlEybNk2WL18uIiJbtmwROzs7WblypXTs2FFcXFxk8+bNaboo5+QkKT4+XjZt2iSurq7yySefaNanfK+ioqKkf//+0qVLF4M5/mW1M2fOiJWVlQAQS0tLEVHel5Tv8vPnzzXDkYyMjDRdiDOTHDIxJM2XK+XAERYWJlWqVBERkdu3b0vhwoXl888/19w/NDRURJSD98OHD7M52pwp5b3dv3+/1KhRQ0SUBNzNzU0rKfznn38kKSlJDh06JPfu3cuW2GJiYqRz585iamqqOWlLcf/+fWncuLGYmJhofgjzspSEKyoqSqZOnSqFChWSvn37asaApnzOx48flzlz5mRLS+GjR49EREnaV65cKe7u7tK4cWPNOK2UH47r16/Lzz//nG0n4SdOnNDEduXKFenRo4eUK1dOFi5cqHW/6OhoOXPmDI8lb7F//37x9PQUV1dXmTdvnoSEhIiIMra1Tp06Wn9fqU8A9D3+Nzo6Wtq1a6dJjp4+fSqFCxdO02L17Nkz8ff3z9GJoYhyccPT01OqVasmIiJt2rTR/J2nPiF/9eqVBAcHZ8vf+rNnz6RatWri6ekpd+/elW7dusm0adNERDnmp/yNPHz4UM6fPy9Pnz7VeUxvCg0NlSZNmkjhwoWlVq1aWi2Et2/f1iSHKX/3586dk/v37+s8rsePH0unTp3EyspKqlatqhmDKaJ8z0aMGKGVHN67d09zrMtqbxvjePz4cbl//75cvnxZypYtKz/++KOIKBeRVCqVGBkZycGDB3USj669K4GNjY2V3377TaysrOTLL7/UrE/5O379+rXWxdKc7m2vYf78+eLo6CgA5LPPPtO6X1RUlPTt21eKFi0qUVFRmnWZwcQwj0r58qVuUUj5Ybh48aKUK1dOtm/fLh4eHtKvXz/N1Zdz585Jq1at5J9//sn+oHOIlPc29QHuxYsXIqJcMa5Zs6YcOXJEihYtKv369dN8sUNCQqRHjx566Vp1/vx56datmzg7O8vff/+ttW3o0KHi6OgoTk5OEhERoZd5twzBuXPnxM3NTXbs2CEiysnv+PHjpXr16jJ8+PA0hRCy48cpvYWCUj6z7Prsnj17JjVr1pTy5ctrTpguXrwoPXr0ED8/P1m0aFG2xJHTvO3zOXXqlMybN09KlSolvr6+0r9/fzl8+LDY29vL3Llz9RDlf4uLi5MKFSrIrl275MGDB1K4cGHp27evZvuvv/6qmX8xJ7dkpP5enTp1Sjw8PKRGjRpSuXJlKVq0qNSrV08qVKggNWrUkFq1aknLli0z3b0rM/6r2E/FihXFz88vW4r9pHzOb/6NX716Vdq1aydGRkZy7NgxrfveuXNHPvvsM1GpVJoL0rqKK/XfYWxsrLx48UL69+8vKpVKUwwu9XnTqFGjRKVSyebNm3US15sxJSYmpilCt3XrVvH19dX0KDh48KB88803MnHixBzZYpb69W7cuFHmz58vM2bM0Py2JiUlyYYNG8TS0lKreFrq39rccH6S+hgRGxur9bkvWbJEbG1tBYD07NlTRN5+rvEhBQuZGOZh165dk+nTp0tycrL8+uuvYmpqKg8ePJDHjx9L8+bNxdbWVqvZXkTk66+/lrp168rjx4/1FHXOcPnyZVm5cqWIiGzYsEFKliwpz549k4sXL0rFihXF1tZW86VOMXToUGnSpIk8f/5cp7GlHDhjY2O1Knfdvn1bOnXqJPny5ZOjR49q1o8YMUJWrlyp87gMXVhYmLRv315KliypmUg2KipKxo4dK9WrV5evv/5aa7Lj7PDkyRP5/PPPxczMTGss6PLly6VatWryySefZFvVw9TUarVs375dGjRoINWrV9ckh//884/06NFD6tSpY7BJjb6kPimKiopKM3b1ypUrsmvXLilXrpy0atVKTExMpGTJkmm6mepL6hOy6Oho6dixo0yZMkWKFSsmffv21Wx//Pix9OzZU1auXJljk8KU1/L69WutE7AzZ85ItWrVRKVSyfz58+WXX36ROXPmyIIFC2TevHkSHh6u85giIiIkMjJSM9H3y5cvpWHDhqJSqWTWrFmye/du+fXXX2Xjxo2ybdu2bOnVkOLWrVuaccarV6+Wpk2biohyUbRhw4bi4uIiV69e1Xo9N2/elD59+uh0TPStW7c0Q2fWrVsntWrVkujoaHnw4IF07dpVbGxs5MSJE1pxxcfHy7hx43T2mab+bvzwww/SqlUr8fPzk4EDB2panJcuXSq2trYSHBwst27dkoCAABk0aJDmcTkpOUx9/Bg1apQULVpU6tSpIxUrVpRSpUrJ+fPnRUR5XzZs2CC2trbSpUsXfYWrM6mTwsqVK4uFhYVYWFhIyZIlNeuXLFkidnZ2AkD69OkjIll7IZqJYR42b948sbGxkU8++UQsLCxkxYoVmm1bt24VNzc36dq1q+zcuVOOHTsmX331ldjb23NMYTqMHz9eVCqVfPHFF2JsbCxBQUGabStWrBCVSiVjxoyREydOSHh4uAwbNkwcHR01Bz9dSTn4/v7779KoUSMpU6aMtGjRQtasWSOJiYly//59+fTTT8XU1FT69u0rHTp0yPFjgDLrXWXKu3btKu7u7lrJ4YQJE6R06dKZLg+dmZgMqVDQm93RU9bt2rVLateurZUchoeHS/v27eWjjz7K1SXFMyL1+zZjxgypW7eulClTRrp37y737t1L875u375dM9YpZdogfReaiYqK0kqSAgMDRaVSSYMGDbRa08eMGSOenp6a4jk5Tcrr3blzp3Tu3Fm8vLxkxIgRms/h1KlTUr58efH398/2mAy52I9arZb27dtLmTJlNF0xU/ccOH36tDRt2lTc3d3TJIe6THDUarUMHTpUypcv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iKxevVp27dqled/++usvTXL4559/SnJysowfP17Gjx+fLdUY30wO/f39pUCBAmmu3J8+fVpatGghFStWzNaqqIYgKSlJc9L6/PlzSUxM1FQg3blzp5iamsq0adO0HtO+fXvp2bOnzk52DbFQUOoKrSLKydKePXvk/PnzmpaRvn37io2NjezatUvzGkaPHi3ly5fPlnk5c6rQ0FApWbKk5uJcyueamJgoZcqUEQ8PDxkzZow+Q0zjypUrkj9/flGpVNKqVSuZMmWKHDhwQPr16yeff/55muNbTj6mpL6oUatWLRk7dqx4eHhI//79Nd+HR48eib+/f7Z1OTT0Yj8pn/f169fln3/+0ZpWZePGjeLv7y+tWrXSGv8uItnSJV9EaQk8fvy47N69W7Pt5MmT0q5dO6lQoYIcPnxY63H6uOAWExMj69atk1atWomHh4dUqVJFChcuLN9//72I5I5ulCnjkVOKtm3evFmKFCkiHTt2lMWLF8v69eulYcOG4u3trekhkZMvMr3N8OHDBYDmcy1QoIAAEEdHR819Ll++LGZmZmJiYqLT6qPvwsQwl9q0aZPY2tpK+fLlpXjx4lK2bFlNi9XJkyflk08+kUKFCkmJEiUkf/78OX4sSHb67bffxMHBQTw8PKRkyZLSvHlzefTokYgoFcSqVasmRYsWlbJly4qTk1O2vrepT8j++usvady4sdSoUSNNRciwsLA81aqzZcsWrQICW7duFT8/P6lcubKMGTNGM5/cnDlzxMTERDp27Cjffvut9OvXT6ytrXVSUdNQCwWtWLFCBg0apPlhXr9+vRQoUEAKFCgg5cqVk2HDhklsbKxERERI//79RaVSScWKFaVatWri5OSUpmWA0goICJASJUpofYZ3796V9u3by88//6z3k6GU48jr1681/1++fLn069dPxo0bJ8OGDZPSpUtLvXr1pGHDhrmmevWVK1ekUqVKmgRiwoQJkj9/fs142hRjxowRb2/vbOlhY+jFflJXKS5RooS4ublJoUKFpHnz5prfmN9++038/f2lbdu22Ta9Skpcv/32m7i6ukrx4sXFzs5Oqlevrpn/9cSJE9KuXTupUqWK1jQB2enNiygvXryQ8PBw6dy5sxQrVkzc3Nxy5IW21Mew1K8xpct8ig0bNkjHjh3F0dFRGjRoIJ06ddJcgMkNyfCbbty4IQDE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\n",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"DURATION_TO_HOUR_ESTIMATE = {\n",
" '10 minutes': 0.1,\n",
" '30 minutes': .5,\n",
" '1 hour': 1,\n",
" '4 hours': 4,\n",
" '8 hours': 8,\n",
" '16 hours': 16,\n",
" '3 days': 72,\n",
" '1 week': 168,\n",
" '3 weeks': 504,\n",
" '6 weeks': 1008,\n",
" '3 months': 3 * (365.25 / 12) * 24,\n",
" '6 months': 6 * (365.25 / 12) * 24,\n",
" '1 year': 1 * 365.25 * 24,\n",
" '3 years': 3 * 365.25 * 24,\n",
" '10 years': 10 * 365.25 * 24,\n",
" '30 years': 10 * 365.25 * 24,\n",
" '60 years': 10 * 365.25 * 24,\n",
"}\n",
"\n",
"# Calculate the count of occurrences for each (x, y) pair\n",
"point_counts = enriched_sample_df.groupby(['lb_estimate_in_hours', 'ub_estimate_in_hours']).size().reset_index(name='count')\n",
"\n",
"# Create the scatter plot with size based on count\n",
"plt.figure(figsize=(10, 6))\n",
"sns.scatterplot(data=point_counts, x='lb_estimate_in_hours', y='ub_estimate_in_hours', size='count', sizes=(20, 200)) # Adjust sizes as needed\n",
"\n",
"# Add the diagonal line\n",
"x = np.linspace(enriched_sample_df['lb_estimate_in_hours'].min(), enriched_sample_df['ub_estimate_in_hours'].max(), 100)\n",
"plt.plot(x, x, color='red', linestyle='--', label='x=y')\n",
"\n",
"# Set log-log scale\n",
"plt.xscale('log')\n",
"plt.yscale('log')\n",
"\n",
"# Customize the plot\n",
"plt.title('Lower Bound vs. Upper Bound Task Duration Estimates (Log-Log Scale)')\n",
"plt.xlabel('Lower Bound Estimate (hours)')\n",
"plt.ylabel('Upper Bound Estimate (hours)')\n",
"plt.legend()\n",
"\n",
"# Set custom x and y ticks and labels\n",
"x_ticks = list(DURATION_TO_HOUR_ESTIMATE.values())\n",
"x_labels = list(DURATION_TO_HOUR_ESTIMATE.keys())\n",
"plt.xticks(x_ticks, x_labels, rotation=45, ha='right') # Rotate x labels for readability\n",
"plt.yticks(x_ticks, x_labels) # Use the same labels for y-axis\n",
"\n",
"# Show the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lYWiBiaSVLYe"
},
"outputs": [],
"source": [
"enriched_sample_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 476
},
"collapsed": true,
"id": "9i3whbtOV3vz",
"jupyter": {
"outputs_hidden": true
},
"outputId": "00ba0ca0-2433-40c5-dd57-4f4da7b1f72a"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Placeholder #1\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Define the time range (0 to 3 years in hours)\n",
"time_range = np.linspace(0, 3 * 365.25 * 24, 10000) # 100 points for smoothness\n",
"\n",
"# Calculate the percentage of tasks for each time point\n",
"percentages = []\n",
"for time_point in time_range:\n",
" percentage = (enriched_sample_df['ub_estimate_in_hours'] <= time_point).mean() * 100\n",
" percentages.append(percentage)\n",
"\n",
"# Create the plot\n",
"plt.plot(time_range, percentages)\n",
"plt.xscale('log')\n",
"plt.xlabel('Time horizon needed')\n",
"plt.ylabel('% of tasks in the economy')\n",
"plt.title('PLACEHOLDER #1')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "3HFCARXtRIIh"
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 476
},
"id": "DQ806XcnjoRC",
"outputId": "01d9b861-744e-4b36-a453-25e51026383e"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Get unique upper bound estimates and sort them\n",
"time_range = sorted(enriched_sample_df['ub_estimate_in_hours'].unique())\n",
"\n",
"# Calculate the percentage of tasks for each time point\n",
"percentages = []\n",
"for time_point in time_range:\n",
" percentage = (enriched_sample_df['ub_estimate_in_hours'] <= time_point).mean() * 100\n",
" percentages.append(percentage)\n",
"\n",
"# Create the plot\n",
"plt.plot(time_range, percentages)\n",
"plt.xscale('log') # Keep the x-axis in log scale\n",
"plt.xlabel('Time horizon needed')\n",
"plt.ylabel('% of tasks in the economy')\n",
"plt.title('Distribution of Task Completion Times') # Update the title\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 476
},
"id": "XNp6VIDtkDuP",
"outputId": "869aa51d-fb4c-44ef-fcfa-0262a79b8d85"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHLCAYAAAAurFnfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVgVJREFUeJzt3Xl8DWf7P/DPyb4nhGxEErFvsRO0gkgQ+66qoUqfWoPy0FpD5aFqT4vShH6rVdqilkhI8FTVWhS1NpYiSYnIRnJycv/+8Mt5HNnOSc7JJJPP+/Xykrlnzsw115mcXGfmvmcUQggBIiIiIpkykjoAIiIiIkNisUNERESyxmKHiIiIZI3FDhEREckaix0iIiKSNRY7REREJGssdoiIiEjWWOwQERGRrLHYISIiIlljsVOJLFy4EAqFoky25efnBz8/P/X00aNHoVAosGvXrjLZ/ujRo+Hp6Vkm2yqp9PR0vPfee3BxcYFCoUBISIjUIWH06NGwsbGROgxJ3LlzBwqFApGRkXpd7+u/C+VNWX4u6Nvy5cvRoEED5ObmSrJ9T09PjB49WpJt68vs2bPRrl07qcMwOBY7FVRkZCQUCoX6n4WFBdzc3BAYGIi1a9ciLS1NL9t5+PAhFi5ciAsXLuhlffpUnmPTxtKlSxEZGYkPPvgAX3/9NUaNGpVvmbw/RMX9K09/TC9cuIC3334b7u7uMDc3R9WqVeHv74+IiAioVCqpwzOIq1evYuHChbhz547UoQB4+UdYm+NG34VdWUpNTcWyZcvw73//G0ZG//tTlp6ejgULFqBJkyawtraGo6MjmjdvjqlTp+Lhw4fq5Q4cOICFCxdKEHn5EhISgosXL2Lv3r1Sh2JQJlIHQKUTGhoKLy8vKJVKJCQk4OjRowgJCcHKlSuxd+9eNGvWTL3s3LlzMXv2bJ3W//DhQyxatAienp5o3ry51q+Ljo7WaTslUVRsX375pWTf9rQVGxuL9u3bY8GCBYUuM3DgQNSpU0c9nZ6ejg8++AADBgzAwIED1e3Ozs4GjVVbmzdvxr/+9S84Oztj1KhRqFu3LtLS0nDkyBGMHTsWjx49wkcffSR1mHp39epVLFq0CH5+fvnOKJbF78LrVq9ejfT0dPX0gQMH8O2332LVqlWoVq2aur1Dhw54++23df5cKA+++uor5OTkYMSIEeo2pVKJN998E9euXUNwcDAmT56M9PR0XLlyBdu3b8eAAQPg5uYG4GVOwsPDS1XwXL9+XaPQqohcXFzQr18/rFixAn379pU6HINhsVPB9ezZE61bt1ZPz5kzB7Gxsejduzf69u2LP//8E5aWlgAAExMTmJgY9i3PzMyElZUVzMzMDLqd4piamkq6fW0kJSWhUaNGRS7TrFkzjYL18ePH+OCDD9CsWTO8/fbbhg5RJ7/99hv+9a9/wdfXFwcOHICtra16XkhICM6ePYvLly9LGKE0pPhd6N+/v8Z0QkICvv32W/Tv37/Ay7uG/lwwhIiICPTt2xcWFhbqtt27d+P333/HN998g7feektj+RcvXiA7O1uvMZibmxe7TEZGBqytrfW6XX0bOnQohgwZgr/++gu1a9eWOhyDqNglKRWoa9eumDdvHu7evYv/+7//U7cXdG0+JiYGnTp1goODA2xsbFC/fn31N++jR4+iTZs2AIAxY8bkO/Xt5+eHJk2a4Ny5c3jzzTdhZWWlfm1h/RRUKhU++ugjuLi4wNraGn379sX9+/c1linsOvir6ywutoL67GRkZGDGjBnqyyv169fHihUrIITQWE6hUGDSpEnYvXs3mjRpAnNzczRu3BhRUVEFJ/w1SUlJGDt2LJydnWFhYQEfHx9s3bpVPT+v/1J8fDz279+vjr2kl0Du3r2LCRMmoH79+rC0tISjoyOGDBmSb31KpRKLFi1C3bp1YWFhAUdHR3Tq1AkxMTFFrv/ChQuoXr06/Pz8NM4WvG7RokVQKBT45ptvNAqdPK1bt9Z4X3V9P3bu3IlGjRrB0tISvr6++OOPPwAAGzduRJ06dWBhYQE/P798+/3qcdqhQwdYWlrCy8sLGzZsKHK/81y7dg2DBw9G1apVYWFhgdatW2uc8o+MjMSQIUMAAF26dFG/n0ePHlVv//XfheKOEeB/fYhWrFiBTZs2wdvbG+bm5mjTpg3OnDmjVezaKOhzobQ5B4BTp06hR48esLe3h5WVFTp37owTJ05oLJOWloaQkBB4enrC3NwcTk5O6N69O86fP19kzPHx8bh06RL8/f012m/fvg0A6NixY77XWFhYwM7ODsDLz4fw8HD1vub9y7NixQp06NABjo6OsLS0RKtWrQrsb/j6Z1Ve94Jjx45hwoQJcHJyQs2aNdXzDx48iM6dO8PW1hZ2dnZo06YNtm/frp7/3//+F0OGDEGtWrVgbm4Od3d3TJs2Dc+fP9fYbkJCAsaMGYOaNWvC3Nwcrq6u6NevX7734eDBg3jjjTdgbW0NW1tbBAUF4cqVK/n2Iy+Pe/bsyTdPLipeOU9aGTVqFD766CNER0dj3LhxBS5z5coV9O7dG82aNUNoaCjMzc1x69Yt9QdSw4YNERoaivnz52P8+PF44403ALw89Z3nyZMn6NmzJ4YPH46333672Mspn3zyCRQKBf79738jKSkJq1evhr+/Py5cuKA+A6UNbWJ7lRACffv2RVxcHMaOHYvmzZvj0KFDmDlzJh48eIBVq1ZpLP/LL7/gxx9/xIQJE2Bra4u1a9di0KBBuHfvHhwdHQuN6/nz5/Dz88OtW7cwadIkeHl5YefOnRg9ejRSUlIwdepUNGzYEF9//TWmTZuGmjVrYsaMGQCA6tWra73/rzpz5gx+/fVXDB8+HDVr1sSdO3fwxRdfwM/PD1evXoWVlRWAl3/UwsLC8N5776Ft27ZITU3F2bNncf78eXTv3r3QdQcGBqJ169bYs2dPoe9RZmYmjhw5gjfffBO1atUqNmZd34///ve/2Lt3LyZOnAgACAsLQ+/evTFr1ix8/vnnmDBhAp4+fYrly5fj3XffRWxsrMbrnz59il69emHo0KEYMWIEvv/+e3zwwQcwMzPDu+++W2icV65cQceOHVGjRg3Mnj0b1tbW+P7779G/f3/88MMPGDBgAN58801MmTIFa9euxUcffYSGDRsCgPr/12lzjLxq+/btSEtLw/vvvw+FQoHly5dj4MCB+Ouvvwx6BrM0OY+NjUXPnj3RqlUrLFiwAEZGRoiIiEDXrl3x3//+F23btgUA/Otf/8KuXbswadIkNGrUCE+ePMEvv/yCP//8Ey1btiw0tl9//RUA8i3j4eEBANi2bRvmzp1baMfr999/Hw8fPkRMTAy+/vrrfPPXrFmDvn37YuTIkcjOzsZ3332HIUOGYN++fQgKCio2dxMmTED16tUxf/58ZGRkAHhZCL377rto3Lgx5syZAwcHB/z++++IiopSn4XauXMnMjMz8cEHH8DR0RGnT5/GunXr8Pfff2Pnzp3q9Q8aNAhXrlzB5MmT4enpiaSkJMTExODevXvqL3lff/01goODERgYiGXLliEzMxNffPEFOnXqhN9//13jy6C9vT28vb1x4sQJTJs2rdj9q5AEVUgRERECgDhz5kyhy9jb24sWLVqopxcsWCBefctXrVolAIh//vmn0HWcOXNGABARERH55nXu3FkAEBs2bChwXufOndXTcXFxAoCoUaOGSE1NVbd///33AoBYs2aNus3Dw0MEBwcXu86iYgsODhYeHh7q6d27dwsAYsmSJRrLDR48WCgUCnHr1i11GwBhZmam0Xbx4kUBQKxbty7ftl61evVqAUD83//9n7otOztb+Pr6ChsbG4199/DwEEFBQUWu73X//POPACAWLFigbsvMzMy33MmTJwUAsW3bNnWbj49PsdsLDg4W1tbWQgghfvnlF2FnZyeCgoLEixcvinxdXn6mTp2q1X7o+n6Ym5uL+Ph4ddvGjRsFAOHi4qKR0zlz5ggAGsvmHaefffaZui0rK0s0b95cODk5iezsbCGEEPHx8fmOp27duommTZtq7H9ubq7o0KGDqFu3rrpt586dAoCIi4vLt6+vH7faHiN58Tg6Oork5GT1snv27BEAxM8//5xvW4X59NNP8+Ulz+ufC0KULue5ubmibt26IjAwUOTm5qqXy8zMFF5eXqJ79+7qNnt7ezFx4kSt9yPP3LlzBQCRlpam0Z6ZmSnq168vAAgPDw8xevRosWXLFpGYmJhvHRMnTsy336+u51XZ2dmiSZMmomvXrhrtr39W5X0ud+rUSeTk5KjbU1JShK2trWjXrp14/vy5xjpez9HrwsLChEKhEHfv3hVCCPH06VMBQHz66acFxi6EEGlpacLBwUGMGzdOoz0hIUHY29vnaxdCiICAANGwYcNC11nR8TKWjNnY2BQ5KsvBwQHAy1OXJe3Ma25ujjFjxmi9/DvvvKNxiWPw4MFwdXXFgQMHSrR9bR04cADGxsaYMmWKRvuMGTMghMDBgwc12v39/eHt7a2ebtasGezs7PDXX38Vux0XFxeNTpOmpqaYMmUK0tPTcezYMT3sjaZXz7YolUo8efIEderUgYODg8blAAcHB1y5cgU3b94sdp1xcXEIDAxEt27d8OOPPxbbNyE1NRUACrx8VRBd349u3bppfBPNGyo7aNAgjW3mtb/+PpmYmOD9999XT5uZmeH9999HUlISzp07V2CMycnJiI2NxdChQ5GWlobHjx/j8ePHePLkCQIDA3Hz5k08ePBAq/19fd91OUaGDRuGKlWqqKfzzmIWdyyWVklzfuHCBdy8eRNvvfUWnjx5os5bRkYGunXrhuPHj6s/bxwcHHDq1CmNUVLaePLkCUxMTPLdJsHS0hKnTp3CzJkzAbw8mzJ27Fi4urpi8uTJyMrK0mr9r/5OPX36FM+ePcMbb7xR7OW1POPGjYOxsbF6OiYmBmlpaZg9e7ZGHyMAGmefXt1uRkYGHj9+jA4dOkAIgd9//129jJmZGY4ePYqnT58WuP2YmBikpKRgxIgR6vw/fvwYxsbGaNeuHeLi4vK9pkqVKnj8+LFW+1cRsdiRsfT09CL/+AwbNgwdO3bEe++9B2dnZwwfPhzff/+9ToVPjRo1dOqAWbduXY1phUKBOnXqGHzI7t27d+Hm5pYvH3mXGu7evavRXtClmCpVqhT64fLqdurWrZtvhEZh29GH58+fY/78+eq+L9WqVUP16tWRkpKCZ8+eqZcLDQ1FSkoK6tWrh6ZNm2LmzJm4dOlSvvW9ePECQUFBaNGiBb7//nut3t+8vhDa3vKgtO+Hvb09AMDd3b3A9tffJzc3t3ydROvVqwcAhR57t27dghAC8+bNQ/Xq1TX+5Y2gS0pKKnI/C6LrMfL6vucVPsUdi6VV0pznFdPBwcH58rZ582ZkZWWpj8vly5fj8uXLcHd3R9u2bbFw4cJSF3H29vZYvnw57ty5gzt37mDLli2oX78+1q9fj8WLF2u1jn379qF9+/awsLBA1apVUb16dXzxxRcav09F8fLy0pjO60vUpEmTIl937949jB49GlWrVoWNjQ2qV6+Ozp07A4B62+bm5li2bBkOHjwIZ2dnvPnmm1i+fDkSEhLU68l7D7p27ZrvPYiOji7wuBVCVNj7LWmDfXZk6u+//8azZ880hi2/ztLSEsePH0dcXBz279+PqKgo7NixA127dkV0dLTGN5Oi1qFvhf3CqVQqrWLSh8K2I17rPFseTJ48GREREQgJCYGvry/s7e2hUCgwfPhwjcL1zTffxO3bt7Fnzx5ER0dj8+bNWLVqFTZs2ID33ntPvZy5uTl69eqFPXv2ICoqCr179y42hjp16sDExETdgVXfCns/DPk+5eXuww8/RGBgYIHLFPX7pS9SHYslzXle3j799NNCb1eRd0Zm6NCheOONN/DTTz8hOjoan376KZYtW4Yff/wRPXv2LDQ2R0dH5OTkIC0trcgvdB4eHnj33XcxYMAA1K5dG9988w2WLFlS6PLAy75Kffv2xZtvvonPP/8crq6uMDU1RUREhEZn4qKU5HNRpVKhe/fuSE5Oxr///W80aNAA1tbWePDgAUaPHq3xuxwSEoI+ffpg9+7dOHToEObNm4ewsDDExsaiRYsW6mW//vpruLi45NtWQaPvnj59qnFbArlhsSNTeZ3uCvuQzmNkZIRu3bqhW7duWLlyJZYuXYqPP/4YcXFx8Pf313ul//olFCEEbt26pTG8ukqVKkhJScn32rt372oMi9QlNg8PDxw+fDjfh+O1a9fU8/XBw8MDly5dQm5ursY3d31v51W7du1CcHAwPvvsM3XbixcvCsxh1apVMWbMGIwZMwbp6el48803sXDhQo1iJ29EVb9+/TBkyBAcPHiw2JsWWllZoWvXroiNjcX9+/fzfft/XVm9H3kePnyYbwjwjRs3AKDQO23nHWumpqb5Rv28TtdjsayPkbKUd/nXzs6u2LwBgKurKyZMmIAJEyYgKSkJLVu2xCeffFJksdOgQQMAL0dlvfrZUZgqVarA29tb49YHhb1nP/zwAywsLHDo0CGNy7cRERHFbqcweTm5fPlyoQXyH3/8gRs3bmDr1q1455131O2FjZb09vbGjBkzMGPGDNy8eRPNmzfHZ599hv/7v/9Tb8/JyUmr9wB4mUsfHx9ddqtC4WUsGYqNjcXixYvh5eWFkSNHFrpccnJyvra8b2J517bz/jgU9IezJLZt26ZxqWPXrl149OiRxgebt7c3fvvtN417Yuzbty/fEHVdYuvVqxdUKhXWr1+v0b5q1SooFIoiP1h10atXLyQkJGDHjh3qtpycHKxbtw42NjbqU9L6ZGxsnO9b/rp16/LdrfjJkyca0zY2NqhTp06B/RjMzMzw448/ok2bNujTpw9Onz5dbBwLFiyAEAKjRo0qcIj6uXPn1MOry+r9yJOTk4ONGzeqp7Ozs7Fx40ZUr14drVq1KvA1Tk5O8PPzw8aNG/Ho0aN88//55x/1z7oei2V9jJSlVq1awdvbGytWrCjwOMjLm0qlyndZyMnJCW5ubsX2rfH19QUAnD17VqP94sWLBfY7uXv3Lq5evYr69eur2wp7z4yNjaFQKDR+f+7cuYPdu3cXGVNRAgICYGtri7CwMLx48UJjXt7vbt4Zs1d/l4UQWLNmjcbymZmZ+dbh7e0NW1tbdd4CAwNhZ2eHpUuXQqlU5ovn1WMXeHmJ7Pbt24WOZpUDntmp4A4ePIhr164hJycHiYmJiI2NRUxMDDw8PLB37958neFeFRoaiuPHjyMoKAgeHh5ISkrC559/jpo1a6JTp04AXv4SOTg4YMOGDbC1tYW1tTXatWuX75q0tqpWrYpOnTphzJgxSExMxOrVq1GnTh2N4fHvvfcedu3ahR49emDo0KG4ffu2xreVPLrE1qdPH3Tp0gUff/wx7ty5Ax8fH0RHR2PPnj0ICQnJt+6SGj9+PDZu3IjRo0fj3Llz8PT0xK5du3DixAmsXr1a6w68uujduze+/vpr2Nvbo1GjRjh58iQOHz6cb4h8o0aN4Ofnh1atWqFq1ao4e/asethvQSwtLbFv3z507doVPXv2xLFjx4rsc9ChQweEh4djwoQJaNCggcYdlI8ePYq9e/eqLyGU1fuRx83NDcuWLcOdO3dQr1497NixAxcuXMCmTZuKHL4dHh6OTp06oWnTphg3bhxq166NxMREnDx5En///TcuXrwI4OWXBGNjYyxbtgzPnj2Dubk5unbtCicnp3zrlOIYKUtGRkbYvHkzevbsicaNG2PMmDGoUaMGHjx4gLi4ONjZ2eHnn39GWloaatasicGDB8PHxwc2NjY4fPgwzpw5o3GWsiC1a9dGkyZNcPjwYY1bB8TExGDBggXo27cv2rdvDxsbG/z111/46quvkJWVpXG35Lwid8qUKQgMDISxsTGGDx+OoKAgrFy5Ej169MBbb72FpKQkhIeHo06dOgX2cdOGnZ0dVq1ahffeew9t2rTBW2+9hSpVquDixYvIzMzE1q1b0aBBA3h7e+PDDz/EgwcPYGdnhx9++CFf36wbN26gW7duGDp0KBo1agQTExP89NNPSExMxPDhw9Xb++KLLzBq1Ci0bNkSw4cPR/Xq1XHv3j3s378fHTt21PiicfjwYQgh0K9fvxLtX4VQ9gPASB/yhjjm/TMzMxMuLi6ie/fuYs2aNRpDQ/O8PsT0yJEjol+/fsLNzU2YmZkJNzc3MWLECHHjxg2N1+3Zs0c0atRImJiYaAzN7dy5s2jcuHGB8RU29Pzbb78Vc+bMEU5OTsLS0lIEBQWph1S+6rPPPhM1atQQ5ubmomPHjuLs2bP51llUbK8PPRfi5XDMadOmCTc3N2Fqairq1q0rPv30U42hn0K8HHZb0HDYwobEvy4xMVGMGTNGVKtWTZiZmYmmTZsWODxeX0PPnz59qt6ejY2NCAwMFNeuXcsX75IlS0Tbtm2Fg4ODsLS0FA0aNBCffPKJeui1EJpDz/M8fvxYNGrUSLi4uIibN28WG+O5c+fEW2+9pc5zlSpVRLdu3cTWrVuFSqVSL1ea9yNvWPbrw2/zjrOdO3eq2/KO07NnzwpfX19hYWEhPDw8xPr16wtc5+vv1e3bt8U777wjXFxchKmpqahRo4bo3bu32LVrl8ZyX375pahdu7YwNjbWGIZe0HGrzTFS2D7m5eTVY6A4JRl6XpqcCyHE77//LgYOHCgcHR2Fubm58PDwEEOHDhVHjhwRQrwc/j9z5kzh4+MjbG1thbW1tfDx8RGff/65Vvu0cuVKYWNjozFc+6+//hLz588X7du3F05OTsLExERUr15dBAUFidjYWI3X5+TkiMmTJ4vq1asLhUKhkYMtW7aIunXrCnNzc9GgQQMRERFRYJ4KG3pe2C1B9u7dKzp06CAsLS2FnZ2daNu2rfj222/V869evSr8/f2FjY2NqFatmhg3bpz6tg55x8fjx4/FxIkTRYMGDYS1tbWwt7cX7dq1E99//32+7cXFxYnAwEBhb28vLCwshLe3txg9erQ4e/asxnLDhg0TnTp1KjrhFZxCiHLY45KISE/8/Pzw+PHjSvmoCjl79uwZateujeXLl2Ps2LFSh1NhJSQkwMvLC999952sz+ywzw4REVU49vb2mDVrFj799NNy/9Df8mz16tVo2rSprAsdAOCZHSKSNZ7ZISKe2SEiIiJZ45kdIiIikjWe2SEiIiJZY7FDREREssabCuLls1wePnwIW1tbWT8IjYiISE6EEEhLS4Obm1u+h+u+isUOXj43p7hn+RAREVH5dP/+fdSsWbPQ+Sx2APXt2e/fvw87OzuJoykdpVKJ6OhoBAQEFHkbfNI/5l5azL90mHtpVeb8p6amwt3dvdjHrLDYwf+efmtnZyeLYsfKygp2dnaV7qCXGnMvLeZfOsy9tJj/wp9in4cdlImIiEjWWOwQERGRrLHYISIiIlljsUNERESyxmKHiIiIZI3FDhEREckaix0iIiKSNRY7REREJGssdoiIiEjWWOwQERGRrEla7Bw/fhx9+vSBm5sbFAoFdu/erTFfCIH58+fD1dUVlpaW8Pf3x82bNzWWSU5OxsiRI2FnZwcHBweMHTsW6enpZbgXREREVJ5JWuxkZGTAx8cH4eHhBc5fvnw51q5diw0bNuDUqVOwtrZGYGAgXrx4oV5m5MiRuHLlCmJiYrBv3z4cP34c48ePL6tdICIiokIIIZCZnYPM7BwIISSLQ9IHgfbs2RM9e/YscJ4QAqtXr8bcuXPRr18/AMC2bdvg7OyM3bt3Y/jw4fjzzz8RFRWFM2fOoHXr1gCAdevWoVevXlixYgXc3NwKXHdWVhaysrLU06mpqQBePkxNqVTqcxfLXF78FX0/KiLmXlrMv3SYe2mV5/xnZufAZ3EsAODivK6wMtNv2aHtPpfbp57Hx8cjISEB/v7+6jZ7e3u0a9cOJ0+exPDhw3Hy5Ek4ODioCx0A8Pf3h5GREU6dOoUBAwYUuO6wsDAsWrQoX3t0dDSsrKz0vzMSiImJkTqESou5lxbzLx3m3vCEALJzC563L6r85f9lrC9LjUOHomFurN/1Z2ZmarVcuS12EhISAADOzs4a7c7Ozup5CQkJcHJy0phvYmKCqlWrqpcpyJw5czB9+nT1dGpqKtzd3REQEAA7Ozt97YIklEolYmJi0L17d5iamkodTqXC3EuL+ZcOc182hBAYvvkMzt9LkTqUEgkMDND7mZ28KzPFKbfFjiGZm5vD3Nw8X7upqalsflHltC8VDXMvLeZfOsy9YWVm51TYQqe1RxXYWVlAoVDodb3aHm/ltthxcXEBACQmJsLV1VXdnpiYiObNm6uXSUpK0nhdTk4OkpOT1a8nIiKSm7Nz/WFl9vKakFKpxKFD0QgMDCi3xaalqbHeCx1dlNtix8vLCy4uLjhy5Ii6uElNTcWpU6fwwQcfAAB8fX2RkpKCc+fOoVWrVgCA2NhY5Obmol27dlKFTkREZFBWZsbqS0JKhYC5MWBlZgJT03L7Z11SkmYlPT0dt27dUk/Hx8fjwoULqFq1KmrVqoWQkBAsWbIEdevWhZeXF+bNmwc3Nzf0798fANCwYUP06NED48aNw4YNG6BUKjFp0iQMHz680JFYREREVLlIWuycPXsWXbp0UU/ndRoODg5GZGQkZs2ahYyMDIwfPx4pKSno1KkToqKiYGFhoX7NN998g0mTJqFbt24wMjLCoEGDsHbt2jLfFyIiIiqfJC12/Pz8irzJkEKhQGhoKEJDQwtdpmrVqti+fbshwiMiIiIZ4LOxiIiISNZY7BAREZGssds2ERFRCQgh8FypKrPtZWaX3bbkhsUOERGRjoQQGLzhJM7dfSp1KKQFXsYiIiLS0XOlSrJCp7VHFVia6vkhUzLHMztERESl8OrdjMuC1HcjrohY7BAREZXCq3czpvKJl7GIiIhI1liKEhFRhceRUVQUFjtERFShcWQUFYeXsYiIqELjyCgqDs/sEBGRbHBkFBWExQ4REckGR0ZRQXgZi4iIiGSNxQ4RERHJGosdIiIikjVe2CQiolITAsjMzoGpKPvOurznDRWHxQ4REZWKEAJrrhgj5LdYqUMhKhAvYxERUak8V6oQnyb98Gve84YKwzM7RESkN2V9n5tX8Z43VBgWO0REpDe8zw2VR7yMRURERLLGYoeIiIhkjcUOERERyRqLHSIiIpI1FjtEREQkayx2iIiISNZY7BAREZGssdghIiIiWWOxQ0RERLLGYoeIiIhkjcUOERERyRqLHSIiIpI1FjtEREQkayx2iIiISNZY7BAREZGssdghIiIiWWOxQ0RERLLGYoeIiIhkjcUOERERyRqLHSIiIpI1FjtEREQkayx2iIiISNZY7BAREZGssdghIiIiWWOxQ0RERLLGYoeIiIhkjcUOERERyRqLHSIiIpI1E6kDICIi/RJC4LlSVWbbe55ddtsiKgkWO0REMiKEwOANJ3Hu7lOpQyEqN3gZi4hIRp4rVZIVOq1qOcDS1FiSbRMVhWd2iIhk6uxcf1iZGb74UCqVOHQoGv17t4FCoTD49oh0xWKHiEimrMyMYWVm+I95pULA3BgsdKjc4mUsIiIikjUWO0RERCRr5brYUalUmDdvHry8vGBpaQlvb28sXrwYQgj1MkIIzJ8/H66urrC0tIS/vz9u3rwpYdRERERUnpTrYmfZsmX44osvsH79evz5559YtmwZli9fjnXr1qmXWb58OdauXYsNGzbg1KlTsLa2RmBgIF68eCFh5ERERFRelOsOyr/++iv69euHoKAgAICnpye+/fZbnD59GsDLszqrV6/G3Llz0a9fPwDAtm3b4OzsjN27d2P48OGSxU5ERETlQ7kudjp06IBNmzbhxo0bqFevHi5evIhffvkFK1euBADEx8cjISEB/v7+6tfY29ujXbt2OHnyZKHFTlZWFrKystTTqampAF4On1QqlQbcI8PLi7+i70dFxNxLi/l/SanMeeVnJZQKUcTS+tomcy+lypx/bfe5XBc7s2fPRmpqKho0aABjY2OoVCp88sknGDlyJAAgISEBAODs7KzxOmdnZ/W8goSFhWHRokX52qOjo2FlZaXHPZBOTEyM1CFUWsy9tCp7/rNUQN5H+6FD0TAvw3v8VfbcS60y5j8zM1Or5cp1sfP999/jm2++wfbt29G4cWNcuHABISEhcHNzQ3BwcInXO2fOHEyfPl09nZqaCnd3dwQEBMDOzk4foUtGqVQiJiYG3bt3h6mpqdThVCrMvbSY/5cys3Mw63QsACAwMKBs7rPD3EuqMuc/78pMccp1sTNz5kzMnj1bfTmqadOmuHv3LsLCwhAcHAwXFxcAQGJiIlxdXdWvS0xMRPPmzQtdr7m5OczNzfO1m5qayuZAkdO+VDTMvbQqe/5Nxf9u7PcyF2X3MV/Zcy+1yph/bfe3XI/GyszMhJGRZojGxsbIzc0FAHh5ecHFxQVHjhxRz09NTcWpU6fg6+tbprESERFR+VSuz+z06dMHn3zyCWrVqoXGjRvj999/x8qVK/Huu+8CeHlr8pCQECxZsgR169aFl5cX5s2bBzc3N/Tv31/a4ImIiKhcKNfFzrp16zBv3jxMmDABSUlJcHNzw/vvv4/58+erl5k1axYyMjIwfvx4pKSkoFOnToiKioKFhYWEkRMREVF5Ua6LHVtbW6xevRqrV68udBmFQoHQ0FCEhoaWXWBERERUYZTrPjtEREREpcVih4iIiGSNxQ4RERHJms7FTkREhNZ3LCQiIiKSms7FzuzZs+Hi4oKxY8fi119/NURMRERERHqjc7Hz4MEDbN26FY8fP4afnx8aNGiAZcuWFfksKiIiIiKp6FzsmJiYYMCAAdizZw/u37+PcePG4ZtvvkGtWrXQt29f7NmzR32HYyIiIiKplaqDsrOzMzp16gRfX18YGRnhjz/+QHBwMLy9vXH06FE9hUhERERUciUqdhITE7FixQo0btwYfn5+SE1Nxb59+xAfH48HDx5g6NChpXoqOREREZG+6Fzs9OnTB+7u7oiMjMS4cePw4MEDfPvtt/D39wcAWFtbY8aMGbh//77egyUiIiLSlc6Pi3BycsKxY8eKfKp49erVER8fX6rAiIiIiPRB52Jny5YtxS6jUCjg4eFRooCIiIiI9KlEDwI9c+YM4uLikJSUlG/k1cqVK/USGBEREZE+6FzsLF26FHPnzkX9+vXh7OwMhUKhnvfqz0RERETlgc7Fzpo1a/DVV19h9OjRBgiHiIiISL90Ho1lZGSEjh07GiIWIiIiIr3TudiZNm0awsPDDRELERERkd7pfBnrww8/RFBQELy9vdGoUSOYmppqzP/xxx/1FhwRERFRaelc7EyZMgVxcXHo0qULHB0d2SmZiIiIyjWdi52tW7fihx9+QFBQkCHiISIiItIrnfvsVK1aFd7e3oaIhYiIiEjvdC52Fi5ciAULFiAzM9MQ8RARERHplc6XsdauXYvbt2/D2dkZnp6e+Toonz9/Xm/BEREREZWWzsVO//79DRAGERERkWHoXOwsWLDAEHEQERERGUSJHgQKAOfOncOff/4JAGjcuDFatGiht6CIiIiI9EXnYicpKQnDhw/H0aNH4eDgAABISUlBly5d8N1336F69er6jpGIiIioxHQejTV58mSkpaXhypUrSE5ORnJyMi5fvozU1FRMmTLFEDESERERlZjOZ3aioqJw+PBhNGzYUN3WqFEjhIeHIyAgQK/BEREREZWWzmd2cnNz8w03BwBTU1Pk5ubqJSgiIiIifdG52OnatSumTp2Khw8fqtsePHiAadOmoVu3bnoNjoiIiKi0dC521q9fj9TUVHh6esLb2xve3t7w8vJCamoq1q1bZ4gYiYiIiEpM5z477u7uOH/+PA4fPoxr164BABo2bAh/f3+9B0dERERUWiW6z45CoUD37t3RvXt3fcdDREREpFclKnaOHDmCI0eOICkpKV+n5K+++kovgRERERHpg87FzqJFixAaGorWrVvD1dUVCoXCEHERERER6YXOxc6GDRsQGRmJUaNGGSIeIiIiIr3SeTRWdnY2OnToYIhYiIiIiPRO52Lnvffew/bt2w0RCxEREZHe6XwZ68WLF9i0aRMOHz6MZs2a5bub8sqVK/UWHBEREVFp6VzsXLp0Cc2bNwcAXL58WWMeOysTERFReaNzsRMXF2eIOIiIiIgMQuc+O6/6+++/8ffff+srFiIiIiK9K9FTz0NDQ2Fvbw8PDw94eHjAwcEBixcv5lPPiYiIqNzR+TLWxx9/jC1btuA///kPOnbsCAD45ZdfsHDhQrx48QKffPKJ3oMkIiIiKimdi52tW7di8+bN6Nu3r7qtWbNmqFGjBiZMmMBih4iIiMoVnYud5ORkNGjQIF97gwYNkJycrJegiIjKAyEEnitVUoehk8zsihUvUVnQudjx8fHB+vXrsXbtWo329evXw8fHR2+BERFJSQiBwRtO4tzdp1KHQkSlpHOxs3z5cgQFBeHw4cPw9fUFAJw8eRL379/HgQMH9B4gEZEUnitVFbrQae1RBZamxlKHQVQu6FzsdO7cGdevX8fnn3+Oa9euAQAGDhyICRMmwM3NTe8BEhFJ7excf1iZVazCwdLUmDd6Jfr/dC52AKBGjRrsiExElYaVmTGszEr0cUlE5YDO99mJiIjAzp0787Xv3LkTW7du1UtQRERERPqic7ETFhaGatWq5Wt3cnLC0qVL9RIUERERkb7oXOzcu3cPXl5e+do9PDxw7949vQRFREREpC86FztOTk64dOlSvvaLFy/C0dFRL0ERERER6YvOxc6IESMwZcoUxMXFQaVSQaVSITY2FlOnTsXw4cMNESMRERFRielc7CxevBjt2rVDt27dYGlpCUtLSwQEBKBr164G6bPz4MEDvP3223B0dISlpSWaNm2Ks2fPqucLITB//ny4urrC0tIS/v7+uHnzpt7jICIioopJ57GUZmZm2LFjBxYvXoyLFy+qCxAPDw+9B/f06VN07NgRXbp0wcGDB1G9enXcvHkTVapUUS+zfPlyrF27Flu3boWXlxfmzZuHwMBAXL16FRYWFnqPiYiIiCqWEt84wtPTE0IIeHt7w8TEMPefWLZsGdzd3REREaFue7VztBACq1evxty5c9GvXz8AwLZt2+Ds7Izdu3fzshoRERHpXuxkZmZi8uTJ6nvq3LhxA7Vr18bkyZNRo0YNzJ49W2/B7d27F4GBgRgyZAiOHTumfrL6uHHjAADx8fFISEiAv7+/+jX29vZo164dTp48WWixk5WVhaysLPV0amoqAECpVEKpVOotfinkxV/R96MiYu6lpe/8K5U5GutWKoRe1itHPPalVZnzr+0+61zszJkzBxcvXsTRo0fRo0cPdbu/vz8WLlyo12Lnr7/+whdffIHp06fjo48+wpkzZzBlyhSYmZkhODgYCQkJAABnZ2eN1zk7O6vnFSQsLAyLFi3K1x4dHQ0rKyu9xS+lmJgYqUOotJh7aekr/1kqIO8j8tChaJhXrKdFSILHvrQqY/4zMzO1Wk7nYmf37t3YsWMH2rdvr/HclcaNG+P27du6rq5Iubm5aN26tbrjc4sWLXD58mVs2LABwcHBJV7vnDlzMH36dPV0amoq3N3dERAQADs7u1LHLSWlUomYmBh0794dpqamUodTqTD30tJ3/jOzczDrdCwAIDAwgI+LKAKPfWlV5vznXZkpjs6/vf/88w+cnJzytWdkZOj9oXOurq5o1KiRRlvDhg3xww8/AABcXFwAAImJiXB1dVUvk5iYiObNmxe6XnNzc5ibm+drNzU1lc2BIqd9qWiYe2npK/+m4n+fZy/XyWKnODz2pVUZ86/t/uo89Lx169bYv3+/ejqvwNm8eTN8fX11XV2ROnbsiOvXr2u03bhxQz3yy8vLCy4uLjhy5Ih6fmpqKk6dOqX3WIiIiKhi0vmrytKlS9GzZ09cvXoVOTk5WLNmDa5evYpff/0Vx44d02tw06ZNQ4cOHbB06VIMHToUp0+fxqZNm7Bp0yYALwutkJAQLFmyBHXr1lUPPXdzc0P//v31GgsRERFVTDqf2enUqRMuXLiAnJwcNG3aFNHR0XBycsLJkyfRqlUrvQbXpk0b/PTTT/j222/RpEkTLF68GKtXr8bIkSPVy8yaNQuTJ0/G+PHj0aZNG6SnpyMqKor32CEiIiIAJbzPjre3N7788kt9x1Kg3r17o3fv3oXOVygUCA0NRWhoaJnEQ0RERBWLzmd2iIiIiCoSFjtEREQkayx2iIiISNZY7BAREZGslbjYuXXrFg4dOoTnz58DePlQTiIiIqLyRudi58mTJ/D390e9evXQq1cvPHr0CAAwduxYzJgxQ+8BEhEREZWGzsXOtGnTYGJignv37mk8NHPYsGGIiorSa3BEREREpaXzfXaio6Nx6NAh1KxZU6O9bt26uHv3rt4CIyIiItIHnc/sZGRkaJzRyZOcnFzgwzWJiIiIpKRzsfPGG29g27Zt6mmFQoHc3FwsX74cXbp00WtwRERERKWl82Ws5cuXo1u3bjh79iyys7Mxa9YsXLlyBcnJyThx4oQhYiQiIiIqMZ3P7DRp0gQ3btxAp06d0K9fP2RkZGDgwIH4/fff4e3tbYgYiYiIiEqsRA8Ctbe3x8cff6zvWIiIiIj0rkTFTkpKCk6fPo2kpCTk5uZqzHvnnXf0EhgRERGRPuhc7Pz8888YOXIk0tPTYWdnB4VCoZ6nUChY7BBRqQgh8Fyp0vl1SmUOslRAZnYOTIWi+BcUIzNb9xiIqHzSudiZMWMG3n33XSxdurTAIehERCUlhMDgDSdx7u7TEq7BBLNOx+o1JiKq+HTuoPzgwQNMmTKFhQ4R6d1zpaoUhY5htPaoAktTY6nDIKJS0PnMTmBgIM6ePYvatWsbIh4iIgDA2bn+sDLTvshQKpU4dCgagYEBMDU11VsclqbGGpfriaji0arY2bt3r/rnoKAgzJw5E1evXkXTpk3zfaj07dtXvxESUaVkZWYMKzPtv48pFQLmxoCVmQlMTUs09oKIZEqrT4T+/fvnawsNDc3XplAooFKxUx8RERGVH1oVO68PLyciIiKqKHTuoLxt2zZkZWXla8/OztZ4ZhYRERFReaBzsTNmzBg8e/YsX3taWhrGjBmjl6CIiIiI9EXnYkcIUeDIhL///hv29vZ6CYqIiIhIX7QestCiRQsoFAooFAp069YNJib/e6lKpUJ8fDx69OhhkCCJiIiISkrrYidvRNaFCxcQGBgIGxsb9TwzMzN4enpi0KBBeg+QiIiIqDS0LnYWLFgAAPD09MSwYcNgYWFhsKCIiIiI9EXnO28FBwcbIg4iIiIig9C5gzIRERFRRcJih4iIiGSNxQ4RERHJGosdIiIikjWdOyirVCpERkbiyJEjSEpKyvfcrNjYWL0FR0RERFRaOhc7U6dORWRkJIKCgtCkSZMC76ZMREREVF7oXOx89913+P7779GrVy9DxENERESkVzr32TEzM0OdOnUMEQsRERGR3ulc7MyYMQNr1qyBEMIQ8RARERHplc6XsX755RfExcXh4MGDaNy4MUxNTTXm//jjj3oLjoiIiKi0dC52HBwcMGDAAEPEQkRERKR3Ohc7ERERhoiDiIiIyCB4U0EiIiKSNa3O7LRs2RJHjhxBlSpV0KJFiyLvrXP+/Hm9BUdERERUWloVO/369YO5uTkAoH///oaMh4iIiEivtCp2FixYUODPREREROUd++wQERGRrLHYISIiIlljsUNERESyxmKHiIiIZK3UxY5KpcKFCxfw9OlTfcRDREREpFc6FzshISHYsmULgJeFTufOndGyZUu4u7vj6NGj+o6PiIiIqFR0LnZ27doFHx8fAMDPP/+M+Ph4XLt2DdOmTcPHH3+s9wCJiIiISkPnYufx48dwcXEBABw4cABDhgxBvXr18O677+KPP/7Qe4BEREREpaFzsePs7IyrV69CpVIhKioK3bt3BwBkZmbC2NhY7wESERERlYbOTz0fM2YMhg4dCldXVygUCvj7+wMATp06hQYNGug9QCIiIqLS0LnYWbhwIZo0aYL79+9jyJAh6mdmGRsbY/bs2XoPkIiIiKg0dC52/v77bwwePDhfe3BwMH777Te9BEVERESkLzr32QkICEBycnK+9hMnTqBHjx56CYqIiIhIX3Qudtq3b4+AgACkpaWp244fP46ePXsa/Ino//nPf6BQKBASEqJue/HiBSZOnAhHR0fY2Nhg0KBBSExMNGgcREREVHHoXOxs3rwZtWrVQp8+fZCVlYW4uDgEBQVh8eLFmDZtmiFiBACcOXMGGzduRLNmzTTap02bhp9//hk7d+7EsWPH8PDhQwwcONBgcRAREVHFonOfHSMjI3z33XcICgpC165dcenSJYSFhWHSpEmGiA8AkJ6ejpEjR+LLL7/EkiVL1O3Pnj3Dli1bsH37dnTt2hUAEBERgYYNG+K3335D+/btC1xfVlYWsrKy1NOpqakAAKVSCaVSabD9KAt58Vf0/aiImPvSUypzXvlZCaVC6PBa5l8qzL20KnP+td1nhRCi2E+TS5cu5WtLS0vDiBEjEBQUhA8++EDd/vqZF30IDg5G1apVsWrVKvj5+aF58+ZYvXo1YmNj0a1bNzx9+hQODg7q5T08PBASElLomaaFCxdi0aJF+dq3b98OKysrvcdPRNrJUgGzTr/8Dra8bQ7MeesuIipCZmYm3nrrLTx79gx2dnaFLqfVmZ3mzZtDoVDg1boob3rjxo3YtGkThBBQKBRQqVSlj/4V3333Hc6fP48zZ87km5eQkAAzMzONQgd4eePDhISEQtc5Z84cTJ8+XT2dmpoKd3d3BAQEFJmsikCpVCImJgbdu3eHqamp1OFUKsx96WVm52DW6VgAQGBgAKzMtD/5zPxLh7mXVmXOf96VmeJo9UkSHx9fqmBK6v79+5g6dSpiYmJgYWGht/Wam5ur7w/0KlNTU9kcKHLal4qGuS85U6H438+mpjA11flKO/MvIeZeWpUx/9rur1afJB4eHqUKpqTOnTuHpKQktGzZUt2mUqlw/PhxrF+/HocOHUJ2djZSUlI0zu4kJiaqn99FRERElZvOo7G2bt2K/fv3q6dnzZoFBwcHdOjQAXfv3tVrcN26dcMff/yBCxcuqP+1bt0aI0eOVP9samqKI0eOqF9z/fp13Lt3D76+vnqNhYiIiComnYudpUuXwtLSEgBw8uRJrF+/HsuXL0e1atX0PvTc1tYWTZo00fhnbW0NR0dHNGnSBPb29hg7diymT5+OuLg4nDt3DmPGjIGvr2+hI7GIiIioctH5gvj9+/dRp04dAMDu3bsxePBgjB8/Hh07doSfn5++4yvWqlWrYGRkhEGDBiErKwuBgYH4/PPPyzwOIiIiKp90LnZsbGzw5MkT1KpVC9HR0epRTRYWFnj+/LneA3zd0aNHNaYtLCwQHh6O8PBwg2+biIiIKh6di53u3bvjvffeQ4sWLXDjxg306tULAHDlyhV4enrqOz4iIiKiUtG5z054eDh8fX3xzz//4IcffoCjoyOAlyOnRowYofcAiYiIiEpD5zM7Dg4OWL9+fb72gu5ITERERCQ13e/Y9f9lZmbi3r17yM7O1mg3xOMiiIiIiEpK52Lnn3/+wejRoxEVFVXgfH0/LoKIiIioNHTusxMSEoJnz57h1KlTsLS0RFRUFLZu3Yq6deti7969hoiRiIiIqMR0PrMTGxuLPXv2oHXr1jAyMoKHhwe6d+8OOzs7hIWFISgoyBBxEhEREZWIzmd2MjIy4OTkBACoUqUK/vnnHwBA06ZNcf78ef1GR0RERFRKOhc79evXx/Xr1wEAPj4+2LhxIx48eIANGzbA1dVV7wESERERlYbOl7GmTp2KR48eAQAWLFiAHj164JtvvoGZmRkiIyP1HR8RERFRqehc7Lz99tvqn1u1aoW7d+/i2rVrqFWrFqpVq6bX4IiIiIhKS+fLWKGhocjMzFRPW1lZoWXLlrC2tkZoaKhegyMiIiIqLZ2LnUWLFiE9PT1fe2ZmJu+iTEREROWOzsWOEAIKhSJf+8WLF1G1alW9BEVERESkL1r32alSpQoUCgUUCgXq1aunUfCoVCqkp6fjX//6l0GCJCIiIioprYud1atXQwiBd999F4sWLYK9vb16npmZGTw9PeHr62uQIImIiIhKSutiJzg4GADg5eWFjh07wsSkxM8QJSIiIiozOlcsnTt3NkQcRERERAahcwdlIiIiooqExQ4RERHJmlbFzqVLl5Cbm2voWIiIiIj0Tqtip0WLFnj8+DEAoHbt2njy5IlBgyIiIiLSF62KHQcHB8THxwMA7ty5w7M8REREVGFoNRpr0KBB6Ny5M1xdXaFQKNC6dWsYGxsXuOxff/2l1wCJiIiISkOrYmfTpk0YOHAgbt26hSlTpmDcuHGwtbU1dGxEREREpab1fXZ69OgBADh37hymTp3KYoeIiIgqBJ1vKhgREaH++e+//wYA1KxZU38REREREemRzvfZyc3NRWhoKOzt7eHh4QEPDw84ODhg8eLF7LhMRERE5Y7OZ3Y+/vhjbNmyBf/5z3/QsWNHAMAvv/yChQsX4sWLF/jkk0/0HiQRERFRSelc7GzduhWbN29G37591W3NmjVDjRo1MGHCBBY7REREVK7ofBkrOTkZDRo0yNfeoEEDJCcn6yUoIiIiIn3Rudjx8fHB+vXr87WvX78ePj4+egmKiIiISF90voy1fPlyBAUF4fDhw/D19QUAnDx5Evfv38eBAwf0HiARERFRaeh8Zqdz5864ceMGBgwYgJSUFKSkpGDgwIG4fv063njjDUPESERERFRiOp/ZAQA3Nzd2RCYiIqIKQeczO0REREQVCYsdIiIikjUWO0RERCRrLHaIiIhI1krUQTnP48ePcerUKahUKrRp0waurq76iouIiIhIL0pc7Pzwww8YO3Ys6tWrB6VSievXryM8PBxjxozRZ3xEREREpaJ1sZOeng4bGxv19KJFi3D69GnUq1cPALB//36MGzeOxQ6Rnggh8FypkjqMMpWZXbn2l4jKhtbFTqtWrbB8+XL069fv5QtNTJCUlKQudhITE2FmZmaYKIkqGSEEBm84iXN3n0odChFRhad1sXPo0CFMnDgRkZGRCA8Px5o1azBs2DCoVCrk5OTAyMgIkZGRBgyVqPJ4rlRV6kKntUcVWJoaSx0GEcmE1sWOp6cn9u/fj2+//RadO3fGlClTcOvWLdy6dQsqlQoNGjSAhYWFIWMlqpTOzvWHlVnl+sNvaWoMhUIhdRhEJBM6d1AeMWIEevbsiQ8//BB+fn7YtGkTmjdvboDQiMoPbfrPKJU5yFIBmdk5MBWl+0P9at8VKzNjWJmVauAkEVGlptMn6IEDB/Dnn3/Cx8cHmzdvxrFjxzBy5Ej07NkToaGhsLS0NFScRJLRrf+MCWadjjV4TEREpD2tbyo4Y8YMjBkzBmfOnMH777+PxYsXo3Pnzjh//jwsLCzQokULHDx40JCxEklCyv4z7LtCRFR6Wp/ZiYyMRHR0NFq1aoXk5GS0b98e8+bNg5mZGRYvXowRI0bg/fffR8+ePQ0ZL5Gkiuo/o1QqcehQNAIDA2BqaqqX7bHvChFR6Wld7FhbWyM+Ph6tWrXC/fv383VGbtSoEf773//qPUCi8qSo/jNKhYC5MWBlZgJTU/axISIqL7S+jBUWFoZ33nkHbm5u6Ny5MxYvXmzIuIiIiIj0QuuvnyNHjkSPHj3w119/oW7dunBwcDBgWERERET6odO5dkdHRzg6OhoqFiIiIiK90/oyFhEREVFFxGKHiIiIZI3FDhEREclauS52wsLC0KZNG9ja2sLJyQn9+/fH9evXNZZ58eIFJk6cCEdHR9jY2GDQoEFITEyUKGIiIiIqb8p1sXPs2DFMnDgRv/32G2JiYqBUKhEQEICMjAz1MtOmTcPPP/+MnTt34tixY3j48CEGDhwoYdRERERUnpTrO59FRUVpTEdGRsLJyQnnzp3Dm2++iWfPnmHLli3Yvn07unbtCgCIiIhAw4YN8dtvv6F9+/ZShE1ERETlSLkudl737NkzAEDVqlUBAOfOnYNSqYS/v796mQYNGqBWrVo4efJkocVOVlYWsrKy1NOpqakAXt7uX6lUGir8MpEXf0Xfj/JEqcx55WcllApRyHLMvZSYf+kw99KqzPnXdp8rTLGTm5uLkJAQdOzYEU2aNAEAJCQkwMzMLN8NDp2dnZGQkFDousLCwrBo0aJ87dHR0bCystJr3FKJiYmROgSDEQLIzi277b3c1stflUOHomFezHM55Zz7ioD5lw5zL63KmP/MzEytlqswxc7EiRNx+fJl/PLLL6Ve15w5czB9+nT1dGpqKtzd3REQEAA7O7tSr19KSqUSMTEx6N69u94eRlmeCCEwfPMZnL+XIsn2AwMDCn82lsxzX94x/9Jh7qVVmfOfd2WmOBWi2Jk0aRL27duH48ePo2bNmup2FxcXZGdnIyUlRePsTmJiIlxcXApdn7m5OczNzfO1m5qayuZAkdO+vCozO0eyQqe1RxXYWVkU+xRyuea+omD+pcPcS6sy5l/b/S3XxY4QApMnT8ZPP/2Eo0ePwsvLS2N+q1atYGpqiiNHjmDQoEEAgOvXr+PevXvw9fWVImQqQ2fn+sPKrJhrSnpkaWpcbKFDRETlT7kudiZOnIjt27djz549sLW1VffDsbe3h6WlJezt7TF27FhMnz4dVatWhZ2dHSZPngxfX1+OxKoErMyMC72kRERElKdc/6X44osvAAB+fn4a7RERERg9ejQAYNWqVTAyMsKgQYOQlZWFwMBAfP7552UcKREREZVX5brYEaLgIb6vsrCwQHh4OMLDw8sgIiIiIqpoyvUdlImIiIhKi8UOERERyRqLHSIiIpI1FjtEREQkayx2iIiISNZY7BAREZGssdghIiIiWWOxQ0RERLLGYoeIiIhkjcUOERERyRqLHSIiIpI1FjtEREQka+X6QaCkOyEEslRAZnYOTIVC6nD0LjNbJXUIRERUwbDYkREhBIZvPoPz90ww63Ss1OEQERGVC7yMJSPPlSqcv5cidRhlorVHFViaGksdBhERVQA8syNTv/27M+ysLaQOw2AsTY2hUMjvMh0REekfix2ZsjQzhpUZ314iIiJexiIiIiJZY7FDREREssZih4iIiGSNxQ4RERHJGosdIiIikjUWO0RERCRrLHaIiIhI1ljsEBERkayx2CEiIiJZY7FDREREssZih4iIiGSNxQ4RERHJGosdIiIikjUWO0RERCRrLHaIiIhI1ljsEBERkayx2CEiIiJZY7FDREREssZih4iIiGSNxQ4RERHJGosdIiIikjUWO0RERCRrLHaIiIhI1ljsEBERkayx2CEiIiJZY7FDREREssZih4iIiGSNxQ4RERHJGosdIiIikjUWO0RERCRrLHaIiIhI1ljsEBERkayx2CEiIiJZY7FDREREssZih4iIiGSNxQ4RERHJGosdIiIikjUWO0RERCRrLHaIiIhI1ljsEBERkazJptgJDw+Hp6cnLCws0K5dO5w+fVrSeIQQyMzOKeN/Kkn3mYiIqDwykToAfdixYwemT5+ODRs2oF27dli9ejUCAwNx/fp1ODk5SRLTc6UKjeYfkmTbRERE9D+yKHZWrlyJcePGYcyYMQCADRs2YP/+/fjqq68we/bsfMtnZWUhKytLPZ2amgoAUCqVUCqVeolJqczRy3pKwstWwAS5etsX0k5evpl3aTD/0mHupVWZ86/tPiuEEMLAsRhUdnY2rKyssGvXLvTv31/dHhwcjJSUFOzZsyffaxYuXIhFixbla9++fTusrKz0EpcQQHauXlalMzMjQKGQZttERERlJTMzE2+99RaePXsGOzu7Qper8Gd2Hj9+DJVKBWdnZ412Z2dn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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Get unique upper bound estimates and sort them\n",
"time_range = sorted(enriched_sample_df['ub_estimate_in_hours'].unique())\n",
"\n",
"# Calculate the percentage of tasks for each time point\n",
"percentages = []\n",
"for time_point in time_range:\n",
" percentage = (enriched_sample_df['ub_estimate_in_hours'] <= time_point).mean() * 100\n",
" percentages.append(percentage)\n",
"\n",
"# Create the staircase plot\n",
"plt.step(time_range, percentages, where='post') # Use 'step' function with 'where='post''\n",
"plt.xscale('log') # Keep the x-axis in log scale\n",
"plt.xlabel('Time horizon needed')\n",
"plt.ylabel('% of tasks in the economy')\n",
"plt.title('Distribution of Task Completion Times (Staircase)') # Update the title\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 311
},
"collapsed": true,
"id": "BSuO-HB1nPTS",
"jupyter": {
"outputs_hidden": true
},
"outputId": "f3fc3422-62e8-4054-f77b-8c514eae7fc7"
},
"outputs": [
{
"ename": "KeyError",
"evalue": "'Column not found: ub_estimate_in_hours'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-16-1b0d5f31b751>\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mhardest_task_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0menriched_sample_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0menriched_sample_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'occupation_title'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'ub_estimate_in_hours'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0midxmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mhardest_task_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.11/dist-packages/pandas/core/groupby/generic.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1949\u001b[0m \u001b[0;34m\"Use a list instead.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1950\u001b[0m )\n\u001b[0;32m-> 1951\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getitem__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1952\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1953\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_gotitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mndim\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubset\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.11/dist-packages/pandas/core/base.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Column not found: {key}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0mndim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_gotitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mndim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mndim\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'Column not found: ub_estimate_in_hours'"
]
}
],
"source": [
"hardest_task_df = enriched_sample_df.loc[enriched_sample_df.groupby('occupation_title')['ub_estimate_in_hours'].idxmax()]\n",
"hardest_task_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "h1ajw7Cpo5EG",
"outputId": "62bc2c04-8d6a-40bd-ae2f-fc4154d28e7e"
},
"outputs": [
{
"data": {
"text/plain": [
"45"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_ground = pd.read_csv('groundtruth.csv')\n",
"len(df_ground)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TWXi34Z3H2zn",
"outputId": "91b08575-a41b-4a9c-af77-e0c0cb7f01a8"
},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"download(\"download_e757f711-7909-4bab-b440-6b854050738b\", \"groundtruth_with_dwas.csv\", 20412)"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from google.colab import files\n",
"\n",
"# Rename columns in df_ground to match df\n",
"df_ground = df_ground.rename(columns={\"Task\": \"task\", \"Occupation\": \"occupation_title\", \"Occupation Description\": \"occupation_description\"})\n",
"\n",
"# Drop duplicates from 'df' based on merge key columns, keeping only the first occurrence\n",
"df_unique = df[['task', 'occupation_title', 'occupation_description', 'dwas']].drop_duplicates(subset=['task', 'occupation_title', 'occupation_description'], keep='first')\n",
"\n",
"# Merge the two DataFrames using the specified columns\n",
"merged_df = pd.merge(df_ground, df_unique, on=['task', 'occupation_title', 'occupation_description'], how='left')\n",
"\n",
"# Restore original column names in merged_df if needed\n",
"merged_df = merged_df.rename(columns={\"task\": \"Task\", \"occupation_title\": \"Occupation\", \"occupation_description\": \"Occupation Description\"})\n",
"\n",
"# Access the merged DataFrame with the added 'dwas' column\n",
"merged_df.to_csv('groundtruth_with_dwas.csv', index=False) # Save the DataFrame to a CSV file\n",
"files.download('groundtruth_with_dwas.csv') # Download the file"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"id": "5K-y59g0JdSu",
"outputId": "e34e5e19-94b6-47bd-ff9f-9b9732eb7728"
},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"download(\"download_2c2b4f4a-16d1-4c18-960a-81b09b6daf2f\", \"groundtruth_with_dwas.csv\", 17625)"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from google.colab import files\n",
"\n",
"df_ground.to_csv('groundtruth_with_dwas.csv', index=False) # Save the DataFrame to a CSV file\n",
"files.download('groundtruth_with_dwas.csv') # Download the file"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"id": "7pZgtEGtVGtH",
"outputId": "5f0e938b-6393-4c7d-bdb3-0a4f9e6395e4"
},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"download(\"download_cee274f5-c2ff-4298-bcb1-de5f2f8f04f0\", \"task_to_estimate.csv\", 11158577)"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"remote_df.to_csv('task_to_estimate.csv', index=False)\n",
"files.download('task_to_estimate.csv')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1hz5swsJwXrO"
},
"outputs": [],
"source": [
"METR = [\n",
" [2022, '1 min'],\n",
" [2024, '15 min'],\n",
" [2026, '4 hours'],\n",
" [2028, '68 hours']\n",
"]\n",
"\n",
"# These are the values for the X axis"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.13.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}