├── img ├── test.txt ├── hulk.gif ├── portscan.gif ├── slowloris.png ├── InputFormat.png ├── golden-eye.png ├── fine-tune-goldeneye.png └── fine-tune-goldeneye-2.png ├── PcapSamples ├── README.md ├── hulk.pcap ├── text.pcap ├── xmas.pcap ├── GoldenEye.pcap ├── nmap_fin.pcap ├── nmap_null.pcap ├── portscan.pcap ├── http_slowloris.pcap ├── discovery_scan_dcerpc_endpoint_mapper.pcapng └── DE_byt3bl33d3r_remote_eventservice_crash.pcapng ├── README.md └── NetworkPcapAnalysis.ipynb /img/test.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /PcapSamples/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/hulk.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/hulk.gif -------------------------------------------------------------------------------- /img/portscan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/portscan.gif -------------------------------------------------------------------------------- /img/slowloris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/slowloris.png -------------------------------------------------------------------------------- /img/InputFormat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/InputFormat.png -------------------------------------------------------------------------------- /img/golden-eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/golden-eye.png -------------------------------------------------------------------------------- /PcapSamples/hulk.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/hulk.pcap -------------------------------------------------------------------------------- /PcapSamples/text.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/text.pcap -------------------------------------------------------------------------------- /PcapSamples/xmas.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/xmas.pcap -------------------------------------------------------------------------------- /PcapSamples/GoldenEye.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/GoldenEye.pcap -------------------------------------------------------------------------------- /PcapSamples/nmap_fin.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/nmap_fin.pcap -------------------------------------------------------------------------------- /PcapSamples/nmap_null.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/nmap_null.pcap -------------------------------------------------------------------------------- /PcapSamples/portscan.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/portscan.pcap -------------------------------------------------------------------------------- /img/fine-tune-goldeneye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/fine-tune-goldeneye.png -------------------------------------------------------------------------------- /img/fine-tune-goldeneye-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/img/fine-tune-goldeneye-2.png -------------------------------------------------------------------------------- /PcapSamples/http_slowloris.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/http_slowloris.pcap -------------------------------------------------------------------------------- /PcapSamples/discovery_scan_dcerpc_endpoint_mapper.pcapng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/discovery_scan_dcerpc_endpoint_mapper.pcapng -------------------------------------------------------------------------------- /PcapSamples/DE_byt3bl33d3r_remote_eventservice_crash.pcapng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TPs-ESIR-S9/PcapFileAnalysis/HEAD/PcapSamples/DE_byt3bl33d3r_remote_eventservice_crash.pcapng -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

ESIR-S9 - AI Project : Network Traffic Analysis 🦈

2 | Yazid BENJAMAA (@Xacone) & Thomas DELAPART (@Thomega35) 3 |

4 | The project's purpose is to predict wether a network activiy is malicious or not, this classification is achieved by analysis each packet content and context in a network capture file (pcap) and then returning a brief of the attacks that were detected. 5 |

We also built a little Flask web app which has Google Colab as a backend that allows to visualiaze classification results, more details below. 6 | 7 |

Model and input format

8 | 9 | We took the following model from HuggingFace : rdpahalavan/bert-network-packet-flow-header-payload which classifies a single network packet into one of these categories : 10 | ``` 11 | ['Analysis', 'Backdoor', 'Bot', 'DDoS', 'DoS', 'DoS GoldenEye', 'DoS Hulk', 'DoS SlowHTTPTest', 'DoS Slowloris', 'Exploits', 'FTP Patator', 'Fuzzers', 'Generic', 'Heartbleed', 'Infiltration', 'Normal', 'Port Scan', 'Reconnaissance', 'SSH Patator', 'Shellcode', 'Web Attack - Brute Force', 'Web Attack - SQL Injection', 'Web Attack - XSS', 'Worms'] 12 | ``` 13 | 14 | Each input represents a network packet which respects the following structure : 15 |

16 | 17 | 18 | The model is based on BERT (Bidirectional Encoder Representations from Transformers) which is based on the Transformer Neural Network architecture. We appreciated the usage of BERT as it is suitable in the context of analyzing pcap files where bidirectional packets data contexts in the network flow is important. 19 | 20 | Each IP packet in a a loaded pcap file is converted to the format before being processed by the model, pcap/packets manipulation is done using Scapy 21 | 22 | Pcap files that were used for testing & fine-tuning the model were taken from the following sources, they provide a wide range of samples containing benign/malicious activities :
23 | TII-SSRC-23 Dataset - Network traffic for intrusion detection research
24 | Network datasets
25 | Network Forensics and Network Security Monitoring - Publicly available PCAP files 26 | 27 |

Fine-tuning

28 | 29 | There was many attempts to fine-tune and half of them provided satisfying results. When adding more training labeled samples, the model has been much more proficient in detecting the same attack or attacks of the same family (acting at the same TCP/IP layer) but it returned inconsistent and false results for the other attacks, either detecting nothing at all or a bunch of other attacks that had nothing to do with the content of the pcap file. Knowng that we have also filtered packets that were taken into account during training (e.g. only `GET` or `POST` requests for HTTP DoS attack samples). 30 | 31 | The notebook provides the function `trainFromPcapFile(file_path, label, application_filter)` which allow to add transformed training samples (packets) retrieved from a pcap file + the ability to select packets based on filter patterns. 32 | ```python 33 | trainFromPcapFile("/content/sample_data/dvwa_sql_injection.pcap", 21, b"GET /") # Transforming and adding packets from the pcap file + labelize them with 21 (Web Attack - SQL Injection) + taking only GET requests. 34 | ``` 35 | 36 | We also tried to get rid of certain parameters such as the backward and forward packets (which seemed to us to be irrelevant in a normal packet capture sequence) which also ameloried the results of some attacks detection such as web attacks and port scans but which also proved to distort certain results 37 | We aren't able to provide a stable statement on the efficiency of fine-tuning , however we truly believe that more efforts and testings could lead to a more performant and balanced fine-tuned model. 38 | 39 |

Detecting Applicative (Layer 7) Denial of Service Attacks & Used Tools

40 | 41 | The model does such a great job in detecting DoS attacks through the network.
42 | Two HTTP Simple Denial of Service (DoS) tools were used to test its capabilites at detecting attacks that emanate from them : 43 | Hulk & GoldenEye . 44 | 45 |

Hulk attacks detection

46 | 47 | 48 | 49 |

20 ports TCP SYN Scannning (Assimiled to a "normal" activity)

50 | 51 | 52 | 53 | We clearly see that the model has no problem to detect malicious anomaly flows in the network packets capture, he succeed to detect the anomaly type and the tool that was used with precision. 54 | 55 |

GoldenEye Attacks Detection

56 | 57 | 58 | 59 |

GoldenEye Attacks Detection after Fine-Tuning the Model

60 | 61 | Applying the described methods above for fine-tuning allowed to retrieve more relevant & explicit results when analyzing a network traffic that suffered a DoS attack. 62 | Compared to the model state before fine-tuning, we see that more DoS-related packets were detected (500 malicious packets out of 1600 w/ fine-tuning VS 60 malicious packets out of 3000 by default) 63 | 64 | 65 | 66 | 67 | 68 | You could also experiment it by using your own pcap samples or the ones that are provided in this repository. 69 | 70 |

Example of Illogical Results Caused by Fine-Tuning

71 | 72 | We are trying here to detect DoS that were done by a tool which name is Slowloris. 73 | Logically, the model should predict that there's a lot of packets assimilated to DoS/DDoS or predict that they're normal if he failed. 74 | The model predicted the presence of a completely unrelated attack which is SSH brute-force with the Patator tool even though there is no communication to TCP port 22. 75 | 76 | 77 | 78 |

How to set up the app on Google Collab

79 | 80 | Once executed, the following cell will print a link which will be routing to the app : 81 | 82 | ```python 83 | from google.colab.output import eval_js 84 | print(eval_js("google.colab.kernel.proxyPort(5000)")) 85 | ``` 86 | 87 | Then execute the next cell that will fire up the backend, it is a flask-based application w/ two endpoints 88 | ```python 89 | [....] 90 | 91 | @app.route("/") 92 | def home(): 93 | return index 94 | 95 | @app.route('/upload', methods=['POST']) 96 | def upload_file(): 97 | 98 | [...] 99 | 100 | if __name__ == "__main__": 101 | app.run() 102 | [....] 103 | ``` 104 | 105 | Then click the link, you should land on the app. 106 |
107 | The given notebook allows to use Colab's default GPU w/ Pytorch in order to make trainings/predictions faster : 108 | 109 | ```python 110 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 111 | model = model.to(device) 112 | ``` 113 | 114 |

To conclude

115 | 116 | Working on this small project has been fun and instructive, and even if it's only a POC in the end, this project and its model can be applied and show their usefulness to many practical cases dealing with detectability in computer networks. 117 | 118 | 119 | -------------------------------------------------------------------------------- /NetworkPcapAnalysis.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "source": [ 6 | "**

AI Project : Network Traffic Analysis

**\n", 7 | "

Yazid BENJAMAA & Thomas DELAPART - ESIR3 SI

\n", 8 | "\n", 9 | "Project Repo & report : https://github.com/TPs-ESIR-S9/PcapFileAnalysis\n", 10 | "\n", 11 | "This project's purpose is to predict wether a network activiy is malicious or not, this classification is achieved by analysis each packet content and context in a network capture file (pcap) and then returning a brief of the attacks that were detected." 12 | ], 13 | "metadata": { 14 | "id": "2Usss5c2Vtjv" 15 | } 16 | }, 17 | { 18 | "cell_type": "markdown", 19 | "metadata": { 20 | "id": "mIMq4hhdr0Xg" 21 | }, 22 | "source": [ 23 | "Installing necessary python packages:\n" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": null, 29 | "metadata": { 30 | "id": "vT0s9-D0bJ7g" 31 | }, 32 | "outputs": [], 33 | "source": [ 34 | "!pip install torch torchvision torchaudio\n", 35 | "!pip install scapy\n", 36 | "!pip install flask\n", 37 | "!pip install flask_ngrok" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "source": [ 43 | "Necessary imports for model manipulation & Flask app deployment:\n", 44 | "\n", 45 | "---\n", 46 | "\n" 47 | ], 48 | "metadata": { 49 | "id": "easPfS34smXN" 50 | } 51 | }, 52 | { 53 | "cell_type": "code", 54 | "source": [ 55 | "from transformers import AutoTokenizer, AutoModelForSequenceClassification\n", 56 | "from torch.utils.data import DataLoader, TensorDataset\n", 57 | "from torch.nn import CrossEntropyLoss\n", 58 | "from torch.optim import Adam\n", 59 | "import torch\n", 60 | "from scapy.all import *\n", 61 | "import os\n", 62 | "import matplotlib.pyplot as plt\n", 63 | "from flask import Flask, render_template, request, redirect, url_for, send_file, render_template_string\n", 64 | "from werkzeug.utils import secure_filename\n", 65 | "from io import BytesIO\n", 66 | "import base64" 67 | ], 68 | "metadata": { 69 | "id": "K4e_wMNQr6tr" 70 | }, 71 | "execution_count": null, 72 | "outputs": [] 73 | }, 74 | { 75 | "cell_type": "markdown", 76 | "source": [ 77 | "The model has 24 output classes:\n" 78 | ], 79 | "metadata": { 80 | "id": "b1mH32oHsl5I" 81 | } 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": null, 86 | "metadata": { 87 | "id": "P2sg99F0xNax" 88 | }, 89 | "outputs": [], 90 | "source": [ 91 | "classes = [\n", 92 | " 'Analysis',\n", 93 | " 'Backdoor',\n", 94 | " 'Bot',\n", 95 | " 'DDoS',\n", 96 | " 'DoS',\n", 97 | " 'DoS GoldenEye',\n", 98 | " 'DoS Hulk',\n", 99 | " 'DoS SlowHTTPTest',\n", 100 | " 'DoS Slowloris',\n", 101 | " 'Exploits',\n", 102 | " 'FTP Patator',\n", 103 | " 'Fuzzers',\n", 104 | " 'Generic',\n", 105 | " 'Heartbleed',\n", 106 | " 'Infiltration',\n", 107 | " 'Normal',\n", 108 | " 'Port Scan',\n", 109 | " 'Reconnaissance',\n", 110 | " 'SSH Patator',\n", 111 | " 'Shellcode',\n", 112 | " 'Web Attack - Brute Force',\n", 113 | " 'Web Attack - SQL Injection',\n", 114 | " 'Web Attack - XSS',\n", 115 | " 'Worms']\n", 116 | "\n", 117 | "print(len(classes))\n" 118 | ] 119 | }, 120 | { 121 | "cell_type": "markdown", 122 | "source": [ 123 | "We retrieve the model we are using from HugginFace, the model employs the BERT model fine-tuned for classifying network packet flow based on header and payload information.\n" 124 | ], 125 | "metadata": { 126 | "id": "cNlpA0msFT-L" 127 | } 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": null, 132 | "metadata": { 133 | "id": "_cwFuaYrqXVN" 134 | }, 135 | "outputs": [], 136 | "source": [ 137 | "tokenizer = AutoTokenizer.from_pretrained(\"rdpahalavan/bert-network-packet-flow-header-payload\")\n", 138 | "model = AutoModelForSequenceClassification.from_pretrained(\"rdpahalavan/bert-network-packet-flow-header-payload\")" 139 | ] 140 | }, 141 | { 142 | "cell_type": "markdown", 143 | "source": [ 144 | " Details and architecture of the pre-trained BERT model." 145 | ], 146 | "metadata": { 147 | "id": "_e5eoXO3F-Pk" 148 | } 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": null, 153 | "metadata": { 154 | "id": "7RiF52uasO0j", 155 | "collapsed": true 156 | }, 157 | "outputs": [], 158 | "source": [ 159 | "print(model)" 160 | ] 161 | }, 162 | { 163 | "cell_type": "markdown", 164 | "source": [ 165 | "nput embeddings of the pre-trained BERT model previously loaded." 166 | ], 167 | "metadata": { 168 | "id": "l9O69SjNF2kb" 169 | } 170 | }, 171 | { 172 | "cell_type": "code", 173 | "execution_count": null, 174 | "metadata": { 175 | "id": "tRYBhYFZKZq2", 176 | "collapsed": true 177 | }, 178 | "outputs": [], 179 | "source": [ 180 | "print(model.get_input_embeddings())" 181 | ] 182 | }, 183 | { 184 | "cell_type": "markdown", 185 | "source": [ 186 | "Configuration settings of the pre-trained BERT model, revealing details such as model architecture, hyperparameters, and other configuration parameters." 187 | ], 188 | "metadata": { 189 | "id": "yJS4yJbEGM4M" 190 | } 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": null, 195 | "metadata": { 196 | "id": "Fb5b9NsEsnTS", 197 | "collapsed": true 198 | }, 199 | "outputs": [], 200 | "source": [ 201 | "print(model.config)" 202 | ] 203 | }, 204 | { 205 | "cell_type": "markdown", 206 | "source": [ 207 | "Information about the tokenizer and the model input names. The first line prints details about the tokenizer, while the second line displays the input names expected by the model according to the tokenizer." 208 | ], 209 | "metadata": { 210 | "id": "BDqOPjzvGbTh" 211 | } 212 | }, 213 | { 214 | "cell_type": "code", 215 | "execution_count": null, 216 | "metadata": { 217 | "id": "Yo1sc5YJs30f", 218 | "collapsed": true 219 | }, 220 | "outputs": [], 221 | "source": [ 222 | "print(tokenizer)\n", 223 | "print(tokenizer.model_input_names)" 224 | ] 225 | }, 226 | { 227 | "cell_type": "markdown", 228 | "source": [ 229 | "`processing_packet_conversion` performs packet decimal conversion and aditionnal changes to fit the input structure of the model representing a packet, The following diagram shows the structure to be respected:" 230 | ], 231 | "metadata": { 232 | "id": "5f7-7-wiGhH1" 233 | } 234 | }, 235 | { 236 | "cell_type": "markdown", 237 | "metadata": { 238 | "id": "MsDQYUNKLxh2" 239 | }, 240 | "source": [ 241 | "![Data-Format.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE4AAAG2CAYAAABhxcNfAAAAAXNSR0IArs4c6QAAvLZ0RVh0bXhmaWxlACUzQ214ZmlsZSUyMGhvc3QlM0QlMjJhcHAuZGlhZ3JhbXMubmV0JTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIzLTA3LTIyVDIxJTNBMzAlM0EyNy4wMjdaJTIyJTIwYWdlbnQlM0QlMjJNb3ppbGxhJTJGNS4wJTIwKE1hY2ludG9zaCUzQiUyMEludGVsJTIwTWFjJTIwT1MlMjBYJTIwMTBfMTVfNyklMjBBcHBsZVdlYktpdCUyRjUzNy4zNiUyMChLSFRNTCUyQyUyMGxpa2UlMjBHZWNrbyklMjBDaHJvbWUlMkYxMTQuMC4wLjAlMjBTYWZhcmklMkY1MzcuMzYlMjIlMjBldGFnJTNEJTIyQWs1TDlEdmpsRUd6T3N3QmIyQ3YlMjIlMjB2ZXJzaW9uJTNEJTIyMjEuNi4yJTIyJTIwdHlwZSUzRCUyMmdvb2dsZSUyMiUzRSUwQSUyMCUyMCUzQ2RpYWdyYW0lMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTIwaWQlM0QlMjJpa0ZoNU54enhoNng3c1hmbVhwLSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ214R3JhcGhNb2RlbCUyMGR4JTNEJTIyMjAyMSUyMiUyMGR5JTNEJTIyNjQ4JTIyJTIwZ3JpZCUzRCUyMjElMjIlMjBncmlkU2l6ZSUzRCUyMjEwJTIyJTIwZ3VpZGVzJTNEJTIyMSUyMiUyMHRvb2x0aXBzJTNEJTIyMSUyMiUyMGNvbm5lY3QlM0QlMjIxJTIyJTIwYXJyb3dzJTNEJTIyMSUyMiUyMGZvbGQlM0QlMjIxJTIyJTIwcGFnZSUzRCUyMjElMjIlMjBwYWdlU2NhbGUlM0QlMjIxJTIyJTIwcGFnZVdpZHRoJTNEJTIyODI3JTIyJTIwcGFnZUhlaWdodCUzRCUyMjExNjklMjIlMjBtYXRoJTNEJTIyMCUyMiUyMHNoYWRvdyUzRCUyMjAlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlM0Nyb290JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjIwJTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjIxJTIyJTIwcGFyZW50JTNEJTIyMCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMSUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJyb3VuZGVkJTNEMCUzQndoaXRlU3BhY2UlM0R3cmFwJTNCaHRtbCUzRDElM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMzAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwd2lkdGglM0QlMjI5NTAlMjIlMjBoZWlnaHQlM0QlMjI2MCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTIlMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBzb3VyY2UlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0xJTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwd2lkdGglM0QlMjI1MCUyMiUyMGhlaWdodCUzRCUyMjUwJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMzkwJTIyJTIweSUzRCUyMjMyMCUyMiUyMGFzJTNEJTIyc291cmNlUG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjkwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zJTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIxNTAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMTUwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy00JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIyNTAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMjUwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy01JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIzMDAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMzAwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy02JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI0MDAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNDAwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy05JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI1MTAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNTEwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0xMCUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJlbmRBcnJvdyUzRG5vbmUlM0JodG1sJTNEMSUzQnJvdW5kZWQlM0QwJTNCZXhpdFglM0QwLjA3NyUzQmV4aXRZJTNEMCUzQmV4aXREeCUzRDAlM0JleGl0RHklM0QwJTNCZXhpdFBlcmltZXRlciUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwd2lkdGglM0QlMjI1MCUyMiUyMGhlaWdodCUzRCUyMjUwJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNTkwJTIyJTIweSUzRCUyMjIyMCUyMiUyMGFzJTNEJTIyc291cmNlUG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjU5MCUyMiUyMHklM0QlMjIyODAlMjIlMjBhcyUzRCUyMnRhcmdldFBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMTIlMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQmV4aXRYJTNEMC4wNzclM0JleGl0WSUzRDAlM0JleGl0RHglM0QwJTNCZXhpdER5JTNEMCUzQmV4aXRQZXJpbWV0ZXIlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjY3MCUyMiUyMHklM0QlMjIyMjAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI2NzAlMjIlMjB5JTNEJTIyMjgwJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTEzJTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI3NTAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNzUwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0xNCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQjI0JTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjMwJTIyJTIweSUzRCUyMjIzNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTE1JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCMTklMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyOTAlMjIlMjB5JTNEJTIyMjM1JTIyJTIwd2lkdGglM0QlMjI2MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMTklMjIlMjB2YWx1ZSUzRCUyMiUyNmx0JTNCZm9udCUyMHN0eWxlJTNEJTI2cXVvdCUzQmZvbnQtc2l6ZSUzQSUyMDI0cHglM0IlMjZxdW90JTNCJTI2Z3QlM0IyNTc5JTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjE3MCUyMiUyMHklM0QlMjIyMzUlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0yMCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQi0xJTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjI0MCUyMiUyMHklM0QlMjIyMzUlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0yMSUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQjEwMTQlMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMzIwJTIyJTIweSUzRCUyMjIzNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTIyJTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCNjAyNTElMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNDMwJTIyJTIweSUzRCUyMjIzNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTIzJTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCMTQ4JTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjUyMCUyMiUyMHklM0QlMjIyMzUlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0yNCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQjEwOCUyNmx0JTNCJTJGZm9udCUyNmd0JTNCJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI2MDAlMjIlMjB5JTNEJTIyMjM1JTIyJTIwd2lkdGglM0QlMjI2MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMjUlMjIlMjB2YWx1ZSUzRCUyMiUyNmx0JTNCc3BhbiUyMHN0eWxlJTNEJTI2cXVvdCUzQmZvbnQtc2l6ZSUzQSUyMDI0cHglM0IlMjZxdW90JTNCJTI2Z3QlM0IyNTMlMjZsdCUzQiUyRnNwYW4lMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNjgwJTIyJTIweSUzRCUyMjIzNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTI3JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI5MCUyMiUyMHklM0QlMjIyMjAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI5MCUyMiUyMHklM0QlMjIyODAlMjIlMjBhcyUzRCUyMnRhcmdldFBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMjglMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQmV4aXRYJTNEMC4wNzclM0JleGl0WSUzRDAlM0JleGl0RHglM0QwJTNCZXhpdER5JTNEMCUzQmV4aXRQZXJpbWV0ZXIlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjgxMCUyMiUyMHklM0QlMjIyMjAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI4MTAlMjIlMjB5JTNEJTIyMjgwJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTI5JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI4NzAlMjIlMjB5JTNEJTIyMjIwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyODcwJTIyJTIweSUzRCUyMjI4MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zMCUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJlbmRBcnJvdyUzRG5vbmUlM0JodG1sJTNEMSUzQnJvdW5kZWQlM0QwJTNCZXhpdFglM0QwLjA3NyUzQmV4aXRZJTNEMCUzQmV4aXREeCUzRDAlM0JleGl0RHklM0QwJTNCZXhpdFBlcmltZXRlciUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwd2lkdGglM0QlMjI1MCUyMiUyMGhlaWdodCUzRCUyMjUwJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyOTMwJTIyJTIweSUzRCUyMjIyMCUyMiUyMGFzJTNEJTIyc291cmNlUG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjkzMCUyMiUyMHklM0QlMjIyODAlMjIlMjBhcyUzRCUyMnRhcmdldFBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMzElMjIlMjB2YWx1ZSUzRCUyMiUyNmx0JTNCZm9udCUyMHN0eWxlJTNEJTI2cXVvdCUzQmZvbnQtc2l6ZSUzQSUyMDI0cHglM0IlMjZxdW90JTNCJTI2Z3QlM0IwJTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjc1MCUyMiUyMHklM0QlMjIyMzUlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zMiUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQjUlMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyODEwJTIyJTIweSUzRCUyMjIzNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTMzJTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCMCUyNmx0JTNCJTJGZm9udCUyNmd0JTNCJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI4NzAlMjIlMjB5JTNEJTIyMjM1JTIyJTIwd2lkdGglM0QlMjI2MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIyQi1QWDNQUjhiSVVoVVEwRG95REYtNCUyMiUyMHN0eWxlJTNEJTIyZWRnZVN0eWxlJTNEb3J0aG9nb25hbEVkZ2VTdHlsZSUzQnJvdW5kZWQlM0QwJTNCb3J0aG9nb25hbExvb3AlM0QxJTNCamV0dHlTaXplJTNEYXV0byUzQmh0bWwlM0QxJTNCZW50cnlYJTNEMCUzQmVudHJ5WSUzRDAuNSUzQmVudHJ5RHglM0QwJTNCZW50cnlEeSUzRDAlM0JzaGFkb3clM0QxJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHRhcmdldCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTQ1JTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMTYwJTIyJTIweSUzRCUyMjM1MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjk4MCUyMiUyMHklM0QlMjIyNTAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDQXJyYXklMjBhcyUzRCUyMnBvaW50cyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMTA1MSUyMiUyMHklM0QlMjIyNTAlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjEwNTElMjIlMjB5JTNEJTIyMzQwJTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIxNjAlMjIlMjB5JTNEJTIyMzQwJTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIxNjAlMjIlMjB5JTNEJTIyNDMwJTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGQXJyYXklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zNCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQi0xJTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjkyMCUyMiUyMHklM0QlMjIyMzUlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zNSUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJyb3VuZGVkJTNEMCUzQndoaXRlU3BhY2UlM0R3cmFwJTNCaHRtbCUzRDElM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMjcwJTIyJTIweSUzRCUyMjQwMCUyMiUyMHdpZHRoJTNEJTIyNzQwJTIyJTIwaGVpZ2h0JTNEJTIyNjAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zNiUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJlbmRBcnJvdyUzRG5vbmUlM0JodG1sJTNEMSUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHNvdXJjZSUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTM1JTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwd2lkdGglM0QlMjI1MCUyMiUyMGhlaWdodCUzRCUyMjUwJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNjMwJTIyJTIweSUzRCUyMjUwMCUyMiUyMGFzJTNEJTIyc291cmNlUG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjMzMCUyMiUyMHklM0QlMjI0NjAlMjIlMjBhcyUzRCUyMnRhcmdldFBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctMzclMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQmV4aXRYJTNEMC4wNzclM0JleGl0WSUzRDAlM0JleGl0RHglM0QwJTNCZXhpdER5JTNEMCUzQmV4aXRQZXJpbWV0ZXIlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjM5MCUyMiUyMHklM0QlMjI0MDAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIzOTAlMjIlMjB5JTNEJTIyNDYwJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTM4JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI0NTAlMjIlMjB5JTNEJTIyNDAwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNDUwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0zOSUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJlbmRBcnJvdyUzRG5vbmUlM0JodG1sJTNEMSUzQnJvdW5kZWQlM0QwJTNCZXhpdFglM0QwLjA3NyUzQmV4aXRZJTNEMCUzQmV4aXREeCUzRDAlM0JleGl0RHklM0QwJTNCZXhpdFBlcmltZXRlciUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwd2lkdGglM0QlMjI1MCUyMiUyMGhlaWdodCUzRCUyMjUwJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNTEwJTIyJTIweSUzRCUyMjQwMCUyMiUyMGFzJTNEJTIyc291cmNlUG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjUxMCUyMiUyMHklM0QlMjI0NjAlMjIlMjBhcyUzRCUyMnRhcmdldFBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNDAlMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQmV4aXRYJTNEMC4wNzclM0JleGl0WSUzRDAlM0JleGl0RHglM0QwJTNCZXhpdER5JTNEMCUzQmV4aXRQZXJpbWV0ZXIlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjU3MCUyMiUyMHklM0QlMjI0MDAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI1NzAlMjIlMjB5JTNEJTIyNDYwJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTQxJTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI3NTAlMjIlMjB5JTNEJTIyNDAwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyNzUwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy00MiUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwc3R5bGUlM0QlMjJlbmRBcnJvdyUzRG5vbmUlM0JodG1sJTNEMSUzQnJvdW5kZWQlM0QwJTNCZXhpdFglM0QwLjA3NyUzQmV4aXRZJTNEMCUzQmV4aXREeCUzRDAlM0JleGl0RHklM0QwJTNCZXhpdFBlcmltZXRlciUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwZWRnZSUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIwd2lkdGglM0QlMjI1MCUyMiUyMGhlaWdodCUzRCUyMjUwJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyODEwJTIyJTIweSUzRCUyMjQwMCUyMiUyMGFzJTNEJTIyc291cmNlUG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjgxMCUyMiUyMHklM0QlMjI0NjAlMjIlMjBhcyUzRCUyMnRhcmdldFBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNDMlMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQmV4aXRYJTNEMC4wNzclM0JleGl0WSUzRDAlM0JleGl0RHglM0QwJTNCZXhpdER5JTNEMCUzQmV4aXRQZXJpbWV0ZXIlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjg3MCUyMiUyMHklM0QlMjI0MDAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI4NzAlMjIlMjB5JTNEJTIyNDYwJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTQ1JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCNDIlMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMjcwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTQ2JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCMzIlMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMzMwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTU0JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEbm9uZSUzQmh0bWwlM0QxJTNCcm91bmRlZCUzRDAlM0JleGl0WCUzRDAuMDc3JTNCZXhpdFklM0QwJTNCZXhpdER4JTNEMCUzQmV4aXREeSUzRDAlM0JleGl0UGVyaW1ldGVyJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIzMzAlMjIlMjB5JTNEJTIyNDAwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyMzMwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy02MyUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQjY4JTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjM5MCUyMiUyMHklM0QlMjI0MTUlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy02NCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMjRweCUzQiUyNnF1b3QlM0IlMjZndCUzQjExMiUyNmx0JTNCJTJGZm9udCUyNmd0JTNCJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI0NTAlMjIlMjB5JTNEJTIyNDE1JTIyJTIwd2lkdGglM0QlMjI2MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNjUlMjIlMjB2YWx1ZSUzRCUyMiUyNmx0JTNCZm9udCUyMHN0eWxlJTNEJTI2cXVvdCUzQmZvbnQtc2l6ZSUzQSUyMDI0cHglM0IlMjZxdW90JTNCJTI2Z3QlM0IxMDglMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNTEwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTY2JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCLTElMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNzUwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTY3JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCLTElMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyODEwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTY4JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAyNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCLTElMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyODcwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTY5JTIyJTIwdmFsdWUlM0QlMjJGb3J3YXJkJTI2bHQlM0JiciUyNmd0JTNCUGFja2V0cyUyNmx0JTNCYnIlMjZndCUzQnBlciUyMHNlY29uZCUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyLTQwJTIyJTIweSUzRCUyMjE3MCUyMiUyMHdpZHRoJTNEJTIyMTgwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy03MCUyMiUyMHZhbHVlJTNEJTIyQmFja3dhcmQlMjZsdCUzQmJyJTI2Z3QlM0JQYWNrZXRzJTI2bHQlM0JiciUyNmd0JTNCcGVyJTIwc2Vjb25kJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQnJvdGF0aW9uJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI3MCUyMiUyMHklM0QlMjIxNzAlMjIlMjB3aWR0aCUzRCUyMjEwMCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNzElMjIlMjB2YWx1ZSUzRCUyMkJ5dGVzJTI2bHQlM0JiciUyNmd0JTNCdHJhbnNmZXJyZWQlMjZsdCUzQmJyJTI2Z3QlM0JwZXIlMjBzZWNvbmQlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCcm90YXRpb24lM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjExMCUyMiUyMHklM0QlMjIxNzAlMjIlMjB3aWR0aCUzRCUyMjE4MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNzIlMjIlMjB2YWx1ZSUzRCUyMlNlcGVyYXRvciUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMjUwJTIyJTIweSUzRCUyMjE4Mi41JTIyJTIwd2lkdGglM0QlMjI1Ny4wMSUyMiUyMGhlaWdodCUzRCUyMjI3LjUlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy03MyUyMiUyMHZhbHVlJTNEJTIyU291cmNlJTIwUG9ydCUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMzI1JTIyJTIweSUzRCUyMjE4NSUyMiUyMHdpZHRoJTNEJTIyNzAlMjIlMjBoZWlnaHQlM0QlMjIyMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTc0JTIyJTIwdmFsdWUlM0QlMjJEZXN0aW5hdGlvbiUyMFBvcnQlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCcm90YXRpb24lM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjQxMCUyMiUyMHklM0QlMjIxNzguNzUlMjIlMjB3aWR0aCUzRCUyMjEwMCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNzUlMjIlMjB2YWx1ZSUzRCUyMklQJTIwTGVuZ3RoJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQnJvdGF0aW9uJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI1MTYuMjUlMjIlMjB5JTNEJTIyMTgwJTIyJTIwd2lkdGglM0QlMjI2Ny41JTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy03NiUyMiUyMHZhbHVlJTNEJTIyUGF5bG9hZCUyMExlbmd0aCUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNTk0LjI0JTIyJTIweSUzRCUyMjE3NC43NSUyMiUyMHdpZHRoJTNEJTIyNzEuNTIlMjIlMjBoZWlnaHQlM0QlMjIzNy45OSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTc3JTIyJTIwdmFsdWUlM0QlMjJJUCUyMFRUTCUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNjg3LjA2OTk5OTk5OTk5OTklMjIlMjB5JTNEJTIyMTgwJTIyJTIwd2lkdGglM0QlMjI0NS44NSUyMiUyMGhlaWdodCUzRCUyMjM1LjQ5JTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctNzglMjIlMjB2YWx1ZSUzRCUyMklQJTIwVG9TJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQnJvdGF0aW9uJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI3NjEuMTYwMDAwMDAwMDAwMSUyMiUyMHklM0QlMjIxODMuNDElMjIlMjB3aWR0aCUzRCUyMjQ3LjY4JTIyJTIwaGVpZ2h0JTNEJTIyMjguNjYlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy03OSUyMiUyMHZhbHVlJTNEJTIyVENQJTIwRGF0YSUyMG9mZnNldCUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyODIwLjA2JTIyJTIweSUzRCUyMjE2NSUyMiUyMHdpZHRoJTNEJTIyMzkuODclMjIlMjBoZWlnaHQlM0QlMjI1MC40OSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTgwJTIyJTIwdmFsdWUlM0QlMjJUQ1AlMjBGbGFncyUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0Jyb3RhdGlvbiUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyODc3Ljc0JTIyJTIweSUzRCUyMjE2OC4wNSUyMiUyMHdpZHRoJTNEJTIyNDQuNTIlMjIlMjBoZWlnaHQlM0QlMjI0Ny40NCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTgyJTIyJTIwdmFsdWUlM0QlMjJCeXRlJTIwMSUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMjcwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTgzJTIyJTIwdmFsdWUlM0QlMjJCeXRlJTIwMiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMzM1JTIyJTIweSUzRCUyMjQ2MCUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTg0JTIyJTIwdmFsdWUlM0QlMjJCeXRlJTIwMyUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMzkwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTg1JTIyJTIwdmFsdWUlM0QlMjJCeXRlJTIwNCUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNDUwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTg2JTIyJTIwdmFsdWUlM0QlMjJCeXRlJTIwNSUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNTEwJTIyJTIweSUzRCUyMjQ2MCUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTg3JTIyJTIwdmFsdWUlM0QlMjJCeXRlJTIwbi0yJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI3NTUlMjIlMjB5JTNEJTIyNDYwJTIyJTIwd2lkdGglM0QlMjI2MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctODglMjIlMjB2YWx1ZSUzRCUyMkJ5dGUlMjBuLTElMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjgxMCUyMiUyMHklM0QlMjI0NjAlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy04OSUyMiUyMHZhbHVlJTNEJTIyQnl0ZSUyMG4lMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjg3MCUyMiUyMHklM0QlMjI0NjAlMjIlMjB3aWR0aCUzRCUyMjYwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy05MCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMzZweCUzQiUyNnF1b3QlM0IlMjZndCUzQi4uLi4uLi4lMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyNjMwJTIyJTIweSUzRCUyMjQxNSUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTkzJTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEY2xhc3NpYyUzQnN0YXJ0QXJyb3clM0RjbGFzc2ljJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIyNzUlMjIlMjB5JTNEJTIyNTMwJTIyJTIwYXMlM0QlMjJzb3VyY2VQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjB4JTNEJTIyOTI1JTIyJTIweSUzRCUyMjUzMCUyMiUyMGFzJTNEJTIydGFyZ2V0UG9pbnQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy05NCUyMiUyMHZhbHVlJTNEJTIyJTI2bHQlM0Jmb250JTIwc3R5bGUlM0QlMjZxdW90JTNCZm9udC1zaXplJTNBJTIwMTRweCUzQiUyNnF1b3QlM0IlMjZndCUzQlBheWxvYWQlMjBCeXRlcyUyNmx0JTNCJTJGZm9udCUyNmd0JTNCJTIyJTIwc3R5bGUlM0QlMjJlZGdlTGFiZWwlM0JodG1sJTNEMSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQnJlc2l6YWJsZSUzRDAlM0Jwb2ludHMlM0QlNUIlNUQlM0IlMjIlMjBwYXJlbnQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy05MyUyMiUyMGNvbm5lY3RhYmxlJTNEJTIyMCUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjAuMDE1NCUyMiUyMHklM0QlMjIyJTIyJTIwcmVsYXRpdmUlM0QlMjIxJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214UG9pbnQlMjBhcyUzRCUyMm9mZnNldCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTk1JTIyJTIwdmFsdWUlM0QlMjIlMjIlMjBzdHlsZSUzRCUyMmVuZEFycm93JTNEY2xhc3NpYyUzQnN0YXJ0QXJyb3clM0RjbGFzc2ljJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjBlZGdlJTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB3aWR0aCUzRCUyMjUwJTIyJTIwaGVpZ2h0JTNEJTIyNTAlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIzMCUyMiUyMHklM0QlMjIxMTIlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjIyOTAlMjIlMjB5JTNEJTIyMTEyJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTk2JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAxNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCRmxvdyUyMEluZm9ybWF0aW9uJTI2bHQlM0IlMkZmb250JTI2Z3QlM0IlMjIlMjBzdHlsZSUzRCUyMmVkZ2VMYWJlbCUzQmh0bWwlM0QxJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCcmVzaXphYmxlJTNEMCUzQnBvaW50cyUzRCU1QiU1RCUzQiUyMiUyMHBhcmVudCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTk1JTIyJTIwY29ubmVjdGFibGUlM0QlMjIwJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyMC4wMTU0JTIyJTIweSUzRCUyMjIlMjIlMjByZWxhdGl2ZSUzRCUyMjElMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMGFzJTNEJTIyb2Zmc2V0JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhHZW9tZXRyeSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctOTglMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0RjbGFzc2ljJTNCc3RhcnRBcnJvdyUzRGNsYXNzaWMlM0JodG1sJTNEMSUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjMyMCUyMiUyMHklM0QlMjIxMTIlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI5NzAlMjIlMjB5JTNEJTIyMTEyJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMkpRU011T3ptQTBHdE5ISDRaQkh3LTk5JTIyJTIwdmFsdWUlM0QlMjIlMjZsdCUzQmZvbnQlMjBzdHlsZSUzRCUyNnF1b3QlM0Jmb250LXNpemUlM0ElMjAxNHB4JTNCJTI2cXVvdCUzQiUyNmd0JTNCSGVhZGVyJTIwSW5mb3JtYXRpb24lMjZsdCUzQiUyRmZvbnQlMjZndCUzQiUyMiUyMHN0eWxlJTNEJTIyZWRnZUxhYmVsJTNCaHRtbCUzRDElM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0JyZXNpemFibGUlM0QwJTNCcG9pbnRzJTNEJTVCJTVEJTNCJTIyJTIwcGFyZW50JTNEJTIySlFTTXVPem1BMEd0TkhINFpCSHctOTglMjIlMjBjb25uZWN0YWJsZSUzRCUyMjAlMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjIwLjAxNTQlMjIlMjB5JTNEJTIyMiUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIwYXMlM0QlMjJvZmZzZXQlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteEdlb21ldHJ5JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbXhDZWxsJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhDZWxsJTIwaWQlM0QlMjJKUVNNdU96bUEwR3ROSEg0WkJIdy0xMDAlMjIlMjB2YWx1ZSUzRCUyMihwYWRkaW5nKSUyMiUyMHN0eWxlJTNEJTIydGV4dCUzQmh0bWwlM0QxJTNCc3Ryb2tlQ29sb3IlM0Rub25lJTNCZmlsbENvbG9yJTNEbm9uZSUzQmFsaWduJTNEY2VudGVyJTNCdmVydGljYWxBbGlnbiUzRG1pZGRsZSUzQndoaXRlU3BhY2UlM0R3cmFwJTNCcm91bmRlZCUzRDAlM0IlMjIlMjBwYXJlbnQlM0QlMjIxJTIyJTIwdmVydGV4JTNEJTIyMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214R2VvbWV0cnklMjB4JTNEJTIyODAwJTIyJTIweSUzRCUyMjQ5MCUyMiUyMHdpZHRoJTNEJTIyNjAlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMlRfTGlXZUNsMEZhVHhBNjRVTUdMLTElMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHN0eWxlJTNEJTIyZW5kQXJyb3clM0Rub25lJTNCaHRtbCUzRDElM0Jyb3VuZGVkJTNEMCUzQmV4aXRYJTNEMC4wNzclM0JleGl0WSUzRDAlM0JleGl0RHglM0QwJTNCZXhpdER5JTNEMCUzQmV4aXRQZXJpbWV0ZXIlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMGVkZ2UlM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHdpZHRoJTNEJTIyNTAlMjIlMjBoZWlnaHQlM0QlMjI1MCUyMiUyMHJlbGF0aXZlJTNEJTIyMSUyMiUyMGFzJTNEJTIyZ2VvbWV0cnklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteFBvaW50JTIweCUzRCUyMjkzMCUyMiUyMHklM0QlMjI0MDAlMjIlMjBhcyUzRCUyMnNvdXJjZVBvaW50JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhQb2ludCUyMHglM0QlMjI5MzAlMjIlMjB5JTNEJTIyNDYwJTIyJTIwYXMlM0QlMjJ0YXJnZXRQb2ludCUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14R2VvbWV0cnklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZteENlbGwlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteENlbGwlMjBpZCUzRCUyMlRfTGlXZUNsMEZhVHhBNjRVTUdMLTIlMjIlMjB2YWx1ZSUzRCUyMiUyNmx0JTNCZm9udCUyMHN0eWxlJTNEJTI2cXVvdCUzQmZvbnQtc2l6ZSUzQSUyMDE0cHglM0IlMjZxdW90JTNCJTI2Z3QlM0JCYWNrZG9vciUyNmx0JTNCJTJGZm9udCUyNmd0JTNCJTIyJTIwc3R5bGUlM0QlMjJ0ZXh0JTNCaHRtbCUzRDElM0JzdHJva2VDb2xvciUzRG5vbmUlM0JmaWxsQ29sb3IlM0Rub25lJTNCYWxpZ24lM0RjZW50ZXIlM0J2ZXJ0aWNhbEFsaWduJTNEbWlkZGxlJTNCd2hpdGVTcGFjZSUzRHdyYXAlM0Jyb3VuZGVkJTNEMCUzQiUyMiUyMHBhcmVudCUzRCUyMjElMjIlMjB2ZXJ0ZXglM0QlMjIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbXhHZW9tZXRyeSUyMHglM0QlMjI5NDAlMjIlMjB5JTNEJTIyNDE1JTIyJTIwd2lkdGglM0QlMjI2MCUyMiUyMGhlaWdodCUzRCUyMjMwJTIyJTIwYXMlM0QlMjJnZW9tZXRyeSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm14Q2VsbCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ214Q2VsbCUyMGlkJTNEJTIyVF9MaVdlQ2wwRmFUeEE2NFVNR0wtMyUyMiUyMHZhbHVlJTNEJTIyQXR0YWNrJTIwbGFiZWwlMjIlMjBzdHlsZSUzRCUyMnRleHQlM0JodG1sJTNEMSUzQnN0cm9rZUNvbG9yJTNEbm9uZSUzQmZpbGxDb2xvciUzRG5vbmUlM0JhbGlnbiUzRGNlbnRlciUzQnZlcnRpY2FsQWxpZ24lM0RtaWRkbGUlM0J3aGl0ZVNwYWNlJTNEd3JhcCUzQnJvdW5kZWQlM0QwJTNCJTIyJTIwcGFyZW50JTNEJTIyMSUyMiUyMHZlcnRleCUzRCUyMjElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NteEdlb21ldHJ5JTIweCUzRCUyMjkzNSUyMiUyMHklM0QlMjI0NjAlMjIlMjB3aWR0aCUzRCUyMjcwJTIyJTIwaGVpZ2h0JTNEJTIyMzAlMjIlMjBhcyUzRCUyMmdlb21ldHJ5JTIyJTIwJTJG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SEACEsgnoHCSI5zceOONYfnll38VOawDdtxxx3DHHXeEBRZYIHz1q1+N1915553hsMMOC+9///vDD37wg/DOd74zbLXVVtFi4Kyzzgpf//rXw09/+tPwute9Lnz2s58Na6yxRlh//fXDEUccEa/H9WattdYKxxxzTHzmsssuG3bYYYdw7LHHhosvvjhgXbDbbruFJ554IloYHHzwweGuu+6qzOIE4eT4448P99577wQDnv+LX/wi3HzzzfFvzcr+2te+Ntx9992x7L/+9a9jnQ455JDw1re+NVqcIJzw7y984QvhySefjAyp+0EHHRRg++lPfzqccMIJYZlllglYvTz22GPx/ksuuSQKOffdd19YbbXVwpFHHhlFnO9+97vh4YcfjuIB7jjf/OY34/VnnnlmmHvuueM1iDbDbHGShJOnnnoqciJR3g033DD8/e9/n+gv9CcSgsq1114b+8KkSZPCYostFq655prw8ssvxz7C37BEOuqoo8KSSy4Z7+G/v/Od7wSEQfrffvvtNzQioAO0BCQgAQlIQAISkIAEJCCBYSagcJIjnHzpS18KCy644MSvLETnnXfe8O53vzssuuiiYd999w1XXnllFBceeOCBuKBfaaWVwnve854oCiAuTDvttHEhv/nmm8eF/M9//vPw3ve+N4oniAtYcnz4wx8OiBS4r2y88cbRFeZjH/tYmGaaacKb3vSmsOeee8bF8FJLLRXmm2++sM0228RnklfVwgkMECgo56OPPhrFGkQe6kP5m5V9zTXXjILF2muvHbbccssoBL3tbW+LogeCCZYrCEznnXdeuOmmm+Ii/8tf/nJ48MEHo1CCexDP3HvvvaO4hJXL1ltvHd7xjndEKwyEKdhjoYFoRV77779/WH311eM9f/7zn2MeCDEvvvhi+OIXvxgFqlEQTqjPjDPOGP7yl7+EU045Jay66qqxb9AOiG6IeST6Gb8hrlFv6vbRj3404EoF47322isKK3BEeKFvrrPOOlF8euSRRyIfhBbEKZMEJCABCUhAAhKQgAQkIAEJtCagcJIjnLDYZxGaEgvw2WabLSAM/OMf/4iiBgmXGRa5c845Z1zQ4m6BuHL22WeHAw88MC5aZ5111vj7Jz7xiWidghUK1ha/+93v4sIWMQDrAYQTLDSwBkA4wZoC8YE8EWRYUOPKgXULQkrVwgmWCdSX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PLFaZ555Zthss81eVUUYbb/99uHUU0/Nrf9pp50Wtt5669Lep7Lat1WB7r///rjgSYJEs2vPOuusKJ5l06yzztryHq69/vrr48SHyVfeoqrZ8zbZZJNwzjnnxJ9OP/30uGDOS1tuuWWAez8sUKpsjx122CGcfPLJgYXr448/XlofapZRlfXIK3in9WPB/qUvfalpNrChL80111y5fF588cUo1rII3G677cIpp5zSEctXXnklrL322uHyyy+P19ddOEkToTw4Cy20UBSHs7vM1157bUDUzEtXX331q37vx/jSrDy99oOOOsv/XdSP96jXenTSn8l7lVVWmViwNqs7gvoee+zRDZaOrx0mfk888URYdtllA/9ulhCRsmI+19SVH8L1euutl9uOCBuMBYssssjENe2+01xIX+O+lLBkWXPNNeOGTV766le/2laQ6bjDNVzYj/7XS7/qtT7t7utHfXvpB+3K3evv/ajvuLRvp/O3Xtsqe18/2q2Mcg57HgonOS1UVgdjV3bnnXeOT0EgQenno8igcOCBB05MrPbff/9wyCGHNC0NwsL6668f+OimNOzCyX/+858oBjExTLttecLJeeedF1jQk7B2OPjgg8Pcc88dfvvb34YvfvGLE7syLBTe/e53l/JOldW+eYXBJQHBKIkmtC0Lo+mnnz4uILGiIbEDSb0QS0j//Oc/4zUk2KX/bnwOIhKLXHasGneaGq8lfxZeJAQ8np0VtCgDi1l2Qinv4YcfHi2jSGeccUbujmApDfF/mVTRHo888kj4zne+M/Fe1U046aZ+CG0f/OAHI212N1mszD///HFiveuuu078/c4773yVixwuPVhDILxcdNFF8dpuhJPjjz9+igl6nYUT3GXe+c53Trz3CI/srL/wwgvhsMMOi2Il6Stf+Uq03CH9/e9/j+NdskTECmK55ZaLViuMG7///e/jddkxv1/jS/YdL9oPuhkvqhgP0vOL1qOT/kxb800nffrTnw477bRT4Jt4wQUXRDE6tTXvFZaDZadh4odF26RJk2IVsZzYYIMNotsSwiuWqCQ2TbbddtsJDHXkx9jK/IbEN5f3fOmll4794lvf+lb8h4QVION12rBA7GbsZf740Y9+tGlXYUzHQjSlT33qU+EHP/hB/F82pTbccMPopgPvk046aaL/lTmnyhasyv6XntNLvyr7PUv5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AAgonAwAuo8cHQIKJ6PTVpZUAhKQgAQkIAEJSEACEpBAFQQUTqqgap61IaBwUpumtCISkIAEJCABCUhAAhKQgAR6IqBw0hM2bxoXAgon49LS1lMCEpCABCQgAQlIQAISkEBzAgon9gwJtCCgcGL3kIAEJCABCUhAAhKQgAQkMN4EFE7Gu/2tfRsCCid2EQlIQAISkIAEJCABCUhAAuNNQOFkvNvf2iuc2AckIAEJSEACEpCABCQgAQlIoAUBhRO7hwRavSBTTRUmT54cJk2aFFZeeWVZSUACEpCABCQgAQlIQAISkMCYEVA4GbMGt7rdEdBVpzteXi0BCUhAAhKQgAQkIAEJSKBuBBRO6tai1qdUAgonpeI0MwlIQAISkIAEJCABCUhAAiNHQOFk5JrMAveTgMJJP2n7LAlIQAISkIAEJCABCUhAAsNHQOFk+NrEEg0RAYWTIWoMiyIBCUhAAhKQgAQkIAEJSGAABBROBgDdR44OAYWT0WkrSyoBCfy/9s4DWopia9uFiiCICSMoomJGzAEDAkZUMFxRzKjXeBWzmAMqmHNOmHPCLCbAgOJFzKKYMUfMWf711P3rfM0wc2r6TPecru631mIB0z3dtZ9d01399t67REAEREAEREAEREAERCANAhJO0qCqY+aGgIST3LhShoiACIiACIiACIiACIiACIhAkwhIOGkSNn2pKAQknBTF07JTBERABERABERABERABERABMoTkHCikSECjRCQcKLhIQIiIAIiIAIiIAIiIAIiIALFJiDhpNj+l/UeAhJONEREQAREQAREQAREQAREQAREoNgEJJwU2/+yXsKJxoAIiIAIiIAIiIAIiIAIiIAIiEAjBCScaHiIQGM/kBYtzNSpU82oUaNMz549xUoEREAEREAEREAEREAEREAERKBgBCScFMzhMjceAaXqxOOlvUVABERABERABERABERABEQgbwQknOTNo7InUQISThLFqYOJgAiIgAiIgAiIgAiIgAiIQHAEJJwE5zJ1uJ4EJJzUk7bOJQIiIAIiIAIiIAIiIAIiIALZIyDhJHs+UY8yREDCSYacoa6IgAiIgAiIgAiIgAiIgAiIQDMQkHDSDNB1ynAISDgJx1fqqQiIgAiIgAiIgAiIgAiIgAikQUDCSRpUdczcEJBwkhtXyhAREAEREAEREAEREAEREAERaBIBCSdNwqYvFYWAhJOieFp2ioAIiIAIiIAIiIAIiIAIiEB5AhJONDJEoBECEk40PERABERABERABERABERABESg2AQknBTb/7LeQ0DCiYaICIiACIiACIiACIiACIiACBSbgISTYvtf1ks40RgQAREQAREQAREQAREQAREQARFohICEEw0PEWjsB9KihZk6daoZNWqU6dmzp1iJgAiIgAiIgAiIgAiIgAiIgAgUjICEk4I5XObGI6BUnXi8tLcIiIAIiIAIiIAIiIAIiIAI5I2AhJO8eVT2JEpAwkmiOHUwERABERABERABERABERABEQiOgIST4FymDteTgISTetLWuURABERABERABERABERABEQgewQknGTPJ+pRhghIOMmQM2J0Bb+piYAIiIAIiIAIiIAIiIAINB8BakXmpUk4yYsnZUcqBCScpII19YM6v6V+ooycQPZmxBEpdUP+TQlsRg5bNP9mBLu6kRKBoo1n2ZvSQMrIYYvm36Sx542fhJOkR4iOlysCEk7CdGfeLtQ+L8heH6Gwt8u/YfvP1/ui+dfHQ9vDJlC08Sx7wx6vvt4Xzb8+HnG3542fhJO4I0D7F4qAhJMw3Z23C7XPC7LXRyjs7fJv2P7z9b5o/vXx0PawCRRtPMvesMerr/dF86+PR9zteeMn4STuCND+hSIg4SRMd+ftQu3zguz1EQp7u/wbtv98vS+af308tD1sAkUbz7I37PHq633R/OvjEXd73vhJOIk7ArR/oQhIOAnT3Xm7UPu8IHt9hMLeLv+G7T9f74vmXx8PbQ+bQNHGs+wNe7z6el80//p4xN2eN34STuKOAO1fKAISTsJ0d94u1D4vyF4fobC3y79h+8/X+6L518dD28MmULTxLHvDHq++3hfNvz4ecbfnjZ+Ek7gjQPsXioCEkzDdnbcLtc8LstdHKOzt8m/Y/vP1vmj+9fHQ9rAJFG08y96wx6uv90Xzr49H3O154yfhJO4I0P6FIiDhJEx35+1C7fOC7PURCnu7/Bu2/3y9L5p/fTy0PWwCRRvPsjfs8errfdH86+MRd3ve+Ek4iTsCtH+hCEg4CdPdebtQ+7wge32Ewt4u/4btP1/vi+ZfHw9tD5tA0caz7A17vPp6XzT/+njE3Z43fhJO4o4A7V8oAhJOwnR33i7UPi/IXh+hsLfLv2H7z9f7ovnXx0PbwyZQtPEse8Mer77eF82/Ph5xt+eNn4STuCNA+xeKgISTMN2dtwu1zwuy10co7O3yb9j+8/W+aP718dD2sAkUbTzL3rDHq6/3RfOvj0fc7XnjJ+Ek7gjQ/oUiIOEkTHfn7ULt84Ls9REKe7v8G7b/fL0vmn99PLQ9bAJFG8+yN+zx6ut90fzr4xF3e974STiJOwK0f6EISDgJ0915u1D7vCB7fYTC3i7/hu0/X++L5l8fD20Pm0DRiyVchAAAIABJREFUxrPsDXu8+npfNP/6eMTdnjd+Ek7ijgDtXygCEk7CdHfeLtQ+L8heH6Gwt8u/YfvP1/ui+dfHQ9vDJlC08Sx7wx6vvt4Xzb8+HnG3542fhJO4I0D7F4qAhJMw3Z23C7XPC7LXRyjs7fJv2P7z9b5o/vXx0PawCRRtPMvesMerr/dF86+PR9zteeMn4STuCND+hSIg4SRMd+ftQu3zguz1EQp7u/wbtv98vS+af308tD1sAkUbz7I37PHq633R/OvjEXd73vhJOIk7ArR/oQhIOAnT3Xm7UPu8IHt9hMLeLv+G7T9f74vmXx8PbQ+bQNHGs+wNe7z6el80//p4xN2eN34STuKOAO1fKAISTsJ0d94u1D4vyF4fobC3y79h+8/X+6L518dD28MmULTxLHvDHq++3hfNvz4ecbfnjZ+Ek7gjQPsXioCEkzDdnbcLtc8LstdHKOzt8m/Y/vP1vmj+9fHQ9rAJFG08y96wx6uv90Xzr49H3O154yfhJO4I0P6FIiDhJEx3p32h/vvvv81XX31lZpxxRjPPPPN4IU2ZMsW0bt3a/kmjpWXvn3/+af766y8zyyyzxOp2qPZOnTrV0PdWrVqZNm3aVGUz3/n222/NHHPMYcdDGi0t/ybd16+//tpymGmmmWo6dHPYyziP22++88MPP5i55porOHtr6rC+LAKNEGiO329zOkT2Nif99M9dNP8mTTRv/CScJD1CdLxcEZBwEqY7075QDxkyxBx//PEWDg/O5dqTTz5phg8fbp555hnz3nvv2V0WXXRRs95665lhw4aZ9u3bJwY3SXu///5727+nn37a9p0277zzmlVXXdUMHjzYrLPOOrmyF2Peeustc9xxx5nbbrutwbYFF1zQ9O/f35x88sllRZQHHnjAbnvuuecavtOtWzdzwAEHmF122SVRESUJ//br18/cd9995pZbbjHbbrtto2Pv999/t4Lgjz/+aD7++GPTsWPHivtfeeWV5v777zdPPPGE3Z8GhwEDBphDDz3UtGzZMvY4r9Xec8891xx00EFm3333NRdddFHF83/++efm9NNPNzfeeKP58ssv7TjfcMMNzUYbbWR23HHHst9DTLzwwgsNdr/xxht2n3bt2pmVV17ZnHjiiaZHjx51tzf2CfUFEUiRQK2/3yS69t///tfes5ZYYgl7fU+zyd406ZY/dtH8W3/CyZ0xC7+P5KwxRsJJkjR1rNwRkHASpkvTvFAjJqy99toNYMoJJyNGjDBbbLFFRXg8oD3++OOma9euiQBOyl6iLfr06TONGFDawXPOOccceOCB03wcqr0Y4SZglRyxzDLLmPHjx08TLXTEEUeY0047raLv+vbta+655x4zwwwzZMK/H374oencubPty0033WS22267RvuFuOL24budOnWabn/G/ZFHHtkoBx5cEBDbtm0bi0Mt4/mPP/4wK664ohU19txzT3PZZZeVPTeCUPfu3a0wVK4hgiCmRRvH7t27d4OgWO57Z555pjnkkEPqZm+sE2lnEagDgVp+v0l1b5999jGXXnqpQQCfPHlyUoctexzZmyresgcvmn/rTzi5M2bh95GcNRJOkmSpY+WQgISTMJ2a1oX6u+++s2/Tow9bpcLJhAkTzEorrWTB8Saat9+rrLKK4S3+FVdcYf/Q1lprLTNmzJhEHq6TsnennXYyN9xwg+3f3nvvbf71r3/ZNB0iFS6++OKGiIJJkyaZLl262P1CtveXX34xiyyyiI02oF111VU24uC3334zp5xyirnmmmvs52effbaNYKDhs3XXXdf+G2GA6BxSNR566CH7fRddxKR9r732SuQH1FT/MuYQLniQd9ERjQknjG9EsF133bWh35WEEyI59ttvvwYORCMhBPLbIBrLRSsdc8wx5qSTTorFoSn2kj738ssv2yigu+++256vMeGkV69eZtSoUXY/hMCtttrKpt0gtDDeaZdffrnZY489GvrOmMAeGlFF//nPf+zv+s4777S+dxE39IPrRLWtKfZWe2ztJwL1JtCc4/mDDz4wV199dcM1J+/CiewthjBW799wkudrzutBkna4YyniJA2qOmZuCEg4CdOVaV2oSXGIpnNAp1Q4GTRokLngggssuJdeesksv/zy00D897//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v38a+6644grTokWLutmsE4lAXgjw29lzzz2nMWedddYxl1566XT35ehOH374oRk3bpy95qTVbr/9dnPHHXeYv//+22y33XZmk002MbPMMkvVp8uybRjx5ZdfmoEDB1obmzKHqQZEc92Pqulb0vssv/zy9r7P/KZVq1b28KXzxLvvvtt069bNLLbYYrFP//3335s55pjDfPvtt2bOOees+H3mrnC//vrrK+5zyy23mAsvvNA8/fTTVffjr7/+Mi1btjQTJ05Mbb5WdWeaYUcJJ80AXacUARHIHoE33njDLLvssmbSpElm7rnnNj/++KM57rjjzDXXXGN+/vnnihMKbl7t27c3n3zyienQoUPVhr344ovmkUceMUcddZSeBuxxAAAgAElEQVQZPHiwOfXUU6v+blo71pvByiuvbLgJH3bYYQYe55xzjvnmm2/MXHPNlbiJ9bTtzz//tGMC4WCHHXYwN998s/n666/NmDFjErer0gHraW+0DwcddJAVjJiE/+tf/8qtvQidPEitueaaDTaWPvjVzXidSAQCJ3D55Zebs846yzz//PNm6tSp9nq5xRZbmI4dO5qRI0dWtO6+++4zBx54oHn33XdTIfDAAw+YzTbbzArBK620kp0TIIKfcsopVZ8vq7b98ssv5q677jLXXXedefTRR82UKVPM7LPPXrVdcXZsrvtRnD4mse8rr7xiEE5ojE3GDq10nsg+xxxzTJMEPyec+OZKjFG482KvUqtFOEGUWWqppZLAFtQxJJwE5S51VgREIC0C7sbO25d55pnHnoZJBQ9/3333ndlrr73MxhtvbHbddVe7DUHl8ccfNx9//LEZNWqUfXvw2GOP2YepAw44wH7GzfG0004zK6644nTdRuV/6qmn7H4cM0vCST0YcI755puvQXCCG29Pzj//fPv2K+lWT//+97//NauuuqpBQCEE9plnnjFrr712aqJQOVb1tNed/6GHHrKTQSbgp59+erMIJ/UYu9iLP08++WQbTaQmAiJQGwHEhfPOO8+8/vrrDQfiPko0yYMPPmg22mgjc9lllzXcS/fff397v+Ch8L333rPXGsRa9j/00EMNEX98BzEeETva2AeRhhclRIPMO++85qKLLjJrrLHGdEYgBP/xxx92O42/hwwZYr744ouqDc6qbZ9++qnBPuY39RJO6nF9/u2332wEK3O2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JVSpdUJNMBdZEqYl0/c6z7ZV66Oi3Y+q5aL9skdAwkn2fKIeiYAIiIAIiIAIiIAIiIAIiIAIiIAIZISAhJOMOELdEAEREAEREAEREAEREAEREAEREAERyB4BCSfZ84l6JAIiIAIiIAIiIAIiIAIiIAIiIAIikBECEk4y4gh1QwREQAREQAREQAREQAREQAREQAREIHsEJJxkzyfqkQiIgAiIgAiIgAiIgAiIgAiIgAiIQEYISDjJiCPUDREQAREQAREQAREQAREQAREQAREQgewRkHCSPZ+oRyIgAiIgAiIgAiIgAiIgAiIgAiIgAhkhIOEkI45QN0RABERABERABERABERABERABERABLJHQMJJ9nyiHomACIiACIiACIiACIiACIiACIiACGSEgISTjDhC3RABERABERABERABERABERABERABEcgeAQkn2fOJeiQCIiACIiACIiACIiACIiACIiACIpARAhJOMuIIdUMEREAEREAEREAEREAEREAEREAERCB7BCScZM8n6pEIiIAIiIAIiIAIiIAIiIAIiIAIiEBGCEg4yYgj1A0REAEREAEREAEREAEREAEREAEREIHsEZBwkj2fqEciIAIiIAIiIAIiIAIiIAIiIAIiIAIZISDhJCOOUDdEQAREQAREQAREQAREQAREQAREQASyR0DCSfZ8oh6JgAiIgAiIgAiIgAiIgAiIgAiIgAhkhICEk4w4Qt0QAREQAREQAREQAREQARHINoEpU6aYmWee2bRp0yaRjv71119mpplmmu5Y//zzj+FPuW1xTvzLL7+Yv//+27Rr1y7O17SvCIhACQEJJxoSIiACIiACIiACIiACIiACIuAh8Ouvv5pVVlnFPPTQQ6ZTp04183rttdfMcsstZ6ZOnTrdsS699FIzcuRIc8MNN5i2bduaSZMmmS5dusQ+51tvvWUGDhxonnrqqZpFmNgn1xdEIEcEJJzkyJkyRQREQAREQAREQAREQAREIB0CQ4cONZ9//rk5//zzEzlBNcLJHXfcYZ5++mkr2DQ1ymX33Xc33bp1MwcccEAi/dZBRKCIBCScFNHrslkEREAEREAEREAEREAERKBqAqTNzDHHHGb06NFmxRVXNGeddZb58ccfzUsvvWTGjh1r+vTpYwWV2Wabzbz44osGkYUoj1VXXdUMHjzYrLPOOvZcCCHDhg0zM844o+ndu7c57bTTbMQJxz/ppJPMTTfdZBZeeGHTsWNH8/3335ubb77ZbLDBBvbzTz/91J532WWXNVdccYWZd955zUUXXWTWWGMNm47DOYlQWXrppe15OccRRxxh+7H11lvb7/OZmgiIQHwCEk7iM9M3REAEREAEREAEREAEREAECkTggw8+MIsssoj5+eefbeTHPvvsY0inufDCC82SSy5p9tprLzNo0CAb1cH/e/bsafbYYw9zyy232NQeoks++ugj07lzZ7vfyiuvbA477DDz5ZdfWuGE/fbcc09z4oknmj/++MMKHltuuWVDqs7bb79tPvzwQyui8Pm+++5rTjjhBDPDDDOYMWPGmPvuu8/ssMMO5qqrrjITJ040xx13nNl+++3NjTfeaL744gsz//zzW5Fn+eWXL5DXZKoIJEdAwklyLHUkERABERABERABERABERCBHBKg3shOO+1kRQgawsn7779vHn74Yft/hI/LLrvMPPnkk/bfm2yyiWnRooUZMWKE/R71UYgeOffcc83LL79sv4Posv/++1vhZOeddzbzzDOPjSihbbXVVvZvV+MkKpwQ6TLrrLPac2+zzTbmhx9+sP1ZfPHFzcEHH2y/t9lmm5nZZ5/dCic0+sL5BwwYkEPvyCQRSJ+AhJP0GesMIiACIiACIiACIiACIiACARMgJebaa68148aNaxBOiDxxQsdzzz1nunfvblglBwGFyBGiSRZddFHz3nvvWeGECBTSfS644AJ7jOeff96m2SCckOJz9dVX25Qa2plnnmmeffbZ6YQTokqceMP2tdZay35/vvnms9/fdNNN7fdPOeUU88YbbzQIJ6T3HHjggbYPaiIgAvEJSDiJz0zfEAEREAEREAEREAEREAERKBCByy+/3Bx77LHTRJz8+eef5sorr7QU+Pvoo4+2Yger3yCyEA1CpAjpMQgn1DOZMGGCueeee+x3iAbZcccdrfCx9tprm/79+zcUcCVt5+uvv55OONl1113N5MmT7fejwsliiy1mDjnkEJvCQyOS5dtvv20QThBWrr/+erPhhhsWyGsyVQSSIyDhJDmWOpIIiIAIiIAIiIAIiIAIiEAOCTiRIlrjBOHj1VdfNS1btrQiCdEl++23n1l99dXNJ598Ytq3b28FDAq58j0iQCgIS/oOyxBTg+TRRx+1wsk555xjRZJbb73V/P7773Y/oklKU3UqCSesnENf+D6CSa9evUzfvn2tcMK5Se2hRkoSyyjn0L0ySQS8BCSceBFpBxEQAREQAREQAREQAREQgSITIGKE1BzEia5du9qaIk888YSNKKGttNJKtkDrAgssYAWLBx54wH5Oegwr4qy//vo24gOB5c4777TbNt98cyuiIJx89tlndh/EFRopN61btzbXXXedadu2rZk0aZKhQG0l4YTvDxkyxBasZbUd6p3wZ/jw4bbPLEfMyj3UOlETARGIT0DCSXxm+oYIiIAIiIAIiIAIiIAIiEDBCJAGQxQJywYjnFCvhNVrvvrqq+kiOUinmWuuuazo8dtvv9k/7E9DAEEUYaWbaKM+yrvvvms6dOhg2rVrF4vuM888Y49PmlCrVq3MwIEDrcBz6KGHmuOPP94unXz22WfHOqZ2FgER+D8CEk40GkRABERABERABERABERABETAQ4CojtVWW828/vrrZvDgwVaoGDZsWCa4sZIPyxsT4TJlyhRz3nnnmbFjx5qFFlrIUBh2/PjxNhJFTQREoGkEJJw0jZu+JQIiIAIiIAIiIAIiIAIiUDACY8aMsWLExIkTbdQItUSy0EjDefDBB82oUaPMnHPOafr162frqBDBQr2VHj16ZKGb6oMIBEtAwkmwrlPHRUAEREAEREAEREAEREAEREAEREAE0iYg4SRtwjq+CIiACIiACIiACIiACIiACIiACIhAsAQknATrOnVcBERABERABERABERABERABERABEQgbQISTtImrOOLgAiIgAiIgAiIgAiIgAiIgAiIgAgES0DCSbCuU8dFQAREQAREQAREQAREQAREQAREQATSJiDhJG3COr4IiIAIiIAIiIAIiIAIiIAIiIAIiECwBCScBOs6dVwEREAEREAEREAEREAEREAEREAERCBtAhJO0ias44uACIiACIiACIiACIiACIiACIiACARLQMJJsK5Tx0VABERABERABERABERABERABERABNImIOEkbcI6vgiIgAiIgAiIgAiIgAiIgAiIgAiIQLAEJJwE6zp1XAREQAREQAREQAREQAREQAREQAREIG0CEk7SJqzji4AIiIAIiIAIFJbAn3/+ad58881p7G/VqpVZcsklE2Hy3XffmcmTJ5tu3bolcrzSg7z88stm/vnnN/PNN990x3/nnXfML7/80vB5ixYtzMILL2xmm222VPqig4qACIiACIhAcxGQcNJc5HVeERABERABERCB3BP46KOPrJhQ2hZddFHzn//8xxx88ME1MbjhhhvMTjvtZKZOnVrTcSp9eaGFFjJHHnmk2XfffafbpXv37ua5556b7vP+/fubq6++2sw666yN9mn8+PFm5MiR9vhqIiACIiACIpBlAhJOsuwd9U0EREAEREAERCBoAk44QUgYMGCAtYUoEf5/7LHHmvvvv99suummTbaxuYUThJVbbrnF9v/77783l112mRVCLr30UrPXXns1atcVV1xh9txzz9REnyZD1RdFQAREQAREoISAhBMNCREQAREwxpx44olm3XXXNT179hQPERABEUiMgBNOEDh22GGHhuN+8sknZsEFFzRnn322Oeigg2w6z/nnn2+FFD7v1auXOf74420qzOabb2722Wcfs91229nv//XXX2azzTYz/fr1s2kx0YgTjsvxHn74YTP77LPbbQg0s8wyi/0unyPajB492qy88spmyy23NHvssUdDvy666CJz7bXX2v/T3zPPPLPRiBOEk9tuu63h+x9//LHhs1NPPdUQkXLMMceYSy65xCy77LJ2H+xEUOnbt68VV9577z2zzjrr2GOQEkQEyrBhw8wbb7xhP6fvyy+/vP0un3Esty+iC1E7aiIgAiLQGAHmeDSuqWoi0FQCEk6aSk7fEwERyAUBbqYnnHCCWWGFFcyECRNyYZOMEAERyA6BcsIJaTVnnHGGGTx4sKGGyDLLLGOFhZlmmskccMAB5qeffjKHHHKIufzyy62ogQDRunVr8+STT1rDnn76aSsqPPHEEwahxAknv/32m1l88cWtmHLUUUeZzz//3Bx66KFm9913N1deeaUVKRZbbDEb4UL0y/PPP28uvPBC8/rrr9s+IGQg0Ky11lpm7bXXNhdffLH58ccfDWJKpVSddu3amXPOOcf268svvzQXXHCBufvuu83bb79t5plnHjPnnHOaIUOGWAGENnToUHP00UebF154wZx11lk2WoUoFUShcePGmfXXX9/07t3bbLPNNlYgwUaO1aVLF7PKKquY9u3bm1122cWMGTPG8nn88cft/moiIAIi0BgBajDRmPNJQNFYaQoBCSdNoabviIAIBE/ACSYYMsccc9iJvqJNgnerDBCBzBFwwskSSyxhOnToYPtH5AQi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)" 242 | ] 243 | }, 244 | { 245 | "cell_type": "code", 246 | "execution_count": null, 247 | "metadata": { 248 | "collapsed": true, 249 | "id": "-plbVMUhOXc4" 250 | }, 251 | "outputs": [], 252 | "source": [ 253 | "# Initialize dictionaries and lists for packet analysis.\n", 254 | "packets_brief = {}\n", 255 | "forward_packets = {}\n", 256 | "backward_packets = {}\n", 257 | "protocols = []\n", 258 | "protocol_counts = {}\n", 259 | "\n", 260 | "def processing_packet_conversion(packet):\n", 261 | " # Clone the packet for processing without modifying the original.\n", 262 | " packet_2 = packet\n", 263 | "\n", 264 | " while packet_2:\n", 265 | " # Extract and count protocol layers in the packet.\n", 266 | " layer = packet_2[0]\n", 267 | " if layer.name not in protocol_counts:\n", 268 | " protocol_counts[layer.name] = 0\n", 269 | " else:\n", 270 | " protocol_counts[layer.name] += 1\n", 271 | " protocols.append(layer.name)\n", 272 | "\n", 273 | " # Break if there are no more payload layers.\n", 274 | " if not layer.payload:\n", 275 | " break\n", 276 | " packet_2 = layer.payload\n", 277 | "\n", 278 | " # Extract relevant information for feature creation.\n", 279 | " src_ip = packet[IP].src\n", 280 | " dst_ip = packet[IP].dst\n", 281 | " src_port = packet.sport\n", 282 | " dst_port = packet.dport\n", 283 | " ip_length = len(packet[IP])\n", 284 | " ip_ttl = packet[IP].ttl\n", 285 | " ip_tos = packet[IP].tos\n", 286 | " tcp_data_offset = packet[TCP].dataofs\n", 287 | " tcp_flags = packet[TCP].flags\n", 288 | "\n", 289 | " # Process payload content and create a feature string.\n", 290 | " payload_bytes = bytes(packet.payload)\n", 291 | " payload_length = len(payload_bytes)\n", 292 | " payload_content = payload_bytes.decode('utf-8', 'replace')\n", 293 | " payload_decimal = ' '.join(str(byte) for byte in payload_bytes)\n", 294 | " final_data = \"0\" + \" \" + \"0\" + \" \" + \"195\" + \" \" + \"-1\" + \" \" + str(src_port) + \" \" + str(dst_port) + \" \" + str(ip_length) + \" \" + str(payload_length) + \" \" + str(ip_ttl) + \" \" + str(ip_tos) + \" \" + str(tcp_data_offset) + \" \" + str(int(tcp_flags)) + \" \" + \"-1\" + \" \" + str(payload_decimal)\n", 295 | " return final_data\n" 296 | ] 297 | }, 298 | { 299 | "cell_type": "markdown", 300 | "source": [ 301 | "Generate a graph giving an overview of the predictions that have been made." 302 | ], 303 | "metadata": { 304 | "id": "70MOYThyHfq3" 305 | } 306 | }, 307 | { 308 | "cell_type": "markdown", 309 | "source": [ 310 | "The `trainFromPcapFile` function processes network packets from a pcap file, extracts relevant features, tokenizes the input using a specified tokenizer, and utilizes a pre-trained model for classifying packet content. It prints predictions and probabilities for non-normal packet classes, updating a dictionary with counts for each identified attack type. The function also tracks the total number of processed packets.\n" 311 | ], 312 | "metadata": { 313 | "id": "UBk0zL9xU-Wg" 314 | } 315 | }, 316 | { 317 | "cell_type": "code", 318 | "execution_count": null, 319 | "metadata": { 320 | "id": "PzfCTPFwKi2l" 321 | }, 322 | "outputs": [], 323 | "source": [ 324 | "def trainFromPcapFile(file_path, label, application_filter):\n", 325 | "\n", 326 | " training_set = []\n", 327 | " train_labels = []\n", 328 | "\n", 329 | " with PcapReader(file_path) as pcap:\n", 330 | " for pkt in pcap:\n", 331 | " if IP in pkt and TCP in pkt: # IPv4 and TCP\n", 332 | " payload_bytes_to_filter = bytes(pkt.payload)\n", 333 | " if application_filter is None or application_filter in payload_bytes_to_filter:\n", 334 | " input_line = processing_packet_conversion(pkt)\n", 335 | " if input_line is not None:\n", 336 | " truncated_line = input_line[:1024]\n", 337 | " training_set.append(truncated_line)\n", 338 | " train_labels.append(label)\n", 339 | "\n", 340 | " tokenized_input = tokenizer(training_set, padding=True, truncation=True, return_tensors=\"pt\")\n", 341 | " tokenized_input['labels'] = torch.tensor(train_labels)\n", 342 | "\n", 343 | " # Move input tensors to the specified device\n", 344 | " tokenized_input = {key: value.to(device) for key, value in tokenized_input.items()}\n", 345 | "\n", 346 | " # Data loader\n", 347 | " dataset = TensorDataset(tokenized_input[\"input_ids\"], tokenized_input[\"attention_mask\"], tokenized_input[\"labels\"])\n", 348 | " dataloader = DataLoader(dataset, batch_size=4, shuffle=True)\n", 349 | "\n", 350 | " num_training_samples = len(dataloader.dataset)\n", 351 | " print(f\"Number of training samples: {num_training_samples}\")\n", 352 | "\n", 353 | " # Optimizer and loss function\n", 354 | " optimizer = Adam(model.parameters(), lr=1e-5)\n", 355 | " criterion = CrossEntropyLoss()\n", 356 | "\n", 357 | " # Training loop\n", 358 | " num_epochs = 3\n", 359 | " for epoch in range(num_epochs):\n", 360 | " print(f\"Epoch {epoch + 1}/{num_epochs}\")\n", 361 | " total_loss = 0.0\n", 362 | " correct_predictions = 0\n", 363 | " total_samples = 0\n", 364 | "\n", 365 | " for iteration, batch in enumerate(dataloader, 1):\n", 366 | " input_ids, attention_mask, labels = batch\n", 367 | "\n", 368 | " # Move batch tensors to the specified device\n", 369 | " input_ids, attention_mask, labels = input_ids.to(device), attention_mask.to(device), labels.to(device)\n", 370 | "\n", 371 | " optimizer.zero_grad()\n", 372 | " outputs = model(input_ids, attention_mask=attention_mask, labels=labels)\n", 373 | " loss = outputs.loss\n", 374 | " loss.backward()\n", 375 | " optimizer.step()\n", 376 | "\n", 377 | " # Calculate accuracy\n", 378 | " predictions = torch.argmax(outputs.logits, dim=1)\n", 379 | " correct_predictions += (predictions == labels).sum().item()\n", 380 | " total_samples += labels.size(0)\n", 381 | " print(f\"Total samples: {total_samples}\")\n", 382 | "\n", 383 | " model.save_pretrained(\"fine_tuned_model\")\n", 384 | "\n", 385 | "# trainFromPcapFile(\"/content/sample_data/nmap.pcap\", 16) # Port scanning\n", 386 | "# trainFromPcapFile(\"/content/sample_data/portscan.pcap\", 16) # Port scanning\n", 387 | "# trainFromPcapFile(\"/content/sample_data/hulk.pcap\", 6) # Hulk\n", 388 | "# trainFromPcapFile(\"/content/sample_data/dvwa_sql_injection.pcap.pcapng\", 21, b\"GET /\")\n" 389 | ] 390 | }, 391 | { 392 | "cell_type": "markdown", 393 | "source": [ 394 | "The `predictingRowsCategory` function reads packets from a pcap file, processes IPv4 and TCP packets, extracts features, tokenizes them using a specified tokenizer, and predicts their class using a pre-trained model. If the predicted class is a non-normal packet, it updates a dictionary with counts for each identified attack type. Prediction details are printed, and the total number of processed packets is tracked. The processed packets' textual representations are stored in the `text_data` list." 395 | ], 396 | "metadata": { 397 | "id": "pVnzwqYZVPbe" 398 | } 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": null, 403 | "metadata": { 404 | "id": "BqWv5GzHdfxx" 405 | }, 406 | "outputs": [], 407 | "source": [ 408 | "text_data = []\n", 409 | "\n", 410 | "def predictingRowsCategory(file_path, filter):\n", 411 | " packets_nbr = 0 # Initialize packet counter\n", 412 | " with PcapReader(file_path) as pcap:\n", 413 | " for pkt in pcap :\n", 414 | " if IP in pkt : # Check for IPv4 packets\n", 415 | " if TCP in pkt:\n", 416 | "\n", 417 | " input_line = processing_packet_conversion(pkt) # Process packet data\n", 418 | " if input_line is not None:\n", 419 | "\n", 420 | " truncated_line = input_line[:1024] # Limit input length\n", 421 | " tokens = tokenizer(truncated_line, return_tensors=\"pt\") # Tokenize input\n", 422 | " outputs = model(**tokens) # Pass tokens through the model\n", 423 | " logits = outputs.logits\n", 424 | " probabilities = logits.softmax(dim=1) # Calculate class probabilities\n", 425 | " predicted_class = torch.argmax(probabilities, dim=1).item() # Get predicted class index\n", 426 | "\n", 427 | " predictedAttack = classes[predicted_class] # Map index to corresponding attack class\n", 428 | "\n", 429 | " if predictedAttack != \"Normal\":\n", 430 | " # Update or add count for non-normal packets in packets_brief dictionary\n", 431 | " if predictedAttack not in packets_brief :\n", 432 | " packets_brief[predictedAttack] = 1\n", 433 | " else :\n", 434 | " packets_brief[predictedAttack] += 1\n", 435 | "\n", 436 | " # Print prediction details\n", 437 | " print(\"Predicted class:\", predicted_class)\n", 438 | " print(\"predicted class is : \", classes[predicted_class])\n", 439 | " print(\"Class probabilities:\", probabilities.tolist())\n", 440 | "\n", 441 | " packets_nbr += 1 # Increment packet counter\n" 442 | ] 443 | }, 444 | { 445 | "cell_type": "markdown", 446 | "source": [ 447 | "Predictions test" 448 | ], 449 | "metadata": { 450 | "id": "Kjtlpl4wY5B7" 451 | } 452 | }, 453 | { 454 | "cell_type": "code", 455 | "execution_count": null, 456 | "metadata": { 457 | "collapsed": true, 458 | "id": "p0ikQlEVFU50" 459 | }, 460 | "outputs": [], 461 | "source": [ 462 | "predictingRowsCategory(\"/content/sample_data/hulk.pcap\", b\"HTTP\")\n", 463 | "\n", 464 | "import matplotlib.pyplot as plt\n", 465 | "\n", 466 | "keys = list(packets_brief.keys())\n", 467 | "vals = list(packets_brief.values())\n", 468 | "\n", 469 | "plt.bar(keys, vals)\n", 470 | "\n", 471 | "plt.xlabel('Attacks')\n", 472 | "plt.ylabel('Values')\n", 473 | "plt.title('Detected possible attacks')\n", 474 | "plt.show()" 475 | ] 476 | }, 477 | { 478 | "cell_type": "markdown", 479 | "metadata": { 480 | "id": "XwbDUjaHcpF-" 481 | }, 482 | "source": [ 483 | "We specify to Pytorch that we wish to prioritize training on GPU and not on CPU." 484 | ] 485 | }, 486 | { 487 | "cell_type": "code", 488 | "execution_count": null, 489 | "metadata": { 490 | "id": "CO4N3tcOaQGh" 491 | }, 492 | "outputs": [], 493 | "source": [ 494 | "print(torch.cuda.get_device_name(0))\n", 495 | "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n", 496 | "model = model.to(device)" 497 | ] 498 | }, 499 | { 500 | "cell_type": "code", 501 | "source": [ 502 | "# Initialize an empty list to store textual data.\n", 503 | "text_data = []\n", 504 | "\n", 505 | "# Function for predicting packet categories on GPU and updating briefs.\n", 506 | "def predictingRowsCategoryOnGPU(file_path, filter, debug):\n", 507 | " packets_brief.clear() # Clear the dictionary tracking packet briefs.\n", 508 | "\n", 509 | " packets_nbr = 0 # Initialize packet counter.\n", 510 | " with PcapReader(file_path) as pcap: # Iterate through packets in the pcap file.\n", 511 | " for pkt in pcap:\n", 512 | " if IP in pkt: # Check for IPv4 packets.\n", 513 | " if TCP in pkt: # Ensure the packet is TCP.\n", 514 | "\n", 515 | " # Filter packets based on payload content.\n", 516 | " payload_bytes_to_filter = bytes(pkt.payload)\n", 517 | " if filter in payload_bytes_to_filter:\n", 518 | "\n", 519 | " # Process and truncate packet data.\n", 520 | " input_line = processing_packet_conversion(pkt)\n", 521 | " if input_line is not None:\n", 522 | " truncated_line = input_line[:1024]\n", 523 | "\n", 524 | " # Tokenize the truncated input and move it to the specified device.\n", 525 | " tokens = tokenizer(truncated_line, return_tensors=\"pt\")\n", 526 | " tokens = {key: value.to(device) for key, value in tokens.items()}\n", 527 | "\n", 528 | " # Pass tokens through the pre-trained model for prediction.\n", 529 | " outputs = model(**tokens)\n", 530 | "\n", 531 | " logits = outputs.logits\n", 532 | " probabilities = logits.softmax(dim=1)\n", 533 | " predicted_class = torch.argmax(probabilities, dim=1).item()\n", 534 | "\n", 535 | " predictedAttack = classes[predicted_class]\n", 536 | "\n", 537 | " # Update packet brief dictionary for non-normal packets.\n", 538 | " if predictedAttack != \"Normal\":\n", 539 | " if predictedAttack not in packets_brief:\n", 540 | " packets_brief[predictedAttack] = 1\n", 541 | " else:\n", 542 | " packets_brief[predictedAttack] += 1\n", 543 | "\n", 544 | " # Append truncated line to the textual data list.\n", 545 | " text_data.append(truncated_line)\n", 546 | "\n", 547 | " # Print prediction details when debugging is enabled.\n", 548 | " if debug:\n", 549 | " print(\"Predicted class:\", predicted_class)\n", 550 | " print(\"Predicted class is: \", classes[predicted_class])\n", 551 | " print(\"Class probabilities:\", probabilities.tolist())\n", 552 | "\n", 553 | " packets_nbr += 1 # Increment packet counter.\n" 554 | ], 555 | "metadata": { 556 | "id": "FwgCdHwfZ0ge" 557 | }, 558 | "execution_count": null, 559 | "outputs": [] 560 | }, 561 | { 562 | "cell_type": "markdown", 563 | "source": [ 564 | " `predictingRowsCategoryOnGPUByGettingRidOfParameters` function processes network packets from a pcap file, filters based on specified criteria, modifies the input by excluding certain tokens, tokenizes the modified input using a pre-trained tokenizer on a GPU, and predicts the packet class using a pre-trained model. If the predicted class is non-normal, it updates a dictionary with counts for each identified attack type. Optionally, it prints prediction details when debugging is enabled. The total number of processed packets is tracked, and the resulting brief is stored in the packets_brief dictionary." 565 | ], 566 | "metadata": { 567 | "id": "D-Gm9QvEVdd-" 568 | } 569 | }, 570 | { 571 | "cell_type": "code", 572 | "execution_count": null, 573 | "metadata": { 574 | "id": "C2cjhdonuGE6" 575 | }, 576 | "outputs": [], 577 | "source": [ 578 | "def predictingRowsCategoryOnGPUByGettingRidOfParameters(file_path, filter, debug, tokens_array):\n", 579 | " packets_brief.clear() # Clear the dictionary tracking packet briefs.\n", 580 | "\n", 581 | " packets_nbr = 0 # Initialize packet counter.\n", 582 | " with PcapReader(file_path) as pcap: # Iterate through packets in the pcap file.\n", 583 | " for pkt in pcap:\n", 584 | " if IP in pkt: # Check for IPv4 packets.\n", 585 | " if TCP in pkt: # Ensure the packet is TCP.\n", 586 | " payload_bytes_to_filter = bytes(pkt.payload)\n", 587 | " if filter in payload_bytes_to_filter: # Apply payload filtering criteria.\n", 588 | "\n", 589 | " # Process and truncate packet data.\n", 590 | " input_line = processing_packet_conversion(pkt)\n", 591 | " if input_line is not None:\n", 592 | " truncated_line = input_line[:1024]\n", 593 | "\n", 594 | " # Remove specified tokens from the truncated line.\n", 595 | " tokens_to_exclude = tokens_array\n", 596 | " tokens_list = truncated_line.split()\n", 597 | " modified_tokens_list = [token for i, token in enumerate(tokens_list) if i not in tokens_to_exclude]\n", 598 | " modified_truncated_line = ' '.join(modified_tokens_list)\n", 599 | "\n", 600 | " # Tokenize the modified input and move it to the specified device.\n", 601 | " tokens = tokenizer(modified_truncated_line, return_tensors=\"pt\")\n", 602 | " tokens = {key: value.to(device) for key, value in tokens.items()}\n", 603 | "\n", 604 | " # Pass tokens through the pre-trained model.\n", 605 | " outputs = model(**tokens)\n", 606 | "\n", 607 | " # Extract prediction details.\n", 608 | " logits = outputs.logits\n", 609 | " probabilities = logits.softmax(dim=1)\n", 610 | " predicted_class = torch.argmax(probabilities, dim=1).item()\n", 611 | " predictedAttack = classes[predicted_class]\n", 612 | "\n", 613 | " # Update packet brief dictionary for non-normal packets.\n", 614 | " if predictedAttack != \"Normal\":\n", 615 | " if predictedAttack not in packets_brief:\n", 616 | " packets_brief[predictedAttack] = 1\n", 617 | " else:\n", 618 | " packets_brief[predictedAttack] += 1\n", 619 | "\n", 620 | " # Print prediction details when debugging is enabled.\n", 621 | " if debug:\n", 622 | " print(\"Predicted class:\", predicted_class)\n", 623 | " print(\"Predicted class is: \", classes[predicted_class])\n", 624 | " print(\"Class probabilities:\", probabilities.tolist())\n", 625 | "\n", 626 | " packets_nbr += 1 # Increment packet counter.\n" 627 | ] 628 | }, 629 | { 630 | "cell_type": "markdown", 631 | "source": [ 632 | "Predictions test on GPU" 633 | ], 634 | "metadata": { 635 | "id": "yFnhWy2zWwd4" 636 | } 637 | }, 638 | { 639 | "cell_type": "code", 640 | "execution_count": null, 641 | "metadata": { 642 | "collapsed": true, 643 | "id": "qDSC070Gdvrc" 644 | }, 645 | "outputs": [], 646 | "source": [ 647 | "predictingRowsCategoryOnGPU(\"/content/sample_data/nmap.pcap\", b\"\", False)\n", 648 | "\n", 649 | "keys = list(packets_brief.keys())\n", 650 | "vals = list(packets_brief.values())\n", 651 | "\n", 652 | "plt.bar(keys, vals, color='red', width=0.7)\n", 653 | "\n", 654 | "plt.xlabel('Attacks', weight='bold')\n", 655 | "plt.ylabel('Number of packets', weight='bold')\n", 656 | "plt.title('Detected possible attacks')\n", 657 | "plt.show()" 658 | ] 659 | }, 660 | { 661 | "cell_type": "markdown", 662 | "source": [ 663 | "Network-visualisation & graphs creating functions :" 664 | ], 665 | "metadata": { 666 | "id": "u5Yd3mn29Ler" 667 | } 668 | }, 669 | { 670 | "cell_type": "code", 671 | "source": [ 672 | "import matplotlib.pyplot as plt\n", 673 | "import networkx as nx\n", 674 | "from scapy.all import *\n", 675 | "\n", 676 | "def create_network_graph(pcap_file):\n", 677 | " packets = rdpcap(pcap_file)\n", 678 | " G = nx.DiGraph()\n", 679 | " for packet in packets:\n", 680 | " src_ip = packet[IP].src\n", 681 | " dst_ip = packet[IP].dst\n", 682 | " G.add_edge(src_ip, dst_ip)\n", 683 | " return G\n", 684 | "\n", 685 | "def visualize_network_graph(pcap_file_path):\n", 686 | "\n", 687 | " network_graph = create_network_graph(pcap_file_path)\n", 688 | "\n", 689 | " pos = nx.spring_layout(network_graph)\n", 690 | " nx.draw(network_graph, pos, with_labels=True, font_size=8, node_size=1000, node_color='skyblue', font_color='black', font_weight='bold')\n", 691 | " #plt.show()\n", 692 | "\n", 693 | " img_bytes = BytesIO()\n", 694 | " plt.savefig(img_bytes, format='png')\n", 695 | " img_bytes.seek(0)\n", 696 | "\n", 697 | " encoded_image = base64.b64encode(img_bytes.getvalue()).decode('utf-8')\n", 698 | " plt.close()\n", 699 | "\n", 700 | " return encoded_image\n", 701 | "\n", 702 | "def visualize_destination_ports_plot(pcap_file_path, top_n=20):\n", 703 | "\n", 704 | " packets = rdpcap(pcap_file_path)\n", 705 | "\n", 706 | " destination_ports = {}\n", 707 | "\n", 708 | " for packet in packets:\n", 709 | " if IP in packet and TCP in packet:\n", 710 | " dst_ip = packet[IP].dst\n", 711 | " dst_port = packet[TCP].dport\n", 712 | " destination_ports[(dst_ip, dst_port)] = destination_ports.get((dst_ip, dst_port), 0) + 1\n", 713 | " sorted_ports = sorted(destination_ports.items(), key=lambda x: x[1], reverse=True)\n", 714 | "\n", 715 | " plt.figure(figsize=(10, 6))\n", 716 | "\n", 717 | " top_ports = sorted_ports[:top_n]\n", 718 | "\n", 719 | " destinations, counts = zip(*top_ports)\n", 720 | " dst_labels = [f\"{ip}:{port}\" for (ip, port) in destinations]\n", 721 | "\n", 722 | " plt.bar(dst_labels, counts, color='skyblue')\n", 723 | " plt.xlabel('Destination IP and TCP Ports')\n", 724 | " plt.ylabel('Count')\n", 725 | " plt.title(f'Top {top_n} Most Contacted TCP Ports')\n", 726 | " plt.xticks(rotation=45, ha='right')\n", 727 | " plt.tight_layout()\n", 728 | "\n", 729 | " img_bytes = BytesIO()\n", 730 | " plt.savefig(img_bytes, format='png')\n", 731 | " img_bytes.seek(0)\n", 732 | "\n", 733 | " encoded_image = base64.b64encode(img_bytes.getvalue()).decode('utf-8')\n", 734 | " plt.close()\n", 735 | "\n", 736 | " return encoded_image\n" 737 | ], 738 | "metadata": { 739 | "id": "K8onRkXzzgaF" 740 | }, 741 | "execution_count": null, 742 | "outputs": [] 743 | }, 744 | { 745 | "cell_type": "markdown", 746 | "metadata": { 747 | "id": "1zW-mUi9abGd" 748 | }, 749 | "source": [ 750 | "Expose & print local link for the web app (print it before launching the web app !)" 751 | ] 752 | }, 753 | { 754 | "cell_type": "code", 755 | "execution_count": null, 756 | "metadata": { 757 | "id": "-eR58WgdF8Di" 758 | }, 759 | "outputs": [], 760 | "source": [ 761 | "from google.colab.output import eval_js\n", 762 | "print(eval_js(\"google.colab.kernel.proxyPort(5000)\"))" 763 | ] 764 | }, 765 | { 766 | "cell_type": "markdown", 767 | "source": [ 768 | "The code below build the whole Flask web app (front & back)." 769 | ], 770 | "metadata": { 771 | "id": "fq58ezPsa7B3" 772 | } 773 | }, 774 | { 775 | "cell_type": "code", 776 | "execution_count": null, 777 | "metadata": { 778 | "id": "k5rDAwM1FE02" 779 | }, 780 | "outputs": [], 781 | "source": [ 782 | "app = Flask(__name__, template_folder='/content/sample_data/')\n", 783 | "\n", 784 | "index = \"\"\"\n", 785 | "\n", 786 | "\n", 787 | "\n", 788 | " \n", 789 | " \n", 790 | " PCAP File Processor\n", 791 | " \n", 830 | "\n", 831 | "\n", 832 | "

Malicious PCAP File Analysis 🦈

\n", 833 | "
\n", 834 | " \n", 835 | "
\n", 836 | " \n", 837 | "

\n", 838 | " \n", 839 | " \n", 840 | "

\n", 841 | " \n", 842 | "
\n", 843 | "\n", 844 | "\n", 845 | "\"\"\"\n", 846 | "response = \"\"\"\n", 847 | "\n", 848 | "\n", 849 | "\n", 850 | " \n", 851 | " \n", 852 | " PCAP File Processor\n", 853 | " \n", 909 | "\n", 910 | "\n", 911 | "

Malicious PCAP File Analysis 🦈

\n", 912 | "

{{ alert_text }}

\n", 913 | "
\n", 914 | " {% if graph1 %}\n", 915 | "
\n", 916 | "

Identified Attacks 🚨​​​

\n", 917 | " \"Graph\n", 918 | "
\n", 919 | " {% endif %}\n", 920 | " {% if graph2 %}\n", 921 | "
\n", 922 | "

Protocols 🔎​

\n", 923 | " \"Protocols\n", 924 | "
\n", 925 | " {% endif %}\n", 926 | " \n", 927 | " \n", 928 | " {% if graph3 %}\n", 929 | "
\n", 930 | "

Network Endpoints 🌐​

\n", 931 | " \"Graph\n", 932 | "
\n", 933 | " {% endif %}\n", 934 | " {% if graph4 %}\n", 935 | "
\n", 936 | "

TCP Ports 🛜

\n", 937 | " \"Graph\n", 938 | "
\n", 939 | " {% endif %}\n", 940 | "
\n", 941 | "\n", 942 | "\n", 943 | "\"\"\"\n", 944 | "\n", 945 | "app.config['UPLOAD_FOLDER'] = '/content/sample_data'\n", 946 | "app.config['ALLOWED_EXTENSIONS'] = {'pcap', 'pcapng'}\n", 947 | "\n", 948 | "os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)\n", 949 | "\n", 950 | "def generate_graph(data, title, graph_color, xtext, ytext):\n", 951 | " plt.bar(data.keys(), data.values(), color=graph_color, width=0.7)\n", 952 | " #plt.ylim(0, 50)\n", 953 | " plt.xlabel(xtext, weight='bold')\n", 954 | " plt.xticks(rotation=45, ha='right')\n", 955 | " plt.ylabel(ytext, weight='bold')\n", 956 | " plt.title(title)\n", 957 | "\n", 958 | " img_bytes = BytesIO()\n", 959 | " plt.savefig(img_bytes, format='png')\n", 960 | " img_bytes.seek(0)\n", 961 | "\n", 962 | " # Convert the image to base64 encoding\n", 963 | " encoded_image = base64.b64encode(img_bytes.getvalue()).decode('utf-8')\n", 964 | " plt.close()\n", 965 | "\n", 966 | " return encoded_image\n", 967 | "\n", 968 | "def allowed_file(filename):\n", 969 | " return '.' in filename and filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS']\n", 970 | "\n", 971 | "@app.route(\"/\")\n", 972 | "def home():\n", 973 | " return index\n", 974 | "\n", 975 | "@app.route('/upload', methods=['POST'])\n", 976 | "def upload_file():\n", 977 | "\n", 978 | " packets_brief.clear()\n", 979 | " protocol_counts.clear()\n", 980 | " text_data.clear()\n", 981 | "\n", 982 | " if 'file' not in request.files:\n", 983 | " return redirect(request.url)\n", 984 | "\n", 985 | " file = request.files['file']\n", 986 | "\n", 987 | " filter_value = request.form['filter']\n", 988 | "\n", 989 | "\n", 990 | " # debug_bool = False\n", 991 | " # if filter_value == 'on':\n", 992 | " # debug_bool = True\n", 993 | "\n", 994 | "\n", 995 | " if file.filename == '':\n", 996 | " return redirect(request.url)\n", 997 | "\n", 998 | " if file and allowed_file(file.filename):\n", 999 | " filename = secure_filename(file.filename)\n", 1000 | " file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)\n", 1001 | " file.save(file_path)\n", 1002 | "\n", 1003 | "\n", 1004 | " print(\"FILTER VALUE : \", filter_value)\n", 1005 | " if len(filter_value) > 0 :\n", 1006 | " predictingRowsCategoryOnGPU(file_path, filter_value.encode('utf-8'), False) # Will take care of saving data in packets_brief\n", 1007 | " #predictingRowsCategoryOnGPUByGettingRidOfParameters(file_path, filter_value.encode('utf-8'), debug_bool)\n", 1008 | " else:\n", 1009 | " predictingRowsCategoryOnGPU(file_path, b\"\", False) # Will take care of saving data in packets_brief\n", 1010 | " #predictingRowsCategoryOnGPUByGettingRidOfParameters(file_path, filter_value.encode('utf-8'), debug_bool)\n", 1011 | "\n", 1012 | " # Generate first graph\n", 1013 | " keys1 = list(packets_brief.keys())\n", 1014 | " vals1 = list(packets_brief.values())\n", 1015 | " graph1 = generate_graph(dict(zip(keys1, vals1)), 'Identified Known Attacks​', '#ef6666', \"Attacks\", \"Number of Malicious Packets\")\n", 1016 | "\n", 1017 | " # Generate Second graph\n", 1018 | " keys2 = list(protocol_counts.keys())\n", 1019 | " vals2 = list(protocol_counts.values())\n", 1020 | " graph2 = generate_graph(dict(zip(keys2, vals2)), 'Identified Protocols​', '#341f97', \"Protocols\", \"Number of Packets\")\n", 1021 | "\n", 1022 | " # Generate Third graph\n", 1023 | "\n", 1024 | " graphh3 = visualize_network_graph(file_path)\n", 1025 | "\n", 1026 | " # Generate Fourth graph\n", 1027 | "\n", 1028 | " graph4 = visualize_destination_ports_plot(file_path)\n", 1029 | "\n", 1030 | " if len(packets_brief) > 0 :\n", 1031 | " return render_template_string(response, graph1=graph1, graph2=graph2, graph3=graphh3, graph4=graph4, alert_color=\"#c0392b\", alert_text=f\"{filename} contains malicious network activity !\")\n", 1032 | "\n", 1033 | " return render_template_string(response, graph1=graph1, graph2=graph2, graph3=graphh3, graph4=graph4, alert_color=\"#27ae60\", alert_text=f\"{filename} is clear ! 👌\")\n", 1034 | "\n", 1035 | " # keys = list(packets_brief.keys())\n", 1036 | " # vals = list(packets_brief.values())\n", 1037 | "\n", 1038 | " # plt.bar(keys, vals, color='red', width=0.7)\n", 1039 | "\n", 1040 | " # plt.xlabel('Attacks', weight='bold')\n", 1041 | " # plt.ylabel('Number of packets', weight='bold')\n", 1042 | " # plt.title('Detected possible attacks')\n", 1043 | "\n", 1044 | " # img_bytes = BytesIO()\n", 1045 | " # plt.savefig(img_bytes, format='png')\n", 1046 | " # img_bytes.seek(0)\n", 1047 | "\n", 1048 | " # return send_file(img_bytes, mimetype='image/png')\n", 1049 | "\n", 1050 | "if __name__ == \"__main__\":\n", 1051 | " app.run()" 1052 | ] 1053 | }, 1054 | { 1055 | "cell_type": "code", 1056 | "source": [ 1057 | "import matplotlib.pyplot as plt\n", 1058 | "from scapy.all import *\n", 1059 | "\n", 1060 | "def create_destination_ports_graph(pcap_file):\n", 1061 | " packets = rdpcap(pcap_file)\n", 1062 | "\n", 1063 | " # Dictionary to store the count of destination ports\n", 1064 | " destination_ports = {}\n", 1065 | "\n", 1066 | " for packet in packets:\n", 1067 | " # Check if the packet has IP and TCP layers\n", 1068 | " if IP in packet and TCP in packet:\n", 1069 | " dst_ip = packet[IP].dst\n", 1070 | " dst_port = packet[TCP].dport\n", 1071 | "\n", 1072 | " # Update the count of destination ports\n", 1073 | " destination_ports[(dst_ip, dst_port)] = destination_ports.get((dst_ip, dst_port), 0) + 1\n", 1074 | "\n", 1075 | " # Sort destination ports based on their count in descending order\n", 1076 | " sorted_ports = sorted(destination_ports.items(), key=lambda x: x[1], reverse=True)\n", 1077 | "\n", 1078 | " return sorted_ports\n", 1079 | "\n", 1080 | "def visualize_destination_ports_plot(sorted_ports, top_n=20):\n", 1081 | " plt.figure(figsize=(10, 6))\n", 1082 | "\n", 1083 | " # Take only the top n destination ports\n", 1084 | " top_ports = sorted_ports[:top_n]\n", 1085 | "\n", 1086 | " destinations, counts = zip(*top_ports)\n", 1087 | " dst_labels = [f\"{ip}:{port}\" for (ip, port) in destinations]\n", 1088 | "\n", 1089 | " plt.bar(dst_labels, counts, color='skyblue')\n", 1090 | " plt.xlabel('Destination IP and TCP Ports')\n", 1091 | " plt.ylabel('Count')\n", 1092 | " plt.title(f'Top {top_n} Most Contacted TCP Ports')\n", 1093 | " plt.xticks(rotation=45, ha='right')\n", 1094 | " plt.tight_layout()\n", 1095 | " plt.show()\n", 1096 | "\n", 1097 | "if __name__ == \"__main__\":\n", 1098 | " pcap_file_path = \"/content/sample_data/hulk.pcap\"\n", 1099 | " sorted_ports = create_destination_ports_graph(pcap_file_path)\n", 1100 | " visualize_destination_ports_plot(sorted_ports, top_n=20)" 1101 | ], 1102 | "metadata": { 1103 | "id": "wXY1Au8D9hIV" 1104 | }, 1105 | "execution_count": null, 1106 | "outputs": [] 1107 | } 1108 | ], 1109 | "metadata": { 1110 | "accelerator": "GPU", 1111 | "colab": { 1112 | "provenance": [], 1113 | "gpuType": "T4" 1114 | }, 1115 | "kernelspec": { 1116 | "display_name": "Python 3", 1117 | "name": "python3" 1118 | }, 1119 | "language_info": { 1120 | "name": "python" 1121 | } 1122 | }, 1123 | "nbformat": 4, 1124 | "nbformat_minor": 0 1125 | } --------------------------------------------------------------------------------