作为一名四国军旗的爱好者,军旗也陪伴我一起度过了许多时间,让我不至过于无聊、郁闷。。也因此对她产生了不一般的感情。。于是乎有了下面的进一步接触过程(研究写刷分软件)。。。
效果图:
一、数据准备
QQ四国军旗刷分外挂数据准备
——BlackSnake 2011.06.19
1. 游戏版本号:(进入游戏时的窗口标题)
QQ游戏-四国军旗角色版 2.1 Beta06 Build020
2. QQ号地址:(用CE内存查看器获得)
004C7BE0 或00494520
3. 座位号内存地址:(用CE内存查看器获得)
004C7BEC 或00C54579 (下(蓝)、左(绿)、上(紫)、右(黄) 分别对应0、1、2、3)
4. 从棋盘布局文件分析得各子的代码(16进制):(用二进制编辑工具UltraEdit)
军旗: 02 地雷: 03 炸弹: 04 司令: 05 军长: 06 师长: 07 旅长: 08 团长: 09
营长: 0A 连长:0B 排长:0C 工兵:0D 军营: 00
5. 分析得到棋盘是17*17的数组(行列最小最大值及每格棋子的间距)(借助SPY++工具)
xMin:200, xMax: 840, xsep:40
ymin:70 , yMax: 710 ,ystep:40
6. 各按钮位置:(借助SPY++工具)
开局:xPos:863,yPos:607; Lparam:x025F035F
投降:XPos:856,yPos:659; LParam:x02930358
7. 重复下棋的位置测定:
(初测每格差 40 相素)
棋子第一格的位置: xPos:428,yPos:498; 左上营:xPos:470,yPos:539;
第一格的上一格:xPos:431,yPos:462 上格的左边格:xPos:391,yPos:459;
第二格:xPos:436,yPos:502
第三格:xPos:434,yPos:540
第四格:xPos:432,yPos:581
8. 下棋的步数地址(用来控制30步以上即可投降):(用CE内存查看器获得)
$004C7C30
9. 计时器地址(可以确定轮到谁下棋):(用CE内存查看器获得)
$00494D40
10. 投降时产生的窗口(是一级窗口),其中的投降待确认提示文本:您确定要投降吗?
11. 投降后产生的窗口(是游戏窗口的子窗口),投降后提示文本:投降,全军覆没
二、原代码(因为以前写过老版本的,所以就先套下来了,试了下能用,就先贴上来)
——望路过的大哥多指点一二!!!
//工程文件
1 program pMain;
2
3 uses
4 Forms,
5 uMain in \'uMain.pas\' {frmMain},
6 uCustomProc in \'uCustomProc.pas\',
7 uHelp in \'uHelp.pas\' {frmHelp},
8 uRegister in \'uRegister.pas\' {frmRegister};
9
10 {$R *.res}
11
12 begin
13 Application.Initialize;
14 fInst := ExistsInst;
15 Application.Title := \'QQ四国军旗刷分器\';
16 Application.CreateForm(TfrmMain, frmMain);
17 Application.Run;
18 end.
//主单元文件
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, Registry;
type
TfrmMain = class(TForm)
Label1: TLabel;
edtDir: TEdit;
btnAutoPlay: TButton;
cbbWinner: TComboBox;
cbAutoContinuous: TCheckBox;
cbHide: TCheckBox;
pnlTitle: TPanel;
cbSmart: TCheckBox;
odSetDir: TOpenDialog;
sbSetDir: TSpeedButton;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
rgModel: TRadioGroup;
Label2: TLabel;
cbbLoser: TComboBox;
btnExit: TButton;
cbAddSpeed: TCheckBox;
bbtnHelp: TBitBtn;
Image1: TImage;
sbRegister: TStatusBar;
bbtnRegister: TBitBtn;
procedure bbtnHelpClick(Sender: TObject);
procedure bbtnRegisterClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnAutoPlayClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure cbAddSpeedClick(Sender: TObject);
procedure cbAutoContinuousClick(Sender: TObject);
procedure cbbLoserDropDown(Sender: TObject);
procedure cbbLoserKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure cbbLoserKeyPress(Sender: TObject; var Key: Char);
procedure cbbWinnerDropDown(Sender: TObject);
procedure cbbWinnerKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure cbbWinnerKeyPress(Sender: TObject; var Key: Char);
procedure cbHideClick(Sender: TObject);
procedure cbSmartClick(Sender: TObject);
procedure rgModelClick(Sender: TObject);
procedure sbSetDirClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
hThread1, hThread2: THandle;
bVerfyed : Boolean;
WinnerQQ, LoserQQ: Int64;
implementation
{$R *.dfm}
uses uCustomProc, uHelp, uRegister;
{线程入口函数}
function MyThreadFun(p: Pointer): DWORD; stdcall;
begin
cTimes1 := 0; //控制两组下棋速度的同步
cTimes2 := 0;
if Integer(p) = 1 then
begin
while True do
begin
Inc(cTimes1);
AutoPlay(1);
if ChessFlag = False then Break;
if Length(hChess) = 4 then
begin
if cTimes1 - cTimes2 >= 2 then
Sleep(1000);
end;
end;
end else
if Integer(p) = 2 then
begin
while True do
begin
Inc(cTimes1);
SmartPlay(hChess[0],hChess[1],0);
if ChessFlag = False then Break; //控制是否连续刷分
if Length(hChess) = 4 then
begin
if cTimes1 - cTimes2 >= 2 then
Sleep(1000);
end;
end;
end else
if Integer(p) = 11 then
begin
while True do
begin
Inc(cTimes2);
AutoPlay(2);
if ChessFlag = False then Break; //控制是否连续刷分
if Length(hChess) = 4 then
begin
if cTimes2 - cTimes1 >= 2 then
Sleep(1000);
end;
end;
end else
if Integer(p) = 22 then
begin
while True do
begin
Inc(cTimes2);
SmartPlay(hChess[2],hChess[3],1);
if ChessFlag = False then Break;
if Length(hChess) = 4 then
begin
if cTimes2 - cTimes1 >= 2 then
Sleep(1000);
end;
end;
end;
//恢复设置
frmmain.btnAutoPlay.Enabled := True;
frmMain.cbbWinner.Enabled := True;
frmMain.cbbWinner.Text := \'\';
frmMain.cbSmart.Enabled := True;
frmMain.rgModel.Enabled := True;
if frmMain.rgModel.ItemIndex = 1 then frmMain.cbbLoser.Enabled := True;
Result := 0;
if (Integer(p) <= 2 ) then CloseHandle(hThread1);
if (Integer(p) >= 11) then CloseHandle(hThread2);
end;
procedure TfrmMain.bbtnHelpClick(Sender: TObject);
begin
with TfrmHelp.Create(nil) do
try
ShowModal;
finally
free;
end;
end;
procedure TfrmMain.bbtnRegisterClick(Sender: TObject);
begin
with TfrmRegister.Create(nil) do
try
bVerfyed := (ShowModal = 1);
if bVerfyed then
begin
sbRegister.Panels[0].Text := \'已注册,可使用全部功能\';
cbSmart.Enabled := True;
cbAddSpeed.Enabled := True;
cbAutoContinuous.Enabled := True;
cbHide.Enabled := True;
bbtnRegister.Enabled := False;
end;
finally
free;
end;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
CloseHandle(hThread1);
CloseHandle(hThread2);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
var
reg: TRegistry;
sUser, sPsw : string;
begin
bVerfyed := False;
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey(\'\Software\ShiGuoSF\',True);
sUser := reg.ReadString(\'user\');
sPsw := reg.ReadString(\'password\');
finally
reg.CloseKey;
reg.Free;
end;
if (Length(Trim(sUser)) <> 8) or (Length(Trim(sPsw)) <> 16) then bVerfyed := False
else if Encrypt(sUser) = Trim(sPsw) then bVerfyed := True;
//设置状态栏
if not bVerfyed then
begin
sbRegister.Panels[0].Text := \'未注册,功能受限...\';
cbSmart.Enabled := False;
cbAddSpeed.Enabled := False;
cbAutoContinuous.Enabled := False;
cbHide.Enabled := False;
end else
begin
sbRegister.Panels[0].Text := \'已注册,可使用全部功能\';
cbSmart.Enabled := True;
cbAddSpeed.Enabled := True;
cbAutoContinuous.Enabled := True;
cbHide.Enabled := True;
bbtnRegister.Enabled := False;
end;
sbRegister.Panels[1].Text := \' 作者:BlackSnake\';
SendMessage(Handle, MB_TOPMOST, 0, 0);
cbbWinner.Style := csDropDown;
edtDir.Enabled := False;
sbSetDir.Enabled := False;
cbbLoser.Enabled := False;
fSpeed := False;
//初始化是否存在已运行实例
if fInst then GetHwnd(Handle);
end;
procedure TfrmMain.btnAutoPlayClick(Sender: TObject);
var
ID: DWORD;
begin
if rgModel.ItemIndex = 0 then
begin
if cbbWinner.Text = \'\' then
begin
ShowMessage(\'请选择要赢分的QQ号后再继续!\');
Exit;
end;
end else
if (cbbWinner.Text = \'\') or (cbbLoser.Text = \'\') then
begin
ShowMessage(\'请设置好输赢分的QQ号后再继续!\');
Exit;
end;
WinnerQQ := StrToInt64(cbbWinner.Text);
cbbWinner.Enabled := False;
//键状态设置
if rgModel.ItemIndex = 1 then
begin
LoserQQ := StrtoInt64(cbbLoser.Text);
cbbLoser.Enabled := False;
end;
rgModel.Enabled := false;
cbSmart.Enabled := False;
btnAutoPlay.Enabled := False;
fPause := false;
if cbAutoContinuous.Checked then Chessflag := True else ChessFlag := False;
//确定每个游戏窗口句柄
EnsureHwnd(WinnerQQ, LoserQQ);
//单组两人游戏
if rgModel.ItemIndex = 0 then
begin
if not cbSmart.Checked then hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(1), 0, ID)
else hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(2), 0, ID);
end else
begin
if not cbSmart.Checked then
begin
hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(1), 0, ID);
Sleep(1500);
hThread2 := CreateThread(nil, 0, @MyThreadFun, Ptr(11), 0, ID);
end else
begin
hThread1 := CreateThread(nil, 0, @MyThreadFun, Ptr(2), 0, ID);
Sleep(1500);
hThread2 := CreateThread(nil, 0, @MyThreadFun, Ptr(22), 0, ID);
end;
end;
end;
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.cbAddSpeedClick(Sender: TObject);
begin
fSpeed := cbAddSpeed.Checked;
end;
{测试按钮2}
procedure TfrmMain.cbAutoContinuousClick(Sender: TObject);
begin
ChessFlag := cbAutoContinuous.Checked;
end;
procedure TfrmMain.cbbLoserDropDown(Sender: TObject);
var
id, i : Byte;
dwQQNum: Cardinal;
begin
if cbbWinner.Text = \'\' then
begin
ShowMessage(\'请先设置赢分的QQ号!\');
Exit;
end;
if rgModel.ItemIndex = 0 then id := 2 else id := 4;
//初始化玩家
cbbLoser.Items.Clear;
for i := 0 to id-1 do
begin
GetNumber(hChess[i], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum));
cbbLoser.Items.Add(IntToStr(dwQQNum));
end;
end;
procedure TfrmMain.cbbLoserKeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if Key = $2E then Key := 0;
end;
procedure TfrmMain.cbbLoserKeyPress(Sender: TObject; var Key: Char);
begin
Key := #0;
end;
procedure TfrmMain.cbbWinnerDropDown(Sender: TObject);
var
i, id : Byte;
dwQQNum: Cardinal;
begin
if rgModel.ItemIndex = 0 then id := 2 else id := 4;
Prepare(handle, id);
if rgModel.ItemIndex = 0 then
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) then
begin
MessageBox(0, \'双方均须进入游戏后再开始!\', \'提示\', MB_OK);
Exit;
end;
end else
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) or (hChess[2] = 0) or (hChess[3] = 0) then
begin
MessageBox(0, \'两组双方均须进入游戏后再开始!\', \'提示\', MB_OK);
Exit;
end;
end;
//初始化玩家
cbbWinner.Items.Clear;
for i := 0 to id-1 do
begin
GetNumber(hChess[i], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum));
cbbWinner.Items.Add(IntToStr(dwQQNum));
end;
end;
procedure TfrmMain.cbbWinnerKeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if Key = $2E then Key := 0;
end;
procedure TfrmMain.cbbWinnerKeyPress(Sender: TObject; var Key: Char);
begin
Key := #0;
end;
procedure TfrmMain.cbHideClick(Sender: TObject);
var
i, id : Byte;
begin
if rgModel.ItemIndex = 0 then id := 2 else id:= 4;
if rgModel.ItemIndex = 0 then
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) then
begin
MessageBox(0, \'双方均须进入游戏后再开始!\', \'提示\', MB_OK);
Exit;
end;
end else
begin
//如果有一方为空,则提示双方均须进入游戏
if (hChess[0] = 0) or (hChess[1] = 0) or (hChess[2] = 0) or (hChess[3] = 0) then
begin
MessageBox(0, \'两组双方均须进入游戏后再开始!\', \'提示\', MB_OK);
Exit;
end;
end;
if cbHide.Checked then
begin
for i := 0 to id-1 do
begin
//SendMessage(hChess[i], WM_SYSCOMMAND, SC_MINIMIZE, 0);
ShowWindow(hChess[i], SW_HIDE);
end;
end else
begin
for i := 0 to id-1 do
begin
//SendMessage(hChess[i], WM_SYSCOMMAND, SC_RESTORE, 0);
ShowWindow(hChess[i], SW_SHOW);
end;
end;
end;
procedure TfrmMain.cbSmartClick(Sender: TObject);
begin
edtDir.Enabled := cbSmart.Checked;
sbSetDir.Enabled := cbSmart.Checked;
end;
procedure TfrmMain.rgModelClick(Sender: TObject);
begin
if not bVerfyed then rgModel.ItemIndex := 0;
if rgModel.ItemIndex = 0 then cbbLoser.Enabled := False else cbbLoser.Enabled := true;
end;
procedure TfrmMain.sbSetDirClick(Sender: TObject);
begin
if odSetDir.Execute then
begin
edtDir.Enabled := True;
edtDir.Text := odSetDir.FileName;
sFileName := odSetDir.FileName;
// edtDir.Text := ExtractFilePath(odSetDir.FileName);
edtDir.Enabled := False;
end;
end;
end.
//自定义过程文件
unit uCustomProc; interface uses Windows, Messages, SysUtils; procedure GetHWND(thewnd: HWND); function ExistsInst: Boolean; procedure Prepare(thewnd: HWND; id: Byte);//初始化游戏窗口句柄 procedure Start(h:HWND); procedure AutoClick(hGameWin: HWND; bFlag: Boolean); procedure AutoPlay(id: Byte); procedure PlayLastStep(h1,h2:HWND); procedure EnsureHwnd(Winner, Loser : Int64); procedure ClickStep(hGamewin: HWND); //点跳过,胜方不得分 function GetNumber(hGameWin: HWND; const lpBase: Pointer; pBuf: PDWORD; bSize: Cardinal): Boolean; function GetSpecificWnd(theWnd: HWND; sTip: string): HWND; //function GetChildWnd(theWnd: HWND; sTip: string): HWND; procedure SmartPlay(h1,h2: HWND; id: Byte);//根据复盘数据智能化下棋 procedure CustomPlay(h1,h2:HWND; id: Byte); procedure CustomClick(hGameWin: HWND; pt1,pt2: TPoint); procedure ReadChessFile(sFileName: string); function ConvertXY(hX, hY: Integer; t: Byte): TPoint; function ToXYPos(pt: TPoint): TPoint; procedure InputChess(h: HWND; parr: Pointer);//导入复盘数据 procedure SetXY(x, y: PByte; t: Byte);//布局易位时修改坐标 var hChess, hTmp: array of HWND; //两个人的游戏窗口句柄 ChessFlag, fSpeed, fPause, fInst: Boolean; countOrders, fCount, Steps, fid, cTimes1, cTimes2, cHwnd:Integer; bufPos: array of array of Byte; bufChess1, bufChess2: array[1..30] of Byte; pt3,pt4:TPoint; sFileName: string; const BaseAddrQQ = Pointer($004C7BE0); //qq号地址 BaseAddrTimer = Pointer($00494D40); //计时器地址 BaseAddrSetNum = Pointer($004C7BEC);//座位号地址 implementation function ExistsInst: Boolean; var h: HWND; begin Result := False; h := FindWindow(\'TfrmMain\', \'QQ四国军旗刷分器\'); if h <> 0 then Result := True; end; procedure GetHWND(thewnd: HWND); var i: Byte; h: HWND; buf: array[Byte] of Char; begin i := 0; h := GetWindow(thewnd, GW_HWNDFIRST); while h <> 0 do begin GetWindowText(h, buf, Length(buf)); if buf = \'四国军棋角色版\' then begin SetLength(hTmp, i + 1); hTmp[i] := h; Inc(i); end; h := GetWindow(h, GW_HWNDNEXT); end; cHwnd := i; end; procedure Prepare(thewnd: HWND; id: Byte); var founded: Boolean; i, j, k, sum: Byte; h: HWND; buf: array[Byte] of Char; arrTmp: array of HWND; begin SetLength(hChess, id); //取得 已开游戏句柄 hTmp[cHwnd] i := 0; h := GetWindow(thewnd, GW_HWNDFIRST); while h <> 0 do begin GetWindowText(h, buf, Length(buf)); if buf = \'四国军棋角色版\' then begin SetLength(arrTmp, i + 1); arrTmp[i] := h; Inc(i); end; h := GetWindow(h, GW_HWNDNEXT); end; sum := i; if (cHwnd + id) <> sum then begin if not fInst then begin MessageBox(0, \'请先运行游戏!\', \'出错提示\', 0); Exit; end else begin MessageBox(0, \'请先运行刷分器再运行游戏,并确保所开游戏客户端个数符合刷分要求!\', \'出错提示\', 0); Exit; end; end; //找出新开的游戏窗口句柄 k := 0; founded := false; if fInst = False then begin for i := 0 to id - 1 do hChess[i] := arrTmp[i]; end else begin for i := 0 to sum - 1 do begin for j := 0 to cHwnd - 1 do begin if arrTmp[i] = hTmp[j] then begin founded := True; Break; end; end; if not founded then begin hChess[k] := arrTmp[i]; Inc(k); founded := False; end; end; end; end; procedure EnsureHwnd(Winner, Loser : Int64); var i: integer; h: HWND; dwQQNum, dwTimer0,dwTimer1: Cardinal; begin if Length(hChess) = 4 then begin //如果是4个窗口,将相同号码的两个放在hChess[1]\hChess[2] for i := 0 to 3 do begin GetNumber(hChess[i], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum)); if Winner = dwQQNum then begin h := hChess[0]; hChess[0] := hChess[i]; hChess[i] := h; end else if Loser = dwQQNum then begin h := hChess[3]; hChess[3] := hChess[i]; hChess[i] := h; end; end; //确定两两组合 Start(hChess[0]); Sleep(100); Start(hChess[1]); Sleep(300); GetNumber(hChess[0], BaseAddrTimer, @dwTimer0, SizeOf(dwTimer0)); GetNumber(hChess[1], BaseAddrTimer, @dwTimer1, SizeOf(dwTimer1)); //如果没计时器信息,说明hChess[0]和hChess[1]不是同桌,需交换相同QQ号的句柄 ; if (dwTimer0 = 0) and (dwTimer1 = 0) then begin h := hChess[1]; hChess[1] := hChess[2]; hChess[2] := h; end; end else if Length(hChess)=2 then begin GetNumber(hChess[1], BASEADDRQQ, @dwQQNum, SizeOf(dwQQNum)); if Winner = dwQQNum then begin h := hChess[0]; hChess[0] := hChess[1]; hChess[1] := h; end; end else begin MessageBox(0, \'打开游戏客户端数不符!\', \'出错提示\', 0); Exit; end; end; procedure Start(h: HWND); begin //BringWindowToTop(h); EnableWindow(h, True); //摸拟鼠标点击 开始 SendMessage(h, WM_LBUTTONDOWN, 1, MakeLParam(863, 607)); SendMessage(h, WM_LBUTTONUP, 0, MakeLParam(863, 607)); end; procedure AutoClick(hGamewin: HWND; bFlag: Boolean); begin if bFlag then begin PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 500)); PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 500)); Sleep(100); PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 460)); PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 460)); end else begin PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 460)); PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 460)); Sleep(100); PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(430, 500)); PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(430, 500)); end; end; {********************************************************* ** 功能:实现双方自动下棋 ** ** 传入参数:赢分的玩家QQ号 ** ** ***********************************************************} procedure AutoPlay(id: Byte); var i: Byte; hGame: array[0..1] of HWND; dwTimer: Cardinal; begin //两组赋不同的句柄 if id = 1 then begin hGame[0] := hChess[0]; hGame[1] := hChess[1]; end else if id = 2 then begin hGame[0] := hChess[2]; hGame[1] := hChess[3]; end; //提示不保存时 xPos:= 547; yPos:= 457; PostMessage(hGame[0], WM_LBUTTONDOWN, 1, MakeLParam(540, 460)); PostMessage(hGame[0], WM_LBUTTONUP, 0, MakeLParam(540, 460)); PostMessage(hGame[1], WM_LBUTTONDOWN, 1, MakeLParam(540, 460)); PostMessage(hGame[1], WM_LBUTTONUP, 0, MakeLParam(540, 460)); Start(hGame[0]); Start(hGame[1]); Sleep(500); //如果不是hGame[0]先下,则跳过 GetNumber(hGame[0], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer = 0 then ClickStep(hGame[1]); Sleep(500); //自动下棋 i := 1; while i< 9 do begin AutoClick(hGame[0], True); while True do begin Sleep(200); dwTimer := 0; GetNumber(hGame[1], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer > 0 then Break; end; AutoClick(hGame[1], True); while True do begin Sleep(200); dwTimer := 0; GetNumber(hGame[0], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer > 0 then Break; end; AutoClick(hGame[0], False); while True do begin Sleep(200); dwTimer := 0; GetNumber(hGame[1], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer > 0 then Break; end; AutoClick(hGame[1], False); while True do begin Sleep(200); dwTimer := 0; GetNumber(hGame[0], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer > 0 then Break; end; Inc(i); end; //最后一步 PlayLastStep(hGame[0], hGame[1]); end; procedure PlayLastStep(h1,h2:HWND); var //i : Byte; dwTimer: Cardinal; h, hBtn: HWND; hGame: array[0..1] of HWND; begin hGame[0]:= h1; hGame[1]:= h2; //最后一步 //i := 1; //hGame[0]赢分时 Sleep(200); clickstep(hGame[0]); Sleep(500); dwTimer := 0; while True do begin Sleep(1000); GetNumber(hGame[1], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer > 0 then Break; end; //hGame[1]点击投降 PostMessage(hGame[1], WM_LBUTTONDOWN, 1, MakeLParam(856, 659)); PostMessage(hGame[1], WM_LBUTTONUP, 0, MakeLParam(856, 659)); Sleep(300); //投降确认 h := GetspecificWnd(hGame[0], \'要投降吗\'); //文本提示的窗口句柄 hBtn := FindWindowEx(h, 0, \'Button\', nil); //右上角关闭按钮 hBtn := FindWindowEx(h, hBtn, \'Button\', nil); //确定按钮 PostMessage(hBtn, BM_CLICK, 0, 0); Sleep(600); //全军覆没确认 h := GetspecificWnd(hGame[0], \'投降,全军覆没\'); if h = 0 then h := GetspecificWnd(hGame[0], \'投降,全军覆没\'); hBtn := FindWindowEx(h, 0, \'Button\', nil); //确定按钮 hBtn := FindWindowEx(h, hBtn, \'Button\', nil); PostMessage(hBtn, BM_CLICK, 0, 0); Sleep(500); //提示不保存时 xPos:= 547; yPos:= 457; h := GetspecificWnd(hGame[0], \'是否需要保存\'); if h <> 0 then begin hBtn := FindWindowEx(h, 0, \'Button\', nil); //确定按钮 hBtn := FindWindowEx(h, hBtn, \'Button\', nil); PostMessage(hBtn, BM_CLICK, 0, 0); end; h := GetspecificWnd(hGame[1], \'是否需要保存\'); if h <> 0 then begin hBtn := FindWindowEx(h, 0, \'Button\', nil); //确定按钮 hBtn := FindWindowEx(h, hBtn, \'Button\', nil); PostMessage(hBtn, BM_CLICK, 0, 0); end; Sleep(100); PostMessage(hGame[0], WM_LBUTTONDOWN, 1, MakeLParam(540, 460)); PostMessage(hGame[0], WM_LBUTTONUP, 0, MakeLParam(540, 460)); Sleep(100); PostMessage(hGame[1], WM_LBUTTONDOWN, 1, MakeLParam(540, 460)); PostMessage(hGame[1], WM_LBUTTONUP, 0, MakeLParam(540, 460)); //Sleep(800); end; {据复盘数据下棋} procedure SmartPlay(h1,h2: HWND; id: Byte); var dwSitNum: Cardinal; hGame: array[0..1] of HWND; begin hGame[0] := h1; hGame[1] := h2; //分析复盘数据 文件名如T-1-3,意思为第1位先下,第3位赢 ReadChessFile(sFileName); //读入布局数据 GetNumber(hGame[0], BaseAddrSetNum, @dwSitNum, SizeOf(dwSitNum)); //右,下,左,上的座位分别对应0,1,2,3 if dwSitNum in [0, 3] then begin InputChess(hGame[0], @bufChess1); end else InputChess(hGame[0], @bufChess2); GetNumber(hGame[1], BaseAddrSetNum, @dwSitNum, SizeOf(dwSitNum)); //右,下,左,上的座位分别对应0,1,2,3 if dwSitNum in [0, 3] then begin InputChess(hGame[1], @bufChess1); end else InputChess(hGame[1], @bufChess2); Sleep(100); //开始 start(hGame[0]); Start(hGame[1]); Sleep(500); CustomPlay(hGame[0],hGame[1], id); end; procedure CustomPlay(h1,h2:HWND; id: Byte); var i, j : Integer; pt1, pt2: TPoint; dwTimer, dwSitNum1, dwSitNum2: Cardinal; hGame: array[0..1] of HWND; hTmp : HWND; PosXY : array of array of array of Byte; begin Randomize; hGame[0]:= h1; hGame[1]:= h2; //查座位方位 //右,下,左,上的座位分别对应0,1,2,3 GetNumber(hGame[0], BaseAddrSetNum, @dwSitNum1, SizeOf(dwSitNum1)); GetNumber(hGame[1], BaseAddrSetNum, @dwSitNum2, SizeOf(dwSitNum2)); //如果是hGame[1]先下,则交换两个句柄 if dwSitNum1 in [1,2] then begin hTmp := hGame[0]; hGame[0] := hGame[1]; hGame[1] := hTmp; GetNumber(hGame[0], BaseAddrSetNum, @dwSitNum1, SizeOf(dwSitNum1)); GetNumber(hGame[1], BaseAddrSetNum, @dwSitNum2, SizeOf(dwSitNum2)); end; SetLength(PosXY, 2, countOrders, 6); for i := 0 to countOrders - 1 do begin for j := 0 to 5 do begin PosXY[0][i,j] := bufPos[i,j]; PosXY[1][i,j] := bufPos[i,j]; end; end; //确保是偶数步,便于最后的判断 if Odd(countOrders) then Dec(countOrders); //如果加速,则定为30步 if fSpeed then Steps := 30 else Steps := countOrders; //布局易位时,需转换起止坐标 if (dwSitNum1 in [1,3]) and (fid = 0) or (dwSitNum1 in [0,2]) and (fid = 1) then begin for i := 0 to Steps - 1 do begin SetXY(@PosXY[id][i,2], @PosXY[id][i,3], fid); SetXY(@PosXY[id][i,4], @PosXY[id][i,5], fid); end; end; //开始循环 for i := 0 to Steps - 1 do begin if Odd(i) then j := 1 else j := 0; if bufPos[i,1]=$5F then begin //摸拟点起终两点 if j = 0 then begin pt1 := ConvertXY(PosXY[id][i,2], PosXY[id][i,3], dwSitNum1); pt2 := ConvertXY(PosXY[id][i,4], PosXY[id][i,5], dwSitNum1); end else begin pt1 := ConvertXY(PosXY[id][i,2], PosXY[id][i,3], dwSitNum2); pt2 := ConvertXY(PosXY[id][i,4], PosXY[id][i,5], dwSitNum2); end; //转为像素坐标 pt1 := ToXYPos(pt1); pt2 := ToXYPos(pt2); Sleep(1000+Random(4000)); CustomClick(hGame[j], pt1, pt2); end else begin //点跳过 Sleep(1000); clickstep(hGame[j]); end; //据计时器判断是否要继续的“死循环” while True do begin Sleep(100); dwTimer := 0; GetNumber(hGame[1-j], BaseAddrTimer, @dwTimer, SizeOf(dwTimer)); if dwTimer > 0 then Break; end; end; //最后一步 PlayLastStep(h1,h2); end; procedure CustomClick(hGameWin: HWND; pt1,pt2: TPoint); begin PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(pt1.X, pt1.Y)); PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(pt1.X, pt1.Y)); PostMessage(hGameWin, WM_LBUTTONDOWN, 1, MakeLParam(pt2.X, pt2.Y)); PostMessage(hGameWin, WM_LBUTTONUP, 1, MakeLParam(pt2.X, pt2.Y)); end; {--------------读文件 //根据复盘文件读入相关数据 //文件前28H字节为文件头;接下来4个玩家信息(从开始下的一方始顺时针存储),每个58H //字节(前14H为用户名,接下来1E字节为布局) //再下来是执行指令,每10字节为一组(其中第3字节为起始行列,第4字节为目的行列—— //以先保存的玩家方位开始计算,10H*10H数组) //棋盘布局文件数据 Char[30] //执行指令 5F 开始的10字节,控制(程序)指令F5开始 在19Ch(412)字节后开始 结 //尾1Ch(28)字节是系统或保留的 --------------------------} procedure ReadChessFile(sFileName: string); var f: file; buf1,buf2,buf3,buf4: array[1..30] of Byte; bufOrder: array of array of Byte; i, fsize: integer; begin try AssignFile(f, sFileName); Reset(f,1); fsize := FileSize(f); fsize := fsize - 412 - 28; countOrders := fsize div 10; if countOrders < 31 then begin MessageBox(0, \'步数小于指定步数,请重试!\', \'提示\', Mb_Ok); Exit; end; //读棋盘布局 Seek(f,40+20+88*0); BlockRead(f, buf1, 30); if buf1[1] <> 0 then begin fid := 0; //0-2位对战 左右位 for i := 1 to 30 do bufchess1[i] := buf1[i]; //读对方布阵 即左位 Seek(f,40+20+88*2); BlockRead(f, buf3, 30); if buf3[1] <> 0 then begin for i := 1 to 30 do bufchess2[i] := buf3[i]; end else begin MessageBox(0, \'复盘数据有误!\', \'提示\', mb_ok); exit; end; end else begin Seek(f,40+20+88*1); BlockRead(f, buf2, 30); if buf2[1] <> 0 then begin fid := 1; //1-3位对战 上下位 for i := 1 to 30 do bufchess2[i] := buf2[i]; //读对方布阵,即上位 Seek(f,40+20+88*3); BlockRead(f, buf4, 30); if buf4[1] <> 0 then begin for i := 1 to 30 do bufchess1[i] := buf4[i]; end else begin MessageBox(0, \'复盘数据有误!\', \'提示\', mb_ok); exit; end; end; end; //读指令 SetLength(bufOrder, countOrders, 10); Seek(f, 412); for i := 0 to countOrders-1 do begin BlockRead(f, bufOrder[i, 0], 10); end; //从指令序数组中读出需要的,指令头,起始和目的行列 SetLength(bufPos, countOrders, 6); for i := 0 to countOrders-1 do begin bufPos[i, 0] := i + 1; //步数 bufPos[i, 1] := bufOrder[i, 0]; //系统 bufPos[i, 2] := bufOrder[i, 2]; //起始X bufPos[i, 3] := bufOrder[i, 3]; //起始y bufPos[i, 4] := bufOrder[i, 4]; //终点x bufPos[i, 5] := bufOrder[i, 5]; //终点y end; finally CloseFile(f); end; end; procedure InputChess(h: HWND; parr: Pointer); var pid, dwRead: Cardinal; hProcess: THandle; begin GetWindowThreadProcessId(h, @pid); hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, pid); WriteProcessMemory(hProcess, Pointer(Integer(BaseAddrSetNum)+4), parr, 30, dwRead); CloseHandle(hProcess); end; function ConvertXY(hX, hY: Integer; t: Byte): TPoint; begin //保存的复盘,棋子定位均是以紫方(上座-3位)为基准来定位的的 //(从右往左0-16,从下往上0-16) //转到0位 if t = 0 then begin Result.X := 16 - hY; Result.Y := hX; end else if t = 1 then begin //转到1位 //转到2位 Result.X := hX; Result.Y := hY; end else if t = 2 then begin //转到2位 Result.X := hY; Result.Y := 16 - hX; end else begin //转到3位 Result.X := 16 - hX; Result.Y := 16 - hY; end; { // id 为坐位标识,留着待用 //下面仅考虑任何两人复盘 转到2-4位(即上下位)下棋时的情况 if fid = 0 then begin if id=0 then begin //1-3改坐2-4先后不易位时 //1转到2 ;1转到4 Result.X := 16 - hY; Result.Y := hX; end else begin Result.X := hY; Result.Y := 16 - hX; end; end else begin if id=0 then begin Result.X := 16 - hx; Result.Y := 16 - hY; end else begin Result.X := hX; Result.y := hY; end; end; } end; function ToXYPos(pt: TPoint): TPoint; begin Result.X := 200 + 39*pt.x; Result.Y := 70 + 39*pt.y; end; {点跳过,胜方不得分} procedure ClickStep(hGamewin: HWND); begin PostMessage(hGamewin, WM_LBUTTONDOWN, 1, MakeLParam(850, 585)); PostMessage(hGamewin, WM_LBUTTONUP, 0, MakeLParam(850, 585)); end; function GetNumber(hGameWin: HWND; const lpBase: Pointer; pBuf: PDWORD; bSize: Cardinal): Boolean; var pid, dwRead: Cardinal; hProcess: THandle; begin GetWindowThreadProcessId(hGameWin, @pid); hProcess := OpenProcess(PROCESS_VM_READ, False, pid); ReadProcessMemory(hProcess, lpBase, pBuf, bSize, dwRead); CloseHandle(hProcess); Result := (pBuf^ <> 0); end; function GetSpecificWnd(theWnd: HWND; sTip: string): HWND; var h, hChild: HWND; buf: array[Byte] of Char; begin Result := 0; h := GetWindow(theWnd, GW_HWNDFIRST); while h <> 0 do begin hChild := FindWindowEx(h, 0, \'Static\', nil); GetWindowText(hChild, buf, Length(buf)); if Pos(sTip, buf) > 0 then begin Result := h; Exit; end; h := GetWindow(h, GW_HWNDNEXT); end; end; procedure SetXY(x, y: PByte; t: Byte); var i : integer; begin if t = 0 then begin i := x^; x^ := y^; y^ := 16 - i; end else begin i := x^; x^ := 16 - y^; y^ := i; end; end; {function GetChildWnd(theWnd: HWND; sTip: string): HWND; var h, hChild: HWND; buf: array[Byte] of Char; begin Result := 0; h := GetWindow(theWnd, GW_CHILD); while h <> 0 do begin hChild := FindWindowEx(h, 0, \'Static\', nil); GetWindowText(hChild, buf, Length(buf)); if Pos(sTip, buf) > 0 then begin Result := h; Exit; end; h := GetWindow(h, GW_HWNDNEXT); end; end;} end.
//注册单元文件(只是为了功能完善,所以没用算法)
unit uRegister;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Registry;
type
TfrmRegister = class(TForm)
bbtnOK: TBitBtn;
Label1: TLabel;
Label2: TLabel;
edtUser: TEdit;
edtPsw: TEdit;
procedure bbtnOKClick(Sender: TObject);
procedure edtPswKeyPress(Sender: TObject; var Key: Char);
procedure edtUserKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function Encrypt(const s: string): string;
var
frmRegister: TfrmRegister;
implementation
{$R *.dfm}
procedure TfrmRegister.bbtnOKClick(Sender: TObject);
var
reg: TRegistry;
begin
//如果不符合验证条件则退出
if (Length(Trim(edtUser.Text)) <> 8) or (Length(Trim(edtPsw.Text)) <> 16) then
begin
ModalResult := mrCancel;
end;
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if Trim(edtPsw.Text) = Encrypt(Trim(edtUser.Text)) then
begin
if reg.OpenKey(\'\Software\ShiGuoSF\', True) then
begin
reg.WriteString(\'user\', Trim(edtUser.Text));
reg.WriteString(\'password\', Trim(edtPsw.Text));
ModalResult := mrOk;
end;
end;
finally
reg.CloseKey;
reg.Free;
end;
end;
procedure TfrmRegister.edtPswKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then bbtnOKClick(Self);
end;
procedure TfrmRegister.edtUserKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then bbtnOKClick(Self);
end;
procedure TfrmRegister.FormShow(Sender: TObject);
begin
edtUser.SetFocus;
end;
function Encrypt(const s: string): string;
var
i : Integer;
const ss = \'zjdygddg\';
begin
for i := 1 to Length(s) do
begin
Result := Result+ s[i] + ss[i];
end;
end;
end.
//帮助提示(用了一个默认窗口)
unit uHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TfrmHelp = class(TForm)
reHelp: TRichEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmHelp: TfrmHelp;
implementation
{$R *.dfm}
end.
//主窗体文件
object frmMain: TfrmMain Left = 433 Top = 150 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = \'QQ\'#22235#22269#20891#26071#21047#20998#22120\'1.1\' ClientHeight = 319 ClientWidth = 450 Color = clMoneyGreen Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = \'Tahoma\' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 3 Top = 91 Width = 124 Height = 13 Caption = #36873#25321#36194#20998#30340#29609#23478\'QQ\'#21495#65306 end object sbSetDir: TSpeedButton Left = 323 Top = 162 Width = 23 Height = 22 Caption = #23548#20837 Enabled = False Flat = True NumGlyphs = 2 OnClick = sbSetDirClick end object Bevel1: TBevel Left = 1 Top = 148 Width = 348 Height = 3 end object Bevel2: TBevel Left = 1 Top = 206 Width = 347 Height = 3 end object Bevel3: TBevel Left = 3 Top = 245 Width = 343 Height = 3 end object Label2: TLabel Left = 4 Top = 119 Width = 124 Height = 13 Caption = #36873#25321#36755#20998#30340#29609#23478\'QQ\'#21495#65306 end object Image1: TImage Left = 353 Top = 40 Width = 140 Height = 211 Picture.Data = { 07544269746D6170A2660000424DA26600000000000032040000280000004600 00005E010000010008000000000070620000120B0000120B0000FF000000FF00 000000000000FFFFFF001C4B2F003A7C5600AAC6B6002C744C003C7455002358 3C002A634500357B550034755200316D4D003B7E5A0041805E004C8768004B7E 630046755C008AB39D003C6C5300538B6E0095B8A6002E765300448464003666 4E00588E73005D92780064967D006B99830076A38D00AECABC00B2CABE00EAF2 EE00E6EEEA00E2EAE600DEE6E2006D9F880080AA9600A5C3B5007CA69300739B 8A0085AC9C0095BBAB008BAD9F0092B4A600586B63009BB3A900BED3CA00BACF C6008DB2A3009BBBAE00C6DAD20039735D00829D9300A7BDB500CBDBD5002D7C 600092ACA300A3B4AE00478E7700A1BDB40093A6A000B5CBC400C2D4CE00DEEA E600DAE6E200D6E2DE00D2DEDA0095B5AB00ACC4BD0034856E005A776F00687E 7800A5C3BB009AB6AE0023715D00B6C6C200C6D6D200BECECA006CA89B008BA2 9D00B2C6C200BACECA006D8883001A675B00207A6B002B8B7C004296880074B4 A90083BAB10084A29D00579F950072908C0093C5BF00BAD6D300ADC6C30098AA A8005D868200587B7800A1C7C400C0CAC9003AA59E009EB8B600BEDAD8009DAE AD00BECFCE005AAEAA0088A7A600B2C7C6001B898800A9CFCE0047BCBD006CF0 F10078C2C2007799990023292900353D3D00A5BCBC00B9CFCF00B6CACA004D55 5500B0C2C200BACACA00B6C6C600C6D6D600C2D2D200CEDBDB00DAE6E600D6E2 E200D2DEDE00C7D2D200DAE2E200D6DEDE00D2DADA00E6EEEE00E2EAEA00DEE6 E600EAEEEE00E6EAEA00DEE2E200DADEDE00D6DADA00D2D6D6005CC9D0008FA3 A40014DAE9001B9FA8002CB0B9007F9FA200B8E6EA0091ACAE00A4B3B40019B7 C9008ACDD400A1D2D70037CDE100B0D6DB00C9E4E80061D3E8007CD4E40098B0 B40095D7E400ABBBBE00ACD8E300B1C2C600B6C6CA00BACACE00D6E6EA00AAB3 B500B7C0C200B4BCBE00BADAE300D1DEE20082959C009FAFB500C1D2D800C6D2 D600BECACE00CAD6DA00DAE6EA00CAD3D600BBC3C600C3CBCE008E949600E2E5 E600C5DCE500A5B4BA00B0BDC20073858D007C8C930094A4AB00CAD9E000D0DF E600BECCD2006A7E88008B9BA300A2AAAE00CED6DA00999FA200DEE6EA00DAE2 E600D6DEE200D2DADE00E6EEF200E2EAEE00EEF2F400C3D5DF00ABB6BC006175 81009BA8B000B6C0C600516573005B6C7800C4CDD300BCC5CB003A5060004459 68004B5F6E00D2DAE200CED6DE00CAD2DA00DAE2EA00D6DEE600DADEE200D6DA DE00D2D6DA00EAEEF200E6EAEE00E2E6EA00DEE2E600D2DAE600D6DEEA00CED2 DA00DEE2EA00DADEE600D6DAE200D2D6DE00E2E6EE00D2D6E200DADEEA00D6DA E600F2F3F600C8CEE200CED2E100BAC1E400979ED800ACB2E100878CED00999E EA007074F1005A5CF500E6E6EE00E2E2EA00EEEEF200EAEAEE00E6E6EA000708 3345150B12101852271C271C303B4965744324242427271A0E1202024A91916C 0E131827285B5B9A6F9D9AA0C8F29E9A9D9DAFAEA2BEDAC9EBC9D9C8C8C9EBEB C4E7C4E7EA00170708330A0B12060F19191B2727262A2443432B282A2A24261A 1B16080708919791450F0E1C11529F99A29A9AA0ABF19D9A9AA2AEA09EA2DAC9 EBC9D9EAEAC9EBEBC4E7C4E7EA0012333333330612121013521B271A1923231B 2B652B2B2B241C1B1A130A054A919791530806183B5226BA9D9D9AA2C8F29D9A 9DCDAEA09EA2DAC9EBC9D9C8C8C9EBEBC4E7C4E7EA00084A3333330612061010 13181813181B1B27243B494343241B18130E0515549197974A07080E281B1A95 9A9D9ABEC8F299A0A0B1DB9B9BBEEBC9EBC9D9EAEAC9EBEBC4E7C4E7EA000708 3333330A121206101010130E18271C2830302B2B2A1A19131816050537979791 0907070D1A1C236A9A9AA0EAC8D9C0CDDAC4E7DBDAC9EBC9EBC9D9C8C8C9EBEB C4E7C4E7EA0007070B330A17121212060A100F0F191B26382A2A285923191813 13050505156C91450C0507161A231C4E8E9DB8EAEAEDB3C4EBC4E7DBC4C9EBC9 EBC9D9EAEAC9EBEBC4E7C4E7EA00170733333312061206121210100F1B601C4F 2A5924261A181316050515050937450C090A0A16191C1B1A586DC8EAC8C9DBC4 EBC4E7DBDAC9DAC9EBC9D9C8C8C9EBEBC4C4C4E7EA0007070B12121233333317 120F100F522734382B28261B1813160505051515150909090C0C0D0D18231B19 6A7AC8EAEAEBDBC4EBC4B3DBE7BEAABEDAEBC9EAEAC9EBEBE7C4C4E7EA000202 080B173333331212101010135B2734592A591B1A0E16050505090909090D0C0D 0D0C0C0D0E181A192343C8EAEAC9DBC4EBE7DBDBDBA2A0A2DAEBC9C8C8C9EBEB C4C4C4E7EA001707070817121717171212124647525B27344F59181916160505 05050C0C0909090C0903090C0E1818191A26AFEAEAC9DBC4EBC4DBAEA2A09EA2 DAEBC9EAEAC9DAEBE7C4C4E7EA000D067302081717171712122C464647525252 5B341A0E0D090505051509091515051515090916161319181B2A2AEAEAC9DBC4 EBE7DB9B9E9EA0CDDAEBC9C8C8C9DAEBC4C4C4E7EA0045101707071717177710 2C2C2C4647474747525B270D0C150505150A150915150A05050A150D0D0E1918 27301C44EAC9DBC4EBE7DBAEA09DA2C9EBEBC9EAEAC9DAEBE7C4C4E7EA001606 0B0873081717102C2C2C2C4746474646471B1A0D030D0C0E130E160905050A0A 05050B150D0E13131B262678C8C9E7C4EBCD9999A2A2CDC9EBEBC9C8C8C9DAEB C4C4C4E7EA000F0A0B17081717122C2C2C2C2C472C4746461A5B1B191B192323 19181913090A1505050807080D160E1823232879C8D9DBEBDAA29E9EA2BEEBC9 EBEBC9EAEAC9DAEBE7C4C4E7EA000D0B0B17171212100F2C2C2C2C2C462C4746 1A461B1B272726241A181A19130F0B0B0702075564563A181C2A2A7CC8EADBDA C9AEA09E9BC9EBC9EBEBC9EAEAC9DAEBC4C4C4E7EA0012080B0B1712122C2C2C 2C2C2C2C462C4652471B1A19271B26271A1A1A130E0F0A07020253979797561A 1C3078EAC8D9DBDAEBDBAE9BCDC9EBC9EBEBC9EAEAC9DAEBE7C4C4C4EA000B08 0A0B1712121010122C2C2C2C462C4647181A19181A27272719471A52130F0F08 02026C979797561B262B4979BFA2999BDADAE7B3EBC9EBEBEBEBC9EAEAC9DAEB DAC4E0C4EA000537370B1217171077122C2C2C2C47474652195B1C1B27341C1C 1C1B1A191852130F0853919797975626433044686D9E9D9EAAC4DBDBDAC9C9C9 C9EBC9EAEAC9DAEBDAC4E0C4EA00536C450B0817171212172C2C2C2C2C474718 4727341C1C2A241C2434275218180F0E12456C9797975A303B35C4EAB8A09D9D A2C4DBB3EBD9EBC9EBEBC9EAEAC9DAEBDAC4E0C4EA0054544A0B08171717122C 2C2C2C2C2C475247522734342A382A2A26261C271A470F1010166C9197641B43 353B6BC8D9AA9EA0CDC4DBDBDAD9C9C9EBC9C9EAEAC9DAEBDAC4E0C4EA005353 530B17121717100F2C46462C464747525BBC1C59382B312B241C1B1B34270F10 060F455464231C43313B447CC8D9AECDDAC4E7B3EBD9EBC9EBC9D9C8C8C9EBEB DAC4E0C4EA005353150B0B33121210612C2C462C46474752344F4F2A2D2B313B 261C27271C272C1012100F161A2424434951B1C4C4D9E7C9C9C4E7DBEBD9C9C9 EBC9D9EAC8C9EBC9EBC4E0C4EA0055540B0B0B3333104656602C474747475252 344F5F2B492D493B312A2428241B0E10101046134E4E262B447CDDC8C8EAE7EB C9C4E7DBEBD9EBC9EBC9D9C8DDC9EBC9EBC4E0C4EA006C55373733333310C16E 6460525247475B52343867393B3B313B48432A241C1A0E0E1318180F192326A1 A36DA2B8DDEAE7C9C9DAE7DBEBEAC9C9EBC9D9EAC8C9EBC9EBDAE0C4EA009790 6C55333333D29297975A52525B2C525B3438393BA1443B3B3B31302423130D0D 131B1918121323BA6D9A9AA0DDEAC4D9C9DAE7DBEBEAC9C9EBC9D9C8DDC9EBEB C9EB84C4EA009790975545450F565A929A5A525BBC525B5B594339394435312B 312B241C190D030D1327181346171A629E9090A0DDEAE7C9C9DAE7DBEBEAC9C9 C9C9EAEAC8C9EBEBC9EBC9C4EA009791916C91556156565A694EBCB634343427 4F38382A2B30282B142A261A16160D0C181B13191B5226F59A9090A2DDC8C4EA C9EBC4E7EBEAD9C9C9C9EAC8DDC9EBEBC9EBC9C4EA0091549797916C45615669 69933434344F34342B381B261C231C28112A1C13160E13181B271A1A1A2449A2 90909DB8E9EAE7C9C9EBC4E7EBEAC9D9C9C9EAEAC8C9EBC9C9EBC9C4EA004A54 976C544545565A93714FB63C4F3C344FAD24271C231B1A1B231A131813131818 1A27231C1C2465F3909AA0ABE9C8C4EAC9EBC4E7EBEAC9D9C9C9EAC8C8C9EBC9 EBEBC9C4EA0007536C5307D755565A57714F344FBC3C1C3428432A241C1A1819 0E160E0E0E1818131A1C1B262B2843AA9D9DBFC8E9EAC4C9C9DAC4E7EBEADFD9 D9C9EAC8EAC9C9C9C9C9C9C4EA00076C6C54545555565A714FB64F3434341B1B 1C2B43281C1B1313160C16160E1913131A271B1C2B2A49D9A2BFC9C8E9C8C4DA D9DACDDBC9EAC9EAC9C9EAC8C8C9EBC9EBEBC9E0EA004A6C6C5455976C56605B 3434BC3434271A1B262B2B241A26190E0E0316160E1818131A231B262B2A43C8 C8DDD9AABEBE9BAABE9B9E9BDAC8C9EAEAC9EAC8C8C9C9C9C9C9C9E0EA006C6C 54545591975646472771594F2434271C2849432A261C180E18160C0D160E0E0E 181B1A1C302843C8C8DD9C6F94AAA0A0AAA09EA0BEC8C9EAC9C9EAC8C8C9C9C9 C9C9DFE0EA00976C545445556C164661696E59593C2A2626283830302A281B13 0E160C030C0D0D060F1A191B1C2843EAC8C7DDB8E5AAA0A0A2A29E99DAC8C9EA C9C9EAEAEFC9EBEAD9C9DF84EA00546C4A55545533104760979A6A4F2A591B23 302B2B494330241C0E0C0C030306120B101A19231C2328C8C8E99CAAAA9B9BAA BECD9BAEEBC8C9EAC9C9C8C8C8C9C9D9D9C9DF84EA0007535454373312104692 90901C594F1B1B1C28243031432B11281A0E0F030A0A0B0B12181A2323231C78 C8DDA29E9E99DAC8D9C9C4E7EBC8EAEAC9C9EAEADDEBC9EAEAD9DFC9EA000802 53544A33100F465697972727342628282828433131494328261B18160A0A120B 120F19231B1B1C43E99C9E9D9DA2DAC8EAEBC4E7EBC8EAEAEAC9C8C8DEC9C9EA D9D9DFC9EA0009080B6C0B10100F46565A69344F2A3828592428302A43292B2A 261B1813060A0D06121013521A181C31DDAA9E9D9DA2DAC8EAC9C4C4EBC8EAEA EAC9EAC8DDC9C9EAEAEADFC9EA00151545370B100F0F613A5A6A5F382D2D2A28 282A2A2A49313126241B18181616130D0610131B19181C35C09CA09DA0AAEBC8 EAC9C4E7C9C8C8EAEAC9C8C8C8C9C9C8EAEADFC9EA0016030C0C0D060F463A60 5A345F382D2D492B302B2A142B313028265B18461813181612100F195219283B B3BFB8A2AAABB5C4EAC9E0C4EBEAC8C8EAC9EAC8C8EAEBC8EAEADFC9EA000D0E 0D0D0D030F0F3A5A60523467592B2D30492B492A2431282A261B19181B19180F 100F4619191A2849DEDCDDABE6C8EBC8C8C9E0E7C9C8EAC8EAC9C8DEC8EAC9C8 EAC883C9EA00160E0D160D0C0F333A6957594F6767382B492B30302B2A35282A 281B0E191B180E0D0F0F0F1A1B1A2431E9C7C7DEC7DEC9C8EAC9E0E7C9C8EAC8 EAC9EAC8C8EAC9EAC8EA83C9EA00160D03030D13186064976957593839672D3B 432B2B2B493B2B1128261918190E0F0F0F0F0E1B1B232430B1E4C7DEC7DEEBEA C8C9EBE7C9C8EAC8EAC9C8E9C8EAC9C8EAC883C9EA00160C090C16181A5A9A9A 6E694E2867393B65314331253B2A2A11281C130E0E03030C0E0E161A1C1C283B 44DDC7DEDCDEC9C8C8C9EBC4C9C8EAC8EADFEAC8C8EAC9EAC8EA83C9EA00130C 0D16130E165A9090909A6957599635963B493B44491C1C1C30261C19090A0D03 0E130D1826262B3135C8C7DEE4DEEBABB8CDDAC4DFC8C8EAEAEAC8E9C8EAC9C8 EAC8C8DFEA0018090C1809053755979090908E574335A1353B443D4425282331 112424230C16130C0E1616181C26582343C9C8E9E4DEC9B89E9EAAC4C9C8C8C8 C8EAC8C8C8EAC9C8EAC8C8DFEA00180A020609080755909090908E583B787878 445E5050351126432B1C2826130E190E0E0D161923696E692B7CE4E9E4E9C9AA 9D9D99B1D9DEC8EAC8EAC8E9DEEADFC8C8DEC8DFEA000C090808050C15549790 909770583B743551503B48443B3B2550312A2A28231318160E160E1A5A9A906E 57447BE9C7E9D9A29D9D9ECDDFDEC8C8C8EAC8DEDEEADFC8EAC8C8DFEA000D0C 0A0B090C0C459797906457625E3B3B683D3B252531251E0429313143261B1C0E 160C45195A8E9A6E285068E9E4E9C9AA9E9D98CDEADEC8EAC8EAC8E9C8EAEAC8 C8C8DEDFEA00160A05080A030C3A9297923A2770584448442B35253B31445148 3B443B1428241C1A134564645A58704E24501EB1E4E9C9B8A09EA0CDDFDEDEC8 C8EAC8E9C8C8EADEC8C8DEDFEA000D05080705030E136492561061978E29443B 4325442531442525253D432B2A591C19133A64645A11112324253B50E4E9EAAB B8A2CDDAC9E9C8C8C8EAC8E9C8EAC8E9DEDEDE83EA000305070708030D0E183A 180F6C9A9A3011303B443B313B442544503E252A3824270F0F163A561A244328 303549314DC7DFDEC8EAC9EBC9E9E9C8EAEAC8E9DEEAC8DEDEDEDE83EA000C07 0202081516160D16131391976E1A191A2A3B2B2A313B251E3E684B312B241B12 100F161B24242B303031314481C7EAE9DEEAC9E0DFE9DEDEC8C8C8E9DEEAC8E9 E9E9DEC8EA00090702074A5555450C0D0F3A91975A2313131C2611243B503D3D 813E51442D27270613100E27282A30302A3B3DC7E4C7EAE9DEEAC9EBDFE9E9DE C8EAC8E9DEEAC8E9E9E9DEC8EA00090702539197979109030E1691921B1A1818 1C262824354850513E3D764B2D261C160F0F1A23262A2A2A2B253150E4C7EAE9 DEC8C9EBDFE9DEDEC8C8DEE9DEEAC8E9E9E9DEC8EA0009070254909090910C0C 063364561B1319231C1C1C232A3125504D2F3D3B28342319161A696E4E302630 43482B2BE4C7EAE9DEEAC9EBDFE9E9DEEAC8DEE9DEEAC8E9E9C7DEC8EA000908 5391979097560C0F0C10130E18181B24261B231A28293B1E2F503149341B1B1A 0D5A90906E572A2B43252B2A68C7EAE9DEC8C9EBEAC7DEDEC8C8DEC7DEC8C8E9 E9E982C8EA0009055397979097450C180F2C173345181C1C231A1C1C2B314844 48312A27271913130D4E9A909A70302A433B2A2B7CC7C8C7DEEADFC9EAC7E9DE DEC8DEC7E9C8C8E9E9C7DEC8EA000315536C9197910D0D130F46176C643A1A18 0E181B263B25041D3531381B1B13130E0E3A6E909A70302831252B7BE8C7EAC7 E9C8DFEBEAC7E9DEDEC8DEC7E9DEC8E9E9E982C8EA00091537546C9145161616 120F91919716133A3A5618262A1E504B443538341B1A180E13135A6E575C2A2A 25503B76E4E4C8E9E9C8DFC9DFC7E9E9DEC8DEC7E9C8C8E9E9C7E9C8EA000909 0D0C453A1616160E12619791910E0E5692921A231C48443B312D4F34191A1A13 131A1B234E3B28294B7B6881E4C7DEE9E9C8DFC9DFC7E9E9DEC8DEC7E9DEC8E9 C7E9C7C8EA0009160C0D160E0E0D13190F919797530D18929792231C2A5C582A 2A24342734271913131B231C2344144BE4E3C6E4E8E4DEE9E9C8DFC9DFC7E9E9 DEC8E9C7E9DEDEC7E9C7E9DEEA000D16160D0C0D0E130E131A97979717185A9A 9792191C2598983B3934343434341B181B1C1B111CAA946DC7E8C6E4E8E4DEC7 DEC8DFC9EAC7E9E9DEC8DEE9C7DEDEE9C7C7C7DEEA000E0C160E09150E180E18 4E97929223195697975A1826506D6D4B1E5F342A34341C191C261C245A6F6F94 A6E3C6E4E8E4DEC7DEDEDFC9EAC7C7C7DEDEDEE9C7DEDEE9C7C7C7DEEA001609 160E0A050E0E0C1B5797975A1C1A3A926E4E282B512E4C68B4444F343C2A1B1B 1C303B25706F906F9CC6C6E4C6E4DEC7E9DEEAC9EAC7E9E9C7DEDEC7C7DEE9E9 C7E4C7DEEA000E030D0D09150D0D0D1A1C9269283019136469263B502F4C363E 634B393C4F3C1B1C2A242911576F6FA09CE3C6E4C6E4DEC7E9DEEAC9EAC7C7E9 C7E9DEE9C7DEE9C7C7E4C7DEEA000D0C0D0A0A030C03161818232624241A1923 2328504444665D68634B35394F383424241C2A113062A0B8B2C6E3E4C6E4DEE9 C7DEC8C9EAE4C7E9C7DEE9C7C7DEE9E4C7E4C7DEEA000D03100B0B0A0C0E1A18 18131C262423231C2328443148989E9B684B3538382D2A261C26262829427CB1 87C6E3E4E8E8DEE9C7DEEADFEAE4E4E9C7DEE9C7E9DEE9C7C7E4C7DEEA000E0A 060808080A0F1A1913132326241C242A1C28293048989E9B7D814B2D382D4326 1B232326303D3EC487C6E3E4C6E4C7E4C7DEC8DFC8E4C7E9C7DEE9C7C7DEE9C7 E4E4C7DEEA0013060B080808080B101618191C1C4E1C262B262A2A3B25626D80 807D63352D2A2D3026231B2A2A4B3EC887E3E3E4C6E4E9C7E9E9EADFC8E4E4C7 C7DEE9E9C7DEE9C7E4E4C7C7EA000D060B070807020805375656236969281C24 26142B1D4D3D51808042B34D2D2A492428261C3149444D84B7E3E3E8C6E4E9E9 C7C7C8DFC8E4C7E4C7DEE9C7C7E9C7C7E4E4E4C7EA00090B0707070202025397 90646497921C2326312B25793E2F688380807D4C35282B28241C303B393C68C4 87E3E3E8C6E4C7E4C7E9C8DFC8E4E4E4C7E9C7C7C7E9E9E4E8E4E4C7EA00030A 0202020202026C9090979797921B2B143B3B482F513D3E7D7DB14C2F3B282A30 2627302D5F474DC484E3E3E8C6E4C7E9E4C7C8DFC8E4E4E4C7E9E9E4E9E9C7E4 E4E4E4C7EA00090A0702020707076C9790649797641A2B3131253B2F8151817D 36364D44312811302426242A3452A76883E3E3FBC6E4C7C7E4E9DEDFC8E4E4E4 E4E9C7E4C7C7C7E4E4E4E4C7EA0009150A07020808539197915692973A133130 29045E2F364D4CC436362E353124302A1B1A1C24523CA98183E3E3C6C6E4E4E9 E4C7DEDFC8E4C7E4E4C7E9E4C7E9C7E4E4E8E4C7EA00090C0D030A0A0B549191 0C569264192314303B3D3D502F4C847D4283682F3D2543142426261C523979B3 E3E3E3FBE8E4E4E9E4C7DEDFDEE4E4E4E4E4C7E4C7C7E4E4E4E8E4C7EA00030C 16090A090A4A540707559264262A3131313D512F7936B336837F4C3E681E4825 492B2434274B2F81B7E3E3C6C6C6E4E9E4E4DEDFDEE4E4E4E4C7C7E4C7E9E4E4 E4E8E4C7EA00160D160C15090D060802079197971C1129253B1E5151443E4C7B 428280B14C4D253B31432A38383D4B36E3E3E3E3E3E8E4C7E4E4DEDFDEE4E4E4 E4E4C7E4E4C7E4E4E4E4E4C7EA0013160D09090316030B02539797971B30302B 25445C623D5D995D3E80423636683B31142B2B353B353D7DE3E3E3E3FBC6E4E4 E4E4DEDFDEE4E4E4E4E4E4E8E4C7E4E8E4E4E4C7EA000F3A45450C0C160D0A07 6C9797972324313148708E9E5C989E997C42807DB33E25492949313544441E36 E3E3E3E3E8C6E4E4E4E4DEDFDEC6E4E4E4E4C7E4E4C7E4E4E4E8E4C7EA000E55 5655090D0C0D09076C97909126283125629A908E8E9999664C364184364C3E2F 3131253D4C4D1E84E3E3E3E3C6C6E4E4E4E4E9DFDEC6E4E8E4E4C7E8E4C7E4E8 E4E8E4C7EA00606491550909090315085490906E6E573144989A9A9A5C62687D 7B36807D364C682F1D25444D3E362F3EE3E3E3E3E3E3E4E4E4E4DEEADEC6E4C6 E4E4C7E4E4E4E4E4E4E8E4E4EA004592916C150505091508539792929A8E3B3B 9D9A9A8E4462626D364C367D4C4C4C2F50501E3D3E4C427F86E3E3E3E3E3E4E4 E4E4E4EADEC6E4E8C6E4E4E8E4E4E4E8E4E8E4E4EA0033919791370B0A0A1507 05456497977044299D9A9A9875989D99683E4D7D7D364C681D501D3E80E389E3 E386E3E3E3E3E4E4E4E4C7EADEC6E4E8C6E4E4E4E4E4E4E4E4C6E4E4EA001692 979153080A0909080D166E9A9A5C51318E9A9A486D989E994D3E4D68427D364C 3D043B1EB32289E38686E3E3E3E3B7E4E4E4E4EADEC6E4FBC6E4E4E8E4E4E8E8 E4C6E4E4EA00569797974A080B0A030E181897979A31683D98A098445E6D6D5D 36363E36364CB14C4D483B1E7DCB8989E3E386E3E3E3E4E4E4E4C7DEDEC6E4E8 C6E4E4C6E8E4C6E8E8C6E4E4EA003A9797921608080A0C0E1A1A9A9A70252F51 48753D1D2F3E3D2FB14C367D4C4C36B151303B3B3E8389E38689E3E3E3E3C6E4 E4E4C7DEDEC6E4FBC6E4E4E8C6E4E8C6E8C6E4E4EA003A64925613030705150D 23196E9A5C484D2E3E362F2F3E4D3D442F2E4D4C7D363E3E4D1E143B7D3E42E3 89E386E3E3E3E8E4E4B7E4DEDEE3E4E8C6E4E4E8C6E4C6E8E8C6E8E4EA001919 45130E0C0505150C1B1C585C251E2F3E3E423D442E3E4D502E362F4C7D2E3D2F 2E502950854C3689E38689E3E3E3E3E4E4C6E4DEDEE387E3C6E4E4E8C6E4E8C6 C6C6E8E4EA0013160D0E130C051505091A23313D1E3D2F3E4C361D1E3E2E3E5D 6D5D3D1D442F4D254444314487847DFE8986E2E3E3E3E3E4E4E8E4DEDEE3B7E3 E3E4E4FBC6E4E3E8E8E8C6E4EA0019130D0E1309050509150E26253D3D3D3680 4C414D25514C7B6D9E991E443B2F3D481D3D441E41863EFA898989E3E3E3E3E4 E4C6E4DE82E3E8E3E3E4E4E8C6E4E8C6C6C6C6E4EA001A190C160E0915050505 1623442E3E3E80417D417D2F3D5D9BA09E993D443B3E6804503D4D3E83417D89 89FEE286E3E3E3E4E4E3E4DE82E3C6E3E387E4FBC6E4E3E8FBE8C6E4EA001319 160C160C0905050905131E3D2F3641807D80803E2F629E9D98752F04313B2504 442F513641418387FE89E286E3E3E3E4B7E3E4DEC7E3E8E3FBC6E4C6C6E8C6C6 C6E3C6E4EA0018180E030D090505050505231D3D2E4C8041427D427D3666989D 99511E1E3B3B2B3B1E3E3E7D7F2236428989FA86E3E3E3E4E4E3E4DEC7E3E3E3 E3C6E4E3E8E8E3E3E8FBC6E4EA00180E16090C05080805050D1A3B1D2F3E4280 41424266A2999B98753E1E44313D4C4D51687D7D7E837D368989E286E3E3E3E4 E4E3E4DEE4E3E3E3E3C6E4E3E3C6FBC6C6E3C6E8EA00130E030A090707070505 0E0D1C253D4C7D82828083999E9E9976251E367D1E418283364C4C427D808380 E289E289E3E3E3E4E4E3E4DEE4E3E3E3E3C6E4E3E3E8E3E3FBE3E8C6EA001813 0308080207546C543A132328043D3641877F4166A09E9951443E83427E7E4083 7F7D4C7D414242368989E2E2E3E3E3E4B7E3E8DEE4E3E3E3E3E887E3E3E3E3E3 E3E3C6C6EA0019180F07020253979797551A26243144367D7F4042325D9B6B7C 4C4CE33641827FC7877D7D3680364C428989E2E2E3E3E3E4B7E3B7E9E4E3E3E3 E3E3B7E3E3E3E3E3E3E3E8C6EA001A190E1707026C97979755161C31251D669B A2AA682F3D1E1E1E2F864282E3877D7F834C3E4C7D3636368989E2E2E3E3E3E4 B7E3B7C7E4E3E3E3E3E3E4E3E3E3E3E3E3E3E8C6EA001B18130F075391919797 551529253D3E669E9D9E9B2E3E363D143E7D80E286867E8342362E3E3E7D7F83 E289E2E2E3E3E3E4E3E3E4E4E4E3E3E3E3E3C6E3E3E3E3E3C6E3FBC6EA001B13 0F0E0B4A6C979797371C31252F32B8A09D9E9B7D42363B3D8041868588868783 42832F3E3E3682868989E2E2E3E3E387E3E3B7E4E4E3E3E3E3FBC6E3E3E3E3E3 E3E3E8E8EA001A13100F0F376C9197562324313B3D3E7D9BA0A0B8417D4425E3 E1E18888E18886C88287C42E7D42E3E28989E2FA89E3E3B7E3E3FBE4E4E3E3E3 E3E3C6E3E3E3E3E3E3E3C6C6EA00191306170B3337536C3A1B113131442E8080 9C9C80424C1D3D4CE1E1E188E1E1E1E286868680828285E2E289E2E286E3E3E3 B7E3E3E4E4E3E3E3E3FBE3E3E3E3E3E3E3E3E3C6EA001813120808080B050913 1C2629251E3E7D824122838332363E1E42E1E1E1E1E1E1FD88FD88E1858988FD 8989E2E286E3E3E3E3E3E3E4E4E3E3E3E3E3E3E3E3E3E3E3E3E3FBC6EA00160D 0D0B0708080537561C2630253D4C4241414183422E4C322EE1E1E1E1E1E1E1E1 E1FD88E1E18888E28589E2E286FEE3E3E3E3E3E4E4E3E3E3E3E3E3E3E3E3E3E3 E3E3E3C6EA000C030D0C080705080518191B2431985D42427D4142423E4C7D80 FCE1E1E1E1E1E1E1E1FD88E1E1FD88FDE288E2E289E3E3E3E3E3E3E4E4E3E3FA E3E3E3E386E3E3E3E3E3FBC6EA0009150D0D0508050502101A1A5A979A983636 36827F41327D4282E1E1E1E1E1E1E1E1E1E188E1E188FD85E285E2E2FAE3E3E3 E3E3E3E4E4E3E386E3E3E3E386E3E3E3E3E3E3C6EA0009090C03150505080802 1819929090702E3636404082424242427DFCE1E1E1FCE1E1E1FDE1E1E1888888 E288E2E2FA89E3E3E3E3E3E4FB86E3FA86E3E3E386E386E3E3E3E3C6EA000C09 030C090A05080508153A979090702F7D428287414180414187E1E1E1FCE1FCE1 E188E1E1E188FDE2E285E2E28989E3E3E386E3E4E486E3E386E3E3E3CBE386E3 E3E3E3E3EA00160C0D03090905090515155490909230043E4222827F41428340 FCFCFCE1E1E1E1E1E1E1E1FCE18888888588E2E2FA89E3E3E386E3E4FB86E3FA 86E3E3FACBE386E3E3E3E3E3EA000D0D0D0D0C0D090C0309055497906424303E 418241828241428287FCE1FCE1CCFCE1E1E1E1E1E188FDFDE2FD85E2E289E3E3 E386E387FB89FEE386E3E3E3CBE386E3E3E3E3E3EA00090C0C0D0909030D0C15 054A97921924242F364232427D7D3687FCCCFCE1E1E1CCE1E1E1E1FCE1E18888 888888E2E2E2E3E3E389E3B7B7E2E3EC89E3E386E2FACBE3E3E3E3E3EA000909 05150505150C0315050537451323303D324C3E32663242E2CCCCFCE1CCCCFCE1 E1E1E1E1E18888FDFDFD88E2E2FA86E3E389E3B7E3FA89E389E3E3E3E2E3E2E3 E3E3E3E3EA000A0915050A05150909090905150C163A291D99625D9BA0998086 CCFCCCE1CCFCCCFCE1E1E1FCE1E18888888888E2E289FAE3E386E3B7E3E386FA 86E3E386E2E3CBE3E3E3E3E3EA00090A05090A0505090E19191316134592585C 9E7099999DA07F8288FCCCFCCCFCCCFCE1E1E1CCE188888888FD8888E2FA89E3 E389E3E3E3FA86FA89E3E3E3E286FA86E3E3E3E3EA000A05050B0B0A03182323 2324281C11572599989899999EA28087CCFCCCFCCCFCCCFCE1E1E1CCE1E18888 85E3E3E2E28989FEE389E3E3E389E38989E3E386E2E3E286E3E3E3E3EA000305 08080B0F191B1C231131142929585C5C5C6D66759B5D4242FCCCE1CCFCFCCCFC FCE1E1CCE1888888B7878786E2FA89E3E389E3E3E3FA89E2FAE3E389E2E2FA86 E3E3E3E3EA000A0B08080B0E181B241114313B29708E8E5C312E4C3E42367D42 228686CCFCCCCCFCFCE1FCCCFCE188FD878787E4E2E289E3E3FA89E3E389FA89 FA86E3E2E2FAE286E3E3E3E3EA000A0A080A100F1A1C11241131315C8E9D9D70 142E363E42424242418786FCCCCCCCCCFCE1FCCCFCE18888B787C687E2FA8986 E389FAE3E3E289E2E286E3E2E2E2FA86E386E3E3EA000C0D0F1813461A27262A 1431315C8E9D8E98142F363682427D7D3E7D86CCFCCCFCCCFCE1CCCCFCE18885 87B787C6E2E2FA89E38989E3E3E289E2FA89E3E2E2E2E2E2E386E3E3EA000D19 18180E46181B2A3814140462989D9E6D3B0436414142367D2E4C4C86CCCCCCCC FCE1FCCCFCE1888687C68786E289FA89E3E289E3E3E2E2FAE286E3E2E2E2FAE2 E386E3E3EA000D191313131A1A34282A141D1D5D6D996D3D041D364141427D40 2E2F3E42FCCCCCFCFCFCCCCCFCE1888687E3E4E2E2E28989E3E289E3E3E2E2E2 E289E3E2E2E2E2E2E386E3E3EA00161A131A471C3427342814043E322E3D3D3E 2F2F3E42424236412E3236FCCCCCCCCCCCFCFCFCCCE1FC8687E387E2E2E2E289 E3E2E2E3E3E2E2E2E2FA86E2E2E2E2E2E386E3E3EA001A1A181A1A1B341C2624 142E2E3E322F2E323E1E2F3E3E4232364C1E2FCCCCCCCCFCFCFCCCCCCCE1E186 87B787E2E2E289FA86E2E2E3E3E2E2E2FA89E3E2E2E2E2E2E3E2E3E3EA001C1A 1A0E131B11142A311E2E1E2E3E4C36362E253E3E2E323E42413641CCCCCCCCCC CCCCFCFCCCFC888787B78688E2E2898986E2E2FEE3E2E2E2E2E286E2E2E2E2E2 E3E2E3E3EA0023261A130E23241114252E2F3D3E323636363D1D322E2F324142 8588CCCCCCCCCCCCFCFCCCCCCCFCE287E3C68688FDE289FA89E2E2E3E3E2E2E2 FA89E3E2E2E2E2E2E3E2E3E3EA00232619160E182630311D3D3D2F3642424236 2E3D626D2E2E42364221CCCCCCCCCCCCCCCCCCCCCCFCE287E387E2E188E2E2E2 89E2E2FEE3E2E2E2E2E286E2E2E2E2E2E3E2E3E3EA00232619160D0E1A111429 62251D2E423236362F5C9E9E9B423E2E4221F0CCCCCCCCCCFCFCCCCCCCFC86E3 87E3E2E188E2E2FA89E2E2E386E2E2E2E2E2FAE2E2E2E2E286E2E3E3EA001A1C 1A16160E0E2358708E7029251D252F2E3D5C9D9DA04140868888CCF0CCF0CCCC CCCCCCCCCCE187B7E386E1E188E289E289E2E2FE89E2E2E2E2E289E2E2E2E2E2 E3E2E3E3EA002324231A1A180E18578E908E57281114112F32999D9DA0AB4086 F0CCCCCCCCCCCCCCFCFCCCCCCC88E3B7E3E3E1E188E289E289E2E2FA89E2E2E2 E2FA89E2E2E2E2E286E2E3E3EA001C261B1A1A19561A566E906E231C24113004 419B9E9DA09C822141F0CCF0CCF0CCCCCCCCCCCCCCE2E3E38789E1E188E289E2 89E289FA89E2E2E2E2E289E2E2E2E2E2E3E2E3E3EA001C261B19195A6464563A 5623191C11311D322E5DA09EA0AB7F2140F0CCCCCCF0F0CCFCFCCCCCCC86E3E3 8788E1E188E289E289E2E2FA89E2E2E2E2FA89E2E2E2E2E286E286E3EA001C26 1A13181A64643A161313191C11312F2F2E3EAAAA9C7E822285F0F0CCF0CCCCCC CCCCCCCCE186E3E386E1E1E188E2E2E289E2E28989E2E2E2E2E2E2E2E2E2E2E2 FAE2E3E3EA001C261A0F1319563A0E0D130E1B3026312F2E3D2E4240416B4476 7FF0F0CCF0F0CCCCFCFCCCCC88E3E38789E188E288E2E2E289E2E2E289E2E2E2 E2E2E2E2E2E2E2E289E286E3EA001C1C1A10100E0E0E0D0E19131911141D3E36 3E42822251A36B447DF0F0F0CCCCCCCCE1CCCCCCE286E3E389FD86E7DEE2E2E2 89E2E28989E2E2E2E2E2E2E285E2E2E2FAE286E3EA00231C18060F0D0C0D160E 13191C31251E2F2E3E42407FA15E76767CCCF0F0F0CCCCCCFCCCCCFC8686C686 8280C4B5D5DFE2E2E2FDE289E2E2E2E2E2E2E2E285E2E2E289FA86E3EA001B1C 130D0F0D090D16160E242B251E2F324242324C3274747876A5F0F0F0CCCCCCCC FCCCCC858686E3858283B3B3B4D1E4E2E2E2E289E2E2FDE2E2E2E2E285E2E2E2 E2E286E3EA001B1B0E0D0E1655643A181C1431253D3E2F2F42322E2E7448446B A5CCF0F0CCCCCCCCFCCCCC85E28686E28283C8C8B3B0B0E4E2FDE289E2E2E2FD E2E2E2E285E2E2E2E2FA86E3EA001A1A160D0E5597906E4E11141D1E2E2E322E 3242417648746B6B5188F0F0CCCCCCFCCCCCCC88E2E4888680C8C8C883C4B581 E4E2E2E2E2FDE2E2E2E2E2E288E2E2E2E2E289E3EA0019190E0D0E5697909057 2B3B1E1E1E042F2E3D3E42783B74766B5186F0F0F0CCCCCCFCCCCCCC8686FC84 B3C8C8C88384B3C4C482E2E2E2E2E2FDE2E2E2E288E2E2E2E2E289E3EA001A19 0E16133A64909A5714293D3D2F251D2F1E3D3674446B76744C3FE1F0CCCCCCCC CCCCCCCC8688E1C9807FC88383C9C4C4C4B382E2E2FDE2E2E2E2E2E288E2E2E2 E2E289E3EA001818160E18185A6969581431253D043D1D2E2F2F7D4944765E49 3E2188F0CCCCCCCCFCCCCCCC85CC887F83DE808083C9C980C4C4B3C8E2E2E2FD E2E2E2E288E2E2E2E2E2E2E3EA001918130E191A234E24111431142F14043E3D 3E1E36433B5E7443418688CCF0CCCCCCCCCCCCE1FCCC888383C8808383C984C9 C984C481E4FDE2E2E2E2E2E288E2E2E2E2E28986EA001818131313181C231A24 3131312E251D1D1E2F3E2F49745E3B49872188F0CCCCF0CCFCCCCCE2E2CCFCE3 838083C880C9C9C9C9C9C9B183E2E2FDE2E2E2E288E2E2E2E2E2FA86EA000F13 13130E131A1923585C5C252E2E3D1E3D2F363D747848745E3F8620F0CCCCF0F0 CCCCCCE286CCCCFC89B7B7E2B7C98483C9C9C9C482E2E2E2E2E2E2E288E2E2E2 E2E2E286EA00100F0E0D0C0C1313648E9A70292536362E1E3E3225745048747C 3F2188F0CCF0F0CCCCCCCCE2E2FCCCFCE3C782B7E2E3C9C9C9C9C9C9E3888888 E2E2E2E288E2E2E2E2E2FA86EA00030F0E031603031A579A908E57112E413E2F 32326548445E74364086CCF0CCF0F0CCCCCCCCFD85CCE28588FDE4C7B7E2B7C9 84C9C47DE3E2FD88E2E2E2E288E2E2E2E2E2E286EA00060D0F0C190E1624588E 9A9E57313642404236427478445E7840218686CCCCF0F0CCCCCCCC8588E1C8B3 B5B5DFC78289E2B7C4C9C4B1B788FD88E2E2E2E288E2E2E2E2E2FA86EA00100D 0E131A1318112957985C112532413F873F7D786B5E6B76211F88202088CCF0CC CCCCE18588887FC4B5B584DEEBDEE2FD82B3B3C4FA88FD88E2FDE2E288E2E2E2 E2E2E286EA000F0D160E1A1A2614313B1D322E3E2E42223F3F686B767A767D1F CC8585858689CCCCCCCCFD85888882B0D48083C8E4C4DFE2E2E483B7E288FD88 FDE2E2E288E2E2E2E2E2FA86EA000F0D0D1324261125041D042F363E2E424122 3F787668A56B86F0CC8888E12121CCFCCCCC85E288E2C8B4D4848383C8E3E0DE E288FA89E288FD88E2E2FDE288FDE2E2E2E2E287EA000E0D132328141425042F 2F2E41413236424122787951686BCCF0CCCC1F888640CCCCCCE1E285E1FC83D1 B0C4C9808083E3DEC9E28889E2E188FDFDE2E2E288E2E2E2E2E2DE76EA000E13 192311143131392F2F2E36363E3641874276A568A5B3F0F0F0CC1F208687FCCC CCE18588E1CCB7D1D5C4C9C9C9C983E2DFE4E2E2FDE2E2E2E2E2FAE2FDFDE2E2 86C9A479EA000E0E191C241431312D39322E323636364286795168687621F0F0 F0F0CC8622827ECCCCE18888E189B3B46381B38483C9C4DE89C789E4D4D1D1BA BABABABABABABAA1D0C2D0CEEA0013191A0E241425353947683E2E2E42323622 4451C0687AE1F0F0F0F0CC85212287CCCCE1E1888587D4B0B5D4B5B3C9C984C4 8389E2E2E2FAFD88E2E2FDE2FDE2E3C0A3C9FA89EA001919231311243504395B A14D4D4C422F42365E7668B0AFCCF0F0F0F0CC88868787E1E1E1E188E2E384E7 81B5B0D5B5B1C9808483E2E2E2FDFD88FDE2E2E28887C079C8E2E289EA001C19 18132414351EB63C4450442E361D2E3B5076687687F0F0CCCCF0CCE185224088 E1E1E1888889E0B3D4B5A4BAB4D48483C9C987FDE288FD88E2E2FDE2E3A579E4 E2E2FA89EA0011261323241114354F353D7449041D29312A6B51A5A31FF0F0E3 82CCCC8885408285E1E1E188E1E4E7B3B3B0D1BAD1B0C484C9C983E2E288E188 FDE2E2E3C0B0E4E2E2E2E289EA00242413232624282A34254B3B2A3131283043 5E766BAF8988FCB3BAD4E32021414085FCE1888888C9B3C9DFB0BAD1D1D5D4D4 84808389E288FD88E2E2E37CB087E2E2E2E2FA89EA0024240E1A191A26272631 3B2B2A31042926495078744279A381B4ADC2B9E387368788E1E18888E1DFB3E4 DFD4D5B4D1B5B58184C9C982E2E1FDFDE289C07CE3E2E2E2E2E2E289EA00231A 181819191C1B2A43316A59313D43284944446BB7AF68A18FBDC2BC8122428285 FCE18888CCDFE7DEE0D4B0D5B3C4C9C9B3C4DEC48988E18886AFD4E388E2E2E2 E2E2FA89EA00231A1A191A23275930654328593B1D261C493B3B80827C79BA79 7AC2BBBC4C7D4185E1E18588E1C9E7C484DFE7B3B381DEE3B7E4E0B3FDDE88E2 C4AFE388E2E2E2E2E2E2E289EA001C23191A231C1A26283028237143281C2A2B 493B2184687AC07C68785FC2AC3D4188E1E1E28888C9DE82DEC481C9E0D4D5B5 E488E7DFE2B3FD80C486E2E2E2E2E2E2E289FA89EA0026261A1A232424231C24 1C601A30242B2B43493E874C4D79B06868A57874BC59B58588E1E288FDE08382 828283C9C9C9C4D5B589E386E3B37DC989E2FDE2E2E2E2E2E2E2E289EA001C24 1C1B242826271C2493601C494343433149412265B979686868687A742B43A1B3 88E185E189C4C4C484C9C88283C98482C9C9FDB7DED5C9E2E2E2E288E2E2E2E2 E2E2FA89EA002411282330281C712328715B716A3B3B3B652E4121C27A79B0B0 4DA57A74B97A76ADAF85888886C4C48484B3C4C88383C9C987E3E2E3C9B0FA88 E2FDE288E2E2E2E2E2E2E289EA001D31111C243071272793715B716A44445E44 42403696B0686879797976B07AB9A1A3ADD485E1FCE4E0C980C4C484C980C9C9 E488FDE2E4C4FDFD88E2E288E2E2E2E2E2E2FA89EA002511292826281C714E71 71605B9F4450A14240224C7AB0B06878767676B0B0B07A78A3ADB585CCDEDBE0 84C4C484C484C8C6E2E288E2FEC8E188E2FDE288E2E2E2E2E2E2E289EA001424 11142B28271C71715B605B49447451213F217C7A51B076BA76797979B06879A3 BAA367AFE2C9B38484848484C4C9E3E188FD88E2E4DEFD88FDE2FDE2E2E2E2E2 E2E2FA89EA00112824113B6A1A61525A606071659F6A42213F21794479797A50 796868B076A47979A37A78AD82C9B3B3C4C484808384C9E388FD88E2DEC7E188 E2E2E2FDE2E2E2E2E2E2E289EA00261C1C111D2A1860605B606071656A746820 8588823EA1A1785050A36868B0B0797979A47A78B3EBB3B3B3B3C484C9C984C8 E2FD88E2C4E4FD88E2FDE2E2E2E2E2E2E2E2FA89EA001C261125042660606060 606071439576A1211F1F2021838481837D7DA37968B07979A4A4A478C4DFB3B3 8181B3B3C4847DDEE288FDE2B3B7E188FDE2E288E2E2E2E2E2E2E289EA002811 141425261A5B60606060936AA176448720882020B581C4B3422285B0797979A4 79767A7A8AC9B3B381B581C484C4B17FE389FDE2B3E3FD88E2E2FDE2E2E2E2E2 E2E2FA89EA0031241129311C525B6060607193437651783F20888587C4B5B5B5 63DECC89B0A4797979A478B1E3C9B381D4B0B5C4C9C4C480C9C980E4B389FD88 E2E2E2FDE2E2E2E2E2E2E289EA00312411312B1C1B5B60606093443B79765E21 2282408D8285DE81D181E1E1E37AA47979BA787989C9D4B5D5B4B0B3B1B3C4C9 8484C482DBE2FD88E2FDE2E2E2E2E2E2E2E2E2E2EA00142811293026521B603A 609378747651782041765F71C267A1C484AFDEE18882A1A4A4A1A1A3E1DFD4D4 B4BAB4B0B0B0D4AFD4AFC8E4E7888888E2E2E2E2E2E2E2E2E2E2E2E2EA00111B 23142B1C1A1A61606171496A78796B2041763B8FBCBB8FB9BAB5E48988857D78 A3A19676CCE4D4B5D5D1D1D1D1D5D5B581DFE4C9EB88FD88E2E2FDE2E2E2E2E2 E2E2E2E2EA00113011253149275B60606171749595766B20426B5F59595F7478 C4B4CEDEFD8886B5B974AD84CCB7B5B4BABAA9D1D1D1D1D1D5C4DED4E0E18888 FDE2E2E2E2E2E2E2E2E2E2E2EA001425251D1D3B34276060619365436A6BA320 427AAC5B8F35A1787AE4D4A7D4E288E3C9A5AFB7E1C9D5CEADADADB9A8BABABA D1B0B3B4E088FD88E2E2FDE2E2E2E2E2E2E2E2E2EA00250404041D5059346060 6071656A93505E2168505952C2AD4479A4A489C8B9D58885E287C786FCDEB3BA D0D0BDD0C3BAD1D1D1D5D4CEEBE18888E2E2E2E2E2E2E2E2E2E2E2E2EA000425 2525253D4F596060617149956A4444414274ACBBAC67B9A4A57979E2DEBAD4FE 85E2B7E28887C8B3B3D5CED0C2BDCED1B4C4DFBADF8888E2E2E2FDE2E289E2E2 E2E2E2E2EA001E042525042F4F595260609343955965437D223DACC1BC6778BA 7AD579B0868AD1D5E285E4E28683B5D5D4C4C4D4BAD0BDC3CEE0FAB5DEE188FD E2E2E2E2E289E2E2E2E2E2E2EA002F1D043E32513C59526060936A6A71436540 2122BCC1BCBDA1BABA78A4A47C8982D1C488E285E3C4D5BABA7AB0AFB3B0BAAD D0D4FADFE4FD88E2E2E2FDE2E289FAFAE2E2E2E2EA002E1E2E3E3E2F4F595B60 6093285959493B4042A15B5BBC8FAD96A1A37A767A7C86DED48788C7D0C2C2C2 C2BD8FBDBD8FC2ACACBCC2C2C2BDD0C3B9CECEB9B996ADADC3B9B9B4EA002E3E 2E3E32504F595B6060717128593B7441356ACFBBBCC2BDD0B94B79A4A3A37C86 E4B7E1DFC2C1C1D3D3D3D3D3D3D3D3CFCFC1CFC1BBBBBBBBC1C1C1BBC1BBC1BB C1BBBBACEA002E2E2E3636503C595B606026936A6A3B654D747160BCACC2ACC2 D0B9A4797A78BAB586E388E286B3D5A8BAA1BACEA1A1CEBAD5B584DEFAFDFDE2 FDFDE2E2E2FA89E2E2E2FA89EA001D2F3E36365038595B606093593059434976 3B52C1BCBBBCACBCACC2ADBA797A7AD1768988E389E0D1BABABABAD1BAB9B9D1 C4FBE3DF89E188E2E2E2E2E2FA89FA89E2E2E289EA001D1E364236443C285261 61276A6A9343313649BBCFCFC1BCBCBBC1BBBDA1A47979797A80E27EE4B0B9CE BABABACED1B4B5C8E2FDE3E4E28888E2E2E2E2E2E286FA89E2E2FA89EA001D31 324132353C6A5261615B26955949314265CFD2D3BBBCBBC1CFBBC2AD7AA47979 797ACB82C7B3CEC3AD96B9B4C4E289E2E2FDE2E2E2FD88E2E2E2E2E2FA86FA89 E2E2E289EA00312E36363E35384F520F616093386A7444C4C2CFD8C1BCBBC1C1 C1BBACD078CE7A79A5788782C78883B0B0D483E3E3B7FD8888E2E2E2E2E188E2 E2E2E2E2FA86EC89E2E3C8C4EA003B2E362E3D2D2D4F6061611A59956A4950B5 C1D8CFD0ADBCCFCFC1BBAC67D0D0CE797976B1C77F8889E486898987E3B786E2 E4DEC8DF84E7DBB3D4D481D4D4D4B5D1A1A178A4EA00252F2F252F382A4F6061 615B6A956A6579B3C1D8BCD1BDACC2BBBBC1ACBDBDADB97979A4A57F8089E3B7 B7E386E480E489E2B7DEDEDEC8DFE0C4C4E7C4E7D4A3B9AD74C0C8E4EA006D2E 2F1D1E3859346161615B95436A4332DEBBD2D0BABCACC2ACACC2CECED0B9A179 7678BAB37FE389E3B7E482C880C4E48888E2E2E2E28888E2E2E3C87CA479AFC7 E3E2E289EA00323E2E1D3D3C24596161615B95956A74E2DEBBD8BCC2C5D0C2C2 ACD0B4D1E084A1A196B3BD81E48786E3B7DE84B384C484E288FDE2E2E2FDFD86 C9C0A5D4C9E4E386E2E2FA86EA0032323D1D2F4F4F4F6161605B95956A50CCB5 C1CFD3BCD0B4B4CEC3CEADA9C6C982C8C4AFACC9C6D1D489E483B3D4B0B3C487 FDE2E2E2E2E380AF7CC487E289E3FEE3E2E2E286EA0042362F043D38384F6061 615B439F9F79CCBAC1D08FC2D0BDACBAB5D1B9ACC2D0C9E289A9C2E3E2BDCE85 E483DBB3B5AFC4C9E2E2E282B1C4C9C7E3E2E2E289E3E386E2E2FA86EA002236 32323E38388F5261615B9FB96576FCBACFD0ADA3797AA196D0D181D5D0BBBC82 89B3D5FD88BDBAB7E3DE84E0C8C8E0B3B7B7E3C9C88688E2E2E2E2E289E3FEE3 E2E2FA86EA004241413F36392D3C5B46615B656565A4CCCED3ACBC8FA17AB068 68A378A3B0B5C2D0E4B7B785E4BDD1E38682C8D4D1DFE4EBDEEB8986E288E2E2 E2E2E2E286E3E386E2E2FA86EA00422286228196674F59D2615BADB965A4CCBD D3C1BBBCAC96D1B0686868B07AD5C4B4D1E2C7B3EBBDD58786E382C9B3B5E489 C9C9E289E288E2E2E2E2E2E2E3E3FEE3E2E2FAE3EA00402288214B39394F5961 465B9F6565A4E1C2D3D3C1BBACC2ADA3A5B068B06876B0E3D4C7E2B3B4BDB082 E4E38783C483E3FAAFE0E289E2E2E2E2E2E2E2E2E3E3E3E3E2E2E2E3EA004242 21223596674FC261D271656565A4E196ACC1BCACC2BDADB9A3B0B06868B07886 89E288E3DBBDAFC7C787C7C8C4C7E2FDEA83E289E2FDE2E2E2E2E2E2E3E3FEE3 E2E289E3EA00364122223535673C596146719F6574A5E288B9CFBBACBDADB9A1 BA7879B0D576B0EC86E28588E4ADE0C782878783C6E3898582E4E289E2E2E2E2 E289E2E2E3E3E3E3E2E2E2E3EA003E21224096966767AC614671659FB97C89E3 BCCFC1BBAC5F96A1A1BABA78B380E3E2E2E2E28886BAC8C78287E3B1B3838282 DBC9C7C7C7E487C7C7C7C7C78282C7E4C6E3E480EA00411F8622CE3567673461 465B9F65747BB7B1BBD3C1ACC2D0B9A1BAA1A1C8E1FCE1E188E2E288C9B487B7 E382C782B1D9C8C8AF7DC9C9C9C98080C9C9C9C9C9DAC97DAFC0A374EA00CCFC E341CEA16796716146719F9FB97D83D5CFD2D3C1C2ADA1BAA3A4A4787D88E1E1 FD8588FDB3B5E2E2E28782E3C7E3E2E2DFE487E4C6C6C7C883C8C8C8C4D4A4BA A1BA76D4EA00F0FC89DF39CE5F96BC6046719F9F74C8D4C4CFD2D3C1C2ADB978 A3A4D579A479FDE188E18889B0B5FD8885E3C0D4C882DEC6DE89E2FAE2E2E2FA 89E3C7B37AA376AFC97FC7C7EA00F088898A5FA15F6734614671959FB982B5C4 C1D2D3C1ACD0ADCEA17A76A54D6BB7E1E1E1E1C6CEB38888FD7BA3A37CDE82B7 E4E2E28989FDE289C8C0A3A4AFC8B7E386E2E3E3EA00F089898B67965F5FBC60 4671959F65E4D5E7BBD2D2C1BC8FD0AD67A17A79797A87E1E185E2E4BDE088FD 8876A4A4A383E3E3B7E2E2FA89E2C7C07879C4C6E3E3E3E386E286E3EA00F089 898CCE8F96BD5B614671959F6582B5D4C1D2D2BBBCC2BD9FB9A178787879E2E1 88E285FB8FDEFD88867976A4A3C9E4E4B7E2E28987B3A4A5DA87E2E2E3E3E3E3 E3E2E3E3EA00F088898DCE3CA18F526146719F6565EAB5B5BBD3CFBBBCACC2D0 B9BAA378BAB0B1807FC7C6E3C2E388E2C8A4A5A4B0DE82C8E389E2DE76A3C9C6 86E3FA89E3E3E3E386E2E3E3EA00F0FD898DA84FA4C25246619365659FDFE0D1 BBCFD8C1BCBCACD0B9A1A3D1BA7AA47AA3787CE3C28988887DA4A57AB1E4E3E4 FB86C97A79C7E289FA86E289E3E3E3E3E3E2E3E3EA00F0898A8DA85F6734C146 466A65AD9FC9DFD1BBD2D7D2C1BCBC8F9FB974A1BAA37AA37AA478E98F89E285 B3A468A380E4E386E47C78AFE4E2E289E3E3E2FAE3E3E3E386E2E3E3EA00F086 878DB4674F5B4746616A65659583E2D4BCD8D8D3D3C1BCC2BD8FBDADB9CEA1CE BA787CC7ADE2E2E2AFA4A5A382E3E3B7C0A3C4E389E2E286FE86E289E3E3E3E3 E3E2E3E3EA00CC89E38DB55F4FBB6046616AAD6595DECCE4ACD8D3BBCFCFBBBC BCBCACC2BDBDBDBDADAF82D4CE88E2897CA4A5A382E3C7B076C8E2E3FAE2E289 E3E3E2E3E3E3E3E3E3E2E3E3EA0088B7B7B3635F4F5BCF46619565659583E1E3 ADD2D2C1C1BBBBC1C1BBBCACACBDADBAD483DAA1D588E2877979A4C087E4A5A4 8289898986E2E286E386E286E3FBE3E3E3E2E3E3EA00888484B4A85F4F5B4746 6195AD659FB1CCFBB3D2D8D3C1C1BBBCBCC1C1BCBCBCBCD0B0B3B5BDB588E280 78A5A4B1B7A5A5C789FAFAE3E3E2E289E3E3FAE3E3E3E3E3E3E2E3E3EA00B7A8 B4A7A85F4F5B6146619565659FC0FCE4D0D7D6D8D3CFC1C1BBBCBBC1C1BBBCAC BDD5BABCB3E185C9A3A5A4B1C0A5E4E2FA8989FE86E2E2E3E3E3E286E3E4E3E3 E386E3E3EA008BB4A9A7A8675F5B6146479565659FA3FCDFCFD6D6D6D8D8D2D3 CFC1BBBBBBC1BBBC8FBDD0C1E7E188AF76A57676C087FAE289FA86E3E3E2E2FE E3E3FAE3E3E4E3E3E386E3E3EA0022B5CEA9B4395FBB6146609FAD659F74CC86 D0BCACD7D6D6D6D7D2D2C1C1BBBCBCBCC2D0ACD3DFE1E26BA5A4747C87FA89E2 E3FA86FEE3E2E2E3E3E3E2E3E3E4E3E3E386E3E3EA00B78A81B4A8CE5F5BCF46 609F65659F9FE1DEDBD4CEADC2BBD2D7D7D6D6D3BBBBBCC2A1D5C2D3C78887A4 A574A1E3E289FAE2E386E3E3E3E2E2E3E3E386E3E3E4E3E3E386FBE3EA00B782 63B581B4675B4746609565659F9FB374C2ACACBAB3E0D4D0C1D7D6D6D7D3C1BC D1E7BAC1E388B176BA74C8FDE2FA8989E389E3E3E3E2E2E3E3E386E3E3E4FBE3 E3E3E3E3EA00B78B4B63B56367524746C19FAD659F95A178BDBCBCBBACC296D1 B0BAD0C1D8D7D7CFD1C8B1C285887674A16BE2858989E389E3EC86E3E389E2E3 E3E386E3E3E4C6E3E386FBE3EA008B8DB4A9B5B567525246529565659F6A74BA C1D3CFBBBBACC2D0B9BA74ADBDBBD7D3B9D484CE88E478A1A4B188E2FA86FE86 E3FE86E3E3E3E2E3E3E3E3E3E3E4E8E3E3E3E3C6EA008D63A8A78181395BBB61 5B6AAD659F9565ADCFCFC1CFBBBC8F8FADA3BAB98FD0C2C1CFD0C8D5E1B1BA76 A38288FADE86E389E3E386E3E3E3E2E3E3E3E3E3E3E4B7E8E3E3FBC6EA008DB4 A8B48B81C35B52615B6A9F656595A195C1C1C1CFC1BBBBBCC28FC28FB9C2BDA5 BDBCB0B385A576A4A57F87EAB9B0E3E3E3FEE3E3E3E3E2E3E3E3E3E3E3E4B7C6 E3E3E3C6EA0081A8A88488B567BC52615B959F9F9F95A4BAC1CFC1C1C1C1C1C1 CFBBBCBBACAC71BDACBCBAE082A379A37CB0A3CEC2BCB4E3E3E3E3E3E3E3E2E3 E3E3E3E3C6E4B7E8E3E3E3B7EA00B4A9C38385635F5BBB615B6A9F9F936AA3EA C2C1C1CFC1CFC1C1C1C1BCBCACC1ACBCACD0D5D4C0A5A4A484687AADADACBCEB E3E3E3E3E3E3E2E3E3E3E3E3B7E4E487E3E3C6B7EA00A9A7B683B7633C525B61 5B959F95939374DEC2BBBCBCBBBBBBBBC1BBBCC1BBACACBDA4C0A4B0A3C0A47C C979D1797AADC2C2C4E3E3E3E3E3E2E3E3E3E3E3B7E4E4B7E3E3E887EA00A9C3 348489B58F525B475B6A9F9593939FB0CFCFC1BCBCBCBCBCBBBCBBBCACD1A4C0 7BDAB9D4C0C0A487C47879A4A46BBABDADC4E3E3E3E3E2E3E3E3E3E3B7E4E8E4 E3E3E8E4EA00675FB684FC8D8F52BB605B6A959F939393B9D2D2D3CFBBC1C1CF D3BBADCEEAE4B1C07CC8DB8480A5B385A1AD79797A7AA3B9A1A1D4E3E3E3E3E3 E3E3E3E3E4E4E487C6E3C6E4EA00B65BBC83CCFD5F5B5B475B59959F939371B0 ACD2D2D2D8D2D8C18FB4E2E1E27EAFA5C4C7B1C8C8A5C686BA7879A4A3D17AA1 B9A1ADD4E3E386E3FBE3E3E3E4E4E8E4C6E3C6E4EA00BCBB348BFC883C5BBC47 5B93959F939371C0C9BA8FBBBCACB9D4E988E1E188C7A5C0C8C87C82C9C9FD87 79A479A3A37AA37A7ABAA1ADB0C6E3E3C6E3E3E3E4E4E4E4E8E3C6E4EA005BBB C582E1FD8FBC71525B93959F6A93937488FD8CB5B4B581DF88FDE1E188C7C0C9 C7B380C7B386E2877A7AA4A3A37A7AA3A3A3BAA1ADC486E3E4E3E3E3E4E4E4E4 C6E3C6E4EA00BC52678A88893C3434475B716A9595939393E388B4A7C5B6B6C5 A7A98CE185C8C4C7C6C97FC7C0C888867D7AA3A37AA3A37AA37A7AA374B0E3E3 B7E3E3E387E4E4E4C6E3C6E4EA0034BB39B788B7674FAC52527193959F939371 E4FDB5C3C5B6B6B6B6C5C5A8E2C8C786E2C7C7C87CC4E2E2E2DFE7DBC8B1A3A3 A3D1A3A3A1AFE3E887E3E3E3E4E4E4E4C6E3E8E4EA00AC3CA78A8822AD8F5952 5271939F9F939371AFFD63B6C5C5B6B6B6B6C5C5B4DFE3E2E3C7E3C77CC9E2E2 E284B5B5D4DE83A378A3A3BAA3C8E3C6E4E3E3E3E4E4E4E4E8E3E4E4EA00B563 A98AFD22968F4F525271719F9F6A93939F89FD63C5BBB6C5B6BCB6B6A7B4E3E3 DFC6CBC77CC9E2DEC8B7E4D4D5B3E4C9BAA3A3A178C8E3C6E4C6E3C6E4E4E4E4 E4E3E4E4EA00898BB3B785B7CE5F8F525234716A959F939371C7FDFD8CC5BBBC B6B6B6BC472CA9B7C5A786C4DB80877A9FC2C2BAD5B0DEE8B3A1BAB974C9E3B7 E4E8E3C6E4C7E4E4E4E3E4E4EA00FC888288FD86A967BD5B5B719393659F9393 71C0E2FDFD63BBB6BCB6B6B62C72D363BCBBB6B6DB7FE476B9C2C2B9D1CEB5E4 E4D4B9ADA1C7E3C6E4C6FBC6E4E4E4E4E4E3E4E4EA00FCFC888888864B965F5B 5B715993659595939395E3FDFE8AB6B6B6C5B6B6777277D37747C5A88287E4B0 AC8FBA78A3D4CEB4C7E4DBD5C4E4E3B7E4E8E3C6E4E4E4E4E4E3E4E4EA00FCFC FCFCE28681965FAC4F7159936A959F939371B1E2FDFEBC47B6BCB6B673722C77 7377C5A982C6E4B0AC8FA1BABA7AC9CED5E4E3E9DEE4E387E487E3E8E4C7E4E4 E4E3E4E4EA00E1E188FCE28583A7674F5F34936A93659F959371B987FEFEC5BB BCB6B6527372BB737373D3C382E38681ACC2B9A1A1BAA480B4D1FBC6DEE4E3E4 E4E4E3C6E4C7E4E4E4C6E4E4EA00E188E188FD88E396965F9F4F349559956A9F 939395C986FE8CC3C5C5B677722C637373722CD182E3E2C8C2C2ADA1B9BAA1D5 DED581E4E4E4E8E4E4E4E8E8E4C7E4E4E8C6E4E4EA00E188E188E18889A7A767 5F8F71496A93959F95937178E489B7B5A8C3D37372BCB3737373732CDFE3E4D4 ADD0ADD0B9A3BAA1D5C8D4EAAFBDBBBBC1C1C1C1C1C1C1C1C1C1C1C1EA00E1E1 E1E1E1888863A7398F5F6A7495939F959F9371ADD9E3E2FDFEC5737373A79673 73727277C387C8D5B9CEAD8FD0A1BAA17479C8DEE4C7E9E4E4E4E4E4E4C7E4E4 E4C6E4C7EA008888E1E188E1888296398F4F9F749F596A9F9F959393A3E4E2E2 FA477373BCB3C37373727377A8C7C8B0A1CEB98FAC8FB9BABABAA4E4E4E4E4E4 E4E4E8E4E4E9E4E4E4E8E4C7EA00E188E1E188FD8889D5675F595965656A9565 959F6A71A1C9E2E2FEBC772CB481BC737372722CC9C6DEB5BACEB9C2C1BBBDBA A3A378B3E4E4C6E4E4E4E4E4E4E9E4C7E4E8E4C7EA00888888888888888941A1 8FAC5965956A749F9F9F957174A4E3E2E28AA7B583B5D373737377D5C7E384D5 BACED0ACC1BBC2B9A1A3787AE4E4C6E4E4E4E8E4E4E9C7C7E4E8C7C7EA00E188 E1888888FD8682B1789665496A95A3A1B9959F936578C8E2E2FAFA86C981B673 7377CEC9C7E4D4D1D1D1C2BBC1C1ACBDBDBAA3A3DFE4C6E4E4E4E4E4E4DEE4E9 C7E8E4C7EA00FD8888888888FD86827D7C7A749F6A957A7C6595956A65A3A586 E2E2E2C6C4B5967777C5C9C9C7E4D5D0D1ADACACBBBCC28FBDBAA3BAD4E9C6E4 E4E4E8E4E4DEC7E4C7C6E9C7EA008888FDE1FD8888FE8280B37978656A9F76AF D4AF74C0DABABAC7FAE2E2E4D463BA96A1AFDA7DC7E3B9BBD0C2C2ACBCBDCEBA BAB9A1B0CEDEC6E4C7E4E4E4E4C7E9C7C7E4E9C7EA00FD88888888FD8589E4C8 B16878659574B1DE87E3E487B7C078C889FAE28779BA968F95A3C0D4C9C8BCCF C1C2B9D0BDD0D0B0B3B1B3CEADE9D5E4C7E4E4E4E4C7E9E9C7E4E9C7EA0088FD 88888888E289B7C7807C7A74655082E389E3E3E3E3C7D4C7E3E389E3B4968F5B 5295A174AFB3BBBDBDADBD8FB9CEBDBCACB3E4ADD1DED0E4E9E4E4E4C7E9C7E9 C7E4E9C7EA00FD8888FDFD88E2E2E3877FB17978A17987FA86E3E3E3B7E3C6E3 E286E2E3D167C26061AC9F9FC0B5CFAC8FA1A3BAA1CEBACEACC2EAC4EAC9D0E4 C7E4E4E4C7DEC7E9C7E4E9C7EA0088FDFD85E288E2E2E3E3E4C9C06B6B7CE4EC 86E3E3E387E3E2E2E3E3E282BA67C26046939F9FC0D1D3CFC1ACADA3A3BAA1A1 D5BABAC7DBD5D0E4E9E4E4E4C7DEC7E9C7E4E9E9EA00FD858588E2E28989E286 8780AF7979B3E486E3E3E3E3E4E3E2E2E3ECE383CE67C26061719F9FA5A1CFCF BBBCC2ADA1A3A3BAA1AFC9DEEBBAD0C7C7E4E4E4C7DEC7DEC7E4E9E9EA0085E2 FDE285E2E2E289E2E3C8B3C07CB1C7E3E3E3E3E3E4E3FAE2E3FAE3C4965F8F60 D2719F9FC0C4BDC1BCC2BDADB9A178BA74D4E4E4E4D4B9C7E9C7E4E4C7DEC7DE C7E4E9E9EA00FDE28585E2E2E2E289E28682C47CAF7DC7E3E3E3E3E3E4E3FA86 E3E386C4675F8F6046939F9FD4E4C2D3C1ACBDADADB9CEA4D4C8E4E4C7E7D1C7 E9E9E4C7C7DEC7DEE9E4E9E9EA00E2E285E2E2E2E2E289E289E4C9B3B1C9E4E3 E3E3E3E3E4E3FA86E3E3E3B3965FBD4761AC9F9FAFAFBBD2BBACBD96B9ADA1C4 DEDEE4E4E9D4B0C7DEE4C7E4C7DEC7DEE9E4DEDEEA00E2E2E2E2E2E2E2E289E2 89C6C87DC9C887E3E3E3FBE3E4E486E3E3C6C8B4675FBD60617195ADAFB5C1D2 D3ACADB974BA74BA81DEE4E4E9B4D5C7DEE9C7E9C7DEE9DEE9C7DEDEEA00E2E2 E2E2E2E2898989E289E382C8C7E4E3E3E3E3E3C6E4B7FAE3E3E4DED15F5F8F52 61719565AFB0BBD8D3BCBD9FB9A1BAA1A3DEE4E4DEB9B5C7DEE9C7E4C7DEE9DE DEC7E9DEEA00E2E2E2E2E2E2898989E2ECE38787E3C6E3E3E3E3E3B7E4B7ECE3 E3C7C8B43CBD4F52617195ADAFD5BCD8CFBBC2BD95ADA174A3DEE4E4EABDB3E9 DEE9C7E9C7DEE9E9DEC7DEDEEA00E2E2E2E2E2E289FA89FECBE3C6E3E3E3E3E3 E3E3FBB7E4E4E3E3E3E483D58F67AC614693959FAFB4BBD2CFBCACC2ADB9B9AD D1C4C8E9E9D0C4E9DEE9E4E9C7DEE9DEDEC7E9DEEA00E2E2E2E2E289E289E3E2 E3E3E3FA86FBE3E3E3E8C6E481C4E3E3E3E484D53CB9AC4661939F9FB3D1BCD2 D3BBBCC2D074B9B974BABAA3DBD0C9E9DEE9C7E9C7DEDEDEDEC7DEDEEA00E289 E2E2E2E2898986E2E2E3E3CBE3E3E3E3E3B7E884A7B5E4E3E382C4D55F8F5B46 61939F9FC4B5BBD7D8CFBBACBDD0ADADB9B9A1B9B0D0DFE9DEE9C7E9C7E9DEDE DEC7E9DEEA00E289E2E2E28989E3E3E2E2E3E389E3E3E3E3E3B7E463CEB3C8C7 E8DEC9B596AC5246616A9F95C9EAACD7D3CFCFBBACACC28FBDBDD0D1D4B9C8DE DEE9E9C7E9DEDEC8DEC7DEDEEA008989E2E2FA89E386E3E3CBE3E3ECE3E3E3E3 E3E8E4B4CEC4DFC9E4C8C46367AC524661959F95C9E4ADD8D3C1C1C1C1C1BCAC C2BDBAB3BACEDEDEDEE9C7E9E9E9DEC8DEC7DEC8EA00FAE28989E2898986E3E3 CBE3E3E3E3E8E3E3E3E4E4B4A8C9C9C8C7D4B4CE6734C14661BD9F95DBE4BAD7 D8CFC1BBBBC1C1BBBBACCED5BDB9E9DEDEDEE9E9E9DEDEC8DEC7C8C8EA008989 8689E386E3E3E3FA86E3E3E3E3E8E3FBC6E8E4A8D5C484E4DEB49696674F5246 47959F95B0DEBCD6D6D8D2D3CFC1C1C1C1BBACADBCCEE9DEDEDEE9E9E9DEE9C8 DEE9DEC8EA00FA8689CB8686E3E3E38686E3E3E3E3E4C6FBC6E4E481A9B4C9E4 DE6396CE96C2C14660959F95A3E4BDBBD3D6D6D6D8D2CFBBBBBBACC2CFCEDEDE E9DEE9E9E9DEDEDEC8C7C8C8EA0086E3CB86E386E3E3E3E3E3E3E3E3E3E4C6E8 C6E4E4B3A7A884C9C9C4B4BACE5F524660959F95A1DBBA96D0ADACCFD7D6D6D3 C1BCB9BAC1BAE9DEDEDEE9E9E9E9DEC8C8E9DEC8EA00E386E386E386E3E3E3EC E3E3E3E3E3E4C6B7B7E4E48496CEB581C4C4A9A8A8BD5261C1959F959F74C2BB ACBDB9A1D0BBD3D6D7D3CEEAC2D5DEDEC8E9E9DEE9DEDEC8C8E9C8C8EA0086E3 8686E3E3E3E3E3E3E3E3E3E3E3E4E4C6E4E4E4DE81CEB481B381A1CEB45F5261 526A9F9595B9BCD3C1C1BC8FB9A19FACD3D7BDEAD1D4DEC8C8E9E9DEE9E9DEEA C8DEC8C8EA00E3E386E386E3E3E3E3E3E3E3E3E3E3E8E4E4E4E4E4C7C9A7D181 D4B4A7CEB55F5247526A9F95959FC1CFCFC1BCACBDADD0BDBDACBBCED4B3C8DE C8E9DEDEE9DEDEC8C8DEC8C8EA00E3E386E386E3E3E3C6E3E3E3E3E3E3E4E4E4 E4E4E4E9C9A7B4B381A9CEB5AF5F5B615B6A9F9595B9C1CFCFCFC1C1C1BBBBC2 ACADD0BDB0EBC8C8C8DEE9DEE9E9DEEAC8DEEAC8EA00E3E386E3E3E3E3E387E3 E3C6C6E3E3E4E8E4E4E4E4E984A7B5D4A8CE67E0D48FBB615B6A959395D4C2CF C1CFCFCFCFC1BBBBBBACC2CED5E0C8DEC8DEDEDEE9DEDEEAC8DEC8C8EA00E3E3 E3E3E3E3E3E3B7E3E3E3E8E8E3E4E4E4E4E4E4DEC9CEA7C39696B6C4B54F52C1 5295959393B0ACC1BBBBBBC1C1C1C1C1C2B9B3E7D1EBC8C8C8DEE9DEDEE9C8C8 EADEEAC8EA00E3E3E3E3E3E3C6C6B7E3E3E8C6E3C6E4E4E4E4E4E4DEDEC8CE5B C25F34C4E7C25260526A959371B9CFD2CFBBBBC1D3BBACB9E7DFC8E7D4DFC8EA C8DEDEDEE9DEC8EAEADEC8C8EA00E3E3E3E3E3E3C6C687E3E3E3E8E8C6E4E4E4 E4E4E4DEDEE4B4BCBCBCBCC4E45F52C15B6A9593719FBCD8D2D8D2D3BCBAC4DF C8C8C8DEDEDFC8EAC8DEE9C8DEDEC8EAEAC8EAC8EA00E3E3C6E3E3E3B7B787E3 E3E8C6E8E3C7E4E4E4E4C7DEC8C7C95FBC52AC84E95F5B52526A9593719FE7BA BDC2D0D5EBEAEAEAC8EAC8DEC8DFC8EAC8C8DEC8E9DEC8EAEAC8EAC8EA00E3E3 C6E3C6C6B7C687E3E3E4E8E8C6E9E4E4C7C7E9DEC8E9E4D54F478FC9DE5FBC52 529395939393B1E4E4E4E9C7DEC8DFEAC8EAC8DEC8DFEAC8DEC8C8C8DEDEC8EA EAC8EAC8EA00C6C6E3C6C6C68787E4E3C6E4E4E4C6E9C7C7C7E4C7DEC8E9C683 C3C13CDFC867AC5252716A6A9371C082E4E4C7E9DEC8DFEAC8EAC8DEDEC9EAEA C8C8DEC8E9C8C8EAEAC8EAC8EA00C6C6C6C6E3C6E4E887C6C6E4E4E4C6E9E4E9 E4E9C7DEEAC7E8E4A94FADC9DFAD4F5B52716A959371A182E4E4C7C7DEC8DFC8 C8EAEADEC8C9EAC8EAC8C8C8C8C8C8EAEAC8EAC8EA00E3C6C6C6C6B7C687E4FB C6E4E4E4E8E9C7C7E9E9C7DEC8E9E8C7C9B5D1C9EA968F5B527193956A716AC8 E4C7E9C7DEC8EBDFEAEAEADEC8C9EAEAC8C8C8C8DDEAC8EAEAC8EAC8EA00C6B7 87878787E4E487E8C6E4E4E4E4E9E9E9C7C7E9DEEAE9E4E4C7DEE7C883A15FBC 527171956A7171D4E482DEE9C8EAC9C9C8C9EADEC8C9EAEAEAC8C8C8C8DEC8EA DFC8EAC8EA00E487C687C687E487E4C6E8E4E4E4E8DEC7C7E9E9E9C8EAE9E4C7 E9C7E9DEC8D15FAC5B719395959371ADE4C7DEE9DEDFEBC9EAC9EAC8C8C9DFEA C8C8EADEC8DEC8DFC9C8EAEAEA00C68787E48787E487E4C6E4E4E4E4E4DEE9E9 E9E9DEC8DFDEE4E9C7E9C7DEC8D4674F4F71936A956A7193B182DEE9E9C9C9C9 EAC9EADEC8C9DFEAEAC8C8C8C8C8C8EAC9C8EAEAEA00E4C6E487E8878787E4C6 E4E4E4C7E4DEE9E9DEDEDEC8DFE9E4E9C7DEC7DEE9C467BDBDAC59936A959371 BAC7DEC7DEC9EBC9C8C9EAC8EAC9DFEAEAEAC8C8C8C8C8C9C9C8EAC8EA008787 87878787E4E4E4E8E4C7C7C7E4DEDEE9DEE9DEC8DFDEE4C7C7DEE9E9E9C99667 8F596A6A93956A7195C9DEE9C8C9EBC9EAC9DFC8C8C9DFEAEAC8C8C8C8C8C8EA C9EAEAC8EA00E487E487E487E4C7C7E8E4C7E4C7E4E9DEDEDEDEDEC8DFE9E4E9 E9E9E9E9E9C7D15F8F8F65955995959393A4DEE9C8C9EBC9EAC9DFC8EAC9C9EA EAC8C8C8C8EAC8C9C9EAC9C8EA00E487E487E487C7E4C7E8E4C7E9E9C7DEDEE9 DEE9E9C8EADEE4E9E9E9DEE9E9C7C4AD4F71959F6A95959571ADC4E9C8C9EBC9 EAEBC9C8EAC9C9DFC8C8C8EAC8C8EAEAC9EAC9C8EA00E487C787E487C7C7C7E4 E4C7C7C7C7DEDEDEDEDEDEC8DFDEE4E9E9E9DEDEE9E9C8D58FC26A69589F9595 9395A4E9EAC9DAEAC8C9C9EAC8EBC9DFC8C8C8EAC8C8C8C9C9EAC9C8EA00E487 C787E487C7E4C7E4E4E9E9E9C7DEDEE9DEE9DEC8EADEE4E9E9E9C8C8C8E9C8DB A4B98E9A707A9F6A6A95BADAEAC9EBEAEAEBC9EAC8EBEBC9C8EAC8EAC8C8EAC9 C9EAC9EAEA00C77EE4C7C7C7C7C7C7E4E4C7C7C7E4C8DEDEDEDEDEEADFDEC8C9 C8C93EB3B3DEC8DBC05C9A977079A4A174C0B9A5EAC9EBEAEAC9C9EAC8EBC9C9 EAEAC8EAC8C8C8C9C9EAC9EAEA00C7E4C7C7E4C7C7C7C7E4C7E9E9E9E9C8DEDE C8E9DEC8C9C9B1B38468504D81C9C8DAD4989A9A62C4DFC8DE7FA4A4EAC9EBEA EAEBC9EAC8EBC9C9EAC8EAC8EAC8EAC9C9EAC9EAEA00C7C7C7C7C7C7C7C7C7E4 C7E9E9E9C7C8DEC8C8DEDEC9B1B1B37C7B44507A68C4C8C9F1989A8EA5DEDE82 C7DEC9B1EAEBC9DFEAEBC9EAC8EBC9C9EAEAC8EAC8C8C8EBC9EAC9EAEA00C7E4 C7C7C7C7C7C7C7E4C7E9E9E9E9C8C8DEC8DEC8CDCD7B7B7C6850505068B3B3DD F29D9A5CD4DEDEC8C7DEC8C8EAC9EBDFD9EBC9C8EAEBC9C9EAC8EAC8EAC8EAC9 C9D9C9EAEA00C7C7C7C7C7C7C7C7C7E4C7E9E9E9C7EAC8C8C8DED9CDAE517BAE 517676684D687CE9ED9E986BB3C8C8C88282EAC8D9EBC4C4C4E0EBEAEAEBEBC9 EAEAC8EAEAC8EAEBC9D9C9EAEA00C7C7C7C7C7C7C7C7C7E4C7E9DEDEE9C8DEC8 DEC8BEAE7CAFC4B17C68797C684D7BE9C8CDA5A5B1C8C8C882DEC8EAEAEBE7B1 DBAFC9EAEAEBEBC9EAC8EAEAEAC8EAEBC9D9C9EAEA00C7C7C7C7C7C7C7C7C7E9 C7DEE9DEE9DFC8C9C483BEAEAE7B7B7B7C76767568817CC7E9C9D4D4C4C8C8C8 8282DFC8C8DADBC4E7D4B3EAEAEBEBC9EAEAEAEAEAC8EAEBC9D9C9EAEA00C7C7 C7C7C7C7828282C7C7DEDEDEE9C8EAB181C4B17568B37B51766B6D706D5D7BDD E9EAB1DB80C8C8C882DEC8EAEAC4C4DADAD4D4C4C9EBEBC9EAEAEAEAEAC8EAC9 EBC9C9EAEA00C7C7C7C7C7C782C782E9C7DEE9DEE9EADFB381B1B16B503D5044 5E6D70928E9E75BFDDC8C9C8DEC8C8C882DEEAC8EAE7B1C4E7AFAFB3DBC4EBC9 EAEAEAEAEAC8EAEBC9C9C9D9EA00C7C782C7C7C7828282C7C7DEDEC9C8B3B37C 7CB17B5E7A742974A35C6E979A9A99BFE9DDC8E9E9C8C8DEC782EAC8EAC4DBE7 E7AFAFDBAFD4C4C9EAEAEAC8EAC8EAC9EBEBC9D9EA00C7C782C7C7C782C7DEE9 C7DEC44D81AF81817CB3C04450443B3B485C9297979A99DDE9E9E9E9E9C8C8DE C782EAC8EAC4DBC4B1D4AFDBDBD4DBC9EAC8C8EAEAC8EAEBEBC9C9D9EA00E9C7 82C7C7C782DE82C7E9C86879B3B3B3AFB5AF76354B503B7448746E97979299DD E9C7E9E9C7DEC8C88282C9C8C8EBE7DAEBAFAFDBDBD4DBC9EAEAEAC8EAC8EAEB EBEBC9D9EA00C7C782C782C7DEC7C8C7DE7C3579B3AF817C81515E487A483B25 6ABB606C919299E9E9C7E9C7C7DEC8C88282C9C8EAC9C4C4B6B5B3DBDBD4E7C9 EAC8C8EAEAC8EAEBEBC9C9D9EA00DEC7DE828282C87FC8C7E97950687C4DB068 81686B50445F730000000000726EAAE9E9C7E9E9C7C8C8C882DEDFE9C9DBB3EB 72A9C4DBDBD4E7C9EAEAEAEAD9C8D9EBEBEBC9D9EA0082827FC782827F82C8C7 E97944687C7944797C4D764D960072775B60BB5A004ED9E9E9E9C7C7C7C8C8C8 82DED4C5C5C3D4A800E7DADAB62CC4C9EAEAEAEAD9C8D9EBEBC9C9C9EA00DE82 C882C782DEC87FE9C476797C6850446B797979632C7276503528586272C2C8E9 E9C7E9E9CE730000007273737373B67777DBDBEA7300A9EBEAEAEAEAD9C8D9EB EBEBC9C9EA00C7827F82C8C87F7FC8766844447A687A4DD4687C754BBB727C44 472B2B6200D9DE8BC147C7C7E9DEC8C882DEC9EAE7D4E700A7DBDBA800A7C4EB D9EAEAEAD9C8D9EBEBC9EBC9EA00DE82C8C8C77FC8C83E3D815035504DB07C81 7CC07551A82C792C727372C572EAE9EA7273E9E9C7DEEAC882C8C9C8EBD4CE73 E7D4E7BCA7C4D4D4B3AFD4B5D5B0D5D5D5D5D5D5EA00DD7FC87FC8C87F7D447A 7C4B35766879B0684D7575B079792FBC435B357777EADE6300BBE9E9C7C8C8C8 DEC8C9EBE7D4C3D3D3B6B5C3EBE7B3AFDBDBDBD4D4D4B5B0D5D5B0B5EA00C882 C8C882C87F6850687C764B79797A7979797C7C6879797200000000000000B4BB 00E7E9E9C7C8DFC882C8A7777773772CC5B6D1C0DBC4C4EBD9EAEAEAC9EADFDA EBEBEBC9EA00C87FC8C87F7F7D51687BAF68765078507A6868AFB57A7A3D4F52 732DB6737681E7472CE9E9E9C7C8C9C8DEB3D4EBE7D4B3D4D5D5B0C0D4DBC4EB D9EAC8EAC9EAC9DADAEBEBC9EA00C87FC8C87F807C684CB3814D444450767CD4 68AF7C797A505E7377352C676878D5BCC3E9E9E9E9C8C983828BC9E0B5D5D4BC 2CC2BAB0C0AFC4EBC9EAEAEAC9EAC9EBDAEBEBC9EA00C8C8C8C8C87D7C4C7BB3 687A443B7663AF68B0817C794B6B445B5B3B527678656DAABEE9E9E9C7C8C983 DEC8EBEB77D372000047D1D5C0B0C4EBC9EAEAEAC9EAC9DADAEBEBC9EA00C8C8 C8C880B17DC97BAF7644764468AFB5B07C816879BB7352302B4335659F708E70 9BDDE9E9E9C8EA83DE83DFB5000077C372A9D4AFD4D1DBDBDFD9EAEAC9EAC9EB DAEBEBC9EA00C8C8C8B1B17DC97C7C7C4D8168797CB5B07981D468793C000072 722C7465576E976E99DDE9E9E9C8C983C8EADFDF47C381D3BCD1CED4DBB0D4B5 C9D9EAEAC9EAC9DADAEBEBC9EA00C8C8C87B7BB17C4D7C68B3B1AF4468684D7C B37C687A443B2B432B2A436A7092928E99DDE9E9DDC8D983C8C8DFC3D3727272 B4C0D5D1DBDBB0D4C9D9EAEAC9EAC9EBDAEBEBC9EA00C8C8B17B4C7B3E7C7C81 B1B1B37CAFD46881AF797A5E6549492B30242859706E6E98CDDDDDDDE9C8C9DF C8C8DFA77372000000B6D5AFC4DBD1B5C9D9EAEAC9EAC9DADAEBEBC9EA00C8C8 4CB17B813E7C7B7CB3C4B37C81AFB0688150447443303026261C2430749862AA E5DDE9DDE9C8C9C8C8C8D9EBE7E7AFB4C5A7B0DBEBE7B5D4C9D9EAEAC9EAC9EB DAEBEBC9EA00C8807BB17D4C684C81AFB3B1B1B181B0B0B0B05E65302628281A 191C282B78A5AFC9E9DDDDDDE9C8C9C8C8C8C9C4E7DBAFDBAFB5C4C9EBDAD4B3 C9D9EAEAC9EAC9DADAEBEBC9EA0080B1C47D7DB17BB37B7CB3B3B1B17C68B079 4D503B302624281C1C2630307A68C0C9E9E9E9E9C7C8DFC8C8C8C9C4E7D4AFDB DBD4D4EBC9E7B0DBC9D9EAEAC9D9C9EBDAEBEBC9EA00B14CC4C97DB1C4B14C7C AFAFB3B1B079B04DB079504326282A1C232A433B7A68B1B1E9E9E9E9E9C8DF83 C8C8C9E7DBB3D4B3DBD4B0DAEBDBD5DBC9D9EAEAC9D9C9DADAEBEBC9EA00C47C B17D7DB1B1B1B1B37C7CB3B37C68AF7C7C7C68492438282623283B50447AAFE9 E9E9E9E9DEC8C983C8C8C9C4DBD4D4DBDBB5B0DBDADBD5C4C9D9EAEAC9D9C9EB DAEBEBC9EA00B17CB17DB17B7B7BB1B3AF7CB1C468D4B3D47CB579492A492428 1C2749657876AFC8E9E9E9E9C8C8C983C883C9E7DBD4D4AFB3C0D5B0B0C0D5DA C9D9EAEAC9D9C9DADAEBEBC9EA00B17CB1B1B17B4C7B7DC4B3B3B1B37CAF81D4 7CA544492A433026231A24286B79DBC8E9E9DDDDC7EDF1F1F2D9C9DBF3D4D4C0 D5F5BABAD5B0D5EBDAEDD9EAC9D9C9EBDAEBEBC9EA00B3B17D7D7DB14C7B7BB1 B3B3C4B381D4D481B06B3B434943261A1B1B1C285E76B5EADDDDDDEEF3F8F8F8 F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F6F1C9D9C9DADAEBEBC9EA0080B1 B3B1C97D7B4C7CD4AFAFD4C07CD46868765E314349302623231C2628C0767CEA EFDDDDF1F8F6F6F6F6F7F7F7F8F4F4F5F5CEF4F4F4F6F4F6F8F8F8F8C9D9C9EB DAEBEBC9EA007DB1B17DC97DC47B7C7C7C8168797CB079B06BA344434324244E 69694E575C62AEEADDDDE6F5F8F1F1DF8380DFE7DBB0D5B5D4C0B4D1BAADD1F3 F5F6F8F9C9D9C9DADAEBEBC9EA00C4C4B1C9D97D7D7B68686868687968C079A5 6B443B492B274E9297924E5A5C99CDD9EFDDEFF7F8F8C9F1F7F8F9F6F3D4B3F9 B0D1F6F8F9F8F5DAD9EDF6F8C9D9C9EBDAEBEBC9EA007D7DB1C9807DB17B5179 68B57679797976796B4949492B235A9797976E577098CDDAD9DDDDF6F8F8F5F9 F8F5F5F6F9F7D4F8F5F9F8F4F5F6F9F7C9EAF6F8C9D9C9DADAEBEBC9EA007D7D 7D7DC97D7D7B5150505044507A4444764443652A282664979797925A6E98CDDA EDC8EFF3F8F7F9F5DEC8EBDAD5F9B5F6F9F5B3AFD4B5F1F9EBC8F6F9C9D9C9EB DAEBEBC9EA00C9C9C9C97D7DB17B4D44443B654444356535492B3828241B6497 90909092979874DAD9C8EAF2F8F2F983C8C8C9C4D4F8F5D5F9D4D4DBDBD4DBF6 F5D9F6F8C9D9C9DADAEBEBC9EA0080C9C9C97DC97B4C79443B49652B492A282A 433024281C566497909097976E5744DADAD9D9E5F8C8F9DFC8C8C9C4D4F8F581 F9D4D4DBC4DBC4F8F3EAF6F8C9D9C9EBDAEBEBC9EA0080C980C980C9C4AF3D74 492B24243B3B49493149301B1B5A64979797926957262B78796B68F3F8C8F8F7 C883C4B3F5F9B5B5F8F6C4DFC9E7F5F9EDF3F6F9C9D9C9DADAEBEBC9EA008080 80C9C9C97DB33D4474242A654835A1357449301C1B569197979297695828283B 744978F1F8F3F2F9F9F6F6F9F9F5D4DBD4F9F9F6F6F9F9F3C9F6F7F8C9D9C9EB DAEBEBC9EA00C9C9C9C980C97D7C4D793538303B3B653B3B4343261C133A6492 91976469572A28493B2AB0E5F8F8F3D9F5F6F6F7DAE7C4EBDAE7F5F6F6F7E7F1 F7F8F8F8C9D9C9DADAEBEBC9EA00C9C9C9C9C97DB17C4D683530284343316565 4328261C1913566464925A6957282843652830A5F7F8F8F6F6F7F7F7F6F7F7F7 F7F7F7F6F6F6F6F8F8F8F8F8C9D9C9EBDAEBEBC9EA007DC9C9C9C97DB17BAF68 742A1C2A2B4935444449492423235A3A5A5A5A694E2830433B2A2851E6F5F6F6 F7F5F7F7F6F7F7F7F7F7F7F7F7F6F6F6F7F8F6EDC9D9C9DADAEBEBC9EA00C9C9 7DC9C97DB1B1B17C652A2849653174507878442826235A0E234E5A5A28242A2B 3B302BC8E9EAC983D9D9C9EBDAE0C4C9E0C4C4EBF2DBC4DAEBC9D9D9C9D9C9EB DAEBEBC9EA007DC97DC9807DC97D817C503549444444787A4478784326233A0E 0E1B232324282A303B4344DDE9C8C9DF83C8C9DADAC4C4C9DAC4C4EBEBE7C4DA C9C9EAD9C9D9C9DADAEBEBC9EA00C9C9C9C9C9C9C9C47B7C68503B7A507A7A79 4B784843271C161A1313232628282A284950DDDDE9C8C98383C8C9DAC4DAC4EB C4E7C4EBEBE7C4DAEBC9D9C9D9C9C9C4C47D7DC9EA00C9C9C9C980C97D7DB1AF 7C5044504444787A5044493024230E19130E1A1C1C302A2A49314468E9C8C9C9 83C8C9DAC4E7DAC9C4E7C4EBEBE7C4DAC9C9C9C97D7D363632363636EA00C9C9 C9C9807DC9C9B1B3817A50787A7844787A652B2A261C1A180E1613192630242A 3B494976E9C8C9C983C8C9DAE7DBC4EBC4E7C4EBEBE7C4DAC9C98036367D3636 3636367DEA00C9C9C9C9C9C97DB1B1AF68795074505035354449302824261B18 130E131A28281B24744844DDE9C8DF848083C9DAE7DBC4C9C4E7C4EBEBE7C4DA 7D7D36367D367D363636367DEA007DC9C9C980C9B1B17BAF797A78447679743B A149382826261A13163A131A2A2B2324785EB1DDE9C8EA80DF80C9DAC4DBDBDA C4E7C4DAEBE7C4363636367D367D36363636367DEA00B1C97D7D7DC4B17BB37C 687950357478352B49433026231C0E16555518192A492328444DDDDDE9C8C8DF 80C9C9C9EBC4DBC4C4E7C4DAC97B3232367D7D7D7D367D363636367DEA00B37D B1B1B17C4C7B817CB5687A35483BA149302A2623131816919164561A1C282728 747CE9DDE9C8C8C88380EBC9EBC4DAEBC4DBC4DA3632323636363636367D3636 3636367DEA00C47D7CB14C687C7C687C7C68794430262B301C28260E0E185697 9797561B1C241C4368DDDDDDE9C8C88383C9C9C9EBC4DAC9C4DBC43636323636 367D36367D7D36363636367DEA00} end object edtDir: TEdit Left = 168 Top = 162 Width = 152 Height = 21 ImeName = #20013#25991\' (\'#31616#20307\') - \'#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 0 end object cbbWinner: TComboBox Left = 142 Top = 87 Width = 188 Height = 24 BevelInner = bvLowered Ctl3D = False Font.Charset = DEFAULT_CHARSET Font.Color = clRed Font.Height = -13 Font.Name = \'Tahoma\' Font.Style = [fsBold] ImeName = #20013#25991\' (\'#31616#20307\') - \'#19975#33021#20116#31508#20869#32622#36755#20837#27861 ParentCtl3D = False ParentFont = False TabOrder = 1 OnDropDown = cbbWinnerDropDown OnKeyDown = cbbWinnerKeyDown OnKeyPress = cbbWinnerKeyPress end object cbAutoContinuous: TCheckBox Left = 5 Top = 223 Width = 97 Height = 17 Caption = #36830#32493#33258#21160#21047 TabOrder = 2 OnClick = cbAutoContinuousClick end object cbHide: TCheckBox Left = 180 Top = 222 Width = 97 Height = 17 Caption = #38544#34255#28216#25103#31383#21475 TabOrder = 3 OnClick = cbHideClick end object pnlTitle: TPanel Left = 0 Top = 0 Width = 450 Height = 41 Align = alTop BevelInner = bvRaised BevelOuter = bvLowered BorderWidth = 2 BorderStyle = bsSingle Caption = \'QQ\'#22235#22269#20891#26071#21047#20998#22120\'v1.1\' Color = clTeal Font.Charset = DEFAULT_CHARSET Font.Color = clRed Font.Height = -19 Font.Name = \'Courier New\' Font.Style = [fsBold] ParentFont = False TabOrder = 4 end object cbSmart: TCheckBox Left = 5 Top = 165 Width = 161 Height = 17 Caption = #26234#33021#23545#22869\' \'#38656#25351#23450#22797#30424#25991#20214 TabOrder = 5 OnClick = cbSmartClick end object rgModel: TRadioGroup Left = 1 Top = 46 Width = 351 Height = 39 Align = alCustom Caption = #36873#25321#21047#20998#27169#24335 Columns = 2 ItemIndex = 0 Items.Strings = ( \'1\'#32452#20004#20154#23545#25112 \'2\'#32452#20004#20154#23545#25112) TabOrder = 6 OnClick = rgModelClick end object cbbLoser: TComboBox Left = 142 Top = 117 Width = 188 Height = 24 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = \'Tahoma\' Font.Style = [] ImeName = #20013#25991\' (\'#31616#20307\') - \'#19975#33021#20116#31508#20869#32622#36755#20837#27861 ParentFont = False TabOrder = 7 OnDropDown = cbbLoserDropDown OnKeyDown = cbbLoserKeyDown OnKeyPress = cbbLoserKeyPress end object btnAutoPlay: TButton Left = 15 Top = 254 Width = 79 Height = 39 BiDiMode = bdLeftToRight Caption = #24320#22987#21047#20998 Font.Charset = DEFAULT_CHARSET Font.Color = clMenuHighlight Font.Height = -11 Font.Name = \'Tahoma\' Font.Style = [] ParentBiDiMode = False ParentFont = False TabOrder = 8 OnClick = btnAutoPlayClick end object btnExit: TButton Left = 229 Top = 254 Width = 79 Height = 39 Caption = #36864\' \'#20986 Font.Charset = DEFAULT_CHARSET Font.Color = clInactiveCaption Font.Height = -11 Font.Name = \'Tahoma\' Font.Style = [] ParentFont = False TabOrder = 9 OnClick = btnExitClick end object cbAddSpeed: TCheckBox Left = 38 Top = 187 Width = 61 Height = 12 Caption = \' \'#21152\' \'#36895 Color = clMoneyGreen Ctl3D = False ParentColor = False ParentCtl3D = False TabOrder = 10 OnClick = cbAddSpeedClick end object bbtnHelp: TBitBtn Left = 336 Top = 253 Width = 79 Height = 39 Cursor = crHelp Hint = #21047#20998#22120#20351#29992#35828#26126 BiDiMode = bdRightToLeft Caption = #24110\' \'#21161 DoubleBuffered = True Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = \'Tahoma\' Font.Style = [] Layout = blGlyphRight ParentBiDiMode = False ParentDoubleBuffered = False ParentFont = False ParentShowHint = False ShowHint = True TabOrder = 11 WordWrap = True OnClick = bbtnHelpClick end object sbRegister: TStatusBar Left = 0 Top = 292 Width = 450 Height = 27 BorderWidth = 2 Color = clMoneyGreen Panels = < item Width = 170 end item Width = 100 end item Text = \'//\'#35282#33394#29256\' 2.1 Beta06 Build020\' Width = 150 end> end object bbtnRegister: TBitBtn Left = 122 Top = 253 Width = 79 Height = 39 Caption = #27880\' \'#20876 DoubleBuffered = True ParentDoubleBuffered = False TabOrder = 13 OnClick = bbtnRegisterClick end object odSetDir: TOpenDialog DefaultExt = \'jgs\' Left = 328 Top = 119 end end
//注册窗体文件
object frmRegister: TfrmRegister Left = 504 Top = 235 BorderStyle = bsDialog BorderWidth = 3 Caption = #27880#20876 ClientHeight = 122 ClientWidth = 208 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = \'Tahoma\' Font.Style = [] OldCreateOrder = False Position = poMainFormCenter OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 10 Top = 16 Width = 48 Height = 13 Caption = #29992#25143#21517#65306 end object Label2: TLabel Left = 12 Top = 53 Width = 48 Height = 13 Caption = #27880#20876#30721#65306 end object bbtnOK: TBitBtn Left = 66 Top = 87 Width = 77 Height = 31 Caption = #30830\' \'#23450 DoubleBuffered = True ParentDoubleBuffered = False TabOrder = 0 OnClick = bbtnOKClick end object edtUser: TEdit Left = 60 Top = 13 Width = 121 Height = 21 ImeName = #20013#25991\' (\'#31616#20307\') - \'#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 1 OnKeyPress = edtUserKeyPress end object edtPsw: TEdit Left = 61 Top = 50 Width = 121 Height = 21 ImeName = #20013#25991\' (\'#31616#20307\') - \'#19975#33021#20116#31508#20869#32622#36755#20837#27861 TabOrder = 2 OnKeyPress = edtPswKeyPress end end
//帮助提示窗体文件
object frmHelp: TfrmHelp Left = 526 Top = 320 BorderStyle = bsDialog Caption = #21047#20998#22120#20351#29992#35828#26126 ClientHeight = 236 ClientWidth = 450 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = \'Tahoma\' Font.Style = [] OldCreateOrder = False Position = poMainFormCenter PixelsPerInch = 96 TextHeight = 13 object reHelp: TRichEdit Left = 2 Top = 3 Width = 446 Height = 233 BevelInner = bvLowered BevelWidth = 2 BorderWidth = 1 Color = clSkyBlue Font.Charset = GB2312_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = \'Tahoma\' Font.Style = [] ImeName = #20013#25991\' (\'#31616#20307\') - \'#19975#33021#20116#31508#20869#32622#36755#20837#27861 Lines.Strings = ( \' \'#21047#20998#22120#20351#29992#35828#26126#65288\'BlackSnake 2010.06.06\'#65289 \'1. \'#21047#20998#22120#26377#20004#31181#27169#24335#65288#30446#21069#20165#25903#25345#20004#20154#29609#65289#65306#21363\'1\'#32452#20004#20154#29609#21644\'2\'#32452#20004#20154#29609 \'2. 1\'#32452#20004#20154#23545#25112#26102#65292#36873#25321#35201#36194#20998#30340\'QQ\'#21495#65292#21363#21487#20197#23454#29616#21047#20998#65307#22914#26524#21246#36873#8220#36830#32493#33258#21160#21047#8221 #21017#21487#20197#23454#29616#36830#32493#21047#20998#65307#22914#26524#24819#38544#34255#28216#25103#31383#21475#65292#21017#21487#20197#21246#36873#8220#38544#34255#28216#25103#31383#21475#8221#12290 \'3. 2\'#32452#20004#20154#23545#25112#65292#21363\'ABC\'#21047#20998#27169#24335#65292#29992\'3\'#20010#21495#65292#20551#35774#23567#21495#65288\'C\'#65289#22312#20302#20998#21306#36127#36131#36755#20998#65292#20013 #21495#65288\'B\'#65289#24320#20004#20010#25151#38388#20998#21035#36827#20837#39640#20998#21306#21644#20302#20998#21306#36127#36131#36716#20998\'(\'#20998#25968#22312\'50-59\'#20998\')\'#65292#22823#21495#65288\'A\'#65289 #22312#39640#20998#21306#12290#24320\'2\'#32452#65292\'1\'#32452#20026\'A\'#23545#25112\'B\'#65292\'1\'#32452#20026\'B\'#23545#25112\'C\'#65292#21482#35201#36873#23450#35201#36194#20998#30340\'QQ\'#65288\'A\'#65289#21644#36755 #20998#30340\'QQ\'#65288\'C\'#65289#65292#37027#20040\'A\'#21487#20197#30452#25509#21047#21040#21496#20196#20197#19978#12290 \'4. \'#20026#22686#21152#36259#21619#24615#65292#26412#21047#20998#22120#22686#21152#20102#26234#33021#23545#22869#21151#33021#65292#20027#35201#21033#29992#20004#20154#22797#30424#25968#25454#23454#29616#65292#25152 #20197#19968#23450#35201#35774#23450#22797#30424#25991#20214#12290#21246#36873#8220#21152#36895#8221#21151#33021#26159#25351#36798#21040#35268#23450#27493#25968#21363#25552#21069#32456#27490#12290 #27880#24847#65306#30446#21069#20165#25903#25345#19978#19979#20301#30340#24773#24418#65292#21363#21452#26041#20998#21035#22352#22312#19978#20301#21644#19979#20301#65288#24038#21491#20301#21047#19981#20102#65289#12290 \'5. \'#22914#35201#25171#24320#22810#20010#21047#20998#22120#36827#34892#21047#20998#26102#65292#24517#39035#20808#36816#34892#21047#20998#22120#20877#36827#20837#28216#25103#12290 \'6. \'#26412#21047#20998#22120#20165#20379#23398#20064#20132#27969#20043#29992#65292#19981#24471#29992#20110#21830#19994#30446#30340#65292#21542#21017#21518#26524#33258#36127#12290 \' \') ParentFont = False TabOrder = 0 end end