-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcoconut.py
144 lines (125 loc) · 31.4 KB
/
coconut.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
from email.message import EmailMessage
from email.utils import make_msgid
from subprocess import Popen, PIPE
import subprocess
import smtplib
import time
import os
import re
def check():
coconuts = Popen(["wifi_coconut", "--list-coconuts"], stdout=PIPE, stderr=subprocess.STDOUT)
coconuts = ''.join(map(chr, coconuts.stdout.read()))
if "No Wi-Fi Coconut radios found." in coconuts:
return "not found"
else:
return "found"
def start():
deauth_count = 0
disassoc_count = 0
auth_count = 0
with open("config/server.conf", "r") as f:
config = f.read()
config = re.sub("\nDeauth Count: .*?\n", "\nDeauth Count: " + str(deauth_count) + "\n", config, flags=re.DOTALL)
config = re.sub("\nDisassoc Count: .*?\n", "\nDisassoc Count: " + str(disassoc_count) + "\n", config, flags=re.DOTALL)
config = re.sub("\nAuth Count: .*?\n", "\nAuth Count: " + str(auth_count) + "\n", config, flags=re.DOTALL)
with open("config/server.conf", "w") as f:
f.write(config)
stream_file = open("/tmp/coconut_stream", "x")
stream_file.close()
# Delete this if you want to use a single network adapter (no WiFi Coconut)
os.popen("wifi_coconut --no-display --quit --wait --pcap=- 2> /dev/null | tshark -r - -E separator=\"%\" -Y \"wlan.fc.type_subtype == 0x000c or wlan.fc.type_subtype == 0x000a or wlan.fc.type_subtype == 0x000b\" -T fields -e wlan.fc.type_subtype -e wlan_radio.channel -e wlan.ta -e wlan.ra -e frame.number > /tmp/coconut_stream 2> /dev/null &")
# Uncomment this if you want to use a single network adapter (no WiFi Coconut)
# os.popen("tshark -i <YOUR WIFI INTERFACE IN MONITOR MODE> -E separator=\"%\" -Y \"wlan.fc.type_subtype == 0x000c or wlan.fc.type_subtype == 0x000a or wlan.fc.type_subtype == 0x000b\" -T fields -e wlan.fc.type_subtype -e wlan_radio.channel -e wlan.ta -e wlan.ra -e frame.number > /tmp/coconut_stream 2> /dev/null &")
def guard():
deauth_count = []
disassoc_count = []
auth_count = []
with open("config/server.conf", "r") as f:
file = f.read()
deauth_limit = int(file.partition("Deauth: ")[2].partition("\n")[0])
disassoc_limit = int(file.partition("Disassoc: ")[2].partition("\n")[0])
auth_limit = int(file.partition("Auth: ")[2].partition("\n")[0])
try:
number = 0
while True:
pkt = os.popen("tail -2 /tmp/coconut_stream | head -1").read()
subtype = pkt.partition("%")[0]
channel = pkt.partition("%")[2].partition("%")[0]
src = pkt.partition("%")[2].partition("%")[2].partition("%")[0]
dst = pkt.partition("%")[2].partition("%")[2].partition("%")[2].partition("%")[0]
current_number = pkt.partition("%")[2].partition("%")[2].partition("%")[2].partition("%")[2].partition("%")[0]
with open("config/server.conf", "r") as f:
config = f.read()
for deauth in deauth_count:
if (time.time() - deauth) > 60:
deauth_count.remove(deauth)
config = re.sub("\nDeauth Count: .*?\n", "\nDeauth Count: " + str(len(deauth_count)) + "\n", config, flags=re.DOTALL)
for disassoc in disassoc_count:
if (time.time() - disassoc) > 60:
disassoc_count.remove(disassoc)
config = re.sub("\nDisassoc Count: .*?\n", "\nDisassoc Count: " + str(len(disassoc_count)) + "\n", config, flags=re.DOTALL)
for auth in auth_count:
if (time.time() - auth) > 60:
auth_count.remove(auth)
config = re.sub("\nAuth Count: .*?\n", "\nAuth Count: " + str(len(auth_count)) + "\n", config, flags=re.DOTALL)
if current_number != number:
number = current_number
if subtype == "0x000c":
deauth_count.append(time.time())
config = re.sub("\nDeauth Count: .*?\n", "\nDeauth Count: " + str(len(deauth_count)) + "\n", config, flags=re.DOTALL)
if len(deauth_count) == (deauth_limit + 1):
notify("Deauthentication")
elif subtype == "0x000a":
disassoc_count.append(time.time())
config = re.sub("\nDisassoc Count: .*?\n", "\nDisassoc Count: " + str(len(disassoc_count)) + "\n", config, flags=re.DOTALL)
if len(disassoc_count) == (disassoc_limit + 1):
notify("Disassociation")
elif subtype == "0x000b":
auth_count.append(time.time())
config = re.sub("\nAuth Count: .*?\n", "\nAuth Count: " + str(len(auth_count)) + "\n", config, flags=re.DOTALL)
if len(auth_count) == (auth_limit + 1):
notify("Authentication")
with open("config/server.conf", "w") as f:
f.write(config)
except KeyboardInterrupt:
clean()
print("\nBye!")
def notify(attack):
try:
msg = EmailMessage()
with open("config/server.conf", "r") as f:
file = f.read()
mail = file.partition("Mail: ")[2].partition("\n")[0]
host = file.partition("SMTP Server: ")[2].partition("\n")[0]
port = int(file.partition("SMTP Port: ")[2].partition("\n")[0])
mail_pass = file.partition("Mail Pass: ")[2].partition("\n")[0]
msg["To"] = file.partition("To: ")[2].partition("\n")[0]
msg["From"] = mail
msg["Subject"] = "Pinacolada: " + attack + " detected!"
asparagus_cid = make_msgid()
msg.add_alternative("""\
<html>
<head>
</head>
<body>
<img style="width: 90%; max-width: 350px; margin-left: auto; margin-right: auto; display: block;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjwhLS0gQ3JlYXRlZCB3aXRoIFZlY3Rvcm5hdG9yIChodHRwOi8vdmVjdG9ybmF0b3IuaW8vKSAtLT4KPHN2ZyBoZWlnaHQ9IjEwMCUiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3R5bGU9ImZpbGwtcnVsZTpub256ZXJvO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxODAuNzkgMTMzNS41NyIgd2lkdGg9IjEwMCUiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8ZGVmcy8+CjxnIGlkPSJFYmVuZS0xIj4KPGcgb3BhY2l0eT0iMSI+CjxwYXRoIGQ9Ik00My4wMzY0IDc5Ni4wMzlMNDMuMDM2NCA3OTEuMzcxQzQzLjAzNjQgNzU2Ljc5NCA0OS4yNjAyIDcyMy4zNDEgNjEuNzA3OCA2OTEuMDEyQzc0LjE1NTQgNjU4LjY4MyA5MS4zNTczIDYzMS4xMDggMTEzLjMxNCA2MDguMjg3QzEzNS4yNyA1ODUuNDY3IDE2MS4yMDIgNTY3LjQgMTkxLjExMSA1NTQuMDg4QzIyMS4wMiA1NDAuNzc2IDI1My40MzYgNTM0LjEyIDI4OC4zNTggNTM0LjEyQzMyMi45MzUgNTM0LjEyIDM1NS41MjMgNTQwLjc3NiAzODYuMTI0IDU1NC4wODhDNDE2LjcyNCA1NjcuNCA0NDMuNDM1IDU4NS40NjcgNDY2LjI1NSA2MDguMjg3QzQ4OS4wNzYgNjMxLjEwOCA1MDcuMTQyIDY1OC42ODMgNTIwLjQ1NCA2OTEuMDEyQzUzMy43NjYgNzIzLjM0MSA1NDAuNDIyIDc1Ni43OTQgNTQwLjQyMiA3OTEuMzcxQzU0MC40MjIgODE0LjUzNyA1MzcuMzk3IDgzNi45MjYgNTMxLjM0NiA4NTguNTM2QzUyNS4yOTUgODgwLjE0NyA1MTYuODI0IDkwMC4yODcgNTA1LjkzMiA5MTguOTU5QzQ5NS4wNCA5MzcuNjMgNDgxLjkwMSA5NTQuNjU5IDQ2Ni41MTUgOTcwLjA0NkM0NTEuMTI4IDk4NS40MzMgNDM0LjA5OSA5OTguNjU4IDQxNS40MjcgMTAwOS43MkMzOTYuNzU2IDEwMjAuNzkgMzc2LjcwMiAxMDI5LjM1IDM1NS4yNjQgMTAzNS40QzMzMy44MjYgMTA0MS40NSAzMTEuNTI0IDEwNDQuNDcgMjg4LjM1OCAxMDQ0LjQ3QzI1Ny4yMzkgMTA0NC40NyAyMjkuMzE4IDEwMzguMjUgMjA0LjU5NiAxMDI1LjhDMTc5Ljg3NCAxMDEzLjM1IDE1Ny42NTggOTk3LjYyMSAxMzcuOTQ5IDk3OC42MDRMMTM1Ljg3NSAxMTcxLjAyQzEzNS41MjkgMTE4NC41MSAxMzEuMjA3IDExOTUuODMgMTIyLjkwOSAxMjA0Ljk5QzExNC42MSAxMjE0LjE2IDEwMy43MTggMTIxOC43NCA5MC4yMzM2IDEyMTguNzRDNzcuMDk0NCAxMjE4Ljc0IDY1Ljk0MzQgMTIxNC4xNiA1Ni43ODA2IDEyMDQuOTlDNDcuNjE3OCAxMTk1LjgzIDQzLjAzNjQgMTE4NC41MSA0My4wMzY0IDExNzEuMDJMNDMuMDM2NCA3OTYuMDM5Wk0yOTEuNDcgOTUwLjA3OEMzMTMuMjUzIDk1MC4wNzggMzMzLjkxMyA5NDUuODQyIDM1My40NDkgOTM3LjM3MUMzNzIuOTg1IDkyOC45IDM5MC4wMTQgOTE3LjQwMyA0MDQuNTM2IDkwMi44ODFDNDE5LjA1OCA4ODguMzU5IDQzMC41NTUgODcxLjQxNiA0MzkuMDI2IDg1Mi4wNTNDNDQ3LjQ5NyA4MzIuNjkgNDUxLjczMyA4MTEuOTQ0IDQ1MS43MzMgNzg5LjgxNUM0NTEuNzMzIDc2Ny42ODYgNDQ3LjQ5NyA3NDcuMTk5IDQzOS4wMjYgNzI4LjM1NUM0MzAuNTU1IDcwOS41MTEgNDE5LjA1OCA2OTIuMzA5IDQwNC41MzYgNjc2Ljc0OUMzOTAuMDE0IDY2MS4xOSAzNzIuOTg1IDY0OS41MiAzNTMuNDQ5IDY0MS43NEMzMzMuOTEzIDYzMy45NiAzMTMuMjUzIDYzMC4wNzEgMjkxLjQ3IDYzMC4wNzFDMjY5LjY4NyA2MzAuMDcxIDI0OS4yODYgNjM0LjIyIDIzMC4yNjkgNjQyLjUxOEMyMTEuMjUyIDY1MC44MTcgMTk0LjY1NSA2NjIuOTE4IDE4MC40NzkgNjc4LjgyNEMxNjYuMzAyIDY5NC43MjkgMTU1LjA2NSA3MTIuMTkgMTQ2Ljc2NiA3MzEuMjA3QzEzOC40NjggNzUwLjIyNSAxMzQuMzE5IDc3MC42MjUgMTM0LjMxOSA3OTIuNDA4QzEzNC4zMTkgODE0LjE5MSAxMzguNDY4IDgzNC42NzggMTQ2Ljc2NiA4NTMuODY4QzE1NS4wNjUgODczLjA1OCAxNjYuMzAyIDg4OS43NDIgMTgwLjQ3OSA5MDMuOTE4QzE5NC42NTUgOTE4LjA5NCAyMTEuMjUyIDkyOS4zMzIgMjMwLjI2OSA5MzcuNjNDMjQ5LjI4NiA5NDUuOTI5IDI2OS42ODcgOTUwLjA3OCAyOTEuNDcgOTUwLjA3OFoiIGZpbGw9IiMwMGY5NTUiIGZpbGwtcnVsZT0ibm9uemVybyIgb3BhY2l0eT0iMSIgc3Ryb2tlPSJub25lIi8+CjxwYXRoIGQ9Ik02MTEuNDc3IDYwMS41OTNDNjExLjQ3NyA1OTQuMzMyIDYxMi44NiA1ODcuNTg5IDYxNS42MjcgNTgxLjM2NUM2MTguMzkzIDU3NS4xNDIgNjIyLjExIDU2OS42OTYgNjI2Ljc3OCA1NjUuMDI4QzYzMS40NDUgNTYwLjM2IDYzNi45NzggNTU2LjY0MyA2NDMuMzc0IDU1My44NzdDNjQ5Ljc3MSA1NTEuMTExIDY1Ni42IDU0OS43MjggNjYzLjg2MSA1NDkuNzI4QzY3MS4xMjIgNTQ5LjcyOCA2NzcuODY1IDU1MS4xMTEgNjg0LjA4OCA1NTMuODc3QzY5MC4zMTIgNTU2LjY0MyA2OTUuODQ1IDU2MC4zNiA3MDAuNjg1IDU2NS4wMjhDNzA1LjUyNiA1NjkuNjk2IDcwOS4zMjkgNTc1LjE0MiA3MTIuMDk2IDU4MS4zNjVDNzE0Ljg2MiA1ODcuNTg5IDcxNi4yNDUgNTk0LjMzMiA3MTYuMjQ1IDYwMS41OTNDNzE2LjI0NSA2MDguODU0IDcxNC44NjIgNjE1LjU5NiA3MTIuMDk2IDYyMS44MkM3MDkuMzI5IDYyOC4wNDQgNzA1LjUyNiA2MzMuNDkgNzAwLjY4NSA2MzguMTU4QzY5NS44NDUgNjQyLjgyNiA2OTAuMzEyIDY0Ni41NDMgNjg0LjA4OCA2NDkuMzA5QzY3Ny44NjUgNjUyLjA3NSA2NzEuMTIyIDY1My40NTggNjYzLjg2MSA2NTMuNDU4QzY1Ni42IDY1My40NTggNjQ5Ljc3MSA2NTIuMDc1IDY0My4zNzQgNjQ5LjMwOUM2MzYuOTc4IDY0Ni41NDMgNjMxLjQ0NSA2NDIuODI2IDYyNi43NzggNjM4LjE1OEM2MjIuMTEgNjMzLjQ5IDYxOC4zOTMgNjI4LjA0NCA2MTUuNjI3IDYyMS44MkM2MTIuODYgNjE1LjU5NiA2MTEuNDc3IDYwOC44NTQgNjExLjQ3NyA2MDEuNTkzWk02MTcuMTgzIDc2MC44MTlDNjE3LjE4MyA3NTQuNTk1IDYxOC4zOTMgNzQ4LjYzIDYyMC44MTMgNzQyLjkyNUM2MjMuMjMzIDczNy4yMiA2MjYuNjA1IDczMi4yOTMgNjMwLjkyNyA3MjguMTQ0QzYzNS4yNDkgNzIzLjk5NCA2NDAuMjYyIDcyMC43MSA2NDUuOTY4IDcxOC4yODlDNjUxLjY3MyA3MTUuODY5IDY1Ny44MSA3MTQuNjU5IDY2NC4zOCA3MTQuNjU5QzY3Ny4xNzMgNzE0LjY1OSA2ODcuODA1IDcxOS4xNTQgNjk2LjI3NyA3MjguMTQ0QzcwNC43NDggNzM3LjEzNCA3MDguOTg0IDc0OC4wMjUgNzA4Ljk4NCA3NjAuODE5TDcwOC45ODQgMTE3My4xNUM3MDguOTg0IDExODUuOTQgNzA0LjU3NSAxMTk2Ljc0IDY5NS43NTggMTIwNS41NkM2ODYuOTQxIDEyMTQuMzggNjc2LjMwOSAxMjE4Ljc5IDY2My44NjEgMTIxOC43OUM2NTEuMDY4IDEyMTguNzkgNjQwLjA5IDEyMTQuMzggNjMwLjkyNyAxMjA1LjU2QzYyMS43NjQgMTE5Ni43NCA2MTcuMTgzIDExODUuOTQgNjE3LjE4MyAxMTczLjE1TDYxNy4xODMgNzYwLjgxOVoiIGZpbGw9IiMwMGY5NTUiIGZpbGwtcnVsZT0ibm9uemVybyIgb3BhY2l0eT0iMSIgc3Ryb2tlPSJub25lIi8+CjxwYXRoIGQ9Ik03OTguNzEgOTYzLjU2M0w3OTguNzEgOTYxLjQ4OEM3OTguNzEgOTI3Ljk0OSA4MDQuODQ4IDg5Ni4zMTEgODE3LjEyMiA4NjYuNTc1QzgyOS4zOTcgODM2LjgzOSA4NDYuMjUzIDgxMC45MDcgODY3LjY5MSA3ODguNzc4Qzg4OS4xMjggNzY2LjY0OSA5MTQuMzY5IDc0OS4xODcgOTQzLjQxNCA3MzYuMzk0Qzk3Mi40NTggNzIzLjYwMSAxMDAzLjc1IDcxNy4yMDQgMTAzNy4yOSA3MTcuMjA0QzEwNzEuMTcgNzE3LjIwNCAxMTAyLjczIDcyMy42MDEgMTEzMS45NCA3MzYuMzk0QzExNjEuMTYgNzQ5LjE4NyAxMTg2LjU3IDc2Ni42NDkgMTIwOC4xOCA3ODguNzc4QzEyMjkuOCA4MTAuOTA3IDEyNDYuNzQgODM2LjgzOSAxMjU5LjAxIDg2Ni41NzVDMTI3MS4yOSA4OTYuMzExIDEyNzcuNDIgOTI3Ljk0OSAxMjc3LjQyIDk2MS40ODhMMTI3Ny40MiA5NjQuMDgyTDEyNzcuNDIgMTE3Mi41OEMxMjc3LjQyIDExODUuNzIgMTI3My4xIDExOTYuNTIgMTI2NC40NiAxMjA0Ljk5QzEyNTUuODEgMTIxMy40NyAxMjQ1LjEgMTIxNy43IDEyMzIuMyAxMjE3LjdDMTIxOS41MSAxMjE3LjcgMTIwOC42MiAxMjEzLjQ3IDExOTkuNjMgMTIwNC45OUMxMTkwLjY0IDExOTYuNTIgMTE4Ni4xNCAxMTg1LjcyIDExODYuMTQgMTE3Mi41OEwxMTg2LjE0IDk2My41NjNMMTE4Ni4xNCA5NjIuNTI2QzExODUuOCA5NDEuNDM0IDExODEuODIgOTIxLjYzOSAxMTc0LjIxIDkwMy4xNEMxMTY2LjYxIDg4NC42NDIgMTE1Ni4xNSA4NjguNDc3IDExNDIuODMgODU0LjY0NkMxMTI5LjUyIDg0MC44MTYgMTExMy44OCA4MjkuODM3IDEwOTUuOSA4MjEuNzEyQzEwNzcuOTIgODEzLjU4NiAxMDU4LjM4IDgwOS41MjQgMTAzNy4yOSA4MDkuNTI0QzEwMTYuMiA4MDkuNTI0IDk5Ni43NDggODEzLjQxNCA5NzguOTQxIDgyMS4xOTNDOTYxLjEzNCA4MjguOTczIDk0NS42NjEgODM5Ljc3OCA5MzIuNTIyIDg1My42MDlDOTE5LjM4MyA4NjcuNDQgOTA5LjA5NiA4ODMuNjA0IDkwMS42NjIgOTAyLjEwM0M4OTQuMjI4IDkyMC42MDEgODkwLjUxMSA5NDAuMzk2IDg5MC41MTEgOTYxLjQ4OEw4OTAuNTExIDExNzIuNThDODkwLjUxMSAxMTg1LjcyIDg4Ni4yNzYgMTE5Ni41MiA4NzcuODA0IDEyMDQuOTlDODY5LjMzMyAxMjEzLjQ3IDg1OC43MDEgMTIxNy43IDg0NS45MDcgMTIxNy43QzgzOS42ODQgMTIxNy43IDgzMy43MTkgMTIxNi41OCA4MjguMDE0IDEyMTQuMzNDODIyLjMwOSAxMjEyLjA4IDgxNy4yOTUgMTIwOC45NyA4MTIuOTczIDEyMDQuOTlDODA4LjY1MSAxMjAxLjAyIDgwNS4xOTMgMTE5Ni4yNiA4MDIuNiAxMTkwLjczQzgwMC4wMDcgMTE4NS4yIDc5OC43MSAxMTc5LjE1IDc5OC43MSAxMTcyLjU4TDc5OC43MSA5NjMuNTYzWiIgZmlsbD0iIzAwZjk1NSIgZmlsbC1ydWxlPSJub256ZXJvIiBvcGFjaXR5PSIxIiBzdHJva2U9Im5vbmUiLz4KPHBhdGggZD0iTTE2MDMuMTQgMTIxOS4yOUMxNTY4LjIxIDEyMTkuMjkgMTUzNS41NCAxMjEyLjYzIDE1MDUuMTEgMTE5OS4zMkMxNDc0LjY4IDExODYuMDEgMTQ0OC4xNSAxMTY3Ljk0IDE0MjUuNSAxMTQ1LjEyQzE0MDIuODUgMTEyMi4zIDEzODQuOTYgMTA5NS41IDEzNzEuODIgMTA2NC43M0MxMzU4LjY4IDEwMzMuOTYgMTM1Mi4xMSAxMDAxLjExIDEzNTIuMTEgOTY2LjE4NkMxMzUyLjExIDkzMS4yNjQgMTM1OC42OCA4OTguNDE2IDEzNzEuODIgODY3LjY0M0MxMzg0Ljk2IDgzNi44NjkgMTQwMi44NSA4MDkuOTg2IDE0MjUuNSA3ODYuOTkyQzE0NDguMTUgNzYzLjk5OSAxNDc0LjY4IDc0NS44NDYgMTUwNS4xMSA3MzIuNTM0QzE1MzUuNTQgNzE5LjIyMiAxNTY4LjIxIDcxMi41NjYgMTYwMy4xNCA3MTIuNTY2QzE2MzguMDYgNzEyLjU2NiAxNjcwLjY1IDcxOS4xMzYgMTcwMC45IDczMi4yNzVDMTczMS4xNiA3NDUuNDE0IDE3NTcuNTIgNzYzLjMwNyAxNzgwIDc4NS45NTVDMTgwMi40NyA4MDguNjAzIDE4MjAuMjggODM1LjE0MSAxODMzLjQyIDg2NS41NjhDMTg0Ni41NiA4OTUuOTk2IDE4NTMuNDcgOTI4LjQ5OCAxODU0LjE2IDk2My4wNzRMMTg1NC4xNiA5NjYuMTg2TDE4NTQuMTYgMTE2OS41QzE4NTQuMTYgMTE4Mi42NCAxODQ5LjY3IDExOTMuNzkgMTg0MC42OCAxMjAyLjk1QzE4MzEuNjkgMTIxMi4xMSAxODIwLjYyIDEyMTYuNjkgMTgwNy40OSAxMjE2LjY5QzE3OTQuMzUgMTIxNi42OSAxNzgzLjYzIDEyMTIuMTEgMTc3NS4zMyAxMjAyLjk1QzE3NjcuMDMgMTE5My43OSAxNzYyLjg4IDExODIuNjQgMTc2Mi44OCAxMTY5LjVMMTc2Mi4zNiAxMTYyLjI0QzE3NDAuNTggMTE4MC4yMiAxNzE2LjIgMTE5NC4yMiAxNjg5LjIzIDEyMDQuMjVDMTY2Mi4yNiAxMjE0LjI3IDE2MzMuNTYgMTIxOS4yOSAxNjAzLjE0IDEyMTkuMjlaTTE2MDMuMTQgMTEyNy40OUMxNjI1Ljk2IDExMjcuNDkgMTY0Ny4wNSAxMTIzLjI1IDE2NjYuNDEgMTExNC43OEMxNjg1Ljc4IDExMDYuMzEgMTcwMi42MyAxMDk0LjczIDE3MTYuOTggMTA4MC4wM0MxNzMxLjMzIDEwNjUuMzMgMTc0Mi41NyAxMDQ4LjIyIDE3NTAuNjkgMTAyOC42OEMxNzU4LjgyIDEwMDkuMTUgMTc2Mi44OCA5ODguMzE1IDE3NjIuODggOTY2LjE4NkMxNzYyLjg4IDk0NC4wNTcgMTc1OC44MiA5MjMuMjI1IDE3NTAuNjkgOTAzLjY4OUMxNzQyLjU3IDg4NC4xNTMgMTczMS4zMyA4NjcuMTI0IDE3MTYuOTggODUyLjYwMkMxNzAyLjYzIDgzOC4wOCAxNjg1Ljc4IDgyNi41ODMgMTY2Ni40MSA4MTguMTExQzE2NDcuMDUgODA5LjY0IDE2MjUuOTYgODA1LjQwNSAxNjAzLjE0IDgwNS40MDVDMTU4MC42NiA4MDUuNDA1IDE1NTkuNzQgODA5LjY0IDE1NDAuMzggODE4LjExMUMxNTIxLjAyIDgyNi41ODMgMTUwNC4yNSA4MzguMDggMTQ5MC4wNyA4NTIuNjAyQzE0NzUuODkgODY3LjEyNCAxNDY0LjY2IDg4NC4xNTMgMTQ1Ni4zNiA5MDMuNjg5QzE0NDguMDYgOTIzLjIyNSAxNDQzLjkxIDk0NC4wNTcgMTQ0My45MSA5NjYuMTg2QzE0NDMuOTEgOTg4LjMxNSAxNDQ4LjA2IDEwMDkuMTUgMTQ1Ni4zNiAxMDI4LjY4QzE0NjQuNjYgMTA0OC4yMiAxNDc1Ljg5IDEwNjUuMzMgMTQ5MC4wNyAxMDgwLjAzQzE1MDQuMjUgMTA5NC43MyAxNTIxLjAyIDExMDYuMzEgMTU0MC4zOCAxMTE0Ljc4QzE1NTkuNzQgMTEyMy4yNSAxNTgwLjY2IDExMjcuNDkgMTYwMy4xNCAxMTI3LjQ5WiIgZmlsbD0iIzAwZjk1NSIgZmlsbC1ydWxlPSJub256ZXJvIiBvcGFjaXR5PSIxIiBzdHJva2U9Im5vbmUiLz4KPHBhdGggZD0iTTE5MjQuNTQgOTcxLjA1MUMxOTI0LjU0IDkzNS40MzcgMTkzMS4xMSA5MDIuMDcgMTk0NC4yNSA4NzAuOTUxQzE5NTcuMzkgODM5LjgzMiAxOTc1LjQ1IDgxMi42ODkgMTk5OC40NSA3ODkuNTIzQzIwMjEuNDQgNzY2LjM1NyAyMDQ4LjQxIDc0OC4xMTcgMjA3OS4zNiA3MzQuODA1QzIxMTAuMyA3MjEuNDkzIDIxNDMuNTggNzE0LjgzNyAyMTc5LjIgNzE0LjgzN0MyMjEyLjM5IDcxNC44MzcgMjI0My45NCA3MjAuNzE1IDIyNzMuODUgNzMyLjQ3MUMyMzAzLjc2IDc0NC4yMjcgMjMyOS42IDc2MC45OTcgMjM1MS4zOSA3ODIuNzgxQzIzNTYuOTIgNzg4LjY1OSAyMzYxLjA3IDc5NC44ODIgMjM2My44NCA4MDEuNDUyQzIzNjYuNiA4MDguMDIyIDIzNjcuOTggODE0LjQxOCAyMzY3Ljk4IDgyMC42NDJDMjM2Ny45OCA4MjcuNTU3IDIzNjYuNDMgODMzLjg2OCAyMzYzLjMyIDgzOS41NzNDMjM2MC4yIDg0NS4yNzggMjM1Ni4zMiA4NTAuMDMyIDIzNTEuNjUgODUzLjgzNkMyMzQ2Ljk4IDg1Ny42MzkgMjM0MS45NyA4NjAuNTc4IDIzMzYuNjEgODYyLjY1M0MyMzMxLjI1IDg2NC43MjcgMjMyNi4zMiA4NjUuNzY1IDIzMjEuODIgODY1Ljc2NUMyMzE0LjIyIDg2NS43NjUgMjMwNi45NiA4NjMuODYzIDIzMDAuMDQgODYwLjA1OUwyMjYzLjc0IDgzNC4xMjdDMjI0OC4xOCA4MjQuMSAyMjMyLjk2IDgxNy4yNzEgMjIxOC4wOSA4MTMuNjRDMjIwMy4yMyA4MTAuMDEgMjE4Ny40OSA4MDguMTk0IDIxNzAuOSA4MDguMTk0QzIxNDkuNDYgODA4Ljg4NiAyMTI5LjQxIDgxMy43MjcgMjExMC43MyA4MjIuNzE3QzIwOTIuMDYgODMxLjcwNyAyMDc1LjkgODQzLjU0OSAyMDYyLjI0IDg1OC4yNDRDMjA0OC41OCA4NzIuOTM5IDIwMzcuODYgODg5Ljc5NSAyMDMwLjA4IDkwOC44MTNDMjAyMi4zIDkyNy44MyAyMDE4LjQxIDk0Ny41MzkgMjAxOC40MSA5NjcuOTM5QzIwMTguNDEgOTg4LjY4NSAyMDIyLjMgMTAwOC43NCAyMDMwLjA4IDEwMjguMUMyMDM3Ljg2IDEwNDcuNDcgMjA0OC43NiAxMDY0LjQ5IDIwNjIuNzYgMTA3OS4xOUMyMDc2Ljc2IDEwOTMuODggMjA5My4yNyAxMTA1LjczIDIxMTIuMjkgMTExNC43MkMyMTMxLjMxIDExMjMuNzEgMjE1Mi4yMyAxMTI4LjIgMjE3NS4wNSAxMTI4LjJDMjE5MC42MSAxMTI4LjIgMjIwNS42NSAxMTI2LjM5IDIyMjAuMTcgMTEyMi43NkMyMjM0LjY5IDExMTkuMTMgMjI0OS4yMSAxMTEyLjMgMjI2My43NCAxMTAyLjI3TDIzMDAuMDQgMTA3Ni44NkMyMzAzLjUgMTA3NS4xMyAyMzA3LjEzIDEwNzMuNjYgMjMxMC45MyAxMDcyLjQ1QzIzMTQuNzQgMTA3MS4yNCAyMzE4LjU0IDEwNzAuNjMgMjMyMi4zNCAxMDcwLjYzQzIzMjYuODQgMTA3MC42MyAyMzMxLjc3IDEwNzEuNjcgMjMzNy4xMiAxMDczLjc0QzIzNDIuNDggMTA3NS44MiAyMzQ3LjQxIDEwNzguODQgMjM1MS45MSAxMDgyLjgyQzIzNTYuNCAxMDg2LjggMjM2MC4xMiAxMDkxLjU1IDIzNjMuMDYgMTA5Ny4wOEMyMzY2IDExMDIuNjIgMjM2Ny40NyAxMTA4Ljg0IDIzNjcuNDcgMTExNS43NUMyMzY3LjQ3IDExMjIuMzIgMjM2Ni4xNyAxMTI4Ljg5IDIzNjMuNTggMTEzNS40NkMyMzYwLjk4IDExNDIuMDMgMjM1Ni45MiAxMTQ4LjA4IDIzNTEuMzkgMTE1My42MkMyMzI5Ljk1IDExNzUuNCAyMzA0LjEgMTE5Mi4wOCAyMjczLjg1IDEyMDMuNjdDMjI0My41OSAxMjE1LjI1IDIyMTIuMDQgMTIyMS4wNCAyMTc5LjIgMTIyMS4wNEMyMTQzLjkzIDEyMjEuMDQgMjExMC45MSAxMjE0LjU2IDIwODAuMTMgMTIwMS41OUMyMDQ5LjM2IDExODguNjIgMjAyMi4zOSAxMTcwLjkgMTk5OS4yMiAxMTQ4LjQzQzE5NzYuMDYgMTEyNS45NSAxOTU3LjgyIDEwOTkuNSAxOTQ0LjUxIDEwNjkuMDhDMTkzMS4xOSAxMDM4LjY1IDE5MjQuNTQgMTAwNS45NyAxOTI0LjU0IDk3MS4wNTFaIiBmaWxsPSIjMDBmOTU1IiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjEiIHN0cm9rZT0ibm9uZSIvPgo8cGF0aCBkPSJNMzIzMS4xOSA1ODMuOTExQzMyMzEuMTkgNTcwLjc3MSAzMjM1LjUyIDU1OS43OTMgMzI0NC4xNiA1NTAuOTc2QzMyNTIuOCA1NDIuMTU5IDMyNjMuMzUgNTM3Ljc1MSAzMjc1LjggNTM3Ljc1MUMzMjgyLjAyIDUzNy43NTEgMzI4Ny45OSA1MzguODc0IDMyOTMuNjkgNTQxLjEyMkMzMjk5LjQgNTQzLjM2OSAzMzA0LjQxIDU0Ni41NjggMzMwOC43MyA1NTAuNzE3QzMzMTMuMDUgNTU0Ljg2NiAzMzE2LjUxIDU1OS43OTMgMzMxOS4xIDU2NS40OTlDMzMyMS43IDU3MS4yMDQgMzMyMi45OSA1NzcuMzQxIDMzMjIuOTkgNTgzLjkxMUwzMzIyLjk5IDEwNDQuNDdDMzMyMi45OSAxMDcxLjQ0IDMzMzAuMTcgMTA5Mi4xIDMzNDQuNTIgMTEwNi40NUMzMzU4Ljg3IDExMjAuOCAzMzc4LjY2IDExMjcuOTggMzQwMy45IDExMjcuOThDMzQxNy4wNCAxMTI3Ljk4IDM0MjcuODUgMTEzMi4zOCAzNDM2LjMyIDExNDEuMkMzNDQ0Ljc5IDExNTAuMDIgMzQ0OS4wMyAxMTYwLjY1IDM0NDkuMDMgMTE3My4xQzM0NDkuMDMgMTE4Ni4yNCAzNDQ0Ljg4IDExOTcuMDQgMzQzNi41OCAxMjA1LjUxQzM0MjguMjggMTIxMy45OCAzNDE3LjU2IDEyMTguMjIgMzQwNC40MiAxMjE4LjIyQzMzNzkuODcgMTIxOC4yMiAzMzU3LjA1IDEyMTQuMDcgMzMzNS45NiAxMjA1Ljc3QzMzMTQuODcgMTE5Ny40NyAzMjk2LjU0IDExODUuNjMgMzI4MC45OCAxMTcwLjI1QzMyNjUuNDIgMTE1NC44NiAzMjUzLjI0IDExMzYuNTMgMzI0NC40MiAxMTE1LjI3QzMyMzUuNiAxMDk0IDMyMzEuMTkgMTA3MC40IDMyMzEuMTkgMTA0NC40N0wzMjMxLjE5IDU4My45MTFaIiBmaWxsPSIjMDBmOTU1IiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjEiIHN0cm9rZT0ibm9uZSIvPgo8cGF0aCBkPSJNMzczNi4zNiAxMjIzLjkzQzM3MDEuNDQgMTIyMy45MyAzNjY4Ljc2IDEyMTcuMjcgMzYzOC4zMyAxMjAzLjk2QzM2MDcuOTEgMTE5MC42NSAzNTgxLjM3IDExNzIuNTggMzU1OC43MiAxMTQ5Ljc2QzM1MzYuMDcgMTEyNi45NCAzNTE4LjE4IDExMDAuMTQgMzUwNS4wNCAxMDY5LjM3QzM0OTEuOSAxMDM4LjU5IDM0ODUuMzMgMTAwNS43NSAzNDg1LjMzIDk3MC44MjRDMzQ4NS4zMyA5MzUuOTAxIDM0OTEuOSA5MDMuMDU0IDM1MDUuMDQgODcyLjI4QzM1MTguMTggODQxLjUwNyAzNTM2LjA3IDgxNC42MjQgMzU1OC43MiA3OTEuNjNDMzU4MS4zNyA3NjguNjM3IDM2MDcuOTEgNzUwLjQ4NCAzNjM4LjMzIDczNy4xNzJDMzY2OC43NiA3MjMuODYgMzcwMS40NCA3MTcuMjA0IDM3MzYuMzYgNzE3LjIwNEMzNzcxLjI4IDcxNy4yMDQgMzgwMy44NyA3MjMuNzczIDM4MzQuMTIgNzM2LjkxM0MzODY0LjM4IDc1MC4wNTIgMzg5MC43NCA3NjcuOTQ1IDM5MTMuMjIgNzkwLjU5M0MzOTM1LjY5IDgxMy4yNDEgMzk1My41IDgzOS43NzggMzk2Ni42NCA4NzAuMjA2QzM5NzkuNzggOTAwLjYzMyAzOTg2LjY5IDkzMy4xMzUgMzk4Ny4zOSA5NjcuNzEyTDM5ODcuMzkgOTcwLjgyNEwzOTg3LjM5IDExNzQuMTNDMzk4Ny4zOSAxMTg3LjI3IDM5ODIuODkgMTE5OC40MyAzOTczLjkgMTIwNy41OUMzOTY0LjkxIDEyMTYuNzUgMzk1My44NSAxMjIxLjMzIDM5NDAuNzEgMTIyMS4zM0MzOTI3LjU3IDEyMjEuMzMgMzkxNi44NSAxMjE2Ljc1IDM5MDguNTUgMTIwNy41OUMzOTAwLjI1IDExOTguNDMgMzg5Ni4xIDExODcuMjcgMzg5Ni4xIDExNzQuMTNMMzg5NS41OCAxMTY2Ljg3QzM4NzMuOCAxMTg0Ljg1IDM4NDkuNDIgMTE5OC44NiAzODIyLjQ2IDEyMDguODhDMzc5NS40OSAxMjE4LjkxIDM3NjYuNzkgMTIyMy45MyAzNzM2LjM2IDEyMjMuOTNaTTM3MzYuMzYgMTEzMi4xMkMzNzU5LjE4IDExMzIuMTIgMzc4MC4yNyAxMTI3Ljg5IDM3OTkuNjMgMTExOS40MkMzODE5IDExMTAuOTUgMzgzNS44NSAxMDk5LjM2IDM4NTAuMiAxMDg0LjY3QzM4NjQuNTUgMTA2OS45NyAzODc1Ljc5IDEwNTIuODYgMzg4My45MiAxMDMzLjMyQzM4OTIuMDQgMTAxMy43OSAzODk2LjEgOTkyLjk1MyAzODk2LjEgOTcwLjgyNEMzODk2LjEgOTQ4LjY5NSAzODkyLjA0IDkyNy44NjIgMzg4My45MiA5MDguMzI3QzM4NzUuNzkgODg4Ljc5MSAzODY0LjU1IDg3MS43NjIgMzg1MC4yIDg1Ny4yMzlDMzgzNS44NSA4NDIuNzE3IDM4MTkgODMxLjIyMSAzNzk5LjYzIDgyMi43NDlDMzc4MC4yNyA4MTQuMjc4IDM3NTkuMTggODEwLjA0MiAzNzM2LjM2IDgxMC4wNDJDMzcxMy44OCA4MTAuMDQyIDM2OTIuOTcgODE0LjI3OCAzNjczLjYgODIyLjc0OUMzNjU0LjI0IDgzMS4yMjEgMzYzNy40NyA4NDIuNzE3IDM2MjMuMjkgODU3LjIzOUMzNjA5LjEyIDg3MS43NjIgMzU5Ny44OCA4ODguNzkxIDM1ODkuNTggOTA4LjMyN0MzNTgxLjI4IDkyNy44NjIgMzU3Ny4xMyA5NDguNjk1IDM1NzcuMTMgOTcwLjgyNEMzNTc3LjEzIDk5Mi45NTMgMzU4MS4yOCAxMDEzLjc5IDM1ODkuNTggMTAzMy4zMkMzNTk3Ljg4IDEwNTIuODYgMzYwOS4xMiAxMDY5Ljk3IDM2MjMuMjkgMTA4NC42N0MzNjM3LjQ3IDEwOTkuMzYgMzY1NC4yNCAxMTEwLjk1IDM2NzMuNiAxMTE5LjQyQzM2OTIuOTcgMTEyNy44OSAzNzEzLjg4IDExMzIuMTIgMzczNi4zNiAxMTMyLjEyWiIgZmlsbD0iIzAwZjk1NSIgZmlsbC1ydWxlPSJub256ZXJvIiBvcGFjaXR5PSIxIiBzdHJva2U9Im5vbmUiLz4KPHBhdGggZD0iTTQwNTguNDQgOTcwLjgyNEM0MDU4LjQ0IDkzNS45MDEgNDA2NS4xIDkwMy4wNTQgNDA3OC40MSA4NzIuMjhDNDA5MS43MiA4NDEuNTA3IDQxMDkuODcgODE0LjYyNCA0MTMyLjg3IDc5MS42M0M0MTU1Ljg2IDc2OC42MzcgNDE4Mi42NiA3NTAuNDg0IDQyMTMuMjYgNzM3LjE3MkM0MjQzLjg2IDcyMy44NiA0Mjc2LjYyIDcxNy4yMDQgNDMxMS41NCA3MTcuMjA0QzQzMzIuMjkgNzE3LjIwNCA0MzUwLjk2IDcxOS4yNzggNDM2Ny41NiA3MjMuNDI4QzQzODQuMTUgNzI3LjU3NyA0Mzk4Ljk0IDczMy42MjggNDQxMS45IDc0MS41OEM0NDI0Ljg3IDc0OS41MzMgNDQzNi4zNiA3NTkuMjE1IDQ0NDYuMzkgNzcwLjYyNUM0NDU2LjQyIDc4Mi4wMzUgNDQ2NS4yNCA3OTUuMDAxIDQ0NzIuODQgODA5LjUyNEw0NDcyLjg0IDU4Mi4zNTVDNDQ3Mi44NCA1NjguODcgNDQ3Ny4xNiA1NTcuNTQ2IDQ0ODUuODEgNTQ4LjM4M0M0NDk0LjQ1IDUzOS4yMiA0NTA1LjM0IDUzNC42MzkgNDUxOC40OCA1MzQuNjM5QzQ1MzEuNjIgNTM0LjYzOSA0NTQyLjYgNTM5LjIyIDQ1NTEuNDIgNTQ4LjM4M0M0NTYwLjI0IDU1Ny41NDYgNDU2NC42NCA1NjguODcgNDU2NC42NCA1ODIuMzU1TDQ1NjQuNjQgOTcwLjgyNEw0NTY0LjY0IDk3My45MzZDNDU2NC4zIDEwMDguNTEgNDU1Ny40NyAxMDQwLjkzIDQ1NDQuMTYgMTA3MS4xOEM0NTMwLjg1IDExMDEuNDQgNDUxMi43OCAxMTI3Ljg5IDQ0ODkuOTYgMTE1MC41NEM0NDY3LjE0IDExNzMuMTggNDQ0MC40MyAxMTkxLjA4IDQ0MDkuODMgMTIwNC4yMkM0Mzc5LjIzIDEyMTcuMzYgNDM0Ni40NyAxMjIzLjkzIDQzMTEuNTQgMTIyMy45M0M0Mjc2LjYyIDEyMjMuOTMgNDI0My44NiAxMjE3LjI3IDQyMTMuMjYgMTIwMy45NkM0MTgyLjY2IDExOTAuNjUgNDE1NS44NiAxMTcyLjU4IDQxMzIuODcgMTE0OS43NkM0MTA5Ljg3IDExMjYuOTQgNDA5MS43MiAxMTAwLjE0IDQwNzguNDEgMTA2OS4zN0M0MDY1LjEgMTAzOC41OSA0MDU4LjQ0IDEwMDUuNzUgNDA1OC40NCA5NzAuODI0Wk00MTUwLjI0IDk3MC44MjRDNDE1MC4yNCA5OTIuOTUzIDQxNTQuNDggMTAxMy43OSA0MTYyLjk1IDEwMzMuMzJDNDE3MS40MiAxMDUyLjg2IDQxODIuOTIgMTA2OS45NyA0MTk3LjQ0IDEwODQuNjdDNDIxMS45NiAxMDk5LjM2IDQyMjguOTkgMTExMC45NSA0MjQ4LjUzIDExMTkuNDJDNDI2OC4wNiAxMTI3Ljg5IDQyODkuMDcgMTEzMi4xMiA0MzExLjU0IDExMzIuMTJDNDMzNC4zNiAxMTMyLjEyIDQzNTUuNTQgMTEyNy44OSA0Mzc1LjA4IDExMTkuNDJDNDM5NC42MSAxMTEwLjk1IDQ0MTEuNjQgMTA5OS4zNiA0NDI2LjE2IDEwODQuNjdDNDQ0MC42OSAxMDY5Ljk3IDQ0NTIuMSAxMDUyLjg2IDQ0NjAuNCAxMDMzLjMyQzQ0NjguNjkgMTAxMy43OSA0NDcyLjg0IDk5Mi45NTMgNDQ3Mi44NCA5NzAuODI0QzQ0NzIuODQgOTQ4LjY5NSA0NDY4LjY5IDkyNy44NjIgNDQ2MC40IDkwOC4zMjdDNDQ1Mi4xIDg4OC43OTEgNDQ0MC42OSA4NzEuNzYyIDQ0MjYuMTYgODU3LjIzOUM0NDExLjY0IDg0Mi43MTcgNDM5NC42MSA4MzEuMjIxIDQzNzUuMDggODIyLjc0OUM0MzU1LjU0IDgxNC4yNzggNDMzNC4zNiA4MTAuMDQyIDQzMTEuNTQgODEwLjA0MkM0Mjg5LjA3IDgxMC4wNDIgNDI2OC4wNiA4MTQuMjc4IDQyNDguNTMgODIyLjc0OUM0MjI4Ljk5IDgzMS4yMjEgNDIxMS45NiA4NDIuNzE3IDQxOTcuNDQgODU3LjIzOUM0MTgyLjkyIDg3MS43NjIgNDE3MS40MiA4ODguNzkxIDQxNjIuOTUgOTA4LjMyN0M0MTU0LjQ4IDkyNy44NjIgNDE1MC4yNCA5NDguNjk1IDQxNTAuMjQgOTcwLjgyNFoiIGZpbGw9IiMwMGY5NTUiIGZpbGwtcnVsZT0ibm9uemVybyIgb3BhY2l0eT0iMSIgc3Ryb2tlPSJub25lIi8+CjxwYXRoIGQ9Ik00ODg2LjczIDEyMjMuOTNDNDg1MS44IDEyMjMuOTMgNDgxOS4xMyAxMjE3LjI3IDQ3ODguNyAxMjAzLjk2QzQ3NTguMjcgMTE5MC42NSA0NzMxLjc0IDExNzIuNTggNDcwOS4wOSAxMTQ5Ljc2QzQ2ODYuNDQgMTEyNi45NCA0NjY4LjU1IDExMDAuMTQgNDY1NS40MSAxMDY5LjM3QzQ2NDIuMjcgMTAzOC41OSA0NjM1LjcgMTAwNS43NSA0NjM1LjcgOTcwLjgyNEM0NjM1LjcgOTM1LjkwMSA0NjQyLjI3IDkwMy4wNTQgNDY1NS40MSA4NzIuMjhDNDY2OC41NSA4NDEuNTA3IDQ2ODYuNDQgODE0LjYyNCA0NzA5LjA5IDc5MS42M0M0NzMxLjc0IDc2OC42MzcgNDc1OC4yNyA3NTAuNDg0IDQ3ODguNyA3MzcuMTcyQzQ4MTkuMTMgNzIzLjg2IDQ4NTEuOCA3MTcuMjA0IDQ4ODYuNzMgNzE3LjIwNEM0OTIxLjY1IDcxNy4yMDQgNDk1NC4yNCA3MjMuNzczIDQ5ODQuNDkgNzM2LjkxM0M1MDE0Ljc1IDc1MC4wNTIgNTA0MS4xMSA3NjcuOTQ1IDUwNjMuNTkgNzkwLjU5M0M1MDg2LjA2IDgxMy4yNDEgNTEwMy44NyA4MzkuNzc4IDUxMTcuMDEgODcwLjIwNkM1MTMwLjE1IDkwMC42MzMgNTEzNy4wNiA5MzMuMTM1IDUxMzcuNzUgOTY3LjcxMkw1MTM3Ljc1IDk3MC44MjRMNTEzNy43NSAxMTc0LjEzQzUxMzcuNzUgMTE4Ny4yNyA1MTMzLjI2IDExOTguNDMgNTEyNC4yNyAxMjA3LjU5QzUxMTUuMjggMTIxNi43NSA1MTA0LjIxIDEyMjEuMzMgNTA5MS4wNyAxMjIxLjMzQzUwNzcuOTQgMTIyMS4zMyA1MDY3LjIyIDEyMTYuNzUgNTA1OC45MiAxMjA3LjU5QzUwNTAuNjIgMTE5OC40MyA1MDQ2LjQ3IDExODcuMjcgNTA0Ni40NyAxMTc0LjEzTDUwNDUuOTUgMTE2Ni44N0M1MDI0LjE3IDExODQuODUgNDk5OS43OSAxMTk4Ljg2IDQ5NzIuODIgMTIwOC44OEM0OTQ1Ljg1IDEyMTguOTEgNDkxNy4xNSAxMjIzLjkzIDQ4ODYuNzMgMTIyMy45M1pNNDg4Ni43MyAxMTMyLjEyQzQ5MDkuNTUgMTEzMi4xMiA0OTMwLjY0IDExMjcuODkgNDk1MCAxMTE5LjQyQzQ5NjkuMzYgMTExMC45NSA0OTg2LjIyIDEwOTkuMzYgNTAwMC41NyAxMDg0LjY3QzUwMTQuOTIgMTA2OS45NyA1MDI2LjE2IDEwNTIuODYgNTAzNC4yOCAxMDMzLjMyQzUwNDIuNDEgMTAxMy43OSA1MDQ2LjQ3IDk5Mi45NTMgNTA0Ni40NyA5NzAuODI0QzUwNDYuNDcgOTQ4LjY5NSA1MDQyLjQxIDkyNy44NjIgNTAzNC4yOCA5MDguMzI3QzUwMjYuMTYgODg4Ljc5MSA1MDE0LjkyIDg3MS43NjIgNTAwMC41NyA4NTcuMjM5QzQ5ODYuMjIgODQyLjcxNyA0OTY5LjM2IDgzMS4yMjEgNDk1MCA4MjIuNzQ5QzQ5MzAuNjQgODE0LjI3OCA0OTA5LjU1IDgxMC4wNDIgNDg4Ni43MyA4MTAuMDQyQzQ4NjQuMjUgODEwLjA0MiA0ODQzLjMzIDgxNC4yNzggNDgyMy45NyA4MjIuNzQ5QzQ4MDQuNjEgODMxLjIyMSA0Nzg3Ljg0IDg0Mi43MTcgNDc3My42NiA4NTcuMjM5QzQ3NTkuNDggODcxLjc2MiA0NzQ4LjI1IDg4OC43OTEgNDczOS45NSA5MDguMzI3QzQ3MzEuNjUgOTI3Ljg2MiA0NzI3LjUgOTQ4LjY5NSA0NzI3LjUgOTcwLjgyNEM0NzI3LjUgOTkyLjk1MyA0NzMxLjY1IDEwMTMuNzkgNDczOS45NSAxMDMzLjMyQzQ3NDguMjUgMTA1Mi44NiA0NzU5LjQ4IDEwNjkuOTcgNDc3My42NiAxMDg0LjY3QzQ3ODcuODQgMTA5OS4zNiA0ODA0LjYxIDExMTAuOTUgNDgyMy45NyAxMTE5LjQyQzQ4NDMuMzMgMTEyNy44OSA0ODY0LjI1IDExMzIuMTIgNDg4Ni43MyAxMTMyLjEyWiIgZmlsbD0iIzAwZjk1NSIgZmlsbC1ydWxlPSJub256ZXJvIiBvcGFjaXR5PSIxIiBzdHJva2U9Im5vbmUiLz4KPGcgb3BhY2l0eT0iMSI+CjxwYXRoIGQ9Ik0yNTc1Ljk3IDM4NC43NDZDMjUwNS43MiAzNzIuODE0IDI0OTAuMjIgNDU0Ljg5OSAyNTQ0LjE3IDQ3MS44NzdDMjU2NS40OSA0NzguNTg3IDI2MzQuMTcgNDg5LjU1OSAyNjU4LjE5IDUwMC42ODlDMjY4MS42NCA1MTEuNTU1IDI2OTUuODIgNTIzLjk5NSAyNzA0LjYzIDU0My42MDFDMjcxMy40NSA1NjMuMjA2IDI3MTcuODYgNTg1LjcyNyAyNzIzLjcxIDYwOC4yNTVDMjY5My4xNyA2MTQuNTUgMjY1OS4wNyA2MTkuMTM1IDI2MjYuODQgNjI4LjI0NkMyNTk0LjYyIDYzNy4zNTcgMjU2NC4yNyA2NTAuOTk0IDI1NDEuMjMgNjc1LjM5M0MyNTA2LjUgNzEyLjE3OCAyNDgwLjQ5IDc1Ni4zOTggMjQ2NC44NSA4MDQuMDExQzI0NDkuMjEgODUxLjYyNSAyNDQzLjk0IDkwMi42MzIgMjQ1MC42OSA5NTIuOTkyQzI0NjIuMyAxMDM5LjY4IDI1MDUuMDIgMTExNC4xNiAyNTY2LjUzIDExNjYuNzNDMjYyOC4wNSAxMjE5LjMxIDI3MDguMzcgMTI0OS45NyAyNzk1LjIgMTI0OS4wMkMyOTA1Ljg5IDEyNDcuODIgMjk5Ni44OSAxMTk3LjE3IDMwNTUuMzYgMTEyMC41NEMzMTEzLjg0IDEwNDMuOTEgMzEzOS44MSA5NDEuMjkxIDMxMjAuNDUgODM2LjE0M0MzMTE4Ljc3IDgyNy4wNDMgMzExNi41NSA4MTcuOTk3IDMxMTMuNzggODA5LjEzMUMzMTExIDgwMC4yNjQgMzEwNy42NiA3OTEuNTc3IDMxMDMuNzUgNzgzLjE5M0MzMDk2Ljg5IDc2OC41MjUgMzA4OS43OSA3NTMuODc4IDMwODIuMDEgNzM5LjYzNkMzMDc0LjIyIDcyNS4zOTQgMzA2NS43NSA3MTEuNTU5IDMwNTYuMTYgNjk4LjUxN0MzMDQyLjQ1IDY3OS44NzUgMzAyNC4yMSA2NjQuMzgzIDMwMDMuODEgNjUyLjEwMkMyOTgzLjQgNjM5LjgyMiAyOTYwLjgyIDYzMC43NTIgMjkzOC40MSA2MjQuOTU2QzI5MjAuNDkgNjIwLjMxNyAyOTAyLjE2IDYxNy42MDcgMjg4My43OSA2MTUuMDU5QzI4NjUuNDIgNjEyLjUxIDI4NDcuMjggNjA4LjYyOSAyODI4LjkzIDYwNi4xMjZDMjgxNy4wMSA2MDQuNDk5IDI4MDQuNzUgNjAyLjY2NCAyODA0LjY3IDYwMi4zNzdDMjgwMi4xMiA1OTMuNzEgMjc5OS44IDU4NS43MDMgMjc5Ny42NSA1NzguMDE4QzI3OTIuOTcgNTYxLjM0MyAyNzg5LjA5IDU0Ni4xODggMjc4NS40NCA1MjkuMTI2QzI3ODAuMSA1MDQuMjAxIDI3NzcuMjQgNDc3LjU3OSAyNzYyLjY4IDQ1Ny41OEMyNzU3LjExIDQ0OS45MzIgMjczMi4yMiA0MzcuMjU1IDI3MTQuNzcgNDMxLjIzM0MyNjc0LjQzIDQxNy4zMDggMjcxNC45NCA0MzEuMTM5IDI2NzQuMzEgNDE2Ljk0OUMyNjQ2LjkgNDA3LjM3NSAyNjEyLjY5IDM5Ni4wNCAyNTc1Ljk3IDM4NC43NDZaTTI5NDYuMTggNjgxLjYzN0MyOTM5IDY4Ni45NDIgMjkzMS40NiA2OTEuNzY4IDI5MjMuMzkgNjk0Ljk0MkMyOTE3Ljk1IDY5Ny4wODEgMjkxMi40MyA2OTkuMDUgMjkwNi44NSA3MDAuODJDMjkwMS4yNyA3MDIuNTg5IDI4OTUuNjIgNzA0LjE1OCAyODg5LjkzIDcwNS40OThDMjg1Ni40MSA3MTMuMzkzIDI4MzEuNTUgNzExLjE5NCAyODMxLjI3IDcxMC42MThDMjgyNC40NiA2OTYuOTUgMjgxNy4zNCA2NjYuNDM2IDI4MDkuNSA2MzUuMDY1QzI4MzguNjYgNjM4LjMwMiAyODYzLjk4IDY0MS44MzYgMjg4OS4wMiA2NDYuNTkyQzI5MTQuMDYgNjUxLjM0OCAyOTM4LjggNjU3LjMyNyAyOTY2Ljc5IDY2NS40NUMyOTYwLjE3IDY3MC41NDUgMjk1My4zNSA2NzYuMzMxIDI5NDYuMTggNjgxLjYzN1pNMjYyOC44NCA2NTkuMzA2QzI2MzUuMzUgNjU3LjI1OCAyNjQxLjg3IDY1NS4yNzUgMjY0OC40NyA2NTMuNTUzQzI2NTUuNTkgNjUxLjY5OCAyNjYyLjc1IDY1MC4wMjYgMjY2OS45MyA2NDguNDZDMjY3Ny4xMiA2NDYuODk1IDI2ODQuMzIgNjQ1LjQzNSAyNjkxLjU0IDY0NC4wMDJDMjcwNS4xMyA2NDEuMzAxIDI3MjIuNjUgNjM4Ljc3NyAyNzI5Ljc4IDYzNy45NzhDMjczMC4zMiA2MzcuOTE4IDI3MzMuMzEgNjQ2LjcyNCAyNzM2LjgzIDY2MC45ODJDMjczOC45OSA2NjkuNzI4IDI3NDAuOTggNjc4LjUxNiAyNzQyLjkyIDY4Ny4zMTRDMjc0NC44NSA2OTYuMTEyIDI3NDYuNzUgNzA0LjkyMSAyNzQ4LjczIDcxMy43MDlDMjcyMC4xNSA3MTAuODUxIDI2OTYuNzcgNzA3LjQzOCAyNjc0LjggNzAwLjQxNEMyNjUyLjgzIDY5My4zODkgMjYzMi4yNiA2ODIuNzU0IDI2MDkuMzIgNjY1LjQ1QzI2MTUuODQgNjYzLjQ2OCAyNjIyLjMzIDY2MS4zNTQgMjYyOC44NCA2NTkuMzA2Wk0yNTI3Ljg4IDc0NC4yNjVDMjU0Ny4yOSA3MTIuMzc3IDI1NjguMzQgNjkxLjMzNyAyNTgwLjcyIDY3Ny45NjJDMjYwNC4yMiA2OTkuNjgyIDI2MjkuMDUgNzE1LjY5NSAyNjU2LjA4IDcyNi40MjdDMjY4My4xMiA3MzcuMTU4IDI3MTIuMzcgNzQyLjYwOCAyNzQ0LjcxIDc0My4yMDFDMjc5NC41NiA3NDQuMTE0IDI4MzcuNyA3NDQuOTg5IDI4NzguMDIgNzM3LjI2N0MyOTE4LjM1IDcyOS41NDUgMjk1NS44NyA3MTMuMjI2IDI5OTQuNDkgNjc5Ljc0OUMzMDA2LjY3IDY5Mi41NjQgMzAyOC4zOCA3MjkuMzQ5IDMwNDcuNDUgNzY4Ljc0NEMzMDY2LjUxIDgwOC4xMzggMzA4Mi45NCA4NTAuMTQxIDMwODQuNTYgODczLjM5QzMwODYuMTcgODk2LjYzOSAzMDc3Ljk1IDg5NS40NjggMzA2My44MyA4OTAuMTM4QzMwNDkuNzIgODg0LjgwOCAzMDI5LjcgODc1LjMxOSAzMDA3LjczIDg4MS45MzFDMjk4NS43NiA4ODguNTQzIDI5NzAuNDIgODk3LjQzNSAyOTU1Ljg4IDkwNS43NzNDMjk0MS4zMyA5MTQuMTExIDI5MjcuNTggOTIxLjg5NCAyOTA4LjggOTI2LjI4N0MyODg4Ljg2IDkzMC45NTIgMjg2OS4yNyA5MjYuOTMgMjg0OS42NiA5MjEuNzQzQzI4MzAuMDUgOTE2LjU1NSAyODEwLjQxIDkxMC4yMDEgMjc5MC4zOSA5MTAuMjAxQzI3NzEuNzMgOTEwLjIwMSAyNzUzLjI2IDkxNi4wNTYgMjczNC44MyA5MjEuMTYxQzI3MTYuNCA5MjYuMjY3IDI2OTggOTMwLjYyNCAyNjc5LjQ2IDkyNy42MjhDMjY1OS41MSA5MjQuNDA0IDI2NDUuMTQgOTEyLjE4IDI2MjkuNjggODk5LjEzOUMyNjE0LjIyIDg4Ni4wOTcgMjU5Ny42NiA4NzIuMjM3IDI1NzMuMzQgODY1Ljc0MUMyNTQ5LjAxIDg1OS4yNDQgMjUyNi43IDg2My41NzIgMjUxMC41NyA4NjguNkMyNDk0LjQzIDg3My42MjcgMjQ4NC40NyA4NzkuMzU1IDI0ODQuODUgODc1LjY1N0MyNDkwLjcgODE4Ljg5IDI1MDguNDggNzc2LjE1MyAyNTI3Ljg4IDc0NC4yNjVaIiBmaWxsPSIjMDBmOTU1IiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjEiIHN0cm9rZT0ibm9uZSIvPgo8cGF0aCBkPSJNMjE3Ni40NiAzNzMuMjEzQzIxNjMuMjggNDU0LjU2NiAyMTc2IDUzNC4yNzUgMjIxNiA2MDguMTc0QzIyMzEuMTMgNjM2LjEzMiAyMjgwLjcxIDY1NC41OTYgMjI5OC4wNSA2MTUuNzAzQzIzMTUuMjUgNTc3LjExNiAyMjg4Ljg3IDU1Ny4xMTUgMjI3Ni41MSA1MTcuOTIzQzIyNTQuMjEgNDQ3LjIxIDIyNjAuMzIgMzYzLjkyNyAyMjk0LjAxIDI5Ny42MzNDMjMxMS45NCAyNjIuMzU2IDIzNDIuMjcgMjI1LjgwNSAyMzcxLjk0IDIwMC4zOThDMjM5MS43NiAxODMuNDI1IDI0MzIuODggMTcxLjE0MyAyNDM5LjI4IDEzOS42NTJDMjQ0Mi44OSAxMjEuODg5IDI0MzcuNzMgMTExLjgwOCAyNDI1LjI4IDk3LjQ1MDdDMjQxNC4xNSA4NC42MTkgMjM4OC43NiA4My45Mzc2IDIzNzUuMTQgOTEuMDE1M0MyMzU1Ljc3IDEwMS4wODcgMjMzNy40IDExMy4xOTMgMjMyMC4wNCAxMjYuNDVDMjIzOC42NyAxODguNjE4IDIxOTIuNDYgMjc0LjUxMiAyMTc2LjQ2IDM3My4yMTNaIiBmaWxsPSIjMDBmOTU1IiBmaWxsLXJ1bGU9Im5vbnplcm8iIG9wYWNpdHk9IjEiIHN0cm9rZT0ibm9uZSIvPgo8cGF0aCBkPSJNMjM1MC44MyA0MDMuNDI5QzIzNDAuOTkgNDU1LjM4NCAyMzQ5LjI4IDUwNS4zMjQgMjM3NC4zNCA1NTMuMjIxQzIzODkuNjYgNTgyLjQ5OCAyNDMzLjIxIDU4OS45MzYgMjQ1My41IDU2MS4zMjVDMjQ3MS44MyA1MzUuNDY5IDI0NTUuOCA1MTUuMDY2IDI0NDcuMTQgNDg4LjgyNUMyNDM3Ljg5IDQ2MC44IDI0MzkuOTIgNDI2LjU4MiAyNDQ3Ljc5IDM5OC41NzVDMjQ1NS44MiAzNjkuOTkgMjQ3NC4yOSAzNDMuMDYyIDI0OTcuODQgMzI1LjA0OEMyNTE3LjQ4IDMxMC4wMTMgMjUzNy4zMSAzMDUuMDE4IDI1NDIuNzcgMjc5LjcwNEMyNTQ5LjA2IDI1MC41MDEgMjUyMC40NyAyMTIuMDczIDI0ODcuNDggMjI0LjEyOEMyNDc4LjE3IDIyNy41MzEgMjQ2OS41IDIzMi42IDI0NjEuMTUgMjM3Ljk0NkMyMzk4Ljc1IDI3Ny45MDkgMjM2NC4yNCAzMzIuNTQyIDIzNTAuODMgNDAzLjQyOVoiIGZpbGw9IiMwMGY5NTUiIGZpbGwtcnVsZT0ibm9uemVybyIgb3BhY2l0eT0iMSIgc3Ryb2tlPSJub25lIi8+CjwvZz4KPC9nPgo8L2c+Cjwvc3ZnPgo=" alt="PINACOLADA"/>
<p style="with: 100%; font-size: 20px; margin-left: auto; margin-right: auto; display: block;">
I detected a """ + attack.lower() + """ attack! Please take a closer look, and take care of the security in my environment.
</p>
</body>
</html>
""".format(asparagus_cid=asparagus_cid[1:-1]), subtype='html')
smtp = smtplib.SMTP(host, port)
smtp.starttls()
smtp.login(mail, mail_pass)
smtp.send_message(msg)
smtp.quit()
except:
print(" * No notification can be send! I detected a " + attack + " attack...")
def clean():
pid1 = Popen(["pidof", "wifi_coconut", "--no-display", "--quit", "--wait", "--pcap=/tmp/coconut_stream"], stdout=PIPE)
pid2 = Popen(["pidof", "tshark"], stdout=PIPE)
pid1 = ''.join(map(chr, pid1.stdout.read())).partition(" \n")[0]
pid2 = ''.join(map(chr, pid2.stdout.read())).partition(" \n")[0]
Popen(["kill", pid1, pid2])
Popen(["rm", "/tmp/coconut_stream"])