{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# Fastag Fraud Detection"
],
"metadata": {
"id": "Nx7NdXm-7X4C"
}
},
{
"cell_type": "markdown",
"source": [
"## Project Pipeline\n",
"\n",
"1. **Data Exploration**:\n",
" - Explore the dataset to understand the distribution of features and the prevalence of fraud indicators.\n",
"\n",
"2. **Feature Engineering**:\n",
" - Identify and engineer relevant features that contribute to fraud detection accuracy.\n",
"\n",
"3. **Model Development**:\n",
" - Build a machine learning classification model to predict and detect Fastag transaction fraud.\n",
" - Evaluate and fine-tune model performance using appropriate metrics.\n",
"\n",
"4. **Real-time Fraud Detection**:\n",
" - Explore the feasibility of implementing the model for real-time Fastag fraud detection.\n",
"\n",
"5. **Explanatory Analysis**:\n",
" - Provide insights into the factors contributing to fraudulent transactions."
],
"metadata": {
"id": "033Tp9X19HJ5"
}
},
{
"cell_type": "markdown",
"source": [
"## Dataset Description\n",
"\n",
"The dataset contains the following columns:\n",
"\n",
"1. **Transaction_ID**: Unique identifier for each transaction.\n",
"2. **Timestamp**: Date and time of the transaction.\n",
"3. **Vehicle_Type**: Type of vehicle involved in the transaction.\n",
"4. **FastagID**: Unique identifier for Fastag.\n",
"5. **TollBoothID**: Identifier for the toll booth.\n",
"6. **Lane_Type**: Type of lane used for the transaction.\n",
"7. **Vehicle_Dimensions**: Dimensions of the vehicle.\n",
"8. **Transaction_Amount**: Amount associated with the transaction.\n",
"9. **Amount_paid**: Amount paid for the transaction.\n",
"10. **Geographical_Location**: Location details of the transaction.\n",
"11. **Vehicle_Speed**: Speed of the vehicle during the transaction.\n",
"12. **Vehicle_Plate_Number**: License plate number of the vehicle.\n",
"13. **Fraud_indicator**: Binary indicator of fraudulent activity (target variable).\n"
],
"metadata": {
"id": "XjP3xfZxCT1r"
}
},
{
"cell_type": "markdown",
"source": [
"# Exploratory Data Analysis (EDA)"
],
"metadata": {
"id": "balcKLWlA8ev"
}
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"id": "7vVanFDO6tx9"
},
"outputs": [],
"source": [
"# Let's import libraries\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"source": [
"df = pd.read_csv('/content/FastagFraudDetection.csv')"
],
"metadata": {
"id": "jYByW32N7rJP"
},
"execution_count": 68,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's look at columns\n",
"df.columns"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7q6qaY-M7x5a",
"outputId": "1581087e-3e33-4808-8b87-00ab77352052"
},
"execution_count": 69,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Index(['Transaction_ID', 'Timestamp', 'Vehicle_Type', 'FastagID',\n",
" 'TollBoothID', 'Lane_Type', 'Vehicle_Dimensions', 'Transaction_Amount',\n",
" 'Amount_paid', 'Geographical_Location', 'Vehicle_Speed',\n",
" 'Vehicle_Plate_Number', 'Fraud_indicator'],\n",
" dtype='object')"
]
},
"metadata": {},
"execution_count": 69
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at first 5 rows\n",
"df.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 313
},
"id": "xjs87Lib9gN6",
"outputId": "9829ff57-b80c-48b7-bd1c-0afe12cda61e"
},
"execution_count": 70,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Transaction_ID Timestamp Vehicle_Type FastagID TollBoothID \\\n",
"0 1 1/6/2023 11:20 Bus FTG-001-ABC-121 A-101 \n",
"1 2 1/7/2023 14:55 Car FTG-002-XYZ-451 B-102 \n",
"2 3 1/8/2023 18:25 Motorcycle NaN D-104 \n",
"3 4 1/9/2023 2:05 Truck FTG-044-LMN-322 C-103 \n",
"4 5 1/10/2023 6:35 Van FTG-505-DEF-652 B-102 \n",
"\n",
" Lane_Type Vehicle_Dimensions Transaction_Amount Amount_paid \\\n",
"0 Express Large 350 120 \n",
"1 Regular Small 120 100 \n",
"2 Regular Small 0 0 \n",
"3 Regular Large 350 120 \n",
"4 Express Medium 140 100 \n",
"\n",
" Geographical_Location Vehicle_Speed Vehicle_Plate_Number \\\n",
"0 13.059816123454882, 77.77068662374292 65 KA11AB1234 \n",
"1 13.059816123454882, 77.77068662374292 78 KA66CD5678 \n",
"2 13.059816123454882, 77.77068662374292 53 KA88EF9012 \n",
"3 13.059816123454882, 77.77068662374292 92 KA11GH3456 \n",
"4 13.059816123454882, 77.77068662374292 60 KA44IJ6789 \n",
"\n",
" Fraud_indicator \n",
"0 Fraud \n",
"1 Fraud \n",
"2 Not Fraud \n",
"3 Fraud \n",
"4 Fraud "
],
"text/html": [
"\n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Transaction_ID | \n",
" Timestamp | \n",
" Vehicle_Type | \n",
" FastagID | \n",
" TollBoothID | \n",
" Lane_Type | \n",
" Vehicle_Dimensions | \n",
" Transaction_Amount | \n",
" Amount_paid | \n",
" Geographical_Location | \n",
" Vehicle_Speed | \n",
" Vehicle_Plate_Number | \n",
" Fraud_indicator | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1/6/2023 11:20 | \n",
" Bus | \n",
" FTG-001-ABC-121 | \n",
" A-101 | \n",
" Express | \n",
" Large | \n",
" 350 | \n",
" 120 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 65 | \n",
" KA11AB1234 | \n",
" Fraud | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1/7/2023 14:55 | \n",
" Car | \n",
" FTG-002-XYZ-451 | \n",
" B-102 | \n",
" Regular | \n",
" Small | \n",
" 120 | \n",
" 100 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 78 | \n",
" KA66CD5678 | \n",
" Fraud | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 1/8/2023 18:25 | \n",
" Motorcycle | \n",
" NaN | \n",
" D-104 | \n",
" Regular | \n",
" Small | \n",
" 0 | \n",
" 0 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 53 | \n",
" KA88EF9012 | \n",
" Not Fraud | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 1/9/2023 2:05 | \n",
" Truck | \n",
" FTG-044-LMN-322 | \n",
" C-103 | \n",
" Regular | \n",
" Large | \n",
" 350 | \n",
" 120 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 92 | \n",
" KA11GH3456 | \n",
" Fraud | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 1/10/2023 6:35 | \n",
" Van | \n",
" FTG-505-DEF-652 | \n",
" B-102 | \n",
" Express | \n",
" Medium | \n",
" 140 | \n",
" 100 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 60 | \n",
" KA44IJ6789 | \n",
" Fraud | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "df",
"summary": "{\n \"name\": \"df\",\n \"rows\": 5000,\n \"fields\": [\n {\n \"column\": \"Transaction_ID\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1443,\n \"min\": 1,\n \"max\": 5000,\n \"num_unique_values\": 5000,\n \"samples\": [\n 1502,\n 2587,\n 2654\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Timestamp\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 4423,\n \"samples\": [\n \"6/25/2023 7:17\",\n \"10/22/2023 2:04\",\n \"2/5/2023 0:42\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Vehicle_Type\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"Bus \",\n \"Car\",\n \"Sedan\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"FastagID\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4451,\n \"samples\": [\n \"FTG-580-DEF-850\",\n \"FTG-083-PQR-333\",\n \"FTG-125-EDC-765\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"TollBoothID\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"A-101\",\n \"B-102\",\n \"D-106\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lane_Type\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Regular\",\n \"Express\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Vehicle_Dimensions\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3,\n \"samples\": [\n \"Large\",\n \"Small\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Transaction_Amount\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 112,\n \"min\": 0,\n \"max\": 350,\n \"num_unique_values\": 20,\n \"samples\": [\n 350,\n 330\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Amount_paid\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 106,\n \"min\": 0,\n \"max\": 350,\n \"num_unique_values\": 23,\n \"samples\": [\n 340,\n 60\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Geographical_Location\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"13.042660878688794, 77.47580097259879\",\n \"13.21331620748757, 77.55413526894684\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Vehicle_Speed\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 16,\n \"min\": 10,\n \"max\": 118,\n \"num_unique_values\": 85,\n \"samples\": [\n 35,\n 65\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Vehicle_Plate_Number\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5000,\n \"samples\": [\n \"KA05CD5678\",\n \"KA67LM4267\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Fraud_indicator\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Not Fraud\",\n \"Fraud\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 70
}
]
},
{
"cell_type": "code",
"source": [
"# Let's check up missing value\n",
"df.isnull().any()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zUdPKKpE9hbR",
"outputId": "c02bfa26-c9de-444e-c1a4-220de494385d"
},
"execution_count": 71,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Transaction_ID False\n",
"Timestamp False\n",
"Vehicle_Type False\n",
"FastagID True\n",
"TollBoothID False\n",
"Lane_Type False\n",
"Vehicle_Dimensions False\n",
"Transaction_Amount False\n",
"Amount_paid False\n",
"Geographical_Location False\n",
"Vehicle_Speed False\n",
"Vehicle_Plate_Number False\n",
"Fraud_indicator False\n",
"dtype: bool"
]
},
"metadata": {},
"execution_count": 71
}
]
},
{
"cell_type": "code",
"source": [
"# Let's check up missing value count\n",
"df.isnull().sum()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5N47_ZUF9r6Z",
"outputId": "da5da61a-df41-4c8a-f34f-32aabc271c96"
},
"execution_count": 72,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Transaction_ID 0\n",
"Timestamp 0\n",
"Vehicle_Type 0\n",
"FastagID 549\n",
"TollBoothID 0\n",
"Lane_Type 0\n",
"Vehicle_Dimensions 0\n",
"Transaction_Amount 0\n",
"Amount_paid 0\n",
"Geographical_Location 0\n",
"Vehicle_Speed 0\n",
"Vehicle_Plate_Number 0\n",
"Fraud_indicator 0\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 72
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at shape of dataframe\n",
"df.shape"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "vpftuKMn9wLp",
"outputId": "5c9fa3c2-4b81-43b6-ce98-f1fa67f2686d"
},
"execution_count": 73,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(5000, 13)"
]
},
"metadata": {},
"execution_count": 73
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at number of unique values\n",
"df.nunique()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YaMBm1lI94ip",
"outputId": "a6b35aa6-0311-4e86-aeaa-8e58dd230cb1"
},
"execution_count": 74,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Transaction_ID 5000\n",
"Timestamp 4423\n",
"Vehicle_Type 7\n",
"FastagID 4451\n",
"TollBoothID 6\n",
"Lane_Type 2\n",
"Vehicle_Dimensions 3\n",
"Transaction_Amount 20\n",
"Amount_paid 23\n",
"Geographical_Location 5\n",
"Vehicle_Speed 85\n",
"Vehicle_Plate_Number 5000\n",
"Fraud_indicator 2\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 74
}
]
},
{
"cell_type": "code",
"source": [
"for i in df.columns:\n",
" print(f'{i}: {df[i].unique()[:15]}')"
],
"metadata": {
"id": "1aHCyVdgaRgj",
"outputId": "bb2b9c33-1a52-4bbb-be24-f17a8be447bc",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 75,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Transaction_ID: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]\n",
"Timestamp: ['1/6/2023 11:20' '1/7/2023 14:55' '1/8/2023 18:25' '1/9/2023 2:05'\n",
" '1/10/2023 6:35' '1/11/2023 10:00' '1/12/2023 15:40' '1/13/2023 20:15'\n",
" '1/14/2023 1:55' '1/15/2023 7:30' '1/16/2023 12:10' '1/17/2023 17:45'\n",
" '1/18/2023 22:20' '1/19/2023 4:00' '1/20/2023 8:30']\n",
"Vehicle_Type: ['Bus ' 'Car' 'Motorcycle' 'Truck' 'Van' 'Sedan' 'SUV']\n",
"FastagID: ['FTG-001-ABC-121' 'FTG-002-XYZ-451' nan 'FTG-044-LMN-322'\n",
" 'FTG-505-DEF-652' 'FTG-066-GHI-987' 'FTG-707-JKL-210' 'FTG-088-UVW-543'\n",
" 'FTG-909-RST-876' 'FTG-021-QWE-765' 'FTG-011-ZXC-431' 'FTG-013-POI-104'\n",
" 'FTG-014-KJH-872' 'FTG-055-DCV-543' 'FTG-066-NBH-210']\n",
"TollBoothID: ['A-101' 'B-102' 'D-104' 'C-103' 'D-105' 'D-106']\n",
"Lane_Type: ['Express' 'Regular']\n",
"Vehicle_Dimensions: ['Large' 'Small' 'Medium']\n",
"Transaction_Amount: [350 120 0 140 160 180 290 110 100 130 60 150 340 300 70]\n",
"Amount_paid: [120 100 0 160 90 180 350 140 110 60 290 130 70 190 150]\n",
"Geographical_Location: ['13.059816123454882, 77.77068662374292'\n",
" '13.042660878688794, 77.47580097259879'\n",
" '12.84197701525119, 77.67547528176169'\n",
" '12.936687032945434, 77.53113977439017'\n",
" '13.21331620748757, 77.55413526894684']\n",
"Vehicle_Speed: [ 65 78 53 92 60 105 70 88 45 72 58 81 67 98 50]\n",
"Vehicle_Plate_Number: ['KA11AB1234' 'KA66CD5678' 'KA88EF9012' 'KA11GH3456' 'KA44IJ6789'\n",
" 'KA77KL0123' 'KA22MN4567' 'KA21OP8901' 'KA16QR2345' 'KA22ST6789'\n",
" 'KA12UV0123' 'KA35WX3454' 'KA38YZ6785' 'KA14AB0123' 'KA40CD4557']\n",
"Fraud_indicator: ['Fraud' 'Not Fraud']\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at info of dataframe\n",
"df.info()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "O3oWL-jC98DZ",
"outputId": "91be4257-eb2b-492e-9bdc-af61ceec957a"
},
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\n",
"RangeIndex: 5000 entries, 0 to 4999\n",
"Data columns (total 13 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Transaction_ID 5000 non-null int64 \n",
" 1 Timestamp 5000 non-null object\n",
" 2 Vehicle_Type 5000 non-null object\n",
" 3 FastagID 4451 non-null object\n",
" 4 TollBoothID 5000 non-null object\n",
" 5 Lane_Type 5000 non-null object\n",
" 6 Vehicle_Dimensions 5000 non-null object\n",
" 7 Transaction_Amount 5000 non-null int64 \n",
" 8 Amount_paid 5000 non-null int64 \n",
" 9 Geographical_Location 5000 non-null object\n",
" 10 Vehicle_Speed 5000 non-null int64 \n",
" 11 Vehicle_Plate_Number 5000 non-null object\n",
" 12 Fraud_indicator 5000 non-null object\n",
"dtypes: int64(4), object(9)\n",
"memory usage: 507.9+ KB\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at descriptive statistic methods of dataframe\n",
"df.describe().T"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 175
},
"id": "RRN5CXeR-Fib",
"outputId": "ce8d1f25-c7f1-4307-a9a3-9d57268d98b3"
},
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" count mean std min 25% 50% \\\n",
"Transaction_ID 5000.0 2500.5000 1443.520003 1.0 1250.75 2500.5 \n",
"Transaction_Amount 5000.0 161.0620 112.449950 0.0 100.00 130.0 \n",
"Amount_paid 5000.0 141.2610 106.480996 0.0 90.00 120.0 \n",
"Vehicle_Speed 5000.0 67.8512 16.597547 10.0 54.00 67.0 \n",
"\n",
" 75% max \n",
"Transaction_ID 3750.25 5000.0 \n",
"Transaction_Amount 290.00 350.0 \n",
"Amount_paid 160.00 350.0 \n",
"Vehicle_Speed 82.00 118.0 "
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" count | \n",
" mean | \n",
" std | \n",
" min | \n",
" 25% | \n",
" 50% | \n",
" 75% | \n",
" max | \n",
"
\n",
" \n",
" \n",
" \n",
" Transaction_ID | \n",
" 5000.0 | \n",
" 2500.5000 | \n",
" 1443.520003 | \n",
" 1.0 | \n",
" 1250.75 | \n",
" 2500.5 | \n",
" 3750.25 | \n",
" 5000.0 | \n",
"
\n",
" \n",
" Transaction_Amount | \n",
" 5000.0 | \n",
" 161.0620 | \n",
" 112.449950 | \n",
" 0.0 | \n",
" 100.00 | \n",
" 130.0 | \n",
" 290.00 | \n",
" 350.0 | \n",
"
\n",
" \n",
" Amount_paid | \n",
" 5000.0 | \n",
" 141.2610 | \n",
" 106.480996 | \n",
" 0.0 | \n",
" 90.00 | \n",
" 120.0 | \n",
" 160.00 | \n",
" 350.0 | \n",
"
\n",
" \n",
" Vehicle_Speed | \n",
" 5000.0 | \n",
" 67.8512 | \n",
" 16.597547 | \n",
" 10.0 | \n",
" 54.00 | \n",
" 67.0 | \n",
" 82.00 | \n",
" 118.0 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"summary": "{\n \"name\": \"df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 5000.0,\n \"max\": 5000.0,\n \"num_unique_values\": 1,\n \"samples\": [\n 5000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"mean\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1189.2304350110944,\n \"min\": 67.8512,\n \"max\": 2500.5,\n \"num_unique_values\": 4,\n \"samples\": [\n 161.062\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"std\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 683.9122043112384,\n \"min\": 16.597546634091863,\n \"max\": 1443.5200033252052,\n \"num_unique_values\": 4,\n \"samples\": [\n 112.44994955192665\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"min\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.856267428111155,\n \"min\": 0.0,\n \"max\": 10.0,\n \"num_unique_values\": 3,\n \"samples\": [\n 1.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"25%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 585.0419278066032,\n \"min\": 54.0,\n \"max\": 1250.75,\n \"num_unique_values\": 4,\n \"samples\": [\n 100.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"50%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1197.7357370611153,\n \"min\": 67.0,\n \"max\": 2500.5,\n \"num_unique_values\": 4,\n \"samples\": [\n 130.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"75%\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1788.5173372447357,\n \"min\": 82.0,\n \"max\": 3750.25,\n \"num_unique_values\": 4,\n \"samples\": [\n 290.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"max\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2366.195469524866,\n \"min\": 118.0,\n \"max\": 5000.0,\n \"num_unique_values\": 3,\n \"samples\": [\n 5000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at data types of columns\n",
"df.dtypes"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "PRni1U5T-HRB",
"outputId": "b5e4b93f-7752-42a8-e71c-5b850c9aebfa"
},
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Transaction_ID int64\n",
"Timestamp object\n",
"Vehicle_Type object\n",
"FastagID object\n",
"TollBoothID object\n",
"Lane_Type object\n",
"Vehicle_Dimensions object\n",
"Transaction_Amount int64\n",
"Amount_paid int64\n",
"Geographical_Location object\n",
"Vehicle_Speed int64\n",
"Vehicle_Plate_Number object\n",
"Fraud_indicator object\n",
"dtype: object"
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "markdown",
"source": [
"# Feature Engineering"
],
"metadata": {
"id": "ppPsYltUBLkK"
}
},
{
"cell_type": "code",
"source": [
"df.head(2)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 214
},
"id": "vIcdUS_9BKTZ",
"outputId": "8618db92-10ed-4c40-e5de-a391b91c45fd"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Transaction_ID Timestamp FastagID TollBoothID \\\n",
"0 1 1/6/2023 11:20 FTG-001-ABC-121 101 \n",
"1 2 1/7/2023 14:55 FTG-002-XYZ-451 102 \n",
"\n",
" Transaction_Amount Amount_paid Geographical_Location \\\n",
"0 350 120 13.059816123454882, 77.77068662374292 \n",
"1 120 100 13.059816123454882, 77.77068662374292 \n",
"\n",
" Vehicle_Speed Vehicle_Plate_Number Fraud_indicator ... Lane_Type_Regular \\\n",
"0 65 KA11AB1234 1 ... False \n",
"1 78 KA66CD5678 1 ... True \n",
"\n",
" Vehicle_Dimensions_Medium Vehicle_Dimensions_Small \\\n",
"0 False False \n",
"1 False True \n",
"\n",
" Vehicle_Speed_group_21-41 Vehicle_Speed_group_41-93 \\\n",
"0 False True \n",
"1 False True \n",
"\n",
" Vehicle_Speed_group_93-103 Vehicle_Speed_group_<= 21 \\\n",
"0 False False \n",
"1 False False \n",
"\n",
" Transaction_Amount_group_330 < Transaction_Amount_group_60-180 \\\n",
"0 True False \n",
"1 False True \n",
"\n",
" Transaction_Amount_group_<= 60 \n",
"0 False \n",
"1 False \n",
"\n",
"[2 rows x 29 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Transaction_ID | \n",
" Timestamp | \n",
" FastagID | \n",
" TollBoothID | \n",
" Transaction_Amount | \n",
" Amount_paid | \n",
" Geographical_Location | \n",
" Vehicle_Speed | \n",
" Vehicle_Plate_Number | \n",
" Fraud_indicator | \n",
" ... | \n",
" Lane_Type_Regular | \n",
" Vehicle_Dimensions_Medium | \n",
" Vehicle_Dimensions_Small | \n",
" Vehicle_Speed_group_21-41 | \n",
" Vehicle_Speed_group_41-93 | \n",
" Vehicle_Speed_group_93-103 | \n",
" Vehicle_Speed_group_<= 21 | \n",
" Transaction_Amount_group_330 < | \n",
" Transaction_Amount_group_60-180 | \n",
" Transaction_Amount_group_<= 60 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1/6/2023 11:20 | \n",
" FTG-001-ABC-121 | \n",
" 101 | \n",
" 350 | \n",
" 120 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 65 | \n",
" KA11AB1234 | \n",
" 1 | \n",
" ... | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1/7/2023 14:55 | \n",
" FTG-002-XYZ-451 | \n",
" 102 | \n",
" 120 | \n",
" 100 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 78 | \n",
" KA66CD5678 | \n",
" 1 | \n",
" ... | \n",
" True | \n",
" False | \n",
" True | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
"
\n",
" \n",
"
\n",
"
2 rows × 29 columns
\n",
"
\n",
"
\n",
"
\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "df"
}
},
"metadata": {},
"execution_count": 53
}
]
},
{
"cell_type": "code",
"source": [
"# # Let's seperate location column to long and lat\n",
"# df[['lat', 'long']] = df['Geographical_Location'].apply(lambda x: pd.Series(x.split(',')))"
],
"metadata": {
"id": "XkGCYoRFo9F0"
},
"execution_count": 13,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's find which percent are paid\n",
"df['Percent_paid'] = df.apply(lambda row: row['Amount_paid'] / row['Transaction_Amount'] if row['Transaction_Amount'] != 0 else 0, axis=1)"
],
"metadata": {
"id": "FUkOBL3hp1RE"
},
"execution_count": 76,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's convert fraud column to int data type\n",
"df['Fraud_indicator'] = df['Fraud_indicator'].replace({'Fraud':1, 'Not Fraud':0})"
],
"metadata": {
"id": "OwshZBDAqnXz"
},
"execution_count": 77,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's choose right group for age group\n",
"import matplotlib.pyplot as plt\n",
"for i in ['Vehicle_Speed', 'Transaction_Amount']:\n",
" age_salary_mean = df.groupby(by=i).aggregate({'Fraud_indicator': 'mean'})\n",
" plt.figure(figsize=(10, 3))\n",
" plt.plot(age_salary_mean.index, age_salary_mean['Fraud_indicator'], marker='o', linestyle='-', color='b', label='Mean Fraud Indicator')\n",
" plt.title(f'Mean Fraud Indicator by {i}', fontsize=16)\n",
" plt.xlabel(f'{i}', fontsize=14)\n",
" plt.ylabel('Mean Fraud Indicator', fontsize=14)\n",
" step_size = 2\n",
" plt.xticks(age_salary_mean.index[::step_size], fontsize=12, rotation=90)\n",
" plt.yticks(fontsize=12)\n",
" plt.grid(True)\n",
" plt.tight_layout()\n",
"\n",
" plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 597
},
"id": "KlvEqtKLHF6H",
"outputId": "7c0ebc22-2bf1-4ec2-ba48-8f324ec5f1fc"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAEiCAYAAADklbFjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACxMElEQVR4nOydd3hURReHf3c3m0oKoaYRei9BCaEmRIqA9N6rIopKNYgCgsqHSFdRinSpUpUivUpvgihFJARCqIYkpGd3vj/Gu8lm+93d7G5y3ufJk91779w5M7fsnDlnzhEYYwwEQRAEQRAEQRAEQVgdmb0FIAiCIAiCIAiCIIjCCindBEEQBEEQBEEQBGEjSOkmCIIgCIIgCIIgCBtBSjdBEARBEARBEARB2AhSugmCIAiCIAiCIAjCRpDSTRAEQRAEQRAEQRA2gpRugiAIgiAIgiAIgrARpHQTBEEQBEEQBEEQhI0gpZsgCIIgCIIgCIIgbAQp3QRBFCrKly8PQRAgCAJGjx5t8NjZs2erj3VxcSkgCQuOo0ePqttn6O/Fixf2FlUSsbGxEAQB5cuXN6uceI+sWrXKJnLlR7wOLVq00NguVf6iwKpVqyAIAoYMGWI3GQYNGgRBENCnTx+Tjp8/fz4EQUDNmjUl1ynem7GxsWaVGzJkiFXuaUe4J3fs2IFOnTohMDAQrq6u8PX1ReXKldG2bVt8/vnnuH79ut1ksyUtWrSAIAg4evSovUUhCMIGFL5RJkEQxH+sW7cOs2fPhqurq879K1asKGCJ7MfgwYP17tPXP0ThRxAEAABjzM6SOB7Dhw/H2rVrsWPHDiQmJqJ48eIGj1+5cqW6HGE+SqUSAwcOxIYNGwAAtWrVQsOGDeHh4YG4uDgcP34c+/btQ1JSEubMmWNnaQmCIMyDlG6CIAolDRo0wIULF7Bz50707NlTa/+pU6dw48YNhIeH4/z583aQsGApKKsuYTpBQUH466+/oFAo7C0KoYPIyEhUrlwZf//9N9atW4f33ntP77Hnz5/HtWvXoFAoMHDgwAKUkjNz5kx89NFHCAgIKPC6rcXixYuxYcMGeHt7Y+fOnYiOjtbYn5aWhl27diE7O9tOEhIEQUiH3MsJgiiUDBs2DIB+a/by5cs1jiOIgkahUKB69eqoVKmSvUUhdCAIgvr9IFqx9SHu79ChA0qXLm1z2fITEBCA6tWrw9fXt8DrthYbN24EALz33ntaCjcAeHp6olevXujfv39Bi0YQBGExpHQTBFEoqVOnDho0aID9+/cjPj5eY9/Lly+xefNmBAcHo02bNgbPk5OTgx9++AEtWrSAv78/3NzcUKFCBbzzzju4f/++zjLbtm3Dm2++idq1a6N48eJwd3dHhQoVMGzYMNy8eVNnmbxrMu/evYuBAweibNmycHNzQ6VKlTB58mRkZmZK6wwTyLvuOC0tDVOnTkWNGjXg6empsb7z3LlziImJQcOGDVG2bFm4urqiTJky6NixIw4ePKjz3NOmTYMgCJg2bZrRunWxa9cuREVFwdvbG76+vmjevDl27txpYYsNy/n06VOMGjUKISEhcHV1RUhICN5//32D69/XrFmD8PBweHp6wt/fH23btsWJEyf0Hm9s/WxaWhoWLFiAZs2aoXjx4nBzc0NoaCg6duyI9evXaxx77949zJo1C6+99hrKlSsHNzc3+Pn5oVmzZliyZAlUKpXOtorkX+eff03xvn371Aqlq6srAgMD0bt3b1y4cEGn7HnXp544cQIdO3ZEqVKlIJPJzPa6eP78OUaNGqVuV2hoKMaOHYvExESN41auXAlBEPD666/rPdfDhw+hUCjg4eGB58+fG617yJAhkMvluHTpEq5evarzmIyMDLVLdH7X8osXL6J///5q2f39/fH6669jz549Rus+cuQI2rRpg+LFi8PDwwOvvPIK1qxZo1dOQ2u6L168iMGDB6NChQpwd3eHv78/6tWrhw8//BD37t0zKotIeno65s6di0aNGsHPzw/u7u6oVq0aYmJiTOpPQzx+/BgAzJ60yP/u+vjjj1G5cmW4u7sjMDAQw4cP1/oNyEtiYiI+/fRThIWFwdvbG56enqhTpw6++OILpKWl6S0n5drev38fw4YNQ0BAANzd3VGlShV88sknSE9PN6vNBEE4IYwgCKIQERoaygCwEydOsO+++44BYF988YXGMcuXL2cA2CeffMLu3r3LADC5XK51ruTkZNaiRQsGgBUrVoxFRUWxHj16sGrVqjEArESJEuzSpUta5eRyOfP09GQNGjRg3bp1Y506dWIVK1ZkAJiXlxf77bfftMoMHjyYAWCjR49mPj4+LDQ0lPXq1Yu1atWKeXh4MACsS5cuZvXFkSNHGABmyqtePDYiIoKFh4czLy8v1q5dO9a7d2/WqlUr9XEtW7ZkMpmM1alTh7Vv35717NmTvfLKK+p6FixYoHXuTz/9lAFgn376qcG6o6KitPbNmzdPfe6GDRuyvn37sgYNGjAAbNy4cQwACw0NNbVLGGO598jKlSt1yjls2DAWHBzMypQpw7p168bat2/PfH19GQAWHh7OsrKytM75wQcfMABMJpOxyMhI1qdPH1azZk0mk8nY6NGjdbZPvPd0yR8XF8dq1qzJADBPT0/WunVr1qdPH9a8eXPm6+urVebzzz9nAFiFChVYy5YtWZ8+fVhUVBRzdXVlAFi3bt2YSqVSH799+3b1PQeADR48WOPv6dOn6mMnT57MADBBEFjTpk1Z3759WVhYmPq5Wb58uZb8UVFRDAB79913mUwmYzVr1mR9+vRhbdq0YevXrzd6jVauXMkAsE6dOrFKlSoxPz8/1qVLF9a1a1dWvHhxBoBVq1aNPXnyRF0mIyODlSpVigmCwG7evKnzvFOnTmUA2NChQ43KINKxY0cGgH3wwQc6969bt44BYIGBgSwnJ0e9fcGCBUwmkzEALCwsjPXo0YM1a9ZMfU2mT5+udS7x3pwyZQoTBIG9+uqrrE+fPqxRo0bqazV//nytcuK1zH9PM8bYV199pZajatWqrFevXqxjx46sRo0aWmUM3ZPx8fGsTp06DADz9/dnrVq1Yl27dlXLXL58eRYbG2u0P/XRsmVLBoDVq1ePvXjxwuRy4vujcePGrFGjRszT01P9bgoICGAAWNmyZdmtW7e0yl6/fp2FhIQwACwgIIC1bduWdezYkZUpU0Z93XTJIuXa/vXXX6x06dLqunr27Mnat2/PPDw8WOPGjVnjxo0ZAHbkyBGz+o0gCOeAlG6CIAoVeZXuFy9eMA8PD1a5cmWNY5o2bcoEQWB37twxqHT369ePAWAdOnRgjx8/1tg3f/58BoBVqVJFY6DNGGMbN25kL1++1NimUqnYokWLGABWq1YtDQWIMaahAH3yySca57x27Rrz8vJiANipU6dM7gspSjcAVrduXZaQkKDzuD179rCHDx9qbT916hTz8fFhCoWCPXjwQGOfVKX7999/Z3K5nMlkMvbTTz9p7Pvxxx+ZIAg2UboBsCFDhrCMjAz1vri4OBYUFMQAaCmNu3btUk+oHD9+XGPf//73P/U5TVW6lUqlemKhTZs2GoolY4ylp6ez3bt3a2w7d+4cu3btmlZb4+PjWb169RgAtnnzZq39xu6PvXv3MgDM3d2d7d+/X2PfDz/8wAAwhULB/vjjD419otINgC1atEjv+fUhKt0AWKNGjdjz58/V+xITE1mTJk0YANanTx+Ncp988oleBTkrK4uVLVuWAWAXL140WZYdO3aoJ9kyMzO19rdq1YoBYB9//LF626+//soEQWAlS5Zkx44d0zj+6tWrLDg4mAFgR48e1dgn3psKhYL98ssvOvvE19eXpaWlaezTp3Tv3LlTff02bdqkJfv169fZn3/+qf6u755UqVSsadOmDAAbPnw4S05OVu/Lzs5m48ePZwBYdHS0Vh2msn37dvU19/X1ZQMGDGDfffcdO3PmjM5+F8n77qpcuTK7d++eel96ejrr3r27+j7KS1paGqtUqRIDwCZPnqxRR2pqKuvbt6/OCRqp1zY8PJwBYL169WLp6enq7ffu3VPLQUo3QRReSOkmCKJQkVfpZoyx/v37awyAbty4wQCwFi1aMMaYXqX7zz//ZIIgsMDAQI0BZl7at2/PAGgNjg0hWjOuX7+usV0cNL/66qtaCjljjI0cOZIBYJ999pnJdeUdjOr7EwfpeY/NrziayqRJk3QqWVKV7jfffJMBYL1799ZZrnPnzjZRuoODg1lqaqpWuS+//FJtCc+LqHRNnDhRZ32iVdhUpVtU8gICAlhKSopZbdPFvn37GADWs2dPrX3GlG7R+jhu3Did+zt06MAAsLfeektju6h0v/baa5Jkzqt0X758WWv/1atXmSAITCaTsfv376u3x8fHM4VCwXx9fbUmvjZs2KC2iJpDdna2WlnPP/lz7949tcXz9u3b6u0REREMANuyZYvOc27evJkBYN27d9fYLt6b+vq7evXqOp9RfUq3eO/NnTvXpLbquyfFyZewsDCWnZ2tVU6pVLLatWszADonf0xl+fLlrESJElrvKXd3d9atWzd27tw5rTJ53107duzQ2v/48WPm6enJAGh4GX3//ffqSVVdpKSksNKlSzMXFxf277//qrdLubYnT55UT8w9e/ZMq0zeCQdSugmicELRywmCKNQMGzYM69atw4oVKxAVFaUOrGYsgNqePXvAGEO7du3g7e2t85gWLVpgz549OHXqFDp06KCx7++//8avv/6Kv//+GykpKVAqlQBy1y3evHlTZz7f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aJCMHz9eFi5cKIcPH7bJOCuvVba1+cTERMnPz2/yuE1Rk9cq64x8eXm5LF26VJ555hnJyMiwrG/btk1GjRolAwYMkDvvvFMOHDjwr8lquXdRUZHccccd4ufnJx4eHjJ48GB54403bOoOHDhg800KarJa7q22by2dOnVKkpOTpXv37nb/ENqtWzdJTk6W8vJyrVv9zysoKJBFixY5dJf4srIyycrKaoOunEsREdH6FHciIiIiIiItnD59Gr/99hvMZjO8vLxwzTXXNHlfCKKW4tBNRERERERkR1VVFS5cuICgoCCtWyG03/eDdy8nIiIiIiKyY82aNQgODta6Dfo/7fX94NBNRERERERE5CLuWjdARERERETUVjZv3uxw7eHDh13YCQEd4/3gNd1ERERERNRh6HQ6KIoCR8cgRVFQX1/v4q46ro7wfvCTbiIiIiIi6jD8/f0xZMgQrFixotnat956Cxs2bGiDrjqujvB+cOgmIiIiIqIOY9iwYTh69CgiIiKarc3IyGiDjjq2jvB+8EZqRERERETUYQwbNgxlZWU4e/Zss7UGg6HdfT1Ve9MR3g9e001ERERERB1GTU0N/vjjD/Ts2ROdOnXSup0OryO8Hxy6iYiIiIiIiFyEp5cTERERERERuQiHbiIiIiIiIiIX4dBNRERERERE5CIcuomIiIiIiIhchEM3ERFRG9u0aRMURcGmTZscziiKgujo6FbvGR0dDUVRWp2n/5eYmAhFUVBaWqp1K0RE1A5w6CYiIrrK9OnToSgKtm3b1mTdn3/+Cb1eD4PBALPZ3EbdtQ8nT55ESkoK+vfvD09PT/j4+CA4OBgTJkzA8uXLUVNTo3WLREREbcJd6waIiIj+bR588EFs27YNb7/9Nu67775G67Zt2waz2YxZs2bBy8vLpT0VFxdDr9e7dA9n+fbbbxEdHY2KigpERUUhLi4OPj4+OHnyJLKzs7F7925MnjwZ/fr107pVIiIil+PQTUREdJUxY8YgODgYX375JU6ePImgoCC7dW+//TaAy0O6q4WFhbl8D2dZsGABKioqsHnzZsyYMcPm+by8PAQGBmrQGRERUdvj6eVERERXURQFs2fPxqVLl5CWlma35siRIygoKMDgwYNxyy23AAA++eQTjB07Fv7+/vD09MSgQYOwatUq1NfXN7rX559/jhEjRkCv1yMgIACz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1+tbVf/aa68hKioKM2fOxMcff4z+/fujoKAAhYWFGDlypOXTdyIioubwk24iIqJm+Pr6Ytq0aQAAo9GIu+66y6YmNTUVe/futdxpe/Xq1fj0008td8y+//77nd6Xp6cn9u7di1WrVsHb2xsbN27E+vXrUVxcjKSkJFx33XXNHsMVfe/atQtPP/003N3dsXPnTqxcuRJbt26Fp6cnnnjiCXz//fcIDw+3yYWEhCAnJwdeXl547bXXsHPnTkRHRyM7Oxu33nqrVa3RaERubi5WrFiBzp07Y+vWrVi7di3y8/MxcOBAbN68GYGBga2uHzRoEHJychAbG4uMjAysW7cOnTt3Rk5Ojs1d14mIiJqiiL1zrIiIiIjaSGlpKYKDgzFr1izLjdaIiIj+K/hJNxEREREREZGLcOgmIiIiIiIichHeSI2IiIiaVFpa6tBp3waDAfPnz3d5P0RERO0Jr+kmIiKiJmVlZWH06NHN1vXp0welpaWub4iIiKgd4dBNRERERERE5CK8ppuIiIiIiIjIRTh0ExEREREREbkIh24iIiIiIiIiF+HQTUREREREROQiHLqJiIiIiIiIXIRDNxEREREREZGLcOgmIiIiIiIichEO3UREREREREQuwqGbiIiIiIiIyEX+B1TG3nOpa446AAAAAElFTkSuQmCC\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAEiCAYAAAD6XIHQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOrElEQVR4nO3dd1hTZxsG8Dtho4DgBFHcWuvAqmhduPfee7ZatVZrP7Vaa+1wVWvVDltHUeuqpe49Kop1D7TOWhVBQHGCgiKE9/vjbQIxAZNABnD/rutckLPy5OQkJ895l0IIIUBEREREREREBlNaOwAiIiIiIiKinIbJNBEREREREZGRmEwTERERERERGYnJNBEREREREZGRmEwTERERERERGYnJNBEREREREZGRmEwTERERERERGYnJNBEREREREZGRmEwTERERERERGYnJNBEZrVSpUlAoFFAoFBg7dmym686dO1ezrr29vYUitJyQkBDN68tsevLkibVDNUl4eDgUCgVKlSpl1Hbqc2TFihVmietV6vehcePGWvNNjT8vWLFiBRQKBQYPHmy1GAz57Lw6vfoek2lyw2fj3r17cHR0hEKhQM2aNa0dDhHlQbnvly0RWdSaNWswd+5cODo66l3+yy+/WDgi6xk0aFCGyzI6PpT7KRQKAIAQwsqR2B59n5m7d+9iz549GS6vVKmS2ePKDUqVKoXbt2/j1q1bOTphzsyqVauQnJwMADh79izOnz+P6tWrWzkq27RixQoMGTIEgwYNsthNTqK8gMk0EZmsVq1aOH36NLZs2YIePXroLD969CiuXr2K2rVr49SpU1aI0LL4A8X2FC9eHFeuXIGDg4O1QyE99H1mQkJCNMk0P1Pmkxs+G+qbtcWLF0dUVBSWL1+ORYsWWTkqIspLWM2biEw2dOhQABmXPi9fvlxrPSJLc3BwQKVKlVC2bFlrh0JkU3L6Z+Ovv/7C1atX4enpqbkGrVmzBklJSVaOjIjyEibTRGSyqlWrolatWti7dy+ioqK0lj179gwbNmyAr68vWrZsmel+UlJSsGzZMjRu3BheXl5wcnJC6dKlMXLkSERGRurdZuPGjXjnnXdQpUoVeHp6wtnZGaVLl8bQoUNx7do1vdsMHjxY04731q1bGDBgAIoVKwYnJyeULVsWU6dONesPsfTtehMTEzFt2jS88cYbcHV11aqGefLkSUycOBEBAQEoVqwYHB0dUbRoUXTo0AH79+/Xu+/p06dDoVBg+vTpr31ufbZv347AwEC4ubnBw8MDDRs2xJYtW7L4ijOP8/79+xg9ejRKlCgBR0dHlChRAmPGjMm0ffmqVatQu3ZtuLq6wsvLC61bt0ZoaGiG67+uXWhiYiIWLFiABg0awNPTE05OTvDz80OHDh2wdu1arXVv376NOXPmoGnTpihZsiScnJxQoEABNGjQAD///DNSU1P1vla1V9v+hoeHa62/Z88etG/fHkWKFIGjoyN8fHzQq1cvnD59Wm/sjRs3hkKhQEhICEJDQ9GhQwcULlwYSqXS6BLdhw8fYvTo0ZrX5efnhw8//BCPHz/WWi8oKAgKhQKtWrXKcF/R0dFwcHCAi4sLHj58aFQcr5P+/ImIiMCwYcNQokQJODg4aLX9tuT3Q2pqKpYsWYL69eujQIECcHBwQJEiRVC9enWMGTNG532+fPkyPvvsM9SvXx/FixeHo6MjChYsiObNm2PDhg2Zvv6oqChMmDABVatWhZubG/Lly4cKFSpg8ODBOHr0KIC0tvC3b98GAJQuXVrrvAsJCQHw+s/GnTt3MGbMGJQvXx7Ozs7w8PBA/fr18fPPP0OlUumsn74NfkJCAiZPnoxy5crByckJxYoVw6BBg3SuE1mxbNkyAEC/fv3QokULlCtXDo8ePcKmTZsy3EZ9DABg9erVCAgIQP78+VG4cGH06dMHERERAGSTjO+//x7+/v7Ily8fChUqhMGDByM2NjbDfRv7+VX3K/Hq+aGW/nzMaL6h52mpUqUwZMgQAMDKlSvZBwFRdhJEREby8/MTAERoaKj48ccfBQDx1Vdfaa2zfPlyAUB88skn4tatWwKAsLOz09lXfHy8aNy4sQAg8ufPLwIDA0X37t1FxYoVBQBRsGBBcfbsWZ3t7OzshKurq6hVq5bo2rWr6NixoyhTpowAIPLlyyf++usvnW0GDRokAIixY8cKd3d34efnJ3r27CmaN28uXFxcBADRuXNno47FwYMHBQBhyNepet06deqI2rVri3z58ok2bdqIXr16iebNm2vWa9asmVAqlaJq1aqibdu2okePHuKtt97SPM+CBQt09v3ZZ58JAOKzzz7L9LkDAwN1ls2fP1+z74CAANGnTx9Rq1YtAUCMHz9eABB+fn6GHhIhRNo5EhQUpDfOoUOHCl9fX1G0aFHRtWtX0bZtW+Hh4SEAiNq1a4uXL1/q7PODDz4QAIRSqRSNGjUSvXv3FpUrVxZKpVKMHTtW7+tTn3v64o+IiBCVK1cWAISrq6to0aKF6N27t2jYsKHw8PDQ2ebLL78UAETp0qVFs2bNRO/evUVgYKBwdHQUAETXrl1FamqqZv1NmzZpzjkAYtCgQVrT/fv3NetOnTpVABAKhULUr19f9OnTR/j7+2s+N8uXL9eJPzAwUAAQo0aNEkqlUlSuXFn07t1btGzZUqxdu/a171FQUJAAIDp27CjKli0rChQoIDp37iy6dOkiPD09BQBRsWJFERsbq9nmxYsXonDhwkKhUIhr167p3e+0adMEADFkyJDXxqBPZp8p9fnTt29f4eXlJYoVKya6desmunbtKj766CPNepb8fhgyZIgAIJydnUXz5s1Fnz59RKtWrUT58uUFALFp0yat9YcNGyYAiEqVKolWrVqJXr16ibffflsolUoBQHz44Yd6j8v+/ftFgQIFBABRpEgR0alTJ9GjRw9Ru3Zt4eDgIAYNGiSEECI0NFQMGjRI5MuXTwAQ3bp10zrvrly5IoTI/LNx8uRJ4eXlJQCIkiVLil69eonWrVsLZ2dnAUC0atVKJCUlaW2jPp86d+4sqlWrJgoUKCA6dOggOnXqJIoUKaJ5ridPnuh9fcaIj4/XvD719WHGjBkCgGjRokWG26nPq48//ljY29uLpk2biu7du4uSJUsKAKJEiRLi0aNHomfPnsLZ2Vm0bt1adOnSRRN/tWrVdF63EKZ9ftXfkbdu3dIbq/p8fPU71JTz9KOPPhL169cXAETZsmW1zodZs2a95mgTUWaYTBOR0dIn00+ePBEuLi6iXLlyWuvUr19fKBQKcePGjUyT6b59+woAon379uLevXtay7799lsBQJQvX16kpKRoLVu/fr149uyZ1rzU1FTxww8/CADizTff1EpshBBaic0nn3yitc+///5b8+Ps6NGjBh8LU5Jp9Y+ymJgYvevt3LlTREdH68w/evSocHd3Fw4ODuLOnTtay0xNps+fPy/s7OyEUqkUv//+u9ay1atXC4VCYZZkGoAYPHiwePHihWZZRESEKF68uACgkwxu375dkwgdPnxYa9nMmTM1+zQ0mVapVJobBi1bttRKGIUQ4vnz52LHjh1a806ePCn+/vtvndcaFRUlqlevLgCIDRs26Cx/3fmxa9cuTTK2d+9erWXLli0TAISDg4O4ePGi1jJ1Mg1A/PDDDxnuPyPq5AeAqFu3rnj48KFm2ePHj0W9evUEANG7d2+t7T755BMBQHzwwQc6+3z58qUoVqyYACDOnDljdExCGJZMAxD9+/fXOn/Ss9T3w+3btwUA4evrq/fzfPnyZXH79m2teSEhIeLGjRs66169elX4+voKAOLEiRNayyIiIjQ3mz7++GOdhO7evXsiNDRUa97rkrWMPhsvXrzQbPvee+9p3di6ceOGKFWqlAAgpkyZorVd+vOpVatWIi4uTrPs0aNHmuRy5syZeuMxxpIlSwQA4e/vr5l3584dzXdZeHi43u3U8RUsWFCEhYVp5icmJooGDRoIAKJq1aqibNmyWvu4f/++KFeunAAgVq9erbVPUz+/WU2mjb2Oqd8f9U0XIsoeTKaJyGjpk2khhOjXr58AIEJCQoQQ8kchANG4cWMhhMgwmb58+bJQKBTCx8dHxMfH632utm3bCgBi27ZtBsf39ttvCwDi0qVLWvPVP0Jq1qyp80NaCCHee+89AUB88cUXBj9X+h/+GU3qH0Pp1301ITTU5MmT9SZPpibT77zzjgAgevXqpXe7Tp06mSWZ9vX1FQkJCTrbzZ49WwCy5Dq95s2bCwBi0qRJep9P/UPd0GR68+bNAoDw9vYWT58+Neq16bNnzx4BQPTo0UNn2euS6WbNmglA1gLQp3379gKAePfdd7Xmq5Pppk2bmhRz+uTn3LlzOssvXLggFAqFUCqVIjIyUjM/KipKODg4CA8PD52Edd26dQKAePvtt02KSQjDkmkvLy+TSziz8/vh5MmTApCl+9nh559/FgDEhAkTtOaPGzdOABAdOnQweF+mJtO//vqrACB8fHz03qwIDg4WAISbm5t4/vy5Zr76fMqXL5/em4Hr16/P0vmaXp06dQQA8d1332nNV18vMvoezOzm08aNGzXLX72RJoQQ33zzjQB0a1yY+vnNajJt7HWMyTSRebA3byLKsqFDh2LNmjX45ZdfEBgYqOkM5nUdj+3cuRNCCLRp0wZubm5612ncuDF27tyJo0ePon379lrL/v33X+zevRv//vsvnj59qmnHd+/ePQDAtWvXULlyZZ19tm/fXqstq9obb7wBACa368toaKxy5cppPS5SpAgaNmyY6b4ePnyIHTt24OLFi3j8+LFm+Jfr168DQIbtPo2lbj/Zv39/vcsHDRpklrbTzZo1g6urq858fe9BSkoKjhw5kmmcAwcORFhYmMHPv3v3bgBA3759kT9/foO3S0pKwt69e3Hq1CnExsYiKSkJQgg8ffoUgPHvS0pKCv766y8AyHC852HDhmH79u04ePCg3uXdu3c36jlfVb16dfj7++vMr1q1KmrUqIGzZ8/i8OHD6Nu3LwDAx8cH3bt3x7p16/Drr7/ivffe02zzww8/AADef//9LMX0Os2bN4eHh0em61ji+6FSpUpwc3PDzp07MWPGDPTt2xelS5d+bfzPnj3Drl27cO7cOTx48AAvX74EAMTExGhiS099vg4fPvy1+84q9XdC79694eTkpLO8a9eu8PT0xOPHj3HmzBnUr19fa3mtWrXg7e2ts11Wv1/VLl68iBMnTsDJyQn9+vXTWjZ06FDs3LkTK1aswLRp06BU6u8aqG3btjrzypcvDwCwt7fX28+Henl0dLRmXnZ8fk1lrusYERmHyTQRZVmTJk1QunRpBAcHY8GCBVi1ahXc3d1f+yP/5s2bAGSv3+qevzNy//59zf8qlQrvv/8+fv7550zH7o2Pj9c7v2TJknrnu7u7AwBevHiRaSwZMbTTp9eN+bp06VJ8+OGHSEhIyHCdjF6bse7cuQMAGSYAhiQGpjDmPXj48KHmcXbFqe6cyZgxi48fP45evXppOinSx9j3xZDXpu5tOaMfx1kdQzizY1e6dGmcPXtWc56offDBB1i3bh1++OEHTTJ94cIFHDlyBEWLFs1ygv86mb1mS34/uLm5ISgoCEOGDMHUqVMxdepUeHt7o27dumjdurXemzXbtm3DkCFDMu2c7dXYTDlfTaU+zzI6LxQKBUqXLo3Hjx/rPSfN9f2qpr5WdO7cGZ6enlrLOnbsiEKFCuH27ds4cOAAWrRooXcf+mJUv0/e3t6wt9f9eay+4Wvsd9PrPr+mMvdxJiLDsDdvIsoydQ+uiYmJGDRoEO7evYvevXvDxcUl0+3UvR/7+/tj0KBBmU516tTRbLdw4UL89NNPKFq0KNauXYvw8HA8f/4cQjZdQZ8+fQAgwx/SGZVWWEpmx+XMmTMYMWIEkpKSMGfOHFy+fBnPnj1DamoqhBD4+eefAWT82jLyak/T1mbt98BYiYmJ6Ny5MyIiIjBkyBCcPHkSjx49QkpKCoQQmpJEY9+X7PC6z1l2ePV11a1bFwEBAbh48SIOHToEIK1Uevjw4XB0dDRrPJm9Zkt/P3Tr1g2RkZFYtWoV3n33XXh6emLTpk0YMWIEypUrh7///luzblRUFHr16oWHDx9i4sSJOH/+POLi4qBSqSCE0IyvbY3zKLuY87P98uVLrF69GgBw6tQpNGjQQGtq0qSJpgZCZjdoM4vRVr6bXvedbStxEuV1LJkmomwxePBgfP7559i2bRsAw8aWLlGiBACgfv36+P777w1+LvXwMT///DM6duyos1xdFTon+v333yGEwJgxYzBx4kSd5Rm9NnXyoq5u/Cp1ydarihcvjhs3biA8PBxvvvmmzvKMhm2xpIIFC8LJyQlJSUnZFqe6VOfq1asGrX/48GHcu3cPb731lt5x1U0959K/tps3b6JatWo666hrcBQvXtyk53idW7duZbhMfVx9fX11ln3wwQfo378/vv/+e1SvXh1r1qyBvb29VrVva7DG94OHhwcGDBiAAQMGAAAiIyMxZswYbNmyBe+//77mhsO2bdvw/PlzdOnSBXPmzDE4tpIlS+LatWu4evWqTrOR7KY+z9TnnT7qc8Zc52RGtmzZggcPHgCQ8WUW4+bNm/Ho0SN4eXmZLZ6sfH5N/c4mItti0m2tMmXKYPTo0dkdCxHlYCVLlkSnTp1QsGBB1K1bV6skOSNt2rQBAGzdutWoKmmPHj0CAPj5+eksu3TpklFtZ21NZq/txYsX+OOPP/Rup/6hduXKFb3Ld+zYoXd+YGAgAGDNmjV6l69atSrzgC3A3t5e0y4zozh//fVXo/bZunVrAMC6desyrU6vpn5fMqpaqS4t08fBwQGAbF/5Knt7ezRo0ABAxs0E1Ml7kyZNXhunKS5cuIALFy7ozL906RLOnj0LpVKJRo0a6Szv2bMnvL29sXnzZsyYMQMJCQno0qULfHx8zBKnoWzh+6FEiRL4/PPPAUDr+TKLTQihM7a5mvp8Xbp0qcExqJM1feddZtTjDv/22296v5c3bdqEx48fw83NDTVr1jRq31mlHlt60qRJmpoG+qaAgAAkJSVl+rnMDln5/Gb2nX337l2cPXs2GyM1/XwgosyZlEw/ePBA0yaDiEht48aNePDgAY4dO2bQ+jVq1NBUkezatave0sWEhASsWbNG02kQkNbByg8//KBVFS4mJgYDBw7M0T8W1K9t5cqVWiUWL168wKhRozIsRWzatCmUSiX27NmjKQUD5A/0RYsWZZiEjxkzBnZ2dtiwYQM2bdqktWz9+vXYvHlzFl9R9hg3bhwA4LvvvsPRo0e1ln399ddG//Ds2LEjatSogejoaPTo0UOn/eqLFy+wa9cuzWP1+3LgwAFcvnxZa90lS5bgt99+y/C51KW6ly5d0rv8o48+AgAsXrwYBw4c0Fq2YsUKbN26FQ4ODhg7dqyBr844QgiMHDkSjx8/1syLi4vDyJEjIYRAt27dNLVI0nNwcMDIkSORkpKCefPmATB/x2OGsOT3w7lz5/Dbb7/h+fPnOsvUtXTSJ87q2IKDgzWdjQGynfe0adN0zm218ePHw83NDVu3bsXUqVM1HRKqxcbGajrpU3vdeZeRHj16oGTJkoiOjsb48eO1jtetW7c05+uYMWPg7Oxs1L6zIiIiAvv37weQcWePagMHDgQAvbVIspupn9/mzZsDAObMmYMnT55o5t+/fx8DBw7Es2fPsjVO9fnw6vcXEWWNScl0tWrV8M8//2R3LESUBwUFBaFZs2bYtWsXKlasiICAAPTq1Qs9e/ZEQEAAvLy80L9/f60f+lOmTIGjoyOWLl2KihUrolevXmjTpg3Kli2LpKQkdOnSxYqvKGuGDBkCPz8/nDt3DqVLl0aXLl3QvXt3+Pn5ITg4OMOEqkSJEhgzZgxSU1PRrFkzNGnSBN26dUP58uXxv//9Dx9//LHe7fz9/TFr1iyoVCp07doVdevWRb9+/RAQEIA+ffpoklhr69ChA0aPHo1nz56hYcOGaNKkCfr27YsqVapg8uTJRieaSqUSmzZtQsWKFbFr1y6ULFkSrVq1Qt++fREYGIhixYph5MiRmvVr1KiBTp064enTp6hRowZatWqFPn364I033sB7772HKVOmZPhc3bp1AyB/PPfq1QvvvPMO3nnnHU0C36ZNG0ydOhUvXrxAixYt0LBhQ/Tr1w81a9bEkCFDYGdnh59++klv9fbs0LFjR9y9exdlypRB165d0a1bN5QpUwahoaEoX758pk0wRowYoenxuVq1anpLsC3Nkt8Pt2/fRu/evVGwYEE0aNAAffr0QY8ePVCpUiV8+umncHR0xNdff61Zv0OHDqhZsybu3LmDChUqoH379ujVqxfKli2LOXPmYNKkSXqfp2TJkggODoabmxtmzJiBEiVKoEuXLujZsyfq1KkDX19fTamtmvq869+/P7p166Y5717X47yTkxOCg4Ph5eWFxYsXo1y5cujduzfatWuHypUr49atW2jVqhU+++yzLB494wQFBSE1NRW1a9fW3JTISO/eveHo6Ijz58/jzJkzZo3L1M/v6NGj4efnh7Nnz6JixYro3LkzWrRogfLly+Pu3bvo3LlztsZZt25d+Pj44Ny5c3jrrbcwaNAgvPPOO5g7d262Pg9RXmNSMj1p0iRs27Yt27v5J6K8x83NDXv37sXatWvRvHlzREREYNOmTfjzzz/x/Plz9OvXD5s2bdL0iAoAderUwenTp9GxY0ckJCRg69atuHHjBsaMGYNjx47l6JozBQoUwOnTpzFq1CgUKFAAu3btwrFjx9CyZUucPXtW7xBGat9++y2++eYbVKhQAUePHkVISAgqV66M48ePo1WrVhluN2HCBGzZsgUNGjTAxYsXNSUpwcHB+OCDD8zwKk3z/fff45dffkGNGjVw/Phx7Ny5E97e3jhw4IBJPzz9/Pxw+vRpzJkzB2+++SaOHTuGjRs34vbt2wgMDNRp0/r7779j7ty5qFixIo4cOYK9e/eiZMmS2LNnD955550Mn+fLL7/ExIkTUaBAAWzevFnTe336mgdffvkldu3ahTZt2uDKlSvYsGGDptT86NGjBvVBYCpPT09NT+WnTp3C9u3bkS9fPnzwwQc4fvw4ihQpkuG2RYoU0ZyTttL8y5LfD3Xr1sXs2bPRpEkTREdHY+vWrdi7dy/s7OwwevRoXLhwQVNFG5DVgkNCQjBlyhQUL14cBw4cQEhICGrUqIFjx45prfuqli1b4uLFixg7diwKFCiA3bt3Y9euXXjy5AkGDBig01Z95MiRmDVrFvz8/LBz507NeZe+RDwjtWvXRlhYGEaPHg07Ozts2rQJoaGhqFGjBhYvXozt27ebvZO59IQQCAoKAvD6UmlAtmVWD3/1upEisoMpn98CBQrgr7/+0pSi79q1Czdu3MDw4cNx9OjR1w79ZixHR0fs2bMHHTt2xJ07d7B69WosX748wyZARGQYhTChy8hVq1Zhw4YN2LNnDzp37ozatWujaNGiese7U39JEBERUe7yzz//oFKlSvDw8EBUVJTescOJiIhyK5OSaaVSCYVCoTN0Q/pkWggBhUKhGaKAiIiIcpfevXvjt99+w+TJkzFz5kxrh0NERGRRJg2Npa5qQ0RERHnL1q1bsWXLFly6dAknTpxAsWLF9A7jRkRElNuZlEwb0l6FiIiIcp+zZ8/il19+gZubG5o3b4758+ejQIEC1g6LcpjNmzcbNVpARkNPERFZk0nVvImIiIiITDV9+nTNWNyG4M9VIrJFWUqmw8PDsWbNGoSFhSE+Ph7u7u7w9/dHv379UKpUqWwMk4iIiIiIiMh2mJxML1y4EBMnTkRKSorO3UIHBwd8/fXXRo/7SURERERERJQTmJRMb9++HR07dkShQoXw4YcfokmTJvD29sbdu3dx8OBBzJ8/Hw8fPsTWrVvRrl07c8RtdqmpqYiOjoabm5veIb+IiIiIiIgodxFC4OnTp3Bzc4O7u3umuaBJyXTTpk1x4cIFhIWFwdfXV2d5ZGQkatSogerVq+PAgQPG7t4m3LlzByVKlLB2GERERERERGQFcXFxcHd3z3C5Sb15nz17Fv369dObSANAiRIl0LNnT6xdu9aU3dsENzc3APLGQGYH0JqSk5Oxd+9etGzZEg4ODtYOh/Iwnov62dJxMWcseeV1WmL/ORWPCxGZC79fLC+vH/P4+HiUKFECkZGRmpwwIyYl0y9fvkS+fPkyXSd//vx4+fKlKbu3CerifHd3d5tOpl1dXeHu7p4nT3SyHTwX9bOl42LOWPLK67TE/nMqHhciMhd+v1gej7n0uireAKA0ZccVKlTAtm3bkJKSond5SkoKtm/fjgoVKpiyeyIiIsohVCrg0CEFDh8ujkOHFFCprB0RERGRZZiUTA8cOBDXrl1Dq1atcObMGa1lp0+fRps2bXDt2jUMGjQoW4IkIiIi27NxI1CqFNCihT3mz6+FFi3sUaqUnE9ERJTbmVTNe+zYsTh8+DC2bt2KgIAAuLq6okiRIoiNjUViYiKEEOjUqROHxiIiIsqlNm4EuncHXu3GNCpKzg8OBrp2tU5sRERElmBSybSdnR02b96MFStWoHHjxnB0dERERAQcHR3RpEkTrFy5Eps2bYJSadLuiYiIyIapVMDYsbqJNJA2b9w4sMo3ERHlaiaVTKsNHDgQAwcOzK5YiIiIKAcIDQXu3Ml4uRBAZKRcr3Fji4VFRERkUSYVHa9atQoXLlzIdJ2///4bq1atMikoIiIisl0xMYat98MPwI4dhq9PRESUk5iUTA8ePBibN2/OdJ2tW7diyJAhpuyeiIiIbJi3t2HrBQcD7dsDPj5ym3btgE8/BTZtAm7f1l9NnIiIKKfIUjXvzKhUKraZJiIiymWEAP7++/XrFSgAtG0LhIUBV68Cd+8CO3fKSc3LC3jrLe2pbFmAPx+IiCgnMFsyfe7cOXh5eZlr90RERGRhL18C778PLF2aNk+h0C5hVijk3+XL03rzTkgALlwAzp5Nmy5eBB49Avbvl5OamxtQo4Z2gl2xImBvtl8sREREpjH40tS0aVOtxytWrEBISIjOeiqVCnfu3EF4eDh69uyZ5QCJiIjI+mJjgW7dgCNHZMI8Zw5QpozstTt9Z2S+vsCCBdrDYuXLB7z9tpzUkpJkQp0+wT5/Hnj6FDh8WE5qLi5A9eraCfabbwKOjuZ+1URERBkzOJlOnzgrFAqEh4cjPDxcZz2lUgkvLy/06NEDCxYsyIYQiYiIyJrCwoBOnYCICMDdHVi3TlbhBoDOnYGDB1Owa1cY2rTxR5Mm9rCze/0+nZyAmjXlpJacLKuEp0+wz52TJdvHj8tJzcEBqFpVO8GuVk0m3kRERJZgcDKdmpqq+V+pVGL69OmYNm2aWYIiIiIi2/D778DgwUBiIlC+PLB1K1CpUtpyOzsgMFAgISEKgYHVDUqkM6JOkKtWBQYNkvNSU4Hr17UT7LNngSdP0v5PH8sbb2gn2P7+suo4ERFRdjOpBdLBgwdRqlSpbA6FiIiIbEVqKjB9OvDll/Jxq1ayRNrT07JxKJWyzXTFikCfPnKeEEB4uHZyfeYMcP++rDp+8SKQfnTOChW0E+waNWTnZ0RERFlhUjIdGBiY3XEQERGRjXj6FBg4EFCPgvnRR8Ds2bbTCZhCAZQuLadu3eQ8IYDoaN0S7Dt3gH/+kdP69Wn7KFVKtyfxokWt8nKIiCiHytJl8c6dOzh48CCio6ORlJSks1yhUODTTz/NylMQERGRBd28KdtHX7woO/haulQm1rZOoQCKF5dThw5p82NjZbvr9An2zZuyZDs8HNi4MW1dHx/dBNvXN62HciIiovRMTqYnTJiAhQsXQqVSaeYJIaD474qj/p/JNBERUc5w8CDQvbscsqpYMWDTJqBuXWtHlTVFisgq6q1apc17/Fh2qpa+k7OrV2XJdnQ0sH172rqFCukm2GXKMMEmIiITk+mlS5fim2++QYsWLfDee++hW7duGDx4MFq1aoXDhw9j2bJl6Ny5M0aNGpXd8RIREVE2EwJYvBj44ANApQJq1ZJVvIsXt3Zk5uHpCTRpIie1Z890x8K+dAl48ADYu1dOah4eaWNhq/9WrIgsdb5GREQ5j0nJ9JIlS1CqVCns2rULSqUSAFCqVCn06tULvXr1Qs+ePdGiRQv06NEjW4MlIiKi7PXyJTBmDLBkiXzcr5+s2p3XhpjKnx+oV09Oai9e6I6FfeECEBcHhITISc3VVXcs7MqVORY2EeUsKhVw6JAChw8XR758CjRpwhuFmTEpmb569SoGDBigSaQBICUlRfN/YGAg2rVrh3nz5qF79+5Zj5KIiIiyXWysrNYdGiqrLc+eDUyYwCrMas7OspS+Vq20ecnJwJUrumNhJyYCx47JSc3RUXcs7KpV896NCiLKGTZuBMaOBe7csQdQC/Pny34jFi4Euna1dnS2yeQ20wUKFND8ny9fPjx8+FBrecWKFbF//36TAyMiIiLzCQuTHY1FRADu7nLYq7ZtrR2V7XNwAKpVk9PgwXKeSqV/LOy4ODlk15kzadvb2ckS61fHws6f3xqvhohI2rhR3lwVQnt+VJScHxzMhFofk5Lp4sWL486dO5rHZcuWxYkTJ7TWuXjxIvLly5e16IiIiCjb/f67TAQTE4Hy5YGtW4FKlawdVc5lZyePX6VKQN++cp4QwK1bumNhP3gA/P23nFaulOsqFPrHwrb0mN5ElDepVLJE+tVEGpDzFApg3Dh5A5ZVvrWZlEzXr18foaGhmsedOnXCV199hREjRqBjx444cuQIdu3ahW7qwR+JiIjI6lJTgenTgS+/lI9btpRjLzNpy34Khez1u0wZWaoDyB+lUVG6JdhRUcC1a3Jaty5tH6VL6/YkXqSIdV4PEeVeoaFAunJSHUIAkZFyvcaNLRZWjmBSMj1gwABER0fj9u3b8PPzw4QJE7B9+3YsXboUy5YtgxACpUqVwty5c7M7XiIiIjLBs2fAgAGyl24AGD8emDMHsDe5wRcZS6GQ7Q99fYGOHdPm37unOxb2rVtp0x9/pK1bvLhugl28ONu5E5HpYmKyd728xKRLaOPGjdE43W2J/Pnz4/jx49iyZQtu3LgBPz8/dOjQgdW8iYiIbMCtW7J63t9/y06xliwBBg2ydlSkVrQo0Lq1nNQeP9ZNsP/5R5ZiR0UB27alrVu4sG6CXbo0E2wiMoy3d/aul5dk2/1oBwcH9txNRERkYw4eBHr0AB4+BIoVAzZtAurWtXZU9DqenkDTpnJSe/oUOH9eO8G+fBm4fx/Ys0dOagUKpI2BrZ7Kl2d7RyLS1bChrDETFaW/3TQAlCgh1yNtJiXTcXFxuH37NsqVKwdXV1ed5QkJCbhx4wZKlSoFd3f3LAdJRERExhECWLwY+OAD2blMrVqyinfx4taOjEzl5gY0aCAntefPZY2D9An2338DT57IGykHD6atmy+f7Dk8fYL9xhuyh3Iiyrvs7OTwV5mVi44axZtx+ihfv4quL774AvXr14dKpdK7XKVSoX79+pgxY4ZJQSUlJWHSpEnw8fGBi4sL6tSpg3379r12u02bNqFVq1bw8fGBk5MTfH190b17d1y8eNGkOIiIiHKily+B994DRo+WiXS/fsDhw0ykcyMXFyAgQL7fS5YAp0/LEuxz54Dly+U58Pbbcr2EBOCvv4DvvgOGDAGqV5cJ+qvbv3hh7VdFRJbWtSuwdKnufBcX+Xfhwsw7KcurTCqZ3r17N1q0aAE3Nze9y93d3dGqVSvs3LkTc+bMMXr/gwcPRnBwMMaNG4fy5ctjxYoVaNu2LQ4ePIgG6W/HvuLvv/+Gp6cnxo4di0KFCuHu3bv45ZdfEBAQgGPHjqF69epGx0JERJSTxMbK0oXQUNlmdvZsYMIEtp/NSxwdZQm0vz8wdKicp1LJ3sLTl2CfOwfExwOnTslJzd4eePNN7RLs6tVlyTYR5V7qctKKFVPRrt1ZtGnjj9q17dGwoazx0rmzvLaoE2wyMZmOiIhA+/btM12nbNmyBpUmv+rkyZNYv3495s6di//9738AgIEDB6JKlSqYOHEijh49muG206ZN05n3zjvvwNfXF4sXL8ZPP/1kdDxEREQ5RViY7GgsIgJwdwfWrgXatbN2VGQL7OyAypXl1L+/nJeaCty8qTtU18OHsm32+fNAUJBcV6GQ42inT7D9/WXbbCLKHTZtkn/79xeoWjUKgYHV4eAAbNkC1K4NnDkDDBsGrFnDG7RqJiXTCoUCSUlJma6TlJSUYTXwzAQHB8POzg7Dhw/XzHN2dsawYcMwZcoUREZGokSJEgbvr0iRInB1dcWTJ0+MjoWIiCinCA6WPXQnJgLlygFbt8r2sEQZUSrluVKuHNCzp5ynHk/21QQ7Jga4ckVOa9ak7aNsWe0Eu0YN2bs4EeUs8fHAgQPy/44dU3HrVtqy0qXlNaZFC2DdOqBaNeDjj60Tp60xKZmuVKkSdu/eDSEEFHpuS6SmpmLXrl2oWLGi0fs+d+4cKlSooNNxWUBAAAAgLCzstcn0kydPkJycjLt372LBggWIj49Hs2bNjI6FiIjI1qWmAp9/DnzxhXzcsiWwfr3sDZrIWAoFULKknDp3TpsfE5M2VJf6b3g4cOOGnH7/PW3dEiV0h+ry9mZJFpEt27kTSE4GKlaUN2LTJ9MA0Lix7G9h5EhgyhTZFKRDB6uEalNMSqb79OmDjz76CEOHDsWCBQvg4eGhWRYXF4exY8fi33//xbx584zed0xMDLz1DGKmnhcdHf3afdStWxfXrl0DIMfAnjp1KoYNG5bpNklJSVql7fHx8QCA5ORkJCcnGxy/JanjstX4KO/guaifLR0Xc8aSV16nJfZvrGfPgCFD7LBli+xPdNw4FWbOTIW9vfxRZCm2dlwo+xUqJEulWrRImyergytw7lzadP26ApGRsnR7y5a0dYsWFahRQ8DfX/6tUUPAz48JNr0ev18sY+NGOwBKdOigyvCYDxsGhIUp8fPPdujbVyA0NAVvvmmFYM3MmHNNIURGo4ll/gRNmjTB0aNHUaBAAdSuXRvFixdHVFQUTp06hSdPnqBRo0bYt28fHIwcb6Fs2bKoWLEidu7cqTX/5s2bKFu2LL799luMGzcu030cO3YM8fHxuHnzJoKCgtCoUSPMmjUr01imT5+Ozz//XGf+2rVr9Q7/RUREZE337rli5swA3L7tAXt7FUaNOo+mTSOtHRblcYmJ9rh1yx03bxbAzZseuHGjAO7ccUNqqm7WnD//S5QpE4cyZZ6gbFn519s7AUqTxpohIlMlJysxcGBrPH/ugK+/PowKFR5nuG5KigLTp7+NixcLo2jRBMydewju7rnrRkdiYiL69u2LuLi41w7zbFIyDQAvXrzA1KlTsXTpUjx9+lQz393dHSNGjMAXX3wBJycno/dbpUoVFC1aFAfUlfb/c/nyZbz55pv46aefMGLECIP39/jxY7zxxhvo379/piXl+kqmS5QogQcPHtjsWNnJycnYt28fWrRoYfRNC6LsxHNRP1s6LuaMJa+8Tkvs31AhIQr06WOHhw8VKFZM4PffVahTx6TLebawleNCtikxEbh4UbsE++JFIDlZX4KdVnqt/lupkuxhnPImfr+Y3+7dCnTsaA9vb4Fbt1KgUmV+zB88AOrVs0d4uAJNmqRi+3ZVrhqvPj4+HoUKFTIomTb5q8nZ2Rnz5s3DnDlzcPXqVcTFxaFAgQKoWLEi7LIwore3tzeioqJ05sfExAAAfHx8jNqfp6cnmjZtijVr1mSaTDs5OelN/h0cHGz+g5sTYqS8geeifrZ0XMwZS155nZbYf2Z+/BH44AM5hEnNmsDmzQr4+tpGpmFL5wDZDg8PoH59Oam9fAlcuqTdydn588CzZwocOaLAkSNp6zo7y6G50rfBfvNNwIQyG8rB+P1iPtu3y7+dOyvg5OSgaSaU0TH39padXL79NnDwoBIff6zEokUWDNjMjDnPsnz1tbOzw5vZWFne398fBw8eRHx8vNadgBMnTmiWG+v58+eIi4vLrhCJiIgs7uVLmUT//LN83LcvsGwZx/uknMnRUfb8XaOGbIcJACkp+sfCfvoUOHFCTmoODvrHwmbLPCLjqFRp/Ruk73TwdapWBVavBrp0kR2TVa0KvPuuWUK0aTbXKqV79+5QqVRYsmSJZl5SUhKCgoJQp04dTU/eERERuHr1qta2sbGxOvsLDw/HgQMHUKtWLfMGTkREZCb37wPNm8tEWqEA5syRP2KYSFNuYm8vE+QBA4BvvwUOHQKePAH++Uf2UD9xovwceHnJDvbCwoBffgHefx+oVw9wc9PdnmUpRJk7cQK4d0/WIGnc2LhtO3cGvvxS/j96NBAamt3R2T6DSqabNm0KhUKBlStXwtfXF02bNjVo5wqFQqft8+vUqVMHPXr0wOTJkxEbG4ty5cph5cqVCA8Px/LlyzXrDRw4EIcOHUL6Jt9Vq1ZFs2bN4O/vD09PT1y/fh3Lly9HcnIyZs+ebVQcRERE6alUwKFDChw+XBz58inQpAmQhVZNBjt/HujUCbh9G3B3B9auBdq1M//zEtkCpRIoX15OvXrJeUIAERHaJdhnzsiE4PJlOa1enbaPcuV0h+oqWNA6r4fI1mzaJP+2aydrjBjrk0+ACxfk8HjdugGnTgF+ftkboy0zKJkOCQmBQqFAYmKi5rEh9I1BbYhVq1bh008/xa+//orHjx+jWrVq2L59Oxo1apTpdiNHjsSOHTuwe/duPH36FEWKFEHLli0xZcoUVK1a1aRYiIiINm4Exo4F7tyxB1AL8+cDvr7AwoVA167me97gYGDQINmBU7lyso3aG2+Y7/mIcgKFQv5Y9/OTVUzVYmK0E+yzZ2XS/e+/ctqwIW3dkiX1j4VNlJcIkZZMG1PFOz2FAggKkp+xc+fkzd+//gLy5cu2MG2aQcl0ampqpo+zm7OzM+bOnYu5c+dmuI6+hH769OmYPn26+QIjIqIsUalkNbCYGPnDtWFDy5TuZsXGjUD37vJHR3pRUXJ+cHDWE+pXj0v9+sBXXwFffCGXt2gB/PYb4OmZtechys28vWXpWvqaGw8eyB/46RPsf/+VSXZEBLB5c9q6xYrpJtglS3IsbMq9Ll0CbtyQnfm1bm36fvLlk5+l2rVlbapBg+TNq7wwzJ1tdP9JRES5Xlrpbtq87CzdNUc1bJVKxqxvEEkh5I/scePknXhTn0vfcXF2Bl68kP9/+CHw9dccGojIFIUKyZtRLVqkzYuLk+2t0yfYV68Cd+8CO3fKSc3LSzfBLls2byQJlPupbyY1by77HMiKkiXl9axJE+CPP+QN4WnTshyizeOlmYiIzM7cpbvmqoYdGqqd5L5KCCAyEhgzBqhVS3bgUqCA9l8Pj4zboWV0XNSJ9OjRwPz5psdPRLo8PIDAQDmpJSTIdp/pE+yLF4FHj4D9++Wk5uYmeyFPn2BXrMgbXpTzqJPp9M0lsqJ+feCnn2QP/Z99BlSpYt6mULbAoI/9qlWrTH6CgQMHmrwtERHlfIaU7n7wgayaacq4seZM1GNiDFtv8eLMl7u46CbZ7u6yBEzfcVHbulXeELD1qvBEOV2+fHLM3LffTpuXlCQT6lfHwn76FDh8WE5qLi76x8I2pUMnIkuIiJAd9ykUQIcO2bffoUPljamFC2XP+mXLys9GbmVQMj148GCtzsSEEK/tXEy9DpNpIqK8zZDS3agoWbXZ3V1Wq/T0NOyvu7ssFTZXNWxDOyRq1kzG/+SJrEKq/vv0qVz+/LmcDE3O1SIj5fEzdrgSIso6JyegZk05qSUnyyrhr46FnZAAHD8uJzUHBzn2bvoEu1o1DmlHtkE9tnT9+kCRItm773nzZHvs/fvl9ffUKaBw4ex9DlthUDIdFBSkMy84OBg7duxAs2bN0LBhQxQtWhT37t3D4cOH8eeff6J9+/bo1q1btgdMREQ5izEJZHy8nMLDs+e51dWwTU1IGzaU1cWjovQn7AqFXL5nj/5kXaWSr+fVJPvJE+DPPwFDKn4Zm4ATkfmoE+SqVWUnSwCQmgpcv67bk/iTJ2n/q9nZyR750yfY/v5Zb69KZCx1L97ZVcU7PXt72WlmnTqyw7/u3YF9+3JnTQ2DkulB6m+L/2zevBn79u3Dnj170CJ9jw7/2bt3Lzp27Ih33nkne6IkIqIcy9DS3U2bgMqVZRvFx48z/pv+//v3gZSU1+/b1ITUzk5WVdN3b1hdQWvBgoxLve3sZCm6vl64/fwMS6Y5XA+RbVMqZZvpihWBPn3kPCHkTcH0PYmfOQPExsqq4xcvpn3+FQo5jnb6BLtGDVn7hsgcHj5Ma6Zg6pBYr+PlJZsq1akjn2vMGNmeOrf1jm9SVwkzZ85Ez5499SbSANCyZUv06NEDX331FTp27JilAImIKGcztHS3Qwfjq2KHhMieQ18nKwlp166yJ+B9+7Tn+/rKRNrU9tiGHpeGDU3bPxFZj0IBlC4tJ/V3hBD6x8KOjAT++UdO69en7aNUKd2exIsWtcrLoVxm+3ZZc6paNaBMGfM9zxtvAOvWyev7kiWy7fSIETlviMzMmJRMX7p0KcNEWq1EiRLYuHGjSUEREVHuoS7d7d5dd5khpbuZsURCKgRw7Zr8/6uvVHj06BzatPFHkyb2WfoBkP64KBTa8Wf1uBCR7VEoAB8fObVvnzb//n3dsbBv3JAl2+HhspNFNR8f3QTb1zf3lfaReal78TZXqXR67doBs2cDkybJ0unp0+U5r5adQ2Rag0nJtJubGw6n78JQj8OHD8ONDUCIiAjyIrl0KfBq65+slu5mlpCqZTUhvXJF9nrq5AS8/34qQkKiEBhYPVuS3K5dZW/j+sbfzspxIaKco3BhoGVLOak9eaJ/LOzoaDlt3562bqFCugl2mTJMsEm/xETZzwdgnvbS+kyYIM/Z0FDtRBrIviEyrcWkZLpz585YunQpRo4cic8//xxF0nUBFxsbi2nTpuHYsWMYPnx4tgVKREQ5W6FC8m+pUsDMmdlXvSujhNTRUVYvy+rFedcu+bdxY8DVNWv70qdrV9nbaW6q9kZEWVOggPzOSd9x4rNnumNhX7oEPHgA7N0rJzUPD92xsCtU4PcKyfPk+XPZb4elhqxKTQVu3tS/LDtG3rAmk5LpWbNm4ejRo/j555+xYsUKlCtXDkWKFEFsbCz+/fdfJCUloUqVKpg1a1Z2x0tERDnUiRPyb/PmaZ30ZBd1QnrwYAp+++0yli2rhpcvgQYNsr7vnTvl3zZtsr6vjNjZcfgrIspc/vxAvXpyUnvxQncs7AsX5KgBISFyUnN1lT2Hp0+wK1eWPZRT3pG+irelai+EhsoS6IxkdeQNazIpmfb09MSJEycwZ84c/Prrr7h06RIuXboEAChdujQGDBiAiRMnwtUct/CJiMisVCrzlJKqx1+tUyfr+9LHzg4IDBRISLiF06erIixMge3bgaFDTd/n06fyWADmTaaJiEzh7AzUqiUnteRk2TwlfYIdFibHwj56VE5qjo6yE6r0CXbVqnK/hjLXNYOyX0oKsG2b/N9SVbwBw0fUyIlDQZqUTAOAi4sLpk+fjunTp+Pp06eIj4+Hu7s720kTEeVgGzfqb7+b1c5BVCrg1Cn5v7mS6fQ6dEhFWJgdtmzJWjL955/yh2nZsnLoGkOG4SIisiYHB5kgV6sGDB4s56lU+sfCjosDTp+Wk5qdHfDmm9oJdvXqsmT8Vea6ZpB5hIbKoSULFgTq17fc8xo6okZOHArS5GQ6PTc3NybRREQ53MaNshOQVzvxyo7OQa5cke398ueX1QrNrUOHVHz5pR327ZOdrZhaUUrdXrpNG3bmQ0Q5l50dUKmSnPr2lfOEAG7d0k6uz5yRbbAvXJDTihVyXYVCjqOdvh32nTsyWTfHNYPMY9Mm+bdjR8A+W7JAw+TmoSCzfBgTEhLw5MkTqFQqvctLliyZ1acgIiIzU6lk6YK+i1x2dA6ibi9du7Zlqv9Vry47V7l9W44P3amT8fsQQjuZJiLKTRQK2et3mTJpQxcKIROeV0uwo6Jkb+JXr8qOHTOT0zuUyq2EsOyQWOnl5qEgTU6mly9fjm+++QbX1INv6qFQKJDCOnFERDYvNFS7mt6rsto5iLnbS79KoZB33r/7DtiyxbRk+vLltCGxclqHKEREplCXEPr6yu9QtXv3tMfC/usv4O7djPeTkzuUyq3OnpXviasr0KKF5Z8/tw4FaVIyvXjxYowePRr29vZo1KgRfH19YW/JugJERJStzN05iLpk2lLJNCAT6O++k2NbqlTG3/E295BYREQ5RdGiQOvWcgJk6bS6unhmcmKHUrmVulS6dWvAxcU6MeTGoSBNyoAXLFiAQoUK4ciRI6hQoUJ2x0RERBZmzs5Bnj2TY6EClk2mGzWSY7Xevw8cO2b8MFnqZLpt22wPjYgoR8vNHUrlVupk2pK9eOuT24aCVJqy0e3bt9GzZ08m0kREuYS6c5CMKBRAiRKmdQ5y+jSQmiq3t+QPKwcHoF07+f+WLcZtyyGxiIgypr5mZNYxo6nXDMp+//4rxyO3s0u7LlL2MCmZ9vb2zrDDMSIiynnUnYPok9XOQdRVvOvWNSm0LFG3ld6yRX/nahl5dUgsIiJKk/6akVFC/dFHObv6bm6iLpVu3Bjw9LRmJLmPScn0oEGDsGvXLiQkJGR3PEREZCUNGgBKPVcFX9+sDXFi6c7H0mvdGnB0lOOrXr1q+HY7d8q/LJUmItJP3aFU8eLa852c5N/vvpNjGpP1qYfEsnYV79zIpGR66tSpqF27Nlq0aIHDhw/j2bNn2R0XERFZ2KpVsjp27drAnj1pP4g2bjQ9kRbCOp2Pqbm5AU2byv8NrerNIbGIiAzTtSsQHg4cPAisXSv/3r4NlCoF3LgB9OwJcGAf67p7V/YbApg2sgVlzqRk2snJCRs3bsTx48fRpEkTeHh4wM7OTmdiD99ERNlPpQJCQmRvqiEh8nFWCQEsWyb/f/ddoGVLoFUr+XjfPtP3e+eO7LHTzg54662sx2mK9FW9DXH5shw+xNk5d3WSQkRkDuoOpfr0kX+LFgW2bgXy5QMOHJDVvcl6tm6V1/jatTPvG4VMY1K227BhQygy63GAiIjMYuNG/WM0LlyYtTEa//oLuHZN/vjp3VvOa91aXoR37wYmTzZtv+pS6WrVrDe8VMeOwMiRMpa7d4FixTJfn0NiERFlTdWqwOrVslrxokXy8TvvWDuqvEndXrpzZ2tGkXuZlEyHhIRkcxhERPQ6GzcC3bvrdqQVFSXnZ6Vd89Kl8m/v3rJqNJBWMn30KBAXB3h4GL9fdXtpa3Q+pubjI+/InzoFbNsmS94zwyreRERZ17kz8OWXwKefAqNGAZUqGT9EIWVNfLysHQCwvbS5mFTNm4iILEulkiXS+nqkVs8bN860Kt9PngC//y7/T19yUKYMUKGCbO/255/G7xewbnvp9Ayt6s0hsYiIss8nnwA9esjREbp2BSIirB1R3rJrF/DypbyWV6pk7WhyJybTREQ5QGiodtXuVwkh2/mqE0FjrFsHPH8OvPmmbtLburX8qy6tNUZyMnDmjPzfVpLp/fuBzPrMPHCAQ2IREWUXhQIICgJq1ADu35ffxRwMyHLSV/FmC13zMLia96hRo4zeuUKhwA8//GD0dkREpC0mJnvXS0/d8dg77+hebFu3lu3ddu+WCbsxF+OLF2WS7uEh74pb05tvypL2mzeBvXszrg6vvmnQtq3lYiMiys3y5ZNJXe3aQFgYMHgwsGEDkztzS0oCduyQ/7OKt/kYnEz/9NNPRu+cyTQRUfZ48MCw9by9jdvv2bNycnQEBgzQXd64sezVOjISuHIFqFzZ8H2nr+Ktb/xqS1IoZInIt9/Kqt76kmkOiUVEZB4lS8p+P5o0kf17fPWVbEtN5nPwoGy65O0NBARYO5rcy+Bk+uDBg+aMg4iI9Hj5Evj8c2DWrNevW6IE0LChcftXl0p37QoULKi73MUFCAyU407v3m1cMq3ufMzaVbzV1Mn09u2yHfirozdySCwiIvOpXx/46Sdg2DBg2jRZYygro1BQ5jZtkn87dbL+De3czOBkOjAw0JxxEBHRK65eBfr3T2t33KSJHFca0N8R2TffyPE+DZWYCKxZI//PbMiS1q3Tkunx4w3fv610PqZWvz7g5QU8eiSHAnv1spZ+SCwXF4uHR0SU6w0dCly4IIdzHDBA9k9Rvbq1o8p9UlPTOtzkkFjmZZP3KZKSkjBp0iT4+PjAxcUFderUwb59+1673caNG9GrVy+UKVMGrq6uqFixIj766CM8efLE/EETEWUTIYDFi4G33pKJtKen7G37zz9l9bjixbXXV7c7u3vXuOcJDpbDZpQuLRP1jKg7ITt0yPCOY548kTcDANupXmZvD7RvL//X16v3zp3yL6t4ExGZz7x5QPPm8oZup06yYzLKXsePA/fuAe7umV/fKetsMpkePHgw5s+fj379+mHhwoWws7ND27ZtceTIkUy3Gz58OK5cuYL+/ftj0aJFaN26Nb7//nu8/fbbeP78uYWiJyIy3b17QIcOckzO58+BFi2Av/+W40gDskpceLhsC7V2rfz73Xdy2aefArGxhj+Xuor3sGGZVwGrWBHw85NVztUl469z6pT8W6YMULiw4TGZm7pX782btUv3nz4F1JcYdj5GRGQ+9vbAb78B5coBt2/L69vLl9aOKndR9+Ldrp3sE4XMx+aS6ZMnT2L9+vWYNWsW5s6di+HDh+PPP/+En58fJk6cmOm2wcHBuHDhAr744gu88847WLhwIZYuXYqrV69ijbouIxGRjdq6FahaVfa+6eQELFggq1a/WhJtZyerIvfpI/++954sxY6LAz7+2LDnunZNDqOlVAJDhmS+rkKRVjq9e7dh+1e3l65b17D1LaVlS3lsb92SvY2rqYfEKldOTkREZD5eXvKa5+YGHD4MjBmjv/kSGU+ItPbSrOJtfjaXTAcHB8POzg7Dhw/XzHN2dsawYcNw7NgxREZGZrhtYz09xnT5ry/4K1euZHusRETZISEBGDEirbpb9erA6dPA2LGGdRpiZwd8/738PygIOHbs9duoS6XbtQN8fF6/vrrqs6HJtK21l1bLn19WLwS0q3qzF28iIst64w1g3Tp5w3bJEtm8ibLu8mXg339liTSvaeZnc8n0uXPnUKFCBbi7u2vND/iv0V1YWJhR+7v7XyPCQoUKZUt8RETZ6eRJoEYN+UNCoQAmTJCJaJUqxu3n7bfTSpjffx9QqTJe9+VLYOVK+X9mHY+l17SprJr3779yyowQtptMA2lVvdXJNIfEIiKyjnbtgNmz5f8ffCD7BqGsUVfxbt5clvyTeRncm7elxMTEwFvPQKnqedHR0Ubtb86cObCzs0N3dYPDDCQlJSEpKUnzOD4+HgCQnJyM5ORko57TUtRx2Wp8lHfwXNQvs+OSkgLMnq3EjBlKqFQK+PoK/PKLCo0bi/+2Mf75vvwS2LjRHmfPKrB4sQojRqTqjWXbNgXu37eHt7dAixYpBj2XszNQv74dDh1SYudOFUaO1L9vALh5E3jwwAGOjgJvvmnY/rOLIedi69aAQmGP06cVCA9PxuPHQGSkA5ydBerXzzxenuv68bgQkanGjQPCwuywbp0SPXoIHD2agjJl0pbz+8U4GzfaAVCiY8cUJCebVnc+rx9zY163zSXTz58/h5OTk858Z2dnzXJDrV27FsuXL8fEiRNRvnz5TNedNWsWPv/8c535e/fuhaurq8HPaQ2G9HROeZtKBVy+XBCPHzvD0/MFKld+aNQQSobiuajfq8clJsYVCxbUxLVrXgCAhg3vYMSIC0hMTNb0KG2qHj1KY9myapg8WQUPjwNwd9fu1WXfvn34+uu6AIqifv3r2LvX8CYwfn7lALyJX3+9Dz+/EzrL1a/z8OHiAGrBz+8JDhw4nIVXY7rXnYsVKjTEtWtemD37Ml68sAfwJipXjsXBg8ezZf95FY8LEZmic2clTp9ugOvXPdGy5XPMmRMKF5cUrXX4/fJ69+874+zZVlAoBJyd92PnzqTXb5SJvHrMExMTDV7X5pJpFxcXrRJitRcvXmiWGyI0NBTDhg1Dq1atMGPGjNeuP3nyZIxPN4BqfHw8SpQogZYtW+pUObcVycnJ2LdvH1q0aAEHBwdrh0M2atMmBcaPt0NUlEIzr3hxgfnzVejSJXt6++C5qEulAkJCVNi37yJatKiCxo3toFQCK1cqMGGCHZ49U8DDQ2DRIhX69CkKoEW2PG/LlsCJEwJ//+2IkJBW+OknWd9b/R5VqtQS587Jm5NfflkaZcuWNnjfxYsDq1YBly8XRdOmbfHfPU6d93//ftmCqFUrd7S1cNfYhp6LFy8qMXUqcOZMVc1wX/36FXptvDzX9eNxIaKsCggA6tUTiIhwx5o1bRAcrIJSye8XY/zwg7z+1qsn0LdvM5P3k9ePubqGsiEMSqbLpK9rYQSFQoEbN24YtY23tzeioqJ05sfExAAAfAzoKef8+fPo2LEjqlSpguDgYNjbv/5lOjk56S0Rd3BwsPmTKCfESNaxcSPQu7duD5nR0Qr07m2P4GA51FJ24bkobdwoOw+7c8cBQC3Mny87+fL1lW2kASAwEFi1SoGSJbP3nqaDA/Djj0DDhkBQkBIjRii1xnlevdoRQijQtClQqZJx71XNmoC3NxATo8CJEw6ajrzSnlu+/+phsd5+2w4ODmaoAmGA152L6nZkp0+ndR0yd64dSpWyM+gzwXNdPx4XIjJVqVKyF+rAQGD7diW+/FKJzz8Hjh5V4PDh4siXzxFNmtibpWZdbrFtm/zbpYsSDg5Z7xorr36nG/OaDTrKqampEEJoTUlJSQgPD0d4eDju3LmD58+f486dO5p5SUlJSE1Nff3OX+Hv749//vlH547Aif96s/H39890+xs3bqB169YoUqQIdu7cifz58xsdA1FuoFLJhE7fUBPqeePGZd5RFRlv40Y5ZuadO9rzo6NlIm1nB3z9tRyKqWRJ88TQoAEwYIB8n0ePTnuPVSpg5Ur5tW9ox2PpGTJEVlIScO6c/N8WOx8D5Hs0bpzu/Hv35Hu3caPFQyIiIsjrxtKl8v8ZM4AiRYAWLewxf34ttGhhj1Kl+B2dkYcPgUOH5P8cEstyDEqmw8PDcevWLc107tw5eHt7o1GjRggNDcWLFy8QExODFy9e4PDhw2jUqBF8fHyM7nkbALp37w6VSoUlS5Zo5iUlJSEoKAh16tRBiRIlAAARERG4evWq1rZ3795Fy5YtoVQqsWfPHhQuXNjo5yfKLUJDdRO69IQAIiPlepQ9MruBoVaoEDB+PMx+Z/3rrwF3dznE1rJlwKFDCqxZ8wYiIxXw9AT+GzXQaK9Lps+fl72FFyoEmFipyax4k4mIyLYNGJA26sKjR9rLoqJ40zMjO3bIa1fVqkDZstaOJu8wqX7hpEmT8OLFC5w4cQJ26X4RKpVKNGjQAPv370f16tUxadIk/PTTT0btu06dOujRowcmT56M2NhYlCtXDitXrkR4eDiWL1+uWW/gwIE4dOgQRLpfRK1bt8bNmzcxceJEHDlyBEeOHNEsK1q0KFq0yJ42iUQ5QSZDsmv5rwUFZYPX3cAAZOlnaCjQuLF5YylWDPj8c+DDD4FRo4DUVHsAFQDInsJ37jStin/z5nLs60uX5Dn23/1NjeP/9d8VECBLsm2NMTeZzP0eERGRLpUKOHNG/zIh5LVl3DiZcLPKdxr1kFgslbYsk5LpLVu2YPDgwVqJtNZO7e3Rvn17rFq1yuhkGgBWrVqFTz/9FL/++iseP36MatWqYfv27WjUqFGm250/fx4A8PXXX+ssCwwMZDJNecaRI8C0aYatq2ckOjKRoTcmLHUDo3hx+ffVFjcJCfLOvilt5r28ZDW8Y8eAPXt0q4urx5euW9e0mM3N1t4jIiLSZuhNz4MHodN3R16VmJhWY8zUmmdkGpOS6fj4eMTFxWW6Tlxc3GvXyYizszPmzp2LuXPnZrhOSEiIzjyRWd1KojzgwQNg0iTgl1/kY6VSN5FSUyhkh1gNG1ouvtzO0BsTlriBoVLJ6uT6ZPXOfuvWMpnetSvjZNpW20vb0ntERES6DL2Z2bo1UKUKUK0aUL26/FutGlC0qHnjs0X79gHPnwN+fsBrupeibGZSN29vvvkm1q9fn2FP3devX8f69etRpUqVLAVHRIZJTQWWLwcqVkxLpIcNk/8rFPqr2woBzJzJKlLZqUYNwNEx4+UKhawWbYkbGOZsM69uN71/v6wyrvbgAaC+LKTvQdyWNGwobyJlVAXdku8RERHpMvRmpkol++n49Vfgf/+TQ0MWKyaT6ZYt5bxVq4CwMNk5Zm62aZP827mzbTaxys1MKpmeOnUqunTpgho1amDYsGFo0KABihQpgtjYWISGhuKXX35BQkICpk6dmt3xEtEr/v4beO894OhR+bhqVWDxYqB+ffnYzU09TFPaNuoS6w0bgL595WPKmufPZZXply/lY4VCu5Mr9cVtwQLL3MAwZ3XmWrVkB2MPHsg20uoq3adOyRdZsSJQoIDx+7UEOztg4UJZzd3a7xEREelS3/SMitLfWaS6Zt3Bg7L/jgsX5HT+PHD9OhAbK0tq9+1L28beHqhUKa30Wl2a7e2d85PPlJS0IbHYXtryTEqmO3XqhBUrVmDMmDFYuHAhFi1apFkmhIC7uzuCgoLQsWPHbAuUiLQ9ewZMny5/+KtUQL58ssOpDz6QYw2rde0qq/KGhsrEydsbcHaWnStt2ybbVn/1lZVeRC6RlAR06wb8+ae8efHJJ8D332vfwPD1le9Vdo7rnRlzVmdWKuVd/7VrZRstdTJ94oT8RWKr7aXVunaV7cVfvclk6feIiIh0GXrTs2xZOaVPNxITdRPsCxeAx4+BixfltHZt2voFC2on19WqAZUrAy4uFnmp2SI0VPZ6XrCgHBqTLMukZBqQvWl36dIFmzdvxvnz5xEXFwcPDw9Ur14dnTp1gru7e3bGSUT/EUL22PjBB2mJQJcu8sLzas/KanZ2uj0TL10KDBwox3GsVg3o2dOcUedeKSlAnz6y/bCLixyaomFDWb3s4MEU7NoVhjZt/NGkib1FSzsNvbNvanXm1q3Tkunp0+U8dcm0rbaXTk/fTaaGDVkiTURkC0y96enqCtSuLSc1IeS1MH1yfeECcO2aHJv54EE5qSmVQIUK2u2wq1WTv7FssRRb3Yt3hw6yBJ4sK0uH3M3NDQMGDMCAAQOyKx4iysStW8CYMTJhA4BSpWQJaLt2xu9rwAB5UfnmG2DIEHnhYKcVxlGpgEGDZFslJydg69a05NTODggMFEhIiEJgYHWLJ2nmrs7csqX8e/asHO4rNTVnJdOA/ptMRERkG9Q3PbN6Y1p989jXF2jbNm3+ixfA5ctpybU62X7wALh6VU6//Za2foEC2sl1tWqyA7R8+bLl5ZpEXcACsIq3tfD+BVEO8PIlMG+erI79/Lmsxj1hgqxO7Opq+n7nzJFtrvfulRes06eBwoWzL+7cLDUVGDFCls7a28s76LY2RIc5qzMXLQq89ZZMpvfuVeDFi/x48kQBZ2fZbp+IiCirzHlj2tlZXsfeeittnhDA3bu6CfaVK8CTJ8Dhw3JSUyiAcuV0q4r7+VmmP5pz54CICPlbUH2TmyzLpGT6iy++MGg9hUKBTz/91JSnIKL/hIQAI0fKO6SALEn78UfgjTeyvm87O2D9elmSeP26LMXcty/zHqlJXmw/+ED2oK5UAuvWAe3bWzsq/bLrzr4+rVurk2klihb1BADUrKndZp+IiCinUChksx9vb6BVq7T5L1/K32GvVhW/e1f+frp+Hfjjj7T13dzkjeX0VcWrVpXzs5O6VLpVq5zVzjs3MSmZnq5uIJcBhUIBIQSTaaIsuHdPtrtdvVo+LlJEVsnu1y972+x4egJbtsiE+vBhOfbwjz9m3/5zGyGAiROBH36Q78PKlfImhC0z1539Nm3k8Gr79ytQq5ZMpm298zEiIiJjOTqmJcX9+6fNj42VNfzSJ9iXLgFPn8pRVtQjraiVLq3bFrtsWeNLsVUq2edHUJB83KlT1l4fmc6kZPpg+lb66cTFxeHs2bNYtGgRmjdvjtGjR2cpOKK8SKUCliwBpkyRVYoUCjn01YwZMvE1hzfekNWVO3aUw2pVry6rMJOuzz+XVe4B4KeftC+qeU3duoC7O/DwoQJ//il7v0vf6QsREVFuVqQI0KyZnNSSk4F//tGtKh4VJfu+uXUrrUQZkFW0q1bVripetWrGQ0xu3KjbfGvKFFnqzdEoLM+kZDowMDDDZR07dkS/fv3w1ltvoVu3biYHRpQXnT0rq3SfPCkf16ghE7aAAPM/d/v2MmGfMgV4/305NISpPT3nVnPmyGQakJ17DR9u3XisbetW+aMBAJKT5eXkww9lNW9e0ImIKC9ycADefFNOffqkzX/4UJZip0+wL16Uw3mdOCGn9EqW1G2LffGiHH3l1VE6YmJkLbngYF5/Lc0sHZCVL18eXbp0wezZs9GrVy9zPAVRrhIfD3z6qeyZOzVV3l386itg1CjLDnPw8cfyy/233+S4yadOyU40CPjuO3l8AGD2bNlmOi/buFFeuF+9oN+9yws6ERHRqwoWlP3epB9FQqUC/v1Xty327duyY7GICGD79tfvWwhZk3HcOFnlm8M8Wo7ZfqYXKVIE165dM9fuiXIFIYANG2RpXkyMnNerFzB/PuDjY/l4FArgl19k9aRz5+QwC3/9lbUew3ODZcvSkudp04BJk6wbj7WpVLKKmb7xq3lBJyIiMoydHVCxopx69Eib/+SJdin2hQtAWJgczisjQgCRkbItNYd9tByzdNqelJSE3bt3o0BGlf2JCNevy96Qe/eWiXS5csCePbJ3bWsk0mqurrItT+HC8ot76FD9SVNesXp1WnXu//0PeE3/i3lCaKh2W61Xpb+gExERkXEKFJBN7UaPBn7+GTh2TN7YN4S6cIYsw6SS6VWrVumdn5KSgqioKKxfvx5Xr17FB3m9HiSRHi9eyLa3s2YBSUmyh8jJk2UVYmdna0cnlSwph3ho1kxW+a5eXcaY1wQHA4MGyeRw1Cjg66+ztyf1nMrQCzUv6ERERNmjeHHD1vP2Nm8cpM2kZHrw4MFQ6PlFKf4rvlIoFOjTpw9mz56dteiIcpl9+2RS9u+/8nGLFnKIpfLlrRuXPg0byjbcI0YAn3wCVKkCdOhg7agsZ8cO2XFIaiowZIhsM81EWjL0Qs0LOhERUfZo2BDw9ZW9guurMahQyOXsPNayTEqmg9SDmr1CqVTC09MTNWvWhDd/RRFpREcD48fLUl5AJhnffit7ZLTlBG34cFnVe/FiOb71iRNyGK3cbv9+2QFbSoqshr90qfFjQOZmvKATERFZlp2dHEmke3d5nU1//VX/llywgH2VWJpJyfSgQYOyOw6iXEmlkiXPU6cCT5/KhOz994EvvgA8PKwdnWEWLgQuXwYOHZLjUJ88ab7xrm1BaKjsOCspSXbAtmoVL0yv4gWdiIjI8rp2lU3QXh1n2tdXXnc5ioblWXDQHaK85eRJ4L33ZK/YgBwrevFi4K23rBuXsRwcgN9/B2rXltXTe/eWVaAtOWSXuahUMnmOiZG1BZycgHbt5JiPrVvLzuAcHKwdpW3iBZ2IiMjyunaVN/3T/35p2JA3sK0lyz+HIyMjER0djaSkJL3LGzVqlNWnIMpRHj8GpkyRvS8KIXtknDULePfdnPtFV7gwsGULUK8esHev7Cxt3jxrR5U1GzfqJoLqUtYmTeRyJyfrxZcTqC/oBw+mYNeuMLRp448mTexz7HlORESUE9jZcfgrW2FyMr1t2zZMmDAB169fz3Q9lUpl6lMQ5ShCAGvWAB99BMTGynn9+8uks2hR68aWHapXB1askO28v/lGPh4wwNpRmWbjRllF+dX2vurHw4YBLi6WjysnsrMDAgMFEhKiEBhYnYk0ERER5RkmdakTEhKCLl264NmzZ3j//fchhECjRo0wfPhwVK5cGUIItGvXDtOmTcvueIls0tWrchipAQNkIl2pEvDnn8Cvv+aORFqtRw/Z/huQJe0nT1o3HlOoVLJEOqOxsxUKOQwY7wMSERERUWZMSqZnz56N/Pnz48yZM1i4cCEAoEmTJli8eDH+/vtvzJgxAwcOHECnTp2yNVgiW5OYKIeNqlYNOHhQjhM9YwZw/rysKpwbff657IgsKQno0kVWkz50SIHDh4vj0CGFzSShKhXw8KFs533yJLBnj2wD/dFH2lW7XyUEEBkp2yIREREREWXEpGrep06dQufOnVE0XZFbamqq5v/Jkydjx44dmDZtGrZu3Zr1KIls0I4dsmfu8HD5uG1bOS5z6dJWDcvslEpZ4v7227KX77JlgZcv7QHUwvz5sgOqhQuzpwMqIYBnz2Q79EePtP/qm5f+b1xc1p47Jibr8RMRERFR7mVSMp2YmIjixYtrHjs5OSE+Pl5rnbp162Y4HjVRThYZCYwbJ9vdAmnJY5cutj1mdHZydwdGj5bTy5fay6KiZHvk4OC0hDopKfPkN7NlKSlZizV/fsDLSw7n5emZ1oP363h7Z+15iYiIiCh3MymZLlasGO7fv695XLx4cVy6dElrnYcPH7LzMcpVkpOBRYuAzz4DEhJkx0vjxgHTp8uELS9RqWQP5fqo2yL37i17AX/yRFaHzwpHx7SE+NW/+ualX/bq0FYqFVCqlEz69bWbVijkDZKGDbMWMxERERHlbiYl09WrV8fFixc1j5s0aYKVK1di3bp16NixI44cOYINGzagZs2a2RYokTUdPSrHjP77b/m4Xj05ZnS1ataNy1pCQzNvdwzImw/R0WmPlUo5TFhmyW9GibKLS/aV+tvZyZoE3bunDYWlpn6OBQty7jBmRERERGQZJiXTHTt2xPvvv4/bt2/Dz88PU6ZMwR9//IH+/fun7djeHl999VW2BUpkDQ8fApMmAcuXy8deXsDXXwNDhsjkMK8ytD3xV18BffvKpNjd3XaOWdeushr6q+NM+/rKRDo72nsTERERUe5mUjI9dOhQDB06VPO4dOnSOHXqFObPn4+bN2/Cz88P7733Hvz9/bMrTiKLSk0FVq4EJkyQCTUADB0KzJkDFCpk3dhsgaHtievXt90O2bp2BTp1kqXsMTHyNTVsyBJpIiIiIjKMScm0PmXLlsUPP/yQXbsjspqLF4GRI4EjR+TjKlVkle4GDawbly1p2FCW4ub0dsd2dkDjxtaOgoiIiIhyIpMqXdrZ2aFfv37ZHQuRVT17BkycCPj7y0Ta1VVW6T57lon0q9TtjgHdtsxsd0xEREREeYFJybS7uztKlCiR3bEQWYUQwObNQOXKwNy5srfnzp2BK1dkNe9Xe4MmSd3uON0oeQBkiXT6YbGIiIiIiHIjk6p5BwQE4Pz589kdC5HFhYcDY8YA27fLx35+wPffA+3bWzWsHEPd7vjgwRTs2hWGNm380aSJPUukiYiIiCjXM6lkevr06fjzzz+xatWq7I4HAJCUlIRJkybBx8cHLi4uqFOnDvbt2/fa7a5du4YPP/wQ9erVg7OzMxQKBcLDw80SI+VsL1/KcZIrV5aJtL09MHkycPkyE2lj2dkBgYECjRpFITBQMJEmIiIiojzBpJLpffv2oXHjxhgyZAi+++471K5dG0WLFoXilcaTCoUCn376qdH7Hzx4MIKDgzFu3DiUL18eK1asQNu2bXHw4EE0yKTx6rFjx7Bo0SJUrlwZb7zxBsLCwox+bsr9Dh2SHYxduSIfBwYCP/4oE2siIiIiIiJDmJRMT58+XfP/mTNncObMGb3rmZJMnzx5EuvXr8fcuXPxv//9DwAwcOBAVKlSBRMnTsTRo0cz3LZjx4548uQJ3NzcMG/ePCbTpCU2VraBVleoKFwYmDcPGDBAtxMtIiIiIiKizJiUTB88eDC749AIDg6GnZ0dhg8frpnn7OyMYcOGYcqUKYiMjMyw8zMvLy+zxUU5V2oqsHSprMb9+LFMnIcPB2bOBHjKEBERERGRKQxOpi9cuIBixYqhSJEiCAwMNFtA586dQ4UKFeDu7q41PyAgAAAQFhbGnsTJYGFhwHvvASdOyMf+/nLM6Lp1rRkVERERERHldAYn0zVq1MBnn32GadOmaebt2bMHe/bswfz587MtoJiYGHh7e+vMV8+Ljo7OtudKLykpCUlJSZrH8fHxAIDk5GQkJyeb5TmzSh2XrcZnTU+fAp9/rsT33yuRmqqAm5vA9OmpGDkyFfb2AA9Z9uK5qJ8tHRdzxpJXXqcl9p9T8bgQkbnw+8Xy8voxN+Z1G5xMCyF05h0/fhwLFy7M1mT6+fPncHJy0pnv7OysWW4Os2bNwueff64zf+/evXB1dTXLc2YXQ3o6zyuEAI4e9cHy5VXw6JELAKB+/SgMHXoRBQu+wN69Vg4wl+O5qJ8tHRdzxpJXXqcl9p9T8bgQkbnw+8Xy8uoxT0xMNHhdk9pMm5OLi4tWCbHaixcvNMvNYfLkyRg/frzmcXx8PEqUKIGWLVvqVDm3FcnJydi3bx9atGgBBwcHa4djdf/+C4wbZ4e9e+WIb2XLCixcqELLlkUANLVucLkcz0X9bOm4mDOWvPI6LbH/nIrHhYjMhd8vlpfXj7m6hrIhbC6Z9vb2RlRUlM78mJgYAICPj49ZntfJyUlvibiDg4PNn0Q5IUZzSkoC5syRHYolJQGOjsDHHwMff6yAi4vNneK5Wl4/FzNiS8fFnLHklddpif3nVDwuRGQu/H6xvLx6zI15zTaXafj7++PgwYOIj4/XKhE+8V8PUv7+/laKjGzR/v3AqFHA9evycfPmwA8/ABUqWDcuIiIiIiLK3ZTWDuBV3bt3h0qlwpIlSzTzkpKSEBQUhDp16mh68o6IiMDVq1etFSZZWUwM0KcP0KKFTKSLFQPWrQP27mUiTURERERE5mdUyfT333+P9evXax4/ePAAAFC5cmW96ysUCly6dMmogOrUqYMePXpg8uTJiI2NRbly5bBy5UqEh4dj+fLlmvUGDhyIQ4cOaXWMFhcXh++++w4A8Ndff2liLlCgAAoUKID333/fqFjI9qhUcmirTz4B4uMBpVKWTH/1FeDhYe3oiIiIiIgorzAqmX7w4IEmgU4vu0uIV61ahU8//RS//vorHj9+jGrVqmH79u1o1KhRpts9fvwYn376qda8b775BgDg5+fHZDqHO31ajhl95ox8XKsW8NNPQM2a1o2LiIiIiIjyHoOT6dTUVHPGocXZ2Rlz587F3LlzM1wnJCREZ16pUqX0DuFFOduTJ7IkevFiOfSVh4fsbGzECMDOztrRERERERFRXmRzHZARqQkBrF0LfPQRcO+enNevHzBvnmwjTUREREREZC1MpskmXbsm20L/+ad8XLEi8OOPQFMOF01ERERERDbA5nrzprzt+XPg00+BatVkIu3sLDsXO3+eiTQREREREdkOlkyTzdi5E3j/feDWLfm4TRvg+++BMmWsGxcREREREdGrWDJNVnfnDtC9O9CunUykixcHgoOBHTuYSBMRERERkW1iMk1Wk5ICzJ8PvPEG8Mcfsmfu8eOBK1eAbt0AhcLaERIREREREenHat5kFceOyTGjL1yQj99+Ww59Vb26deMiIiIiIiIyBEumyaIePQKGDwfq1ZOJtKcnsGQJcOQIE2kiIiIiIso5slQynZKSgmvXruHJkydQqVR612nUqFFWnoJyCSGAlSuBCROABw/kvMGDga+/BgoXtmpoRERERERERjMpmRZCYNq0afjuu+/w9OnTTNfNKMmmvOPSJWDkSCA0VD5+801ZpbthQ+vGRUREREREZCqTkukvv/wSM2bMQIECBTBw4ED4+vrC3p7Nr0lbQgLwxReyk7GUFMDVFfjsM+DDDwEHB2tHR0REREREZDqTMuBffvkFfn5+OH36NAoWLJjdMVEusHUrMGYMEBEhH3fqBCxcCPj5WTcuIiIiIiKi7GBSB2R3795F586dmUiTjtu3ZeLcqZNMpP38ZGK9eTMTaSIiIiIiyj1MSqZLly6N+Pj47I6FcrCXL4E5c4DKlWXybG8PTJok20t36GDt6IiIiIiIiLKXScn0yJEjsX37dsTGxmZ3PJQDHT4M1KgBfPwxkJgINGoEhIUBs2cD+fJZOzoiIiIiIqLsZ1Kb6U6dOiE0NBT16tXDtGnT8NZbb8Hd3V3vuiVLlsxSgGS77t+XQ12tXCkfFyoEzJsHDBwIKBTWjY2IiIiIiMicTEqmS5cuDYVCASEEhgwZkuF6CoUCKSkpJgdHtik1FVi2TJZEP34s5w0fDsyaBXh5WTc2IiIiIiIiSzApmR44cCAULHrMk86fl2NGHzsmH1evLseMfvtt68ZFRERERERkSSYl0ytWrMjmMMjWPX0qx4hetAhQqYD8+eUY0mPGyM7GiIiIiIiI8hKmQZQpIYA//gDGjQOiouS87t2BBQuA4sWtGRkREREREZH1MJmmDN24Abz/PrB7t3xcpgzwww9A69bWjYuIiIiIiMjaTE6mnz59iu+//x779+9HdHQ0kpKSdNZRKBS4ceNGlgIky0tKAubOBWbMAF68ABwd5ZjRkycDLi7Wjo6IiIiIiMj6TEqm79+/j3r16uHGjRtwd3dHfHw8PDw88PLlSzx//hwA4OPjAwcHh2wNlszvzz+BUaOAa9fk42bNZGl0xYrWjYuIiIiIiMiWKE3ZaPr06bhx4wZWrVqFx/+NjfThhx8iISEBJ06cQEBAAEqVKoVLly5la7BkPnfvAv36yeT52jWgaFFgzRpg3z4m0kRERERERK8yKZneuXMnmjVrhv79++sMkVW7dm3s2rUL4eHh+Pzzz7MlSDIflUqWPFeqBKxdCygUwOjRwNWrQN++8jERERERERFpMymZjomJQY0aNTSP7ezsNNW7AcDT0xNt2rTBhg0bsh4hmc3p00DdurKTsbg4oGZN4ORJ4PvvgQIFrB0dERERERGR7TIpmfbw8EBycrLmsaenJ+7cuaO1jru7O+7du5e16Mgs4uJkAh0QIBNqd3eZQJ84AdSqZe3oiIiIiIiIbJ9JyXSZMmUQHh6ueVyjRg3s27cPDx8+BAA8f/4c27ZtQ8mSJbMlSMoeQgDr1skq3T/8IB/37SvbSI8eDdjZWTtCIiIiIiKinMGkZLply5Y4cOAAEhMTAQAjRoxAbGwsqlevjh49eqBKlSq4ceMGBg8enJ2xUhb88w/QooVMnu/eBSpUAPbvl52MFStm7eiIiIiIiIhyFpOS6ffeew9Lly7VJNNdu3bF3LlzkZCQgD/++AN3797F+PHjMWHChGwNloz3/DkwbRpQtSpw4ADg5AR88QVw4YLsuZuIiIiIiIiMZ9I4097e3ujVq5fWvI8++gjjxo3DgwcPUKRIEZ1evsnydu+WbaNv3JCPW7eWbaPLlrVuXERERERERDmdSSXTGbGzs0PRokWznEgnJSVh0qRJ8PHxgYuLC+rUqYN9+/YZtG1UVBR69uyJAgUKwN3dHZ06dcLNmzezFE9OExUF9OwJtGkjE2kfH+D334GdO5lIExERERERZYcsJdPnzp3DxIkT0bFjRzRv3lwz//bt29iwYQMePXpk0n4HDx6M+fPno1+/fli4cCHs7OzQtm1bHDlyJNPtnj17hiZNmuDQoUOYMmUKPv/8c5w7dw6BgYGaztFyC5UKOHRIgcOHi+PQIQVUKiAlBViwQHYw9vvvgFIJfPihHDO6e3eOGU1ERERERJRdTKrmDQATJ07EN998AyEEAGiVRgsh0LdvX3zzzTcYO3asUfs9efIk1q9fj7lz5+J///sfAGDgwIGoUqUKJk6ciKNHj2a47Y8//ojr16/j5MmTqF27NgCgTZs2qFKlCr755hvMnDnT2JdpkzZuBMaOBe7csQdQC/PnA0WKAK6ugLqT9bp1gcWLAX9/KwZKRERERESUS5lUMh0UFIR58+ahffv2uHDhAiZPnqy1vFSpUggICMDWrVuN3ndwcDDs7OwwfPhwzTxnZ2cMGzYMx44dQ2RkZKbb1q5dW5NIA0ClSpXQrFkzbNiwwehYbNHGjbKU+ZVhvREbKxPpfPmAn38G/vqLiTQREREREZG5mJRM//jjj3jjjTfwxx9/oEqVKnB0dNRZp1KlSrh+/brR+z537hwqVKgAd3d3rfkBAQEAgLCwML3bpaam4sKFC6hVq5bOsoCAANy4cQNPnz41Oh5bolLJEun/KgPo5eEBDBsmq3gTERERERGReZhUzfvy5ct49913YW+f8eZFixZFbGys0fuOiYmBt7e3znz1vOjoaL3bPXr0CElJSa/dtmLFinq3T0pKQlJSkuZxfHw8ACA5ORnJycnGvQgzOXRI8V/V7oxFRwMHD6YgMDCTjJsom6k/I7byWbEVtnRczBlLXnmdlth/TsXjQkTmwu8Xy8vrx9yY121SMm1vb4+XL19muk50dDTy589v9L6fP38OJycnnfnOzs6a5RltB8CkbQFg1qxZ+Pzzz3Xm7927F66urq8P3AIOHy4OQLfk/VW7doUhISHK/AERvcLQXvfzGls6LuaMJa+8TkvsP6ficSEic+H3i+Xl1WOemJho8LomJdNVq1bFn3/+CZVKBTs7O70B7N+/HzVr1jR63y4uLlolxGovXrzQLM9oOwAmbQsAkydPxvjx4zWP4+PjUaJECbRs2VKnyrm15MunwPz5r1+vTRt/BAZWN39ARP9JTk7Gvn370KJFCzg4OFg7HJthS8fFnLHklddpif3nVDwuRGQu/H6xvLx+zNU1lA1hUjI9dOhQvPPOO3jvvffw/fff6zz5O++8g7t372LhwoVG79vb2xtRUbqlqjExMQAAHx8fvdt5eXnByclJs54x2wKyRFtfqbaDg4PNnERNmgC+vnIcaX3tphUKubxJE3voucdBZHa29HmxJbZ0XMwZS155nZbYf07F40JE5sLvF8vLq8fcmNdsUjdVQ4cORe/evbF8+XIULlwYy5cvByA7+ipevDiCg4MxaNAgdO/e3eh9+/v7459//tG5I3DixAnNcn2USiWqVq2K06dP6yw7ceIEypQpAzc3N6PjsSV2doD6/sSrY0arHy9YACbSREREREREZmZyn89r167Fzz//jNKlSyMqKgpCCJw+fRolS5bE4sWL8csvv5i03+7du0OlUmHJkiWaeUlJSQgKCkKdOnVQokQJAEBERASuXr2qs+2pU6e0Eupr167hzz//RI8ePUyKx9Z07QoEBwPFi2vP9/WV87t2tU5cREREREREeYlJ1bzV3n33Xbz77rt4/vw5Hj9+DHd3d5M6HUuvTp066NGjByZPnozY2FiUK1cOK1euRHh4uKYEHAAGDhyIQ4cOQaSr7zxq1CgsXboU7dq1w//+9z84ODhg/vz5KFq0KD766KMsxWVLunYFOnWSvXbv2hWGNm38WbWbiIiIiIjIgrKUTKu5uLhk2rmXsVatWoVPP/0Uv/76Kx4/foxq1aph+/btaNSoUabbubm5ISQkBB9++CG++uorpKamonHjxvj2229RuHDhbIvPFtjZAYGBAgkJUQgMrM5EmoiIiIiIyIKyJZnObs7Ozpg7dy7mzp2b4TohISF65/v6+uL333/PcgzqEm9jenOztOTkZCQmJiI+Pj5Pdg5AtoPnon62dFzMGUteeZ2W2H9OxeNCRObC7xfLy+vHXJ3/xcfHw83NDYpXO6tKRyGEvn6hdZUpU8boQBQKBW7cuGH0drbgzp07mvbZRERERERElLfExcVlOkyywcm0UqmEnZ0d7O2NK8x+/vy5UevbitTUVERHR7/2boQ1qcfCjoyMtJmxsClv4rmony0dF3PGkldepyX2n1PxuBCRufD7xfLy+jEXQuDp06dwc3ODu7t7prmg0dW8GzdujKFDh6Jz5865uthfqVTC19fX2mEYxN3dPU+e6GR7eC7qZ0vHxZyx5JXXaYn951Q8LkRkLvx+sby8fMw9PDwMWs/gobEuX76MsWPHIiwsDL1794aPjw8+/PBD/P333yYHSURERERERJQTGZxMV6pUCfPmzcOdO3fwxx9/4O2338YPP/wAf39/1KpVC4sXL0ZcXJw5YyUiIiIiIiKyCQYn02p2dnbo3Lkztm7disjISMycORMJCQkYPXo0fHx80L9/f0RERJgjVnqFk5MTPvvsMzg5OVk7FMrjeC7qZ0vHxZyx5JXXaYn951Q8LkRkLvx+sTwec8MZ3AHZ6xw4cACDBw9GdHQ0Nm3ahI4dO2bHbomIiIiIiIhsTpbHmT516hR++eUXrF+/HnFxcShevHiO6biLiIiIiIiIyBQmJdMPHjzAr7/+iqCgIFy6dAn29vbo0KEDhg0bhlatWkGpNLr2OBEREREREVGOYXA179TUVOzcuRO//PILduzYgeTkZFSpUgVDhw5F//79UahQIXPHSkRERERERGQTDE6mfXx8cO/ePXh4eKB3794YOnQoatWqZe74iIiIiIiIiGyOwcm0UqmEg4MD6tWrBxcXF8N2rlBgx44dWQqQiIiIiIiIyNYYlUwbvXOFAiqVyujtSL+oqCiEhYUhOjoaz58/h4uLC3x8fODv74/ixYtbOzwiIiIiIqI8w+AOyG7dumXOOCgTR48excSJE3Hs2DEAwKv3PxQKBerWrYuvv/4a9evXt0aIRAT52Tx27BjOnTun96ZXvXr1oFAorBJbUlISzpw5g0ePHqFw4cKoWbMm7O2zPKCD2ff9OuY+5rb8nloTjwsRmQO/W6yDxz0LBNm0ffv2CQcHB1GuXDkxa9YsceDAAXH58mVx8+ZNcfnyZXHgwAExY8YMUb58eeHo6Cj27dtn7ZApl9u3b5949913Ra1atYSPj4/w9PQUPj4+olatWuKdd94Re/futXaIVvHbb7+JkiVLCqVSKRQKhc6kVCpFiRIlxPr1680ax5w5c8Tly5e15v3000/Cy8tLKJVKzVSkSBGxbt06m9m3Kcx9zG3lPbU1PC5EZA78brEOHvesYTJt4+rUqSPq168vXrx4kel6SUlJol69eqJOnToWiozymmfPnom2bdsKpVIp3NzcRMOGDUXPnj3FwIEDRc+ePUXDhg2Fm5ubUCqVok2bNuLZs2fWDtli1q1bJxQKhWjUqJFYt26duHHjhkhMTBSpqakiMTFR3LhxQ6xZs0Y0bNhQKJVKsyaaCoVCrFmzRvN47dq1QqFQiKpVq4qff/5Z7Ny5U3z33XeibNmyws7OToSEhNjEvo1l7mNuS++pLeFxISJz4HeLdfC4Zx2TaRvn4uIili5datC6S5YsES4uLmaOiPKqDz74QDg7O4tly5aJly9f6l3n5cuXYtmyZcLFxUV88MEHFo7QeqpVqyY6dOhg0Lrt2rUTVatWNVssrya8lStXFtWqVRPJycla68XHx4tSpUqJNm3a2MS+jWXuY25L76kt4XEhInPgd4t18LhnnfG9ipFFeXp64t9//zVo3X///Reenp5mjojyqg0bNmDChAkYNmwYHBwc9K7j4OCAYcOGYfz48fjtt98sHKH1/PPPP+jUqZNB63bp0gXXr183c0RSUlISrly5gtGjR+u0YXZzc8OQIUNw4sQJm9u3Icx9zG31PbU2HhciMgd+t1gHj3vWMZm2cf3798e3336Lb7/9Fs+ePdO7zrNnzzB//nwsWLAA/fv3t3CElFfEx8fD19fXoHVLlCiBp0+fmjki2+Ht7Y3Tp08btO6pU6fg7e1t5ogkIQQUCgV8fHz0Lvfx8UFCQoLN7dsQ5j7mtvqeWhuPCxGZA79brIPHPess090qmezLL79EREQEPvroI0yaNAkVKlSAt7c3nJyckJSUhJiYGPzzzz9ISUlBjx498OWXX1o7ZMqlatSogSVLlqBfv37Ily9fhuslJCRgyZIleOuttywYnXW99957+Pjjj+Ho6IiRI0eiUqVKOutcvXoVP/74I5YuXYqZM2eaNZ5Vq1bh+PHjAIB8+fIhPDxc73oREREoWLCgzezbGOY+5rb2ntoKHhciMgd+t1gHj3vWGTzONFnXyZMnERwcjLCwMMTExGi6rPf29oa/vz+6d++OgIAAa4dJudjRo0fRvHlzeHl5YcCAAahZs6bOjZ3Tp09j9erVePToEfbv34969epZO2yLEEJgypQpmD9/PlJSUpAvXz4ULVpUc2zu3r2LxMRE2NvbY9y4cZgzZ47ZYlEqdSsc1a9fH6GhoTrza9SogaJFi2L37t1W37exzH3Mbek9tSU8LkRkDvxusQ4e96xjMk1EBgsLC8OUKVOwf/9+pKSkaI05KISAvb09mjdvjhkzZqBGjRpWjNQ6oqOjsXnz5gxvenXq1AnFixe3dpgAgAcPHuCHH35A/fr10bx58xyz71eZ+5jnpPfUknhciMgc+N1iHTzupmMyTURGe/r0Kf7++2+dL9wqVarA3d3d2uEREREREZkdk2kiMkhMTAw7njBCcnKy5kZDRr2fk/kkJyfjypUrKF26NNzc3KwdDhERGYnXUevjtfT12Js3ERnE19cX1apVw5w5cxAREWHtcGxOSkoKli1bhpYtW6Jw4cJwdnaGp6cnnJ2dUbhwYbRo0QJLly5FcnKytUPVWL16NZo2bWr0dn/++Sd++OEH/Pbbb4iPj9e7zvHjxzF06NCshmiy6Oho1KhRAyEhIdm2z9TUVGzYsAHDhw9H9+7dMXLkSGzdujXb9p9TbN68GV26dEHfvn1x8uRJAMDNmzfRp08flCxZEj4+Pmjfvj3++usvK0dKRDlJTryO5nbmuJbmNiyZJiKDKJVKuLq6IjExEUqlEvXr10e/fv3Qo0ePPD+++YMHD9CyZUuEhYWhQoUKCAgIgLe3N5ydnfHixQvExMTg5MmT+Oeff1C9enXs3bsXhQsXtnbYmDFjBqZNmwaVSmXQ+klJSWjbti1CQkKgvnR4eHhgzpw5GD58uNa6a9aswcCBAw3et7Hmz5+f6fLHjx9jxowZGDJkCN58800AwPjx4w3ef+XKlTF37ly0a9cOgOylvk2bNvjrr7+gUChQsGBBPHjwAADQpk0bbNmyBXZ2dia+mpxj586daN++PfLnz4/8+fMjPj4eBw4cQJcuXfDy5Us0aNAAycnJCA0NxYsXL7B//340atTI2mETkY3LqdfRnM7c19I8QRARGUChUIjVq1eLI0eOiJEjR4pChQoJhUIhnJycRKdOncSGDRvE8+fPrR2mVQwYMEB4eXmJ/fv3Z7re/v37hZeXlxg4cKCFIsvcV199JZRKpVHr29nZiS+++EL8/fffYu/evaJ58+ZCqVSK4cOHC5VKpVl39erVRu3bWAqFQiiVSqFQKDKc0i83NhaFQiHWrFmjeTx69GihUCjEzJkzNef506dPxYQJE4RCoRBz5szJ1tdnqwIDA0WNGjVEfHy8EEKIUaNGiSJFiojq1auLR48eadaLjIwUJUqUEM2bN7dWqESUg+TU62hOZ+5raV7AZJqIDPJqcpGcnCy2bdsm+vTpI/LlyyeUSqVwd3cXgwcPFvv27ROpqalWjNayvLy8xKxZswxad+bMmcLLy8tssSiVSqMnQ1WpUkUMGzZMZ/6MGTOEUqkUnTp1Ei9evBBCmD+ZfuONN0T+/PnFV199JW7duiXCw8O1ptDQUKFQKMTSpUs184zx6vnu5eUlhgwZonfdtm3biqpVq2bp9eQUBQsWFAsXLtQ8vnr1qlAoFGLFihU6686cOVO4u7tbMjwiyqFs6Tqal5j7WpoX2Fu7ZJyIciZ7e3u0b98e7du3R0JCAjZt2oQ1a9ZgzZo1WLVqFYoWLYro6Ghrh2kRL1++NLhjDjc3N7x8+dJssdjZ2aFs2bIGDUl1+vRpTZtXQ9y6dQvjxo3TmT9lyhSULVsWgwYNQosWLbBt2zZjQjbJhQsXsGjRInz55ZfYsWMHFixYgICAAJ31ihQpAj8/vyw919OnT/H48WO0bt1a7/LWrVtj0qRJWXqOnEKlUsHZ2VnzWP2/vvOfPfsTkaFs6Tqal1jyWppbsQMyIsqyfPnyoX///ti1axeio6OxcOFClCpVytphWUz9+vWxcOFCREVFZbpeVFQUFi5ciAYNGpgtlmrVqsHNzQ3ffffda6f27dsbtW8vLy/ExsbqXdarVy9s27YN586dQ6NGjcx+I8Xe3h7jx4/HtWvXUKlSJdSrVw8DBgzI1udVj6OeL18+uLq6QqnM+JKZF9pLA0ClSpWwY8cOzWP1jZPt27frrLtx40aUK1fOYrERUc5lS9fRvMQS19Lcjh2QEZFBlEolVq9ejb59+1o7FJtz9epVNGzYEM+fP0f79u1Rq1YteHt7w8nJCUlJSYiJicHp06exfft2uLq64tChQ3jjjTfMEsuoUaPwyy+/IC4uDk5OTpmuO2PGDHz66adITU01aN+dOnXCgwcPMu2l+cSJE2jfvj2ePHmC1NRUs3VA9qqTJ09izJgxuHTpEiZOnIiePXuicuXK2Lx5Mzp27Gj0/pRKJZydnWFvLytwJSYmYuLEiZg5c6bOuqNHj8b+/ftx7dq1LL8OW7dhwwb07t0bAQEBKFKkCHbv3o3AwEBUrFgRkZGR6NixI1QqFX777TeEhITgu+++w6hRo6wdNhHZOFu6juZl2X0tzQuYTBORQYYMGYL33nsPderUsXYoNikqKgozZszAxo0b9ZbeFi5cGN26dcOUKVPg6+trtjhOnTqFnTt3YtSoUa/t6TQiIgK3bt1CYGCgQftesWIFhg4diqNHj6Ju3boZrnflyhW0atUKUVFRFkum1YKCgjBlyhQkJyfj8ePH2LRpk0k/AIYMGaIzz8fHBzNmzNCa9+zZM5QsWRIdOnTAypUrTY47J/nuu+/w/fffIz4+Ho0bN8Z3330HFxcXdO/eHXv27AEgb0YMHToUP/30U6Yl+kREarZyHaXsu5bmBUymiYiyWXR0NGJiYvD8+XO4uLjA29sbPj4+1g4ry4QQSExMhKOjIxwcHDJd99mzZ3j48KFV2lg9ffoUc+fORWRkJMaOHQt/f3+zPVdSUhLu3r2LAgUKwMPDw2zPk1PcunUL9+7dQ7ly5VCoUCFrh0NEOVRuvY7mJPHx8Zg3b55FrqU5GZNpIiILUndmVbJkSWuHYtZY8srrtMT+cyoeFyLKLtevX0dcXBwqV64MV1dXa4eTZ/C4vx7rXhERWdCiRYtQunRpa4cBwLyx5JXXaYn951Q8LkRkjGXLlqFy5crw8fHBwIEDERcXh9jYWNStWxeVKlVCnTp1UKRIESxcuNDaoeYqGR33OnXq8LgbgENjERERERGR1Wzfvh3Dhw9H9erVUatWLaxbtw5JSUlQqVTw8PDATz/9hOfPn2PlypUYP348ypUrh3bt2lk77Bwvs+NeoEAB/PTTT0hMTMSqVat43DPAZJqIKItWrVpl8Lrnzp0zYyTmjSWvvE5L7D+n4nEhInOYO3cuGjVqhIMHD0KhUODbb7/FhAkT0LZtW03HhoAcsaJatWpYtGgRk7psYOhxHz16NI97Bthmmogoi5RKJRQKBQz9OlUoFGbr5dqcseSV12mJ/edUPC5EZA6FCxfGtGnTMGbMGADAzZs3Ua5cOaxatQr9+/fXWnfGjBn49ttv8eDBA2uEmqvwuGcdS6aJiLLI09MT/v7++Prrr1+77vLly/Hzzz/nyFjyyuu0xP5zKh4XIjKHxMRErQ6u1KMj6OvBu1ixYnj69KnFYsvNeNyzjsk0EVEWBQQE4OrVq6hZs+Zr1929e3eOjSWvvE5L7D+n4nEhInMoVqwYoqOjNY9dXFwwYsQIveNJR0VFoWDBgpYML9ficc869uZNRJRFAQEBuH37NmJjY1+7boECBcw6VJA5Y8krr9MS+8+peFyIyBxq1qyJY8eOaR67urpi8eLFqFChgs66hw8fRtWqVS0ZXq7F4551bDNNRJRFCQkJePDgAXx8fODg4JBrY8krr9MS+8+peFyIyBwuX76M27dvo02bNpmud//+fYwYMQK9e/dGz549LRRd7sXjnnVMpomIiIiIiIiMxGreREREREREREZiMk1ERERERERkJCbTREREREREREZiMk1ERERERERkJCbTREREudCKFSugUCiwYsUKa4dCRESUKzGZJiIim6FQKIya8rLw8HAoFAoMHjzY2qFk2eHDhzXv6e+//27tcKwiN72fRER5hb21AyAiIlL77LPPdOYtWLAAcXFxepdRxrp06YK6devC29vb2qG81vLlywHImym//PILevToYeWIiIiIXo/JNBER2Yzp06frzFuxYgXi4uL0LqOMeXh4wMPDw9phvFZ8fDyCg4NRrVo1FC1aFHv37kVkZCRKlChh7dCIiIgyxWreRESU46SvEnvlyhV06dIFBQsWhEKhQHh4OABg06ZN6NOnD8qVKwdXV1d4eHigYcOG+OOPPzLd37///osuXbrA09MT+fLlQ/PmzXH+/Hmdba5fv44hQ4agdOnScHJygpeXF6pXr45x48ZBCKFZ78yZM3j//fdRpUoVeHh4wMXFBVWrVsXs2bORnJys9/XFxsbio48+QsWKFeHi4gIvLy/UqVMH8+bNAyBvMJQuXRoAsHLlSq2q7yEhIZp1Mmoz/ddff6Fdu3bw8vKCs7MzKlWqhM8++wyJiYk66yoUCjRu3Bj37t3DoEGDUKhQIbi4uKBu3bqa58qKdevWITExEQMHDsTAgQORmpqaYTvv6dOna15jUFAQqlatChcXF5QuXRqLFi0CAAgh8M0336BixYpwdnZG+fLlsWrVKr37e/DgAcaNG6d5D4sUKYKePXvi4sWLOus2btw4w6YFgwcP1jr3AO3jv3fvXtSrVw+urq4oWLAgBg0ahIcPH2qt+7r3k4iIbA9LpomIKMf6999/UbduXVStWhWDBw/Gw4cP4ejoCACYPHkyHB0d0aBBA3h7e+P+/fvYunUrunfvjkWLFmHMmDE6+wsPD0fdunXx5ptvYujQobhx4wa2bNmCJk2a4MqVKyhatCgAIDo6GgEBAUhISEC7du3Qq1cvJCQk4Pr16/jxxx8xb9482NvLS+zSpUuxbds2NGrUCG3btkViYiJCQkIwefJknDp1Sie5v3btGpo0aYKYmBg0aNAAnTt3RkJCAi5duoSZM2fif//7H/z9/TF27FgsXLgQ1atXR+fOnTXblypVKtNj9vvvv6NPnz5wcnJCr169UKRIEezduxdffPEF9uzZg5CQEDg7O2tt8+TJEzRo0AAeHh4YMGAAYmNj8dtvv6FVq1Y4c+YMqlSpYuxbp7F8+XLY2dmhX79+cHd3x8iRIxEUFISpU6dmmLwuWLAAISEh6NSpE5o2bYo//vgDY8eOhaurK86dO4c//vgD7du3R7NmzbB+/XoMGjQIpUqVQqNGjTT7uH//Pt5++23cuHEDjRs3Ru/evXHr1i0EBwdjx44d2LNnDxo0aGDy61LbunUrduzYgQ4dOqBevXo4fPgwVq1ahRs3buDIkSMAkKX3k4iIrEgQERHZMD8/P/Hq5erWrVsCgAAgpk2bpne7Gzdu6Mx7+vSpqFq1qvDw8BAJCQl69zd79mytbaZOnSoAiFmzZmnmLVq0SAAQCxYs0HmOhw8faj2+ffu2SElJ0ZqXmpoqhg4dKgCII0eOaC2rVauWACCWLFmis+/IyEidmAcNGqTn1QsRFBQkAIigoCDNvLi4OOHh4SGcnJzE+fPnNfNVKpXo1auXACC++OILrf2oj8uoUaOESqXSzF+2bJkAIEaMGKH3+Q1x4cIFAUC0atVKM2/gwIECgNi/f7/O+p999pkAILy8vLTe34iICOHo6Cg8PDxEhQoVRGxsrGbZ8ePHBQDRoUMHrX0NGTJEABCTJ0/Wmr9jxw4BQJQrV07r9QYGBuqch2qDBg0SAMStW7c089TH397eXus9TklJEY0bNxYAxLFjxzTzX/d+EhGR7WE1byIiyrGKFSuGTz75RO+yMmXK6MzLnz8/Bg8ejLi4OJw6dUpneenSpTFhwgStecOGDQMAveu7uLjozPPy8tJ6XLJkSdjZ2WnNUygUGD16NABg//79mvknT57E6dOn0ahRI7z77rs6+/b19dWZZ4wtW7YgLi4OQ4cORbVq1TTzlUolvv76a9jb2+utYp0vXz7MmTMHSmXaz4ZBgwbB3t5e73ExlLrjsYEDB2rmqf9XL9Nn7NixWu9viRIl0KBBA8TFxeGTTz5B4cKFNcvq1KmDMmXKaFXVf/nyJdatW4eCBQti6tSpWvtu27YtWrRogX///Rd//fWXya9NrW/fvqhfv77msZ2dHQYNGgRA/zlFREQ5B5NpIiLKsapXr66p1v2q2NhYjB8/Hm+88QZcXV01bVA/+ugjALKq9qv8/f21EkYgLYF98uSJZl6HDh2QL18+jB49Gr169UJQUBBu3rypN46XL19i/vz5CAgIgLu7O5RKJRQKBWrWrKkTx8mTJwEALVu2NPAIGOfcuXMAZPvfV5UsWRJlypTBzZs38fTpU61lFSpUQP78+bXm2dvbo2jRolrHxRhJSUlYvXo13Nzc0KVLF838Jk2aoESJEti0aRMeP36sd1t/f3+deepeyzNalv44X716FS9evEBAQABcXV111m/SpAkAICwszIhXpJ/6fU5P3zlFREQ5D9tMExFRjqVuw/yqR48eoXbt2oiIiED9+vXRvHlzFChQAHZ2dggLC8OWLVuQlJSks527u7vOPHXbZ5VKpZlXqlQpHD9+HNOnT8fOnTuxYcMGAEClSpXwxRdfaA3t1L17d2zbtg0VKlTQtFF2cHDAkydPsHDhQq044uLiAADFixc34Wi8Xnx8PICMj5u3tzf++ecfxMfHw83NTTNf33EB5LFJf1yMsXnzZjx8+BBDhgzRKuFXKpXo168fZs+ejbVr12pK8NPL7H3KaFlKSormsSHHIf16WWHoOUVERDkPk2kiIsqxMuqgavny5YiIiMCXX36pU4139uzZ2LJlS5afu0qVKggODkZycjLOnDmDXbt2YdGiRejVqxd8fHxQv359nDp1Ctu2bUOrVq2wY8cOrerex48fx8KFC7X2WaBAAQBAVFRUluPTR53Y3bt3T+/yu3fvaq1nTupq3EFBQQgKCspwHX3JdFaZchzUNRZSUlI0ybCa+iYIERHlLUymiYgo17lx4wYAoFOnTjrLQkNDs/W5HBwcULduXdStWxflypXDwIEDsX37dtSvX18TR7t27XTaTeuLIyAgAACwd+/eDNuCq6n3Z0zpZo0aNQAAISEh6Nmzp9ayyMhI3LhxA2XKlNEqlTaH27dv48CBAyhatCjat2+vd50///wT586dw7lz5zRxZ5dKlSrB2dkZp06dQmJiok5Vb/VwVOmrjHt6egKQNzr8/Pw081NTU/UOnWYsU95PIiKyLraZJiKiXEed7KiHHlJbu3Ytdu7cmeX9nzlzRm8VYHVJp3poqYziuHTpEmbNmqWzfe3atVG7dm0cPnwYS5cu1VmevsTa09MTCoUCkZGRBsfdqVMneHh4ICgoCJcuXdLMF0Jg0qRJSElJweDBgw3en6mCgoKQmpqKESNGYNmyZXqnjz/+GEDmHZGZytHREX369MGDBw903ofdu3djz549KFeunFbHYbVr1wYAnQ7a5s+fj1u3bmU5JlPeTyIisi6WTBMRUa4zYMAAzJkzB2PGjMHBgwfh5+eH8+fP48CBA+jatSs2btyYpf3/+uuv+Pnnn9GoUSOULVsW7u7uuHz5Mnbu3AkvLy8MGTIEgCxpDggIwIYNGxATE4O6desiIiICW7duRbt27RAcHKyz7zVr1qBx48YYPnw4fv31V7z99tt48eIFLl26hHPnzuHhw4cAZM/k6sR7wIABKF++PJRKJQYMGKBVcpqeu7s7li5dij59+qBOnTro1asXChcujP379+PMmTMICAjQ6c08u6WmpiIoKAgKhSLTxL1Xr14YN24c1qxZg3nz5umMfZ1Vc+bMwaFDh/DVV1/h6NGjqFOnDsLDw/H777/D1dUVQUFBWp3RDRkyBF9//TWmT5+OsLAwlC1bFqdPn8bFixcRGBiIQ4cOZSkeU95PIiKyLibTRESU6/j6+uLQoUOYOHEi9u/fj5SUFLz11lvYu3cvIiMjs5xM9+nTBy9evMBff/2FkydPIikpCb6+vhg5ciQmTJiAkiVLApBVd7dv346PP/4Yu3fvxqlTp1C+fHnMmzcPbdq00ZtMly9fHmfPnsWsWbOwbds2LFiwAPnz50f58uV12n//+uuv+PDDD7F9+3bExcVBCIEGDRpkmnz16NEDxYoVw6xZs7Bx40YkJiaiVKlS+PTTTzFp0qRsT1pftX//fkRERCAwMBClS5fOcD0PDw907doVa9aswcaNG9G3b99sjaNw4cI4ceIEvvzyS2zZsgWhoaHw8PBA586d8dlnn6FKlSpa6xctWhQHDx7ERx99hL1798Le3h5NmjTB8ePH8dVXX2U5mQZMez+JiMh6FEIIYe0giIiIiIiIiHIStpkmIiIiIiIiMhKTaSIiIiIiIiIjsc00ERERZdnmzZsRFhb22vUaN26Mxo0bmz0eIiIic2MyTURERFm2efNmrFy50qB1mUwTEVFuwA7IiIiIiIiIiIzENtNERERERERERmIyTURERERERGQkJtNERERERERERmIyTURERERERGQkJtNERERERERERmIyTURERERERGQkJtNERERERERERmIyTURERERERGQkJtNERERERERERvo/qmLeIFb9viIAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# Let's also group Vehicle_Speed, Transaction_Amount columns\n",
"def Vehicle_Speed_group(speed):\n",
" if speed <= 21:\n",
" return '<= 21'\n",
" elif speed <= 41:\n",
" return '21-41'\n",
" elif speed <= 93:\n",
" return '41-93'\n",
" elif speed <= 103:\n",
" return '93-103'\n",
" else:\n",
" return '103 <'\n",
"\n",
"def Transaction_Amount_group(amount):\n",
" if amount <= 60:\n",
" return '<= 60'\n",
" elif amount <= 180:\n",
" return '60-180'\n",
" elif amount <= 330:\n",
" return '180-330'\n",
" else:\n",
" return '330 <'\n",
"\n",
"df['Vehicle_Speed_group'] = df['Vehicle_Speed'].apply(lambda x: Vehicle_Speed_group(x))\n",
"df['Transaction_Amount_group'] = df['Transaction_Amount'].apply(lambda x: Transaction_Amount_group(x))"
],
"metadata": {
"id": "sTv3x6AxIvUI"
},
"execution_count": 78,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's encode categorical features\n",
"df = pd.get_dummies(df, columns=['Vehicle_Type', 'Lane_Type','TollBoothID', 'Vehicle_Dimensions','Vehicle_Speed_group','Transaction_Amount_group'], drop_first=True)"
],
"metadata": {
"id": "r9Jui9rNOUcI"
},
"execution_count": 79,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Data Preprocessing"
],
"metadata": {
"id": "5Kl79dn9PPmH"
}
},
{
"cell_type": "code",
"source": [
"df.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 360
},
"id": "VmXFcpOlxE1y",
"outputId": "d76a6def-bef9-444e-ead1-3266aa11d287"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Transaction_ID Timestamp FastagID Transaction_Amount \\\n",
"0 1 1/6/2023 11:20 FTG-001-ABC-121 350 \n",
"1 2 1/7/2023 14:55 FTG-002-XYZ-451 120 \n",
"2 3 1/8/2023 18:25 NaN 0 \n",
"3 4 1/9/2023 2:05 FTG-044-LMN-322 350 \n",
"4 5 1/10/2023 6:35 FTG-505-DEF-652 140 \n",
"\n",
" Amount_paid Geographical_Location Vehicle_Speed \\\n",
"0 120 13.059816123454882, 77.77068662374292 65 \n",
"1 100 13.059816123454882, 77.77068662374292 78 \n",
"2 0 13.059816123454882, 77.77068662374292 53 \n",
"3 120 13.059816123454882, 77.77068662374292 92 \n",
"4 100 13.059816123454882, 77.77068662374292 60 \n",
"\n",
" Vehicle_Plate_Number Fraud_indicator lat ... \\\n",
"0 KA11AB1234 1 13.059816123454882 ... \n",
"1 KA66CD5678 1 13.059816123454882 ... \n",
"2 KA88EF9012 0 13.059816123454882 ... \n",
"3 KA11GH3456 1 13.059816123454882 ... \n",
"4 KA44IJ6789 1 13.059816123454882 ... \n",
"\n",
" TollBoothID_D-106 Vehicle_Dimensions_Medium Vehicle_Dimensions_Small \\\n",
"0 False False False \n",
"1 False False True \n",
"2 False False True \n",
"3 False False False \n",
"4 False True False \n",
"\n",
" Vehicle_Speed_group_21-41 Vehicle_Speed_group_41-93 \\\n",
"0 False True \n",
"1 False True \n",
"2 False True \n",
"3 False True \n",
"4 False True \n",
"\n",
" Vehicle_Speed_group_93-103 Vehicle_Speed_group_<= 21 \\\n",
"0 False False \n",
"1 False False \n",
"2 False False \n",
"3 False False \n",
"4 False False \n",
"\n",
" Transaction_Amount_group_330 < Transaction_Amount_group_60-180 \\\n",
"0 True False \n",
"1 False True \n",
"2 False False \n",
"3 True False \n",
"4 False True \n",
"\n",
" Transaction_Amount_group_<= 60 \n",
"0 False \n",
"1 False \n",
"2 True \n",
"3 False \n",
"4 False \n",
"\n",
"[5 rows x 33 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Transaction_ID | \n",
" Timestamp | \n",
" FastagID | \n",
" Transaction_Amount | \n",
" Amount_paid | \n",
" Geographical_Location | \n",
" Vehicle_Speed | \n",
" Vehicle_Plate_Number | \n",
" Fraud_indicator | \n",
" lat | \n",
" ... | \n",
" TollBoothID_D-106 | \n",
" Vehicle_Dimensions_Medium | \n",
" Vehicle_Dimensions_Small | \n",
" Vehicle_Speed_group_21-41 | \n",
" Vehicle_Speed_group_41-93 | \n",
" Vehicle_Speed_group_93-103 | \n",
" Vehicle_Speed_group_<= 21 | \n",
" Transaction_Amount_group_330 < | \n",
" Transaction_Amount_group_60-180 | \n",
" Transaction_Amount_group_<= 60 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 1/6/2023 11:20 | \n",
" FTG-001-ABC-121 | \n",
" 350 | \n",
" 120 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 65 | \n",
" KA11AB1234 | \n",
" 1 | \n",
" 13.059816123454882 | \n",
" ... | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 1/7/2023 14:55 | \n",
" FTG-002-XYZ-451 | \n",
" 120 | \n",
" 100 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 78 | \n",
" KA66CD5678 | \n",
" 1 | \n",
" 13.059816123454882 | \n",
" ... | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" 1/8/2023 18:25 | \n",
" NaN | \n",
" 0 | \n",
" 0 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 53 | \n",
" KA88EF9012 | \n",
" 0 | \n",
" 13.059816123454882 | \n",
" ... | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 1/9/2023 2:05 | \n",
" FTG-044-LMN-322 | \n",
" 350 | \n",
" 120 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 92 | \n",
" KA11GH3456 | \n",
" 1 | \n",
" 13.059816123454882 | \n",
" ... | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 1/10/2023 6:35 | \n",
" FTG-505-DEF-652 | \n",
" 140 | \n",
" 100 | \n",
" 13.059816123454882, 77.77068662374292 | \n",
" 60 | \n",
" KA44IJ6789 | \n",
" 1 | \n",
" 13.059816123454882 | \n",
" ... | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" True | \n",
" False | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 33 columns
\n",
"
\n",
"
\n",
"
\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "df"
}
},
"metadata": {},
"execution_count": 74
}
]
},
{
"cell_type": "code",
"source": [
"# Let's first remove unnecessary columns\n",
"df.drop(columns = ['Transaction_ID','Timestamp','FastagID','Geographical_Location','Vehicle_Plate_Number'], inplace = True)"
],
"metadata": {
"id": "XsD8KB7oPAUu"
},
"execution_count": 80,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's handle missing values\n",
"df.isnull().sum()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "bgS6H9TeQWCX",
"outputId": "57aa3ccd-c563-46d5-f81f-f792a45cc85d"
},
"execution_count": 81,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Transaction_Amount 0\n",
"Amount_paid 0\n",
"Vehicle_Speed 0\n",
"Fraud_indicator 0\n",
"Percent_paid 0\n",
"Vehicle_Type_Car 0\n",
"Vehicle_Type_Motorcycle 0\n",
"Vehicle_Type_SUV 0\n",
"Vehicle_Type_Sedan 0\n",
"Vehicle_Type_Truck 0\n",
"Vehicle_Type_Van 0\n",
"Lane_Type_Regular 0\n",
"TollBoothID_B-102 0\n",
"TollBoothID_C-103 0\n",
"TollBoothID_D-104 0\n",
"TollBoothID_D-105 0\n",
"TollBoothID_D-106 0\n",
"Vehicle_Dimensions_Medium 0\n",
"Vehicle_Dimensions_Small 0\n",
"Vehicle_Speed_group_21-41 0\n",
"Vehicle_Speed_group_41-93 0\n",
"Vehicle_Speed_group_93-103 0\n",
"Vehicle_Speed_group_<= 21 0\n",
"Transaction_Amount_group_330 < 0\n",
"Transaction_Amount_group_60-180 0\n",
"Transaction_Amount_group_<= 60 0\n",
"dtype: int64"
]
},
"metadata": {},
"execution_count": 81
}
]
},
{
"cell_type": "code",
"source": [
"# Let's convert all bool to int\n",
"for col in df.select_dtypes(include=['bool', 'object']):\n",
" try:\n",
" df[col] = df[col].astype(int)\n",
" except ValueError:\n",
" df[col] = df[col].astype(float).round().astype(int)"
],
"metadata": {
"id": "jI2DrcHtSaUm"
},
"execution_count": 82,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Okey Great !!!✅"
],
"metadata": {
"id": "9MD32W9WWjnN"
}
},
{
"cell_type": "code",
"source": [
"# Let's check unique values for each columns\n",
"for i in df.columns:\n",
" print(f'{i}: [{df[i].nunique()}]')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "KOA4JYADQE01",
"outputId": "dea4cb10-14d0-491b-c852-155970d4d39d"
},
"execution_count": 20,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Transaction_Amount: [20]\n",
"Amount_paid: [23]\n",
"Vehicle_Speed: [85]\n",
"Fraud_indicator: [2]\n",
"lat: [1]\n",
"long: [2]\n",
"Percent_paid: [84]\n",
"Vehicle_Type_Car: [2]\n",
"Vehicle_Type_Motorcycle: [2]\n",
"Vehicle_Type_SUV: [2]\n",
"Vehicle_Type_Sedan: [2]\n",
"Vehicle_Type_Truck: [2]\n",
"Vehicle_Type_Van: [2]\n",
"Lane_Type_Regular: [2]\n",
"TollBoothID_B-102: [2]\n",
"TollBoothID_C-103: [2]\n",
"TollBoothID_D-104: [2]\n",
"TollBoothID_D-105: [2]\n",
"TollBoothID_D-106: [2]\n",
"Vehicle_Dimensions_Medium: [2]\n",
"Vehicle_Dimensions_Small: [2]\n",
"Vehicle_Speed_group_21-41: [2]\n",
"Vehicle_Speed_group_41-93: [2]\n",
"Vehicle_Speed_group_93-103: [2]\n",
"Vehicle_Speed_group_<= 21: [2]\n",
"Transaction_Amount_group_330 <: [2]\n",
"Transaction_Amount_group_60-180: [2]\n",
"Transaction_Amount_group_<= 60: [2]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"df.dtypes"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ycpdIgLq0UfZ",
"outputId": "1b5e2e52-8816-4ac8-d25c-619484b44029"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Transaction_Amount int64\n",
"Amount_paid int64\n",
"Vehicle_Speed int64\n",
"Fraud_indicator int64\n",
"lat object\n",
"long object\n",
"Percent_paid float64\n",
"Vehicle_Type_Car int64\n",
"Vehicle_Type_Motorcycle int64\n",
"Vehicle_Type_SUV int64\n",
"Vehicle_Type_Sedan int64\n",
"Vehicle_Type_Truck int64\n",
"Vehicle_Type_Van int64\n",
"Lane_Type_Regular int64\n",
"TollBoothID_B-102 int64\n",
"TollBoothID_C-103 int64\n",
"TollBoothID_D-104 int64\n",
"TollBoothID_D-105 int64\n",
"TollBoothID_D-106 int64\n",
"Vehicle_Dimensions_Medium int64\n",
"Vehicle_Dimensions_Small int64\n",
"Vehicle_Speed_group_21-41 int64\n",
"Vehicle_Speed_group_41-93 int64\n",
"Vehicle_Speed_group_93-103 int64\n",
"Vehicle_Speed_group_<= 21 int64\n",
"Transaction_Amount_group_330 < int64\n",
"Transaction_Amount_group_60-180 int64\n",
"Transaction_Amount_group_<= 60 int64\n",
"dtype: object"
]
},
"metadata": {},
"execution_count": 90
}
]
},
{
"cell_type": "markdown",
"source": [
"# Machine Learning Model Development"
],
"metadata": {
"id": "IXrvqggoYIJW"
}
},
{
"cell_type": "code",
"source": [
"# Let's copy dataset\n",
"ml_data = df.copy()"
],
"metadata": {
"id": "WOJmMqrhYD9G"
},
"execution_count": 83,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's define target and input value\n",
"X = ml_data.drop('Fraud_indicator', axis =1)\n",
"y = ml_data['Fraud_indicator']"
],
"metadata": {
"id": "Qv8Hv72QZROW"
},
"execution_count": 84,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's divide dataset to train and test data\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
],
"metadata": {
"id": "S4Kkk4sEZS-k"
},
"execution_count": 85,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's import necessary libraries\n",
"import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier, AdaBoostClassifier\n",
"from sklearn.svm import SVC\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score\n",
"\n",
"# Define classifiers\n",
"classifiers = {\n",
" \"Logistic Regression\": LogisticRegression(max_iter=1000),\n",
" \"K Nearest Neighbors\": KNeighborsClassifier(),\n",
" \"Decision Tree\": DecisionTreeClassifier(),\n",
" \"Random Forest\": RandomForestClassifier(),\n",
" \"Gradient Boosting\": GradientBoostingClassifier(),\n",
" \"Support Vector Classification\": SVC(),\n",
" \"AdaBoost\": AdaBoostClassifier(),\n",
" \"Naive Bayes\": GaussianNB()\n",
"}\n",
"\n",
"for key, classifier in classifiers.items():\n",
" classifier.fit(X_train, y_train)\n",
" y_pred = classifier.predict(X_test)\n",
"\n",
" accuracy = accuracy_score(y_test, y_pred)\n",
" precision = precision_score(y_test, y_pred, average='weighted')\n",
" recall = recall_score(y_test, y_pred, average='weighted')\n",
" f1 = f1_score(y_test, y_pred, average='weighted')\n",
"\n",
" print(\"Classifier:\", key)\n",
" print(\"Accuracy:\", round(accuracy * 100, 2), \"%\")\n",
" print(\"Precision:\", round(precision * 100, 2), \"%\")\n",
" print(\"Recall:\", round(recall * 100, 2), \"%\")\n",
" print(\"F1 Score:\", round(f1 * 100, 2), \"%\")\n",
" print()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Ccls_K3PXz3M",
"outputId": "d88d000f-1356-47f1-cd79-088fc5b62f1a"
},
"execution_count": 57,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Classifier: Logistic Regression\n",
"Accuracy: 98.3 %\n",
"Precision: 98.34 %\n",
"Recall: 98.3 %\n",
"F1 Score: 98.27 %\n",
"\n",
"Classifier: K Nearest Neighbors\n",
"Accuracy: 99.1 %\n",
"Precision: 99.11 %\n",
"Recall: 99.1 %\n",
"F1 Score: 99.09 %\n",
"\n",
"Classifier: Decision Tree\n",
"Accuracy: 100.0 %\n",
"Precision: 100.0 %\n",
"Recall: 100.0 %\n",
"F1 Score: 100.0 %\n",
"\n",
"Classifier: Random Forest\n",
"Accuracy: 99.9 %\n",
"Precision: 99.9 %\n",
"Recall: 99.9 %\n",
"F1 Score: 99.9 %\n",
"\n",
"Classifier: Gradient Boosting\n",
"Accuracy: 100.0 %\n",
"Precision: 100.0 %\n",
"Recall: 100.0 %\n",
"F1 Score: 100.0 %\n",
"\n",
"Classifier: Support Vector Classification\n",
"Accuracy: 98.3 %\n",
"Precision: 98.34 %\n",
"Recall: 98.3 %\n",
"F1 Score: 98.27 %\n",
"\n",
"Classifier: AdaBoost\n",
"Accuracy: 100.0 %\n",
"Precision: 100.0 %\n",
"Recall: 100.0 %\n",
"F1 Score: 100.0 %\n",
"\n",
"Classifier: Naive Bayes\n",
"Accuracy: 50.0 %\n",
"Precision: 82.94 %\n",
"Recall: 50.0 %\n",
"F1 Score: 51.96 %\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Let's continue DecisionTreeRegressor -> Random Search\n",
"\n",
"from sklearn.model_selection import RandomizedSearchCV\n",
"from sklearn.tree import DecisionTreeRegressor\n",
"\n",
"param_grid = {\n",
" 'max_depth': [None, 10, 20, 30, 40],\n",
" 'min_samples_split': [2, 5, 10],\n",
" 'min_samples_leaf': [1, 2, 4]\n",
"}\n",
"\n",
"dt_regressor = DecisionTreeRegressor()\n",
"\n",
"dt_random = RandomizedSearchCV(estimator=dt_regressor, param_distributions=param_grid,\n",
" n_iter=100, cv=3, verbose=2, random_state=42, n_jobs=-1)\n",
"\n",
"dt_random.fit(X_train, y_train)\n",
"\n",
"print(\"Best parameters found for Decision Tree Regression:\")\n",
"print(dt_random.best_params_)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "WhXDVNgbbaUU",
"outputId": "b8d2e13f-bb70-4a2f-a2c6-8bd132c29f49"
},
"execution_count": 28,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Fitting 3 folds for each of 45 candidates, totalling 135 fits\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.10/dist-packages/sklearn/model_selection/_search.py:305: UserWarning: The total space of parameters 45 is smaller than n_iter=100. Running 45 iterations. For exhaustive searches, use GridSearchCV.\n",
" warnings.warn(\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Best parameters found for Decision Tree Regression:\n",
"{'min_samples_split': 2, 'min_samples_leaf': 1, 'max_depth': None}\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## Decision Tree Classification is the Ideal Model for this Task\n",
"If you're looking for a suitable model for this task, Decision Tree Classification stands out as the optimal choice."
],
"metadata": {
"id": "BMNhTnz4iIIa"
}
},
{
"cell_type": "code",
"source": [
"import pickle\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"\n",
"dt = DecisionTreeClassifier(min_samples_split=2, min_samples_leaf=1, max_depth=None, random_state=42)\n",
"\n",
"dt.fit(X_train, y_train)\n",
"\n",
"# Let's save the model as a pickle file\n",
"with open('dt_model.pkl', 'wb') as file:\n",
" pickle.dump(dt, file)\n",
"\n",
"print(\"Model saved as dt_model.pkl\")"
],
"metadata": {
"id": "gIeL2M68qIMC",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d3f78a98-167f-4798-e9b0-5fcb7dcb9fdc"
},
"execution_count": 86,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model saved as dt_model.pkl\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"X_train.columns"
],
"metadata": {
"id": "OThjl6Llw--v",
"outputId": "3c88b22b-8f3d-4f69-ffc2-d278e3187923",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 88,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Index(['Transaction_Amount', 'Amount_paid', 'Vehicle_Speed', 'Percent_paid',\n",
" 'Vehicle_Type_Car', 'Vehicle_Type_Motorcycle', 'Vehicle_Type_SUV',\n",
" 'Vehicle_Type_Sedan', 'Vehicle_Type_Truck', 'Vehicle_Type_Van',\n",
" 'Lane_Type_Regular', 'TollBoothID_B-102', 'TollBoothID_C-103',\n",
" 'TollBoothID_D-104', 'TollBoothID_D-105', 'TollBoothID_D-106',\n",
" 'Vehicle_Dimensions_Medium', 'Vehicle_Dimensions_Small',\n",
" 'Vehicle_Speed_group_21-41', 'Vehicle_Speed_group_41-93',\n",
" 'Vehicle_Speed_group_93-103', 'Vehicle_Speed_group_<= 21',\n",
" 'Transaction_Amount_group_330 <', 'Transaction_Amount_group_60-180',\n",
" 'Transaction_Amount_group_<= 60'],\n",
" dtype='object')"
]
},
"metadata": {},
"execution_count": 88
}
]
},
{
"cell_type": "code",
"source": [
"# Let's look at input values\n",
"X_train.columns"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "IEuk2z6ITgtr",
"outputId": "e0680821-1a8c-40cc-c53c-9e7f52d30db2"
},
"execution_count": 59,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Index(['Transaction_Amount', 'Amount_paid', 'Vehicle_Speed', 'Percent_paid',\n",
" 'Vehicle_Type_Car', 'Vehicle_Type_Motorcycle', 'Vehicle_Type_SUV',\n",
" 'Vehicle_Type_Sedan', 'Vehicle_Type_Truck', 'Vehicle_Type_Van',\n",
" 'Lane_Type_Regular', 'TollBoothID_B-102', 'TollBoothID_C-103',\n",
" 'TollBoothID_D-104', 'TollBoothID_D-105', 'TollBoothID_D-106',\n",
" 'Vehicle_Dimensions_Medium', 'Vehicle_Dimensions_Small',\n",
" 'Vehicle_Speed_group_21-41', 'Vehicle_Speed_group_41-93',\n",
" 'Vehicle_Speed_group_93-103', 'Vehicle_Speed_group_<= 21',\n",
" 'Transaction_Amount_group_330 <', 'Transaction_Amount_group_60-180',\n",
" 'Transaction_Amount_group_<= 60'],\n",
" dtype='object')"
]
},
"metadata": {},
"execution_count": 59
}
]
},
{
"cell_type": "markdown",
"source": [
"# Neural Network Model Development"
],
"metadata": {
"id": "N2VZaKBBlPtD"
}
},
{
"cell_type": "code",
"source": [
"# Let's copy dataset\n",
"nn_data = df.copy()"
],
"metadata": {
"id": "pWJy3NNOlJ48"
},
"execution_count": 31,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's define target and input value\n",
"X = ml_data.drop('Fraud_indicator', axis =1)\n",
"y = ml_data['Fraud_indicator']"
],
"metadata": {
"id": "gxeu3DxVd_4g"
},
"execution_count": 33,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Let's divide dataset to train and test data\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
],
"metadata": {
"id": "NWbSOOLkd_yo"
},
"execution_count": 34,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.metrics import classification_report, accuracy_score, precision_score, recall_score, f1_score\n",
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense, Dropout\n",
"from tensorflow.keras.callbacks import EarlyStopping\n",
"\n",
"\n",
"# Standardize the features\n",
"scaler = StandardScaler()\n",
"X_train_scaled = scaler.fit_transform(X_train)\n",
"X_test_scaled = scaler.transform(X_test)\n",
"\n",
"# Build the neural network model for classification\n",
"model = Sequential([\n",
" Dense(64, activation='relu', input_shape=(X_train_scaled.shape[1],)),\n",
" Dropout(0.2),\n",
" Dense(32, activation='relu'),\n",
" Dropout(0.2),\n",
" Dense(1, activation='sigmoid') # Output layer for binary classification\n",
"])\n",
"\n",
"# Compile the model\n",
"model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n",
"\n",
"# Define early stopping to prevent overfitting\n",
"early_stopping = EarlyStopping(monitor='val_loss', patience=5, restore_best_weights=True)\n",
"\n",
"# Train the model\n",
"history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_split=0.2, callbacks=[early_stopping])\n",
"\n",
"# Predict on the test set\n",
"y_pred_prob = model.predict(X_test_scaled)\n",
"y_pred = (y_pred_prob > 0.5).astype(int) # Convert probabilities to binary predictions\n",
"\n",
"# Evaluate the model using classification metrics\n",
"accuracy = accuracy_score(y_test, y_pred)\n",
"precision = precision_score(y_test, y_pred)\n",
"recall = recall_score(y_test, y_pred)\n",
"f1 = f1_score(y_test, y_pred)\n",
"\n",
"print(\"Accuracy:\", round(accuracy * 100, 2), \"%\")\n",
"print(\"Precision:\", round(precision * 100, 2), \"%\")\n",
"print(\"Recall:\", round(recall * 100, 2), \"%\")\n",
"print(\"F1 Score:\", round(f1 * 100, 2), \"%\")\n",
"\n",
"# Print detailed classification report\n",
"print(\"\\nClassification Report:\\n\", classification_report(y_test, y_pred))"
],
"metadata": {
"id": "gHe_ALIxiOGl",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "20791004-0ff0-456c-d2a6-7bb25de4f84c"
},
"execution_count": 36,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/10\n",
"100/100 [==============================] - 1s 4ms/step - loss: 0.4956 - accuracy: 0.7534 - val_loss: 0.3198 - val_accuracy: 0.8625\n",
"Epoch 2/10\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.2969 - accuracy: 0.8737 - val_loss: 0.2005 - val_accuracy: 0.9225\n",
"Epoch 3/10\n",
"100/100 [==============================] - 0s 3ms/step - loss: 0.1929 - accuracy: 0.9394 - val_loss: 0.1197 - val_accuracy: 0.9688\n",
"Epoch 4/10\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.1404 - accuracy: 0.9591 - val_loss: 0.0882 - val_accuracy: 0.9750\n",
"Epoch 5/10\n",
"100/100 [==============================] - 0s 3ms/step - loss: 0.1188 - accuracy: 0.9675 - val_loss: 0.0674 - val_accuracy: 0.9787\n",
"Epoch 6/10\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.1036 - accuracy: 0.9737 - val_loss: 0.0511 - val_accuracy: 0.9887\n",
"Epoch 7/10\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.0865 - accuracy: 0.9806 - val_loss: 0.0468 - val_accuracy: 0.9862\n",
"Epoch 8/10\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.0751 - accuracy: 0.9828 - val_loss: 0.0472 - val_accuracy: 0.9887\n",
"Epoch 9/10\n",
"100/100 [==============================] - 0s 3ms/step - loss: 0.0675 - accuracy: 0.9844 - val_loss: 0.0351 - val_accuracy: 0.9887\n",
"Epoch 10/10\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.0609 - accuracy: 0.9894 - val_loss: 0.0337 - val_accuracy: 0.9900\n",
"32/32 [==============================] - 0s 2ms/step\n",
"Accuracy: 98.5 %\n",
"Precision: 100.0 %\n",
"Recall: 93.09 %\n",
"F1 Score: 96.42 %\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" 0 0.98 1.00 0.99 783\n",
" 1 1.00 0.93 0.96 217\n",
"\n",
" accuracy 0.98 1000\n",
" macro avg 0.99 0.97 0.98 1000\n",
"weighted avg 0.99 0.98 0.98 1000\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Optionally, visualize training history\n",
"import matplotlib.pyplot as plt\n",
"\n",
"plt.plot(history.history['loss'], label='Training Loss')\n",
"plt.plot(history.history['val_loss'], label='Validation Loss')\n",
"plt.xlabel('Epoch')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"plt.show()"
],
"metadata": {
"id": "sXVGr03siOAi",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 449
},
"outputId": "06544a56-8376-4b8c-c46f-56664d18b0c5"
},
"execution_count": 37,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"