+400
.gitignore
+400
.gitignore
···
1
+
## Ignore Visual Studio temporary files, build results, and
2
+
## files generated by popular Visual Studio add-ons.
3
+
##
4
+
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
5
+
6
+
# User-specific files
7
+
*.rsuser
8
+
*.suo
9
+
*.user
10
+
*.userosscache
11
+
*.sln.docstates
12
+
13
+
# User-specific files (MonoDevelop/Xamarin Studio)
14
+
*.userprefs
15
+
16
+
# Mono auto generated files
17
+
mono_crash.*
18
+
19
+
# Build results
20
+
[Dd]ebug/
21
+
[Dd]ebugPublic/
22
+
[Rr]elease/
23
+
[Rr]eleases/
24
+
x64/
25
+
x86/
26
+
[Ww][Ii][Nn]32/
27
+
[Aa][Rr][Mm]/
28
+
[Aa][Rr][Mm]64/
29
+
bld/
30
+
[Bb]in/
31
+
[Oo]bj/
32
+
[Ll]og/
33
+
[Ll]ogs/
34
+
35
+
# Visual Studio 2015/2017 cache/options directory
36
+
.vs/
37
+
# Uncomment if you have tasks that create the project's static files in wwwroot
38
+
#wwwroot/
39
+
40
+
# Visual Studio 2017 auto generated files
41
+
Generated\ Files/
42
+
43
+
# MSTest test Results
44
+
[Tt]est[Rr]esult*/
45
+
[Bb]uild[Ll]og.*
46
+
47
+
# NUnit
48
+
*.VisualState.xml
49
+
TestResult.xml
50
+
nunit-*.xml
51
+
52
+
# Build Results of an ATL Project
53
+
[Dd]ebugPS/
54
+
[Rr]eleasePS/
55
+
dlldata.c
56
+
57
+
# Benchmark Results
58
+
BenchmarkDotNet.Artifacts/
59
+
60
+
# .NET Core
61
+
project.lock.json
62
+
project.fragment.lock.json
63
+
artifacts/
64
+
65
+
# ASP.NET Scaffolding
66
+
ScaffoldingReadMe.txt
67
+
68
+
# StyleCop
69
+
StyleCopReport.xml
70
+
71
+
# Files built by Visual Studio
72
+
*_i.c
73
+
*_p.c
74
+
*_h.h
75
+
*.ilk
76
+
*.meta
77
+
*.obj
78
+
*.iobj
79
+
*.pch
80
+
*.pdb
81
+
*.ipdb
82
+
*.pgc
83
+
*.pgd
84
+
*.rsp
85
+
# but not Directory.Build.rsp, as it configures directory-level build defaults
86
+
!Directory.Build.rsp
87
+
*.sbr
88
+
*.tlb
89
+
*.tli
90
+
*.tlh
91
+
*.tmp
92
+
*.tmp_proj
93
+
*_wpftmp.csproj
94
+
*.log
95
+
*.tlog
96
+
*.vspscc
97
+
*.vssscc
98
+
.builds
99
+
*.pidb
100
+
*.svclog
101
+
*.scc
102
+
103
+
# Chutzpah Test files
104
+
_Chutzpah*
105
+
106
+
# Visual C++ cache files
107
+
ipch/
108
+
*.aps
109
+
*.ncb
110
+
*.opendb
111
+
*.opensdf
112
+
*.sdf
113
+
*.cachefile
114
+
*.VC.db
115
+
*.VC.VC.opendb
116
+
117
+
# Visual Studio profiler
118
+
*.psess
119
+
*.vsp
120
+
*.vspx
121
+
*.sap
122
+
123
+
# Visual Studio Trace Files
124
+
*.e2e
125
+
126
+
# TFS 2012 Local Workspace
127
+
$tf/
128
+
129
+
# Guidance Automation Toolkit
130
+
*.gpState
131
+
132
+
# ReSharper is a .NET coding add-in
133
+
_ReSharper*/
134
+
*.[Rr]e[Ss]harper
135
+
*.DotSettings.user
136
+
137
+
# TeamCity is a build add-in
138
+
_TeamCity*
139
+
140
+
# DotCover is a Code Coverage Tool
141
+
*.dotCover
142
+
143
+
# AxoCover is a Code Coverage Tool
144
+
.axoCover/*
145
+
!.axoCover/settings.json
146
+
147
+
# Coverlet is a free, cross platform Code Coverage Tool
148
+
coverage*.json
149
+
coverage*.xml
150
+
coverage*.info
151
+
152
+
# Visual Studio code coverage results
153
+
*.coverage
154
+
*.coveragexml
155
+
156
+
# NCrunch
157
+
_NCrunch_*
158
+
.*crunch*.local.xml
159
+
nCrunchTemp_*
160
+
161
+
# MightyMoose
162
+
*.mm.*
163
+
AutoTest.Net/
164
+
165
+
# Web workbench (sass)
166
+
.sass-cache/
167
+
168
+
# Installshield output folder
169
+
[Ee]xpress/
170
+
171
+
# DocProject is a documentation generator add-in
172
+
DocProject/buildhelp/
173
+
DocProject/Help/*.HxT
174
+
DocProject/Help/*.HxC
175
+
DocProject/Help/*.hhc
176
+
DocProject/Help/*.hhk
177
+
DocProject/Help/*.hhp
178
+
DocProject/Help/Html2
179
+
DocProject/Help/html
180
+
181
+
# Click-Once directory
182
+
publish/
183
+
184
+
# Publish Web Output
185
+
*.[Pp]ublish.xml
186
+
*.azurePubxml
187
+
# Note: Comment the next line if you want to checkin your web deploy settings,
188
+
# but database connection strings (with potential passwords) will be unencrypted
189
+
*.pubxml
190
+
*.publishproj
191
+
192
+
# Microsoft Azure Web App publish settings. Comment the next line if you want to
193
+
# checkin your Azure Web App publish settings, but sensitive information contained
194
+
# in these scripts will be unencrypted
195
+
PublishScripts/
196
+
197
+
# NuGet Packages
198
+
*.nupkg
199
+
# NuGet Symbol Packages
200
+
*.snupkg
201
+
# The packages folder can be ignored because of Package Restore
202
+
**/[Pp]ackages/*
203
+
# except build/, which is used as an MSBuild target.
204
+
!**/[Pp]ackages/build/
205
+
# Uncomment if necessary however generally it will be regenerated when needed
206
+
#!**/[Pp]ackages/repositories.config
207
+
# NuGet v3's project.json files produces more ignorable files
208
+
*.nuget.props
209
+
*.nuget.targets
210
+
211
+
# Microsoft Azure Build Output
212
+
csx/
213
+
*.build.csdef
214
+
215
+
# Microsoft Azure Emulator
216
+
ecf/
217
+
rcf/
218
+
219
+
# Windows Store app package directories and files
220
+
AppPackages/
221
+
BundleArtifacts/
222
+
Package.StoreAssociation.xml
223
+
_pkginfo.txt
224
+
*.appx
225
+
*.appxbundle
226
+
*.appxupload
227
+
228
+
# Visual Studio cache files
229
+
# files ending in .cache can be ignored
230
+
*.[Cc]ache
231
+
# but keep track of directories ending in .cache
232
+
!?*.[Cc]ache/
233
+
234
+
# Others
235
+
ClientBin/
236
+
~$*
237
+
*~
238
+
*.dbmdl
239
+
*.dbproj.schemaview
240
+
*.jfm
241
+
*.pfx
242
+
*.publishsettings
243
+
orleans.codegen.cs
244
+
245
+
# Including strong name files can present a security risk
246
+
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
247
+
#*.snk
248
+
249
+
# Since there are multiple workflows, uncomment next line to ignore bower_components
250
+
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
251
+
#bower_components/
252
+
253
+
# RIA/Silverlight projects
254
+
Generated_Code/
255
+
256
+
# Backup & report files from converting an old project file
257
+
# to a newer Visual Studio version. Backup files are not needed,
258
+
# because we have git ;-)
259
+
_UpgradeReport_Files/
260
+
Backup*/
261
+
UpgradeLog*.XML
262
+
UpgradeLog*.htm
263
+
ServiceFabricBackup/
264
+
*.rptproj.bak
265
+
266
+
# SQL Server files
267
+
*.mdf
268
+
*.ldf
269
+
*.ndf
270
+
271
+
# Business Intelligence projects
272
+
*.rdl.data
273
+
*.bim.layout
274
+
*.bim_*.settings
275
+
*.rptproj.rsuser
276
+
*- [Bb]ackup.rdl
277
+
*- [Bb]ackup ([0-9]).rdl
278
+
*- [Bb]ackup ([0-9][0-9]).rdl
279
+
280
+
# Microsoft Fakes
281
+
FakesAssemblies/
282
+
283
+
# GhostDoc plugin setting file
284
+
*.GhostDoc.xml
285
+
286
+
# Node.js Tools for Visual Studio
287
+
.ntvs_analysis.dat
288
+
node_modules/
289
+
290
+
# Visual Studio 6 build log
291
+
*.plg
292
+
293
+
# Visual Studio 6 workspace options file
294
+
*.opt
295
+
296
+
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
297
+
*.vbw
298
+
299
+
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
300
+
*.vbp
301
+
302
+
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
303
+
*.dsw
304
+
*.dsp
305
+
306
+
# Visual Studio 6 technical files
307
+
*.ncb
308
+
*.aps
309
+
310
+
# Visual Studio LightSwitch build output
311
+
**/*.HTMLClient/GeneratedArtifacts
312
+
**/*.DesktopClient/GeneratedArtifacts
313
+
**/*.DesktopClient/ModelManifest.xml
314
+
**/*.Server/GeneratedArtifacts
315
+
**/*.Server/ModelManifest.xml
316
+
_Pvt_Extensions
317
+
318
+
# Paket dependency manager
319
+
.paket/paket.exe
320
+
paket-files/
321
+
322
+
# FAKE - F# Make
323
+
.fake/
324
+
325
+
# CodeRush personal settings
326
+
.cr/personal
327
+
328
+
# Python Tools for Visual Studio (PTVS)
329
+
__pycache__/
330
+
*.pyc
331
+
332
+
# Cake - Uncomment if you are using it
333
+
# tools/**
334
+
# !tools/packages.config
335
+
336
+
# Tabs Studio
337
+
*.tss
338
+
339
+
# Telerik's JustMock configuration file
340
+
*.jmconfig
341
+
342
+
# BizTalk build output
343
+
*.btp.cs
344
+
*.btm.cs
345
+
*.odx.cs
346
+
*.xsd.cs
347
+
348
+
# OpenCover UI analysis results
349
+
OpenCover/
350
+
351
+
# Azure Stream Analytics local run output
352
+
ASALocalRun/
353
+
354
+
# MSBuild Binary and Structured Log
355
+
*.binlog
356
+
357
+
# NVidia Nsight GPU debugger configuration file
358
+
*.nvuser
359
+
360
+
# MFractors (Xamarin productivity tool) working folder
361
+
.mfractor/
362
+
363
+
# Local History for Visual Studio
364
+
.localhistory/
365
+
366
+
# Visual Studio History (VSHistory) files
367
+
.vshistory/
368
+
369
+
# BeatPulse healthcheck temp database
370
+
healthchecksdb
371
+
372
+
# Backup folder for Package Reference Convert tool in Visual Studio 2017
373
+
MigrationBackup/
374
+
375
+
# Ionide (cross platform F# VS Code tools) working folder
376
+
.ionide/
377
+
378
+
# Fody - auto-generated XML schema
379
+
FodyWeavers.xsd
380
+
381
+
# VS Code files for those working on multiple tools
382
+
.vscode/*
383
+
!.vscode/settings.json
384
+
!.vscode/tasks.json
385
+
!.vscode/launch.json
386
+
!.vscode/extensions.json
387
+
*.code-workspace
388
+
389
+
# Local History for Visual Studio Code
390
+
.history/
391
+
392
+
# Windows Installer files from build outputs
393
+
*.cab
394
+
*.msi
395
+
*.msix
396
+
*.msm
397
+
*.msp
398
+
399
+
# JetBrains Rider
400
+
*.sln.iml
+88
DomainBlock.cs
+88
DomainBlock.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.IO;
4
+
using System.Linq;
5
+
using System.Text;
6
+
using System.Windows.Forms;
7
+
8
+
namespace GfWLUtility
9
+
{
10
+
internal class DomainBlock
11
+
{
12
+
private static string hosts_file_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\\etc\\hosts");
13
+
14
+
public static bool IsDomainBlocked(string domain)
15
+
{
16
+
if (!File.Exists(hosts_file_path)) return false;
17
+
18
+
// scan through each entry in the hosts file to see if the block exists
19
+
string[] hosts_lines = File.ReadAllLines(hosts_file_path);
20
+
foreach (string entry in hosts_lines)
21
+
{
22
+
// ignore any entry starting with a comment, or any blank lines
23
+
if (entry.Length == 0 || entry[0] == '#') continue;
24
+
// to check if it's blocked, we see if it's routed nowhere or locally
25
+
// GfWL doesn't support IPv6 so we don't care for that either
26
+
if (entry.StartsWith("0.0.0.0") || entry.StartsWith("127.0.0.1"))
27
+
{
28
+
// would split but splitting is hard so we just see if the line contains the domain
29
+
if (entry.Contains(domain)) return true;
30
+
}
31
+
}
32
+
33
+
return false;
34
+
}
35
+
36
+
public static void BlockDomain(string domain)
37
+
{
38
+
if (!Program.Elevated)
39
+
throw new Exception("Blocking domains requires admin.");
40
+
41
+
// scan through each entry in the hosts file to see if the block exists
42
+
string[] hosts_lines = File.ReadAllLines(hosts_file_path);
43
+
List<string> hosts_lines_list = hosts_lines.ToList();
44
+
foreach (string entry in hosts_lines)
45
+
{
46
+
// ignore any entry starting with a comment, or any blank lines
47
+
if (entry.Length == 0 || entry[0] == '#') continue;
48
+
// to check if it's blocked, we see if it's routed nowhere or locally
49
+
// GfWL doesn't support IPv6 so we don't care for that either
50
+
if (entry.StartsWith("0.0.0.0") || entry.StartsWith("127.0.0.1"))
51
+
{
52
+
// would split but splitting is hard so we just see if the line contains the domain
53
+
if (entry.Contains(domain)) return;
54
+
}
55
+
}
56
+
57
+
// if we got here the domain isn't blocked already so add it
58
+
hosts_lines_list.Add($"0.0.0.0 {domain}");
59
+
File.WriteAllLines(hosts_file_path, hosts_lines_list.ToArray());
60
+
}
61
+
62
+
public static void UnblockDomain(string domain)
63
+
{
64
+
if (!Program.Elevated)
65
+
throw new Exception("Unblocking domains requires admin.");
66
+
67
+
// scan through each entry in the hosts file to see if the block exists
68
+
string[] hosts_lines = File.ReadAllLines(hosts_file_path);
69
+
List<string> hosts_lines_list = hosts_lines.ToList();
70
+
foreach (string entry in hosts_lines)
71
+
{
72
+
// ignore any entry starting with a comment, or any blank lines
73
+
if (entry.Length == 0 || entry[0] == '#') continue;
74
+
// to check if it's blocked, we see if it's routed nowhere or locally
75
+
// GfWL doesn't support IPv6 so we don't care for that either
76
+
if (entry.StartsWith("0.0.0.0") || entry.StartsWith("127.0.0.1"))
77
+
{
78
+
// would split but splitting is hard so we just see if the line contains the domain
79
+
// and then we remove the line from the hosts file
80
+
if (entry.Contains(domain))
81
+
hosts_lines_list.Remove(entry);
82
+
}
83
+
}
84
+
// write the newly modified hosts file back to the hosts file
85
+
File.WriteAllLines(hosts_file_path, hosts_lines_list.ToArray());
86
+
}
87
+
}
88
+
}
+100
DownloadForm.Designer.cs
+100
DownloadForm.Designer.cs
···
1
+
namespace GfWLUtility
2
+
{
3
+
partial class DownloadForm
4
+
{
5
+
/// <summary>
6
+
/// Required designer variable.
7
+
/// </summary>
8
+
private System.ComponentModel.IContainer components = null;
9
+
10
+
/// <summary>
11
+
/// Clean up any resources being used.
12
+
/// </summary>
13
+
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14
+
protected override void Dispose(bool disposing)
15
+
{
16
+
if (disposing && (components != null))
17
+
{
18
+
components.Dispose();
19
+
}
20
+
base.Dispose(disposing);
21
+
}
22
+
23
+
#region Windows Form Designer generated code
24
+
25
+
/// <summary>
26
+
/// Required method for Designer support - do not modify
27
+
/// the contents of this method with the code editor.
28
+
/// </summary>
29
+
private void InitializeComponent()
30
+
{
31
+
this.progressBar1 = new System.Windows.Forms.ProgressBar();
32
+
this.statusLabel = new System.Windows.Forms.Label();
33
+
this.currentDownloadURL = new System.Windows.Forms.Label();
34
+
this.cancelButton = new System.Windows.Forms.Button();
35
+
this.SuspendLayout();
36
+
//
37
+
// progressBar1
38
+
//
39
+
this.progressBar1.Location = new System.Drawing.Point(12, 12);
40
+
this.progressBar1.MarqueeAnimationSpeed = 30;
41
+
this.progressBar1.Name = "progressBar1";
42
+
this.progressBar1.Size = new System.Drawing.Size(460, 23);
43
+
this.progressBar1.TabIndex = 0;
44
+
//
45
+
// statusLabel
46
+
//
47
+
this.statusLabel.AutoSize = true;
48
+
this.statusLabel.Location = new System.Drawing.Point(12, 61);
49
+
this.statusLabel.Name = "statusLabel";
50
+
this.statusLabel.Size = new System.Drawing.Size(107, 13);
51
+
this.statusLabel.TabIndex = 1;
52
+
this.statusLabel.Text = "Download progress...";
53
+
//
54
+
// currentDownloadURL
55
+
//
56
+
this.currentDownloadURL.AutoSize = true;
57
+
this.currentDownloadURL.Location = new System.Drawing.Point(12, 38);
58
+
this.currentDownloadURL.Name = "currentDownloadURL";
59
+
this.currentDownloadURL.Size = new System.Drawing.Size(407, 13);
60
+
this.currentDownloadURL.TabIndex = 2;
61
+
this.currentDownloadURL.Text = "https://downloadserver.example/downloads/titleupdate/tu00010000_00020000.cab";
62
+
//
63
+
// cancelButton
64
+
//
65
+
this.cancelButton.Location = new System.Drawing.Point(397, 56);
66
+
this.cancelButton.Name = "cancelButton";
67
+
this.cancelButton.Size = new System.Drawing.Size(75, 23);
68
+
this.cancelButton.TabIndex = 3;
69
+
this.cancelButton.Text = "Cancel";
70
+
this.cancelButton.UseVisualStyleBackColor = true;
71
+
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
72
+
//
73
+
// DownloadForm
74
+
//
75
+
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
76
+
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
77
+
this.ClientSize = new System.Drawing.Size(484, 88);
78
+
this.Controls.Add(this.cancelButton);
79
+
this.Controls.Add(this.currentDownloadURL);
80
+
this.Controls.Add(this.statusLabel);
81
+
this.Controls.Add(this.progressBar1);
82
+
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
83
+
this.MaximizeBox = false;
84
+
this.MinimizeBox = false;
85
+
this.Name = "DownloadForm";
86
+
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
87
+
this.Text = "Downloading...";
88
+
this.ResumeLayout(false);
89
+
this.PerformLayout();
90
+
91
+
}
92
+
93
+
#endregion
94
+
95
+
private System.Windows.Forms.ProgressBar progressBar1;
96
+
private System.Windows.Forms.Label statusLabel;
97
+
private System.Windows.Forms.Label currentDownloadURL;
98
+
private System.Windows.Forms.Button cancelButton;
99
+
}
100
+
}
+95
DownloadForm.cs
+95
DownloadForm.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.ComponentModel;
4
+
using System.Data;
5
+
using System.Drawing;
6
+
using System.IO;
7
+
using System.Linq;
8
+
using System.Net;
9
+
using System.Reflection.Emit;
10
+
using System.Text;
11
+
using System.Threading;
12
+
using System.Windows.Forms;
13
+
14
+
namespace GfWLUtility
15
+
{
16
+
internal enum DownloadFormResult
17
+
{
18
+
DownloadCancelled,
19
+
DownloadSuccess,
20
+
DownloadFailure
21
+
}
22
+
23
+
public partial class DownloadForm : Form
24
+
{
25
+
private DownloadFormResult result = DownloadFormResult.DownloadCancelled;
26
+
private FileInformation fileInformation;
27
+
private string downloadOutput;
28
+
private string downloadUrl;
29
+
private int downloadAttempt;
30
+
31
+
public DownloadForm()
32
+
{
33
+
InitializeComponent();
34
+
}
35
+
36
+
// https://stackoverflow.com/a/9459441
37
+
private void StartDownload()
38
+
{
39
+
Thread thread = new Thread(() => {
40
+
WebClient client = new WebClient();
41
+
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressChanged);
42
+
client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
43
+
client.DownloadFileAsync(new Uri(downloadUrl), downloadOutput);
44
+
});
45
+
thread.Start();
46
+
progressBar1.Style = ProgressBarStyle.Blocks;
47
+
}
48
+
void DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
49
+
{
50
+
this.BeginInvoke((MethodInvoker)delegate {
51
+
double bytesIn = double.Parse(e.BytesReceived.ToString());
52
+
double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
53
+
double percentage = bytesIn / totalBytes * 100;
54
+
statusLabel.Text = "Downloaded " + UtilityFuncs.BytesToString(e.BytesReceived) + " of " + UtilityFuncs.BytesToString(e.TotalBytesToReceive);
55
+
progressBar1.Value = int.Parse(Math.Truncate(percentage).ToString());
56
+
});
57
+
}
58
+
void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
59
+
{
60
+
this.BeginInvoke((MethodInvoker)delegate {
61
+
result = DownloadFormResult.DownloadSuccess;
62
+
Close();
63
+
});
64
+
}
65
+
66
+
internal DownloadFormResult StartFileDownload(FileInformation fi, IWin32Window owner)
67
+
{
68
+
if (!Directory.Exists(System.IO.Path.GetTempPath() + "\\GfWLUtility"))
69
+
Directory.CreateDirectory(System.IO.Path.GetTempPath() + "\\GfWLUtility");
70
+
downloadOutput = System.IO.Path.GetTempPath() + "\\GfWLUtility\\" + fi.Filename;
71
+
if (File.Exists(downloadOutput))
72
+
File.Delete(downloadOutput);
73
+
74
+
fileInformation = fi;
75
+
// TODO: If a download fails on one URL, try another
76
+
downloadUrl = fi.DownloadURLs.FirstOrDefault();
77
+
currentDownloadURL.Text = downloadUrl;
78
+
statusLabel.Text = "Preparing download...";
79
+
progressBar1.Style = ProgressBarStyle.Marquee;
80
+
StartDownload();
81
+
ShowDialog(owner);
82
+
return result;
83
+
}
84
+
85
+
internal string GetOutputFilePath()
86
+
{
87
+
return downloadOutput;
88
+
}
89
+
90
+
private void cancelButton_Click(object sender, EventArgs e)
91
+
{
92
+
Close();
93
+
}
94
+
}
95
+
}
+120
DownloadForm.resx
+120
DownloadForm.resx
···
1
+
<?xml version="1.0" encoding="utf-8"?>
2
+
<root>
3
+
<!--
4
+
Microsoft ResX Schema
5
+
6
+
Version 2.0
7
+
8
+
The primary goals of this format is to allow a simple XML format
9
+
that is mostly human readable. The generation and parsing of the
10
+
various data types are done through the TypeConverter classes
11
+
associated with the data types.
12
+
13
+
Example:
14
+
15
+
... ado.net/XML headers & schema ...
16
+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17
+
<resheader name="version">2.0</resheader>
18
+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24
+
</data>
25
+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
+
<comment>This is a comment</comment>
28
+
</data>
29
+
30
+
There are any number of "resheader" rows that contain simple
31
+
name/value pairs.
32
+
33
+
Each data row contains a name, and value. The row also contains a
34
+
type or mimetype. Type corresponds to a .NET class that support
35
+
text/value conversion through the TypeConverter architecture.
36
+
Classes that don't support this are serialized and stored with the
37
+
mimetype set.
38
+
39
+
The mimetype is used for serialized objects, and tells the
40
+
ResXResourceReader how to depersist the object. This is currently not
41
+
extensible. For a given mimetype the value must be set accordingly:
42
+
43
+
Note - application/x-microsoft.net.object.binary.base64 is the format
44
+
that the ResXResourceWriter will generate, however the reader can
45
+
read any of the formats listed below.
46
+
47
+
mimetype: application/x-microsoft.net.object.binary.base64
48
+
value : The object must be serialized with
49
+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
+
: and then encoded with base64 encoding.
51
+
52
+
mimetype: application/x-microsoft.net.object.soap.base64
53
+
value : The object must be serialized with
54
+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
+
: and then encoded with base64 encoding.
56
+
57
+
mimetype: application/x-microsoft.net.object.bytearray.base64
58
+
value : The object must be serialized into a byte array
59
+
: using a System.ComponentModel.TypeConverter
60
+
: and then encoded with base64 encoding.
61
+
-->
62
+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
+
<xsd:element name="root" msdata:IsDataSet="true">
65
+
<xsd:complexType>
66
+
<xsd:choice maxOccurs="unbounded">
67
+
<xsd:element name="metadata">
68
+
<xsd:complexType>
69
+
<xsd:sequence>
70
+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71
+
</xsd:sequence>
72
+
<xsd:attribute name="name" use="required" type="xsd:string" />
73
+
<xsd:attribute name="type" type="xsd:string" />
74
+
<xsd:attribute name="mimetype" type="xsd:string" />
75
+
<xsd:attribute ref="xml:space" />
76
+
</xsd:complexType>
77
+
</xsd:element>
78
+
<xsd:element name="assembly">
79
+
<xsd:complexType>
80
+
<xsd:attribute name="alias" type="xsd:string" />
81
+
<xsd:attribute name="name" type="xsd:string" />
82
+
</xsd:complexType>
83
+
</xsd:element>
84
+
<xsd:element name="data">
85
+
<xsd:complexType>
86
+
<xsd:sequence>
87
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
+
</xsd:sequence>
90
+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
+
<xsd:attribute ref="xml:space" />
94
+
</xsd:complexType>
95
+
</xsd:element>
96
+
<xsd:element name="resheader">
97
+
<xsd:complexType>
98
+
<xsd:sequence>
99
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
+
</xsd:sequence>
101
+
<xsd:attribute name="name" type="xsd:string" use="required" />
102
+
</xsd:complexType>
103
+
</xsd:element>
104
+
</xsd:choice>
105
+
</xsd:complexType>
106
+
</xsd:element>
107
+
</xsd:schema>
108
+
<resheader name="resmimetype">
109
+
<value>text/microsoft-resx</value>
110
+
</resheader>
111
+
<resheader name="version">
112
+
<value>2.0</value>
113
+
</resheader>
114
+
<resheader name="reader">
115
+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
+
</resheader>
117
+
<resheader name="writer">
118
+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
+
</resheader>
120
+
</root>
+57
ElevatedButton.cs
+57
ElevatedButton.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Linq;
4
+
using System.Runtime.InteropServices;
5
+
using System.Security.Principal;
6
+
using System.Text;
7
+
using System.Windows.Forms;
8
+
9
+
namespace GfWLUtility
10
+
{
11
+
/// <summary>
12
+
/// Is a button with the UAC shield
13
+
/// https://stackoverflow.com/a/16226657
14
+
/// Modified to remove shield when disabled
15
+
/// </summary>
16
+
public class ElevatedButton : Button
17
+
{
18
+
/// <summary>
19
+
/// The constructor to create the button with a UAC shield if necessary.
20
+
/// </summary>
21
+
public ElevatedButton()
22
+
{
23
+
FlatStyle = FlatStyle.System;
24
+
EnabledChanged += ElevatedOnEnabledChanged;
25
+
if (!Program.Elevated && Enabled) ShowShield();
26
+
}
27
+
28
+
29
+
[DllImport("user32.dll")]
30
+
private static extern IntPtr
31
+
SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
32
+
33
+
private uint BCM_SETSHIELD = 0x0000160C;
34
+
35
+
private void ElevatedOnEnabledChanged(object sender, EventArgs e)
36
+
{
37
+
if (!Enabled || Program.Elevated)
38
+
HideShield();
39
+
else
40
+
ShowShield();
41
+
}
42
+
43
+
private void ShowShield()
44
+
{
45
+
IntPtr wParam = new IntPtr(0);
46
+
IntPtr lParam = new IntPtr(1);
47
+
SendMessage(new HandleRef(this, Handle), BCM_SETSHIELD, wParam, lParam);
48
+
}
49
+
50
+
private void HideShield()
51
+
{
52
+
IntPtr wParam = new IntPtr(0);
53
+
IntPtr lParam = new IntPtr(0);
54
+
SendMessage(new HandleRef(this, Handle), BCM_SETSHIELD, wParam, lParam);
55
+
}
56
+
}
57
+
}
+205
ExportForm.Designer.cs
+205
ExportForm.Designer.cs
···
1
+
namespace GfWLUtility
2
+
{
3
+
partial class ExportForm
4
+
{
5
+
/// <summary>
6
+
/// Required designer variable.
7
+
/// </summary>
8
+
private System.ComponentModel.IContainer components = null;
9
+
10
+
/// <summary>
11
+
/// Clean up any resources being used.
12
+
/// </summary>
13
+
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14
+
protected override void Dispose(bool disposing)
15
+
{
16
+
if (disposing && (components != null))
17
+
{
18
+
components.Dispose();
19
+
}
20
+
base.Dispose(disposing);
21
+
}
22
+
23
+
#region Windows Form Designer generated code
24
+
25
+
/// <summary>
26
+
/// Required method for Designer support - do not modify
27
+
/// the contents of this method with the code editor.
28
+
/// </summary>
29
+
private void InitializeComponent()
30
+
{
31
+
this.groupBox1 = new System.Windows.Forms.GroupBox();
32
+
this.label4 = new System.Windows.Forms.Label();
33
+
this.label3 = new System.Windows.Forms.Label();
34
+
this.label2 = new System.Windows.Forms.Label();
35
+
this.userProfileCheckbox = new System.Windows.Forms.CheckBox();
36
+
this.pcInfoCheckbox = new System.Windows.Forms.CheckBox();
37
+
this.productKeyCheckbox = new System.Windows.Forms.CheckBox();
38
+
this.exportButton = new System.Windows.Forms.Button();
39
+
this.cancelButton = new System.Windows.Forms.Button();
40
+
this.statusLabel = new System.Windows.Forms.Label();
41
+
this.progressBar1 = new System.Windows.Forms.ProgressBar();
42
+
this.exportSaveFileDialog = new System.Windows.Forms.SaveFileDialog();
43
+
this.groupBox1.SuspendLayout();
44
+
this.SuspendLayout();
45
+
//
46
+
// groupBox1
47
+
//
48
+
this.groupBox1.Controls.Add(this.label4);
49
+
this.groupBox1.Controls.Add(this.label3);
50
+
this.groupBox1.Controls.Add(this.label2);
51
+
this.groupBox1.Controls.Add(this.userProfileCheckbox);
52
+
this.groupBox1.Controls.Add(this.pcInfoCheckbox);
53
+
this.groupBox1.Controls.Add(this.productKeyCheckbox);
54
+
this.groupBox1.Location = new System.Drawing.Point(12, 12);
55
+
this.groupBox1.Name = "groupBox1";
56
+
this.groupBox1.Size = new System.Drawing.Size(357, 145);
57
+
this.groupBox1.TabIndex = 0;
58
+
this.groupBox1.TabStop = false;
59
+
this.groupBox1.Text = "Export Options";
60
+
//
61
+
// label4
62
+
//
63
+
this.label4.AutoSize = true;
64
+
this.label4.Location = new System.Drawing.Point(25, 109);
65
+
this.label4.Name = "label4";
66
+
this.label4.Size = new System.Drawing.Size(323, 26);
67
+
this.label4.TabIndex = 5;
68
+
this.label4.Text = "Downloaded and offline user profiles, along with any saved content\r\nsuch as DLC f" +
69
+
"or games that used LIVE.";
70
+
//
71
+
// label3
72
+
//
73
+
this.label3.AutoSize = true;
74
+
this.label3.Location = new System.Drawing.Point(25, 72);
75
+
this.label3.Name = "label3";
76
+
this.label3.Size = new System.Drawing.Size(216, 13);
77
+
this.label3.TabIndex = 4;
78
+
this.label3.Text = "Saved product keys for each of your games.";
79
+
//
80
+
// label2
81
+
//
82
+
this.label2.AutoSize = true;
83
+
this.label2.Location = new System.Drawing.Point(26, 36);
84
+
this.label2.Name = "label2";
85
+
this.label2.Size = new System.Drawing.Size(283, 13);
86
+
this.label2.TabIndex = 3;
87
+
this.label2.Text = "Your PC ID and machine accounts used to log into games.";
88
+
//
89
+
// userProfileCheckbox
90
+
//
91
+
this.userProfileCheckbox.AutoSize = true;
92
+
this.userProfileCheckbox.Checked = true;
93
+
this.userProfileCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
94
+
this.userProfileCheckbox.Location = new System.Drawing.Point(9, 91);
95
+
this.userProfileCheckbox.Name = "userProfileCheckbox";
96
+
this.userProfileCheckbox.Size = new System.Drawing.Size(146, 17);
97
+
this.userProfileCheckbox.TabIndex = 2;
98
+
this.userProfileCheckbox.Text = "User Profiles and Content";
99
+
this.userProfileCheckbox.UseVisualStyleBackColor = true;
100
+
//
101
+
// pcInfoCheckbox
102
+
//
103
+
this.pcInfoCheckbox.AutoSize = true;
104
+
this.pcInfoCheckbox.Checked = true;
105
+
this.pcInfoCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
106
+
this.pcInfoCheckbox.Location = new System.Drawing.Point(9, 19);
107
+
this.pcInfoCheckbox.Name = "pcInfoCheckbox";
108
+
this.pcInfoCheckbox.Size = new System.Drawing.Size(95, 17);
109
+
this.pcInfoCheckbox.TabIndex = 1;
110
+
this.pcInfoCheckbox.Text = "PC Information";
111
+
this.pcInfoCheckbox.UseVisualStyleBackColor = true;
112
+
//
113
+
// productKeyCheckbox
114
+
//
115
+
this.productKeyCheckbox.AutoSize = true;
116
+
this.productKeyCheckbox.Checked = true;
117
+
this.productKeyCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
118
+
this.productKeyCheckbox.Location = new System.Drawing.Point(9, 54);
119
+
this.productKeyCheckbox.Name = "productKeyCheckbox";
120
+
this.productKeyCheckbox.Size = new System.Drawing.Size(89, 17);
121
+
this.productKeyCheckbox.TabIndex = 0;
122
+
this.productKeyCheckbox.Text = "Product Keys";
123
+
this.productKeyCheckbox.UseVisualStyleBackColor = true;
124
+
//
125
+
// exportButton
126
+
//
127
+
this.exportButton.Location = new System.Drawing.Point(294, 163);
128
+
this.exportButton.Name = "exportButton";
129
+
this.exportButton.Size = new System.Drawing.Size(75, 23);
130
+
this.exportButton.TabIndex = 2;
131
+
this.exportButton.Text = "Export...";
132
+
this.exportButton.UseVisualStyleBackColor = true;
133
+
this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
134
+
//
135
+
// cancelButton
136
+
//
137
+
this.cancelButton.Location = new System.Drawing.Point(213, 163);
138
+
this.cancelButton.Name = "cancelButton";
139
+
this.cancelButton.Size = new System.Drawing.Size(75, 23);
140
+
this.cancelButton.TabIndex = 3;
141
+
this.cancelButton.Text = "Cancel";
142
+
this.cancelButton.UseVisualStyleBackColor = true;
143
+
//
144
+
// statusLabel
145
+
//
146
+
this.statusLabel.AutoSize = true;
147
+
this.statusLabel.Location = new System.Drawing.Point(12, 168);
148
+
this.statusLabel.Name = "statusLabel";
149
+
this.statusLabel.Size = new System.Drawing.Size(213, 13);
150
+
this.statusLabel.TabIndex = 4;
151
+
this.statusLabel.Text = "Some pretty long status message bla bla bla";
152
+
this.statusLabel.Visible = false;
153
+
//
154
+
// progressBar1
155
+
//
156
+
this.progressBar1.Location = new System.Drawing.Point(269, 163);
157
+
this.progressBar1.Name = "progressBar1";
158
+
this.progressBar1.Size = new System.Drawing.Size(100, 23);
159
+
this.progressBar1.TabIndex = 5;
160
+
this.progressBar1.Visible = false;
161
+
//
162
+
// exportSaveFileDialog
163
+
//
164
+
this.exportSaveFileDialog.Filter = "ZIP Archives|*.zip";
165
+
this.exportSaveFileDialog.Title = "Games for Windows - LIVE Data Export";
166
+
//
167
+
// ExportForm
168
+
//
169
+
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
170
+
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
171
+
this.ClientSize = new System.Drawing.Size(381, 197);
172
+
this.Controls.Add(this.statusLabel);
173
+
this.Controls.Add(this.cancelButton);
174
+
this.Controls.Add(this.exportButton);
175
+
this.Controls.Add(this.groupBox1);
176
+
this.Controls.Add(this.progressBar1);
177
+
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
178
+
this.MaximizeBox = false;
179
+
this.MinimizeBox = false;
180
+
this.Name = "ExportForm";
181
+
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
182
+
this.Text = "Export Games for Windows - LIVE Data";
183
+
this.groupBox1.ResumeLayout(false);
184
+
this.groupBox1.PerformLayout();
185
+
this.ResumeLayout(false);
186
+
this.PerformLayout();
187
+
188
+
}
189
+
190
+
#endregion
191
+
192
+
private System.Windows.Forms.GroupBox groupBox1;
193
+
private System.Windows.Forms.Label label4;
194
+
private System.Windows.Forms.Label label3;
195
+
private System.Windows.Forms.Label label2;
196
+
private System.Windows.Forms.CheckBox userProfileCheckbox;
197
+
private System.Windows.Forms.CheckBox pcInfoCheckbox;
198
+
private System.Windows.Forms.CheckBox productKeyCheckbox;
199
+
private System.Windows.Forms.Button exportButton;
200
+
private System.Windows.Forms.Button cancelButton;
201
+
private System.Windows.Forms.Label statusLabel;
202
+
private System.Windows.Forms.ProgressBar progressBar1;
203
+
private System.Windows.Forms.SaveFileDialog exportSaveFileDialog;
204
+
}
205
+
}
+148
ExportForm.cs
+148
ExportForm.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.ComponentModel;
4
+
using System.Data;
5
+
using System.Diagnostics;
6
+
using System.Drawing;
7
+
using System.IO;
8
+
using System.Linq;
9
+
using System.Text;
10
+
using System.Windows.Forms;
11
+
12
+
namespace GfWLUtility
13
+
{
14
+
public partial class ExportForm : Form
15
+
{
16
+
public ExportForm()
17
+
{
18
+
InitializeComponent();
19
+
}
20
+
21
+
public void ExportPCInfo(string filename)
22
+
{
23
+
if (File.Exists(filename))
24
+
File.Delete(filename);
25
+
FileStream fs = new FileStream(filename, FileMode.Create);
26
+
27
+
SavedPCInfo savedPCInfo = new SavedPCInfo();
28
+
savedPCInfo.PCID = GfWLRegistry.GetPCID();
29
+
// shit way to enumerate through every title to put it in the XML
30
+
savedPCInfo.Titles = new SavedPCInfoTitle[TitleManager.KnownTitles.Count];
31
+
int i_title = 0;
32
+
foreach (KnownTitle title in TitleManager.KnownTitles.Values)
33
+
{
34
+
savedPCInfo.Titles[i_title] = new SavedPCInfoTitle();
35
+
savedPCInfo.Titles[i_title].ID = title.TitleID.ToString("X8");
36
+
37
+
if (productKeyCheckbox.Checked)
38
+
{
39
+
string productKey = TitleManager.GetTitleProductKey(title.TitleID);
40
+
if (productKey != null)
41
+
savedPCInfo.Titles[i_title].Key = productKey;
42
+
}
43
+
44
+
// i really don't like this
45
+
List<SavedPCInfoTitleSector> sectors = new List<SavedPCInfoTitleSector>();
46
+
for (int i = 0; i < 0x14; i++)
47
+
{
48
+
byte[] sectorData = TitleManager.GetConfigSector(title.TitleID, i);
49
+
if (sectorData != null)
50
+
{
51
+
// because it's big and unweildy and these are *mostly* null bytes, trim ending nulls
52
+
// this makes the mostly unused config sector basically invisible, and the account sector much smaller
53
+
int sectorTrailingNulls = UtilityFuncs.CountTrailingNulls(sectorData);
54
+
sectorData = sectorData.Take(sectorTrailingNulls + 1).ToArray();
55
+
SavedPCInfoTitleSector sec = new SavedPCInfoTitleSector()
56
+
{
57
+
ID = "0x" + i.ToString("X"),
58
+
Value = Convert.ToBase64String(sectorData)
59
+
};
60
+
sectors.Add(sec);
61
+
}
62
+
}
63
+
savedPCInfo.Titles[i_title].Sector = sectors.ToArray();
64
+
i_title++;
65
+
}
66
+
savedPCInfo.Version = "1";
67
+
savedPCInfo.CreatedBy = "GfWLUtility-beta1";
68
+
savedPCInfo.CreatedAt = DateTime.Now.ToString();
69
+
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(savedPCInfo.GetType());
70
+
x.Serialize(fs, savedPCInfo);
71
+
72
+
fs.Close();
73
+
}
74
+
75
+
public void ExportProductKeys(string filename)
76
+
{
77
+
if (File.Exists(filename))
78
+
File.Delete(filename);
79
+
List<string> productKeyStrings = new List<string>();
80
+
productKeyStrings.Add("GfWL Utility Exported Product Keys:");
81
+
productKeyStrings.Add("-----------------------------------");
82
+
foreach (KnownTitle title in TitleManager.KnownTitles.Values)
83
+
{
84
+
string productKey = TitleManager.GetTitleProductKey(title.TitleID);
85
+
if (productKey != null)
86
+
productKeyStrings.Add($"{title} : {productKey}");
87
+
}
88
+
productKeyStrings.Add("-----------------------------------");
89
+
productKeyStrings.Add($"Generated at {DateTime.Now}");
90
+
File.WriteAllLines(filename, productKeyStrings.ToArray());
91
+
}
92
+
93
+
public void CopyContent(string directory)
94
+
{
95
+
if (Directory.Exists(directory + @"\Content"))
96
+
Directory.Delete(directory + @"\Content", true);
97
+
if (Directory.Exists(directory + @"\DLC"))
98
+
Directory.Delete(directory + @"\DLC", true);
99
+
100
+
string xliveDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"Microsoft\Xlive");
101
+
102
+
if (Directory.Exists(xliveDir + @"\Content"))
103
+
{
104
+
Directory.CreateDirectory(directory + @"\Content");
105
+
DirectoryInfo contentSourceInfo = new DirectoryInfo(xliveDir + @"\Content");
106
+
DirectoryInfo contentTargetInfo = new DirectoryInfo(directory + @"\Content");
107
+
UtilityFuncs.CopyFilesRecursively(contentSourceInfo, contentTargetInfo);
108
+
}
109
+
110
+
if (Directory.Exists(xliveDir + @"\DLC"))
111
+
{
112
+
Directory.CreateDirectory(directory + @"\DLC");
113
+
DirectoryInfo dlcSourceInfo = new DirectoryInfo(xliveDir + @"\DLC");
114
+
DirectoryInfo dlcTargetInfo = new DirectoryInfo(directory + @"\DLC");
115
+
UtilityFuncs.CopyFilesRecursively(dlcSourceInfo, dlcTargetInfo);
116
+
}
117
+
}
118
+
119
+
private void exportButton_Click(object sender, EventArgs e)
120
+
{
121
+
UseWaitCursor = true;
122
+
Application.DoEvents();
123
+
124
+
if (Directory.Exists("GfWL_Export"))
125
+
Directory.Delete("GfWL_Export", true);
126
+
127
+
Directory.CreateDirectory("GfWL_Export");
128
+
if (pcInfoCheckbox.Checked)
129
+
ExportPCInfo("GfWL_Export\\SavedPCInfo.xml");
130
+
if (productKeyCheckbox.Checked)
131
+
ExportProductKeys("GfWL_Export\\GfWL_ProductKeys.txt");
132
+
if (userProfileCheckbox.Checked)
133
+
CopyContent("GfWL_Export");
134
+
135
+
UseWaitCursor = false;
136
+
Application.DoEvents();
137
+
138
+
DialogResult dr =
139
+
MessageBox.Show("Export created in 'GfWL_Export' folder. Open this folder now?", "GfWL Utility Export",
140
+
MessageBoxButtons.YesNo, MessageBoxIcon.Information);
141
+
142
+
if (dr == DialogResult.Yes)
143
+
Process.Start("GfWL_Export");
144
+
145
+
Close();
146
+
}
147
+
}
148
+
}
+123
ExportForm.resx
+123
ExportForm.resx
···
1
+
<?xml version="1.0" encoding="utf-8"?>
2
+
<root>
3
+
<!--
4
+
Microsoft ResX Schema
5
+
6
+
Version 2.0
7
+
8
+
The primary goals of this format is to allow a simple XML format
9
+
that is mostly human readable. The generation and parsing of the
10
+
various data types are done through the TypeConverter classes
11
+
associated with the data types.
12
+
13
+
Example:
14
+
15
+
... ado.net/XML headers & schema ...
16
+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17
+
<resheader name="version">2.0</resheader>
18
+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24
+
</data>
25
+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
+
<comment>This is a comment</comment>
28
+
</data>
29
+
30
+
There are any number of "resheader" rows that contain simple
31
+
name/value pairs.
32
+
33
+
Each data row contains a name, and value. The row also contains a
34
+
type or mimetype. Type corresponds to a .NET class that support
35
+
text/value conversion through the TypeConverter architecture.
36
+
Classes that don't support this are serialized and stored with the
37
+
mimetype set.
38
+
39
+
The mimetype is used for serialized objects, and tells the
40
+
ResXResourceReader how to depersist the object. This is currently not
41
+
extensible. For a given mimetype the value must be set accordingly:
42
+
43
+
Note - application/x-microsoft.net.object.binary.base64 is the format
44
+
that the ResXResourceWriter will generate, however the reader can
45
+
read any of the formats listed below.
46
+
47
+
mimetype: application/x-microsoft.net.object.binary.base64
48
+
value : The object must be serialized with
49
+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
+
: and then encoded with base64 encoding.
51
+
52
+
mimetype: application/x-microsoft.net.object.soap.base64
53
+
value : The object must be serialized with
54
+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
+
: and then encoded with base64 encoding.
56
+
57
+
mimetype: application/x-microsoft.net.object.bytearray.base64
58
+
value : The object must be serialized into a byte array
59
+
: using a System.ComponentModel.TypeConverter
60
+
: and then encoded with base64 encoding.
61
+
-->
62
+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
+
<xsd:element name="root" msdata:IsDataSet="true">
65
+
<xsd:complexType>
66
+
<xsd:choice maxOccurs="unbounded">
67
+
<xsd:element name="metadata">
68
+
<xsd:complexType>
69
+
<xsd:sequence>
70
+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71
+
</xsd:sequence>
72
+
<xsd:attribute name="name" use="required" type="xsd:string" />
73
+
<xsd:attribute name="type" type="xsd:string" />
74
+
<xsd:attribute name="mimetype" type="xsd:string" />
75
+
<xsd:attribute ref="xml:space" />
76
+
</xsd:complexType>
77
+
</xsd:element>
78
+
<xsd:element name="assembly">
79
+
<xsd:complexType>
80
+
<xsd:attribute name="alias" type="xsd:string" />
81
+
<xsd:attribute name="name" type="xsd:string" />
82
+
</xsd:complexType>
83
+
</xsd:element>
84
+
<xsd:element name="data">
85
+
<xsd:complexType>
86
+
<xsd:sequence>
87
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
+
</xsd:sequence>
90
+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
+
<xsd:attribute ref="xml:space" />
94
+
</xsd:complexType>
95
+
</xsd:element>
96
+
<xsd:element name="resheader">
97
+
<xsd:complexType>
98
+
<xsd:sequence>
99
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
+
</xsd:sequence>
101
+
<xsd:attribute name="name" type="xsd:string" use="required" />
102
+
</xsd:complexType>
103
+
</xsd:element>
104
+
</xsd:choice>
105
+
</xsd:complexType>
106
+
</xsd:element>
107
+
</xsd:schema>
108
+
<resheader name="resmimetype">
109
+
<value>text/microsoft-resx</value>
110
+
</resheader>
111
+
<resheader name="version">
112
+
<value>2.0</value>
113
+
</resheader>
114
+
<resheader name="reader">
115
+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
+
</resheader>
117
+
<resheader name="writer">
118
+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
+
</resheader>
120
+
<metadata name="exportSaveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
121
+
<value>17, 17</value>
122
+
</metadata>
123
+
</root>
+194
ExportXMLClasses.cs
+194
ExportXMLClasses.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Linq;
4
+
using System.Text;
5
+
6
+
namespace GfWLUtility
7
+
{
8
+
9
+
// NOTE: Generated code may require at least .NET Framework 4.5 or .NET Core/Standard 2.0.
10
+
/// <remarks/>
11
+
[System.SerializableAttribute()]
12
+
[System.ComponentModel.DesignerCategoryAttribute("code")]
13
+
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
14
+
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
15
+
public partial class SavedPCInfo
16
+
{
17
+
18
+
private string pCIDField;
19
+
20
+
private SavedPCInfoTitle[] titlesField;
21
+
22
+
private string versionField;
23
+
24
+
private string createdByField;
25
+
26
+
private string createdAtField;
27
+
28
+
/// <remarks/>
29
+
public string PCID
30
+
{
31
+
get
32
+
{
33
+
return this.pCIDField;
34
+
}
35
+
set
36
+
{
37
+
this.pCIDField = value;
38
+
}
39
+
}
40
+
41
+
/// <remarks/>
42
+
[System.Xml.Serialization.XmlArrayItemAttribute("Title", IsNullable = false)]
43
+
public SavedPCInfoTitle[] Titles
44
+
{
45
+
get
46
+
{
47
+
return this.titlesField;
48
+
}
49
+
set
50
+
{
51
+
this.titlesField = value;
52
+
}
53
+
}
54
+
55
+
/// <remarks/>
56
+
[System.Xml.Serialization.XmlAttributeAttribute()]
57
+
public string Version
58
+
{
59
+
get
60
+
{
61
+
return this.versionField;
62
+
}
63
+
set
64
+
{
65
+
this.versionField = value;
66
+
}
67
+
}
68
+
69
+
/// <remarks/>
70
+
[System.Xml.Serialization.XmlAttributeAttribute()]
71
+
public string CreatedBy
72
+
{
73
+
get
74
+
{
75
+
return this.createdByField;
76
+
}
77
+
set
78
+
{
79
+
this.createdByField = value;
80
+
}
81
+
}
82
+
83
+
/// <remarks/>
84
+
[System.Xml.Serialization.XmlAttributeAttribute()]
85
+
public string CreatedAt
86
+
{
87
+
get
88
+
{
89
+
return this.createdAtField;
90
+
}
91
+
set
92
+
{
93
+
this.createdAtField = value;
94
+
}
95
+
}
96
+
}
97
+
98
+
/// <remarks/>
99
+
[System.SerializableAttribute()]
100
+
[System.ComponentModel.DesignerCategoryAttribute("code")]
101
+
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
102
+
public partial class SavedPCInfoTitle
103
+
{
104
+
105
+
private string keyField;
106
+
107
+
private SavedPCInfoTitleSector[] sectorField;
108
+
109
+
private string idField;
110
+
111
+
/// <remarks/>
112
+
public string Key
113
+
{
114
+
get
115
+
{
116
+
return this.keyField;
117
+
}
118
+
set
119
+
{
120
+
this.keyField = value;
121
+
}
122
+
}
123
+
124
+
/// <remarks/>
125
+
[System.Xml.Serialization.XmlElementAttribute("Sector")]
126
+
public SavedPCInfoTitleSector[] Sector
127
+
{
128
+
get
129
+
{
130
+
return this.sectorField;
131
+
}
132
+
set
133
+
{
134
+
this.sectorField = value;
135
+
}
136
+
}
137
+
138
+
/// <remarks/>
139
+
[System.Xml.Serialization.XmlAttributeAttribute()]
140
+
public string ID
141
+
{
142
+
get
143
+
{
144
+
return this.idField;
145
+
}
146
+
set
147
+
{
148
+
this.idField = value;
149
+
}
150
+
}
151
+
}
152
+
153
+
/// <remarks/>
154
+
[System.SerializableAttribute()]
155
+
[System.ComponentModel.DesignerCategoryAttribute("code")]
156
+
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
157
+
public partial class SavedPCInfoTitleSector
158
+
{
159
+
160
+
private string idField;
161
+
162
+
private string valueField;
163
+
164
+
/// <remarks/>
165
+
[System.Xml.Serialization.XmlAttributeAttribute()]
166
+
public string ID
167
+
{
168
+
get
169
+
{
170
+
return this.idField;
171
+
}
172
+
set
173
+
{
174
+
this.idField = value;
175
+
}
176
+
}
177
+
178
+
/// <remarks/>
179
+
[System.Xml.Serialization.XmlTextAttribute()]
180
+
public string Value
181
+
{
182
+
get
183
+
{
184
+
return this.valueField;
185
+
}
186
+
set
187
+
{
188
+
this.valueField = value;
189
+
}
190
+
}
191
+
}
192
+
193
+
194
+
}
+131
FileInformation.cs
+131
FileInformation.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Linq;
4
+
using System.Text;
5
+
6
+
namespace GfWLUtility
7
+
{
8
+
internal struct FileInformation
9
+
{
10
+
public string Filename;
11
+
public string[] AltFilenames;
12
+
public string[] DownloadURLs;
13
+
public int Size;
14
+
public byte[] Hash;
15
+
}
16
+
17
+
internal class StaticFileInformation
18
+
{
19
+
// tu10177600_35005f00.cab - the latest GfWL title update, contains XLiveUpdate.msi and wllogin_32/wllogin_64
20
+
public static FileInformation titleupdate_3_5_95_cab = new FileInformation()
21
+
{
22
+
Filename = "tu10177600_35005f00.cab",
23
+
AltFilenames = null,
24
+
DownloadURLs = new string[]
25
+
{
26
+
// Official Microsoft URL
27
+
"http://download.xbox.com/content/585207d1/tu10177600_35005f00.cab",
28
+
// Legacy Update provided URL
29
+
"http://content.legacyupdate.net/download.xbox.com/content/585207d1/tu10177600_35005f00.cab",
30
+
// Internet Archive archived URL
31
+
"http://web.archive.org/web/20191010213301id_/http://download.xbox.com/content/585207d1/tu10177600_35005f00.cab"
32
+
},
33
+
Size = 28021108,
34
+
Hash = new byte[0x14]
35
+
{
36
+
0x71, 0xc7, 0xc7, 0xa0, 0x42, 0x47, 0x8d, 0x51, 0xf2, 0x5c, 0x47, 0x65, 0xac, 0xe7, 0xd0, 0x80, 0x8a, 0x9e, 0xe8, 0x4c
37
+
}
38
+
};
39
+
40
+
// XLiveUpdate.msi - installs the XLive/GfWL redistributable used by applications
41
+
public static FileInformation xliveupdate_3_5_95_msi = new FileInformation()
42
+
{
43
+
Filename = "XLiveUpdate.msi",
44
+
AltFilenames = new string[] { "xliveredist.msi" },
45
+
DownloadURLs = null, // only found in tu10177600_35005f00
46
+
Size = 21594112,
47
+
Hash = new byte[0x14]
48
+
{
49
+
0xad, 0x92, 0x4d, 0x74, 0x39, 0x47, 0x07, 0x3f, 0xe8, 0x27, 0x42, 0xe8, 0xf5, 0x29, 0xa3, 0x7e, 0xae, 0x07, 0x66, 0x2a
50
+
}
51
+
};
52
+
53
+
// xliveredist.msi - a slightly older version of the xlive redistributable, latest available standalone
54
+
public static FileInformation xliveredist_3_5_92_msi = new FileInformation()
55
+
{
56
+
Filename = "xliveredist.msi",
57
+
AltFilenames = null,
58
+
DownloadURLs = new string[]
59
+
{
60
+
// Official Microsoft URL
61
+
"http://download.gfwl.xboxlive.com/content/gfwl-public/redists/production/xliveredist.msi",
62
+
// Legacy Update provided URL
63
+
"http://content.legacyupdate.net/download.gfwl.xboxlive.com/content/gfwl-public/redists/production/xliveredist.msi",
64
+
// Internet Archive archived URL
65
+
"http://web.archive.org/web/20141203142251id_/http://download.gfwl.xboxlive.com/content/gfwl-public/redists/production/xliveredist.msi"
66
+
},
67
+
Size = 21598208,
68
+
Hash = new byte[0x14]
69
+
{
70
+
0xfc, 0x04, 0xd5, 0xc4, 0x95, 0x6f, 0xbf, 0x21, 0x36, 0xbd, 0xd4, 0xf2, 0xab, 0x15, 0x4e, 0xfb, 0xf5, 0xf6, 0xec, 0xa9
71
+
}
72
+
};
73
+
74
+
// gfwlclient.msi - installs the Games for Windows Marketplace "dashboard" application
75
+
public static FileInformation gfwlclient_msi = new FileInformation()
76
+
{
77
+
Filename = "gfwlclient.msi",
78
+
AltFilenames = null,
79
+
DownloadURLs = new string[]
80
+
{
81
+
// Official Microsoft URL
82
+
"http://download.gfwl.xboxlive.com/content/gfwl-public/redists/production/gfwlclient.msi",
83
+
// Legacy Update provided URL
84
+
"http://content.legacyupdate.net/download.gfwl.xboxlive.com/content/gfwl-public/redists/production/gfwlclient.msi",
85
+
// Internet Archive archived URL
86
+
"http://web.archive.org/web/20141203142248id_/http://download.gfwl.xboxlive.com/content/gfwl-public/redists/production/gfwlclient.msi"
87
+
},
88
+
Size = 3375104,
89
+
Hash = new byte[0x14]
90
+
{
91
+
0xdf, 0x6b, 0xe4, 0x41, 0xde, 0xed, 0x52, 0x54, 0x3c, 0xc1, 0xe8, 0xc7, 0x08, 0xa7, 0x2c, 0xa2, 0xca, 0x6b, 0xee, 0x92
92
+
}
93
+
};
94
+
95
+
// wllogin_32.msi - x86 Windows Live Identity Client Runtime Library
96
+
// !! DANGER: ONLY HAS 1 MIRROR !!
97
+
public static FileInformation wllogin_32_msi = new FileInformation()
98
+
{
99
+
Filename = "wllogin_32.msi",
100
+
AltFilenames = null,
101
+
DownloadURLs = new string[]
102
+
{
103
+
// Internet Archive archived URL
104
+
"http://web.archive.org/web/20200801000000id_/download.microsoft.com/download/7/4/0/740357D6-EFA8-43C1-A7DF-A8EEDD104638/wllogin_32.msi"
105
+
},
106
+
Size = 4649472,
107
+
Hash = new byte[0x14]
108
+
{
109
+
0xf4, 0x77, 0xf8, 0xab, 0xc4, 0x51, 0x95, 0x32, 0xef, 0x29, 0x21, 0xb1, 0x34, 0x3a, 0x06, 0xf2, 0xac, 0x54, 0x6c, 0x2c
110
+
}
111
+
};
112
+
113
+
// wllogin_64.msi - x64 Windows Live Identity Client Runtime Library. not used by GfWL but completeness
114
+
// !! DANGER: ONLY HAS 1 MIRROR !!
115
+
public static FileInformation wllogin_64_msi = new FileInformation()
116
+
{
117
+
Filename = "wllogin_64.msi",
118
+
AltFilenames = null,
119
+
DownloadURLs = new string[]
120
+
{
121
+
// Internet Archive archived URL
122
+
"http://web.archive.org/web/20200801000000id_/download.microsoft.com/download/7/4/0/740357D6-EFA8-43C1-A7DF-A8EEDD104638/wllogin_64.msi"
123
+
},
124
+
Size = 6575616,
125
+
Hash = new byte[0x14]
126
+
{
127
+
0x10, 0x78, 0xd3, 0x2c, 0xae, 0x64, 0xab, 0x1c, 0x5b, 0xce, 0x52, 0x63, 0x7e, 0xfa, 0xcb, 0xde, 0x70, 0xfa, 0x26, 0x70
128
+
}
129
+
};
130
+
}
131
+
}
+57
GfWLRegistry.cs
+57
GfWLRegistry.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Linq;
4
+
using System.Text;
5
+
using Microsoft.Win32;
6
+
7
+
namespace GfWLUtility
8
+
{
9
+
internal class GfWLRegistry
10
+
{
11
+
private static string xlive_registry_key = "software\\classes\\software\\microsoft\\xlive";
12
+
13
+
// Returns the current PCID in hex string format, or N/A if not found.
14
+
public static string GetPCID()
15
+
{
16
+
RegistryKey gfwlKey = Registry.CurrentUser.OpenSubKey(xlive_registry_key);
17
+
if (gfwlKey == null) return "N/A";
18
+
object pcidValue = gfwlKey.GetValue("PCID");
19
+
if (pcidValue != null && gfwlKey.GetValueKind("PCID") == RegistryValueKind.QWord)
20
+
{
21
+
byte[] pcidBytes = BitConverter.GetBytes((long)pcidValue);
22
+
return BitConverter.ToString(pcidBytes).Replace("-", "");
23
+
} else return "N/A";
24
+
}
25
+
26
+
// Returns the last used GfWL version from the registry, or N/A if not found.
27
+
public static string GetVersion()
28
+
{
29
+
30
+
RegistryKey gfwlKey = Registry.CurrentUser.OpenSubKey(xlive_registry_key);
31
+
if (gfwlKey == null) return "N/A";
32
+
object verValue = gfwlKey.GetValue("Version");
33
+
if (verValue != null && gfwlKey.GetValueKind("Version") == RegistryValueKind.DWord)
34
+
{
35
+
int verInt = (int)verValue;
36
+
int major = (int)(verInt >> 28 & 0xF);
37
+
int minor = (int)(verInt >> 24 & 0xF);
38
+
int build = (int)(verInt >> 8 & 0xFFFF);
39
+
int qfe = (int)(verInt & 0xFF);
40
+
return $"{major}.{minor}.{build:D4}.{qfe}";
41
+
}
42
+
else return "N/A";
43
+
}
44
+
45
+
// Returns the path that the GfWL "dash"/marketplace client is installed to.
46
+
public static string GetDashPath()
47
+
{
48
+
RegistryKey gfwlKey = Registry.LocalMachine.OpenSubKey(xlive_registry_key);
49
+
if (gfwlKey == null) return null;
50
+
object dashDirValue = gfwlKey.GetValue("DashDir");
51
+
if (dashDirValue != null && gfwlKey.GetValueKind("DashDir") == RegistryValueKind.String)
52
+
return (string)dashDirValue;
53
+
else
54
+
return null;
55
+
}
56
+
}
57
+
}
+142
GfWLUtility.csproj
+142
GfWLUtility.csproj
···
1
+
<?xml version="1.0" encoding="utf-8"?>
2
+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4
+
<PropertyGroup>
5
+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6
+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7
+
<ProjectGuid>{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}</ProjectGuid>
8
+
<OutputType>WinExe</OutputType>
9
+
<RootNamespace>GfWLUtility</RootNamespace>
10
+
<AssemblyName>GfWLUtility</AssemblyName>
11
+
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
12
+
<FileAlignment>512</FileAlignment>
13
+
<Deterministic>true</Deterministic>
14
+
</PropertyGroup>
15
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
16
+
<PlatformTarget>AnyCPU</PlatformTarget>
17
+
<DebugSymbols>true</DebugSymbols>
18
+
<DebugType>full</DebugType>
19
+
<Optimize>false</Optimize>
20
+
<OutputPath>bin\Debug\</OutputPath>
21
+
<DefineConstants>DEBUG;TRACE</DefineConstants>
22
+
<ErrorReport>prompt</ErrorReport>
23
+
<WarningLevel>4</WarningLevel>
24
+
</PropertyGroup>
25
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
26
+
<PlatformTarget>AnyCPU</PlatformTarget>
27
+
<DebugType>pdbonly</DebugType>
28
+
<Optimize>true</Optimize>
29
+
<OutputPath>bin\Release\</OutputPath>
30
+
<DefineConstants>TRACE</DefineConstants>
31
+
<ErrorReport>prompt</ErrorReport>
32
+
<WarningLevel>4</WarningLevel>
33
+
</PropertyGroup>
34
+
<PropertyGroup>
35
+
<ApplicationIcon>GfWLUtilityLogo.ico</ApplicationIcon>
36
+
</PropertyGroup>
37
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
38
+
<DebugSymbols>true</DebugSymbols>
39
+
<OutputPath>bin\x86\Debug\</OutputPath>
40
+
<DefineConstants>DEBUG;TRACE</DefineConstants>
41
+
<DebugType>full</DebugType>
42
+
<PlatformTarget>x86</PlatformTarget>
43
+
<LangVersion>7.3</LangVersion>
44
+
<ErrorReport>prompt</ErrorReport>
45
+
</PropertyGroup>
46
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
47
+
<OutputPath>bin\x86\Release\</OutputPath>
48
+
<DefineConstants>TRACE</DefineConstants>
49
+
<Optimize>true</Optimize>
50
+
<DebugType>pdbonly</DebugType>
51
+
<PlatformTarget>x86</PlatformTarget>
52
+
<LangVersion>7.3</LangVersion>
53
+
<ErrorReport>prompt</ErrorReport>
54
+
</PropertyGroup>
55
+
<PropertyGroup>
56
+
<ApplicationManifest>app.manifest</ApplicationManifest>
57
+
</PropertyGroup>
58
+
<ItemGroup>
59
+
<Reference Include="System" />
60
+
<Reference Include="System.Core" />
61
+
<Reference Include="System.Security" />
62
+
<Reference Include="System.Xml.Linq" />
63
+
<Reference Include="System.Data.DataSetExtensions" />
64
+
<Reference Include="System.Data" />
65
+
<Reference Include="System.Deployment" />
66
+
<Reference Include="System.Drawing" />
67
+
<Reference Include="System.Windows.Forms" />
68
+
<Reference Include="System.Xml" />
69
+
</ItemGroup>
70
+
<ItemGroup>
71
+
<Compile Include="DomainBlock.cs" />
72
+
<Compile Include="DownloadForm.cs">
73
+
<SubType>Form</SubType>
74
+
</Compile>
75
+
<Compile Include="DownloadForm.Designer.cs">
76
+
<DependentUpon>DownloadForm.cs</DependentUpon>
77
+
</Compile>
78
+
<Compile Include="ElevatedButton.cs">
79
+
<SubType>Component</SubType>
80
+
</Compile>
81
+
<Compile Include="ExportForm.cs">
82
+
<SubType>Form</SubType>
83
+
</Compile>
84
+
<Compile Include="ExportForm.Designer.cs">
85
+
<DependentUpon>ExportForm.cs</DependentUpon>
86
+
</Compile>
87
+
<Compile Include="ExportXMLClasses.cs" />
88
+
<Compile Include="FileInformation.cs" />
89
+
<Compile Include="GfWLRegistry.cs" />
90
+
<Compile Include="MainWindow.cs">
91
+
<SubType>Form</SubType>
92
+
</Compile>
93
+
<Compile Include="MainWindow.Designer.cs">
94
+
<DependentUpon>MainWindow.cs</DependentUpon>
95
+
</Compile>
96
+
<Compile Include="Program.cs" />
97
+
<Compile Include="Properties\AssemblyInfo.cs" />
98
+
<Compile Include="TitleManager.cs" />
99
+
<Compile Include="UserManager.cs" />
100
+
<Compile Include="UtilityFuncs.cs" />
101
+
<EmbeddedResource Include="DownloadForm.resx">
102
+
<DependentUpon>DownloadForm.cs</DependentUpon>
103
+
</EmbeddedResource>
104
+
<EmbeddedResource Include="ExportForm.resx">
105
+
<DependentUpon>ExportForm.cs</DependentUpon>
106
+
</EmbeddedResource>
107
+
<EmbeddedResource Include="MainWindow.resx">
108
+
<DependentUpon>MainWindow.cs</DependentUpon>
109
+
</EmbeddedResource>
110
+
<EmbeddedResource Include="Properties\Resources.resx">
111
+
<Generator>ResXFileCodeGenerator</Generator>
112
+
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
113
+
<SubType>Designer</SubType>
114
+
</EmbeddedResource>
115
+
<Compile Include="Properties\Resources.Designer.cs">
116
+
<AutoGen>True</AutoGen>
117
+
<DependentUpon>Resources.resx</DependentUpon>
118
+
<DesignTime>True</DesignTime>
119
+
</Compile>
120
+
<None Include="app.manifest" />
121
+
<None Include="Properties\Settings.settings">
122
+
<Generator>SettingsSingleFileGenerator</Generator>
123
+
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
124
+
</None>
125
+
<Compile Include="Properties\Settings.Designer.cs">
126
+
<AutoGen>True</AutoGen>
127
+
<DependentUpon>Settings.settings</DependentUpon>
128
+
<DesignTimeSharedInput>True</DesignTimeSharedInput>
129
+
</Compile>
130
+
</ItemGroup>
131
+
<ItemGroup>
132
+
<None Include="Resources\GfWLUtilityCheck.png" />
133
+
<None Include="Resources\WLIDUnknown.png" />
134
+
<None Include="Resources\WLIDOld.png" />
135
+
<None Include="Resources\GfWLUtilityUnknown.png" />
136
+
<None Include="Resources\GfWLUtilityOld.png" />
137
+
</ItemGroup>
138
+
<ItemGroup>
139
+
<Content Include="GfWLUtilityLogo.ico" />
140
+
</ItemGroup>
141
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
142
+
</Project>
+31
GfWLUtility.sln
+31
GfWLUtility.sln
···
1
+
2
+
Microsoft Visual Studio Solution File, Format Version 12.00
3
+
# Visual Studio Version 17
4
+
VisualStudioVersion = 17.8.34316.72
5
+
MinimumVisualStudioVersion = 10.0.40219.1
6
+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GfWLUtility", "GfWLUtility.csproj", "{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}"
7
+
EndProject
8
+
Global
9
+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
+
Debug|Any CPU = Debug|Any CPU
11
+
Debug|x86 = Debug|x86
12
+
Release|Any CPU = Release|Any CPU
13
+
Release|x86 = Release|x86
14
+
EndGlobalSection
15
+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Debug|Any CPU.Build.0 = Debug|Any CPU
18
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Debug|x86.ActiveCfg = Debug|x86
19
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Debug|x86.Build.0 = Debug|x86
20
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Release|Any CPU.ActiveCfg = Release|Any CPU
21
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Release|Any CPU.Build.0 = Release|Any CPU
22
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Release|x86.ActiveCfg = Release|x86
23
+
{3DD60089-1D00-4DC7-8A88-A31CA30FBD88}.Release|x86.Build.0 = Release|x86
24
+
EndGlobalSection
25
+
GlobalSection(SolutionProperties) = preSolution
26
+
HideSolutionNode = FALSE
27
+
EndGlobalSection
28
+
GlobalSection(ExtensibilityGlobals) = postSolution
29
+
SolutionGuid = {54545973-5FC8-46EC-94DC-AF2E61F9B9C4}
30
+
EndGlobalSection
31
+
EndGlobal
GfWLUtilityLogo.ico
GfWLUtilityLogo.ico
This is a binary file and will not be displayed.
+852
MainWindow.Designer.cs
+852
MainWindow.Designer.cs
···
1
+
namespace GfWLUtility
2
+
{
3
+
partial class MainWindow
4
+
{
5
+
/// <summary>
6
+
/// Required designer variable.
7
+
/// </summary>
8
+
private System.ComponentModel.IContainer components = null;
9
+
10
+
/// <summary>
11
+
/// Clean up any resources being used.
12
+
/// </summary>
13
+
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14
+
protected override void Dispose(bool disposing)
15
+
{
16
+
if (disposing && (components != null))
17
+
{
18
+
components.Dispose();
19
+
}
20
+
base.Dispose(disposing);
21
+
}
22
+
23
+
#region Windows Form Designer generated code
24
+
25
+
/// <summary>
26
+
/// Required method for Designer support - do not modify
27
+
/// the contents of this method with the code editor.
28
+
/// </summary>
29
+
private void InitializeComponent()
30
+
{
31
+
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
32
+
this.mainTabControl = new System.Windows.Forms.TabControl();
33
+
this.runtimeTab = new System.Windows.Forms.TabPage();
34
+
this.systemInfoGroup = new System.Windows.Forms.GroupBox();
35
+
this.showPCIDCheckbox = new System.Windows.Forms.CheckBox();
36
+
this.versionText = new System.Windows.Forms.TextBox();
37
+
this.versionLabel = new System.Windows.Forms.Label();
38
+
this.pcidText = new System.Windows.Forms.TextBox();
39
+
this.pcidLabel = new System.Windows.Forms.Label();
40
+
this.marketplaceGroup = new System.Windows.Forms.GroupBox();
41
+
this.manageMarketplaceButton = new System.Windows.Forms.Button();
42
+
this.marketplaceLogoPicture = new System.Windows.Forms.PictureBox();
43
+
this.marketplaceInstallLabel = new System.Windows.Forms.Label();
44
+
this.installMarketplaceButton = new GfWLUtility.ElevatedButton();
45
+
this.marketplaceVersionLabel = new System.Windows.Forms.Label();
46
+
this.wlidGroup = new System.Windows.Forms.GroupBox();
47
+
this.wlidLogoPicture = new System.Windows.Forms.PictureBox();
48
+
this.wlidInstallLabel = new System.Windows.Forms.Label();
49
+
this.installWLIDButton = new GfWLUtility.ElevatedButton();
50
+
this.wlidInfoLabel = new System.Windows.Forms.Label();
51
+
this.runtimeGroup = new System.Windows.Forms.GroupBox();
52
+
this.manageRuntimeButton = new System.Windows.Forms.Button();
53
+
this.gfwlLogoPicture = new System.Windows.Forms.PictureBox();
54
+
this.runtimeInstallLabel = new System.Windows.Forms.Label();
55
+
this.installRuntimeButton = new GfWLUtility.ElevatedButton();
56
+
this.runtimeVersionLabel = new System.Windows.Forms.Label();
57
+
this.accountsTab = new System.Windows.Forms.TabPage();
58
+
this.onlineXuidLabel = new System.Windows.Forms.Label();
59
+
this.onlineXuidBox = new System.Windows.Forms.TextBox();
60
+
this.accountGamerpic = new System.Windows.Forms.PictureBox();
61
+
this.accountLiveCheck = new System.Windows.Forms.CheckBox();
62
+
this.accountXuidBox = new System.Windows.Forms.TextBox();
63
+
this.accountNameBox = new System.Windows.Forms.TextBox();
64
+
this.accountXuidLabel = new System.Windows.Forms.Label();
65
+
this.accountNameLabel = new System.Windows.Forms.Label();
66
+
this.accountsListBox = new System.Windows.Forms.ListBox();
67
+
this.gamesTab = new System.Windows.Forms.TabPage();
68
+
this.titleIDFormattedLabel = new System.Windows.Forms.Label();
69
+
this.titleIconPicture = new System.Windows.Forms.PictureBox();
70
+
this.titleClearConfigLink = new System.Windows.Forms.LinkLabel();
71
+
this.titleShowKeyCheck = new System.Windows.Forms.CheckBox();
72
+
this.titleKeyLabel = new System.Windows.Forms.Label();
73
+
this.titleProductKeyBox = new System.Windows.Forms.TextBox();
74
+
this.titleIDBox = new System.Windows.Forms.TextBox();
75
+
this.titleNameBox = new System.Windows.Forms.TextBox();
76
+
this.titleIDLabel = new System.Windows.Forms.Label();
77
+
this.titleNameLabel = new System.Windows.Forms.Label();
78
+
this.gameListBox = new System.Windows.Forms.ListBox();
79
+
this.utilitiesTab = new System.Windows.Forms.TabPage();
80
+
this.connBlockGroup = new System.Windows.Forms.GroupBox();
81
+
this.blockLiveInfoLabel = new System.Windows.Forms.Label();
82
+
this.blockServicesInfoLabel = new System.Windows.Forms.Label();
83
+
this.blockServicesButton = new GfWLUtility.ElevatedButton();
84
+
this.blockLiveButton = new GfWLUtility.ElevatedButton();
85
+
this.dataExportGroup = new System.Windows.Forms.GroupBox();
86
+
this.dataExportInfoLabel = new System.Windows.Forms.Label();
87
+
this.dataImportButton = new System.Windows.Forms.Button();
88
+
this.dataExportButton = new System.Windows.Forms.Button();
89
+
this.label1 = new System.Windows.Forms.Label();
90
+
this.githubLinkLabel = new System.Windows.Forms.LinkLabel();
91
+
this.appVersionLabel = new System.Windows.Forms.Label();
92
+
this.mainTabControl.SuspendLayout();
93
+
this.runtimeTab.SuspendLayout();
94
+
this.systemInfoGroup.SuspendLayout();
95
+
this.marketplaceGroup.SuspendLayout();
96
+
((System.ComponentModel.ISupportInitialize)(this.marketplaceLogoPicture)).BeginInit();
97
+
this.wlidGroup.SuspendLayout();
98
+
((System.ComponentModel.ISupportInitialize)(this.wlidLogoPicture)).BeginInit();
99
+
this.runtimeGroup.SuspendLayout();
100
+
((System.ComponentModel.ISupportInitialize)(this.gfwlLogoPicture)).BeginInit();
101
+
this.accountsTab.SuspendLayout();
102
+
((System.ComponentModel.ISupportInitialize)(this.accountGamerpic)).BeginInit();
103
+
this.gamesTab.SuspendLayout();
104
+
((System.ComponentModel.ISupportInitialize)(this.titleIconPicture)).BeginInit();
105
+
this.utilitiesTab.SuspendLayout();
106
+
this.connBlockGroup.SuspendLayout();
107
+
this.dataExportGroup.SuspendLayout();
108
+
this.SuspendLayout();
109
+
//
110
+
// mainTabControl
111
+
//
112
+
this.mainTabControl.Controls.Add(this.runtimeTab);
113
+
this.mainTabControl.Controls.Add(this.accountsTab);
114
+
this.mainTabControl.Controls.Add(this.gamesTab);
115
+
this.mainTabControl.Controls.Add(this.utilitiesTab);
116
+
this.mainTabControl.Location = new System.Drawing.Point(12, 12);
117
+
this.mainTabControl.Name = "mainTabControl";
118
+
this.mainTabControl.SelectedIndex = 0;
119
+
this.mainTabControl.Size = new System.Drawing.Size(454, 250);
120
+
this.mainTabControl.TabIndex = 0;
121
+
//
122
+
// runtimeTab
123
+
//
124
+
this.runtimeTab.Controls.Add(this.systemInfoGroup);
125
+
this.runtimeTab.Controls.Add(this.marketplaceGroup);
126
+
this.runtimeTab.Controls.Add(this.wlidGroup);
127
+
this.runtimeTab.Controls.Add(this.runtimeGroup);
128
+
this.runtimeTab.Location = new System.Drawing.Point(4, 22);
129
+
this.runtimeTab.Name = "runtimeTab";
130
+
this.runtimeTab.Padding = new System.Windows.Forms.Padding(3);
131
+
this.runtimeTab.Size = new System.Drawing.Size(446, 224);
132
+
this.runtimeTab.TabIndex = 0;
133
+
this.runtimeTab.Text = "Runtime";
134
+
this.runtimeTab.UseVisualStyleBackColor = true;
135
+
//
136
+
// systemInfoGroup
137
+
//
138
+
this.systemInfoGroup.Controls.Add(this.showPCIDCheckbox);
139
+
this.systemInfoGroup.Controls.Add(this.versionText);
140
+
this.systemInfoGroup.Controls.Add(this.versionLabel);
141
+
this.systemInfoGroup.Controls.Add(this.pcidText);
142
+
this.systemInfoGroup.Controls.Add(this.pcidLabel);
143
+
this.systemInfoGroup.Location = new System.Drawing.Point(251, 115);
144
+
this.systemInfoGroup.Name = "systemInfoGroup";
145
+
this.systemInfoGroup.Size = new System.Drawing.Size(189, 103);
146
+
this.systemInfoGroup.TabIndex = 13;
147
+
this.systemInfoGroup.TabStop = false;
148
+
this.systemInfoGroup.Text = "System Info";
149
+
//
150
+
// showPCIDCheckbox
151
+
//
152
+
this.showPCIDCheckbox.AutoSize = true;
153
+
this.showPCIDCheckbox.Location = new System.Drawing.Point(9, 55);
154
+
this.showPCIDCheckbox.Name = "showPCIDCheckbox";
155
+
this.showPCIDCheckbox.Size = new System.Drawing.Size(97, 17);
156
+
this.showPCIDCheckbox.TabIndex = 6;
157
+
this.showPCIDCheckbox.Text = "Show full PCID";
158
+
this.showPCIDCheckbox.UseVisualStyleBackColor = true;
159
+
this.showPCIDCheckbox.CheckedChanged += new System.EventHandler(this.showPCIDCheckbox_CheckedChanged);
160
+
//
161
+
// versionText
162
+
//
163
+
this.versionText.BorderStyle = System.Windows.Forms.BorderStyle.None;
164
+
this.versionText.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
165
+
this.versionText.Location = new System.Drawing.Point(57, 36);
166
+
this.versionText.Name = "versionText";
167
+
this.versionText.ReadOnly = true;
168
+
this.versionText.Size = new System.Drawing.Size(126, 13);
169
+
this.versionText.TabIndex = 5;
170
+
this.versionText.Text = "2.0.0000.0";
171
+
//
172
+
// versionLabel
173
+
//
174
+
this.versionLabel.AutoSize = true;
175
+
this.versionLabel.Location = new System.Drawing.Point(6, 35);
176
+
this.versionLabel.Name = "versionLabel";
177
+
this.versionLabel.Size = new System.Drawing.Size(45, 13);
178
+
this.versionLabel.TabIndex = 4;
179
+
this.versionLabel.Text = "Version:";
180
+
//
181
+
// pcidText
182
+
//
183
+
this.pcidText.BorderStyle = System.Windows.Forms.BorderStyle.None;
184
+
this.pcidText.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
185
+
this.pcidText.Location = new System.Drawing.Point(57, 19);
186
+
this.pcidText.Name = "pcidText";
187
+
this.pcidText.ReadOnly = true;
188
+
this.pcidText.Size = new System.Drawing.Size(126, 13);
189
+
this.pcidText.TabIndex = 3;
190
+
this.pcidText.Text = "AABBCCDD00112233";
191
+
//
192
+
// pcidLabel
193
+
//
194
+
this.pcidLabel.AutoSize = true;
195
+
this.pcidLabel.Location = new System.Drawing.Point(6, 19);
196
+
this.pcidLabel.Name = "pcidLabel";
197
+
this.pcidLabel.Size = new System.Drawing.Size(35, 13);
198
+
this.pcidLabel.TabIndex = 2;
199
+
this.pcidLabel.Text = "PCID:";
200
+
//
201
+
// marketplaceGroup
202
+
//
203
+
this.marketplaceGroup.Controls.Add(this.manageMarketplaceButton);
204
+
this.marketplaceGroup.Controls.Add(this.marketplaceLogoPicture);
205
+
this.marketplaceGroup.Controls.Add(this.marketplaceInstallLabel);
206
+
this.marketplaceGroup.Controls.Add(this.installMarketplaceButton);
207
+
this.marketplaceGroup.Controls.Add(this.marketplaceVersionLabel);
208
+
this.marketplaceGroup.Location = new System.Drawing.Point(6, 115);
209
+
this.marketplaceGroup.Name = "marketplaceGroup";
210
+
this.marketplaceGroup.Size = new System.Drawing.Size(239, 103);
211
+
this.marketplaceGroup.TabIndex = 12;
212
+
this.marketplaceGroup.TabStop = false;
213
+
this.marketplaceGroup.Text = "Games for Windows Marketplace";
214
+
//
215
+
// manageMarketplaceButton
216
+
//
217
+
this.manageMarketplaceButton.Location = new System.Drawing.Point(169, 73);
218
+
this.manageMarketplaceButton.Name = "manageMarketplaceButton";
219
+
this.manageMarketplaceButton.Size = new System.Drawing.Size(64, 23);
220
+
this.manageMarketplaceButton.TabIndex = 11;
221
+
this.manageMarketplaceButton.Text = "Manage...";
222
+
this.manageMarketplaceButton.UseVisualStyleBackColor = true;
223
+
this.manageMarketplaceButton.Visible = false;
224
+
//
225
+
// marketplaceLogoPicture
226
+
//
227
+
this.marketplaceLogoPicture.Image = global::GfWLUtility.Properties.Resources.GfWLUnknown;
228
+
this.marketplaceLogoPicture.Location = new System.Drawing.Point(6, 19);
229
+
this.marketplaceLogoPicture.Name = "marketplaceLogoPicture";
230
+
this.marketplaceLogoPicture.Size = new System.Drawing.Size(48, 48);
231
+
this.marketplaceLogoPicture.TabIndex = 3;
232
+
this.marketplaceLogoPicture.TabStop = false;
233
+
//
234
+
// marketplaceInstallLabel
235
+
//
236
+
this.marketplaceInstallLabel.AutoSize = true;
237
+
this.marketplaceInstallLabel.Location = new System.Drawing.Point(60, 19);
238
+
this.marketplaceInstallLabel.Name = "marketplaceInstallLabel";
239
+
this.marketplaceInstallLabel.Size = new System.Drawing.Size(165, 13);
240
+
this.marketplaceInstallLabel.TabIndex = 0;
241
+
this.marketplaceInstallLabel.Text = "Marketplace installed placeholder";
242
+
//
243
+
// installMarketplaceButton
244
+
//
245
+
this.installMarketplaceButton.FlatStyle = System.Windows.Forms.FlatStyle.System;
246
+
this.installMarketplaceButton.Location = new System.Drawing.Point(6, 73);
247
+
this.installMarketplaceButton.Name = "installMarketplaceButton";
248
+
this.installMarketplaceButton.Size = new System.Drawing.Size(227, 23);
249
+
this.installMarketplaceButton.TabIndex = 8;
250
+
this.installMarketplaceButton.Text = "Install marketplace";
251
+
this.installMarketplaceButton.UseVisualStyleBackColor = true;
252
+
this.installMarketplaceButton.Click += new System.EventHandler(this.installMarketplaceButton_Click);
253
+
//
254
+
// marketplaceVersionLabel
255
+
//
256
+
this.marketplaceVersionLabel.AutoSize = true;
257
+
this.marketplaceVersionLabel.Location = new System.Drawing.Point(60, 37);
258
+
this.marketplaceVersionLabel.Name = "marketplaceVersionLabel";
259
+
this.marketplaceVersionLabel.Size = new System.Drawing.Size(161, 13);
260
+
this.marketplaceVersionLabel.TabIndex = 1;
261
+
this.marketplaceVersionLabel.Text = "Marketplace version placeholder";
262
+
//
263
+
// wlidGroup
264
+
//
265
+
this.wlidGroup.Controls.Add(this.wlidLogoPicture);
266
+
this.wlidGroup.Controls.Add(this.wlidInstallLabel);
267
+
this.wlidGroup.Controls.Add(this.installWLIDButton);
268
+
this.wlidGroup.Controls.Add(this.wlidInfoLabel);
269
+
this.wlidGroup.Location = new System.Drawing.Point(251, 6);
270
+
this.wlidGroup.Name = "wlidGroup";
271
+
this.wlidGroup.Size = new System.Drawing.Size(189, 103);
272
+
this.wlidGroup.TabIndex = 11;
273
+
this.wlidGroup.TabStop = false;
274
+
this.wlidGroup.Text = "Windows Live ID assistant";
275
+
//
276
+
// wlidLogoPicture
277
+
//
278
+
this.wlidLogoPicture.Image = global::GfWLUtility.Properties.Resources.WLIDUnknown;
279
+
this.wlidLogoPicture.Location = new System.Drawing.Point(6, 19);
280
+
this.wlidLogoPicture.Name = "wlidLogoPicture";
281
+
this.wlidLogoPicture.Size = new System.Drawing.Size(48, 48);
282
+
this.wlidLogoPicture.TabIndex = 6;
283
+
this.wlidLogoPicture.TabStop = false;
284
+
//
285
+
// wlidInstallLabel
286
+
//
287
+
this.wlidInstallLabel.AutoSize = true;
288
+
this.wlidInstallLabel.Location = new System.Drawing.Point(60, 19);
289
+
this.wlidInstallLabel.Name = "wlidInstallLabel";
290
+
this.wlidInstallLabel.Size = new System.Drawing.Size(134, 13);
291
+
this.wlidInstallLabel.TabIndex = 5;
292
+
this.wlidInstallLabel.Text = "WLID installed placeholder";
293
+
//
294
+
// installWLIDButton
295
+
//
296
+
this.installWLIDButton.FlatStyle = System.Windows.Forms.FlatStyle.System;
297
+
this.installWLIDButton.Location = new System.Drawing.Point(6, 73);
298
+
this.installWLIDButton.Name = "installWLIDButton";
299
+
this.installWLIDButton.Size = new System.Drawing.Size(177, 23);
300
+
this.installWLIDButton.TabIndex = 9;
301
+
this.installWLIDButton.Text = "Install sign-in assistant";
302
+
this.installWLIDButton.UseVisualStyleBackColor = true;
303
+
this.installWLIDButton.Click += new System.EventHandler(this.installWLIDButton_Click);
304
+
//
305
+
// wlidInfoLabel
306
+
//
307
+
this.wlidInfoLabel.AutoSize = true;
308
+
this.wlidInfoLabel.Location = new System.Drawing.Point(60, 37);
309
+
this.wlidInfoLabel.Name = "wlidInfoLabel";
310
+
this.wlidInfoLabel.Size = new System.Drawing.Size(113, 13);
311
+
this.wlidInfoLabel.TabIndex = 7;
312
+
this.wlidInfoLabel.Text = "WLID info placeholder";
313
+
//
314
+
// runtimeGroup
315
+
//
316
+
this.runtimeGroup.Controls.Add(this.manageRuntimeButton);
317
+
this.runtimeGroup.Controls.Add(this.gfwlLogoPicture);
318
+
this.runtimeGroup.Controls.Add(this.runtimeInstallLabel);
319
+
this.runtimeGroup.Controls.Add(this.installRuntimeButton);
320
+
this.runtimeGroup.Controls.Add(this.runtimeVersionLabel);
321
+
this.runtimeGroup.Location = new System.Drawing.Point(6, 6);
322
+
this.runtimeGroup.Name = "runtimeGroup";
323
+
this.runtimeGroup.Size = new System.Drawing.Size(239, 103);
324
+
this.runtimeGroup.TabIndex = 10;
325
+
this.runtimeGroup.TabStop = false;
326
+
this.runtimeGroup.Text = "Games for Windows - LIVE Runtime";
327
+
//
328
+
// manageRuntimeButton
329
+
//
330
+
this.manageRuntimeButton.Location = new System.Drawing.Point(169, 73);
331
+
this.manageRuntimeButton.Name = "manageRuntimeButton";
332
+
this.manageRuntimeButton.Size = new System.Drawing.Size(64, 23);
333
+
this.manageRuntimeButton.TabIndex = 11;
334
+
this.manageRuntimeButton.Text = "Manage...";
335
+
this.manageRuntimeButton.UseVisualStyleBackColor = true;
336
+
this.manageRuntimeButton.Visible = false;
337
+
//
338
+
// gfwlLogoPicture
339
+
//
340
+
this.gfwlLogoPicture.Image = global::GfWLUtility.Properties.Resources.GfWLUnknown;
341
+
this.gfwlLogoPicture.Location = new System.Drawing.Point(6, 19);
342
+
this.gfwlLogoPicture.Name = "gfwlLogoPicture";
343
+
this.gfwlLogoPicture.Size = new System.Drawing.Size(48, 48);
344
+
this.gfwlLogoPicture.TabIndex = 3;
345
+
this.gfwlLogoPicture.TabStop = false;
346
+
//
347
+
// runtimeInstallLabel
348
+
//
349
+
this.runtimeInstallLabel.AutoSize = true;
350
+
this.runtimeInstallLabel.Location = new System.Drawing.Point(60, 19);
351
+
this.runtimeInstallLabel.Name = "runtimeInstallLabel";
352
+
this.runtimeInstallLabel.Size = new System.Drawing.Size(145, 13);
353
+
this.runtimeInstallLabel.TabIndex = 0;
354
+
this.runtimeInstallLabel.Text = "Runtime installed placeholder";
355
+
//
356
+
// installRuntimeButton
357
+
//
358
+
this.installRuntimeButton.FlatStyle = System.Windows.Forms.FlatStyle.System;
359
+
this.installRuntimeButton.Location = new System.Drawing.Point(6, 73);
360
+
this.installRuntimeButton.Name = "installRuntimeButton";
361
+
this.installRuntimeButton.Size = new System.Drawing.Size(227, 23);
362
+
this.installRuntimeButton.TabIndex = 8;
363
+
this.installRuntimeButton.Text = "Install runtime";
364
+
this.installRuntimeButton.UseVisualStyleBackColor = true;
365
+
this.installRuntimeButton.Click += new System.EventHandler(this.installRuntimeButton_Click);
366
+
//
367
+
// runtimeVersionLabel
368
+
//
369
+
this.runtimeVersionLabel.AutoSize = true;
370
+
this.runtimeVersionLabel.Location = new System.Drawing.Point(60, 37);
371
+
this.runtimeVersionLabel.Name = "runtimeVersionLabel";
372
+
this.runtimeVersionLabel.Size = new System.Drawing.Size(141, 13);
373
+
this.runtimeVersionLabel.TabIndex = 1;
374
+
this.runtimeVersionLabel.Text = "Runtime version placeholder";
375
+
//
376
+
// accountsTab
377
+
//
378
+
this.accountsTab.Controls.Add(this.onlineXuidLabel);
379
+
this.accountsTab.Controls.Add(this.onlineXuidBox);
380
+
this.accountsTab.Controls.Add(this.accountGamerpic);
381
+
this.accountsTab.Controls.Add(this.accountLiveCheck);
382
+
this.accountsTab.Controls.Add(this.accountXuidBox);
383
+
this.accountsTab.Controls.Add(this.accountNameBox);
384
+
this.accountsTab.Controls.Add(this.accountXuidLabel);
385
+
this.accountsTab.Controls.Add(this.accountNameLabel);
386
+
this.accountsTab.Controls.Add(this.accountsListBox);
387
+
this.accountsTab.Location = new System.Drawing.Point(4, 22);
388
+
this.accountsTab.Name = "accountsTab";
389
+
this.accountsTab.Padding = new System.Windows.Forms.Padding(3);
390
+
this.accountsTab.Size = new System.Drawing.Size(446, 224);
391
+
this.accountsTab.TabIndex = 1;
392
+
this.accountsTab.Text = "Profiles";
393
+
this.accountsTab.UseVisualStyleBackColor = true;
394
+
//
395
+
// onlineXuidLabel
396
+
//
397
+
this.onlineXuidLabel.AutoSize = true;
398
+
this.onlineXuidLabel.Location = new System.Drawing.Point(195, 84);
399
+
this.onlineXuidLabel.Name = "onlineXuidLabel";
400
+
this.onlineXuidLabel.Size = new System.Drawing.Size(40, 13);
401
+
this.onlineXuidLabel.TabIndex = 18;
402
+
this.onlineXuidLabel.Text = "Online:";
403
+
this.onlineXuidLabel.Visible = false;
404
+
//
405
+
// onlineXuidBox
406
+
//
407
+
this.onlineXuidBox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
408
+
this.onlineXuidBox.Location = new System.Drawing.Point(237, 81);
409
+
this.onlineXuidBox.Name = "onlineXuidBox";
410
+
this.onlineXuidBox.ReadOnly = true;
411
+
this.onlineXuidBox.Size = new System.Drawing.Size(129, 20);
412
+
this.onlineXuidBox.TabIndex = 17;
413
+
this.onlineXuidBox.Text = "DEADBEEFDEADBEEF";
414
+
this.onlineXuidBox.Visible = false;
415
+
//
416
+
// accountGamerpic
417
+
//
418
+
this.accountGamerpic.Location = new System.Drawing.Point(376, 58);
419
+
this.accountGamerpic.Name = "accountGamerpic";
420
+
this.accountGamerpic.Size = new System.Drawing.Size(64, 64);
421
+
this.accountGamerpic.TabIndex = 16;
422
+
this.accountGamerpic.TabStop = false;
423
+
//
424
+
// accountLiveCheck
425
+
//
426
+
this.accountLiveCheck.AutoSize = true;
427
+
this.accountLiveCheck.Enabled = false;
428
+
this.accountLiveCheck.Location = new System.Drawing.Point(198, 58);
429
+
this.accountLiveCheck.Name = "accountLiveCheck";
430
+
this.accountLiveCheck.Size = new System.Drawing.Size(108, 17);
431
+
this.accountLiveCheck.TabIndex = 15;
432
+
this.accountLiveCheck.Text = "Xbox LIVE Profile";
433
+
this.accountLiveCheck.UseVisualStyleBackColor = true;
434
+
this.accountLiveCheck.Visible = false;
435
+
//
436
+
// accountXuidBox
437
+
//
438
+
this.accountXuidBox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
439
+
this.accountXuidBox.Location = new System.Drawing.Point(237, 32);
440
+
this.accountXuidBox.Name = "accountXuidBox";
441
+
this.accountXuidBox.ReadOnly = true;
442
+
this.accountXuidBox.Size = new System.Drawing.Size(203, 20);
443
+
this.accountXuidBox.TabIndex = 14;
444
+
this.accountXuidBox.Text = "DEADBEEFDEADBEEF";
445
+
//
446
+
// accountNameBox
447
+
//
448
+
this.accountNameBox.Location = new System.Drawing.Point(257, 6);
449
+
this.accountNameBox.Name = "accountNameBox";
450
+
this.accountNameBox.ReadOnly = true;
451
+
this.accountNameBox.Size = new System.Drawing.Size(183, 20);
452
+
this.accountNameBox.TabIndex = 13;
453
+
this.accountNameBox.Text = "WWWWWWWWWWWWWWW";
454
+
//
455
+
// accountXuidLabel
456
+
//
457
+
this.accountXuidLabel.AutoSize = true;
458
+
this.accountXuidLabel.Location = new System.Drawing.Point(195, 35);
459
+
this.accountXuidLabel.Name = "accountXuidLabel";
460
+
this.accountXuidLabel.Size = new System.Drawing.Size(36, 13);
461
+
this.accountXuidLabel.TabIndex = 12;
462
+
this.accountXuidLabel.Text = "XUID:";
463
+
//
464
+
// accountNameLabel
465
+
//
466
+
this.accountNameLabel.AutoSize = true;
467
+
this.accountNameLabel.Location = new System.Drawing.Point(195, 9);
468
+
this.accountNameLabel.Name = "accountNameLabel";
469
+
this.accountNameLabel.Size = new System.Drawing.Size(56, 13);
470
+
this.accountNameLabel.TabIndex = 11;
471
+
this.accountNameLabel.Text = "Gamertag:";
472
+
//
473
+
// accountsListBox
474
+
//
475
+
this.accountsListBox.FormattingEnabled = true;
476
+
this.accountsListBox.Location = new System.Drawing.Point(6, 6);
477
+
this.accountsListBox.Name = "accountsListBox";
478
+
this.accountsListBox.Size = new System.Drawing.Size(183, 212);
479
+
this.accountsListBox.TabIndex = 10;
480
+
this.accountsListBox.SelectedIndexChanged += new System.EventHandler(this.accountsListBox_SelectedIndexChanged);
481
+
//
482
+
// gamesTab
483
+
//
484
+
this.gamesTab.Controls.Add(this.titleIDFormattedLabel);
485
+
this.gamesTab.Controls.Add(this.titleIconPicture);
486
+
this.gamesTab.Controls.Add(this.titleClearConfigLink);
487
+
this.gamesTab.Controls.Add(this.titleShowKeyCheck);
488
+
this.gamesTab.Controls.Add(this.titleKeyLabel);
489
+
this.gamesTab.Controls.Add(this.titleProductKeyBox);
490
+
this.gamesTab.Controls.Add(this.titleIDBox);
491
+
this.gamesTab.Controls.Add(this.titleNameBox);
492
+
this.gamesTab.Controls.Add(this.titleIDLabel);
493
+
this.gamesTab.Controls.Add(this.titleNameLabel);
494
+
this.gamesTab.Controls.Add(this.gameListBox);
495
+
this.gamesTab.Location = new System.Drawing.Point(4, 22);
496
+
this.gamesTab.Name = "gamesTab";
497
+
this.gamesTab.Padding = new System.Windows.Forms.Padding(3);
498
+
this.gamesTab.Size = new System.Drawing.Size(446, 224);
499
+
this.gamesTab.TabIndex = 2;
500
+
this.gamesTab.Text = "Games";
501
+
this.gamesTab.UseVisualStyleBackColor = true;
502
+
//
503
+
// titleIDFormattedLabel
504
+
//
505
+
this.titleIDFormattedLabel.AutoSize = true;
506
+
this.titleIDFormattedLabel.Location = new System.Drawing.Point(314, 35);
507
+
this.titleIDFormattedLabel.Name = "titleIDFormattedLabel";
508
+
this.titleIDFormattedLabel.Size = new System.Drawing.Size(62, 13);
509
+
this.titleIDFormattedLabel.TabIndex = 18;
510
+
this.titleIDFormattedLabel.Text = "(WW-9999)";
511
+
//
512
+
// titleIconPicture
513
+
//
514
+
this.titleIconPicture.Location = new System.Drawing.Point(376, 58);
515
+
this.titleIconPicture.Name = "titleIconPicture";
516
+
this.titleIconPicture.Size = new System.Drawing.Size(64, 64);
517
+
this.titleIconPicture.TabIndex = 17;
518
+
this.titleIconPicture.TabStop = false;
519
+
//
520
+
// titleClearConfigLink
521
+
//
522
+
this.titleClearConfigLink.AutoSize = true;
523
+
this.titleClearConfigLink.Location = new System.Drawing.Point(394, 35);
524
+
this.titleClearConfigLink.Name = "titleClearConfigLink";
525
+
this.titleClearConfigLink.Size = new System.Drawing.Size(46, 13);
526
+
this.titleClearConfigLink.TabIndex = 9;
527
+
this.titleClearConfigLink.TabStop = true;
528
+
this.titleClearConfigLink.Text = "Config...";
529
+
this.titleClearConfigLink.Visible = false;
530
+
//
531
+
// titleShowKeyCheck
532
+
//
533
+
this.titleShowKeyCheck.AutoSize = true;
534
+
this.titleShowKeyCheck.Location = new System.Drawing.Point(387, 181);
535
+
this.titleShowKeyCheck.Name = "titleShowKeyCheck";
536
+
this.titleShowKeyCheck.Size = new System.Drawing.Size(53, 17);
537
+
this.titleShowKeyCheck.TabIndex = 7;
538
+
this.titleShowKeyCheck.Text = "Show";
539
+
this.titleShowKeyCheck.UseVisualStyleBackColor = true;
540
+
this.titleShowKeyCheck.CheckedChanged += new System.EventHandler(this.titleShowKeyCheck_CheckedChanged);
541
+
//
542
+
// titleKeyLabel
543
+
//
544
+
this.titleKeyLabel.AutoSize = true;
545
+
this.titleKeyLabel.Location = new System.Drawing.Point(195, 182);
546
+
this.titleKeyLabel.Name = "titleKeyLabel";
547
+
this.titleKeyLabel.Size = new System.Drawing.Size(68, 13);
548
+
this.titleKeyLabel.TabIndex = 6;
549
+
this.titleKeyLabel.Text = "Product Key:";
550
+
//
551
+
// titleProductKeyBox
552
+
//
553
+
this.titleProductKeyBox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
554
+
this.titleProductKeyBox.Location = new System.Drawing.Point(195, 198);
555
+
this.titleProductKeyBox.Name = "titleProductKeyBox";
556
+
this.titleProductKeyBox.ReadOnly = true;
557
+
this.titleProductKeyBox.Size = new System.Drawing.Size(245, 20);
558
+
this.titleProductKeyBox.TabIndex = 5;
559
+
this.titleProductKeyBox.Text = "WWWWW-WWWWW-WWWWW-WWWWW-WWWWW";
560
+
//
561
+
// titleIDBox
562
+
//
563
+
this.titleIDBox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
564
+
this.titleIDBox.Location = new System.Drawing.Point(245, 32);
565
+
this.titleIDBox.Name = "titleIDBox";
566
+
this.titleIDBox.ReadOnly = true;
567
+
this.titleIDBox.Size = new System.Drawing.Size(63, 20);
568
+
this.titleIDBox.TabIndex = 4;
569
+
this.titleIDBox.Text = "DEADF00D";
570
+
//
571
+
// titleNameBox
572
+
//
573
+
this.titleNameBox.Location = new System.Drawing.Point(270, 6);
574
+
this.titleNameBox.Name = "titleNameBox";
575
+
this.titleNameBox.ReadOnly = true;
576
+
this.titleNameBox.Size = new System.Drawing.Size(170, 20);
577
+
this.titleNameBox.TabIndex = 3;
578
+
this.titleNameBox.Text = "Super Awesome Long Game Name Title";
579
+
//
580
+
// titleIDLabel
581
+
//
582
+
this.titleIDLabel.AutoSize = true;
583
+
this.titleIDLabel.Location = new System.Drawing.Point(195, 35);
584
+
this.titleIDLabel.Name = "titleIDLabel";
585
+
this.titleIDLabel.Size = new System.Drawing.Size(44, 13);
586
+
this.titleIDLabel.TabIndex = 2;
587
+
this.titleIDLabel.Text = "Title ID:";
588
+
//
589
+
// titleNameLabel
590
+
//
591
+
this.titleNameLabel.AutoSize = true;
592
+
this.titleNameLabel.Location = new System.Drawing.Point(195, 9);
593
+
this.titleNameLabel.Name = "titleNameLabel";
594
+
this.titleNameLabel.Size = new System.Drawing.Size(69, 13);
595
+
this.titleNameLabel.TabIndex = 1;
596
+
this.titleNameLabel.Text = "Game Name:";
597
+
//
598
+
// gameListBox
599
+
//
600
+
this.gameListBox.FormattingEnabled = true;
601
+
this.gameListBox.Location = new System.Drawing.Point(6, 6);
602
+
this.gameListBox.Name = "gameListBox";
603
+
this.gameListBox.Size = new System.Drawing.Size(183, 212);
604
+
this.gameListBox.TabIndex = 0;
605
+
this.gameListBox.SelectedIndexChanged += new System.EventHandler(this.gameListBox_SelectedIndexChanged);
606
+
//
607
+
// utilitiesTab
608
+
//
609
+
this.utilitiesTab.Controls.Add(this.connBlockGroup);
610
+
this.utilitiesTab.Controls.Add(this.dataExportGroup);
611
+
this.utilitiesTab.Location = new System.Drawing.Point(4, 22);
612
+
this.utilitiesTab.Name = "utilitiesTab";
613
+
this.utilitiesTab.Padding = new System.Windows.Forms.Padding(3);
614
+
this.utilitiesTab.Size = new System.Drawing.Size(446, 224);
615
+
this.utilitiesTab.TabIndex = 5;
616
+
this.utilitiesTab.Text = "Utilities";
617
+
this.utilitiesTab.UseVisualStyleBackColor = true;
618
+
//
619
+
// connBlockGroup
620
+
//
621
+
this.connBlockGroup.Controls.Add(this.blockLiveInfoLabel);
622
+
this.connBlockGroup.Controls.Add(this.blockServicesInfoLabel);
623
+
this.connBlockGroup.Controls.Add(this.blockServicesButton);
624
+
this.connBlockGroup.Controls.Add(this.blockLiveButton);
625
+
this.connBlockGroup.Location = new System.Drawing.Point(6, 63);
626
+
this.connBlockGroup.Name = "connBlockGroup";
627
+
this.connBlockGroup.Size = new System.Drawing.Size(434, 85);
628
+
this.connBlockGroup.TabIndex = 4;
629
+
this.connBlockGroup.TabStop = false;
630
+
this.connBlockGroup.Text = "Connection Blocking";
631
+
//
632
+
// blockLiveInfoLabel
633
+
//
634
+
this.blockLiveInfoLabel.AutoSize = true;
635
+
this.blockLiveInfoLabel.Location = new System.Drawing.Point(136, 58);
636
+
this.blockLiveInfoLabel.Name = "blockLiveInfoLabel";
637
+
this.blockLiveInfoLabel.Size = new System.Drawing.Size(275, 13);
638
+
this.blockLiveInfoLabel.TabIndex = 4;
639
+
this.blockLiveInfoLabel.Text = "Blocks *ALL* connections to Games for Windows - LIVE.";
640
+
//
641
+
// blockServicesInfoLabel
642
+
//
643
+
this.blockServicesInfoLabel.AutoSize = true;
644
+
this.blockServicesInfoLabel.Location = new System.Drawing.Point(136, 24);
645
+
this.blockServicesInfoLabel.Name = "blockServicesInfoLabel";
646
+
this.blockServicesInfoLabel.Size = new System.Drawing.Size(272, 26);
647
+
this.blockServicesInfoLabel.TabIndex = 3;
648
+
this.blockServicesInfoLabel.Text = "Blocks GfWL marketplace services to speed up loading.\r\n(Recommended)";
649
+
//
650
+
// blockServicesButton
651
+
//
652
+
this.blockServicesButton.FlatStyle = System.Windows.Forms.FlatStyle.System;
653
+
this.blockServicesButton.Location = new System.Drawing.Point(6, 19);
654
+
this.blockServicesButton.Name = "blockServicesButton";
655
+
this.blockServicesButton.Size = new System.Drawing.Size(124, 23);
656
+
this.blockServicesButton.TabIndex = 1;
657
+
this.blockServicesButton.Text = "Block Services";
658
+
this.blockServicesButton.UseVisualStyleBackColor = true;
659
+
this.blockServicesButton.Click += new System.EventHandler(this.blockServicesButton_Click);
660
+
//
661
+
// blockLiveButton
662
+
//
663
+
this.blockLiveButton.FlatStyle = System.Windows.Forms.FlatStyle.System;
664
+
this.blockLiveButton.Location = new System.Drawing.Point(6, 53);
665
+
this.blockLiveButton.Name = "blockLiveButton";
666
+
this.blockLiveButton.Size = new System.Drawing.Size(124, 23);
667
+
this.blockLiveButton.TabIndex = 0;
668
+
this.blockLiveButton.Text = "Block LIVE";
669
+
this.blockLiveButton.UseVisualStyleBackColor = true;
670
+
this.blockLiveButton.Click += new System.EventHandler(this.blockLiveButton_Click);
671
+
//
672
+
// dataExportGroup
673
+
//
674
+
this.dataExportGroup.Controls.Add(this.dataExportInfoLabel);
675
+
this.dataExportGroup.Controls.Add(this.dataImportButton);
676
+
this.dataExportGroup.Controls.Add(this.dataExportButton);
677
+
this.dataExportGroup.Location = new System.Drawing.Point(6, 6);
678
+
this.dataExportGroup.Name = "dataExportGroup";
679
+
this.dataExportGroup.Size = new System.Drawing.Size(434, 51);
680
+
this.dataExportGroup.TabIndex = 0;
681
+
this.dataExportGroup.TabStop = false;
682
+
this.dataExportGroup.Text = "Data Export";
683
+
//
684
+
// dataExportInfoLabel
685
+
//
686
+
this.dataExportInfoLabel.AutoSize = true;
687
+
this.dataExportInfoLabel.Location = new System.Drawing.Point(168, 24);
688
+
this.dataExportInfoLabel.Name = "dataExportInfoLabel";
689
+
this.dataExportInfoLabel.Size = new System.Drawing.Size(225, 13);
690
+
this.dataExportInfoLabel.TabIndex = 3;
691
+
this.dataExportInfoLabel.Text = "Export or import your data to another computer";
692
+
//
693
+
// dataImportButton
694
+
//
695
+
this.dataImportButton.Location = new System.Drawing.Point(6, 19);
696
+
this.dataImportButton.Name = "dataImportButton";
697
+
this.dataImportButton.Size = new System.Drawing.Size(75, 23);
698
+
this.dataImportButton.TabIndex = 1;
699
+
this.dataImportButton.Text = "Import...";
700
+
this.dataImportButton.UseVisualStyleBackColor = true;
701
+
this.dataImportButton.Click += new System.EventHandler(this.dataImportButton_Click);
702
+
//
703
+
// dataExportButton
704
+
//
705
+
this.dataExportButton.Location = new System.Drawing.Point(87, 19);
706
+
this.dataExportButton.Name = "dataExportButton";
707
+
this.dataExportButton.Size = new System.Drawing.Size(75, 23);
708
+
this.dataExportButton.TabIndex = 0;
709
+
this.dataExportButton.Text = "Export...";
710
+
this.dataExportButton.UseVisualStyleBackColor = true;
711
+
this.dataExportButton.Click += new System.EventHandler(this.dataExportButton_Click);
712
+
//
713
+
// label1
714
+
//
715
+
this.label1.AutoSize = true;
716
+
this.label1.Location = new System.Drawing.Point(12, 265);
717
+
this.label1.Name = "label1";
718
+
this.label1.Size = new System.Drawing.Size(351, 13);
719
+
this.label1.TabIndex = 1;
720
+
this.label1.Text = "Unofficial utility by Emma / InvoxiPlayGames. Not affiliated with Microsoft.";
721
+
//
722
+
// githubLinkLabel
723
+
//
724
+
this.githubLinkLabel.AutoSize = true;
725
+
this.githubLinkLabel.Location = new System.Drawing.Point(13, 280);
726
+
this.githubLinkLabel.Name = "githubLinkLabel";
727
+
this.githubLinkLabel.Size = new System.Drawing.Size(239, 13);
728
+
this.githubLinkLabel.TabIndex = 2;
729
+
this.githubLinkLabel.TabStop = true;
730
+
this.githubLinkLabel.Text = "https://github.com/InvoxiPlayGames/GfWLUtility";
731
+
this.githubLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.githubLinkLabel_LinkClicked);
732
+
//
733
+
// appVersionLabel
734
+
//
735
+
this.appVersionLabel.AutoSize = true;
736
+
this.appVersionLabel.Location = new System.Drawing.Point(359, 280);
737
+
this.appVersionLabel.Name = "appVersionLabel";
738
+
this.appVersionLabel.Size = new System.Drawing.Size(107, 13);
739
+
this.appVersionLabel.TabIndex = 3;
740
+
this.appVersionLabel.Text = "version 1.0.0.0-beta1";
741
+
//
742
+
// MainWindow
743
+
//
744
+
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
745
+
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
746
+
this.ClientSize = new System.Drawing.Size(478, 304);
747
+
this.Controls.Add(this.appVersionLabel);
748
+
this.Controls.Add(this.githubLinkLabel);
749
+
this.Controls.Add(this.label1);
750
+
this.Controls.Add(this.mainTabControl);
751
+
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
752
+
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
753
+
this.MaximizeBox = false;
754
+
this.MinimizeBox = false;
755
+
this.Name = "MainWindow";
756
+
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
757
+
this.Text = "GfWL Utility";
758
+
this.Load += new System.EventHandler(this.MainWindow_Load);
759
+
this.mainTabControl.ResumeLayout(false);
760
+
this.runtimeTab.ResumeLayout(false);
761
+
this.systemInfoGroup.ResumeLayout(false);
762
+
this.systemInfoGroup.PerformLayout();
763
+
this.marketplaceGroup.ResumeLayout(false);
764
+
this.marketplaceGroup.PerformLayout();
765
+
((System.ComponentModel.ISupportInitialize)(this.marketplaceLogoPicture)).EndInit();
766
+
this.wlidGroup.ResumeLayout(false);
767
+
this.wlidGroup.PerformLayout();
768
+
((System.ComponentModel.ISupportInitialize)(this.wlidLogoPicture)).EndInit();
769
+
this.runtimeGroup.ResumeLayout(false);
770
+
this.runtimeGroup.PerformLayout();
771
+
((System.ComponentModel.ISupportInitialize)(this.gfwlLogoPicture)).EndInit();
772
+
this.accountsTab.ResumeLayout(false);
773
+
this.accountsTab.PerformLayout();
774
+
((System.ComponentModel.ISupportInitialize)(this.accountGamerpic)).EndInit();
775
+
this.gamesTab.ResumeLayout(false);
776
+
this.gamesTab.PerformLayout();
777
+
((System.ComponentModel.ISupportInitialize)(this.titleIconPicture)).EndInit();
778
+
this.utilitiesTab.ResumeLayout(false);
779
+
this.connBlockGroup.ResumeLayout(false);
780
+
this.connBlockGroup.PerformLayout();
781
+
this.dataExportGroup.ResumeLayout(false);
782
+
this.dataExportGroup.PerformLayout();
783
+
this.ResumeLayout(false);
784
+
this.PerformLayout();
785
+
786
+
}
787
+
788
+
#endregion
789
+
790
+
private System.Windows.Forms.TabControl mainTabControl;
791
+
private System.Windows.Forms.TabPage runtimeTab;
792
+
private System.Windows.Forms.TabPage accountsTab;
793
+
private System.Windows.Forms.Label runtimeVersionLabel;
794
+
private System.Windows.Forms.Label runtimeInstallLabel;
795
+
private System.Windows.Forms.TabPage gamesTab;
796
+
private System.Windows.Forms.PictureBox gfwlLogoPicture;
797
+
private System.Windows.Forms.Label wlidInfoLabel;
798
+
private System.Windows.Forms.PictureBox wlidLogoPicture;
799
+
private System.Windows.Forms.Label wlidInstallLabel;
800
+
private System.Windows.Forms.TabPage utilitiesTab;
801
+
private System.Windows.Forms.GroupBox dataExportGroup;
802
+
private System.Windows.Forms.Label dataExportInfoLabel;
803
+
private System.Windows.Forms.Button dataImportButton;
804
+
private System.Windows.Forms.Button dataExportButton;
805
+
private System.Windows.Forms.GroupBox wlidGroup;
806
+
private System.Windows.Forms.GroupBox runtimeGroup;
807
+
private System.Windows.Forms.Button manageRuntimeButton;
808
+
private System.Windows.Forms.GroupBox systemInfoGroup;
809
+
private System.Windows.Forms.GroupBox marketplaceGroup;
810
+
private System.Windows.Forms.Button manageMarketplaceButton;
811
+
private System.Windows.Forms.PictureBox marketplaceLogoPicture;
812
+
private System.Windows.Forms.Label marketplaceInstallLabel;
813
+
private System.Windows.Forms.Label marketplaceVersionLabel;
814
+
private System.Windows.Forms.TextBox versionText;
815
+
private System.Windows.Forms.Label versionLabel;
816
+
private System.Windows.Forms.TextBox pcidText;
817
+
private System.Windows.Forms.Label pcidLabel;
818
+
private System.Windows.Forms.CheckBox showPCIDCheckbox;
819
+
private ElevatedButton installRuntimeButton;
820
+
private ElevatedButton installWLIDButton;
821
+
private ElevatedButton installMarketplaceButton;
822
+
private System.Windows.Forms.CheckBox titleShowKeyCheck;
823
+
private System.Windows.Forms.Label titleKeyLabel;
824
+
private System.Windows.Forms.TextBox titleProductKeyBox;
825
+
private System.Windows.Forms.TextBox titleIDBox;
826
+
private System.Windows.Forms.TextBox titleNameBox;
827
+
private System.Windows.Forms.Label titleIDLabel;
828
+
private System.Windows.Forms.Label titleNameLabel;
829
+
private System.Windows.Forms.ListBox gameListBox;
830
+
private System.Windows.Forms.LinkLabel titleClearConfigLink;
831
+
private System.Windows.Forms.CheckBox accountLiveCheck;
832
+
private System.Windows.Forms.TextBox accountXuidBox;
833
+
private System.Windows.Forms.TextBox accountNameBox;
834
+
private System.Windows.Forms.Label accountXuidLabel;
835
+
private System.Windows.Forms.Label accountNameLabel;
836
+
private System.Windows.Forms.ListBox accountsListBox;
837
+
private System.Windows.Forms.PictureBox accountGamerpic;
838
+
private System.Windows.Forms.PictureBox titleIconPicture;
839
+
private System.Windows.Forms.GroupBox connBlockGroup;
840
+
private System.Windows.Forms.Label blockServicesInfoLabel;
841
+
private System.Windows.Forms.Label blockLiveInfoLabel;
842
+
private System.Windows.Forms.Label label1;
843
+
private System.Windows.Forms.LinkLabel githubLinkLabel;
844
+
private System.Windows.Forms.Label appVersionLabel;
845
+
private ElevatedButton blockServicesButton;
846
+
private ElevatedButton blockLiveButton;
847
+
private System.Windows.Forms.Label titleIDFormattedLabel;
848
+
private System.Windows.Forms.Label onlineXuidLabel;
849
+
private System.Windows.Forms.TextBox onlineXuidBox;
850
+
}
851
+
}
852
+
+469
MainWindow.cs
+469
MainWindow.cs
···
1
+
using GfWLUtility.Properties;
2
+
using System;
3
+
using System.Collections.Generic;
4
+
using System.ComponentModel;
5
+
using System.Data;
6
+
using System.Diagnostics;
7
+
using System.Drawing;
8
+
using System.Globalization;
9
+
using System.IO;
10
+
using System.Linq;
11
+
using System.Reflection;
12
+
using System.Runtime.InteropServices;
13
+
using System.Text;
14
+
using System.Windows.Forms;
15
+
16
+
namespace GfWLUtility
17
+
{
18
+
public partial class MainWindow : Form
19
+
{
20
+
public MainWindow()
21
+
{
22
+
InitializeComponent();
23
+
}
24
+
25
+
private void LoadSystemInfoGroup()
26
+
{
27
+
showPCIDCheckbox.Checked = false;
28
+
pcidText.Text = UtilityFuncs.CensorString(GfWLRegistry.GetPCID(), 2, 2, 4);
29
+
versionText.Text = GfWLRegistry.GetVersion();
30
+
}
31
+
32
+
private bool ConfirmIsAdmin()
33
+
{
34
+
if (!Program.Elevated)
35
+
{
36
+
// no UAC prompt on Windows XP, and while technically Run As... still exists it's not what i'm going for
37
+
if (!UtilityFuncs.IsWindowsXP())
38
+
{
39
+
DialogResult r = MessageBox.Show("You must run GfWL Utility as administrator to use this functionality.\n\nDo you want to relaunch as administrator?",
40
+
"Permission Required", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
41
+
if (r == DialogResult.Yes)
42
+
{
43
+
Program.RelaunchAsAdmin();
44
+
return false;
45
+
} else
46
+
{
47
+
return false;
48
+
}
49
+
} else
50
+
{
51
+
MessageBox.Show("You must run GfWL Utility as an administrator to use this functionality.",
52
+
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
53
+
return false;
54
+
}
55
+
}
56
+
else return true;
57
+
}
58
+
59
+
private void LoadRuntimeInfoGroup()
60
+
{
61
+
string xlive_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "xlive.dll");
62
+
if (File.Exists(xlive_path))
63
+
{
64
+
Version xlive_version = UtilityFuncs.GetProductVersion(xlive_path);
65
+
runtimeInstallLabel.Text = "Runtime installed!";
66
+
runtimeVersionLabel.Text = $"Version {xlive_version}";
67
+
// hardcoded latest version. sucks?
68
+
if (xlive_version.CompareTo(new Version("3.5.95.0")) >= 0) {
69
+
gfwlLogoPicture.Image = Resources.GfWLCheck;
70
+
installRuntimeButton.Enabled = false;
71
+
installRuntimeButton.Text = "Up to date!";
72
+
} else
73
+
{
74
+
gfwlLogoPicture.Image = Resources.GfWLOld;
75
+
installRuntimeButton.Enabled = true;
76
+
installRuntimeButton.Text = "Update runtime";
77
+
}
78
+
} else
79
+
{
80
+
gfwlLogoPicture.Image = Resources.GfWLUnknown;
81
+
runtimeInstallLabel.Text = "Runtime not installed.";
82
+
runtimeVersionLabel.Text = "";
83
+
installRuntimeButton.Enabled = true;
84
+
installRuntimeButton.Text = "Install runtime";
85
+
}
86
+
}
87
+
88
+
private void LoadMarketplaceInfoGroup()
89
+
{
90
+
string dashdir = GfWLRegistry.GetDashPath();
91
+
string gfwdashpath = "";
92
+
if (dashdir != null)
93
+
gfwdashpath = Path.Combine(dashdir, "GFWLive.exe");
94
+
if (gfwdashpath != null && File.Exists(gfwdashpath))
95
+
{
96
+
Version dash_version = UtilityFuncs.GetProductVersion(gfwdashpath);
97
+
marketplaceInstallLabel.Text = "Marketplace installed!";
98
+
marketplaceVersionLabel.Text = $"Version {dash_version}";
99
+
// hardcoded latest version. sucks?
100
+
if (dash_version.CompareTo(new Version("3.5.67.0")) >= 0)
101
+
{
102
+
Bitmap dashIcon = UtilityFuncs.Get48x48Icon(gfwdashpath);
103
+
if (dashIcon != null)
104
+
marketplaceLogoPicture.Image = dashIcon;
105
+
else
106
+
marketplaceLogoPicture.Image = Resources.GfWLCheck;
107
+
installMarketplaceButton.Enabled = false;
108
+
installMarketplaceButton.Text = "Up to date!";
109
+
}
110
+
else
111
+
{
112
+
marketplaceLogoPicture.Image = Resources.GfWLOld;
113
+
installMarketplaceButton.Enabled = true;
114
+
installMarketplaceButton.Text = "Update marketplace";
115
+
}
116
+
}
117
+
else
118
+
{
119
+
marketplaceLogoPicture.Image = Resources.GfWLUnknown;
120
+
marketplaceInstallLabel.Text = "Marketplace not installed.";
121
+
marketplaceVersionLabel.Text = "";
122
+
installMarketplaceButton.Enabled = true;
123
+
installMarketplaceButton.Text = "Install marketplace";
124
+
}
125
+
}
126
+
127
+
private void LoadWLIDGroup()
128
+
{
129
+
// Windows 8+ seems to have a forwarder from msidcrl40 to wlidcli
130
+
// wlidcli has the icon assets so we use that
131
+
string wlid_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "wlidcli.dll");
132
+
// sometimes msidcrl40.dll will end up at "C:\Program Files\Common Files\microsoft shared\Windows Live"
133
+
if (!File.Exists(wlid_path))
134
+
wlid_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles), @"microsoft shared\Windows Live\msidcrl40.dll");
135
+
if (!File.Exists(wlid_path))
136
+
wlid_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "msidcrl40.dll");
137
+
// hack to get older versions to show up as existing but old
138
+
if (!File.Exists(wlid_path))
139
+
wlid_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "msidcrl30.dll");
140
+
if (File.Exists(wlid_path))
141
+
{
142
+
Version wlid_version = UtilityFuncs.GetProductVersion(wlid_path);
143
+
wlidInstallLabel.Text = "Assistant installed!";
144
+
// are we on 8+?
145
+
if (UtilityFuncs.IsWindowsModern())
146
+
wlidInfoLabel.Text = "";
147
+
else
148
+
wlidInfoLabel.Text = $"Version {wlid_version}";
149
+
150
+
Bitmap wlidIcon = UtilityFuncs.Get48x48Icon(wlid_path);
151
+
if (wlidIcon != null)
152
+
wlidLogoPicture.Image = wlidIcon;
153
+
else
154
+
wlidLogoPicture.Image = Resources.WLIDOld;
155
+
156
+
// hardcoded latest version. sucks?
157
+
if (UtilityFuncs.IsWindowsModern() || wlid_version.CompareTo(new Version("6.500.3165.0")) >= 0)
158
+
{
159
+
installWLIDButton.Enabled = false;
160
+
installWLIDButton.Text = UtilityFuncs.IsWindowsModern() ? "Included in Windows" : "Up to date!";
161
+
}
162
+
else
163
+
{
164
+
installWLIDButton.Enabled = true;
165
+
installWLIDButton.Text = "Update sign-in assistant";
166
+
}
167
+
}
168
+
else
169
+
{
170
+
wlidLogoPicture.Image = Resources.WLIDUnknown;
171
+
wlidInstallLabel.Text = "Assistant missing.";
172
+
wlidInfoLabel.Text = "";
173
+
installWLIDButton.Enabled = true;
174
+
installWLIDButton.Text = "Install sign-in assistant";
175
+
}
176
+
}
177
+
178
+
private void LoadConnBlockGroup()
179
+
{
180
+
if (DomainBlock.IsDomainBlocked("services.gamesforwindows.com"))
181
+
blockServicesButton.Text = "Unblock Services";
182
+
else
183
+
blockServicesButton.Text = "Block Services";
184
+
185
+
if (DomainBlock.IsDomainBlocked("xeas.xboxlive.com") ||
186
+
DomainBlock.IsDomainBlocked("xemacs.xboxlive.com") ||
187
+
DomainBlock.IsDomainBlocked("xetgs.xboxlive.com"))
188
+
blockLiveButton.Text = "Unblock LIVE";
189
+
else
190
+
blockLiveButton.Text = "Block LIVE";
191
+
}
192
+
193
+
private void LoadAllGroups()
194
+
{
195
+
LoadConnBlockGroup();
196
+
LoadRuntimeInfoGroup();
197
+
LoadSystemInfoGroup();
198
+
LoadMarketplaceInfoGroup();
199
+
LoadWLIDGroup();
200
+
}
201
+
202
+
private void RefreshGamePage()
203
+
{
204
+
titleNameBox.Text = string.Empty;
205
+
titleIDBox.Text = string.Empty;
206
+
titleProductKeyBox.Text = string.Empty;
207
+
titleIDFormattedLabel.Text = string.Empty;
208
+
titleShowKeyCheck.Checked = false;
209
+
210
+
if (gameListBox.SelectedIndex == -1)
211
+
{
212
+
titleShowKeyCheck.Enabled = false;
213
+
titleClearConfigLink.Enabled = false;
214
+
return;
215
+
}
216
+
217
+
titleShowKeyCheck.Enabled = true;
218
+
titleClearConfigLink.Enabled = true;
219
+
220
+
KnownTitle selected = (KnownTitle)gameListBox.SelectedItem;
221
+
titleNameBox.Text = selected.Name;
222
+
titleIDBox.Text = selected.TitleID.ToString("X8");
223
+
titleIDFormattedLabel.Text = "(" + UtilityFuncs.GetFormattedTitleID(selected.TitleID) + ")";
224
+
titleProductKeyBox.Text = UtilityFuncs.CensorString(TitleManager.GetTitleProductKey(selected.TitleID), 6, 6, 5);
225
+
titleIconPicture.ImageLocation = $"http://image.xboxlive.com/global/t.{selected.TitleID:X8}/icon/0/8000";
226
+
}
227
+
228
+
private void RefreshProfilePage()
229
+
{
230
+
accountNameBox.Text = string.Empty;
231
+
accountXuidBox.Text = string.Empty;
232
+
233
+
if (accountsListBox.SelectedIndex == -1)
234
+
{
235
+
return;
236
+
}
237
+
238
+
KnownUser selected = (KnownUser)accountsListBox.SelectedItem;
239
+
accountNameBox.Text = selected.Gamertag;
240
+
accountXuidBox.Text = selected.XUID.ToString("X8");
241
+
accountGamerpic.ImageLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
242
+
$"Microsoft\\Xlive\\Content\\{selected.XUID:X8}\\FFFE07D1\\00010000\\{selected.XUID:X8}_MountPt\\tile_64.png");
243
+
}
244
+
245
+
private void SearchForTitles()
246
+
{
247
+
string titlePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
248
+
$"Microsoft\\Xlive\\Titles");
249
+
if (Directory.Exists(titlePath))
250
+
{
251
+
string[] titleSubdirs = Directory.GetDirectories(titlePath);
252
+
foreach(string subdir in titleSubdirs)
253
+
{
254
+
string titleID = Path.GetFileName(subdir);
255
+
uint titleIDInt = 0;
256
+
if (!uint.TryParse(titleID, NumberStyles.HexNumber,
257
+
CultureInfo.CurrentCulture, out titleIDInt))
258
+
continue;
259
+
TitleManager.FoundTitleExists(titleIDInt);
260
+
}
261
+
}
262
+
263
+
gameListBox.Items.Clear();
264
+
foreach (KnownTitle title in TitleManager.KnownTitles.Values)
265
+
{
266
+
gameListBox.Items.Add(title);
267
+
}
268
+
269
+
RefreshGamePage();
270
+
}
271
+
272
+
private void SearchForProfiles()
273
+
{
274
+
string profilesPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
275
+
$"Microsoft\\Xlive\\Content");
276
+
if (Directory.Exists(profilesPath))
277
+
{
278
+
string[] titleSubdirs = Directory.GetDirectories(profilesPath);
279
+
foreach (string subdir in titleSubdirs)
280
+
{
281
+
string xuid = Path.GetFileName(subdir);
282
+
ulong xuidInt = 0;
283
+
if (!ulong.TryParse(xuid, NumberStyles.HexNumber,
284
+
CultureInfo.CurrentCulture, out xuidInt))
285
+
continue;
286
+
// make sure it's a valid xuid
287
+
if ((xuidInt & 0xE000000000000000) != 0xE000000000000000)
288
+
continue;
289
+
UserManager.FoundUserExists(xuidInt);
290
+
}
291
+
}
292
+
293
+
accountsListBox.Items.Clear();
294
+
foreach (KnownUser title in UserManager.KnownUsers.Values)
295
+
{
296
+
accountsListBox.Items.Add(title);
297
+
}
298
+
299
+
RefreshProfilePage();
300
+
}
301
+
302
+
private void MainWindow_Load(object sender, EventArgs e)
303
+
{
304
+
MessageBox.Show(@"This application is in a very early beta!
305
+
A lot of stuff won't work.
306
+
PRs welcome on GitHub!", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Warning);
307
+
308
+
LoadAllGroups();
309
+
SearchForProfiles();
310
+
SearchForTitles();
311
+
if (Program.Elevated && !UtilityFuncs.IsWindowsXP())
312
+
Text += " (Administrator)";
313
+
}
314
+
315
+
private void showPCIDCheckbox_CheckedChanged(object sender, EventArgs e)
316
+
{
317
+
if (showPCIDCheckbox.Checked)
318
+
pcidText.Text = GfWLRegistry.GetPCID();
319
+
else
320
+
pcidText.Text = UtilityFuncs.CensorString(GfWLRegistry.GetPCID(), 2, 2, 4);
321
+
}
322
+
323
+
private void blockServicesButton_Click(object sender, EventArgs e)
324
+
{
325
+
if (!ConfirmIsAdmin())
326
+
return;
327
+
328
+
if (DomainBlock.IsDomainBlocked("services.gamesforwindows.com"))
329
+
DomainBlock.UnblockDomain("services.gamesforwindows.com");
330
+
else
331
+
DomainBlock.BlockDomain("services.gamesforwindows.com");
332
+
333
+
LoadConnBlockGroup();
334
+
}
335
+
336
+
private void blockLiveButton_Click(object sender, EventArgs e)
337
+
{
338
+
if (!ConfirmIsAdmin())
339
+
return;
340
+
341
+
string[] domains = new string[] { "xeas.xboxlive.com", "xemacs.xboxlive.com", "xetgs.xboxlive.com" };
342
+
if (domains.Any(DomainBlock.IsDomainBlocked))
343
+
{
344
+
foreach (var d in domains) DomainBlock.UnblockDomain(d);
345
+
}
346
+
else
347
+
{
348
+
DialogResult r = MessageBox.Show("Blocking LIVE means all Games for Windows - LIVE games will no longer be able to sign in, and some games may be unplayable. Are you sure you want to continue?",
349
+
"Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
350
+
if (r == DialogResult.Yes)
351
+
{
352
+
foreach (var d in domains) DomainBlock.BlockDomain(d);
353
+
}
354
+
}
355
+
356
+
LoadConnBlockGroup();
357
+
}
358
+
359
+
private void githubLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
360
+
{
361
+
Process.Start("https://github.com/InvoxiPlayGames/GfWLUtility");
362
+
}
363
+
364
+
private void gameListBox_SelectedIndexChanged(object sender, EventArgs e)
365
+
{
366
+
RefreshGamePage();
367
+
}
368
+
369
+
private void titleShowKeyCheck_CheckedChanged(object sender, EventArgs e)
370
+
{
371
+
KnownTitle selected = (KnownTitle)gameListBox.SelectedItem;
372
+
if (selected == null) return;
373
+
if (titleShowKeyCheck.Checked)
374
+
titleProductKeyBox.Text = TitleManager.GetTitleProductKey(selected.TitleID);
375
+
else
376
+
titleProductKeyBox.Text = UtilityFuncs.CensorString(TitleManager.GetTitleProductKey(selected.TitleID), 6, 6, 5);
377
+
}
378
+
379
+
private void accountsListBox_SelectedIndexChanged(object sender, EventArgs e)
380
+
{
381
+
RefreshProfilePage();
382
+
}
383
+
384
+
private void dataExportButton_Click(object sender, EventArgs e)
385
+
{
386
+
ExportForm form = new ExportForm();
387
+
form.ShowDialog();
388
+
}
389
+
390
+
private void dataImportButton_Click(object sender, EventArgs e)
391
+
{
392
+
MessageBox.Show("Data import is not currently supported.", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Error);
393
+
}
394
+
395
+
private void installRuntimeButton_Click(object sender, EventArgs e)
396
+
{
397
+
/*
398
+
DownloadForm form = new DownloadForm();
399
+
DownloadFormResult fr = form.StartFileDownload(StaticFileInformation.titleupdate_3_5_95_cab, this);
400
+
if (fr == DownloadFormResult.DownloadCancelled)
401
+
{
402
+
MessageBox.Show("The download was cancelled.", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
403
+
return;
404
+
} else if (fr == DownloadFormResult.DownloadFailure)
405
+
{
406
+
MessageBox.Show("The download failed.", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Error);
407
+
return;
408
+
}
409
+
string cabPath = form.GetOutputFilePath();
410
+
if (!File.Exists(cabPath))
411
+
{
412
+
MessageBox.Show("The download worked, but the CAB doesn't exist?!", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Error);
413
+
return;
414
+
}*/
415
+
416
+
DialogResult dr = MessageBox.Show(
417
+
"This will install an older version of the runtime (3.5.92). You will have to update in-game.\n\nContinue?", "GfWL Utility",
418
+
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
419
+
if (dr != DialogResult.Yes)
420
+
return;
421
+
422
+
DoMSIDownloadAndInstall(StaticFileInformation.xliveredist_3_5_92_msi);
423
+
LoadRuntimeInfoGroup();
424
+
}
425
+
426
+
private void DoMSIDownloadAndInstall(FileInformation fi)
427
+
{
428
+
DownloadForm form = new DownloadForm();
429
+
DownloadFormResult fr = form.StartFileDownload(fi, this);
430
+
if (fr == DownloadFormResult.DownloadCancelled)
431
+
{
432
+
MessageBox.Show("The download was cancelled.", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
433
+
return;
434
+
}
435
+
else if (fr == DownloadFormResult.DownloadFailure)
436
+
{
437
+
MessageBox.Show("The download failed.", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Error);
438
+
return;
439
+
}
440
+
string msiPath = form.GetOutputFilePath();
441
+
if (!File.Exists(msiPath))
442
+
{
443
+
MessageBox.Show("The download worked, but the MSI doesn't exist?! Make sure any anti-virus software is not interfering.", "GfWL Utility", MessageBoxButtons.OK, MessageBoxIcon.Error);
444
+
return;
445
+
}
446
+
447
+
Process p = new Process();
448
+
p.StartInfo.FileName = "msiexec";
449
+
p.StartInfo.Arguments = $"/qf /i \"{msiPath}\"";
450
+
p.StartInfo.UseShellExecute = true;
451
+
p.Start();
452
+
p.WaitForExit();
453
+
}
454
+
455
+
private void installMarketplaceButton_Click(object sender, EventArgs e)
456
+
{
457
+
DoMSIDownloadAndInstall(StaticFileInformation.gfwlclient_msi);
458
+
LoadMarketplaceInfoGroup();
459
+
}
460
+
461
+
private void installWLIDButton_Click(object sender, EventArgs e)
462
+
{
463
+
DoMSIDownloadAndInstall(StaticFileInformation.wllogin_32_msi);
464
+
if (UtilityFuncs.IsWindows64Bit())
465
+
DoMSIDownloadAndInstall(StaticFileInformation.wllogin_64_msi);
466
+
LoadWLIDGroup();
467
+
}
468
+
}
469
+
}
+1787
MainWindow.resx
+1787
MainWindow.resx
···
1
+
<?xml version="1.0" encoding="utf-8"?>
2
+
<root>
3
+
<!--
4
+
Microsoft ResX Schema
5
+
6
+
Version 2.0
7
+
8
+
The primary goals of this format is to allow a simple XML format
9
+
that is mostly human readable. The generation and parsing of the
10
+
various data types are done through the TypeConverter classes
11
+
associated with the data types.
12
+
13
+
Example:
14
+
15
+
... ado.net/XML headers & schema ...
16
+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17
+
<resheader name="version">2.0</resheader>
18
+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24
+
</data>
25
+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
+
<comment>This is a comment</comment>
28
+
</data>
29
+
30
+
There are any number of "resheader" rows that contain simple
31
+
name/value pairs.
32
+
33
+
Each data row contains a name, and value. The row also contains a
34
+
type or mimetype. Type corresponds to a .NET class that support
35
+
text/value conversion through the TypeConverter architecture.
36
+
Classes that don't support this are serialized and stored with the
37
+
mimetype set.
38
+
39
+
The mimetype is used for serialized objects, and tells the
40
+
ResXResourceReader how to depersist the object. This is currently not
41
+
extensible. For a given mimetype the value must be set accordingly:
42
+
43
+
Note - application/x-microsoft.net.object.binary.base64 is the format
44
+
that the ResXResourceWriter will generate, however the reader can
45
+
read any of the formats listed below.
46
+
47
+
mimetype: application/x-microsoft.net.object.binary.base64
48
+
value : The object must be serialized with
49
+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
+
: and then encoded with base64 encoding.
51
+
52
+
mimetype: application/x-microsoft.net.object.soap.base64
53
+
value : The object must be serialized with
54
+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
+
: and then encoded with base64 encoding.
56
+
57
+
mimetype: application/x-microsoft.net.object.bytearray.base64
58
+
value : The object must be serialized into a byte array
59
+
: using a System.ComponentModel.TypeConverter
60
+
: and then encoded with base64 encoding.
61
+
-->
62
+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
+
<xsd:element name="root" msdata:IsDataSet="true">
65
+
<xsd:complexType>
66
+
<xsd:choice maxOccurs="unbounded">
67
+
<xsd:element name="metadata">
68
+
<xsd:complexType>
69
+
<xsd:sequence>
70
+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71
+
</xsd:sequence>
72
+
<xsd:attribute name="name" use="required" type="xsd:string" />
73
+
<xsd:attribute name="type" type="xsd:string" />
74
+
<xsd:attribute name="mimetype" type="xsd:string" />
75
+
<xsd:attribute ref="xml:space" />
76
+
</xsd:complexType>
77
+
</xsd:element>
78
+
<xsd:element name="assembly">
79
+
<xsd:complexType>
80
+
<xsd:attribute name="alias" type="xsd:string" />
81
+
<xsd:attribute name="name" type="xsd:string" />
82
+
</xsd:complexType>
83
+
</xsd:element>
84
+
<xsd:element name="data">
85
+
<xsd:complexType>
86
+
<xsd:sequence>
87
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
+
</xsd:sequence>
90
+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
+
<xsd:attribute ref="xml:space" />
94
+
</xsd:complexType>
95
+
</xsd:element>
96
+
<xsd:element name="resheader">
97
+
<xsd:complexType>
98
+
<xsd:sequence>
99
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
+
</xsd:sequence>
101
+
<xsd:attribute name="name" type="xsd:string" use="required" />
102
+
</xsd:complexType>
103
+
</xsd:element>
104
+
</xsd:choice>
105
+
</xsd:complexType>
106
+
</xsd:element>
107
+
</xsd:schema>
108
+
<resheader name="resmimetype">
109
+
<value>text/microsoft-resx</value>
110
+
</resheader>
111
+
<resheader name="version">
112
+
<value>2.0</value>
113
+
</resheader>
114
+
<resheader name="reader">
115
+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
+
</resheader>
117
+
<resheader name="writer">
118
+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
+
</resheader>
120
+
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121
+
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122
+
<value>
123
+
AAABAAUAgIAAAAEAIAAoCAEAVgAAAEBAAAABACAAKEIAAH4IAQAwMAAAAQAgAKglAACmSgEAICAAAAEA
124
+
IACoEAAATnABABAQAAABACAAaAQAAPaAAQAoAAAAgAAAAAABAAABACAAAAAAAAAAAQAAAAAAAAAAAAAA
125
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAA
126
+
AI4AAADHAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
127
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
128
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
129
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
130
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
131
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
132
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADIAAAAjgAAAD4AAAAAAAAAAAAA
133
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
134
+
AAAAAAAAAAAAAAAAAAAAAAAgAAAA0wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
135
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
136
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
137
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
138
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
139
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
140
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
141
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADTAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
142
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QAAAP8AAAD/AAAA/wAA
143
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
144
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
145
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AwMD/wUF
146
+
Bf8ICAf/CgoJ/wsLC/8MDAz/DQ0M/w0NDf8NDQ3/DA0M/wwMC/8KCwr/CQkJ/wcHBv8EBAT/AgIC/wAA
147
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
148
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
149
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
150
+
AP8AAAD/AAAA2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
151
+
AAAAAAAAAAAARgAAAP8AAAD/AAAA/wAAAP8AAAD/AQAB/wICAv8EBAT/BAQE/wUFBf8FAwT/BQUF/wUE
152
+
BP8FBQT/AwUF/wUEBf8EBAX/BQQE/wUEBf8FBQT/BQUF/wUFBf8FBQX/BAUF/wUFBf8EBQX/BAUE/wQF
153
+
BP8FBQX/BQUF/wQFBP8FBQT/BQUF/wUDBf8EBAX/BAME/wQDA/8DAwL/AgIC/wEAAf8CAQH/AwMD/wQF
154
+
BP8JCgn/DAwN/xISEv8XGBf/HR4c/yMkIv8oKyb/LjAs/zI1MP82OTT/OTw3/zs/Of88Pzr/PkI8/z5B
155
+
O/87QDn/Oj04/zc6Nf80ODL/MDIu/ystKf8mKCT/ICIf/xoaGf8VFRT/EA8Q/woLC/8HBwb/BAME/wEB
156
+
Af8BAQH/AQEC/wICAv8DAwP/BAQE/wQEBP8FBAX/BQUF/wQFBf8EBAP/BAUE/wUEBf8EBQX/BAUF/wQF
157
+
Bf8FBQT/AwUF/wQFBf8FBQX/BAUE/wUEBP8EBQT/BAUF/wUEBf8FBAX/BAUF/wUFBf8EBAX/BQQF/wQF
158
+
BP8EBQX/BAQE/wQEBP8EBAT/AgIC/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEYAAAAAAAAAAAAA
159
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIcAAAD/AAAA/wAAAP8AAAD/AgIC/wUF
160
+
Bf8FBQT/BQUF/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8DBAT/BAQD/wQEBP8EBAT/BAQE/wME
161
+
BP8DBAT/BAQD/wQEA/8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEA/8DBAP/AwMD/wIC
162
+
Av8BAQH/AQEC/wICAv8EBAP/BwgI/w4ODf8UFRT/HR4c/yUoJP8wMy7/Oz85/0ZLQv9TWk3/X2hX/2l2
163
+
Yf90gmv/fo1z/4WWef+LnX7/j6GC/5GlhP+Tpob/k6aF/5GjhP+Nn4D/iZp8/4KSd/95h27/b3xm/2Rv
164
+
XP9ZYlP/TVNI/0FFPf82OTP/Ky0p/yEjIP8YGRj/ERER/wsKC/8GBgb/AwMD/wICAf8BAQH/AgIC/wID
165
+
Av8DAwP/BAQE/wQEA/8EBAT/BAQE/wMDBP8EAwT/AwQE/wQEBP8EBAT/BAQE/wQEBP8EBAP/BAQE/wME
166
+
A/8EBAT/BAQE/wQEA/8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8FBAT/BAQF/wUE
167
+
Bf8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
168
+
AAAAAACFAAAA/wAAAP8AAAD/AAAA/wQFBf8FBQX/BQQE/wQEBP8FBAT/BAQE/wQEBP8FBQX/BAQE/wQE
169
+
BP8FBAT/BAQE/wQEBf8EBAT/BQQE/wUEBP8FBQT/BAQE/wUEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQE
170
+
BP8EBAT/BQQE/wQEBP8EAwP/AwID/wICAv8BAQH/AwMC/wQEBP8JCgn/EBEQ/xkaGP8kJiP/MjUv/0JH
171
+
Pv9UW07/ZXBe/3uJcP+OoIH/lKGP/4qElv9/ZJb/dUuU/2w4lP9iJJP/Vw+P/04AjP9KAIn/RwCH/0MA
172
+
hP9FAIX/SACI/0wAi/9TBY7/XRmR/2ctlP9xQpX/elWU/4Nzlv+QlZT/lKaJ/4WVef9wfWf/XGZV/0pQ
173
+
Rf85PTb/Ky0p/x8gHv8UFBT/DAwN/wYGBv8DAwP/AQEB/wICAv8CAgL/AwMD/wQDBP8EBAT/BQQF/wQF
174
+
Bf8EBAX/BAQE/wQEBf8EBAT/BAQE/wQEBf8EBAX/BAQE/wQEBP8EBQT/BAQE/wQEBP8FBQX/BAQF/wQE
175
+
BP8EBAX/BAUE/wQEBP8FBAT/BAQE/wQEBP8EBAX/BQQF/wUFBf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA
176
+
AIUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQAAAP8AAAD/AAAA/wEBAf8FBgT/BQUF/wUF
177
+
BP8EBQX/BQQE/wUFBf8FBAT/BAUF/wQFBP8EBQX/BQUF/wUEBP8EBQX/BAUE/wUEBf8EBAT/BAUF/wUE
178
+
BP8FBQT/BQQE/wQFBP8FBQT/BQUE/wQEBf8EBQT/BAQE/wQEBP8EAwT/AwMD/wICA/8CAwH/AwME/wgI
179
+
CP8ODg7/GBkX/yYnJf83OjT/S1FG/2NtW/9+jHL/k6SJ/4yHlf96V5X/Zi2U/0wAiv9DAIL/RACB/0UA
180
+
gP9FAID/RgB//0cAf/9IAH//SQB//0oAf/9LAH//SwB//0sAf/9LAH//SgB//0gAf/9HAH//RwB//0YA
181
+
f/9FAID/RACB/0QAgv9FAIX/WRKQ/3FClf+Db5b/kpuS/4ucfv9vfWb/V15Q/0FFPf8tMCv/HyAe/xMT
182
+
Ev8LCwr/BQUG/wIDA/8BAgL/AgID/wMDA/8EAwT/BAUE/wUEBP8EBAX/BAQE/wUEBf8EBQT/BAQF/wUE
183
+
BP8FBQT/BAQE/wUFBf8FBQX/BQUF/wQFBP8FBAX/BAQE/wQEBP8EBQX/BAQE/wUFBP8EBQX/BAQF/wUE
184
+
BP8EBAX/BQQG/wQFBf8FBQX/AQEB/wAAAP8AAAD/AAAA/wAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
185
+
AAAAAAD/AAAA/wAAAP8BAQH/BQYG/wUFBf8FBAX/BQUF/wQFBf8FBAX/BQUE/wUFBP8EBQX/BAQF/wUE
186
+
BP8EBAT/BQQF/wQFBf8FBQT/BQQF/wUFBf8FBQT/BQUE/wQFBP8FBQT/BAQF/wQEBP8EBQX/BQUF/wUE
187
+
Bf8EBAT/AgMC/wICA/8EAwP/BQME/wsMC/8UExP/ICEe/zE0L/9ITkP/ZW9c/4SUeP+UnpH/fmKW/2Ur
188
+
k/9FAIb/QwCB/0QAgP9FAH//SQB//0oAf/9KAH//SgB//0sAf/9LAH//SwB//0sAf/9NAH//TQB//00A
189
+
f/9NAH//TQB//00Af/9NAH//TAB//0sAf/9LAH//SwB//0sAf/9KAH//SgB//0kAf/9HAH//RQB//0MA
190
+
gP9CAIL/UwaN/3NHlf+Kgpb/kqSH/3SBav9WXlD/PUE6/ygpJv8ZGhj/Dw4P/wcIB/8EAwT/AgIC/wMC
191
+
Av8DAwT/BQUF/wQEBP8FBAX/BAUE/wQFBf8FBQX/BQQE/wQEBP8FBAT/BQQF/wUFBf8FBQX/BAQF/wUF
192
+
BP8FBQX/BAUE/wQFBf8FBAT/BAUF/wUFBf8FBAT/BQQF/wUFBP8EBAX/BQUF/wUFBf8GBgb/AQEB/wAA
193
+
AP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1gAAAP8AAAD/AAAA/wYGBf8FBQX/BQUF/wUF
194
+
Bf8FBQX/BQUF/wUFBf8FBQb/BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF/wUF
195
+
Bf8FBQX/BQUF/wUFBf8FBQX/BQUF/wUFBf8EBAT/AwMD/wMDA/8DAwP/BgUF/wwMC/8WFxb/JSck/zs/
196
+
OP9YYFL/e4hw/5aijv9+Y5f/XByQ/0EAgv9CAID/RQB//0gAf/9JAH//SQB//0oAf/9MAH//TAB//0wA
197
+
f/9MAH//TAB//0wAf/9MAH//TQB//00Af/9NAH//TQB//00Af/9NAH//TQB//00Af/9NAH//TAB//0wA
198
+
f/9MAH//TAB//0wAf/9MAH//TAB//0sAf/9KAH//SQB//0gAf/9HAH//QwCA/0EAgf9JAIj/b0CV/42J
199
+
l/+NnoD/aXRg/0hORP8wMy7/HR4c/xAQEP8ICQj/BAQE/wMCA/8DAwP/BAQE/wUFBf8FBQX/BQUF/wUF
200
+
Bv8FBQX/BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF/wUFBf8FBAX/BQUF/wUF
201
+
Bf8FBQX/BQUF/wUFBf8FBQX/BQUE/wUFBv8FBQb/AAAA/wAAAP8AAAD/AAAA1gAAAAAAAAAAAAAAAAAA
202
+
ABkAAAD/AAAA/wAAAP8FBgb/BgYH/wYGBv8GBQb/BQUF/wUFBv8FBgX/BQUF/wUFBf8FBgX/BQYG/wYF
203
+
Bv8GBgX/BQUG/wUFBv8GBQX/BQYF/wcFBf8FBgb/BQYF/wYGBv8GBgX/BQYF/wUFBf8FBQX/BAQE/wME
204
+
A/8DAwT/BQYG/wsMDP8WFhX/Jykm/0BFPP9ibFr/i5t+/42Hlf9qOJT/QgCF/0EAgP9FAH//RwB//0gA
205
+
f/9KAH//SwB//0sAf/9LAH//SwB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TQB//00A
206
+
f/9NAH//TQB//00Af/9NAH//TQB//00Af/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0sA
207
+
f/9LAH//SwB//0sAf/9IAH//SAB//0YAf/9DAID/QACB/1IIjf98Xpb/lqKP/3aCbP9QV0v/MzYx/x8f
208
+
Hf8QEQ//CAgI/wQFBP8DBAP/BQQE/wQFBP8FBQX/BgUF/wUFBf8FBgb/BQYF/wUFBf8FBgb/BQYH/wYG
209
+
Bf8FBQb/BQUG/wYGBf8FBgX/BgUF/wYHBv8FBgX/BQUF/wYGBf8FBQX/BQYF/wUGBv8FBgX/BgYG/wYF
210
+
Bf8GBQX/AAAA/wAAAP8AAAD/AAAAGgAAAAAAAAAAAAAA0wAAAP8AAAD/AwIC/wYGBv8HBgb/BgYG/wYF
211
+
BP8GBQX/BgUF/wUFBf8FBQX/BQUG/wYGBf8GBQX/BQYG/wYFBf8GBQb/BgYG/wUGBf8GBgX/BQUG/wYF
212
+
Bf8GBQX/BgUG/wYFBf8GBAX/BQQE/wQEBP8DBAT/BgYH/wsJCf8UFRP/Jicl/0BFPP9kblz/kKCD/4Z1
213
+
l/9WEY7/PwCB/0MAgP9FAH//RwB//0kAf/9KAH//SgB//0oAf/9LAH//SwB//0sAf/9LAH//SwB//0wA
214
+
f/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//00Af/9NAH//TQB//00Af/9NAH//TAB//0wA
215
+
f/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9LAH//SwB//0sAf/9LAH//SgB//0oAf/9KAH//SgB//0gA
216
+
f/9GAH//RAB//0EAgP9CAIX/cEWV/5Wdk/96iHD/UVhK/zE0L/8cHRr/Dw4O/wgHB/8EBAT/AwME/wQE
217
+
BP8FBQX/BQYG/wYFBv8FBgb/BgYF/wUGBf8FBgX/BQYG/wYFBf8GBgX/BgYG/wUGBv8GBgb/BQUG/wUF
218
+
Bf8GBQb/BgUF/wUGBf8FBQX/BgUF/wYGBv8FBgb/BgYG/wYHBv8CAgP/AAAA/wAAAP8AAADQAAAAAAAA
219
+
AAAAAAD/AAAA/wAAAP8GBwb/BwcH/wYGBv8GBgb/BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/BQYG/wYG
220
+
Bv8GBwb/BQYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/BQYF/wUFBf8EBAT/BQUE/wgJ
221
+
CP8REhH/ICEf/zo9N/9faFj/jp6C/4Z0mP9PB4z/PwCB/0MAf/9FAH//SAB//0kAf/9JAH//SQB//0oA
222
+
f/9KAH//SgB//0sAf/9LAH//SwB//0sAf/9LAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wA
223
+
f/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//SwB//0sA
224
+
f/9LAH//SwB//0sAf/9KAH//SgB//0oAf/9KAH//SQB//0kAf/9IAH//RgB//0QAf/9BAID/PwCE/2w9
225
+
lf+WnpP/d4Ns/0tSRv8rLir/FxgX/wwMDP8GBgb/BQQE/wQEBP8FBQb/BwUG/wYGBv8GBgb/BgcG/wYG
226
+
Bv8GBgb/BgYH/wYGBv8GBgb/BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/BgYG/wYGBv8GBgb/BgYG/wYG
227
+
Bv8GBwb/BwcH/wYGBv8AAAD/AAAA/wAAAP8AAAAAAAAAPwAAAP8AAAD/AQEB/wcIB/8GBgf/BgYH/wcH
228
+
Bv8HBwf/BwYG/wYHBv8HBgb/BwcG/wYGBv8HBgf/BgcH/wYHB/8HBwf/BwYG/wYHB/8GBgf/BwYG/wcH
229
+
Bv8GBgf/BwYH/wYFBv8FBQT/BQUG/wYGB/8NDQz/Ghoa/zAzLv9TW07/hJJ3/46Ilv9TDo3/PgCB/0IA
230
+
f/9FAH//RwB//0gAf/9IAH//SQB//0kAf/9JAH//SgB//0oAf/9KAH//SgB//0sAf/9LAH//SwB//0sA
231
+
f/9LAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wA
232
+
f/9MAH//TAB//0wAf/9MAH//TAB//0sAf/9LAH//SwB//0sAf/9LAH//SgB//0oAf/9KAH//SgB//0kA
233
+
f/9JAH//SQB//0kAf/9IAH//RwB//0cAf/9DAH//QACA/z8AhP9zTJX/lqON/2p1Yv9BRT3/IyQi/xIT
234
+
Ev8ICQj/BQYF/wUFBP8GBQX/BgYG/wYGBv8HBgf/BwYH/wYHBv8HBgb/BwYG/wYGB/8HBwf/BgcG/wYH
235
+
B/8HBwf/BwcG/wYGBv8HBwf/BgcG/wcHB/8HBwb/BwYG/wcHBv8HBgb/BwgI/wEBAf8AAAD/AAAA/wAA
236
+
ADoAAACNAAAA/wAAAP8FBQX/CAgI/wcHB/8GBwf/BwcG/wcGB/8HBwf/BwcH/wcHB/8HBwf/BwcG/wcH
237
+
B/8HBwf/BgcH/wcHB/8GBwf/BwcH/wcHB/8GBwf/BwcH/wcGB/8GBgb/BQUF/wYGBf8ICQn/EhIS/yUn
238
+
I/9DRz7/cXxn/5aekv9jLZH/PACC/0EAgP9EAH//RgB//0YAf/9IAH//SAB//0gAf/9JAH//SQB//0kA
239
+
f/9JAH//SgB//0oAf/9KAH//SgB//0sAf/9LAH//SwB//0sAf/9LAH//TAB//0wAf/9MAH//TAB//0wA
240
+
f/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9LAH//SwB//0sA
241
+
f/9LAH//SwB//0oAf/9KAH//SgB//0oAf/9KAH//SQB//0kAf/9JAH//SAB//0gAf/9IAH//RwB//0YA
242
+
f/9FAH//QwB//z4AgP9GAIf/g2+X/4ycf/9YYFH/MzYw/xobGf8MDA3/BwcH/wUFBf8FBQb/BgYG/wYG
243
+
Bv8HBwf/BgcH/wcGBv8HBwf/BwYH/wcGB/8GBwf/BwYH/wcHB/8HBwf/BwcH/wcGB/8HBwf/BwcH/wcH
244
+
B/8HBwf/BwcH/wcHB/8ICAj/BQQF/wAAAP8AAAD/AAAAjQAAAMcAAAD/AAAA/wcHB/8IBwj/BwcI/wgH
245
+
B/8HBwf/BwcH/wgIB/8HBwf/BwcH/wcHB/8IBwf/BwcI/wcHB/8HBwf/BwcH/wcHB/8HBwf/BwcI/wgH
246
+
B/8HBwf/BgUH/wUGBf8IBwb/DAwM/xkZGP8wMy7/WGBR/46dgv+AaJj/PwCD/z8AgP9DAH//RAB//0YA
247
+
f/9HAH//RwB//0cAf/9IAH//SAB//0gAf/9JAH//SQB//0kAf/9JAH//SgB//0oAf/9KAH//SgB//0sA
248
+
f/9LAH//SwB//0sAf/9LAH//SwB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wA
249
+
f/9MAH//TAB//0wAf/9LAH//SwB//0sAf/9LAH//SwB//0sAf/9KAH//SgB//0oAf/9KAH//SgB//0kA
250
+
f/9JAH//SQB//0gAf/9IAH//SAB//0gAf/9HAH//RwB//0cAf/9GAH//RAB//0EAgP87AID/Wh6O/5ab
251
+
lP9zfmn/Q0g//yMkIv8RERD/CQkJ/wUGBv8FBgX/BgcI/wcHB/8HBwf/CAgH/wcICP8HCAf/BwcH/wgI
252
+
CP8HBwf/BwcH/wcHCP8HBwf/BwgH/wgHCP8HBwf/BwcH/wcHB/8HBwf/BwgH/wgICP8HBwf/AAAA/wAA
253
+
AP8AAADIAAAA6gAAAP8AAAD/CQkJ/wgICP8ICAf/CAcI/wgICP8HCAf/CAgH/wgIB/8HCAj/CAgI/wgI
254
+
CP8ICAj/CAgI/wcICP8ICAj/CAgI/wgICP8HBwj/BwcH/wcHBv8GBQb/CQkI/w8PD/8fIR7/PkI6/255
255
+
Zf+XnpP/VhmN/zwAgP9AAH7/QwB+/0YAf/9GAH//RgB//0cAf/9HAH//RwB//0gAf/9IAH//SAB//0gA
256
+
f/9JAH//SQB//0kAf/9JAH//SgB//0oAf/9KAH//SgB//0sAf/9LAH//SwB//0sAf/9LAH//SwB//0sA
257
+
f/9MAH//SwB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0sAf/9LAH//SwB//0sAf/9LAH//SwB//0sA
258
+
f/9LAH//SgB//0oAf/9KAH//SgB//0oAf/9JAH//SQB//0kAf/9JAH//SAB//0gAf/9IAH//RwB//0cA
259
+
f/9HAH//RwB//0YAf/9GAH//RQB//0IAfv8+AH//PQCC/35ll/+MnID/VVtP/y0wK/8WFxb/DAsM/wcH
260
+
B/8GBwb/BwcH/wcICP8IBwj/CAgI/wgHCP8IBwj/CAcI/wgIB/8ICAf/BwgI/wgHCP8ICAj/CAgI/wgI
261
+
B/8IBwj/CAgH/wgICP8ICAj/CQkI/wkJCf8AAAD/AAAA/wAAAOoAAAD6AAAA/wAAAP8KCgr/CQgJ/wgI
262
+
CP8ICAj/CAgI/wgICP8ICAn/CAgI/wkICf8ICQj/CAkI/wgICP8JCAj/CAgI/wgJCP8ICAj/CAkI/wcI
263
+
B/8HBwf/BwcH/woKCv8TExL/Jykm/0xSR/+DkXf/h3eX/z8Ag/89AH3/QQB9/0QAfv9FAH7/RQB//0YA
264
+
f/9GAH//RwB//0cAf/9HAH//RwB//0gAf/9IAH//SAB//0gAf/9JAH//SQB//0kAf/9JAH//SgB//0oA
265
+
f/9KAH//SgB//0oAf/9LAH//SwB//0sAf/9LAH//SwB//0sAf/9KAH//SgB//0kAfv9JAH7/SQB+/0kA
266
+
fv9KAH//SgB//0oAf/9LAH//SwB//0sAf/9LAH//SgB//0oAf/9KAH//SgB//0oAf/9KAH//SQB//0kA
267
+
f/9JAH//SQB//0gAf/9IAH//SAB//0cAf/9HAH//RwB//0cAf/9GAH//RgB//0YAf/9FAH7/RQB+/0MA
268
+
fv8/AH3/OgB//1skjv+WoJD/Zm5d/zg7Nf8bHBr/DQ0N/wgHB/8HBgf/BwcH/wgICP8ICAn/CQgI/wgI
269
+
CP8ICAn/CAgI/wgICf8ICQj/CAkI/wgICP8ICAj/CAgI/wgJCP8JCQj/CAgJ/wgJCf8ICQj/CgoK/wAA
270
+
AP8AAAD/AAAA+gAAAP8AAAD/AAAA/wsLC/8JCQr/CQkJ/wkJCf8JCQn/CQkJ/wkJCf8JCQn/CQkI/wkJ
271
+
Cf8ICQn/CQkI/wkJCf8JCQn/CQkJ/wkJCP8ICAj/BwYG/wcICP8LDAz/FhYV/y4wLP9ZX1L/lKOH/2xE
272
+
k/84AH7/PgB8/0IAff9DAH3/RQB+/0UAfv9FAH7/RgB//0YAf/9GAH//RwB//0cAf/9HAH//RwB//0gA
273
+
f/9IAH//SAB//0gAf/9JAH//SQB//0kAf/9JAH//SgB//0oAf/9KAH//SgB//0oAf/9LAH//SwB//0sA
274
+
f/9JAH7/RwB+/0QAff9BAHz/PwB7/z4Aev8+AHr/PwB7/0EAe/9EAHz/RgB9/0kAfv9KAH//SgB//0oA
275
+
f/9KAH//SgB//0oAf/9KAH//SQB//0kAf/9JAH//SQB//0kAf/9IAH//SAB//0gAf/9HAH//RwB//0cA
276
+
f/9HAH//RgB//0YAf/9GAH//RQB+/0UAfv9FAH7/RAB9/0MAff9BAH3/OwB8/0YAhv+SkZj/dYJs/0FG
277
+
Pf8gIR//EBAQ/wkJCf8HBwf/BwcI/wkICP8JCQn/CQkJ/wgJCf8JCQn/CQkJ/wkJCf8JCAj/CQgJ/wkJ
278
+
Cf8JCQn/CQkJ/wkJCP8JCQn/CQkJ/woJCf8LCwv/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwM/woK
279
+
Cv8KCgr/CQoJ/woJCv8JCgn/CgoK/wkKCf8JCQn/CQoK/woJCf8JCgn/CgoJ/wkJCv8JCQj/CQgJ/wcH
280
+
CP8JCAn/DQ0N/xkbGf8zNjL/ZGxc/5ehkf9SFor/OQB8/z8AfP9CAHz/RAB9/0QAff9EAH3/RQB+/0UA
281
+
fv9FAH7/RgB//0YAf/9GAH//RwB//0cAf/9HAH//RwB//0gAf/9IAH//SAB//0gAf/9JAH//SQB//0kA
282
+
f/9JAH//SQB//0oAf/9KAH//SgB//0oAf/9IAH//RQB9/z4Ae/81AHf/MwB1/0EAdf9QA3z/Vwt9/1cL
283
+
fv9QBHv/QQB3/zQAdP8zAHX/PAB5/0QAff9IAH7/SgB//0oAf/9KAH//SgB//0kAf/9JAH//SQB//0kA
284
+
f/9IAH//SAB//0gAf/9IAH//RwB//0cAf/9HAH//RwB//0YAf/9GAH//RgB//0UAfv9FAH7/RQB+/0QA
285
+
ff9EAH3/RAB9/0MAfP9BAHz/PQB8/zkAfv+Cbpj/hJF4/0lORP8lJiT/EhER/woKCv8IBwj/CAgI/wkJ
286
+
Cf8JCgn/CgkK/wkJCv8KCQn/CgkJ/woJCv8KCgr/CgoJ/woJCv8JCQn/CgkJ/wkKCv8KCQn/CgoJ/wwM
287
+
DP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8NDQz/CgsL/woKCv8KCgr/CgoK/woKCv8KCQr/CgoK/woK
288
+
Cv8KCgr/CgoK/woKCv8LCgr/CgoK/wkJCf8ICAj/CQkJ/w4ODv8bHBr/OT02/213ZP+XmZf/RgCF/zoA
289
+
e/8/AHv/QgB8/0MAfP9DAHz/RAB9/0QAff9EAH3/RQB+/0UAfv9FAH7/RgB//0YAf/9GAH//RwB//0cA
290
+
f/9HAH//RwB//0cAf/9IAH//SAB//0gAf/9IAH//SQB//0kAf/9JAH//SQB//0kAf/9KAH//SQB+/0MA
291
+
fP82AHj/RwB6/59gl//Xn67/8Lu///G+wf/ywcT/88HF//PBxP/0wcL/4Km1/6ptnf9PBXz/MgB1/0EA
292
+
e/9IAH7/SgB//0kAf/9JAH//SQB//0kAf/9JAH//SAB//0gAf/9IAH//SAB//0cAf/9HAH//RwB//0cA
293
+
f/9GAH//RgB//0YAf/9FAH7/RQB+/0UAfv9EAH3/RAB9/0QAff9DAHz/QwB8/0MAfP9BAHv/PQB7/zcA
294
+
fP9yT5P/j52D/1BWS/8oKSb/FBMT/wsLDP8ICAj/CQgJ/woKCv8JCgr/CgoK/woKCv8KCgr/CQsK/woK
295
+
Cv8KCwr/CgoK/woKCv8KCgr/CgoL/wsLCv8KCgr/DQ0N/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0N
296
+
Dv8LDAv/CwoK/wsKC/8LCwv/CgsL/woKC/8LCwv/CwsL/wsLC/8LCgr/CwsL/wsLC/8KCgr/CAgJ/woK
297
+
Cv8PDw//HR4d/z1AOv9zfWn/kYuY/zwAgP86AHr/PwB6/0EAe/9CAHv/QwB8/0MAfP9DAHz/RAB9/0QA
298
+
ff9EAH3/RQB+/0UAfv9FAH7/RgB//0YAf/9GAH//RwB//0cAf/9HAH//RwB//0cAf/9IAH//SAB//0gA
299
+
f/9IAH//SQB//0kAf/9JAH//SQB//0gAf/9DAH3/NAB3/28vif/ktbX/7MDF/+nAyv/mv8r/5L/K/+W/
300
+
y//mv8v/5sDM/+rDzf/txc//987S//jNyv+FSJP/LwBz/0EAe/9HAH7/SQB//0kAf/9JAH//SAB//0gA
301
+
f/9IAH//SAB//0gAf/9HAH//RwB//0cAf/9HAH//RgB//0YAf/9GAH//RQB+/0UAfv9FAH7/RAB9/0QA
302
+
ff9EAH3/QwB8/0MAfP9DAHz/QgB7/0IAe/9BAHv/PAB5/zcAe/9hMY7/lKGH/1RbUP8qLCn/FBUU/wwM
303
+
DP8JCQn/CQkJ/woKCv8LCwv/CwoK/wsKC/8LCwv/CwoL/wsLCv8LCwr/CwsK/woKCv8KCgr/CwoL/wsL
304
+
C/8ODg3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/wwNDP8MDAz/CwsL/wwLDP8LDAv/DAsM/wsL
305
+
C/8MDAv/DAsL/wsMDP8LCwz/CwoK/wkKCv8KCgv/EA8Q/x0fHf89Qjv/d4Ft/46EmP84AH3/OwB6/z8A
306
+
ev9AAHr/QgB7/0IAe/9CAHv/QwB8/0MAfP9DAHz/RAB9/0QAff9EAH3/RQB+/0UAfv9FAH7/RgB//0YA
307
+
f/9GAH//RgB//0cAf/9HAH//RwB//0cAf/9HAH//SAB//0gAf/9IAH//SAB//0kAf/9JAH//RgB+/zkA
308
+
ef9dHIL/5Ly3/+e9xf/iusf/4LjH/+C5yP/guMf/37jI/9+3yP/gucn/4brJ/+K8y//mwM3/8szT///e
309
+
1f9uMo7/NQB1/0UAff9JAH//SAB//0gAf/9IAH//SAB//0gAf/9HAH//RwB//0cAf/9HAH//RwB//0YA
310
+
f/9GAH//RgB//0UAfv9FAH7/RQB+/0QAff9EAH3/RAB9/0MAfP9DAHz/QwB8/0IAe/9CAHv/QgB7/0EA
311
+
ev9AAHr/PQB6/zYAef9aJor/lqOL/1ddUP8qLSr/FBUV/wwNDP8KCgn/CgoL/wsLDP8LDAv/CwsM/wwL
312
+
DP8LDAz/DAsM/wsMDP8MDAz/DAwL/wsMC/8MCwv/DAwM/w8ODv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
313
+
AP8PEA//DAwN/wwMDP8MDAz/DAwM/wwMDP8MDAz/DAwM/wwMDP8MDAz/DAwM/wsMDP8LCwv/CgoK/w8Q
314
+
EP8cHRv/PUA6/3eCbf+Ngpn/NgB7/zoAef8+AHn/QAB6/0EAev9BAHr/QgB7/0IAe/9CAHv/QwB8/0MA
315
+
fP9DAHz/RAB9/0QAff9EAH3/RQB+/0UAfv9FAH7/RgB//0YAf/9GAH//RgB//0cAf/9HAH//RwB//0cA
316
+
f/9HAH//SAB//0gAf/9IAH//SAB//0cAf/9BAHz/MwB2/8ikqf/kvML/37fG/962xv/et8b/3rjI/9+3
317
+
yP/euMj/37nI/9+4yP/gucn/4LnJ/+K7yv/mwM7/99PX/+7Qz/8vAHL/PgB6/0YAfv9IAH//SAB//0gA
318
+
f/9IAH//RwB//0cAf/9HAH//RwB//0YAf/9GAH//RgB//0YAf/9FAH7/RQB+/0UAfv9EAH3/RAB9/0QA
319
+
ff9DAHz/QwB8/0MAfP9CAHv/QgB7/0IAe/9BAHr/QQB6/0EAev9AAHn/PAB4/zcAef9WH4n/l6SM/1dd
320
+
Uf8pKyj/FBQU/w0MDf8KCwr/CwsL/wwMC/8LDAz/DAwM/wwMDP8MDAv/DAwM/w0MC/8MDAz/DAwM/wwM
321
+
Df8NDQ3/Dw8P/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQEP8ODQ3/DA0N/w0NDf8NDQz/DQ0N/wwN
322
+
Df8NDA3/DQ0M/w0NDP8NDAz/DAwL/wwMC/8PDw//Gxsa/zo8N/9yfGn/kIiZ/zUAe/85AHf/PgB5/0AA
323
+
ef9AAHn/QQB6/0EAev9BAHr/QgB7/0IAe/9CAHv/QwB8/0MAfP9DAHz/RAB9/0QAff9EAH3/RQB+/0UA
324
+
fv9FAH7/RQB+/0YAf/9GAH//RgB//0YAf/9HAH//RwB//0cAf/9HAH//RwB//0gAf/9IAH//RQB+/zkA
325
+
ev9eI4L/4b65/+C3xf/dtcb/3bbG/962xv/fuMn/37jI/9+4yP/fucn/4LnJ/+C5yv/gucn/4bvL/+K9
326
+
y//syNP//+bf/3A4kf81AHX/RQB9/0gAf/9HAH//RwB//0cAf/9HAH//RwB//0cAf/9GAH//RgB//0YA
327
+
f/9GAH//RQB+/0UAfv9FAH7/RAB9/0QAff9EAH3/QwB8/0MAfP9DAHz/QgB7/0IAe/9CAHv/QQB6/0EA
328
+
ev9BAHr/QQB6/0AAef8/AHn/PAB4/zUAeP9bJ4v/laOJ/1JYTf8nKSb/ExMT/w0NDf8LDAv/DAwM/w0M
329
+
DP8NDQ3/DA0N/wwNDP8NDQ3/DQwN/w0NDf8NDQ3/DA0N/w0NDf8QEBD/AAAA/wAAAP8AAAD/AAAA/wAA
330
+
AP8AAAD/EREQ/w8OD/8ODg3/Dg0N/w4ODv8ODQ7/Dg4N/w0NDf8NDg7/DA0N/wsLDP8MCwv/Dw4P/xkZ
331
+
GP82ODP/bHVk/5SRl/82AHv/OAB2/z0AeP8/AHj/QAB5/0AAef9AAHn/QQB6/0EAev9BAHr/QgB7/0IA
332
+
e/9CAHv/QwB8/0MAfP9DAHz/RAB9/0QAff9EAH3/RAB9/0UAfv9FAH7/RQB+/0YAf/9GAH//RgB//0YA
333
+
f/9HAH//RwB//0cAf/9HAH//RwB//0cAf/9DAH3/MQB2/6F6mv/hu8D/3rfE/923xf/dt8f/3rjI/964
334
+
yP/fuMj/4LnJ/9+5yf/gusr/4LrK/+C6yv/iu8v/4bvK/+jC0P/72tz/wZ+7/yoAcP9BAHz/RgB//0cA
335
+
f/9HAH//RwB//0cAf/9GAH//RgB//0YAf/9GAH//RQB+/0UAfv9FAH7/RQB+/0QAff9EAH3/RAB9/0MA
336
+
fP9DAHz/QwB8/0IAe/9CAHv/QgB7/0EAev9BAHr/QQB6/0EAev9AAHn/QAB5/z8AeP8+AHj/OwB3/zMA
337
+
dv9fMYv/kZ6E/01RSP8lJST/EhIS/wwMDf8MCwv/DQ0N/w0ODf8NDQ3/Dg4O/w0ODf8ODQ3/DQ4O/w0O
338
+
Df8ODQ7/Dg4N/xEREf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8SEhL/Dw8P/w4ODv8ODQ7/Dg4O/w8O
339
+
Dv8ODg//Dg4O/w4PDv8ODQ7/DQ0M/w4ODv8WFxb/MDMv/2NqXP+boZf/OwB9/zcAdv88AHf/PgB3/z8A
340
+
eP8/AHj/QAB5/0AAef9AAHn/QQB6/0EAev9BAHr/QQB6/0IAe/9CAHv/QwB8/0MAfP9DAHz/QwB8/0QA
341
+
ff9EAH3/RAB9/0UAfv9FAH7/RQB+/0UAfv9GAH//RgB//0YAf/9GAH//RwB//0cAf/9HAH//RgB//z8A
342
+
fP8wAHb/0LSs/9+5wv/ctsT/3bfH/923x//et8j/37nI/9+5yP/fucn/4LnI/+C6yv/gu8r/4bvL/+G7
343
+
yv/ivMz/5MDO//LP1//75tn/LQBx/z0Aev9GAH7/RwB//0cAf/9GAH//RgB//0YAf/9GAH//RgB//0UA
344
+
fv9FAH7/RQB+/0QAff9EAH3/RAB9/0QAff9DAHz/QwB8/0MAfP9CAHv/QgB7/0IAe/9BAHr/QQB6/0EA
345
+
ev9BAHr/QAB5/0AAef8/AHj/PwB4/z8AeP89AHf/OgB2/zIAdv9wT5L/iJR8/0ZKQv8hIiD/ERER/w0N
346
+
DP8NDQ3/Dg4O/w4ODv8ODg7/Dg4O/w0ODv8PDw7/Dg4P/w4ODv8QDw//EhIS/wAAAP8AAAD/AAAA/wAA
347
+
AP8AAAD/AAAA/xMTE/8QEA//Dw8P/w4PDv8PDw//Dg8P/w8PD/8PDw//Dg4P/w0NDP8ODw//FBQU/ysr
348
+
Kf9ZXlP/mqWR/0UHgv81AHX/OwB2/z4Ad/8+AHf/PgB3/z8AeP8/AHj/QAB5/0AAef9AAHn/QQB6/0EA
349
+
ev9BAHr/QQB6/0IAe/9CAHv/QgB7/0IAe/9BAHv/QQB7/0IAfP9DAH3/RAB9/0QAff9FAH7/RQB+/0UA
350
+
fv9FAH7/RgB//0YAf/9GAH//RgB//0YAf/9FAH7/OwB7/1ATfv/bvLX/3bfE/922xv/ct8b/3rjI/9+5
351
+
yP/eucn/37rJ/9+6yf/fusn/4LvK/+G7y//gu8r/4rzM/+G8zP/kv87/7cvV///r4f9XGYX/OAB3/0UA
352
+
fv9GAH//RgB//0YAf/9GAH//RgB//0UAfv9FAH7/RQB+/0QAff9EAH3/RAB9/0MAff9BAHz/QQB7/0EA
353
+
e/9BAHv/QQB7/0IAe/9CAHv/QQB6/0EAev9BAHr/QAB5/0AAef9AAHn/PwB4/z8AeP8/AHj/PgB3/z4A
354
+
d/89AHf/OAB1/zAAdv+Cbpf/e4Vx/z5BO/8eHh3/ERAR/w0ODv8ODQ3/Dg8O/w8PD/8ODw//Dw4P/w4P
355
+
D/8ODw//Dw8P/w8QEP8TExP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/xEQEf8PDw//Dw8Q/w8P
356
+
D/8QDw//EA8P/w8PD/8NDg7/Dg4O/xMTE/8jJCP/S1BH/5Shhv9aKon/MgB0/zoAdf88AHb/PQB2/z4A
357
+
d/8+AHf/PgB3/z8AeP8/AHj/QAB5/0AAef9AAHn/QQB6/0EAev9BAHr/QAB6/z8Aev89AHn/OAB3/zYA
358
+
d/82AHf/OAB4/zwAev9AAHz/QgB9/0MAff9EAH3/RQB+/0UAfv9FAH7/RQB+/0YAf/9GAH//RgB//0MA
359
+
fv81AHn/b0CI/926uf/duMT/3bfG/923yP/eucj/37nJ/9+7yf/fusn/37rJ/9+7yv/hu8v/4LvL/+G8
360
+
y//ivcz/4b3M/+S/zv/rx9P//+bh/4JTmv8wAHT/QgB9/0YAf/9GAH//RgB//0UAfv9FAH7/RQB+/0UA
361
+
fv9EAH3/QwB9/0IAff8/AHv/OwB5/zcAd/80AHb/NAB2/zcAd/88AHn/PwB5/0AAef9BAHr/QQB6/0AA
362
+
ef9AAHn/QAB5/z8AeP8/AHj/PwB4/z4Ad/8+AHf/PgB3/z0Adv88AHb/NgB0/zEAdv+VkZr/bHRj/zQ2
363
+
Mv8ZGRj/EA8P/w4ODv8PDw//EA8P/xAPD/8PEA//EBAQ/w8PEP8QEBD/EBEQ/xQUFP8AAAD/AAAA/wAA
364
+
AP8AAAD/AAAA/wAAAP8VFRX/ERER/xAQEP8REBH/ERAR/xEREf8QEBD/EBAP/w4PDv8TEhL/Hh4e/0FE
365
+
Pf+Bi3b/d12U/y8Ac/84AHT/OwB1/z0Adv89AHb/PQB2/z4Ad/8+AHf/PgB3/z8AeP8/AHj/PwB4/0AA
366
+
ef9AAHn/QAB5/0AAev88AHj/MwB1/ygAcf86AHb/Vxh+/1oWfv9FAHn/JQBw/y8AdP85AHn/QAB8/0MA
367
+
ff9DAH3/RAB9/0UAfv9FAH7/RQB+/0UAfv9FAH7/QgB+/zAAd/+Ycpb/3Lq+/9y4xP/cuMb/3bnI/965
368
+
yP/fucn/37rK/9+6yf/gu8r/4LzL/+C9y//gvMv/4bzL/+G9zP/ivcz/5L/O/+nF0f/739//tpS1/yoA
369
+
cf9BAHz/RQB+/0UAfv9FAH7/RQB+/0UAfv9EAH3/RAB9/0MAff8/AHv/OAB4/y0Ac/8lAHD/Swd5/14b
370
+
f/9bGH7/PgB1/yQAbf8xAHP/OwB3/z8Aef8/AHn/QAB5/0AAef8/AHj/PwB4/z8AeP8+AHf/PgB3/z0A
371
+
dv89AHb/PQB2/zwAdf86AHX/NAB0/zsAfP+bpJX/XGJW/ywtK/8WFhb/EA8Q/w8PD/8QEBD/EBAR/xEQ
372
+
Ef8REBD/EBEQ/xAQEP8RERH/FRQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xYVFf8REhL/ERER/xER
373
+
Ef8REhH/ERER/xEREf8PEA//ERER/xkZGP8zNTL/bHRk/5OPmf8uAHP/NQBz/zoAdP88AHX/PAB1/z0A
374
+
dv89AHb/PQB2/z4Ad/8+AHf/PgB3/z8AeP8/AHj/PwB4/0AAef8+AHj/OAB2/ysAcv86AHT/p3GZ/+S1
375
+
tf/tvb//7sDA/++9vv/Olqr/czOI/y0Acf8uAHT/OgB5/0EAfP9DAH3/RAB9/0QAff9FAH7/RQB+/0UA
376
+
fv9AAHz/KgB0/7KVn//duL//3LfF/9y3xv/ducf/3rrI/9+7yv/fu8r/37zL/+C7y//gvMv/4LzL/+G9
377
+
y//hvcz/4b3M/+K+zf/kv87/58XS//jZ3f/axMv/IgBs/z4Ae/9EAH7/RQB+/0UAfv9EAH3/RAB9/0MA
378
+
ff9BAHz/OgB5/y0AdP8rAHD/fDmO/9SZrf/2wcT/+MbK//zMzP/2xcb/uoSn/z0AdP8nAG3/NgB0/z4A
379
+
eP8/AHj/PwB4/z8AeP8+AHf/PgB3/z4Ad/89AHb/PQB2/z0Adv88AHX/PAB1/zsAdf84AHP/MQBz/1Mi
380
+
hv+VoYj/TFBH/yMkI/8SExP/EA8P/xAQD/8QERH/ERIR/xEREf8RERH/ERER/xISEv8VFRb/AAAA/wAA
381
+
AP8AAAD/AAAA/wAAAP8AAAD/FhcX/xMTE/8SExL/EhIS/xESEv8SEhL/EBAQ/xEQEf8WFhX/Kywq/1dc
382
+
Uv+dp5P/PAB8/zIAcf85AHP/OwB0/zsAdP88AHX/PAB1/zwAdf89AHb/PQB2/z4Ad/8+AHf/PgB3/z4A
383
+
eP8/AHj/PQB3/zYAdf8lAG//bDKG/9qysf/mvsH/4brE/964xP/fucX/4bzH/+nByP/xxcb/2KSx/2cm
384
+
gv8kAHD/MwB2/z4Aev9CAHz/RAB9/0QAff9EAH3/RAB9/z4Ae/8uAHX/xaqo/9y2wP/bt8X/3bjG/925
385
+
yP/eusj/37rJ/9+8yv/gu8n/4LzL/+C8y//hvMv/4L3L/+G9zP/hvcz/4r/M/+O/zv/mw9H/9NTb/+/b
386
+
1P8oAG//OwB5/0MAff9EAH3/RAB9/0QAff9CAHz/PQB6/zMAdv8jAHD/aymF/92jsv/ywMX/78PN/+7F
387
+
0P/rxtL/7sjU//LP1//919r/9s/N/3A3iP8gAGn/NABz/zwAd/8+AHj/PgB3/z4Ad/8+AHf/PQB2/z0A
388
+
dv89AHb/PAB1/zwAdf87AHT/OwB0/zoAdP82AHL/LQBx/3xllP97hXL/PT86/x4eHf8SEhP/EBAQ/xES
389
+
Ev8SEhL/EhIS/xISEv8SExL/ExMS/xYXF/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8YGBf/FBQT/xMT
390
+
E/8TEhP/ExMT/xISEv8RERH/FBQU/yEhIP9ESEL/ipZ+/2Q+jP8uAHD/NwBy/zkAc/86AHP/OwB0/zsA
391
+
dP88AHX/PAB1/zwAdf89AHb/PQB2/z0Adv8+AHf/PgB3/zwAdv81AHT/IwBt/3hGiP/lwLv/4LvC/9q3
392
+
w//XtML/17TC/9i0wv/btcP/3LbE/+K8x//sw8z/88XG/7iAov84AHT/LABz/zoAeP9BAHv/QwB8/0QA
393
+
ff9DAH3/OgB5/0EBfv/Ptar/3LjC/924xv/ducf/3brI/966yf/eu8r/37vK/+C9y//fvMr/4L3L/+C9
394
+
zP/hvcz/4b7N/+G/zP/ivs7/48DO/+bD0P/y0dr///jr/z8Aa/84AHj/QgB9/0QAff9DAHz/QAB7/zoA
395
+
ef8sAHP/OAB0/7qBpf/zvsP/7sLM/+rCz//mwc//58LR/+fD0P/nxNL/6cbU/+7L1//41dz//+Pc/4xZ
396
+
l/8dAGf/MwBy/zsAdv8+AHf/PQB2/z0Adv89AHb/PQB2/zwAdf88AHX/OwB0/zsAdP87AHT/OgBz/zkA
397
+
c/80AHL/LgBz/5yfmv9ialz/LzAt/xgZGP8REhL/ERER/xITEv8TExP/EhIT/xMTEv8UFBT/GBgY/wAA
398
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/xkZGf8VFBT/ExMU/xQUFP8UExP/EhIS/xIREv8bGxr/NTcz/210
399
+
Zf+TjJv/KgBw/zQAcf84AHL/OgBz/zoAc/86AHP/OwB0/zsAdP87AHT/PAB1/zwAdf89AHb/PQB2/z0A
400
+
dv88AHb/NgB0/yMAbP97S4n/4766/966wv/YtcH/1rPA/9aywP/Ws8H/17LB/9izwv/YtML/27XE/964
401
+
xv/lvsn/8MXL/+Ozuf9rLYb/JABv/zYAd/8/AHr/QgB7/0EAe/82AHf/URWB/9C0rv/bt8P/3LjH/925
402
+
yP/cusj/3brI/9+8yv/fu8r/4LzL/+C9y//gvcv/4b3M/+C9zP/hvs3/4b7M/+LAzf/iwM//5cHQ/+/P
403
+
2P//9+z/UQJu/zMAdv9AAHv/QgB7/z8Aev82AHf/IwBv/2wvh//jrrb/777I/+i/zP/mwc//5cDP/+XB
404
+
0P/mwtH/5sLS/+bD0f/mw9P/6MXS/+vJ1v/21Nz//+Xg/4hclv8dAGb/NABy/zsAdf89AHb/PQB2/zwA
405
+
df88AHX/PAB1/zsAdP87AHT/OwB0/zoAc/86AHP/OgBz/zcAcf8wAHD/TxyD/5ekiv9MT0j/JSUk/xYV
406
+
Ff8QERL/EhMS/xMTFP8UFBP/ExMU/xUUFP8YGRn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/GRkZ/xUV
407
+
Fv8VFBX/FBQV/xMTFP8TExP/FhYX/ygqJ/9TV0//namS/z4De/8wAG//NwBx/zkAcv85AHL/OgBz/zoA
408
+
c/86AHP/OwB0/zsAdP87AHT/PAB1/zwAdf88AHX/PAB2/zgAdP8oAG7/ZTGD/+PBuv/dusP/2LXB/9az
409
+
wP/VssD/1rLB/9ezwf/Xs8L/17TC/9i1xP/ZtMP/2rbE/9y4xv/hvMn/7cXM//LFxf+YZpL/KwBz/zAA
410
+
dP87AHn/PAB6/y0AdP9cJn//27i3/9u3xP/cuMf/3LjG/925yP/eu8n/37vK/9+8yv/fvcr/37zK/+G8
411
+
y//gvsz/4b3L/+G+zf/iv83/48DO/+PBz//lwtH/7MvW///l4P9kMYn/KQBx/zoAeP87AHj/LwB0/ywA
412
+
c/+bZpT/7ru+/+u/yv/nv83/5cDO/+TB0P/mwtH/5sHR/+fD0v/mw9L/58TT/+fE0v/nxdP/6cXU/+vJ
413
+
1v/41d3//+nh/3A9i/8iAGj/NgBz/zwAdf88AHX/PAB1/zwAdf87AHT/OwB0/zoAc/86AHP/OgBz/zoA
414
+
c/85AHL/OQBy/zQAcP8qAG//gnCW/3d/bv85Ojf/HRwc/xQUE/8TEhL/FBQU/xQUFP8VFRX/FhUW/xoZ
415
+
Gf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8bGxv/FxYW/xUWFf8VFRT/ExMT/xUUFf8eHx//PT86/36H
416
+
dP92W5L/KgBt/zQAcP83AHH/OABx/zkAcv85AHL/OgBz/zoAc/86AHP/OgBz/zsAdP87AHT/PAB1/zwA
417
+
df86AHT/MABw/zYAcf/Tta7/3rvB/9e1wf/Vs8D/1bHA/9Wzwf/WssH/17PC/9e0wv/YtML/17TD/9i0
418
+
w//ZtcT/2rfF/9y4xv/hvMn/6cPM//PHyv/Ll6v/NwBy/yMAb/8mAHD/FQBl/6h6mv/fuMD/3bjF/9y4
419
+
xv/cucf/3bvI/9+7yf/fu8n/37vK/9+9yv/fvcv/4L3L/+G+zP/hvs3/4b7N/+G/zP/iv87/48DO/+TC
420
+
z//pxdP/+NXb/7eLq/8YAGb/JABu/yMAbv83AHP/zJWr/+6+xP/pvsv/5b/N/+S/zv/kv87/5cHQ/+XC
421
+
0f/lwtH/5sTS/+fE0//nxdL/58TT/+jF0//mxNP/6MTT/+zK1v/62t///+vg/zkAcv8rAGz/OQBz/zwA
422
+
df87AHT/OwB0/zsAdP86AHP/OgBz/zoAc/85AHL/OQBy/zkAcv84AHH/NwBx/zAAbv8zAHX/oaqX/1hd
423
+
U/8qKyn/FxcY/xQUFP8UFRT/FRUV/xUVFf8WFhb/Gxsa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xwc
424
+
HP8YFxf/FxYW/xQVFf8UFBT/GRkY/ywtK/9dYlj/oKaa/ywAcP8xAG7/NgBv/zgAcf84AHH/OABx/zkA
425
+
cv85AHL/OQBy/zoAc/86AHP/OgBz/zsAdP87AHT/OgB0/zcAc/8kAGv/nHuW/929vv/Yt8H/1bLA/9ay
426
+
wP/Us8D/1bLA/9azwf/Ws8H/17TD/9e1wv/YtcP/2bbE/9q3xf/Zt8T/27fG/9u4xv/fu8j/5cDL/+/H
427
+
zf/frrb/ezuG/2UhgP++h6f/5bjA/+G7x//bucf/27fG/9y5x//dusf/3rrJ/967yf/eu8n/37zL/+G9
428
+
y//gvcv/4L3L/+C+y//hv83/4sDO/+O/zv/jwM7/5MDP/+TB0P/rx9L/9c3S/8GLqf9jHn//ezmG/+Cr
429
+
tP/svsf/573K/+S/zf/kwM7/5MDP/+TB0P/lwtH/5sPS/+bD0v/mxNL/5sTT/+fF1P/oxdP/58XU/+jG
430
+
1P/nxtT/6sfV/+/O2f//5+b/ya7D/xsAYv80AHD/OgBz/zsAdP86AHP/OgBz/zoAc/86AHP/OQBy/zkA
431
+
cv85AHL/OABx/zgAcf83AHD/NABv/ysAbf9sTI7/hI55/0BBPv8fISD/FRUV/xUUFP8VFRX/FhYW/xcX
432
+
F/8bHBz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/HR0d/xgXGP8XFxf/FBUV/xYWFv8hIiH/QkRA/4mT
433
+
fv9kQYv/KwBs/zMAbv83AHD/NwBw/zcAcP84AHH/OABx/zkAcv85AHL/OQBy/zoAc/86AHP/OgBz/zoA
434
+
c/86AHP/MgBw/zkAd//LtKf/2rnA/9azwf/Vsr//1bPA/9Wzwf/WtMH/1rPC/9a0wv/XtML/17XD/9i1
435
+
w//YtsP/2LbE/9q2xf/buMX/27fG/9u4xv/eusj/473K/+i/yv/pusT/6LzD/+fByP/ivsn/3brH/9u4
436
+
xv/bt8X/3bjH/9y5x//dusj/3rvI/967yf/fu8n/4L3K/+C8y//iv83/4r7M/+K/zf/iwM7/48DP/+TB
437
+
z//jwM7/48DO/+XBz//qx9L/9dDX//XL0f/vwMr/6b/L/+W/zP/jvs3/47/O/+PAz//kwdD/5cPR/+bE
438
+
0v/mw9L/5sTS/+fE0//nxdP/58XT/+fF0//nxdT/6MbU/+fF1P/px9T/68rX//ja4P////P/MgBu/y4A
439
+
bf85AHL/OgBz/zoAc/86AHP/OQBy/zkAcv85AHL/OABx/zgAcf84AHH/NwBw/zcAcP81AG//MABt/ygA
440
+
bf+gpZz/YGVa/y4vLf8aGhn/FRUW/xYWFv8XFxb/GBgY/x0dHf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
441
+
AP8eHh7/GRka/xcXF/8WFhb/Ghoa/zAwLv9gZlv/n6Kc/yYAbP8vAGz/NQBu/zYAb/83AHD/NwBw/zcA
442
+
cP84AHH/OABx/zgAcf85AHL/OQBy/zkAcv86AHP/OgBz/zgAcv8vAG7/TiB//9G7rv/Xt8D/1LPA/9Sy
443
+
wP/Usr//1LLA/9a0wf/Ws8H/1rXC/9i2w//YtsP/2LbE/9i2w//at8X/2rjF/9q4xv/at8X/27fG/9y5
444
+
xv/cucf/3rnG/9+6yP/eusf/3bnG/9u4xv/atsT/27TF/9q0w//YssL/16/A/9Wrvf/Up7r/06W6/9Kk
445
+
uP/Upbj/1aa6/9msv//dssT/4bfI/+O9zP/lv87/5MDP/+TBz//lwM//48DO/+XBz//nxNH/6MbS/+bD
446
+
0P/lwM7/477O/+O/zf/kwM//5MHP/+XC0P/mw9H/5sPR/+bD0v/nxNP/5sTT/+fF0//nxtT/6MXU/+jH
447
+
1f/ox9T/6cfV/+nI1v/qytf/89Xd////9/9dMIn/KQBo/zcAcf86AHP/OgBz/zkAcv85AHL/OQBy/zgA
448
+
cf84AHH/NwBw/zcAcP83AHD/NgBv/zYAb/8zAG7/KgBr/2Q/i/+KlH//Q0VB/yIiIv8XFxb/FhYW/xcX
449
+
GP8ZGRn/Hh4d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x8fH/8aGRr/FxYW/xcYGP8iIyH/REVC/4mT
450
+
f/9iPon/KQBq/zMAbf81AG7/NQBu/zYAb/82AG//NwBw/zcAcP83AHD/OABx/zgAcf84AHH/OQBy/zkA
451
+
cv85AHL/OABy/y8Abv9HHHX/0b6y/9W2v//Vs8D/1LPA/9Wzwf/WtMH/1bPB/9a0wv/WtMP/17XD/9i2
452
+
w//YtsP/2LfE/9m3xf/Zt8T/2bfF/9q4xf/bt8b/27fF/9u4xv/atsX/2rbE/9i0w//Ys8L/17DB/9Sq
453
+
vP/QpLf/ypmv/8SPp/+7iJ7/toOc/7GBmP+wgZb/roCW/66Blv+ugZb/sIKX/7KEmv+4iJ7/wJCn/8yd
454
+
sv/aq8D/5bvL/+fB0f/nwdH/5cDP/+TBz//jwM7/5MDP/+PAzv/jwM7/4sDO/+TB0P/lwtH/5MPR/+XE
455
+
0v/lxNP/5sXT/+fE0v/mxdP/58XT/+jF0//nxtT/58fV/+jF0//oyNb/6cjW/+nK1//z1d7////7/2Q6
456
+
j/8oAGj/NwBx/zkAcv85AHL/OABx/zgAcf84AHH/NwBw/zcAcP83AHD/NwBw/zYAb/82AG//NQBu/zQA
457
+
bv8vAGz/JABq/5+inP9hZlz/LzAu/xsaGv8WFxf/GBgY/xoaGf8gHx//AAAA/wAAAP8AAAD/AAAA/wAA
458
+
AP8AAAD/ICAg/xsaGv8XGBf/Gxsb/y4vLf9eY1n/o6md/yYAbP8uAGv/MwBs/zUAbv81AG7/NQBu/zYA
459
+
b/82AG//NgBv/zcAcP83AHD/OABx/zgAcf84AHH/OQBy/zkAcv84AHH/MABv/zgEcP/Jvqv/1be//9S0
460
+
wf/UssD/1bPA/9a0wf/WtML/1rXC/9a2w//YtsP/2LbE/9e2w//Zt8T/2LbF/9m3xf/at8X/2bfF/9q4
461
+
xf/at8X/2bfF/9i2xP/YssL/1K6+/8+luf/Jma7/wY2l/7WEmv+sgJT/qYCT/6yDlv+uhZj/soib/7OJ
462
+
nf+0ip7/tYuf/7aMn/+2jaD/t42g/7aOof+2jZ//tIue/7SJnf+6jqH/yZyw/960xv/qwtP/58LR/+bC
463
+
0P/kwM//5MDP/+S/zv/kwc//5cLQ/+TD0f/kw9H/5cTS/+XE0v/mxdP/58XT/+fG0//nxtT/6MbU/+jH
464
+
1f/pxtT/6cfW/+nH1v/pydb/68zX//fd4v//////SBeA/yoAaP83AHH/OQBy/zgAcf84AHH/OABx/zcA
465
+
cP83AHD/NwBw/zYAb/82AG//NQBu/zUAbv81AG7/NABt/zEAbP8oAGr/ZkSL/4eRff9DRUH/IiIh/xcX
466
+
GP8YFxj/Gxoa/yEgIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/Ghoa/xkaGP8jIiL/QEI+/4KK
467
+
eP9vUo//JwBp/zEAbP80AG3/NABt/zQAbf81AG7/NQBu/zYAb/82AG//NgBv/zcAcP83AHD/NwBw/zgA
468
+
cf84AHH/OABx/zgAcf8zAHD/IQBo/6Wbl//Tu7r/1bXB/9KzwP/Vs8D/1LPA/9a0wv/WtML/1rXC/9e2
469
+
w//XtcP/2LfE/9i2w//Zt8T/2bfE/9i3xP/Zt8b/2bfE/9m2w//Ys8L/1K6+/86jtv/FlKn/vYef/62A
470
+
lf+mgJL/p4KU/62Gmf+xiJv/soqd/7SMn/+1jaD/t46h/7iPov+5kKP/upGj/7uSpf+8kqb/vZSm/72V
471
+
p/++laj/vZWn/72Upv+5kKL/tYyf/8KXqf/ds8T/6cLT/+jD0v/lwc//5MLQ/+TC0P/lw9H/5cPR/+bE
472
+
0v/lxNL/58TT/+fF0v/mxdP/58XU/+fF0//oxtT/6MbU/+jI1f/pyNb/6cnW/+nK1//tz9r//+7t///5
473
+
8/8TAFr/LwBr/zcAcP84AHH/OABx/zcAcP83AHD/NwBw/zYAb/82AG//NgBv/zUAbv81AG7/NQBu/zQA
474
+
bf80AG3/MwBt/y0Aa/8mAGv/pKuc/1tgVv8uLy3/Gxwa/xgYGP8bHBz/IiEh/wAAAP8AAAD/AAAA/wAA
475
+
AP8AAAD/AAAA/yIiIv8bGxv/Gxsb/ysrKv9WWVL/pLCZ/ysAb/8sAGr/MgBr/zQAbf80AG3/NABt/zQA
476
+
bf80AG3/NQBu/zUAbv81AG7/NgBv/zYAb/82AG//NwBw/zcAcP84AHH/NwBx/zUAcP8oAGv/Wj58/869
477
+
sv/VuMD/07PA/9S0wf/VtMH/1rXC/9a1wv/XtsP/17bD/9i2xP/Yt8T/2bfE/9i3xP/Zt8T/2LfE/9m2
478
+
xP/YtcP/1bHB/9Cquf/Hma7/vYig/62Dlv+kgpL/qYWW/66Hmf+wiJv/sYqc/7OLnf+0jJ//tY2g/7eO
479
+
of+4j6L/uZCj/7uSpP+6kqT/vJOm/72Up/++laj/v5ap/7+Xqf/AmKv/wJiq/8CZq/+/mKr/vZan/7eQ
480
+
ov/Gna//5bzN/+rF1P/mw9H/5cHR/+TD0f/mxNH/5cPR/+XE0v/nxdL/58bU/+bF0//nxtT/5sXT/+fH
481
+
1f/ox9X/6MjV/+nI1f/qytf/6szZ//Xa4f//////iWqm/xwAX/8zAG7/NwBw/zcAcP83AHD/NwBw/zYA
482
+
b/82AG//NgBv/zUAbv81AG7/NQBu/zQAbf80AG3/NABt/zQAbf8zAGz/MABr/yYAaf93YJH/fIRz/zw+
483
+
Ov8hISD/GRoa/xwcHP8iIiL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/IyIi/xwcHP8gICD/OTs4/3N7
484
+
bP+IeJf/IwBp/y8Aa/8zAG3/MwBs/zMAbP80AG3/NABt/zUAbv81AG7/NQBu/zUAbv81AG7/NQBu/zYA
485
+
b/82AG//NgBv/zcAcP83AHD/NgBw/y8Abv8iAGX/qqOa/9S8vf/TtsD/1LTA/9W0wf/VtcL/1bXC/9e2
486
+
w//Yt8P/2LbE/9e2w//YtsP/2LbE/9i3w//YtsP/1rTC/9Ouvv/KobP/wI6k/7SFmf+kgpL/qISV/6yH
487
+
mf+vipv/sYud/7KLnf+zjJ7/tIye/7WNoP+2jqH/t4+i/7iQov+5kKP/upGl/7uSpf+8k6b/vZWn/76W
488
+
qP+/l6n/wJir/8GarP/Cmq3/xJyt/8Ocrv/Dna3/wp2u/8Caq/+7lab/1a2+/+vF1P/ow9L/5sTR/+XE
489
+
0v/mxNL/5sXS/+bF0v/mxtP/58bU/+fH1P/oxtT/58fU/+jI1f/oyNX/6cnW/+nM1//v0tz///Dt////
490
+
+/8ZAF7/KQBn/zUAbv83AHD/NwBw/zYAb/82AG//NgBv/zUAbv81AG7/NQBu/zUAbv81AG7/NABt/zQA
491
+
bf8zAGz/MwBs/zMAbf8yAGz/KgBq/zkDd/+hrZT/UVVO/ykrKf8cGxz/HBwc/yQjJP8AAAD/AAAA/wAA
492
+
AP8AAAD/AAAA/wAAAP8jIyP/HR0d/ygpJ/9LTkj/lqGJ/0wdgv8pAGr/MQBs/zMAbf8zAG3/MwBt/zQA
493
+
bf80AG3/NABt/zQAbf81AG3/NQBu/zUAbv82AG//NgBv/zYAb/82AG//NgBv/zcAcP83AHD/MwBv/yYA
494
+
af9OKHT/y7+v/9S7wP/UtsH/1bXB/9W1wv/VtcL/1rbD/9e3xP/XtsP/17bE/9i2xP/XtsT/17XD/9az
495
+
wP/Rrb3/x52v/7yJoP+qhZb/o4SS/6mHl/+tiZn/r4qb/7GLnP+yjJ7/so2e/7OMnv+0jJ//tY2g/7aO
496
+
oP+3jqH/uI+i/7mQo/+6kaT/upKk/7ySpv+9lKf/vpao/7+Xqf/Amav/wZqs/8Kbrv/Dna7/xJ2v/8Wf
497
+
sP/GoLH/xaCx/8Sfsf++mar/yqS1/+nD0f/oxdX/5sTS/+bE0v/mxdP/5sXT/+fG0//nxtP/58fU/+jI
498
+
1f/nx9T/6MnV/+jK1//pytf/7M7a//ni5v//////c0+Y/xsAXv8xAGz/NgBw/zYAb/82AG//NgBv/zYA
499
+
b/82AG//NQBu/zUAbv81AG7/NABt/zQAbf80AG3/NABs/zQAbf8zAG3/MwBs/zIAbf8uAGv/IgBq/5SN
500
+
nP9rcGT/Nzc1/x8gH/8cHR3/JCQk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yQkJP8hISH/MTIx/2Jn
501
+
XP+jpp//IQBs/y4Abf8yAG7/MwBt/zMAbf8zAG3/MwBt/zMAbv80AG3/NABt/zQAbf80AG3/NQBu/zUA
502
+
bv81AG7/NQBu/zYAb/82AG//NgBv/zYAb/82AG//MABt/x4AZv+NgIv/0L64/9W5wv/VtcL/1LXB/9W2
503
+
wv/WtsL/17bD/9i2w//Xt8P/17fE/9e2w//UssD/0Ky6/8SZrP+6iJ3/o4SS/6WFk/+piJf/rYmZ/66L
504
+
m/+wjJz/sYyd/7GNnf+yjJ3/s4ye/7KMnf+0jJ7/tIyf/7WMn/+2jKD/tYyf/7eNoP+3jqH/uZCj/7qR
505
+
pP+8lKb/vpWo/7+Xqf/Bmav/w5ut/8Ser//EnrD/xqCx/8ehs//Io7P/yKS0/8ejtP/DobH/xKCw/+fA
506
+
0P/pxNP/58XU/+XE0v/nxtL/5sfU/+bG1P/mx9P/58jU/+jI1f/oytb/6crX/+vN2f/y2eD////3/+DX
507
+
4P8RAFj/KwBo/zQAbv82AG//NgBv/zYAb/81AG7/NQBu/zUAbv81AG7/NQBu/zQAbf80AG7/NABt/zMA
508
+
bv8zAG3/MwBu/zMAbf8zAG3/MgBu/zEAbv8oAGz/YT2N/4qUfv9GR0P/JiYl/x4eHv8lJSX/AAAA/wAA
509
+
AP8AAAD/AAAA/wAAAP8AAAD/JSUk/yUlJf8/QD3/fIRz/3dglP8lAG3/MABv/zMAb/8zAG//MwBu/zMA
510
+
bv8zAG3/MwBt/zMAbv8zAG7/NABu/zQAbf81AG7/NQBv/zUAbv81AG7/NQBv/zUAb/82AG//NgBv/zUA
511
+
b/8zAG7/KwBr/ysAaP+zrp//0728/9S3wf/Ut8L/1LXB/9W2wv/WtcL/1rXC/9a2w//WtcL/1LLA/8+r
512
+
u//EmKr/t4ad/6OGk/+mhpX/qoiY/6yLmv+ui5v/r4yc/7CNnP+xjJ3/sYyd/7GLnf+xipz/sYmc/7GI
513
+
m/+whpn/roaZ/6+Gmf+wh5r/sIia/7CJm/+xipz/s4ud/7WNn/+3kKL/vJSm/76Xqf/Bmqv/w52u/8Sf
514
+
sP/HobL/x6Oz/8mktf/Kprb/yqe2/8qntv/GpLT/wqKx/+XAz//qxtT/58bU/+bG0//nxtP/58fU/+jI
515
+
1P/ox9X/6MrW/+nK1//pzNj/8NTe///u7P//////LQBq/yEAYv8xAGz/NQBv/zYAb/82AG//NgBv/zUA
516
+
b/81AG7/NQBu/zUAb/80AG7/NABt/zMAbv8zAG7/MwBt/zMAbv8zAG3/MwBv/zMAb/8zAG//MgBv/ywA
517
+
bv8qAHP/p7Ka/1hcVP8uLy7/ICAg/yUlJf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8mJib/LC0s/05Q
518
+
Sv+apYv/RxSF/ysAcP8yAHH/MwBx/zMAcP8zAHD/MwBv/zMAb/8zAG7/NABv/zMAbv80AG7/NABu/zQA
519
+
b/80AG7/NABv/zUAb/81AG//NQBw/zYAcP82AHD/NgBw/zYAcP8yAG//JQBq/08pc//GwK//1Lu//9S3
520
+
wv/UtcL/1bfC/9a2wv/Vt8P/1rbC/9W0wf/PrLv/xZyt/7eGnf+hhZL/pYeV/6mJmP+ripn/rYua/66L
521
+
m/+vjJz/sIuc/7GLnP+wipz/sIma/66Hmf+rg5X/rYWY/7WOoP+9lqf/xJqs/8eesP/KoLP/y6G0/8uh
522
+
tf/Jn7P/xp6x/76Zqv+4kqP/t5Gi/7yWp//Bm6z/w56u/8agsv/Ho7T/yKW1/8qntv/LqLf/zKm4/8yp
523
+
uP/JqLf/xqa0/+fBz//oxtT/58bU/+bG0//nxtT/58jW/+fJ1f/oydX/6czX/+zS2//55ef//////3VR
524
+
mv8ZAF7/LwBr/zUAb/82AHD/NgBw/zUAcP81AG//NQBv/zUAb/80AG//NABu/zQAb/80AG7/MwBu/zQA
525
+
b/8zAG7/MwBv/zMAb/8zAG//MwBw/zMAcP8zAHH/MABx/yQAb/+RhZ3/bnRm/zk5N/8kJCP/JiYm/wAA
526
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/yopKv81NDT/YGRa/6esn/8jAHX/MAB0/zMAc/80AHL/NABy/zQA
527
+
cv8zAHD/NABx/zMAcP8zAHD/NABv/zQAb/80AHD/NABw/zQAb/80AG//NQBw/zUAcf81AHD/NgBx/zUA
528
+
cf82AHD/NgBx/zQAcP8uAG7/HQBn/3Zrjf/NvbP/1LvA/9S3wv/UtcL/1bbC/9S1wf/Vs8H/0a+9/8ef
529
+
sP+4iJz/o4eT/6WIlf+pipj/rIua/6yMmv+tjJv/rYub/66Lm/+ui5v/rYmZ/6uGl/+pg5X/sIuc/72X
530
+
qP/En6//xp6x/8aesP/HoLL/yaKz/8qltf/LpLb/zaW3/82lt//Qpbj/0ai7/9OqvP/OqLn/wJys/7uW
531
+
p/++m6r/xJ+w/8aisv/IpbX/yqi3/8upuP/Nq7r/zay7/82tu//Kqrj/yau4/+rG1f/pxtT/58fU/+fI
532
+
1f/oydX/58nX/+nL1//rz9r/9d/j////+/+2o8L/DQBX/ykAaf8zAG//NgBx/zUAcP81AHD/NgBx/zUA
533
+
cP81AHD/NQBw/zMAb/81AG//NABw/zQAcP80AG//MwBv/zMAcP80AHH/MwBx/zQAcf8zAHH/NABz/zQA
534
+
cv8yAHT/KgB0/2dDk/+Iknz/RUdD/ygoKP8mJif/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LC0s/z9A
535
+
Pf91fGz/hnOc/ycAd/8yAHf/NAB2/zUAdf81AHT/NABz/zQAc/80AHL/NABy/zQAcf80AHH/NABx/zQA
536
+
cf80AHH/NQBx/zUAcf81AHD/NQBx/zUAcv81AHL/NgBy/zYAcf82AHL/NwBz/zUAcv8tAG//HgBl/52S
537
+
kP/Rvbr/1bnB/9S1wv/VtsL/1bXA/9Cwvv/KpbX/vIyg/6WGlf+jiJT/qIqX/6qLmf+tjJv/rIyb/62M
538
+
m/+ti5v/rYqa/6yImf+phJX/rYma/7uXp//Bnq3/wp2t/8ShsP/FqbL/xa+0/8WytP/GtbX/x7a0/8i2
539
+
tP/HtLT/x7K2/8mwt//NsLr/0au8/9KqvP/VrL//0au8/8Ogrv++m6r/xKGw/8iltf/KqLj/zKq5/82s
540
+
u//Orbv/0K+9/8+wvf/Mrbr/0rO//+vI1v/oyNX/58jV/+jJ1//oytb/683Z//HY3///+vP/9O3o/xkA
541
+
YP8mAGj/NABx/zcAc/82AHH/NgBy/zYAcv82AHL/NQBx/zUAcf81AHH/NQBx/zQAcf80AHH/NABx/zQA
542
+
cf80AHH/NABy/zQAc/80AHP/NABz/zQAc/80AHX/NQB1/zQAd/8uAHf/OQCD/6Sxk/9UV1D/LzAv/ykp
543
+
Kv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8yMzP/SkxI/4yWgP9iOJX/KwB5/zQAef82AHn/NgB4/zUA
544
+
d/81AHf/NQB2/zUAdf81AHT/NQB0/zUAdP81AHP/NQB0/zUAdP81AHT/NQBz/zYAc/81AHP/NgBz/zYA
545
+
c/83AHX/NgB0/zcAdP83AHT/NwB1/zQAdP8pAHD/LQBv/7Opnf/Tur3/1bfC/9SzwP/RsL7/zKm4/8CT
546
+
pv+th5j/n4iS/6eKl/+qjJr/q4ya/6yNm/+sjJz/rIya/6yKmv+qiJf/p4SU/7KSoP+9nKr/vpyq/8Gi
547
+
rv/FsrX/yby4/83CuP/Ryrf/0ci0/7qqq/+vm6f/rpqn/7moq//QxbL/0sSz/829tP/JtrX/zLK6/9Kw
548
+
vv/Urr7/17LD/82ruv/Anq7/xaOy/8motv/Lq7n/zq68/8+vvf/Rsb//0bK//9Czv//Lr7v/3L3J/+rH
549
+
1v/oydb/6crW/+jL1//rz9n//ejp////9f8sAG7/IABn/zIAcv82AHT/NwB0/zcAdP82AHT/NwB0/zYA
550
+
c/81AHP/NgBz/zUAc/81AHP/NgB0/zUAc/81AHT/NQBz/zUAdf81AHT/NQB1/zUAdf81AHb/NQB3/zUA
551
+
eP81AHj/NQB5/zEAef8kAHr/o6Kh/2RqXv83ODf/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zg4
552
+
N/9WWVP/pLKS/zwAiv8wAH7/NgB9/zYAfP82AHv/NgB6/zYAef81AHj/NQB4/zYAd/81AHj/NQB2/zYA
553
+
dv82AHb/NgB2/zYAdv83AHb/NgB2/zcAdv83AHb/NgB2/zcAd/83AHf/NwB3/zcAd/84AHj/NwB3/zEA
554
+
df8eAG7/aEmA/9K6uP/XuML/07O//8+uvP/Enq7/toqd/5+Ikv+kiZb/qYyY/6uNmv+rjZr/rY6b/6yM
555
+
mv+ri5r/qoiX/6eGlf+0lqP/u5yp/7ubqP/ErrP/zcO9/9XNvP/BtrL/gV6a/0sShf8qAHr/JAB3/yMA
556
+
d/8jAHf/JAB3/yoAev9JEYT/f1qX/8CvrP/SxLX/zLm3/9C1vf/Vs8D/17PD/9Wzwv/CorH/xqa0/8qr
557
+
uf/Orrz/0LC+/9Kzv//TtMD/07XB/9K0wP/Msbz/6MbT/+nJ1v/oydX/6cvW/+3P2f//8u3/i2yp/xIA
558
+
Yf8uAHL/NgB3/zcAeP83AHf/NwB3/zcAd/82AHf/NgB2/zcAdv82AHb/NgB2/zYAdv82AHb/NgB2/zYA
559
+
d/81AHb/NQB3/zUAd/82AHf/NQB4/zYAef82AHn/NgB7/zYAe/83AHz/NAB+/ykAfv+Eb53/d4Bu/0FC
560
+
P/8vLy//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/P0A+/2VqX/+oq6H/JgCC/zMAgP84AID/NwB//zcA
561
+
fv83AH3/NwB9/zYAfP83AHv/NgB6/zYAev82AHr/NgB6/zYAev83AHr/NwB6/zcAeP83AHn/NwB5/zgA
562
+
ef84AHr/OAB6/zgAev84AHn/NwB6/zgAev82AHr/MgB5/yAAc/9aMIH/2by7/9e4w//RsL7/yqe3/7yQ
563
+
ov+liJX/oYiT/6eLmP+qjJr/q42a/6uNmv+sjZr/q4ya/6qJl/+nhpX/spej/7ebp/+5naf/zL69/9bS
564
+
w//Kwbf/ZjiS/ycAfP8rAH7/MgCB/zcAg/86AIT/OwCF/zsAhf86AIT/NwCD/zIAgf8rAH7/JgB8/2U2
565
+
kP/Gta//0cG2/8+4uv/Wt8L/17bD/9i3xf/FpbP/yKq3/82vvP/Qsr7/0rTA/9O1wv/Vt8T/1LjE/9K2
566
+
wv/WusX/7MnW/+nJ1//oydX/7M7Z///t6f9mPZP/GABp/y8Ad/82AHr/NwB6/zcAef84AHn/OAB6/zgA
567
+
ev84AHr/NwB5/zgAef83AHj/NwB5/zcAev83AHr/NgB6/zYAev82AHr/NgB6/zYAe/83AHz/NwB8/zcA
568
+
ff83AH7/OAB//zcAgP82AID/LQCA/2c+m/+Lln7/SkxH/zQ0NP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
569
+
AP9HSUb/dHxs/49+ov8pAIX/NgCE/zgAhP84AIL/OACB/zgAgf84AID/NwB//zcAf/84AH7/NwB+/zcA
570
+
fv83AH3/OAB9/zgAff84AHz/OAB9/zgAfv84AH3/OAB9/zcAff82AH3/NQB9/zMAfP8yAH3/LwB8/ysA
571
+
e/8jAHn/DgBt/7GSpP/ev8T/1rTA/86tu//Ena3/soia/56Jkf+lipb/qIyZ/6qNmv+qjZr/q42a/6uN
572
+
mv+qi5j/p4aV/66VoP+1m6X/uJ6n/9LHwv/e3sX/m36o/ycAff8uAIP/OQCH/z4Aif9AAIr/QQCL/0EA
573
+
i/9CAIv/QgCL/0EAi/9BAIv/QACK/z4Aif85AIf/LgCC/ycAfv+XdaH/2cq5/9C7u//YucT/2LnF/9i4
574
+
xv/Hqbb/za68/8+yvv/TtcL/1LfD/9a5xP/Wusb/1rrF/9C4wf/kxNH/6snW/+jI1v/rzdj//uDj/9m/
575
+
0P8FAGP/HwB1/ykAev8uAHz/MQB7/zMAfP80AHz/NQB8/zcAff83AHz/OAB9/zgAff84AH3/OAB8/zgA
576
+
ff83AH3/NwB9/zcAfv83AH//NwB//zcAf/83AH//OACB/zgAgf84AIL/OQCD/zcAhP8xAIT/RwqV/5+s
577
+
jf9VWFH/OTo5/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1BSTv+Fjnj/d1ig/y0AiP83AIf/OQCG/zkA
578
+
hf85AIX/OQCE/zgAhP84AIP/OACC/zgAgv84AIL/OQCC/zkAgf85AIL/OACB/zkAgf84AIH/NwCA/zQA
579
+
gP8xAH//LAB+/yYAff8hAHz/HAB6/yEAev82AH//SQCI/1wlhf+lfJv/2Lq5/9m6w//Ssr//zaq4/7yQ
580
+
o/+kiJX/oYmU/6eMl/+pjpn/qo6a/6qOmv+qjZr/qYuZ/6aHlv+rkJv/sZmi/7OZo//Ty8X/4N/F/3lN
581
+
oP8lAIT/NwCL/z8Ajv9CAI7/QgCP/0MAj/9DAI//QwCP/0MAj/9DAI//QwCP/0QAj/9DAI//QwCP/0IA
582
+
j/8/AI7/NwCL/yUAhv90SJn/1sm1/9K8vv/Zu8b/273I/9W4xP/JrLr/z7K//9O2w//VuMT/17nG/9e7
583
+
x//YvMf/1rzH/9e8x//qydf/6cnW/+rK1//x09v//+bk/7iRsP9eJof/SAB0/zQAfP8eAHf/GAB3/x4A
584
+
ef8kAHr/KgB8/y8Afv8zAH//NgCA/zgAgP85AIH/OACB/zkAgv85AIH/OQCC/zgAgv85AIP/OACC/zgA
585
+
g/84AIT/OQCE/zkAhf85AIX/OQCH/zQAh/8qAIz/rrqc/2BkWv8/Pz7/AAAA/wAAAP8AAAD/AAAA/wAA
586
+
AP8AAAD/WFpV/5SghP9gLqH/MQCM/zgAi/86AIr/OgCJ/zoAif85AIj/OgCI/zkAhv86AIf/OQCG/zoA
587
+
hv85AIX/OgCG/zoAhf85AIX/NwCF/zEAg/8qAIP/IAB//yQAf/9JDYb/cDmN/5xomP/Aiab/0aSp/+C2
588
+
sf/fwLH/4rm7/9y4vv/ZusP/1bXC/9CvvP/GorD/tIqd/52Jkv+li5b/qI2a/6mOmv+qjpr/qo6a/6mN
589
+
mf+nipb/qIuY/6yYoP+vlZ7/z8XA/+Xky/96UaH/KACJ/zkAj/9BAJL/QwCT/0QAk/9EAJT/RACV/0YA
590
+
lf9GAJX/RgCV/0YAlf9GAJX/RQCV/0QAlP9EAJT/RACT/0MAk/9BAJH/OgCP/ygAi/94SJn/2c66/9S+
591
+
wP/bvsj/3cHL/9Czv//Osr3/07jD/9a6xf/YvMj/2b3I/9q+yv/Zv8n/1LzF/+fI1f/oyNb/6crW/+rM
592
+
2P/y09v/+tnd//fQ0f/21dT/9szH/+S1vP/QoLT/qHOi/3U8kf9KDoT/IAB7/xwAfP8nAID/LwCC/zYA
593
+
hP85AIT/OgCF/zoAhf86AIb/OQCG/zkAhv86AIb/OQCH/zoAiP85AIj/OgCJ/zoAiv86AIr/NwCL/ykA
594
+
jf+inKX/bHJk/0VGRP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDAv9gYlz/o7GQ/0UDnv80AI7/OQCO/zsA
595
+
jP86AIz/OwCM/zsAjP87AIv/OwCL/zsAiv86AIr/OwCK/zoAif87AIn/OQCJ/zUAiP8qAIb/JQCE/10j
596
+
jP+jc5z/2a6s/+O6tv/ju7z/473A/+G8wf/fu8L/37nE/925xP/auMT/2LfC/9W2wf/Tsr//z627/8CY
597
+
qf+piJf/n4qT/6aMmP+pjpr/qY+a/6uOmv+pjpr/qY2Z/6eJlv+okpz/q5Wd/8Cvsf/i4M3/oYSy/ygA
598
+
j/88AJX/RACY/0UAmf9GAJn/RgCZ/0UAmv9GAJr/RgCa/0YAmf9GAJn/RgCZ/0YAmf9GAJr/RgCa/0UA
599
+
mf9GAJn/RgCZ/0UAmf9EAJj/PACW/ygAj/+beav/2ci8/9i+xf/cwcv/3MHM/82yvf/TuMP/1rvG/9i9
600
+
yP/Zv8r/2r/K/9vBy//Yvsn/3sTN/+jI1v/oytf/6crW/+nL1//sy9f/7cnW/+7L1v/xzdf/9M/Y//XR
601
+
1//609f/+9PT//vRzf/uwcD/sn+n/2Enjf8hAH//JgCC/zMAhv85AIn/OgCJ/zoAiv87AIr/OwCK/zsA
602
+
iv87AIv/OwCL/zsAjP86AIz/OwCM/zoAjv84AI7/LACQ/4x3pf95gG7/TE1K/wAAAP8AAAD/AAAA/wAA
603
+
AP8AAAD/BwcG/2hrZP+wvpv/LACY/zYAkv87AJH/OwCQ/zsAkP87AJD/OwCP/zwAjv87AI7/OwCO/zwA
604
+
jv87AI7/PACO/zsAjv81AI3/JgCL/1AajP/Hnab/4r63/+G9v//cusD/2rnC/9m4wv/YuML/17jD/9i3
605
+
wv/Xt8P/17fD/9e3w//WtsP/1bXC/9Kxv//Mqrj/uI+g/6CKk/+jjJX/qI6Z/6mPm/+rj5z/qo+b/6mO
606
+
mv+njJj/poyY/6iVnf+umJ//2tPJ/9jSxf8qAJL/OQCZ/0MAnP9GAJ3/RwCd/0YAnf9HAJ7/RwCe/0cA
607
+
nv9HAJ7/SACf/0gAn/9IAJ//SACf/0cAnv9HAJ7/RwCe/0cAnf9GAJ3/RwCd/0YAnP9DAJz/OgCa/yoA
608
+
kv/Qvrj/1sS+/93Cyv/fxc//1brF/9O6w//Xvcf/2r/K/9vAy//cws3/3cLN/93Ezf/awsv/6MjV/+nJ
609
+
1f/nyNX/6MnV/+jJ1v/pyNb/6cnW/+rL1//ry9j/7M3Y/+3O2f/w0Nr/89Lc//fW3P/+3N3//97X/+a+
610
+
wP9gKZP/HwCE/zIAi/86AI3/OwCO/zwAjv88AI7/OwCO/zwAj/87AI7/OwCP/zwAkP87AJD/OwCQ/zkA
611
+
kf8uAJP/eVul/4SOd/9SU0//AAAA/wAAAP8AAAD/AAAA/wAAAP8KCwr/cHVq/6ytpf8rAJn/OACV/zwA
612
+
lP88AJP/PACT/zwAk/87AJL/PACS/zwAkv88AJL/PQCS/zwAkv88AJL/OACS/ygAj/9nNJP/3byu/929
613
+
vf/XuL//1bbA/9S1wP/UtcL/1bbB/9W2wv/Wt8P/1rbD/9a3w//WtsL/1rfD/9a2wv/VtsH/0rK//8ml
614
+
s/+xipv/noqS/6WNmP+oj5r/qpCb/6uRm/+pj5v/qY6Z/6iMmP+jj5j/pZGY/8KytP/m5cz/bz2n/zMA
615
+
nP9DAKD/RwCi/0gAov9IAKL/SACj/0gAo/9IAKP/SACj/0gAo/9IAKP/SACj/0gAo/9IAKP/SACj/0gA
616
+
o/9IAKP/SACk/0cAov9IAKL/SACi/0cAof9DAKD/MwCc/2w4pP/e0b3/2sLG/+HG0P/dxM7/0rjC/9e+
617
+
yP/bwcv/3MLN/93Ezv/fxc//38XQ/9vEzf/mydT/58jV/+jJ1f/oyNX/6MnW/+jJ1v/pytb/6MnW/+nL
618
+
1//py9f/6svZ/+vN2f/szdn/7M/b/+/S2//01t3//+Hh///t3P98T6L/IQCI/zYAkP87AJL/PQCS/zwA
619
+
kv88AJL/PACS/zwAk/88AJL/PACT/zwAlP88AJP/OgCU/zEAlf9sPan/kJyA/1haVv8AAAD/AAAA/wAA
620
+
AP8AAAD/AAAA/w8QDf95f3D/opiq/ywAm/85AJj/PQCY/z0Al/88AJb/PACW/z0Alv89AJb/PQCW/z0A
621
+
lv89AJb/PQCV/zwAlv8yAJX/OwGT/9a9qP/ZvL3/1be//9O1v//TtMD/0rXA/9O2wf/TtsH/1LbC/9S3
622
+
wv/Vt8L/1rfD/9a3xP/Wt8P/1rfE/9W2wv/RsL//xaCv/6iHlf+fipP/po6Z/6iQm/+qkZv/q5Cb/6mQ
623
+
m/+ojpn/p42X/6GRl/+mkJn/1c3F/8/Kv/8sAJ//PgCj/0YApf9IAKb/SACm/0gApv9JAKf/SACn/0kA
624
+
p/9JAKf/SQCn/0kAqP9JAKj/SQCp/0kAp/9JAKf/SQCn/0gAp/9JAKf/SQCn/0gApv9IAKb/SACm/0YA
625
+
pf8+AKP/KwCf/869uP/ZxsL/4cfQ/+PL1f/UvMX/17/J/9vCzP/dxc//3sXQ/+DH0f/fyNL/38jR/+PJ
626
+
0v/nx9T/6MjV/+bI1f/oydb/58nW/+jK1v/oy9f/6cvY/+rM2P/qztn/687a/+zO2v/rz9r/7c/b/+zR
627
+
3P/y1t///+Xk///64/9ECpf/LACQ/zoAlP89AJb/PQCW/z0Alv89AJb/PQCW/zwAlv88AJb/PACW/z0A
628
+
mP87AJj/MwCY/18krf+Ypob/XWBa/wAAAP8AAAD/AAAA/wAAAP8AAAD/EhQR/4CIdf+Zha7/LgCe/zkA
629
+
m/88AJn/PQCa/z0Amf89AJr/PQCZ/z0Amf8+AJn/PgCZ/z4Amf89AJn/OwCa/yoAmP+JaZn/28C3/9O4
630
+
v//StcD/0rTA/9G0v//Stb//07bC/9S2wv/UtsP/1rfD/9W4w//WuMP/1rjD/9a3w//WuMP/1LbC/9Gw
631
+
vv/Am6r/ooaS/6GMlf+okJr/qpCb/6qRm/+qkZv/qJCb/6iOmv+kjZf/n46W/7Ofo//b2cX/jWey/zIA
632
+
pv9EAKn/SACq/0kAqv9IAKr/SQCr/0kAq/9KAKv/SgCr/0oAq/9KAKv/SgCs/0oArP9KAKz/SgCr/0oA
633
+
q/9KAKv/SgCr/0oAq/9JAKv/SACq/0gAqv9JAKr/SACq/0QAqf8xAKb/i2Kv/97Ov//gxs3/5M7W/9nB
634
+
y//Ywcr/3cTN/97G0f/gx9H/4cjT/+LK0//hytT/4MnS/+bH1P/nydX/6MnW/+jL1v/py9f/6cvX/+nM
635
+
2f/qzNj/6s3Y/+rN2f/qzdn/687b/+vO2v/s0dv/7NHc/+3S3f/z2N////bs/72jyP8gAI//OACX/z4A
636
+
mf8+AJn/PgCZ/z0Amf89AJn/PQCa/z0Amv89AJn/PQCZ/zsAmv81AJv/UQ6t/6Kwjf9jZV//AQEB/wAA
637
+
AP8AAAD/AAAA/wAAAP8UFhL/hY95/491rv8wAKP/OwCf/z4Anv8+AJ7/PgCd/z4Anf89AJ3/PQCd/z0A
638
+
nf8+AJz/PgCc/z0Anf85AJ3/KQCc/7qon//XvL3/07fA/9C1wP/QtL//07bB/9O2wf/TtcD/1LbC/9S3
639
+
wv/VuMP/1bjD/9W5xP/WuMT/17nF/9a4w//UtsH/z7C8/7yWpv+eh5H/oo2W/6iRm/+pkZv/qpGc/6qR
640
+
m/+pkJv/qZCa/5+Lk/+fjJT/vq6u/93dwP9VE6z/PACs/0cArf9JAK3/SQCu/0kArv9JAK7/SQCv/0kA
641
+
r/9JAK//SgCw/0oAsP9KALD/SgCw/0oAsP9KALD/SgCw/0oAr/9JAK//SgCv/0kArv9JAK7/SQCu/0kA
642
+
rv9JAK3/RwCt/zoAq/9SEav/5Ni//97Hyf/mztf/4MnT/9jByv/extD/4MfS/+HK1P/jytX/48vV/+PN
643
+
1v/gy9P/5sfU/+jI1f/oydb/6cvX/+nL2P/oy9f/6svX/+nO2f/qzdn/6s3a/+vP2v/s0Nv/69Hc/+zS
644
+
3P/r0dz/7dLc/+/T3f//5+b///vq/yEAkv81AJr/PACc/z4AnP8+AJ3/PQCd/z0Anf8+AJ3/PgCd/z8A
645
+
nf8+AJ7/PQCf/zcAoP9FAK7/qLeS/2ZpYf8CAgL/AAAA/wAAAP8AAAD/AAAA/xcZFf+KlHz/iGqw/zMA
646
+
p/8+AKP/QACj/0AAov9AAKL/PwCj/z8Ao/8/AKL/PwCi/z8Aov8/AKP/PgCi/zcAov81AKD/zsGk/9e8
647
+
v//Qt8D/0LS//9K1wP/RtsD/0rbC/9O3wf/Ut8P/1bjD/9W4w//WucP/1bjE/9e5xf/WuMP/1rjD/9S3
648
+
wv/Or7z/uJKh/56Ikf+kjpj/qZGb/6mSnP+rkpz/qZGc/6mRm/+okJr/nImS/5+NlP/EtrT/2Ni4/zQA
649
+
sP9AALH/SACy/0kAsv9KALL/SgCy/0oAs/9KALP/SgCz/0oAs/9KALP/SgCz/0oAs/9KALP/SgCz/0oA
650
+
s/9KALP/SgCz/0oAs/9KALP/SgCz/0oAs/9KALL/SQCy/0kAsv9IALL/PgCv/y8Arf/k2b3/3cfI/+fQ
651
+
2f/lz9f/2cPM/9/I0f/hytT/4svV/+TN1v/kztf/5c/Y/+LP1v/lyNP/5sjV/+fL1v/ozNf/6MvX/+nM
652
+
2f/pzdn/683Z/+rO2f/rztr/6s7Z/+vQ3P/s0dv/7dHb/+zR2//t0t7/7tPe//jg4v////X/NgCf/zIA
653
+
nv8+AKL/PwCj/z8Aov8/AKL/PwCj/z8Ao/9AAKP/QACi/0AAov9AAKP/OwCj/zwAsP+uvZX/aW1l/wME
654
+
A/8AAAD/AAAA/wAAAP8AAAD/GBoW/46YgP+GZ7L/NQCs/z8Aqf9CAKj/QQCn/0EAp/9BAKf/QQCn/0EA
655
+
p/9BAKf/QQCo/0EAp/9AAKf/OACo/0IHof/Pwqf/1bu//9G1v//QtcD/0bXA/9K2wf/TtsH/1LfD/9S3
656
+
w//UucT/1bnE/9a5xP/WucT/1rnE/9e5xf/WucX/1LbC/8+uvP+0kJ//nImS/6WPmP+pkZz/qpKc/6qS
657
+
nP+pkpz/qZGb/6iQmv+ZiI//oY6U/8i7tf++s7P/MQC1/0MAtP9IALX/SQC1/0kAtf9JALX/SQC2/0kA
658
+
tv9KALf/SgC3/0oAt/9KALf/SgC3/0oAt/9KALf/SgC3/0oAt/9KALf/SgC3/0oAt/9JALb/SQC1/0kA
659
+
tf9JALX/SQC1/0gAtP9CALP/LACx/826u//eycb/6NLa/+nU2//axM3/4MrT/+LM1f/jzdb/5c/Y/+bP
660
+
2P/n0tn/49DY/+XK0//mydX/58rV/+nM2P/ozNf/6c3Z/+rN2f/pzdj/6s7Z/+vP2//r0Nv/69Hc/+zR
661
+
3P/s0dz/7dLd/+3T3f/u1N3/9d3h////9f9OFKz/MQCi/z8Ap/9BAKf/QQCn/0EAp/9BAKf/QQCn/0EA
662
+
p/9BAKf/QgCo/0IAqP89AKn/OQC0/7HCl/9tcGf/BAQD/wAAAP8AAAD/AAAA/wAAAP8ZGxb/kZuB/4Jh
663
+
tf83ALD/QQCs/0MArP9DAKz/QwCs/0MArP9DAKz/QwCs/0MArP9DAK3/QwCs/0MArf86AK//SxKl/8/C
664
+
qP/Vu8D/0be//9C2wP/RtcD/07bB/9K2wf/UuML/1LjC/9S5xP/WucT/1rrE/9e6xf/WucX/1bjD/9W4
665
+
xP/Ut8L/za27/7OOn/+dipL/ppCa/6qTnP+qlJ7/q5Sd/6qTnP+pkpz/qpGb/5aGjP+hjpT/xruy/7Gh
666
+
r/8vALr/RAC4/0gAt/9JALj/SgC5/0oAuf9KALn/SgC5/0oAuf9KALn/SgC5/0oAuf9KALr/SgC6/0oA
667
+
uv9KALr/SgC5/0oAuf9KALn/SgC5/0oAuf9KALn/SgC5/0oAuP9JALf/SAC3/0MAt/8pALX/wqu8/+DM
668
+
xv/q09r/7Nng/9zGz//izNb/5M7Y/+bQ2P/n0dr/6NLb/+nU3f/n1Nv/5MnU/+bI1P/oy9b/6MvY/+nN
669
+
2P/pzNn/6c3Y/+vP2v/rztv/6s7a/+vQ2//s0dz/7NHc/+zR3P/s0tz/7dPe/+7U3v/23uH////0/1sj
670
+
tP8zAKj/QQCs/0MArP9DAK3/QwCs/0MArP9DAKz/QwCs/0MArP9DAKz/QwCs/z8Arf81ALf/s8SY/25y
671
+
av8EBAT/AAAA/wAAAP8AAAD/AAAA/xkbFv+SnYL/f121/zoAtv9DALH/RQCx/0UAsP9GALD/RgCw/0UA
672
+
sP9FALH/RgCx/0YAsf9HALL/RQCz/zwAtP9MEqn/z8Kn/9W8wP/RtsD/0bW//9G2wP/St8H/07fB/9O3
673
+
w//UuMP/1LnE/9S4w//VucT/17rF/9a5xP/WusX/17nE/9S3w//Or7v/so+d/52Lk/+mkZr/qpOd/6uU
674
+
nf+slJ7/qpOd/6mTnP+rkpz/lYWM/6GNlP/DuK//rpys/zEAwP9EAL3/SQC8/0oAvP9KALz/SgC8/0oA
675
+
vP9KALz/SgC8/0oAvP9KAL3/SgC9/0oAvf9KAL3/SgC9/0oAvf9KAL3/SgC9/0oAvP9LALz/SgC8/0oA
676
+
vP9KALz/SgC8/0oAvP9JALz/QwC8/ysAu//Bqbz/4M3G/+rV3P/t2uH/28fP/+TP1//l0dn/5tHa/+jS
677
+
2//p09z/6tXd/+jW3f/jytT/5snV/+jL1//pzNf/6M3X/+nN2P/qztr/6s7Z/+vP2v/rz9r/7NHc/+vR
678
+
2//t0t3/7NLd/+3T3P/t097/7tTe//Xd4P////X/XiW6/zUArf9EALL/RgCy/0YAsv9FALH/RQCx/0YA
679
+
sP9GALD/RgCw/0UAsP9FALH/QgCy/zQAu/+0xpn/cHNr/wQEA/8AAAD/AAAA/wAAAP8AAAD/GBoW/5Ke
680
+
gv+EYLn/PAC7/0UAtv9HALX/SAC1/0gAtv9IALb/SAC3/0cAt/9IALf/SAC3/0kAuP9HALj/QAC7/0gI
681
+
sP/LwqL/1bzA/9K2wP/QtcD/0rbB/9K2wf/TuML/07jD/9S5w//WucT/1brE/9a6xf/Wu8T/17rG/9e6
682
+
xP/Wu8b/1LfC/8+wvf+zkp//nYuS/6aRm/+rlZ3/q5We/6yVn/+rlZ7/qpSd/6uUnf+UhIn/nouR/72x
683
+
q/+0qKf/NQDC/0YAvv9LAb3/SwG9/0sBvf9LAb3/SwG9/0sBvf9LAb3/SwG9/0sBvf9LAb3/SwG9/0sB
684
+
vf9LAb3/SwG9/0sBvf9LAb3/SwG9/0sBvf9LAb3/SwG9/0sBvf9LAb3/SwG9/0oBvf9EAL3/LgC7/8+7
685
+
vf/gy8f/7dng/+7b4v/dyNH/5tLa/+fT3P/q1Nz/6tbe/+rW3v/s2eD/6dnf/+TK1P/myNT/6MvX/+jM
686
+
2P/qztj/6MzY/+rN2f/pzdn/6s/a/+rQ2v/s0Nz/7NLb/+zS3f/s093/7dPd/+3T3f/u1d//9t/h////
687
+
9v9WF73/OQC0/0YAt/9IALf/SAC3/0cAt/9IALf/SAC2/0gAtv9IALb/SAC1/0cAtf9EALf/OADB/7PH
688
+
l/9xdGv/BAQD/wAAAP8AAAD/AAAA/wAAAP8XGRX/kZuA/4pou/89AMH/RwC7/0kAuv9KALv/SgC7/0oA
689
+
vP9KALz/SgC8/0oAvf9KAL3/SgC9/0oAvf9EAL//PQC3/8fEnf/Vvb//0rjA/9G2wP/RtsD/0rfB/9O4
690
+
wv/UuMP/1LnD/9S5w//WusX/1rrF/9e7xv/WusX/17rF/9a6xf/VucP/0LO+/7eVo/+cipH/ppKc/6uV
691
+
nv+slZ//rZaf/6yVnv+qlZ7/rJaf/5WEi/+biZD/uKml/8TAoP88AMT/RAC//0oBvf9LAr3/TAO9/0wD
692
+
vf9MA73/TAO9/0wDvf9MA73/TAO9/0wDvf9MA73/TAO9/0wDvf9MA73/TAO9/0wDvf9MA73/TAO9/0wD
693
+
vf9MA73/TAO9/0wDvf9LAr3/SgG9/0IAvf8yALj/6N/B/9/IyP/x3uX/7dvi/9/M0//n1Nr/6dXc/+rV
694
+
3v/r19//7Nff/+7b4v/q2uH/48nS/+bJ1f/ozNj/6c3Y/+nM2P/pzdj/6c7Y/+vP2//q0Nr/6tHb/+zR
695
+
3P/s0dz/7dLc/+3T3v/s1N7/7dTe/+7W3v/54uP////4/0YAvv8+ALn/SQC8/0oAvf9KAL3/SgC9/0oA
696
+
vP9KALz/SgC7/0oAu/9KALv/SAC6/0QAvP9BAMj/scSV/3Bzav8DAwL/AAAA/wAAAP8AAAD/AAAA/xUX
697
+
Ev+OmX//knG8/z4AxP9IAL7/SwC9/0sAvf9LALz/SwG8/0sBvP9LAr3/SwK9/0sCvf9LAb3/SgC9/0YA
698
+
v/83AMD/r6qW/9bBvP/SuMH/0rjA/9G2wP/St8H/07jB/9S3w//VucT/1rnD/9W6xP/Xu8X/1rrF/9a7
699
+
xf/VucX/17zF/9W5xP/Rs8D/vJyp/5uIj/+mkpv/q5af/6yXn/+tl6D/rJeg/6uVn/+tmKD/l4aN/5iH
700
+
jP+xoKH/wbue/1gWuv9DAMD/TAK9/04Evf9OBb3/TgW9/04Fvf9OBb3/TgW9/04Fvf9OBb3/TgW9/04F
701
+
vf9OBb3/TgW9/04Fvf9OBb3/TgW9/04Fvf9OBb3/TgW9/04Fvf9OBb3/TgW9/04Evf9MAb3/PwC9/1MR
702
+
tP/v4sf/4MrN//Xk6v/r2N7/4c/W/+nV3v/r1t//69jf/+3Z4P/t2uH/8N7k/+rb4P/jydT/5srT/+fN
703
+
2P/pzdj/6c7Z/+nO2P/pztn/6tDa/+rP2//r0Nz/7dHc/+vS3P/t093/7dTd/+3U3f/u1d7/8djf///v
704
+
5/////f/LwC2/0EAuv9KALz/SwG9/0sCvf9LAr3/SwG9/0sBvP9LALz/SwC9/0sAvf9KAL3/RQC//0wA
705
+
zf+uwJL/cHNr/wECAf8AAAD/AAAA/wAAAP8AAAD/ERMP/4uUff+cf7v/PQDE/0gAvv9LAr7/SwK9/0sC
706
+
vf9LAr3/SwK9/0sDvf9LAr3/SwK9/0wDvf9MA73/SQC+/zsAwv+BaZv/0sWx/9S8v//Rt8D/0LfA/9O4
707
+
wf/SuML/0rjD/9S6w//VusT/1rvF/9a6xf/Wu8b/1rvG/9e7xf/Xusb/1rrE/9K2wf/Co6//nIeP/6WT
708
+
mv+rlp//rJeg/62XoP+tmKD/rJef/62YoP+gjpX/kYKI/6qYnf+7sZ7/g1qv/z0Aw/9LAL//TgW+/04F
709
+
vv9OBb7/TgW+/04Fvv9OBb7/TgW+/04Fvv9OBb7/TgW+/04Fvv9OBb7/TgW+/04Fvv9OBb7/TgW+/04F
710
+
vv9OBb7/TgW+/04Fvv9OBb7/TQW+/0kAvv83AL3/jGK3/+rZyv/lztP//Orw/+HP1v/m1Nv/6tff/+vZ
711
+
3//t2uH/7tri/+/c4//y4Of/6Nfd/+TK1P/my9b/583X/+nN2f/rz9n/6M7Z/+nO2f/r0dv/6tHb/+vS
712
+
2//r0dz/7NPd/+3U3v/s1N7/7tTe/+7W3//z3+H////z/8655P8uALX/RgC7/0sCvf9LAr3/SwK9/0sD
713
+
vf9LA73/SwK9/0sCvf9LAr3/SwK9/0oAvv9EAL//WQTP/6i5jv9ucWn/AAAA/wAAAP8AAAD/AAAA/wAA
714
+
AP8PEA3/ho55/6iSuf88AMX/SAC+/0wDvf9MA73/TAO9/0wDvf9NBL3/TAO9/0wDvf9MA73/TQS9/04F
715
+
vf9MAr3/RQDA/0gEtv+7v5b/1MS7/9S8wf/TucL/0rnC/9K5wf/TusL/1LnD/9W6xf/Wu8X/1rzG/9a8
716
+
xv/XvMb/17zF/9e8xf/WvMX/07jD/8irtv+fiZL/o5Ka/6uXn/+tmKD/rpih/66Zof+smKH/rJef/6qW
717
+
n/+Pf4T/oI2U/7anoP+xo5v/PADF/0gAwf9OBb7/Twe+/08Hvv9PB77/Twe+/08Hvv9PB77/Twe+/08H
718
+
vv9PB77/Twe+/08Hvv9PB77/Twe+/08Hvv9PB77/Twe+/08Hvv9PB77/Twe+/08Hvv9OBb7/RQC+/zAA
719
+
u//Yxr7/4czH/+/b4f/56u//3szT/+nX3v/r2eD/7drh/+3a4f/v3OP/8N3k//Tk6v/l1dr/5cvV/+bL
720
+
1v/oztj/6M7Y/+jP2f/pz9n/6c/Z/+vQ2//q0Nr/7NPb/+rT3P/s1N3/7dXe/+7W3v/v1+D/8t3g///0
721
+
6f//////VRPA/zwAuP9LAbz/TgS9/00Evf9MA73/TAO9/00Evf9MA73/TAO9/0wDvf9MA73/SgC9/0MA
722
+
wP9oGs//orOK/2xvaP8AAAD/AAAA/wAAAP8AAAD/AAAA/woLCf+Bh3f/saey/z0Ax/9JAL7/TAO9/00E
723
+
vf9OBb3/TgW9/04Evf9OBb3/TgW9/04Fvf9OBr7/TgW+/00Evv9KAL//QADD/2Q7pf/CxZ3/1Mi7/9PB
724
+
v//UvcL/07vC/9O7w//Uu8P/1bzE/9S7xf/Vu8X/1rzG/9W8xv/XvcX/1rzG/9W7xf/UuMP/zLC7/6eP
725
+
mP+gkJf/qpef/62Zof+umqL/r5qi/66aov+tmaH/sZyk/5KDif+Xh4z/sJ2f/7mvmP9uOLT/QgDD/00E
726
+
v/9QCL7/UAi+/1AJvv9QCb7/UAm+/1AJvv9QCb7/UAm+/1AJvv9QCb7/UAm+/1AJvv9QCb7/UAm+/1AJ
727
+
vv9QCb7/UAm+/1AIvv9QCL7/Twi+/0wCvv88AL7/bTez//Pjzf/fyMr/+eru/+7e5P/i0Nj/69ng/+3a
728
+
4f/u2+L/793k//De5f/y4Ob/9eXr/+LR1v/nzNb/583Y/+nP2f/pz9r/6M/Z/+nQ2v/r0dv/6tHb/+vS
729
+
3P/r1N3/7dTd/+3W3v/v2eD/8dzh//fm5P//+ur////5/5dw1P8yALb/RwC7/00Evf9OBb7/TgW9/04F
730
+
vf9OBb3/TgW9/04Fvf9OBb3/TQS9/00Evf9KAL3/QwDB/3UzzP+aqob/aWxl/wAAAP8AAAD/AAAA/wAA
731
+
AP8AAAD/BQYF/3uBc/+2v6T/PQDI/0oAv/9OBL3/TgW9/04Fvf9OBb7/TgW9/04Gvv9PB77/Tge+/04G
732
+
vv9PB77/Twe+/04Gvv9KAMD/PwDD/1girv+srJv/zs2t/9TLu//VxsD/1cPD/9bBxP/Wv8X/1r/F/9a+
733
+
xf/Xvsb/177H/9e+yP/Xvcb/1bzF/9O5w//QtcD/tJmk/52MlP+pl57/rZmh/7Cao/+vm6P/r5uj/66a
734
+
ov+vm6P/pJGZ/5GChv+lkpj/taOd/7Khmv8/AMT/SADD/08HwP9RCr//UQq//1EKv/9RCr//UQq//1EK
735
+
v/9RCr//UQq//1EKv/9RCr//UQq//1EKv/9RCr//UQq//1EKv/9RCr//UQq//1EKv/9OB7//RQC//zQA
736
+
uf/dysH/487I/+nW2//86/H/4NDV/+rY3//s2uH/7tzi/+/d5P/w3uX/8d/m//Ti6f/z5en/4s/W/+bM
737
+
1v/oz9n/6NDZ/+nR2v/o0dr/6tPb/+rU2//s1dz/7dfd/+/Z3//x3uH/9OPj//rs5v//++n////w////
738
+
7f92Qsj/MgC2/0YAu/9NBL7/Twe+/08Hvv9OBr7/Tge+/04Gvv9OBr7/TgW9/04Gvv9OBb3/TgW9/0wB
739
+
vf9DAML/f0/B/5KggP9naGP/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAgH/dnpw/7LEl/9MAM3/SADA/00F
740
+
vv9OB77/Tge+/08Hvv9PB77/Twe+/1AIvv9QB77/UAi+/1AJvv9QCb7/UAi+/08Hvv9LAb//RADC/z8A
741
+
wP9gMK7/lYek/8HFo//P0q//1NC4/9bOvv/Yy8L/18jD/9jIxv/XxcX/18PG/9fAx//WvMT/1bvF/9O4
742
+
wv/CqLL/nIqR/6iXnv+tmqH/sJuk/7Ccpf+xnaT/sJyk/7CbpP+xnaX/koSI/5iIjv+vmp7/t6iX/5Ns
743
+
pv8/AMj/TAHC/1EJwP9SC7//Uwy//1MMv/9TDL//Uwy//1MMv/9TDL//Uwy//1MMv/9TDL//Uwy//1MM
744
+
v/9TDL//Uwy//1MMv/9SC7//UQm//0oAv/82AL//o3+3/+zayv/fx8z/9+fs/+/g5//i0Nf/7dzh/+7c
745
+
4//v3eT/8d/l//Lf5f/z4ej/+Oft/+jc4f/lztb/583X/+nQ2f/r09z/7dfd/+7b3f/v3d7/8+Lh//Xm
746
+
4f/47uT//vfm////5////+j////m/8y92/97S8f/NgC4/zoAuP9HALv/Tga9/1AIvv9QCb7/UAi+/1AH
747
+
vv9QB77/Twe+/08Hvv9PB77/Tga+/04Hvv9OBr7/SwG//0EAxP+Pb7z/iZV6/2NlYP8AAAD/AAAA/wAA
748
+
AP8AAAD/AAAA/wAAAP9xc2z/praO/2ob0f9HAMH/TgW+/08Hvv9QB77/UAi+/1AIvv9QCb7/UAm+/1AJ
749
+
vv9QCb7/UAq//1AJvv9RCr//UQq//1AJwP9PBsD/SwDB/0UAwv8+AMP/QADA/1ketf9zS6//lYSp/7Ku
750
+
rP+/wKn/z9Ou/9vbu//Rzrf/0sW7/9fBw//XvMX/1LnD/8yyvP+mkZj/o5Oa/6yaoP+vnKP/sZ2l/7Kd
751
+
pf+xnqX/sZ2l/7Gepf+pl57/kICG/6GPlP+znZ7/vayV/3ZHq/9BAMf/TALC/1EKwP9SDL//Uwy//1MM
752
+
v/9TDL//Uwy//1MMv/9TDL//Uwy//1MMv/9TDL//Uwy//1MMv/9TDL//Ugy//1AJv/9KAL//OQC//3xJ
753
+
sP/y4cj/3sXG/+3c4f/66e7/3c3T/+vZ3//u3OP/793k//He5f/x3+b/8uDn//Ti6f/66/D/49TX/+bN
754
+
1//oz9j/6tHa//Pf4f//9+v///7m//7/3////+D/8vPc/9vY1f++q9H/j2fK/2QpwP84ALn/MwC4/z4A
755
+
u/9HAL3/TQS+/08Iv/9RCr//UAm+/1AKv/9QCb7/UAm+/1AJvv9QCb7/UAm+/1AIvv9QB77/UAi+/08G
756
+
vv9MAb//QADG/6ePuv+AiXP/YGFe/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2xuaP+ZpoX/f0nH/0YA
757
+
wv9OBb7/UAi+/1AJvv9QCb7/UAm+/1AKv/9RCr//UQq//1EKv/9SC7//UQq//1ILv/9TDL//Uwu//1ML
758
+
v/9SC7//UQi//08GwP9MAsD/SQDB/0QAwf9AAML/PADD/z8AwP9LBrn/Rwyp/2Eyq/+IeJT/yr+v/9vC
759
+
xv/WvMX/0LfC/7yirf+bi5H/rJmg/7CcpP+ynqb/s5+n/7OfqP+zn6f/sZ6m/7Wiqf+cjJH/lYWL/6eT
760
+
mf+1nZ3/uaiQ/3lKr/9BAMn/TALE/1IKwv9UDcH/VA7A/1UOwP9VD8D/VQ/A/1UPwP9VD8D/VQ/A/1UP
761
+
wP9VDsD/VA7A/1MNwP9RCcH/SQDB/zkAwf9/T7T/7dnC/9/Gxf/l0dj/9ujs/+LT2f/n1tz/7Nzh/+7d
762
+
4//v3uT/8d/m//Lg5//z4un/+eju//Hk5//iz9b/587X/+nQ2f/w2d7////z/9rP5f97TMT/YibD/04J
763
+
vP86ALr/MwC5/zgAuv8+ALv/RAC8/0kAvf9NA77/UAe+/1IKv/9SC7//Uwu//1ILv/9SC7//UQq//1EK
764
+
v/9RCr//UQq//1AJvv9QCr//UAm+/1AJvv9QCL7/UAi+/0wBwP8/AMj/tbap/3d9bv9cXVr/AAAA/wAA
765
+
AP8AAAD/AAAA/wAAAP8AAAD/Z2lk/4yXff+Tc73/QwDE/00Ev/9QCb//UQq//1EKv/9RCr//UQq//1IL
766
+
v/9SC7//Uwy//1MMv/9TDL//Uwy//1MNv/9TDL//Uw2//1MOwP9TDcD/Uw3A/1MNwf9SC8H/UgrB/1EJ
767
+
wf9QB8H/TwXB/00Cwv9LAMP/RgDF/zkAxf+ViJj/3cfC/9i/x//Uu8X/zLK8/6GQlv+mlp3/sJyk/7Kf
768
+
p/+zoKj/tKCo/7ShqP+zoKj/tKCo/7ajqv+Wh4z/mYqQ/6qWm/+3nZ3/v6qW/5Nppv9CAMT/RwDG/04G
769
+
w/9SC8H/Uw7B/1QPwP9UD8D/VRDA/1UQwP9UD8D/VA/A/1MOwP9RC8H/TAXB/0MAwf86ALz/onq3/+/a
770
+
xP/fxMX/4M3T//Di5//m2N3/4dDX/+vb4f/t3OP/797k//Df5f/y3+f/8+Ho//Xk6v/87PH/49fa/+TO
771
+
1v/nzdf/6tLZ//7t5f/u5fH/KgC2/zsAuv9EAL3/SQC+/0wCv/9OBb//Twe//1AJwP9SC8D/UgzA/1MN
772
+
v/9TDb//Uw2//1MNv/9TDL//Uw2//1MMv/9TDL//Uwu//1MMv/9SC7//UQq//1EKv/9RCr//UQq//1AJ
773
+
vv9PCL7/SgDA/08Azv+xxJb/bnJp/1laWf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9jY2H/f4h1/66c
774
+
t/9CAMj/TQTB/1EKv/9RCr//Ugu//1MMv/9TDL//Uwy//1MMv/9TDL//Uw2//1MNv/9TDsD/VA7A/1QO
775
+
wP9UDsD/VQ/A/1UOwP9VD8D/VRDA/1UPwP9VD8D/VQ/A/1QPwP9UD8D/VA7A/1QNwf9QCML/QgDF/2Iz
776
+
qf/QwbP/2cDF/9a8xv/SusP/u6at/56PlP+tnaP/s5+n/7ShqP+1oqr/tqKq/7Wiqf+1oar/tqKq/7aj
777
+
q/+Wh43/moyR/6qWnP+4nJ//vqWa/7icmf9xOrP/QwDG/0YAxf9LAsP/TwfC/1EKwf9SC8H/UQvB/1EK
778
+
wf9OB8H/SgHC/0MAwv89AMD/czyz/9e8uP/mzsL/28DD/+DN0f/s3uL/5Nbb/97N1P/r2t//7dvh/+3d
779
+
4//w3+X/8d/m//Li5//04un/+Ojt//Hl6P/hz9b/5c3X/+jQ2v/u19v////w/4lc0f81ALj/TAS+/1IM
780
+
v/9TDsD/VA/A/1QPwP9VD8D/VQ/A/1UPwP9VD8D/VA7A/1UOwP9VD8D/VA7A/1QOwP9TDb//Uw7A/1MN
781
+
v/9TDL//Uw2//1MMv/9TDL//Uwy//1ILv/9SC7//UQq//08HwP9IAML/cSnQ/6Kxi/9maWL/WFhX/wAA
782
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/15fXv9zeW3/t8We/0YAzP9NAcH/Ugq//1MMv/9TDL//Uwy//1MM
783
+
v/9TDb//Uw7A/1QOwP9UDsD/VA7A/1UOwP9VD8D/VRDA/1UQwP9VEMD/VRDA/1UQwP9WEcD/VRDA/1UQ
784
+
wP9WEcD/VhHA/1YRwP9WEcD/VhDB/1EJwv9CAMb/d1Om/866sf/ZwMX/1rzG/9a8xv/NuMH/ppWb/6iY
785
+
nf+yn6f/tKGp/7ajq/+2pKv/t6Ss/7ekrP+3pKv/uKWs/7mlrP+ai5H/m46S/6eXnP+2nKH/v6Gg/8Wp
786
+
mv+4m53/iVit/10eu/9HAMX/QgDG/0AAx/9AAMb/QADF/0QAwv9cHLn/j160/82wsv/mzb3/3cDA/9m/
787
+
xP/gzdP/5tjc/93O1P/fzNT/6trg/+ra4P/t3eL/7t7k//Df5v/x4Ob/8+Lo//Xl6//87PL/4NPW/+PN
788
+
1f/mzdf/6dDZ/+/X3v///O7/nHbP/zYAuv9OBr//VRDA/1YRwP9WEcD/VhHA/1YRwP9VEMD/VRHA/1UQ
789
+
wP9VEMD/VRDA/1UPwP9VEMD/VQ/A/1UOwP9VD8D/VA7A/1QOwP9TDb//VA7A/1MNv/9TDL//Uwy//1MM
790
+
v/9SC7//UAfA/0YAxP+JX8L/kZ2A/2BiXP9VVVX/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlta/2pt
791
+
Zf+nto//byPR/0sAwv9SCr//Uwy//1MNv/9TDsD/VA7A/1QOwP9VD8D/VQ/A/1UPwP9VEMD/VRDA/1UQ
792
+
wP9WEcD/VRDA/1YRwP9WEcD/VhHA/1cSwf9XEcD/VxLB/1cSwf9XE8H/VxPB/1cSwf9UD8L/SgHE/0sL
793
+
vv/CsKH/1Lu8/9e9xf/XvMb/1r3H/9W8x//Isbr/nY+T/7Cepf+0oaj/tqOr/7elrP+5pa3/uaat/7mm
794
+
rP+4pq3/uqeu/7yosP+klJv/moyR/6SVmv+vm6H/uqCl/8Kio//HqKH/zbGf/82wnv+8maT/tI+o/7aQ
795
+
qf/BoKn/17yq/9/Dsv/dv7j/2bu8/9a6wP/Ww8n/3M3R/97O1f/Vxcv/4M/W/+jZ3v/q2uD/69vh/+3d
796
+
4//u3eT/8eDm//Lg5v/05Or/++zy/+fd4P/gztT/5MzV/+nP2P/p0Nn/7NPc//7o5f/98d7/Sga5/0UA
797
+
v/9TDcH/VhLB/1cTwf9XE8H/VxLB/1cRwP9XEcH/VhHA/1YRwP9WEcD/VRDA/1URwP9VEMD/VRDA/1UQ
798
+
wP9VEMD/VQ/A/1UOwP9UDsD/VA7A/1QOwP9TDb//Uw2//1MMv/9QBsD/RADG/6qTvP+BinX/WVtX/1NT
799
+
VP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9YWFj/YmRf/5Ogg/+KX8P/RwDE/1EKwP9UDsD/VA7A/1QO
800
+
wP9VD8D/VQ/A/1UQwP9VEMD/VRDA/1URwP9WEcD/VhHA/1YRwP9XEcD/VxLB/1cSwf9XE8H/VxPB/1cT
801
+
wf9XE8H/VxPB/1cTwf9XE8H/VRHB/08Hw/9IAMD/tZ2f/9e7tv/XvML/2LzH/9e9x//Zv8j/2L7H/9W+
802
+
x/+8qa//n5KX/7Whqf+3pKv/uaat/7qnr/+6qK//u6mw/7upsP+7qLD/vamx/8GstP+1o6r/oJKW/6GT
803
+
mP+omZ3/sJ+l/7ujqf/Ao6v/xqas/8mpq//NrK7/zq6x/9GwtP/PsLb/0LO7/9C4vv/QvcL/08TJ/9TF
804
+
yf/Rwcf/1sXL/+TT2v/n193/6djf/+ra4P/s2+L/7t7k/+/f5f/x4Of/8uLo//fn7v/w4+f/3M7S/+LK
805
+
1P/lzdb/6M3X/+nP2v/s0dv/8tnf///t5f/h0dD/QQC9/0sDv/9VEMH/VxPB/1cUwf9XE8H/VxPB/1cT
806
+
wf9XEsH/VxPB/1cSwf9XEcD/VxLB/1YRwP9WEcD/VRDA/1URwP9VEMD/VRDA/1UQwP9VD8D/VQ7A/1QO
807
+
wP9UDsD/UwzA/04Ewf9HAMv/uMOj/3R6bf9TVFP/U1NT/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1ZX
808
+
Vv9aXFj/gop2/6+cuv9FAMj/UAfB/1QOwP9VD8D/VRDA/1UQwP9VEMD/VRHA/1YRwP9WEcD/VxLB/1cS
809
+
wf9XEsH/VxPB/1cTwf9XE8H/VxPB/1cTwf9XE8H/WBTB/1kVwv9ZFcH/WRXC/1gUw/9TDMT/RADH/4xv
810
+
p//XvrH/1rvA/9e8xv/YvMf/2L7I/9i+yP/Zv8n/2L/I/9K9xP+voKX/qZme/7ajq/+4pq7/uqiv/7uo
811
+
sP+8qbH/vamx/72qsv+9q7L/vauy/7+ttP/Crrb/tqWr/6eXnf+ll5v/q5ug/7Cgpf+1pKr/uaet/72s
812
+
sf/BrrT/w7G2/8S0uf/Gt7z/yLq//8e4vv/JusD/0cDG/9/M1P/j09n/5dXa/+bW3f/o2N7/69vg/+zc
813
+
4v/u3uT/79/l//Lg5v/25ev/9ejr/9vQ0//hzNP/5MzW/+fN2P/oztn/6c/a/+nQ2v/s0tv/9dvg///z
814
+
4/+vjcL/OwC+/1AJwf9YE8L/WBTB/1kVwv9YFMH/WBTB/1cTwf9XFMH/VxPB/1cTwf9XE8H/VxPB/1cS
815
+
wf9XEcD/VhHA/1YRwP9WEcD/VRDA/1UQwP9VEMD/VQ/A/1UPwP9TDMD/SwDD/3Io0f+mto//aGxk/09P
816
+
Tf9UVVT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/VlZW/1VVU/9yeGz/tsad/1EAzv9PBML/VA7A/1UQ
817
+
wP9VEMD/VhHA/1YRwP9WEcD/VxLB/1cSwf9XE8H/VxPB/1cTwf9XE8H/WBTB/1gUwf9ZFcL/WRXC/1kV
818
+
wv9ZFcL/WhbC/1oVwv9ZFcL/VhDD/0sAxv9xP7H/1Lyn/9e8vv/YvcX/2b7H/9i+yf/Zv8n/2sDK/9rA
819
+
y//awMn/2cDK/9K+xf+sn6P/rJyi/7imrP+6qK//vKqx/76rs/+/rLP/v620/8Cutf/ArrX/wK61/8Gw
820
+
t//Dsrn/yLa8/8OxuP+3qK7/s6Oo/7GjqP+yoaf/s6Sq/7Wnrf+6q7H/v7C1/8S0uf/Kub//1cTK/97N
821
+
0//g0NX/4dLX/+PT2f/l1dv/59fd/+nZ3//r2+H/7dzi/+/f5P/w4Ob/9OTq//Xn7f/c0tP/38vT/+PK
822
+
1P/mzdf/6M/Y/+nP2v/o0Nn/6c/Z/+vR2//u1N3/+uLi///64f9/T8D/RAC//1UOwf9ZFML/WhXC/1kV
823
+
wv9ZFcL/WRXC/1gUwf9ZFcL/WBTB/1cTwf9XE8H/VxPB/1cTwf9XE8H/VxLB/1cRwf9WEcD/VhHA/1UR
824
+
wP9VEMD/VRDA/1ILwf9JAMb/lHHC/5Gbgf9eYVz/S0xL/1VVVf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
825
+
AP9XVlf/UFBP/2dpY/+erIr/gEbM/0sAxP9TDcD/VhDA/1YRwP9XEcH/VxLB/1cTwf9XE8H/VxPB/1cT
826
+
wf9YFMH/WRXC/1kVwv9ZFcL/WRXC/1oWwv9aFcL/WhbC/1oXwv9aFsL/WhfC/1gUw/9PCMX/UQ6//8ay
827
+
oP/XvLr/1rzD/9i+x//Yvsj/2cDJ/9q/yf/awcr/2sHK/9vBy//ZwMr/2cLK/9G9xf+roaP/r5+k/7qn
828
+
r/+8qrH/vayz/7+ttP/ArrX/wa+2/8Kwtv/Csbj/w7G4/8Oyuf/Es7r/xrW8/8q4v//MusH/zrzD/8+8
829
+
xP/Qv8T/0sDG/9TCyP/Wxcv/2cjO/9vK0P/dzNH/3c3T/9/O1f/h0df/49LY/+XV2//n2N7/6dnf/+va
830
+
4f/t3uP/79/l//Pi6P/z5en/3dPV/9/N0//iytP/5s3W/+bO2P/nztj/6M/Z/+jP2f/p0dn/6tDa/+zS
831
+
3P/x2OD//+nl//zu2f9ODL3/SgLA/1cTwv9aFsL/WhfC/1oWwv9aFsL/WhXC/1kVwv9ZFcL/WRXC/1kV
832
+
wf9YFMH/VxPB/1cTwf9XE8H/VxPB/1cSwf9XEsH/VhHA/1YRwP9VD8D/UAjB/0QAyf+4s7H/fYV0/1dX
833
+
Vf9KSkv/V1hY/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1hYWf9NTU3/XF5a/4mTfP+pkb7/RwDH/1IL
834
+
wf9WEcH/VxLB/1cTwf9XE8H/VxPB/1gUwf9YFMH/WRTB/1kVwv9ZFcL/WhXC/1oWwv9aF8L/WhbC/1oX
835
+
wv9aF8L/WhfC/1oXwv9aFsL/VQ/E/0cAxv+njKL/1byz/9a7wv/Xvcb/177I/9i/yP/av8n/2sDK/9rB
836
+
y//awcr/2sLL/9rCy//bwsv/2cLK/9K/xv+yp6n/rp+k/7qosP+9q7L/v660/8Cwtv/CsLf/w7G4/8Wz
837
+
uv/Es7r/xrW7/8e1vP/It73/ybm+/8q5wP/Mu8H/zbzD/9HAxv/SwMb/1MPJ/9bEy//Yxs3/2snP/9zL
838
+
0v/eztT/38/W/+LR2P/k1Nr/5tbc/+fY3v/p2d//69zh/+3d4//x4uf/7+Lm/9rR0//ey9L/4crT/+XM
839
+
1v/lzdj/587Y/+jP2f/o0Nn/6M/Z/+jQ2v/q0tv/7NPc/+zT3P/13eH///Po/9K7z/8+AL3/UgzA/1kV
840
+
wv9aF8L/WhfC/1oXwv9aF8L/WhfC/1oWwv9aFsL/WhbC/1kVwv9ZFcL/WRXC/1gUwf9XE8H/VxPB/1cT
841
+
wf9XEsH/VxLB/1UPwP9OA8P/ahvR/62+lv9uc2n/UlJR/0pJSv9ZWVn/AAAA/wAAAP8AAAD/AAAA/wAA
842
+
AP8AAAD/W1pa/0tLS/9VVlX/dntv/7jGoP9UAM//UQbE/1YRwf9XE8H/VxPB/1gUwf9YFMH/WRXC/1kV
843
+
wv9aFsL/WhbC/1oXwv9aF8L/WhfC/1oXwv9aGML/WxjC/1sYwv9bGML/WxjD/1kUw/9OBcf/dUO0/9S+
844
+
qv/VvL7/173F/9e9x//YwMn/2b/J/9rByv/awcr/3MLL/9vCy//bwsv/3MLM/9vDzP/bwsz/2cTL/9XD
845
+
yf+5r7L/rKCk/7upsP++rbP/wK+2/8KxuP/Es7n/xbS7/8a1u//It73/yLi+/8m4wP/LusD/zLzB/869
846
+
w//PvsX/0sHH/9PByP/VxMn/18bM/9nHzv/ay9H/3czS/9/P1f/h0df/49PZ/+TU2v/m1tz/6Nje/+ra
847
+
4P/s3eL/8OHn/+bb3v/YztD/3svS/+DJ0v/lzNb/5s3X/+fP2P/nz9j/58/Y/+nQ2v/oz9n/6tHb/+nR
848
+
2//r09z/7NPc/+7Y3//65OT////n/4FRw/9HAMD/VxLC/1sXwv9bGML/WxjC/1oXwv9bGML/WhfC/1oX
849
+
wv9aF8L/WhbC/1oVwv9ZFcL/WRXC/1kVwv9YFMH/VxPB/1cTwf9XEsH/VA3C/0oAxv+WccT/lJ+E/2Nl
850
+
YP9MTEv/S0pK/1tbW/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9dXFv/TU1M/09QUP9namX/nKqK/4pa
851
+
yP9MAMb/VQ/C/1cTwf9YFMH/WRXC/1kVwv9aFcL/WhbC/1oXwv9aF8L/WhfC/1oYwv9bGML/WxjC/1sY
852
+
wv9cGML/XBnD/1waw/9bGMT/VRDF/0gBxP++qqH/1r66/9W9xP/Vvsf/2L7H/9i/yP/ZwMv/2sHK/9rB
853
+
y//awcv/28LL/9vCzP/cw8z/3MPM/9rCy//bw8z/28PL/9jEyv/Hu77/r6an/7enrf+/rrX/wbG3/8Oz
854
+
uv/FtLv/x7a8/8i4vv/JuL//zLrA/8y7wv/OvcP/0L/G/9HAx//Twsj/1MPK/9bGzf/Yx83/2srP/9zL
855
+
0f/ezdP/4NDW/+HR1//j1Nn/5dXb/+bX3P/o2d//7Nzh/+vd4v/b09X/2MzP/9zJ0P/iytP/5MvV/+XP
856
+
1//mztf/6M7Y/+jQ2f/nz9j/6dDa/+nQ2v/p0tv/6tLb/+rT3P/s093/7dXf//Lb4f//7+j/9eja/0EA
857
+
vf9RC8H/WhfD/1wZw/9cGcP/XBjD/1sYwv9bGML/WxjC/1oXwv9aF8L/WhfC/1oWwv9aFsL/WRXC/1kV
858
+
wv9ZFcL/WBTB/1cSwf9RCcP/SwDM/7y/rv9+hHX/WVpY/0tKSv9MTUz/XV5d/wAAAP8AAAD/AAAA/wAA
859
+
AP8AAAD/AAAA/15eXv9NTU3/TExM/1xeWv+EjHr/ubG3/0YAyf9TDMP/WBTC/1kVwv9aFcL/WhbC/1oX
860
+
wv9aF8L/WhfC/1sYwv9bGML/WxjC/1wYwv9cGcP/XBrD/1waw/9cGsP/WxnD/1oXxP9PB8f/e1Gs/9PA
861
+
rv/WvcH/1r3G/9a+xv/Xv8n/2MDJ/9nAyf/awcv/2sLL/9rCy//cw8z/28PM/9zDzP/cw8z/3MPM/93E
862
+
zf/cxMz/28TM/9nFzP/Sw8f/u7S1/7OprP+8rbP/w7K4/8S0u//Gtrz/yLi+/8q6v//Mu8H/zb3D/8++
863
+
xf/RwMb/0sHI/9TDyv/Vxcv/18bM/9nIz//by9H/3MzS/97O1P/h0Nf/4tPY/+TV2v/m1tz/6Nrf/+ja
864
+
3v/d1Nb/1MvN/9jJzv/dyND/4MnS/+TN1v/mzdb/5s7X/+bO2f/nz9n/58/Z/+jP2f/p0dr/6dHa/+rS
865
+
2//p0tv/6tTc/+zU3v/s1d7/7tff//ji5P///+r/mnHM/0cAv/9YFcL/WxnD/1waw/9cGsP/XBnD/1wZ
866
+
w/9cGMP/WxjC/1sYwv9aGML/WhfC/1oXwv9aFsL/WhbC/1kVwv9ZFcL/VxHC/04Cxf9+QM7/pbWR/2xw
867
+
Z/9RUlH/SklL/05OTf9eXl7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/X2Bg/05PT/9LS0v/VFVU/3F1
868
+
a/+tvpf/cyrR/1AFxv9XEsP/WhXC/1oXwv9aF8L/WhfC/1sYwv9bGML/WxjC/1wZw/9cGcP/XBrD/1wa
869
+
w/9cGsP/XBrD/10bw/9dG8P/WRTE/0sAx/+0o5//1L65/9W9xP/UvcX/1r7I/9e/x//YwMn/2cHJ/9rB
870
+
yv/awsv/28LL/9vCy//cwsz/28PM/9zDzf/cxM3/3cTO/9zEzv/cxc7/3cbO/9rGzf/Xxcv/zcHF/762
871
+
t/+4rrH/vq+0/8S0uv/It77/ybq//8u8wf/NvMP/0L/E/9HBx//Twsj/1cTK/9bFy//Zx83/2cnP/9zL
872
+
0f/dzdP/387V/+HS1//j1Nr/5tbd/+PV2v/Zz9L/1MzN/9bKzv/byND/3snR/+HL1P/jzNX/5M3X/+bO
873
+
1//lztj/58/Z/+fP2P/o0Nn/6NHa/+nR2//p0tv/69Pc/+nS3P/s1d3/69Td/+zU3v/t2N//8dzh///z
874
+
6//y5+D/QAC8/1YRwf9cGsP/XRvD/1wbw/9cGsP/XBrD/1waw/9cGcP/XBjD/1sYwv9bGML/WhjC/1oX
875
+
wv9aF8L/WhbC/1kUwv9VDcP/SQDJ/7Cbvv+Kk37/YGJd/09PTv9KSkn/T1BP/2BgYP8AAAD/AAAA/wAA
876
+
AP8AAAD/AAAA/wAAAP9iYWL/UVBQ/0tMTP9QUVD/Y2Vh/5CZgv+rksD/SwDJ/1YQw/9ZFsL/WhfC/1sY
877
+
wv9bGML/WxjC/1wZw/9cGsP/XBrD/1waw/9cG8P/XRvD/10bw/9eHMP/XhzD/10aw/9XEcb/ai/L/8Cz
878
+
l//Wv8D/1b7G/9W+xv/Xv8j/18DI/9fAyf/Zwcr/2cLK/9vCy//awsv/28LL/9zDzP/bw83/3MTN/93F
879
+
zv/dxc7/3cXO/93Gz//dx8//3MbO/9zGzv/Zxs3/1sXL/9DEx//Fvb7/vbW3/7+0t//Etbr/yrq//8y8
880
+
wv/Pv8T/0sHI/9PCyf/Vxcr/18bM/9nJzv/bytD/3c3U/9/O1f/g0Nb/3s/V/9nN0f/RyMv/0cjJ/9bJ
881
+
zf/ayc//3crR/+DL0//iy9T/4cvV/+TM1v/lzdb/5c7X/+fP2P/nztn/6NDZ/+nQ2v/o0dr/6dLb/+nS
882
+
3P/p09v/69Td/+vV3f/s1t7/7NXe/+3X3//w2uD/++jn////7v9pLsj/UgzA/1wawv9eHMP/XhzD/10b
883
+
w/9cGsP/XBrD/1waw/9cGsP/XBnD/1wYw/9bGML/WxjC/1oXwv9aF8L/WBTC/1IHxf9rHtL/s8Wa/3V6
884
+
b/9XWFf/TExN/0xMS/9QUVH/YmFh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2JjYv9SUlL/TU1N/09O
885
+
Tv9aWlj/eH1y/7bHnv9mFtL/UgnF/1gVwv9bGML/WxjC/1wZw/9cGcP/XBrD/1waw/9cGsP/XRvD/14c
886
+
w/9eHMP/XhzD/14cw/9fHcT/XhvF/1cQx/9pN7X/zsCo/9S/wf/Wvsb/1r/H/9a/x//WwMj/2MHK/9jB
887
+
yf/Zwcr/2sLL/9nCy//bw8z/2sLM/9zDzP/dxc7/3cXO/93Fzv/exs//3sjP/9/I0f/eyND/28bO/9zG
888
+
zf/bxcz/2cXM/9bEyv/Uxcr/zcHE/8a+wP/Bu7z/w7m8/8S6vv/IvMD/yb3A/87Axf/Pwcb/0MLH/8/E
889
+
x//OxMb/zcTF/83Exv/Nxcb/0cbI/9fIy//ayc//38rR/+DL0//jztb/483V/+PM1f/jzNb/5c3W/+XN
890
+
1//kztf/5s7X/+jO2P/n0dr/6NHZ/+nR2v/q0tv/6dLa/+vU3f/q1Nz/69Xe/+zV3v/s1t7/7dbg/+7a
891
+
4f/45OT////1/31Nyv9QCcH/XRrE/14cw/9eHMP/XhzD/14cw/9dG8P/XRvD/1waw/9cGsP/XBrD/1wZ
892
+
w/9cGMP/WxjC/1oXwv9WEMP/SwDI/6aJw/+TnoT/ZWhj/1JSUf9NTE3/Tk5O/1JSU/9iY2P/AAAA/wAA
893
+
AP8AAAD/AAAA/wAAAP8AAAD/ZGVk/1NTU/9OTk7/Tk5O/1NTU/9naWX/lqCH/6WHxP9MAMj/VxHD/1sX
894
+
wv9cGcP/XBrD/1waw/9cGsP/XRvD/14cw/9eHMP/XhzD/18cxP9fHcT/Xx7E/18exP9eHMX/VxHH/2Y1
895
+
tP/Mw6j/18LD/9a+x//Wv8b/1r/I/9a/yP/XwMn/2MDJ/9jCy//aw8v/2sLK/9rDzP/bxM3/3cTO/9zF
896
+
zv/exc7/3sbP/97H0P/gyNL/4MnR/9/K0P/gy9D/38rP/97Jz//eydD/3MbN/9rGzf/axcz/18XL/9XE
897
+
yf/SxMn/0cPG/87Cxf/MwsT/y8HD/8vCxP/Nw8X/zsLG/9HEyP/Uxcn/18bM/9vIzv/eytL/38vS/+HN
898
+
1f/izdT/5tDW/+nU2f/o09j/5dDW/+PM1f/jzNX/5M7X/+bP2P/mz9j/59DZ/+jR2v/o0dn/6dLb/+rT
899
+
3P/q1Nz/6tTc/+vV3f/s1d7/7Nbf/+3Y3//u19//7djf//jk5f////r/fErK/1AKwP9dG8T/Xx3E/18d
900
+
xP9fHcT/XhzD/14cw/9eHMP/XRvD/10bw/9cGsP/XBrD/1wZw/9cGMP/WRXC/1MKxf9kFNH/uMah/3uA
901
+
c/9bXFr/T1BQ/05OTv9PT0//VFNT/2RkY/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9lZWX/VVVV/1BQ
902
+
UP9OT0//UFFQ/1xdW/98gXT/uMeh/2YY0v9UCsb/WhfE/1waw/9cGsP/XRvD/10bw/9eHMP/XhzD/18c
903
+
xP9fHcT/Xx7E/18exP9fHsT/Xx7E/18dxP9aFcb/WBjA/769m//XxcH/18HH/9bAx//WwMj/18DJ/9fA
904
+
yf/Ywcr/2MHJ/9nCy//Zwsv/28LM/9vEzP/cxM3/3MXN/93Fz//dx8//38jR/+DM0//k0dT/6dzX/+Hb
905
+
y//e1cf/5NTO/+PO0f/fydD/3MXO/9vGzv/cxs7/3MfP/9zGzv/bx83/28fO/9vIzv/byM7/28fO/9vH
906
+
z//dydD/3cnR/9/J0f/gytL/4s3U/+PN1f/jz9b/5M/W/+rW2P/z5t//+fLi/+/n2v/o2tb/5dHV/+TN
907
+
1f/lztf/5c7Y/+bO2P/n0Nr/6NLa/+nS2//p09v/6tPc/+rT3f/q1N3/7Nbe/+vV3v/r1t//7Nfe/+zX
908
+
3//v2uD//ezn//////9YGcD/VRDB/14cxP9fHsT/Xx7E/18exP9fHcT/Xx3E/14cw/9eHMP/XhzD/10b
909
+
w/9cGsP/XBrD/1sZw/9YEsT/TQDI/6eKxf+WoYf/aWtm/1RVVP9PT0//T1BP/1BQUP9VVFT/ZmVl/wAA
910
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/2dnZ/9VVlb/UlFR/1BQUP9QUFD/VVZV/2lsZ/+WoIf/qo7D/00A
911
+
yv9XE8T/WxnD/10bw/9eHMP/XhzD/14cw/9fHcT/Xx7E/18exP9fHsT/Xx/E/2AfxP9gH8T/YB/E/14a
912
+
xf9SB8r/kYSb/9THuP/axMj/1sDI/9fAyf/Xv8j/18HJ/9jCyf/Zwsr/2MHK/9rCyv/bxMz/28TN/9zF
913
+
zv/dxs7/3cfQ/9/J0f/hzNL/6NfX//Lr3f/n6NH/j3C7/3FJtP+qoqz/1s+//+DMzv/cx8//3MbO/97G
914
+
z//dxs//38jR/+DI0f/fydH/38rS/+DJ0v/gydL/4crT/+LL0//gy9P/48zV/+PM1f/lztb/5M/X/+fR
915
+
2P/t3N3//vnn/9nS3P+HXcf/i264/8rMs//h18n/49LR/+TP1v/lz9f/5tDZ/+jR2f/n0dr/6NLb/+rT
916
+
3P/p09z/6tXd/+vV3v/s1d7/69be/+zX3//s2OD/7Njf//Lf4v////H/5Nnu/0QAvP9aFsL/YB7E/2Af
917
+
xP9gH8T/Xx7E/18exP9fHsT/Xx3E/18dxP9eHMP/XhzD/10bw/9dGsP/WhfD/1MLxv9qHNL/t8eh/3uB
918
+
dP9dXVz/UVJS/1BQUP9RUVH/UVJS/1VWVv9oZ2f/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/aGhn/1dW
919
+
V/9SU1L/UlFS/1FRUf9TUlL/Xl5d/3p/dP+1xZ7/cyzS/1MKxv9bGMP/XhvD/14cw/9fHcT/Xx3E/18e
920
+
xP9fHsT/Xx/E/2AfxP9gH8T/YR/E/2EgxP9hIMX/YB/G/1kUyf9YG7//uLmb/9vKw//ZxMj/18DI/9bA
921
+
yP/Xwcn/2MHJ/9jByv/Zwsv/2cPL/9vEzP/bxM3/3MbN/93Hz//eydD/4c7T/+vd2f/49N3/2NXO/1sd
922
+
wv9NAsb/UQfJ/0QAw/+TiJv/1Me+/93Gzf/dxc7/3cbP/9/I0f/fx9D/4MnS/+DK0v/hytP/4cvT/+LK
923
+
0//iy9T/4cvU/+LM1f/kzdb/483W/+TO1//m0Nn/7Njc///27P/c0uf/PwC+/0sBw/9NAsb/WRq+/7Sw
924
+
rP/d18L/5dXS/+bR1v/m0Nj/59Ha/+jS2v/p09v/6dPc/+rU3P/p1N3/69be/+vW3v/s197/7Nff/+3Y
925
+
3//w2+D//fHn/////v9hI8f/UQvB/14dxP9hIMT/YSDE/2AfxP9gH8T/YB/E/18exP9fHsT/Xx7E/18d
926
+
xP9eHMP/XhzD/10aw/9YEsT/TADK/7KfwP+Unob/aWtn/1ZXVv9RUVL/UlFR/1JSUv9SU1L/VldX/2ho
927
+
Z/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9paWn/V1hY/1RUVP9TU1P/UlNS/1NSU/9XWFb/aGpm/5CZ
928
+
hP+5rbz/TgDM/1kTxP9dG8P/Xx3E/18exP9fHsT/Xx7E/2AfxP9gH8T/YB/E/2EgxP9hIcX/YSHF/2Eh
929
+
xf9hIMX/XxzH/1YNyv9wR7D/y8mr/9vJxf/ZxMn/2MHJ/9fAyf/Xwcr/2MLK/9nDy//Zw8v/28TM/9vF
930
+
zf/cx8//3snP/+TS1P/t5Nv/+Pvb/66cx/9TDMX/VhDF/18dxv9hHsf/WA/L/21Cr//NwK7/2sTJ/93F
931
+
zv/ex87/3sfR/+DJ0v/gydP/4svT/+HK0//hy9P/4srU/+LL1f/jzNX/48zV/+TN1v/lztf/5c/X/+jS
932
+
2v/w3eD////0/45jz/9OBcD/XhzF/18dxv9ZE8j/VhDJ/5J9qf/X2Ln/5tjQ/+jU2P/n09n/59Lb/+nT
933
+
2//p09v/6tXd/+rV3f/r1t7/7Nff/+zX3//s19//79vg//np5f////r/l3DV/0kAvv9bGcP/YCDF/2Eh
934
+
xf9hIcX/YSDE/2EgxP9gH8T/YB/E/18fxP9fHsT/Xx7E/18dxP9eHMT/WxjD/1MJx/9+PdH/scCa/3l+
935
+
c/9dXlz/VFRT/1JSUv9TU1P/VFNU/1RUU/9XWFf/aWlp/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pq
936
+
av9ZWVj/VFVU/1RVVf9UVFT/VFNT/1RUVP9dXV3/dnpw/6m5lv+PWc//UgfI/1wYxf9fHcT/Xx7E/18e
937
+
xP9gH8T/YB/E/2EgxP9hIMT/YSHF/2Ehxf9hIcX/YiLF/2Iixf9iIcX/XhvH/1MIyv98Xqf/y8qt/9zM
938
+
xv/ZxMj/2MLK/9fByf/Zw8r/2cPL/9nDy//axcz/3cjP/+DM0f/n19X/8+zb/+/y2P+LY8j/TAHD/1sX
939
+
xf9jI8b/ZSbH/2Qlx/9dGcr/bTfC/8K6ov/axMj/3cbO/93Gz//fyNH/4MrS/+HJ0v/hytP/4cvU/+LL
940
+
1P/iy9P/48zU/+PM1f/kzNX/5M7X/+TO1//lz9j/6NPb//Xi4/////L/dkHN/1YSw/9jJMb/ZSbH/2Qj
941
+
x/9eGsf/UgfJ/3dPtP/HyLD/5NvM/+ra1//p1dr/6NTb/+jT3P/q1d3/6tbe/+vX3v/s19//69fe//Dc
942
+
4P/66+b////7/6+T2v9FAL3/WhbC/2Egxf9iIsX/YSHF/2Ehxf9hIcX/YSHE/2EgxP9hH8T/YB/E/2Af
943
+
xP9fHsT/Xx7E/14bxP9YEcb/VQPO/767tv+MlIL/Z2hk/1dXV/9TVFT/U1RT/1RUVf9VVVX/VVRU/1hY
944
+
Wf9qamv/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/bGts/1pZWv9WVlX/VVVV/1ZVVf9UVVX/VVVV/1hY
945
+
Vv9lZ2T/iI5+/7/Grf9jE9P/VxDH/10bxP9gH8T/YB/E/2AfxP9hIMT/YSHF/2Ehxf9hIcX/YiLF/2Ii
946
+
xf9jI8X/YyPF/2Mjxf9jIsX/XxvH/1MHyv95W6f/zMus/97Ox//bx8v/2sXL/9nEy//axMz/2sbN/93K
947
+
zv/i0dH/7OLY//n63P/OxtP/XyDF/1IMxf9eHcb/ZCXH/2Unx/9mKMf/ZifH/2Aeyf9lKcj/vbeb/9rE
948
+
xv/dxs7/3sbQ/9/I0f/gydH/4MrS/+LL1P/iy9X/4szU/+LM1P/jzdb/4svV/+TN1v/lzdf/5c/Y/+bQ
949
+
2f/o09v/9+Xl////9f9jJ8f/WxnE/2Umx/9lKMf/ZSfH/2QlyP9gH8j/VxHK/1obwP+onqz/4eDD/+vg
950
+
1v/s29z/69fd/+vX3f/r1t3/7Nfe/+3a4P/w3uD//O7n////9v+wk9z/RQC8/1oVwv9hIMT/YyLF/2Mj
951
+
xf9jI8X/YiLF/2Ehxf9hIcX/YSHF/2EgxP9hIMT/YB/E/2AfxP9eHcT/WxfF/1EEyv+iec3/oq+R/3N2
952
+
bv9dXV3/VVVU/1RUVP9VVlX/VVVV/1ZWVf9VVVb/W1pZ/2xsbP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
953
+
AP9tbW3/Wlta/1dXV/9XV1f/V1ZW/1ZWVv9VVVX/VlZW/1xcXP9vc23/maWL/7Kbw/9PAcz/WhbF/18d
954
+
xP9gH8T/YSDE/2Ehxf9hIcX/YSHF/2Iixf9jI8X/YyPF/2Mjxf9kJMX/ZCTF/2Qjxf9jIsb/XhzJ/1QL
955
+
y/9wSa7/v8Kk/9zTwf/ezsr/3cvM/97Nzf/h0s//6d/U//Ly2P/p69f/iWHI/0wDxP9ZFcb/YSHH/2Un
956
+
x/9nKcf/ZynH/2gqx/9nKcf/YyLJ/1cSyv+2rp7/2MPC/93Gzv/extD/4MjS/+DJ0//gytT/4crT/+HL
957
+
1P/jzdX/48zV/+PM1v/kzdb/5M7X/+TN1v/lz9j/59HZ/+vW3f/97On////z/04HwP9fHsX/ZyjH/2gq
958
+
x/9nKcf/ZynH/2Unx/9jI8j/XRnJ/1EHyf90TLX/xcSy/+jkzP/u49r/7uDe/+7d3v/w4OD/9uji///8
959
+
6v////T/mHLU/0cAv/9ZFsP/YSDE/2Qjxf9kJMX/YyPF/2Mjxf9jI8X/YiLF/2Iixf9hIcX/YSHF/2Eh
960
+
xf9hIMT/YB/E/14bxf9VDcj/civS/7nIov+Ch3v/Y2Rj/1hYWP9VVVb/VlZW/1ZWV/9WV1f/VldX/1dX
961
+
V/9aW1v/bW1t/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/25ubv9cW1z/V1hY/1dYWP9XWFf/V1dY/1dX
962
+
V/9WV1b/WFhY/2FjYf98gHb/rr2a/49X0f9TCcn/XRrF/2EfxP9hIcX/YSHF/2Iixf9iIsX/YyPF/2Mj
963
+
xf9kJMX/ZCTF/2Qkxf9kJMb/ZCXG/2Qlxv9kJMf/YB7I/1gQyv9cH7//nJCn/9DWtP/f38D/6OnK/+7y
964
+
zv/c29H/nHrP/1ELxP9VD8X/YB7G/2Umx/9nKcf/aCrH/2gqx/9oKsf/aCrH/2gqx/9lJcj/Vw7N/66i
965
+
o//WxL//3cfO/97Iz//gytL/4MnS/+HL1P/iy9T/4svU/+LM1f/izNT/483V/+PN1v/lztb/5c/X/+bR
966
+
2f/n0tr/69fd///z7P/48vD/SQC//2Iixf9nKcf/aCrH/2gqx/9oKsf/aCrH/2cpx/9mJ8f/YR/I/1kT
967
+
yf9QC8P/g2G3/8XCuv/q78v/+PjZ////4////+j/18zg/2Unxf9OBsD/XBrE/2Ijxf9kJcb/ZCXG/2Qk
968
+
xf9kJMX/ZCTF/2Mjxf9jI8X/YyPF/2Iixf9hIcX/YSHF/2Ehxf9gHcT/WRPG/1gHz/++uLj/kZqF/2xv
969
+
av9dXFv/V1dX/1dWVv9XV1f/WFdX/1dXV/9YV1j/WFhY/1xbXP9vbW3/AAAA/wAAAP8AAAD/AAAA/wAA
970
+
AP8AAAD/b29v/1xdXP9ZWVn/WVhZ/1hYWP9ZWFn/WFhY/1dYWP9XWFf/XFxa/2hpZv+Ij4D/vsir/20h
971
+
0v9XEMf/Xh3G/2Agxf9iIsX/YiLF/2Mjxf9jI8X/ZCTF/2Qkxf9kJMX/ZCXG/2Qlxv9lJsb/ZSbG/2Um
972
+
xv9lJcb/YyLH/14ayf9VDcv/YCLF/3dHxf95S8T/bjbK/1AHxf9WEMX/Xx3G/2Qlx/9nKMf/aCnH/2kr
973
+
x/9pKsf/aSvH/2krx/9pK8f/aSvH/2cnyP9bFMz/lYCk/9PEuf/dyM3/3sfQ/9/J0f/gytL/4cvT/+LM
974
+
1P/hzNX/483W/+PN1v/jzdb/487W/+PN1//l0Nj/5tHZ/+fS2v/t2t////7w/9bE5v9PB8D/ZCTF/2kq
975
+
x/9pK8f/aSvH/2kqx/9pK8f/aCrH/2gqx/9nKcf/ZSbI/2AeyP9ZE8j/UAfG/2s0xf95TMT/eEnF/2Ek
976
+
xf9MBML/WBPD/2AfxP9kJMX/ZSXG/2Umxv9lJsb/ZCXG/2Qlxv9kJMX/ZCTF/2Mjxf9jI8X/YyPF/2Ii
977
+
xf9hIcX/YB/F/1wYxv9SBMr/q4vJ/6Ovkv92eXH/YGBf/1lYWP9XV1j/WFhX/1hZWP9YWFn/WFhZ/1lZ
978
+
Wf9YWFn/XV1d/29wcP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ycXD/Xl9f/1laWv9aWln/Wlpa/1pa
979
+
Wv9ZWVr/WVlZ/1lYWP9aWVr/Xl5e/29ybf+Wn4j/v7m7/1sL0f9ZFMf/YB/F/2Iixf9jI8X/YyPF/2Qk
980
+
xf9kJMX/ZCTG/2Qlxv9lJsb/ZSbG/2Umxv9mJ8b/ZifG/2Ynx/9mJ8f/ZCXI/2IiyP9gHsj/XRrI/10a
981
+
x/9fHcf/YiHH/2Ulx/9nKMf/aCrH/2krx/9pK8f/aSvH/2krx/9pLMj/aSvH/2ksyP9pLMj/ZynJ/18b
982
+
zf98WrD/zsOx/9zIy//eyND/38nS/9/J0v/hzNX/4szU/+LM1f/jzdb/483W/+PP1v/kztb/5M/X/+XQ
983
+
2P/m0tn/6NPa//De4P////X/p4TZ/1UQw/9lJ8f/aSzI/2krx/9pK8j/aSvH/2krx/9pK8f/aSvH/2kr
984
+
x/9oKsf/ZyjH/2Umx/9jIsf/XxzH/1wYxv9cGMb/XRvG/2Agxv9jJMf/ZSfH/2Ynxv9mJ8b/ZibG/2Um
985
+
xv9lJsb/ZCXG/2Qlxv9kJMX/ZCTF/2Qkxf9jI8X/YyPF/2Ehxf9dG8b/VAvK/49X0v+xwZz/gIV5/2Vm
986
+
ZP9aW1v/WVlY/1hYWf9ZWVr/WlpZ/1pZWf9aWVn/WllZ/1paWv9dXl7/cHBw/wAAAP8AAAD/AAAA/wAA
987
+
AP8AAAD/AAAA/3Jycv9fX1//W1tb/1paWv9bW1v/Wlpa/1tbWv9bWlr/Wlpa/1lZWf9bW1r/Y2Ri/3h6
988
+
c/+irpL/sZjF/1IEzf9cGMf/YiHF/2Mjxf9kJMX/ZCTF/2Qlxv9kJcb/ZSbG/2Umxv9mJsb/ZifG/2Yo
989
+
x/9mKMf/ZijH/2Yox/9nKcf/ZynH/2cox/9nKMf/ZijH/2cox/9oKcf/aSvH/2krx/9pK8f/aSvI/2kr
990
+
x/9pLMj/aSzI/2ktyP9pLMj/ai3I/2otyP9pK8n/YiDL/2o4vP/HwKb/3cjK/97I0P/gytL/4MvT/+HM
991
+
1P/hzNT/4szV/+LM1P/jzdb/5M7W/+TN1v/l0Nf/5dDX/+XR2f/o1Nv/9OLi////+v99Ss3/WxnE/2gq
992
+
x/9qLcj/ai3I/2ktyP9qLcj/aSzI/2ksyP9pK8j/aSvH/2krx/9pK8f/aSrH/2gqx/9nKMf/ZifH/2co
993
+
x/9mKMf/ZijH/2cpx/9mKMf/ZijH/2Yox/9mJ8b/ZifG/2Umxv9lJsb/ZSbG/2Qlxv9kJMX/ZCTF/2Qk
994
+
xf9iIsX/YB7G/1cQyf9zLNP/v8qp/4qQgf9rbGn/Xl5e/1lZWf9ZW1n/WllZ/1pbWv9bW1v/W1tb/1pa
995
+
W/9aW1v/Wlta/2BfX/9ycXL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cnJz/2BgYP9cXFz/W1tc/1tc
996
+
W/9cW1v/XFtc/1tcXP9bW1v/W1pa/1taW/9cXV3/Zmdm/4CEev+uvJr/oXLR/1UJy/9eG8b/YyLF/2Qk
997
+
xf9kJcb/ZCXG/2Umxv9lJsb/ZifG/2Ynxv9mKMf/ZijH/2Yox/9nKcf/ZynH/2gqx/9oKsf/aCrH/2gq
998
+
x/9pK8f/aSvH/2krx/9pK8j/aSzI/2ksyP9qLcj/aS3I/2otyP9qLcj/ai3I/2otyP9rLcj/ai3I/2st
999
+
yP9nJsr/XBfL/7m2nP/aycb/3snP/+DL0v/fy9P/4MzU/+LN1f/hzdX/4s7W/+PO1v/jztf/48/X/+TP
1000
+
1//m0tn/5tHZ/+rX3f/66+f////5/1MOwf9iIcX/aizI/2otyP9rLsj/ai3I/2otyP9qLcj/ai3I/2kt
1001
+
yP9pLMj/aSzI/2krx/9pK8f/aSvH/2krx/9pK8f/aCrH/2gqx/9oKsf/aCrH/2cpx/9mKMf/ZijH/2Yo
1002
+
x/9mKMf/ZifG/2Umxv9lJsb/ZSbG/2Qlxv9kJMX/ZCPF/2Egxf9aE8j/ZxrT/8HBtv+UnIj/cHJu/2Fg
1003
+
YP9bW1z/Wlta/1tbW/9cW1v/XFxc/1tbW/9bXFz/W1xc/1xcW/9cXFz/YGBg/3Nzc/8AAAD/AAAA/wAA
1004
+
AP8AAAD/AAAA/wAAAP91dXX/YWFh/11dXP9cXFz/XF1c/1xcXP9dXF3/XFxc/1xdXf9bXFz/W1tc/1tb
1005
+
W/9fX1//a2xp/4aLf/+3x6H/j1XS/1cNyv9gHMb/YyPG/2Qlxv9lJsb/ZSbG/2Ynxv9mJ8b/ZijH/2Yo
1006
+
x/9mKMf/ZynH/2gqx/9oKsf/aCrH/2krx/9pK8f/aSvH/2krx/9pK8f/aSzI/2ksyP9qLcj/ai3I/2ot
1007
+
yP9qLcj/ay3I/2suyP9rLsj/ay7I/2svyP9rLsj/ay/I/2gqyf9cF83/loWi/9jKwP/fy87/38rS/9/K
1008
+
0v/hzNT/4szV/+LN1f/jzdb/483W/+PP1//kz9f/5NHY/+XQ2P/n09n/7Nre///77v/f0ev/UArB/2Un
1009
+
xv9qLsj/ay/I/2svyP9rLsj/ay7I/2styP9qLcj/ai3I/2otyP9qLcj/aS3I/2ksyP9pLMj/aSvI/2kr
1010
+
x/9pK8f/aSvH/2gqx/9oKsf/aCrH/2cpx/9nKcf/ZijH/2Yox/9mKMf/ZifG/2Umxv9lJsb/ZSbG/2Mk
1011
+
xv9iIcb/XBbH/10N0f++tr3/m6aO/3Z4cv9jZGP/XF1d/1xbW/9cW1z/XFxc/1xcXP9dXF3/XVxc/1xc
1012
+
XP9cXFz/XVxc/11dXP9hYGH/dHR0/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3V1df9iYmL/Xl5e/15d
1013
+
Xf9dXl3/Xl1e/11dXf9dXV3/XV1d/11dXf9cXF3/XFxc/11dXf9gYWD/bW9s/4uSg/+9yqj/gULS/1gP
1014
+
yv9gHsf/ZCXG/2Umxv9mJ8b/ZifG/2Yox/9mKMf/ZynH/2cpx/9oKsf/aCrH/2gqx/9pK8f/aSvH/2kr
1015
+
x/9pLMj/aSzI/2ktyP9qLcj/ai3I/2otyP9rLcj/ay7I/2suyP9rL8j/ay7I/2svyP9rL8j/ay/I/2sv
1016
+
yP9rL8n/ai3J/2Mhzf9wRbT/zcet/97Nzf/fy9L/4MvT/+DM1P/izdT/4c3V/+LO1v/iztX/48/X/+PP
1017
+
1//k0Nj/5dHZ/+fV2//y4+L////4/5No1P9aF8T/aCvI/2svyP9rL8j/ay/I/2svyP9rL8j/ay/I/2su
1018
+
yP9rLsj/ay3I/2otyP9qLcj/ai3I/2otyP9pLMj/aSzI/2krx/9pK8f/aSvH/2krx/9oKsf/aCrH/2gq
1019
+
x/9nKcf/ZijH/2Yox/9mKMf/ZifG/2Umxv9lJcb/YyPH/1wYyf9bC8//t6fB/6Kuk/96fXX/ZWZm/15e
1020
+
Xv9bXVz/XFxd/11dXv9dXV7/XV1d/11dXf9dXV3/XV1e/11dXv9dXl3/XV1e/2JiYv91dnX/AAAA/wAA
1021
+
AP8AAAD/AAAA/wAAAP8AAAD/dnd3/2JjY/9fXl//Xl5e/11eXf9eXl//Xl5e/15eXv9eXl7/X15e/15e
1022
+
Xv9eXV3/XV1d/15eXv9kZGP/cXRv/4+Xhf/Ayqz/fTvS/1kRy/9hH8f/ZSXG/2Ynxv9mKMf/ZijH/2cp
1023
+
x/9nKcf/aCrH/2gqx/9pK8f/aSvH/2krx/9pK8j/aSzI/2ksyP9qLcj/ai3I/2otyP9rLcj/ay7I/2su
1024
+
yP9rL8j/ay/I/2svyP9rL8j/azDJ/2svyP9sMMn/bDDJ/20xyf9sMMr/aSnL/18bzf+opJr/3dDE/+HO
1025
+
0f/gy9P/4M3U/+HN1f/jztb/4s7W/+PO1v/jz9b/4tDW/+XR2P/n09r/69rd///26v////f/VhHD/2Mk
1026
+
x/9rL8n/bDDJ/2wwyf9sMMn/ay/J/2svyP9rL8j/ay/I/2svyP9rL8j/ay7I/2suyP9qLcj/ai3I/2ot
1027
+
yP9qLcj/aSzI/2ksyP9pK8f/aSvH/2krx/9oKsf/aCrH/2gqx/9nKcf/ZijH/2Yox/9mKMf/ZibG/2Mj
1028
+
xv9eGcj/WArQ/7WhxP+ms5f/foJ6/2lpaP9gYGD/Xl5e/15dXf9eXl3/Xl1d/15eXv9eXl7/Xl5e/15e
1029
+
Xv9eXl7/Xl5e/15eXv9fX1//Y2Nj/3Z2d/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP94d3j/Y2Nk/19f
1030
+
X/9fX1//X19f/19fX/9fX1//X19f/19fX/9fXl//X19f/15fX/9eX17/X15e/19eX/9lZGP/c3Vx/5KZ
1031
+
iP/Byq7/fTzS/1oRy/9iH8f/ZSbH/2Yox/9nKcf/ZynH/2gqx/9oKsf/aSvH/2krx/9pK8f/aSzI/2ks
1032
+
yP9qLcj/ai3I/2otyP9rLcj/ay7I/2suyP9rL8j/ay/I/2svyP9rL8j/bDDJ/2wwyf9sMMn/bTHJ/20x
1033
+
yf9tMcn/bTHJ/20xyf9rLsr/ZCLN/24+vf++wKL/4tXL/+TS1P/jztT/4s/V/+LO1f/jztX/48/W/+PQ
1034
+
1//l0dj/59TY/+ra3P/67uT////5/4ZY0f9bGcT/aSzI/20wyf9tMcn/bTHJ/20xyf9tMcn/bDDJ/2ww
1035
+
yf9rL8n/ay/I/2svyP9rL8j/ay/I/2suyP9rLsj/ai3I/2otyP9qLcj/aSzI/2ksyP9pK8f/aSvH/2kr
1036
+
x/9oKsf/aCrH/2gqx/9nKcf/ZijH/2Unx/9kJMf/XxrI/1oMz/+0ncb/qbWY/4CEe/9qbGn/YGBh/11e
1037
+
Xv9fXl7/X15f/19fX/9eX1//X19f/19fX/9fX17/Xl9f/19fX/9fXl//X19f/19fX/9kZGT/d3d4/wAA
1038
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/3l5eP9lZWX/YWFg/2BgYP9gYGD/YGBg/2BgX/9gYGD/YGBg/2Bg
1039
+
YP9gYGD/YGBg/19fX/9fX1//X15f/2BhYP9mZmb/dXdz/5Obiv/Ayq3/g0TS/1kRzP9hIMj/ZSfH/2cp
1040
+
x/9oKsf/aCrH/2krx/9pK8f/aSvH/2ksyP9pLMj/ai3I/2otyP9qLcj/ay7I/2suyP9rL8j/ay/I/2sv
1041
+
yP9rL8n/bDDJ/2wwyf9tMcn/bTHJ/20xyf9tMcn/bTHJ/20yyf9tMsn/bTLJ/2wxyf9qLMv/YR7O/3BG
1042
+
tf/Cxaj/5d7K/+rb1P/o2Nf/59XX/+fW1//n1tf/6NnZ/+zb2v/x5d7//vnl////7/+eeNb/VhLD/2Yo
1043
+
x/9sMcn/bTLJ/20xyf9tMsn/bTHJ/20xyf9tMcn/bTHJ/2wwyf9sMMn/bDDJ/2svyP9rL8j/ay/I/2sv
1044
+
yP9rLsj/ay7I/2otyP9qLcj/ai3I/2ksyP9pLMj/aSvH/2krx/9oKsf/aCrH/2gqx/9mKMf/YyTI/10a
1045
+
yv9eD9H/uKbE/6i1mP+ChX3/bW5r/2JjYv9fYF//X15f/19fX/9gYF//YWBf/19gYP9gYF//YGBg/19g
1046
+
YP9gYGD/YGBg/2BgYP9gYGD/YWBh/2VkZf95eXn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/enp6/2Vm
1047
+
Zv9hYWL/YWFh/2FhYf9hYGH/YWBg/2FgYf9hYWH/YWFh/2FgYf9hYGH/YWBh/2BhYP9gYGD/YGBf/2Fh
1048
+
Yv9nZ2f/dXdz/5KZiP++y6n/klnT/1gPzf9hH8n/ZifH/2gpx/9oKsf/aSvH/2krx/9pLMj/aSzI/2ot
1049
+
yP9qLcj/ay3I/2suyP9rL8j/ay/I/2svyP9rL8j/bDDJ/2wwyf9tMcn/bTHJ/20xyf9tMcn/bTLJ/20y
1050
+
yf9tMsn/bTLJ/20yyf9tM8n/bTLJ/20yyf9qLcr/YyDM/2Mow/+TfrL/xMK6/+TpxP/r7c//8PHU//Ly
1051
+
1f/099n/9/3Z/+jo2/+8qdj/bTTJ/1oWxP9nKcf/bDDI/20yyf9tMsn/bTLJ/20yyf9tMsn/bTLJ/20x
1052
+
yf9tMcn/bTHJ/20xyf9sMMn/bDDJ/2wwyf9rL8j/ay/I/2svyP9rLsj/ay7I/2otyP9qLcj/ai3I/2ks
1053
+
yP9pLMj/aSvH/2krx/9oKsf/ZynH/2QkyP9dGMr/ZRjU/7ywwP+mspf/goZ9/2xubP9kZGP/YGBh/19g
1054
+
X/9hYGH/YGFh/2FhYP9hYWH/YWFg/2BgYf9hYGH/YWBh/2FgYP9hYWH/YGFh/2FgYf9hYWH/ZWZl/3p5
1055
+
ef8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP96e3v/Zmdm/2JhY/9hYWL/YmFh/2FhYf9hYmL/YWJh/2Jh
1056
+
Yv9hYmL/YmFh/2FiYv9hYWH/YmFh/2FhYf9hYWH/YWFg/2JiYv9nZ2b/dXdy/4+Vh/+6yaX/pXfS/1kO
1057
+
zv9hHsn/ZibH/2kqx/9pK8f/aSzI/2ksyP9qLcj/ai3I/2suyP9rLsj/ay/I/2svyP9rL8j/bDDJ/2ww
1058
+
yf9tMcn/bTHJ/20xyf9tMcn/bTLJ/20yyf9tMsn/bTLJ/20yyf9uM8n/bjPJ/24zyf9vNMr/bjPK/28z
1059
+
y/9tMMv/aCjM/2EezP9dGcv/YybH/203xP90QsX/dEPG/285xv9mKsr/WRXH/1sYx/9kJMj/ai3J/20y
1060
+
yv9uM8n/bjPJ/24zyf9uM8n/bTLJ/20yyf9tMsn/bTLJ/20yyf9tMsn/bTHJ/20xyf9tMcn/bDDJ/2ww
1061
+
yf9rL8j/ay/I/2svyP9rLsj/ay7I/2otyP9qLcj/ai3I/2ksyP9pK8f/aSvH/2gpx/9jI8j/XRfL/3An
1062
+
1P/DwL3/oayU/4CDfP9sbWv/ZGRl/2JiYf9hYGD/YWJh/2FhYv9hYWH/YWFh/2FhYf9iYmL/YmFi/2Jh
1063
+
Yf9hYmH/YmJi/2JiYf9hYmL/YWFh/2JhYf9mZ2b/fHt6/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/319
1064
+
fP9nZ2j/YmNj/2JiY/9jY2L/Y2Ni/2JiY/9jY2P/Y2Ji/2JjYv9jYmL/YmNi/2NjY/9jYmP/Y2Jj/2Ji
1065
+
Yv9hYWL/YWFh/2NiYv9naGf/cnRw/4uQg/+xv5//tJvI/2ET0v9gG8r/ZiXI/2gqyP9pLMj/ai3I/2ot
1066
+
yP9rLsj/ay7I/2svyP9rL8j/ay/I/2wwyf9sMMn/bTHJ/20xyf9tMcn/bTHJ/20yyf9tMsn/bTLJ/20y
1067
+
yf9uM8n/bjPJ/280yv9vNMr/bzTK/280yv9vNMr/bzTK/280yv9uM8r/bTDL/2sty/9qK8r/aCjK/2cn
1068
+
yv9nJsr/ZyfJ/2gpyf9qLMn/bC/J/24yyv9vM8r/bzTK/280yv9vNMr/bzTK/280yv9uM8n/bjPJ/24z
1069
+
yf9tMsn/bTLJ/20yyf9tMsn/bTHJ/20xyf9tMcn/bTHJ/2wwyf9sMMn/ay/I/2svyP9rLsj/ay7I/2ot
1070
+
yP9qLcj/ai3I/2gryP9nKMf/YyHI/1sSzP+FSNP/xMm0/5umkP99gXj/bGxr/2VkZf9hYWH/YmJh/2Ji
1071
+
Yf9iYmL/Y2Ji/2JjYv9jYmL/Y2Nj/2JiY/9iY2P/YmJj/2JjYv9iYmP/YmJi/2JjY/9jY2P/Y2Nj/2ho
1072
+
aP98fH3/AAAA/wAAAP8AAAD/AAAA+gAAAP8AAAD/eXl6/2lpaf9kZGT/Y2Nj/2NjY/9jY2P/Y2Nj/2Nk
1073
+
Y/9jY2T/Y2Nj/2NjZP9jY2P/Y2Rj/2NjY/9kY2P/Y2Nj/2NjZP9jY2L/YmJi/2JiYv9mZ2f/cXJw/4aK
1074
+
gP+nspj/wbu//3Qs1f9dFsv/YyPK/2gqyP9qLMj/ai3I/2suyP9rL8j/ay/I/2svyP9sMMn/bDDJ/20x
1075
+
yf9tMcn/bTHJ/20yyf9tMsn/bTLJ/20yyf9uM8n/bjPJ/280yv9vNMr/bzTK/280yv9vNMr/cDTK/3A1
1076
+
yv9wNcr/cDXK/3A1yv9wNcr/cDXK/280yv9vNMr/bzPK/28zyv9vNMr/bzTK/3A1yv9wNcr/cDXK/3A1
1077
+
yv9wNcr/cDXK/3A0yv9vNMr/bzTK/280yv9vNMr/bzTK/24zyf9uM8n/bTLJ/20yyf9tMsn/bTLJ/20x
1078
+
yf9tMcn/bTHJ/2wwyf9sMMn/ay/I/2svyP9rLsj/ay7I/2osyP9pLMj/ZifJ/2Eeyv9bD8//pXbT/73L
1079
+
p/+VnIz/enx3/2praf9kZGT/YWJi/2JiYv9iYmP/ZGNj/2NjY/9jY2P/Y2Nj/2NjY/9jY2T/Y2Nj/2Nj
1080
+
Y/9jY2P/ZGNj/2RjY/9jY2T/Y2Rj/2NjZP9kY2T/aWlp/3l5ef8AAAD/AAAA/wAAAPoAAADqAAAA/wAA
1081
+
AP9ycnL/a2tr/2VlZv9kZGT/ZGRl/2RkZP9kZGT/ZGRk/2RjZP9kZGT/ZGRk/2RkZP9kZGT/ZGRk/2Rk
1082
+
ZP9kZGT/ZGNk/2RjZP9kY2P/Y2Nj/2NjY/9nZmf/b29t/3+De/+cpZD/xM6w/5lk1P9aEc7/YiDK/2co
1083
+
yf9qLcj/ay7I/2svyP9rL8j/bDDJ/2wwyf9tMcn/bTHJ/20xyf9tMsn/bTLJ/20yyf9uM8n/bjPJ/280
1084
+
yv9vNMr/bzTK/280yv9wNMr/cDXK/3A1yv9wNcr/cDbK/3A2yv9wNsr/cDbK/3A2yv9wNsr/cDbK/3A2
1085
+
yv9wNsr/cDbK/3A2yv9wNsr/cDbK/3A2yv9wNsr/cDbK/3A2yv9wNsr/cDXK/3A1yv9wNcr/bzTK/280
1086
+
yv9vNMr/bzTK/24zyf9uM8n/bjPJ/20yyf9tMsn/bTLJ/20xyf9tMcn/bTHJ/2wwyf9rL8n/ay/I/2sv
1087
+
yP9rLcj/aSvI/2Ulyf9eGcz/biTV/72uxP+vvZ//jJKG/3V2c/9paWn/ZWVk/2NjY/9jY2L/ZGRk/2Rk
1088
+
ZP9kZGT/ZGRk/2RkZP9kZGT/ZWRk/2RkZP9kZGT/ZGRk/2RkZP9kZGT/ZGVk/2RkZP9kZGT/ZGRk/2Vl
1089
+
Zf9rbGv/cnJy/wAAAP8AAAD/AAAA6gAAAMcAAAD/AAAA/2NjY/9vb2//ZmZm/2VlZP9kZWT/ZWRk/2Vl
1090
+
Zf9lZWX/ZWRl/2VlZf9lZWX/ZWVk/2VlZf9kZWX/ZWVl/2VlZP9kZWX/ZWVl/2RlZf9lZGT/ZGRk/2Rk
1091
+
ZP9lZWX/bW1s/3p8d/+Rl4j/tcOi/7ijx/9tI9b/XxnM/2Ylyf9pLMj/ai7I/2wwyf9sMMn/bTHJ/20x
1092
+
yf9tMcn/bTLJ/20yyf9tMsn/bjPJ/24zyf9vNMr/bzTK/280yv9vNMr/cDXK/3A1yv9wNsr/cDbK/3A2
1093
+
yv9wNsr/cDbK/3A2yv9wNsr/cDbK/3A3yv9wNsr/cDbK/3A2yv9wNsr/cDbK/3A2yv9xN8r/cDbK/3A2
1094
+
yv9wNsr/cDbK/3A2yv9wNsr/cDbK/3A1yv9wNcr/cDXK/280yv9vNMr/bzTK/280yv9uM8n/bjPJ/20y
1095
+
yf9tMsn/bTLJ/20xyf9tMcn/bTHJ/2wwyf9rL8j/ai3I/2gpyf9jIMr/WxHP/5Nc1P/FyrX/oaqU/4WJ
1096
+
f/9yc3H/aGlo/2RkZP9kZWT/ZGRj/2RkZP9lZWX/ZWVl/2VlZf9lZWX/ZGVl/2VlZf9lZGT/ZWVl/2Vl
1097
+
Zf9kZGX/ZWVl/2VlZf9lZWX/ZWRl/2RlZf9kZWX/Z2Zn/29vbv9jY2T/AAAA/wAAAP8AAADIAAAAjQAA
1098
+
AP8AAAD/R0dH/3VzdP9oaWn/ZmVm/2ZmZv9lZWX/ZmZl/2VmZv9mZmb/ZmVm/2VlZf9lZWb/ZWVl/2Zm
1099
+
Zf9mZmb/ZmVm/2ZmZf9lZWX/ZmVm/2ZlZf9lZWX/ZWVl/2VkZf9nZ2f/a2tq/3N2c/+HioH/o62W/8bM
1100
+
tP+ZZdX/XRPP/2Igy/9nKMn/ai7J/2wwyf9tMcn/bTHJ/20yyf9tMsn/bTLJ/24zyf9uM8n/bzTK/280
1101
+
yv9vNMr/cDXK/3A1yv9wNcr/cDbK/3A2yv9wNsr/cDbK/3A2yv9wNsr/cTfK/3E3yv9xN8r/cTfK/3E3
1102
+
yv9xN8r/cTfK/3E3yv9xN8r/cTfK/3E3yv9xN8r/cTfK/3E3yv9xN8r/cDbK/3A2yv9wNsr/cDbK/3A2
1103
+
yv9wNcr/cDXK/280yv9vNMr/bzTK/280yv9uM8n/bjPJ/20yyf9tMsn/bTLJ/20xyf9tMcn/ay/J/2ks
1104
+
yf9kJMn/XhnM/3Io1/+6qcf/tcOj/5Oai/98f3n/b29t/2hoaP9mZWX/ZGRl/2VkZf9lZmX/ZWVm/2Vl
1105
+
Zf9mZWX/ZmZl/2VlZv9lZmb/ZWVl/2VmZv9lZmX/ZWVl/2VlZf9lZWX/ZmZm/2VlZf9lZmX/ZmVl/2Vm
1106
+
Zv9paWj/dHR0/0dGRv8AAAD/AAAA/wAAAI0AAAA/AAAA/wAAAP8UFBT/fH19/2xrbP9nZ2f/Z2Zm/2Zm
1107
+
Zv9mZ2f/Z2dn/2ZmZ/9mZ2f/ZmZm/2ZnZv9nZ2b/ZmZn/2dmZ/9mZmb/Z2dn/2ZmZv9mZmf/Z2dm/2dm
1108
+
Zv9mZWb/ZWZm/2VmZf9lZWb/aWhp/29wbv99f3r/lJmL/7PBof/AtcT/gT/V/14Xzv9lI8v/aivK/2wv
1109
+
yf9sMcn/bTLJ/20yyf9uM8n/bjPJ/280yv9vNMr/bzTK/3A1yv9wNcr/cDbK/3A2yv9wNsr/cDbK/3A2
1110
+
yv9xN8r/cTfK/3E3yv9xN8r/cjjL/3I4yv9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4
1111
+
y/9xN8r/cTfK/3E3yv9xN8r/cDfK/3A2yv9wNsr/cDbK/3A2yv9wNcr/cDXK/280yv9vNMr/bzTK/280
1112
+
yv9uM8n/bjPJ/20yyf9tMsn/bDDJ/2styf9oKMr/YR7N/2UZ0/+kfND/xM6w/6Krlv+Hi4L/dnd0/2tr
1113
+
a/9nZ2f/ZmVl/2VlZf9mZmb/Z2Zm/2ZmZ/9mZ2b/Zmdm/2ZmZv9nZ2f/Z2Zm/2ZmZv9nZmb/Z2Zm/2Zn
1114
+
aP9nZ2b/ZmZm/2ZnZ/9nZ2f/Z2Zn/2ZmZv9mZmb/Z2dn/2trbf98fXz/EhIS/wAAAP8AAAD/AAAAOgAA
1115
+
AAAAAAD/AAAA/wAAAP9xcHD/cnJy/2lpaf9nZ2f/Zmdn/2dnZ/9mZ2b/Z2dn/2dnZ/9nZ2f/aGdn/2hn
1116
+
Z/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2ZnZ/9nZ2f/ZmZn/2ZmZv9nZmX/aGdo/2xs
1117
+
bP91d3T/hIiA/56lkv+/zqr/tJnL/3Yt1/9gGs7/ZSXL/2ksyv9rL8n/bTLJ/24zyf9vNMr/bzTK/280
1118
+
yv9wNcr/cDXK/3A2yv9wNsr/cDbK/3A2yv9wN8r/cTfK/3E3yv9xN8r/cjjL/3I4y/9yOMv/cjjL/3I4
1119
+
y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3E3yv9xN8r/cTfK/3A2
1120
+
yv9wNsr/cDbK/3A2yv9wNcr/cDXK/280yv9vNMr/bzTK/24zyf9uM8n/bDHJ/2ouyf9oKcr/Yx/M/2AW
1121
+
0f+VYdT/xsW8/625nf+QlYn/fH55/29xcP9pamn/ZmZm/2ZmZv9mZmb/Z2dm/2dmZ/9nZ2f/Z2dn/2dn
1122
+
Z/9nZ2f/Z2dn/2dnZ/9oZ2f/Z2dn/2dnZ/9naGf/Z2dn/2dnZ/9nZ2f/aGdn/2dnZ/9nZ2f/Z2dn/2dn
1123
+
Z/9paWn/cXJy/3Bwcf8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAANIAAAD/AAAA/ycnJ/99fX3/bW1t/2lp
1124
+
af9oaGj/aGdo/2hnaP9oaGf/aGdo/2hnZ/9oaGj/aGdn/2hoaP9oaGj/Z2ho/2hoaP9naGj/aGdo/2ho
1125
+
aP9oZ2j/Z2dn/2hoaP9oaGj/Z2dn/2dnZ/9nZ2f/Z2dm/2pqav9wcG//ent3/4uQhv+krpf/w9Cu/7GT
1126
+
zf93Ltj/XxrO/2Qky/9qLMr/bDDK/24zyv9vM8r/bzTK/3A1yv9wNcr/cDbK/3A2yv9wNsr/cTfK/3E3
1127
+
yv9xN8r/cTfK/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4
1128
+
y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3E3yv9xN8r/cTfK/3A2yv9wNsr/cDbK/3A2yv9wNcr/cDXK/28z
1129
+
yv9uM8r/bTLK/2suyf9nKMv/Yh/N/2EY0v+VYNX/xsDB/7PAov+WnY3/goV+/3V2c/9sbGv/aWlo/2dm
1130
+
Zv9nZ2f/Z2dn/2dnZ/9oZ2j/aGho/2hoZ/9naGf/aGdo/2doaP9oaGj/aGho/2hoaP9oaGj/aGho/2ho
1131
+
Z/9oaGf/aGho/2hoaP9oaGj/aGhn/2hoaP9oaGj/aWlp/21ubf99fXz/Jycn/wAAAP8AAAD/AAAA0AAA
1132
+
AAAAAAAAAAAAGAAAAP8AAAD/AAAA/2hoaf93d3f/bGxr/2lpaf9paWn/aGlp/2lpaP9oaWn/aGlo/2hp
1133
+
af9oaWn/aGlp/2loaP9oaWn/aGho/2hpaf9paWn/aGlo/2lpaP9paWj/aGlp/2hoaf9paGn/aGhp/2dn
1134
+
aP9naGf/aGho/2loaf9ra2v/cnNx/31/ev+Ok4f/pa+Y/8PRrv+3nsv/hELY/14Xz/9kIs3/aSrM/2su
1135
+
y/9uMsr/bzTK/3A1yv9wNsr/cDbK/3A2yv9xN8r/cTfK/3E3yv9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4
1136
+
y/9yOMv/cjjL/3I5y/9yOcv/cjnL/3I5y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3E3
1137
+
yv9xN8r/cTfK/3A2yv9wNsr/cDbK/280yv9vM8r/bTDL/2oty/9nJ83/YRzN/2kf1f+dcdH/x8S+/7TA
1138
+
o/+Yn4//hYiA/3d4dv9tbm3/amlp/2hoZ/9oaGj/Z2ho/2hoaP9oaGj/aGlo/2loaP9oaGj/aWlp/2hp
1139
+
aP9paWn/aGlp/2loaP9oaWj/aWhp/2hpaf9paGj/aGho/2hpaP9paWj/aGhp/2hoaP9oaWn/aGlp/2lp
1140
+
af9rbGz/d3h2/2hoaP8AAAD/AAAA/wAAAP8AAAAZAAAAAAAAAAAAAAAAAAAA1QAAAP8AAAD/AAAA/3d3
1141
+
d/91dXT/bGxs/2ppav9paWn/aWlp/2ppaf9paWn/aWlp/2lpaf9qaWn/aWlp/2ppaf9pamn/amlp/2lp
1142
+
af9paWn/aWlp/2lpaf9paWn/aWpp/2lpaf9paWn/aWlq/2lpaf9paGj/aGho/2hoaf9pamn/bWxs/3R0
1143
+
c/9+gHz/jZKH/6Gqlf+7yaf/xrzE/5xw0f9uI9b/YRzP/2clzf9qK8z/bTHL/24zyv9vNMr/cDbK/3E3
1144
+
yv9xN8r/cTfL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I5y/9yOcv/cjnL/3I5y/9yOcv/cjnL/3I5
1145
+
y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cTfK/3E3yv9xN8r/bzTK/24zyv9tMsv/bC7L/2kp
1146
+
zP9kIc7/YBjR/4dF2f+ylsz/x9G0/666n/+XnY7/hYmB/3h6dv9vcG//a2pq/2hoaP9paGj/aGhp/2lo
1147
+
af9paWn/aWlp/2lpaf9paWn/aWlp/2lpaf9paWn/aWlp/2lpav9qaWn/aWlq/2lpaf9paWn/aWlp/2lp
1148
+
af9paWn/ampp/2lpaf9qaWn/aWlp/2lpaf9qamr/bG1s/3R1df93d3f/AAAA/wAAAP8AAAD/AAAA1QAA
1149
+
AAAAAAAAAAAAAAAAAAABAQEAAAAA/wAAAP8AAAD/EhIS/4aGh/91dnX/bm5u/2tra/9qamr/aWlq/2pq
1150
+
av9qaWr/ampq/2pqav9qamr/ampp/2pqav9qamr/ampq/2ppav9qamn/ampq/2pqav9qamr/ampp/2pq
1151
+
af9qamr/ampq/2lqav9qaWn/aWlp/2lpaf9paWn/ampq/21ubf90dHL/fH56/4mMhP+aoJH/rrqf/8bT
1152
+
sf+8pMz/lmPT/20j1/9iHdD/ZSTO/2gpzP9sL8v/bjLL/28zyv9wNcv/cTbL/3E3y/9yN8v/cjjL/3I4
1153
+
y/9yOMv/cjjL/3I5y/9yOcv/cjnL/3I5y/9yOcv/cjnL/3I4y/9yOMv/cjjL/3I4y/9xN8v/cTfL/3E2
1154
+
y/9vNMr/bjPL/20xy/9qLMv/ZyfN/2Qhzv9hGdL/hT7a/6eFzf/IxMD/u8mo/6Stl/+QlYr/goR//3h6
1155
+
d/9wcG//bGtr/2lpaf9paGn/aWlp/2lpaf9qaWn/ampq/2pqav9qamr/ampq/2pqaf9pamr/ampq/2pq
1156
+
av9qamr/ampq/2pqav9qamr/aWpq/2pqav9qamr/ampq/2pqav9qamr/ampp/2lqav9qamr/a2pr/21u
1157
+
bv91dnX/hoaG/xEREf8AAAD/AAAA/wAAAP8BAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAA/wAA
1158
+
AP8AAAD/ExMT/3l4eP95eXn/cHFw/2xsbP9ramv/a2tr/2tqav9ramr/ampr/2trav9qa2v/a2tr/2pq
1159
+
av9ra2v/a2tr/2tra/9ra2r/amtq/2tra/9qamr/a2pr/2trav9qa2r/amtr/2pqa/9qa2r/aWpp/2lp
1160
+
av9qaWn/ampq/2prav9ubW3/cnJx/3l6d/+ChX//j5OI/5+olf+yvqH/xtSw/8Kuyf+hfc7/iUXb/2Yd
1161
+
1P9jHtD/ZiPO/2cnzP9rLc3/bTDM/24yzP9vM8z/bzPM/3A0zP9wNMz/cDXM/3A1zP9wNcz/cDXM/3A1
1162
+
zP9wNMz/cDTM/280zP9vM8z/bzLM/24xzP9sL83/aSrN/2clzf9lIc//YRrR/3ct2f+VYNX/s5bO/8nI
1163
+
vP+8y6j/qLKc/5adjv+IjIT/fX97/3V2dP9vb27/a2ts/2loaf9qamr/aWlq/2ppaf9qamr/ampr/2pr
1164
+
a/9ra2v/amtq/2tqa/9qamv/amtq/2tra/9qa2v/amtr/2tqa/9ramr/a2tr/2pqa/9qamv/amtq/2tq
1165
+
a/9qa2v/amtr/2pra/9ramr/bGts/2xtbP9wcHH/eXl6/3l5ef8SEhL/AAAA/wAAAP8AAAD/AAAARQAA
1166
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFAAAA/wAAAP8AAAD/AAAA/2xsbP+AgYH/dnZ1/3Bx
1167
+
cP9ubm3/bG1t/2xsbP9sa2z/a2tr/2tsa/9sa2v/bGtr/2xsbP9ra2z/a2tr/2tsa/9ra2v/bGxr/2xr
1168
+
a/9sbGv/a2ts/2tra/9sa2v/a2xr/2tsa/9ra2v/a2xs/2tra/9ra2r/ampr/2tqav9qamr/bW1t/3Bw
1169
+
cP90dXT/fH16/4WIgv+PlIr/nKOT/6q1nf+7yKf/ydW0/8Ovyv+pjM3/mGfT/4lE2/9xJ9j/YxzT/2Qf
1170
+
0v9lIdD/ZiPQ/2ck0P9oJdD/aCXQ/2gl0P9oJdD/aCXQ/2ck0P9nI9D/ZiLQ/2Ug0f9kHtL/Zx7V/300
1171
+
2/+RVNn/nnvO/7iczv/Jxb//w9Ou/7K/ov+jrJj/lZuP/4qNhv+AgX7/eHl2/3Jzcv9ubm7/a2tr/2pr
1172
+
a/9qamr/amtq/2trbP9rbGv/a2tr/2tsa/9sbGv/a2xs/2xra/9sa2z/bGxr/2xsbP9sa2v/a2tr/2tr
1173
+
a/9ra2v/a2ts/2trbP9ra2v/a2tr/2tsa/9ra2v/a2tr/2xsbP9sbGz/bW1t/25ubf9xcXD/dnZ2/4GB
1174
+
gP9sbGz/AAAA/wAAAP8AAAD/AAAA/wAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1175
+
AAAAAACGAAAA/wAAAP8AAAD/AAAA/ysrK/93d3f/g4OC/3x7e/92dnb/dHN0/3Jyc/9xcnL/cnFw/3Fx
1176
+
cv9xcHL/cXFx/3Fycf9xcHH/cnJx/3Fxcv9xcXD/cXJx/3Fxcf9xcnH/cHBx/3Fxcf9xcHH/cXFx/3Bx
1177
+
cP9ycXL/cXFx/3Jycf9xcXD/cHBx/3BvcP9wcG//cHFw/3Bwcf9yc3H/dXV1/3l7ef+AgH3/h4mE/42Q
1178
+
iv+Wm5D/oKeY/6q0n/+1wab/wM2t/8nZs//O073/yrzK/8Sr0P+6ndL/sJLR/62O0f+pi9H/o4bP/6WJ
1179
+
0P+qjNH/rpDR/7WX0v+/pNL/x7PO/83HxP/N2rf/xNOw/7vHqf+xu6L/pq6b/5uglP+RlY3/ioyG/4OE
1180
+
gf98fnv/d3h3/3N0c/9xcXH/cHBw/29wb/9wcHD/cHBw/3Fwcf9xcXH/cXFy/3Fxcf9xcXH/cXFx/3Fx
1181
+
cf9xcXH/cnFx/3Jxcf9xcXD/cXFx/3FxcP9xcXH/cXFx/3Fxcv9ycnH/cXFy/3Fxcv9ycnL/cXJx/3Fx
1182
+
cf9ycXH/cXJy/3N0dP92d3f/e3t8/4ODg/94eHj/Kioq/wAAAP8AAAD/AAAA/wAAAP8AAACFAAAAAAAA
1183
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFAAAA/wAAAP8AAAD/AAAA/wAA
1184
+
AP8UFBT/TEtL/2lqav9+fX7/h4eH/4iJif+IiYj/iImJ/4mIiP+IiIj/iYmI/4iJif+JiIj/iImJ/4mI
1185
+
iP+IiYn/iIiI/4mIif+IiYn/iYiJ/4iJiP+JiYj/iYiI/4iJif+JiIj/iIiI/4iJif+IiIj/iIiI/4iI
1186
+
iP+IiIj/h4eH/4eHh/+Hh4f/iIeI/4mIif+Ki4z/jo6O/5KRkP+Wl5T/mpyZ/5+hnP+jpqD/qKuj/6yx
1187
+
pv+xuKr/tb6t/7rCr/+8xbH/v8iz/8HKtP/Cy7T/wsu1/8DIs/++x7L/vMSw/7jArv+zu6v/r7So/6qu
1188
+
pf+mqaL/oaOf/52fmv+YmZb/k5SS/5CQj/+MjYz/ioqJ/4iIiP+Hh4f/hoaH/4eIiP+Ih4j/iIiI/4iI
1189
+
iP+IiIj/iIiI/4iJiP+IiYn/iYmI/4mIiP+JiYn/iImJ/4mJif+IiIj/iImI/4mIif+IiYn/iYiJ/4iI
1190
+
iP+IiIn/iYiI/4iIif+JiIj/iImI/4iIiP+JiYn/iIiI/4mJif+Hh4f/fX5+/2pqav9LTEz/FBUU/wAA
1191
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1192
+
AAAAAAAAAAAAAAAAAAABAQEAAAAA2AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1193
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1194
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1195
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wECAP8GBwT/CAkG/wsNCf8ODwv/DhAM/w8Q
1196
+
DP8PEA3/DhAM/wwOCv8JCwf/BwkF/wMEAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1197
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1198
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1199
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2QEBAQAAAAAAAAAAAAAA
1200
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAA
1201
+
ANMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1202
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1203
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1204
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1205
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1206
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1207
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1208
+
AP8AAAD/AAAA0wAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1209
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAjgAAAMYAAADtAAAA/wAA
1210
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1211
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1212
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1213
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1214
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1215
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1216
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA7QAAAMYAAACOAAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1217
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAAH//wAAAAAA
1218
+
AAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAD+AA
1219
+
AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA
1220
+
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1221
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1222
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1223
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1224
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1225
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1226
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1227
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1228
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1229
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1230
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1231
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1232
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1233
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1234
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1235
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1236
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1237
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1238
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1239
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1240
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1241
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1242
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1243
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1244
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1245
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1246
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1247
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1248
+
AAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
1249
+
AAAAAAABwAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAA
1250
+
AAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAB/8AAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAA//+A
1251
+
AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAA//KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAAAAAAAAA
1252
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAAALoAAADyAAAA/wAAAP8AAAD/AAAA/wAA
1253
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1254
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1255
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA8gAA
1256
+
ALoAAABTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLAAAA/wAAAP8AAAD/AQEB/wIC
1257
+
Av8CAgL/AQIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8BAQH/AQEB/wAAAP8AAAD/AAAA/wAA
1258
+
AP8AAAD/AAAA/wEFAP8KEAb/FB0P/x4nF/8kLhz/JzIf/yYxHv8iLRv/HCUV/xIaDP8IDQP/AAMA/wAA
1259
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQIC/wICAv8BAgL/AgIC/wICAf8CAgL/AgIC/wIC
1260
+
Av8CAgL/AQIC/wICAf8AAAD/AAAA/wAAAP8AAABLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAAAA/wAB
1261
+
AP8EBAT/BQUF/wUFBf8FBQX/BQQE/wQEBP8FBQT/BQUF/wQEBf8EBAT/BAQE/wQEBP8DAwP/AQEB/wAA
1262
+
AP8AAAD/AAAA/wUKAf8ZIRP/NkIt/1ZmS/91h2r/fH1+/31viP98ZJD/eViS/3hTkv94VJL/eluS/31n
1263
+
j/99cYb/e4J6/2+BY/9NXUP/Ljkm/xMbDv8CBgD/AAAA/wAAAP8AAAD/AgIC/wMDBP8EBAT/BAQF/wQF
1264
+
BP8EBAT/BAUE/wUEBP8FBQX/BQQF/wQFBf8FBQT/BQQF/wQEBP8AAAD/AAAA/wAAAIYAAAAAAAAAAAAA
1265
+
AAAAAABKAAAA/wEBAf8FBQX/BQUF/wUFBf8FBQX/BAUF/wUEBf8EBQX/BQQF/wUFBP8FBQT/BAQE/wME
1266
+
BP8BAQH/AAAA/wAAAP8BBQD/Fx8R/0BNNv9ygmf/fnKJ/3VKlv9jHJf/TgCO/0sAif9KAIf/SQCF/0oA
1267
+
hf9LAIT/SwCE/0oAhf9JAIb/SgCH/0sAiv9SAJD/aSiY/3lVlf9+e4P/Z3lb/zVALP8QFgv/AAIA/wAA
1268
+
AP8AAAD/AgIC/wQDA/8EBAX/BQQE/wUEBf8FBQX/BAUE/wQEBf8EBQT/BQUF/wUEBf8FBQX/BQYF/wEB
1269
+
Af8AAAD/AAAASgAAAAABAQEAAAAA/wABAP8GBgb/BgUG/wUFBf8FBQX/BQUF/wYFBf8FBQX/BQUF/wUF
1270
+
Bf8FBQX/BAUE/wMCA/8AAAD/AAAA/wMHAP8iKxv/XGxQ/4B8hf9xP5f/UACP/0gAh/9IAIT/SQCC/0sA
1271
+
gf9LAID/SwCA/0sAgP9NAID/TACA/0wAgP9MAID/SwCA/0sAgP9LAID/SgCB/0kAgv9JAIT/RwCI/1cH
1272
+
k/93UZb/foN7/0xaQf8YHxL/AAMA/wAAAP8AAQD/AwMD/wUFBf8FBQX/BQUF/wUFBf8FBQX/BQUF/wUG
1273
+
Bf8FBQX/BQUF/wUGBf8GBgb/AQAA/wAAAP8BAQEAAAAAUwAAAP8GBgb/BwYH/wYGBv8GBgb/BgUG/wYG
1274
+
Bf8GBgb/BgYG/wYGBf8FBQX/BQQF/wEBAf8AAAD/AQQA/x0kFv9eblL/gHKM/2Aclv9GAIj/RgCE/0gA
1275
+
gf9JAID/SgB//0oAf/9LAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0sA
1276
+
f/9KAH//SgCA/0kAgP9IAIL/RgCF/0cAi/9sNZj/gYGC/0tZP/8TGQ3/AAEA/wAAAP8DAgP/BQUF/wUG
1277
+
Bf8GBgb/BgYG/wYGBv8GBgb/BgYG/wUGBv8GBgb/BgYH/wUGBv8AAAD/AAAAUQAAALoBAQH/CAgI/wcH
1278
+
B/8HBwf/BwcH/wcGBv8HBgf/BgcH/wYGB/8GBgb/BQUF/wEBAf8AAAD/DRMJ/0ZSO/+CgIT/YCCW/0QA
1279
+
iP9FAIP/RgCA/0gAgP9JAH//SgB//0oAf/9LAH//SwB//0wAf/9MAH//TAB//0wAf/9MAH//TAB//0wA
1280
+
f/9MAH//TAB//0sAf/9LAH//SwB//0oAf/9KAH//SAB//0gAgP9GAIH/RACE/0UAiv9uPpf/e4R1/zM+
1281
+
Kv8GCwP/AAAA/wICAf8FBQX/BgYG/wcGBv8GBwf/BwcH/wcHBv8HBwf/BwcH/wcHB/8ICAj/AQAA/wAA
1282
+
ALkAAADyAwMD/wkJCf8ICAj/BwgH/wcIB/8IBwj/BwcH/wcHB/8HBwf/BQUF/wABAP8BBAD/ICgZ/299
1283
+
Y/90TZb/QwCJ/0MAg/9FAID/RgB//0gAf/9IAH//SQB//0kAf/9KAH//SgB//0sAf/9LAH//SgB//0oA
1284
+
fv9JAH7/SAB9/0gAff9JAH7/SgB+/0oAf/9LAH//SwB//0oAf/9KAH//SQB//0kAf/9IAH//RwB//0YA
1285
+
gP9FAIH/QwCF/0oAjv9+aZL/W2pO/xQaDv8AAQD/AgIB/wYGBv8HBwf/CAcI/wcHB/8HBwj/BwgI/wcH
1286
+
B/8ICAf/CQkJ/wMDA/8AAADyAAAA/wQEBP8KCgr/CQkJ/wkJCf8JCAn/CAkI/wgICP8ICAj/BQYF/wEC
1287
+
AP8FCQP/ND0q/4GFgP9XE5H/QACD/0MAgP9FAH//RgB//0cAf/9HAH//SAB//0gAf/9JAH//SQB//0oA
1288
+
f/9KAH//SQB+/0YAff8/AHr/OAB3/zQAdf8zAHX/NwB3/z4Aef9FAHz/SQB+/0oAf/9KAH//SQB//0kA
1289
+
f/9IAH//SAB//0cAf/9HAH//RgB//0QAf/9CAIH/QACF/2czlP92gmz/Iiob/wIEAP8CAgH/BwYG/wgI
1290
+
CP8ICAj/CAkI/wkICP8ICQj/CQkJ/woKCv8EBAT/AAAA/wAAAP8FBQX/CwsL/woKCv8KCgr/CQoK/woK
1291
+
Cv8JCQn/BwcG/wICAf8JDQb/Q085/4R6jv9FAIn/PwCA/0IAfv9EAH3/RQB+/0YAf/9GAH//RwB//0cA
1292
+
f/9IAH//SAB//0kAf/9JAH//SAB//0MAfP81AHb/TwN8/5BNlf+nZ6D/p2ih/5RRmP9TCX7/MgB0/0IA
1293
+
e/9IAH7/SQB//0kAf/9IAH//SAB//0cAf/9HAH//RgB//0UAfv9FAH7/QwB9/0EAfv8/AIH/Ug6P/4GG
1294
+
fv8uNiX/BQcC/wMDAv8ICAj/CQkJ/woKCf8KCgr/CgkK/woKCv8LCwv/BQUF/wAAAP8AAAD/BQYF/w0N
1295
+
Df8LCwv/CwsL/wsLC/8LCgr/CQgI/wMEA/8MEAj/S1dA/39skf8+AIT/PgB9/0EAfP9DAHz/RAB9/0QA
1296
+
ff9FAH7/RgB//0YAf/9HAH//RwB//0gAf/9IAH//SAB//0UAff81AHf/eDqM//nSyf/41dL/9NLS//XR
1297
+
0//72Nb//+PZ/4pQm/8yAHT/RAB8/0gAf/9IAH//RwB//0cAf/9HAH//RgB//0UAfv9FAH7/RAB9/0MA
1298
+
fP9CAHz/QAB8/z0Afv9IAIn/hIOF/zM9K/8GCQT/BAUE/wkJCf8LCgv/CwsL/wsLC/8LCwv/DQ0N/wYF
1299
+
Bf8AAAD/AAAA/wYGBv8ODg7/DQ0N/wwMDf8MDAz/CwsK/wYGBf8KDgf/SFM9/39skv87AIH/PQB7/0AA
1300
+
ev9BAHv/QgB7/0MAfP9EAH3/RAB9/0UAfv9FAH//RgB//0cAf/9HAH//RwB//0YAfv8+AHv/NwB2/+vI
1301
+
wP/tyc7/5cDL/+O+y//jvsv/5sHN//LQ1P//7eD/OQB3/zwAef9GAH7/RwB//0cAf/9GAH//RgB//0UA
1302
+
fv9FAH7/RAB9/0MAfP9DAHz/QgB7/0EAev9AAHv/PAB8/0MAhv+FhIf/MDko/wYJBP8HBwb/CwsL/wwM
1303
+
DP8NDAz/DQ0N/w4ODv8GBgb/AAAA/wAAAP8HBwf/EBAQ/w4ODv8ODg7/DAwM/wcIB/8JCwb/PUc0/4N3
1304
+
j/85AH//OwB6/z8Aef9AAHn/QQB6/0EAe/9BAHv/QQB7/0AAe/9AAHz/QgB9/0QAfv9FAH//RgB//0YA
1305
+
f/9EAH7/NgB4/3A5iv/wzsr/5cDL/+C6yf/gucn/4LrJ/+G8y//ow87//+Xf/4NPnf8yAHX/RAB9/0YA
1306
+
f/9GAH//RQB//0QAfv9CAHz/QAB7/z8Ae/9AAHv/QQB7/0EAev9BAHr/QAB5/z4Aef86AHr/RACF/4SH
1307
+
gP8oLyH/BggE/wkKCf8NDQ3/Dg4N/w4ODv8QEBD/BwcH/wAAAP8AAAD/CAgI/xESEf8PEA//Dg4O/wsL
1308
+
C/8ICgb/LTQm/4eGiP88AIH/OgB4/z0Ad/8/AHj/QAB5/0AAef8/AHn/OwB4/zUAdv8uAHP/LgB0/zQA
1309
+
dv88AHr/QgB9/0QAfv9FAH//QgB+/y8Adv+hd53/7MnM/+K9yv/gusn/37rJ/+C7yv/hvMv/5cDN//nY
1310
+
2v+9mbz/KgBw/0EAff9FAH//RAB+/0EAfP87AHn/MwB1/ywAcv8sAHH/MwB0/zoAd/8/AHn/QAB5/z8A
1311
+
eP8+AHj/PAB3/zgAef9MDon/fIZy/x0iF/8HCAb/DAwM/w8PD/8PEBD/ERIS/wgICP8AAAD/AAAA/wkI
1312
+
CP8TExP/ERER/w4ODv8JCgf/HSIY/36HdP9ICIX/NwB3/zsAdv89AHb/PgB3/z4AeP89AHj/NwB1/ykA
1313
+
cP9IB3n/nmWb/6Vrn/9hHoL/JgBv/zIAdf89AHv/QgB9/z8AfP8nAHL/yKmu/+jFzP/hvMr/37vK/+C7
1314
+
yv/gvMv/4bzL/+O/zf/z0db/7tXW/yEAbP89AHr/QgB9/z0Aev8yAHX/JABu/2Qgg/+scKL/qW+i/0wK
1315
+
ev8lAGz/NQB0/z0Ad/8+AHf/PgB3/z0Adv86AHb/NgB4/2Ayjv9lclj/EhUO/woKCf8PDw//ERER/xMT
1316
+
E/8ICAj/AAAA/wAAAP8JCQn/FRUV/xISEf8MDAz/ERQO/15qUv9lO47/NAB2/zkAdP87AHX/PAB1/z0A
1317
+
dv88AHb/NQB0/yMAbP97RYz/8c7F//HPzP/x0M7/+tXP/9Kgtf9IBHn/KABx/zcAd/84AHj/KQBy/93B
1318
+
uP/mw8z/4LzK/+C8yv/gvMr/4L3L/+G9zP/jv83/7szU///z5v8lAGn/NgB2/zcAd/8nAHD/SAR5/9Sd
1319
+
tP//2NX//93b///j4P//6+H/iFOY/x4AZ/8zAHL/OwB1/z0Adv88AHX/OwB0/zgAdP8yAHf/fWuR/0FK
1320
+
N/8MDwr/Dg4N/xISEv8VFRX/CQkJ/wAAAP8AAAD/CgoK/xYWF/8RERH/DA4L/zY9Lv+FfI//MAB2/zYA
1321
+
c/85AHP/OwB0/zsAdP87AHX/NwBz/yYAbP95R4v/8M/I/+PDx//cu8T/3LrF/+LAyP/uzM7/+dHN/4VL
1322
+
kf8fAGz/IwBu/y8Acf/ixL7/48HL/9+9yv/gvcv/4L7M/+G+zP/hvs3/48DO/+vJ1P//8ef/MABs/yAA
1323
+
bP8eAGz/hEiP//nMy//209b/783W/+zK1v/uzNf/99fc///v5/+IWJr/IABn/zUAcf87AHT/OwB0/zoA
1324
+
c/85AHP/NQBz/zoAff+FjH//Iycd/wwNC/8SEhL/FxcX/woKCv8AAAD/AAAA/wsLC/8YGBf/DxAO/xoe
1325
+
Fv97h2//RAmB/zIAcv83AHH/OQBy/zoAc/86AHP/OQBz/y8Ab/9CCXT/7M7D/+PDx//Zt8L/17TC/9i1
1326
+
w//Zt8T/3rzH/+nHzf/61dP/toCn/zYAb/+SW5X/6sfL/+LAzP/hv8z/4b/N/+LAzv/jwc7/48HP/+TC
1327
+
0P/ox9L/+djb/5tln/8zAGz/tHuk//nQ0P/wztT/6sjT/+fF0//nxdP/6MbU/+vJ1v/3193///rs/0sU
1328
+
ff8rAGv/OABy/zoAc/86AHP/OQBy/zYAcf8wAHL/ZD2N/1tmUP8SFQ//EREQ/xgYGP8LCwv/AAAA/wAA
1329
+
AP8LCwv/GBcX/xETD/9CSzr/eWSQ/y0Acf80AHD/NwBw/zgAcf85AHL/OQBz/zcAcv8oAGv/jWqT/+vO
1330
+
yv/busT/1rXB/9e0wv/YtsP/2LbE/9q4xf/du8j/5MPM/+/Lz//vx8v/7svP/+XCzf/fu8n/3bbG/9uy
1331
+
w//bscL/3rXG/+O8zP/nw9H/6cbT/+3M1v/31dn/99DU//LM0v/rydL/58XS/+fF0v/mxNP/58XT/+fF
1332
+
0//ox9T/787Y///u6f+3mL7/IQBk/zUAcP85AHL/OQBy/zgAcf82AHD/MwBv/ywAc/+KiYv/LDEl/xAR
1333
+
D/8ZGRn/CwwL/wAAAP8AAAD/CwsL/xcXFv8eIRr/gYx2/zsAe/8vAG7/NABu/zYAb/83AHD/OABx/zgA
1334
+
cf82AHH/JwBq/4ptkf/ozMn/27rE/9e1wv/WtcP/2LbD/9i3xP/Zt8X/27nG/928yP/gvsr/37vH/9eu
1335
+
vv/Hl6z/toac/65/lf+tf5T/rH+V/66Blv+xhJn/uo2h/8qdsf/gt8j/7cnW/+zK1f/oxtL/5sTR/+XE
1336
+
0v/lxNP/58XT/+fF0//oxtT/6cbU/+7N2P//7ur/w6rK/x4AYv80AG//OABx/zcAcP83AHD/NgBv/zQA
1337
+
bv8tAG7/XDSJ/2FsVv8VGBP/GBgY/wwMDP8AAAD/AAAA/wsLC/8XGBb/PkU2/31tj/8qAG7/MQBs/zQA
1338
+
bf81AG7/NQBu/zYAb/83AHD/NQBw/yoAa/9LI3X/5M/D/96+xv/YtsP/17XD/9i2w//Zt8T/2rjF/9u6
1339
+
x//bucb/06u8/76Oo/+qf5P/pn+R/6yFmP+xiZz/tY2g/7iPov+5kaP/u5Kl/7yTpv+7kqT/t46h/8KZ
1340
+
q//hucn/6sfV/+fF0//mxNL/5sXT/+bG0//nxdP/6MbU/+nI1f/z1Nz////6/2tDlP8jAGT/NABu/zYA
1341
+
cP82AG//NQBu/zUAbv8zAG3/MABs/ykAcP+Lj4j/KS8k/xcYF/8MDAz/AAAA/wAAAP8KCgn/HiEb/3B8
1342
+
Y/9OHoT/LABs/zIAbP80AGz/NABt/zUAbv81AG7/NgBv/zUAb/8vAG3/HABj/6ycoP/jycj/27vF/9i3
1343
+
xP/Yt8T/2bjF/9q5xv/ZtcT/yZyw/6yClf+kgZH/rIeY/7CLnP+zjJ7/tY2g/7iPov+5kKP/u5Kl/72V
1344
+
p/+/mKr/wZqs/8Kbrf/Bm6z/vZip/9Gqu//rxtX/6MbU/+fG0//nxtP/58fU/+jH1f/tzdj//+no//br
1345
+
6/8RAFn/LABp/zUAbv82AG7/NQBu/zUAbf80AG3/MwBs/zEAbP8qAG3/b1KP/09YRv8aHBj/CwsL/wAA
1346
+
AP8AAAD/CAkH/zE1K/+OkIv/JwBy/y8Abv8yAG3/MwBt/zMAbf80AG3/NQBu/zUAbf81AG7/MwBu/ycA
1347
+
aP81BWr/2Mq6/+HEyP/ZusT/2LfE/9m6xv/XtMP/xJeq/6WBkf+lhJP/rIqa/7CMnP+xi53/sYmb/7GH
1348
+
mv+xh5r/s4ib/7SLnf+2jqD/u5Ol/8CYqv/Dna//xqGy/8eis//EobH/y6i3/+rG1f/ox9X/58fU/+fH
1349
+
1P/qy9f/+Nzh//////9HGHz/HwBh/zEAbP81AG7/NQBt/zUAbf80AG3/MwBt/zIAbf8yAG3/LQBu/zoB
1350
+
fv+CjnT/JCcg/woKCf8AAAD/AAAA/wgJB/9OVUT/d16V/ysAdP8xAHD/MwBv/zMAb/8zAG7/NABu/zQA
1351
+
bv80AG//NQBv/zUAb/8wAG3/HgBl/2VKgf/hzsP/3sDH/9m6xv/YtsT/xZqt/6OCkf+lhpT/q4ua/66L
1352
+
m/+uiZr/rIWX/7KLm//AmKf/y6Ow/9Krt//Vrbr/06q4/8yls//DnKz/v5qp/8Wgsf/Jprb/y6m4/8mo
1353
+
t//Orbv/68fW/+jI1f/pytb/8tXc////9v+Wea7/FABb/ywAav80AG//NABv/zQAbv80AG7/MwBu/zMA
1354
+
bv8zAG//MwBw/zAAcf8pAHb/ioaQ/zc8MP8JCQj/AAAA/wAAAP8MDgn/cn5k/1Ukk/8vAHn/MwB1/zQA
1355
+
dP80AHP/NABy/zQAcv81AHL/NQBx/zUAcf81AHL/NABx/ywAbv8VAGT/kXyS/+DHx//bu8X/zKW2/6eE
1356
+
lP+jh5P/q4ya/6yMm/+riJj/q4eW/76cpv/OtLT/1sa7/9fPuv/GurL/xrmx/9jMuP/bx73/377C/9ez
1357
+
vv/ForD/x6W0/8yruv/Prrz/zK67/9i5xf/rydf/7M7Z///p6P/RwNT/DABa/ycAav8yAHD/NQBy/zUA
1358
+
cf81AHH/NQBy/zQAcf80AHL/NABz/zQAdP8zAHb/LAB6/3VXmP9TXEj/CQsI/wAAAP8AAAD/FRgQ/5Wg
1359
+
hf8zAIv/MwB//zYAfP82AHr/NgB5/zYAeP82AHf/NgB3/zUAdv80AHb/MgB2/zAAdf8rAHT/GgBu/ysA
1360
+
b//hx8T/17XB/7aNn/+ehZH/qYyZ/6yNm/+qiZj/q4qX/7+lqf/XzL3/vLC0/18wj/8qAHv/HwB3/x4A
1361
+
d/8pAHr/XCuL/7ijq//gzMD/4cHH/8uruP/Kq7n/0bK//9K0wf/Ps77/5sXS/+7P2f//7ur/MAB3/xEA
1362
+
Zf8oAHH/LwB0/zEAdf8zAHb/NQB2/zUAd/82AHf/NgB4/zYAef82AHr/NQB8/zEAgP9XJJn/c39k/w0P
1363
+
Cv8AAAD/AAAA/yIoG/+Sjpf/LwCN/zYAhf84AIL/OACB/zgAgP84AID/NwB//zQAff8uAHz/JgB6/x8A
1364
+
eP8ZAHb/HQB3/yoAeP+KYJf/5cfJ/8yls/+hhJH/pIqW/6qNmv+qi5n/qImV/7mio//f28T/hmKm/yMA
1365
+
gP8wAIX/OACJ/zsAiv87AIr/OACJ/y8Ahf8hAH//f1ab/+HRwP/jx8r/zrC8/9CzwP/VuMT/1brF/9e8
1366
+
x//uzdn//uHj/6B4r/8kAG7/GQBx/xQAcv8bAHT/IwB3/ywAev8zAH3/NgB//zgAgP84AID/OACB/zgA
1367
+
g/81AIb/NwCV/5OhgP8TFw//AAAA/wAAAP8yOij/iHKk/zIAk/84AIv/OgCK/zoAif86AIj/OQCH/zMA
1368
+
hv8nAIP/LQCC/242kP+lc6L/06Wz/+nBvP/ryMH/5sbH/9u7xP+5kqL/nYeR/6iOmf+qjpr/p4qV/6yX
1369
+
mv/X0L3/jGeu/ygAjP85AJL/QQCV/0QAl/9FAJf/RQCX/0QAl/9BAJX/OQCS/yYAi/+CV6D/59TG/+HG
1370
+
y//Qtb//17vH/9m+yf/Wvcf/58nU//HT2//93+D//9za///W0v/musX/s4Cu/3Q7lf8pAH7/IQB+/zEA
1371
+
hP84AIf/OgCI/zoAif86AIr/OACM/zAAlv+YmJT/HSIX/wAAAP8AAAD/Qkw0/3xZrP80AJj/OgCS/zsA
1372
+
kf88AJD/OwCQ/zcAj/8nAIz/bzuV/+nHu//tz8b/58rI/+PGyP/gwsj/3sDI/9y9x//TsL3/poeU/6KL
1373
+
lf+qkJv/qY6a/6aMlf+4q6P/zcLG/ygAl/88AJz/RQCf/0cAof9IAKH/SACh/0gAof9IAKH/RwCh/0UA
1374
+
n/87AJz/JACV/8Kstf/r1dD/2L/H/9i+yf/cws3/3cTO/+DG0P/qytb/7c7Y//DS2v/0193/+t3g///k
1375
+
4///7ub//+zd/4JSpf8hAIb/NQCO/zsAj/88AJD/OwCR/zkAk/8yAJz/kISg/ykvH/8AAAD/AAAA/1Bb
1376
+
P/9zRLX/NQCe/zsAmP88AJf/PQCX/zwAl/8yAJb/QQiU/+vUuv/iyMX/2b7D/9e7xP/XusT/17rE/9i6
1377
+
xf/Zu8b/zKe3/52Ej/+mjpj/q5Gb/6iOmf+jkJT/0Mq1/203sP82AKX/RACo/0kAqf9JAKn/SgCp/0oA
1378
+
qv9KAKr/SgCp/0kAqf9IAKn/RACo/zQAo/9lLaf/7NzK/+PN0f/Zwcr/3sbQ/+DI0//gydL/58fU/+jK
1379
+
1v/py9f/687Z/+zR2//v093/9Nnf///o5f///+//TRWd/y0Akf87AJb/PQCX/zwAmP86AJn/MwCh/4x0
1380
+
qv80PCj/AAAA/wAAAP9ZZkb/azW7/zkApf89AKD/PgCf/z4An/87AJ//LQCe/3lSnv/n0sP/2L3C/9S4
1381
+
wv/Ut8L/1bjD/9a5xP/YusX/2bvG/8WhsP+bho//p5Ga/6qSnP+oj5n/oJCQ/9vbuv83ALD/PwCv/0gA
1382
+
sP9KALH/SgCy/0oAsv9KALL/SgCy/0oAsv9KALL/SgCx/0gAsP8+AK7/LwCp/+zgxP/t2Nr/3MXN/+HK
1383
+
1P/kzdb/4s7W/+bH1P/oy9f/6czY/+rN2f/qztr/7NDb/+3T3P/z2t////rr/6OAxv8lAJf/OgCd/z0A
1384
+
n/8+AJ//PQCg/zcAqf+GaLH/O0Qt/wAAAP8AAAD/XmxK/2kuwv89ALD/QQCq/0IAqf9CAKn/PwCq/y8A
1385
+
qv+Ma6P/5M7C/9W7wv/Tt8H/1LjC/9W5xP/WusX/17rG/9i7x//Anaz/m4iQ/6mSnP+rk53/qZGa/5+R
1386
+
jf/KwrX/LQC5/0IAt/9JALj/SQC4/0oAuf9KALn/SgC5/0oAuf9KALn/SgC5/0kAuP9IALf/QQC2/yQA
1387
+
sf/bysD/8+Hf/9/J0f/kztf/59Ha/+bU2//lyNP/6MvX/+nM2P/qzdn/68/a/+vR2//t0tz/8dfe///z
1388
+
5v+/odb/JQCh/z0AqP9CAKn/QgCp/0EAq/87ALP/hGO2/0BKMP8AAAD/AAAA/2BuSv9qK8n/QgC6/0YA
1389
+
tP9HALT/RwC1/0QAtv81ALj/jWym/+TPwf/Wu8H/07jC/9S4w//VucT/1rrF/9i7xv/ZvMf/wJ6s/5yJ
1390
+
kv+qlJ3/rJWf/6qTnP+cjYr/wrms/zAAw/9EAL//SgC+/0oAvf9KAL3/SgC+/0oAvv9KAL7/SgC+/0oA
1391
+
vf9KAL3/SQC9/0IAvf8mALr/3MrA//fm4//hzdT/59Pb/+rV3v/q2d//5MjT/+jL1//pzdj/6s7Z/+vP
1392
+
2v/s0dz/7dLd//HX3v//8+X/wqTc/ysArv9CALT/RgC1/0cAtP9FALX/PwC9/4Vhu/9BSzH/AAAA/wAA
1393
+
AP9da0f/cjPS/0UAxP9JAL7/SwC+/0sAvv9IAL//PADB/3pTqP/l1L//2L/C/9S5wv/VucP/1rrE/9e7
1394
+
xv/YvMb/2r3I/8Wlsv+biZH/q5We/62XoP+sl5//mYqI/8bBoP8+AMP/RADA/0wCvv9NBL3/TQS9/00E
1395
+
vf9NBL3/TQS9/00Evf9NBL3/TQS9/0sBvf9BAL3/MQC2//Hlx//46ef/5NLY/+vW3v/t2uH/7d3j/+TI
1396
+
0v/ozNf/6c3Y/+rO2f/r0Nv/7NHc/+7U3f/z297////o/66J3P8zALj/RwC9/0sAvv9LAL7/SQC+/0MA
1397
+
yP+MZ8D/P0ku/wAAAP8AAAD/VWNB/35C0v9FAMb/SgC//0wCvv9MA77/SwG+/0MAv/9LCrP/3Nit/+DL
1398
+
wv/ZwMP/173E/9i9xv/Yvcb/2b3H/9u/yf/OsLv/m4iQ/6qWnv+umaL/rpih/5qLjP+4rpj/aTC3/0EA
1399
+
w/9MAr//Tga+/04Gvv9OBr7/Tga+/04Gvv9OBr7/Tga+/04Fvv9KAL7/OgC8/2owt//259L/9OXl/+nX
1400
+
3v/t2uH/8d7l/+3e4//kydT/6M3X/+rP2f/r0Nr/7dPb/+/W3f/z3N///+zj////9/9eHsT/PQC5/0kA
1401
+
vf9MA77/SwK+/0oAwP9EAMr/lXW+/zpDK/8AAAD/AAAA/0pXOP+IWsv/RwDH/0wBvv9OBb3/Tga+/04F
1402
+
vv9KAL//PgDB/21Dqf/U1a3/49m//+LRxP/gy8b/38jH/97Gyf/dw8r/1bnD/6GNlf+olp3/sJuj/7Cb
1403
+
o/+llJj/pJeN/6qUn/87AMf/SQDC/08Hv/9QCb//UAm//1AJv/9QCb//UAm//1AJv/9OBr//RQC+/y4A
1404
+
uv/Ns7///e7k/+ra3v/s2+H/8N3k//Ti6f/r3OH/58zV/+zT2f/v19v/893d//jl4P//8OT////p////
1405
+
8f+actX/NAC3/0cAvP9NBb3/TgW9/04Fvf9MAL//RQDL/5uIs/8yOiX/AAAA/wAAAP89Ry7/lXTB/0cA
1406
+
yv9NA8D/Twe+/1AIvv9QCL7/Twe+/0sAwP9AAMH/QQC7/3FHsP+eibD/xMCz/9nZt//f277/387D/97E
1407
+
yP+znKT/pJOa/7CcpP+ynqb/sp6l/5iLiv+3qJX/gVKs/z8Ax/9LAML/UAjA/1IKv/9SC7//Ugu//1EK
1408
+
v/9PB7//SAC//zUAvf+OXrj/8+PQ//fq6P/r2t//8N7k//Ph5//56e7/5dPY/+3U2P/+8OT////j////
1409
+
4v/v697/xbLY/41jzP9CALv/OAC4/0cAvP9OBr7/Twi+/1AIvv9PB77/TAHB/0YAz/+kn6X/KTAf/wAA
1410
+
AP8AAAD/MDgl/6GVr/9IAM3/TgTB/1AJv/9RCr//Ugu//1ILv/9SCr//TwfA/0sAwP9FAMH/PwDB/zoA
1411
+
wf87AL7/PAC1/4Bipf/lz8j/0La+/56OlP+vnKT/tKCp/7Whqf+vnqL/nI+K/7yqlP+DUq3/PwDI/0cA
1412
+
xf9NBMP/TwfC/08Hwf9LA8H/QwDB/zUAv/+PXrn/793G//bq5f/n2dz/7t7j//Lg5v/15Ov/8+bq/+XP
1413
+
1P/75+D/vqPi/0QAu/82ALn/MQC5/zcAuv8/ALv/RwC8/00Evv9RCb//Ugu//1ILv/9RCr//UAm//00B
1414
+
wv9LANP/p7WP/yEmGv8AAAD/AAAA/yUqHv+rs5n/SgDT/08Ewv9SC7//Uwy//1MNv/9UDsD/VA7A/1QO
1415
+
wP9UDcD/UwzA/1EKwP9QCMD/TALB/z4AxP9GBLT/3Mq8/93Dyf+wnqX/qpmf/7Whqf+4pKz/uKWs/6+f
1416
+
ov+glI//vamY/7GOn/9vMrb/RgDD/z0Axv87AMX/QgC//3E0uP/JqLj/69fG/+zg2v/l19r/7Nzh//Df
1417
+
5f/04un/+urw/+TV2f/p0Nf///np/1IQwv80ALn/RwC9/04Gvv9QCb//UQu//1MNwP9UDsD/VA7A/1QN
1418
+
wP9TDb//Uwy//1IKwP9MAMT/aB7U/5Chef8cIBf/AAAA/wAAAP8eIRn/lKR8/2ge1P9OAcT/UwzA/1UO
1419
+
wP9VD8D/VRDA/1URwP9WEcD/VhHA/1YSwf9WEsH/VRDB/04Gw/8+AMP/pYWp/+HJw//exMv/1bzG/6WW
1420
+
m/+zoKf/uaat/7uosP+8qrD/uKer/6WZl/+xopn/xq6f/9G1of/Jp6b/zayr/9/EsP/gyrr/3s7G/93Q
1421
+
zv/i09f/6tvg/+3d4//x4Ob/9+bs/+zg5P/hytL/6tDY//7p4f/NsdP/NAC7/0sDv/9UD8H/VhHB/1YR
1422
+
wP9WEcD/VhHA/1UQwP9VEMD/VQ/A/1QOwP9SCsH/TADH/4ZVyP94hGb/Gh0X/wAAAP8AAAD/HB4Y/3iE
1423
+
Zv+JXMj/TQDI/1MMwf9VEMD/VhHA/1cSwf9XE8H/VxPB/1gUwf9YFML/WBTC/1QOw/9GAMX/glWu/+TN
1424
+
u//gxsn/3MLL/93Dzf/Lt77/qZqf/7elrP+9qrL/v6y0/8Gutf/Csbf/u6uu/7Ompv+0p6X/uqyp/8Cz
1425
+
r//Gurf/zsHB/9jJzP/j09j/59fd/+vb4f/v3+X/9OTp//Dk5//dytH/5cvW/+nQ2f/x2dz///fk/5xw
1426
+
x/8/AL7/UgzB/1gTwv9YFMH/WBTB/1cTwf9XEsH/VxLB/1YRwP9VEMD/UgrC/0sAzP+dirL/YmtW/xwd
1427
+
Gv8AAAD/AAAA/x0eG/9iaVb/opes/0sAzf9TC8P/VxLB/1cTwf9YFMH/WRXC/1oVwv9aFsL/WhbC/1gU
1428
+
wv9OBsT/XB25/93JsP/hysf/3MPK/9zCzP/dw83/3sXO/8m4vv+uoKT/uqiv/7+utf/Dsbj/xbS6/8e2
1429
+
vP/Kub//zr3D/9HAxf/UxMn/2cjN/93N0v/g0Nb/5NPZ/+jX3v/s3OH/8eLn/+zg5P/dzNH/48rU/+fO
1430
+
2P/oz9n/69Pb//ji3////+X/YiTA/0kAv/9XEsH/WhbC/1oWwv9ZFcL/WBTC/1gUwf9XE8H/VhHB/1II
1431
+
xP9TANP/oq+M/1VaTv8fHx7/AAAA/wAAAP8hIR//VVlP/5qqgf9hFNT/UgjG/1cSwv9ZFcL/WhbC/1oX
1432
+
wv9aF8L/WxjC/1sXw/9WEMT/RgDF/72jqv/izcP/3MTJ/9vCy//bwsv/3MPM/97Ezv/exc//0L/F/7Oo
1433
+
q/+6qrD/wbG3/8a1u//JuL//zLvB/8+/xP/Twsj/1sXL/9rJz//ezdP/4dHX/+XV2//p2d//7d7j/+LX
1434
+
2v/byc//48rT/+fN1//nz9n/6dDa/+rS2//v2N3//+/k/+3Z3f89AL3/Uw3B/1oXwv9bGML/WhfC/1oW
1435
+
wv9aFsL/WRTC/1YRwv9QA8j/gU3M/32Kav9QUkv/IiIh/wAAAP8AAAD/IyMj/1FTTv9xfGH/kWzD/1AB
1436
+
y/9YEcT/WhbC/1oYwv9bGML/XBnD/1waw/9bGMT/UgvF/205tP/i0bj/3cfI/9rCyv/awcr/28LL/9zD
1437
+
zP/dxM3/3sXP/9/G0P/ax83/w7i7/7qvsv/Bsbf/yLe9/8y8wv/RwMb/1MPK/9jHzf/by9H/38/V/+PU
1438
+
2f/l19z/39XX/9fMz//bx8//4srU/+bN1//nz9n/6NDZ/+nR2v/q0tv/7NXd//Xg4P///+v/gk/J/0wF
1439
+
v/9aF8P/XBnD/1wZw/9bGML/WhfC/1oWwv9WD8X/TgDP/6OYrf9eZlL/UVJP/yQkJP8AAAD/AAAA/yYm
1440
+
Jv9UVVP/WF5O/6eul/9WAtT/Vg7G/1oXwv9cGcP/XBrD/10bw/9dG8P/XBnE/1EIx/+bfKz/5NPC/9vF
1441
+
yf/Ywcn/2cHK/9rCy//bw8z/3MTN/97Fzv/gyND/48zS/+HM0P/aycz/y8DC/8O5u//Eubz/ybzB/87A
1442
+
xf/SxMn/1MfL/9XJzP/Tycz/08jK/9zLz//jz9P/5c7V/+bO1//nz9j/6M/Z/+nR2v/p0tv/6tTc/+zW
1443
+
3f/w29////ro/86z4P9JAL7/WhfC/10bw/9cG8P/XBrD/1wYw/9aFcP/VAnI/3Ap1P+To3v/T1NJ/1VW
1444
+
Vf8mJib/AAAA/wAAAP8nKCf/WVlY/01QSf98iWr/jF/J/1MGy/9aFcX/XBrD/14cw/9fHMP/Xx3E/10b
1445
+
xf9SC8f/k3iq/+bXxP/cx8n/2MHK/9jByv/awsv/28PM/93Fzv/fyM//5tHT/+7f1v/o3M3/6tnR/+TP
1446
+
0f/dyM7/2MbM/9XEyf/SxMj/0sTI/9XFyv/Zxsz/38vR/+fT1f/z4tv/9+zd/+7e1v/r1df/6dLZ/+nS
1447
+
2v/p0tv/6tPc/+vV3f/s1t7/8d3f///86P/NtOT/SgK//1sZw/9fHcT/XhzD/14cw/9cGcP/WRPG/1EA
1448
+
zv+hjrf/aHFa/0xOSv9aWln/KCgo/wAAAP8AAAD/KSkp/11dXf9OT03/W2JS/6iumv9bCtT/WBDH/10a
1449
+
xP9fHcT/Xx7E/18exP9fHcT/WBPG/14muf/c1rT/4s/K/9vEyv/Zwsr/2cLL/9zFzP/gyc7/6NXS//ny
1450
+
2//GttH/Vxy9/450rv/j08r/4svR/+HJ0v/hytP/4svU/+LK1P/iy9T/5MzW/+jS2P/87uP/u6Lc/1ke
1451
+
v/+rm7X/7uTO//Dd2v/t19z/69Xc/+vV3f/s1t7/7tnf//jn4f////T/cjrM/1IMwP9eHMP/Xx7E/18e
1452
+
xP9fHcT/XBnE/1YMyf9zMNP/lqZ//1JXTP9QUE//XV5e/ykpKf8AAAD/AAAA/yoqKv9gYWD/U1RT/1BS
1453
+
TP95hGj/mXjE/1UHzf9cF8b/Xx3E/2AfxP9hIMT/YCDF/14cxv9TCsj/f1yw/+Pbvv/j0Mr/3cjL/93H
1454
+
y//izc3/7d7T//v62/+fgMz/SgDE/04Ex/9TE77/1sq0/+TN0P/hytP/4srU/+LL1P/jy9T/5MzV/+TO
1455
+
1v/s19r////v/1sbx/9KAMP/SwDF/4hntP/p5Mf/9ebb//He3v/v29//8d3f//jn4f///+//rIrb/0kA
1456
+
v/9bGMP/YCDF/2EgxP9gH8T/Xh3F/1sVx/9VA9H/qqKu/2dwWv9OUEz/VFRU/2FhYP8qKir/AAAA/wAA
1457
+
AP8rKyv/Y2Nj/1dXV/9RUlD/WV5S/5+siP9yLtX/WRDK/18cxf9hIMX/YSHF/2Iixf9iIcX/XhvG/1EI
1458
+
yP9/XbD/4d27/+vey//s4M7/9/PV/9/Z1/9uN8j/UAjF/1waxv9eG8j/Uw7I/8/Gq//m0NH/4svT/+LL
1459
+
1P/izNX/48zV/+TN1v/lztb/79vb////8/9MB8L/WxjF/10bx/9TDMj/Yiu8/8a+vf/69Nj//vLg///4
1460
+
5P///+//q4vb/0cAvv9aFsL/YSDE/2Iixf9hIcX/YSDF/10axv9WC83/j2LM/4eUc/9UV0//UlNS/1hY
1461
+
V/9jY2P/Kysr/wAAAP8AAAD/LCws/2VlZv9aWlr/VlZW/1JVUP9qcl7/rKqq/10N1P9cFsn/YB/G/2Mj
1462
+
xf9kJMX/ZCTF/2Mjxv9fHcf/VQ7I/2QtvP+kjr7/tKDK/4VZy/9PB8T/WRXF/2Mixv9nJ8f/ZCTI/1QL
1463
+
yv+/s6v/59TQ/+PN0//izNT/4szV/+PN1f/jzdb/5tHX//Ti3f///PH/SQC//2Ihxf9nJ8f/YyPH/1sX
1464
+
x/9PB8X/d0q9/7aiy/+9qNf/cz3K/00FwP9bGcT/YiLF/2Qkxf9kI8X/YiLF/18exv9aEsv/bifU/6Ww
1465
+
kf9fZVf/U1RR/1dWVv9aWlr/ZmZm/ywsLP8AAAD/AAAA/y0tLf9oaGj/XFxc/1lZWf9WV1X/V1lS/36J
1466
+
bf+ljcD/VwnR/18ayP9jIsX/ZCTG/2Umxv9lJsb/ZSbH/2IiyP9dGsj/WRPI/1gSx/9cGMb/YiDG/2Yn
1467
+
x/9oKsf/aSvI/2coyf9ZFMv/n4es/+nXzf/kz9T/4s3V/+LN1f/jztb/5M7W/+fT2P/77OH/28bp/1AK
1468
+
wv9lJsf/aSvI/2gqx/9nJ8f/YiHH/1wYxv9WEMX/VRDE/1kXxf9gH8b/ZCXG/2Umxv9kJsb/ZCTF/2Ih
1469
+
xv9dF8n/XhHV/66sq/9udmH/VVdS/1dXV/9aWlr/XFxc/2hoaP8tLS3/AAAA/wAAAP8uLi7/ampq/15e
1470
+
Xv9cW1z/Wlta/1dYVv9cYVf/kJ58/5dszP9aDs//YB3I/2Qkx/9mJsb/ZijH/2Yox/9nKcf/ZyjH/2Yn
1471
+
x/9mJ8f/ZynI/2gryP9pLMj/ai3I/2styP9pK8j/YB3L/31Wsf/o28f/5tPV/+PO1v/jztb/487W/+TQ
1472
+
1//q19n///7p/6aB2/9ZFsP/aCrH/2otyP9qLcj/aSzI/2gryP9nKMf/ZifH/2Ymxv9mJ8f/ZijH/2Yo
1473
+
x/9mKMf/ZSbG/2Mjx/9fGsn/WwzT/6uavP99h23/WVxV/1hYV/9bW1v/XFxc/15eXv9qamr/Li4u/wAA
1474
+
AP8AAAD/Ly8v/2xsbP9gYGD/Xl5e/15dXf9cXFv/WVpX/2JoW/+cqob/jFnQ/1sRz/9iH8n/ZSbI/2Yo
1475
+
x/9oKsf/aSrH/2krx/9pK8j/aSzI/2otyP9rLsj/ay7I/2svyP9rL8j/ai7J/2Ymy/9dH8X/1NGy/+3c
1476
+
1P/n1Nb/5tLW/+bS1v/o1df/9OXc////9f9hIsf/YSHG/2otyP9rL8j/ay/I/2suyP9rLcj/ai3I/2ks
1477
+
yP9pK8f/aSvH/2gqx/9oKsf/ZijH/2UlyP9hHMr/Wg3T/6SLwv+IlHb/XWFY/1laWP9cXFz/XV1d/15e
1478
+
Xv9gYGD/bGxs/y8vL/8AAAD/AAAA/zAwMP9ubm7/YmJi/2BgX/9fX1//X19f/11dXf9bXFj/Z21e/6Gu
1479
+
jP+NW9D/XBLQ/2Igyv9nKMj/aSrH/2krx/9pLMj/ai3I/2suyP9rL8j/ay/I/2swyf9tMMn/bTHJ/20x
1480
+
yf9qLcr/YB7L/3tWtP/n5sL/9urW//Pl2P/059n/+/Dc////6f+mg9v/WRfE/2gryP9tMMn/bTHJ/2ww
1481
+
yf9rL8j/ay/I/2suyP9rLsj/ai3I/2ksyP9pK8f/aCrH/2YmyP9hHcv/XRDU/6WLw/+Omnv/YGVa/1pb
1482
+
Wf9eXl3/X19f/19fX/9fX2D/YmJi/25ubv8vMDD/AAAA/wAAAP8xMTH/cHBx/2RkZP9hYWH/YWFh/2Fh
1483
+
Yf9hYGH/X19e/1xeWv9pbmH/nq2J/5pwzv9dEtL/YyDL/2coyP9pLMj/ai3I/2suyP9rL8j/azDJ/20x
1484
+
yf9tMcn/bTLJ/20yyf9tMsn/bTHJ/2osyv9hH8v/aTPB/5p8wv+ym8v/tZ/O/6mN0v91QMv/WxjF/2cp
1485
+
x/9sMcj/bTLJ/20yyf9tMsn/bTHJ/2wwyf9rL8j/ay/I/2suyP9qLcj/aCvJ/2cmyP9iHcz/YhbW/6uY
1486
+
wP+MmXv/Y2dd/1xdW/9fX1//YWFh/2FhYf9hYWH/YmJh/2RkZP9wcHD/MTEw/wAAAP8AAAD/MTEx/3Jz
1487
+
c/9mZmb/Y2Nj/2NjY/9jY2P/Y2Nj/2JiYv9gYGD/Xl9c/2dsYP+VooL/qZHD/2UZ1v9iHs7/ZyfK/2os
1488
+
yP9rL8j/bDDJ/20xyf9tMcn/bTLJ/20yyf9uM8n/bzTK/280yv9vM8r/bS/L/2gpy/9jIcr/XxzJ/14c
1489
+
yP9gH8j/ZSbI/2suyf9uMsr/bzTK/280yv9uM8n/bTLJ/20yyf9tMcn/bTHJ/2swyf9rLsj/aivJ/2Ym
1490
+
y/9hGs//cSrX/7Kss/+FkHX/Y2Zd/15fXf9hYWD/YmJi/2NjY/9jY2P/Y2Nj/2NjY/9mZmb/c3Nz/zEx
1491
+
Mf8AAAD/AAAA8ikpKf92dnb/aGho/2VlZf9lZGT/ZGRk/2RlZP9kZWT/ZGRk/2JiYv9gYV7/ZWlf/4aR
1492
+
d/+zsrD/fDzX/2EZ0f9mJcv/aSzK/2wwyv9tMcn/bTLJ/24zyf9vNMr/bzTK/3A1yv9wNsr/cDbK/281
1493
+
yv9vNMr/bjPK/20yyv9tMsr/bTPK/240yv9vNcr/cDbK/3A1yv9wNcr/bzTK/280yv9tM8n/bTLJ/20x
1494
+
yf9sL8r/aSrK/2UjzP9gFtP/j1zU/6+4n/96g27/YmVe/2BhX/9jY2P/ZGRk/2RkZP9lZGT/ZGRl/2Vk
1495
+
ZP9lZWX/aGho/3d2dv8pKSn/AAAA8gAAALoKCgr/fX19/2xsbP9nZ2f/ZmZm/2ZmZv9mZmb/ZmZm/2Zm
1496
+
Zv9lZWb/ZGRk/2JjYf9jZl//dn5s/6i1k/+jhMr/aSDX/2Ug0P9pKcz/ay7K/20xyf9vM8r/bzTK/3A1
1497
+
yv9wNsr/cDbK/3A3yv9xN8r/cTfK/3I4y/9yN8v/cTfK/3E3yv9xN8r/cTfK/3A2yv9wNsr/cDbK/3A1
1498
+
yv9vNMr/bjPK/2wxyf9qLcr/aCfN/2Md0v91Mdj/rp6//5qnhv9vdWb/YmRf/2JiYv9kZWX/ZWZl/2Zm
1499
+
Zv9mZmb/ZmZm/2ZmZv9mZmb/Z2Zn/2xsbP99fX3/CgoK/wAAALkAAABTAAAA/2ZmZv90dHT/ampq/2ho
1500
+
aP9oZ2j/aGhn/2dnZ/9nZ2j/Z2dn/2dnZ/9mZmb/ZGVj/2NkYP9rcGT/iZN5/7O5p/+Zb9H/aR/Y/2Uh
1501
+
0P9qKc3/bC/M/28yy/9vNcr/cDXK/3E3yv9xN8r/cjjL/3I4y/9yOMv/cjjL/3I4y/9yOMv/cjjL/3I4
1502
+
y/9xN8r/cTbK/281yv9vNMv/bjHL/2wuzP9pKM7/ZB7R/3Er2f+khsn/rbia/3+Hcv9na2L/Y2Rh/2Vl
1503
+
ZP9mZmb/Z2dn/2dnaP9oZ2f/Z2ho/2doZ/9oaGf/aGho/2tqa/90dHT/ZmZm/wAAAP8AAABRDAwMAAAA
1504
+
AP8LCwv/fn9+/3Nzc/9sbGz/ampq/2lpaf9paWn/aWlp/2lpaf9paWn/aWlp/2hoaf9nZ2f/ZWZj/2Vo
1505
+
Yv9xd2n/kJuA/7W6qP+hf8z/eDTa/2Ye1f9pJtD/ayzO/24xzP9vM8z/cTXN/3E2zP9xNsz/cTfM/3E3
1506
+
zP9xN8z/cTbM/3E2zP9xNcz/cTXN/28zzP9tMM3/aivO/2gk0f9lHNb/hEbZ/6iRxf+wu53/hpB4/2xx
1507
+
Zv9lZmL/ZWZl/2doZ/9paGj/aWlp/2lpaf9paWn/aWlp/2lpaf9paWn/ampq/2xsbP9zc3P/fn5+/wsL
1508
+
C/8AAAD/DAwMAAUFBQAAAABKAAAA/yMjI/+AgID/d3d3/3Bwcf9ubm7/bW1t/21tbf9tbW3/bW1t/21t
1509
+
bf9tbW3/bW1t/2xsbP9qa2r/aGln/2psZv90emz/jJV9/668mf+2q73/oHnT/4NE3f9qItr/ayXW/20p
1510
+
1f9tLNP/bi3S/28v0v9vMNL/bzDS/28v0v9uLdP/bSvU/2wp1v9qJNf/biXc/4tS2/+mhc7/ube0/6Wz
1511
+
kf+EjXj/cHVq/2lrZv9paWj/a2tr/2xtbP9tbW3/bW1t/21tbf9tbW3/bW1t/21tbf9tbW7/bm5u/3Bw
1512
+
cP93d3f/gICA/yIiIv8AAAD/AAAASgUFBQADAwMABwcHAAAAAIYAAAD/CwsL/2tra/+EhIP/f39//319
1513
+
ff98fHz/fXx9/3x8fP98fHz/fX18/3x9fP98fHz/fHx8/3t7e/96enn/eHl3/3d5dP98gHf/iZB//52n
1514
+
jv+1w6H/yc65/7+zzP+2mtn/rITg/6Vy5v+caOb/l2Tl/5hl5f+daub/p3bm/62K3f+5n9f/wrrI/8bR
1515
+
s/+vu5z/l6GK/4WLff96fnb/d3l1/3h4d/96enr/e3t7/3x8fP99fHz/fHx8/3x8fP98fHz/fHx9/3x8
1516
+
ff98fXz/fX19/39/f/+EhIP/a2tr/wwMDP8AAAD/AAAAhAcHBwADAwMAAQEBAAMDAwAHBwcAAAAASgAA
1517
+
AP8AAAD/CwsL/ywsLf82Nzf/Njc2/zY2Nv82Njb/NzY2/zY2Nv82Njb/NjY2/zY2Nv82Njb/NjY2/zU2
1518
+
Nf80NDT/MzMy/zEyMP8xMy//NDcw/ztANf9GTT3/UltG/15oT/9oc1j/bnpd/3F+X/9xfV//bXlc/2Zx
1519
+
Vv9bZU3/T1dE/0NJO/85PTP/MzYv/zEzL/8yMzH/MzMz/zU1NP81NjX/NjY2/zc2Nv82Njb/NjY2/zY3
1520
+
Nv82Njb/NjY2/zc2Nv82Nzb/Nzc3/zc3N/8sLCz/CwsL/wAAAP8AAAD/AAAASgcHBwADAwMAAQEBAAAA
1521
+
AAABAQEAAwMDAAUFBQAMDAwAAAAAUwAAALoAAADyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1522
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1523
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1524
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA8gAAALoAAABTDAwMAAUF
1525
+
BQADAwMAAQEBAAAAAAD4AAAAAAAAH+AAAAAAAAAHwAAAAAAAAAOAAAAAAAAAAYAAAAAAAAABAAAAAAAA
1526
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1527
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1528
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1529
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1530
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1531
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1532
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1533
+
AAAAAAAAgAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAD4AAAAAAAAAf4AAAAAAAAHygAAAAwAAAAYAAAAAEA
1534
+
IAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAAAAAiAAAArgAAAPQAAAD/AAAA/wAA
1535
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1536
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1537
+
AP8AAAD/AAAA/wAAAP8AAAD0AAAArgAAACIBAQEAAAAAAAAAAAAAAAAAAQEBAAAAAMUAAAD/AgIC/wME
1538
+
A/8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8DAwP/AQIB/wAAAP8AAAD/AAAA/wAEAP8PGQf/KDYf/0VW
1539
+
Of9aalH/Y2xe/2ZrY/9mbGL/YWxc/1doTf9AUDT/IzAa/woUA/8AAQD/AAAA/wAAAP8AAAD/AQIC/wMD
1540
+
A/8DBAT/BAQD/wQEBP8EBAT/BAQE/wQEBP8EBAP/AgIC/wAAAP8AAADGAQEBAAAAAAABAQEAAAAAxQAA
1541
+
AP8FBQX/BQUF/wUFBf8FBQX/BQUF/wUEBf8FBQT/BAQE/wICAv8AAAD/AAAA/wACAP8UHwz/SFk8/29v
1542
+
cP91VYz/bjWY/2ESl/9VAJL/UQCQ/1AAjv9QAI7/UgCQ/1YAk/9kGZj/cDuX/3Vbif9rcmj/PU0y/w4Y
1543
+
Bv8AAAD/AAAA/wAAAP8CAwL/BAQE/wUEBP8FBQX/BQQF/wUFBP8FBQX/BQUF/wUFBf8AAAD/AAAAxQEB
1544
+
AQAAAAAgAAAA/wYGBv8GBQb/BQUF/wUFBf8FBQX/BQUF/wUFBf8EBAP/AAEA/wAAAP8ABAD/Ii4Y/2Ru
1545
+
Xv92VY//XxOX/0sAjP9LAIf/SwCE/0wAg/9MAIL/TQCB/00Agf9NAIH/TACC/0wAgv9MAIP/SgCF/0sA
1546
+
iP9MAI7/ZSGZ/3Zeif9aaFD/GCIP/wABAP8AAAD/AQIB/wQEBP8FBQX/BQUF/wUFBf8FBQX/BQUF/wYG
1547
+
Bf8GBQX/AAAA/wAAACEAAACuAwMD/wcHB/8GBgb/BgYG/wYGBv8GBgb/BQYG/wQEA/8AAAD/AAAA/xUe
1548
+
DP9ga1j/ckuS/1AAkv9IAIj/SACD/0kAgf9KAID/SwCA/0wAf/9MAH//TAB//0sAf/9LAH//TAB//0wA
1549
+
f/9LAH//SwCA/0oAgP9JAIH/SACE/0gAif9VBpT/dVqM/1JgR/8MFAT/AAAA/wABAP8EBQT/BgYG/wYG
1550
+
Bv8GBgb/BgYG/wYGBv8HBwf/AwMD/wAAAKwAAAD0BwcH/wgICP8HCAf/BwcH/wcHB/8GBwb/BAQE/wAA
1551
+
AP8BBwD/OUct/3dohf9TBZP/RQCI/0YAg/9HAID/SAB//0kAf/9KAH//SwB//0oAf/9JAH7/RwB9/0YA
1552
+
fP9GAHz/RwB9/0kAfv9KAH//SgB//0oAf/9JAH//SACA/0cAgf9GAIP/RQCJ/1sVlv91cXn/KDQe/wAD
1553
+
AP8AAQD/BQUF/wcHB/8HBwf/BwcH/wcHB/8ICAj/BwcH/wAAAPQAAAD/CQkJ/wkJCf8JCQn/CAkI/wgI
1554
+
CP8FBgX/AAEA/wgPAv9YZE3/bD+U/0MAif9EAIL/RQCB/0YAgP9HAH//SAB//0kAf/9JAH//SQB//0UA
1555
+
ff89AHn/MgB0/zAAcv8wAHL/MQBz/zsAeP9FAHz/SQB+/0kAf/9JAH//SAB//0cAf/9GAID/RQCB/0MA
1556
+
g/9FAIv/dVeP/0VTOv8DCQD/AAEA/wYGBv8ICAj/CQgI/wkJCf8JCQn/CQkJ/wAAAP8AAAD/CwsL/wsL
1557
+
C/8KCgr/CgoK/wcHB/8BAwD/DhUI/2ZuXv9cIJL/QACD/0IAf/9DAH7/RQB+/0YAf/9HAH//RwB//0gA
1558
+
f/9IAH//RgB+/zkAeP9YEIH/z5y0//DExv/yxcj/2Ka8/2Aahv83AHb/RQB9/0gAf/9IAH//RwB//0cA
1559
+
f/9GAH//RAB+/0MAfv9BAH//QACF/2g5kv9UYUn/Bw0C/wIEAP8ICAj/CgoK/wsLCv8LCwv/CwsL/wAA
1560
+
AP8AAAD/DQ0N/w0NDf8MDAz/CgoJ/wQFAv8NFAf/aHFh/1UVj/8+AID/QAB8/0IAfP9DAHz/QwB9/0QA
1561
+
fv9FAH//RgB//0cAf/9GAH//PwB8/zIAdP/pxcD/9tTS/+3K0P/tytD/+djW///l3P8yAHT/PgB6/0YA
1562
+
fv9HAH//RgB//0UAfv9DAH3/QwB8/0IAfP9BAHv/QAB8/z4Agf9iL5H/VmNL/wcNAv8FBgT/CgoK/wwM
1563
+
DP8NDQ3/DQ0N/wAAAP8AAAD/Dw8P/w8PD/8NDQz/BwgG/woPBP9hbFf/VxyO/zwAff8+AHr/QAB6/0AA
1564
+
ev8+AHn/OwB5/zoAef89AHv/QQB9/0QAf/9EAH7/OAB5/2Qphf/21c7/6MTN/+K9y//ivcv/6sXP///o
1565
+
4P90O5X/NQB2/0MAfv9EAH7/QQB9/zwAev85AHj/OQB4/z0Aef8/AHn/QAB6/z4Aev87AH//ZjmQ/0xY
1566
+
QP8GCgL/CAkH/w0NDf8PDw//Dw8P/wAAAP8AAAD/ERER/xAQEP8LDAv/BwsE/0pWPv9kN4//OQB8/zwA
1567
+
eP8+AHj/PQB4/zgAdv8sAHH/OQB0/1AMfP8rAHH/LwB0/zsAev8+AHz/LwB2/5BhmP/x0M//5L/M/+C8
1568
+
yv/hvMv/5cHN//zc2/+pfrL/KwBy/z0Ae/87AHn/LgBz/yoAb/9SDXz/OQBz/ygAbv82AHT/PQB3/z0A
1569
+
d/87AHj/OAB9/3NYjv8yPSj/BgkE/wwNDP8RERH/ERER/wAAAP8AAAD/ExMT/xEREP8JCwf/KTIg/3Zj
1570
+
if82AHv/OQB2/zwAdv88AHb/NgB0/yQAbP96RI3/88/H//7b0f/ovML/cTGK/yMAbv8vAHT/IgBv/6+J
1571
+
pf/ty8//4r/M/+C9y//hvcz/5MHO//XV2P/OrMb/HgBq/y4Acv8iAG3/cS+J/+6+xf//6d///+fe/4dS
1572
+
mf8fAGf/NABy/zsAdf87AHX/OAB2/zgAfv96dn7/GiET/woMCP8REhH/ExMT/wAAAP8AAAD/FBQU/xAQ
1573
+
D/8SGA3/c3lu/z0AgP82AHT/OQBz/zoAdP84AHP/KABt/3hFjP/01cz/5sbJ/+LByP/qycz/+9nT/7mH
1574
+
rP8jAGz/CwBj/8qnsv/oyM//48DN/+LAzf/jwM7/5MLP//DQ1//nydH/BgBd/yAAaf+3gaf//9vX//fX
1575
+
2v/z0tr/+drd///y6f+IV5v/IwBn/zYAcv86AHT/OQBz/zUAdf9ME4f/YWxW/w0RCf8REhD/FRUV/wAA
1576
+
AP8AAAD/FhYV/w8RDP9BTDf/Yz2L/zIAdP82AHH/OQBy/zkAc/8zAHD/MgBv/+vPw//mxsn/2rnE/9m3
1577
+
w//cusb/5MTL//PT0//arb7/sHuo/+7Lz//mxM//48DO/+TAzv/lwtD/6MbT/+3L1v/419r/tYGu/9io
1578
+
u//31Nb/787W/+rI1f/px9T/7MrW//ra3v////D/NABw/zAAbf84AHL/OABy/zYAcv8xAHX/c12K/yw0
1579
+
I/8QEQ7/FhYW/wAAAP8AAAD/FRUU/xkeE/96fHn/MAB2/zIAb/82AG//NwBw/zcAcf8wAG7/QA9y/+/Z
1580
+
yf/hwcf/2LbD/9i2w//ZuMX/3LvH/+LCzP/ox8//5MDJ/9SnuP++kKT/tYac/7OEmv+2iJ3/wJOn/9Cl
1581
+
t//qw9D/9NLa//DO1//qydT/58fT/+fG0//nxtP/6sjV//TU2/////j/VCOF/ywAa/83AHD/NwBw/zUA
1582
+
b/8xAHD/PQN9/213Y/8TFw//FhcW/wAAAP8AAAD/FBYS/z5HM/9nR4z/LQBu/zIAbf81AG7/NQBu/zYA
1583
+
b/8xAG3/IABl/8u5sv/myMr/27nF/9m3xP/aucX/3LvI/9y5xv/LnrD/r4OW/6Z/kf+shZf/soqd/7aN
1584
+
oP+4j6L/upGk/7qSpP+5kKL/zKS1/+jD0v/px9X/58bU/+fG0//nxtT/68rW//ze4f////b/HABh/y0A
1585
+
av81AG7/NQBu/zQAbf8xAG3/LABw/3Vkif8rMiL/FhcU/wAAAP8AAAD/GRwU/3aBav81AHv/LgBt/zIA
1586
+
bP80AGz/NABt/zUAbv8yAG3/JABm/1Yxef/p1Mn/4MLI/9u6xv/bu8j/2LPC/7qOov+if4//qoaX/7CK
1587
+
m/+yipz/tYue/7eNn/+5kKH/vJSl/8CYqv/CnK3/wp2u/8Oer//hvMz/6sjW/+jH1P/pydX/8tTb////
1588
+
9v97V57/HABf/zEAa/81AG3/NABt/zMAbP8yAGz/LQBt/04dh/9cZ07/FxkU/wAAAP8AAAD/KC4g/3xw
1589
+
iv8rAHb/MABv/zIAbv8zAG3/NABt/zQAbf8zAG7/LQBr/xgAYf+Wg5j/587L/9/Ayf/ZtsT/uI6g/6CC
1590
+
kP+piJf/roqa/66ImP+2j5z/xZ6o/8+psP/TrLT/z6ey/8afrP/Cnaz/x6Oz/8mmtf/HpbT/4sDO/+rJ
1591
+
1v/tz9j//+3p/9PB1P8OAFf/KQBn/zIAbf80AG3/MwBt/zMAbf8yAG7/MABw/ysAef+BhH3/HyMZ/wAA
1592
+
AP8AAAD/Q003/2pGmP8vAHv/MwB1/zQAdP80AHL/NABy/zMAcf8yAHH/LwBw/yMAa/8UAGL/vqqu/+LD
1593
+
yv/Dm6z/n4KP/6iKmP+ripn/rYqW/8OlqP/ZyLv/xba0/56Go/+ehKL/xrOy/+LLwf/dvMD/yqi0/8uq
1594
+
uP/Orrz/zbC8/+rI1f/0197/8+Pm/xQAYf8dAGX/LQBu/zIAcP8zAHH/NABy/zQAcv80AHT/MwB2/y4A
1595
+
fv95Y5P/MTko/wAAAP8AAAD/ZnNW/1AVnP8zAIP/NgB+/zcAfP82AHv/MwB6/y4AeP8nAHb/IAB0/xYA
1596
+
cP8DAGj/pIGm/9u4wf+mhpP/pImV/6qMmf+rjJb/xK+q/83Dvf9XI5D/IgB8/yUAff8kAH3/IAB7/1Id
1597
+
iv/MuLb/5svI/8+xu//Rs7//07bC/9u+yf/2193/v57D/wAAXf8QAGr/HABw/yQAc/8sAHb/MgB5/zYA
1598
+
e/83AHz/NgB//zIAhf9nPZ7/S1Y9/wAAAP8AAAD/gIly/zsAnv83AIz/OQCI/zkAhv81AIX/KgCC/yYA
1599
+
f/9gJo3/k1+e/7eHq//Rprb/5sjJ/8agrf+dhpD/qI2Z/6iLlv+0oZ3/0srC/zgAkf8wAI3/OwCR/0AA
1600
+
k/9AAJP/OwCR/y4AjP8yAIv/0Ly6/+bNy//TuMH/2LzH/9a9x//uz9j//eDi/+K3x//Flbn/nmqo/2Qq
1601
+
j/8hAHr/JgB+/zMAhP85AIb/OQCI/zYAjf9SFqX/aHVW/wAAAP8AAAD/hoaG/zYAo/86AJX/OwCR/zoA
1602
+
kf8vAI//TBOR/+TEuv/y1cr/69DL/+fLy//kxsv/3b3H/62Nmv+ii5X/qo+a/6iQlf/OybL/Yyqr/zQA
1603
+
nP9CAKD/RwCi/0gAo/9IAKP/RwCi/0EAoP8xAJv/WByf/+/fzP/dxsn/28LL/93Ezv/kyNL/7s/Z//TX
1604
+
3f/84OH//+nl///06f//6t7/Vh6Z/yoAi/85AJD/OwCS/zkAlf9AAKn/fops/wAAAP8AAAD/hnyT/zgA
1605
+
q/87AJ3/PACb/zkAmv8mAJj/up+s/+nRx//cwcX/2b3F/9m9xv/bvsj/1rbC/6GGkf+mj5j/qpGa/6aV
1606
+
kv/JwLr/LgCr/0AArP9IAK3/SgCu/0oArv9KAK7/SgCu/0gArf8/AKr/JgCk/9bDwf/q1tT/38fP/+LK
1607
+
1P/iytT/6MnV/+vN2P/t0dv/8NXd//bd4f//8uj/7tff/x8AkP83AJj/PACb/zsAnv88ALD/hox6/wAA
1608
+
AP8AAAD/hnib/z0AuP9AAKr/QQCo/zsAqP8pAKb/1cWy/9/HxP/WusP/1bnE/9e6xf/ZvMj/07LA/52F
1609
+
kP+okZv/q5Ob/6WXj/+mjLj/MQC4/0QAt/9JALj/SgC4/0oAuf9KALj/SgC4/0kAuP9DALb/KQCx/6+N
1610
+
u//049v/487V/+bQ2f/l0dj/58jV/+nM2P/qztn/69Db/+/U3f/85OL////u/yIAn/85AKX/QACo/0AA
1611
+
q/8+AL3/iY6B/wAAAP8AAAD/iHig/0QAx/9GALn/RwC4/0MAuf8xALj/1Maw/9/Hw//Wu8P/1brE/9e7
1612
+
xv/avcj/1LTB/52Hkf+qlJ3/rJad/6OVjP+fg7H/NADE/0YAv/9KAL7/SwG+/0sBvv9LAb7/SwG+/0oA
1613
+
vv9EAL7/KwC7/7COvv/46eH/59Ta/+vX3//p1t3/5sjU/+nM2P/qztn/7NHb/+/V3f/75OD////v/yoA
1614
+
sf9AALb/RwC3/0YAuv9EAMz/io+D/wAAAP8AAAD/jn+g/0cA0v9KAML/SwC//0gAv/83AMD/s6Gq/+bT
1615
+
wv/cwsP/2b/F/9q/x//cwMn/2LrF/6CKk/+qlZ7/rpmg/6CSjP+ypKD/OADG/0cAwP9NA77/TgW+/04F
1616
+
vv9OBb7/TQW+/0wDvv9DAL3/KgC4/9zIxf/46+T/69nf/+/c4//r2d//5snU/+rO2P/t0tr/8Nbc//Xe
1617
+
3///9eT/9ufs/y4At/9GAL3/SwC//0oAw/9LANf/jJKB/wAAAP8AAAD/kY2U/0oA0/9MAMH/TQS+/0wC
1618
+
vv9DAL//VRmy/9LPr//p3sH/59XF/+XQyP/jzMv/38TK/6qUnf+olZ3/sJyj/6eXl/+wp4//YSO5/0IA
1619
+
xP9MAsD/Twe//1AIv/9PCL//Tge+/0oAvv86AL3/YCG4///y2//w4uH/793j//Ti6P/r2d7/69HX//Lc
1620
+
2//65t7///Li////6P///+//bDHI/z0Auf9LAb3/TQO+/0sAwv9RANf/ipZ1/wAAAP8AAAD/j5eA/1AA
1621
+
1/9NAcP/Twe+/08Ivv9NA7//QwDA/z4Avf9oN7P/kXS0/6+et//Bt7X/4s7F/8OssP+kk5n/sp6m/7Oh
1622
+
pv+glYv/r5qY/0oAw/9FAMX/TALC/08GwP9OBsD/SgDA/z8Av/9BALr/3cfE//vw5v/v3+L/8+Hn//np
1623
+
7v/o1df//evi/+zj4P/Qv9f/sJPS/31Nyf86ALn/PQC6/0oBvf9PB77/Twa//0wAxP9jE9j/fI1i/wAA
1624
+
AP8AAAD/gJFn/2MU2P9OAcX/UQnA/1IMv/9SC7//UQnA/00Dwf9HAMH/QQDB/zgAwv8oAMH/oYSy/9/H
1625
+
yP+llZn/sZ6l/7ejq/+zo6T/ppuN/7OZmf9lJbj/PgDG/z8Axf8+AMP/OQDB/2Ymuf/awMD/9erc/+3f
1626
+
3//x4eb/9uXr//Hk5v/t19f/0bbi/xwAtf8wALn/OwC7/0IAvP9JAL3/Twe+/1ILv/9SC7//UQjA/0wA
1627
+
x/95P9D/Z3VS/wAAAP8AAAD/ZXNS/39Izv9OAMj/UwvB/1UPwP9VEMD/VRDA/1UPwP9UDsH/UQrB/0cA
1628
+
wv89AL7/xayz/+TLzP/FsLf/qZie/7ekrP+8qbD/uamq/6uglv+9q5j/vZ2h/6Z5rP+qfbD/zq+z/+XU
1629
+
wP/l2dD/6dvc/+7f4//z4uj/9+nu/+LP1f/w2Nn/8Nvf/zgAuf9BAL3/Twi//1MNwP9UD8D/VRDA/1UP
1630
+
wP9UDsD/UgrB/00Ay/+Nar7/VF9E/wAAAP8AAAD/UltE/5R7tf9OAM7/VAzC/1YRwP9XEsH/VxPB/1gU
1631
+
wf9YE8L/UgzD/0IAxP+qiK7/59HF/+HHzf/fxc7/u6uw/7Ggpv+9qrL/wa+2/8Szt/++sa//vLGq/8K2
1632
+
rf/KvrX/0sfA/9vOzf/m19r/69vg//Dg5v/15uv/4tPX/+TK1P/t09n//+zg/9Cx1P86ALz/UAnA/1cS
1633
+
wf9YFMH/VxPB/1cSwf9WEMD/UwrD/00A0v+alZ3/SFA+/wAAAP8AAAD/SU5A/5qjiv9TANX/VAvF/1cT
1634
+
wv9ZFcL/WhbC/1oXwv9YFMP/TAPE/3hEtP/n1L7/4crL/97Ezf/exc7/3sbP/8Cxtv+0pav/v6+1/8a1
1635
+
u//Kub//zr7C/9PEx//YyMz/3czR/+LS1//m1tz/69zi/+3h5f/f0dX/4snT/+fN1//q0dn/893d////
1636
+
5v+MWsn/RgC+/1YSwf9aFsL/WhbC/1kVwv9XEsL/UgjH/2YZ1v+ImG//RkpA/wAAAP8AAAD/SUxF/3OA
1637
+
X/9+R87/UwbK/1kTw/9aF8L/WxjC/1sYw/9XEsT/SgLD/8+9r//k0Mj/3MXL/9vDzP/dw83/38bP/+DI
1638
+
0P/PwMT/vLK0/8Cytv/JuL7/z77E/9TDyf/ZyM7/3s3T/+PT2f/l2Nz/39XX/9rLz//iytP/5s3X/+jP
1639
+
2f/q0dr/7dbc//zp4v//9+b/RQC+/1QPwf9bGMP/WxjC/1oXwv9YEsT/UgLN/41qv/9hbFH/SkxH/wAA
1640
+
AP8AAAD/T1BN/1ZeS/+bkqP/UwDS/1gRxv9bGMP/XRvD/10bw/9YE8X/Yyq6/+jcu//gzMr/2sPK/9rC
1641
+
y//cw8z/38bO/+TM0v/o09T/5NLQ/9XIyP/Ivb//x7zA/8u/w//Pw8f/0sfK/9XJy//azMz/59TT/+rV
1642
+
1v/q0tf/6dHZ/+nR2v/q09z/7Nbd//Xi4P///+7/czvK/1QPwf9cGsP/XBrD/1sYxP9XD8f/WgnV/5ie
1643
+
iv9QVkj/UFFO/wAAAP8AAAD/VFVT/1BUS/9+jGj/ej3R/1YMy/9cGMT/XxzE/18dxP9aFsX/VhW//93W
1644
+
tP/l0sr/3MXK/9rDy//dxsz/5M/P//Lj1v/e09P/rpa+/+fWzf/jzdH/38nQ/93I0P/dyND/38nR/+bQ
1645
+
1f/26N7/x7DX/9LGxv/z4tb/8Nvb/+zW3P/s1t3/79ne//rp4f////P/XBvE/1cTwv9eHMT/XhzE/1sX
1646
+
xf9VCM7/i2HF/2t3Wf9QU0z/VVVU/wAAAP8AAAD/WFhY/1VXU/9YX0z/npqf/1kI1P9bFcj/Xx3F/2Af
1647
+
xP9eHMb/UwzH/4Fcs//q4MP/5dLL/+LNzP/o1s7/+fDX/8q51P9NB8X/OgDF/8Cwsf/o0tH/48zU/+PM
1648
+
1f/jy9X/5c7W/+/a2v/67ez/NQC//0gBv/+wnbn/+O/W//fm3//14eD/+unh////6/+phtv/SwTA/1wa
1649
+
w/9gH8T/XhzF/1oSyv9jF9b/l6CI/1JYSf9WV1T/WFlY/wAAAP8AAAD/XFxc/1tbWv9RVEz/cn9g/5Bo
1650
+
xv9YDM//XhvH/2Ehxv9iIcX/XhvG/1EIyP+CXrT/5OG///bxzv/t6db/kGjN/00Exf9WEsf/TgXJ/66X
1651
+
sP/r19H/5M7U/+PM1f/jzNX/5s/W//Xj3P/l0uj/RgDB/1YRxv9OBsb/flW7/+PezP///+H////q/6mG
1652
+
2f9IAL//WxfD/2Egxf9gIMb/XRnI/1gI0v+diLX/ZG5W/1FTTv9bXFv/XFxc/wAAAP8AAAD/X19f/19f
1653
+
X/9WV1X/VltO/5Gdff92NdX/WxPN/2Efx/9kI8X/YyPG/2Aex/9XEcj/XSDE/3I+xv9VEMb/WBLF/2Ef
1654
+
xv9kJMj/WRTK/5Z3sv/u3dD/5dDV/+PN1f/jztb/59LX//zt3//Hq+P/UgzC/2Mixv9iIMf/WBPG/1IN
1655
+
w/9xPsX/YCLG/1ELwv9dGsT/YiLF/2Mjxf9hHcf/Wg/P/4hXzf+Ajmv/VFhO/1dXVv9fX1//X19f/wAA
1656
+
AP8AAAD/YmJi/2JiYv9bW1v/VlhU/19mVP+go5j/ayHX/18XzP9jIsj/ZSbH/2Unx/9kJMf/YiHH/2Eg
1657
+
x/9jI8f/ZijI/2kryP9pK8j/YB7K/3ZKtv/u4sv/6dbW/+XQ1v/l0Nb/69jY////5v+Ybdj/WxjE/2gq
1658
+
x/9pK8j/ZijI/2Mix/9gHsb/YB/G/2Mjxv9kJsf/ZSXG/2IhyP9eFM7/eDjV/5ahhP9aX1H/V1hV/1tc
1659
+
W/9iY2L/YmJi/wAAAP8AAAD/ZGRl/2VlZf9fX1//XFxb/1hbVf9ncVr/o6Gj/2ge1/9gGs3/ZCTJ/2cp
1660
+
x/9oKsf/aCrI/2kryP9qLMj/ay7I/2svyP9rL8n/ZifK/1sZx//Uz7b/9OXW/+7c2P/t3Nf/+Ovc////
1661
+
8f9bGcb/YyTH/2ouyP9rL8j/ay7I/2osyP9oK8j/aCrH/2gqx/9nKMj/YyPJ/18Xzv90Mdb/nqWR/2Bo
1662
+
Vv9ZW1b/XF1c/15fX/9lZWX/ZGVl/wAAAP8AAAD/Z2dn/2hoaP9hYWH/YGBg/15eXf9bXlb/bXdg/6Wi
1663
+
pf9tJtj/YhvP/2Ylyf9oKsn/ai3I/2suyP9rL8j/bDDJ/20xyf9tMcn/ay7J/2Iiyv9tOr7/yLvD/+zm
1664
+
0v/x7Nf/4tfd/4JQ0P9eHcb/aS3I/20xyf9tMcn/bDDJ/2svyP9rLsj/aizI/2gqyf9mJMr/YBjQ/3k5
1665
+
1v+gp5T/Zm5a/1tdWP9fX17/YGBg/2FhYf9oaGj/Z2dn/wAAAP8AAAD/aWlp/2tra/9kZGT/YmJj/2Ji
1666
+
Yv9gYV//XWBZ/2x1X/+lp5z/fD7W/2IZ0v9mJcz/aizJ/2svyf9tMcn/bTLJ/20yyf9uM8n/bjPK/2wv
1667
+
y/9mJsv/XhvK/1sYyP9aGMf/WxjH/2MjyP9qLsn/bjLJ/24zyf9tMsn/bTHJ/20wyf9rLsn/aSvJ/2Yj
1668
+
zf9hF9P/ilbS/52mjP9mbVv/XV9a/2BhYP9iYmL/YmJj/2RkZP9ra2v/aWlp/wAAAP8AAADzYWBg/29v
1669
+
b/9nZ2f/ZWVl/2VlZf9kZWT/Y2Ni/19iXP9nb13/mqaG/5hzyv9mG9f/ZSLP/2orzP9sL8r/bTLJ/280
1670
+
yv9wNMr/cDXK/3A1yv9uNMr/bTHK/2swyv9rL8n/bDHJ/24zyv9vNcr/cDXK/280yv9uM8r/bTHJ/2wu
1671
+
yv9pKc3/ZSDQ/2si2P+hiMH/jpx6/2NpW/9gYl3/Y2Ni/2RkZP9lZWX/ZWVl/2dnZ/9vb2//YWBg/wAA
1672
+
APQAAACuNjY2/3d3d/9ra2v/aGho/2dnZ/9nZ2f/ZmZm/2VlZP9iZGD/ZGlc/4CMb/+ppar/h1DW/2Yd
1673
+
1v9oJdD/bC3N/24xzP9vNMv/cDXK/3E2yv9yN8v/cjfL/3I3y/9yN8v/cjfL/3E3y/9wNsr/bzXK/28z
1674
+
y/9uMMz/ayzN/2ck0f9oHtj/kGLR/6aqnv94gmn/YmZc/2NkYf9lZmX/Z2Zm/2dnZ/9nZ2f/aGho/2tr
1675
+
bP93d3f/NjY2/wAAAKwAAAAgAAAA/3Fxcf91dXX/bW1t/2tra/9qamr/ampq/2ppaf9oaWj/Zmdl/2Rn
1676
+
YP9tdGP/kJ19/6qisv+QX9X/bCPb/2ol1f9rKtH/bjDP/3E0z/9xNc7/cTXO/3E2zv9xNs7/cTXO/3E1
1677
+
zv9wM8//bi/P/2sq0v9qI9b/cSnc/5Zs0f+rqaj/iJR2/2pwYP9kZ2H/Z2dl/2lpaP9qamn/ampq/2pq
1678
+
av9ra2r/bW1t/3V1df9xcXH/AAAA/wAAACAPDw8AAAAAxQgICP9zc3P/fHt7/3Z2dv9zdHP/c3Nz/3Nz
1679
+
c/9zc3L/cnJy/3FxcP9ucGz/bXFo/3V8a/+Qm37/srmj/6yWx/+abNv/g0Lj/3Yv4v9yK+D/ci3e/3Iu
1680
+
3f9yLt3/cize/3Ir4P93MOL/iEni/5502f+unsH/rric/4mUef9zeWr/bXBp/29wbf9xcnH/cnJy/3Jz
1681
+
c/9zc3P/c3Nz/3NzdP92dnb/fHt8/3Nzc/8ICAj/AAAAxA8PDwAJCQkAGhoaAAAAAMUAAAD/OTk5/2ho
1682
+
aP90dHT/dHR0/3R0dP90dHT/dHR0/3Nzc/9zc3L/cnJx/3Bxbv9ucWr/cHVp/3qCb/+MmH3/pLGQ/7G3
1683
+
pf+0rrX/saS//66hwf+vosH/sqa+/7Oxsv+wt6L/n62M/4mTef93f23/b3Rp/25wa/9wcW//cnJy/3Nz
1684
+
c/90c3P/dHR0/3R0dP90dHT/dHR0/3R0dP9oaGj/OTk5/wAAAP8AAADFGhoaAAkJCQAFBQUACQkJAA8P
1685
+
DwAAAAAhAAAArgAAAPQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1686
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1687
+
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAArgAAACIPDw8ACQkJAAUF
1688
+
BQDgAAAAAAcAAMAAAAAAAwAAgAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1689
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1690
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1691
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1692
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1693
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1694
+
AACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA
1695
+
AAAAAAAAAQEBAAMDAwAAAACQAAAA9gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAC
1696
+
AP8ADgD/BRQA/wUUAP8ADAD/AAEA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
1697
+
APYAAACQAwMDAAEBAQADAwMAAAAA/wMDA/8FBQX/BQUF/wQEBP8DAwP/AAEA/wAAAP8AAAD/EiAH/0lT
1698
+
Qv9iT3H/bUGL/240lv9sKZn/bCqZ/241lf9sQ4n/YFBs/0NQOv8MGgL/AAAA/wAAAP8AAQD/AwMD/wQE
1699
+
BP8FBQX/BQUF/wMDA/8AAAD/AwMDAAAAAJAEBAT/BgYG/wUFBf8FBQX/AwMC/wAAAP8AAAD/Hy4T/2BW
1700
+
av9qLpj/UwCV/08Ajf9OAIn/TACG/0wAhf9MAIX/TACG/04Aif9PAI7/VQCW/2w1lv9cWGD/FSQK/wAA
1701
+
AP8AAAD/AwQC/wUFBf8FBQX/BgYG/wQEBP8AAACPAAAA9ggICP8HBwf/BgYG/wMEAv8AAAD/BA8A/1VY
1702
+
U/9lJ5j/SwCQ/0oAh/9KAIP/SgCB/0kAf/9EAH3/QAB6/0AAev9EAHz/SAB//0oAgf9KAIP/SgCI/0wA
1703
+
kf9oM5X/S1NE/wAJAP8AAQD/BAUD/wYGBv8HBwf/CAgI/wAAAPYBAAD/CwsL/wkJCf8FBgT/AAIA/xMg
1704
+
Cf9pWHn/TgCS/0YAh/9GAIP/RwCA/0gAf/9HAH7/PgB6/zkAdv9mHIb/Zx2H/zkAdf89AHn/RgB+/0gA
1705
+
f/9HAID/RgCD/0YAiP9SBJT/ZFxs/wsVAf8AAwD/BgcF/wkJCf8LCwv/AQEB/wEBAf8NDg3/CQoJ/wIG
1706
+
AP8YJA3/a1GD/0MAiv9BAID/QAB9/0EAff9DAH7/RAB+/0AAfP8wAHT/4bq+///n2v//6Nz/9dLS/y8A
1707
+
cv8/AHv/RAB+/0IAfv9AAHz/QAB9/0EAgf9GAIz/alt4/w4ZBP8DBgD/CgoJ/w4ODf8BAQH/AQEA/w8Q
1708
+
D/8HCgX/DxkG/2tZfP8/AIb/PQB8/zkAeP8xAHT/LABy/zAAdf84AHn/NAB4/1UWgf/+39T/7cvQ/+7L
1709
+
0f//7eL/YSSN/zIAdf83AHj/LgBz/ykAcP8uAHH/OAB3/z0AfP9CAIj/Zl9u/wkSAf8ICgb/EBAQ/wEB
1710
+
Af8AAAD/EBIP/wkPAv9gYGD/QACF/zoAef82AHT/JgBt/3lBjv/Zrrv/mWCe/ycAbv8dAGz/dT+O//XW
1711
+
0//nxM//58XQ//3f3P+IVqL/GQBo/yQAbP+bYJ//57vI/4RNmf8hAGn/NABz/zoAev9HA4n/VFtO/wgN
1712
+
Av8REhD/AAAA/wAAAP8QEwz/O0cu/1Mdiv83AHj/NwBz/ysAbf91Q4z//eDS//DSz//32dP/4rnE/zgA
1713
+
c/+hcaP/8NHV/+jH0//pyNP/9tjb/7CEtP8zAG3/4bTB///l4P//5eL///vt/4VVnP8nAGn/NgBz/zcA
1714
+
ef9eM4r/KjUe/xEUDv8AAAD/AAAA/xceD/9oW3f/MgB3/zUAcf80AHD/IwBo/8mutP/w0s//4MDI/+LC
1715
+
yv/uz9L/89DS/+W+xv/MorH/w5eq/8icr//bs8D/99TZ//rX2v/11tr/78/Y//DQ2f//5+X/+OHj/x0A
1716
+
Yv8zAG7/NQBy/zIAef9nZGv/FBoO/wAAAP8AAAD/QEsz/1Afh/8wAG//MwBt/zIAbf8kAGb/gF+O//LX
1717
+
0P/iwsr/4L/L/9u2xP+5j6D/qIGR/66Gl/+1i5z/uI+g/7uTpP+/l6f/2rTC/+3L2P/qytb/8M/Z///y
1718
+
6/+qjLr/HgBg/zEAa/8zAG3/MABw/1w2iP8vOST/AAAA/wAAAP9sbWv/LwB6/zAAbv8yAGv/MQBr/ygA
1719
+
aP8YAF//xrO0/+rNz//ZtcL/qIOU/6aFk/+wi5f/vZae/8ymqf/Rqq7/y6Wt/8ahrf/Go7H/0rC+/+3M
1720
+
2P/63eD/++vq/xYAXf8kAGP/MABq/zEAa/8wAG7/NAB//2RtWv8AAAD/AAMA/3BZjf8yAIH/MwB2/zEA
1721
+
cv8tAHD/IwBs/w8AZf8lAGv/6MzL/7KPnf+kh5L/ro+W/8y1q/+2oK7/dlCV/3VNlP+4na3/5MnA/9Cx
1722
+
uP/OsLv/4sLN///r6f8wAHf/BgBc/x8Aaf8rAG7/MQBy/zIAdv8yAIT/cWSB/wAAAP8IEwD/aj6l/zYA
1723
+
jf81AIT/LQCA/yIAfP9QFIb/dz6V/6Fyp//at73/oIeQ/6qOlf/EtaX/hmCq/yEAhf8sAIn/KwCI/x4A
1724
+
gv99UZ7/69XI/9e9wv/Zv8f/+93g/6x+s/97Q5n/URWH/x0Adv8qAH3/NACD/zUAj/9xUJ3/AAkA/xck
1725
+
BP9fJbX/OACa/zQAk/8rAI//2bq4//jezv/w1c//687Q/7ycpv+kjZT/rJiU/7emtv8oAKD/PQCj/0QA
1726
+
pf9EAKT/OwCh/yEAmf/Eqb3/5tLN/+DJ0P/qztb/+dve///r5v///e3//+Pe/ykAjf8xAJD/NwCb/2s8
1727
+
sf8KFQD/IC8J/1sWxv89AKv/NACl/1Qfof/15Mf/4cjH/93Cyf/gwsz/rZGc/6eRl/+snpD/gVS5/zUA
1728
+
tv9FALf/SQC3/0kAt/9EALb/LgCw/4FPtf/15tn/59PY/+bO1v/sztn/8NXd//vk4v///+//aTa2/zAA
1729
+
of87AKz/ajDB/xAdAP8gMAj/YhTa/0YAw/8/AL3/Wh+y//Pkwv/hycX/3sLI/+DDzP+tk53/qpWb/6qd
1730
+
jv97TLf/OQDE/0cAwP9KAL//SgC//0UAvv8wALv/g1C8//zw4f/v3eH/6dPa/+vO1//v1dv/+uPg////
1731
+
6/9zOMr/OgC5/0UAxP9wL9P/ER4A/xgnAP9wJt7/SwDJ/0cAwf89ALz/y8Gv//Dkw//s2cn/6tPO/7qj
1732
+
qP+ql5z/rJ6V/52GnP83AMj/RgDC/0sCwP9KAb//QgC+/ygAuf/PtMv/+u7k//bl6P/u2tz/9d7a///w
1733
+
3////+f////u/zwAvP9EAL7/SgDK/3s/1P8LGAD/ChgA/35F0/9OAMv/TgTB/0cAwP89AL7/XSW3/35T
1734
+
uv+cfrj/2MK9/6aWmf+2paX/rKKM/3xJrP86AMf/QQDD/z4Awf8wAL3/i1i6///34P/36ef/++3u//Th
1735
+
2v+9oNn/j2TL/2szxf83ALn/QwC8/0wCwP9NAM3/hFnF/wIOAP8ACQD/ime9/1EAz/9TCsL/UgzA/08G
1736
+
wf9HAMH/NgDC/0gBuP/n0cf/tqWn/7WjqP+8ran/tKmU/6eGn/+CSbH/hUy1/8Gguf/x59L/9Ojj//jp
1737
+
7P/u4OH//urf/04Iv/8tALj/QgC8/0wEvv9RCr//UgnD/1AA0v+Mdqr/AAUA/wACAP+QipT/UwDX/1UM
1738
+
xf9XEsL/VxLC/08Hw/9DAMH/z7W3/+rSzv/exsz/s6Sp/72ssf/Gt7f/xrux/8zBsv/Xzb3/4tfO/+3g
1739
+
3v/z5Of/7eDj/+TM0//239v/9N3d/z4AvP9MBL//VhHB/1cSwv9UC8b/VQDa/4uTff8AAQD/AAIA/3iI
1740
+
YP9sJNr/VgvK/1oVw/9ZFcP/TQXE/5Zutf/u3cj/48zO/+LI0P/fyM//xLe4/8G0tv/MvcD/1cbI/93O
1741
+
0P/k1tj/6Nzd/+PX1//iy9L/6M/Y//DZ2///+eT/tpDV/0gAv/9YE8L/WRTE/1UJy/95PdL/aXdU/wAC
1742
+
AP8BAwD/XGVN/4xxsP9WBtL/WxXG/1sXxP9OBcX/yLe0/+zbyv/hysz/48vO/+3Y1P/v4NT/49XN/9LG
1743
+
xf/Pw8X/08bJ/9vOzf/n2tL/8OHW//Hc2P/v2dv/8tze///04//97+r/RwC//1kVw/9aFMf/VQTU/42A
1744
+
nv9ZYUz/AQMA/wMEAv9dYVX/e4hl/2wl1/9bEsz/XRnG/1QOxv+DWrf/8+nG/+zczP/05dH/6N3Y/14h
1745
+
xv+ig7j/7NfT/+bO1f/mztX/8t3a/8is4P9SFbv/18rG///z3v//8uL////q/6R92f9PCMH/XBjF/1oQ
1746
+
zf93OdL/bn1Y/11hV/8DBAL/BAQE/2RmYv9XX0r/kYic/1wM1/9eGcv/XRrH/1IKx/+GX7r/2M3I/6+S
1747
+
0P9RDMb/SQDH/4Rat//y4NL/6NLW/+jS1v/87N3/qIDb/0UAwv9MB8H/o4XE/+vh3P+jfdf/SwPA/1sX
1748
+
xP9dF8v/YBHZ/46Oiv9VXEr/ZWZj/wQFBP8FBQX/a2xq/1ldVP9kcFL/j269/14Q1P9hHcv/YB7I/1oW
1749
+
yP9WEcf/WRXG/18dx/9dGsn/bju6//bqz//u3Nf/7tzX////4/+HVdT/WRbF/14dx/9YFMX/Uw7E/1YS
1750
+
xP9dG8b/YBvL/14P1v+UgK//XmhO/1pdVv9sbGv/BQUF/wYGBv9xcXD/YGFf/1leUv9zgV7/i2HG/2AU
1751
+
1v9kIcz/ZibJ/2YoyP9oKsj/ai3I/2coyf9aGMj/0si9///32P//+tv///np/1gWxv9lJsf/aSzI/2gq
1752
+
yP9mJ8j/ZSXI/2Mfzf9gE9f/k3a7/2p3WP9aXlT/YGFf/3Fxcf8GBgb/CAgI/3V1df9mZmX/YGFe/1xi
1753
+
Vf92hGL/lHPA/2QY2f9mIs//aSrL/2wvyv9tMcn/bDDK/2Ynyv9fIMf/gFPH/4VYzP9hIcj/ZCXI/2sv
1754
+
yf9sMcn/ay7K/2kpy/9mIdD/Zxva/5iCtP9ue1z/XWFW/2FhX/9mZmX/dXV1/wgICP8AAAD2enp6/2xs
1755
+
bP9mZmb/ZGVi/2BlWv9uel3/m5Kk/3g32v9nINb/ainQ/20vzf9vMsz/bjLL/2suy/9oKsv/ZynK/2ot
1756
+
yv9tMcv/bzLM/20vzf9qKND/Zx/X/35B2P+Zl5n/aXRa/2BkW/9kZWL/ZmZm/2xsbP96enr/AAAA9gAA
1757
+
AI9XV1b/dXV1/29vb/9sbGz/a2xp/2hrY/9pcV3/jZl6/5yEvf+BQd//bibe/28s2P9xMNb/cjPV/3Iz
1758
+
1P9yM9T/cjLV/3Ew1v9vK9n/biXf/4ZL3f+ei7b/h5Rz/2hvXf9oa2T/a2xq/2xtbP9vb2//dXV1/1ZX
1759
+
Vv8AAACPPT09AAAAAP9ZWVn/gYGB/4CAgP+AgID/f4B+/31/e/97f3X/f4hy/5uohv+wq7P/rI7V/6N0
1760
+
6P+aXvD/klPw/5JU8f+aYO//pHfm/62S0v+wr67/lqOC/36Fcv97f3X/fn98/3+Af/+AgID/gICA/4GB
1761
+
gf9ZWVn/AAAA/z0+PQAVFRUAPz8/AAAAAJAAAAD2CQkJ/wcHB/8GBgb/BgYG/wUGBP8EBQH/AgUA/wAG
1762
+
AP8EDAD/DhkA/xomB/8hLg3/IC0N/xglBv8MFwD/AwsA/wAGAP8CBQD/BAUC/wUGBP8GBgb/BgYG/wcH
1763
+
B/8JCQn/AAAA9gAAAJA/Pz8AFRUVAMAAAAOAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1764
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1765
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHAAAADKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAAAAAAAAA
1766
+
AAAAAAAAAAAAAD48PwAAAQDzAAAA/wAAAP8AAAD/CBkA/yYiKf8vHjz/Lx48/yQiJ/8GFwD/AAAA/wAA
1767
+
AP8AAAD/AQEA8z08PwABAgHyAwUB/wACAP8RHgj/USxw/1sEm/9NAJD/RACI/0QAiP9NAJD/Wweb/04t
1768
+
av8NGgP/AAIA/wMFAv8BAgHyAgQB/wEIAP8lKiL/Uw2R/0EAi/88AIH/MQB4/610rf+0fLP/MAB3/zoA
1769
+
gP9AAIv/UhGN/yAnGv8CCAD/AwQB/wIGAP8hKxf/TAyL/zAAfP9vL5H/PgB7/zcAdv//9OH///zp/z0A
1770
+
ff87AHf/dDSV/y0Aev9MEIf/GycR/wIGAP8CCwD/UDFx/zAAef9lMIj///nf///h2f+wf63/6sfH//LR
1771
+
0P+5irf//+bf////+f90QJj/LgB3/040af8CCgD/Ii4U/zoAgP8kAGj/KgBn//Te0v/hwcH/t5SV/8Kd
1772
+
m//NqKX/1rS0//vd3P///fH/MQBv/yAAZf8+BIH/HCkM/zIrOv8wAIr/HABz/y4AdP+lfaf/sJeS/7Oc
1773
+
oP9RGY7/ThWK/8qutf/o0Mn/u5W//ygAbf8XAG7/LgCK/zAuMv82IlX/MACs/510sv//8db/3cK8/66g
1774
+
jv9aHbL/KgCt/yQAqP9VFKv/+OrY///n4P////D/uJDO/y0Aqv8zJUv/PCJk/0AA1v+fd7////TN/9vG
1775
+
uf+upI//VBS4/zAAxf8pAL//XBm+////6v//7d/////q/8Kc5P89ANT/OSVX/zwxTP9PANv/PgDG/0kF
1776
+
v/+siL7/ua6d/6WTl/9bF7T/Xxu5/+XT1/////D/w6HW/0oFv/84AMH/TQDb/zs2Qv83RCL/YAvj/04A
1777
+
zP9TDMD/8+DJ/+XUx//MxLL/1s+3/+vkzf/79eP/+Ojb///44f9VD8P/SgDJ/2MQ4f8yQhv/JTES/3tQ
1778
+
vP9WBtX/e0fA///9zP/879j/t5rJ/+rdzv/w5NT/v6LR//vu1////+r/kF3W/1MC1P96VrL/JC8T/ysx
1779
+
I/9ye2P/aiLa/1QG0v+EVMj/ZSfL/1gYv///+Nb////h/2cozv9dHsP/j1/T/1ACz/9rJtb/bnld/ywx
1780
+
JP80NjL/Z25b/3p7d/9wKdz/YhfY/2Ec0f9bFs3/tZbN/8Wo3f9ZFMz/YBrP/2AU1/9xLdj/d3tw/2du
1781
+
XP80NjL/MDEw8nZ4cv9vdmT/gYlz/41myP95MOr/cirk/20m4P9tJeD/cink/3oy6f+NacP/fohv/292
1782
+
Zf92eHP/MDEw8v///wAzMzLzOz05/zc8L/81QCX/SVQ2/01FWv9PPGz/Tzxr/01FWP9HUzT/NT8m/zc8
1783
+
MP87PTn/MzMy8////wCAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1784
+
AAAAAAAAAAAAAAAAAACAAQAA
1785
+
</value>
1786
+
</data>
1787
+
</root>
+42
Program.cs
+42
Program.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Diagnostics;
4
+
using System.Linq;
5
+
using System.Reflection;
6
+
using System.Security.Principal;
7
+
using System.Windows.Forms;
8
+
9
+
namespace GfWLUtility
10
+
{
11
+
internal static class Program
12
+
{
13
+
public static bool Elevated = false;
14
+
15
+
/// <summary>
16
+
/// The main entry point for the application.
17
+
/// </summary>
18
+
[STAThread]
19
+
static void Main()
20
+
{
21
+
// store elevation status
22
+
WindowsIdentity identity = WindowsIdentity.GetCurrent();
23
+
WindowsPrincipal principal = new WindowsPrincipal(identity);
24
+
Elevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
25
+
26
+
// start the application
27
+
Application.EnableVisualStyles();
28
+
Application.SetCompatibleTextRenderingDefault(false);
29
+
Application.Run(new MainWindow());
30
+
}
31
+
32
+
public static void RelaunchAsAdmin()
33
+
{
34
+
Process p = new Process();
35
+
p.StartInfo.FileName = Assembly.GetExecutingAssembly().Location;
36
+
p.StartInfo.UseShellExecute = true;
37
+
p.StartInfo.Verb = "runas";
38
+
p.Start();
39
+
Application.Exit();
40
+
}
41
+
}
42
+
}
+36
Properties/AssemblyInfo.cs
+36
Properties/AssemblyInfo.cs
···
1
+
using System.Reflection;
2
+
using System.Runtime.CompilerServices;
3
+
using System.Runtime.InteropServices;
4
+
5
+
// General Information about an assembly is controlled through the following
6
+
// set of attributes. Change these attribute values to modify the information
7
+
// associated with an assembly.
8
+
[assembly: AssemblyTitle("GfWL Utility")]
9
+
[assembly: AssemblyDescription("GfWL Utility")]
10
+
[assembly: AssemblyConfiguration("")]
11
+
[assembly: AssemblyCompany("")]
12
+
[assembly: AssemblyProduct("GfWL Utility")]
13
+
[assembly: AssemblyCopyright("Copyright © InvoxiPlayGames 2024")]
14
+
[assembly: AssemblyTrademark("")]
15
+
[assembly: AssemblyCulture("")]
16
+
17
+
// Setting ComVisible to false makes the types in this assembly not visible
18
+
// to COM components. If you need to access a type in this assembly from
19
+
// COM, set the ComVisible attribute to true on that type.
20
+
[assembly: ComVisible(false)]
21
+
22
+
// The following GUID is for the ID of the typelib if this project is exposed to COM
23
+
[assembly: Guid("3dd60089-1d00-4dc7-8a88-a31ca30fbd88")]
24
+
25
+
// Version information for an assembly consists of the following four values:
26
+
//
27
+
// Major Version
28
+
// Minor Version
29
+
// Build Number
30
+
// Revision
31
+
//
32
+
// You can specify all the values or you can default the Build and Revision Numbers
33
+
// by using the '*' as shown below:
34
+
// [assembly: AssemblyVersion("1.0.*")]
35
+
[assembly: AssemblyVersion("1.0.0.0")]
36
+
[assembly: AssemblyFileVersion("1.0.0.0")]
+113
Properties/Resources.Designer.cs
+113
Properties/Resources.Designer.cs
···
1
+
//------------------------------------------------------------------------------
2
+
// <auto-generated>
3
+
// This code was generated by a tool.
4
+
// Runtime Version:4.0.30319.42000
5
+
//
6
+
// Changes to this file may cause incorrect behavior and will be lost if
7
+
// the code is regenerated.
8
+
// </auto-generated>
9
+
//------------------------------------------------------------------------------
10
+
11
+
namespace GfWLUtility.Properties {
12
+
using System;
13
+
14
+
15
+
/// <summary>
16
+
/// A strongly-typed resource class, for looking up localized strings, etc.
17
+
/// </summary>
18
+
// This class was auto-generated by the StronglyTypedResourceBuilder
19
+
// class via a tool like ResGen or Visual Studio.
20
+
// To add or remove a member, edit your .ResX file then rerun ResGen
21
+
// with the /str option, or rebuild your VS project.
22
+
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24
+
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25
+
internal class Resources {
26
+
27
+
private static global::System.Resources.ResourceManager resourceMan;
28
+
29
+
private static global::System.Globalization.CultureInfo resourceCulture;
30
+
31
+
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32
+
internal Resources() {
33
+
}
34
+
35
+
/// <summary>
36
+
/// Returns the cached ResourceManager instance used by this class.
37
+
/// </summary>
38
+
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39
+
internal static global::System.Resources.ResourceManager ResourceManager {
40
+
get {
41
+
if (object.ReferenceEquals(resourceMan, null)) {
42
+
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GfWLUtility.Properties.Resources", typeof(Resources).Assembly);
43
+
resourceMan = temp;
44
+
}
45
+
return resourceMan;
46
+
}
47
+
}
48
+
49
+
/// <summary>
50
+
/// Overrides the current thread's CurrentUICulture property for all
51
+
/// resource lookups using this strongly typed resource class.
52
+
/// </summary>
53
+
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54
+
internal static global::System.Globalization.CultureInfo Culture {
55
+
get {
56
+
return resourceCulture;
57
+
}
58
+
set {
59
+
resourceCulture = value;
60
+
}
61
+
}
62
+
63
+
/// <summary>
64
+
/// Looks up a localized resource of type System.Drawing.Bitmap.
65
+
/// </summary>
66
+
internal static System.Drawing.Bitmap GfWLCheck {
67
+
get {
68
+
object obj = ResourceManager.GetObject("GfWLCheck", resourceCulture);
69
+
return ((System.Drawing.Bitmap)(obj));
70
+
}
71
+
}
72
+
73
+
/// <summary>
74
+
/// Looks up a localized resource of type System.Drawing.Bitmap.
75
+
/// </summary>
76
+
internal static System.Drawing.Bitmap GfWLOld {
77
+
get {
78
+
object obj = ResourceManager.GetObject("GfWLOld", resourceCulture);
79
+
return ((System.Drawing.Bitmap)(obj));
80
+
}
81
+
}
82
+
83
+
/// <summary>
84
+
/// Looks up a localized resource of type System.Drawing.Bitmap.
85
+
/// </summary>
86
+
internal static System.Drawing.Bitmap GfWLUnknown {
87
+
get {
88
+
object obj = ResourceManager.GetObject("GfWLUnknown", resourceCulture);
89
+
return ((System.Drawing.Bitmap)(obj));
90
+
}
91
+
}
92
+
93
+
/// <summary>
94
+
/// Looks up a localized resource of type System.Drawing.Bitmap.
95
+
/// </summary>
96
+
internal static System.Drawing.Bitmap WLIDOld {
97
+
get {
98
+
object obj = ResourceManager.GetObject("WLIDOld", resourceCulture);
99
+
return ((System.Drawing.Bitmap)(obj));
100
+
}
101
+
}
102
+
103
+
/// <summary>
104
+
/// Looks up a localized resource of type System.Drawing.Bitmap.
105
+
/// </summary>
106
+
internal static System.Drawing.Bitmap WLIDUnknown {
107
+
get {
108
+
object obj = ResourceManager.GetObject("WLIDUnknown", resourceCulture);
109
+
return ((System.Drawing.Bitmap)(obj));
110
+
}
111
+
}
112
+
}
113
+
}
+136
Properties/Resources.resx
+136
Properties/Resources.resx
···
1
+
<?xml version="1.0" encoding="utf-8"?>
2
+
<root>
3
+
<!--
4
+
Microsoft ResX Schema
5
+
6
+
Version 2.0
7
+
8
+
The primary goals of this format is to allow a simple XML format
9
+
that is mostly human readable. The generation and parsing of the
10
+
various data types are done through the TypeConverter classes
11
+
associated with the data types.
12
+
13
+
Example:
14
+
15
+
... ado.net/XML headers & schema ...
16
+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17
+
<resheader name="version">2.0</resheader>
18
+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24
+
</data>
25
+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
+
<comment>This is a comment</comment>
28
+
</data>
29
+
30
+
There are any number of "resheader" rows that contain simple
31
+
name/value pairs.
32
+
33
+
Each data row contains a name, and value. The row also contains a
34
+
type or mimetype. Type corresponds to a .NET class that support
35
+
text/value conversion through the TypeConverter architecture.
36
+
Classes that don't support this are serialized and stored with the
37
+
mimetype set.
38
+
39
+
The mimetype is used for serialized objects, and tells the
40
+
ResXResourceReader how to depersist the object. This is currently not
41
+
extensible. For a given mimetype the value must be set accordingly:
42
+
43
+
Note - application/x-microsoft.net.object.binary.base64 is the format
44
+
that the ResXResourceWriter will generate, however the reader can
45
+
read any of the formats listed below.
46
+
47
+
mimetype: application/x-microsoft.net.object.binary.base64
48
+
value : The object must be serialized with
49
+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
+
: and then encoded with base64 encoding.
51
+
52
+
mimetype: application/x-microsoft.net.object.soap.base64
53
+
value : The object must be serialized with
54
+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
+
: and then encoded with base64 encoding.
56
+
57
+
mimetype: application/x-microsoft.net.object.bytearray.base64
58
+
value : The object must be serialized into a byte array
59
+
: using a System.ComponentModel.TypeConverter
60
+
: and then encoded with base64 encoding.
61
+
-->
62
+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
+
<xsd:element name="root" msdata:IsDataSet="true">
65
+
<xsd:complexType>
66
+
<xsd:choice maxOccurs="unbounded">
67
+
<xsd:element name="metadata">
68
+
<xsd:complexType>
69
+
<xsd:sequence>
70
+
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71
+
</xsd:sequence>
72
+
<xsd:attribute name="name" use="required" type="xsd:string" />
73
+
<xsd:attribute name="type" type="xsd:string" />
74
+
<xsd:attribute name="mimetype" type="xsd:string" />
75
+
<xsd:attribute ref="xml:space" />
76
+
</xsd:complexType>
77
+
</xsd:element>
78
+
<xsd:element name="assembly">
79
+
<xsd:complexType>
80
+
<xsd:attribute name="alias" type="xsd:string" />
81
+
<xsd:attribute name="name" type="xsd:string" />
82
+
</xsd:complexType>
83
+
</xsd:element>
84
+
<xsd:element name="data">
85
+
<xsd:complexType>
86
+
<xsd:sequence>
87
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
+
</xsd:sequence>
90
+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
+
<xsd:attribute ref="xml:space" />
94
+
</xsd:complexType>
95
+
</xsd:element>
96
+
<xsd:element name="resheader">
97
+
<xsd:complexType>
98
+
<xsd:sequence>
99
+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
+
</xsd:sequence>
101
+
<xsd:attribute name="name" type="xsd:string" use="required" />
102
+
</xsd:complexType>
103
+
</xsd:element>
104
+
</xsd:choice>
105
+
</xsd:complexType>
106
+
</xsd:element>
107
+
</xsd:schema>
108
+
<resheader name="resmimetype">
109
+
<value>text/microsoft-resx</value>
110
+
</resheader>
111
+
<resheader name="version">
112
+
<value>2.0</value>
113
+
</resheader>
114
+
<resheader name="reader">
115
+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
+
</resheader>
117
+
<resheader name="writer">
118
+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
+
</resheader>
120
+
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121
+
<data name="GfWLCheck" type="System.Resources.ResXFileRef, System.Windows.Forms">
122
+
<value>..\Resources\GfWLUtilityCheck.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123
+
</data>
124
+
<data name="GfWLOld" type="System.Resources.ResXFileRef, System.Windows.Forms">
125
+
<value>..\Resources\GfWLUtilityOld.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126
+
</data>
127
+
<data name="GfWLUnknown" type="System.Resources.ResXFileRef, System.Windows.Forms">
128
+
<value>..\Resources\GfWLUtilityUnknown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
129
+
</data>
130
+
<data name="WLIDOld" type="System.Resources.ResXFileRef, System.Windows.Forms">
131
+
<value>..\Resources\WLIDOld.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
132
+
</data>
133
+
<data name="WLIDUnknown" type="System.Resources.ResXFileRef, System.Windows.Forms">
134
+
<value>..\Resources\WLIDUnknown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
135
+
</data>
136
+
</root>
+30
Properties/Settings.Designer.cs
+30
Properties/Settings.Designer.cs
···
1
+
//------------------------------------------------------------------------------
2
+
// <auto-generated>
3
+
// This code was generated by a tool.
4
+
// Runtime Version:4.0.30319.42000
5
+
//
6
+
// Changes to this file may cause incorrect behavior and will be lost if
7
+
// the code is regenerated.
8
+
// </auto-generated>
9
+
//------------------------------------------------------------------------------
10
+
11
+
namespace GfWLUtility.Properties
12
+
{
13
+
14
+
15
+
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16
+
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17
+
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18
+
{
19
+
20
+
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21
+
22
+
public static Settings Default
23
+
{
24
+
get
25
+
{
26
+
return defaultInstance;
27
+
}
28
+
}
29
+
}
30
+
}
+7
Properties/Settings.settings
+7
Properties/Settings.settings
+45
README.md
+45
README.md
···
1
+
# GfWL Utility
2
+
3
+
Work-in-progress highly incomplete utility for working with Games for Windows - LIVE.
4
+
5
+
This is incomplete. There will be bugs.
6
+
7
+
**Requires .NET Framework 3.5:**
8
+
9
+
* On Windows 8 and newer, you will get a prompt to install this if you do not have this.
10
+
* On Windows 7 when fully up-to-date, it should be included.
11
+
* On Windows XP and Vista, you will need to install [.NET Framework 3.5 SP1](https://dotnet.microsoft.com/en-us/download/dotnet-framework/net35-sp1) manually.
12
+
13
+
## Current Features:
14
+
15
+
- View saved product keys
16
+
- View some profile metadata (not everything, see TODO)
17
+
- View some game information (not everything, see TODO)
18
+
- Create a backup of all GfWL data including product keys and config sectors
19
+
- Adding/removing GfWL domains from hosts for speedups, or to block LIVE
20
+
- Install the latest or mostly-latest versions of GfWL components
21
+
- Xlive Runtime (3.5.92, *mildly outdated*)
22
+
- Latest Games for Windows Marketplace Client (3.5.67.0, latest)
23
+
- Windows Live ID Sign-In Assistant (6.500.3165.0, latest, on Windows XP, Vista and 7)
24
+
25
+
## TODO
26
+
27
+
Ordered roughly in order of what would be best to do first
28
+
29
+
- CAB extractor for installing 3.5.95.0 runtime
30
+
- Verify size/checksums after downloading
31
+
- Figure out AES-CBC encryption key (used by XeKeysUnObfuscate) for profile metadata
32
+
- I do not think this is the Xbox 360 Roamable Obfuscation Key but there is a small chance it is
33
+
- Error handling everywhere
34
+
- Parsing for getting the game name and icon
35
+
- Ability to manage/clear per-game configs
36
+
- Downloading from other mirrors if a file is unavailable
37
+
- Support data importing from the data backups
38
+
- Other useful stuff
39
+
- Key/PCID trick?
40
+
41
+
## Shoutouts
42
+
43
+
* [Legacy Update](https://legacyupdate.net) for providing mirrors for some assets
44
+
* [Free60 Wiki](https://free60.org/)
45
+
* [NeKzor's Xlive reversing from Tron Evolution](https://github.com/NeKzor/tem/blob/master/doc/src/reversed/xlive.md)
Resources/GfWLUtilityCheck.png
Resources/GfWLUtilityCheck.png
This is a binary file and will not be displayed.
Resources/GfWLUtilityOld.png
Resources/GfWLUtilityOld.png
This is a binary file and will not be displayed.
Resources/GfWLUtilityUnknown.png
Resources/GfWLUtilityUnknown.png
This is a binary file and will not be displayed.
Resources/WLIDOld.png
Resources/WLIDOld.png
This is a binary file and will not be displayed.
Resources/WLIDUnknown.png
Resources/WLIDUnknown.png
This is a binary file and will not be displayed.
+119
TitleManager.cs
+119
TitleManager.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Drawing;
4
+
using System.IO;
5
+
using System.Linq;
6
+
using System.Reflection;
7
+
using System.Security.Cryptography;
8
+
using System.Text;
9
+
10
+
namespace GfWLUtility
11
+
{
12
+
internal class KnownTitle
13
+
{
14
+
public uint TitleID;
15
+
public string Name;
16
+
public string ProductKey;
17
+
public byte[] ConfigData;
18
+
public Bitmap Icon;
19
+
20
+
public KnownTitle(uint titleID)
21
+
{
22
+
TitleID = titleID;
23
+
}
24
+
25
+
public override string ToString()
26
+
{
27
+
if (Name != null)
28
+
return Name;
29
+
return $"{TitleID:X8} (Unknown)";
30
+
}
31
+
}
32
+
33
+
internal class TitleManager
34
+
{
35
+
public static Dictionary<uint, KnownTitle> KnownTitles = new Dictionary<uint, KnownTitle>();
36
+
37
+
public static void FoundTitleExists(uint titleID)
38
+
{
39
+
if (!KnownTitles.ContainsKey(titleID))
40
+
KnownTitles[titleID] = new KnownTitle(titleID);
41
+
}
42
+
43
+
public static void FoundTitleName(uint titleID, string name)
44
+
{
45
+
FoundTitleExists(titleID);
46
+
KnownTitles[titleID].Name = name;
47
+
}
48
+
49
+
public static string GetTitleProductKey(uint titleID)
50
+
{
51
+
if (KnownTitles.ContainsKey(titleID))
52
+
{
53
+
// if we already fetched the product key, don't try to fetch it again
54
+
if (KnownTitles[titleID].ProductKey != null)
55
+
return KnownTitles[titleID].ProductKey;
56
+
57
+
string rawTokenPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
58
+
$"Microsoft\\Xlive\\Titles\\{titleID:X8}\\Token.bin");
59
+
if (File.Exists(rawTokenPath)) {
60
+
byte[] tokenBytes = File.ReadAllBytes(rawTokenPath);
61
+
// first 32-bits are a size, we can ignore that
62
+
byte[] rawTokenBytes = tokenBytes.Skip(4).ToArray();
63
+
// try to decrypt it, if we fail just assume the key is a dud
64
+
try
65
+
{
66
+
byte[] unprotectedBytes = ProtectedData.Unprotect(rawTokenBytes, null, DataProtectionScope.CurrentUser);
67
+
string productKey = Encoding.UTF8.GetString(unprotectedBytes);
68
+
KnownTitles[titleID].ProductKey = productKey;
69
+
return productKey;
70
+
} catch (Exception e)
71
+
{
72
+
return null;
73
+
}
74
+
}
75
+
}
76
+
return null;
77
+
}
78
+
79
+
public static byte[] GetConfigSector(uint titleID, int sectorID)
80
+
{
81
+
if (KnownTitles.ContainsKey(titleID))
82
+
{
83
+
string configPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
84
+
$"Microsoft\\Xlive\\Titles\\{titleID:X8}\\config.bin");
85
+
byte[] configData = null;
86
+
if (KnownTitles[titleID].ConfigData == null)
87
+
{
88
+
if (File.Exists(configPath))
89
+
KnownTitles[titleID].ConfigData = File.ReadAllBytes(configPath);
90
+
else
91
+
return null;
92
+
}
93
+
configData = KnownTitles[titleID].ConfigData;
94
+
95
+
int sectorStart = sectorID * 0x400;
96
+
// make sure the sector isn't empty
97
+
if (configData[sectorStart] != 0x00)
98
+
{
99
+
// copy it into a buffer and unprotect it
100
+
byte[] sector = new byte[0x400];
101
+
Buffer.BlockCopy(configData, sectorStart, sector, 0, 0x400);
102
+
// try to decrypt it, if we fail just assume the sector doesn't exist
103
+
try
104
+
{
105
+
byte[] unprotectedSector = ProtectedData.Unprotect(sector, null, DataProtectionScope.CurrentUser);
106
+
return unprotectedSector;
107
+
} catch (Exception e)
108
+
{
109
+
return null;
110
+
}
111
+
} else
112
+
{
113
+
return null;
114
+
}
115
+
}
116
+
return null;
117
+
}
118
+
}
119
+
}
+46
UserManager.cs
+46
UserManager.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Drawing;
4
+
using System.Linq;
5
+
using System.Text;
6
+
7
+
namespace GfWLUtility
8
+
{
9
+
internal class KnownUser
10
+
{
11
+
public ulong XUID;
12
+
public string Gamertag;
13
+
public bool LiveEnabled;
14
+
public ulong OnlineXUID;
15
+
public Bitmap ProfilePicture;
16
+
17
+
public KnownUser(ulong xuid)
18
+
{
19
+
XUID = xuid;
20
+
}
21
+
22
+
public override string ToString()
23
+
{
24
+
if (Gamertag != null)
25
+
return Gamertag;
26
+
return $"{XUID:X}";
27
+
}
28
+
}
29
+
30
+
internal class UserManager
31
+
{
32
+
public static Dictionary<ulong, KnownUser> KnownUsers = new Dictionary<ulong, KnownUser>();
33
+
34
+
public static void FoundUserExists(ulong xuid)
35
+
{
36
+
if (!KnownUsers.ContainsKey(xuid))
37
+
KnownUsers[xuid] = new KnownUser(xuid);
38
+
}
39
+
40
+
public static void FoundUserGamertag(ulong xuid, string name)
41
+
{
42
+
FoundUserExists(xuid);
43
+
KnownUsers[xuid].Gamertag = name;
44
+
}
45
+
}
46
+
}
+111
UtilityFuncs.cs
+111
UtilityFuncs.cs
···
1
+
using System;
2
+
using System.Collections.Generic;
3
+
using System.Diagnostics;
4
+
using System.Drawing;
5
+
using System.IO;
6
+
using System.Linq;
7
+
using System.Runtime.InteropServices;
8
+
using System.Text;
9
+
10
+
namespace GfWLUtility
11
+
{
12
+
internal class UtilityFuncs
13
+
{
14
+
15
+
[DllImport("shell32.dll", BestFitMapping = false, CharSet = CharSet.Auto, EntryPoint = "SHDefExtractIcon")]
16
+
public static extern int SHDefExtractIcon(string pszIconFile, int index, uint uFlags, ref IntPtr phiconLarge, ref IntPtr phiconSmall, uint nIconSize);
17
+
18
+
public static string CensorString(string str, int start, int end, int min_length)
19
+
{
20
+
if (str == null || str.Length < min_length) return str;
21
+
int x_fill = str.Length - start - end;
22
+
return str.Substring(0, start) + new string('x', x_fill) + str.Substring(str.Length - end, end);
23
+
}
24
+
25
+
// https://stackoverflow.com/a/58779
26
+
public static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target)
27
+
{
28
+
foreach (DirectoryInfo dir in source.GetDirectories())
29
+
CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name));
30
+
foreach (FileInfo file in source.GetFiles())
31
+
file.CopyTo(Path.Combine(target.FullName, file.Name));
32
+
}
33
+
34
+
public static string BytesToString(double bytes, int round = 2)
35
+
{
36
+
if (bytes > Math.Pow(1000, 4)) return $"{Math.Round(bytes / Math.Pow(1000, 4), round)} TB";
37
+
if (bytes > Math.Pow(1000, 3)) return $"{Math.Round(bytes / Math.Pow(1000, 3), round)} GB";
38
+
if (bytes > Math.Pow(1000, 2)) return $"{Math.Round(bytes / Math.Pow(1000, 2), round)} MB";
39
+
if (bytes > Math.Pow(1000, 1)) return $"{Math.Round(bytes / Math.Pow(1000, 1), round)} KB";
40
+
return $"{bytes} B";
41
+
}
42
+
43
+
public static int CountTrailingNulls(byte[] buf)
44
+
{
45
+
int i = buf.Length - 1;
46
+
while (buf[i] == 0 && i > 0)
47
+
--i;
48
+
return i;
49
+
}
50
+
51
+
public static Bitmap Get48x48Icon(string exe_path)
52
+
{
53
+
// get the icon from the shell
54
+
IntPtr hIconLarge = default;
55
+
IntPtr hIconSmall = default; // ignored?
56
+
if (SHDefExtractIcon(exe_path, 0, 0, ref hIconLarge, ref hIconSmall, 48) != 0)
57
+
return null;
58
+
59
+
// load the icon and convert it to a bitmap
60
+
Icon largeIcon = Icon.FromHandle(hIconLarge);
61
+
Bitmap largeBitmap = largeIcon.ToBitmap();
62
+
63
+
largeIcon.Dispose();
64
+
return largeBitmap;
65
+
}
66
+
67
+
public static string GetFormattedTitleID(uint titleID)
68
+
{
69
+
ushort gameNum = (ushort)(titleID & 0xFFFF);
70
+
char publisher1 = (char)(titleID >> 24);
71
+
char publisher2 = (char)((titleID >> 16) & 0xFF);
72
+
return publisher1.ToString() + publisher2.ToString() + "-" + gameNum.ToString();
73
+
}
74
+
75
+
public static Version GetProductVersion(string exe_path)
76
+
{
77
+
FileVersionInfo info = FileVersionInfo.GetVersionInfo(exe_path);
78
+
if (info == null) return null;
79
+
return new Version(info.ProductVersion);
80
+
}
81
+
82
+
public static bool IsWindowsModern()
83
+
{
84
+
// are we higher than Windows 8?
85
+
return Environment.OSVersion.Version.CompareTo(new Version("6.2")) >= 0;
86
+
}
87
+
88
+
public static bool IsWindowsXP()
89
+
{
90
+
// are we lower than Windows Vista?
91
+
return Environment.OSVersion.Version.CompareTo(new Version("6.0")) < 0;
92
+
}
93
+
94
+
[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
95
+
[return: MarshalAs(UnmanagedType.Bool)]
96
+
private static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool wow64Process);
97
+
98
+
public static bool IsWindows64Bit()
99
+
{
100
+
using (Process p = Process.GetCurrentProcess())
101
+
{
102
+
bool retVal;
103
+
if (!IsWow64Process(p.Handle, out retVal))
104
+
{
105
+
return false;
106
+
}
107
+
return retVal;
108
+
}
109
+
}
110
+
}
111
+
}
+43
app.manifest
+43
app.manifest
···
1
+
<?xml version="1.0" encoding="utf-8"?>
2
+
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
3
+
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
4
+
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5
+
<security>
6
+
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7
+
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
8
+
</requestedPrivileges>
9
+
</security>
10
+
</trustInfo>
11
+
12
+
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
13
+
<application>
14
+
<!-- Windows Vista -->
15
+
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
16
+
<!-- Windows 7 -->
17
+
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
18
+
<!-- Windows 8 -->
19
+
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
20
+
<!-- Windows 8.1 -->
21
+
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
22
+
<!-- Windows 10 -->
23
+
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
24
+
</application>
25
+
</compatibility>
26
+
27
+
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
28
+
<!--
29
+
<dependency>
30
+
<dependentAssembly>
31
+
<assemblyIdentity
32
+
type="win32"
33
+
name="Microsoft.Windows.Common-Controls"
34
+
version="6.0.0.0"
35
+
processorArchitecture="*"
36
+
publicKeyToken="6595b64144ccf1df"
37
+
language="*"
38
+
/>
39
+
</dependentAssembly>
40
+
</dependency>
41
+
-->
42
+
43
+
</assembly>