From 26ae58d5b9c1771628db950875504f86dceb6c7a Mon Sep 17 00:00:00 2001 From: "Mariusz B. / mgeeky" Date: Fri, 29 Oct 2021 14:40:32 +0200 Subject: [PATCH] fixes --- .gitmodules | 3 + phishing/README.md | 2 +- phishing/decode-spam-headers | 1 + phishing/decode-spam-headers/README.md | 462 -- .../decode-spam-headers/correlate-rules.py | 70 - .../decode-spam-headers.py | 4763 ----------------- phishing/decode-spam-headers/img/1.png | Bin 141538 -> 0 bytes phishing/decode-spam-headers/img/2.png | Bin 160987 -> 0 bytes phishing/decode-spam-headers/img/3.png | Bin 135030 -> 0 bytes phishing/decode-spam-headers/img/4.png | Bin 8547 -> 0 bytes 10 files changed, 5 insertions(+), 5296 deletions(-) create mode 160000 phishing/decode-spam-headers delete mode 100644 phishing/decode-spam-headers/README.md delete mode 100644 phishing/decode-spam-headers/correlate-rules.py delete mode 100644 phishing/decode-spam-headers/decode-spam-headers.py delete mode 100644 phishing/decode-spam-headers/img/1.png delete mode 100644 phishing/decode-spam-headers/img/2.png delete mode 100644 phishing/decode-spam-headers/img/3.png delete mode 100644 phishing/decode-spam-headers/img/4.png diff --git a/.gitmodules b/.gitmodules index fa56e36..68a6083 100644 --- a/.gitmodules +++ b/.gitmodules @@ -52,3 +52,6 @@ [submodule "windows/ShellcodeFluctuation"] path = windows/ShellcodeFluctuation url = https://github.com/mgeeky/ShellcodeFluctuation +[submodule "phishing/decode-spam-headers"] + path = phishing/decode-spam-headers + url = https://github.com/mgeeky/decode-spam-headers diff --git a/phishing/README.md b/phishing/README.md index 52492af..93516a6 100644 --- a/phishing/README.md +++ b/phishing/README.md @@ -1,7 +1,7 @@ ## Phishing and Social-Engineering related scripts, tools and CheatSheets -- [**`decode-spam-headers.py`**](https://github.com/mgeeky/Penetration-Testing-Tools/tree/master/phishing/decode-spam-headers) - This tool accepts on input an `*.EML` or `*.txt` file with all the SMTP headers. It will then extract a subset of interesting headers and using **79+** tests will attempt to decode them as much as possible. +- [**`decode-spam-headers.py`**](https://github.com/mgeeky/decode-spam-headers) - This tool accepts on input an `*.EML` or `*.txt` file with all the SMTP headers. It will then extract a subset of interesting headers and using **79+** tests will attempt to decode them as much as possible. This script also extracts all IPv4 addresses and domain names and performs full DNS resolution of them. Resulting output will contain useful information on why this e-mail might have been blocked. diff --git a/phishing/decode-spam-headers b/phishing/decode-spam-headers new file mode 160000 index 0000000..b5d6984 --- /dev/null +++ b/phishing/decode-spam-headers @@ -0,0 +1 @@ +Subproject commit b5d6984db7f57f36b185db189d1ea03aafb347c1 diff --git a/phishing/decode-spam-headers/README.md b/phishing/decode-spam-headers/README.md deleted file mode 100644 index 02d283a..0000000 --- a/phishing/decode-spam-headers/README.md +++ /dev/null @@ -1,462 +0,0 @@ -## `decode-spam-headers.py` - -This tool accepts on input an `*.EML` or `*.txt` file with all the SMTP headers. It will then extract a subset of interesting headers and using **79+** tests will attempt to decode them as much as possible. - -This script also extracts all IPv4 addresses and domain names and performs full DNS resolution of them. - -Resulting output will contain useful information on why this e-mail might have been blocked. - - -### Example screenshots - -- Chain of MTA servers (nicely parsed `Received` headers): - -![1.png](img/1.png) - -- Various headers decoded as much as possible, according to publicly available documentation (here _Office365 ForeFront Spam Report_): - -![2.png](img/2.png) - -- Different custom heuristics implement to actively validate and seek for clues of spam categorization, here logic detecting _Domain Impersonation_: - -![3.png](img/3.png) - -- Script attempts to reverse-engineer and document some of the Office365 Anti-Spam rules, as well as collect public knowledge about other opaque Anti-Spam headers: - -![4.png](img/4.png) - - - -### Processed headers - -Processed headers (more than **67+** headers are parsed): - -- `X-forefront-antispam-report` -- `X-exchange-antispam` -- `X-exchange-antispam-mailbox-delivery` -- `X-exchange-antispam-message-info` -- `X-microsoft-antispam-report-cfa-test` -- `Received` -- `From` -- `To` -- `Subject` -- `Thread-topic` -- `Received-spf` -- `X-mailer` -- `X-originating-ip` -- `User-agent` -- `X-forefront-antispam-report` -- `X-microsoft-antispam-mailbox-delivery` -- `X-microsoft-antispam` -- `X-exchange-antispam-report-cfa-test` -- `X-spam-status` -- `X-spam-level` -- `X-spam-flag` -- `X-spam-report` -- `X-vr-spamcause` -- `X-ovh-spam-reason` -- `X-vr-spamscore` -- `X-virus-scanned` -- `X-spam-checker-version` -- `X-ironport-av` -- `X-ironport-anti-spam-filtered` -- `X-ironport-anti-spam-result` -- `X-mimecast-spam-score` -- `Spamdiagnosticmetadata` -- `X-ms-exchange-atpmessageproperties` -- `X-msfbl` -- `X-ms-exchange-transport-endtoendlatency` -- `X-ms-oob-tlc-oobclassifiers` -- `X-ip-spam-verdict` -- `X-amp-result` -- `X-ironport-remoteip` -- `X-ironport-reputation` -- `X-sbrs` -- `X-ironport-sendergroup` -- `X-policy` -- `X-ironport-mailflowpolicy` -- `X-remote-ip` -- `X-sea-spam` -- `X-fireeye` -- `X-antiabuse` -- `X-tmase-version` -- `X-tm-as-product-ver` -- `X-tm-as-result` -- `X-imss-scan-details` -- `X-tm-as-user-approved-sender` -- `X-tm-as-user-blocked-sender` -- `X-tmase-result` -- `X-tmase-snap-result` -- `X-imss-dkim-white-list` -- `X-tm-as-result-xfilter` -- `X-tm-as-smtp` -- `X-scanned-by` -- `X-mimecast-spam-signature` -- `X-mimecast-bulk-signature` -- `X-sender-ip` -- `X-forefront-antispam-report-untrusted` -- `X-microsoft-antispam-untrusted` -- `X-sophos-senderhistory` -- `X-sophos-rescan` - - -Most of these headers are not fully documented, therefore the script is unable to pinpoint all the details, but at least it collects all I could find on them. - -### Usage - -Help: - -``` -PS> py .\decode-spam-headers.py --help -usage: decode-spam-headers.py [options] - -optional arguments: - -h, --help show this help message and exit - -Required arguments: - infile Input file to be analysed or --list tests to show available tests. - -Options: - -o OUTFILE, --outfile OUTFILE - Output file with report - -f {json,text}, --format {json,text} - Analysis report format. JSON, text. Default: text - -N, --nocolor Dont use colors in text output. - -v, --verbose Verbose mode. - -d, --debug Debug mode. - -l, --list List available tests and quit. Use it like so: --list tests - -Tests: - -i tests, --include-tests tests - Comma-separated list of test IDs to run. Ex. --include-tests 1,3,7 - -e tests, --exclude-tests tests - Comma-separated list of test IDs to skip. Ex. --exclude-tests 1,3,7 - -r, --resolve Resolve IPv4 addresses / Domain names. - -a, --decode-all Decode all =?us-ascii?Q? mail encoded messages and print their contents. -``` - -If you want to run only a subset of tests, you'll first need to learn Test IDs of which to pick. -Run the script with `-l tests` to grab that list. - -List available test and their corresponding IDs: - -``` -C:\> py decode-spam-headers.py -l tests - -[.] Available tests: - - TEST_ID - TEST_NAME - -------------------------------------- - 1 - Received - Mail Servers Flow - 2 - Extracted IP addresses - 3 - Extracted Domains - 4 - Bad Keywords In Headers - 5 - From Address Analysis - 6 - Subject and Thread Topic Difference - 7 - Authentication-Results - 8 - ARC-Authentication-Results - 9 - Received-SPF - 10 - Mail Client Version - 11 - User-Agent Version - 12 - X-Forefront-Antispam-Report - 13 - X-MS-Exchange-Organization-SCL - 14 - X-Microsoft-Antispam-Mailbox-Delivery - 15 - X-Microsoft-Antispam Bulk Mail - 16 - X-Exchange-Antispam-Report-CFA-Test - 17 - Domain Impersonation - 18 - SpamAssassin Spam Status - 19 - SpamAssassin Spam Level - 20 - SpamAssassin Spam Flag - 21 - SpamAssassin Spam Report - 22 - OVH's X-VR-SPAMCAUSE - 23 - OVH's X-Ovh-Spam-Reason - 24 - OVH's X-Ovh-Spam-Score - 25 - X-Virus-Scan - 26 - X-Spam-Checker-Version - 27 - X-IronPort-AV - 28 - X-IronPort-Anti-Spam-Filtered - 29 - X-IronPort-Anti-Spam-Result - 30 - X-Mimecast-Spam-Score - 31 - Spam Diagnostics Metadata - 32 - MS Defender ATP Message Properties - 33 - Message Feedback Loop - 34 - End-to-End Latency - Message Delivery Time - 35 - X-MS-Oob-TLC-OOBClassifiers - 36 - X-IP-Spam-Verdict - 37 - X-Amp-Result - 38 - X-IronPort-RemoteIP - 39 - X-IronPort-Reputation - 40 - X-SBRS - 41 - X-IronPort-SenderGroup - 42 - X-Policy - 43 - X-IronPort-MailFlowPolicy - 44 - X-SEA-Spam - 45 - X-FireEye - 46 - X-AntiAbuse - 47 - X-TMASE-Version - 48 - X-TM-AS-Product-Ver - 49 - X-TM-AS-Result - 50 - X-IMSS-Scan-Details - 51 - X-TM-AS-User-Approved-Sender - 52 - X-TM-AS-User-Blocked-Sender - 53 - X-TMASE-Result - 54 - X-TMASE-SNAP-Result - 55 - X-IMSS-DKIM-White-List - 56 - X-TM-AS-Result-Xfilter - 57 - X-TM-AS-SMTP - 58 - X-TMASE-SNAP-Result - 59 - X-TM-Authentication-Results - 60 - X-Scanned-By - 61 - X-Mimecast-Spam-Signature - 62 - X-Mimecast-Bulk-Signature - 63 - X-Forefront-Antispam-Report-Untrusted - 64 - X-Microsoft-Antispam-Untrusted - 65 - X-Mimecast-Impersonation-Protect - 66 - X-Proofpoint-Spam-Details - 67 - X-Proofpoint-Virus-Version - 68 - SPFCheck - 69 - X-Barracuda-Spam-Score - 70 - X-Barracuda-Spam-Status - 71 - X-Barracuda-Spam-Report - 72 - X-Barracuda-Bayes - 73 - X-Barracuda-Start-Time - 74 - Similar to SpamAssassin Spam Level headers - 75 - SMTP Header Contained IP address - 76 - Other unrecognized Spam Related Headers - 77 - Other interesting headers - 78 - Security Appliances Spotted - 79 - Email Providers Infrastructure Clues - 80 - X-Microsoft-Antispam-Message-Info - 81 - Decoded Mail-encoded header values - 82 - Header Containing Client IP -``` - - -### Sample run - -Sample run: - -``` - PS> py decode-spam-headers.py headers.txt - ------------------------------------------- -(1) Test: Received - Mail Servers Flow - -HEADER: - Received - -VALUE: - ... - -ANALYSIS: - - List of server hops used to deliver message: - - --> (1) "attacker" - - |_> (2) SMTP-SERVICE (44.55.66.77) - time: 01 Jan 2021 12:34:20 - - |_> (3) mail-wr1-f51.google.com (209.85.221.51) - time: 01 Jan 2021 12:34:20 - version: fuzzy match: Exchange Server 2019 CU11; October 12, 2021; 15.2.986.9 - - |_> (4) SN1NAM02FT0061.eop-nam02.prod.protection.outlook.com (2603:10b6:806:131:cafe::e5) - time: 01 Jan 2021 12:34:20 - version: fuzzy match: Exchange Server 2019 CU11; October 12, 2021; 15.2.986.9 - - |_> (5) SA0PR11CA0138.namprd11.prod.outlook.com (2603:10b6:806:131::23) - time: 01 Jan 2021 12:34:20 - version: fuzzy match: Exchange Server 2019 CU11; October 12, 2021; 15.2.986.9 - - |_> (6) CP2PR80MB4114.lamprd80.prod.outlook.com (2603:10d6:102:3c::15) - time: 01 Jan 2021 12:34:23 - - |_> (7) "Victim Surname" - - - ------------------------------------------- - -[...] - ------------------------------------------- -(4) Test: Mail Client Version - -HEADER: - X-Mailer - -VALUE: - OEM - -ANALYSIS: - - X-Mailer header was present and contained value: "OEM". - - ------------------------------------------- -(5) Test: X-Forefront-Antispam-Report - -HEADER: - X-Forefront-Antispam-Report - -VALUE: - CIP:209.85.167.100;CTRY:US;LANG:de;SCL:5;SRV:;IPV:NLI;SFV:SPM;H:mail-lf1-f100.google.com;PTR:mail-l - f1-f100.google.com;CAT:DIMP;SFTY:9.19;SFS:(4636009)(956004)(166002)(6916009)(356005)(336012)(19 - 625305002)(22186003)(5660300002)(4744005)(6666004)(35100500006)(82960400001)(26005)(7596003)(7636003)(554460 - 02)(224303003)(1096003)(58800400005)(86362001)(9686003)(43540500002);DIR:INB;SFTY:9.19; - -ANALYSIS: - - Microsoft Office365/Exchange ForeFront Anti-Spam report - - - CIP: Connecting IP address: 209.85.167.100 - - - CTRY: The source country as determined by the connecting IP address - - US - - - LANG: The language in which the message was written - - de - - - IPV: Ingress Peer Verification status - - NLI: The IP address was not found on any IP reputation list. - - - SFV: Message Filtering - - SPM: The message was marked as spam by spam filtering. - - - H: The HELO or EHLO string of the connecting email server. - - mail-lf1-f100.google.com - - - PTR: Reverse DNS of the Connecting IP peer's address - - mail-lf1-f100.google.com - - - CAT: The category of protection policy - - DIMP: Domain Impersonation - - - SFTY: The message was identified as phishing - - 9.19: Domain impersonation. The sending domain is attempting to impersonate a protected domain - - - DIR: Direction of email verification - - INB: Inbound email verification - - - Message matched 24 Anti-Spam rules (SFS): - - (1096003) - - (166002) - - (19625305002) - - (22186003) - - (224303003) - - (26005) - - (336012) - - (356005) - - (35100500006) - (SPAM) Message contained embedded image. - - (43540500002) - - (4636009) - - (4744005) - - (55446002) - - (5660300002) - - (58800400005) - - (6666004) - - (6916009) - - (7596003) - - (7636003) - - (82960400001) - - (86362001) - - (956004) - - (9686003) - - - SCL: Spam Confidence Level: 5 - - SPAM: Spam filtering marked the message as Spam - - -More information: - - https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/anti-spam-message-headers - - https://docs.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/antispam-stamps - - https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/spam-confidence-levels - - https://docs.microsoft.com/en-us/exchange/monitoring/trace-an-email-message/run-a-message-trace-and-view-results - - ------------------------------------------- -(6) Test: X-Microsoft-Antispam-Mailbox-Delivery - -HEADER: - X-Microsoft-Antispam-Mailbox-Delivery - -VALUE: - ucf:0;jmr:1;auth:0;dest:J;ENG:(910001)(944506458)(944626604)(750132)(520011016); - -ANALYSIS: - - This header denotes what to do with received message, where to put it. - - - auth: Message originating from Authenticated sender - - 0: Not Authenticated - - - dest: Destination where message should be placed - - J: JUNK directory - - - Message matched 6 Anti-Spam Delivery rules: - - (520011016) - - (750132) - - (910001) - - (944506458) - - (944626604) - - ------------------------------------------- -(7) Test: X-Microsoft-Antispam Bulk Mail - -HEADER: - X-Microsoft-Antispam -VALUE: - BCL:0; - -ANALYSIS: - - BCL: BULK Confidence Level: 0 - The message isn't from a bulk sender. - - More information: - - https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/bulk-complaint-level-values - ------------------------------------------- - -[...] - ------------------------------------------- -(10) Test: MS Defender ATP Message Properties - -HEADER: - X-MS-Exchange-AtpMessageProperties - -VALUE: - SA|SL - -ANALYSIS: - - MS Defender Advanced Threat Protection enabled following protections on this message: - - Safe Attachments Protection - - Safe Links Protection - - ------------------------------------------- -(11) Test: Domain Impersonation - -HEADER: - From - -VALUE: - "attacker" - -ANALYSIS: - - Mail From: - - - Mail Domain: attacker.com - --> resolves to: 11.22.33.44 - --> reverse-DNS resolves to: ec2-11-22-33-44.eu-west-3.compute.amazonaws.com - (sender's domain: amazonaws.com) - - - First Hop: SMTP-SERVICE (44.55.66.77) - --> resolves to: - --> reverse-DNS resolves to: host44-55-66-77.static.arubacloud.pl - (first hop's domain: arubacloud.pl) - - - Domain SPF: "v=spf1 include:_spf.google.com ~all" - - - WARNING! Potential Domain Impersonation! - - Mail's domain should resolve to: amazonaws.com - - But instead first hop resolved to: arubacloud.pl -``` diff --git a/phishing/decode-spam-headers/correlate-rules.py b/phishing/decode-spam-headers/correlate-rules.py deleted file mode 100644 index ceb5b58..0000000 --- a/phishing/decode-spam-headers/correlate-rules.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/python3 - -import os, sys, re -import string -import argparse -import json -import textwrap -import socket -import time -import glob -import base64 - -rules = {} -scanned = set() - -def walk(path): - global rules - global scanned - - print(f'Walking {path}...') - - for file in glob.glob(os.path.join(path, '**'), recursive=True): - if not file.lower().endswith('.txt'): - continue - - if file in scanned: continue - scanned.add(file) - - data = '' - with open(file) as f: - data = f.read() - - for m in re.finditer(r'(\(\d{4,}\))', data, re.I): - rule = m.group(1) - - if rule in rules.keys(): - if file not in rules[rule]['files']: - rules[rule]['count'] += 1 - rules[rule]['files'].add(file) - else: - rules[rule] = {} - rules[rule]['count'] = 1 - rules[rule]['files'] = set([file, ]) - -def main(argv): - - paths = [] - for i in range(len(argv)): - arg = argv[i] - if i == 0: continue - - if not os.path.isdir(arg): - print('[!] input path does not exist or is not a dir! ' + arg) - sys.exit(1) - - walk(os.path.abspath(arg)) - - print(f'[.] Found {len(rules)} unique rules.:') - - candidates = [] - for k, v in rules.items(): - if v['count'] > 1: - print(f'\n\t- {k: <15}: occurences: {v["count"]} - files: {len(v["files"])}') - - if len(v['files']) < 6: - for f in v['files']: - print('\t\t- ' + str(f)) - -if __name__ == '__main__': - main(sys.argv) \ No newline at end of file diff --git a/phishing/decode-spam-headers/decode-spam-headers.py b/phishing/decode-spam-headers/decode-spam-headers.py deleted file mode 100644 index faefa4e..0000000 --- a/phishing/decode-spam-headers/decode-spam-headers.py +++ /dev/null @@ -1,4763 +0,0 @@ -#!/usr/bin/python3 - -# -# This script attempts to decode SMTP headers that may contain Anti-Spam related information, clues, -# scores and other characteristics. Intention is to extract reason why the message was considered a spam, -# by combining flags and values for different headers from all around the Internet and documentation. -# -# The script might be used by System Administrators to help them understand mail deliverability obstacles, -# but also by the Offensive security consultants performing Phishing Awareness Trainings, before sending -# a campaign to analyse negative constructs in their e-mails. -# -# The script can decode 67+ different SPAM related headers (and others bringing valuable information): -# - X-forefront-antispam-report -# - X-exchange-antispam -# - X-exchange-antispam-mailbox-delivery -# - X-exchange-antispam-message-info -# - X-microsoft-antispam-report-cfa-test -# - Received -# - From -# - To -# - Subject -# - Thread-topic -# - Received-spf -# - X-mailer -# - X-originating-ip -# - User-agent -# - X-forefront-antispam-report -# - X-microsoft-antispam-mailbox-delivery -# - X-microsoft-antispam -# - X-exchange-antispam-report-cfa-test -# - X-spam-status -# - X-spam-level -# - X-spam-flag -# - X-spam-report -# - X-vr-spamcause -# - X-ovh-spam-reason -# - X-vr-spamscore -# - X-virus-scanned -# - X-spam-checker-version -# - X-ironport-av -# - X-ironport-anti-spam-filtered -# - X-ironport-anti-spam-result -# - X-mimecast-spam-score -# - Spamdiagnosticmetadata -# - X-ms-exchange-atpmessageproperties -# - X-msfbl -# - X-ms-exchange-transport-endtoendlatency -# - X-ms-oob-tlc-oobclassifiers -# - X-ip-spam-verdict -# - X-amp-result -# - X-ironport-remoteip -# - X-ironport-reputation -# - X-sbrs -# - X-ironport-sendergroup -# - X-policy -# - X-ironport-mailflowpolicy -# - X-remote-ip -# - X-sea-spam -# - X-fireeye -# - X-antiabuse -# - X-tmase-version -# - X-tm-as-product-ver -# - X-tm-as-result -# - X-imss-scan-details -# - X-tm-as-user-approved-sender -# - X-tm-as-user-blocked-sender -# - X-tmase-result -# - X-tmase-snap-result -# - X-imss-dkim-white-list -# - X-tm-as-result-xfilter -# - X-tm-as-smtp -# - X-scanned-by -# - X-mimecast-spam-signature -# - X-mimecast-bulk-signature -# - X-sender-ip -# - X-forefront-antispam-report-untrusted -# - X-microsoft-antispam-untrusted -# - X-sophos-senderhistory -# - X-sophos-rescan -# -# Usage: -# ./decode-spam-headers [options] -# -# NOTICE: -# Parts of this code contain fragments copied from the following places: -# -# 1) testEmailIntelligence(): -# source: https://github.com/nquinlan/Email-Intelligence -# authored by: Nick Quinlan (nick@nicholasquinlan.com) -# -# Requirements: -# - packaging -# - dnspython -# -# Mariusz Banach / mgeeky, '21 -# -# - -import os, sys, re -import string -import argparse -import json -import textwrap -import socket -import time -import base64 -from html import escape - -from dateutil import parser -from email import header as emailheader -from datetime import * -from dateutil.tz import * - -try: - import packaging.version - -except ImportError: - print(''' -[!] You need to install packaging: - # pip3 install packaging -''') - sys.exit(1) - -try: - import dns.resolver - -except ImportError: - print(''' -[!] You need to install dnspython: - # pip3 install dnspython - - If problem remains, re-install dnspython: - # pip3 uninstall dnspython - # pip3 install dnspython -''') - sys.exit(1) - -options = { - 'debug': False, - 'verbose': False, - 'nocolor' : False, - 'log' : sys.stderr, - 'format' : 'text', -} - -class Logger: - colors_map = { - 'red': 31, - 'green': 32, - 'yellow': 33, - 'blue': 34, - 'magenta': 35, - 'cyan': 36, - 'white': 37, - 'grey': 38, - } - - colors_dict = { - 'error': colors_map['red'], - 'trace': colors_map['magenta'], - 'info ': colors_map['green'], - 'debug': colors_map['grey'], - 'other': colors_map['grey'], - } - - options = {} - - def __init__(self, opts = None): - self.options.update(Logger.options) - if opts != None and len(opts) > 0: - self.options.update(opts) - - @staticmethod - def with_color(c, s): - return "\x1b[%dm%s\x1b[0m" % (c, s) - - @staticmethod - def replaceColorToHtml(s): - out = '' - i = 0 - - while i < len(s): - if s[i] == '\x1b' and s[i+1] == '[' and s[i+2] != '0': - c = int(s[i+2:i+4]) - pos = 0 - while pos < len(s): - if s[pos] == '\x1b' and s[pos+1] == '[' and s[pos+2] == '0' and s[pos+3] == 'm': - break - pos += 1 - - txt = s[i+5:pos] - i = i + 5 + pos + 4 - - for k, v in Logger.colors_map.items(): - if v == c: - out += f'

{escape(txt)}

' - break - - continue - - out += s[i] - i += 1 - - return out - - def colored(self, txt, col): - if self.options['nocolor']: - return txt - - return Logger.with_color(Logger.colors_map[col], txt) - - # Invocation: - # def out(txt, mode='info ', fd=None, color=None, noprefix=False, newline=True): - @staticmethod - def out(txt, fd, mode='info ', **kwargs): - if txt == None or fd == 'none': - return - elif fd == None: - raise Exception('[ERROR] Logging descriptor has not been specified!') - - args = { - 'color': None, - 'noprefix': False, - 'newline': True, - 'nocolor' : False - } - args.update(kwargs) - - if type(txt) != str: - txt = str(txt) - - txt = txt.replace('\t', ' ' * 4) - - if args['nocolor']: - col = '' - elif args['color']: - col = args['color'] - if type(col) == str and col in Logger.colors_map.keys(): - col = Logger.colors_map[col] - else: - col = Logger.colors_dict.setdefault(mode, Logger.colors_map['grey']) - - prefix = '' - if mode: - mode = '[%s] ' % mode - - if not args['noprefix']: - if args['nocolor']: - prefix = mode.upper() - else: - prefix = Logger.with_color(Logger.colors_dict['other'], '%s' - % (mode.upper())) - - nl = '' - if 'newline' in args: - if args['newline']: - nl = '\n' - - if 'force_stdout' in args: - fd = sys.stdout - - if type(fd) == str: - with open(fd, 'a') as f: - prefix2 = '' - if mode: - prefix2 = '%s' % (mode.upper()) - f.write(prefix2 + txt + nl) - f.flush() - - else: - if args['nocolor']: - fd.write(prefix + txt + nl) - else: - fd.write(prefix + Logger.with_color(col, txt) + nl) - - # Info shall be used as an ordinary logging facility, for every desired output. - def info(self, txt, forced = False, **kwargs): - kwargs['nocolor'] = self.options['nocolor'] - if forced or (self.options['verbose'] or \ - self.options['debug'] ) \ - or (type(self.options['log']) == str and self.options['log'] != 'none'): - Logger.out(txt, self.options['log'], 'info', **kwargs) - - def text(self, txt, **kwargs): - kwargs['noPrefix'] = True - kwargs['nocolor'] = self.options['nocolor'] - Logger.out(txt, self.options['log'], '', **kwargs) - - def dbg(self, txt, **kwargs): - if self.options['debug']: - if self.options['format'] == 'html': - txt = f'' - - kwargs['nocolor'] = self.options['nocolor'] - Logger.out(txt, self.options['log'], 'debug', **kwargs) - - def err(self, txt, **kwargs): - kwargs['nocolor'] = self.options['nocolor'] - Logger.out(txt, self.options['log'], 'error', **kwargs) - - def fatal(self, txt, **kwargs): - kwargs['nocolor'] = self.options['nocolor'] - Logger.out(txt, self.options['log'], 'error', **kwargs) - os._exit(1) - -logger = Logger(options) - -class Verstring(object): - def __init__(self, name, date, *versions): - self.name = name - self.date = date - self.version = versions[0].split(' ')[0] - - def __eq__(self, other): - if isinstance(other, Verstring): - return packaging.version.parse(self.version) == packaging.version.parse(other.version) \ - and self.name == other.name - elif isinstance(other, str): - return packaging.version.parse(self.version) == packaging.version.parse(other) - - def __lt__(self, other): - return packaging.version.parse(self.version) < packaging.version.parse(other.version) - - def __str__(self): - return f'{self.name}; {self.date}; {self.version}' - - -class SMTPHeadersAnalysis: - bad_keywords = ( - 'gophish', 'phishingfrenzy', 'frenzy', 'king-phisher', 'phisher', - 'speedphishing', - ) - - Dodgy_User_Names = ( - 'action', 'postmaster', 'root', 'admin', 'administrator', 'offer', - 'test', 'it', 'account', 'hr', 'job', 'relay', 'robot', 'help', 'catchall', - 'guest', 'spam', 'abuse', 'all', 'contact', 'nobody', 'auto', 'db', 'web', - ) - - Header_Keywords_That_May_Contain_Spam_Info = ( - 'spam', 'phishing', 'bulk', 'attack', 'defend', 'assassin', 'virus', 'scan', 'mimecast', - 'ironport', 'forefront', '360totalsecurity', 'acronis', 'adaware', 'adsbot-google', - 'aegislab', 'ahnlab', 'altavista', 'anti-virus', 'antivirus', 'antiy', 'apexone', - 'appengine-google', 'arcabit', 'avast', 'avg', 'avira', 'baidu', 'baiduspider', - 'barracuda', 'bingbot', 'bitdefender', 'bitdefender', 'bluvector', 'carbon', - 'carbonblack', 'check point', 'checkpoint', 'clamav', 'code42', 'comodo', 'countercept', - 'countertack', 'crowdstrike', 'crowdstrike', 'curl', 'cybereason', 'cybereason', - 'cylance', 'cylance', 'cynet360', 'cyren', 'defender', 'druva', 'drweb', 'duckduckbot', - 'egambit', 'emsisoft', 'emsisoft', 'encase', 'endgame', 'endgame', 'ensilo', 'escan', - 'eset', 'exabot', 'f-secure', 'facebookexternalhit', 'falcon', 'fidelis', 'fireeye', - 'forcepoint', 'fortigate', 'fortil', 'fortinet', 'gdata', 'gdata', 'googlebot', - 'gravityzone', 'huntress', 'ia_archiver', 'ikarussecurity', 'ivanti', 'juniper', - 'k7antivirus', 'k7computing', 'kaspersky', 'kingsoft', 'lightcyber', 'lynx', - 'malwarebytes', 'mcafee', 'mj12bot', 'msnbot', 'nanoav', 'netwitness', 'paloalto', - 'paloaltonetworks', 'panda', 'proofpoint', 'python-urllib', 'scanner', 'scanning', - 'secureage', 'secureworks', 'security', 'sentinelone', 'sentinelone', 'simplepie', - 'slackbot-linkexpanding', 'slurp', 'sogou', 'sonicwall', 'sophos', 'superantispyware', - 'symantec', 'tachyon', 'tencent', 'totaldefense', 'trapmine', 'trend micro', 'trendmicro', - 'trusteer', 'trustlook', 'virusblokada', 'virustotal', 'virustotalcloud', 'webroot', - 'yandex', 'yandexbot', 'zillya', 'zonealarm', 'zscaler', '-sea-', 'perlmx', 'trustwave', - 'mailmarshal', 'tmase', 'startscan', 'fe-etp', 'jemd', 'suspicious', 'grey', 'infected', 'unscannable', - 'dlp-', 'sanitize', 'mailscan', 'barracuda', 'clearswift', 'messagelabs', 'msw-jemd', 'fe-etp', 'symc-ess', - 'starscan', 'mailcontrol', - ) - - Interesting_Headers = ( - 'mailgun', 'sendgrid', 'mailchimp', 'x-ses', 'x-avas', 'X-Gmail-Labels', 'X-vrfbldomain', - 'mandrill', 'bulk', 'sendinblue', 'amazonses', 'mailjet', 'postmark', 'postfix', 'dovecot', 'roundcube', - 'seg', '-IP', 'crosspremises', 'brightmail', 'check', 'exim', 'postfix', 'exchange', 'microsoft', 'office365', - 'dovecot', 'sendmail', 'score', 'report', 'status', 'benchmarkemail', 'bronto', 'X-Complaints-To', - 'X-Roving-ID', 'X-DynectEmail-Msg', 'X-elqPod', 'X-EMV-MemberId', 'e2ma', 'fishbowl', 'eloop', 'X-Google-Appengine-App-Id', - 'X-ICPINFO', 'x-locaweb-id', 'X-MC-User', 'mailersend', 'MailiGen', 'Mandrill', 'MarketoID', 'X-Messagebus-Info', - 'Mixmax', 'X-PM-Message-Id', 'postmark', 'X-rext', 'responsys', 'X-SFDC-User', 'salesforce', 'x-sg-', 'x-sendgrid-', - 'silverpop', '.mkt', 'X-SMTPCOM-Tracking-Number', 'X-vrfbldomain', 'verticalresponse', - 'yesmail', - ) - - Headers_Known_For_Breaking_Line = ( - 'Received', - 'Authentication-Results', - 'Received-SPF', - 'DKIM-Signature', - 'X-Google-DKIM-Signature', - 'X-GM-Message-State', - 'Subject', - 'X-MS-Exchange-Organization-ExpirationStartTime', - 'X-MS-Exchange-Organization-Network-Message-Id', - 'X-Forefront-Antispam-Report', - 'X-MS-Exchange-CrossTenant-OriginalArrivalTime', - 'X-Microsoft-Antispam-Mailbox-Delivery', - 'X-Microsoft-Antispam-Message-Info' - ) - - # - # This array will be (partially) dynamically adjusted by the script by SMTPHeadersAnalysis.getHeader method. - # - # Add here header names that are processed by the script, but not passed to `getHeader` method - # in order to skip them from "Other Interesting Headers" sweep scan. - # - Handled_Spam_Headers = [ - 'X-Forefront-Antispam-Report', - 'X-Exchange-Antispam', - 'X-Exchange-Antispam-Mailbox-Delivery', - 'X-Exchange-Antispam-Message-Info', - 'X-Microsoft-Antispam-Report-CFA-Test', - ] - - auth_result = { - 'none': 'The message was not signed.', - 'pass': logger.colored('The message was signed, the signature or signatures were acceptable to the ADMD, and the signature(s) passed verification tests.', 'green'), - 'fail': logger.colored('The message was signed and the signature or signatures were acceptable to the ADMD, but they failed the verification test(s).', 'red'), - 'policy': 'The message was signed, but some aspect of the signature or signatures was not acceptable to the ADMD.', - 'neutral': logger.colored('The message was signed, but the signature or signatures contained syntax errors or were not otherwise able to be processed.', 'magenta'), - 'temperror': logger.colored('The message could not be verified due to some error that is likely transient in nature, such as a temporary inability to retrieve a public key.', 'red'), - 'permerror': logger.colored('The message could not be verified due to some error that is unrecoverable, such as a required header field being absent.', 'red'), - } - - IronPort_AV = { - 'i' : ( - 'Version Information', - ( - 'Product Version', - 'Number of IDEs', - 'IDE Serial ' - ) - ), - - 'E' : ( - 'AV scanning engine', - '' - ), - - 'e' : ( - 'Errors', - { - "i" : 'ignored', - "u" : logger.colored('unscannable', 'red'), - "e" : 'encrypted', - "t" : 'timeout', - "f" : 'fatal', - "j" : 'savi-bug (ignored)', - "s" : 'savi-bug (unscannable)', - "z" : 'unknown', - } - ), - - 'v' : ( - 'Virus List', - ( - 'extension', - 'type code list' - ) - ), - - 'd' : ( - 'File details', - ( - 'extension', - 'type code list' - ) - ), - - 'a' : ( - 'Message actions', - { - '_map' : { - 'N' : 'notification', - 'H' : 'headers', - 'T' : 'time', - ':' : 'action' - }, - - 'action' : { - "a" : 'archived ?', - "s" : logger.colored('sent', 'green'), - "d" : logger.colored('dropped', 'red'), - "f" : 'forwarded', - "x" : 'certain errors (timed-out, rpc conn fails, etc)', - }, - - 'notification' : { - "s" : 'sender', - "r" : 'recipient', - "o" : 'other', - }, - - 'headers' : { - "s" : 'subject modified', - "h" : 'custom header modified', - }, - - 'time' : { - }, - } - ) - } - - Aterisk_Risk_Score = { - '*' : logger.colored('lowest risk associated', 'green'), - '**' : logger.colored('low risk associated', 'green'), - '***' : logger.colored('moderately low risk associated', 'yellow'), - '****' : logger.colored('moderately high risk associated', 'yellow'), - '*****' : logger.colored('high risk associated', 'red'), - '******' : logger.colored('highest risk associated', 'red'), - } - - AMP_Results = { - 'CLEAN' : logger.colored('No malware detected.', "green"), - 'MALICIOUS' : logger.colored('Malware detected.', "red"), - 'UNKNOWN' : logger.colored('Could not categorize the message.', "magenta"), - 'UNSCANNABLE' : logger.colored('Could not scan the message.', "yellow"), - } - - Forefront_Antispam_Report = { - 'ARC' : ( - 'ARC Protocol', - { - 'AAR': 'Records the content of the Authentication-results header from DMARC.', - 'AMS': 'Includes cryptographic signatures of the message.', - 'AS': 'Includes cryptographic signatures of the message headers' - } - ), - - 'CAT' : ( - 'The category of protection policy', - { - 'BULK': logger.colored('Bulk', 'red'), - 'DIMP': logger.colored('Domain Impersonation', 'red'), - 'GIMP': logger.colored('Mailbox intelligence based impersonation', 'red'), - 'HPHSH': logger.colored('High confidence phishing', 'red'), - 'HPHISH': logger.colored('High confidence phishing', 'red'), - 'HSPM': logger.colored('High confidence spam', 'red'), - 'MALW': logger.colored('Malware', 'red'), - 'PHSH': logger.colored('Phishing', 'red'), - 'SPM': logger.colored('Spam', 'red'), - 'SPOOF': logger.colored('Spoofing', 'red'), - 'UIMP': logger.colored('User Impersonation', 'red'), - 'AMP': logger.colored('Anti-malware', 'red'), - 'SAP': logger.colored('Safe attachments', 'green'), - 'OSPM': logger.colored('Outbound spam', 'red'), - 'NONE': logger.colored('Clean message', 'green'), - } - ), - - 'CTRY' : ( - 'The source country as determined by the connecting IP address', - '' - ), - - 'H' : ( - 'The HELO or EHLO string of the connecting email server.', - '' - ), - - 'IPV' : ( - 'Ingress Peer Verification status', - { - 'CAL' : logger.colored('Source IP address was Configured in Allowed List (CAL)', 'green'), - 'NLI' : 'The IP address was not found on any IP reputation list.', - } - ), - - 'EFV' : ( - 'Egress F(?) Verification status', - { - 'CAL' : logger.colored('Source IP address was Configured in Allowed List (CAL)', 'green'), - 'NLI' : 'The IP address was not found on any IP reputation list.', - } - ), - - 'DIR' : ( - 'Direction of email verification', - { - 'INB' : 'Inbound email verification', - 'OUT' : 'Outbound email verification', - 'OUB' : 'Outbound email verification', - 'OTB' : 'Outbound email verification', - } - ), - - 'LANG' : ( - 'The language in which the message was written', - '' - ), - - 'PTR' : ( - 'Reverse DNS of the Connecting IP peer\'s address', - '' - ), - - 'SFTY' : ( - 'The message was identified as phishing', - { - '9.19': logger.colored('Domain impersonation. The sending domain is attempting to impersonate a protected domain', 'red'), - - '9.20' : logger.colored('User impersonation. The sending user is attempting to impersonate a user in the recipient\'s organization', 'red'), - } - ), - - 'SRV' : ( - 'Bulk Email analysis results', - { - 'BULK' : logger.colored('The message was identified as bulk email by spam filtering and the bulk complaint level (BCL) threshold', 'red'), - } - ), - - 'SFV' : ( - 'Message Filtering', - { - 'BLK' : logger.colored('Filtering was skipped and the message was blocked because it was sent from an address in a user\'s Blocked Senders list.', 'red'), - 'NSPM' : logger.colored('Spam filtering marked the message as non-spam and the message was sent to the intended recipients.', 'green'), - 'SFE' : logger.colored('Filtering was skipped and the message was allowed because it was sent from an address in a user\'s Safe Senders list.', 'green'), - 'SKA' : logger.colored('The message skipped spam filtering and was delivered to the Inbox because the sender was in the allowed senders list or allowed domains list in an anti-spam policy.', 'green'), - 'SKB' : logger.colored('The message was marked as spam because it matched a sender in the blocked senders list or blocked domains list in an anti-spam policy.', 'red'), - 'SKI' : 'Similar to SFV:SKN, the message skipped spam filtering for another reason (for example, an intra-organizational email within a tenant).', - 'SKN' : logger.colored('The message was marked as non-spam prior to being processed by spam filtering. For example, the message was marked as SCL -1 or Bypass spam filtering by a mail flow rule.', 'green'), - 'SKQ' : logger.colored('The message was released from the quarantine and was sent to the intended recipients.', 'cyan'), - 'SKS' : logger.colored('The message was marked as spam prior to being processed by spam filtering. For example, the message was marked as SCL 5 to 9 by a mail flow rule.', 'red'), - 'SPM' : logger.colored('The message was marked as spam by spam filtering.', 'red'), - } - ), - } - - Barracuda_Score_Thresholds = [ - [0.0, 2.99, logger.colored('Delivered to Inbox', 'green')], - [3.0, 4.99, logger.colored('Delivered to Inbox. Subject line tagged with [Suspected SPAM]', 'yellow')], - [5.0, 6.99, logger.colored('Delivered to Barracuda Quarantine Inbox', 'red')], - [7.0, 10.0, logger.colored('Blocked from delivery', 'red')], - ] - - Barracuda_Aggressive_Score_Thresholds = [ - [0.0, 1.99, logger.colored('Delivered to Inbox', 'green')], - [2.0, 3.49, logger.colored('Delivered to Inbox. Subject line tagged with [SPAM?]', 'yellow')], - [3.5, 5.00, logger.colored('Delivered to Barracuda Quarantine Inbox', 'red')], - [5.1, 10.0, logger.colored('Blocked from delivery', 'red')], - ] - - Trend_Type_AntiSpam = { - 1 : logger.colored('Spam', 'red'), - 2 : logger.colored('Phishing', 'red'), - } - - Spam_Diagnostics_Metadata = { - 'NSPM' : logger.colored('Not Spam', 'green'), - 'SPAM' : logger.colored('SPAM', 'red'), - } - - - # - # Below rules were collected solely in a trial-and-error manner or by scraping any - # pieces of information from all around the Internet. - # - # They do not represent the actual Anti-Spam rule name or context and surely represent - # something close to what is understood (or they may have totally different meaning). - # - # Until we'll be able to review anti-spam rules documention, there is no viable mean to map - # rule ID to its meaning. - # - - Anti_Spam_Rules_ReverseEngineered = \ - { - '35100500006' : logger.colored('(SPAM) Message contained embedded image.', 'red'), - - # https://docs.microsoft.com/en-us/answers/questions/416100/what-is-meanings-of-39x-microsoft-antispam-mailbox.html - '520007050' : logger.colored('(SPAM) Moved message to Spam and created Email Rule to move messages from this particular sender to Junk.', 'red'), - - # triggered on an empty mail with subject being: "test123 - viagra" - '162623004' : 'Subject line contained suspicious words (like Viagra).', - - # triggered on mail with subject "test123" and body being single word "viagra" - '19618925003' : 'Mail body contained suspicious words (like Viagra).', - - # triggered on mail with empty body and subject "Click here" - '28233001' : 'Subject line contained suspicious words luring action (ex. "Click here"). ', - - # triggered on a mail with test subject and 1500 words of http://nietzsche-ipsum.com/ - '30864003' : 'Mail body contained a lot of text (more than 10.000 characters).', - - # mails that had simple message such as "Hello world" triggered this rule, whereas mails with - # more than 150 words did not. - '564344004' : 'HTML mail body with less than 150 words of text (not sure how much less though)', - - # message was sent with a basic html and only one tag in body. - '67856001' : 'HTML mail body contained underline tag.', - - # message with html,head,body and body containing simple text with no b/i/u formatting. - '579124003' : 'HTML mail body contained text, but no text formatting (, , ) was present', - - # This is a strong signal. Mails without doesnt have this rule. - '166002' : 'HTML mail body contained URL link.', - - # Message contained tag with URL containing GET parameter: ex. href="https://foo.bar/file?aaa=bbb"', - - # Message contained tag with URL containing GET parameter with value of another URL: ex. href="https://foo.bar/file?aaa=https://baz.xyz/"', - - # Message contained with href pointing to a file with dangerous extension, such as file.exe - '460985005' : 'Mail body contained HTML tag with href URL pointing to a file with dangerous extension (such as .exe)', - - # - # Message1: GoPhish -> VPS 587/tcp redirector -> smtp.gmail.com:587 -> target - # Message2: GoPhish -> VPS 587/tcp redirector -> smtp-relay.gmail.com:587 -> target - # - # These were the only differences I spotted: - # Message1 - FirstHop Gmail SMTP Received with ESMTPS. - # Message2 - FirstHop Gmail SMTP-Relay Received with ESMTPSA. - # - '121216002' : 'First Hop MTA SMTP Server used as a SMTP Relay. It\'s known to originate e-mails, but here it acted as a Relay. Or maybe due to use of "with ESMTPSA" instead of ESMTPS?', - - } - - ForeFront_Spam_Confidence_Levels = { - -1 : (False, logger.colored('The message skipped spam filtering. WHITELISTED.', 'green')), - 0 : (False, logger.colored('Spam filtering determined the message was not spam.', 'green')), - 1 : (False, 'The message skipped spam filtering'), - 5 : (True, logger.colored('Spam filtering marked the message as Spam', 'red')), - 6 : (True, logger.colored('Spam filtering marked the message as Spam', 'red')), - 9 : (True, logger.colored('Spam filtering marked the message as High confidence spam', 'red')), - } - - ForeFront_Phishing_Confidence_Levels = { - 1 : (False, 'The message content isn\'t likely to be phishing'), - 2 : (False, 'The message content isn\'t likely to be phishing'), - 3 : (False, 'The message content isn\'t likely to be phishing'), - 4 : (True, logger.colored('The message content is likely to be phishing.', 'red')), - 5 : (True, logger.colored('The message content is likely to be phishing.', 'red')), - 6 : (True, logger.colored('The message content is likely to be phishing.', 'red')), - 7 : (True, logger.colored('The message content is likely to be phishing.', 'red')), - 8 : (True, logger.colored('The message content is likely to be phishing.', 'red')), - } - - ForeFront_Bulk_Confidence_Levels = { - 0 : logger.colored('The message isn\'t from a bulk sender.', 'green'), - 1 : logger.colored('The message is from a bulk sender that generates few complaints.', 'magenta'), - 2 : logger.colored('The message is from a bulk sender that generates few complaints.', 'magenta'), - 3 : logger.colored('The message is from a bulk sender that generates few complaints.', 'magenta'), - 4 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), - 5 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), - 6 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), - 7 : logger.colored('The message is from a bulk sender that generates a mixed number of complaints.', 'red'), - 8 : logger.colored('The message is from a bulk sender that generates a high number of complaints.', 'red'), - 9 : logger.colored('The message is from a bulk sender that generates a high number of complaints.', 'red'), - } - - ATP_Message_Properties = { - 'SA' : 'Safe Attachments Protection', - 'SL' : 'Safe Links Protection', - } - - TLCOOBClassifiers = { - 'OLM' : ( - '', - { - - } - ) - } - - SEA_Spam_Fields = { - 'gauge' : 'Spam Message Gauge result', - 'probability' : 'Spam Probability (100% - certain spam)', - 'report' : 'Anti-Spam rules that matched the message along with their probability', - } - - SpamAssassin_Spam_Status = ( - 'SpamAssassin spam evaluation status report', - { - '_result' : 'Whether the message is Spam', - 'score' : 'Total score for the message (negative if whitelisted)', - 'required' : 'The score that would be required to be classed as spam', - 'tests' : 'List of tests that returned non-zero value', - 'autolearn' : 'Whether autolearn learned the message as spam or ham', - 'version' : 'Version of SpamAssassin used', - 'hits' : 'Number of characteristics considering this message as Spam', - 'tagged_above' : 'Tag message with SpamAssassin report if above threshold', - } - ) - - Cisco_Predefined_MailFlow_Policies = { - '$TRUSTED' : logger.colored('Mails from this sender are TRUSTED and will not be scanned by Anti-Spam or Anti-Virus.', 'green'), - '$BLOCKED' : logger.colored('Mails from this sender are BLOCKED', 'red'), - '$THROTTLED' : logger.colored('Mails from this sender are slowed down because they were considered suspicious. Messages will be scanned.', 'magenta'), - '$ACCEPTED' : logger.colored('Mail flow policies were undecided about the sender so they accepted the message. Message will be scanned and reputation evaluated.', 'green'), - } - - Forefront_Antispam_Delivery = { - 'dest' : ( - 'Destination where message should be placed', - { - 'I' : logger.colored('Inbox directory', 'green'), - 'J' : logger.colored('JUNK directory', 'red'), - } - ), - - 'auth' : ( - 'Message originating from Authenticated sender', - { - '0' : 'Not Authenticated', - '1' : 'Authenticated', - } - ), - - 'ucf' : ( - 'User Custom Flow (?) - custom mail flow rule applied on message?', - { - '0' : 'No user custom mail rule applied.', - '1' : 'User custom mail rule applied.', - } - ), - - 'jmr' : ( - 'Junk Mail Rule (?) - mail considered as Spam by previous, existing mail rules?', - { - '0' : logger.colored('Mail is not a Junk', 'green'), - '1' : logger.colored('Mail is a Junk', 'red'), - } - ), - - 'OFR' : ( - 'Folder Rules applied to this Message', - { - 'ExclusiveSettings' : '', - 'CustomRules' : 'An existing folder move rule was applied on this message.', - } - ), - - 'RF' : ( - 'Email Rules', - { - 'JunkEmail' : logger.colored('Mail marked as Junk and moved to Junk folder', 'red'), - } - ), - } - - - # https://docs.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019 - Exchange_Versions = ( - Verstring('Exchange Server 4.0 SP5 ', 'May 5, 1998', '4.0.996'), - Verstring('Exchange Server 4.0 SP4 ', 'March 28, 1997', '4.0.995'), - Verstring('Exchange Server 4.0 SP3 ', 'October 29, 1996', '4.0.994'), - Verstring('Exchange Server 4.0 SP2 ', 'July 19, 1996', '4.0.993'), - Verstring('Exchange Server 4.0 SP1 ', 'May 1, 1996', '4.0.838'), - Verstring('Exchange Server 4.0 Standard Edition', 'June 11, 1996', '4.0.837'), - Verstring('Exchange Server 5.0 SP2 ', 'February 19, 1998', '5.0.1460'), - Verstring('Exchange Server 5.0 SP1 ', 'June 18, 1997', '5.0.1458'), - Verstring('Exchange Server 5.0 ', 'May 23, 1997', '5.0.1457'), - Verstring('Exchange Server version 5.5 SP4 ', 'November 1, 2000', '5.5.2653'), - Verstring('Exchange Server version 5.5 SP3 ', 'September 9, 1999', '5.5.2650'), - Verstring('Exchange Server version 5.5 SP2 ', 'December 23, 1998', '5.5.2448'), - Verstring('Exchange Server version 5.5 SP1 ', 'August 5, 1998', '5.5.2232'), - Verstring('Exchange Server version 5.5 ', 'February 3, 1998', '5.5.1960'), - Verstring('Exchange 2000 Server post-SP3', 'August 2008', '6.0.6620.7'), - Verstring('Exchange 2000 Server post-SP3', 'March 2008', '6.0.6620.5'), - Verstring('Exchange 2000 Server post-SP3', 'August 2004', '6.0.6603'), - Verstring('Exchange 2000 Server post-SP3', 'April 2004', '6.0.6556'), - Verstring('Exchange 2000 Server post-SP3', 'September 2003', '6.0.6487'), - Verstring('Exchange 2000 Server SP3', 'July 18, 2002', '6.0.6249'), - Verstring('Exchange 2000 Server SP2', 'November 29, 2001', '6.0.5762'), - Verstring('Exchange 2000 Server SP1', 'June 21, 2001', '6.0.4712'), - Verstring('Exchange 2000 Server', 'November 29, 2000', '6.0.4417'), - Verstring('Exchange Server 2003 post-SP2', 'August 2008', '6.5.7654.4'), - Verstring('Exchange Server 2003 post-SP2', 'March 2008', '6.5.7653.33'), - Verstring('Exchange Server 2003 SP2', 'October 19, 2005', '6.5.7683'), - Verstring('Exchange Server 2003 SP1', 'May25, 2004', '6.5.7226'), - Verstring('Exchange Server 2003', 'September 28, 2003', '6.5.6944'), - Verstring('Update Rollup 5 for Exchange Server 2007 SP2', 'December 7, 2010', '8.2.305.3', '8.02.0305.003'), - Verstring('Update Rollup 4 for Exchange Server 2007 SP2', 'April 9, 2010', '8.2.254.0', '8.02.0254.000'), - Verstring('Update Rollup 3 for Exchange Server 2007 SP2', 'March 17, 2010', '8.2.247.2', '8.02.0247.002'), - Verstring('Update Rollup 2 for Exchange Server 2007 SP2', 'January 22, 2010', '8.2.234.1', '8.02.0234.001'), - Verstring('Update Rollup 1 for Exchange Server 2007 SP2', 'November 19, 2009', '8.2.217.3', '8.02.0217.003'), - Verstring('Exchange Server 2007 SP2', 'August 24, 2009', '8.2.176.2', '8.02.0176.002'), - Verstring('Update Rollup 10 for Exchange Server 2007 SP1', 'April 13, 2010', '8.1.436.0', '8.01.0436.000'), - Verstring('Update Rollup 9 for Exchange Server 2007 SP1', 'July 16, 2009', '8.1.393.1', '8.01.0393.001'), - Verstring('Update Rollup 8 for Exchange Server 2007 SP1', 'May 19, 2009', '8.1.375.2', '8.01.0375.002'), - Verstring('Update Rollup 7 for Exchange Server 2007 SP1', 'March 18, 2009', '8.1.359.2', '8.01.0359.002'), - Verstring('Update Rollup 6 for Exchange Server 2007 SP1', 'February 10, 2009', '8.1.340.1', '8.01.0340.001'), - Verstring('Update Rollup 5 for Exchange Server 2007 SP1', 'November 20, 2008', '8.1.336.1', '8.01.0336.01'), - Verstring('Update Rollup 4 for Exchange Server 2007 SP1', 'October 7, 2008', '8.1.311.3', '8.01.0311.003'), - Verstring('Update Rollup 3 for Exchange Server 2007 SP1', 'July 8, 2008', '8.1.291.2', '8.01.0291.002'), - Verstring('Update Rollup 2 for Exchange Server 2007 SP1', 'May 9, 2008', '8.1.278.2', '8.01.0278.002'), - Verstring('Update Rollup 1 for Exchange Server 2007 SP1', 'February 28, 2008', '8.1.263.1', '8.01.0263.001'), - Verstring('Exchange Server 2007 SP1', 'November 29, 2007', '8.1.240.6', '8.01.0240.006'), - Verstring('Update Rollup 7 for Exchange Server 2007', 'July 8, 2008', '8.0.813.0', '8.00.0813.000'), - Verstring('Update Rollup 6 for Exchange Server 2007', 'February 21, 2008', '8.0.783.2', '8.00.0783.002'), - Verstring('Update Rollup 5 for Exchange Server 2007', 'October 25, 2007', '8.0.754.0', '8.00.0754.000'), - Verstring('Update Rollup 4 for Exchange Server 2007', 'August 23, 2007', '8.0.744.0', '8.00.0744.000'), - Verstring('Update Rollup 3 for Exchange Server 2007', 'June 28, 2007', '8.0.730.1', '8.00.0730.001'), - Verstring('Update Rollup 2 for Exchange Server 2007', 'May 8, 2007', '8.0.711.2', '8.00.0711.002'), - Verstring('Update Rollup 1 for Exchange Server 2007', 'April 17, 2007', '8.0.708.3', '8.00.0708.003'), - Verstring('Exchange Server 2007 RTM', 'March 8, 2007', '8.0.685.25 8.00.0685.025'), - Verstring('Update Rollup 23 for Exchange Server 2007 SP3', 'March 21, 2017', '8.3.517.0', '8.03.0517.000'), - Verstring('Update Rollup 22 for Exchange Server 2007 SP3', 'December 13, 2016', '8.3.502.0', '8.03.0502.000'), - Verstring('Update Rollup 21 for Exchange Server 2007 SP3', 'September 20, 2016', '8.3.485.1', '8.03.0485.001'), - Verstring('Update Rollup 20 for Exchange Server 2007 SP3', 'June 21, 2016', '8.3.468.0', '8.03.0468.000'), - Verstring('Update Rollup 19 forExchange Server 2007 SP3', 'March 15, 2016', '8.3.459.0', '8.03.0459.000'), - Verstring('Update Rollup 18 forExchange Server 2007 SP3', 'December, 2015', '8.3.445.0', '8.03.0445.000'), - Verstring('Update Rollup 17 forExchange Server 2007 SP3', 'June 17, 2015', '8.3.417.1', '8.03.0417.001'), - Verstring('Update Rollup 16 for Exchange Server 2007 SP3', 'March 17, 2015', '8.3.406.0', '8.03.0406.000'), - Verstring('Update Rollup 15 for Exchange Server 2007 SP3', 'December 9, 2014', '8.3.389.2', '8.03.0389.002'), - Verstring('Update Rollup 14 for Exchange Server 2007 SP3', 'August 26, 2014', '8.3.379.2', '8.03.0379.002'), - Verstring('Update Rollup 13 for Exchange Server 2007 SP3', 'February 24, 2014', '8.3.348.2', '8.03.0348.002'), - Verstring('Update Rollup 12 for Exchange Server 2007 SP3', 'December 9, 2013', '8.3.342.4', '8.03.0342.004'), - Verstring('Update Rollup 11 for Exchange Server 2007 SP3', 'August 13, 2013', '8.3.327.1', '8.03.0327.001'), - Verstring('Update Rollup 10 for Exchange Server 2007 SP3', 'February 11, 2013', '8.3.298.3', '8.03.0298.003'), - Verstring('Update Rollup 9 for Exchange Server 2007 SP3', 'December 10, 2012', '8.3.297.2', '8.03.0297.002'), - Verstring('Update Rollup 8-v3 for Exchange Server 2007 SP3 ', 'November 13, 2012', '8.3.279.6', '8.03.0279.006'), - Verstring('Update Rollup 8-v2 for Exchange Server 2007 SP3 ', 'October 9, 2012', '8.3.279.5', '8.03.0279.005'), - Verstring('Update Rollup 8 for Exchange Server 2007 SP3', 'August 13, 2012', '8.3.279.3', '8.03.0279.003'), - Verstring('Update Rollup 7 for Exchange Server 2007 SP3', 'April 16, 2012', '8.3.264.0', '8.03.0264.000'), - Verstring('Update Rollup 6 for Exchange Server 2007 SP3', 'January 26, 2012', '8.3.245.2', '8.03.0245.002'), - Verstring('Update Rollup 5 for Exchange Server 2007 SP3', 'September 21, 2011', '8.3.213.1', '8.03.0213.001'), - Verstring('Update Rollup 4 for Exchange Server 2007 SP3', 'May 28, 2011', '8.3.192.1', '8.03.0192.001'), - Verstring('Update Rollup 3-v2 for Exchange Server 2007 SP3 ', 'March 30, 2011', '8.3.159.2', '8.03.0159.002'), - Verstring('Update Rollup 2 for Exchange Server 2007 SP3', 'December 10, 2010', '8.3.137.3', '8.03.0137.003'), - Verstring('Update Rollup 1 for Exchange Server 2007 SP3', 'September 9, 2010', '8.3.106.2', '8.03.0106.002'), - Verstring('Exchange Server 2007 SP3', 'June 7, 2010', '8.3.83.6', '8.03.0083.006'), - Verstring('Update Rollup 8 for Exchange Server 2010 SP2', 'December 9, 2013', '14.2.390.3 14.02.0390.003'), - Verstring('Update Rollup 7 for Exchange Server 2010 SP2', 'August 3, 2013', '14.2.375.0 14.02.0375.000'), - Verstring('Update Rollup 6 Exchange Server 2010 SP2', 'February 12, 2013', '14.2.342.3 14.02.0342.003'), - Verstring('Update Rollup 5 v2 for Exchange Server 2010 SP2 ', 'December 10, 2012', '14.2.328.10 14.02.0328.010'), - Verstring('Update Rollup 5 for Exchange Server 2010 SP2', 'November 13, 2012', '14.3.328.5 14.03.0328.005'), - Verstring('Update Rollup 4 v2 for Exchange Server 2010 SP2 ', 'October 9, 2012', '14.2.318.4 14.02.0318.004'), - Verstring('Update Rollup 4 for Exchange Server 2010 SP2', 'August 13, 2012', '14.2.318.2 14.02.0318.002'), - Verstring('Update Rollup 3 for Exchange Server 2010 SP2', 'May 29, 2012', '14.2.309.2 14.02.0309.002'), - Verstring('Update Rollup 2 for Exchange Server 2010 SP2', 'April 16, 2012', '14.2.298.4 14.02.0298.004'), - Verstring('Update Rollup 1 for Exchange Server 2010 SP2', 'February 13, 2012', '14.2.283.3 14.02.0283.003'), - Verstring('Exchange Server 2010 SP2', 'December 4, 2011', '14.2.247.5 14.02.0247.005'), - Verstring('Update Rollup 8 for Exchange Server 2010 SP1', 'December 10, 2012', '14.1.438.0 14.01.0438.000'), - Verstring('Update Rollup 7 v3 for Exchange Server 2010 SP1 ', 'November 13, 2012', '14.1.421.3 14.01.0421.003'), - Verstring('Update Rollup 7 v2 for Exchange Server 2010 SP1 ', 'October 10, 2012', '14.1.421.2 14.01.0421.002'), - Verstring('Update Rollup 7 for Exchange Server 2010 SP1', 'August 8, 2012', '14.1.421.0 14.01.0421.000'), - Verstring('Update Rollup 6 for Exchange Server 2010 SP1', 'October 27, 2011', '14.1.355.2 14.01.0355.002'), - Verstring('Update Rollup 5 for Exchange Server 2010 SP1', 'August 23, 2011', '14.1.339.1 14.01.0339.001'), - Verstring('Update Rollup 4 for Exchange Server 2010 SP1', 'July 27, 2011', '14.1.323.6 14.01.0323.006'), - Verstring('Update Rollup 3 for Exchange Server 2010 SP1', 'April 6, 2011', '14.1.289.7 14.01.0289.007'), - Verstring('Update Rollup 2 for Exchange Server 2010 SP1', 'December 9, 2010', '14.1.270.1 14.01.0270.001'), - Verstring('Update Rollup 1 for Exchange Server 2010 SP1', 'October 4, 2010', '14.1.255.2 14.01.0255.002'), - Verstring('Exchange Server 2010 SP1', 'August 23, 2010', '14.1.218.15 14.01.0218.015'), - Verstring('Update Rollup 5 for Exchange Server 2010', 'December 13, 2010', '14.0.726.0 14.00.0726.000'), - Verstring('Update Rollup 4 for Exchange Server 2010', 'June 10, 2010', '14.0.702.1 14.00.0702.001'), - Verstring('Update Rollup 3 for Exchange Server 2010', 'April 13, 2010', '14.0.694.0 14.00.0694.000'), - Verstring('Update Rollup 2 for Exchange Server 2010', 'March 4, 2010', '14.0.689.0 14.00.0689.000'), - Verstring('Update Rollup 1 for Exchange Server 2010', 'December 9, 2009', '14.0.682.1 14.00.0682.001'), - Verstring('Exchange Server 2010 RTM', 'November 9, 2009', '14.0.639.21 14.00.0639.021'), - Verstring('Update Rollup 29 for Exchange Server 2010 SP3', 'July 9, 2019', '14.3.468.0 14.03.0468.000'), - Verstring('Update Rollup 28 for Exchange Server 2010 SP3', 'June 7, 2019', '14.3.461.1 14.03.0461.001'), - Verstring('Update Rollup 27 for Exchange Server 2010 SP3', 'April 9, 2019', '14.3.452.0 14.03.0452.000'), - Verstring('Update Rollup 26 for Exchange Server 2010 SP3', 'February 12, 2019', '14.3.442.0 14.03.0442.000'), - Verstring('Update Rollup 25 for Exchange Server 2010 SP3', 'January 8, 2019', '14.3.435.0 14.03.0435.000'), - Verstring('Update Rollup 24 for Exchange Server 2010 SP3', 'September 5, 2018', '14.3.419.0 14.03.0419.000'), - Verstring('Update Rollup 23 for Exchange Server 2010 SP3', 'August 13, 2018', '14.3.417.1 14.03.0417.001'), - Verstring('Update Rollup 22 for Exchange Server 2010 SP3', 'June 19, 2018', '14.3.411.0 14.03.0411.000'), - Verstring('Update Rollup 21 for Exchange Server 2010 SP3', 'May 7, 2018', '14.3.399.2 14.03.0399.002'), - Verstring('Update Rollup 20 for Exchange Server 2010 SP3', 'March 5, 2018', '14.3.389.1 14.03.0389.001'), - Verstring('Update Rollup 19 for Exchange Server 2010 SP3', 'December 19, 2017', '14.3.382.0 14.03.0382.000'), - Verstring('Update Rollup 18 for Exchange Server 2010 SP3', 'July 11, 2017', '14.3.361.1 14.03.0361.001'), - Verstring('Update Rollup 17 for Exchange Server 2010 SP3', 'March 21, 2017', '14.3.352.0 14.03.0352.000'), - Verstring('Update Rollup 16 for Exchange Server 2010 SP3', 'December 13, 2016', '14.3.336.0 14.03.0336.000'), - Verstring('Update Rollup 15 for Exchange Server 2010 SP3', 'September 20, 2016', '14.3.319.2 14.03.0319.002'), - Verstring('Update Rollup 14 for Exchange Server 2010 SP3', 'June 21, 2016', '14.3.301.0 14.03.0301.000'), - Verstring('Update Rollup 13 for Exchange Server 2010 SP3', 'March 15, 2016', '14.3.294.0 14.03.0294.000'), - Verstring('Update Rollup 12 for Exchange Server 2010 SP3', 'December 15, 2015', '14.3.279.2 14.03.0279.002'), - Verstring('Update Rollup 11 for Exchange Server 2010 SP3', 'September 15, 2015', '14.3.266.2 14.03.0266.002'), - Verstring('Update Rollup 10 for Exchange Server 2010 SP3', 'June 17, 2015', '14.3.248.2 14.03.0248.002'), - Verstring('Update Rollup 9 for Exchange Server 2010 SP3', 'March 17, 2015', '14.3.235.1 14.03.0235.001'), - Verstring('Update Rollup 8 v2 for Exchange Server 2010 SP3 ', 'December 12, 2014', '14.3.224.2 14.03.0224.002'), - Verstring('Update Rollup 8 v1 for Exchange Server 2010 SP3 (recalled) ', 'December 9, 2014', '14.3.224.1 14.03.0224.001'), - Verstring('Update Rollup 7 for Exchange Server 2010 SP3', 'August 26, 2014', '14.3.210.2 14.03.0210.002'), - Verstring('Update Rollup 6 for Exchange Server 2010 SP3', 'May 27, 2014', '14.3.195.1 14.03.0195.001'), - Verstring('Update Rollup 5 for Exchange Server 2010 SP3', 'February 24, 2014', '14.3.181.6 14.03.0181.006'), - Verstring('Update Rollup 4 for Exchange Server 2010 SP3', 'December 9, 2013', '14.3.174.1 14.03.0174.001'), - Verstring('Update Rollup 3 for Exchange Server 2010 SP3', 'November 25, 2013', '14.3.169.1 14.03.0169.001'), - Verstring('Update Rollup 2 for Exchange Server 2010 SP3', 'August 8, 2013', '14.3.158.1 14.03.0158.001'), - Verstring('Update Rollup 1 for Exchange Server 2010 SP3', 'May 29, 2013', '14.3.146.0 14.03.0146.000'), - Verstring('Exchange Server 2010 SP3', 'February 12, 2013', '14.3.123.4 14.03.0123.004'), - Verstring('Exchange Server 2013 CU23', 'June 18, 2019', '15.0.1497.2 15.00.1497.002'), - Verstring('Exchange Server 2013 CU22', 'February 12, 2019', '15.0.1473.3 15.00.1473.003'), - Verstring('Exchange Server 2013 CU21', 'June 19, 2018', '15.0.1395.4 15.00.1395.004'), - Verstring('Exchange Server 2013 CU20', 'March 20, 2018', '15.0.1367.3 15.00.1367.003'), - Verstring('Exchange Server 2013 CU19', 'December 19, 2017', '15.0.1365.1 15.00.1365.001'), - Verstring('Exchange Server 2013 CU18', 'September 19, 2017', '15.0.1347.2 15.00.1347.002'), - Verstring('Exchange Server 2013 CU17', 'June 27, 2017', '15.0.1320.4 15.00.1320.004'), - Verstring('Exchange Server 2013 CU16', 'March 21, 2017', '15.0.1293.2 15.00.1293.002'), - Verstring('Exchange Server 2013 CU15', 'December 13, 2016', '15.0.1263.5 15.00.1263.005'), - Verstring('Exchange Server 2013 CU14', 'September 20, 2016', '15.0.1236.3 15.00.1236.003'), - Verstring('Exchange Server 2013 CU13', 'June 21, 2016', '15.0.1210.3 15.00.1210.003'), - Verstring('Exchange Server 2013 CU12', 'March 15, 2016', '15.0.1178.4 15.00.1178.004'), - Verstring('Exchange Server 2013 CU11', 'December 15, 2015', '15.0.1156.6 15.00.1156.006'), - Verstring('Exchange Server 2013 CU10', 'September 15, 2015', '15.0.1130.7 15.00.1130.007'), - Verstring('Exchange Server 2013 CU9', 'June 17, 2015', '15.0.1104.5 15.00.1104.005'), - Verstring('Exchange Server 2013 CU8', 'March 17, 2015', '15.0.1076.9 15.00.1076.009'), - Verstring('Exchange Server 2013 CU7', 'December 9, 2014', '15.0.1044.25', '15.00.1044.025'), - Verstring('Exchange Server 2013 CU6', 'August 26, 2014', '15.0.995.29 15.00.0995.029'), - Verstring('Exchange Server 2013 CU5', 'May 27, 2014', '15.0.913.22 15.00.0913.022'), - Verstring('Exchange Server 2013 SP1', 'February 25, 2014', '15.0.847.32 15.00.0847.032'), - Verstring('Exchange Server 2013 CU3', 'November 25, 2013', '15.0.775.38 15.00.0775.038'), - Verstring('Exchange Server 2013 CU2', 'July 9, 2013', '15.0.712.24 15.00.0712.024'), - Verstring('Exchange Server 2013 CU1', 'April 2, 2013', '15.0.620.29 15.00.0620.029'), - Verstring('Exchange Server 2013 RTM', 'December 3, 2012', '15.0.516.32 15.00.0516.03'), - Verstring('Exchange Server 2016 CU14', 'September 17, 2019', '15.1.1847.3 15.01.1847.003'), - Verstring('Exchange Server 2016 CU13', 'June 18, 2019', '15.1.1779.2 15.01.1779.002'), - Verstring('Exchange Server 2016 CU12', 'February 12, 2019', '15.1.1713.5 15.01.1713.005'), - Verstring('Exchange Server 2016 CU11', 'October 16, 2018', '15.1.1591.10', '15.01.1591.010'), - Verstring('Exchange Server 2016 CU10', 'June 19, 2018', '15.1.1531.3 15.01.1531.003'), - Verstring('Exchange Server 2016 CU9', 'March 20, 2018', '15.1.1466.3 15.01.1466.003'), - Verstring('Exchange Server 2016 CU8', 'December 19, 2017', '15.1.1415.2 15.01.1415.002'), - Verstring('Exchange Server 2016 CU7', 'September 19, 2017', '15.1.1261.35', '15.01.1261.035'), - Verstring('Exchange Server 2016 CU6', 'June 27, 2017', '15.1.1034.26', '15.01.1034.026'), - Verstring('Exchange Server 2016 CU5', 'March 21, 2017', '15.1.845.34 15.01.0845.034'), - Verstring('Exchange Server 2016 CU4', 'December 13, 2016', '15.1.669.32 15.01.0669.032'), - Verstring('Exchange Server 2016 CU3', 'September 20, 2016', '15.1.544.27 15.01.0544.027'), - Verstring('Exchange Server 2016 CU2', 'June 21, 2016', '15.1.466.34 15.01.0466.034'), - Verstring('Exchange Server 2016 CU1', 'March 15, 2016', '15.1.396.30 15.01.0396.030'), - Verstring('Exchange Server 2016 RTM', 'October 1, 2015', '15.1.225.42 15.01.0225.042'), - Verstring('Exchange Server 2016 Preview', 'July 22, 2015', '15.1.225.16 15.01.0225.016'), - Verstring('Exchange Server 2019 CU3', 'September 17, 2019', '15.2.464.5 15.02.0464.005'), - Verstring('Exchange Server 2019 CU2', 'June 18, 2019', '15.2.397.3 15.02.0397.003'), - Verstring('Exchange Server 2019 CU1', 'February 12, 2019', '15.2.330.5 15.02.0330.005'), - Verstring('Exchange Server 2019 RTM', 'October 22, 2018', '15.2.221.12 15.02.0221.012'), - Verstring('Exchange Server 2019 Preview', 'July 24, 2018', '15.2.196.0 15.02.0196.000'), - Verstring('Exchange Server 2019 CU11', 'October 12, 2021', '15.2.986.9'), - Verstring('Exchange Server 2019 CU11', 'September 28, 2021', '15.2.986.5'), - Verstring('Exchange Server 2019 CU10', 'October 12, 2021', '15.2.922.14'), - Verstring('Exchange Server 2019 CU10', 'July 13, 2021', '15.2.922.13'), - Verstring('Exchange Server 2019 CU10', 'June 29, 2021', '15.2.922.7'), - Verstring('Exchange Server 2019 CU9', 'July 13, 2021', '15.2.858.15'), - Verstring('Exchange Server 2019 CU9', 'May 11, 2021', '15.2.858.12'), - Verstring('Exchange Server 2019 CU9', 'April 13, 2021', '15.2.858.10'), - Verstring('Exchange Server 2019 CU9', 'March 16, 2021', '15.2.858.5'), - Verstring('Exchange Server 2019 CU8', 'May 11, 2021', '15.2.792.15'), - Verstring('Exchange Server 2019 CU8', 'April 13, 2021', '15.2.792.13'), - Verstring('Exchange Server 2019 CU8', 'March 2, 2021', '15.2.792.10'), - Verstring('Exchange Server 2019 CU8', 'December 15, 2020', '15.2.792.3'), - Verstring('Exchange Server 2019 CU7', 'March 2, 2021', '15.2.721.13'), - Verstring('Exchange Server 2019 CU7', 'September 15, 2020', '15.2.721.2'), - Verstring('Exchange Server 2019 CU6', 'March 2, 2021', '15.2.659.12'), - Verstring('Exchange Server 2019 CU6', 'June 16, 2020', '15.2.659.4'), - Verstring('Exchange Server 2019 CU5', 'March 2, 2021', '15.2.595.8'), - Verstring('Exchange Server 2019 CU5', 'March 17, 2020', '15.2.595.3'), - Verstring('Exchange Server 2019 CU4', 'March 2, 2021', '15.2.529.13'), - Verstring('Exchange Server 2019 CU4', 'December 17, 2019', '15.2.529.5'), - Verstring('Exchange Server 2019 CU3', 'March 2, 2021', '15.2.464.15'), - ) - - def __init__(self, logger, resolve = False, decode_all = False, testsToRun = []): - self.text = '' - self.results = {} - self.resolve = resolve - self.decode_all = decode_all - self.logger = logger - self.received_path = [] - self.testsToRun = testsToRun - self.securityAppliances = set() - - # (number, header, value) - self.headers = [] - - def getAllTests(self): - - tests = ( - ( '1', 'Received - Mail Servers Flow', self.testReceived), - ( '2', 'Extracted IP addresses', self.testExtractIP), - ( '3', 'Extracted Domains', self.testResolveIntoIP), - ( '4', 'Bad Keywords In Headers', self.testBadKeywords), - ( '5', 'From Address Analysis', self.testFrom), - ( '6', 'Subject and Thread Topic Difference', self.testSubjecThreadTopic), - ( '7', 'Authentication-Results', self.testAuthenticationResults), - ( '8', 'ARC-Authentication-Results', self.testARCAuthenticationResults), - ( '9', 'Received-SPF', self.testReceivedSPF), - ('10', 'Mail Client Version', self.testXMailer), - ('11', 'User-Agent Version', self.testUserAgent), - ('12', 'X-Forefront-Antispam-Report', self.testForefrontAntiSpamReport), - ('13', 'X-MS-Exchange-Organization-SCL', self.testForefrontAntiSCL), - ('14', 'X-Microsoft-Antispam-Mailbox-Delivery', self.testAntispamMailboxDelivery), - ('15', 'X-Microsoft-Antispam Bulk Mail', self.testMicrosoftAntiSpam), - ('16', 'X-Exchange-Antispam-Report-CFA-Test', self.testAntispamReportCFA), - ('17', 'Domain Impersonation', self.testDomainImpersonation), - ('18', 'SpamAssassin Spam Status', self.testSpamAssassinSpamStatus), - ('19', 'SpamAssassin Spam Level', self.testSpamAssassinSpamLevel), - ('20', 'SpamAssassin Spam Flag', self.testSpamAssassinSpamFlag), - ('21', 'SpamAssassin Spam Report', self.testSpamAssassinSpamReport), - ('22', 'OVH\'s X-VR-SPAMCAUSE', self.testSpamCause), - ('23', 'OVH\'s X-Ovh-Spam-Reason', self.testOvhSpamReason), - ('24', 'OVH\'s X-Ovh-Spam-Score', self.testOvhSpamScore), - ('25', 'X-Virus-Scan', self.testXVirusScan), - ('26', 'X-Spam-Checker-Version', self.testXSpamCheckerVersion), - ('27', 'X-IronPort-AV', self.testXIronPortAV), - ('28', 'X-IronPort-Anti-Spam-Filtered', self.testXIronPortSpamFiltered), - ('29', 'X-IronPort-Anti-Spam-Result', self.testXIronPortSpamResult), - ('30', 'X-Mimecast-Spam-Score', self.testXMimecastSpamScore), - ('31', 'Spam Diagnostics Metadata', self.testSpamDiagnosticMetadata), - ('32', 'MS Defender ATP Message Properties', self.testATPMessageProperties), - ('33', 'Message Feedback Loop', self.testMSFBL), - ('34', 'End-to-End Latency - Message Delivery Time', self.testTransportEndToEndLatency), - ('35', 'X-MS-Oob-TLC-OOBClassifiers', self.testTLCOObClasifiers), - ('36', 'X-IP-Spam-Verdict', self.testXIPSpamVerdict), - ('37', 'X-Amp-Result', self.testXAmpResult), - ('38', 'X-IronPort-RemoteIP', self.testXIronPortRemoteIP), - ('39', 'X-IronPort-Reputation', self.testXIronPortReputation), - ('40', 'X-SBRS', self.testXSBRS), - ('41', 'X-IronPort-SenderGroup', self.testXIronPortSenderGroup), - ('42', 'X-Policy', self.testXPolicy), - ('43', 'X-IronPort-MailFlowPolicy', self.testXIronPortMailFlowPolicy), - ('44', 'X-SEA-Spam', self.testXSeaSpam), - ('45', 'X-FireEye', self.testXFireEye), - ('46', 'X-AntiAbuse', self.testXAntiAbuse), - ('47', 'X-TMASE-Version', self.testXTMVersion), - ('48', 'X-TM-AS-Product-Ver', self.testXTMProductVer), - ('49', 'X-TM-AS-Result', self.testXTMResult), - ('50', 'X-IMSS-Scan-Details', self.testXTMScanDetails), - ('51', 'X-TM-AS-User-Approved-Sender', self.testXTMApprSender), - ('52', 'X-TM-AS-User-Blocked-Sender', self.testXTMBlockSender), - ('53', 'X-TMASE-Result', self.testXTMASEResult), - ('54', 'X-TMASE-SNAP-Result', self.testXTMSnapResult), - ('55', 'X-IMSS-DKIM-White-List', self.testXTMDKIM), - ('56', 'X-TM-AS-Result-Xfilter', self.testXTMXFilter), - ('57', 'X-TM-AS-SMTP', self.testXTMASSMTP), - ('58', 'X-TMASE-SNAP-Result', self.testXTMASESNAP), - ('59', 'X-TM-Authentication-Results', self.testXTMAuthenticationResults), - ('60', 'X-Scanned-By', self.testXScannedBy), - ('61', 'X-Mimecast-Spam-Signature', self.testXMimecastSpamSignature), - ('62', 'X-Mimecast-Bulk-Signature', self.testXMimecastBulkSignature), - ('63', 'X-Forefront-Antispam-Report-Untrusted', self.testForefrontAntiSpamReportUntrusted), - ('64', 'X-Microsoft-Antispam-Untrusted', self.testForefrontAntiSpamUntrusted), - ('65', 'X-Mimecast-Impersonation-Protect', self.testMimecastImpersonationProtect), - ('66', 'X-Proofpoint-Spam-Details', self.testXProofpointSpamDetails), - ('67', 'X-Proofpoint-Virus-Version', self.testXProofpointVirusVersion), - ('68', 'SPFCheck', self.testSPFCheck), - - ('69', 'X-Barracuda-Spam-Score', self.testXBarracudaSpamScore), - ('70', 'X-Barracuda-Spam-Status', self.testXBarracudaSpamStatus), - ('71', 'X-Barracuda-Spam-Report', self.testXBarracudaSpamReport), - ('72', 'X-Barracuda-Bayes', self.testXBarracudaBayes), - ('73', 'X-Barracuda-Start-Time', self.testXBarracudaStartTime), - - # - # These tests shall be the last ones. - # - ('74', 'Similar to SpamAssassin Spam Level headers', self.testSpamAssassinSpamAlikeLevels), - ('75', 'SMTP Header Contained IP address', self.testMessageHeaderContainedIP), - ('76', 'Other unrecognized Spam Related Headers', self.testSpamRelatedHeaders), - ('77', 'Other interesting headers', self.testInterestingHeaders), - ('78', 'Security Appliances Spotted', self.testSecurityAppliances), - ('79', 'Email Providers Infrastructure Clues', self.testEmailIntelligence), - ) - - testsDecodeAll = ( - ('80', 'X-Microsoft-Antispam-Message-Info', self.testMicrosoftAntiSpamMessageInfo), - ('81', 'Decoded Mail-encoded header values', self.testDecodeEncodedHeaders), - ) - - testsReturningArray = ( - ('82', 'Header Containing Client IP', self.testAnyOtherIP), - ) - - return (tests, testsDecodeAll, testsReturningArray) - - @staticmethod - def safeBase64Decode(value): - enc = False - if type(value) == str: - enc = True - value = value.encode() - - try: - out = base64.b64decode(value) - except: - out = base64.b64decode(value + b'=' * (-len(value) % 4)) - - if enc: - out = out.decode() - - return out - - @staticmethod - def resolveAddress(addr): - try: - res = socket.gethostbyaddr(addr) - return ', '.join([x for x in res if len(x) > 0]) - - except: - return '' - - @staticmethod - def parseExchangeVersion(lookup): - - # Try strict matching - for ver in SMTPHeadersAnalysis.Exchange_Versions: - if ver.version == lookup: - return ver - - lookupparsed = packaging.version.parse(lookup) - - # Go with version-wise comparison to fuzzily find proper version name - sortedversions = sorted(SMTPHeadersAnalysis.Exchange_Versions) - - match = re.search(r'\d{1,}\.\d{1,}\.\d{1,}', lookup, re.I) - if not match: - return None - - for i in range(len(sortedversions)): - if sortedversions[i].version.startswith(lookup): - sortedversions[i].name = 'fuzzy match: ' + sortedversions[i].name - return sortedversions[i] - - for i in range(len(sortedversions)): - prevver = packaging.version.parse('0.0') - nextver = packaging.version.parse('99999.0') - if i > 0: - prevver = packaging.version.parse(sortedversions[i-1].version) - thisver = packaging.version.parse(sortedversions[i].version) - if i + 1 < len(sortedversions): - nextver = packaging.version.parse(sortedversions[i+1].version) - - if lookupparsed >= thisver and lookupparsed < nextver: - sortedversions[i].name = 'fuzzy match: ' + sortedversions[i].name - return sortedversions[i] - - return None - - - def getHeader(self, _header): - if _header not in SMTPHeadersAnalysis.Handled_Spam_Headers: - SMTPHeadersAnalysis.Handled_Spam_Headers.append(_header) - - for (num, header, value) in self.headers: - if header.lower() == _header.lower(): - return (num, header, value) - - similar_headers = ( - ('-Microsoft-', '-Exchange-'), - ('-Microsoft-', '-Office365-'), - ) - - for sim in similar_headers: - if sim[0].lower() in _header.lower(): - _header = re.sub(sim[0], sim[1], _header, re.I) - - for (num, header, value) in self.headers: - if header.lower() == _header.lower(): - return (num, header, value) - - return (-1, '', '') - - def collect(self, text): - num = 0 - errorOnce = False - lines = text.split('\n') - boundary = '' - inBoundary = False - headers = [] - - i = 0 - while i < len(lines): - line = lines[i] - - if len(boundary) > 0 and f'--{boundary}' == line.strip(): - inBoundary = True - i += 1 - continue - - elif inBoundary and f'--{boundary}--' == line.strip(): - inBoundary = False - i += 1 - continue - - elif inBoundary: - i += 1 - continue - - elif line.startswith(' ') or line.startswith('\t'): - if len(headers) > 0: - headers[-1][2] += '\n' + line - i += 1 - continue - else: - logger.dbg(f'Skipping invalid line:\n\t( {line} )') - i += 1 - continue - else: - line = line.strip() - match = re.match(r'^([^:]+)\s*:\s+(.+)\s*', line, re.S) - - if match: - headers.append([num, match.group(1), match.group(2)]) - logger.dbg(f'Extracted {num}. {match.group(1)}') - num += 1 - else: - match = re.match(r'^([^:]+)\s*:\s*', line, re.S) - - if match: - val = '' - - considerNextLineIndented = match.group(1) in SMTPHeadersAnalysis.Headers_Known_For_Breaking_Line - - if match and i + 1 < len(lines) and (lines[i + 1].startswith(' ') \ - or lines[i + 1].startswith('\t')) or considerNextLineIndented: - j = 1 - - if considerNextLineIndented and not errorOnce and \ - (not lines[i + 1].startswith(' ') and not lines[i+1].startswith('\t')): - errorOnce = True - self.logger.err(''' ------------------------------------------ -WARNING! ------------------------------------------ - -Your SMTP headers are not properly indented! -Results will be unsound. Make sure you have pasted your headers with correct spaces/tabs indentation. - -''') - - - while i + j < len(lines): - l = lines[i + j] - - if l.startswith(' ') or l.startswith('\t') or considerNextLineIndented: - val += l + '\n' - j += 1 - considerNextLineIndented = False - else: - break - - headers.append([num, match.group(1), val.strip()]) - logger.dbg(f'Extracted {num}. {match.group(1)}') - num += 1 - - i += j - 1 - - if len(headers) > 0 and len(headers[-1]) > 1 and headers[-1][1].lower() == 'content-type': - m = re.search(r'boundary="([^"]+)"', headers[-1][2], re.I) - if m: - boundary = m.group(1) - - i += 1 - - self.logger.info(f'Analysing {num} headers...') - return headers - - def parse(self, text): - self.text = text - - self.headers = self.collect(text) - - (tests, testsDecodeAll, testsReturningArray) = self.getAllTests() - - testsConducted = 0 - - for testId, testName, testFunc in tests: - try: - if len(self.testsToRun) > 0 and int(testId) not in self.testsToRun: - self.logger.dbg(f'Skipping test {testId} {testName}') - continue - - testsConducted += 1 - self.logger.dbg(f'Running test {testId}: "{testName}"...') - self.results[testName] = testFunc() - - except Exception as e: - self.logger.err(f'Test {testId}: "{testName}" failed: {e} . Use --debug to show entire stack trace.') - - self.results[testName] = { - 'header' : '', - 'value' : '', - 'analysis' : 'Internal script error. Use --debug to find out more what happened.', - } - - if options['debug']: - raise - - idsOfDecodeAll = [int(x[0]) for x in testsDecodeAll] - - for a in self.testsToRun: - if a in idsOfDecodeAll: - self.decode_all = True - break - - if self.decode_all: - for testId, testName, testFunc in testsDecodeAll: - try: - if len(self.testsToRun) > 0 and int(testId) not in self.testsToRun: - self.logger.dbg(f'Skipping test {testId} {testName}') - continue - - testsConducted += 1 - self.logger.dbg(f'Running test {testId}: "{testName}"...') - self.results[testName] = testFunc() - - except Exception as e: - self.logger.err(f'Test {testId}: "{testName}" failed: {e} . Use --debug to show entire stack trace.') - - self.results[testName] = { - 'header' : '', - 'value' : '', - 'analysis' : 'Internal script error. Use --debug to find out more what happened.', - } - - if options['debug']: - raise - - for testId, testName, testFunc in testsReturningArray: - try: - if len(self.testsToRun) > 0 and int(testId) not in self.testsToRun: - self.logger.dbg(f'Skipping test {testId} {testName}') - continue - - testsConducted += 1 - self.logger.dbg(f'Running test {testId}: "{testName}"...') - outs = testFunc() - - num = 0 - for o in outs: - num += 1 - self.results[testName + ' ' + str(num)] = o - - except Exception as e: - self.logger.err(f'Test {testId}: "{testName}" failed: {e} . Use --debug to show entire stack trace.') - - self.results[testName] = { - 'header' : '', - 'value' : '', - 'analysis' : 'Internal script error. Use --debug to find out more what happened.', - } - - if options['debug']: - raise - - for k in self.results.keys(): - if not self.results[k] or len(self.results[k]) == 0: - continue - - for kk in ['description', 'header', 'value']: - if kk not in list(self.results[k].keys()): - self.results[k][kk] = '' - - self.logger.dbg(f'\n------------------------------------------\nAttempted to process following SMTP headers ({len(SMTPHeadersAnalysis.Handled_Spam_Headers)}):') - - for header in SMTPHeadersAnalysis.Handled_Spam_Headers: - self.logger.dbg(f'\t- {header.capitalize()}') - - self.logger.dbg('\n------------------------------------------\n\n') - - self.logger.dbg(f'Conducted {testsConducted} tests on provided SMTP headers.') - - return {k: v for k, v in self.results.items() if v} - - @staticmethod - def flattenLine(value): - return ' '.join([x.strip() for x in value.split('\n')]) - - @staticmethod - def printable(input_str): - istr = str(input_str) - return all(ord(c) < 127 and c in string.printable for c in istr) - - @staticmethod - def extractDomain(fqdn): - if not fqdn: - return '' - - parts = fqdn.split('.') - return '.'.join(parts[-2:]) - - @staticmethod - def decodeSpamcause(msg): - text = [] - for i in range(0, len(msg), 2): - text.append(SMTPHeadersAnalysis.unrotSpamcause(msg[i: i + 2])) - return str.join('', text) - - @staticmethod - def unrotSpamcause(pair, key=ord('x')): - offset = 0 - for c in 'cdefgh': - if c in pair: - offset = (ord('g') - ord(c)) * 16 - break - return chr(sum(ord(c) for c in pair) - key - offset) - - @staticmethod - def hexdump(data, addr = 0, num = 0): - s = '' - n = 0 - lines = [] - if num == 0: num = len(data) - - if len(data) == 0: - return '' - - for i in range(0, num, 16): - line = '' - line += '%04x | ' % (addr + i) - n += 16 - - for j in range(n-16, n): - if j >= len(data): break - line += '%02x ' % (data[j] & 0xff) - - line += ' ' * (3 * 16 + 7 - len(line)) + ' | ' - - for j in range(n-16, n): - if j >= len(data): break - c = data[j] if not (data[j] < 0x20 or data[j] > 0x7e) else '.' - line += '%c' % c - - lines.append(line) - return '\n'.join(lines) - - def testEmailIntelligence(self): - service = [] - value = self.text - - # - # NOTICE: - # This code below was copied from the following repository: - # https://github.com/nquinlan/Email-Intelligence - # - # and is authored solely by Nick Quinlan (nick@nicholasquinlan.com). - # - - # Amazon SES - if re.search(r'^X-SES-Outgoing:', value, re.I|re.S) or "Amazon SES" in value or "Amazon SES".lower() in value.lower() or "AmazonSES".lower() in value.lower(): - service.append(("Amazon SES", "http://aws.amazon.com/ses/")) - - # BenchmarkEmail.com - if re.search(r'www.benchmarkemail.com', value, re.I|re.S) or "BenchmarkEmail".lower() in value.lower(): - service.append(("BenchmarkEmail", "http://benchmarkemail.com/")) - - # Bronto - if re.search(r'd=bronto.com;', value, re.I|re.S) or "Bronto".lower() in value.lower(): - service.append(("Bronto", "http://bronto.com/")) - - # Campaign Monitor - if re.search(r'^X-Complaints-To: abuse@cmail\d{1,2}\.com', value, re.I|re.S) or "Campaign Monitor".lower() in value.lower() or "CampaignMonitor".lower() in value.lower(): - service.append(("Campaign Monitor", "https://www.campaignmonitor.com")) - - # Constant Contact - if re.search(r'^X-Roving-ID:', value, re.I|re.S) or "Constant Contact".lower() in value.lower() or "ConstantContact".lower() in value.lower(): - service.append(("Constant Contact", "https://www.constantcontact.com")) - - # Dyn - if re.search(r'^X-DynectEmail-Msg-(Key|Hash):', value, re.I|re.S) or "Dyn".lower() in value.lower(): - service.append(("Dyn", "https://dyn.com/")) - - # Eloqua - if re.search(r'^X-elqPod:', value, re.I|re.S) or "Eloqua".lower() in value.lower(): - service.append(("Eloqua", "http://www.eloqua.com/")) - - # Email Vision - if re.search(r'^X-EMV-MemberId:', value, re.I|re.S) or "Emailvision".lower() in value.lower(): - service.append(("Emailvision", "https://www.emailvision.com/")) - - # Emma - if re.search(r'd=e2ma\.net;', value, re.I|re.S) or "Emma".lower() in value.lower(): - service.append(("Emma", "https://myemma.com/")) - - # ExactTarget - if re.search(r'^x-job: \d{3,}_\d{3,}$', value, re.I|re.S) and re.search(r'mta[\d]*\.[\w-\.]+\.[a-z]{2,}', value, re.I|re.S) or "ExactTarget".lower() in value.lower(): - service.append(("ExactTarget", "http://www.exacttarget.com/")) - - # Fishbowl - if re.search(r'^X-Mailer: Fishbowl', value, re.I|re.S) or "Fishbowl".lower() in value.lower(): - service.append(("Fishbowl", "https://www.fishbowl.com/")) - - # Gold Lasso - if re.search(r'^X-Mailer: Eloop Mailer', value, re.I|re.S) or "Gold Lasso".lower() in value.lower() or "GoldLasso".lower() in value.lower(): - service.append(("Gold Lasso", "https://www.goldlasso.com/")) - - # Google App Engine - if re.search(r'^X-Google-Appengine-App-Id:', value, re.I|re.S) or "Google App Engine".lower() in value.lower() or "GoogleApp".lower() in value.lower() or "AppEngine".lower() in value.lower(): - service.append(("Google App Engine", "https://developers.google.com/appengine/docs/python/mail/sendingmail")) - - # iContact - if re.search(r'^X-ICPINFO:', value, re.I|re.S) or "iContact".lower() in value.lower(): - service.append(("iContact", "https://www.icontact.com/")) - - # Listrak - if re.search(r'^Received: from [\w-]+\.listrak\.com', value, re.I|re.S) or "Listrak".lower() in value.lower(): - service.append(("Listrak", "https://www.listrak.com/")) - - # Locaweb - if re.search(r'^x-locaweb-id:', value, re.I|re.S) or "Locaweb".lower() in value.lower(): - service.append(("Locaweb", "https://www.locaweb.com.br/")) - - # Mailchimp - if re.search(r'^X-MC-User:', value, re.I|re.S) or "MailChimp".lower() in value.lower(): - service.append(("MailChimp", "https://mailchimp.com/")) - - # MailerLite - if re.search(r'd=ml.mailersend.com;', value, re.I|re.S) or "MailerLite".lower() in value.lower(): - service.append(("MailerLite", "https://www.mailerlite.com/")) - - # Mailgun - if re.search(r'^X-Mailgun-Sid:', value, re.I|re.S) or re.search(r'X-Mailgun-Variables:', value, re.I|re.S) or "Mailgun".lower() in value.lower(): - service.append(("Mailgun", "https://www.mailgun.com/")) - - # Mailigen - if re.search(r'^X-Mailer: MailiGen', value, re.I|re.S) or "Mailigen".lower() in value.lower(): - service.append(("Mailigen", "http://www.mailigen.com/")) - - # Mailjet - if re.search(r's=mailjet;', value, re.I|re.S) or "Mailjet".lower() in value.lower(): - service.append(("Mailjet", "https://www.mailjet.com/")) - - # Mandrill - if re.search(r'^X-Mandrill-User:', value, re.I|re.S) or "Mandrill".lower() in value.lower(): - service.append(("Mandrill", "https://mandrillapp.com/")) - - # Marketo - if re.search(r'^X-MarketoID:', value, re.I|re.S) or "Marketo".lower() in value.lower(): - service.append(("Marketo", "https://www.marketo.com/")) - - # Message Bus - if re.search(r'^X-Messagebus-Info:', value, re.I|re.S) or "Message Bus".lower() in value.lower() or "MessageBus".lower() in value.lower(): - service.append(("Message Bus", "https://messagebus.com/")) - - # Mixmax - if re.search(r'^X-Mailer: Mixmax', value, re.I|re.S) or "Mixmax".lower() in value.lower(): - service.append(("Mixmax", "https://mixmax.com/")) - - # Postmark - if re.search(r'^X-PM-Message-Id:', value, re.I|re.S) or "Postmark".lower() in value.lower(): - service.append(("Postmark", "https://postmarkapp.com/")) - - # Responsys - if re.search(r'^X-rext:', value, re.I|re.S) or "Responsys".lower() in value.lower(): - service.append(("Responsys", "https://www.responsys.com/")) - - # Sailthru - if re.search(r'^X-Mailer: sailthru.com$', value, re.I|re.S) or "Sailthru".lower() in value.lower(): - service.append(("Sailthru", "https://www.sailthru.com/")) - - # Salesforce - if re.search(r'^X-SFDC-User:', value, re.I|re.S) or "Salesforce".lower() in value.lower(): - service.append(("Salesforce", "https://www.salesforce.com/")) - - # SendGrid - if re.search(r'^X-(SG|SENDGRID)-EID:', value, re.I|re.S) or "SendGrid".lower() in value.lower(): - service.append(("SendGrid", "https://sendgrid.com/")) - - # Silverpop - if re.search(r'^Received: from [\w\.]+\.mkt\d{3,}\.com', value, re.I|re.S): # Not proprietary, but likely only Silverpo or "Silverpop".lower() in value.lower()p - service.append(("Silverpop", "https://www.silverpop.com/")) - - # SMTP.com - if re.search(r'^X-SMTPCOM-Tracking-Number:', value, re.I|re.S) or "SMTP.com".lower() in value.lower(): - service.append(("SMTP.com", "https://smtp.com/")) - - # VerticalResponse - if re.search(r'^X-vrfbldomain:', value, re.I|re.S) and re.search(r'^X-vrpod:', value, re.I|re.S) and re.search(r'^X-vrrpmm:', value, re.I|re.S) or "VerticalResponse".lower() in value.lower(): - service.append(("VerticalResponse", "http://www.verticalresponse.com/")) - - # Yesmail - if re.search(r's=yesmail.?;', value, re.I|re.S) or re.search(r'^Received: from [\w\.\-]+postdirect.com', value, re.I|re.S) or "Yesmail".lower() in value.lower(): - service.append(("Yesmail", "https://www.yesmail.com/")) - - if len(service) == 0: - return [] - - result = f'- Mail contents analysis shown that this e-mail passed through the following third-party Mail providers:\n\n' - - for svc in service: - svcname = self.logger.colored(svc[0], 'green') - result += f'\t- {svcname} - url: {svc[1]}\n' - - return { - 'header': '', - 'value' : '', - 'analysis' : result, - 'description' : '', - } - - - def testSecurityAppliances(self): - result = '' - vals = [x.lower() for x in SMTPHeadersAnalysis.Header_Keywords_That_May_Contain_Spam_Info] - - self.logger.dbg('Spotted clues about security appliances:') - - for a in self.securityAppliances: - parts = a.split(' ') - skip = True - - self.logger.dbg(f'\t- {a}') - - for p in parts: - if p.lower() in vals: - skip = False - break - - if skip: continue - result += f'\t- {a}\n' - - if len(result) == 0: - return [] - - return { - 'header': '', - 'value' : '', - 'analysis' : '- During headers analysis, spotted following clues about Security Appliances:\n\n' + result, - 'description' : '', - } - - def testXProofpointSpamDetails(self): - (num, header, value) = self.getHeader('X-Proofpoint-Spam-Details') - if num == -1: return [] - - result = '- Proofpoint Email Protection Spam details report\n' - self.securityAppliances.add('Proofpoint Email Protection') - return self._parseProofpoint(result, '', num, header, value) - - def _parseProofpoint(self, topic, description, num, header, value): - value = SMTPHeadersAnalysis.flattenLine(value) - parts = value.split(' ') - - result = topic - - for part in parts: - if '=' not in part: - result += f'\t- {part}\n' - else: - (k, v) = part.split('=') - - col = 'yellow' - if k.lower() == 'rule': - if v.lower() == 'notspam': col = 'green' - elif v.lower() == 'spam': col = 'red' - elif 'definitive' in v.lower(): col = 'red' - elif 'malware' in v.lower(): col = 'red' - elif 'phish' in v.lower(): col = 'red' - elif 'quarantine' in v.lower(): col = 'red' - - v = self.logger.colored(v.upper(), col) - - elif k.lower() == 'vendor': - v = self.logger.colored(v, 'green') - - else: - try: - num = float(v) - if num > 0: - v = self.logger.colored(v, 'yellow') - else: - v = self.logger.colored(v, 'green') - - except: - pass - - result += f'\t- {k: <20}: {v}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : description, - } - - def testXProofpointVirusVersion(self): - (num, header, value) = self.getHeader('X-Proofpoint-Virus-Version') - if num == -1: return [] - - result = '- Proofpoint Email Protection Anti-Virus version\n' - self.securityAppliances.add('Proofpoint Email Protection') - return self._parseProofpoint(result, '', num, header, value) - - def testXTMVersion(self): - (num, header, value) = self.getHeader('X-TMASE-Version') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam Engine (TMASE) Version\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - parts = value.split('-') - - if len(parts) > 0: result += f'\t\t- Vendor Product Name: {parts[0]}\n' - if len(parts) > 1: result += f'\t\t- Product Version: {parts[1]}\n' - if len(parts) > 2: result += f'\t\t- Anti-Spam Enginge Version: {parts[2]}\n' - if len(parts) > 3: result += f'\t\t- Spam Pattern Version: {parts[3]}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def _parseThresholdsBasedScore(self, value, thresholds): - score = 0 - try: - score = float(value.strip()) - except: - return '' - - for step in thresholds: - if score >= step[0] and score <= step[1]: - return step[2] - - return '' - - def testXBarracudaSpamScore(self): - (num, header, value) = self.getHeader('X-Barracuda-Spam-Score') - if num == -1: return [] - - result = '- Barracuda Email Security Spam Score\n' - self.securityAppliances.add('Barracuda Email Security') - - thresholds = SMTPHeadersAnalysis.Barracuda_Score_Thresholds - aggressive = False - - if aggressive: - thresholds = SMTPHeadersAnalysis.Barracuda_Aggressive_Score_Thresholds - - score = self._parseThresholdsBasedScore(value, thresholds) - result += f'\t- Score: {value.strip()}' - - if score != '': - result += f' - {score}' - - return { - 'header': header, - 'value' : value, - 'analysis' : result + '\n', - 'description' : '', - } - - def testXBarracudaSpamStatus(self): - (num, header, value) = self.getHeader('X-Barracuda-Spam-Status') - if num == -1: return [] - - result = '- Barracuda Email Security Spam Status (based on SpamAssassin)\n\n' - self.securityAppliances.add('Barracuda Email Security') - - thresholds = SMTPHeadersAnalysis.Barracuda_Score_Thresholds - aggressive = False - - if aggressive: - thresholds = SMTPHeadersAnalysis.Barracuda_Aggressive_Score_Thresholds - - return self._parseSpamAssassinStatus(result, '', num, header, value, thresholds) - - def testXBarracudaSpamReport(self): - (num, header, value) = self.getHeader('X-Barracuda-Spam-Report') - if num == -1: return [] - - result = f'- Barracuda Email Security Spam Report:\n\t- {value.strip()}\n' - self.securityAppliances.add('Barracuda Email Security') - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXBarracudaBayes(self): - (num, header, value) = self.getHeader('X-Barracuda-Bayes') - if num == -1: return [] - - result = f'- Barracuda Email Security Spam Bayesian analysis:\n\t- {value.strip()}\n' - self.securityAppliances.add('Barracuda Email Security') - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXBarracudaStartTime(self): - (num, header, value) = self.getHeader('X-Barracuda-Start-Time') - if num == -1: return [] - - ts = int(value.strip()) - val = datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S') - - result = f'- Barracuda Email Security Start Time: {self.logger.colored(val, "green")} ({ts})\n' - self.securityAppliances.add('Barracuda Email Security') - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMProductVer(self): - (num, header, value) = self.getHeader('X-TM-AS-Product-Ver') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam Engine (TMASE) Version\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - parts = value.split('-') - - if len(parts) > 0: result += f'\t\t- Vendor Product Name: {parts[0]}\n' - if len(parts) > 1: result += f'\t\t- Product Version: {parts[1]}\n' - if len(parts) > 2: result += f'\t\t- Anti-Spam Enginge Version: {parts[2]}\n' - if len(parts) > 3: result += f'\t\t- Spam Pattern Version: {parts[3]}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testAnyOtherIP(self): - outputs = [] - - for (num, header, value) in self.headers: - if header.lower().endswith('-ip'): - - result = f'- Connecting Client IP detected in header {header}:' - outputs.append(self._originatingIPTest(result, '', num, header, value)) - - return outputs - - - def testXTMApprSender(self): - (num, header, value) = self.getHeader('X-TM-AS-User-Approved-Sender') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - - if value.strip().lower() == 'yes': - result += self.logger.colored('\t- system Approved this Sender\n', 'green') - - if value.strip().lower() == 'no': - result += self.logger.colored('\t- system did not Approve this Sender\n', 'red') - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testMimecastImpersonationProtect(self): - (num, header, value) = self.getHeader('X-Mimecast-Impersonation-Protect') - if num == -1: return [] - - result = '- Mimecast mail impersonation report:\n\n' - self.securityAppliances.add('Mimecast') - - value = SMTPHeadersAnalysis.flattenLine(value) - - for line in value.split(';'): - if '=' in line: - (a, b) = line.split('=') - a = a.strip() - b = b.strip() - - if b.lower() == 'false': - b = self.logger.colored(b, 'green') - - elif b.lower() == 'true': - b = self.logger.colored(b, 'red') - a = self.logger.colored(a, 'red') - - if a.lower() == 'policy': - b = self.logger.colored(b, 'magenta') - - result += f'\t- {a}: {b}\n' - else: - result += f'\t- {line}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMBlockSender(self): - (num, header, value) = self.getHeader('X-TM-AS-User-Blocked-Sender') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - - if value.strip().lower() == 'yes': - result += self.logger.colored('\t- system Blocked this Sender\n', 'red') - - if value.strip().lower() == 'no': - result += '\t- system did not Block this Sender\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMASESNAP(self): - (num, header, value) = self.getHeader('X-TMASE-SNAP-Result') - if num == -1: return [] - - result = '- Trend Micro Anti Spam Engine (TMASE) Social Engineering Attack Protection (SNAP) scan result\n\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - - parts = value.strip().split('-') - - if len(parts) > 0: result += f'\t- System Version: {parts[0]}\n' - if len(parts) > 1: result += f'\t- Scan Result: {parts[1]}\n' - if len(parts) > 2: result += f'\t- Scan Aggressive Level: {parts[2]}\n' - if len(parts) > 3: - result += f'\t- Traverse List:' - - if ',' in parts[3]: - num = 0 - for s in parts[3].split(','): - num += 1 - rule, matched = s.split(':') - - if matched == '0': - m = 'not matched' - else: - m = m = self.logger('matched', 'red') - matched = self.logger.red(matched, 'red') - - if num == 1: - result += f' - rule: {rule} - matched: {matched} ({m})\n' - else: - result += f'\t\t\t\t - rule: {rule} - matched: {matched} ({m})\n' - else: - result += f'\t\t- {parts[3]}\n' - - if len(parts) > 4: result += f'\t- Unknown: {parts[4]}\n' - - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMDKIM(self): - (num, header, value) = self.getHeader('X-IMSS-DKIM-White-List') - if num == -1: return [] - - self.securityAppliances.add('Trend Micro InterScan Messaging Security') - - if value.strip().lower() == 'yes': - result = '- Trend Micro InterScan Messaging Security DKIM White Listed this sender\n' - - if value.strip().lower() == 'no': - result = '- Trend Micro InterScan Messaging Security did not DKIM White List this sender\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMResult(self): - (num, header, value) = self.getHeader('X-TM-AS-Result') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam Result\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - return self._parseTMASResult(result, '', num, header, value) - - def testXTMASEResult(self): - (num, header, value) = self.getHeader('X-TMASE-Result') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam Engine (TMASE) Result\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - return self._parseTMASResult(result, '', num, header, value) - - def testXTMScanDetails(self): - (num, header, value) = self.getHeader('X-IMSS-Scan-Details') - if num == -1: return [] - - result = '- Trend Micro InterScan Messaging Security Scan Details\n' - self.securityAppliances.add('Trend Micro InterScan Messaging Security') - return self._parseTMASResult(result, '', num, header, value) - - def _parseTMASResult(self, topicLine, description, num, header, value): - value = value.replace('--', '-=') - parts = value.split('-') - - result = topicLine - - thresh = 0 - if len(parts) > 2: - try: - thresh = float(parts[2]) - except: - pass - - score = 0 - if len(parts) > 1: - score = parts[1] - if parts[1].startswith('='): - score = '-' + score[1:] - - try: - score = float(score) - except: - pass - - col = 'yellow' - if score != 0 and thresh != 0: - if score < thresh: - col = 'green' - - elif score >= thresh: - col = 'red' - - if len(parts) > 0: - val2 = '' - val = parts[0].strip() - - if val.strip().lower() == 'yes': - val = self.logger.colored(val.upper(), col) - - if val.strip().lower() == 'no': - val = self.logger.colored(val.upper(), col) - val2 = ' (SPS filter did not trigger)' - - result += f'\t\t- Is it SPAM?: {val}{val2}\n' - - if len(parts) > 1: - if parts[1].startswith('='): parts[1] = '-' + parts[1][1:] - result += f'\t\t- Trend/Spam Score: {self.logger.colored(parts[1], col)}\n' - - if len(parts) > 2: - result += f'\t\t- Detection Threshold: {parts[2]}\n' - - if len(parts) > 3: - result += f'\t\t- Category : {parts[3]}\n' - - if len(parts) > 4: - result += f'\t\t- Trend Type : {parts[4]}' - - try: - t = int(parts[4]) - if t in SMTPHeadersAnalysis.Trend_Type_AntiSpam.keys(): - result += ' (' + SMTPHeadersAnalysis.Trend_Type_AntiSpam[k] + ')' - except: - pass - - result += '\n' - - return { - 'header': header, - 'value' : value.replace('-=', '--'), - 'analysis' : result, - 'description' : description, - } - - def testXScannedBy(self): - hdrs = ( - 'X-Scanned-By', - 'X-ScannedBy', - 'XScannedBy', - 'XScanned-By', - 'X-Scanned', - 'X-Scan', - 'X-Scan-By', - ) - - for hdr in hdrs: - (num, header, value) = self.getHeader(hdr) - if num == -1: continue - - val = self.logger.colored(value, "yellow") - result = f'- Scanned by: {val}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - return [] - - def testXTMSnapResult(self): - (num, header, value) = self.getHeader('X-TMASE-SNAP-Result') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam Engine (TMASE) SNAP Result\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - result += f'\t- {value}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMXFilter(self): - (num, header, value) = self.getHeader('X-TM-AS-Result-Xfilter') - if num == -1: return [] - - result = '- Trend Micro Anti-Spam XFilter\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - result += f'\t- {value}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testSPFCheck(self): - (num, header, value) = self.getHeader('SPFCheck') - if num == -1: return [] - - result = f'- SPF Check:\n' - for line in value.split(','): - result += f'\t- {line.strip()}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXTMASSMTP(self): - (num, header, value) = self.getHeader('X-TM-AS-SMTP') - if num == -1: return [] - - value = SMTPHeadersAnalysis.flattenLine(value) - result = '- Trend Micro Anti-Spam SMTP servers\n' - self.securityAppliances.add('Trend Micro Anti-Spam') - parts = value.split(' ') - - if len(parts) > 2: - try: - p2 = float(parts[0]) - result += f'\t- Priority: {p2}\n' - - except: - result += f'\t- Priority: {parts[0]}\n' - - result += f'\t- Server: {SMTPHeadersAnalysis.safeBase64Decode(parts[1])}\n' - result += f'\t- Recipient: {SMTPHeadersAnalysis.safeBase64Decode(parts[2])}\n' - - return { - 'header': header, - 'value' : value, - 'analysis' : result, - 'description' : '', - } - - def testXVirusScan(self): - (num, header, value) = self.getHeader('X-Virus-Scanned') - if num == -1: return [] - - result = f'- Message was scanned with an Anti-Virus.' - self.securityAppliances.add('Unknown Anti-Virus') - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXFireEye(self): - (num, header, value) = self.getHeader('X-FireEye') - if num == -1: return [] - - result = f'- Message was scanned with FireEye Email Security Solution. Result is following:\n' - self.securityAppliances.add('FireEye Email Security Solution') - result += f'\t- {self.logger.colored(value, "green")}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXAntiAbuse(self): - result = '' - tmp = '\n' - - SMTPHeadersAnalysis.Handled_Spam_Headers.append('x-antiabuse') - - for num, header, value in self.headers: - if header.lower() != 'x-antiabuse': - continue - - tmp += ' ' + SMTPHeadersAnalysis.flattenLine(value) + '\n' - - if len(tmp) > 5: - result = f''' - - Anti-Abuse message was included in mail headers: - {tmp} -''' - else: - return [] - - return { - 'header' : '-', - 'value': '-', - 'analysis' : result, - 'description' : '', - } - - def testMessageHeaderContainedIP(self): - result = '' - shown = set() - num0 = 0 - tmp = '' - - for num, header, value in self.headers: - if header in shown or header in SMTPHeadersAnalysis.Handled_Spam_Headers: - continue - - match = re.match(r'.{,5}\b([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\b.{,5}', value) - if match: - ipaddr = match.group(1) - - SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) - - num0 += 1 - tmp += f'\t({num0:02}) Header: {self.logger.colored(header, "yellow")} contained an IP address:\n' - - shown.add(header) - - resolved = SMTPHeadersAnalysis.resolveAddress(ipaddr) - - if len(resolved) > 0: - tmp += f'\t Value: {self.logger.colored(ipaddr, "green")} (resolved: {resolved})\n\n' - else: - tmp += f'\t Value: {self.logger.colored(ipaddr, "green")}\n\n' - - if len(tmp) > 0: - result += tmp + '\n' - - if len(result) == 0: - return [] - - return { - 'header' : '-', - 'value': '-', - 'analysis' : result, - 'description' : '', - } - - def testXIronPortRemoteIP(self): - (num, header, value) = self.getHeader('X-IronPort-RemoteIP') - if num == -1: return [] - - result = f'- Cisco IronPort observed following IP of the connecting Client: ' - self.securityAppliances.add('Cisco IronPort') - return self._originatingIPTest(result, '', num, header, value) - - def _originatingIPTest(self, topicLine, description, num, header, value): - result = '' - - if '[' == value[0] and value[-1] == ']': - value = value[1:-1] - - resolved = SMTPHeadersAnalysis.resolveAddress(value) - - result += topicLine - - if len(resolved) > 0: - result += f'\n\t- {self.logger.colored(value, "red")} (resolved: {resolved})\n' - else: - result += f'\n\t- {self.logger.colored(value, "red")} (not resolveable)\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : description, - } - - def testSubjecThreadTopic(self): - (num1, header1, value1) = self.getHeader('Subject') - (num2, header2, value2) = self.getHeader('Thread-Topic') - if num1 == -1 or num2 == -1: return [] - - if value1.lower().strip() == value2.lower().strip(): return [] - - result = f'- Subject and Thread-Topic headers differ! Possibly {self.logger.colored("target changed Subject","red")} to reflect External E-mail!\n' - - v1 = value1 - v2 = value2 - - m1 = re.search(r'\=\?[a-z0-9\-]+\?Q\?', v1, re.I) - if m1: - v1d = emailheader.decode_header(value)[0][0] - if type(v1d) == bytes: - v1d = v1d.decode() - v1 = v1d - - m2 = re.search(r'\=\?[a-z0-9\-]+\?Q\?', v2, re.I) - if m2: - v2d = emailheader.decode_header(value)[0][0] - if type(v2d) == bytes: - v2d = v2d.decode() - v2 = v2d - - result += f'\t- Subject: {self.logger.colored(v1, "green")}\n' - result += f'\t- Thread-Topic: {self.logger.colored(v2, "magenta")}\n' - - return { - 'header' : f'{header1}, {header2}', - 'value': f'\n{header1}:\n\t{value1}\n\n {header2}:\n\t{value2}', - 'analysis' : result, - 'description' : '', - } - - def testXSeaSpam(self): - (num, header, value) = self.getHeader('X-SEA-Spam') - if num == -1: return [] - - result = f'- Sophos Email Appliance Spam report:\n' - self.securityAppliances.add('Sophos Email Appliance (PureMessage)') - report = {} - value = SMTPHeadersAnalysis.flattenLine(value) - - for match in re.finditer(r"(\w+)=(?!')([^,]+)\b,?", value, re.I): - key = match.group(1) - val = match.group(2) - - if not key: key = '' - if not val: val = '' - - if len(key.strip()) == 0: continue - report[key] = val.strip() - - for match in re.finditer(r"(\w+)='([^']+)'", value, re.I): - key = match.group(1) - val = match.group(2) - - if not key: key = '' - if not val: val = '' - - if len(key.strip()) == 0: continue - report[key] = [x.strip() for x in val.strip().split(',') if len(x.strip()) > 0] - - - for key, val in report.items(): - k = self.logger.colored(key, 'cyan') - - if key.lower() in SMTPHeadersAnalysis.SEA_Spam_Fields.keys(): - result += f'\n\t- {k}: {SMTPHeadersAnalysis.SEA_Spam_Fields[key.lower()]}\n' - else: - result += f'\n\t- {k}: \n' - - if key.lower() == 'report': - result = result[:-1] - result += f'. Matched {self.logger.colored(len(val), "yellow")} rules.\n\n' - - for rule in val: - if len(rule.strip() ) == 0: continue - num = 1 - num2 = 0 - - if ' ' in rule: - rulen, num = rule.split(' ') - try: - num2 = float(num) - except: - pass - else: - rulen = rule - - col = 'white' - - if num2 > 0: - col = 'yellow' - - if num2 > 0.5: - col = 'red' - - num = self.logger.colored(num, col) - rulen = self.logger.colored(rulen, col) - - result += f'\t\t- Probability: {num}\tRule: {rulen}\n' - - elif key.lower() == 'gauge': - leng = len(val) - numX = val.lower().count('x') - numI = val.lower().count('i') - others = leng - numX - numI - - probX = (float(numX) / leng) * 100.0 - probI = (float(numI) / leng) * 100.0 - probOthers = (float(others) / leng) * 100.0 - - result += f'\n\t - Value: {self.logger.colored(val, "yellow")}\n' - result += f'\t - Total length: {leng}\n' - result += f'\t - Number of X: {numX} ({probX:.02}%)\n' - result += f'\t - Number of I: {numI} ({probI:.02}%)\n' - result += f'\t - Number of others: {others} ({probOthers:.02}%)\n' - - elif type(val) == list or type(val) == tuple: - result += f'\t Contains {self.logger.colored(len(val), "yellow")} elements.\n' - for rule in val: - if len(rule.strip()) == 0: continue - result += f'\t - {rule}\n' - - else: - result += f'\t {val}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - - def testSpamDiagnosticMetadata(self): - (num, header, value) = self.getHeader('SpamDiagnosticMetadata') - if num == -1: return [] - - result = f'- SpamDiagnosticMetadata: Antispam stamps in Exchange Server 2016.\n' - self.securityAppliances.add('Exchange Server 2016 Anti-Spam') - - if value.strip() in SMTPHeadersAnalysis.Spam_Diagnostics_Metadata.keys(): - result += f' {value}: ' + SMTPHeadersAnalysis.Spam_Diagnostics_Metadata[value.strip()] + '\n' - else: - result += f' {value}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXIronPortSenderGroup(self): - (num, header, value) = self.getHeader('X-IronPort-SenderGroup') - if num == -1: return [] - - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - return self._parseCiscoPolicy('\n- Cisco\'s Email Security Appliance (ESA) applied following Mail Flow policy to this e-mails SenderGroup:\n', '', num, header, value) - - def testXIronPortMailFlowPolicy(self): - (num, header, value) = self.getHeader('X-IronPort-MailFlowPolicy') - if num == -1: return [] - - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - return self._parseCiscoPolicy( - '\n- Cisco\'s Email Security Appliance (ESA) applied following Mail Flow policy to this e-mail:\n', - ''' -A mail flow policy allows you to control or limit the flow of email messages from a sender to the listener during the SMTP conversation. -You control SMTP conversations by defining the following types of parameters in the mail flow policy. - -Src: https://www.cisco.com/c/en/us/support/docs/security/email-security-appliance/118179-configure-esa-00.html -''', - num, header, value) - - def testXPolicy(self): - (num, header, value) = self.getHeader('X-Policy') - if num == -1: return [] - - if value.strip().upper() in SMTPHeadersAnalysis.Cisco_Predefined_MailFlow_Policies.keys(): - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - return self._parseCiscoPolicy('\n- Cisco\'s Email Security Appliance (ESA) applied following Mail Flow policy to this e-mail:\n', '', num, header, value) - - else: - result = '\n- Mail systems applied following policy to this message:\n' - result += f'\n\t- {value}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def _parseCiscoPolicy(self, topicLine, description, num, header, value): - result = '' - - result += '\n' + topicLine - - k = value.strip().upper() - k2 = self.logger.colored(k, "yellow") - - if k in SMTPHeadersAnalysis.Cisco_Predefined_MailFlow_Policies.keys(): - result += f'\t {k2}: ' + SMTPHeadersAnalysis.Cisco_Predefined_MailFlow_Policies[k] + '\n' - else: - result += f'\t {k2}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : description - } - - def testXIronPortReputation(self): - (num, header, value) = self.getHeader('X-IronPort-Reputation') - if num == -1: return [] - - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - topicLine = f'\n\n- Cisco SenderBase Reputation Service result:\n' - return self._parseCiscoSBRS(topicLine, '', num, header, value) - - def testXSBRS(self): - (num, header, value) = self.getHeader('X-SBRS') - if num == -1: return [] - - topicLine = f'\n\n- Cisco SenderBase Reputation Service result (custom header set):\n' - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - return self._parseCiscoSBRS(topicLine, '', num, header, value) - - - def _parseCiscoSBRS(self, topicLine, description, num, header, value): - result = '' - - if not description or len(description) == 0: - description = ''' -The SenderBase Reputation Score (SBRS) is a numeric value assigned to an IP address based on information -from the SenderBase Reputation Service. The SenderBase Reputation Service aggregates data from over 25 -public blocked lists and open proxy lists, and combines this data with global data from SenderBase to assign -a score from -10.0 to +10.0 . - -Src: https://www.cisco.com/c/en/us/td/docs/security/esa/esa11-1/user_guide/b_ESA_Admin_Guide_11_1/b_ESA_Admin_Guide_chapter_0101.pdf -''' - - result += topicLine - - num = 0 - try: - num = float(value.strip()) - - if num < 0: - result += f'\t- Likely {self.logger.colored(f"source of SPAM ({num})", "red")}\n' - - elif num >= 0 and num < 5: - result += f'\t- Likely {self.logger.colored(f"neutral ({num})", "yellow")}\n' - - elif num > 5: - result += f'\t- Likely {self.logger.colored(f"trustworthy sender ({num})", "green")}\n' - - except: - result = f'\t- {value} (could not rate that score!)\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : description, - } - - def testXIronPortAV(self): - (num, header, value) = self.getHeader('X-IronPort-AV') - if num == -1: return [] - - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - result = f'- Cisco IronPort Anti-Virus interface.\n' - value = SMTPHeadersAnalysis.flattenLine(value) - - parsed = {} - for a in value.split(';'): - k, v = a.split('=') - k = k.strip() - v = v.strip() - - if v[0] == '"' and v[-1] == '"': - v = v[1:-1].replace(' ', '') - - parsed[k] = v - - for k, v in parsed.items(): - result += f'\n\t- ' + SMTPHeadersAnalysis.IronPort_AV[k][0] + ':\n' - elem = SMTPHeadersAnalysis.IronPort_AV[k][1] - - if k == 'i': - vs = v.split(',') - for i in range(len(elem)): - result += f'\t\t- {elem[i]}:\t{vs[i]}\n' - - elif k == 'E': - v0 = self.logger.colored(v, 'red') - result += f'\t\t- {v0}\n' - self.securityAppliances.add(f'{v} AV') - - elif k == 'e': - vs = v.split("'") - err = 'error' - if vs[1] in elem.keys(): - err = elem[vs[1]] - - result += f'\t\t- {err}: {vs[0]}\n' - - elif k == 'v': - result += f'\t\t- {v}\n' - - elif k == 'd': - result += f'\t\t- {v}\n' - - elif k == 'a': - if ':' not in v: - result += f'\t\t- {v}\n' - continue - - pos = 0 - vs = v.split(':') - - result += f'\t\t- {vs[0]}\n\n' - - _map = SMTPHeadersAnalysis.IronPort_AV[k][1]['_map'] - action = _map[':'] - - result += f'\t\t- {action} section:\n' - - while pos < len(vs[1]): - c = vs[1][pos] - - if c in _map.keys(): - action = _map[c] - result += f'\n\t\t- {action} section:\n' - pos += 1 - - if action == 'time': - ts = vs[1][pos:] - - ts2 = '' - try: - ts2 = datetime.utcfromtimestamp(int(ts)).strftime('%Y-%m-%d %H:%M:%S') - except: - pass - - result += f'\t\t\t\t{ts}, {ts2}\n' - break - - continue - - if c in SMTPHeadersAnalysis.IronPort_AV[k][1][action].keys(): - h = SMTPHeadersAnalysis.IronPort_AV[k][1][action][c] - result += f'\t\t\t- {c}: {h}\n' - else: - result += f'\t\t\t- {c}\n' - - pos += 1 - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXIronPortSpamFiltered(self): - (num, header, value) = self.getHeader('X-IronPort-Anti-Spam-Filtered') - if num == -1: return [] - - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - if value.strip().strip() == 'true': - result = f'- Cisco IronPort Anti-Spam rules {self.logger.colored("marked this message SPAM", "red")}.' - else: - result = f'- Cisco IronPort Anti-Spam rules considered this message CLEAN.' - - result += f' Value: {value}' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXIronPortSpamResult(self): - (num, header, value) = self.getHeader('X-IronPort-Anti-Spam-Result') - if num == -1: return [] - - self.securityAppliances.add('Cisco IronPort / Email Security Appliance (ESA)') - if self.decode_all: - dumped = SMTPHeadersAnalysis.hexdump(SMTPHeadersAnalysis.safeBase64Decode(value)) - - result = f'- Cisco IronPort Anti-Spam result encrypted blob:\n\n' - result += dumped + '\n' - - else: - result = f'- Cisco IronPort Anti-Spam result encrypted blob. Use --decode-all to print its hexdump.' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXSpamCheckerVersion(self): - (num, header, value) = self.getHeader('X-Spam-Checker-Version') - if num == -1: return [] - - self.securityAppliances.add('SpamAssassin') - result = f'- SpamAssassin version.' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testOvhSpamScore(self): - (num, header, value) = self.getHeader('X-VR-SPAMSCORE') - if num == -1: return [] - - result = f'- OVH considered this message as SPAM and attached following Spam ' - self.securityAppliances.add('OVH Anti-Spam') - value = SMTPHeadersAnalysis.flattenLine(value).replace(' ', '').replace('\t', '') - result += f'Score: {self.logger.colored(value.strip(), "red")}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testOvhSpamReason(self): - (num, header, value) = self.getHeader('X-Ovh-Spam-Reason') - if num == -1: return [] - - self.securityAppliances.add('OVH Anti-Spam') - result = self.logger.colored(f'- OVH considered this message as SPAM', 'red') + ' and attached following information:\n' - value = SMTPHeadersAnalysis.flattenLine(value).replace(' ', '').replace('\t', '') - tmp = '' - - for part in value.split(';'): - part = part.strip() - tmp += f'\t- {part}\n' - - result += tmp + '\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testSpamCause(self): - (num, header, value) = self.getHeader('X-VR-SPAMCAUSE') - if num == -1: return [] - - result = '' - self.securityAppliances.add('OVH Anti-Spam') - value = SMTPHeadersAnalysis.flattenLine(value).replace(' ', '').replace('\t', '') - - decoded = SMTPHeadersAnalysis.decodeSpamcause(value) - - if SMTPHeadersAnalysis.printable(decoded): - result += f'- SPAMCAUSE contains encoded information about spam reasons:\n' - tmp = '' - - for part in decoded.split(';'): - part = part.strip() - tmp += f'\t- {part}\n' - - result += tmp + '\n' - - if len(result) == 0: - return [] - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testMSFBL(self): - (num, header, value) = self.getHeader('X-MSFBL') - if num == -1: return [] - - parts = value.split('|') - result = '' - - for p in parts: - if p.startswith('eyJ'): - decoded = base64.b64decode(p) - if SMTPHeadersAnalysis.printable(decoded): - result += f'\t- Headers contained Feedback Loop object used by marketing systems to offer ISPs way to notify the sender that recipient marked that e-mail as Junk/Spam.\n' - result += '\n' + json.dumps(json.loads(decoded), indent=4) + '\n' - - if len(result) == 0: - return [] - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testInterestingHeaders(self): - return self._testListRelatedHeaders( - 'Other Interesting SMTP headers that were not processed', - SMTPHeadersAnalysis.Interesting_Headers - ) - - def testSpamRelatedHeaders(self): - return self._testListRelatedHeaders( - 'Other Spam related SMTP headers that were not processed', - SMTPHeadersAnalysis.Header_Keywords_That_May_Contain_Spam_Info - ) - - def testSpamAssassinSpamAlikeLevels(self): - result = '' - tmp = '' - num0 = 0 - headers = [] - values = [] - - shown = set() - handled = [x.lower() for x in SMTPHeadersAnalysis.Handled_Spam_Headers] - - for num, header, value in self.headers: - value = SMTPHeadersAnalysis.flattenLine(value) - - if header in shown or header in handled: - continue - - if re.match(r'\s*\*{1,6}\s*', value): - num0 += 1 - - out = self._parseAsteriskRiskScore('', '', num, header, value) - headers.append(header) - values.append(value) - SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) - - tmp += f'\t({num0:02}) {self.logger.colored("Header", "magenta")}: {header}\n' - tmp += out['analysis'] - shown.add(header) - - if len(tmp) > 0: - self.securityAppliances.add('SpamAssassin alike') - result = '\n- Found SpamAssassin like headers that might indicate Spam Risk score:\n' - result += tmp + '\n' - - if len(result) == 0: - return [] - - if len(headers) > 1: headers[0] = '\t' + headers[0] - if len(values) > 1: values[0] = '\t' + values[0] - - return { - 'header' : '\n\t'.join(headers), - 'value': '\n\t'.join(values), - 'analysis' : result, - 'description' : '', - } - - def _testListRelatedHeaders(self, msg, listOfValues): - result = '' - tmp = '' - num0 = 0 - shown = set() - - handled = [x.lower() for x in SMTPHeadersAnalysis.Handled_Spam_Headers] - - for num, header, value in self.headers: - value = SMTPHeadersAnalysis.flattenLine(value) - - if header in shown or header.lower() in handled: - continue - - for dodgy in listOfValues: - if header in shown: - break - - if dodgy in header.lower() and header.lower(): - num0 += 1 - hhh = re.sub(r'(' + re.escape(dodgy) + r')', self.logger.colored(r'\1', 'red'), header, flags=re.I) - - tmp += f'\t({num0:02}) {self.logger.colored("Header", "magenta")}: {hhh}\n' - tmp += f'\t Keyword: {dodgy}\n' - tmp += f'\t Value: {value[:120]}\n\n' - shown.add(header) - break - - elif dodgy in value.lower() and header.lower(): - num0 += 1 - hhh = header - tmp += f'\t({num0:02}) Header: {hhh}\n' - - pos = value.lower().find(dodgy) - ctx = re.sub(r'(' + re.escape(dodgy) + r')', self.logger.colored(r'\1', 'red'), value, flags=re.I) - - if len(ctx) > 1024: - a = pos-40 - b = -10 + pos + len(dodgy) + 30 - - if a < 0: a = 0 - if b > len(ctx): b = len(ctx) - - ctx = value[a:b] - - ctx = ctx.strip() - - tmp += f'\t Keyword: {dodgy}\n' - tmp += f'\t {self.logger.colored("Value", "magenta")}:\n\n{ctx}\n\n' - shown.add(header) - break - - if len(tmp) > 0: - result = f'- {msg}:\n\n' - result += tmp + '\n' - - if len(result) == 0: - return [] - - return { - 'header' : '-', - 'value': '-', - 'analysis' : result, - 'description' : '', - } - - def testSpamAssassinSpamStatus(self): - (num, header, value) = self.getHeader('X-Spam-Status') - if num == -1: return [] - - self.securityAppliances.add('SpamAssassin') - result = '- SpamAssassin spam report\n\n' - return self._parseSpamAssassinStatus(result, '', num, header, value, SMTPHeadersAnalysis.Barracuda_Score_Thresholds) - - def _parseSpamAssassinStatus(self, topic, description, num, header, value, thresholds): - parsed = {} - result = topic - col = 'green' - _result = value.strip().split(',')[0] - parsed['_result'] = _result - - if parsed['_result'].lower() == 'yes': - col = 'red' - - parsed['_result'] = self.logger.colored(value.strip().split(',')[0].upper(), col) - - pos = len(_result)+2 - extranum = 0 - stop = False - - while pos < len(value): - pose = value.find('=', pos) - if pose == -1: break - - k = value[pos:pose] - - pos2 = len(k) - 1 - while pos2 >= 0: - if k[pos2] == ' ': - parsed[f'extra{extranum}'] = k[:pos2] - k = k[pos2+1:] - extranum += 1 - break - pos2 -= 1 - - l = len(k) - len(k.lstrip()) - if l > 0: - k = k.strip() - pos += l - - if k == 'tests': - v0 = value[pose+1:].replace('\t', ' ').replace('\n', ' ') - m = re.search(r'\s+([a-z_]+\=)', v0) - - if m: - pos0 = value.find(m.group(1), pose+1) - v = value[pose+1:pos0].replace(' ', '').replace('\n', '').split(',') - pos = pos0 - else: - v = v0.replace(' ', '').replace('\n', '').split(',') - stop = True - else: - sp = value.find(' ', pose) - if sp == -1: break - - v = value[pose+1:sp] - pos = sp + 1 - - parsed[k] = v - if stop: - break - - keys = [x.lower() for x in parsed.keys()] - - if 'tag_level' in keys: - level = float(parsed[list(parsed.keys())[keys.index('tag_level')]]) - thresholds[0][1] = level - 0.01 - thresholds[1][0] = level - - if 'quarantine_level' in keys: - level = float(parsed[list(parsed.keys())[keys.index('quarantine_level')]]) - thresholds[1][1] = level - 0.01 - thresholds[2][0] = level - - if 'kill_level' in keys: - level = float(parsed[list(parsed.keys())[keys.index('kill_level')]]) - thresholds[2][1] = level - 0.01 - thresholds[3][0] = level - - for k, v in parsed.items(): - if k in SMTPHeadersAnalysis.SpamAssassin_Spam_Status[1].keys(): - k0 = self.logger.colored(k, 'magenta') - result += f'\t- {k0}: ' + SMTPHeadersAnalysis.SpamAssassin_Spam_Status[1][k] + '\n' - - else: - k0 = self.logger.colored(k, 'magenta') - result += f'\t- {k0}: \n' - - if k.lower() == 'score': - score = self._parseThresholdsBasedScore(v, thresholds) - if score != '': - v += f' - {score}' - - if type(v) == str: - result += f'\t\t- {v}\n' - else: - result += f'\t\t- elements {len(v)}:\n' - for a in v: - result += f'\t\t\t- {a}\n' - - result += '\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : description, - } - - def testDomainImpersonation(self): - (num, header, value) = self.getHeader('From') - if num == -1: return [] - - result = '' - m = re.search(r'<([^<@\s]+)@([^\s]+)>', value) - domain = '' - - if m and len(self.received_path) < 3: - return [] - - username = m.group(1) - domain = m.group(2) - email = f'{username}@{domain}' - - firstHop = self.received_path[1] - - mailDomainAddr = '' - revMailDomain = '' - revFirstSenderDomain = firstHop['host2'] - firstSenderAddr = '' - - try: - mailDomainAddr = socket.gethostbyname(domain) - revMailDomain = socket.gethostbyaddr(mailDomainAddr)[0] - - if(len(firstHop['ip'])) > 0 and len(revFirstSenderDomain) == 0: - revFirstSenderDomain = socket.gethostbyaddr(firstHop['ip'])[0] - - if(len(firstHop['host'])) > 0: - firstSenderAddr = socket.gethostbyname(firstHop['host']) - if len(revFirstSenderDomain) == 0: - revFirstSenderDomain = socket.gethostbyaddr(firstSenderAddr)[0] - except: - pass - - senderDomain = SMTPHeadersAnalysis.extractDomain(revMailDomain) - firstHopDomain1 = SMTPHeadersAnalysis.extractDomain(revFirstSenderDomain) - - if len(senderDomain) == 0: senderDomain = domain - if len(firstHopDomain1) == 0: firstHopDomain1 = firstHop["host"] - - result += f'\t- Mail From: <{email}>\n\n' - result += f'\t- Mail Domain: {domain}\n' - result += f'\t --> resolves to: {mailDomainAddr}\n' - result += f'\t --> reverse-DNS resolves to: {revMailDomain}\n' - result += f'\t (sender\'s domain: {self.logger.colored(senderDomain, "cyan")})\n\n' - - result += f'\t- First Hop: {firstHop["host"]} ({firstHop["ip"]})\n' - result += f'\t --> resolves to: {firstSenderAddr}\n' - result += f'\t --> reverse-DNS resolves to: {revFirstSenderDomain}\n' - result += f'\t (first hop\'s domain: {self.logger.colored(firstHopDomain1, "cyan")})\n\n' - - if firstHopDomain1.lower() != senderDomain.lower(): - response = None - try: - if domain.endswith('.'): domain = domain[:-1] - response = dns.resolver.resolve(domain, 'TXT') - - except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer) as e: - response = [] - - spf = False - - for answer in response: - txt = str(answer) - if 'v=spf' in txt: - result += f'- Domain SPF: {txt[:64]}\n' - - for _domain in re.findall(r'([a-z0-9_\.-]+\.[a-z]{2,})', txt): - _domain1 = SMTPHeadersAnalysis.extractDomain(_domain) - - if _domain1.lower() == firstHopDomain1: - result += self.logger.colored(f'\n\t- [+] First Hop ({firstHopDomain1}) is authorized to send e-mails on behalf of ({domain}) due to SPF records.\n', 'yellow') - result += '\t- So I\'m not sure if there was Domain Impersonation or not, but my best guess is negative.\n' - spf = True - break - - if spf: - break - - if not spf: - result += self.logger.colored('\n- WARNING! Potential Domain Impersonation!\n', 'red') - result += f'\t- Mail\'s domain should resolve to: \t{self.logger.colored(senderDomain, "green")}\n' - result += f'\t- But instead first hop resolved to:\t{self.logger.colored(firstHopDomain1, "red")}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testSpamAssassinSpamFlag(self): - (num, header, value) = self.getHeader('X-Spam-Flag') - if num == -1: return [] - - self.securityAppliances.add('SpamAssassin') - - if value.strip().lower() == 'yes': - result = self.logger.colored(f'- SpamAssassin marked this message as SPAM:\n', 'red') - result += f'\t- ' + self.logger.colored(value, 'red') + '\n' - else: - result = self.logger.colored(f'- SpamAssassin did not mark this message as spam:\n', 'green') - result += f'\t- ' + self.logger.colored(value, 'green') + '\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def _parseAsteriskRiskScore(self, topicLine, description, num, header, value): - desc = '' - - result = topicLine - value = value.strip() - val = self.logger.colored(value, 'yellow') - - if len(value) <= 6: - if value in SMTPHeadersAnalysis.Aterisk_Risk_Score.keys(): - desc = f' ({SMTPHeadersAnalysis.Aterisk_Risk_Score[value]})' - - a = len(value) - b = 6 - result += f'\t- ({a}/{b}) {val} {desc}\n\n' - - else: - result += f'\t- {val}\n\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : description, - } - - def testSpamAssassinSpamLevel(self): - (num, header, value) = self.getHeader('X-Spam-Level') - if num == -1: return [] - self.securityAppliances.add('SpamAssassin') - return self._parseAsteriskRiskScore('- SpamAssassin assigned following spam level to this message:\n', '', num, header, value) - - def testSpamAssassinSpamReport(self): - (num, header, value) = self.getHeader('X-Spam-Report') - if num == -1: return [] - - self.securityAppliances.add('SpamAssassin') - if len(value.strip()) > 0: - result = f'- SpamAssassin assigned following spam report to this message:\n' - tmp = '' - - for line in value.split('\n'): - if line.strip().startswith('* '): - line = line.strip()[2:] - result += f'- {line}\n' - - result += tmp + '\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - return [] - - def testATPMessageProperties(self): - (num, header, value) = self.getHeader('X-MS-Exchange-AtpMessageProperties') - if num == -1: return [] - - props = value.split('|') - self.securityAppliances.add('MS Defender Advanced Threat Protection') - result = '- MS Defender Advanced Threat Protection enabled following protections on this message:\n' - - for prop in props: - if prop in SMTPHeadersAnalysis.ATP_Message_Properties.keys(): - result += f'\t- ' + self.logger.colored(SMTPHeadersAnalysis.ATP_Message_Properties[prop], 'magenta') + '\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXAmpResult(self): - (num, header, value) = self.getHeader('X-Amp-Result') - if num == -1: return [] - - self.securityAppliances.add('Cisco Advanced Malware Protection (AMP)') - result = '- Cisco Meraki Advanced Malware Protection (AMP) sandbox marked this message as:\n' - val = value.strip() - k = value.strip().upper() - - if k in SMTPHeadersAnalysis.AMP_Results.keys(): - val = f'\t- {k}: {SMTPHeadersAnalysis.AMP_Results[k]}\n' - else: - result += f'\t- {val}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXIPSpamVerdict(self): - (num, header, value) = self.getHeader('X-IP-Spam-Verdict') - if num == -1: return [] - - self.securityAppliances.add('SpamAssassin') - result = '- An old SpamAssassin SPAM verdict header:\n' - - col = 'cyan' - if 'spam' in value.lower(): - col = "red" - - result += '\t- ' + self.logger.colored(value.strip(), col) - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def parseReceived(self, received): - obj = { - 'host' : '', - 'host2' : '', - 'ip' : '', - 'timestamp' : '', - 'ver' : '', - 'with' : '', - 'extra' : [], - } - - keys = ( - 'from', - 'by', - 'via', - 'with', - 'id', - 'for', - ) - - found = set() - - parsed = {} - - pos = 0 - lastkey = '' - posOfKey = 0 - extrapos = 0 - - if not received.lower().strip().startswith('from'): - received = 'from ' + received - - paren = 0 - while pos < len(received): - keynow = '' - - if received[pos] == '(': - paren += 1 - pos += 1 - continue - - elif received[pos] == ')': - paren -= 1 - pos += 1 - continue - - if paren > 0 or received[pos] in string.whitespace: - pos += 1 - continue - - for key in keys: - if key in found: continue - tmp = False - if pos == 0: tmp = True - else: tmp = (received[pos-1] in string.whitespace) - - if received[pos:].lower().startswith(key + ' ') and tmp: - if lastkey != '': - parsed[lastkey] = received[posOfKey+len(lastkey)+1:pos].strip() - - lastkey = keynow = key - posOfKey = pos - found.add(key) - pos += len(key) - break - - pos += 1 - - if lastkey not in parsed.keys(): - parsed[lastkey] = received[posOfKey+len(lastkey)+1:].strip() - - if ';' in parsed[lastkey]: - pos = parsed[lastkey].find(';') - parsed[lastkey] = parsed[lastkey][:pos] - - obj['parsed'] = parsed - - if 'from' not in parsed.keys(): - return {} - - obj['host'] = '' - obj['ip'] = '' - obj['host2'] = '' - - match = re.search( - r'(?P[^\s]+)\s+(?:\((?P[^\s]+)(?:\s*\[(?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\])?\))?', - parsed['from'], - re.I - ) - - if match: - obj['host'] = match.group('host') - obj['ip'] = match.group('ip') - obj['host2'] = match.group('host2') - - if not obj['ip']: obj['ip'] = '' - if not obj['host']: obj['host'] = '' - if not obj['host2']: obj['host2'] = '' - - if obj['host'][0] == '[' and obj['host'][-1] == ']': - obj['ip'] = obj['host'][1:-1] - obj['host'] = '' - - obj['host2'] = obj['host2'].lower().replace('ehlo=', 'helo=') - - if 'helo=' in obj['host2'].lower(): - obj['host'] = obj['host2'][obj['host2'].lower().find('helo=')+5:] - obj['host2'] = '' - - if obj['host'] == '' and obj['ip'] != '': - try: - res = socket.gethostbyaddr(obj['ip']) - if len(res) > 0: - obj['host'] = res[0] - except: - pass - - if len(obj['host2']) > 0: - match = re.match(r'\[?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]?', obj['host2']) - if obj['ip'] == None or len(obj['ip']) == 0 and match: - obj['ip'] = match.group(1) - obj['host2'] = '' - - if len(obj['host2']) == 0: - if obj['ip'] != None and len(obj['ip']) > 0: - try: - res = socket.gethostbyaddr(obj['ip']) - if len(res) > 0: - obj['host2'] = res[0] - except: - obj['host2'] = self.logger.colored('NXDomain', 'red') - - if extrapos == 0: - a = received.find(obj['host']) + len(obj['host']) - b = received.find(obj['host2']) + len(obj['host2']) - c = received.find(obj['ip']) + len(obj['ip']) - - extrapos = max(a, b, c) - else: - return {} - - if 'id' in parsed.keys(): - ver = parsed['id'].strip() - obj['ver'] = ver - - pos = received.find(';') - if pos != -1: - ts = received[pos+1:].strip() - obj['timestamp'] = str(parser.parse(ts).astimezone(tzutc())) - - for m in re.finditer(r'(? 0: - vers = SMTPHeadersAnalysis.parseExchangeVersion(obj['ver']) - if vers != None: - obj['ver'] = self.logger.colored(str(vers), 'magenta') - - if obj and (obj['ip'] == None or len(obj['ip']) == 0): - if obj['host'] != None and len(obj['host']) > 0: - try: - obj['ip'] = socket.gethostbyname(obj['host']) - except: - pass - - if obj['ip'] != None and len(obj['ip']) > 0: - match = re.match(r'(?P[^\s]+)\.?\s+\[(?P[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\]', obj['ip'], re.I) - match2 = re.search(r'\[(?P[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\]', obj['ip'], re.I) - - if match: - obj['host'] = match.group('host') - obj['ip'] = match.group('ip') - - elif match2: - obj['ip'] = match2.group(1) - - if len(obj) > 0: - path.append(obj) - - if n2 != -1: - path.append({ - 'host' : self.logger.colored(v2, 'green'), - 'host2' : '', - 'ip' : '', - 'timestamp' : None, - 'ver' : '', - 'parsed' : {}, - 'extra' : [], - }) - - result = '- List of server hops used to deliver message:\n\n' - iindent = ' ' - indent = ' ' - num = 0 - - for i in range(len(path)): - elem = path[i] - - if len(elem) < 2: - continue - - num += 1 - s = '-->' - if i > 0: - s = '|_>' - - if num == 2 or n1 == -1: - result += iindent + indent * (num+1) + f'{s} ({num}) {self.logger.colored(elem["host"], "green")}' - else: - result += iindent + indent * (num+1) + f'{s} ({num}) {self.logger.colored(elem["host"], "yellow")}' - - if elem['ip'] != None and len(elem['ip']) > 0: - if elem['ip'][0] == '[' and elem['ip'][-1] == ']': - elem['ip'] = elem['ip'][1:-1] - - if num == 2: - result += f' ({self.logger.colored(elem["ip"], "green")})\n' - else: - result += f' ({self.logger.colored(elem["ip"], "yellow")})\n' - else: - result += '\n' - - if len(elem['host2']) > 0: - if elem['host2'].endswith('.'): - elem['host2'] = self.logger.colored(elem['host2'][:-1], 'yellow') - - if elem['host2'] != elem['host'] and elem['host2'] != elem['ip']: - #result += f' (rev: {self.logger.colored(elem["host2"], "yellow")})' - result += iindent + indent * (num+3) + 'rev-DNS: ' + self.logger.colored(elem["host2"], "yellow") + '\n' - - if elem['timestamp'] != None: - result += iindent + indent * (num+3) + 'time: ' + elem['timestamp'] + '\n' - - if len(elem['ver']) > 0: - result += iindent + indent * (num+3) + 'id: ' + elem['ver'] + '\n' - - for kk, vv in elem['parsed'].items(): - vv = str(vv) - if len(vv.strip()) == 0: continue - - if kk.lower() not in ['ip', 'host', 'host2', 'id', 'timestamp', 'parsed', 'extra', '_raw', 'from', 'time']: - n = 8 - len(kk) - if n < 0: n = 0 - vv2 = vv.replace('<', '').replace('>', '') - if kk == 'for' and (vv2 == v1 or vv2 == v2): - continue - - vv = self.colorizeKeywords(vv) - result += iindent + indent * (num+3) + kk + ': ' + ' ' * (n) + vv + '\n' - - if 'extra' in elem.keys() and len(elem['extra']) > 0: - result += iindent + indent * (num+3) + 'extra: \n' - for vv in elem['extra']: - vv0 = self.colorizeKeywords(vv) - result += iindent + indent * (num+4) + '- ' + vv0 + '\n' - - result += '\n' - - self.received_path = path - - if 1 not in self.testsToRun: - return [] - - return { - 'header' : 'Received', - 'value': '...', - 'analysis' : result, - 'description' : '', - } - - def testAntispamReportCFA(self): - (num, header, value) = self.getHeader('X-Exchange-Antispam-Report-CFA-Test') - if num == -1: return [] - - obj = { - 'header' : header, - 'value' : value, - 'analysis' : '', - 'description' : '', - } - - result = '' - - obj1 = self._parseBulk(num, header, value) - result += obj1['analysis'] - - obj2 = self._parseAntiSpamReport(num, header, value) - result += obj2['analysis'] - - self.securityAppliances.add('MS ForeFront Anti-Spam') - - obj['analysis'] = result - return obj - - def testMicrosoftAntiSpam(self): - (num, header, value) = self.getHeader('X-Microsoft-Antispam') - if num == -1: return [] - - self.securityAppliances.add('MS ForeFront Anti-Spam') - return self._parseBulk(num, header, value) - - def testForefrontAntiSCL(self): - (num, header, value) = self.getHeader('X-MS-Exchange-Organization-SCL') - if num == -1: return [] - - tmp = self._parseSCLBased(value.strip(), 'SCL', 'Spam Confidence Level', 'spam', SMTPHeadersAnalysis.ForeFront_Spam_Confidence_Levels) - - if len(tmp) == 0: - return [] - - result = tmp + '\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def _parseSCLBased(self, score, key, topic, listname, listelems): - addscl = False - tmpfoo = '' - result = '' - - v = (topic, listname, listelems) - - k = key - addscl = True - scl = int(score) - k0 = self.logger.colored(k, 'magenta') - tmpfoo += f'- {k0}: {v[0]}: ' + str(scl) + '\n' - - levels = list(v[2].keys()) - levels.sort() - - if scl in levels: - s = v[2][scl] - f = self.logger.colored(f'Not {v[1]}', 'green') - if s[0]: - f = self.logger.colored(v[1].upper(), 'red') - - tmpfoo += f'\t- {f}: {s[1]}\n' - - else: - for i in range(len(levels)): - if scl <= levels[i] and i > 0: - s = v[2][levels[i-1]] - f = self.logger.colored(f'Not {v[1]}', 'green') - if s[0]: - f = self.logger.colored(v[1].upper(), 'red') - - tmpfoo += f'\t- {f}: {s[1]}\n' - break - elif scl <= levels[0]: - s = v[2][levels[0]] - f = self.logger.colored(f'Not {v[1]}', 'green') - if s[0]: - f = self.logger.colored(v[1].upper(), 'red') - - tmpfoo += f'\t- {f}: {s[1]}\n' - break - - if addscl: - result += tmpfoo - - return result - - def _parseBulk(self, num, header, value): - parsed = {} - result = '' - - for entry in value.split(';'): - if(len(entry.strip()) == 0): continue - k, v = entry.strip().split(':') - parsed[k] = v - - if 'BCL' in parsed.keys(): - scl = int(parsed['BCL']) - tmp = '' - lvl = self.logger.colored(str(scl), 'green') - if scl > 0: - lvl = self.logger.colored(str(scl), 'red') - - tmp += f'- {self.logger.colored("BCL", "magenta")}: BULK Confidence Level: ' + lvl + '\n' - - levels = list(SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels.keys()) - levels.sort() - - if scl in levels: - tmp += '\t- ' + SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels[scl] + '\n' - - else: - for i in range(len(levels)): - if scl <= levels[i] and i > 0: - tmp += '\t' + SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels[levels[i-1]] + '\n' - break - elif scl <= levels[0]: - tmp += '\t' + SMTPHeadersAnalysis.ForeFront_Bulk_Confidence_Levels[levels[0]] + '\n' - break - - result += tmp - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testForefrontAntiSpamReport(self): - (num, header, value) = self.getHeader('X-Forefront-Antispam-Report') - if num == -1: return [] - - self.securityAppliances.add('MS ForeFront Anti-Spam') - return self._parseAntiSpamReport(num, header, value) - - def testForefrontAntiSpamReportUntrusted(self): - (num, header, value) = self.getHeader('X-Forefront-Antispam-Report-Untrusted') - if num == -1: return [] - - self.securityAppliances.add('MS ForeFront Anti-Spam') - return self._parseAntiSpamReport(num, header, value) - - def testForefrontAntiSpamUntrusted(self): - (num, header, value) = self.getHeader('X-Microsoft-Antispam-Untrusted') - if num == -1: return [] - - self.securityAppliances.add('MS ForeFront Anti-Spam') - return self._parseAntiSpamReport(num, header, value) - - def _parseAntiSpamReport(self, num, header, value): - parsed = {} - result = '- Microsoft Office365/Exchange ForeFront Anti-Spam report\n\n' - - for entry in value.split(';'): - if len(entry.strip()) == 0: continue - k, v = entry.split(':') - if k not in parsed.keys(): - parsed[k] = v - - if 'CIP' in parsed.keys(): - res = '' - if self.resolve: - resolved = SMTPHeadersAnalysis.resolveAddress(parsed['CIP']) - - result += f'- {self.logger.colored("CIP", "magenta")}: Connecting IP address: {parsed["CIP"]} (resolved: {resolved})\n\n' - else: - result += f'- {self.logger.colored("CIP", "magenta")}: Connecting IP address: {parsed["CIP"]}\n\n' - - for k, v in parsed.items(): - elem = None - - if k.upper() in SMTPHeadersAnalysis.Forefront_Antispam_Report.keys(): - elem = SMTPHeadersAnalysis.Forefront_Antispam_Report[k.upper()] - - elif k in SMTPHeadersAnalysis.Forefront_Antispam_Report.keys(): - elem = SMTPHeadersAnalysis.Forefront_Antispam_Report[k] - - if elem: - vals = v.split(',') - found = False - k0 = self.logger.colored(k, 'magenta') - tmp = f'- {k0}: ' + elem[0] + '\n' - - if type(elem[1]) == dict: - for va in vals: - if va in elem[1].keys(): - found = True - tmp += f'\t- {va}: {elem[1][va]}\n' - - if not found and len(v.strip()) > 0: - tmp += f'\t- {v}\n' - found = True - - elif len(v) > 0: - found = True - tmp += f'\t- {v}\n' - - if found: - result += tmp + '\n' - - usedRE = False - for k in ['SFS', 'RULEID', 'ENG']: - if k in parsed.keys(): - res = '' - rules = [x.replace('(', '') for x in parsed[k].split(')')] - - if len(rules) == 1 and len(rules[0].strip()) == 0: - rules = [] - - k0 = self.logger.colored(k, 'magenta') - tmp = f'- Message matched {self.logger.colored(str(len(rules)), "yellow")} Anti-Spam rules ({k0}):\n' - - rules.sort() - for r in rules: - if len(r) == 0: continue - - r2 = f'({r})' - if r in SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered.keys(): - e = SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered[r] - tmp += f'\t- {r2: <15} - {e}\n' - usedRE = True - else: - tmp += f'\t- {r2}\n' - - result += tmp + '\n' - - if usedRE: - result += '\tNOTICE:\n' - result += '\t(Anti-Spam rule explanation can only be considered as a clue, hint rather than a definitive explanation.)\n' - result += '\t(Rules meaning was established merely in a trial-and-error process by observing SMTP header differences.)\n\n' - - sclpcl = { - 'SCL' : ('Spam Confidence Level', 'spam', SMTPHeadersAnalysis.ForeFront_Spam_Confidence_Levels), - 'PCL' : ('Phishing Confidence Level', 'phishing', SMTPHeadersAnalysis.ForeFront_Phishing_Confidence_Levels), - } - - addscl = False - tmpfoo = '' - - for k, v in sclpcl.items(): - if k in parsed.keys(): - addscl = True - scl = int(parsed[k]) - k0 = self.logger.colored(k, 'magenta') - tmpfoo += f'- {k0}: {v[0]}: ' + str(scl) + '\n' - - levels = list(v[2].keys()) - levels.sort() - - if scl in levels: - s = v[2][scl] - f = self.logger.colored(f'Not {v[1]}', 'green') - if s[0]: - f = self.logger.colored(v[1].upper(), 'red') - - tmpfoo += f'\t- {f}: {s[1]}\n' - - else: - for i in range(len(levels)): - if scl <= levels[i] and i > 0: - s = v[2][levels[i-1]] - f = self.logger.colored(f'Not {v[1]}', 'green') - if s[0]: - f = self.logger.colored(v[1].upper(), 'red') - - tmpfoo += f'\t- {f}: {s[1]}\n' - break - elif scl <= levels[0]: - s = v[2][levels[0]] - f = self.logger.colored(f'Not {v[1]}', 'green') - if s[0]: - f = self.logger.colored(v[1].upper(), 'red') - - tmpfoo += f'\t- {f}: {s[1]}\n' - break - - if addscl: - result += tmpfoo - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testFrom(self): - (num, header, value) = self.getHeader('From') - if num == -1: return [] - - result = '' - m = re.search(r'<([^<@\s]+)@([^\s]+)>', value) - - if m: - username = m.group(1) - domain = m.group(2) - email = f'{username}@{domain}' - - if username.lower() in SMTPHeadersAnalysis.Dodgy_User_Names: - result += self.logger.colored(f'- Username "{username}" in your sender email ({email}) is known to be blacklisted!\n', 'red') - - if len(result) == 0: - return [] - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testDecodeEncodedHeaders(self): - result = '' - tmp = '' - found = False - num0 = 0 - shown = set() - - for (num, header, value) in self.headers: - v = SMTPHeadersAnalysis.flattenLine(value) - m = re.search(r'\=\?[a-z0-9\-]+\?Q\?', v, re.I) - if m: - num0 += 1 - - SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) - - value_decoded = emailheader.decode_header(value)[0][0] - if type(value_decoded) == bytes: - value_decoded = value_decoded.decode() - - hhh = self.logger.colored(header, 'magenta') - tmp += f'\t({num0:02}) Header: {hhh}\n' - tmp += f'\t Value:\n\n' - tmp += value_decoded + '\n\n' - - try: - x = SMTPHeadersAnalysis.hexdump(base64.b64decode(value_decoded.encode())) - tmp += f'\t Base64 decoded Hexdump:\n\n' - tmp += x - tmp += '\n\n\n' - except: - pass - - shown.add(header) - - if len(tmp) > 0: - result = '- Decoded headers:\n\n' - result += tmp + '\n' - - if len(result) == 0: - return [] - - return { - 'header' : header, - 'value': '...', - 'analysis' : result, - 'description' : '', - } - - def testMicrosoftAntiSpamMessageInfo(self): - (num, header, value) = self.getHeader('X-Microsoft-Antispam-Message-Info') - if num == -1: return [] - - value = emailheader.decode_header(value)[0][0] - if type(value) == bytes: - value = value.decode() - - self.securityAppliances.add('MS ForeFront Anti-Spam') - result = '- Base64 encoded & encrypted Antispam Message Info:\n\n' - result += value - - tmp = '' - - if self.decode_all: - tmp += f'\n\n\t- Base64 decoded Hexdump:\n\n' - tmp += SMTPHeadersAnalysis.hexdump(base64.b64decode(value)) - tmp += '\n\n\n' - else: - tmp += '\n\n\t- Use --decode-all to print its hexdump.' - - result += tmp - - return { - 'header' : header, - 'value': '...', - 'analysis' : result, - 'description' : '', - } - - def testAntispamMailboxDelivery(self): - (num, header, value) = self.getHeader('X-Microsoft-Antispam-Mailbox-Delivery') - if num == -1: return [] - - parsed = {} - self.securityAppliances.add('MS ForeFront Anti-Spam') - result = '- This header denotes what to do with received message, where to put it.\n\n' - - for entry in value.split(';'): - if len(entry.strip()) == 0: continue - k, v = entry.split(':') - if k not in parsed.keys(): - parsed[k] = v - - for k, v in parsed.items(): - elem = None - - if k.upper() in SMTPHeadersAnalysis.Forefront_Antispam_Delivery.keys(): - elem = SMTPHeadersAnalysis.Forefront_Antispam_Delivery[k.upper()] - - elif k in SMTPHeadersAnalysis.Forefront_Antispam_Delivery.keys(): - elem = SMTPHeadersAnalysis.Forefront_Antispam_Delivery[k] - - if elem: - vals = v.split(',') - found = False - k0 = self.logger.colored(k, 'magenta') - tmp = f'- {k0}: ' + elem[0] + '\n' - - if type(elem[1]) == dict: - for va in vals: - if va in elem[1].keys(): - found = True - tmp += f'\t- {va}: {elem[1][va]}\n' - - if not found and len(v.strip()) > 0: - tmp += f'\t- Unknown value: "{v}" in parameter {k0}\n' - found = True - - elif len(v) > 0: - found = True - tmp += f'\t- {v}\n' - - if found: - result += tmp + '\n' - - for k in ['SFS', 'RULEID', 'ENG']: - if k in parsed.keys(): - res = '' - rules = [x.replace('(', '') for x in parsed[k].split(')')] - - if len(rules) == 1 and len(rules[0].strip()) == 0: - rules = [] - - k0 = self.logger.colored(k, 'magenta') - tmp = f'- Message matched {self.logger.colored(len(rules), "yellow")} Anti-Spam Delivery rules ({k0}):\n' - - rules.sort() - usedRE = False - - for r in rules: - if len(r) == 0: continue - - r2 = f'({r})' - if r in SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered.keys(): - e = SMTPHeadersAnalysis.Anti_Spam_Rules_ReverseEngineered[r] - tmp += f'\t- {r2: <15} - {e}\n' - usedRE = True - else: - tmp += f'\t- {r2}\n' - - result += tmp + '\n' - - if usedRE: - result += '\tNOTICE:\n' - result += '\t(Anti-Spam rule explanation can only be considered as a clue, hint rather than a definitive explanation.)\n' - result += '\t(Rules meaning was established merely in a trial-and-error process by observing SMTP header differences.)\n\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXMailer(self): - (num, header, value) = self.getHeader('X-Mailer') - if num == -1: return [] - - vvv = self.logger.colored(value, 'magenta') - self.securityAppliances.add(value) - result = f'- X-Mailer header was present and contained value: {vvv}\n' - result + ' This header typically indicates sending client\'s name (similar to User-Agent).' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testUserAgent(self): - (num, header, value) = self.getHeader('User-Agent') - if num == -1: return [] - - vvv = self.logger.colored(value, 'magenta') - result = f'- User-Agent header was present and contained value: {vvv}\n' - result + ' This header typically indicates sending client\'s name (similar to X-Mailer).' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXMimecastBulkSignature(self): - (num, header, value) = self.getHeader('X-Mimecast-Bulk-Signature') - if num == -1: return [] - - if value.strip().lower() == 'yes': - result = f'- Mimecast considers the message as Bulk: {self.logger.colored(value.upper(), "red")}\n' - else: - result = f'- Mimecast does not consider the message as Bulk: {self.logger.colored(value.upper(), "green")}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXMimecastSpamSignature(self): - (num, header, value) = self.getHeader('X-Mimecast-Spam-Signature') - if num == -1: return [] - - result = f'- Mimecast considers the message as spam due to:\n\t- {self.logger.colored(value, "yellow")}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testXMimecastSpamScore(self): - (num, header, value) = self.getHeader('X-Mimecast-Spam-Score') - if num == -1: return [] - - vvv = self.logger.colored(value, 'magenta') - self.securityAppliances.add('Mimecast') - result = f'- Mimecast attached following Spam score: {vvv}\n' - - try: - score = int(value.strip()) - - if score < 3: - result += '\t- ' + self.logger.colored('Not a spam', 'green') - - if score >= 3 and score < 5: - result += '\t- ' + self.logger.colored('Low confidence it is a spam', 'green') - - if score > 5 and score <= 7: - result += '\t- ' + self.logger.colored('Medium confidence that might be a spam', 'yellow') - - if score > 7: - result += '\t- ' + self.logger.colored('High confidence - this is a SPAM', 'red') - - except: - pass - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testTLCOObClasifiers(self): - (num, header, value) = self.getHeader('X-MS-Oob-TLC-OOBClassifiers') - if num == -1: return [] - - result = f'- {self.logger.colored("OOB", "magenta")} Classifiers and their results:\n' - value = value.replace(' ', '') - - for a in value.split(';'): - if(len(a)) == 0: continue - k, v = a.split(':') - k0 = self.logger.colored(k, 'magenta') - - if k in SMTPHeadersAnalysis.TLCOOBClassifiers.keys(): - elem = SMTPHeadersAnalysis.TLCOOBClassifiers[k] - - if len(elem[0]) > 0: - result += f'\t- {k0}:{v} - ' + elem[0] + '\n' - else: - result += f'\t- {k0}:{v}\n' - - if v in elem[1].keys(): - result += f'\t\t- ' + elem[1][v] + '\n' - else: - result += f'\t- {k0}:{v}\n' - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testTransportEndToEndLatency(self): - (num, header, value) = self.getHeader('X-MS-Exchange-Transport-EndToEndLatency') - if num == -1: return [] - - result = f'- How much time did it take to deliver message from End-to-End: ' + self.logger.colored(value, 'cyan') - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testReceivedSPF(self): - (num, header, value) = self.getHeader('Received-SPF') - if num == -1: return [] - - value = SMTPHeadersAnalysis.flattenLine(value) - result = '' - words = [x.strip() for x in value.lower().split(' ') if len(x.strip()) > 0] - - if words[0] != 'pass': - result += self.logger.colored(f'- Received-SPF test failed', 'red') + ': Should be "pass", but was: "' + str(words[0]) + '"\n' - - if len(result) == 0: - return [] - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testAuthenticationResults(self): - return self._testAuthenticationResults('Authentication-Results') - - def testARCAuthenticationResults(self): - return self._testAuthenticationResults('ARC-Authentication-Results') - - def testXTMAuthenticationResults(self): - return self._testAuthenticationResults('X-TM-Authentication-Results') - - def _testAuthenticationResults(self, targetHeader): - headersCounted = 0 - headersCountedAll = 0 - - for (num, header, value) in self.headers: - if header.lower() == targetHeader.lower(): - headersCountedAll += 1 - - for (num, header, value) in self.headers: - if header.lower() == targetHeader.lower(): - headersCounted += 1 - SMTPHeadersAnalysis.Handled_Spam_Headers.append(header.lower()) - out = self._testAuthenticationResultsWorker(num, header, value) - if out != []: - analysis = out['analysis'] - result = f'- There were {self.logger.colored(headersCountedAll, "magenta")} headers named {self.logger.colored(targetHeader, "magenta")}. The {headersCounted}. one is considered problematic:\n' - out['analysis'] = result + '\n' + analysis - return out - - return [] - - def _testAuthenticationResultsWorker(self, num, header, value): - value = SMTPHeadersAnalysis.flattenLine(value) - tests = {} - result = '' - - for l in re.findall(r'([a-z]+=[a-zA-Z0-9]+)', value, re.I): - a, b = l.lower().split('=') - tests[a] = b - - for k in ['spf', 'dkim', 'dmarc']: - expected = ['pass', ] - - if k == 'dmarc': - expected.append('bestguesspass') - - if k in tests.keys() and tests[k] not in expected: - p = self.logger.colored('pass', 'green') - p2 = self.logger.colored(tests[k], 'red') - - result += self.logger.colored(f'- {k.upper()} test failed:', 'red') + f' Should be "{p}", but was: "' + p2 + '"\n' - - if k.lower() == 'dkim' and tests[k] in SMTPHeadersAnalysis.auth_result.keys(): - result += '\t- Meaning: ' + SMTPHeadersAnalysis.auth_result[tests[k]] + '\n\n' - - if len(result) == 0: - return [] - - return { - 'header' : header, - 'value': value, - 'analysis' : result, - 'description' : '', - } - - def testExtractIP(self): - addresses = re.findall(r'([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})', self.text) - result = '' - tmp = '' - resolved = set() - - if len(addresses) == 0: return [] - - self.logger.dbg('Running testExtractIP...') - - for addr in addresses: - if addr in resolved: - continue - - try: - resolved.add(addr) - if self.resolve: - self.logger.dbg(f'testExtractIP: Resolving {addr}...') - out = SMTPHeadersAnalysis.resolveAddress(ipaddr) - - addr = self.logger.colored(addr, 'magenta') - tmp += f'\t- Found IP address: ({addr}) that resolves to: {out[0]}\n' - else: - addr = self.logger.colored(addr, 'magenta') - tmp += f'\t- Found IP address: ({addr})\n' - - except Exception as e: - tmp += f'\t- Found IP address: ({addr}) that wasn\'t resolved\n' - - if len(tmp) > 0: - if self.resolve: - result = '\n\t- Extracted IP addresses from headers and attempted resolve them:\n\n' - else: - result = '\n\t- Extracted IP addresses from headers:\n\n' - - result += tmp - - if len(resolved) == 0: - return [] - - return { - 'header' : '-', - 'value': '-', - 'analysis' : '\t' + result, - 'description' : '', - } - - def testResolveIntoIP(self): - domains = set(re.findall(r'([a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,})', self.text, re.I)) - resolved = set() - result = '' - tmp = '' - - skip = ( - 'smtp.mailfrom', - 'header.from', - ) - - if len(domains) == 0: return [] - - self.logger.dbg('Running testResolveIntoIP...') - - for d in domains: - if d in resolved: continue - if d in skip: continue - - try: - resolved.add(d) - d2 = self.colorizeKeywords(d) - - if self.resolve: - self.logger.dbg(f'testResolveIntoIP: Resolving {d}...') - out = socket.gethostbyname(d) - - if type(out) == list: - out = out[0] - - tmp += f'\t- Found Domain: {d2}\n\t\t- that resolves to: {out}\n' - else: - tmp += f'\t- Found Domain: {d2}\n' - - - except Exception as e: - tmp += f'\t- Found Domain: ({self.logger.colored(d, "magenta")}) that wasn\'t resolved\n' - - if len(tmp) > 0: - if self.resolve: - result = '\n\t- Extracted domains from headers and attempted resolve them:\n\n' - else: - result = '\n\t- Extracted domains from headers:\n\n' - - result += tmp - - if len(resolved) == 0: - return [] - - return { - 'header' : '-', - 'value': '-', - 'analysis' : '\t' + result, - 'description' : '', - } - - def testBadKeywords(self): - result = '' - for num, header, value in self.headers: - for w in SMTPHeadersAnalysis.bad_keywords: - if w.lower() in value.lower(): - SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) - result += self.logger.colored(f'- Header\'s ({header}) value contained bad keyword: "{w}"\n', 'red') - result += f' Value: {value}\n\n' - - elif w.lower() in header.lower(): - SMTPHeadersAnalysis.Handled_Spam_Headers.append(header) - result += self.logger.colored(f'- Header\'s ({header}) name contained bad keyword: "{w}"\n\n', 'red') - - if len(result) == 0: - return [] - - return { - 'header' : '-', - 'value': '-', - 'analysis' : result, - 'description' : '', - } - -def opts(argv): - global options - global logger - - o = argparse.ArgumentParser( - usage = 'decode-spam-headers.py [options] ' - ) - - req = o.add_argument_group('Required arguments') - req.add_argument('infile', help = 'Input file to be analysed or --list tests to show available tests.') - - opt = o.add_argument_group('Options') - opt.add_argument('-o', '--outfile', default='', type=str, help = 'Output file with report') - opt.add_argument('-f', '--format', choices=['json', 'text', 'html'], default='text', help='Analysis report format. JSON, text. Default: text') - opt.add_argument('-N', '--nocolor', default=False, action='store_true', help='Dont use colors in text output.') - opt.add_argument('-v', '--verbose', default=False, action='store_true', help='Verbose mode.') - opt.add_argument('-d', '--debug', default=False, action='store_true', help='Debug mode.') - - tst = o.add_argument_group('Tests') - opt.add_argument('-l', '--list', default=False, action='store_true', help='List available tests and quit. Use it like so: --list tests') - tst.add_argument('-i', '--include-tests', default='', metavar='tests', help='Comma-separated list of test IDs to run. Ex. --include-tests 1,3,7') - tst.add_argument('-e', '--exclude-tests', default='', metavar='tests', help='Comma-separated list of test IDs to skip. Ex. --exclude-tests 1,3,7') - tst.add_argument('-r', '--resolve', default=False, action='store_true', help='Resolve IPv4 addresses / Domain names.') - tst.add_argument('-a', '--decode-all', default=False, action='store_true', help='Decode all =?us-ascii?Q? mail encoded messages and print their contents.') - - args = o.parse_args() - - if len(args.outfile) > 0 and (args.format == 'json' or args.format == 'text'): - args.nocolor = True - - options.update(vars(args)) - logger = Logger(options) - - return args - -def printOutput(out): - output = '' - - if options['format'] == 'text' or options['format'] == 'html': - width = 100 - num = 0 - - for k, v in out.items(): - num += 1 - analysis = v['analysis'] - value = v['value'] - - analysis = analysis.strip() - - value = str(textwrap.fill( - v['value'], - width=width - 1, - subsequent_indent=' ' * 4, - initial_indent='', - replace_whitespace=False, - )).strip() - - description = '' - - if len(v['description']) > 1: - desc = v['description'] - desc = '\n'.join(textwrap.wrap( - desc, - width=width - 1, - subsequent_indent=' ' * 4, - initial_indent='', - replace_whitespace=True, - )).strip() - - description = f''' -{logger.colored("DESCRIPTION", "blue")}: - {desc} -''' - - if len(v['header']) > 1 or len(value) > 1: - output += f''' ------------------------------------------- -({num}) Test: {logger.colored(k, "cyan")} - -{logger.colored("HEADER", "blue")}: - {v['header']} -{description} -{logger.colored("VALUE", "blue")}: - {value} - -{logger.colored("ANALYSIS", "yellow")}: - {analysis} -''' - else: - output += f''' ------------------------------------------- -({num}) Test: {logger.colored(k, "cyan")} - -{logger.colored("ANALYSIS", "yellow")}: - {analysis} -''' - - if options['format'] == 'html': - output2 = f''' - - decode-spam-headers - - - {output} - -''' - - output = output2.replace('\n', '
').replace('\t', ' ' * 4).replace(' ', ' ') - output2 = output - - for m in re.finditer(r'(<[^>]+>)', output, re.I): - a = m.group(1) - b = a.replace(' ', ' ') - output2 = output2.replace(a, b) - - return Logger.replaceColorToHtml(output2) - #return output - - elif options['format'] == 'json': - output = json.dumps(out) - - return output - -def main(argv): - args = opts(argv) - if not args: - return False - - if args.list: - print('[.] Available tests:\n') - - print('\tTEST_ID - TEST_NAME') - print('\t--------------------------------------') - - an = SMTPHeadersAnalysis(logger) - - (a, b, c) = an.getAllTests() - tests = a+b+c - - for test in tests: - (testId, testName, testFunc) = test - - print(f'\t{testId: >7} - {testName}') - - print('\n') - return True - - logger.info('Analysing: ' + args.infile) - - an0 = SMTPHeadersAnalysis(logger) - (a, b, c) = an0.getAllTests() - maxTest = 0 - for i in a+b+c: - test = int(i[0]) - - if test > maxTest: - maxTest = test - - text = '' - with open(args.infile) as f: - text = f.read() - - try: - include_tests = set() - exclude_tests = set() - - if len(args.include_tests) > 0: include_tests = set([int(x) for x in args.include_tests.replace(' ', '').split(',')]) - if len(args.exclude_tests) > 0: exclude_tests = set([int(x) for x in args.exclude_tests.replace(' ', '').split(',')]) - - if len(include_tests) > 0 and len(exclude_tests) > 0: - logger.fatal('--include-tests and --exclude-tests options are mutually exclusive!') - except: - raise - logger.fatal('Tests to be included/excluded need to be numbers! Ex. --include-tests 1,5,7') - - _testsToRun = set() - - for i in range(maxTest + 5): - if len(include_tests) > 0: - if i not in include_tests: - continue - - elif len(exclude_tests) > 0: - if i in exclude_tests: - continue - - _testsToRun.add(i) - - testsToRun = sorted(_testsToRun) - - an = SMTPHeadersAnalysis(logger, args.resolve, args.decode_all, testsToRun) - out = an.parse(text) - - output = printOutput(out) - - if len(args.outfile) > 0: - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - - output2 = output - - if args.format != 'html': - output2 = ansi_escape.sub('', output) - - with open(args.outfile, 'w') as f: - f.write(output2) - else: - print(output) - - if not options['nocolor']: - print(''' ------------------------------------------- - -Experiencing a bad-looking output with unprintable characters? -Use -N flag to disable console colors, or switch your console for better UI experience. -''') - - -if __name__ == '__main__': - main(sys.argv) diff --git a/phishing/decode-spam-headers/img/1.png b/phishing/decode-spam-headers/img/1.png deleted file mode 100644 index 891df6c2de5ab375630375945e31dbf40dd223be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141538 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�YWrF>^n48Vb z=a5aA11M?H1nGB!)r(Z4zfu&nl9Gha|Fb_KBbWEXAt#~B2M2{}8rE+*EeouP{cy{j zCf`;XwB4|1WVLz`CbI4?)awFr^n)Yu_?9tF5s}w`KOm#1tmJn=aq;vpS`P+KU0tKdB`xx%BQAqQ_wT{^WlQZC?zeSN?q+w0tgHAU0h5#d9%jLCni^6@M9P}He?5SWi&WQfRr&`H2>R`ak-^|olQUHi z5k2wvU#YskGt+V;TK6N|zTtGJ{wuKvIiq!DMO7{bu;jSk&Q$(Sbp!B-m#b!+ zX0nX4mKIE`w*PJS11JaUcsMb70a2h*tSJqkhPGmS*GhMpzu^3_z#6uQ+!6yium&-H8>}{M zz_?Y{I}|6bR9FRxC9WUUJi9pGBWeK(h&pc`0qj3bcZQ*NIMr%3y$0&Wa?6W}iHVss zIRo*0p8+aHn&qVR0zEkQb4>7MGSU8wdFNAFu9-hod8Hbig+Qej`su0_G*>}elK66$ z9H5T{C<~1piO^d+`(n?-JtXT)M={8B3=ItSk7ipOF6=M1&2fvtQGR}}?*t{>e|KFu zFGXWw>Frm9D2XvjX25Vu)6DVCL-qp2ka+*UMkeXXb*XMGlp8%_~JTf_oOD>H5lMRtq z3XAr_!dHGgDGCEhtY;fHkgKKiC5%yK8{X#&Nyaj$u@5-%EmAx!QVZnZYu%LXr5@l!{`m z?^569{A>CnXJKLCIzvH8B&S9LoQs)9w+WVU>>p|ebl7M2+bw`6#h45-Fx6Wva=Rl)Uwk z-(Ju1Qc+X{^yt_MK+u0jcXux^e6k<^k-yo~J2aK7q#uZ7qrVxlV_RABzHs>Z`nt1! zPT^HvO${6mpYUgH?z7Xm-fNnbm6bZ1HtW5|@O-hGeZCjYQ=AJ~7+Y>1fT=<3Pmb9B zItTN~!Rpe|H@|=9ceb}{9}yDG^K^*&@ITd(%-P&{BX1f|_mPd2HO@9MFY))s#G}TG zMUZ9}Bm~f?vI1!8SRqx4l2bl`-_~|^bRs+k%RggcepfR26as#d?Hj5n*1S%d4gq*v z`XTU5-WVDE5}VF!UsxDSviqGvvz7d1DA>tUiT(ZX2UXRl6I!4GFu$d~daR=0`SW?L z;@DnQAf67;XUQ1HT`+!Y`C3slM1Evl0W2wxGMjSZzehwwq+3qZ2n3iQz-{JcX7QVN zqWCNpvRDQmoB&F^kx{Rzxte($fR^q#TyWkuVGx7p49>tlHszjTV%{Z$S5$m-u<8m( z-FA!&nm&q)-FJHGx*Y|WC2wV}+Pp|ImzZSXkZ4bDB`6fYNU?aay3brgau0slp!lWa|K1xxQBKlFRZy@7Q66 zY4_farz|FQ|L3m?NKpS(UcPNh9l+Y|-(lAig)MmTzacsQTE7&#>bv;bE`Ep zG-lOYCj8TC&(6&qJf{c7D~*67QddMogSK|^JuprS$Jf_S zfALgMU0Pbko}eH%HyX&hF|)9!%wbf1^#2;-WUXv$JO##QMjL$_B;?fWp@g9#(D~rp zT={rGtD-N)ijhtC;%2}M&K=Odv;ev9V`CqTy3WjA0JOe%n6O+~8Q-t`e1(JrdPUb% zK9ed=I8^ynATTfk02}`QEwE3XkW$lIxI09}#ZdyIl=Od|ZQz*Viemkx;4GJ;RsVf3 z1e6R=Lf9a8#)ApZ`(wFAL0W`_gtLBlwG@!M52_!&{Ido;efsC@M#;E{ugO0XD3?S` z5`cDjetsS(Q?X{PG&z?hqlSh?WOVd1?xCR%y2GW%Z@d8v4{XK9*SFVh z*fQo*zFN;@zVFHPo)uu;VmnA(qzdp|x*DqfC$(5~x}m!|=`Y?-{ZWk1XfeXh?Zt(A?c`L= z-vW2RJz+W*Gqbe2sL(Tc3T;ep%&$i1dznCpuoCEp01T$};>DQKte(wnf%Tl12 zG~nJY{Qb5DSib#vAW80c%Ep#&9e#Uuaq&h*CX-g|`z^US7eKRu&aZ-F+#mwLUCZw6 zEx5j(2Yi57vqbMtEo)8CfS{nrSRE%Ra_%@D3T~}vbzNue2iK1tlz~mG;@m^`Lp?1b zYi*suV+#u`wY5>5gJbRI<;F9*xakMtyv{@NU#rMO%FX(Np!6sd3Xz1VQ zaB@n+Sf0+=vP@zbBF8<3qgRdwYB3IW>4E`G&6W+$zJ6^M5?u#r8%As9b+swB@FM zD=<1PvcsHMG0$$6Yz_mIU#;Fua6iLC-#V`=-OuKU(EzK`j^d5g(O^U7U``wil<0z} zaW)l)su$+vjk-}@U|(SDKx1XK*t_*)wFXisGsO1g>CUWiMDE3bJ6CNHO{&lqUx~F!%msh*2 zVF(PwGcKY_Bfp9JY)Am|^z?KZevbnz{bvtFL`96|{vMP~4~TspY-CZ!d3=wHY->%c z=^^-vKahdzeE`hI<9%Bixx$~_y4vZj{;(tmBUQ6|CT?NLl&xONwo;zA2TS+U=`SH8 zF+88y%~-j7B>0vh0c}-}`@@lYj+vi#AP(z|kkx%f-ev>SrkEhWDrJ7yk+`E!^6sT% zO$GMZg29utsFRauDZZ6X=EtPUieG?w-J1yoCY@-$n`@4U+cq^j+8)6R$7U68ez@bX zJ=<1ECg=io)FT3&oL?Io8V0|ZO0pFI*$N`W&RYu?A8*@bNrQ8M4chNcvl6k?%Y%p8 zREw*M79=nF;_ble-u}c4d|}11`9ZA5TaC6GzqvR4g594DKU^~0Hv&rvrEyvzguIhe z-6zUg+l`=ixz?8OKH##}Yy<&?r+W#`t;-fSax2;Kz@(nfk>uX({`4U|YUA%;qU4XF z{{kY^JxR?*zi$nu=99jHAN^$k(;sf?RP+_`IQGwFTWFHHJaWe(pt#o~yjaB_PVDq- zo|*$9AB2mrr!pV;R04*_ULZpnm)d5}3au3D*U_X7W8QvI*WSJ=VB;&XZUZzUvj`HHskB@?2P zo_J=@1MfWm@)jTUr(1ja^5w*t>Zy_6b9Y=B1W*k`@ORVDr&&H>h-^RU}} z6ZiBfl`&Sapq$Sqws7{KPjp5<-28iA}$ZC+}VJ!?5Mf>$`#iOlOaym_Xae3 zV*IdoKX(+WtZwADaNDs{ozc^cH-g9_f!_YK-N2TP`yChA8Qqp)rct(8 zH-~!Bk1ykLmx!C(?(lN6{!2m_^m>h>_;*QwoncClf1L22KeOO9aT&&T6JT0g=6ciZ zqfYa{wbN0*qdx(APGU?G6%!3~V-CV-L-AZ;n^A187-nZWbNC4DNoC0n5>1 zZ-~`j^!*JNuj|yLwEG75vuYGO+v&=)+pTVQ)te`sc$0j5ur#VI3kMQK<=)yfD@v>* zlz?T5x~_DJwbNinArKdsIsx=2ZXYukfMl{1#oF4sJhHY*bH{2CMlgc} z)tJOTCtWU#HbOOLm_TD=rC~3{ZI<&9d19bSvde96&UJlUP1djMU0L!d1#@Q4H)5Qu zP$Y6KR8Wad)I?m=N`hM+DCOQ+^R8%{kmqoyajLHDuZ2rQj2o+H+BV7pz316;M`h*k zB;F-Covk=nkxu1X>O^XXF+V)Gh4z9)uwGUta=JjHP??{1v;)axn-hP!Iv-b)BI3|> zPe=p7Z@ySK+GgI0ZN9F2WKj~(Iqu#+ND(zF!5`H*@s`~J&5nQ%+(@i`Kj^AXXu%|``xv}i}4A}b)ai2ere&G zhgs6qL8=qYt3`vZ?b<7kx&v}(GF=~$>oK@D$Z(mkk!%Z&;4mI$J|LoHCD2OIFx=nt zI#?_zg$~Z9wyuI)A922@I7oD(FPh%=mJ|K!=kMPew9#)gwI6R=c$u*OGI-W*Ysjp5 zeQ%G&U@Cgs8@L}G&}(NnUCIZg$;c6iWe*e%So}B{g|T9F-%z`2`F(Sriq0K6?cw|0 z*w{}KroX77t!?ffcpGHB1T}7ty#M{&F2pzd1;qC2*WZ^ZA>{4-I6d^E3FWOPil>5~0w2cGIX^@`#a*x|sRawjfc-q90a_hEFHBs|+J zwd@}kER1(8pv7@bAK(ihkj;4=WfR+JE#B%BiC6elLg|H$=JA4?ot)pj2K8ZQxB^?T z{W(X;EqF=Xo-c5pzfmKh0nDgJ< z^ZZW?5svV;nr2Mo#emFht7cm_U#Zz`Y(l9*Vqi%wXvP0J#5RQgg6-+kSJMPfH+90~ zuvo(x{uK_=y#qZzfFJdDFtOqY?@o7`?;HQ~i4kVNiA`{+YOm)LtRn4_b{}FgIZ1wC-TOxvs6J> zqPXsHKCXM8dGbts1G}mY7j<0aEYV?+FusGP2eL__hr z(C6``TZtFE>RaAaC$R9%2##3^Ru91ksFE?Yr<-x8bXR%%s<^M@?0^Sy{Q8lCD(Bl{ zI!^gf%hA`iW#vzXLMTi>2QZm)y*L)0&xI1DbET!em6!k6pP;4cZ#W=Lh7Zk8_4pNR z^fTl%BYCx6i1BTjMVdBdmPW&u2sfPR$@ewg@lAL!O(iEbSo+w2y8Bjd#rNpRlP+_O zWlv9|Ud%lhE{^pB7{A&VEa}7v9ToiU=(r<8j)tN$GT*Su!qlf`e4D{jF)P@Id)FS? zN@MKVJjaP}+_~9ifr^K3q|+3X>yr`me}ki0%~fgNfNIv5T0{>8uPyi7(j;1?FUK|% zvI|_#(0lG4xo@ZP-mgjFc0~g%;Eu3py+|biY<@wBK4_9;N8h`Np84X;EL$hxm1vjf z1Yw9o4OmTB@BSaBGeKhhbASq^%zMXC98PO-IJ*-6mJf}Cre=_MKgkYOKOh1X^8!H~Lh@fy53UM(NXot*+?f(|VID2T>kbl;gN% z0=9e}4G7E9~E;fwf>Ls@9JIT|`Qe18dE&}@b9x}BZ;*CxWQ9fM!jLnqIp50kqZHl+{YJQm zK;&`GlyCOp{$jb@mbIyjkoB<2G$W_fzSILgzR4NWbkWZqE4Q1nA@q?c;soqdNibjR zZ1cmih25Pq>h8#OZk<=oxAbDsd8uN{)k%jIa;U-@lh0$&w<3jctqkvTI{|LzAJj;{ z84xhDg+#@pWN z<+?lZ+?Y5zJtoy!y`=+d$_au)+loQufQ9c3^hmQyWZL@%AJ%IynI&nd;V~^IMEKl_ z9m``eX5?Cz+W4G3OyY*N!8sY^HDPxkqTMYx7CPq;bo3V3OB%2G1+FCvW_n8co40(y z<94^WEa%`rk7Bz@Yq;MN)~T${frbbkPY z1Qh{^(-7__$AYZx0NjFh2tAz+pFNs}+^v0%w%|2Xsv~QJiebx;V*#DZ=! zWPJ6WC)C*H3m!ul{QUUO;Be3Fm7P`KbYK;cjd?H?4P%l-0erzI3`>1$8Ly`t1+SWnX7R~=A?LuNZ%=FpZ;vK`Zi>-V~+P)SpadDUpaYm5*wv|t-tAvmKZ z24=?-&KilEeY=APXGPsxMoD)cUfhgSBlOTFhPxMiWXzPZtw2vLDp1_&>a;lVs-v=_ zoo3=Gye>1m(gR|-z>+1i;EPSR`a^j2=*VREf#goSgLA^WQh9EdW+?cIq~oa^v}rk= zU=~BGq%tM3qGZ-nGz)w8#fkqdb12sVpNJ)(DS6BA6}>}|wl62IxrE@eQIXwvS7e(wu;PD74 zSQORr7);)U4`W2@o40B5KvH&GtytD(Vz<$DT(TH*W3O~mx65I85o_J?Uf4X|MYWK+ zXS!xuqHEQ24HDYDb5+0&>Z(aikuB zB@02!Xc;t|vwpEO^wKr)wal{w1}O$wZTw*r1EACRi1YdV8mn{ETUO=tM;3pN!xW7GM+9V2en!EgJ(W`>1i3hP zN6JNTRKGHwNOB8fI3-n_-u!TjlBHKG6)8F#XE~60wN47& z*`^1Ct9(s*ZO#iNFKLMrGmmNV`-GO_w2K_Xz{ID5O;!vAzj@5cg{Z?*c#rQw)E^*< zzK4@|Y$RIJ;wMVPYDgZyW<US$xsX}*_Q2}b>p*Kahvxu8XUAij;Q;zMm7pyDjui{;fSN^8+5_AI|<%x~H)rp;PnbZ~ZR%;Fk{B`UY zQXt4PKVMwy>i8Iw{JH6Le+>8JlH-$}#i~-3vCmeGg_e#8YtMTs4E!4Fl`$^hm7D=o zoOPXIoXg~X_qg0a0XDcyc;rE0uH)0##Xr(AU8)^K zT>lQN&&bUD;T53!{FClb+tj4eZ9k!e%QfY&u;cNRqTr669AX$oD{S0Xp=1~-_0jj! zt~UvdieH?S9w|N=zFIUDC!-uj8>q|DJgHlM0favgL6ey9F{Bmq_?H5?g4VZ!yKyV> zvsZD=End@Qkuc;*mLE=w)^1*on)!ebOi_x#11T)PX7_mYHRfg_BpwieV$;BdESGs{ z1AO%LR}waLz$SE3H#<;=$F5k{S|Rv|9+(bejP#{1JlNLb7;IiwKNzJihKDcFeGR>B z74i55?GS>WWpJARHvf1g%h|jFjsiX)6McY;2hENSBTnjC5*0Z8xP^8Jy+o}G?tNsa zRARa!9d(aPt~X46`ech1^ttsUyCDq{ z#vi!SX&w-lBdY`L5@M3q%rE`UPgTQJ4rVKtoKz>Tr#1KZ=`9p5`9iuMMaC+n+S^IN5e+sS&ptOA4_aW0Y3&Hpr$Zc_)(%(vQh&rPTb_vPgOq97Y-?Jh z?7%3iWl3GH%gq)UUVZBx8C-3{ZsE*E1q!8Oaiq*Z1X z$g%!%8KCc^$at>4cRt9fUkjWw6Fz;2NWCvgcCVkURJ34nbTR1oji(|t85$Z+!)(ES zxO}mtgMxz=ymjJWH{V*23&Oo@+pU;mBk3{|?E(HdfXw!HO>Eqc+#CC5=gT%0yi3lh z=G~{@R@lc?4bS)8GPJ3x#fzl~44VS0TbHc0!(_+BajctAo5NeAtDeyYzwL9K+?q6S zmTHdpud7Fmf;XY9bG8Bm$}kMEBeZtY=KDj7jw)3I)YASw$|&1b(oMXjN1VEbG^^PZs}2%r;_3xjd9^ihb0~I0dgs}}1ze>R z(6Tq0e)Lt;lKW9Vi`PoXr4_wQ4 zyOqR?Zyi@XyIhGp6MuZThU7n7>u5QQ-xx6>zBC?%b+Rz1g#Q%dZ5kgRKev-bSI%wA z{MHqsk#IpSmC!ubQ85b9ll+*Tgeb9NSc9$0XA%G*>*Go0^T81I8lt1RgjrmkhEyaJ zRWjRT=&wU+=ywBk^>Suo`ki9puCT15@Db}m^QboJ_^srzCBfm(tf}L}({Hl1Sc`_l zS%{boVdH3LRs($!EOHpn(fX_TJB$^7al2kIJ7}yEj}_v6vBoA-e0nXfuN;rY?pcc2 zfVPs@sUWs~!5K@6(lIU8P&Xf0TV6GaIX)T}W``n>erOnv4bSO+XTB{oTzO^$^E~Rh ziE@(k>86RWCq)d6eOJv^978Q5(Qw-EzxkB6+>gxQYs#7*`T}kKD8;*V#V6n5w!?T% z)7GA%Hy?=Yi#GT(|X8A$J;Y-$V*9MNR6` zQT0_gJ`9)X9vcKQJFF76+v*iPGN>4MZ|Ii@1M3g^g0w7e3kCq3(|IZdi=UP#?0DrI zV_ndI?By&)1nQ?cLeE`Fy?YHk)Za<`bQwW@j+jmcW9}U|E;>BiOOkWx6flV+X3>_k z8%zWJ*dg~_?d0j-5im&h0P^$6W~|`QlZvgCz*}u6or{*RY9_Ea?1!z+kaFB3VXQ44 z__Ldfqv@ll3m@0IB@0jFrIy2U@pK-zK}M#%QJbG$2qXMhV5Z*{7xrWoHAYEEH9>X0 zF-eob1RgJVGCz^11yjbol75!1yj*FY177eOeN6ctF#-kt>C5D0DoZ3DA{FwECxkSd zJp}KXIlb10?c~J6#n|W0kkV3*5u1DZ`q7UK|VNn-FQIL2-*cA+1d3Z=p73~OjK-d}VW=!zs zc5B&6V_n*Nmo|nDZbsNkppCokTe-wl^bToE+`_A?g_jmR3jtz|7zeQlG1<~s5%@Yq z&`sCbq|W&5b}nqp>zPsJ^T$|+o^#b!(>E`@%+t`{Nu-B6OA8yB#szuv{+uaFUQElh_wno?K+;-Yq{HKH-A?zDKKf{14Y>6v;@{CQt>5QkzA3DJ7got?IN8^1oGL1y7^k*U^ zQ{BZ7T^*+}TjExUyr(RU&5;Tdr{Y_;2;1_vB0RN-=Peh;^)|i~%!|o8ggS8ku20h@ zMGHoBG`e*Ey*COgQe;+zE$^Z9L5F|+zEu#=lR!T8(s&7C=+nTGj(-f#ZTab&IX>#b zUra@?TkFWO+txCETQTeL=4%c;zE}y-DEoS@={lodDIfWH?dNL-6an>eJz#(thr&*( zODr6WQjh2>c!Nk*NhhL0mp1kHyul`YK|k}8RkRCq!~lEA_pQPakS70iA|4Ko)$Nk= zgN#O#%g>?|HTwd%m@`5l-!GN#SXkms#1gRNcO986vB~^v)Anqp+wb!A0$M6k-xq;N zTy%cu%#h3W#xMhCIrQS;SL+^ zNu;G>)!qfrX9bxO5Ij5T^rVRNlk)cLxQN?|bN^~?KCyMStZEc=j!p zTW9R5&)eMc?Lg*Y)3DJgqZ-Mov7#OYIXr-aT zI{=8#!EVRd$-Q-Z(}?Vf@`$a1=al8Dms_Xc?5NRkVp?~y6JRCMOFgVq6FX__2nJ|0?XzhjJHs zEESBOn6q|?W#+^-@^*&H6*WQvxq}xvkEBUm+lH6YQF_WeyIhv?J{Lx_nyOwr(WV%N zAc~a|1uFm8ZD?F@cAP#sS4hS2v4myD$Kv^in~lGgFf7`1^T6%ur@uZ;ZtFL0kV203 z;?FswGc_krw^h=tS_C><9;m`|&nK+!J4GQ8&=QGbTSmxO!;`0MW{D=o#$P`^awQy% z;_Ywa4@KUgs4kuZM+(03zTa?VgNL!@IyUx!f380TY~w2#_3z;oPYbyKUg3Mnr4TmQ zh~wexuY;Cg;cHhzS-Ea`*)KlgQ34LBeDq@f^N!%**?U$9P^OKN};_4d{&Smo&dO}%3e){$H8O}=<_n3~Q@Og2ls3)0D?{mj`ixv;JQ0jmS%uSI^oDlgA#9&tN0RCl|K1k#;D{74Z;3rj1vUIS0ts$oFjw8T%7C*||B|SMj#zIBT7H%L*M0 z4Y1^9M0{`3pv!;)nGWK^eVFBdzuzMDrjsZxanbL(tW&aKnh8E0H?atUVT0kdAF<61 z5b2qt$^6)%LdQOO$JBV?Jr-Bv_VQ~TPskgwl~+wJosSM2aXYz?8nVu$n*-+&#@&17 z3%2!N8-Ivrq_gpNhtu(CX4ijbvGq35w$;XYT?R28Fp#RyT`p&~W91=_Ye$Bi`KY&W zym)`M(MgpuNULy#5l)EJ%Gb4U5!h#TIo5`-=Uo|whRm%xliDj;{YZ%=_97B2oulGx zSYeG9(1+_*d3f5G9KY|Bp%Ju$SzJmSLzNc`a;H?TA=`~iZ3Bw60>|4^Tx!Of!l1of@HJMgGw#+2EgDs(^4u=e_kEQz%I51awkc z-2-~q6hWTuZoI{!Z-7&#Gr{D`(m;zso~t?+huGBgN@21m1~xiwvDRWFS;`47RTzed z@8D8lbuUBaq_&@?$k^C4(K-#FD@mOoV4-mgxEDqaHX%W-H-F7%>f}1F9wk#itBCh- zW!k;F=HeI*jivBm=sQcCbslJK?8^fbxRG4M4nwJ;#VH|g-q5{t2{t!i=_u1S5OsY+ zyp4y*(fd-y*nS|;;B>ULN>7d+Y@c4tHrojRMxuNNTl6{-K6GD8^)kXu{UJG{Iy%Y0!(W2L`~C;&W?>dBt~f~ z_4kBFyt~oZ#F`jhiiY_Z<5jox!R7N-h(lu=-iAaC*Z9XGe8vM4u=Ig)&xv{y5qi2F zUCL*-BWzUu>P1>cGyM2IVpz_z;n+O5G=fOh;|XR8EHK9UI%5tEc%wmh zl}iAFpx0@xtIEMoHt7+>rCHm+tEqRf(z%+|77Qqydk$oU$hTIQT53dVN)40Bk8v;{ z9MiuX_H*Clqkd-=BD@1s24vL2>BZ*NmS=_L#7rGkGGnkVV2p;BjIthWVjMuFkml?I4*IzIv&A;^_(!iV#s>f z+}zy7q{k1}%4^ODPKJbey=O6G{b2RW4x+l6QRcGGNb7Z|sfvL=O;$ycir=|2vcEVq4$@a9SnGAdo{O0q*=G&E-t}A6Y zPvC(Sc|v?5YCbcyMMW^&&_(c-sL2<`Yo(M$Mr4%n#Be0!?N8=2ieNK}KMtP(6-m$Y}mdC^|_3UlZJgoZ| z9I_0P031F~vR2`+C8fPMcAqaVns^5;UERDpE`2N`C^%-Rq}N;8C0YHSuaO=t^P5lq zc6>tbJO7~9J(N7H>u2r0KiXJ7R4DrW@I(0PKAHRMIg0@moq!6^>C5x6zQI(VTwXU! zDd@^9d>MU>Y;=ldZ}D}q;rxrGGB55n?CD_z@F7DZzO#8UV?d#9vx>X-k+n`kVXnH* zf=>s+Livy@DY*9K2nX%)J<~9ig^V*30;lb^r{P_riaY16muLU)pSMI_ZIMs=E#DHO zYf)_N|0%Dh{>{lf{^8hf^}d&x`|NXw(V@hX8MZBoQ=_>02gWLW0#$HyY+Y8t79(u-tBz$ljGudcEE)DXWacLWa^a(ZhL04jk_K?r4DuJG0CxW-O|sU zmR6bF$snPYq`_dpU9m-1|KXhrP8Z4A9?{n~st<^;F&(i5vD8>w+{p=kqpWaeYnOjV z&Dt-Liz-P74?OJ=Z<2G!h3&9+9hH!^M-ZtjE+ZW0ube<%Z)4#7eP2G$o}I@d>LT3} zq~}fIyh+1*ooctnAofAe>lK}VXD7|~7fX8=d4^WN4R6&gn)>~^uFAx6Ik6c{73NBGmGcC+3 z94#9ihFA&loIe0MwVip%_;6aWjDy6K#T_Rkaq{-wfcu$QQ@CEwqmG67hTeYJdnN8q zZHky;orhSPZ&QllGhQ}>%yx95zjnl>O^EaGZYHA%i@;2EHgspffE3j=P@xv0S4%(E z4lN#Y+{Onqy|p_}Nq&S!^ZJ7r52k1@4}lu?NmRw-qEysemfmvhAP~Rfo%mpC*u|Ky zJKn585L9>0ct(5UKOa9K7CZtC3#6C&Vm#n<7jkW+lerKS99&@u=k)nB5HFz+7HfJ} z(&9gDIWQSgTV*l(_3Fifkcp1os94HU<5d*Q-RJZ~tG6G!$lr-2D*?H6U24gxqE0&p z526jD5&P;R&bB7pFuu?qM-w8)KzdKG#*4+`@v{kHg$P*g8c_0~QS!TS^sH|^wpx5~ zW7~<9r_x2p4ruR0>its{hV+&_UobP5sjP(ivsmuW?}O_TIdDR39Q8h;tR<6AB)h%Q z!2LcH*5jM{Nl9>@ID?LemN?Mk5Kek5BqH4AH9we~vOoRM3QMdhn2mO8qZK~9H%on{2j>%d6#-$vH5Z38t=0{g8>^e;|+8dv5ije z(tMLF@j-?@GafVu=qmF|YmujgEA5W#xB4@ujMGD6E&A3Q6zlbSd)a>7Nwud|nmyj; zD^l^_S)}Y@xrK+`zxgpZgxgv|@c154V+i{Ia=jt11ARB46_Sa>I!6#ko(_DL*PpG( zu_rL}7*oULs$jTj2wmT)@Wpd~EwcjdsrP5}VZ=mC@K&?HUSeg^8DcVth}2bX{+%z; zk9tH%AK*kO;6ubx!W)aQBYWshlkVt_YcKcwS?|j1$U(<40LC>9Q1QgTI;Fhe3b8np zIkQOBo6%|9#5Fg>R&7wcOwLJ3$Y>Ml)~DqKFB>UdUD1|$In(+P<3QUK$y3Sf9Swz* z?aXYKn0duMY?sAoCmoP_aCY^%U1Nd|V z$|;y}%CAExnQFD|94xnt2)me;42Lo-X&yPx^Fg*}>(}DDpW72c!{SK51OT?1YR`L>*I{CI#d! zGaC@A6WV`~XJ2YfcyuZ@YES-JpHJr*vi&*e>${|UY3jjU(rJh0nj~*2%V;06`hJFyWkh-+=( z$kM2>TH;=4%r^eDEqvsVa!j!{i>*?ikNgAqWwzy66qe^WOHEu;?{;{4mNUGpGBbk# z(Z$KHSZ$o{7b9gnW-c+m*;qGiUPtP0^i5vxcLz&^WfsK;&(@=qd(8BZ$W6((Rb*!9 zUerKnQ>~zGr(4laa|3;{&1FEl-QPkldArt0&_;DyY~^-TbeG6mh3F-5P01p_{fd}i z3OQv?FnLS&P~>iHmBxe0zyW#QFx~Dr)Qhl8a~k@WDu|wVB?>2))O%Z6nlvor9m{D1 z=;?E>QqEE9 zdDwDM+oWe*G*()lYp1H$YxOC^L9hy2?_~>Z)g&RLG=n5B1~SSg&1)J*Fs!c+|L`;_ z;euyqAr0}lWAFupUJa=lE=VfKZuzZip2Pzk~YjS(g&C9#2+)KePeu zLqgA_w+ZcQj;2K5uJtIPNpgjY$#Y#)Y;thfkn6%wdJ3EI2_}TPf zQi4Ax#rhA9=P2hztRX=d;L#_aH`60eZIxgj1z|i!8|jTvd~GzC!}tv{i1%1wa!*3S zY_}Y`xTk$kecqo9^%@M<|L)DHQ(UxIn?DK>AdnByZEMWsqsLM&)^YB?LP`#O2b%_f zpD=8B#{O;7Yhyf_#eh~J^)^CzyySn}gu94W@FueL=~=UU!2jTAm&8 z(*G~Y-U2Af@BJHAP(m6-dTCHVLIk9{Q9=+ASOi2Aq-$wuq(e#xk#14CyE{aIrE`HL zmsnz-gWvxzo|*qM^S+MbFv#BAaqe@j^SM5u=Rkl)W1O*9KYhH-(S66_1+&f8?=rQc zx>K4R2I%^ut*&r_*u<(^_#?Wed#g76ALMT|i;>FVlacN|UWH13bLe#2nUzS@g0Wz7 zac8+dVaLq+pWQVJDQl_63Mkh#s%6d2eQM>_@Lj(?jBl4F2$)8| z*8(~bKgJ6kw^K!0hg;2m=6mH!`o$t#`xU99PmVVkC2gaQnPm3t zBlSvrRXAO6QqVDpBX#F19j8yL9~2(tmE^k|6n^nHGJpkfedEG;2vLt{@w<~{i06rq zotDek$?3+}a0eG6j?JjL@UF`f-?>EcodF`s{4_U6XY45=8M2SqU1o>G~|sNRE^DdBKT-k@s<(&obc!_W*5Y#j7j<24lM*k=f;0 zH4UKu3#XI}r!IxKWe9xr@u5&Y-ngU{qCS3cBPT2CwUG+#J>G?lqNzw_Khln{j3B!? z!zPoqC&#}NTIpIEaJ2kA8(|-DWNG(A{2ZR~1??^`L4%cBV2XU!6P!9MPw)(0b2Ep! z55?6FFS5;TSG%A-7lsYI^a(faBv=?GT96z#Z)r8*R&G(d9w3b@ej-CG)rsc^V1S}) zNO)9DFv~cd!?9VKdA-L&Uc)AC9|$zKUS0aVY>0`WQ0Hmr0eUokZ=^}8>&=FM&a-IR zArE~2yq-SyPV={KlLnsvLzM{&;xr#|Tg1oP>6%01(+d)99&;w|9~wK@OyQB<;4*ZZ zELl-#CE|Uys@UuMq}l6(1EV3+E%bh8+PHno4C3~&&E3m1yCIwM?HM<`^_ALaoa0Z^ zEic}*3DEOLb!=2u@$+oLfAaE5C>yj0x*ZF*D~V&f&B7Zzj-RwLEcBL3gpDu6^oDVi z#E5*&zR6f%wd%Djt87w`*cM8&f!E*yI~jkYkNO}6T4yFIF*TeZ_QfMO{juQ z#Bq{#EgrF-U&pyYutypxZ|W0J+M$+Eu=YeQ3a1U^pTz7hFE#U#%>Bl}au^tfG9N#vW>(mbBaeIP3$ z>zXVv;00zDO$u-S>H8A4@r8F?yL}m+6Cl+*c5R4I_DO@Lmbe5~n>Eprj7&jb6S@z> z?s1HaPd}f-WI<#}XxY!<#=Goow5KlL`3OzMxLx-6q^a1TzEx&xgKz{zc-J}u&AwdR zF8>|E>=h>%)+>+NT(Feg1odr9h{i_*X^5m z3OdrkAAPZLx{WU6!cyM6Vy6FVTq9_A6lvSYHh zY)QCp&7^+Cmiu8f$%BEm@e#JcPQL4U5rMCk_?w@j1ZfN=Cix&j^_nVozcQjQt!i6x{MVMP_i)YH?W9i7f0)6xP&5s-mQGjR0aZ%R?f*yI={^Ocn!@5b2k z^Yc+Yrk)e))45T=m+K5eo?lQB`@o>G=i}`Jvr%vb;M7TcA0WXmVsdkXFV|S)ZepSs zq?o!QDNd#MAr_`))4g%ea+EDqds!0o?sIdir@6U*241dxpdo(Y!61Hdb{y9_+mLM$ z1sSbSi!8UDgFa2?i3943lc-%XN=go(r6dQ2JQEWWwYL39Bcr(*wiF$}hcovKLXo4M z%&npEgxX&YUDpV~OO5aZKG?AI)rKlX%9trWKK`pijBq9fRRkajm5jUPg9R}{@&ZR zYBBEdNpQ)Ui%S52nQUU$kQC`?S{q>kLc`MSY|8ZG9k<Uq5kF1^z3gDmFHh6gP-6?<>|cD*Eiq)WrD= z`I}t?MeMf(3%uTo&DMVY969H4%qPXq19jiH>4uunbK?H%kC2?aA+=bj;q9GPY0%W@ zb?$NXJlgn>ke_sapNyp3`ch$OBX_E3PS3XvwPk-2$xk&0ca?$ZfI2Aqopzw}Qlnkb zO#bG(^D^Z0^bcfYWG)+m_I7_-PrIBRjtw~}{PNgHo@(?GLnS={xvKz-7Pr$-{QFzN zOF0vkhWH?Id}+Inm{Z=KhQ?dUS6GiJ@=Q*s=<6rbiNlmJ8r4h-FZYlb0M;ae=!cV` zc@~gH>VCAvv$A6GdTr1Ms6rPo@>f1t4U{jdBFBe&l^!@9lH9cZl_7`Q)88L0#LrJo zO}&AUUtY{s8(g1d=g>${_4G`+Dm16F1}m)UT(-+oHBuhmhu5y$(jLud3tnmV^#`8S zY;Xr7v97MZXBtoJyHex-{FFLK9hYf(ycL-p!NSa(rI9YHV%L>GCspF(YKP;dX%}Kx z3)3QI5J3#OIZC}Fwl%J!$X|Ts(_(I znU7CiI2FI_*-XL%gY2y3>euGxmdcC}AJ{GXNY^e2f>4WE-P&fQ|e zikFuQ4BpJZPiSmu?)<`5@DQ!xePSl!ewc?m>+(7O7$kJLWr1M>B9BDCIzwEF1%B^4 zJREdyfDw|b($Uc506nb^E4X0^XtcY;QP2IjiovgkI{943*R2x+0$>+#5K96iK>kM$ z=3hvHNV3>pB|M1IUwx;JYZY*;wVRBI#zC7+*3*?SR!Bp0o6A=aYJSgvt=~1zywPJm ziH^v+feyVOLt#lnYC||QlMq>T{|vZ9lo-<z6h0!+{a`A>Tm3DEIaB-T=d&Hzj+-L$t8;N28qiXMNHA~x z`VQyPLpY@!E?9NDsnVN*gAJI?s z4f$NEQDE%^xoneXGfEl13=FcwbodMPpca4|sOt}>jfWVm0geX`CI&vj4KdZslsr1M z-hZB-txmX44#87u=HO>Z{^Cjg`7CJuE}Y;Sbu~M&gSkpkkh=Tt(@)FHx*l!o@!K>K zyILc)5NKAf#e&V;{+@UF?_OFQ%B@a;hWcsLof=L3`(T|Lv%ghV60vbx1qmfZtV*oX z$@(V?EG;g=%RHP@9Ib(vV|d6FIa7Rm?dy4i`_Z@%h(b!7ZA*6Ckjg0W9!itgTwMhD zBPhMnjbj+ky$9BAmW+sUkZg_g9)WHKihL_5c=?o0Dr1Op_HmZ=yUmmoo|4k8S~PL| z)Mv~4oRTF6xvq4M10SwmJnH|#-%&kZvl3o+w^O}gy6Yt8;_rN8-{o*l-D!rWh}U!I zb^_w(;v2mPvUAVA1Yf44(0T3ha=8Y9H})X_MJfFG-tdWwXX3DUEO(RbkB0Fg8tDh6 z3H$p3ndI&*eYm{H-fzA6r@|u&b2~GeQ7BtP&I>J|(U(-V?6JvG1Fx-ppeIaN065io z_P_Fu-x@EF{^6|FArRPB)ZM(p}f6PwA zzDwVBK}JcyzEN?hYmjkSsIXxh17`0SMdc7|@*dliZ{`8uwRVYjk~RmmUxQQ zR&9CmPWvShmysc5ZU=WIx>Ei4{Gv~?XlX}Av|gr%GwdHz+*wxpA)re3gz9$r^udr+ z;kJP7B^Cvn@0>zCwWMcKXgo~i`r=G^zD9l-W_s@OvX)AD_EEUOjqBldwwTn1;I8Z+ zmgkdiBTAbDl6vA4zo3v4Y906ic(MW_J5k<;avK|xO01brGG8k71ne!9OT4IO65~?q z@RT==WRP(Gr0#`Kp%#A|9qARhIaLuBDv$SlcIE@=-qz2d?vp(;_|8$nRtk5I^EMqB zWWk$5=4LHwQ@H$I7sJ7bj-G9~0<_9ziWqMyh0^}k9yZkblr8zu20jHV3B9PN(R`-F zh7aY8Cq;FWh-NxiFZDYksh1F6gX<~{=@~u+d#j0%dYJ%{NJ+g$?cQUZ{rv-{7PcFC zN87h`>vKKFADA8;TI8tY4yI<;)#c2VM7^7K-YN0QE+4NjaI2v`phs2V64T`ITCHb> zj2Ib;!7frCGIBE?N?aW3P>b1w-)g0YyYBHQ^sk8VZM>~(2cq7NfgOuy&i$cVKF7UM@28;ta} zaMoP4%B-9$)v9_MQAv$jk85kIQ;kOzdaU>J{g2-99)7Mt2v#xd%~dt2ul-p|PcJd) zd`B;4X*`c6#cOc?nkFGrE5gXBZTyVA?s5Z3{YhjlKHmLJSy^vbyuo1lw?;mY68}y^v(SO#OFx^l$`cUh zzZ8D|`<}<~_A`>f^}JsoZ_t6_gw*7%l(@{v<@rqlln2c6X4-LPl$4fnn2q4}hgv>Z@*UWimk;IS!xKxgygPOjClKj}Te41-SQyxM!#h-Vu4 zlr*0EJ@1PdI_(WT>qB1v>F3yHTO6J(Z98t{kb@)kHwNZ$@P?Up_D6xRdAE|C3T-B$ zp@(P!LRwLs4tYI_lBU5J{hyK}qB1E~6P)r<@9<%=i`gNMzrQJuf>9Q}xz{(s$5C#i4Srax7;-`^6g+(|btt?+E@* zvNZ4TJsE!-sMIf(d^wL)fX_n_2v|a>v}aROolvI`#F*eN_o$262>Yw2BwIVMYl{On zVe@5CjbTXv!-MC0Jsj!1mD|(0%Dmj%I@d|cQ;-6Ua+t?0 z21$k-(;cvZ4%e?=HjQ-rrq#$Z7pE6ny)8^u1JnQTs;J4v-#GgLq^iKA(te$;F@ZEp{8b))8eyH3l9trD=?4 zjr_ng%eWmkkm!6kvFlV9aXN_>SYOnAYe{U#>y>ELY==`KygPMI03!F{a&J4$O$ z8xNKi+D>-_KSek^TqXN5>*ySjOTHb{tx7xiMcBABxAN%6t+FfaY4T6W(Msq~m*OBF z7A#E*xnSZLV*07Vw*h!EbtB#(N>_CE(&(d`;@8QpZxrIu(48Gk@2I}pP^odJoD?0u zPz=r@rs+g41pizH>e0O+tMu-UutXhob4e>67@5#7609mD`~dYCrtf#Jh2VC29-^rc z5UNGlJ!c6j+6%)^0fohjv!vf)I-L4vxdhC_FOkAal2p794Ee>#3*{)b{?yAhw`w6- z2kN%+FO;z#Lsn4EmB13m__(u!Aj&I%U};4Exr^d-YVDGE3P}{7#s~S6v-1NHH2oBk z-qpzCXlo+HBjB>?M*B`D;*p&ko~6n(U>n>##V2dq5Dt&Awy^<_TnD8WRR+cNL`poc z;~jN*70GPNalp>yZ1MW_`suEN9N`;?Z21yZDgAHK+_wa)BY@Ji(Fm{e;>Fr+B@n+` zMmeNEpR$oER@n96BG6tXxyE%a?6mc`^>x#g*H#IyXOS62l=kX%`P$Xi6tMYKTdQ_1 z3E!#pz%hk5-aKHRoOd&*we4=x>#W0}zEyGs27jSOhGH5yApe(qm~Xwm4YX-@?c`&%vBH;Xyd^amF5sM-64i z^9(Q$3iw_NK!d!DURx?xl8iUwuFg*)Le0l=B(hCj!?H*_H{Glx@JNSAtHph<5Ag-u za7bR5konC72@N2fvuR`DW@FR6$$BHawzkjm+@YANjB1Q3<4|Nj3a)Wa&di)}25*2h zT$Ge>UwTJ8ASa0N^13Whnsvw~UQL9rNz{qUatLqLTmw!<+Q4mmQa`dU-6TPjyjaSN zu-+K|;l5%8F&5%tXoKRJOxM$QQ<5G>$OcH7>KW6$1Ci~{wGT?fogy^~4Z|w+fni4U zIID_QJpD@jS^|nr&QP18?s}dHDbLsR082l9Cd8 z=hZ#~Sk>@R-SHOiM9|orTUI<<466ZQR@xUvuLfmOy6WP7Fb^{Z?HP%$yu^~VGjpb? zMs1(H3TXOS!oWPtzjn>+vrAUwhVjf99t&F&g!e@#eC^N{{ovc}V~tgDDD2v-XO;xx zBptMIs9K0UfPyLIH0Csijn8&?i1bpq>G~mlK$+tM<+9;uwZwvPg7E{w6||-0%Y+^B zw_^3Tsn>vsem#%307>-c#e<Z6ALTW=NEVcG+2&a|HI(x&{xl*E zh<)K*NmhELJ-Ssl0i?s)BGZEY9?{}&|5Vl<@@vn9k%Q(m6Hiwzr8%yM?Q|x5)p28# zjR@YR$;=u}XUQv$DO$C2-{@E~pZU$tStO3Pd#gp7@J0)+98pZLJTjySCIPo;^CvW+ zD!VVvJcFt$M6@ilh|u01MdAjm3q9{_CffNNblOg8YKx1eNlR?5HZdWV#Rv3P|IIWz z-{_@Vq_g;S92iOib*E3rp`O9#Oul=QpUgiUZuxAoD6EhF1KhKO0vZ>w!P0({PG>Os53HeaXe|HWN@al^?nvDo*{Rp z$nN5|GH=pq>$yg`K(ZUuy;}NiG99tgEmRrxFij$A@e|N#54^|0Ye=)&Z|3vrV%92Y zNrFUYAIJN$gAVmJb9?WIeR4C5SG+W%0qWKxGWEiz<{4=WZQ)q6^>!_4vZMM8-%+ov z{Ei-?bp7rhQSFY(=NZLLENl6R0_2`^DEuWz{hbWVe1u}d(dL{6)N}8q(TlK@^nm6n zo#Ct$z^F=Jg?jU%am~uu%(Cy3KF${_?XU8;Zy_k6nLNf$=c>0L`-}g)48jLUq+xJ0 z&usq^^)sl;D*B6Cz4|UUBVlkL1YCO-7LG~d>cH`Qb6(refZ^P#IXAso%&Va9j5i>P zFtbI$0LrIoE%R+=Buj-R-ep0Iq6&($Ab&5aaS8uJh!~zn)im%w%l$?;8Dt+G(u{Ri z7|(K4phU#Z+ksSDQQUOh;?llrLPLIzwrV6A63J@3j*XL7J)zwa7${HE%1kHy*4E4vzWo)RXFT=byLvh8 zOQHAyWaEVSvf|~O7u`(vSSZ-EdCBs)2v2q7C^~7XP{yr<9I5Fm= zf)nKB203>ab^|Wusyh~gmzW*Ya;uI`gIJ^0ZqDu4>vZ0q1f+l7c*)C5X%B3V%~v|cvgkI}w#Qx~dzvm;Y~l%%go#9wlasIf9x=157Q$IbTdrqTkud#czthae zJooGTl;9Bwg*OZ$Fpr2qUa!uaCe>WN{)UP3{g00IH9DEWQ`2>NL6@-_p zcLnapTjD_T+@#;!F0jr&(-ldbjZ;U72x2OAt9vsz%GcLi{9{xYg6}J*`S#v0nV-70 zrvplmz1r>jwQFf_X8A*+LR?_W^8?BkLcvRHjWaI;^4%foio04ZhiOyw`26724cUj+J3VeOA9^g562G&`s3#N+iLXVX362udVwev#9F!-7nZf z#LG4EbnJBXOyR=&@uMXA+(Du?w|ZYfpYvExmygtk_A~TvFV|%?)<9Oh|Bjx|N+EUl z7$dEZyh?Fb4QbF9;M|f|Qc@}Qh+ci*X|gjr_?=zF2NyW0e&KcuqCc$_hh1CCkOWw7 z#OrX}@Z7f%a-KQgXgm`XY&y(g7Whna^vjY$ydat8C{= zzA@q;0aP(=6(@fY;sCPV$T_e&fKS*k-BZU@vK?O~oJFEAy;stTkIiCz%nVIWZhI@& znMt#JCQYEFWXSEhduO=^NMTZ9=((m{w{*0Ah`j2?slm7(AvOrxALA3_|C-<@+fYVE zm37I|L0|C6YI#G2QMYQe^>~x@lWUu?J4OA-g9KZ9-&uUe{w9|u28j|S^bALVu0yR= z-*Eh^u+JMEO4K+cGbN3oS<)b_6X&yGUtE4PGR9H{ihTaLI39+b6@o>b# zPQGiiqhuQ&+|8U9KuCy*J!|rRtQh%#&_z6*Zy8%bDct_K;Txp%4b}IFc{S5`CfT$2 z*6ec(rnF5%Zg~gKnTlE21od%<>GEoBZYV9^mphc5A%4BT%;D5wDF5m%*4uj}^Z7{& zg9B^*8UddLhDKZgIV`I-2kj2yckXWG`jq&v>>i%mQ66@H)!@L6hv{Of>|n#-223tj zO*@#icy2k1^#L~XJ?p^~Rj-)7A7(F=9`JhkS>-l4ag}LVtor+aiQ3~VmASzg- zulqe%`n=?MW?NJ=$XN%ADi zsQ($ZS85F%Q`7+o&131(LhEU&2A5t$p_p;VL+9Te15XZFWWTym%hL;3*sD9=PcrH1E*8!~tSIW-LuGU2;+ThmpV zXLq@F7oVtNa_Qd*ueRPhroWW1YreKUxvau^%w|$hZUs6kY`jt$U94W|LKy>Z*DUq) zW~8twyO?#cor8u4JcrH|Q_J|F-Ezv8N}U9gYE2o$ClQS{k_#T=XC?4DXOqm35M`B} zl#;N);Z?F2vd`>aL9+``y9X4;DXm-TRg7Xd;x>03j+yU`Dlx;?xK|y9;c{3R?}sGC z-~++_<;FWMT{pCieH4b^6GpBDn@g~E?XC@*B26AdIz{tF(;-v6&cRI53Y)AvEQ$8n zhC9i6!t|3JBfQ*lmPygkf%N__cxU171_N=$QA28^H@eu=5>M4kueyOzynl;%JRJN^ zzD0Z-n6E$%-+T$QSdZU!;hTcP$*u`zM3S#$acOaaulbcUp7a)Dm$BKabwZj)(v*5g%<@@@Q`P{^5V#3HC#|2k# zi~kcp`2jqL3>a@tZMHJ3DRIj^=Gua*_4&or+G4zk3fr;EM0TeG+DsYu&tU3I>Hr)l zknI9+PwHNSYzJOsw$!41NVOa_+2!x3`L4#J?J28oFpX%rT_#Fn?O@{AMM6dSD!+42 zie~=zl)U-{UGVz@6qhf=SqMv0Tn0mqj18h7Hyt*#E4b|@g(jO2yW2^8CiO?x?=Cfu z32Ay_?_V3G-0e@5^2rE&=?iORAP}C{8ZUGup&*EjjZO9Slyy9!cb=5>iWUB0n=WbT z>G%ZiZph7Yu7$Mm3S2B|u#96}@2C@+3Z=vYcu6f!rw%mlQ$WCDBm9KgA?HqaRfkxb z&3>h#=kTQ6U|}*Zh)K-l4BrmRTw$$F_DVJ~IrkpHMaV$awJ_W3WQ}1kIcidZ7gV@f z*cv?Y8fb z>fS!4_U}AK4m#2nhRole*VuR0Q2Epo&U>W&eu|N!S~@qXbFx29#@aSW@wc)<%#Pd{ z?;Foe8`aGc!8P;!ZjUti^hHv2>Vq^BQEm0y8(oX~ZkO%ZOc74(y?~~^M5_v)UGl(F zUk_%VpP?wx0f86!e)pWiEcn00SC$nT^!}JcnV`|W*tkxfj8A`D8|#i~L)9j;Y$O6O zm2FM_`>m}$yu|uunef%)WUj|js9;>Sr5jAK(NM$}t2ag27FnBpBD`Buw=dVFxNZEa z=o|&DCuawID=GvHKj?T+9kmd2Y3;g-YMUPK!OnO=HRvMm`vK zBXRZ0A~BhL16?#HLWSe0No;sEPuO=w=8JmQki7r%LwCshA6CGOhzu|i=&XphszPHP z5iZ$ZYfGS$Q$hODlb#pw=x$;kHeTR2?n$I0}?Rn&@<88!YXTfzBu;uTvLTR!PJXYAK$@`x# znkg)nSzeU2TFa4CcEa|1?!UwUkaJ>hT=Qg1)60VOClyG0>a!ucygZ3&;x+3E|5Yn* z$kI=`!xKO#Zy10#Mbnl->J<V&%oTZf}`=;ia5mTJ?z4*5dN#q{eg(LtdR9o7FHPU zA}K23WN|{cl^9xA^ybNQ-bq?wuKCL@@hk3%+^{8JP~Fs)?~*1Z zH+J8ukSz&5NPoOT{B+gb%Jr~*1L{4n(R{np0Uy%e7L!_R+-itwBaq_CCsx^zSO%* zaa}x*V5YvSk1pU~EVp;L|BnEguGx#GEaHGU_8p!#EWq7*4D;bq&X_5ei#IXp0DIva zP@P=NLnrUtcpu@r8}TA_wWP1EiVyP;Li)O4&MYnG{h{^#Efzy&J_Zrb@p!A?1WHnY zt_a#ptcTmb;1Rc1&7KEZgoiUoJzbN9`u*juEJa@JIcLaVo`?6jKb4s&ZDL>cCo}Zb zp9*{L7;e zf4r;Rao_S}JTEmgZA=<;s_l`gQo-t7w-M?8yf4M_@ zc%~VR|D3}A{0qMG&y4r?|F1qJ?sr8tQv8WWLXrr=!9RZdxVOXq_tLIND1=KU?Enww zLsH2%A>jnC(TBO_<9RWoJp3aVl>-@ZkOGnvPA{e?>WW;Rv-VaY~6Rh784#SOe+B0#=hcRZTQ;qu(={(TW9(1xE_nkxSob9r&5 z;-phyQh3* z?~WMHUH-_?skSrQz}CcQ?2g*H53s{*(CcM)jd;V5^;PMUYDiaAPd6WUSr)m7ZF7p-vN)SA+{Gy^yKo-{dg!~ezKdvN#l$d*J@Mt_xFceBm(n%#Ua|;w~J3P z=;NJ2$SbNXH3hyY8Z1V)MS*oni5%@*?vbVPnWDz`dciQ0r_Q0{E>0dLlK?d2V zBQ7~5W#OzPtlG#ClPcy~*tL+UDl6*;X1C`J2w?Nd0gSG{ToLiAw&Q`bVfO-yl6hZ3 z@yi{&4|o9pO}xq@ymAvRF{(2^OwxK;<@t1dhtjw|9x!$!aHo6XvJnfE3=ABb!tbMx zXV0XMcjkPgC2+_X@R>Rf9Ko!?iFI%ap!sD#tI63050w=H~WDvjbcMzzb`2S~?C zkPfZVcp6b!H^fnJZH4Uim?940dTAG9|Mi88+2h}jEff`Ny;nyHbVKeeuhkqh-n$9` zt3R5WoH;5W1Sq-!0PP`?nDd|esM02Oe;lIS9WQZE1${OwZYp4E0?nXFz2}OaaKNGl z;bZ7p(oHQRT{gfmEF7N7cjWkJP0Q7#7I`Ms;5si7^7zH#AUzEYCy*fl3gUmRPV;KI zilT;1lij6(K$v34$jHgaN@hJ^LkiVRZEbC=4t#Sp?B?g0fS%Y4E(Chd6N19B z3KDn+hE3j?ke}w8LhvqGQgBVH0|s_|tt0{I+6lnR7BoKl6P|n#E`0n^PyfxE984Z9 zBVVeNE0jmqNPDQV>th%tmyyKwc;F-V!+X&j=_$;C4IWong_sb77OvZ+&6Q===76oj zNkiW1VT`xG;#==BQ1u(k{r{SNgFCLei~Z95TwGj<0MVVfTVTq7^%B5I@{00^g0ijB z#{l(|Z*K9&HUCu<dw<*d35N380TQ)7FR!Fc+992HM{i(Ow0dscH*$V?FrKT<``b^ zj>#KsWiFrK8_|6OWH-b+N^&|+jrI&N-)PO}A%aM{){3>kFTA#ms7lafBh;^aAJ|@7 z`Q@S8H&B)wGB{&DH@i~v^rv0a6zSLfYC1+Xw?!!!Htt1Cu523n7^Qi*)P_a|_zfis z?D(P>{z7b5<23W#-;;>0?Mqxyy`WH0S0CTitl$3qEi;o%-=qxb9?7k#W~-XsG?vHN3WXl!e-x5~9^m_rqL86B`h7m_N&?t$Dam2}C#hoLt_gE{rXL`J=nDf@X+w9?EGmdn^o+o@@J>O@TcnD0v&Cvp5 z%N3;!-?%W6PlxXoEsFs@)x&qAw_oNiPtpQ*6i<=wSC7SZ70k%LMhaEu-zs#E%1;Th zXebY>zM7+$86ZA-h|P)3C_0B(Q(8Q04GBR7Fe6Sn%hj97d|dvU78Q&1Fm1g-K`0R# zruHb&up{sm#abh3pmfuox9R-bA!4GJW zfHXz#J6v5zj#q*21Y0HE5I zz&|q}7dyfnvXP-FqFygukTYzc5&ug;8W3EaZcYMfZ^73t%VJ<#JU$c_8tOC$n6!fJ zxB1CP?`nY5X09G!g|6B#{1~~L!Scgm2MX^J>A9`9e6%xNWvo|t)7Hn{zHGWlqqooN zOyYzvCN};UH#xSZ^g z{nEXcy8Kl!|L=JM9QglH2>10tJrnRlNw_celzLX+r zgBjxC*!5(e_Z0os?L(Pw6r{|2ICM^d4NF-jRRa*6_p-) zI0FL%uTkAH2-Xe1;v=i7X{dmp?W`DZ08zB3oS@CfYKZkWPtENxdNQR9Z(3}W7h)p^<{18Ss3Zw#HRt4Ju-P|9;Wax5+Ny?lk#eAoa{iza}lyc24#b zy;*uSp~NPpb68KcD?fEf2v6sGIs~uN(|ETsXb(1i6s&d5eert6Zu(N2e=-4MNbbdp zq!bCq=RCT)r=?psphDiCvMTKjS!l~T+Bg5x=oO5){hx;oJG}A@fynLt0`mb3)yu^t z_F(guZ8QjIDCnY}^@3f4h`6guY;baNj<=PlCDNfT#axe4LamoNBd%!4JwWSVe!5TL zaJp}vU#HChvec2{daMr~=n~UCz87|v_bQ=wqtaqW5_KZxb6F2!`Fa9-RrBi%a~GM{ ziU6YrENXoqNsO)I;;!kuimPP(b$@?3fc`6j4B30ZB=patnhy`1dO!-{!9v9E=-ULB0#5OduI7LRwYHWs&hx}q2o!G=Z+WLkq7 zLl1Da7@N-EUuvVa=UeUy5l@tIN(GJ z=FY{ksR_P6wpkD+BRSrJ7y2C7*5f5UFvt)&|KRBb7}=lrGnL-ypP@E6$jBDR@34-F z{-}VA0dfUT&+5RJm4l(R?iT+l_Z$D2$2v2^|K8av{YwiIQ|+rxKrR8v?YT~09=UyE z&1EgDVsN{}GKnD)-!6eRX{yH_D=RB#+tw=Zal%Nq=(u`+>%x~V)lkRDy$4GeVHwJDRa`I7Cxv&O@68)b~5eUS& z(tjzC$U^=eURzg}4fu48YyPo3wyj41PNtI=OMhivUbj!VvXc`qMHAQ58#l**S}aTL zX=FIHfHsI5UXw!L=uS*%>+9dA7cEZ&{kYTPN;=s%-~ba(FXq}CEbzvX8aS=6v305G zguK5cuOu6HcC?)-oBdzU_~}2-Shm{6GsU*U;5i~9G*UaNvAq0IPj7#8k`RAw5>DX( zx#~2S%G; z?$$h=prBxEObiduqo}4$J2?Ch9H-QfaUgMcdbvGP_DtzM_tpbJ8>zGayijh<(JGCM zpzA+r_!n9X^+k;S ze$lvrwl*`6|12NoKhs83E_G>ikAU6oPU8idI?avynjh{QKxA}JxbBOTxS?L~A8YHz zyDy|l8nJUcO*>5gL#gVC7=LF}lvz~2)mak-8H@M$qd{c@(xB+LIAgJKNot28(NQ9t z!6XcgAjj@D0T-`f^sOp;B-nTN{(4}r(x3bjDcp-X);Bo;mwRcu@CT-A2^XZ3ve#CS zdd@8LpZcOJ@L%=C>P?`J`_CYviX#7u%>CE5{(-~(>l^>8_6`jG|2oS5pJKvO0UxaI zV9|mTX4ZfuR1v%n99M!ZiGLkY-14vbZ;#@}NGXt(xB={azdc|tHYH^XEU}Gr@=f?9 zbK(bwj{r)PFh8FlMZCP~5?^MfsCETsJt~j)DgD>EkzoH{ZH+d*##`k!@Ry2_bWC&J zOJA-aG`F1wz)U$mz0|<$GG0{)Dj;m)!h>c_)vMvtC%VM8U=lT;Ok-tb?cQ7JG6$f| zB?}EMZ$)+W<10K($l5eZSDCBEefzV{b7=HfZr{vlBP*A*^t}G4+3Q|?* zaMK4nZ%jx+TtWgT;2m5|zvk7eM>4)AkFaFfKg`ICUU5r<>C}2297`CUY;sB<_1`-0Ba_xKjhPsgw9;|F^ z`l4W~K*`Bv9(7h%P%z~qza+1qpyIwZ82g(?2Eci2zflbZ2u={vT(lXdlwFHHn!`K< zdbWj70rGG(&Z4Si-oH0cQG4R(oN#Z! z#Kc`9vEZLV3nUHXyE+Caf!Wf@$&6TIVspiLvL%UE1j-C%{C$Q$o?v=HnXA5kKZ9}@ zAOH2%_*LYsqOhbSD*7`J5l2o2$!K*erj-JG@G-Q6<7&|$!Jj|+$OF6k&Xe}L^Gx~n z&R>8O6ck|YkkyYMj$pm%i(C@d6=s)J`%ts#{BlLqyGgbWF(5%N>J&XQ!!u<|Liae& zF;3|-m+{j?y8E1*u~!J@F&a!Xv7jF-Vf$|5KG5`38P+&-VDd?(l0=mqnp!T_5fz2n z2G6*_`#s($_r*iA>eOcN-TN6`!)nH}V}@bLNm6Hm&d;?i`T~eQrH*dZ~y3ToMG@h6upLo3o zfbvy2!TO874|OBd4?=L4Cl=@=^~mykFy2!xATyBs?%jf=pOux*pQdrg1KvOnVxmx2 z-I6$D%L{#{cfJK1EQinfuChHbE1id*1+6ZWPNkjb#NU1Z$(IG)y*qUo*|HR^=WFRc zOaRt#e-BnlLaJfo&ItNqQ&MMAI=aPPgG|{mKry?5_aBh!k=<8{pkul~9|I76N+pD= zYXa?FEC-eEPpy)kj;#F{6_p6OQr*K${yO&voeyY2rFi*)dA<2csBQ@|0dangDCAWG zvBHrNSA@fxEtF|KPuZWQd~FhQT;)C;u=Od$G(Lmnk7lb;CZDw5@X{Zxbg_C~*_N zv#km}BZGi$P!=zPc(90D0g&Ss)ct3VE)pZUOk}hY*C%wb@&y=<|8-?EO90m5hag93b(YPG(`Sf>Mc2y1W z_>Hdn7ORa(2UC8h-u3!dyV1=oIQ|M)}~VcLbpPR>o=MPBIkB0 zfiYj5l}K*TYi;e=Q0^~6)<@|p&q;Af?SN3({CHAO|HtcOcZ>KtiFs=(z}i>P9cZ_* zO#6p3{8#>LXcS)aU-vs!K1~(?F_p}7_y*U4j@mzJbc4-}&bWS)NnE8|Ox+-;)AIE6 zW4MOE2LF5xR{hmz@KbsW*ktzYuW-HOMqjt~U1KvH0m>GGEs+yO5Tu;&`LiXe{2PXe z4j_mHUB3$^3eABaxR$}>WL?YHz@?`r1_)VuIwQW=a9L{O^49OBI3dSXKo!Pr08h%| zot!k*Exm_^r0Ie`m$r|hK%2NHx&?cpkZ3R1{`*k8z;IaDcPpVtnY^i5>pG~$d=TT) zbT*0RLyI(*$t0FKmz|i1FGBfmp`aHmfqJVXpS(mK(IE-~N2P?s!GQXV$mxI%i^@8Las%v!&e>`Nc0*UQd%v5=Ex&%3 zADUmj=_Z_WrF-8%xtJRrIE9q2L`Q6;69w1vc&57O=-y-;f`!V>{6?sVp*s5mPX2ko+w|9+3c_tTq^T3l->R*(?6O_Hmz9 z$oG{YVDsbAbxJ~SdE)vL@rHrHq6)UvL829r?~6O@*E%{~gNf+B1#v={s48H|WI2-+ zYLrA}mK0N}5sb~(SUpMnQ$4Nd+Fbv{#>S2Ncibk}&7qcjpXaTJ$E-*WdFa~(W2|3b z3t(DJ{jyUYY54%i_)CI^-Gc5;2G|9aB_$?u=_eY(Kl~HVD_1Edw>x*a zJ(ns|{jAbvIwxos-xXxPO!!=~&i1fub|SeCbJ0;TE=cntH#`36BcSH3Xiq#QMx zWIfju3o0~S3Ey?EN!Q$Qn;JA4|C&oQ#l~JhMM~u$Y&ovHv53CjHI`6pI9J$USU5?J z2Ms^etN&P?AU^3LA|g_P8BS->dB0!31RB}BVU%!t{i#XPo2__-F3w1Lf;7#zX~9Vp ziVj7k>SV6)_SWGqnuoCOPL3A|j$NG{2XT(KV4_Q5fkQ;IUNVQ$cYXit zOSQcpV>sgis&Dzz>+Q7;Hn#miv7H{Udnh^9>m6(GXrU+YkqaV>ZS+E~mo4;?e}VkP}HK?xcK^Py7Sz?MqT*q2ZSU zP`DAiz6c_sX$}7^|M|mw^ec)Xw;mZEy5Xj#BaqlGrEU9v*n6w6DF5*5SEYs?K)ORf zIs~M<1VOqR1nFjIK}s5=B&9o4B!})61V-uZ7#Iem_k+LxyWhR9YwweNyiYvPi(zK2 z$LG1f>t5@#q=rX+tbA1pUb%Q8{_6>)sexlp={#%F%@k(xW zvPvN0_Q@APIv7n{sd~l_97SSD{w>}Uo<%_bI*~#KLw7%y?R)b_DBY;0Ub zBEll{Wk@;2{j2vnGLW{Rrd48I?5KCw@HJN=t0`6msbs|O_kkRc)LQq-WW%n+6c}T$D zL5+)RmNPPZv3byXmdK$pF*dgU#q9FYG=X|{#s1}Yo(xQ7;Mf`_0p$RT6UZYF2pzg^ zeiYeS*~s(L^x#WU*a+;mf@vjV&1lG`v@sJ$Y)gOZho6m7nT$890>4V@-t^ppd3o-h zQ-%%$;DDJ&7rk7|?OJSulM-PG8u&i!H;^NkTthVf(*Z2C~s#;&H_S?eN1e@UQ-!+2*Bb z6e`%6m2whbg8_%V*vYYC@D+<;x@-jAWVY2AK|iQKWZO2ITHISz92x|_JqDZ|JubU3 zA(WS0@H6bEG6ZkI=ioH(`I8aMF@ifV8~D$O``lNL(zKYXuGVA;btPvNc}Y}Xu_?er z{(>VH>Tc3vT{%F0J4bXPzIr^>r^1FMm?kv#fyY=5?gu*piA9N?J(e@y+pTKd+KLX6 zqE7lAC;Z{7;hQ&Kgn5AfNIU#dqEIF{w5N$=3lnwEp=O!EQbVv`w{gK36AMq%Wq6$> z0D=94_4@NKK(eo(`QU@)0c5MY1=oo4e}(P){d^1A^Ie_3U2I}#djwOA3NUvTGlfDf zZ##+Z)Y5X3?T-L($ec4I_>|$}&3jIQyE2S%N@`-x$i?Gdx{w3S;2Q~UD(Kx$%lLgjd{wd#RuuoF2y?z!VH(6KgUh%&24RMRRAAm5N!`S3K~85L!PmH*v1bm zOkMS~PsJ?Ho&)Q)0brY-Ep5cr6M;KZSKiXX{>>NhmbjdUV+OL+c+9-Y^qahGBYExn z)YPv%f~drhL=x6|i#JIhj#AUjG>_?^aY{df{*bGgv~Jns@yQY4NY~&>V?5>?Or_Sq zNJ2p&J0|RSSZx!l+{%Wb(!7 z>40@-LSc>wlUE`Do_>Jjzy|OZnNEMw+WF7n(nsB?Ny@1zxW>3e+%m%=a<|F4X^}B3 z&jTah3|PY^%8yUK@jE+$PYr7=IfVznr@%44eEX$$y%L&jn2a3Z75M-mLv$qmGNuzT z+sTQWNI$4t!F(qpjTykrP5=5Bjussq{c!2e*O>TE6OC75H>G#et_+ps0)X#bOYR!u zv!OJQUC4^l$8^%>6pPsoc{s>(xfFM4T@GkQSeSC`|(;U>d(l28cW;U7r^o;sU3krJf ze}CtEdwlv-)fR*OH6E4{aQAadn^P-3#Zw11I&S)OK={5Qq{5UjoAYp zC#OJh@x#veDo_wL2EY&YEMCX{1@n`4bjX}FYv_8`7)j9jVA5$FB$eb~%&1WaExe+&3vv5LBB z=kBeWExzG*YRd!PNeK#zX@d8p|Fo7KxO=^SW3;=Mqoem};pWGpN!E7p7G`j)LBE^@ zEi~YIN5N>FdJCz7`c$k>>Ghk$yi!X_ZbCA>D5VRTI>(RjNU0%xhJf^j^DXMF$*W4_ z9@=59$qaj3&|JAzCYEa0?ppXP6?plo<&N@TD`Kq1^z;7bb%L?a>|#l=Z)L5m;$;Gg zxasPa@znp$7t+L(*5mFBgn@sdiyH^K0I%LCc$*?0$I93-$y;3*pHo>A1P*A+&H;FE zG0eI|T%NE!Bt}06Dpv3UH#no*rC*3?qFnf& z2HPawb$3q*I1TIR=mHRwwaeaFV!q#)o_WE8*T*}5E0WPGk}b(@ICXpA)MCV1h$S>Q zAvOgV4203en=5%9og7dIIag6I(|1YRFIa&E!w?oXbnTC6G&mUQ951mfP9CA+L0Ng+ zdES?(=9XE~N03KwqrXx4A{O-#6b`}lQxMCI14(DYjQ&i2;7e4;b|chJd1Q5M5$4Cp zG7ostMgY0v#^MXn#=J{_mb}s2v9$Esou(}vEjycc;9mBYE8t2=IWN4%Wx%JA1iEoZ zWcI}@K1wLw0{pw<22*7-^xH1P?1!03SXnwNyCVbB&kk|0*^>l$CI?o}Rh?lUFo}MZ z<-u=Wk$5;A4%R8Ae8~2h)DB~5CJR%dVx0UFF^wGyi^+n%mP|xwIQF8xWUcVMssEvl z@7Cvcd*lmKC!_jrC(*+g{W+4>mmHU4w z!<$R@mMYc0GGMW(oEvyferOb1iGc|VVd19#1$rIju%v>zrRScqrmU>=a*Y>(_-fS$ z7(}XM1ZZl;LYA$p(9E_(%}tq#vR{CgW&unavH?#w!FD-#Y!#Yy;b1IjgZK94#kpmH zFkN)V{axhgpKUX{VUQ+S-FpI>B~Zaa;S-C6pSDk~QMi36LNf-*tT_;&=)75o?;t$- z;VA#OE~>DoR~cLg`XwmnkcMSJ{OFUq?Fe9E`gv2+5scs*lO8Hi4Zwd)3KuD!m}HK1 zfbs-hQf==ngkI2NC;XG||D}*|*7GBw^4}$|ZyG4ktI~~j)ug|$a*7u#SigEz;a9Sf z)U`&@IUE(X|0DvJ#tPU2dOg!iPWb+njXC!fgzm+eJ3`76;eKZEKB?%&R`R-;!{D2? zc!_R}F{erzmsWx_&KH;9YoiDKXo^@S5{IV9#-59*Z{U6Rr)anWeob?}-X{#-6&^Jg zjHQq$fyVj4k%;ucTlDqI81AjX+Mrt_WJxbOZqL)Ca4~oMCt=kS64x?!$mKheppzK0 za_~o1;dg7O$llgvFkz%#?!MS(72Gs4AK%m_=?5l4~L6~Xj-2qYGnVFd|EslTHCrkJ5xXuJ{=&gd|#`%3n#-g$**`Omes3=A)_q ziAcPT>l0rJx)%Q|e$AglgbB;$3A#ZcAE2qnwPf__i@_!_r0)O{sG$MG7v$@}VJG$e zZ$jQs@Xhwb#(IL}n8RhCEsYmfe0^NGWYt>l4$5Ru(yL-9? z3w6`!kY)F zqr+N{;+x13Rew8nrL;9}^yQLuh=2aKir~M^TxS2jvD0tRBK%_Nu;CIxy0Bs4T5A6L zaH-9RbiT8*YmnKDV(C3Z2SVp*{sjOM=I1w&O@_=51XXDp` z4Zy{r>^gzOyR%y1UqO#W|Z9P6?3t6e$}HCQ(s zRAFT^Z@#n=LB76!6iLSKd)m8iYR54uU88cEaw@atELFAC9@q-KxWk~}8^OjW*|m@e z0E3re(h&gDZW5Xb04}s$xS^ClVF5T09M|BuSYjF%<-NgelSHKZm3g5<82&A)nTD6Z zE%o|QB~!4-HUDLL@NIdtmQD?4$hVYSHl4?5iTduiOV6Rk-QNk5;KC3`+l@FogJ)Xhtk30}ncl=RwyxdHD~anjo-Y$gnV| z!jYT$xxD`w4Sz^Ct#BQ=r7P274$q-MdN&p(VYS9-5u$3?>@lr_FIb^V4Uk! z>qc3$sW|ZydZQPnhe!5P9T6yi?)B%5Quq7Us_^hP7=AsA+~7WfDe!AM+u=ZNU`aH2 zvXYYy_c&D~q%qTUmx;UBay=h4xX7s_B%&^E1`{}<3`_zJKI;)|#oV!F}byKkOqxo8Fu9c7d4bF=qfWy2Hq5GvNxD*^6 z|NB=RK0gZsbR~z}J@1;wG>E)L{UH$X0Jy~Ee}?;H$s{+u9s?VHmuj{lZVTs(4hkcR z%Vd{Be2Yrd-5SXiH^6PJjShYt!a5isM72vp5kbO#yx`*YxuL%YkCzL4M88nDW3^D4 ziM^h=@Ex+~{JUw_Pm(c@-uKZ-0Fx~Xobtij4@jEjwtg1JrkU(dyI#QCG0UHq`{7s& zMg`NPy^+QU_TRv8K^EcW@92gPoF4rP z3JPXg(efkTh~NOGNue?@DQF<6E^pmXu_2AsHefAhs@X&Fmd3)Itc1)4a*>z-n!psJ zfRl9jmz0#~;!@(v4Dv9X@LAJ88qZ0~Ea~Uj2I1lo>EgeYH;<(sR-S^y%Yx~w3D=|K zZnLpvQxJ@~D{)=hWYHj+C_;#-`NG<>NGU}S1#CnDmHqTSNob7S=>G0@`Vr#X{jBbQoRzJ75Aj}S>!=f3T}AkOTV z{TEGJ(}FudaJ3(_ea%Vp%yuSG{sjmp5`FLNayxGZO%vR%-^CA}^ZorZf6kk1w2JK& zIiOB)0=XK23NA%Aa=MPytQ%>aO>Bq0;7*&F^h)WI3BY8jNXxd_jtw#bvw zE$|E@<#p4TdlMY;V?!A587!>=d0ktx`ozmfC1f4XuL>JAd{S&jcP6I>X3%bv!e5lB zi}jGnl9Q8b8f#av=Ln_}e&Hqi00e+$M7oU}XBBB3YGg@XSQG~B%qu2P&3qkQ=!ABy zVWyC(w?u3fb3Q)?Iw`DwetDdnox+6aykyQ*2xVhv6|>52_r8M zj=`i~;8Eno=gEck$+F%9%)VhD6C$vXCg$uoiec(o?yt%8=3}#N>+2ONlL7rxIp-Y#Xa`s^jh~w$a=e>)|BmwWl@b z0zQOWZ%C~FpbVuERxhWWvVG&+&s&&w3_P7o6yhoJoyICwfo;f4F#klN7aKv~=WCQ?}Pm=G^)u6n5;Tbi9TW)&dudg|DrxvrWYT^_fKaO7ntd%Od{>bzHVU;Wr+J#}J`K-1ck;lC5A814x$y z7akc0)=ja5k_?y^sb>l5%%@BcnFPzM$d#S6%jVhIXw_h@CN#)&(mDFB0R5WG45)$Q z1y2BUhVSK44puOSb&m{IRaj1H&Sv|(o*(l3_WY5aH;MfU8R|K#{rnpawTN6e$zImF zFblw{6FpmO-Bb&gl)*M=rnFGs7c{qWri&yWz@zwWcFmN(RVAj9r}&i3C(!#YRK8|B zbK5IQ{{i56K`F2|L&m!B$SSLkpu1aUkxabEA~!%$4>>kIdu6Y0dc}`S&-t`TdXHW) zpz8wjxxU!nzS78y_8cYHutM~ni-rq6n_w1RX2ouv2RZ?rf~nG4hTTh4wI zS^xQ;Sm~qozl^(E+r@mqzAQy*0RlL~F%v+ru+uPVK@#^Uf*9!p*wcP6T@V$wFulX9 zrK8R(+6!N9TP2~517H;!(8p%-eCC4(UD?LV53EJ007yi(qNKzyj#rFVtdmf}oV_cf@Hr;j|JYAXEfzQNW!ILyc^upK7OrU@dw(f;FPYg$aLh?k))lSOrZgLS`VbFZLkq=Oa)Q*aK2x@{ zzfBbp-tOP%LcuWUSPpDchj%|xpPUbgWW1cjI>jzp3#EkBj8kF-gNnimVcM`kK%kpe ziStebjav6}ionpXR8qK+WwOYuZ3>h{Z0QC5yC zPIF|W?Cd&lg)+HERzasSUX)hll!&Fhy-|&`=W@)d? zA-Y2fIqDne+iQz&;dH-{=||(P5G(T+``)_gJ$cPJz<2Sh-`L2ilHh;lH6SMQuo=S` z48FPUC?AA(08LnCqz1Ht?f19Grlfawn`U>fWo6_12h8q~X37aiXm=eH7+){HPe_uA z`P~1!=|p0LRm^|&{NsMP@##fc~F028^$H7AH@jH~Nne77?dOa(OpF z7nTJ7y;tDv-tjzy`T+4mj7~rMJ({fkoA;@~|L4CRvHbU&{%!9c6q0_%sPL=*?LhwT zZ~niV7XOJZ|K2a~!vFuv{P#8gzokR|_m}nm>I=Qd0Af!M>4d3PAMTGaF^K=^CipKv z0jUcETvvA{8p`GO>Ok~54OoK?0f{{wtd?yRAV3QEf~W3>dQ|M}$^cis3SiNDa6Ah- z%`16%{V;A1_!HclGYPn%fDo>7qjPg|%Ct0aBr2+@QL}f*@}cRm!;^N7dAIn=FtRZ@ za|GF*)35hrE2^rB14s%a$DVmMKO{C=JeBWV$T*(?xv`d}YlHM`s@Y^xB|$ zDdFER$U`IakaY7`ZQ(b?K1CF_x0^P&ET8}l z2eR6q05{NOLJR*~qYF2Hf=}Mg&EdMeI!_uM#lghGd#ENTOSB`qppfhMD`>$NBo)13 z(>uKDA>jV?D*9Mfu`-d4d`VP!>QkZDe)iL6PK7-i(|;)L3HoWH0hAHBn02CrS96u%IS_G`aQIuH#oL}eC%K?VHlPSgA-$q@aE3&L zCL9$*StiSM$g@M8T!cklMZeNq*vQv`T28ScIal~(s#q&)|4C}&kC>RmicI#cp;^>v z4{6=(n_X<*9m#>lbBfdm~gB0HdkYF^Y+>9ucO8Qt9mcF zsCeq(&X=!Z;}XA7Fn?VoSeSBbpzM|f)+pm#1je*8R#!a3ETo|LmG^XTa7X~#{?paajq_^C ztJAOEUpZ4!v+dTd%JI}B z=OEjfDi5HRjli^!6i|p(zL*bn+piUATi zpWRQXA*EyBA|e13`2vO|z#(bV)h+KAhug*q#>xwD{|4Zrr^!!kPLKTmIeTvNmLz%9 zuv>daewtEGE5$og?+x!0J;8gbGuR!+VuL*A6VOKft~udrQuG&iOMuHma_M;8<#D`x8cQvk-zbs)vUy=51olfLsG|;p^vghgy#=_ zZTJG4P8eLscWU&7-@B0rMfI~4W)z)ZKj_xqUbAXo4F955FrxdbBiMbZJxhViB6 zxh)VY*}R{|D41HwJ+w}A_&z#KhCC2+zbUv$Fmp`RvUNey(In=vE`DFzFjp?Fn%60@ z+T}LmOk8af9TY|2jU1%*X&QLRuUU0ln_qbIHTnA!XRXagsA%jyyS%@Bn|0Sw+}ncC zL?5qYu$c!vmoRx2e7}V!{3bv)7G16*uN zEfA9~`r>D&a_iE<+|9~6O1Kr#iJ4lg=F9bmR8r`gnQhtktuMDUKd)~!q(LSL3zkR5 zV6rVfZ$d~OpT|~y$P2Dl*F}xBO4uzF8Ns&VKeJJGGHJ`Iy`_Db*6cp2@2(x6zPKO+ zL{xxVTWOKma=ZHuoZc6(XldL1mx6#8*Y%0xtkXw``J$m+CTC_AEcsq!0z3_*8V4I& z+C)c&N6Zcekoe_u{QYKkq5Kn-gu5IGw*fPPlw;Zz3WYiYrwdlScJ2E~AyzJ~qzTD9 z_N+!nFW96hkRbU4hr8aFUf@H`BanMvEWxI)uxImJBiz0oi0kHGGvlf1)DrK2Y3bFQ zI!+qcCA^dqWV1zA+l4yGd(`m`S)B@HkiWOUzeKd-?lDm`XEJK4uH284&4noQ%FB`_ zOvoin+^megm1_@=8`&9ZO`8$_@u-&x67cVc77Zz&U0J=HpTHl^^1vIqTC~0KkCS`> zs9tG6!U8bP7LVQ?AdKWB2Y06xaw&7T-W?i_$O}bKAWpHZ-vC#J7esML>7#DKVhKRm ze2fX4B_0tp9HD(a^2wu_RPK|L8xRq(CEDt*8A!(k%Tzy+ap}80Pe(fOVrk( zS?L)gP^%MddHn_Nm8wyLK;wi>G_-4iW5~xzW5_DcRG?(OQ`mu+r|DMJNzO$9I|?^v z1k$m#15^B))#gX(cT*BvG7Sf!jNca*>K#X(BVT6oy?A})rIHd=2NrJ-hHF}{(FtMr zeDpYU)#-!IhrFL?*dG+msYTfy=DeP0337LcddXcTaeaXOr_m+PuhL_=mG(mG--sI< zNenPOV*N+kaFFt@{@z!=rU2K;Yc*i@Kb+G+Hnh%fTxe(j5xmaFQ-%H^RfcVbX&eR> zHqIby4}e=W3?zqVAchT&pBH*9-b0;`Mf_H=N^`o7oBkt5_wxrPQtqHRt} zH2*-4tD@~MKf6&}`POZO`kjNv6`JvAYf}=^h=-=eN~a-ADRr&aZGsvWdv1D~-j%Fw zq9DmW5SOSKqk~UcISh~9Gx8OiO;4^-A4?6UY{y^i)SEmZpNht~MtXhAs76#AYq>!x zJu?X1s(?HhwT)~B9556lfF(t}qTH`*cWgV|4hDK6!6HBhN4GD5)tYf@UtgGt5KQ+b zOQbZ2z!d&lGKT3=+}V#=jHH=zBDkw zmWo&1yJLe}&b^O(RdYdx;+Ic+?e!IR53hdpx7lt86ogUr~Ft0q(r# zqI!k5Wk;{ts=T+QR}5P#jT7R0tfD0Xzm}-=9b>0w>Ur-G<~!Zi@QHIHRek50colQN z&d}{0U+TP?`8~0QIcmi2E4_%E&2N2UmAo~_o^FBUF0xyb(Qng2++vhkx0S*V!~)d% z)cWU{_3*af5i7{w{Gz5K@bMc)p|R9~h3q5bYD7wUx(ZPG(XLckUgLIAU`2uM_-~v) zd1(&73>K`8is7U{nHdm4OLlHxvXn))0_O?hoc zCnEP@{|eIb7I2=>hAskmH~~pQ@R7=2ZD(ga;h>u^fGeRU-`-EBosmjhXjL$S4OZ{k z3hhL!r(a)+$w+ll2QAP|b9%0G z5^;Rs6LGJ0AwFTJFen9=X_BsDn8uyV7dEG}3Ugiz)(yr;3V*W(wD5Hwl;9l~4OrSS z&H-@7U-W}7_(P9H!Y1Q((;2v9mD9i8e$olsKgQWUOCdw%vWWyLhhv5fNctdE#NFE< zub#+E<#lA&E=giUJ0Emtft!L(dx8wpAqEn{FJ8|-I@$l6lw&=W7|*s;Gj~K31UI}| zMJ#HgKC}K7Y+8V2P1RFC9b$<;a94YbObS6eJZn+7P@WBDY7y3vs0opgE{ z#(@M;>SSyT$3($&85m_Y)Q$gu>EFrrMt20YMFKI|56g0PPlC2<&Gz$`m-V#suL&^C z0vS}=#ec+{_h|$sTYD~B-v(Pa7clikjKqJ~rWixHuz|jikZl*Qj@c5ToNWCt+q2WI zJT>rx{}S#EEC2%sKeYJ0bBqwPn5b>mt_vriU~#Uh*WM zgWhToRM$^1p1Zgmjv#r|bKQ{5>py*k-PhKT%hCr{HI}in&Bw>?UZZYfU9Am^&V_j= z1tICguQ7u`lPL+l(TUcl1jz-D%d+M%Cjneh^5K#HD#7XlLsZyzD)(Q_VGl&C?u}Uw zBnntmw?eOvu1|Ll{s68@UEAphyQqc6j$2OO&D3;j02G#-yVNXiq2e@GKlw&9_DChY z-T0^U0pkJbSC_%Wu7~6Ab4d>c-D*Ps10=w?MNg6|?xWU5Y`|1hY`((~b||WwZwdh^ z)6+}a|73Knd#^|b;(%bSiSyUdX`nx?|1`WOLVSxyd-3tbYk*6X=$B&-7ku&im<8lo zt3I42l)J~U3}k+DDHjdeLdEclx85sKJsFR&`c>?tTIRT*#bs6{Qj^P@^Qmy-l6QA6 z$+M%Y2dB27kcCY^l~?%dkA}r)&QfjjzNibj{QFF5iQ1A0Jz5_pf8909?iY&7O^=`7 z6$a2fa-*7G5E$4r-dt=Xx_#%^@sxa7QeHmJcVDecYOsT#?Fg-z;{^eepR*vUT=&EY zGn5kkM$WScnoZgiFVT#-r-KO^UCvCdUNVm2%&TS7AmHQ^(>MK`_#DmPtKY#8{|trN ztHmj1p5>fhl`evFr{4Khjf?>EF7B&ti#;R|dtx$?#=vb#1e!`E>MNV!mm!UVK8Mpa zfKO z0t^(8sIEeMb?9e)$>jSRAlR1W(pGqhd>~QO=8A7nngyFMzs@c*^}3*x>j1p_LzK%` zCD6OM%7>6OU}H+9HcMurw)jeDH9~I4%j?7PV$~^>PELsrw&mPR z#^u~u9a)tVhIgauT;SvbA4l5aC3_CK72h0iXoTX-p`aXz?y@6SRkZJsO!d}<3{y|1 zA|2&=>@|$V<{hi82R#Qxf`Hift!i=l`}0-P%b5d|)4cEJLsPGd+0yW!ik7qK(q#LQ zF$v{91oV3#6>PzUJ-0|#cvpc{=BHy=O_ijtZF)c*yewK41>wxaUcfQ%mEaU+tX|kJ z6=tPD2ECFnF)i{s-=Dx6?g(yDY)d>s+aZ+n+Adzm4u)Bn?f4(poWT0Nq)Gj`-!BZL z5FGYB>9TM6@p|f6RTY6EwLp8Q(wzpM7ap=Z}FyBp0ubgqpTLjSzJISh(affxF#UxoKsjFv8 z!0~6}%giiN{c7*Yeodj=%#Jbzy0FUid|+^H8Fu*eefrwtqr-CYuf|~d>Hav(?*1O5 z@G@KWwdLCgZPd+ehx(3n;_7moo6TT9Ia}N@7c5g59g~XWowBl4KTMndo|HNd9`3)< zQae2P%AyU&KT|OYrs0_%9jSM5mi!rCEyS;^m~+Ykolcph+`YFs>FJdgV?LI0^nZgGtB`7V#-B&tHwmt$zhN~d8aZm^I?y~86{biS8EIKl@1wH|I6*9t>wQ-;-b{cC1Y@6+)q@?SqW-&i`(WBW;McEj}Pj3X;l;Z zj+*)Q#ekLSCmPRyQXU~wQdJQR(`T*m**=^026G>`q(mYOR06p%GT4LfhJtRhv>%~h z5dycK^scrYXOE5lB;SD4e~b=_wI!D-XQ3@b$JActG&ou4P)t71`u-h zWk&QkpX(}GT13W3|9&x-j$aORdvgbKX&eb2pJT6V$eRk#-}v0qT0*b=c&#g{8*fUW zt$M4WTlOc)amOF_7?)PgW%pO(^>i=D@Lz_tU+$~h)o=y*?{0naQzPM2c3L*H%-U6s z+99W)D8Lp{rAlF54yuT825ygqxh5<*U*jL0)x9s1w&PnHz%SW0L&)YB zVfl6biJmiZA6&KY zdSK=RC1MIfjzy8iR6qi0Az&N--5(QwlJN2`PbbzdT5k4auhx+twc!m|8Yj^UUXVLJ zmKTm%B*?$p7d|7B&>vbsh|9;XeR=Bj{E;~E4!=%`e;NE-H8r3~Fsv=g>Cftu4ruBQ89EV0ivi$H=`HEv&Ty)qpK`;A+&g!z4kXlRua zC<%4lMqR&I+>Eq6`lmGYG%Y`@4)A&3y?e)Jb83Bg zu7sUEm)T6f+bDa8k(W}`G`wC49%S_xPj`+=CxfFkL3@y8B*ys_mzih9s~%RD#=te4 zpPIIHLKwO%%)Q(&@~N=DeqV+dMw6_-fX~Nl?6Cz}tvm^*LEUN?v~>mkdOo&qz`Ezi z{eChSq93)9rS+}YUl*D-!oEE)lCWFRj87;x81aNaW>1e=Zo}cIV`g4`$RFF~2;cGS zQ^XUNTa1Ls5~#J&ljd2-E|}$qWE>A)#x8 zlWXg!7Moi`ci-mO+4s~R6f!E&AEd}i!-_jzaLJk}am=}Dra5ytP4}Fc_Qa5re6}EV z(FD?Y=Gcgh;!Kf`ahMK#9FoASLONREc`>4LwDeFW4H(aw9!?Kpy&Ky;pF&WsTZ7St zwm6M89&E4NL6_{8$l73*eVB_~(#p1mt}ejG$WF}Iv3s}NZt@8`46LBa=Ly9Z=b6Pk zmgm`64#`97w&iuQ^rTN3#!hwL8a+hpFJgn8;D0;W`%uQvUBJEA=ig6D8)*~hbg=_{ zWlCZXa+rWS$ggbMsBruzsN!NZ@JDI`OrKQZXQYbL$I1R9UT(HS#)?_W!stXcFFfFZ_}T>`RP{{+FSxE6Y%TO!r9O_#ZJVGdUGi8#dFY-z^UotZ@D^1Xd zXImWL+^i)lgg2+8SetYS2?*$r5-7jg`;y-Vz|oVT&doq!FheD*Diy$1Tz0sjj7wS% zg2&LB0P?Cqdw@+$cOWlCmwzjGO~m))UXDnroy*b+6A$@iO|_eU*@WO;Tl$|W9si}A$O z;^sH!?Xe}_gS;c0m7x!!6|3qdFHl3UHR6p;I8M9V4%ZlRCXZSL#jpruKnVxG9~1DZ zp(*0nb~8jaiHs;atj7kyB-M13!`Zp9y&x+Fh=a0mJ|_r^-Z}WsxBItAc&n?sNjXRn zNh6(t7|_}1M?Hv#FA!fkK*umOVO9DY5(| zgN5+y(3C913TFiCdNteF6W&4kDBL!8!lKun?8H<%4n6)qVCS)(hkj?)#k1td(TYwJ z(H}Et??8HIWPs3ZBHF0a#pc?9;T6L(>QcSrcIAgBiSI7-Z3hK8bWscBl3|=(hY2$Q zp=Y$cqQeWE;<~lG3{|P9&HJw%Df4AmggM^LN3gH0@kYAJ8ku?`X=sUR1{!0q^|;xO zFEV9)FUcSBk>i{X(Bz)Tguzty#t1f+)@5a%O-t!yDj|%zL0pFOlW%PAD5*;r*qyY! z+jYff^j(Wq`xlb7uCP|WoOKOXuv46?a4C+*u=e{-Hf9hNnB>L#Y|BqOu@Zg*55zdv zbc&{DCuFmOudqCD3&_}yk~{E2;@i8}R-^X9PG&DBRA|TD*DLj45aMaj9~=5K-~D(8 z)_wWlCgC*`X>Vw5UXZe6;n+aSF%wIDTAcsLBGhZ^>V)R3nsmUXX+I{lusD4q)=cT_ ziyCHasW{ON#u4;PUIs$06>BSF$K4dv6#$Q=9C^^3HInjMAfvffq}o(xTf;5vNReQ) zsa6#zl!w`5dxNNE5t?02Q%~=ew%1Q}DSonJWojYD0OFrm4IhSfb}P2EFxfTNnqX`4 zCiC$(;vfEzt}t0PY5$?UeG>5#rVvk7v$PAq&C-G9=lwN<|5+EK06Y4A@rOWB7?L4l z^|Oy;YziC>0_?u2RaL40z(Lr+kWEKtW{-HI3n_NFVNEXT9ecJvuXlw!W=FxmON@W_ zPSaSE;eiY{mL;^0^rM5)5#rH^=|7l+wv8JC!Vms@9|)F1*u}#m^?7WRGUr8J-9u4{ zjnTbaScJzR5~illu!XX zS3fA!kW^gi5hgya#$>pTSRUo48mDPVZVmaz(3B}-@$(6XQkd((#xr6MF|hkzv0{^y zef2{f;KKN(Id9iNhm*Gdr45`7Y++s{aOjcNaIj2hD_=Ja0yQR#VOFipenmmpt;}}K z1WpOrWuCA#qGtqUvn_YtLfvK;2N2?D+ggsvI~paAFv+o=EeS;+xehlG-7LW)=)9mR zcMU|Zm0A{F;al(h@t8qyz<1!+vF=MR@#OIwkzKKYQ0a}wxYjrCt$l+W zBXEvWi;$`&3}4*ZrdiggO)DF*(MogPsc&KJWt@J~$FrP{>Sh`miPg!+&rb^)^(7eg zp^@;3sf&aw2L7u3?4WPXm}t>92W*Fa*=XlkBgx`iC~G#ycF76@`R0Kd4z4xHpZ9q_ zo8~%Zx@CRyUMD4=_<|QdW{r=9iv3!ANwIq$C}&4PXL)nz2@{x);|#lu2<#EM_@Vce z#0~tI4}2wQxn!q@A4@+jT4d{w{4yVS2IX@75T%f3i3WGO)zYzRHP++)dXz0v+H?#t zI@yiMB&1L5t~oi%ruGa-ZcRaZ{lp?$LbBw0O=k^5k*FlMEMNkp%GjR^JHs4ZOikz7 zAHm*wwe_YS4>pL6-P`pnOU0&*5+&qP_~guCxxK9wKQ1{01^pkt#B*0u*nOky9`xUq zLy;DsRjkt>Y`SS_Fwic2r^>Acn1#e{LE#Q|pk;@Er4KMBQFfy^c-UVErgwy9rEWfe zj0H}H($ZC1{_F}74FULX50DOSQ-B$7t6{2;~|9yRIOHSPxhaPPa}4X-?#>J5!AV zLPG7jXyk&ZD8J>+ix zl54PWAVar$F)}_=@yM&LNwYSG&-DGII z$v>A{XPCD=B|!Y;$vhEv9lNun3=um*Fw8H1T-RB=*lSs8ev(J;O4RB@!+9_5cudn6 zpud8yuw3y-PNbAdg6VEF&8TFZNBBvdN$%8|1*LJsj*lgY)19dj5`X<PnP6k>g&P z#~cyTzL}0 z488emFVXt&j;_Fq7u2m^81_opUoE_R-XT9&bo(6p^3|?U_6Q4I`Vgr@{D_9o(GCl4 zxzBe02$6JpIu35Qst`cR<_Y@j^OAc#s9Kc!Hp6Z82e${$n%L^p8Ado3r}mbFcsl%3546q$Q(Q!)d1G&Vx#`370iC&I2P@9$ZA{@P1t94-UOzjbln zpt|Hj~w|{ ze9RsYm`_PbuM+^PE}&XM#CQ@UdzuCUJ`d1hTN-?QpKru`0C`LtINlwsP|K6iUmhi| z1^SMFI+!o!R%qH?Pkpv%+n=WZ)ml|Y{_vj`&2N0Aht<;ep-ljr>tO{no)-ZS&i}?F zBxtE40e;j-cX-Uqd@U5}`;PK|Tvligy$46UmzTbL)^PI&R_sW6ZKCXW9Z=Y?8c7wQ z6;Uz-Z0m0QYn0{eqPX~^23N1K6YP{q{#o{b@uOc4?Sbe6d~5D8Pwm+qyZ z=L+NUr%{I@?k>91|0gdI@{h3p-_Y_uqYK^tGAaJA7X+Mb7XObuBK?fOZKN8YjVl0_ zvm5{aKET7D>nELnF33Y;0KNsfLO9e_$+%@BagqRx;62O#{$0SN^-$b$l9~^|+X22{ zGC&3t_S~rpcKP+dN@P~gWSx+_uL2x!noEHf;s(w3Kkl{GrNM-R8~_S1-TULmskvh> z-_2J!+S4EAtChn-MMEP4p!fotR*C?N1W+hHdal{}(KxiH(d6F^(Z&NCMR4 zahC_&yY`1t?H>Tj6rYb@cTZ3AImNzS{I6d)0>G_xcDGhmh5&cGnH??mHQc?NrEECB zU+rJ^y5FpL+PAw%N%AjZ8%{Jj$$4E4EvBa;;q}z=zQ`52CbQ>2C?BqX-i15u&#CAH z)y1un#{vM6v$YTo)7x;or`$BeZ#R&R0MiqQ2*5`!SYN69MR9vB^ek6gR(46|9MJZB z|IE|~;MT}BSA>;s|G~Uj&UaX>>sA5yANk8}AHWwL)Ye+yQhw}<83K4!&yfFiPKqRF zSid+t@&TeWULRJ-(BNplS+*B*L^5MyTH1%_SXafJ(aajAyDK`i4!X~IiGg(}(<>`~ z>~mj41|W5NMbtP?l)0yNOlx|VF6zONLYtDB_d4L z{3YloYT*~Y4#vkXY3-L$*!?*$M+$q{SKXq%mj(`-&#@FFlM_zfj80p&8+RD~yt6Gp z54ZN}UFTjE`*Z9F9LRm58+l@En&T1Foq63EB&%KdEpa%L+YsS9X75fn4Rt>NYgW&} zL`IGq9E_-PnEsH;=bD95`QK+ua;Oq0PXe)qo`J#iGOc!h&+OMq03u66VV0*V0;n5a zoTLu;7X$FJI_SehL>vUGqL1QpUSZ)-{mMR~iTAqvzW4pWI1>TDQ{d=O9ch-P2g;}p5=N|TcP*-biNWTm9 z#T4Yayci)4R(m`p^DzXHwa!~hlz@UKu1vSSBzcnPIE~MFe^aQ+?c#7=%)ono+St>- zBw~=|5+`@*k7ti8lh~@up_WPnv;+m^>;;86X;u8Y$!XDXe0k-j_n`dPT@FC|GHN%; zbJ;Ba@*k5c7jhaJndY(r8fz~T0bF%SALV7!++_%$qS?EQCgXn5x)d&(kcQgEQ!69@ zU8{H*Fa#c+`Lm0f;y7R^_Lo&oh>;lJMWt1e&&cs|INvTSf5IQSLnnICZjAZmki2)X zYQ!2SYKGeWn;NPDg+?g}38+h=krf!*ZVjrt8^E6cai__>Nd*SoXWpR?Q~vLJjZDYL`0#&tikSFdGiLxW*yOTD@q%s!8Z^|# z0U_f@AZ6b4u})5{qYJgL3$EBKhV)MRg)g*9u+GU@%k3tDJrlA+ki{FA2I9x2CLqM7 z(_ezE{zV9U^QM=>$PJ*HfA|fI0ZQ$Sw`K-5v#;k*r4+uCtlw-?r%K1e|4iKJX6%xj~rF`deTlrHZ`)fK$(eo}Ztk03Z(oFx>}imCDOk zoHf`carM*Sen~4U|7ot9K3<}!5#kWs9y1&-I{EaNS~v}NUJYo0)MBJAk0i4p=yN4DAhoK@IQUed7frld2ynDfNFXH3EI$ z<;I+lsVTK1#7H6WnY+96o*p?{!JI>2V0pGRc)VtG+N^-cV;C;dsM}-^A)ZD6G%!H7 z?*&LCjLJ#?{Y|5H5;Xw*c3gbY<)_B}*TCfvt@9y<^@OnZl8mTs0_w$C3F6&`^uxq-b& z(|v3J*lwP=!(-bUsa+0DU(%bG9m0ZbBSFD%0`UJ$0!MBekphb&|I}B{XrO`J`@zhI z9=A7U(#!4E?XJGw>p*t}LMq_CYbH#adp&RX&=a#|_q1KHnZ9z`YPW9CGwBI)1 z+IlW!DgV5y$8wri5xYO?0@<|8SgyPq$0 zc-6UP*W4`G&=AAtJFBymr^W06T&2isK;cAQh)*#Gbd1Se_QG`&I)q@O$a;ZDUm0iu z#)+a(Uuoaap-KQ!PhT1oT&MaMp+8+xdLLL)d@@b8loijtFQ7ASVH6dxvi zo-y(6K5rWc&!0@)%>rbA;dE}piefq}GGymq07Y2BiumB;$AG&d`o{`+u^tBTx!-Fm zxd{{QYP3b%2)h$WpfIEsMKdZyieWOHEf+Ye&VEc5%D9@c5qN5H8TnhcTxGg=c{VW< z=o=RjeYRRVi`6^ox4J3qB&KY%xfFBk`uh@KF-zk=?%YgY~@m zMa6SMD`aXdla6&3`6psmU)4cxsQnh;M==&EWxpIUFCB&DrKEe{>bs-T5BhB9>1p)& z3i1nfchEaL&Xk@2hH*#ut2rzOgWg6i(N&tmB>*mC!&f6uH!y$$E5|%p&u8i%k|DzJ zSM)fXs}z$kalmso==k43@TK4z8S)|S9JX+T8nyW>JW9jDA8RvB56z4|F!Q}myq*V2 zPURlApWbFsGqV2ZCM@oYNtV`0vx^M`ko&TWTsBjXt7u9ed{6=SW-YVYX^)-rsyg%Z ze(Fp7bafFMRyM0SOj6G+K^TcL5Hc<_79Y}sj}ROgF%rbPBlL z{ZFO4zQnoxa*Oy4FB8Q;*$9XI4u&|)q4%6xZFcFNE>~(LwoSO*6&m{El2$^VNx)gh z@oleo->&Bl$q=maBo+k*Y{4KQJ2a$zQ?ahrVny{|XECB`@%$M`q4_j&myR%K1}=yU z^Y0H$F4)`*@xg+>+iQCv8X749(V@YmN|mxp-v1tQB9s0@m%!xQG|_GK40>3{Z<}Bh z{0z`!pN?!`E!TeKDMnL%uRrW{~X`T<9?X(G6itw6G$T}IUt7@%8bQkU8Gms zMga(i`*$`LRv`Q)#oXJ7A4F8W-cpH$r*R{2cK6d-r|EqtBl(`w; zAsSgj3>2ZfBZuHr-7PszZiNUv7^ez85~7!gzcU}k9S#`7p2b2t%{%8uONTQx_VZh` zdAz?=KmE-^z6&~hz2*Kg+>tBvh`MMwEB$=h0$q z{B9Ag#Ui!ji?|TL$m_B@Y$D@9@g7stnYgIXjalKKJb z^VUX;nPEkB?^pYjWCM4Rm!M?1ECNM3jK1azatp=UR}#!D1MOdb z2%H77rOn<1zZ_F`kVAiL*YYi=8kI+3eLkhQyxJHU=B&(q#>Xd1hC=yobM1WOT93Hy zP_tZX?EV;*ZXh6bk}d=DDUD}RJ{Q5HLpRo7YjW@=;G0nT?sL_+ZDEas8eWtGu2PfG zchGXMeNSTKS-oCGLok8JlN6*Wo$ZVDmuU~xE~TRD%{rU7x&sRF?_txeKpxXmwUi_8vj0ME3O(1 ztL(%{j9>oRBc3bp-&i#u3os5LaX>_|yVq+G-2xs)Gc z*Pal!PO=&To&HJJE6>W?!>Jx)qP+r09%daerKM8gjlwG?=-+pt zPMa7H7nAc*?lWiiHI+L*Wr%((@22SD?;$mLTbDi0f%UftPRIW{71zN1pQ%ZE#IM5? z#9yUxkMCPx-ct2;KKJPQwMparEI^Kh7#>yQ3(4oNzT4+IO;bA^$VlFRwsFc`68u$S z29H5=5O@sL@)}73(H%#P#6o0M>??!8^?`SH3{~cT*B5O|KgpY$IFcV3nC9DYuDKlH zm=465?yKCL(o_?*aJ`3`AJ)Uw$Hn1(;9b)5e!l143c&ncH2dD|O6&3iHiS3`>D#8B zbyyC#aJ(1EanpJ6k5T;grdX&6-mFK5Kkx?72;EBE7WzDC0?sxxbUP9b_q@mtoSl~p zD=4+d$o4w0St{wSucsNt#u9qv0&F0apxS#Te|Pdb?6gDO1WIX*Qmx{(I#MX>$pQ)H zJm4L;{7hxI8TEMosgT;AjD;HM=SNqvlDqXx*M&@$29ais*`?1(<5tm`8_^QO#>92+ z;Dtsbq(BT39MPv>>Ndl!^O+`NmS*ErA}kF$ID-X=o>slg|1K%L|BRK?fs?u^`2!jz z3ECE7CJSaPLdW{Uts^kCj-t==>Bs%UIZxAvVtWQaPI2NhysL8da6XxTp;kPcae1n+ zHeWj7zCFw{TaKOf9DOqE^U&v`q5>Dgx}WuDL>S8=ExJiC(I4{&(wP|Ri!93GBZjW#69C{>ZheV~s>15j{LQA3WS ziGe{m%G3+ta1#Ix&NRj!&`5!vgHiDkk6}Y;h**^|-q+jdc2-YRPIh`Zsw}xA`DmGT^^8v-X5cH0Px-A)n>QNX2>gD*00AvK{(3lIeBa;y zjoa1y-q}6_3$V8>+zh}p19tyiZ~YBq?8BbYp;lQmgtMUpve^r5K5fU%+49*>HQNd% ze^CQjFdddF!xxoTa(R1 zw7NTrnI@fq_Gcq@&~pDxASW@+7bC%{BMYP+E+344g7za@g9;sh&WVc!LSuttVGZ?i zm)VT8G<(+e{~KZc#?RNz+YuI?JA}6_ z`xS1vE&H6{U-NZ_0Pv?j@p0(R-ZA1xVUSfSA5ZNUZ-dZdhrQCdEUbxM5$|p&b_5fM zmltRZ8P?h7N>X!!KC`%fs|)#`t51ru94J*O9nIBpKNJEV?7KwecRtM10vIbG)I(mwy)9B9qOqDO zMfPz#hjYj??z=i`f4nA=aXlFar3(49*3x-(Ni>THr_`s{vC+_MJR*REJvJU^+YAkd zUibb)351&f{1CPAQl#GP7zLjlsN}Xs)2$HE8}5NvH*iNp;dk0DQ$ef)iH$X)2@yRz zTxuK|WG4k1l&-cC*D2Rp;x)6ZrD4$#<8*lyw^7=k)KJh+xuF*0=V@;Aq6040pImjz z;B%(=s-7)AsDp6yD)zuRxPm&0=wNO%7DzB6HNt~R%*htGb47w{tp6@8y!H=;5j1aJ z1&sSYQ26LmtzD{+`;a>4ker--Bi+j4GxG|XB_8X*jp9kkb*2=eb_^ZsXX>*%`Lj_o zD}zfjwBUTeoGJzP_9DLdnAp@*vsB9>{gucMB_!isTzDMN5I`EO@r;{#{R=QFZMiHQ z0qeq1PIP~X!K1sX{sE`+zS_&=9u)(F4{2MLfQLEBF)QIKkqj;o+BLNDh`QAV20}x1K-SN``zR z4t-s$Q|Ll6Fu-H8K~|NZyt7|CZJISIghBa>^nxSAPB}RvgG0VedEP*v%*VVC@baZI zqP>ZcmVTHi(^=>s@AzXPylY#wz?pCG&;6=AQeXkWO-C2j1|Gm^xu&2bcXS+EaIL`) zc{ssrFLi!9q_###3cG{<=h7n#7r5Ka#s5B{`~GPXko9idAp~FM_&qY=Ys^<6 ze{T?_`bs>O#v^Coeyh$AdHQDK`IRV8V;qo1pWf^3jsJgKXb7B2_f?yN0Ml# zE5K5L7)xEaMxtUw-|Q**7_Au6AsKpK{FTb{x_7y9Eso1S^dgMdOblrEHF4iBCY!(Z ztursYTpbVEAhuP(cym{}wRnF7%fd(wN5>Sn@O7GT@m=)`Ex>@#L5ZAKUqz5T-;?P*+?lV+YvQc2+Xr*%>f=I^!M)clgn(*?J~1v<7Cs z&*MMszP@NVv(pm&g-$%aB3;8_Ha6GH;j$a!Y&BbA4er_A-s%hm#-i?4@x%h2|1-KNN8;ThF-lX;oanO5zHss zr^DfyN4UX3y-Zc&0NmTl2ESS`qPx|DZvar>W<%r*;2qAAbb}YShq9k8%*y&6PPp;^ zN-Y|N&IBlX_TsX~Ma7iSd&Ev&)QSPzW)omM#idB<598(~Lq+R0ro`FFe=k}JXkRuE zY0=@JYUJ$EBmxD`f^;;Dh0`kYZFbp&MO1Np8<=*4wf9GS4&g`h&6-!1gwUp&NDoLM zIwfueBh>YVXdPM14Y(PSsv=m}{*CU={cKX4N%*aAGg{AG=0uV8NtF-he7PU-q z1Wj5-q@T8dPjN~%3K6j2ASK{~qZuwCV%z6c=daJ+=ZtT#8X>q?3^cV-JV@W}qe-p= zOiItia|KQ>y5)*Pk(8hm>etwUVh^T^-zW;Y0Wq!wZSIN{rzb<-6d)un~sKaBG&%Af5~VE{c>w ze%I>g{EtB9z1g@=_WSnnP@MNGnBKA6u?$q|AJ{QxjL>6KGY*A49~wy#4KhYqE9RW$xD*hEk98m~?wXS6A{M zu??BO;VFmr|GM|7XeGS`&EU|GzF<(VH%T z|LddtwxZzmF(6L;uaA87K7!lt44|{!AIebV=d9A^zs(z~MMPDH%~X zJ_9qIDTCZ)_lLNo1ZH*I-}5VGW0{GQJBlH4ZhDwGF_wuHl&2pD`%gLgoO<<;e9reo z6RW24zBew!Y0=A6IVue{qV9CAysRrrTA>UYqLxV&A35VJWy97#Zg!_`tl9nNceZtT z=K%y;mf^H|#{bzMMV)O84V?fDJ)8ZDK>ASsY+|Tl5YT~iuDp*7MkgBV!W5!S{6asF zQoj-lSdfC+PH#RdL$xyUN-F;rUXc$JO-a-DY9=h5?`&?)onc-Gcmy!2(wPEb%yu828tP_3%+3)YnxEIwfV zzJd_sD%VRgQ9mO*?_ym7ZP;I_dfqH_&8>0LvnVclR4I2tpwout0by=5ONfDHECUiy zc;!Q3yy=eE?bZWcD23J%!r!Gjnr)sG2RLkAtjYD-s1`e@Hd?FG<+d?sl%^yKINU*! zgc2&Oky|v~jzUmQ@u&ou4a^=8(h(6a!r|eSf+hyyO4;k3!oUahOXrP}yI&AZei*5Q zvtfI;soLisE>CgXTi2QFwNyJq6IhH&j`1X3dng@`N^vDJs2f-&l+a0CJYMa(k}K}; zUFWve7_vPc{#mvf3zNSW43!&tU+uc!^-Z&(yB2Xwo;Hcdqk(VXQ2|FB#$7c;1eHveNf1}9b_!Q~oQWjh4=+CBIXQE9+ zRyr^oCeY_9@o%#- zHG6Ado#A#R3H29LIGU27K8{h*s)gri7cJ}jY1o~PpIy#acoF^fKi5#d_jx$ z#J(%^eagqE^RYnrJ>D$bDfjPFvpmg_R!i1|PeIS3?;brnw_Ud$ZQ_TCU^?x%KA;3z z4be0;TV{Q$i#YcI^vKmv2GT;w9lH4v$(_ai0OtFuE!sgzdZL$EL8FnYl>$& zpprugjK;<(l}(;2IJaN#)#jZ&JsO;fJPT`VCq9-nQzaLhNYb0e#*kU3GxBwsvb{O5 zB&(4-qC#ijVh_Nfbe!0}HhI`~Escbe{9bnEoG%we3Ooy`*g{MA0d|GUb{)r!Rp7A) z(O92IKgqUBMhDt^U&h5|X~Cu2*1SZyWW+R|(X7+nrexDgzpbA{ zvqpZcRTUKhwhx79^J> zYSuZ-(>wf3>0i?4*a}jAMoDg}YX=vs6p3A@dF835hR^g}^f7Zz%#Z6-xf=Z(5JH+H zy9A^F2Z&_e3=bA-_LMk2bf&+h`)Zgce#`O|CnZ>JuFT}7Z}nAYp(Qtj^5X56MDAN` z#3|%D;*ZLme(O<_Jc>n5Urr42*a?<1;9I3z;bHo;Lceztq&Y#Kvdm#R^f@(|hmS05 zY^m|1al%tubnFh6Aw=&>U1WV#Bfh9OiE&Hy;M=?CO50o|nB2UDF3rAHdcGrzIJwCC zTJ^@sCLIqMxl%freB4^}t3kW%=ef|+7&rig{JSm@AXdt`-|9%VtIP^9-#M#&d#WyL zHK~e2$K*oxPpPx{CI64NL;AN?`!>j-N+NMal@m0*`I9T%Ms|3ar)#E63x-Vom{ww4 zC}gQwWaX1Qet7~OWuw$g)lJ8!;O1#}y^t_VjNjX`{LnbG;Kskx5WS(m?sfl;VTd|S z?ArjmLdH1`8om9&*L$;{^NXkJ4IF~8tLzuv&zmV)lGK^& z$|rLoYPy}lzP!rb0M^Wn;7%ZXn_Ok^oSiXL7_jZ_oDRI%2+iy*NYtIf*zq9h>laFX z90*OAoo(Hf5sDdFUo8%(G9TmTv=)SJF1T4Q_U(6^SRhDB$6N?j?#1D#-b zWULh20S4zApOKEOD(e-B^KFZYV5`{+1IY#7cSjM&3;0JRu5ode;|S=z(!yyMrSpAA z63~$MF#WG4q6Ht8of$qsmTT|iBzt<-CNwe72B<9|7$rW6SV=Bw6#< zC=MntGN99QsdlALeb9_PJH^YB)4|-+$W6wM;Aup#`?hM)<>6d0znJC9$;JN-;c=F^ zHW#hjHNx$(RDHwk>3F`1$*LN=T&&iM{G$L0BD6(U(~74469FCGAl0HLEz&OGg_vt5 z1Ne4i)?SdsvA~+Q%3vbSvVXVWno!2Oj4fvrYwxFHIr#LmHq@iF>CDAey zu*mD`zb5s(=JL==EBKTwz)MriVH%rH`5~GMhZs|Jyzol6nI+3nPMzz=%4NvRE^!58 zJvVf6xl*fvadUP2j*^O#O<^=+EUd}GrOZ!{P!FadGwb@5V>OooTQ41}_LUK--cCKq zKh+$~rLA$1E$a%MNBQy`Gl!L0M9n#<#LRa!OKWkx(xP-dLm#2xUz#ptEBOa&#JZTL z+a}O6`OQx`m>x6xC1-V6hkT8FPK26u>eDWgYMN7mPSUigc~vddODh1rNemXROy3bY z@$vrs+=4E_6r-lx-83oVh?>R*Ve1cW=M>{SGYQ{Bh4W?c@@3+C zlX7Ez7@pk$?OBV@V;KV#SlxYnaypm$NvNz$ObYbsrBsOwg+S*CoD8k5#*6urh|3x+ z8RI8V$W?82u_^w!H7_aPHsJwy3KHlIbkfuqhS!una%5^SKxP*xH8K^p~UzY zVv4`+JhM{h8`t!F-*c6QqZxckh=G#RDQ_d0ieVR6m-!D;tJUhehzi~`N7I{yS$>r| z4$nmzbTu49W~Nd${&%0qtg_(pGobwyD8%qG?^Cl-7B&P0oWE&+6f{v&G$DDQ zt&2C^Qb2pQ%#SD*#46UAG@J-}vlMepc~Mr>_!^W-u24tvkG`V(sRDTEH8lK7a!3GjQPo7bJxR*5B)iGu~^WMo4-79uGagSO6`(cpUJIYk~0R^rsTKdQLu za|d!7ib=%db*qniEO+p5j5OCy%hj()d8a7f6%eDqeS@ygf3QYHB1C)B8ABW3mt=XZ zz@~~2x9yoz4pvfD>VP>b|aCSab07j-NteB72M8JuR#aD{f-CIND=g# z>mmxUf1YX5G#RWrm6W#;s+$&#(Xcc;EvG=QZevvuZ#c+?}>Dqj| z9Q5WSDKr`(KlBN!FW8)OqQOh77?$Qj?8mo}_dWaQB0@h{LPG|0dj}5nIZURXwr1{z zb?;KgH9JMzDvmkt7gADd9h;z)S05=S2n?~LJ-u%(K$KXqnqce0v1Nt>jB+l*Fe#*; zF+`WzB3RT5x!;8{ar;ak3S2i^6pT%7pL*Q0^|uu?#THZVdz)@M8;Ej(9UsHd4^v^b z;4jp+ge8s+VWmRQ8PR`SrZ$j7#3b#NjoScj9D|P{8;MVS%FFgn>7^P0#4*I31gUl< z7qIgM*u_w^@uG=(`xh+o5Z3S*6^*u`X+cxlb&?QkTBI7jwI2TTCpy_84rikI8`3Zq zY&(Oni$zh+L*$`+uhZy{!w!4PJ#NNX?uFEOTLYvEh>dUlhM93%p&KW%h3Q!p+aSIU zFWqp{TOw-2DdjVHd%e-}d#|A^?>xqxO>;?$MlZWnnE5;DVln$&(E!7K`(5`#M20S8 z0&J6(F?H1wfgTtCD@pU={TKdTPChVW&A4W01?9qBWe{<`E}2aPT|@-wQ39 z;MPOU&WuL<5_u7cwA(UNwJW#!B^iuC`3p4sMBh*d{U7|rn=`KIHZZgU`{u*id36YK z;1Z^8p?9mYnemG@#N>UTjB#{|zf3L3QQ2mi57WzR4Wqb&hfeWYzNOF{*dJx*5E=UH z_eYs_M`6QCUkKYj$nDyfV#Bql6>ya;>DB#iyV`F?wc zUeg$_m0ec!-!IZE-ic&{d4de24wVgC*uZ0O=V#W}?Apt6`6+TA{6J=KT zd-J)?0C{jRw1tGPZs_UpCjxE)v%V~#^P$g`TA{07X4eCh-ppk>^>H=(#W;oqkzQm` zHzi*R>-g_>yV#v}zkYcKWSI${dUK1~$NjrI;NTH35U6noZer>mo9KO7ObxF{DY1oB z_o!~aE!w4MA}&jKM*DT!-u#Kgo+x)OgrZ^+3}P?5?(qE^w$5Gk*PJkmjooq{TYR_zC&q zt~pbDPp!wrJfBREWc2XAOQRcn3PbaI&OLoA-=hc7lqwDd406%kjLH!I8{vpC*^nCM z@8d=_wM7fOD;_xSdzyI=NUNO8A9Y8}`y%=WEj;XfI=SYxd%rq%lQkOZ?6+Ak4A!f{ z(Mu%ih?e~##Hu%4qRaiTVimYO(SkaH#K1^=8q&8C?j?8DziPf){C0{Y>Nr-CPQfYi zQ2FD1D4}21hb88EPUvJPnKWYIs&V(k@!^8&ESnVHMq_}z3t*E64g_4mWt2~f89a1^ z1L*m>BL>@1f$U=f1Y-o%(efLQr)PU=x#=}BM_4G=s&K>sxW;{#Vq-dwn~F9xoq?<= zZ0=3@*EOxZ!VAeQvqQiCDEMkH6xawOv z)w|}Ba(UM<1@O$2zaxl7ca9WJu~DW(2-x<|;Kno%O=s2dm!#M__1vr2D3x=^w8&oQ zLHj5@NLd(7u-4vusz^z+!jxH?g&xN->=;p3yE45CQm9>~8O?x{PD4VU=4`1*$EQ}U z&g)eD#H{YrR8!hzjp-oRQuh$hvGwd{K2 zBuFL@pWl1S$k9$abj}(K3cDsA`_$QfmTqeE3GTf=fdg`t(1%kgY1Zye>PHN?i4o8; zN$OuvSv9sS1gX;Zj^q72xgXH+wo38$ZAbfCOc=s9&=Uk7d`(_WFjjlX!x=Y`i{k^? zBRC2a(;*TKB||3Kh9aIN)Pz?R2kqcw9dOkfVT;Ka$4+)%I^}b4bNs;wL;XZ7gIgd| zo=(WrD0^Oq%|x?{&pEAxBGxyz!%uGA81oNK-M}DvDP`dJ)x_CDU9ljlcEF({=pKSg za!DfXHeUU`4SJ8GI@F6P{^{DZYl~0c$NYdE2CovevwwsRW4|4Agd|UK*ZtW+m5jz^ zZqe^U*c3XCJtc~|G0sp;h zm=Pgy{I+8o$@!~ZLxx8UrZ^q^j)e_wuSw0F9!4JY>#@=bn~YBzb%l2-{WVf?{^Ph0 z#LpsZkN1gvSU2$rWXABdy1*a^?Qs@C`{&s?r2J>imp0yjQd=;B;y>QM$07~9#*_`c zy>Fa|kQ~o>XT6<4Ys0usqWfqnVTYFujca0FK!(v4>F{5(W`WO%pZ-gR_DkU}2CCxe z-vho+k9iUi+YUGV*r@^@S*3<;A^?LlUv|sCi=RBaz0q-J*mykGyq#9`Z$6Vpzd4EdZ*t{1YdGT|cWkFzU@Z<>` zdikY?D2@w>zgV{Tbx2icUk`!}Y9t?2nbA-Yp4EY^hE+{}S5d{!Rp#jI@~jsff8#9+ zZV0d-4+T?NO&3)#3ru0r)IhZpHNKM@cPq~GF82$+8t}C0rKL=IWgzQVLjw9jJP>TA zg$0%nl`Z3I&{#BT#iku8so^r_|0({hA)&v{IGyP*#6>@#FRo5t477=C{22!XYjIfU zJ2+~knf~mHM8$#wkKO(%kf7Ttn0EpbOB0I(+y&nO!nmL$Wd?s<*Y*Vs56mwG5T}C! zx>3$lpaKFxk`mX%Xp79KKzMM`xQ55H zG_x-K-%!ndY_tuMzB*YqlIj{ZEC4=$B~3!DF+PQbQcAf zMb;niim*J>a&aSvrX+Q;31}SN#o9!Bx6FUw$LfcffkWo-WvJW$hKY z?4SKfZu`$Q_nuuN*esH@5ox~b8sgwQILm!j_Pvo; zW9Bsv`cHWb{^O90RgO**#3@2cQ!O*{L|eO03)^?^69pg>kd#vVt`Cu{-`)%V{y`>+ zWMMd1U%b%aaI2a;*~qh<+WYWKC2aWGWR3;_di@F>vkCDlDVz6PDUw_0`d+pz2-?qd z0ng9J62i{gs%1qOAi{Fm>1!r})obO!Be1a{S&{a*RZe|fQhw$eY5i{D9g16nLCc-6 zuVb5WVKoY#C>nN%qU)8OZI(BJmJetxKp4Mg1N-r{C+|1TG0sEwW3W-2Z-#TA1k0|zZvzL9Aa)kV<~D^8<{HQsLWoqqA2x0J_xQGI|Eo1A#nSamBwys}{d@+QwCWy^ z=J>!uj5D*L;D>X29IPzxs(JiS?Tgv|Yri)UEz_01OSkAoDc|%g6%L0w z!iJjpD&WpWg~2&$txXjm&bJ#p zs4z5l34dd7ZSl7-O{!)2Xb2-(Mjsix1f`cNbd7*pFEBuL7UC-2e?pZIe6~5kW4~P# zU1%UlFfu1NvVRQCwCYthvv|eG!_zi-~5~ zNpgw!J&z}b8O>!OzRrx8bX4$bAU4(K5W~+(DhWQ3ub>JvHiR^|bx^Cf?69DWS|WB0l^4SBAIzAvvGXaIsP%!EJJvhguii2T5-8W zVrypmr!1M`+^3nlC{`AJZ*r;M)Ed((W@)at2AET?RpVW|D7!=v>Y+3l!{L2zvk0(a z35+FPJ480d%;LlTeDWkm8QUTukc%{iI#@_`9=*zf4%75%U=5=mpxVTnllp+~SJmGT z4(at8$3qk`5IQ_kvA`zcjHEtz8($))dLmphqh(C`x3D7m46#hr1v!*};EDR?HmL9_ z5&R%hG+qvtE*s~G(Ns3Vsu-hsgkuj0P$lpX`Kr8OF_Zx`|Ni3zvc-&IS8cx>F1s=( zO?q1MXX-z$%j%?jT5h(LU$C>pWK})AM)k4Cw*RX!nu}xCEOKebHi49SQ(@}EH7}Mv zK^>S(5u&;0zRv%2a|nrcJUeuFHDrk@()JZ5778MTVTD^mRu$gbKd=8bbH*5nPt-Bo zrZP?frnKG^%eN2&fNRcgb@aQQn$O7G#Er^OoFk{G-!-ucKao>1@0{YJ4uN|{G> zW3<^*4fP>!9%D^|KBp#%@$DKegw|$P-fuT)GL9{@^L8=%EJ5|F^XxK33UaYTVKa@= z!k^YsBVGB{(mfQvZ&Uty<>;?G$#8ljw){7_1he#$l5O(YucEICVv1k5XBy2(T_BxM zMEFn7h5Ek_UzE};n4D3{W(GWP1<)22gz6_R(^$Phw3XAmytCmZMMqBUvt zRTc`JCwNvSRI&cV4ih_P-CT&JPhD;QjXwP7NvaQ5Ay}UT+L;HhbAzetRRtnP-fXii zx9uW;<0OMOeBPa@{@iVz3?BZ-#XZ2*PYvRwJD>A-`1f#Qvg?TnoCK``tAN=rV01~h z&N>k=BrckP5p7pm|3TlPc81~7m~0Pg1Ko%$cdRQVucYLSw2XH%f#b#&y1(z(@apKY zzR5>o)u=z{aXzyeUH+`GK%$ZKiA#tU)dB%IFc#iW0YPy@2(^LeD+kn%k5j1+jbV%x$sgpU z6v<)(CqNq+?yLV^iS(red(xwAn=ejqfr)YMP>cdJ-~JpS5FNe8tbj)&TY#7~@~#eq z{M81v`V-c~`fjecIh7D{`HpKydxg?D$cjD*6FAsO(}dz3%NWofBc}R;5Tv&iNyYge z$kk48@-UD;;*?@!uo8}(W5;Mlaz@GvyT3-F>2+3d=y-ki%Hb`hVy836Edx>2J}=%I zhNjz(vZ+%wa@`qVFZ#~{lgmhO@&UWCdEjy4qd-ln|Fu-9krNcLmxul7fyUla7+YkK zBbdi1WhBum1a+phln-LwPaJ6%>7pnXBK@}CsF#Zddu*PwOE3ZfA`=+F-p0L8{1w;V zqpD66mx_&K{KJGBYIVp7Jzy3*%`5Vye}^&C%X~9o5V4+21`njq|WtQW;pyt zz(XM_yI5h&y7s_#LMslQJ3&P(MWygpGb8BqFl|afTXKBRC6e(!Pm|oy`v|Lw^R&JI zA{@*yhqLsm(;Jo5)=h-646W&zH_I$Djl{^(X4^eL)}u$B84qu`2eVEomhHeWes;FS z8 zEB(_Lc&u=fx0Pc=97-_?YtzFMCU&XT=nSgQ4DR zi7uw@!JmI>{rn8;c{bwT)-Q6ID4$4n9GGD=6qRC=wcmL zwwHWk1q~u+lWFqOi~0>Xr&%peg_~8ykVSh5tq^`%&Rc#r5d`YWXFnRo8cvXY{mbn* zCgQ?kMvP<)t@-NjxQ*NW4GW4t*2(9jwlTIjy~fNbi$v7b&KQo5XdnPCjw8?LqCZ(8 z@1wemS$+?IT!h{$LKG6zY8${C5Iug*u{vt|WC zl)&<0*6R|%83h8yuWd%OsN~D62iPTkuSB7Ba%NTz^J0gsoINx)D$aDP@Iu z`}EFjm!i8p_rkp_h(_t6WccKdOU1>3dOm-QEpO6eFd>eCcB+WmXt#I%N24Dk)2l%N zvpfcCU+NXmfP!@c%bs-8%&x7MFQW^Q7B~HgHF0iL(un4S*olt`%vK+9Fqz)&F9^#u z2%)XVF*?5e6ddqC!{5Z(-i(haC%we6GpfUj1N}H4CgTI?!;W$G4PkP-$EiUJaeA=- zYbOtI8RB+g`0K4z-*yC}$G+O-f!UB!0=dZ!uJCcIabwCaRi5uou!4n6s?+-sLnT%1 zR`DVqXfVxp+qq)WN&Z`Lr}H}{#7|x!H>$jDaBDB8MegHMhgmkK0+48?vAIzA@YJBD z-@hWIFq;P;KC$i6jstDT3ZPB+9(0FblFJyl>rYzcHMvp)0p?Mn5(N7CI1+g^3qU`qlXZxlG3T2}>_Q8&6laQVtr=A7{u z1IjSc?Dgt1Mu!jI3Gp3)|6>=)X;4;pmHL(^kcQFqIAFzQD&NNCie_EKm{9Y%sXqw-)|<2me>>ZY0+-AZt55P>93fPi#@kRfY9f+(F&i$6vZOlCtn6dj( zC;unmV`XrOfzsDZNl8&l1a2Jiavn4kO!dy7zkMihTn;>X;r&?r6Z2}R**r9Mxkaog z$vl%L7YtTUR%e${wJerCp;SqV?2SjAsXRzw3iTgFwJe%0xDIKk_@&eJts+1PHIZ%w7dyUPQao^T0Fx|2|J5FAZk zB!0rD_BP~r@+mHy3=O$aZpC!;Ovc;tt)hsxafbE3XB6G14jHrys~JPIM6x`-9@(G&k~p6Ix`^MSM!)&`Uib8LKBA*hdUa6 zjk1{$AxVsfNAPhoPe!4r{Oxhy0kZgUmC>bC3WWmg`TP=x%Q(Uj;l(>)zh33?itJhG z-=^^0)310uSSQF6K|lBEQ~3(EGB32Xlr{NQ#nF+@++K_NBazYLskpkFvb_S~bCDR> zH9y#*+1n$@Ldcs{S!vizC}pO)c(2LxZkI^vIxPy!#&)zw>P&6899XL`HkldFknXp# zAoPKq>m;b!euW4|jTm6W|Hac;hcy|t?;oTaK?$kBP$Zc3K%{GQhcY^q zl5UW$5dy;K?q+n2l8)cw`@Y}b^9MVQ9dHb8w&%X?>pZW|Df5wBrfGLt_|j-@&C3OJ z&YW*&pu~H}3_>dQu&)Juh@m7K?F{}XYUF49oZt7*#Fa68TTy5~NFKpYN}aVtf5^oG z=g~07xWs^*Vh2VIceK-M2D$Y~*w{JRI|K-Y*pQDe_1GvVAq+24^a4q%NsP0RImHP| zdnjyE;s=kh(kc`rB-t!Lm`AX6qhwQy%Kj?cEb^JaIuiFjjz831)5%yi^2sl9m>OEM zFnNp+?_+R~_-sSbw9%E-=yg>Ka|WY+hb)PdXH9B*gSwoN>-2RWR#PVf19JkLEJqV7 z)YZ1`S^blk7$@oToYksA`?LQxN0^#zlx?q2Ofe#5)<*prJJuFIk^NxX$Qdv-4=KZm z*=CN`t`@)(eYu*v6t@&NP7bG=UG!EhcuA-1CgLe|om>CU`GL=RJh6ye<}JX}^)dh~ z5GB_0uPKOW)ieA5$R@LN^X*dP@5XWp>Tr;3fSrEI4@mGA^?18dNU(D*PW=UO<}X9* zO4v`C%~0!z-Q*M`#@*7(+=l9c*)9n-!Ku=!pwZQYzG>pvA0DtRdSc){ zeW`AZ^o=Ao()cgwG?DS3X>9o<=A@-{;m0rw79G+edX{cpQRl+?*vhNrUN1UzMiHKy z6-MBi67P*?2Llv<*dID7@7}%3F=%catyZM$5qBFTJ@cDJjV}V>V+sv9tX9*!vPBpm+OEbHjxl+Ad6xh?W}Tw!~uy!;7zbDz~Hsu=5$W;`7JErM(9 z*^de-nn!PJ(vJUfF+DMO7erdCw#(%L`6By%Mg0%<9~?6Lb{F)QV_JGKl0cX@p@7#uvlq z&{mZi(nOJOcdntH%PVnt=CoC;+nWqD=LounpqCNRn;NYjhs$*2PrRN&V92<_tcg&2 zfenJcY{WFCp@DCUwm%ZPi?XIb|Fl(zZXvQFtFdq&r!xk%j83hw&pCM|oykY~X!V9s z>@X4FQ>wae_`uy2z^Zf$K6@r6jtU9~N(|5O>e&_<`)$%mXoD*hn%+ir0VcHi*Jr$S zprV)2EIJHj*lW6-eK4u!Owlq9IxEF`-g8$}(p?)?(A`gBQ^NMBGyk8~akIa>hR#fN z&3~suCa1_n$LlI5=>pO^!lEC-VnE#rvyo5-MsPnJT&4?f&XpyyeZvwEW|*UNV}@%o;(wnw)I#!={6r&qwU@;r8T^=73pGM z8T)-@&%)~z*z&3538ZA5bI07h?Y#sDD@GfM-B((OR?84b7t3?uyTqTtgbX$bL_t(i zg|qa(7pILi(h;;(F>kniHvDBl2y6ZqfeQt3kfGlDYUAX1f-L z74gReJES8WqRa0{9#N53y9qZ8;rp%$SwlnlVl2ic{4IDxLGC|xW>uOhR0RxT?vW&2 zgey7pU$7xat200|wFwoeD671qxceIVy@_XW3P$dDNO2NYGo;!%C1K`MDICKe)X?`y z*6fOKgKWRen5;w^TKDT0G}l9N@;S1>L&sN&QS-FcQ3p@BD7t)Y9xRSCWKn8vd*V5H z+Le$pGk*_ET+x+F+kd1@@eVqy{4SFgD3wkISiX9ovs7tjr8|CW&CWIPu>75{b2a69Yzotz3aUtL2cOzG=_WOpP4R zcI@K9X~Oz-VzQSX;ew*5P_2fjBvk+ zcw!a%y+QsAy~J~LbOb;cRjh_VvZ5|~AR9oRKYq-C1ehOxMF`ZtO8Q6|N%?|l$e1L! zh^RvzxkP25-h@fY%Np?-$NzHb?P+@c307tN{DY=B!7Aocj{**eOWf{^9k1wuRk_}C z1sX-z)K4kWAsXW$vV@2stwegMT%~wn{sGM3)Ih?ho@^4Tk*bK=Zo_vd*@{8o1H3hkUqk2tO5o`gtd zz9sjH@96N8Wd&tE*ZsI!Zny6*XJ8yZID6?&TN@kN2e2c#$LR2)-u4eYziDjD?B4ZJ*o8giDuSF5@UPCY(uj$lcx)-SC=L{)Vr0OET>7 z)z=2U%%!}~o&thfJdU7I+X@WSBS#EW$hAYv9GNV=;}`!Y)7CDe##<&*%Qm4SQ4eSI zcEh`E=xjD4b?^{WTLQ%S%zy0?d}{Et=cGM`C0@AfjTpesEpv!pQJ6MM1J27Lx(|$8 zGj+oE)8hragtGkQrZ&t(+a@x~G z&0wjMaDy>~)0+emz#KL5n7$R}v#0za{V?esSZJrU zdP71_?4)QCD5JJ;L|MkO%gp2Q$Gc)ZeXIO+9WCo(7dzwQ@Cqec)dPZ!E0=#32cZ4(ev_g$N-e(8>`p}eU^?vWJ zaV7ysGhuF?!NH+WiBbp0&zU+ls4Z2d`Wt0jVDZH>w<8c(^noKj?L!35ew)CNGt;|!VZaGn)w|_U%NSQ2Z>$-NSs8WX60I41938QxQ_@``U*bgnD;OTiDmxXpY@3Zrs_2_HB0=${ z1E+%GR6}dimtlhwO~v$9dAm{&qU=wmtoWpStJwNTb)Gy!h~~`*9MAO;urXBwOx~;U%n%^k})N+4H=oD}wGH z=C9IX$N=KLn&Xa<{?b9ub#I!Ti26mWeiQ%Gb3G)AM?j!eSFBU1hvMlv0CcJZhApon zx+gFV+=4ikZ7{YU4h)-EeAgK4$4GSgR4qH-Ka^^7|H2P2M6^IePM1F@`zqUe2* zKYXyXx3XzBCc06!{83Nh72(NS=23K*p_r7|LCSKDV1Ze68pwdNuj|Ux8^oiRF)juh zT-M>Qg!1qo{@&UYd-NJ^=yyyg9e5mNOdKO~!S{C^9oN7XVM$2g``iOT#7INV7oT}k zmMvyh!;xUSnZ7v^iC_wO-ZT&|7VCuE>F~#j|6}S`+o2RR_Qgu_t+u2^*>Du#1n;|^ z$F$?wiJ;yP{U8-i(T zCTNBR9G$ayD(Sk*9M4>2308R4Zhg4t{I{KV<)r!S(qos2*a9JaIF7nI6-a07c8W~d z#ORC%-(jF=!FOxl<2EKX79%_kZOK2!;Eu~<#>Tio^Uz3|Yy(!_O~D?VrcI=bkV1eQ zH5!LNQG4+^{w`7UkhXQjlh}0Q*(*@%AN&o5=klHcq54hO(zH-0vmZ2^cQfBAO)H$Pi@%dL2kfoJfOL5U*{PT9J3_Z(JP2|hL>F3A^C|1rkLfGQ zN?l9+aO6|FOs5Zqnb!yEPv7`){XCdI37e#w*_b8e|8cYrhalDQReP6@l+)!MiK&Ev z0q1tw0P#~j2Fj~1#P4RKenB_rP69=P7i}_ngu3{SE$SxiW)@#_P+DyEXeuy-L9UYA zPzL0oWq>WQT{gzGqLM&IbJMusOTq1yd@qX#GV?L5riyO;+ujd&S|7J`js0)d8~Qn) ziJwrG_ldI!m;>?|zs=mMllN}Ro@QK5G_(<3Ib}C0*U@gmmO&@tDDsBi&;V@0X5E5) z{bb=+Ja`&><=W-X`!1f9PmRAot=HF*fwVyBnmMu+K4aI6Mtbxg*_jSf6YFpx$(xIr zHO382?FZ-`r8ySg7!@QlQu)dsvNox6EX~q=QNn8kmn~RTT)&EUHBni!oBiP__KrSw zKVXM2UYa|kcdeCW>EWpY+O+lQS`0~g7REcAVcb)VYEh6t8bXF@Wxd~{V|GB#FPW+C z(#F#eukMVcm9P=Lx^PkwRrEAhF}9a+jeB28-%@}rkhG|*W~1$!(xm^{gc#j#Wl@~j z>gVY{J~-RP7CqgBo}`J=<4^ckl)FeJ$*SR(smpd|#sZMWTn;&dDU3)ja-5Zf-YUZ_GtbqMCx zFJp!+bmEqJgZ2i!?wc^vB!TaHwcVjL>ph1UeW^k{B&5IrD0(S)clLm?_wQnVw$@=4 zJwGhdZ);^AdRhkfOxpA8Qs}u+D@R9IWFtS;6j)jl41h7A3SJJGm_rYJH~WO8n)AbY znPfcsuQ0F>>7(D_bEpl>^aj8Akc>~!t&gKz5bwiROVKMU4&LpQzW+J`j2RwA#I>c9 z>WtR6k1xGa%4Z2ugP0=cP9wSIWe1taqSSEL2oS|R-p4bOhPAsD!iF)JE}`EZH5oNT zY3>`YhzmfWW#shlq-lhW3xaSxVdNBVUJ9(_0k22Z*4`I|uH?1*_lFVvXFE7NyciFR zlPAj%HR{>w={Wy=R(RYso5aPG7~0MDwF5ZbFR~qLI>g+6McC2f3YhQ0u7SlzW&4Y0 zd^LH>Ww*SDk`P=3$A`z!$FJ!*L7XHbmWOGNU;Yyn20ccHI#78*Lr0q{|NnB($adC4 zj2FHgQcc;wNPD~@%M6uhE{J(Qrs}uB%S!t4vN|BJ|3^-B^vR}^`P~5|i9R0qVFy&l z|CZ-JYxI9#M3}t_%KvYO_5VM1tKh5svzz?q(!+d{#Qg%u45R=uGVeN3a#B69PoMJf zslQ3!czoB{f$Ea3F!__C*WmcB)yLav5%FEnX7pok5)aeeBx=lWZH;iWL|bF`9*#@G z3WVEr1^)wDB(VICaIqd$bq-9w`NRNx)EeuFSfE2Q%}fmBnNV^8wl)a^sjC|6DNP`g z{RISKu?B3Fj(0bghjlD}cP8R~2#w|H)D*dXC`smGQ%jGZ*UNZ*8;6}^*bzdKD|_ww zF7FHNKiV)rFb!$_YhUoOBFoH75J}hiZxrKb_0M|e*SLTEGV|W}ikcRk&qDgUuPdv( z)A@vHKaUqMi+i3$Hvx`g*%0D*fHl)QnAXH9ARwUEi~1xFjBKoh8{TA{qNn7iermo` z+}!;w8@dLNBt^9(nnPoOmD7WGMgDU)?=k``kAzT0gdxZK=R9@@h}<*P)JJz+C=a=> z6i>&E6yuK9xjmlQe_s6O#``H|zx?w_0^6Qb?_{x-)~Zr>iuykQ4OsabHP5pIjt{Zp zp9>vV*9c|+wqybx?9eDRkzGU6m&pQm2lyr1mqPqjz9qf-egW$dPvQjPhkjjGY8Vv0 zdtC@L#wN_i@&;B6gWAxCMb8bOs)L3vd90_(`s9}nuW?E0?PxU`>ui>6312e4j-V5& zPrABgrCkqnmRfzCxZUahMyVc8KO_WH}S7Kt44aG$;##XfvX|@@5$hDA#WA%i+fj#&qCTtj02S|~5!}BsUI;e4JVptt=BuP|^EBUl zi!ct&zdOI?DE_fE{k#nIGiPtE)zIg%&#({3Wp96K>jjWsm0mMAiMbv`gXJsRGkg#Q z2I3z$^4}-+FEp($|BjLvssB7tiMx9W;;nEjM%o=;2JWrJv~?$6K(_E2c`VHuc^3oSck;Vfe5eh^V79|M1=MKYX+oW zH1SDW_9nHQ);n7+84RWmd_b{GJ^H9n(%&zBe0NG_Hd}qJ;xDIt-=lV?HabBA#5siB z9Nzn|0C{x$*+u|*!SUWZBPIc0P@K2k$J3HLUj~{AF=hHL1vsbSrFERlj^zX1P0OQmHj)HRSPL(GCaEY&nJTe9Ea=+cI4-F-c zMy?#Dv9;vCx$8QtW6nC>&i6H4WT&C@g>4KS-(91XIzniVQw;A%dySMAJmwUxMG6dC z)1d{Z`bdub%;*lHyy@1{<6?e53xCV}dO_4B$D*8Zw9JMM{6Z!K$Nan(07g7J*%%lS z5C#+&u%Xut(HS}b{sZE)*~4Megm=(7gqXzmyV*M+o7BA>W$; zxW@sL6|cI;>~$b5Q?KORQMnRvj@px&>hc)bn$HvQWEO+*Zi}>>p=5?$t-!qShf$#9 zOl0K>nOgl2Dh&PS_QYuTD zm`k*f^U6+3_0tik+;~r@TDPIDo{r`(s+MC|^@cTjxz8m;N)!s}Z&KT|(TQFBzjefV= z_e@JM07&=e;-0Qr3{UlY6O>~2#axjhEk~tZbPj$4;tHq0%0GG7*Hl3ZP;DhH4?DC) z^MMrUOj&@l{oc+Jv^#0@4`V(fdN-DFr|?7Aie*URoQYP_XZ7jO)>3Q6yhAs>VyULe zqB`wGWeXi$;J-aJDe!-rwS$U3OOtHE8ZFacymr-Q@<>F|Eb?KUBIO5Lu>bF2HIm@~ z46Di43G2YEA}Z&75o^9`2C1);`(cwb)^+GT2MrB~LDZSooB=I@0KdJ+#yloO*KG`> z{5Tpb)R3QRh{9eBUb?u_%GDmrt904bvVR z)6rTL>yu|ciE{{8dx4LfWe#W`8%T|3K9@YC1#1nZi#riyQj?raU^oq}>C|}C(2Bqx zBfEF`I_&@q?`K$RcGr>a@!6c|NsNzCf3n+JlKj2*09MZbkBYQD zF(sLhvy||FN1+R?#M8`0Cv1!FyK|%%pz=sYOz{P;)p5L%f@E8sa$T7|7cmW4V`^%^ zl&qOB9SzJ?Cbr^x@Ry}pn@}?|Gh`r{gi-ojMLD=)C4iOjF2AeA zeW6`BKj{ZJUlk@kPneA}fOE8~KK+}!ois%DXUc|5FI9aSs1SO{bN{1JxMHx9U4y3D zW=@XLXG^*;?{Bs@PhA%Y&9ET=(9S_?zXOPj<}S%1cK&DPIJA&sVXJKG&%E+`fZ=|v zR@d&INV`#5$P~=3k=Hw2fu8yFDTzC6e-Y98uliYEcKTOd>7Dz1v0Nz14VK-*4}HB# zi;Ec`KXvJ}$-3E3dqNYS;QwBx!qGT~lpEseek*CFJ}mpqld?;W=6g}})YBvTY|OwM z+0e7t*mpC~&bzZZ-(-uqQS-hW#j$6#x&vi*u}_sE_IBs$>R6vX`!Pb!WGMHkSUSLX z_@^`$IEi;TU+umv9!1#m7<xpg9%Z`_@^@ORC8z55PABL>b4Q=4Q6Dpbb{WCF_0pk4+L8~u}X1OS( ze>oW?T<%EV9>QbV1&KmJXW zh4QN%$a<}GEYY#mQEc(|htP4pvJ?`v&Y#lFU!`8bvv`2aVt$c893;+ z_cH?kk+gM+VLj<*LLy4%YIU1NCr@$Gy`|?J`|OGEu1BJLK6`KP1Xd_8F^W2WoVy_* z(g?>{dj_6?oPWAQSxH|X+9A|>pT!G-zq(=31i(J=;x^oPSA8e?K639pwoDl2}>krq~2k@}=m(sB=L2d??MRWk_NtwT;pM9}IP4;T&1$3{O}wpw|+ z=nZoR!B{#1y_L1QOf8|q-DO`0JZm}oEczKX`1ncfzDPk%G0e!kX-|{C;gsO@Gc88= zbSRP7m5t`UnVYu%`?KYg=Wi}aArCv-o7eFj;Bxg2V!GDH&WK5ca$^^Z8x5@kHA#@C z3C_8Zge>7c5U+QCv)P&*Sz7>Vw5lj8A5Rme&o9|9=`kR=l-E8 zI0BE3-LB(6itpK=h-oZ<_H@130ku{$wZxki>hd$8_eGfOBpN8l zH*al$d)xlqI7H+6``Pc4+Hbwyy(@f-m&Ct}JLJG#G1POl=;$;tx8%iT;9#gu4*hq$ zbXe$k=xhGrA&ZNC3*?@yqT}E z-}~&|dw0aUBa#B#&EAd@Fw+S;hZQw%zMzhmA6X7-E&5Q@3+!0t+oNxF2#zyiB*{AH zpLzi?8t$D;y}kxLVqN0kpB3J{tC!T z_t7Fh3U!Fu#OQj$$gAJvJlUw30F=Ekgfvd%zBEhGu=z~@*@|QU%Oim_gFVReL*VJx zZVN)ai`2kO!$YHVf1SMSCr_hs(aj=@5^Pb-ArFk(NaJk^Ld4F4=~0aHOAmd?`Ksjw zSva0-Q6sU4Ns#RdENiuMwnAhr(RDIgo}O;r&(OV|vbgWcy|2%7X|E_MK6ILidkEK0%mgak7t#mu$IXHBtT4=b?(>EI)qEh!T!<;wQc7k z&#|;pfC0D_b8W+J>+p>MAg2R!_W+C2{-9s6#$dXijg?Qv1ask zUGhGEBi9jfCKB|i&Q||;w!{I|HA#h(4dr}#2igV}!-A1p5c#ePsWNqa29uz){!Q) zh%z?1p`QU2HUDwY-{1}kjD|O~y3Ayi!^wN2-^nMRoZ0qU?eyXHM){t~&LKZ%*(l;?NzZ?S{|7+*>U+jUq45}COZ`1SMiPrZ&jUjhW{xhvC4_0h-$kE|VjlcykDYlsfs5yl$0xP<|tp`_bVOWd((J z#kgm5zo|Hf1)>`~&(;jZ=!#o@ZxA>=P1Z!c`JI|BZc*k=CIjN26>e8A*SXFLiycF4=x z@OG>>Q3c<7%i#mY(d%p3Wn(T=(27H_34;5}G-P>1%C=R&!ZAm8YH&p@ob-_efJ+&a zU>6^s=ER3%wny>3SHz8!uJZ17J&|IiR%3m6_#o;veisnToN`p@xSpHC*Y)6=#3c@G zRW%OwNc(H%Kyn_uu8noS6+&K_RB4A&j1d`KBL(RV={u=p*}O6NgmLojF;-13z52JC z2mMeiykvQu0cV?CqKyQaQ;BalPeNM+0Zw@3${7|+*aWFgjbJ1w zW)yb*HP3hKx_b@cZF$}eAoCd+l!DdB4IjN1QLFE*v^t^co5Nq})dO;j!o2a|pkWUa zds!M6P1(j*dZ}DGh*z6)j3@T2g2b_3(MPZTRK?wa)S(8#)eAOtq$2OI10TB+(e`=s zO=AYZttq*W0~%7{)R*NCqvoGYm#==O2#&5F+^KKjc zGn1jwi9lH-_#Jb*1_-0^OcYBEaK)cA2FTc#?d5e}nlHpr7yUC^X8gNv)VxW9I6`%} zrreBGQ4K^7yEnDr73}ii7#&;a-faCAjjf`HS-ePysY$dH>8sY1HXa_&MQmB^ojU zdf!ofzm*7p2RdAbKjA%cLem5)HyuoO&wVfZmIh$mZ@UADQ3U9u0bSt~i#I15)F+)% z+=B1d`IRCx!crBM+4*hfu}@5Neu2&yjH3cDW2DOJf&NFz@xGn62BYr{kzDmMbErQ9 zwwLDfc$aKikBTQvNmyd1KxkXdHH8Na2@SA`kn>l$E_i_NrWH4xT=%m5={?v~>66mM zJ!l##o-1!aq_(8@{DHWh-U4-S$qOXyn#?3VbB9w6Na{I7Eq=^{2Fh*qAb&*~v7oG` z!^QyT7sT&4J_xSb-Cji`MiG?P$uqhmq4yw$LObJw+l+ezXb5_;>6Ph$g%^ac0jGgN ziH>dSDG+B@DeZX}nKw|>g4RS}ZVg;8N0`VW ztgqLhbg9j1EV$fIU8?z++V{@}1wgV3p8Lw5q%V|MGFVt~e4;)#*u`uHBB|3~@n(TD zq{;eGWoP!+pu3>pTC0WLFj)kZ;?Di)*bvgr=eoK-nXfN>ssh+JaJQ0xR~S1WiorgN zcCl&ygH8+m3}j~Xn|=Wze2%lkbW6z9q(5C;1T7YZz41v4EXBLQwKIj%2R?tO)s7qnT0A_i!##7Z!+pkz&iutQJP@~MVzt`Ro)n_AL^S7X4^X#~$r2qBx;E^X+_f_&L#;-~teR4j%W1E} zxZD+dZ&UKu&s%-FNSOjK29X7J2GxEw$*Co<-MHO75uG!u7uTao}6AKJ`$P{|mO zf1Elp>BOS76I*jE@$282&5aA*t>i;(45O!!$}A4XdP$BdE7MqRn67NwTUi1L)W z7u%0z*kTRu#{U-MAU{H@nA|U}syMkVeSMC$q+#Ji~zqd(5tU4V6MH-{=77*EKg6r9d=pz?FE2BjGQv7 zV4x$ni0V^lc@qdkj9s~OhQJ48TFz`uK% zmToqtWY#`kczh(`Kxh$SS-hf`^yx=xK|5h`W`>U+&y(4a!3Thd1Dz#bdOwV|vEUBP zX%HyqF&V4OP1%{4!3z-jFwE()9p7yp;T|6G0twwvB8PtNX?~$wo7_#n><+g; z%Cw6T5G^!Y)WtN?bO#loAW2y$l4G#u`?7c1$jeZ^z6)?2y-h#VA5{LnBFmc$6n#OL z7261jO?2RO7-e-oo7pV8G^R(ep)hAUnO`9}X7SLa;-2R;ioI74u}yJ!M5$+$y?NYz z{+9PAmzs^xOPxDym?s<3xeDR+x%$dKMT7+7vlBbWPiGbLxU3(tbg>*0MjIwn;4+78 zJ~f3`BsPd?)LLpIB)}rDXvwwP&hXg4ghMW~)G7khJGst)&Q4Y$>wHooD(*@j+-PSY zhPx^*(xM+fCL2(1g!BX4yY!atOR$2vWtC&(u*nYS9c(LZk>h<)?{A=4 z_^#5uzEW5qv2#dl5P+Y1*aic@MDhyjgoX&tZeajDo{5^IcIHmM0*JpbSQ+{V?)_Tg*_wuP%%( z?$+SbWPsz&rHy#i6_H`zbHmB8b$xpJLk@eHU3;2$>7!qTQhIT@_g~KAQakC`JIN*_ zZRkVS=74DP4LS0BC)GX(!xT(hR^ioy*eDee48^b{RJqSzUGUh;x6f3&sUi3D-|;Wp zq>U@I9w^XpL)RtF8-PQ9(v4Hi=cz;>!E@cc85F0~-95*S{GA%b#0E+`dK2R8ywdAe z0T_))PO;n>%c)=zf7|9DTbaEll7+4f^l#$1m~-DGB~prNf;btrv?PdF%3h^LsB|R| zJ;tkMHWhsW+CdUrbW+}fqqb=RKwT+uf!_(SW<~hednU6wLV1`t`lm@4emIHR#XSUN zXW8uNae{o)5HH|vE`s)ISD27)TpEL_AThNx;ak(C!=Lx}*GtrEJ#4-|MSnBFx7c#K z^xYPX7js_Y?23gZ|8lL|K#|-!tWIbdCZX?_*)J!`eXSXPQ*)=*X?QDUF3WqlRk z9yrBwg-h*?H61O*#BQlCQzz7{W&X-|$^)ne)X4sO`tEojOTZGW|AAQ8!f!eF_aL+h z0i%qWDpJpe+b7#u<}ab*u+sTxp0J{y)oFy1?zb=Lb#AB9i>>p#BG&KEfB)VH5#yJ7 z-Doe1M=U|HNZIu*Gy=@kauiWM`!(YE62RgoNNT}Odft3r^Q+eqbk9mCipLUN zpBm?F=(+E*67&|MhrF;}pmwg#jxEY}g-?L^rE&6&{Kz9ON3^k-R9R!V{e?o-)*FZA zWo9r95N^l{^h;wh?)Iq9Y-u>EDdqSKz^`%K2S6W>u-kvN&UTsz+Dl=F8rm299=95U z`>nUXgv%8f@U(q|vtrQ1dC4{X0nVNeTETcJCki;we2{FM0}>tG3=gyfp`V&M_ienO zqS%|A($~mS6&SK6FX>32xPe>w$X^yqYu1a#bA8}9WPr5>EFOIh1T=vx8-}gWVs*R& zm8F$^m)w0XNd495-Dw)u--tcRuBYbiQBfSb7>WVP^JxvbfFH};1uwWK5Vrse6(aiT zWR|o&A=f9;53|3jm~XM{5n}hqw7X{T56{uY3$CrYz);eZBnEd9#o)uZj60dB9L2rTLlQ<0K3A<(?xled`>2bbu~eR^o}-xJVQxTqU+k9_t+Zo{~rU5r335 z(QK1h&$~Q)d4Wz|3H5YY zlc@Qfzd3(t`}Nxo2N5oSP@ld&J+Q%D?@~$G6KLCn>#C;T>}a(VxQKHCt=~N5)R#Rw zXAXYz(m{+dx_z{*o#o&IYoD~nQ<(DN2x4^1`bpnBk99d%c=}Ih ze^zYZdF%2W>i(wwl`}76J$eFvCGWsC!fjdKU1T=qt>fL09w?L>!Zsi)`O|J#4aBxt z-J5T!KIMI&tv!Xk!M?W2mf$)0Z^QKe?`RuMa+U_3bn>Yt-y^VM=pIO zuf9T$fVx{>^5Qqyz7zZtV$tLeo`6KPo6SsC@YAFG^qW@eDS*8u>v%i}0)sp7B~^d- z_dqxWECwoFL2J`B%r+h`_&m?(`?|Zf6UQlsv`NLcM{~o)JrCwD-CtpcfNrIlw>Yox zI`F`$L!g?h7(5b}1Ctx0FOEM+v8AQA7MsIsdy=@cJ* zG1}MTga+B$sapR*CGb(Z2XHX&S~$w!87w!n17x|YrS*MOwLYm;rmbvEWYB(tf_I%Ys5JkSF}3yOgsJQ>fa3Rb8%Nbz399w1r;Ev4Rv}F5$WubDuz{bJ+1L zhPh$nC$y|gtQ2wrkXlfM&elyQ<+s!z!0#YL5$@)Im-L7#=xD+BzWMk9l~Fa82gV#x zO@Hf{BCQPArK-~={Uz2e$FY_Rzv1z{;xi3(HL_;a3klIp*`v|vL9dAi~=Ov zxZjzzg%;MI$&vDiy>He`6NMUmJ2Hm+8}uuVTf+}^4G9Lm|SvhKX$4`(xqlUk6AXyjI2BIJa?LkhgvH;5(cRt@U0Gutsp+Y`>-#|6yK8 zlib80=3K4vcnTMxTfiU_M8&#y<+AJ2(m9i940KW}9m46&z(MEQO~Pkbawa&((Qzfr z+F&wHqJW0Za|98pKjue}|1s^!19#l|&3X3|o6?o&G+`SZU9o7-NGwg*xn*d|$Qcku z%vTPub!|y}Jsu{N^oV9)wmP9oLV7<)c>`xpb2d@DO;N`HqIQAVo(pJTV4lJdug7T` zAkkxaNAtC@uguJ34s;Bp)P(>6aasP9mkmHl;XH$jjrsfu=}o$W46TAg-2vam0y>!p zM#rzZATYPvR5@9t7*Y1EhI}e_77$PL_lUvn0MHN~a=zWst+veTwf;f7p7sHG#8XQhl=#SvjW0B;=#UpuQbS@d|@+x8JH30V~BsyjtxvPE=BA!1F z=-IE!%RYIHvT=_8atA`mKM|kq&*=h=sJ^T};RE=%YcT=w7;B;Jx@4xS2Tk&Q3~umW zV~=+yN-ffP2nfsv4%e_1;lxNz;_JKH>+iqS?qz$8PJsY~QMh@$3o-)8z-uE`r|5BV z+y#7Kd*4apJ3jt#dh|3kj+dE3K~If41H}9GfYCcid=rQ>s~Q4P^EMvY|HkmU08nfB z3G2>pNfR9E(Jh`4(;MGuKGV;)*~!>YH$GEtyGA2uJ!sy-I_o7H`By1Bt$`*c3jm?%4a6ER=tKf?(XPD)Qj@|*D*gI)Xa{C8IHh6w z{fL%hO7V(@U8BFfkya9xIbr|{{C+ZTHvfKB`7W z=h#7=bO}kvi(fsYJHl6GV&=ok{*!jmn#j=Ob&hH1!E8+x!`li@fw6a_7)T(=x6oS4 zJHOGzdajC1?fWM-0x^?`hrFBSQ?#5&ikHs!re6B zoVsN}Bl#B0F5y?0uLQj(6{p_fGnG2GTn#Tp%f*)(mX{?28tuAYS5R=bpb}UGSkc{MITB(-OhjLre>=_{UPqz zo%P>j=;^JL$R#PT19DkQ4WjK+F_h~?QB)9KV1{eXa!nkBZxt0mC-VIZgP^^ijgiU~ zepFQehPI)2O=B%xkO9sKvBd)MprV3@>Lvr^*wuPU)MaNDSJwTOer8N@UBr?8IKCo~ z-dN?gX>Ir**5rc?az{9SstF^(LAQr)zN-!R6`N}By#%te3Ek3%)as%_h497yJkGU& zseFnHu6_t-Ry|~R%`Iu8wZVNH6BoZd_Eafp=Esu;gP&ljiwfJAMe{vRRQpm;n~q0o zS=uROTOXwicfGA+1jBW@Hxu@`xkLhIlI6;fE#=^fYANR~MxiMG6SHIq>BZj3QW+ZUH3(c>#%UWXM%v*<^eWquj}oV%Ro3TKR(2vN+CL$cRio_5pLwRs-`6o7*cN!HPcISsMuf7^Lvvlctsje~C7z0+k8pHG5>o{e`tX>7$ zTalssX8OXf)I1p@2Qd6b$Ls0{+G2Xq)tv{@?OvT7$`v)s5;XC}a z9Qwa`B(OSfkJg&q$&H5%P~YO(wC0q_^XkbcK5^?wy)g((3!~vr2&p<=2@ld_jWFnG z;cI{fh9#Uvh-LN=MO*#`8s$#qjcgj-(7U1I=aSxSzaEx=_aXkiohndHcpN?DSFwj= zB`q+%BPaNshsFMsWnFOC>QQVGhi=SN%r4k5UI@a@$2Xp*K55oZDHcR3b~+?^ zFLR;$@B8Smz;geOtGA4bvSGt^L0USbI|S*Lp&O)A8l*)^y1S7MK`H6(mhKt4yBWH> zVc$OQ-rxGx_8&_aK#)-086@kxd}9#H8sO-%mTPAk;}mG&OQR9 zpUNCKEK9!gw*u)lNt9);Q=y$1;>B+VLz7(}LE^(H4A+t^ZyWnEwV-TM~K< zfn9d~Pj&(u_5XT_|Gm&Z98VGX^#4v+{J)>>fcyUiO8$NK|MTY~)&C}T>NKpZN`pUH zn1I|fP^D!Dk2h6Xc4J@?fs>61Tm>pfl9+YWNVH*g)X`pNJvR$ZD=TA$jEtcB9d4+yQ$90lRWJjf17H>){)b#ZAdr7Q7h%{QN%4$Y ze$xR55XwOF+xqX{QXMnUprpXk+oNwLOBl*rr0rxQ6HVl?*;jL9JrL7r6ZANykc}a{cjX=V~ zHX$+JVxh)SX$kJhYsiAAQ9yk(>?Nt6fA)uUOF76>qgyHx4Qz*e3Gc(&PrnYe0h1|> z30L|c0kHuqT9nY!lNB#$(Jbs_n_ULKT8>p8k4?@OaN_@3{>So{t=R=_GTKzYJIam+I>8S0F(+!XTWv$dL1~KFAsp1 zgK8Dt&1duzUD_DYTeS~Lnl7X7K2pD>zI6OzS7Y~i+Cxh&t1n&H?W8rGKe@a^sKgpt z{T-sRKx-htq*3&zCZ~?l9fJZy4X~4#DGa29rpvXh?YSNX2R176oV5}jAoFFpYpEb8xt?S=S!9_q@a9&ahCI!qB<7>wGz?<)8H z*vZ7`r*pkyOu~%4{c-KToKOCE6VmUK!C!A%j!LZoSZ>f4yRu!6b=4XabQW6dvxIkL z+fO+;Ii1UP2Z8a4?XZ^m3YSinK^dQ3?t~cG{5rnIrHlg3i=P4ZHGhi+ z)Etc43o8!nq>#b7VOkl|;%p_HkRoRy+p{OxTx z2em1uadENcyyW2FnOTJc#bx+79G!dhaPT&b zr^C zDc5wby)WdDTi081oXWS|wp=1fQ>sZD+5vB-nw>0(_|4)NC-)!RK0O}AF@^(8J4paW zOrzIm$CG~|BjPFd+uHBq8R#T0BPwB-5P9e*R5*vl6uD?VBlQI1Df^4}*sJ6O_ICpf z)7$?lOrr=L($I+cI-~qDy>Re|J*uul_*HXmpYkkLk01BtdKKBe@hKQfo8r|H3^FN}!tU-tt>ri*( zH_x%~m30Kp{m>iUfXtb5fiI#W`=t#C7iZ;-{ZN{$j?xCnwufsdrr%v|!&>B7VKr<< z@cml3wWaMP&cy{#ed)E;zr^>Qko)VO3WUa`ro1)-vY^zLE;ORtLzrGFTaNFdepVAX z&Dd5~2tH`lf-Z~P_0d1)*Q#N}%M=f1C#4P-M6a)FJl9b9cVfv$5`Y*>0wl4J7-i@C z5K9kqR6yoa&d(t!R`>%!zn3=#x#RQ=VInB?aQtT0KGFa`IsB4yQf52+*bUQCWjcVt zsO~Ata%|sEe~hHsznsqR@*BYF=7miKdF)peJa11vL=*F(VMFVRv`+ zrH!!C&x7`Jm9^GN{#PydMLJvt?>4;tDae4M_&wJH0gEoP<;)i=AmhO(-o^?EaMgWx zFCEP_jAb)d5zWZZcljX~%M}%$c^U*7s2~$?`{md-di>P6`!AHq6$P`#rriW?m!Oi^ z-(PJ@6MQ<8Xy}P>#6vy1BIG&1uv*NkKAPqq&iH6_SPxEG1#U9a#KRlo2lD?7{D{6= zQ}t=wxBrqA@s}A*`Y;7e)-vii0X|CU`g?tNx$`!Z>5$ZrWO~M@-5oNSDwKUTzc-m* z3!LawUKuTJQwyC;mu79hdFK~xOz03FKEYtA$58?pIEMt|*F6FRo~bGGD+4#8^YE}W zpl8*5Vv{bx<*EoXtbigX1US z+$Cd&(?r&g(a>IbZM831JvleFPXcftJ&)+!{g9cSNC_+YzGxnquq*KFP!zohh+JY-@Nthom`B_ z;qMotJSA?bL)VXW2-mkEkIf@7vQ^FD-lB%-AUIGBlk)C7kiXr37e@=`71nF>Oooj1 zgw>isCbvC~o1|Qn59Ahrfz-B7Olx#9DHEFPM_7mp6s%fmlvofQeHDY)%1Py+PZmV5 zmBa(*A>=+znV9Vk%c`OG_2ns~AaR2#LO8?_k7-_1Dy3WC9rd@EnA>fp&-2T{MV6)v zzX|9(3Cx3B3~F85JcdA`582kfFV$lZV9al8ikXx0xW%JO$jJDQt!=VfAjHzkBeU? zeP{v>6c!FV^M8JzNtPdwuUV~C&_@~a8{pc!%2e#WRhaPlIV#P20C`HZu z+5L+{fdbD->6%vb9Opv|r|yo1-Cm{`?cQ!uF|pC&$*$v>YKlHtWg#5A<%c%=nKPf# zeJP*8&_lV=c3EyMbC2)W+@P|p0|M*0osesO4F(;#1KRiVLXTDgDdUf9WBex9F4yb7 z>Kw`l`JKZV4a&_58AnC#_s5_;n3jXXziNkTH-j15f#(V^D#zYbVaiB;c?lZ!Z%&D! z3!M+;Mrvvx8kjW?w=zaA0rP6&bHaD}!+J?yo;C6jP4zAfy&v{PzaO?mNuQrkHni&HCG)DkMzjod}^QSIksG$*i3^`R-V_dTQ5UfB?`+MWf8S}bR zH&42Pqo`Hy<=cf&!L65RSRKGI!;ChQo$fFJdSs5aYQmE|CCPQpW>S*L^X&o-S1i6{yH?l(dXjigl zNhs<)uqX`1~#b} z#GSiMcJ?XGJw7-fIA+Yf{bT5!`xn%^hEB{q?kY$Rl#5%Y>3g?(-#c<0XuIjw+gKfr z1DeT^KP7Pua6=lV4Vh=W)EiD#ioU*uZx7a$fo3{9l)@J@LpAMi3oGK z+p`&_--9Sw4@&+4L9S__@6n7(|>=C z(vl6mf%OUg$dzrhhjV579WLmRgS?6UxockXxAGSp_!iyJpZzE=jc0Jlq6dwEWmKDI8zY6E=H>CN;fMzBN3M9Fn(#OK`?md!tCS+ zts+T`B53^)2M3UN+_A#KmPexP-;Kfz%w_<-`{*)IbYaP^Wro*kcK`3$wEC;%tqIFw zhhG*pg1aw=vMGWzSEjLi3QOYJ^U1BpHKrk}jn8~lw&T#*hV(n7@~ zPSePvQ%J7;dmpdueXU(g6<4dB!bs=ZJ97z}w{{Raxyp^D;qBNi$lnv?&%c^R zcQ_sKE{5w(b1LYPR?3ef8jt_&9i7Y=_yvQNWnbqlNRqqa3}v~G5TKvOmss$fPnID- zJ<)Q0Nbs)~Nb`i4ezvv^pU)<_y`^1*Cg{ zjb1%@jSN281?RQS$FwdL2}sNN9NV|b(krCekO%Bpha|rqYo3yTHhB%?hrq*_mcPQ7 zU5s1p$L|}J&EFmp+*(#_KF8WvmbLvcUvs}?No%?4%a%a8el0y(nRu?k{8bpG*m|NA zvXsFQDQIa+OD4y>-u|qyYf^6Rn}f7l4k_udTWnnbT<)BXAv{4Z7Ryc3a4j(#X_dYE7q=nG;uDsjq!c($!2nJ4kxgv za*|l9cCyT5r|lpR&p0#CZ_Y4YskL-_BqI<{Tj9i~m3fNC#0qM)Uo+&i*~4n_1DGhq ziGaIseLht?ipS;Lg5JL5aIS!7s{oo8x&C*F=6|s)zAmxMykbrwd~3NeXW@wo>ZJ&t zIn`~fU%LXL;E08vQ|!L!o0V|XU7Nk6vmcdy9DiKN?Y}6x`pqdB9kt5;`LDG{rjsne zx=^9=LUHF$%=UwNY=(m+>Bny?O*kMe!*w(CS9eRbW zeAFD$jPKtb3_D44dce7;)O3{E|Fe~3sWe|J5a@_!oo3JTt;|I>dD5ZJR^L^_1WlJbL9*Z_r}g7D=pF9k!f0)A6;8~}!SZ3TwdEBKyhkO1#Dr{R7Bp9osNkrQ|h8wNtZ;n+yQQKn`B3o+EuVw(>yKlSY6 z*@Ry_9%CHgkV?+U-x~yi+F`75o;~I=a?Ofv>^s`q0Flj2!XHPo4&t`yfL$(Mk-}?$ z=B$m*4tO9L#5F|LaZ@vg%MQ4Lqw+R-T-3S%u1(#115>aeYXM_~W5d-m*0b7PNZ6?7 zGOV2dZ1PEmOg&g-Gec@6)r}DCX%@TRyTLG8I-Kl+)Ht{%;P#u{E{k5Hp~+Fd_)~Sk#7-TDA*=gN69-s;ssmNx z0aoUTDu`o;4GD_Dzux4q70r!u;1S0WCv7+Ky_do?^}h4YyiCPU4VhgTpAExN6!_Y5-L}R4q@}1o2C}zZix{9lQoDT9f5~E++q2(J*@b10I@k;DCRa|@ zFiaAQyd|gC`$`QhvZ#7AHZjLBgdsx|N^#nJWwA?7I>EA+`d!1l8r_bhHYW1aLoPSHcROleXc z;jZLnX?75rafk@`l&bc-T3xpS#vT^`E{@8U%^CSgd_KH`u6$5W{ab@bt=?S3wb8w2 zigCqpy_o^SFTE!0qafmSSl)QKVAslIP0fkSw~1*$bqH3a5&R`{eK4#3%)SJ*GY%Kw zO>buN5Z$Ne?XrSveD4JEaL@0}!o0o)7Eu)ejy*Y%%vrBUaF6&Y;^H3hI^TDG>5V9&uv%p% z_v9|wgu}tXXy54#Vn11!v$xVv!|daQ&7jRJZ&B&nQ34X~xKK|v7!HV~3ogzG33ieO zU5?TnR|WCIiT_lL2ga>q-p0|{+R38(Q)-CrK;(6a8T;wHv1MUuHQ7b?U+&g^E43?i_4-) z!-vuX%(e)POq2@TpYnJEe*BEvi}5`8AB%NzMUPBa_+;xF!X9J%;s(xdFtSqp|`da~kAx~iXi)4hf!%ha-LCJ(%+SUww zgd|aG3YaG1NzhMND>~ubtRaZeh^og^Z{CFg_Vp*r($UIUcV`-g1YbT*CYJTEtW+}) zBg=)DwiZ)<;mZrUbvxc<4KM#w9V)inZc5NbnM=%>2Z$$hcc~iizcANs#Zpan_!$k+ zhsz)jFJhkDC71MAtKQh zlB{LXrlyr$#|g$u0)Lt2j|KlPtsLT$tvsC8*a;4_F~FtlL}_#Ebb?%C!(*7UBJKEP zEY>R&>QsHNhK#tAY1vqa!y~|=_&0vjKgVJ8`Z>=Ry6g`FSdOxjv)c(5Fh#EXv6+?{ zLd1DL0*V}$gW34U)0R0j_0HD(%stj8jEnNZ7)!J-2aZbH9}PiqCYGa6Xq%SU+!F$- zLW2R*7pMfIsJ7^xXh|?eE|@||7mrc^1!5ZQq@^N!!3@Pmya7mPHoSe9d4{gDom=3F z!u4hv)+2=8r3%A+PzH`O`~~f&d6cAHN8}qYNk7B2OE4M~!Hh8Y0|~LsGF29;CogB# z2vR@zS31}G-EnNn-M3R=T|tc6uO)k4TC>-+4Gl=gZx*5~xwl%Yo`H!Kr)3+;O^DtP zRMZ{X(||BK{%+VAg9WrN?X|{OC=bXPRN6?h$$yqtbB~oM)*T@4-_bHaxsTmhRMZAs zBbsm=1)nhDzpfM{3tpTB?ew0X^ zBMFR64f2p-yQ@rZ*^o1X&VBXST)o~V20uuLT;55TdwV?c68#zc^v#IKv+MQTX+;AKkM2+e)JLFa#iZ0QS=hrCtYPJ?T zGw$p6Dy)-z8;sn`g*7~PE`@xqqFJG~a=iBJp*4k+4X87DZ*Pf0Adc)#UxZ3C> z7io6j{<2Y`$*FkSBDq%jYc(Y?c4LZCKxVFl&TX!YMM(3Ll{PD6u_}rf#vS!${AN9; zJw`jd^0f1^NhC9BO}jzT;=rwfJUx|E;FzAbqEw^YCe#cF)3V%>z2%X^6&My1AM3vNw{`UGlRmtNn&Jp#)(O7#&X?8CTF4+42{k zRSnSsVG4r{mK5O(^b<9jGh{M<#|K%KdSp~E@`E&wB<89BRwx!0Ek6D5Pkt=NkqVKT z2wwjtD%wzfZtK};G&5dSS?=dmudQLM?k^G%((%#P8iK8a66A=C@*_Qz52v7sI8WoK z3IG}kB<3W-WR_%F_Azi!{%rf;x|xUU-iDdwQ#AX6`v8P{`_{5F0b z-7_@PX#Cv;Gejh;qF{i+HvE>6md;Qpcz8wy^dmqqi|b<``6rCHM#bOU&5Y!J6aE~s zK4%Jnt?z%`Z@0Qcz7?-V!X*ECiB)qAEYS+1C`7s*{5^;&P2Zm4USW&2Gz)iMqF160 z4dh+&@0}w}1hi7&QLJoZjy*vHivg9Pg=6-ot@qM~Sl>`UV4t{-;Y5+=`^wK@nx%6^ zFH_Uh_=Fw960H`}Yc7Q&$ADsMFze-tV2DkYyfPB<&V~yXQ*W1yz%w@55m;CpJIkJ& zKdyV<82l6#bF7JU^xJJhs}6N+paoT@n?E>3r4EE836!cLL17PJKzng0?yei>|IE<* zCCq5Eu$)+Gpvf&vkI4dC>(WG~A!2_8wqfZs;ONHRKu7x3M@s2Ozi|z|zb*9pQiJrI zjK{ZQUvWb2Y%7nR?O2mPNHaUq_k+z7&G19qq2v|q*H`wJDuh%4 zpw`ntbP;LRJX40S05ts#gS2I6kJBVN%x-_}I z+j?%EoK&OhnT0mokQ1WCTi0CP|$5bVvC&whUTkJy}; zYSBKM+a-J0fv6bika#-Xn6V%DDbyQv&(osTIfHLjJ)z4?#i2%6?o@A1 zoK#MckYz%r;azaWAr%lFckbIVvwaudvapO46OSwhhnmwFwMkYawAIEnBI`kt!8u^; z0&eVheq~lbL-_FfmLil@8k6>2Fv`7EUuiv`K1cmBpeBCP`Qlqc9O(C zhQl&#FH82TE4F6WHBq(3{pH4XDY}z(8EY)Dr$jc3-)9hQ`|eIYQA-^^s4K+$ zuYqZ60*DT)vP(sHLe4_)kH5*VIG_PXDsLT$@d-(V2#Gt3ei zK|Qy12o)I~gO6)qdzX;|Z?!9*PX#AAq=WLdu7hVv=fE8=*XhG|XA&eWEV{gnXBy&S z9MG?~vAAHuC{0;nSCyhHJ+I1lls=T&?4rNIPGCr`u=;OK{a%r1Oy8oS@rHkt>AoPv zNUByGjf6&v|HiS&S(z@W5` z(*ZLo(X|_P3P>n8CNPC^uQKJ~-ccC*;1m4Ao@pvpC2hX1`>u5lwXy#%M^>rhqb{t6 zx5l<)6$V22xwo&vfM}J?o=R}eKK#mG*JOL|tx^D)So?V@bRTT%$?+M&f=|0QFY9?( z-WbhLV9VE>RF8{k{qUYa?{K!*b}P0@AId>KwzqHdr=<>5?LUIaJF&u*fHOq&Vcd{*ijbyxQ$6v@0pqxzEUUt08V7Ht!2*4oU74BWS;@B6hiVvZBleyhPIW zLZ-l768P^cTzZ|Jhm3snum1`}MHOU4zI{Lld?$`ikIt(U=t^|4|GYm1xcUrJ{9Z2C zT)RJl9_Nv%PC0ui8S?pw2-4){eI<1PDq?~cWlv8{pgIBvm9P|gQ;WVjMU{d59Hc=R z<>7{HqLB9)#TL_X*Tla6O}gUu_r|1?elb@-x*F;Ap|JwOWudL-$cI&o#3z+{6RDqQ z#YQa=xJ5;{qQW=wU%cNG-tHv*edI@}g&Gum#=etJ9y~SLlqlP8-!@pIB%vfUc=jS< z>~{8`E4KsFx_1az&ZIA}`OcK|yl>*^yz3chPu3{N=h@bD8#G?(ta3ee=#m+%4lYNL zdj#c^Lnz&E%HWVjE@OH?$P_O+Lq9K8-Yae!^AIm-l@;CoB^*>&Iz@H$?)5QJ&%JrI z@@a2&j%clT-2t`KD(jHlM;(4VoYPqm!T2X>0JIP<{esnJC*f>lYyhxP31o=`N^+V^ zw!d96cl-C29)I)yp3UZSj#`lPy#A=HyZR2f@>60#s6^OX8P-jo>$Ejt+f0k#e(ay9 z%@G5LjtFtNh+FV<_i1Z)zlkLEfniUIBDPEyE4b62{X0A+{C1_^rNBL4?X=A!$lA&X zyQOVzrc6Y>?lz@5{Q8qleqiqnLmb2OQI6knsnKXD90=jO-^0c9R zahdfxDVSn{a2yqXuG&u=$(lzRj3}_;9(ZoJ&tsjM-X9eE0(WEg4P5tarrYtT+3nHq zo2-Rda6%J-nXK4Xev@S0zPLMxvaf|{?Cw}PNUy6;{&CRW(S6iFh?>@toigu^*q z%#rpm+(VoHY!o5h1B+8X1&&<6oyhPcXEd0=$Xe9o<@xkALF9GY{%0A5c&+9TKBwmu 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

TtGjkrglqZP0b-7+k>2? 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 z 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 LnKDAr`u%?ZNm=QQ diff --git a/phishing/decode-spam-headers/img/4.png b/phishing/decode-spam-headers/img/4.png deleted file mode 100644 index 6bae90d998f7bbb85ca4300841c5bddbaefe9cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8547 zcmbVxWmFtZ*X<-o(BK+8NN|FN5G1$_?he7--Q9w_yEB99;O_30;O?%Mhv$3Od)NBz zuUl*NboJD!s?$}ct9I=jA|oY&jDU{-005B1LLEvjk<0HE9dbG=(NBz6V>NN&Xhe=0a@9i@9% zD{Qs&Nn33-`Rj9-!HJ3D_ovYHBl`%t#0ti$WY>j$`33F|COozV_vF#{d>2U8>&})^ zlx+FAPw1MA|KVu)BmU2&bwqgb;P&`Lz5sKkzZO2IdQ}plQ;1&6J4b03hsO)`km%Sa z&+YJxi^JHRqaQn*YdbfOqh0mrhtz|pwr&v@2Zo6aub#dp68vYeN8-1vw=POI?OTos z85R7NX=hDZ+L=kvjN!^i*Zfv>qd>(ak1650Drw|PpyxE2p29G?W&LKULo-aPMQ<{- z^R4MAzR1A6BYk60tttIuk4)ZVn|Lb(e8vxkd$R;=chp!yT@UkZm8eXn+myRSHn?>= zkhE~GtRuY{Bz>$7RaTd~pUL>v$4z0k@VBCRT+8VfZX&>K(pma}gQ@wSnE)iA$A&6P zXh343xC?$sA8FYV*cAflMXQ6?kSfC&b(o!87XxO)#zAjwZg+P#BWwKFK0mDo6*}%D$44PR%TX%j1ThfpHqOde*zEykc9f*bMpUf zbkN`HdHP%LL}G7ieKIbNSMd);ElFRsBN{ZBzU_VE-zm!rJJ?p*QMbkd%dtWSFD+ha z=vNXh3Rhllp|D- z5i=E!IRcqudSc7>6Po3#9}ieY49J+orJC9Vo*xy@?8CpMiPasq&3MrK6Fc3o1z6x~ zNs${gU^N2W-e|*Yi^wwfx|;7}TzO5J6;2{$I}h!U+n(gk^X#Q+31Q7+@%x+$b{<+J z+hv|X2BS4IMM`?qzZ!_bm5V%_CQUPL`d;7$g|EXAq{${i>*VA{ABN7BI z-AJSe%^0aBljBmtwD|G_iWQrqG0G`xHqnfJiP2S=jtCS*P;Z^Cp89+mYCJ37@`OBu zoutVmDmh81M&??cUobv3VVS0I9(-J^4Rp!UVpn5~sm15j5W1|Q7sYv9r2u@qOr_4X z6#3dmA$Hc8K5pU!kD3bymY1>B?*S}W~pp} zL&v-M$<+?@#v`iQL^to?!KT;x24{h6bg8nAq$Ks!2Xa_phd{3+k&LwGWk~}LWb%>G z;ep}l!SAq$XA~8PFr}iWRr!n_emEP(v1~>r!TpmKWFCHjuLA~n>dIT6LB|1;>qqYW z;eqN~Hjx)_ty*Lu3>|Xl5S)x3q#hgim}6CPUGJhl<};hipBiIrwoFbmukA{#Hj+46 z955`xTf9Kc1!kp&$4G*sbyHODIbL2X$tyU&U0orrO7^R7{Qe#crAx&i%_%p7!w9o2 zPZ}zFrDPV%W{^<=p@_%(NcJ^Z*1FhMK{57PRrT1ka&+}UCOx%qI~FEcxu%ZCK8D&V z|IT2QN8E^Q!uOuFtGPK8D-wt#M|IlXUWI4WNAfn5aw!weD)t}^Kv|L(1;KNO+&D9J;xB=!bl8s!V1d_Pv-cl*yxPC z`ubU*{(4=s%ES6Jh&*Rq>UzvR0oOJH=LzLE)TNs4QWwZ>&83NY6wbb22$wOO)4^ zs3voA_21XhbmmE?Cm2>n?dm$NGdj9`W*NW#l^m7VEatqHR4`CmrQ9}O4kt!a9`eEG z0b=PyyLhQ%t5H&he-&?;Gbt!rY{}EBu;~9SmBwqJ(z75Q)>eT{EPmNEdlY#Po0ZFV z^8$a;U($m}K^F+@FIUcSjAAPj?XNmg-uYwzW|r_O>W@CZ8k6VXAtR1`u9temY!Br) zxOTq}KhNxWxz;9oUGDhGbmYz!m!`_QBO@d)=VPZZQ-4u9F(omKB43l?N(~cpg)pGn zQMW&;QjGa@Y~?*{L1|G?kIwP+pJ{y;U+_|u^D{__K`;On01tK;Acp7@s4jaiwJIPFp4R^Fmjh$Cr z@}*d$T#eGv83y2u+w}?s(m{;UJv-+pbpSS`5L<``%zAm|BTqamNn>=6x zVrFTSmwqxX=H`k@Z4Zs)r>|wN-w=!*f$B-ZmJP828zS#N;3|vQowg%`Oe)BK$u3Qs zqq!RfclCAqt>9^N*gQu6&Od)^e%5uQ9elDsPx16jM|r&X8kR(dw`|V=uXrGsUh=U6 z8^EW#1`?Y$GN8`5ZVM|#izw~F$c+2^4`}IztAO;PPRG!Ap)sBwgC<)Y&$HVS<_7k5 z2JQT{tNeGoEh!1!7g0>Mf1T4@+3~6~ZTP!1DzFUUNOobId$e_gOtuhTE5G)HNAfQ| z@iy^Z`e*F}0RAs5_+Q+SIhXZ={oCz;Zs%leo%GH2&-VMF{~$;x9ha6Fy-GC; z8ylPYaC{11Sl>@`;G4@!=avkw%hfawFCCXRz=UggsSH`PlBlAfbaZgkIyi3iOfPBi z(VH&vBElffG_H4RYWm)`hng(__b(J`x6akJgc5A*?deJ9bqg#S@=*jq$B>96kV{pO z;DyM%xq{ktsR>y%t(-^4SYptG*lYyC;X{kAlOx8U4M;)zJXb?>k3>cy6GBUq44G1L zZsR%3@Jse84JzT7sW_LOPbar{CvtU*;qa}M%AU8j62p1|#23QYyfn8kR2mO+hj_J{ z`85WjxNeWx{k#M$vZza%Am)wVK0HyGSzIhe!sdx7|F}PHUrFI{qT1jMFEK|GB5H7i z^8W)RkvHC4S63pZarNPaL0_h>CmxxR0b}Q@)LKvJjOoGtA%ViyAgO9pxTxd0T4#bL z^9_-s{*n-CM@)thZVutOwD(V~VST>MARf8|%ZEmMQIxy8P2M}6N_PbV5rJs9&*M~4 zL1tswn6X5z5enkxe5x{46Fxx_oWdD|BH#^gBv#U*hn^`!#KdPu?Z^gp`jIft8rS7t z>igi3gY3W0iZhW^#LE@gQW`F&0}r>+9(Q)s(td> zR97c+R1D!d8C^uku_o(SZ}W9FSA5d0>At@u7s)ACAgM*?R`9jrDbq zgHu@8&p>^_Dh!-g#Bmv;vDLrIU3>YB;`zyA=+?I}HvSs%QM~iuKBg~@tdHH|sJR<2 zyVZTUiMZmI-^r&%^%r&&Dv>*JBH<6kTZ4Ppp7~XfzXPfkwRDCSVby|2TALnqThTpOS@^?ib}|C29>bw4qW=sNfC2~B3hLsFf)R+ z(6BNK033;&W=cT$>z3MQ3>*3h2b<&Ztw{k04d0?*WJF`(QiwQ^Ie9>~Vn%?lZf zs!+p_Of)eBEu)R=>xgn{cKMrt-c+ zX{#!d=x{Mg0Op-+>`?s8Qy?k&ZU4gDpmK~VUA!MZ9J+(b*E7K$vxE6q;q|gXE+Bei zi|!GB{`H4|E4r9#D#2%-9EH$+npXH2Jvv#_UW+?5U?@E1d64w##O?L^*m>?i1d_Vh z#Yb4<*`nm?Z7^>}Ho?=;4H+{6cH8;(Sd1g1#xC$j^ta|LZDHf4Qn&5=d1*S#YtaxLT84fh>w zd2BG|Xo5RyZgN0H#=^WqkX*BKbX6Vci{4Uq0QH9%qMiqrbx_o#k7Hfk#xMCr9GqE3 zE0qEQ1?&!#9-CT;3s$>3Zbc2XlYC8&1Y`Xi$P9srCiAUHn3lYn%?IB6sAN(P z*6?b?K-sUmv5Mrb*(rox&M1`1rvxqwj|hCI2B*crN=W6{o<|jO3y-?%G|#cCm_KRA z*aD<6@Nz_EKLxE8bENLk;TbJTxucak2g_zU3qA4@60I=O_rq3= zHQ1@E6q>)#=uKO8(C96nx8B5&iKFM4N26~}CKVlX!JBnN#)Gg zHTj@m#}DoPF_wU&FIL7S__-61M}8rU={1D?s!{$5p3a%z5oe`D=9{NqJjqDODzHUx zX`IdP+g$z`jE82RZGyxGl&vnNG;X5sUY<3aW;gsTytClC%{;L;7_rhC`5hk0OxdKlBTo@r~07`d!e5&kd=QhAanN5TpMO_Fp}`NFUM$`r}bxU=9s zOa3uF$I*ltWUhkjm%?wCIG3Dz6FQax-rPzA^-EiFJ=Vg>E!f}si?B?=?i~KbpeFCg z`H`>c28>ZoX{x9I6#&&$`qi4{G*w7~Xz<1BxycqPYn&`(vCtNNM1lB&Ga!)c?w`;f z;LE;AHOUMq-7kKO(L|j$n`y(n9N0(4HZz$JkX<)Y95yaI_+)i*qaPH|Qdzq2_pnQv0TqbF+E zFrmM+=y@whw6EdmUg>Kff+z`1);!m15az2BNhELh%$@vk^jA+x2BcrOU&T4uiC!&T z#Mrc#o|r;NQG!{m?jy+Xsza6Ef-i4)(-AYi;u#x=gD^ss$>AWKq(%wSi|;@Ozub4n zzO=4Wjg`A(6e*(ReTh9u;^+6Q+HW+ua|$J)G!i2Tk$e_}4(R*OanBO)&v6fNlHY6G zz+sg-4kVwx0l;GpWVWauckxVQy{N|Kre@XNO(YJY;xE^zrI&QIO_1m1H~qRIvj)tk z3V^&c#Ic_L%)2l=*9ylm10TW&4;4&L`fyRGI@JG9&k~Qs6FTe*0(A_PLwT+ zZF<&hGK;>=^_8V8Vpt4=gwz$FRBrpHnfrcQ)Q~-%ae&~cE972UBTeYPO+N{QL8=nq zEP0+}%nGkRU|BsaL8u))92d<}RYdWV8xw=C7cN&BRxxRb=p8b^@Jw>B)SnuGYMZkT z#0VjHibB4+Drj8^RKRTD0|)VsvF%6bjVhslvs`6W<{|8HK{^?ap&C%>7Xv0vamj5}%k#=W>EzpIl0Y3&MZN3{OuF~sV+dp%rS|DnVl ziHS(FLLQ8eamJRS)OQ1xlAbV2U~d8}82HDXEJ*^|a-%>}D%modhmLZ2eVz@vXr719 znqe(U#qkojF!@5T_l}8Jo7;Yx5pfLX5o->0641r&E7(dtvcboA2MW95{B}4jh0)Jt z((^o%*t>hx?V;jb4yEW8iV_bBO=9TP=8xjZ}~(=6^lQD<(1gk z-@ygGJ0gnxvLphY(wS&XV#ZQG_@dG+)t!NQi9zl$WY;E+yyIfvUE+0h z8~7*=X@}1ceh7Ij(J;EFxWZb!6i`R2Cku!{n6WT5Anl-dmfE znqG})BFlpavy`y+TncNihxNEfOi~0tS?yLu7CN-Y#OlTlxhd9H_l9}Ru?4ldN+Po? z_l!hYa&#)haMF=Wp5!t8E>*N(J&nVX_IG0Jh1BQ3({VywW?)S2fh$@~J||PGV#T&3 z{gsS199n%At%}3kc;{>A5GF#W@G_$`ZrpzCT|$-Im3x6XY%`?D^) zI6uZBGR3FO(&G(7@P*Hyu||4=MK-(Ip7gG-=QetqhvEW_*Tj1?l}3`a*?Z2L0Azjn zC+e}JN2=~RaE~-5d4nS!C&0Qyx}kRyJe{Tob6jTz?;=EJy%*^*Tsc7(6p$J#($s%U0{1P-P((YcJv)pq8Yhtyv z?|jir(y&{tyI3*q)|9HW^h-QC-NtLx%Ez8kB5fMs%>~)KrhaM>5&vf7TPsYyk$g#S z@n+;xdYD~2JbV2QfL3L12;(~;;LlYHJ_&MbbtvSFhMMYkLaQq6#`QjCLA0LTmqn0L zKv%6FCzR;ld)W8x_3xg8creYHkx?JzNnDP^OZvG7 zQ`wwdZlxFDC3UYy@d?3+QVHW)C`yH;R#`#DJ; zl~_K1zzCb`pj4_Kd@m5P#w5sSm!dV#eSPN!F4|8x$`Euu#o(Yy?{!vPS5rY z^{U;UzoC9eX8neT=$!o>WhWR)o{diW#Tz00Ix^B;xtlaFuDs#1j=#R+?+6taAnN@w zyY_ss<7>`RADQ27t~c(?H)^sk2suqDfm(xHS5^@G5Fm@v(SH8@9=Xde1Id zgHic=1|8D*%T+@UmfW9(aYqZ}Pi9(OP}+$QT{3*fy`JR^ptkGRsHoDOBL$({%t z8))X%l~>6PmezAMl6lq5sg?QH=)nUUav<%t)tS5B4MdXYNAAAWzbJH&$SOE+E-zjJJDu1#mk}6)4cwJL9)uuocomHWrY)7s zG(2Gf4;*m48lB0;)L16B-9|4m8tb=Z+aY?qWDEu^>lcChYcn|SS5o&iy;6EB7T%&_ z(#p!>rub-yWX7l@A+dC#!UARg3aRZ(dD`j*4xUpJQ&X|goIdmiC>1ZXVo~H0=v1%F zm*AH-4lh{ubs)2BN_+Hb7uVO3EK-yGQGY418bg8tQ}YZBm zs&*a^jtr(n#d8kY9e;8Vp?_7qSDXxnNRc-B->S6#NOCHrdnK?qBaT12NjroB0{^Re z3q22fV}3JZ!YOe0RAGc4EGyB(0&+M(bBb(G`WpVP(mfogx&mvC=aTCN`E`Dh!tCSv zKKwl6_)szKlk!p$ulH76nav=@2uJ&W8v8_93sGBNkM}?PO6X>K6SI-TWnua=Md%Tm zPa*nESZ+V<`F|+gMPyL_c;o#yM6AcmO1d7M_dEZE$$zW-Fa6+lM@3fX-@)y|zOan% zaqJn~4xRRJN4Y_$;5tsu==Fuh>86Ad{m|