-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathatom.xml
More file actions
533 lines (282 loc) · 523 KB
/
atom.xml
File metadata and controls
533 lines (282 loc) · 523 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>孤桜懶契</title>
<subtitle>Run</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="https://gylq.gitee.io/"/>
<updated>2022-08-23T18:48:54.265Z</updated>
<id>https://gylq.gitee.io/</id>
<author>
<name>孤桜懶契</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>【漏扫工具】渗透测试常用工具集整理(包含xray、awvs等)</title>
<link href="https://gylq.gitee.io/posts/202.html"/>
<id>https://gylq.gitee.io/posts/202.html</id>
<published>2022-08-23T18:43:15.351Z</published>
<updated>2022-08-23T18:48:54.265Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="工欲善其事,必先利其器"><a href="#工欲善其事,必先利其器" class="headerlink" title="工欲善其事,必先利其器"></a>工欲善其事,必先利其器</h1><hr><p>渗透测试是一个自动化与手工结合的过程,自动化测试工具必不可少。</p><h2 id="漏洞扫描"><a href="#漏洞扫描" class="headerlink" title="漏洞扫描"></a>漏洞扫描</h2><h3 id="Acunetix-14-9-220713150-扫描器领军者"><a href="#Acunetix-14-9-220713150-扫描器领军者" class="headerlink" title="Acunetix 14.9.220713150 - 扫描器领军者"></a>Acunetix 14.9.220713150 - 扫描器领军者</h3><h4 id="软件介绍"><a href="#软件介绍" class="headerlink" title="软件介绍"></a>软件介绍</h4><p>Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。</p><p><img src="https://img-blog.csdnimg.cn/img_convert/88e81880e186b8bae203ee95b9c8678a.png" alt="图片"></p><h4 id="功能模块"><a href="#功能模块" class="headerlink" title="功能模块"></a>功能模块</h4><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">Web Scanner 核心功能 web安全漏洞扫描</span><br><span class="line">Site Crawler 爬虫功能 遍历站点目录结构</span><br><span class="line">Target Finder 端口扫描 找出web服务器 ,80,443</span><br><span class="line">Subdomain Scanner 子域名扫描器 利用DNS查询</span><br><span class="line">Blind SQL Injector 盲注工具</span><br><span class="line">HTTP Editor http协议数据的编辑器</span><br><span class="line">HTTP Sniffer http协议嗅探器</span><br><span class="line">HTTP Fuzzer 模糊测试工具</span><br><span class="line">Authentication Tester web认证破解工具</span><br></pre></td></tr></table></figure></div><h4 id="软件特点"><a href="#软件特点" class="headerlink" title="软件特点"></a>软件特点</h4><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">a 自动的客户端脚本分析器,允许对Ajax和Web2.0应用程序进行安全性测试</span><br><span class="line">b 业内最先进且深入的SQL注入和跨站脚本测试</span><br><span class="line">c 高级渗透测试工具,例如:HTTP Eidtor 和 HTTP Fuzzer</span><br><span class="line">d 可视化宏记录器帮助您轻松测试web表格和受密码保护的区域</span><br><span class="line">e 支持含有CAPTHCA的页面,单个开始指令和Two Factor(双因素)验证机制</span><br><span class="line">f 高速爬行程序检测web服务器类型和应用程序语言</span><br><span class="line">j 智能爬行程序检测web服务器类型和应用程序语言</span><br><span class="line">k 端口扫描web 服务器并对服务器上运行的网络服务执行安全检查</span><br><span class="line">l 可导出网站漏洞文件</span><br></pre></td></tr></table></figure></div><h2 id="内网渗透"><a href="#内网渗透" class="headerlink" title="内网渗透"></a>内网渗透</h2><h3 id="fscan-1-9-内网重型武器"><a href="#fscan-1-9-内网重型武器" class="headerlink" title="fscan 1.9 - 内网重型武器"></a>fscan 1.9 - 内网重型武器</h3><h4 id="软件介绍-1"><a href="#软件介绍-1" class="headerlink" title="软件介绍"></a>软件介绍</h4><p>一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。</p><p>支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line">1.信息搜集:</span><br><span class="line"></span><br><span class="line">存活探测(icmp)</span><br><span class="line">端口扫描</span><br><span class="line"></span><br><span class="line">2.爆破功能:</span><br><span class="line"></span><br><span class="line">各类服务爆破(ssh、smb、rdp等)</span><br><span class="line">数据库密码爆破(mysql、mssql、redis、psql、oracle等)</span><br><span class="line"></span><br><span class="line">3.系统信息、漏洞扫描:</span><br><span class="line"></span><br><span class="line">netbios探测、域控识别</span><br><span class="line">获取目标网卡信息</span><br><span class="line">高危漏洞扫描(ms17010等)</span><br><span class="line"></span><br><span class="line">4.Web探测功能:</span><br><span class="line"></span><br><span class="line">webtitle探测</span><br><span class="line">web指纹识别(常见cms、oa框架等)</span><br><span class="line">web漏洞扫描(weblogic、st2等,支持xray的poc)</span><br><span class="line"></span><br><span class="line">5.漏洞利用:</span><br><span class="line"></span><br><span class="line">redis写公钥或写计划任务</span><br><span class="line">ssh命令执行</span><br><span class="line">ms17017利用(植入shellcode),如添加用户等</span><br><span class="line"></span><br><span class="line">6.其他功能:</span><br><span class="line"></span><br><span class="line">文件保存</span><br></pre></td></tr></table></figure></div><h4 id="更新内容"><a href="#更新内容" class="headerlink" title="更新内容"></a>更新内容</h4><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">加入手工gc回收,尝试节省无用内存。</span><br><span class="line">-url 支持逗号隔开。</span><br><span class="line">修复一个poc模块bug。</span><br></pre></td></tr></table></figure></div><h4 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h4><p>简单用法</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">fscan.exe -h 192.168.1.1/24 (默认使用全部模块)</span><br><span class="line">fscan.exe -h 192.168.1.1/16 (B段扫描)</span><br></pre></td></tr></table></figure></div><p><img src="https://img-blog.csdnimg.cn/img_convert/4151e17c9e008c9d92088ff0620fee65.png" alt="图片">图片</p><p><img src="https://img-blog.csdnimg.cn/img_convert/6b428e101981257947e86d68966b249a.png" alt="图片">图片</p><h3 id="Kscan-1-8-资产测绘工具"><a href="#Kscan-1-8-资产测绘工具" class="headerlink" title="Kscan 1.8 - 资产测绘工具"></a>Kscan 1.8 - 资产测绘工具</h3><h4 id="软件介绍-2"><a href="#软件介绍-2" class="headerlink" title="软件介绍"></a>软件介绍</h4><p>Kscan是一款纯go开发的全方位扫描器,具备端口扫描、协议检测、指纹识别,暴力破解等功能。支持协议1200+,协议指纹10000+,应用指纹2000+,暴力破解协议10余种。</p><h4 id="使用方法-1"><a href="#使用方法-1" class="headerlink" title="使用方法"></a>使用方法</h4><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">usage: kscan [-h,--help,--fofa-syntax] (-t,--target,-f,--fofa,--touch,--spy) [-p,--port|--top] [-o,--output] [-oJ] [--proxy] [--threads] [--path] [--host] [--timeout] [-Pn] [-Cn] [-sV] [--check] [--encoding] [--hydra] [hydra options] [fofa options]</span><br><span class="line"></span><br><span class="line">IP地址:114.114.114.114</span><br><span class="line">IP地址段:114.114.114.114-115.115.115.115</span><br><span class="line">URL地址:https://www.baidu.com</span><br><span class="line">文件地址:file:/tmp/target.txt</span><br></pre></td></tr></table></figure></div><p><img src="https://img-blog.csdnimg.cn/img_convert/a5d7e2393bd045afd2cb50dd2ec2532a.png" alt="图片">图片</p><h3 id="xray-1-9-1-漏洞捕获神器"><a href="#xray-1-9-1-漏洞捕获神器" class="headerlink" title="xray 1.9.1 - 漏洞捕获神器"></a>xray 1.9.1 - 漏洞捕获神器</h3><h4 id="软件介绍-3"><a href="#软件介绍-3" class="headerlink" title="软件介绍"></a>软件介绍</h4><p><img src="https://img-blog.csdnimg.cn/img_convert/466cf37b7a42a7d67d94df70a0203fe5.png" alt="图片"></p><h4 id=""><a href="#" class="headerlink" title=""></a></h4><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">● SQL 注入检测 (key: sqldet)</span><br><span class="line">支持报错注入、布尔注入和时间盲注等</span><br><span class="line">● 命令/代码注入检测 (key: cmd-injection)</span><br><span class="line">支持 shell 命令注入、PHP 代码执行、模板注入等</span><br><span class="line">● 目录枚举 (key: dirscan)</span><br><span class="line">检测备份文件、临时文件、debug 页面、配置文件等10余类敏感路径和文件</span><br><span class="line">● 路径穿越检测 (key: path-traversal)</span><br><span class="line">支持常见平台和编码</span><br><span class="line">● XML 实体注入检测 (key: xxe)</span><br><span class="line">支持有回显和反连平台检测</span><br><span class="line">● poc 管理 (key: phantasm)</span><br><span class="line">默认内置部分常用的 poc,用户可以根据需要自行构建 poc 并运行。文档:https://docs.xray.cool/#/guide/poc</span><br><span class="line">● 文件上传检测 (key: upload)</span><br><span class="line">支持常见的后端语言</span><br><span class="line">● 弱口令检测 (key: brute-force)</span><br><span class="line">社区版支持检测 HTTP 基础认证和简易表单弱口令,内置常见用户名和密码字典</span><br><span class="line">● jsonp 检测 (key: jsonp)</span><br><span class="line">检测包含敏感信息可以被跨域读取的 jsonp 接口</span><br><span class="line">● ssrf 检测 (key: ssrf)</span><br><span class="line">ssrf 检测模块,支持常见的绕过技术和反连平台检测</span><br><span class="line">● 基线检查 (key: baseline)</span><br><span class="line">检测低 SSL 版本、缺失的或错误添加的 http 头等</span><br><span class="line">● 任意跳转检测 (key: redirect)</span><br><span class="line">支持 HTML meta 跳转、30x 跳转等</span><br><span class="line">● CRLF 注入 (key: crlf-injection)</span><br><span class="line">检测 HTTP 头注入,支持 query、body 等位置的参数</span><br><span class="line">● Struts2 系列漏洞检测 (高级版,key: struts)</span><br><span class="line">检测目标网站是否存在Struts2系列漏洞,包括s2-016、s2-032、s2-045等常见漏洞</span><br><span class="line">● Thinkphp系列漏洞检测 (高级版,key: thinkphp)</span><br><span class="line">检测ThinkPHP开发的网站的相关漏洞</span><br></pre></td></tr></table></figure></div><h4 id="使用方法-2"><a href="#使用方法-2" class="headerlink" title="使用方法"></a>使用方法</h4><p>爬虫模式</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">.\xray_windows_amd64.exe webscan --basic-crawler http://testphp.vulnweb.com/ --html-output xray-crawler-testphp.html</span><br></pre></td></tr></table></figure></div><p>代理模式</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html</span><br></pre></td></tr></table></figure></div><p>高级爬虫模式</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">.\xray_windows_amd64.exe webscan --browser-crawler "https://a.a.cn/zdsys/" --html-output aqjg.mem.gov.cn.html</span><br></pre></td></tr></table></figure></div><p><strong>免责声明</strong></p><p>由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为<strong>此</strong>承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!</p><p>领取工具地址:<a href="https://mp.weixin.qq.com/s/LHNKndTlbghAtTjNi2a5ag" target="_blank" rel="noopener">https://mp.weixin.qq.com/s/LHNKndTlbghAtTjNi2a5ag</a></p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="黑客工具" scheme="https://gylq.gitee.io/categories/%E9%BB%91%E5%AE%A2%E5%B7%A5%E5%85%B7/"/>
<category term="渗透测试" scheme="https://gylq.gitee.io/tags/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/"/>
<category term="漏扫工具" scheme="https://gylq.gitee.io/tags/%E6%BC%8F%E6%89%AB%E5%B7%A5%E5%85%B7/"/>
</entry>
<entry>
<title>【应急靶场实践】Ubuntu-暴力破解、写入ssh公钥留后门、植入GPU挖矿程序——事件复现(含靶场环境)</title>
<link href="https://gylq.gitee.io/posts/201.html"/>
<id>https://gylq.gitee.io/posts/201.html</id>
<published>2022-08-21T18:52:26.594Z</published>
<updated>2022-08-23T20:27:21.131Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="38f54f1155488d7a7e0536c3caea4784fc697386eef526b2c07014bea9ff6c10">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327fa311384a29730034cd2bd290c41d136af9b36ef4d4e60b36ad04eebc65b328bad1c46c97fe96bb6a89aefd9ca009df7dd3c7318036b5c71716941e84a334864c29bfc85365ee449c0266a08a944c36ec4b25312defae5d9c0026ed922a8939bdafafcdb77f0f35a88861b0adcdaddc2343eb7804cd764ce4621d061acedb6da389ef43127c15061d2d43bdb8c03840cef82ebcc3069eddeeacd8399f5440da516d43b5d1738e95dfd33b747d99a92331d41f2b686e7ae40993797dc462ffe068930fa8ba4f176cf8dedddf9816b7941f36e04a16169ac116b75d835a866e02d0ae492e91304c57cccef707d0d16f49e512bf18ae736b6a598d1cf9b71503f5750434a64f1e23bc2b913dd880c11bd3c3eb0ab51db3860f29239e40919593aecd8e9f53a2420afaf4bbc2fb970036c3c2dd978a1cee2482ad6c9d5686b55f24a48a1d3408ad91f7fc08699b2070565b02651ba6539fd6a8a73fd491f730b7e4d79b00f305a3845252328e72ad38c1c367814ef0cef5a480ae0b636fe955f5db32eeb3006680f5d7995ea65ed0698bf03f1adc3255968ac8d095b4c080e0b9c2d3c4c536764556a0930597fb79c2c30c378882be93451ef779f3a0981c7a6fd0ea834865a38b0f0db8632890bc968f0a879ca6fd077f95c0903658bed9069bf5c83c9dd2159e29769a38cf8d7050d38fa028eea32bc72351144c1b891c49c42d9a548adcd2201e8df1b931b12de3e0c6d116c12762d628f3c3324606fe4e483f46b70e0f465f26f41e90c44537c9c025c0ee36c17d56c5c45afee1a2fd107db73654f815a4c16b1315d28b618654bc644dfc27a845360ef42172abc1ef4baefe2a99e891cb0b2719fc0d388fc1c711293322eebcb29b1db5304eb6020271e3fe4de2a4fecb4e719890cb5d5f61722aa3d72da29a7357891694115153044d6d13ec05e3ac5d2440fc4b48fa3aad1650ab9471a499f95808ae89677d137746a8c165775a8c255472a0035ecdd02ce26847db32cc5a7843997ec1a3f70a50f347b7fadcfe0837ffcd6d4ad08bcdc5670a068f783ac38f9bb2b294fe2cceb6507ef91bf09c44578c0f36ebad9ca683852d6acee0ac91590f922f25c3302e04228eef3d849ee948be661420e83d8e47b66cf3405fa6d4611270e3b177c20facbee8a467bff9d18886612c65782c19c98a012e78f2cfaff829c0563672ddcef06b7d36530c3dd6cd5276a7929c3eb9c2c1bffc58244ea15e2db5669ec93d5da0df02363b1fc9107398639afe17fb3592e6eb98ac3067dad4cc7bacde314089d9ab4e21130b001591ce252f46da238716bd51130026ee217b86465d0eb4e61f95313ac2c51f4d5eedaa08d66e5cfd4860f5f2d2175c681b3da8e5274c3483ecdadf65c91e2f319bc53ea0fd44d97c46050d1e3faee145a06a9ca371447f15bfcc33cf909c2110bc2721c2cbda9245fc158acff87726a82a99489e4135e9ff4f4a3fe6176ae41c7f0705648f1b1d974ad0549199e2540322c99458d7e68d9c2bc9bb15885c24b08967ba277c93c8cc7216871f136430755a2d94e9bb890453fd8739129846c680801777c57c5d73c4bfc3fa845154170fdae28c284b45ed3aa1537968d3d1ace0ad2096e260d3b646ca80c1de499eb93560909f90f07ab7a181d174e68877f7750a58807ce3cb0086eee7687f723d6a828c1bb9c82fe0832915e8c04b8b43f08b85294f55643010cf5f6228308e25ebdacf57af71f055292a97b5ddfcd203085c49bdfe936f95f090fab37397493cfaab80b546ed1f64a3422797eb24270b61a52a1057445a11d7cfc5b741e38be141e4d3193d6e6169e5cce4703176cdf3a98102aec889cd39eb02442599d48ad0d894b91eabc0c6f51e96fab4d13f62db6e06694a1f761ff59b5e9f6794fe8aecfbb196b099feafe17d104aefa9174188ea8791142184ac00d46fd4a5d25a23bbb414624c8606ad77f45f4ad4054aab0314cb1387ccfe58aa2d362ac996d38c008f72d352c2fe26d81cc78a2c4a23679b8b1954134e51cf3a0943615ab1c3726f010d8faec1a21ae02c62287949d7362ef47b1b5d7b580d45ca7c1ec233fd6baf2ec2e6104987c067e1c869309ba891fcec69c4445a692c2c003841c0066697739efb90c190d003567c1ebd5995641e8447d9f6b473427bffdb626511e650b6573451170dd4eb6a9ce36be314b95d9c918b0b123df165fd7b48fbad2629340374736f622b65dc8dc39dd4911024b0b285354b0dd881a169f62b269ac75fd28de4b019c64089cbca073538cc87ddc29fa3816d7abcb38363968bb74d32e603f474ce13b41a8280e84bcab7adccfb64edc6511776f14e24f851a432249b1fb0132893805aba10935c9143ea79a91b72660c82bb021d4d58ae50b0abc54302ba76f3968ae8f8265674a42faf0f71c413e0ee47616a7366f3575f4a005eeab2dba3fabbb9e709f81f99b835244c17d27142fccfb39e8f320485388fe7d89fb556dfff5f33ecb9cbe0492d8bb424429cb390cd6c16e8e8e6a3d96f2f7fbf16ebbb249dd5476c752a83cad80c71a88388bc0d565b032d0b8d0217997ba3d5b57c5e1bb55c3f2daa584a6d412c7bf30b1127cf11c60bc41970e9f4be1b158649a5d4cf0a0fa78b534bfb8b614e64aa546c38ecfb4df519d9a7e27d53bc08c5d53cccfe8f5dbfcbff71743ad5350e3c13fae9ddf6b8e33904483f8a9d1b01cacc85656c40dd4febea135172a6e46506000db04238c24a5afbd2acb795d345d70c7389c849cace51a180e20bbd507e1e214be7c08cbf9e33b674a0f0db1dbe90b57341859f89ee22f6cff655564209042b471134f917a5c318ec4b0b3e95fbd1010a24ac4bb765c9ff7310a18c9d8034f2b5cccb953820923d8be7d51d198c4ebfbc3a6c7c0102d6cea5ad0790e07cd0cca1f01494d7317c9bf7b0f6a82f4807ae01cc09726fa536beb986a4c973fa636a7653e4e2ec87731f64b0b8b00e9bb8bd572876d2b92b74469191eb120614a4ecb794152f0c47634c1bc86b1a032ddc98b508c85603e60ed18b0c1c1678a1e384ff7708751af2116da7ba9abb0492c5442da9fa268d95b151aa678ea3ef1debd5398f395139dd302d62fbf1f881feacc1267302a12061f0e2cfee03fe8b8bda14d63453b6afe8711abed4b185736ec8c52b1ba79b9c928c5a6c5f19ecd97b98eb8176cab663d592d2b8e75dd84d055b17d5e2481a4020e877e04ec6be61421e44e8f3beda18c1a31d0efbd67bfba76a5fed09c23fbd957121ed8d842b20400664759a749a600db963cd168cb5f03c498f08c3dbb919e6b2ca0fe0c8e1506a38fbc63070761674441e9f53931ee615931b25639c843676bbc5bd813881afe735aafa4c10c898b55103a4171bec209a9878567833fcc30767649995d68ed4a0f6f01c5f8464bec5076c065e95425f99d3a377770dee23619d617788171af02b90d49f3900310f8629cc728abea6a4e610213e9f98e61c73af8e770fb6388359f42c9f4a0b8e27d4d6aabf70fde8634f4b99c778394d341e7e124b62b8398713de2c90ecea0d8fc2a653a893ac941762c62605ce78b2ce468d85d8d2616a465f34abd1bad0ff6df626be0fa7b29800b8f18ecc62104cf2f098f0287c710eb91377b69d03172af183279b3249a3210d01055e21f7f0de7e24088f8fae7cff480cc281c8a4420eeae0454a305c73ce52fb90f51ab97b69cddc640b0dc7a5484f9119a2b1f2803926fff1fc37d4bfdfe5d391a720588dc78b0330a1de0d2d505bf20539a6446e4476db4da6e550630dc6660a377ce3d58ffe7630061cdbb082ca42b347b3972c53bba0c4e0d2b6357d8da5510810bde4a184690ca122b2d6cbffbf6cda8b92e1a6a491d5b92ac30cf35faafa52895563d5957a9fc8cb5b73bc7597a757ffc1318308e3717cb6889eaf468187116f0b80f9f8a3764701eb09c3a56899ea02164a7755899163089acc0f9292be896d16133e3078f209fcbadc2ce9ec38786a3c5dd0a548a5485e92a944992d78bd4764d5bb6a352680a2a1ec8e01711da4744677def186efa70233dcfad6e49469cf9f1d1f2c813de37f660b2090f7a72e5103a8e1272ed6c4d1dadb79651e734f05d8421f1f7faa3e6b05bed07b038ef82e82e989084c9e1dc91214deb73927c601e32e2d813c0e3c2b1b56e6b428db56952c82c0f148c03ce973e2e610b5344ccf705ff4ee580bada6104c02f7321d9f38301b07eadfb35818bc000f552c1c105763577a0facfa75ecdfc8aaa78a1ee08c288e5bf94bb34e299309016a9bced0a45e07aede0661ebbea67ddac0ef3d43904c02e30acb132706a6b7905aeb5ea2448cf41763c01075a6bc391aee33881ea578773056cde2b9d1d559ae492dcdae594ba4ae862591c4cfd8eb5ec67a5088776fba9b2a72d92ce29ff876a15d768574b361034b68ce36856686ed454a7f52363af399abe9e29b7cf9d10efb0ca610a55b8cb417bd571630baac1d4c0678b1a315712b4ccf2f81f11265650afa658d9989efadfd4d30cc5a3bce0a1d0d9972db5041906212b3b34125575f6ae4394a039d19ca7e6794862ee613a7cdf4d06a4b67daa8043f916265b87dabe7e07c8007d8855b9d82886dee658b62afa014abaa48d5eadf602f65f7e1a7a6e351ce64f4b2b8ef1c4ac03143ba821428da567f8c967f22f9957d08350fbd7dd330c61cea638dc242d736e6faad3b8417de1a65e27647165d95a3e8dcbce1e4b12195114e84343a5c7423cc1a5b91fcc9427e4a8d68454ec9df208be4f441fc3461bc725706851727c34ff2ffc54951607bc1eb9c7faae0c52b62b558ebdc0010bc6cb7e25ebb9279d210d37d741c4fd526c6ef316a203c76605b0f497d40d4b6ed5c0eda22188d46d252b13851a6da3c5221794dcf67fda9f509199591cfe178e33108766bd7c22862021ea79c99384a07cc3de78005c761e17fc9ca46f1b8d5f660f1fc7728a4a9740556a4cd33611a11a01f012b7fcd6b198a4ada57090f4e64519e14fa2799b5cf82bd1a6d2db0f9a2f5542c2b3cb56d7094f23c75c2d2bda7f846d170267c3f6d9d20317cd989b4e2e2acccc4188f609c293e513a4526b305bc13783c78706d2692c437c8a81dde41c69a7602e5978220c1781f5ba9f25f6247ae4a742cde13801724a7d3d0a584ea535bc9e420f3697f678840504beb8e71171cd04ec81585a6d383b5fd1232ad1661af1cd1898df72932fed0e78258397e98f75fe7a7884010383fc6ada146743ffeaa76fc03b245441dbe5d69c7d2ae4f5516f50c571b18401bb0dcd10369410e47ca6e40e07ff8260fc072645d80642122c18bbac16e15790a6eb0eccb4081d9464772ba25f83cd18a4f0d9dbe4f113b8dc302dd3591efd1a33193db181bda86791db605cbeed826e8a538ab59bf2ac1c06d1a2e387d2a202b55a5373dc01cb3822ca86ba2b4b0a647ea22a9440bbc423d585c4888733607446e6c72b04fe326053f1a7a4089ec7302b4b02635baebc60afbfb3044673310e704464d8431a8fcc77ff82f314bc8bef4e439045738d7aaa7665c35b5832438491dcb8a5dfe06124ea594d0d50da755998ab6c1ec8fcc1d634131e8cddc58a00033f4223ded52795a6e5f422781f7b678ed680efc21df9b6405251825bf3dc66f43d30f5ac431fa5031dfa3fde3cb7541ef7159d7ce91b2024d928db0ec3fe81f8d3668e9544bedc2752f13d431c66fcf0a8f6e9702acc0e3ae86fbf5d273b3bd07aad73006d2ee5e2a1be3b22a2c67d292a2178bd59df155a5b681647f1eadf445c1130a0c5241a59ee732e059df4c9b510279ff0aea3c7df35eba492a9572d9c042eb7469d90752914dac52c76e256ca6d692c3d15526c08d8579307926ae8e3d68cf5d575efa37e128a27f083a387d58644c30d8968f14bd76e05b3f5d766772001918ae98475f81888b90cb2c1c21cf48e1bdac2b999943b70d33c1d53c00823c24b5b2a6d172cf2bda7b2694b847f91783e1cb67c2c2148bc5043f8242b7b94b242f88afe2ac8a735d482f0fb261a87464058bbb0ed787bc7d2e2931963a75270d1a55785b6ac6eab4a334b57b4c827a7421bb54582948c3d4dfab18f9e21345dddae5f06ddc4b336f8e07e9a2b0ae639f5f5a3f2d2ca5581e001f6afb815b7877b7f5fb4fdfad87950e78c80829d2a6a72871daa95d4a8689294c76a21c279e4eafb022ab1b4726e4dc3b9fe2568fefc9f183e48ef75090df97ddef3597aec86c8c2444cbfe0ad65ba1f4152f3d4ffbc024052baaba6294d4f31bb494c4a756542b3a611f6aa603d1127c8859f51256a831cd6c4cbe4d42f3a81e6be7b537f836adafe20c25568d694469e610cc21ac406a9b06bc337b34aac6d994d6d8b0e8240f144c5456e0e91867097644288655ba337353c83ef40df3068e0aad84a33d30da2ede66c3d0853e575e17c2db99aa2001b50021feba1b60dec7f247975ad5dbba67b3b7781b5d2bd781ccddedfb33a7a581eb90b26b91636bc6f416c7d948c7a9bd346f4ebbab1423207d3e9876fe1ac29af64e882531dded94e75fbccf3aec1fa7e7437f539155de68cca57cb48a240d15a0c617b59fcc4ff65cdecd584e53fdeefac5d8f530b03d706dac368ce056411f6ce0335203821ca635af882da11677596498689692c2d1ac4bd5b0590a525f774aa04a0f30d3449d76c86ebc7330d5997f43db3b7704a317073b40b0c0ef3858e4480a9f43aa9b64ba642016b1c932b0733d1b57ccfa411fd21f7e6e2ad1cd58e5af1c00be50adc6981a039f2a1fc7b8e6fc81e45b704e72c326b32892805f9e100a4d3c8da61ad9c915568a26dc62a4f45b301fca13ecb066278e60adb1589202530390746c72d08c561c7655f5693ae369cff4d55220defd8ab5d62d757d98f8bbc5324225d5716b82fa679205a13c49e28b2a5298c4c816f6ae3cc8d131aae889ecf298180efd612f8901d28e4097e601d528f96ef530cfefd190b0e2a161eea69cca183d7522516385836d26bc87ca1703897a0b649422d893f184dd9b62aeb022ab0c95b9e473129bbfd5b69a27e5cd741ddd811a62e98d6cb62cdd984d084d3c36fe052e932e64c2b622bf8555f377d170dc2e5b51c42a6cb53ea299293b72131ec369e0bc3c99f4304992808f34060a937c585f5ee8eb64180676d63c976e890e00bce4ee85c24c1c6e246d7d1a308b5d9d869e2cca3772aba14779ba5d85e9bb363a0f6c4e62f6d003968b5830e9fac6aba0057dd63dd962a113b9d5b5c17792e7efb9d67302a03052cd673ffc9849f0936bb21244064e497db68467ddaa58cd9eea9db518b8cb5b06d3ace3dd548494a8b94e263c68c773f52da304993326df9a0ee81ed8f9e177edb4b0818c0b7649e9c056b06a2679b91d1aa746d3608575481d930cb3da58760ba32b0b027759e6d2d909a3979f5c28de88c188e3af65a908265e0b59ffd690b4c4cae9aefa13bc8fe16aab1c1ea4cc8cfd720e015b6ca34c4ef416940cc6f139374789ef248903790e42355d5b65f72f3f545347f706a58142f495b227f028ad0d6ed4769ac6e4af57865a1d3c045dd4133beb650b332b3ffc207408535836a9ff3eba0ba5965dffd6d97a492a201007672fca5ae53fac34394c7a1c915c7d58925bcc3471f49415260492584a27789e3b3a3d2950a2710893a33e959aae2526eaa2616a6a0359bc500c02c7626509d8de011b5d4bc9f4b2235bbd4aafb22006d04c65cce79c454c6620ae68a96f33f4bdb6f878914044d015fbe829db5647a2c8c48d80e3b780d0b2c7276adf3987063ae5b363952c30664e4bc02f1d77e4ba216a5df881d327d7f1663bd9af721d2dadcbb79d14805788d2e85299dcca06ac9818bc7c405fe82661d4df07e293ad1b1da8a0cea19c5c873d3b27c15b1f4b80c5e653d90a7f7ee933d8f6a8d40f813e53e79d6f049affe27574afabcc7c1d8c7af239132c5714d51acd51f405441f160d0fa2bc62c41bfb5d4bbceb180ce0ef42c29b222e6a9c12c064956b10b5cfadd45fe732d1efc021672620294cbdb899294f4979762324584f5fb122482d063d0a24b21a751677e40208bc9937883eae6a1311f9e48c2f89a4d6efdefea608fc85eef86e6366411a707d503e9a6e74ea98ca2554b49885202e29c74f1679b2bca89b9eb4bfa65178b07e95d9c769111e84e92de8f1595d32660733874d972b622fcaef50aaacb42bb4449a7cb32986a357598345e48e9b064755dad0df97bece9ff4f393f32be3c1568b9ef578c0cd19b1398f2c345f4f9063c2ceba7d7923f0706eafc6e607e81c76a86547fe90b3ea41aac8d3fc9187cf8daaa1b378072f063a483d126efa9829f8af4e2fc2ac7d8418e210e7951b85bc91b0dd0de24336dab5c2a7714602213286a8c767a9c4ef65026956e7db487bc362328b2d2f99b07d1627fdabc458bb4ed99e671a2e871523df794aed6662004ad2c18ccff8ead549fd1f78fa58726104b8537cafaa24d8c4879e0b619514ccb65a7c6e9dafef4019e55503660f0542d429b9210efbb79d33bef00acf999574065eb4942d4c36045216ecaec30a63c0b450f094011e9fa6e50ad6b29c28c43c03037e4c1adf596d3173d6e522806e13a0730f3018ed892daf78bb057ff9d40d51f40da79055568b01b431c51d6b8c54364348b2bdacd74f37fec5a314050b2678c3c89f0ed7aad13f835f919dbe217b9580a04dd9c97d0c05407d602ecdcf87a1ac179c3f5aea62ffce1496afc73127a0b20a48e19d96fa5f135821032290e65fd0675a927f983048eb102f04d7c17ea93ab008bd24f63dfd76cdf622870a18860572008a0ccd5bf64ffbc11603d61b2423292abb12965c994cd74cc208cb2b9c94c6298c2351101dd5ce915ec30e3d9381d7f0fdae7e05ff06f0ebe9eb0ab26cfe1f99c39ad354bd8cff1b4e2bdd17fea244ddbb2a0403f4706d148c48a526f8986f9892079a1d4d2e61c6e634c495de27bf9fcfda85500d5afc8f41e933013a6d3bf118225cc33d7d06bc754111e367cd219ce2caf68cd437b924c673ae4c9a3ff2a500d3e989f24650a9274c84002947e9fb9824c27d1e7d00b8604468663d2fd98978366ce37ef9963e272050feb65b3ed1d55e79a54c116ff133614971dc6a0726df0bfa4fb3e0d2a6627a8ab50753b4353ad4680bbcd218f1c832c06a6af23888e8936d42cedc3e7878bcae3797e98d52868d53055098bb6f86a81790e3bd580c19dfaadaae33f8b50a109edfa2c3ca54d7d00d314260cc370c98befd83fe688dd4d3eef462456350c7916b9691638fabcce2ff66174653e618c967f45cda3f44815083b15cc0c8aff28b849690919b38ec93d49c2948349571b234069ccc04c2339ebbbac7e8f7b2f2f5e4bf031bc7d2ae7cd6a64590bba82495eedbb36d73b6aab5bebb5093cfcbc0873a1a57ceaa693ffdf43a211e8c2a7119ba514d115aeaae4dc85bcd29f7187b11c58ffea972fc75d2fc9e27f22faaf312a7428fd15bf0047e88c342ed8b85b4caeacfb891308414b0efbbdbf17958edabcc62f849b41a7eed99d1d51b6072ff08cbca276fae27194760e0c37de91e2b2734b65ce634e8553ca650faae369bc9bda7bd952a3672cbf13e2b684d62ff173a5b33c5db28d5ba534110f069d31d1860964e435ab0d4750043defed6e035bd5d5be295f0cb3add62a59b924775f44639dd35945251fffd5fe70d0805fd4031123e28593ee665ab87a3b86eee292e1018fb421a1970652f9991082a3bc4f55f2d1dfff7241113e1b9939eee07576131591329ad10d985110ba70874a64c1e166dab3c4860ced45781af4b5c13d74fbf0e718b3ea72dbe3e01973231f8bc6f1dac1be8405c14990831024813c58c34359d794d73681e2399fdc8d92511951a41a846beece01247a74c67d3ea9dd60cc3eb897a9aab2684ba10cef842cd69dca57999a2a21325a91f4002563e304eae8404c6641d983fc9de3930231cdf5fee79fdc2cc8aa9b9ec29af68c174564ea80fd31429fee02fc081ef679b92c859b28d77c1a2dee5ddd93f486d58ae097a439f82d47ef207debc2447ed287f9357a7030ff8cfe4abffe6174f7be631926b4383f5e0a4b821773f9b4be9490780bde228e4d1fcbf6ed1b17f4e8071c54536a4ccde2296227b95a67a26964b730550e26369e9bf20e85ed4e5007419412f835750a3b06af92b2c80e9285eb1d533d0ece7a0f8f161c2483a7a660418e9fc6f060b75439b56d19fed47decf4dda0df93200ba45cebcd9b0e5d8afeb7c938d44fb96c8c691f11414859804ee3329c9eb147924d8d15c960ee588f9f73004955109ca3fbbea1bf12114959ef07608df919901fc8cfb39ae240c6978232845572f1c9c486577d764e00485fcb6a09016ef4717a0623ae660b8f2a54519cf4a31208dabfc3136593ec8705b367a7cd5c5074581dc815a13844188a9e54643d7317b5c686bf04f15967adb02ef28b350d23a5411632425b89d06fc41d96c8a3bd0eb46931f2588062a4c5a9447331728ba16b6c7a26aa51c3faf47c58443003c434adee0e53a1e6d32752d429be71622075af5ff5d010cb9158adfaeb07fb7d19d8ee85b41aec576cd6f9f2f8317fb93f04e8de3c4697a8563b35dc76cabcc0fcf40b6a78103be60b75fcf951073203098918c96ec519dc10fcbb1c16357832ca322bab8d7282bded07bb3bf5442ce655b0a103d6ec5e6bb6e201a9bfca69d6a0b4b890b546237d2c7a72924694f1c240a2cdc206aad2dd5963cd196d18addd0c0fa54c19aa91e63fdb94d9d5f1a199676d790cb98381e1a4fcc1f38f07f198ed551103c4b135e5ab0ec3b44bb06d3c41ca56f19f4921d017927a5e33a2b90e8f273e836798c7f8c11406e085c998cb1e311a05d2821bd41828218cb90f6efd947cd8bacff5b863b0d089c491a39577e045fbde53e8d0edf96a4407f4bd07cadb355486c8369fd931418790351163e833c02bb5098c231128179ec67ad95c5044baa62370e4fe9412313b6fb11725a1e30f5826a22b1f4ac4091cf87a6a3c6db1acb2a2264ab165e20a7d31130c61c164ef4130023f6713de2799658159234e8c4df017e202f258a91a9571165e5ab5136addfe869f5337898bd308c7e2311f28047c0f811c12147903da0aaa3030e20c92a12d984e2386cafdcf1dc6bb17f586b2728448ba41ff57a626baac881ffdacba03ac8736da74f5c9af7d85be3ca217cfdcd1ca2b62e47f3fd22a33b0ee510e597e6d14c4d00fd0534291b9f5e11baa59ff25ac61a0adf702adfb419907f905b34450fe0fe3f80e208fefec2a806360f8d52bf9f41b484be24262ffd72310a86a3414989576289530d11348b64e5856d316588dea7ef3ed3c2e894c023509405dffe349a7563b6b23a1ad5ddfbd8dfbc2ef58d09e74aab0852ad5b4634cda098ac9a3d1c6087687d8d6a2b310fd395bdf0fe2424b5ef1096cc1b7a33bf26839df0faebe631135c42bb76f37c116d1c0aff5ddacfb29414c3d51c23473a6b4c78d755e293cf0c7cd29664397e3be7cb213b66195fd4b114be394f68c7e4c3a24d912320c0104140820ffd05459ce7b0e67451e99278813eab254d2d4a6049d7db75d62c97e9b76c0f522e3462383c1469fc590ddae98426f1e2313f5df82abf326cbe54665ce163657a792b86615e9a335e0df7ae3243a64045aa894857cfa3a8177fecd6021fa7b5f958df8c25cdeeceb858c08ef51a8cc0e1c75399eec54a4272a1aa0e67e54ad8b3325061a4515a3d1c4fd4ce0fb4a8cdb9400ebe35357109e405e9a800f753d435ad5b80bff4b3dd13038f3c5cdea532e47b2f8fdbf91176f6b5e37c37945855d14696dc699724362d398bcd4d32837ba483252cb8b52a2b96299393a74176d794fa91a8660cfd6488f322cad434fe16c66e155ac73b8098c2bb53ea671723f56e199c9f3af8d8e90967b3e10b20bcf8386abca87ac3df41b60d88a304b7bc3de665f2178b70d31e1d1c591c165eecb7218ed1ff3e71ecd321f34db4eed9c8bf59f56572ba80e3bbaae6beb3d0dafae675c0430c635fd6023c22fb6a61147bc37db34624de95b9043ab09079659e2e8559db5801a8aacc999385c1c6c43a2506efc697a95bea24139bb156e2feb743dd30d107b2ca818f9f1345f097cbfa97c1337a416c5c9955317006c8d535be1c69a173576454a99b32b5305eadc8a07eb5499e0b5557455637a23d6a00a6154ac4335d2d6cca97f8b468cf9205eba037f71b5afd779b1fecd2dba2e6cb3e553880b4cf33853ed009382a49ade609c6adb1ca90d4a8f06920c7b4a2558414fc2a99dfe64c3ecda9343d8a14eaebcc09ede3dab20970a9b6944add6789f937d22dda2a0983a61f6129656e740ffbdb11d5a323122a14649f370a1dd74822892341621e52daf2e8e6f46b8b04328c7e0010529235fdcd797bb9f4f290f896a61492e6cf4c98d4f2ceb54da93b284dea74a3d7ad601e167f3cccfa23f81bcb7c1ff5b495a7a91d0d8cef65cbf53866b4f8165ac997d7fe7317ed485448c9f3c076db62a24a69b753b0026915e71c53ad215385967d3c5b2a82f7cab5158610d086db86e0b2ba6ab6438b588932b8d0b241c11d24c64ec13e78682af91dfdd57316c26ffd77d57691be2619e2a064ff99212376a4ccae7982f74c38e6e953af5ba0f9899961e3dcea9fe757dec9c339dc77ce3fb311560f3d7491ffa077c7a009122395780dab51f16554abde2c2e39b8059cedd87abd5a9f533e47a5d3b8e89833937689399d9087e3a925608bea24adc3defb173b64d1ce0b2238f6a40191e5e4a617a6dbbdf81e7832df07bc84b1efd4a21aa16ccae7532d253e8c84772cd74ab69f6d262023484343b5a259fda5b34cd52fa8756b3fcbe95e8ff5d344936f7e4699141131a8842c731926142b6082d8c49cb6603252c39a58d7dcddf8a9717c7d3dad432e6b0b0bf0807fb0f7fb84be5879d77dde3ff0a470fc3ab6af1ee5b4e15608d48702975cf52955e16a9a64c67d536b8ed771f3ee1985d4416f61db944a379a7965b7ca5a6f968a0c21754b9a8f439f3237cb50ded123909fc80efacb4920624da4fc011229b5851734717adc015614609d3427d24d23e5c29f4254a074800acb938532e90e559b4e1837ac2f9274f80bf48cf71f2a7e76414b5712e2d96bc7b765b3471c6c988722f3e347deb501f1190ff72e1e89aa2d7c4c5a71b106c5cb84e057d21d89595fbfc9a2d3539fc40cad9e97397b92dd1b28ec76a788c54d26804ee83ea88816a81716ca31dcacf0f8406b3987e722c5053e4c677eab57c8aea649b5fd6ca09d14f9fbc1035d677ebc252bac5a83e3a409a17ee36c659400112e257ff35fb0f172a85a31b2701c5348fca8bc68ea184ba8b56108302c93d73d7cca140d655728aa51b81ffcd8f501146a453a88ab4b0c4f2f87a63022e5ae45c395cc7abc338a470cb6b1fc8c5b183aba0303cdca70fca1c5cb1c45ff03fd9fc585c2de54f7254142edb88b30cd8bbbf786e14cc3653a202bd50e72ea8f874fb8f6ada70afc7e13ce5e7382620cea1ea37bcc6488ace900071ee0d2d0c934a9a7c828861c7cceef8950fd11d1bf7cb64417612c9fd431e0f79450599a4e6c837ad1e3c8b217c68c75dd8b10f538b55c980303ee9167b369ec2336646ff23361f9ff7b8dee2afb1f9d3854c4d1815e3d87125d284b04f8467604a76b171787036a3df745db958684ca8f152769b90ee1a52425ac17be0dac1d7da80f767534e533bbfb6c5e55359dbfd13a588e2fb56826350d08551a153f5d418f118bbb4f0718f0b734a88a27e9f78647b3e278912ef8e23242b8e89854384e7e0fe270fe338467f227b8fb20704a7a3be36e6b72d8f120c2e25c9638028da533d99a66c099737a481e5da06af265bbfe3b391a0254cf3ae3694251c5545fe1d94ae18ed6be69ce8ece90b5bf95e92f13e74527265c7b09cbe8259b6ebe645b5b0a5016d8161e162d79bff468a132b1601a122db51ca1cfb595bf1c2f4e841c9056933e3a4dffa92358ae21ff37699c4f8c37856e232ee36846843f243a3aba9df8f0614e5b6610f88e3bca79e6a1c49948d95bb96465ded6ec8405235922487cf25113b42c622aa639375916554543148e32608f82c003ba34d8a614977dcf28d22021b4b8cdf5a7af1ddfa816c6d7865feaecc6ec842ca9c607508a6aef08e12406b8b7dc4ca84125aded460cab2f54e817d7cc73d506ab63729b5636c7038a39c629f4b6713ae34703db200d20fb3aed1e584059e3ae4bc4218cba09e30e49b586a02f8ad10e98bfed9c1b714c52bad627f687cb264dd129872a8da6dd42d5b0eefb37c364b6e39f52b382b86d506ac9f44a02665fd25c894c3e8790f8f31755770192fe09f22d45cc0bbb20c8c4d2de9e289abbf1ddb51e1b2d1dee3aad82daef21a93f19affd63de043a1b6f23e6c92c7e5d383409766256439a43bfd10702aa2ba8b5a44e0f01ff230d1263df898f760b73782425101f6473c775e9b70da4e05a7ac24b8e6e5ab411425db1dd743b177f596ec1541bcb109fc5c1cbd14117042dfcbd4198e0ec76cae2013d3457ec437947a4d2e2f5ca377c60b9fd0a16dc0e919e988932cc73b92d7410c63646c4b7d453eaab2e12156f849f729dd9f6689a0aa5cd6e7208cfa065f8f989c63b6be09e09f538ef238dd0a04e9af9d06ed705d6eb353e86313d89d2979d41c6e2dc013aca6b95539ee787f853e349729fd3f845a4f49b70f3aa7f59e4e40e8c5047dea9c7ff3c04b4fb38a69d5c009b3f74b4b76aac4801c59d5cd9a53f531f9947b79ca1256dc18f837726a296729a201366f45a3df269081125a63dabf7b27affd457f97655cf8ab2d52b814c9cea96363c2cc1edeeb56089a312398e447d66fff8f72ba37a898290bbdfc0657b238ef12d3681564f6482028490215029701420bd8c3a40d5fba577cba6309d259addcb4d5d87ad0b64dedf9e376ffabcebb1931ec964a2d01b29d2003dfd6a8f84b4d7652a4cfcc4694cc2931aaa142be172ba8eaac558d988aafd80571605c4f6f856190751aef3e89b7d5c6acd5b60fd2d23345823f49a2feba5ea3a1a9460e68593a7ffdda7d41de878f041af55bda8f7ea8a25a204dbd39fa8d3f2104da277abfc51dc3cfc62817a7391666272ea6fd971effdfc16e90a33684c21b04aadd6ddbd5f58c1b8b454052a5a0711e3bdada326c83e74693857ec8cdc9f431ec55a258dc278c7a891c9259c66d05d9d4cb15dc15c8e13ca4d80ca14d28e947299dfe64ac4f4708c305cc78451b630fae18c789070b3c4cb001ae1a76ef60a91d0099a9df43cadfff5a3bb31dd70be5dd1aa032fc324a9068d10b17167afadc6cba7d3795c6f678f02ee5a9f693672544573741e4562f5a00d304af72cbfe3432eaf8afd082c9c68e133b81510cdb01ca19e23ff715aeba4c8dcf18ac00ba0236959e969f328a6460fc89bef3aa38ac74e55145fabf19e3fa49ee460c7609970678ac20ad0fef1eca39d3a5dff21925823d32a21bb69889f0f36b0ceb6dd6632c9f00901bb4574de4f63c0aacfce6f8cad3a9a5d2ee2a074894d159929fa717af167b506226bf569c15abfde85739a76be6f8a1557901348b3f48ebb72d789ba0e57d6af6f21a1b79366145466187dacbce67a11770bc18a2a0a5dba41fd4072d81edae8d751d0f576bdeb929dbe89e45ea2dea5b749e9ca8d174d5861dcd4dd3cb7844a656426d37372258dda070e92569cd1b4b214f488f4fa8df9811024c6b0c995cde83c28b38d1d8a0a903c77804e4e48174dbfec8a6dabff07b71e55db3ed99c42fca7d22ca1c21cd9243b53e1b4ec8a98102d3dffd96af4de0b759c78f76023f23210c06729be8930f0899dbaf456c5453e19289b86885a5eeb3d79dd7ca8c4ac1e9f89bcc04ba6cd129222336b8dcab9bc0d5a12f4950000e115ebad8b42b78264ca9bd4755adf03e7766549771799c707985a5ec9c935d5df31b4b42cbabb125f65c541e0c67dc15fef0f8d3156568693c0aa21ba4b504e0dc53418dec9a01840ab4d0a874be1ba4164b34827d02e645735ba84903548aef9a077c1c9a0dbba17d33ab576673c3f82dd7e084865634661b47f888de90ab3e245d0bbfba067f33143ae3538107c8efe8cd552c67eb5176ba88299a2fd8bbc0f38e5c04f4790ee4c75e42aec15a48fd13bdd9dfd238edb448350bfd9360a5b0e2edcc0cde2f53be2deb3ead5ee7351412dcbcef9136529d5959326c5cad8cbe9186e7ca8ee9db61f51205022127e6dd3fc00829110a61ebebe9db28cf37423781185d2eb156c7288e7168e07a5f8b79ef76f17c19b4b36208dba860b05ebf8118990a4e4fbe7041f18891aecdd92968099b87b67a6094bd853828d5a5eb426197a72ca4dbea6186fb0bd205adc64baabad02297c36282ebd1ffa07b3abc0847afcdd45aaba14d9cc116a7d8130632877ff69840036a8de0373de3f92c013d19b3d61a74f67297bae606c99f05a1042221a31ee6155ca4b6f53a57ac6e0e3f8a310578a9d2f7e0641f9362df98c89d965dac7e6b23a50d76d572f6fdbce47bc8e111235266a71ada3556df14e909a7cc053706f282c9edcb74532704476b98bf219f39d205bb9bc37621b99982f108b4f140efdeaef4d0f3126c43021320974e2603918bf50c3d3199f33dd7ce9f55ab080688044b6b6b5af6a8ae465e161bb29cf3636a920eb545daae885afdc6e4210ef99c01781460f2c6b47504a3756024e4a6b1ab32eff848c2fd57be5bd10e90d45d41baa2ef9ec77d0f760815ddeff2ba855143c563c550614d5e50101e56d6a3977bfca200f10e3dfc02d93c4310522cb8e9f27cea5220148d4ae74ffdd56700a27d34f9a9901c98a1b40bb9812fdc90ea76bf44d9df9cfd8a7ddc74ff0c769d0e6cce0fda359a2cd95be18c77ae1a412a81ce85e59eb7f79bb4f7d4cc3cfced5bd0f6641433eeae6202bcc38f1a487039a2a742afbc3bc622afb02772b48222d5173b13be63f6cf3631661f9a9c2842c114a7fbb85c948c0aaca287f3e8ff88db575e0c3f86743f2e0a3d0b7978cc7a026faba665cc59202b4d8b4b760973431bccde8cf0acf2226889b2d04a5316a033b4224609afdf1d097241a7e1213b8c1aeecfa7e0b87d86b5d133624b1abf4a37960f9665a250552fc7389b2e87469558b3bb4db24474c55f76befec37db97d928f697afad23dfa8b073b1f96a7530764b2799a0e42acfe4124cf2f02901edfe9c839b6ced2da0d0c9815f9b6853f72e2dff4f5378c4aa857fde420271454e70e0303c68f52b826cd439f6558c84acf18a9d9962b42dc9f004776eb1614bc94c5937da48beaa511306cea8e31bc0f8e279c1a1721b3ee81495379edb2ec1386577aa768f296191150c6ccc4797bcee991d9084c07c1e1c2507c8730e229dbae07150354dedb522f6048eac0267a4ec272b5e6682973bd93f114951f46492406ab5a7b9e25a8810939b0f0c697ef237babdd7c8777171d83f5bf31fa15a726724e723fc81a8869c99566a1a4028ce7fcf61d7b14133a60e9ebd8614b80cc5a9a471f5c2049ba3313d5488434699bcdcb0b6ea647b2ac19a5d3fcd19b91025edf20a2eb0be1708598b7a146aabc0fb98764f036aa9748b3dcccd398c1fa9ca429cfc5372dd4a77ddbafd0688b1cd28077480751bb8028997a3e0d14450fc7a02f6a0f1a6c68b388324095f8edd67b82a01ad5eb56eecc65a0d9d07f540c3649a94f71286a3686127cded85e8aeb8d4680ff0302ea842740e02ff1efe520cb7a0141a0fba255003ab01d354cd4aaa783526ce0ab1821cc7241bb872ea5da26a0a7e14745a94c3f79893e7a0754fa810f529d5b783decd296a2ffa0d24d0a168166172367453914746adec6191cc19a0fa410987c9988891cf7db5a305a26e51e49d2d267f77c65a6398f3df65187917fa78f5f07fa0c071d2c342035a1f817cb3f6991f3d21b4bc320511e3ca97961c74c9cf6eb97c2d56efddf2c57315e141f12ea9c448f8a913e6e1c380bebd7136ba64838a21a7615f2afffbee7391f701ffea35aa5cd35a6d9c0379bea4d37f2aa8b49f25638ba1790a3d647aa58fb3d99a06de15933ef058e947ca528110c143a969bcfa4f741bf82313691ec0463492a9e263a429a6a669d235d5860fbf3c6fa41c5ee1903397f8094b4b3ae57cc191383d0717731e6eae6f7173e4776b45fae626799cd24fb3db0b4db86aea78308296e9afdb645bfe3c647d6956326559c5bcae74615534ce77cea013ba18d5f32cf63bc3c15cc6ffa03df1ec42011237b616f7ae48c0f3a621762fb473c31b5165ee285db535c3dbf4cc2b8378d67473e59914dda31abc1e721e3b98683601d5e5c3b55a8f8e778dc27f8927af961b55be8e43a9a8ac0534531aa8bb4cec35dc16f7e74527a31e8243ac0128a0242407ed998e4df2eccf9cd9f7d967a021a0d730f7dee0b5a349c6fbb05a7d8fcc0220b676f431ec07fdb8a015712cb3e1428842d2151574103d979b7fb87ea7bee5b306886b1c3f277a321a796482f1c930f0c0a4558eb612f8999733bc3e02bea01b5b8a774762037357fa58ac6cacc9e0ac786d779418f52674c2fa2f60feb5d3d67c40b6c2f724291d54c2daf80d81d3e88584a39324da795ae51283bd798e034a3175dff931bf4f26d919e766b43aab3bf36ec4fc27ba9523eddb2a4ab80a334282df5983ee61ae7852af674e1db4c2fc8c99c8e5863949eb1ebc79c4e7aa0ef8f986ed25410fe65c5e5fbf6ac28b7d6c8a430ec4e4949872bed30dbc5b2dc96ff1987ec08caa30da5e54b7b7e0db5e38a58bfeab49e225c3e3b106a0208c13fa2bf88ccf966e75f8a7a4d736a32702786776d28bcd1dd0eab5c95ade9f9a5ceb97ed8286fb42aa994dc011009f37bccc77f40602d8cce9807d8d43606a7b2a31fb6528aadc444e80ff872f823f529aa7275f0b585a481f22dc21130592cdccf3888812773c8023b9119c35353f1a4242cc48528968d08f127135be048c5992766c27dfc9d040e490130790debb76e400ff146445231f1d74ccc7a583ab3d041f4be035468d29fcb592555e735604d4def8ee3261dc1408638622ba020e56c5ed3f4f9379550a569d58ddd5c01a5831c6ae305ee86f026b9d34f0c57599d73421a44b49087458e9d78dbd25ad95e0291963a8cbf89dddbf1194401d1d16531c82281605a370a7edf812a6ff8fc5bb54cfd6ac4749ea18b3ad6d8e18e2cd80b525b974e3ef4c41730aa60c0d25cb250fabb3d9b41677ae8c2cf8b041b12def2994bbe47c583298f29f362e36a30d98c9ae904169edd204241b22c1eef4892fa2af2fad361a01b224c0f6ecc55c0d4cdea858317400c511177c16507014a31b4bfe10ac59f7e6a75d987a50aa0feb3da88cc6619d9758d9a7300f0b57c4ce318dcd04a1690c671e16d7c1e0f66a232dec4ddb79b25957924741e3ad9c1b382fb15658fb5442021a80d8148278bedb73fa1edd88b33a07aa54afc752750fe4572fe4635ebff197f3dfc76f5323657396a5f795f042362cdf6b38299e16b3fc9ae391e1838ec667f9eea1279346e6bb51a38d9ce22cb901d313ad65bc17da849b909affd129f5ee8addcd30fc928e5189c65dc89c91b908fc41096cbd1e8c40c22ca133fc7706fbc43fa8706bdcc4b78b739f638161629bfa46765e2cb7d8bc9e0a678621893c63bcac22ffab46e89b10cedd2a6828a09bdae0123b07f5a2e9dd0788fcbdbc29504cb8a720258e3cb4ea512d8927a817277aa5df63873aa451c33fd3521f45a49f34ed9d0d9faf668264df5cd709a11f69acbbb13cda11edcfa777e8a5cad34128f9a4a9ff5e8953248343ff9e87af67685d45308685957ef37753871d7fbc0e6837f0109b7dc8bfcc05fe48d947454d42ddf77f05f22caf03cad51847dd153983dbc4846124afa5218cb3116e4359a3887d620872044f72003e8a4bd578ebff6f5427709dbce9f481e166b2f4232b20751e7c108754c2fd0165192858d088f774b6e6fdecec27019e5f2d93c7a972dbda81e69fe68571461d0943517f52046d64cba426352aafd5d555bc82f382d67926fe0508e58c2f69f1799bd8bf80fe1eb763a4fee85861a6bf2633703a99a482deeaca4d46a07772d8b9dcc2636b0a42c5c422d944ba2041ca586528b48f27e10a111bccf44e441d85f33741694ee16f15c3d38f38d6151317b371a380e4a9fea61850a704c2f76f73c42abd31966dc3cfa741f54e0fb9666e412c926aea69e005011ccfa1be42edf92fdcccab98c5c3ba50e255caeb26cfac107f669ad87b7fc3935a3ffedef5d526a611f0c48b84b06565b59178dca2e1fc82bca50727929776ec5b5373175c01f68f0706411fab72bb0fd7da18e55d7e57990d2d4acb14ceaeeb62d764dff2c8a983036756f4091c23b16cf0ae41c9d1c9d17bc6d656464ab756b3115afe4978267c38e9c07ab6da9c92be8d0dd83eaff1e834f455fbd8c6a6dfdeaeda4fe836195fc1548e87b69bf23b8c6aa3ab6ffd09675d86cead64e93c1cd2d3ad942c110fe62b4acb450b4e323fc18a8dcb40c827aa28201a149f64fc6ef5ff5c5423840841b670eb51b35d8cfbb6bb2785230aa551430dc0d6a649a4e64b96d681d489a206d22e12936b5742ca34636e3cd9d4ae7190ba9dc9e58e4b01dcd9ceedc95a6288e8ba5201b290634ff1186b0e404e1bdf85a001a72d9a6003d2124286d6a6627dd9545887bdc8c578183eba204ac41819546114f4995942b361e7165eec2c7276f72dfe95430c7153fa5c2d1af32d51bc4e6020c90d37bddbf73a17e453578726adeaf2eb0e4acbb41d53ba4f38ad27c42ea0552c97ddc9b39ece0394f9d3cbf4595431d2fcd1a005d2903e6c43e70d81ff72c3941f8cd124ebb5b23d4e63ba00ddb8fd7d0804cde4e527df054b015ecaca45cedf103840017253ba2c6afbbcf4e799cf6819171e55fc372f197c71b949cffc0379d45997ad2020e4b389bcb6425a968b34478724a1efea79907a3c52e314dab3ee28302c42424fde44f7d0ac936835c73355536ef456f5f285d0276e991b29c0baca37cc6beb42140825730828bf31ff899d541ab730cd7eea0a2004017abcc145c860dc3faac841ef24f0f52a4faa437a585a529159dc0e84da476874a679604650759e42f50f952bc1ed421fb6bc18cb077a81d43c4c5ad2941d4574436d20e6d5b5680691d7029c92d04a1f134eefa2200979f415c0a45ff3802c08f55af9c38007076c3a68fc25a90ec366266595156705867c2ac24b5a4c16f9e76fb286426b7a0b3ae9bd15eb7889effefb880256d176e17e739db6a23f61efea7476fc042cd56f05266b8bb3449d59fcbb3d99f5fa4f8bcf25edd9af7cbce9b79b1de034882459da9378811a8d788997ed9746d9de7f0525618aa7928d8e72552c90dc93cd0f575881f88132f941cb13e195b5bf3f127952bb27e0b5b3a23d2c9f1f694a19b366dcf7002c6381f5564e03fc4357c578932df77c3fb46b1c2c16640ae18c800ebcaf12f292510091801c8d0d2cbc635dfe1d0d374db5dc60b4b345ed5fcd3f884938b08fb75276330adf5c9a0033bd31413737fdf17e58a90ff22bc645cee892a074df7dfa031fee7ce644096bb55a9ef61244db506983ec93aa08ae3976494c241b9e16322a62ff93540cb27c7efbe0271bf0f7cd4c01f9804b9de49d62f791b07a897a0c70710f0edb6a4550aed953789f320c606a25568b0d5ef03492a42c7671d031feb19860536ce162d40f12ac3bf99ff0ffd7fd1fc68436c0c87c4f86f5aece12226cba2f28f0f315168d1f54e4e2348788df6886bfd397470f14d43c5968728b78efb768b3c1255cc82a17f67750398b3a174573a7c0fcc79ef420c545832b6ad896e715b78a3a378299f78abf69db77104e48c8613323bb9115a51ecb2afa7c95321737963e646a3eefccd3211b83a731402aad77430344c9bbb4bd08f2bf4f8233a2900123d14ae0a9d0ca0ceeaca788910d1266a31c8fdd0f16752b6038cfdd054bad722a4bc4267fdd75387c3fbb7df83eb293aaf5959657c285992397d7bb38108613d897115779c65f8ed0113d4ffc526d96cac7b050e3c1da5d9cb72b4dc26955f9d7e440750899df2510c4ed681041573e0d033566ce2bb03f58c274cc1b9655849eaa3d2c327baeb2d5c2475f6e2c49a00ce8d0d758a51b28293f8dea079e915c53d479afdec101c13b6fe9396d8875f602b56d6425d03b1d7c896e0f53978463e714733dec8adcec64bda253971ace1b0d667e5bd7efa5864f8d41ca81b726e8a45df93b8d077126433022514c2a74aeb7eb108842787b62cf358848a35c8e3540e08c4a1f63cf2b599eb754dc86240cdea231aabf3dc20b6dcdfcd1d87b8dc62e60349c8ccddad2ace24f89a2e47c61ae5c30c39ba8df382edcdb045b36b590da6e5a1edaf0f5fc8f061cb74f5b8a88f063f04db172f026cf68f6c6785ce133c658af39790ec9190a2237304b25e3f353082aa34ce5df9120bc99ce1b1a56e20cb91251691f0bd800b11a6ed9052406790a140574bd44a7a21878f0f788c62b24421565b1f0cd1c6433fd0bb92a09a2db885751e9cc272e1f42ecaf44d1e178d2ecffc5faa65182d6443c430bfe329ee1c010558a0e0c9b5340f5722f668836e7cb305edc8caec267a8106c7376d5521f6428de83b1e4aae759ce356d2dc6da7ebd87bd3bc57bdf40052b3f1cb67bd572e460ecc8320cfa14de05e9c54a2d8a67da080c838f60a3fe8d16b815db6df3bb0845b6a510c95321813d26f6c60fb1450e7ff9f4e9cc0a06ba0070a058814a8296141e9e68aee30f61114e67b10813d166fa435d0937677894ea68fe41e331619958fa4e3f95be4b6e905893231008ecf903e2bd990b68a00f6e1885b79090268627e1576819330a3826fcb330d769fa0a5fc35ecb901c1553ff49aabdfb4ff46c01c48fd5c8a847025e716e124420cdde73dc0750934d233319a5a577008d40e0bb09c1e1db90b8077fcc0ea47a0c64275dcab439798c3bff37d80ac07bea816ef69b0a99bd314da511dae31f931c3f2caabe3f4c1e9ba34dd1bd3c4f2e73d5bafba4bfbe92a472691ab920e9d99c84d4b444746f8d31330c92ac7d5e82000b412aec2af1d967177aff611b8d7716a4ee956b9926843d8a8595da0d92c754a00a2c94db22c64188ad9e50cd54f9a7a3dd7a2ba4d7a056804157efe99c3238a76fde53a61bb58ae875387763d2426d439a3cee1f607642446b4c005f405f8c693c3e5c6a3b4bce1395347fa77ba31d7162c291819cb876c4dcb8468450ee1b4c253e384017a3bf07f6d92015f42288a3f9c035e7f72825a09730687f64704805807725c1ed07bab9b8fb236989e282066fd0947446448b6fcbcb607c8e57ed5d7f2dfc5efbe442b37cafb7baa14e60e762cb6de2f0f4e6b0f179a9ea83eeda4793ef20f2be74e6aeedb22cc71cbce1276ae25d74283699d304ee96b19b6909721cac392db77c65f63f15b5193ab9fc344c4518f2e99facd59d819062e7c3988866ceaf1afc076819c6a4dc8d873c97f997563a64e6a464d22b51fe7c8cd9632988ef6a10bf86a3de95e13f07de1934fd4ad19cd0511c9f42f13a6fe10384a9f8a56a750b8e20896ffb545f3132a48ccd1761687cfbe8de3c503d2ef20e41d02a3083f9db0bb4a878741f4709c524285837fe1114b0476903bccd9b6ece071e207046f4f02e06dd67bdb603efe3ad587610c2ef90262ede3c27fa04d72c7f5415cc8dcba15c8f5dc453b333b60cbba99e46cb980e8ae8c0c7a93cc888706a6bc9ff7f75094c38a56282a2172125bf884169179c04698bbf60f0feeedf068dbfa510028559c4dccd149c97c78c8c5e05fcad2d934f33f82b08a4bd03d54db817341ca72d83c5843a4b7d83526d513c711c59e5fdf2e4293067d7d989feb21ff42dfcbf0d0efd1be20954cfe6b342d96dbf385ecf9ceb67cf7f58ff91d9a051d7ba8d07780edc9da55354efb5b9e1b99c8011ec2c3754d9bc5f9fd7987ce4f0f9e12a225abe0b3d314017de9685fc997c5d49a947900daea00c1ec8927409bf145a8a9146c6ec9297aba827445e7370a6f558e6b227b3f01c9e4ba08e28a43bc35a4ee9e035a44ebbb383931f1495fbc3da5091505ee75f5f3d1f4d4438efdfb680b477f54d0fdd29f2db13a33773d2573b81f1cc23001ecfbce5d20de50d6cc4743d35b92b6e1abe746cf2ea3cbf8188092ebab80577a33cd106f85a895c10fbf24f7f017c2db261a4bd5af696f7ea1cec1bbfa60feebe280f6541d1b66f759321e33b80b274a741d62bcc6996e7a1f065aa2a7dd4e686d7d312c9e86ca8efbdf3f238351345d146b8a860f7c9232d29155b9ddb5ce9c28952ac88aaf10f9657fc7ab56ac85cf112a502f6bde1eb1a883f9f93e3cd4916e8d16a4a50273bc112feff7551196ada51269b0a1bc759f04da5074baf8830d2063bf4a625fdabf22d8203ca2f5943aa814cef28825eabdccf8366f354df1e05691bc79f5172fe961c2ee89e9d5cc477047c042ae98ef36b2cb6adde5848dbc5b8690ac67c99bf5bb8e172d68c21cc1f8d1a13098789fa447ee1fb8ce0f76447ffb19f47a3f003e709a4eb8eded1b84eaeabac2e130ce5772809234b4de1cc4f4e123e6017fd3a8bce40c49db45a659c698cc55c98d136027d2bf44c1b0a89962bc8dfa4e80f1d11f67c32e8d8ad830f4e170ef2092f0b58e3839135d985a12519b0073624b395a91071e1eed7901eee6b6eaa4c1c10fcba6ba911314db245bce560087332f5ddc73adb073e529413d20f50f1b5b27f2f70d16c223a0f178242a65cd11d91b2ba484e03fd64acf7f3957a5d35917111f368bca2587de5044d20bf6c4c9e859d9d846f2941369082bd606ea83310c4f2edbc8396ade06a8b100c396140bb79a98c69ffa3de3de44fbd261b7cc23d06641346fc9d8d0cd963b68c0c20c2220075a924d6dfc6221a29ecd23c4d370e95934c48eae72929753182f9c04d7ffcdb0271c8acb4439f33a9dd1c64539405d0c9a567483c8711ac3e4796412b775148b0c7f134013d89d8b6e8e693e0e2a5ee0cb209a0069a57c99148bd2b8435c2444d613cd4f69fa57eafd953aced94826e9012af6304183856a22487d120455ea7a56e0f8f0fd5dc9b4448383b013c3fd673ca82c49c15a8a61544b6001ad9d469981a7fc3e7f256eda0d293578a2e88afa34143c09b8e52831ad77a88d0cb8742a1ddbf4283d1fabea99c042009b43741bc9ddd857d60d926497c513b4e8fc5ff1d1fdf0abcafe104252ea5a833823322053e0807c657de7d897b3e81408aaab13ea4c1922e8a1f1a2f30c1c8dfdd0f86690a7c472e69eb95cb0eaf986dd8d6a40fc1f2b0851cedfe5e945a19ec2f54103d96fbb518d95806036c7c74a3d98e87a8d1964d8f511520fa6d376e9d35962ff94cef2ad500884d6731dc46ba786d8a4cd8de8aa96818b9816145b9a8ee17543d67e9dc3f9894dc89396179e85d87d1451a631cf76a19cef66cec313ae8700ad262e6695338f839675395ce169613dd9ee2010207f3b892b93601619fe18b5cb30b97121d45baf2ae579b79cd69e109cf4d41f9a81b3126a364188037de1685ca3efb2007467df476e3af77fece02876256ebe4d55b6a11020b789d366f08e6561f221112a8bdc57b5a7f03ba8678949ec9652f454c1981dd0d4e75a5dfaed3ad21cd7b45bef3ba3be34c713eadf478f62eb11a9f55a89627a693060aab2a68bcf8f049be35ea20802df27208d511aa54877828fcd5528f222ddcdaa8fb6166698e3480b8bd6e1b8262f32151ca50ec2a7a7342ccc6f85913ba4a78da0a12bed4742749f97303e01df2d9dba9bd603ec6c0438831a88b9510daae20f42a76fee6e577dfadb9ec1e8a7d80a8762fc8dc29982f69aac0bce3f113a9fdec25575a9d5ea073d012abd7e88174416c3ff5e17a96361d50861aa1a4cb148233cc66b9efd957f1bf2066147b8405eca758955cac26cbd94f13aff320c8eaf639b1d52fdbe7311c0dc4e9e871d94d3e74b8113b423693db1f0fcc07877a7c70191b8e0811ae855faaa7119d2921fbdada579e80e1d7564078f03fdf1ba621cce87b89fc72d401a686e5e582b8fa1f6182e783a9a6c748b94941d679af0748f5d4232f4476c0e05b0e692a92291b332464e9fce0e709f7603f30b7e32e2a5426e0aa6623511b2272afd8b05f0e72ba1a2e6e56e1bf2b616325f3c0c3285566fe98e9f36d215b9bc80e5db977bd839445c12c1ff793de5f3cff48fe71bf715c6388f418d92362b7a9290c22d8d4486bd986601b0215c277849931ac23f14375b33612d71fcb6e0fe5013b1c795308ff67a88566c808e36c4f4c4e76b90fe4163cbbb5fe99361304575849e1b9f2227ec5ef4b571e1fae87d4978c00a8a6a5d68d8ad9d577f31fc4dd299bccbbea0fa9d2fcbd71bc52145dae59fe439923838ad515d1f5ff1cfd5cf67529a99d5e27cbcf41102398744dbf1611e8f19cc07d1934823f690b692e4d4af202dc62d2ac0f720b155651c1d7fb21d3c99357116b38129985f1cf59e6bfec5d1b8e62109d3983f16f7e0da9eda9666f66ad7457bdb78613fddca90897a8ac558b87abf4c34267ec2b189df15221778e901eeb8f8924086d7a4fe812817b0e37d2da1d0fd4f90b78890cf7603f65ecc53b2f643a45b44eb9ee669ff750c91de44ddbecbece71a5690a566529e3049f0424b86d809f4230042e8058e8fc94087985536271d0f7f10f6b38e0d9676a95c2c554dabd57aa3e761c015c6255dad2f09d0abcb88f851e7c0d83278928833f5b46572e2bb39e97727d270c46d91b7c76bb4ff0dd185a548c0c4a40135bd4592f6610effe3b3dddbfca52b1731faf4b3806475380a4d2bb174d81bf06c0387043d5df8d0e73f272640ce93b361c70ba493ffe92055bfe63cf97bc755c193bb4f58c30a9ef5c585da799f8b8e9ab58b34d339c97027a0573e9514c38364dfd2238a54ea1bdd0803b048cdbba8c4252c577564ecc4becb02c951502c4453949d01d2671e3a6f19fe3036afac967905c9e6361e79efb3b5f249f56321cdc72dbf06091fde03816af34246c5dd83d7d5a4dcaa45806a3b62468d7bb444bd62cc14b091d7c8537594a103e1ce4a6d87aa78be26f87be532ebd5cd33456b482cb1debc434888e8ba36924cd059faadb092ea0dde1fdbf149bcfbce828888c181fdc426525947ec680a9745bd51c48a9fe358151247d5ccda355eb3a32125118cab124318f08cb6a40b83f7a9b3f8cdb8dfa4aa1ec98021e08c4254cc5fa898c8a086a63b295c46352b1ef94069913ff3303683415d4a1692874d5297f9fbf7b001536e269aac00f00cb00eff87e829cb65553a7f081f4ad71e40bf7b775e481c27dc19a7e95ccdf4348e7c320f17fca862c96f85e6bba382185767ce4f9d2ff3a46f98897ccbdd89ef29c68f6aa388e31899ae03f4e0096a768917bbbb097e510726edb6ded7d4a7b959ee26093858cebfacf6dc4a833c6f8183a2d31d5063b5eb7cdd8fbb96ea8ae92d9ca096884b18b526414dadc67afa8b6622858b68a06f1037533d3d82a8f90e6cfb6f2f31eb88a65edbf90abf470046569623da31d63390ce58c6311d46a6dc29f6c6e6f5bdd0f9beb54f80f0ba7a74c79079ae60a35fac721460caab1334a037be1a76cf82ed5eee20e20a65370539d690c38996abff890df38681f6db9a7895de218fef7108979d0b858fab95c27835ebc9096621ee07dc9d09ff7b4e899c37ced74cf62ce26a08ff2be5df885e87351a941d53338cd9dea6f0c255cc97039cc9540090236f44d7f4f9d0627c1957a3b971ac5a40eb6e5838059f545b27d1c67a11464e6b5e244f5b86159889f028d3e13aa6b88f2c5cf87f0dc1ebee01732c635bcd16492f52afef450058aaaab80d34046b1bbea5a93e5856a66bff31aedaa23c0527cb4b7e00cbaac9c9e11bc58163b1687db99b45503c8df217fb605bb7fbc2b8f5875a7a09f265708c4a3a0a3f7d76762de14babf5270f7f3743c5084ca6f528941f02c0270a15f1e53e656c75736a37ec3a0f933a5aeab7fb106216f02c2dc312d5194fdd98b670cb5c366eb1c5d749faed7bf05dc8062286a8293d33143ebc7efa44548b3d3fd66ea17e4b07b166c4e6747b986e48398042beb114262ecdd97d699c925d5aaca939f3eb6842204fa50ec3db1c33254e32638612e7a0899d9e3498ad413f2889a8a495264d49155f2820f3992b05abcf5b6e87cea417fd86de056abb3029678e593945a32d29288e900c0183bf6c521766a23f218f599c3aff31183c5c120062ed78966f698efa612af63bd969db1494d082947d6e03035f5585f650546bb9e9f56f531a362ace1da95446d4b6423626bce4999d4ccaa2d88cc09817c2387594bc00ca2210223b4b3de6c37e542cd685ee068af6be51bdeb812c63137aed7a1cc5adda6461060182c2a7e480f5d32a592bfb8497abc2484877c74a1c0b8189df8a68c126f3ee81ea159d3d49bfd82e4dfa20a2f95dfeb56287f0326d005f9f8dff2a2a6f82cdd6023e19530b0580ed4ac97c72c1f7b6cb5c911bdc8b309da521141d5ebb122860c490153e33290838f28a4d2bbd735733dbcfb637e646e41788fc015932a6299f3c0ee89fde9f21e117a089c204b7c8d83b52a04d4e8e301ae912485d4d753c9ebe39d03f43c6d1f9db780f1f7d203d231d24b508b380e0672416e7b4b9a77d161409bf7c517a9794295907c6766e5082a7c0f35fc1d7dec118e7e2b97190a167f1bafee924596da4358ff0566b2ca0c9e4c27aabfc374f5729627d666d4a2ca643ae4603d309304f30ab2e58535dc0a5d6b548cb560a8f7c966decaa0c472faef08e23af0e281a89427f16360e25cbae39b4f4ee51a36468f758c4d7ca4c705df92da90918189c394394e7fd18213a767b24eaea8d340d7c9048dfcb1f54937be5041d4b20eed34e605159049baa6448842c444ba2b76c8db05f3e2f2a49b599d19d51c2c374dba4643890092fef3ffbb615692250ec96bf518b8b1b49d35584d91bbbed33cdad1eb2b69f986af983d52b181c0cd761063c9c91bb35804bcf2226b4e8badacb256d23a58daf8d8b7dbfcaad12979296c4fe87b6c7ef173c22e02561e4791ef051899b1ae7c0b7994fdd3441fa7693233d4049b95d304cb3d0f2ad16a9ffc8f81065c0930607c93a816394ea56cb7be3e7e11827ed961e77d42e23f1307a38a2c8691e4a69925d6e94baf738e9a9d93b11579e87fb58bcae25852b20cf62e285b7385f768f8c17fde9d0b47905ed40be36c41d71f14826245801cd61b0e224a62fc760857fc2263bd9e266c9612e03f27bff7ceee4a320ac8fb65f4bb7cc1fa3b038ff421b8e23811030b96012f0c0e364c2e47945a942f5c60d1956b1454039f1d4f85480914a0181eb6422dd89de6468ad5cf8f510a81aaff7f5f240012ba0ad0d631f3b80bcb1df5043e101bb1f0b66a291ca7457f03c9fcfafab853003fdb1068fce652d27288d50ee9c4537276d7d04c7610dc80f852c0b0106abf3e5107cc7d4ac607bae4ec4bf92d8d2c375058d8e4c3da94ce883918a8351603549a2630eb259cdd2f0812c08fa14e43e4f690cc363d8207b3d56aec1f659bd07df3c76d1bb54ab3aad10f287e84a4b538b96362e7353a6f1bde1ffc1fe432f3846db3c6bd1f89e824a96bb1e6c234a26e1ad94ee3b1ac0167ff06b4657fc1c4dfc57521eed9b45d66c3a9ff5cc397072b9c410e4151852b8f717b2fa60f786f33a058404625cff17a4c1b758a8b8808607a323b09f10e2fcf8e9ce4e84cc7e2fb3cc572f4d4a88095342eecc5fcbc525b6c32c64f9d13578e16f3d3f64d262a40616297d747e941e00efd1f5df8795ebec89056f868cc43f47c09e6dd372242ca76a65cd1235310fe658d78c8adb0be6ca0cb9ba77d3a490f4c0b0b5fd809db349fc915c5d40f83322df92baa53bc440cccf07d2054438007dec9fc2a8d7ee31f3e69ee2b434aaedb6ac713da829f6b9942828f6d5937364c93fec012cf1806a6b02aa7cef3bd58de2687fe748eb0810aae5859d000476a5e7245d870355fa2059c9cd047dec60d472b2d61f1514e07dfa493ba4585ec1f0f4cb6d56422de132ed4996ca6af5da6aee7da8635abc9f2f6b120f2e2b61d5cdbfba3167f6205f90cf4646168a972d6801393fae9f6636f20dcef38e32815e2137ab288ffc37102371758e042ea48d52aa3c90cc54c142996dc5cbbec713316cd58bdd10822bc145f0eaa45ddd8946a597646f964f22e9ae5fff74b3693bacb6f3657ce44b3fc2b3d26a665bb2ff110a67b6cd2ad4c70ceecf982fdaa07afdf6eb95723641dd303e9567534037deab97369a8724f66935e91132bf4548c52a349bc7488f683aeba22c28d36a8b26703a6f131c201484c8bb9bb1b8afd4160295cd5bf4a0e7f15419b40a852b944c6c9c65a76cf3837f7b862261f9b536d9f35486b37d390d0e70bdd5e8942c8163516b3cd58c23ae5f6f4765746901aa1a577197acd270649383012d7d1704e1cdf2512cc0a49f75db86a78b7f2bbebe7c51d53ffb27a52c51ba03261968801edfab95205339e64980f5873ab199ebe1789851fb4b188ccf98d04a5639b4a71079bd7a39000504a35d4a09a5b1093b9548d0afac3aa44e96cc61bbdf2f8a12ee886f4fe122cbd920f5c5bc7ee9de2e0043a580be2d664d2d3ac345e4dea3ab8b496eabcbff95a6a6f5f548c3d9a482dd5d95922bbb43c2856a10c2948209af4d82ebca9281abd2e4e8d55e1d3781d2c973de9708c0e7d0a9aa6c9e807ef268fe2b5382ad08e555613777c4433349682e5bbb803ccae33eb151a5c9e9a83968e9269fe3201c483cf4f3aa720ebc6c0fed8e7632ea3bc7894f53e3eba256c3c0b6d3a2d98ac45a13903623f697aa4b4e921757dac03d73ac4fa0d9027f156a5c63edad051527a1392f4c57e9ac5d8ffde070353a4c6dcdd599e34ae13731841a511be0d92a054cfd74970eb0d61df6dfd68fa83c835535884d5ffc6f71e9f8322318064453d472eaa31d7ff3eaa6a7d0539cedb1a95ef0f5a6a828dd8cd656cf80d15a922876146af1816a28241bc5e6a94d5c1a5fc1167876933b97933cdaad5d8a3493157aca5ff2240cf98b72fba0a9b41320dc673b52a43e01a8fc7e5b6aea4ee747f53a1d365a52c56d706dfb50184873bfd5f1e888aa81efbfa0fb09a5aebb989c3111a55a71c55cc387711f99e6f03cb39edc5807944d5eb96e0e20460f5892171fdf75c35956d9b6338f5ead9c077291ac13932403140c99b07223f69bcc63c2baba2faf474fd2bc3c03f2ffc652e0d32ba80f6659263b17ce8736fba2e7be0fece4cb26bee33da79cf4861e08c0b2ea68cef69d9e34012ea1f63ab1412f2ad0ea453755dbf3015464c870b50f45967203593d5f264e474f2eaf138889800342290431f0e63f363f0bac6d6678ede7f9efb1ecaaf0e8cc133dea55a93fcedfdda58a1453461dab9a47b24e70bfd90ba5612b3a0dbd49996b2b76fa9641d22e35bd0f973d0f04af7922397bc9bf07ecd0fc9c086fa574a371efd11a0a1de9ffbde0b04994d1370cc29a9478138f48b1d0f32baedf64622b8c399d9ab11b97974276c8a6c0e7bfb53c925a911f70a5ed7b1bdd8497a5fe0200faab8853562bf970a03a408bfe4edf1e6e2722502883f48a48831f4862d3e18dcce418efc3b6c3338e57d24a4e6df83e4ca2154e0f98d3b6af39d2a614cfa9761c896e10d6bd98e92cc460d4d112da1f2b109cce469e2feaadaa3f405be8152a4425b328fd6d80967c066bb5d7b5261480b26ff5f9f0d16c2ef79c22a3bb5c7647d5d62d7a23feb7a1a6a696a427b01dfce57cf8eaf69ba7fd5226d35264c3a3dfca9ed6f45e0ca3bc1363769e90105e53d7a402908d49c71d020681512768950716707a916b7aaf81b947d5c02f2d6f43bbf5358610a46c56dcececbd57ecbaa082c5b68ceab7158a602d99a6db5e6c42819d77178f91e9fdd438ab9261174987886fec927ad6a6057f98c0662585205e8bed052f559b748c5cdd9a7fcc0411334e9a7b09072232df2ef4d18c0cc2c13a45bf76c63d9675335b20f00bb26c37d4862b79decbc425f7ad46931dff8d8cfd78e51ab150b0ae196e2832c0cfbf5c8c999b35d1e9903340d78a57c3e3d6271df71c996a766c3db9a347a27c5b5280adca252d551898bb50f02d2913964becb5941ef3a0b3a93fe041495d8460a142afdad9da8d4063edd63802635655f80632cd118475a760f4596bd0020ff15e6a296401cc9a7754fdd6896298e97474053c114d2c1762ead7f52137e37485e983d77d921ef8831fed25bdaf4b7a9f7dbb0cfd778d8f6e85904d06d71ba48c9bf8411de7ef924a34f02ca26d0cf253598c4d5c21a379282332d8b79ac36e233e5019fbb15787fc7afbd90637a4c29e58b4789912347a533c8bc51ce24a7cfe87bbcff201fcaa61c06a1f5fd1795d9204ae64502c3b696761b41c1d6674decb7d1bd079d2a8a00be4d785278b9f8c5f9b153c6991379087ddc8e46e519d378c30ed8a065ab61b2c7b93729d3fb21008ac34b78a76520523469ed5c3c1e2d5a60e02c6d4cdf2a07f38699cea5817007e46ffc3d38ed24868595c7431e4f5aaddcf5de0fcad0f5d6e365a0f7b784964d2e63bcdda33d56f08048202372d68b17485633e7cf4c2b154d427dc2dc44fd0764c5388670fe29b5373625eac7ac5d8efc09a384db7aaf9c89e115a307a3b0a237b506d9e9d9a1553bc2b4176c94996f023a25adf9435ce529d152144104b8fc56388c4a00ba046d771fe120fb1c3c4f0276330b8c13e93d4d42610cba9682943757db471a8677fe4019620adc6a3524c880deca1301ed2b2e1588da40b4da1eeba6d80b2be005ef0d290bfd671935e10999c1e4d026ef120a12406852b20abc326198accc2ac1543a2a791ebd817ec773010a94144cbb2ab0fca3579773c18c7c67394cb9ab870dfb2dc040f4b685628e32391fd6426dfd7ca594c66f7a019a97686778f576b96125b01402ab39de9b6c1cc63909f93af4339d78dd0f2765cac39cdce7444f0dde014786f68eda1106cdd150beef45c0b020b30116964ee20fecf34a9227687dc9f5c7c2830c114bd8c0eaf00ae4e1ed7bed4f04db6543f69a85cae79468afb198f60b5a63d32ba1fdb5f86c697fe4d1f6609063e5164e0d69b54dcf8dc92733a8b2e722b70afec408ae394937b50e9e26481387fa29072956011cded0a9b6ed699a4a0bc912ef62f40d64e8d0ae97f3a91669456c2dca60eefac82df96eb586274f936f48b58124e584e34afe5c816b4fb9e91fe16bf37c320c1f3427d463015ecc1d6e505cb449f70eedebc12a52c89b8832723ec822af385ece69bff0009db83eb025842062359cd4a6b28848152d857a81a07d7867baa380bb50b7e58f87af230d12bced8d7d18889c01bf7f1dc5e18ed044bf4fa78bcfaecff1d437d97b9c9ad73d847a7285f4f395acecbf21b34da6bccbc386143632a4dee6978cdd36ba1d45e20a29a7dae69f599bd447b7a1a51048e7d305fb0963796cdddd8553fcf3c4b86bd35b20e33f48a8d65e9394e26e8e3ebf85bd01a964a4b23c4a5e8fc75089ab77720edc5b69f700d0fdb9785d7b2422dab79a1182f222a8c6bddc7c32a3c4f3105507438bb7f253795079f0b6b874f2e1a77396b18284e4109493b18a4e121c61957687cb76df74234d2c8458da6014db5292e6877171e2e03f6c2131c5df0106f1f274f18c21541114081713f7a9d225b0ec907ffaf2a36cd5caff172384c0ad1960c676550b8d9a21d79df39ad88b6765577e77f2e9d95325d4929fedecb02ebe38fa1ed30fa2e685ecd671eb8398474d673c375e44f58be03b1bc2962365a607a6e3cc1de747011a127fc0465440028ead45cd59dd7d60dfb83ba159fcf84d981f0790354938a727a359f24f462a0ff5a213d239b5d4d87f3530742fc7b332fb9d9549c0e6d8a1ba33f4d896d4a0b83356f2195b1c2c20ecbda0338b0edea32d7c77bbe109eb9d45fb65397f7b6740707c8ea979707f35ccb53fd8674897dcee731a67f36b3b69ee4b93e30e8648e03c9a587c9fa9213c2dd6a16618683e639d34c24aa4f678f40cb9fbb74a13ab5441079ab76bda52a8a1c1cd2ed72c337a2320cd8d19a335a48618aedcedfde13ec7b6f6c22157317bbe12b0e081c71770a0825132b20d701d34ba98a60aa4d28875baa31526329e0e9dfcc8f13f903dfda74c07690ec153fc4e1a671c49329375dc34bfa42bcdf02a48a228164ad1256aba69afb50fd035c58c7c9c8ce4484b263b5431d622c6ef8d5c6652f930272d17e22450b94911e1f156b3e60410828b1894e21384bd0dd78aa40e8ffedd953ebc3d93f117a427d296620881f181b271a7ec4766d037d440026503ca55f924a4d416c3371275e66a73e53dda531418053f5bc9c082332abe4b41d5a1065585b44fc95055e6713f73aafb883aed7cf832f3ae6a62a98279af79dae9b1fb90be21da9dc0010e23a0858b3ede031e11e2679c156f74cfb8b5af0ea0241c540807dffa1339e2358a3136f6bdfee6a10e13540f9c0103dbd8fe07db6124ef112dc9f471a1fde0d4e754ec266ce317a9cd29cbd6dd3e1075b996b627780acf7e6281805fd9c4b7dbb6bd75328f79938add98212b3441860de96ae2da68aa8f36d1186796a0669e40a09d415b82285faab279707e1b4814d28b81650ade2f0a3e662710b8f49df6cd911a3596425ccf87d84a45f9e642fc035bf666a28e6971cd1cd62f1f61dd22384bcdd58c3be8db8dc3d1120cb27eba16ab7ce4779a49844d485c76538102662bafefdd6d3f85d46b58891b40ed142014ee7f7a8a25e37313df9b1ebe1fe1290f276493588ee2058b57c14eae13994c56f590a654e22164a614f5084105fac4e4a00a5deeb94197d709e95b3ab17ff794377347f93273f6586869094e971a9a75dced038164e1c11b1d81f126f469f76dbbd825a598f7c89cc27274c4b41387be124f7e78de7fd0e0e74f1819415b8160c7ed3549040d85f4c10600e78244f215de228144ef66588f2805b0d53f343a4cabab8be95b1df4a1af7bc95353f5235a3e59dc6c471765fe950934017bff9f3f236a6f8483139f51b1f9b4f40d96a4a39d2c987b8fc61eb6ea8bece4184f9d609ef766a10ab4ee8d51dfe59aa8e3d5cd561f7835dc815462272e4bc485e1b008de9d33cb5c466eb7fe7bb45275263f0330b332c78dd5e1653be0b148323614f219d46e049ebf5a426abbffab761454872ff505a8ec3dab78b71b6639d8b53c5be351bfbb9e7071f6680429e5723e24913274779d802c6af836aac87d30f7e8fe1a5aeb093231dacb1f3e9290d4fa2cab52a1a6b33444ede34f09747fb64eed1de68fca3f438b586ac0badd0a5219663e601eb4a365d1c6c2afbcbcdc5c7c1aec9a43b41eb6ac091796868ddd963b06c9f070a2831b5b9e0b321f159fca91c5379899c69cfe0ee933eb67020dcc9515c22a404b662e3ba88c8661e6afdccc65ce9f6f0fbdb058804252ae125ec3fade98b4a4b932384564be680cbae3651904a56c369753fcc043b4987e8298261597b1992ba386d15438359fca03edc948cc484599a58d872d9b57aa6ac9fa12a96a96dd5963990a96e3581b2d097d641185d9a911bc2aea262b9772d08d4bbc71ca838bac487d84ca63edf3143ec75656d2bccde579731bbffb8e0cbd1a477c939e119e9ce3252b48c7ea82f0d6473fa2a00dc37334d50a29f4ea32e7f0354f489251211dde708795477f08461f54a1bebff9c7a0e4aacc03b777835566cf14cd3d4acf3ae8c6e34f7925ccd3b86607139f4e52edca141bd5618248422a55ee38f8d7fa60e6de92fa0468b97bf30b454403f702303d016a3de23ea229cd5a53822d9b4dca4d58920a5e448c50018820490b9619119a97237f7cb14204eb64fd2cc40d8ffa145723b4b812705229bd0cbe47f9c7e84d6b79d77729bda099bb565b4b7789e10eb0c6c73565c0e537018e443ed3fbb40ac6e1cae6de5637db9e3c54abc976dcaf2540677a993492da140b8d6b27c6dcbc391253b4c6761646e99f79a2bfcd634a9e3fbf21bec1eb86c6acddbbfcb553c99ba2465a9ea6d1bd6de6702833f15e5fe6fa0d98b2271b12650b24616ef8eb468944ad3a1747ba1c882e6b8cb7e0cafe4cfcdf29173e0c6699b0925ed5aa6c0eb7882bfd1874b7d6682d461ba3963bec5faf1c9c6d700d4b471d9525953cac0ad141c078bf9789dc7fb049f8c42ea597d63a7b68cd8d9f83a4cc112294811e06f58d8aa56b36bf955fff77576d1d7306aa2d4abe2ff43356e725965ff29dea1c0f854a93287fff74f825e30a1c4f16cbbf594f2f5caa6e6fcca122e90d8cb78d6a1680fbff8eabb2c515f72a6e0d3aeadb3f20192e6dee37309d1d91b03aac0e614950d19b3924b779e0f039d5ed315cb9f570ce04e9c433c6377bd3d4772b4ab3725a1b834722b06c91a1b6f790e2d33d45353e0660516fb8d3dfbebb9ab233d923c6c14256229d92599cf75b54f02d04e4d2f5e3290bfc41182985fb0b793658696dd00b890be0cbd80ec63f1a78629a78d140871ba07e458e8cb6dddba6569087f2d9ebc5ad1b97b416ad4b264c916eb3c54fadbb49367a8b76e155b86c663bccb08dfb088673ee846ac7ec9b5af80b6e0178034c0f7d916ea9b4e147a3b0aff01b2ce9a398e8c81f677c5a2e2b5fd45a0d81153d82e2b98c6b8fd1dccc6494792a0b3d861c0a1fd80ce99d5208f3b1937de05d57ff791410e27c28c1c2d4789f7b48e3b9b001600751c95c3dbd191e34f5b0a3452c5f1f19422226465f5981db91fcb07aa472eedf5b3734bda9281a9887ec77c1ee84b0db6de34eb4e59a869b29326e4ba178c4c7a7c8defae4c197967a9065424b0a747544f8e22886fe836640ea21621f78a4e47c5c6622552b42b01b2f6f8c87f2340c826e93d9df309e2ec2f284c173b439d70d91b2fe5323c461fe1ceb10e9a92396f1d827d544274019f8143bdc17caff8ec156eb019a5148765a661cc4379c0b43e906e93bb400ec50079f467476c0eb79dc35e66f7b016288a9de04c964648e77ab158cbcac9688bb54407794d9e509847daa0920d0526a07c5bbaa3e8b42bca8b9cfe6fd15a6f438d628667f21d063dd4022e2b6db44d4baf9d5ede368d71126f0f21239ded723309e77ad76b42754dbdd7de1174c15435d67addae94d606711f31b33773bd485c802cbf16d8987ca75ebcbfb301396a0387f0be41b55116ca66da03d1e94c79968c5656c2c867e804b430c1604967a7b2e3ae84b0d93019cc4d076b99a1177220ffcfe072a8e8f90c8ce128ae7130a1c8d03ae180d0de34aec5ae3222b77168bbabdef12a5a606c251f7a0fac0ac38657e5104f3414f52edaafb52e6dc842a3a044f3b5f8c39ab538c08c76215388bd8dcfb2093c4a462a829ce9ba6618b2d9598f166a61bd2b5ce734e404f972e66e648bc8ca1ec2367e83bd260c73e11e6445541c097397fd307115e32e71bd712033386bd6e11e649ae7de673ab5ca1b1d5e2c440e4a1e2550315deca100507ee8c05d2ad56f5b1f21dc0be3aeafb00722a7684b01a9eb3532c1506fde961f64db0105e725d6f54105db4f2c0ba168cb9e22dda1054f933fa95cd02fc2b720325cfb925c7a4ad91b98def9de0dc05be3249ddc338e476d354e1a7da6083329de12d5615a267253f516651997b5c5ccf81dcfcd0373fc80e3308a9e3a56d18bf002cabd5530c807da80aa013dbce99345a59a712659f54c49b86e8a3f39fa8d95663aa558834e5766ca901e86bdb7ae0af58ea9c4ba0a4aa55968d4ac4d372b8fa759dbee197cbc8ab82a57b36a2d1973ae5a028be4ff777a431805f12c3b8676eebc6900d0a2ce4c09a8972b119e1545f7918799ad1c6d9c4d403fb0d3ca6c58d1f446e682499b41bb07d64d3f32ea7a262721a3d23c97781181b45235ca069c335f9c2dd6ffff8d791411a14ad0601459c63d16db673ca95d0f0c6789fa53a51df7e4b8af41768b3bf691c27f32eb8718a346eaf1b5a07c83d2643821df61a58e83223e8e2842a101a153fb0c0ca69a898570065f721affc82a359bcefac5bcd403a51242cc49dfea29c6d86c9c459fd0f894964d2a14fdc248646fec16b9ab879de64218b799fe776d1b11bfefeb5d24cab2412bdf4bc61504f77d6ce2aa2a68d95a6959a442aba24ce43d6c2c8e2129d238a41fd60ab264ca188a10e4ce1324966741a9ad19f7605dff7b3cdbf0f8bdb8e497db8fdf2634d9884bf30f778f12db3e2bfb2cc0df0a0d464372c2a6238371d74794f37f1bde5d813151d053efa19fc7c6ca9f5b36253bdba2c1dde5cce3d99ff7c600dc4d5384b71592059e8597ae2f5860df5aafa7331e3e35191c48e76c9d125824e37b97f7f19837f9ac32734b524975da6f46ee5a1753757b554fde7ed753d238eba0ec42ea97af95f80c092dc91c074831c1fc31da3221ccb67fd18b102f55bcbf09e50d17b06904b230a5bc2019b7027faf5b1ea379cfd9ca3e7b69e4440dbc9b7f5605d1f666911126960a03aba179bf711266b1b7c6d243fb4c6c88c27a2d901fb974fc6c18860c0870b12e8d1a46ac69bdb522b6a6f9c8ac79925c53c8586d4be6467a99c62fdbf0495d495543704f30cde91283dceed02cd25db98f489256e6bf7aa0e6eab1f5559a2c6d4efa3eb289f9934ec551c07df8fe53002c8da1e1bebb419086a4508a4454860a210048418a2409590aa1e84c06edf2f54ad4855da9d96f23eff7cd9cee0e693a30e1d4a7990e857b93b3185831fdd6966f0567e30871986d9f844c6042a3b2cacea10499e1cc250add3de3907cafffdf471461956ca5b097204f195328609ce6d5a9c7523c6e447dd1bd36ac5ee6373ae0b469854812821b0fab74819229c8f6dae1ab2f88e285876f4682472b27094df668a5cc5a24c9d32d418f7514f6d04f8b13458bcb56cf73b4519913b1da78128a114eb2486b60fea66567e3a63ab56a3a953c77342f8d76513ee8ffcf60d7eee565500b231bc146826632710b00e702de532df52b1a1050e71ce7ca1f6e02a0d6013680fab7b52b52ee5c7855bcc050f024946bb705df81c0371e51efbb5b716882e2ffafd25065429927dbf5b566c64f95e04edd9daabf771c13fa378ece2dd66ed232723ae3b55875bf9b322b534e9a0eefcd9a88d6229aa3501c2125451107641f8ec7748b862b46a7e25ec4682ca73700ea146a6731c0506e9e6ce464459aa24b9329f0f9d8e9d9dcf7f3b76bc7961d83471aaf0574a195a6631cad4e6c19f23001d30dbe005bc4b9032ce5b6c46d9958325b03fa4b7369acc5c0dce1bcf5c113dc253186f0c737462f0df70c59cae77e9a9983adc0a5ef9ecf655c5d34f8caa0cef1d3c4e55bcdbf8855eaf93380b29d61dc87fd7420b0621d5b97bf1d7a227a23b27065e430d6d99f2d4e370f4829b71e9d9034e069bf7991dcad067dac425adac2d3aa3de6c20e9e046ef99c3603d74c0e8d248f369ceb78ca81ceef80591bf3e0835e1e51496f9291715eb5c539012b39282a27b6c682f45fa5dd77519ccf57f126d49818829e5edd7565ecf585877b9a4bb03839a6cd13cd36bd85b1f344210ab1eda0619f68eae78e3211071e1b63459de363c3d67d8c8105fb5feaae64c6de32a9841c46d64c4167e40e6988fb4423e9b49d2c1830b0c431d154e853aeb89f070e2e66c2e2f1ffe11cb846b6dc5aab057caa3092266d8cdc431c75b0c88387fd7c485c2dac59caa73d6ba860d599480df6634af59b6312716d8843c375f1d9c9a0a7a44e4226998892f382905b279e2f94bc7eee473653c78395900e92a2b071456b41672b036462d1deceac05cb26292aa04327dea9f6f98ff491f0b310797fccf10d640349830f40b068710074189adaf570c0c0552e4161c10841b89d1d01a5467f8611d7d9734748b702d59fcdcbf7a1180437ee99ee8f7c8a804909b6236bd6f5aafd52b60421866f47dcb430b8abf5f2d9ac072947dc278c93a016ff3226f06f1bf2a554cbe99b9db71c4a4f522413319d5c09ed4bf046ee0ccf56d5305c005577b7172528a24c39d9439e92bceb3156378123ca9ba0327af1630fc6444d74a2e16ae6c3074069cec62137b63b9d590ee25f13367d4271ab3e760a59a82ff15bf6d237aade1c72b6dc1fbeb355a52b438d29c00925b881333681e41105adf42403836457f20133888a78d7ffe309e9956deb457a7b051d14a252629db2305c46fe53dea4e898ab3686ba0c23e2fec0a48d03d7de43d50f5cf770d3a837e70799a3ff4d466f267f3abed56e548fc36b33eb86c6228c92c23a91372c3621922faac120a09c1e1cbe6cdfb97798fbd967f055caa3d53a12f57572b5c2fc9e936a1a35da00bf453b4a8f299331c0e7768a3621da6c96886fb8f32e98de537ea744521c5b235c5835e0d8908f0f400fcc7646cce1844d121750b22bd4fd5278c7b17dbf950e31a8c7c41a8ba22b7b83f410ce3bf7abc8ca0b6b81e7e16ddb7d54db4c891c9e1abb52c7c38f010d23d2d52e111aa990086e41468ff71506a1d4d218b644fc38703f6d64c3fd3b1afa932c801de876ea337f10ac04e7ef5adfb1f9e5d6b7b1b7097ed95bd8b9300b518ebc28ca9ed1ff2cca321b5646b6becbd592d5b5945dcfa89da49c12b345312577fce3b5f742ed6e7eca98bc65137769ab92e281e10b96f9eeea7ced499326ee9b6197fd4f84fe0b3e28b63807d5cf2e4683a08226c349e87347d6d3be293287cca36bcfff213aa14350496beeba0b65823f669bc5b3ccf326d2532fad381035ea1f5976c855bf527c15ff172233c6167264656070dba5eca9a76575062e26121c0f727f4885d531483e5738f3ef6f7bd9d735da21af74d3d74476605b5696af2ba5320d3a4a07297af902a1e37194613d3d9cd2fa007fbf53cab9c6f80cd90585152880e4a70364eb3e7feacbaba50c0c0f0eabf1a72a8c6f3c5c875d0970fa2e6f8c3486b4796bc70e20b500390ebd9d64f72ade103267b648205ddf4fac034b1a9e114f1c537170ec31ff8849344888a841ef5c305e9493a235f9ca5a449570710013e37860285d8444dd47b679b7af07ec56d6f80ce4e9864ea5882ee32050059ae8ab86c7fd55be3fcca7ed840ce40ae7c15fcfd74b918f8600158fd0d28345c59fd5ac542976b3b238316e593e0f16a0cb93c891eaf76f543d79f09f6f1069dd239f8edec485b83fb43c49ca05a76b81d7e4833bc24194cc018f1a687a50013b6d660f582c21077c7591579d532eff5a78f587b08cbfecd95d3c0e6d357057cffb50a73fc1d56d5c87790d5b6ac9ab5ad7abd1cb2551623d32dda60dfe37fa94196358e70954b2f791ec7b11f4c66797a77f3f78b5d6da994cbc06f4c3ffd8d1d295163251501102025a4aaddc32568d15e2b0960e72531c67b5086d0d92963ad0109809ba2b90bcdb2a43f69f5bb141d36962f7513d79711d85a38bde1127452b46d428c6365cc277582c7a44d3d66bd86de4204d9119be7864f5e7792eda2799773b87deba906b304b43394456622f7b74848caa470e89c3355a41e410604e0dbceba44a4456f122a3a05de0c639cf96c264422c75524062203ea5020bd3c27a37e3d8cad699db129c0992cf4eb7d92874c634f4c59ba54cf6641d7c49e3a6bb4ac49940ab91140a22b3fc93d56dd3fc0e1bb79ce27c9ecadfbf978256207e2d4a113359a7c6df2e76f469f142f8f74379e9612b87fbd115191f0e336298c2f6efa1598012451e90f80c2ce2f3579ab910b96ae210890a61b7e18a73c9acc794b7719bccd0923360ca30b5610bbfc88f0f9ec0b52fdd8af268ba09f179e86d47068a9d34b4ffb0f58d6b8d69567aee35a4c0d474d6c0f42fbe909ef60459c4cfa6de7516c8ee0fc95a7fa771261bfd4c79e8ba0ee40801426a087f6a8ba2e6c04da0a774d9256a164cdd481ec03e149708a297d4ee8a2ee1e332eec99fc128e6920dc00ad052fb0f30a04393fe3ca3d7b1d6080804f6fc31076b33f7503db74a152a211015c5c69393fa7a736be45251eaaaf9e5c9d7903ee541dd3ff95b74e42ae2ac02e8d3e54da1a860064b90da75b9c6b60b08f6bc79fa67ec07018b1bcfcd90ccfca90caaaf3c61ee59c72848de36799014b6596ebbcb91afb3107a8cb306e5ca757005284fa93f8689e32502446e649dc9f87a16abcb5ea1475a410595c9700f7195b93b0a555aed5a3ad3147960925c6dfd7beccc706e5598e6d4b3e9e2ee4d6e64618a7ca9d7d9e24853d81e1b56d7639a64834e8a523b3c5a632bba2a4be1d30e899b9beb9956f5f0c3fa3c3a4d2c4991da942d46c2767cdc2bb4f0b204ca37081fe71805cc93558bb5e998a1acccef6e64f2b375218ca182a8f3f41d8280c873009426dedc2ef4010efb63f47c8b9051f94096cbc7ecb7f3588205ad5c6aedfc84b187b94fe0ee5782b00b78771b1224d069be3017757a5c8525d31ebc028d8f0f0ba27dc437dc7038c08d66448cbce06e07e8311e1529860d590665180fd37737d20c7028f3afc8fe22f67cebfe3cbcad1e33f1b3afc632e3b9b616db064e401cc77465df9c2f5abb4597877f54cae2e3ec4dd2d4027913843cc7fe1f889bce568ead85974d3606b0172cdef96942414b8bbba931e9da71b7b847c4db39502f5aa9417fea79c3c92bb5311d1ffa3f033e1c887ad8855ebea426b582f219afd2d4e89344d9a0bc570c8d4cf8da71c8d8cba325b0fbc7f733dced682a6d3d9070fc6079286d8ee3de05866b7c4545a58f7cd4d16bc94b4d6010b6bb1b0b67bf4f78fb4e097ba20167ef3d1ce0f1666af04e4a4bc10f7f680500a562b8c71c88d07847154c2eb4cde81ea392a39d5f8471e768c423fd373afd63728b0b0bc5de3e001d795c05e540e4b45cde9e77eef25cabf64f4d78308d44f90547da241890a653f7d1fe3f50735c61b0820290cf1ff2b355170f71a905a077667e50848e4d2fef440f589e8aa3d1e8455652f2e84952abb01e6f305139e038290fcc0614a59c84bd2ddd60802136f817681b6f30004a8bf91264eefd27ad9d3a9b132bfac8bf758cc5524910b23c59f6c01c4152d015b35d7bac53b42890bd3a04055cf01b5b770668701b0822ced5353f6bea6422f48b77e1573199fa4012fa151ecafc3c87fa1c3ccf7035473065c08fabc6fe66a08bf59bd04430a1c8e839db58efb32c42e668dff7251df6cc98d09ad9c0d62d8408b3d91c741af1d3df5464b954fa5e5f1fd239458c058fc5846a42da087982b092f32c7a9ec8d78d8bef00ecb08b2929819dfa5c9d432e91609081ebda2b57f74da55014d6b820e24ee9db8a3d922dadf4b85f5b76b84e5fcc98b7a511e744c4a523a1d21043000c40c1e76348d5f53bad71e395d71ce19e2abf30077cbe7199ed335b64030f534a5fa4a04b7acb13bc4ced41675e6802035bfba241208c6ff1054c3f6e90ccbc2abc7d419620583a5a0bccbf0b6e511864ff334878464018cc6b7d15e08f1261ac096c4e380845d2b56b12248e039dd2b2c229ebe38ae23d74e528f8261892e52c5a3d680f80432796fc693997bff0747a51ad723f4e2c5e92f5acf105a358f1f78bde0d3f8fe5aa8a684fd07cd249e85555b4db5cbbc6560057dcc12ccac0226f4efe39953c1f667fe99408eca8d66f1c5689ab496fe41c94944607b09666419695f9eaede2f0e53bfc307a11c0c5abc8ac16a569a9fdd538e2d233d2306d268a0c046452bb91f5a1b9aa147d0e0a8c7998a3f23838d1962b869909f4e5471f016c0d61d2fb97919dab2f0078f9f325cae316e23a2c79a719663607fe09430f9a8da162f6370ba34b98a9efc732136efea3c2ffa4b93d3625aa5684f355bdc90f038b127b0631255be5302b9cbd2c44b5331fee7cbaf010d9ec942a114bcc41488d8d71fb685f243eaa0d04825c52610f62b8fa7efa0645597aa437fe005cc56c34f3c180e044d9bddb5f03872d33f52d4b94d9a62b95ccf278c388c10dce7c383c08110fd35174d4af41e58035244eee2f028eeb960b9d28cd444de6dc15e92de0aad5656c675110e642282d30c8531958b785edd46525acc868e5c4c99da072c67c5b69f2c41418cd6ad0cb09149bdc0e7c57be75eca03bdbd9b72b595cedf8880080b64480ebb9b68e047735b602957a19c3bde37e25704a7c8bc214c15064869fd4c09c4f4e1c4ca26e9d712f9bc0343b5f1daa964e00b3e321116a37a4cb677c7cde5742b0d53bc144d77e102ca8d0192d58be51e44123dce8d357671c5b7affcb17df986b35e018a8314046ae460418c06bb3c7355dea924679412c94093c3b057f4888591299a5c1b0402ae9640d8a63a779cf30611363ae6a6ae17bedfea78005f19d7fbc779a7bc9eaaaa01d4aba3a6a6992893376363cbd48d556be211bb9325dbff45a709788edd8a9d128a6af90701fbcf8087d6f791025d805a8eca0c8e2b95232f259d6d0ad53bd02db8d16114fd851ac496c911471b3b5531e62138ca562c5b3aea16036985d9dd1198a42be65efbfb38e853387814a07e2e43e7c89f114fe81811574932fd3008eafbb10dec34ae2869925ba66b312ef4223b35e3edd79bc92cafa877c0681a81187830056715d7a106517f52fd0f5d208cd6edf21c1f600283785cff08e75e2ee5ad3ec936ca00c320a5df665d11b812a0636a98b0b4562f67103a2fb482a4107ccfb313fc9426915471ddd54974e17b88bd270fa8c35f211932ce937e234e62f94ee92ecafa9bf76ad236325f5add420364c50f3b233a3a96d05f838c59</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
<category term="应急响应" scheme="https://gylq.gitee.io/tags/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/"/>
</entry>
<entry>
<title>【渗透靶场实践】Win2008-暴力破解、留后门隐藏账户与shift粘贴键后门、植入WaKuang程序——事件复现(含靶场环境)</title>
<link href="https://gylq.gitee.io/posts/200.html"/>
<id>https://gylq.gitee.io/posts/200.html</id>
<published>2022-08-17T09:05:57.438Z</published>
<updated>2022-08-23T20:26:49.193Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="e1fc49cc05084c5c43bf6c07562550b51661e0d5b120fc7f9a3b8c36fb25da93">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327f1a2376f9386086f11c7e286a9dfe71123a077970dcda1b5748e8eca65828f23898eb9d43282c1671db26dc37cd36b7ed7288084b53c55b6eeed1173f5d24448c7163ff4a9042de8ff1e0413d89a4870d290db6f86a13f8c9652a6d622c3f04a1c9a1c70d7c36b0af9ebfcd5be86b151eb3540f35301c5490c9fce0b6dbb6849b3fdd05f9a88d745196b8c6cac45b8553d412d3cf9989f3ff036138cc73ee2c5f1549a99210c460df2b7296458ed706588c18326108f4033a20d4a4afe5926faa64a29826ea6fe51472785e6445c8729900c755da3cbe2cb7fbd3991bb1198db2f9b62b3318e916261302fd1eb8b4e41dbd86e4174fdf49de7cbb285d9afcdee3e0408ed0ac61a7042e33b9338eeab05142ffd889ae919dd0ed32564ca37eaff2e26e5f2f22bb55fa609fb52758ec6e23b88db1cfd5fca8343d1b71683a80a06c4a5b0b64caed72f41ee029e58ec6d2560ad3c0ac04a9d88d1b8a70b4e48ce3a39189c0219335843ad747133cdce0f107b5fd9f15553ab7941e66541ae586a8269f01f9a583a60bc43f0d944d3219ba27169940039347af5a2d4bd74aa3003f8063fd6cd0701ec903068851c88dc943d4e4fedeb2f3da01430d13a6deb4893cbbef545dae1eca4a75c6d70d3b61ef17ecb2babeb17f8f8ad0c66611749e8efa1b651a925d90673a8925eedb6f250d43f32a122f33e9c6750153bf69a3a9023c7459e8dbf1a417f82af7551ae065f6b7533b6b8a2ed70ac2846705da18995dc287ae4badc3306930fb8902c6925fd7d9444539c873cee072973ce82721068ecddf972a56cffc982ff87da89bf7a60e5905bec65ca15205f73807b12352716980ebf8733e58a77a9010b0370e7f92b6c64c93023fd73babeb141aae99214299b6e75cc69935457a6b26f5071f4d8d5c1d8447d404bbef8d78a17b0a4faf5d5f35b89e635a457d1b4b6c627b0fb8e257b318c7f892e9ff2c8d6ad38d545adc3ec494088e06271170455004bb8332a370abc34aeb207236d2ebdb2cc62377d80c21aee55c7a26d8d449a04f20ff358539c48af901550550f386021bf4e8b45ea8182b0e8c2e07dbd15185f506ea11ab55359240ea10b769c7ca832de4672f8cf4f3c0de4e9fc9cc969ad57e251735117216d7476c8b16c386f9f2bb57d38881688f812af35534faacbb306b798b7c1860d1c49a10ed02c3b69baa5614f2f6aa6d111a91c42b268c97e675f2b1d62e7094af3bf95fd6fae8487e2545ba6b56863c5b97a4185e2c6e849959c3242c8439bd9aab9f898f5ca2f5d0905c180d7c9a550ad64d2325db84e2498d5abd17d3e06276509bba2f0bcaa63d4de387e313206416b26b9bea929431e28d4b7a7e4db9a9715b60ac107d4e3ccd4332c6647efcdef47d3b5d01abd1e3b0a77d3cb30a9255ce39e61005c803b4be16c8d0b3ae47e82ac6f61a2e9dc22e3c7387f3ba504c2cb78dff26bb7395ae55b3e9665bc8ca8f6919a53626726a170cb4a337e7a88fac5ffaf63ef5a558f3c00234f0ff8d4b571ed68f6c7e34fcafbf8e32cebf785922d353fc825de70baea22b44cc7b8c946b50811a3f35dd36b68636b003d9e152bce152bf5161180e8daafc9112505da2c17c3e5f6e09cc497bfe5d3fa530885888b27f21963da2f52037c2139581128bad146720383968716a02215d7e44fa4ba2e69a92d85ea2cbb8d33512bcfc082a839d7ff98d9ec7d7594d04a749b5cb06cb3ce914e56e81f47335b9962405b70430ee3bf4e5de35d4bc310ce758e125ecd37ae1d0f0b8ca67d418871c099b5ab6561e643f9cfdb6bd582423f8b704503f22636bc88398dba8cd8e6e04a18222cbea02387ccb17b293a2b63bce682857a49eadf6517d053657e42979d12c5f13df97d92765af4bfc36759a81dc67efafbb6d43804e21ec07851ec25247cef2cc832aaaddb075daf279168bdd67972ff27166949edbfeb717cdfb9ff88356acaebeb2040a22c8ce5a54d60ebd8f65ed6238e3b563199840f940f47e6f21673d369f93bc1b26372823718c640511021d4314b01b5995733163b46027879e13a6c252161ef8d2bdc3fe062f3837b7fb3ba630aff092fd332ac2671944968406c7eb8474569d6d49132bad015022964520f58331137bb7243ba6543edca273917b2d615f133108ec62b2c777a3504221530e0247227fe09269b0735515722ab8aba5454770a66639d0a85b2a5c83313669de52be4dfdd7c6b74802ba3eac4578e837294955a7d2af31d0c555962390f6a3a1f1391e175a1e1fb3de88e197a35774763307bc46a8f4b8641693ead6e6f29bc77986a317f8afaad3b4a3f79c68401b6251da20398798a267c0adf740fa3393e59d9d6ba527423bff630eadeae04ff8b41872973a7f393edc309c1c387444776b15a276e2bb23707fd8e7618d06fa36051db6744d4c2bbb60fc12e4f9d3d55c65b0b933dec85c5c50990b15220ef46fc8bf2d0ac93d8013783403af0012a958384b8548281517d0611aa18e02d8b7fa4cb636c5aa8f47b7b2a2d1391ffd69625fe569eacc8c32b2a48ca2d694cf4ecad10c455c178039bc2a4b5d08b950177509f6a522400557889cd17a6245cf554ed4cadbf8410fc538ea93c6cea57ecca3d9e78de1d2e3b3dc54ce3a9667921acb24e7102f61cfeaabfa0d8f634a91672b64d02b7b8464472b1bf6c8f923f8601c6096e0b815fb6a1c11f569cf2977605875bd2c881afdb6de9c030865face1dd58f6f630f0cd1dbf65c69167cde97d226fb6c18353a798008ed4a26d03857288b1af6da3ee08412188f59603143dbdaef5d5fd83137c86e15fae440c4c0220bd0c0cc6bb2494174efd567cff70af2ea02e1540c7d6a61cb1789f01ab5be479d79ebaa728c6aa91ef7bf0ebdc429e305aff8a24ca81a524f94656368ed5f5c861c89e1345613c203601f7ffed48c68973c17ef93790e460875e975a2b540b688733f09f2e93f59188b7446f5503e19b516c91c1808a00c951c7e84fbbee9f1e168c3282310abb780666216007c96845fc5581760647ca6da334fbe1cd54476d1b907d26a4127a66cbe77e136f2fc0e671d4e820f662cb23efaf1226c998f553caf109e30c05dbaded814ab37859f439a25d4c531938349c87bac3eeac9bf001d2b6477d8bc52df9baecb9190e96259008d782dba677ebf67a0546e57dce1c37893c8910af1c54dd52e2bfc73b1d12164eb014d9d872c0c82c16eae96cb826eab328923bd7874e1a80079c1d7554fb3d810c79643d77c7b03e78335779c8383595dad5ad908c7c266789a1c3b62a14ba8f2cf0b21c5670692adf2985aebfda7b2372b132f0978ac9d691094147382e9fcc91925fa3c72863b8696c2cd370c938c7ce8c6d4871cf34b7ab548966ad0cc1bcae4cb4f96ad1483293b0c1075b499e0b49b327307e0ab45c7e6ed11239acb05ca434c099af165233601318dbc087093b71bfa614a543b608a7f98765a2eb0ff558751004620e36ace7681319712345d4a66a4642632f0d5f3ecce54e5a38ef4e2a1984dd793f9c813c1d0d6045dfca8fbdc6ab82c62bbf1acbf23f3a67aa3f037cf8e46e5cc05848ef91ff50dd6321bb8704f1c00b5f9b96de2a76b0e5ac6d653152c0e3179e9da9e0181203f9a54238206bffe10a29132c8dcd08d4a014d619207ee61c57c6823bce4aa4cc07683da0484ca02eabff17445dceb308139069a721d5fae58801d43b7ad1d29544a41a98d98de5a92ab86ca574ed6df07940513f73acefdd5c7a2c09140508cf25ee74e0bc491c6fac054aefdf0ba35ab10b2e6d21585d975934a0550bb5113f339e37586384a176738b9dd41ce6cae124f209135a0791b47ff2a30eb97668960dad01db680413690ae978c2a81a2eff1b4e0cc8087e091ceaa189c4026230b95d0f6d926681d72c57640252f3ca0b9355aa1fafec7b615160d18d331e260ca51f3bd64da9feb08bf90a820715433fcb389948b559aca3ae7701c62c0c57620c13836d94cfe15a41cba8c7093e3c83028932e99178940f04491862344e5e0abcb0e5997b8ad5674699ba534a7c0aa94bc575f4f605fec4972fb14f3e694f579541f85c919eed785f573744025b859a9b7b29d8a6e822caf6040ef16cdd645a06199f1028f28b3a36780f9168eb7a8d0ca7d2783525c247f195b3378c6ca9f0d9a7ee31c3fbac971135cfdbf5631b095b393aabbe91efd81c9e6b3b5252fd1495b3d2637a9f3fe005946617cc1bbbe74d72a1d93feaa26928e520ed5021109457033322722b6d01fdc25456fcf96adb8ed57776b45e8879a48b8ba87816bad48352b581fb532aedc937bbd753050a65d6c5f8715433e5384e2af3a9c4aeaba1943a2cb2e120714d91ac4509cf1608cf2099ae62f9e107ca737f1769df429ac20d1c413849cc4576528b0a7b6ecf803ad1112deb028c94b821e3fdc41a50562df7d27e8775277e01e276adb5d7a421a190a32374c3bf86ffdbd87a117e3445e588d846be148a67b48187cd130cc567cc6c02d195bb4f4e909cf00b66a5235b7019c10ab965d9fa15953b23196b040759fdfc41bf72ea30e0ad40f82d3a459b4e462eb7aa55c98f484d44d96fc16d423f907546b84a7aa59aa35196a54beff34e8bf98d5b1c4049ffd72278351acf574048f9bf9df09597c2c319d19ca1d0618d9134220ea7b082f91bfac3a32cb9b6cf9e6d7559af0c3d11121126dfba06f07b9303cad053df8f61f2246cb9d132f30b06de54c600527cacfa55b481e018d3a1f96685e1797b53ec8acb05b02d4a34427bb43a446d5a9ffdee5e0c2d32846a5f241b49b8faeb67970614d13976418365c60134c4a23e0c694ea53d6867f00f8242f1e6e474102256273e23ee08cea358bc0b030f995b2ef2415dfff19cceaafa37d2f2c3ee2bbeade18880ab290dc602f72b4de755a66bc664fd2715de5a777da6a77b2455acc38765c3be9b923ec0ba27ea48533ce042205c3c81cc568452ba6003b9f09717687c5bf6022dc3f0bd56bdd09faa441f463d553cedb29936eb8ab40a2a032b8f23923575e052e3e9d3d9a4795eb1980d861135aa5448d8e3cc8eb546f3875640424099331d389abd231f267a2326e655e3da9f0521693ca4c0ac846f8b4fb41092448f23bdf7ac5829d6ba70a044613e2a01a33e11290e91c4deea58d7193f2e761548a647b92ccbbfafe20681386e77b80ead74584a4ca37a850a603e1dd4ab98a33f731c180d5ffa82a39285d7f46a0492473bfe4e744d528fe437055a31321fd9154fa682400d9dc4d586ea9d6eb20d1521cebdd7a73e0017f4c985b4c07f10253f57754f30002fee2a4f1d6f4406fe6be355c82f6c9f6e5866738a735b5b4bfabeac2beae420335f87b61e00ee358b4fb21c04cc040caa976920bb3b0dbe159165df3079068927eac4d0ff0d0f0041e6c589ccec69e40a26fb3cecb7586a57c2d8d3fed62f15b4b81f0cfa3022a9778da8ddcf349a22278a6c38612b09915db67a6a9a78d5ce87a81ff7395ef5cec85e70c2113adbcb043283c113b71599a286b0c077823c43ecad6e7dd76c76cdfada24d714c9a0698b1b94060d8973166a5a14dde9231a68791bc54144bf428541b1f3d74bbb9c48061b29cf04d0f832e114f4f304a558b6f2655d2f5293422ba2a3bd6016241d57650555326e65484a2515b33deebb1aebb94f7335e4177e158e34e9587ac9688f5e8546e4a68a236708ac6945c796c0ef97ba7f58b08327ab82fed9d3845b81008b039e200cfc68c45e423ff85aa4076225525ac4eec21fa8121ec618f6ae13417e947179068702c991951419c7f992431d5a4423a7d9ae596952e328e461feaea0f0977e9016ba20b3ddc900c586d5621f6966ab8ae1b0d6389032493ee7f3b21e821f505e30db8020323fe76ff08b25ac6f1ab13b656c37e5e6843a603bf8c065d48b17dcdf887592cc8887cf55a10a098ae84d526c58459b690ae6ca8e5d20a6bd952af70950808b3470d673541723c57a441ce50be411e9691a26845ae652926dc99b63a704e3509195151260fc1fd42faab90edfe2e919767e2ac838a2fc81242b8952356316f7a0005c84a5dd4037fd3040d8b4050f04dce7ebea1651a4694570322504782bce0bdd23456350eedb653e108c95d5d3019a3356dae5c7b41776ce78bc4033da0b6e5f1fb300ba40f0a77e2c8f42a206b5f86035d6aace790874a11d3dc094f7bc295884ad1278caf68d5663a4c0cc7a62717151f8d4470b33ac36db66f65a1f2d003e8d48f07c187a2caca169272577af82907562d1605fbd17d8d25b385254abcbc20063b7f7c7b748994df7a32713f8fe7338e9ac1f57f8f8adcf78db92eb60525aa5c14c4cd8d7a7c0a7301d40959e6c682ed5699614b0723e39ad1bf3ec17dae35a41744a6857b30629627a13a18034a3573c4eabab6562b5f58b9d2da574dbe2a0d6220feb178eecf3b8966fd3b65d50a6621f1c1cdf14d393977690a993852a648fea139d1f2ab4ffd91f8696bfa26f646f1d7204e6bb37483f8a7a98e45089af6e0cfc64621af3fac9425df5ffc8272071af3682a3fc9af19bfbd12f161c8fa968215203cccbc6c0e0f09730791044459c28392ab42be1695a2bf48dbd6a466e1cc29474301a5cc66123c4cff2cdc84f9ee365b0d9fd1d1fcc1dd274d472fabab61218ff85b66d1ff3cd677fd1299cb737099847c7490d1563baf74d62538273e9c93abba91cc986d9d510775393543f99ec84d8aed22ba7adef9a99ac70e9392e81d072e00249a7edda43bdaa0fb71b3a9c9f0f80fd41cd98a160674514edc9460ad5857738a2b2411131acac7237cf00d6dc1b0f0df5f1a11a10da529bbfa76ad583364aa82ecd0a03f598e56958217f66707df8ee7ee6f731280e247b70509a4a61aead55b41e4dacde859da2419cb66152e597ad1af6f3207ddfd91c35a36f4dc68a4f031693ad6d521f80849bb5110bd7d0a53e5e804aa910339c9da4f25efc71b41ba285e247b2e720a3ffd9f242443302496f155f2d6bb466a95cb358f511cb078a01f66f2d9a32872069f9698887e755e186e6546dcc014a10df9d56c31496f13ef06f996b783277587ccb2c9127f3163d664ea2af36a4ae521a930a8b50ac0f7a43ce26de8b0d6e5d6638ee61e1095c7a6c6bce4772c2e949a2452447004e1eacb5d31d4f96424ec38264fb4a744167b9ea428bdda8ab34041c94d744e35906af141aa9ec9647224ef260dd17584d3af9614fc2a58d648907e9bcee763f59de2a82229452b39da9df7f9f6a5af0829243c08f7835772c2f58a6a380a405f04d49c3dafe42df581dd98710df0fb9abaf97dbf9256242a2bbec846081ad06b15d0384575247cb0ba8b7dc085638b79ea42c0672d1338aa458bdca62dd18bc1485e3a43ec47efb62a72ee618dba1e0276a0c273b732368f3d0a6add2cdb741e8d55f3c7090cb1c33716759d60e33faefc083d1da441d3f5517b8dea9fb1a583e0ac0f2b6bd4f564dc6262c570c5fbd9813cf467f57fe33227fcb6cbd67d436ca8412467398a454e112ead83967ec30b81d08289f7446622b5a7180a6dfa4e1d969a90afd44f28c3865725b1aefda9de764d4989332beb13524bf3a9f3e9b1187403b2a5ac60bb3b0892e88f6de5468676a0f21a08d175f36fb77dd15f4e2a86099bbfd6946165c242337555bfa77dfe61baa72cb6fc8d1ac34d3dcfd665e18995e6643151a665ce2215f27cb877761036418db49bb9d3171990e79888d8d57691371def727f21ef94c012f6541ffb96e10500df9a296d97d8cce354ec833310ca440a52312055efa0b11a9cfb05b61ff492c61db05fdb9d26726507509b38d0d38dbcabcc6d6860afa9e8c711bacd5473e6c0515f3dc573b9a68b0451352958eb450d6e3f72b0f0cd7d3675889a6bae24536a8f9eabd2aef873b982c7f060ceae2715b2483b388285057db0d8a42e43e80ad6ca8bc485deeb1d73a923995015becb70795a0ae614066296524898341579755ac787b3f4b2b26220058982f61d223f0bf0625be9987e53925ebfebb7a8a3d15ac700e671d33ae07e03eab5ad9c2735f78e68c9e63683e8ddda67fb9b5361453a4c254cd25844df8b6a775e2108043b9f7a61823825f2f84c8610f6b8bd5040dfd292397138a20e1b0a29dc8008e0d3e80a8749cfcc7a6b98d36235d28283fba482178a32e28082dafd60ce9195cb51d4835ccf1e1e5a7b5ba214c8c9e2d5ae2469a35c4960ff861a365e20071be4797a11c3550efdc4d006fb07fbd1025c5c9233a238347f875ae80d749cbc07d975de31ccbe6191c07c175e49bee13456f54429b9330a763ca6d877d65932fb6966f493797423f634b8b0356486271c6af598a2a86fdc1d37ab69cf4ad4f2de641fd7ddbdd380f0bb5afddc86c633216b44b418f79580b1f749258687895316de4a9065e01b711bb163d530439194f2dfe67d558f52bda69238876d7fe0182a990d2cbe9f73ce1338dbecde2a320b04184a69e6a57c65cf396d71bd023adefdcf869c312dc368bafd6372c81a04598858e90ac6cd741137b3ffcc7a40d344c759621ed48de6bea2cf52f27fa33b26022b96459acb1f1469868ec42c66f8bd373e23170aa8d61fef1818c6b0bcaeb932139ab9c31b8a975e3c7505ec0cf32d69088f3b4a6b571e6f8b249bbdc1ef4e6bb1c9cc19d643a794acc4207187a1b32888cd59fb83b8e051f5963f2bbebea5bb7de32216ce7094124e128d074dd2461c83b549f81a3bcc0f8b717191bcbdcf73388d7ce532abf63beabc2c9e4e718baf828beeb55ace2ae07b38ec496059348f0719cd77a92c4148868c0c83a2be0e9877f6f9105d09500fe9b01d0ff18c358a791d70b6f8359d83cffffe5e4930538ed0c0f7e5d58396f5b0736816aa2b43ccba40b72a41f14afa8472908caa14c932340fdec9859c165fa28b6a9f64a1e8af5d6acd11a24aed6d4af9bed6b12bff4c8223f1aa508c6f2bd3910226dc9b3c7f70f987f9e8823d8bd613b74e1988a377c8bc86c7d09707526249adb2f90f9bcb3206f3ff7fbde778ca0ceecb26a467150e8c6507caf946b25d7919ccc2c6e3d2935357228a8bd3a4498530b3a770683d13f8056f8730542c92abecdfceb37343e84df71ca180f7506fe89b96c7246d92d066dc6f261338617bc79f6d3a6a76f9aa3e68816aecbdc8c4d9dd59d9c124efc4e72d2c8076ffd6bf033588f7dbea2021a955a4fb9fd0571f36dcbf69cada144a4373c37271bf77d25a4b839800d1952f1d2f896d17f32bf7993680d4316b2c39f56d9bd74764ceb14c4799f7a3c7970d09053bfbd4e0d23ffd108d1aa7138c8a6512a638cc897de480a8f338aa10c0807003e960cf2ad81b313b5baf45469f2faec9ccf8ae6422440c723afc6b8ee2adb395ce14d9336a2713fef175c7d6b5025bb0aaf5cfd599a92337e8f0d4a1f4fb5ca6b84940d94390ce4f67faa07458bea255f9788674cae2150e1f1e4dd0c1ac56f7276d3650ae84065ce3369e8fce022bc0500d9d3330bf77c49bc3c854e23144f6d595aa77fae24215309e3360d309982104c3c4c48d109d7587d79b36d84060c515521b34efb27bff5664f88448ebbbe14875a23ed7ddb092e15d431babf6870026bb87f6282b81b9358c8a30c8c7bd7cbe7309b59c69b03c46f1eaeda7874a6e2ea91a2a0705d13934acf7a1cbbb34e710d9e55f92e32d3af746b1198e33c75d194210f488f119a030fc26fb29848db36c9ede490ca6eeb89d288299df591d58722c0f35cebefaf87ad54faf0002ab74608238cb9718c0c4965ec3de5c14dc4f0d12550e9557f33f6e007806a99939844a6da0ef5227bf625e55c46d0fb2402ce62d8d5938481fdb9295300ea997ba2e08089ba399f2f17dca59593ad93c8204f65f9ac1477ce2d7367a9a9e44f3c0ac06d5487344df6bbe7f8fa9b1713221e5e762c57f6b5eeb5a2d0ac1342fd4d47054943c0ee9b864c54deec073bda1fa0a60a25775c78f83f1d4e185e7ffd9aa325e675eef5944783f08fc7ab3ed4ebcab9ac08d43254cba688c7e97f007877f8dd832cdee8d76ec779a88aab223661b71aa8b99f70d20220c1081da082b8932ca3475e24b3614ab08f10645fcbc4354e12b9f6b08330525d05288dc448da843369ed0fd339f0372a5cd9a22bcc9066c3e9bd69932b0896b32e82300908a2c0a9908bf3d7e0141603dc43c1f85cfdfc8f7ad540216bafe74cbb64acd1eeecabdb8c8fdd0da7ac9a9b483733a74df7239fd798d00f3571f3e18ed91a34919a29c51517ee0786777ef24b06579aa5492099cb510bde8e9ea7174f543169782f073b6909ef677a2c1503ee3622e920a766b9bcff535007f4c39f46cce1ee7dff83dddc1b9b5b06bc1369b72ef5491ee931ab52344d5271d669964b29a15253a0d0e9bf575dc5a367fb0150f3408e46c6d67430b38b8a0cb204d6243f7e958fa24bde7ca66e3d9f9f166c3eb1bc3739aa1492b447ec6426a34c11dc6604dfe29074f35d40bf222fc905392f64263f7545d199b0e91495cbd8fff5cfbd439d675b56b18fa8477f85d03f7b3a22044727c5ade73b6f271f6c43e68639fd15889cb5b0b19f5413828e46fcb1bcf8f71e4b98f33c2de1687293a02d8c43bfa093f56b1391a451c4da1d6f4dbb8aaf6b9c60413c00d3d226fd2947df24eaf02c43ca073787465ffe2a42ef00658f953e035c72b6be3082eea0f07a699b9cc4d6cce026481377c7531092a1df3f6bbe6d81959b5e03ddf4db4a308353ec4f1032b41ecd52396625e17406cae40aa15d007bd1129536d2e7afdb35a336434eb375131db7a624b82ff3eaf9c31380aba0c1498065e4a2e21248e89436de54f012de7063c63d490363f7047ec8fdd418fc1f502790c7a4ca9f389dbdd2028ed51933a6c272085b4bf802ef3d198fda63a288b1158787804e92a4d58f715bcf04729d8d1c8ad709726a572f473367a55c8ff07ea18e97b5c9a7dcf409d583f82f5af148ceeca014ed963866db0c49fe410c3fa6363573ead12687a5a0cf78824ea46840ca35c7cc53d380c211e7e30862b9462b28d9fab18f41bbf0195d54351fe0b4260bf86a4bf877441cac84fdce12975986d15ea0cf182ad67644b7cac1e091909f4041445be9fbed7cd0b5a97ff18912aefb52f41bc0cf16f45d5d0d856aaa2656157941ceb677d6e86a13e9389ea57c5557bf0cb77dd903c13fe5467b581045c8bc252a3e3221661f6f3bdcefee2dbc7e5d9e409a84330296d58fca53c5f800873bd3f243522be98982ae8925436cf0a69ac1798c616883f1f98bebdd7d0b7ac66b51f110f3d02929a62dfb0c736a304dee309be574a932e22d2bc4e27525efafcc0afc96b6d42fc7a61604ea9e2dbd2bd37c24534fedddcc3447ace5b52cf3a55b8ae275e61071e7a5df64328740099c936ae477171a1a24f1604483af85707333f3b2de86d216aac03b8fa064d7dc492dca8af4156a05528f22d9cd44e8828d90abd812fefa6b1c514cb9f666bd462c6874bcfdeca0d319fac605580ba205a0e4c4e96a6f80b2e0c6e4c0761f85495d522df3760ab9d03569875415c951cbcadb6ec347d1146bab8d846b185f500f02b75f6d82cc174e5346dffaa150a997ad5edc3b24d9cc7618b98a6fca7545f0569c0c40ce27c202002370b759ea8b55b99be485500e85e2ba86a52205788b843c84807a1c3d8eb168f042468ac84db2fca0f2eab9727f80ff8340fd0b4bf66bf4eff7af53dd6cb563e003885db45d9629fdad1d5dbc94a108825f70b282af8fd56a69022e8220ac92ce0a137bb42ce946744ae295db81c52d1d51f985822e2d0cb219bc47067d3d3602f058ec8a528d3e9664615c587d1377dfa01e6b601de804eda344bd88f06c4210da11936bd41ae65f63b0999f7ac95eff7ba0d48bef745bd4710eda7fe278746667c3902dd66dc95ec3ff12aa88ad0ff807236b5af27831c62964ede73020474cb86454d8e9f40f08a1d2d83beb3365a6fb02560fd66155e8dcdfd19e43e854d20847369630f03f9127ca9daa0a6e388af9a22c5e0e5ef5ba74de056f3cb4610847562d1447729a83363b905b1bae7544eaf062efcb1851b32f3d0a2a2501d5db4a5fe94cdb43dfb8e98ff6eaf45567704198d4b2338a0bac3436850e3fcfc390b2edabe4507b7d0276d986afb4690a0d15f10ab1424cab451ca6bb8cc40435551ca02e1cf0921063a76c99f794ef0d0cd2cd49e0836d98ba81142f9fb503487b1fdd4ad6c57e30c36c4fc6388829e98f18855d7a9d8a3a58d28dda9a20fad34ec8a46eae8c60b1f1ac84ff943368345ea8d41c27a034759d3b9e5bc12e72b4d91b9da79e7069df2978144245035342051268e95c826e1f0fceff85a7e16b1683a0fd02a7a0139f74684c954c62cafe511f24af84dc70224e156dbc0af88f998af369a82dcb1189696cfe5d6e856c999a9bf87c7f992abf72fbeb190f82cca0a02b5844c9861921fa8d270872c6768095886cc6d17da42a21ca59e3a2570aac876903fcb5d948f654491ae59051e60f32ec86dd3c6b52e7ade47730c8e68ea6a181afbd1e455feb5d6f1b0d1cb1571a7d876893a00108613543b2c5793bc2733c26f6ed31bdda40696c1c1595d467f5797b81949b193a80a614399f707d3b81d046387eec81c4639bfbf79142755e6a9ef545e5f410e92dd6bfac0bec7d062445984e735880bcf9b135f39d0ddea723e1e1c1114b9bbaa4d8567363b9e75133f27fa12c98f271df60164bc0b7adfaa1a373a3b83b7486f0214071ba559ee2e3a9edc4467ed57ce4e032f33ad8a5a6837aed9f198c629a7a4fbe2d8c006e044593891ce14b0d62bb47407a7655f35d96c0d4552da2b3648dda19c97a0345ae3c1120a3c5235153331bdfe83b2c247e895fc409e480243f3b0840d2f5ff077f01006a5e02bf65462c15fcc43c5448596fbaeef1e063c7179fe327556b8b92d0a0488c09a85b2696396dd4f22379870256462a0cbdc9670d53af83e499b1a9901f16a42dd872d3871a489ed23dd01ab8608f8a51e3a960a7380e0c8c21f057806ee879fd128bb45c5571476cf96fda5e33b56115afc67fc9b9d3e24f4715bee35800f67ab84887f1d1ff72443536fa9e75725303fbbac0180ad60360601ac13e29938675f9902fa0a5e702981f99051168b5eba1365bc316b4bd1f191eaf1eea65ee09a2225ea20ee9282c7618e1f09d5f036ec358583321e5ad220f187ba511d2d8e0ce6bd5ac4859a601fc52ad5f66eb73958be83d064fe943ac0bc1b265d85f1fc83e851f5c312ab0cf398fe48429be72adcedf2d24ade6ffceb35e46856285fd05c223a0e200b2017913472c8e72d838f70f073218add44e0d98ce102a4df6fc0be2ce2d3cb4e25aba95fbdb41d49703211104d0a24eb860b4fef15c203a9213e5fc2df76712072f7f055bb90b1d3f3a7311066481f25965f4adfe4c5dd9fbede49a0f15779c6cdc7b0c4ad1b0ef034ce32992a873c3feacebf18a70236722322c09a1627afe293c10e8db06b5cdab00e54061e8d2132cdbef74765329c1c26818026a94df1dc28ec479173c1c73f97c827f1cccd7197249837e8128159ab901e143eeb92fc361efdce8ecd6a827fe4095c7d83a217a335a4d1b4bcbd55bf8c4d4de766a099aa0d72024e794796d3b1be2bcc325a3ed57f5a654d59289dec7a540d55b73d44bed2483a9ce3966030f1033b0f4df9b233f39f616e9b3c26d3b3ac7d9d4a176d005a718194126f4cf27076cec43d3243b9cd640a82140cbaeb918612607caef8d827a29e9880428773f02b7324c25d7a0552fc1fb5a4b752f34c1641628b384da818388086b0412f3c46f21d4788ccd5dc24f65d4eba664a8ddcbc5c2d6413221278a73c7241e022d02330e95ec350c412545a79294c008a69e3f0d2b2063a03f0fe75dee6868adbc4099d59b3470841c2cb308b2ad381e4167be3f53b774b370142d6f3f4f837e04109eba1652e13ae9b39ec7f81c56b6639d7fb62cb8f7225bc357be636b66eaecffbc1cdae39ea97332a97514256c346992c0a2c7fd7ac7c7ec998534a8fa2be55d81eb0a09d46f5a2bbfbddb68786a790f8d270975bd870a00e7492b49df0b6bb2459ecc75914fb78c32f68c0e06e294942789b88cf2c335b491d54c9ba39480cf3b336b21c273b760c54bfb7055c08c171fe08e36a5cf97405e3403e8c8168b79092c0b135cc1cfea1ed3bc25fa5ce95063663092aeda7d8d40a807c37e7b3327b57a65754a588e95b6a0d4231bd570c557b44640e0aa47de6ffe0d47ed68f91204f6ff49d8dec9376bd1d221d0dc30b95b9d95bc4d3a69afeed7741239726f914e646d6ad6ca34598595fb80c86eb7200ee84238e7c27ae7edfea11ebc1065fd3efa96be76c5c0be2122cf1093ec8ef1dc6b52e62c9b56f91584e73d6eb6862dbfe513772ee1e99489aac5079312c428ab7d77423e410b70d9504853faa810212df41c98ce935b16a62a0ea9869fef25467192b758daa29a02174c5d5adaf7910694c3fd49d5f46173ecf750721b82792969629ff85b967837a43824b5f2bc25b422c20aa955d46a1e6ccceda46c202bcc40f0e9ccdcbc3c0ef9a830f819774140c130036fbebafa948f8dc1d6fbf77c0da9ad0c8329018e7f82e0aefa31a3cc10d5ddded54dd4c084b7e08eb78b8e8608460f980e882fb38fbf104a6415855f90dac45581c9ca1efd4a6b0d5f262c8a430dc624fa93f73cbe2173c068f1e4d09f0f1976b4d694d7fe52d7f6efb2c1b2216808b2b7a99632ddf7f31ae5c7d96ea419daa5437fc9335ba1ab76a560b67508111abe3e6431d3560169ae8ca0520a79d7d8bf563ff0c2a647d90eff97f72fbd4e4ce8257d57f0ba66a501982020aba53f4ce82efc9610e9cee3c57db4562dd20ac50b6d17a35cfb3907d2418c084e28eeaec9eb9b303b1003d193b921d5aa3f8cdc6eec646b304610a44d11327bb79834a622fea28f239e76aa980f6ae03e98db6986052d6b4947fb84484611b7e99c9b40ba8fa8af16b004fe7ff025924802f70b3a9cbd604699323b22458ee35a0dc25df84d79c8fd65b7512408c5f6f7598505a9bd993ee717a1c280cd8f4b70fbd73c4b4e171616587f3d3e2375fe8b8954b622a73aab99e1d0d22eef6775772c4b09cf0daac3f535e8c65534aadf7540fbd9582d99efa8b76bdb88bbeffa8a8245c81df7b3a027343c03664a1e94241390b4c36d2e420631764227a201a2b8532045fc0e99368f8066bbef963e7c68a33bbfb55772b2afe823e6462e13fc079719e79dc24372d6bbf7167f34a19bd189938c8c08274323065a408c42eebd46c59450bfd81e8d03dd0796e636c5106d4d6fa5b2d97f8134614f16a858d1a7f8d7614a38acb39110d71bb31c9e299a56790b9553157e32852fcb339734d507c6b73184870c3d518cdf8bcf7862324f5c78e4bfde842c6837c7dd3566f04a33eb501df15a1f29db87afff660060d452e07cfc87159b3d1df8d90d1d7e6c4acadc830cfc65718c52462c812577ff70a0578103f76882b18a26ec5a641c3139c75600b80c6ed530cad3226f5cfeda7ebcb40f8ff4cf321b5bddc3b5ea3469614ec4d732fa252b782cd16954b00c331851237e74cdb2389e042e0d9da3fc03dedffc19e020af03daeb5dfb7ba98bed8904234d6de268242177774d0a9ee7bd97a0dde408c40ce95f30ef5b0bcdd1335fd61ed5f7f88fd2d228bba7cda85c668f4876dfd48134f507759451e269ee325d3ff51e1bfdf37055f6a6b6501cbd1d7cf65f878831d0d8030ab0cf4a31f1e915f709b47a9753dc7abd691d0619d465601d341cd9b9cc53081ac9d5f1fef963278bb4dc2aee4a5a4bf2ff7bf85cdb1b19521887be2d742d5d504082ebfa843a2a8dd765778de31e699912c24893b508eb7bcb6e6d7cd73e8b8a87a4f3d9f0658a00ee8b101fd9b7dd1645505c7ca355bfd966a831e4ec903928dd32d997f6d924b5ebafeca15229489dab515b733fc08e0e175d74339253b9ae81b96c436bda6edd438bb2c40873c5c16177c2665f9e9334af169cad733313cd39d3e539721f4d4b2c214f951d9cd1d5f942b8524d78b49e5fb5179dcd9953bca0d9c60879c189275729006eff9a9b5c638f530543a5a622822244d0f62c42bbd1b461f338310ef7ac0bfb1e37ea5c69f3a6f541c653391099a865d8f7e217840bb4e0e8e7e88cbb0145240f33155a3d6f104c57b051fa0a9b8d26c93b01fbd46a7573092953c0a196e2252f24eb972509e9085131b6b23a4365c9f5849079c94a64f8095178d06d907d12efcbce574e37cf5432bd94754a482d2f2356b124ae5d6e53aca08ee5287a26b426f85e0596bd7c445e0e0804451911f26dabe2ebff546190f3de2b40c88b0e0ecc040b604fc1465610948ed2cd535af14d9b9b95c4b0a5d6709afc125eba2011a4fb3d985cc81e77c2733583704de1405e7e3daa3551860214749a8b1d405d55869af771e4d9718d317381424b7ef52b613e8186acd0fe7e1aa17249a3c4218a9c94c15bcf4049d48fe248216c8000f550374cae839827defc3c0a8d94eea009c88c620075c67abd7ab8e8b3b2f48c863c70e8471b82e97e280223db71ecfddfd6131c3b63164ea0f2a0d97b8593e6c485d36f3d0a1c5d92a2d9300ef763129fcaece66e2388136d54bb7789488bc03f9227147489f6e3bf14421b5664fe2018be882836e6b17558570104ccb5e46f5f0a577723c3d62c24de998062787f8001d0faaf6dcf3645749fb96c5d9c458d727f51bf883367733b0431c5caead3043352fe278d94bb1e9765e6cc87814ab9f2cff17cba47a2fcaa51f2952f3c4848d048529457f86f9a7537fef09399a756f9115de59eb3e46e4efc710292977a083ae5493bb73ac67be9c9d1aa3b3d94b667ab8ec6e5ea697ba761403418341c4c3140c9c37d8b2f27a60bc76b9531018675df5d9bff2d92b5cb1e264193c28c90cc38badd36836</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="渗透测试" scheme="https://gylq.gitee.io/tags/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
</entry>
<entry>
<title>【应急靶场实践】Win2008-暴力破解、留隐藏账户后门与shift粘贴键后门、植入WaKuang程序——事件复现(含靶场环境)</title>
<link href="https://gylq.gitee.io/posts/199.html"/>
<id>https://gylq.gitee.io/posts/199.html</id>
<published>2022-08-17T08:30:11.220Z</published>
<updated>2022-08-23T20:27:48.628Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="ba544be84d75d672b35b6c730d165d5e03c05b00797faa92bea31f41606b8fb3">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327f1a2376f9386086f11c7e286a9dfe71123a077970dcda1b5748e8eca65828f23898eb9d43282c1671db26dc37cd36b7ed7288084b53c55b6eeed1173f5d24448c7163ff4a9042de8ff1e0413d89a4870d290db6f86a13f8c9652a6d622c3f04a1c9a1c70d7c36b0af9ebfcd5be86b151eb3540f35301c5490c9fce0b6dbb6849b3fdd05f9a88d745196b8c6cac45b8553d412d3cf9989f3ff036138cc73ee2c5f1549a99210c460df2b7296458ed706588c18326108f4033a20d4a4afe5926faa64a29826ea6fe51472785e6445c87299c52fc3440c0dbed1fd9a410fced0549412ea5e1f3e58f3bef4857537a73986eb4de6cf67b666264874b89c9c16a5faacedb342b94940075f5ce3f70fe5777e2aa2f606bb8d49ee80052a421d16d5fd5806a5e6f77e5f75102e6a7e28b2d384a6bcc0d8e151a3bb3a9094ff0059e962f2b1c54254c5d0489a550ea1141f25d7ab7be863927d013a9985e178cc00c2c78113adf2317a0722e11aa1aade45841183247995583a9f4e5abf17b11aff2f7392e94c2b527b1d4b8465b8a279e4f7f73e5791fb2d75aa5e911225c985dbdac3fa0646de3b20bdd57e32252033f76ace55c4ef77c43bde2d1fa00550de30beb99e3562e906e6c45296b7d1595f657f946858e4cd81d787f8870bcfd51e75461a2751f604e9da1bf81f58b0ea10ef342209153961f9871ad6fb4e06114c8e93f5d75fa9a881f25c0bbd8269f8f38903b934fb0a648d17eb30ab01b466733faf10094fa80dc161fb9f126365f3ae2a6337aa382478a643e9f1703eb3845ac043cd6fc451c7562fca09e5538ecefb0fffa51da6c4b2388be642be85dd2ef354c0c3667ca18e9f358578c5f15768e7508cee0f7c18bf2532100c6c41484c34f6254d9dfaf07a4aa3c1180b2fe563f944df4f655a4dbf4bbca7f3dee795e807c9caabc0b2a139cfe3c6fbb6940df1abb5fda7609ced077a55818ac3e4e889eed38439389cb3c38e2ae5891b60c5cb6c025005d5015ed8963b10f17207b992301f87d790efa82d7c8bad2c79d986b80d88ba5c14a7a532d66d328815888c6466a6293587085f53f7fc42c467bdead29581e7b146e74267c35c4c492c09f39ff90ab2e62e3d9617f89fed2569aaed5032185f26f10fe6fe35f68e057faecb52f0eb4a28b6dec10c2d6c260f40199ebc8f88eb8022c7773cc5c0da8a7b8be1306269c9a59ceae00089bc06e44f68b5615aacb73b8a314a79e5355e04a0500e0eb1afc6212dc2098e3bf2a550f6919d7272a5bf15815de9690b35b8cb9a9780abb88bd25e943438c4833c330af813c7049d0732f6db1eb7585bfb7224ba89becadc2f850f60d0e155ecc4c289f54558ed680cc5341a01bd7f38fe1d4513a82624b7e6a9d3be71156cc50fb90f3fb3bd06bbea8e1cb4eb615007b77d8da995217bf8ca0c0411ec57253b5ceeed54580ea40e225d4b409d9a613c242b0f336f68c4909a09e4854671c317fd73614b6a7cf9ebbbf13fabd8de4fc8220d7d8a1c601f8eb5f64b99707c30dc2017ef9a7fd96f7b2a8237cf9f172ce83632b28d7f3946431bdd14cf641f79a2aff84bd375c85978f6de41f0931e7b79b3c830d3b38bd6b5a51b16395a8d28f86d9c0a12b2b4aebc34384e1a0344d8220d49b62cea75960c35e2e7a0666123a6bd8f6f3223716214268397fd2e4aa4e2915a71eb05cd662cbeaa32d371ce200fd31182a06628b7a6070d9b40d5077cd380f115e99702f800cb20f9c47a80db063403085d132133d7a749a972fa523df280312efbe460d4cee05e722d5c65ca42baf687ba8b024c0984fb1a622e205265c37b8b57b024c1d0749bab220ef533d23f4003a0741b37c0837ba79013770d407f13c03b17faca77075d2c8cec523774aa7c910ec4ca0b601bd725928f04f583e3f13f2474a34873a50f4954f19e896fc1f36cbafac3707252d5454c04a375d0c130dc62db7e91dec6e181f0fa854d8cea8196c98e9772ef1bf9d62cf914681bb5a5f998a20d3c5e3a64ff3f988941df0f18566e81aab084b47d4eac6ad1eaa58836816deb9cb71334fda513735861eb01e5f9156fc01df8dc0559e420f8fe7ff66e70acd0f088d6abbb4bab59d291dc1e701054e53699a8e43a2c353eb1a6597e422b0489c6c6ff22ecc134e031f7920e848a7131d7fce77bf844c578d1005ca3d62fd2753e070c2d4e6d0604f4ee0701b7a7d9be7feb71cb2e56af3e44c7b6c616bd0d505bf4baf11160c1479c0f19f319c22dc8e82f7f3b209605881cdd84a78d531464a6c0734a3d3e6ba06c1a59b4b5e67a81e21ede9c874148b859a6d61f95abab22f97c6216cc13ad2a92341ecabbfd65005057b40d1b3242c66a40fb9d171f27f66f3c17d8d4e5036092898ce3bc63fe0bc6bf5586a9707130f6ed2b8236a849c12878f7efd819ce222e9d7c225d4fc6b479d6f5ef63cd517c82f0b7738e2c26274b9b059c1ac251f8763d0efacb524863f4aff22deec8ec40d1227913350088edf504915c84492249878b1e58b3e7598223782a2cad913aeb4a35f75964022ca59d2fb618d8fc0ffa85163e702600d4538d42af331dea710a192173cdf443133c3b4281f05b1fd34ffcabe135723529800e21b316959ec8ef211b4de76ef4dfd2a391fccefae53252ce0fb2c58d3beb2613070d30b9d0af3b2c04819fa9dd27b0bf58cc5983127b15a71c222929ab4c0e3729ead93b8f2d60f2d4f0eed51a8897c7cf0459d79b341b1859d70a74255743b3906bf59aaacd417127c1c7d8b02b1d2146d302ad4b51b2f9191af6a0289731913dbdc723f3e71d503483422636a1877712527414d68b02df469f234ceb6923a5c1e71fbd70adaa12ce108f6c93dae250099baa0ab92261336345defafdf7239a5a3e3ac32e875f3fcfca64ceee5c5d38275655bc8403d99d6243987834ccdc4ef765ee9af468298f4f915ea0b5cb8a487ee3d9664e4a0c8829a0a1ba0403081308ce62b570193444831521d3d31c5ae3b8123007727be0d48bd4ae494d36627f26955e87235a34afeb1c2b73b6bc3c29c43022deb2b3bd9a4a35d3b3c90f622b17b322ed6581116f394c82d0cd4a2589c1f2a9e2c97d47d8d0b7f2cd1815477d26d313f49c5fbfa4718dc73777b5309c94eeec53ab8f287772c25c52585860bc5f027bdb089ede55a92b066a7b9b9d2537a4f2b73564000a5868a6335d967e90b7ecaee26da48aacf95f03f967321068a93de480dcd1c7c86f08fc3c5569128614c30ccbbba391af0edcf95592ae99075412545573f52a7bd3be60d4983f5454ff88b8e7e24a2c7d3ef409ca4ec3d22c8c2a91644a861e432a59ff5447d114a16a7ae33f9bb7bfa9b52fdd9741f698d77858182e9bbf1028f32ba19bec5136207f5eed53ac11679fb92a81fbdb1fc4855fcc32cbb2f4b80508407b342713afddbb76b882ab311a9fb117aae5380d45e279cc010a939136b6d15bf4f623a2d05464c007142c728b2bc96b5c06f698e8c74e2fa490f201f34c577f5a69583cc59142bb414ef6c518816fdf961db104133ef9ec84ad86cc776831d1c8a7665ec213ed4c0a0321e8ec535fd9df5ebef232cbc0084e4171be544ec8795ef16f5e595669a284e14903811db78c1208bd5db70ecbb622385eeadf97ab1befd5607158d1a9938bcf8fef07e08901707aaf1ec1058a45d6bff1e60e17895475b921eca0e7b8607d7529883670278a8f710f1b8dab173b2e62bc57114fcf7d1c73aa97904345145f8d23bc719f3648631d1c169f72e12938b29855a52e57fce4a8f529cf760ed3c77358d95226d25e04e5077eba09bc761f2828101a6b8e32b2f64b589d14add98c5e4a4e0bbbc902af99246d8b5e05c6e7dc24101d2bc8c234f1903b0558eb5dd613daeef27429da530880a229d65f9a983349b159aa7b635d79eb43e07924717dfa44ecb92d8198e596b6a42dd3b5f9bc4c80bcd366026b1891c14cd72fa92322a66f60cd21b8c84e6b554820b4f79eb0011a2ba2f6e32616b8003cdde4627fd536ddeff13e6967e34b91555c1983e1629f1d3e08a61b0b0c07f38f1daf5b46940db9f76a3cc0628359df256f2f06e7ba8cf7b455a7cb7983ab5dc1828b13040875759e8d6f79c54b8c983819d31e5eb1e13865ab5acb8bbadfab28e627a7323653333eb6f80b5d7c266d8d2283754b46f7f9db8357482306f677b95c55fbcf006983ec1d2af6f4b6e44cb7d93fda91e293807ec1183e721bb6181be57cc2f27ac5006b198317a69faec76967d821ce65ecb6f8a1c7bd6ff4f83a041816ab5b641ecb538e6e06afcfb97fb424f21c2d8476deba851d9751cf8ee0eb540794c6ded210587767152387da658a32ef518a62385af9c39bba2732613d4a776d6071e8b1cd9415d1cc42b4b3d1fee4c166d9f5c7398268339eb1ffb679a3a70b0525d9eefbb9caf9af7778a3c11874e06046b6a4e31649860e0716e1083dbf8a7261e191d0aece88a8dcf397371c7a648e46aaca3eaed4cf23974fe0a19090ac3d4d0a5a3dcc3e022822d8471a021affd37003327a8dacd51c9162eae3f3c799a156eb7a8ed1bc470046df7492fef129ce947b1ca23b4e1dc8798c4d6bb7dd4452dc748148590f9ccb5e1c5fc443b096a29012dc6780423aa109e7244cb970c2b1d641c4efdba819078a0b6f473a73c1410f49b07646f0514de13768f4b64bf3e2cf3d5b3e28719fa47db960e658fbc01a69909e2c43f5b1addf52ed281ea17fc0be02aa081230a8384805c04c919c7095220128b278212279175331bb937315e790180dba9ab11266117a4ffea836f67330a50599f6bb35c7b71f99df3f708ba296eb5e28095ac97b254b0f682544162f86f9cbd332db05a43b38229fef3bbf32096d22d9db0f0b295f5f8d4beeafa327e4d9037e41bc26301a71b89d059e4935d88d10d83144c7e208a07ae45800b449e14f1d4b12c1b45e9fd102312c9ad82cd1cc14a1e948209807befb3bbad969dccfa8c6135fc5cec8044d4cb903d8cb058e40c5633340bd10481d1bec6159419a0cf112934e13c983a8f42f9938d61e5d2a782f435a009a5fc10bc3a189dc88d0e85fe7931ba463b7c5f7015ad0ae2eee28d195dd8d819ec3d092040048e789c0f7357e15c99a644014926b4af2daeea86cb65c2cccfb3b91f7a399c8586cddcb492fe03f5c6b184ed6ce1135bacbcfa10174c773a6b800ee8d613a4e14c1382bd7338e134ebe6741ac9e30fc0218e4d60f5b431e5c211dadd3d2f63a6f35136be7480a873b6354af228cab393685d0c5ff1c2b4283be6a84bed638880124980b7c821aa049a7f04166f162554f1603f25bb560cc80fc2431c0b7af45b5adcee227abaaed8fe60df8006484424563463c2be2e450896664ce32f5321880a5d200eafabf1b13532ffe3c168deb2d90afd8931539bb83fe66496f6404a64e587effec9adf942bf733d33be9c22ce11f0613536672afd85a3ff05b857202ef5bc9843fdd92d15e1e9c3280dddcd8bc06cfbbe9d28147af7b3856ac9f3ca6f26f6718df1c207136466880ad9168e835d869445378832b5e4a6c832a20b223a94552c703405473b81cc98b2fcd7395082c1cfc02a217017b0a8ba68bfb2e250c3a1701a2d89695f7dd00f7a62681ec32167bbee682ab05beb0c900814a0111991cccf82fd34857acb711949e76d6e3eb86a46abaa39c7a11180ba4ed4ff98650e7bd61531a6c407f14539a525da1219a3a58ec4ed41de70a02535911043b817cea13261be50a76954c4fb06ec13eaaa5565a6e2991b274ae458b1bfd4f89c9d059881e4a468d1b6f6dbd589ccb3aa71df041faa4209e188ce26729b8ad65651841c6ce350e8802b9d406edaf9b985fb24bca10bed111f8f0e031d3e41628e985e3c42917b69a60e575e1210a184b4f421095347a5f832d9b7b2e8110f00713402e68ec0bb2ad7711640f0ecdb9017e23666c932c9309dc661564ed124950eef985e7b7fc490c3bc5fcaa7579fa7f45b2a3c0d43d20557109c688e574c5a2ff47ac65b04c50f9604c59468cc6891aabdfbf733c5f97300a16f312e593bd465bb803a45f89388e027eefaa71dbb7ebc4d92706f0335718bc9581dae9533eebee53407fb3857a65d5bec693b0cc791bf2f693b5305e90cfe86a462bdfdfd33d7232691749225439d5aaf59be032d29ff8d81b45b30bd2ec37a0416a6d236106e567501231450b1ddd08f94d622685bb57b93e81e2264973798a0e86f9ca38ac16106b16d2680168a73abc3834d304eac92f81e2e64f5f51e9c751b105fd1e6da00d5b937b6ffb5d08466432d64122281324086611572959a1d3fa009f5a12a52b7d55bbb324b956c962dccc3456f0069b5f1c85635521b30e33fb0c376e7bf7a53b16980ffb6b4842b4f2c850d2a824c4f98c6c5ad6096e5d5e9039da6114564c78521cfd554e7e147a525cbda20c3355eeda2682ae724d86bb8694b69f1a321c6c4056939c1729ce7f4d93b1dd48533a62486907e595a3e08f4c7a9443023c72cec8e0af611647dcb9f7a22f487a9bc3aaba2f7308d0dccf91287e481d61619c05f5f659e89a3d109ea8c4345226e26c9b23fb395accca0fbb62f9acf85c3a28d01fe4f59148c85e76a6f44e2a76ad2b3fa551c7a695e6c3f1bd902b3e70556af9f4edd2e2f4ce08b3b0186a38c50db09b319516f563e1e986e36b4294fcf91125575ef1ff2c1125181b3850f4cdbb4aaed22f248b4cf8b7ef6eb76e887dfe09c39b233e14c8229593ebcc1a1cc729b11a28f58ee1df1162b99a6864a8ba66142d0669e59284a38445293025543d0da34e0cb46e8dc76c57645a94ba26eae05f777edbf9242c9ef77634c4e4f3fec2e15882e7edbf20d7126e78f5d11e99e082d94721d4f0907585a55c43fdeda65d4d75f013c6616c333c348335b8b92a97289bd9c719384c85855b9b5750d9cb835040a9bb3f8242590adb9b2d6dd8a6ed9dbaa8344d47479d6cc38cc100b49288ba669fd0335c345c845a2db7450646eea50cdd2d9328cce4b18645e0e542bc437bca45334369b5f46ab6519e4c1346f298412b8a16085a9c3987073ba6b081b4dff34c0ee45102d8a0c08c3ba56354ab3ac13d0465c65d795b28aa557702351fa7c47e45f0878396539d4ac73e2b02de33ef863a5a1d99d8542f79e6f50a4e34181d22d31ff3c3d53198cc215c89dfdd8ef9f413988b96d9fba91cfd9c404c6bd89031e5b374c2771c420dda27ce44ee71f2a0adb9086b5e16ac0d39b3aebca3d726180f244b559599b34af48f8ab4a2cfae491382ca60ee60d0fbc976d9e7d9d3fb24fd1a122eba169b0f7e84e02ad720ea17c96fb502405c49002552549040917fcc6d0b51475bc7cfaddb7630534720a2e778796d66f9ba4df7597ad840faf585fbd959be279f39cc2e4398ccd701c64c6fc2ab811a757f54ec3a5b8fa18ef827395e72cf1178f252b27508f00207f88b0f4d9c8bf56622bb50c9ceb5a08fea7de82b3e6f8582bcb2ad4731773111dc73f070f2ba63a6281a958d6b0a11970007e6a1642b4037a01f9b3800c5afb82489cda782760f22347ad40258eb97b33e78259da0d523406a96bba528c835d2545a70cdaa748baf1a7dbc010043b8033c94d2c47c33854798ac5dc34a1cbbbe73d9bb71486aacbfe4ab808d4e5444a2ace0fc08becc03f017e5476fa41081df54921ad39240b1e16b2f3115e9963ec12f50b13457c9eea4c772609223e1ef1af4b08f02ade41b0482edc74e4339062df0aea734960d0db2298d8d3d5aad98132a0f603c6d31e7d1ce0cff317dcad9ac0c2c113d43a7f3f699c8210129feb87c076232b96b8856649396ec6aa705d2c32ddf09fb0bcc1bd7fe412c446b1f63bb677a489eca65758f20f6c873feab33a501da629960403dff91d18d8a8a7357baefb229882647aec37d633846c430dbb332f7fd1b6875477cd1518cef1fe0297d774d552913b554a0a2bfed806fcf668fc9a3bb8d4d272f40edcf9a579420d727fc07be10f25b06d42a5351e7df7d22d252f56c3044ee5af7056347edce836ffa05a63817233b681aa774c594681f166fdfd325c64f9f165a71d1e757892bcabd006b9a5b7431589c362a738b3ae2ced6495ddc5588d85b273079f0daa380e032ef60ae9e8f8768ebd02aeed070fdbdfc271a94bf51a6be754c39d40b055292c2e197dc5703df2a5a835ad08e1176f3bf735ed855d578045310be9d8683c6a339a9caec01c888d848298b2ea5883cc303600f4ef56b864c4de099149448afb4dc73e7468f94d09c3841eb3bf4b339852b3b5efbfd40c069191fcc71494f392f8f0890a82c613f67e48fff859d193e76cdcb2cfc3ce258da29cd7d58ee3c39022797b5ee9409d4f6012a61a5c3dc825f5f88b6472bb9ec8d91e06e543dcbaac7cc41a58451498d6affdad07bdcaab4217593dc9351f2a24da2c111609cc0ec6bbf530cc1a7044cbf84e21bc3e6f86d2515baa86821aee63bedf26062dedf996e5c1426418bc5d4d1908281d631ca0ef9b50c195b9494d7883fd67db573366178a4c759edbb5daae9c260c77b2ff071f9696a718923304bcd6de83adf5842bc8483f136e87d57c786c2ef718b86607b11e6184e2274f47a64e345402b9c547374401bda7c6759bea293895e27c516f1c094242367f5610670cf7855b4dd2f70008350d113752d306fd9c7b2f7f6495afa7ec9e0ddfc818977485fd981f1490841b3d6b65c7c76e6eaca1d5f42c6d2df8daa061b75168347d303930dc1d51b8c5c5350b0fe56042bcdedde3721483de74077ac6120963588294f77dfb20d66b9d5f71785834ea512f269ed4c394c493d9532133ce7838d61d8aff873881c422c0bd69aebf6f0c4b9362d47bcd6d00130f1bbb550590d617bac5d4d221a12a97086ab3077189e5f8e4352e8d68c8d1604e1d2983ddfa246ad5e2a962b9765f43a97c2f70c0865ba0b3d9cba359c5904ea6ab943b008c28f834a68adae545a89e445f0fed504c132943f2920e4ce4c6b52d3b6c2ffc3843d03452c344a0fed185fd926b66e05697834586d5a5e46dc7ba1a10417216dc615ef547aa0dec83eb5c29a3b98461241d96e757445d8ab741ab1b1e4e49fc32086a85bd4267ff4f3ec3e7963a5bac1a03ae01bec132721e3ec99773227ebf8f43c5b4b5964018a8403ebb1ffe16e31c4a7e26e7cb0b460955aa80e7e739d1f614dc623058e9a82d43f9711c471aba9c5d41a9e258e0b9802585eb421f61115fb0e3da8f839ddc465c9164c7b42e342f3632a7783c831736de4deeead8ed377e985573f67ead15703864a0d7f972e901e0b6b909c484c6357e8b61921428ea29e318607de0afad6a5e65722f45dfa54a091270887e182b15ff2422649f7ae24b69dadac614d740e23c04840bac7664f222ed9d8d6f17b3d041f64b4fdf33ee74d75ed9ec6669d0f7e876eb1a8e10138cc5fe7dd90396658b8a8ada81635e7c5f449f77d5380f43ca6879c3455bcb6152fea6fe30fd7fc0ab0556eb5463cb95a934b0896ac788d192f228eae9e85d2e0aaad6c32baf6c38d405f57b2b4f7fcbca54bda841263ba65cde92a1e127549e548ff766a6309c1d3c81317feb1f4549f1d80b47df1953d0c01c96742646947c8f235a1f0ca2ed5b2fb294f71820d3d3581e6beb2104695fc9a2bfc5c6a6f99cc8ca95719798efdc73333160a8833df1e04b963f85b9a5d77850c54aea80a02e8f19579884343d515a67aac6873d5b90bb73dc61020e71a644b6b1a00f634191f37671757e6301e7378b4e35e4e61604de6dd3dcc752112dec8f268ba10dab8d52e121ed79c9b2a357b23fc6ab590ea0050bdffc844c9da5ef94e5db5f3db331533330125d41f74d7d7698bd1d5e1789a9c3fff32761c5df840a7bc9ec6fc5afdc24505849f0a2872cb4f6a0c6cd793633d755df4c571a680918863f23a8b6b104535c34cccaf83118745fd2b01034ae7a862fd6e3929f62a660e9054f7f3bf797a1b5194bef75e3ee3e89f2bc8e483c5ab4014649769467f054d6ae1ea508d6a7a395f68331bf9c3500cd2f304b78c29c8d2623097c320018ebc06464699e8028d675835689cba31d734075afc1bec51b317fb4b8f361d122944e6ca1c8f6d30c31ad2747a12de05b4429157fea7c5d2666f6cf09239660272c0e789956d38838e29da72980235864ba4a7a0eff14cd957a35042a20047d6e912c04ce659251012bba1975e15e2b50959af2a4a1174255a217452b6606214fd8e61e65772bec62116cbdc12a1b88f1a13c3886596702b5d7e07301ad5e3ad198a49950aac25575eb9b2ac538b88374baffa22c01f6ca15aba787c69decce826738983098e15910fce4453b65995d56293f8c2c83e1e9efe09c10b99b2d1a59e186c21a86e963ea0b754683e74197b791fe2912a2023e0f9d9c6932d69bee4111e11563c2d4f8edb2461e1a20ec9ba35b0c96d8faddb47290f8b7886981c877ff45bd1c997e5b136fb7c91c0a51ed420ddcc1504ff869e9447fbda2501e1d82bd1da5753365810aff2144a07a3bf56bd60568acc0d2a0100b7ed5c7b6924e79d6a3e614edf2f52762e1a2f5b90cb536433ca61912de606a0d1995a87100265a9d549e5644d0d8e2dc5adf7dfb1cc26bee16c7aa386a3d5531c93ec868608b6d30a6e65905cd9bbd7e4d2773aa36f24f8a86a90d4a9c0d2e1f5034c46bcd0b9a72f6c9bdc6b8723e6403142ff618b34cd78a65728d8f12b1bb6024f11d5e477326d0e95a87f193af87c207f296c44fc4c1829473c946f65a13ed8c88279796fac43f8edaf9854c472f8a00e4b6eaa6edc325afe7e4ee1fafdbcd48aa2f7cac74da0a90aee9123d0cfcfffae4c3010f0dbf6afbd03e30a5706f122055e6206e5f1732b12ee5a84f3c8170c062ce0310649f694db006f897443e401afdf3d00d0d8f57be485c727325c806286ddb9031ae685e01ec9121caf36820712773fe4dad5020d066964d5781424f288ceb416bc51ba39f039b529e39113b9c78d113b86e132d16ce8182db654d796832580d04f66e7e236bca98ebf872c9ccc0f2824342add4507583ab9a88ba42aea9cde6508b3cbbdafbbd48abd392f91b7b7c4744b583d27546d101e978cc183f71a2c978160e276d4f3aa9b0fe093c986e634df180798624a0e1dcbdd3710915cfe2bf8bc31618728dbd53f57b489c9aee0cdbdec3c4277339281e7ffa226b98e70219c9931e17e02c7956d578535fb9b76dbd37c37f9590aebf71a009b2c6578444a4613c2c835824d722ce5746367c2b610a2be7a9c618e5b595f4b8da7e1811e23117c3b20dd8c9f0e07c3fe3627955574a21d220c77ce2f28f04afa2bfa255cf60ac305361c3076f75fa18e77b994c6dbac54af012893d6043223ceed9676d45458b42709ceade3a6973b135e112660bcb1729cdea005996e005e7c2aa861c6e0d9270b3e1f558151f839f371ea90c58ee986420d209e1d9af331aef29b6125d0081b77077d89919ae9f95f40db5e5433e92803fb268aff0e503405d20d5e15f166541c37788a78877e7c8b573ef7177c8a57cc0620fba4c9a4c493f3fd68f4add1d8134355c798af7313b46ce5f4ed7042a1a9185885615ac931eb14177ec40a4a80849923092e686d1b6f65da81d563dcaa7a8c3a7a39d25e745a6ecee16c4abfd98dc2d7e110513418485c71b98d2b0dfd157c3ef83940660af3798898695a9a44dd1c119e5d9a13b669a9f9d5c65f381c57e20ddac5a82d3585bb7fd82fb6e7bdb050b168b2aa751fee7c68b9d2c7fdfe4c929fb966eeaf31c2f5bab0837aee50e6c315390e4b8d94a4c8bb77b883489a891566cbcf05485bdc32b3aec7294ed54dc7c22bbbbab4ac4ac91ed86c621e261a6cb7763253da3df6fa9d51319f34f0add2e6a7d08f04c247f6a69c7e85e15e3f5dee2f647c454f3e1eac19004a43f79fe044572a4b2a53ae1c6a5ed27182c276ae57d2c3da473b7ba77ea16cfb31ba183ea23e7729c9c60a491cd5286705374d7546955ea40576f096bd048b8d2173b0db325f84a94582c72eb74fc980e81d2c5b8852426b568c8017774208a7f100f8ae815126d36e2a9a090e896603f29b37e3880fd899dd43075a4c1e9061852efd837644c8b3b20379228f62bc4c72724ec6050ec0d8be31d10c3c17c7260ce4342a1c7aabc0f0519da821f6de28a4fca87566246fd58d4a2a58ba1816872786b03d64aea8c80c168b03fd276e4bedf54ca2ab817e9a877d067e7486856b6ab01b84cc73d7ce3411d15c5fe66cf972bf39f803fafe2f902e58628d90f08c4367770ea79d64f8b86dbf7e35a43e6c24adabaef65d059df8232dac33745c17e395211c09ed6aa4d497eef1bb9e2cbea95d5debff872c5573ed0424bd2646389afb80959bc03b20e003681323f29f37132fa3eda3c1fb286f02e6e62d18332fd1195b80eddcffec1f9f536610a8f85f616c6b346728f94189c42fb52d81ddee65f2ac0dfb7f0ae891b310fd29494876832ceebec7d9fce6921255d08e63c9b91b865b02f32e5c2abd45bf364851f0bdc7b7b28896c50b831e995d7ed304abe9f3324e60c0d849058ab8beded4d91964a4a173115165cbace5e8d4fee969e25d748564d2b869f04fe479f4ed03a4d4d128594e8b49ef1bbda2ba6f60e20155234f3bf8c03925ebb4d9e7bf017c174082879901c5dbac4288abe0a696840b10c80326b30f142708c93f904dd43b20832577580fffc9033426d6525d21e702de11986a0a8f5e684a53aa245f36703cdb96604b377505f86fefa86fa9b44bcff5e028afde97e8afe88651946c60c2f524d0a7c6de9d28d78416c6359f5f17f92286b70946bad7e631d110ef0eaccaf3541b25e394d024e51cdc85b69b40190c7d6cb2b11e676dd6a68adc6ccdbd597673f9582ac44e4b1e7651bfbfbf76331925b48da2fb4d51773b3dae175c1bfd92d670cdcee1fd340c455fd34dd14f0f10fea490baaf77807006b323c244bd7c2279f7e2366fdcd4f35ed1bb25603d6e7db0d55dfe3e8f941d6688f62f88eb679c0731d51ad910692750374c2ae06df8873a12848559faba947695f8fed7316779b2f685a2c698b89631bc9a69465a1952dbe1028f52523c2684b170b16432ed6925d510fc1ee30a2341c2ee8ea09b341624f9cfac76c1e1b67cf0ee9d8f7a313f09c0523639c82f42f362b2a4875431da8d887fbd3c9ebd8c02eacfc1c69d6ad469c0b21c9d32446548761650c51d0c5ebdfe2d1bd865a157cbe7a4044b0beb7ba4d59d6cd4ae9f7ba348c964c7fedecf65132d85fafaa98559e4d81aed4d2bd99c93b594b6aa82101a00221e12f0bbf8c48f9c372f233c1ff3c0deb6f9cf42dac728f58666fe320dfa6975b30dbd5ebbef6dd89c0ee9be24db7c9b4cc36b822360595fe4673fd326880623e085c867f1f70566b014f18c9264ec9ccb9685e3211cd45a2e4e6e32184eec0b98bd9d0f5c9652553c93b2f536304b2ffce97823dcce02e42b01a564e0f95d71cc7b7fa9934a58817222840c024e60c1b6becec5bf4ddc8068638b411c0e32f017dd6bce8c90fed19c7d07f063184eff3c786594d3e5f305c44a70086dc9155d7987d6a2ba60482e48b8980eb8071858e6f29e5928d1405aff24ee2097784f52b48e043cde936757f35821a5c7e4291a990b350fbca7914bccb1c875db996eea23991db7f8e7541aa71540a2d89cf335d516e24df1756b44eeed4473e0a3e1a7505f1c0eaff9331a794061a5e278ca833ef2b209f806e477a615ed4ebd0bba9ac0c592833431b93bec78c5ea7608f32f08e9aca5a3f63ca6cf0ddaef41190ced1e3cebd6c1f9a10ae653b09b20621ddc787070c16a2dcca50f29b9e82e706881d85ea8ea5e44218319f3ecf86c8847c10d6dad43f1db5f150bd0dd4a9a8a7c4a3f9e54285447eba92f66b350c2d4c7975f4c24adfac160608e537c467d041a72e2b9fb30fe8fe8e2029c3aff7b6def404fad16f281d2de1d97323b13ff6ed53fa4872d7062371414bc45524903dc5406ce2780b49a4778229148e8a5bda56b43512cf187bae1564ab570adf711abfe09932fbcbbf0805ab458d07a5388f93625c95cd89d1f68236e14eae90fe12148441c46add74bb7a7242cc80682c067841b6e4636634a0398cc2774593b63ef71966e4147b2555df18574954dcdab699fa4626972b30553c0dfe85a5c26fbd6db6236d516e7dbcbb5c8fa7bef5f504e511dcfd5ac235ffe91cba6709acfe01d0fdb946ddabb72ad433b0436a2f400217cac6ad7d96f7e306f238b95d11513c18d42762d597c0721e0f9cc2d0b26654d13b8a3669ac14452e5973db66cb4ff3b76058436b4d11e3a6bf1b9f79332623ce135575982b556c0c8396d268bcb1f31960ceaebda4dc7904ed5ca1d305f1946416269f131ae08d7b96b79dd31c55b411486345298acce19d4c2c486b7648c0a88aa7f1209d56dd0ca75a3cca7eaf29919c25043d45c9dd38179ff3bec2b6a25ed7c14bdc7795b1c1ef575e3551e7b686275dbf6b1042153d44463e5debd3bee2dc2756ebc329e3d3130e3bd2b460c448b32f625ee790dc6b50d5f1440c7490cc400dae972e28a2b3bc234f190827c4be74ea4ca6340df7bce6c0e8d87c9ba5b53b0aac4e0b5f39782fcc32a9fc96d8e6d6a1c5128252c4b7ff3bf91c89bfdf84c42aaca13ff954547ff794c5672dbb248d64ebc933da533d0669785c22a360b3a7c15d62cee7be2f642039a3b740c04e12918ebaf582e2d5064ead5f6d1bd2936877fc62c967b7e88890eaa5b21306a5c481f7bd6c7a945c428bf08d3a9db21aeafaa9686322ab2c53ef6366399911a1c2bc48b6695377736a9b83bdcc9f50ffd94dde04b4804ed53077de528be1523d53a511c12faca3571f9aec2d55322f91c0f37bea29bc8807247ac1efc0b78608d1740c740d7e6dedec91064622256feaac0ec6175aae6789c1941afd694f8f60c22da3170b44c7ac824361b36710db576466983fb1a19ca85e0fd96dcbe1837474a7b23f552726ddf102f4f6feecfef6f306836096ce9bdb8ba65e876395fbfc7257c15e774c54aa4408cc6c365a34284152817d81eaa169122b9fe943d6b0484cc2bf9c0bca18357b099ae14d0821df4bf90dd078700b2930d193dc298101e8a33bd3dd38dec8c47d3769abd9b58f5044227b87ba4947315259e62e521c6f00d577bd94330fde25dff6c3bba6c1e05a6eacff94f085256d263085b860cbddf98f7fcc47c6fce9ef76bff3ccb34129a6f506190d1db95642bb0d4c50a7587f1dbb9b98c92c9a3c2fd860b2db73258fe97cccd6c398f6a1b957ac42fb1232e5b31af00bc01dae0a7d1a0826ab85bbf84467065c3eb050dd7d9687107fcdcdc14b9d83cc51dc684a96b8478507d183f556f58bf9d2ce98b2815012c32d58fe5ce72e7e5aa274844af5e5dca3eee11c0effffc79cf961ac955261a9839bca70665685f15480aefda6eb02820bd31e1947a7de7098ea844a288569aa717516a72e77db91dba1219c890a2a9b44f2874bc92967f82816f9fbe7bc3f25643413279bfddef49513aec53e5760ad86a42f72740556c570d525745210f026015ef41ed3d1436bf3136fe45172105707c12f711495410a32822cc14d38b21c2cfbc3b668171b557e8aaa77349f25f1a3c2c8d055490eb607a2ce007d7aa0f6c317757046ad94967faf0fece55430965f223f5f7a6960afe630238ee56eeb807217002696f442576aff4ea2ce11e74ddc4f0a8ccaa0251ec21fa2278821004613a564aec4f1bf1aed1648ce60d2cb383b33eb6916436ceda43e8a24170f827d1715a659bc22e8f953b9b107dd8338b59488fd04091dbadbbd117f496ee9fdcc2f33d14967cf2efdb102a9c0da0facd2629182172c10fd52ca377ce8d57dc914426f590fa948cbc438ddab35562d93453d48540192f84408b3af37b46edad1a0bdee5f93f900c2501372f3fd4d7b3172f1d7ad1faa9f65ade56c94db6ce290b0f35e17d3063f16c744b510a4ded9bd09cd6636def79729b73c46715dbc08c244eeb1f99869141242a621b0095007cb0c3f670268bee97805b3f65b9a0040447e0dc50b3755e196a291381fe738ecb67a00d0ba7d995fb54afee0e8d187834b4824f62e84f2343d5aa309a0d256d4ef436d35c6fe6bf66e9f0a80337bd8865f194eb4b934cf66567710bd46f4c1594a081bbe1f5522faf261843445dbca8c4b49eb2b05fad589760c50ed60da081bacb4076dd791660e90fa8b153dba08aaf923782db6c14e9cc48c56f5939cd706af12145bffe5ce2aa795c8684f907c3461901757f03112aaae7a02d56cfd35779bca6180c4125ed168cde5a5f3655840a4488c4b8d6acf0a41e8615d967eafb52081ebac6adc0c61bfaac495e72435bc921fc049d2c3bf6317a6a5848ef8c3e72dc8ec6b749b0403870bbd69f174d57f4ecf2b77b49e8c4f8d81862a87b86e3949231b15b1ee8ccfd4386ce8d2e7e243951711a6d5b2f6139a7c46b51141fe3d6655caacab9c1a96833f1c802bdd7719a469204b2ecde0712a8996b0f2ce6b22fb8e31e4a710ee6673c193e2583f29b4776b31e0d06c2d5c0c748cee4ff3fb0a8a5a1e8529a7e3a134234932bf455757cb0086b90055835b223c27875bb43ea2ee0abaf42939bd21b2ba825c9ebf954f3095ea7783e3af1ea97dc9db7d3b5a3cc593e5393ce6f7384bd3665d45add681f5833aadd1e1f3180c9ef921e2762ecc74387cc71eb49e7df732971fc9927dd6e7c843bc5944b394c67fdee6ea8e0a60387487fc10d9100aa92137515b0f8b31d0640beb011a8bbaebdc1277f16d1f81f6aff34848f8c4d2527e4dd1867bdc67dda7dc1e02be1beec8f123aa6c3b89987f3688b01e744263e00392068e4bf0b038da1ff59b049df1162f7bad5222fdb087cc49b95fa8631470095cb3c5fa693c31fa8ee719499a29f530c8dfb73c0ff025f4fc7880a30227d953e1f7c23ed218418837bf53bdd904a8d6b44fa10de0c43006a87159b0a4acf503e9e79472987b8cca3b4b89d169a13bdc1ec6235efa3790b2c125e8c2f67d801ae03047870ae4fd6522e1df4718d391fb862903a1ac45bc2f95543632ee80137a4bc4ac7a23d0774de865b63979f0a64a091cddfda99a730a9130ced7042aef8962999efb1204ff5ea9783befd386735059cde79777cfbab528303240f3cf4ea8845a90d38c17a17ac4effc0c795ffa4d24e648afd124969fb46ea480f41685b7540ef05d172f83437111e966fb5328924ff98c3041263859cdbee58da03afe96ab9d813573159772cf5245dcce669c5293f1ab4fa7b845a7100bd155842fb79a190ef05925c5c4e39bc0ccbf104467ac15571c0166e5e1d89fd9bd351bef7ad1e386833262cf421f04f8c0319b04abd3189df8ef264afad1f0692b3726194812ce3bc84d5a3d95355dfc4d6cce9362821de6b59cd51bd46bac0dec8b6d3047f02b8f137a65a1655408930cfc01a7c748a32b5bc06fb844424863f2f4fec9379bd6fbdeb4b91060150a02c0024648ad6d31cca602b699909b7bf6a376442dc9e15f9f23df72236966ade9e7092654cfa462d7d5f12f1455c08104dfca491788c3ec70d0977d494e1d38c1305ff28f42e68c9da73e445ab9949fdcd3198c025762785486a53ffe3414c2ba7d7578960b6d4951527dc232b1153b767d6e1a7a30bea002b0c7faa363bcfbd609e0e72c34e812ea887a4fb1ee1e632c684c747e7aaf0a42d2e02e7186bcd7e0370003531c9149bca9bd2cf9394747af5f0fd29feff5463cefb4e49b78737752d0b35a490f3838950e548d62813d2588d5bf768cccf55e72b33dbad9d483dd3f1a8a7883e001619782a43ee9df1faa2a8ab413a71973e22aad27200da4f533c4ff22f9b8bc0064aeab3baa02580e15d4892f19d5223e7b95a182e0678376074b6712512718320eb1c0b167c3df53afa9a5045ea6eb94b53fc21e88efc2fb38cda6c180110c74ee3db1e06eaad0d29b19e51385489f7f90296dfd48cb9487fbf4f98279da45d169db966ca754e0382205a1626ecc6471704a76a90d43865deaa7ba8121c4d02abfd0cde7bdd00be7d94782ea2179a252aa9cafc92cf3e58b6b6e9d5bc93cbbfadfe88af6e4fe4cb0c2a4c9e10e3078782982ff7056357b994aabe8f454250856ce4c60c402e5499dc1c8e1826a5a6c284f0267cc582ef3f796868ae641af47721bb3165af92f9592fd0d9dca196234cbcc7e0162e68eeb1f88c35f6e7ac7eb064d3ca9f0b66ca8de34fadef48558e871ea24962e28ced4b59f9f6a5d0ca43764fd5b394784e6321159d511296ad0a8fb6911cf9b8126a9186a76c27278a1f6742ef5f0873b05c00da736cbc701850b7c3bace15728f40c3b3588c283fe193215ada49d21b31216259f544e8f440716b06be418c8e95a6b05e2963dc5d1d74b7e51672e65cc46d77e0ab9d986f152af4679c3a2450b759bcb5d25f8122d684801ec83551ef9e7c5a4074955dce250bd299d92c006d76ea121fcb6d161b305cc58f69bea0934891db1072bb5640bb4c1961cf8117d07cbe0ec0285921b4c7beae1c1f6b3500bc705a2201ebf2ad8d714178e062cf89bca7a096673bc9bb03b1ddef958ebd8af7eb3c43ab4106bfd4f2569e69cc6c5de9f707506301bbb0928a78c9480ab1d100bedd05290e6262923661c57fd3c8aa79f18b069dafae044a957069bd7038650d09e563d8d82e858d7cd780405d7a897f383fa07b13994ebe2671556b47b48f40deb67803540e8246688b5f2fe695ba3ef115e5bc34ce348990336c380615f8d8af5841e0d890cbcfe485ad1db9e8fb825ebfbac3217c77166ff047da3bb8405e034d3ef05162e1b8712ec224ea90842a772ac29e3894d88924027156a183d7a6ea5e1344ce36daad7fc904166e9d678ebebc57e3b8232cbbb2f8edcef98ff40c7777ebd32f2aedec9a046f21f4ce7576dca68a290931a6b49bb13aade493be7f6b8dee2e69dabc156a6eae3a364b4b0812c0aeffcf3bc142975cbd044cd4e8589d7b0a7bddad8d317ce8b63321ce813977835f4b75969735393e6eb6b752a96982d5449d3092606eadb31f7ed13780a65114ba1568a75d60bd0b45569fda509767171c3e1bcdbee171a9ffa011c33740433706d53259574bb6925fb74ef4981ee25d50a8e6163667efe7f989c96f1474b56ffb70fece23e40224ece3d261f4fe9d673fab7336ef23cbb25914b75b0044e9b7bd5ff9750d478260334493306152745fed0135b34eef4ae517129f5278259c4782005fad24f5e323679fc196a06a7421287d9bf83a9f92ad8699ce7fa98ef774f0e64bbd0864e74fc2b3ac7ce7aa71832c5a72a723255467b7064f54ce773eeda3a17e36c1b93ea9c1f68e3ea9a71d8da4b38b11658c95a27b040528cc7b13598bc233258a74ce99a9d73fa7c408c67c1fc3eaf5bf8f5c848904b7fa39160e46b546599a11aeba2c8b0aeb02cfa53060f6842468c440113370ce98d2cef06f7a8986b1bcebb7eb640f1a94f24b635d9f75107376651fa96a7ab51519ee13219106665ed414a8cee91e6be9156c6976213c8e0d3fec4e7552c57fcdb2ecf852dbfe22107f5542e7d651194232daf90aefb90fac2e709c1b24f2d32c736429cb5b0afbe4412eb2cb76db32e2cdadb987bff0837f5ddfc42701a636e710817dafecbe4f4fc94722fe2e9991c645717e47f729b1ed44ece49324b0786876579fcbef8611e82c7e809e4a9c3ed4b9524038a0484a1be21f82a1877d307cb23e5cdf9b5278b9e710e9a8a488647e9af7404b56a5016eee1fe58ddbd3a0aa67933596088d47d0db8705aa138c672d848eaa28e351fe2c8349e168324fc4fb7ad3e91d79e12e387508837ec15ec662c1adb2528293d35193158635a3b8ccf16fae2c7b572ab6c44490a4dd1966e25a32d85daccdcf3e3df1e3f423019daecc110fd4f5360d5649e1c5304e17eab63c6bdbc9bcd7364e20da2e9bcbfc387534fd081d86308ddd7576936b09b3f31959c760240bb0a6eda213ddc1fcb3670ae10daddf7e90b366459488cdb498b8cc5712e7b6e0aba90e6cdb170d38e29660620654f93c3032036efe64b550e4bcbf90adb705d807a1f05ea220b899a86715ffcd9d10ac90bc8973a9e2f336281b340b39ee7ff24ab31b0440d02b1bd37ce6097ef1cf0c2f92c4101db1f9176f9bf2e3fb2541a96a0789b6c38192894da6084708b134cb30c9b027cffff895c4716dba1f20c7117b612f1c16ff53992a7e6b239a5b4ca111fb2d69d3a352245cb9414d7bc5640e7e31a1a876b01dd76eb9da5b867bfdff10e27332e287b97196172e04da900f0c4d1ce28d8930c4aa6dfc98847e6168d6417e4bc4c14d2363dbe835a9472cc05a8f6ef7c973632899a3fa1035873bc07b30841a8c28f54622f27885c2751a4902ee6a7e6938286cbe0b180dc9944fbcb0c8440a1644f3a8e53d359f3daed3561873f4b0879ccd9ad033803f911fcaa96fb7ce06db98edce33e4b9821d071f981b29fc4b038c42ddf269b5186af9e04ce1144d8f1973db8316884b9499f62e44255826eccf10b5222cc1c2bb4c7e8b8c813bd548d32d33af26f642e62c008ed99f24a5fa71ecd1b2f592eca86221804d9a53bcb79247635f7b5ef19901c0a84b4ae272b3d477706ca86d7593b70521d1086c6421d4d18f6a9364f38b5ae79f80c706673b5363d512cd0ee8e7d70b3375fa1d28e7db7fd015347d1b37af1e37a89cfba968aa8a91e7e21f3d429254cb310e6d1d82eafd10094b457c8704e29a9b486f2d5556f1fa3b55f4f0c2f9d1cc7eab8e6dae4e0c20a9eede665ab068ec330a933f4158951303d035d830f06010d52d5fd0e2c45274136e35f33db2800cc680044fbcd686529c6a43a4bd4b770e5fe0b4e9d1a1769c504478a16936f4157a43f259af2aafc11a2d31b0d5569d178e5ab723af06563012e9b87151e83e047419a949c19821f4878c91a68d8506d1947108271d2aaf327533e33200db44974668c44b7b77524f418aa5b02bb1361e5e869c61b02dbf2f600ba4f068499fd57b13c598ad3fb2f69f148eb24256261c0f9e5bbdded5a74cdd1f967d2ba1d5fc7351ec31dd6270c2719be135b1e9811942dbcadb12137923122ee4880c442f4e949ec4117fcbd55fa037b2980f426abced4bae6e65f4e1375fd3957e52203d80088d792d56d4a48a9dfd89dbb1bad9ff69d23cc79afe2e6f828ed5c3734ede76a596fbb4030fdc0b1b8dc6d7e3898feaf151e02169436da3125ed2d899091f26a8f0cee2372dbccf41246fddf58af1cf30774c38570cbfc1cc019d41ac968bf988ac660f6386bcb006d0a1a05e3b452511f5fe8da39e4a182b51d9cdd876f1581fc6695ef3cddc4d4fa2355da578ba1a9d09cb45c0fe909775b3ac20e9ccb56e97baf0bd16657b823f35360d55eec0df2d337b39223da05e97d6a43964bad3f04a0cf7840a529b2a1c867ffd4cef454b09927792f746f07c5e4c14d3814313753ed788b6e367a30feb53ce33e4a5ef4145541cc604aaef601577afbd3b6a87f86ca501f2aaaa023050b28c0bd5ebfc8215b52809c95fe6e1a1f44753b770a32da554c1afbbacf5aebfbc9bba1e570bef8eb23a20a909f9eda666155de1d863224a03a4839ba387c6628db9b1b12a837ab85dadfbdf79963d5b9bf7ed44254543bcd048ad7fd28ac8b5e127fdd79d4e9e61fc2df1dcfb78c021d0783920388332052a2d314c96755dccb7cc53ab9f4237f4b6d0389b05023b90f52d000334b5456af4aaa47034e4c656dabbad92aedb8ef60f1c37fd9a3ad5d967300abde31e6fbdf7c1b26c9376b6afec0764751a75b3dbdc34c77d984055210a434c7ea687dadb48e47c92f048dd0d47b8988333fd7d2432d008e611710dda240a5900c7248aee878b65707d760423df3e167f8200ce78e7d0a912ea631771688cb68afe7a2a4eb33025d58466d3be3b2aff16fc549c6f5427b029fa3eb2c929bc4eb0dc09ffba55974455c9b2b1262709ee447211be55764bac880448892b96a122805453829cb577303b8fbe5bf23e535f0a067f48f9d8bc4540b81410af86043f59e0ecaf1dd0c22dd120ac3c43e43cc09dc04f0a29d2f945f300ee639bead46afa0745394b1b445275830d7b5ed23e15c752594c4e3267ada4090b40959c311df148579d06b94855ce23c70026fa9d9c59b95f0bfe16c8499e0580e4b3ebeaac2bffd9a8e7dd812e77fd706dba3c5113a48c3b5c4360371b4f6b535bb73ee9f85962498a5d6c46f226538b7b4b4a365c82511842096a7e50ed0dfb8a3cf735e9c672f3f65e4613780c0bf0f156b0eb80ddc9003ef4fc49f69010dfa9fcf7940ec51a2011741d1754e805d1c9faef99607df2e03d2674b28b94f7649b57df0a92d851ec96c3483297542467c85b85f1f02248680c61d2a6d58c284a08b14f73d4dc3ae0adaf093eff3598cab9ab722ab2f67473ddfd326ba11e25c81e5a067941de16ccabeba8a4abd5a6e3880202e9dedd8d0c3490fe63d0a708d227f069c9dd917ee4256f0e334eefbad1148bb823a265d43cd6bf27ca498a5c90d132032766ac1e42fc3b4416372dcba372abe939e7e807c7770f57ac86b580e4063e06e09e53062512729e7472e594e38f38d50b02d75a40f61a83d76a465efc655ec3b760565126f4a441cbca61c68cff258f4ff6340eac4b507228d4174aea67eb3bb7cea61b8719b8275538a3b333531cc2eb79966dbdd2f00e14403b9ca7071c686ebb962c65adf2bd8f938361768d214f33a447d5365df423bae28d4153c8b9d6cb981de2c6be55710423c1f60fe07725568455d20b517188a153d41448429f56ca313a0c064f72f83b01e768e82c95146df707b067be4b5e6533db9239d840dfdb17c12455faa40da5ca250904c8c97e113048f6d73e598b63ca0902b3f6aedba5c815b588bd30883417d2157833a8ca1a9997e74f1e6391b2015d6ff8049f7b1092b60943dcf6d5d15c3b887cc6b5ae2ef84e1c0edbfde73ab49a78efc713af335250daaf26dea15670bb201457104c4c68fb0ab5d85144d9b52aca85470d790bc15ec3a7f8ced85ca172cda4ff52cae9f8a294716eed9865cc92af7b89c3eabcd5c031ce5787fe86fb3c3ab13bae91b89435c7ae0a593c56ff86140cbcc119226cbc287072c8330787eba0acf7f3036f2fb448c9226d76b95d56b29dbf7850d3919b8f554d4f3eb0ad51f94018edcd05ba37d9658e2233aef8d5022dd70139839f3c667d0cbde8c35453e5c1af2937dedb35868284ca0f21cd38c71ce7bc94c78f9ce422ff677a5a0b650892a1ff69ea81315d9cdc5999c9f6c4878d80c20786dee7a352e459b5c3f19fa752a39875b91f24f2a4a726eb77c00d8cc763da22a8a7fce42cb274b3d6cdc0f96fca6411154720a344aecbfa48ac3bec718fe2bfbcbf90dd7e5b060c6ffa1944303959fb7fee4c88dfa0398415b9cf4620267464767eb8e8d26471a728b54c28fa7cebb6fe7869fa47b9af19577ad89ac6b58265b4266e8fb4726d23a8e2c3d22525859fe5a701d9208f813cdecbf73abce4930105ee55ea94eccd8fb3571eecafcef61ab425178457d50b0ba51dc6582a6f5d85a54831e1b37756e47573877898154f1c1834a55b3c6704da99cbce12a6cfdf295cfe5436c33141c47146dd3026ac08b2cbcaaf528dff06932319d5520a50a7ae9a1b4eb3effae6d6bb5e4c2eb0dadcfd326435a0e50f0fcdc3579d5e7179f7e1b7f34458539c8bd63142dbe4fa0ba74a615908267bed157bbb0f49c76177c36eadc71355da0e3281641daf3a2f7eb72c9cd4fe384cb87814bcf7cdb902aad7557f55c0a00ef9b9a5e59ba38fcdba8e05a7f0ba553e066ca9bd9f7193431a2cb5eb90c48c9efc442c20e2d7a8e2909729ca4e3080f7827462d371fa67c967b214f1a62c06a209f84e2dc1f1b35ef9b79faed1a8240bba76be571a3fb450b4c23978669ac2bf2ba88bffe7187608947abd4cac3355eac3eb0bd3a215d0bc5d1592a3148e0c23130667d3244ed9f7d39bf3070521987a2c9e41e40af0d1bb91851c0d6ec98f5e3e0763efeb277e0af0c9ee647fd786de814aec8f7500ed41b906e4fd705c5cab20d3a3730851f87cc4c6334734b321be25dbd35fff53aab14040b9e798671930deceea0cc5a7b5ad967744f44c0ed71e72d815ed58391df51008a5a06cc4faa263ae6b2d6e6aaa7df878eb40824c870783015e6b28e336fbbf612be76c9e388e2e6aef363bc69185aafd9fdeeba7e36a882ed5c68a8ca1fbd28bdee7a6b0429ff1a5deb19cd99eea2272f6dec98f6b04ffb2d0f422e5ff9dbe7c07579b9d424609f380eb2d0efb3c26ab47c36eb2f505dba66612ccd00fea4c5dc8b5c50678a61a2f04575649af6ed095930fd34bcb3fea78c55370d0824d78241f2540a8ae956e605658b3a940702b91eadec3fb4f4d31ebd5c7d3d248aaad97d1847132ec0b4893d0c6bd9d5f85a8fd28d33ef3b9d1375f8894b1fe7b408849faa4bc1c9195812f0b0ec3f59ab897c59ca21da3e3371beec299ee99f5da8843f5c50300d5162fb914b270110caf439ea569525f5f358fb790f06ef91f599bdc0851a733ab6f2108b6caf3dea59b39e4ccff602843ce8b31b4a00835deba56a415f45a51b74fd88b4872edc322360b9ab207f5d2dbe2ff3831fb31dbb5f57a4dfb62e22e2db29b8b1c4f85d91bb9cf2b0b35f9176286bc83c5e907678c92248827a95b108b53b567ec127943a53a80a0c6153d52cc2a9b90ef5f1d284f49932d9466948346de2ac757c37c2e6835d2845a8e42d6ae92c1a2d527a7570bcda6ad3116ce8881c5184f837bdba931825c847732bf59da7c17cf41c63e0760f3538159f131739e1b438efcfc7cdc142fcc939b4b5ec85fd7943e6bdb5dc42d6213fe68290cf263918f9d8e36dd517876ce235a8525ded59eb39e394b143addd51ba15ed50e569928c500b571bdb30208c8603d226d58a3a0a42990a7dc7324a8364c196fc1f0ad5283267c1cf6a752993c3ec88f2162ec29f0f969d76d7bb9707cf99bdf58d439df9b87c360a149b602771553b8fa73df46627038adb5ac83310ee490566956bf04dba5b1212d37c8d04f6d0cf19dcfca8725760ecd5e38925fa486a8593aab1a253219da28fe72fd477cb2b373f66bf256263f1aa490cd11565264e495c7bf166bb8369a99fa93c9ce3795f067dedd2f73095d254f621838c14c9bd51db4f27d3b30c63f2ef763bb9c3c21bab759ada76ace392c57e1b41e37f43b6ed755352e48a4af86be0a826006323fccd6789b9cdec8afa5858e4434ffa0ffcc844c256853e2fd37d48bacd378a43155d375390492a8a192e3cfedba4e37d43e74432f684bc9b7832b3234ffc909fb2898573d436b94a452221b28b6f17deb54a873efb86215bf70a58cf13b27a655453d6f795fb6ca3bf9579c348e38b1fb2e7824622b6ddbe149b250a51085199fe2c4b94cbb19091b9c8f9d44885d217e460b54c8f7104802a87d9f81b7c206a6b34856923c07b9dc299868bd6b3088fc46c8a421cebb2921577c25b2016b5f9351f172bdfb30b29d5c2d304c90c8787b5a18e07a39450fc74a4ba60d9356c7f1234ba7a8b3d0a8ed32e400dd231285dda11f2225adbbf63f14f03e84fda401fa368856e49584e61f7cbf036632cefc91d544fda31cb9105712ea188e74e9f17b00e9867a39566824de4cddc87e8c5e6b03d3d80fd927dee1aa138d758df30f23d6a593346a1ec471c7e3d6abb9e9e414e29dc4305619b48464ab2bbd6270881fc4db7d548664ad6546762128b0fdd762b359d4acfdfc3c42c312ec354958b3b4fb05cc42c60a67f2e8d0ba3576adff788294d5d6da8ca12abaffc8c6bfcaf92e2a237509f84fc04f998a5f7c9578d21d8749c5b93cf5515614e59afe113d791d7beb818ea0c59661f70831ee3dcd586c3690de75083893da694a440dc731cc2d7ef2ce823038f1b02c22e0c7a4d1191b7d0f3f7c051cb9daf53bd3be537a71e8b0565825dea191a3a13b737a2f101658193f85d8cd59871f96f3b2aea5a977150183972c24d98ace1647779c1df62bbef44f8cea9df469985fc636a946408fdaafb87c9368a0f6826565</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
<category term="应急响应" scheme="https://gylq.gitee.io/tags/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/"/>
</entry>
<entry>
<title>【渗透靶场实践】Linux-暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)</title>
<link href="https://gylq.gitee.io/posts/198.html"/>
<id>https://gylq.gitee.io/posts/198.html</id>
<published>2022-08-17T08:22:43.534Z</published>
<updated>2022-08-23T20:27:55.100Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="0f70d96ceb6685b86fae8a41d68fdbb767dfbd0258b3969db6649e7ac0f0ffb3">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327f1a2376f9386086f11c7e286a9dfe71123a077970dcda1b5748e8eca65828f23898eb9d43282c1671db26dc37cd36b7ed7288084b53c55b6eeed1173f5d24448c7163ff4a9042de8ff1e0413d89a4870d290db6f86a13f8c9652a6d622c3f04a1c9a1c70d7c36b0af9ebfcd5be86b151eb3540f35301c5490c9fce0b6dbb6849b129a3cb22f9d8ce5b3defb8dbc5a9a10c762d8cd9931cf8840cd0337ace492516ee645bcd5237055ce8ae23c960ceb785ea53de20cae5cfe2679f5cd7492baf9562b7f6c7d97d5454fcd96d38badcbebfe2470ab102abd84783e6edcc3fc299068cdd835e0e23aafca5d02513f3e757e7f031312d3f41f039696bf8812d2c10be7d7b125d891b1eb2d1cc278db863f66d6579567594d79de035dde8732d87084abccbb0d924a4faf8f32dd4d62bea0af3b2fff42b9849461df28ffd1d4226d622fabb5e133134d68de745796a7519f0ea03ddfdb72886d839729bb2c6fea7a86398450c4b60768fccb792ddf39a1470473fb5dcc490c63bb5c0aee8058aa8f32b110a36bdb915c88a38ecb163d89cbbd64a0820b1813479f978c8bbc6bba66d8c941e9f4366600c4f8f4f314d5e0ab46cd4f8fb36d1243459315052d4ee20de7d249974b3c03c2a72e05342bab7453d91bf01836c9a731dda4f701437984eebbdf0f475b71cf7c8dd6e2657a4b49066b68733a1271458486fd300030144eb8d1fb0f6cffab9989669042476bf2633563965163cb56dde7ca88beae926d331e17346b2d420bc2196730e5360e41bcde2c762bbd58f5868fb4c8c2027cfa2fb32c0f49a68e0c85bd468361c1b9a6364ac69f4c26b2f15881b87474867190505036eca793eace77f2d28915bc4287ba9eaf12433cbfaf96958f9c3f7a3a4cbef43e78d0ee8daddfbcdb5c93886c7aabe6401204f422d325b5dcdad82f8bf8de6cff737b262f36248a9795d569ed3f22fe9cc801a23ee413e39a25aadba228c5ea31e37cc30128cf658519252b37431fbb5d3d8dff37ee702bdbc87c8ad23328ebde32964a7c679be9c279371e2a492952814f6700fa40c86f0caee5705fdf2aa14e3ba292501b43ce32d77b27ee0b9e78fe62acdfbbb9f4436a371d8272c2bc3c7d5fb75ebde1e31a072f207a3e3fa614ee6d5f1b9e6ff961dab733bb486821f6ce3be4934be8c588de789cc75c8f7c78241944798bb03916573e13a7e0927294e7f2f41bd14900e8537e0c52573d20952f2e9aeebb94d8d1eed6575a108b8ede3af61fff932005f0bbdd13ee3932e7585bf999d8b18c971868a43996dc99fea8b3efd130258dadf302e8cced477c4e87f8f499aeae3587cb2709063161ca03585bad3068f2d7e4b9aea95102bf5420b72ec7ce4b2aa109617e9e16758c644c9b84a31b06bb79d433b7b0ef65de7d2583548c11a10434fadccfbf6ad19ae4a31b4df0bae850a942c13b684ae2d461800ba2644be120cdd88dfe10fa882a448327c7fb81b7e276747acfd483a9eae760b5bd6dac65ad3b464ccb8efcc7189f2409e3d187915d5f80b68b85ff387538e5095319fd52bfe68a9e139e649f8b444694f36adf06a6aac3b81cc87e52558eee5ac4d62c524003b762e0292efb3dc9e2447b9cec00ddcd9920e88d3f859de2a06c093a28064437c2e85f46fabe2d3e35d4d96a529adf372f9ffd82755f42f331b4ee1cb96c892e9f3d9aed19a5572dec14b4108506ca0e8ab1d9ccc0a48a59a220561a2cd1c781fa5b02f5e0311c81fdfc1ba5235eac35942a554d03d1dc911764c379349ea557a27e719acc59db32ff37cc1230fed886a6f9254751df2ed43a43995f9887ed58d24a04302f40446c72966ed4aa04a5c30379157e6dff2378812ee5e42d39a4eee4008ca4ba3e43befda6bb657c456c80dcfe8ec1894cfea3ba2300742344de470e34c560de5a6388367ca92deeb71cf1ac5f3c3d9175246cf2850cb63fd749de31da6e5d4d13a788b9a06cd5e22e0f3de751a03e93b6dbcaba7d94387cda058ed0159255cbdd25afa3e62ddcf96cf2376f59f51227a5b205cbaf2b882c4a8951d48d83f3539f645c2084929adfc13ed05139a880593d91883a914d30b136458be8064dd24a7503001f234589b90ccab0d924f85cf0ea6b0b1ee811d51e1014fcb7cb2359836589bcc2207fc70e919a5cfeb393fb3a7831f2400bd33e89226d350ba712f21fca2c298abcd480061ab022ac218ed1195cd1e97a0e83068d468b1b5787aa74509bdc00affd7e58f2da4d0f14884a3c5b9c87227769a8029f69bd4a4094f4fcd77006117d2bf9d3b34a7a3f8a93201f1104a58a54e2699466f683ba583fbe0c4e5bf738f4e6efb35895544d683940cb83c04d70b322e9ab676258e5c05ea29f5832da527392db5e455fd62d15bf5919c5cdfd7bd9cc3f4ed634485c6ce006e8a7db8629e0b69e391ca58ad840fe048b03e2bf9dec3d35bd518e385148aa41cdff3015af221a85fb39227834a60823125d7cc09e217565800c6c94c1e1bca1dccda144148d0f7415f83625985470022e0c6d65a602062008928bb4d5c389fd234aa0d02c248530739481a1f12240041be7eeeb8c7d73bf79bfefae0ec5e5bec192860067e933fe784e6da21279f778c0bffdd8fd846b23a8bf3a2c7935f9b095a7dc5c0118e08426927dcde60ce36419bafd2c4a538dd087517f3aa7fbb2926ba153dde7b24a1e92e6196dad3c04c590657e740af1a399894f89876551c2d65e54b7fca40ce69a417da675fefdd501b10939b95dc2926154abc868fb3f09c7a3d8fda9b060279eb2571d4d38ec8c0b182bf355a7bf2bd533d6c5d22c195dfff3e20b9264aac1314d7a25e9774b78f128cf7b4ea4a3c9bc6497f8f7e9e5f139f989e8773f672006bb72a892ededd477ad281b7bba4fdca39efeb15f28040e19a6d520774ad59edaa7502bd9294b554296dcb109e5a7403d090fa4875a6d543c7f75a46f5ef8f9a5588b6552a21ab39aad01ed1840694ee94c46bb9f471d3a968dd46c4b77ff7c22cdf4ff2e5bf6ea6e77e189105e3a55bf54261e9a3b1f6877f193ed2355dfcae73873c44908eca0419cae8a5ef6725fef0f246a6e9e3b4522a9b6ef1e588808015429e900cb6ddbc0c7b1c9c31ac67ffd3a2fef4ca909ba180c2d0ab7026734a3abab32ff6c3509a54bfc08af10145aed47e142c826d09cf24f635411f65e4fa540fe7f1814542947b1b7bb8946309915b83e60cce8cba97e0700f0f47425432dc5459acbb30e96feb566811852b056389717e7ec064dcfbb888abc05b762ab0103a74f9bcc5cfac36ca247b7c1d2b017aeff6bc106a256850e8a9034ad80280c8d680886c8a59246fd7301c6f57f76c642fa81a4217bcea6a07ce64ac542eb51f94b9b73bbbc33bd3b5e404fe483669a51f5015d9f23fb4cdf08b0ce1e3439e604e823739e6ddaf8cd284eb4f17849cc9a0c650342852e5750e04a9f4ec6df03cbd34d2036d82cdba77b6f12acd475b4c18563260d0e3f50afb38088e4b9cb9bc2b77dd5760b7e96d46a0b059baaee870d3368f1fcf3a76b4d16613dd48cc66c149184d834fb2cd10aefdb92231b594b17fdbd59b1e4ffc21a358a34788a4594b8ea8a41503c02d3c08364f6eb7e9b208c53c2cd43b6f44cccf3e34b125d8c5016d97d05f0fea3d80c29df6f9d94e2fe61d9011d71c54759b0503c58798609784444f6529be528193b05243e4fd0b69a23b9801fd871b3673678b40fc7d95619d8ac00bffbec54be1da8870eb0f296573609fa5872d0a40fcea687d24f3a073529884d7292806e029e79e9e24cd6bb89e746cbcb7b77ba6e66d2b5adb94a6e42bb159bfbfe261f61bb5ff3d92b7eb6681af3dbd04180fea98d4369021d176c334efd3e58cd75890e4da240670f74ef55491493ecf6116aa8cf4f5983e977d74bbec6aa9fb5affe17d4fbd6970c89b608c43b4a3f47be962b2e0425b900f3b8009f7ca3d9d7e2942b8ac781cd5905b853abeca91d49e10c6c1e76204bc4a8f77d740f2a03ae08733cc14b788c188d9fad97805aaf8b8ba43586e2dc06431eb6e80ab7cae98e8cd05b1939c62dcb195a246ee95a260e901cb0e242d4c333f3e9a04645f83b0d6b312c80c97ba9eadadd67cc645499fcd61512f31af0f1c03196355287cbdbc229c60d14c1560749e8b13c169c1b651fe99fbffbf9e33c63b5938d0823395009299bcc40664b2c41bcffc522309c1f511646472a8ca23cc34ef69bd00432f566d01019d88d2b8cbfbd5bd362f4fe977351f6cfb6928ffe3b6a12a59cc03a50dc4d77d7bfb16b71675937569dda4080f1a8d93582586b8f37385c8d1e8a05678cb607e70e3abe3643c32450a03f308a380c796cd09d6d94560890587428eb64544b025b0fb49dde75423a2087f4658d0c19fd54b697129f1f75389caf6ae1e8b2f9f1c847817f79daa479ff08215818762bee16b71cb8e4384fd4de3320998d0b86fb9d4d13a38ee214d4e73b6b9788b99e8140271560dc0b401bd3b7426e11f3323c0d2b5b528e4e18e2e479931b4f9879d5d9f3d888d4f2fea9a8de02d4461ca17f04427587eb67377dfc75c84c144d350a2aa41b1134bcd3a666ed27c43b2a46a30fafc1ee18cc467f7e8d9eb3a46609747286d0c451bf895c3fced3c88daa4e6bf927c61ee0d35103f55c661aa966f5bf4ba79d245cb2fc50083cdce34d3253886e2e2c2e508c6d36c28eacd26bbf86cf5a7020e06725faccddfa4c327c5b6f89ba3c38e9dd40a0202d767299c4c3525b617ff6e1265d3e94a2ef6182202f2d12f403c209408ca98b1e985e11426dfda008a293fd195ece5a05d9725ebe227873cebd27edb46d53a1ee3e7f6c9a587e873a908a8a7acea2e839426a0da21bff1cfcf0ffec8c623d6ba28944c1b138ed5a6dffed941aa71b75b39f3ba138314d8765bdfc767d3d8308fcaf9cd2dcf5cf000770242d5342160d60bb3d97e0952a3f5769eccd89c54d0968df113f0a095e1be698bcee78b8fd3cf3dd3f9a04782e82967c68dd5ec3f0a7c8e8a5c89d3e776208d720036596d6691b5c0390555cbbc4711441feb3d490bc81a34bfd2382f00b71e29ba0eb976f6f92d91e131fdf9a197674ed1288fe8736f09f2a08faf03800b7a01e43d9cfd933974f5c706c217aaa2700a22d4b00a4bb16f44c91befe616c6971d2bae9d679f461c2456c56b3047efa769bae0b452e0d8da6827d84f0394b13f3d0c7b451d64143c8365b7572fd367ef849d7b2c0fc6b13db33376742ea7dbbc0622c341849921f275008a7dd3c2612de950c90a6c98a0e004641e10fc4a85830a1637827a96a23888ac4c73482c5eb3dddfccae23c44e194d338bf6a44c552fcad37493f9a2bdafebb24bac33553beb69d4a8a155c806bd157c95f2b004519c40740d83b3dbf584ccca4b88bce8f4244497870adff6d5aaedff62d1b3d91144b73941831da9a298b55554a61afb864075f80edbd93dedaf9e16c688eabc6aff64312eafc82d891c775dc251659f52059a120df7990baece24ef4ac9549fd4b00892034c0b764e37f1d07b34ea490905bfc12d9ab749296dd1533f8c4e6024d657a925662dd6ed53be66ea06c143200116eb3dcc49e0eba21c289e41bf084bfdcfff2bc8159bbfa7b441d3f78b71df7cd2cb9fdac274c3524fbd0d8d867179f988a71d36da36237cc52be33aac79dee08ea145006d22be84f3798fda04b8f72ce3f16f93f68ab2c1161ebea420faacbec1e9d3451642e1b847d16a9aba109ec44c305cec36a7f878c73886b660cee459eb98a54b535d2cd43f7a02ce4a267ba86a7d51ecac247171012436cd4b2ee7800d1f888b2560853f7186c8b52e5003fc8bc2ffe4c625399344501226dbee95a3aea0f875d756e42e6972806a1617be66065f2f58bf184ee59f63cc1146cdb93a6a1db699bf491fec54b2edf074fdcf7070296d4d1c89ff6f65758fc8d0b601b3968a9bfb718f23e624b457ece255b75c33ebd927d9b3cef13f85b2fec6accc418d1c045382270ec39ae30b3202ebc3565d6f4552df34dd933aeedcc08376d1b0135f9db212afa78e5d1188abc0f6fe0e9811cb19cd028a23945690a69e0bd76a0f2a41a395a54f8b6616e0208944c1eefe16ab85c68b6d7d905ae534e304c99b89fe0a6b999056a3c476d5692230c10fb9dbf567d1965b1191809dcf1c106575a758f3f9614631e765f786f861517571c37e78e468746eff4a03e76dda1229d140c49d07be722bbdda466acfe71e3baff7db595f5ee60256a921b1947e04a392b53a330d0dab750086860fb57925b373394ff651b54e4d55eb061b251f8bf6731592d1abd15ecb6038cd88a2d1bedb0e28bbfc8019054be5919044d473f5bd33a0f4450cec25150e6cee906eeb44a28e888bf0759ff8fffc54680e5bb601f6921dd0acbbae432f8e101ced5e33b088205fe9745789aa6b2a71c2431666cfccaece7cf492eb54cb4e468bac096f92d25936fee93486719e8b115c68a99e47315a8c07b5c1cfba1865c3999896f2722e97ebfe7a3d434bfca541e7fbcb689cbcaeaadb4c9e5a084440e95c1d541b6d42490731f555514394e4d7e4c8c54c94d6de7a34000f9198183b23f26b0a20d51f7a791770a88709d64b257dd61334461b9a122f622ef4f55c33b75f98d168d2df2a98420967d9be5d3a3a02773c0d6dd5026eff887c19f42915a065cc9b2e831325c8e5d3aca5ff040694b7769494637badafa443d81afbe9a6dcddd927bbad7eab85abc6f7395d85b025cc1c48d4c3eede34235e0902456ebbabf42f0f9210726c39806f4c6adf94c24fc6da3f6bea0ebdce4e2320f1aa51c35281a8d91a4e4f964f78e95bd7272d6c2e8b2ca6df868a88b41fdacacce9e15b49afb3cd4e65bcbbef70a9292f7146e9ddad07ddef6c52dcec059f90120e67589c98414dbb1b19fdfbf09c29dd60a674d71762128e4d2dcbc19782cc2510bb0bc16aaa1c1ed4c6becd0bb14b81f306224693b74756cb22e2ea327223412d60a1c2ece84aa3908a0b7dee28606e47ae95cf4ab30f8007282c9fa7f9d1ca9959e04ea044d7fcb9a6714d51378d6c320b8459170a72b6b59fd49c0af4cc4aadfdfc5caa6c6a137c6533e6547e82ede456f772ccbf054b42bef1fd5d39b849db53153521b8a77d2a6e33f90df7571bf861b32bac39247df9bdd779aae70f7e188a8e5e3eb3f4eef660d97898d0f9c1d930b2d00e566a3d43e6ce8df4c47fe973bc1503c8b569c5083752a297f2b41fdb5f0f98ba009fd361b4932f7e999a028f16091c866de316c35f4dfc2edea4b846940ebe3776697770d311643e35c1beba1e7a4bd983f50b3d87d437d440215abf1c4a800fbcbf3d77ff4c1d4fc6d55c3e0f8ae1f410a7a8b0cf65f494f31a286e54f994e77879c0761ac9e241722bc165ad3cc011eb68cf51e58d381bd990ac88a97715ed42bcf75e0b1c08918a2d806c8cdf2c86366a30d98b6087ee6153a28f902abd01a2ae9011df5711d014890f94478b6d71481a823134b7e604d6e5e2c98ea9a04da54f990e4304323f34c9700cef90e8497d2f13d2f7baab616b40f0a0bb026fa2abed529b485fb970b9b658e28052c8efea4a32fa39f81e061c4694c66833ee2e32b0b0ad4e8d089c885a48257637b6a43405026cbdf1857891223576261dd8de6a26602aa90e7263c3d84087b73cb06113b5974b4b66d9683153597345bd2eb8d3d505b3ec5ad9fac9d754fbcef728517798c2de0ab2d1e4646ce64d8c698410de8364721ae40afa6de6e450f717799aa8590d7e0f2311aa33271ba40e07c30c41a230c1fbff8b9f9c73218d02b307e5933c46d509b0fa38fbf2a1a29e37dbc296ddfc8019baadf90c82de0924560417711f3d9c205f405cc01441ed3aeeb02a893b12c56e4a1fd6fa349b4beb909b31118d9ad966b2933e4051837aa8201db8a3e2fb0d253b1e38652e04f7d83340694705b19feae7021622607223da587baad4dd391c6f31712aef89d8553cb4950eda403ce37fd152e89bb97754226e5bf0b652e6107d4d640a76d5cdaf8762b0d40744a4f845a72015fc38e55dbe9775e10d692f55e8c398e9c7ff60517f58026ea66eaa86b8c48731ecc37781f8705c64e8b3f20a5b96c13b5a2a45e1366920aaedca59b3ebaa472e767b401cc772d7a55f551f25fb18627f9d87ef547e210e058ebcfe399403cb79cf78b132b2695c6999756d6e74b152292c89688974b25ce76dd4fe028ae729a59a7cc0187fde242d6dd6251e0dd9bf301198df2a009f5a3e8702aae3d9960c2d18dbffe695fa4941aebb202753c601c25598e3e235eab083ce9be142f497a40b34dc1761daba13de89d337b7f693be8172df8931842046d5e7fc32c0f05fb98d047efb4da16c99ee8172fcddf9e67ad78e1c90ffdad02d9a099099f75c936b820e308dbef051176be971b7434681ebfb1db9856f681ee200c34896bba51b6b07f1cdd9f9e62d9f276804dde8ce3debe655173f046ceeb2c263a2c2c1840f4d09c97c5b013283a36cd3ed88e9a9db04d302917c2facbc5dca162ee0e4579c44c5aa6a5f1e21cf794498b785f88d92de56429a2b636850deed2c51e4b8f3385e392949f117b81b7ce077ac667a827e2755e4a10a46234b48abee9f032a657f897082a6715386a79e9e7dcd45678f14b15d80a7aff4c8c55ea32636a62d86a5b42700a12026934fa25c81552b6b467f64f85a569894640ee9ac31910e94e923168a5299f3415c369745d57176c2e55e8e3c459ced01f3598cc532b177b78c268484ac4af71436de6cb52caf9a0c041ebb789a54ece7c8ae37619673ba2d86561f04e5415fa33c671ed687a44fe022d6d8c00fba0f6ed4b1f9fa0d3018319f7cf27a0c72a26d22e411eb1291b5080474a735173f161d40da12df7bd91c0524f07d5052d0b335a10d2a51c9f87a39a96f23d101463b9eb460d9dd4add5bb9cec0220e3c3c404a56f56470febf65705c8c9e3a6a0c9de237565c5c0bc51def59391f821c51d2606a5a8b067de92a969b4f0b44a658b307d6f88a826a6b814f368eff93b135fea3e1ba5df50ff6adcb5f320f1fdd9635e7cef7dc7e8559da72e48291a6dd7b357ed0186b54d2dbd8d947dc6556eda9c0f680bd0b2306f560ed828ae6e5bb6a821c3464755b096da958bb5e6da01575db8401db39947724f5657060b624371c7708405b91c1583586d8ef958c2d9b8d87e2db0c606fc2603af4f2eb451ff05029a9804f219a3cf9826f60406a327a8bd8ac033e826ab60937e3c74946a6b6aca9516aedf05f5e6d7782a4eb8a7ad784cb2d82f17d01ab279bd2efa9323fb1a093732528b5be329bcb8a1eff73be7229ca200e453024a0ecddfdaaf85d403443a40c047e4774a7f24dc3e2c7038f1fcf59b568986ac80a63de5979284e3457682a8c85e47bf1f95ce504f52bab1cdc5f647c76ad573affff8c91b9a8045348f01dd917cfb03f2e1d9774cef5760902286dc829698a4ce32b250b3b3726220b0fc22294d437941871383beac632afd5eacc92fb66d714b126eafa7d7fa10effe08262061ba8e52780746ed2e40832f8aa217bd1891ad084ec12a08c2a20bd69adf4fd896dcd5e6b33b27c3dcba2bed9952fde667999127f017149e874408855a5aabcdb3eee9969de25c70339cb937e2e545d313d6589f0d84ec1bdadd542bed8a9c8603191ab4deff625b9d43e6a308a220033128b70ba66e7c6ddeab0b1cad4d9e7d3a9e68bd44a0e75901811c358c086c151f700adcc0c3faa6eff1c4a06ab0832a439d4dcd1d57027f6655c80987c97fa4e3b54a2212adeeda798898a23f824cd514a42abca57a1cce5a65165c14678df2b15bfa2282ae53ce28c982757508c534e52a3aa068a835695d2f0dccbf9ccb6ba173f75cd47dd21f0f82ca430cb3e551f88f1e597425a6ba3524e28e5db778fb4456a1e8ebc2d5e875451ea89c95c38e7c2f12b5e6b097d9e5bcdbd2562a2c4cab9b9c0b8b050784642dfa7f531901afb03cc7bc586ac5f36880eb9fbb1fce30ace79c87183f0d01ad87d28034c881df1001fe7a9eca59173f6267f5c8d7dce53d8cab43a1ce4f6433093ac1a2464a6c97ca5ad878c2edda05533f182573f3ee5a59e27e7e907b92dd3082e9260efe6075f3f47b1a19fd166633ab234db862a84dba9528f6bf5b88f6809974e2e90a947a1b190dc2d9c784fe070cc1eba6d390ad20adfca58dcbcaf52a62c9620c8ad11d91568f051af8cb16dc4cdd0b66155387671cec1be15c37f3d99715d9909c517cdcdb456adae6af39edf4bf1c41cac35c0261709e83155273f97770f1b6757421e5ec4576f22f62e58bed4a22cbb07f47446a5f679d2348a04de0854e7d3e06e1c6051d6e4faeb55a8bb4781adb4124a819598c8402ec54b69e798600d53748f79ef52fb3036cccf0d05250afe9fdcb5feb446a9bb9045a4c866f6cc85100b47bd32602a7613b1523a55634884feed29fe4ea54b6c837c3eb90ad5d769b10e338a62d804483a9a095b7ebb4c2756846c02f964a5365f1cf223448c49695d5fba53b96138f8806cc3953a3b6b12dee2e3f10a5e5d6043599135b9c162e41cef709ba13f0faea498b725badc70a1a61bdc8b793910fe86101db121591b8be0195085519741b493bc522ad0c8a65270db8567871b6d93923f1f4436de341f392c6652590b7165728ab32901c674bc61273f64adac4a5cd6c6032321fc243362344f3e97a6bf1d83d2af4b5b761de5f4f3128a4a0722b123d3960b85af3aa67b3ae1797d23126e715d0230d01b271097fee02bd705306f3ebb490278343954e09e4a7a175c23797570e7e505012e65628f861b9582e9f031547f55211f2e35d998e3e360a9872e2240aa10891ad1a4298b70d5eabf72d8df730902e12c642d4f7f72aac1c71846f45f71578e89730b99bafa54be1f535a0024adbbbd636c9e104b4915a91957f551ce4500cd7cee4b72c0e6e0c21faaa126bee6084b057888f0ff61ae434769b74900849430e75403b0883e7799b62ef2c8f81c9137db612e5263fc3b29c17eda571da695791f14ae626f30459167ecaf43d87c237edf18b9eb5b0772a86179d3c2d71d298f293d44e389fcb87736ad1133e14750ce2269007cfaf4a9bcef38d48c8b5ea8481d9c762c9176a765863c4e734b2b9f2e6120abcf66351f9c5f3d0748012e7d52abbf1c9b86525fd6780e8a32b252b9738c170f659ba91ecd629063b95c4cc67fb194d01b50af7b34bfc01bc955024f632b8194ea412f781898b97fd17f5a0ab61afa483359b796a41dab163d9f5bc1497a561eb201b40fe6be0bc9c887af54d8583fbb0aa807f5f90e413a8d3d1114b30c8c8a96e503452211cb87e3b2fdf126d9492334936d741c5df8e5275d91e59c73cda1465402420f643c47965deba99038d72b4b72d58bb3f488f7edfb07272865d8457790fa2475524a39ca281c2d21a88007bf7f491f6ac02c821ed9856ae14a37cdaa3f39f3a06c39e5edcf9e15505c45518a99022c8116c98f2953ab5f6e46295b7ac0c236ab3c3da7379360801205ccad7a861d6096279581debbbcd3d36c703061c14bfd017d5d4d8790e6ac9527fbcc1679eff02d13c25e8b474583541c5f31c8dd067c0efd70e2911cdae1ad40f6e7d30225a066ebdde8c5b3394e1c113c604c6717a9228168b1088f59e0a05d26b37d77ddaadf598ff428d62cabd28fad0aa6688e6d940ab79982b4d74c5a42526975b6e7a8d1a6c1acbaa1aec2e7f23d1359696350853e2b56b86aaefc3e4b321ff9e229500c852977b6a7fbdbff6e6ebc78cbbcfdd2bed7fe8a646baece7c5494e3a5aff837b7c106833a587c26c14433eb000ba88404ed82ac2b14ecb47d1667397eef49837bca25c66c740a91d04edefa6cfe1de3fa64152a6ca9a45d54cfcdeed584bc9ebf33a3ffbcdba16c5e704265f46fef7bd4f9ed27335d9ccb322605e25dcedd58e1be1dbdf23b4e5319aef8ba878c0858c7fa7c735e43b4db7bde557ec702bcf5501732463af99cc1be7644c425f0d5d4ac034665ea3b5cca0873549b27c651bec689b4a429fe265e206a0ebfb4f097c461219da978f2242fc2fd4744a6987e38cdd89bb9a25543cdaa143c017545e7f5988863611119147ca63e289b84e2e093ff2bd8f5d950249920de00ef665ee8c5a5eec352b1bd6ea895f107236fe85b7f33e9b4513737e3d248a70f05ee9778f68196733530f937cfb514e0f61bbdd22d6225be6956e812bda223d36316a6a13959c15d5481238af9844ccce745e873b37968cbd151b538785b89769ad69d3b18e09edf4288e25222cea30ed3b7be46cf122558e29f0315985b9b2edbdf5facf7c6257cafb817f999f32f0a973179f41c55c46ae84c3b6d4e4ddf78c77bee1a8e15a3d46102a907c22c2f9e499583e21eaebe2c99cf76fa4c6b505875a7e58bdd59f1caa523ba0b192f80b21f704637a49dd12482bda047b32eb16bb9dae3d7dc68a46f2650d73d28fffbd14cf4932772acf34434b77753a74b2cf9ec76bf615e5e88c8a9f85c984faecdcd6d575b2f9c2d67827de1550941265d0b225deb225ceab8fc9179ee90c38673e29f26b0ffcabfb2be03b12d9f8e3963e801553a7f1e5ee5693052d58e972d91e7eac322832fcf3b3148151cd6326e4c494b20d1adb47cfd99ace6e44f00d1fa815be504be6547bb94740582b01e0ab895a00eb8bbb60960699cc5a305599672b9cbb54f63bb8cf7f2e9752b2756ebe8a2247809b3c078160e9b501ad96a561f80569d4d48fada3abab8d162d05eb0de8dd84d63a5841b69dda8a1e65a7271f2ba78022ce69028d2db940b6c7ff6ced42f445d77af0edeec26870e16b15eb4dda88d1318124602a12239c80ccaa238d87e245a5f9f6de27dbf293b177d7b41bc0680bc762dcea316077ef8c723565864165839c107b41a47f1e2ad6ba3f6e1513250e4e5e74cb9634ef5c25e1aea4fc7b650bff510a19dfde220108dfa4ca6b81d563ce902bb3658c3c554f2c4ad85de3142de78a5bf4c49d5921b795a20199f0ee117331678826a9a4073318f104b25c50c3aeb2b2abd5bd6824d63adbc2eeef2ed6251fb832fed3ec8742d2882aac98ab9a6de58e9a3a4f6de0dcccd9d0c0e37984e8eb8328c4c818cc50403b43f394b1adfda0a92f7cd2882d1575c85277557449b952b09d773125567def544312732e3d64371bc32838d48612d3631d959772b9259acd65e6b840b0f083d2e0ac4393fba140a6dcccaffce288cbf0ebafe47d443e89309c7e6c9a878278ee30a8825a51ab5141f0e27c55f7d6a3c76576c90e8a8c392bcaf53205fc24a46c3e9179c6a7f401244f370c6e4834a760d6ca93ecf297efa6d697534e53666209c8881bf6d6796f0bd28aaabb36e78f41be83934d153a440b02906edcb329d6fc3e34e63034285ce5513b2ab46df2a12370e037151be759b15f105ece19b9a8e7606dd78f5b92da2baa5871cd180619e152951afaadd558974e3cc7af6bc4251618e7fc1b33bc706e265c672e7abda7a91b38586bd98c61a73a63d1fce3caddf31078086446ea669b880c4b75ba516a4d882c5ac6183e76f61a649bb43d8e245d631fedcf60f19807ef4cffba50d28536d8f86f2eee7f9b70b95a8c0dde2f1d1e87151739335fb9001216327715896fe808e9218829cedbf903aea86e305d942e570df6e7994e8b0db043b14cf7559cdcd9a52cde9335e49526fc9da56e1c0b9df056051b5a2720786b4680128a2ca08a5e35a27a9601b3063850b258a3f0702884cb2df43ef16fc49dd777af6210523de5347d28b2259ba045753189ba2fd60b9cf6c46bf5865bbbcfa2525c6d2bf89017873459c0c6f291403f666b1cc60f37474055d5ef4d8e90ed6828e0a12e329108f8d1e4d9a39247688a2e7c2afa1177d76c3cadad1e2484278569ec2ba6de99114a0db68539220f07eaee680c97282c4fbb9527a05913e3d33c4daea35f12c88b2e041b52213447eab60b5c2d12c8b946992160b097eb4bc776c10d548b2bd2ecd11fda5f651a3ad3f8bcf2a7b7453b024ff86634f63e874b155ef1bbe7386504a3d5f297cd484303ba440fb0df76f89e64d0a263e372a82aace2ed1179a88920fdf9bcfaf61303f80ac0f40551599ba61a9f1695927f4da62c5dfda8af4d459a31da0c067c8a555dd7ae44ef6b5d0b27e83d90c6accb3cf2c1119e9760eb6969c1b39b9fff3461bb1eb200e22fddec8c4abb1a3d03928a2f17582bc31df164cd0c9234b23d79c89d33ec826e54d7cfde5c9b66d2819df0d14b0645ae609a90f716035c46626a595ec11bc1397a1ff07fc78ce4bc4bed01898172032e63d40e001ec894cb0ba39be068c263a0ad86e7aca46edc0ace239a02ba219856d664a52257524796622eaf9c6725524eae92b01a44a407a683ae4d6f012626633c3742bbe153a05d1ea6dac04de9a8eebd2d31e34899a1f53c2c53e4ebe90ee82a75bfb6f9f62672eb6dee7c75c3c9faf35aff7ccba715224c05e1b45c4c978133f6da9ed1899a6a7af3c6a5616e13b35cd80d99726e03ff26fa7a1b7e1a171d5cd0ccf4389fd3420dfc29dbf1b8a88acf741294d26a71749abae8f1baf6cc83978ea1580a925837b6e8ad4acd28a76f81efcb6f3cdca715765e6296893458b76d7caf607ab1c0e93db06cbcb0458e21224e8cc3119bc94e0fa70cf2d38154011ec04d0874a6fbe7637b5b321b8644f5e77a05431eabb4de4a18c5a9a1a93b152bacea1302ea2fb0ba38fe858a51fb9767c356c39231b5eaf62ff046f4db8b1c11476ef8c9fbd8525b3f6343bb8c79f8adfc2e076045ab6a21c092b4c1aa978dde1223742ffd94ce27d7d6a9d68fc9d1a36ca2b384a8b53b2521c08d30f1b67b12254bbcd3dbd87ac4eb32e64f60463eb71960bce83db09b39fec6a622d78048d0ffaa693918dc731ebdb93d325799f7572423f0471515430a499818a318366b57f5a7a531ab254aa046ac1d9ab9aab0cc144f8627cb1ed53d8548974e55a452d2d0be90aea812c6ad191d37a31be4cbe997a9523ec2fc3e5d96685a1f8892e873acc1c1f4d218f98c10bdc5f529aec19ed61a9ce7d724a55ea1fb93751529ea29c42295439f4ad81cc751ea436c74f564ecd8ca994f94cf07f9224947e6cb98c61b841643399d7cd13312426cb5b8d0d2723bddb95255372322a17e73e20eb76f5cc54e0049b680afce32483f662d173981f028f1e145f68e48bf7480d00af10ecf17672b7d0d7d94b85ebbc67f9eda2bc5fde73ce4455c4fae3eb4e921aff823e01a53fd1b78cdc7a02f649dbcf1cf99435de969c680d955d09897c0247c1014b818d263d84200b01c579a1f7ef70f23dbad76c10599c1ff5e1b5eaa0781284cae04c033a0c6128d39b1435f5cd5b1a414a9f7938c589eeb330c0da2245d99ef9732dd469c97c5e0893bb8b68453dae79512f1ec55f1e0a12ff1ea931e4446485a09d5cbcf7341834262c9aa75854727c22d7de993e07e899e70e95a4bbca5acf4022075c0bf775a71ee4714d86a6bd9989e3876f1cc9bd47729f96bccd7ca5b5e4d89990acd7bbee6ec38bae71577e5a4c9edf6dadc546a4f4a5119e71d0134bc72b0784d472b0d522540438128bb1df2a8ea4c6721177d871ada8091ba5d62e8c77bfae14abff5e3928602a8a4c28e7488f36d23b404c1277153536cb952680c8baf6e68dcc25101182ca877adafab28a6d052b2a1475d4544b05af29a4a635d6841b938e32719e72491094b3e76e1fdb0d184e9b8d5a7ccd34c16a96a93c86eac03ce846f8302054fa2220fee67b85ab263f938d7e43bf51f85428e49ee463ecfe008b71b2ec830495e70272a4f35e9fe29d2c1e29536c3d2b79d7154f87af6fd5dbf018949a1aa2e4212cf44bcde30b3d465839ed738148ab2e1e48c95b163b2e5032e2fe2b6e3aa46a16a67b328276ab3e0a5e4b84a0097377cc2e822b794b4d46b0f234a26d929661096abf9e0227dd81483e0ac5ca9157c63408ffac6843a43947a5bcac58096fe8b780ad0f34ba730ceceb757c31dad05ff9737d1c97129058df3d76cc33da2c022aef955ae877b106e56dd71e0b15751c33f4c618227b77b3776e204de9d690614511320e929d7744cf04125738e80713e331f31d611d68b9e2784e1163807ecd787f25da199d173af2ef4f0d6a7e42cb774bedf1d7eb0393eb67e3c0fe4a0af25341a244aa954eae45a7e1f1f7e0886b3acf457ae4e70298dc581335e8d0abcf4e82a5215dc8cf01150a0f0761bb2615ceb8db55d2c5c656598adc4e33bb0fbc042b15bd2f8865911779d90f0f839b42951b92cdf0e25482f3e3dcb902567a4675f0976b72c84da33de9dfa426e27ea23cb49d4a7f271405d1d643552bd988845d450543d6281994d53d3f6f4e64c0fbac5a1e98bdd2f89b18ac86926d61dbdf3eac4f6c4bf9d68a3046a630ef1b20bc79defb247f6c22b9d2146b6ecfb5d6675266e1c708f468eeacf6a2205a1e4d66232fcc5cd563817cb0e2287d88aac526fa60b0c0e7a9e28d87a3fda1ce834ea32bfd3cf8ac5f2669c1cab0b06e221f95be8ecc8aa3a985f006f9793bd3b8a888bdf7f16f878008eaaac86a96e95e724c08d1a4309cd76f63c036f732fbf266074148a8c1192a0b33a129f11eccf9acab851170844269406c8a006c5e8bb7412a4d808fae29eb8e9bebeca959a0b4c03992a88a34942e5b386be4884a8af67e491bbb2577d0883b1d72496a7f9dd758fd4a19247235f6b1acb2ae1514088a48873a5f32d72006ab50071efd6a497fc26d21d1b7d3252157d5f92166b9b81ca42c664658e689954bd247caab6dd28a67f2970199b42ef5f8ca266af264276204217fbbea42ef9a15b4dffffe0e5406ea13267a4e5dfd7572e4620eb2ba9b396492ce632d269e369dc7dfa93906e2631c80f86714919dcfffbaa64a448392f547110161a51b6447f044a4d9b48fba2e085dfc8dc23c575c7c93fbe7616c5ff83433c880e90ac973a859ee1bfe6704bd3adcebc9ce311a450016a4e2b2d3f3303957abbaf6ae9f16ae0698a14961f61f5cc75583263f4d5fb89e2cd18717ecf65eaa85ce58ef07fab05e29cde644faecf77140b1c61c3a0bc643b63d1e46ac07539c8db561802149981f6c91c38e6f927eec67ee4b2470d248c6d83ec3f30370085f872f000c5301aeb5a00028c72c2417358f50a2b4cde6c76f54bbbc180753fbad490b45e2740a8e24d9a0511f4ae09d63215081bdee9f5fdd488dd4ca345ca4638be05dd80e3d21e8bdaac1c5ccd66596ed5099d71279317383a2735e0d0d4ccc2a8dbf82d132e48dce25fa4196fc90c5c3c36165c809c980b9cdb5ec009a3ee28ef4aa826031888eeaf24e60536111d4ce2b789af95228f44b97c30523461edf5f86df132dfaeebb37f60d16509db3c66dd9a56a830f308ccfc1a8839b6bb46c21610eb2c4968aba19e3d34131427ff0d73e8e68a79b4890c87b9d410085021db67cc0cf95bd077318a7d57661c0002ac8ddd6137bcc66d25fc4a80f4d73aa84ac7e78c1ce71bdf603211e627f44c57637ffb3f590f184f30173ebd8009b803f4dcd1c6129ff38a654c82c433ccb43ca0e78fcbcdd40f801f178753af431a39a367dfcf36e4f6d752d7eae4da8549e937781f68175842a74c03cb322712168e15e335157f862d4c246905b4e27767ca75ee063618ee61073561848e3fe944fe593a98cd47be48ca99769b91b1583d9de6c5b9eef4fa187a562c912b133ef03744f0c3fd2aa4ec89b9bf04761a835cf6f50cab6a308786e144821f7303a58d4fab37bab7ed37de1a32fddc0e6940fd0e10bffd1612a7fd8d1783f29cd2de2ba522ccfabfddfa39825bbecd03bfd3f0c32d83ba9b9e89db82c777830b93a1bbe7940b166a8c24e0bea22da4c69de5240302af452e0da03b21244276883c928384682f85e7479f5ba8babd5ae274132e254546404c0e593cd2a4ab4b0ccac419a56b4cc350942c8b6176df34091933e0d806a68fc35dc3e85171471d4f1b1af21d77cc5d28ddf7c1077c4514e1d2bdd569bc5cb39ade7e89f496305951f4410a73b67d1f7d8b17c9a9b73b6d2b2facd6965447039f11cdd737eda5b9842f96c827237839945daf2c6fd7f5e5debf68a571aa0362e9ae2c805e8ff3ff350d861c1482bef53d5d0fd90c18f08acdf97dae6cae661f94a25430df848c5f3667057e366803e3eb2c121ee7e49687d7581b4d06587407da02fe9f6d25e082d51045f91ac9c8704383eae893d5dfbe05bbdda9c509ddbf95cbecadac7682470753a159c1984dc8a93c813f389c5988266f00e4dcde36f359cd3d24499d76a9e2e37f4a5f5dde43ba773397d1405027bcf111bad7a5cba391aff021e93dbff8450e69b98b842a8864c61d3e4ee14bd46b531698c8ae8bd48d48fd34ead9d895ae942f6f3b4e1995ef17a8ace7c7b6bd388781178c6cf9a06919b2d6da2da159bab9963850b2cd786b495f19605fbbcf7d23978e258cd9b30cc562c3568d534902f9fc1fdb6e89f772d9127bbed67055cf577f8da336a53beac1264f7da4699a62e16b66074d80cb15f1c47dfe7efc03004eccd1c69d591a5be94bc9bac628e7ca4b215c31554eff90999bf13dc8d8211e3461a8628f3980bbcdea354bdfd635a3c0aec592e1cdabf55fc745ed06224481ae7b57dafaa17a3df470bf19e5f24f027338bac382557b33f43b82c4c50e483dca2fe53d778d8dadbd8411d226abf5ec2a237802acf84689368b74e7c5ca07587cda7134d74964042aaff304cf76d3f85a592bf4a27fff590ce5335e4681b365f389c47fc502bd7f8b27a60e6ce9c4ac090872ab8dabfc1ce2046fd221d17bf0f9ad7f13c69d2b9b7968b868458ba2daebf84019c60bc0bb28f70b9f125d7d1ade53a012fd1029e948fb6bcd25231c609e29160f2eba8187267639868d9b4983797a9ae7cbc8e1e4ba14cbf467104ce1584d66f5e32112f8b4e8b2f649e090c96e0dde34e63bf75357e4e853e092359658588142d3f5fcc9ac0aabe3696ba0bd8ba359db4d67dca1d1c31f1662054b391388e63f8f86a98c3a81c782c69ba83c1ca682418d79b3343177573363d295e1625e94a1d0b89941e14f303b6458ee7a8763f36890ef86d75ee9c4cdc99c3a16561336903a42c52aa3dcae368b8d2dbee389de63de24fb633a320a1b828ba8e1eccd56dcdc1f349cda58dc9560e74133caa2b2437b286864b0f2617a4c1186590fe23c40c8bb82b2ec29f874f83d4578cd64075ca0859ba78ebd7d0372aafed1948ebbc970ed0e52cfd72b64a1a2e0e8686a27d317e682c434138ea2fed79bce5cb09977798fe37e93bc2e43f87b6eb57d60b12d83d431c8988590146a894fb647a558f249a49073c136ff4574e4175114d4a95521f9e42126dbb62cc3321174813e0e20e0dcc2caee0988e06b1c91ae4624b51ebb244d7a285efb9347f0c11f62454051311a5a5f31fb74eff44c95068a65fed2894d10043c5a108b8fae067fc59835c3e16d37c03518a13a97b0381587a14025b630066f34433a33eeafcf1fcea36797d804b1934dc1b2a4934349e64360fa710d27be89a718652f7ff3a15ec0c006e8098396b8d541c9dc9d39b99c311e37449b2c3dac872599b807c293dddeedbdbf2b742a0695204b6bb6741adb60f22658527babd5493c2b23537df847220beb2e05ddbc90bfea2ec24bce2f7d66699195abcd38d5a4af191f4b58e8a04fc29949d77a6ac5338f0ebf96d0728cd5594de19e6083585eac30908b6746acd331fb2070fad0d9e99d4e2159047f65a76b3e38529b58e931ca8c0cd9ac9bff13a2b43a7c937299d5f4b77e95cbdf9713247ca2782d8fdc295b425f6c796d4e93c702350a2081990b657b46912452794fe76cfa28445924816bebe26e83c3b422ab229f5cd4efd5e6000b3f2b95059c5a800d29e18e97711cc1f8c308fcaf2397b499d231e317e58b5c3b0b8ed928f144a7b7d4dca21f6a58293af0f1454b7ef10be24e1165493f43292e9fceb41a56229813e8709f7871cfbf34654abf17fdb85f8f4f4b6b2911a4f7c06e2808fba74efe1c98cba213348b6ef8de1746b0a1f8b08267101b733f02f8396c5add6ad4114df98fa5e0d77a39ec66c491b56db5ee878a969c9fcd9b52322bc8510038af39c4bc2647b059a544daf16ced966af8a09b93ca0a77c37d495325df4d0bac783a2b0202ce70f37d1f437cdfe31cec86452b139e26487cf2fdaccdd6c9a0d9a53e71617ea47b30f89b24a8c14c83495eaea14143bd966bc9df4dcff8c487ab5ad59c92491d320ea25cc7844b4e2a2ccccad88739982c1751203c12da2d6f76598f148716e956a7ff23080f1191529ef3347bcfa0d9d80a5657878049a558f2bdee7105b67496360129613d359bd5cacc36f633c7e54efdb653100c5ff4fccf77f6c6e09036d0404f92b4ad67aaa00f39165d40c362a08d9db58353a2c92c0ebae6b533ddd61cee5e270ae18153ad619f307dbe074ccceeb07fe366c1a31b1e58b891ba80d1df8ea931aaebb51db506c5fa6d230d5edd8bef4f51bfd9b1b965ab92ba0fec6dc780dd72a9bbcc67e1989a54aa92eeadcba69903fcf5dd2e4b2503e45cba1f308fabdfba88cbdab5f03c219fd8c771c9079cf84c2f85509a82c53384b65a759d4da7df5281fa3cf8d1c07e66cbfdedad45e54f6a5f8acad0e9817e34e7cb221311ef96bb5432ee4f6662ccd334c136c603892baa2dc8ff9b554f41589f2184271a233c687a4b106570d62c9113492263c8693394f759a062066a276948</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="渗透测试" scheme="https://gylq.gitee.io/tags/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
</entry>
<entry>
<title>【应急靶场实践】Linux-暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)</title>
<link href="https://gylq.gitee.io/posts/197.html"/>
<id>https://gylq.gitee.io/posts/197.html</id>
<published>2022-08-17T08:17:29.404Z</published>
<updated>2022-08-23T20:28:01.619Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="9937ae920df1f2a737a8e7360bef5dccdf26c53e2c2c254ad5c77be66f1bd1ab">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327fa311384a29730034cd2bd290c41d136af9b36ef4d4e60b36ad04eebc65b328bac89eaeaba6c292024aeb9add3c6f21c3718ac1ebfe6a85f068ea9b42b0e45a489c9e8427c15c0c6c229514d32bca13b0f98323cf314685825615ba75a354dffd344dc0de533949c29ff2d024ef4fa696c49946ae2499453117d0fb77b0b6d56b2ded4000c844ce80e5b671397af0e6d8783db73dba76e61ecdcf26863136aadf987bfa4ce22bcb67e8172b14c472f9d800060c8f3393b50cd25d7a5f9b336f3abe827d8acd04b60f7f4a41f1148421c7f263c67da917d6da61150ea7d00a72dfbfb5dc39d0eafef691ec517905ae20e342b92e273efd3c95c9bac027c6ca5deb1783c177d9313e9bdd71eb9d34b47414c2356c27b81006e1ce67da3ea13abd1b9573d5beb585405dc96a23a969a158957377d3561a266975065f9fb13afee9c4ee9797d69f3a954f6ff73fb030802d3a1818ef86891dfe90dda3dac6c9a75301d6ebf5c92b706170dfaf1c42dc417593eea624b19ca7e7a70d2e8e7ce29652372f2cf5e4daefb17a494c80bfb6e8c6a5314e09e0a4f16624a7c07832ba0d7ecc18aa53c62e6881edda0c980d2cdddb04bc57192dfc5f0beb61ef6cbf9d3c91d9a8feb29275dd433e07c339b50df8a05f47708a03eec738674a68dbc9131fe1b97cbd722e6f91d643b9d62af1be421aa037903f6a5720aa3993f28fbb5ba5704d6cff12641503b60822bea34facc0afe3bba5f3a5c41c600f7ae7e05d4636b34d38007a3a98aa521057a8c7ace34aba991380e0fa6fadc3108f7e066d69f5c9c312406b1b5198c852a2282c636dff77d896221bf9ab180b5c62ed00ece3c4b5c6b27d3b7cc298e7506d850b40bbb1231a0de8968d93e0ef30328e13a7832446fccbde5934b90e60fa043bae56da3e7132d109ca5b9d3e73e99c2e6a49a57af346703552e6177a0300a5170e34f2dc4ef24f794853560d0d3ea066d7b34184bca138771488b28fed1690f64dbf0c2b3db2c648d0a8977533428f3b686fd3f5b82081882308e0a51792994b894318aa90dfd3736f44b69500867d5585207e67cbefaf782939be84bc2da0f832ced078c1d31dee8add5900aab94ffd0388bc45fc206512aee50a28b7ddb24f67c1e121a3523ac2563d3da4b39733b4bc68d4c596c1f31ae11585589e33320054dd93ae48337a2b4379751798fffbebcc7ff60daaa614d2847cea3045f6f3521fe44b57fe56ee79a70bb857661ce833e02c2c29f0dc5f00ab39bb6ff7c74fbd75bd3d2b70be6bce25f56d4613f1efc447859385045868e8e262c9cbeb62bda6de2cc2e295f043f0d7c9f9d3a76bb65d694c55f4d76c57dcb15cee590e11d8587ff3da213fbbc3985615c5c8f2dc8457cc1e58828f7f757bf1463bd8af479e594e0b246a048c7cf1543c2660b13174b62f55f3c8028f0a6aee5cec335f25a1c40862ffd27e173adf15d4f943bf7925503496e38d1fb72a47b3614e17307bdda0bdf0b2ca1e81183ff81217d30e39bbd01f247950adc48db568a028948c74209db814f58aa833a0c998328ebe05ddde02c5930a9dde3be19746540382aa9cc05e4a88921c501bbce5f3fd8d3578ace24dbcc3c7389d29458ebf5dfe142fd2c54ef55ff277fedb76210abe56c860652bbeb7fa253555cc3f5b8a8ecfe097e3db60b0d8601e650b99931300e76eecf2f44883810f91bced6bafa787fdea3863ca7fbcfb978b02d226c051a54828df066054fbd1efd2ab98f7de511c06ce9b12c8c636b0b85ae4b98e4c77612bab8b54e70549543fc40e82dd08dd15e950414e192fdac970b6a2bb7a3a3d5c32ac8c3679862fc50e96038bd2d8927a5bd12d84d3dd568d50b39725d2a8e767560021a4e04813846af4165e2227099b438480d31dc91fbdbd39de73c2fc3ecd11521c2b8bbbe2e3cc8a27b7b1ea1289d9db940e602f0ce0cccd784a8ec098a62268e5c0fd7119edb6d517e611912455c38e2d561d093fbab17b8d3219534e5f1551d33116c3ce5317800dcac9c1739eef03df52ed14fa2b1706819b7431157bb27ccabd1a0a3c52a851dd45a6b0608616ff604eb07e1785b219e9eb5663b26d747a19800f40ee432079de3e2add0749cb0450460eaffba7e94d0f40984a595e384883a10b3497a7e85177427c9ad237629bc99450a779e9ca57b46eff8a78adcd8bf0d7067674397c5558250eab24eb0aeef9bba698de52c822d6f4b1958f46003f4f134bb5be106ce2b31d315dac2ba4d8883d005d44b41a588095388820a2b51e18dddb8c96bcdf9757bf10964c11391d8dbe9bea37a110ad672e16f3c7b37a20144e1ddedd456e964e3205da69c74f45e1e6b361ce04d3c14208880315ca642ec3e46cc99ba1dca7171cb3d812e78255bdfbbba57396c2881ca750aa9deed42da388ec1ef4b29c6047f92fc971099bf41f0fc3e1dd02f4f8610ace9e3a1603afe7bd563434035001f716905d857e1f3a9befd9935714d673b277d0cdf61309b91197c65d181310e6885bb60b785551e2a0996975de2936cff5320d48a3b1b299160a533bb518a2d6941d7571d5a208e81fd967e4e998a2ff2d561dfd3c3ab50301cb45db3b29ab8d4dc1cb64ef28649d7c069fd4e0393baad4c3815ba94fc18297dc8e4246180bdd2eed78864ac36ce08677a9daa47824fed2ee4443d8de9b9a6a65d14cff8c7fded4824e5c4bb2167128a5e2fcab381ff1b0e1dcc3e8d0c46ce01d35e1f0088e7fa7b1adc07873fb56a170ddbdb383205ac06e76035ac6c4292b36d4b246c0e4754e2935fc17703d83a92f4b32fcf40e1763ba5efd0186fb54fafca324558c94369237c087dc99278eab72bc4c660265623f742e36a92af39586682cf9ee0560986400e4e01fe1f77a662e2e86ab20282cd856d4e0553efaf47a4f6c4bfdc2f60a9ced84fd41714398e76c7dc943f7ca18e5e14127677b92db70c5e8797b955716feb21b42a6b27a814349ab3830aae1672dafca1cad94a99854b6019bf3e66a4ddd084c518f9d73b53185cc11dc4e1729ccc3945f1055111ef1db7e308cc72911b8d912400b27066c2995866517f7ddf85111279627f6b2c53f8989e8cd179f4ade503c6e2d0c952a9ee34db933fe278733ef316a5e2faaf4a678ced046dfa4cb1d9d4729da18a5c82babf4afb22e29e39ed9fb10954e5d1926bda1927b99eaa74bc18fa4ab4e9a422669db9f7779a0ac09eac62a709f7476303df106e863e4e7b0aefce64f5fe1d1ec81b5d11dd0f763fd61cb7aff3994d9fdedff249cef7fab2a9169139d7558ec56acc50ec3a8493a5122a2298fb99f3b675c912f6d8c79727f31bce6580a7187039cb62d1cda4004676377326fb75e1e43a97bf1ec1a84b9a2c5da21d3cdbb4a4027fb4749d2eca9623f06d07e26d4a8c66b83848f98d46783bde8c8c5316b5553989fb9e5f6cfaec78fc0354bf11b1305af99af6e5acf46128222fc5043d5b763e17baa91df03055b68a2bb2f853b3c6ce13840b1e32f74f74a7e80edcd8b7d33c48d0e6e9c3f5ec6a924f174e41e9564d5f8d2bb95e86f4042abbef1f13ecb15d5cd84999ed8217eff96b567ba54f7fd243cb13a4bb757831b28cdf3bba840be137ba2ead491432f66b0dc4a103b187cb6a9a2384f79dc89481e7682e13077e3949acfb9fcc24c3547495e9369b061fe440e7424fb8b29aba1c877a285feb90d5761de3b40a93f0bf16af25c2e86e69232b5d1450e26e1fd9247643413360fa3ae299dc37331bb1b44ee463bf61c45872af1292d94bbfd0314f5d6e3e3a00cef626bbe8b85a212bbd50418d81e4073cc87eecb499d9173271b0ff15895927074baa55e4a5a32fd987e85cfb8ac47dd31de6f005e9d056dce3712758221b75a9aa5721b036024f4f383ea43863d479a93b9d767aed360c0df67c02b95dbbb65d94cbe7bede12198f441134e3c9b026f15a4f39a71a67927ec39e7c31b6bfe5d4464953168a317555734140a4c7b0e17e5a2b22f44376fc86d3ce7cd25465cdd0164ab99f31f0aaffa7fc617236c549a9dff42c308796f42341436dd2be1a09f73718d15e81c179192375e33487725df9ce3e58fa9c99018b09ee364ff4886efa66bac69fd51ed57115b3b17804f27871c05715d9abba1ecd22fac62c1d7fbeb23088501456ae865dae2034953c6eee3a9dc8a2dba00c600ce1aeb80bdfbcd3cb521d1e5a4ffb928b4bfe1ce14c4cf48e4d17c91c80266bcc8e8896b0e7701b059d0f7f41db1e6c0bddbab69fa5517b57a0b1b901faedc533cc2abd58fbae0841533452efa0b3abe5ec8d1530c9f3c3c874efac3bf55316eaa21e40c9705da265333716eecedd6f48822d435cec321ea5d8cf757a2bc9e87ab0de97af486fe2777bc18b856923fbe572738220e38bca8fc4c35880972b0d7b2a32309899e840d02728857b91c121c215662023471509706b95ebe247507a47553e1c7fba16da9ce4cce3e13c84aa34d2a48d2e66ec24288538d514994769d800f0bde649c7aa0e6be39e8900dff8f9d5190b1469d236dfea139c01f2882ec468afe5fe33812c22378a4e98a7357afbc734ab41af2997f81eead36a5e021bb860996c43ecae56ca5d794046c87734737cea0d3e25454a384770fd009117d650cee6a42161718fc083cffa5ac6961f19f7f01d10eff375fc781e3c76b81f2321b3002b10a89da70350e7ad6f338a3b4738ec377b0040dadbf98f1496bfd89bad21dd9253e3d9ecf7d4aca76be27c1b1fc83ffdc485beac5638e78335afd469f94fd9cfbf98382c9f71142d7527ae4bc93179356b4e43edd92f3a5d3c4770b1c02679f22b356696d7f5cb4edd8857c1c4b19e5dd86c9225200a6d4c5cc55095f7729b7cfe37b9fa11bf7f30a2c02826d8cbe7a70ee853003793bde4172b5632abd4743d888a53477a857aaadeb9686bfefead7315049a78046acd2908e892fd75ab99a19f86160fc2bf6c835460ef9b1f346f7bdafc4a3a965a23ecc16fca999cc176e0bf602d3ac161835b1e9f34bf05e7dcc1d3d2b01dee613f6faaeda16e076f061d312149bb1b10e0de4f9653ab0edd30b4e71e2bb3c6a1eb71c7047bd420729d434e4f7557dd2e5b354176c73dfd0adf4b4a80bca65f0a74b587133f939e27bdb1feea15dc6ddb1b2deda6b641438506448e8884d854836b3d535f0cffd5152aa2c482251b474306a4f93171b2bcbdba97da66dd1eeb44a092a90d5f920c203479569b82725566ce2d77628bc88d5eff80df29a3ca4f531c90d6660fb2b72516b892870f5062fef1c33271816a2d7d0c30e6d23e33d854b3a739ebd52f6d25e474711f933ae93daa1ddfcc6ba8150fd0abaca2db595c18707de0565c8cf67759889b7cb70702dd26ef1af00a6371f2bc75990a3b72a2dc5abc7c658beab91398fd50bbb7476612c62e69913a91adef8002a56c8899047a6c36e44fc65df950487b52f955b51953ffbd4b4423d32ed8ffad411a86501b3a0938a16bdb89b1e2ff56a1463a440876c6c65aee3449b1ba0d48f43dc19eab779b18d262b639d09674381ec325a4e5125b4fb0e2ac3dee502b1ec8b02ce9d350cefcc5ec0ee276102963e63896fd1cc151c96eee6fc1dbcc0ce8db2cde0544b2e456891e68cb378e4838f3f7253e69c6370af6297443d594cc013d9c1d61392506217303bb43073e919f25c2771c1ea6f21a9326e231e5652fbd74daa169180fa5601903471d71496a84437ad4a559629c953d98fa042d9d14a99b96ca50722b68b1c68ee414608db063159388ede9e0a193c42cf2573108b489d0fc3fdca0ca3551d43867681cf3271b5773478877c963a50ec3a637d190bf16e8b06bf44f80de68a32005f3907fcf9d39cd5f0be3f8b9e2f08ad1eda8faa8a20922f128aaf64c294bf64336e38721c66c045d1c2d3cfebe65e12439a1c1e4f4de71d523b3d4e3d98ceec53de7a2c39f7a5a54c2f1d5b178ef47fbe3cd328247859b1b8569aec2e0da960474e9a0eaa003ec77bdbf3a92150d879b886637090abea3cb7e9583302bcbafce77dc0b37d66f7777188dfce3b9b98202f129e287924de96d9c945717b64987114932775a5be9aa15e8d64e634d02a48a1c34856470574ffff4a184210e2dba5b89dd0d42430bb5a9cd4a358e96db9e87e5bed1bcbf2599740fec34fc016a083e4c9f2ab5ca9884591bdf99ebb7974c458607244b2e2215e79de64f52713f7d260c9674a7ff81b983f34851d520e99c914c9939945259d09dc3163c602db9f490f37da9b1f1da13e80db6649db2907bfe6114fe594f18a6e93fe6efabfe9d463b9cf0febf855138c85fbb3489c68a7f3dea223d02fb643f7adfedd3aeb94d492ad36972d8e5de9bab7301f5a4b5a03e6f9a838c44c3d65059fe1acfa2c36f947bf92114f910782fdcd3fd8c35a19ee9f14312fb65f347dca503e7cc3286553f3bd23b3331774137d133c1234c80d72b808003ad3567d52cf7af43fe057e5387781ba47a8427a9965955eec9da89559d6cefaa2c03f76cbd5d8515c0f7dae5c5608b5f852bd98539af5cc35e15ef089b3529e8ca9e5c5f5fd0d3bf3372adda35a5d17cf6e53608f6a4eaed08e7d51b4380f107882d4c9219ffc2752d149c389752fe62c3afe5108fa332fc18f2afba658f3151ed7ee7c4015c345c08087829ef3479124144fea803fd563932a475a426ae91132cae2252b4e4a7c3045bb1a1c880b7ae6b809c8905b85a4bc47e2c91649015a783b28d564a9abe14bcc8a08c7eba29d63ac477e42f4a97556695153e77eda94d9f28275f00eba034c32ca3a9dac6346ed622d7a3a97a8abdc5a032933bf5935507e3aa6d55bbd287b69917bd493a9f8aa38b6071314027b6f2cc5770debff8b5f432c509eeab19fce5951d4b9efb2e7168f1ad418c14880bda665dfc5dd94ff845f3d757286b1fcd1d12dec1d8ad770023d562b2cce7375ab95975d8fcf9b5c5ab11254897c710c8790f2ce0b3a6b41ae1ff059d5737cd0fe8f3cbda6cae74cd04b38fc873df3817e0e83ecf2aa88a6e99beaa299266a3316cc1c3b383bf6e8d2b799921f1334b24f5024a72ea4387d1dbf05f4d874d1b44f30e798f23fe5dd8a575a1ac87a583a17cd6abb84263cafa29e0e6c9ed223ec02a830c1f7ad279b07fab6314613b1b26b0b267269e99f20e6cadb716c8a2fb8392bee0b1fa145e92d496634f8e5ac4ff8fca7d078952c77ef3a14e3d0b7999238936d36abff79f82638f24ba121540e1327fea326df8f573a5c9ae5d7b788b09b0e61989d9350b204f01b841397edeb5b6fbcfded99134f7c69bdb4e4f0b48e457f4de1a187ae23531c6a854f8aed031684eda28c05a17bc91fcb45fd34080190de7192d42cd149f9b4834dc52b45c096e84d1fbc195da99cdd9f25bcba6fbc45fb220f34731efd2b10c904351bc13ec705e4aa46980210b5260074ff24f52b0d776d66061d025a080a4192194fb15f40a20c0a9819d07ebf0d9798d9d8a5bfe239c7c93944b28a34964567f89b8352dee7ea8ccf33db844d757102a6e355614a186ec536188f2001fedb07b735f0f90a9496676eb94a11691ac79a53dd1e2d8f256e41a69c93f8b5224daa7cd2afbfecb4f1971db5c085eff0f0cfc2a32b59dc64690a41e76c51b09c5ad62c6b6f8d5bea185f724b066da3ecd73e23f65b285b6122a4d543aabf40664db30bf389fc3d5a18fd777d3b2aefc7c823b92e7d3b4772c209db6fbce084bee786b43fcbb2b2fb4a4fa5ecfe845b2faf091fc311a0c3936e1a63b3595bff1d792135de46c8d1bd4eb0c6c8cf1b2d6e78653609fcefebd952bf7c80a7f84105bfd428ef55c2ed3699273779969430501c2a5709033d9f369e4a238e62473d6d362646ce4e0fb964d0e0df8b64635170df0e818266d2a1595cd80c1f1cbe5894b3632a089acd3747ee253912a1abb473e59d187dafab93707e17b89d1d51ab4c169bbab25cc9712aacad6832fab9a0c242d5daa717e70be1758e903de3547abe6e1f77d33c0586f7d4081e314a51ce0088030940f4ebae79ee3d63ae1c7ee9fd314ff627bfe73036166fb31666ad931b13f52b73205ec81b713c9130d2bd9d140bf798ada97cdebb82a1bec836345262a1014c82278691774c61dbfb3210c90da692c7c2d04f019dc8272525354ded04733fcc3dcdd34a9a244aaef43131c3aed8f2adf11907b90e40eb42b39a78f91b14f929852117b5e568d916bcf60653b8ded1faf2be4f1fdc773c7e2816f8d2b96ac0dcc3185e76b6b8cffb4d522165d5acbffd36c7dce931e5b652e4b2d337ea72a72d0ad706da6ab62a39c5d5b937d5976864c5dcf2f70dd614eb049996673be29775f3f799693a81dc5d08bb3436555a522c9c983e48e51f76f1191d449be9da97c3d4626184aaeaf472755e88bded6eceacf4ca478718e3d952ec1955e133d449dc2da42f7d0903f25955e0ee5265e808df57f75bd4fb5ce2b717930796fc2053d90fd1db12085106b93ef3ea318f92b419cfc7b4e8af051c780af5e26a2fc7d9598c5e587ffa769f0ee8bb6ccba5841607c158d441591540ba6edca42ef62a6d3e91824c9acbb3da5f0697f0279e530368c4cfb59b30428df7dbcabf36f841e66375a71920b621b719bcb0f30e9ce6f7251d15b35a6b2728cb4a1340c6571b27def5f01f676b95f5995d2179e957ba9582170273913b6295420c307ff631a89cd59eac77f5ca45b7e397928d89e6bcbfa58e0326c5e1f82cba943caa87e12e030737f28b49ff359fef65bf726609055119dc9f834c0b55e4e8ef720ed8a24f0f65c553faf0fc9faebddbb6770da11b0891eb1c923fb743e92c8f26c94c408f535a28f4f819cd6eaba263b310260ae726f54e24b8d54ea8770bae91d6a1fe90c27529b66f0128b4c931a27b6c67a07732f724e703f6b58792cbe29eb7b9730522deb9eb6d8c9f1600d89f87ce195eebb3e985e11397f8cc38b60edc86db64cc3e32c7db47db0cd781d83213496951081048d08b4e240dc9201e0de4b8fa53eae8fc65f6e02d8541e59411d7f98013127d6a54a8ffa33b0297afd20f12444a325e40b18add7cb99b605450e19c0cd4f6e707622e5516c003bd148f3a374dba6b25c5d1518e4b3cf99e4fb818c9845417c498e625415bfedf144304fd100f018745331e541edeba317dc84f36a7e88568e3998c3325d04e90f9379d83ba8d0d00ea78d1fb2471d137e8892a6b2caf9b8917f1937bc9d0c812d5f4a03f6af798a6d80bead503cdc74d9c547ebce98ce11694bf64a81b4b620d9353b262530c5dd0d90ae276709c914a27aa1ce2c6d0c44f799133d5f65fc60cb3b3d35bdd07808fa92b6ef0c27247b3c7587886a8a513aa969236b1c6ed67f121ed11316835462e4734c5a43b55dc9f90e47c1715e633f417f2a58135220291ad5d0aadc27df59cf3fd6124b7459314ba0534f80c05feea56a391ec92f8ac95ae819da8a70bc00d79b1a20f32693f2011638daddfb946b731a957de5170f5a85c7192358ca0b7c4e34d4c71e577a33718ff000acf205b7349f802eb542aee9fa73bdea8df24de4a360210232a6719885e587b127e6958b81f1c3e74d6fb2eeda8c6abda1a2723f52d07ae5d09ffd81e07456f19faeb06b146e376851001dd2daf9c680bed09d5662a04111e423d75dd20d8390be12b773a48b748b0373e51ac2072dbeecb6bbe8bca2325290e0e29df3b68ad631a74412eaa01ab9ecd2976e290449f96de5411ffcd048e9906a27eed0ffad13169ae7bbef2801617ed55d735b64a6b598ce7745463e1f7df5b922eeb23084d6e0df7036a4306b12fe08cbbc8d0e14b186b20b0249a14eb4668abb4823b19fc25f2d07edb3485e8142e33b138d0dd80eec43f9aff7d867f4fa8875bd28d3dfcaad8e41cc8536873be666daa2848d15f1ed5b7e3bfd1e59ebb335c45ed1d5d6cc0dc34279d31952a4a109cb4b5e31c18efffc651bb583d067382e88c8615b97d43dd86383a6ccfbc642ea5e21a29910a565ac2d586b6e7d8cd5c029954f2ffdcac395a0d72bc7ad36202535f19bd673e9012e15a81caa8974562f0adbd04b618288d57a5a7b2f0879a517c047c7b9c699f8170f99a0ca30416d9db848ec3de033dade21b6dc146ff2051a88ede89940abf83f9dc38ad8f06b405128fefc493c1c2bbb8572eae56fcdacba111b46f2683f1a19bd48fe016b92f1ecd8f9d4644f5f21e1ddaf27ff5ccfa59fd7d9237488d8b5cfbddd608df509a23a4dde96ccafb8cd4d4a64e1461342d18b66128642e807b461c782dd110387344ee4fd11c60e177d583dfa8d984de7b6dadb572fc7aceba6d6563d2e001ece7b636165387348f2b2a7398028c64f88b7c8281a30e05705cf1cb3be142b4acd657a1b761da2725bf724aaf23cd8d00d77400c2d1131c6b76e4d421382d6afb0e79ec689b6e1d4d3e9224cd4e6eab0566e0b8f1b33eb518ef691aee8a92fa754bc17b6299de67edd8babb430bcb3c848b37796602dce4c8b11ce264a2eadda24ba184849b89f741dc5ae2da1ebab5ad3358dd173f350325fe661754607cb030425981e83537a74ba20bf0abddc5fb99b791171ab058fa7cdfd64867294ed999d21c6b27bdee4b31b47b4dd7ead3a5f0a81cfa7d309f5ab5452f7fcd13effe6e8cc8dd0eaae988f7d7738c068614c48838488b94d1439621d69405707cdff588b0a70239a7b6535c123771f09747ef3c784c9576158f3ba01607db4c83c1053a79cc3191cb9ad7ee24a3c9d2287b389f0fdb7f33a6d72fbc512e9c9405902d227e3dfea3c8ce9ca629a264403a0c28b8cf447a65af3c107c94d56e77ea0ed5f5d6784df109e93befad17718b07492072630053f33f356f799d93b847864af468e681f322a5d0a19213d317b289ac652d721fa430f759beae05629ef5c7e7f8772078ac873967f55efd2189fa67c32ba52821b8f0cbc30e31399e4ca5771e9e727915ffdfc4504a7f5402b68356f63eac09579802c0d3ab58811e80c7cc966b5b80742c33c9d6beaabfe58eca47ffd2ba399a43ebae59ab6893e9a03840fb6b7607079b2ecb60cc60908368ba0948abb34c0d04d02f2a3f346c99bcbc0709abb02b05103b7e7c387afa391716e7c60bbce2939cc2d5b663815a91642b57a33d4e30a04960b9bed66aca30a09a0a9f1539996f5113488ed9f4eee6681cd5a6df39ecef4c20a2fa4bb4e5360efe8f5705f6bd29a4c7caaac9c7fe65a579ee3571d6f72287acd2b6263690565b97fea32103ef823cef15133b27ad6622dfd4367661fcaeaaaac8e187397d67138ca6403c5c5ff96ee8a4f939d0a3039fb72e050639254184c70908a8a2ba8730da44fce1e6c0e2afaa85e6d84d47d3e87bb5b67fd32db99af396f644ec1c5c54ec7286347f0072b839647b242dc349056a8d715869104916990858caea8d5702bd40f96456d9377acc58aa82c864cc9728903df2836ee3ed914384a69eb2e8f7511b6fe7f7ea67ce9d5f7bb35732974975fd3fc4be6382efd297bf1fcc389762eb20e4b5148f2009f94e98a9146139ec4199eca74b48607194e5d5709538c91f08fdbb9728a7c0a21d98b6d683cdf4f6cd519e294d2becbd741bbec7477983b61481444bba5534b2675e596ec78bc43644ee6a94cb16e1d1261ef3843e09e4b2194290466d14feacf256673b6696b6cb34de5a934636162eaf6bb029df85dac0cb3595d3278d53ae8d321a7a869d6cf8f3f7b06bddd1d45ba62498a8073aff47dfe1055e426efe239c5f7e0baa08e3118523fccb76add2571d8369cbe2a12665420079c6105a58b10cbadbc9b423508b305122d8d5ed876e07ff3c9aeef1e9194e6c3ec16c7f0eca3851b790ef4962249d25e645a15670b42a600a6fc2d87bd8ca635ec8ec6ebdbd252602d6bdd3ef35f6c5f340249bd8a41b57bfd4428af246da58329595b976dda5270b3b940d816f7f8f9eea73dd09a3f9e484cbbdcbc483d123e8ad7fb2830851c785fe2737a8426308a18b85d8abb9f9ba7fb3a96b6cc2fccff426782aab161ce46baaa1f8e317b0cc149bd753e73f8dbd14f679b46a2aa7ef94301972a348a6d8ce27b33021f0e5dc0c02968bb4e02f6f63c2869e491d394c3434ea0a4c559cbbedfeb5963cd03344f52ff1e5fea83b4c5c448516e803724765c1004e1154d1b499fccbfd37e98217e15f8a70d0f30212a958cc74ce2132c6dde55993069cd782b18e3edd40a231f058c1546e3d88548bad88b1d4edb8538ea24b376b0a6c21e77433c17313c3d57129d1ca72dceacc6a755ace0b3f3c65a8697b5566807eb9426831906ca2c0135cce57e986aa336195434506aae7c9d23e0a72a25e44a6257767d59eaee46c4ec3220b71dde6297091f79b86b287b3401f55addee8a317397d4358afc1ef595c66543c585867d3a97ad5eec3c0935eae46f46f87c15d8175c87a339ee7d7d5f0ee64caf87241d20bda93d4b3b905fc50b7362acf55a741b049dfa268af1e50ba6fe4b39808cd532e7f80afd29a2d0228c8ccc4c672a1308af6d9e7423750accd097734e10c8aa6301dbd0ede4cc3e29ff044542e10e0c7a1932b3279c88fc302e76984f51f813830f6c1f8d51d121d2965d37e6b2cc24d6cd328bb2e164b555b06a6f02e3516a04005b26721aded1e8a3127afe9614d5c6f3a96e184011a96deb40bc503b2e41eb22b532f61632f4012af50ebe0fb3ce3b0ab1fd16c3d206a84512ca915e4d3f2e6ad12027469e504a4caf27b6fe006467c133665456a32e3c349d0b0f397982c714cd432296c73866a79d17c737040bf14d6aff7888f489ab355ba51b3a4a07aa5b1d8baa6d7f8281ef01d4758c3e148b7ab569cb9a46aabd0b57697b46cf71d9fa42179b4fc5ad7b734c1298c68092a65e481b95e89e0863aa172642d21b3fb734eee01a3883316274ed593cdac01cc15d81ad3bfb414b01dc14ff3b2afb336675c794171443a3a536e1571a24e5175fbeeca7aa93b561e9602a1504fbc17ccdc12b81770216536be9382e5f1c3c515b7c580445cc24e5b960d080795d08f71b0895c3a87341e2e27db3498d58a7f7aabc83571b89956210b9f86005c1b2ee00f4aac132c086c4e7807e87d21c5abb5875edd9cd2d59a15f111eed6ae892b09e8f72c9c55e82c8e66809f61fa140f87a50676c74c0d921d9d67fc3bf25b5e45dab693bd4482a89541395b60796fabc14b06e5938ffe5ba3d2c1bf6166a10b4478635c0b8dc3dab7b288bc34cfe12caa2167525b812a9893e12a72ec0f90ef7c4551bbe9617bff7a307ce75b5f5547d818556baf021d74bfe8ba28a988fe33f6f1fc49714e8a77dcbc7a373ab74b8927115e55f6b2f6487ba95164315b12b38b86a7b43c91800315aba935a2fba7880f658d70a65fbba93dd1e445e4b826357558ce79bedbf869b91f10ce8ae035f00d2ed33abe22889963e612368de17a027ac19363a0608b2dc86933ea481e15875cdd6579c67c0466851fff4898205bbc898ef2305746b367db194c1b1f7c5951db14251ee8bb5d798ce4cf147db709b2ef34903eff95602fdb3eee8341e46034fe59b14b992956cf611af046e0af301f4d3d4f83bed81cd1d70dd2adbd8778ed5ad361dc196d279cb5a5afd0396e26b3e816f23e29173dbf7fc0a4e107e1594b96d04028ed98f0caddee8531e903cdfe45a7a7747c10ae8d1f50aa767d106e030fde6a0ed4459f8d2da5310f4db144d166eb2c85e45a682d675d87412fa7859bff35489bfc7fb72d942f61b71031eb2861637afd715f79854652822fd42f0f64777045f6dbaf08e59b47d734d3f3976f53df3fdfa68e436d994d61b3fc97e651a11d116d84acff33b0d5c90c85584026ea972c6f12c63cf580eeddd0a205748a1d0ab2b4459259fd9b548ff65f6a8d4ae55ea4c148ddfbb664248a9193bafbcc890480d7fc4fcfcf88b04d25e6423ebd5bbc3d7c7dcef292943f0e917220132cd17a3b98f122996e6d255b329f60e34023f0098e4fa284fca5ecc4636160e4375f713ca78a725f3957aa1a224c9bdef997090d682f84b5afd56c4d21bd5271d1d2da44ebd878845c64f5519bc932066a546b0d92aa579de6ff580e8e3005eb533010a66aad4c24ad29ad0ab4f7e74a838942f2782fcb4ffbdd52633930820f408bb858332ecec831018cf29c117ed34a1dc6760bf4ddc560a040e612fe02734b8d6a9339d13e89dfe4e3bb6e3e569ba6f4d65bc5f08d3e22fe9cbd28d822ebd69aceab2ced6d1c612d4d7d5301877616e70e5271127fac6c2bafcebee0e511ba4a06d06ee58c4bc34e53fc03e77becbbd8b7e8e73e416d0a1699b513e7b628d6894b55b522c98c69015c3a14bdd2d8e694cd347a610d6277c512523c75f3563661719f4c7e682329202e8eec407f42a3d22e3d728176e8e2343b5756f797603327eb8d07e7afec9679d11d4fb8f35573f41b68079a4a62b25e6d4499cdc7c8f938d7e952325e0b7f80f81d70685f0ad39248db745df2996343d05e122c034c17a54d705a7300c87919feaabd51176bdb5150434d065cda0dc465f5228158d9d8f258d99622b81a3598b30a6f7e0f8b22b2d864a40717bbe9c8ea03157411f860e04b94b7ff087d102a6d0a6bb790e4727d71e57015f8a3ec5bcdfa276075ec89f1f30b2e3cd407f98ca320b98b2fcb68a500ba573b29ac3ee12816ce7a3e42aac0a0e29cc103c564ac58d66f14bba2a06a5d8b0f38c57d8d5f2b798d631a7605cc193da24644bb2b6c89e8373c7b5351aa20b2ff6e8379c1fe80615212019d6fbe156b180c510221493becfffff7ec2b77bfca9bddce2c46092d4762714415640b9defd236ba1dbc76abbd69203824b492fb8264aecef724d0499cd41d3d244594b83202bf66dfc15372427d14e73f6f32b18e4da76573a2d55731dbe701555d26d7b6968a959c5c29ece7843578f8affc698b4321d9286495aa920c49693004f9ddd63e10065bdae6367a2512909298019b0005f659bf163bbfaecbdb01fe4c3bc5e5277bddbade7eacc11ab347974bf18d5346da42aeae6681d92e011959f26d54ba9eb022dfc857399293f79bb154170aeeb5c383a8c7f99a5d6d58798e5674d5d198bdd3ab9b3b3a3f5981d366324d315383717c6fe76ae75b4ac5cd047da6efb5dfb057220a728bc44e758da89bbdfae39809b282531bc2482d0dcd096b76a7dbd1b388baf62968ed6a3375543f41d5d6fa1c63afad50f1dd3200fabcffc55161aba27ec19d323b3d525cb4719eb839f8a22153b400a5e73f1fce3b5bbbc5c4732c9239b273a33012eef7cbbb7c50438159e45b6d9e9c8ae9c86ded0c50fcf251b216b9f6a94d67936238d688262830da12b326c146b085f805f2385550a17c6f4900ec419020857980e04212eeb8126d5399d58dcbaa64cc5131d4a4a0755d90b2f96936796b94fe53478cd60ac286eef7f563fd831fb46abd417ab4beb1f3502adec2f289b2faa3234868614544c57644357f23844e1b7f9033c713853e6047e638f2cfdbc4a8dba24d9ad4a0ed5e5140df6fd79cdcc93c771e0d541c7b54d893bb0cdc7bf1831cf56f9a65b20a57628dc361445fed7c5cf4a240cfff986746c321ea93895f6139d297b884c061c586580c8f37882f84f84f98131f5649843c1024f1767805d267bff5a70bc2a3e098e72e1b59cd5a47da75c7964aa1e3f88baf9d547777055b75d09b921feae1611f5737afe1d57c686864908691cea4f2f35efbc6ab7ad53f1d2983239a568ff5f60ad8b4ffc1bb1fd7d7dc5348cff4a6f3096bb885cc83c9ff120403c6ee2b105a70030880c062b702e19e77a7d4353eea751d57944710953ca2997866dd3d5e899773328fcacc8789c3e67e3cc971557405fc884e0a8dd5dfb787aaaeb66cf3312554f39d0b75661a90a4e2a1ce9ed6709528493cf25e50aebe8083722fad09949691c908378f6782bd007a59279b74a586d6755c640ed0ff2f9375236201fd6db2090fda4167e0802d9f7a9bb55de72f1f69ffecac9fbd42193274977fcdbfc100194f1ebb4baf68ff92f421668ca3be2d141839841255d9a83bacaaeeb94dee169c225f2278cfe0ae586ab4ff9f05accf9ff8a595f1cbeb1f5377d9d13593442987c072beecd94a2c609ccfccee3c801587f7207b75be8d5ce18cfe8b9d9df0aad3c2283b87108e2da37066b810db095a26d54be4e5f611514d371dd1a252ec2ac0b39ed62442bf879e0d1d9c11d4ce989d21e6bc135f6913cd62be6efa03dee0858f27bae0293578d9cec3db3a666523b58e2a64dcfe779a4ff38fc8668f01e0e2b8e9b5a667aca679690fe2e2527e093432a1cb88c09b642bbeda1030315298dc3cd3e6f2c98d32b993862cd256dcd1b5afefd3badd564848417f522a78bb14084ac2f92ad90880d0346323d74ba47dafa205825d741921eb9982a51c351b7221af91afee0a4179e0af2965f2a9d71d10f3e7901766d66b6a3a9b8db856bb76a91987333b2dd9baf9e8d018fbaa8eefdd7bb604dc003c95c62466064cdd3fe4031d1f24f61963473afa6b59dfc76dcb8f9586c09d8a6af4e031fad159fac821cce03a78c8ad943e08daa3c7eff46cabbb8e25fc9bb6339d2d17ec5e91f6229a7dfd8b94cc4e446115374a54eb248d911274eeb71955e1109e29ba99f168feabaf0321eeff26bda2241082114bc5199f7c21ea467fb11c62d52104e811eaab23b9c9a98b3fd4335868d7e283aa8aa33978e254037176386f678cd4d918c4ccab370e4c74ca36088cbaac7a258d5f5b3b210dab547d2df0f29fb2925f89774c355f1e43b809188ed68e6cee0bbbff9926fc2a4cc7a4872a3edb26cc6de888bd9b495c4668a296e3c4c2c633538a0bf94930c162ba7ecfdb066c7d7cbcd40bfd4073e240b4b6a102d5730187f16f76d65ce26200f3c55aaef352672131d645b156b36c6d74638262ea7f562a1a1811a4aeeee7be5baa039bcea0e8effa558c9f131fc5e4f1dc7bdd7c258ab307afe779c69832369f949812fecf93188b0272d0c50ca514da00f054e4d7689b7ad0cf06ea71013ff6b130ccc2149b10b80d33fca045daed511a17c681b4de7e3ae09fce350b996f44192b620b4c34b65d3ec5df5fb2630d756928ed2f0cc358412919f31a39ede88861d67ca767c01fa8c269add8796dfda734593d4a47c4c84c99b4f19ffa091707bd2dbffa7e74c8d9edfac01c6a9cf71ddb1f7466780410bb36615275fa65778d2f88e8f37c06ce9fd7b5ed83e1a37d3b5d47742e0755b01f9d49a4817abf6733f0a121ec33b2fe591d17fffaced86dbbc0f3913dfd23c29d1cffaabf1024afa819de8d8d1b80f3500314eabcb60afe5140c1fc0d3b1d9416ec435313d174696becd1973d0b8a2ffde7a7cad04d8e88e05087a7ac6052bd5751731674584984aaa50c0dc4751133cdaad930771fb766d27e031cbde02465e07d417138282b5460dfc87cf480f68f9fa857c86e4d68fefc6915b9b6e6f8a009edb4067e0e6f16c96a17f6db1289bf703ab9ff830b88d063bae517ac4f09b9b895366fb7098f07a24645026b24df46ad8402a56a3cef400804253482ee60700ec636d649b1438013063c78455a789adbb4faf8e176341312859567c95bf1bfce4c02f030d550b831c5d36efda0a1532bf3244c9a32c3d4d7f321ec47e53344cee2339adf5521d92744cce42048b8c408ef4462188b40451d90a0710fc3f9557b3aa7f2fd79d767a8d50fc5c11bd423a5c31bce190d2a420c766271b34cea470d9fa39cffd10fd0a492c87185bf92e3e2c9f6023dc9db0bf49f8b4d3f94a566f77a786fd27615af6311f45313b165a170919ecf9aeef24f488262288962f3036174d33566c78f3811b35bd34a83a8d1b60817ffe02ffe6254ddff27f263c2919dd7ecb4fd4691da5b650d6df1042224a871e524ea96330cb8b66eac413ff5026b7e2a25f2f33b01a5ef8f5c7fb7e189eadb984e33d18e9610422a24e73d501d50d3bce0270ee06b034bff6911deec97999a1270af20d863fff231b81c9809bdf94803168990d97adf3f9c7239f8f35eaa56fb2510b4b362cf487eb4bf6a4e02365dee74db63c99434829faa09500e54e6d774df54991d37fd5b6e139610a509218b65fb9b943dc1bf5cd218b74fb6b9e67a12b494c227d3cc45a0b1b6246f057b606ed8f012a87a798a491bfc2e248e783c62167a300fd434d6e92844ba0c03f44e6bc2ed459aac596bc6606c9be14a12682d05113cc11584afb593f321fe6aab9b51f381a42b1c564d8a7b7d44bf0240e44a0644a5099bba3612106ebf1f2b95e84e9801dbbbd36a1af23623415bb9dd2696a8be28a1a6891810f846cdd13133e4b3473732b66a3bb02cd11d2278ad913eb3476e5c74d31966a9f6958884245f345384abbd1252d5710bf951f75063105ac5bee9a3f3a346a1ab6faea10b02c7febf1e9c9bfcdaf465172ac08666d8910e1a38c9f0a35fa8d777006dde46bc16b21e3700c28601f9cea1dd45c48d1b2cfd0ab5a9f936281841b01c79662be9c37357a19e91e683d4008fe70ab13187bb3aab36bebb27e95ba86d23449176a31c65a15fe7d89ed5686417d16c778a1fe0cd01ea56abea27181767c51d866a9c4b14793ff67db604280a4a6b56058301a4e24868e7ba1f2350fda8b3261db7b5f951986a2d25eddacd3dc87fe86aca9b5b82817c870555f35f62def8c4c1f8c248b032e9a28eb3e91b867d57bd7911f48c8e982ac07c8028b4cf1c7ab47ea227e22696f3eb7c1a2d7f2c18de46cd639abd03855200b97bf71e92de05c27b1e0f2bd414690b5f3f79b8c86c14f850ef9c69558f6c8bb7ffb844d9b2b9073a081e201c97c53751502e981fac218a9a9ff52beeae35a86f20f6b1a646d12c5f1a72d98bde6bac6ca9ae8ca17b6e10105c313c1e1721ec3d904042f2ddbe6b4e8eff7ce8a102aecc33bbefd7261daf9c59a385e85ac017706790c1f562a952fccd030fa2bcb5aebf0dc9636f25629d4978a7f642220664068ebf5eedbe5081d05ba11fa5dac1cec3944bdae4bc08c1616329dbbacf913d387cf4d3c1a0816b5c7d89bc14ad5406b5455cdfa3e892f5ffcfa5c64a91341414906423323ea7d8d9e75a7cd8043765fc3e1b7571eea9d40a31cf71c9b3fec91ba866c4c3a1943403559406e294120ad8bd5557b15a59e6c895580a9bef3fd3a23f99dc0195d30c410feb294e3778b7593e07c4744d190b10b6041bce7bf5c0ae550f961d86f73860ac65a3a7d78bdeb280fac4dc8776d7e3a081aa5cf2fc49999ed6d09392f99c8342f6c218c14ff2258b7fd910669f4023f1e7f358d310d3a091d4d1391148bd80ae89d566293485b6fd1a2801c66a372cf6574942b48c92c738b11bebb103aa784a183ec594e8a29bf82d4a8c37baefff919ad8e1b31f73f6db71ac95a06a922a20da008216aefce9acce8d337e22399379a7fcab628e51d49bc9bd48ebd94458445c876c3410aaa797276dea44c9e7a280732b32c0be2bda936aac97639281cb3d89149103ad7537034c8b946f5706613ac0243ce7e9d9a2563156999ab6e1f48934c3e8ac7ce58203102d228e7cb9a5817faf37ec85575b0c7020d44a1bf81a2ff097a3c6c2914cecd4228cb00f1280fad9208ca4c169ee40a887e75f073e5881f6046974d2e38e9022ed848f184971f88072ce477fe4c6ac8c3c2b3139c07b052b9ca169860cd9254a40c24be86320f1a4b9fcfbd1a8c03ce81695069457baa020f5efa78083877268ab73d04e147fac309412dce5413820e2d34e5fabd3bb0475030ca43a669669a1edf89405f5b5802c742dcf28d08c91795ad43eea716176776814d51d0e34407c934a98678ac83dc6cb938855268eb9b417b414db4eaf4024be187cd364df6c95d53136b0f478c1c3ae63a0a64f6715fc47e9d792f197bcf14d81c0470f1f74d3ea8b4a3d0a38604669b87c18df2d976f53e217c6508a9ce2677d214d8bd9d2a3099772cb171a08de59daf97333b2d95c7c5e4f27b2feb3f3ae5018925fd50d3266537ff74c7566760dfd4650d316b491fbe0e1d1b60c8d415736f0ef3c0006f0f416f408b4152517651bedc35629c87c0c45de11c9796c472566c74aaa7e524628e42ba5b08b11295b0d72202bb7b8e60c1c898a6b62fbc58ec3584ec962361be5b30b7afcf921d9a3a35cba577da5bddf5ad4416b393e23a5be44b250968d186f7b31b48ca2ce7136115925ba6a0668b35525729d17670069bd9a741d104d82e7b888b677654f158a72b5c3f8e0d278072a140d38f6729e18c4f511a52c82962f0782080695bffdd5d3bda0a54821cda7137089ebbd1515c67c81205bb91754f169b851913e93e34ad891efc27c745c7743adbf542b408d382b891bbfb1a5383a512654c499258142f7803fedc6e6aac60efb366c28038826527e8c6669db145f9f6dcffc05f920d7a69f47f4781513d3be0b8d168ab337910fb853ff0d80b4446f87b792c90de138fc2b5af1b38205aab9fff90251017af523dcc0e91bdbf8506a9ad7949cff2a63dfdb8b2e5234c6123bb5b04eb4c638ebb14b295155a4968efc050b6e0c52e6ac209f0e83dac62bc5406a5696702914867f0e2cf2d9cb0d826e3c53d817299e6ddb0f84c72b5e3c791d72ec5ed3b3aa215866eb16d701d8a4206301ecce33dd82f33cc2e4e2c9f5b9ac70186b5daf3886b996459add164eaf9f39b5f749400cda6eab33d79b0e5e43f552d038e29afe26f7b27f3a9f96fc467c95fd55615e5ed10a06e289efdf0cad759d9da91a7dd9c5bf9166eabc741ef81b6377bb6cfc8be7a4e597572cd239fab76f06d013efbd519adce26f7949b3140bfa169009006fbe2d5521583e3e464739821fefc34da1da9dd39f892ae9f959003a2c595f56e0cff4f04d510c9407bd788116c40d7b5ca24f2f770a075c4de70814dd5219aaaed06ad0c553670001ae01d877ad3733e5ae01490a91b7a7102f2016115c6ef38c07aaa1290529d889bae12ad53a8d9dd789fbde18b0fa74245ce0afc832b09a71679a86606185c6783c8cfc81f46d3642e4b81fd39a3555c27840f6649c01cec23b749ca6d424615559f1edf7747d8de5cf4d0f3513c3a3379cdd698126ab8ce4f8788a89210cf9695acf3e9db87d4d288aeb8bd8ed82558527a47f16f5f62ff8946094b1f564a63aeda56f959071ec2c9fca55ab920516879135441949ea743a999cf6e6ef14a146156055c864415cc4f28df7d65aebc89d067d2455bf8e45d1e774bc6c0ad34e55c2883e11e838b28852051fedef4121bced8629670c875279328254853663db4107f6b39a047fd27afd35cfd56a991d211b14647e2ace89588df8ffb8bfca56b4a6f8d45efc11ae04bd4e0045474bb8b7a01d2a4b82261c0534b77cc314ad0f8cb0f6a7d10acbafedb4a83ded993dc84bebf5eec2aeac8452704bf4c47b297e8dcf004ea859326a191b1857d32eea702685e5d3b08b461f7fe61d37f36d6cfe8913da3936767c16e5fad94c604cb5c3f6943f23d21c41f10a10ea5cade89e04e0657e3245c694bdf5b4b1bbc8f379e791cbe5941a55509843f1ddae33da40fc70e64d6da89220ed2cfad8e12e8bf80f1c126a4af5388476c0f2527d36705258c6aed72151dfeb04bd6a1f600b08b99903524112d24a6d90e767322b05e6348663546e6cf8be4f3d78086146b6eea80d0388ac755c41e2f8ff3542486269ca5f3b0efb081557e5ec6acbbca87e37f245b41cb88fbee2f49d5b1b71642ad8fd88012c3ddf5f9d3ee70044f08286838f6fbcdb90ff8a967cc40158e98c61ba72cf1b69aaa9df4dde29c28088a9c2eeac4ea326d049e94fdf1b704108e3e241d709d83e6ddcda3c62f7439d1d123c4e8039f58f91c478a79e91be866a42a034b1d31af0c3782d3f29456baa32610b3d87091057a91c291114789565c1321291fbbbc28ce98c9c0b7a4ffa912cc65d8edbe5a63c6e12519a62c021b2970a7945423762bdac232a321eeaa697cf0050af1b3988dd0e493b3bf5c2c1a6df6c73aebe1e3eafd3d9ea7e75a3fb3868eb19174d1533d5dd14c0036e803da8a748b9eba7d594e1192968048e0910544c7f8e945dfe0ddd094f129ed596896c72e5b325927e6e31fcdcc58f70b2fc629bbd7e68cb95ffc2c01b9008b385cae7eeef4dd8758adca7355510fc935175b2e8d9a6ba6d27c01081595125e167c5c4a1cf6a53db27d0c9c98dea0dc7eef1688e440aa75ecd0b3291c1544a0fb9238f7f5b79643edf6ea356d27261e0c29c7d4a3bee046ff25593f659ee896a5434370337c3b175cc234646e13f7b0c839c1ab8cfb07e4cced1633fc12d3dc791624a7c00d0f46208ce7d6216a1f1a8d5ef1fb676372424182a1ec5776bc82a778a145e576d6205e4fdb5746917fb695a5930bc19282e45644dd889b704e245dd427e9a4f3f17bb2cbfcbf9b6c61fe6cc5d735e584f7fbc99ec9cb64b3e2545addb7aab8fed20a7b0746af401a4d93cd3603492339b579e79cf1d7a19c77b95810c1494cccef950b4e4ebe8d5642f919d2cce7dcdc75746f428305d2f2aac5b1792e8fe3a5368de892fe20d67df422944cbe6d3094c1e4e32fa025ebfa5e30738bfa89f475d97ef1e9e2672fd5335cbcb64aea0213deed74b3d1b7fc18895887b44771b8cb82d97e746430723b28bb8f251c9062d5bdf573eee24cfedf38ef5ab6b544a9f6db8c74c76e8447379c24b5a50d3b15d7646b72e0344d54c4b31cc785a9c43bd8c297f9c8cdf2eccfccef51fc5e1b8e821ad0715ce9d26cc040d80bb7a037481273c5dbccb0f2286ed66fd96e5fef6c3b5b99e5bba2c3282d3b2cde899ac8b869c09935a69cd24424f5acd19493fa2756c22a7a1b4b1749b802cd9f0c9a3f95365224c308e922d370a2d290fc9b5b6ad849db6541d9371e9edb4b8422551d737f100eb5d3f8e14632189106e5ccd0cfc237c257e9b6d3d4586685b84f437e2c4dcd8494dedbc1549ea69d67fdfff8ae614d9aa6f7d4b0ba8bbf6f2133a66a233ff78c223105ea01b62e2ca769b0282ebe3411ff5ce13d74e7bed075f7673e6fd51b9638cd51f66899c9aecb4b386b8ededffadb532269c16924a8d81255ff2db110fe1fe51804bc9d8e866b872fbb29284f7a6dc2cf22024d075aabd2ea8db13d7a9ed7a85228eed33ba4fe0ec73b1120acaf13ceb942028ea8eef5415e9b7b10e1d980d0283a9e89caa7897dc97c37159ce649c7eab5876b4a756eec882e2df8250bd5300c6b00a8a8b4b09d0a93a90ce586d8bf4159f5e97749d00c904b645580fc45d11f3fd5f21c7e15c1c1852ae8ff5a0d2e57f3da4b4697eb0c92a519c901bc2469b682d0fa1faea3a89cde849336a2b136ca6bef8c28969fb436832329000bb95db9b2f9281c852eed5b4ab25abe0841477dd4ad60ba77a9c42ea65da56fa886a668f8fa7b3a9a4d57d33cc8e4adbfd0776e740e36d0156ea33e31c1ca771bad5abf08895ed3c4cf8ec2c6044307bf3d41c078a71dd86ac8162f84c07cdb58fa9835dff41bb268f67248492fce30fe36d9e91923db609929b0fdd7b4a9227a0dfe179f7afd9735335e0f479a28ee03ce6ce80da2b6d6e004342f527e2ad44bff122defeb3ad26e689448d85fb0c6b4afcd4ec81c2734a9fe1eabd8e814da6be203e89d3f6201ce66e3d1dbf59d3f68aba1c10a5566035a451c09facda438230b3e07a83cdc7f00e8c9a1ca68911769917aaabbc5c428771cec1847736e4d8b096df9c10789a95ed26ce8a87c5ce6fb5a7d3c0ed481a8b75079768144a23b17159d84c723ae773889e04bdfa5ef43a2c67d469551a400a47942f8cca0fb800b8cebdd5bbe37522c86af9c669033bbe555f053c0fd44c0e1cb6b7c8366e1cfa7da60a8ee7b729556d76e579aeaac77d03965cc0dedf31c3c0919a3210b66ab43b20302b0559af66445a9bed48d1f299b973dbadee7ca056485d8bbec18e9cfef2bbaff58750e975ffb0b654f6856c3fed5996e43111ab332efadd996271bd7f99cd5166b83cd920c49287ba556e4b09046fe7b8db5ed785a66dd94ee89b7d8d3573c75b12dd8594688b446391903b018354f6495ee5425868c1966c28adfa14cedf656a2595cd3debd67fc24c17174979fdf0c9fb5cac1efcc4371ae5c3f2cf663c35f57eb8647372947b9fb60b41f3db95c964857c56f268910245d4b93ae7102112026636ca0f4a4fd34b9b169710efab0929d0e2467a57d2422587a43a216df706081341597f987ba6f4f1ead2a31c734a43101a5c1259154a0fd104c5ab0eae25fe0a556f0f24080f59485fd1659be31125afa0e49323a2a60fdd5fb5157f470f6f9563973cecdef4e26c78d8b3916cb0bf5650b135724ea633138e25209e6a086183d7c5b5beaec233cc620877fedd5850aff122c8b6db6a56beb543223b376cb1620b35304d3b329d9bd8be21efe2a9ee2c4d5d2f299b8d966272efe07d373af040069c9c8a8190d905b3cfd14769894716c151a26b44de2476e07d5ede67c040e9bea5ad4f9d35fbea3d11a446700b03676668bfbd69013ea510582adecaec8704dcb3503e2961a9503c0b468f27d6b92c9aec83bc0601e87bf0d992aa9913b0f163ae724906c402f4c90f91bd2a9e2b191843eea86f00c9a658121207f76f4c76e8f95a29d71d575bb6a6bee7ae55a17086dc9f65cf39cebbf272683cd9ec5e00c0a65bacbfaaac6e45b6bd01d2de3771a1778d67b476cbc5d76bb00b2c657f1c2ee36698f08ed2712e6735ec565af2ff29331e2939d5c2b0c0988f8a3a087192b23974906bfdeec5067954515fe035a0cb5f77d19320782963df957d1dff42df53adc687fff46a8581dd26248dd121f50e8f6118383c312fd1cdbc52fc0dc4a8532c34a87654bd0e2ee6bfd62ac01105df56f96cc8b88ac4a6fd57d31a6787f8b5f4339294e8a37eeb4a430291f5e572730af76be2d4dc8b3282f081ab7740b0dc667c1990da49bc07ac770a81a84568ebbcfb5f49daaa3ae926fd91dd541a90891ba9e00349c4a4f17b44f507d300ad4ffe89e79f4a257632d2a455b24f66d8515b5f066d9d9b4e7f15516ef412a75a56ec1356dcc6b1676bb0674a9d3b4590525f29327a5864e339723ac73620201a00f3163a7b74c626fe0ffeaa1db66bc0cd41f9d18e048525a4816f39965de1dd750a69dfebf3d38c287e7e0874a1f62f6d17abf1d6964a7420977dead10374f41a0a418527963f49fecd735706c425727975bc7d6301d752002f756b4d33b59f8db2b96927c7687c1ec6a5917fff2acbf4c0b65af5c032c7229bf37961b4668b3dd7a655b59e0038793e48dba6e3c89b5f893fe836031441f43ed0ed52f4bd2d3a85f0dceccb5348226171d4b0da554ef7a11a3409047f8a02cd528d1e0ad3a6edf8d0372a162dc114ca072de656236f2ccc35b35afceb099b42df0b8e6c0fe20be8279514558dd2d1e66d18c0f6616afb600fd6efbb61a677d4596b7b242d5441a80b2ebd8d8396e3a25d171ee396149948262e08d9b686c481c573a9e41ba4817387f5cc4abde2eaf74f22aa67b5c1d4b55f51fb171ca8212c96da3116368bf1cb2324de74c3058bdc3519c641d5f5e5f0fb9f6a0884ecb50701c299b72e9fca672372bda9437138d5d30dad3c4874288b9921d81e61ed0f94faba321204a92a87e337280473133ec268874ff815d1fff31525ac54e834e9796bf4f5b1463ae91020b82dfaab67c8f3eeb0c2119cfdfc3b5cfbbf4e784f6d0553be2abc250ef7b9606e4205a838420acd1dfbbe34a8041c18f248cd649452d0361a23de056fcab90c4b2711d6be9c0a5615d79533d320f7849e1067c16e98046f03b9aa6a13d77aa4edce0ecd99453e724e50dce357be62e3e5db0cd529945f0ef1ffc173fb492bdce4935c3fa01d8327449e03f7c89d558bf770db43633dc92c313a15e169a93c67d80fb8f0fe3375a8a464971eb063bcff66e6dce95efd38aeb0366aa1101f4e08be7f5c6dac696e4fac7e19987f683bc66e53405962058c75bee1c8170145d127d6c5834f5f52482bcb41313654cc9995be40402f2d60f6dbeb0dbdfe44e42383d435b7b49a76ede866863c4e714c51b85a8fbc0fbcea63ab03523ebafa5d6341c0cca40d946139396e5992d9378d3a5525587fa139710b4f1a4592189224cbdb57f227c87a0d3dcb603b894e313b1d43ba0bdbe11aa35168e5286107a62468d094780df3fc43e85ae2b493a0d64689dbba449be1ec6f9324fbf162cada9bf1d2454c97386774018a0886fbb63ea5987b494514656932c2f420a57b89749968734e307b6de38a09ddc51392fdcdc3442e3088bc66f6a674d1eb5d448c2358235dd1c7e6898df460f1036a37e6d236c6385d4e921274967cd57eaa49cfe0844d6580c3e55ed5567403e066f44937e3d6bc36b8ad4af81b0b67769aea2d655806fdbe601549d450b223b03255013af18d9d9090bfd2abefa15604f02a5056b3c15acb91ae281b92cc3d92dafab1e95aa398be828505540de2e8ef990bb94c10532b773d44e0bc96c6d70dd22326555a7875d1d3c2d50c54ea95cc00f7f5f2d6fea8ba04c0394c2d016f7a9c39b5fcf104645f482e4557bd87ec9848477287d422f3054dc771df92e6ad1ad81b352e7c6f679606562fd7a95211f2141651f6c1d7599fe38dd500c819ed22a7841b58991fb3d8ec244aa73ed84970a023b1b59847f3a0f8a766ceec489482ee40bb667687d63e4bf45a7c504add74fa9f3ee2ca9919b9771ae402f9e4447d8fd1aa0bea2feef438b74e2b15359e85b70ec378a294fda1a08a219d53ed0df4c44c21865bbc3b2fff9282bb2445b31283788bc4da828af71eca0caef3943276ee5914b3435b25bf5a4590e4b9a677c008107c4194b986369991a321c57f40ebb7fc990e35e84f6d065da4fd335e2282ed63cb33a5423ce500db8c3667d25da67e111891b4335868c85d488d0bb9b7648a717e158894fd56764ca79ec56abcbc156f6e2e4537782b955fc7a270eaaa7f93139487a40a2f053b405173b0a13871e1f8ff7fb9e6199d90ba5c35edf92a65a3a0f08594ad2d5dbe5265e611437c3974e0359d60ae1ff135e87016c3bb173fd867218823a5ca4e13a79d844d762ac3ee4f3d89a45b05c5a1271eb665b480d30e78faa82bb1e7ae777e4626a15bbeacda86f8a92f80d186ddeb3418877de303aa76df6f385ca6493858454ae38ca29e9dee5dee9f968dba83a77c7720c0c28be517215312ef8fa73ff7f7c36f8cd2b53cb448d8bd889c455aa02a76d7ab68b2d72863620323d83b4d40ee7f19431d4fa81d5b47e2523a54ad7877d0e5b4c32d21bcbc582c63d368051814413216e5fcaaf78154599d6f23c03873e4a5da7318e5c11178234c92f723bfebd302e53a09bd9b0c7413421b4b46323347c10c40857c81143ff8332351f28ee4d63c21f595e72fa29e29d0981c246de1ae05d8046e6d8af9ff7437eb6220d906cd4ca7951ff22abf2c144f596944e0021522979d9c3088648ac3934e0f767e7b2625192f9f12fa2ef32f0da2a0f28bef5c77cad831caa2a097cbaedc6f50cd94c8ec14d73663f5e315ece8e3b090365ef4b5b45830c230e4b7e11d8cb754283b12d28fef12282f999fa919e4b0666066c100191bc8d69d1ed98c21a7bfaa9e3b0fbf2649964fe2d94f28341b5b7270f7266454685c20ad297ef328f5aeabfd327b46aa00e170cd421b3236968c26b760e6664f9e3ef2511eeeb2d72c7db261e8165a9f2cf79ca174aab315b85721a4c3bfbdcf7edf3af82d2f671bf6323c9230d56401491f5a4789fe27691ee2d3691c143f0008eebe6c92d3d2b1abd699f080700eea0ec2a679e1633b97cb6387754c007d1d473d858b9c1f5ce959f290781ef852eb1575f3bc6885d4368eec14e95ad1041af9cab1fa6b100ca6288d2b280817c484db5c738edd8839ef1b5c69ff9feb997fa9c29623a4e49825aa33e8e34cbfba20d0441e78bb71a5969a012831947e3cbfc5c456fe6e9315b6b932104ac7cdbb0da855cf8a8a58efd1d8dc0413628e610c63a558d081d1eee0abee2e04ceee019da042f109411bb1e492234a818200300a2d1106420464e5735c75f30840bcd96dcd0e25c4d75a9f6dbddf2538dfbdd14ce1806e41ac1badcf9a42389e9813047bcd52d4a9fd889eda07298f335ac3a5d4d8f2c8198ac6ccbcaf1d96ba2a3567bd9ac69f3378bc36f33d08467f06ada29dbcede50745f77f576212be0b821b1e6e54ffb17bdafc83fdbdeab9cb64b2feba763ff16fe73766caf59f21cbccd9957520b739eb53d5ff4200feb6b9db55ac08520a89e32cd0784634bea3117a9868fbaecdc2db9f3df8d49016371246c02f0ba06083da7e388724bd1274b620e48eaef220529dc6595af569066d567b975d37b5233c05ea95a0fb2c322245589da77ac181220bf86d1d4e95a41fd99c760b03ea08c2f8453d39048180d6ef0a4b4259154ed29feed9fd8fe866ba762a93827de30cfcbeacb30482ae3c6c6b729f718489d820732fa3fa3095e77c1b8b21b63aa258b903ffb0466558e5db686b275bdf98ddb20c2810daac6d82eefa40e28ce49f3fa3aabb67500b351e4ef7b1e36357c789eab850ca07ab568237843766faaee541e66f9918ba66dfae7a03c63ad9d957a1c4945dac1d0759f436ffb6429b1c4999c0b8d0a7f552f2c27f8fa0fa1f9d26665262c0389e718c29040fad96cb10e7be88b806da2e0cef9233cd3517f32656ac25ebe91c56a8182723df30a34505afc365bc9ba4de069690fe3ac26dc6d5af9abe078d03b24e95af93ef9d08cea2f731f64911e94345b1772998c11a662e80a683ff03f0092059310f50a9cd7b9aa3a2faad6cc539e3dfcb8c3bd59e4f98c9c913e76e76fef1b562dc42649dabe4a44a0ac53b7780215d5e8412582fa19e029d8a4ae3644f5763cd24b3d98eb5f204bbd24aea44ad4fc3df1afee825e7ba3da2158411e291c187ffebef3488e0ab5a9aa33785cf203df5cff49e023bc3b27aaebf0c27cd68131281d8b00284a409566eb183b57b3b525431173582ebce32077c6ba6705658df19f57210480cb747b97d11434e085c778f8ae483a9964340e3c9adfcd64de1647262b56b9b4a5c5b8ec8486bfcf9954595e2ad4a7a4f74693dc700db63afb68996bd8860d355cc1edc2516453e2b3b65971d9fb06dc7a1717c6250dbb096ab6320efff8bcaadaf2d6654adfb11cb523349b1f1cceef55865da1055b14ed5f0b5b97e77a364334c3d3840a7d6d9e748e9dadf7817e5a9e22d21d8e91c35df4206041a6565859289fdb8d045f9e3218fd7074847098caf0cbc8b2bdf1507877f0157486e51e45273cdfc426a04351f71868e244814f03bbd872d382ad1d243556eacd2926c758319411484cce3cd6ef63f7db7ab126a466f456a3de67c64a95b4ca341b5b1d31a1cd27890974507f5dc99b7e5527a4d874718a5c8ee2f6e5dc7286f867835f902c753ec8aefca34f0f33fb982fb2c3ca9b5bcf4c844bfa76e510a2c18ce15cb69bf3f10092583a59d238133b943137d51c3fef6aedd03638b15e5657afe8ea7806f3170799d73e18a752da28536330207cbed1747fe8e0c88b597f31c06e7e7b238a2a40732e93343f3f19acceaef7745d75003c70e242b13d8bc58331856ae13bc2444ffd26a61e27e236ee7d8a49277744b43d432d6bfa2a11b05ee3bb360fd67bfaea487606c4717177013c0ad42fffb76ad81a2351d3ab252089d164df103fcf438674e4f88afc86d3ddd3cfc14d1977e5fb679f5c67a281ceaed21e809a07296b4c174ef719501905bccd040517aa767af1f721323b6b8a8a00832f58b5821dd7c6d89be937b493678156bbbef18f7db06eec6e7d1e2ced3cff33134147a7781d6b0a28a7dcfe6a4faa1ea7d0ff5287734f95abb4897f092036b21c095157080ad3b2aa5f8c38578f34647995db26a4ec9d5d21ecd9805665bb005db21586259012970ce87b83862396ac428f8cc6dee4b99fb8b7c10a49cf7b7880006cf288828257db729a607193c4cccb4b318dcd6281f333143b854f7bf1b7b1377d83785200910dbb1fada7dff3cbb6bd851d8f454ccb58fb532ae6ca18a1853dd168a28dc376054343b4a5848e64c38882e1b2a009169eb03bda6a72082372a515a60f4b8155db3d347076ab5e935990c18643605520757dbe5e61e4f22b56672c70d38e9a8cd8ca25421f83e20a288b119325054f259296cb68c5b6bddc26fa06a0d3f0a968ef8f235c4c2c903c305308104bd67c27e0f2fb2193f2181c5f0b759573cee22ab9cee24cb327ff5a3a739de2f9495ba04501b80e9804afafd319a3f1492e701dd24251ba94911ae865e23b39d69ea28c75a3a72971793a10f1b3b61a63ec528c0ea3422f004e28ece3302b03a17aef61c397ffc027fb6315dfbed75da8067e88954e41c34c809fea7dd2cfd592493bcb45c09b7129ac144b4da82b9ba42e78342d237d887554e872b17746acec57bc18d7550ded72f141008e89cb2dd6ec2a2a42afc96ed2f8a277f587d380e7dd5f3113e1fa29f5454b8fb95eb64df6ac202bded9061d87b1a7bc2580f416005633854299239518cfb1d34bdfe2bff21624cd86d9ddcf5a765152eb9ac1bf3fda60a9e536fbbe6c7d7b18334a44d302d33c8c21209150951ada36b7846dce3dafc7803b31f7c4681b12ef79b6100496d33c5319efbd955e1fb55075a03230fafebe2301b1536fa331aeaa472f3c1265ed9dd6fe77f4b3b8e66ec59ea36e0753dced042e795fc415be1233ed6ff151a94047768d1003f2839797224a4204b776e3a6cdfbce267865bc00fc0e314bd110a1fec721575af025c838aea21976e74de46885a32102221f4e79fec3110438f012712f7b45254d02ea2f9fe665b66ce33825aeaa9b55a3cc42f49ba67e4d4afe07877856a4c15e4b7a2d5486ac9f1fe78cd6715a5a274c72a10fd93b66c092626cca3fb76d234ff3252cb43e5c31921a77cee4910009dfe35d03cdb61fd3a8c4ed18f0f407bd477f855cd03ba1c07ffebf5a7b315ee1d9f68fb2d58a4dad2d6c939b23129a84b32e0f328b38fc863d1ea73a5c6917b13c4b75ec191241525c9b98f4ffb48212e3e925c24c5b95b36eea7de4e3c210637076bb4c1a5113f735588f9011885b2a5adbb0631b622c8be2bc304874db0a3b7e5676a5ae2e0cc2114b78b5e01cb9e38d89da69c4b034398a9aab97aac3e693b416bad83b85ca54ddc63dc5a7cce0cffb4ea1b1805d3ac84d2a662255899e049c0de3b398abbf2dac9c5d11e0274432a19a98b485008f7e197c176043a16c319fc3f2b417ec927af59cc80fc3f62b822fa1c0c3472e7ebc3570b4cbf19511625677898745dbc32f679ac833400dc812caa6c305583045dabfa21e5a987055efd0519081ba44cf3e15c70a59de6c4eb22690a180de76a679455fece726b736700009e1580bf08cb4806475c66b26bbf238bba85c3e75e0bb839310c6b57169981b1d29fbb81c122bb6325dd84a3df401a226787026d4181b79791a37ea4f8c5a34a9fec0b457254b3a6a2cc985eda830293cd1c89e9c17e4a8135030d3e8a60b75f70153cf4c12e6dd6deaee1bc9c11ecaef69da67f92e7a0136c873bc16877aae0eaf9940c48a3c558ef1974123e83c79ddadcf2a3fe0d9f42ffccd24d0372c85bb7593a947bf2cf4df291f99b237656df9fbe7019a975f3886eab8923769a36de91b1a3835ec54a4df3f2cd2680fe8c15bde324ecfc580b1b64138d57fe2d3fc7785b43b4d8c9c48291a78a653a5d2c3373955fd29f4640b124c327e61ff655882281301710955b5b231bd116895cda7ba9d7e84d20260fbbecdc37415c6f67dbf58c3ecc30500a0dcc9b98516cbd01f7b0291ab9b9c7aa6afd902aa81c8be747973303dd59d9cc2287db7f92a2c42e3004d7837a3f73f08f7832b27f99b6223e7584d6d84c80d534cc5b2839dd83f43fd1c553c5c63e1dfecede5a248c3ef916990b66722f544449187e4dd95ca9d61b03dc1f4b1b0ad8ce68e99c93e52961f91a39201773a401308453b635457ff2177b0013707aaf33c06c3a1e0a2aba667471beca7529fff45270feba2372cec0504f88ac779bb55de483b45146073b0216e7cb9d9f76fcd4017aad6e934c362b360add3d8c1ccf0cb5cccdf068151cc273dd45b69ca3917eb00e742f0793c7fc52cdc9921d29581be63898987de58cc724e4fa5e097b74062a3ea4c2dc97f76c33552b1ea9f0e0bb7c1e952b106ff06c63dd91eb5eba05af530e71f0315eabea760469286f9d4df533caebad965ffd83c99865e0d6ecfa373b57ed5ed6835a7f697f8c89c611c07c804e5c5c7f238c86664cb8e0609e86189e963d1b96557ed382034de53066d6785adb6c4af25f323c5c147c7129bc6fe8bdcba328c3a0710397f6ce377075ac553d22824d82735ab247899747217f06a2a6b0c6d614bacdcfefec17d049f664e4d4e83bfa8ada404de73f2ae49efc2de5025fc5db71c7b2a13b9b81594e20453330e41bd0a8187c282e51a28cce9b99fdb9575d17006d5c7b68875f353f6e8132c637ee3afdb4204d4fa992d2de5dc7dcf5383f67374dc4d80aa487538363809011c10274c1057320494075626b37cb1065c88753ef1aedef9394530e62025ea81ff5cb27abd46cec75df54ef075281fbd11ab9a2c066a4c85b78e50cc036817600cfa67eca8fdeb929e1c82689e59fe4d86a5751d6b5288df2bd074f00ba9412bf4f1062c5268d2b96482b2bdcab190823f0468f4339561fe10aa64d965e3c011ec88f9e2955d5647c0f002e38e6127514d38e526fbad1f8a9e8214a8e9c68be4a6943d9b5813d757dbfe1a6b99ce5358fd28e2482a9a3345dbdb092a902fd8137b98f6afb9bd9db92099d6fffe17c8159e5ce71e67da12035c9d1f31a202a78f91a2e1d004f419c68635a0f3abfdba72ea8400404d3579bca49aae0bd366ca338bf80380f197bae8af51485d44d4fe483274762782962edbcadd72c7c7d0ae715c7d8f6dd1f5ad1b4d9ac3fa00dc742b27286c63709f25604bdaa36c0e81b2057700e2591ef70c9a781b9eeef1cc4dfaaaac44252f5bf4bf4daea2fa22fba1143a7b07806fe7db75f712f875de33f2eb72c4eeb418da3cc92fc3b1fdbf943f63d53f7ec7638432739aa547d3a1fd89b44aac0c0ad255ce970cc5bbcce81bbf9ed426d74097ce19b8b87e8e13256833ae225b5050cc7bd840d847505d147605cef052c7a0a5ef6135cb7990ee7f98609ef27fa90eea1fb95ea257ecd78118198c82f207e19b23d1dc424301fa6c1b3af4191a311f4f821cc0042b5f5231fd301ffae39ae3439b9662d032bc95360f640f7f93a02582dbe1a19d76f6754e55a8590b1083afa8adca2b56c23bf9e815bd974a78df07bb86c9cc0bfe953db0cfe9a585592831bbe8e9c7106a33a3df341d8e0b8663152edf55356c069e1e232de7dd4c9e086e19fa52d92e35d560aeebf9801e5ec23581674f23dd566099137bbf4bc04014e685763865808c47d7515d6a6d71d38b965a74e683816dd61c946dbcf1248a88608b1312b2559d118d7385e88ad21c6d954463cc771f3518e8a1942ce7c91dc1f90410f3854e700704bcd79a689ae87a64598a20561c609e1e32932bee5839db4344f44774bcd0cabf589c62ee5cdc35d0a877edf212654533bb88a51048e325bbd4a0c602217fc09c79c59eb68b8883ffdad7a4af0557419bfdcdccc37d17c81fd0709ddffd670cd99d4da1469b3208feb081a262be09181fac811307c06d61a8a3e599b5da7a4ce069cd2312d94f6082f7e3c0492425a0a995b10d00c7a540366360564e91eeec3b9734044b5c4b23597eea7ffa86cda8b60d88322b7472fb8a5b7c78dc4490df7f272ef262b2f3e5ce5b050b7cf2a443b04cfb65d94f18d3ef1374da38c403cb0bb6fe690685aa1fa8cfa52661ffda79bd374416668fa5b46ae56666d0406ce5c1abc11cec2fa2c850d64ef225b0abcdf16e061d11c8ce4f1ffd574213a1bdcdfe8fb647753d2d4e9fc146792fdb0e68ea1edce69fb0995a4865d1f7f43568e6144fb3225a9ba335ae423fcaad8df199344f5d1b0cfab47e298fb1ae90c2e9a043889111031d15624a501ddc6e54317a1377c8428089e5de5dd3e1f4e8df8cbbab76c3df87922145fed8d0214c1a571f5f7824194e3e6579d2e3052ce9c9fd33e05cdd5f6e3eec23483fe3f8ac48ef346d063a82e9c50704c4d38f42d4a4b7ec86ec8cd4c79c3c99a1849bf5db50e9cbc2b4aa26ef98ff2db04598083d7948bbf8bc88b89e903327ad5942601701d51069b88401a1b658d8e1e5f51347c375e21b1dd4f05a046e6a18aad0acb34969d823dc54d3a4a87def7e7a7eac7249461ccec2ed23fb6bd95155644c82e8a57334247288f552dc455d4413adb6cf2c35025326f4943807f50cefc4f05134062f98ef0548ca3203f06a5b3f5e25a4ad09b29e2375a786a292e6b26aa8f9e824f7376521a41ea5fc6eef75638cc0d0f18306ac2c3b52b35897d64d1cdd4f825a9f10a693537e79e4e8ea047573f403eab169e9b59282904ddc5b166834224f44e174879083a21a4bf0bddeed6a6efd3e044ebfe2b9773fe24f390bf96c4cc9c2308c6bceea0f2d92e217032703864234949eaa35df590f1ca511c9718e9f15b9e2ec07933be94e793b8a6391359974d8aaa4bb164d74ba86f44aeed828a4080f02edff19a9eee63813e7f26a70e3092</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
<category term="应急响应" scheme="https://gylq.gitee.io/tags/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/"/>
</entry>
<entry>
<title>【渗透靶场实践】centos8-渗透模拟实战(含靶场与挖矿样本)——篡改页面植入暗链、植入挖矿(sysupdate、networkservice)</title>
<link href="https://gylq.gitee.io/posts/196.html"/>
<id>https://gylq.gitee.io/posts/196.html</id>
<published>2022-08-17T08:01:25.354Z</published>
<updated>2022-08-23T20:27:40.835Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="a395d2ba2aeac9726f424479b88e72d54db6f507f7ea63db57a92d4221a9809f">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327f743049ad0614a9a2ed50f8d9d875a88e26c81ea282a59f2a0aa6f2469b43f179f647fdf3d06cdc57e47fbe4654acf9bcac7d4a966c5abda989165a06952bd5df2a374e9f56f10f9a3f6b35f38a6f90d2a58e2bbb4c17967e7fc5b32df1f8ee07921fe1a2204089c9500f551181aace3c46f3353791e70096b6b33bd20f2485e9bc09c193750dbdd164b0ebc454e979f7ebc344baabe7d33363d2335d1d0c52bd827c7b43e3b871fb73689052ce3abaf7e1af4b3b5a7e24c9b2cee69c9712b6f10bb2a1a98f4c44399e144d7d7ad7e80ad32d7892e3e77de6a0328078849bff619ae0d9d482778a7e9912698602f9723a99d2fd33220fbccdb1e19d3702b177e06091fc7d0defb5dea995fcc23d2746c413fe4f75df362424c4029b6f6aa22828dd89fb3bd2ca38588ae41c78743ea7291d55711a42062bd2e80f0e9433e8e644999e0776749c91df0e51d95a5558ffe69ad2a6774aeebf3b204e5c8532e3effa2bc131fd3047d0633f81c1c4d4ac3dc47a9043d3d75e98bbff22dc7edd42600ccbb3b112c6f058099fc4f3d0bc5741f7d5d9fd9892e97d904517bd501d4ba6a51eea019cbe61f41372cc236e9871ee49d729afb5089b7e34814be9de604927ce96c06cabf860250e8c6a2bccd5c5037b67351a1852f86804b874f0e3b65d1be6d25da37b79207c7c4cfea1fc8d17f7efe648dad56023c96ecb317fefdaaeb70a2db884f5e39c9daa55be30bbb11802368154227aa6d3ba5d3d58edfcd0c53526aee438fbbcd315bd6bb986b7d24639bead2d8d1c49cc1789b4a21509361698450551bd73a39910d7b415f39ee5a5a9f51a34b9e6f770c27592fec083b59786dc077d7663f7ab0da9bf441484db96871ce215b807ad54df23ba7e2882c815d48941dc79feb0430f2e24c45b97fbd2b5c5b7239f37caa58fe258c2173ef40e93592b18df1087bec1e3c17c0f50fc6d432802c717902aba644f06dbac7317c66b91474dde2cb3eb3f4d182dc81385fbee8adb226c40f23ac7a7e4c4fdf4d1734d2f6738d44090f6e84b4280927eaf189f64f58cce170acb1c1bb70d7494373dfd09360be399631f533ece4ea2a45d83b2f94da6cec66a19b92c4da2a46c343b89bacd976d948cebd4f2698a0771f38fb5152246eff61e6f29f95feb8bdc30c512b009ba5bc573fb6ef3c1bd3b46e8eca84ee4625053c561668903bd6325449c7130df6bcf1c758fcb881748f22954ddb6f9aa963e55202223f9b9225008a4ebbb9c3689f285a7a5f8bfa80d2324a4a3ba9e44ecc71afc9d8feb8581b96dbf5dd360f65e734132c256a5352ae29d9ebd76a590de8118156faaa31227c8791b08b68f60f601c1da8b713b0484b13845a691ffa9ed115dde1f0d59e6e3ac8de8f85e4a86696078bc80a687d6c12bd852c26e92195ef48d770bd7b94d2dcbb3cefa08e3f73098bf63ea8bf6fb4bbadfdae2843f0095d12de8a4ff740e128d4ae7c67661458607580d79a8f1fea0d438108191acc7a8e0c976ccce70e489109546f3c6a4addfba5b22ce2e2323bc2d156a59ac9e0f0b68c0dbd4e130a47f2a9bf7c92186c45f72c98cb939e1758dae423bca2001eaa63454d4cf12e06acfd14485f686b6d3d77de3af7ea665f207bf1aa69014ccd2199d08f7a9c2d08544b08ef285d41a51b0de420856d34717f01377c94de65d133c6ca69da99ae86a042c8f697993d213893c40c14ae8fd5604c9cf23b6406746c9a1d7abb313d9538843e986b7ea613537e79bd6ec2dcaafe3b0752e727299e321237bc81fad9785b43030d6ccc28fa28b8e9f104b7d72f814eb222ec15595cce8d32780b83ad2df6a64ea90cc3f36e1cdc003e1c96090540cff7d82e581343da8c41ce195ae62d618325a866ee374c236595ed278622ce9e1888f0cf67b4a97d01066a1f9225208e9d25609fbcb78537a343e3de30ad2311559fc0c268c644cc9ab96825a1bf0532fec7eb8ca390d5c1f20a726270bed0cbdc0669f0dbe3b84f31cb5db8ad8f81945a13a165f1d3f6ebf105e94762983c0b20c4c5da5409823d05d66de284255db8596eddecef394bc37669ac17fb2a52303308b6797063e019ffbe560f33be9cb9a489a1b4383966226e9d4e79f6a8a93efc168eaba3ad0b3eff8705d9579a81b839d53c676470ec4a11142eeb21075b183d03370ed24aa539509ea7a701981d19ab615051270374e3ad9dab3f4ca1529d420f65d96d300e0227461b34dc557ab2d2b211a41d790db9a2bc816ba977f5ef97c19e496b37460eb97e4427094fde0ad21c3a0a77ac3d7252de6a34780a446a0a495b0463cf6683c89f0bb6d6b9cb91ee0e9f32df512716111187f661e3cdcd20502a16a0f6039d578543c1e6ea2325993be1752a12b06462bba4e16098c3e944e6abf9a284396c8fba65eb49dd96f9342218bc899f714abd698ecc4de115ae40db7505575e235c42cb32b5890e2eb958a3797da29853776659919c012a6e673a166f5084f9b5ec5f12f9af5dbc5fad9c55fcbb8d3e4836fe01aff2d0c16a72ed03c2f7ae261070320419c4637ead58a522fd832ecc35a4888ab3b154cdbe08797ee91e9024c8c7bb568fda24f6ae8d718107aa7976b983f598c0f211e5d5192aab5fa76ddad7fcfd06b1e089f47bb4646ab990d8ebdfdb4372a4ddbcd2a5abbe81b9e617db1ac9a02d0c14bd6a9b3df70e72d9beb7095df827684ebbb3e727b0baeba7e415f57812817f14136d18f6dae08742b5cff8ab67d5ca2fcb3a44f18251b3ee85bf5c0dcab56502aef723f699d27f38284e3098808aa93a2f29ac609148ad7a43ebdff8cad048dc64e2f9b86f31248aadbad1c1a453b8f99806dc3a3b8bbe0a160e6bdae442b47790b985a791e5a928ef3cb2bb7599703a34558026dc33879a588e7aaf0f82b5d7f55c5200ce27dbb57e024d600418e41ead01638ed3b64ac5e741f0b1a21ee54f021d758ddaa6575013e532e93e227e30ec39e6dff76c6cea7139d2e2d2e60342732740e8c77bc1a526dbbc669e859deec3b91c88d3eb8fe7f8066f67a41498b3b0bdbde582c641adf899516230ef4c5a8af3813b36e47c2838da2a35065cd9961074509cc75d9459753c10fa54f585ea9cdb5c8e8440a07c3be5e21b24eda7708c9ecf39ee31a704c7e7a79124d15346f3ef00729855d3c1520fea4cbf5ef7bb36f6988ac5441c2bd4fd1f8f8197e1326c1ad3ec7da591f212774a548fd65dfead3d0b452c475f80d874cedd59917c186379c24b141f46d09b130d75a4b41d345cf0c6e1dd7029ab514e79204bcee4189c05796d7928fc2b28a74cd5fad9b84834bf49c23bdfcff99843b87aab48e42fec2633970cc9cabfb92fdc59bb61f9f5ee9d9ddbb24ac768c7b00bc4871c258422509c59512446f802a8d5e57293557e0c859fa9dee173c86c81a8e424ca767781245af9f11b7b2e3e3b70280b3779e5d6a025df59647b2b5557aefc105d5bfe3f1debebfac7b6bb082e3f78dfe5c68d0a99fc311980742ddba17de2efb6525fc84741c764c8e604267ada7f4e2837fdc0a8bfbe515ac296f3cad6bcb6f33d1192a1b30d0c917741c16ff913686ba30d66c4db3e07d27186ead0827cec926378641b062fc03efa014dfa22a089918d4d0e264cdda6c96797992823f1d15d532c8542d16a2a304ff902b63d316e4df7946de3b3bfa4ccd572e7eb9eb70c71a665baf2b0e5148e5f8ec53fcb96d0b60aae5d7bcf04ab8c5b49605ae2e6232da91fd4d6a00b5652e6db37f1aeace8e30875968c7b65fe3b81e9e914e975f691154a744e9c5dfa09f3a1079c327c4167f52f0415a7cf7fdc1515684e3e98274cfc6e4ba6ecc769c2e9b327f25182e9b03b4a2a616ea19bff9f89e9ec21f7889526e36bb308bc58114dfa6bd5e41d0034e305e511d7e9b478aee67e0cf60889d1db3ed9b0de0a0d868816a353b64323d62d9366b8661c91a59ebc2a2ccea1fbea20a42277c07ad87c91d3da2b7248b4b9616b7515df9cc11e7b7edac2a7f77215377d60993ec21412cdb03625c3f93f27c288c52cc69182a4fd2586b935b160f03f3eeb1e7a12c5bbf049c246f223c1d426e909facecf08c77168c39c337ccb9f7aca346c3959d5f45ce8cc84accbfa34d7344319bf7dbfddb3ae93490971906ab280ffe33dbe50ef3cf9293ae53e5908a4dd72866ae7bb8ceea49f941547ec92382abe47915321709c63af21dff431c37884db1126737b8063b0a6baada59349a5270b0b83d77f8fe34d11576a850a8a33c4ab7d8e176d4ff7c16a7258c7aee6980d0a0d5c21b3bb7eed27f67c414f7c53fe1fcdb40aa081991a661e84bbe77bf36680d7d7ea6d2da5ae4aa32763c7a8401ddd9ead2e6d5e9899620d63c0b1c72e05a50a8d9eee0d8f8a7873af815bcd7fbe295c0ef137d98d4f9b313f23b852c835e5135e8fe389c676faf0bcd8cbb79bc8bdd33bf3e491a2e0e5ee6892763137f025c5074394131b6e6e2e24a6731cae6834871dab5c1ba4b28d00d2c15c3b59e7b8ceaaef82928cbe614910e500c41811e3a89f04f2d49aad8c05568f75285c696d8b295a539ff4490c9ba70755474116139845e8f982592225926377a9134c710cbe6fc5cbf5737305820ceba52597870d6ed4b1052dfc2c654793b56a35023a67f1f24c1a927d8e4322fc5b87a94590762d3974e274aa4ca3071d93abae718c4d90e94d6bbbbc2df65cea829cf9ea8e38d2feb1f8dc162c086bc5619a58df1767b94463c2a59a794e5b2e0720546636173f4f59390a35704ec0c0955372a517c6ff76dc259f298657bf20ac67f5bddf81de75b0d5fdbb3b9c343d9d48da58b76ad82a0138aca7004da22f338115d342f944a4ecebba3d3e10ea3c33e3927df356b1ca2696123b8139529b8b5f06c70183e2f80e1165e419a1a3e5385b04b2d6ed6c7b4448ae8afb3b4e5af653c46c014b9218b75ccd8e985266cd1811e7d239420ea4d1987ba46c56168aba45789e9326f158192bb8dc3b97378a03263c4435651b8ace8a5ec3cb8b87b4de797b332a5e5ab3885035d98709a07033f024f759a728639e380549fd8e3b232904dfb8359b355eb23881fb3b2d738089c779f60fe752180fa21bab9e1b627c0a5a802f133a90d5115f550f2cc3dffb615885bc096bfa147b4fda80d13476ef59265c967c1f0129dd3b40abd6404f9338e91967ed9aaedd92be49d00565b7c3246b44ebbefa6466e1ac9f04dffeba510a3101d30d9607c08fbf23fda4677b5b0076927d71c5dd18aafd9e48c99a66b4b208691b6cacfbfe243d63b0fcf0ec0c580d778a755bf7a2e24ea4a1d899397fb41a7037a5304e15d8c3f599680a85384313f9404561620a77f92e6fb623f4d6e92b6925155650a40b6a4dc84ca3d302fd73e04d16ffedc68a61da8528b6051c7777f933b29a2fc144acc2ef0e34c19bb47b9fcef44659940c203efe1fd46d164f5f0af68416a8b4f6bd014fc9344fc2225d348979a601731ba494ce943679e74b67593062c063cadc41aa684b508f13fe9f33bf9be8c5415afc54eb7c79f0ebcff6365ebb128b506f82cae0e8f610ad1a8b482dd3be91850a2d8ed80f794a0d825a9bc3cf059bd526418417e42266b56e1cee5b024eae9509a663f88ab19478e6e0470b7ca18ce0a50be4e63906820acec78a043aa87637ad5f002f746dbbe5e3716a29f19eb109a14761dbab431de88796fef6f679cac971442220976d8b8659ea97371d239ee6f9511bf091ac0aa6e96dc5cdd6f03c4298851159703a813472212230b4d6f848788ee9253c650472b4231fecaa6689cfff02c79a8e754cce7866f437e71b514993cb40d8cc24b656dc5271d4fa0f546931322401a5df1124a8493a055a36664d68338afca1df64be52240296de76c38a7f24990eaaf87d835cac2e9040b83e2e88bb138a91521fe5a4efb36e66bdb4d99f043f0318d372c0b9fdf536b7a72c430e4bccbe8d59b9763fb7116ebd316072a57003fb5c8b523fa62d995e2b02a30f4ae4de953b4b8534479d27f24a3a95e4623bfe88559a0ae2f083cb8647cc096222edaa75f7b137cf666f1ed0573f684eaace602e2cf6ad380235001edfe6b5bfc2fce13d51a9a59512197b12e49da3005b87354ba66c7247592e17edb8ceedbad77d467bc7bc8423506cdbd3df7f47ce982a572e5f17274df70165500e10e354be73b1dccf9824bb23279a695ae4b5baf9ea38eab80d7898071b89483ab1c894e118d9e103fc570774a842cbba7d28feb66e4be2a48bb091e1326f00e6929852c123ffded52bc99eaa8e80b861736f04264734442cb7333e45589f21dc8dc55962d4f87c647496cd589f82c6a84c57a22e7d253faf58e1ba91c71d2609e8e846684855e4104c2f22ccf4132b8ef80367458a8af19dfa8243789e20b0bf0a96b25b0e1a5c4f38a725fe0aca1665c410758fecdb1f004ab335c53bcd2d93b063a8bae18d6612d5b727d8e73e95ae172719d5d53deb2e45ee69ebf1b72b098818c0bad10313ee9ee9b5c481680988e145f19b76f4ac9aa25e62aacf4439c7073b2643a29b38716969a8dfc350605002c190f987a355da8dea0052bf97c1988c994a770347f1b529c44f920e7090fce3c196850cbad067f430be82fec80e1552bb6bd1fd29e2875c9e33b76f8799b10c0932af23c913e2b4df55570414f85665d4bf805353e6b5212e4aca1c8ceb0d29eb1d09032891ecdde3e64744c91cd792c1f2f705c07a28a5d2a87eabb7bc617b4324517799bc6b0649295f895b6933fc52aee65cd554245e5edd77e0e1eec747a127b19e632a88c7d698de828b33fd9a0fa48b7de630c10aee6a9ca01c180768313e4c12571aff2dd88f4266c9cdebeb502360653ff7def404d6bc73e58a6ed8d518b43d78ffdeecb55b8eae4c45ecdb307aaa52ea29987d6fd8b466389595df20df441c798c3ff3b42e8177fc7e9348e5c9c8cc955da5a96893597730f285e3924fd2bde0010c9b9005801d5136494d2da621ea7df8bf0e66336917356da179aed15030ecdf194945044612852186a86a0801d76f838b3f4049f1ddeecbb92c128c2a32a7de47c3b13f9daedfc1c43cd016a7724f3e76f2c4d62ef4f3b935876440ec5704317371b02817354ba0f21e0ea997a6d994ac3c38b10677deddd7701fe1cdd3c52a3a3374cf62c782cfed313340f839b89b08a9337498ac351979ba288fc24a2dc977e76f888da46b0ecb308c11b07fefd2665b128aae750c5b317191444ca585a2cbe1ab3520b533c16a9e5e286969dca4f691945bfcb237d7e24cd89ffecba0541cb021e387c348490e4e7abf8a7c19737c7aaad333aeb16880fc5f884a1338607d722b3f1e688017905f500b5587ef48b531da2524e6fbef7d3849217fa895217e24c79754fb8c4b584eb55107d0d0a41da70346a1fcc92f19b06310de03878d655665d9a10e3ce749db31f4ebc999da979ffc12f35e34ea4e65bbfcbee8a72772070fd87274ae7a278eef664e889f35bd2f858a7f8b3f30e17ade866aad496204e9b242653111627c0289c5cdbc205e8986873cb27d7cbd6a7748686b4d614b7a484b568570404d3dd2f3932c4e1c7263ae7dd23fe114ae592f784fedf66eb99cb6d4ab5104198ae1e0384668830ba4561b402b0b6a3b6a965f056d2f1265330ac9f3dfa82502b06440d8d1902e600557d90a8173bcc20d06b035a4b62add55864a1514f1d3dc11bba8d2ea175afd02102dd413128a20dc33c43167ea42f2e5211295dc43375aa192594239577018a4f2b608dc5941cb9db0ae97eb3fef2155f024f7835338a6974de81f285d6acd4aba1c5a2b851f54f614367cfe03ace10806e3c409ac695de6b326f9e02c0bf28c679c53d4335c2f544a1f726787682524077362b05587aaa93bfe5a491ccf987db53d58ad0952d3931da1b2c41791e4effa02291fcc2d449831096441d52ccebc3dbaae7e58544fe91cba94f289318f62b1d1759de025c57044580a7cf205d9d3fce6419dd7def4f2781ce3688e2f3d70c2a7ddd899b6c96b4655831ad1fdb361d9af6ba93d7cd60db553c410e2c613cb51ca8c4fc59016a71ca7eb2ed70dcd7e17dae9c43597e552b779a1e118f9cab67e3c290780bcab3773d2f3fd0544f854d6e8d4501edb18cac4d83c368c70e62d14524282ceccc7f5ab647a1ecc8368e2b70cc16293b2e4c24f41e35951c7d6a4c474a2d18b556e8be0a4d5e8465bc8af3f7ca71852045f3f7ec1776520c246de3d43cc01b6edc339b742218ee7a9939bd53ea326ae13b2e17232df351edad6520578bc29c31cdbbaa0cc662e4446b4f8d72b01f6cb0191ced5d3d41ae2357308bec489e72866a6f3566af478c8362223f9ed4c700a753ecdff42b687ffce619f63237059316975b228c253bd97a343ce0d0f56fa7f898ed778a0abf21ef730b7a1249d74f905b55a338afd9be67740ee8651be283ca9e961369b36f5bcdc50c4f07592cd12c04026f6becccf29de7a8ee2582ae92b3278005abb99c90def38839a83024f006f206b05f076314661e687c3b0aa22ac61aaee02482aad4be1804a949c9de958e626e526651c60e8719ecc41c515b76d829b876c09102c5ba8c604a3c5c42b2de315a729a2dfb9b89cb5be2294f0f123a475c4002e15869bff177938d08db6ccdb0b03699f3f564685ccd850f01b817bfcdb544464946e37e60f54481d3ed5ccf54234addf522c2e8b0409fae925a699ffc4ae3e9958d41909a71dfa88b52491bbf37e5620f938f3fbf2e272ec1ef460d6e145cf8a4e5922734efc9e80b45e7cd11529cef7d4734fc0e786ef0933e79c1b0b8214f6e5a435b11a1827f0b154b434ac536880db0c2076511fbc378b7b1d2f41f601e6e26509ceb0302774ef2e5525749350d77cdd4b4b1d8913de5e90e3867ae0f93d67b629deebc2ec599f2025d0514f15c185f7b746b14d77d59cf6de9815fea648e8057a02ba1a2b819317c6640786387f8163d7d186cb5faf3ea4d1d92010e4ad6d11ea6feb3234a7b25066ea93620e11dd0a0e32c06cd5be58480d46a7a38e4b69417f2d6603c511f7f538e9475e295244d69431b52cb359aabc8d324cf1011e0b496b4407554f0c84b49b350baf5d631212fb598f4fb3f7fff47d68d99c62b9d9a8ec081a5e13181e5c862098fe0b53fe407e659f4ed93fbc849a9016e350ef2588f6e350c62d65cfd35217d0ba67efb3db66357a6bf979a302d3393e3b3ea5ec1e428cde9e5133b7b0fd23d752a917ec5dd190568111892d80d5c2e7ec27174d1e89e88017ebad718f5daa27f0406d629609722530d508f33bb044a0ab557d884321d6fe1f528b8fb9fbd8aa60123a1cc6c9c7e4c8fe539d35a03fa611225a479ac060287616a1b39b27d09abade064c5af613ec68c19097d94557c98efbc586003cbd8b5b78a74ff35490bb2f70674171822ff2e3f7f96e6d0d58a44391d9d66ae5dec62defb7a0e54225083306cb920ae74cf4fe03de4f7626296a5275e01fde7359e7e841858e1bfa89e32758610916093dbb52a4944fb1567741649e420d219aeaa0a7383b68af8e1a1f25af1f0afcc361fe99eeb16cad3b2b3119d0586cd85c885cb39466a58d4f675a1df892befd05fc9776ec9ad71ddbfa7b09e9053b2885fc141c66f001b000f2dc5c7024c9ea42a2ac9bb3b750e54e4501c645a7d5220898e4d181d027592a4f01db5e2a74e6c713a068a687302b2e2b77bf5ccc58e54f87fc7c0010a909b2c5cb5d053bac1d9c40a10a0c0a14623d20b1a581fe4989946c4add9d2a1196e6e52658c62adaeb2c91897508c13fd7953de9073085244f014814eb7128d287ba46a873fb7d359132ce595a6cfef6e38c981b9ad5bbda4aa7c0d6c324038ec9272d4dc9362b2fcefec3a9db40248eee01eb64bcb34495b4c9660313cd192050f3309729784b36195076640305eb71b2614efe9ec57b1b0958096632a915598dc13895b80536b905a2082e6d9400609d3c89268d8d9de78deeba49e83e51862ce798fcd2fb9adf00d3a4ca88521a257c74a3ce9c701a692a8bc76139d74b1e25ca4e0657d1ebf2421016dcf33c812da5015463da1233ebe0961474ae70802fe58ce09397520acfdba2ce5d78bb2493ed37c3a5949f97ffde27bdf065d39b0efd719c66688a212a82b1c1c4d4b85c346c8db96faa6afcaed1c3b33fa2670fd5eec9236c9a81ede3295685a77a43068a15982f54d1b074dce916f3a3dbbe84d94525f1c2a6cdfd982015dfe299c7d6794cf9a36d625fec69c65d5429b387b83c5f0aa9af6bbe8404495e3e628930673484cd2256894363aff8236794205f7d62fecfc6fea35481acbe891d9f7b7ee9f0f37d79665cd3a6c3794ef792534669738101203bee52704b2ffbe8e9a7ad6cc67f04eb3c6063a215bf6878dc081af6d1a3edc8f38722f6d0adc84ff055125986c678d18e4dda189a28f6ad50b70c6556a7c60e9e338faf8a6ffa17bfd6fedb5d639bd80fe4e8ae55470668709b75425f220e7af2b1543889f73a5db4dbe848223881abb2b12a2b6c95a402e78eece11d4066bec74aa9a6cdeef2a356d7c199ffb704f873777b244f9f418eaaf805f5c9737ee3a78e3c94f377ecfadf1207f46def03131cb935430f17b122b2293bc2d39ac9a6358ac943b58c30bcf28955956726d49d8fe4427f17366d3f1f9500bf761a6bfab28446b5d40784c0f1e2551c6536a52d7018ac28724c132bd45c9f8cb0455075895876cd21eeb3fcf2700a28b09d8fe2bc641e2c009ad40dc737b93489630afa64380c0fc388be1a83d8f4b85cd7c7d07064634564ac5e347507a3e55661418c520b0a90a2bf74d2610f1d3801d4621de00a0ff4ebd10fa62d7cd789416497e1f25d2f6cf99eee50c0ef77daefbffec9d6bfedb35c1f374c5dc853f6586c9ea4d30de7cefd46a2d9a5a6a3663c70ea2668b22d3180a673fbfbe7796c3272a959596ad783cc9b623c21f4a010b50f7757166d1cb5b60ed2894401c75e5343b41af2da7ff8045207a917553ced2bb57931799534b5b330e7e31caecf3e776d5863ab9361db466f1b380c47c0a825f44c71a3d5a364d5eea5cca6e70f6ccbcec222c4993256bfdd84a2f44bf449c5e8104fe4924f02c4b6a878c54e55e943407b027097ebef904ee7f09f384c13a97b5d0e665c7385ce738a6ad77938dc29be7cefff9e9cf3e1b5fd04d7adf12c84ad199f0712ecdaf5ce31660574b9f9116512771a1aa93ce77c845ccde130700beb5d4cea1df1d88fa5857adf17e2cc2f4ddf2b700e31270ccf5bea14a978d6d293e273b36ddce6ac4acc09484c39ef6bc3e25d4ea943153e001bcdb0120c39eab378a6579fb75a39af379362b38268a3849d6133a20d7d0943d96d7505bacd24a19f18fb7c4bd96945093bcf0b514234abe8510b9aa8979a8342ae9f15b4d37904b60885b463787ad33084d484128efe539b0fec411f53339af56b52da42c94b1f3cda544a8fb11736dbfcb10120fd967f8d1dbe6ce79d1d7e222a5ec26b0a5b4c9c1c911e0fc4580dde092251483ea99b8ab9f5d7abb895109a60bc2f7d6a90e0d76011a2d789ae0d792010c8a72cf7611b21b54481c3f3d558c4671301a157a45d0061b705f6f1c33470fd0819695271cd6a5b0f7f532f423e49831af97f62c5b9ac0c362282eee722d20943f5678d22bfc842eb4c54189456e2029ed0c2d825a4698ae507bcd6bb01c4fb6cc1aa6d8d796dded60d3f54583798102fc2b20366a7289628cd5023fcd6d75cab0ae92269142f776252c524b457e21fac82792d43f6e4fccc6905a079d5dbc79725f8d8071430ca2d868e02a6f20083c7b37966f668f88f0118e8069b0f50fcdd9b20a275b85323098065f5bdd24a58a7d8bf095f12a2a606ff548b80f98cbfc668c5c8f3eafb6dd88d2e44dcf32014a2941a2fdaeeb74aacfe9696518fe31e8ebf19aa7add81b775de90dee29ca74723f123eacad9ec73863ea4c05a1873b0c4de0c554b45a56d26f7fba491462bbf261a0167a3b0d8f58e430bda43626241b3e900738aa3bce9d785a48f40770c7eb8aef0c2e75d030f078124a12f3c99d16c5230bd0c364865a0300b1bae1128b324f07c50673b023527badf1f61b0fae4774812b61b7aac2be4a36e8adf141dea38bc2026814cc78af9242a3ec82b752ee09b12cc27812489d6bbb43b23e61f0f5156ef37e312beff6fff686574334207f5b418631e0d256458f6083fd83aebb0a194f2b9386e4e5006684d34fc75b52890f27202e1b97b68349b57391b4b01aeaae926994a12bd4755514deffcdb89ec5ec8b53d4dadc7d8cdcd4327ee27b2e3c4a3dc6837bb5b9e805f4ac33627ce7384746f6a883cbb77fabc7e45c4230c8c9b0add6921a34ea25a0218d0d20afbaeeb3128e2c3cd16363fc1465426af24a8e338353531391bd4185b8c9cd0bfbaf6ec989605d198b3f6aaa5daeed50108413c0f18191b44e3fe35218f1849b7eaa76826e1e5bd21d8ee25200e1ee29621bd841339349dc5233b445982c042ade8f0eb2da81f626458419b6e9fc81dafc617e0d6adb96f4de267f17fec53acbf02db899c8bfa631112cfac976ecddd0a3f3c7f415c8e4db7b756cde9eeba7c6c3720098218e73e8c868ccdbf3c0fcbcf75b5862b4edfe49b17d608d075fede1c89f6b091d293357861862593bc2e80aadc740cbcaac77aebc886639378e265746999dcea3947944410cee37795de21cf1786d2b3135e38eb5e653e1d0552225f3ba60dd40eb288a52225613f27783f805d4dea80c5ee6ec2a6b393a5673cc46ee24c9bf42bba4d50246e3147fadbd0a3f1aa8b5abea893a263345c59eed32973be1915d03232f4dc330faf49a4d88d38418b0512cdfada605fcdf8e3e0337e8abb2a3a439471989e291a37a98ccbfa93acdbb7de22bbb917137001a606b83349e841e914d13cf89e5f109b63571e1355f71cce738eda49297b944dce57d1a79c89b1fd0a79a18396ba064cac6347b2565d6728745985f2e5947fc5ca87c6530cb600e5f85e03fe336b89d9e2c1a6645997f01f1d17389a3d700082ee973d0886181902533999d1ef3e137e3f2f3ea62a7f52e9728baf8bc559f09b5b9df46c3acea0f40b342d12b568dcb89e5b4bf8a09fe360ddc63f32ee07a47f8dbaeebf4378881cc27220d555b1494f1b8df2dcf863682de121d923ff6257052009af26ba1d0da56754c27cf8154d57bbb6478581ceeb9ba3c7ac28430721701137f89877a1fb24091661803a255bba93bee142ee861d0b8d27bb20bf46bd7ed11810c910e458993648e6d6d794ec9be94804a519f496d8c368ae04b2bdd0cd8f7dc12104970e01fc6f259a452a16cae39c15659a8f13678d70a3822ec63d97c8d611bba6983ee0282fe37dd2a2a2d506c86d9b943e45f6af1ffc1f463599ecec472c625df44e26ccbfd32f9a19428dc2413c22c2de9221d8d82e694a1d1246e0d9cd958d30833ca72440775817e674b6094333e9b554c695cf33ec936a620ad68c2608e7c75804291eb5d4c3392d9abff65e44b1ca39b9ba03db15483f6d8fc3dd0443dcca4027fc3546a64c86e9876c80b40b7e56431a9db6d8ba6ff9693c5900a5879e3add99900767b9d4cf0e1dfd6270f664a6d83dfcd28b2df68cac6527aaa003e085dffb6d609dfdfc6f40a3b0c93b6260afc1004b992febce7c8014b10bf4a7f1fbfa4ebda23446f3a8a871f5b05453ba1c74779820b1eee4610613797df4c369b19a8643c79022fa45e56a918f141b954bad4c2fde336166d2d0d6cef9d655702873c9a6f35a13cb70558eb22eba3b0dba4692815bd22aefca8c968a2fdc18334d09ee1a00a559536ffd33ffef36379512896c195f44275921cc23d0b6bf723547facaf2b63a08ab39b93ce1639551421d5dd0b224ffba1538d7381473dfba931ba997dfc391005d2ece5e39084006e4983eb0490dd58631335c6c4f1736ed42899979877471b922db46c114bcab0ef7599a102a482ad7776d1b6e00bfa46dc05ce3b6a35375a84387e4d767213226aa658124ce77ba28f523e93c5dae43e1c2444908dbb00a95bc47964adbb8e17730755f125ec92ebde5434fd35332ab43c485b2be64a58489f61fe9ba5ec0d5b4c17b114fe0116b0992d416af4d9d20f8175aff4de2e5385459c24e91457b620ec6a9ae62b1369847be2ee93fa5569bc609fc1e3a744ae71af4c827d391128a139397c24027879cb700e37d7386ad903265057ed4d88e7489fdf4b337e65b6431b85f0c3b43207ea68b1b9941e8babba68f49deb8c43fa391149e852fcd143b3cc74d07801716a72d7ba0dde8da96fefff308dfba03e5a566645411db53405d9944f470ab35980a2a89cb81b900afdc03a07368bbafa9cd41d4d26432b6686a064f7bb8271a91215f7ac5dd2cba1698f4fb4498cdaa1cfe4e3ac07911b09f6b4ba9e4695d8fd68220ca6838e64d08e86f01eeedab2da206b889750e892b20daf4ff9930901f58fc2705891d3f8b49883035b2e9afab8d3672d1fb12aec77540e7eaf143a87ec7dbf0b660f5c14dbce4e633a6d82cda1111716bf893d2c6fba8beea8a6b74080191a2188b6a341fa54498fc522d5568d565e67212a25aaffb9531b8d7730df1af6d8ae9ea5f6b01031697def6ec1094edbf55274cfafbdd91f69c8a1e5bebd1803764c46f0f751f60699cd10132004ea590a4b34c4db022d86ea3d8fd4c4c65692e9a520e4a59ff4f2bdcdab71f31bf80108855a0ae1f296209aa095119c56bf6c90547d94f018a394165bce168b5536285ae6c6d2acf08f97edd003a57dbea81a02d70ce53762727c5c8f3c0a9d79f258ee2493a24be8fb5d7fe99ef5406ada865d4f7578a44a5472e7ee38490a07ccaebc3628e7d60bd1dc269c1b02e55dd217ee0863929775b6b9bee540cb03e036243375f13a2148c04f733563b7adc5863286f641360c4a07737ea19789f78d35d07e9dc5b02ed8a422a7cdd411826baf2f97bf1499c7ddf3b4ee66595122db0547e8b415dc951d772eac8e8fe9f6566f497a6340e1ee633f4ed2211b0e77b129f2fd9357e00ebee8ffa37145bfac66e85c893333e0185f00aff32d344b9ffdf14f0debda15b8364f27d7f3982469aabaf66089953630057bbbc4d7e6d80ed91bc78ccecfbd8ad4d6c08ea1c5d00b1f72f6c13aca6f1a334c75f8b7a46038315e2e1290bb5a2c9934b089d0a6a3b88ba111419541086834ca1fe34010cd799e2c611b0f17e8ce4aa2d7abc3a1a3a3a608859ed9b5b88845927637be0501b594c9de819a8c4bf7cbcc576c41a0e21c6f3c710abe88c4b082adbd4ad7fab6dfd0496360faae265a7aec014d62c40a8e4a0bce207a7a79ff2e04886ffa9e04020b600a329eab96af2fc59654e56c3a72292686033a7cfd4e7f8c3c5bb6a87f10e515e5d96a3abf5f14203a35f694752778a3b09f6ccaa79dff57d05832d374a7822ccac3e1abb3e858b7cc8c759a9805ebd94995882bdc4d5ea9b8e39a6640ad082b3063b76150952bf156cf94b18395919e40d9319d5478c9842a76a60680cf1357ca4b1971cb33bb8f137e84c7c50d3f18cce0ca1a39c68a551e4ddde5413d3f0c7309ef5e3b86648bd849e7f72d11d02aebf3561723f6928dc25e7f80bcf01ca00aef01a7dd1f6c8fe516f408aa13ac3689942174b142a59e4f47ea9058b1d2caf019d2cf44cff6f0ad9b6d027a28ebd68d0fe23852af4753be4dfb50d268435a9b8830c48b8fec0448c159408d9bb11849facf32601ae63d43e82f2ff16b125fc71f28d4d0566ea6b39e876ec1d1cb22134ee744953f2eb934d3cdd467d1e27f6ae4f1d99397e6d3762119663d06d042928c6aeb4116c824a987ce9c05ff1f165a376a324220becb76d0b5cf97cf8146301ff784737d81a78424fc6eeff38e402c026524f31c2d59fddd5671270ec339cab217df410ff185abbfcab34eb8ae200e920d6f95074d9d7c396a1fee9e477859c3ee297c1b4bd2f4e60331422bb4d1520cb666902a56906164e3e6555d4d3694e1bb43bb635c33bb99bba6e2eeb1171f15731eb96dc147d742df83d3bfa2e1490ff61cd3e52b3d7c0fde1bfccb978f7555b013cd35091e308d2a287977745b5b6c43bc077907c9b435e3b8968db776add050d2ca90cde44878b6b0f78f4a675d82e2bce9194a08ca06b6fae8f5efe77a6e459813e3ecb0621606fe4a8e8fb4f3afbcae236ff0bc57719b77e88a554ef67475881a51bd3f8ad4e60ce7600e4e876a2179fe463244d8f5db1fc0d4b1eac7340a0091c3796503bb34f89e189b1f332c9d622589b313e0ee46c9017c3837758cc7647ed470b1553dc128e95bc2a55e8fd872d3aafb4e7fce0b1ff7f206602eb6c25fafa2f18b177c9ae64c9eecd9f60ff3924347fcfa6fa0becf9ce8828848fd8d53fbe368b71e98ca2b7c0a3c16bb5061bf6a6ffa48a0ee951df045584725e23e9402ce1816350344c1df7078d6e34aa1376b3a9f8a51e38fbf8cce1b185d52a17028a644b1e468b23afd3b44ae6755807c784a0c77aeb1bf0c82bc9976a178756d854c3be643d6dba25c11dc2fecfdcd520f35425ef022457be92ed7eacf9af27041af32498fa0dba5943d086dafd43abeedc04b120554a272aa2ddaf24b5f8bd68a3aba32f43ea503fc5d840561ed88c671e7549533ed8807e75386da47bf336450f076c4f0f70d6b22e6a0ae78c7d81cc47fe13b37dc8a20dce1b3605fb28d06ae717c815c37b795794035c9ece96eb67770bb45b3edf248b2db79c672ea71e64ae96786143c45abb2aecff951582c34abb3a697b07619f0ef364608c0844b2b17c9e53d6d580b41cd8f9a6e52814dcea64b1ef1c290a2d97925250d52628f073a4a7e36db4d25d0d336da365c13ed69bdad25e798c4968388e6cb57c1b8e30b8417235e7791de71fecc961f4e2d8e3cb8c006863ac21f691307705b140d578f61913b3a652443a8bfa98812cde39c89338b174b66f7092c3bf29afeff4287edc566533fcfac58d484e414ace6292b11ff841895698b96f14a34ab38cb5483646b4ce1fe1e6bf8051f30dbbf90176d165a6ad22af05320618f4193452b7bbfef8d458483fb22592756a89ec55a3ae9c56cb639673aa8a17dcde1ed3dab0c5ba3d42475e178004335dcbedd53986d6f72d33ba1ec706e8cddf21af5efd99f8ca8e068200c0c8b39de69140ee3be86f8ac9326099d0c7927c7927ee637dab3aa9f9335572573b0f1534b0588e09ba500e149f2f9f1b88070665a183cc58721499375f6f85a2eeff038e26726301abb88077303041d55c49aef43cddd9a9dbfd6474e0208f92d26885632e8a22c14713c80a7cc617135f70cf363b0281d5394422ccefc6ccc500ba779129e5ef65640d39566566c929f28f3b0bec9faf3e7b73d5bf3181ca9f0964481877bebbc4a52686ebb4d5e12304b0d9ac3100c05962cc7b0d0d3916de7fc7fe6d3363cecc69585d3f488b036085ab42f0976b519b37719f024b2f53cdb895539a910cd337825a8aab3c33e4d8bb06a9ea5a039f717eb7e0c3a444740803a2269e69beeeda41c5285762391ac64607f320ddbe7ca214cb4e60e151e502f61c12edd219a5b2af67f27ebd4ec5193a24c3fb7ef79561d32f9ac32fc9be4109e2038eb5a803e5249abc95663e1f33d01876f97edbd1b07a35b9d02f60698ffc425679ad8b2e11ff7e4a636bf435d651a9ea8f0923e87e2feb12405da68e57192007413a80c27e331a57dd8c1f481f5ce28d4cdfe161f97c19928b9882c8259df13829a6b087706e23df61ae8bb52637324ebf80abdb1a084599670604e242344a5e9e45f7026f3073879512130d55f8497dbee522225086c2e15cc1f2666f075e5fc843ac5731712354be6c93f301c325e33472a692742bd33b58045daf1a35e25a8baf53db86a3ebd3e93e207849fd284b949f12d82eb11c7753e7d7b3098b53a6c80943c0969db17e927b1a8967b634377deaa98a5a02d</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="渗透测试" scheme="https://gylq.gitee.io/tags/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
</entry>
<entry>
<title>【应急靶场实践】Linux-应急响应-挖矿(kdevtmpfsi)——事件复现(含样本)</title>
<link href="https://gylq.gitee.io/posts/195.html"/>
<id>https://gylq.gitee.io/posts/195.html</id>
<published>2022-08-17T07:55:31.175Z</published>
<updated>2022-08-23T20:28:07.524Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="08d553e0b1b1000fb2889f72bbb2ac940aab3045756746b99a8ead3759d3a3b4">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327f5baed25678ea00d410fa5bde4a06792e10f882cd1ffb0d4d2a880776519f9d240925301bd295add77fa31640386ae7a006e9ca5fa62f4c44b5f678f14af8e9334565aa4c78b1ab7fbc92491be90fd1de8d39603ae8d0b159d3d38484ba99db868ff0540ac7c493173fcb3541a9d09cba38f7175bb00387aaed89128bc3372ababfcf748ea0297e2e010466db46cc522ff78751bd0127220242ee30d9b4e6f7e87e6be13751ea0411b30d7b11da066d15b2fa80d797bb3e5859183932d004d03d7f2ecd66dd3f611cf532b8159cf28acedd0853f9f0d87b89d69b4c31dbd81e367899f1f950449ff70e173c108930e597511ad7b012382ed2554a6dbf838b8786422d1625df0fa2cc430bbe5931edeb8d36c98377bfe0b19df6e9b6bfcad0089bcc4070e7c5c764d021f2164d35ec6fda3085c811a5dd2628e7c2ddfdc2ceb223283765f74342aa3296ac025875c1a79c669c281c5782d083b961cb68a709b93115ce281fe37a807b3aa69c0ea6dea89ac0cb068595e3eda575312019838689e320acdec3607a10fddf73a06548dd1ed7bf3c55b33cc8621aa12fc23672e45d613266fd2c6667f2451ec5fca1385ed045e421cab2d0bd4a2a352e45ff70f7e3d653dc3b40bf418db2d1acb6ad17d2e4881c7b600eb4b9346009f399a655776b5fc4f0dbdfa90d88785bf8085360736d5473891bf6a63c2a70fe6406a926bbd563e4f4194b89e02360ea48713bd430edd319d6c1986f85488c8eff4652d1071cb03cd15f6f3404091833cca849a53711aea1db1addc21ef6d47c69653e2f8cb4376f725ee040fa794c3d8b785be26e24d6ae90dc910dbe6e3340308d66a353f309d6b872ed71c7f36bc829032a2ae8188bc7fdacc9a869d99037f43a8322852c64aedf1a8a9969fa03bafe47fc7c1f9eb2d17cd0fe7ddf2906da30fb0b5be54abd6457a0540630c8cc7c0e2634c295a6a2ad6649ecb64d3438129a692313304cde8b415c8cf77ce90b063eb3858deb6c6df7364acc6e3b88bc6b579a618a013108ab2296fcd002caf26ecfa8a65a6f8817c80f7d3a5ccd4a1346836f1dbb03421b53e28c255dad78577a7ccdb01cffe462af753900c2993cb2eb85a416e61db1c5049adb5036cf0b7d9fb6ed0a29f044bacf98aea3a04d1a7c30fa49103e5b5bc61e8c42407642152cf26e2065d405dbcfc13644e23e49b7d76116aa223b2de2c02fc894c374493f36466a9623e471abd07efc4a4af41d68c0a7efa406568a0e60ea5f6c1688a5ecfd3a74de1474cd62b8c839fd426ca24db6627b23fe8031669a35f465cd0d0bf5331b0728c7784bdd3ca26d62e8505e30ba654088ae0ef79c8ab3b0cbcc8cfe748d2854d02c5c2355ca192422f0a22c77c805099d91bc4489baecb9ebe49332c8a737821ec573abc37401504038cc7ac10860f0f3d153b3d9355763dccfb0546d9ea16fbc333905f53b173a58a47bad83e660c5a24560e9eee03572895a3d340fa16c51e78d432ffa93c6ea9b266da1e3fd5199b25eae308ef8cf51e4b33a78e390f6f088dd5ce148abb6b9ad9ed0f1bcfd641c62e00ce77e9f58303e83fe0602a6585ed1f2146a0267d167da5a80c8595aa12d07e8ae8702674958b7ca962c0129937a9187333be336554d2dd8dd9149e9cd6ce2f2461769cdf2310d9a6ba7d6fea654891e1d6318bc64362a79c4ca093bd908ee8710b14240ebab44b5fe830a4f8232994db3ce6cc465ef3666b57b6fac235fabc3c4d6e62b86a73fb3816d3e94cd291a1b3854a1c5158aded67d10ee7c946755a76b719e72998036890fe3072140e2dd06bcb54500ec74ebbfc857c5a456774e4fc7d93a7e2241196540b526a438bb1b486544ce0eb540e6c7513e8f6337a3faf6fe0b4a9dcbb978c427254d8a956173472f1508d10d4de00486c0cc610b73685c916a9c922c15adbcb60e826c80f3aba40a32d57263023856a8bd9bedc4140f9cf81b0b5b8467d4ba3b28ce96c00af379a223a56d150eae5dbb91c6931f9fb7fdc0e46ee9d83e8ea117ef8d8420d688a350c6c931a60ee2b754eccee369a17aaad15a9d4156d25f614792b879a073d87c67360d0c8f0fbb27074d2a330dee0fe346163cda002cf57c6c3a3782a432a111e8d56fb456782116c56780b9d6201a2bd34b342e7305e3712d9a880d71a5111ed4a4718225167ac23774d3703dd53b43c2d87702e6fcf98a995c54ecbfa4938fc19694bbe670456164843eba45cb6b8369b17e83a21e5e2a03a21efd64212358f13be478fd0b4b617102bbafa6f27c337aaf1accd76bf11863f379322303b5fbb412f503e1136adf75c3d8dd97a5d33255e3962b71f61b68f5053c179642038852de6003124efd2923ab5a502138d32298ba13e70523631dcea5d11e541e96ebf6c215cb458f8079aa98c013d83881849959615727215835c2841ce07e4ae3559077fe0c3dcde20249a3b171eccd986cc3e380e4872c054e8c29f3abcb1877569276c84fb12e1420055faa4244338574bbac1f341c9246c16c3b3274a0c580d2a59353cf103e5d80734a75aa14a951a0cada28234ac88eb24124b4dae63c3686dcaca510c20860061c6802f66980e366f1ed2e16ed70149ee16c312ac2e659a20be4871552eb5571d5b5725309bb1542abb135462714ada74c11c6e213d17591a8d0f8ef15fee3cb96bbc1ffd03ede2a56ea7c388a4b9a483a5708e06b7dedf9232cd286c27b17c3741d5af17c8dca481a0932861be3b4dfed2b6699e51445ca402ca16a06389547b092daf0b0f260f52510bdc04668859e74bfbb845af0d34fb5ad6a534ec9ceffc789a500002b1e16cebf81e3b05c8ba8b82d19fd89f9f3be5be6811610f8e657a28359f601721334abd1e94b7ab9549535ff37c267a511c5af5b4bb3660d6d9b9acb58b6e098dbc953b29c82c90b99ee1c65178e0dd92a2ab27901749b9ace7e81716a5f3461ae9838e27245293d086a48a5818a47de33649f6ef090399fd969a647a5c3f89b99d84bac943fba6990f918d09659837d2197d5d2493a55e5b63bc82132bf4c316bc02803180dddbbc2b1a276e99f910921f1bbe583755dc58899b0522ba27461919c23e239bdfbbaf61ba7eed17fc123bafc34461e33cc3fcdea506f4f598a0e8dda31117d57c6805bd3882b466da1c62696102f63ebf008cf4c252f16cdfc3eee3e42ad80dfa20ae3a55efd5602f14b5bb6d3bb717d3041822b58e8e878457e84aec6e9c03305df946ec896a7523efd3b57c5def0320634b33e2b86753c2c818340b074c470b68ccf6c917dbe262b08454a463159533218659def310a2dfc9518056f9a801a22054709c96c7742bd577c3923397925edd0f0ace6b797cc9a0ddea0e17486eae4104232a7abf7febfed612900237d0ba7b21844af80d24e8b1a2937cc27c53a715136579da89aeb660bbfee9f305610bf143d4980e90f03f508998b066aeb3e47f79a86db10ebc3750f7db7ec31659bc10f38912a752c6efe31bbee7649ab5e3eeb282ac2c7d907f3825b75b8cf442c954d713c1e92dce3d033b31ee6883adb00bd1144a5c504976a6eb9ae80cb00c32c9288be38bfe5a804d22ff45da5d51b1e942e34774ebd5c842dca058b17927fb41133701b42cb83599fd8666013084a56621b5035ead2fbf4d3476bc8c0d193a4326c60a5747e4084b20bd8099f1c697556925e19fde4ae290797b19fe6754692c939ff1f28515440992b1dac62f7c6ed4c1517d1dab74d8bd7e51298bfc9b8cedceab1702325df42d6e768975446c1282f3a4ded8ad845394f18f0e90ff8ebbd7fbaf3e4394bed00d78bdc31fd0f32fd8b845017ae2e0de61e57e02c1b03e037ea7dc937bad673289624b2fcb1208d0eed7fc073e8afddeb6d5a235466e40e7ed1e7dae2edb576ac3811f4fb2e5f669617cd2403650c032cf18d052b8176f6ba6da0fff156d7d00d1a91f92d1f08f051e3df299083fba121cb00fa3f56ecf891031d203b97f3b3f9cf8da1959ad75915399508d31af286f4a8ee7d7f06560e43bfe32d06f355e492ca39e2699344e558317a9cf9bb8b234f150529868f89fe0d145b077faa2db9a8e4e5f0c2a241c86421c9cd24c6ced6a32bf18d34dd5e73b664ac121a8278f1da73c05f95b6ffb8ff0d8806f05e969570bbfe8a706363ce8eb34274a96a64d9dfd45b984663df524126c467c96f56e0e04edcb7b9ff7ff07be1121b69da53a80d1d8d38cd7ac838f43f239e349c55c97172454d0de50fca6ad7b9847943756448db92dfef7b3cc6160e1bed75597619c7c7d5ee92c710142c17ea509d2e681f4dabd3a7f31c859ce2068ebf4bea5eaf8db8742f993ad5c984562e8e4c0607de875746edb8122b7601de7bd17710c6548398e9c18ddbe42ffca3719b325e7de32b234c6471a52e197064f019358830b432238ea5abbbb18a8868bbe6c3f791888f8dffea756b22721b2e1fe367ac7579eca0e4b0dcc8a80892aaac12ebcb599c20a1d8939d34d791cfa0bbb50c047141a9fb9d1cf776000ebc0a61b91945a122ce51be93738703a2b06cc3561a20e2a9118e4a9e111da288eff6fb12e5359e2bbfe3b105a3c5ca80f9794fa6720719a2c329fa23d7cacb80b3b51f26db676513b7ec552554bd13fa492c31c5ee1253a25b05f5048d13fdb8f1497ad541d3973b0c9abb3f4448d0543a63a6b97eae11f3ff9999d6ba3cabbcd2431c41895a2e90328bfe69dfd47627370270f7d2d333168924fba11f9b87c98bafda96472c9f662ff6cb2ba994b83a10752aebc46a7c0f172219a9029ff0b99587ab96ea4773e12bf2908e9af87a6a5b1564a7f8602eb0384de81844972c503982bf5a673ffb1841c7341e76cef5a9c80e949515db4c7c8a05963eaf47269859ea108957097ff943de73ce35faccd0884057ece99685cc07d46f961c0cf197888ffac1e67f62230f1ceef446bb130dceb46cf8f063aa3498c6b3f5a778b1bce852b252293fe0b2d93371da246988840bb54dfbe1c02e7eb799512a4ca9c25b370c78a4ce60deb406cf5a680faebb8ab97928a0a8dcf328e9732190435117f9fbafbf527a8f01b4b3258120656949217d0d0b409bbaa311a250b1b8ec72f0623b7964bdd307b25de75c292d805fcc882f055c1077ad013721b4694c73e4ad9d3f2e122e4f9df5376c71cbc704f1ac40d0a65012b10c1af3173e628d9a547b9f8a77778fff9eee94de451522c532be009a15cc3e342d5d23060c40d7955e1fcf0dadbb2c29ad9d1957ca32233e21db9a550528c47c4aa75f036ad21b199c0f16a5723d48364b136ce04fa8e83b7d665db6d107acae20f35933487bab5a3599efd80dd7840d6867799c1456d76d0ef6ea8903d408479adffd8199c4d405190c6576078e6071fa915da4005be9a2a27f360d2220284e28c7f9894d2136c5c9ed1269facb62a30048b5d641732572516868974393b7b95fdd502cfe2c7ed81a274637fe364f461bb8d6e216213d38b6835a3da5d58c77da7212595984bc585b697c282c68c2b01bcbbebfbf8d7608a46d481067dd1268ea537e81d4c1afd25d23bcb2a62e444ce5fd0cc997e74b38d854cc7e2c06f9ec4b69f338440b3c9877c85eb3ca395e4e097efc801fe059b8001ffcc8cc2d0ac5cf800b02bd81fe45d2fbbeedd6d4ff04785449f00124fd2e4e4033fcdeeef6d2710ca33ebe704866bec4eb92e990b7c96723bee93e8a91c147504c1776bd8f3995fee458d4cdf14238732a0c33f50c91fcd3edb264e9519c21ffbfc4edd20fb5ad93b63856cfd881b9531cf892eb357b2c1782e0cefadca842d1c5e7e0c96a77d1da812f7edd179aca46f6376655be5b33e851e62942d816df8b4fb0663470ffc8eaebe3254d0aaa8f8b15c12b9d9394972c40a31b00c578394e44dad2716b5d2437efbfde407bbb7c967632f45eb3858d6eabcede8e6432d0ef87521231018008c6726da5fc601b21b44320ff350e18b5aada095f16d28eb79cc8eca8722f94dc69a954e3866cc549de3edf64cd0419f75e21aba1afce08228c7f7f5c990141a73a05b6b0ce65e35b6104643f1547645dc066be1c0f80a36e5b675174bdeb6b5f22d68902703f4292ab4fbc7ec401c6f1daf00c2d8c6331dcefb3b5d0cfb816f4204a90255b67365809e439b5e10b300850a8aa2e28a530b1f5e814baff3eb4dcbb93ee7a62e832a9fb275624df17fe9e61d7dac5f384a3cd795208b91e053d9e12c3f6208e0abd45719aa3cf37c2fd8e3a62d6dd515a99272c36ae6a301ee3b16b85f091b20ff68f944c2bff5c500698f4ce2b297f996c0f3729e2b2c25ea58e3a587edfa5205ebe7acb945669e91cda4f8d550d86c70b1b21f81bba23e2a46afef6fa24922b5f5d14abc92f33c08c0d5ee0b012b15942fb990bb3718fe94a7babdba29e81d29bb32e9f83378acb4d2c0b51f83ebddd3c6775a3580bfadad80ad43d82814478885209a98916aae2165ae1d263c29290136fb09f089b66f6131386ae2e0f60f330f9d4bf063c12582f0fa64c8659474f51da50fb91eb165082a2edcc44907cef8026a8317c7533289c0bc12b1f0c0018998780431de0c9df88d0345ed7e9b3b56b10ca6eba892113faa027c9e5b2f1330659b0559ab55dc399e8bcb67d1c843496504a749696d5d083379babfb70708485d993b090d3713a237eba3ee45f359e60ca6d592531a9a91201b55f978f7c512b1c471d006632a7f877c62bc6ef5b770d17be51d3063d5df88809ec68baa42e730c39ece9c3ddc3415351ee21d96f8a9148359852689a353e60c5bff03fb6c5f4c49777cb29810ec182a8c5dffcb4b909546f2e80232a7007d73bc2a52accd7de938595eca57472b62d4472ab8e5792db5b4dcda7391bb8292a96426983d6b539e6ee2f08eb7a890f299ca94c940a5b0da9259794df6568b6bba3a9806984c8a06d5dca6d9fc3248e716121ca5985eeebb31f68812d28e9513afad996f22c3284e2b831d7794aab20905bbd37db770de4d096774325939c5f6568b3ae61fbb074cc99692d717adb4c0ae3406a257c52a263f4ca250d1a5f3608e9620fb20dc99607bb75f1a0642f3366e93d010b0556f5d279f5700efc0a598a4c9e98930799de27eb2d185067299391f5ffe00643d8c38e828bb1e2aeb006562ccf7a6cd32ac606adf1ab07472bd6b15fb67bbf303e025e3d9656cf0b0145a052cc0cd89b542daa4f6e2bc71ded752bf618aeb9f3459c2bd42cdfe466e08cf17876befc49e5594284e9cc69651a35d4915a1b927d5858a112d62191bbbb6ebec5945cd2ac575f8fe8c2419e1b335c035979c49ac4066b6b650c2e6505a6e6eec84b485b2b0633728c24118bc819998d5672931cf85f1068da76feb979e115f423a6c24cbb8c808bfc9c43d356b5e95342069ff0c8bd3ec708959e9c3191466548a399135bbc8c47ccf01ab325cb0f1e785222b4ca00c36edf1f17c6116f373c82dc164467dfdef2ace21cc35d10bec4233f39f9370d25794f0193733f0eafb09a59a73081990beb8aea845b6c8886976353586269a5772ae67b0e4a333041c123e421bf61cf8e1e39c1e72e2a185a5f951a2918acb0ff5e32564481e9546a32a1f53e2eb0e3f29ce7550e95da420e78a31f16e47f3af87256e808035996c8e96a1a83cd527bcb9a3ff591ac9ccb10268f018b703f4f746ae66021e09ca161bbd052e8980179cbab4feb5a17b9e8d28f4a63d157dc8836637128e7fcf179b10a7537f64fa60bf635029c32d4aa7d493c82c2ffbc975bf9866b33bcb2884e817718ac91290d7f660b120d8d241d17e66d49997b1bfb34e036bff4e19e2c48ce4de8fbc53616af502ed0270ae6d6f8ce9087b02de8c5ae0e1ade96c017a3502cae19641a481421be6d49ed88fb18320c299d0b23753a87a16d2353fad06c640f0ff59ae96683c5e48f9bcb4ad40505823cf0b01ef77845a181b6fc2efb602c6ee68ad055032527e1eb109dd51817afa9c4b8b8baa78b8bdefbcef823625f3a8f31594ff3e19f3610c3e6a203b064c2d9740b54a32798518ec68b58c18be1174f6b3d8511ebdec8eafbe3b0f4acc3466ec3a06454877d26c42ae9e0339e1f7104d7851f433519e01d8325f2ec6169827936e45481fc2d87adf7cea59e1b7472996391710e38dd4438c10555429efc9db325475ac0901b5b042e4778b10e2713cf7415d7e90f235508afc6c6610b0104b819c02ae224a6126025a6a9a448fb78b18309871dcfe148548a436ccc1c5aec8ab44797ca6c265f69c390a3c8dd28b950018944b3d75a1b2c316bc230e3c4316e938cb69adec57ff9217c2fffdcae2285adfb19f19820a83c37f69b7126dcec112aef3e91868668d51d1cae00981aa3d7b6cdb83bac616240b16d2159e7d0f188bb5acd860b69769c499ce257f35367c14387c8f9cd3d5e6baa2b9d8ea1de6653981e836a121f676f9d1127d9cafd7529edb53dcade91963a01853da2bd8bdaf813bbdab52aa3b6562b715dd5fb0c709d9149f4f29fe9474c9259105ffd95a4d7097f73028fdaf16db2af4d5250b62119df3baf561c278b488e080c0f0ec7e5d9b897458719b611931555cffae6d2b35c3a364c5aff86cb67ef9095468fca4d62140b2014ee2a8f948359ebc66aba311e00c4930a913b3e30d6a5f618873bcc33e850d48213f1074cc86b3e88606baf4b50ddce6edd57ab7c45ea7247bf6b93f5748c51fe9dc9dabfbfcef36640c0ec99cf00c7fee61939e2e7d8bf49587a17d996e2c7c71b93fbee156d42e06566a1e22976626b477e3e8eb572ecbdd94edd5913e31b2d760077c5944a328c562a9a332df73338e548e14e9f7e22dac1ded27e511c9501e3ab9f40b680e68e7a82e4bfb48db11ccdd323db405178c25afa296b1c774cdb01f8c4d619e57bc9884b65a5a9609909dce630e97799fa01de668ccdb6763754c774e40a911bb01230c8ee8ee3fe3486716261c98bb0ca0c56086b1fced3d2f0f6706ea7c5312dc40b1c179d3aec14320a6ef9fcc63c5d8b0719dad2dabdfc2e5895f9df4985f5fc81639f3d1535e6b87bce9e62512cb65b3605b6d54ebf8dc7c94d8ece3202c1c18d6bcd4f75d1419c063fed1d54e487c07980084bd28b65a53da80985ba23e1d85a7ce88fdb427eab3658766dc0b074c4635a17f50bc49aad9391000a0807d473b763ea02d0b7e7f655397034a1a37c80a4581d80e5780f52320ecd841d81c33da70a9a979e0aa3b6fad68eff554c589d19a8e509f8fdbf7ceb0f5fbac12d8b3567f2a6e6aed24a7ce796735448fec8b826f5d1fe703b1cc6174ff6fa97cb2c4d60ef16afdd4346bb411a9843cb6b70f9cfec22ab6da782fbbc25a9bc21877fa05c572e84901db2535bd4da47584d64303823b44e3379137965569db423bb2dc7204964e215d9ac04d6dc6e384a5f9270310e925e8a146c566b6c2be2854dbd0d0fa405c8ca06e2f0679a51e7c1780bf83283ad046552824f249d74218ba32402fc8a243ee5e82e9bffd659221f3c97030879e0c63b3906ed94680e99291103a9283bba3fef7e4532b7cfd74a6ad697e1fa9dd0f1157ef0e1f01c9c0cd292bbe3544044838e24bfcc855c2e824ec150972d124c96f92cca29a1ceec0e684b3d3ff47c782132f127609aa17fdec4d152048db0f76020dac44fe9fc310d49784a2d3211a9e60a86cf668cd9c2fb9f1e27b1c979d8ec66f0cf7d61ab4fabb21c5dd77bc1efe2df336aab644016901291c0010acd9aa3bc1a9a0f642b959511319017f51a86d368e18063b1943151028dada885309f0563328886d897c06450f8ce879da400b17db2c028157758367b106045a49533b069eb68321721140321530a7df13e1bb95416ab83fb4cb53fba76a2ea0f65d0b405fcd46e2ee0a679c92a82be4093968c104839f43015477e91bcf36c22ba6a71f368d977e9c892c25f5f100faed39cdb4b4990c149bc82fa7d88bb7f53bad5a235dfafe2cc74c157133402f4b7e78aa52c3c03e83800fe69bcc05e4802e214d3db24de2996266d8a5d330d43f22825c3b21248613f8fc18c64cc6f7bcb4b1c3ee19bd97560777b3a1a88d8b0b4eb7450f1fcf2837044391c5ddf0cac5355498f029987aad2692bfb419c887b8a1e03f832879dd9c1fadc944c5dcf820cee4f79da2f20b6814d48dd529e334cacf307b7c9598859bf11afe87389dea5968737c22d90923d5ae5a6b32f70f6c644dba6c99af5086cc8beec0ee1cd659d87720bb0d096620df8495e21ba4c3c3b7510a4aca21ecbac4670529ae02fc7eba88fed824355d7366c39619097c20aed4bf1d637ec5c3f1aa0aca6c644e01da1bfcf59918b7f55dc900b34be2dfef337bfe3326a1fc7b1873b8767bd3d147865cd845e24cd98304f0cc05047f02b06fb7e30fa08a477140fb42b5e4c3c4709c1eabbad1115d998098bc1a93ecbdb5d824ef0aec811e10829abe8ab18187d21dd4003677afed328acfac6e3f9238b41bf0d936e8cc469f01dc767cabf4ee37c98f1156b09cc32190a71718477995b5f63d448d00ab8a77d711bcbf66373bd40646c8f8a7859b31e1948572c096f7843c3066605cc11b7850800d4f9cd09cab223cdacfd7ee8b1773eaa63bfbdd5ff5acc5e1e58cbc2fc4cbfdb0971f146600ea842741218eb10d518b1efd798b92844acf03bf460ac6caf32c18e6da607ccf96c72ec1c65253dbae2fb84047e957b4d17c2697b325d9d88145e5ef1c0c649cfe4bdedf6eafff90ce6b130d184e63082f57f1827a450643c6543ec36178b6e34f535b5f4aadc777c2b91dc9fd4b87e94205498d6b94f5b5b4ff8140ddb56db32e3cd6cc31a1e8ca5a82664e268d069fe495211e9d56ce4cdcd70d8a922b45fd9ac05ddf0143b35ff57a8eb57dfdb9d51cbed755a0de0c5d08871fde033f18bc27127878f84c4564fb5f649b0312843423fede23cd9244544f6dfb0f89188a6cb0a482d31197632e3f996e077c32e0397252f5c684020a668b7cfc4c55add95de13df0a97d5045e35821a602bf6e2a0334fa43d0f6495c1f7fb231d6f20b3f885eee89a730447d143e7ee857c71156aa4433ea904d8be2e944dad74fdcc8bbc410629ecc651f2ee7df46c2b714bb20abb1cc405cd1d6a8b6ad294fe13bdc589c8e689ccf07691fe97c5d541c6587c5bd8bd1c7e7263a33106c224fd8454018db48a8c06b41fbda620ae62763ca3e8b4af230d8fe8dcbbe26dd1a80df86bcfd90b4b3fe23c3de09056bfe77422271637e933f83c24b9365380923aed32a1900374176f62dd7101a0cf9726c92aa912a29bb42821affdd0595ec529cbaf64c008c94b2cb9038efa8a4a47ed589cd316f4d11a7d6634fd72c449c440b73d402d0228553f02c429671d6e73fefc1075de2d23a852c824eaaa242818f8265279c8dca7b7682f49bc3628f2c0cce75a6a304c2d54d0577043fee8cee11eae301dccbcdaa24975468e86a504f2b5793d0b6558a95178ee9763bf1e967d6f77e1376ee10960db81a7886005ba562e3263fe1c06afdf2b1a0aee5095a803518eebea6b7aca3584b9c76bc4364e290e0a9369ac18f47d94fd9e7868cff5345ba5333bf663eb334d41c8a5c1b856bd850b209356ac217bcf7e14fd01c0e091be282b8939aef4b3198e723ce54732188e55a5e2c9914716957d5076545e5cf6da1f1f150d5826e87301592ea599c670f1657444fcc8609a4751d9e842dd75850158dc4d7372d1372eced92e746a11bf639d8f8367a59bcd306f9dadcefdfa055129854d9aa525ffade8f97b1251fe6d5ff1b98901ca98ecbabb2dd1f1bf5475cc5dfb0c0b478c11de39e1f4d07e53bbadfff1c03092071e6f4cbb441240fbe2d7e9ae111fbc372aee7bbc7f8b1fb618f8a48924b593981c157076b82581312e4448acc02ec99092720b676af1bac7c23636fe8d599434e1907c1404a5d620fdf6be447061fc541eac47d3d9b104f6c38c7950f74e65eba15de0928172e7a785e104360a645e5c41e899826d00827916fb3c4f60f03694bea640e2a205728d3079df156a091aeb61d3df079c262edd2b89eb5ed98a3dc5d9b132591263a61f29196d5b6487ab91dae09ae95a5769722cbd937b73edd88c2051865ac16b0ee1d1528d4fbd3bedb71fc319dad77b978fa2b351f7c124bc41bacb4c45a935bf3b2a7519a3f3afd287be8f7314c60033d907677f6b2cafc9865be255e66ff1d8c75876204276760b61ae2845ff36b30d45621d735a6f073f433999f33667b2d79ecd85394cca13dd4915d70a318914b008b22ccec13bb699bf1814893a6f831b1ded984f8ad720b2bbda02b736ffda8362b47c3afdb3aac81ec7a6bd74a81f6111a29983705594f783936147076a0e89a6240c9718b711762ee0ffed0270666ac3171b7a3695ec28a629fd6668cfa1d9fc33ab8d106598c238ffe8ba3d46974553e540e1fef78b8f4531c56d8c1cad434338d5960e2c4fd65b66c45381acd83b96f9fbcd150373d5ef00304d47554a54ee3ec0d2961426e101d4a4c179dc8d23e424ba63270689bad4f6089f163015a5b5e2d0516142f3c5fe574e15406649043af39cbe654080d3bfa6dd751f0a72c169928ec8584e487787f85bda56baa58909bcb501b9fee177593bb00e06213842765792f8006d65c53807be1af6320e4af8f0aebe5dad3c5ca8dc128564d18989de36af5af184edaffc3d9745e6074715f7b8c945b6fb9d6dcd9a959f0e568da29b5d308a1ff23dd3caf251b14abfb9374776078fba81a583757add03e08c492fc8e076c28dba89155bbc16c8914c8a1700318d47a68279f8ca</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
<category term="应急响应" scheme="https://gylq.gitee.io/tags/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/"/>
</entry>
<entry>
<title>【应急靶场实践】centos8-篡改页面、挖矿(sysupdate、networkservice)含靶场环境</title>
<link href="https://gylq.gitee.io/posts/194.html"/>
<id>https://gylq.gitee.io/posts/194.html</id>
<published>2022-08-17T06:52:33.948Z</published>
<updated>2022-08-23T20:27:34.169Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Here's something</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="7b6f458924714a5e21037f23ca0adb3c790ad642c0fe7d0329363be4c165195e">38883827194ef36336b01b2615c76eeb711d9ff0feb6e04687366c67bd05a293e50a1028fb29dab4802b2195b55507bf470c655913caca30cfc6938ed7a4101193e6f6a2a2675e9cea07792e9d9a45cdc083c2cb9eca2b20bbb8bd982c65e0d35375716327efba649dbc849c319c643873cbf49c18f01c3d1ad06e8538056ff29446b4fd93a8e11079a414ab71718f477a22deb1366822e75ab831f099ff9950a97cb73db151b65c3242f0a00abb568ea34602556382056cd5f538123926327fabbd21984702266bd24339499f3c16a9d2e8d3fe637b41be7040b5d525550585c18a3995e3b8e3e535124564d07da913cf16fea7ae997fabea7a1edec49054608ddf263c1c36ce187b4dc4462f5c9a372555e5e78c9d3bc36b7d1e7efcbba8bdbf5217ca443adaa5c0572d09ef8581be8946ac9d0532021626404efd9943e7bc2bcfc5f010e84fb1d911e8d63672e60f8787b8ffa9939fb7ff709c4a3a13303542bd997428ce28542404d129d9ab9ddab35e3443ee50837e44d39f3cd27ebcebbca679e7b4411db6c3276f8b52b29390fd2a19136e8b9a6fde5367e01630067fb95cc9eb6008d25a49371d386f18b5c06d8b24987bdf9709995ef3674a40801836ae7f7ecee9d46308397e042ac5872f428bdd63e49a71e680bf4f0fa8763407f521b752e5a35eb28eb952d9d021eb7325b8a36a8e08c7f812beae4abb0fa428081955f20f3e65ffd9411772b929bc50cafd3b63e82f36f3540de23ff5389e847c6aca1015967e1ac5628368b7fb01aaa0c32671b7aed6fbdf81a1bca3822e5c2d2a841cefb6aec21923880834d4639c26a653297f9284761be83f0499ae252fca603fde086130a4911b8db1ffe44449ae1e666961ed976e5de52e246d0bb273c4b4db5102ab372072d6e61ceff2c0f04daa537246c61d109f0aaf5041f0d98595fae016f7fbd92c4426408a4e018a5b0ac4577e974a904a8e0df659aace8e11cf158e6a08e0c8daa2c85491a7b182007ff16c93a469b74f272fc9fe9b911edfa32843244fc7e7489ad4d1b48579868acf69f00e30950516cefa60e2469ed84ce9dff487bd438195e5951b041ff9f91a87810ee62f2451c41c45fcb84aab087f61bb7f0daea0e578288e654f8fd7fe4f4a0c813a0789c55e70c8990a22b7bca808a1caafe40ec11de9b4ea28ffd9c71eb412a3a723470f4000e4dbc168dcc90ef21d36bb71112ff82498bd250acd6941fe1bf565cdc5a713816912761178d7c93c7f5d0bd721e724cde92b4d039cc160c1cdff11d9181217b5f8c3dd274e45d378a57f8a270f9a58a4082f37a53e1380567070420f15567a3ddf6029af0c2be3056ccc5918a99b6832642e1f627ae284900d40705a24db74b120d56eff7db674e94d74c1236e38e35d7674ff2a9b8275176d28a6f25a5fa87d5534a44332506e71d0a0e3efeb68d9de1be94ad82c7daee337ce4a79e99e811faf81a197ee32e50d175a33e802736be11a14b0c17a0d5be38a9ab2619a8fda6edb74e6e33e7807ade510fae370c78b93e7b423d0448b7129ab3d05c46ba433f215a0932a92daeed61ab4fcb4dc409c5497aa5f24f8306ecd1834e59e2a4ab6ad04e09e1423f3d6964bbe1df54c3539a8e9629658c41f304ca70539c15a7ede93538b472abb70360cafc49c9db4e70affe4574d2aa463a3c3d4d1506f64e3fd643f93f8f85a2333d8d3e3ebc0414b029005bc206fac332e51923c815a7f5cee043307272dbca9e520c8afb027e69f0790a18eaf40c7ddb09302c0831188562e8f1815b68d5d6fb5197b60cbcdbf539241cfd5d3c9a53148d0516632499f3871eb5e9e86ed2e9590fbff6146167385ce6f4cd7dcee0d84a8904abb888e879aaa1420ad90605ab6e926c8bc3bb8fb3bea61132c959e23c2c4867091548014d72039673cbe13eee8d6f95e4f72b01a00b42f01606aaa40ff4d9ebb006fa3498ff695a6aa2d9d71e71f611c13e4d38fa5c1048a85e9364baf0376755c94a9d6f2cb497854d2a6ef82db59b3bc8a97e55364e02f5d7ee99a58ec7a0b63d8be49ab33540bfc47d928232eda4ef2f0789fbc714823f705c914b90f045b9f8b825b72fce618a7d3b8931bde8457a2024644ab292f09972f30c29e1f1c26ba00386786ff471c6f5581e82cebf1d6aaec3bdb45e9da729f9956fd262c3787ec39faab274850f51c2db1526a73984d89ed0027c6fe07f9462b52e5cab49a0c80f9a4fa534d12c5e61e1a40ae336ff4f4f8b518568a06a093fb327d92c95ae48eab512e39b1405cffcd4768cf8b4afb2cd658f06f6ccc44e4e5817e3a6fa1aeb7238fba9607f092a8292572249d0e379357cf7bd58d86b2b11d85b0fcaf468135f2444dc4a8367229c319893089dfb05db9d6e0e121b6514b6c83db2e9a04134d895d9e176158e84bb0c7399613d5d68d5d1a0705305589f5cecf1bb93a7247587933cde97ed0684c7b6d6dbe725b171ae9012c2f66934f012485e6e7e8940012c9ee768c47c16fe6448a862eaff062d738e01064f718dcde097b02c8c62a1218c77d97c51beb379ef6fe05c96c874b1d4e20f9f79113dd8ea0ffb4dc9df2407c7748993c55a123a6bc0fa91b09577aaa3b36dedb807dddd24495e80aeb03f8c7e8f4f80798d780b0ca122068ef7b8c936f884d82e451a16bb80f5dc08f4bee5a154b9f33295cbdfecae35b37a1257905cdc90365a9aca569c1165f73438c91244706f1fccc6a3a24efc72be468decc1fc05b689a538b2a0b87036e52c697af32c92bb02d12d108a362d4f5ab7ea1447ef8675d0d864dc45e06337ecd7aa2195477c44e3bb3efc84e8a6d5ba702507bf96dcc3aa41ffae11a7e30215df09fffbc65eb6ee5d644451a82b7c13ea40bce4a44cfc92923dd3c83742d99b605990a378a0c55a7132fdafe71ae9acddee7bd165dff4a07a4c039ff24bc236fa34fe884ba1be56ace7568112ae6f8b3f1dd522751d316dfd06d0fb32427212b735c27e97b45aad2a662832e7b2498b67db7baedd1f7191fba104f9c7c0c0443aa0a9b2be18124432ab5d7516db369abbb1f5575b7e1ff1ff49e0ee3c4197667fead3c90c5e7fbad2fdd488ae3893cf68020a64803c04dc683408dc91acc230fe3e2c39aaca781a349c1ca8ee12beb8c05b5c9dde41451eb3d089b144f36731e02f9d6f6c334e08d20e1c10b3fdca745d93e1875ec3d94b4f2bf8c3b0370ab9724234d0bab2427cc497763da697528ed9ada7e143e0ccb508151eb7a40af6cd7108e00c3900f45304163e0aa6424f20121d356ed084c7a17333867667f6deb90856f1bf4a4a9b28dee77360d29e1a4bbf2548eb7702b0ce0817a4e976522ba9a6161e586caa3af5f9b9e5dac19a6a98704eb7e717b3689090435292e494f08385276c2cd6a58c1d7ecb772401bf613262cbd7ec494c1859c1e0aa77780b7946d2730d8c21a5fd7be70ad5cb6790ed3b10ea587403442f364d6d71f583b86e716530daa35bf2ccd6a802aaa4f3038b069af3f1b93cf79797244eae0b7de49f8d34ba2a68b6b007dd3e649ba48cdd3461b9eb985a19e4d6527673e80a6a817be4d76d9c00587fbd80efc00809f76f33e75f2e2734db073af85575dad8a1ef67bfe04bb48e65d7108472145b9148a166fd18c1b593ac589a2479805798edb83fb69589836ee3a53e989f288f9296c44a3b331fa568bdc26c08fc2f23417368a5ad363667481a152cd30c336dd9b5f5b649723c44a1b93710817432c3f84742ca9a9e55133f71a099f1b29fb2e69c6ec1db3fdf62e41b11197a54c97f6028b00909c34c823798e6875bafd5182235d7a9cb6d4af19d36d5880580f4bef2d8b23f6b3bf797556482cf4ed7cc66dff6acbc548b3b7229ff777c22ff40aefd3d20ddce97cff54222a5c99eb54bac4be120a7e2394b24b164980928db9ffd734ae0bf94407344788a7bf45cbb181e5dc781030db7ed6d8c0482dc68a907af814be0d6e1b4a32c0f9f15e6cc89f56b574d5b5951d8a48a95b3fd2ebb0d3fc2bb04260498621f964012bba2e4bedc72a221e5ff59c5ead1e7ea031e7b5c5bac055659cacf7fdb8f17d3d6188ec25978a0e6694312528c67a2084e30778f4709a67a1419bb5ee7470c2d0a20475287d48262f238e10a9241f9affc4e2362d5cbcc0895d1178e06a641eed74d8c3b16822e39b3e1e43463194ce7e05c483f0aaeefc5f47432348d0640afbd712c4e669d0112219176e044ed0ef07abd06af7abfeb846f6f7aa4a38099c61b05b393497d34baef646ead2d67928c9a7eb5164874b5981c72f2cf3f9382ff910e48de5662cc23460d343299cbc7c985a2cf2ee34935a9a6c3c7976038a03a39797c13c0601c0b64b2da84e9872bafa7dc1d6656180388dde8d1f648da535e67311c1f575530b389bed2c9ddf46e79660ea892be24ceb839159f6ba107c8de943e02e1890863a1c1b9a5cbb024e764a430639d6d6a154d85caa6f01c1b8a005efde2b844af34c08994a63fe0033293f23525fa1973e685301652c89b20a0da963f8f9b984208f4debbb2565871855848c4d61a57972945255edaf9f09e35c3a54ceae9aef55412c53fed83732f8d709961baaaad3291102da7a40c1a18b9ed2beef1fe9789687b2f0e178a117e01b278352c46e58ae8d58c02677db3585bc01098c05a2fe79c417088c3184a045aa37fd9bee5fe663a710756bc98a5ca273693a0254d83d9d92feff49e071a75864037e7f203e6cf4287c53e3a0e0a4ca76c4a70f1a199b3c84a13578fcc8b207a7bfbb0e075445c3e35fa0dd579c5f55fee037b1b2c47add2d09900f3d8a8179b2947e5b7aad9f3b83371de2c82bada54a471228f9aa54285c82ebdc423e4381c235466633e6eb53b03c654b45f7bc7f41876c4f4095ff64a8cd409921b4bfe5fed880deece7a5e7679b76224ab099792e000997d36e71b30a06ecc2060d9095e7a3834aeb5e9e0dd951f5e6421fabc26c73604bd641458af1d4aabf6b30604eef99af6b3659a8e4fec4c3b39412805f02f913ccce048dc6554169818f421b503122386b23728039a3b13539574e52a643567cc8a47411983713000e861f8e9dcef90f71f4fc2af8d00a77635baac37eb5e7e5ef92de321f9eaf1d4577c377c375699844805fb9da8935c800fdf96f164dc7112b21288a3c6315da98d5800ef0f009a310cbe3dc79662fb9cd54dec4fcbeac446288acca67d3774f0a9f2941d249a60de7254d33cfb49f9beb539d0adbe7ffb6e8ca572c2924266af5708e4ce667b4fbacd5701f6c7d0385b8a83ca52d3c01f9326d4f9c4fe575f4303f3a47d39e64005ec202359e3a1c1a15b3c1970d4b04a53530fb41ca36bfaa8b31354a59969d57454c26305f3e65adaa8c2ecf81b1bea25d71eed2be05a856d0ac1ad188318f69f9673d1a4328af1b89010365d684d996807c5f865f80ae9be3ad25e1a68d9a33663a0ecefcb2242e7ccf679564df9faf6290a7de634865c3999a88a4020172f926f6a8b31dd7f32be931ab5300ce7481ef3598837c40c1e95b0d8b0f3372ac5dcc4694ac2d9fa130f9b5973929c27b37db9c479388858a808c8b0a7befc4ee9174bfc50a7f086eb149993733690c37b9edbd438f658cb9847538623b91535594d0ba116dde58b281034fa80bfb8641166d2bd8cfc587fc6a35aadeab567359f0c9c8cbc038beee5f4439993988cc84e5436aacafbc9d996d6701e5338828d8f23fd8317263f5df6842a77634a6d1282c395b09d080a9f362d5eb765c4649f68aa1ea6dd241649513f10d8b7e3370ee3343e9f399960b8deb268fe2acd6444e766071dcb90142d75b450ef09b43a7740fd8a782bff977056ab1aa36e9a64c96b855cbc725b15ecc315d0c2a1d5e05861b11caa483dd631353d9244ce1188caa12936213dcdae6b4791bb4295a050b8a6b0cc3c3ea862ec62efda0f5ad0dd658daf68505d99dd0d2c24f88183958ec1b6674b7682c79a57736546977ec70992beb8995a50cca0d1133b9c305ad23edc50618270fb37ee071bb5744f7b8df2e9b31b7bf25fcc7092fc8eecbf5f4adf5153771feca445281e24a5cc343e63f9012f40626c468b5c045a2bbe6d8dacabbd2294e5c47e658ea8658543408fe5d10a961639d2ac2e186dae30bbe4cb1b25e7c07216d62dcdb2d7b302ae66ea7d06204314297cd487af0f97252e5aa2a1c8232a2553f037a8da385f856db2657b3cbf305758f6e1d57c88dfd836e8d260919dbc1feb6d060c0d1d811a308ed8a1770ba4b53d2ddf691715b66477348e0e0287df53e08ab91d7687aee1cf4667cd693e565eeaf33928f9066cf577a2566b2dec8163a863810fb1ada7039ea34b6dd25c152760832d2badccf683c99a1c53d5e8e4d3a642f7ccaef08217ad6653f297487e47943b9121b1e09c6045f81c51b82aadc271655a4f407f5a75642e865095e70f3dd248a580eb6dbf0abdcc9f3276681c244bc6fa72928de581d2f6dfdaca25137119200bdd2309cc2028ffb74fef2a9cf6fae3c1e97e7cef735d46310a96111f173ae348eb22d0e85e7827963bce18c2731e4cde5bd756368f5e39b35b2b9f98cee4e0837132d0c107b35703d0b240f7ea9f7ae8d370b4339957c0d2c61746b58684793f8957f122af65b7563a605f5d8eba2aef8c97916db895fa3232825f28d1cf9313aa3b13f839fb1a40c277e3317d7764252cc26f2b5d3b670f4f5842b4ba8c663f15a4caea0c9b0f568de589f0f574d6f80d9f60723f4cb78aa30373912e8e6545e54ac45f72d6d3503e396bec70b7001ed24aa3b3cb034f7be0eaaa4a73320bd18f82c7a730b34a17d14a2f34d8bdc4955a6d16307cd0289e83fe8df7ecc626fab994d28482de071177bc5e27a33b30d4101650cdde973c46d046c59dce97f3200ee9059213b06d4f549b4d06fd48a98e98a3709a11a927e1cf23fb6b7ddcafd7ba6746343191ae8f6720bb4df0ffa78ca2e9cc789225d162ffb2f2be7ed1d92ae65f248bee10e1e5516d4e17681527cd856bd063d98f8406c4b0eae48e373cb1699965a3fdcde7c1e068adad39e41b3082163ddba4384fc261c4ae4adea7114b8f01b00b5ece2544234adf36964b1344277267c1804a00f6eb3c9fbb9afdd7a9090adc489d487ed690dce6ba098d0b75d6a5de3a58f4298790de8770d5f345edfea05a27f83de41cd0f494611e6501d3de3a471884195dba6e83b407b387b083c7557e0eb0db6a3cdb9e740fa28e580e2d6568efc9747ed45a0834293a6dbb0f00bdb1e3f4d1bbaeeadda0b22528f7c8e64807420b3be93435f22fc2bf56a402c41609f9db618e9a473a239306379a8cfd8b061cdc43af10ddbcd822d763b2cc9c79aa73c20c2e50139f223b068f2b99441a7495c2d5d240dce29cf0ee139ac1dac056ab00a3edcaca7eaccb208a94ca0be480cc2534d3f7142c39d3340371a55264ca66047482a3ccd36f01d941e7c91814ed73e3f08e868c53b239117e16447914c40279025aee4eb0c5471067247048041d7888bd68b739c575176e14a4914586bacc37349ea6c9a3dfcabaf3472cf18bd1e860a911cd96a8abd7d443ef2bc31ce88244a5b6a32f00f0bbc55d3182cddaab2f25657fe944a021f2e12fbe99953a4355f451c960451b9a4945adbaca22c792196712891d40375f60790ce0d8e513908f752df67cf15428c10db375a7a05604a4c9f4d24a9fca4e521ebc5bde1235137dd9ad2c6e3644d9b8361e75e7fcb0d899835a49f25b687b48becec180c14b1cd35830ad62a85e71c912fdd984e1b8de66366d9082d6270a803bc653f714e0fab50e6b2b49f813f4400d3debfda0d9a472c1addc0d97ee50ad56afdf6fed3d9f4858d891ce40a15e86485aac8aa40cbf4d56a5ecf18c37ed95bd05801d3a38238e487cf6dc029684d46000f3f1742879c38ca03c6dcb101eedf05a4dc70b90af06b340ecf294b503a25e51b003ae7f065789af46fa0c8b3395b753b36a293a5bfddd5c77dc2d2f1a6aef9b80c4fba870fdf224baaa062ae235c146577852ef4d1a2da20e0e14c74402740c96aedf902a86e88c66aea60f37e4e8f186138121497cf85ee06311c9a22ae21a78074c5de1bf0127057f19b13b2742ddd237886c058046d787e1b332536259e684f00d8f631f33f5eeb03a46f86a89162cef745a02626ae283ec8ff9b2568f2b8dd02c9c05bdeb4953b7e3fa7e4b0a4502186e1a8e6afbe080ff070f1744243ee23a231024364d37db918e9a8fdb6d4cfc1fa1cdb2c502b5fb992fff8e82c83098beb2abebc71ece7b3861b09c7939cea41fe4951cbd7accb9ad4622be3ade32ab67ea27a48556493828d9cffa1ecbaca1d4264bd2aa5160f0586212c3c2fc85af4d2412eec509d8ba2d81f023997f834c094976263eda0f64da5a329d825c0e802bb32159dc7613b422329d1b3312410672bf2bfeeee883a1a672d62099b73c19dc410c4ebc187b678122f8c49d12565e10ef8c8f8a115abff12e68d184413139b71b71d847f6df3f00c8d321bc490b87236bb0dbd3304a1e6fdb80f6e61da932dd006f9601b0953da3b0e6d6a254927647a9e550c378c231948105107fe4f35252d092b1f2e709d699b33d3cb514440673bd259209677982387b41a663537fe3aa9d86f1e0b44e0c8691e4d1f4a757dc403b87508913e6c567a2b9e627d94de3a1247a30b03dab35490426f1d247793bf502d59f941678fd0e039802197c10c2fb7917b63d367dd8297467529ea4f8fc6c543187e132f4e8078459d98290c2d3c21a77cd5e20247e8639124e01b01158b9e8e4a23d2281072da9660614a45fb35474bd145da02c314a112178da77ad3340d973b291d5361c83a6a3120d0b8b411c13f6a1d9230b085727deb0fcab91bce2592127da483851fd5e630f7cbb5fda4eb1989ea1cc5e0ea85ffc5ee8e80a2aa00f5d5bf1ff894dad07a10f57048df9418d820db6ac7420008965e9774cb9278ef3a3b6dcaa5512156b9c892a6f47fcabe882b3161ee3606b6eed82970ef081f6653a838bba6bd50773dddf873f1424b9900f81b926ebebddee75ba9bd036214993384a3d7b5fc7f21e1ed7ca434375807569629bb11aca7d10eb14231d5d5aecaabe934eb741be81b722368a2a5e74740a8d74cac80e1cc04feff9fdbd0d0fa20fd8a03a81c074011aa451ef97dd95928e2f3b9a6a527129087350d766760efe5cbf42007f44ee1a917c2b0bf31a7199cd2ed62e7aa4edda16ab92dd8a71b680746c3caee4cd913af6b95a2792e3afa337840859d5f6db312ad880427cdb72e77386ca6fed5768ed89abcdf23e123fdaa5755ba50a92d8d071374f4a706a8a572fe93374113ebacee4eecc9a9e53e82f61f53ea342ed914a193eef87a2f9878fda6135a92aadcab26cb4f194e95626056772bdd5f04b2ca8af89d9fec710a3e0ed2f745c87c1d5f827869ed7ab764b35adb4cfd3a0246523d7b5f84e92e9250ae52b4f5ea08ae114799dc5ed53ddeb2628fd56ce24c48f5c644c9aefbb84e1c80eeb1e3c58157298ebc5bfc3914499964f302d73e56917c74f22293a2ea90c5bcf1f14e6a4ec26947079d9832f24fd4aaf3f75ef380c7b8aeb9275e328e1d65e233e74304e32ef36e64b7ea536a309d5a4620ea0b971cf28a1d92e3cf9dc8ef9d7fcd8c84097783b5c6738a981a88cc0c4e21f1cd8869a4b30efab93942511dfa5714e2caf427ff160665c3dd0094c64ab97334f3dc25e97c02ed7a5ba09f1d82da3a349e61a35391efdb24a91cccf6de3e84c07aa3c29c122d52539d2e9859f14048f80187b3e1bc4215e699bf2a7d615d262521b9641f6f68a72cc4e43afa5007a3c1704e1499f46bccfa6b88dcc0d8927d11bc5810927cb7cca9bca4fbef16ae922b5b7288159909609e7be65b24fdd0392c0a501e0f4dfee70150d64301430698f61f33bf3e1af1c9af4045db9e34afdf1a11cdb5b4e6e742210aa5af0a9996dd502498e630bf42c75e3383ca048c3d6fc4e398dc92744cf023e32c686a07b4fc678fea8995a055855281f2acb59f796cbce5215d8faf24e11b93d6c0621b9d018c6243545609251599dff3347b360b3dd7766c679993921852e930f66ecddc2cc7d59a1995f95875b507546e2906c41cf5101d704e2668387ca95c7403d4d6f92b47a0669ab7f666c60c98d5e015e3a54ec16eaa8daaa7dcbf8f89817f977b056bae12f7f565157af34b81642b3749e9127a9f1292398daaefab9374a994e6c5e20b7fe7a016eeb04539fd3d043549070a31f8bcfd36054d381238a16fcab470344e6f9c09e449a48d6bc8b72db38e42eb1f6f1493b9ab49f12b81b5409a179f8ac05b201489eb023e214ae188300313c7ab6cc033abc1080ec54501feaddbc5d8f5c4807f4ef71de6bc733dcb8c6d545231609145d909b52149024a615c7e4497abe982df28b2bf6258bfed6b12a6677e494447a98bb7b7f193f85fbab4362ed334b753a911c68128310822c47f8939dbf06f2f38c1421af040e1428d4c8891621a0b79d5b9ca11b5665e608bba0b1aa52b4cf4bfe8c531311948e84541ebd8902d9095522a409564d1c28bfb5c0b7f2f56bdcd11543e5c802f90c914ec54fdab3796658be69b3f2f4d258a2b858ff2f0d9c8200ef20d05b8ae5e46a086c1885c7d022609028c53aa68e345d27c03001a15761ca5fb70fcaa7709e004b350b4a5a038beab32f9812ac799e90964089fb8d1e10517f07cb48e5e38008ba6378622f9f76eb3679e1e76128da22491e30d12cd4b6cfc30130fa00caf131b48c5cc7c398bf3e0823bcc524cec43b078e823ba36989ea66e3353e22ca1384a5bd6011c4443b4488b240ee90938fad19404ef2cb0aff0f5ec7077cd140d62609f87e4371ae6c3ae5dc353582b0bf4d89bd0c1cab438ef3f898852190fff17c4c309df55cb404c954d2b565d2b50a5e8b236f9ad68d856770dfdf986e9ce7104ba9737f79c38362ce6631df9ef657a22ef2ac3ab58baa1571edb88ddc3339653790aa363c95c25043d8b7f7a2213da6738a6fc7fc7695b30f00e2e9ef5ab7c735dc88c7fd6925e0fdbaf82d118a60a05e96c67033e2fbd482a9b733c2edd71b757e2b1c525edb66faa680d0ae631b428bce64b1877f0142c6d9613fe250c1be5cd6241530fa0d60ef1e2902e044ce41718181aa31b0cd7a09b1401df2ba0aabd27aab32350d63009e26c192ea6b96d600e264673ead003fef4e578ba018e4d596d2e354013ab15cb45ed15fb2df85a83d17673280d5f835fa31a22fee978e4345b6e24b7a1d4513a3ada6adee890fb3ca696d27b5a86c2337f8b7d9d8739b260f12f47f8ec85a4f90c0a60c73edf1453896f09fc0a3bb19528f044d8aa0cd24300c7d59acf4c35f46b67c4ceed4c991ed0cf69e67d94b143e5a0c50733a6103318f9269514f2cd3688a1a9cc349ba9f7f4426d2e0316bacf6a869d3403b52ffc1224fd62cbde03144c765b4854f8105ad35bde1ede8fd9aadb33497616ac9dc5b4518b91f11a973c7a1bb519a6fd20f59206f884d82030f65af5b81a50f823b21546af3cd6b61e89149522fa7b084cda5d3aa6ca153a58e2314ea13e06783a1fed06455a049307f7f47a1a00c80e4acddbdc9367f2615c076194089f7f60f2db6f9059aacb0eae45fde5e1420f04e1607501d53d550921e98c2de7aa619b37cfbbeac8bfb7f7026c58f304c831928123624738cafa419b03a6aa44b5ca266c888ae80febb62510d62a63dad979e1d6a73e2bac89964184adc7083f726cf33fd2d2105a5bae0cd83fcd7d2354eb7f90fafcf6a8bbaa2e23c82786c491b38b75fe22461585f3b72eb135984a3bbcb667e3bc8789c118a53067c9b6a272c047ef9b56355fe81aefeb23c5d0d905d6fc2fe050033f022b32ec178c39c41de9b62fd3b07c7c6db9f2be51833d9f5619c57b8483124d1a470d77aec1a0860260708a87409ba473c00d8bd342ee19734287344ce47ff0263b4f91d4789210eac5750252cbd6d878c6d75138018d7a992764dac3e594ac293af2d596cc845b44e3c42e3bad7802076d9117bc48d94d52475308da034dd165f4cec894d31bdf7db83d82fd5f93c618893c34333dead7bedee66408e2fe1873655108c5896bbb5268b1935c5168d7ff9d8211025f72f8e0446ea41126fbe36d393b18e7e485b621063208530006f9d3431d16c931a5059ddb1b187c2de04c64e74f3055ef0ef75d7a3ec3170e163eb734b29c9a79ad863e04365ad00ac175ef56be338372185950b45ad67a21a84ea240c7dbdd04c8cc7c2e18ef9acc12e66130819f9523ada6c01a4256d0078062a17ab639feed23c4e9cf239fe4cba2135f090e27e2da2617f0698aa8d256f3e1cfa3348f98ceacf7c1301eec7fafa2ebb5a0564f22580b8ad1bcc4bdd9a1093009da5a03e257682395c7a447677bd35894d4feecc46ba9af44cb7eba3153180aa45d154c6a0dfbe62936aadf6fad4b59e37cdc589ac5da4165f07152921bdb56ca3b334f863d83ab068bff21a9dbbfe3f1728e4faf0b97b057eba4883319fb0ac52ba4d42acec0fb14734d10be4dd3cb5dd86772131615d77c5d5c291559541618a5b81d0a04976b03bad1caf538556fa9eba9c5c823f38646861cf4144c873192da849b29e696b37cde0be2e8ea75af3d0232f8228106ca686eb5f89f1d700854f69aea7f6b1669336b69e649611fb01631362b2c5d8d89c2446c9afbb00051f02357ef77fc084476ab7d4860fcd067329e38f015f1e264ec11990615eb247af56f3e0cedbfe4380b3b535a2407cfae3425c0ff8456f0b4b3767b2b37872f21cfc695d12590a30b7de53e307b58c8b6c83a9a644d8fb95dc6d234ce19e131591089cd7c53f0afd026b6b649e0bb806dfe362652693b8dcecb9cacb0339a1fa3e40c10e7a8e989ff7eddc120d3c704a21742202685e635ecf5c211157e547b44d33826430c377d016086e3aee3783c2268ce4c45bd75f394826654baaa79a7e0f311dfb2cf5a5d51af6038dc00839b9da832c13d99b02ab9951145edb7874248aa8ead5533418c6a99235702ec214ba5a3432a20ed41411903c9461589c4ab751ba463b3a5628d653bbee0d083a97004840591d9cec8f32b00525687ff39f8c9dee017dd6e2072c0b0a153c86fff7b7dfe63d75ca02e2cf7d0621ab1d9a0b3407ddb29fe34f43a6856cd414e93cd0bdab3d1b807167d9f96f15f2cf9d60566e0d2fb4360d855e5eeaa15a84ab8d880403b515745e91c6a49d6d5c39f44209ebddf9d977ff8a771de12f9a7cd3f7b7e4b1d8bb8772aba20622456c03e752523bd7a5815ca145f6cf64da0655f6fa1aae12428a945e45dc9365aecec1cfe0b2e7232938acd99ac96819f09041958fccad7bef7d0e3f02659b2f9d2a9d0cd6943a99d11cc52fb770ae7e6c7f5674a5e5ebb36d4628d9d73321c3723edd6a11faf90eb8958ad878f6a46cbcf3a460f4900cb9d3f904b836b604241538cbd7f1dab0d892e29d45a6265870266cb0b2da8709b55f6d93ff00434d94f315113613413b09d2169068a6b91c38175d349ccd061d8773d3430538b2b0670448d0681869ec75add1e96d1ca8c3fcdce17862f136980c1b9ab9497f88ded4e6cc562ab8701f3d19bb79971ec56a5eb06483b291096b4502ac095e2216cce95344890ad961a81b9f2113bc5bdb5b7b49f0ea14903c3abc35433a878357f05f5ce7dd2c0b60873e9e20c1ba0f140c9bb168f061dbccbebfc859589906f734b2a0d077b9d6912925ec25b3573e2112f1ea06ad312616642b7e47a68a6c9a167fc46e0afb7b89fabc9b95d6778a9309468b93fb72bff86f19268ac1f3e4f1ca4b96280593e3711f4be91b5fa91f1cefa294b8f4afd72ce8f6dffcce025baedcb1d393af96e5ed87258fe613351eeff40897278b7f622bdf36afb98e459be092a6ef3811c1c8acbc5b8f57c737685905a9202faf9baabd8bd19dfc3b85fa5caa2f0a532a966efdbf062acace58ccccac093e73cebc6002c042f7e10f2ffa22bfc109884b4c729c9f06a52fac9f5e23558561c1455889d8c3e31299b0962908ac4ad608d152d197351f3bf6bc829bb0fb052fa6b84bd3fb2bb85d35f20fc859bf34c4054a9bab28a8fdf2d3f6a211688582f3d3d68e625281eaf84dd0d07289f46230b5d97e84486a5b421e36780466d47ac3a8a85a241c508ee72337562ca84254555b709277acbad620888058e4c62f11baa9268d162396513c7f3503d6897f8a0247190de7f414875b7cb79278ec3abf0ee4be81ceb1c9dd37e993ba3cfbccabae0e14ef6e1c64f154f7b389df34276f05926e43ce3f83c368ac61aa568322df76e702baf06aff7ac4c2db58e545498d616b11d93bce82fa9d7f494ff01bac2b0fb99d48ba362c811a020983731d9417604c741cf6f001274c8e04e1fd87d9ee4329ecd5df9ff90029f4ef34bff0b4c3ee13afaa4f309764283a76edd8d1a4f26728e5f6fd0ae4965a4ab9eeceb0e0da8061c8b0c44c5442d743e30426f86c0e1b7d20784876d034fecae6a2be740d7149623ed42c68b01f979fed97f11a619214014e1a2ac7875f9fed6649304f25cc5271c37cfc04dde26d115fc5406d3df4f6aaf4f0235b0f805a0fd72028f38fb1d9f4cb1525d0d7a0320a13f1f840d3a9067a9bd84ec7e8e8398e57c63002fa5d1434adffa7f88a1d7ee56b908a3dca69f251be339f0a308876a375169b1a76f6b92d906cc92ab2595d3070d710b64aee2782553c4879316e8f79ac9981fb698f06c694df76cdf4c0284317f5ed4458571d0de3ab3ea9840c35d1e8b991b09f02a3cec4fe518bdc129438fdcb5a502ea8da214f925d2d89e8a41c2535841fd39d744d022a4945e1f8736b22091d55e5d36e2fbc1297fa95419c5f8398715a37fa77b68294ca0819ff742e34ad933862b670134dff61324ea1b5424c7c590579f9b9f953905a9f5928ef813b29fe34214804260005e337e3aca47510ee469339453a777dd48b99a4d542d04fc13d8193e10fe1e04615a3465f7ef9e4a1287fc1a32674db1ae681d312ba129e5a309e03ec9500b2c2cf3177709c50bfeadb43c12039b8e1718d198832fe11323802b40f6de14cbaa6ccaa2eb846463044ff7715ccd907bf5cbce3c4f9b02b7de7c7ce9eb7e8bc92ec541e22d7de5ca3636931657a29ebf24107a5e70c047450842e8b87d36d02c80060e25533e8564119cf2ff9db314f5ad09bb6cf3628d80cb24f81d9ec146bbe1f70422f257b71b36e0da8e3dffdc83f0e8f1bbef4d6d1471e4824424f1387b3f428502edfcab27ce12c15d4e3471fe473391f2a567c356a1564f854aabd39b58b0ff0d741d0f1660d396c1c58b779a67dab19fbefe4d8e5cf24782eb9cf98c31d167a26992df7d28e3d41e2d08f3f20ec79dbaceeec0bf83571d4f9bc894a4a7034601b33da43deb0c5478df58916bc3f27276fc6c197d18d9863b96d9ece27ddbe1537a9a53f146ab5206f39b53e3cc7d69a9a9324dbfb2cba9e0a58c50ad5d244c7b3ca230075c9bef323401df873958801d67223b08068a995baba3367cba5e45ebc52d8deef02e7340810a3d588e15e0ac7b9e9b1632e37a52932864758224d4e6acf39d420ff5582953ba4d852a4cfa00cb439653beb77fff51ba235ed428de8adaca311cd98d0ed9678806590e06ecc57cf52aaa1cb1a914c32795a9b59c738460be99b9c04dd56e87cfd642cc1cf12dbced6cf8f67d242c40ca2aabab1c0889aff7d163deef39359331439b62a3e0a907ddca348d18ca21ae62ed9dfe06328d4f63fbd6a61d4457e6f3274190a9dfc6461c8c54e71e1028e25f7b9c8e87de765e284fc5f68c0aa54078c89d10b6558ad436771f4281685cb6bcbdc405290fa90bc495ff7d960ebb91ab230d8d5b269e0c9eb3aff65fdbdf40fa0bbe3cf30b388fe428c793f11baa2818497e35f7d1e883639e4944064dd68af639b63d4ccafceb86e4df0a5db0645a8d3f8002f7bb9cd3044e0b5ecae4d123c3ec6dba4f1c6134879cd5f761c8c9a746303767d86c5182cabf284d4733ef8d723950d105e067062a821219140517ee172da8c56579427ce9aead2725a2e87d61f29562ca0bfa675ac04dd62f1e846ab9c146355eb3aeec779add8162a28046ce3d11e27b7e69e7528316842b588684dbded9f0b0909cfc5b9350fb3af6f9fa0825b5fce99e7a48000f996327bed8b0e42072ccaef9e129df00611dcb940e7bcfff459ff2213d5f436907f2582c4e1bdce0d65089ace68e6eff2d4b3d5aa3c9d608758670665ef516c9a33c91d4f954621fc3e425ef32bee96a8dd9e7202da08b20eef14f9aa88ef99a7c7f0361dfe624f3d2e9229403739384032cc841ee6ac30937add127483fed3afbd1fcc9bc4744531c409d45f98b86f18c98e0e22762e4d0726dfc49471b19c1577bfa54a353a24a5b4222126e457f0c2087814770a74efd95cacb7d5fd9bf6d9189cc1cf0d825d0139a1bd399a62ed908b608333cd65b7c2d680e05db40fa71849cdf85cf8a12cc591d42a4c324204dc2e680c916eff182e91c493dc400b3d4f57c656ff3a9d2da52d9458f5d9b4a3059b6dc1595bb7bb74a6f738aeccaca0e88a382225d7be710250a417c1ed29a7d2587b4e5fa084d9b0a2e80596bfcc72551ebe23848cacd12ffd8527c5e04d1c3f69c7b7144f52405673b54e5481e16b75b976d29c71ae7d3ba9aae91a038fd72a6a2c803afec6327c225ea4122b399bd2174c1e695620bb60b02f899e65373635d7aa012c4c5e5a219548311c188000dddc3d815100aa52f6be8a7681e73ac22e3bc5e75fb37c98058be3985cf319cef781fcd84fa5976d7eb4285817cadbe23c345bd600f41907f8816ca9d0ed38e7a7b5a2a7abc53b0ad4f807ee61aba8fa42f9e5b854101c68633a1b3a96e9e8ded673756207bc6ec4ee55eb2c65af02bdcf1ef58dbe2c7e1a748387d9cde49fb4d5736925b95515d8c2f2978a8a469b048b57684e7dadf710c73a2a7e428b6854a250aa22b1408af7ad2df66d3460b7c870acfceeba3b1c897a6d2d61ba4c504abc00478dc89da7794c95adf712c63cf9b5ab0b445c3bbcce11e7b652a0274b3931f220f76d50d5f82b5b86611df6fc031753f2277bb5296303a4dc11491a2ac2081d1fdf3a9368af9c9cee20fa76deb202c86f26569f7e6e533cdb4f94fe9c5214bd5718294e73700db91d9d805c1c1adfd9153fd88513afddd6a0135e4dfc1beb1b4a9ecffecda8cdf6ca6ba0b39e49d3d375f03c9bc9b733065119355f211589927345a4c08777a3efe9056c87a5b1831456c3e644b698aa4c49343d74869556bf156626b4132543f016c613a019809750388c380a1d1aebc8f298b1937ee0611f170398778e29cd04c2acf14b28b2aa904f87ff81ab10a641bec84d6f9962635b1052e988210d73f9acae2279f5a4327f359b085096f65f192789db8d2bf84278634565d846192cd03586f74b12972f60e0a1e34af28e9e2c0ef1d8dcec1c622f320dbf02190de1b0ed3332f068b2f00f34448ae637fa62df100f8584f5a6a80d4edc7d50a9c14c759388e4bc70b67c58a34fb0245fb4cb1c6eda3356525fc5a00efd3b81229d1f43fa0f6383ecea52117345c37d8e6d319b69a9d120bbad5ac7efce09af6b32b8bfc7fa7f816fde8b9f72b13d7fff756c05aac36339af125830c4789362cc98e2e084b00d00ea3a430e51ec312df3003b4fe40d36cefdd78d9b8573d7fe4985d5d00df29d39240bb88808d8400cd40bd44a107f64fb70a5a84f44f0d81bab253be959ac359c7b0e150fa3870d143ede81764266ed613c73c4e282f8076160c0d12c6708e08c505cb877beb5ed5c579c866297732358711058ddda1bbc2185c50f2e54b3d2032a8b5aed3ff4d1bf0de466d0a67d893d6c70975aec13771876a3f04c25c101c57c7fcb66fd2918f03d5983c6e33863fa9b53a444f667478555661d46fd52fb0c2a553d67c979348ef83d67d450bdbf175f0967e43ab3de0bf93fb07940f37ed87a62708091ef08f40686e6746c1cc635c12b56b002886a90793be400c7542d98c5406444d1dcd965331aa6a4af716c6d7e77619a507720d3f0b6ab568ee8db0935a82d8853279404db96f4b8bb64a92f2449a3055e8f431410db3b0a58a5948a46407b8fdf6df71c3e8e7eafdadf0e8bca521d45a68171e609c54728f903ffb2781ca902928a1c64f53d2c0596e4313575f7a776642c9bfcd3e43ff9eb10fe2800e4a82ea43f16777e9ea1d65cf643e50c43d4de973f8091494b1c0fd4f5ecee6d4b291cf66efb5332fe1725abc4fd129c9fe74295d052f510b6cb25cf8b8880d624a600de02f9388daa3a19e6e2bf22f52a158e8aedfde07c73f7834aa8a1126f0a3a23a3b740bb6bea77e20fa6ff1123fe49fa7720e68e0c606b6ff5fb47fd810652b8d21d406064d541552f96366d680cac7dca469295a8469783dc1e80b78ecbfd94de12b920224942d41f179c7db742751f596b42e9e3b14c3829fc15bdf235aedd0d19babdf29e69f0e28bfd18cfc96d0dc5fe23c6bd704d6de94112854cfb85117ce2e22d40f4e69769f4459eba70aa34797d2f709a6394692c258ab99eb21d09db1e75f70ffcb83d04769085c3abfe50c3d062cace722f14ec8ee49690ea24a06e3c77fef6d0013f30f6125290914d9226404f7e926945b196e45dcfe48dc44b525021e6a4c53fb8eeaa7f25fbfa12bea825d16f953b4c224756ce0dc724ec2d759c5e2dfad60df7fc2becd9b4c19a9a81f0d84d34dd4a413706126d21289f012bed730ef337199fac3744f77e415662e4b44584488deb639018e6ba753e8583c6110a6854bee489849008cb9a86d177918bfd09f0574a3d52de749ae2b6297195b3f67400389186498063844a21c806a832d7fff6b16a1f45612069c29d7370a560bff7e15e1a6121e15c7832de15fa2c5480d4114f005413c6964747a179d350b86e654906b2b197e94a6fd15c9d16f308294fbcd9b84ea1ff7f67b21903b9b44b220236fd8d7979089c0c73eddeccc5858779efae3eebc6ecac66667d4e83a22b0f946be443aa2887629712c7ad255f39b1c16c4f4c3cdfdd6ceaf1c2eeb1f3fdf720b13805dc413b017d476d25b7d5d741c0a03c59a005d236f37999b8bf07c3b3494c22d382210228eb640573dac5e426087f7460334ae0a820da2c55825e295afa38f7ef18e7dcc3cf583e2e0cf35909aa9af7811564197543a511356e52181b56f85af8e965b009f2a945ae88fbde3e9c86b64be1bbd2d5ab645057cc10ed7b980c31d91d3fe98f3d3f6e1a87f60528a831c1322ba98e7b3576f55b40685afa5dd3af8e47e731eb839ace1ae55b9fc9338ea11de0eb792dec29c383528d8ba4d0dbfdd070ced76384d29c1689581ef9d25e85a469d71c000aa0751775ee5f070958867389e4d6e381e4b41512602b0ce09f243294d07df07dd713b690cc1504c84b2ba714188a4ed4435d76d362fc24e7e8a8c7f8bc0176666fbe8f132ae86f966894aca56641f1639e785e72685c4261cf98beff0d9327bae6e5ef00f4e68341bd66a853824508cb738c4784c5720d9411ffd72bdffc121a598cce40657762db9800d64f5c9c237a2493088517ade6861437ee5c1a8501351fcac8d4ebf455b1a9bdf911217d860aa44a6aec591ce790b36628b57b3060d2cb4fb5f8a6e7722a09d5010c40f93844f3a02b9111a3d6ce07bc86762aa66b087aa91373058704f01b1549ef70b0a1f9a8d5f12de8949a9e600e7ade0f6aa8b90e5d0e8e09d2ba3cad52cd697ef696b1f797bac7195e68981689e16a3ce3b823ef84b6a8d230f61063777409c3ee16cba4c5c15537af235c518b5b44559e7204189fd7abd6fa82cd2f86f797b4fe80d8090b0bb5a3c389f17ab5b7ea57eed8a5e536842f5f043b13a3ee3030a76e8d430efde5bd739e8f91e877eac099793eb9a373c1e25782e0870c7c4052339cc332f13ad45a365bde1fe3a8ecfb7e2fd118c0a60cfcae72289a8ec3420bb1fa569ba228c0eb21d2a982b13b86a0a24aaedc7bb4fb77d887f2bde9219f3a9a7218c5352c1b57f88d5b869aacf2353b2ca0da17d238beb2d7e794c65286343494e4286bfddcf8d218c0aae5672a1b1af1fed0f159c9c37c87d89f46d6442efbb4700ef46d8fbc12a7698e5a1ee6e4da57224911bb61e91067ce7217c094b0ad125ad9879d038bcfcbf8fa43e3ac0b979fc6fc5b42b06433afd71a334420840f4befbd93881b892bc817015e44313ecb4993ee8d56b04fdb2d441cdc478ff862dc0d5a2171ec450de10d03ebce291e34811f9af67ac3465ae402bd79d9dfdebaa93b23b5a58a570be1d887cd8fcc3c93750f2d2930114c53349d6bce2e8dfc876d9c75596fce6b1a48eacef2ff0945a79b17ca71ae78ec20adbf2c15c8d52eb05eac58f8232b211e9e2705eb942b77e12b5620b2ec9d242ddb9c90514b2516792f5155e885c5aaa93c2fd4e8635ce80a1b576afa2cd3cee0ed5960acb2b095264739fa7c10000e3c2d07968f6620f3ab67cab184d3a63c7c27d862de2a93a22598c07eeb39c9bbe2b4310b49ae8f505e65af861d11058bc082f0e4ae3e8ac9ddb1325dbd7729aae114bd782161ab9d99fc293aa1586c73b0e4763c8bf48195b5a6826cbb412444f33d0b4bc726e9048fcf5436a177c24b20c44d327af10bd7c0ce315a9c00fe42eb0334d30ee3ce0b99d53b20ec364515eaea86915830063590161954da93c9dbb5b5ffda30f421409b6da462a2ea11905e4afc3cb144f0882914b4b9d62761c8127407c728d5922a03a037554a05f8425f16d71d4ae4aeba90d5ff962a8f48e4fca2bfae0ee7916e407397266c9c554265c4d5863594309745e6e0fe7e8cf89e8ba10af96d282a54a0579a3b105cacf0c3606cab05c1222938a51305b071700274e3675b165374b6a19aac832ba8fc090eeb557dd27a7f1844b6293a88c027eac4bc1b0993b68b5d5667eb903c778ddd63aec6d8edbddbee5e014345bb6d18e5ad8c9ecc60c64046fe0f3b62629e067b3fed22098cc06d73008c66e8178fb87dfe23231a1b10d4c911b05d89b31907e0279066943185900ccab941081f61892b79daf7c9e49267c4af46e0a06f30c3fce3eb6d2250460ca31424ee321d4ea3ca756893d907d340e10322b9bb20049bba16f9c5688a9920c2fcb65436e4925512e9d9555e823d6195ecb0128ec02749b6109076e5479e01b1c78d90121d779be20386f9e712eb8cbfa0e65fe5e32584dd69a50b363f8e1a30d42d9edaeae92e76fc319f8f598660e228b68f8bc8123152848505f2630d42c06b4e5767c52510bcebb0956699edef1e2d478d0cdc45b948e692fc1f0e77d068a5ec01f287fda92d56cd6482c0a80ec5a8a61e81da017f4210d8fb6e0292476247b1ac7417b5eee22add0a95305fa95d114936151ed01a5543124c4a53969aaf42c485f88a6baa471da40a91f7e4eae502126cc1491c3886738a5e1871398716dcc53ff7455ab24469000c1eda97655e11fe769e04c6670614fc2cc301005f4ba6df19beb03fb21baf9cd8f4d897faeda6be576e220f012d76dde8a7bce6030ad0755956c4859a068f7e1bf24302e3dd9331dbb3a90486d5ca37d1920d5330be289b3bf1d677eed8b832008664b3b51aeec6c32069acc12dfd9c8ed1446e4c18e39030a657ee44abe8ca971bb9d18d1d50f685de4be03f388c610a1f49b389750b7f46577bedf0a5605b59e9cd8cf84429f3a108be25de637859a1b8a76ae7a821aaad9a013bd5ded9acb5bced74fce41a4d101728ab6cc2d7eefd51546c5ab564d0c1f9aa3a3e77f0fd9b6c0c71e9fba8829cb49a942f0e1815ebdaddba0821a457329cc4a66a4412f9363d4c0aa656229023d5c1e6f0ef63a7217e398706462c5805717f575d765117da3afe4f85d10f65cafb046a2a4257bd9965636da21d23af2757088ddd6437a36e1613ab8caec7a1a0b5bc454b9aaf80b5d9033fd0f275bdb6133603b6895ee5fc615f346fc1e2cc18710f557086f7ba8caa358d5ff5b682a2b478ef6edd081bebe827a96de8b5bc25ffafc0e921662a2dfb5e2d39af8a4688272d5ce33506178a4103a082ffc5cdd1c4bdfdbbdff6f33d3f050eec235faf1dd11291ee6385829db0fe73b804d837dd6cf1784e087e48e9dafd5f706a3fed2f1172e86a28a79634adaaf19006d75648c43542acbebefe32cc8b49b15e81f3ca0154c44c1dfdb312920c0b633cda2067ac8de331d643e4a50d7139b68bd176123b9c7d5f13192710358273fa726f5948ef03597a0275d61ada40857ae2b5d242700010b81bb197976cfe1fa19e18a85ca8572ca5d4377c353d2cdf837c5053f11927f7c6864f2b675025809867c8299ffad24f34a520073a470c49aea2fceaa6faad15a5caea9ff7750a217118901e7c849c8f44ceb3ce1edd52d4a1731dc384879dc17158bdf9a4ed1f3a0e115cfacf3787aea08073b1f6f3ae69bed116115dd5cabbec13a06d97f2b1099922108ecd94beb008b690f1ebcb79e31823c8aaf8123b48536fd25520bc990f03b616e370a83daa7de721a393f0416718b19654995301dc4ca9bad15a77cc9e8c38180afc3e178a648fa8740b924a3969fc62bbe2e48ac855e2d2fbee3b92c6f13010435a054c4645335f59600e0900c7819ed9a754eef5fc70e767aedc8c97bce7884f0cbd8f955be7fdc29b02607be4249e882c725541d87dbbbcb53f75a9083401b48194b9532a97f70b8514dc1149a3927dcec3e44e4e426e1879e95a85b98a1b4cc2e5258ec88762b894d9ce07d9cd8f5da351ce9a12a0dd869ef573f784865f4f76e58adc642cb109d0f38197166b41563ee13b1b76db2ca1c99cb2ada0c8c0329e9a9e3568785b08a5b30e5a207eddd0ee19c9a68569dfa75869cc460a58cfc0caeebc055b6b6a146ee79e9cfe0c9f84366e69408184d44b0a64be456f471ba40b31bfa1c72ced67ff05b8f25a7220a0944d3d00ea44d322cb6d8a3320c853b9fcea687caff35fb5d60767126554398e4c0a1bafa1c4dd1d9edab8707cc33732aae8804b7df4cb59b9f420282ccff26166100ccc9551774c95684e30312bd9f35f10fdeb6de604bf346a389da91b4972437e550e4769df3787b4ccc04c8d7a075f137ed2eb174492281493eb7397c76f3dc301f18993b9fd5a3e097b80ff16c2e5733a608ef43fa34e34aa3935bd185eeb1171a00aac694b24eea945a6a40ea131cd1c76a24b78f06ae96c8d1c1555426b98ebda0d7a6d800d532725c239ba3ea644cbd459a502bbcfd8882f851467bf77113a5f87d05f77e31146991572730331f3e84a77cadb09431440b406cfa1037c0312dae0eea694e37a211c6e4e39bbf24c1a2bf3eb14a24361dd30f4f6a25f3ae1a2d54af820703529acf8c5d62c13b0ebd2996782a92d0471103872dc7ceca0cd836dcf3166f57a5157bfba2ff94064c2633f8a369af025ded8e90eb9b70ca228fab52cd4f58ee337508d55be7383d6b9eca62921f0909f1c774742e1bbf7d34e8b06635c01a8b72e4b6103a893af2a9ac1c9afe16c52b6f096ea4567026bd79a0c8553fa91cb0e9c3150dddcdfe5c693172e3da6a6bbecbb16b026d267641f9695eab3de88419462b3239108b1ac45f6bd38d2367748b1ac04b4e1f53a63fd9f1d2306c073f27003ff433342d14ad26cfb4b486a9d5dfa125efc139dabb931de11c8dc57c043f55da4e19b76f3a056c0fe89411892df22e3f6add129e9c5bda69a8415e81f6e9aa46dd873f180a6efc5f1f2c9902b3b7127d4460af928fd68aa9628cb675546c7f8653ad784bfa87c96e42756702bfb3c404f21f29eba31aff103ef55ed4f1b40fbc977e4bd037b2e4852ed518b0a71abe48dbb86f595d5adcd08b2c61448653982793eca32c809790885329e4ec282da334d99d081135e99948b84be522d25308523d45113f6ebd1a8e16d0a40a5bf568e692cfcd48c399fdedcfde683705892e923872f403948c052ce60a7eb3bba6cdb0db4bac2d3f4ace9e40b8e20069e7b8dc7201aa4f3155ce52653b55ccd5e0663a53d0b4c8e6bbd5a0a2a70bb8150be7d8a5497716e2a24005a724d06f03a7fddea5d47d1dd8b99de32003d9a9e14803c2f840281ef5f04a74578ec7a665988c5f9043d67d3a707c683535a3ea5a3a31f28576bb55c5bee867e8542bd18493626e9c6a3d665ce5a19b4a31e4c88120075026c76fb44ea4dad6f60cf4186ffc7384426c3394d96cae031abe0873b3bf98333856fb1cf88f6dbbae985ee8f0967c195a5e41e2d645c88a738c9fe9142e2fe781a7a22f1d2d82b3d10a536f1dec56c5bb355b001bc1ed68bd99d7727b2c5a0fcc69afa41c0b68e7328ae54988ced1c48e3c59a2f0e92a6234abf74a6edc11508f26a20864b51ad6042795ab496ef8fa521b627fe2ff7ee2e2107bff79ec8edbc12222530cb791d5862ebddc292bf85ed791b02e12247fddd5441d2814e03b09dad70dbc4de0a628acc8e06a0e04988558c7c61a7d48afe6e23fb9be7c189d0fa134b6fd7ab46cb7d979e77737f815258a5199e851cdc8c2dcb2de171478429ccdf62952514a33f96871d79ae40ce40d4185ed4c97f66acf67d82cdb7a4c2caa4cabb0386df572aec2f495b06abfa7bfa85c52f3d42ff4a8d6b3e996dd5e7f378304e1ac784b2149dc965f3d554fc946dd3ffd0371b5765b1f94747bfe6ba60214d9feaa03673f42b5f848ea32b02e94c33fe7c3edb9cca36bd30f06259f1a6e6f52a88dd2a9439c37d792e77d2cca4862291de2ca1bdb356d693cffb7412ba9ec730e7fc85946ae8320706445244a3df60255e6c4b2bb066aaed57f8e7bb6fb9a8eb4e45df4526e7020d216cad0a7c71f0e19957009a0d24ff0e53ff3edf6bb26b8f814444f249426c94074c58c2d7ec58e228e2bf5c3d98eacb515349fe61e32fe37e203ecfeb2ba8ecb62882db81340d7b180c62570b60c22d5e163fc2083bef8f8e2c17250da5936d30f5f34c60437781bedaa9b9d2a7d110c33d93d54084f33be406f7a52bb220a39140bbf00457355bb58e0a662434c89fcd6fbb10052330c0e8e073d45ae691e579fdc81ce024f7461079fa799e004c71908085784d53806bec75df271695006dee003f7cb85fb432ad0a7de88a198d610cb3de063fbd3719f0eeec514d36b28d6787f6345d73364e3b4ee2e7ce267312ef68d280699e1baa08e7b287d8ed791b9e65c7686efd896e49e8d6f97c5edf2f3b28eccbcf79110650fe290bfa09378fe29e300b6d7465dd555011f3be3505fd764ba499721b881707a4143b03e64d9781acd89915aa50ed6e063827a8b588bca5d14919845d8c0f66cd1f4d37cd3dc4701a3adb74118dfccb47025994bb91e5a19a63e3160feaffdb314c394560d900f0bd720978641d456d0e4fbac1c9287696ffd47c6d02e9e01cba40ddca59f3e37c4693c243828dbad3936d2c2c60ac8e750cde465f2f4749ec76765650afacffb189efa8bb4475ce3b8c789d812b0eaa057a5c8f26813f9f8cf4b654f3773263d4694a4bf59110ea83a85754ca407955e88bbbfd3bd6cea243164e3ed0e54512057c4d5d89d4a6e9fb79aef16e5614fc3c432ddcab7590bcb5169a043062947ac0779efb050a7fa6751ee276440cb28eab51f77cad255d29170589b0b52db18fa4335e67ad2d5f01e98fff50997bf6494dfb1870638128443fdc06051376343c7614a6363ebc5fc3639f39ab54110d3bf895b91a239b943e7d4da6bd77fa06f817ad57274f33655a01eaa0b88260fb5b81d8d49ff48312d101fa8dc8dc4d963bd2d717ec3d110e79514b98d0d4b02063ca38c09d9a7d0cf9d587ede510b608a5d0bbec134023891c898a9169c9cc4bd483748a8e01d4cb00699912904bdf2add0a146405f3544514d2967554343b58eefa235b49ce2b9ff218bd2631bad448d28ab474901ca1572da3875b8387451468f3d61c398ac21b0356338e091c7d6e16fb4f66160b2b417ed61d157cecafefcc473780391094644aad4e8b54ade3415c0965227a12f1d3f162646974b1a267da359c686f322fb5ebac0b9deb3678e2dfff9a23f202ae6bb09f6df00a39b3b7fe07a054dddc3598075455f19d87eff4546df0581ebd6d5889f33e5c22b76102b1220ff197af192ab721461262f640856bcb820a123faa10c8eb0921bc0bd6265c6c67707f387e1f2746f2ad78ee2e641011545157888d3f44acd6915a43747bb376af69ca1b1dfe2ee52ea9a30b50b268647094a4b2367dd81c207e205b739f1c1c54c0e1d3c3d19cbc7301bf2d1d745852034b4275683be0ba9073a0960bab8e9459830508e4943ee952c331ba18f3f281140e800a2a816aba0b4ca0b794df893d0dc86b6cfbbd8cb97941783d5cd943b005f85a8067a8501026918ec9292c64e0966070e2e1bb83cc6d1375d0b6bb84d07d56246735535be9bc8e27b462c73f6965dafb47738ac1d641d4ba6f9b66ec0e2746758fda98454ac78c7be61bb21e849c9efc9e796a5046828ee81987c7b4223fc672d0eb3deb2b34df7dc1c642d9463d896de972b17f25ede62066dcd334567134bd12e257fb5c9f79a16b8b91babcc6cc120837dbe0b3fb27c291939cb3b71b76c7e23db023bd6db16e8c7163196f040b38b45c1cd2d1e01f1324918f05f67b9fb8ec98c1126295dff6b6d6dc56e3af759f660608177fe4f553d93bbd712571402053ad12f55d99f7107b2f3363e8ef4e9ff08b9392a3f7bf9c8b071248b957036be4cbbd781baeae23badfe1775e4dc8b46848bae5f4cf44e46aeaac3bc5fb3b5d95ccb59982d241e8f5b03f56c73ccb0578d449af8249e46a02e8f060fc5738d9bec50ab47ce4d4d4ead389c9a9114a7768b71a01e7d4e6eab12ab1e7e4242be628eedb303c6f22ae959d40a85396207cf70ed5c5ca666f90c3ac0d160144f20c17329a0b070aee46312afa165b2780efd68ff5c8d273f86a05aa728e8e008ede8a021a20a5241db87963dfa93e0c050e04755f5d33b4ee3b267d76fae3096b5576b113589670d8e66f358552d22df3098989174a1b2423b530893484b396c79807192da6aeb95aa82a82211d0d44eecceaa7390438c8e8baf85c53814f2cc8282cd4a2f4eac16e3f482d3aeb99a622765d10e348e280b218d939d1b13d70705c025e2d655d4cfab58ea3b4d5bbaf3fb505c7f254ae34b9d21b36386c5f76fafd9acc6d9638e572cd1ee3ba99d84fe0095c5518096d86d160da831498472bc40e9d4b76f0bc87dcf3f7446af46ff7d045c933f5e7db6bb105f1aab461cce47011c25a5af2e15089f913ac4a11169b19efd8ca978be1ed2c9ec7a47f318213e9d611da75ea715e7efd6fe3697d6c7d425fbba2219f93b1cb50bd71cb9a2c2088d44873f88b0d3778b409f00a65ab8928b44bfb7a18bd66330c7f6808e061a792d759d7be998b67a73eb854d8819cd48d276b6665e999d24f4ee1c0de06eccadb9d8c213ee712950c08e849d4cec079a8ecd8ce85d43335829ff2fc5a09eb7fdc5624c930b745e4a62687026df7b05f783bd28e27e5048428c031e361c0889ede1a31be8de61eb5398bf4b3235d4e04ec0973d591585aee57e3a3ec2048c2e0349e970048cca9cf115766cdc05e1844b5691c6d5e0abe3cfca15d95257fd93c9da98152521896802fdf027b6c33cbfafb73eee74d4bfdb5f11836cea92967cd55913790057ca7c44c8ca373310f48b6fe065bf08c552ab1d1b2ecaa55ec60d127a95ff4043b175a39268c367cafdb8733947bab8411dabf7a6dcb17f200b6b60fb5ec6a2b8c219d25ba3378f7fb6f5b160f2f19f73e3d8344aa24353c32102a8b1a8cf6d0af456444547d29bcabd8b090536978bc039a8c2ba9b00517d0c9812cb421130bc7f92969bb7d6aea94c2be1424f4d405554748ff4c812b24358b98cac6d9e5cf5f0a1a77b9e883759f20681b818eeca3f6c9fddd08c64640b2a47924a2d75e32f1d3711a4d354e57ecd4836325220446a76dadc878543106671c37e345c28e67a16582fd2f4447095d3dba681a050434a7870671e81e68c3b87236ac2839857a87584202b091e2e26dfebaa2679afca61ba927d5506ddca99bb2d3f631dd9e3f6cc9e02128d39589fccadb4b553f5a99eb082ee48f61f7566084f2384df6225f461973d1c1d40d4db63c928f768f43991d59dcae507ec37477cc5a32e63e1cb8b24956e731495045148da4b6016be7d288e350b7f24c0000004ee4dac6a81fd52137746a35060a0ad84710c8cf18e9adbfc3183b0f1d01574bfc9f69dd65276e3594387a504b3ea0ea05294e9f81a5fd3d887d066dd34b29683dc298055b783ee3ca20ecb56d5c3878618b586708e919558c773390e9450b03ac9ecc4b951bf0b5d0f8080fee38305d1a4d863108f693da1877ddbc668fa2a70e203d8439f08cbdc8184976f0f2a2a0673d0f07a39655d82dcf385dd32e4bb6001cd758cfa025ca099ac28ecf43f3717042a92d95537a2a169125952fe384dc24a3df9f5b3553e1c786a72cd6c7eac731b77aad8ccdb8c64747d49951601259c5d31dc670de3af7af6f4939919f48148d703c89801cc5885858987720dc36a2e61be46c4e7b600396072d8edb7741bda5405f687965e6157a717c2fb7587ebeb533edbb5314dbf60507eb8336d97faa979692a224317ac51e686d3a8d110637dc6d97234fc15932f98bca9caf5bf0df06a752aa7838368e275e253fec5a8ecebdb9430db9e2faa34f84290e2fc262491d6968af4fd249abeb6c942d4f69def81b4cb1238adbd85ed2f2a237f39ae9feaddeb3e7b17a72a3ac32f230f29b8d1f31cbf2fa35cd0c9113f6dcecb3f9c19f9f2ac4bd6091827fb903f66a84fe3a0986d18e3b4023fe53d0630a2f3c9c859e45cee31588881121ac73c1f60b4c20b38ea25ec3b7918f555b362c5a4fea91d0c7ceb4f454dc85fc4e28b9793e310b2f0df7db82e4ee6933a5e0280d8f9aabef65f466b6e89f250f86ba758eb74584985ab967e273c17c2aa874310631c18b521eaef922c22dda5d79364f0f1f4c291234177aad1699f65889c85f1a9982fa57663bc54852560c580272b94457eb1b9e90090f8ca21b7197db00c04e3e2949fafe55561361b8c08c86231d334f4f38d0f14f0cf48806891952d456e6378a70058f22c5d6cadfe2f10b93b1382b2c9f2c8f435a707c0f2c65dd42da0cdcaed39131cb436c3f5cde0c27186a09c7a7bc94b4bd7d109d01693155ff73e78684f2e067b34cff9b35ad21e5ebfcdc5f9f53d0c988092928c2df6a7499953e25030a5aefc34cdf7f88227d96cb45ec21a868a54f1b3542b07ac8a5651c0c0f0120640131d8a4958ae372478c95f83c01bf8e1a5e97227a7a11dd45949c1ea137cb59ca034f0b9b0f4ffeb502b6d223b515336eef96a6ec4f973bea3cd5db6bd06bd668e185f94315becd4091263e229cc8c014b81a374134af7684e98cd7717207e62ce72541d7eacc583d1ae00839efc23f75cf6a9cc1f4281c4ef4f54244e5dbfa4e12e9f5d8b6d7bd8cee98aa20f74f27f4827eaf0e845434e70607295ac15435105bd180b2d2c705d511a4a856be4d9cdbaca3187ebc32a5ec16171de03c3213077d4f4fed89e9636fb99e0399ec3630308d96853f455d7bf378ce14f473f7f113871ef69f852538d6dbcea7deff617b38855613adc08cb5e9e28fa2a9bb917353d9fa03a1773e9804e5d8bb5360bd96019d1e79eade6dc0d449d6a850673579e51348855937b41515230655e2a8b76214fbeca9ebc56f56e2ff142a91619c1db0c68ba79c57991d85eae7fb9bb28fe1fe39513195d7a7a4eb74b06365506256a9c11008c1f7d33f63f6a77fc4911edddbaccbedee2a22ce61f056614fdcabf6f1da68f3761db0b7811568c0f532a27da593bf0d36f7f0badd25170b2dc9dabaf9d6f05c1f37d583c4dd52d30a2c88021fb2dc0523021c958405b52f160d8ad7dfce3c431a868cf492dfe68459f3cf486f3583aa39d39923028023475da0235262c7fb62af11211f27e32f8c739c31eb3b9ddbce48c8efc55b050c4ef152f8948e097df6cf0939988b54e5f844b41b7742279be09a5c83df27c0540abf0b5fd138546a21615ebd2ced8510e3593b4fa4f814ce4e671d68dc2fe6e632e93a13c8120164b73e5b8ca7ba335c6cf5681b956cc8e06532e283eb8b2fe7440b28c0cca0b22f0c31c9417925111c17ac95318aa247e0c30513ca9c7285f6cdd2b80f22b4276f817fb71c0ef2980880caa9db03acd7d16ccb580a2d4f92e68d79f07eefdbf965c642ac15493ad52af8d44fdbdc76f04030f72d1ac704ce45bc3ca1c43c0862be633e7395b5fe36904caf9384f54f23a3d940c0568cd47a1b00ffc99e89209b2296b706e2b0eac5a8d324d8db2434757763f8518a59c3f8f73424d134a1ae75af84f11764059467b61baa5f860a5ef3df210f52ea1d67d6bd24a109cbc67eaf1bd0ccad9ec5b2fbd783550b5baaa9f5b356d44a343ee0d494d149747bf1457fd8d6f19d7c987b900cf6d55be7a9bca3378b3f4a8ab10d3619ffbcb1a29faef19235a1e07f7c018600c9c37a31074780c36d4ecbac14fed573265dc4d1311cbfb70cf2c1ee9e265ced7c6c397d4fcceb9a448f136b20a317fa48fb8169ad8bf0c474a9043686f5d983aefa08920dc579d7c93d5f6c9a05304f985ca2504d8c8c8f5e454d89637cebb6ef1a1aeab2623ced42235cf50e97e8e471c7db26aa7e41cd424cded44a907a1e8dbc22af4420318e3615c51a25c624bfba858a275c4053ca3bfd43792b1f15fca9565311d78b04a2d9bc1c843ce205da8dd5dc4045dd016e27a1b22acbf3fbcadeb02109e44f11a368b0847dd41c4d4ad321d06559274a656ea871456360c58fc935a829772e6a744b8069bef41d59f9b5ec70a1c79dde06035d32a30698c847a37e360acab6e5bfd4308fb7fda5650f867dd83f9aa62f18cf242eab299af22b2538534b2e8aec66f5dce18c2c9b8ae23fd7ba3650ae3f95451eb567528b3c26e57ce1e2f3ddd0f705cb727acd961f66fe252f1a5dbc6d4a73fab569f69fe1be379317fe89a46b31f3a17abeb487221e007b17e1bcab120079efd6c6154c4995ede97699445920075012852779a71a52ffa9867452a0191d2a8c47015c9a9cd78a57c19fa9c28981a61036e1f1d426331870b89710d9a081426260cb413d46d4e6dbc25409f91ebf047b418586d1ddb0e688a4bb492434dc3e208a3e263bae442cbd7449b975ab37567257113a5f066e6cc69695d27cc9936297b86cc377b785ae1baab1f420c0fe9fcddf8bbf3278e4b7f66c0e4a4c41d24b3e8c60dfed2a1d2672468a970dd442b790fcdf47234017364075e657e65a15fc99a73bcfdfb43aa7481373b8affeccd55b9a5b88e086a10b6d0620e9171598750c88c777ef7fdbfbaa9c779d412edc337a6db8ca72f3af0c47530a9263b99665a5ba690597b2274ab12c8290905809651b778cdc9502a756df5eba9a979ce4ee65fab0de7d1bc7c07871182735f2a3a3e459fe61b6cc8cfb1c5e3789aea8de6ff18b1098c0d5642b28dfc4accbafaba10f265fca9ff6c601a39a7f91f26e65dce924657eeab2ae4fff10ccf8e598c33ad448fc6cf711289e9879e4906e50781d9ba4e6d0612e6df7b9a05fc64c9e65ea34350151e633a37407c82502295f9f8697f2b6d7ea58e180eae316e1f95b371192fe3805a66fa749d84b2fcf7051cf1fa4c36224c0245a678c636a92dda43a2d37d6b59fac7855c3ff1702e581b747021168d82653d0259923b5123632fc373e221e346c9bd520c8649777f5c435184522ea34b7cae1a421cf254d72c0da8d04fc4c9f2855d8d1331b76fff39b95512bd3597f3f84850ca4912a4030cf7e9451e897539f149ec0caca0b5bfa7e28e165b21acfe9af5832a9e8242e98ed1bd40ab81cef4de76d2adf46c2c1f0f13c45abae8349832737e90bdfb5ab8eae0e9ea0bdecf1b2fdd411612fc855f0f8e8da44233fc36872e4f13306560016571840249dc7c05b9ea66859d75d023a08d22ea66d6118fd15224c4c76708176c9855c9aa869dbc8a431c0df687fbf2b23f3e70a01fc0d25216be7ed0c5654255f8cfbf6357c52cf56f0723bb551de44878761f2aaac34e6aba56db84e35ae0cfcc7b61beea63c49cf9adbc8e7abb222b248acd3ca34691cfe0918698b9a7bf47468298ccfeca0bdd853f5a7a6692bf809b60501b44ee33de281d3f6217f0ab85e3ea1f7a4ac48eccf7914260cf3031469a3ea79ca3a1982b06376797f0ebd6bd4eef26e428acfb6f559fbbc43ffb1ba8f9c57783e76b87e82ab08a8574974c21d2e0825b50521c493f1f0541b65a8a24fe85096fd1f20226d9fcac21e8d4c6d347dafdc947ff7d868d4694c5bee7a81e877aeecc62cb5a7f5258290d9f831d794b08df69269161e0eb24580c23eef671876de57d70901937231d0eceb6711032b447587e1ad1878f7add8b3be820416af71163b7fe06e71973fc061f87da9c6c0d29a43b19a09876b544fa65b62bf689aed2b0d8c559fc718a1fadd5d59dd3160ef978faee1e08b883dea62a2da52e2b51d6fdb6054262416bd54382f284addc008d7694b41419bc183a5991b5c2da591e24beaca812622266e827aaf9323fb73526950b2669f3ae7c6d2b1a7ad22cc16f6fdb3e3bfa3971bd12618da014dc9998970958829218c014a60c526a4b2bf7e4d329bce0284eca13bef377c4677b7d9fade88f1d4a97dd1114232cfa6b81a8149ccbe941573323f25811c4dbd8d4343ea1b75bfa3b820bcfc11ab5f3b9e3edfe5d432ffbb1e447f79fb5e0925c9f909a33c1203aa9db9c2489bd12c83ea794394f76d74245d1d9c12937c0e22125df008188a98a706e49a843487041266f7125392a6a3550522529f96abc45c69bd95211e4185844017f3b772e40ec6967ab558806029610dfc95f74e47dbd6162dcb3a6fb63b8ce0cc3113a8d641bb45e16565996c2af62e67361e8aa57c20660255dba7677ff3e78af26d9778483428efa97982cdee911d0d1e990172c35079d2ce39d9cf80ddb57493efbbd09d789e7da5fa19b375e2532b57874811964a97c397b91dc6ea675f1dedf676fd34a1bbe872323422053515d08399f0356ddc0d17b825a6e1e3801dc0147e8e6298ea3bcb8a391adc7306e83589443b478d221225b94402a1a6600b11ed1460b1f2d5df165d872e3dbe93318fb1bf60ec618bfc50e6f48196ccb2e7b6f1d0226a75f1f3e39ce753f3b5880be1c58535acbf9d162bcb278ce263aad7f6bb29ea427c1f53cb65f55755cbe8874353c2402a112c02c3b660ae8a36464178fa34bdb28fc02ddd8bcdfb33766996debce64a77fdcc26e4142f99971bfc35dbff0b7cc928f51c715de7bd4b194f438e122946df51b89210f2d4ca4f8796769bf40c225d2c185c24bf156890035574e7e644d8ebb7e59311b514b1a972b214d843dea2025a00a011147e17ebfbc93e4cb44f8ca751ea6ca44d587015e1ab9f9bc84103b828825f6a91c89996807968193ae5d55dd5234d40462919e7560b02e3e6775e0c2558ab20b2e89fee1f9d584476109fe470a96a6135e15f431ac891d86dfaf698a7b19a628223483d15ae23a8bf6644f8c53c4ddabbe5b69066d13a3d15acf48bab7337cf74a89ca3e517e6180b6bc9bbffa4cf5fffb11cab172aeb803c6e2166aefd6fafad3c96e5922a0e8494cb54d6fd50f9a1f12c05252d609258e5408c1721cfac1222b4528d1a9d219481e2ae3b5b65fc345a3af2ffc8c92b935f6bf5f8cdedad099891bfc5aaae768ecf7c0a8f0d1fd15d3498320c4abe592921a44c9ffe4df9d488499079f411011b17f765f26851688cb7e8cb497a78d6bcfeb37b9267f6d82416ae7ae026b1e1720c1a0186a8607cd3147d74e2e54e3acd996b01e9319e3fc17703592cb4bc26ff87c8aa9df210435e9b87d5f46a9033c99b93bad819dab6481e5254e2f7ebeb1a2f1477a1e607c31c1753c4857babb828161d7d934a7b1eaeae468c6da8b22e17e5d5e01490de7eef6b245ac53c7405205216fca99fd760e07454f148569d6ef2682608f69ffca8b9e67754f400012d413692039a2bb23ba9e94a8b786b0dad9e8285a2e196f9fcf9cfbcf1501286e1cb1ccdd22fb7750fde3720e567e04d10dfb47a79bcd51a4692eed634171b4271562a0a865e36a00b9ff364b95119ad61eda2d38d7381ddefa50016ef194b1fcad6d26328a654518abda935375c236521becb7e096098741aee20a7bf18f34e2be9f222619883bdc452e668e3d7e34ecfbb274852eaa55bbbc68262cdbfaec42386037c32941c4f13485403e209a10619bb18e7d7fa0d4cccfa3612621b4ba4e3d36faf6570d8b248f818c16493af243d15d83d0e807e7909ae66adbc556cd88dd862c805bd143bf172c383ee48e131ad752b36d8719493ddac21d52b697d9980c57baf33c389040ad71f68dab81d3c4f01ea75d321f23d4c3481078e52e9c48538c5b729fccb125f68a761ba41c3d9f2b572d03c131538660f39fd98f915ce0760ef0705c33be7bd154b7bb9888cbbe97ca881aca4be855acf74c41fd76624feebf95e327953d0cc95a397456cfe4e7715468ff8f2ef4784f7d609bcda49978c0d9be26cbbb7d833adfa4e28b7f2efa9dd82373e8b55d99fe8b4076b39bfa7b8532d6ae63bc791c15c0642bf0a8c19f2c84121333e1ffd2c85ff3205bfcfc7188e4e8702a741641077cafea007e5ceffb7c53db33d40b38e23ba885b5d97b3b56f035c16b33e16809a3b06f8a063488e832a803ab6b87127d046ed15f478891d2b409791057b1b02fb4ffddcc68686247eded89aa88ed4e733e0fdd3c30f17c8544e3a6336527d4becf8cb5488bd83192c55c187a63a2d3ef9373151b835b758ee26214572ed8aacb83a98d706fb595a77db2414abee6589ed931e5cbb1a8b8229fa5e7374ae1a241924a7d6870542979b42835198d70d2bb5124f72057eb826e028d86659ba802a74e0b16d097a27c2fc166abc489841269066b57625b620628d900ac4b48e9054fe143107eacf5105f6d6dbb49627929cfe62e7fb2</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
公众号“渗透安全团队”星球内部使用,密码在星球內
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="靶场实战" scheme="https://gylq.gitee.io/tags/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/"/>
<category term="应急响应" scheme="https://gylq.gitee.io/tags/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/"/>
</entry>
<entry>
<title>【知识积累】clash在linux服务器上使用</title>
<link href="https://gylq.gitee.io/posts/192.html"/>
<id>https://gylq.gitee.io/posts/192.html</id>
<published>2022-08-13T05:16:25.768Z</published>
<updated>2022-08-17T06:59:59.438Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="clash-for-linux"><a href="#clash-for-linux" class="headerlink" title="clash for linux"></a>clash for linux</h1><p>clash 启动后会在 <code>~/.config/clash</code> 目录生成配置文件。</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">wget https://github.com/Dreamacro/clash/releases/download/v1.11.4/clash-linux-amd64-v1.11.4. </span><br><span class="line"></span><br><span class="line">mv clash-linux-amd64 clash</span><br><span class="line"></span><br><span class="line">chmod u+x clash</span><br><span class="line"></span><br><span class="line">./clash</span><br><span class="line"></span><br><span class="line">ls -al ~/.config/clash</span><br><span class="line">.rw-r--r-- 10 einverne 23 Mar 19:30 config.yaml</span><br><span class="line">.rw-r--r-- 4.0M einverne 23 Mar 19:30 Country.mmdb</span><br></pre></td></tr></table></figure></div><h1 id="配置Clash订阅以及面板"><a href="#配置Clash订阅以及面板" class="headerlink" title="配置Clash订阅以及面板"></a>配置Clash订阅以及面板</h1><p>1、把windows的订阅打开文件夹</p><p><img src="https://img-blog.csdnimg.cn/img_convert/01bc5865c477fcd1493bb774bec4b238.png" alt="image-20220813142131248"></p><p>2、讲对应的yml改成config.yaml</p><p><img src="https://img-blog.csdnimg.cn/img_convert/ffe89350fbaaee8aaee5a39d819c1e07.png" alt="image-20220813142220591"></p><p>3、将此config.yaml替换到~/.config/clash里面的config.yaml</p><p>4、下载面板文件</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">cd ~/.config/clash</span><br><span class="line">wget https://github.com/haishanh/yacd/archive/gh-pages.zip</span><br><span class="line">unzip gh-pages.zip</span><br><span class="line">mv yacd-gh-pages/ dashboard/</span><br></pre></td></tr></table></figure></div><p><img src="https://img-blog.csdnimg.cn/img_convert/ccfccff622b422556db5b157a4119827.png" alt="image-20220813142341024"></p><p>可以直接复制windows版本的clash里面的配置文件 然后修改少量的地方</p><p>在配置文件中加上/修改如下</p><p>secret就是api的访问秘钥 如果没有的话任何人都可以访问你的clash面板的api 不安全</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="YAML"><figure class="iseeu highlight /yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">secret:</span> <span class="string">xxxx</span></span><br><span class="line"><span class="attr">external-controller:</span> <span class="number">0.0</span><span class="number">.0</span><span class="number">.0</span><span class="string">:9090</span> <span class="comment">#别忘记在服务器厂商开放端口号</span></span><br><span class="line"><span class="attr">external-ui:</span> <span class="string">dashboard</span> <span class="comment">#打开面板</span></span><br></pre></td></tr></table></figure></div><p>修改后记得重启服务</p><p>然后就可以访问</p><p><a href="http://serverip:9090/ui/" target="_blank" rel="noopener">http://serverip:9090/ui/</a></p><p>访问到在线面板了 这里就是相当于自己部署了一个前端页面 跟随着clash启动 填入对应的api就可以查看到机器代理的情况了</p><p>那么对于我来说就是我的</p><p><img src="https://img-blog.csdnimg.cn/img_convert/9776bf21cdaf8e5b7592f1cb21f1403b.png" alt="image-20220813142714360"></p><h4 id="修改系统代理"><a href="#修改系统代理" class="headerlink" title="修改系统代理"></a>修改系统代理</h4><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="BASH"><figure class="iseeu highlight /bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/profile</span><br></pre></td></tr></table></figure></div><p>加上如下内容 其中端口号根据你的配置文件中指定的端口灵活修改就行</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="BASH"><figure class="iseeu highlight /bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> http_proxy=127.0.0.1:7890</span><br><span class="line"><span class="built_in">export</span> https_proxy=127.0.0.1:7890</span><br></pre></td></tr></table></figure></div><p>最后重载配置文件</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="BASH"><figure class="iseeu highlight /bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">source</span> /etc/profile</span><br></pre></td></tr></table></figure></div><p>这里我们修改的是整个系统的代理配置 如果有更高优先级的配置例如 用户变量 可能会导致不生效 如果代理没有生效可以检查其他的地方是不是也设置了优先级更高的代理 例如当前bash设置的临时变量优先级就比系统优先级更高</p><h1 id="用screen后台运行(不使用服务器情况)"><a href="#用screen后台运行(不使用服务器情况)" class="headerlink" title="用screen后台运行(不使用服务器情况)"></a>用screen后台运行(不使用服务器情况)</h1><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">apt install screen</span><br><span class="line">screen -ls 列出</span><br><span class="line">screen -r id</span><br></pre></td></tr></table></figure></div><p>1.docker打包<br><a href="https://blog.csdn.net/m0_67402125/article/details/123869967" target="_blank" rel="noopener">https://blog.csdn.net/m0_67402125/article/details/123869967</a></p><p>2.装载之前打包的tar文件,首先需要安装好你的docker,并运行。<br>执行命令装载到你的docker中<br>docker load< 你的路径/rabbitmq.tar</p><p>测试代理</p><p>curl myip.ipip.net –proxy <a href="http://127.0.0.1:7890" target="_blank" rel="noopener">http://127.0.0.1:7890</a></p><p>docker run -p 7890:7890 -p 8080:8080 -9090:9090 -itd –name shuize gylq:v1 bash</p><p>awvs 部署镜像 </p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">docker search awvs</span><br><span class="line">docker pull secfa/docker-awvs #拉取镜像</span><br><span class="line">docker run -it -d -p 8443:3443 secfa/docker-awvs #将Docker的3443端口映射到VPS的8443端口</span><br></pre></td></tr></table></figure></div><p><img src="https://img-blog.csdnimg.cn/img_convert/5b6a975c5959b6001a20924d0d7c2b04.png" alt="image-20220814091559091"></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">默认账号密码:</span><br><span class="line">username: admin@admin.com</span><br><span class="line">password: Admin123</span><br></pre></td></tr></table></figure></div>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="clash" scheme="https://gylq.gitee.io/tags/clash/"/>
</entry>
<entry>
<title>【知识积累】渗透时一些工具命令记录</title>
<link href="https://gylq.gitee.io/posts/193.html"/>
<id>https://gylq.gitee.io/posts/193.html</id>
<published>2022-07-24T05:01:39.739Z</published>
<updated>2022-08-23T19:11:10.459Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="Xray命令"><a href="#Xray命令" class="headerlink" title="Xray命令"></a>Xray命令</h1><p>被动扫描</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">xray webscan --listen 127.0.0.1:9999 --html-output xray.html</span><br></pre></td></tr></table></figure></div><p>验证存活</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">httpx -silent -stats -l open-domain.txtls -fl 0 -mc 200,302,403,404,204,303,400,401 -o newurls.txt</span><br></pre></td></tr></table></figure></div><p>回显单个子域名、验证存活</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -d testexex.com --silent | ./ksubdomain v --silent --only-domain --stdin | ./httpx --silent -stats -fl 0 -o newurls.txt</span><br></pre></td></tr></table></figure></div><p><strong>批量指纹扫描</strong></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./ehole finger -l url.txt -o result.xlsx</span><br></pre></td></tr></table></figure></div><p><strong>回显单个子域名,并去重</strong></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -d bibvip.com --silent | sort | uniq | ./ksubdomain v --silent --only-domain --stdin -o 1.log</span><br></pre></td></tr></table></figure></div><p>回显多种数据、验证存活</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -d bibvip.com --silent | ./ksubdomain v --silent --only-domain --stdin | ./httpx -title -td -status-code -title -follow-redirects -ip</span><br></pre></td></tr></table></figure></div><p><strong>批量子域名第三方收集、去重</strong></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -dL domain.txt --silent | sort | uniq | ./ksubdomain v --silent --only-domain --stdin -o 1.log</span><br></pre></td></tr></table></figure></div><p>子域名第三方收集、验证存活</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -dL domain.txt --silent | ./ksubdomain v --silent --only-domain --stdin | ./httpx --silent -stats -fl 0 -o newurls.txt</span><br></pre></td></tr></table></figure></div><p><strong>批量子域名爆破收集</strong></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./ksubdomain e -silent --only-domain --dl domain.txt | ./ksubdomain v --silent --only-domain --stdin -o 5.log</span><br></pre></td></tr></table></figure></div><p>子域名爆破收集、存活验证</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./ksubdomain e -silent --only-domain --dl domain.txt | ./httpx --silent -stats -fl 0 -o newurls.txt</span><br></pre></td></tr></table></figure></div><p>第二层域名爆破收集</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -dL domain.txt --silent | ./ksubdomain e --silent --only-domain --stdin</span><br></pre></td></tr></table></figure></div><p><strong>第二层域名爆破收集、去重</strong></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./subfinder -dL domain.txt --silent | sort | uniq | ./ksubdomain e --silent --only-domain --stdin -o 1.log</span><br></pre></td></tr></table></figure></div><p>整体去重</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cat 5.log | sort |uniq > 6.log</span><br></pre></td></tr></table></figure></div><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nmap -n --unique --resolve-all -Pn --min-hostgroup 64 --max-retries 0 --host-timeout 10m --script-timeout 3m -oX 11.xml --version-intensity 9 --min-rate 10000 -T4 starfish.testexex.com</span><br></pre></td></tr></table></figure></div><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./scan4all -l 11.xml -ceyeapi 2b8e073ef7b6cdd1ef7bfd571bd7ca4b -ceyedomain d1qc7a.ceye.io -csv -o output.csv -v</span><br></pre></td></tr></table></figure></div>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="大数据" scheme="https://gylq.gitee.io/tags/%E5%A4%A7%E6%95%B0%E6%8D%AE/"/>
</entry>
<entry>
<title>【知识积累】uiautomation</title>
<link href="https://gylq.gitee.io/posts/191.html"/>
<id>https://gylq.gitee.io/posts/191.html</id>
<published>2022-06-21T03:40:59.361Z</published>
<updated>2022-06-21T03:41:39.048Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>1、-a -t3 查找主控件</p><p>2、-f -t3 查找光标所处的控件</p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="大数据" scheme="https://gylq.gitee.io/tags/%E5%A4%A7%E6%95%B0%E6%8D%AE/"/>
</entry>
<entry>
<title>【知识积累】大数据复习总结</title>
<link href="https://gylq.gitee.io/posts/190.html"/>
<id>https://gylq.gitee.io/posts/190.html</id>
<published>2022-06-20T05:06:52.518Z</published>
<updated>2022-06-20T05:40:53.368Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="数据和大数据的含义:"><a href="#数据和大数据的含义:" class="headerlink" title="数据和大数据的含义:"></a>数据和大数据的含义:</h1><blockquote><p>数据是由生产资料和资本构成的,大数据是由海量数据和针对海量数据处理的解决方案构成。</p></blockquote><h1 id="大数据的四大特征"><a href="#大数据的四大特征" class="headerlink" title="大数据的四大特征"></a>大数据的四大特征</h1><ul><li>体量大(V):人类累计生成的数据总量</li><li>种类多(V):数据来源广</li><li>速度快:数据生成、存储、分析、处理的速度快</li><li>价值高:大数据具有巨大的潜在价值</li></ul><h1 id="大数据的技术支撑"><a href="#大数据的技术支撑" class="headerlink" title="大数据的技术支撑"></a>大数据的技术支撑</h1><ul><li>存储:存储成本下降、</li><li>计算:运算速度逐渐变快</li><li>智能:机器拥有理解数据能力</li></ul><h1 id="大数据的来源"><a href="#大数据的来源" class="headerlink" title="大数据的来源"></a>大数据的来源</h1><ul><li>新摩尔定律的含义:每18个月全球新增信息量是计算机有史以来全部信息量的总和</li></ul><h1 id="大数据的处理方法"><a href="#大数据的处理方法" class="headerlink" title="大数据的处理方法"></a>大数据的处理方法</h1><ul><li>1、大数据的采集:采用多个数据库来接收终端数据</li><li>2、大数据预处理的方法<ul><li>清理:达到数据格式化标准、重复的数据清除</li><li>集成:多个数据库结合并统一存储</li><li>交换:规范化等方式将数据转换用于数据挖掘的形式</li><li>归约:寻找数据特征,以减少数据规模</li></ul></li><li>3、统计于分析:主要是利用分布式数据库</li><li>4、大数据挖掘:创造数据挖掘模型的一组试探法和计算方法。</li></ul><h1 id="Source是负责接收数据到Flume-Agent的组件"><a href="#Source是负责接收数据到Flume-Agent的组件" class="headerlink" title="Source是负责接收数据到Flume Agent的组件"></a>Source是负责接收数据到Flume Agent的组件</h1><h1 id="数据挖掘的概念"><a href="#数据挖掘的概念" class="headerlink" title="数据挖掘的概念"></a>数据挖掘的概念</h1><ul><li>数据挖掘是整个知识发现流程中的一个具体过程。</li></ul><h1 id="贝叶斯分类(事件一定要假定独立)"><a href="#贝叶斯分类(事件一定要假定独立)" class="headerlink" title="贝叶斯分类(事件一定要假定独立)"></a>贝叶斯分类(事件一定要假定独立)</h1><p><img src="https://gylq.gitee.io/linkimage/img1/Screenshot_2022-06-20-13-20-39-16_99c04817c0de565.jpg" alt=""></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220620132820446.png" alt="image-20220620132820446"></p><h1 id="R语言"><a href="#R语言" class="headerlink" title="R语言"></a>R语言</h1><p>注意输出结果时写行标。并且多看看程序。</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br></pre></td><td class="code"><pre><span class="line">#基础符号</span><br><span class="line">#加减乘除就不多BB了</span><br><span class="line">算了还是提一下:+-*/ </span><br><span class="line">#赋值符号</span><br><span class="line">#注意等于号赋值 一般用在函数传参赋值 常规变量赋值还是用箭头</span><br><span class="line">赋值符号:-> 或<- 或 =</span><br><span class="line">#重点!!!</span><br><span class="line">求余:%%</span><br><span class="line">整除:%/%</span><br><span class="line">#逻辑运算符与或非返回的是逻辑值,不是二进制的那个按位与或非运算</span><br><span class="line">与或非:& | !</span><br><span class="line">#1.数值型</span><br><span class="line">3.1415926</span><br><span class="line">#2.字符型(单引号和双引号等价R语言中只有字符串)</span><br><span class="line">"hi (*/ω\*)"</span><br><span class="line">'hello ヾ(๑╹◡╹)ノ"'</span><br><span class="line">#3.逻辑型,注意都是大写的!</span><br><span class="line">TRUE</span><br><span class="line">FALSE</span><br><span class="line">#5.特殊值</span><br><span class="line">#缺失值理解为:</span><br><span class="line">#一个人提前预约好了车位先用停车告示牌放在车位上即有一个空数据位将会有一个真实数据来填充,那么先用缺失值放在这个数据位上帮它占着,</span><br><span class="line">#等他的车来了也就是等真实数据来了之后再移除这个告示牌将车停进去也就是用这个真实数据覆盖掉缺失值</span><br><span class="line">缺失值(Not Available缩写为NA):NA</span><br><span class="line">#判断是否为缺失值</span><br><span class="line">is.na(x)</span><br><span class="line">无穷大(Infinite):Inf</span><br><span class="line">不确定数或者说是非数值(Not a Number):NaN</span><br><span class="line">#比如 Inf-Inf 就是一个不确定值 当然Inf/Inf、Inf-Inf也是不确定值,但Inf+Inf=Inf</span><br><span class="line">#判断是否为非数值</span><br><span class="line">is.nan()</span><br><span class="line">#空值理解为:车位是空的而且没有人预约</span><br><span class="line">空值:NULL</span><br><span class="line">#6.向量</span><br><span class="line">#加减运算</span><br><span class="line">> x<-c(1,2,3,4,5)</span><br><span class="line">> y<-c(1,2)</span><br><span class="line">> x+y</span><br><span class="line">[1] 2 4 4 6 6</span><br><span class="line">> x<-c(1,2,3)</span><br><span class="line">> y<-c(1,2,3)</span><br><span class="line">> x+y</span><br><span class="line">[1] 2 4 6</span><br><span class="line">> x-y</span><br><span class="line">[1] 0 0 0</span><br><span class="line">#花式创建向量</span><br><span class="line">> x<-1:5</span><br><span class="line">> x</span><br><span class="line">[1] 1 2 3 4 5</span><br><span class="line">> x<-5:1</span><br><span class="line">> x</span><br><span class="line">[1] 5 4 3 2 1</span><br><span class="line">#序列函数seq(开始值,结束值,步长)</span><br><span class="line">> seq(1,5)</span><br><span class="line">[1] 1 2 3 4 5</span><br><span class="line">> seq(1,5,2)</span><br><span class="line">[1] 1 3 5</span><br><span class="line">> seq(1,5,0.5)</span><br><span class="line">[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0</span><br><span class="line">#重复函数rep(内容,重复次数)</span><br><span class="line">> rep(1,5)</span><br><span class="line">[1] 1 1 1 1 1</span><br><span class="line">> rep(c(1,2,3),2)</span><br><span class="line">[1] 1 2 3 1 2 3</span><br><span class="line">#索引</span><br><span class="line">> x<-5:1</span><br><span class="line">> x</span><br><span class="line">[1] 5 4 3 2 1</span><br><span class="line">> x[4]</span><br><span class="line">[1] 2</span><br><span class="line">> x[1]</span><br><span class="line">[1] 5</span><br><span class="line">#常用函数</span><br><span class="line">> x<-1:3</span><br><span class="line">> x</span><br><span class="line">[1] 1 2 3</span><br><span class="line">#求和</span><br><span class="line">> sum(x)</span><br><span class="line">[1] 6</span><br><span class="line">#最大值</span><br><span class="line">> max(x)</span><br><span class="line">[1] 3</span><br><span class="line">#最小值</span><br><span class="line">> min(x)</span><br><span class="line">[1] 1</span><br><span class="line">#均值</span><br><span class="line">> mean(x)</span><br><span class="line">[1] 2</span><br><span class="line">#长度</span><br><span class="line">> length(x)</span><br><span class="line">[1] 3</span><br><span class="line">#方差</span><br><span class="line">> var(x)</span><br><span class="line">[1] 1</span><br><span class="line">#标准差,认得这个函数就行</span><br><span class="line">> sd(x)</span><br><span class="line">[1] 1</span><br><span class="line">#中位数</span><br><span class="line">> median(x)</span><br><span class="line">[1] 2</span><br><span class="line">#添加函数append(向量,需要添加的值)</span><br><span class="line">> x<-append(x,1)</span><br><span class="line">> x</span><br><span class="line">[1] 1 2 3 1</span><br><span class="line">#替换函数append(向量,向量中的第几个数,替换成)</span><br><span class="line">> x<-replace(x,1,7)</span><br><span class="line">> x</span><br><span class="line">[1] 7 2 3 1</span><br><span class="line">> x<-replace(x,c(2,3),6)</span><br><span class="line">> x</span><br><span class="line">[1] 7 6 6 1</span><br><span class="line">#比较排序sort(向量,是否开启倒序排序)</span><br><span class="line">> x<-sort(x)</span><br><span class="line">> x</span><br><span class="line">[1] 1 6 6 7</span><br><span class="line">> x<-sort(x,TRUE)</span><br><span class="line">> x</span><br><span class="line">[1] 7 6 6 1</span><br><span class="line">#倒序rev(向量)</span><br><span class="line">> x<-rev(x)</span><br><span class="line">> x</span><br><span class="line">[1] 1 6 6 7</span><br><span class="line">> x<-rev(x)</span><br><span class="line">> x</span><br><span class="line">[1] 7 6 6 1</span><br><span class="line">#根据向量的值算出0%是多少,25%是多少……5个百分比quantile(向量) 认识它就可以了</span><br><span class="line">> quantile(x)</span><br><span class="line"> 0% 25% 50% 75% 100% </span><br><span class="line">1.00 4.75 6.00 6.25 7.00 </span><br><span class="line">#7.矩阵 matrix(向量,几行,几列)</span><br><span class="line">> x<-matrix(1:4,2,2)</span><br><span class="line">> x</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 1 3</span><br><span class="line">[2,] 2 4</span><br><span class="line">> y<-x*2</span><br><span class="line">> y</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 2 6</span><br><span class="line">[2,] 4 8</span><br><span class="line">#负号表示非 </span><br><span class="line">> y[-1,]</span><br><span class="line">[1] 4 8</span><br><span class="line">> y[-1]</span><br><span class="line">[1] 4 6 8</span><br><span class="line">> x+y</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 3 9</span><br><span class="line">[2,] 6 12</span><br><span class="line">#第一行第一列的值等于 1*2+3*4=14这是矩阵的乘法!注意运算符!%*%</span><br><span class="line">> x%*%y</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 14 30</span><br><span class="line">[2,] 20 44</span><br><span class="line">#索引</span><br><span class="line">> x[1,2]</span><br><span class="line">[1] 3</span><br><span class="line">> x[1]</span><br><span class="line">[1] 1</span><br><span class="line">> x[1,]</span><br><span class="line">[1] 1 3</span><br><span class="line">#一些常用会认就行</span><br><span class="line">#对角矩阵diag</span><br><span class="line">#求逆线性方程组solve</span><br><span class="line">#求特征向量eign</span><br><span class="line">#求秩rank</span><br><span class="line">#转置t</span><br><span class="line">#行列式det</span><br><span class="line">#8.数组array(向量,维数向量)</span><br><span class="line">#生成了一个2行2列的数组</span><br><span class="line">> array(c(1,2,3,4),c(2,2))</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 1 3</span><br><span class="line">[2,] 2 4</span><br><span class="line">#重复两次</span><br><span class="line">> array(1:4,c(2,2,2))</span><br><span class="line">, , 1</span><br><span class="line"></span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 1 3</span><br><span class="line">[2,] 2 4</span><br><span class="line"></span><br><span class="line">, , 2</span><br><span class="line"></span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 1 3</span><br><span class="line">[2,] 2 4</span><br><span class="line">#9.列表list(参数名=参数内容,参数名=参数内容……)</span><br><span class="line">> x<-list(数字=1,字符="ヾ(◍°∇°◍)ノ゙",向量=1:4,矩阵=matrix(1:4,2,2))</span><br><span class="line">> x</span><br><span class="line">$数字</span><br><span class="line">[1] 1</span><br><span class="line"></span><br><span class="line">$字符</span><br><span class="line">[1] "ヾ(◍°∇°◍)ノ゙"</span><br><span class="line"></span><br><span class="line">$向量</span><br><span class="line">[1] 1 2 3 4</span><br><span class="line"></span><br><span class="line">$矩阵</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 1 3</span><br><span class="line">[2,] 2 4</span><br><span class="line"></span><br><span class="line">#引用</span><br><span class="line">> x$数字</span><br><span class="line">[1] 1</span><br><span class="line">> x$字符</span><br><span class="line">[1] "ヾ(◍°∇°◍)ノ゙"</span><br><span class="line">> x$向量</span><br><span class="line">[1] 1 2 3 4</span><br><span class="line">> x$矩阵</span><br><span class="line"> [,1] [,2]</span><br><span class="line">[1,] 1 3</span><br><span class="line">[2,] 2 4</span><br><span class="line">> x$矩阵[1,]</span><br><span class="line">[1] 1 3</span><br><span class="line">#连续引用</span><br><span class="line">> x$列表<-list(a=1,b=2)</span><br><span class="line">> x$列表</span><br><span class="line">$a</span><br><span class="line">[1] 1</span><br><span class="line"></span><br><span class="line">$b</span><br><span class="line">[1] 2</span><br><span class="line"></span><br><span class="line">> x$列表$a</span><br><span class="line">[1] 1</span><br><span class="line">#10.数据框data.frame(向量,向量,向量,……)</span><br><span class="line">> 姓名<-c("JOJO","派蒙","阿尼亚","伍六七")</span><br><span class="line">> 性别<-c("男","女","女","男")</span><br><span class="line">> 成绩<-c(91,88,98,88)</span><br><span class="line">> 学生<-data.frame(姓名,性别,成绩)</span><br><span class="line">> 学生</span><br><span class="line"> 姓名 性别 成绩</span><br><span class="line">1 JOJO 男 91</span><br><span class="line">2 派蒙 女 88</span><br><span class="line">3 阿尼亚 女 98</span><br><span class="line">4 伍六七 男 88</span><br><span class="line">#行重命名row.names(向量)<-名字向量</span><br><span class="line">> row.names(学生)<-c("a","b","c","d")</span><br><span class="line">> 学生</span><br><span class="line"> 姓名 性别 成绩</span><br><span class="line">a JOJO 男 91</span><br><span class="line">b 派蒙 女 88</span><br><span class="line">c 阿尼亚 女 98</span><br><span class="line">d 伍六七 男 88</span><br><span class="line">#索引</span><br><span class="line">> 学生[1]</span><br><span class="line"> 姓名</span><br><span class="line">a JOJO</span><br><span class="line">b 派蒙</span><br><span class="line">c 阿尼亚</span><br><span class="line">d 伍六七</span><br><span class="line">> 学生[1,]</span><br><span class="line"> 姓名 性别 成绩</span><br><span class="line">a JOJO 男 91</span><br><span class="line">> 学生[1:2,]</span><br><span class="line"> 姓名 性别 成绩</span><br><span class="line">a JOJO 男 91</span><br><span class="line">b 派蒙 女 88</span><br><span class="line"></span><br><span class="line">> 学生[学生$成绩>90,]</span><br><span class="line"> 姓名 性别 成绩</span><br><span class="line">a JOJO 男 91</span><br><span class="line">c 阿尼亚 女 98</span><br><span class="line">> 学生[学生$成绩>90]</span><br><span class="line"> 姓名 成绩</span><br><span class="line">a JOJO 91</span><br><span class="line">b 派蒙 88</span><br><span class="line">c 阿尼亚 98</span><br><span class="line">d 伍六七 88</span><br><span class="line">#11.因子factor(向量,水平,标签) 不用太去理解因子,会代码就行</span><br><span class="line">> factor(1:3, labels=c("A", "B", "C"))</span><br><span class="line">[1] A B C</span><br><span class="line">Levels: A B C</span><br><span class="line">> factor(1:3)</span><br><span class="line">[1] 1 2 3</span><br><span class="line">Levels: 1 2 3</span><br><span class="line">> factor(1:3,levels = 1:5)</span><br><span class="line">[1] 1 2 3</span><br><span class="line">Levels: 1 2 3 4 5</span><br><span class="line">> factor(1:3,levels = 1:5,labels = c("A","B","C","D","E"))</span><br><span class="line">[1] A B C</span><br><span class="line">Levels: A B C D E</span><br><span class="line">#向量转无序因子</span><br><span class="line">> as.factor(1:3)</span><br><span class="line">[1] 1 2 3</span><br><span class="line">Levels: 1 2 3</span><br><span class="line">#向量转有序因子</span><br><span class="line">> as.ordered(1:3)</span><br><span class="line">[1] 1 2 3</span><br><span class="line">Levels: 1 < 2 < 3</span><br><span class="line">#12.流程控制</span><br><span class="line">> a<-3.1415926</span><br><span class="line">if(a>0){</span><br><span class="line"> print("hello")</span><br><span class="line"> }else if(a==0){</span><br><span class="line"> print("world")</span><br><span class="line"> }else{</span><br><span class="line"> print(";")</span><br><span class="line"> }</span><br><span class="line">[1] "hello"</span><br><span class="line">#13.for循环</span><br><span class="line"></span><br><span class="line">> for(i in 1:100){</span><br><span class="line">+ s<-s+i</span><br><span class="line">+ i<-i+1</span><br><span class="line">+ print(s)</span><br><span class="line">+ }</span><br><span class="line">#14.while循环</span><br><span class="line">> s<-0</span><br><span class="line">> i<-1</span><br><span class="line">> while(i<=100){</span><br><span class="line">+ s<-s+i</span><br><span class="line">+ i<-i+1</span><br><span class="line">+ print(s)</span><br><span class="line">+ }</span><br><span class="line">#15.函数编写</span><br><span class="line">func<-function(x1,x2=0){</span><br><span class="line">temp<-x1+2*x2</span><br><span class="line">if(x1+x2>=100){</span><br><span class="line">result<-300*temp-90</span><br><span class="line">}else if((x1+x2)>=-90){</span><br><span class="line">result<-9-temp</span><br><span class="line">}else{</span><br><span class="line">result<-NA</span><br><span class="line">}</span><br><span class="line">result}</span><br><span class="line">> func(x2=1,x1=1100)</span><br><span class="line">[1] 330510</span><br></pre></td></tr></table></figure></div><h1 id="深度学习"><a href="#深度学习" class="headerlink" title="深度学习"></a>深度学习</h1><ul><li>神经网络</li><li>图建模</li><li>人工智能</li><li>模式识别</li><li>最优化理论和信号处理</li></ul><h1 id="网络爬虫"><a href="#网络爬虫" class="headerlink" title="网络爬虫"></a>网络爬虫</h1><p>一种“机器人程序”其作用是自动采集所有它们可以到达的网页,并记录下这些网页的内容,以便其他程序进行后续的处理</p><h1 id="通用爬虫"><a href="#通用爬虫" class="headerlink" title="通用爬虫"></a>通用爬虫</h1><p>追求大的覆盖范围,对于网页中提取到的超链接会全收</p><h1 id="聚焦爬虫"><a href="#聚焦爬虫" class="headerlink" title="聚焦爬虫"></a>聚焦爬虫</h1><p>对提取到的超链接进行过滤,只对特定网站或者特定领域的网站进行爬取</p><h1 id="机械分词"><a href="#机械分词" class="headerlink" title="机械分词"></a>机械分词</h1><p>将待处理的中文字符串与一个“尽可能全面”的字典中词条按照一定的规则匹配</p><h1 id="用户画像构建流程"><a href="#用户画像构建流程" class="headerlink" title="用户画像构建流程"></a>用户画像构建流程</h1><ul><li>1、数据收集与分析</li><li>2、行为建模</li><li>3、构建用户画像</li><li>4、数据可视化分析</li></ul>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="大数据" scheme="https://gylq.gitee.io/tags/%E5%A4%A7%E6%95%B0%E6%8D%AE/"/>
</entry>
<entry>
<title>【知识积累】计算机网络安全复习总结</title>
<link href="https://gylq.gitee.io/posts/189.html"/>
<id>https://gylq.gitee.io/posts/189.html</id>
<published>2022-06-19T22:08:55.551Z</published>
<updated>2022-06-19T23:15:40.400Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="简述网络安全的基本含义"><a href="#简述网络安全的基本含义" class="headerlink" title="简述网络安全的基本含义"></a>简述网络安全的基本含义</h1><blockquote><p>网络系统中的硬件、软件和系统中的数据受到保护,不因为偶然的或者恶意的愿意而遭到破坏、更改或者泄露,系统连续可靠正常的运行,网络服务不中断。(<strong>其实就是想尽办法让计算机正常运行以及正常运行的过程中不受干扰</strong>)</p></blockquote><h1 id="网络所面临的安全威胁主要有哪些?"><a href="#网络所面临的安全威胁主要有哪些?" class="headerlink" title="网络所面临的安全威胁主要有哪些?"></a>网络所面临的安全威胁主要有哪些?</h1><ul><li>1、物理因素<ul><li>硬件老化</li><li>所处位置容易被触碰</li><li>所处位置潮湿、灰尘多等</li></ul></li><li>2、系统因素<ul><li>漏洞等</li></ul></li><li>3、人为因素<ul><li>恶意攻击</li><li>配置错误,泄露</li></ul></li></ul><h1 id="什么是网络攻击"><a href="#什么是网络攻击" class="headerlink" title="什么是网络攻击"></a>什么是网络攻击</h1><blockquote><p>对计算机和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能,在没有得到授权的情况下偷取或访问任一计算机的数据,都会被视为于计算机和计算机网络中的攻击。</p></blockquote><h1 id="主动攻击和被动攻击的区别是什么"><a href="#主动攻击和被动攻击的区别是什么" class="headerlink" title="主动攻击和被动攻击的区别是什么"></a>主动攻击和被动攻击的区别是什么</h1><ul><li>1、主动攻击<ul><li>对数据流进行篡改或者伪造</li><li>方法五类<ul><li>重放</li><li>伪造</li><li>篡改</li><li>拒绝服务(Dos)</li><li>分布式拒绝服务(DDOS)</li></ul></li></ul></li><li>2、被动攻击<ul><li>对传输中的信息进行窃听或者检测</li><li>方法:信息收集和流量分析</li></ul></li><li>网络安全的属性有哪些?<ul><li>主要的三大CIA,保密性、完整性、可用性</li><li>总计<ul><li>1、保密性</li><li>2、完整性</li><li>3、可用性</li><li>4、可控性</li><li>5、真实性</li><li>6、不可否认性</li></ul></li></ul></li></ul><h1 id="ISO开放系统互联安全体系定义了哪五类安全服务?"><a href="#ISO开放系统互联安全体系定义了哪五类安全服务?" class="headerlink" title="ISO开放系统互联安全体系定义了哪五类安全服务?"></a>ISO开放系统互联安全体系定义了哪五类安全服务?</h1><ul><li>1、鉴别服务</li><li>2、访问控制服务</li><li>3、数据保密性服务</li><li>4、数据完整性服务</li><li>5、抗抵赖性服务</li></ul><h1 id="PPDR模型的四个主要部分是什么?"><a href="#PPDR模型的四个主要部分是什么?" class="headerlink" title="PPDR模型的四个主要部分是什么?"></a>PPDR模型的四个主要部分是什么?</h1><ul><li>安全策略</li><li>保护</li><li>检测</li><li>响应</li></ul><h1 id="简要表明为什么要制定计算机安全的规范与标准"><a href="#简要表明为什么要制定计算机安全的规范与标准" class="headerlink" title="简要表明为什么要制定计算机安全的规范与标准?"></a>简要表明为什么要制定计算机安全的规范与标准?</h1><ul><li>用于规范网络安全技术工程</li></ul><h1 id="简述几种常见的网络攻击形式"><a href="#简述几种常见的网络攻击形式" class="headerlink" title="简述几种常见的网络攻击形式"></a>简述几种常见的网络攻击形式</h1><ul><li>1、中间人攻击<ul><li>双方还未通信时进入第三者,实际是第三者和双方通信</li></ul></li><li>2、SQL注入<ul><li>通过URL将关键SQL语句代入程序,SQL语句在程序中拼接后对数据库造成了破坏</li></ul></li><li>3、XSS攻击<ul><li>恶意脚本嵌入用户访问的网页中,当恶意脚本执行,会劫持用户会话等</li></ul></li></ul><h1 id="密码学RSA"><a href="#密码学RSA" class="headerlink" title="密码学RSA"></a>密码学RSA</h1><p><img src="https://gylq.gitee.io/linkimage/img1/84447B6F5BB4D6FD4C66B3D40D5CA8F3.jpg" alt="img"></p><h1 id="消息认证与数字签名"><a href="#消息认证与数字签名" class="headerlink" title="消息认证与数字签名"></a>消息认证与数字签名</h1><ul><li>为什么需要消息认证?<ul><li>保证消息的完整性防止窜改</li></ul></li><li>SHA中使用的基本算术是什么?<ul><li>异或XOR,循环移位,摸加,与,或,非</li></ul></li><li>一个安全的散列函数需要满足的特性有哪些?<ul><li>1、产生固定值</li><li>2、计算容易</li><li>3、可逆性很低</li><li>4、碰撞性低</li></ul></li><li>散列函数和消息认证码有什么区别?<ul><li>消息认证码需要用到密钥生成数据块附加在消息后</li><li>但散列函数不需要用密钥,还会为消息生成唯一的散列码</li></ul></li><li>数字签名和散列函数的应用有什么不同?<ul><li>散列主要用于验证消息的完整性</li><li>但数字签名可以保证找到消息的发送者和制造者可以防消息伪造</li></ul></li><li>数字签名满足条件<ul><li>数据完整性</li><li>不可否认性</li><li>真实性</li></ul></li><li>常用的数字签名技术<ul><li>RSA,EIGaml</li></ul></li><li>身份认证<ul><li>用户认证的主要方法有哪些?<ul><li>口令、动态密码,IC卡,生物特征</li></ul></li></ul></li><li>什么是AAA技术<ul><li>授权</li><li>认证</li><li>计费</li></ul></li><li>Kerberos协议是为了解决什么问题? <ul><li>保证真实性和安全性</li></ul></li></ul><h1 id="公钥基础设施PKI"><a href="#公钥基础设施PKI" class="headerlink" title="公钥基础设施PKI"></a>公钥基础设施PKI</h1><h1 id="什么是数字证书?数字证书的基本功能是什么"><a href="#什么是数字证书?数字证书的基本功能是什么" class="headerlink" title="什么是数字证书?数字证书的基本功能是什么"></a>什么是数字证书?数字证书的基本功能是什么</h1><p>就是个人或单位在网络上的身份证,数字证书能确保身份被认证,并且保证双方能安全放心的交换密钥。</p><h1 id="简述CA的基本职责"><a href="#简述CA的基本职责" class="headerlink" title="简述CA的基本职责"></a>简述CA的基本职责</h1><p>数字证书的颁发、认证、更新和吊销</p><h1 id="IPSec提供哪些安全服务"><a href="#IPSec提供哪些安全服务" class="headerlink" title="IPSec提供哪些安全服务?"></a>IPSec提供哪些安全服务?</h1><ul><li>保证数据完整</li><li>保证数据真实保密</li><li>防止重放攻击</li></ul><p>AH提供无连接的完整性、数据源认证和防消息重放</p><p>ESP:完整性校验、身份认证、防消息重复、消息加密</p><h1 id="简述SSL协议"><a href="#简述SSL协议" class="headerlink" title="简述SSL协议"></a>简述SSL协议</h1><ul><li>位于传输层和应用层之间</li><li>两层,一层是握手,一层是记录</li><li>一是SSL连接,它提供了用户和服务器之间的传输</li><li>二是SSL会话,它是客户端与服务端之间的关联,通过握手协议创建</li></ul><h1 id="防火墙技术"><a href="#防火墙技术" class="headerlink" title="防火墙技术"></a>防火墙技术</h1><h1 id="什么是防火墙?"><a href="#什么是防火墙?" class="headerlink" title="什么是防火墙?"></a>什么是防火墙?</h1><blockquote><p>防火墙可以是软件,也可以是硬件。</p></blockquote><ul><li>软件防火墙一般只能保护个人主机也就是我们系统上那个防火墙</li><li>硬件防火墙可以保护内网的许多计算机,它是一个设备一般放在路由器前面保护路由器和内网主机</li></ul><h1 id="简述防火墙的主要功能"><a href="#简述防火墙的主要功能" class="headerlink" title="简述防火墙的主要功能"></a>简述防火墙的主要功能</h1><ul><li>1、网络安全屏障</li><li>2、强化网络安全策略</li><li>3、监控审计</li><li>4、防止内部信息的外协</li><li>5、日志记录与事件通知</li></ul><h1 id="防火墙技术分类"><a href="#防火墙技术分类" class="headerlink" title="防火墙技术分类"></a>防火墙技术分类</h1><ul><li>包过滤型防火墙</li><li>应用代理型防火墙</li></ul><h1 id="简述包过滤原理"><a href="#简述包过滤原理" class="headerlink" title="简述包过滤原理"></a>简述包过滤原理</h1><blockquote><p>基于网络层的防火墙技术,其核心是包过滤算法的设计,也叫做安全策略设计。包过滤防火墙读取流过它的每一个数据包的报头信息,然后用预先设定好的过滤规则与之逐条匹配,成功则转发,不成功就丢弃。</p></blockquote><h1 id="什么是ACL控制访问技术"><a href="#什么是ACL控制访问技术" class="headerlink" title="什么是ACL控制访问技术"></a>什么是ACL控制访问技术</h1><p>简单来说就是一张表,记录了哪些数据可以收,哪些包不能收,控制数据包流入</p><blockquote><p><strong>访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特定指示条件来决定。</strong></p></blockquote><p>ACL是包过滤技术的一种实现</p><h1 id="为了控制访问和加强站点安全策略-防火墙采用了哪些技术"><a href="#为了控制访问和加强站点安全策略-防火墙采用了哪些技术" class="headerlink" title="为了控制访问和加强站点安全策略,防火墙采用了哪些技术?"></a>为了控制访问和加强站点安全策略,防火墙采用了哪些技术?</h1><ul><li>1、包过滤技术</li><li>2、应用代理技术</li><li>3、状态检测技术</li></ul><h1 id="什么是入侵检测?"><a href="#什么是入侵检测?" class="headerlink" title="什么是入侵检测?"></a>什么是入侵检测?</h1><p>通过对行为、安全日志或审计数据,检测对系统的闯入的企图</p><h1 id="简述VPN"><a href="#简述VPN" class="headerlink" title="简述VPN"></a>简述VPN</h1><blockquote><p>VPN就是虚拟专用网,在公用网络上建立专用网络,和对方进行加密通讯</p><p>利用了隧道技术、加密技术、密钥管理技术和身份认证技术</p></blockquote><h1 id="什么是网络监听-网络监听的作用是什么"><a href="#什么是网络监听-网络监听的作用是什么" class="headerlink" title="什么是网络监听?网络监听的作用是什么?"></a>什么是网络监听?网络监听的作用是什么?</h1><p>网络监听是一种监视网络状态、数据流程以及网络上信息传输的工具</p><ul><li>正面作用<ul><li>监视网络的流量、状态、数据等信息</li></ul></li><li>负面作用<ul><li>网络通信不畅、数据丢失、信息被窃取</li></ul></li></ul><h1 id="缓冲区溢出"><a href="#缓冲区溢出" class="headerlink" title="缓冲区溢出"></a>缓冲区溢出</h1><p>往程序的缓冲区写超出其长度的内容,造成溢出,从而破坏程序的堆栈,让程序执行其他命令</p><h1 id="端口扫描"><a href="#端口扫描" class="headerlink" title="端口扫描"></a>端口扫描</h1><p>目的就是通过扫描知道一个计算机提供的服务,然后利用已知漏洞攻击</p><h1 id="DDOS"><a href="#DDOS" class="headerlink" title="DDOS"></a>DDOS</h1><ul><li>DOS就是拒绝服务攻击</li><li>DDOS就是分布式拒绝服务攻击</li></ul><p>攻击类别有两种</p><ul><li>一是带宽攻击,通过发送垃圾大量信息占用带宽,导致正常用户无法请求到服务器</li><li>二是连通性攻击,就是大量连接请求攻击服务器,使其资源消耗殆尽,最终无法响应用户。</li></ul><h2 id="ARP欺骗"><a href="#ARP欺骗" class="headerlink" title="ARP欺骗"></a>ARP欺骗</h2><p>ARP欺骗本质是把虚假的IP-MAC映射关系通过ARP报文发给主机,让其无法正确发送数据</p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="安全" scheme="https://gylq.gitee.io/tags/%E5%AE%89%E5%85%A8/"/>
</entry>
<entry>
<title>【知识积累】Au录音基础</title>
<link href="https://gylq.gitee.io/posts/188.html"/>
<id>https://gylq.gitee.io/posts/188.html</id>
<published>2022-06-06T06:15:47.810Z</published>
<updated>2022-06-18T12:32:52.002Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="使用多轨"><a href="#使用多轨" class="headerlink" title="使用多轨"></a>使用多轨</h1><p>1、在录音之前</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606141727774.png" alt="image-20220606141727774"></p><p>选择单声道</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606142210248.png" alt="image-20220606142210248"></p><p>并且全部选1</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606142312311.png" alt="image-20220606142312311"></p><p>2、在此选择单声道1</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606142507489.png" alt="image-20220606142507489"></p></blockquote><p><strong>3、录用要点亮R,I是返音,M是静音此轨道,S就是单独播放此声道</strong></p><p>4、还需要设置初始电平</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606143013996.png" alt="image-20220606143013996"></p></blockquote><p>5、大部分都在-12到-21之间跳动</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606143454282.png" alt="image-20220606143454282"></p><p>6、黄色是<strong>音量调节</strong>,蓝色是<strong>声像</strong>(靠上是偏左声道,下是偏右声道)</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606150443765.png" alt="image-20220606150443765"></p><p>7、<strong>出错可以用弹舌来进行标志,接着继续录制</strong></p><p>8、音频分贝要求在-3到-6之间,我们如何调节</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606202910226.png" alt="image-20220606202910226"></p><p>9、标准化处理</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606202949770.png" alt="image-20220606202949770"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220606203253513.png" alt="image-20220606203253513"></p><h1 id="录音的基本操作"><a href="#录音的基本操作" class="headerlink" title="录音的基本操作"></a>录音的基本操作</h1><p>1、录完一段音之后,需要降噪、去口水、均衡,如果是用电子管压缩器之后还要做一遍均衡</p><p>2、第一步、降噪、去口水、电子管压缩器、均衡、强制振幅</p><p>3、收藏夹有一个开始记录收藏</p><h1 id="音效操作"><a href="#音效操作" class="headerlink" title="音效操作"></a>音效操作</h1><p>1、电话音</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607075540889.png" alt="image-20220607075540889"></p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607075608099.png" alt="image-20220607075608099"></p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607075713671.png" alt="image-20220607075713671"></p><p>2、车内音</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607080159129.png" alt="image-20220607080159129"></p><p>3、门外音</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607080802035.png" alt="image-20220607080802035"></p><p>4、内心混响</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607081023726.png" alt="image-20220607081023726"></p><p>第一个是声音亮调节</p><p>第二个是控制声音的厚重感,往右声音很有分量</p><p>第三个是控制声音的远近距离感,越往左边贴近耳朵</p><p>第四个是中间那个大的,是控制空间感,左边空间感越小</p><p>第五个是微调</p><p>第六个是单声道和立体声基本不用动</p><p>最后一个,第七个是发送量</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607081402937.png" alt="image-20220607081402937"></p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607081411929.png" alt="image-20220607081411929"></p><p>5、电视机</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607081911936.png" alt="image-20220607081911936"></p><p>6、留声机</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607082213207.png" alt="image-20220607082213207"></p><p>7、FFT电话音</p><p><img src="https://gylq.gitee.io/linkimage//img1/image-20220607082925678.png" alt="image-20220607082925678"></p><p>8、变小孩声音</p><p><img src="C:%5CUsers%5C23242%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20220607083455778.png" alt="image-20220607083455778"></p><h1 id="做后期"><a href="#做后期" class="headerlink" title="做后期"></a>做后期</h1><p>一个积累音效和背景音乐的过程,然后把它运用的恰当,让声音锦上添花。</p><p>1、建立自己的音效文件夹 。</p><p>2、简配,音效 3 - 5个, BGM 合适 价格 15-30 元</p><p>3、中配,搭建一组场景,音效 8 - 10, BGM贴切 5-80 元</p><p>4、精配:场景 2 - 3 个 , 音效 15 个 以上,BGM合理 100 以上</p><p>5、超精配:所有场景,所有的音效,BGM贴切, 200以上</p><p><strong>不同的小说用什么音乐。</strong></p><p>现代言情,BGM钢琴曲。</p><p>校园类,吉他。</p><p>官场的,沉郁大气</p><p>古风,古筝,笙,还有琵琶等,笛子,萧</p><p>玄幻类</p><p>恐怖类 BGM,Joseph Bishara Charlie Clouser</p><p>科幻类,神秘,科技感</p><p>配乐库:<a href="https://studio.ximalaya.com/music-web/index" target="_blank" rel="noopener">https://studio.ximalaya.com/music-web/index</a></p><p>6、简配定律</p><p>整体振幅,检查对轨文件。</p><p>①对轨完,报幕无背景音乐</p><p>②前三后五。( 留三秒插入背景音乐)</p><p>③干音>音效>BGM>环境音效 (BMG -24左右, 音效 -13左右)</p><p>④音效前置</p><p>⑤最好是用音效切换场景,转场音效</p><p>⑥音效、音乐、持续连贯,同一首音乐,不可重复</p><p>⑦音效尽量别单个出来,而是连贯的要有连续性。</p><p>⑧音乐无人声的,旋律不要烂大街的。</p><p>⑨工程文件保存三个月。以便替换。</p><p>⑩场景搭建</p><p><strong>音效网站</strong></p><p><a href="https://www.aigei.com/sound" target="_blank" rel="noopener">https://www.aigei.com/sound</a></p><p><a href="https://xiazai.51miz.com/sound/" target="_blank" rel="noopener">音效素材下载 - 音效大全 - 配乐 - 觅知网 (51miz.com)</a></p><p>站长素材</p><h1 id="快键键"><a href="#快键键" class="headerlink" title="快键键"></a>快键键</h1><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220618201307525.png" alt="image-20220618201307525"></p><p>干音处理</p><p>RX 8 Mouth De-click 口水</p><p>RX 8 Spectral De-noise 降噪 用learn</p><p>FabFilter Pro-Q 3 电话音</p><p>FFT 门外音</p><p>振幅统计和 FabFilter Pro-C 2 一起使用 最左边</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220618201407457.png" alt="image-20220618201407457"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220618201420039.png" alt="image-20220618201420039"></p><p>干音处理流程</p><p>1、拉大振幅</p><p>2、处理口水-RX8</p><p>3、喷麦-RX8(框选处理,不要全选处理)-音损大</p><p>4、降噪Waves–NS1.Mono/NS1.Stereo(数值不能超过30,环境比较好,数值设在10以下)</p><p> 采样降噪(降噪:50-70之间;降噪幅度与上面持平)再捉一次NS1</p><p> (底噪在-60–66之间就可以)</p><ol start="5"><li>相位中置Waves–Center Stereo</li><li><ol start="6"><li>单频段压缩(只调整第一个,后面参数都不变)</li></ol></li></ol>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="AU" scheme="https://gylq.gitee.io/tags/AU/"/>
</entry>
<entry>
<title>【知识积累】Win下的应急响应</title>
<link href="https://gylq.gitee.io/posts/187.html"/>
<id>https://gylq.gitee.io/posts/187.html</id>
<published>2022-01-16T13:04:36.608Z</published>
<updated>2022-05-20T03:44:39.051Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="应急响应"><a href="#应急响应" class="headerlink" title="应急响应"></a>应急响应</h1><p>了解下黑客的目的</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115120234118.png" alt="image-20220115120234118"></p><p>应急线索来源:</p><ul><li>1、从流量侧发现线索<ul><li>Webshell攻击<ul><li>漏洞利用成功</li><li>Webshell文件操作</li><li>Web日志审计</li><li>根据时间线查</li></ul></li><li>异常的外联(比如恶意域名/恶意IP)</li><li>横向渗透工具(比如CS、SSF,nps,chrome密码提取等)</li><li>怀疑主机失陷(点击)</li></ul></li><li>2、外界情报(某系统),(听说某系统有0day)全盘的检测</li><li>3、造成后果后发现,被勒索了,业务挂了</li><li>4、安全监控设备(终端杀软,EDR)</li></ul><h2 id="windows主机取证"><a href="#windows主机取证" class="headerlink" title="windows主机取证"></a>windows主机取证</h2><h3 id="工具应急响应方法"><a href="#工具应急响应方法" class="headerlink" title="工具应急响应方法"></a>工具应急响应方法</h3><p>最简单的直接通过工具快速简洁</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">【睿眼Windows终端溯源取证系统】(真实平台,可实际操作)</span><br><span class="line">公网地址:https://ir.zorelworld.com:443/</span><br><span class="line">401信息: 401_Z1xW5y \ Z1w5yoct.CM</span><br><span class="line">页面账号信息:可在页面自行注册</span><br></pre></td></tr></table></figure></div><p>1、创建项目,下载采集器,尽量不使用常驻的</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154833084.png" alt="image-20220115154833084"></p></blockquote><p>2、采集资产目录</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154852427.png" alt="image-20220115154852427"></p></blockquote><p>3、结果会在data目录中,有一个zip的压缩包,将其上传,可以查看取证报告</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154924693.png" alt="image-20220115154924693"></p></blockquote><p>4、取证报告</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154949495.png" alt="image-20220115154949495"></p></blockquote><p>5、专家模式根据时间轴,判断黑客那个时间段做了啥</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115155938716.png" alt="image-20220115155938716"></p></blockquote><h2 id="小总结"><a href="#小总结" class="headerlink" title="小总结"></a>小总结</h2><p>三要素</p><p>①时间②线索③黑客思路④权限(攻击者拿到的哪些信息)</p><p>客户端/服务端(WebShell)</p><p>1、发现一个Webshell</p><p>2、找到Webshell</p><p>3、Webshell的时间,找Web日志里连这个Webshell的IP,根据这个IP遍历所有日志</p><p>这个工具对于windows来遍历日志,一个<strong>文件搜索工具</strong></p><p><strong>FileLocator Pro</strong> 应急响应比较好多的</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115161316553.png" alt="image-20220115161316553"></p></blockquote><p>类似linux的grep</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115161511590.png" alt="image-20220115161511590"></p></blockquote><p>图形化比较好多的了,Nginx日志啥的</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115161714488.png" alt="image-20220115161714488"></p></blockquote><p>4、通过everything去查找这个时间点前后1-3天的所有创建文件</p><p>源IP什么时间的第一次连接是什么时间,Webshell创建是什么时间,服务器第一次被这些IP访问是什么时间(根据情况判断对方是怎么攻击的)</p><p>5、服务器网络策略,这个服务器能不能对外联网,CS,或者NPS隧道(完全禁止—>,DNS,ICMP协议)</p><p>6、限于找Web漏洞以及隐藏的Webshell,以及不死webShell(Mysql触发后门,NTFS隐藏了解)</p><p>7、端口复用,Apache插件,端口重复使用</p><p>8、Web服务器失陷了(Linux),翻SSH公钥,翻配置文件(数据库PHPXML),History(用户名,有多少台机子),进程(运营)</p><p>应急响应步骤</p><p>1、Tomcat漏洞利用成功,流量是实时;</p><p>2、断网</p><p>3、确定线索,漏洞利用成功(修复漏洞后尽快上线,确定有没有横向的动作),WebShell上来了(关心有没有横向渗透工具 NPS,SSF),还是内网渗透,后渗透(确定影响范围)等,第一次接触的时间,到目前为止多久</p><h2 id="异常的外链"><a href="#异常的外链" class="headerlink" title="异常的外链"></a>异常的外链</h2><p>1、通过IOC、恶意域名、恶意ip、恶意HASH、DGA域名</p><p>2、检测模型(NPS上线了,CS上线了,SSF挂出去)</p><p>这里推荐一个工具<strong>LiveTcpUdpWatch</strong>实时去查看进程的情况</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115165217221.png" alt="image-20220115165217221"></p></blockquote><p>Sysmon日志实时记录,因为是微软的,所以很方便</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170018007.png" alt="image-20220115170018007"></p></blockquote><p>Process Monitor</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170418866.png" alt="image-20220115170418866"></p></blockquote><p>可以看到很详细的信息,但是得一直开着,可能没有Sysmon方便</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220118160206943.png" alt=""></p></blockquote><p>AppNetworkCount,也是对应的网络链接的工具</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170724535.png" alt="image-20220115170724535"></p></blockquote><p>DNS缓存记录</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115171251020.png" alt="image-20220115171251020"></p></blockquote><p>pcap.honeynet.org.my/v1/</p><p>如果你遇到流量包不知道怎么分析</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115171335395.png" alt="image-20220115171335395"></p></blockquote><h2 id="文件分析的思路"><a href="#文件分析的思路" class="headerlink" title="文件分析的思路"></a>文件分析的思路</h2><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115171444599.png" alt="image-20220115171444599"></p></blockquote><p>MD5的威胁</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115173051567.png" alt="image-20220115173051567"></p></blockquote><h2 id="内存马怎么分析呢"><a href="#内存马怎么分析呢" class="headerlink" title="内存马怎么分析呢"></a>内存马怎么分析呢</h2><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116093725592.png" alt="image-20220116093725592"></p></blockquote><p>怎么确认内存马呢</p><p>第一种叫注入内存马(进程PE类型)</p><p>第二种叫做Webshell的内存马</p><ul><li>1、Webshell进程从外面可以访问,在主机上找不到这个文件,这时就得怀疑了</li><li>2、Webshell的内存马,就见过JSP(PHP,ASP没见过)</li></ul><p>关于JSP的社工方式</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116094739705.png" alt="image-20220116094739705"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116094804962.png" alt="image-20220116094804962"></p><p>3、利用关键词或者检测规则对内存文件进行检测</p><p>可以用grep临时检测</p><p>strings * |grep -i “Cknife”(哥斯拉生成的C刀内存马)</p><p>ReGeorg、Behinder、AES_BASE64、AES_RAW,检测内存里运行的哥斯拉,可以直接用<code>RealFile:\|path.separator::</code></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116094917947.png" alt="image-20220116094917947"></p><h2 id="内存马实战"><a href="#内存马实战" class="headerlink" title="内存马实战"></a>内存马实战</h2><p>首先Ps aux|grep tomcat</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116104137886.png" alt="image-20220116104137886"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116104346533.png" alt="image-20220116104346533"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116104417258.png" alt="image-20220116104417258"></p><p>就可以找到一些内存马的特征</p><p>ntfs流不死马,数据库触发后门不死马(通过触发器当检索到某字段存在某个字符就会写马)</p><h2 id="实战1"><a href="#实战1" class="headerlink" title="实战1"></a>实战1</h2><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116110748436.png" alt="image-20220116110748436"></p><p>1、有两台机器被控制了,属于个人主机。就两种情况①、钓鱼或者社工(养一个美女啥的发你东西,你点了之后上线),②有明显ms17-010补丁未打被smb内网打进来,可能存在,③更新包被替换了更新劫持,通过一些高端手法进来的劫持</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116121408312.png" alt="image-20220116121408312"></p><p>发现,f3322.net pubyun 老牌的DDNS,动态域名解析</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122024973.png" alt="image-20220116122024973"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122104556.png" alt="image-20220116122104556"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122141998.png" alt="image-20220116122141998"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122318353.png" alt="image-20220116122318353"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122355238.png" alt="image-20220116122355238"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122433208.png" alt="image-20220116122433208"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122540803.png" alt="image-20220116122540803"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122555192.png" alt="image-20220116122555192"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122603995.png" alt="image-20220116122603995"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122622978.png" alt="image-20220116122622978"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122650586.png" alt="image-20220116122650586"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122701436.png" alt="image-20220116122701436"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122719555.png" alt="image-20220116122719555"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122748547.png" alt="image-20220116122748547"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122848036.png" alt="image-20220116122848036"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122930861.png" alt="image-20220116122930861"></p><h2 id="实战2"><a href="#实战2" class="headerlink" title="实战2"></a>实战2</h2><p>误报的应急响应</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116123047085.png" alt="image-20220116123047085"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116123103460.png" alt="image-20220116123103460"></p><p>是内网到外网的代理服务器</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116151952982.png" alt="image-20220116151952982"></p><p>应急响应三步骤</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116164809985.png" alt="image-20220116164809985"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116164857760.png" alt="image-20220116164857760"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116164912122.png" alt="image-20220116164912122"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165030316.png" alt="image-20220116165030316"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165051365.png" alt="image-20220116165051365"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165120994.png" alt="image-20220116165120994"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165134885.png" alt="image-20220116165134885"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165218257.png" alt="image-20220116165218257"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165247647.png" alt="image-20220116165247647"></p><p><strong>最终判断是误报</strong></p><p>我们需要做的是检测、威胁发现、威胁溯源、应急响应、写报告</p><p>个人博客:<a href="https://gylq.gitee.io/">https://gylq.gitee.io/</a></p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="溯源" scheme="https://gylq.gitee.io/tags/%E6%BA%AF%E6%BA%90/"/>
</entry>
<entry>
<title>【知识积累】面试溯源、应急、流量分析全面总结</title>
<link href="https://gylq.gitee.io/posts/186.html"/>
<id>https://gylq.gitee.io/posts/186.html</id>
<published>2022-01-14T06:33:59.563Z</published>
<updated>2022-05-20T03:44:39.051Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="攻击溯源总结"><a href="#攻击溯源总结" class="headerlink" title="攻击溯源总结"></a>攻击溯源总结</h1><p>意义</p><blockquote><p>想通过IP直接找到人的</p></blockquote><h2 id="脑图"><a href="#脑图" class="headerlink" title="脑图"></a>脑图</h2><p>1、利用搜索引擎直接搜索ip</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/xPtXso7JdDZ5k21.png" alt="image-20220115094803315"></p></blockquote><p>2、就是威胁情况,微步、qax啊,等等,可以做去澡的方式</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/BP2i6dl5fyRZe3j.png" alt="image-20220115094837923"></p></blockquote><p>3、主动探测,常见的端口和工具扫描</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/2u4KSNhgEldpWyH.png" alt="image-20220115095125316"></p></blockquote><p>4、一些默认的web应用的溯源,还有常见的</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/wlYAz4HrPDhfRLC.png" alt="image-20220115095334534"></p></blockquote><p>5、c2的一些端口什么的,肉鸡漏洞</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/9WLDY3GQazXSHEb.png" alt="image-20220115095700731"></p></blockquote><p>6、网络已经有的大库,无需等待扫描时间直接获取结果</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/bIk8zjFH6C3uWLG.png" alt="image-20220115095822224"></p></blockquote><h2 id="网络空间属性基础前置"><a href="#网络空间属性基础前置" class="headerlink" title="网络空间属性基础前置"></a>网络空间属性基础前置</h2><p>百度,就可以直接ip定位。</p><p>1、判断ip是不是静态ip</p><p><strong>ipip.net/ip.html</strong>,这个网站中判断,查rDNS记录,可以判断是否是静态ip,当rDNS中包含static就是静态</p><p><strong>ipwhois.cnnic.net.cn</strong>,这个备案信息查询网站看<strong>地址状态</strong>这个是做更准确的判断</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220114152824239.png" alt="image-20220114152824239"></p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220114151124618.png" alt="image-20220114151124618"></p></blockquote><p>Fofa,去看看</p><p>尽量使用虚拟机去打开网站,防止泄露,无痕模式查看</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220114153005281.png" alt="image-20220114153005281"></p></blockquote><p>或者用nmap查看开放端口</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220114153204753.png" alt="image-20220114153204753"></p></blockquote><p>空间搜索可以看到对应的服务</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220114153635689.png" alt="image-20220114153635689"></p></blockquote><p><strong>censys.io,去扫段地址</strong></p><p>若非业务端口比较多可能是小区的范围动态ip</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220114154536231.png" alt="image-20220114154536231"></p></blockquote><p>若看到c段,有很多http的话80或者443网页页面的时候,基本都是IDC出口或者企业出口的,静态ip</p><blockquote><p><img src="https://s2.loli.net/2022/01/14/OHesLhyoZE6plt3.png" alt="image-20220114163843511"></p></blockquote><p><img src="https://s2.loli.net/2022/01/14/1cv869fjZUlHnVo.png" alt="image-20220114164442449"></p><p><strong>ip定位</strong></p><p><a href="http://chaipip.com/" target="_blank" rel="noopener">http://chaipip.com/</a></p><p>高德地图amap.com/</p><p>通过搜周边,搜公司可以确定对方是不是准确的</p><blockquote><p><img src="../../../../AppData/Roaming/Typora/typora-user-images/image-20220114155446526.png" alt="image-20220114155446526"></p></blockquote><p>查c段也可以定出来动态ip啥的</p><p><a href="http://virustotal.com,可以研判ip,主要是查国外ip比较准,反查域名啥的" target="_blank" rel="noopener">http://virustotal.com,可以研判ip,主要是查国外ip比较准,反查域名啥的</a></p><p><a href="https://www.virustotal.com/gui/ip-address/45.32.44.18/relations" target="_blank" rel="noopener">https://www.virustotal.com/gui/ip-address/45.32.44.18/relations</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/MA6FtRJgfCHG72S.png" alt="image-20220114161012392"></p></blockquote><p>常见的vpn端口</p><p><img src="https://s2.loli.net/2022/01/14/He2fX6TkspCu48R.png" alt="image-20220114164542272"></p><h2 id="实战1"><a href="#实战1" class="headerlink" title="实战1"></a>实战1</h2><p>获取的攻击者ip地址:202.5.17.76</p><p>1、直接ip定位查看相关位置和IDC和应用场景,动静态判断等</p><blockquote><p><img src="https://s2.loli.net/2022/01/14/nZEtdycSzODQVvl.png" alt="image-20220114170056896"></p></blockquote><blockquote><p><img src="https://s2.loli.net/2022/01/14/Xp5UWMNOg9vjS83.png" alt="image-20220114165822239"></p></blockquote><p>2、在去vt看看对应的,可以看到运营商都是HOSTUS,也可以通过<a href="https://myip.ms/来搜索" target="_blank" rel="noopener">https://myip.ms/来搜索</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/MnaXv4V3LzR6HPl.png" alt="image-20220114172328644"></p></blockquote><p><img src="https://s2.loli.net/2022/01/14/xX1rm7QhP2WfoOS.png" alt="image-20220114165844975"></p><p>3、通过百度搜索hostus判断是一个vps,然后直接端口扫描,用空间测绘,Nmap等</p><blockquote><p><img src="https://s2.loli.net/2022/01/14/XwJDAlRLHEWOcqp.png" alt="image-20220114170203345"></p></blockquote><p>4、发现8080是有一个nps,明显黑客工具,现在就是通过端口看能不能拿下了</p><blockquote><p><img src="https://s2.loli.net/2022/01/14/WcZlX83y2Gs4Hvt.png" alt="image-20220114170257156"></p></blockquote><p>5、通过反查域名看看有没有办法查到其他子域名的信息,直接微步查到对应:flasih.com.cn域名</p><p><img src="https://s2.loli.net/2022/01/14/IidX45OCUQejW87.png" alt="image-20220114171007272"></p><p>6、接着发现子域名可以直接访问该网站,和ip解析对应</p><blockquote><p><img src="https://s2.loli.net/2022/01/14/uf4qWEpHSoUFABz.png" alt="image-20220114171041144"></p></blockquote><p>7、直接通过奇安信和站长工具的反查域名对应的注册信息判断</p><p>姓名:于涌泉</p><p>邮箱:<a href="https://ti.qianxin.com/v2/search?type=email&value=1919635086@qq.com" target="_blank" rel="noopener">1919635086@qq.com </a></p><p>公司:北京新网数码信息技术有限公司</p><p>位置:北京市海淀区中关村南大街9号理工科技大厦1206室</p><p><img src="https://s2.loli.net/2022/01/14/U2SwmKZPqlGkTdH.png" alt="image-20220114171132471"></p><p>8、得到了对应的姓名和邮箱qq,就可以看看相关的域名,通过站长工具,因为奇安信的研判有些功能没开放,站长虽然无法看姓名,但是奇安信可以,通过反查姓名可以看到其他的两个域名,对比公司相同的whois中的属性。</p><p><img src="https://s2.loli.net/2022/01/14/TYizStlcI3Cyf95.png" alt="image-20220114171837160"></p><p>9、得到的姓名和QQ邮箱和公司,可以直接地理定位</p><blockquote><p><img src="https://s2.loli.net/2022/01/14/KAlqQRpLPG6hW4r.png" alt="image-20220114172820745"></p></blockquote><p>格式书写,其他信息可以直接用社工库搞出来</p><p>下方为网图</p><p><img src="https://s2.loli.net/2022/01/14/Y8lWtai3r7dPIDL.png" alt="image-20220114173410713"></p><h2 id="实战2"><a href="#实战2" class="headerlink" title="实战2"></a>实战2</h2><p>获取到的攻击者的ip地址:161.35.76.1,172.105.87.139,182.18.152.105,46.101.232.43,47.56.86.44,80.246.28.44</p><p>1、一个个来,161.35.76.1查过是德国的ip,vt可以看到,可以看到供应商是<a href="https://www.digitalocean.com/这个网站的" target="_blank" rel="noopener">https://www.digitalocean.com/这个网站的</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/2OgqLYdGEzXiy5V.png" alt="image-20220114173940534"></p></blockquote><p>2、看看第二个172.105.87.139,继续搜,可以看到是另一个供应商Linode</p><p><img src="https://s2.loli.net/2022/01/14/5FArBm6Zc9C4KJn.png" alt="image-20220114192417927"></p><p>3、接着可以从反查出来的域名进行跟踪可以看到多出一个104.21.72.185</p><p><img src="https://s2.loli.net/2022/01/14/HoegpV3SsvZfdBE.png" alt=""></p><p>4、通过跟踪上方查到的ip,我们可以看出明显是个cdn,可以查cdn的网站:<a href="https://tools.ipip.net/cdn.php查询IP,这些就无意义回去。" target="_blank" rel="noopener">https://tools.ipip.net/cdn.php查询IP,这些就无意义回去。</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/2DiOaQk5VwHe1pn.png" alt="image-20220114194816463"></p></blockquote><p>5、小技巧:通过攻击时间也可以判断对方是否是国人做的事,点开对方用过的攻击文件,可以清楚看到时间,可以做一些估判</p><p><img src="https://s2.loli.net/2022/01/14/HyF5WVxotPqYBui.png" alt="image-20220114195836105"></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/GxTtDUBf6XjIVRC.png" alt="image-20220114195914880"></p></blockquote><p>6、接着看第三个ip的182.18.152.105,差不多的数据,小知识:<a href="https://search.censys.io,可以看一些记录过的端口开放的http形式的源码,可以来帮助溯源" target="_blank" rel="noopener">https://search.censys.io,可以看一些记录过的端口开放的http形式的源码,可以来帮助溯源</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/le9VFoNnZJDQEOx.png" alt="image-20220114200304824"></p></blockquote><p>7、直到我看到47.56.86.44这个ip的时候,查一下信息,明显阿里云的,丢vt里面反查其他信息</p><p><img src="https://s2.loli.net/2022/01/14/oEm3aHU1BhjPb56.png" alt="image-20220114201816185"></p><blockquote><p><img src="https://s2.loli.net/2022/01/14/tTdNh7nmjUOFE8A.png" alt="image-20220114202004528"></p></blockquote><p>8、谷歌可以找到反查域名的一些沙箱分析</p><p><img src="https://s2.loli.net/2022/01/15/h4uoDYr8WGnvA9K.png" alt="image-20220115093439272"></p><p>9、我们点开对应的可以看到的cobaltsttrike文件</p><p><img src="https://s2.loli.net/2022/01/15/lWeZobBT2D3JGkR.png" alt="image-20220115092010369"></p><p>10、在登陆账号之后可以看到样本关联</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/6D1XVduPnkqZ7yQ.png" alt="image-20220115093800611"></p></blockquote><p>11、这里可以看到规则来源,也可以去referer看</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/RmZ92XtnyBTMYbv.png" alt="image-20220115093852869"></p></blockquote><p>12、可以通过github搜对应代码,判断规则是什么时候写的</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/Z9pmEn15kotYbAP.png" alt="image-20220115094338148"></p></blockquote><p>13、通过创建时间等判断确实是2018年开始搞的,所以确定是这个组织的木马apt_darkhydrus,威胁情报定义是在2018到2021年可以确定是这个。</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/dXEZLa1bwmAVxoS.png" alt="image-20220115094430151"></p></blockquote><p>所以结果是判定,我们是被某组织攻击,报上情况即可。</p><h2 id="内部溯源平台,请勿外传"><a href="#内部溯源平台,请勿外传" class="headerlink" title="内部溯源平台,请勿外传"></a>内部溯源平台,请勿外传</h2><p><img src="https://s2.loli.net/2022/01/15/gMQGumJS8FKzyfV.png" alt="image-20220115095952431"></p><h2 id="实战3"><a href="#实战3" class="headerlink" title="实战3"></a>实战3</h2><p>假设蜜罐捕获到了百度ID:<strong>1605026515</strong></p><p>1、贴吧私聊,可以拿到对方的用户名</p><p><a href="https://tieba.baidu.com/im/pcmsg?from=1605026515" target="_blank" rel="noopener">https://tieba.baidu.com/im/pcmsg?from=1605026515</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/15/ovsQIpf6BO4zx7H.png" alt="image-20220115100322423"></p></blockquote><p>2、接着可以复制头像图片地址<a href="http://tb.himg.baidu.com/sys/portrait/item/tb.1.e91be300.Dn6FJFYpKSr4DujeYUGLzQ,可以看到另一个信息id=tb.1.e91be300.Dn6FJFYpKSr4DujeYUGLzQ" target="_blank" rel="noopener">http://tb.himg.baidu.com/sys/portrait/item/tb.1.e91be300.Dn6FJFYpKSr4DujeYUGLzQ,可以看到另一个信息id=tb.1.e91be300.Dn6FJFYpKSr4DujeYUGLzQ</a></p><p><strong>接着和我的主页中的id组合一下</strong><a href="https://tieba.baidu.com/home/main?id=tb.1.e91be300.Dn6FJFYpKSr4DujeYUGLzQ&fr=userbar&red_tag=0326503131,就可以看到他的发帖主页" target="_blank" rel="noopener">https://tieba.baidu.com/home/main?id=tb.1.e91be300.Dn6FJFYpKSr4DujeYUGLzQ&fr=userbar&red_tag=0326503131,就可以看到他的发帖主页</a></p><blockquote><p><img src="https://s2.loli.net/2022/01/15/l7ird6BNjX4hDyA.png" alt="image-20220115100612871"></p></blockquote><p>3、可以通过一些帖子发现他的地理位置和毕业时间还有学校,可以发现几个关键字:2017年 中南大学 录取通知书</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/9CFbZ8ocjKspVWm.png" alt="image-20220115100756820"></p></blockquote><p>4、直接搜一下关键字</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/XqiZd1WPeTBH3wO.png" alt="image-20220115101111448"></p></blockquote><p>5、初步锁定有一个信息安全</p><p>得到的四组数据</p><table><thead><tr><th>湖南省</th><th>黄峰</th><th>男</th><th>汨罗市一中</th><th>695</th><th>理工A类</th><th>信息安全</th></tr></thead><tbody><tr><td>湖南省</td><td>李跃峥</td><td>男</td><td>汨罗市一中</td><td>691</td><td>理工A类</td><td>应用物理学</td></tr><tr><td>湖南省</td><td>向燚鑫</td><td>男</td><td>汨罗市一中</td><td>698</td><td>理工B类</td><td>精神医学</td></tr><tr><td>湖南省</td><td>周添吉</td><td>男</td><td>汨罗市一中</td><td>661</td><td>理工C类</td><td>护理学</td></tr></tbody></table><blockquote><p><img src="https://s2.loli.net/2022/01/15/2JG5rAUkeOcsDMB.png" alt="image-20220115101230881"></p></blockquote><p>6、继续往下看</p><blockquote><p><img src="https://s2.loli.net/2022/01/15/NSlWEUra5nv8y3X.png" alt="image-20220115101647553"></p></blockquote><p>7、查看一下主办方信息关于-极光网络安全实验室,可能存在人员信息</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115102520499.png" alt="image-20220115102520499"></p><p>8、实验室官方,发现有许多成员,是中南大学的实验室好像,然后可以看到2017级的成员,根据我们的判断一样</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115103053031.png" alt="image-20220115103053031"></p></blockquote><p>9、点开链接发现是对方的博客,可以直接在关于页面直接看到</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115103134493.png" alt="image-20220115103134493"></p></blockquote><p>10、关于页面发现联系方式</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">QQ: 2362929771</span><br><span class="line">Phone/Wechat: 15273080682</span><br><span class="line">Email: 2362929771@qq.com</span><br></pre></td></tr></table></figure></div><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115103202637.png" alt="image-20220115103202637"></p></blockquote><p>11、根据加qq的基本信息可以看到,很可能是我们要找的目标</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115103237343.png" alt="image-20220115103237343"></p></blockquote><p>12、对应他的信息,可以查其他人的信息来验证,其他信息可以通过社工库判断了,基本可以判断了</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115111622685.png" alt="image-20220115111622685"></p></blockquote><h2 id="溯源的小知识"><a href="#溯源的小知识" class="headerlink" title="溯源的小知识"></a>溯源的小知识</h2><p>假设手机号<code>159******89</code></p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115111731069.png" alt="image-20220115111731069"></p></blockquote><p>集号吧:<a href="https://www.jihaoba.com/haoduan/152/changsha.htm" target="_blank" rel="noopener">https://www.jihaoba.com/haoduan/152/changsha.htm</a></p><p>152 <code>****</code>,然后可以看到前7位并不多,可以直接爆破,后门四位<code>****</code>手机号一般十一位,后面4位可以找一个他可以登录的位置爆破</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115111927497.png" alt="image-20220115111927497"></p><p>然后通过某个中南大学的登录地方,爆破其他手机号,可能会爆破出很多人</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115112221481.png" alt="image-20220115112221481"></p></blockquote><h2 id="注意"><a href="#注意" class="headerlink" title="注意"></a>注意</h2><p>1、不管做溯源/反制/攻击不允许客户网络</p><p>2、不允许在客户网络里连自己的马</p><h2 id="身份ID溯源(蜜罐大部分不可能是真实攻击队,外围,边界队,蓝队友军)"><a href="#身份ID溯源(蜜罐大部分不可能是真实攻击队,外围,边界队,蓝队友军)" class="headerlink" title="身份ID溯源(蜜罐大部分不可能是真实攻击队,外围,边界队,蓝队友军)"></a>身份ID溯源(蜜罐大部分不可能是真实攻击队,外围,边界队,蓝队友军)</h2><p>百分之99的溯源可能都会失败,所以多学姿势,有时候一些木马的pdb路径也可以找到对应的用户名或者qq号,小思路</p><h1 id="应急响应"><a href="#应急响应" class="headerlink" title="应急响应"></a>应急响应</h1><p>了解下黑客的目的</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115120234118.png" alt="image-20220115120234118"></p><p>应急线索来源:</p><ul><li>1、从流量侧发现线索<ul><li>Webshell攻击<ul><li>漏洞利用成功</li><li>Webshell文件操作</li><li>Web日志审计</li><li>根据时间线查</li></ul></li><li>异常的外联(比如恶意域名/恶意IP)</li><li>横向渗透工具(比如CS、SSF,nps,chrome密码提取等)</li><li>怀疑主机失陷(点击)</li></ul></li><li>2、外界情报(某系统),(听说某系统有0day)全盘的检测</li><li>3、造成后果后发现,被勒索了,业务挂了</li><li>4、安全监控设备(终端杀软,EDR)</li></ul><h2 id="windows主机取证"><a href="#windows主机取证" class="headerlink" title="windows主机取证"></a>windows主机取证</h2><h3 id="工具应急响应方法"><a href="#工具应急响应方法" class="headerlink" title="工具应急响应方法"></a>工具应急响应方法</h3><p>最简单的直接通过工具快速简洁</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">【睿眼Windows终端溯源取证系统】(真实平台,可实际操作)</span><br><span class="line">公网地址:https://ir.zorelworld.com:443/</span><br><span class="line">401信息: 401_Z1xW5y \ Z1w5yoct.CM</span><br><span class="line">页面账号信息:可在页面自行注册</span><br></pre></td></tr></table></figure></div><p>1、创建项目,下载采集器,尽量不使用常驻的</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154833084.png" alt="image-20220115154833084"></p></blockquote><p>2、采集资产目录</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154852427.png" alt="image-20220115154852427"></p></blockquote><p>3、结果会在data目录中,有一个zip的压缩包,将其上传,可以查看取证报告</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154924693.png" alt="image-20220115154924693"></p></blockquote><p>4、取证报告</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115154949495.png" alt="image-20220115154949495"></p></blockquote><p>5、专家模式根据时间轴,判断黑客那个时间段做了啥</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115155938716.png" alt="image-20220115155938716"></p></blockquote><h2 id="小总结"><a href="#小总结" class="headerlink" title="小总结"></a>小总结</h2><p>三要素</p><p>①时间②线索③黑客思路④权限(攻击者拿到的哪些信息)</p><p>客户端/服务端(WebShell)</p><p>1、发现一个Webshell</p><p>2、找到Webshell</p><p>3、Webshell的时间,找Web日志里连这个Webshell的IP,根据这个IP遍历所有日志</p><p>这个工具对于windows来遍历日志,一个<strong>文件搜索工具</strong></p><p><strong>FileLocator Pro</strong> 应急响应比较好多的</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115161316553.png" alt="image-20220115161316553"></p></blockquote><p>类似linux的grep</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115161511590.png" alt="image-20220115161511590"></p></blockquote><p>图形化比较好多的了,Nginx日志啥的</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115161714488.png" alt="image-20220115161714488"></p></blockquote><p>4、通过everything去查找这个时间点前后1-3天的所有创建文件</p><p>源IP什么时间的第一次连接是什么时间,Webshell创建是什么时间,服务器第一次被这些IP访问是什么时间(根据情况判断对方是怎么攻击的)</p><p>5、服务器网络策略,这个服务器能不能对外联网,CS,或者NPS隧道(完全禁止—>,DNS,ICMP协议)</p><p>6、限于找Web漏洞以及隐藏的Webshell,以及不死webShell(Mysql触发后门,NTFS隐藏了解)</p><p>7、端口复用,Apache插件,端口重复使用</p><p>8、Web服务器失陷了(Linux),翻SSH公钥,翻配置文件(数据库PHPXML),History(用户名,有多少台机子),进程(运营)</p><p>应急响应步骤</p><p>1、Tomcat漏洞利用成功,流量是实时;</p><p>2、断网</p><p>3、确定线索,漏洞利用成功(修复漏洞后尽快上线,确定有没有横向的动作),WebShell上来了(关心有没有横向渗透工具 NPS,SSF),还是内网渗透,后渗透(确定影响范围)等,第一次接触的时间,到目前为止多久</p><h2 id="异常的外链"><a href="#异常的外链" class="headerlink" title="异常的外链"></a>异常的外链</h2><p>1、通过IOC、恶意域名、恶意ip、恶意HASH、DGA域名</p><p>2、检测模型(NPS上线了,CS上线了,SSF挂出去)</p><p>这里推荐一个工具<strong>LiveTcpUdpWatch</strong>实时去查看进程的情况</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115165217221.png" alt="image-20220115165217221"></p></blockquote><p>Sysmon日志实时记录,因为是微软的,所以很方便</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170018007.png" alt="image-20220115170018007"></p></blockquote><p>Process Monitor</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170418866.png" alt="image-20220115170418866"></p></blockquote><p>可以看到很详细的信息,但是得一直开着,可能没有Sysmon方便</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170522553.png" alt="image-20220115170522553"></p></blockquote><p>AppNetworkCount,也是对应的网络链接的工具</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115170724535.png" alt="image-20220115170724535"></p></blockquote><p>DNS缓存记录</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115171251020.png" alt="image-20220115171251020"></p></blockquote><p>pcap.honeynet.org.my/v1/</p><p>如果你遇到流量包不知道怎么分析</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115171335395.png" alt="image-20220115171335395"></p></blockquote><h2 id="文件分析的思路"><a href="#文件分析的思路" class="headerlink" title="文件分析的思路"></a>文件分析的思路</h2><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115171444599.png" alt="image-20220115171444599"></p></blockquote><p>MD5的威胁</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220115173051567.png" alt="image-20220115173051567"></p></blockquote><h2 id="内存马怎么分析呢"><a href="#内存马怎么分析呢" class="headerlink" title="内存马怎么分析呢"></a>内存马怎么分析呢</h2><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116093725592.png" alt="image-20220116093725592"></p></blockquote><p>怎么确认内存马呢</p><p>第一种叫注入内存马(进程PE类型)</p><p>第二种叫做Webshell的内存马</p><ul><li>1、Webshell进程从外面可以访问,在主机上找不到这个文件,这时就得怀疑了</li><li>2、Webshell的内存马,就见过JSP(PHP,ASP没见过)</li></ul><p>关于JSP的社工方式</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116094739705.png" alt="image-20220116094739705"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116094804962.png" alt="image-20220116094804962"></p><p>3、利用关键词或者检测规则对内存文件进行检测</p><p>可以用grep临时检测</p><p>strings * |grep -i “Cknife”(哥斯拉生成的C刀内存马)</p><p>ReGeorg、Behinder、AES_BASE64、AES_RAW,检测内存里运行的哥斯拉,可以直接用<code>RealFile:\|path.separator::</code></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116094917947.png" alt="image-20220116094917947"></p><h2 id="内存马实战"><a href="#内存马实战" class="headerlink" title="内存马实战"></a>内存马实战</h2><p>首先Ps aux|grep tomcat</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116104137886.png" alt="image-20220116104137886"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116104346533.png" alt="image-20220116104346533"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116104417258.png" alt="image-20220116104417258"></p><p>就可以找到一些内存马的特征</p><p>ntfs流不死马,数据库触发后门不死马(通过触发器当检索到某字段存在某个字符就会写马)</p><h2 id="实战1-1"><a href="#实战1-1" class="headerlink" title="实战1"></a>实战1</h2><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116110748436.png" alt="image-20220116110748436"></p><p>1、有两台机器被控制了,属于个人主机。就两种情况①、钓鱼或者社工(养一个美女啥的发你东西,你点了之后上线),②有明显ms17-010补丁未打被smb内网打进来,可能存在,③更新包被替换了更新劫持,通过一些高端手法进来的劫持</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116121408312.png" alt="image-20220116121408312"></p><p>发现,f3322.net pubyun 老牌的DDNS,动态域名解析</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122024973.png" alt="image-20220116122024973"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122104556.png" alt="image-20220116122104556"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122141998.png" alt="image-20220116122141998"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122318353.png" alt="image-20220116122318353"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122355238.png" alt="image-20220116122355238"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122433208.png" alt="image-20220116122433208"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122540803.png" alt="image-20220116122540803"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122555192.png" alt="image-20220116122555192"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122603995.png" alt="image-20220116122603995"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122622978.png" alt="image-20220116122622978"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122650586.png" alt="image-20220116122650586"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122701436.png" alt="image-20220116122701436"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122719555.png" alt="image-20220116122719555"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122748547.png" alt="image-20220116122748547"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122848036.png" alt="image-20220116122848036"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116122930861.png" alt="image-20220116122930861"></p><h2 id="实战2-1"><a href="#实战2-1" class="headerlink" title="实战2"></a>实战2</h2><p>误报的应急响应</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116123047085.png" alt="image-20220116123047085"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116123103460.png" alt="image-20220116123103460"></p><p>是内网到外网的代理服务器</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116151952982.png" alt="image-20220116151952982"></p><p>应急响应三步骤</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116164809985.png" alt="image-20220116164809985"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116164857760.png" alt="image-20220116164857760"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116164912122.png" alt="image-20220116164912122"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165030316.png" alt="image-20220116165030316"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165051365.png" alt="image-20220116165051365"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165120994.png" alt="image-20220116165120994"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165134885.png" alt="image-20220116165134885"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165218257.png" alt="image-20220116165218257"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116165247647.png" alt="image-20220116165247647"></p><p><strong>最终判断是误报</strong></p><p>我们需要做的是检测、威胁发现、威胁溯源、应急响应、写报告</p><h1 id="恶意流量分析"><a href="#恶意流量分析" class="headerlink" title="恶意流量分析"></a>恶意流量分析</h1><h2 id="1、网络通信基础"><a href="#1、网络通信基础" class="headerlink" title="1、网络通信基础"></a>1、网络通信基础</h2><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116171124112.png" alt="image-20220116171124112"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220116171235563.png" alt="image-20220116171235563"></p><h2 id="2、常见协议数据包结构"><a href="#2、常见协议数据包结构" class="headerlink" title="2、常见协议数据包结构"></a>2、常见协议数据包结构</h2><p>1、http</p><ul><li>Host字段:域名</li><li>X-Forwarded-For XFF(有些透明代理比较坑的会将真实ip放入xff中,或者负载均衡的情况要会判断最后一个为攻击者ip)</li><li>User-Agent:判断黑客工具<ul><li>nmap</li><li>awvs</li><li>antsword</li><li>python requests</li><li>baiduspyder</li><li>1.jsp shell.jsp</li></ul></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20220116172435680.png" alt="image-20220116172435680"></li><li>状态码不能判断攻击成功与失败</li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20220116174845757.png" alt="image-20220116174845757"></li></ul><p>2、smb</p><p> 主要看一些关键字就行了</p><p>3、vnc</p><h2 id="3、客户侧网络架构"><a href="#3、客户侧网络架构" class="headerlink" title="3、客户侧网络架构"></a>3、客户侧网络架构</h2><h2 id="4、漏洞利用或攻击手法流量分析"><a href="#4、漏洞利用或攻击手法流量分析" class="headerlink" title="4、漏洞利用或攻击手法流量分析"></a>4、漏洞利用或攻击手法流量分析</h2><p>一、蚁剑流量特征User-Agent: andSword/v2.1,包体有,1、url编码,2、一些关键函数ini_set,返回包会有路径特征</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117052557660.png" alt="image-20220117052557660"></p></blockquote><p>二、这个是蚁剑chr之后的特征</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117055835723.png" alt="image-20220117055835723"></p></blockquote><p>三、Cknife的流量特征,Cknife的一个post参数,action的A、B、C对应不同功能,B对应的目录信息,C对应读取文件信息</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117105359864.png" alt="image-20220117105359864"></p></blockquote><p>四、Fastjson利用失败特征</p><p>根据rmi或者ldap的利用方式特征发现,@type就能判断</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117105908163.png" alt="image-20220117105908163"></p></blockquote><p>五、PHPstudy后门利用的流量</p><p>特征就是Accept-Charset:放入了base64编码请求命令,就是平phpstudy的漏洞</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117110155774.png" alt="image-20220117110155774"></p></blockquote><p>六、Shiro利用流量</p><p>特征Cookie:rememberMe=deleteMe,这个特征无回显,无法判断是否执行成功。有种是有回显的,可以查查,一般情况无回显</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117110857064.png" alt="image-20220117110857064"></p></blockquote><p>七、Structs2-045</p><p>特征:Content-type的处有命令执行</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117111524730.png" alt="image-20220117111524730"></p></blockquote><p>八、ThinkPHP5.0.23-rce</p><p>有个post,和一个get型的rce利用方式</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117111651741.png" alt="image-20220117111651741"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117111910187.png" alt="image-20220117111910187"></p></blockquote><p>九、Tomcat-put写入</p><p>返回201就是上传成功</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117112040911.png" alt="image-20220117112040911"></p></blockquote><p>十、Weblogic rce</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117112810465.png" alt="image-20220117112810465"></p></blockquote><h2 id="5、流量误报"><a href="#5、流量误报" class="headerlink" title="5、流量误报"></a>5、流量误报</h2><p>一、哥斯拉流量误报</p><p>都是post请求,没GET请求</p><blockquote><p><img src="https://gylq.gitee.io/linkimage/img1/image-20220117135729503.png" alt="image-20220117135729503"></p></blockquote><h1 id="可以使用的在线工具"><a href="#可以使用的在线工具" class="headerlink" title="可以使用的在线工具"></a>可以使用的在线工具</h1><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">【睿眼沙箱系统】(真实平台,可实际操作)</span><br><span class="line">公网地址: https://sandbox.zorelworld.com:1000/</span><br><span class="line">401信息: 401_tNdQyxn2l \ q3emzSjnd</span><br><span class="line">页面账号信息: hw \ kect3FAGH1yaik_doot</span><br></pre></td></tr></table></figure></div><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"> 【睿眼Windows终端溯源取证系统】(真实平台,可实际操作)</span><br><span class="line">公网地址:https://ir.zorelworld.com:443/</span><br><span class="line">401信息: 401_Z1xW5y \ Z1w5yoct.CM</span><br><span class="line">页面账号信息:可在页面自行注册</span><br></pre></td></tr></table></figure></div><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">【睿眼Linux终端溯源取证系统】(真实平台,可实际操作)</span><br><span class="line">公网地址:https://irl.zorelworld.com:1300/</span><br><span class="line">401信息: 401_j7jk4ZtOu4DV \ 401_ghJIHEWUzc6+</span><br><span class="line">页面账号信息:可在页面自行注册</span><br></pre></td></tr></table></figure></div><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">【睿眼Web攻击溯源系统】(演示环境)</span><br><span class="line">公网地址:https://124.127.209.46:9999 (WEB版)</span><br><span class="line">401账户密码:401_SuFzjJ \ 401_4gAj3N64</span><br><span class="line">审计账户密码: audit.admin \ audit_TF6VeDptM2</span><br></pre></td></tr></table></figure></div><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">【睿眼网络攻击溯源系统】(演示环境)</span><br><span class="line">公网地址:https://124.127.209.46:10000/ (网络版)</span><br><span class="line">401账户密码: 401_CfxKS8 \ 401_0hwUh3OH</span><br><span class="line">审计账户密码: audit.admin \ audit_NParT95cEF</span><br></pre></td></tr></table></figure></div><p>hw期间不应该存在agent被卸载,被卸载一定要注意。</p><p><strong>在小铃铛的话,我建议一直盯着小铃铛自动刷新比较好。一定要把所有危险程度的,高中低位的各种告警</strong></p><p>这个是在hw的时候,一定要关注的部分</p><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><p>我总结一下大部分的会做的事,<strong>看小铃铛</strong>,听声音,三大功能模块。<strong><code>资产清点</code>能够快速定位到有问题的资产和更新</strong>,<code>风险发现</code><strong>是需要给客户做整改的,需要给客户一些最新的风险数据信息</strong>,<code>入侵检测</code><strong>就是整个hw期间需要监控的,尤其是web命令执行的告警,盯住消息系统,什么时候的信息都需要关注agent的离线和卸载。</strong></p><p>建议:有告警就上报,不要擅自决定。所有决定跟客户商量</p><p><strong>hw</strong>:分为两个,就是<strong>溯源</strong>,还有提前监控<strong>抑制</strong>,溯源到最后给黑客画像也是对的。</p><p>个人博客:<a href="https://gylq.gitee.io/">https://gylq.gitee.io/</a></p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="溯源" scheme="https://gylq.gitee.io/tags/%E6%BA%AF%E6%BA%90/"/>
</entry>
<entry>
<title>【知识积累】青藤云万象监测系统使用方法全面总结</title>
<link href="https://gylq.gitee.io/posts/184.html"/>
<id>https://gylq.gitee.io/posts/184.html</id>
<published>2021-12-31T06:41:06.953Z</published>
<updated>2022-05-20T03:44:39.051Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>盯着监控,明确清楚,我们的产品分linux和windows两大功能树,不是一个综合的高级界面,一些通用功能<strong>,小铃铛</strong>是通知告警的入口,<strong>红色数字</strong>实时刷新表示未读的告警通知,</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231144716147.png" alt="image-20211231144716147"></p><h1 id="资产清点模块"><a href="#资产清点模块" class="headerlink" title="资产清点模块"></a>资产清点模块</h1><p>各项功能的基础,所有的功能模块 都是基于每台机器的资产清点来搞的,资产清点是主要的,其他模块都是基于资产清点来检测的,<strong>病毒查杀</strong>使用的比较少</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231145132954.png" alt="image-20211231145132954"></p><p>linux和windows差不多的视图界面</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231145414896.png" alt="image-20211231145414896"></p><h2 id="主机资产"><a href="#主机资产" class="headerlink" title="主机资产"></a>主机资产</h2><p>基本主机的资产数据,操作系统,业务分组等,管理信息</p><h2 id="系统账号"><a href="#系统账号" class="headerlink" title="系统账号"></a>系统账号</h2><p>操作系统本身的账号,包括账号的各项属性和密码属性</p><h2 id="软件应用"><a href="#软件应用" class="headerlink" title="软件应用"></a>软件应用</h2><p>根据进程采集的信息,每台机器到底运行了哪些软件应用</p><h2 id="数据库"><a href="#数据库" class="headerlink" title="数据库"></a>数据库</h2><p>按照每一个数据库清点出来的种类分类</p><h2 id="Web应用"><a href="#Web应用" class="headerlink" title="Web应用"></a>Web应用</h2><p>全部web应用 类似phpcms,第三方的</p><h2 id="安装包和类库"><a href="#安装包和类库" class="headerlink" title="安装包和类库"></a>安装包和类库</h2><p>系统安装包,linux的,rpm,java,各种,jar,Spring Boot项目包</p><h2 id="进程端口"><a href="#进程端口" class="headerlink" title="进程端口"></a>进程端口</h2><p>每台机子运行的端口,对应的服务</p><h2 id="硬件配置"><a href="#硬件配置" class="headerlink" title="硬件配置"></a>硬件配置</h2><p>cpu内存三大件</p><h2 id="Web服务"><a href="#Web服务" class="headerlink" title="Web服务"></a>Web服务</h2><p>有哪些中间件什么的在运行</p><h2 id="Web站点"><a href="#Web站点" class="headerlink" title="Web站点"></a>Web站点</h2><p>根据中间件判断开放的web站点,目录,端口等</p><h2 id="Web应用框架"><a href="#Web应用框架" class="headerlink" title="Web应用框架"></a>Web应用框架</h2><p>web开发的框架,fastjson的漏洞啥啊,各种 spring MVC等,spring boot啥的框架都有漏洞</p><h2 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h2><p>系统启动项</p><p>计划任务项</p><p>系统已经有的内核模块</p><p>举个例子:<strong>fastjson爆0day,尽快去找找所有fastjson的机器版本是不是在影响范围,如果不能捕捉到新的补丁,我们应该及时在我们机器中 对存在漏洞的机器进行沟通如何修复和上报同步,在做值守的时候,在告警的时候,也可以去查找每一台的机器,去单台机器的所有资产清点界面,能够很详细的展示出每一台机器的资产情况,包括风险情况,入侵事件等或日志</strong></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231151524811.png" alt="image-20211231151524811"></p><p><strong>系统账户的一些详细的字段</strong></p><p><strong>例如:很多客户在做风险整改,如果客户想马上看到风险整改的效果的话,必须做一次<code>资产清点</code>,也可以做单台的,也可以做全量的,点<code>更新数据</code>所有的agent都会更新数据,在单台界面点更新数据的话,就是单台更新数据,一定要更新数据,如果整改之后,做好了更新之后,才能进行风险探测和扫描,每天凌晨2点都会完成资产的清点,如果客户不是当天要的话,就可以第二天上去就可以看到新数据</strong></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231152256270.png" alt="image-20211231152256270"></p><p>客户环境有域控的话,建议还是域账户清点还是需要看看。windows和linux多大区别,只是linux有完整的,一台机器有资产数据,也有风险数据,但是windows没有所有的。只有资产清点</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231152440745.png" alt="image-20211231152440745"></p><p>如果发现绿色的机子突然少了,或突然断了就需要及时通知,资产清点部分</p><h1 id="风险发现模块"><a href="#风险发现模块" class="headerlink" title="风险发现模块"></a>风险发现模块</h1><p>windows只有安全补丁和弱密码检测,linux有许多漏洞检测,风险检测三类,windows安全补丁就跟官方一样的自带的系统补丁更新,弱密码检测就是rdp的检测3389,linux的补丁会各个操作系统的厂商公告,各种应用组件的安全公告</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231152608994.png" alt="image-20211231152608994"></p><h2 id="安全补丁"><a href="#安全补丁" class="headerlink" title="安全补丁"></a>安全补丁</h2><p>通过查看,会成列,哪些补丁没有修复</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231152808327.png" alt="image-20211231152808327"></p><h2 id="漏洞检测"><a href="#漏洞检测" class="headerlink" title="漏洞检测"></a>漏洞检测</h2><p>,根据0day的漏洞告警,会有漏洞检测项</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231152835379.png" alt="image-20211231152835379"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231152954849.png" alt="image-20211231152954849"></p><p>更多提示有哪些高危漏洞,我们建议客户修复的。风险提示</p><p>举例:如果客户现场在做整改的话,应该先修应用部分的漏洞,你们检测这么多,应该先修应用部分的漏洞,在漏洞检测在应用软件的部分等待他们直接邀请进来。</p><h2 id="弱密码"><a href="#弱密码" class="headerlink" title="弱密码"></a>弱密码</h2><p>得跟客户交流的,扫描出来的结果情况的话,在linux支持应用弱密码的清单</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231153229427.png" alt="image-20211231153229427"></p><p>举例:操作系统弱密码建议一定要修复,数据库的弱密码要跟业务部门商量修复,管理各种的弱密码控制台也需要整改一下,或者关掉</p><p>安全风险的话分三类</p><h2 id="应用风险"><a href="#应用风险" class="headerlink" title="应用风险"></a>应用风险</h2><p><strong>配置上的权限,存在私钥什么的,安装的业务应用,就是配置上的风险,tomcat运行软件,用root权限运行会有风险,web源文件在报错页面,服务器信息泄露啥的都会检查</strong></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231153431906.png" alt="image-20211231153431906"></p><h2 id="系统风险"><a href="#系统风险" class="headerlink" title="系统风险"></a>系统风险</h2><p>时间校对啊</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231153557895.png" alt="image-20211231153557895"></p><h2 id="账号风险"><a href="#账号风险" class="headerlink" title="账号风险"></a>账号风险</h2><p>系统账号,过期时间,密码的复杂度啊,等等,三个风险项,100多个配置项,攻击漏洞上比较容易利用的,也建议客户尽量修复,漏洞检测中应用漏洞是最关键的</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231153615132.png" alt="image-20211231153615132"></p><p><strong>如果他不着急当天要资产整改的话 先做资产清点。linux中可以全部扫描,或者单机扫描,或业务分组,按照ip地址扫描等等,必须有agent,不建议值守期间再去做扫描按照定时任务来扫,hw期间可能都不能扫描,只读权限</strong></p><h1 id="入侵检测模块"><a href="#入侵检测模块" class="headerlink" title="入侵检测模块"></a>入侵检测模块</h1><p>linux和windows差别不大,但是linux和windows差别不大,单独linux特有的功能只有两项,本地提权,和可疑操作,windows没有</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231154116777.png" alt="image-20211231154116777"></p><h2 id="登陆行为检测"><a href="#登陆行为检测" class="headerlink" title="登陆行为检测"></a>登陆行为检测</h2><p>包含了两部分<strong>暴力破解和异常登陆</strong>互补的功能,只涉及到操作系统的账号相关,不会跟web应用账号密码或者数据库密码破解相关,这里只跟操作系统的账号本身</p><h3 id="暴力破解"><a href="#暴力破解" class="headerlink" title="暴力破解"></a>暴力破解</h3><p>会显示爆破的攻击事件,攻击来源,攻击ip,攻击次数等,暴力破解有自动封停的设置,<strong>建议自动封停检测登陆</strong>会相对稳妥。可以手动去<strong>封停</strong>,所以不建议去封停,先上报再由<strong>研判组</strong>是不是攻击,再决定是否关停</p><h3 id="异常登陆"><a href="#异常登陆" class="headerlink" title="异常登陆"></a>异常登陆</h3><p>都是一些登陆成功的记录,但是有<strong>可能登陆来源的ip或者登陆的账号</strong>,或者<strong>登陆的时间是不合法的</strong>,他会将一些晚上12点的一些登陆进行显示异常,应该在堡垒机ip登陆,但是突然其他终端ip地址登陆,区域或者时间,处理状态等</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231154716156.png" alt="image-20211231154716156"></p><p><strong>异常的规则,一般都是配置好的,也有可能功能配置的不太合理,得去跟原厂工程师进行策略调整</strong></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231154730279.png" alt="image-20211231154730279"></p><h2 id="第二功能模块,进程的行为"><a href="#第二功能模块,进程的行为" class="headerlink" title="第二功能模块,进程的行为"></a>第二功能模块,进程的行为</h2><p><strong>反弹Shell和本地提权</strong>是一块的叫做进程的行为,如果发现告警,一定要第一时间通知,特别是<strong>反弹shell,</strong>是攻击队已经进来的话。 </p><h3 id="反弹Shell"><a href="#反弹Shell" class="headerlink" title="反弹Shell"></a>反弹Shell</h3><p>主<strong>要处理主机ip和目标主机端口</strong>,如果是自己反弹自己,可能是一些误报,主机IP是Agent的ip,目标ip是外部的话,很大概率是真实的告警,那么shell已经被反弹出去了</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231154940882.png" alt="image-20211231154940882"></p><h3 id="本地提权"><a href="#本地提权" class="headerlink" title="本地提权"></a>本地提权</h3><p>提权一般好一些,很少使用</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231155133571.png" alt="image-20211231155133571"></p><h2 id="后门检测"><a href="#后门检测" class="headerlink" title="后门检测"></a>后门检测</h2><p>会检测而一些<strong>msf</strong>一些反弹木马,一些植入类似RootKit的这种,mimikatz等抓取内存的密码这些工具,或者<strong>frps</strong>做隧道的</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231155341507.png" alt="image-20211231155341507"></p><h2 id="动态蜜罐"><a href="#动态蜜罐" class="headerlink" title="动态蜜罐"></a>动态蜜罐</h2><p>我们的动态蜜罐,这块蜜罐就是<strong>伪装端口</strong>,是根据客户实际会用的那些资产配的蜜罐。也梳理了常见的端口。是为了捕获到攻击者访问的某一个端口</p><p>比如横向的,7001的反序列化,攻击进来,我们可以溯源信息,提供的用户很方便,<strong>可疑ip访问的我们机器的端口</strong></p><p>可以方便帮客户找到源头,都是有可能是被攻破机子的跳板。这些云IP也指的送去有研判组</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231163134415.png" alt="image-20211231163134415"></p><h2 id="Web后门"><a href="#Web后门" class="headerlink" title="Web后门"></a>Web后门</h2><p><strong>最最最核心的两个功能之一</strong></p><p>所有Agent都会在资产清点,都会自动识别出来资产的目录,<strong>但是有部分机器存在因为配置文件一些特殊情况,无法特殊识别的</strong>,一定要注意。如果发现有一些机器的web站点是无法梳理出来的,一定要在自定义目录里面加进去。作为他的监控目录,才能确保所有传上来可能的<strong>webshell</strong>,我们都能捕捉到。我们的web后门包含两个引擎,第一种<strong>引擎</strong>是常规的,主要是基于正则匹配的,就是比较常见的危险函数,没有什么变形的,都是在正则的规则里面都会有。第二种引擎就是<strong>雷火引擎</strong>,是根据语法分析,按照文件的执行<strong>逻辑去推算</strong>这个结果,演算,做一些等价的还原,会看看是否存在一些混淆或者绕过定制webshell等,webshell后门的功能也是客户现场最多报警的。一些可能现场开发组的一些web代码的检测,也会告警,需要去研判组分析的</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231155502221.png" alt="image-20211231155502221"></p><p>一些检测数据,都去详情 下载文件,上报研判组,<strong>雷火引擎会带这个标志</strong>,webshell的后门会实时检测,所有会有很多客户,在原来一些存在的后门文件都给发现出来,<strong>把以前一些历史遗留的一些后门给清理</strong>,同样也是需要研判分析,只要看到告警,都要去分析。</p><p>建议自主告警研判,白名单规则,不是自己能加就加的,<strong>我们主要是告诉和上报,不要直接自己处置。</strong>只是单纯判断这个<strong>webshell</strong>是否是一些真实的黑客攻击就好了</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231160023811.png" alt="image-20211231160023811"></p><p><strong>已知恶意样本</strong>,一定是webshell,一定是命中的要上报</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231160424961.png" alt="image-20211231160424961"></p><p><strong>中危和低位一般都是自己去看看。有能力的话自己看就好。Agent比较多的话,有类似的样本的话,建议如果是误报,看上去同样的文件,直接自己记录成误报就好。根据已经判断过的结果是可以去推倒</strong></p><p><strong>出现告警第一时间反馈,如果能力不足就丢给二线去,或者原厂去支持是否误报。第一时间将报警抛出来,客户端要进行相应的跟进和处理。</strong>客户有时也能看出来是否是误报</p><p>对一些已知的误报,webshell除非已知样本,数据库后门的话。如果客户一直没删的话,又出现一条新的和以往一样,你要跟客户提一下,<strong>任何报警都应该都跟客户商量</strong>,让客户知晓,<strong>一定不能擅自做处置决定</strong></p><h2 id="Web命令执行"><a href="#Web命令执行" class="headerlink" title="Web命令执行"></a>Web命令执行</h2><p>规则大家都能看到有很多,系统的规则都可以选择开启和关闭,不建议任何的关闭</p><p><strong>千万不要说这条误</strong>报多 我就关了,<strong>一旦把真实告警弄掉了</strong>,就完了</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231161756039.png" alt="image-20211231161756039"></p><p>由于web命令执行本身是需要<strong>一定量加白的域名工作的</strong>,一定要让客户把Agent装完,然后我们开始攻击之前 一定要把降肝完,一定需要<strong>加白之后</strong>才能用否则会有大量的误报,尤其是正常的业务环境。不加白是无法找到漏洞或者新出RCE漏洞的。<strong>告警还是要记录,每天还有很多,同一段的ip大量高度类似,这大部分就是误报</strong></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231162451197.png" alt="image-20211231162451197"></p><p>否则一天可能就上万的告警,一定需要加白,否则没法看。能检测的规则,都尽量看看。</p><p>大部分都是Web的RCE着手的,包括今年的许多RCE的漏洞出来,也有很多的客户都是通过RCE攻击进来的,一定要多注意,Web安全命令执行</p><p><strong>监控管理</strong>:一定要多打开,有没有啥突然关的agent,一定要都打开,来保证你收到的数据是对的。</p><p>一般情况,这Web命令执行每一条告警都代表一台机器被拿下,所以这块一定要注意,也是需要去加白域名的。</p><h2 id="可疑操作"><a href="#可疑操作" class="headerlink" title="可疑操作"></a>可疑操作</h2><p>是通过bash的一个审计插件,去查询linux在bash上的操作命令,<strong>而且会把他和内置的规则进行匹配。命中规则就会有告警</strong>,审计到执行的命令,匹配登陆来源。可能是登录到机子上执行的命令,要及时上报</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231162837573.png" alt="image-20211231162837573"></p><h2 id="入侵处理记录"><a href="#入侵处理记录" class="headerlink" title="入侵处理记录"></a>入侵处理记录</h2><p>总结:<strong>最重要的web后门和web命令执行这两个是最重要的告警,web命令执行一定要加白,保证我们漏洞告警准确!</strong></p><h1 id="合规基线"><a href="#合规基线" class="headerlink" title="合规基线"></a>合规基线</h1><p>不太需要</p><h1 id="安全日志"><a href="#安全日志" class="headerlink" title="安全日志"></a>安全日志</h1><p><strong>有个全量的日志告警</strong></p><h1 id="任务系统"><a href="#任务系统" class="headerlink" title="任务系统"></a>任务系统</h1><h2 id="快速任务"><a href="#快速任务" class="headerlink" title="快速任务"></a>快速任务</h2><p>包含了许多的<strong>溯源</strong>的一些小工具,查找一些文件的特性等等。<strong>建议有研判能力的使用</strong></p><h1 id="通用功能"><a href="#通用功能" class="headerlink" title="通用功能"></a>通用功能</h1><p>需要关注的就是事件采集,系统设置啊</p><h2 id="系统设置"><a href="#系统设置" class="headerlink" title="系统设置"></a>系统设置</h2><p>Agent的安装,生成安装命令等,客户已经搞好了一般不用管</p><h2 id="事件采集"><a href="#事件采集" class="headerlink" title="事件采集"></a>事件采集</h2><p><strong><img src="https://gylq.gitee.io/linkimage/img1/image-20211231163819830.png" alt="image-20211231163819830"></strong></p><p>agent不准的话,可以去跟原厂说就好了</p><h1 id="小铃铛"><a href="#小铃铛" class="headerlink" title="小铃铛"></a>小铃铛</h1><p><strong>一开始说的告警小铃铛,这个小铃铛是带铃声的,如果是用笔记本的话,建议大家把音量打开</strong></p><h2 id="服务工具"><a href="#服务工具" class="headerlink" title="服务工具"></a>服务工具</h2><p><strong>会将agent的一些离线和卸载进行调整</strong></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231165754819.png" alt="image-20211231165754819"></p><h2 id="消息配置"><a href="#消息配置" class="headerlink" title="消息配置"></a>消息配置</h2><p>有一些有危险程度的,建议把<strong>高中低危都要告警</strong>,不要放过任何告警,有的建议都打开</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231164049016.png" alt="image-20211231164049016"></p><p>查看更多会查看到每个消息</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211231164200970.png" alt="image-20211231164200970"></p><p>每点击任何一个,都可以跳到对应的功能区域。除了关注入侵检测,和资产等,<strong>还要关注Agent被卸载,或者系统监控Agent离线超过一定时间等</strong></p><p>hw期间不应该存在agent被卸载,被卸载一定要注意。</p><p><strong>在小铃铛的话,我建议一直盯着小铃铛自动刷新比较好。一定要把所有危险程度的,高中低位的各种告警</strong></p><p>这个是在hw的时候,一定要关注的部分</p><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><p>我总结一下大部分的会做的事,<strong>看小铃铛</strong>,听声音,三大功能模块。<strong><code>资产清点</code>能够快速定位到有问题的资产和更新</strong>,<code>风险发现</code><strong>是需要给客户做整改的,需要给客户一些最新的风险数据信息</strong>,<code>入侵检测</code><strong>就是整个hw期间需要监控的,尤其是web命令执行的告警,盯住消息系统,什么时候的信息都需要关注agent的离线和卸载。</strong></p><p>建议:有告警就上报,不要擅自决定。所有决定跟客户商量</p><p><strong>hw</strong>:分为两个,就是<strong>溯源</strong>,还有提前监控<strong>抑制</strong>,溯源到最后给黑客画像也是对的。</p><p>个人博客:<a href="https://gylq.gitee.io/">https://gylq.gitee.io/</a></p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="监控设备" scheme="https://gylq.gitee.io/tags/%E7%9B%91%E6%8E%A7%E8%AE%BE%E5%A4%87/"/>
</entry>
<entry>
<title>【知识积累】设计模式期末复习</title>
<link href="https://gylq.gitee.io/posts/183.html"/>
<id>https://gylq.gitee.io/posts/183.html</id>
<published>2021-12-26T09:59:15.801Z</published>
<updated>2022-05-20T03:44:39.053Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="七大设计原则"><a href="#七大设计原则" class="headerlink" title="七大设计原则"></a>七大设计原则</h2><p>软件的<strong>可维护性</strong>和<strong>可复用性</strong>(?)</p><p>软件可维护性:即维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进该软件的难易程度。</p><p>可复用性:复用又叫重用,是重复使用的意思。指软件能够被重复使用的难易程度</p><ul><li><p>面向对象设计原则为<strong>支持可维护性复用</strong>而诞生</p></li><li><p><strong>指导性原则</strong>,非强制性原则</p></li><li><p>每一个设计模式都符合一个或多个面向对象设计原则,面向对象设计原则是<strong>用于评价一个设计模式的使用效果的重要指标之一</strong></p></li><li><p>面向对象设计原则概述</p><ul><li><strong>单一职责原则</strong>:一个对象应只包含单一的职责,并且该职责被完整地封装在一个类中<ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226211132645.png" alt="image-20211226211132645"></li></ul></li><li><strong>开闭原则</strong>:软件实体应当对扩展开放,对修改关闭<ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226210104361.png" alt="image-20211226210104361"></li></ul></li><li>(LSP)<strong>里氏代换原则</strong>:所有引用基类的地方必须能透明地使用其子类的对象<ul><li>子类必须能够替换掉他们的父类型<ul><li>只要是基类出现的地方,一定能出现子类</li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211227085458973.png" alt="image-20211227085458973"></li></ul></li></ul></li><li><strong>依赖倒转原则</strong>:高层模块不应该依赖底层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象<ul><li>其核心思想是:<strong>要面向接口编程,不要面向实现编程</strong><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211227090210588.png" alt="image-20211227090210588"></li></ul></li></ul></li><li><strong>接口隔离原则</strong>:客户端不应该依赖那些它不需要的接口<ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211227090131224.png" alt="image-20211227090131224"></li></ul></li><li><strong>合成复用原则</strong>:优先使用对象组合,而不是继承来达到复用的目的<ul><li>它要求在软件复用时,<strong>要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。</strong>如果要使用继承关系,则必须遵循</li></ul></li><li><strong>迪米特法则</strong>:每一个软件单位对其他的单位都只有最少的知识,而且局限于哪些本单位密切相关的软件单位<ul><li>LoD又叫做最少知识原则(LKP),其定义是:<strong>只与你的直接朋友交谈,不跟“陌生人“说话</strong>。建议多使用Private和Protect,少用public<ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211227090706533.png" alt="image-20211227090706533"></li></ul></li></ul></li></ul></li></ul><p>设计模式的分类</p><p>根据其目的(模式是用来做什么的)可分为创建型、结构型和行为型三种:</p><p>①创建型模式主要用于创建对象。</p><p>②结构型模式主要用于处理类或对象的组合。</p><p>③行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211227184137147.png" alt="image-20211227184137147"></p><h2 id="单例模式"><a href="#单例模式" class="headerlink" title="单例模式"></a>单例模式</h2><ul><li>确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例</li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094418533.png" alt="image-20211228094418533"></p><ul><li><p><strong>简单工厂模式</strong>:又称为静态工厂方法模式, 它属于类创建型模式。在简单工厂模式中,可以<strong>根据参数的不同返回不同类的实例</strong>。</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">模式角色</span><br><span class="line">工厂:Factory</span><br><span class="line"> 由客户端直接调用,在该类中声明一个创建新对象的接口</span><br><span class="line">抽象产品: Product</span><br><span class="line"> 具体产品的共同接口,是所要创建的对象的公共父类</span><br><span class="line">具体产品:ConcreteProduct</span><br><span class="line"> 由工厂所创建的对象</span><br></pre></td></tr></table></figure></div></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094453461.png" alt="image-20211228094453461"></p></li><li><p><strong>工厂方法模式</strong>又称为工厂模式, 它属于类创建型模式。在工厂方法模式中, 工厂父类负责定义创建产品对象的公共接口, 而工厂子类则负责生成具体的产品对象, 这样做的目的是将产品类的实例化操作延迟到工厂子类中完成, 即通过工厂子类来确定究竟应该实例化哪一个具体产品类。</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094542413.png" alt="image-20211228094542413"></p></li><li><p>提供一个创建一系列相关或相互依赖对象的接口, 而无须指定它们具体的类。抽象工厂模式又称为Kit 模式,属于对象创建型模式。</p><p>–抽象工厂模式包含以下4个角色:</p><p>•AbstractFactory(抽象工厂)</p><p>•ConcreteFactory(具体工厂)</p><p>•AbstractProduct(抽象产品)</p><p>•ConcreteProduct(具体产品)</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094619977.png" alt="image-20211228094619977"></p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094634944.png" alt="image-20211228094634944"></p></li><li><p><strong>建造者模式</strong></p><ul><li><p>•将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示。</p><p>–建造者模式包含以下4个角色:</p><p>•Builder(抽象建造者)</p><p>•ConcreteBuilder(具体建造者)</p><p>•Product(产品)</p><p>•Director(指挥者)</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094719500.png" alt="image-20211228094719500"></p></li></ul></li><li><p><strong>重点:建造者的退化模式是通过合并抽象建造者、指挥者角色完成退化的。</strong></p></li><li><p>•原型模式的定义</p><p>–利用一个对象,快速地生成一批对象.</p><p>–通过克隆方法所创建的对象是<strong>全新的对象</strong>,它们在内存中拥有新的地址,每一个克隆对象都是<strong>独立</strong>的</p><p>–</p><p>–原型模式包含以下3个角色:</p><p>•Prototype(抽象原型类)</p><p>•ConcretePrototype(具体原型类)</p><p>•Client(客户类)</p><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094835214.png" alt="image-20211228094835214"></li></ul></li><li><p><strong>•浅克隆与深克隆</strong></p><p><strong>–浅克隆(Shallow Clone):当原型对象被复制时,只复制它本身和其中包含的值类型的成员变量,而引用类型的成员变量并没有复制</strong></p><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211228094931677.png" alt="image-20211228094931677"></li></ul></li><li><p><strong>浅拷贝:仅仅复制所考虑的对象,</strong>不复制它所引用的成员对象,例如Sheet s<strong>。</strong></p></li><li><p><strong>深拷贝:**</strong>两者都复制。**</p></li></ul><ul><li><p>•<strong>结构型模式**</strong>(Structural Pattern)**关注如何将现有类或对象组织在一起形成更加强大的结构</p><p>•不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案</p></li></ul><ul><li><p>适配器模式:将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作</p></li><li><p>适配器模式包含以下3个角色:</p><p>•Target(目标抽象类)</p><p>•Adapter(适配器类)</p><p>•Adaptee(适配者类)</p><ul><li><strong>类适配器</strong></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228102933876.png" alt="image-20211228102933876"></p></li><li><p>•理解2:对象适配器(组合聚集)</p><p>•对象适配器模式是合成复用原则的典型应用。</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228103002330.png" alt="image-20211228103002330"></p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228103026315.png" alt="image-20211228103026315"></p></li><li><p>总结</p><ul><li><p>•模式优点</p><p>–将<strong>目标类和适配者类解耦</strong>,通过引入一个适配器类来重用现有的适配者类,无须修改原有结构</p><p>–<strong>增加了类的透明性和复用性</strong>,提高了适配者的复用性,同一个适配者类可以在多个不同的系统中复用</p><p>–灵活性和扩展性非常好</p><p>–<strong>类适配器模式</strong>:置换一些适配者的方法很方便</p><p>–<strong>对象适配器模式</strong>:可以把多个不同的适配者适配到同一个目标,还可以适配一个适配者的子类</p></li></ul></li></ul><ul><li><strong>外观模式:</strong>又称为门面模式</li></ul><p>是迪米特法则的一种具体实现</p><p>1.通过引入一个新的外观角色来降低原有系统的复杂度,同时降低客户类与子系统的耦合度</p><p>2.对客户屏蔽了子系统组件,减少了客户处理的对象数</p><p>3.使得子系统使用起来更加容易</p><p>4.降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">外观模式包含以下2个角色:</span><br><span class="line"></span><br><span class="line">•Facade(外观角色)</span><br><span class="line"></span><br><span class="line">•SubSystem(子系统角色)</span><br></pre></td></tr></table></figure></div><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228221138388.png" alt="image-20211228221138388"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228221238081.png" alt="image-20211228221238081"></p><ul><li><p>它<strong>对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目并使得子系统使用起来更加容易</strong></p></li><li><p>它<strong>实现了子系统与客户端之间的松耦合关系</strong>,这使得子系统的变化不会影响到调用它的客户端,只需要调整外观类即可</p></li><li><p>一个子系统的修改对其他子系统没有任何影响,而且子系统的<strong>内部变化也不会影响到外观对象</strong></p></li><li><p><strong>外观模式-模式缺点</strong></p><p>–不能很好地限制客户端直接使用子系统类,如果对客户端访问子系统类做太多的限制则减少了可变性和灵活性</p><p>–如果设计不当,增加新的子系统可能需要修改外观类的源代码,违背了开闭原则</p></li><li><p><strong>代理模式的定义</strong></p><p>–引入一个新的代理对象</p><p>–代理对象在客户端对象和目标对象之间起到中介的作用</p><p>–去掉客户不能看到的内容和服务或者增添客户需要的额外的新服务</p></li></ul><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">代理模式包含以下3个角色:</span><br><span class="line">Subject(抽象主题角色)</span><br><span class="line">Proxy(代理主题角色)</span><br><span class="line">RealSubject(真实主题角色)</span><br></pre></td></tr></table></figure></div><ul><li><p>•策略模式的定义</p><p>–又称为政策(Policy)模式</p><p>–每一个封装算法的类称之为策略(Strategy)类</p><p>–策略模式提供了一种可插入式(Pluggable)算法的实现方案</p></li></ul><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">策略模式包含以下3个角色:</span><br><span class="line">Context(环境类)</span><br><span class="line">Strategy(抽象策略类)</span><br><span class="line">ConcreteStrategy(具体策略类)</span><br></pre></td></tr></table></figure></div><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233327759.png" alt="image-20211228233327759"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233342831.png" alt="image-20211228233342831"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233349394.png" alt="image-20211228233349394"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233540364.png" alt="image-20211228233540364"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233636223.png" alt="image-20211228233636223"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233811615.png" alt="image-20211228233811615"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233834207.png" alt="image-20211228233834207"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233846426.png" alt="image-20211228233846426"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228233914289.png" alt="image-20211228233914289"></p><ul><li><p>命令模式</p></li><li><p><strong>命令模式:**</strong>请求以命令的形式包裹在对象中<strong>,并传给调用对象。对请求排队</strong>或者<strong>记录请求日志</strong>,以及支持可撤销的操作。</p></li><li><p>命令模式包含以下4个角色:</p><p>•Command(抽象命令类)</p><p>•ConcreteCommand(具体命令类)</p><p>•Invoker(调用者)</p><p>•Receiver(接收者)</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228235938635.png" alt="image-20211228235938635"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228235945196.png" alt="image-20211228235945196"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229000039279.png" alt="image-20211229000039279"></p></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229000100184.png" alt="image-20211229000100184"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228235752055.png" alt="image-20211228235752055"></p><ul><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211228234613278.png" alt="image-20211228234613278"></p></li><li><p><strong>–观察者模式:</strong></p><p>•定义了对象之间一种一对多的依赖关系,让一个对象的改变能够影响其他对象</p><p>•发生改变的对象称为<strong>观察目标</strong>,被通知的对象称为<strong>观察者</strong></p><p>•<strong>一个观察目标</strong>可以对应<strong>多个观察者</strong></p></li><li><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211229002844294.png" alt="image-20211229002844294"></li></ul></li><li><p>状态模式</p><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211229004059006.png" alt="image-20211229004059006"></li></ul></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229004436806.png" alt="image-20211229004436806"></p><ul><li><p><strong>模板方法模式:</strong>定义一个操作中<strong>算法的框架</strong>,而<strong>将一些步骤延迟到子类中</strong>。模板方法模式使得子类不改变一个算法的结构即可<strong>重定义</strong>该算法的<strong>某些特定步骤</strong>。</p></li><li><p>(1)AbstractClass 抽象类</p><ul><li><p>类中实现了模板方法,定义了算法的骨架,具体子类需要去实现,其他的抽象方法o1,2,3,4</p><p>(2)ConcreteClass 实现抽象方法</p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">模板方法模式包含以下两个角色:</span><br><span class="line">AbstractClass(抽象类)</span><br><span class="line">ConcreteClass(具体子类)</span><br></pre></td></tr></table></figure></div></li></ul></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229004635675.png" alt="image-20211229004635675"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229004846848.png" alt="image-20211229004846848"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229005359728.png" alt="image-20211229005359728"></p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="设计模式" scheme="https://gylq.gitee.io/tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/"/>
</entry>
<entry>
<title>【知识积累】微机原理期末复习</title>
<link href="https://gylq.gitee.io/posts/182.html"/>
<id>https://gylq.gitee.io/posts/182.html</id>
<published>2021-12-22T08:04:10.298Z</published>
<updated>2022-05-20T03:44:39.053Z</updated>
<content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="知识前置"><a href="#知识前置" class="headerlink" title="知识前置"></a>知识前置</h2><p>位:计算机能表示的最小数据单位</p><p>字节:一个8位二进制数成为1字节</p><p>字:一个16位二进制数称1个字</p><p>机器数:计算机中的数据,分为数值数据和非数值数据</p><p>真值:机器数代表的真正的数值</p><p>字长:处理器的二进制位数(8位处理器字长为8位)</p><p>溢出别:补码运算时,若运算结果超过其表示的数的范围,则溢出。</p><p>技巧:由于溢出只可能出现在同号相加或异号相减运算时,且采用补码减法可转变为加法,最直观、最易于理解的溢出判定方法是:若正数加正数,结果为负数或负数加负数,结果为正数,则发生溢出。</p><p>Asciil码:</p><p>数字符0-9的Ascii码为30H~39H(48)</p><p>大写字母A-Z的Ascii码为41H-5AH(65)</p><p>BCD码:十进制可采用二进制编码来表示——本质还是十进制数</p><p>压缩BCD码:一个字节表示两位十进制数 16 - 0001 0110</p><p>非压缩BCD码:一个字节表示一位十进制数 16 - 00000001 00000110</p><p>BCD码本质上是二进制编码的十进制数</p><p>带符号的机器数表示方式:原码、补码、反码</p><ul><li>原码<ul><li>最高位是符号位,0为正,1位负,范围 -127 - +127</li></ul></li><li>反码<ul><li>正数:原码=反码=补码</li><li>负数:符号位不变,数值位求反</li><li>范围和原码一样</li></ul></li><li>补码<ul><li>正数:和反码一样</li><li>负数:反码+1</li><li>范围: -128 - +127</li></ul></li><li>运算规则:<ul><li>符号位与数值位一起运算</li><li>符号位产生进位可舍去</li></ul></li><li>微机组成<ul><li><strong>CPU(运算器和控制器)、输入输出设备、接口电路和系统总线</strong></li></ul></li><li>总线<ul><li>总线是CPU向存储器和输入/输出接口传送地址、数据和控制信息的公共通道<ul><li>数据总线(16):传输数据</li><li>地址总线(20):传输地址信息</li><li>控制总线(16):传输控制信号</li><li>例:8086的数据线为16位,地址线为20位,I/O口使用16位地址线</li></ul></li></ul></li></ul><h3 id="8088-8086微处理器"><a href="#8088-8086微处理器" class="headerlink" title="8088/8086微处理器"></a>8088/8086微处理器</h3><ul><li><p>8086:16位微处理器</p></li><li><p>8088:准16位处理器</p></li><li><p>8086和8088的区别:</p><ul><li>8086 BIU中的<strong>指令队列</strong>是6字节,外部数据总线16位</li><li>8088 BIU中的<strong>指令队列</strong>是4字节,外部数据总线8位</li></ul></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211224082703409.png" alt="image-20211224082703409"></p></li><li><p>EU(执行单元)</p><ul><li>负责指令的译码和执行</li><li>负责向总线接口部件BIU它提供偏移地址</li><li>对通用寄存器和标志寄存器进行管理<ul><li>EU组成<ul><li>算术逻辑单元ALU</li><li>标志寄存器FR</li><li>通用寄存器<ul><li>数据寄存器<ul><li>16位数据AX、BX、CX、DX</li></ul></li><li>16位指针寄存器:SP、BP</li><li>16位变址寄存器:DI、SI</li></ul></li><li>暂存寄存器</li><li>EU控制电路</li></ul></li></ul></li></ul></li><li><p>BIU(总线接口单元)</p><ul><li>负责CPU与内存或I/O端口传送指令或数据<ul><li>BIU从内存取指令送到指令队列缓冲器。</li><li>当EU执行指令时,BIU要配合EU从指定的内存单元或I/O中端口汇总读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去</li><li>BIU的组成<ul><li>段寄存器<ul><li>代码段寄存器CS</li><li>堆栈段寄存器SS</li><li>数据段寄存器DS</li><li>附加段寄存器ES</li></ul></li><li>指令指针寄存器IP</li><li>地址加法器</li><li>指令预取队列</li><li>总线控制逻辑</li></ul></li></ul></li></ul></li><li><p>数据寄存器</p><ul><li>AX 累加器 </li><li>BX 基数寄存器 basic</li><li>CX 计数寄存器 count</li><li>DX 数据寄存器 data</li></ul></li><li><p>变址寄存器:存放当前数据段的偏移地址</p><ul><li>SI 源变址寄存器 source</li><li>DI 目的变址寄存器 destination</li></ul></li><li><p>指针寄存器:用来存取位于当前<strong>堆栈段</strong>中的数据</p><ul><li>BP 基址指针寄存器:存放位于堆栈段中的一个<strong>数据区基址</strong>的<strong>偏移地址</strong>-表明数据区在哪里开始 basic adress Pointer</li><li>SP 堆栈指针寄存器:给出<strong>栈顶</strong>的偏移地址 stack pointer</li></ul></li><li><p>段寄存器</p><ul><li>DS 数据段寄存器 Data</li><li>ES 附加段寄存器 Extra</li><li>SS 堆栈段寄存器 Stack</li><li>CS 代码段寄存器 Code</li></ul></li><li><p>控制寄存器</p><ul><li>IP 指令指针寄存器:存放着BIU要取的下一条指令<strong>的偏移地址</strong><ul><li>下一条指令的物理地址=CSx16+IP instructions</li></ul></li><li>PSW 状态标志寄存器 <ul><li>①状态标志<ul><li><strong>进位标志CF:最高位产生进位/借位,CF=1</strong></li><li><strong>奇偶标志PF:运算结果低8位中个“1”的个数为偶数,则PF=1</strong></li><li>辅助进位标志AF:低4位向高4位有进位,则AF=1</li><li>零标志ZF:运算结果为0,则ZF=1</li><li>符号标志SF:最高位为1,表示结果为负数,则SF=1</li><li>溢出标志OF:运算过程中发生“溢出”,则OF=1</li></ul></li><li><strong>②控制标志</strong><ul><li>中断允许标志IF <ul><li>IF=1,<strong>则CPU可以接受可屏蔽中断请求</strong></li></ul></li><li><strong>方向标志DF</strong> direction flag<ul><li>DF=1时,地址自动递减;</li><li>DF=0时,地址自动递增;</li></ul></li><li><strong>跟踪(陷阱)标志TF</strong> trick flag<ul><li>为调试程序的方便而设置的</li><li>TF=1,则处于单步工作方式</li><li>TF=0,将正常执行程序</li></ul></li></ul></li></ul></li></ul></li><li><p>段寄存器</p><ul><li>代码段(CS):用来存放当前正在运行的<strong>程序</strong>。<strong>不能做目的操作数</strong></li><li>数据段(DS):存放当前运行程序所用的数据</li><li>堆栈段(SS):<strong>堆栈</strong>作用是保护数据</li><li>附加数据段(ES):<strong>辅助</strong>的数据区</li></ul></li><li><p><strong>为什么要分段</strong></p><ul><li>8086/8088有<strong>20位地址线</strong>,能够寻址<strong>1MB的内存空间</strong>,但<strong>寄存器是16位</strong>,只能寻址64KB存储空间,所以要分段,把1MB的存储空间分成若干逻辑段,每个逻辑段最大具有64KB的存储空间</li></ul><p>8086/8088 20 2^20 =1 MB 寄存器16位,2^16=64KB,分段,把1MB空间分成若干逻辑段,每个逻辑段最大具有64KB的存储空间</p></li><li><p>分段的概念:</p><ul><li>把1MB的存储空间分成<strong>若干逻辑段</strong>,每个逻辑段最大具有64KB的存储空间。</li></ul></li><li><p>物理地址形成</p><ul><li>物理地址:即实际地址,例如00000H。一个存储单元的物理地址是唯一的,而逻辑地址是可以不唯一的。</li><li>段基址:段首址的高16位。段基址存放在段寄存器DS、ES、SS或CS中。</li><li><strong>偏移地址</strong>:段内存储单元距离段首地址的偏移量,也称有效地址<strong>EA</strong>,存放在IP、BP、SI、DI或BX中。偏移地址方位:0000H~FFFFH</li><li>逻辑地址:通常用<strong>段基址</strong>:<strong>偏移地址</strong>的形式来描述,在程序中使用。</li><li>例如<ul><li>0000H:0001H</li><li>物理地址=段基址x16+偏移量</li><li>常用:CS:IP、SS:SP</li></ul></li></ul></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225092027199.png" alt="image-20211225092027199"></p><p>题</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225092345783.png" alt="image-20211225092345783"></p><ul><li><p>堆栈</p><ul><li>堆栈是以<strong>“先进后出“或”后进先出“</strong>原则管理的<strong>存储区域</strong>。SS(堆栈是保护数据)给出堆栈段的段基址,SP存放<strong>栈顶地址</strong>,指出从栈顶到段首址的偏移量</li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225093428511.png" alt="image-20211225093428511"></p></li><li><p>PUSH AX:;入栈</p><ul><li>SP-2 ——> SP</li><li>再将数据入栈(低八位放入低字节,高八位放入高字节)</li></ul></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225093358367.png" alt="image-20211225093358367"></p><ul><li><p><strong>POP AX:出栈</strong></p><ul><li>先栈顶数据出栈</li><li>再SP+2——>SP</li></ul></li><li><p>8086/8088 CPU 引脚</p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225093830853.png" alt="image-20211225093830853"></p></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225093859813.png" alt="image-20211225093859813"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225093932682.png" alt="image-20211225093932682"></p><h3 id="指令系统"><a href="#指令系统" class="headerlink" title="指令系统"></a>指令系统</h3><ul><li><p>指令格式</p><ul><li>操作码 操作数/目的操作数,源操作数</li></ul></li><li><p>寻址方式</p><ul><li><p>①<strong>立即数</strong>寻址——直接给出<strong>操作数</strong></p><ul><li>MOV CX, 2A50H</li><li>将立即数2A50H送到CX寄存器中。</li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225102521636.png" alt="image-20211225102521636"></li></ul></li><li><p>②<strong>寄存器</strong>寻址</p><ul><li>操作数为内部寄存器(AX/BX/CX/DX/SI/DI/SP/BP)</li><li>MOV DX, AX</li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225102812010.png" alt="image-20211225102812010"></li></ul></li><li><p>③存储器寻址</p><ul><li>1、直接寻址:操作数给出有效地址(偏移地址)<ul><li>MOV AL,[2000H]</li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225103438259.png" alt="image-20211225103438259"></li></ul></li><li>2、<strong>寄存器间接寻址:有效地址放在指定寄存器中</strong><ul><li><strong>BX、SI、DI——默认段为DS段,物理地址=DS*16+BX/SI/DI</strong></li><li><strong>BP——默认段为SS段,物理地址=SS*16+BP</strong></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225105352287.png" alt="image-20211225105352287"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225105557800.png" alt="image-20211225105557800"></li></ul></li></ul></li><li><p>3、<strong>寄存器相对寻址:有效地址是寄存器内容+位移</strong></p></li></ul></li><li><p>操作数的物理地址=16xDS+BX/SI/DI+位移|或者=16xSS +BP +位移</p><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225110124553.png" alt="image-20211225110124553"></li></ul></li><li><p>4、<strong>基址加变址寻址方式:有效地址是基址寄存器和变址寄存器内容之和</strong></p><ul><li><p>操作数的物理地址=16xDS + BX(基址寄存器)+ SI/DI(变址寄存器)|或 = 16xSS + BP +SI/DI</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225112549491.png" alt="image-20211225112549491"></p></li><li><p>5、相对的基址加变址寻址方式</p></li></ul></li><li><p>操作数的物理地址=16XDS+BX+SI/DI+位移|或=16XSS+BP+SI/DI+位移</p><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113036426.png" alt="image-20211225113036426"></li></ul><ul><li><p>语法规则</p></li><li><p>1、源操作数与目的操作数长度要一致</p></li><li><p>类型要明确</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113321730.png" alt="image-20211225113321730"></p></li><li><p>2、寄存器寻址与段地址 要对应</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113443723.png" alt="image-20211225113443723"></p></li><li><p>[]中只能使用基址和变址即<strong>BX/BP/Si/Di</strong></p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113523967.png" alt="image-20211225113523967"></p></li><li><p>4、同一组内的寄存器不能同时出现在一个[]中。</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113608487.png" alt="image-20211225113608487"></p></li><li><p>5、两个存储单元之间不能直接操作的</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113659011.png" alt="image-20211225113659011"></p></li><li><p><strong>6、CS、IP、立即数不能做目的操作数</strong> IP指令指针 EA偏移地址</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113733504.png" alt="image-20211225113733504"></p></li><li><p>7、当DS、ES、SS作目的操作数时,立即数不能做源操作数</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225113938506.png" alt="image-20211225113938506"></p></li><li><p>8、可用段超越前缀修改默认段</p></li><li><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225155328686.png" alt="image-20211225155328686"></p></li></ul></li><li><p>数据传送指令</p><ul><li>MOV 目的,源<ul><li>功能:将源操作数的内容传送到目的操作数 </li></ul></li><li><strong>PUSH 源</strong><ul><li>功能:将源操作数压入堆栈中</li><li>过程:SP新 -> SP原-2, 再入栈</li></ul></li><li><strong>POP目的</strong><ul><li>功能:将堆栈中数据弹出至目的操作数</li><li>过程:出栈、SP新 -> SP原+2</li></ul></li><li><strong>XCHG 目的,源</strong><ul><li>功能:源操作数、目的操作数交换数据</li></ul></li><li>XLAT 转换表 或:XLATT<ul><li>功能:<strong>查表功能</strong></li></ul></li><li><strong>IN</strong> AX/AL, I/O地址<ul><li>I/O端口数据传输到AX、AL</li></ul></li><li><strong>OUT</strong> I/O地址,AX/AL<ul><li>AX、AL数据传输到I/O端口</li></ul></li><li><strong>LEA 目的操作数,源操作数</strong> lea<ul><li>功能:取源操作数的地址偏移量,送到目的操作数</li></ul></li><li><strong>LDS 目的操作数,源操作数</strong> <ul><li>取出四个字节,低地址两个字节送入目的操作数,高地址的两个字节送入DS寄存器</li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225162018079.png" alt="image-20211225162018079"></li><li>算术运算指令</li></ul></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225162124828.png" alt="image-20211225162124828"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225162601494.png" alt="image-20211225162601494"><ul><li>逻辑运算</li></ul></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225162954851.png" alt=""></li><li>NOT 目的 ——按位取反</li><li>AND 目的,源——目的与源-——>目的</li><li>OR 目的,源——目的或源——>目的</li><li>XOR 目的,源 —— 目的异或源——>目的</li><li><strong>TEST 目的,源 ——目的与源,并修改标志位,但不回送结果</strong></li></ul></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225163612868.png" alt="image-20211225163612868"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225164920411.png" alt="image-20211225164920411"></p><ul><li><p>串操作指令</p><ul><li><p>基础知识</p><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165018745.png" alt="image-20211225165018745"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165125298.png" alt="image-20211225165125298"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165144817.png" alt="image-20211225165144817"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165320806.png" alt="image-20211225165320806"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165336208.png" alt="image-20211225165336208"></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165426463.png" alt="image-20211225165426463"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225165958375.png" alt="image-20211225165958375"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171126905.png" alt="image-20211225171126905"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225170155896.png" alt="image-20211225170155896"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171057337.png" alt="image-20211225171057337"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171352426.png" alt="image-20211225171352426"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171402997.png" alt="image-20211225171402997"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171426880.png" alt="image-20211225171426880"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171442671.png" alt="image-20211225171442671"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171534742.png" alt="image-20211225171534742"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171604161.png" alt="image-20211225171604161"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225171628930.png" alt="image-20211225171628930"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225172036634.png" alt="image-20211225172036634"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225172025961.png" alt="image-20211225172025961"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225172057538.png" alt=""></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211225172125339.png" alt="image-20211225172125339"></p></li></ul></li></ul><h3 id="汇编语言程序设计"><a href="#汇编语言程序设计" class="headerlink" title="汇编语言程序设计"></a>汇编语言程序设计</h3><ul><li>汇编语言有三种基本语句:<strong>指令语句、伪指令语句、宏指令语句</strong></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204411993.png" alt="image-20211225204411993"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204454584.png" alt="image-20211225204454584"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204540020.png" alt="image-20211225204540020"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204731140.png" alt="image-20211225204731140"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204802880.png" alt="image-20211225204802880"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204837709.png" alt="image-20211225204837709"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204906200.png" alt="image-20211225204906200"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211225204944444.png" alt="image-20211225204944444"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226104045625.png" alt="image-20211226104045625"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226104139487.png" alt="image-20211226104139487"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226104222456.png" alt="image-20211226104222456"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226104351505.png" alt="image-20211226104351505"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226104444435.png" alt="image-20211226104444435"></li></ul><h3 id="存储器"><a href="#存储器" class="headerlink" title="存储器"></a>存储器</h3><ul><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226105848849.png" alt="image-20211226105848849"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226105945348.png" alt="image-20211226105945348"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226111801577.png" alt="image-20211226111801577"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226112047085.png" alt="image-20211226112047085"></li><li><img src="https://gylq.gitee.io/linkimage/img1/image-20211226112111391.png" alt="image-20211226112111391"></li></ul><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229215225312.png" alt="image-20211229215225312"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229215513023.png" alt="image-20211229215513023"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220113039.png" alt="image-20211229220113039"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220159626.png" alt="image-20211229220159626"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220221919.png" alt="image-20211229220221919"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220311773.png" alt="image-20211229220311773"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220343305.png" alt="image-20211229220343305"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220430268.png" alt="image-20211229220430268"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220650679.png" alt="image-20211229220650679"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220642309.png" alt="image-20211229220642309"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220718898.png" alt="image-20211229220718898"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229220954606.png" alt="image-20211229220954606"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229221005462.png" alt="image-20211229221005462"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229222819876.png" alt="image-20211229222819876"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229230847203.png" alt="image-20211229230847203"></p><div class="highlight-wrap"autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true"data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">data segment</span><br><span class="line">data1 db 15H ;被加数</span><br><span class="line">sum db 00H ;和</span><br><span class="line">data ends</span><br><span class="line">code segment</span><br><span class="line">assume CS:code,DS:data</span><br><span class="line">start:</span><br><span class="line">MOV AX,data</span><br><span class="line">MOV DS, AX; 装入数据段</span><br><span class="line">MOV AL,data1;</span><br><span class="line">ADD AL,12H;</span><br><span class="line">MOV sum,AL; </span><br><span class="line">HLT;暂停</span><br><span class="line">code ends</span><br><span class="line">end start</span><br></pre></td></tr></table></figure></div><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229231543323.png" alt="image-20211229231543323"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229231612970.png" alt="image-20211229231612970"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229231943486.png" alt="image-20211229231943486"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232018601.png" alt="image-20211229232018601"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232043414.png" alt="image-20211229232043414"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232108452.png" alt="image-20211229232108452"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232431684.png" alt="image-20211229232431684"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232452535.png" alt="image-20211229232452535"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232703403.png" alt="image-20211229232703403"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229232932937.png" alt="image-20211229232932937"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233007802.png" alt="image-20211229233007802"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233058785.png" alt="image-20211229233058785"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233158787.png" alt="image-20211229233158787"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233236177.png" alt="image-20211229233236177"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233454337.png" alt="image-20211229233454337"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233653733.png" alt="image-20211229233653733"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233725445.png" alt="image-20211229233725445"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233744840.png" alt="image-20211229233744840"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233830795.png" alt="image-20211229233830795"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233851811.png" alt="image-20211229233851811"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233919258.png" alt="image-20211229233919258"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229233940339.png" alt="image-20211229233940339"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229234009098.png" alt="image-20211229234009098"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229234111390.png" alt="image-20211229234111390"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229235521621.png" alt="image-20211229235521621"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229235602136.png" alt="image-20211229235602136"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229235655827.png" alt="image-20211229235655827"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229235728459.png" alt="image-20211229235728459"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229235821100.png" alt="image-20211229235821100"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211229235854332.png" alt="image-20211229235854332"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230000221854.png" alt="image-20211230000221854"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230000308034.png" alt="image-20211230000308034"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230000403545.png" alt="image-20211230000403545"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230000447611.png" alt="image-20211230000447611"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230000534050.png" alt="image-20211230000534050"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230000643348.png" alt="image-20211230000643348"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230001108160.png" alt="image-20211230001108160"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230001911990.png" alt="image-20211230001911990"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230002034428.png" alt="image-20211230002034428"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230002205918.png" alt="image-20211230002205918"></p><p><img src="https://gylq.gitee.io/linkimage/img1/image-20211230002440323.png" alt="image-20211230002440323"></p>]]></content>
<summary type="html">
<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" cla
</summary>
<category term="知识积累" scheme="https://gylq.gitee.io/categories/%E7%9F%A5%E8%AF%86%E7%A7%AF%E7%B4%AF/"/>
<category term="微机原理" scheme="https://gylq.gitee.io/tags/%E5%BE%AE%E6%9C%BA%E5%8E%9F%E7%90%86/"/>
</entry>
</feed>